From bcc6af06b2696cea5ba3e397202ea2c3fa464987 Mon Sep 17 00:00:00 2001 From: Heyi Tang Date: Fri, 8 Mar 2024 14:41:44 +0800 Subject: [PATCH 001/204] [Bugfix] Fix the bug that call flow in flow function will fail (#2267) # Description Currently call a flow in a flow node will fail due to wrongly handled operation context, in this PR, we fix it by copy the original context and recover. Issue: https://github.com/microsoft/promptflow/issues/2237 This pull request primarily focuses on refactoring the handling of operation contexts in the `promptflow` package. The most significant changes include the addition of a `copy` method to the `OperationContext` class, the introduction of a `set_instance` class method to the same class, and changes to the `exec_line_async` and `_update_operation_context` methods in the `FlowExecutor` class to utilize these new methods. Here is a breakdown of the key changes: Changes to `OperationContext` class in `src/promptflow/promptflow/_core/operation_context.py`: * A `copy` method has been added to the `OperationContext` class, which creates a copy of the current operation context and returns it. This method also ensures that a copy of the `_OTEL_ATTRIBUTES` is made. * A `set_instance` class method has been introduced. This method allows setting a new instance of the operation context. Changes to `FlowExecutor` class in `src/promptflow/promptflow/executor/flow_executor.py`: * In the `exec_line_async` method, the `OperationContext`'s new `copy` method is used to create a copy of the original operation context. * The `_update_operation_context` method has been significantly simplified. Instead of manually reverting changes to the operation context, it now simply restores the original context using the `OperationContext`'s `set_instance` method. These changes simplify the code and make the handling of operation contexts more robust and less error-prone. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. Co-authored-by: Heyi --- src/promptflow/promptflow/_core/operation_context.py | 9 +++++++++ src/promptflow/promptflow/executor/flow_executor.py | 9 ++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/promptflow/promptflow/_core/operation_context.py b/src/promptflow/promptflow/_core/operation_context.py index 6bb146c5bdc..9fc6804e99d 100644 --- a/src/promptflow/promptflow/_core/operation_context.py +++ b/src/promptflow/promptflow/_core/operation_context.py @@ -25,6 +25,11 @@ class OperationContext(Dict): _DEFAULT_TRACKING_KEYS = {"run_mode", "root_run_id", "flow_id", "batch_input_source"} _TRACKING_KEYS = "_tracking_keys" + def copy(self): + ctx = OperationContext(self) + ctx[OperationContext._OTEL_ATTRIBUTES] = copy.copy(self._get_otel_attributes()) + return ctx + def _add_otel_attributes(self, key, value): attributes = self.get(OperationContext._OTEL_ATTRIBUTES, {}) attributes[key] = value @@ -64,6 +69,10 @@ def get_instance(cls): instance[cls._TRACKING_KEYS] = copy.copy(cls._DEFAULT_TRACKING_KEYS) return instance + @classmethod + def set_instance(cls, instance): + cls._current_context.set(instance) + def __setattr__(self, name, value): """Set the attribute. diff --git a/src/promptflow/promptflow/executor/flow_executor.py b/src/promptflow/promptflow/executor/flow_executor.py index 7ee57faaf33..a8817855a34 100644 --- a/src/promptflow/promptflow/executor/flow_executor.py +++ b/src/promptflow/promptflow/executor/flow_executor.py @@ -775,6 +775,7 @@ async def exec_line_async( @contextlib.contextmanager def _update_operation_context(self, run_id: str, line_number: int): operation_context = OperationContext.get_instance() + original_context = operation_context.copy() original_mode = operation_context.get("run_mode", None) values_for_context = {"flow_id": self._flow_id, "root_run_id": run_id} if original_mode == RunMode.Batch.name: @@ -791,13 +792,7 @@ def _update_operation_context(self, run_id: str, line_number: int): operation_context._add_otel_attributes(k, v) yield finally: - for k in values_for_context: - operation_context.pop(k) - operation_context._remove_otel_attributes(values_for_otel.keys()) - if original_mode is None: - operation_context.pop("run_mode") - else: - operation_context.run_mode = original_mode + OperationContext.set_instance(original_context) def _add_line_results(self, line_results: List[LineResult], run_tracker: Optional[RunTracker] = None): run_tracker = run_tracker or self._run_tracker From 6027499744c572e51c2ca523333b9f5e1c2f48b0 Mon Sep 17 00:00:00 2001 From: Zhengfei Wang <38847871+zhengfeiwang@users.noreply.github.com> Date: Fri, 8 Mar 2024 14:50:19 +0800 Subject: [PATCH 002/204] [internal][tracing] Make `start_trace` standalone (#2254) # Description As we will layer `promptflow` recently, and tracing should be the first to come out, this PR targets to separate `start_trace` to make it standalone from `promptflow`. All devkit (previous SDK and PFS) related functions are moved to a separate `_tracing.py` under `_sdk`. `start_trace` now works more like a tracer provider setting function without devkit; and session id now is an optional value, but with devkit, we will add it with default value `default` for easier management. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --- src/promptflow/promptflow/_sdk/_constants.py | 2 + .../_sdk/_service/apis/collector.py | 3 + .../_submitter/experiment_orchestrator.py | 7 +- src/promptflow/promptflow/_sdk/_tracing.py | 225 +++++++++++ .../promptflow/tracing/_constants.py | 10 +- .../promptflow/tracing/_start_trace.py | 350 +++--------------- .../sdk_cli_test/unittests/test_trace.py | 65 +--- .../unittests/test_start_trace.py | 53 ++- 8 files changed, 346 insertions(+), 369 deletions(-) create mode 100644 src/promptflow/promptflow/_sdk/_tracing.py diff --git a/src/promptflow/promptflow/_sdk/_constants.py b/src/promptflow/promptflow/_sdk/_constants.py index 192f485381c..3033b1c9d6b 100644 --- a/src/promptflow/promptflow/_sdk/_constants.py +++ b/src/promptflow/promptflow/_sdk/_constants.py @@ -81,6 +81,7 @@ def _prepare_home_dir() -> Path: PF_SERVICE_MONITOR_SECOND = 60 PF_SERVICE_WORKER_NUM = 16 PF_TRACE_CONTEXT = "PF_TRACE_CONTEXT" +PF_TRACE_CONTEXT_ATTR = "attributes" PF_SERVICE_DEBUG = "PF_SERVICE_DEBUG" LOCAL_MGMT_DB_PATH = (HOME_PROMPT_FLOW_DIR / "pf.sqlite").resolve() @@ -135,6 +136,7 @@ def _prepare_home_dir() -> Path: FLOW_DIRECTORY_MACRO_IN_CONFIG = "${flow_directory}" # trace +TRACE_DEFAULT_SESSION_ID = "default" TRACE_MGMT_DB_PATH = (HOME_PROMPT_FLOW_DIR / "trace.sqlite").resolve() TRACE_MGMT_DB_SESSION_ACQUIRE_LOCK_PATH = (HOME_PROMPT_FLOW_DIR / "trace.sqlite.lock").resolve() SPAN_TABLENAME = "span" diff --git a/src/promptflow/promptflow/_sdk/_service/apis/collector.py b/src/promptflow/promptflow/_sdk/_service/apis/collector.py index dfe90b90d4a..2923ee4e9aa 100644 --- a/src/promptflow/promptflow/_sdk/_service/apis/collector.py +++ b/src/promptflow/promptflow/_sdk/_service/apis/collector.py @@ -21,6 +21,7 @@ SpanResourceAttributesFieldName, SpanResourceFieldName, ) +from promptflow._sdk._constants import TRACE_DEFAULT_SESSION_ID from promptflow._sdk._utils import parse_kv_from_pb_attribute from promptflow._sdk.entities._trace import Span from promptflow._utils.thread_utils import ThreadWithContextVars @@ -39,6 +40,8 @@ def trace_collector(): attribute_dict = json.loads(MessageToJson(attribute)) attr_key, attr_value = parse_kv_from_pb_attribute(attribute_dict) resource_attributes[attr_key] = attr_value + if SpanResourceAttributesFieldName.SESSION_ID not in resource_attributes: + resource_attributes[SpanResourceAttributesFieldName.SESSION_ID] = TRACE_DEFAULT_SESSION_ID resource = { SpanResourceFieldName.ATTRIBUTES: resource_attributes, SpanResourceFieldName.SCHEMA_URL: resource_span.schema_url, diff --git a/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py b/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py index 52d07ac2f10..bd2c71c3761 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py +++ b/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py @@ -22,6 +22,7 @@ from promptflow._sdk._constants import ( PF_TRACE_CONTEXT, + PF_TRACE_CONTEXT_ATTR, PROMPT_FLOW_DIR_NAME, ContextAttributeKey, ExperimentNodeRunStatus, @@ -714,9 +715,9 @@ def get_node_context(self, node_name, is_flow, test=False): return node_context # Return the full json context for test global_context = os.environ.get(PF_TRACE_CONTEXT) - # Expected global context: {"endpoint": "..", "attributes": {..}} - global_context = json.loads(global_context) if global_context else {"endpoint": "", "attributes": {}} - global_context["attributes"].update(node_context) + # Expected global context: {"endpoint": "..", PF_TRACE_CONTEXT_ATTR: {..}} + global_context = json.loads(global_context) if global_context else {"endpoint": "", PF_TRACE_CONTEXT_ATTR: {}} + global_context[PF_TRACE_CONTEXT_ATTR].update(node_context) return {PF_TRACE_CONTEXT: json.dumps(global_context)} diff --git a/src/promptflow/promptflow/_sdk/_tracing.py b/src/promptflow/promptflow/_sdk/_tracing.py new file mode 100644 index 00000000000..b94fed763de --- /dev/null +++ b/src/promptflow/promptflow/_sdk/_tracing.py @@ -0,0 +1,225 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import json +import os +import typing +import urllib.parse + +from opentelemetry import trace +from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter +from opentelemetry.sdk.environment_variables import OTEL_EXPORTER_OTLP_ENDPOINT +from opentelemetry.sdk.resources import Resource +from opentelemetry.sdk.trace import TracerProvider +from opentelemetry.sdk.trace.export import BatchSpanProcessor + +from promptflow._constants import ( + OTEL_RESOURCE_SERVICE_NAME, + SpanAttributeFieldName, + SpanResourceAttributesFieldName, + TraceEnvironmentVariableName, +) +from promptflow._core.operation_context import OperationContext +from promptflow._sdk._configuration import Configuration +from promptflow._sdk._constants import ( + PF_TRACE_CONTEXT, + PF_TRACE_CONTEXT_ATTR, + AzureMLWorkspaceTriad, + ContextAttributeKey, +) +from promptflow._sdk._service.entry import entry +from promptflow._sdk._service.utils.utils import get_port_from_config, is_pfs_service_healthy, is_port_in_use +from promptflow._sdk._utils import extract_workspace_triad_from_trace_provider +from promptflow._utils.logger_utils import get_cli_sdk_logger +from promptflow.tracing._openai_injector import inject_openai_api +from promptflow.tracing._start_trace import _force_set_tracer_provider, _is_tracer_provider_set + +logger = get_cli_sdk_logger() + + +def get_ws_tracing_base_url(ws_triad: AzureMLWorkspaceTriad) -> str: + return ( + "https://int.ml.azure.com/prompts/trace/list" + f"?wsid=/subscriptions/{ws_triad.subscription_id}" + f"/resourceGroups/{ws_triad.resource_group_name}" + "/providers/Microsoft.MachineLearningServices" + f"/workspaces/{ws_triad.workspace_name}" + ) + + +def _inject_attrs_to_op_ctx(attrs: typing.Dict[str, str]) -> None: + if len(attrs) == 0: + return + logger.debug("Inject attributes %s to context", attrs) + op_ctx = OperationContext.get_instance() + for attr_key, attr_value in attrs.items(): + op_ctx._add_otel_attributes(attr_key, attr_value) + + +def _invoke_pf_svc() -> str: + port = get_port_from_config(create_if_not_exists=True) + port = str(port) + cmd_args = ["start", "--port", port] + if is_port_in_use(int(port)): + if not is_pfs_service_healthy(port): + cmd_args.append("--force") + else: + return port + entry(cmd_args) + logger.debug("Prompt flow service is serving on port %s", port) + return port + + +def _get_ws_triad_from_pf_config() -> typing.Optional[AzureMLWorkspaceTriad]: + ws_arm_id = Configuration.get_instance().get_trace_provider() + return extract_workspace_triad_from_trace_provider(ws_arm_id) if ws_arm_id is not None else None + + +# priority: run > experiment > session id +# for run(s) in experiment, we should print url with run(s) as it is more specific; +# and url with experiment should be printed at the beginning of experiment start. +# session id is the concept we expect to expose to users least, so it should have the lowest priority. +def _print_tracing_url_from_local( + pfs_port: str, + session_id: typing.Optional[str], + exp: typing.Optional[str] = None, + run: typing.Optional[str] = None, +) -> None: + url = f"http://localhost:{pfs_port}/v1.0/ui/traces" + if run is not None: + url += f"?run={run}" + elif exp is not None: + url += f"?experiment={exp}" + elif session_id is not None: + url += f"?session={session_id}" + print(f"You can view the traces from local: {url}") + + +def _print_tracing_url_from_azure_portal( + ws_triad: typing.Optional[AzureMLWorkspaceTriad], + session_id: typing.Optional[str], + exp: typing.Optional[str] = None, + run: typing.Optional[str] = None, +) -> None: + if ws_triad is None: + return + url = get_ws_tracing_base_url(ws_triad) + query = None + if run is not None: + query = '{"batchRunId":"' + run + '"}' + elif exp is not None: + # not consider experiment for now + pass + elif session_id is not None: + query = '{"sessionId":"' + session_id + '"}' + # urllib.parse.quote to encode the query parameter + if query is not None: + url += f"&searchText={urllib.parse.quote(query)}" + print(f"You can view the traces in cloud from Azure portal: {url}") + + +def _inject_res_attrs_to_environ( + pfs_port: str, + session_id: typing.Optional[str], + exp: typing.Optional[str] = None, + ws_triad: typing.Optional[AzureMLWorkspaceTriad] = None, +) -> None: + if session_id is not None: + os.environ[TraceEnvironmentVariableName.SESSION_ID] = session_id + if exp is not None: + os.environ[TraceEnvironmentVariableName.EXPERIMENT] = exp + if ws_triad is not None: + os.environ[TraceEnvironmentVariableName.SUBSCRIPTION_ID] = ws_triad.subscription_id + os.environ[TraceEnvironmentVariableName.RESOURCE_GROUP_NAME] = ws_triad.resource_group_name + os.environ[TraceEnvironmentVariableName.WORKSPACE_NAME] = ws_triad.workspace_name + # we will not overwrite the value if it is already set + if OTEL_EXPORTER_OTLP_ENDPOINT not in os.environ: + os.environ[OTEL_EXPORTER_OTLP_ENDPOINT] = f"http://localhost:{pfs_port}/v1/traces" + + +def _create_or_merge_res( + session_id: typing.Optional[str], + exp: typing.Optional[str] = None, + ws_triad: typing.Optional[AzureMLWorkspaceTriad] = None, +) -> Resource: + res_attrs = dict() + if session_id is not None: + res_attrs[SpanResourceAttributesFieldName.SESSION_ID] = session_id + if _is_tracer_provider_set(): + tracer_provider: TracerProvider = trace.get_tracer_provider() + for attr_key, attr_value in tracer_provider.resource.attributes.items(): + res_attrs[attr_key] = attr_value + res_attrs[SpanResourceAttributesFieldName.SERVICE_NAME] = OTEL_RESOURCE_SERVICE_NAME + if exp is not None: + res_attrs[SpanResourceAttributesFieldName.EXPERIMENT_NAME] = exp + if ws_triad is not None: + res_attrs[SpanResourceAttributesFieldName.SUBSCRIPTION_ID] = ws_triad.subscription_id + res_attrs[SpanResourceAttributesFieldName.RESOURCE_GROUP_NAME] = ws_triad.resource_group_name + res_attrs[SpanResourceAttributesFieldName.WORKSPACE_NAME] = ws_triad.workspace_name + return Resource(attributes=res_attrs) + + +def start_trace_with_devkit( + session_id: typing.Optional[str], + attrs: typing.Optional[typing.Dict[str, str]] = None, + run: typing.Optional[str] = None, +) -> None: + # honor and set attributes if user has specified + if isinstance(attrs, dict): + _inject_attrs_to_op_ctx(attrs) + + # experiment related attributes, pass from environment + env_tracing_ctx = os.environ.get(PF_TRACE_CONTEXT, None) + logger.debug("Read tracing context from environment: %s", env_tracing_ctx) + env_attrs = dict(json.loads(env_tracing_ctx)).get(PF_TRACE_CONTEXT_ATTR) if env_tracing_ctx else dict() + exp = env_attrs.get(ContextAttributeKey.EXPERIMENT, None) + ref_line_run_id = env_attrs.get(ContextAttributeKey.REFERENCED_LINE_RUN_ID, None) + op_ctx = OperationContext.get_instance() + # remove `referenced.line_run_id` from context to avoid stale value set by previous node + if ref_line_run_id: + op_ctx._remove_otel_attributes(SpanAttributeFieldName.REFERENCED_LINE_RUN_ID) + else: + op_ctx._add_otel_attributes(SpanAttributeFieldName.REFERENCED_LINE_RUN_ID, ref_line_run_id) + + # local to cloud feature + ws_triad = _get_ws_triad_from_pf_config() + # invoke prompt flow service + pfs_port = _invoke_pf_svc() + + _inject_res_attrs_to_environ(pfs_port=pfs_port, session_id=session_id, exp=exp, ws_triad=ws_triad) + # instrument openai and setup exporter to pfs here for flex mode + inject_openai_api() + setup_exporter_to_pfs() + # print tracing url(s) + _print_tracing_url_from_local(pfs_port=pfs_port, session_id=session_id, exp=exp, run=run) + _print_tracing_url_from_azure_portal(ws_triad=ws_triad, session_id=session_id, exp=exp, run=run) + + +def setup_exporter_to_pfs() -> None: + # get resource attributes from environment + session_id = os.getenv(TraceEnvironmentVariableName.SESSION_ID, None) + exp = os.getenv(TraceEnvironmentVariableName.EXPERIMENT, None) + # local to cloud scenario: workspace triad in resource.attributes + workspace_triad = None + subscription_id = os.getenv(TraceEnvironmentVariableName.SUBSCRIPTION_ID, None) + resource_group_name = os.getenv(TraceEnvironmentVariableName.RESOURCE_GROUP_NAME, None) + workspace_name = os.getenv(TraceEnvironmentVariableName.WORKSPACE_NAME, None) + if all([subscription_id, resource_group_name, workspace_name]): + workspace_triad = AzureMLWorkspaceTriad( + subscription_id=subscription_id, + resource_group_name=resource_group_name, + workspace_name=workspace_name, + ) + # create resource, or merge to existing resource + res = _create_or_merge_res(session_id=session_id, exp=exp, ws_triad=workspace_triad) + tracer_provider = TracerProvider(resource=res) + # get OTLP endpoint from environment + endpoint = os.getenv(OTEL_EXPORTER_OTLP_ENDPOINT) + otlp_span_exporter = OTLPSpanExporter(endpoint=endpoint) + tracer_provider.add_span_processor(BatchSpanProcessor(otlp_span_exporter)) + # set tracer provider + if _is_tracer_provider_set(): + _force_set_tracer_provider(tracer_provider) + else: + trace.set_tracer_provider(tracer_provider) diff --git a/src/promptflow/promptflow/tracing/_constants.py b/src/promptflow/promptflow/tracing/_constants.py index 16538927ae4..6b182c59ad4 100644 --- a/src/promptflow/promptflow/tracing/_constants.py +++ b/src/promptflow/promptflow/tracing/_constants.py @@ -2,4 +2,12 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -PF_TRACING_SKIP_LOCAL_SETUP = "PF_TRACING_SKIP_LOCAL_SETUP" + +class ResourceAttributesFieldName: + SERVICE_NAME = "service.name" + SESSION_ID = "session.id" + + +RESOURCE_ATTRIBUTES_SERVICE_NAME = "promptflow" + +PF_TRACING_SKIP_LOCAL_SETUP_ENVIRON = "PF_TRACING_SKIP_LOCAL_SETUP" diff --git a/src/promptflow/promptflow/tracing/_start_trace.py b/src/promptflow/promptflow/tracing/_start_trace.py index bdd540081f0..6df681793e4 100644 --- a/src/promptflow/promptflow/tracing/_start_trace.py +++ b/src/promptflow/promptflow/tracing/_start_trace.py @@ -1,335 +1,99 @@ # --------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -import json + import os import typing -import urllib.parse -import uuid from opentelemetry import trace -from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter -from opentelemetry.sdk.environment_variables import OTEL_EXPORTER_OTLP_ENDPOINT from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import TracerProvider -from opentelemetry.sdk.trace.export import BatchSpanProcessor -from promptflow._constants import ( - OTEL_RESOURCE_SERVICE_NAME, - SpanAttributeFieldName, - SpanResourceAttributesFieldName, - TraceEnvironmentVariableName, +from ._constants import ( + PF_TRACING_SKIP_LOCAL_SETUP_ENVIRON, + RESOURCE_ATTRIBUTES_SERVICE_NAME, + ResourceAttributesFieldName, ) -from promptflow._core.operation_context import OperationContext -from promptflow._sdk._configuration import Configuration -from promptflow._sdk._constants import PF_TRACE_CONTEXT, AzureMLWorkspaceTriad -from promptflow._sdk._service.utils.utils import is_pfs_service_healthy -from promptflow._sdk._utils import extract_workspace_triad_from_trace_provider -from promptflow._utils.logger_utils import get_cli_sdk_logger -from promptflow.tracing._constants import PF_TRACING_SKIP_LOCAL_SETUP - from ._openai_injector import inject_openai_api -_logger = get_cli_sdk_logger() - -def start_trace(*, session: typing.Optional[str] = None, **kwargs): +def start_trace( + *, + resource_attributes: typing.Optional[dict] = None, + session: typing.Optional[str] = None, + **kwargs, +): """Start a tracing session. - This will capture OpenAI and prompt flow related calls and persist traces; - it will also provide a UI url for user to visualize traces details. + Instrument `openai`, and set tracer provider for current tracing session. - Note that this function is still under preview, and may change at any time. + :param resource_attributes: Specify the resource attributes for current tracing session. + :type resource_attributes: typing.Optional[dict] + :param session: Specify the session id for current tracing session. + :type session: typing.Optional[str] """ - # trace is currently a preview feature, users should explicitly enable to use it - if Configuration.get_instance().is_internal_features_enabled() is False: - warning_message = ( - "`start_trace` is currently a preview feature, " - 'please enable it with `pf config set enable_internal_features="true"`' - ) - _logger.warning(warning_message) - return - - from promptflow._sdk._constants import ContextAttributeKey - - # set strict limitation for session id currently + # prepare resource.attributes and set tracer provider + res_attrs = {ResourceAttributesFieldName.SERVICE_NAME: RESOURCE_ATTRIBUTES_SERVICE_NAME} if session is not None: - _validate_session_id(session) - session_id = _provision_session_id(specified_session_id=session) - _logger.debug("current session id is %s", session_id) - - operation_context = OperationContext.get_instance() - - # honor and set attributes if user has specified - attributes: dict = kwargs.get("attributes", None) - if attributes is not None: - _logger.debug("User specified attributes: %s", attributes) - for attr_key, attr_value in attributes.items(): - operation_context._add_otel_attributes(attr_key, attr_value) - - # prompt flow related, retrieve `experiment` and `referenced.line_run_id` - env_trace_context = os.environ.get(PF_TRACE_CONTEXT, None) - _logger.debug("Read trace context from environment: %s", env_trace_context) - env_attributes = json.loads(env_trace_context).get("attributes") if env_trace_context else {} - experiment = env_attributes.get(ContextAttributeKey.EXPERIMENT, None) - ref_line_run_id = env_attributes.get(ContextAttributeKey.REFERENCED_LINE_RUN_ID, None) - # Remove reference line run id if it's None to avoid stale value set by previous node - if ref_line_run_id is None: - operation_context._remove_otel_attributes(SpanAttributeFieldName.REFERENCED_LINE_RUN_ID) - else: - operation_context._add_otel_attributes(SpanAttributeFieldName.REFERENCED_LINE_RUN_ID, ref_line_run_id) + res_attrs[ResourceAttributesFieldName.SESSION_ID] = session + if isinstance(resource_attributes, dict): + for attr_key, attr_value in resource_attributes.items(): + res_attrs[attr_key] = attr_value + _set_tracer_provider(res_attrs) if _skip_tracing_local_setup(): - _logger.debug("Environment variable {PF_TRACING_SKIP_LOCAL_SETUP!r} is set, skip local setup for tracing.") return - _tracing_local_setup( - session_id=session_id, - session_id_configured=session is not None, - experiment=experiment, - run=kwargs.get("run", None), - ) - - -def _skip_tracing_local_setup() -> bool: - return str(os.getenv(PF_TRACING_SKIP_LOCAL_SETUP, "false")).lower() == "true" - - -def _tracing_local_setup( - session_id: str, - session_id_configured: bool, - experiment: typing.Optional[str], - run: typing.Optional[str], -) -> None: - """Local setup for tracing. - - The setup includes: - 1. invoke local prompt flow service - 2. prepare OTLP exporter required environment variables - 3. check whether local to cloud feature is enabled - 4. print trace UI url(s) - Executor calls `setup_exporter_from_environ` to setup exporter from environment variables. - """ - from promptflow._sdk._service.utils.utils import get_port_from_config - - # invoke local prompt flow service - pfs_port = get_port_from_config(create_if_not_exists=True) - _start_pfs(pfs_port) - _logger.debug("Promptflow service is serving on port %s", pfs_port) - - # check whether local to cloud feature is enabled: trace provider from pf config - workspace_triad = _get_workspace_triad_from_config() - - # prepare OTLP exporter required environment variables - # init the global tracer with endpoint - _init_otel_trace_exporter( - otlp_port=pfs_port, - session_id=session_id, - experiment=experiment, - workspace_triad=workspace_triad, - ) + if _is_devkit_installed(): + from promptflow._sdk._tracing import start_trace_with_devkit - # print trace UI url(s) - print_url_kwargs = { - "session_configured": session_id_configured, - "experiment": experiment, - "run": run, - "session_id": session_id, - } - _print_trace_url_for_local(pfs_port=pfs_port, **print_url_kwargs) - _print_trace_url_for_local_to_cloud(workspace_triad=workspace_triad, **print_url_kwargs) + start_trace_with_devkit( + session_id=session, + attrs=kwargs.get("attributes", None), + run=kwargs.get("run", None), + ) -def _start_pfs(pfs_port) -> None: - from promptflow._sdk._service.entry import entry - from promptflow._sdk._service.utils.utils import is_port_in_use +def setup_exporter_from_environ() -> None: + # openai instrumentation + inject_openai_api() - command_args = ["start", "--port", str(pfs_port)] - if is_port_in_use(pfs_port): - is_healthy = is_pfs_service_healthy(pfs_port) - if not is_healthy: - command_args += ["--force"] - else: - return - entry(command_args) + if _is_devkit_installed(): + from promptflow._sdk._tracing import setup_exporter_to_pfs + setup_exporter_to_pfs() -def _is_tracer_provider_configured() -> bool: - # if tracer provider is configured, `tracer_provider` should be an instance of `TracerProvider`; - # otherwise, it should be an instance of `ProxyTracerProvider` - tracer_provider = trace.get_tracer_provider() - return isinstance(tracer_provider, TracerProvider) +def _skip_tracing_local_setup() -> bool: + return str(os.getenv(PF_TRACING_SKIP_LOCAL_SETUP_ENVIRON, "false")).lower() == "true" -def _provision_session_id(specified_session_id: typing.Optional[str]) -> str: - # check if session id is configured in tracer provider - configured_session_id = None - if _is_tracer_provider_configured(): - tracer_provider: TracerProvider = trace.get_tracer_provider() - configured_session_id = tracer_provider._resource.attributes[SpanResourceAttributesFieldName.SESSION_ID] - if specified_session_id is None and configured_session_id is None: - # user does not specify and not configured, provision a new one - session_id = str(uuid.uuid4()) - elif specified_session_id is None and configured_session_id is not None: - # user does not specify, but already configured, use the configured one - session_id = configured_session_id - elif specified_session_id is not None and configured_session_id is None: - # user specified, but not configured, use the specified one - session_id = specified_session_id - else: - # user specified while configured, log warnings and honor the configured one - session_id = configured_session_id - warning_message = ( - f"Session is already configured with id: {session_id!r}, " - "we will honor it within current process; " - "if you expect another session, please specify it in another process." - ) - _logger.warning(warning_message) - return session_id +def _is_tracer_provider_set() -> bool: + return isinstance(trace.get_tracer_provider(), TracerProvider) -def _create_resource( - session_id: str, - experiment: typing.Optional[str] = None, - workspace_triad: typing.Optional[AzureMLWorkspaceTriad] = None, -) -> Resource: - resource_attributes = { - SpanResourceAttributesFieldName.SERVICE_NAME: OTEL_RESOURCE_SERVICE_NAME, - SpanResourceAttributesFieldName.SESSION_ID: session_id, - } - if experiment is not None: - resource_attributes[SpanResourceAttributesFieldName.EXPERIMENT_NAME] = experiment - if workspace_triad is not None: - resource_attributes[SpanResourceAttributesFieldName.SUBSCRIPTION_ID] = workspace_triad.subscription_id - resource_attributes[SpanResourceAttributesFieldName.RESOURCE_GROUP_NAME] = workspace_triad.resource_group_name - resource_attributes[SpanResourceAttributesFieldName.WORKSPACE_NAME] = workspace_triad.workspace_name - return Resource(attributes=resource_attributes) +def _force_set_tracer_provider(tracer_provider: TracerProvider) -> None: + from opentelemetry.trace import _TRACER_PROVIDER_SET_ONCE + with _TRACER_PROVIDER_SET_ONCE._lock: + _TRACER_PROVIDER_SET_ONCE._done = False -def setup_exporter_from_environ() -> None: - # openai instrumentation - # in eager mode, the code cannot reach executor logic to apply injection - # explicitly inject here, so that it can work in new process/thread - inject_openai_api() - # if session id does not exist in environment variables, it should be in runtime environment - # where we have not supported tracing yet, so we don't need to setup any exporter here - # directly return - if TraceEnvironmentVariableName.SESSION_ID not in os.environ: - return - if _is_tracer_provider_configured(): - _logger.debug("tracer provider is already configured, skip setting up again.") - return - - # get resource values from environment variables - session_id = os.getenv(TraceEnvironmentVariableName.SESSION_ID) - experiment = os.getenv(TraceEnvironmentVariableName.EXPERIMENT, None) - # local to cloud: trace provider - workspace_triad = None - subscription_id = os.getenv(TraceEnvironmentVariableName.SUBSCRIPTION_ID, None) - resource_group_name = os.getenv(TraceEnvironmentVariableName.RESOURCE_GROUP_NAME, None) - workspace_name = os.getenv(TraceEnvironmentVariableName.WORKSPACE_NAME, None) - if all([subscription_id, resource_group_name, workspace_name]): - workspace_triad = AzureMLWorkspaceTriad( - subscription_id=subscription_id, - resource_group_name=resource_group_name, - workspace_name=workspace_name, - ) - # create resource - resource = _create_resource( - session_id=session_id, - experiment=experiment, - workspace_triad=workspace_triad, - ) - tracer_provider = TracerProvider(resource=resource) - # get OTLP endpoint from environment variable - endpoint = os.getenv(OTEL_EXPORTER_OTLP_ENDPOINT) - # Set timeout as 30 seconds since creating cosmosDB client is time consuming - otlp_span_exporter = OTLPSpanExporter(endpoint=endpoint, timeout=30) - tracer_provider.add_span_processor(BatchSpanProcessor(otlp_span_exporter)) trace.set_tracer_provider(tracer_provider) -def _init_otel_trace_exporter( - otlp_port: str, - session_id: str, - experiment: typing.Optional[str] = None, - workspace_triad: typing.Optional[AzureMLWorkspaceTriad] = None, -) -> None: - endpoint = f"http://localhost:{otlp_port}/v1/traces" - os.environ[OTEL_EXPORTER_OTLP_ENDPOINT] = endpoint - os.environ[TraceEnvironmentVariableName.SESSION_ID] = session_id - if experiment is not None: - os.environ[TraceEnvironmentVariableName.EXPERIMENT] = experiment - if workspace_triad is not None: - os.environ[TraceEnvironmentVariableName.SUBSCRIPTION_ID] = workspace_triad.subscription_id - os.environ[TraceEnvironmentVariableName.RESOURCE_GROUP_NAME] = workspace_triad.resource_group_name - os.environ[TraceEnvironmentVariableName.WORKSPACE_NAME] = workspace_triad.workspace_name - setup_exporter_from_environ() - - -# priority: run > experiment > session -# for run(s) in experiment, we should print url with run(s) as it is more specific; -# and url with experiment should be printed at the beginning of experiment start. -# session id is the concept we expect to expose to users least, so it should have the lowest priority. -def _print_trace_url_for_local( - pfs_port: str, - session_configured: bool, - experiment: typing.Optional[str] = None, - run: typing.Optional[str] = None, - session_id: typing.Optional[str] = None, -) -> None: - url = f"http://localhost:{pfs_port}/v1.0/ui/traces" - if run is not None: - url += f"?run={run}" - elif experiment is not None: - url += f"?experiment={experiment}" - elif session_configured and session_id is not None: - url += f"?session={session_id}" - print(f"You can view the trace from local PFS: {url}") - - -def _print_trace_url_for_local_to_cloud( - workspace_triad: typing.Optional[AzureMLWorkspaceTriad], - session_configured: bool, - experiment: typing.Optional[str] = None, - run: typing.Optional[str] = None, - session_id: typing.Optional[str] = None, -) -> None: - # if user has configured trace.provider, we can extract workspace triad from it - # this indicates local to cloud feature is enabled, then print the url in portal - if workspace_triad is None: - return - # &searchText={"sessionId":"8baa9e34-3d23-497a-8ec8-39b84cdb7a40","batchRunId":"test_main_variant_0_20240229_111938_229535"} - url = ( - "https://int.ml.azure.com/prompts/trace/list" - f"?wsid=/subscriptions/{workspace_triad.subscription_id}" - f"/resourceGroups/{workspace_triad.resource_group_name}" - "/providers/Microsoft.MachineLearningServices" - f"/workspaces/{workspace_triad.workspace_name}" - ) - query = None - if run is not None: - query = '{"batchRunId":"' + run + '"}' - elif experiment is not None: - # not consider experiment for now - pass - elif session_configured and session_id is not None: - query = '{"sessionId":"' + session_id + '"}' - # urllib.parse.quote to encode the query parameter - if query is not None: - url += f"&searchText={urllib.parse.quote(query)}" - print(f"You can view the trace in cloud from Azure portal: {url}") - +def _set_tracer_provider(res_attrs: typing.Dict[str, str]) -> None: + res = Resource(attributes=res_attrs) + tracer_provider = TracerProvider(resource=res) + if _is_tracer_provider_set(): + _force_set_tracer_provider(tracer_provider) + else: + trace.set_tracer_provider(tracer_provider) -def _get_workspace_triad_from_config() -> typing.Optional[AzureMLWorkspaceTriad]: - trace_provider = Configuration.get_instance().get_trace_provider() - if trace_provider is None: - return None - return extract_workspace_triad_from_trace_provider(trace_provider) +def _is_devkit_installed() -> bool: + try: + from promptflow._sdk._tracing import setup_exporter_to_pfs, start_trace_with_devkit # noqa: F401 -def _validate_session_id(value: str) -> None: - # session id should only contain `[A-Z, a-z, 0-9, _, -]`` for now - if not value.replace("-", "").replace("_", "").isalnum(): - raise ValueError("session id should only contain `[A-Z, a-z, 0-9, _, -]` for now.") + return True + except ImportError: + return False diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py b/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py index 0021d9aa468..58d9fe73d79 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py @@ -16,13 +16,7 @@ from promptflow._constants import SpanResourceAttributesFieldName, SpanResourceFieldName, TraceEnvironmentVariableName from promptflow._sdk.entities._trace import Span -from promptflow.tracing._start_trace import ( - _create_resource, - _is_tracer_provider_configured, - _provision_session_id, - _validate_session_id, - setup_exporter_from_environ, -) +from promptflow.tracing._start_trace import _is_tracer_provider_set, setup_exporter_from_environ @pytest.fixture @@ -49,27 +43,9 @@ def mock_resource() -> Dict: @pytest.mark.sdk_test @pytest.mark.unittest class TestStartTrace: - def test_session_id_validation(self) -> None: - # [A-Za-z0-9_-] - _validate_session_id(str(uuid.uuid4())) - # space - with pytest.raises(ValueError): - _validate_session_id("test session") - - def test_create_resource(self) -> None: - session_id = str(uuid.uuid4()) - resource1 = _create_resource(session_id=session_id) - assert resource1.attributes[SpanResourceAttributesFieldName.SESSION_ID] == session_id - assert SpanResourceAttributesFieldName.EXPERIMENT_NAME not in resource1.attributes - - experiment = "test_experiment" - resource2 = _create_resource(session_id=session_id, experiment=experiment) - assert resource2.attributes[SpanResourceAttributesFieldName.SESSION_ID] == session_id - assert resource2.attributes[SpanResourceAttributesFieldName.EXPERIMENT_NAME] == experiment - @pytest.mark.usefixtures("reset_tracer_provider") def test_setup_exporter_from_environ(self) -> None: - assert not _is_tracer_provider_configured() + assert not _is_tracer_provider_set() # set some required environment variables endpoint = "http://localhost:23333/v1/traces" @@ -86,44 +62,11 @@ def test_setup_exporter_from_environ(self) -> None: ): setup_exporter_from_environ() - assert _is_tracer_provider_configured() + assert _is_tracer_provider_set() tracer_provider: TracerProvider = trace.get_tracer_provider() assert session_id == tracer_provider._resource.attributes[SpanResourceAttributesFieldName.SESSION_ID] assert experiment == tracer_provider._resource.attributes[SpanResourceAttributesFieldName.EXPERIMENT_NAME] - @pytest.mark.usefixtures("reset_tracer_provider") - def test_provision_session_id(self) -> None: - # no specified, session id should be a valid UUID - session_id = _provision_session_id(specified_session_id=None) - # below assert applys a UUID type check for `session_id` - assert session_id == str(uuid.UUID(session_id, version=4)) - - # specified session id - specified_session_id = str(uuid.uuid4()) - session_id = _provision_session_id(specified_session_id=specified_session_id) - assert session_id == specified_session_id - - # within a configured tracer provider - endpoint = "http://localhost:23333/v1/traces" - configured_session_id = str(uuid.uuid4()) - with patch.dict( - os.environ, - { - OTEL_EXPORTER_OTLP_ENDPOINT: endpoint, - TraceEnvironmentVariableName.SESSION_ID: configured_session_id, - }, - clear=True, - ): - setup_exporter_from_environ() - - # no specified - session_id = _provision_session_id(specified_session_id=None) - assert configured_session_id == session_id - - # specified, but still honor the configured one - session_id = _provision_session_id(specified_session_id=str(uuid.uuid4())) - assert configured_session_id == session_id - @pytest.mark.usefixtures("reset_tracer_provider") def test_local_to_cloud_resource(self) -> None: with patch.dict( @@ -137,7 +80,7 @@ def test_local_to_cloud_resource(self) -> None: clear=True, ): setup_exporter_from_environ() - tracer_provider = trace.get_tracer_provider() + tracer_provider: TracerProvider = trace.get_tracer_provider() res_attrs = dict(tracer_provider.resource.attributes) assert res_attrs[SpanResourceAttributesFieldName.SUBSCRIPTION_ID] == "test_subscription_id" assert res_attrs[SpanResourceAttributesFieldName.RESOURCE_GROUP_NAME] == "test_resource_group_name" diff --git a/src/promptflow/tests/tracing_test/unittests/test_start_trace.py b/src/promptflow/tests/tracing_test/unittests/test_start_trace.py index b3a0b26ca9d..4f0292c045f 100644 --- a/src/promptflow/tests/tracing_test/unittests/test_start_trace.py +++ b/src/promptflow/tests/tracing_test/unittests/test_start_trace.py @@ -2,25 +2,56 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- +import uuid + import pytest +from opentelemetry import trace +from opentelemetry.sdk.trace import TracerProvider from pytest_mock import MockerFixture import promptflow.tracing._start_trace -from promptflow._sdk._configuration import Configuration from promptflow.tracing import start_trace -from promptflow.tracing._constants import PF_TRACING_SKIP_LOCAL_SETUP +from promptflow.tracing._constants import ( + PF_TRACING_SKIP_LOCAL_SETUP_ENVIRON, + RESOURCE_ATTRIBUTES_SERVICE_NAME, + ResourceAttributesFieldName, +) @pytest.mark.unittest class TestStartTrace: + def test_tracer_provider_after_start_trace(self) -> None: + start_trace() + tracer_provider = trace.get_tracer_provider() + assert isinstance(tracer_provider, TracerProvider) + attrs = tracer_provider.resource.attributes + assert attrs[ResourceAttributesFieldName.SERVICE_NAME] == RESOURCE_ATTRIBUTES_SERVICE_NAME + assert ResourceAttributesFieldName.SESSION_ID not in attrs + + def test_tracer_provider_overwritten(self) -> None: + trace.set_tracer_provider(TracerProvider()) + old_tracer_provider = trace.get_tracer_provider() + start_trace() + new_tracer_provider = trace.get_tracer_provider() + assert id(old_tracer_provider) != id(new_tracer_provider) + + def test_tracer_provider_resource_attributes(self) -> None: + session_id = str(uuid.uuid4()) + res_attrs = {"attr1": "value1", "attr2": "value2"} + start_trace(resource_attributes=res_attrs, session=session_id) + tracer_provider: TracerProvider = trace.get_tracer_provider() + attrs = tracer_provider.resource.attributes + assert attrs[ResourceAttributesFieldName.SESSION_ID] == session_id + assert attrs["attr1"] == "value1" + assert attrs["attr2"] == "value2" + def test_skip_tracing_local_setup(self, monkeypatch: pytest.MonkeyPatch, mocker: MockerFixture) -> None: - spy = mocker.spy(promptflow.tracing._start_trace, "_tracing_local_setup") - with mocker.patch.object(Configuration, "is_internal_features_enabled", return_value=True): - # configured environ to skip local setup - with monkeypatch.context() as m: - m.setenv(PF_TRACING_SKIP_LOCAL_SETUP, "true") - start_trace() - assert spy.call_count == 0 - # no environ, should call local setup once + spy = mocker.spy(promptflow.tracing._start_trace, "_is_devkit_installed") + # configured environ to skip local setup + with monkeypatch.context() as m: + m.setenv(PF_TRACING_SKIP_LOCAL_SETUP_ENVIRON, "true") start_trace() - assert spy.call_count == 1 + assert spy.call_count == 0 + # no environ, should call local setup once + start_trace() + assert spy.call_count == 1 From 01e481f4dd09770e13510d84b52f618f5a450e85 Mon Sep 17 00:00:00 2001 From: Han Wang Date: Fri, 8 Mar 2024 14:51:37 +0800 Subject: [PATCH 003/204] [Doc] Add environment variable in flow.dag.yaml reference doc (#2263) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. This pull request primarily includes changes to the `flow-yaml-schema-reference.md` file, which is part of the documentation for the YAML schema. The changes mainly involve modifications to the formatting of the tables in the document. The most significant changes include the adjustment of the column width in several tables and the addition of a new field, `environment_variables`, in the `nodes` section. Formatting changes: * [`docs/reference/flow-yaml-schema-reference.md`](diffhunk://#diff-ee48baad7764b577cd9b539588af7e0d9856d7faedd0489dfcf0ec5e3e27bb39L12-R12): Adjusted the column width in the tables under the `YAML syntax`, `Flow input`, `Nodes`, and `Node variants` sections. These changes help to improve the readability of the tables. [[1]](diffhunk://#diff-ee48baad7764b577cd9b539588af7e0d9856d7faedd0489dfcf0ec5e3e27bb39L12-R12) [[2]](diffhunk://#diff-ee48baad7764b577cd9b539588af7e0d9856d7faedd0489dfcf0ec5e3e27bb39R21-R28) [[3]](diffhunk://#diff-ee48baad7764b577cd9b539588af7e0d9856d7faedd0489dfcf0ec5e3e27bb39L47-R48) [[4]](diffhunk://#diff-ee48baad7764b577cd9b539588af7e0d9856d7faedd0489dfcf0ec5e3e27bb39L64-R65) Addition of new field: * [`docs/reference/flow-yaml-schema-reference.md`](diffhunk://#diff-ee48baad7764b577cd9b539588af7e0d9856d7faedd0489dfcf0ec5e3e27bb39R21-R28): Added a new field, `environment_variables`, to the `nodes` section. This field allows users to set environment variables by specifying a property path and value. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- docs/reference/flow-yaml-schema-reference.md | 69 ++++++++++---------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/docs/reference/flow-yaml-schema-reference.md b/docs/reference/flow-yaml-schema-reference.md index 7804eaf5aab..c9e0a54fb7f 100644 --- a/docs/reference/flow-yaml-schema-reference.md +++ b/docs/reference/flow-yaml-schema-reference.md @@ -8,28 +8,29 @@ The source JSON schema can be found at [Flow.schema.json](https://azuremlschemas ## YAML syntax -| Key | Type | Description | -|----------------------------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `$schema` | string | The YAML schema. If you use the prompt flow VS Code extension to author the YAML file, including `$schema` at the top of your file enables you to invoke schema and resource completions. | -| `inputs` | object | Dictionary of flow inputs. The key is a name for the input within the context of the flow and the value is the flow input definition. | -| `inputs.` | object | The flow input definition. See [Flow input](#flow-input) for the set of configurable properties. | -| `outputs` | object | Dictionary of flow outputs. The key is a name for the output within the context of the flow and the value is the flow output definition. | -| `outputs.` | object | The component output definition. See [Flow output](#flow-output) for the set of configurable properties. | -| `nodes` | array | Sets of dictionary of individual nodes to run as steps within the flow. Node can use built-in tool or third-party tool. See [Nodes](#nodes) for more information. | -| `node_variants` | object | Dictionary of nodes with variants. The key is the node name and value contains variants definition and `default_variant_id`. See [Node variants](#node-variants) for more information. | -| `environment` | object | The environment to use for the flow. The key can be `image` or `python_requirements_txt` and the value can be either a image or a python requirements text file. | -| `additional_includes` | array | Additional includes is a list of files that can be shared among flows. Users can specify additional files and folders used by flow, and prompt flow will help copy them all to the snapshot during flow creation. | +| Key | Type | Description | +|-------------------------|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `$schema` | string | The YAML schema. If you use the prompt flow VS Code extension to author the YAML file, including `$schema` at the top of your file enables you to invoke schema and resource completions. | +| `inputs` | object | Dictionary of flow inputs. The key is a name for the input within the context of the flow and the value is the flow input definition. | +| `inputs.` | object | The flow input definition. See [Flow input](#flow-input) for the set of configurable properties. | +| `outputs` | object | Dictionary of flow outputs. The key is a name for the output within the context of the flow and the value is the flow output definition. | +| `outputs.` | object | The component output definition. See [Flow output](#flow-output) for the set of configurable properties. | +| `nodes` | array | Sets of dictionary of individual nodes to run as steps within the flow. Node can use built-in tool or third-party tool. See [Nodes](#nodes) for more information. | +| `node_variants` | object | Dictionary of nodes with variants. The key is the node name and value contains variants definition and `default_variant_id`. See [Node variants](#node-variants) for more information. | +| `environment` | object | The environment to use for the flow. The key can be `image` or `python_requirements_txt` and the value can be either a image or a python requirements text file. | +| `environment_variables` | object/string | Environment variables to set by specifying a property path and value. Example: `{"key1"="${my_connection.api_key}"}`. The value reference to connection keys will be resolved to the actual value, and all environment variables specified will be set into os.environ. | +| `additional_includes` | array | Additional includes is a list of files that can be shared among flows. Users can specify additional files and folders used by flow, and prompt flow will help copy them all to the snapshot during flow creation. | ### Flow input -| Key | Type | Description | Allowed values | -|-------------------|-------------------------------------------|------------------------------------------------------|-----------------------------------------------------| -| `type` | string | The type of flow input. | `int`, `double`, `bool`, `string`, `list`, `object`, `image` | -| `description` | string | Description of the input. | | -| `default` | int, double, bool, string, list, object, image | The default value for the input. | | -| `is_chat_input` | boolean | Whether the input is the chat flow input. | | -| `is_chat_history` | boolean | Whether the input is the chat history for chat flow. | | +| Key | Type | Description | Allowed values | +|-------------------|------------------------------------------------|------------------------------------------------------|--------------------------------------------------------------| +| `type` | string | The type of flow input. | `int`, `double`, `bool`, `string`, `list`, `object`, `image` | +| `description` | string | Description of the input. | | +| `default` | int, double, bool, string, list, object, image | The default value for the input. | | +| `is_chat_input` | boolean | Whether the input is the chat flow input. | | +| `is_chat_history` | boolean | Whether the input is the chat history for chat flow. | | ### Flow output @@ -43,28 +44,28 @@ The source JSON schema can be found at [Flow.schema.json](https://azuremlschemas ### Nodes Nodes is a set of node which is a dictionary with following fields. Below, we only show the common fields of a single node using built-in tool. -| Key | Type | Description | Allowed values | -|----------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------| -| `name` | string | The name of the node. | | -| `type` | string | The type of the node. | Type of built-in tool like `Python`, `Prompt`, `LLM` and third-party tool like `Vector Search`, etc. | -| `inputs` | object | Dictionary of node inputs. The key is the input name and the value can be primitive value or a reference to the flow input or the node output, e.g. `${inputs.}`, `${.output}` or `${.output.}` | | -| `source` | object | Dictionary of tool source used by the node. The key contains `type`, `path` and `tool`. The type can be `code`, `package` and `package_with_prompt`. | | -| `provider` | string | It indicates the provider of the tool. Used when the `type` is LLM. | `AzureOpenAI` or `OpenAI` | -| `connection` | string | The connection name which has been created before. Used when the `type` is LLM. | | -| `api` | string | The api name of the provider. Used when the `type` is LLM. | | -| `module` | string | The module name of the tool using by the node. Used when the `type` is LLM. | | -| `use_variants` | bool | Whether the node has variants. | | +| Key | Type | Description | Allowed values | +|----------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------| +| `name` | string | The name of the node. | | +| `type` | string | The type of the node. | Type of built-in tool like `Python`, `Prompt`, `LLM` and third-party tool like `Vector Search`, etc. | +| `inputs` | object | Dictionary of node inputs. The key is the input name and the value can be primitive value or a reference to the flow input or the node output, e.g. `${inputs.}`, `${.output}` or `${.output.}` | | +| `source` | object | Dictionary of tool source used by the node. The key contains `type`, `path` and `tool`. The type can be `code`, `package` and `package_with_prompt`. | | +| `provider` | string | It indicates the provider of the tool. Used when the `type` is LLM. | `AzureOpenAI` or `OpenAI` | +| `connection` | string | The connection name which has been created before. Used when the `type` is LLM. | | +| `api` | string | The api name of the provider. Used when the `type` is LLM. | | +| `module` | string | The module name of the tool using by the node. Used when the `type` is LLM. | | +| `use_variants` | bool | Whether the node has variants. | | ### Node variants Node variants is a dictionary containing variants definition for nodes with variants with their respective node names as dictionary keys. Below, we explore the variants for a single node. -| Key | Type | Description | Allowed values | -|----------------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------| -| `` | string | The name of the node. | | -| `default_variant_id` | string | Default variant id. | | -| `variants ` | object | This dictionary contains all node variations, with the variant id serving as the key and a node definition dictionary as the corresponding value. Within the node definition dictionary, the key labeled 'node' should contain a variant definition similar to [Nodes](#nodes), excluding the 'name' field. | | +| Key | Type | Description | Allowed values | +|----------------------|--------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------| +| `` | string | The name of the node. | | +| `default_variant_id` | string | Default variant id. | | +| `variants ` | object | This dictionary contains all node variations, with the variant id serving as the key and a node definition dictionary as the corresponding value. Within the node definition dictionary, the key labeled 'node' should contain a variant definition similar to [Nodes](#nodes), excluding the 'name' field. | | From 3adf43bc2d2178683f50a959f4a7c2661eb07c3f Mon Sep 17 00:00:00 2001 From: riddle xu Date: Fri, 8 Mar 2024 15:31:43 +0800 Subject: [PATCH 004/204] Add logger parameter for trace_collector (#2269) # Description Currently, trace_collector use logger from flask to do log. We need to support pass in logger as parameter to let runtime can reuse this code. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Yangtong Xu --- .../_sdk/_service/apis/collector.py | 19 ++++++++++--------- .../promptflow/_sdk/_service/app.py | 2 +- .../azure/_storage/cosmosdb/summary.py | 16 ++++++++-------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/promptflow/promptflow/_sdk/_service/apis/collector.py b/src/promptflow/promptflow/_sdk/_service/apis/collector.py index 2923ee4e9aa..0a31761074b 100644 --- a/src/promptflow/promptflow/_sdk/_service/apis/collector.py +++ b/src/promptflow/promptflow/_sdk/_service/apis/collector.py @@ -8,10 +8,11 @@ # to provide OTLP/HTTP endpoint as OTEL collector import json +import logging import traceback from datetime import datetime -from flask import current_app, request +from flask import request from google.protobuf.json_format import MessageToJson from opentelemetry.proto.collector.trace.v1.trace_service_pb2 import ExportTraceServiceRequest @@ -27,7 +28,7 @@ from promptflow._utils.thread_utils import ThreadWithContextVars -def trace_collector(): +def trace_collector(logger: logging.Logger): content_type = request.headers.get("Content-Type") # binary protobuf encoding if "application/x-protobuf" in content_type: @@ -54,7 +55,7 @@ def trace_collector(): all_spans.append(span) # Create a new thread to write trace to cosmosdb to avoid blocking the main thread - ThreadWithContextVars(target=_try_write_trace_to_cosmosdb, args=(all_spans,)).start() + ThreadWithContextVars(target=_try_write_trace_to_cosmosdb, args=(all_spans, logger)).start() return "Traces received", 200 # JSON protobuf encoding @@ -62,7 +63,7 @@ def trace_collector(): raise NotImplementedError -def _try_write_trace_to_cosmosdb(all_spans): +def _try_write_trace_to_cosmosdb(all_spans, logger: logging.Logger): if not all_spans: return try: @@ -72,10 +73,10 @@ def _try_write_trace_to_cosmosdb(all_spans): resource_group_name = resource_attributes.get(SpanResourceAttributesFieldName.RESOURCE_GROUP_NAME, None) workspace_name = resource_attributes.get(SpanResourceAttributesFieldName.WORKSPACE_NAME, None) if subscription_id is None or resource_group_name is None or workspace_name is None: - current_app.logger.debug("Cannot find workspace info in span resource, skip writing trace to cosmosdb.") + logger.debug("Cannot find workspace info in span resource, skip writing trace to cosmosdb.") return - current_app.logger.info(f"Start writing trace to cosmosdb, total spans count: {len(all_spans)}.") + logger.info(f"Start writing trace to cosmosdb, total spans count: {len(all_spans)}.") start_time = datetime.now() from promptflow._sdk._service.app import CREATED_BY_FOR_LOCAL_TO_CLOUD_TRACE from promptflow.azure._storage.cosmosdb.client import get_client @@ -101,8 +102,8 @@ def _try_write_trace_to_cosmosdb(all_spans): line_summary_client = get_client( CosmosDBContainerName.LINE_SUMMARY, subscription_id, resource_group_name, workspace_name ) - Summary(span, CREATED_BY_FOR_LOCAL_TO_CLOUD_TRACE).persist(line_summary_client) - current_app.logger.info( + Summary(span, CREATED_BY_FOR_LOCAL_TO_CLOUD_TRACE, logger).persist(line_summary_client) + logger.info( ( f"Finish writing trace to cosmosdb, total spans count: {len(all_spans)}." f" Duration {datetime.now() - start_time}." @@ -111,5 +112,5 @@ def _try_write_trace_to_cosmosdb(all_spans): except Exception as e: stack_trace = traceback.format_exc() - current_app.logger.error(f"Failed to write trace to cosmosdb: {e}, stack trace is {stack_trace}") + logger.error(f"Failed to write trace to cosmosdb: {e}, stack trace is {stack_trace}") return diff --git a/src/promptflow/promptflow/_sdk/_service/app.py b/src/promptflow/promptflow/_sdk/_service/app.py index f2f2484efa7..30993d0da05 100644 --- a/src/promptflow/promptflow/_sdk/_service/app.py +++ b/src/promptflow/promptflow/_sdk/_service/app.py @@ -54,7 +54,7 @@ def create_app(): CORS(app) app.add_url_rule("/heartbeat", view_func=heartbeat) - app.add_url_rule("/v1/traces", view_func=trace_collector, methods=["POST"]) + app.add_url_rule("/v1/traces", view_func=lambda: trace_collector(app.logger), methods=["POST"]) with app.app_context(): api_v1 = Blueprint("Prompt Flow Service", __name__, url_prefix="/v1.0") diff --git a/src/promptflow/promptflow/azure/_storage/cosmosdb/summary.py b/src/promptflow/promptflow/azure/_storage/cosmosdb/summary.py index fad1e80b033..74f3c6f8549 100644 --- a/src/promptflow/promptflow/azure/_storage/cosmosdb/summary.py +++ b/src/promptflow/promptflow/azure/_storage/cosmosdb/summary.py @@ -1,10 +1,9 @@ import datetime +import logging import time import typing from dataclasses import asdict, dataclass, field -from flask import current_app - from promptflow._constants import SpanAttributeFieldName, SpanFieldName, SpanStatusFieldName from promptflow._sdk._utils import json_loads_parse_const_as_str from promptflow._sdk.entities._trace import Span @@ -60,9 +59,10 @@ class LineEvaluation: class Summary: - def __init__(self, span: Span, created_by: typing.Dict) -> None: + def __init__(self, span: Span, created_by: typing.Dict, logger: logging.Logger) -> None: self.span = span self.created_by = created_by + self.logger = logger def persist(self, client): if self.span.parent_span_id: @@ -77,7 +77,7 @@ def persist(self, client): SpanAttributeFieldName.LINE_RUN_ID not in attributes and SpanAttributeFieldName.BATCH_RUN_ID not in attributes ): - current_app.logger.info( + self.logger.info( "No line run id or batch run id found. Could be aggregate node, eager flow or arbitrary script. " "Ignore for patching evaluations." ) @@ -142,7 +142,7 @@ def _persist_line_run(self, client): item.batch_run_id = attributes[SpanAttributeFieldName.BATCH_RUN_ID] item.line_number = attributes[SpanAttributeFieldName.LINE_NUMBER] - current_app.logger.info(f"Persist main run for LineSummary id: {item.id}") + self.logger.info(f"Persist main run for LineSummary id: {item.id}") return client.create_item(body=asdict(item)) def _insert_evaluation(self, client): @@ -167,7 +167,7 @@ def _insert_evaluation(self, client): if items: main_id = items[0]["id"] else: - current_app.logger.error(f"Cannot find main run for line run id: {line_run_id}") + self.logger.error(f"Cannot find main run for line run id: {line_run_id}") return line_run_id = attributes[SpanAttributeFieldName.LINE_RUN_ID] item.line_run_id = line_run_id @@ -184,7 +184,7 @@ def _insert_evaluation(self, client): if items: main_id = items[0]["id"] else: - current_app.logger.error( + self.logger.error( f"Cannot find main run for batch run id: {referenced_batch_run_id} and line number: {line_number}" ) return @@ -192,5 +192,5 @@ def _insert_evaluation(self, client): item.line_number = attributes[SpanAttributeFieldName.LINE_NUMBER] patch_operations = [{"op": "add", "path": f"/evaluations/{name}", "value": asdict(item)}] - current_app.logger.info(f"Insert evaluation for LineSummary main_id: {main_id}") + self.logger.info(f"Insert evaluation for LineSummary main_id: {main_id}") return client.patch_item(item=main_id, partition_key=partition_key, patch_operations=patch_operations) From f613835b5a7e151cc66c09b595ddeece9a43cdde Mon Sep 17 00:00:00 2001 From: Honglin Date: Fri, 8 Mar 2024 15:32:18 +0800 Subject: [PATCH 005/204] [Doc] Update pfazure run doc (#2271) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- docs/reference/pfazure-command-reference.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/reference/pfazure-command-reference.md b/docs/reference/pfazure-command-reference.md index 05554b2bb57..fc0592de503 100644 --- a/docs/reference/pfazure-command-reference.md +++ b/docs/reference/pfazure-command-reference.md @@ -207,7 +207,17 @@ Local path to the YAML file containing the prompt flow run specification; can be `--flow` -Local path to the flow directory. +The flow source to create the run. It could be: +- Local path to the flow directory. + ```bash + pfazure run create --flow --data --column-mapping + ``` +- The flow name on azure with a prefix `azureml:`. Flow name is a guid that can be found from 2 ways: + - After creating a flow to azure, it can be found in the printed message in "name" attribute. + - Open a flow in azure portal, the guid is in the url. e.g. https://ml.azure.com/prompts/flow/{workspace-id}/{flow-name}/xxx + ```bash + pfazure run create --flow azureml: --data --column-mapping + ``` `--data` From 807767e58062e1195f6fb1a9c6b1ddb860e8ee79 Mon Sep 17 00:00:00 2001 From: Heyi Tang Date: Fri, 8 Mar 2024 16:06:43 +0800 Subject: [PATCH 006/204] [Internal] Remove useless log in tracing (#2273) # Description This pull request includes a minor change to the `start_tracing` method in the `src/promptflow/promptflow/tracing/_tracer.py` file. The change removes a warning log message that was previously triggered when attempting to start tracing for a run while another run is already active. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. Co-authored-by: Heyi --- src/promptflow/promptflow/tracing/_tracer.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/promptflow/promptflow/tracing/_tracer.py b/src/promptflow/promptflow/tracing/_tracer.py index 041070284e9..e5d09f1c156 100644 --- a/src/promptflow/promptflow/tracing/_tracer.py +++ b/src/promptflow/promptflow/tracing/_tracer.py @@ -31,8 +31,6 @@ def __init__(self, run_id, node_name: Optional[str] = None): def start_tracing(cls, run_id, node_name: Optional[str] = None): current_run_id = cls.current_run_id() if current_run_id is not None: - msg = f"Try to start tracing for run {run_id} but {current_run_id} is already active." - logging.warning(msg) return tracer = cls(run_id, node_name) tracer._activate_in_context() From fdb286d5a5ce01e0a5d0ee52c528988bbd719707 Mon Sep 17 00:00:00 2001 From: chw-microsoft <95913588+chw-microsoft@users.noreply.github.com> Date: Fri, 8 Mar 2024 16:15:36 +0800 Subject: [PATCH 007/204] Enable executor recording mode (#1997) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description This PR is focused on enabling the recording injection mode for CI/tests in the execution environment. The recording mode provides a mechanism to record and replay end-to-end tests, enhancing the reliability and efficiency of our testing process. For detailed information on the recording mode, please refer to our [documentation](https://github.com/microsoft/promptflow/blob/main/docs/dev/replay-e2e-test.md). In this PR, we still keep the connection configuration in CI to make sure backward compatibilities. Meanwhile, enable the recording injection fixture to switch test into recording mode. ## **Key Features of This PR:** ### **Generation of Test Records** The generation of records for execution tests when they are missing in the shelve database, to make it work under recording mode. ### **Multi-Process Compatibility** Resolves issues related to the recording injection mode in a multi-process environment, particularly with processes spawned/forkserver. **_What is the issue under multi/new Process(spawn/forkserver)?_** Spawn/forkserver mode will not replicate the resources/setups from main Process, including the recording setup. This would make the recording not working anymore. ![image](https://github.com/microsoft/promptflow/assets/95913588/4cc8f68a-f61f-49ad-b2bd-6717f4d304bf) **_How you resolved this issue?_** There are multiple ways to pass the recording setup in new Process, like environment variable, serializable object as argument etc. But these might incur interface change or too complex to squeeze into simple state object. We choose to re-import the state into new Process. 1) Create new target method for Process: this new target is used to re-import the state needed Example: For new Process target method _process_wrapper, for define another wrapper method outside and inject the recording state ![image](https://github.com/microsoft/promptflow/assets/95913588/426827a0-3c1e-426d-864f-ec85ad611416) 2) Define a customized Process class with above new targets Enable this new target method whenever new Process spawned/forkservered ![image](https://github.com/microsoft/promptflow/assets/95913588/21756ecf-fbed-4d6e-a21a-79228988b407) 3) Override context.Process or multiprocess.Process class multiprocessing.get_context("spawn").Process = MockSpawnProcess or multiprocessing.Process = MockSpawnProcess We have implemented above logic in codes and integrated as part of recording injection fixture for testing. **_So all the tests under executor/sdk would intercept the third-party call like this as default in CI?_** Yes, all the CI is enable with "PROMPT_FLOW_TEST_MODE=replay". All the openai/aoai related calls would be mocked to do recording result retrieval rather than real api request. **_Sometimes we might have necessity to customize the openai/AOAI call in tests. How shall we do instead of using the default recording mock?_** Yes, 1) Create your own target with customized mocking about openai/aoai call . 2) Override the default recording target via context manager "override_process_target" Sample Tests: test_executor_openai_telemetry **_In which scope the recording mode is enabled?_** The recording mode is enabled per requiriment. If the test are involved with 3rd party service with connection, like openai/aoai etc, it is required to enable recording mode. If not, your PR will fail at the CI tests since the connections info are not configured. To enable recording mode, just make sure the fixture "recording_injection" is required in your test class level or method level. _**Why not make recording mode a session-level fixture or required fixture for all tests?**_ 1) recording setup is complicated. it might introduce expected behavior if abuse 2) Some tests like **test_executor_openai_telemetry** might server some special test purpose. If enable recording, the customized mocking might be not easy to be configured. **_Note:_** _Above logic resolved this issue for one layer of new Processing. If you have nested new Processing action , you need to repeat above logic at each layer._ ## **Todos and Ongoing Work[updated]:** ### **[Done]Metrics Mocks** Currently, this openai_injector is skipped as it does not involve actual openai/aoai requests. This omission leads to potential inaccuracies in metrics calculation, especially token usage, in recording mode. Future work will focus on integrating openai_injector.py into the recording mode. --- this fixed already by [[fundamental] Recording support metrics by crazygao · Pull Request #1762 · microsoft/promptflow (github.com)](https://github.com/microsoft/promptflow/pull/1762) ### **[Todo]Consolidation of Configuration** Efforts are underway to consolidate the configuration settings for recording injection in both the execution environment and the SDK, aiming for a more unified and streamlined setup. ### **[Done]Record error info** Record not only regular tool execution result, but also error response if exception ocurr ----- have fixed this in this PR, sample tests: test_executor_node_overrides ### **[Done]Test langchain** Support langchain test with agent ---- fixed by [[fundamental] Recording support metrics by crazygao · Pull Request #1762 · microsoft/promptflow (github.com)](https://github.com/microsoft/promptflow/pull/1762) ### **[Todo] Create pipeline CI without connection to monitor** We need to CI without connection to identify tests which needs the record setup. ### **[Todo] Make migration plan to make the non-connection CI as main CI** Need to make plan to safely switch to new record mode. Make sure there are fallback logic if record has flow design which might hinder the new feature delivery. ### **[Todo] Enable more apis with recording mode** like assistant apis & tests # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [x] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --------- Co-authored-by: Philip Gao Co-authored-by: chjinche <49483542+chjinche@users.noreply.github.com> Co-authored-by: Cheng Liu <51689021+liucheng-ms@users.noreply.github.com> Co-authored-by: Han Wang Co-authored-by: chenslucky <75061414+chenslucky@users.noreply.github.com> Co-authored-by: cs_lucky Co-authored-by: Ying Chen Co-authored-by: Ying Chen <2601502859@qq.com> Co-authored-by: chenyang Co-authored-by: Peiwen Gao <111329184+PeiwenGaoMS@users.noreply.github.com> --- .../promptflow-executor-e2e-test.yml | 2 + .../promptflow-executor-unit-test.yml | 2 + .../evaluation/eval-summarization/data.jsonl | 4 +- .../eval-summarization/flow.dag.yaml | 208 +++++++++--------- src/promptflow/tests/executor/conftest.py | 88 +++++++- .../tests/executor/e2etests/test_activate.py | 2 +- .../tests/executor/e2etests/test_assistant.py | 7 +- .../executor/e2etests/test_batch_engine.py | 11 +- .../executor/e2etests/test_batch_timeout.py | 4 +- .../e2etests/test_executor_happypath.py | 9 +- .../tests/executor/e2etests/test_langchain.py | 2 +- .../tests/executor/e2etests/test_telemetry.py | 6 +- .../tests/executor/e2etests/test_traces.py | 28 ++- .../tests/executor/process_utils.py | 63 ++++-- src/promptflow/tests/executor/record_utils.py | 59 +++++ .../unittests/_core/test_tools_manager.py | 60 ++--- .../test_line_execution_process_pool.py | 1 + .../recording_utilities/utils.py | 4 + src/promptflow/tests/sdk_cli_test/conftest.py | 6 +- .../recording_utilities/mock_tool.py | 40 +++- .../openai_inject_recording.py | 43 ++-- .../recording_utilities/record_storage.py | 52 ++++- .../flows/hello-world/hello_world.py | 4 + .../executor_node_cache.shelve.bak | 53 +++++ .../executor_node_cache.shelve.dat | Bin 0 -> 180941 bytes .../executor_node_cache.shelve.dir | 53 +++++ 26 files changed, 594 insertions(+), 217 deletions(-) create mode 100644 src/promptflow/tests/executor/record_utils.py create mode 100644 src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.bak create mode 100644 src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.dat create mode 100644 src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.dir diff --git a/.github/workflows/promptflow-executor-e2e-test.yml b/.github/workflows/promptflow-executor-e2e-test.yml index 12d4472d0bd..93cb0cea278 100644 --- a/.github/workflows/promptflow-executor-e2e-test.yml +++ b/.github/workflows/promptflow-executor-e2e-test.yml @@ -78,6 +78,8 @@ jobs: os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: + - name: Set test mode + run: echo "PROMPT_FLOW_TEST_MODE=$(if [[ "${{ github.event_name }}" == "pull_request" ]]; then echo replay; else echo live; fi)" >> $GITHUB_ENV - name: checkout uses: actions/checkout@v4 with: diff --git a/.github/workflows/promptflow-executor-unit-test.yml b/.github/workflows/promptflow-executor-unit-test.yml index 1e0b00ac4fd..c2aeedb1f0b 100644 --- a/.github/workflows/promptflow-executor-unit-test.yml +++ b/.github/workflows/promptflow-executor-unit-test.yml @@ -78,6 +78,8 @@ jobs: os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: + - name: Set test mode + run: echo "PROMPT_FLOW_TEST_MODE=$(if [[ "${{ github.event_name }}" == "pull_request" ]]; then echo replay; else echo live; fi)" >> $GITHUB_ENV - name: checkout uses: actions/checkout@v4 with: diff --git a/examples/flows/evaluation/eval-summarization/data.jsonl b/examples/flows/evaluation/eval-summarization/data.jsonl index 07d5faea353..26e87cf4fa8 100644 --- a/examples/flows/evaluation/eval-summarization/data.jsonl +++ b/examples/flows/evaluation/eval-summarization/data.jsonl @@ -1,2 +1,2 @@ -{"document": "this is a test document", "summary": "test document"} -{"document": "this is a test document2", "summary": "test document2"} +{"document": "this is a test document", "summary": "test document"} +{"document": "this is a test document2", "summary": "test document2"} diff --git a/examples/flows/evaluation/eval-summarization/flow.dag.yaml b/examples/flows/evaluation/eval-summarization/flow.dag.yaml index b5cd0dd93e6..1a98cb33404 100644 --- a/examples/flows/evaluation/eval-summarization/flow.dag.yaml +++ b/examples/flows/evaluation/eval-summarization/flow.dag.yaml @@ -1,104 +1,104 @@ -$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Flow.schema.json -environment: - python_requirements_txt: requirements.txt -inputs: - document: - type: string - summary: - type: string -outputs: - coherence: - type: double - reference: ${score_coherence.output} - consistency: - type: double - reference: ${score_consistency.output} - fluency: - type: double - reference: ${score_fluency.output} - relevance: - type: double - reference: ${score_relevance.output} -nodes: -- name: prompt_coherence - type: prompt - source: - type: code - path: prompts/coherence.jinja2 - inputs: - Document: ${inputs.document} - Summary: ${inputs.summary} -- name: score_coherence - type: python - source: - type: code - path: geval.py - inputs: - connection: open_ai_connection - prompt_with_src_and_gen: ${prompt_coherence.output} - max_score: 5 - deployment_name: gpt-4 -- name: prompt_consistency - type: prompt - source: - type: code - path: prompts/consistency.jinja2 - inputs: - Document: ${inputs.document} - Summary: ${inputs.summary} -- name: score_consistency - type: python - source: - type: code - path: geval.py - inputs: - connection: open_ai_connection - prompt_with_src_and_gen: ${prompt_consistency.output} - max_score: 5 - deployment_name: gpt-4 -- name: prompt_fluency - type: prompt - source: - type: code - path: prompts/fluency.jinja2 - inputs: - Summary: ${inputs.summary} -- name: score_fluency - type: python - source: - type: code - path: geval.py - inputs: - connection: open_ai_connection - prompt_with_src_and_gen: ${prompt_fluency.output} - max_score: 3 - deployment_name: gpt-4 -- name: prompt_relevance - type: prompt - source: - type: code - path: prompts/relevance.jinja2 - inputs: - Document: ${inputs.document} - Summary: ${inputs.summary} -- name: score_relevance - type: python - source: - type: code - path: geval.py - inputs: - connection: open_ai_connection - prompt_with_src_and_gen: ${prompt_relevance.output} - max_score: 5 - deployment_name: gpt-4 -- name: average_scores - type: python - source: - type: code - path: average_scores.py - inputs: - fluency_list: ${score_fluency.output} - consistency_list: ${score_consistency.output} - relevance_list: ${score_relevance.output} - coherence_list: ${score_coherence.output} - aggregation: true +$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Flow.schema.json +environment: + python_requirements_txt: requirements.txt +inputs: + document: + type: string + summary: + type: string +outputs: + coherence: + type: double + reference: ${score_coherence.output} + consistency: + type: double + reference: ${score_consistency.output} + fluency: + type: double + reference: ${score_fluency.output} + relevance: + type: double + reference: ${score_relevance.output} +nodes: +- name: prompt_coherence + type: prompt + source: + type: code + path: prompts/coherence.jinja2 + inputs: + Document: ${inputs.document} + Summary: ${inputs.summary} +- name: score_coherence + type: python + source: + type: code + path: geval.py + inputs: + connection: open_ai_connection + prompt_with_src_and_gen: ${prompt_coherence.output} + max_score: 5 + deployment_name: gpt-4 +- name: prompt_consistency + type: prompt + source: + type: code + path: prompts/consistency.jinja2 + inputs: + Document: ${inputs.document} + Summary: ${inputs.summary} +- name: score_consistency + type: python + source: + type: code + path: geval.py + inputs: + connection: open_ai_connection + prompt_with_src_and_gen: ${prompt_consistency.output} + max_score: 5 + deployment_name: gpt-4 +- name: prompt_fluency + type: prompt + source: + type: code + path: prompts/fluency.jinja2 + inputs: + Summary: ${inputs.summary} +- name: score_fluency + type: python + source: + type: code + path: geval.py + inputs: + connection: open_ai_connection + prompt_with_src_and_gen: ${prompt_fluency.output} + max_score: 3 + deployment_name: gpt-4 +- name: prompt_relevance + type: prompt + source: + type: code + path: prompts/relevance.jinja2 + inputs: + Document: ${inputs.document} + Summary: ${inputs.summary} +- name: score_relevance + type: python + source: + type: code + path: geval.py + inputs: + connection: open_ai_connection + prompt_with_src_and_gen: ${prompt_relevance.output} + max_score: 5 + deployment_name: gpt-4 +- name: average_scores + type: python + source: + type: code + path: average_scores.py + inputs: + fluency_list: ${score_fluency.output} + consistency_list: ${score_consistency.output} + relevance_list: ${score_relevance.output} + coherence_list: ${score_coherence.output} + aggregation: true diff --git a/src/promptflow/tests/executor/conftest.py b/src/promptflow/tests/executor/conftest.py index 93da20f3610..ad8c7f3dfa3 100644 --- a/src/promptflow/tests/executor/conftest.py +++ b/src/promptflow/tests/executor/conftest.py @@ -1,17 +1,99 @@ +import multiprocessing +from pathlib import Path + import pytest +from executor.process_utils import ( + MockForkServerProcess, + MockSpawnProcess, + current_process_manager_var, + current_process_wrapper_var, + override_process_class, +) +from executor.record_utils import setup_recording from fastapi.testclient import TestClient +from sdk_cli_test.recording_utilities import ( + RecordStorage, + delete_count_lock_file, + is_live, + is_record, + is_replay, + recording_array_extend, + recording_array_reset, +) +from sdk_cli_test.recording_utilities.record_storage import is_recording_enabled +from promptflow.executor._line_execution_process_pool import _process_wrapper +from promptflow.executor._process_manager import create_spawned_fork_process_manager from promptflow.executor._service.app import app from promptflow.tracing._openai_injector import inject_openai_api +PROMPTFLOW_ROOT = Path(__file__) / "../../.." + + +@pytest.fixture +def recording_setup(): + patches = setup_recording() + try: + yield + finally: + for patcher in patches: + patcher.stop() + + +def _default_mock_process_wrapper(*args, **kwargs): + # Default mock implementation of _process_wrapper in recording mode + setup_recording() + _process_wrapper(*args, **kwargs) + + +def _default_mock_create_spawned_fork_process_manager(*args, **kwargs): + # Default mock implementation of create_spawned_fork_process_manager in recording mode + setup_recording() + create_spawned_fork_process_manager(*args, **kwargs) + + +@pytest.fixture +def process_override(): + # This fixture is used to override the Process class to ensure the recording mode works + + # Step I: set process pool targets placeholder with customized targets + current_process_wrapper_var.set(_default_mock_process_wrapper) + current_process_manager_var.set(_default_mock_create_spawned_fork_process_manager) + + # Step II: override the process pool class + process_class_dict = {"spawn": MockSpawnProcess, "forkserver": MockForkServerProcess} + original_process_class = override_process_class(process_class_dict) + + try: + yield + finally: + for start_method, MockProcessClass in process_class_dict.items(): + if start_method in multiprocessing.get_all_start_methods(): + multiprocessing.get_context(start_method).Process = original_process_class[start_method] + if start_method == multiprocessing.get_start_method(): + multiprocessing.Process = original_process_class[start_method] + + +@pytest.fixture +def recording_injection(recording_setup, process_override): + # This fixture is used to main entry point to inject recording mode into the test + try: + yield (is_replay() or is_record(), recording_array_extend) + finally: + if is_replay() or is_record(): + RecordStorage.get_instance().delete_lock_file() + if is_live(): + delete_count_lock_file() + recording_array_reset() + @pytest.fixture(autouse=True, scope="session") def inject_api_executor(): - """Inject OpenAI API during test session. - + """Inject OpenAI API during test session when recording not enabled AOAI call in promptflow should involve trace logging and header injection. Inject function to API call in test scenario.""" - inject_openai_api() + if not is_recording_enabled(): + inject_openai_api() @pytest.fixture(autouse=True, scope="session") diff --git a/src/promptflow/tests/executor/e2etests/test_activate.py b/src/promptflow/tests/executor/e2etests/test_activate.py index 3988815d0c8..aa7ab9c7a96 100644 --- a/src/promptflow/tests/executor/e2etests/test_activate.py +++ b/src/promptflow/tests/executor/e2etests/test_activate.py @@ -33,7 +33,7 @@ ] -@pytest.mark.usefixtures("dev_connections") +@pytest.mark.usefixtures("dev_connections", "recording_injection") @pytest.mark.e2etest class TestExecutorActivate: @pytest.mark.parametrize("flow_folder", ACTIVATE_FLOW_TEST_CASES) diff --git a/src/promptflow/tests/executor/e2etests/test_assistant.py b/src/promptflow/tests/executor/e2etests/test_assistant.py index a26625a5bbb..5f947a9325d 100644 --- a/src/promptflow/tests/executor/e2etests/test_assistant.py +++ b/src/promptflow/tests/executor/e2etests/test_assistant.py @@ -8,7 +8,7 @@ from ..utils import get_flow_folder, get_yaml_file -@pytest.mark.usefixtures("dev_connections") +@pytest.mark.usefixtures("dev_connections", "recording_injection") @pytest.mark.e2etest class TestAssistant: @pytest.mark.parametrize( @@ -22,6 +22,11 @@ def test_assistant_tool_with_connection(self, flow_folder, line_input, dev_conne flow_result = executor.exec_line(line_input) print(flow_result.output) assert flow_result.run_info.status == Status.Completed + assert len(flow_result.output["answer"]["content"]) == 1 + assert flow_result.output["answer"]["content"][0]["type"] == "text" + name = line_input["name"] + assert f"Thanks for your help, {name}!" == flow_result.output["answer"]["content"][0]["text"]["value"] + assert flow_result.output["thread_id"] @pytest.mark.parametrize( "flow_folder, line_input", diff --git a/src/promptflow/tests/executor/e2etests/test_batch_engine.py b/src/promptflow/tests/executor/e2etests/test_batch_engine.py index ab4f70fa37a..e3f77e73c50 100644 --- a/src/promptflow/tests/executor/e2etests/test_batch_engine.py +++ b/src/promptflow/tests/executor/e2etests/test_batch_engine.py @@ -17,6 +17,8 @@ from promptflow.contracts.run_info import Status from promptflow.executor._errors import InputNotFound +from ..conftest import setup_recording +from ..process_utils import MockForkServerProcess, MockSpawnProcess, override_process_class from ..utils import ( MemoryRunStorage, get_flow_expected_metrics, @@ -63,6 +65,13 @@ def _run_batch_with_start_method(multiprocessing_start_method, flow_folder, inpu batch_result, output_dir = submit_batch_run( flow_folder, inputs_mapping, connections=dev_connections, return_output_dir=True ) + # The method is used as start method to construct new process in tests. + # We need to make sure the necessary setup in place to get pass along in new process + process_class_dict = {"spawn": MockSpawnProcess, "forkserver": MockForkServerProcess} + override_process_class(process_class_dict) + + # recording injection again since this method is running in a new process + setup_recording() assert isinstance(batch_result, BatchResult) nlines = get_batch_inputs_line(flow_folder) @@ -114,7 +123,7 @@ def __init__(self, name: str, output_path: Path): self._run_source = None -@pytest.mark.usefixtures("use_secrets_config_file", "dev_connections") +@pytest.mark.usefixtures("use_secrets_config_file", "dev_connections", "recording_injection") @pytest.mark.e2etest class TestBatch: def test_batch_storage(self, dev_connections): diff --git a/src/promptflow/tests/executor/e2etests/test_batch_timeout.py b/src/promptflow/tests/executor/e2etests/test_batch_timeout.py index b3e14df2bd1..91b8fa975a8 100644 --- a/src/promptflow/tests/executor/e2etests/test_batch_timeout.py +++ b/src/promptflow/tests/executor/e2etests/test_batch_timeout.py @@ -13,11 +13,11 @@ from ..utils import MemoryRunStorage, get_flow_folder, get_flow_inputs_file, get_yaml_file -SAMPLE_FLOW = "web_classification_no_variants" +SAMPLE_FLOW = "hello-world" ONE_LINE_OF_BULK_TEST_TIMEOUT = "one_line_of_bulktest_timeout" -@pytest.mark.usefixtures("use_secrets_config_file", "dev_connections") +@pytest.mark.usefixtures("use_secrets_config_file", "dev_connections", "recording_injection") @pytest.mark.e2etest class TestBatchTimeout: @pytest.mark.parametrize( diff --git a/src/promptflow/tests/executor/e2etests/test_executor_happypath.py b/src/promptflow/tests/executor/e2etests/test_executor_happypath.py index 0a6be429d87..2a4c527aa50 100644 --- a/src/promptflow/tests/executor/e2etests/test_executor_happypath.py +++ b/src/promptflow/tests/executor/e2etests/test_executor_happypath.py @@ -16,12 +16,14 @@ from promptflow.executor.flow_executor import execute_flow from promptflow.storage._run_storage import DefaultRunStorage +from ..conftest import MockSpawnProcess, setup_recording +from ..process_utils import MockForkServerProcess, override_process_class from ..utils import FLOW_ROOT, get_flow_folder, get_flow_sample_inputs, get_yaml_file, is_image_file SAMPLE_FLOW = "web_classification_no_variants" -@pytest.mark.usefixtures("use_secrets_config_file", "dev_connections") +@pytest.mark.usefixtures("use_secrets_config_file", "dev_connections", "recording_injection") @pytest.mark.e2etest class TestExecutor: def get_line_inputs(self, flow_folder=""): @@ -314,6 +316,11 @@ def test_execute_flow( def exec_node_within_process(queue, flow_file, node_name, flow_inputs, dependency_nodes_outputs, connections, raise_ex): try: + process_class_dict = {"spawn": MockSpawnProcess, "forkserver": MockForkServerProcess} + override_process_class(process_class_dict) + + # recording injection again since this method is running in a new process + setup_recording() result = FlowExecutor.load_and_exec_node( flow_file=get_yaml_file(flow_file), node_name=node_name, diff --git a/src/promptflow/tests/executor/e2etests/test_langchain.py b/src/promptflow/tests/executor/e2etests/test_langchain.py index 0e7d47d3fb2..dbfa617a616 100644 --- a/src/promptflow/tests/executor/e2etests/test_langchain.py +++ b/src/promptflow/tests/executor/e2etests/test_langchain.py @@ -9,7 +9,7 @@ from ..utils import get_flow_folder, get_flow_inputs_file, get_yaml_file -@pytest.mark.usefixtures("use_secrets_config_file", "dev_connections") +@pytest.mark.usefixtures("use_secrets_config_file", "dev_connections", "recording_injection") @pytest.mark.e2etest class TestLangchain: @pytest.mark.parametrize( diff --git a/src/promptflow/tests/executor/e2etests/test_telemetry.py b/src/promptflow/tests/executor/e2etests/test_telemetry.py index 9e64d2a5b86..a1f838c69e5 100644 --- a/src/promptflow/tests/executor/e2etests/test_telemetry.py +++ b/src/promptflow/tests/executor/e2etests/test_telemetry.py @@ -16,7 +16,7 @@ from promptflow.executor._line_execution_process_pool import _process_wrapper from promptflow.executor._process_manager import create_spawned_fork_process_manager -from ..process_utils import enable_mock_in_process +from ..process_utils import override_process_pool_targets from ..utils import get_flow_folder, get_flow_inputs_file, get_yaml_file, load_jsonl IS_LEGACY_OPENAI = version("openai").startswith("0.") @@ -116,7 +116,7 @@ def test_executor_openai_telemetry(self, dev_connections): assert "ms-azure-ai-promptflow-scenario" not in promptflow_headers assert promptflow_headers.get("run_mode") == RunMode.SingleNode.name - def test_executor_openai_telemetry_with_batch_run(self, dev_connections): + def test_executor_openai_telemetry_with_batch_run(self, dev_connections, recording_injection): """This test validates telemetry info header is correctly injected to OpenAI API by mocking chat api method. The mock method will return a generator that yields a namedtuple with a json string of the headers passed to the method. @@ -131,7 +131,7 @@ def test_executor_openai_telemetry_with_batch_run(self, dev_connections): operation_context._tracking_keys = OperationContext._DEFAULT_TRACKING_KEYS operation_context._tracking_keys.add("dummy_key") - with enable_mock_in_process(mock_process_wrapper, mock_process_manager): + with override_process_pool_targets(mock_process_wrapper, mock_process_manager): run_id = str(uuid.uuid4()) batch_engine = BatchEngine( get_yaml_file(flow_folder), get_flow_folder(flow_folder), connections=dev_connections diff --git a/src/promptflow/tests/executor/e2etests/test_traces.py b/src/promptflow/tests/executor/e2etests/test_traces.py index 286e76b82bb..d7e01180348 100644 --- a/src/promptflow/tests/executor/e2etests/test_traces.py +++ b/src/promptflow/tests/executor/e2etests/test_traces.py @@ -15,7 +15,7 @@ from promptflow.tracing.contracts.trace import TraceType from ..process_utils import execute_function_in_subprocess -from ..utils import get_flow_folder, get_flow_sample_inputs, get_yaml_file, prepare_memory_exporter, load_content +from ..utils import get_flow_folder, get_flow_sample_inputs, get_yaml_file, load_content, prepare_memory_exporter LLM_FUNCTION_NAMES = [ "openai.resources.chat.completions.Completions.create", @@ -79,7 +79,7 @@ def sub_level_function(): return "Hello, World!" -@pytest.mark.usefixtures("dev_connections") +@pytest.mark.usefixtures("dev_connections", "recording_injection") @pytest.mark.e2etest class TestExecutorTraces: def validate_openai_apicall(self, apicall: dict): @@ -313,7 +313,7 @@ def test_flow_with_trace(self, flow_file, dev_connections): ) -@pytest.mark.usefixtures("dev_connections") +@pytest.mark.usefixtures("dev_connections", "recording_injection") @pytest.mark.e2etest class TestOTelTracer: @pytest.mark.parametrize( @@ -350,7 +350,7 @@ def assert_otel_traces(self, dev_connections, flow_file, inputs, expected_span_l ("llm_tool", {"topic": "Hello", "stream": False}, "joke.jinja2"), # Add back this test case after changing the interface of render_template_jinja2 # ("prompt_tools", {"text": "test"}, "summarize_text_content_prompt.jinja2"), - ] + ], ) def test_otel_trace_with_prompt( self, @@ -360,7 +360,11 @@ def test_otel_trace_with_prompt( prompt_tpl_file, ): execute_function_in_subprocess( - self.assert_otel_traces_with_prompt, dev_connections, flow_file, inputs, prompt_tpl_file + self.assert_otel_traces_with_prompt, + dev_connections, + flow_file, + inputs, + prompt_tpl_file, ) def assert_otel_traces_with_prompt(self, dev_connections, flow_file, inputs, prompt_tpl_file): @@ -401,7 +405,11 @@ def test_otel_trace_with_llm( expected_span_length, ): execute_function_in_subprocess( - self.assert_otel_traces_with_llm, dev_connections, flow_file, inputs, expected_span_length + self.assert_otel_traces_with_llm, + dev_connections, + flow_file, + inputs, + expected_span_length, ) def assert_otel_traces_with_llm(self, dev_connections, flow_file, inputs, expected_span_length): @@ -427,7 +435,7 @@ def assert_otel_traces_with_llm(self, dev_connections, flow_file, inputs, expect ("openai_embedding_api_flow", {"input": "Hello"}, 3), # [9906] is the tokenized version of "Hello" ("openai_embedding_api_flow_with_token", {"input": [9906]}, 3), - ] + ], ) def test_otel_trace_with_embedding( self, @@ -437,7 +445,11 @@ def test_otel_trace_with_embedding( expected_span_length, ): execute_function_in_subprocess( - self.assert_otel_traces_with_embedding, dev_connections, flow_file, inputs, expected_span_length + self.assert_otel_traces_with_embedding, + dev_connections, + flow_file, + inputs, + expected_span_length, ) def assert_otel_traces_with_embedding(self, dev_connections, flow_file, inputs, expected_span_length): diff --git a/src/promptflow/tests/executor/process_utils.py b/src/promptflow/tests/executor/process_utils.py index 6710c1cab66..c65b189cfa1 100644 --- a/src/promptflow/tests/executor/process_utils.py +++ b/src/promptflow/tests/executor/process_utils.py @@ -1,8 +1,11 @@ import contextlib +import contextvars import multiprocessing import traceback from multiprocessing import Queue, get_context +from executor.record_utils import setup_recording + from promptflow.executor._line_execution_process_pool import _process_wrapper from promptflow.executor._process_manager import create_spawned_fork_process_manager @@ -14,6 +17,15 @@ def _run_in_subprocess(error_queue: Queue, func, args, kwargs): error_queue.put((repr(e), traceback.format_exc())) +def _run_in_subprocess_with_recording(*args, **kwargs): + process_class_dict = {"spawn": MockSpawnProcess, "forkserver": MockForkServerProcess} + override_process_class(process_class_dict) + + # recording injection again since this method is running in a new process + setup_recording() + _run_in_subprocess(*args, **kwargs) + + def execute_function_in_subprocess(func, *args, **kwargs): """ Execute a function in a new process and return any exception that occurs. @@ -21,7 +33,7 @@ def execute_function_in_subprocess(func, *args, **kwargs): """ ctx = get_context("spawn") error_queue = ctx.Queue() - process = ctx.Process(target=_run_in_subprocess, args=(error_queue, func, args, kwargs)) + process = ctx.Process(target=_run_in_subprocess_with_recording, args=(error_queue, func, args, kwargs)) process.start() process.join() # Wait for the process to finish @@ -41,8 +53,11 @@ def execute_function_in_subprocess(func, *args, **kwargs): ForkServerProcess = multiprocessing.get_context("forkserver").Process -current_process_wrapper = _process_wrapper -current_process_manager = create_spawned_fork_process_manager +# Define context variables with default values +current_process_wrapper_var = contextvars.ContextVar("current_process_wrapper", default=_process_wrapper) +current_process_manager_var = contextvars.ContextVar( + "current_process_manager", default=create_spawned_fork_process_manager +) class BaseMockProcess: @@ -51,9 +66,9 @@ def modify_target(self, target): # Method to modify the target of the mock process # This shall be the place to hold the target mocking logic if target == _process_wrapper: - return current_process_wrapper + return current_process_wrapper_var.get() if target == create_spawned_fork_process_manager: - return current_process_manager + return current_process_manager_var.get() return target @@ -69,28 +84,34 @@ def __init__(self, group=None, target=None, *args, **kwargs): super().__init__(group, modified_target, *args, **kwargs) -@contextlib.contextmanager -def enable_mock_in_process(process_wrapper=None, process_manager=None): - global current_process_wrapper, current_process_manager - - if process_wrapper is not None: - current_process_wrapper = process_wrapper - if process_manager is not None: - current_process_manager = process_manager - - start_methods_mocks = {"spawn": MockSpawnProcess, "forkserver": MockForkServerProcess} +def override_process_class(process_class_dict: dict): original_process_class = {} - for start_method, MockProcessClass in start_methods_mocks.items(): + for start_method, MockProcessClass in process_class_dict.items(): if start_method in multiprocessing.get_all_start_methods(): original_process_class[start_method] = multiprocessing.get_context(start_method).Process multiprocessing.get_context(start_method).Process = MockProcessClass if start_method == multiprocessing.get_start_method(): multiprocessing.Process = MockProcessClass + return original_process_class + + +@contextlib.contextmanager +def override_process_pool_targets(process_wrapper=None, process_manager=None): + """ + Context manager to override the process pool targets for the current context + + """ + original_process_wrapper = current_process_wrapper_var.get() + original_process_manager = current_process_manager_var.get() + + if process_wrapper is not None: + current_process_wrapper_var.set(process_wrapper) + if process_manager is not None: + current_process_manager_var.set(process_manager) + try: yield finally: - for start_method, MockProcessClass in start_methods_mocks.items(): - if start_method in multiprocessing.get_all_start_methods(): - multiprocessing.get_context(start_method).Process = original_process_class[start_method] - if start_method == multiprocessing.get_start_method(): - multiprocessing.Process = original_process_class[start_method] + # Revert back to the original states + current_process_wrapper_var.set(original_process_wrapper) + current_process_manager_var.set(original_process_manager) diff --git a/src/promptflow/tests/executor/record_utils.py b/src/promptflow/tests/executor/record_utils.py new file mode 100644 index 00000000000..1f9b478b696 --- /dev/null +++ b/src/promptflow/tests/executor/record_utils.py @@ -0,0 +1,59 @@ +from pathlib import Path +from unittest.mock import patch + +from sdk_cli_test.recording_utilities import ( + RecordStorage, + inject_async_with_recording, + inject_sync_with_recording, + is_live, + is_record, + is_replay, + mock_tool, +) + +from promptflow.tracing._openai_injector import inject_openai_api + +PROMPTFLOW_ROOT = Path(__file__) / "../../.." +RECORDINGS_TEST_CONFIGS_ROOT = Path(PROMPTFLOW_ROOT / "tests/test_configs/node_recordings").resolve() + + +def setup_recording(): + patches = [] + + def start_patches(patch_targets): + # Functions to setup the mock for list of targets + for target, mock_func in patch_targets.items(): + patcher = patch(target, mock_func) + patches.append(patcher) + patcher.start() + + if is_replay() or is_record(): + # For replay and record mode, we setup two patches: + # 1) mocked_tool setup + # 2) openai_injector realted mock + file_path = RECORDINGS_TEST_CONFIGS_ROOT / "executor_node_cache.shelve" + RecordStorage.get_instance(file_path) + + from promptflow._core.tool import tool as original_tool + + mocked_tool = mock_tool(original_tool) + patch_targets = { + "promptflow._core.tool.tool": mocked_tool, + "promptflow._internal.tool": mocked_tool, + "promptflow.tool": mocked_tool, + "promptflow.tracing._openai_injector.inject_sync": inject_sync_with_recording, + "promptflow.tracing._openai_injector.inject_async": inject_async_with_recording, + } + start_patches(patch_targets) + inject_openai_api() + + if is_live(): + # For live mode, we setup openai_injector mock for token collection purpose + patch_targets = { + "promptflow.tracing._openai_injector.inject_sync": inject_sync_with_recording, + "promptflow.tracing._openai_injector.inject_async": inject_async_with_recording, + } + start_patches(patch_targets) + inject_openai_api() + + return patches diff --git a/src/promptflow/tests/executor/unittests/_core/test_tools_manager.py b/src/promptflow/tests/executor/unittests/_core/test_tools_manager.py index 9a1cfcd06ba..660249c09b1 100644 --- a/src/promptflow/tests/executor/unittests/_core/test_tools_manager.py +++ b/src/promptflow/tests/executor/unittests/_core/test_tools_manager.py @@ -166,6 +166,7 @@ def sample_tool(input: str): @pytest.mark.unittest +@pytest.mark.usefixtures("recording_injection") class TestToolsManager: def test_collect_package_tools_if_node_source_tool_is_legacy(self): legacy_node_source_tools = ["content_safety_text.tools.content_safety_text_tool.analyze_text"] @@ -282,27 +283,22 @@ def test_gen_dynamic_list(self, mocked_ws_triple, mock_module_with_list_func): assert len(result) == 2 def test_retrieve_tool_func_result_dynamic_list_scenario( - self, - mocked_ws_triple, - mock_module_with_for_retrieve_tool_func_result + self, mocked_ws_triple, mock_module_with_for_retrieve_tool_func_result ): from promptflow._sdk._utils import _retrieve_tool_func_result func_path = "my_tool_package.tools.tool_with_dynamic_list_input.my_list_func" func_kwargs = {"prefix": "My"} result = _retrieve_tool_func_result( - ToolFuncCallScenario.DYNAMIC_LIST, - {"func_path": func_path, "func_kwargs": func_kwargs} + ToolFuncCallScenario.DYNAMIC_LIST, {"func_path": func_path, "func_kwargs": func_kwargs} ) assert len(result) == 2 # test retrieve tool func result with ws_triple. - with patch( - "promptflow._cli._utils.get_workspace_triad_from_local", - return_value=mocked_ws_triple - ): - result = _retrieve_tool_func_result(ToolFuncCallScenario.DYNAMIC_LIST, { - "func_path": func_path, "func_kwargs": func_kwargs}) + with patch("promptflow._cli._utils.get_workspace_triad_from_local", return_value=mocked_ws_triple): + result = _retrieve_tool_func_result( + ToolFuncCallScenario.DYNAMIC_LIST, {"func_path": func_path, "func_kwargs": func_kwargs} + ) @pytest.mark.parametrize( "func_call_scenario, func_path, func_kwargs, expected", @@ -311,26 +307,21 @@ def test_retrieve_tool_func_result_dynamic_list_scenario( ToolFuncCallScenario.DYNAMIC_LIST, "my_tool_package.tools.tool_with_dynamic_list_input.my_list_func", {"prefix": "My"}, - list + list, ), ( ToolFuncCallScenario.GENERATED_BY, "my_tool_package.tools.tool_with_generated_by_input.generated_by_func", {"index_type": "Azure Cognitive Search"}, - str + str, ), ( ToolFuncCallScenario.REVERSE_GENERATED_BY, "my_tool_package.tools.tool_with_generated_by_input.reverse_generated_by_func", - { - "index_json": json.dumps({ - "index_type": "Azure Cognitive Search", - "index": "index_1" - }) - }, - dict - ) - ] + {"index_json": json.dumps({"index_type": "Azure Cognitive Search", "index": "index_1"})}, + dict, + ), + ], ) def test_retrieve_tool_func_result( self, @@ -339,7 +330,7 @@ def test_retrieve_tool_func_result( func_kwargs, expected, mocked_ws_triple, - mock_module_with_for_retrieve_tool_func_result + mock_module_with_for_retrieve_tool_func_result, ): from promptflow._sdk._utils import _retrieve_tool_func_result @@ -349,7 +340,8 @@ def test_retrieve_tool_func_result( # test retrieve tool func result with ws_triple. with patch("promptflow._cli._utils.get_workspace_triad_from_local", return_value=mocked_ws_triple): result = _retrieve_tool_func_result( - func_call_scenario, {"func_path": func_path, "func_kwargs": func_kwargs}) + func_call_scenario, {"func_path": func_path, "func_kwargs": func_kwargs} + ) assert isinstance(result["result"], expected) @pytest.mark.parametrize( @@ -358,22 +350,17 @@ def test_retrieve_tool_func_result( ( "dummy_senario", "my_tool_package.tools.tool_with_generated_by_input.reverse_generated_by_func", - { - "index_json": json.dumps({ - "index_type": "Azure Cognitive Search", - "index": "index_1" - }) - }, + {"index_json": json.dumps({"index_type": "Azure Cognitive Search", "index": "index_1"})}, f"Invalid tool func call scenario: dummy_senario. " - f"Available scenarios are {list(ToolFuncCallScenario)}" + f"Available scenarios are {list(ToolFuncCallScenario)}", ), ( ToolFuncCallScenario.REVERSE_GENERATED_BY, "my_tool_package.tools.tool_with_generated_by_input.generated_by_func", {"index_type": "Azure Cognitive Search"}, - "ToolFuncCallScenario reverse_generated_by response must be a dict." - ) - ] + "ToolFuncCallScenario reverse_generated_by response must be a dict.", + ), + ], ) def test_retrieve_tool_func_result_error( self, @@ -382,12 +369,13 @@ def test_retrieve_tool_func_result_error( func_kwargs, expected, mocked_ws_triple, - mock_module_with_for_retrieve_tool_func_result + mock_module_with_for_retrieve_tool_func_result, ): from promptflow._sdk._utils import _retrieve_tool_func_result + with pytest.raises(Exception) as e: _retrieve_tool_func_result(func_call_scenario, {"func_path": func_path, "func_kwargs": func_kwargs}) - assert (expected in str(e.value)) + assert expected in str(e.value) @pytest.mark.unittest diff --git a/src/promptflow/tests/executor/unittests/processpool/test_line_execution_process_pool.py b/src/promptflow/tests/executor/unittests/processpool/test_line_execution_process_pool.py index 6c1a1ac45e4..e1446855e44 100644 --- a/src/promptflow/tests/executor/unittests/processpool/test_line_execution_process_pool.py +++ b/src/promptflow/tests/executor/unittests/processpool/test_line_execution_process_pool.py @@ -183,6 +183,7 @@ def custom_create_spawned_fork_process_manager(*args, **kwargs): @pytest.mark.unittest +@pytest.mark.usefixtures("recording_injection") class TestLineExecutionProcessPool: @pytest.mark.parametrize( "flow_folder", diff --git a/src/promptflow/tests/sdk_cli_azure_test/recording_utilities/utils.py b/src/promptflow/tests/sdk_cli_azure_test/recording_utilities/utils.py index a436f2305ad..db9d2c098f0 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/recording_utilities/utils.py +++ b/src/promptflow/tests/sdk_cli_azure_test/recording_utilities/utils.py @@ -31,6 +31,10 @@ def is_replay() -> bool: return get_test_mode_from_environ() == TestMode.REPLAY +def is_recording_enabled() -> bool: + return is_record() or is_replay() or is_live() + + class FakeTokenCredential: """Refer from Azure SDK for Python repository. diff --git a/src/promptflow/tests/sdk_cli_test/conftest.py b/src/promptflow/tests/sdk_cli_test/conftest.py index 0cfa8cbd9a4..ae5dabd94b0 100644 --- a/src/promptflow/tests/sdk_cli_test/conftest.py +++ b/src/promptflow/tests/sdk_cli_test/conftest.py @@ -260,8 +260,10 @@ def recording_injection(mocker: MockerFixture): try: yield finally: - RecordStorage.get_instance().delete_lock_file() - delete_count_lock_file() + if is_replay() or is_record(): + RecordStorage.get_instance().delete_lock_file() + if is_live(): + delete_count_lock_file() recording_array_reset() multiprocessing.get_context("spawn").Process = original_process_class diff --git a/src/promptflow/tests/sdk_cli_test/recording_utilities/mock_tool.py b/src/promptflow/tests/sdk_cli_test/recording_utilities/mock_tool.py index 56469c4cd03..19246067259 100644 --- a/src/promptflow/tests/sdk_cli_test/recording_utilities/mock_tool.py +++ b/src/promptflow/tests/sdk_cli_test/recording_utilities/mock_tool.py @@ -74,11 +74,25 @@ def call_func(func, args, kwargs): # Record mode will record item to record file elif is_record(): try: - # prevent recording the same item twice + """ + prevent recording the same item twice. Why? There might be data consistency issues + if we always override records even if it is exists. + For example, Flows with LLM nodes. Node2 and Node3 are the same with variants + Test 1: Node1--> Node2 + Test 2: Node1--> Node3 + If we record Test 1 and Test 2 sequentially, Test2 recording might alter Node1 item generated by + Test1 recording. This might leads to record not found when you replay Test1, since the input for + Node2 changed due to the override. + """ obj = RecordStorage.get_instance().get_record(input_dict) except (RecordItemMissingException, RecordFileMissingException): - # recording the item - obj = RecordStorage.get_instance().set_record(input_dict, func(*args, **kwargs)) + obj = None + try: + obj = func(*args, **kwargs) + except Exception as e: + # Set_record will raise Exception if the record is an Exception instance + RecordStorage.get_instance().set_record(input_dict, e) + obj = RecordStorage.get_instance().set_record(input_dict, obj) elif is_live() and is_in_ci_pipeline(): obj = Counter.get_instance().set_file_record_count(COUNT_RECORD, func(*args, **kwargs)) else: @@ -93,11 +107,25 @@ async def call_func_async(func, args, kwargs): # Record mode will record item to record file elif is_record(): try: - # prevent recording the same item twice + """ + prevent recording the same item twice. Why? There might be data consistency issues + if we always override records even if it is exists. + For example, Flows with LLM nodes. Node2 and Node3 are the same with variants + Test 1: Node1--> Node2 + Test 2: Node1--> Node3 + If we record Test 1 and Test 2 sequentially, Test2 recording might alter Node1 item generated by + Test1 recording. This might leads to record not found when you replay Test1, since the input for + Node2 changed due to the override. + """ obj = RecordStorage.get_instance().get_record(input_dict) except (RecordItemMissingException, RecordFileMissingException): - # recording the item - obj = RecordStorage.get_instance().set_record(input_dict, await func(*args, **kwargs)) + obj = None + try: + obj = await func(*args, **kwargs) + except Exception as e: + # Set_record will raise Exception if the record is an Exception instance + RecordStorage.get_instance().set_record(input_dict, e) + obj = RecordStorage.get_instance().set_record(input_dict, obj) elif is_live() and is_in_ci_pipeline(): obj = Counter.get_instance().set_file_record_count(COUNT_RECORD, await func(*args, **kwargs)) else: diff --git a/src/promptflow/tests/sdk_cli_test/recording_utilities/openai_inject_recording.py b/src/promptflow/tests/sdk_cli_test/recording_utilities/openai_inject_recording.py index dc923f91de8..bcf6fc368c3 100644 --- a/src/promptflow/tests/sdk_cli_test/recording_utilities/openai_inject_recording.py +++ b/src/promptflow/tests/sdk_cli_test/recording_utilities/openai_inject_recording.py @@ -1,4 +1,3 @@ -import asyncio import functools from promptflow.tracing._openai_injector import inject_function_async, inject_function_sync, inject_operation_headers @@ -6,37 +5,41 @@ from .mock_tool import call_func, call_func_async -def inject_recording(f): - if asyncio.iscoroutinefunction(f): +def inject_recording_async(f): + @functools.wraps(f) + async def wrapper(*args, **kwargs): + return await call_func_async(f, args, kwargs) - @functools.wraps(f) - async def wrapper(*args, **kwargs): - return await call_func_async(f, args, kwargs) + return wrapper - else: - @functools.wraps(f) - def wrapper(*args, **kwargs): - return call_func(f, args, kwargs) +def inject_recording_sync(f): + @functools.wraps(f) + def wrapper(*args, **kwargs): + return call_func(f, args, kwargs) return wrapper def inject_async_with_recording(f, trace_type): - wrapper_fun = inject_operation_headers(( - inject_function_async( - args_to_ignore=["api_key", "headers", "extra_headers"], trace_type=trace_type - )(inject_recording(f)) - )) + wrapper_fun = inject_operation_headers( + ( + inject_function_async(args_to_ignore=["api_key", "headers", "extra_headers"], trace_type=trace_type)( + inject_recording_async(f) + ) + ) + ) wrapper_fun._original = f return wrapper_fun def inject_sync_with_recording(f, trace_type): - wrapper_fun = inject_operation_headers(( - inject_function_sync( - args_to_ignore=["api_key", "headers", "extra_headers"], trace_type=trace_type - )(inject_recording(f)) - )) + wrapper_fun = inject_operation_headers( + ( + inject_function_sync(args_to_ignore=["api_key", "headers", "extra_headers"], trace_type=trace_type)( + inject_recording_sync(f) + ) + ) + ) wrapper_fun._original = f return wrapper_fun diff --git a/src/promptflow/tests/sdk_cli_test/recording_utilities/record_storage.py b/src/promptflow/tests/sdk_cli_test/recording_utilities/record_storage.py index d5bc5eab6dd..b9918895bc5 100644 --- a/src/promptflow/tests/sdk_cli_test/recording_utilities/record_storage.py +++ b/src/promptflow/tests/sdk_cli_test/recording_utilities/record_storage.py @@ -2,13 +2,16 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- import hashlib +import importlib import json import os import shelve +import traceback from pathlib import Path from typing import Dict, Iterator, Union from filelock import FileLock +from openai import NotFoundError from promptflow._core.generator_proxy import GeneratorProxy from promptflow.exceptions import PromptflowException @@ -32,6 +35,10 @@ def is_live() -> bool: return get_test_mode_from_environ() == RecordMode.LIVE +def is_recording_enabled() -> bool: + return is_record() or is_replay() or is_live() + + def check_pydantic_v2(): try: from importlib.metadata import version @@ -191,7 +198,7 @@ def _recursive_create_hashable_args(self, item): return item @staticmethod - def _parse_output_generator(output): + def _parse_output(output): """ Special handling for generator type. Since pickle will not work for generator. Returns the real list for reocrding, and create a generator for original output. @@ -229,6 +236,18 @@ def generator(): output_generator = generator() output_type = "generator" + elif isinstance(output, Exception): + output_value = { + "module": output.__class__.__module__, + "message": str(output), + "type": type(output).__name__, + "args": getattr(output, "args", None), + "traceback": traceback.format_exc(), + "response": getattr(output, "response", None), + "body": getattr(output, "body", None), + } + output_generator = None + output_type = "Exception" else: output_value = output output_generator = None @@ -292,6 +311,25 @@ def get_record(self, input_dict: Dict) -> object: output_type = line_record_pointer["output_type"] if "generator" in output_type: return RecordCache._create_output_generator(output, output_type) + elif "Exception" in output_type: + # Dynamically import the module + module = importlib.import_module(output["module"]) + + # Get the exception class + exception_class = getattr(module, output["type"], None) + + if exception_class is None: + raise ValueError(f"Exception type {output['type']} not found") + + # Reconstruct the exception + # Check if the exception class requires specific keyword arguments + if exception_class is NotFoundError: + exception_instance = exception_class( + output["message"], response=output["response"], body=output["body"] + ) + else: + exception_instance = exception_class(*output["args"]) + raise exception_instance else: return output @@ -312,7 +350,7 @@ def set_record(self, input_dict: Dict, output): # filter args, object at will not hash input_dict = self._recursive_create_hashable_args(input_dict) hash_value: str = hashlib.sha1(str(sorted(input_dict.items())).encode("utf-8")).hexdigest() - output_value, output_generator, output_type = RecordCache._parse_output_generator(output) + output_value, output_generator, output_type = RecordCache._parse_output(output) try: line_record_pointer = self.file_records_pointer[hash_value] @@ -329,8 +367,10 @@ def set_record(self, input_dict: Dict, output): # no writeback if "generator" in output_type: return output_generator + elif "Exception" in output_type: + raise output else: - return output_value + return output else: self.file_records_pointer[hash_value] = { "input": input_dict, @@ -342,8 +382,10 @@ def set_record(self, input_dict: Dict, output): if "generator" in output_type: return output_generator + elif "Exception" in output_type: + raise output else: - return output_value + return output class RecordStorage: @@ -427,7 +469,7 @@ def set_file_record_count(self, file, obj): Just count how many tokens are calculated. Different from openai_metric_calculator, this is directly returned from AOAI. """ - output_value, output_generator, output_type = RecordCache._parse_output_generator(obj) + output_value, output_generator, output_type = RecordCache._parse_output(obj) if "generator" in output_type: count = len(output_value) elif hasattr(output_value, "usage") and output_value.usage and output_value.usage.total_tokens: diff --git a/src/promptflow/tests/test_configs/flows/hello-world/hello_world.py b/src/promptflow/tests/test_configs/flows/hello-world/hello_world.py index e0fa71d6796..880ec3dfc9a 100644 --- a/src/promptflow/tests/test_configs/flows/hello-world/hello_world.py +++ b/src/promptflow/tests/test_configs/flows/hello-world/hello_world.py @@ -1,6 +1,10 @@ +import time + from promptflow import tool @tool def hello_world(name: str) -> str: + # Sleep for 1.2 seconds + time.sleep(1.2) return f"Hello World {name}!" diff --git a/src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.bak b/src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.bak new file mode 100644 index 00000000000..9e23f46a458 --- /dev/null +++ b/src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.bak @@ -0,0 +1,53 @@ +'a39e1ce4b790d5f51a71b7954da374a122edc4d2', (0, 2301) +'2099eee58cd39735bbcd938b495796ff447a17d3', (2560, 157) +'38141182f6399a7f596d73107dcbd121501219a2', (3072, 133) +'b1819393b9f02f21401eb1435fb51f0c02c11bb0', (3584, 2291) +'3017c80cde2268206d17c30f1c6dd3a16d9867f9', (6144, 2191) +'24a109f42c3175c0badb2d40dc4b8b9deed5b60a', (8704, 4547) +'da89c3f252bff8cee1f46b4ffb11b508f5dafed7', (13824, 5048) +'c8fcd047770466d76018d8b9656c18b7a87a9dcf', (18944, 2255) +'e4f7a047269c444e33a89f094307767b97475ccc', (21504, 4392) +'f173c36f4792d6fb496e628514edccc5f937382b', (26112, 4548) +'5c272a0b426134732f42f67767096f8792c41ebc', (30720, 283) +'e8e1674ac83858d73f1a1e8262ea56438b147139', (31232, 294) +'933e076838f15c00e80794240ad2c1a0f75941d5', (31744, 542) +'d0e237933cdc902b96e9e944745c3eb9b1f12407', (32768, 283) +'f1150fae34eb9648bd121fe55558d1525bd0254b', (33280, 542) +'1b014d42608391bf3548202e097decd8166a2510', (34304, 283) +'e1735237514ffb84070e84fd11523c0cc93760be', (34816, 542) +'95e5e2c9dc4a106736c70b22cc5ed86aa0b04312', (35840, 283) +'48d6d474193f747fdcca28cba96092258198d4d7', (36352, 542) +'01df3b72b51a36445ba94a529916bf86fc307ac1', (37376, 3437) +'9e373617b4d40bb1ac3d8fadb323aae24957fd71', (40960, 128) +'cf605817e44b7ed8ce00f3ff58e7f21fac99e0c7', (41472, 128) +'64685e19a6bdd72a9e002093cf2e3c1393eeaa51', (41984, 128) +'dbf9f54b3da5ae9e3b946dcf7d195b8dc3ed1415', (42496, 128) +'78db392f8a442b9e63339f2454c81b5b7be7e974', (43008, 4641) +'57db20fbcc7e86f9effb33cdd00850d8b86258f7', (48128, 289) +'97bf39858b6395b0e9c6676143d777d912197c18', (48640, 548) +'7c7edd84e2dd7f7c7af6374720844a6c0bf5552d', (49664, 2286) +'8c3cbe09f920c842fce5bc9e4ee254ac559ada3b', (52224, 279) +'2091a190c8e94bc83d4066e5a5c1933629f4a06f', (52736, 1919) +'361444d87d654911b2fa853ae8c11830b7f3ec24', (54784, 11419) +'a45e28cb72572050138c19265926fc6e33a69f21', (66560, 175) +'b24d8ba91cd37366f094b9639ac62abf6959d061', (67072, 2197) +'36ab404d39145e7df0982bd9c49a75a7eefa855e', (69632, 4454) +'e05d79bb351a4beead644a3fa5c203a4fa7f131e', (74240, 4794) +'6f4e17cced160b889254f15c9a913e74ebeff880', (79360, 5745) +'29883aab3380795f9c6bf814ecc8f093e1f941ad', (85504, 1643) +'a68113985cf3c8e5944c5882521109e191c24adb', (87552, 9510) +'3d982549f39f7844cd3773fb5f43f4383e6f879b', (97280, 1470) +'9295fa73d6f8c5d6f425254f7f1ad0483effd57d', (98816, 1945) +'b5777fa652af861561772389790b026717a7aa10', (100864, 19953) +'60a96dac245341585a5d657ccdad64434baf23b2', (120832, 1634) +'ea48203d881e43bd9e027a19525ba88816c9a639', (122880, 14573) +'e5b5eaa6e92bdad0b061d1b5fde61e569a661a29', (137728, 2314) +'ef38300dd5c59e99d68f95a12a9beb32bdee32bf', (140288, 2350) +'730e04ba60759eb79c0db0059a55a0d188323533', (142848, 2279) +'053a7ba4b0940da18d0857ec4f6d8b527e485dd8', (145408, 2278) +'51f3414ef59ee27fde0cf69a2dd29984a3dd8b2b', (147968, 2413) +'c4331b7ebc4b21889adea89d15c489db74646963', (150528, 2457) +'e53962d6670e3c446a659b93e8ff5900f82bce76', (153088, 14372) +'88efb82c7a3e76703285c179dae795a5735a6b83', (167936, 1446) +'4f61708b4926f08aa49deef878665e0da9291b41', (169472, 1517) +'463f142f3d6eef90b2d44db8596cb300905b916a', (171008, 9933) diff --git a/src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.dat b/src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.dat new file mode 100644 index 0000000000000000000000000000000000000000..7070ff55d0ea32b29bd234cc0bbe3ba5967aaf3a GIT binary patch literal 180941 zcmeEv2YegHmA)Lg!gkzyThq1-+a$%JN*9>|C5oa*(I6>7GHG}LEV&>-0JDo_k-dqX z#Fmxbd+)vXUY*{{rPoVxNiOA*yGzggzxQT40Z{zgvSkbWNsHOpnc3NS-?Z1}j+M4p z5lR1HL1+${fh!axB;U-%uRu6O* zhI_k|KDXF4?He|%UAJb<2Bk|GuBZh~=`NR*9<5v`EzHn+CrSoKm5tI&xiV2G&BZ!f zmHwM{+_yr+BP}g;B0d!DR@Mv^?X8JZdN=)Ig8!IIl~Orf7N_=Z`UBG8FLe|yMR8jH zQL@o1hNjMl(+_a#nMf_p7)-^GW=5S)S4z`b(G+J6tT-xlD&oq9W@^Q(mM&{WwNP0Q zXZ0eM|5B&nX9DlHkYK?}aJHX-3N4f-^ObZaubScGc z8tpctR>TE^{3&VGm^8(OG;^Nfl$dN$17PLwpxmvUMqKYOivG@Z^R)uh? zWJ^@%d~0Q)tRaoAR``<6dO2eWMEV8A#HCl=DVl6?S)2i!PUrI3N;)krx5X9l)FbfL zd`_%NtwMl`%c2G?8)p0Zjp3}8-7~zfd;89j4Y`H6wL`Os&K<_+u((n}TQB9a=m_y~ zan(W9ijv2~)u_!iwrGy)s6b0Rbu!*NkuT;=J&g}GOGVM@({Q!ZMRVG`XzO3WAAq(8 z{xYU$ALM#CJyLWmU5T`lHqt}`vQNiEC+fDw7Hhd~>*DBs9e~+LNzo=Iv}`3ms}&Xk z{VUKVo6*^nyr~!(2!Xzm({j`o-ELPVk}92D_r0&QDx+q;I7tO5@qPj)+VIPK@Vh&@+tY%j7lYkTr8{Sybtf&R_V=8h1qZ5kbAtpbu zz{!kKse%GA9C0ZXbsB*(+P`e%sVEh#0GDDjqhdar*5)gQ3bNgh>07<#U>1=dQ7`Z+?W*IsWZcw@ddN^1mxU2Xk{!NFG!@$MjB_# zPEVjT%>XJ*t57jTk1e*y!5+Ot6I*T3D|?hor{%=90}N18o7IdwMwLDZWOYIl+bwPn zQ!7lQb=8;={kGT<*S8(e1BnJ?S2wkJOD%{&TkMRc7_#^cvw2K67{A0#wn#?P3|p3| zU$5iyN8);`-l4al0Y;NzmrmcQ%D&5EOHS<4I38|;!Ncyx|6=zOS&T&Mgx^gqn@f3Lt--2eN(zQn+N+p^K-kvEap|Iu$_ z3wIc9;dXTHQWv!Oj`h9yME7WC_l7Nl>dx{8Bhh^%ZQ(R*;WmQ@k^}dH_cSHmjhPCT zakJR$#64~e7Is*2D+Ac& zO=`rRxeELodY5TUf7o4C&6%c! z55o@9-QQ7cwN^Nsc6~AZ_{OfU&aUsghwQGex9YBMQ?*^+-HUd8=m`(uUEeBa*EiPK z_0?J09n_;5>p$9rSq5?c;|S@MO4;mMy?SnLu5~7#HA-e_0^HWp%xbOJVwtPKG|QFd z%+>Brf!Vr?_JD+m)Te%?dG5EHJAe6IewYdQ-Vw8E~uY6;>mlc=5y2`7%vGGitsF zPBYikeHbdvc|AW1hLt*hZn|1YxG-f~X-4A;b!V_~a=#PL1~kpP#b+aiKANN{UR$)` z*z2`|Md zLui!>J<5am4;c#>@y*ICakY`KQnIo-9#Z4uXDFdesxz{v;e}#WF=texQU;4aV`eEa zw1{9x>Q+|G(wv;n@_#mF9>{lYZpl?=EXu6ZIlVM&97{ z0hQ&xY_po3w#tau+Ic=0j1nTLj>CGXjEwY} z>gDZF%Mi>c8EXLzqfA;@d?77o13TEs%C`khNhR@ZM@zog((c{LmJO!QY34K)?KUeV zm2WdyXq7D$3K|wmX2l`_8a;Mfl{n?Na~pdk%)hP^MvLkw_p=u&>bE0aeRbVue!@*J|{A^1O zJYKwM8XQXeQct1g?LlLqDHUbWz3k^axKTdBnDa^9++j)>9_hn&B~i>wejZC$Ft@1> zAu^#El{};bIVGu0K#B_~la@pLh@s{*fJ%Y`yj8>z711Lr=;gGUj@-$HRC-nPk|BsS zlu?KpAk?FeKxg;jaZA;s-p|#-Gg>^m@N%OEXt<#dAK683Mpttn;RS*XnkbYksSy2s;ET$iyI$ zH1H{XBOu?R2tZ~Z1~O##A0^PfJofdJvKBSANv^VckyHdJmasi2<3%7TB5NC^_LipMJTNT<$9NwC5=UBi5AR0LK=(E#v-(_2t8aD zp|N3Jb}V$&lGT0odGz;u)^2F1TRy<*mZO=8ZJ7;LpJ>}SJvY2go!hX(m@v(4#mOT{ zR<|GOsQu1zxXar#FJ^KQm#sO-CFzk%@Aho zAj*@wScu>j{8C$$K3+Lf7Lov(6_=MISL#0JF4qg2=hZ*pes4CQ2Rck>EZLWn{ zE*J80Z|jH+Nr@ElNN7`n)mgxHmPLT5AGQ>J^}=<7SP?s9sL2uo6GfsLywP`ADoz}D zAk_9UL9m`4cfzSGb}iKQ#MGl*4L6ZPDwFF2bxLf9{OT|-+~WbtMxfV_U{phu3TDZb z`g*)N{w|l5$NUn~y*CdhX=X!*wZ0B(zV)H1!+K9OY39I}kE$Zh9N7JcMe@ueS&Q{h zsuq858Dx2Vlq^|NFMi01nMtj9B@~QT>AN4sV&(^d|MwU0|6u=RC>7P5CWagqBiRBO zNWj!WRVE=sDJl>MW6H%7$O+v=#sp+n(m;c4e!3tsg6yD~W_4V$5M+S+4-qi5e2QA3 zS%E+f%Iiol)U#EAw29R7luS?oiuix7csIx^Y>i=>bSvd72O#={ya+3SPzk7~)MlE~ zGG(YAF-y@aQt~$!n(6JCQbn)DYy23P;@ilAjTS;GM4oesHm{Nel-U&W@$oid z^m8g+N|Z}E=x9~IwTJY`U7tv~?+jXi1b8grD-|bcbydh%GtMdtT>i;CENv902&^`+ zZsfH_31&lBcB&+R$UtC*99V(y`hu-=wBl5W)-@0lVi_V|Af*OehOSaYXTd7gu%H5W z*cA$6@dEZQp0aqF7gJd7nOIa(Sbh{WSpl|%cxNteW=mv~f`>&kGAEF$BTAvMI1`{N zm&#T_HMl*rc`P_hfU?SG$$AYzs+_lGP?wCEHS*HLN$S=)Dr;CcLO;U!UX<^ORrm$+ z&G@Q`0)(N?T8$-oU}LxV)R9X}G{h`;-)aWRcUXav4AWgX(*kZ$OHFD;$Y=RQkh@be zaDS6lkfeLj8rwNKGBi5U6}zno3tw%rWGpmwDNX2AP0dOZR^<>BXElo23ER9Z|2N^o9!B^sK`0bE_H zF1i!nuTp>-F(;>!elh(_BGh~Y1rpbhk{(CRD@k% z!7;!yA>ViUKLo_k#DozpYnoDO+ME=$d1Y40CShd?qdXp43^&fvLE){JLE9-jmfgcI zWHv^s(#OpTbO&@4sF z+fp^kZy0WTmfg|ZTB~X_6GyAXaTr`!F~nU40PZlsb|=53^v@(Xf|EMzOz#5|g=U(d ze6cG=CgY)9c8E7aBNzArhnlIvSa)Vrn#H`ykVdTh40R5v=ER*0OA6Ly&I71W#mS++ znr6vp_P?X8HAYqpi6EcGS;!E+xmS9;1R$7U%aq5Of=4&PvfnJStD$?7Vh48%{~6Er zi`Xd`A6Y4#W_Z#Ra^L1oZCEWh^L&)+;|vH=FUn1h?}0T2CNO69IG^HkzG$^nIhe+N1lSijNo5K}93 zM;t{eX48~>h;*fm@Tw6#D1or87*L{6u?Po zF?FbkwwTbx&#Q$N-r1Fkt2eHh$V_F|1L5oR``38n>mlP2>?)S~$GXeAoiD=L*!?2q zr*}L9t2X{BWthGS+%*0wWeeF%u=eiKFFWCc6Jjy^=YRBb!U<5t2E(HdOL!CN+hB)6 zi!pJ( z(XVf)aK7;`^uEyZ;rwKgY*k>s;?^Y`kadmL*)K7i+AU)Q47_O~#-)p&%e>B2R@-Sl z(zB%v4;w2v{T%x-aDOF#oDd1Fva>}&Bs2|(cS1WP63>GTjm=Sn#@Zc^BX34{~E?`Ewq30`e%v!U+G7h(ypIC3hy zU_nj*^N~Vn2CmFviG8GDpVTDZ2kQDoXem#}w&sgqZRMaDuYw^8OC|#SDz8ix5jWr3&mtph_73?cAOR?bAu6qKuII45gk9dU3u-b?X&tacm zjEz{Z2w1>fzOqlg21@yP+6DEaq+Dsny#)}El8T(=I z0eO5fsqa~kJM}5hP=^48833VX!2qDcb|VUG&=;P;V2!0hoWd++x$7lniR?Xoi%9MO z}ISFZGB0HJsSlAoX7WIe`e0Cq2+j|F(bE7=SHS9;Q9J@dNYOMbn_8+OA zR)T=DnJZ!QOZr0&dk3=ivc3SlMa=yutVk}$p_PLjHOph2;$hHHml5k5 zPrzFp@n|RVS?SmYW#QYrYFAI%PhZX%I);#J% zQUCvb(La&{Z!P12T3hGF_M7bFs_H>Kl(yduJ@AM38GZwkoynVub8GUtnrxriyQbIZ z9=>VE?%tt+BZ;HfiTz<%4;;!KWFAp}ifHJ9A1;U3EyvbV$maQ7eyDVUYvR#g_MB)Y~%$W)C}?}I%OHE@psq4D=%w7|jie{cTpxX&a1qM@YY0lMZpn0=m&sy zF!VpHh<3=v{|6C?4?rJita}2WZv?#-IGFzLjsKnZ|M=he0ARl{{(IzJ6gU|AFB<Dh#91cik8FM&sn4B>>&MlP9C3x8`Zi0V5Tbx3=yU^BMLH^3&L!wv_r|PlP zt%%v`)DEW+7x`EfSecML3#y^zn!U;^*VA#uX&lB3=L?mz^D<~38IvZS-3GS@O*lA{ zKS(-Vrnfi6Y;hXie>%PYc)ZPR3vov3Xx!rDQ%#(iIs?HfrHivr$1yy+tqF~$k$>-| zuA7@ot5{rUYHpf?v&Ds`@#esL;p>@S+uQ^%8SKy$N0&BrHLdSJdOCL$;R#j8C+He( z;J4KlXQO`SgmjzF#cS!C-XqTM-SmqI z{tKMJbV2W?KcFo9rNF~qQ4|;UAC;oDiS$%1E;_(1fohk<#e=CBp3JE8=}KuDPI$#7 z11pZI?lw{BMN0llorWJc+y>2x*@ZNm_o{`;g1FRAK!w6FX1*fTWtwbp8NU>^QHHoY zMWu) zW?O-4647Cc&Nw5_D{zf1)&}ygbBO`HOtF4Zg*T+GMukVnpC+G*12sI>9K8X&TUDQIk)WuFMP(lW8 zgV`XJL-UeH#YKpk7#EWf!sx+<%QM`(I!&PfjZL%M(IE}P$AXx)MZq5&W@-)&MN=B{ z(hMR>rh@d5DTL+)&8j&0?W5;S2*Qo@fE4(Af+b2QrJTlr*-)+}a2zCgXg z%?T%2YQ--oCMs9mDbP)3<(H;ikF0aHn2)D$eA$Y8PAsHWAwb1tQBKQ-*}lQy#QgNS z&1TN5blhZ=j9zshGqq)+yMI9JlRZ~2(K%q^wsCR$LDhLe5OXC>9Bxnax;voEKj-V~B`}XN`+z$MrMyr@-LyIZ5%{)S2PT zeEvcON<89ugI0!z4N}?Q{$Yye4_Z22`2zi!ItqFrmL7UcpGHwHN{Scjl!KqYBy~1{ zP`auor6A0H00kclAYN*VmzlDFm&f(T>UZjQp@3H;#Vff0Rbmnl!Xi$*YWtgODA>K4 z`?oWBzJ^x-vJ-jzN4%C>O&+v|S`;zj;PbG6eBB_!5l5c@Zm*BPz{{WJ=WtTzcF0jm z9}{l?_1|cVH!=0!9OpHR-)r6F&s+LWt7825*8YDj_O<%9fm2}niFSRvY?gP#^|$J8 z(cgw14Uw%Y(UUfnfAGH|aIPz{H4X@)f;$yb>cwGPR0X>lD6LNSn zwRxO;FFt9DPeoJQD`$q;JS^4W1WkO}7N3cx`K)DGs)LTt#q|aK_4;l4tMu3CE72IA zPl_*aWALmY2hudJq`sIURk-kYDZXU2BJyzitFixEiF)R9^I~QHF@d?|=yBoP(nKYW z<LrmYEIz4-Nkhky9!g{vSww3G2Vr^<6ml$G#~$haq7C zBh4Z?7#|>wtLJtUX-I;bk{xrz|G z_-86oL%4?l);<{#d|#Z0QJ`}|P$1P0vS7b@;ktoq=$&TBCm}|TG<4#eYSK}O;d*-X z^c_)9E$IvCj6rT9=X61N3<)@jIP=x74#OnSAXI014WG`4!(i#$UsRF~NOsR3l;5Q} z$2hWv0!ySC2MszB^K)!*F0*o3Vt$^Kn4e!&Vt#>Si>Fzvb>Xj_hksRoU0x zTC%U3gR-x&<;uRsA^W<;7U{Ttxh-z3CHqqQt2>uisOnr|f7H1|MpyML+GQdsCUuYg zdL7|ceq2o1V!Dd(s{r8_z%diofr(<293@K!t;^A9Vd)^S5sfx29W<>(qam^)nH5uY zHm>i6+tZbBe7Z+pg>RTkih2HqMO?XsYBH;R4FS!4*=z9sNUbhk#QL~htd!E$ z(u|fSJNf%;0`LSBJ><9mG2K!h01fDd6+ksC9t`~tH;M&CQpb!#3{BkXG_MPft0s~@ zJ|vPpA$3v}7Z8U55+8s*(69oi)(4K{xElTcP|AOvi1r>TKqrrO%`-SzGrx~`2RJ)>Z1N z^63%86G5SL&II(Mi5EZi_u zdVz{F^k*x1Xz0P10P2%a#WSUy4Gug}v(v@W99VfcSCsl>si<9v4hywP(xxLmVV|_V zQOrDPEOHOVd9_+Ghx1f$x-F?tgByqwQWh5ulNmKb2Up8y?)fj|*3Eqxy}|v4EHvyh zI0u;ys6o%pz_%B%-ez!m4DsxoL7<>O<&-|p4Au_1ul!vF|Ld7Eh=Brpc6>4PO}SJ$ z>sQI;*&jJhRmI7?lNJ;(CF?M26|fi9U}Cg>k!tUTDyrQZrF}|3m$hrKrdBPu4cFDx zs=Yp!_<<0arFIMHv_RmL7acM9!j^x$e;%~39{tNB@ z$-eM@+4|p&g50e?75D(`cpAI@#WWAb)S&;NT>oE+_q%5St29|FG=EpH$W|t4uAPFx zrYTN@Y0*iG6s68X-fm9e*pp5e7A(TBzQA?@2D*z)Nl)>uM(Lv<<4l*useYt1B|R-{ zN_u+0l=O^6rle=qG$lRDw-l{zN_w`RAYw}Ta21U08pv0Mc1&&FzGh<~H83!`E4QJ& zy*;;fn{_0u%*p0`7z@N^1%~CcP*!2G2;{clTtu=gl90xlRaq!mU9s41oz|K;-lS%5 zT51v2yg2+&o`0AtWh*6PQ!KU_wx?M1(piIZs!100Wlby40v=0RGB+(0E4^Ao~7Z$R6NX<)H>`pY!0Bq=h z&oy+wjoh4S(9!fXYQjZLLkHZ~>2K(Odv4Q~$Ls39qq^6$hYqXD7MI3(FERsr0&Gm0 zq^lP8cLeuscaZd$`+Tz%LO5o;j^cS<|*gX;E&wQlq#lyAYyy1g`AyHbaA@ z%GMHug;zE!S2`t80+P0N5A~rxy1OQ}2Vj3y5EYgz18bXH2|blG60~`^6NCZ81aW{A z>7+^We**bQ0P3hN6yU>8S*y(Ci!frrlqgxC-~)jfq{3E%c4;jAtbh}wPOAB0>y@?* z=XA`?Cx36Nc+>7yoCmi<;SEp>!DOGdD)|D0(waFo zQ_4=my$v7W1T#7Cy)mTp!c9nTHpl1BOw@C)f zc%mIZ5qNofN1LP$y(Rc=az`0YI{p$znjxk~T^!Guae4?UH^a=T0?J8WkJrl|_ZIIm zohS-kbw7}``X_AIu#wx(sa)_QWCOajK2&YEaf56^xUXWzqOt~Ro^+|0g5**)O@0+E zGtFaGnq1?Nw=4EW8AlwNR^D7C-R2EKbtC4ue+!KUT?!8h56_V>Caz%?mfIMjIjdJH z<@uNk#F%J-bwMlp$Rrm=PNUNBFWLs4c@$3^x~7tjh-h~*Z+Jl(w~9ool-~I+Wgl5wUT< z=t`WFkesuY5gNF!O`PO7GizaYQ`aR<#UN8~oZzmWB4>Bk?-w^D9_eP=p%o`9y4aL> zq?-{wuPElm#LD)K8$|bhu{iXDrcCK%0L11mmn)Z!q%f>bB>sqoMx%KNd=Gxmfu30bo z_KWR_^M)%%K3i$Q+)@NQjY`X~1|PX_6)O4@=b^vTLrg@@L(_e@Bhd^muPqppukUPM z+qtf-t?gP&0c_tmY-M^%Gno3!Ye_SyP*QVZV80kloIT&-HUza`3&s}OSc;uBpA03A zE0)Y6)PKZH`$aNw;(W`DiSM68J~14=9Z4Lwg=Xi`VKKU2?9zA+O+ziJL^GJ!&5%&d zY(6hiaB4@4RJT8iJst{W{}y`zq?>Iq<}6_}@W*muoTurbox>yI7WSrP83mDcvcg0> zCT>MG)fO4nhfbp%@dkLyWKU;VnXnbn1!!2BT5O1}06w&sVj?FoOTEDqntnd}F(rc^ znu%L9_)&HS3w0kPTCJFA#Kd4~9lm1qYWZZfzhp62M_I?KX?|KAn4iQXJJ|%FT1XQM z4SGGgL1#-1Yn zTvWfh<^4h=PU+5OHGI_;mo5enETcS9nTeAp_vOoE9y>vDI#Jm#tWZap4Rw^cP)C{H zFBTHV%GZc}iDPBy;r)mTq{Ru87AZVq{oJ z-2r!xO`O+FG}?)^Zg=16p#^}asI<4XceJ*N$L$w)B~DGX48zp9Sb(d_mK{)O6L%+0 zoo~Td=fshko7kT?w#<3OJ^RIh#09}jLvlgXvP+UqJU($jFu${2aw#jGkT}+P{}cC% zCnX*kENbVlcyi*A!Q3UduS^{0SmcVQ?iWuB*SOor>f-6)8mkodjKqmh0@REybtboN zjd}My=2)+;|$sGNh#BmAPT;jR=#q+|S?Bw-6`T5~bcFOQR z`2~q%J6kulwr>zG+%H~~IJw&b8KCscs+8iziIde(#7h!aZq~4mHL%X+b&+ZU%V`FTJW>F%>_8-dwJrt;76$(`HI9b6EIoU z#4GoUS5Y%#{35JKsJwbn%xe;-g2m<>#k;z#wXL;Xymr5MUE(Ta@ zdDUCkYN$o-Zp7=CllTohHLBu``^B3Qm(+L(8n*@eI8D5H=_GGS#D+287PLXi@Yem} zZHbF(6icTE(=7J(B~!d3aS8?l6(ePuGNqB}o%_YR5=}KqHcBN(`B7^meD^`6dQal= zHg(;G_O)8B1)R;!mNlx{-m+0u*R|xiqeisd~m<`P~tcmlA$jwKI{iSl2{s+AKfoLwrK6~@kMKoPb7}+?C9tepWH7# zrNK_on+u((S=_t%IXHUwwkB7~2ygf|-_}IJMe>U;9jTIk6em4JLazuOp;a6X0R3I4 zOJuPfHS-hL0V|VOyA%~nc~~9b2^PI%K0sCgu!;dCiIYr=0kdnYH~^!5=xTJAG4yw5 zvBbkk)bJP~U9vPQ&|#yar4i`as(@8MD`=Kt-~4n^P}W|Cp8-tz$)E3pmws zk1d$XW8(}3=1>u+X)~8Kr)A3Mq~S89<-`KEMHnYA)U`I*&5GYR)UhK?Q_H{9SP=_` zE`_K2uGOo{1$ChndRXW-G_|jW{+_HxwjC|+UZ?isWMt;C2lSjN&`T`gp+8Ty4L zH-^p0Je=|?P7!d$04;NN#84u|Z0OZkxqK;8DoxW~vBYOVn5HKdDZB4Uy}@Y2Px z;?B{Lq0tfatlP$#vRFt>!pqSZI_y{z`q&tdI_62ZWb|fWdaTJFD@NcsH#gS`23f_* zNO)o~Np6x>k0#RdYg4`LJ9l*qt+V#-UAuL7VB<(-E{e;+tvi%qa-g%IjO4S^N1nT> zdbDr`xN7vk7*UNJsxhCRZ7ms-tJRFTx}&qLv$bu_y7leRX5W=J;fI+<&`R&nh#VE< z04~K8@I9Zw8r12p7@o-`Ke&ugY$KZwH(zD}Y>p!BqIftUzGHrt?udh0D#EbDH_OOa z&d89T!RU$Mz!w&NSAd=(CU`ZQQ~*q*GQqpUpk-Dl+4Avlr-%jN~~*>UkX_I#7a0T>l}8xB+{ zV(pF-4nBVm3s&9Dq{nmm0<#CL%0$Zs@kMqrlctkmG7Dh8rQznTNNh~x|5E?Gl643T z@-ns_;>%g$C=>f4Mi;byMU9EC^sne&vHfQ&Ph7EId^IV)rr(>m_qHY$4K#J#hP_jc zj`dnB%p^KF8!tSkP0L{=%WQ%y^Xu3&eo^w*X^a=&NZkv1JWM|Bn}8R|Vl$=Og7}s# z{!OaZviRZKjH$&m6W<9*v%i~q8VWeLVTZ@b~Cl?6!)%DM~h)F5NmaJatQpAa@h`~iG;v{Lh6+9^9WX6PZnqtX- zdDr21g36(%(V=`p4f@jwmlGQJxg;Y32I7PP5(t4qwA6aHK1}F1NLezC*)$ziAgYj3 zYI;}HSxX%l=k+hZ`W14C{%9umt0<9H3Etk zKRlf;(>jPmi0%%I&PlVzV+!r?DYnrDSDwJfsyleuff?^wWy)FhmrJ3BNCu zGQ?4&s3=#Ow28oDx3VNH1MfCN>OKq5@r6nQ)^$h_LwnGv5y zRD&ImRTZiJAP%dvQREil)q;a7bMY%#jtkQcGEF2IFD1h}X(z$Le?nkh^rZN&G#x+7dLSTD20Ub8Pr81>?{Pbwx8sm2u zPC^RGX1@l*-k0JbHuR)Y>j%6tc~n9E?mk?0T9pD=&J-$YJq82~2>R7?D~5;AuL(cf z0{3ABGz(nl!$)?}o6*%ANO*x@gC+_ki>mE6 zv8yYB$esn9g`7ucm#Fa5;GVxP05|`koJoct86#G^1+3B!f7n(5`07lpUC$bs~8djXtSmhnc z1z)7>8tcD9>Hpy&;{WYOSa=ebx{IeFAQ^v+}vHUF2 zQrSmHWBJ)wem0h$tO9TtEI*fY<@)tb{$tK(!(mhf;#~pu7aPpAvWi?Q)NUZ^#sv&K z*U%_NS{lTJDnJNTD#pa6(9(vW>@s=uMLG?UA)Nt_qZ+P=ryhZYC{!X>rB)$8C1sJZ zWy5UWuHn6AD%Y0WJUz6feP~Vh#GF>_-Po5A{YR3+sH@RF{f;~2E^oWMn7v8-wSzpm z%G*rB{S+y)Lj#X?s@TC{_6{oJII46-ZO&u6@upoXLfI-Sd1ove25ST+iY32#ZRA;% zAmAtjfXhHic}POs+UloNk@Gj`$NGgpv}=NSsHlsNr*hN)9sU=+OiKL2@43&yezNf* z0}^T&Xbm0ADOAMN05gMfs2~Yd&1-McNLbFfQ&7+|*?AZJLJtny1pkxp9U8Iu8Q>=bxDH@1veR zsUAUv7@Y2|*rC(akMXcAHKXoNRs9;iO+O5ep!7x<@=7aA1=fxb(l}NMvueTO8&83{ ziFE2KWH{jX1!&^7Ak7_2i~QqgU{V;XGxtDQ$f(GEfns67(8QB_6KOj(wemMFSp!$= zYjF)m4L-7#7-z1;6tAJ#v58c=@q$`*2(kOa3;{wQ|HTa}1X_;JGLCI8BpJvOS!016 zR%PW<*(#_|Yz2L^c`SKM$gZjwSLj%XKnM!CY2KQ_>MSGODr1#TX8H6pr{`(OMus#2 zEpAtEz%P(*2Am%xD}VVQWC!my!X2J?-)WXI9kG;^*!OJ^HeRLpQRpqVTlnTNNqt zV0{V2)Jf3-dv(_yfOh<3&q2HaayUhzLJ0IRvgC1Eh*`-`%H1VBnU%&CWWLAdU2a}B z@Sp^&YJkbERxKayKF(+mCY>mE-fVWw1j#Ap|Bp^~*Wv+erjDILq#HH3502K2cQ|%~ z`#=y~%zf}WW-SN&?|UBoJ^%jWr#|$Zl09(j)X}!hy=x2BzNya6eOtB-_2hSVZZ~=+ z_Y56L?9|4=)a2X66gYc$i!>y_%&m!s$-&eweaQ0Esvk`KhN=fszpuelduZ^~A}Usg z_3iz{|67LZ{|hDiPa#!xl^6XJRsoU@6O0KJ4gaKGtE}1`7X{1oh5ws zxHu=i^i&SdTvl;9A|Fj~oH!Rk((`O_end!mfh{idgrpax2t(pxd5D5eD)y$hWLzjR zf}J_$#HBb}ex-h~^lqA&0uNC%;r4W7mD0WR1o%OkQ8u8rFD|Qn-XIBR>zr=CYFu1t zi+GjO?XT)zkvbc%^Nc$31?aVs^Ff|`uC~QBfyt-Y7A^9t!Hh&Ym@u{;V3S4@nz1a< zSuF{uPQc}!#nwRNYR zQ>?eehG?3NmSw4C-4hqPA}20hJ1(w^>zAVaFVUOyi*TOF^+|Ca($+}Fkh_X zL_!AudX|AbLQPC;!8>`@r+03Xp5E9}RP->R87!x*Y}f+hPZQ#6Vn+4YHVsdJ!=O z)8vRq3=S?j6?12b4!{Z=fH^d1=|J91dY6vYOzOw0cZuPo7}2S%WSKaQ)YJhdl{_4d z4sw5mC9*azb^&?hM-TSH5Q=6@v0Ijws)xrtw%BXR*WDb~`}9$L7YH|&6yy9(Rljum z^V`0y=_^^nMK0w!*S5e4B~uc&=uO;1vRFou$-krX0F?-IbdlE4yXa$Xm8Gj;Xk?Ni z%Wq%=Z861VOw)G|NeVXn;t`FDAPMVMLrYPVbfUzd?zDAT zR!`_Lw6&2GrmWTIppN#`ohGc*YeF2-HXG>DbGDd|bm@gim)_@h>D!`R`gU8`aed){ z9!T`4P?vtRE$)b>xHHnFA7hKhM$smMA1|Bo31Lb< zF)5zpQ~JracnZ_xsmrAF(}>bfXG%ZA7SH4|p5;>d*|vBN$2^xPO(w(S??^l^OzP*$ z`n`Zj{lcVpQ8iM(xE`rrVvCmsNc}QfygWkcS42qtN}trPijw-(ws=ikf5ibkkm$7` zQoqg?uaBm9Lxj|Cw8fjEY2NIS`Yk@G-;$s~1aUwNoP$_-l6JbJsQr7NMOz3-) z;?va#{h4}%{;VxN7a;WKZSjQ&p}!a*^p|`>e>qC%uh`k|40E}?%YoAO6tLjO1^e&Q4Qr?&VRljPr* zN$8&wp?|@I{-rJcgUk4pOXy$Q;x`=gpG0W#Q12{|#c#vZ{++Di@0r?vNQ(ceM(sb= zqxPR{@!tVz|Bo&HH$v?{N2vW5pW1(oQu}YV_p zSkBwVQMg7@8jnDnOLk)=CvfI%<7nI^jbm_KivGs2l&H=GZX8Dmt%a0^4{b2bQz6GftuME*UpYrC&_%#%T!H#_3!Viadh@ zJkJ|v@}sldM`v@unFin|%{T`UA;=i#QVf63c@)CbZ=8=n(zt+b`7=Tb0OLZ$*FlhR z5uV$|#kl%7GA`jrg(GQU<}UG#OA!?Yl+lDJ4^zfvxQoEbxEyh|aRsjNDK20toM#p1 zp+k%1(%-m}GsJ6VxQa7S#oV2MaW!YTre>CA%Hpgdj224fE*Xth+$D|GxGo93HcC_v zdhL|JfnEoNnN*z!g`u|wF-c=BrSPD)4tKV(p3?#+8#u5m=xwC(0KG2yCFos?fNfmI zC85acIUu2T13%j2KDv-(#oe8h%){Md zaF;Y5i|dlOdmJUIhr7EdfrGodDa@qWk5CwQ_aG)|9H0~)?jDaj+js(}1xTLAfo0+D zNmL$i_hkAd+&u*W+juIMgd(5D0g1b(^P^|DkDkea*kBlK&qA#Hgl8jkm+>52lg4u? zRzgibHL$}ro`(nZu=adBw~ZIzD)+F)3la1Q@gm$MjThs(Bq3fxiRuyJrIf%S#LFnm zgm^hZVM4qDF-hZ*6vy(w)73I87%KIZ`wAT5^LJU zMIo`k#pB|VgQ}I}2P>$}rM75_>!<)MwN3^&Atng$Sugh+@rnS)bybw(dZl!I==cm2 z2O}17(ngwS0A5Vsu{S2JLfu$qKy_=ToiI6%B5P~18R~Pk#C%>FuQxY|mPKsl)+*fS z)lwD|;61n17KV_Rp{^*PGa?FDGfq;6fcgF)|MU@x7tFjB5TWlLl0O1ud@eMOcQDn+4 za^+IuGlxjM)0dx$a%1KPo({ji8uLHxDkQ|={BI3zc7vRJrUo=ovp5%o9KJb*DWmW| z1UpciBShN9i0qz$^fs$*avTA&D`0Vq>>$u@ZBcV-OIusJIF?0#zJp(J+`x*X7K#3k z@7?sPMf!s$L`DCxu;~B9d;D4JBsnakS^yq}< z4Gn>zBqq+lC~~GP&WggvcWb&WquHAiQu z7F)E&^{Wr)fkdlAvs9Zc+M_8tBC}K{oxc|;W$n_k{dJKEef>D82wVtaoUdP`pNp|? zV^Vb0p4P9$bf*&zc&gSx`WxcA=hOdaDx_{c}!MC>*fGV1({FBXl3~>3&m`?nzq=$Mu~D^gyDK5Zy;@u`8Nl zcZBXKTkMIZ*-NXFbvkH?d3cMyP4CsWx-&5mOw}*k{vukFR2ipkfo29RM5t{7{th7K zzj#nbU!z94RTd6Oe-J1v>G$v;CH)`|=H-LN!zAHB*NMDR%8&ez@^2Z`K|;NE5T7E+ zRH#R$8BzrB$yBmMIYK58A(P>g$&8YzVhby-ivxNf(QJrJtOyWEu@E8CK3m)tE#-EP zOi%>y$@HkCc(lG0neM1TraJ>^Cz1tT1xfk8D3^E-cGCiKj z^aNWxk@G((L?%|k7|}KHWCqMr>XGZIws=~ATu-;fGa}@AW`tbN^2zn=D7l_v3+M(s z^MD>m^t=$co^Oj6L{q#lLarCt;>FQ4FY(Cr(jd8BmJ}~vl3cH-L9SN@$n`2ou2+Z2 z^_rx3txqngCxBk@hGmfJjYO_DF}dDs3n&U8|69Z4B0j0R)DdrEn!UXq&E8>)cLr$o zE?c}iLbLZoX!c&8X77vA?ESX*KwN*%0X>lDgCUwp^?-1Sk3?wpQC1iTr}?-?vrhzR z_Q|C9)RHv2w+78V9iZ7~B+Wh>rrGC`;`2VuzF>jtN6GaATl_GtfA@eMNc5u+ zxqfVmpF~sqG(xVQ*#c?=;ZlC?k?R*ha{V$X{$ojU{i+7JejOm!ZzQ>(Xb>C`f14D) z^U3vlTl|5W`@fb!u0ImF{>0?^Z(IBi=l|a@xmZ~Vwr%3iOs~Jxqt{<;@wY(t`nxUu z5uw*VBlP;0PcJAKkVkV*c{HS9@XrIfpHylX@S@uhC9eeA+Gg#7xE@Y=3^BAr>ZGh$ zV6*x_H1YA2*ja-(ngrhb7StnHVwPj|g6d>todch;ta-r1WrczeeOa|2$$AAIm07>Q zRW3N&X3c_wC%17Hz7G^P&Zb|iR#@}EW^Dr^y>TAm!_;TB7P)z34FtjfD50$An1&vONy2fMbhiZhVP zLG=uA&JdEjk^X_rDhJiGTtiu0v@}!6{%VMo50b2Ou+#`3brPzsUJcen@D{KJ>mASn z*&wZhFj`3aAZd`sfsdB8xU-FQoEGGjN(TqKs%6y#Ld!-flh8s62R3UPFj}O-L12-~ zTVsdEz*-257E(c|hZa&!u#FpW4WNaz5^RGs5h7?wAS!|uQcmzGzXf+uv}{G3ZIBv5 ze2NR03g_9zc>+?}fO10B45VTZ8C6K%z&1!Xq53;WL%~A}D=GxgLh1=ggLD#>L<^}b z)EHYxXCW}QkiLQ(TSgHIqh%Ljk_IU$_-LUGrOiqTOkPq%SjO1GY6(CKt0WLwNF%{E zNDG0BBSnPp*y1b%j9c-9kwSV2^^ij93bv7@f|%a4C}2edo3#)kNSQ#o2vSHn!AFXY zyC_mfS;00~Q(=k=m82ErgN6%Y27p$=VDI7t&a$2ba6J*t@ATA1?bj@*a+)Vm+NV zQdo$l^H5TD`#rowqhTOkCOfYw6Q45Y>oflEM}p=uUVZ}8yq zEUHQXF3-k&l64!FgbS-aREG;GKLp@Hx(*U9r0)=h3#mOM4N`aT;X-N;wn2IgJQBQ= z0|z|~v5EuWLJAHHmsfCcq}Ra3y@~_DX^01wyeX9#Xu-yq+W9 zz>y)Oyb)0mq`V1HK2qL{yC_oLf;iiFE3WY=E?_F0=WU!PFa^DxGrXf_hIev?(1PV% zoaNm$v%H70xC@r|QnCP2-iQ07@qS#FM9K#!QFWwzkRJI1%ZKQe7c3t}D2$YkASP*i zlv23dH{)ZtvyG2)T8spr;J`s6<&#tvkn$<|r77rM1Z?BeTndW&31nME?^LTC>U!Veg#C(w>zr>Lt#C#c15yX52Q9fe6in}OczJ@s4 z_&TofDK20toaY;yCxDo5a)xi!%m*vkDy0BP*&0{1LbIh!az9&F-hZCO5p+JINaIB z@thWvJ%IxU4U`y_1)!WrzXX(%5P$^%mxAIR$$=nH@Xae)jZ+ZMI5`!8dN?@^&tX15 z#rQZmgCo!6$PiA>LR17NXCunT$vL=-;^bV!VULe%e2NR03gJ6 zLkK4qbCyeLW>F}Mi<3(!SpX+ZxKA3F;kqPFE~iA*adHJc@^P|?ZW$+6A{53+95G4b zDoWwugq%9t#x6dV_8UfpA<5EyuI|rgTNf;f7XPk5*P!A_- z@Z2`mQZYVG)^X%|jtt>s1EL~0*@!3~CtbLU;^bPy!JGis_!Ji~70z=#=Lz8C2F|dl zW`-L%LkK6`oMm&(ED6fu;-rU?1#q$j_eo92r8$UPMI@axnT4LP(agIj*lM?ONP>6Q^vKq!om8N?)w zBBk&UQo1;HhqLP1!&Uz)p!$7(=zrDH#|bFn#Kh^)(Ky2vXG&(Fr`dg$ zEzb6Izs^ZDVe#ha0Zp!3r%w&{+_bHtj;!rY4Q}3-8cmfG=Cn9Bq#btNxH!L79pGK2 zhEC80sL+MBxG1ip4i{I`3A)7V<8UTJo^_;l5M0TG-Dxxhw1X~7-H3!ZH1gn80ZDVv z-wG=|t%+7~xy8C{0rx0SuQ60ON4dhru^@H)$Vl%qBs^r%?Nzq8I?SIH*Mz4X(d^AR zq9ronh*n#yj_cPP&;yC!Y{s8q98WXh6!0_?oKhTLGvPGrFo)Dt9bX^OG}|yPHpbyW z<}&z@xfI$-T}g3mZ9TK=7O7QVzx{NmJYZ;0WD1E-K^)Gibn6T^fhoX6OF!E zs#SCC$Kv|+`exGe)Hmtp;2Xx1@GV2%ut=>s&DyfQ;-9$n{+O3)jQ@x7{Krc{XZZhj z9DrqT0yUX)RB*z)GFd9+lqu-cn>BpopNG8NoI+9gKx~|>T!0_*0(=5#wcL;X0h#c} z<6Gl6rw8~rr`%L#Pv5}S(b1lL6MGD8N9W{Lv#)bvc=(9&Kl)VQ4~GD1&2V^UXgGjL z4T9KI`2_GL26IyvP7c%;;I zb*H@RBU9cD<6@I*Ep=m3bl0BlHuJ!a7bNPf4S1^I*`C)1?COkXYF8L1wnf$k4~0X6 zUQ)waDixg8_f)l(+FNT{zd1Oqk1cmvAIG$Qi!IVH^@8$qt!Z8DZ>ln_XZp`wJgsN@ zyDS~l&0#_WDBuz;qpNxrQ{qHYOzIx>^*Ymfeq2nEb~KmnEG6WEwt#6J(11%cAObGY zwjIy|bT3&t^w`VMXkqDtwlJd6rlsFxi%K*avpT#6%G%GyVd*snYpJ-thwb3zl472} zVbQd{P|aHEfjcs&G5=#^E{fB_=0m670$$et?=nl2oN0WdAs((JfY`up@(iJs%qOXQZuF=$f8#idb$CJdO-BOU8G zE^WdHAZ>+cBjoLNY4hgocCXaW4{c-Pq2|Y>)Bc;oMKaCuX!W;3=OB*ytG|YA~N;%jFX}7)jUdFqhE=Uc571f)}Da3VFK2P z>V4RJ#c2zMz1NkCE!7JNvc=tT{V@mhK%)JjK7EfZ4n$KtKGLV9 z(NMUQCy@+-k@aMs)K5u@r!GnAr`09((_KgPZFI!#dN;c z7N6!aKI78)v*b&ZO8q?1nFem&0E;h#Y5hf6!7nkbznp}X4^KAXKK<2twEmhcz8;|U zH*E3E2(7;rq4mG{wElLK*59$kcjNlE4(NeI-wVtD*I{EslLf0Y!!_G$eaTfp82RQc^PY5hB*_3xS1f3O9t zfl$UDU0VN%Jc&{aY<;A6+AB@*zhOfES=R0^Oz6KR#owwC`tS7!{SRCGGeGEn+2a4g zgl5~GFs<2@s7G$c#3yVJv=U>GW92io0^tKwN8#${IRZ1rQa ztxvpamJ=z9Gvu?KkB1O8?MX_Do+YMv={>a0OfTJv%E?|@0MQiVcoz*!`Rryi$!0(v za@fkpW*Z-(G~4(r4?@!YXndUQfe1)!`XlXrxX2692o9oxo<-?xm+&LU@i9)V#BB&& zY}>;CW4j*07<&^!x0QMZlCfqreJOqVq z&a|9)iVc1+d>IKUmw?y9MQ-7eP~=t)@bZMsc^t2z^tL{JNfvIpDa}Wto?>&ch?fiv(ug~B{eJQbnP zDvceDCXJ_43J-kGz@2S8lhXnz&*H$c!1rt_58!(a{Sx?|i-65uM|sA5J{Kv$_X2+O zLXN@PUc>>%1HF_|Nk^k0^t}YBU+lHz@LxT%<(br})vm9D_%n=72Nw zv22vhY{K*IXOT#L(dQ^c;QKrRNj9L79}?O|8ehcIdf@vKp4-NkaSed)D;)V%jtmWb zUqe&`d|yYD558~UE(*SHBF;9xg=>6@3z!P$`8UoJ0N=Mc!*^HdA_j`Wy2lvr`aX=oO1c|)yN8E>z z_a}M^(K2x5?tOc;4&93wx6Y+@LB zWEPV&$ONVu@-9VuJ>)gvxy{xw0pwlIkyqdvnQ+PMC4xM%fANt=wl7iSktGZ~Uf>#^ z;sU0^dB`dzggmm2u?;eMsh)w%V8RTypg~O4caVjQhdeTi@y9%}je&~`T)F+~A&(4X z>W+D2GUFnT3}+;%$lN77=50hw(&(ZT-h_KC?i>RdLLS+}EE9QTF+<2Bn;AwPnaE(r z%q5}7%^Z-(BU2dL=y4xy;ec~`4D^qr9ZYDg*NY_bd)UT>20gNFNg8C?QVn`!-%<~H zWcdQ$7PtnWN2V{1-AkCoLbfdt=#iO=4?VJVi9(MoUmUZSDK20toQJGlLeLACxm3+S z7B3O#?csNj!AiVp7BXV-phtEuKJ>`qCCL^qOG1x~U+O}SjA2~psTAhix9xM8+2O*d@n(KJ@CC0&u!ynxCX%Ya*lijM}`)AuS8S?e6K>3 z558C9E(*TaAkH>ki)(y}3z!P$c^&5oY%^ZZ8QxGc!y7q62z+niEN`xv!O1>ajK znFqeN;Vx;s9oHqn_YO)_4}9;W1P=J#MPVk@yAcY5?>&e~8t^7z8>^Ghv&BOd0Yd~`vOOPkt0LU`x2re(EBo?eCT}zcTwnl z6>+xlHC*FUT) zAJ-+J_XA2)4|+eO1P=6mL}4b?j}Zz(?H3ua0e#4Lc(|zU`)@qAjsL+l0KNa^$Uk#r2zq}(R0Mi|MU)S{zu_(ly}u*QHvWNY ze2NR03g`JJ=LtaXU!39pYGzmgpFfe+-cg9MjYr^G{T(YQiwnJ@DVYboV{ixm5x6c1 zz2hiRJ?I@z2^{F1Kw&0T452XePDD)7IEhkt&^sA-@GZeuq^1EO6381r_nD# z?{oyPS>}>Z0b`5P|Ok1d_&ubXx^{ z7a_hL_%6nCNRe?3fKTDbOF1$Gz9vLPz;_vMrnlpsPy=yp2bImL*l*I*KD<$*5w;FdzqYc+3!PicS>VdC=5;)-Nq%f0e z4MJh?twl`ISVt*5@U6!k&Zp$GK*~lAEDL;HR35;0E&USsu0sI(WiAOt-oOC~zD@k- zM)y%S2PA(5b~MIj+=r2upcwv~9tsiiwjcn%5OiAwdA*3QhrDfg4ly#W0pxAx$bOCt zA#VqwBFGy+l#jeY+(nVM6LGdNgll|?3z!P$xry@xkeB2P!!-p10tb2H6lPN0f>0QFX~ZOrTPcNyJQa61oRZT5 zCRq+F3wb#z56IK#mykDs0Jh6q5{lG0Ad#2nM^o;jX%09uE^TrPhzLV(hGO`8iWDN~ zl@Lf8WxA~bJ%RXo&@=GdHcVUt(5rBy#gQTC%_1rSy*Whr(3{6y6nYDYgQo{v<5OI~ zR5;IVoF@Ri+c|?>GsB}eLkN10<}7#A%yK7XaiRAZO6CoEkHuZmcpR=vLhmk0R1bQ0 zQvwHi`zg$%x(A^!^bQ~`Pb!$Y#h)k|8e(N!~080R|=;AuvFeNg!bxaM#wg zT5Z)kT9;avs#WV!b=>RHy4JO}|8vf}_hsH>5~TlH5F&bjw3_q==0J@?*o zs{ufFnR0?GYYFJ8S4S+rWYrT8EpA$tBg5%v0Fqhx_9KO!=l~*AzD5AajwU>fqI?H| z-j?zm0zQl)!*7`K9UT$0NrKE39`JG zfUbP^5$k@*;so>-7Z#{Gf^cruya$j%kMkfR)V$vUNOnAgr%^QTVW79Ad5-`eMv&n* zO!Iz6#K(we(!AdTDMIre2U4@1EmSmyr(I_Gp#0g zmJ*mW?~jz^xmJ@rk4dEFy?|nd=KTrIk{vI??+G>UB@}8)^Ik>)p?R+$rlR^YAhYJZ z3Y28WYbar8-s^DYafC<~)Z`5UC#89BVt$}`Z{ZO&?`;6kTc(^K%XbOrn)e>D{vuiL z6VNBHh;`A94}fOYz7LT?kMt2D)V{w0NOt@UPorqx$3SmO`#u4_$MGrrhH2ktMEsnH zChhwINDjIQyM^}_E zw67bS!JKQ71ywnNz)5Lecgzp8uLmAc`_2Ra9cIc2vOJ4`u6@0T)myUq5D+~LF!#=e zbF=34MG8GmKSZc`=Kx4{oQtPXG_OC<+tR%AfDf~&;Wte4E+FCnBAPVsLLfzG-asHV zYn}pUk(xIMXdcI4_>Iq|46@B>hESR?%^OMyE^0NwFiK$3yy282zSSfnFp1Q>ktk-= zd!yhi*)bY^PpElgP^c}DvCRtFEi3Cnc z^Cn?_pm~$=h?+MA0Q8nAC&+Rt0bTPhCDvtbMTsooqS&LyHr_2vO7LiOeYsaf?Fz*(f~B>~OjSO~xI z*_1)HIn5$U6Q+8LDZ!Ff6D*|!Ce>R;Ns?PlvK*60)mwpLhU%?^vt-8=@OwhlTZKYx zsUE%vsd{S=Q&Fu2WLCX(KuLC7i4unDrN9})P$XHFM^wEu0MK2g zoFK~#0=nwiiM2tpG6}@dO6&08BMuc9W);jr3O!dgB2>W~0LhMAJdL7)8-d=I3g!Xd zIC?C`?x301HJh1ycVQWOxiUm0R5s&YVP6|4YC zvSSBI7%Er^XCB8+k_COKB5+bFxC`?G72J(SR6!pA=r&VMkmX(ix(e+1~op?mey9)sHnJFj8@@@jU=G{ZAUrW|+2#9tULM=J&1%g@i?n4Sa z&;5u{^*8|7t^iM?sNMrWZ%g$a1U^ithTkyNdx(e+6Var4j{qq`^&SOMv+Dg0&LUOs zF`#)IzlY!WY|0?poaS*#6Q+7kP=Y60P4E;YFsa@jD9O{UCV2*vNY#55#SGQ^Bb+5W zo`c^Ls^0S`)RyYKfC57G{)Cu{>P0|i)q4pj$&Qy%!ce_e;LPLrGs%LUyh`AtRPQy+ z4^;1UJfiA_06?dia)K=1B%rI_Tf}->vfd#eJbV=4%keId%*yv3Qs{~Pf(VuGeE`Xh z5AZaK@_h*Owv_K9;Cmc@h2Jpc`x_BICZb9CJ^@mM@_h=VX65?~&LWlXbD((~U%+pC zHf4})PV;w46Q+D$Qi88qP4G1(Fe%?Rl;qo1lYECsr1Jd(#SG>99?p^-|AgNYD&N0Q zs4eAd2P@>I^0h}yMfEd4X65Sulw?OolrWU96P$S*okzh z^#eXkr-t7!y*rnP{fTJOyYqk)p?Bv4safwXfU`)w8vrzq<3jk2&!!Br&1nWwnlQan zD8Zms6AY#VCcPU%NrtwXD@>a5S892#8gzH z0h#q~3{YU_L6k7`?qWEDT?j}Plw=%%lhV6H%n$T#JRVW+CIEmQGvx$XP9mV|-DF}- zk*rGy#4R>!+f<4hqcG>tA}H8Ob6Ip z5HsK`*)bD-PgoGMP^hhfn2iFWAm$*Zf|v`)ToChslI)m|68JhIUIU&lc*0V+2 zwzD9}Fua3ydf>EPDOzv+lme&qp|F+HoyB?SQKF}vtxwVw(bM{#ID}Q)Oo$cGoKc+C z4+0!vj5mE&u@NqA}$l9P? zV2Z3ZAVs_I2i=t(QfnaGjpBhAa4Ouu;AoM-hcv&*q4b*cK#CVd2CW*lnC@ev-RZPt z+O^>)zKK*J8}W)3={dw{@o;Y=Fs3)&+bEnAem)f1JP3e_af0UyRZ)r|gs>|=!&c0+ z(Jca*j)@Y;G@(Tx(~Db=Cx_AE+6-ix7!gfve2O*!?p5sy;kYIyYm-`!qc#~nShorn zn9@e2qg~?BrZzWi8U|K1Pe|7;H@9foG^07wAYz;;yosiVjJv!_4HKFXKJi?e>Ct9E zFlv*;Z1c1?jiRYW$jrm$DN%*TpAQRF)Qi+1@B$VjYe_0Tr_B`YZ{dP3TZv7!C_Dn- z;;4a4m$ViYaA|lT(`6C*m%kBWL%Xu_^HN)hPo50gwwywJgSM?~Es*IINnN4@GF_F_ zqh%n|)k$Yl>8{b=3WWb&4Z%RKfVZ+PS-X`});7{Jv|Q<>M3tylU(} zg9I{Pzb8bXWXO9uD8$VWQ20onIROMbdwP|Hz`j?0rx4g6WvV9s0SF+oq^H$_fL-IQ#E6z)5;(}EQ4pY$3WLAX49c#wd5_imk1y5)NXDcpOY#jV4+5bZ29HuRsx59^%w!R zyVn|pC{=4hI%S&UMhj8)uF4|7j^|zJMG7l@Cf-V5*Z98#5b(VdSA_`7EAA2`P&_-| zOJMKtUs(xke{_`v0V_Vz0geE+FT6c~fM2_8Faeg?={7G?*nuM@3Ie`q?RqZ)w)dfp zR-!m2zpPXIzx*JC6t?%TOW+8=eOpH_0q=1q9D!0ha;gsYFTL7Il)4W;R0!;J9}OVj zmF!@UC^h2M@#-%oDa6|8nCvBxbKSHMf!%M{SPV(!(DKM?d?k zclR?Er0^xTzw0I7&MFQPsJ)=kN}#OW%L;+IN3;AgdN?`l!H+4{PRR$11#%jCUOQ2}|tPp{6*H|loUH6V53ab~w zY{v%$USzRq`NdKc^@J((6_Q5%AqN_aq9h@3GB-6qft9Br5`L%X>LUlp~dB zGy|n*%Hv)F-t)!;33&2@Rs#Mmqb&$n?d&aZ1mUXXXDLKEBn$4)-_H*atM0embWr~4 z6IP_KLz7nMVA&C$&MNr%O+;zFu^oSY8e}17m-wjpo>7N`NMU7}EeHjA+A`<0M5!*Wu_9n; zw{Is3bA6Z_LJF7H;<*=>>#Tj%&s&hi{GVN}Q);h%Er1lh!q?40ph%QEYk04#6)9{> zk5AzUGRNn=r4Xg&scBZC6bfBsyTupBD*Ge@2U68eyD>;Ifn7~R;aAD`eE9250c5eQ z^>-7C)i`E^h;sPa8D0eU-`XdI04q;g97GDM%3G!okmb(yE^Pz?+?apr9Gzw4b705y z7G$x*mNUHwcy-PvAp-Ai?x+xOdp__YU`+#yLIlbNmRSkZ-ua$|z%}b$(m~@H6;`6u zT>mf}A;a>5-&u%ql{Uvqpjvzvtakr2g(#l1fgu9Z-@L^_z_;LG1p&`^;U79E9{8mW z(q%q5vbtFI6>>m$#~pvOB4B&|`Fw~dwHg!b1Cqu&DY(hQ*Nplqf^p5&akvYnF`T< zv4(S|Scy{H)D$FexSP+5fNy$gJRAWO9{7b70o&BQgO@0^UE>2p*(cf*w)u_gti;mX zH^C8vol7Pv1hj`b>y)LU1X-nQcVr8~{q5F;NVvZ9&AM>@5qA(N{Ibi31`x2uN8a`# z;N>@;7eK(QvfbJ9hoL|KO0F~^+`oI(iWFX#^dzzPtQ&9l5@r9m?<@$|MrjD`Z2!1I zEaQb2`5y%W$f!MYg2dV?a%P2JTpuFJo)7GBgiC1eo?}J8{IZ@8%c8Z?#T-U!|{Db=J|m--bx0VpcmV0=9K?5gY;R|MuGu0v?$E zx|aZZ?kl1&+3K1kd~d$l}#2&V?g@P5W;R5vc0DGC-hI)P8)sXfL=+C_htWv$g$wm4sQP zP<6g3;p`A5XEjov4+io`hL`{A)gZCl1qjg;mafP6z%GmwS=YTtAmS@^J_$tWf=qSZuwtpX=Y-5g=CMJ9`N59nSF~ zr0}gzOjQuDU9xd$=<~FNSaXF{$?BfIQI~1FVw29QS@@V2Wmt)95O=p*s#8j3d%9mH zx8C9yAXy-Xz0-0s^TXjnO9U%m~ zQ5Z{nS9W%gD7#jE3rAq(i1vb)^C1?bumiV$Ml4oqy_W!ARXNOyEMB`~q7IB2yXe;z zE3#PaM_D>JC~b9{FogKLV6C3YFiK0SH-<13x63cC;@T$^q_E5*|FROxDL=j9&l4=f zI{ZMHmw;4Jc1$#XJW-gS+_P>;0A+YtcAsjTl%CG0oy4% zYd&FPv!=Tr4w8(lAz5v3V1R_@%Film`x=sArNRQ?h0p(sD7^HYMg@g=ov+f1fXNOo zcS!4Wx9rp;PjFaC=IHX$5CUHF^Dzoh>MtJ)M@U{HmDVO%9@%}XNl+{(!*?#wo~1*|G`nPRt7;h53a^%-qrl%yJL1 z5^L9Ix55$cdHY*d0@6fhRZ{(qiQ1T}*DQ;WDZc(vqOkHF|L|gRR@(P5g}{!VJsLp3 z{j;`t31nrz4@Z#M^{2cLQR?Hlg+QI?zVX?jyTp}*BVJ@Nmu#}PUbUJieET>}XXW6k zag=fY>bW2Re}{*N!t2v+@FInmUD3&kfbEhhVf2zJI?N7{jM2?;Pf87vuuHzNJ0I+! z5T!xB-YwfwtVrQi!qvdGi*jf6B01kAU({}Khdf`neVY4L^M3#P5apBpm zUz#GdUmnvbjnYrzTUKu+8L#Z89NTe6fG7#VBH}4SpY$SyYog1*jM~p5dL^tE1eHU4Y2b_39)#ctPd~gc&ARO9rjGH9o|nx z=q?KaR(J0uR-!ni%fhhm4>lel7E6`g|N4vfc}ckXuD5~&w67F6LO#2?93{Xj-`$0z zxxCl+pI8V~J04IF-2dq<^%ewt%iLFV;Gf>lN|ZwHa|BrV>W_8GA?LNhb|`$^itb(l zvP;D?Z4C3_#XN=80hD3&=U*5^z?Tep295yg zWvyQ89<8&CzSUakI&0z$B;4!`tN!FEJ-Oix%X_v*2uR?~5Z))2F3N%zT{b>|ELJOh zAWgzbVV*xfmr^N*chdK$tZA>XnriO115V(N+SoDPh`xa{@@= z9%)*aAMO<*imX6bMeRBZQBsA`&bNs|VTMs!BE7PPJGANQm5>N>wn^=ky-~i-a7_I& zH$XB0=}!ps{JWJXMbDRb5wMa~?L$Oql4`R@XdS;%`fW<3FGZ6srWB8rQn4I)t%}X1 zR?LU(dUBE%0YC8h&xyhhOS@&q#5V%O@?Z6)LZCo=o@}k~tFx85%(Le6`3x3?0IPG)vo zuz0TMQt?XLFLdDo@yRf0c<@bktyM5N&wAu-F9GRY;gxa(!6ki+<-(20*S-1x$imgj zW%pk;zP#qqJcU?CKbaCDQ2o@s0Ro3MbXEwYeeZxHBtLr3T|orAYRGyEQ39gYVs+Nb ziN*FvPtJkfe+;1vH=M)!3kT>FkErlj?e%klBvULiG*s(I&db1o9CTfuXM?~D8IUJe{!ZMb!Z1p)UNU3<|;G1o=UTZvV(|6U!`D($^UVeUa6 z!x2(d3O@kzo!`ewl(J3zf(TgULz_Yb3?E}v$~-Spc=f1BR$?vsx>EoFzfvS;n?9Lk zAxfzjIb!>SCx;t#f?G7TOnv=QJ^3El^F97#P*3jL`(6<9VYzZt=wSKAN~D_J&nyV^Y!L>b;x)h9%t?u_1E0^6nQyTBV##`yZEm_C zfE2^s$I3F#REQ#dgS>W6ryx>TnRqSCXsL}6mW{F+tdNe54bnqiW1DKBCg=d0=`%J`OEfw93V+Pvv}V0RdJcDhIyfrOZ$} zywx3YqiBJ3{%7@-3Z3uZ?!DtDq%45;rNUsPpO6RDwa=p?CX7oMxuD`@fsd7dn!VzwDn|DEwC$0be1^4CcIPtj?0-p8Sv;%`s{}>3HErU3dJ< zul0Pk=Dy&?3|ZlVWGez*`N@Mir9{{ye5)LZFkCuyyrXwW^v8rx4BY=R{iOvY$En0Kt6qYda%7%W1^wKnZSF9(0LXKB9 z{4SL!eD~9e7c*oxUeGg0Kz?YfR(gPIrT4N}w(mAsOEeuWr&N5`Ys`Ylc^~N)-L+%{ zvDl8UdjSV7A^n+rdGcWkQh4LY1TTU8*Zd(s!0>QZec50oic1c1RXA@~h_Zj{-*li3 z`Lh=(?D%ulI&iPnbXKEyQLIQf_gJ~;<8znj7w}rCNQRfMoFaR}}&~mkuMq3v<&0Na1quj(Y}tZy}2O-g!~C{<@6l7uaE@O!1fo zownonJ3$gR#zGIg@<%UG_RqpB@z=VQc;xIKqup%EFZ6z`UV; zwuNLIax`g{Y!V+eUdBso$TPjD+x5VuX>B)sFk?$356;>d>-I}j3 zW4NDEF?E8?625;Xy*u3SRvLD$v@}`GxSdu^&UXxbF+}*!%6rUIe`G@kcEL z0&*lIAl?r*X55s?LBGwilB?^xAVjHVN;hGHw9y>eLjhzlX(94T*|(Dedff1t8N(gg zNAFQ8Zd59A3I^LR4c@JC)=7;R-D+-L9v0RXyFt{@%ys@@xC?kdS+lZw*$(fOZj62V zukoS`n<4G@9irZ1)rBK0#5yb|q@;R60WByV7 zp*l*%Q)FLZ@174Wl**VwI9s|}%dUJrKrHFwWEJ(l^&-Wvm)Tf$okA2@aD27!k+Xxc z_fWe0d`iU{#bgtf_VF`B;m5_G4J(kdr~*@72w{e-On!QMUwlnLO0(f3`y9ONo%2YT zSBSAtZn#6%OGo(5N7I6soXwl?jzXaRgTLvNTruRx9M{hw3NMob)c!5)0`2gkR}0-> z)%_mUDaD!I5V4$6_<)$n$c*lYCS41A#H3VKFKv*`BW|@&a_L58tBQ930j^cr+ol8Q zEN6And3HehsEpBo3OPxwQMyQtS%Jo6lZuDk7R;Hs|8_-)z)o9&4g$g*!Y6kx2@7XAcDmtU6MVeH&>G`$@|2hC~w?U z&}z_C2w|4?|a)qGA=pBQhMY}E6G&K8JYnxH2hJqM13ki~t%EyqjcEDvK6jdZ>meo$5-23z3nGhG#Pw4UuzB-Wh6rSOudpECdluaSM*zDE?hO*y?)EDL>Ly=lLBRHj ziN@TRAY3DcwfQwKy$d3ce7l^!q+N4mh$!`PepX}fYztA!DX4`lH?_F%3gY} zH}zYsFgoROzM)?jIm{T+FO_oyvSkP1*o%dF@^U$8<-oD`E$vVxO62s4LfP|nib=#w z+5pTL4%#by9xaS*wxb7Rhoy72=nApzVoDk-k%h8P`d4;medHzK{bE>>rOWYwE2S4! z&LHCl<+Ob{kCN{_uV09gSM5&>AmG))rsW&utVyFwwL`edn4Iar3gjw;Et8(rlWTI6 zW7j)9y_g}ZUcc0efLH(39wM+$%yDDdCrg4vX_)hYg+TSsR)h#lO>goNsCad;f`IMn z^(QNV1GiL#2vmvgEi(#NmOHQOa-%MMT+U*UQ-+!0GPyxaP2y9gEV59B4PtzN?H4op zx$nCVL&)NqD0l9C-~xq&OJ#SzLE8Mr@Nbzccj+hQasZ!Ki5>@+lTEnv$Fsv?syJ&9 zy)Cv~E-@(*mM7mKd;`WO!%AoL*6(mr*MnBPF&-Q=lR}h6S=@EP zkIrtD%2p{oK*kh!V_Ld=;mnxSlYX^TzeKql-rPMt+l!ar#d7&k>9^fNMA<6W3RJ%} z#)=eH^2+OQ1mVqMOoPd8GH<^5Q8y?gWAqC)%PD*HmIFGgLH4a0gtwB-UF8a3DmMNf zp9c}}onpQ-+kN@*5V1DOZnE*E?D^et5@v=2XRGw;Ny~v3%X#h%axP(m^a#1d%oHAw zlQ+GuKWw3E8J+Yp>7m~`=&b;zgf%(zEoKSXX{npO zLi$`-A>A3I^3$^I=`O8*#EP-=+_a80HMO8P1D3mIrKj3Axg56CRPB5Ztm!@nQiky; zj*BzZX?KCZfQTi>7p71D#X=usoG%LPO-!44j=%l z_p~8ue_Ae_3#;xmeStSEkku|SuZc@-svwR^YVTIziATfgQh1Ir@#-jbBs@hzvUahGH%r{HI(Hmw z5vF!f&rNYOfav`%3G z9y*imxSe(ftn%yvvgsncL)X=~PuTQ4XOZ23+qfwk@?mq2B3Lu3Xl}a`7h*eM0l$(4 zm{#z^lKun*!$GLFLc3y1PlqS~u&h5Ktt&r2*9p6@&a~yGyK`-@X~R@yrPGdqBR1qa zlp@uhN4e$M?HQQbrr$u=CDR~ugR;@)QWN6hAZ0}UkO}bM0?WirP9=e?yaGribD=A2 zbiz3&Y;TL>4JK0qt?A@ zb$gJ=(|SOibq1jD7$j%TW$$jFzvj>wJyW!^^g7SF|@9ZUj1r2&)mNoeMQI#5RC1BluOP zre0&`qR1m7 z;oe3;n?&~pO;Xp@^Wlwwev4`abQh|Z77CYOeAmriY{UnfsEkq)wFI>@Sp!C}8|~sK zaZ1Lvh*L7I^*AMo9&LP^M#F>%qhVr-HYr~1OmRvkCqoR9R!xRWs1=3_Ol>Pp$)yyS zq$9j1P(!+ewuJmYEkZ!JOEl$bm zr2bLjl&ncQ(9!~1n{=C7h0;dhoooRR_X40*{~K0QMVE3ts8W^;HZP5WOp4*%o!->#Vb7qkEVi}qilG$O~1 zb*V~0K6E@{2B10g+`nr8t{Cgyw01+<@_A{K(`oU?Xm(X#&~127jXfED=) zS$Dx76;^D3WcL)6Ql8nB#P#FG{tzP(#9}t0Bg<8+g_(b+%0|2hqS^f) zwGjvZa2xU05jNr)v=UES8!-<2iD)5$tr)Wrp=N8>?muq-?FajBg#+9_;HJYm5q)k7 zbPdvS?Hd*727z-$CMMiRM49SHxAaI;P*rn#@4RxE_ubT|W+YULK|)uU0xZd$0o5eNZGReR$ygYj*Js-6FA4 zlm&Mgeya(dIIGo)VejIGZo%8hwZrwnF^58S_{oCmy~Tq#^K%RBx=%_xGG!A79yjq2 z3HCx;t{YxWJmx(D7*c;rZf z*v6%WROH2{BqSy#P8mOL(zpqU<0nrZH^p=tExBPgMDCZk|B5$|96UymYQ1#-qwe$T zouc&#^ZA|Kn$NGV$>-NE!d37?e17MEx8Pil)<44Mcb-Q(-|+ce5XI-WV(sQk*TPGd ztXY~{n7DS;>Qy;wCvToJafUX)v z&b^CUIQPc3?%W&a(GuHq?v0Od?oCM1CQ9etq-1S!>(0F?mSTG%N`5 zWghMF2ThLTyt)R05ToICWwMq+Z-w~l z+i>osrf61=W{cw7O9ST~s0M@|28{q0pSeiwZWT&;LnJxVtwQmtk>o753MHByNzT!o zdsL>m@#=-J?LnNnL|vp_0MD>7S<9nmXyM$;kLKJf_+NGIk%iax&wt$hYlzu@WO2sq zKf~0cmXvJ5Q)d5xXC-F-Y0$W|Y5q;znC@7RRhXQal)h%>g0brOHS>#Cr5CT*_&;m@ zjT{Mz)4KVG?3non8?M+3?c}!$v+Pcl`8N~{z&6dlx>m+^fBNQMpQz^FkqP8M-#1mho-HfERa{_~ zYaOF(^6K}U)5>~of1Q6s3EgN{xulWKI^yQ8cr*P>S1`70h5bs5-Cd15)U)u3yEO}? z_+z`e20<+#M2d{365G`k-bQR!S9l3V{I=MxuJATuySl%_!~0gTU0vaA#CCOsmtchTl{+59c6CKxWo%bhXhCATy249{?dl3IA-1b4 z)CsX&UEw9fc6Ei%A-1b4XoB3ct9h50*siYdT4KAp!UwW_Ksy@qWwBjdK_z0ly249{ z?dl5OMQm4B(1h5ot~ecr#ddXtmk`_46+VdAuCDMBV!OJ+=MdY~6*M8Xt1G;O*siYd z5@Nf$!b^zl>IxO3+=D!}t1FI9$Xx?@Y*$x!8?jwo;RA{7>I#|=+tn3bLTp!8_#9%p zy249{?dl3I;is{yD=vr2uy67wwS$Fgw4E!g9&27C=Jxdt+p1M;;|hz=eCLFb!*_7? z@AE^1U)Y1-f@HuFy+@2NI)zQ|he)SArC)#y2V%=H~ zvGbO`wW>dDv^u6*9YWEc4caicrQT`>o$fnBU!#|bOY{6{ z_gL^;aQywB{e$(N2XTW;_={No*;VfU3X3V@k=N0YpKJH~I_q28`F&l)UYvg4VBEmf zWpn1xhMf6IrajN@!0jJs>(lwL;cJfH4Oyt2eH~$^9EV@+>a#4(wcB7H2eGYanjN-@ zof@Z@{)VqmZFxCP+T*o2-|bLTdv3vKWl>g+eb8{f+wSWm)~I$5-=xp)i`!`1BsLoM zCvEbb5w?q`e=hq(e_UTDSAIciK^UQZ9)3F=oj~_5_ML@$RM_*`_44)WM@LtxKo^L>CSo!^F<_(A8o8T)Pe;jUqY zGVYI?3j25D!kxw8-okVO_xbPD=v~#$ZPe#(bsA^^Y~qmTvgf&AN61{4-2rb6H|9kJ zfe#Bx#ZIWJ&b4Rwt9)H$P*r@juvsQ3MmMKDcSEXbb8JLubzYS^-{5t2+BZSKhn9@4 zg<0_3f*!YELCky$HVGH2iRw6Ye6>0Qn;$5A+VeZZzrZv14ZGUI7x8r&O<_-6BaP_x zeqZmF+g`#e7R{G$fVt?6bo!Q;eqYb#uOXtDBZceLyvMEaad+`WHhxNE<2RfNK!4IS z)uyKFznU(s|%lu8PfMt8xKMgYXGhqpB+^3|(JEhvjyP?kkf+-{qA{XHNi{z?d1 zyH;JL-&#Zqto)cQFx3BVMz8-{sasE?Sr~-Pg3W=u0Hx*YyZpH9xw%Saetw3M4V%L| z^;V&)Y!%{s{ihQ{?3_Ihr1O;mYACR}Ke>v$v%aY_d`hxP4{sM1wQK()RPjCGyDoq| z&h4rCmg1oO9i6ayFn$F;o!bABu@ee&r=%~;pFVS@GikxNblbvlNi);tr#r`Hy3Mu! z;Fh)ja8Tu+LhX5 z>InVTBASsQQJWE{{~sKt+qIB&wD>O(#diAD|2t35`acDVW4PI3iqZi{O;_D{IeuRs zv#C6jsI7#^!M=ccUbvCpZ1cg+J{^E3Z9ITcZMs$s<&*jneiW;CYL$9v)XL1nFjr>b zEc~L{_Tb=`HbzZQN48N}s~73fiB#-5t0Tj@UfB5NEt-_HdCD3!XHiai{@S$sN#j=L zO<9z){0hH13c6fFS~j}W1Mie!&xPPdz&}IplFg!XSn=^`y)Us#{cjS1T*L8qSSdf1jdRnOR_j#+RtT3etd`1(flC7`2= zdaYi(n69Je)%@b=M*qLw@sjZJS+1@OKaKNs0HeaMu34;hU97GPzlAvcQPlN|)l~Ra ztU9la*YNLm@3vN{o~Vj!Vwe>d zD`Y>P>Oy#^N_{wLA($BELI`J_-i6QwJfs_-r*f)G;V)I{`%z25#4wjaIP3H-g$~e% zJjErD-MxLgc2(Iu;5S-1L}QyuBZ|Q3T_#-=n+sg3r@E2I9!upiuC;QB!Zw#nOM%n7 zTsq?Zho|~uSwV%evb92q!ZsI5OM%n7P&z9GHV2Ghom!hVdlMB)acjjAg>5dDmI9}D zv2*}eJzkpXzc6Qn@_PTDe4Fo6Du8!0BBs9l#rZ zs>|eUDwB6wE0ZW}bD6XhIK9iHvp#xqs*9y7Y&uw#-3@-Dn#NJs=3;3naJm-@m|%`m zZiJ1dVj0s~u|#2;i>0N&>0T^F`R?3P-eFlv#j>omVu`{w7fVZl)4NzYC~2qsQ*lw5 zxLYfeC~R|?v=lhq%OvlVJ6sM>nKZUmCQ;btGHEGrdY8%1l)BAb6t=lUS_+)r zCDKVr!@0hv*!2}pr81(mQi;Mgmr6^4)4NpK!<4#HI>4U2kV<4xYb6qeZ7z|P0;hF} mEN)pG`ZSC6YM&oC+2O~ZaR8Hm! Date: Fri, 8 Mar 2024 16:58:07 +0800 Subject: [PATCH 008/204] [Internal] Remove variant_id in all executor related logic. (#2274) # Description Remove variant_id concept in all executor related logic since it is used only for legacy logic. This pull request primarily involves the removal of `variant_id` from various methods across multiple files in the `src/promptflow/promptflow/` directory. The `variant_id` parameter was previously used in the initialization, copying, and execution of flow runs and node runs, but it has now been removed from these processes. Removal of `variant_id` from `FlowExecutionContext`: * [`src/promptflow/promptflow/_core/flow_execution_context.py`](diffhunk://#diff-8a45b6238b72974b62aa211aec63ef4cbeadfa8277f84525442c245a16ee4461L44-L52): Removed `variant_id` from the `__init__` method, `copy` method, `_prepare_node_run` method, and `bypass_node` method. [[1]](diffhunk://#diff-8a45b6238b72974b62aa211aec63ef4cbeadfa8277f84525442c245a16ee4461L44-L52) [[2]](diffhunk://#diff-8a45b6238b72974b62aa211aec63ef4cbeadfa8277f84525442c245a16ee4461L62) [[3]](diffhunk://#diff-8a45b6238b72974b62aa211aec63ef4cbeadfa8277f84525442c245a16ee4461L119) [[4]](diffhunk://#diff-8a45b6238b72974b62aa211aec63ef4cbeadfa8277f84525442c245a16ee4461L214) Removal of `variant_id` from `RunTracker`: * [`src/promptflow/promptflow/_core/run_tracker.py`](diffhunk://#diff-3ea41c85102f8318e1dc8568de0fb0de76ce92172e506df95e6f419808eabaf8L84): Removed `variant_id` from the `start_flow_run` method and `bypass_node_run` method. [[1]](diffhunk://#diff-3ea41c85102f8318e1dc8568de0fb0de76ce92172e506df95e6f419808eabaf8L84) [[2]](diffhunk://#diff-3ea41c85102f8318e1dc8568de0fb0de76ce92172e506df95e6f419808eabaf8L102) [[3]](diffhunk://#diff-3ea41c85102f8318e1dc8568de0fb0de76ce92172e506df95e6f419808eabaf8L143) [[4]](diffhunk://#diff-3ea41c85102f8318e1dc8568de0fb0de76ce92172e506df95e6f419808eabaf8L159) Removal of `variant_id` from `FlowExecutor`: * [`src/promptflow/promptflow/executor/flow_executor.py`](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L657-R662): Removed `variant_id` from the `exec` method, `exec_line` method, `exec_line_async` method, `_exec` method, and `_exec_async` method. [[1]](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L657-R662) [[2]](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L674) [[3]](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L688-L689) [[4]](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L716) [[5]](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L730) [[6]](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L743-L744) [[7]](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L766) [[8]](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L887) [[9]](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L920) [[10]](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L929) [[11]](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L965) [[12]](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L1000) [[13]](diffhunk://#diff-faa6c81d614b7e41b18a42a93139d961d92afa9aa9dd0b72cb6b7176d7541e69L1009) # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Heyi --- .../promptflow/_core/flow_execution_context.py | 5 ----- src/promptflow/promptflow/_core/run_tracker.py | 4 ---- .../promptflow/contracts/run_info.py | 8 -------- .../promptflow/executor/flow_executor.py | 18 ++---------------- .../unittests/contracts/test_run_info.py | 2 -- .../storage/test_queue_run_storage.py | 2 -- .../unittests/storage/test_run_records.py | 2 -- 7 files changed, 2 insertions(+), 39 deletions(-) diff --git a/src/promptflow/promptflow/_core/flow_execution_context.py b/src/promptflow/promptflow/_core/flow_execution_context.py index 55d2e4d3755..3acf5c258a3 100644 --- a/src/promptflow/promptflow/_core/flow_execution_context.py +++ b/src/promptflow/promptflow/_core/flow_execution_context.py @@ -41,7 +41,6 @@ def __init__( run_id=None, flow_id=None, line_number=None, - variant_id=None, ): self._name = name self._run_tracker = run_tracker @@ -49,7 +48,6 @@ def __init__( self._run_id = run_id or str(uuid.uuid4()) self._flow_id = flow_id or self._run_id self._line_number = line_number - self._variant_id = variant_id def copy(self): return FlowExecutionContext( @@ -59,7 +57,6 @@ def copy(self): run_id=self._run_id, flow_id=self._flow_id, line_number=self._line_number, - variant_id=self._variant_id, ) def cancel_node_runs(self, msg): @@ -116,7 +113,6 @@ def _prepare_node_run(self, node: Node, f, kwargs={}): index=self._line_number, ) run_info.index = self._line_number - run_info.variant_id = self._variant_id self._run_tracker.set_inputs(node_run_id, {key: value for key, value in kwargs.items() if key != "self"}) return run_info @@ -211,7 +207,6 @@ def bypass_node(self, node: Node): parent_run_id=parent_run_id, run_id=node_run_id, index=self._line_number, - variant_id=self._variant_id, ) self._run_tracker.persist_node_run(run_info) diff --git a/src/promptflow/promptflow/_core/run_tracker.py b/src/promptflow/promptflow/_core/run_tracker.py index 6a6cfcac5fa..2d28a40bb47 100644 --- a/src/promptflow/promptflow/_core/run_tracker.py +++ b/src/promptflow/promptflow/_core/run_tracker.py @@ -81,7 +81,6 @@ def start_flow_run( parent_run_id="", inputs=None, index=None, - variant_id="", ) -> FlowRunInfo: """Create a flow run and save to run storage on demand.""" run_info = FlowRunInfo( @@ -99,7 +98,6 @@ def start_flow_run( start_time=datetime.utcnow(), end_time=None, index=index, - variant_id=variant_id, ) self.persist_flow_run(run_info) self._flow_runs[run_id] = run_info @@ -140,7 +138,6 @@ def bypass_node_run( parent_run_id, run_id, index, - variant_id, ): run_info = RunInfo( node=node, @@ -156,7 +153,6 @@ def bypass_node_run( end_time=datetime.utcnow(), result=None, index=index, - variant_id=variant_id, api_calls=[], ) self._node_runs[run_id] = run_info diff --git a/src/promptflow/promptflow/contracts/run_info.py b/src/promptflow/promptflow/contracts/run_info.py index d3522168f98..389b055cbb7 100644 --- a/src/promptflow/promptflow/contracts/run_info.py +++ b/src/promptflow/promptflow/contracts/run_info.py @@ -66,8 +66,6 @@ class RunInfo: :type index: Optional[int] :param api_calls: API calls made during the run :type api_calls: Optional[List[Dict[str, Any]]] - :param variant_id: Variant id of the run - :type variant_id: Optional[str] :param cached_run_id: Cached run id :type cached_run_id: Optional[str] :param cached_flow_run_id: Cached flow run id @@ -93,7 +91,6 @@ class RunInfo: end_time: datetime index: Optional[int] = None api_calls: Optional[List[Dict[str, Any]]] = None - variant_id: str = "" cached_run_id: str = None cached_flow_run_id: str = None logs: Optional[Dict[str, str]] = None @@ -117,7 +114,6 @@ def deserialize(data: dict) -> "RunInfo": end_time=parser.parse(data.get("end_time")).replace(tzinfo=None), index=data.get("index", None), api_calls=data.get("api_calls", None), - variant_id=data.get("variant_id", ""), cached_run_id=data.get("cached_run_id", None), cached_flow_run_id=data.get("cached_flow_run_id", None), logs=data.get("logs", None), @@ -161,8 +157,6 @@ class FlowRunInfo: :type index: Optional[int] :param api_calls: API calls made during the flow run :type api_calls: Optional[List[Dict[str, Any]]] - :param variant_id: Variant id of the flow run - :type variant_id: Optional[str] :param name: Name of the flow run :type name: Optional[str] :param description: Description of the flow run @@ -192,7 +186,6 @@ class FlowRunInfo: end_time: datetime index: Optional[int] = None api_calls: Optional[List[Dict[str, Any]]] = None - variant_id: str = "" name: str = "" description: str = "" tags: Optional[Mapping[str, str]] = None @@ -219,7 +212,6 @@ def deserialize(data: dict) -> "FlowRunInfo": end_time=parser.parse(data.get("end_time")).replace(tzinfo=None), index=data.get("index", None), api_calls=data.get("api_calls", None), - variant_id=data.get("variant_id", ""), name=data.get("name", ""), description=data.get("description", ""), tags=data.get("tags", None), diff --git a/src/promptflow/promptflow/executor/flow_executor.py b/src/promptflow/promptflow/executor/flow_executor.py index a8817855a34..76ae6d59d49 100644 --- a/src/promptflow/promptflow/executor/flow_executor.py +++ b/src/promptflow/promptflow/executor/flow_executor.py @@ -654,12 +654,12 @@ def exec(self, inputs: dict, node_concurrency=DEFAULT_CONCURRENCY_FLOW) -> dict: return result.output or {} def _exec_in_thread(self, args) -> LineResult: - inputs, run_id, line_number, variant_id, validate_inputs = args + inputs, run_id, line_number, validate_inputs = args thread_name = current_thread().name self._processing_idx[line_number] = thread_name self._run_tracker._activate_in_context() results = self._exec( - inputs, run_id=run_id, line_number=line_number, variant_id=variant_id, validate_inputs=validate_inputs + inputs, run_id=run_id, line_number=line_number, validate_inputs=validate_inputs ) self._run_tracker._deactivate_in_context() self._processing_idx.pop(line_number) @@ -671,7 +671,6 @@ def exec_line( inputs: Mapping[str, Any], index: Optional[int] = None, run_id: Optional[str] = None, - variant_id: str = "", validate_inputs: bool = True, node_concurrency=DEFAULT_CONCURRENCY_FLOW, allow_generator_output: bool = False, @@ -685,8 +684,6 @@ def exec_line( :type index: Optional[int] :param run_id: The ID of the flow run. :type run_id: Optional[str] - :param variant_id: The ID of the variant to execute. - :type variant_id: str :param validate_inputs: Whether to validate the input values. :type validate_inputs: bool :param node_concurrency: The maximum number of nodes that can be executed concurrently. @@ -713,7 +710,6 @@ def exec_line( inputs, run_id=run_id, line_number=index, - variant_id=variant_id, validate_inputs=validate_inputs, allow_generator_output=allow_generator_output, ) @@ -727,7 +723,6 @@ async def exec_line_async( inputs: Mapping[str, Any], index: Optional[int] = None, run_id: Optional[str] = None, - variant_id: str = "", validate_inputs: bool = True, node_concurrency=DEFAULT_CONCURRENCY_FLOW, allow_generator_output: bool = False, @@ -740,8 +735,6 @@ async def exec_line_async( :type index: Optional[int] :param run_id: The ID of the flow run. :type run_id: Optional[str] - :param variant_id: The ID of the variant to execute. - :type variant_id: str :param validate_inputs: Whether to validate the input values. :type validate_inputs: bool :param node_concurrency: The maximum number of nodes that can be executed concurrently. @@ -763,7 +756,6 @@ async def exec_line_async( inputs, run_id=run_id, line_number=index, - variant_id=variant_id, validate_inputs=validate_inputs, allow_generator_output=allow_generator_output, ) @@ -884,7 +876,6 @@ def _exec( inputs: Mapping[str, Any], run_id: Optional[str] = None, line_number: Optional[int] = None, - variant_id: str = "", validate_inputs: bool = False, allow_generator_output: bool = False, ) -> LineResult: @@ -917,7 +908,6 @@ def _exec( run_id=line_run_id, parent_run_id=run_id, index=line_number, - variant_id=variant_id, ) context = FlowExecutionContext( name=self._flow.name, @@ -926,7 +916,6 @@ def _exec( run_id=run_id, flow_id=self._flow_id, line_number=line_number, - variant_id=variant_id, ) output = {} aggregation_inputs = {} @@ -962,7 +951,6 @@ async def _exec_async( inputs: Mapping[str, Any], run_id: Optional[str] = None, line_number: Optional[int] = None, - variant_id: str = "", validate_inputs: bool = False, allow_generator_output: bool = False, ) -> LineResult: @@ -997,7 +985,6 @@ async def _exec_async( parent_run_id=run_id, inputs={k: inputs[k] for k in self._flow.inputs if k in inputs}, index=line_number, - variant_id=variant_id, ) context = FlowExecutionContext( name=self._flow.name, @@ -1006,7 +993,6 @@ async def _exec_async( run_id=run_id, flow_id=self._flow_id, line_number=line_number, - variant_id=variant_id, ) output = {} aggregation_inputs = {} diff --git a/src/promptflow/tests/executor/unittests/contracts/test_run_info.py b/src/promptflow/tests/executor/unittests/contracts/test_run_info.py index 9c5ab1dc231..c0faa6ea51d 100644 --- a/src/promptflow/tests/executor/unittests/contracts/test_run_info.py +++ b/src/promptflow/tests/executor/unittests/contracts/test_run_info.py @@ -62,7 +62,6 @@ def test_deserialize(self): "end_time": "2023-11-24T06:03:20.268858Z", "index": 0, "api_calls": None, - "variant_id": "", "cached_run_id": None, "cached_flow_run_id": None, "logs": None, @@ -120,7 +119,6 @@ def test_deserialize(self): "end_time": "2023-11-23T10:58:37.9590789Z", "index": 0, "api_calls": None, - "variant_id": "", "name": "", "description": "", "tags": None, diff --git a/src/promptflow/tests/executor/unittests/storage/test_queue_run_storage.py b/src/promptflow/tests/executor/unittests/storage/test_queue_run_storage.py index 5ca66a5e62d..17a0ef4bddc 100644 --- a/src/promptflow/tests/executor/unittests/storage/test_queue_run_storage.py +++ b/src/promptflow/tests/executor/unittests/storage/test_queue_run_storage.py @@ -25,7 +25,6 @@ def test_persist_node_run(self): end_time="end_time", index="index", api_calls="api_calls", - variant_id="variant_id", cached_run_id="cached_run_id", cached_flow_run_id="cached_flow_run_id", logs="logs", @@ -54,7 +53,6 @@ def test_persist_flow_run(self): end_time="end_time", index="index", api_calls="api_calls", - variant_id="variant_id", system_metrics="system_metrics", result="result", ) diff --git a/src/promptflow/tests/executor/unittests/storage/test_run_records.py b/src/promptflow/tests/executor/unittests/storage/test_run_records.py index cd299b9ec44..f1e2bcb6963 100644 --- a/src/promptflow/tests/executor/unittests/storage/test_run_records.py +++ b/src/promptflow/tests/executor/unittests/storage/test_run_records.py @@ -27,7 +27,6 @@ def test_line_record(): start_time=start_time, end_time=end_time, index=0, - variant_id=None, ) line_record = LineRunRecord.from_run_info(flow_run_info) assert line_record.line_number == 0 @@ -56,7 +55,6 @@ def test_line_serialize(): start_time=start_time, end_time=end_time, index=0, - variant_id=None, ) line_record = LineRunRecord.from_run_info(flow_run_info) result = line_record.serialize() From f4215a4c51ceca5c9fb8a6f2946ecc4e18cf81fc Mon Sep 17 00:00:00 2001 From: Lina Tang Date: Mon, 11 Mar 2024 11:10:40 +0800 Subject: [PATCH 009/204] [Tracing] Add trace tests to tracing_test (#2252) # Description Add tracing tests to tracing_test. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --------- Co-authored-by: Lina Tang --- .../workflows/promptflow-tracing-e2e-test.yml | 152 ++++++++++ src/promptflow/tests/tracing_test/__init__.py | 0 .../tests/tracing_test/e2etests/__init__.py | 0 .../tracing_test/e2etests/simple_functions.py | 85 ++++++ .../tests/tracing_test/e2etests/test_trace.py | 277 ++++++++++++++++++ src/promptflow/tests/tracing_test/utils.py | 41 +++ 6 files changed, 555 insertions(+) create mode 100644 .github/workflows/promptflow-tracing-e2e-test.yml create mode 100644 src/promptflow/tests/tracing_test/__init__.py create mode 100644 src/promptflow/tests/tracing_test/e2etests/__init__.py create mode 100644 src/promptflow/tests/tracing_test/e2etests/simple_functions.py create mode 100644 src/promptflow/tests/tracing_test/e2etests/test_trace.py create mode 100644 src/promptflow/tests/tracing_test/utils.py diff --git a/.github/workflows/promptflow-tracing-e2e-test.yml b/.github/workflows/promptflow-tracing-e2e-test.yml new file mode 100644 index 00000000000..6c732273984 --- /dev/null +++ b/.github/workflows/promptflow-tracing-e2e-test.yml @@ -0,0 +1,152 @@ +name: promptflow-tracing-e2e-test + +on: + schedule: + - cron: "40 17 * * *" # Every day starting at 1:40 BJT + + pull_request: + paths: + - src/promptflow/** + - scripts/building/** + - .github/workflows/promptflow-tracing-e2e-test.yml + + workflow_dispatch: + + +env: + packageSetupType: promptflow_with_extra + testWorkingDirectory: ${{ github.workspace }}/src/promptflow + PYTHONPATH: ${{ github.workspace }}/src/promptflow + IS_IN_CI_PIPELINE: "true" + + +jobs: + build: + strategy: + fail-fast: false + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v4 + - name: Display and Set Environment Variables + run: | + env | sort >> $GITHUB_OUTPUT + id: display_env + shell: bash -el {0} + - name: Python Setup - ubuntu-latest - Python Version 3.9 + uses: "./.github/actions/step_create_python_environment" + with: + pythonVersion: 3.9 + - name: Build wheel + uses: "./.github/actions/step_sdk_setup" + with: + setupType: promptflow_with_extra + scriptPath: ${{ env.testWorkingDirectory }} + - name: Upload Wheel + if: always() + uses: actions/upload-artifact@v3 + with: + name: wheel + path: | + ${{ github.workspace }}/src/promptflow/dist/*.whl + ${{ github.workspace }}/src/promptflow-tools/dist/*.whl + + tracing_tests: + needs: build + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + pythonVersion: ['3.8', '3.9', '3.10', '3.11'] + runs-on: ${{ matrix.os }} + steps: + - name: checkout + uses: actions/checkout@v4 + + - name: Display and Set Environment Variables + run: | + env | sort >> $GITHUB_OUTPUT + id: display_env + shell: bash -el {0} + + - name: Python Setup - ${{ matrix.os }} - Python Version ${{ matrix.pythonVersion }} + uses: "./.github/actions/step_create_python_environment" + with: + pythonVersion: ${{ matrix.pythonVersion }} + + - name: Download Artifacts + uses: actions/download-artifact@v3 + with: + name: wheel + path: artifacts + + - name: Install wheel + shell: pwsh + working-directory: artifacts + run: | + Set-PSDebug -Trace 1 + pip install -r ${{ github.workspace }}/src/promptflow/dev_requirements.txt + gci ./promptflow -Recurse | % {if ($_.Name.Contains('.whl')) {python -m pip install "$($_.FullName)"}} + gci ./promptflow-tools -Recurse | % {if ($_.Name.Contains('.whl')) {python -m pip install $_.FullName}} + pip freeze + + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + + - name: Generate Configs + uses: "./.github/actions/step_generate_configs" + with: + targetFolder: ${{ env.testWorkingDirectory }} + + - name: Get number of CPU cores + uses: SimenB/github-actions-cpu-cores@v1 + id: cpu-cores + + - name: run promptflow-tracing test + shell: pwsh + working-directory: ${{ env.testWorkingDirectory }} + run: | + python "../../scripts/building/run_coverage_tests.py" ` + -p promptflow ` + -t ${{ github.workspace }}/src/promptflow/tests/tracing_test/e2etests ` + -l eastus ` + -m "e2etest" ` + -n ${{ steps.cpu-cores.outputs.count }} ` + --coverage-config ${{ github.workspace }}/src/promptflow/tests/tracing_test/.coveragerc ` + -o "${{ env.testWorkingDirectory }}/test-results-tracing.xml" + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: Test Results (Python ${{ matrix.pythonVersion }}) (OS ${{ matrix.os }}) + path: | + ${{ env.testWorkingDirectory }}/*.xml + ${{ env.testWorkingDirectory }}/htmlcov/ + + + publish-test-results-tracing-test: + needs: tracing_tests + if: always() + + runs-on: ubuntu-latest + permissions: + checks: write + pull-requests: write + contents: read + issues: read + + steps: + - name: checkout + uses: actions/checkout@v4 + - name: Publish Test Results + uses: "./.github/actions/step_publish_test_results" + with: + testActionFileName: promptflow-tracing-e2e-test.yml + testResultTitle: promptflow-tracing e2e test result + osVersion: ubuntu-latest + pythonVersion: 3.9 + coverageThreshold: 40 + context: test/tracing \ No newline at end of file diff --git a/src/promptflow/tests/tracing_test/__init__.py b/src/promptflow/tests/tracing_test/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/promptflow/tests/tracing_test/e2etests/__init__.py b/src/promptflow/tests/tracing_test/e2etests/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/promptflow/tests/tracing_test/e2etests/simple_functions.py b/src/promptflow/tests/tracing_test/e2etests/simple_functions.py new file mode 100644 index 00000000000..9e0732637ee --- /dev/null +++ b/src/promptflow/tests/tracing_test/e2etests/simple_functions.py @@ -0,0 +1,85 @@ +import asyncio +from time import sleep +from typing import Union + +from openai import AsyncAzureOpenAI, AzureOpenAI + +from promptflow.contracts.types import PromptTemplate +from promptflow.tracing import trace + + +@trace +def is_valid_name(name): + sleep(0.5) + return len(name) > 0 + + +@trace +def get_user_name(user_id): + sleep(0.5) + user_name = f"User {user_id}" + if not is_valid_name(user_name): + raise ValueError(f"Invalid user name: {user_name}") + + return user_name + + +@trace +def format_greeting(user_name): + sleep(0.5) + return f"Hello, {user_name}!" + + +@trace +def greetings(user_id): + user_name = get_user_name(user_id) + greeting = format_greeting(user_name) + return greeting + + +@trace +async def dummy_llm(prompt: str, model: str): + asyncio.sleep(0.5) + return "dummy_output" + + +@trace +async def dummy_llm_tasks_async(prompt: str, models: list): + tasks = [] + for model in models: + tasks.append(asyncio.create_task(dummy_llm(prompt, model))) + done, _ = await asyncio.wait(tasks, return_when=asyncio.ALL_COMPLETED) + return [task.result() for task in done] + + +@trace +def render_prompt_template(prompt: PromptTemplate, **kwargs): + for k, v in kwargs.items(): + prompt = prompt.replace(f"{{{{{k}}}}}", str(v)) + return prompt + + +@trace +def openai_chat(connection: dict, prompt: str, stream: bool = False): + client = AzureOpenAI(**connection) + + messages = [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": prompt} + ] + response = client.chat.completions.create(model="gpt-35-turbo", messages=messages, stream=stream) + return response.choices[0].message.content or "" + + +@trace +def openai_completion(connection: dict, prompt: str): + client = AzureOpenAI(**connection) + response = client.completions.create(model="text-ada-001", prompt=prompt) + return response.choices[0].text or "" + + +@trace +async def openai_embedding_async(connection: dict, input: Union[str, list]): + client = AsyncAzureOpenAI(**connection) + resp = await client.embeddings.create(model="text-embedding-ada-002", input=input) + return resp.data[0].embedding diff --git a/src/promptflow/tests/tracing_test/e2etests/test_trace.py b/src/promptflow/tests/tracing_test/e2etests/test_trace.py new file mode 100644 index 00000000000..0c9fdbcf95f --- /dev/null +++ b/src/promptflow/tests/tracing_test/e2etests/test_trace.py @@ -0,0 +1,277 @@ +import asyncio +import json + +import pytest +from opentelemetry.trace.status import StatusCode + +from promptflow.tracing._openai_injector import inject_openai_api +from promptflow.tracing.contracts.trace import TraceType + +from ..utils import execute_function_in_subprocess, prepare_memory_exporter +from .simple_functions import ( + dummy_llm_tasks_async, + greetings, + openai_chat, + openai_completion, + openai_embedding_async, + render_prompt_template, +) + +LLM_FUNCTION_NAMES = [ + "openai.resources.chat.completions.Completions.create", + "openai.resources.completions.Completions.create", + "openai.resources.chat.completions.AsyncCompletions.create", + "openai.resources.completions.AsyncCompletions.create", +] + +EMBEDDING_FUNCTION_NAMES = [ + "openai.resources.embeddings.Embeddings.create", + "openai.resources.embeddings.AsyncEmbeddings.create", +] + +LLM_TOKEN_NAMES = [ + "llm.token_count.prompt", + "llm.token_count.completion", + "llm.token_count.total", +] + +EMBEDDING_TOKEN_NAMES = [ + "embedding.token_count.prompt", + "embedding.token_count.total", +] + +CUMULATIVE_LLM_TOKEN_NAMES = [ + "__computed__.cumulative_token_count.prompt", + "__computed__.cumulative_token_count.completion", + "__computed__.cumulative_token_count.total", +] + +CUMULATIVE_EMBEDDING_TOKEN_NAMES = [ + "__computed__.cumulative_token_count.prompt", + "__computed__.cumulative_token_count.total", +] + + +@pytest.mark.usefixtures("dev_connections") +@pytest.mark.e2etest +class TestTracing: + @pytest.mark.parametrize( + "func, inputs, expected_span_length", + [ + (greetings, {"user_id": 1}, 4), + (dummy_llm_tasks_async, {"prompt": "Hello", "models": ["model_1", "model_1"]}, 3), + ], + ) + def test_otel_trace(self, func, inputs, expected_span_length): + execute_function_in_subprocess(self.assert_otel_trace, func, inputs, expected_span_length) + + def assert_otel_trace(self, func, inputs, expected_span_length): + exporter = prepare_memory_exporter() + + result = self.run_func(func, inputs) + assert isinstance(result, (str, list)) + span_list = exporter.get_finished_spans() + self.validate_span_list(span_list, expected_span_length) + + @pytest.mark.parametrize( + "func, inputs", + [ + (render_prompt_template, {"prompt": "Hello {{name}}!", "name": "world"}), + ] + ) + def test_otel_trace_with_prompt(self, func, inputs): + execute_function_in_subprocess(self.assert_otel_traces_with_prompt, func, inputs) + + def assert_otel_traces_with_prompt(self, func, inputs): + memory_exporter = prepare_memory_exporter() + + result = self.run_func(func, inputs) + assert result == "Hello world!" + + span_list = memory_exporter.get_finished_spans() + for span in span_list: + assert span.status.status_code == StatusCode.OK + assert isinstance(span.name, str) + if span.attributes.get("function", "") == "render_prompt_template": + assert "prompt.template" in span.attributes + assert span.attributes["prompt.template"] == inputs["prompt"] + assert "prompt.variables" in span.attributes + for var in inputs: + if var == "prompt": + continue + assert var in span.attributes["prompt.variables"] + + @pytest.mark.parametrize( + "func, inputs, expected_span_length", + [ + (openai_chat, {"prompt": "Hello"}, 2), + (openai_completion, {"prompt": "Hello"}, 2), + ], + ) + def test_otel_trace_with_llm(self, dev_connections, func, inputs, expected_span_length): + execute_function_in_subprocess( + self.assert_otel_trace_with_llm, dev_connections, func, inputs, expected_span_length + ) + + def assert_otel_trace_with_llm(self, dev_connections, func, inputs, expected_span_length): + inject_openai_api() + exporter = prepare_memory_exporter() + + inputs = self.add_azure_connection_to_inputs(inputs, dev_connections) + result = self.run_func(func, inputs) + assert isinstance(result, str) + span_list = exporter.get_finished_spans() + self.validate_span_list(span_list, expected_span_length) + self.validate_openai_tokens(span_list) + + @pytest.mark.parametrize( + "func, inputs, expected_span_length", + [ + (openai_embedding_async, {"input": "Hello"}, 2), + # [9906] is the tokenized version of "Hello" + (openai_embedding_async, {"input": [9906]}, 2), + ] + ) + def test_otel_trace_with_embedding( + self, + dev_connections, + func, + inputs, + expected_span_length, + ): + execute_function_in_subprocess( + self.assert_otel_traces_with_embedding, dev_connections, func, inputs, expected_span_length + ) + + def assert_otel_traces_with_embedding(self, dev_connections, func, inputs, expected_span_length): + inject_openai_api() + memory_exporter = prepare_memory_exporter() + + inputs = self.add_azure_connection_to_inputs(inputs, dev_connections) + result = self.run_func(func, inputs) + assert isinstance(result, list) + + span_list = memory_exporter.get_finished_spans() + self.validate_span_list(span_list, expected_span_length) + self.validate_openai_tokens(span_list) + for span in span_list: + if span.attributes.get("function", "") in EMBEDDING_FUNCTION_NAMES: + assert span.attributes.get("embedding.model", "") == "ada" + embeddings = span.attributes.get("embedding.embeddings", "") + assert "embedding.vector" in embeddings + assert "embedding.text" in embeddings + if isinstance(inputs["input"], list): + # If the input is a token array, which is list of int, the attribute should contains + # the length of the token array ''. + assert "dimensional token" in embeddings + else: + # If the input is a string, the attribute should contains the original input string. + assert inputs["input"] in embeddings + + def test_otel_trace_with_multiple_functions(self): + execute_function_in_subprocess(self.assert_otel_traces_with_multiple_functions) + + def assert_otel_traces_with_multiple_functions(self): + memory_exporter = prepare_memory_exporter() + + result = self.run_func(greetings, {"user_id": 1}) + assert isinstance(result, str) + result = self.run_func(dummy_llm_tasks_async, {"prompt": "Hello", "models": ["model_1", "model_1"]}) + assert isinstance(result, list) + + span_list = memory_exporter.get_finished_spans() + assert len(span_list) == 7, f"Got {len(span_list)} spans." # 4 + 3 spans in total + root_spans = [span for span in span_list if span.parent is None] + assert len(root_spans) == 2, f"Expected 2 root spans, got {len(root_spans)}" + assert root_spans[0].attributes["function"] == "greetings" + assert root_spans[1].attributes["function"] == "dummy_llm_tasks_async" + assert root_spans[1] == span_list[-1] # It should be the last span + sub_level_span = span_list[-2] # It should be the second last span + expected_values = { + "framework": "promptflow", + "span_type": "Function", + } + for span in span_list: + for k, v in expected_values.items(): + assert span.attributes[k] == v, f"span.attributes[{k}] = {span.attributes[k]}, expected: {v}" + assert ( + sub_level_span.parent.span_id == root_spans[1].context.span_id + ) # sub_level_span is a child of the second root span + + def run_func(self, func, inputs): + if asyncio.iscoroutinefunction(func): + return asyncio.run(func(**inputs)) + else: + return func(**inputs) + + def add_azure_connection_to_inputs(self, inputs, dev_connections): + conn_name = "azure_open_ai_connection" + if conn_name not in dev_connections: + raise ValueError(f"Connection '{conn_name}' not found in dev connections.") + conn_dict = { + "api_key": dev_connections[conn_name]["value"]["api_key"], + "azure_endpoint": dev_connections[conn_name]["value"]["api_base"], + "api_version": dev_connections[conn_name]["value"]["api_version"], + } + inputs["connection"] = conn_dict + return inputs + + def validate_span_list(self, span_list, expected_span_length): + assert len(span_list) == expected_span_length, f"Got {len(span_list)} spans." + root_spans = [span for span in span_list if span.parent is None] + assert len(root_spans) == 1 + root_span = root_spans[0] + for span in span_list: + assert span.status.status_code == StatusCode.OK + assert isinstance(span.name, str) + assert span.attributes["framework"] == "promptflow" + if span.attributes.get("function", "") in LLM_FUNCTION_NAMES: + expected_span_type = TraceType.LLM + elif span.attributes.get("function", "") in EMBEDDING_FUNCTION_NAMES: + expected_span_type = TraceType.EMBEDDING + else: + expected_span_type = TraceType.FUNCTION + msg = f"span_type: {span.attributes['span_type']}, expected: {expected_span_type}" + assert span.attributes["span_type"] == expected_span_type, msg + if span != root_span: # Non-root spans should have a parent + assert span.attributes["function"] + inputs = json.loads(span.attributes["inputs"]) + output = json.loads(span.attributes["output"]) + assert isinstance(inputs, dict) + assert output is not None + + def validate_openai_tokens(self, span_list): + span_dict = {span.context.span_id: span for span in span_list} + expected_tokens = {} + for span in span_list: + tokens = None + # Validate the openai tokens are correctly set in the llm trace. + if span.attributes.get("function", "") in LLM_FUNCTION_NAMES: + for token_name in LLM_TOKEN_NAMES + CUMULATIVE_LLM_TOKEN_NAMES: + assert token_name in span.attributes + tokens = {token_name: span.attributes[token_name] for token_name in CUMULATIVE_LLM_TOKEN_NAMES} + # Validate the openai tokens are correctly set in the embedding trace. + if span.attributes.get("function", "") in EMBEDDING_FUNCTION_NAMES: + for token_name in EMBEDDING_TOKEN_NAMES + CUMULATIVE_EMBEDDING_TOKEN_NAMES: + assert token_name in span.attributes + tokens = {token_name: span.attributes[token_name] for token_name in CUMULATIVE_EMBEDDING_TOKEN_NAMES} + # Aggregate the tokens to the parent span. + if tokens is not None: + current_span_id = span.context.span_id + while True: + if current_span_id in expected_tokens: + expected_tokens[current_span_id] = { + key: expected_tokens[current_span_id][key] + tokens[key] for key in tokens + } + else: + expected_tokens[current_span_id] = tokens + parent_cxt = getattr(span_dict[current_span_id], "parent", None) + if parent_cxt is None: + break + current_span_id = parent_cxt.span_id + # Validate the aggregated tokens are correctly set in the parent span. + for span in span_list: + span_id = span.context.span_id + if span_id in expected_tokens: + for token_name in expected_tokens[span_id]: + assert span.attributes[token_name] == expected_tokens[span_id][token_name] diff --git a/src/promptflow/tests/tracing_test/utils.py b/src/promptflow/tests/tracing_test/utils.py new file mode 100644 index 00000000000..7654bd1bb67 --- /dev/null +++ b/src/promptflow/tests/tracing_test/utils.py @@ -0,0 +1,41 @@ +import traceback + +from multiprocessing import Queue, get_context + +from opentelemetry.sdk.trace import TracerProvider +from opentelemetry.sdk.trace.export import SimpleSpanProcessor +from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter +from opentelemetry.trace import set_tracer_provider + + +def execute_function_in_subprocess(func, *args, **kwargs): + """ + Execute a function in a new process and return any exception that occurs. + Replace pickle with dill for better serialization capabilities. + """ + ctx = get_context("spawn") + error_queue = ctx.Queue() + process = ctx.Process(target=_run_in_subprocess, args=(error_queue, func, args, kwargs)) + process.start() + process.join() # Wait for the process to finish + + if not error_queue.empty(): + err, stacktrace_str = error_queue.get() + raise Exception(f"An error occurred in the subprocess: {err}\nStacktrace:\n{stacktrace_str}") + assert process.exitcode == 0, f"Subprocess exited with code {process.exitcode}" + + +def _run_in_subprocess(error_queue: Queue, func, args, kwargs): + try: + func(*args, **kwargs) + except BaseException as e: + error_queue.put((repr(e), traceback.format_exc())) + + +def prepare_memory_exporter(): + provider = TracerProvider() + exporter = InMemorySpanExporter() + processor = SimpleSpanProcessor(exporter) + provider.add_span_processor(processor) + set_tracer_provider(provider) + return exporter From 89f4d6659a692c0006726cbdd1a93b266d5b7742 Mon Sep 17 00:00:00 2001 From: chenyang Date: Mon, 11 Mar 2024 11:59:15 +0800 Subject: [PATCH 010/204] fix telemetry test (#2244) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --- .../e2etests/test_telemetry.py | 86 +++++++++++++------ 1 file changed, 60 insertions(+), 26 deletions(-) diff --git a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py index 82a0cf79aba..5296fc3c9f3 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py +++ b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py @@ -3,6 +3,7 @@ # --------------------------------------------------------- import contextlib import os +import platform import shutil import sys import tempfile @@ -99,19 +100,32 @@ def test_call_from_extension(self): context.user_agent = context.user_agent.replace("prompt-flow-extension/1.0.0", "") def test_custom_event(self, pf): - from promptflow._sdk._telemetry.logging_handler import PromptFlowSDKLogHandler - - def log_event(*args, **kwargs): - record = args[0] - assert record.custom_dimensions is not None + from promptflow._sdk._configuration import Configuration + from promptflow._sdk._telemetry.logging_handler import PromptFlowSDKExporter + + envelope = None + config = Configuration.get_instance() + custom_dimensions = { + "python_version": platform.python_version(), + "installation_id": config.get_or_set_installation_id(), + } + log_to_envelope = PromptFlowSDKExporter( + connection_string="InstrumentationKey=00000000-0000-0000-0000-000000000000", + custom_dimensions=custom_dimensions, + )._log_to_envelope + + def log_event(log_data): + nonlocal envelope + envelope = log_to_envelope(log_data) + + def check_evelope(): logger = get_telemetry_logger() handler = logger.handlers[0] assert isinstance(handler, PromptFlowSDKLogHandler) - envelope = handler.log_record_to_envelope(record) - custom_dimensions = pydash.get(envelope, "data.baseData.properties") + custom_dimensions = pydash.get(envelope, "data.base_data.properties") assert isinstance(custom_dimensions, dict) # Note: need privacy review if we add new fields. - if "start" in record.message: + if "start" in envelope.data.base_data.name: assert custom_dimensions.keys() == { "request_id", "activity_name", @@ -125,8 +139,13 @@ def log_event(*args, **kwargs): "installation_id", "first_call", "from_ci", + "error_category", + "error_type", + "error_target", + "error_message", + "error_detail", } - elif "complete" in record.message: + elif "complete" in envelope.data.base_data.name: assert custom_dimensions.keys() == { "request_id", "activity_name", @@ -142,18 +161,27 @@ def log_event(*args, **kwargs): "installation_id", "first_call", "from_ci", + "error_category", + "error_type", + "error_target", + "error_message", + "error_detail", } else: - raise ValueError("Invalid message: {}".format(record.message)) - assert record.message.startswith("pfazure.runs.get") + raise ValueError("Invalid message: {}".format(envelope.data.base_data.name)) + assert envelope.data.base_data.name.startswith("pfazure.runs.get") - with patch.object(PromptFlowSDKLogHandler, "emit") as mock_logger: + with patch.object(PromptFlowSDKExporter, "_log_to_envelope") as mock_logger, patch( + "promptflow._sdk._telemetry.telemetry.get_telemetry_logger", side_effect=get_telemetry_logger + ): mock_logger.side_effect = log_event - # mock_error_logger.side_effect = log_event try: pf.runs.get("not_exist") except RunNotFoundError: pass + logger = get_telemetry_logger() + logger.handlers[0].flush() + check_evelope() def test_default_logging_behavior(self): assert is_telemetry_enabled() is True @@ -312,32 +340,38 @@ def check_inner_call(*args, **kwargs): assert first_sdk_calls[-1] is True def test_scrub_fields(self): - from promptflow import PFClient + from promptflow._sdk._telemetry.logging_handler import PromptFlowSDKExporter - pf = PFClient() + envelope = None + log_to_envelope = PromptFlowSDKExporter( + connection_string="InstrumentationKey=00000000-0000-0000-0000-000000000000", custom_dimensions={} + )._log_to_envelope - from promptflow._sdk._telemetry.logging_handler import PromptFlowSDKLogHandler + def log_event(log_data): + nonlocal envelope + envelope = log_to_envelope(log_data) - def log_event(*args, **kwargs): - record = args[0] - assert record.custom_dimensions is not None + def check_evelope(): logger = get_telemetry_logger() handler = logger.handlers[0] assert isinstance(handler, PromptFlowSDKLogHandler) - envelope = handler.log_record_to_envelope(record) + + assert "message" == envelope.data.base_data.name + assert "key" in envelope.data.base_data.properties + assert "test" == envelope.data.base_data.properties["key"] + # device name removed assert "ai.cloud.roleInstance" not in envelope.tags assert "ai.device.id" not in envelope.tags # role name should be scrubbed or kept in whitelist assert envelope.tags["ai.cloud.role"] in [os.path.basename(sys.argv[0]), "***"] - with patch.object(PromptFlowSDKLogHandler, "emit") as mock_logger: + with patch.object(PromptFlowSDKExporter, "_log_to_envelope") as mock_logger: mock_logger.side_effect = log_event - # mock_error_logger.side_effect = log_event - try: - pf.runs.get("not_exist") - except RunNotFoundError: - pass + logger = get_telemetry_logger() + logger.info("message", extra={"custom_dimensions": {"key": "test"}}) + logger.handlers[0].flush() + check_evelope() def test_different_event_for_node_run(self): from promptflow import PFClient From e2315d665ad898768d79ea22aefea04d68190b07 Mon Sep 17 00:00:00 2001 From: chjinche <49483542+chjinche@users.noreply.github.com> Date: Mon, 11 Mar 2024 14:37:53 +0800 Subject: [PATCH 011/204] update tool package changelog to latest version (#2251) # Description update tool package changelog to latest version # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [x] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- src/promptflow-tools/CHANGELOG.md | 44 +++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/src/promptflow-tools/CHANGELOG.md b/src/promptflow-tools/CHANGELOG.md index 9a003501905..01c353563cc 100644 --- a/src/promptflow-tools/CHANGELOG.md +++ b/src/promptflow-tools/CHANGELOG.md @@ -1,7 +1,47 @@ # Release History +## 1.4.0 (Upcoming) + +### Features Added +- Enable token based auth in azure openai connection for tools. +- Add "seed" to LLM and GPT-Vision tool inputs. + +## 1.3.0 (2024.03.01) + +### Improvements +- Disable openai built-in retry mechanism for better debuggability and real-time status updates. +- Refine the retry-after interval for openai retry error. + +## 1.2.0 (2024.02.07) + +### Features Added +- Support tool "Azure OpenAI GPT-4 Turbo with Vision" to auto list "deployment_name". + +### Improvements +- Match the promptflow-tools setup to promptflow setup. + +## 1.1.0 (2024.01.23) + +### Features Added +- Use ruamel.yaml instead of pyyaml in promptflow. + +## 1.0.3 (2024.01.08) + +### Features Added +- Add new tool "Azure OpenAI GPT-4 Turbo with Vision". +- Support "response_format" for azure openai chat api in LLM tool. + +## 1.0.1 (2023.12.13) + +### Features Added +- Support "response_format" for openai chat api in LLM tool. +- Add "allow_manual_entry" for embedding tool. + +### Improvements +- Handle all OpenSource\HuggingFace Models with the same MIR request format in 'Open Model LLM' tool. + ## 1.0.0 (2023.11.30) ### Features Added -- Support openai 1.x in promptflow-tools -- Add new tool "OpenAI GPT-4V" +- Support openai 1.x in promptflow-tools. +- Add new tool "OpenAI GPT-4V". From 6ccd312e55958f1a2ee5ae9ee1d2d5336ce78044 Mon Sep 17 00:00:00 2001 From: melionel Date: Mon, 11 Mar 2024 14:48:44 +0800 Subject: [PATCH 012/204] [Internal] update runtime changelog for 20240228.v3 (#2250) # Description update runtime changelog for 20240228.v3 # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Meng Lan --- docs/cloud/azureai/runtime-change-log.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/cloud/azureai/runtime-change-log.md b/docs/cloud/azureai/runtime-change-log.md index 58fa4940fe3..9013a396de0 100644 --- a/docs/cloud/azureai/runtime-change-log.md +++ b/docs/cloud/azureai/runtime-change-log.md @@ -14,6 +14,16 @@ You can check the runtime image version from the flow execution log: ## Change log Default runtime image is continuously updated, and here we record the new features and fixed bugs of each image version. + +### 20240228.v3 + +#### New features +- Support async flow test for long running jobs. + +#### Bugs fixed +- Fix bug when collecting package tools. + + ### 20240222.v3 #### New features @@ -40,7 +50,7 @@ NA #### Bugs fixed - Fix the bug that exception raised during preparing data is not set in run history. -- Fix the bug that unexpected exception is raised when executor process crushes. +- Fix the bug that unexpected exception is raised when executor process crushes. ### 20240116.v1 From b9b72690bc5c6ba6c541bc13fc736745104d3c1a Mon Sep 17 00:00:00 2001 From: melionel Date: Mon, 11 Mar 2024 15:01:44 +0800 Subject: [PATCH 013/204] [Internal] improve token connection error message (#2245) # Description Improve error message when user hit authentication error when using meid_token connection local: ![image](https://github.com/microsoft/promptflow/assets/9986857/0b178c25-ca14-4831-8ba8-9395944b828b) cloud: ![image](https://github.com/microsoft/promptflow/assets/9986857/5c66378a-05ec-42ee-89f2-1e6fcb1ac001) # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Meng Lan --- src/promptflow-tools/connections.json.example | 10 ++++++++++ src/promptflow-tools/promptflow/tools/common.py | 14 +------------- src/promptflow-tools/promptflow/tools/exception.py | 5 +++++ src/promptflow-tools/tests/conftest.py | 5 +++++ .../tests/test_handle_openai_error.py | 12 ++++++++++++ 5 files changed, 33 insertions(+), 13 deletions(-) diff --git a/src/promptflow-tools/connections.json.example b/src/promptflow-tools/connections.json.example index 8c17e8dde93..eff504ea6a8 100644 --- a/src/promptflow-tools/connections.json.example +++ b/src/promptflow-tools/connections.json.example @@ -9,6 +9,16 @@ }, "module": "promptflow.connections" }, + "azure_open_ai_connection_meid": { + "type": "AzureOpenAIConnection", + "value": { + "api_base": "aoai-api-endpoint", + "api_type": "azure", + "api_version": "2023-07-01-preview", + "auth_mode": "meid_token" + }, + "module": "promptflow.connections" + }, "serp_connection": { "type": "SerpConnection", "value": { diff --git a/src/promptflow-tools/promptflow/tools/common.py b/src/promptflow-tools/promptflow/tools/common.py index 9e853fae518..528a739a7bb 100644 --- a/src/promptflow-tools/promptflow/tools/common.py +++ b/src/promptflow-tools/promptflow/tools/common.py @@ -383,19 +383,7 @@ def normalize_connection_config(connection): ensuring it is compatible and standardized for use. """ if isinstance(connection, AzureOpenAIConnection): - use_key_auth = True - try: - from promptflow._sdk._constants import ConnectionAuthMode - if connection.auth_mode == ConnectionAuthMode.MEID_TOKEN: - use_key_auth = False - except ImportError as e: - if "cannot import name 'ConnectionAuthMode' from 'promptflow._sdk._constants'" in str(e): - print("Failed to import ConnectionAuthMode, use key auth by default.") - pass - else: - raise e - - if use_key_auth: + if connection.api_key: return { # disable OpenAI's built-in retry mechanism by using our own retry # for better debuggability and real-time status updates. diff --git a/src/promptflow-tools/promptflow/tools/exception.py b/src/promptflow-tools/promptflow/tools/exception.py index 260684f9a29..9883d0d099f 100644 --- a/src/promptflow-tools/promptflow/tools/exception.py +++ b/src/promptflow-tools/promptflow/tools/exception.py @@ -53,6 +53,11 @@ def to_openai_error_message(e: Exception) -> str: "'gpt-4-1106-preview'. You can refer to " \ "https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/json-mode?tabs=python." return f"OpenAI API hits {ex_type}: {msg}" + elif "Principal does not have access to API/Operation" in error_message: + msg = "Principal does not have access to API/Operation. If you are using azure openai connection, " \ + "please make sure you have proper role assignment on your azure openai resource. You can refer to " \ + "https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/role-based-access-control" + return f"OpenAI API hits {ex_type}: {msg}" else: return f"OpenAI API hits {ex_type}: {error_message} [{openai_error_code_ref_message}]" diff --git a/src/promptflow-tools/tests/conftest.py b/src/promptflow-tools/tests/conftest.py index 5e0375c2950..e926ac1ba63 100644 --- a/src/promptflow-tools/tests/conftest.py +++ b/src/promptflow-tools/tests/conftest.py @@ -32,6 +32,11 @@ def azure_open_ai_connection(): return ConnectionManager().get("azure_open_ai_connection") +@pytest.fixture +def azure_open_ai_connection_meid(): + return ConnectionManager().get("azure_open_ai_connection_meid") + + @pytest.fixture def aoai_provider(azure_open_ai_connection) -> AzureOpenAI: aoai_provider = AzureOpenAI(azure_open_ai_connection) diff --git a/src/promptflow-tools/tests/test_handle_openai_error.py b/src/promptflow-tools/tests/test_handle_openai_error.py index 6ffb41cbd49..e902c349de1 100644 --- a/src/promptflow-tools/tests/test_handle_openai_error.py +++ b/src/promptflow-tools/tests/test_handle_openai_error.py @@ -301,3 +301,15 @@ def test_aoai_invalid_max_tokens( ) assert error_message in exc_info.value.message assert exc_info.value.error_codes == error_codes.split("/") + + @pytest.mark.skip("Skip this before we figure out how to make token provider work on github action") + def test_authentication_fail_for_aoai_meid_token_connection(self, azure_open_ai_connection_meid): + prompt_template = "please complete this sentence: world war II " + raw_message = ( + "please make sure you have proper role assignment on your azure openai resource" + ) + error_codes = "UserError/OpenAIError/AuthenticationError" + with pytest.raises(WrappedOpenAIError) as exc_info: + chat(azure_open_ai_connection_meid, prompt=f"user:\n{prompt_template}", deployment_name="gpt-35-turbo") + assert raw_message in exc_info.value.message + assert exc_info.value.error_codes == error_codes.split("/") From 626bf3962bbf152c09b7036750a99181d2f72f63 Mon Sep 17 00:00:00 2001 From: Lina Tang Date: Mon, 11 Mar 2024 17:16:54 +0800 Subject: [PATCH 014/204] [Internal] Refine tracing e2e test pipeline (#2289) # Description Refine tracing e2e test pipeline. Currently the pipeline didn't do auth step, causing failure for 3p customers. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Lina Tang --- .../workflows/promptflow-tracing-e2e-test.yml | 49 ++++++++++--------- .../promptflow-tracing-unit-test.yml | 1 + 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/.github/workflows/promptflow-tracing-e2e-test.yml b/.github/workflows/promptflow-tracing-e2e-test.yml index 6c732273984..0f6e365e20f 100644 --- a/.github/workflows/promptflow-tracing-e2e-test.yml +++ b/.github/workflows/promptflow-tracing-e2e-test.yml @@ -1,33 +1,41 @@ name: promptflow-tracing-e2e-test - on: schedule: - cron: "40 17 * * *" # Every day starting at 1:40 BJT - - pull_request: + pull_request_target: paths: - src/promptflow/** - scripts/building/** - .github/workflows/promptflow-tracing-e2e-test.yml - workflow_dispatch: - - env: packageSetupType: promptflow_with_extra testWorkingDirectory: ${{ github.workspace }}/src/promptflow PYTHONPATH: ${{ github.workspace }}/src/promptflow IS_IN_CI_PIPELINE: "true" - - jobs: + authorize: + environment: + # forked prs from pull_request_target will be run in external environment, domain prs will be run in internal environment + ${{ github.event_name == 'pull_request_target' && + github.event.pull_request.head.repo.full_name != github.repository && + 'external' || 'internal' }} + runs-on: ubuntu-latest + steps: + - run: true build: + needs: authorize strategy: fail-fast: false runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha || github.ref }} + fetch-depth: 0 + - name: merge main to current branch + uses: "./.github/actions/step_merge_main" - name: Display and Set Environment Variables run: | env | sort >> $GITHUB_OUTPUT @@ -50,7 +58,6 @@ jobs: path: | ${{ github.workspace }}/src/promptflow/dist/*.whl ${{ github.workspace }}/src/promptflow-tools/dist/*.whl - tracing_tests: needs: build strategy: @@ -62,24 +69,25 @@ jobs: steps: - name: checkout uses: actions/checkout@v4 - + with: + ref: ${{ github.event.pull_request.head.sha || github.ref }} + fetch-depth: 0 + - name: merge main to current branch + uses: "./.github/actions/step_merge_main" - name: Display and Set Environment Variables run: | env | sort >> $GITHUB_OUTPUT id: display_env shell: bash -el {0} - - name: Python Setup - ${{ matrix.os }} - Python Version ${{ matrix.pythonVersion }} uses: "./.github/actions/step_create_python_environment" with: pythonVersion: ${{ matrix.pythonVersion }} - - name: Download Artifacts uses: actions/download-artifact@v3 with: name: wheel path: artifacts - - name: Install wheel shell: pwsh working-directory: artifacts @@ -89,21 +97,17 @@ jobs: gci ./promptflow -Recurse | % {if ($_.Name.Contains('.whl')) {python -m pip install "$($_.FullName)"}} gci ./promptflow-tools -Recurse | % {if ($_.Name.Contains('.whl')) {python -m pip install $_.FullName}} pip freeze - - name: Azure Login uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - - name: Generate Configs uses: "./.github/actions/step_generate_configs" with: targetFolder: ${{ env.testWorkingDirectory }} - - name: Get number of CPU cores uses: SimenB/github-actions-cpu-cores@v1 id: cpu-cores - - name: run promptflow-tracing test shell: pwsh working-directory: ${{ env.testWorkingDirectory }} @@ -116,7 +120,6 @@ jobs: -n ${{ steps.cpu-cores.outputs.count }} ` --coverage-config ${{ github.workspace }}/src/promptflow/tests/tracing_test/.coveragerc ` -o "${{ env.testWorkingDirectory }}/test-results-tracing.xml" - - name: Upload Test Results if: always() uses: actions/upload-artifact@v3 @@ -125,22 +128,24 @@ jobs: path: | ${{ env.testWorkingDirectory }}/*.xml ${{ env.testWorkingDirectory }}/htmlcov/ - - publish-test-results-tracing-test: + name: "Publish Tests Results" needs: tracing_tests if: always() - runs-on: ubuntu-latest permissions: checks: write pull-requests: write contents: read issues: read - steps: - name: checkout uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha || github.ref }} + fetch-depth: 0 + - name: merge main to current branch + uses: "./.github/actions/step_merge_main" - name: Publish Test Results uses: "./.github/actions/step_publish_test_results" with: diff --git a/.github/workflows/promptflow-tracing-unit-test.yml b/.github/workflows/promptflow-tracing-unit-test.yml index bf04a46b1ba..c31957f8981 100644 --- a/.github/workflows/promptflow-tracing-unit-test.yml +++ b/.github/workflows/promptflow-tracing-unit-test.yml @@ -113,6 +113,7 @@ jobs: publish-test-results-tracing-test: + name: "Publish Tests Results" needs: tracing_tests if: always() From cd65b2e67aa6b18c4b45e4f851f0ee6121ec4fa0 Mon Sep 17 00:00:00 2001 From: Zhidong Zhu Date: Mon, 11 Mar 2024 18:54:42 +0800 Subject: [PATCH 015/204] Rename LLM and Embedding span attributes (#2270) # Description Rename LLM and Embedding span attributes to align with the OpenTelemetry convention. See #2266 for details. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [x] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- src/promptflow/promptflow/_constants.py | 6 +++--- src/promptflow/promptflow/tracing/_trace.py | 17 +++++++++-------- .../tests/executor/e2etests/test_traces.py | 16 +++++++++------- .../tests/tracing_test/e2etests/test_trace.py | 18 ++++++++++-------- 4 files changed, 31 insertions(+), 26 deletions(-) diff --git a/src/promptflow/promptflow/_constants.py b/src/promptflow/promptflow/_constants.py index be31a095d7c..e7f9f993717 100644 --- a/src/promptflow/promptflow/_constants.py +++ b/src/promptflow/promptflow/_constants.py @@ -111,9 +111,9 @@ class SpanAttributeFieldName: INPUTS = "inputs" OUTPUT = "output" # token metrics - COMPLETION_TOKEN_COUNT = "llm.token_count.completion" - PROMPT_TOKEN_COUNT = "llm.token_count.prompt" - TOTAL_TOKEN_COUNT = "llm.token_count.total" + COMPLETION_TOKEN_COUNT = "llm.usage.completion_tokens" + PROMPT_TOKEN_COUNT = "llm.usage.prompt_tokens" + TOTAL_TOKEN_COUNT = "llm.usage.total_tokens" CUMULATIVE_COMPLETION_TOKEN_COUNT = "__computed__.cumulative_token_count.completion" CUMULATIVE_PROMPT_TOKEN_COUNT = "__computed__.cumulative_token_count.prompt" CUMULATIVE_TOTAL_TOKEN_COUNT = "__computed__.cumulative_token_count.total" diff --git a/src/promptflow/promptflow/tracing/_trace.py b/src/promptflow/promptflow/tracing/_trace.py index 3f11c874434..3c2e020622f 100644 --- a/src/promptflow/promptflow/tracing/_trace.py +++ b/src/promptflow/promptflow/tracing/_trace.py @@ -12,10 +12,10 @@ from typing import Callable, List, Optional import opentelemetry.trace as otel_trace +from opentelemetry.sdk.trace import ReadableSpan from opentelemetry.trace import Link -from opentelemetry.trace.status import StatusCode from opentelemetry.trace.span import NonRecordingSpan -from opentelemetry.sdk.trace import ReadableSpan +from opentelemetry.trace.status import StatusCode from promptflow._core.generator_proxy import GeneratorProxy from promptflow._core.operation_context import OperationContext @@ -23,7 +23,7 @@ from promptflow._utils.tool_utils import get_inputs_for_prompt_template, get_prompt_param_name_from_func from .._utils.utils import default_json_encoder -from ._tracer import _create_trace_from_function_call, get_node_name_from_context, Tracer +from ._tracer import Tracer, _create_trace_from_function_call, get_node_name_from_context from .contracts.trace import TraceType IS_LEGACY_OPENAI = version("openai").startswith("0.") @@ -146,6 +146,7 @@ def traced_generator(generator, original_span: ReadableSpan): # TODO: Enrich LLM token count for streaming scenario if original_span.attributes["span_type"] == "LLM" and not IS_LEGACY_OPENAI: from openai.types.chat.chat_completion_chunk import ChatCompletionChunk + chunks = [] role = "assistant" for item in generator_output: @@ -181,7 +182,7 @@ def enrich_span_with_openai_tokens(span, trace_type): if tokens: span_tokens = {f"__computed__.cumulative_token_count.{k.split('_')[0]}": v for k, v in tokens.items()} if trace_type in [TraceType.LLM, TraceType.EMBEDDING]: - llm_tokens = {f"{trace_type.value.lower()}.token_count.{k.split('_')[0]}": v for k, v in tokens.items()} + llm_tokens = {f"llm.usage.{k}": v for k, v in tokens.items()} span_tokens.update(llm_tokens) span.set_attributes(span_tokens) except Exception as e: @@ -193,7 +194,7 @@ def enrich_span_with_embedding(span, inputs, output): try: if isinstance(output, CreateEmbeddingResponse): - span.set_attribute("embedding.model", output.model) + span.set_attribute("llm.response.model", output.model) embeddings = [] input_list = [emb_input] if _is_single_input(emb_input := inputs["input"]) else emb_input for emb in output.data: @@ -212,10 +213,10 @@ def enrich_span_with_embedding(span, inputs, output): def _is_single_input(embedding_inputs): # OpenAI Embedding API accepts a single string/tokenized string or a list of string/tokenized string as input. # For the single string/tokenized string case, we should return true, otherwise return false. - if (isinstance(embedding_inputs, str)): + if isinstance(embedding_inputs, str): # input is a string return True - elif (isinstance(embedding_inputs, list) and all(isinstance(i, int) for i in embedding_inputs)): + elif isinstance(embedding_inputs, list) and all(isinstance(i, int) for i in embedding_inputs): # input is a token array return True return False @@ -228,7 +229,7 @@ def enrich_span_with_llm_model(span, output): from openai.types.completion import Completion if isinstance(output, (ChatCompletion, Completion)): - span.set_attribute("llm.model", output.model) + span.set_attribute("llm.response.model", output.model) except Exception as e: logging.warning(f"Failed to enrich span with llm model: {e}") diff --git a/src/promptflow/tests/executor/e2etests/test_traces.py b/src/promptflow/tests/executor/e2etests/test_traces.py index d7e01180348..c5c517c8c78 100644 --- a/src/promptflow/tests/executor/e2etests/test_traces.py +++ b/src/promptflow/tests/executor/e2etests/test_traces.py @@ -30,14 +30,16 @@ ] LLM_TOKEN_NAMES = [ - "llm.token_count.prompt", - "llm.token_count.completion", - "llm.token_count.total", + "llm.usage.prompt_tokens", + "llm.usage.completion_tokens", + "llm.usage.total_tokens", + "llm.response.model", ] EMBEDDING_TOKEN_NAMES = [ - "embedding.token_count.prompt", - "embedding.token_count.total", + "llm.usage.prompt_tokens", + "llm.usage.total_tokens", + "llm.response.model", ] CUMULATIVE_LLM_TOKEN_NAMES = [ @@ -427,7 +429,7 @@ def assert_otel_traces_with_llm(self, dev_connections, flow_file, inputs, expect self.validate_openai_tokens(span_list) for span in span_list: if span.attributes.get("function", "") in LLM_FUNCTION_NAMES: - assert span.attributes.get("llm.model", "") in ["gpt-35-turbo", "text-ada-001"] + assert span.attributes.get("llm.response.model", "") in ["gpt-35-turbo", "text-ada-001"] @pytest.mark.parametrize( "flow_file, inputs, expected_span_length", @@ -463,7 +465,7 @@ def assert_otel_traces_with_embedding(self, dev_connections, flow_file, inputs, self.validate_span_list(span_list, line_run_id, expected_span_length) for span in span_list: if span.attributes.get("function", "") in EMBEDDING_FUNCTION_NAMES: - assert span.attributes.get("embedding.model", "") == "ada" + assert span.attributes.get("llm.response.model", "") == "ada" embeddings = span.attributes.get("embedding.embeddings", "") assert "embedding.vector" in embeddings assert "embedding.text" in embeddings diff --git a/src/promptflow/tests/tracing_test/e2etests/test_trace.py b/src/promptflow/tests/tracing_test/e2etests/test_trace.py index 0c9fdbcf95f..14f1ab0df26 100644 --- a/src/promptflow/tests/tracing_test/e2etests/test_trace.py +++ b/src/promptflow/tests/tracing_test/e2etests/test_trace.py @@ -30,14 +30,16 @@ ] LLM_TOKEN_NAMES = [ - "llm.token_count.prompt", - "llm.token_count.completion", - "llm.token_count.total", + "llm.usage.prompt_tokens", + "llm.usage.completion_tokens", + "llm.usage.total_tokens", + "llm.response.model", ] EMBEDDING_TOKEN_NAMES = [ - "embedding.token_count.prompt", - "embedding.token_count.total", + "llm.usage.prompt_tokens", + "llm.usage.total_tokens", + "llm.response.model", ] CUMULATIVE_LLM_TOKEN_NAMES = [ @@ -77,7 +79,7 @@ def assert_otel_trace(self, func, inputs, expected_span_length): "func, inputs", [ (render_prompt_template, {"prompt": "Hello {{name}}!", "name": "world"}), - ] + ], ) def test_otel_trace_with_prompt(self, func, inputs): execute_function_in_subprocess(self.assert_otel_traces_with_prompt, func, inputs) @@ -130,7 +132,7 @@ def assert_otel_trace_with_llm(self, dev_connections, func, inputs, expected_spa (openai_embedding_async, {"input": "Hello"}, 2), # [9906] is the tokenized version of "Hello" (openai_embedding_async, {"input": [9906]}, 2), - ] + ], ) def test_otel_trace_with_embedding( self, @@ -156,7 +158,7 @@ def assert_otel_traces_with_embedding(self, dev_connections, func, inputs, expec self.validate_openai_tokens(span_list) for span in span_list: if span.attributes.get("function", "") in EMBEDDING_FUNCTION_NAMES: - assert span.attributes.get("embedding.model", "") == "ada" + assert span.attributes.get("llm.response.model", "") == "ada" embeddings = span.attributes.get("embedding.embeddings", "") assert "embedding.vector" in embeddings assert "embedding.text" in embeddings From 77290c1f68f2a8703eb6efdeca94d64fc416d297 Mon Sep 17 00:00:00 2001 From: chenslucky <75061414+chenslucky@users.noreply.github.com> Date: Tue, 12 Mar 2024 10:18:17 +0800 Subject: [PATCH 016/204] Improve error message when LLM tool meets gpt-4-vision-preview model (#2211) # Description **Extension tests:** If don't config the workspace triad, throw internal error ![image](https://github.com/microsoft/promptflow/assets/75061414/fc5d2cf5-875a-45a8-8edc-61fe9c55e1c0) **Portal tests:** tool internal package pip install --upgrade promptflow_tools[azure]==0.0.313 --extra-index-url https://azuremlsdktestpypi.azureedge.net/test-promptflow/ Runtime: https://ml.azure.com/prompts/runtime/llm-use-vision-model-test/details?wsid=/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/chesi-eastus/providers/Microsoft.MachineLearningServices/workspaces/chesi-promptflow&tid=72f988bf-86f1-41af-91ab-2d7cd011db47 Experiment link: https://ml.azure.com/prompts/flow/cfa1c054-13cb-4cfc-b3a6-359bf0493da9/a65f5e8f-342c-43b0-8eb0-c391d59666da/details?wsid=/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/chesi-eastus/providers/Microsoft.MachineLearningServices/workspaces/chesi-promptflow&tid=72f988bf-86f1-41af-91ab-2d7cd011db47 1. stop/response_format/logit_bias/max_tokens are none: ![image](https://github.com/microsoft/promptflow/assets/75061414/4aa1edc4-0224-457b-9b99-56d892f7d1eb) 2. llm use vision with extra parameter: ![image](https://github.com/microsoft/promptflow/assets/75061414/143bd8d1-99e8-4c03-b311-cee4c4ed1065) 3. only vision deployment name shows for vision tool ![image](https://github.com/microsoft/promptflow/assets/75061414/1c795e7c-895f-4717-bc66-1b2d4036a405) # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: cs_lucky --- src/promptflow-tools/promptflow/tools/aoai.py | 17 +- .../promptflow/tools/aoai_gpt4v.py | 134 ++-------- .../promptflow/tools/common.py | 163 ++++++++++++- .../promptflow/tools/exception.py | 10 + .../promptflow/tools/openai.py | 16 +- src/promptflow-tools/tests/conftest.py | 7 + src/promptflow-tools/tests/test_aoai.py | 12 + src/promptflow-tools/tests/test_aoai_gptv.py | 228 ++---------------- src/promptflow-tools/tests/test_common.py | 166 ++++++++++++- .../tests/test_handle_openai_error.py | 20 ++ src/promptflow-tools/tests/utils.py | 23 ++ 11 files changed, 457 insertions(+), 339 deletions(-) diff --git a/src/promptflow-tools/promptflow/tools/aoai.py b/src/promptflow-tools/promptflow/tools/aoai.py index ef234a82e0c..1419a28707d 100644 --- a/src/promptflow-tools/promptflow/tools/aoai.py +++ b/src/promptflow-tools/promptflow/tools/aoai.py @@ -129,14 +129,9 @@ def chat( "top_p": float(top_p), "n": int(n), "stream": stream, - "stop": stop if stop else None, - "max_tokens": int(max_tokens) if max_tokens is not None and str(max_tokens).lower() != "inf" else None, "presence_penalty": float(presence_penalty), "frequency_penalty": float(frequency_penalty), - "logit_bias": logit_bias, "user": user, - "response_format": response_format, - "seed": seed, "extra_headers": {"ms-azure-ai-promptflow-called-from": "aoai-tool"} } if functions is not None: @@ -144,6 +139,18 @@ def chat( params["functions"] = functions params["function_call"] = process_function_call(function_call) + # to avoid vision model validation error for empty param values. + if stop: + params["stop"] = stop + if max_tokens is not None and str(max_tokens).lower() != "inf": + params["max_tokens"] = int(max_tokens) + if logit_bias: + params["logit_bias"] = logit_bias + if response_format: + params["response_format"] = response_format + if seed is not None: + params["seed"] = seed + completion = self._client.chat.completions.create(**params) return post_process_chat_api_response(completion, stream, functions) diff --git a/src/promptflow-tools/promptflow/tools/aoai_gpt4v.py b/src/promptflow-tools/promptflow/tools/aoai_gpt4v.py index cd67d633673..ddd0b06cd87 100644 --- a/src/promptflow-tools/promptflow/tools/aoai_gpt4v.py +++ b/src/promptflow-tools/promptflow/tools/aoai_gpt4v.py @@ -1,70 +1,12 @@ -from promptflow._internal import ToolProvider, tool -from promptflow.connections import AzureOpenAIConnection -from promptflow.contracts.types import PromptTemplate -from promptflow.exceptions import ErrorTarget, UserErrorException from typing import List, Dict from promptflow.tools.common import render_jinja_template, handle_openai_error, parse_chat, \ preprocess_template_string, find_referenced_image_set, convert_to_chat_list, init_azure_openai_client, \ - post_process_chat_api_response - - -GPT4V_VERSION = "vision-preview" - - -def _get_credential(): - from azure.identity import DefaultAzureCredential - from azure.ai.ml._azure_environments import _get_default_cloud_name, EndpointURLS, _get_cloud, AzureEnvironments - # Support sovereign cloud cases, like mooncake, fairfax. - cloud_name = _get_default_cloud_name() - if cloud_name != AzureEnvironments.ENV_DEFAULT: - cloud = _get_cloud(cloud=cloud_name) - authority = cloud.get(EndpointURLS.ACTIVE_DIRECTORY_ENDPOINT) - credential = DefaultAzureCredential(authority=authority, exclude_shared_token_cache_credential=True) - else: - credential = DefaultAzureCredential() - - return credential - - -def _parse_resource_id(resource_id): - # Resource id is connection's id in following format: - # "/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.CognitiveServices/accounts/{account}" - split_parts = resource_id.split("/") - if len(split_parts) != 9: - raise ParseConnectionError( - f"Connection resourceId format invalid, cur resourceId is {resource_id}." - ) - sub, rg, account = split_parts[2], split_parts[4], split_parts[-1] - - return sub, rg, account - - -class Deployment: - def __init__( - self, - name: str, - model_name: str, - version: str - ): - self.name = name - self.model_name = model_name - self.version = version - - -class ListDeploymentsError(UserErrorException): - def __init__(self, msg, **kwargs): - super().__init__(msg, target=ErrorTarget.TOOL, **kwargs) - + post_process_chat_api_response, list_deployment_connections, build_deployment_dict, GPT4V_VERSION -class ParseConnectionError(ListDeploymentsError): - def __init__(self, msg, **kwargs): - super().__init__(msg, **kwargs) - - -def _build_deployment_dict(item) -> Deployment: - model = item.properties.model - return Deployment(item.name, model.name, model.version) +from promptflow._internal import ToolProvider, tool +from promptflow.connections import AzureOpenAIConnection +from promptflow.contracts.types import PromptTemplate def list_deployment_names( @@ -74,65 +16,19 @@ def list_deployment_names( connection="" ) -> List[Dict[str, str]]: res = [] - try: - # Does not support dynamic list for local. - from azure.mgmt.cognitiveservices import CognitiveServicesManagementClient - from promptflow.azure.operations._arm_connection_operations import \ - ArmConnectionOperations, OpenURLFailedUserError - except ImportError: - return res - # For local, subscription_id is None. Does not suppot dynamic list for local. - if not subscription_id: + deployment_collection = list_deployment_connections(subscription_id, resource_group_name, workspace_name, + connection) + if not deployment_collection: return res - try: - credential = _get_credential() - try: - # Currently, the param 'connection' is str, not AzureOpenAIConnection type. - conn = ArmConnectionOperations._build_connection_dict( - name=connection, - subscription_id=subscription_id, - resource_group_name=resource_group_name, - workspace_name=workspace_name, - credential=credential - ) - resource_id = conn.get("value").get('resource_id', "") - if not resource_id: - return res - conn_sub, conn_rg, conn_account = _parse_resource_id(resource_id) - except OpenURLFailedUserError: - return res - except ListDeploymentsError as e: - raise e - except Exception as e: - msg = f"Parsing connection with exception: {e}" - raise ListDeploymentsError(msg=msg) from e - - client = CognitiveServicesManagementClient( - credential=credential, - subscription_id=conn_sub, - ) - deployment_collection = client.deployments.list( - resource_group_name=conn_rg, - account_name=conn_account, - ) - - for item in deployment_collection: - deployment = _build_deployment_dict(item) - if deployment.version == GPT4V_VERSION: - cur_item = { - "value": deployment.name, - "display_value": deployment.name, - } - res.append(cur_item) - - except Exception as e: - if hasattr(e, 'status_code') and e.status_code == 403: - msg = f"Failed to list deployments due to permission issue: {e}" - raise ListDeploymentsError(msg=msg) from e - else: - msg = f"Failed to list deployments with exception: {e}" - raise ListDeploymentsError(msg=msg) from e + for item in deployment_collection: + deployment = build_deployment_dict(item) + if deployment.version == GPT4V_VERSION: + cur_item = { + "value": deployment.name, + "display_value": deployment.name, + } + res.append(cur_item) return res diff --git a/src/promptflow-tools/promptflow/tools/common.py b/src/promptflow-tools/promptflow/tools/common.py index 528a739a7bb..fc4aed17dad 100644 --- a/src/promptflow-tools/promptflow/tools/common.py +++ b/src/promptflow-tools/promptflow/tools/common.py @@ -1,19 +1,37 @@ import functools import json +import os import re import sys import time from typing import List, Mapping from jinja2 import Template -from openai import APIConnectionError, APIStatusError, OpenAIError, RateLimitError, APITimeoutError +from openai import APIConnectionError, APIStatusError, OpenAIError, RateLimitError, APITimeoutError, BadRequestError from promptflow.tools.exception import ChatAPIInvalidRole, WrappedOpenAIError, LLMError, JinjaTemplateError, \ ExceedMaxRetryTimes, ChatAPIInvalidFunctions, FunctionCallNotSupportedInStreamMode, \ - ChatAPIFunctionRoleInvalidFormat, InvalidConnectionType + ChatAPIFunctionRoleInvalidFormat, InvalidConnectionType, ListDeploymentsError, ParseConnectionError + +from promptflow._cli._utils import get_workspace_triad_from_local from promptflow.connections import AzureOpenAIConnection, OpenAIConnection from promptflow.exceptions import SystemErrorException, UserErrorException +GPT4V_VERSION = "vision-preview" + + +class Deployment: + def __init__( + self, + name: str, + model_name: str, + version: str + ): + self.name = name + self.model_name = model_name + self.version = version + + class ChatInputList(list): """ ChatInputList is a list of ChatInput objects. It is used to override the __str__ method of list to return a string @@ -188,6 +206,134 @@ def generate_retry_interval(retry_count: int) -> float: return retry_interval +def build_deployment_dict(item) -> Deployment: + model = item.properties.model + return Deployment(item.name, model.name, model.version) + + +def _parse_resource_id(resource_id): + # Resource id is connection's id in following format: + # "/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.CognitiveServices/accounts/{account}" + split_parts = resource_id.split("/") + if len(split_parts) != 9: + raise ParseConnectionError( + f"Connection resourceId format invalid, cur resourceId is {resource_id}." + ) + sub, rg, account = split_parts[2], split_parts[4], split_parts[-1] + + return sub, rg, account + + +def _get_credential(): + from azure.identity import DefaultAzureCredential + from azure.ai.ml._azure_environments import _get_default_cloud_name, EndpointURLS, _get_cloud, AzureEnvironments + # Support sovereign cloud cases, like mooncake, fairfax. + cloud_name = _get_default_cloud_name() + if cloud_name != AzureEnvironments.ENV_DEFAULT: + cloud = _get_cloud(cloud=cloud_name) + authority = cloud.get(EndpointURLS.ACTIVE_DIRECTORY_ENDPOINT) + credential = DefaultAzureCredential(authority=authority, exclude_shared_token_cache_credential=True) + else: + credential = DefaultAzureCredential() + + return credential + + +def get_workspace_triad(): + # If flow is submitted from cloud, runtime will save the workspace triad to environment + if 'AZUREML_ARM_SUBSCRIPTION' in os.environ and 'AZUREML_ARM_RESOURCEGROUP' in os.environ \ + and 'AZUREML_ARM_WORKSPACE_NAME' in os.environ: + return os.environ["AZUREML_ARM_SUBSCRIPTION"], os.environ["AZUREML_ARM_RESOURCEGROUP"], \ + os.environ["AZUREML_ARM_WORKSPACE_NAME"] + else: + # If flow is submitted from local, it will get workspace triad from your azure cloud config file + # If this config file isn't set up, it will return None. + workspace_triad = get_workspace_triad_from_local() + return workspace_triad.subscription_id, workspace_triad.resource_group_name, workspace_triad.workspace_name + + +def list_deployment_connections( + subscription_id, + resource_group_name, + workspace_name, + connection="", +): + try: + # Do not support dynamic list for local. + from azure.mgmt.cognitiveservices import CognitiveServicesManagementClient + from promptflow.azure.operations._arm_connection_operations import \ + ArmConnectionOperations, OpenURLFailedUserError + except ImportError: + return None + + # For local, subscription_id is None. Does not support dynamic list for local. + if not subscription_id: + return None + + try: + credential = _get_credential() + try: + # Currently, the param 'connection' is str, not AzureOpenAIConnection type. + conn = ArmConnectionOperations._build_connection_dict( + name=connection, + subscription_id=subscription_id, + resource_group_name=resource_group_name, + workspace_name=workspace_name, + credential=credential + ) + resource_id = conn.get("value").get('resource_id', "") + if not resource_id: + return None + conn_sub, conn_rg, conn_account = _parse_resource_id(resource_id) + except OpenURLFailedUserError: + return None + except ListDeploymentsError as e: + raise e + except Exception as e: + msg = f"Parsing connection with exception: {e}" + raise ListDeploymentsError(msg=msg) from e + + client = CognitiveServicesManagementClient( + credential=credential, + subscription_id=conn_sub, + ) + return client.deployments.list( + resource_group_name=conn_rg, + account_name=conn_account, + ) + except Exception as e: + if hasattr(e, 'status_code') and e.status_code == 403: + msg = f"Failed to list deployments due to permission issue: {e}" + raise ListDeploymentsError(msg=msg) from e + else: + msg = f"Failed to list deployments with exception: {e}" + raise ListDeploymentsError(msg=msg) from e + + +def refine_extra_fields_not_permitted_error(connection, deployment_name, model): + tsg = "Please kindly avoid using vision model in LLM tool, " \ + "because vision model cannot work with some chat api parameters. " \ + "You can change to use tool 'Azure OpenAI GPT-4 Turbo with Vision' " \ + "or 'OpenAI GPT-4V' for vision model." + try: + if isinstance(connection, AzureOpenAIConnection): + subscription_id, resource_group, workspace_name = get_workspace_triad() + if subscription_id and resource_group and workspace_name: + deployment_collection = list_deployment_connections(subscription_id, resource_group, workspace_name, + connection.name) + for item in deployment_collection: + if deployment_name == item.name: + if item.properties.model.version in [GPT4V_VERSION]: + return tsg + elif isinstance(connection, OpenAIConnection) and model in ["gpt-4-vision-preview"]: + return tsg + except Exception as e: + print(f"Exception occurs when refine extra fields not permitted error for llm: " + f"{type(e).__name__}: {str(e)}", file=sys.stderr) + + return None + + # TODO(2971352): revisit this tries=100 when there is any change to the 10min timeout logic def handle_openai_error(tries: int = 100): """ @@ -212,6 +358,19 @@ def wrapper(*args, **kwargs): # Handle retriable exception, please refer to # https://platform.openai.com/docs/guides/error-codes/api-errors print(f"Exception occurs: {type(e).__name__}: {str(e)}", file=sys.stderr) + # Vision model does not support all chat api parameters, e.g. response_format and function_call. + # Recommend user to use vision model in vision tools, rather than LLM tool. + # Related issue https://github.com/microsoft/promptflow/issues/1683 + if isinstance(e, BadRequestError) and "extra fields not permitted" in str(e).lower(): + refined_error_message = \ + refine_extra_fields_not_permitted_error(args[0].connection, + kwargs.get("deployment_name", ""), + kwargs.get("model", "")) + if refined_error_message: + raise LLMError(message=f"{str(e)} {refined_error_message}") + else: + raise WrappedOpenAIError(e) + if isinstance(e, APIConnectionError) and not isinstance(e, APITimeoutError) \ and "connection aborted" not in str(e).lower(): raise WrappedOpenAIError(e) diff --git a/src/promptflow-tools/promptflow/tools/exception.py b/src/promptflow-tools/promptflow/tools/exception.py index 9883d0d099f..54ba9b67a62 100644 --- a/src/promptflow-tools/promptflow/tools/exception.py +++ b/src/promptflow-tools/promptflow/tools/exception.py @@ -198,3 +198,13 @@ class AzureContentSafetySystemError(SystemErrorException): def __init__(self, **kwargs): super().__init__(**kwargs, target=ErrorTarget.TOOL) + + +class ListDeploymentsError(UserErrorException): + def __init__(self, msg, **kwargs): + super().__init__(msg, target=ErrorTarget.TOOL, **kwargs) + + +class ParseConnectionError(ListDeploymentsError): + def __init__(self, msg, **kwargs): + super().__init__(msg, **kwargs) diff --git a/src/promptflow-tools/promptflow/tools/openai.py b/src/promptflow-tools/promptflow/tools/openai.py index fccc8187f0c..231a0975b61 100644 --- a/src/promptflow-tools/promptflow/tools/openai.py +++ b/src/promptflow-tools/promptflow/tools/openai.py @@ -122,14 +122,10 @@ def chat( "top_p": float(top_p), "n": int(n), "stream": stream, - "stop": stop if stop else None, "max_tokens": int(max_tokens) if max_tokens is not None and str(max_tokens).lower() != "inf" else None, "presence_penalty": float(presence_penalty), "frequency_penalty": float(frequency_penalty), - "logit_bias": logit_bias, "user": user, - "response_format": response_format, - "seed": seed, } if functions is not None: @@ -137,6 +133,18 @@ def chat( params["functions"] = functions params["function_call"] = process_function_call(function_call) + # to avoid vision model validation error for empty param values. + if stop: + params["stop"] = stop + if max_tokens is not None and str(max_tokens).lower() != "inf": + params["max_tokens"] = int(max_tokens) + if logit_bias: + params["logit_bias"] = logit_bias + if response_format: + params["response_format"] = response_format + if seed is not None: + params["seed"] = seed + completion = self._client.chat.completions.create(**params) return post_process_chat_api_response(completion, stream, functions) diff --git a/src/promptflow-tools/tests/conftest.py b/src/promptflow-tools/tests/conftest.py index e926ac1ba63..f3a1b7e225d 100644 --- a/src/promptflow-tools/tests/conftest.py +++ b/src/promptflow-tools/tests/conftest.py @@ -13,6 +13,7 @@ from promptflow.connections import CustomConnection, OpenAIConnection, SerpConnection from promptflow.contracts.multimedia import Image from promptflow.tools.aoai import AzureOpenAI +from promptflow.tools.aoai_gpt4v import AzureOpenAI as AzureOpenAIVision PROMOTFLOW_ROOT = Path(__file__).absolute().parents[1] CONNECTION_FILE = (PROMOTFLOW_ROOT / "connections.json").resolve().absolute().as_posix() @@ -43,6 +44,12 @@ def aoai_provider(azure_open_ai_connection) -> AzureOpenAI: return aoai_provider +@pytest.fixture +def aoai_vision_provider(azure_open_ai_connection) -> AzureOpenAIVision: + aoai_provider = AzureOpenAIVision(azure_open_ai_connection) + return aoai_provider + + @pytest.fixture def open_ai_connection(): return ConnectionManager().get("open_ai_connection") diff --git a/src/promptflow-tools/tests/test_aoai.py b/src/promptflow-tools/tests/test_aoai.py index a231da987e6..73abe56bf18 100644 --- a/src/promptflow-tools/tests/test_aoai.py +++ b/src/promptflow-tools/tests/test_aoai.py @@ -257,3 +257,15 @@ def test_aoai_chat_with_response_format_text_mode( response_format={"type": "text"} ) assert "Product X".lower() in result.lower() + + def test_aoai_with_vision_model(self, azure_open_ai_connection): + # The issue https://github.com/microsoft/promptflow/issues/1683 is fixed + result = chat( + connection=azure_open_ai_connection, + prompt="user:\nhello", + deployment_name="gpt-4v", + stop=None, + logit_bias={} + ) + + assert "Hello".lower() in result.lower() diff --git a/src/promptflow-tools/tests/test_aoai_gptv.py b/src/promptflow-tools/tests/test_aoai_gptv.py index d7c0c4d4c01..e47c6e7999d 100644 --- a/src/promptflow-tools/tests/test_aoai_gptv.py +++ b/src/promptflow-tools/tests/test_aoai_gptv.py @@ -1,210 +1,14 @@ import pytest from unittest.mock import patch -from promptflow.tools.aoai_gpt4v import AzureOpenAI, ListDeploymentsError, ParseConnectionError, \ - _parse_resource_id, list_deployment_names, GPT4V_VERSION - - -DEFAULT_SUBSCRIPTION_ID = "sub" -DEFAULT_RESOURCE_GROUP_NAME = "rg" -DEFAULT_WORKSPACE_NAME = "ws" -DEFAULT_ACCOUNT = "account" -DEFAULT_CONNECTION = "conn" - - -class CustomException(Exception): - def __init__(self, message, status_code): - super().__init__(message) - self.status_code = status_code - - -class Model: - def __init__(self, name, version): - self.name = name - self.version = version - - -class Properties: - def __init__(self, name, version): - self.model = Model(name, version) - - -class Deployment: - def __init__(self, name, model_name, version): - self.name = name - self.properties = Properties(model_name, version) - - -@pytest.fixture -def azure_openai_provider(azure_open_ai_connection) -> AzureOpenAI: - return AzureOpenAI(azure_open_ai_connection) - - -def mock_build_connection_dict_func1(**kwargs): - from promptflow.azure.operations._arm_connection_operations import OpenURLFailedUserError - - raise OpenURLFailedUserError - - -def mock_build_connection_dict_func2(**kwargs): - return {"value" : {"resource_id": "abc"}} - - -def mock_build_connection_dict_func3(**kwargs): - resource_id = ( - f"/subscriptions/{DEFAULT_SUBSCRIPTION_ID}/resourceGroups/{DEFAULT_RESOURCE_GROUP_NAME}" - f"/providers/Microsoft.CognitiveServices/accounts/{DEFAULT_ACCOUNT}" - ) - return {"value" : {"resource_id": resource_id}} - - -def test_parse_resource_id(): - sub = "dummy_sub" - rg = "dummy_rg" - account = "dummy_account" - resource_id = ( - f"/subscriptions/{sub}/resourceGroups/{rg}/providers/" - f"Microsoft.CognitiveServices/accounts/{account}" - ) - parsed_sub, parsed_rg, parsed_account = _parse_resource_id(resource_id) - assert sub == parsed_sub and rg == parsed_rg and account == parsed_account - - -@pytest.mark.parametrize( - "resource_id, error_message", - [ - ("", "Connection resourceId format invalid, cur resourceId is "), - ("a/b/c/d", "Connection resourceId format invalid, cur resourceId is a/b/c/d"), - ], - ) -def test_parse_resource_id_with_error(resource_id, error_message): - with pytest.raises(ParseConnectionError, match=error_message): - _parse_resource_id(resource_id) - - -def test_list_deployment_names_with_conn_error(monkeypatch): - from promptflow.azure.operations._arm_connection_operations import ArmConnectionOperations - - monkeypatch.setattr( - ArmConnectionOperations, - "_build_connection_dict", - mock_build_connection_dict_func1 - ) - res = list_deployment_names( - DEFAULT_SUBSCRIPTION_ID, - DEFAULT_RESOURCE_GROUP_NAME, - DEFAULT_WORKSPACE_NAME, - DEFAULT_CONNECTION - ) - assert res == [] - - -def test_list_deployment_names_with_wrong_connection_id(monkeypatch): - from promptflow.azure.operations._arm_connection_operations import ArmConnectionOperations - - monkeypatch.setattr( - ArmConnectionOperations, - "_build_connection_dict", - mock_build_connection_dict_func2 - ) - with pytest.raises(ListDeploymentsError): - list_deployment_names( - DEFAULT_SUBSCRIPTION_ID, - DEFAULT_RESOURCE_GROUP_NAME, - DEFAULT_WORKSPACE_NAME, - DEFAULT_CONNECTION - ) - - -def test_list_deployment_names_with_permission_issue(monkeypatch): - from promptflow.azure.operations._arm_connection_operations import ArmConnectionOperations - - monkeypatch.setattr( - ArmConnectionOperations, - "_build_connection_dict", - mock_build_connection_dict_func3 - ) - with patch('azure.mgmt.cognitiveservices.CognitiveServicesManagementClient') as mock: - mock.side_effect = CustomException("", 403) - with pytest.raises(ListDeploymentsError) as excinfo: - list_deployment_names( - DEFAULT_SUBSCRIPTION_ID, - DEFAULT_RESOURCE_GROUP_NAME, - DEFAULT_WORKSPACE_NAME, - DEFAULT_CONNECTION - ) - assert "Failed to list deployments due to permission issue" in str(excinfo.value) - - -def test_list_deployment_names(monkeypatch): - from promptflow.azure.operations._arm_connection_operations import ArmConnectionOperations - from azure.ai.ml._azure_environments import AzureEnvironments - - monkeypatch.setattr( - ArmConnectionOperations, - "_build_connection_dict", - mock_build_connection_dict_func3 - ) - with ( - patch('azure.ai.ml._azure_environments._get_default_cloud_name') as mock_cloud_name, - patch('azure.mgmt.cognitiveservices.CognitiveServicesManagementClient') as mock - ): - mock_cloud_name.return_value = AzureEnvironments.ENV_DEFAULT - instance = mock.return_value - instance.deployments.list.return_value = { - Deployment("deployment1", "model1", GPT4V_VERSION), - Deployment("deployment2", "model2", "version2") - } - res = list_deployment_names( - DEFAULT_SUBSCRIPTION_ID, - DEFAULT_RESOURCE_GROUP_NAME, - DEFAULT_WORKSPACE_NAME, - DEFAULT_CONNECTION - ) - assert len(res) == 1 - assert res[0].get("value") == "deployment1" - assert res[0].get("display_value") == "deployment1" - - -def test_list_deployment_names_sovereign_credential(monkeypatch): - from promptflow.azure.operations._arm_connection_operations import ArmConnectionOperations - from azure.ai.ml._azure_environments import AzureEnvironments - - monkeypatch.setattr( - ArmConnectionOperations, - "_build_connection_dict", - mock_build_connection_dict_func3 - ) - with ( - patch('azure.ai.ml._azure_environments._get_default_cloud_name') as mock_cloud_name, - patch('azure.ai.ml._azure_environments._get_cloud') as mock_cloud, - patch('azure.identity.DefaultAzureCredential') as mock_cre, - patch('azure.mgmt.cognitiveservices.CognitiveServicesManagementClient') as mock - ): - mock_cloud_name.return_value = AzureEnvironments.ENV_CHINA - cloud = mock_cloud.return_value - cloud.get.return_value = "authority" - mock_cre.return_value = "credential" - instance = mock.return_value - instance.deployments.list.return_value = { - Deployment("deployment1", "model1", GPT4V_VERSION), - Deployment("deployment2", "model2", "version2") - } - res = list_deployment_names( - DEFAULT_SUBSCRIPTION_ID, - DEFAULT_RESOURCE_GROUP_NAME, - DEFAULT_WORKSPACE_NAME, - DEFAULT_CONNECTION - ) - assert len(res) == 1 - assert res[0].get("value") == "deployment1" - assert res[0].get("display_value") == "deployment1" +from promptflow.tools.aoai_gpt4v import list_deployment_names +from tests.utils import Deployment @pytest.mark.usefixtures("use_secrets_config_file") class TestAzureOpenAIGPT4V: - def test_openai_gpt4v_chat(self, azure_openai_provider, example_prompt_template_with_image, example_image): - result = azure_openai_provider.chat( + def test_openai_gpt4v_chat(self, aoai_vision_provider, example_prompt_template_with_image, example_image): + result = aoai_vision_provider.chat( prompt=example_prompt_template_with_image, deployment_name="gpt-4v", max_tokens=480, @@ -215,10 +19,10 @@ def test_openai_gpt4v_chat(self, azure_openai_provider, example_prompt_template_ ) assert "10" == result # verify if openai built-in retry mechanism is disabled - assert azure_openai_provider._client.max_retries == 0 + assert aoai_vision_provider._client.max_retries == 0 - def test_openai_gpt4v_stream_chat(self, azure_openai_provider, example_prompt_template_with_image, example_image): - result = azure_openai_provider.chat( + def test_openai_gpt4v_stream_chat(self, aoai_vision_provider, example_prompt_template_with_image, example_image): + result = aoai_vision_provider.chat( prompt=example_prompt_template_with_image, deployment_name="gpt-4v", max_tokens=480, @@ -235,10 +39,10 @@ def test_openai_gpt4v_stream_chat(self, azure_openai_provider, example_prompt_te break assert "10" == answer - def test_correctly_pass_params(self, azure_openai_provider, example_prompt_template_with_image, example_image): + def test_correctly_pass_params(self, aoai_vision_provider, example_prompt_template_with_image, example_image): seed_value = 123 - with patch.object(azure_openai_provider._client.chat.completions, 'create') as mock_create: - azure_openai_provider.chat( + with patch.object(aoai_vision_provider._client.chat.completions, 'create') as mock_create: + aoai_vision_provider.chat( prompt=example_prompt_template_with_image, deployment_name="gpt-4v", max_tokens=480, @@ -250,3 +54,15 @@ def test_correctly_pass_params(self, azure_openai_provider, example_prompt_templ mock_create.assert_called_once() called_with_params = mock_create.call_args[1] assert called_with_params['seed'] == seed_value + + def test_list_deployment_names(self): + with patch('promptflow.tools.aoai_gpt4v.list_deployment_connections') as mock_list: + mock_list.return_value = { + Deployment("deployment1", "model1", "vision-preview"), + Deployment("deployment2", "model2", "version2") + } + + res = list_deployment_names("sub", "rg", "ws", "con") + assert len(res) == 1 + assert res[0].get("value") == "deployment1" + assert res[0].get("display_value") == "deployment1" diff --git a/src/promptflow-tools/tests/test_common.py b/src/promptflow-tools/tests/test_common.py index 098f1e1a6ab..8a0032bff46 100644 --- a/src/promptflow-tools/tests/test_common.py +++ b/src/promptflow-tools/tests/test_common.py @@ -1,10 +1,38 @@ -import pytest +from unittest.mock import patch -from promptflow.connections import AzureOpenAIConnection, OpenAIConnection -from promptflow.contracts.multimedia import Image +import pytest from promptflow.tools.common import ChatAPIInvalidFunctions, validate_functions, process_function_call, \ parse_chat, find_referenced_image_set, preprocess_template_string, convert_to_chat_list, ChatInputList, \ + ParseConnectionError, _parse_resource_id, list_deployment_connections, \ normalize_connection_config +from promptflow.tools.exception import ListDeploymentsError + +from promptflow.connections import AzureOpenAIConnection, OpenAIConnection +from promptflow.contracts.multimedia import Image +from tests.utils import CustomException, Deployment + +DEFAULT_SUBSCRIPTION_ID = "sub" +DEFAULT_RESOURCE_GROUP_NAME = "rg" +DEFAULT_WORKSPACE_NAME = "ws" +DEFAULT_ACCOUNT = "account" +DEFAULT_CONNECTION = "conn" + + +def mock_build_connection_dict_func1(**kwargs): + from promptflow.azure.operations._arm_connection_operations import OpenURLFailedUserError + raise OpenURLFailedUserError + + +def mock_build_connection_dict_func2(**kwargs): + return {"value": {"resource_id": "abc"}} + + +def mock_build_connection_dict_func3(**kwargs): + resource_id = ( + f"/subscriptions/{DEFAULT_SUBSCRIPTION_ID}/resourceGroups/{DEFAULT_RESOURCE_GROUP_NAME}" + f"/providers/Microsoft.CognitiveServices/accounts/{DEFAULT_ACCOUNT}" + ) + return {"value": {"resource_id": resource_id}} class TestCommon: @@ -155,6 +183,138 @@ def test_convert_to_chat_list(self, input_data, expected_output): actual_result = convert_to_chat_list(input_data) assert actual_result == expected_output + def test_parse_resource_id(self): + sub = "dummy_sub" + rg = "dummy_rg" + account = "dummy_account" + resource_id = ( + f"/subscriptions/{sub}/resourceGroups/{rg}/providers/" + f"Microsoft.CognitiveServices/accounts/{account}" + ) + parsed_sub, parsed_rg, parsed_account = _parse_resource_id(resource_id) + assert sub == parsed_sub and rg == parsed_rg and account == parsed_account + + @pytest.mark.parametrize( + "resource_id, error_message", + [ + ("", "Connection resourceId format invalid, cur resourceId is "), + ("a/b/c/d", "Connection resourceId format invalid, cur resourceId is a/b/c/d"), + ], + ) + def test_parse_resource_id_with_error(self, resource_id, error_message): + with pytest.raises(ParseConnectionError, match=error_message): + _parse_resource_id(resource_id) + + def test_list_deployment_connections_with_conn_error(self, monkeypatch): + from promptflow.azure.operations._arm_connection_operations import ArmConnectionOperations + + monkeypatch.setattr( + ArmConnectionOperations, + "_build_connection_dict", + mock_build_connection_dict_func1 + ) + res = list_deployment_connections( + DEFAULT_SUBSCRIPTION_ID, + DEFAULT_RESOURCE_GROUP_NAME, + DEFAULT_WORKSPACE_NAME, + DEFAULT_CONNECTION + ) + assert res is None + + def test_list_deployment_connections_with_wrong_connection_id(self, monkeypatch): + from promptflow.azure.operations._arm_connection_operations import ArmConnectionOperations + + monkeypatch.setattr( + ArmConnectionOperations, + "_build_connection_dict", + mock_build_connection_dict_func2 + ) + with pytest.raises(ListDeploymentsError): + list_deployment_connections( + DEFAULT_SUBSCRIPTION_ID, + DEFAULT_RESOURCE_GROUP_NAME, + DEFAULT_WORKSPACE_NAME, + DEFAULT_CONNECTION, + ) + + def test_list_deployment_connections_with_permission_issue(self, monkeypatch): + from promptflow.azure.operations._arm_connection_operations import ArmConnectionOperations + + monkeypatch.setattr( + ArmConnectionOperations, + "_build_connection_dict", + mock_build_connection_dict_func3 + ) + with patch('azure.mgmt.cognitiveservices.CognitiveServicesManagementClient') as mock: + mock.side_effect = CustomException("", 403) + with pytest.raises(ListDeploymentsError) as excinfo: + list_deployment_connections( + DEFAULT_SUBSCRIPTION_ID, + DEFAULT_RESOURCE_GROUP_NAME, + DEFAULT_WORKSPACE_NAME, + DEFAULT_CONNECTION, + ) + assert "Failed to list deployments due to permission issue" in str(excinfo.value) + + def test_list_deployment_connections(self, monkeypatch): + from promptflow.azure.operations._arm_connection_operations import ArmConnectionOperations + from azure.ai.ml._azure_environments import AzureEnvironments + + monkeypatch.setattr( + ArmConnectionOperations, + "_build_connection_dict", + mock_build_connection_dict_func3 + ) + with ( + patch('azure.ai.ml._azure_environments._get_default_cloud_name') as mock_cloud_name, + patch('azure.mgmt.cognitiveservices.CognitiveServicesManagementClient') as mock + ): + mock_cloud_name.return_value = AzureEnvironments.ENV_DEFAULT + instance = mock.return_value + instance.deployments.list.return_value = { + Deployment("deployment1", "model1", "vision-preview"), + Deployment("deployment2", "model2", "version2") + } + res = list_deployment_connections( + DEFAULT_SUBSCRIPTION_ID, + DEFAULT_RESOURCE_GROUP_NAME, + DEFAULT_WORKSPACE_NAME, + DEFAULT_CONNECTION + ) + assert len(res) == 2 + + def test_list_deployment_connections_sovereign_credential(self, monkeypatch): + from promptflow.azure.operations._arm_connection_operations import ArmConnectionOperations + from azure.ai.ml._azure_environments import AzureEnvironments + + monkeypatch.setattr( + ArmConnectionOperations, + "_build_connection_dict", + mock_build_connection_dict_func3 + ) + with ( + patch('azure.ai.ml._azure_environments._get_default_cloud_name') as mock_cloud_name, + patch('azure.ai.ml._azure_environments._get_cloud') as mock_cloud, + patch('azure.identity.DefaultAzureCredential') as mock_cre, + patch('azure.mgmt.cognitiveservices.CognitiveServicesManagementClient') as mock + ): + mock_cloud_name.return_value = AzureEnvironments.ENV_CHINA + cloud = mock_cloud.return_value + cloud.get.return_value = "authority" + mock_cre.return_value = "credential" + instance = mock.return_value + instance.deployments.list.return_value = { + Deployment("deployment1", "model1", "vision-preview"), + Deployment("deployment2", "model2", "version2") + } + res = list_deployment_connections( + DEFAULT_SUBSCRIPTION_ID, + DEFAULT_RESOURCE_GROUP_NAME, + DEFAULT_WORKSPACE_NAME, + DEFAULT_CONNECTION + ) + assert len(res) == 2 + @pytest.mark.parametrize( "input_data, expected_output", [ diff --git a/src/promptflow-tools/tests/test_handle_openai_error.py b/src/promptflow-tools/tests/test_handle_openai_error.py index e902c349de1..1dfe46442b9 100644 --- a/src/promptflow-tools/tests/test_handle_openai_error.py +++ b/src/promptflow-tools/tests/test_handle_openai_error.py @@ -1,5 +1,6 @@ import httpx import pytest +from unittest.mock import patch from jinja2.exceptions import TemplateSyntaxError from openai import ( APIConnectionError, @@ -17,6 +18,7 @@ from pytest_mock import MockerFixture from promptflow.exceptions import UserErrorException +from tests.utils import Deployment @pytest.mark.usefixtures("use_secrets_config_file") @@ -313,3 +315,21 @@ def test_authentication_fail_for_aoai_meid_token_connection(self, azure_open_ai_ chat(azure_open_ai_connection_meid, prompt=f"user:\n{prompt_template}", deployment_name="gpt-35-turbo") assert raw_message in exc_info.value.message assert exc_info.value.error_codes == error_codes.split("/") + + def test_aoai_with_vision_model_extra_fields_error(self, azure_open_ai_connection): + with ( + patch('promptflow.tools.common.get_workspace_triad') as mock_get, + patch('promptflow.tools.common.list_deployment_connections') as mock_list, + pytest.raises(LLMError) as exc_info + ): + mock_get.return_value = ("sub", "rg", "ws") + mock_list.return_value = { + Deployment("gpt-4v", "model1", "vision-preview"), + Deployment("deployment2", "model2", "version2") + } + + chat(connection=azure_open_ai_connection, prompt="user:\nhello", deployment_name="gpt-4v", + response_format={"type": "text"}) + + assert "extra fields not permitted" in exc_info.value.message + assert "Please kindly avoid using vision model in LLM tool" in exc_info.value.message diff --git a/src/promptflow-tools/tests/utils.py b/src/promptflow-tools/tests/utils.py index 21cd90232ef..ce9dc7fd2b3 100644 --- a/src/promptflow-tools/tests/utils.py +++ b/src/promptflow-tools/tests/utils.py @@ -11,6 +11,29 @@ def __getattr__(self, item): return super().__getattribute__(item) +class Deployment: + def __init__(self, name, model_name, version): + self.name = name + self.properties = Properties(model_name, version) + + +class CustomException(Exception): + def __init__(self, message, status_code): + super().__init__(message) + self.status_code = status_code + + +class Model: + def __init__(self, name, version): + self.name = name + self.version = version + + +class Properties: + def __init__(self, name, version): + self.model = Model(name, version) + + def is_json_serializable(data, function_name): try: json.dumps(data) From 163d53b126aea0e97300e76e99d484f9579d907c Mon Sep 17 00:00:00 2001 From: Bobby O Date: Mon, 11 Mar 2024 19:22:57 -0700 Subject: [PATCH 017/204] Fix docs cli example to give the promised run details table output (#2298) # Description Existing docs give wrong command line at this url; user expects to get tabular output, but command shown gives json output: https://microsoft.github.io/promptflow/how-to-guides/manage-runs.html#show-run-metrics ISSUE: https://github.com/microsoft/promptflow/issues/2299 The TEST PLAN: updated md file renders in vscode, copy & paste of corrected command line works when a real run name is used. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [x] **CHANGELOG is updated for new features, bug fixes or other significant changes.** (N/A) - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [x] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x ] Pull request includes test coverage for the included changes. (N/A) Co-authored-by: BobbyO --- docs/how-to-guides/manage-runs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/how-to-guides/manage-runs.md b/docs/how-to-guides/manage-runs.md index bf8a495cea0..50b01d26b62 100644 --- a/docs/how-to-guides/manage-runs.md +++ b/docs/how-to-guides/manage-runs.md @@ -154,7 +154,7 @@ print(run) Get run details with TABLE format. ```bash -pf run show --name +pf run show-details --name ``` ![img](../media/how-to-guides/run_show_details.png) From 1853c6e652d411960a2c45054f3509e56576241e Mon Sep 17 00:00:00 2001 From: Philip Gao Date: Tue, 12 Mar 2024 10:27:14 +0800 Subject: [PATCH 018/204] Remove flow exectue as async function from changelog (#2290) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [x] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- src/promptflow/CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/promptflow/CHANGELOG.md b/src/promptflow/CHANGELOG.md index 8aa946ad81f..a9774635f75 100644 --- a/src/promptflow/CHANGELOG.md +++ b/src/promptflow/CHANGELOG.md @@ -10,7 +10,6 @@ - [SDK/CLI][azure] Create a run with `resume_from`. - CLI: Support `pfazure run create --resume-from ` to create a run resume from another run. - SDK: Support `pf.run(resume_from=)` to create a run resume from another run. -- [SDK] Support flow exectue as async function: `load_flow(, is_async_call=True)` will return an async callable flow object. - [SDK/CLI] Support `AzureOpenAIConnection.from_env` and `OpenAIConnection.from_env`. Reach more details [here](https://microsoft.github.io/promptflow/how-to-guides/manage-connections.html#load-from-environment-variables). From 45afc50f3fb35c33939ea5ded31db70e2c7e20b4 Mon Sep 17 00:00:00 2001 From: Philip Gao Date: Tue, 12 Mar 2024 12:32:55 +0800 Subject: [PATCH 019/204] Fix recording and remove None fields when create recording hash. (#2302) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .../sdk_cli_test/e2etests/test_experiment.py | 3 +- .../recording_utilities/record_storage.py | 6 +- .../node_recordings/node_cache.shelve.bak | 137 +++++++++--------- .../node_recordings/node_cache.shelve.dat | Bin 377311 -> 353715 bytes .../node_recordings/node_cache.shelve.dir | 137 +++++++++--------- 5 files changed, 141 insertions(+), 142 deletions(-) diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_experiment.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_experiment.py index 6af218f14da..1cdfab7b211 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_experiment.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_experiment.py @@ -204,6 +204,7 @@ def test_cancel_experiment(self): exp = client._experiments.get(exp.name) assert exp.status == ExperimentStatus.TERMINATED + @pytest.mark.skip("This test is not working currently") @pytest.mark.usefixtures("use_secrets_config_file", "recording_injection", "setup_local_connection") def test_flow_test_with_experiment(self, monkeypatch): # set queue size to 1 to make collection faster @@ -252,7 +253,7 @@ def _assert_result(result): time.sleep(10) # TODO fix this line_runs = client._traces.list_line_runs(session_id=session) if len(line_runs) > 0: - assert len(line_runs) == 1 + assert len(line_runs) > 1 line_run = line_runs[0] assert len(line_run.evaluations) == 1, "line run evaluation not exists!" assert "eval_classification_accuracy" == list(line_run.evaluations.values())[0].display_name diff --git a/src/promptflow/tests/sdk_cli_test/recording_utilities/record_storage.py b/src/promptflow/tests/sdk_cli_test/recording_utilities/record_storage.py index b9918895bc5..5b890a6c75b 100644 --- a/src/promptflow/tests/sdk_cli_test/recording_utilities/record_storage.py +++ b/src/promptflow/tests/sdk_cli_test/recording_utilities/record_storage.py @@ -191,7 +191,11 @@ def _recursive_create_hashable_args(self, item): if isinstance(item, list): return [self._recursive_create_hashable_args(i) for i in item] if isinstance(item, dict): - return {k: self._recursive_create_hashable_args(v) for k, v in item.items() if k != "extra_headers"} + return { + k: self._recursive_create_hashable_args(v) + for k, v in item.items() + if k != "extra_headers" and v is not None + } elif "module: promptflow.connections" in str(item) or "object at" in str(item): return [] else: diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak index f650abfb485..47b0198f33e 100644 --- a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak +++ b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak @@ -1,70 +1,67 @@ -'b9bcb73bbe85960e4f492c6b60fd2584de421f91', (0, 325) -'71d8e363eeac4e3334679f505225acd75ef5607b', (512, 414) -'0304f9ccf7ab8521173b43b526b26412208148b1', (1024, 509) -'ba311ed9f1668eddef69a4395363f18a0cfa4c93', (1536, 1999) -'eea8e9626a2ad3706637b8c470691f2a73917e0c', (3584, 531) -'443af205da3a77283a66ad8a732dfa8011277fea', (241664, 3297) -'70f4fea54805e642e98208d6704425432e00d46d', (7168, 3051) -'7b1682aa00779120720cca4dcda260ac1a85f321', (10240, 4390) -'4c5e8947686d0343cb3973a6facfb7f09c0fd7da', (14848, 4423) -'6f6de81c5e6b03f94350942c15269c35df1a9a1a', (19456, 5534) -'9e88483455fe1fb12e1320051e75859c1262436c', (25088, 4985) -'00b750ca7baf0a10c32a6b43f8b485d6ebb1c7a8', (30208, 5989) -'ead9751f11bc2db068f915f8cd6a798e5d417ee1', (36352, 2224) -'79b019d7c272dbdfc8264e8e42b2c88d7aa7c951', (38912, 2189) -'90e7b637f88d5ff8a781be0ca4c1682885c17e4a', (41472, 522) -'029f34531afb09812d41896dda6761ff0584f5e6', (42496, 1844) -'7f982806de9ef2a389ca5838d2d667fd4521d16f', (44544, 2273) -'30981d4593443ec89b06980ffb0d3bf9d6be5a71', (47104, 4509) -'e6bf5b88c4e7038d787b98bd231e8f8dee6f4f8f', (51712, 4322) -'f8b0492c08bbc03f4357fc71b0fe157cee7be8ee', (56320, 4620) -'1b8b6de280cc7f431ba77ad0f51e113055c3db32', (61440, 1986) -'a3273c3e6d4e0ec25968bb223e962ed33f482cdc', (63488, 518) -'e3922dafc105db482d08f91cff6034364235b78d', (64512, 4889) -'d8648fa6810522856487f6a796979990122cc55a', (69632, 4972) -'aadb0707e9a62b00df9d0d3fecb709ece90a8b67', (74752, 2261) -'177466a3662dea3aff35979fadea8f5c61e022c0', (125440, 4440) -'922a9871fcc709f08716edb8657b05b59786e92f', (93184, 4761) -'9ccfc240a61a0da1c6f063060190ebcb680b5514', (98304, 5628) -'23e8ff65189afc6837718250210e2b61022a9ca1', (103936, 4803) -'fe6a70524262be6b62d15dd7a5f935a0b4d823ea', (109056, 5698) -'b907c4c2ac2fcbde1dfe7d150923f03b4795ed4f', (115200, 4899) -'6e0ae8caa23ee169eb3c14aa13370a686b574819', (120320, 4737) -'6cad16355c4e541c6639770217ca6b94361720d5', (131072, 5643) -'b6b4b6762e05f7fea466b890189b306422ab3fbc', (137216, 46679) -'fa9d17f9390125ded524b1fc1c370f4ef5f34319', (184320, 4812) -'2c2c8e9b4662215a00c7119e987a6b0049829e2b', (189440, 503) -'6f58a5915089ae8f209ae96e3c3cb0ce3e6fb96c', (189952, 2353) -'f56d5514d99ebe339704d813fff58eb2f64e0ff1', (192512, 4143) -'5c89863ea5416b9056f7af7b702059fa1d37827f', (197120, 4144) -'05b0c4092bd0a64d6f30e4a3b42ab4053598d307', (201728, 1995) -'a2df0b2cd19b719ea21d216c2b8a13d7e4ed9203', (203776, 527) -'1e546f4637a42160e26f08f9c68b8f72c4b836bf', (204800, 2707) -'effe6533cbd9056f3a45712d9ad324b892bfed6a', (207872, 4762) -'c8fcd047770466d76018d8b9656c18b7a87a9dcf', (212992, 2255) -'0ad069199b869f02d23f0f5e3ad781c57b3afe27', (215552, 3954) -'f3b2fdfc3429018bbbef0dccaf4616605671b61b', (219648, 4372) -'70b674bf6702b200e03e3c9b6c49b6513c7eb5bf', (224256, 4370) -'7f5248f04d24d49778e80146e5b87f918f41f744', (228864, 4372) -'fa531c24341e01ea50402a237340baec65033746', (344576, 3147) -'440fa7fdb7289a958a6bad20052cf81bfbb9e150', (236544, 4969) -'fb60e625b19277eeda7d3175f2bd106846a0829f', (245248, 5325) -'d3dc625076f3916b91506e909bfe190bbc01cd73', (250880, 4829) -'bbd373563d35f7ad055135a1a0265d92e153e1dd', (256000, 2242) -'823f74a631fada9a31c09e15f4a7566104b70c43', (258560, 4144) -'23d2b814006b39a4f7992fc76f45663a05161613', (263168, 4596) -'10412ef15a46d3f937780619b4103316cc2e4c84', (267776, 1819) -'f0218a466bb8dba6b2e6ad27670c8538f5dd4d98', (269824, 279) -'0e2cdc51dc23e28f2c4aa8d4a64df1bc1738460c', (270336, 2297) -'9bc1fe3f9122533d6f301abc4470c1f712e29315', (272896, 2392) -'d6b2c501a077be1a7c39d866a4e5e62cebb2fdce', (275456, 56861) -'a20cbeb4142790ca04301e42386584e961c52487', (332800, 7798) -'8cf128af83ea2aaf4a09890690ab16f3bb347bb3', (340992, 309) -'343332ff6b96d3b1baac23c4e8394a6a965f84b1', (341504, 327) -'0c30184347fb989cca6598e3d2263494a649a2ab', (342016, 2316) -'24ada46c87d46cae0dc053e55e1b39833f53e977', (348160, 5161) -'fa3fc224081b85079fc21890b809c93b06ee892d', (353792, 4412) -'278500fd49f73d54f6a87bb1438e346e7d0fd47e', (358400, 4571) -'29a5d2b7c12f08dacef89c111f6fe53833bc2223', (363008, 4537) -'3441389fe22e5392774230817f328e3ec3a30f72', (367616, 4568) -'d991435bfd4971dfb1f0fdefd5f534bcc73e74ff', (372224, 5087) +'aadb0707e9a62b00df9d0d3fecb709ece90a8b67', (0, 2261) +'cd53657c05cd3a1fb97f187747689f084fbfe439', (2560, 4375) +'d775a380981c5ff7345b645856ffb4974b14dcf2', (7168, 4777) +'3a5aa3d2a6c43615554064dc175f00bc8917c73e', (12288, 4785) +'0304f9ccf7ab8521173b43b526b26412208148b1', (17408, 509) +'db5797df473300683a876a0b5e9cdd7083c3d1b4', (17920, 1994) +'eea8e9626a2ad3706637b8c470691f2a73917e0c', (19968, 538) +'48630647ce1d569a771821ebf38fac16b75a8bae', (20992, 2276) +'19ece57bbaa2b310047d724e0a76bfe1198dd0c5', (23552, 4315) +'70f4fea54805e642e98208d6704425432e00d46d', (28160, 3033) +'1dcda5e5693889105ed93be129e5689a57883036', (31232, 5281) +'79b019d7c272dbdfc8264e8e42b2c88d7aa7c951', (36864, 2189) +'ce4065d7d6d8f1abab486b7fd9ba418c584ae930', (39424, 54804) +'d6f326cdd6b592d383675a75cd607ba8d979d3de', (94720, 4750) +'ead9751f11bc2db068f915f8cd6a798e5d417ee1', (99840, 2224) +'90e7b637f88d5ff8a781be0ca4c1682885c17e4a', (102400, 522) +'040867c7c8455768a7c84cb908f74732c88696ff', (103424, 5901) +'55238d5bfc1b512c174ce8f92ac5a34c143afbd0', (109568, 2325) +'8e7a226b9ac1566c1073d892a04883a9813a8ee6', (112128, 7262) +'ebbc96011faea150acbc3a5004a7a55834711f7a', (119808, 4558) +'fe04f6a9237fc60af117b2b3fd79eabae61f1809', (124416, 4429) +'3a8481f91d548f426fca10b789f511b8bb0c286d', (129024, 4368) +'2e01fc102cc9346c33caa7945ede7dba3622d712', (133632, 1777) +'2c2c8e9b4662215a00c7119e987a6b0049829e2b', (135680, 503) +'b60cd95d2c2cb608125a8d6cadfc830790eb4140', (136192, 4809) +'06cb40fa425bb0eacfda21d542144882ab0d4c2b', (141312, 4910) +'1d23ee6f7ab6e4bb1bbf338af00f70c9bf9d4c04', (146432, 2286) +'1419ad1005708e45b5be5265dfb86294d5568687', (148992, 1991) +'a3273c3e6d4e0ec25968bb223e962ed33f482cdc', (151040, 535) +'0c80b0d68f36a163fa223aa4cab0a0fb0094546c', (152064, 4230) +'f7079b0b769d766a5e82a3974fb5f681df26c67c', (156672, 4069) +'3936d688d89e10af38f3fb96212d4b232f32cdfd', (160768, 2042) +'a2df0b2cd19b719ea21d216c2b8a13d7e4ed9203', (162816, 586) +'136410920f9a71d2cc41ed4ac2c6a43ac7e80770', (163840, 4764) +'62ba454de5828dd04f058cd71cf0bd243f427bf2', (168960, 2573) +'a14dc485f384620f455bebfba257f07e54e87011', (172032, 4629) +'c8fcd047770466d76018d8b9656c18b7a87a9dcf', (177152, 2255) +'d32004842e1a6752e3f7b08e532e46290ef35a39', (179712, 10747) +'8ee88079e0887b5ace44e682d314963d16863940', (190464, 3912) +'03b04c445e78777c9e7bc56e57854baa9a4a509f', (194560, 4303) +'683f3abbccfab892e1013d2314d6837c0d51c724', (199168, 4305) +'d41772e8a1ce4ab82a1aabb635a7fd82d9317db6', (203776, 4328) +'a099a90626930c0d6c988957b1baccd5689fa1a6', (208384, 2861) +'2c89af11794bf4443069cd4745e9c56f293555af', (211968, 5309) +'024082b6c196500a2914e177a4f02af1d1e17b27', (217600, 4315) +'5ccf7a8b10f20168e31475f1765159bd5e17d579', (222208, 2282) +'306986e1053671de518922e747d044b4c9b8ca2a', (224768, 4077) +'ab3c789da615a90a68f183597d9ae96cc0317998', (228864, 4552) +'5c2ef83820e13a27afdff39c0f3a365934e3684b', (233472, 1752) +'f0218a466bb8dba6b2e6ad27670c8538f5dd4d98', (235520, 279) +'e1191443c40984b6af07b4ef0c4bbb34a033adad', (236032, 2283) +'b22eddaacb91c88e520e42c1ad66b35bb8d17618', (238592, 2380) +'f786a0d820131f72dc802d60c1a778e2e4b7953a', (241152, 57401) +'0ed5617f6e2ea3093542b8de2497e9283581253b', (299008, 7719) +'8cf128af83ea2aaf4a09890690ab16f3bb347bb3', (307200, 309) +'343332ff6b96d3b1baac23c4e8394a6a965f84b1', (307712, 327) +'740b85e35ddecf84a6aeaec23e4dbce955be2ab6', (308224, 2257) +'0a120d452e2e316923fa975fc716539b94faf5be', (310784, 4876) +'66f0bce1c572bcd7a5ea1973af02e6508c2c006d', (315904, 1937) +'8304ac0af7a3e04c1ef9d9e34dba81abfe3ba211', (327168, 5243) +'42744df4b6b58816c404897aa06957a8e4554c86', (322560, 4493) +'66b62b83dbef38d5ad021acbe15d4e3a93cd21f6', (332800, 5395) +'52b9e8907f873d01597eedf889d9f8d56b1f7fac', (338432, 5392) +'a30804ecfecf0d4f43ce012ce3c9520ee7255901', (344064, 4069) +'b9bcb73bbe85960e4f492c6b60fd2584de421f91', (348160, 325) +'71d8e363eeac4e3334679f505225acd75ef5607b', (348672, 414) +'e86cb445b6fd5c7ac664953d9ff006a4e9285d22', (349184, 4531) diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dat b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dat index 8d027a3480dc7992bc47043b80197f1eee61f3d8..82a83019b23f5baf4d107b3bcf06f900499dbcc7 100644 GIT binary patch literal 353715 zcmeF41)Lkz_Q#9U;O-EL1!%VhEiGE1ZcJOc6v~p_&2ExrlbxHS?E(W8thg0-cXxMp zeaOR>3T_X#|L^=pGIz)%?0fJ3|3BG&;O3lj&pA6Y_nXPwnYs7QUdA%J#A=u8(xpo( z+gdD`OIha9vD&WCn-YbFWL;5Z%w=j5(36EiYkpwQo-=38tZ7L#s9ZkRRH$jlwe(D6 zdld6M8+*>G&&}#FGo=!lL_Xi6A(t(vTqcuHJ@SP_CKJbJGSyV*k#9{jq~e(#iN;hR zmCN=VutQUQx}krvSF&HyT$bBX7gx=BbGd2e^0wMk%r=-S)NbT$Rv|H~P$z#OkuB6U zsay*;bj4!r@^Hx&3$iO+YhPZWOP9z$@~;+q6rJMiQFMs6N6`;vpAwyD?^Sf7>{WE4 zy;spa?Y;U_f3<7Zu8|1-=YR6iwd*7mZ%9N(HbztVXiF-ePi32FFOx4?;UCgu^O<-d z5iR7RduE$6seCdL=I`bXs~7t|xneY~6487z*V>AWijH*=z;Vc-B9$E&J*b!U5B-rr z$kT>Dl*#3$%in0qsj$DZd(}VW?o}kz)4#tH3-LDWL&aTi{Ux(2SNa^DlcQhhpt#Yc zZKdRz<&%G@RCp%WXJV>38*NEMi>=-^>4Lqj!EG*O)VI8K@y14lGfOn45@r!!%EoQ^$H(Lv;&LL`0sg#c5<-#S@vx$U;2R z78w<9jb|fcin9_eI6kU5GBz%R0bWoE@HN+idH0+RD<*2A{&`hRMQh}&{Bm1?LQNl zoJ|$bOrw#hG1ua%XhXD)-JV{fyF8Tp92uRND`py_nbdUo{!8PtA<)*TRx~blBARPz zN+>iii3pxE=pZ}qYjT$jM&}c1Myer^ulZBk^XI;mvL_Q%YDT=FEt;2IZUHBMEjK-T)0w>#Kya2^_Sa1SJCgLgxw(NNd;5WrvQkga!r6_(# zfk!IwPdHYSa#1vPvQfonB5gL0{fpvE3QptAJi#h47vc@_O-!JD5+E7vH6xWz736#R z&;=9lJXW`zkGFnJdI*Rb${~Y*?9#iJ;lx|$j&Rs&MU}3*QoOfvUEBPlOl4FTJ8!m zGLcsvZ3E3!iwRy#;!348q2jp0Ntmk*-~Hvj{Kvabg2M zC|-c9Q!4@Hy0sB}w8UrC6>`%P*}S>l*e*-?Zjh}%&D_9ugKWdvHQ|oS_0~*+*XlJ5 z*t9~z+(^4GwsAvFHZD~oSI+sG2J~52;C`ALiN0{WP)ZarH`#WMxv6Dt7UQ*FU0q|U zp-@+6MlEymSnbmItEon_TkX~mBwYjY^cc`P+h=s^USp@UO_@1rr~b8jPU@RY&l*>p zKB{SaZ*vR#sxX<8?wz^iG;^yzwN>ICF}KFnY-5?RSP~nsZLD?`{N1Kh7WcU7u*3OW z*4&O4b9pqKxjm0iD%+TtWp*Fkg*%YRHKU(dpErAq<90X~vnFn5Ry#Cxj&I-)jkPa_ zBW6!*TQAG(&28%w!lT} zJSuH$cQ4($u~87#$Xjc23CzuDMlTe%+oZ3E%lDe-NL(SKABtY2eJ_{YMf+ZEcid}2 zHx=IKDmLcOU6t!;=Y|YIT9a*gbQLoal1()5z6>@*{*;>@J5ce~sk0Z{0^UPvN;O1h z;4XsP<3T^xxo>Ru5}Z9KbC1^D4Y@mkE_NKZDOz~j!;4qGTU6}Iv){oDb?#i(M91Z# zO+|&xSGWqXdmVBc6!gqUHF~$YWcR#HZNhgBrxA2dB&L)YJLLT78nZ9D8*-C9jyt@# z36U+BJJ=NCMzyBOxKwQK9at#Xs3 zkU->auqewd=yi>C4qMAzMP>E0-^33VCx6%N%5P0&xmRn1d~Ih<&=S{SuAl z(E0rK<#E?frEqTC)Bcvmn-b=*B9BKtk!h++##M_s+%iYRl0)YweNH3o^H@GHs~FFi zqbzfD&|^%Ie_=)n9OEo(j(_iQS(NOKz8}Np{Bp*vl}Dr0i$hJ~8pc z*=SB2_4ZR=B$8!%!ISJq4fSb2ZceUUO^yrCq~1x?+?!2hcY|@TvdsyFV~Vz(GLGk@ zqI96m+Q2!-i?3rnZb-Uk<;mh7G55h4W~ycG%QMV=G5)NSPTlTL#kA3J5(QFQS_`gq z|FP4SVvoL%!#zpYS~vE-rP#g)*vBOvOHNDfpRB`isW;399v9X()~pHqSvNVlOA>ITVo5NO4mQX1ViIkg37T7qNi=XaXwDUrXw%l9*(?@|ai>*P zELodeCfO}HF*!N8CH5h2m<8^`A8s2JYgfho=s$Mm4BkO1YlQQE*1!LU`#-GC^+pNEEwoCurbEZv;KBY`L$JK`n{YI0fre8~y62@ex^GkD1;b!T; z$XJ|+6WybOT5%h8P(!>ifoGH5qi8++{A9Z0PHzsJ!ePSDVRAwqCkg9u^9i@6OE-b| z11GmheK(A1B9r7t%ic2Q?k9c`Gnr_8AOkkme!MX=QQs=JSmnNwm(sq;)z)49dVQ{t z47=g<8Lsu@FX9yF{BGh21ClvEN;Be_B9(5q5i5J&)-BqCCmXUga<><^w7T(Fbn71N zhNHm`=Xi+h91#(nV?uH0ux`A$)=dsfH+!F}Zb3qR`*3>w;}%R-8A&TQ&fEh4UHU5B z24mmx2S(s_GoK{JqfL0&k(d>i(;FIcvN2|0)P2a@nu)j7H0N^7xE#T`ttYPJRHA3R zwH42q?VsV@Q;oZ#rY7Ht`_xTsH8>V{O5^{-1My6jb@s&!uDla+#Bebo+tZqBY>4CV z;hr%r--Rk<=aIy7*Gz`Dx^d`nG1)ASGBWkW7Wa{cN;TuTQpQb@=amMYae-FnX-Ba! zm8-`?Ohmvcm-P8)Lp&QzWYf7eTny!KYRBUqXeSE3wmxWb|H@+N|EiIl0$~ayz*47F_mw~$!{zwvpC3fu$w_V61;xHm#a0`TEugC z9*@MVh71l4Zm~K?#32^o&81r#@x(o zCKs1`vGSBi{<0jROe%{nq}bvOxcbLFH})vCj(gn}pMiV4@%jv)&q`)oOYvC{1OITO z@UTxVxtLTH-Bc4(~mF?>-ay6{k+!aoEJM111$_22dO~Y)o`wG24iz%#-l+ zDB)aTI}f;QaBxnlZ;K8m_0ch7hS;~Pg9mjc`d7)Q})|$hkEs|H-3NNbw?#tl((QR;`nFlNb zbh`y`>mA=F)$(Yr1wtcadjxa0EOWbCfVP8`x?wXp6L1lDj%izok7nZheb}KUL0Bi9r;H0yQUHi ziPQ{!q0rySWznO+W7+1SJOYW<<7qd)|EU(yyF1+j@wP9_X34WP*(&t?^X!_-uYqG@ zrvR?FFfS-P7MD|x{q?|A6wb7grYVtVtdBQLw-0aLdpn{br?6%6FxR;Xw_7UW63u4jOwN$B(8v9@$@-Ji13fpPlJa`l3ry0A^-Z)#w( zXam}jVK`Fm&-i?|0ye2nW`=(3eNexHxgH1nloOU=;)2sjz>Y z13#(%tM6?Ej@^Iw?T#$IjnWvn^m1-<*gD(9zKLR=Ozc}IH66a=fis17mqMO}R=LaJ z+~Tl*6!EAYXBqF#gFNfc0JVHW5^p*n7v4}n_dhT9Z}38jD%h_k$ls6~5sh)x=-zDk z2k(A34{_bsfZTf@-j^lp-s_!b%D=PNMgCX1_d0sEeXo`8CjP76dhOk^WADB*#*WDK z8aJqRQo41Ad@eDvarE%?xc{bGuX01W>g67pb^nj||Gw?K|JQl{4}I~@`+v^kXZI#V=lwtJ zrfTQ?zs~!Ao%jEoM__UT-}jKqz4g@%_Rjl%e|&)Pzcz03fARib@0x%2_njhrYC8DF zlkfhY_u^CMeZYT_cQF6G?gJh;y6;}Y`wmGB?UU*^dZ%LVarr%GjUO>!)PL10n4R|l z{{!F5d%W{L;D6;ikF|FqvO+4(c#4`M&C!r#Agr`NX89`2hmi!PhH%SH6<4;;IeOuO6WZq-w(!KG+UG(zyM6BU?enf`pL<37+)LW$ z-VgtUC!W+k=cI*q&0BcV(Tk41X~{kFKRWH0#b@5NWcJ}s)lpY2KJ|(vmz}Wqmc#hB zu9Vn$C$`VMoqz6JCZs$EY42{Idu{u?OT{?vi1xV`J1^Ko+vi;O;oS=s-+Ea4ockA@ zcEh48&tEd{-uAgCFS+uv_Bp4w&p~;A``lw5x>DZt*}?bz(4QD59n${V0N-V%nag5; z?{dBYzRUXu_^zN0@LjRC8(_h<``_=x+gUQW25&0L<7bSP&rdhIV%TjYmR!Cx>~PuzS8^;tb2E!2s|CpVQjo zmsk1Y_~liDqiR+gJ?jr+fPBM!WH7Y-9D0r57@##V2IwCi^&?|^Fd!vWsKc}qd2<~L z<9@u6Kd!?dk^S0AgT75T0bP)JjQIDVh%kp(_n6?jr!SYnz{9#+A4e0 z&o{UczZ)$+>6#rQEAZ1Aj=%=8?-XSGKU5Rt?U^Xv@)zTXk~bC(8>tQ92raQ zIX~%h8l??d8Eu(kf*xZ7gI2~_=J=q`1R1n4Fp1sYE0)|o*(2E#0~-v(oS2mT)Ca9h z8uhGP8kafsP4*93*}LqZl__C^R%-o&R`v;eWxO#eVS`qt;tR5`W$wo>$h5FQEBlY` zQ|1wQ-RMpK_=Nm`(G!YEv~Ju!D)q5s9fqtNfTPl2n2kIttWQ)JveGooY_`l~nIS7F z3|Rph7_0&!rUx4%Q%s_zTY~0nF^T5Q19OTCAUhhlH4b`MRM=t zB+0qztHPOtfZlZSwMIT^8>;o6G(2$9(zVkNFDtF_&M|()dGj#c7y?M1IBXY2_l* zFkK8){(i2^1KNTCxjgM+OjIsouA=>RuKJ&NHec-zXszx|qO-=|%M%WA=f8iWBM|ca z@0|aqb|`wC@(5{Qw6pK|cl13wXIS_@nPH)C-?n0}ed?RWjo7F#nbq%HIt``X{4hJ3g4d^IA6ig7p94`mb~R zfB6X~*TJnd`4Ou+`d$Y4b&mh<9RJ@r{@*uKLg)DZ&hh`U7{ow#{J1;59M3}V(1lYG z<7oz-K6Z}(?;QV+H^~1h$N%FIp*Mj^nfEpVZ}I+fyVSn!bOR=?!Gs%J7$CG$-8oMD z|742J{)N3TnjqhQ?4;=<<1?okLq_(>)y^8*d*Xl74WwS^A?f49%T3*(k0|IIG5)VI zV!S)%aNMraO`qrgZQm4KwcJggv3r#rFE0 zH$6IQydw~D|0nqV=Y|OIzyGO^Bl_pQ?%54%yU4WNf9Jo_8bh*18{gW*YnPX`&zs*q zdrte@o7?B%zf<|1N~AWgyRa2QGo zX<|_|VVyZhGXFC^=1NLgji*8=<;azvxuduS}*7kXLRTZ^IaR-)Mc*WvN?pn0q z2E2p1@S@Y(=VBwzgd_ja1Fx)}**@n^zM6WSZ*8X~7vH<^lsWJlp2^i?DXag(jm93{ z+dgjr_Ca8ndwKiZi^`e2gM@Z)kib?B8i`_jHZc@4BFjM=Uo6NHb&w`b$NbuM<+xly zq*61u4G@V;7=j~mMfXX)#zl*1C7PHTmqtF zWa7u+xlAL{a7u95Uf&l%_Q0n)Bx$xqXI!xO)VsN#VE3B#d8aI1a21{$bJH}YG{t|! zhGcR@*@DtBoS0}R%4G(OgAT+qIeZRn!@EGKhP;FMhj+|ga?~~cls@3>Z$c^E$ZVr5 z1}EuC#tFHZnB98<9_z_sL8x-~&W?^myw|#M&__=CqmCmlO?zhhJo{UE622@rH26l@ zjd2fh%K686z57CbvyalYVGJHXW;M$sS$%GZz4TUT|FQZOR&y)h{bzoA2er0h5jaKJ znKy4@K_(wXD*Vkk=kne0(|nSD$Bo2H%=VR+uk7N(E?jgPc3?J7l{f=oPw<7G&+}pM z#dP>DT5#r)xi`t*kay_u!unY}ea**i+pp5kXB}U7cMimzu)rS(%S-S_wa+`xKBZw3 z?K2AN?PAd-=PbVEqEZ{l9I!}zvSSygs5JbMx7c5j_PKMBrhU$_?Q`a~&po<*&V77i z{}g89ale?2fhLhNTrX^fy_rWvdPSGqbUR-3UpyZh>lh`MeCM#8K=}eEi@o7!QkZY1 zExd47q;O8OQTxo-KIiI>PP@q2WQ;Jl4{z^ZwQ&AT3-4Kgv#9&6_xqf>`0P8DTzzEw zoa^ORYR=J%Za96(-S;9-v{&ywy?XTO)nlg}b{K%O%N?lv={R>gx!&>@fsLJ*!7PE%tq#JZZ>nHP=X|S!I4QVQBUY)MlqzHrGF2g0Ann?9;`CH& zbkWUMEIu2D`Z{};7T_#pmOkg(HXY6l{1w9-|vB2TFL0X5swf0=3hk z?eosz>FQ>jHlq73y5_F+|p2#wP~3}P?_ z!yYHG`0~3K9c;c~(&YbJAa(T3G-|qeT z^@=V$;)v+@VZ*#^x?pcbU}O9nR!$a#=FSIe(z=IVv+$l1c!==>3WTphmG4B06O~NX zl!z|8`?il3-2UPH=PtPdmsfK!BxNhvF6_(I46?tQX97%p&&zFqYYS|*yYJVx&pD-i z4z8QzTvP3zn@c`R4WJ(-*9RxVkIp=C;Uyr-r7Qu_(kjDCWSlD2ZsFJv4xBG=X^R>QCx-nRTJ4c%EW8Nq|@|KgQ6@gB#2=35-cm3@n2Q+rj>z)GA~FY_NY zcxOut+o{Fi9lXcU`4&fo8?paSRU!9(gYSPtv3c(MAAeYetv{Aw>))^cKld$=7gpd~ zAklrX&YSZGreWSMtks1zk9$lUG#0-qiDvo9$L4F_csyF25 za17y;MGozU$l>>D@mRq9$LCxa4B8?CN1erv?Yb$6DCVImB$|pDSthMvdNwyRlW4>$ zo%v!b7F_c!rZh3tf|a16rN!1{6!R7#8JB!7z0E$jErSR65kDiu3PBp>wNcxzv1Q7!D`L*m9eFn{V$Q zOIc$MW23x1!%HONrGoZsd&B^R^yzepwvukDTKRAJZa8Ny7 zgl1Z|z;WR9V028+ns9M229?;PNuRt^Jfq@<*fl zPAt}A@o^b9j6}VAMMo7gT$yp2-7EwDQL^o3%?})wkcse8-J>Jox#(0ZQHiU`2?_aL zVDZWB(b{674a<;D%@wiSd=jq((HqLBR6IK~k&5oah#|>hwyg+9$utILCzE(J$zK?b z>_ff9J?*u1?fHpY<5({+3cm5R_(#95-DNpUXODRFcZy;SS){ii%169Sz~a7mLBwHt z;7E54EZG)ZO=A^5e7ACqMKr7bKx2_b4Cuy1u*w5`uH6X2cv7*KN8}W8GA!I4GvZcq zTd?e+bH>57zjwxwet=xLD(pSZ6z-X)CORGq9^2`hHDU`hb21#x4B~EJn*6EFH5(>}nCAje+kzFU@mYQq&HS<>YYknj{mDIm?#H zLeJh|Y>2mVV7-#=jk~jG9C`1CN4y5-OS=oh&FxXzsx~Zk*cz`-Va>)i?i+eNt+KW& zhU?3o^=L@SEOF6{yhtObe`meBM!Y@*4JW&ln7i9eDW(Jt9(G7h6KG*?hQb#1F!1By z9k2|JFc!(=;32NJi6w{8D)Iy29@AzeV`_R}`A)1L$_%o0UI7b@Vq-ZU+svGrj&o}( zmg&T~QLx}qH-bXZZz z_q7FUH)A!++&}4=_5ahQ(tqTi4Y~gN-+cbRF%G0mBgR_?T=f-2r znPzi}jNik##TnbTd)Nw+i<+}reR{9~$Dx5f;4%fLydinD(M%x$2q3Dq8LS=WTKY(jAsOEVTe1?0Av%(KEAecMknyIW?D zGIR9RU|P?0@#mZ?bo{*xuFdM4g^fIUWfoSTYAD z5*o2&WE^j;xOW5V8gSWRP8^5%SM`ZXC-J)|Q~S{+Z%!UpOoF_3WzDJf?3eb0vik-nl-4$!+)z!MMqSyb9}looo0V$7GlIcFE2p?CecC8qJ28f^~ zpI~P{QE%##4D;ktQ=ej)r?OENbg-#UlcqkMO?`%Cp2-|%xlMhxWu8OJxzf~_B(KYG z^E|zs&$l=30=DyohIvuBcD}e$J6~d%m-^cIGRwR?(9Tx`+WE>-J6{!S=c_IAnppCR z`AMJCwOTu0XPMUrJ#GlJ^Np5yQ_$yTubpoxwezipd0W+XzP(~Q-{H3No%W%;OK<19 z4fCE-JKt-W_pwFp?_fJWAnp7h+xa2Oe3&^NaohP(%Y2NM$EBU|%&p6WN#+xJLqBP6 z-BWDnrw#L&at-}#rG|daGN1P~^b3~xVxXa43N-Y~rG|bb*wC+9=4-L!OY@UHr`NTH z{)=V45%hR7(9myL=G#G^zj_V*PN|{aHO%*_HuU=y8~Ovcq1)|4`Jvv>3k`Eosi7BJ z<`Oo^M;&bFkENkMVMBjvnV&Jo=WauPVVPgj@|867GH7UAVw+#Q~_27(DE+e=6)N*uQzKrt<;_RH#)rxd*e!x{%XoiZQtcHSGNt`PDlB<=) z!TvES-16TkCn zT?m$1kC~8ieG2@+R~xWuL$_)p3ifFN9lMR8YW%28#KOJVR3uygsLdc4Dk>^>Lc0u5 zo5NlKC)Ex0mf8Yk2`aTEja$*^ztUG*!=%%twt>k5OvRuD7*pHAW~uE^#?nlX)?>D3 zjP!r`@4lY9Vgcli|X_JCliLCl1dgDKeH z4Pli`&MW6EwI_uLulA!E+`KO0PO2IPtIpqWv2dqGh$Q@tgkY#qqL$%rH0+i58-sdF zjYa9>Zyb%|Y1H_e08@a!yLR|j#6E}~)Y0wO{Kgz27)rnK36W;;i;P4k0nN3v>N$0Nt7DF|PhsR$6 znx&fP3nH2+bcnyCx`4s-r5G*yFnUFF=!RD`pRav(xMk_e6wh5qfvwJK$rsX9RyPezJs9!;j>_~)FCKi zX(mYPF^4k72j6T4%n1#c%K+`5lH|%7lNVA6SWM0=fhqJzza}s zsS8p10KACCi)qvVyac8IfS1Bl0`M|uK>#m@%~DsOjHQ_%t;bx+7$1OFG2rUZfNL0_ z0eCG#t_uyhUP4>|ZxA;Rz#E|%>L!#`0lZn9Dgk(lI5+^_Dl(huHb^>vx5HwnJH*2S z@J?u!x{JP`R}2_r=h-0Jpx@P z?@_UEcODZ-$a@@up`H-640%t&UWvS?P;aTHQToVxhQ?=U)W~}drT}@*!&D;g1!zI? zUWCn3FQJU3nINslyv!IMd9N_w)zE;~7@(2&Iz#>v8uEsOxa7SlZXS7WK{M3bD65k9 zS8=LD-aF#pkoT_0Y^wJl>Eyi+i=jRc50AWdXqNhrzQAN5g$|LoNb-Ta#qufSErDRE zkC+K5Kc--l_X(>$b*nz35aA8w=y*H~QJ=%2v-gEqxI#rI{eD$Nb6|AA7$s;P=pg zF1T|OxaM05CQB`ivi#pzMnYWnmK8UTz2%@8YI&4Z*;_%JDzUesI5_Ne6`4&Hfuysy z5-f&VSv)-UR)J=zRp|>*R-@1%_EwjCU~dii6!zAHfNnE0A?4Z>Z1&b+)w*ugdKB!= z?x2xseW*Hk8;FH_v!O@=-bN4%wXvvWz}p1&O5kmZdP{AF(g$9Y#?5Ke!0QH60K6?= zDuK5pv>9pE2S_@2JHle9e&XSQ*B_dtcA_sR89<>!;0=^~0B>jc z6!3O|fNnE0A?0oqZ18qx)gEruAPV+P_Zl@An$F!2v2bUGiX`0a3BgdqL@mSJaM&wx zHv;vR8i~@!os7S*)My$t?#93r;BG8TCGN&S3vxFeHcL%F8A~%kT94U_F+T1L222bM zn8W~$yU7gMJ2Yg9gt*+vt?m+c`#>|)RFqY@+gF?_akrm1INVJWnN77nB%QlDSPXT5 zczE2!p;@Y)zJR2GLWj6(lziYWA)mrs69jaZnF%SA6m0HNtV+98(~340~-6zVONN9iN4Kx2_cjl3B!1<0ETQ;ED;(1PT(!Dgug zQO43tkk(@kVvLWxgBf6j1{}fwjl4q{GCMS6j)b`6%@sHAj5iOOp$cL7WR@-Bp_MBYWvg5+Hco24#68A~%kT93JuF+TDxW5DI10aq|UBkxLvTooE} zwS>6jT_bKDdDlWS)O9GUl6Sp0RU+>Oad61HQDipNO^|f*ZidBBw}^*F-mTCqbsK$w z$?X(6MBW{e59Hk`pF-YU5YS0xCZxQFf=%ANth&#wx}Sn`W3L`B%r>eAVAA1xP%PY| zheQ(i9)@73M?@_H-=nZsg6}cZTk3I?KKP!X@ktsr_@06(0N>LvmEd~@S`fZxVYAe8 zC}U|RNb51rGsXws3k-NMG~gu$Xz;zvkXJ%OUX>6RzSqRfgYR`{hWZQ2s_?xbPL<$$ zQyd)l-V&Kj^)@6OzQ4j^sCUG}gYR8vmU@rAAmx1u9fI!z$p`q_LUuyX)l*mA4Av4`$R0u)9RwQqT;wG|H;vEhA2q$Xiw%9P*YEnN77kB%Qn!U@_E+;^C3k6`G|Y z^aUm>QRonPD@#6*w~BlUd8& zC}U|RNb50MFvf@8mJHY`G+=86Xy|RjkXUHQwi4o^x1G3oC%x^V8LB(Vs_69)r%LG6 zh=YS(Pm$SFy&&o6^@hbzeZ<22}Z;2jQ& zp^gv_54+>&YUWeaJK-0p-vOE40or)UWvOiP;aR-QTn($i^j8Q)VMnbrT};6!c^k! zJZM4g&WFuX7od!#nINslT*w$7cNa0>;?RIg7@%=?DMKy`4Y^!GT<)$AH;=n3p&9Bb zlvTOATAV6zca1nW++8a&o9a49I(OH@VyGL$!{hEoXqLK(zJTOr3LWC^7Rd+hZk12r z?luVMB{LIJ-a*0U?oL+SmB8SWm0y%Kj1 zq25vtqx5n22#t@@sB!lgOabm5hpEKf6VQU(JqeqooHq~Ds>D;{mi=o~W z50AUIpjql|`T~-_Qs@wO??^sy_pW>jcke+!2br0W@&gJsckQhD(5+fX!MVbVsYOtA z@D_`Od$U9&0q-LShWc34GT?mzdnNEbMZKjyL+JzWa~i*(Q3LNwm;&H^1yc#Uub~CO z`vx{k{S9R-%>-#Z=3B=2!26B?--ibLzyJ-r9~tsfXvohJ;)3^!xOw3H3e8Zzp{xqt z@8VPmye=5w=z_PD$ZV>mA?e^P1B;=S6%P-*<)B$=dHRBq6)1EFycH!M!0RfX0$v0H z`p3+Klq*xP!CQq@tGZRIQLx_@7>;rEO05oy&fXeg;SQ}SlCZZH1VgPYY8m#{fxQxY z>!KcSPowm)w?2&<(5SJuAxr`GHiD_d-p0^^>}>*@r8Y$wOEW=QkJ*edKK7yv*gQ0# z8v``>FiB`#ZYqCO6=_e%~Dh83sCl@&>{BrlYC%rntTd-`$Iq< znVFFC017sHaaPs4RSguJyLl5-LN&smqn8j1_oqoDL9ZEtp^~DOK`#Y+CG^s$$Gg)g zeduLqY@ty@FAGxuy&Oy>^je_>(KBJQltLLxGeKI9$uq`>UV#C{(0~~X(9oO7kXfN2 zZ4%<5cc8d==p6*jPzR%|ik>A-mC!px931ox6`4&n8c!A9>GRvqhB9Y-O;0r!{}1+%Z<3EJ^6>iC@? z7VguDA_;ycK`_+GqL#t$6xb`_cPi@f_B2W#ey7oRI*l5BXTTJ|?@X9V_?-nUh~L?; zS?U~=u{0B;^_X)R;KMML5PSq$5Wz=bv(#fKV`(Nx>oJcr#)se& z40tj$;3)=Z2tLh_XF@}sl@J%f=furJ@Ofy4dI4os1YZ=VN(jCr4i17Zi_E5a1(J^7 ztFRdAHSzEed>xvl{z6~y@&<(tA^4``1A=eKry%$?1oWGk2`S&9U?cc0tKM^~-lt&S zWr?Z}py}MTi-kM$p-95rLI{RhBx)J%7QrCp2o@eF{^6yU$=M zarZg2Aa`HDW~nbx#?nlX)?>b6jE}po8SqVLz~304arZ4lz6%ZcUP4^%eh@d0yC0z$ z>L-*{x%*k1DslIVI5^z>Dl(huH%K~nzr$jvE|@W?#NATR@P;)?4pLl(LWj6pR`P+n z<>XViTOI#d9$dpA}QNr+n&f}vIuwG45q!(NHF zHBgT+$0&WotwrP7G-|}H15<#wbzv$Iw;r@0aqGiosSQxZ(oB%nV>V=rkGPE(uyJU> zCJfMs+ms=jg@!~W#3gQXar21l2F*}gpsY&Vmf}>2xUIy&A#Q7tN!&J&bmC&L7;0Pb z@XmDGL9^8M^aUQ>DRhXq9+D5l)ySt1*AoJI&CG<9y(!ql^78)>|0UCEB7&0<6WR!%s+>I7DkGnC@3^f*IRqn=# zQzh=ki-W`61d-WPdqL8S z5`ziUW7siDAA`*_CTY|dOu-ajFbz|Q!RgR~3}#@nR13;jnhDZ+OqMY|26GH(4Gl0E zpfRWzk`E0jNQlc|QQSNRXFxO5Oq5j_oFz_`7;F;XymNoVk2SPW%}hsWR{ z&@6Q*eF4mD3LRo_j^qP_bLCUcee)oo>@c{l}|!6R68q+4|q1?LtErsY)gVbIY# zS}fe3V?+}4j)h>T<3ufk-tn+kLhl6BW6&{5A9^RzcruL|dZ)k?K<`wTO6Vm6m0ZvVAYLo)lC#iFUQ{uT_^7rv2b^86-mgu4T7O=7qtv|cfekWygN~k(Z(o! zr;ztL1oW1f2`S&8V3YSItKM>}-lpKpy5cU>qW%i2&fhy? z;ZD6PlJNH)1VgNINTtpQU2y)|Jfp|=*aAbM-VW~p^h#?nlX)??OX3<`I`sr4AJerUi34A9Wq zkRcm|hHNY$E_$1Yn}^<}&M#oS+blgYsp$!II4nAQ zM~H>UkzCH9U%J%%8o^s#pwjmOidv3CMY0rpOWsl?t%(1Prp z44b7+K^aRkL0XSFl`$w>_7*VUw9tUl8KALu21Cva4LM6fT=vcuH;=t@pc(31lvUX~ zPn;^TcfL3{>|G!-o9aSHI(rwvVyKJ7!(;CfXqLK^z5wMi3LRqaa>)nwu8>b*?@9>h zIWrSdUQNMf?;2KJ>sDPy!I|?%*49+l!=kfygIKsjH;N?e-2}l>@eUd__U?o!z}{UjmDsx*T9CbaV6)V{C}U|RNb528F$RUp-u(=CAT;1X z259U(#E^$WLmrV3m%T^D&13H|Xoh+mWmWc`5T{D)Jt+@y&dh|AuTrqtdyQ4EyH$Uo;7qlL6(+C( zP(G1YZ@{br_@-F6S8s_V0KN^uP=6J*41n*zUJ1Z=QICPhD189FPvZwPY5=yw6aer; zm`VUHgcbyF5p0%Pj53yHg0vp9gfS>w06${D$DskAFhB$FQ-*vN8uGb>xBz}3ZXSSN zLNnA?D60bawK!D*@EdV(0Q{TCY^rY|=>UEQi=n<34-dc}pjqli`hu39D0B$GpCumv z{6#(mz+WMt^UO?0`8x$0z%Ez-(NasHWN&zB3hvFmtXc-TPTsO&;qELal90DN1VgPL zY8moYguN1ZT~UvL$S8f}twiI>G-~9n0#kszRbeWTw;Hq{d8@-_sWni>(oB%nW7cF0 zj*3g(S`1h_G+-SDXymQSko7`C)|U{MybZ+7BX2`!hS~^aRq{3#r%L2)A`T9Dn~Kb) z+6Shc-d z)t!PfY9p?CK-Iyk5exUGr$_=`F9?R}EovF?`oLZZyuPT%Fl3ZI@OGrJAB`G#{b34# zw-Zby@CHB&f;SL0OYMv@mS%#q9EMlm#ZaTg!vk*&G|X~MUr;iRLWjT`FZlr8 z1o;&3_JV*eGczIOL<%-|lUOy`t=gM{{R*ipk1Fdlswpt)_{pkN_CD<+lHfNLf}!>m zwG4jy!Cnc!X{g6wWRyPq>S#QGMh(9>Oac7rVJhL*04<1LBW#vRpp2!NAg#wVF~)~q zGXs*L0VxJ(_@x;#Jv1aEAufI`;^yI(g=VN6%BuLaic=;0OmT4VQz8?;JR}{z0xX6q ziid~a3}~3=n!aFV7KIMs*CzRZ-+}Te_#FfRon~f2N{fPx-yy6z)UBFLAtHEn;c|(X z;eQSkoxZtZ;V#V+N$5Kaf}suIBTdI5{-n6b5MYoyw2}p&_S9h)dt;;^xtJ1~fyR ziLxqvXNglK`py;yhrV+}W>cLDNvH2TSPXT(czE<(01cB|(-){*M4?0UT`c)P-zD-X z^j!)8-DYM&%F8L(^j*QKE8VKADA@F2MbWGbTDuxHoxW?t!d<#nB%$v*2!^^|)H3wl z0DC3+ZbUuCC8PAwcQcK*(5TUOD@+0UZiA^r-|f(X^xXlQrS3!-OEW=QkGYF6KKkxv zz&)V>_cB1E?>>gy9~$z2gt+uQC~h8o4?#23!zioL_lP)EqVG|0aOitXWH!~~kaYT< zfW=TxiibzvQ_wKcHGP4~GZZ>R-?Ner^gSn^Lf`Wc&~auaqCH&Jh?w@~_sdz;3;(x?&l4om^!-i4_| z+?-^-^E z_X7lUnVAVGf1+R$_cN=0ajSl%;N0Ak#RJuEu;}dlE*9=k7aV)Cw-f|S+9hfk_LhOY z5_`*{-crk<^s%=*jVsWI!dos>tq3i^URRh(>_wmj*;@%Vj7>%vOEW=Qk6DE=KK52+ zz-plZt1|#aY2B(d7_w$)$XXKOvbVOldF-tN%~0#2tjgYc;#7&f^~J$qZv&CpR2xFl z+1m&f%!Mr;9($WW!$@ZO0+h`tbcnsE?RohUA zB=uzsRSaf(AGQ@qPIcQsFx2*kBQ2+YYc{Tr$d7nhDZ+Oh3l>aO=;2ok9Z!FaSjfw}A}VIW%M!32|}TRopz>c7tZ9 z-BDJ>Z4Ys(gxer-aBv$eGI1LMNylv{Ea*#%hlkrRXqFmIU$8NPLWgi0DfxigDESoJ zMnk|%U(AG*V=36Ujbqh#w`u|fZ@#I$pz7y2LoD2zi6RMjlOPysvZ!Ui+Z*;u;7vij zrDQCo54?S7oJu2#5_tPU3xKyDOeOH9K?{PnKWrG3j53yHg0voU0AqaM#Tif^8qmN1 z6eaK)8IlMMX_62Zyk>Fpz)M0iR0?HP@Y3Q`3B2jz;DDDAnN8IKNe3?r3wqJw;epo* z%~B?PL5ZT!A@K5&58xH#Q@|@iz)WAvgp@NW*x=1#RhwINAO+{OsRq0^a1abSdIyVz z`(ueD=p6#VP=|_I2EEy^S3++N>Mb=Fr4PM%G#*AHiV}Kdoe%>-#Z=4i(F&^v|!$A$(R#{d*1^p0o9385h;N{EZzN#f?AcQQ0Xor1C|dZ&t0 zCG-}EgM;2_BD1MZhoqx-1}x}8i-(8aSZ1gT-)x~brB@~?3ri$4{+{!D++wzyft`m5fSh!o4izEbI0l`pLidu%it6;B0 z;MJ(N)HNu51YS$ybu^+V5qLec0D(8aR3h+3Xh8yRf(_%6QO43tkk(^vVT_N!TN!X$ zXu$0ZKv5#_4u;$r8giF}xCGuUZXSX6Kr__6D60~9pEy+_@P2V{2z)?fHr0cWbOIlO z1>I=z@CbYanx!74FK~H`LWc-^T=IdyC*)HId=dht{bDAhe42ty;4`dx)~$Muf^VS4 z^DyY>y&x9u&x;}ndM`mR)XSolLGKmVE1~x)>MiveN*{W!)A$z}QIybo16lyRH(@HF z_ZGAudT+yq@yIA+X(mYPG4C+Ohu*skcrP^IeFmT?q4xnp+CxJ=ln@uah2rL+w+Nb{ z7Ne|+-V$-Dgx*Ku;Gp-h$ZV=lAnE9R3X7pW6Aur)&!JiB3;KeSFDY~gy{{x6(ED0G z1-)+|pu5aWNck-V8@=yX^}Sp50|n9lxK%!hQN#B*E_&2!{Gq)H3+} z274v^en&mlN$#rQw-i*oWlbaMOZY7VQvknZVJhLb9JC;Q%fp6Y$tYuKCP?csD>BB1 zUsnc1LIYM}fNYqzEc40?StT@NRS9wNTTR?N{8oo%s5MYl#cxeViM(x5kEN4Q`c8b?)7YIxjl3Q( z1<0#`sYG5+XhHIN!G=-EC}U|RNb50u7~>|#tYG;&H$=gMoDv`IVI5_0(CNi69cSt&Ud%$9-LE_<&Hy9emG1C{A45iQ^^7fQ` zAa9s_3VFjJpwG-qNI8;%P2MP0jdrWXQ1D(I7zN0ndQF z5_l6)k2RA~`oNn^@_(XhHC%!iHhVC}U|RNb52CF~$epGzRP+ z8c@do4ZH&w5)Tcjmk<}c266MiYlLQ~1j?%5HHlLt@S4TJ0WT>sn<@oK2QLkap{9$6 z2VMpm1~1bWlw>J%2)vx+19+|SDd3q9&}U{Qq|8&W!7H$;=vK|3;M`4~nL>ACCM-I8 zv&6z3Y7>bUJV?slYl@OP`_D&S1 zO6;8^4i0-Ki_E4v1(MF*sjwJofp~cAodyk~m+1>o&Y;jC_Rf@iVDBvX6!y-BfKD?r zA?3LgZ1&D$)%kAK1r(g|8JKwr>(O5blMdfSV&NWLERw)?2?Rr3Dry<{E`z-ie3zph z%O#`q!FMH%SJ9}!cQs4__^yGe1mCsLg794j8wMn!jHQ_%t;gKJ7$1B$GT^4rfSVbh z!FLNoZVe5&O+sAwZWlKXzB`~9>Q0nZ;k!$mD#3TRI5_a#BQl%nUPwB8_rYSQ`^Ce9 z?*V8Sz)W9|@(_g%!S}G_1ALFjr@;3p1oW4g2`L|^V8izWtDbbLo}%Ec9Mq(qhOU$M zj99ok&x$1EJqN*1&x=}yycb}vMBa<2$8yOiedN7N<0~|3ozw;1qtXuw|?ppo|uL*5Myc~3%I^4=FWkGv0{8LAy+Rq{R* zr%L246bFaAMIy7Q7DLj>TLO!rJ`xX)ypN$_=rVnQ$)^-LMBZnT59EC=pF-Xj5YSy_ zCZzm|f=%Antop{S`WpqOliR9tEv<#T`W8kVzwgAtefnM`!S4qMhWb&|GWh)jdnNpS zMm<(cM(M-vR~mn#QN!f~sajJyhYU1GFx4Ot|sx=_#_^k zyQo;WGn>>wd7cRPxk$6Y^YhU$;9Dt9}H zQzh;Oh=ar3K#|#0J44dB+XWUw?J6D~ce_Eupk?|3l07JNh`T|O58MrwPvLF|1ay{} z2`TraU~@N&Rm0t?5fr@l^rp*L@R6|T^olrN zFHlKS=n#F=B_HU^$fwZP0s%c{W*GkQToU`h{l6y)X1}73XpdQOeOLTg%%`lHf$J$j53yHg0vnp zmoYx_<}u)~(161kppkb3Lyim$IZ8rY^5%=1N8ZuU40R03s^lFjPL;?zP8=Naju)9t zbpj-vyc1zD)Jfvuk#{mQj9I2HFgcY%hsawX`9R)j@+st<4gvjTWV91T3AvZ~g zOW)1n=FxWxG(+8rvMPPIiBl!|ZWjlKzB@!_Q{4$kr|&LU40X47c=X)^4WpLn3sml- z&>{Nnmwce_0r?dA9)y4nGczIO!xU`#9%0p^Zq;KHd=mgY4ug)~6Jp{1JSmc(_Y?%o z-6d)n^qzse5_->~9t$U<^r81WjW5usq4y$80rXyisf6Ck(1Pf_0vm=Qql~4QAg#x| z#uy)ZuQT8;p#g6&Ktu0MhP)LT^0tJy=>1jPJoMgyW~g^jRz>eUajJyg`{LlB_kqZ4 zs&+^^dLP1KsDaeuWmq?>E>m2pMH8%>-#ZrVA!LD%Se&TM7m|OGa5fU>OEz_$|wj zWZ=|ei3o1gx^Zy;NZ8i$ZV=rAnEw63Jd1P77q`<)uCa~ zGJV0yniM*O-&&Fn_^mCUg5Nq2&|_vMq+E}Jjot zej>A}`a{z3+X)s-lPw+|egmOl=rVo5$}SW-gx{``5BTjSpMu}+5YTaECZrrh!NzYe ztA@B$Ln-KkBKL$%r*D{8xJ$!D68c6!z|>u$mZ5JH?3L&nje5LXjnYToSQ^LCsL?kb zrT~2tU@FnK7qlRK25cCPj53yHg0vnpi7`Ig76&-8wMkzjHQ_%t;Za~7$1Cx zGGKOSz#Il>@Xck&ywH%tB*ca9aB=hCI|7=ajzn1%zN5sc5`6Q;!GZ5+k=azoK+@qm z78XpAEgl|x$3w%wW%`1Y6Df2EzLO*$;5%791-?@tpzq8~NV$N54c}?3I^C^0gF+;| z8Lp3X;?6{ky&GqVB*dK!!BFRjT86lDVXs8od8oJ4`6zwFT|nc7G-||M1XF;xi(x7e zcL}s0ahJk|k;o`xX(mYPF_$yON8A+*xH2^0Dh6o8UCoedLPM^V5SO^?#LXk_dT3ZP z8D&-CZWO0V#N8wg4skb&OyX{Vq!V{5EQY#GJUrrVhlaJ3=?gsWq|hPa?vi{U?r!-M z;_iWfjx#eM<$V-v;_heF18&uW6r8tM^2LUvdI%Psy@$oZ9ePA0Vee50hI&lYGVDDL zdnNXsK)t1&MCoJiDH@-qQDg5Jm;&rQ3sZ@`=b#1Idmc87Lq-`(GeKI9d66+b_FiJZ z%b@|UFhFDPRffD48uGe?xa|E!+&uQ)fQEIGQC4N|Epe*E-rM5fu=iJy*;Ma9(%E|# z7DK%!9v*w|L&LCT`T~@83LRqaL&*pB7Rslvw+I4y&dh|AODNdveZ;Dd-KtM0ICqxg zdG#rDoxIP)!rl2?Bq8q$2!{Gn)H39K1$!m(zDB*JzCr0D?{74IOQS~KcQ6IW`yQqe zc|Sl4lJ_HQ7>0~8mS%#q9`iF}eB}MYfL}uceq(?}-tP?Qf|cjW|Bag|yH)E@aHiVB!hJInN*=1M3$qU3dSc;TtuK-QxB&!1 zZ76CP05^iY5`Y_{-cp;O^Z~djjhoS^0T_iT0N~~@l>qDpEePNiuwg7R%2=8S(t6BR zjPU`uH3PN@4Tv#718`f0Y!@1`y@a@@zV71Y0oVf?R!>G*6~Lb2R0+Ud;@|+-TVys> zA4ocYePJ=w4&vbfxFa;Is!U(d(w{}R7NMW`|wFk^PfP=)sy&5c%05}AKp@xcD2EaXGuLR&Q)MHpON*{nDXdFqS z2H+@|0sxMNsRZB{Xh8tS!iI^wP{z_skk(_yGsXwt1P1IC8elL$18^ckCWVGfmJk=f zy~WJ~a0)amp^UOBfcuD3B><<2g9G5cBD1OXgQNpE4HiS~FCHF%bzTA_;LB2!?7AwG44t*eem2 zL%pS1QTm88X;d_7#N}ZM5LbYyL|hSCkhmGJVOTQCSegmaddw`w_=sy`z=5Fw2Qfe+ z?qG&kp&^Gzh)dj|;^q-I8=9f!psY&VTyd&I+&pn`h&xPV5_dQxowy@lL4R62JmQXm zhEdG)1s+FJ=n!$oNInpEtb7V_$3d{v@yvvjCs447JCRi<;Mz=pBOC}U|RNb4~dF~-N=#SFM4G~iMOX#8Eqkjq0uu8PGSK_`3-j#xTOoPdE~tU%}}qRtV-T%;#7&e*Tumh?=K>=sosF3llLYphI&gp zJo4U#h9S)K1t#xM=n#4DNnVFEXoq|o?hpbxYRxP67E@hR9XL8NO zgjx)%&fgNTaHl>JN%;F1f}uVUwG4ls!d{8L&rolv&r$mL`+~+VY1H`p3Z?*mU&B=5 z?;B`A{{99V1}3A7rI{eD$9%^aAAjF7;D^wF9~q$W_Y*^Y4h{K5LR|iS6*rH+-=G=l zca&B6>#_=*D)G0JI5_+*Ei#*G8Av*R%fe!)<;26|Z+U1K!%SbmvLb~J@z+)Ifxn1+ z3V$m>KnI$cka86YHh-(KYBjfNbqeLK_0~X*y&G$aB*d)+!BA_9T86lFV6Q~nx~Rvq zWt2YR)~9g;8a3iJgegGWMlh9#+ZbAqxJ_Wgpk$P>G!vxtn9UgDBQDB-%|ipaF+d}3 z3x;eN8nTsyxWsKOZXR*lKr>VfWmV#~6{kwXZ6^*6aodYb;<`i9iR%Fiy42#~5!VwM zmR6=O@aRpUL&Wuwd?2o`dgHXVp$_)c^`k_Z9;+W~3VBVs9YK z`YCT`v2d?;5lH~t6@sC56SWM0yTe`yz&%ipr^_gP01l>c2#p$mLtzR4xF<{{0Ea;f z0yrEtj7>%vOEW=Qj~U4rAAqA6Fgi3~3x)5XxW!ShXCA9@&UkU@+koB4*?T^ zF%wcAK*0tu&Z>I1s)0hJc6Chh5LJnWTuVzL+sG-F^QsY*I)(|caNn9l5)7Lm7%C}h z84OdfSHdujdOT)E>BBHXV+)NMhFO>b80KIqVb}^Sh@lA^Mk=F>rI{eD$K)B~!?3`B zVrak&251=0WXP=0kTwZ%F+5P*JPZ$lW~hTvR>jZ~r%D(eA`T9QhlJA22*pJ_W<0AfOw~Oh|b&1slU-SaqyhbsU9qzr4qz z#@>w+L=xgogn;+2MJ+?z$*@-0dd+-2fa ziMY$f!6EJnkxAT@kaXg%f(1Qm@$iVd2AZX=r7!TfjzWisyI%5vxEthCh`SL2rp#t0 zq`aAeP24T4y49_^je>6qs@q}EPj+{Rh5K`-NP^y75b*M~sAbT*2lh(n-HUoWWJc*j z?|vE|pix8bL6`#QJp@w;y@#O%(R&0oOzVX*mS%#q9`hJueCR#SfG0u&o@9WA-ct;D zIyB@N331VTR@^-Fo`Z(b&HuyRmjK3bmG?X3ayEB>1PDncN{H8qw7Psr5RAOCWm$)1 z9roI>*v#&ZG-K`V?3>xu;jnEiB{)tv5(=c@3WX$%xk4!vay2bI>D@x_i?Z=SFX-`a z`M0J2|L^dxsIeknA17a~v|` zw@miF&w+o>ffcg%4+!$e-ajI!BzymaJFo2hGs3{@h2P*FPGC>vJ3r)i%4F|f_=SJ1 z`NF^P3l*~W@BGUDsrkx(&?~O&{U=2$%HEG~2h(Q!E-HKfMUfVgz5k{Nj_mypU2{|Y z7+00D_rD0iwwhuTWpCM4R81G)S2~m8i{p~L3-Joc-bM76Wba~J^olES3PmeQ+^x79wCeD?sKnhykrtA;+bM!0ac`q*mbg1`RVi^R5Q1$r#VAVL zO5A|~jN?K)?&6E%lDK+G4-(fve@Ws(xX4?LoD!03;tMHp&HSjvebmYqf&R+zZ52Xg z5mw{sL2C_uVZThFQq*L_XU&YYjsoxLS*Gvq&*>}kRvYdYlDl?1$Kf)5ZTW?F;Ih;x zcjFG*X8bPNDC;TGLXGk+ir_R#2VHZcY`|4zql6KHlW2-TrPCsSr7SaZ*-S1Q&CX;r zYa<>-K!>nwT!V8F6~u7XCIsa|2=f1(CpB>Yg?WLo@?sR%NJBKl1$ps0d7m;9T2fpX zfqr(`cqZG>y1F5ovtp*WC_;l(O0#WsT(iZ+qvDcaUR)|iT+2*qV!1RDnz6H5N?aC! z+lFQE-<8$USrLf*7naQL%1znXASF_rm-Bc7+gVFosRtrtL`Yw>wWJp3 zk1=_aTlz^gnd7Rcb4ou`r=)UrmU1&?WOXC0)Nx(Z)hl(V4gTZQ2VFZgLYGdR@MY(w zIt4_`N*z^9ohc$WtZF3f^+w`uJPE-S zYZj6dLR}c~K>3H;l_B|zgbZJ^G>vM^h;x22W+JYl`s}QwsVR~wq|P;|q|nF&`Jt+} z&Gfj95+q}}6#Ye2LGW-qt|k>H2|J{8XA#4Ow2qB|*;-L^3B!z;<^w6 zb+{&|#U|0rYAgw%PgBZD0%C{g{NlWt!X!rZ#EDv2ssWngM#3wWiHOMVGyG4bPf`c(BHluX0)GNKcVF-#!f>l|m zQ)(7fP3euR7=)>IFq{rkzDN!$Y7T=!OH)fLR|_7X<@R7~p_-uqHLF=ES!Ef^m{j94 zX!@jqKajjqE{ds=fS0A2%)~s#z)bw`4&Y^Q6;cVByuv5)E70LS4(v+z(DaAa4 z^$)6rhSB1CXbBr?X}7OIPpuh~+@Z`Y>O484B*E>MqbX2{<(&R+r0Bk0DITj}Vxi$} zTA7r&D#8hAHgLkUguz|fNMkI@@zC##G^J$5G%XQR;}f!aZK9dMd}twg3pvX|av=S= zWLAzNMjGK66N@@zE@9B1M3b9SGn-73L+-tOG{;L3fOuqbF*F%UR_uBqW#crKiUt() z=uoz9PRTm-)Ulb-Fj|sGB}`-r;$^^FCvcPFa3`1~D5a zlmtdnErjwcT16F^bt;b2nBvtD&F^R^x{=9MRwouWx@l!u4xOQv>InmfGZjO2-S=rY zl7&fVwlPkXNn?kd(c;D!mP2ewNdwYYE-i;2`9)82m1me1fTlYE(J&+%UWSB<{Xtxn zlN(QL1Tc>9Vn$ruwf^}h=-XYw?3+1cumje5M%T4W$SdAp$SA-x#5n#Pty@xtFEX z>1fuRzz8O8=((S>6jiNpTfAvhyjk8-y@VH?7$8dw{54mP42mLlNLJtlMac5CeBJOhbjtOmA)b}jo0sun= ziHq5yp`Y{NY!w9toyDpq>csU_QJ>sw21FzB)|3~`oVS)BwoO6gu5v|Jd(;)J*mRM~ zgLa$bfF>(e$>KSJAB|(RC06&dU}Q}*$pN-l)1Twkk47^y3A|>+qZp|z6^*nuFV;nF zK$>OG#tbc)u%os{t=JZi<%}f8AUlA7fM_2TZ^!0O4`>gHcMOWVBX6jDnb%@j4R5{^ zdYhb%53FB6_axqx7ab*Sr`V7eVJS!0_hKy85~8zG$tgA#HJoCTN4+V!@?vvP?>wNF zMd~gm{SaI7qQ@JfH^&X{x@-`AdC~8Uvz0WKZ90lS5Y+F~>-7*SVB4S=)Tx}Rlvvu{ zAjd;n{_wYcpy^eV55qhtn7ob^Bay37ce0BW`=!{$rXImGz^!|dKC2%8x(P_7k-|Iybp^b{M zyciF1@=g>34wj~c4*eyB!wBk-i9O!tn8@j9>!de0mDAC{X>YKZ)6u3GZ?MSaa;np+ zmefB+^g4Y+A3_=IL6PM$cvX)g7lER2S>-4wCVkB#D&-9StD*m+F>*}9J~Im47Ic6e zxIcc?OcrZ`}%vSDDhPQ7ZZA_1mu%%KdiaE+u7LA<7%G1_VE3VV- zB#J4XbQj7H7E!bw<-LpiFlk?+w9xG}ViweW_^6|=$fz^4h#ioBC^zK_6x+gbU7ND| zW;i#{h-9(N%+6rk*0j`C)+bRml>y9Im_KMOYY#bp2b^vDfZVo!@BYsy!|q;uNNN@q ztcyrQ31g!e3Zt@BOi)n7*xl&{6a#xf6dGz$yEW8|nbK-$4z2COCX+MUyy31+N3~-Q z(tyqD$>x^3NPXIkLkou=1h8o0T8rvp(L$xe(DvFgT*0>2; z^G8?(M|&z-=UY&2BIWU<8N+ry0i7F?MQT%N#TGeQBhw;Q!}5FvtrXfpoA*e)0v!#h z+S(hG0Tb#ycjrcNDOv1rlAI?S+CWG#^jQlcK@%=?PtLnBv=ep@QmKrxu)OfXLFNmaJ(6!ULMoL@qt&6F z#+JPS+7~5BsyKdOD5H|vi%P(XMOvv#t)+~_Yw-p*5#9niYY1%RIfYJxlmv>iilW>} z6&_T_C|d+da;e$FjW(U3TH)fLtZ}_w8ONSSRbr%mj_X={0@~~eslFp1L4&eUwVpCDdXr0W{Q-^$QtWOI5-A{7Y#WC7x0Cj`wuDXcVrZvM9t}rNC4Y* z3`SW9OE1Ryv_fL7s61AAik#4J9z;89B!C(jc1ALVKIm2l#20E%ss)9&fW0QVB$s6X zwPw=60p*u7+NR)81fg7882GSrwPrHZjMNWs{$m^2opL}!jj-|%C5BR%lSlW3`c6ai zAvCdbE`srxrU*{n8Lq1Y@d*s-1^a)fACVn*ZmW=p<9RWoV-${}rD>`kpqnh|S+j1? zFyC-V0KUEhPbir)UNb4Kq1tTQujivZ{=Y??sAkdoQqID>DY@S zGNq%N6j~Y%)o5JCU_rZXR^LNUmzu$ON}qcsLA^1Ar6YP49h)3}X7=ba`&e1|g~IIf zg}Kj5HRaLA9)I=aPaJ;sU}4|Ghd%Pb!oCL%J^D~#78f69t?1_pv(FZ0pOVVYLytaI z*!S3>7v>H<_VD2keC6m%2fqK&M~*!4!qNL5bRIo)@W_XsJ^IWCk9_q3{uY#~PZj1K zEzEwMKle$fN}cO{NcP3T>=#+N`nkf~dkeFlb@Hkd_I>Hq7e8|3YY!Cmy>j@YUp{>B z$)j^G7iK?n^x!jveUBIR;rEro>?7Yi$isixF^=D}PHD$^jU-m1{}UeMbm2eVinM7? zqj^;2)eN}9aklMfgNRhB-{!487JZd7*fe&$s49T~Yabn|}Q~ zjdF#;?hfdhE<_~4Jvz#{6}Tmhc@;$*;A^$isVno)F4xv}-8Cxe^P-`OwkrhX^Y!?g zv)O>+kF=jfHCba`G?i&doAaW@qa|(iXh~O%nq?FDU7X#I@CQh-kn^lruL|-Hmfsx#b)3#MfY)tojh0oh*R|BMK6D| zPom7QfX%9+|2Wg?q_+ZMD-s;Yi*20XAWj4Nt7!9w`sXSAhrRm!5r%n+?F^%n zM>SO7@rCfABH@5Tg(eF#Rw)|egF@#o=+y5GRt!S|CXQ1Ak|Y5sg5`>IUYOhf&<-;i zSBSiTG8n1abU;I^cWmCE3#OLn*PXh~$?Q!M>RU_=ifNgvU8sm6?pDk!RE2x<;=Zyj z{hqwYd%E;bc)IjYmb&!)-Y&f_FJ^=KPaM$8BF$BF=?C)SL2r!rdb;%fym-hP=YR{< z77v$N`jJ8LzC~O5{R_7A2i%tapsdPAD_i=pLGhtdOaD|}e3;whBgfg&AElOloLl;* z^Wq6k<6~}1e>^Wf!6BcdmL^yzbZb9wOskvXyi(ll1dF42p`f0>*6 zn|bjooW`%Z&HZb6@#`G&8*ax22txd3WlMicX79JSrGI-+{7$u&{@sOI`uFnU_sd%P z5Axy z$GrF_PUD~5mi|Fr{E$Qbg<6^b+|DXn{A*=v|C`L>zjJH0<7je`I zdz_0o@+DOwUrLc(OPu8#!I{gg%Wwx`P5dq<4%X!qX(6MJD=30v^l>F!v(d*@xT+8h z>uQ7yTGvnvca>*di#rf*a$K0ryq+(PXSrv+fzpE|&Kv13S>jxe3owarN=Wied?77y z-pr5Q;y${OFI-|L+j=YRD+I{8i9)zIH`5i_fZc+NK}(@qE=9$fz`7OT3&@jIhv#|g zHvE>P%DSBc-^PK|v@SNnx&uL#;$^KsP*K9HAnrUuX01dRjGOQq+`|d%seI=yey7X^ zte#(JsQE&OU#O6|Mt-HK<}1zgiYs|76wO^lTCKPPqb7bAmAusyX(7p5LlGRwTT9p6 zRO@h6DS2%O8MN9dMp5$Kjyo`Ia$JbX-F$IelJ`zZ50bZ@{*vUq3m2de;gpahsRo@P z%L?p}QJ!qq51A~?dQ(ls|#3|E!H7e~mT zm7o|!;nQ#jmQ9WeNg3yh;}Sld(u43B^p}Kh4=z9)!YLuiBwxs3FU612?jw^gq&M1- zmBC%5+zATd!dP@ga%baW(8|(n6}ihHd?C4;#B-2r;RBcOQaE za`ztGdF3vTu)OsX_zmvi1ol+E^OO8encUsaFYK%N!Ysc~G3d?lD-YCsLI$nRQ4A{Ge8bnzbg8n~?<<~$G zKw=!DvuUKUS6VZa>^s>E0w;SoM5dE@72x%Z9#Wc{nh3v>fH6_039}494}dQsD}izV z0H2TJkbs`kDLRe<*=C@I*(FV$!@%UUEB+ayJP$qbGseJ>v~_K-brkb0ANOCv6`wHf zzoWaQXI1N(@m=F%dnWAM26fByj%^!{nv}Ul<*%#+=pYg zNGu6cjGv9eHaVmWYCz|vX{`vDEs)!6c}-{hz^emti6}MJb^Z8^1H@HqgN(41ff+C_ zq?OGYEb5gV1O&g8hG#O3bWoLsO*noDKpzKgmY|d{L1m_sP_0FcYqvkswoVXU0&t0b8%ESq1TV=YhuQ|mo0^5$zoEFv6&G_(=Qw=Y< z2f&P7Xt>h{FL6cV_~0cqCEz&WCHLNYuMaO7C3uP3(x(qz;+Mg^cHZabeoXo=g-#|JH` z+0MrSEulrTw9fZ|CFOvXOX)hNLU6z zOc>TgD3d`6E2#o&I(B$T8LWvQCV7jXC6zc~#+i6vO@t~b!I}s{;)OL4lq7F4jARc1 zRSxW_e23s9706*imgFr0kp!#0z*v$BIxOpp{K}VVzVaNN6c>A6rfBY(-}*V+4O(Bp z@1h8rpQlI*A!xoz5gY`~*XWuNG{1l=iJ);s@9PK|w7x+xim;~VahJDV;JCmby~r2U zU`;he?sN7K38?!u z3gP1XI$aTlAZm6=JBo|E^?gnWN&Y=wNXh#Le)Ny-qkrNHFQD$95h{!D z16)05{Sd!{*1u4w6txnd?q4ae3{dxPxL-)_{vFTZvlYJ%pzc3#S!$I3#ND9vBm6Gf zDF2rtEz~IgMG>4v`ER=BM)@CHRW{0x5i)4~FU6qJ%?H%|KRogP>Xu<&c3uMNurgap z|IWhs?>UD5`&$?{N&Fu;nU#A$E4~)A;%nEe9aV-jP(y>Ns9~t14}81YIOBte%xDl^ zE639WT$kyc6mDuOr;87cBuP~!Hk$GLSX#&{$Uac4n-%tMLM(|M%w_Z8f8uE{%x9oU5GWK1aM zxh(s#0{E9G6+i%AELkAXwUr)lcv_ugYIA@IP?{WqMGmC?VD?H+*nvQ=3I7oCg9H3Q z=Dp)&-5){$5>vJ^6gQ~!sPAGB2++}1OyD%25`kRWl{acbq~L8C5O3Qn(L7EADat+I zcS{lXBH<+fn^m@eVS^k2jLK$dKUv9^&1$!A0^^y|Yt$>7Ra4moj|kw|9?+;?z}G>& z63J;Zz;o;}bM>IBHkb&l*TBsdLrqUyH93oOmy$E(vqF7_}g)XG-5)J}; z$F5wYPne7fDl!G~jc#$W{k5LFFE}OQ+FvKxxxl(dLTm$c?6|W)1_DKyZto_LF(LgZ zFW}!M61%KrCUR)j@`?tAPyx#yGYo%p^y{Ls>!% zYK(jZKtMsjMyN^M0RLN+7rEFNQ*1C%f}4ySt$^~FKsUrx2Hr}bFNu1dpf$utSNaB1 z^x>Ix3&0h%v(gAtsF|1eir8i25>%iG_1ZB_nST zG-3>OG&FA@;zu|JBX3G16;#=-L`rdWTejRu1dr%UOw2Dyrw_(negUp1G@7LFIfmV$ ze5K}sgBx-MZ z*`LW((rF+4X?&5NE1LxD(xB#!6_zVuCuWyd(yFFejKGPp}LKTQMh^Wh!n zoe`ae`dVYUBr%oMgtU0rMN+46z%6;~DOJ`Z9V-O zAadyl-zb^0um6cU`k$f`Blvc$bX^3~(k#1ynPShfC9mM*7KRVxaEw)7+aVEriA#q> zq+n;YL4`LWsit+@5n;P;l=&lKAI{E6z&xMg?)2t(AChjB$h)D;(=_r_=7Na*5*7Ur zG5rDZ1xGjJL%m+{xEkWb9B)KOj_1)hYlCHWNiE^H5Qh?{=n{yu(l0;TDP$;Jo{L*zeYL}H=9FrIpjpr;H#N8op>A_e%!q+?gO z>(gR{FsV#ZlAPgS7PD9k?!IafRt&)DCVkNcF%f&=R&bz?#GKMks^owVH+4?wXXey?tEc2o{a6Qb=&%ub5 zq+|(D<*sOOPZMR`29&)n1Xv9DePQ1(W7-rZah19d8ggW?w_S0aOc4!7NV@7|SM}tr zU2DXYYBxH5&ej`=yRo1M;dC6>pP3N5?(=xGACk{V$W-YEPdfPH^K3H_S5bY%wF^6+ zWUqHAG%~t0+=`CDaUPthp#;fTE=7M)5(pmfJviyk$Rq$k=*CH0(uTCMzfS3?7Ju1FbiywH&tz>7Oo z89CX+Hxq^(C$D#O7zIa_GJ?!J#n2eBfX!>j!9mzuSO1UVeN&;S%g7eW8sA$*cECgM)08XXRR{?h6_DiZ$plsYaGCVLc-0rFV zvSF#b2{0Jcd0RlWrj5yvX^l6kF}o4K#8v<`*Q{;!)HL98Ido1Wob4JIcB+}3fy?@o z;3~L@<1GTJ0`m-*;7~2x`Q7)>61J9R!Z(s$I8fE3gHz&_WEP?%hUXk1so-kP>HiGs zLI(s|2s9Oc+zxnXd?$UH-EzzakV5B<(aQ%YtGp6y})fXeE% z*##|aix?mjr|qEQ4_vlZ8sWf6Vw%Lp!=OQlCO4;MN*Gb4j}Sjn1Rx&L3oao|-L6*- z?Sc4^H%yjEPaP8|5@LYKD`66#it2O{esCEiiAta+P6b#d274OX+M*9;xJ?*9_xJzif=e6}Czm{6O?`@?NLTashD+O}<* z>D`uX>+C+CX8T*vgRn7hy&TehMS35meI|PuI+spqmg@nqKAyMS-goMN$)W;ka(ge` zDgM%GQ+&^xs?6{`x6I@A9@V3$m8Hq;O>T~f-+M$KLK%E+?|C!&@debF|1U%;P&kMS zBX{A-Rm#`WAegInZJUXx9h1%D;-WIn>5E6jCGvJGmyU}|BR3+kF)bU{qonAFI$D(| zsb{0~x#f~*#mr@494ju1tOl{bJ)1^)dq4bt@=}{*Pr7M@tLBG_i zPUT>cykTp&W3w`_ad@Pox1+yH3AU_mY-($4X7$Q5{_4x0IQ;Cv!oG(OedL3MeGeRZ^r6BmEqh(P3W)U~Y0Xm%!} ziObm$Gc=6iiZWt`8tqTyW^AVd3Ah5+*@wrQ^rg*F;R>-tmw9&Ru1OHrIIIw z^m}4C`+=8^-_eZZKGbPzWXwPRyF8Z{R|MgeoX|_8h89=C$?6qoFef1R|NHoVAOFt=fHQTl*75QGFxY^Fim?d(f1de_ z!*gCmy(d|f%V-);gvQwCup|SWB3CC`s0v>(S$0T5NU~NtHojt?!xCm_C(IV?>le?A zesLnZR!!(*BOBsdHV*As6JE7>C_J`tY|HtiU#!O#-J@SDv&eSsv}h7zY)C_g7p8jk(e2*nSGoh$c=U3qa&P*?I|cQA4-gil(ZlA(4qYfivO zQ;hapRSi1Y_w}ku#$WT5jBYKzHmyU>g8uJ)kjnx1O#m)OQe%+25Zi?F1o)?b-vUXC zz_ztmFsbm#kdb^(x=OAmD566FLFjvCgK}RC!9@qmbzzL1fR`H>p_i%iB>02Pd5PwO zZIan`S5$}Nbpm@zXtH+2N1z`0+5?4suN?m9mk%F&^61>lh1m}sJ@`yv-{XaS_P{1ecZpU=iW_4=I)8~YtM zy!e_j{)yq9X9xlkWDA>$ug9n-`_PVdT#WKi!spl>XCXceiPz9lcx-e5DQ_vJ;# z8!U3UoNDWBdi$ub$X#ZHGDVp?p^RbtIy?Vrtp6$uJT4p+7s0^e;xYq|OUeyAF0C-| zSRScEQDDJR&hJ)qcQr*?!EOc2Z{jjoK?H*OB_%6}%V84Hg_n0=7f9oH zlr1tBLxgf6-c+_adGn}vOWEq=##*bBw^po9ZaRV0$<5eY-jWxJ^tc_3f@&rk zjfz|IqAnN#^X)Q&+&$fa3tH#I(QXZG&FPj-eeJqQeR9?IEqhz{?pWQqIkzj_I?xl@ zBW{;M!(P;E@wQQM$1&x~1X)%5bGH_>*hr=;AT(k8k_*g;N20Gv(GjKiE z5VYgkv}ovA#>PviWC&8s7NLI5ha)ngaq&z?nI^UJ7} zAxP4#kYq~(U)I8sP294eXrn#K06hJf>GnVXPOme39RO2TIvcDj?-TIFj^}~E4jpgJ zpyOFN*CV0qEcJ>(HT~SBvZk4gQh+Vi_UBkEqtVO^JPE>`Y81OFONI2T%Zs+i4M?-> zne-kSg~vcdXphHo2K)%7?EnG-;_aj29T+iqVRQGOcxU7dl`lI)!+3K&92MtueBfOR zI9nDSd9k77-dlw8qO;Payx3Uj)mv;TO&DDsf8JtqUUUcbjR*9yNL$KX$BUl4==H|v z%T@S_7yWs$)f;DkTy(eVDE_vfewW^$H)56<927%3l~a{n36hW1s2JYz$Ao{YGTM#s zpe+w1#P-P5s5|Pc#INXRlEe;fDrqedMUNWSEEYHs>E~V~RZ}}Xy`=blE!EU6^oe^& zDMkHtw3ce>-97bH7B|C5h;uS>70MGvtCjYkVyeuZ6Hkxp zUyb>n9P7y{fdS|YZlp-G2Ns{#17y(H9ympFcmUR>B&Z1ublfxKIyjmJ>!G-K{$zfM zcQU^elR3?(*aD^{qpDaw3UgF4ZjGwexGe&sFpK3|Hc-BTYd1B6k&4D$EDFq|xUypI zyy`VFnqNInw5}=I2VZ*<@`S4O|1F^!sL}sVr~UVjP(2t%PKN)P4BB5y)X%?${g%&* zjOC`!i|q3v6Z8`#2tF?|(Mx+tZGB#3(!FD8>d-6uyvQ|~wO=c^$dXaOG4Kz`;gimF z`Q!)tg?8l>o(#E1L1xnR(SRdp{u^GaIwS(RWK?pdlgP4%9z!ORa`pglq~JCsJ0e|C+h4B`y7H-1sXkxs2#4X zQFvzPFDG;7qbpMD%;3a}&ul}XK-lG(Mpkjee*8?+i(=}&^Ps!dYiC)sKnG&V_7HUhC2e(`M5eFPg@#(%UOB3Bu{0l zB*|E|8ZxD@`cx#cKvm`umAD=V)=ft ze7{&Ft45sh`T8HQ zvnn^#v}=2Ox@B{RHZjq+t*5gq>8n?~#}K}H1xTw-4>qg}OuWg94FlqMvlm0$U4ab) z__)U#qt}BC0}{F48)qwF!x)D=5F~#W`khcC)bx1qCrg$at-5;U+N$c6TYU9O5z;rg zAeyJf{{N)#-{dmF3-BONE9`R^S4GEnjNvAJ1Yo&*AUK>!Lp}Qj!oKrAhOND(fZ&^& zGih!6)Z~=eJ-w^X=uB>jbc(*-Es^sH2>uUf-0DDZ3G^;@3_eV(FmCW*v%T2u3W)e^ zO6LMF?~_E3GaQ(K;SLVo3mbET!M@**Dt}Wc-}(B0T|csLIu=>jQ{D9g^aJN z3K_q(8f1LL0~x;;ka2Q^wNxSFI{_L8U|hcqWjImDc#ZkL0{=aWVavsT6ON$*xw*i^ zerl26=Nu6Hd>hSu$hcgby{3L^^#9X||MvZVRVN(zE^Ji@s^AcN=F=Bra2DV``+F# zQ>3`C(y|n=5**IO$ey_zrOKZovK5f3B#pQlLn29aswPU=Kj&1mgn!QIpL0rNb{T9H zkZ>25O`Y}lQQ7SQSc_Dio~DerW!mN#8+|uw>4u!$m}s1inbQqZ2KbDCOm83{I=r|h zHLJnSf_g*6U)>nXHrN?0Zm7uymRB>~*tTjcwkN(;Z_?N3o{6`|VRCC%B1l`=;iRpE zi)q&@Lo#t?h!TgZPEK6eNS(n<2LhcMc$<>2@@uG>20{BVFj?9dkuqUWQx&odq~WVn z2nF`Y3HH!MwaD2SS5q);r#Lpe)fUG$P$bAID0{me3Tib?u|c6wB$WayNDguFy^KDC zWrv!iR~#c_cXV}=M*$Wrs#6LYVHK|8F(a-_qC^bdx8(2uG6u3Va7$37Lfv8{jR`G@ z;a5o-Dd^l2rS~nFJTeOt1!KIJVyUh|O24U$KJ$j zz-|GxAH7pb7zJ`91ttbtM}`MRhTFwepk#rci)G~mD_3`|_Ybg7#Q}ETcpQSUC%a>M zb*G-&veV3L9B&=jv#s@fI>06lno9eCDn7l~jLv7=z4jPgCIBdkeFlbvE%zVc(Zteeomb6VGqY{bfWz=Q_=AOMi2Bc*~x?{;eIGV`Cfj z>5bdQhQqykCp*ulrQOR!$&G=6hX*fdFSZ_W%g9KRXKZzHsg!EX(5^{!jjt7u253-y z8QCPZGIe3Hid2;$&B`gAs%0oW>V%A2K3*;y0SGiHI=SPs4*OGah&nYnb9OV1YNPF+`&k15#8%+%*uxEFVXq*_d9lUmZu zP~LoY(@dX}wTl`U)NHdYHum%TKqHjGveoVYkVf&y|yXRvo#{72RcMszqM_uI~7@TJ}G9& z;sT2V6QTEI+3wQ3Eyf ze-|Q208ZijMZ=Yz&1P&EWf1@JX+x00zK=bzuw#~sN5v&&j#(~^+=y(9Y1z0Qr6n@_ zsPYmyO2=1G%INY6FD;ivzJ2MkWr36VR|~hQeDD6BS{ToHOkch1vdaPi{Kx;NKbKuL z4DX_v(hYy2wvsa7Wh*_-;Z@R87Wju`(l$9JB^>I;^f=TmdZ1Q(H|<)_DI5ovi~+TE zGm{~8Q=bbWMm?BBIh}4-?rX}Q)JHmy4mKxB(ljUN8$=CJ<2&mY{g7L#K+TxtW%qiazg;+GHjg>QQhqBE=bO?GeXrvA5Mg-X4Lg@923KClyn6FoO0hDw zTb^Ms&rMKc+&cfceAoGv*>OKIk+b1x zE@?Pd_`5+%jzfnT*kGx9jbtFKrqzTBSAIrP3xv%iIsV1%UJc63K`oPu!Gr}!^faIZ z6M;=eI*IHCHlc^X3t<b5OaO9r~LYH}v9Ma`(` zKyPkZOW_>e8V~eo(?;A3^lPXZi{jh3o>F$9zUbwC)0$Fe0s|)B4VYFoH?AfFL+BZ5 z29*^U!aiPCI>szu&z+kdgyT8`XUBn|DJ`L;1H(BBE{}0%WcSL?1V++~3GYEl@M-Mc zq7BhHju^Ufu+ZOb;IMK@(&r9X^Z=$*lTb9U698v@Dwl?g(Y>woaWWRw zg?G#8iqj;H=y+QvY1dSYt?r8_1mp~`nzCJS#;X(iKKPMe|<-mfd2ZtJ(x0B!B5(&*QdHd~KcELQ; z(&b(2=ewS|tZV%b<&rJ}K>4z?2=rXQuCcLM)YO!?`~W-o#vafVR~(33gE$1*rloQ; zqe-sDD@$CB*W&pY?Mo2>u7jNjSCt|_6}2pe&2Q8k6IbI?awlbn7!;(58!B{QZ_0}|2f0`&Y`K$~c#CxZO&K)A zjTLV1-x}G7n%HPr*ek@%gx0RCf~ie|a^DJ#!d5`Pvx35Lv0`gRvv@zyZ)S&b8Ei*k zWW1tYS>f;jQk-FI_;JMScokPn_mz?bHOzP>c&oz70mqgY`UB)uOV%snnQTMr>IT>q z$IOu8EI!d5CdfPz25l^9XTywQ-7U>+YunmdLo4!maTB*C z*`bS@*>&{>H8DuiVQ0C5#Vs6x)tric(}UvH$Yp48=qch_OpQ;7y2vynpS6K>uLM&j z6epGzry|4DJPBQjon6_E{m~|?%nVqc396;EHP@4ZjJ_QuN7=kH zgCBY2ZWxQFASO{*j#c4N|rHA-sO z)=*m`cA{EC1|`Rq)ow(SKwcX;hqm*lENd-mS99K`EV2i&IA@jyxk;a~tYK(?P6ylQ z#*)a}Wm#O^v_@7R2A8Z>o9R9Q^5HEL|gO<8uDTbi0UKlI)5+z{q3 zIH-Y7DQ#=R^~6Ip7UFRY;q(wOr1kvTn(;^4e3$<=t8<)w+ zZh5g}CA;M~bM@S|PF8cYB2TJ;5lm(&rA}y3QbXnJC=avpGy~$qEf7Q)s$br$lv*V6 zbQh34BIFrX+7%vM{NbAoz)pDh4gj`6!swOF;K2Ryr?lmiGa1C*Hj)FY1GGJ|{@5Xc!ftVECd=3=X0(d{Kh_ zHid5*&H*Fa+ybSW^wX&{wYImcYHw*#y84Di^M271z9KA-!5W5XwrLGt;T(%K@a(fH ze2v4wL{-wb$2QYq^?tD?e3koJua+Lq>SAs9D)+^t3|SYxu(hdGwCxw|VW`DjW)t!D zZ~!qKo)htoa9~2yG7V6$Pio@s{of%4P3u~kTSdoyu_65Cp)7RV*#6Y#kaF?`DN99oj~nSHZ>+5clFWH7{aJ27ohN17C0y z)FLh;hUlmlDn?ri4A3w7WGINpptI1MJ4~#b^1PF2*A_;~j{2gG0}AcS}=CYeUo8hNk8QNYbRC zO$og}D~x?&j~&xj>eSyS@*)}3(aTfl<(o0-igfrQo&K8Pn-d8^nB5H!2Z(3)i-Y0oks5dY2Gu}Mb)$&S)qL{#@W<|}i>ZV-G18e_HYykS zb?r(WW@?oj;-Ds@w4J1|4HT0CY3mg=5)_8MsA7DIx=(~#`VPG~t2hf0@xq1|p(eSnj<@SnndO5r)w66wdUCpsrgo=0O(hMh zcz_R}WFU-4@tj*8_u{~do?~l_lT*g-hjyoTr-y-1YFFs$?EJ6h(bn!+qH~o()LH;fMQmA~IWj#kF>Z$aQUtY8pYpabFh1ZQ9G}P{Ntv9^is}+yJkM-E> z)O_uD@KMM9MQ?fOexWkE&oC9ckg3IAa6jU{ywKm`x!SQO>n30MxBMeAt@2-bTKR<% zmZ}u)y>e^E{nGJ%qXew-rd-O8_Z#lFoEkqpC@cC%Eu58`f!*mUU@Q5sh_~9EE&{Hc zOGDkAb|6={V9eF-v;d$cz;FQv+-t8#g(bzOl#Dx0uQ z12F5@GIXpNrvl9b3mxkxLb9UH{R2D*!O0@DcITR!)TRL}?iN95$vUYeDBkdst@~0_ zIdClwfUr9Udb`uKYIBakux!JTLLHs3;gZ+=xSe;1hG$sA<4NhX3_k zToNZnbx`*}K~35Ygte@O&b=;;EBcQ2^bWx?U2q^}N-0QfHtyXF*}1VXW4aWfjI@@M zXhGUYAxdd9b4F>$f}1)l(O-n31rq-Jo=C4MDNx<%So2IvO|ZCN!Sezj*=&$2D~XD?m0U;Nsj_;vk-4UISqyswUR z(sk{y>*7659X99l5B}=v>zs4Hy7s#B_1Lct$9}(oUCb{_tu9$8h~JF(wJ5Ddj`i@A zYVlj>G#5dnV`gGT{8nE4c93sbyZ$>Y>{X>u{BFf@_U}c0gfz}qX%xSo%gsZ{{sF6W zH%^l#k#y64=wM}Q;6F>yiwk)WE8l$snNi^$lx%f^d2y+1Dlo@uV!4D<%z*GCB`)K( zaX0pX$T`OU`8~ih1_C`8*m*gtv(SK$d0kTB%{H0p0iz;;vlVug=Mr=Bay?nu^}(QLEc-)cu-k%9^m_Pi82MAO7uGyVov`1B}$}N=6)CCAaI5^NKq8EbRY%{@?2Szt_SHfOJ+s2g64vlr#zsyI{2qn^}SvOsdHo z-_!vqqK!j+Tt~dFSu$fF3kIMN>iSGT&`8hTk;(9%IB=*bBTm<4j9fT8zzE9`2Rb*^ zu?0mPVTI4kt|e|`SnNicu#;t5@W%wFJ0f_5z|O_GtAkWyNfYYI3*EGzh#YGrZ0!VV!F zlOcja75NYYl}vR`S1F1#PH!YjU0}ZZOpu}!=`-V?Nl9zT#*uJzdUd3$dF%F;fi<~Z zyH;-+>T4U$PI+}E81n2Yro__vctOd@9 z|6f`~l<$LaR!>WY1Wd)?D5TeEe;j$IqtHh0Cu`J}fALP1fvB;chmRp%zJNy5RwFZ3sPleBgavKk+3#l~Efu;o; zQD|Jq3>_4Q(((gViIU_J_BT6)ndOb3h9%^RbX#v5P~hzFu8S6;Fts_k7}{zpcEz(Wmb#f0X%o@fo_?$ zTeRcGSzJo0%=qLkJ_FZZAUI{o>oU!8Y|MIl!^Kp|6IfXa&PP{3(Z=aOPmMEeseyyF zoWngpySt=11+2l=k>P=n;dYPutxPRlzTAdMcwOG3fm5w%V=`n~KWU9G^kt2&s(pM;6-K|O{F1#2jjveJ;28OQjXs6q+kYk z1_<~Qvm=$$v*x7LBO+Y``p(uKZR4=70ituv@+ryJ0G(UDi(bP(oa!2&p{g37dwmU% zs}>iNJ_G!*Dt?@JzW%3DSyN^*eWvw4cl!DtU;l&cIFMdNREzKboAd`h{-@ljy08E7 z^*==)X&`WhW(o}4P*5?bUTW)LL|}ms6F^bBj4#{KjBPRrhsFrgKA83=r3w)0LFw-b znysP&F{EsqhS@*Z0?1bvJitv!9hyhSM)ZnM145;kFtMSBdeKNvf_o8^)bPVK&QBa= z7ug3x`88J5&oTS9um5?C>VHnP9ZXS;T+5*A`6uY#$C!zMxjBSy(3KarNV}S7Gy%R` z*ykvDaceO0I&1>K(OVa}0~c}V%j4KdHMBLSTXtH*yZV~9_qFL=n`3=@(rdPE*VcCJ z>h^&_jGFh=LS)C~+h>hy7EaDUV7sGVvhvtC{t=Nl&4(obUlFz!&CzoZYP$-H5xy5Y z!4kYHFYXEI=$GJ4Ci~G6*w0}#5~DrU)k2Y~Y9Y;63%RxItA!k8PnADsLI3kUWaD&k zwgygsvb6>rXB$Yc$c(97=}5s>Yr^aEjjNo`=)2I|SD{&guE#XJ(H+v#&7scwz1fh1ur|bDuBFy;PX{ z^wGy2fA!^09Dep-Vc)}tKJvlBz6TCH`cPpO7auRoK3ACgTw(Uv!t7Ip*;f$%(4&tP z_C0p!g}FnIJ$(2BUpe~Hf$x9xkt0vMaPf3OJ0fV&ik)a&K1O8Sh`0NyDz;!bS=vy6a@+b09r~+ zOq?m#Lo@8MaI5ELevG+;~zSM+gst&TZb2Ek)K)_}wcClc zSd|@*A5>lgXJP;6^M6#g|5$dV&;L>Mxa!+~`1T(~D+d4k-#`CvZ*27KKj00TcGIfu zpZ_})SYYevC?mNlKbWiFpqgh(6bq59Q`S(S;KBYoWSNZ~J0fU%q1xdCY^j-mlBNiZ zV1)rIEy!e}cq;8NZmLZr0M_tLwDVWS;X5_0z}$&j_H^5S%#;xrF^*{cJA+;H@D89 z8dI}Oj>Aev=_Z8Tvhz>?N1#da%K>XXc{<@L5nT-@%3iJ&` z4X0)d8-jG=Iog_lJ;*^>ZN`x#oBE+*;R>9Z1-h_|3GJcNFEj(PoyowMP~wc7mkCCM zx|y&1gR+sx;y@bbu-(DSt2z#!?s`ec$~3Q@qSnxtRu&vNrd+z!>fod%%_M+IN-hgM zCmr%|ExPh1MTx4pC}HKo>Lx|{y@X~P<7t>|0Z=7nLVA?t^vY@irLU%mq?09_AjL@! zs}S!C)kE29Fgd5p$u{C4i8Q1jT?J`hg0#(CBW|6Al+ET8^v0IdZpY1BlJH^hrppS; za)2r8lgXjGt3p+z5|j#!E5n8`V1$Af>NHfM^vUvUp`>^MFAo;ww-;ufl}}l>iG?h3 zS1Au=no*pM`Nm#lXo1srJk(;X$!^JQ+qxl@-83ERZR!hav96gNgIjXv)A7&>s6Q&{ zemW#sX8GDdG64E)KNb$N#76ePW2GGN33Oi|VSC5?y(*IjDCY(90rq%i~X5 zn})@+*pe4L-Wa_(rgfe)00zZLljzHfes7$uxty)H>FuLpAgG6+j;~)x9slDcOS)Vg z)N`dgTF9DkU+4mWqJ3|yii$Xx_En+snQ(xX5}e1lN!F}EccrONyh1ewwnSA)8PgIeIYwSB z5@t#+yC~l|5cf-*T)FXmQKjx1dP)2k^g^ee0lIZnm(ezmOzbo^tXmb!#pC+6=G9_y zL(_R>=+!h&B~P|by*nt>$?)x4@2@UL%MRfDhSYs=tEVl{W11X}Z~ z=u?*3N6&)(=dGwCSQI%vpvddTSS|@n0|4;A;%95oBa^Mot1sUF>hljB{^{owniCax zC9kzQI6TJxe1js5&IkkICYYGseB5^6t*f_8?^=`DwykBr9&B#0a+_1>1PB7n^U9#; zb{G_eN#2M~7Q*-HH|{_3v+qCjjy6#IQ;C-9QxEFM?UtzQP}i7b@1>fUO4o`v#-AJLgD_|ij-lhhm?=*|J;!W ze&OhIUp)Hk{fC}<;K-xz#hc&%%mYWi^u;4D&dIcX@Y4GZeQ6Fxc!!>P^2mpuJp9n3 zhaUX;;ZGcR^&1br`i(~pe{}!h2cA6gI?5Z^ow6Q`sF!%;nkO4IrQK!$d4TU_*V}-{qmtteEIwL&mMZ=!?GYq;OKLo zMDm9|@xtLJo}*V@{J_!s-zQ&r^@X3Mtl`CnKYjRX`;L6%!NUFfj=u7#qhEcFUg38S zef(30o_c?Iz7BoxxmRC&TGqs&M;}0adnyfI$5X0+XJ!w5=`)8PLb>06=;5EC#Gm-s z;YXf4^zgyM2Oc@{#REtdmGu4lKX&w${f8cU@8M59TFh{2B-ekyA^~+r_)6%A94{MCWI2FHxYQtHR1@59 zjD;e6)0jz2_zcn_&sgmNc6SP^-b@BR4hpoMh^5FeV?E*T$jvD(IyaGiiZ=C?jyuZX zmiQda)Qnd<)6|dk%a<+l{h|WI29zgMf@}nBXHC!`O04EQZ=XIdqR)%y`^Cs+Gq!&& z=AVmI_pIX1h+ZE1Ntu6q%8s#s{*M{34}eaE5YNt0 z7L-xsKgKmQsCA$fPLh&q42ztY2}J=dacJoy*}x=zpU&^dwR`mgy+zN&zU7l2hGli0 zjM6JCHtgB9xpg?QDWP=@@10(^GaT78*ln*npJ3AdnV96$74OQ6jvynTp#s#zhP((% zGEM9)&RG(~MHL{|Em;Lf^)s<+tDcG7@>)C-J8}M!Dk=qk|1T}iVApgO_x~3K{QbW< z*Hem{lCBeKcDvhr_F<9HO)bZ z03i}HrA0uDnn$%4W`G9`!T0x6<)EiVP>uQj5=1xBaM{r;E{t^GW(PVu=?QFuRvnJkvgg#zNDGDkWWkBUpm9O+ydxeA|1%|tUZ zfB>e!cVs5T@(L$9mqoe}1zQym61FQRpPNABa-@gdKFSy+WsA5xav?%MuPClKkG#m& zXn*o~lp^1-X#Oj34NI$r*3}I#;f|STNx)T?IW21oYRq6>Tq+OA$-k>u&Q36-hYN98 zpyaeH${R59Sp60$ogx&zZ^WR%fW5qW_M?J&A{f(+Lkry_U@74 zsga?nsg_OW({k_*$NVd1N(->y;>KPpNl1x)G%=}y-!4&d{KK89$fe3onYO}NWJfnE zKB3};zh+I#6n!g!CLyk~29$B~aLgphUiBPUiyKH$Dv1=}{W$|QFkX+Tq$eizEsev> zF3cl&h>g7X`^X!VzOIoPogyNG7Cau2*J$wUlB$!qSm7jEWh5FcfkEQ{Up268%aLUp zbi?oq&Az6JY^g+|Tka={dMPTc!OqTL%D@0XI$*}m0o6UMYc>uxrT=MN1s*P@fe2ah zsLBt(OEq2~|4f{TV%g&+F*6erDW34S0&WSQfypsbQbUbrap6=4^xi6yWurDyq(UcK zQ)C-Oo-z^|A^1>k6u69RwZsG*&jE!F<2}%$X5da6o~b4ci@sGdS4D{_8z~b`ru;3z zlGzd{OLj{zUUf@wL$xizPxxB`e@lR6(*pmN{`xO3t`6$UnU=Q5At0{N0}+4TX4REH zZ!bP?Uz^K|>qv?&LRY~e!4j{B067}xH{>+lED|+7ExzFJQ@pWj{d|Ur>$}$fP(a|W#$gxFauC1i31Wga}6NKyGPW7>636p{+UHIykj+ptWhEri)Fn#AH0V zF|($7%dUx`F|kta8+FqF7EatbD(*U_Tv7CZs7G!Z@*)(}k%7h_&zV@h8nzxqTi9k= zG)Y$LteFwbTtnbb)22mB&obWLCe3lEH)6JE?dN6zfPi?{DB$qAq@3C?D8i99 zRKA?Cj7i|+@n&a#E|$~rfsK*tsnw+d0PYhBHjh@YbIGhNHswWE8N7aTUUYll^;-^b zgV^NIfau73N_6Dl5x)#cm*~hPk@%JadRe5c6?EhSd9f|1SH>9h(2)=2#jrQd2+@(R z*HQfKLA^z9(pQ0we8-@O=u}Qs$|^(){$9n-Ew|QKUhXRQ4th^j@1VPDc?TWsXEB9^ z?6@Z0?GeMG)k~D02TEc$Lh%D43Zc6p&RLI)-XwW1FSgKLGK?}@w-O@zJ#&7HULCq_jwFH%8H-H9T*VY+9T z4$&}!IwT_FZ48mq(bAST*v{!_-mEt`m($UrliuK|TrQ_NZ8}X<>UZip^-(5wUv|ebq`gaoL^s>dr1R1 ze{z09DME2_exsb6ulG*QH&jl}C+JUpRNNHwbbm}V-Xq~?T+gK^JabT(!^F)P3~tE_ z#WPpmniqA&x%xK!`icqo_EGV+ic#(kbkPeDiOvd4>F;<2Zi%O>if`j!?Kx;=Ufj9B zAaU2IsLzXrDuYA_bM*pKOJiO%l}#1&6+TzybP2E|S} z=EE23vdZ=1E;;?m>FFNtDsi_=ZFC`de0N?%o%!b8pni|OOYcX+se>XW*AV(0Tk2}8 z8{+y3?jf{vE^{T0K94>w{y%$f0VlQf{ryufQ-v1l?UV`wg~g#zp?J|kfR@tI?XWw$ zGhugUb7vP=+SHA@ySux)ySux)yZk@r6TRsq^PT7a=~ z9`7z$nVhpS4H^7ka)3soVdeQ3NI=21OpeBaDhX&30-EzOqAmPn#sJ`xd0JkE#Nx*> zl#(3J%8pPzAFZ~$48^p(yRqAy*S9dA!p2@?Sc{#PHFsJb8#M23!;YkFxWu;h3caWI zwk#%6dQvY!A z@L;HqFsvgh4)sxqLw&S2)WqSSk29>}gP}gbwoc?wpH$^gpDaUt3Wxes+d7Rk zPWOiT4BI-B%2_hh@}(&*@>^%?BYlqZ^3LT*pJ!O-mmBE|l1BPM+qx(;(ihv-C6ST7 zG&0hc1tWcVbfmAatt&J6OPA(DL04%beYI^}6OFhwGSb)C*7ebt8~l;JF&OEa4D05K zBYjKaNZ;y>^li?jyj>sZI}Gd2V5IM|t-CoU_f$F3_sU4$$C19@wjN-O2fdMg$hID) z@`#MITnpS7*$A_M(=WT0ON2KvS5 zK)+;LFK6=4FU^O7UeN~nRoi+k8u5B$px>~qH={9c`2+oSFwpN9*1Hu4`n|+~e%~AD z51dW;p+3+b8P>iX@E;rD>Bn|Yhw)IG&smSJx)^d$DCpx;(g z(T3QYMsX*K8hg_rMcA7GDPYfl7iDiIG+WI=n=x6y)N^JtC&b>)OxPthLB5pGKjze~ zOqm;-vYVuM?CmaLK6~@v8EOx-71^tmpd|M8lmM5#tk@i?`LJ~M>Yx~^ULt(CDehf9FV-VtJR zsE&lCvv(8}Lme#ST1t`bSsEWPgr5@NjL6*Yai7;$+5-XwP$uu1HPGQ%n zUe{?foO5k?=(su^f{xx9qHulA6id)M3x=W27Pky~=Ri+F?_BiT>O8a|^v? zCCo?fI(UY<9&JVRZjhiP^lp>@7rmRr=1|=XOGob(D2BRKB7F32gJ-MT84FJCpivci zcS=2=cb6;$y}M!9>K;}?$$M!y=-tPz`@OCQXr%bHocFAI^&mtYzlTKOIz23w;P(g& zLp>^P8T=lDo`m1y=(p7qXhZltN%1L)8h%ehis1JQqyWEX;YIO#4w|i=N1HKOz|?bI zU``0X7n$%ZIkKY^c4D}}3iuk=HK}q<%Edefm?}*Kz zdKZ?C-+NFD^}a;-_zk^|@@5L>H;1AG~5d0DSw)zQe2*IBz{z6eh z@K;C?1b>4RAox4HD1v`Lv(=wyGbRg|dd^?W2_g756aI-!=!7dbkpsVFAlYhJwB`TC za+2a9xV(h<2(AFnP%EOXh~P>Rl!V~Q65t}(S!@nf3YL!GDo_lyszmq*t_IImt1}k7 ztU;qH1lN>$K(LD}1;MT`aNf*HD7iKb2f=Ra>h5)|LnAc@+q_dRwJtoJyY)oj%B(Mz zaJK;rLv1K-8SXZMp2Xe8=(p7-XhYnkDQ-$pP>G>LMz1vFd9thtQI z0;ZnRlQ|*oGEC?do6wsH+OBUaru2zT=_@H7cQq2`bJq`^q57k($lU-5O5$#y1i0J{ z5}QLc7?#f65GaNkDiJ<+!{FI!YsLbS;WVn^ZiLhWciYHPxZ4&6PMcW?CAX*Ha5s`& zJ9u5AXgF8h(}j{64PPg3j3`{4v0@2%<6szSytrk^n*cqDydBYRtBGhsvWuj6B5HOg(2W=7hl8n+bMo!ahvU zz}uH8`^Bd0FDV{)2S}K|%R3OBp$PoGtqCWv(Se4JDcJ;6gB?Ng%siMJV*h5=fjKg zcL6k8U5GYgvVf`QT*RCZe-|_1lGubxnV|7^8B;EgO}Ro+JpQhfFrUAx;2G*_v=#Zg zMuL*~yH)~R{;m_7Lv=kYoxdBP80toe@cFw5o~>?XEMU2XMpgXXD)qqMZL$>pZij)> zW>!MUJ83xl-NmlEy{>y`q&UsVxnE7)3rUCXK2f+v_lqU)JpjW{4~km`zK5VE!S^uw zZS@G+5PXkPe2k(7-{X)X@I3)3fbU6oQTU#MW~-;sW=s|^^_*vz6N2wqCOj9L@H`VV z_+DVji?Jy$Ns0&G%M#|p_X<2iy^6LXe6LAR5`3>qfD7LnVsoh8gr&px78FChEfGF^ z@4&OwyNm@X@6o6VzW1db;QK(90^f%)aMH|5DEToB2fk0(^{LnO8I2U@E(Ldus?QM(H1 z%t|P^CJhI`F6`>+b*)9iJ>i(&q1J}4lh;iYu1Y6q>Dipv{;pVCp%WF(*Xc=1kZkHepL9Xyo-| zN+vd?m!x>)^_DPy*S8fsL-j#hk-WYVltf;Q1i0k&6PrWTAC^wu04RnUC=ot+gW%a} zFk^wq5E@mHH&p6@ykW8w^0tP7lV(;z$q_Uh^0r~uwqDnEG@S3&(sGZy+8&C|-bhin zLOX~h?2Uq9sL|qf zjL8C~o->s>A@-&*VW-%H=}gero52(#Hf5%ycyx+KTM$B0)*)$>czf zyF)@9(emmm=E5* z@C>yd+KS-qFF{G*9UuYjPVYdmIaCM1(!o0zilGjX2p_yd;o0gi#)6WiG^zscaH$9I zj*z8*cO(p)HnS2+9!vbJR!?~_pqmGBCb9aI$T$vNa67EidVW^YEEyLX@ z(37}375%n44Q+_K($-!6dzd$| zP2CA!C+{v%xH@->CFI=$!%+8%TZX**peK=cKl*L;0NN0F4^n)HqDJ1skRs$g0x2Nx zQFu}E9)o79$I)g?7BKakCzul=?@1;+6`Sxh6EyOkVal_yDbGoYN8a-i=9BjVJVU*R zwjy~iNl+4bFH3++-Ya5rs9uGollK}FL%l8$K6!7zv(=l71txFNsEWL|r5?z8N0vg~ zyD)IB%t|QvJ`IPw57_mg*Yy#N;2VvP;p^mmA_`aMQ?Z1+&tMqpb8*X%_XYGM^1ejB zt-eAVBJXR8-%!-Z`xa7!yzd|dO5P99Z1p4BjL8C~p7RrPLgf9-gkNG4er1A2 z-fv9#JvQYJN%6@0Q^I`m{(@(yztL7C?;iB5HOg(24=7ji5Ghx%%gdR-L_}h#ro5!YXAt@ezTS}PEUr%_3%Al>tUoQzt z;;**^xO={>#O6@-fu-};7mA^3B*N#fA3R(2XDnbDK%*-D21-5fH%OMk-(VOxRc0lW z97@CCZy39__PU1CaQA%pvFj1=b@H|mg{!lzSVG=*FbuW5xMj#22|bCt9ng?Ef35JM{8`X!rO;+f7BKak5_3ZQ zwK1VRHen$XH2xMbWpQjuhopG?Es-#vzrElYYHzd^`LiV`iNAd$z~ygWu{l)x!P5EL zABv$4kO+UzcOX1l9mH6`axjgm_&Y@Efxkm#Df}G<1Lw=Egp!BTaQHidT}OIdN6~P< zQsa{>)zOf2_>K{UYjmtw0^e~k40XJ?W#BsjdJ=pmq90SM(T3nVnc^uFHTX`26oKzF zNCAAO!;8Xq1~glpi8f=hfT`!4#heg)XEWiP*o1SLpuu+@Q_hb~xj<4p_%4(%AHIv= z8R}xR72&%?f|B67R03T1E)$zWbvY~@zAK;@>Pm_5;kyc+t*&M)NV$eaRq$Oa^#I>> zvK08Phk=u3Rzk@eX*lrR#IBpYu3Kn0*OmDIRdp*AoxR&c;R@X@maumR3`5;1ZW;FO zf}X_Q-RQ^MYP2Et?xlDiMUB1tAw}4G08+r-gYcs4Jp|2G52MYPEMV$6k1!|1-lI%- zEH>eBCTQ$E!IURsQ=XC(kG-cQ%xCWzc!qiwZAJE;lb|H_o|gcZy%)shP`wCCXYVB_ zhI&~deD+>}XRB8k3s7F8Q5AcyOFgjnhAf4>H(}tknUzrTZ5j@H@38A#uj@S;?sppU zh+XwQ6rH^fMBxg3D3-AI5e!3pEN&V0K7pRZ-lyot#A>u5_CBZh1x1a$FCj(P`wCLP z-q-M=?0o~xR^Ot{m@HuGIo~lS#NPKz_#rmoMYg6n-Q3J3$qzHiPKneg{7hV*=^`O~meY6>q1x!6>1LlMP+>i+y z#U^ab1P#DVn39f7*;G@Qs2Lz&9FR z6uvRgY&8~b#$*9g&l$&@5PajAFd;T!MOxz%Vx zyWZAJ1rBq)izB@*D0x0l!)s=Z<9%(39Xh7X6rCjWz_|@f1&>sKIw4qzHT`K?>kI8D12=Q=r-ERJ0kB1x!8X zH0FfhJDmw<#3r1{1P#8km~wV($~lta!FR5N`S6_w&rs*1tq9)*5|jkrg%aSxcahi} zs*7Ri@LdAMP?t)C58q|*Y;`$fLCO_0s)FxIsR#J3lBK|RH4L0Kvl2>POT&ThI(A*} zb=^S2xl>nut_jazEvXwJ>iFFx3fJjou>`+cVBn@>am(O$8}uanZbv_+SECK#cPGWW zC~ElK4Jm@(J&*$Y?u8e{?>=a@x*u)EWC2spd4M?~{2pY&L$L`DGeN`e5vDvEoAQ{X zc=$aoVLpCOz%$g7Xe;9PlmsQ=_p}7K_&p;whw52aI)2YVG1T)C;p6uLJX^iUSg`UE zjjHf_S?U45S7a&py$S0UJ z+%m+y4?T&v573W0lF^2U`-tMl6gA>LffOO`Q%C`EpTUa~_c=6MeStP(vVf`Qe94>; zabGdv>)3>En4l5&EmOXWP5E9@JmP+kFrT;|;Th^Dv=xc_S%Q*?`$Ym=;(isI#Qg?K zC+>GBhWbMyeB%CuXRE&$3q1a&Q5A9jNIekO3EPsyEdv85&S;$zXBrN1%d=|*uWLmb z-oxtDN^tdE-O8eHZ90o3;H6*~Y87$IfVV32B=A;4Kkh?D8v<_)ifdBT!0Q4j0$x{0 z0eEY{i-NZ{G+T8;n=x6y)N{Hs2aWd_s&$yKZfwGOOwhnvpD7!}rfeuF9(Wr`m=E5@ z@C>yH+KS+%B`68JO(nnuuZP$is?A{O;B5}YP+LfZ58jsWY}J#o053zMD)4$qJ%HC+ zma?nc3I&l0Ju7M14ZH53=&Jg8w|rxL&Plu-caaC z;0;4RZbU{K0&h6Q5fnA>wt*A@Z(B$Kc-z5?g10?1Ta84UFlcw?C|E;ePnqkT4&-9pM>jBHD`JO_HD_@Fq)u3*Hp5IaE_&>EKO+VyK-Y z!Uu0UJX_6REGRK(R0ZBlsR!_8$x^_Z4Ff03tb~%g&~U($JJD>ltJgJ`Mv9N-c7IPz z?FLP!Z+B6+O7p}L`u2cfs9JH$(6=Y_B>J-G$IZxSL-f^Atf#2amxC0cuK`j(Un9II zeR*iMDxl4nEMV$6CUeku^etdQQ*1&r6Eyl-m{N>QX_XX@K1;%U`V>4vmC#nCuT6rI z=xdh%m%fE!bEp=<(&<|a#ZVm*;nTMSo~`y`EKu2-Mpg9LQV;a)BTJ!gUl=%HW+jx| zpN2!<0qi=^>pF;r`xGkts-QX;f{xxHqHui<6-&@N42GeWidzP~!=WdkcLe%zJ2Ki3 zdPh+_nxcl@F_0qY9SbQy?>Kl-^p1ySs}s;>OcpTpoD-RY#zXHUCY&6ba0(MN^iE~U zX|XA%ONxiy84~8BcP2bTorSg{dS^>e5_;!IfQ#O_Vsog@gQcT)J`_V;AQ3)#7s9jE zMT`X}7t^Q;y-TDX(7RNYg5G5?aJtM&D0u}92fZuVb(Pn3H4XRN*8MR{bqz!vziUO| zI$bB0;CDR?L){>58T@X9o`l~`=*Qj2XhZnjLh)9L8h*Dyir{xUqyWD=;6?Gf6Pm5= zLYpyJz|?c@W)2z;zk8T)Z*0PSOwjPVpD7Q-raUMq9)1r=n2+DX@C@|`+KTu+DnUv3 zJthGzevgaIp?U(Aj^C3|4E2;m`1m~y&sNVc7OXr=qbmHKlX}4Kd07g6FTlX*GAp6v zOEet(US`)TUe~KMf-B0e!Pm)qT@?``Nw0aN_W`5`c^^Uw$omLhl)R6j+3FLt8IuJ}J?B&Apz+B2j0vB|CVasJjl3_J@>Oig z*OKCq_l<=4 z$?r6(BJU5W2lD=urI7a*44f^q5=#CaYqNq_ z0^W)+47HNDWx!h*dJ=e@(T`h@(T2cVh2p9dHSku06ajB_NC9|jz>9*nCNx`hL7OpI zz|?cPG6x&Q18*%RtR0)sjR_if-I=mZY|6Tl;(@oGg!$mD56@5=psfhrh7yzn-bNDO zg152Q9I8!V>ENZI7;00A@WJZ=4-dU&EGXHWMpfW#A@u;>ma-J^dcwfjGAp5EFB%Sb zz1g*u*VTuH`&9;iFMkeHA6ADbw=rftJAU35*Qat*aCCsO<1)iabXe-j!DnUu~SrXvVr^F_GC0IIr zZBPu=E)hO`3*q6p*Ng=!i)mCvUx(BKeM@91^z8)$XUwdGk~R&8zJ1uWuh+F74ew~L zLG2G;C+`4JxH<=lCFC6h!%zo{TZX(tpeK=cDEe_DGTIP%ODP^sQ6ujNND=amgcOi> z6uc;TM?rpy=#fDGFEUDzSvUt6>=G8ga|8cP;cJ_O3%e zZbn8MV($iuH&WEty9rW+y_+Eg?A-z{%HFNeY;_yjjL8C~o^v~MLhRkaggavs?qY(* z-rY>OCpP6?N%7dbPr`im?uTcn2hdhz??DMlV(%ddaM^oUY!1~Uuypnwg<`13B*JI! zad>#B5HOg-mA=7iY$hzTFZCVavKjlEBq@>y)k=aS;F_l1P{?0pH(P+y^~$lliy zl*HaQ65z7;t=Jr@?_lZdeGkP@KS+en-jDF`uxrKwl%Hu-#ojMc5A6LaOJVOf7&u>M zC6xSwhQr>U?E1^=`kRK!UIV7CsDGg7>~+ExcUEW_v4p*4VHj#Tam%o`JoF^?RzN>) zNJblCZzYN=Q$!Q|rch^i5%yA$0`^vc7iDi%Xtr7nZN_8)Q_oqQIU)AeV8WWQ30;_g zCioevu1r}gHf3!|@!0DoVLp4^;TdWjv=!M~SAvq*TTcR9_SP4h>}>!`XKzC&hT2FX zeD*emhX-CW7NDeQRK?z=QV;C)kfpG<84R2fLBnBhOLq12x-vA}Z#CNTIn@h- zj$Ut3xISBnCFu2mVW__1mO-xudJ=m5(2skO(T30)Kye^NGy!^p;6>0I3@Jcw2)rnI zL!sGf7}|`<0;Zm`HFHAf4QIlL*o1AEfF?k1Tc&Imo3g#6c<7CkFdw}g;2CNZ+KT9n zmY^i`#z=sR-dM3YRO4Xj=#7VBs0k9`qqieGJn@>b;A9ews?eJ(^?=?KSqgenVc>+B zl~8gg8V-8X*)_xKGHAH><`!Doa;hcQre;Fb`I{vQS8BFc!r#s?47H26W%!d{>qz2n zSM=kKWV9jvcB8mEMKl3_^Wa7J+XGU-UoE^Se|ti+RTgc=WC2spna`XMe|1c#k4?xi z0ZqVP15+AfQ}UAH@mG*ApFb0xp%$R6$X}BLCGpoR0WNu2nJ4>SqUXOXgK^WVb@+>*WNUoCs6fKHawlXeMI5P z>?@XVw;v2c?JsT_?hb&S#NC1D$DPP%L);xq@eqn=0`3ll7vb(ONC9_C;YGPS9Gb0; zK$|gHz|?b&WKM{?qnL1XY{D^2Kof9xEK`n)O*vjtJnl}AFrT{<;Th^Av=zBKS%Q+d zJ4FIq?oJh(Lv;Th^4v=#ZgSAvrGyH5gK{_Yo>L-hbGoxca680sO3 z@cDZf9-ev4SitfqjjH&2OzMHZ$7Lz}JpltJ&8&oyPtkDrdzxL(cwNuZ@Gi6DbIs~G zC^~!3i^3IpK`deKMHq&9N!&8*y$n5xy;snWn~~9m*n5rQ>lD!h?7aam!rq&Z0`}g5 z7iI5lXtsI>ZN_8)Q_p#qIU)AmW5WBf2_G;4O~BrVO!+7_(n`!yk*dj z8P#Y*Wd5WkTkhcP)2ze_)3dmatUX;9*q1mc4+KkBprk;~xPKdl!n6PSW!fH&A z7v}$7^Xg1lBQ|ACN%6?*B4IvxUEvvOEwmNMTU&yX$m=EnE_vO>=1{EzODAt#D27^3 zB7E}Jhlj^qGZvU^NTVw9Hj;WEZ(~^sd7Hq%DKjgf9pf?M8 z5_+@IkIB_&L+I^7QGRA7Ge<*jS4a``=0Xb4+YMe6z1^YNY988*$pWUHvj=lR=+!b| z&)9@46EyVZGo>yzrCw4z^l}pBqt^h>P>pCSqL-JTB=iar;G$=W&7oQVOGmE>ilLe% z!bh(K9v*wmSa8xxqbl?)sR#6wECsz144gEx5=yqyaL`-Gu0>wgVj9uMpmjji`CB3i zS86Y@gulIE7|Is641fDTPvUQ1^kaH8+7N&HQ#^p8#@~UEBK#c$Dd6v5cv1cifo7{i z(Pm5*F!h|nm=oe}DH9HlO*n!H8h=MJ<*3+{qb0@T?-&X5`8yV#p^igak-y_5D2cxl zB*5kGM6o$kC&AMBI~j_hPLT+ozf#@Rbv_N3zq%qWGv_d;^sfcZJ79R zlLbsY=S}8>(0hvsZ^tIQ!vqbzcbW2DY|8tR;-U9}g!$-w2+vR-p{F9k9#ZX^Jgpb~r@bDCD#)6ZtX;g*YH&PGieJe{r?>iVccV;D&{DFpp z-jD41$?N)=hI{WuT@hb%;8|$DK-BU3RTQq%Z(<34zr(;C$Ksa3?@#DS`2B@`OtMBB z!tWo7ol+ud_$>n|g5R=`0{oVP7sYRRXtr7bZN_8)Q_oqEIU)R3V#3O?37wgs;g@2{ zDzPc6N{WZyY7*w-w>msSt%0^8errll5`JAIz{Rht*c__0VCnd+4aHF1B*Mq9J3KrD zo3UVJT^d#4x1Q7ke(TFp@Y?_ePM}!{B{!ns;I}cmHu1XBG@Ofl?YP+7p*Dr0v)4lu zuFz&;345Evz)i>EmSJy8=t=DLL_g+PqYbgwi(+qz8hcwoim=xQQovqccv1FhpxLS) z+KkBprk>NEIU)82FkxV9!XPGS>K#7Pkz4)1fEvHv|2cYK=C; z-%N_LC~Ex8h7{p%XGj5myTFU`C%;pOTa(ddOcpTpoVm;i@wXcjc8^V%#{`YPJ(yA( zo3f{*c>HB0%;#@DJVVu?t;k=!1SRp8lK_{$2C+F*jj(k7@=y#_kO-eY6CNIe%~-(F zM58MHnx!82Ymue!SA>D{XI4TK7dEUGt^OND*|}51SJ7@j0Cs<9xFD7>Nr?B zfX72I)Cm&d19&1lJPMn!pygy5RRMU4)B}L0%2EJ44F*o2SqUZ2py2>`CcDn^y3VHI ze%n!KQRl$d$vamRuFiR433=zkz}?5O^6rFUsJkS>C+}`}cn~&Yfyuozsv_?`sR#1z zm!**R01TWuvl2=^M8hHPVRk*@bv;TWHD`7CwgYD!3-NVFwyjWXDXGWMr9=3*C|t8A z#1aUfgn@gI#VrHj)6kP3dH^r0;C9pFG30+dJ_vZ zlLbsY=T+u}AbgDpug505!2}J$H<|KQY|7h`;z9V1g!vG@3lC5DLR%5S_a!I^!Ve_C zh44eMIaD9P(joj9ilIJ{2p_^v;o*tcj0G{D)2Ir)1zJrLJTmO@;27&w7uC6rv3hC|$X>{{RJ+JJ^TwPj2`+om>zqVMfC5`` z91Z_@eBhO*qTtPhW~*6fGbRg|dd_U-guvUG3A@B5$oz|TUVHRsw(QE3xv?p`Ns0&F?h@vM zHxHhn_CQ+^yjlrL0&hRFg!$kd3eQl7p{)qsQVB`|?{Eol!8<~14%LycbnuRXg2!Y_gb&^^ z@N9J~V?oJrG^zscc&P{QPLQR5cOnd&F|!g%o=n35?-X{O>UEt)!~IsRF599`hoGZ( zhA3R0GsP10&Vpg6v&Aig-Z{{d&^s6XxIr0h2)*+uUO-Vp??Ols^e%!Fpm#C6D0-Jb zv(=?&GbRg|dd_9c388m66RwC&xRMDPdRH;!>e!TPB*jDTS_$*fyAGbAu18xDy&EJb z3B4O7z(wySu{l&X!_v{a1qvRKEfGF?x52a3?TiH{chIN`y*s5I(7Q{Pg5KRQaLUX| zD0wdp2fh2)b-&m301fxb%KV&q5WY^{L!xkX9u`Z;djy7|9u>C?d5=L)BJXkZNzhkCq&+hOn50a;bkUhOJt&5HUm|?+K7fY@ zU^5n&d_ZBGTIP(KU4gLqQ>5@kRt5;1}R|gcX(0u{(xqy zKhb7P7BKakznBwZ?{6mj6PwU!RrwqOHi@ zN)nXB-pUf-ve#K`4pj=4&fY3e47I96`0T9)56{46EI?UU18uv znUzp-Z5j@H-PqOL>sp6Ka6Nfl_&Ry(iNe)cUo0VS0~m(dP~0-)Z3I1uyp7S1o0HLo z$V*e)l%hsn4@eR6HiHz9w>i8hd0RlU)s|>8CJUH)PEY29$jdOHS8PIWCTQes#gsm= zDSaiyBdwI zWH^ng$QvQ`K;Aa86!Nx(fzxDGLdorEIOL6F*A8CSC>ri8mW5eWD7Kf>Xoxy~V?^OP zjTKAq8wbNs(+@Op$gx@5JlPPNWO@S1_Zz`k!ziIHI`0WJER@2dD zOcpTpoEgjs;b$;mW^BSNCTRH0X3Ea7DZ5CDhu<6t^YPmio}uQVt%%=l5|o7B?h@eQ zH&1L1)gG{P{A!^XYEOyq@yo))Q?MBeR_bU}g;8$Rm z>2)ojk(#rbe4UYPZEY&lx!-0qp+{%1Sro2Vi&(;75r&~!#Vy021wDyDg?`+mj5fqz z8^v~t8iNZVMHpNJDPV9hyeNYm&}_8?ZN_8)Q_tCpIUxr3W`Z4?un!Y72KQykez7V0 zONz(f0TSjjcpyAO9fYaVsoetgQYXL6pEn^mk6K1BjDk2*o*}* zN71N?!K0-f7(7On!r-wmaNf*HD0w^$hrturb)wgG5{;B;W2@@Kos1r5HBJ#rh&vSq zp64ZQ8RAZdoqRm9yQ^+4RMvJ~QOgMssARzk@;XgI{($*#M+ zuDfZtry8a9y1cpviq77>qHu-o6HC~;9|oT1C2kq^9)zC6-b3iek1L}MvG)kYM=5IT zJq9Vl-s6x0_MU(jW$#I7xI-Cj#$*9g&v}|TA@-hO!n3gn&oMz`?|G)Y5S#L%q#FT*p`D`+dS_o@UXvG$KJmIfrQx1xWJ~HZ_&Rx?i^A3ULM$QgOBi^X zm$+rf`x<%@dEcNPKdp>5MBaB4zo)2?_XDH|c|Sr5$omOil)Rsz;r?W_8IuJ}J?B^E zgvk4i3BSiC{J{i`yg!-pS8U4PlH!r~kA(T;b;9wDp_V~gk-TLkD2cq~B)}zad9gWE zE5OppTM-H#mn{)Kc`L)i{mhI7CMgM-IU)WwW5VXK30p8h<8Mo*^o&i(NQ%c_ zFA4Mc>kZFPTcNGUUmpod;;*j+xct?K&7tZCOXsgY6g)9oB7FV^!o%Inj0G%%X;j7E z5UB_LhRRa-8wLYs&#Z)!!)ZADjbPU{Ue~rX+*93BduwY^wW;kO>iBIh3fF0*Sc2aU zFz{3_am(O08hR3bW6+P^Rz@4bZyd$(6gB)NK#JhEBcuSoiSVNMO@fA7l+k8P7BKak zDa;AsHEI#_|1Z6sM%;M;S=1i1LgX`?e# zyTa1(n+pYx%$5irzun>Cj%LP!l|5)wgdz}Yh^p=2Em2fuoD<-D#2 z8s$zi8qwpdMqVr-t^mVOrnqH@TL3+YxF+=5su^vFxE6{#2pR;PXc2l zlsuA#L)=m9I@;?xhK6@-ub|p+pO88hqQ1jBP86=w@nQ*nC%`b&iQ<;Q?ecRHj9erG@m@H-P;6u+~e;SOcA8IuJ}J?9+egz!6;3FpNooX-Re zzYCahVQk7plH%cav4r{fT>=k3qKvj8ewRs55`LFUfQ#Q1Vsogjgr(zm6%<2VEfGF` z*TBP%D>D|XTt}lS{H~XJ!0!fG3Vt`jz=<;}q2$dp9QC%_zQ348<^?omdYFoIbM>O1?|OA@DtRz3+8>K%?A8?uY1cR^ubFgt(7kV3xJGWr+I}dJ=J;p&wr_ zqYV-F1;sBZYQ%j7DMH-WkOJbqffpt2TWEN`7ut-;0;ZnxJ##|D{lJ7DV-tR2f=1lW zO!*}?L&F2U z&}K{)F!h`bnG-^9BPMJdo3IHJH1yI;*)%q#hopGuZ6;wpdYi+;P0eU4qPL|4C85_- z0$lVmVsof^!P3#|4F#vv65;Rc`oP04EHf6I)X=C3y?#;;==GPSpf>=9tp>6ZN)Dpo zpf{LZL%gn`G*WYL;i*%aPhHN|wH0uG&@go92yQJ3*K4>~g5U@khT2BlG6-%9Jqf|> z(2uW~(S{HlNpS~?8iJ!BMGzbfDL`-xyeNWWq2UQ%Xfq}Yn0n55=7bQOz=R!R6DBf2 zLvRvPCdZ~skrWTXsS@TRI1L`|YeriU!RZo|gy0Mba1k`b=1|Rqr6V{C3Qnsf!bfmt zc=)Yl#)22QPb`zK3c+2a9uS->OF?iq7`ED-l~8gX4F|zJ*j4Lw?McJE!dG9&HWeG& zb1Dl}=Wo6!T&X&-gui+ihRTUshQ9{rN&GdUAKx>h4e?i?Xj0VpTL3A-UlXK&zh-z* z{#u~nF<)piCJUH)PAhXl{8>y;u?Zz6X#BM?r9C!fp`>{HEs`*wzs2xyTQk~<{4J57 zB>wi20GGeL#pY1iuyp?RfnunACBo-#KX~}HWyS)Q187vm-+@vO{2e4q;qPD=IEQ8> zlsuG%!{1@-TIzKjPQ$yx*HLQAHJ8*85Ow^H6ou<_lvsk_(J%~kjJRd+I~IBpe#fC7 zUooQ%;dcVX6Dex=odhX@-^q{y{7!)v#qU&Tc*+;rjL8C~o^v{LLinA*gfn9k&SHXw z-`Pw#CpP6=N%8PIPr`is&WDG4o6%Op??MSm!tWvpaPhlXY!1~Wuyp(`g<`17B*Mq< za(MW~WyXS)D``}P-&Il%_+2ea!S5OvIEQ8>l)R3HgWvV+y20zZkw&@OB5y*Evl=&x zCB)qV12eD1EkoRG(36O}9sT%<8EuHTJ1O2pQ6uhdND<=hffNvTFT5ym_d&DO{b(~L z3z&M&1I!5#_aGAVdddWGTeG3d2^fu@XwYPQxMY z4R*chb-hI+HBH~Yy$#h_g?C^btlmY7dzM9YP;&;pt=OvG7jd`Ao$|X+YtQ$>?@7T= z;_gHAW8ub>#}Yl)Dx z%gw>WD$(><`=EyIe)!5S1M&2b0uqqdDe;< z+gi!lnW|z_&RW^I8#47v*~=UskNcKDeYh5 ztg%*Ux2;t(`IY%j!_5TBS}mWN(*Au{@kp=Wxh@m%lVHF}R5rRqL_k559wt92ep z6?)l)7X4`%HEG$deAT$YEj>S%mRmmXGScoOXl*uXpR~-h$&?$J@I~PiqoP*LDs|yCbs|Ltg81H34K)ztD-R|tgaQuq>R~E?TtZoxV ze%!!+Bpo~N+E%OkgpuDO1^?!Nluj+yI+K@ixNTFpY_qlQVRP1m-iqPNwbbQmG4R=@ zwhn8(36dlK$YcZRwWkP=_~u?|If%j=&dHZ}q`v;c^I)v@n`$lR{uHOkmkHYkk*7B!m7ncv^TYttO4_^ zfwna$!(EdbQozIO7h8iTCw&52Lu_kkaLi{7v#qV26?XnWuHG81AL>~n{Np@po5(?) zwXJP!m&p%bnhynSAAZ<{HPW_rh(?UkZ~w7I+t!$9%-Ht!_H1d+I@kiCttadq?Cu~iB!r4)peHGZBoA(QW&@00I^G3c8+*xJ#sCeB$~FM%z;5d0v25k*Y+Jjq;G9f8HEj;A zb$60Cki2JV>#$R_cAfUG&xpBvFSZqnO$;enyWubn|S6a(>C0?^LTxI3l#_Z7WxD{#-*QpUv-? zpM`;IG^{-TW;Wkv(iTsAlgpR+5H95V@*U#5(f#*0-t%~mTV@{bE?JocPW2`ojb_7Y z;a?yDMcZoS#ceg8h-k!-kvH{Gwsmwg<`_8{BU;A>V||=q9ba**Pe>f= z6TPuM$*F#_KGvrg)~Uf*pJrR9b5zc#a;(pku|A7qeYS0#!y4y$V||`&oloTg8Eg48 z-PF2JALoml7k4qo`4YprwA?sfmNd?n+twAKalX>Fu8NHF)sb<&CK%^yqvL#?ZC#(q zU%fOR3c5iX=NoP7rf9^?k#WAowr-8a+~$w-?ZG(TVOV!o9Ot_d$N6q=obPcq<-Phi z-)C6&2jl#JZ9T{ld8o>9eptr&5svetw)GfmJnoJ26Snmvm8WE!<=`g0V{wu7v_90& zIIr(n4)t?}^?bRZej#b7U$m{4LPPzsZM_m1>Q^H}{aP^8uSbXa4cmG%lYez-J{0tp zHq>w1);rONcOygno^8D!jrqVI>JNjV{>ZRCt~k`6Bo6hb-cWz$Y|78|q5i_Kz6^%? zE8F^-gYr$4L;bA`^>-ZV?``V`*7(sI>Yr@uXDYw=Lycp7>sNiKe{){n?;Pqs4C~Kw zL;Y9MQ2%XP{{%y=I$`Hwt7XvY1Fn{Zq>s5;4w66YYI%5(kyk4~!_PUR&6q4;>NzVh zCv+KZWhQivO-M08y9~DqQ&x>lSxr*hJ-=FA!n_Z9wFW#qDGY5TUQ`zeO8CTAT_wQz z&{u1TEuS=MZCDyRsv8tTb(aY55KyfH4^I$dY)@OQN28i!LAAcr>pf3xAWIw%s10G@ z5!|eVk{i?Dfq~kDU1_gtQyT6Qq9&>ya5cu%W}ydg{(8k;gqQatdsmM|Z@;qdU7FtioH+eU(tz}r>=T=2FNn?todEFHX&Pz<$$ zMEKy1f``Y4F&31Jp-~lhW2GLz8z)NvZ#)b}R*8pY;ND#P? zl8S~yUx{69UROH}_aLgH*sc~r(9v5Y3fE_`Sb|;$3_~puw+woFK~F+&Z}i*BMjJwJ zABy`@)X>`xQUtyIAqD6i056K(fza@4&S*0x3z&M&!ORJvcL);>jZHX=2^xA!nR0k+ z$`O*{p?9Q&`RE-54^In2TM@luBq#~JVMnJRL8^8(K`VO=7URwkKRe}@Dwq| zf|FBdRE6HDQV-~zCQCu@bQpNELyEw61*8DJE8#`qy9ye9 z${B6OWC2spxrR9*_^xHbb+HN8GeLvz2BzE?n{tz+c<|jUVLp7fz{9uJXe+{Zn*=4n zce@0*@ZBLchw4sPI(&CQ!BlXG@Zq}$9-bq{SdelbjjG_gU+MwA2V^PmJqQDj-ex6~ ze3*s<-y`gL)a!bThI5f%qDfPhJSF#lDzJ`IPZL<MB2&cMsJ{lAJBT$5D4!B67ucl6up546rzKlLZfU{L;oXQ;o?RveUnBq(W6 zI^nA?Z%~#In}f0}EPYUxgJP)VB|_Hj-{1DHfUd~5{VPKHf8X}wO4onQe=*r!&+{h`?Wv5>nzFFD%J`y-^i~R`Z{x^d6)_ya|>$ub!O)|m^#v_8Q+w4 zwB_;5jC}WErJO5q?pK+s;H!TgnBY74Me@!6JZtsL9J~QKEwa|&GHgQy->1N#H0^?=jAi8atsrlOFYYV#<*mqY-^S9Ag>ye zwpyt@tN(%3y>I!~2vN4?JfILz*0mgEYiX3NZCl;KFQEH8YaNHOytS@N(f=Jp#Eide z&Hv5j|KM{-rgtPv_;Dl3&km7^ZHw|n&ac7gHl~SyfqzdN>W=R`bX{$_$$E&A zxgon?7b#PQWJ(357>%^nFEjaMgL0EkHjGX_*+`#!vhmXLlTS7Y=9b8WsDDpBNe2P` zNm;${{cvyF+RC}c@6R^r zV_SXw*(Npro{O+ci#cP`!U;oWOl&UP&DBb#Wd zGr2BhZG+e5%rn7j+g`qkvGHN(^7h|*wpuVz4Kv4N>RMlC!kRlzjWe@yEsZiWE;1!7 z+Z0UM!c@2PqC#60UeeUH z7Mat9Kj_WUb7rH-3_qES=F98Z<=BLc%Pe;!UP`%}R@yV(+-vT}GoH`rDq_ci$p4}3y1 z^xRp2g~?+`lsmW0Rn5u$IODCY*p_YbCJ-)|tT?(&Jn6HVGkG&#$S=TFX)&xKw+j1P z6Xw%d^DJdsr84vB+As$PXkcm&h``hyeZUsA=P}Zl<)h0T?Rm_{S`wA_YR_Xt_m0Xo z=ejwsexFRfKHooIo3Ftfwk+0RU&Gpu>+r9G^Zj|0Cp*Gm8(RnbmpV4b=llQgfBy@P z|Ng>CVg9#Dw`EHU^aG!!v^Y?17r z@toUSV^I}yr4gyA*q!J4q(`;3qN&T)=b8(3edLI&r6t$Y2Q$5knB0kg>0`&Iiz+=$ z3i|V~c<>t4_r=wP~)ZW~j zRULiguVXHHK5l~hG#q!zUo2q)HfJuTF)}09p8hW>pf({^l;X>;w#AE6IA9z|N9lpR!vfN zmdty1w<&y?(%oY;)*XLf$DGXj=iL8>+@f@DaaLwGV<2Z6Q%0ooZEdZk5&inLHf1|% z8jHoord$p7kNxB-M6Mqma$M?HpKHq&no1)J_1mGR26OA%Ku!&|MWHSg{=*~EGo3!? zI0?tfn9(m$d_Aqj`noJOUx~B5g(_5cjvJaW$nvX@vgt9=vr#6cH_dNvb|M19wW)q;{G;Yx?Y2 zBT{<>@1PO>Tg68j5=pgFI+2SOEvmtZV;ioUlE^w|57Te`GS30SCvyxWi-usZURtG6taF z{4%;x7h!gGJ}vbcvp9Q@t%Kd^EO}k-T`9qq!%ksf|AB+JS+J+Y$jPjH*)qCua7L>IIv&x8kI52t2C`GiwX~((Ei=9-9P-^eRqpX}5C9&n?ej7G zSTi4>n)JBExQnLHjCA0WFD`PnVPqT2ttY?$pHlTjyeQyRz>n+VI&q`3v*PEMvjOD( zFtXxpXPzobfZPct5XHU9ID)(nefiu8BNYB9_%}=QYlQW-LKeG*Y)iIA75havnw6JN zDr}Y(9G?_hu-C*O`}-u>`1sHj_!qauy)=HNMqU;*pq(0z3f|!kaOcQMG4GG{@s2&@ z0|U2M;fM$u*5RoQ#~9GOBLV0A4Om4;dmAD0ks95BaX&J0;dTplwTw1%?C83}){!kR zIoGkMsOn22glF8TmTtiA9YbZu7 zLR~=y2rrbMDBy^5@$0)U3$HAj#s_H|{zS7Rdi!VR zo#^bKrxxl|u~clpepFtR_nD7R9eEYl^~eqdM-cc(!k)b@+nSwU5Y%MHP-wxYEO#o+ z**d%m>>S2mVp~aR@4`=L`^c-rySS+X56Y|Y z-;KCf{O@}K*O)N!w$tR_>AaHX+zYs7^m1$${c>#An9H$i1y@_kUyfZn2=Fh*c5^Pr zc8^|;U1#!s&gEC$3b^h(YrW9b*!APC#%`cpjomPEK>~nAZv%{6YD`%h;hMz8wzWy* zYHZrJHubN@_W0M;*ukS`sn!MK$FvVzQkr5+oIh%8^WahWou@Q5TAOKCW972)fAp%H ztFc?+)!=TlOeT*P(5u|l*xtd_*sVfWV{!MPeg{@x{c0?Z+A7{5S>bAIKfJd7wl#pS zZJ=C@&ERBKKc0-==UapRb>VPunG1(Q{&nGSX#9mkxrH(D!r}19eS#zAS=-=+^TOe_ zhP7S%9fI3qia>iFe_&+Ng~J_eYgFjMA@647F!;Arj*VP692Z}Y8MVC;X-CKVoKz~;Z)n27LD0SE*uWeWA&%w+8b_^tik1_8HQ!#Wj(Xng~OSX zc8a-hI4gYNaCX@XhdakzINT+C;c!j_#)=mXcLjQLZEH88w|m@$!+DceD|6v+kEwSp z`|m48{2uvv`C4q3`G!@;?ZW>0giD9HdCuj`f8UCm$E8ESQOM-M zgc%)<1?_o^HEv7P$GW*aj{$Cp%Ek6P#uPUx>d}^S>5!wUGWj|A&GR$!J#gu8HrAnJ zSZ!Q~e_c9kFL&v1;s2eN4r8wW$!C=ui{kMQTfy|M%ETQ)7KhB8(J?1GYTV)GeSIV zLP@4qx)En+IG|{6$>HRMCr1mMBUxM;Xl$2rnRHKCyPnqS+!x6$^O#*CkC2!JbDUB| zg;^%D5x5#%@~a<=Stint`_t=kaw3M=CaYscAHK74{B)+dh^t9*nuzl9trm_`N^QMH zq|)i}xB!{%(Jzl9&wd>^Co1-Hj;G~tx?f4vgKD}3H5F>b>xY^+3dd1k zZF`%0An9tga#;*#oHeZ-IQx;yD(OM}2g*?7GM}HuRrgmm5$wWZ1y@b@jutLvq;x!-oyZ zHuN8u8#<)_)^!8x`u87N-xJ6G?L4-_Rg!wVFdT(Dmoc;RabXHq{pxbOa3q(3a1@VY zT3<>R>+0HZR$D(JmHJ<`d7F!M3phO~v}Ly*#tkb&%jrzquJ{fK+tJ{Lp6L#TYFSa-wIJDqi__}=Ve~%YEsDJqvoh{%x zle5hy;xQjn3;6D!rE#3cR3;UE`_wq=rM-Pz&42sE*Base9h^+zfhs^1=Qy}}BJVJH z-=wQ~Q_GtfkK<@*C^VM(wcyH&`>w-FbA4yqmvALyAx^gV_QT2dUOi-I)dLqMtJn|A z)et^Y1bMs76GzUirHH<}lq)0u_1>$)2gJTtWiw=Y%YMC2x_9pdIInFi^-B5s{Sj$> z`&9FBlETzOnY8WAqp-S7Rjc?XYt9wK=&&k`Ao@S zcjYJ6q{bHcCe7B%cMfs|NiO6#*E)Hz2A3b?O^mm%TtAcdRovHc@8dvY7Wzk|@do*C z|2JoTadCQ=f;?3TUv!MYbwpeNZNlf>`}>`co+;Of@cqlod;wRJX5wH)E+37P>%qmA z|LAXa?%X+*!vFkF7M(luGc!FA`>0a7+1WKxFH=vB4C4NwOiM|wyvT)@aV?Gb`XCvAy=eg z{?5pXf5=;_RBWWTZnB)&hVOO&R?;eX@lx5dla>?kMNRQPt{A*ttvH>ak-w+)&%`6l zaHTNa-s;P`;k?%9YYr;v(cb#Z!lB;+8H`Q;-S6bOt@EB67Y*$esaW*ARaFy*u;rmQVwk94W z*3z?Bma6<;_#3=Xz#CQYTX?047tXysn?@tqj$=!*u3yIXEIrfH-P3*Ux#!d%j+a`h z8;J9#mR$=&GyW<$OpLmCOJ6<#N+d;Q&E?uv>n?;6%qk}cx zb*YAzi-!pCb#4){7po88^+UMFZyUVR1Mm@l>~p zDhM-py(g>@J-%{f?yatts~ik1T7^1C4`@w`k(453V5Fc=Q{=JYKqMbMkwQ5X>cIP= zzyyUwjNg7-M9c@wj4BZ&=BwqhTk$wFcKQKd#-h6LD}J}_0jfJFgU7iQ9^_I>nv^rw zDMavlpN0rp8Qc9HBbaV1IExEUR%VI|H=fM9kD86G=H`ou%8T!YDMmnfkHAp8P->?M z;mB^Y!62ZTNq4$NLU5J3sW;;UJEO=GBJ@vv2@ptV5W+Dw!tw#p1AX6{uZCxja4eCI zMh7oeG04z7+WU-B(9}fi4cG`>tm5(4Fmh2*{^e7d?vEIa!TMi*=0*_BNTWxc9-MF8 ziz{ks5QZCYEfDzS5f)?DI=;$?=K|coREI}d=qB3qH2A1mSl45`;@icD4tj)DOoKqh zVODSk5tz1kV6EdvWU2>+Wkj*k)b z`**;A!i&b&S9sBS%`3cU;YD)-OPtgyyl6r(^vs(UBf^XB$gDpuyy!3~i0CI}pM1+n z7)B-IA|q&Q8&Q^wziQ2dtJVyXT`0nmu_?lm@m7@?Z&f)qd*#{M^YyDpIn0`R;H5Pj zEm(=|J(reMJHpVzuxcMo%?BBXOiy>om0SGC= z{}KLA#4dDSDZ+!s|H)s!{#|zRp}p*s*Y4b!v~Nz|$=dU|{NeL|NN#--ihhm>mr~-h zYt6=7T8 zG$<3aFS-l_tcdYVj5Iu$W_pLuv}>VPp<%-m@pxIt3xlE$r5%JhBKk2sO1TLc3@w$F z{6L{(hIc#2_(XD%N%}Sxy=={YMSx}o_Ym!P(OV%Vna@TivOmrvRvA5d30aZR(`dJU z*SeB)ZA70Sps}^p{w!+W>+bRLA;gFJ#?`g*n^(3!IB04doXDZ7r8_g;H))nd?}uK` z7F?WLt23Z)kESNZA=Ih|nYlEkK*YR0*SZWJ28zZl2>gzSfmt_6nK{69>RnSh~$X-EiL0j6>Z~Fx;<@i@t13kchh5y&$ zCGaj(gucfhBK$v0JB0ry{68#|L>DzG*X-*#l6Zsg|AhY+Q*RB3M{!}}i1>H33AJ)U zVk*al{?kPrWd2`(*%kW~vrA{%^;i!DwDSwnqdNglM~2!JBV`{IY!@lA0L+FI>qA}H zR}0*ss2(79$)z3=bk|mxkAg*!uOq_lTJEJ6;9c7d95H%_@?R3Z+lPdK5OPnjdY9_= z6#wk_{rt2GPx=QN#;x0HYuoOvsfEXnpR8R!{16`rG$IsI>wSPvWPk@#26&eY@xf)` zCd&YyI+>Iqe*UCnh{J-2!ns3-MhpJyr$o;`flm}ox8RX0|a3r_CV!>oF44i)M<2K>2IhT*#Q-R>N2 z7gqAXu#$g0W)cj^;O_+if1{-2S4ONIkP8X^+Yk8fCAbC&|5y0G$n6vUuke2b|FvB> z32;iU;Jjh`sytegC#C|qO#d8@+ z#G#X1;9WsE=`cA09?=L4T>HLRu5UKChl$5F z-iBx-+1a;d5cCnGamq}=6hdt6JK5U*^T%I?sX1U9H77GQoxy0fR#p9PYoDwt`F^6R z9GEf_`j2M4yGWRRXDq+@H;-6p1+d{?cLcX{q0qC zD&qEjI?3%l)#CR4&W<{BnJscFg|Y!V_lqqBJk4CmPGz&RSH>sDuS`tNj89Ka%)+ys zqOvl#T_;|^pqI8=>La_|y!YcgcAZe440Qf_hxdO5PX-+s=cx(JkE+#BCs)-Q zJL=8LT#amFZmYL;)Z4mA(2@L4G=SG}>fMq$ZF8M!w_{tScGNp;f6Q0a|5a!5m*`+> zTwkW|R$(;=1sfP4!p<8?BbezyV5C@RTvP92=F85?u=KK-r+Jo%taJ{gVBpYe>YQ$S z+!Wti#T%!V%dXdW;b-xCtFg2CprtAPXGfjqhlA^F-LTY!RrTRze*1UTN4%}7k9k{H zpYS%VKILseea2f$ea>4$ePQZ74Rz7f=eR1(`>v@k4ZF<-`cnQJZm(Eccm4;*QNt>r z%2(A_N71l4ynm`X^e|&nC44R3;8#(Gk1EU{Z5{;`<h1f}mQv(RU4|3!_TCq6N&wdWx4<{hpM3qd8HrXX?4q zO!e_h#d&0H&%4G(&R$T%1m=oMkoD9uYalM*4*S literal 377311 zcmeEv349#ImA;9&JluppLP%)DH4f7FzLbC?OFm>BmPfKZHc^J2nU;E_ndzzO8676Q zi|vr$KmvpSAty-)N6586HX)F(n?1AlZgw|&A5m<~f3NI)X7~TSSKTwyt(lR<5iH#L z**(?ORn=AXzN)Tz^^RK>J7Q5ZaoVCqi?W4cxg<_;#OtDoQ*mE1rb=QlKQfJ6&Jw34 zB8W~~g@TbTWvzlZZCISn&y%_wwZ$33;!JfrQZA&$lEk@4o}W$@r%R?)NR})sCnDv< z>4>$;C3@LejyPMrtf1!&aZciL-wTp$YgepUvv$?W^=nseSh;T9s@3b)t{3NW33)41 z&Kcso#Kp)`lvci28p&Ccv1;{falUHDbkPtOaHe$GE?IeTVd4z+o{=o7{dz}S#1XcU zmPW}IZ*auLiBphbTwKDx6XK0_IdK+ZRK1fWD)LPUL@W}QmSgn0K>u#3Pye&goV2Nz zl4ce?Ca1;XVR5P>PK$CkGE!`Dx+Bg|kf4+bK4&IghpgMOVu{UtsyfUT5l5WGJ;Rw#r(`%IMP@#W{9aPn?OgqHNdk;(MarW~ zgOY9p6bQu%isui5;(W_cys#b=U+;tBMUHp_H%>3ulZF%*4~t8pO#N-*jr?nY;)IGx zaVh_5;?4Z4i_7>|ins8uA>L}LC)46`Q{^cOjh}54R~YszB()^YL%Er3x^&~HQ81*A zE*}D3p>T7{vU#Gkt_vl30UYzj4d1 z-rixY(~#Mct_>Qptaa%!tM%yPS#4{%P%eyWz4~NXdylqhM`y=2ZD8}zu8!W0{;gVc z<(g&7H!NGZe5ux^?X}87sQA%`4<38?z|5ihXAXUF=HSyahaR6f^z6)`2anx-{|~?Q ziKCA`Hgn(uNAA6I=D>T8+;!W`K?FWNbMPxOhrTd#@X?ur56v8W4(X5Fb@$AHyN`VH z(2=`8aP&h@9DDZg3-{gr`~%-ScFV2qquU;P{v(ebd-%@hpL#F9>oLlE=&qTAU+33- zk_+VU0Tlbp%)u|s9Qr&(9(v!*!OyvM)n*QS`G?Qk`~275J9FT|4+&^;w*XL#q-u|7(w3W+OuGY3%)@aVqdV4!XWERxUN-Re2+a)Q^W_UHA zKaI7#VcYtsVe{CJ^5Cb>g0wL0p3XzXp0-Oy9+QAOoe~-G37|oZx@#rf9@nxq2C?SC z+R!F3RqzlW7fZ^Hh(yiPd6F*M7;|TtXC|&k<~<;?q3N2P%@@%UGpk{OAC-DuD^d1L z)-LAsX%uW4+Nd;)QWn&As~bbZ3`QTm5JnE)6q+bTi>0nX>Q!q3>8;pTZ|; z+$h-Myq+oUC^V)>qpvItasJkgKSC<}abYE^m@JA5s*yAk6vTx+r*QQ#NfyQH`xECQ zwkQqTD5Q;K(J1J-(zLi}D-}b3i3@NULFr{Az=zRI@P=vvs#(q&&6bj>tZs{o9ejeQ z*SUY*sJ=LFsu^6D4r3OoPIQ+gE=1x^d<}Ex6{}#!@JZ84hIor_OuaR2(Yv!T`j8S44RtP9|x(N+v~%Bd(0{q@T@*s}k4X^;BFM<+QEe z-@9XK)9RfQYr58N*|%bUcUN|&p4y)6-ICvLh^rNBOe>oP$gUX{*B)1`D0xIgQJbZX zcw5v&1+I%G&cS;}vW2W|CedIUi<8zWVcNKdvW1K>C1O2`xB=*7fGTB+W&KMN~d#IIGok2N1bE}7PIIkB#v2N|vTIKmd| z`^yZ@B-Vo&WXqxDg}cU5*&$k@4;*Plweh$D59mJ)s7peF3Gj&s{SJF`vBrtD6uVmuF;9lY9BZ)VlZ`}eFQ7gnB9Tuh|vQaMG zO`_(Cv7SXHpfMgbfrwm?82PdZN*99BR@nr3i@|77HbGGtjJC_=vhLEf6gBslSDDwC zyUcUUeP}~DE+)7Qvp(aKyrA_@(PHXFEEpSn|7nk=x&n(o3pWZ1?UA{^>k;}?wMSmk zH#~v`Brl1LV$Pb*)9R2nh^Ni|n4cc}n4f`_Rd^Wxb^j??m*cCIV{o)%`WHj*v0Kfh}JXX#`L5mGqz@pxa$^O>R9&|O-(Ok zG*h2&6K0H(p3QMOLr>aQeqUTs*(aMST zpD}S3HX>)!GOe=EKF5qCy0F3@!t-`5+QX*=C6&c%L=cxSb{tMj&Q{N5`5 zWH?ei3-H(ZPAuh>A9SHNG-co1h;4_{adtEb5~-nE!t|- zZH*(=a^2QNG29;k&W30+Rhe=!mZ2sK+BE2xF=#@mPEk^GXQ7zZjR~h%G<3Ma~o!@nfKS*g5A8(md_2=e?k8Lr5Ihc z{QrD5EiKy`!8Zvf0531Qe>D~hkr)5h=T%Mn!7cY_%(VyG{o$EIhi7g%Fmv$9nM3&Z z5$3Z$tN8dF|5;|xe?hwjS)Ndb0nO^LWXY091poOT{VZ8BB=xkRbz_dVwR{$5ScOrJ zuPH{W3HyUHhd#q+15e`hs*3O9ih}3=4LYEplYv91qL-`EN-rW3sYGe3)~-SH5Y|jK zemkvVHfNO(+Jo<_HA!)UWjTV{B9us3Q~06N2RZ?H9O0u+-uuIEep4M`@T0HI9Kulr zp5Dd{IQE%GpMU6^NALYA&LEC__WqfJsN@4k$bXyyM-~sv9C(_KCcdmyD|YO2-#T*7 z0i@fSvr>8vf$FnYxYB6hw`LCAi#8A#4n8t-@U!)zDxCy6xR5|CJGyb%Q82o|SENqc zQ7+{yYaF4$ad6Pp!+xtop=ygf0z@JMo#>HAXAZre4}Wlc^mM%_MGU<7!^fU{_Qj?&>BPco=K-ilLp zZ2+8GZ5Ozy*cW*S(0b7@oE+scD25=x^{p8Q)PkB@7fHUjqaS_n`Hwuq?F4qeICJQp z=kNUjb`D%MAEtaawLR9Ev&vM1Y99_7=`t}~5!taH=Q8;1ng%Z@o3>q;|L_~P9J}p{ zwMEtdPJyagTz4S@5dcZWRU-#19QbMjSfJ4w3y-|ksoarBa^WP(&yj%nWOii0k`l} zi5Unj!GJ%^^I`B{66ufL`@pe-PtZH)3>62KALHrkFq*B7QV;VpKJauq;%USnJs?bn zptsE&`jnc|P(?MP@N;!J`p_qyf9kVU8qsG4MSs|hr$ibN{{2s>K{9jjAc~neaL3Gn zgEI#|FmvGBd}4bKm&X16IVJ{3LNnZQR6|wsw#ahr*b`sJLGSa2QCT;V%AzrcdIHK1 zx}~U!gQSRllH(d*H22S)Xf-wS%^Z0Ah5J71Rv9PE-^S_f7mgf$;>ff2VixsAeQlbL zJpb`;9DDrzGY7sxU#SBhIQrH5k3I7(l%p+Qv2uCa^5t#oSFhfH(fSQMeBtBI9DD3% zW)9%E`oWn4_o7iVw;YUkRS8sfFqg$C)YUiJC0&*r+NE55GxOG+7{$`lp=>E&q)j9d|k34ha_IowAHPo&F9o%aCa^1c`G5F(ZcsD94aP_*Bez||Emr9hE z1|#c*2ktuZ5UN}IDfGU|Ua~5gxCB)oP(F{pnFA18xChuE!b2+H;6bgU8_@Xj%puH3 zkY0Fp=D;H)-thS^p<`Zn{G%`2^64XY+~>*=fP#m=_QEX>9=!$M#t%b`;pm;9G60I9 zgl{|`_`X^+%~db-SZxxwxuA>tRmD4I&o-4WUZB5&x3wihBI5aveER59&m4K~6G!iS zs=AO-i30Ud{YsB2)vE+3)*G(_($Z*H-NBOwX2MUX`4Biga@QS4A2{d@)Z1zWE_~2n8D2Q|G7mqx9Cu1Bd7|bDGz@wTkU8i*% z(jHjF2mTtY|6fV|?~hRh93#nE`H*yuj*~~G!8sYlN~EAc>VMzE^5+96>-q17&u;$ipf3Q zN^ehDC9@I3`7PLV(Hp_Va5+a($HA-D`UyQ(=9?C`_0ug{9*Y?bwVBM~n7^R4a9^~v zYAxsu{&D+*!fuaH(Crfrc5P{4R#OXgOiPU0JZBAz349%JNIkm-yJU`vCC0her?@BX zeaj}a9WNj`2o~DYwGm@dGp2MBIRPPe#e3T|Z<9#^KCw}jWa2F*Ng*1`^kUIo=Ca*3 zW;54gRS*LgwglwF&==V>Ha*oBw`+sy8STjMHb@Flk7d(bpQ4pX>*zkkTqabZbnZ#) z-f}q-o}sRXD9Nae7UWXpJpH020N!X8qCJ{hgsnJ$IU8sl88N^G)M*Kp!VUpB5KAYb zHVZczg)wUyP_b}8UQh=e)G`2>%P@7S=md^LjM6l{eFVZgSoPXCDZy$GPg$IYD~pQQ z5I3N(Y7})@4uX?-CnTiO7D+1LVF8`Y2~_1Ng;Agf7+giGSkCE?LqTE26qu1VZ3AXE zOVw*YVr-T3s7uOD%WRPcgr$Ba%`8=r2B__}7v*EOS;$#BoyBA{^=9g#T(*D#NpX4_ zvOj2ZrmadH?g^sU1kQN$6a>I9?ocxLtrH|F#2IJx6eP^3pSVz2qHdrDrcKKNLzP4e zW04)Zh6Z*GwMTBQj-d9+P^mx~QH)fqdwhrtiakPPf@YXyyE>CoYZ6;m?AX0>U~PHd zzBOA0`!)=fCIe9H-_nbZO9A4n+E6x)CAl9ny!)G15j{e73@@&x74V- zQEcY`(t;<|IJ@UCDL^K06?Y4|6qF;O4^MCiA~1Q?Wh^k0o(Ac2S^NNbRVl(ssRZzv z5?t{_l4;^{kO@Fn6ac3jqX}g({c`%G-KhI(rlndEpzB+L6wu{Vb|PlU(PetdUbb@8 z@>Q|rtJkhu5$I`mAB2KSTL*^RZe~eE)t?Z21E^|Hith}h{?IKnjnbEc^MMi&<74hT zfl3-_BRjzZ3g?GbAvdk%Fg=$^LQ+eWiA?Ao?5T0zN&;7yA}KYdC`@lt+JxGjc>>HJ zoAlz0OqL}WA>LGyWfr1xXPRm;BREz{>FIIRz4ka2jom7Wm#7(?EV!~vidqH47cGb~ zqH>umO-hiV(A=KcVi68`^!AaAq=Eq8Q7orGGPJBR^kUlPDTqX7NdyD%F(Gfwm<;qW zNfRp3wv2^JVc=y86C|lUir3IogU_1V0dzjh6RX$H-0746N(MzjUZYwzLXh{-r|(WJ zglazpv$2$l5!Opt9aDo|&|}hC7Qhj{#rRU8TMC#*+~q-~W4QBKwys2H$PMNe{-y@1 z#c{N$+Jc_)mOFquQe=;$~>K>EDDxKTtB>CwF=z(NK?R;IGBi+8_>jG!GDLU0%z-PJ%oakOlC%Y%X znQnl^)ATmv|M;0TwQ@E;VgAnzA^#`j|6nf`@_!&t7xI6gzp3`xA^*o!JP!FkA^)cy z1Gnao!()B4fQ#$jVgspOnr*#ZefvTNQFHEf$RIjV7({c5{QuW$j6t-!E`ul&WDtcy|4sQUC+fpjf&a5W z^glbHhCoZmc9v)lN}wI*eO1UfR7MDu5gk5qCL@>ay$0-%Bl3);@;k^EB161j8dt0G`lOic75Vx zV#@s!%og{!=7-v=YBjA;Sc2jdwAo03T#KejL3Js`*3l!!V+d!KA11b>n zg*E}?`%zaC($|XSH1sQ=8sYT>i8+&uyCGFon|E7nwOI>BS_PrF2|DrIL!i5%!+uReCsNM}b-V={fqBHm>3n99Hn^-pcLi7{- z+Z&#YI_YNs2!qGs|Q2$fuhlTo|ynzVyKSTXbXb_*2`k%0kQDe6+ zpzay+KV0qgkpH2b9Q=<^a&)0cj;`n%-?VwlnmsEAmZ$R5E3$nPo2;FE)A97l#H5Zw zifnGxVr5|91d!pwo37d&)PdKk<(X!|92TG zMs9@2ai`8!Uq;F~*Xbwxf;BRa_Eu!uL-vrM8mMfa6yXXoM@LUvU``}$Y;0s7*H+&tK zMD^{C=!u#jbZ^v*&T=g>uyWg)RFA$R-|#;kbCWNqwct^!cYuDmMPG>Ie=j({%)#7vQMmcGt)0RlS?d2>SXxap9<1CHqbEr|EX#Pc`eppLWD8HADJ*%$o71U3|_@?uS$zKhNZTI4&NkNA5?Pk^3=6e4&Qik2~Uv0djvSK<+PB z$^Dfexxea&pNX1ZI&9V?dcsHUCmr!rFvZsbhSIPYyNBja4<`?Hl?q4Eu|1y*NR~+%HT*h}ja{rnmew|}} z!yDLG!HM7WQ~I}5^?sWv{X22-yY(pjd(9~QJxBb04W<9U5q}t<^!Edl{-Y|T|2RnL zKXJsLM$PXZHfs|7nUB(c?ufq#rufSMrT@wie;rKog9@c*s+9g=TpXE`(np(8`gxDi z$5dCo;HUKei;KUhQu=Ql@pnv?i|A8p|Bc}8}I^v(WjDPkh{V$IASC08NqVyRw zu+>6c{JWpp|Dme*pG@ulii`iQNA3S$mJZ8H=@)AP`DO$hc^Q|4BHzLRUL44`@}tYWM;ZszDgnDg zc?Ir$2$L-o!_B#pLRc=ys}P9GtLc_o;afDwYY^WAaPnF_cVraTD(vJ^j(i(O5`jJE z(egS(1(4T@s4DW>a2G^g3~`QJhHG?;3mEg~S9GDmKI;lJ$j~sq7@-`#j$SqtFirmTpg}iP2sM~wAodXfxvcj*91o(OoTn8)mtQvUuRrDOm-4Dcr?n8rM0& zm!U+>z-Leb7kncWW>SqJuI502p<*7V?uRy;v?O6yo zvdAT&NWlRGKFN=4?@@^Z5hB&1m@MPRkGlzq;l@l-h;TQBKwM7KZ5`b0M|?Bf-Hhjs zd=IWQxN|u2r#RAwyPrl>0C%?_s*1YCG5v!W;AVRmw&)^!DpQTs@HS_f~yK?zCJZOfshw$8ypT|}0d*#CjRtfP4 z?&9)MT<0XjW0a^FA-+HfTtYlfVJ5^E5%Lq_ONfcfFH;I?k#cHml}ph0NS5FQPJRWC z*bgau5x}54{5r_5BI<;83E6=EAN2p&fjMUWt~pAu?G9Ci7>s>OE1P+F-9-K#b`%M% zjU2zQa)s-#U;vsAq*-oLJj=t{@L@KzdlPx%=*ebmU8Sn*wM#D{xy(+eXv~pLjh^^~`9t>A@ z#ir}JT-P3U946;8tTVG><#l8}wHrD?uvs_=+wMjO{IEkmW-@D=5)P z*dB7;kZ9GWakK<2nD#dG3f#MRmis9!9UH;He2(j6!y61ab{MljNagu}5~Dbq&D7g% zaHWTSFBho=&?90$Bq?|zXXgtLt3@M_UwI{>*GfPFaEIRmFK-HTg36RKDvP$TuLG!U zNzw#DS{VB$*CbUpe{fF(mkn+3z5#bBQ1#&qgGD&|v$?hGScY|~*d@A3M9z4uHm?wp z4u}5<0Hb8Ul>?X1l_e(;S|606$Ug;Ird+r{QwVKKz)6zw?1CF(3fg8F)f}`nZMJHo zQ1sHZ6uBQtn?`y(4;O^WeM=rrdD^tia9xN5s4(jmAs0J+s5+FXr2+R-QP0AAjaLV9 zn1ff6Hyij{P)?bkQwFRV1-#RpP0@XLCJlHML1&<*swB`D?dhbK*3h%l^_xgZ;o$-P zE|8;0P9y0}6*9G|?uQE@sr#fJzxA zmPa~nWg0`l%9EP}RE_;)aC8d(dN4oP+9(Fnt|DQSbiTG2DQ)HYR`UF^`pQ+x?~!e# zvwCijuU(|rXX_*IG2|P9gB%5iNN@;fE8w8x@YWJKjYv!GKQO5oIUE*}LnGzmyoPvO zD^x>|Y5Wq;tqhab_2da`(i}&K&SQAN+0k^>n-&)UFEXtl^eCy`apAyhjP)WbFLxcR zpt(Gm)L3oi3{-HL`$NmZSqrNz!iPz$p9eA;Pf&A*BMOiia&u7vSlA7xMzGd&o~r^) z&KU3qhKE!DdSu9*$+#t6cVL!*8yxBdjg|#=uZ1DWZ5cqXS>!m1>dO_~pus5?V!5|4 z@xiHX&m5K+s>BustFA}!p>vRVjO~V@ff~1`!bMx5R;kf7Yp+-eImGcce<_< z#i#G+7icTO{S2z(ecOD9m`}!{iCH)aO4Fx)fNo0UXQ$*v4e=chpgnpiZRYeMhGeIS z`OhF%S*3}g-I?r*a$<+YN%;5Tdf+(Me;P{n)_=3i@UDX!rgdxAy}Zl2-@)<@wlK6C z;pfSH!LT-Hz*i6Ej<&&$K4|wCqpSf-vrF7aTcd^SenaahOk+r6w!$buSlfzGL{83> z6WzvkyWkPh`(r<+m}&FSvGo=Z>e(KAjwGg8NUV^Xr1W^fn#>s)ci@#YK01SKE=xcct$Eg85_^t2@c-P=p!k!@FZnPID_lLJi*?X@m}o)4Ii!> zFk}1v1XQ3KS7{lXi0_~W9AD5U z*w+*kp3#~zqD2{A*6^tV*URLSBe+vEBv!z^eP&U^+{!M}JqM;E@Wn z;u&>7rxjhn!yC~MB?Ku0O91v#kjEvErrn4ISDrRQtdqTBxwai5Pvn_xSdpdur6OCA z)o$N{B?z2(w`$vTOWOw*bztz5Z`B&TcPX@xA2@AH`}v%VbaKI zdpQS*^-PzMkV@)Bv|AFT8lg9AMd{uS082mit*Oiv6m_f(G~gS<;-!w)R&s~uwupOw zz4~0jzaoLyj#R3E3cx|Qi|O`mT0`P%%5{Og16oy6> zZUe%2QsFN)76SOb(wa-@40#XTZ>u-sz&b-^#vw}$WEp^#7nmu$nJ1?0!1h2D=lX~& zO5G1)=-hDHOElA>sHg9gzw z0SbG&3{3iDx&a@LN{8iW$xHo&NcOjf{Q~-jJ`i4?VgU}av|-PRO(>TTqpcj4Jg6*V z5&O<@+Pz?VNYgDMv472CZH-rzjC_%uGSXhOgbxeXmRiR6!_+g_(Y9g}?Zm)XBKNk0 z3hHbRkqWM~C?v|(dhO#G-9|kXg_IY*?0(Jw-+%^vr0_Zbgxgmo7mR6;5e@H4$2fxq z;k*#Kr7UTAOY3QPvwLwKieKEiCd_qwJ#d`szw2t&e~tVIj_(!m(pcA~bawsAyA-4| zy^g%TAA|M^-Uedm(|{R)vsv0Fb?m1(1+LCve#L-OUD}spbfwDK9B*48A)KGqdVBjk zpQLK0Y4hBs9)0-Wv4;=L9J+tz&==Xk_T%j9`@v&(-%sAsAB9)-4;;DoPIy&6au!KlzfGl%Y)Irw#c-6v-bp+F8FK(WuT!(p-IJSoa%1cF6xUDm6gTZywc6}DnY8#W#|$%s?~^O#T2){n z&6WWYA_?tsVU=5&7AJr|&^g^b{J4RH{oYzVmVJryK=gpHy|}TFZp*urYCxF|Ys7G1 zcw*@Tt}6CQNq$ZY95-SYrH_brV{9fJaZ}X9aMYuT3+UCAM9Gph4rkpW)pG_bC8)KO z7n|;RV;y&(J(q`8x!gV$H=oeQ`SV`9yb9m{5-K@>Z94Yub~%s3MB+~Ib{OYL)+F!N z>0}fudmJKE9gxSg70Z{?`EACIf%5~m?ASZwe3@7-wFf}FkHu6<&rt@I%%(C$eY0C6 zO-ELv+O=?x@ly8~b6WlVZs@9=rfxfy<^yY?DJ23WMI^2WO!cgsg-fzJeZO2QvDGX0 zc1(14Z|ECH@9)@}AKSGdSB|gPxp(Kuv=ZBdnTS?mEQpb@a3W1}2EK@Nz&~qV0b`N{ z889`0^;em?!o}JNvsjzcdHeq^*u~n}br);**ITT8F0fe3n5hNqy4`i#4$bhy32H)h z-fONCDMPsa`)ddqsP$hcO&Us*;w(6nCJm)YLut}bnv^zbe9#_BlPcMPg(poK@*@_C zeaF?)<$P|UEc8{WVk(`nSLmBMCWrRM^^=Jok%JQ=;zv~UVDzB&3$%<%tVzI3PH5R! z&_aQ{ywVIH^#aACD3n?oE4IKDnYjb2Mk>xMi%D~b1(edX(qduhFrTsuWDcvUEUe#B(Pv?m3e*d1G4fE;ss&V5xG-0% z1x?K7A-9)iAtqH_;__NWp0b%ald{tgrUh%KR=tIEfRuggYKezLc14$GKQ<2!}6J6H*;$h1^M9JrPyG$=Ny~ZB?BRrQSe#R}ck*+7(#h z5YDRVY496eZ3;-gk*X7fR9#g8PDh+>r7yr~sXtt4IqCyXcYu?!&H%M8v=Mru95cR# zIai_{=c@0SQ|hp;`dWiFLPOrwE6gl<75G1)|DXB?k$(&;1@!d~{r|KtTSn^CF{P>< z!{>e(dna6m52U@!)pOgJ&0LQsF$iNr)nq!xs+$3i27~Gu3D)RJ4^k<3viP)>N$XfI zRn{D=e9WKLd^VS(Q#umOfx_M>Y3bxr<-Dt{V@c>Dld4Qn6#;o`tcrMj;4Y1LSwl)~ z$bnUZTA}X42bdt+CX~1k&r&1Xl|Y zV(4(X$Ugr_$r|s>WbHI*JI45|HEj(Ab`sC7^xUzMMw)oXfna8Cl3bKkU&ux z5&-gCa|*q^os3KxL9_s_DZ!OUz81O+p3MOOor@!p42)IiR*=%CmeVI8vaw^=(7>*t z_K4qteJ6C33P!G_RcnE50qBjTjh1$;Wmmkn#fe1l)2=mCJX{6E!?o*H1O`2{waOTr zD7dtBU`UO9Wk48>h6+dM|0neSbF%vXfqs1nS_J$_WmW8r6W7=1Z3IRVtwvs&Y(!<$ zH?qzCbSMyXVh9AS*=*^1`)n(}YWLnkM`xxxvAbh$X`&}{GBMzmW4Go1Jh3yCz_*D` zi#;}5ixVR{}!zH&$)G(D4Xj#S{V$PD4s<8YfW1F4fG+LUSWzhpA$xBs4b?nj0ZIQYVtRkx=?)!ASqC zw&mK<<+;_VH66LW@saNJnSsLQ!HLo<&wLvEPSk4{-l|!x-L5Ex```LvF3=6YX z?y9*}wUTbyfXbF@gf${oLr-^&Bi6E>?mF_3@~5u+kFudvu~}umD5F)x>ZT(n*Ps>i z{iiGt(Ye$sZm)_?B-HC_%vQljsApq|WLK2kDja>)bk0k$ zPE~y;jzo^rI#qMaRCAc4!a0g-xGK}cG!<3LHAqE5sARyVfmJFcIHbA_WwYTZCDZkj zF&RZVyvkiVDp~DKNFyoJWOM@Q*^CM~WebK=wr~~YZmG*D`(9mfqmWZpF$)oL%3gln z+CnI?0soI2rnt)&TPz+Hr$!xdn)3Q0t(+lFXX_^FR9&2*-1w3~`$9>anP@>~GFpw# z^*9~B1=9=L}bKS@UprUnO*zonw=#^t_DM~IZN9^ zhWoFeuP2N`=G9R?F>!X;;3XY@9>qB_;prhzom8@!5G7L2J(v210wSo;2Ln@9GD(F7c3h^rNV*np=kt{E2B9#^fD zN8l)Gv(yo9i<+pwby1%FM|_@kTdRa=;~r8={8(^_zs$eHUp{vw=33&fK;2e4VinhI zbrkUaD#$hnR9yj7O9QeqFh)NM`88SgY~ZT#(n^N#Cn48HvSBo4)M8ETW;B0UFuTG})iT_Oi8UCcbD0xRKH_bT#pVkPlp!x4RNut zv2W^k!Z}ab#0xr_I2aO}9MM^IViuM%4ojPwyhYzz3U65Wp29yPZd zHfs{~_#A}xI-)O_0^L*VnM&+%#6U33PI5){b`#ByN6nbI+-yY$493NfN$u3t$YHI7 zjM%lEPdMvLbh~S*gR)T7Oo64!gWnYt;}E9t12GpkXG<~8On^Bi*@+E9** z32p;_hLl|x_AVtR6X#+Gl2luDQWsM%)f!cU?>})xlw~lnI5CYI^{H=<%>7-D(5JjT z@-ltHBQPaPw$n23`(m*lrDOr#oy2LgKjxxE@$PNSTT%aI8Zo^1nVV0&0I1HqV zOwY)b7x`HumcD6`j|g(IR}n=HC?Iqci$UdsO>oLJOZy;b_8!(;NpWG>uFmAtn#9%> zJ9e)eSX2`G4M95mfQlM8 zFjJaxyrHoRH>F!9y*M~vW4=|EJaLqHq3UXyRf`#cXM+^{O(}re?1GZi+1VdSn$-A# ze)966Fi=1|+%iGGA8O=T($@!TPIEP5sxGOtK5{UkMh)PhykL@JD-S@moqTP&QswJEX%Jp}^~a6eSgpy$MtWo--hW$>7yyzMAnOA6|U*1$eGSP5k;p4Of?; zFvNlphFG|2L+8|Cs;B!NuB$fmWT-aeot2(M!Vn?vdU*zZ9|*Pjr@I z1O6XL`;Qomb{{)`Yk($sQ_|meYoz zXvDXy(sD-P&6R4=K{?!FvdU4C#Cy1+XZmDymn6P-#-c^aoXd;6CeR{nkJ}ZID_8*9P1wZ8J%8ScT(y;gTgwA`$%OfAq6t$q*z_46Pf-`B-^op>Re;2=F2;ZF6B1hJnpUqx4?cjh<6H34ZI4hky)7u}Fd~eI5kR4;BeZ z6xy|$mpd=%B^@Y-v{!O4olNf_36}=%**NEmyjH=Y(Q*6@l1mJTOEqhPR}7Wxg`53u zg_&LJxJ#_o*H<{-R4?>C-}AxjXhF+^30BxY^cLSCzl}GhlWDp}mhj5n>8ALCe zTE~dQ>4baJgLs6CdbSW5oHSrhIWkn1+HBwp0w>2;K9CsMG>tPMNO02pWYgFy7h6fAmDEoagVEP5m;g*e zmqB1t%d-If2;AL3;0_FI6713oumtapo|n*9Ll%oNW~4qzl4}rSgv6qR4T%CBPGL+d zPsSwj2o+Tp4uo87D~aeqOAz$<&VvIOhp?+}k(qnw8&%!y*jgVKBdIUEj-TuIC3JV? z9X!wN;z>?KW~sBBRZ(X-J5*=ED(QIt8m#|bN&SyIP`81cfdf>?Bj+)v!r2kLB;XT< zX=>7v$}IxRRu*-MaitfPpC(hEa1**NAZXaI7bh=cEYfAM4{v-aFn`boy)r4OvB~0` zkiAwKt}MIR;5haNSUV13mD#SjGvbT;30IKbpUa0N*_#c%}~t{`9f zs;D~p8i#%&OPX*6`KqrV=QIuZy;c0j+$V?@CyTXaV3fs|3t;hu^yHNTDRJT9s+p13 zD^nOXhGj15TXagIu1%O4lP?#bwAnUcE^cTO<`PG|v1$|MP0A+BrK~THeR7dj{zeF1wz6;3p zxU1uKtW*Jun z3hru&NeW#=+7Z)s6B=F>O+;)&6+5^lcPrRc*y$oQcAFUsJ6=+$b9p*Yi7J}Y@Mnh4 zJ_>UUHxM6<1T4Mc(SW8+bz7lie~2+V0taa>znPjsWi{$WukOUvAYHf$9}5oEY+^IH z`B4{_zpb_w6<=+-2A8l<^uw}+83fpRr@>T`n$0$XPb9aiXPOZh9qEXRO^xm8bh162 zcQ~S}nLVA&j@VLTPiLzmwgv3zbO-F|Y_HnWfvFriae(Ig2#mSNyinG1x(}N*iC`^< zr(0tR?!8=FIsOzo1NL;{ju?!Z{xm~mPv-`6M&I&qvo~du({M+ zZ0<7?Xv0)oOmiD%@r?G@v#4|P$;Cbj`9F=s@k9Pkc!F4A`8D1#R-c3?i2j4g@B}eD zL9C9B`XS#@Sq-xur^Vq3qI<9!o*)7{FY^gv$p7(VtWJFX&x-Q4Rr`BWt0%^$ruE(( zsjf_U$HZ7^`^m)r`R5ar|3iA3#L20cqN;FK763!2!qAZwR?WOvLo_qfnRJEWQ_JQd zi3``}k>UfvDwG9zz7%*$BppNoI4)NUeTLI-u$5X|K}ks2L8LI&aso+opX8jPRp1r9 zMma^vd2ouJ4RVT7#4B2`oT9~M0-Pe^7m@Ad`E!c0>EuY($Yty#91|sz;)a0Ha&Q^n zNk+>bCUPV0*r zJLtFY?^W-CkpCO{t0MqdW#xJT zZ;GSo$^b$bP?^qWi8@zA&ox93ZMIiR1TeBP_6iFDx)OlO*F;m9J|zLj-l-we2t7|( zQW}3syU~?AWV`pS7^B;h_#O_hGkwh6?B}t`J+ena6n?p!4 z6ht&m6oVnJVL`<4d9cWSHOO8*xdjpJ2xgRs2)W3|BdU9{a*M<2|G$sHS1Hzlq5nTS^#2$7|HH=7b3#TQ?n3{6@9HK+Cr#)$p7;@>#Na0{Ym@(`!PhxL;hc>R1EolGUWe-{J-8#B~=2} zr!{Gl$*qw8=XYQh^8di!lF~?%E-5Vjm2)Lm?5coxn20BP?ph{0!X~~;o@c}@q5r>= z(f{9q;{Ua3t|OE#&kIUx&@Du3#W0`iV4{I@2{@Uk^&Zg*?;^@yL@S#U1b3JNrGPnn zNaj_{CC*P=vYEZa}Hfd(zR>QT!K2nyDhm@Kzg^tM6$zxQ-?PaxFE8%37DI=%C;v!iB$$1F?e1kTJiRDuAHI% z@X4}rDm@J+3ATl`8Qf8Ru%@x!ag~fF!HtUgFRTS zSe9uBwZd>ggO{(1X`9(Gi~CL&EmfnSo@*D^eG8T8IgGGj6QNi%*uH1|@-cABfPh}1 zf|k?E1=z;qPI85fOYl-r(8)CidV4+UQ#*$J^jE%MG}gpsqoibYlW15j@@=`8;SVAE z+^BH~z`kbccK!x*zB@@Yc@?ZT095$;G6k8k60STXs4z-)LMMT2atQ+8JU|#ho@X8- z6N{`^9wTp3}m@jZLi=60=JZj9$AjST|>V#lh@{d+?ed#l!BOl0A1 zC~dT~Yb_y*eUXj1F=VkXT2!{-bVv-R@o6sT*%&R3Z1Ngd%o*fgD9O*^b<2y`Md>5r z-AfOMq$6&MnpZnQk0!`AdQC3Z)`A4pMz3%WIC3|YC9be zLm5=hXz8Ux9}5oJI2AAFi&iGBW67-CH}DpySX6p!aLJa#)WqsqwpAD)0d}#;j>939$viYE-=d8yDJA zXx$~OoT;L;M=?t56s}@Z-di!J;oc8U4Y6ONeG6=*Q&=^Mx(seU$*Ur7H0bk#hu9&g z1ZV{EPztp;$MUsk70d9;$`7g=mf6ix^%{^y9$pi%dQaJDnJu!nXx7d zIZG#BT;7|hi*nfMsoJPL6&yRZRjK3I->>eGLix{-{|lLLT~3AkUm8ieUGa_^@_$=8 z(s~9HQ@SOv2O;Nuq5Nm{le(bzzctL)mrefjxOuPiDdr`^3FN%ygtt{1vauEn8*B4O zd97V6tw{~^Y+bn~QJm=6n;lt^Ssk*m0-unOjden?vF0?w`&yF}eWb3W=u<&S(S^;% zdZ|Wu7lN4O30udI|98Uh|2oeNxZw(2){>G$OKU_g(Qzb>N+PiHm%v1qRRl2Wz6_;95WtXV z7Oc;*OmUUwjFF0*H@VreO$)-H7|%>-$cLg%?OL^mhzbw@2Xx5~7YT6Un4HhgsZr{{ zJ4HSC5?kd7eb&4hqRvz>B$s)-Pz`V*KMHAu!23YM+9`;|S1WA}+3yR6{l2z$ys%&F z-!(WWjZS^CYo(d*T5qkG3fb==`+X#v!@Of;MEBvuncy0RQl$Nf)6fqmvJ`1(sNsZV zZ-*6|qX$C%{|UqYzw)e*{~z-IL;ior{}1{9N`Wlo|1)Qd*Z?DjkxA(x|9@cDP_RaK8^pSE(u$Apf3o;1?IU|(pyszUzeLg8Pk)VBqJ5&SeDQNZ z`QnhlIR_VQ;XV%ee_5VZt|B9$fsQ(}8|A+ejA^&g3uAz|srwnB& zyMmq=^lO^`H>X^!tO#oAZ0|u@xg6{*!sDOdIL71t#f@2<~y z5=SKA#70iux$ejBsJ>Mrqna75Wv~Q$s4)FAXl6%Bv6hg%wouq>n+oeT@83~gzkV=l z_U{?lv|}>Sx2LdwWoU#l$X*Mz_e1f)cfE?@gCDQUU3)ahU0c}N`}@pwYog|_0{`z0 zblgCWtdm2rBAP;e@UUNLm{i zI!uXs8Do(y3yMZ17!)L%gVWH7gHlQ!78Aij;A2k|O3z&@^Cg%Fi;4Q~*ne;a#PRUF zU5mVwzeeje?FYBq16`(?MOa1uXtUDPI~lPXS;WLhe^D@vyeL}}MuWa@=+BE}W7pR2s?RaM>X zJ{qqTRX|U7(RJ`a`=AC+K6rx2Lo<+-yn-Z$FAtvrn--O>0^3r4xuztKOAyMak1CvwSD3((> z*rx3=3YhK2BU`eC9Okpg7L2g85!njGFU(buZRNtKE~g{i(Bsu3-Q++6iMnm68@Wg~ z3|UV{w(CW`5a}&X8F{Em%F#%lF_leQk$wYRBPqR&@T9iS&^dFzB`5Xi$biLn1C}h6 zNA+A}5FT@ejwlhTf(j)ZM8>~KIA<5YRFf#Xr0KCVuCiQQd!2hVf6c#?|@^2%en zU7TAsc&!Q|vhSEOW`^^&Zv5UV{$t&vl2uF=#raz|{zxtP5~tv|ATH=RC2=}J%7C=E z@NnW(zO#zr_5BGP<}J$WQ=akpi~1Iwk~kl6Mfm9=F9}I9ho37=i#KdVEdQ~Md)Pr1 zWh9ucB)GVmfC|l7quEjt(~B)Gal{+>rDR}QyeUDYh)Waa;RkOil7Eq;TK|YQ_p91L zj8t5v_C!ftj@sfa!{V*n%H#-qu!zeO7b16ci4If!WO3RMTA3TGmh|F^fH{9G>tk>! zQ%VvBm0^EOhP7+`h-iUD|0^AFRg@Lml1W%AC?%5u=KZgUCSHfPW;5d21bJ|#lF}%r zZT=R%k4h zfJBSbJ-mdzcGu!GU1 zvKeIj+m5KFQs!jOht{rkeQ}Df0ktq`~WjIbv%4TY5EY%*khNfsR&&$|+-Z&*3;?J2h}KixwD@%uL+MzSqbKZKYIla8^@-`_gMMfpa<7se%v1ucD(j_-aF0 zdJ3j&bNVEl_|})+b0_M$vKyiPcc}kOC%1i8#>h29koVCKLWmA;nM(~$LyHr{QYuDR zFJ*P?Zo$=#No!fac_6<2I8NdNW3QMRzujc)kk6>;Ti*!WwAct%i{nt8$QG2~Eq5TQ z!~>^x;Q;HT-l~WOE3JrVrKA|F7`(JN0h@%(;HvTcnza9#c_r+>lH4ay!S-KEvkozi z>*S)sN^Pp1UNtbOYt1ab5;0j)pvr5tEx5jntc0KWWi|vS_C3Hd>i>!{-9PhaXU~9S- z7Bg!tz{1n8#K6dCsp)FAR@WVS8b`U1HIX)(fGw6K4jb^*BA=UZ%1O3pGvzcYK!;_X zwb)o>4anfP4oj!BH2m=O1GADxWAMDqH5Oa79?Nby%kXGVtt18)8yDs;c-oL9oVcRx zMjkWWS~#Gm!b_D3wQGar(NV-Sc_GY}k~>e3&@;G7U70ORfI>7&Fk#6bC^aryC|Kam zl6h9I(Xq(7SjBp5H+JWAme{a)%)+)%MQRLK)!B5mh&rQS&&(_xVG|uNZMnEc(h|T=+>Ev|QD zwQF(U$SRb?es!48;agv|9(Wb_|Cgb$;2p6nuny6-Tydm~6(BYrkfp==sDV5-2~X{z zr8YJRU>cRS4h(HoQ=K8~CO`_|SSeqh@rLxZXh5>h94EU4`+|o?=RDF?aOs zws&-;a$`l&X958I^MDSr$7=OMKsGpos3A)Z@QhmU)Aqs zGlI^3Ph2>vTFHJB9csFL_*2dL@TVPdOU;-*;E02PF?}d7rr%o~)3*l4^!ps~{-}BA zuvwGnHs6>&?1&EpQ`{aH(|0)HgTXW(DwkbS-&rN~U2$>uoTUD6Q&QjKk@_R5EARD_ z`o6fhze?(lI^qE)%E#tO>W>qtKf$E_q$57XWqjHr^@EQ1499$yNKMkzTgB)6bbd%x z?(I|6E-Be3j1M zal|h$MSgLfbp9ox^Di@vZ6@^Z z#KrH{BlPbzBlPzi@%uG|{sTw+VSv!z4-oo~s)YXIAff-n5q}yrzkk@QN%UtvLjSoV z{vw#-F9U@BD@XiwFwGAtgr2Dq`iF6GWKKdKZA$3pJwhK-UHO8a(El$k{-#Rkzjegl zF-iV@o`n7fBJ_`#(EsR&f8sL!*(3D7IO1P9=HH0Wi$Q3t(#5~~Dg7U+djH9k{;#=D#mUEsO!M#m z-ev?GxrIwYky|;SkhhH=b$gGtb0EU|0UTA~6en$DWDjEf`0J$@Zd4zI2!H(u#N`gU zt%JV-#5cp=PCR#H9M>BB4RYiVNBZ!$3sC|5?M74;e|vBj#2+oc9Jv?Q=ol9;=FhW_ z^VHz)M$YiAh8c!AgAaf2<}AsES#F{%9{zMnR>5BicX64*D%BTIfD;>w{e!k z4YPcJvUvErosw1XcL(m`@`Jd}iN6m~qGtHJlM=Z2yNkk1s=E>LE(t|`oC6AfpWsKI^d5bR0}y+mhzfx3 z3y7+M?{VA(!S_YPIr2-mM#s2-F@K&fbDkRTeT6f8wPA*z;S4_TJ;7O?Y?$RK%Ho0V zYm}@4zMsWiTz(zbIl=c0O4JN|Pg4RHeBY!nlj<3S{NQ^QF>(1VN>Ksdw{hpl=Qu5p z@^c)R7x;dj$^-bmL%#&RUqHZ-zsMz_$Y0`s0^cw5qhIkJ{VE3{%zT5(-w7iJ`JRmY zE~5Pa{56W+0Q@@y9QpTL5{mo>4k!Trh#&o<_voKE;O;w8)AFBj??>Lh zPz*QcUnxY$`!@vQ^55yU4)Xp3@y(F;pLp)b|H8EfdH>Ck|HF|!RI zKimb8w+QSQN1lRfbc_oa^XGXTp475Eb{^APeQ?|j6>3Vkar0J*gJDcDDq7lP{_NKAHCUobQuRCeB`0+fWZj)7R30m_g0GG23<}e z!k&geTwX!9b+Ffh_-5F<63-oZ6|ObdyP6}f;Yc6$u0>P;dr?GHv9}a=LF~N^agMwW z*XS4*Fy_zG%6V#Ly*ADeYnWjfXYgTfIcHhXFw08H;$d$UC97a>HSXea4X$%yZ!INi zhP`!^z@7EhQJO$?7ahbj=Y}J0w_0dU|!hUNaX>0@1$SCUIzl$ zJ#$GYvXcV}dtLl!v-fBV2Nc(~qg!sptsi*XD27|pO(6o_b_C+Ghi>ZtuNU#nfY*oT zj_k*^26#I-a)2X!z}tza0Py07sse8icR}C{A}0b~9=yE#t{@b+*9VqMqI zu$MFVfVYpc+}JS7yC{nXykSaK0p7cD7ney~=LFtOl&Bf-bV}d?FGXP{RT?2b@G^*r zOM_BWfH#6WM~-q@pv2_BynvUb@&LRs`X%6vBYp;l&Bf*Zl?q;?(U#4lj?&A`EmCl#Kh&Dl%j&WyKv{oyE!dD@?j3l3wQTW zdBELA=$CMJF9O&ub4e)jehw(yeUu+P;63^n2i#>|cS(L6_kQGkf?~KipQI2W?^6iG z<)`Vk4)PvEd^6;I2G1S&SzK$7_c@Myh$DT-`#hoo$a@%3RpdQ_yCCu&MVuoa!!dCwt$ zy)u`CB7dF(3VGk*N59}b`b7>@&dua6;ogtDU#1vt&aY62koT(y#N~JCwhr=s4e`y8 z_v?7>$lt)V26?~9k-x=}KIHv2q5{bK9Yj@;_q(_YBJcMQ=g9Bj8Xe;T#{7AHpYzlp z?+-Y`A2!VJea_%R-XC$6KW>=iPbiCryg#L673BRH?&9*#ah(%+e?f_wA@46Kfs4Gq zqA-){uMzSi?+1v9%Na^hLEaB>=g1?R7BD%=fq5bCc`6UcJ4U~RycZC_CYeh@k$=Mh zg}lGzM}Ox%`g;zzjOC0$nl@mq`~zbB`1=vXaHIZ_LWIA6LLe^xnQrUg?_Ut#41fQM z=Z^e0Tx;<6?;QCb9O=W~ed zD>$-+BYnub5>WxFq>7BO+Tj#5;R zw;p$n+`wr8lXecw3wdv+@_@W|&@UnHdIYdh=8{n4Mh+1&`QdIDl!kr`2oEBioaA02eGpIb^ zZ-jmcf1?Oszsx0}$SemG{>J#xxc4Z>0ryDFEW-qW%p=MVz5>N?i!2He_=*U`rJ&n7 z;FE}N20k0l9a+M)27LdYz3YH;qqzD8Q*63`jU=>?LJ|ny|Gh2RSxY(&@&y~qKN!7v z^WMANo&WC6zIpQ|%gk10D&T7a%Ll%8uyWw*K+O-nMc|q81eBo|8;GeoC$f$Qd?qWL zR8Zk$R#3pVm{pb(R9Q+Y&ckmRiMilA1vO2cin2@aokl{%z;`+c*x);ZXzr@zpj7ak z363VuA_*6KXQO7yb66HgIhToUf$u!B2k@OwzXZMuK;Wa9Ey3i4OjzK%h?_2Unl53& z@+%LZ)Z6k>a8&GFMjSq&%ZVcFT>(OqS5h?(_O1fI81}A4yD6_h>A~K$%)E}73ihrC z%ZI%iz{+9oM%4V+y9qo~-i$I7V*@c&=N8uSVDDB|xUHbV?W~|+?+#YEv!Kddq~c)j zZW42`cMocsyccDc*t?H}iec}560ouN0MXo44}wy$_YgRme3&F$>^*{-DIaB70Oc_z zx`n;R$sVw`f_@2mD?#A1nJvNOlT29Hdy1Q$cA9?7ggvK0=}zP`;HcPpmNu0RIM-4}gCMD+j=TpymhQ7vP!lpD05yHV{*F{>3^T0REd5zAUKl z6)PwJ{12;qT~MV5GT^%a+zgc*05?ZXlRZ&(3BWB#s2BjZBmod?J%}Rk?FmAYdr>tH`1S_B82I)tn!9Q+C>4A|z|rJTl5oK{3^h{@XIUU+1QXo?-$=3t z@QtEh0^ev5_;_YZFnKr=7Wj_frX!uEqnNN}bg}q)EUGH-jwTMD%{Zb6c;i86aspNJ z0B<7r#eg>n?TD~O=>gspW=>_M0=#Kp`G7YatQ_zvQ1b(?5?n|Dzgi!)R2k;yg4N10&gyAnw*ESOW@IY76smX60m`{fN1WjV?e3E zI~E*G){%q@yyH+aWj)IRCC4+-E#QU89)Q_gNXny z{pPe+sf>(*r=l-L96qImL=pPpAT-%R)ja4+fL{!KNwg!r8l?w)f|-(;3i{Gu`OudE zD~G-;YJT*!f@jJ$l%W_Kh^ad5tm8pn2P-TpsBi)+DCj$pRm_4aCy|PSzLQDJMc-o7 zG`R$2m*`tcLd70?%SgaR-zh|MSDgwuV#vE3?TD;K=|SF=%)E-33i7T7%ZI#cz{(--TGaf=yAC{4UXL;qV*@c&=LXjC zAn!(2xT&DR&8(mx?-o|MwV=vvq~aj&b`o=ucL!>kyc1=Y$h(V#iXrcA60nhX57FFJ z_kvQ9cON*Kyq_dolZB9tDAqX0`;Ak27H*Zv{84 zbef)EBEXpdD1#_vV&ttT<&$VpG58d5_{5$jiZJ+N5So03s(CQ@EcnGR_#E01V2#p) z!RMLzQ)Vg{d;u&U244g#hryRn^JDO3@J#tLl%W_Kh^ab1XB`g)Utxt;3o87A6%-7< z#wxEDRC$9`91OlmVlD>XLQRuzqwErcza*hz7<`8WYz+R2Xzr?CgHkd08*nuFE=jl; zd=E8K{+49{nBOtcEe!si>;Z%C(=TE00}%LlW=k;H$%KW$Rot}NXo&?`;x?5#C?UDCjW!7 zOT>LmLd6i*V@n9wh}(>4M%?D0RK)cJN0VESgp0T>Q8VRMEDLyS%|y2l*Nf}{alPr6 z5ElS}&t|p+liM<3A#OWv+TLl}fr(rk)sCpE$lHlHd^$T5MabI)geG^TY98e627WQ* z?T&UVOGfEI-k!|di88lmu+#9Y!>FRT(H1c>}=F zWI0K=$Qy{7DF?AEU^1AAZXs_7*#q*1(k~%z7zlhbvn7}u!Gwjpk=!)OX&TLh?OH}E z`m`Jaj*7j*iNhy!1W|;&BSC2LD5~bc-dOO9Vee?PV_`B%5BA10a{@CJ>`esAhrLN) z<*+vyH9z*IfM?37C_^ze5L0!gv5p6O(^;XSph6`pDA=39DpdtlW|E47y=oG3u{R4f zO=>8+#NKQYDu%rp60os1hiLAqxu8_+%>zf1v@jxvz4@q_askT%D913-E$kgj_JF-Q z`X%fg2LhkXYzZchXTri>n421$rbZ@Q=Sl=s6?i&v_-vYpBH%TH(4;}tJiv>BUkrFL zv|~jwN)Pbj%xqz%0=xuRKHw$6$^kEhnjd%qJX1=Pp%@#8sXA%a@c=Kw3fY1Rt*oE` zuZ>mO3#xRGiUYhwB<2F|1k^NnBFZj-XOd7c;GIMQHt3~1z|rJVl5ih- z%TP1rDJ%<=oXSMEfOi_%1Mp6#Ujp74An?V^mSFNsCM@8c#Z6~BP3JIS&uMUO?I`w- zmFI%30`NTI@L8Qt6anx85SsiERr3JwLhy?L@FKKhNis?g054(YrOZ?Sco|qe0A3DO z4uDsn<_F-F;F{}V z-Xxm4>Mc+z`rZadlfNVh7k%%bX3AfÐmhCc1^b-;h0^?_K&O^t}fHpUi9tCV$6- zg}&c&)B8@-2Ta&wzKE`;V z+YB{RZjO@DkI9})bPIc1kUd~;OZp}3Z3P0~%xnoJdof{QuQxXZoThD7egzfwX9Wd+2e3-8ph_Q7aq!od z#9aIxh?*u3LfIw$4kn>u_&bCIZ2a{jn!73lO2uD)a5Q-+Nx09x!%#D28Os7J1DNO* z{>sT7@Hdct34en?;LDjU!Q>DoEc^}SreRLga3*rm^CM7KkvEb!d^)3uBIJz*p~*2+ z&4awd!7qlqBhZc|$tXR@JBpcOnW-S}Xs~?98wXYndE-&@BX0tDrksc}6k`K1Rc8|G zpm2~knH8oKRG7*N3i770%JhON6{O-Iuad-Ei$Nz6rH8)}+tN7*F;J4mP)0vC~hjldI#=B_#sl!`zT98I1?5-tKyM$MFqSr%|v z!bG%vjz%K^9^U;pw$tXS0`w=rQWTpbWi@@?h?_#iW(7OaRKlCmI&y<&; z48_<$Ox3xZbx=6ayMh(2EU0i5D=5&rnpLhTsB$f-IMBO}#9ZiIkD4ZLK-neqZX}^% z(7TBQZ0OxgG+0OdLL`M~EW)JqkjTk5M%b{vHRv82(nE9gCDv zdhquIGoNIpg1@K0^5O4kuyXkOF=~GNJp-O8pG6spv4NPX^Bn7-aPapNR(QUk!cSR2 z!QTt4@?t@imq^9I-^(QC;_qjuY4YbNyTsosBvcH4uaba`zh4l|UG*9$6@RaTqscc& z!o}a4sG0IDmIYYeW};j8`z6@}{@$Tq!r!kz;NzJs!Q^k4u<-XTH@)XH{g#OU?;a3L zgfm%*;rH*rRN?n~;_x}WPZYuL0}z`016A|DuM_-Y@LPp;tW-wnf!`Wtu4SeIzja{w z;P)X|Ir#k%H9!3R1fD7Xj4~8s12I+SBi2FT!0%&L_@to1r>vmB?=x2UOF@;-NyUNR zUrEe`-``Nv{}X{z)`<)xSWg@cTD7n*5R^T=;#3nkoOovcSsM zOmqu=J+_8Dz;849CHQR)0^iRl`9pdOCM@`E$xT~1Oox$?qZx^s~_}djVKmK+D&y>5P z48_<$Ox4+gb#S>I{O!pKdlgjJn-vuN?ZYbj7F5}fR2=;6Phu|q4nR$lL6lwMuMY_o z!(U$#u<>^w(cD!Bfl~2zFgTh#gd|-2^+OG5u~`=Q>(4~D@OLQL1O5)9U&3D*2z)=Y zC73K{!ouG`ZW`n?4Q3)=M9UDgSf??RC_>yY5J=@k)jWtB0e&&WjYPXCN1^l}ZZtE; zFjGO?;b8d?cLZ2D#2ty6A8|*4hlR>0LoqfGQ+1AJ9S`EhvBLO*3KLjCLEJ=EnN(0^ zGO0L-n?hnP;-;de$!RFNMBH=|Du%cU60i|hNi-vF1}GJARp20HHc7aMt40k=npqa` z(3t2J;%1XQAg+df32}2k-~*a1!Q?z9EW}ZyGIC-&O$(T?eay5ejXVY%^=Wr3arlJl zh$8GA2Ljo=sG0|R$Ae!CdttPjvH_(BdyUMDFjK*v4weslOM5Y zV*@c&C&oG+>@8%4ctM30R#32)V3lM+l@zHs*b^k?Vo#!`$u!C?v6msCV%W=)fQ`LY zqPeTuK&jYk2M6i0Ny5e6BGj;=nPmZ#6Pf51_Dr$|?43lvguRnN;M18c!Q>JqEbJ}i zre#jkDNF(yJ{e^w#s*@l&V{Vwf!jr_aB)F}OISgH+oh~>SwWS{NyUNN z6(r`u?Ml=%c@@eo;dV6%6@%L~Bw)ksTA~?l*MU;uc0D-wo+b$wZa1Q4%9~gg*tnUA zZo%yqvIn@`O1}iR+dv=*7+ZqLJD9NGb|*L8Ew%c#kmiQD!Q@dkice@E!*%2fP)i`GL0*JSv(|o6e~PkP~pd{paAa~R(ZCd%5$XR0PiOx<^u0|)HL~1lwAVv1rjO-ycbEp z2Hs0Vb633#N(J7}z`=(!Nw~m!1vOK?%CbPoFPP{S@LnT(0N(5LOTc>r1ag3}C767R z2@7~{bJH)KrgxaI{dtYZhVd&fROtPhID9_8A&Q{)E(lG&N7X#g`z`pzp!YkpoAUQ4 zJn|=v;UxGmTFSZ1e|6#&{-q+mJ0~e9MbvI+eosiX$m>ZQKAkOyBIIoeLX%rjH4pN(2EQ2cdZFEvy-|9Q7hvW#%tVpfS7=+*e8}4l ztQ_*TN6nAC9l*n)WR#&88;GeoJF$)jc{{VhE(H~KWd#(u9j$g_mE8-f>_I9H^7bS# z7kPW3rpdigc8R=wNT?X{_9X!udHWH~U9~?b6?q4MgU@G@aFN#sHBs}_RO}5P4xdmtQG~sLAT&9M zs(G+C82n<`8-jLI4n^s~-Y{kkXC{gq_C}!Q!`?`+a@ZS%njd?k!NZzll%W_Kh^ab< zvyKOQN3g49tz|rJ%l5nwCfto2RSr$N` z$U*OT)O^qjgO!6`18RQgHG+p#$tXiHHV{*Fbk^}euZb0!3o00_fFcLID67N@sw^ZG z2YPW5bD`IQnkEw{yM$hngo;5gMFKYT1kv185|j$PG&q{fkc11pENZ4~Wm({)jfrkS zubu1xdL8sj&|3ropUG?qCQoF-f}Y7uCpk?gGvUU{FGf`b-V);Q*(@cBo_WhaXz~=Q z<^kTR;1>hlX=pd)=_ozGJA;|anTa9?yfabr0q-oZa=<$qH9zpq0S^n3QHEk{Ag1b^ z$2uP1ozDsv6jb;TE1<{$??P6&sG!Qlq~ZYY5)yNPcPVO`ybNWRz`LA;iUIEm60m`H zCDGhfSAkN2cQrVgyoMxP;9ZNFDX(K$pyYZcx&^!&$R2=qBmENaZUTYtWVQs8w=iJ= z?^bTQ&1t%w347+OH7uigrbFHVrV771iNoh~7f}SiyFqC39;)Vn-@V`$gWr8`}koOJ1Lq~(9mqGIrC;_!*} z=naZ6xETmdZcf!a80-mtF$`{jcI>T;(u2XRn7K7G@dtAl>;;w&gT2AZVK9K2AA{R~ zhegRKLoqfGQ+2ju9S;V#XN4UKD(uJ#bYSlG%{#Hm&IMI=Ar%LMyONlT!QD{PByco2 znIv4?O+gI{m{}GenZ`u7a5tUo0e2PjOSr29flp?(1d~-vSh$g=!SZ3R4y+vZ zjzi6ly?XGlBpGEW#s*@lPMCE(*lS>g#)1kFR#32~vr1Dzm1a_LuxF5%i@hjnnv9|B z5_=0ts2KL*Bw%B&g=p@o1Sl1INpLioA_*6J0yV5*W?29w%|y4bmmzz=UY33dd#xbw z&CHfyvYiPFdmY@g$Z0x(346pBPRkQfSCMBDhfn7uq6m2>gV5w+s^&r767Y*5Zz zEE#1e#s*@l&hJ^r1HkuL;e&z-e_#a#fSs(es-VhhQgHydhQwR|u0>6g>ri$Hzz<2N z7y$oB0yY5uL^OBRpFybr{0JOPeoPWB06#$uigJc#Sf3W0(O+pvOy zxNTWwyMij)lZu159Z1YY+>WSW>tvK&B5r3ADu%dSNWeziu0(TJ?FLFk-0t9Lau1Sl z5w|C5*ixBg0gt_z=oaGkA$vgFzVu6o+Ybajn%NRe9>9c!xF9$6ahm!vVL$RxGT9o9 z&^z})uvGvaL>xY=gNY&l9s)v>{ivD;fFbaU0kA*XO?fCv&m-?JW|lEi0pI|zd;ly5 zD+j=VsQCdn2s|uHMj48+ftac@gmpXs9LfsA3Mvd|1qFa3SY>2El~JVP0B|&kxd0r4 z8um{{*(CsvAfaLaJdy-#03Jm&chy)>DgciLN0Z}7!Uf=X)UdBI%K|MEndlY(Cy_k> za5DW80H=V!*E3s!$!Sbj0G!TE6;4wn6SkXAZ%@U;SRTZ$-5F?6F<3<$KCziZ5eBP4 zXmS=+^I%W|zZeE*qurD>C_NaQ!_2wNR4_OXEFT7I!OCH9K5BjpE&vY;lu?FaY#^rU z9LqW$4A!y2aRn9XSwX?z@vIUqsM0_x4h9=Z%*9{?HEgAfvP%p$kx(%VHj{vjL4#=S zswgNGgE4S4xsW7W48~Ez7RxLPz$BRH76y}K4;W0*FJVxCz*jU|g2^-!76voily#a~ znaKCrZ9|K78tp_8;yOTRauHSYAnpY4iy`hrw42gI=|S8{%siQy3gQ-n-+eUV!}e))!cNA({wEpb^%dc=ch?h#Pw57t2z@t#(Bw^2 z&4a$1!7qlsThMOGTTyz@cN;TrXQqO_JHYax?@q9C=(`IwKl<(l4|%;%hGJ|Wrs~|w zIv(`h#|rlsRCs_D6!bmFDi0M@d6-lj^gTjiF8Urt4Xc?^c8R{nNvIh5R*-;=zLi9C zS3LnrMce2s?M)j#{=J^VBvcH7t4P3x;A*0|tJZ*0A-EPCd|i`- z3&9Uj!7ug5YP|^cSb;b0+e=a{r1J z>oopG6d~^KAT;?8s^&r57vL8|+&|HdnP!w8#QmF@Uoulc+*e@v5ceOja)|pHH9z8d zAgPQgH$xeUv4NPXvpHI_wI0OvWQ8pXDs0IL3gWh6m8}b^^dc1palJ{*MO*+iO>Tp- zOT=wULd6ib9SPWo+n#7f+zy~r#O(+UzOG5aMcmG)AqN=C0v@|E(JjR7M)rWX-RYMQ zw+9GQ?#Y&5axW$<#O=*Z`#4SeGU3U-vL6`g!)|}#@cA4-6hSWtLX&-{ng@D)!7m2A z1JRBNW|SW29n8!_n5jUoA6P!5D!h+sJZkpsYO=iMQKcFX? z!_73_n*y$izp2FGlbS{p;cq$!O;%7f5B@5_FNVJvXvah|N)P^KGP9bQ3jSt+<-?x_ zRt|r&QS;-k20T;FK^cm%ftac@mvub&o5u>2hAY3qd{$8Kw}4fSDX4NRsW|wnBQY0$ z$DxJ=%_zIX-|-|=41Zw~u<_SGG4JZaPUn{5-$FlP(unZmIYW0Cc1^cDA@!4 zV)RS+TL{9Gakd1LElgPWOK?-tX-Y9+Pw7SzQlPFPPZEbuCruO~F9Sl8S*qqiUMu*; zkk^KGOf#eOAg_a&iv)j2gcX(+ zR9MCe3i3{2l~W60UkasZ%d^)own7ot;3wf7u)8$Un6-?M) z8qq`sTh=#bqS#dEN;Ietyoxw{URM)E5WEJ2Cac|iCw_{Bi@GqhvQ8Knn=uQ2mfW-1{31z0{1z6Mqfgs-FK z2jLswVZk!WP>c=4RGqh2#{cxj72aV51%$t1m0uTB`3gDd_l7%nEVqH76|{$O&>W;A2X3J0njICu}H#2g z9T7wgAI~Ve?1;W3RIDQoBmui44kDU6;$To}M;rnUCZ$P&&PcBX=z1ixnN&7YpXo^H zGK8jD1V8j>))N?xWU!31KUmpvuuA_nhAXhRrz!AoLu&mV(FFQcY-Wnht$Ir`qQ^x~ z_G~w&G6RMVAAnqw4N0*DKV4e%bUF-gx7e~yY!x!a*486ZCgZy3W%=hi(iy!)^sYs| zg&r6!Wb{Nv1Zpc$o1e^L3u-+W4u;d|C?${11lx>gqY*^zk6@dOW^{}%B6@jH)6*#g zj_JX)k<7*;!DJ%dK|_yBIGV6T#5P$|Y#TCq@q-roeo3*N5vZ-gpP9#o!ohU3B^B3$ z)g2ilnFvnRTAaY2J}WO%FCpUC+R|5VX&iL}_YqP=!Uuu@V_>xo9aKBXtZ@l1!~5b#S^K5&Ks0 zS=EPSb6V_IC-%3hP1!`FIG}cCXirGerR6At@s1EoX89^TdJumxzN*ad3!%S6?5AHfHMU#UZBX7pld^ zmOY{o5i<6+aAqW5`vvrw5 zpln9q>Bvp>^{I{s&>3y4*V{8Pj6Yj$ih;GeK@HGpNoAlG$G2ELE@L*HNsB>sVz4QO zg!sO(MWRTN-Y$k#6ng=PVWt?K8)k?RrWk3Ru=NMf8>7_Gg&1vhRJchOV|?QZakwdt z2pOZ68y=w}y?%3XlqtsgC5~1{4q}`s#`|R^WV6|Dx^@p-0ngQGit6!5x<0K_&rED= z$l|I*6X^gL0WqmgOjcekVu~iF*6ymBz?E+WexUEX_QiBlR8W!@Q5iDwyzM7XicKCj zCB9G$i_7$)S?x8^VH0Lfh{=&+243}|svEE))C2^^1)|y%v-odn)^iX~!Aw}p?xwAY zq!kb~FgV8)bJ^g$kP)cj?SSb9qI;&EHcS$=Rd{&OYt(%hiuwFd$Rv|-7D)?R^L^h;_H6{@aMFu3I z(G(GDC?a%s93q-D(d>>udaqfd8+qOkMzP_Ch}vTh5wlKap$d(-CR+F}7p}8brI?-)O?EKChO>K=8nEa6SwB;=-Y~Q z^zEj&!_(1sn&K{BN8j!1=zDS;1lhDYcDrK2A-#Y29HhkYIWh$$ZR z%RJ_G^y9gXUZIJVU3T;nMLYUQr=y>;F6Gl|NB>w8&*VD#SyMd6UGkG|cJ%Yq(Ld#m ze!&zkvW=IVj(*t`KV#0%otv6Rdg2xJrhe5rz+Z4*zov=T^Y!%`#rpb9Q@rKr>$gqu zOJ85V7QKQ~ZT(eD3u1 zUrq5h=KP)dn#Oe2fL{DV?d&hCBm5_K_P;do?|hy8WwFlw$`t?cboSQ>^v9T9?Qgjm zSZbHc&B1beUG_xH*YR=-@USo*Whll5VyezotmAS0Y|RS23M%ww1;zCfV3lnOs%%Rt zj_YST5_4TY+oPt*9Z+@!7r7$|74takL;|+QVP~S*DaeF1-PfmYf7u6h z1!1x;arkr&B#NAl2Z7M!!Bn+8LEiC#JOunAfRp{ujBnRzHP6{q82VEK?& z238Jv15ooLuN*uqjYk=Zv4NPXGl+FO$Q#TGLkcPkWd#L!!&qf_L6s4t;vjD%iMhxd zg_41}fuqT>B;g|OXwy^h!BAHv`+k znMPx5>ygRf3ublHhR3xIZiaJ^e2JFBh&+QHhtbxx`=F^whf;k8-V}I$*e6)u1V>6e z{kdM&u*dcs^{%C-$1#)VR94mnCtv|{CLElt%WQBWQg;O_!V9CpDcM989=ghKTQ+!N zaQw^((Yfrpbr)Q^>dC9t+;)5Ck~3Fdd|v00Q&yjUM(0uxS9UJFw{zJYol9@) zTzXUI(x)N6`uqzzmt3%V#j@2GoVn)Q2i85Y{KHGmT6_75b&F56o6fj>?M1h(yXCyK z51qn)>vqyzc7Es5NBPfP%?6oX0<$YSm)_mE>}FyvJFRo+jrOqyJD1$EYURaiA3mjX z$bAa%#fW zVtIIBl-l7tCKoTEu)Ki(m>$_RXde?SA@ExuFfg0@wqr~oulY-t)4wbD`S17 zO#!d@j2@f)klf~7`x|}E@_^_IU)O=AILP`qasA{6o8l1HPu{Qg5Zr&{fp3K4e!!?j zm9wfV+A2r1E}A#2W9WFjdD?iRZOX#Nc_SCj6`}Q9>fh+7EMMwjIGQq33Gj^Va-_u#4sG&a8r!nV;f1Ikf-6Q z)Zmejd*noty7jPdW}E1N;yh`BNg1@CLgm3}c;KW`*Z>+6N6BCVO>5!x*buc=U((Y| z;`x!guYLjsX;}k*U}BMhrkG@627tR8$kW9XQ%qGqp~W=y zD@IIrKVd|L@B2kmnqo%Cn6}*T2;t;&A1q>~DXRSvvwSWS%@ni!GBxx`a+HD7pA#|$ z8$*qOxBzoCG0&j$3@bBAwbN%6@PE(u&N40FSvG6V%bo5L#}t}*I@WUBXK8X()cK(9 z>eq97AU9PuhvWm|H~_oe6vs2L!y%q01QzWnI%kHlp<)k4ls!FV&pS3&+{BYsnPes$ zcSIu#8(`j7B43G~lWjXI;BvB0P``r{nhHPON6u-Aj31WF-}uoO&xf0Vg;w32;yr1 z4@I;j6S_4V)Pqe)%-groj66>xj|t2`iUqwaI4+e!(HM^CEz!oZAo?tk(BoynYMI2; zDFmt~PNwH|71?UQxRas?-0>d=6Cg4{c?JjQRbU^Kohvig7LCX0;jUP~ah9>EHoYN* zJCKKzu1RZr+fhb;y&;(~3XL@ngXd(bPVo>N6Var%1@-nY-L>g4fjL^`n4t3sM&SwN z%{wga)`2tC8l24?Ph}cHlZD@mNb(9{_Y_Q3MOn z+tmouf!Z0H>902-&;ZdFX?#Io_>Wc&J>Y}Ifu!-8CE7YEx@2+0nBZ?BzN0aTh-qp} z;3Bhtb?_viC#V6SOC?j;cv$jT>FteiTta+$tbbb8aaBtIFWZ7+X-GH9Xo@CwgGuYh z3TnY5Z?Y|IpD*l3l5L52GECnnk)ZXL=@P}G380mD;YP$T;G81^a=pV>f_khK-#+06 zeCXlNz%s@mtrYUWitAk|L}t--Vxuxcmx1p$Bbmha7kzk_2WHNxsh(3aCU8PuWQEn6 zld_}lm|$PrRej5XePKI7K`6u;4+!@)11ci@P652===K{pXF`4Z@Y*SZXU-i`JtDhc z!SKnmXN<1NwE3V|HMuf48(YYSJAyUQ#)UfWLmX`o$e@$5fP)*hp~Lfa3!ora$A3}T z8xbUX&0!4x=<3+t(d%D1eE;E#c_?2N{5|v>1%%L*u|5lBi*?C3B%!ebU5}Kx9fZ8x zH@0h)0PeA1|IvQ9&^p?07j6wn<)J*^kk|?tcpOVxYbzXDN-_;zQg|s8hSqcpcHe{)raCxFFR4=1wD=RAw4UqA8YY(+c>+YbWgF0Ch&yv{z4G9sc7%XMTc8g3 z7|Ay48v3p=MLhuqc$Y+yI4Hm?nrNj3;?4Lo^r%6LeXzQa6j|QZVDVNECJ{;8;^rpgPN#MP0dGK-`-?_>LXzK9#>|4+&PlXJh7 z{6E2x|A(CdCI62z`SBh6Ki~hf{{O-O^!R@}rl#Zo`c@$|)zb$}8Z~?7@P(O$^U{-s z4{n(s9o95#>hKY5B?pk-?^|*JVP)?I82r+u18BP+m;-31ybhoPN)8|=dguoj{_>su zCmXwg0{$Ob$zz95rbW*>u|>!fTUzmZoZw?CE7s0R@UgWO6=x^-=*3G0`~f~zN{^J4 zfCJOFoO6RFYFl*C8~Hl|A!92J_~ZN?+aLmxQd#)&cYN!_9or&tM=qp&yY*9=Z12y( zu>*2&Pz1d<)rTjm2N|=1mUr@}`q&w%KDIzJ;#WAiN8U^xyXF#g^cN%i5& zwG&c-OG-MLtQQ;|*8?r;IBUP>Xq`A|CI9Q1{KBP|c`$k7) z#T$okH2qC+Xb3SX;;?-2#$~yV8Q_UGF89Y94^-og2X%cAUBw#@#<2}C#ZW%BVU(-p zK0stPLYT@hzb|zJiy-F3%2MM&xtpB^@hVpGnlXXE@y8!;-A4h=SrF>$QNR*KY7YeF z83>~5K$aburBF8tVz6$yvS1Xcb|{q1PIklJnD)IMRBbt7a+u{$BRrv84988X=BXHw zCo*~DdXdSa3P&c7HpQ5tk;#YqB9o7(6G!4IAF;Ra4$3mJoqa-$40II}fTW6*i3k;!wWZ%>1>JP*3L-pJ&6c_Wi+3q>Z+_eLf! z@ZA)-7~=ww$;aRpIMx((dK4uOm40dhAEXgXcA}{s;z01c0{#!5cEf}p4Jrz%OP~2600%3k)%k^L8Tlrt+ zTjOO;Z&5tQ5(o-Ic&6x8hrDFDm5PBntdHX=zcaVxOWcCQT0CGuEPOI9wo~4h+i#pt z@Ez8J(~j=Cz@5G&hHzy||2EPqP~iU04VLp{clwU`|1!8#>#hH!=r>P%KLrJ0%tHbD zuIIKqIC#*YATJOtt@GSqRvQ2B*LjwF(ill~f0<|Xtme#MVN@?j&z#cSFn_}Q!4qnm zQ?t^er)^3;=^n`cMe)EK3G9#Ojp&~B8xk@7v^t%m{=?2v0)%TvbgUAHX5xq~@B7`d z5|sDl*kmV&8llAW7_|NZ$5&_UfO-5W&x&=#IH&0=t_3Mj5tJTHV1Wt_-5bCX3^yQ& z0-Lj!BLuMwCPRzi%MkFA>cCPRBSZ1{w9G^%lgvg^RV;$=L_lL{lV=G7i6cX!yBxxb zwNC4eS)^v@DCcvrt}BK7(-4gp3-MwN<;1K!p}eRAD`hD^Cxv`t*-HynfzZ{U+^*pW z7V2QZiq0|imUZ{YdG$gjBcoVhfQy4T>fE{vI|Lk8vIEiD&T-HsOmmuq4QYYxCLd%v z&=`!5oq`K&cim{`7&3W2V;d`OSpPFNGGq76d@-hoFx`k(*!IKP+B!s;E--qcYd857 zwj1_`!S^u!{|Z;c??ve5`d@pU43>xffEEE?3Ks;{emtVbod2xmn_}b+WI4hF+ zu6G1;WSq<@lls;R*;+kX9w@DI#;~lk&e;M*X`ORvoii^N_eTYl);ZJn5M1!~a_Q1K z=YlKcy)QZU#e{4H$~(xPwIICVt#hUh=g()`AAk>aXT>mmJyS-M?yVR0r4IQ9(X;EX z^e#C{Hep9emkZ8I@y11WzVS_wf0K}!ZNXuHv?cKN)3Gw#V7X}r=O zX5x zN?CN$=>ar=MVN40mjjSgEsjiT1JXvcDKj9Q(i@}U_yAtnmrM*CJ*=rA);JR3Y$J^S zZszbex9-scxrDy`zgnD8aGrfe!3pje1^=-4!r*M{tb()YtdLEQ&nh^H@>L}h-{^1l z?%g{O!2kRo{q*i#gVeBka2n53wM3B)G11KYJobV`{=rNlO<85>YhhBN8R_MWKp}a@ zcA<9S!&l3B36bS0m7=UwGaLxuIw1QXCJe^}PZ(r=r#~_db~^Bf;z$nYS$61Rzf&+poczWXbH}R~=Sr@izo)d%jy5MSy&24= zT((MB$Lc@koJCdIIiDIN@LNco(P#a3OV=)~!?rIUO)X=N)tYyg1H)W(h|MAKsW&$YN zqQW01k@OJx)xv>s@Q=%IJZe+;9k0imk*hH|&Ca7Q_w(NTAA54$5W01HhmF1Rt>J%%cE)6OyYUdIPgNlmafC zz+{$v_k4$IRg>hopok2&Q6L2pHD)NGB4zT!OcL&C%8Y1*c_8$I(;p&pXc;9TL_i7p zC#ho-Ep)TyCNr~Kg%F;epbcIU$T$T2@!e(af-g}h0 z?!UXw6`}0^JN~=H3ElW_NADDh9CtU{vX(N?HhAi;?6{0HBS{mL-Y?nmQta`@;<;Y6=e)GfdG(x{F#+{MtF-$==T;W(uJtvAK-A>&|EgbQt=&`^=z`!hGM_ouPs{n>PPxGMR7HW>d;DgLLj zO1KQs5q9zB|(alBqP(ml>g z@jr$!fwxgT0^4L3*+?^1Cl=B^nY;iDv7XpDvK|u>db?=BMw*j&ugoc?NQR7Q%Z=%| z4OCOSW2W%4CGVJ-_OmltLo-Fz&u+Cg(mcu-TPNB=#&=zzwaEnk;6%R%|IgX@v+M2u zmrf#)8Io1;_I}ou7nnM7_x|G{xDjr}>L?P7=-47E&cjGOj8t8Y;(v2rz*(C)d11!2 zAXiwTxesq}Wnnwm6vt2)!{Evd42cX*6d_7o@|b0>X8*LE%q?Qp1CD^ zds#cL@BITC%`F^JJxq?CG-vAkIg^GDAH8T!>#W%ox^&tGWUir3p)3B*?PBk04W3c0W~HtxEvYhT=g+{gy6Bpnb+9$5DwZAUX-PcwjQ<; zuVDeZ@^E3lg&hY(3s10Dd`lAP^Z2o-H#J2YqqKkm2MYffKNfjcJ^J*9H2h|IJjtm$ z>FG&Z1vQrkhLpSKVjmWcEbML*NQ!n2KC(-j67q(9x#Vlz2P} ze;l%zHX`w1Lo|-OsJ3s8c2Y*}I~XS~C$_=yJ{OVfZ)kaNy#4I7kBW96gwY5+J7I)8 z1>W<-H&jL{-ghL!tyW0-+7fk@8C2RtK;WVVvtO_kv` zf6RP){IJCoVEfdR{I-7v3{i1;zQhnAe`1J@JK=dxB!*ak)DX2szl~?#!|!4I zU&{ZGKmS8?8+>r!?N-YFfLPyB{C{cww>1Cj9rwG_m2Ke+#+_A@D}&A97Me>-IL-t& zQ-gcuFbEwoXvk3hPQYlgl>Y$(?9%*iGMk84dGlu^BRamvID8!Lwrm4jR7gthra34N zPHM-;NVGKnYo#b~FARSXZhZM4kO4lEZO}RU13yQ`wjQ}~zR)tUiQ^liqkLH$N-mI+ z3uFe|2R|GaNNHWk#ga2oOahh{>y9MR;K}I3=6F{$DgDlntI396xiyxT(SFNi}oE zRgSBg5)2I)K5)?JfkOuMFHQMlyDfZ5hBFA55Iam6TblBZZy1|L&l(oi7Y!dZwWFqW zPFr<6IZ|ZjwM?5PCk+4pA8JuRM_f-dXACijgFmd8vB4ERYI{*rvKe!|4QVl?sutTc z^?AXiabaJ_4Yb&LJ&x+0ki5fwLJrVr3^m_mC5lIVq;fA?CnWY_>`z1I4u!LCiHYPY|Z$q7t{N9 z!p?=oQl4-kp~vYDIte2=$bk==ww~o=^av|W9&cerxHCBAKsE3=;gV?__ zn+Rj)$)t=f!r8(lO~)^F*rHuMabV?vk@S~&i$VY2O{RFSPH42~=n)ELXx6cz1%fk@ z^yhdbh<)|RF71+-L97@1+M)^C_>;m&s3o1wBA_8K3V+MGoxFdGf<8bX9l?=O%miJ(crqMu(Uj|f^1x^W$K-BLuW|b_H}c+*K>Y^v-4!r;Vd8n5CdSw9 ziic%=eX1i8#>qFlO7S11_zyRVfyTR~_5aRt^-}!D zz;Hu);EkK7Z8`^Nr#le4-C_k;m*PK4@gG1?c?uqtOf-x!HMS`& zm&t)X9Mu?DwrXv+=zb&q5aU0R!xzlzs11*69o+1@0wr%)$s1PkhLyZw-`pEkim%y7 z;%jD&nl)k8qA3+kshJfEM+_b@W6_XB%`wq2Yu5k&qz~-1Zufc2) z%`$B8F*YS%Z}AwLqc>JxZ-LaUhxg3q>z&#&YalU)ZgA?0rVwqcT=Mm9B(B#D;xJ48 z-wh`J>+g_m0^gja^?$V2N6G(N^8c3nzoqqmnkOf8Y5$+n{y(Mtf2>eOiVdUmIvKs0 zV)u9f=LWR@PtJ2(+mLJz&Wj=`4aLDxWEe64$0^QnHsuLIK;3L3+LQ^-PU)OJXi@}D z`DDTq!#E&V$VQ%YN>~z2VR;nSWc?ka<4H%GDK?Li4pGD!hncZSNTn$qvAb>>ZT5lY z43u%S8X1jdklq*pXbFTpB8C~^Xow>Vri_j>audbrZzk-3Iz+Z{_gMDJ0|SbmtT+D> z^2jw(Dy5)qT?h)SBwK~90Uvujx=_cmU3a&@Fyi#0B1^f5=;SG6t}z)$nQk-?xK?Im zph8kkiorvaUtgs!%KKVrs+=Qe33miJ_g*~Of~drZvpkscI&s)&15z>}={l!3qC|My zkrb?yS`4f8i8r{E#$IR(e9zvym` zR=Gi~xhweti~9pBeqjE<+w-oud&IxyuH+BgAiQiF?m>JH{=a>3H886j4D;}bc715d z#xV*>W78IdtCx%X;gLH-ZPm)fs~$gN&1Lt}YLHB@Ih7IHXZ2bn&g$V?UACr)|CJKT zmh;LET?Dh7Js0^uQrV2?)Aa%>-@>VY=!+Fo2b$s_Yb8K^Ju-4;u%ZAP(H#=1MZ(k` z(TM0*OK(r=oJOp;8Zc^6<*bU#{CT3HDIFai?=S{er6O|Zq|DS|BWpLMF~#FpOp2++ zOptb#0e)9Kws`HW=d8YV#i|wO67Q2I&RBcVwQJ5efAzhOuQ~J5wNGBKcI8!{Jh6Q3 z6{oB_{f@P#JhJZIyVu>ec=b)EtUdpA`kJ#odE)G~7u^PZS8?6FSFe8Jyfv4c zzUHdCIu|cpea|wwQ)Xgs7UZX1{lwzc=Uo7M)}OZQxt3O+ckil|H(Qq0-oJ9y6HlzY z>e^K+R^V`86t5f`7jYQ)9q`nTCw_a{D~DXvihDI)?9VY+6PyzU3o34)|sw- zdgZ!%FM!PtZ#ZrBwb$anRz0=?X4jnY=$iA+U-i_LYmhE`*^{f!z62+0o%O0GFZ}S1 zv+);8OMEtz9Xq>R;#0ZN4)ZR_yTWJBJhQ$P_mn1m?bW>Eglsw9H>H2y`U-pxGex=Q)bTa74%U=2&2Dh49eQ=_J-G(i-ZClgR}}`!DliVX^yEiZ-^!#7$V)t+$71%{tB!u7=XSm{{dp+81*gK#B`dninn2i+Z04rFqfP zyyy>jUNraeYinyO@5qzE)U$$xcK5)nmgl`rlWROb6~+!7DI+(9M^k*1mV|bsTIG{m8y&o`gY?Q$aRrOWBx75_c2SHj}6?|@ikd3V!#JF?!0nWm`rOU%l00+-e(0v@nwkib5Qv;8tP*=*Vh zC7%;Ay7aYZ8?CQp`+UBZ89U{jQahkDrRL;LD|uVKwVP#wRV?{`HU$6AM|i@Q{6Fxc zAtxV3(475{k`mIcbwPMN48*9F{6BOhO8%e9$_W4prc&+wFiZR5l>9#>|Ia4l|G^ZG zOs11f8Q#N2PYlSW2Sx_ABg%Y$6TCej7rZ?HX@4ll9Qj%iWIn)-O&(xJHV+&dr`by!f|$X^yl*7jF}4&~ywOZ{)o-*f%HH`V zyDE0h7g)ScDX@4`3oI`1{-=GJq6w@N8Z3I&jzeW0?o8 z32bnYjEi2%f~DTI(;$M+4{U%jCivZtCculvtkqEU6izI*sqKlskj_Z4?IsjdUZDTC zr2e42!O{KLmY@e#+6@>wd;oS$YDl6dX>TsOXRXc*nPO{e!x&^;&_yp^Yi1?g7QK1v zF7nAC%31_!zvcLEC;ZJe^7~^71OZpP`fqG$IJlt?2b)G#=!-_r8#ZfBYSEB|vlh*o zw@9yS=%|itO2fg=?B#!01HdZ)LsRqwZG}i1ZefG40ob7|N-0WeXs0sTTmvL?WLH zq92iA1&?Qb{6}%G%Y>eRPu*Fvf#fMToNOY3KR_FbbEKqubVe3Q*auJ=6Qm|dr{Dpk znO_Rrw9b|$fE#qI3u(f2!efXo7R64|=3nffc25L}Sa5m?+B%FL5;XF*mKIy*M(5p% zt=nkxH(Gy^4)PzxWp6{|6<%1#nv!N0WEs8Qu#FforH&}g7CnLUCGRA!=iuu|jdUf$ zX~bQr7qq-Iy5DF<_u-9pbboB#(fuCzM)&E`=zdch-DAkq#lMYz{AY?CLPjr+k#%!O zh#j$?Yw4v+8Ot`cm+nqkQ|wHDpe*w=oDsVK3%2uk*F4EWcAGMG{bV7#PZ|5Eb?4M# z=++}4_Nds*`liWX$k8J9T+a46i~U|zwaDDtqb1z#?98|~ZP>UYcqt5KDB8LnIT*rm z#C7j8#j@I?M=gENG*KEk2;j@t7T7l@Kt{0vax_!l5DllrekL5h?nxa`ONK%>8x@9u*OIgbxfzPi)0}oBn#Y#OJ!>2)Oo`zM~ZUmE7C|t8}+mpSSJR3qoX46 zfEbLU8Dff|Ap-|6EX40jj3lFJ16!Vk)5(Mwp6kyMe1)uys7LxYq8_DgL_NCegXn4_ z>M=OB!%cAnAKQ_%5%o889v`*dQ*W$wVwe}8VQM{+62`^R7COnL!i=;Shs6RkY2eu( z7GrrCMlP4}rkGH>huYQ@)#H(LeOjkvFB2OZve7s^JLv!z0Wql#8^sz{^06tJm|A$_ z*=beThOB`rXYWHApFcdjthPEX+@uREaZp!ESZf?+ zE;l?vHOfkfIi{E!GE|9qzLgTSrkL-SSwJf#CK@>XV?xGAW3(|Go0A@^i8_PMGi+g% zKTaazxakcAhL`nLN}h%oKA*(#d@GY@gCd)pkxH1m%JQUOm)=CPF0q*}{3s39eT{h8 zW?eM;VCd@Cb9*2+KQxEr10n*@>88Mr0k|QWL;Ntx{Z;2VW>n;J9!D!qTz_~Ot2mW= zccFDv;vpky#0&#hr9~47zAD_FtlbUp!j~0oWb4~?I8`TvDP)MP+alI&n6Bty02-N) z0Yqf|oza>#(9>;xc6-)9_jdT%i?RlK^aMZq#B4Sjw)@l!89lL;!T{rV<2X($cakPf z=5tujYq*$QmqGdsM-93$vQDz)w(B|4*zrYRZ_35Ul z2pQ<;%8(ISe+Xx!A`1phXc;tg^u%d%s^UWzRqAbXQ*#zIh#3X|P}L3CS%bHk_?y+H zn8kln3-Ra-GZUGxnB7fV6GVtG7ISyn1e=K6D|A~7y$`WB)K#rM`Q5neU!HC3jDs>c6K?GsWp4W7%@UBXovx zPcJvcnSP10eE0O(rZ~qhbFMqaJTKSP=WF7EF1z|iMZ5Y!r>ifrF6G5)S6`xuOLJX) znJF&kuD+t1U412W^;O)}SDWG*wsEb~)z_Kgdgk0fT}|_@m>Cf_sy%&^b$B;(Pv4@6 zTl4kwZN+-}c2nHp>FGO7ahI>B@AmcdJ-ME~*Wc6knd1JCarbh=BlLjM(+`^BA-}}K zzMg)>6p#949&>y8@mx=@(8S6vd-{o@J^iH9(@$BK@@ciFf2@gTay|X5DW2m#`AIi> z`g!WMc-yxbl&P40lQE2zjFNvO!XUhYH!*6UvGOf)$%E+GvyvEdx$CbWTHExK)Dy$>t84LreBN%CJ&}6pM)|{kcWU@1aGn*+D#ck znM0lI&&)%aN&RcNG4zN$3@jh;%D~D2Zvbk3;FW`C%7G|DF*XoWbq2AH2Y7>7VMsxR zp{$?)Zy2i#FQ_ttR2<-qBrz9wqfpc2Xp~(7Zwv_)1K!~zU<2<6qPeS%1f>G+C~!16 zmLy!@9gUhP$FVF>GM$ZV>5 zNIH92SPYdD51%~~nyqHh7oapysEEBr$p`kDWGn3DA=s*!nUK<=;IOAyRq(1>C^+nK z#*k`-MQ3leShz!NA_;qQAQ-A$)DrB?g*}eFeNbM>U_CV<}647esT z;93S~=v~K<>mx&MkPr{O8^z5>?K<_@;3VQcLu+;<1gp?0baL{{*RS$brk5EYPW}i1d zQauWzj^ATq;XXYslHm6Q1VcS3Y6<+Ff;|qur%`XKXHW+4dzQxMXw>j~9;Og}FThm9 z??q@~{9c01RxhJWnM`2nF|RNtfZwYOcr7yEbp~koy}^(-BSYSj5D&k%#m&d>9cYGn z7iC%e-V>)d{1%CWi{JYqv#CCSq~rG?EQb0>Jbe5Pu!q%C9Im_@03Rf(dAbS^;HQ1XmQNI0RP`2N%JWMP^g20!c@3 zRagwQnt1pKt`5ysYtR?GtVy9F1lN*$KyYo@3WDoEK);!pka9f=4ub2mY6GuoLkfwh zXueKctBs)P+-)ot?#w1433o{dhT2rr65MrxJ&wE0P;aZvQ3kl%g2pXr)VSLUrVw{2 zn2OwO4K2*wHn7=hTa+o22~0hvD`NtuzHSVtiVWz^0FApI4Cxse(n~@-?s|)x&s`sA zhU$y5EO*<9Qyh2Oi-XHuKatr~J3!L8>ko^eb`%evyPcrfYG?Wal3gfN#N7bN2kv&2 zt#CIG0=mu2gp`9RINS|k)ljc$7zJlo9!~+N;m~#RMu>&GGg2fWZ#M{r8YOB8@=7BVr-XRq%@8-AyuF|qY9`9EnEs=Qa#Ou;2D-J~q&I(bSg z+?|3*LS735L$!)pg1p(V$C1~DdRxsw86dBn#S6gCau?mJpA;L&VJ|?@(xlT8OeNd54Kp9C?R} zgG=5KBD1NEgrt*q6fA~1T0DI6j)7*YW9bV_j-yZ!dB;mWkavP?g}f6Xpv%lmNO>{^ zhrCl*b*fi&8ifSs5BiT>sncQA`8z`_+^I7~68_GDV5qZ2Ey3S8u*dOtF6wP{9?AfJ z=hJurjT(O!!W81~BAAN&T?{SE-zBiw>Qa;`lL<^c<}$_v_`93|S40L}$pDSNs~B>1 zWXLrV;_-K_xcU5D2hC8|qb$qc4dN8X-;Ltn@^_QSY^s|f>HOUSi=l2651+r=pxNqn z`T~|aC{)DXostjy-6dP$?`{a_H!~Ab-b=yZ?><)D?^QiO!RhUKkCCYdVbt+^NG#l^ zheZ_!NyAeow;`!tWWFiugSXEsWoDu-WQ) zlqr)5Og-iW#su(tkpVA72E5Dw4Zl|y@@izrYZBt&_qw?G_`LzmP;a6vi{D$~6o=p2 z;^5-v4PcOmKcy$6e-7Kw+C-}}&P^#Ogs%7+vx!tW!=2mC&kt>E_w1oWGk2`N9L z;NbT;tG@86zNC=g+&n(wm~K#C!KTyqwOF`I--smieG9=*--%j+zVBg=qwfdQ+v-P@ z0s4NT@n;$}`hI~aMBlG473up8TA04yVYAgAC{rdAn0m~gj0w>97XvzBPD<&3B~YW^ z=~qj_WUHkjLzb2hkG^HZ&8Kf!Xogx2Wm)=`7pFM-I*Wr#UqWOy)e4Yw`c{O+P%DXt zPv6SWY_$q~fy$~BDxz;S$p`vYm#xsZ1_X4OnF%S^qTtZCHmlb0s@A38UiJ+fsn&z8 zlefNDxH}t&B;;)f!B88CT7tZdVUHtk6V%%(i84UmrZje;Q6q0Nm_p=j4pWi5Eue+T z+Y&ZgZG|#rGJ&bbq!<$*Z)*l@6B)2A1GMvASB7+p45^Y3kG$^U=9AY0nxT54EK6Q5 zaf&0aw>Y@u^%0p()fbXZ-gdAUYJ2hU$?FHrRy)uanDnPm5qUdGK9IMQY=yj?A)wRD zOh`F^f!BE3REdk#M*yG?EiF#Y@ zhB5%(C>lr8sKGY|rVxB%VJgBm4q6z#@vzxy0?L%h1g0KiFeU)sLNjN}7+b+Q%s>LH-t%uGm`qu{`2vTBxB)j%P^NyWwG98@FBI)F`L;a=rM z5&)Ya7|Ig01b_9=!ksUMQ9be+6Y#KPSDR%f9MkasqX=g_E; zcP>mJ^3H>)NZ$F-!sJ~5o2@QHnKGHc)MGAUOn|(L8E{Etz@-e($h(Xomq&(NAt4@l zSBjfY-c`^Hbv4Se4&5)3u=fB2 zLp>;J3HBa>J&wJHQE#h9PzKn0l*Y$s)Yy9*rVx8iz*J=KNoZmAo`TI*PoqqkOknCU z&oCyy-m?sNE;8VG259WPz>pUsLtc^)kG+@0&1dfwXoh+fWm)!K6Q?-#UKa{RAxx-p{bv>KBwLlL<^c=2yl9!268>zefiA!2k`sKN<2@WJo7Gvg3od z1e79pOF}c$QYg!Ux3oCLfwzn}xZo`-GMj2SNIH1S!(yn;;^BjrfM%-|=nG0#q)-uf zD@i_px3X*nyj38e!^})bxf%rrywzE?hF7&F1?PTlm0Am$&fVH#;m)ihl5n>!1VgPS zY6CUdyYAxPa@Rv-HdRkZ zI(NNbF;s8y@VV;)%~pNs3rM!3P!V_AOFnSdPqxC{4iL~?W+tTEk%GhBPORG5tJ;Nv zdzm+~MGb(ileeo_xH|(y67mK?Fw|gCOOQ7N_Bir}q8>A=Q3l8xPU8p~HS$Kn6e4do zn2O|$f)*xkG;FpSgED0@fvLxgWlVs)aSRwA88CqX8hHjoCPs!#k`Rx)$>Qddw>vaL zO+i_fJlW4!@}`M{OWt&m*;IQ#(#hKs7DLSt51+ifpxJ6BeSyi|6e=PwE%`uRwQPmF z8VKksGZRu~C^+QRv8vvy%2II2!%Tu4be%j?EZm)0A_;j75De8QY6j&k9y3j zMj0T_qEXSPkyn5zL|zL_Meiuo&tP@$ktz6q>CT z(ifN_&WvmIQ~vWJ?2)U4Dfe4jc3rP@pmRnA^y&SsmR~i(8Bzk1DmbR zMVT_0z|>>TV@!a*^BHhKWWa?C(D=KEAs0u6Tp}SJf0v4z&);Rx40Somviw~kPI3HQ zDGn}wSBcD~x*C$s-!-rp>RR#e`MVC9t*)mpV7Y-pMf}|;`M}>zvK9VrhJdazGa==z z6de9;W7X|m)g2VvGap`Lc_(z8yt~B0-ML#NA@3dthPqeO66D{z6%nzfM?SJ(j;E z#KGlnNs-x9OF`24TN)NaEh8R2f6GF%)pGO&EXz}HBBWPjxHipeso1jdYOknCUNyY@=+mr!aA_F#KfCk^@4A~+w zWJ?M0;M+>veE3q(47D}NvhZyqPH`u{ZNXWv(W!c7#P|Zzr*Ehjtc8 z*xLmHo;Mb?1be%}9>?B5)MI8f$^d(VX&geM#@`fL2m%ZIZ zW>Zapq_Zc_VjF6jc=+s1hi0oi=nGKxq)-uiGbA6_+e@~>-b@JSHZv1arYSh=RkNzb ztE#2o-p=(_WG$!+%sPN|V&PuZizEPMA>g57QA+@5!X5|UEYxFyHOc^hjWjmVr~#OV zDFk3MOho`KXkh>qY_=+(Oqonz>M<>h2>{s2fZ34&Z4A%=oWqdz$dI`b;sLmixcLC? z3(ZhA%CZ3NCr)ty?k^55fCq@orkV#y2XH8v(-WL1uX|ts0hGABp(1g zRJH=(LI~(RGZRuCPQd~22v!~GRUJja8*OP)M?=@iJ4P(ronu83@{WUmM~+1;LEZ_l z$B}m;>M_9@Wq`bsX*`8Sjl5G~3XyjjOhxiehZZL94A^XSCd!n_1g0Ky7GnbBoy~xA zA_LB4fJWYV3^_kCJyI$3M6x=Sa_nI8F2v(iH_r=1U`amS%??VW9?pV|k z{Cy029Dkpn9uurl2Kf7o#?NWg`1=B;5Px67ROIg~Xkq@ohRs&rpiG%eVCpg7GA6*^ zcMSMGGT;XWX#D-ike?z$ewGlAzhA`7=kHf&hWZU3OuDOAMYGLjGcEh}5$Z#f9)JTntgcBbI)mtfTjUe$^e z5?l$|dw9cnQIJ{*RXT(#i-mi(ibw+Csu1wxv8W{=Tpji}2-iS8=2@c*K)4o-YtyJf zxDHGq2-k(F2;q9r!VsLO>^)nUJzK1qZ@Dtm^AkZAT$tt|h}y!4*^0_NZ}oqn}7Z+zt>7 z)nC*S#O(-s9C16L9#1Eu3=p>qjRR=Zh}#vW5OD)xDiSvcT9~-Ou-R$|%9P0jrXDkt zF(^FZhB07xWWWdpXvB?V$ZnA#qa?&5ZnU`h#EpSwsIe%^5;snq;)okB4lZ#ML?&?t zB%Qd4uo!BRc=*IkhGwhX=?grjP^gGFnffloO_QwREs3w)j%**t*9ly%fKE7ULET3a5BmOcv%{AG-}|PFonRI1yd2c z254dM8ey|l6Uvmy1g0L7XABAtyk-VikpYSU8h8bUv_yuqN{9#EY;p6!YlCK}IVj75 z*Dg+R;LQ~W7rcE$W>f78Ne9n{#Zdc+hY#NV&}?-8eL=}Q3KfAjU-ALG1+o?J4upWd zGczIO!4w?u4q?@yUe!Vh4tV1ysl%Y^;2ka&?#&S*33x|BFw{|^mH_W)*yF%E2K9J0 z8D#*x<7hmdMh(0ZUCG43Gu)?N8Ehy&V^>E^H7!r?|gBJ1MdQHaKXD!WH!}BkaX}ahQ&~qh=&i} zrO<438GS*?hV}I$^d$I(0C_}8hUrZ6hiNAn2PA#11*f+ zy|CHpK9nhw2~0iae#W5i(0hOZ4@L$&!~hMwhZ*unWXPiu;-UALxcTTk4$V+cpe&2t zlj0PI-c#b>qW84OY^rA<>F7NRi=mzq4 zHZv1azDB`8?{!wa;Z?m!!JRQLZ$edX!J@PGwph4B?}#Mqy$ium?}=K1y+yFcvG+de z@k}zx0DB+O_z{g7dmqCTV($}}itK#~EzI6$u-WQ!lqr)5Og-ic#-Q-n`;q})MFxD$ z0FAwG81ijo$afOrvG={W`Rx4w%}_t0EX&?c;uOc;&*I>+_lwAEs$U`L?EMCdp?((+ zpS?ez+3HXF0+hcfRK#AV<&Y2TEg@TBZ%GK~GNW|5%oH5? z%i_1GIK|=DMI2oGHWQgmwK*gmzb#-f)RyAmzW7M;CA#KIjqR3u?MMF15Y6{L;K*@AtzO|`ET?3m=-?d`l zE?p;*(04rqL){>13Hok?J&wMcP><)4Q3mL{g~nTH)abhnrVxF%!&Id24rpQe?u5-& zccDy~OknCUcQYnH-#rYtH!|Qp259u%&yWWqLmre6kG_Y*&8P2SXoh+OWm)dD#kmFF-(#nVFFC zB?=CGFSF_uuj*9_-o;*>dJVcx-s@uF?z|zAkoP78L%k(x3G&{CJ&wG0P>-jPQ3l9+ zkH$qbYUI5SQ;56|U@DULA+#`gAHim;k5Q&fCNTAwPZ$#*?^6bR78&q412po!V91w| zAzw*|N8Z=s=9BjgG(&xhvMhPuiBlYT-;0Aw-VY+PseXi{llK!WhWc4NeDZ#QhJ~-` z3rv2aP!V~*OFoeIhirwsKOvyM%uGnx35QJfTQ2sNfNZNJX+hOe6x`q37I`D~(y-|4 zEh850(6S;4d&@yE)bgU1V6QXmaqJ~fj|Y-b2H0DX#+7J9QGCD9%FsgWtpZb#y;Y%w z*;@@ZTdj^VWio-O$E?Aa0DEgPV6Di2wHbh-_+qPd7_x3;$a)guvA4ds`Rr`~%}^Vn zEX&?T;uOc;#^T_zw~5GXsw5CZybkg2Udntm^7jb)(?2SDS80t14J@_PUFOJJdrYVXr3yL-i811be+hVxA$^d)Y(YQU0D2nX$gBD_M2bhZN^@kQ_Z%5c{wG+ye$poezvom7??CrvU0g(Z_ zG5|%9y@3oF6d5vDLOk|{h?~#eP-uo4hO#Vs!^J6%y%FNzvNuv>Hq~yBboNHUVyMyL z;j=de8kWDNFF+Ybp(6IiOFpnSLAJu40Ri1*W>%%*CAq@&jgi=k$VhmT$xG^~G3UvSb+p(6C=NY?cLcN$dPl-kMDHkQVf2oM%~r>tOqonz>M_SMCV<{?3^+bA-~wVbrvKYy|ZC4)H&keqjxSe zEPYL1aB@C{iqN}2@&UaIWh>}i1OfeJW>-Prmld4nrv;V&8R|) zocykUT_^BLv2eGp5=jWW8iJv&5w!$?*TNo0;B~0SgUKiZ1l~a7jWnVt5_l7|5P>(t zR3z{gXkh|xh0RvCp-h=fVCpfqGbTXb9SpcLGT<%-pePb}H$(1;47pcAJOb|%H=n@! zp&9A{lw}EgP@Lijd`KKz0v{HcP4x&Qoxn$7G1Oz?;S=~cG^~D2U*Pg2g^CD#O7elg zr)4VyJ_7-LW@bXl=O{P?KF_Kbys8%|6qo#Fm*XWEb^Kly3-{?2kp#b2AsFg4QA^os2So-&-`kO(TjTe(yjF;rA{~Mf~1_7RGN8Y_@tIWy)j%Q;+$8F#-HO zWWYy}0Ut8}MG?PG81iXk$Y&Db;rF??`S^VS%}`&WEQ{Y);uMG9*W%#f_l?MGs&66b z_eLwtv{|D|h=n_|q)5WuQV~*$Q`?LqMmQnUHcz3J!N$u`1ilgh7VcD6k%Yf)5DZl% zY6`q%UYETbq?#NTMi2mZ#$R`?qW0Uc*%Ldx+J9R4P-%J8ZtQgHdJ z$!9YvgBu)^VAc7XEEew6?ji|)Qy>^h-VsxZziF_?@i!gym{^T6z~7!U&Y)4_Z!efa z{LO@^$lu=3!u+LSvsE?9l*t699#g}Z0DrX%$V3LzF+k(5o*~)Dkeq~g{F&nB^EV5c zp&C$@<*!kk;`nP42baIR$ZV=+NIHKOEQV6z;qzC3hUKs63s_nyRK(wG$p`-0WGnp5 zfq>pKGa=<%3J!n!uxekg%BBz)ZrKk89liafwBtdT;1VhaiwZy4!0qk+;9f*2N ztwtF@?_e4ap;1HcP?$pKErh9v-eJ(f=p7E5t&TvMGMT{CV~%7@0KKCaaCBtAF$~bq zJC-5GMTQ(NAs%`sh?|eziO>vn63VjZoh(jq=$#@CE_$bm%%(aGl8)Z#uo&tL@$k_* z6B^dPrY|@-n?gnCog?{x-np_B^v;8T-ZL{Hsv$~0tVr*Z1L z1Xi8DOU1&Sx=bYD?{Wx+x_2Kc*%#%pQR_`43K5P#RhROIgl zXkq?tgw0krp-h=fVCpe9GbX^_EeyCdGT=4_X#CyIkUJtn?vxOZzq`cE=kIQ4hPnr3 zS^n-7r#SxZ69<>S`$c9`Jpf7P??G4$^^kb@{5=c}YhcqCuslkkBK{teeBkeK*$RJ8 zKtSJ_nUL}+3J!lyv+5bI>RAelt&s5?%sPP2i-mjjf=B}3ix3R;lBgvBd>QsQ0AE2p z=2@c*0Qee>uhXaj_y$ZN0N;eE2;f`L!T`Pvo2}kKnKGHc)MMUdOaQ?57_cZZ;C%*Y z0Di!b4Ev2N%FEL}pWc2}uX=D_9KmwRrdd zegh3_Vbd41d`F=o0Kb=f0PqLd3V=UCK<}BEkn(2=4uHR~>Q}GoHwp=}6Sg{Wzl(*t z@rOu4+@BDznwO|0i0hPyCvFMUVfRz}a5w|i!R*4K*RYE-CRuea$xYeN~sHyi8x~SZ%ZBcKlt|$ZOb)&J0 zMh(60Fon?T0aFpZp3uVR^@0sgBcn{2OknCUeHar!uP+0(iwxMF0UCP!7_viTNPh|O z(A!bmeDrpLW~iM}mPKzDaf(B4fH=75?J6>xY9J&Xy+N>G!EEvH(HjEIRzv9vPKHsa z2)*Hw59p1Mt)Mp&0{YI(gp{KwIOvUL)flg8ECqKSU#6)(U7u0oVAJUvFBb071d)V3 z0|Hj_614<YV=KmDMa6Nn2Pl60WD15p0L?!2FjGl z1g0Ld7h?kS&1AsdkpXE2X!KPxq$V_APESfDIK7CElY?Y@kP-&)65q*~A1AR)iLSF#_dd|#*l&usT`ew7L&8wP2 zp|}`TJ9M4Axnkk&>?4wpw=V=N<0Wbd^7ey0j=cR*k7trm2FRO7<9r%5@)p1pBJV($ zisT&xEll3Qu-WPmlqr)5Og-jM#stV)$biEl0}f|^M&1z&IWjWjC<*b%J6ha)@{WOK zsAExq3!)z>6SY zIWJL55O@jfaRgq9dOVzrGC<(vG+sfYM&Ok&g$TR~rXqn?Lkkml4Q#f$7G=t00#lE< zjxhlOuV=swkpVX{KqK%bhTI$(a*Kp`1l}rcK7qGEGt})U%My5pIK>for#QF--X$`d z>TXCnf%m|IWwXV@C-6RKwz{9bz~uo76%qKLy}xMegqb#>i@zmc3bD5&OhxvVf)-|PY1nMF49b+r1g0Ld zEMo%fEysZ6BLg}!Kw~e#kQE|BR+JEry_LkxXK!U_hFS$>S@u>Hr#SXj69<>Q)kS7g ztpQ1AZ%tURbhdc-?5z#WR_o9gpsY)wBKFpkd|+>V*$R6bKtTVQnUHcL3J!Z4vuYEs zDoMdz1H83>xm9XYm~{BMh=qH!nMeZP<`A%um#8J++YsmJtSOaQ)~4CoaZ(3=4oe0>PdTq%TMrM4=-1 z21`D`H$=7q-%tqXK{FFl4yWM2H-c3oy{g?Plv)UF6l$E^7%h?zHwFS0@)ETKapPc* zBW^tE@s?$j0pbiAC(@`9HwmT?ag$*x61O|FFmY30!!yb#QzjFbddxJ&1c;l?fIT7u z_GExY+zf{76&W&9LOkO37B`=`G&Dn1qby5YjX1>-S1S%KaT$?GTpc8xxO!L&l@$-4 zxEwS*)J$LCF^fV)#5G7h5Z5SMA+8Amy3fpnl+6?z;w)Avuc|=7?d#$NYc0_Ab6u-g zxI42&67t$0U?ne6OOV$NdmMRlQIFRvqYRL@FO4>h8hQJ{6e4ebn2O{b04+@3JlOD% zGRl<61g0LdfH48`4rIVVkpTxYKqK!Eh8!9hvQR=i@(vR>pS;7N8R`g>Wyw2IoZ`qk zN*rABjux3sbqpk(yklW8)N$hBlXpBcJkm^GU~(dbipV=j@`1dQWh>;J0s-A;WOaQ&B7;trDz%>le(7To)*F}b0 zFCiX!H;9{$-i^=J54la7Pip-|E4U&%D?XVc?4)O5OyAv9oXQnSW zxtl^o=-ngvfZn~b74+_dfPOPGA>{)U9P}P!)k9v@!xY?;UUf!20$nHXQL%7$9urB( zdmI9m@)ETKc~8O~N8VGY$J>=r2FQDc#%F2N$a@Z^5P8qTR3z^OXkqeRgbmLpqfD7h zVCpe1GbTXZD-3uwGT=1^Xym=lkT)Vj-jooJytl;7C+}@&hI$8OS@PZ$r#SN769<>P zMIy7Q-iM@<_W>-1`cOQ4@;-uw=b7mXOg^Dd5qY0VK9KjBY=ykfA)vF&Oi1}91&6$^ zSoO76^$i8LXN%rNt@;)goxShG!X5fvBw_Cd2w2KX)DrCd1bZBNKcgNmSVkFO?^has zqfuk;cbG!#{Q*;vy+5Ia+4~DNJfXazu*U?Z9?5!j+n`&i9I(w_YVyIQc!)I?bXn3BP zz5rzn3Kg-prsM;AYspsFTN?s8%glt7>r!yoTaQ)idsQ1yaDQ;?@=9$8gO1)tV&VR5 zERvwN2?Q+TC29%uHibP7y)LN7JC;!f(A%8GEojux+Y+V_dRxI%L@xy`jNaC;;Q?io zDU%6IJ!V_R1kmfsfNqfiRSeM3>&}oKks&=L#6z!_xcTVyhGwWfD9fVPSDfO|+fE!@ z^tKn7P1O&Qj@}NiV2Nz;@X^~58Xjk+FF4tmLPhB9BKd&c0NDz9yFx%$nVFDs5CsRl z!K@nMRSl)!J})#ot#bL+f*J;+j^A*xaGyqqB>0VlfVI3tErH)C*yHdUje5Lj8D#*! zu{4gOQNwRMOd)i{DIfio26n2HSU3oXo`4I3U- zMwv31z|>>*XH0;>0~jzbGGIOfGzJ$iT0hcpCBkl@@Tp1a1m4tZ2 zT`g`tao0e@JC#wECGI+LiX-lNad3&dL1YqlBP5-;n_w~2&Enw`cMCMUYni^l<2DKv z5qG=f195lAR*1V30y@sjgp_wvaEQByRrh*T_fc@CEa#eP8d_^Hoj~0Wvwq5ZKrGy= z2SpM9AA(@0hea&`;3Kfd0r)8DZS@$+0DzCv_ymm_fKS2{0`MuAiU2+hEezl@u;E!{ zlqr)5Og-i~#smO-o&hgJ2E51s4ZxQe@^WOzD-z-X_^P=10KNtduU1A`7Qi>eDGtCl z#lZ#eEs@z&Z$r`ndPA87oMMvcFpU<&c~GfYMPet{O|?^oFHurkV&$poez^E+b#{QbdzKO+PFVt~e9 zCtR=CY6+C3|HhK2@%dXy+oS-*V#M^0&OmY^u(Xbp8^s7-|La z@cCO28eX|fU%;|5g^KuFMe>2aRb?yutp)*oXl6pnH7Gdzt;wpjysEV+xV?@-Yjbm6 zwWxJq)bU$aEZnE{L=ybghhV4;L@j~ehOo!sw-M@XwK2*7ew)ykq*23fQ@kjGMT{CW42^W0Kcsmkctf0ngJSq+c0F?$dIlQ;+_7wiJOmK6*RnD z8D&}gdWcgTem%v(#jlshY^vUnbo~0jVyM32;p4X*G`w_~zF?&vg^KXoLGl5={<0PP zc7%X_G&3RP&J-N{c45^3uWDBcrLOn}qQ=>cK_UrpgCQ7dh^Qrq8wz_Ial=rL8_OsI z#EqbFB#jzzyTKG9ZWK&K;zmOY6E_Antn-C3Wio-O$Bbi4fVlAtm=GCYFhC=2B10xc zhD??akGS2%%_nXOG(6vovMh1a#3_!r>EhrLw};3iZcj)$aWh~+-&#C;;$}j_JD2GT zJkk^@BCcBUfw&sk3URd%Y?Waqq^zUh5LeHttXGwz;0?3nR7)$~Wop8xpYUdhh5OVX zlHk_}!B9=2mcTC$dmMhvsJE4cGJv0=u|T7SUkgkj{90iu;x`*w7{4~yu+|sKl*t69 z9@Ea40Df~Buuo*bz6{Xtvl+5qWXS#!;^B9IxcT_agNA3EQI^GTfjGtCcc3`9_#GrN zo9bXlI(~=1f^M~V`1mb^hBq$L7pxpkp(6Z_kbJ=JNZAU0M?tXF(aeOD$53$aJC;?) zc~!?#aAz;43x%94OVv_PC%~=~c%oRiTPKMm1fC4RP^XAmg1}Q@k0bCj)Z6NGlmP?ty^0 z*P@mn?mpP#h`S&4xXFw%K-_~gK18EN+`}-1hD9JuhxPaW6nK)Qc#~68Dlg#S!|?p4sq|Z>I1Lp zLkfY1BtL>dKiPdO7Vgg{A_;n*Lcok`QA?orIqY%heSv!1Wkwl5?<*R=rcp!h8<;}q zeG5|&z3-rf(fb}YTm67CWio-O$Nb2c0D3<$;OEGIUl^dF_bWqwiwyZ)LOk^T5H}ya zKcV6IW|U>o>$EbQ;?P?{99;C46q!x66eJzJrC~vrT0DI8mW76O!RQN4mZwk=dYvU7 z&`Zcx&|3k5tyW|vq+E%DgWk%lTE(kcl|o`F1`awUb4@K7m9A;Y&CaORP@yBZx>&eh zYltKWt_cAXuSG3^;M%aqA-E3eakCj^0KxTWT%Se_!3|&vA-Ew-MFcm37DjMm*le{4 z%9P0jrXG`IOaQ@68PFv%U^5122yV`hEh0mcnx8wtYePk;L_Jv@p?U)HEx2NDB z*pF2^cvbx=xYJo`vgsDJBP=?5JBfumw6jRU-YyU@?^@In?ClDB9D4&%kGst%1MCf^ zaR`kXdqZIgu{R8+B74K3h1nYco2^EoOqonz>M^@9Ccxe(28@mj7{dUKy|D}#7a1~M zLOk{+h?~!z0S!+%qb$qbByoykZ?ZVJ?CmZxn`#OqojrL&yrHIvhtJ-0Xjm4Ez5r!U z3Kg+8L-K*Wy<{uw&4hsdGczG&nu5b#HLGg8s#*%pFK=}o-HZ$jI(l_t;r`T%BtUA)GI*LN6 z$25*cjk6oah$O@v3jq_aMJ++x@vz4ccLM5hgBfLjxRYo+nMRGcQ(y`acPdOp;!cAW zChm0DY;^|8l*t699&;vR0>qugfU_e5&S8K?+_?-nFEZqO3Gs-#K-_%dE`(;Ni%^y& z?qYF@BkmG$aEZHAWD<87B%Qd+VL@kFJbdD=gl4O&=nFiqrce=a*GN7PcdcxNxa%Nb zHEm`>${Q#+#NEiMo4l%5Q`0Q4>a_bQI>6p`@|`(A?_Ckw;>)7nGNwEB)uUXf(7@X z#Y6TeGZphpJLOwjnp<0DwzM~6>NcvTVx6N-^_eDI0JmUT9Qq@4x#99I%va z;k396_A=K5BCI8BYe`3M%-3cbtfkmDs&8)T*1K=FmR41rx0dD_E{&N&0c*+>tYv0c z%cg8=Ip^f6@(meld1sn(d!Z%MXmy^7w=Z?7$)k7G)M6#3ZU}8!zBQRvnPfVd%``M) zd4{Av)>&n(&}v&Nrn1ZPlq-*qS}SD}Q&&S+8!nHNxk6Gdlau&N1FV(dyNdVH?_f5vhNh;k`z+7J3Sl?Qbr<;=LS}cuN zlc`POQ=>Cj;7qr4LvrBAB#%n6HZwcZkZ*=Zb$fDLbEawF$g1Q>ezw|7Ay?monwEUh z{X%7u+1AE%Q@4iPtV~j63eEYZLZ*QJX0j=bLyE)=>8AQt98K*H7OMEU@uK;pyzx8f zec(JkU{c-+>As#XnXgOA>hVc=a}Yj0J~sBD_)-H&D)n89pT}GHmfqe{kj0PIm3C** zAo-ZZWi<2;n3M<0lYGLLyDxvYIwOYKB#tOPB&Vrr^98#ip*xQzS>sMT4q+~ z(gkZH+uFE@|0Yudni?!)k=hI~}wN{t0+^v~uRbQ|+n_+G4sCBJP zHP#kWS4Z^Vd}DJ%rX>dgt7@=!Eg5S|=b-}U7s1+UhLuXy0PUu9u1bC$;D;{}i;Ea2hIIm$7yYT|im`ZEH{}yUW6C zz-e&sX%B0NZ4C{33~S}7*jt?58g5%7!agHgTU*nGsq5ef1ddK!F4It3m|4h3%j{ND z-HM}tKNM#dar(%G#lYD{X zJ2SH;-Oym|HFmMzo0&W-wB+**bSYSS<8l$?rL((baWt#5%cl>rY7DD3E62*onQO`w zvfwaX$TwLT=bP)0R|oRs(jO-T5LsQY>YZ%am@7{!XIo~$`E#>U*=gCjYz7V2U|5a( zo9S%N-7+73n8}v-L2t_T;y1+kqWj-*eCP2UxAIwhyJTmYo$Qv5hBB-I{{jhUv8`4f zyxA2J&?W@T$x4g1+tys>*hlt5nq*(wvT4~5O~P~9h)hF6-r7GaZ80|M9_<614>(Wy zjMjX^THt)H%-AfBXx2T52gV)5gKX>Iz?b?E+d4G#rCu2NQXf|QQXd}vQXgSkN2an1 z7iI%aM`>T`qiyS$u*b2XFZFS@b$r<81nKAztrLrFeUf3FT(+%GiEZmsy|zBh$$q-t z)@K;jnZ>p~%eKyDtDI9|Tc0a!eIDETeA~K!IWF|t`Xbx9n3hYVt>p)KQ|nT_oiB4f z+~sWND-7$(Qtf*iGU`i0qm(=A#% z-)dX8g*|Q$weuaeb!XV;F29}cF1GVMhIMb*cD^sRo$vSB`2pupKB%|zLx%Nmv7H~W ztw-4+k5$;tk4rm0!FGPqww_{+r@eN5#*Z2S{YqR@ziL~r1)BPG+j=9^)Nh8G`mJJ9za4JscWmq3RQAn<*?`k~T2n8wt@pzo zAB39vL)-c&?DMhT)Snca`cuRDtZY+%9^2GkcuoDKb11*koBC_R`li^_-`du9Y?SXS zZ0aARsefcs|72S~GsiDpQ~zpPztQr$-_+4SsJwwzvW=k5m3v+|kf4tQf(HO{LVPr+S#*%_5m6JXQn zGsMDOnkbUcHwl8FCW~5vzTIJuqi+i8u~-z!0DaSFoKB-g-ySf9=-U&fB7HNUh3VT1 zHoUnPWy)j%Q;*r3F#-D045*F_s9}IcUoAs2ks);w;?Y+xZa#fkXt*_rvMhb3IK|O7 zOB`JK8boGOHA2$qYl6j4dGYY+Yleo|yz~Vsib6&76(k?%Ymu$c*9yT_vzZAg+bB5n z&0$r$S2dS{drj4zZ&mxiprg01Shzp7NP^ye5Dc}ys3p)l0QNZa=Aj;|MWGC!w}8e2 zY1Gg=2&NEv2g6iE?+|EV^bUm$Z|+5zGMT{CV-90X0KLN*a71Llkqpq#JBlGkM}{0D zAs%|iikpw#anKBPJj$}@oghwe=$$AIE_x@4%%(aSl8)Xfuo&u8@$k_*4H~BL(ifbZ zL7^h_&XjyW?=0C0dS^qx!?4VRl;=`#&^wP+=X+HbP;gg%Y{}QA+tr0I>F`}77Vgo- zA_;t#Krqy$qLzT~GT7tbyBzgcFA8MVkcMVKM_^yQ(hVMGqaGMcj z%47mlkGX*{0r+lYz)g_>H#0zk?-qvK8X0n%gn01XE^a=2cR(}LohZw~cb7QD!FRVf zxbWR0GMnmNNIHD?!D6WU#lwg10cf^*kiH=0Aqo}2_psyxe2>Uh;CmDT9)x8kqQ1{y$Vx^yVqbUa`!s4Fn4djhKac-QzjFbddypl32^r|1Kx=Yc$WbhckeM|QDn&b z65?_9fw=kHeF)7^AE7ME-N)h-$K5C5;Bxn=$ZV?5AnDwF4vV3_5D%ZbFQM7$EBXSG zuPIc--8YgC+L;)2X9}2D5FCtDzrgD3!mp4HQoo@z z)bC<-P|L0t7?xCjpdya7KT&V1zfd{@f2tF1a}^t63225|5@p$jSW2AY8e(a2a2sM7 zk=YQ-Led*zIamy}ym-hSEk3cJGpa%p3lcDOOf0})*MG>ri2MICA6o7P%*^5eq`Ydk zmYU(-_Qx&Eg4_zRmWj9{zii+Z$+yX!{~6ZGsi~m8Q=7F4w^?gdZqwFk+_qS&bDOl*;1)N2xh+_0 zWgSb6wRU#Z>}uK7UA^8~haSz=x>+Z7fVEzx5S|xftOT6Ip<{4;*=7ZFtzxclP*Pv(43Ra zY|Iyt`!JkxwS_b1WXqCsPPPinIY|ZQoNPVA+9vQ-+%{^?NmuRb*sc7{`p`_1gjI#x z!rg7FhjTB-pJdY0wtD%KOnNUq1)*X0`W^b^#`G}zP2R43LSbxnZ0)GlUXw?UwEAfC zQTooXw)fbqhtACfV{2cD=I%`1r z4>8mA4IQE}&iuTDwJScGGra_#ZLr*dX~plUi!3L+6{nxY&u#-4m>%cNjcdu&WSeqw z?w2WIY1NXe%hlvCnN8+uH8kY#n^}`7KMM}if8JCz zeBp96{QHGueO~saAp77&`O_6K%Wm;`bK=R_a9hd8Q8_tWbmWJ_gtZ}y%^Vq8VuHyq z=L;X0PBJ`te$xos8u<^*?nz{q|6B8VTC?~A<70Xz)&!aEL%MMm%vcj`Yf|V2>twy# zYwhlQ7i1#Tlu(D)nrd6qQrXE1vjL~+&e@`nnS;d`-1#}W$BfVo*1c?NW;n~4;6E9HN{rk~c{)KdL(?xV7Y4 z(hZ)mc~lEq*J20HQmJe{+njB}Q7IT!3y%uxTVtlr&7NVk+18vA)92bT+vi8_x}AGuK$j}CmY{@X>S=!`)zE*6ydp$u&!Bh zR;IlzuWAcCxufTqY)-3my-GJ{c^b{8F>{-awV9T5u7Q4;bWPR|tV#^YCz~+eJ6&6g zkaq1P-{M}ZNj-kBTC(_Y!Vgc>eDewTk(`A3{>g!j>A9F|x@mF}LY(havaTWDCRql~ z#k69X7hY(_1l&ThwV8=!KBcS_D0|Y_o*X@TOmGf#RkB+WGvFs-%;dw1=6`(AyhRI6 zUbNtfMe}c6wBYhZ3+`C7;GB<-J^B4R&-n0?OBc;M?1K}JUNrB(4~{u>(R>J}FPeY# zq6L>Nnt#cn`4=pje>eO;IOf&5y+1DB7oU{9%J2ct_vSxd7&()&R}EhvucluhuO7HSUSqKfo>H;~b zT_A57`mF%T;R)HHtG|TR1wR*ZNgujE-om!F^e>RNTI>SZ7@yr?;?&yA1Z(<~@e{_4 zo;qdDpqf7Bgi+(Ily-qESNebJQ#lvN+v3x30(cf5psLgba`)l|a*x0TGUkEnb76bw z7s$QKe~5Ay$bInH`r6iZDfw*M%LVdrOLgir$~_tN4}Rsl`d|32N$)$}b+NB^A~D1{ zLG@4ctirP9%X4xSLYgXEpjm}&y={2-pGDPeQl<>A>S_Az>(dW z^XLg6eQ3Vt*L?>ZDW;-BdX{_wktCzIqb z%Ay&B(($Ox*R(bQVtkmmUradycp}T~G|H~|2ZYH(Kbq)0^;@j>v_pyBQ~$+!Pdi5U zp5(EO*xu7Fp=Too%&>OFDT2MHfrd3G`l*P)xF^z@#UB_F*LxajTf+jqCqBW!6Q1*& z3Lfei8R|XlR_r~E3iqBy+t!#=cI3irzzI8Fygz7-LvJqZF(K4@GHh#N*k_XTo_5J% z_a~zRg6nK~EM#}Xnv#|MOl!TTsk^)5{*?Za}s`s>Ku=g}0blNZ5d)f;p z`I)x0H&62EsNPfcs4GYmke6qL+&)#!s8bj3J=KmGx&)gy;~bW{RJI0Pk7^v2dc(@{ zu&_QC(|s~$I9S| zvz_h}8?{ZkPcyPxWv6GSX1B&Z%rUHX?!#i;r@5uNPy76DcAx%UC+k1h>)+7-`vZpq zJqndRdF0KkD)ndtPdATb$LAV(I-L5IE)`MOn$}3N5u<)yC(yYX zz;#z(RIn-`zh3SqbKiD>5y*xHdBj!AfDhZ1soFBt&GHnl{1p2solb6hSNZFBY&9Fz z;oKTGUF9zpG7WgzQHCXpBb_kMPB*mjP;_zkzP(Gb5zo)cr;*2S(HZT+W6`B+vI~v| zH}3He**zj6y2pg#kYQc;Bi}_1Oc!UL%YK54T*cu6a`8_vSv5#n={S1_0J>a7bQy$w z#~&DhD>V1n@48G|GBYPFPo$zDCmW;tC$lXr&4vEmyW5Hxxjta~Ye)YXb7s z`MeBI!^$CH4rgbY%zQgg!Ml5SL5IsS*)xFbT&v@PN*?Wop`~4}+3N6wE(RD1#mg;u zJeD68hqRD|CqB5dQ*y`}aJwFVvo=?#$>YIwscgbQri0TA;*n{R3K`YTH@7yV6^}<| z4xY*`$iwlA@0L7*o|cE^8*{CV_$<|h8kK7%qj_h8u7g|;$`=%aAo9v*$zPjqYih`+ zWh|yP>HK9mL=Cwnd?Ce_u3;}HUE8hLIy@3`2|F8OJn3rmNbpraX1Vg0XN4K)e4@aS zLN7^<6O-ar1P+6IfSPPRk8!3t{G3-M#!a3ye)6RLiG7OSp#J_>#YY+@l4>V(BHP;9 zs&M151%oyu5~IFyhUq?e@XR@Vrw;EqZuef}w`-j~z3;GzV|JL-(iTE-?6A?viFhVI z-JYD3tC^MIeZw@q>`u>!;5Z$l;;@NxnI1lucbIABCZ%sRz9`E%bdBsoRXBEH$8Qed*6%I7>09Q1;(*hWJ z!?#J^5hU%`kZwZoZRfHysGb>t}b-%)w@UUsvdo|+rDS$ zNbjD*w1Ecio~-lTcODscjwhaM$A=0~>a8u{eEIQ#;x(%q1kmK|0EE&Wrk#Q3QEE`trLIL@4-EusBQA zRl<5pE{#(II=fXW-#x?;ev9!-g~QT>^N6#0N%6q&;By>7e(R$?8h=wmAB#4iofw8A zH!IFUOpnth3++Qcw?!?23saEzW}u3}cjV!2irXevB z^LE=4yQQ1cO^MO1b25!MKB_)3CNl@~h!bNo7!6Y5Ux3_}oQ~rq!DI8PE#00NpQkn+ z@9u2HOp(Myd^6G*9?T>r;wWd61M3tfKWz5#jGL z_A-h4N;sbuYdki{ggd~F@#nbD;nn@UZ>4yTm(?#ZRF0WBSYQ^M{Js1jF)^qeBYU_9 zAm=ApD;QtAuE~)}%yh*KDh{t|hXp5qYz99PA+Tl7a{#|CjoVcmvX`O3bQ2#s_-BvR zq&x@1YgM{Uh9fZ$jxleQl#x>0-o$rWMxL8mFz*N7M48PdcLUL0805utDzwLa=Zweq z5O?PCa-(c;zOk{j$-ReKNRD9|CC9=$@a4Au#Nqb;2G4Vod6FwTA@$LJ^*Bn$gw%g* zLh7X6`R(UU95XW4b4q&Tq<#&%H%y;YH+1`Pv$Ow86H;Y$g5qd=)HP+-au<~TwA60N zs2qz;QBC_32<02^UcBN)pR>ZZ+=XB&+>4a+nVc+ehsVEXh|`FB>06BM>a8b^^A~Oy z;dYQr$#;K|aZ98*+m4&`IBg)L$(;&;lc4-5FMXn0{H_KksQMEjd7lkG^0>$3f9w)h z=H6$Q-z2#g=3j-#O7L=#;Kmns$T?{{x1@2J!#zHXl=IBaJ9G^w3pH8%N>pL`NwTh0 z;m^xNR_7rGSqI;_(T8J->qq%)ys7jbG$gisHi0=||FiQQG21cQGj6`)5C3O}#P%vV zBsOD-QbS_5|94GzoQmm=TVui_CO-Z{6CVE?M#cUO<3B(D^Yj1sUV{Iksedov?Ij~R z=EZf)i|d#d*D)_nwRgcB#EyA!$&Pt(>lGlVtJOr%a-)`iJ`Aem`3J zz)m;0q8_;nh{{p`X}sf%oo&q0!vHCtXbp9^F%vhBJ7Cr5$IE!S3|YG)3D_mv@<3O< zi;DAS{S>RyKC_?syl|K{!?abl^ve?>HqBT)XF7?r*b7{ zY_9ho}D5yr7QpAGxrRH`4}hKmY%J^z*uo@t=<8B0HXo?07DckF|G<|2WS| zc8vdYjQ`-d$d2(J&KLHlTttumxI;AF1O{0z_is+V`2RET^N&ry;EXsvYU{=SjhPl* zlTCOy9;;4hQ>;5icf1$O|1Yd%IH|AMIB0He@YLP1J=1;q^`1~YrFVKlTfSjV$LLPS z=nj^u{=c!<+W*|>PHoB29n~?qBMT+TjOu^k^LQQOKmQ5iKhJiI|8$K1bd3LWjQ@0u z|8%U2<*q;0u`U*t0hM*JI>vwW@t=R)bf1n#Ze%U`;3GF3lYeI7!R3PWzcD;CdizQJ z`WUU5>3zl;W@B#m_KD-B^&Hu^rDJ%gV|b`zcnISR|K_#$OHcmElpG!^bPNyuBf~=- z<3Ili<3F$9m9rhsf8lO-$GYep>!M@Xs*ZKhJD&e)=y?7s+cE!VvGE_QJ>Aa9Y8Rl|&Yz7emM$v3y-4ItST5xE8u1bHn-Uf~TiwRpM-ub;pJT3wSv zur^r(*2af@lJ|;)$pv{Ajk|ah7Ush17O-qfrlwUMCg_@!)w_ndFa78mc!MU^O7a(P z!8-*5JJKHujCrpU#0#_W8V~1f0`guFEDNPD5k}!f0C=%SmAt|)yw|~S8Cj~s%LpY( zUT`CiM~%VD0$SYT7`c;~D>Crf&@HsjR{SQ5us0FR&1 z{WMjH?a=TZe8E2~Ue2rckQT3H=TdfPJLm0%c!Uja)#a;b+;{eIZ)J70dbA)G(`#)? zV;MNShGy>n8_>6)J3N5yFG>ZP1=<7zoNw0SG6&fVPV4CQLhpY8>c~w6#t3M8T{`G; z6W}>E`5^1S!`RT!2bl{xvaBREF&BJ+LS`Q56h6?2Wgwa2V&Gl!dR!JjyCB&K*{)3B zsdzwl19K)=F)*@$$sDM$JOg|=JJ6+&t4B(K*Fgd=oPnh#L=5P0SpqMxL}X87!=b^P z3_i#WnCj^<47iipCyb5m0VHb=V770lS-!WgYnf%HYf)}aRG3>-vY}Z)zDw4~9tOm5 z00HPoTv+Z>svSgo07v+hoWKLBGK}#ZQKk0!S!xC|_*kd(f)ZV0Q(a(nnUr5R_^;%| pJ`DI9>o6cEGuo-`NuXOff#EVV@8paE9#9nvJfI4=7m%zYssPAjNnZc} diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir index f650abfb485..47b0198f33e 100644 --- a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir +++ b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir @@ -1,70 +1,67 @@ -'b9bcb73bbe85960e4f492c6b60fd2584de421f91', (0, 325) -'71d8e363eeac4e3334679f505225acd75ef5607b', (512, 414) -'0304f9ccf7ab8521173b43b526b26412208148b1', (1024, 509) -'ba311ed9f1668eddef69a4395363f18a0cfa4c93', (1536, 1999) -'eea8e9626a2ad3706637b8c470691f2a73917e0c', (3584, 531) -'443af205da3a77283a66ad8a732dfa8011277fea', (241664, 3297) -'70f4fea54805e642e98208d6704425432e00d46d', (7168, 3051) -'7b1682aa00779120720cca4dcda260ac1a85f321', (10240, 4390) -'4c5e8947686d0343cb3973a6facfb7f09c0fd7da', (14848, 4423) -'6f6de81c5e6b03f94350942c15269c35df1a9a1a', (19456, 5534) -'9e88483455fe1fb12e1320051e75859c1262436c', (25088, 4985) -'00b750ca7baf0a10c32a6b43f8b485d6ebb1c7a8', (30208, 5989) -'ead9751f11bc2db068f915f8cd6a798e5d417ee1', (36352, 2224) -'79b019d7c272dbdfc8264e8e42b2c88d7aa7c951', (38912, 2189) -'90e7b637f88d5ff8a781be0ca4c1682885c17e4a', (41472, 522) -'029f34531afb09812d41896dda6761ff0584f5e6', (42496, 1844) -'7f982806de9ef2a389ca5838d2d667fd4521d16f', (44544, 2273) -'30981d4593443ec89b06980ffb0d3bf9d6be5a71', (47104, 4509) -'e6bf5b88c4e7038d787b98bd231e8f8dee6f4f8f', (51712, 4322) -'f8b0492c08bbc03f4357fc71b0fe157cee7be8ee', (56320, 4620) -'1b8b6de280cc7f431ba77ad0f51e113055c3db32', (61440, 1986) -'a3273c3e6d4e0ec25968bb223e962ed33f482cdc', (63488, 518) -'e3922dafc105db482d08f91cff6034364235b78d', (64512, 4889) -'d8648fa6810522856487f6a796979990122cc55a', (69632, 4972) -'aadb0707e9a62b00df9d0d3fecb709ece90a8b67', (74752, 2261) -'177466a3662dea3aff35979fadea8f5c61e022c0', (125440, 4440) -'922a9871fcc709f08716edb8657b05b59786e92f', (93184, 4761) -'9ccfc240a61a0da1c6f063060190ebcb680b5514', (98304, 5628) -'23e8ff65189afc6837718250210e2b61022a9ca1', (103936, 4803) -'fe6a70524262be6b62d15dd7a5f935a0b4d823ea', (109056, 5698) -'b907c4c2ac2fcbde1dfe7d150923f03b4795ed4f', (115200, 4899) -'6e0ae8caa23ee169eb3c14aa13370a686b574819', (120320, 4737) -'6cad16355c4e541c6639770217ca6b94361720d5', (131072, 5643) -'b6b4b6762e05f7fea466b890189b306422ab3fbc', (137216, 46679) -'fa9d17f9390125ded524b1fc1c370f4ef5f34319', (184320, 4812) -'2c2c8e9b4662215a00c7119e987a6b0049829e2b', (189440, 503) -'6f58a5915089ae8f209ae96e3c3cb0ce3e6fb96c', (189952, 2353) -'f56d5514d99ebe339704d813fff58eb2f64e0ff1', (192512, 4143) -'5c89863ea5416b9056f7af7b702059fa1d37827f', (197120, 4144) -'05b0c4092bd0a64d6f30e4a3b42ab4053598d307', (201728, 1995) -'a2df0b2cd19b719ea21d216c2b8a13d7e4ed9203', (203776, 527) -'1e546f4637a42160e26f08f9c68b8f72c4b836bf', (204800, 2707) -'effe6533cbd9056f3a45712d9ad324b892bfed6a', (207872, 4762) -'c8fcd047770466d76018d8b9656c18b7a87a9dcf', (212992, 2255) -'0ad069199b869f02d23f0f5e3ad781c57b3afe27', (215552, 3954) -'f3b2fdfc3429018bbbef0dccaf4616605671b61b', (219648, 4372) -'70b674bf6702b200e03e3c9b6c49b6513c7eb5bf', (224256, 4370) -'7f5248f04d24d49778e80146e5b87f918f41f744', (228864, 4372) -'fa531c24341e01ea50402a237340baec65033746', (344576, 3147) -'440fa7fdb7289a958a6bad20052cf81bfbb9e150', (236544, 4969) -'fb60e625b19277eeda7d3175f2bd106846a0829f', (245248, 5325) -'d3dc625076f3916b91506e909bfe190bbc01cd73', (250880, 4829) -'bbd373563d35f7ad055135a1a0265d92e153e1dd', (256000, 2242) -'823f74a631fada9a31c09e15f4a7566104b70c43', (258560, 4144) -'23d2b814006b39a4f7992fc76f45663a05161613', (263168, 4596) -'10412ef15a46d3f937780619b4103316cc2e4c84', (267776, 1819) -'f0218a466bb8dba6b2e6ad27670c8538f5dd4d98', (269824, 279) -'0e2cdc51dc23e28f2c4aa8d4a64df1bc1738460c', (270336, 2297) -'9bc1fe3f9122533d6f301abc4470c1f712e29315', (272896, 2392) -'d6b2c501a077be1a7c39d866a4e5e62cebb2fdce', (275456, 56861) -'a20cbeb4142790ca04301e42386584e961c52487', (332800, 7798) -'8cf128af83ea2aaf4a09890690ab16f3bb347bb3', (340992, 309) -'343332ff6b96d3b1baac23c4e8394a6a965f84b1', (341504, 327) -'0c30184347fb989cca6598e3d2263494a649a2ab', (342016, 2316) -'24ada46c87d46cae0dc053e55e1b39833f53e977', (348160, 5161) -'fa3fc224081b85079fc21890b809c93b06ee892d', (353792, 4412) -'278500fd49f73d54f6a87bb1438e346e7d0fd47e', (358400, 4571) -'29a5d2b7c12f08dacef89c111f6fe53833bc2223', (363008, 4537) -'3441389fe22e5392774230817f328e3ec3a30f72', (367616, 4568) -'d991435bfd4971dfb1f0fdefd5f534bcc73e74ff', (372224, 5087) +'aadb0707e9a62b00df9d0d3fecb709ece90a8b67', (0, 2261) +'cd53657c05cd3a1fb97f187747689f084fbfe439', (2560, 4375) +'d775a380981c5ff7345b645856ffb4974b14dcf2', (7168, 4777) +'3a5aa3d2a6c43615554064dc175f00bc8917c73e', (12288, 4785) +'0304f9ccf7ab8521173b43b526b26412208148b1', (17408, 509) +'db5797df473300683a876a0b5e9cdd7083c3d1b4', (17920, 1994) +'eea8e9626a2ad3706637b8c470691f2a73917e0c', (19968, 538) +'48630647ce1d569a771821ebf38fac16b75a8bae', (20992, 2276) +'19ece57bbaa2b310047d724e0a76bfe1198dd0c5', (23552, 4315) +'70f4fea54805e642e98208d6704425432e00d46d', (28160, 3033) +'1dcda5e5693889105ed93be129e5689a57883036', (31232, 5281) +'79b019d7c272dbdfc8264e8e42b2c88d7aa7c951', (36864, 2189) +'ce4065d7d6d8f1abab486b7fd9ba418c584ae930', (39424, 54804) +'d6f326cdd6b592d383675a75cd607ba8d979d3de', (94720, 4750) +'ead9751f11bc2db068f915f8cd6a798e5d417ee1', (99840, 2224) +'90e7b637f88d5ff8a781be0ca4c1682885c17e4a', (102400, 522) +'040867c7c8455768a7c84cb908f74732c88696ff', (103424, 5901) +'55238d5bfc1b512c174ce8f92ac5a34c143afbd0', (109568, 2325) +'8e7a226b9ac1566c1073d892a04883a9813a8ee6', (112128, 7262) +'ebbc96011faea150acbc3a5004a7a55834711f7a', (119808, 4558) +'fe04f6a9237fc60af117b2b3fd79eabae61f1809', (124416, 4429) +'3a8481f91d548f426fca10b789f511b8bb0c286d', (129024, 4368) +'2e01fc102cc9346c33caa7945ede7dba3622d712', (133632, 1777) +'2c2c8e9b4662215a00c7119e987a6b0049829e2b', (135680, 503) +'b60cd95d2c2cb608125a8d6cadfc830790eb4140', (136192, 4809) +'06cb40fa425bb0eacfda21d542144882ab0d4c2b', (141312, 4910) +'1d23ee6f7ab6e4bb1bbf338af00f70c9bf9d4c04', (146432, 2286) +'1419ad1005708e45b5be5265dfb86294d5568687', (148992, 1991) +'a3273c3e6d4e0ec25968bb223e962ed33f482cdc', (151040, 535) +'0c80b0d68f36a163fa223aa4cab0a0fb0094546c', (152064, 4230) +'f7079b0b769d766a5e82a3974fb5f681df26c67c', (156672, 4069) +'3936d688d89e10af38f3fb96212d4b232f32cdfd', (160768, 2042) +'a2df0b2cd19b719ea21d216c2b8a13d7e4ed9203', (162816, 586) +'136410920f9a71d2cc41ed4ac2c6a43ac7e80770', (163840, 4764) +'62ba454de5828dd04f058cd71cf0bd243f427bf2', (168960, 2573) +'a14dc485f384620f455bebfba257f07e54e87011', (172032, 4629) +'c8fcd047770466d76018d8b9656c18b7a87a9dcf', (177152, 2255) +'d32004842e1a6752e3f7b08e532e46290ef35a39', (179712, 10747) +'8ee88079e0887b5ace44e682d314963d16863940', (190464, 3912) +'03b04c445e78777c9e7bc56e57854baa9a4a509f', (194560, 4303) +'683f3abbccfab892e1013d2314d6837c0d51c724', (199168, 4305) +'d41772e8a1ce4ab82a1aabb635a7fd82d9317db6', (203776, 4328) +'a099a90626930c0d6c988957b1baccd5689fa1a6', (208384, 2861) +'2c89af11794bf4443069cd4745e9c56f293555af', (211968, 5309) +'024082b6c196500a2914e177a4f02af1d1e17b27', (217600, 4315) +'5ccf7a8b10f20168e31475f1765159bd5e17d579', (222208, 2282) +'306986e1053671de518922e747d044b4c9b8ca2a', (224768, 4077) +'ab3c789da615a90a68f183597d9ae96cc0317998', (228864, 4552) +'5c2ef83820e13a27afdff39c0f3a365934e3684b', (233472, 1752) +'f0218a466bb8dba6b2e6ad27670c8538f5dd4d98', (235520, 279) +'e1191443c40984b6af07b4ef0c4bbb34a033adad', (236032, 2283) +'b22eddaacb91c88e520e42c1ad66b35bb8d17618', (238592, 2380) +'f786a0d820131f72dc802d60c1a778e2e4b7953a', (241152, 57401) +'0ed5617f6e2ea3093542b8de2497e9283581253b', (299008, 7719) +'8cf128af83ea2aaf4a09890690ab16f3bb347bb3', (307200, 309) +'343332ff6b96d3b1baac23c4e8394a6a965f84b1', (307712, 327) +'740b85e35ddecf84a6aeaec23e4dbce955be2ab6', (308224, 2257) +'0a120d452e2e316923fa975fc716539b94faf5be', (310784, 4876) +'66f0bce1c572bcd7a5ea1973af02e6508c2c006d', (315904, 1937) +'8304ac0af7a3e04c1ef9d9e34dba81abfe3ba211', (327168, 5243) +'42744df4b6b58816c404897aa06957a8e4554c86', (322560, 4493) +'66b62b83dbef38d5ad021acbe15d4e3a93cd21f6', (332800, 5395) +'52b9e8907f873d01597eedf889d9f8d56b1f7fac', (338432, 5392) +'a30804ecfecf0d4f43ce012ce3c9520ee7255901', (344064, 4069) +'b9bcb73bbe85960e4f492c6b60fd2584de421f91', (348160, 325) +'71d8e363eeac4e3334679f505225acd75ef5607b', (348672, 414) +'e86cb445b6fd5c7ac664953d9ff006a4e9285d22', (349184, 4531) From bf96c0b5ac45520d86c5f9aa6d897cfefc0982d0 Mon Sep 17 00:00:00 2001 From: Peiwen Gao <111329184+PeiwenGaoMS@users.noreply.github.com> Date: Tue, 12 Mar 2024 13:01:27 +0800 Subject: [PATCH 020/204] [Internal][Executor] Refine the LineExecutionProcessPool to align more closely with a standard process pool (#2234) # Description ## Background After splitting the executor and runtime into two separate containers, the implementation of batch run in the executor server also requires a process pool to handle execution requests line by line. Therefore, we need the line process pool to have the capability to process individual lines. As a process pool, it should also have the ability to submit one or multiple tasks at a time, consistent with the python process pool interface. ## Usages - Use with context ``` python with LineExecutionProcessPool(...) as pool: line_results = await pool.run(zip(line_number, batch_inputs)) ``` - Use method ``` python pool = LineExecutionProcessPool(...) pool.start() line_results = await pool.run(zip(line_number, batch_inputs)) pool.close() ``` ## Public Functions - `start`: Create task queue, input/output queues, and start processes and monitor thread pool. - `close`: Send terminate signal to monitor threads, end processes and close thread pool. - `run`: Put all line inputs to task queue and get the line results list. - `submit`: Put one line input to task queue and get one line result. ## Implementation Process ![image](https://github.com/microsoft/promptflow/assets/111329184/00453698-46ca-4cf2-9761-a9204ed80c78) ## Main Differences from Previous Implementation - Start the monitor threads at the beginning instead of doing it in the `run` method. - The monitor thread will not exit due to an empty task queue. It exits only when the batch run times out or when a termination signal is received from the task queue. - Update `run` to async function. ## Code Changes Sunmary This pull request includes changes to various parts of the `promptflow` system, with the main focus being the addition of new functionalities and the refactoring of existing code for better performance and readability. The most significant changes include the addition of a new function to convert multimedia data to string, the introduction of a method to determine the maximum number of workers that can be created, the conversion of some functions to asynchronous, and the implementation of new exception classes. New functionalities: * [`src/promptflow/promptflow/_utils/multimedia_utils.py`](diffhunk://#diff-46760b7ed265c4b29c9cc4111fb19da9b815717e4d7180f61e0d0da023d2a8f9R181-R185): Added a new function `convert_multimedia_data_to_string` to convert multimedia data to string. * [`src/promptflow/promptflow/_utils/process_utils.py`](diffhunk://#diff-25b180c7dfe70758ae52d59d4572a4bc24fe331b916575c8286ab5af05f112e4R5-R64): Introduced a new function `get_available_max_worker_count` to determine the maximum number of workers that can be created. * [`src/promptflow/promptflow/executor/_errors.py`](diffhunk://#diff-1f02407850413baccbb33e0078d9772e15ae1c46c020dc7457529c6f7a054315R192-R197): Implemented new exception classes `ThreadCrashError` and `ProcessCrashError` to handle thread and process crashes. Refactoring: * `src/promptflow/promptflow/batch/_batch_engine.py`, `src/promptflow/promptflow/batch/_python_executor_proxy.py`: Converted some functions to asynchronous for better performance. [[1]](diffhunk://#diff-ecf0905f2116abe08b5cf2931b856bf39aa8b38a30fadd9042538d076dbfde80L349-R349) [[2]](diffhunk://#diff-8c42522c7186705de9a6651343af6006be02b7342f72467c2785f23f93ea669eL47-R47) [[3]](diffhunk://#diff-8c42522c7186705de9a6651343af6006be02b7342f72467c2785f23f93ea669eL82-R82) * [`src/promptflow/promptflow/executor/_process_manager.py`](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258R4-R23): Refactored the `AbstractProcessManager` and `SpawnProcessManager` classes, added new methods for process management, and made changes to improve readability. [[1]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258R4-R23) [[2]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258R58-R60) [[3]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258L61-R72) [[4]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258R113-R141) [[5]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258L177-R217) [[6]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258L337-R374) [[7]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258L369-R406) [[8]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258L437-R471) [[9]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258L446-R480) [[10]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258R529-R549) * `src/promptflow/tests/executor/e2etests/test_batch_timeout.py`, `src/promptflow/tests/executor/unittests/_utils/test_process_utils.py`, `src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py`: Updated test cases to reflect the changes made in the codebase. [[1]](diffhunk://#diff-e79471098e1447cae89a66ed2b5e2194ca7dfa2317d994f261de3eaf1be63c16R1-R24) [[2]](diffhunk://#diff-7888cd3b10ffbfe09c0035975a082a8e36481a9aa57818da5c5e7c2a6db8dea4R1-R38) [[3]](diffhunk://#diff-8b545092ba1c4e2536841f46825c30b22ba56195407de5b115ee5ca583c67fa6L22) [[4]](diffhunk://#diff-8b545092ba1c4e2536841f46825c30b22ba56195407de5b115ee5ca583c67fa6R186-R193) Additions: * [`src/promptflow/promptflow/storage/_queue_run_storage.py`](diffhunk://#diff-e79471098e1447cae89a66ed2b5e2194ca7dfa2317d994f261de3eaf1be63c16R1-R24): Added a new storage class `QueueRunStorage` for storing run information in a queue. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --- .../promptflow/_utils/multimedia_utils.py | 5 + .../promptflow/_utils/process_utils.py | 58 +- .../promptflow/batch/_batch_engine.py | 2 +- .../batch/_python_executor_proxy.py | 4 +- src/promptflow/promptflow/executor/_errors.py | 6 + .../executor/_line_execution_process_pool.py | 871 +++++++++--------- .../promptflow/executor/_process_manager.py | 189 ++-- .../promptflow/storage/_queue_run_storage.py | 24 + .../executor/e2etests/test_batch_timeout.py | 1 - .../unittests/_utils/test_process_utils.py | 38 + .../test_line_execution_process_pool.py | 55 +- .../unittests/processpool/__init__.py | 0 12 files changed, 667 insertions(+), 586 deletions(-) create mode 100644 src/promptflow/promptflow/storage/_queue_run_storage.py create mode 100644 src/promptflow/tests/executor/unittests/_utils/test_process_utils.py rename src/promptflow/tests/executor/unittests/{processpool => executor}/test_line_execution_process_pool.py (87%) delete mode 100644 src/promptflow/tests/executor/unittests/processpool/__init__.py diff --git a/src/promptflow/promptflow/_utils/multimedia_utils.py b/src/promptflow/promptflow/_utils/multimedia_utils.py index 183e3f5523d..f62c54e8741 100644 --- a/src/promptflow/promptflow/_utils/multimedia_utils.py +++ b/src/promptflow/promptflow/_utils/multimedia_utils.py @@ -178,6 +178,11 @@ def convert_multimedia_data_to_base64(value: Any, with_type=False, dict_type=Fal return _process_recursively(value, process_funcs=to_base64_funcs) +def convert_multimedia_data_to_string(value: Any, inplace=False): + serialization_funcs = {Image: partial(Image.serialize, **{"encoder": None})} + return _process_recursively(value, process_funcs=serialization_funcs, inplace=inplace) + + # TODO: Move this function to a more general place and integrate serialization to this function. def _process_recursively(value: Any, process_funcs: Dict[type, Callable] = None, inplace: bool = False) -> dict: if process_funcs: diff --git a/src/promptflow/promptflow/_utils/process_utils.py b/src/promptflow/promptflow/_utils/process_utils.py index 6b181def423..274d4cdb423 100644 --- a/src/promptflow/promptflow/_utils/process_utils.py +++ b/src/promptflow/promptflow/_utils/process_utils.py @@ -2,23 +2,63 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- +import logging +import os import signal +import psutil + +from promptflow._utils.logger_utils import bulk_logger + def block_terminate_signal_to_parent(): - # In uvicorn app, the main process listens for requests and handles graceful shutdowns through - # signal listeners set up at initialization. These listeners use a file descriptor for event notifications. + """ + In uvicorn app, the main process listens for requests and handles graceful shutdowns through + signal listeners set up at initialization. These listeners use a file descriptor for event notifications. - # However, when a child process is forked within the application, it inherits this file descriptor, - # leading to an issue where signals sent to terminate the child process are also intercepted by the main process, - # causing an unintended shutdown of the entire application. + However, when a child process is forked within the application, it inherits this file descriptor, + leading to an issue where signals sent to terminate the child process are also intercepted by the main process, + causing an unintended shutdown of the entire application. - # To avoid this, we should return the default behavior of signal handlers for child process and call - # signal.set_wakeup_fd(-1) in the child process to prevent it from using the parent's file descriptor - # and avoiding unintended shutdowns of the main process. + To avoid this, we should return the default behavior of signal handlers for child process and call + signal.set_wakeup_fd(-1) in the child process to prevent it from using the parent's file descriptor + and avoiding unintended shutdowns of the main process. - # References: https://github.com/tiangolo/fastapi/discussions/7442 + References: https://github.com/tiangolo/fastapi/discussions/7442 + """ signal.set_wakeup_fd(-1) signal.signal(signal.SIGTERM, signal.SIG_DFL) signal.signal(signal.SIGINT, signal.SIG_DFL) + + +def get_available_max_worker_count(logger: logging.Logger = bulk_logger): + """ + When creating processes using the spawn method, it consumes certain resources. + So we can use this method to determine how many workers can be maximally created. + """ + pid = os.getpid() + mem_info = psutil.virtual_memory() + available_memory = mem_info.available / (1024 * 1024) # in MB + process = psutil.Process(pid) + process_memory_info = process.memory_info() + process_memory = process_memory_info.rss / (1024 * 1024) # in MB + estimated_available_worker_count = int(available_memory // process_memory) + if estimated_available_worker_count < 1: + # TODO: For the case of vector db, Optimize execution logic + # 1. Let the main process not consume memory because it does not actually invoke + # 2. When the degree of parallelism is 1, main process executes the task directly + # and not create the child process + logger.warning( + f"Current system's available memory is {available_memory}MB, less than the memory " + f"{process_memory}MB required by the process. The maximum available worker count is 1." + ) + estimated_available_worker_count = 1 + else: + logger.info( + f"Current system's available memory is {available_memory}MB, " + f"memory consumption of current process is {process_memory}MB, " + f"estimated available worker count is {available_memory}/{process_memory} " + f"= {estimated_available_worker_count}" + ) + return estimated_available_worker_count diff --git a/src/promptflow/promptflow/batch/_batch_engine.py b/src/promptflow/promptflow/batch/_batch_engine.py index a4c39412210..47e88c9e28d 100644 --- a/src/promptflow/promptflow/batch/_batch_engine.py +++ b/src/promptflow/promptflow/batch/_batch_engine.py @@ -346,7 +346,7 @@ async def _exec( # execute lines is_timeout = False if isinstance(self._executor_proxy, PythonExecutorProxy): - results, is_timeout = self._executor_proxy._exec_batch( + results, is_timeout = await self._executor_proxy._exec_batch( inputs_to_run, output_dir, run_id, diff --git a/src/promptflow/promptflow/batch/_python_executor_proxy.py b/src/promptflow/promptflow/batch/_python_executor_proxy.py index 1f22fd69add..d3c1e60303d 100644 --- a/src/promptflow/promptflow/batch/_python_executor_proxy.py +++ b/src/promptflow/promptflow/batch/_python_executor_proxy.py @@ -44,7 +44,7 @@ async def exec_aggregation_async( with self._flow_executor._run_tracker.node_log_manager: return self._flow_executor._exec_aggregation(batch_inputs, aggregation_inputs, run_id=run_id) - def _exec_batch( + async def _exec_batch( self, batch_inputs: List[Mapping[str, Any]], output_dir: Path, @@ -79,7 +79,7 @@ def _exec_batch( worker_count=worker_count, ) as pool: line_number = [batch_input["line_number"] for batch_input in batch_inputs] - line_results = pool.run(zip(line_number, batch_inputs)) + line_results = await pool.run(zip(line_number, batch_inputs)) # For bulk run, currently we need to add line results to run_tracker self._flow_executor._add_line_results(line_results, run_tracker) diff --git a/src/promptflow/promptflow/executor/_errors.py b/src/promptflow/promptflow/executor/_errors.py index 86fc44ed100..f064b585248 100644 --- a/src/promptflow/promptflow/executor/_errors.py +++ b/src/promptflow/promptflow/executor/_errors.py @@ -189,6 +189,12 @@ def __init__(self, line_number, timeout): ) +class ThreadCrashError(SystemErrorException): + """Exception raised when thread crashed.""" + + pass + + class ProcessCrashError(UserErrorException): """Exception raised when process crashed.""" diff --git a/src/promptflow/promptflow/executor/_line_execution_process_pool.py b/src/promptflow/promptflow/executor/_line_execution_process_pool.py index fbe62aea3d8..43dba237ca9 100644 --- a/src/promptflow/promptflow/executor/_line_execution_process_pool.py +++ b/src/promptflow/promptflow/executor/_line_execution_process_pool.py @@ -1,3 +1,8 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import asyncio import contextvars import multiprocessing import os @@ -5,13 +10,13 @@ import signal import sys import threading -import time from datetime import datetime from functools import partial from logging import INFO from multiprocessing import Manager, Queue from multiprocessing.pool import ThreadPool -from typing import List, Optional, Union +from pathlib import Path +from typing import Dict, List, Optional, Union import psutil @@ -22,10 +27,10 @@ from promptflow._utils.dataclass_serializer import convert_eager_flow_output_to_dict from promptflow._utils.exception_utils import ExceptionPresenter from promptflow._utils.logger_utils import bulk_logger -from promptflow._utils.multimedia_utils import _process_recursively, persist_multimedia_data +from promptflow._utils.multimedia_utils import convert_multimedia_data_to_string, persist_multimedia_data +from promptflow._utils.process_utils import get_available_max_worker_count from promptflow._utils.thread_utils import RepeatLogTimer from promptflow._utils.utils import log_progress, set_context -from promptflow.contracts.multimedia import Image from promptflow.contracts.run_info import FlowRunInfo from promptflow.contracts.run_info import RunInfo as NodeRunInfo from promptflow.contracts.run_info import Status @@ -34,75 +39,34 @@ BatchExecutionTimeoutError, LineExecutionTimeoutError, ProcessCrashError, - ProcessInfoObtainedTimeout, - ProcessTerminatedTimeout, + ThreadCrashError, ) -from promptflow.executor._process_manager import ForkProcessManager, SpawnProcessManager +from promptflow.executor._process_manager import ForkProcessManager, ProcessInfo, SpawnProcessManager from promptflow.executor._result import LineResult from promptflow.executor._script_executor import ScriptExecutor from promptflow.executor.flow_executor import DEFAULT_CONCURRENCY_BULK, FlowExecutor -from promptflow.storage import AbstractRunStorage +from promptflow.storage._queue_run_storage import QueueRunStorage TERMINATE_SIGNAL = "terminate" -def signal_handler(signum, frame): - signame = signal.Signals(signum).name - bulk_logger.info("Execution stopping. Handling signal %s (%s)", signame, signum) - try: - process = psutil.Process(os.getpid()) - bulk_logger.info("Successfully terminated process with pid %s", process.pid) - process.terminate() - except Exception: - bulk_logger.warning("Error when handling execution stop signal", exc_info=True) - finally: - sys.exit(1) - - -class QueueRunStorage(AbstractRunStorage): - """This storage persists run info by putting it into a queue.""" - - def __init__(self, queue: Queue): - self.queue = queue - - def persist_node_run(self, run_info: NodeRunInfo): - self.queue.put(run_info) - - def persist_flow_run(self, run_info: FlowRunInfo): - self.queue.put(run_info) - - -def format_current_process_info(process_name, pid, line_number: int): - return f"Process name({process_name})-Process id({pid})-Line number({line_number})" - - -def log_process_status(process_name, pid, line_number: int, is_completed=False, is_failed=False): - process_info = format_current_process_info(process_name, pid, line_number) - if is_completed: - bulk_logger.info(f"{process_info} completed.") - elif is_failed: - bulk_logger.info(f"{process_info} failed.") - else: - bulk_logger.info(f"{process_info} start execution.") - - class LineExecutionProcessPool: _DEFAULT_WORKER_COUNT = 4 + _THREAD_TERMINATED_TIMEOUT = 10 _PROCESS_TERMINATED_TIMEOUT = 60 _PROCESS_INFO_OBTAINED_TIMEOUT = 60 def __init__( self, flow_executor: FlowExecutor, - nlines, - run_id, - output_dir, + nlines: int, + run_id: int, + output_dir: Path, batch_timeout_sec: Optional[int] = None, line_timeout_sec: Optional[int] = None, worker_count: Optional[int] = None, ): - self._nlines = nlines - self._run_id = run_id + # Determine whether to use fork to create process. multiprocessing_start_method = os.environ.get("PF_BATCH_METHOD", multiprocessing.get_start_method()) sys_start_methods = multiprocessing.get_all_start_methods() if multiprocessing_start_method not in sys_start_methods: @@ -112,20 +76,26 @@ def __init__( ) bulk_logger.info(f"Set start method to default {multiprocessing.get_start_method()}.") multiprocessing_start_method = multiprocessing.get_start_method() - use_fork = multiprocessing_start_method in ["fork", "forkserver"] - self._flow_file = flow_executor._flow_file - self._connections = flow_executor._connections - self._working_dir = flow_executor._working_dir - self._use_fork = use_fork + self._use_fork = multiprocessing_start_method in ["fork", "forkserver"] + + # Initialize some fields from the init parameters. + self._nlines = nlines + self._run_id = run_id + self._output_dir = output_dir + self._batch_timeout_sec = batch_timeout_sec + self._line_timeout_sec = line_timeout_sec or LINE_TIMEOUT_SEC + self._worker_count = self._determine_worker_count(worker_count) + + # Initialize the results dictionary that stores line results. + self._result_dict: Dict[int, LineResult] = {} + + # Initialize some fields from flow_executor and construct flow_create_kwargs + self._flow_id = flow_executor._flow_id + self._log_interval = flow_executor._log_interval if isinstance(flow_executor, ScriptExecutor): self._storage = flow_executor._storage else: self._storage = flow_executor._run_tracker._storage - self._flow_id = flow_executor._flow_id - self._log_interval = flow_executor._log_interval - self._line_timeout_sec = line_timeout_sec or LINE_TIMEOUT_SEC - self._batch_timeout_sec = batch_timeout_sec - self._output_dir = output_dir self._flow_create_kwargs = { "flow_file": flow_executor._flow_file, "connections": flow_executor._connections, @@ -135,9 +105,20 @@ def __init__( } # Will set to True if the batch run is timeouted. self._is_timeout = False - self._worker_count = self._determine_worker_count(worker_count) def __enter__(self): + self.start() + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self.close() + + @property + def is_timeout(self): + return self._is_timeout + + def start(self): + """Start the process pool and create a thread pool monitoring process status""" manager = Manager() self._processing_idx = manager.dict() self._completed_idx = manager.dict() @@ -156,14 +137,14 @@ def __enter__(self): self._input_queues = [manager.Queue() for _ in range(self._n_process)] self._output_queues = [manager.Queue() for _ in range(self._n_process)] self._control_signal_queue = manager.Queue() - self._process_info = manager.dict() + process_info: Dict[int, ProcessInfo] = manager.dict() # when using fork, we first create a process with spawn method to establish a clean environment # Then fork the subprocess in this environment to avoid some deadlock problems common_kwargs = { "input_queues": self._input_queues, "output_queues": self._output_queues, - "process_info": self._process_info, + "process_info": process_info, "process_target_func": _process_wrapper, } if self._use_fork: @@ -185,121 +166,186 @@ def __enter__(self): self._processes_manager.start_processes() self._processes_manager.ensure_healthy() - monitor_pool = ThreadPool(self._n_process, initializer=set_context, initargs=(contextvars.copy_context(),)) - self._monitor_pool = monitor_pool - - return self - - def __exit__(self, exc_type, exc_val, exc_tb): + # Start a thread pool to monitor the processes. + self._monitor_pool = ThreadPool( + self._n_process, initializer=set_context, initargs=(contextvars.copy_context(),) + ) + # The variable '_async_tasks' here is a list of AsyncResult object + # that can be used to check if the execution are finished. + # The actual line results of the batch run are stored in 'result_dict'. + + # Create _n_process monitoring threads, mainly used to assign tasks and receive line result. + # When receiving terminate signal, end the process. + # When line execution timeout or process crash, restart the process. + self._async_tasks = [ + self._monitor_pool.apply_async( + func=self._monitor_workers_and_process_tasks_in_thread, + args=( + self._task_queue, # Shared task queue for all sub processes to read the input data. + self._result_dict, # Line result dict of the batch run. + i, # Index of the sub process. + self._input_queues[i], # Specific input queue for sub process, used to send input data to it. + self._output_queues[i], # Specific output queue for sub process, used to receive results from it. + ), + ) + for i in range(self._n_process) + ] + + def close(self): + """End the process pool and close the thread pool.""" + # Terminate the task of monitor threads. + self._terminate_tasks() + # Close the thread pool and wait for all threads to complete. if self._monitor_pool is not None: self._monitor_pool.close() self._monitor_pool.join() + # If a thread crashed for some reason, the processes it monitors might not be able to exit because + # they do not receive a terminate signal. So we need to terminate these unmonitored processes. + self._processes_manager.ensure_all_processes_terminated() + + async def submit(self, run_id: str, line_number: int, inputs: dict): + """Submit a line execution request to the process pool and return the line result.""" + self._task_queue.put((run_id, line_number, inputs)) + start_time = datetime.utcnow() + line_result = None + while not self._line_timeout_expired(start_time, buffer_sec=20) and not line_result: + line_result = self._result_dict.get(line_number, None) + # Check monitor status every 1 second + self._monitor_thread_pool_status() + await asyncio.sleep(1) + return line_result - @property - def is_timeout(self): - return self._is_timeout - - def _get_process_info(self, index): - start_time = time.time() - while True: - self._processes_manager.ensure_healthy() + async def run(self, batch_inputs) -> List[LineResult]: + """Submit all batch inputs to the process pool and return the line results.""" + with RepeatLogTimer( + interval_seconds=self._log_interval, + logger=bulk_logger, + level=INFO, + log_message_function=self._generate_thread_status_messages, + args=( + self._monitor_pool, + self._nlines, + ), + ): try: - if time.time() - start_time > self._PROCESS_INFO_OBTAINED_TIMEOUT: - raise ProcessInfoObtainedTimeout(self._PROCESS_INFO_OBTAINED_TIMEOUT) - # Try to get process id and name from the process_info - process_id = self._process_info[index].process_id - process_name = self._process_info[index].process_name - return (index, process_id, process_name) - except KeyError: - # If the process_info does not exist for the given index, it means the process have not ready yet, - # try again. - time.sleep(1) - continue + self._batch_start_time = datetime.utcnow() + # After starting time, put the input in self._task_queue, because the monitor thread will + # use self._batch_start_time to calculate the remain execution time after get the input data. + for index, inputs in batch_inputs: + self._task_queue.put( + ( + self._run_id, + index, + inputs, + ) + ) + # Wait for batch run to complete or timeout + completed_line = 0 + while not self._batch_timeout_expired(self._batch_start_time): + # Print the progress logs of the batch run. + log_progress( + run_start_time=self._batch_start_time, + logger=bulk_logger, + count=len(self._result_dict), + total_count=self._nlines, + last_log_count=completed_line, + ) + completed_line = len(self._result_dict) + # If the batch run is completed, break the loop. + if self._is_batch_run_completed(): + break + # Check monitor status every 1 second + self._monitor_thread_pool_status() + await asyncio.sleep(1) + except PromptflowException: + raise except Exception as e: - raise Exception(f"Unexpected error occurred while get process info. Exception: {e}") + bulk_logger.error(f"ProcessPool failed with exception: {e}") + raise ProcessPoolError( + message_format=f"ProcessPool failed with exception: {e}", + target=ErrorTarget.EXECUTOR, + ) from e - def _ensure_process_terminated_within_timeout(self, process_id): - start_time = time.time() - while psutil.pid_exists(process_id): - if time.time() - start_time > self._PROCESS_TERMINATED_TIMEOUT: - raise ProcessTerminatedTimeout(self._PROCESS_TERMINATED_TIMEOUT) - time.sleep(1) + if self._batch_timeout_expired(self._batch_start_time): + # Send terminate signal to all threads and wait for them to exit. + self._terminate_tasks() + # Wait for up to 10s for thread termination, aiming to ensure that + # the line results in the result dict are as complete as possible. + start_time = datetime.utcnow() + while not self._timeout_expired(start_time, self._THREAD_TERMINATED_TIMEOUT): + if self._all_tasks_ready(): + break + await asyncio.sleep(1) + # Set the timeout flag to True and log the warning. + self._is_timeout = True + bulk_logger.warning(f"The batch run timed out, with {len(self._result_dict)} line results processed.") + return [self._result_dict[key] for key in sorted(self._result_dict)] - def _is_process_alive(self, process_id): - return psutil.pid_exists(process_id) - - def _handle_output_queue_messages(self, output_queue: Queue, result_list: List[LineResult]): - try: - message = output_queue.get(timeout=1) - if isinstance(message, LineResult): - message = self._process_multimedia(message) - result_list.append(message) - return message - elif isinstance(message, FlowRunInfo): - self._storage.persist_flow_run(message) - return message - elif isinstance(message, NodeRunInfo): - self._storage.persist_node_run(message) - return message - except queue.Empty: - pass - return None + # region monitor thread target function def _monitor_workers_and_process_tasks_in_thread( self, task_queue: Queue, - result_list: List[LineResult], + result_dict: Dict[int, LineResult], index: int, input_queue: Queue, output_queue: Queue, - batch_start_time: datetime, ): - index, process_id, process_name = self._get_process_info(index) - - # Entering the while loop requires two conditions: - # 1. The task queue is not empty, meaning there are lines yet to be executed. - # 2. The batch run has not reached the batch timeout limit. - while not self._batch_timeout_expired(batch_start_time): + # Get the process info of the thread monitoring from the manager. + index, process_id, process_name = self._processes_manager.get_process_info(index) + + # The main loop of the thread, responsible for getting tasks from the task queue and + # processing them through the input queue, while also monitoring for terminate signals. + # Currently, it exits this loop only upon receiving a terminate signal or the batch run timeout. + terminated = False + while not terminated: self._processes_manager.ensure_healthy() - try: - # Get task from task_queue - inputs, line_number, run_id = task_queue.get(timeout=1) - except queue.Empty: - break - + # Get task from task_queue + data = self._get_task_from_queue(task_queue) # Calculate the line timeout for the current line. - line_timeout_sec = self._line_timeout_sec - if self._batch_timeout_sec: - remaining_execution_time = ( - self._batch_timeout_sec - (datetime.utcnow() - batch_start_time).total_seconds() - ) - if remaining_execution_time <= 0: - self._is_timeout = True - break - line_timeout_sec = min(line_timeout_sec, remaining_execution_time) - - # Put task into input_queue - args = (inputs, line_number, run_id, line_timeout_sec) - input_queue.put(args) + # If the line_timeout_sec is None, it means the batch run is timeouted. + line_timeout_sec = self._calculate_line_timeout_sec() + # If the task is a terminate signal or the batch run is timeouted, exit the loop. + if data == TERMINATE_SIGNAL or line_timeout_sec is None: + bulk_logger.info(f"The thread monitoring the process [{process_id}-{process_name}] will be terminated.") + # Put the terminate signal into the input queue to notify the sub process to exit. + input_queue.put(TERMINATE_SIGNAL) + # End the process if found the terminate signal. + self._processes_manager.end_process(index) + # In fork mode, the main process and the sub spawn process communicate through _process_info. + # We need to ensure the process has been killed before returning. Otherwise, it may cause + # the main process have exited but the spawn process is still alive. + # At this time, a connection error will be reported. + self._processes_manager.ensure_process_terminated_within_timeout(process_id) + # Set terminated to True to exit the main loop. + terminated = True + else: + # If the task is a line execution request, put the request into the input queue. + run_id, line_number, inputs = data + args = (run_id, line_number, inputs, line_timeout_sec) + input_queue.put(args) - self._processing_idx[line_number] = format_current_process_info(process_name, process_id, line_number) - log_process_status(process_name, process_id, line_number) + if terminated: + break start_time = datetime.utcnow() completed = False crashed = False returned_node_run_infos = {} + self._processing_idx[line_number] = format_current_process_info(process_name, process_id, line_number) + log_process_status(process_name, process_id, line_number) # Responsible for checking the output queue messages and processing them within a specified timeout period. - while not self._batch_timeout_expired(batch_start_time) and not self._line_timeout_expired(start_time): + while not self._line_timeout_expired(start_time, line_timeout_sec=line_timeout_sec): # Monitor process aliveness. - crashed = not self._is_process_alive(process_id) + crashed = not self._processes_manager.is_process_alive(process_id) if crashed: break # Handle output queue message. - message = self._handle_output_queue_messages(output_queue, result_list) + message = self._handle_output_queue_messages(output_queue) if isinstance(message, LineResult): + result_dict[line_number] = message completed = True break if isinstance(message, NodeRunInfo): @@ -316,22 +362,18 @@ def _monitor_workers_and_process_tasks_in_thread( if crashed: bulk_logger.warning(f"Process crashed while executing line {line_number}.") ex = ProcessCrashError(line_number) - else: + elif self._line_timeout_expired(start_time, line_timeout_sec=line_timeout_sec): # Handle line execution timeout. - if self._line_timeout_expired(start_time): - bulk_logger.warning(f"Line {line_number} timeout after {self._line_timeout_sec} seconds.") - ex = LineExecutionTimeoutError(line_number, self._line_timeout_sec) - # Handle batch execution timeout. - if self._batch_timeout_expired(batch_start_time): - bulk_logger.warning( - f"Line {line_number} execution terminated due to the total " - f"batch run exceeding the batch timeout ({self._batch_timeout_sec}s)." - ) + bulk_logger.warning(f"Line {line_number} timeout after {line_timeout_sec} seconds.") + if line_timeout_sec < self._line_timeout_sec: + # If execution times out with a timeout lower than the default (self._line_timeout_sec), + # it indicates the _batch_timeout_sec has been reached. + # We should use the exception of BatchExecutionTimeoutError. ex = BatchExecutionTimeoutError(line_number, self._batch_timeout_sec) - # Set is_timeout to True if the batch run exceeds the batch timeout. - self._is_timeout = True - # This branch should not be reached, add this warning for the case. - if ex is None: + else: + ex = LineExecutionTimeoutError(line_number, line_timeout_sec) + else: + # This branch should not be reached, add this warning for the case. msg = f"Unexpected error occurred while monitoring line execution at line {line_number}." bulk_logger.warning(msg) ex = UnexpectedError(msg) @@ -345,94 +387,188 @@ def _monitor_workers_and_process_tasks_in_thread( ex, returned_node_run_infos, ) - result_list.append(result) + result_dict[line_number] = result self._completed_idx[line_number] = format_current_process_info(process_name, process_id, line_number) log_process_status(process_name, process_id, line_number, is_failed=True) - # If there are still tasks in the task_queue and the batch run does not exceed the batch timeout, - # restart a new process to execute the task. - run_finished = task_queue.empty() or self._batch_timeout_expired(batch_start_time) - if not run_finished: - self._processes_manager.restart_process(index) - # We need to ensure the process has been killed before continuing to execute. - # Otherwise the process will receive new task, and during the execution, the process - # is killed, which will result in the 'ProcessCrashError'. - self._ensure_process_terminated_within_timeout(process_id) - index, process_id, process_name = self._get_process_info(index) + self._processes_manager.restart_process(index) + # We need to ensure the process has been killed before continuing to execute. + # Otherwise the process will receive new task, and during the execution, the process + # is killed, which will result in the 'ProcessCrashError'. + self._processes_manager.ensure_process_terminated_within_timeout(process_id) + index, process_id, process_name = self._processes_manager.get_process_info(index) self._processing_idx.pop(line_number) - # If the while loop exits due to batch run timeout, we should set is_timeout to True if we didn't set it before. - self._is_timeout = self._is_timeout or self._batch_timeout_expired(batch_start_time) + # endregion + + # region private methods + def _get_task_from_queue(self, task_queue: Queue): + """Get task from the task queue. Ignore the queue being empty and only exit the loop when getting data.""" + while True: + try: + return task_queue.get(timeout=1) + except queue.Empty: + pass - if not self._is_timeout: - input_queue.put(TERMINATE_SIGNAL) + def _all_tasks_ready(self): + return all(async_task.ready() for async_task in self._async_tasks) - # End the process when the batch timeout is exceeded or when all lines have been executed. - self._processes_manager.end_process(index) + def _terminate_tasks(self): + if self._all_tasks_ready(): + return + # Put n (equal to processes number) terminate signals to the task queue to ensure each thread receives one. + for _ in range(self._n_process): + self._task_queue.put(TERMINATE_SIGNAL) + + def _determine_worker_count(self, worker_count): + # Starting a new process in non-fork mode requires to allocate memory. + # Calculate the maximum number of processes based on available memory to avoid memory bursting. + estimated_available_worker_count = get_available_max_worker_count() if not self._use_fork else None - # In fork mode, the main process and the sub spawn process communicate through _process_info. - # We need to ensure the process has been killed before returning. Otherwise, it may cause - # the main process have exited but the spawn process is still alive. - # At this time, a connection error will be reported. - self._ensure_process_terminated_within_timeout(process_id) + # If the environment variable PF_WORKER_COUNT exists and valid, use the value as the worker_count. + if worker_count is not None and worker_count > 0: + bulk_logger.info(f"Set process count to {worker_count}.") + if estimated_available_worker_count is not None and estimated_available_worker_count < worker_count: + bulk_logger.warning( + f"The current process count ({worker_count}) is larger than recommended process count " + f"({estimated_available_worker_count}) that estimated by system available memory. This may " + f"cause memory exhaustion" + ) + return worker_count + + # If the environment variable PF_WORKER_COUNT is not set or invalid, take the minimum value among the + # factors: default_worker_count, row_count and estimated_worker_count_based_on_memory_usage + factors = { + "default_worker_count": self._DEFAULT_WORKER_COUNT, + "row_count": self._nlines, + "estimated_worker_count_based_on_memory_usage": estimated_available_worker_count, + } + + valid_factors = {k: v for k, v in factors.items() if v is not None and v > 0} + + # Take the minimum value as the result + worker_count = min(valid_factors.values()) + bulk_logger.info( + f"Set process count to {worker_count} by taking the minimum value among the factors of {valid_factors}." + ) + return worker_count + + def _calculate_line_timeout_sec(self): + """Calculate the line timeout for the current line.""" + line_timeout_sec = self._line_timeout_sec + if self._batch_timeout_sec: + remaining_execution_time = int( + round(self._batch_timeout_sec - (datetime.utcnow() - self._batch_start_time).total_seconds()) + ) + if remaining_execution_time <= 0: + self._is_timeout = True + return None + line_timeout_sec = min(line_timeout_sec, remaining_execution_time) + return line_timeout_sec + + def _monitor_thread_pool_status(self): + try: + for async_task in self._async_tasks: + if not async_task.ready(): + continue + # To ensure exceptions in thread-pool calls are propagated to the main process for proper handling + # The exceptions raised will be re-raised by the get() method. + # Related link: + # https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult + async_task.get() + except PromptflowException: + raise + except Exception as e: + raise ThreadCrashError( + target=ErrorTarget.BATCH, + message_format="The monitor thread in the process pool crashed. Error: {error_type_and_message}.", + error_type_and_message=f"({e.__class__.__name__}) {e}", + ) from e + + def _generate_thread_status_messages(self, pool: ThreadPool, total_count: int): + msgs = [] + active_threads = sum(thread.is_alive() for thread in pool._pool) + msgs.append(f"[Process Pool] [Active processes: {active_threads} / {len(pool._pool)}]") + processing_lines_copy = self._processing_idx.copy() + completed_lines_copy = self._completed_idx.copy() + msgs.append( + f"[Lines] [Finished: {len(completed_lines_copy)}] [Processing: {len(processing_lines_copy)}] " + f"[Pending: {total_count - len(processing_lines_copy) - len(completed_lines_copy)}]" + ) + lines = [] + for idx, thread_name in sorted(processing_lines_copy.items()): + lines.append(f"line {idx} ({thread_name})") + if len(lines) > 0: + msgs.append("Processing Lines: " + ", ".join(lines) + ".") + return msgs + + def _is_batch_run_completed(self): + return len(self._result_dict) == self._nlines def _batch_timeout_expired(self, start_time: datetime) -> bool: if self._batch_timeout_sec is None: return False - return (datetime.utcnow() - start_time).total_seconds() > self._batch_timeout_sec + 10 + return self._timeout_expired(start_time, self._batch_timeout_sec + 10) - def _line_timeout_expired(self, start_time: datetime) -> bool: - # Here we add more seconds because of the following reasons: + def _line_timeout_expired(self, start_time: datetime, line_timeout_sec: int = None, buffer_sec: int = 10) -> bool: + # Here we add more seconds (buffer_sec) because of the following reasons: # 1. At the last second, there would be several timeout message from exec_line. # 2. It may take time to create worker so actual timeout time may be longer. - return (datetime.utcnow() - start_time).total_seconds() > self._line_timeout_sec + 10 + # 3. When using submit function to submit one line, the buffer_sec should be + # larger than the monitor thread's internal buffer time. + line_timeout_sec = line_timeout_sec or self._line_timeout_sec + return self._timeout_expired(start_time, line_timeout_sec + buffer_sec) + + def _timeout_expired(self, start_time: datetime, timeout_sec: int) -> bool: + return (datetime.utcnow() - start_time).total_seconds() > timeout_sec + + def _handle_output_queue_messages(self, output_queue: Queue): + try: + message = output_queue.get(timeout=1) + if isinstance(message, LineResult): + message = self._process_multimedia(message) + return message + elif isinstance(message, FlowRunInfo): + self._storage.persist_flow_run(message) + return message + elif isinstance(message, NodeRunInfo): + self._storage.persist_node_run(message) + return message + except queue.Empty: + pass + return None def _process_multimedia(self, result: LineResult) -> LineResult: - """Replace multimedia data in line result with string place holder to prevent OOM - and persist multimedia data in output when batch running.""" + """Replace multimedia data in line result with string place holder to + prevent OOM and persist multimedia data in output when batch running.""" if not self._output_dir: return result - self._process_multimedia_in_flow_run(result.run_info) - for node_name, node_run_info in result.node_run_infos.items(): - result.node_run_infos[node_name] = self._process_multimedia_in_node_run(node_run_info) + # Serialize multimedia data in flow run info to string + self._serialize_multimedia(result.run_info) + # Serialize multimedia data in node run infos to string + for node_run_info in result.node_run_infos.values(): + self._serialize_multimedia(node_run_info) + # Persist multimedia data in the outputs of line result to output_dir result.output = persist_multimedia_data(result.output, self._output_dir) return result - def _process_multimedia_in_run_info(self, run_info: Union[FlowRunInfo, NodeRunInfo]): - # Persist and convert images in inputs to path dictionaries. - # This replaces any image objects with their corresponding file path dictionaries. + def _serialize_multimedia(self, run_info: Union[FlowRunInfo, NodeRunInfo]): if run_info.inputs: - run_info.inputs = self._persist_and_convert_images_to_path_dicts(run_info.inputs) + run_info.inputs = convert_multimedia_data_to_string(run_info.inputs) - # Persist and convert images in output to path dictionaries. - # This replaces any image objects with their corresponding file path dictionaries. if run_info.output: - serialized_output = self._persist_and_convert_images_to_path_dicts(run_info.output) + serialized_output = convert_multimedia_data_to_string(run_info.output) run_info.output = serialized_output run_info.result = None - # Persist and convert images in api_calls to path dictionaries. # The `inplace=True` parameter is used here to ensure that the original list structure holding generator outputs # is maintained. This allows us to keep tracking the list as it dynamically changes when the generator is # consumed. It is crucial to process the api_calls list in place to avoid losing the reference to the list that # holds the generator items, which is essential for tracing generator execution. if run_info.api_calls: - run_info.api_calls = self._persist_and_convert_images_to_path_dicts(run_info.api_calls, inplace=True) - - return run_info - - def _process_multimedia_in_flow_run(self, run_info: FlowRunInfo): - self._process_multimedia_in_run_info(run_info) - - def _process_multimedia_in_node_run(self, run_info: NodeRunInfo): - run_info = self._process_multimedia_in_run_info(run_info) - return run_info - - def _persist_and_convert_images_to_path_dicts(self, value, inplace=False): - serialization_funcs = {Image: partial(Image.serialize, **{"encoder": None})} - return _process_recursively(value, process_funcs=serialization_funcs, inplace=inplace) + run_info.api_calls = convert_multimedia_data_to_string(run_info.api_calls, inplace=True) def _generate_line_result_for_exception( self, @@ -473,184 +609,10 @@ def _generate_line_result_for_exception( self._storage.persist_flow_run(result.run_info) return result - def run(self, batch_inputs): - for index, inputs in batch_inputs: - self._task_queue.put( - ( - inputs, - index, - self._run_id, - ) - ) - - result_list = [] - run_start_time = datetime.utcnow() - - with RepeatLogTimer( - interval_seconds=self._log_interval, - logger=bulk_logger, - level=INFO, - log_message_function=self._generate_thread_status_messages, - args=( - self._monitor_pool, - self._nlines, - ), - ): - try: - batch_start_time = datetime.utcnow() - args_list = [ - ( - self._task_queue, # Shared task queue for all sub processes to read the input data. - result_list, # Line result list of the batch run. - i, # Index of the sub process. - # Specific input queue for sub process, used to send input data to it. - self._input_queues[i], - # Specific output queue for the sub process, used to receive results from it. - self._output_queues[i], - batch_start_time, - ) - for i in range(self._n_process) - ] - - # The variable 'async_result' here is not the actual result of the batch run - # but an AsyncResult object that can be used to check if the execution are finished - # The actual results of the batch run are stored in 'result_list' - - # Create _n_process monitoring threads, mainly used to assign tasks and receive line result. - # When task_queue is empty, end the process. - # When line execution timeout or process crash, restart the process. - async_result = self._monitor_pool.starmap_async( - self._monitor_workers_and_process_tasks_in_thread, args_list - ) - - try: - # Only log when the number of results changes to avoid duplicate logging. - last_log_count = 0 - # Wait for batch run to complete or KeyboardInterrupt - while not async_result.ready(): - current_result_count = len(result_list) - if current_result_count != last_log_count: - log_progress( - run_start_time=run_start_time, - logger=bulk_logger, - count=len(result_list), - total_count=self._nlines, - ) - last_log_count = current_result_count - # Check every 1 second - async_result.wait(1) - # To ensure exceptions in thread-pool calls are propagated to the main process for proper handling - # The exceptions raised will be re-raised by the get() method. - # Related link: - # https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult - async_result.get() - except KeyboardInterrupt: - raise - except PromptflowException: - raise - except Exception as e: - bulk_logger.error(f"ProcessPool failed with exception: {e}") - raise ProcessPoolError( - message_format=f"ProcessPool failed with exception: {e}", - target=ErrorTarget.EXECUTOR, - ) from e - return result_list - - def _generate_thread_status_messages(self, pool: ThreadPool, total_count: int): - msgs = [] - active_threads = sum(thread.is_alive() for thread in pool._pool) - msgs.append(f"[Process Pool] [Active processes: {active_threads} / {len(pool._pool)}]") - processing_lines_copy = self._processing_idx.copy() - completed_lines_copy = self._completed_idx.copy() - msgs.append( - f"[Lines] [Finished: {len(completed_lines_copy)}] [Processing: {len(processing_lines_copy)}] " - f"[Pending: {total_count - len(processing_lines_copy) - len(completed_lines_copy)}]" - ) - lines = [] - for idx, thread_name in sorted(processing_lines_copy.items()): - lines.append(f"line {idx} ({thread_name})") - if len(lines) > 0: - msgs.append("Processing Lines: " + ", ".join(lines) + ".") - return msgs - - def _determine_worker_count(self, worker_count): - # Starting a new process in non-fork mode requires to allocate memory. - # Calculate the maximum number of processes based on available memory to avoid memory bursting. - estimated_available_worker_count = get_available_max_worker_count() if not self._use_fork else None + # endregion - # If the environment variable PF_WORKER_COUNT exists and valid, use the value as the worker_count. - if worker_count is not None and worker_count > 0: - self._log_set_worker_count(worker_count, estimated_available_worker_count) - return worker_count - # If the environment variable PF_WORKER_COUNT is not set or invalid, take the minimum value among the - # factors: default_worker_count, row_count and estimated_worker_count_based_on_memory_usage - factors = { - "default_worker_count": self._DEFAULT_WORKER_COUNT, - "row_count": self._nlines, - "estimated_worker_count_based_on_memory_usage": estimated_available_worker_count, - } - - valid_factors = {k: v for k, v in factors.items() if v is not None and v > 0} - - # Take the minimum value as the result - worker_count = min(valid_factors.values()) - bulk_logger.info( - f"Set process count to {worker_count} by taking the minimum value among the factors of {valid_factors}." - ) - return worker_count - - def _log_set_worker_count(self, worker_count, estimated_available_worker_count): - bulk_logger.info(f"Set process count to {worker_count}.") - if estimated_available_worker_count is not None and estimated_available_worker_count < worker_count: - bulk_logger.warning( - f"The current process count ({worker_count}) is larger than recommended process count " - f"({estimated_available_worker_count}) that estimated by system available memory. This may " - f"cause memory exhaustion" - ) - - -def _exec_line( - executor: FlowExecutor, output_queue: Queue, *, inputs: dict, run_id: str, index: int, line_timeout_sec: int -): - try: - line_result = executor.exec_line( - inputs=inputs, - run_id=run_id, - index=index, - node_concurrency=DEFAULT_CONCURRENCY_BULK, - line_timeout_sec=line_timeout_sec, - ) - if line_result is not None: - # For eager flow, the output may be a dataclass which is not picklable, we need to convert it to dict. - if not isinstance(line_result.output, dict): - line_result.output = convert_eager_flow_output_to_dict(line_result.output) - line_result.output.pop(LINE_NUMBER_KEY, None) - # TODO: Put serialized line result into queue to catch serialization error beforehand. - # Otherwise it might cause the process to hang, e.g, line failed because output is not seralizable. - if line_result is not None and line_result.run_info.status == Status.Failed: - line_result.output = {} - return line_result - except Exception as e: - bulk_logger.error(f"Line {index}, Process {os.getpid()} failed with exception: {e}") - flow_id = executor._flow_id - line_run_id = run_id if index is None else f"{run_id}_{index}" - # If line execution failed before start, there is no flow information in the run_tracker. - # So we call start_flow_run before handling exception to make sure the run_tracker has flow info. - if isinstance(executor, ScriptExecutor): - run_tracker = RunTracker(executor._storage) - else: - run_tracker = executor._run_tracker - run_tracker.start_flow_run(flow_id, run_id, line_run_id, run_id) - run_info = run_tracker.end_run(f"{run_id}_{index}", ex=e) - output_queue.put(run_info) - result = LineResult( - output={}, - aggregation_inputs={}, - run_info=run_info, - node_run_infos={}, - ) - return result +# region process target functions def _process_wrapper( @@ -673,33 +635,25 @@ def _process_wrapper( if log_context_initialization_func: with log_context_initialization_func(): - exec_line_for_queue(executor_creation_func, input_queue, output_queue) + _exec_line_for_queue(executor_creation_func, input_queue, output_queue) else: - exec_line_for_queue(executor_creation_func, input_queue, output_queue) + _exec_line_for_queue(executor_creation_func, input_queue, output_queue) -def create_executor_fork(*, flow_executor: FlowExecutor, storage: AbstractRunStorage): - if isinstance(flow_executor, ScriptExecutor): - return ScriptExecutor( - flow_file=flow_executor._flow_file, - connections=flow_executor._connections, - working_dir=flow_executor._working_dir, - storage=storage, - ) - else: - run_tracker = RunTracker(run_storage=storage) - return FlowExecutor( - flow=flow_executor._flow, - connections=flow_executor._connections, - run_tracker=run_tracker, - cache_manager=flow_executor._cache_manager, - loaded_tools=flow_executor._loaded_tools, - raise_ex=False, - line_timeout_sec=flow_executor._line_timeout_sec, - ) +def signal_handler(signum, frame): + signame = signal.Signals(signum).name + bulk_logger.info("Execution stopping. Handling signal %s (%s)", signame, signum) + try: + process = psutil.Process(os.getpid()) + bulk_logger.info("Successfully terminated process with pid %s", process.pid) + process.terminate() + except Exception: + bulk_logger.warning("Error when handling execution stop signal", exc_info=True) + finally: + sys.exit(1) -def exec_line_for_queue(executor_creation_func, input_queue: Queue, output_queue: Queue): +def _exec_line_for_queue(executor_creation_func, input_queue: Queue, output_queue: Queue): run_storage = QueueRunStorage(output_queue) executor: FlowExecutor = executor_creation_func(storage=run_storage) @@ -707,6 +661,7 @@ def exec_line_for_queue(executor_creation_func, input_queue: Queue, output_queue try: data = input_queue.get(timeout=1) if data == TERMINATE_SIGNAL: + bulk_logger.info(f"The process [{os.getpid()}] has received a terminate signal.") # Add try catch in case of shutdown method is not implemented in the tracer provider. try: import opentelemetry.trace as otel_trace @@ -720,7 +675,7 @@ def exec_line_for_queue(executor_creation_func, input_queue: Queue, output_queue # If found the terminate signal, exit the process. break - inputs, line_number, run_id, line_timeout_sec = data + run_id, line_number, inputs, line_timeout_sec = data result = _exec_line( executor=executor, output_queue=output_queue, @@ -736,29 +691,67 @@ def exec_line_for_queue(executor_creation_func, input_queue: Queue, output_queue pass -def get_available_max_worker_count(): - pid = os.getpid() - mem_info = psutil.virtual_memory() - available_memory = mem_info.available / (1024 * 1024) # in MB - process = psutil.Process(pid) - process_memory_info = process.memory_info() - process_memory = process_memory_info.rss / (1024 * 1024) # in MB - estimated_available_worker_count = int(available_memory // process_memory) - if estimated_available_worker_count < 1: - # TODO: For the case of vector db, Optimize execution logic - # 1. Let the main process not consume memory because it does not actually invoke - # 2. When the degree of parallelism is 1, main process executes the task directly and not - # create the child process - bulk_logger.warning( - f"Current system's available memory is {available_memory}MB, less than the memory " - f"{process_memory}MB required by the process. The maximum available worker count is 1." +def _exec_line( + executor: FlowExecutor, output_queue: Queue, *, inputs: dict, run_id: str, index: int, line_timeout_sec: int +): + try: + line_result = executor.exec_line( + inputs=inputs, + run_id=run_id, + index=index, + node_concurrency=DEFAULT_CONCURRENCY_BULK, + line_timeout_sec=line_timeout_sec, ) - estimated_available_worker_count = 1 - else: - bulk_logger.info( - f"Current system's available memory is {available_memory}MB, " - f"memory consumption of current process is {process_memory}MB, " - f"estimated available worker count is {available_memory}/{process_memory} " - f"= {estimated_available_worker_count}" + if line_result is not None: + # For eager flow, the output may be a dataclass which is not picklable, we need to convert it to dict. + if not isinstance(line_result.output, dict): + line_result.output = convert_eager_flow_output_to_dict(line_result.output) + line_result.output.pop(LINE_NUMBER_KEY, None) + # TODO: Put serialized line result into queue to catch serialization error beforehand. + # Otherwise it might cause the process to hang, e.g, line failed because output is not seralizable. + if line_result is not None and line_result.run_info.status == Status.Failed: + line_result.output = {} + return line_result + except Exception as e: + bulk_logger.error(f"Line {index}, Process {os.getpid()} failed with exception: {e}") + flow_id = executor._flow_id + line_run_id = run_id if index is None else f"{run_id}_{index}" + # If line execution failed before start, there is no flow information in the run_tracker. + # So we call start_flow_run before handling exception to make sure the run_tracker has flow info. + if isinstance(executor, ScriptExecutor): + run_tracker = RunTracker(executor._storage) + else: + run_tracker = executor._run_tracker + run_tracker.start_flow_run(flow_id, run_id, line_run_id, run_id) + run_info = run_tracker.end_run(f"{run_id}_{index}", ex=e) + output_queue.put(run_info) + result = LineResult( + output={}, + aggregation_inputs={}, + run_info=run_info, + node_run_infos={}, ) - return estimated_available_worker_count + return result + + +# endregion + + +# region utils function + + +def log_process_status(process_name, pid, line_number: int, is_completed=False, is_failed=False): + process_info = format_current_process_info(process_name, pid, line_number) + if is_completed: + bulk_logger.info(f"{process_info} completed.") + elif is_failed: + bulk_logger.info(f"{process_info} failed.") + else: + bulk_logger.info(f"{process_info} start execution.") + + +def format_current_process_info(process_name, pid, line_number: int): + return f"Process name({process_name})-Process id({pid})-Line number({line_number})" + + +# endregion diff --git a/src/promptflow/promptflow/executor/_process_manager.py b/src/promptflow/promptflow/executor/_process_manager.py index 1e8d31d3cad..bd781d795ef 100644 --- a/src/promptflow/promptflow/executor/_process_manager.py +++ b/src/promptflow/promptflow/executor/_process_manager.py @@ -1,18 +1,26 @@ import multiprocessing import queue import signal +import time from dataclasses import dataclass from enum import Enum from functools import partial -from multiprocessing import Queue -from typing import List +from multiprocessing import Process, Queue +from typing import Dict, List import psutil from promptflow._core.operation_context import OperationContext +from promptflow._core.run_tracker import RunTracker from promptflow._utils.logger_utils import LogContext, bulk_logger -from promptflow.executor._errors import SpawnedForkProcessManagerStartFailure +from promptflow.executor._errors import ( + ProcessInfoObtainedTimeout, + ProcessTerminatedTimeout, + SpawnedForkProcessManagerStartFailure, +) +from promptflow.executor._script_executor import ScriptExecutor from promptflow.executor.flow_executor import FlowExecutor +from promptflow.storage import AbstractRunStorage @dataclass @@ -47,6 +55,9 @@ class AbstractProcessManager: :type raise_ex: bool """ + _PROCESS_TERMINATED_TIMEOUT = 60 + _PROCESS_INFO_OBTAINED_TIMEOUT = 60 + def __init__( self, input_queues: List[Queue], @@ -58,7 +69,7 @@ def __init__( ) -> None: self._input_queues = input_queues self._output_queues = output_queues - self._process_info = process_info + self._process_info: Dict[int, ProcessInfo] = process_info self._process_target_func = process_target_func current_log_context = LogContext.get_current() self._log_context_initialization_func = current_log_context.get_initializer() if current_log_context else None @@ -80,7 +91,8 @@ def restart_process(self, i): :param i: Index of the process to restart. :type i: int """ - raise NotImplementedError("AbstractProcessManager is an abstract class, no implementation for restart_process.") + self.end_process(i) + self.new_process(i) def end_process(self, i): """ @@ -89,7 +101,11 @@ def end_process(self, i): :param i: Index of the process to terminate. :type i: int """ - raise NotImplementedError("AbstractProcessManager is an abstract class, no implementation for end_process.") + try: + pid = self._process_info[i].process_id + self._terminate_process(i, pid) + finally: + self._process_info.pop(i) def ensure_healthy(self): """ @@ -99,6 +115,58 @@ def ensure_healthy(self): """ raise NotImplementedError("AbstractProcessManager is an abstract class, no implementation for end_process.") + def get_process_info(self, index): + start_time = time.time() + while True: + self.ensure_healthy() + try: + if time.time() - start_time > self._PROCESS_INFO_OBTAINED_TIMEOUT: + raise ProcessInfoObtainedTimeout(self._PROCESS_INFO_OBTAINED_TIMEOUT) + # Try to get process id and name from the process_info + process_id = self._process_info[index].process_id + process_name = self._process_info[index].process_name + return (index, process_id, process_name) + except KeyError: + # If the process_info does not exist for the given index, it means the process have not ready yet, + # try again. + time.sleep(1) + continue + except Exception as e: + raise Exception(f"Unexpected error occurred while get process info. Exception: {e}") + + def ensure_process_terminated_within_timeout(self, process_id): + start_time = time.time() + while psutil.pid_exists(process_id): + if time.time() - start_time > self._PROCESS_TERMINATED_TIMEOUT: + raise ProcessTerminatedTimeout(self._PROCESS_TERMINATED_TIMEOUT) + time.sleep(1) + + def ensure_all_processes_terminated(self): + for i, info in self._process_info.items(): + self._terminate_process(i, info.process_id) + + def is_process_alive(self, process_id): + return psutil.pid_exists(process_id) + + def _terminate_process(self, i, pid): + warning_msg = "Unexpected error occurred while end process for index {i} and process id {pid}. Exception: {e}" + try: + process = psutil.Process(pid) + # The subprocess will get terminate signal from input queue, so we need to wait for the process to exit. + # If the process is still running after 10 seconds, it will raise psutil.TimeoutExpired exception. + process.wait(timeout=10) + except psutil.NoSuchProcess: + bulk_logger.warning(f"Process {pid} had been terminated.") + except psutil.TimeoutExpired: + try: + # If the process is still running after waiting 10 seconds, terminate it. + process.terminate() + process.wait() + except Exception as e: + bulk_logger.warning(warning_msg.format(i=i, pid=pid, e=e)) + except Exception as e: + bulk_logger.warning(warning_msg.format(i=i, pid=pid, e=e)) + class SpawnProcessManager(AbstractProcessManager): """ @@ -157,47 +225,6 @@ def new_process(self, i): ) return process - def restart_process(self, i): - """ - Restarts a specified process by first terminating it then creating a new one. - - :param i: Index of the process to restart. - :type i: int - """ - self.end_process(i) - self.new_process(i) - - def end_process(self, i): - """ - Terminates a specified process. - - :param i: Index of the process to terminate. - :type i: int - """ - warning_msg = ( - "Unexpected error occurred while end process for index {i} and process id {pid}. " - "Exception: {e}" - ) - try: - pid = self._process_info[i].process_id - process = psutil.Process(pid) - # The subprocess will get terminate signal from input queue, so we need to wait for the process to exit. - # If the process is still running after 10 seconds, it will raise psutil.TimeoutExpired exception. - process.wait(timeout=10) - except psutil.NoSuchProcess: - bulk_logger.warning(f"Process {pid} had been terminated.") - except psutil.TimeoutExpired: - try: - # If the process is still running after waiting 10 seconds, terminate it. - process.terminate() - process.wait() - except Exception as e: - bulk_logger.warning(warning_msg.format(i=i, pid=pid, e=e)) - except Exception as e: - bulk_logger.warning(warning_msg.format(i=i, pid=pid, e=e)) - finally: - self._process_info.pop(i) - def ensure_healthy(self): """ Checks the health of the managed processes. @@ -334,7 +361,7 @@ def new_process(self, i): :param i: Index of the input and output queue for the new process. :type i: int """ - process = self.context.Process( + process: Process = self.context.Process( target=self._process_target_func, args=( self._executor_creation_func, @@ -359,47 +386,6 @@ def new_process(self, i): ) return process - def end_process(self, i): - """ - Terminates a specified process. - - :param i: Index of the process to terminate. - :type i: int - """ - warning_msg = ( - "Unexpected error occurred while end process for index {i} and process id {pid}. " - "Exception: {e}" - ) - try: - pid = self._process_info[i].process_id - process = psutil.Process(pid) - # The subprocess will get terminate signal from input queue, so we need to wait for the process to exit. - # If the process is still running after 10 seconds, it will raise psutil.TimeoutExpired exception. - process.wait(timeout=10) - except psutil.NoSuchProcess: - bulk_logger.warning(f"Process {pid} had been terminated.") - except psutil.TimeoutExpired: - try: - # If the process is still running after waiting 10 seconds, terminate it. - process.terminate() - process.wait() - except Exception as e: - bulk_logger.warning(warning_msg.format(i=i, pid=pid, e=e)) - except Exception as e: - bulk_logger.warning(warning_msg.format(i=i, pid=pid, e=e)) - finally: - self._process_info.pop(i) - - def restart_process(self, i): - """ - Restarts a specified process by first terminating it then creating a new one. - - :param i: Index of the process to restart. - :type i: int - """ - self.end_process(i) - self.new_process(i) - def handle_signals(self, control_signal, i): """ Handles control signals for processes, performing actions such as starting, ending, @@ -434,7 +420,7 @@ def create_spawned_fork_process_manager( """ # Set up signal handling for process interruption. - from promptflow.executor._line_execution_process_pool import create_executor_fork, signal_handler + from promptflow.executor._line_execution_process_pool import signal_handler signal.signal(signal.SIGINT, signal_handler) @@ -443,7 +429,7 @@ def create_spawned_fork_process_manager( # When using fork, we use this method to create the executor to avoid reloading the flow # which will introduce a lot more memory. - executor_creation_func = partial(create_executor_fork, flow_executor=executor) + executor_creation_func = partial(_create_executor_fork, flow_executor=executor) manager = SpawnedForkProcessManager( log_context_initialization_func, @@ -492,3 +478,24 @@ def create_spawned_fork_process_manager( except queue.Empty: # Do nothing until the process_queue have not content or process is killed pass + + +def _create_executor_fork(*, flow_executor: FlowExecutor, storage: AbstractRunStorage): + if isinstance(flow_executor, ScriptExecutor): + return ScriptExecutor( + flow_file=flow_executor._flow_file, + connections=flow_executor._connections, + working_dir=flow_executor._working_dir, + storage=storage, + ) + else: + run_tracker = RunTracker(run_storage=storage) + return FlowExecutor( + flow=flow_executor._flow, + connections=flow_executor._connections, + run_tracker=run_tracker, + cache_manager=flow_executor._cache_manager, + loaded_tools=flow_executor._loaded_tools, + raise_ex=False, + line_timeout_sec=flow_executor._line_timeout_sec, + ) diff --git a/src/promptflow/promptflow/storage/_queue_run_storage.py b/src/promptflow/promptflow/storage/_queue_run_storage.py new file mode 100644 index 00000000000..7790f371fea --- /dev/null +++ b/src/promptflow/promptflow/storage/_queue_run_storage.py @@ -0,0 +1,24 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +from multiprocessing import Queue + +from promptflow.contracts.run_info import FlowRunInfo +from promptflow.contracts.run_info import RunInfo as NodeRunInfo +from promptflow.storage import AbstractRunStorage + + +class QueueRunStorage(AbstractRunStorage): + """This storage is used in line_execution_process_pool, where the run infos are put into the + output queue when the flow is executed, and waiting for the monitoring thread to process it. + """ + + def __init__(self, queue: Queue): + self.queue = queue + + def persist_node_run(self, run_info: NodeRunInfo): + self.queue.put(run_info) + + def persist_flow_run(self, run_info: FlowRunInfo): + self.queue.put(run_info) diff --git a/src/promptflow/tests/executor/e2etests/test_batch_timeout.py b/src/promptflow/tests/executor/e2etests/test_batch_timeout.py index 91b8fa975a8..df970705aa5 100644 --- a/src/promptflow/tests/executor/e2etests/test_batch_timeout.py +++ b/src/promptflow/tests/executor/e2etests/test_batch_timeout.py @@ -127,7 +127,6 @@ def test_batch_with_one_line_timeout(self, flow_folder, dev_connections): [ (ONE_LINE_OF_BULK_TEST_TIMEOUT, 600, 5, BatchExecutionTimeoutError(2, 5), Status.Failed), (ONE_LINE_OF_BULK_TEST_TIMEOUT, 3, 600, LineExecutionTimeoutError(2, 3), Status.Completed), - (ONE_LINE_OF_BULK_TEST_TIMEOUT, 10, 10, BatchExecutionTimeoutError(2, 10), Status.Failed), ], ) def test_batch_timeout(self, flow_folder, line_timeout_sec, batch_timeout_sec, expected_error, batch_run_status): diff --git a/src/promptflow/tests/executor/unittests/_utils/test_process_utils.py b/src/promptflow/tests/executor/unittests/_utils/test_process_utils.py new file mode 100644 index 00000000000..b0b370c2232 --- /dev/null +++ b/src/promptflow/tests/executor/unittests/_utils/test_process_utils.py @@ -0,0 +1,38 @@ +from unittest.mock import patch + +import pytest + +from promptflow._utils.process_utils import get_available_max_worker_count + + +class TestProcessUtils: + @pytest.mark.parametrize( + "available_memory, process_memory, expected_max_worker_count, actual_calculate_worker_count", + [ + (128.0, 64.0, 2, 2), # available_memory/process_memory > 1 + (63.0, 64.0, 1, 0), # available_memory/process_memory < 1 + ], + ) + def test_get_available_max_worker_count( + self, available_memory, process_memory, expected_max_worker_count, actual_calculate_worker_count + ): + with patch("psutil.virtual_memory") as mock_mem: + mock_mem.return_value.available = available_memory * 1024 * 1024 + with patch("psutil.Process") as mock_process: + mock_process.return_value.memory_info.return_value.rss = process_memory * 1024 * 1024 + with patch("promptflow._utils.process_utils.bulk_logger") as mock_logger: + mock_logger.warning.return_value = None + estimated_available_worker_count = get_available_max_worker_count(mock_logger) + assert estimated_available_worker_count == expected_max_worker_count + if actual_calculate_worker_count < 1: + mock_logger.warning.assert_called_with( + f"Current system's available memory is {available_memory}MB, less than the memory " + f"{process_memory}MB required by the process. The maximum available worker count is 1." + ) + else: + mock_logger.info.assert_called_with( + f"Current system's available memory is {available_memory}MB, " + f"memory consumption of current process is {process_memory}MB, " + f"estimated available worker count is {available_memory}/{process_memory} " + f"= {actual_calculate_worker_count}" + ) diff --git a/src/promptflow/tests/executor/unittests/processpool/test_line_execution_process_pool.py b/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py similarity index 87% rename from src/promptflow/tests/executor/unittests/processpool/test_line_execution_process_pool.py rename to src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py index e1446855e44..7379daa42fc 100644 --- a/src/promptflow/tests/executor/unittests/processpool/test_line_execution_process_pool.py +++ b/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py @@ -19,7 +19,6 @@ LineExecutionProcessPool, _exec_line, format_current_process_info, - get_available_max_worker_count, log_process_status, ) from promptflow.executor._process_manager import create_spawned_fork_process_manager @@ -185,13 +184,14 @@ def custom_create_spawned_fork_process_manager(*args, **kwargs): @pytest.mark.unittest @pytest.mark.usefixtures("recording_injection") class TestLineExecutionProcessPool: + @pytest.mark.asyncio @pytest.mark.parametrize( "flow_folder", [ SAMPLE_FLOW, ], ) - def test_line_execution_process_pool(self, flow_folder, dev_connections): + async def test_line_execution_process_pool(self, flow_folder, dev_connections): log_path = str(Path(mkdtemp()) / "test.log") log_context_initializer = LogContext(log_path).get_initializer() log_context = log_context_initializer() @@ -208,19 +208,20 @@ def test_line_execution_process_pool(self, flow_folder, dev_connections): run_id, None, ) as pool: - result_list = pool.run(zip(range(nlines), bulk_inputs)) + result_list = await pool.run(zip(range(nlines), bulk_inputs)) assert len(result_list) == nlines for i, line_result in enumerate(result_list): assert isinstance(line_result, LineResult) assert line_result.run_info.status == Status.Completed, f"{i}th line got {line_result.run_info.status}" + @pytest.mark.asyncio @pytest.mark.parametrize( "flow_folder", [ SAMPLE_FLOW, ], ) - def test_line_execution_not_completed(self, flow_folder, dev_connections): + async def test_line_execution_not_completed(self, flow_folder, dev_connections): executor = FlowExecutor.create(get_yaml_file(flow_folder), dev_connections) run_id = str(uuid.uuid4()) bulk_inputs = get_bulk_inputs() @@ -232,8 +233,7 @@ def test_line_execution_not_completed(self, flow_folder, dev_connections): None, line_timeout_sec=1, ) as pool: - result_list = pool.run(zip(range(nlines), bulk_inputs)) - result_list = sorted(result_list, key=lambda r: r.run_info.index) + result_list = await pool.run(zip(range(nlines), bulk_inputs)) assert len(result_list) == nlines for i, line_result in enumerate(result_list): assert isinstance(line_result, LineResult) @@ -291,13 +291,14 @@ def test_exec_line_failed_when_line_execution_not_start(self, flow_folder, dev_c assert line_result.run_info.error["code"] == "UserError" assert line_result.run_info.status == Status.Failed + @pytest.mark.asyncio @pytest.mark.parametrize( "flow_folder", [ SAMPLE_FLOW, ], ) - def test_process_pool_run_with_exception(self, flow_folder, dev_connections, mocker: MockFixture): + async def test_process_pool_run_with_exception(self, flow_folder, dev_connections, mocker: MockFixture): # mock process pool run execution raise error test_error_msg = "Test user error" mocker.patch( @@ -316,7 +317,7 @@ def test_process_pool_run_with_exception(self, flow_folder, dev_connections, moc None, ) as pool: with pytest.raises(UserErrorException) as e: - pool.run(zip(range(nlines), bulk_inputs)) + await pool.run(zip(range(nlines), bulk_inputs)) assert e.value.message == test_error_msg assert e.value.target == ErrorTarget.AZURE_RUN_STORAGE assert e.value.error_codes[0] == "UserError" @@ -406,6 +407,7 @@ def test_process_not_set_environment_variable(self, dev_connections): assert p.exitcode == 0 @pytest.mark.skipif(sys.platform == "win32" or sys.platform == "darwin", reason="Only test on linux") + @pytest.mark.asyncio @pytest.mark.parametrize( "flow_folder", [ @@ -416,7 +418,7 @@ def test_process_not_set_environment_variable(self, dev_connections): "promptflow.executor._process_manager.create_spawned_fork_process_manager", custom_create_spawned_fork_process_manager, ) - def test_spawned_fork_process_manager_crashed_in_fork_mode(self, flow_folder, dev_connections): + async def test_spawned_fork_process_manager_crashed_in_fork_mode(self, flow_folder, dev_connections): executor = FlowExecutor.create(get_yaml_file(flow_folder), dev_connections) run_id = str(uuid.uuid4()) bulk_inputs = get_bulk_inputs() @@ -429,43 +431,10 @@ def test_spawned_fork_process_manager_crashed_in_fork_mode(self, flow_folder, de run_id, None, ) as pool: - pool.run(zip(range(nlines), bulk_inputs)) + await pool.run(zip(range(nlines), bulk_inputs)) assert "Failed to start spawned fork process manager" in str(e.value) -class TestGetAvailableMaxWorkerCount: - @pytest.mark.parametrize( - "available_memory, process_memory, expected_max_worker_count, actual_calculate_worker_count", - [ - (128.0, 64.0, 2, 2), # available_memory/process_memory > 1 - (63.0, 64.0, 1, 0), # available_memory/process_memory < 1 - ], - ) - def test_get_available_max_worker_count( - self, available_memory, process_memory, expected_max_worker_count, actual_calculate_worker_count - ): - with patch("psutil.virtual_memory") as mock_mem: - mock_mem.return_value.available = available_memory * 1024 * 1024 - with patch("psutil.Process") as mock_process: - mock_process.return_value.memory_info.return_value.rss = process_memory * 1024 * 1024 - with patch("promptflow.executor._line_execution_process_pool.bulk_logger") as mock_logger: - mock_logger.warning.return_value = None - estimated_available_worker_count = get_available_max_worker_count() - assert estimated_available_worker_count == expected_max_worker_count - if actual_calculate_worker_count < 1: - mock_logger.warning.assert_called_with( - f"Current system's available memory is {available_memory}MB, less than the memory " - f"{process_memory}MB required by the process. The maximum available worker count is 1." - ) - else: - mock_logger.info.assert_called_with( - f"Current system's available memory is {available_memory}MB, " - f"memory consumption of current process is {process_memory}MB, " - f"estimated available worker count is {available_memory}/{process_memory} " - f"= {actual_calculate_worker_count}" - ) - - @pytest.mark.unittest class TestFormatCurrentProcess: def test_format_current_process_info(self): diff --git a/src/promptflow/tests/executor/unittests/processpool/__init__.py b/src/promptflow/tests/executor/unittests/processpool/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 From 840fa04e9f006e7c1d7d938823925a08741e58a1 Mon Sep 17 00:00:00 2001 From: Robben Wang <350053002@qq.com> Date: Tue, 12 Mar 2024 14:50:18 +0800 Subject: [PATCH 021/204] Improve created_by info for local to cloud trace (#2232) # Description 1. Add name in created_by info (For UI show) 2. Call method to get created_by in each request instead of starting service As info required by local to cloud trace, don't depend on Configuration file is clearer. ![image](https://github.com/microsoft/promptflow/assets/17527303/d8957e46-9848-40c3-8f4b-8d1fb1fc3816) # All Promptflow Contribution checklist: - [X] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [X] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [X] Title of the pull request is clear and informative. - [X] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: robbenwang --- .../_sdk/_service/apis/collector.py | 35 ++++++--- .../promptflow/_sdk/_service/app.py | 71 ++++++++++--------- 2 files changed, 65 insertions(+), 41 deletions(-) diff --git a/src/promptflow/promptflow/_sdk/_service/apis/collector.py b/src/promptflow/promptflow/_sdk/_service/apis/collector.py index 0a31761074b..647f8a64a11 100644 --- a/src/promptflow/promptflow/_sdk/_service/apis/collector.py +++ b/src/promptflow/promptflow/_sdk/_service/apis/collector.py @@ -11,6 +11,7 @@ import logging import traceback from datetime import datetime +from typing import Callable from flask import request from google.protobuf.json_format import MessageToJson @@ -28,7 +29,15 @@ from promptflow._utils.thread_utils import ThreadWithContextVars -def trace_collector(logger: logging.Logger): +def trace_collector(get_created_by_info_with_cache: Callable, logger: logging.Logger): + """ + This function is target to be reused in other places, so pass in get_created_by_info_with_cache and logger to avoid + app related dependencies. + + Args: + get_created_by_info_with_cache (Callable): A function that retrieves information about the creator of the trace. + logger (logging.Logger): The logger object used for logging. + """ content_type = request.headers.get("Content-Type") # binary protobuf encoding if "application/x-protobuf" in content_type: @@ -55,7 +64,9 @@ def trace_collector(logger: logging.Logger): all_spans.append(span) # Create a new thread to write trace to cosmosdb to avoid blocking the main thread - ThreadWithContextVars(target=_try_write_trace_to_cosmosdb, args=(all_spans, logger)).start() + ThreadWithContextVars( + target=_try_write_trace_to_cosmosdb, args=(all_spans, get_created_by_info_with_cache, logger) + ).start() return "Traces received", 200 # JSON protobuf encoding @@ -63,7 +74,7 @@ def trace_collector(logger: logging.Logger): raise NotImplementedError -def _try_write_trace_to_cosmosdb(all_spans, logger: logging.Logger): +def _try_write_trace_to_cosmosdb(all_spans, get_created_by_info_with_cache: Callable, logger: logging.Logger): if not all_spans: return try: @@ -78,31 +89,37 @@ def _try_write_trace_to_cosmosdb(all_spans, logger: logging.Logger): logger.info(f"Start writing trace to cosmosdb, total spans count: {len(all_spans)}.") start_time = datetime.now() - from promptflow._sdk._service.app import CREATED_BY_FOR_LOCAL_TO_CLOUD_TRACE from promptflow.azure._storage.cosmosdb.client import get_client from promptflow.azure._storage.cosmosdb.span import Span as SpanCosmosDB from promptflow.azure._storage.cosmosdb.summary import Summary # Load span and summary clients first time may slow. # So, we load 2 client in parallel for warm up. - span_thread = ThreadWithContextVars( + span_client_thread = ThreadWithContextVars( target=get_client, args=(CosmosDBContainerName.SPAN, subscription_id, resource_group_name, workspace_name) ) - span_thread.start() + span_client_thread.start() + + # Load created_by info first time may slow. So, we load it in parallel for warm up. + created_by_thread = ThreadWithContextVars(target=get_created_by_info_with_cache) + created_by_thread.start() get_client(CosmosDBContainerName.LINE_SUMMARY, subscription_id, resource_group_name, workspace_name) - span_thread.join() + span_client_thread.join() + created_by_thread.join() + + created_by = get_created_by_info_with_cache() for span in all_spans: span_client = get_client(CosmosDBContainerName.SPAN, subscription_id, resource_group_name, workspace_name) - result = SpanCosmosDB(span, CREATED_BY_FOR_LOCAL_TO_CLOUD_TRACE).persist(span_client) + result = SpanCosmosDB(span, created_by).persist(span_client) # None means the span already exists, then we don't need to persist the summary also. if result is not None: line_summary_client = get_client( CosmosDBContainerName.LINE_SUMMARY, subscription_id, resource_group_name, workspace_name ) - Summary(span, CREATED_BY_FOR_LOCAL_TO_CLOUD_TRACE, logger).persist(line_summary_client) + Summary(span, created_by, logger).persist(line_summary_client) logger.info( ( f"Finish writing trace to cosmosdb, total spans count: {len(all_spans)}." diff --git a/src/promptflow/promptflow/_sdk/_service/app.py b/src/promptflow/promptflow/_sdk/_service/app.py index 30993d0da05..d2555465b96 100644 --- a/src/promptflow/promptflow/_sdk/_service/app.py +++ b/src/promptflow/promptflow/_sdk/_service/app.py @@ -3,6 +3,7 @@ # --------------------------------------------------------- import logging import sys +import threading import time from datetime import datetime, timedelta from logging.handlers import RotatingFileHandler @@ -42,9 +43,6 @@ def heartbeat(): return jsonify(response) -CREATED_BY_FOR_LOCAL_TO_CLOUD_TRACE = {} - - def create_app(): app = Flask(__name__) @@ -54,7 +52,9 @@ def create_app(): CORS(app) app.add_url_rule("/heartbeat", view_func=heartbeat) - app.add_url_rule("/v1/traces", view_func=lambda: trace_collector(app.logger), methods=["POST"]) + app.add_url_rule( + "/v1/traces", view_func=lambda: trace_collector(get_created_by_info_with_cache, app.logger), methods=["POST"] + ) with app.app_context(): api_v1 = Blueprint("Prompt Flow Service", __name__, url_prefix="/v1.0") @@ -86,33 +86,6 @@ def create_app(): # Set app logger to the only one RotatingFileHandler to avoid duplicate logs app.logger.handlers = [handler] - def initialize_created_by_info(): - from promptflow._sdk._configuration import Configuration - from promptflow._sdk._utils import extract_workspace_triad_from_trace_provider - - trace_provider = Configuration.get_instance().get_trace_provider() - if trace_provider is None or extract_workspace_triad_from_trace_provider(trace_provider) is None: - return - try: - import jwt - from azure.identity import DefaultAzureCredential - - from promptflow.azure._utils.general import get_arm_token - - default_credential = DefaultAzureCredential() - - token = get_arm_token(credential=default_credential) - decoded_token = jwt.decode(token, options={"verify_signature": False}) - user_object_id, user_tenant_id = decoded_token["oid"], decoded_token["tid"] - CREATED_BY_FOR_LOCAL_TO_CLOUD_TRACE.update( - { - "object_id": user_object_id, - "tenant_id": user_tenant_id, - } - ) - except Exception as e: - current_app.logger.error(f"Failed to get created_by info, ignore it: {e}") - # Basic error handler @api.errorhandler(Exception) def handle_exception(e): @@ -167,8 +140,42 @@ def monitor_request(): kill_exist_service(port) break - initialize_created_by_info() if not sys.executable.endswith("pfcli.exe"): monitor_thread = ThreadWithContextVars(target=monitor_request, daemon=True) monitor_thread.start() return app, api + + +created_by_for_local_to_cloud_trace = {} +created_by_for_local_to_cloud_trace_lock = threading.Lock() + + +def get_created_by_info_with_cache(): + if len(created_by_for_local_to_cloud_trace) > 0: + return created_by_for_local_to_cloud_trace + with created_by_for_local_to_cloud_trace_lock: + if len(created_by_for_local_to_cloud_trace) > 0: + return created_by_for_local_to_cloud_trace + try: + # The total time of collecting info is about 3s. + import jwt + from azure.identity import DefaultAzureCredential + + from promptflow.azure._utils.general import get_arm_token + + default_credential = DefaultAzureCredential() + + token = get_arm_token(credential=default_credential) + decoded_token = jwt.decode(token, options={"verify_signature": False}) + created_by_for_local_to_cloud_trace.update( + { + "object_id": decoded_token["oid"], + "tenant_id": decoded_token["tid"], + # Use appid as fallback for service principal scenario. + "name": decoded_token.get("name", decoded_token.get("appid", "")), + } + ) + except Exception as e: + # This function is only target to be used in Flask app. + current_app.logger.error(f"Failed to get created_by info, ignore it: {e}") + return created_by_for_local_to_cloud_trace From b2cdec04c7a53c358769b35c6180496fda49a936 Mon Sep 17 00:00:00 2001 From: Peiwen Gao <111329184+PeiwenGaoMS@users.noreply.github.com> Date: Tue, 12 Mar 2024 15:07:24 +0800 Subject: [PATCH 022/204] [Internal][Executor] Extract some common constants to promptflow._constants (#2303) # Description Extract some constants used by both executor server and sdk/cli to `promptflow._constants`. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --- src/promptflow/promptflow/_constants.py | 8 +++++++ .../operations/_local_storage_operations.py | 22 ++++++++----------- src/promptflow/promptflow/_utils/utils.py | 7 ++++++ .../promptflow/batch/_batch_engine.py | 7 +++--- .../tests/executor/e2etests/test_activate.py | 3 ++- .../executor/e2etests/test_batch_engine.py | 3 ++- .../executor/e2etests/test_eager_flow.py | 3 ++- .../tests/executor/e2etests/test_image.py | 3 ++- .../tests/executor/e2etests/test_logs.py | 2 +- .../tests/executor/e2etests/test_telemetry.py | 3 ++- 10 files changed, 38 insertions(+), 23 deletions(-) diff --git a/src/promptflow/promptflow/_constants.py b/src/promptflow/promptflow/_constants.py index e7f9f993717..92810730d4d 100644 --- a/src/promptflow/promptflow/_constants.py +++ b/src/promptflow/promptflow/_constants.py @@ -164,3 +164,11 @@ class MessageFormatType: DEFAULT_OUTPUT_NAME = "output" + +OUTPUT_FILE_NAME = "output.jsonl" + + +class OutputsFolderName: + FLOW_OUTPUTS = "flow_outputs" + FLOW_ARTIFACTS = "flow_artifacts" + NODE_ARTIFACTS = "node_artifacts" diff --git a/src/promptflow/promptflow/_sdk/operations/_local_storage_operations.py b/src/promptflow/promptflow/_sdk/operations/_local_storage_operations.py index f5ea3e0204f..0fef27a51b3 100644 --- a/src/promptflow/promptflow/_sdk/operations/_local_storage_operations.py +++ b/src/promptflow/promptflow/_sdk/operations/_local_storage_operations.py @@ -14,6 +14,7 @@ from filelock import FileLock +from promptflow._constants import OUTPUT_FILE_NAME, OutputsFolderName from promptflow._sdk._constants import ( HOME_PROMPT_FLOW_DIR, LINE_NUMBER, @@ -45,6 +46,7 @@ load_multimedia_data_recursively, resolve_multimedia_data_recursively, ) +from promptflow._utils.utils import prepare_folder from promptflow._utils.yaml_utils import load_yaml from promptflow.batch._result import BatchResult from promptflow.contracts.multimedia import Image @@ -191,13 +193,13 @@ class LocalStorageOperations(AbstractBatchRunStorage): def __init__(self, run: Run, stream=False, run_mode=RunMode.Test): self._run = run - self.path = self._prepare_folder(self._run._output_path) + self.path = prepare_folder(self._run._output_path) self.logger = LoggerOperations( file_path=self.path / LocalStorageFilenames.LOG, stream=stream, run_mode=run_mode ) # snapshot - self._snapshot_folder_path = self._prepare_folder(self.path / LocalStorageFilenames.SNAPSHOT_FOLDER) + self._snapshot_folder_path = prepare_folder(self.path / LocalStorageFilenames.SNAPSHOT_FOLDER) self._dag_path = self._snapshot_folder_path / LocalStorageFilenames.DAG self._flow_tools_json_path = ( self._snapshot_folder_path / PROMPT_FLOW_DIR_NAME / LocalStorageFilenames.FLOW_TOOLS_JSON @@ -214,10 +216,10 @@ def __init__(self, run: Run, stream=False, run_mode=RunMode.Test): # for line run records, store per line # for normal node run records, store per node per line; # for reduce node run records, store centralized in 000000000.jsonl per node - self.outputs_folder = self._prepare_folder(self.path / "flow_outputs") - self._outputs_path = self.outputs_folder / "output.jsonl" # dumped by executor - self._node_infos_folder = self._prepare_folder(self.path / "node_artifacts") - self._run_infos_folder = self._prepare_folder(self.path / "flow_artifacts") + self.outputs_folder = prepare_folder(self.path / OutputsFolderName.FLOW_OUTPUTS) + self._outputs_path = self.outputs_folder / OUTPUT_FILE_NAME # dumped by executor + self._node_infos_folder = prepare_folder(self.path / OutputsFolderName.NODE_ARTIFACTS) + self._run_infos_folder = prepare_folder(self.path / OutputsFolderName.FLOW_ARTIFACTS) self._data_path = Path(run.data) if run.data is not None else None self._meta_path = self.path / LocalStorageFilenames.META @@ -379,7 +381,7 @@ def load_metrics(self, *, parse_const_as_str: bool = False) -> Dict[str, Union[i def persist_node_run(self, run_info: NodeRunInfo) -> None: """Persist node run record to local storage.""" - node_folder = self._prepare_folder(self._node_infos_folder / run_info.node) + node_folder = prepare_folder(self._node_infos_folder / run_info.node) self._persist_run_multimedia(run_info, node_folder) node_run_record = NodeRunRecord.from_run_info(run_info) # for reduce nodes, the line_number is None, store the info in the 000000000.jsonl @@ -482,12 +484,6 @@ def _serialize_multimedia(self, value, folder_path: Path, relative_path: Path = serialization_funcs = {Image: partial(Image.serialize, **{"encoder": pfbytes_file_reference_encoder})} return serialize(value, serialization_funcs=serialization_funcs) - @staticmethod - def _prepare_folder(path: Union[str, Path]) -> Path: - path = Path(path) - path.mkdir(parents=True, exist_ok=True) - return path - @staticmethod def _outputs_padding(df: "DataFrame", inputs_line_numbers: List[int]) -> "DataFrame": import pandas as pd diff --git a/src/promptflow/promptflow/_utils/utils.py b/src/promptflow/promptflow/_utils/utils.py index 2c184996669..295c03131bc 100644 --- a/src/promptflow/promptflow/_utils/utils.py +++ b/src/promptflow/promptflow/_utils/utils.py @@ -366,3 +366,10 @@ def copy_file_except(src_dir, dst_dir, exclude_file): src_file_path = os.path.join(root, file) dst_file_path = os.path.join(current_dst_dir, file) shutil.copy2(src_file_path, dst_file_path) + + +def prepare_folder(path: Union[str, Path]) -> Path: + """Create folder if not exists and return the folder path.""" + path = Path(path) + path.mkdir(parents=True, exist_ok=True) + return path diff --git a/src/promptflow/promptflow/batch/_batch_engine.py b/src/promptflow/promptflow/batch/_batch_engine.py index 47e88c9e28d..f154d4e16b4 100644 --- a/src/promptflow/promptflow/batch/_batch_engine.py +++ b/src/promptflow/promptflow/batch/_batch_engine.py @@ -9,7 +9,7 @@ from pathlib import Path from typing import Any, Dict, List, Mapping, Optional -from promptflow._constants import LANGUAGE_KEY, LINE_NUMBER_KEY, LINE_TIMEOUT_SEC, FlowLanguage +from promptflow._constants import LANGUAGE_KEY, LINE_NUMBER_KEY, LINE_TIMEOUT_SEC, OUTPUT_FILE_NAME, FlowLanguage from promptflow._core._errors import ResumeCopyError, UnexpectedError from promptflow._core.operation_context import OperationContext from promptflow._utils.async_utils import async_run_allowing_running_loop @@ -46,7 +46,6 @@ from promptflow.executor.flow_validator import FlowValidator from promptflow.storage import AbstractBatchRunStorage, AbstractRunStorage -OUTPUT_FILE_NAME = "output.jsonl" DEFAULT_CONCURRENCY = 10 @@ -239,13 +238,13 @@ def _copy_previous_run_result( return the list of previous line results for the usage of aggregation and summarization. """ # Load the previous flow run output from output.jsonl - previous_run_output = load_list_from_jsonl(resume_from_run_output_dir / "output.jsonl") + previous_run_output = load_list_from_jsonl(resume_from_run_output_dir / OUTPUT_FILE_NAME) previous_run_output_dict = { each_line_output[LINE_NUMBER_KEY]: each_line_output for each_line_output in previous_run_output } # Copy other files from resume_from_run_output_dir to output_dir in case there are images - copy_file_except(resume_from_run_output_dir, output_dir, "output.jsonl") + copy_file_except(resume_from_run_output_dir, output_dir, OUTPUT_FILE_NAME) try: previous_run_results = [] diff --git a/src/promptflow/tests/executor/e2etests/test_activate.py b/src/promptflow/tests/executor/e2etests/test_activate.py index aa7ab9c7a96..2791ecdfcaf 100644 --- a/src/promptflow/tests/executor/e2etests/test_activate.py +++ b/src/promptflow/tests/executor/e2etests/test_activate.py @@ -4,8 +4,9 @@ import pytest +from promptflow._constants import OUTPUT_FILE_NAME from promptflow._utils.logger_utils import LogContext -from promptflow.batch._batch_engine import OUTPUT_FILE_NAME, BatchEngine +from promptflow.batch._batch_engine import BatchEngine from promptflow.batch._result import BatchResult from promptflow.contracts._errors import FlowDefinitionError from promptflow.contracts.run_info import FlowRunInfo diff --git a/src/promptflow/tests/executor/e2etests/test_batch_engine.py b/src/promptflow/tests/executor/e2etests/test_batch_engine.py index e3f77e73c50..0617105f6b1 100644 --- a/src/promptflow/tests/executor/e2etests/test_batch_engine.py +++ b/src/promptflow/tests/executor/e2etests/test_batch_engine.py @@ -8,10 +8,11 @@ import pytest +from promptflow._constants import OUTPUT_FILE_NAME from promptflow._sdk.entities._run import Run from promptflow._sdk.operations._local_storage_operations import LocalStorageOperations from promptflow._utils.utils import dump_list_to_jsonl -from promptflow.batch._batch_engine import OUTPUT_FILE_NAME, BatchEngine +from promptflow.batch._batch_engine import BatchEngine from promptflow.batch._errors import EmptyInputsData from promptflow.batch._result import BatchResult from promptflow.contracts.run_info import Status diff --git a/src/promptflow/tests/executor/e2etests/test_eager_flow.py b/src/promptflow/tests/executor/e2etests/test_eager_flow.py index 39bfc1d4103..b412843af39 100644 --- a/src/promptflow/tests/executor/e2etests/test_eager_flow.py +++ b/src/promptflow/tests/executor/e2etests/test_eager_flow.py @@ -4,7 +4,8 @@ import pytest -from promptflow.batch._batch_engine import OUTPUT_FILE_NAME, BatchEngine +from promptflow._constants import OUTPUT_FILE_NAME +from promptflow.batch._batch_engine import BatchEngine from promptflow.batch._result import BatchResult, LineResult from promptflow.contracts.run_info import Status from promptflow.executor._script_executor import ScriptExecutor diff --git a/src/promptflow/tests/executor/e2etests/test_image.py b/src/promptflow/tests/executor/e2etests/test_image.py index 7370648982f..b29efaf0e69 100644 --- a/src/promptflow/tests/executor/e2etests/test_image.py +++ b/src/promptflow/tests/executor/e2etests/test_image.py @@ -4,8 +4,9 @@ import pytest +from promptflow._constants import OUTPUT_FILE_NAME from promptflow._utils.multimedia_utils import MIME_PATTERN, _create_image_from_file, _is_url, is_multimedia_dict -from promptflow.batch._batch_engine import OUTPUT_FILE_NAME, BatchEngine +from promptflow.batch._batch_engine import BatchEngine from promptflow.batch._result import BatchResult from promptflow.contracts.multimedia import Image from promptflow.contracts.run_info import FlowRunInfo, RunInfo, Status diff --git a/src/promptflow/tests/executor/e2etests/test_logs.py b/src/promptflow/tests/executor/e2etests/test_logs.py index 517ab0d93c7..89a0b6f47bc 100644 --- a/src/promptflow/tests/executor/e2etests/test_logs.py +++ b/src/promptflow/tests/executor/e2etests/test_logs.py @@ -3,6 +3,7 @@ import pytest +from promptflow._constants import OUTPUT_FILE_NAME from promptflow._utils.logger_utils import LogContext from promptflow.batch import BatchEngine from promptflow.batch._result import BatchResult @@ -21,7 +22,6 @@ TEST_LOGS_FLOW = ["print_input_flow"] SAMPLE_FLOW_WITH_TEN_INPUTS = "simple_flow_with_ten_inputs" -OUTPUT_FILE_NAME = "output.jsonl" def submit_batch_run( diff --git a/src/promptflow/tests/executor/e2etests/test_telemetry.py b/src/promptflow/tests/executor/e2etests/test_telemetry.py index a1f838c69e5..d2005398ec7 100644 --- a/src/promptflow/tests/executor/e2etests/test_telemetry.py +++ b/src/promptflow/tests/executor/e2etests/test_telemetry.py @@ -8,8 +8,9 @@ import pytest +from promptflow._constants import OUTPUT_FILE_NAME from promptflow._core.operation_context import OperationContext -from promptflow.batch._batch_engine import OUTPUT_FILE_NAME, BatchEngine +from promptflow.batch._batch_engine import BatchEngine from promptflow.batch._result import BatchResult from promptflow.contracts.run_mode import RunMode from promptflow.executor import FlowExecutor From 84f6d7fafbbd09ea8a60261df2b485fc82d9ffeb Mon Sep 17 00:00:00 2001 From: zhen Date: Tue, 12 Mar 2024 17:04:41 +0800 Subject: [PATCH 023/204] [Experiment] Change experiment cli "--file" to "--template" (#2311) # Description 1. Change experiment cli "--file" to "--template" 2. pf experiment start --template, create a new experiment Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .../promptflow/_cli/_pf/_experiment.py | 16 ++++++------- .../promptflow/_sdk/_load_functions.py | 7 +----- .../tests/sdk_cli_test/e2etests/test_cli.py | 24 ++++++++++--------- 3 files changed, 21 insertions(+), 26 deletions(-) diff --git a/src/promptflow/promptflow/_cli/_pf/_experiment.py b/src/promptflow/promptflow/_cli/_pf/_experiment.py index 38a72c2a534..22bc107b20e 100644 --- a/src/promptflow/promptflow/_cli/_pf/_experiment.py +++ b/src/promptflow/promptflow/_cli/_pf/_experiment.py @@ -131,13 +131,13 @@ def add_experiment_start(subparsers): # Start a named experiment: pf experiment start -n my_experiment --inputs data1=data1_val data2=data2_val # Run an experiment by yaml file: - pf experiment start --file path/to/my_experiment.exp.yaml --inputs data1=data1_val data2=data2_val + pf experiment start --template path/to/my_experiment.exp.yaml --inputs data1=data1_val data2=data2_val """ activate_action( name="start", description="Start an experiment.", epilog=epilog, - add_params=[add_param_name, add_param_file, add_param_input, add_param_stream] + base_params, + add_params=[add_param_name, add_param_template, add_param_input, add_param_stream] + base_params, subparsers=subparsers, help_message="Start an experiment.", action_param_name="sub_action", @@ -235,20 +235,18 @@ def start_experiment(args: argparse.Namespace): if args.name: logger.debug(f"Starting a named experiment {args.name}.") inputs = list_of_dict_to_dict(args.inputs) - if inputs: - logger.warning("The inputs of named experiment cannot be modified.") client = _get_pf_client() experiment = client._experiments.get(args.name) - result = client._experiments.start(experiment=experiment, stream=args.stream) - elif args.file: + result = client._experiments.start(experiment=experiment, inputs=inputs, stream=args.stream) + elif args.template: from promptflow._sdk._load_functions import _load_experiment - logger.debug(f"Starting an anonymous experiment {args.file}.") - experiment = _load_experiment(source=args.file) + logger.debug(f"Starting an anonymous experiment {args.template}.") + experiment = _load_experiment(source=args.template) inputs = list_of_dict_to_dict(args.inputs) result = _get_pf_client()._experiments.start(experiment=experiment, inputs=inputs, stream=args.stream) else: - raise UserErrorException("To start an experiment, one of [name, file] must be specified.") + raise UserErrorException("To start an experiment, one of [name, template] must be specified.") print(json.dumps(result._to_dict(), indent=4)) diff --git a/src/promptflow/promptflow/_sdk/_load_functions.py b/src/promptflow/promptflow/_sdk/_load_functions.py index 6df42545ef4..f4ebdc1a7ce 100644 --- a/src/promptflow/promptflow/_sdk/_load_functions.py +++ b/src/promptflow/promptflow/_sdk/_load_functions.py @@ -1,7 +1,6 @@ # --------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -import hashlib from os import PathLike from pathlib import Path from typing import IO, AnyStr, Optional, Union @@ -11,7 +10,6 @@ from .._utils.logger_utils import get_cli_sdk_logger from .._utils.yaml_utils import load_yaml from ._errors import MultipleExperimentTemplateError, NoExperimentTemplateError -from ._utils import _sanitize_python_variable_name from .entities import Run from .entities._connection import CustomConnection, _Connection from .entities._experiment import Experiment, ExperimentTemplate @@ -205,8 +203,5 @@ def _load_experiment( absolute_path = source.resolve().absolute().as_posix() if not source.exists(): raise NoExperimentTemplateError(f"Experiment file {absolute_path} not found.") - anonymous_exp_name = _sanitize_python_variable_name( - f"{source.stem}_{hashlib.sha1(absolute_path.encode('utf-8')).hexdigest()}" - ) - experiment = load_common(Experiment, source, params_override=[{"name": anonymous_exp_name}], **kwargs) + experiment = load_common(Experiment, source, **kwargs) return experiment diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_cli.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_cli.py index 8186a51b328..f3f5f9911f5 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_cli.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_cli.py @@ -1985,18 +1985,20 @@ def wait_for_experiment_terminated(experiment_name): @pytest.mark.skipif(condition=not is_live(), reason="Injection cannot passed to detach process.") @pytest.mark.usefixtures("setup_experiment_table") def test_experiment_start_anonymous_experiment(self, monkeypatch, local_client): - from promptflow._sdk._load_functions import _load_experiment - with mock.patch("promptflow._sdk._configuration.Configuration.is_internal_features_enabled") as mock_func: - mock_func.return_value = True - experiment_file = f"{EXPERIMENT_DIR}/basic-script-template/basic-script.exp.yaml" - run_pf_command("experiment", "start", "--file", experiment_file, "--stream") - experiment = _load_experiment(source=experiment_file) - exp = local_client._experiments.get(name=experiment.name) - assert len(exp.node_runs) == 4 - assert all(len(exp.node_runs[node_name]) > 0 for node_name in exp.node_runs) - metrics = local_client.runs.get_metrics(name=exp.node_runs["eval"][0]["name"]) - assert "accuracy" in metrics + from promptflow._sdk.entities._experiment import Experiment + + with mock.patch.object(Experiment, "_generate_name") as mock_generate_name: + experiment_name = str(uuid.uuid4()) + mock_generate_name.return_value = experiment_name + mock_func.return_value = True + experiment_file = f"{EXPERIMENT_DIR}/basic-script-template/basic-script.exp.yaml" + run_pf_command("experiment", "start", "--template", experiment_file, "--stream") + exp = local_client._experiments.get(name=experiment_name) + assert len(exp.node_runs) == 4 + assert all(len(exp.node_runs[node_name]) > 0 for node_name in exp.node_runs) + metrics = local_client.runs.get_metrics(name=exp.node_runs["eval"][0]["name"]) + assert "accuracy" in metrics @pytest.mark.usefixtures("setup_experiment_table", "recording_injection") def test_experiment_test(self, monkeypatch, capfd, local_client, tmpdir): From 0fc9c4e6332f42ffb7cd2a70b239a7f3128f8386 Mon Sep 17 00:00:00 2001 From: Xingzhi Zhang <37076709+elliotzh@users.noreply.github.com> Date: Tue, 12 Mar 2024 17:34:32 +0800 Subject: [PATCH 024/204] fix: reset user agent for each requests in local pfs (#2284) # Description This pull request primarily involves 2 changes: 1. specifying user agent for telemetry from local PFS without touching OperationContext, which behaves as a global context and will be shared among requests; 2. support using the same port file as msi by set up environment variable. User Agent Handling: * [`src/promptflow/promptflow/_core/operation_context.py`](diffhunk://#diff-9178fcc0ca6dea0124a2a13bb8e734a77ffbc4baadfe29d18a366452ff8f865aL156-R162): The `append_user_agent` method has been refactored to handle multiple user agents. It now splits the user agent string and appends new user agents if they are not already present. Client Request Processing: * Multiple files: The `get_client_from_request` method has been replaced with `get_client_based_on_pfs_request` across several files to improve client request processing. [[1]](diffhunk://#diff-684bb9c38065c7dd14f39bceb6ed87efa1ac3a1e70329eeb617cc484297e3134L12-R12) [[2]](diffhunk://#diff-684bb9c38065c7dd14f39bceb6ed87efa1ac3a1e70329eeb617cc484297e3134L84-R84) [[3]](diffhunk://#diff-0286484edb80bee8c05edc9c9625ac73b1504399198a518446f38406de78004fL17-R21) [[4]](diffhunk://#diff-0286484edb80bee8c05edc9c9625ac73b1504399198a518446f38406de78004fL55-R59) [[5]](diffhunk://#diff-0286484edb80bee8c05edc9c9625ac73b1504399198a518446f38406de78004fL91-R95) [[6]](diffhunk://#diff-0286484edb80bee8c05edc9c9625ac73b1504399198a518446f38406de78004fL110-R128) [[7]](diffhunk://#diff-0286484edb80bee8c05edc9c9625ac73b1504399198a518446f38406de78004fL133-R137) [[8]](diffhunk://#diff-0286484edb80bee8c05edc9c9625ac73b1504399198a518446f38406de78004fL144-R148) [[9]](diffhunk://#diff-0286484edb80bee8c05edc9c9625ac73b1504399198a518446f38406de78004fL156-R160) [[10]](diffhunk://#diff-0286484edb80bee8c05edc9c9625ac73b1504399198a518446f38406de78004fL178-R182) [[11]](diffhunk://#diff-0286484edb80bee8c05edc9c9625ac73b1504399198a518446f38406de78004fL189-R193) [[12]](diffhunk://#diff-0286484edb80bee8c05edc9c9625ac73b1504399198a518446f38406de78004fL204-R208) [[13]](diffhunk://#diff-0286484edb80bee8c05edc9c9625ac73b1504399198a518446f38406de78004fL218-R222) [[14]](diffhunk://#diff-0286484edb80bee8c05edc9c9625ac73b1504399198a518446f38406de78004fL227-R231) [[15]](diffhunk://#diff-591332c296439bb96d6a911a1d8ff539d742038b2af7fc20fb123ef74e1f4aa2L20-R20) [[16]](diffhunk://#diff-591332c296439bb96d6a911a1d8ff539d742038b2af7fc20fb123ef74e1f4aa2L111-R111) [[17]](diffhunk://#diff-8c6363e088ff6e019485525ed5392f33486bc537dc6389b19f19254d12c86a5dL27-R27) [[18]](diffhunk://#diff-8c6363e088ff6e019485525ed5392f33486bc537dc6389b19f19254d12c86a5dR234-R254) New Methods: * [`src/promptflow/promptflow/_sdk/_utils.py`](diffhunk://#diff-47208ac35b30920275fcd5e55d662647ef360129359bdc77fddd2a2157b6f47eR795-R801): A new method `pop_current_user_agent` has been introduced to handle changes in the user agent. Test Cases: * [`src/promptflow/tests/sdk_pfs_test/e2etests/test_connection_apis.py`](diffhunk://#diff-573a672b4ba71f30cd8cbc38f2b9c77640c9e276e31da5f725bb8482b793b358R35-R50): A new test case `test_list_connections_with_different_user_agent` has been added to verify the handling of different user agents. Other Changes: * [`src/promptflow/promptflow/_sdk/_service/entry.py`](diffhunk://#diff-9c01d3da61c43e2e419a02f16c2b60c345017a801b9b5e596971fb1806c44253L107-R107): The condition for using the SDK API to start pfs has been modified to also include the `args.debug` case. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- src/promptflow/promptflow/_constants.py | 2 + .../promptflow/_core/operation_context.py | 3 ++ src/promptflow/promptflow/_sdk/_pf_client.py | 51 ++++++++++++++++--- .../_sdk/_service/apis/connection.py | 8 +-- .../promptflow/_sdk/_service/app.py | 6 +-- .../promptflow/_sdk/_service/entry.py | 3 +- .../promptflow/_sdk/_service/utils/utils.py | 38 +++++++++++--- .../promptflow/_sdk/_telemetry/activity.py | 33 +++++++----- .../promptflow/_sdk/_telemetry/telemetry.py | 17 ++++++- src/promptflow/promptflow/_sdk/_utils.py | 36 ------------- .../_sdk/operations/_flow_operations.py | 4 +- .../e2etests/test_connection_apis.py | 16 ++++++ src/promptflow/tests/sdk_pfs_test/utils.py | 18 +++++-- 13 files changed, 153 insertions(+), 82 deletions(-) diff --git a/src/promptflow/promptflow/_constants.py b/src/promptflow/promptflow/_constants.py index 92810730d4d..525bfad85df 100644 --- a/src/promptflow/promptflow/_constants.py +++ b/src/promptflow/promptflow/_constants.py @@ -8,6 +8,7 @@ PROMPTFLOW_CONNECTIONS = "PROMPTFLOW_CONNECTIONS" PROMPTFLOW_SECRETS_FILE = "PROMPTFLOW_SECRETS_FILE" PF_NO_INTERACTIVE_LOGIN = "PF_NO_INTERACTIVE_LOGIN" +PF_RUN_AS_BUILT_BINARY = "PF_RUN_AS_BUILT_BINARY" PF_LOGGING_LEVEL = "PF_LOGGING_LEVEL" OPENAI_API_KEY = "openai-api-key" BING_API_KEY = "bing-api-key" @@ -17,6 +18,7 @@ ERROR_RESPONSE_COMPONENT_NAME = "promptflow" EXTENSION_UA = "prompt-flow-extension" LANGUAGE_KEY = "language" +USER_AGENT_OVERRIDE_KEY = "user_agent_override" # Tool meta info ICON_DARK = "icon_dark" diff --git a/src/promptflow/promptflow/_core/operation_context.py b/src/promptflow/promptflow/_core/operation_context.py index 9fc6804e99d..ddb5ef067c7 100644 --- a/src/promptflow/promptflow/_core/operation_context.py +++ b/src/promptflow/promptflow/_core/operation_context.py @@ -153,6 +153,9 @@ def append_user_agent(self, user_agent: str): user_agent (str): The user agent information to append. """ if OperationContext.USER_AGENT_KEY in self: + # TODO: this judgement can be wrong when an user agent is a substring of another, + # e.g. "Mozilla/5.0" and "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" + # however, changing this code may impact existing logic, so won't change it now if user_agent not in self.user_agent: self.user_agent = f"{self.user_agent.strip()} {user_agent.strip()}" else: diff --git a/src/promptflow/promptflow/_sdk/_pf_client.py b/src/promptflow/promptflow/_sdk/_pf_client.py index c6f99a0ef6e..0f1a8e3b7ad 100644 --- a/src/promptflow/promptflow/_sdk/_pf_client.py +++ b/src/promptflow/promptflow/_sdk/_pf_client.py @@ -6,12 +6,14 @@ from pathlib import Path from typing import Any, Dict, List, Union +from .._constants import USER_AGENT_OVERRIDE_KEY from .._utils.logger_utils import get_cli_sdk_logger +from ..exceptions import ErrorTarget, UserErrorException from ._configuration import Configuration -from ._constants import MAX_SHOW_DETAILS_RESULTS +from ._constants import MAX_SHOW_DETAILS_RESULTS, ConnectionProvider from ._load_functions import load_flow from ._user_agent import USER_AGENT -from ._utils import ClientUserAgentUtil, get_connection_operation, setup_user_agent_to_operation_context +from ._utils import ClientUserAgentUtil, setup_user_agent_to_operation_context from .entities import Run from .entities._eager_flow import EagerFlow from .operations import RunOperations @@ -34,20 +36,25 @@ class PFClient: def __init__(self, **kwargs): logger.debug("PFClient init with kwargs: %s", kwargs) - self._runs = RunOperations(self) + # when this is set, telemetry from this client will use this user agent and ignore the one from OperationContext + self._user_agent_override = kwargs.pop(USER_AGENT_OVERRIDE_KEY, None) self._connection_provider = kwargs.pop("connection_provider", None) self._config = kwargs.get("config", None) or {} # The credential is used as an option to override # DefaultAzureCredential when using workspace connection provider self._credential = kwargs.get("credential", None) + + # user_agent_override will be applied to all TelemetryMixin operations + self._runs = RunOperations(self, user_agent_override=self._user_agent_override) + self._flows = FlowOperations(client=self, user_agent_override=self._user_agent_override) + self._experiments = ExperimentOperations(self, user_agent_override=self._user_agent_override) # Lazy init to avoid azure credential requires too early self._connections = None - self._flows = FlowOperations(client=self) + self._tools = ToolOperations() # add user agent from kwargs if any if isinstance(kwargs.get("user_agent"), str): ClientUserAgentUtil.append_user_agent(kwargs["user_agent"]) - self._experiments = ExperimentOperations(self) self._traces = TraceOperations() setup_user_agent_to_operation_context(USER_AGENT) @@ -243,9 +250,41 @@ def connections(self) -> ConnectionOperations: """Connection operations that can manage connections.""" if not self._connections: self._ensure_connection_provider() - self._connections = get_connection_operation(self._connection_provider, self._credential) + self._connections = PFClient._build_connection_operation( + self._connection_provider, + self._credential, + user_agent_override=self._user_agent_override, + ) return self._connections + @staticmethod + def _build_connection_operation(connection_provider: str, credential=None, **kwargs): + """ + Build a ConnectionOperation object based on connection provider. + + :param connection_provider: Connection provider, e.g. local, azureml, azureml://subscriptions..., etc. + :type connection_provider: str + :param credential: Credential when remote provider, default to chained credential DefaultAzureCredential. + :type credential: object + """ + if connection_provider == ConnectionProvider.LOCAL.value: + from promptflow._sdk.operations._connection_operations import ConnectionOperations + + logger.debug("PFClient using local connection operations.") + connection_operation = ConnectionOperations(**kwargs) + elif connection_provider.startswith(ConnectionProvider.AZUREML.value): + from promptflow._sdk.operations._local_azure_connection_operations import LocalAzureConnectionOperations + + logger.debug(f"PFClient using local azure connection operations with credential {credential}.") + connection_operation = LocalAzureConnectionOperations(connection_provider, credential=credential, **kwargs) + else: + raise UserErrorException( + target=ErrorTarget.CONTROL_PLANE_SDK, + message_format="Unsupported connection provider: {connection_provider}", + connection_provider=connection_provider, + ) + return connection_operation + @property def flows(self) -> FlowOperations: """Operations on the flow that can manage flows.""" diff --git a/src/promptflow/promptflow/_sdk/_service/apis/connection.py b/src/promptflow/promptflow/_sdk/_service/apis/connection.py index 831930d9b67..1d670237523 100644 --- a/src/promptflow/promptflow/_sdk/_service/apis/connection.py +++ b/src/promptflow/promptflow/_sdk/_service/apis/connection.py @@ -10,7 +10,7 @@ import promptflow._sdk.schemas._connection as connection from promptflow._sdk._configuration import Configuration from promptflow._sdk._service import Namespace, Resource, fields -from promptflow._sdk._service.utils.utils import build_pfs_user_agent, local_user_only, make_response_no_content +from promptflow._sdk._service.utils.utils import get_client_from_request, local_user_only, make_response_no_content from promptflow._sdk.entities._connection import _Connection api = Namespace("Connections", description="Connections Management") @@ -66,14 +66,10 @@ def validate_working_directory(value): def _get_connection_operation(working_directory=None): - from promptflow._sdk._pf_client import PFClient - connection_provider = Configuration().get_connection_provider(path=working_directory) # get_connection_operation is a shared function, so we build user agent based on request first and # then pass it to the function - connection_operation = PFClient( - connection_provider=connection_provider, user_agent=build_pfs_user_agent() - ).connections + connection_operation = get_client_from_request(connection_provider=connection_provider).connections return connection_operation diff --git a/src/promptflow/promptflow/_sdk/_service/app.py b/src/promptflow/promptflow/_sdk/_service/app.py index d2555465b96..385543ec149 100644 --- a/src/promptflow/promptflow/_sdk/_service/app.py +++ b/src/promptflow/promptflow/_sdk/_service/app.py @@ -2,7 +2,6 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- import logging -import sys import threading import time from datetime import datetime, timedelta @@ -30,6 +29,7 @@ FormattedException, get_current_env_pfs_file, get_port_from_config, + is_run_from_built_binary, kill_exist_service, ) from promptflow._sdk._utils import get_promptflow_sdk_version, overwrite_null_std_logger, read_write_by_user @@ -74,7 +74,7 @@ def create_app(): # Enable log app.logger.setLevel(logging.INFO) # each env will have its own log file - if sys.executable.endswith("pfcli.exe"): + if is_run_from_built_binary(): log_file = HOME_PROMPT_FLOW_DIR / PF_SERVICE_LOG_FILE log_file.touch(mode=read_write_by_user(), exist_ok=True) else: @@ -140,7 +140,7 @@ def monitor_request(): kill_exist_service(port) break - if not sys.executable.endswith("pfcli.exe"): + if not is_run_from_built_binary(): monitor_thread = ThreadWithContextVars(target=monitor_request, daemon=True) monitor_thread.start() return app, api diff --git a/src/promptflow/promptflow/_sdk/_service/entry.py b/src/promptflow/promptflow/_sdk/_service/entry.py index 5514224e977..564480a634d 100644 --- a/src/promptflow/promptflow/_sdk/_service/entry.py +++ b/src/promptflow/promptflow/_sdk/_service/entry.py @@ -21,6 +21,7 @@ get_port_from_config, get_started_service_info, is_port_in_use, + is_run_from_built_binary, kill_exist_service, ) from promptflow._sdk._utils import get_promptflow_sdk_version, print_pf_version @@ -104,7 +105,7 @@ def validate_port(port, force_start): port = get_port_from_config(create_if_not_exists=True) validate_port(port, args.force) - if sys.executable.endswith("pfcli.exe"): + if is_run_from_built_binary(): # For msi installer, use sdk api to start pfs since it's not supported to invoke waitress by cli directly # after packaged by Pyinstaller. app, _ = create_app() diff --git a/src/promptflow/promptflow/_sdk/_service/utils/utils.py b/src/promptflow/promptflow/_sdk/_service/utils/utils.py index 1cdafa39912..5e8d0a25e24 100644 --- a/src/promptflow/promptflow/_sdk/_service/utils/utils.py +++ b/src/promptflow/promptflow/_sdk/_service/utils/utils.py @@ -17,6 +17,7 @@ import requests from flask import abort, make_response, request +from promptflow._constants import PF_RUN_AS_BUILT_BINARY from promptflow._sdk._constants import ( DEFAULT_ENCODING, HOME_PROMPT_FLOW_DIR, @@ -60,7 +61,7 @@ def get_current_env_pfs_file(file_name): def get_port_from_config(create_if_not_exists=False): - if sys.executable.endswith("pfcli.exe"): + if is_run_from_built_binary(): port_file_path = HOME_PROMPT_FLOW_DIR / PF_SERVICE_PORT_FILE port_file_path.touch(mode=read_write_by_user(), exist_ok=True) else: @@ -79,7 +80,7 @@ def get_port_from_config(create_if_not_exists=False): def dump_port_to_config(port): - if sys.executable.endswith("pfcli.exe"): + if is_run_from_built_binary(): port_file_path = HOME_PROMPT_FLOW_DIR / PF_SERVICE_PORT_FILE port_file_path.touch(mode=read_write_by_user(), exist_ok=True) else: @@ -231,13 +232,34 @@ def __post_init__(self, exception, status_code): def build_pfs_user_agent(): - extra_agent = f"local_pfs/{VERSION}" - if request.user_agent.string: - return f"{request.user_agent.string} {extra_agent}" - return extra_agent + user_agent = request.user_agent.string + user_agent_for_local_pfs = f"local_pfs/{VERSION}" + if user_agent: + return f"{user_agent} {user_agent_for_local_pfs}" + return user_agent_for_local_pfs -def get_client_from_request() -> "PFClient": +def get_client_from_request(*, connection_provider=None) -> "PFClient": + """ + Build a PFClient instance based on current request in local PFS. + + User agent may be different for each request. + """ from promptflow._sdk._pf_client import PFClient - return PFClient(user_agent=build_pfs_user_agent()) + user_agent = build_pfs_user_agent() + + if connection_provider: + pf_client = PFClient(connection_provider=connection_provider, user_agent_override=user_agent) + else: + pf_client = PFClient(user_agent_override=user_agent) + return pf_client + + +def is_run_from_built_binary(): + """ + Use this function to trigger behavior difference between calling from promptflow sdk/cli and built binary. + + Allow customer to use environment variable to control the triggering. + """ + return sys.executable.endswith("pfcli.exe") or os.environ.get(PF_RUN_AS_BUILT_BINARY, "").lower() == "true" diff --git a/src/promptflow/promptflow/_sdk/_telemetry/activity.py b/src/promptflow/promptflow/_sdk/_telemetry/activity.py index 0ffda098cbf..4693780c67e 100644 --- a/src/promptflow/promptflow/_sdk/_telemetry/activity.py +++ b/src/promptflow/promptflow/_sdk/_telemetry/activity.py @@ -105,6 +105,7 @@ def log_activity( activity_name, activity_type=ActivityType.INTERNALCALL, custom_dimensions=None, + user_agent=None, ): """Log an activity. @@ -121,12 +122,16 @@ def log_activity( :type activity_type: str :param custom_dimensions: The custom properties of the activity. :type custom_dimensions: dict + :param user_agent: Specify user agent. If not specified, the user agent will be got from OperationContext. + :type user_agent: str :return: None """ if not custom_dimensions: custom_dimensions = {} - user_agent = ClientUserAgentUtil.get_user_agent() + # provided user agent will be respected even if it's "" + if user_agent is None: + user_agent = ClientUserAgentUtil.get_user_agent() request_id = request_id_context.get() if not request_id: # public function call @@ -179,17 +184,6 @@ def log_activity( raise exception -def extract_telemetry_info(self): - """Extract pf telemetry info from given telemetry mix-in instance.""" - result = {} - try: - if isinstance(self, TelemetryMixin): - return self._get_telemetry_values() - except Exception: - pass - return result - - def update_activity_name(activity_name, kwargs=None, args=None): """Update activity name according to kwargs. For flow test, we want to know if it's node test.""" if activity_name == "pf.flows.test": @@ -233,10 +227,21 @@ def wrapper(self, *args, **kwargs): logger = get_telemetry_logger() - custom_dimensions.update(extract_telemetry_info(self)) + if isinstance(self, TelemetryMixin): + custom_dimensions.update(self._get_telemetry_values()) + user_agent = self._get_user_agent_override() + else: + user_agent = None + # update activity name according to kwargs. _activity_name = update_activity_name(activity_name, kwargs=kwargs) - with log_activity(logger, _activity_name, activity_type, custom_dimensions): + with log_activity( + logger=logger, + activity_name=_activity_name, + activity_type=activity_type, + custom_dimensions=custom_dimensions, + user_agent=user_agent, + ): if _activity_name in HINT_ACTIVITY_NAME: hint_for_update() # set check_latest_version as deamon thread to avoid blocking main thread diff --git a/src/promptflow/promptflow/_sdk/_telemetry/telemetry.py b/src/promptflow/promptflow/_sdk/_telemetry/telemetry.py index 5abd5a483b0..ce05ba30039 100644 --- a/src/promptflow/promptflow/_sdk/_telemetry/telemetry.py +++ b/src/promptflow/promptflow/_sdk/_telemetry/telemetry.py @@ -2,7 +2,9 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- import logging +from typing import Optional +from promptflow._constants import USER_AGENT_OVERRIDE_KEY from promptflow._sdk._configuration import Configuration PROMPTFLOW_LOGGER_NAMESPACE = "promptflow._sdk._telemetry" @@ -10,17 +12,28 @@ class TelemetryMixin(object): def __init__(self, **kwargs): + self._user_agent_override = kwargs.pop(USER_AGENT_OVERRIDE_KEY, None) + # Need to call init for potential parent, otherwise it won't be initialized. + # TODO: however, object.__init__() takes exactly one argument (the instance to initialize), so this will fail + # if there are any kwargs left. super().__init__(**kwargs) def _get_telemetry_values(self, *args, **kwargs): # pylint: disable=unused-argument - """Return the telemetry values of object. + """Return the telemetry values of object, will be set as custom_dimensions in telemetry. :return: The telemetry values :rtype: Dict """ return {} + def _get_user_agent_override(self) -> Optional[str]: + """If we have a bonded user agent passed in via the constructor, return it. + + Telemetries from this object will use this user agent and ignore the one from OperationContext. + """ + return self._user_agent_override + class WorkspaceTelemetryMixin(TelemetryMixin): def __init__(self, subscription_id, resource_group_name, workspace_name, **kwargs): @@ -31,7 +44,7 @@ def __init__(self, subscription_id, resource_group_name, workspace_name, **kwarg super().__init__(**kwargs) def _get_telemetry_values(self, *args, **kwargs): # pylint: disable=unused-argument - """Return the telemetry values of run operations. + """Return the telemetry values of object, will be set as custom_dimensions in telemetry. :return: The telemetry values :rtype: Dict diff --git a/src/promptflow/promptflow/_sdk/_utils.py b/src/promptflow/promptflow/_sdk/_utils.py index f1b6f6f6a5c..e8ef21030bc 100644 --- a/src/promptflow/promptflow/_sdk/_utils.py +++ b/src/promptflow/promptflow/_sdk/_utils.py @@ -56,7 +56,6 @@ VARIANTS, AzureMLWorkspaceTriad, CommonYamlFields, - ConnectionProvider, ) from promptflow._sdk._errors import ( DecryptConnectionError, @@ -1045,41 +1044,6 @@ def parse_remote_flow_pattern(flow: object) -> str: return flow_name -def get_connection_operation(connection_provider: str, credential=None, user_agent: str = None): - """ - Get connection operation based on connection provider. - This function will be called by PFClient, so please do not refer to PFClient in this function. - - :param connection_provider: Connection provider, e.g. local, azureml, azureml://subscriptions..., etc. - :type connection_provider: str - :param credential: Credential when remote provider, default to chained credential DefaultAzureCredential. - :type credential: object - :param user_agent: User Agent - :type user_agent: str - """ - if connection_provider == ConnectionProvider.LOCAL.value: - from promptflow._sdk.operations._connection_operations import ConnectionOperations - - logger.debug("PFClient using local connection operations.") - connection_operation = ConnectionOperations() - elif connection_provider.startswith(ConnectionProvider.AZUREML.value): - from promptflow._sdk.operations._local_azure_connection_operations import LocalAzureConnectionOperations - - logger.debug(f"PFClient using local azure connection operations with credential {credential}.") - if user_agent is None: - connection_operation = LocalAzureConnectionOperations(connection_provider, credential=credential) - else: - connection_operation = LocalAzureConnectionOperations(connection_provider, user_agent=user_agent) - else: - error = ValueError(f"Unsupported connection provider: {connection_provider}") - raise UserErrorException( - target=ErrorTarget.CONTROL_PLANE_SDK, - message=str(error), - error=error, - ) - return connection_operation - - # extract open read/write as partial to centralize the encoding read_open = partial(open, mode="r", encoding=DEFAULT_ENCODING) write_open = partial(open, mode="w", encoding=DEFAULT_ENCODING) diff --git a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py index 64a850192de..d816cf945af 100644 --- a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py +++ b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py @@ -48,9 +48,9 @@ class FlowOperations(TelemetryMixin): """FlowOperations.""" - def __init__(self, client): + def __init__(self, client, **kwargs): + super().__init__(**kwargs) self._client = client - super().__init__() @monitor_operation(activity_name="pf.flows.test", activity_type=ActivityType.PUBLICAPI) def test( diff --git a/src/promptflow/tests/sdk_pfs_test/e2etests/test_connection_apis.py b/src/promptflow/tests/sdk_pfs_test/e2etests/test_connection_apis.py index ee05581e848..2ac3a1a2993 100644 --- a/src/promptflow/tests/sdk_pfs_test/e2etests/test_connection_apis.py +++ b/src/promptflow/tests/sdk_pfs_test/e2etests/test_connection_apis.py @@ -32,6 +32,22 @@ def test_list_connections(self, pf_client: PFClient, pfs_op: PFSOperations) -> N assert len(connections) >= 1 + def test_list_connections_with_different_user_agent(self, pf_client: PFClient, pfs_op: PFSOperations) -> None: + create_custom_connection(pf_client) + base_user_agent = ["local_pfs/0.0.1"] + for _, extra_user_agent in enumerate( + [ + ["another_test_user_agent/0.0.1"], + ["test_user_agent/0.0.1"], + ["another_test_user_agent/0.0.1"], + ["test_user_agent/0.0.1"], + ] + ): + with check_activity_end_telemetry( + activity_name="pf.connections.list", user_agent=base_user_agent + extra_user_agent + ): + pfs_op.list_connections(user_agent=extra_user_agent) + def test_get_connection(self, pf_client: PFClient, pfs_op: PFSOperations) -> None: name = create_custom_connection(pf_client) with check_activity_end_telemetry(activity_name="pf.connections.get"): diff --git a/src/promptflow/tests/sdk_pfs_test/utils.py b/src/promptflow/tests/sdk_pfs_test/utils.py index 3d1c4c65fff..7ebfb202216 100644 --- a/src/promptflow/tests/sdk_pfs_test/utils.py +++ b/src/promptflow/tests/sdk_pfs_test/utils.py @@ -31,7 +31,7 @@ def check_activity_end_telemetry( "first_call": True, "activity_type": "PublicApi", "completion_status": "Success", - "user_agent": f"promptflow-sdk/0.0.1 Werkzeug/{werkzeug.__version__} local_pfs/0.0.1", + "user_agent": [f"Werkzeug/{werkzeug.__version__}", "local_pfs/0.0.1"], } for i, expected_activity in enumerate(expected_activities): temp = default_expected_call.copy() @@ -39,6 +39,9 @@ def check_activity_end_telemetry( expected_activity = temp for key, expected_value in expected_activity.items(): value = actual_activities[i][key] + if isinstance(expected_value, list): + value = list(sorted(value.split(" "))) + expected_value = list(sorted(expected_value)) assert ( value == expected_value ), f"{key} mismatch in {i+1}th call: expect {expected_value} but got {value}" @@ -54,7 +57,12 @@ class PFSOperations: def __init__(self, client: FlaskClient): self._client = client - def remote_user_header(self): + def remote_user_header(self, user_agent=None): + if user_agent: + return { + "X-Remote-User": getpass.getuser(), + "User-Agent": user_agent, + } return {"X-Remote-User": getpass.getuser()} def heartbeat(self): @@ -67,8 +75,10 @@ def connection_operation_with_invalid_user(self, status_code=None): assert status_code == response.status_code, response.text return response - def list_connections(self, status_code=None): - response = self._client.get(f"{self.CONNECTION_URL_PREFIX}/", headers=self.remote_user_header()) + def list_connections(self, status_code=None, user_agent=None): + response = self._client.get( + f"{self.CONNECTION_URL_PREFIX}/", headers=self.remote_user_header(user_agent=user_agent) + ) if status_code: assert status_code == response.status_code, response.text return response From 39039cd520c8fa91f754560f9b91ab454d82c645 Mon Sep 17 00:00:00 2001 From: chjinche <49483542+chjinche@users.noreply.github.com> Date: Tue, 12 Mar 2024 17:53:30 +0800 Subject: [PATCH 025/204] [BugFix] set default values to workspace triad params of dynamic list tool func to avoid misleading errors (#2310) # Description Issue: #2238 ![image](https://github.com/microsoft/promptflow/assets/49483542/4dca1102-dc41-4115-bb9d-b5ab49df6e73) Fix: - if no workspace triad available, return empty list. - set default values to workspace triad params of dynamic list tool func. After fix: ![image](https://github.com/microsoft/promptflow/assets/49483542/1407ef1a-ec43-48d6-b132-0c0a4f0ada2d) # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [x] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .../create-dynamic-list-tool-input.md | 18 ++++++++++++++++- .../tools/tool_with_dynamic_list_input.py | 9 ++++++++- .../promptflow/tools/open_model_llm.py | 20 +++++++++++++------ 3 files changed, 39 insertions(+), 8 deletions(-) diff --git a/docs/how-to-guides/develop-a-tool/create-dynamic-list-tool-input.md b/docs/how-to-guides/develop-a-tool/create-dynamic-list-tool-input.md index 475236ff813..7cb8850aa05 100644 --- a/docs/how-to-guides/develop-a-tool/create-dynamic-list-tool-input.md +++ b/docs/how-to-guides/develop-a-tool/create-dynamic-list-tool-input.md @@ -125,7 +125,10 @@ pip install my-tools-package>=0.0.8 ### I'm a tool author, and want to dynamically list Azure resources in my tool input. What should I pay attention to? 1. Clarify azure workspace triple "subscription_id", "resource_group_name", "workspace_name" in the list function signature. System helps append workspace triple to function input parameters if they are in function signature. See [list_endpoint_names](https://github.com/microsoft/promptflow/blob/main/examples/tools/tool-package-quickstart/my_tool_package/tools/tool_with_dynamic_list_input.py) as an example. ```python -def list_endpoint_names(subscription_id, resource_group_name, workspace_name, prefix: str = "") -> List[Dict[str, str]]: +def list_endpoint_names(subscription_id: str = None, + resource_group_name: str = None, + workspace_name: str = None, + prefix: str = "") -> List[Dict[str, str]]: """This is an example to show how to get Azure ML resource in tool input list function. :param subscription_id: Azure subscription id. @@ -133,6 +136,10 @@ def list_endpoint_names(subscription_id, resource_group_name, workspace_name, pr :param workspace_name: Azure ML workspace name. :param prefix: prefix to add to each item. """ + # return an empty list if workspace triad is not available. + if not subscription_id or not resource_group_name or not workspace_name: + return [] + from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential @@ -185,4 +192,13 @@ If you are unable to see any options in a dynamic list tool input, you may see a If this occurs, follow these troubleshooting steps: - Note the exact error message shown. This provides details on why the dynamic list failed to populate. +- Check the tool documentation for any prerequisites or special instructions. For example, if the dynamic list function requires Azure credentials, ensure you have installed azure dependencies, logged in and set the default workspace. + ```sh + pip install azure-ai-ml + ``` + ```sh + az login + az account set --subscription + az configure --defaults group= workspace= + ``` - Contact the tool author/support team and report the issue. Provide the error message so they can investigate the root cause. diff --git a/examples/tools/tool-package-quickstart/my_tool_package/tools/tool_with_dynamic_list_input.py b/examples/tools/tool-package-quickstart/my_tool_package/tools/tool_with_dynamic_list_input.py index e5950b452d1..87b391f67b8 100644 --- a/examples/tools/tool-package-quickstart/my_tool_package/tools/tool_with_dynamic_list_input.py +++ b/examples/tools/tool-package-quickstart/my_tool_package/tools/tool_with_dynamic_list_input.py @@ -31,7 +31,10 @@ def my_list_func(prefix: str = "", size: int = 10, **kwargs) -> List[Dict[str, U return result -def list_endpoint_names(subscription_id, resource_group_name, workspace_name, prefix: str = "") -> List[Dict[str, str]]: +def list_endpoint_names(subscription_id: str = None, + resource_group_name: str = None, + workspace_name: str = None, + prefix: str = "") -> List[Dict[str, str]]: """This is an example to show how to get Azure ML resource in tool input list function. :param subscription_id: Azure subscription id. @@ -39,6 +42,10 @@ def list_endpoint_names(subscription_id, resource_group_name, workspace_name, pr :param workspace_name: Azure ML workspace name. :param prefix: prefix to add to each item. """ + # return an empty list if workspace triad is not available. + if not subscription_id or not resource_group_name or not workspace_name: + return [] + from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential diff --git a/src/promptflow-tools/promptflow/tools/open_model_llm.py b/src/promptflow-tools/promptflow/tools/open_model_llm.py index 74b1b2088f0..e2c1edf585f 100644 --- a/src/promptflow-tools/promptflow/tools/open_model_llm.py +++ b/src/promptflow-tools/promptflow/tools/open_model_llm.py @@ -521,11 +521,15 @@ def parse_endpoint_connection_type(endpoint_connection_name: str) -> Tuple[str, return (endpoint_connection_details[0].lower(), endpoint_connection_details[1]) -def list_endpoint_names(subscription_id: str, - resource_group_name: str, - workspace_name: str, +def list_endpoint_names(subscription_id: str = None, + resource_group_name: str = None, + workspace_name: str = None, return_endpoint_url: bool = False, force_refresh: bool = False) -> List[Dict[str, Union[str, int, float, list, Dict]]]: + # return an empty list if workspace triad is not available. + if not subscription_id or not resource_group_name or not workspace_name: + return [] + cache_file_path = None try: with tempfile.NamedTemporaryFile(delete=False) as temp_file: @@ -598,10 +602,14 @@ def list_endpoint_names(subscription_id: str, return list_of_endpoints -def list_deployment_names(subscription_id: str, - resource_group_name: str, - workspace_name: str, +def list_deployment_names(subscription_id: str = None, + resource_group_name: str = None, + workspace_name: str = None, endpoint: str = None) -> List[Dict[str, Union[str, int, float, list, Dict]]]: + # return an empty list if workspace triad is not available. + if not subscription_id or not resource_group_name or not workspace_name: + return [] + deployment_default_list = [{ "value": DEPLOYMENT_DEFAULT, "display_value": DEPLOYMENT_DEFAULT, From 8c616d33e6970c722eeea0329a79cbb01044ff99 Mon Sep 17 00:00:00 2001 From: Peiwen Gao <111329184+PeiwenGaoMS@users.noreply.github.com> Date: Tue, 12 Mar 2024 18:36:00 +0800 Subject: [PATCH 026/204] [Internal][Executor] Use _kwargs to pass all common kwargs to SpawnedForkProcessManager instead of specifying them explicitly (#2312) --- .../promptflow/executor/_process_manager.py | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/promptflow/promptflow/executor/_process_manager.py b/src/promptflow/promptflow/executor/_process_manager.py index bd781d795ef..8a65c1b02c1 100644 --- a/src/promptflow/promptflow/executor/_process_manager.py +++ b/src/promptflow/promptflow/executor/_process_manager.py @@ -262,6 +262,8 @@ def __init__(self, control_signal_queue: Queue, flow_create_kwargs, *args, **kwa super().__init__(*args, **kwargs) self._control_signal_queue = control_signal_queue self._flow_create_kwargs = flow_create_kwargs + # Use _kwargs to temporarily store all common kwargs and pass them to SpawnedForkProcessManager + self._kwargs = kwargs def start_processes(self): """ @@ -273,13 +275,10 @@ def start_processes(self): args=( self._log_context_initialization_func, self._current_operation_context, - self._input_queues, - self._output_queues, self._control_signal_queue, self._flow_create_kwargs, - self._process_info, - self._process_target_func, ), + kwargs=self._kwargs, ) process.start() self._spawned_fork_process_manager_pid = process.pid @@ -408,12 +407,9 @@ def handle_signals(self, control_signal, i): def create_spawned_fork_process_manager( log_context_initialization_func, current_operation_context, - input_queues, - output_queues, control_signal_queue, flow_create_kwargs, - process_info, - process_target_func, + **kwargs, ): """ Manages the creation, termination, and signaling of processes using the 'fork' context. @@ -436,14 +432,11 @@ def create_spawned_fork_process_manager( current_operation_context, control_signal_queue, executor_creation_func, - input_queues, - output_queues, - process_info, - process_target_func, + **kwargs, ) # Initialize processes. - for i in range(len(input_queues)): + for i in range(len(manager._input_queues)): manager.new_process(i) # Main loop to handle control signals and manage process lifecycle. @@ -451,7 +444,7 @@ def create_spawned_fork_process_manager( all_processes_stopped = True try: - process_info_list = process_info.items() + process_info_list = manager._process_info.items() except Exception as e: bulk_logger.warning(f"Unexpected error occurred while get process info list. Exception: {e}") break From 89c3f13e114cccfba4d007325f10aeaba961893f Mon Sep 17 00:00:00 2001 From: Robben Wang <350053002@qq.com> Date: Tue, 12 Mar 2024 19:22:29 +0800 Subject: [PATCH 027/204] Add null check for StringIO in case of line execution timeout. (#2318) # Description This pull request includes a change to the `write` method in the `log_manager.py` file. The change adds a check for `None` to avoid errors when the line execution timeout is reached and all running nodes are cancelled. This is necessary because for synchronous tools running in a worker thread, they can't be stopped and the context won't change in the worker thread as it's a thread-local variable. # All Promptflow Contribution checklist: - [X] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [X] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [X] Title of the pull request is clear and informative. - [X] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. Co-authored-by: robbenwang --- src/promptflow/promptflow/_core/log_manager.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/promptflow/promptflow/_core/log_manager.py b/src/promptflow/promptflow/_core/log_manager.py index ca3b6fc019a..229b74c14a3 100644 --- a/src/promptflow/promptflow/_core/log_manager.py +++ b/src/promptflow/promptflow/_core/log_manager.py @@ -119,6 +119,12 @@ def write(self, s: str): else: self._write_to_flow_log(log_info, s) stdout: StringIO = self.run_id_to_stdout.get(log_info.run_id) + # When the line execution timeout is reached, all running nodes will be cancelled and node info will + # be cleared. This will remove StringIO from self.run_id_to_stdout. For sync tools running in a worker + # thread, they can't be stopped and self._context won't change in the worker + # thread because it's a thread-local variable. Therefore, we need to check if StringIO is None here. + if stdout is None: + return if self._record_datetime and s != "\n": # For line breaker, do not add datetime prefix. s = f"[{datetime.now(timezone.utc).strftime(self.DATETIME_FORMAT)}] {s}" stdout.write(s) From 57486d0cad2db9f0f4c333ce1da6230efd99f2c3 Mon Sep 17 00:00:00 2001 From: Heyi Tang Date: Tue, 12 Mar 2024 19:25:15 +0800 Subject: [PATCH 028/204] [Bugfix] Do not add otlp exporter if the env is not set to avoid the default http endpoint. (#2309) # Description Do not add otlp exporter when the environment is not set. Currently we will initialize an exporter with `endpoint=None`, then we will call a default http endpoint. However we need to avoid this. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. Co-authored-by: Heyi --- src/promptflow/promptflow/_sdk/_tracing.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/promptflow/promptflow/_sdk/_tracing.py b/src/promptflow/promptflow/_sdk/_tracing.py index b94fed763de..186d5ebcf65 100644 --- a/src/promptflow/promptflow/_sdk/_tracing.py +++ b/src/promptflow/promptflow/_sdk/_tracing.py @@ -216,8 +216,10 @@ def setup_exporter_to_pfs() -> None: tracer_provider = TracerProvider(resource=res) # get OTLP endpoint from environment endpoint = os.getenv(OTEL_EXPORTER_OTLP_ENDPOINT) - otlp_span_exporter = OTLPSpanExporter(endpoint=endpoint) - tracer_provider.add_span_processor(BatchSpanProcessor(otlp_span_exporter)) + if endpoint is not None: + # create OTLP span exporter if endpoint is set + otlp_span_exporter = OTLPSpanExporter(endpoint=endpoint) + tracer_provider.add_span_processor(BatchSpanProcessor(otlp_span_exporter)) # set tracer provider if _is_tracer_provider_set(): _force_set_tracer_provider(tracer_provider) From 84eabc5a94c0af0aac4ee91db2ca975d5816331b Mon Sep 17 00:00:00 2001 From: Brynn Yin <24237253+brynn-code@users.noreply.github.com> Date: Tue, 12 Mar 2024 19:28:00 +0800 Subject: [PATCH 029/204] [Internal][SDK] Separate core connection (#2315) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Signed-off-by: Brynn Yin --- scripts/docs/doc_generation.ps1 | 16 +- scripts/docs/promptflow.client.rst | 14 + scripts/docs/promptflow.core.rst | 20 + src/promptflow/promptflow/__init__.py | 1 + src/promptflow/promptflow/_constants.py | 43 +- src/promptflow/promptflow/_sdk/_constants.py | 55 +- src/promptflow/promptflow/_sdk/_errors.py | 7 - src/promptflow/promptflow/_sdk/_utils.py | 23 - .../promptflow/_sdk/entities/_connection.py | 663 ++-------------- .../promptflow/_sdk/schemas/_connection.py | 9 +- src/promptflow/promptflow/_utils/utils.py | 23 + .../operations/_arm_connection_operations.py | 2 +- .../azure/operations/_run_operations.py | 3 +- src/promptflow/promptflow/client/__init__.py | 11 + src/promptflow/promptflow/core/__init__.py | 15 + src/promptflow/promptflow/core/_connection.py | 709 ++++++++++++++++++ .../sdk_cli_test/unittests/test_connection.py | 3 +- .../sdk_cli_test/unittests/test_utils.py | 8 +- 18 files changed, 920 insertions(+), 705 deletions(-) create mode 100644 scripts/docs/promptflow.client.rst create mode 100644 scripts/docs/promptflow.core.rst create mode 100644 src/promptflow/promptflow/client/__init__.py create mode 100644 src/promptflow/promptflow/core/__init__.py create mode 100644 src/promptflow/promptflow/core/_connection.py diff --git a/scripts/docs/doc_generation.ps1 b/scripts/docs/doc_generation.ps1 index bf6eaa491d6..b2a419abb20 100644 --- a/scripts/docs/doc_generation.ps1 +++ b/scripts/docs/doc_generation.ps1 @@ -62,6 +62,16 @@ Write-Host "Copy doc to: $TempDocPath" ROBOCOPY $DocPath $TempDocPath /S /NFL /NDL /XD "*.git" [System.IO.Path]::Combine($DocPath, "_scripts\_build") ProcessFiles +function ForceOverwrite { + param ( + [string] $Module + ) + $FileName = "promptflow.{0}.rst" -f $Module + $TargetRst = [System.IO.Path]::Combine($RepoRootPath, ("scripts\docs\{0}" -f $FileName)) + $AutoGenConnectionRst = [System.IO.Path]::Combine($RefDocPath, $FileName) + Copy-Item -Path $TargetRst -Destination $AutoGenConnectionRst -Force +} + if($WithReferenceDoc){ $RefDocRelativePath = "reference\python-library-reference" $RefDocPath = [System.IO.Path]::Combine($TempDocPath, $RefDocRelativePath) @@ -76,9 +86,9 @@ if($WithReferenceDoc){ Write-Host "=============== Overwrite promptflow.connections.rst ===============" # We are doing this overwrite because the connection entities are also defined in the promptflow.entities module # and it will raise duplicate object description error if we don't do so when we run sphinx-build later. - $ConnectionRst = [System.IO.Path]::Combine($RepoRootPath, "scripts\docs\promptflow.connections.rst") - $AutoGenConnectionRst = [System.IO.Path]::Combine($RefDocPath, "promptflow.connections.rst") - Copy-Item -Path $ConnectionRst -Destination $AutoGenConnectionRst -Force + ForceOverwrite "connections" + ForceOverwrite "core" + ForceOverwrite "client" } diff --git a/scripts/docs/promptflow.client.rst b/scripts/docs/promptflow.client.rst new file mode 100644 index 00000000000..6c5da13f670 --- /dev/null +++ b/scripts/docs/promptflow.client.rst @@ -0,0 +1,14 @@ +promptflow.client package +============================== + +.. autoclass:: promptflow.client.PFClient + :members: + :undoc-members: + :show-inheritance: + :noindex: + +.. autoclass:: promptflow.client.load_run + :members: + :undoc-members: + :show-inheritance: + :noindex: diff --git a/scripts/docs/promptflow.core.rst b/scripts/docs/promptflow.core.rst new file mode 100644 index 00000000000..9d8068f4218 --- /dev/null +++ b/scripts/docs/promptflow.core.rst @@ -0,0 +1,20 @@ +promptflow.core package +============================== + +.. autoclass:: promptflow.core.log_metric + :members: + :undoc-members: + :show-inheritance: + :noindex: + +.. autoclass:: promptflow.core.ToolProvider + :members: + :undoc-members: + :show-inheritance: + :noindex: + +.. autoclass:: promptflow.core.tool + :members: + :undoc-members: + :show-inheritance: + :noindex: diff --git a/src/promptflow/promptflow/__init__.py b/src/promptflow/promptflow/__init__.py index 38344b20407..164b792a78a 100644 --- a/src/promptflow/promptflow/__init__.py +++ b/src/promptflow/promptflow/__init__.py @@ -3,6 +3,7 @@ # --------------------------------------------------------- __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore + from promptflow._core.metric_logger import log_metric # flake8: noqa diff --git a/src/promptflow/promptflow/_constants.py b/src/promptflow/promptflow/_constants.py index 525bfad85df..086a18c530f 100644 --- a/src/promptflow/promptflow/_constants.py +++ b/src/promptflow/promptflow/_constants.py @@ -1,10 +1,12 @@ # --------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- +from enum import Enum from pathlib import Path CONNECTION_NAME_PROPERTY = "__connection_name" CONNECTION_SECRET_KEYS = "__secret_keys" +CONNECTION_SCRUBBED_VALUE = "******" PROMPTFLOW_CONNECTIONS = "PROMPTFLOW_CONNECTIONS" PROMPTFLOW_SECRETS_FILE = "PROMPTFLOW_SECRETS_FILE" PF_NO_INTERACTIVE_LOGIN = "PF_NO_INTERACTIVE_LOGIN" @@ -166,7 +168,6 @@ class MessageFormatType: DEFAULT_OUTPUT_NAME = "output" - OUTPUT_FILE_NAME = "output.jsonl" @@ -174,3 +175,43 @@ class OutputsFolderName: FLOW_OUTPUTS = "flow_outputs" FLOW_ARTIFACTS = "flow_artifacts" NODE_ARTIFACTS = "node_artifacts" + + +class ConnectionType(str, Enum): + _NOT_SET = "NotSet" + AZURE_OPEN_AI = "AzureOpenAI" + OPEN_AI = "OpenAI" + QDRANT = "Qdrant" + COGNITIVE_SEARCH = "CognitiveSearch" + SERP = "Serp" + AZURE_CONTENT_SAFETY = "AzureContentSafety" + FORM_RECOGNIZER = "FormRecognizer" + WEAVIATE = "Weaviate" + SERVERLESS = "Serverless" + CUSTOM = "Custom" + + +class ConnectionAuthMode: + KEY = "key" + MEID_TOKEN = "meid_token" # Microsoft Entra ID + + +class CustomStrongTypeConnectionConfigs: + PREFIX = "promptflow.connection." + TYPE = "custom_type" + MODULE = "module" + PACKAGE = "package" + PACKAGE_VERSION = "package_version" + PROMPTFLOW_TYPE_KEY = PREFIX + TYPE + PROMPTFLOW_MODULE_KEY = PREFIX + MODULE + PROMPTFLOW_PACKAGE_KEY = PREFIX + PACKAGE + PROMPTFLOW_PACKAGE_VERSION_KEY = PREFIX + PACKAGE_VERSION + + @staticmethod + def is_custom_key(key): + return key not in [ + CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY, + CustomStrongTypeConnectionConfigs.PROMPTFLOW_MODULE_KEY, + CustomStrongTypeConnectionConfigs.PROMPTFLOW_PACKAGE_KEY, + CustomStrongTypeConnectionConfigs.PROMPTFLOW_PACKAGE_VERSION_KEY, + ] diff --git a/src/promptflow/promptflow/_sdk/_constants.py b/src/promptflow/promptflow/_sdk/_constants.py index 3033b1c9d6b..9fd6270d2f1 100644 --- a/src/promptflow/promptflow/_sdk/_constants.py +++ b/src/promptflow/promptflow/_sdk/_constants.py @@ -7,6 +7,13 @@ from enum import Enum from pathlib import Path +from promptflow._constants import ( + CONNECTION_SCRUBBED_VALUE, + ConnectionAuthMode, + ConnectionType, + CustomStrongTypeConnectionConfigs, +) + LOGGER_NAME = "promptflow" PROMPT_FLOW_HOME_DIR_ENV_VAR = "PF_HOME_DIRECTORY" @@ -104,7 +111,7 @@ def _prepare_home_dir() -> Path: KEYRING_ENCRYPTION_LOCK_PATH = (HOME_PROMPT_FLOW_DIR / "encryption_key.lock").resolve() REFRESH_CONNECTIONS_DIR_LOCK_PATH = (HOME_PROMPT_FLOW_DIR / "refresh_connections_dir.lock").resolve() # Note: Use this only for show. Reading input should regard all '*' string as scrubbed, no matter the length. -SCRUBBED_VALUE = "******" +SCRUBBED_VALUE = CONNECTION_SCRUBBED_VALUE SCRUBBED_VALUE_NO_CHANGE = "" SCRUBBED_VALUE_USER_INPUT = "" CHAT_HISTORY = "chat_history" @@ -145,27 +152,6 @@ def _prepare_home_dir() -> Path: AzureMLWorkspaceTriad = namedtuple("AzureMLWorkspace", ["subscription_id", "resource_group_name", "workspace_name"]) -class CustomStrongTypeConnectionConfigs: - PREFIX = "promptflow.connection." - TYPE = "custom_type" - MODULE = "module" - PACKAGE = "package" - PACKAGE_VERSION = "package_version" - PROMPTFLOW_TYPE_KEY = PREFIX + TYPE - PROMPTFLOW_MODULE_KEY = PREFIX + MODULE - PROMPTFLOW_PACKAGE_KEY = PREFIX + PACKAGE - PROMPTFLOW_PACKAGE_VERSION_KEY = PREFIX + PACKAGE_VERSION - - @staticmethod - def is_custom_key(key): - return key not in [ - CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY, - CustomStrongTypeConnectionConfigs.PROMPTFLOW_MODULE_KEY, - CustomStrongTypeConnectionConfigs.PROMPTFLOW_PACKAGE_KEY, - CustomStrongTypeConnectionConfigs.PROMPTFLOW_PACKAGE_VERSION_KEY, - ] - - class RunTypes: BATCH = "batch" EVALUATION = "evaluation" @@ -334,25 +320,6 @@ class ConfigValueType(str, Enum): SECRET = "Secret" -class ConnectionType(str, Enum): - _NOT_SET = "NotSet" - AZURE_OPEN_AI = "AzureOpenAI" - OPEN_AI = "OpenAI" - QDRANT = "Qdrant" - COGNITIVE_SEARCH = "CognitiveSearch" - SERP = "Serp" - AZURE_CONTENT_SAFETY = "AzureContentSafety" - FORM_RECOGNIZER = "FormRecognizer" - WEAVIATE = "Weaviate" - SERVERLESS = "Serverless" - CUSTOM = "Custom" - - -class ConnectionAuthMode: - KEY = "key" - MEID_TOKEN = "meid_token" # Microsoft Entra ID - - ALL_CONNECTION_TYPES = set( map(lambda x: f"{x.value}Connection", filter(lambda x: x != ConnectionType._NOT_SET, ConnectionType)) ) @@ -488,3 +455,9 @@ class IdentityKeys(str, Enum): USER_IDENTITY = "user_identity" RESOURCE_ID = "resource_id" CLIENT_ID = "client_id" + + +# Note: Keep these for backward compatibility +CustomStrongTypeConnectionConfigs = CustomStrongTypeConnectionConfigs +ConnectionType = ConnectionType +ConnectionAuthMode = ConnectionAuthMode diff --git a/src/promptflow/promptflow/_sdk/_errors.py b/src/promptflow/promptflow/_sdk/_errors.py index 573f883ede0..574ea85e53b 100644 --- a/src/promptflow/promptflow/_sdk/_errors.py +++ b/src/promptflow/promptflow/_sdk/_errors.py @@ -81,13 +81,6 @@ class ConnectionNotFoundError(SDKError): pass -class RequiredEnvironmentVariablesNotSetError(SDKError): - """Exception raised if connection from_env required env vars not found.""" - - def __init__(self, env_vars: list, cls_name: str): - super().__init__(f"Required environment variables {env_vars} to build {cls_name} not set.") - - class ConnectionNameNotSetError(SDKError): """Exception raised if connection not set when create or update.""" diff --git a/src/promptflow/promptflow/_sdk/_utils.py b/src/promptflow/promptflow/_sdk/_utils.py index e8ef21030bc..0d16f5ec717 100644 --- a/src/promptflow/promptflow/_sdk/_utils.py +++ b/src/promptflow/promptflow/_sdk/_utils.py @@ -76,10 +76,6 @@ logger = get_cli_sdk_logger() -def snake_to_camel(name): - return re.sub(r"(?:^|_)([a-z])", lambda x: x.group(1).upper(), name) - - def find_type_in_override(params_override: Optional[list] = None) -> Optional[str]: params_override = params_override or [] for override in params_override: @@ -314,25 +310,6 @@ def update_dict_value_with_connections(built_connections, connection_dict: dict) connection_dict[key] = built_connections[connection_name]["value"][connection_key] -def in_jupyter_notebook() -> bool: - """ - Checks if user is using a Jupyter Notebook. This is necessary because logging is not allowed in - non-Jupyter contexts. - - Adapted from https://stackoverflow.com/a/22424821 - """ - try: # cspell:ignore ipython - from IPython import get_ipython - - if "IPKernelApp" not in get_ipython().config: - return False - except ImportError: - return False - except AttributeError: - return False - return True - - def render_jinja_template(template_path, *, trim_blocks=True, keep_trailing_newline=True, **kwargs): with open(template_path, "r", encoding=DEFAULT_ENCODING) as f: template = Template(f.read(), trim_blocks=trim_blocks, keep_trailing_newline=keep_trailing_newline) diff --git a/src/promptflow/promptflow/_sdk/entities/_connection.py b/src/promptflow/promptflow/_sdk/entities/_connection.py index 93dbabc11a5..3ac71f0d401 100644 --- a/src/promptflow/promptflow/_sdk/entities/_connection.py +++ b/src/promptflow/promptflow/_sdk/entities/_connection.py @@ -4,15 +4,13 @@ import abc import importlib import json -import os -import types from os import PathLike from pathlib import Path -from typing import Dict, List, Union +from typing import Dict, Union from marshmallow import INCLUDE -from promptflow._core.token_provider import AzureTokenProvider +from promptflow._constants import ConnectionType, CustomStrongTypeConnectionConfigs from promptflow._sdk._constants import ( BASE_PATH_CONTEXT_KEY, PARAMS_OVERRIDE_KEY, @@ -22,19 +20,14 @@ SCRUBBED_VALUE_NO_CHANGE, SCRUBBED_VALUE_USER_INPUT, ConfigValueType, - ConnectionAuthMode, - ConnectionType, - CustomStrongTypeConnectionConfigs, ) -from promptflow._sdk._errors import RequiredEnvironmentVariablesNotSetError, SDKError, UnsecureConnectionError +from promptflow._sdk._errors import SDKError, UnsecureConnectionError from promptflow._sdk._orm.connection import Connection as ORMConnection from promptflow._sdk._utils import ( decrypt_secret_value, encrypt_secret_value, find_type_in_override, - in_jupyter_notebook, print_yellow_warning, - snake_to_camel, ) from promptflow._sdk.entities._yaml_translatable import YAMLTranslatableMixin from promptflow._sdk.schemas._connection import ( @@ -51,61 +44,28 @@ WeaviateConnectionSchema, ) from promptflow._utils.logger_utils import LoggerFactory +from promptflow._utils.utils import snake_to_camel from promptflow.contracts.types import Secret +from promptflow.core._connection import AzureContentSafetyConnection as _CoreAzureContentSafetyConnection +from promptflow.core._connection import AzureOpenAIConnection as _CoreAzureOpenAIConnection +from promptflow.core._connection import CognitiveSearchConnection as _CoreCognitiveSearchConnection +from promptflow.core._connection import CustomConnection as _CoreCustomConnection +from promptflow.core._connection import CustomStrongTypeConnection as _CoreCustomStrongTypeConnection +from promptflow.core._connection import FormRecognizerConnection as _CoreFormRecognizerConnection +from promptflow.core._connection import OpenAIConnection as _CoreOpenAIConnection +from promptflow.core._connection import QdrantConnection as _CoreQdrantConnection +from promptflow.core._connection import SerpConnection as _CoreSerpConnection +from promptflow.core._connection import ServerlessConnection as _CoreServerlessConnection +from promptflow.core._connection import WeaviateConnection as _CoreWeaviateConnection +from promptflow.core._connection import _Connection as _CoreConnection +from promptflow.core._connection import _StrongTypeConnection as _CoreStrongTypeConnection from promptflow.exceptions import UserErrorException, ValidationException logger = LoggerFactory.get_logger(name=__name__) PROMPTFLOW_CONNECTIONS = "promptflow.connections" -class _Connection(YAMLTranslatableMixin): - """A connection entity that stores the connection information. - - :param name: Connection name - :type name: str - :param type: Possible values include: "OpenAI", "AzureOpenAI", "Custom". - :type type: str - :param module: The module of connection class, used for execution. - :type module: str - :param configs: The configs kv pairs. - :type configs: Dict[str, str] - :param secrets: The secrets kv pairs. - :type secrets: Dict[str, str] - """ - - TYPE = ConnectionType._NOT_SET - - def __init__( - self, - name: str = None, - module: str = "promptflow.connections", - configs: Dict[str, str] = None, - secrets: Dict[str, str] = None, - **kwargs, - ): - self.name = name - self.type = self.TYPE - self.class_name = f"{self.TYPE.value}Connection" # The type in executor connection dict - self.configs = configs or {} - self.module = module - # Note the connection secrets value behaviors: - # -------------------------------------------------------------------------------- - # | secret value | CLI create | CLI update | SDK create_or_update | - # -------------------------------------------------------------------------------- - # | empty or all "*" | prompt input | use existing values | use existing values | - # | | prompt input | use existing values | use existing values | - # | | prompt input | prompt input | raise error | - # -------------------------------------------------------------------------------- - self.secrets = secrets or {} - self._secrets = {**self.secrets} # Un-scrubbed secrets - self.expiry_time = kwargs.get("expiry_time", None) - self.created_date = kwargs.get("created_date", None) - self.last_modified_date = kwargs.get("last_modified_date", None) - # Conditional assignment to prevent entity bloat when unused. - print_as_yaml = kwargs.pop("print_as_yaml", in_jupyter_notebook()) - if print_as_yaml: - self.print_as_yaml = True - +class _Connection(_CoreConnection, YAMLTranslatableMixin): @classmethod def _casting_type(cls, typ): type_dict = { @@ -117,20 +77,6 @@ def _casting_type(cls, typ): return type_dict.get(typ) return snake_to_camel(typ) - def keys(self) -> List: - """Return keys of the connection properties.""" - return list(self.configs.keys()) + list(self.secrets.keys()) - - def __getitem__(self, item): - # Note: This is added to allow usage **connection(). - if item in self.secrets: - return self.secrets[item] - if item in self.configs: - return self.configs[item] - # raise UserErrorException(error=KeyError(f"Key {item!r} not found in connection {self.name!r}.")) - # Cant't raise UserErrorException due to the code exit(1) of promptflow._cli._utils.py line 368. - raise KeyError(f"Key {item!r} not found in connection {self.name!r}.") - @classmethod def _is_scrubbed_value(cls, value): """For scrubbed value, cli will get original for update, and prompt user to input for create.""" @@ -287,13 +233,13 @@ def _get_scrubbed_secrets(self): return {key: val for key, val in self.secrets.items() if self._is_scrubbed_value(val)} -class _StrongTypeConnection(_Connection): +class _StrongTypeConnection(_CoreStrongTypeConnection, _Connection): def _to_orm_object(self): # Both keys & secrets will be stored in configs for strong type connection. secrets = self._validate_and_encrypt_secrets() return ORMConnection( connectionName=self.name, - connectionType=self.type.value, + connectionType=self.type, configs=json.dumps({**self.configs, **secrets}), customConfigs="{}", expiryTime=self.expiry_time, @@ -333,511 +279,81 @@ def _from_mt_rest_object(cls, mt_rest_obj): ) return obj - @property - def _has_api_key(self): - """Return if the connection has api key.""" - return True - - @property - def api_key(self): - """Return the api key.""" - return self.secrets.get("api_key", SCRUBBED_VALUE) if self._has_api_key else None - - @api_key.setter - def api_key(self, value): - """Set the api key.""" - self.secrets["api_key"] = value - - -class AzureOpenAIConnection(_StrongTypeConnection): - """Azure Open AI connection. - - :param api_key: The api key. - :type api_key: str - :param api_base: The api base. - :type api_base: str - :param api_type: The api type, default "azure". - :type api_type: str - :param api_version: The api version, default "2023-07-01-preview". - :type api_version: str - :param auth_type: The auth type, supported value ["key", "meid_token"]. - :type api_version: str - :param name: Connection name. - :type name: str - """ - - TYPE = ConnectionType.AZURE_OPEN_AI - - def __init__( - self, - api_base: str, - api_key: str = None, - api_type: str = "azure", - api_version: str = "2023-07-01-preview", - auth_mode: str = ConnectionAuthMode.KEY, - **kwargs, - ): - configs = {"api_base": api_base, "api_type": api_type, "api_version": api_version, "auth_mode": auth_mode} - secrets = {"api_key": api_key} if auth_mode == ConnectionAuthMode.KEY else {} - self._token_provider = kwargs.get("token_provider") - super().__init__(configs=configs, secrets=secrets, **kwargs) + +class AzureOpenAIConnection(_CoreAzureOpenAIConnection, _StrongTypeConnection): + __doc__ = _CoreAzureOpenAIConnection.__doc__ @classmethod def _get_schema_cls(cls): return AzureOpenAIConnectionSchema - @property - def api_base(self): - """Return the connection api base.""" - return self.configs.get("api_base") - - @api_base.setter - def api_base(self, value): - """Set the connection api base.""" - self.configs["api_base"] = value - - @property - def api_type(self): - """Return the connection api type.""" - return self.configs.get("api_type") - - @api_type.setter - def api_type(self, value): - """Set the connection api type.""" - self.configs["api_type"] = value - - @property - def api_version(self): - """Return the connection api version.""" - return self.configs.get("api_version") - - @api_version.setter - def api_version(self, value): - """Set the connection api version.""" - self.configs["api_version"] = value - - @property - def auth_mode(self): - """Return the connection auth mode.""" - return self.configs.get("auth_mode", ConnectionAuthMode.KEY) - - @auth_mode.setter - def auth_mode(self, value): - """Set the connection auth mode.""" - self.configs["auth_mode"] = value - - @property - def _has_api_key(self): - """Return if the connection has api key.""" - return self.auth_mode == ConnectionAuthMode.KEY - - def get_token(self): - """Return the connection token.""" - if not self._token_provider: - self._token_provider = AzureTokenProvider() - - return self._token_provider.get_token() - @classmethod - def from_env(cls, name=None): - """ - Build connection from environment variables. - - Relevant environment variables: - - AZURE_OPENAI_ENDPOINT: The api base. - - AZURE_OPENAI_API_KEY: The api key. - - OPENAI_API_VERSION: Optional. The api version, default "2023-07-01-preview". - """ - # Env var name reference: https://github.com/openai/openai-python/blob/main/src/openai/lib/azure.py#L160 - api_base = os.getenv("AZURE_OPENAI_ENDPOINT") - api_key = os.getenv("AZURE_OPENAI_API_KEY") - # Note: Name OPENAI_API_VERSION from OpenAI. - api_version = os.getenv("OPENAI_API_VERSION") - if api_base is None or api_key is None: - raise RequiredEnvironmentVariablesNotSetError( - env_vars=["AZURE_OPENAI_ENDPOINT", "AZURE_OPENAI_API_KEY"], cls_name=cls.__name__ - ) - # Note: Do not pass api_version None when init class object as we have default version. - optional_args = {"api_version": api_version} if api_version else {} - return cls(api_base=api_base, api_key=api_key, name=name, **optional_args) - - -class OpenAIConnection(_StrongTypeConnection): - """Open AI connection. - - :param api_key: The api key. - :type api_key: str - :param organization: Optional. The unique identifier for your organization which can be used in API requests. - :type organization: str - :param base_url: Optional. Specify when use customized api base, leave None to use open ai default api base. - :type base_url: str - :param name: Connection name. - :type name: str - """ - - TYPE = ConnectionType.OPEN_AI - - def __init__(self, api_key: str, organization: str = None, base_url=None, **kwargs): - if base_url == "": - # Keep empty as None to avoid disturbing openai pick the default api base. - base_url = None - configs = {"organization": organization, "base_url": base_url} - secrets = {"api_key": api_key} - super().__init__(configs=configs, secrets=secrets, **kwargs) +class OpenAIConnection(_CoreOpenAIConnection, _StrongTypeConnection): + __doc__ = _CoreOpenAIConnection.__doc__ @classmethod def _get_schema_cls(cls): return OpenAIConnectionSchema - @property - def organization(self): - """Return the connection organization.""" - return self.configs.get("organization") - - @organization.setter - def organization(self, value): - """Set the connection organization.""" - self.configs["organization"] = value - - @property - def base_url(self): - """Return the connection api base.""" - return self.configs.get("base_url") - - @base_url.setter - def base_url(self, value): - """Set the connection api base.""" - self.configs["base_url"] = value - - @classmethod - def from_env(cls, name=None): - """ - Build connection from environment variables. - - Relevant environment variables: - - OPENAI_API_KEY: The api key. - - OPENAI_ORG_ID: Optional. The unique identifier for your organization which can be used in API requests. - - OPENAI_BASE_URL: Optional. Specify when use customized api base, leave None to use OpenAI default api base. - """ - # Env var name reference: https://github.com/openai/openai-python/blob/main/src/openai/_client.py#L92 - api_key = os.getenv("OPENAI_API_KEY") - base_url = os.getenv("OPENAI_BASE_URL") - organization = os.getenv("OPENAI_ORG_ID") - if api_key is None: - raise RequiredEnvironmentVariablesNotSetError(env_vars=["OPENAI_API_KEY"], cls_name=cls.__name__) - return cls(api_key=api_key, organization=organization, base_url=base_url, name=name) - - -class ServerlessConnection(_StrongTypeConnection): - """Serverless connection. - - :param api_key: The api key. - :type api_key: str - :param api_base: The api base. - :type api_base: str - :param name: Connection name. - :type name: str - """ - TYPE = ConnectionType.SERVERLESS - - def __init__(self, api_key: str, api_base: str, **kwargs): - secrets = {"api_key": api_key} - configs = {"api_base": api_base} - super().__init__(secrets=secrets, configs=configs, **kwargs) +class ServerlessConnection(_CoreServerlessConnection, _StrongTypeConnection): + __doc__ = _CoreServerlessConnection.__doc__ @classmethod def _get_schema_cls(cls): return ServerlessConnectionSchema - @property - def api_base(self): - """Return the connection api base.""" - return self.configs.get("api_base") - - @api_base.setter - def api_base(self, value): - """Set the connection api base.""" - self.configs["api_base"] = value - - -class SerpConnection(_StrongTypeConnection): - """Serp connection. - :param api_key: The api key. - :type api_key: str - :param name: Connection name. - :type name: str - """ - - TYPE = ConnectionType.SERP - - def __init__(self, api_key: str, **kwargs): - secrets = {"api_key": api_key} - super().__init__(secrets=secrets, **kwargs) +class SerpConnection(_CoreSerpConnection, _StrongTypeConnection): + __doc__ = _CoreSerpConnection.__doc__ @classmethod def _get_schema_cls(cls): return SerpConnectionSchema -class _EmbeddingStoreConnection(_StrongTypeConnection): - TYPE = ConnectionType._NOT_SET - - def __init__(self, api_key: str, api_base: str, **kwargs): - configs = {"api_base": api_base} - secrets = {"api_key": api_key} - super().__init__(module="promptflow_vectordb.connections", configs=configs, secrets=secrets, **kwargs) - - @property - def api_base(self): - return self.configs.get("api_base") - - @api_base.setter - def api_base(self, value): - self.configs["api_base"] = value - - -class QdrantConnection(_EmbeddingStoreConnection): - """Qdrant connection. - - :param api_key: The api key. - :type api_key: str - :param api_base: The api base. - :type api_base: str - :param name: Connection name. - :type name: str - """ - - TYPE = ConnectionType.QDRANT +class QdrantConnection(_CoreQdrantConnection, _StrongTypeConnection): + __doc__ = _CoreQdrantConnection.__doc__ @classmethod def _get_schema_cls(cls): return QdrantConnectionSchema -class WeaviateConnection(_EmbeddingStoreConnection): - """Weaviate connection. - - :param api_key: The api key. - :type api_key: str - :param api_base: The api base. - :type api_base: str - :param name: Connection name. - :type name: str - """ - - TYPE = ConnectionType.WEAVIATE +class WeaviateConnection(_CoreWeaviateConnection, _StrongTypeConnection): + __doc__ = _CoreWeaviateConnection.__doc__ @classmethod def _get_schema_cls(cls): return WeaviateConnectionSchema -class CognitiveSearchConnection(_StrongTypeConnection): - """Cognitive Search connection. - - :param api_key: The api key. - :type api_key: str - :param api_base: The api base. - :type api_base: str - :param api_version: The api version, default "2023-07-01-Preview". - :type api_version: str - :param name: Connection name. - :type name: str - """ - - TYPE = ConnectionType.COGNITIVE_SEARCH - - def __init__(self, api_key: str, api_base: str, api_version: str = "2023-07-01-Preview", **kwargs): - configs = {"api_base": api_base, "api_version": api_version} - secrets = {"api_key": api_key} - super().__init__(configs=configs, secrets=secrets, **kwargs) +class CognitiveSearchConnection(_CoreCognitiveSearchConnection, _StrongTypeConnection): + __doc__ = _CoreCognitiveSearchConnection.__doc__ @classmethod def _get_schema_cls(cls): return CognitiveSearchConnectionSchema - @property - def api_base(self): - """Return the connection api base.""" - return self.configs.get("api_base") - - @api_base.setter - def api_base(self, value): - """Set the connection api base.""" - self.configs["api_base"] = value - - @property - def api_version(self): - """Return the connection api version.""" - return self.configs.get("api_version") - - @api_version.setter - def api_version(self, value): - """Set the connection api version.""" - self.configs["api_version"] = value - - -class AzureContentSafetyConnection(_StrongTypeConnection): - """Azure Content Safety connection. - - :param api_key: The api key. - :type api_key: str - :param endpoint: The api endpoint. - :type endpoint: str - :param api_version: The api version, default "2023-04-30-preview". - :type api_version: str - :param api_type: The api type, default "Content Safety". - :type api_type: str - :param name: Connection name. - :type name: str - """ - - TYPE = ConnectionType.AZURE_CONTENT_SAFETY - - def __init__( - self, - api_key: str, - endpoint: str, - api_version: str = "2023-10-01", - api_type: str = "Content Safety", - **kwargs, - ): - configs = {"endpoint": endpoint, "api_version": api_version, "api_type": api_type} - secrets = {"api_key": api_key} - super().__init__(configs=configs, secrets=secrets, **kwargs) + +class AzureContentSafetyConnection(_CoreAzureContentSafetyConnection, _StrongTypeConnection): + __doc__ = _CoreAzureContentSafetyConnection.__doc__ @classmethod def _get_schema_cls(cls): return AzureContentSafetyConnectionSchema - @property - def endpoint(self): - """Return the connection endpoint.""" - return self.configs.get("endpoint") - - @endpoint.setter - def endpoint(self, value): - """Set the connection endpoint.""" - self.configs["endpoint"] = value - - @property - def api_version(self): - """Return the connection api version.""" - return self.configs.get("api_version") - - @api_version.setter - def api_version(self, value): - """Set the connection api version.""" - self.configs["api_version"] = value - - @property - def api_type(self): - """Return the connection api type.""" - return self.configs.get("api_type") - - @api_type.setter - def api_type(self, value): - """Set the connection api type.""" - self.configs["api_type"] = value - - -class FormRecognizerConnection(AzureContentSafetyConnection): - """Form Recognizer connection. - - :param api_key: The api key. - :type api_key: str - :param endpoint: The api endpoint. - :type endpoint: str - :param api_version: The api version, default "2023-07-31". - :type api_version: str - :param api_type: The api type, default "Form Recognizer". - :type api_type: str - :param name: Connection name. - :type name: str - """ - - # Note: FormRecognizer and ContentSafety are using CognitiveService type in ARM, so keys are the same. - TYPE = ConnectionType.FORM_RECOGNIZER - - def __init__( - self, api_key: str, endpoint: str, api_version: str = "2023-07-31", api_type: str = "Form Recognizer", **kwargs - ): - super().__init__(api_key=api_key, endpoint=endpoint, api_version=api_version, api_type=api_type, **kwargs) + +class FormRecognizerConnection(_CoreFormRecognizerConnection, AzureContentSafetyConnection): + __doc__ = _CoreFormRecognizerConnection.__doc__ @classmethod def _get_schema_cls(cls): return FormRecognizerConnectionSchema -class CustomStrongTypeConnection(_Connection): - """Custom strong type connection. - - .. note:: - - This connection type should not be used directly. Below is an example of how to use CustomStrongTypeConnection: - - .. code-block:: python - - class MyCustomConnection(CustomStrongTypeConnection): - api_key: Secret - api_base: str - - :param configs: The configs kv pairs. - :type configs: Dict[str, str] - :param secrets: The secrets kv pairs. - :type secrets: Dict[str, str] - :param name: Connection name - :type name: str - """ - - def __init__( - self, - secrets: Dict[str, str], - configs: Dict[str, str] = None, - **kwargs, - ): - # There are two cases to init a Custom strong type connection: - # 1. The connection is created through SDK PFClient, custom_type and custom_module are not in the kwargs. - # 2. The connection is loaded from template file, custom_type and custom_module are in the kwargs. - custom_type = kwargs.get(CustomStrongTypeConnectionConfigs.TYPE, None) - custom_module = kwargs.get(CustomStrongTypeConnectionConfigs.MODULE, None) - if custom_type: - configs.update({CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY: custom_type}) - if custom_module: - configs.update({CustomStrongTypeConnectionConfigs.PROMPTFLOW_MODULE_KEY: custom_module}) - self.kwargs = kwargs - super().__init__(configs=configs, secrets=secrets, **kwargs) - self.module = kwargs.get("module", self.__class__.__module__) - self.custom_type = custom_type or self.__class__.__name__ - self.package = kwargs.get(CustomStrongTypeConnectionConfigs.PACKAGE, None) - self.package_version = kwargs.get(CustomStrongTypeConnectionConfigs.PACKAGE_VERSION, None) - - def __getattribute__(self, item): - # Note: The reason to overwrite __getattribute__ instead of __getattr__ is as follows: - # Custom strong type connection is written this way: - # class MyCustomConnection(CustomStrongTypeConnection): - # api_key: Secret - # api_base: str = "This is a default value" - # api_base has a default value, my_custom_connection_instance.api_base would not trigger __getattr__. - # The default value will be returned directly instead of the real value in configs. - annotations = getattr(super().__getattribute__("__class__"), "__annotations__", {}) - if item in annotations: - if annotations[item] == Secret: - return self.secrets[item] - else: - return self.configs[item] - return super().__getattribute__(item) - - def __setattr__(self, key, value): - annotations = getattr(super().__getattribute__("__class__"), "__annotations__", {}) - if key in annotations: - if annotations[key] == Secret: - self.secrets[key] = value - else: - self.configs[key] = value - return super().__setattr__(key, value) +class CustomStrongTypeConnection(_CoreCustomStrongTypeConnection, _Connection): + __doc__ = _CoreCustomStrongTypeConnection.__doc__ def _to_orm_object(self) -> ORMConnection: custom_connection = self._convert_to_custom() @@ -916,26 +432,8 @@ def _load_from_dict(cls, data: Dict, context: Dict, additional_message: str = No return (super()._load_from_dict(data, context, additional_message, **kwargs))._convert_to_custom() -class CustomConnection(_Connection): - """Custom connection. - - :param configs: The configs kv pairs. - :type configs: Dict[str, str] - :param secrets: The secrets kv pairs. - :type secrets: Dict[str, str] - :param name: Connection name - :type name: str - """ - - TYPE = ConnectionType.CUSTOM - - def __init__( - self, - secrets: Dict[str, str], - configs: Dict[str, str] = None, - **kwargs, - ): - super().__init__(secrets=secrets, configs=configs, **kwargs) +class CustomConnection(_CoreCustomConnection, _Connection): + __doc__ = _CoreCustomConnection.__doc__ @classmethod def _get_schema_cls(cls): @@ -957,29 +455,6 @@ def _load_from_dict(cls, data: Dict, context: Dict, additional_message: str = No return super()._load_from_dict(data, context, additional_message, **kwargs) - def __getattr__(self, item): - # Note: This is added for compatibility with promptflow.connections custom connection usage. - if item == "secrets": - # Usually obj.secrets will not reach here - # This is added to handle copy.deepcopy loop issue - return super().__getattribute__("secrets") - if item == "configs": - # Usually obj.configs will not reach here - # This is added to handle copy.deepcopy loop issue - return super().__getattribute__("configs") - if item in self.secrets: - logger.warning("Please use connection.secrets[key] to access secrets.") - return self.secrets[item] - if item in self.configs: - logger.warning("Please use connection.configs[key] to access configs.") - return self.configs[item] - return super().__getattribute__(item) - - def is_secret(self, item): - """Check if item is a secret.""" - # Note: This is added for compatibility with promptflow.connections custom connection usage. - return item in self.secrets - def _to_orm_object(self): # Both keys & secrets will be set in custom configs with value type specified for custom connection. if not self.secrets: @@ -999,7 +474,7 @@ def _to_orm_object(self): return ORMConnection( connectionName=self.name, - connectionType=self.type.value, + connectionType=self.type, configs="{}", customConfigs=json.dumps(custom_configs), expiryTime=self.expiry_time, @@ -1074,53 +549,9 @@ def _from_mt_rest_object(cls, mt_rest_obj): last_modified_date=mt_rest_obj.last_modified_date, ) - def _is_custom_strong_type(self): - return ( - CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY in self.configs - and self.configs[CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY] - ) - - def _convert_to_custom_strong_type(self, module=None, to_class=None) -> CustomStrongTypeConnection: - # There are two scenarios to convert a custom connection to custom strong type connection: - # 1. The connection is created from a custom strong type connection template file. - # Custom type and module name are present in the configs. - # 2. The connection is created through SDK PFClient or a custom connection template file. - # Custom type and module name are not present in the configs. Module and class must be passed for conversion. - if to_class == self.__class__.__name__: - # No need to convert. - return self - - import importlib - - if ( - CustomStrongTypeConnectionConfigs.PROMPTFLOW_MODULE_KEY in self.configs - and CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY in self.configs - ): - module_name = self.configs.get(CustomStrongTypeConnectionConfigs.PROMPTFLOW_MODULE_KEY) - module = importlib.import_module(module_name) - custom_conn_name = self.configs.get(CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY) - elif isinstance(module, str) and isinstance(to_class, str): - module_name = module - module = importlib.import_module(module_name) - custom_conn_name = to_class - elif isinstance(module, types.ModuleType) and isinstance(to_class, str): - custom_conn_name = to_class - else: - error = ValueError( - f"Failed to convert to custom strong type connection because of " - f"invalid module or class: {module}, {to_class}" - ) - raise UserErrorException(message=str(error), error=error) - - custom_defined_connection_class = getattr(module, custom_conn_name) - - connection_instance = custom_defined_connection_class(configs=self.configs, secrets=self.secrets) - - return connection_instance - _supported_types = { - v.TYPE.value: v + v.TYPE: v for v in globals().values() if isinstance(v, type) and issubclass(v, _Connection) and not v.__name__.startswith("_") } diff --git a/src/promptflow/promptflow/_sdk/schemas/_connection.py b/src/promptflow/promptflow/_sdk/schemas/_connection.py index ce5a3325b0d..15f7babd9e0 100644 --- a/src/promptflow/promptflow/_sdk/schemas/_connection.py +++ b/src/promptflow/promptflow/_sdk/schemas/_connection.py @@ -5,13 +5,8 @@ from marshmallow import ValidationError, fields, post_load, pre_dump, validates -from promptflow._sdk._constants import ( - SCHEMA_KEYS_CONTEXT_CONFIG_KEY, - SCHEMA_KEYS_CONTEXT_SECRET_KEY, - ConnectionAuthMode, - ConnectionType, - CustomStrongTypeConnectionConfigs, -) +from promptflow._constants import ConnectionAuthMode, ConnectionType, CustomStrongTypeConnectionConfigs +from promptflow._sdk._constants import SCHEMA_KEYS_CONTEXT_CONFIG_KEY, SCHEMA_KEYS_CONTEXT_SECRET_KEY from promptflow._sdk.schemas._base import YamlFileSchema from promptflow._sdk.schemas._fields import StringTransformedEnum from promptflow._utils.utils import camel_to_snake diff --git a/src/promptflow/promptflow/_utils/utils.py b/src/promptflow/promptflow/_utils/utils.py index 295c03131bc..844913829e7 100644 --- a/src/promptflow/promptflow/_utils/utils.py +++ b/src/promptflow/promptflow/_utils/utils.py @@ -368,6 +368,29 @@ def copy_file_except(src_dir, dst_dir, exclude_file): shutil.copy2(src_file_path, dst_file_path) +def in_jupyter_notebook() -> bool: + """ + Checks if user is using a Jupyter Notebook. This is necessary because logging is not allowed in + non-Jupyter contexts. + + Adapted from https://stackoverflow.com/a/22424821 + """ + try: # cspell:ignore ipython + from IPython import get_ipython + + if "IPKernelApp" not in get_ipython().config: + return False + except ImportError: + return False + except AttributeError: + return False + return True + + +def snake_to_camel(name): + return re.sub(r"(?:^|_)([a-z])", lambda x: x.group(1).upper(), name) + + def prepare_folder(path: Union[str, Path]) -> Path: """Create folder if not exists and return the folder path.""" path = Path(path) diff --git a/src/promptflow/promptflow/azure/operations/_arm_connection_operations.py b/src/promptflow/promptflow/azure/operations/_arm_connection_operations.py index e2872397498..a7d6026c4a8 100644 --- a/src/promptflow/promptflow/azure/operations/_arm_connection_operations.py +++ b/src/promptflow/promptflow/azure/operations/_arm_connection_operations.py @@ -12,7 +12,7 @@ ) from azure.core.exceptions import ClientAuthenticationError -from promptflow._sdk._constants import ConnectionAuthMode +from promptflow._constants import ConnectionAuthMode from promptflow._sdk.entities._connection import CustomConnection, _Connection from promptflow._utils.retry_utils import http_retry_wrapper from promptflow.azure._models._models import WorkspaceConnectionPropertiesV2BasicResource diff --git a/src/promptflow/promptflow/azure/operations/_run_operations.py b/src/promptflow/promptflow/azure/operations/_run_operations.py index 987c9703195..e85e520abbc 100644 --- a/src/promptflow/promptflow/azure/operations/_run_operations.py +++ b/src/promptflow/promptflow/azure/operations/_run_operations.py @@ -46,10 +46,11 @@ ) from promptflow._sdk._errors import InvalidRunStatusError, RunNotFoundError, RunOperationParameterError from promptflow._sdk._telemetry import ActivityType, WorkspaceTelemetryMixin, monitor_operation -from promptflow._sdk._utils import in_jupyter_notebook, incremental_print, is_remote_uri, print_red_error +from promptflow._sdk._utils import incremental_print, is_remote_uri, print_red_error from promptflow._sdk.entities import Run from promptflow._utils.async_utils import async_run_allowing_running_loop from promptflow._utils.logger_utils import get_cli_sdk_logger +from promptflow._utils.utils import in_jupyter_notebook from promptflow.azure._constants._flow import AUTOMATIC_RUNTIME, AUTOMATIC_RUNTIME_NAME, CLOUD_RUNS_PAGE_SIZE from promptflow.azure._load_functions import load_flow from promptflow.azure._restclient.flow_service_caller import FlowServiceCaller diff --git a/src/promptflow/promptflow/client/__init__.py b/src/promptflow/promptflow/client/__init__.py new file mode 100644 index 00000000000..cefbb078768 --- /dev/null +++ b/src/promptflow/promptflow/client/__init__.py @@ -0,0 +1,11 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore + +# control plane sdk functions +from promptflow._sdk._load_functions import load_run + +from .._sdk._pf_client import PFClient + +__all__ = ["PFClient", "load_run"] diff --git a/src/promptflow/promptflow/core/__init__.py b/src/promptflow/promptflow/core/__init__.py new file mode 100644 index 00000000000..d9637135d7c --- /dev/null +++ b/src/promptflow/promptflow/core/__init__.py @@ -0,0 +1,15 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore + +from promptflow._core.metric_logger import log_metric + +# flake8: noqa +from promptflow._core.tool import ToolProvider, tool + +# backward compatibility +log_flow_metric = log_metric + +# TODO: Add the Flow class +__all__ = ["log_metric", "ToolProvider", "tool"] diff --git a/src/promptflow/promptflow/core/_connection.py b/src/promptflow/promptflow/core/_connection.py new file mode 100644 index 00000000000..bf210857703 --- /dev/null +++ b/src/promptflow/promptflow/core/_connection.py @@ -0,0 +1,709 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +import importlib +import os +import types +from typing import Dict, List + +from promptflow._constants import CONNECTION_SCRUBBED_VALUE as SCRUBBED_VALUE +from promptflow._constants import ConnectionAuthMode, ConnectionType, CustomStrongTypeConnectionConfigs +from promptflow._core.token_provider import AzureTokenProvider +from promptflow._utils.logger_utils import LoggerFactory +from promptflow._utils.utils import in_jupyter_notebook +from promptflow.contracts.types import Secret +from promptflow.exceptions import UserErrorException + +logger = LoggerFactory.get_logger(name=__name__) +PROMPTFLOW_CONNECTIONS = "promptflow.connections" + + +class _Connection: + """A connection entity that stores the connection information. + + :param name: Connection name + :type name: str + :param type: Possible values include: "OpenAI", "AzureOpenAI", "Custom". + :type type: str + :param module: The module of connection class, used for execution. + :type module: str + :param configs: The configs kv pairs. + :type configs: Dict[str, str] + :param secrets: The secrets kv pairs. + :type secrets: Dict[str, str] + """ + + TYPE = ConnectionType._NOT_SET.value + + def __init__( + self, + name: str = None, + module: str = "promptflow.connections", + configs: Dict[str, str] = None, + secrets: Dict[str, str] = None, + **kwargs, + ): + self.name = name + self.type = self.TYPE + self.class_name = f"{self.TYPE}Connection" # The type in executor connection dict + self.configs = configs or {} + self.module = module + # Note the connection secrets value behaviors: + # -------------------------------------------------------------------------------- + # | secret value | CLI create | CLI update | SDK create_or_update | + # -------------------------------------------------------------------------------- + # | empty or all "*" | prompt input | use existing values | use existing values | + # | | prompt input | use existing values | use existing values | + # | | prompt input | prompt input | raise error | + # -------------------------------------------------------------------------------- + self.secrets = secrets or {} + self._secrets = {**self.secrets} # Un-scrubbed secrets + self.expiry_time = kwargs.get("expiry_time", None) + self.created_date = kwargs.get("created_date", None) + self.last_modified_date = kwargs.get("last_modified_date", None) + # Conditional assignment to prevent entity bloat when unused. + print_as_yaml = kwargs.pop("print_as_yaml", in_jupyter_notebook()) + if print_as_yaml: + self.print_as_yaml = True + + def keys(self) -> List: + """Return keys of the connection properties.""" + return list(self.configs.keys()) + list(self.secrets.keys()) + + def __getitem__(self, item): + # Note: This is added to allow usage **connection(). + if item in self.secrets: + return self.secrets[item] + if item in self.configs: + return self.configs[item] + # raise UserErrorException(error=KeyError(f"Key {item!r} not found in connection {self.name!r}.")) + # Cant't raise UserErrorException due to the code exit(1) of promptflow._cli._utils.py line 368. + raise KeyError(f"Key {item!r} not found in connection {self.name!r}.") + + +class _StrongTypeConnection(_Connection): + @property + def _has_api_key(self): + """Return if the connection has api key.""" + return True + + @property + def api_key(self): + """Return the api key.""" + return self.secrets.get("api_key", SCRUBBED_VALUE) if self._has_api_key else None + + @api_key.setter + def api_key(self, value): + """Set the api key.""" + self.secrets["api_key"] = value + + +class AzureOpenAIConnection(_StrongTypeConnection): + """Azure Open AI connection. + + :param api_key: The api key. + :type api_key: str + :param api_base: The api base. + :type api_base: str + :param api_type: The api type, default "azure". + :type api_type: str + :param api_version: The api version, default "2023-07-01-preview". + :type api_version: str + :param auth_type: The auth type, supported value ["key", "meid_token"]. + :type api_version: str + :param name: Connection name. + :type name: str + """ + + TYPE = ConnectionType.AZURE_OPEN_AI.value + + def __init__( + self, + api_base: str, + api_key: str = None, + api_type: str = "azure", + api_version: str = "2023-07-01-preview", + auth_mode: str = ConnectionAuthMode.KEY, + **kwargs, + ): + configs = {"api_base": api_base, "api_type": api_type, "api_version": api_version, "auth_mode": auth_mode} + secrets = {"api_key": api_key} if auth_mode == ConnectionAuthMode.KEY else {} + self._token_provider = kwargs.get("token_provider") + super().__init__(configs=configs, secrets=secrets, **kwargs) + + @property + def api_base(self): + """Return the connection api base.""" + return self.configs.get("api_base") + + @api_base.setter + def api_base(self, value): + """Set the connection api base.""" + self.configs["api_base"] = value + + @property + def api_type(self): + """Return the connection api type.""" + return self.configs.get("api_type") + + @api_type.setter + def api_type(self, value): + """Set the connection api type.""" + self.configs["api_type"] = value + + @property + def api_version(self): + """Return the connection api version.""" + return self.configs.get("api_version") + + @api_version.setter + def api_version(self, value): + """Set the connection api version.""" + self.configs["api_version"] = value + + @property + def auth_mode(self): + """Return the connection auth mode.""" + return self.configs.get("auth_mode", ConnectionAuthMode.KEY) + + @auth_mode.setter + def auth_mode(self, value): + """Set the connection auth mode.""" + self.configs["auth_mode"] = value + + @property + def _has_api_key(self): + """Return if the connection has api key.""" + return self.auth_mode == ConnectionAuthMode.KEY + + def get_token(self): + """Return the connection token.""" + if not self._token_provider: + self._token_provider = AzureTokenProvider() + + return self._token_provider.get_token() + + @classmethod + def from_env(cls, name=None): + """ + Build connection from environment variables. + + Relevant environment variables: + - AZURE_OPENAI_ENDPOINT: The api base. + - AZURE_OPENAI_API_KEY: The api key. + - OPENAI_API_VERSION: Optional. The api version, default "2023-07-01-preview". + """ + # Env var name reference: https://github.com/openai/openai-python/blob/main/src/openai/lib/azure.py#L160 + api_base = os.getenv("AZURE_OPENAI_ENDPOINT") + api_key = os.getenv("AZURE_OPENAI_API_KEY") + # Note: Name OPENAI_API_VERSION from OpenAI. + api_version = os.getenv("OPENAI_API_VERSION") + if api_base is None or api_key is None: + raise RequiredEnvironmentVariablesNotSetError( + env_vars=["AZURE_OPENAI_ENDPOINT", "AZURE_OPENAI_API_KEY"], cls_name=cls.__name__ + ) + # Note: Do not pass api_version None when init class object as we have default version. + optional_args = {"api_version": api_version} if api_version else {} + return cls(api_base=api_base, api_key=api_key, name=name, **optional_args) + + +class OpenAIConnection(_StrongTypeConnection): + """Open AI connection. + + :param api_key: The api key. + :type api_key: str + :param organization: Optional. The unique identifier for your organization which can be used in API requests. + :type organization: str + :param base_url: Optional. Specify when use customized api base, leave None to use open ai default api base. + :type base_url: str + :param name: Connection name. + :type name: str + """ + + TYPE = ConnectionType.OPEN_AI.value + + def __init__(self, api_key: str, organization: str = None, base_url=None, **kwargs): + if base_url == "": + # Keep empty as None to avoid disturbing openai pick the default api base. + base_url = None + configs = {"organization": organization, "base_url": base_url} + secrets = {"api_key": api_key} + super().__init__(configs=configs, secrets=secrets, **kwargs) + + @property + def organization(self): + """Return the connection organization.""" + return self.configs.get("organization") + + @organization.setter + def organization(self, value): + """Set the connection organization.""" + self.configs["organization"] = value + + @property + def base_url(self): + """Return the connection api base.""" + return self.configs.get("base_url") + + @base_url.setter + def base_url(self, value): + """Set the connection api base.""" + self.configs["base_url"] = value + + @classmethod + def from_env(cls, name=None): + """ + Build connection from environment variables. + + Relevant environment variables: + - OPENAI_API_KEY: The api key. + - OPENAI_ORG_ID: Optional. The unique identifier for your organization which can be used in API requests. + - OPENAI_BASE_URL: Optional. Specify when use customized api base, leave None to use OpenAI default api base. + """ + # Env var name reference: https://github.com/openai/openai-python/blob/main/src/openai/_client.py#L92 + api_key = os.getenv("OPENAI_API_KEY") + base_url = os.getenv("OPENAI_BASE_URL") + organization = os.getenv("OPENAI_ORG_ID") + if api_key is None: + raise RequiredEnvironmentVariablesNotSetError(env_vars=["OPENAI_API_KEY"], cls_name=cls.__name__) + return cls(api_key=api_key, organization=organization, base_url=base_url, name=name) + + +class ServerlessConnection(_StrongTypeConnection): + """Serverless connection. + + :param api_key: The api key. + :type api_key: str + :param api_base: The api base. + :type api_base: str + :param name: Connection name. + :type name: str + """ + + TYPE = ConnectionType.SERVERLESS.value + + def __init__(self, api_key: str, api_base: str, **kwargs): + secrets = {"api_key": api_key} + configs = {"api_base": api_base} + super().__init__(secrets=secrets, configs=configs, **kwargs) + + @property + def api_base(self): + """Return the connection api base.""" + return self.configs.get("api_base") + + @api_base.setter + def api_base(self, value): + """Set the connection api base.""" + self.configs["api_base"] = value + + +class SerpConnection(_StrongTypeConnection): + """Serp connection. + + :param api_key: The api key. + :type api_key: str + :param name: Connection name. + :type name: str + """ + + TYPE = ConnectionType.SERP.value + + def __init__(self, api_key: str, **kwargs): + secrets = {"api_key": api_key} + super().__init__(secrets=secrets, **kwargs) + + +class _EmbeddingStoreConnection(_StrongTypeConnection): + TYPE = ConnectionType._NOT_SET.value + + def __init__(self, api_key: str, api_base: str, **kwargs): + configs = {"api_base": api_base} + secrets = {"api_key": api_key} + super().__init__(module="promptflow_vectordb.connections", configs=configs, secrets=secrets, **kwargs) + + @property + def api_base(self): + return self.configs.get("api_base") + + @api_base.setter + def api_base(self, value): + self.configs["api_base"] = value + + +class QdrantConnection(_EmbeddingStoreConnection): + """Qdrant connection. + + :param api_key: The api key. + :type api_key: str + :param api_base: The api base. + :type api_base: str + :param name: Connection name. + :type name: str + """ + + TYPE = ConnectionType.QDRANT.value + + +class WeaviateConnection(_EmbeddingStoreConnection): + """Weaviate connection. + + :param api_key: The api key. + :type api_key: str + :param api_base: The api base. + :type api_base: str + :param name: Connection name. + :type name: str + """ + + TYPE = ConnectionType.WEAVIATE.value + + +class CognitiveSearchConnection(_StrongTypeConnection): + """Cognitive Search connection. + + :param api_key: The api key. + :type api_key: str + :param api_base: The api base. + :type api_base: str + :param api_version: The api version, default "2023-07-01-Preview". + :type api_version: str + :param name: Connection name. + :type name: str + """ + + TYPE = ConnectionType.COGNITIVE_SEARCH.value + + def __init__(self, api_key: str, api_base: str, api_version: str = "2023-07-01-Preview", **kwargs): + configs = {"api_base": api_base, "api_version": api_version} + secrets = {"api_key": api_key} + super().__init__(configs=configs, secrets=secrets, **kwargs) + + @property + def api_base(self): + """Return the connection api base.""" + return self.configs.get("api_base") + + @api_base.setter + def api_base(self, value): + """Set the connection api base.""" + self.configs["api_base"] = value + + @property + def api_version(self): + """Return the connection api version.""" + return self.configs.get("api_version") + + @api_version.setter + def api_version(self, value): + """Set the connection api version.""" + self.configs["api_version"] = value + + +class AzureContentSafetyConnection(_StrongTypeConnection): + """Azure Content Safety connection. + + :param api_key: The api key. + :type api_key: str + :param endpoint: The api endpoint. + :type endpoint: str + :param api_version: The api version, default "2023-04-30-preview". + :type api_version: str + :param api_type: The api type, default "Content Safety". + :type api_type: str + :param name: Connection name. + :type name: str + """ + + TYPE = ConnectionType.AZURE_CONTENT_SAFETY.value + + def __init__( + self, + api_key: str, + endpoint: str, + api_version: str = "2023-10-01", + api_type: str = "Content Safety", + **kwargs, + ): + configs = {"endpoint": endpoint, "api_version": api_version, "api_type": api_type} + secrets = {"api_key": api_key} + super().__init__(configs=configs, secrets=secrets, **kwargs) + + @property + def endpoint(self): + """Return the connection endpoint.""" + return self.configs.get("endpoint") + + @endpoint.setter + def endpoint(self, value): + """Set the connection endpoint.""" + self.configs["endpoint"] = value + + @property + def api_version(self): + """Return the connection api version.""" + return self.configs.get("api_version") + + @api_version.setter + def api_version(self, value): + """Set the connection api version.""" + self.configs["api_version"] = value + + @property + def api_type(self): + """Return the connection api type.""" + return self.configs.get("api_type") + + @api_type.setter + def api_type(self, value): + """Set the connection api type.""" + self.configs["api_type"] = value + + +class FormRecognizerConnection(AzureContentSafetyConnection): + """Form Recognizer connection. + + :param api_key: The api key. + :type api_key: str + :param endpoint: The api endpoint. + :type endpoint: str + :param api_version: The api version, default "2023-07-31". + :type api_version: str + :param api_type: The api type, default "Form Recognizer". + :type api_type: str + :param name: Connection name. + :type name: str + """ + + # Note: FormRecognizer and ContentSafety are using CognitiveService type in ARM, so keys are the same. + TYPE = ConnectionType.FORM_RECOGNIZER.value + + def __init__( + self, api_key: str, endpoint: str, api_version: str = "2023-07-31", api_type: str = "Form Recognizer", **kwargs + ): + super().__init__(api_key=api_key, endpoint=endpoint, api_version=api_version, api_type=api_type, **kwargs) + + +class CustomStrongTypeConnection(_Connection): + """Custom strong type connection. + + .. note:: + + This connection type should not be used directly. Below is an example of how to use CustomStrongTypeConnection: + + .. code-block:: python + + class MyCustomConnection(CustomStrongTypeConnection): + api_key: Secret + api_base: str + + :param configs: The configs kv pairs. + :type configs: Dict[str, str] + :param secrets: The secrets kv pairs. + :type secrets: Dict[str, str] + :param name: Connection name + :type name: str + """ + + def __init__( + self, + secrets: Dict[str, str], + configs: Dict[str, str] = None, + **kwargs, + ): + # There are two cases to init a Custom strong type connection: + # 1. The connection is created through SDK PFClient, custom_type and custom_module are not in the kwargs. + # 2. The connection is loaded from template file, custom_type and custom_module are in the kwargs. + custom_type = kwargs.get(CustomStrongTypeConnectionConfigs.TYPE, None) + custom_module = kwargs.get(CustomStrongTypeConnectionConfigs.MODULE, None) + if custom_type: + configs.update({CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY: custom_type}) + if custom_module: + configs.update({CustomStrongTypeConnectionConfigs.PROMPTFLOW_MODULE_KEY: custom_module}) + self.kwargs = kwargs + super().__init__(configs=configs, secrets=secrets, **kwargs) + self.module = kwargs.get("module", self.__class__.__module__) + self.custom_type = custom_type or self.__class__.__name__ + self.package = kwargs.get(CustomStrongTypeConnectionConfigs.PACKAGE, None) + self.package_version = kwargs.get(CustomStrongTypeConnectionConfigs.PACKAGE_VERSION, None) + + def __getattribute__(self, item): + # Note: The reason to overwrite __getattribute__ instead of __getattr__ is as follows: + # Custom strong type connection is written this way: + # class MyCustomConnection(CustomStrongTypeConnection): + # api_key: Secret + # api_base: str = "This is a default value" + # api_base has a default value, my_custom_connection_instance.api_base would not trigger __getattr__. + # The default value will be returned directly instead of the real value in configs. + annotations = getattr(super().__getattribute__("__class__"), "__annotations__", {}) + if item in annotations: + if annotations[item] == Secret: + return self.secrets[item] + else: + return self.configs[item] + return super().__getattribute__(item) + + def __setattr__(self, key, value): + annotations = getattr(super().__getattribute__("__class__"), "__annotations__", {}) + if key in annotations: + if annotations[key] == Secret: + self.secrets[key] = value + else: + self.configs[key] = value + return super().__setattr__(key, value) + + def _convert_to_custom(self): + # update configs + self.configs.update({CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY: self.custom_type}) + self.configs.update({CustomStrongTypeConnectionConfigs.PROMPTFLOW_MODULE_KEY: self.module}) + if self.package and self.package_version: + self.configs.update({CustomStrongTypeConnectionConfigs.PROMPTFLOW_PACKAGE_KEY: self.package}) + self.configs.update( + {CustomStrongTypeConnectionConfigs.PROMPTFLOW_PACKAGE_VERSION_KEY: self.package_version} + ) + + custom_connection = CustomConnection(configs=self.configs, secrets=self.secrets, **self.kwargs) + return custom_connection + + @classmethod + def _get_custom_keys(cls, data: Dict): + # The data could be either from yaml or from DB. + # If from yaml, 'custom_type' and 'module' are outside the configs of data. + # If from DB, 'custom_type' and 'module' are within the configs of data. + if not data.get(CustomStrongTypeConnectionConfigs.TYPE) or not data.get( + CustomStrongTypeConnectionConfigs.MODULE + ): + if ( + not data["configs"][CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY] + or not data["configs"][CustomStrongTypeConnectionConfigs.PROMPTFLOW_MODULE_KEY] + ): + error = ValueError("custom_type and module are required for custom strong type connections.") + raise UserErrorException(message=str(error), error=error) + else: + m = data["configs"][CustomStrongTypeConnectionConfigs.PROMPTFLOW_MODULE_KEY] + custom_cls = data["configs"][CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY] + else: + m = data[CustomStrongTypeConnectionConfigs.MODULE] + custom_cls = data[CustomStrongTypeConnectionConfigs.TYPE] + + try: + module = importlib.import_module(m) + cls = getattr(module, custom_cls) + except ImportError: + error = ValueError( + f"Can't find module {m} in current environment. Please check the module is correctly configured." + ) + raise UserErrorException(message=str(error), error=error) + except AttributeError: + error = ValueError( + f"Can't find class {custom_cls} in module {m}. " + f"Please check the custom_type is correctly configured." + ) + raise UserErrorException(message=str(error), error=error) + + schema_configs = {} + schema_secrets = {} + + for k, v in cls.__annotations__.items(): + if v == Secret: + schema_secrets[k] = v + else: + schema_configs[k] = v + + return schema_configs, schema_secrets + + +class CustomConnection(_Connection): + """Custom connection. + + :param configs: The configs kv pairs. + :type configs: Dict[str, str] + :param secrets: The secrets kv pairs. + :type secrets: Dict[str, str] + :param name: Connection name + :type name: str + """ + + TYPE = ConnectionType.CUSTOM.value + + def __init__( + self, + secrets: Dict[str, str], + configs: Dict[str, str] = None, + **kwargs, + ): + super().__init__(secrets=secrets, configs=configs, **kwargs) + + def __getattr__(self, item): + # Note: This is added for compatibility with promptflow.connections custom connection usage. + if item == "secrets": + # Usually obj.secrets will not reach here + # This is added to handle copy.deepcopy loop issue + return super().__getattribute__("secrets") + if item == "configs": + # Usually obj.configs will not reach here + # This is added to handle copy.deepcopy loop issue + return super().__getattribute__("configs") + if item in self.secrets: + logger.warning("Please use connection.secrets[key] to access secrets.") + return self.secrets[item] + if item in self.configs: + logger.warning("Please use connection.configs[key] to access configs.") + return self.configs[item] + return super().__getattribute__(item) + + def is_secret(self, item): + """Check if item is a secret.""" + # Note: This is added for compatibility with promptflow.connections custom connection usage. + return item in self.secrets + + def _is_custom_strong_type(self): + return ( + CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY in self.configs + and self.configs[CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY] + ) + + def _convert_to_custom_strong_type(self, module=None, to_class=None) -> CustomStrongTypeConnection: + # There are two scenarios to convert a custom connection to custom strong type connection: + # 1. The connection is created from a custom strong type connection template file. + # Custom type and module name are present in the configs. + # 2. The connection is created through SDK PFClient or a custom connection template file. + # Custom type and module name are not present in the configs. Module and class must be passed for conversion. + if to_class == self.__class__.__name__: + # No need to convert. + return self + + import importlib + + if ( + CustomStrongTypeConnectionConfigs.PROMPTFLOW_MODULE_KEY in self.configs + and CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY in self.configs + ): + module_name = self.configs.get(CustomStrongTypeConnectionConfigs.PROMPTFLOW_MODULE_KEY) + module = importlib.import_module(module_name) + custom_conn_name = self.configs.get(CustomStrongTypeConnectionConfigs.PROMPTFLOW_TYPE_KEY) + elif isinstance(module, str) and isinstance(to_class, str): + module_name = module + module = importlib.import_module(module_name) + custom_conn_name = to_class + elif isinstance(module, types.ModuleType) and isinstance(to_class, str): + custom_conn_name = to_class + else: + error = ValueError( + f"Failed to convert to custom strong type connection because of " + f"invalid module or class: {module}, {to_class}" + ) + raise UserErrorException(message=str(error), error=error) + + custom_defined_connection_class = getattr(module, custom_conn_name) + + connection_instance = custom_defined_connection_class(configs=self.configs, secrets=self.secrets) + + return connection_instance + + +class RequiredEnvironmentVariablesNotSetError(UserErrorException): + """Exception raised if connection from_env required env vars not found.""" + + def __init__(self, env_vars: list, cls_name: str): + super().__init__(f"Required environment variables {env_vars} to build {cls_name} not set.") diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_connection.py b/src/promptflow/tests/sdk_cli_test/unittests/test_connection.py index 747942197fc..c0281d455bf 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_connection.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_connection.py @@ -10,7 +10,7 @@ from promptflow._cli._pf._connection import validate_and_interactive_get_secrets from promptflow._sdk._constants import SCRUBBED_VALUE, ConnectionAuthMode, CustomStrongTypeConnectionConfigs -from promptflow._sdk._errors import RequiredEnvironmentVariablesNotSetError, SDKError +from promptflow._sdk._errors import SDKError from promptflow._sdk._load_functions import _load_env_to_connection from promptflow._sdk.entities._connection import ( AzureContentSafetyConnection, @@ -26,6 +26,7 @@ _Connection, ) from promptflow._utils.yaml_utils import load_yaml +from promptflow.core._connection import RequiredEnvironmentVariablesNotSetError from promptflow.exceptions import UserErrorException TEST_ROOT = Path(__file__).parent.parent.parent diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_utils.py b/src/promptflow/tests/sdk_cli_test/unittests/test_utils.py index b10c609c3ed..0e1a59ec2ef 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_utils.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_utils.py @@ -36,17 +36,17 @@ _generate_connections_dir, decrypt_secret_value, encrypt_secret_value, + gen_uuid_by_compute_info, generate_flow_tools_json, + get_mac_address, + get_system_info, override_connection_config_with_environment_variable, refresh_connections_dir, resolve_connections_environment_variable_reference, - snake_to_camel, - get_mac_address, - gen_uuid_by_compute_info, - get_system_info, ) from promptflow._utils.load_data import load_data from promptflow._utils.retry_utils import http_retry_wrapper, retry +from promptflow._utils.utils import snake_to_camel from promptflow._utils.version_hint_utils import check_latest_version TEST_ROOT = Path(__file__).parent.parent.parent From 36c9032707e6479968854dc05e8694d16cbcd924 Mon Sep 17 00:00:00 2001 From: Lina Tang Date: Wed, 13 Mar 2024 11:07:20 +0800 Subject: [PATCH 030/204] [Executor] Set otel trace name correctly (#2206) # Description For the flow with nested tools, we will set the span name of those nested tools to node name, which is wrong, only the direct children of flow level span should set the span name to node name. In this PR, we will check whether the node name is consumed, if not the span name will set to the node name, otherwise the span name will set to the function name. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --------- Co-authored-by: Lina Tang --- src/promptflow/promptflow/tracing/_trace.py | 8 ++++---- src/promptflow/promptflow/tracing/_tracer.py | 13 +++++++++++-- .../tests/executor/e2etests/test_traces.py | 15 +++++++++++++++ .../flows/flow_with_nested_tool/flow.dag.yaml | 16 ++++++++++++++++ .../flows/flow_with_nested_tool/nested_tool.py | 8 ++++++++ 5 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 src/promptflow/tests/test_configs/flows/flow_with_nested_tool/flow.dag.yaml create mode 100644 src/promptflow/tests/test_configs/flows/flow_with_nested_tool/nested_tool.py diff --git a/src/promptflow/promptflow/tracing/_trace.py b/src/promptflow/promptflow/tracing/_trace.py index 3c2e020622f..f5d2d5b81d2 100644 --- a/src/promptflow/promptflow/tracing/_trace.py +++ b/src/promptflow/promptflow/tracing/_trace.py @@ -288,8 +288,8 @@ def create_trace(func, args, kwargs): @functools.wraps(func) async def wrapped(*args, **kwargs): trace = create_trace(func, args, kwargs) - # Fall back to trace.name if we can't get node name for better view. - span_name = get_node_name_from_context() or trace.name if trace_type == TraceType.TOOL else trace.name + # For node span we set the span name to node name, otherwise we use the function name. + span_name = get_node_name_from_context(used_for_span_name=True) or trace.name with open_telemetry_tracer.start_as_current_span(span_name) as span: enrich_span_with_trace(span, trace) enrich_span_with_prompt_info(span, func, kwargs) @@ -337,8 +337,8 @@ def create_trace(func, args, kwargs): @functools.wraps(func) def wrapped(*args, **kwargs): trace = create_trace(func, args, kwargs) - # Fall back to trace.name if we can't get node name for better view. - span_name = get_node_name_from_context() or trace.name if trace_type == TraceType.TOOL else trace.name + # For node span we set the span name to node name, otherwise we use the function name. + span_name = get_node_name_from_context(used_for_span_name=True) or trace.name with open_telemetry_tracer.start_as_current_span(span_name) as span: enrich_span_with_trace(span, trace) enrich_span_with_prompt_info(span, func, kwargs) diff --git a/src/promptflow/promptflow/tracing/_tracer.py b/src/promptflow/promptflow/tracing/_tracer.py index e5d09f1c156..edac45b283e 100644 --- a/src/promptflow/promptflow/tracing/_tracer.py +++ b/src/promptflow/promptflow/tracing/_tracer.py @@ -23,6 +23,7 @@ class Tracer(ThreadLocalSingleton): def __init__(self, run_id, node_name: Optional[str] = None): self._run_id = run_id self._node_name = node_name + self._is_node_span_created = False self._traces = [] self._current_trace_id = ContextVar("current_trace_id", default="") self._id_to_trace: Dict[str, Trace] = {} @@ -178,8 +179,16 @@ def _create_trace_from_function_call( ) -def get_node_name_from_context(): +def get_node_name_from_context(used_for_span_name=False): tracer = Tracer.active_instance() if tracer is not None: - return tracer._node_name + if used_for_span_name: + # Since only the direct children of flow span should have the node name as span name, we need to check if + # the node span is created, if created, the current span is not a node span, its name should bet set to + # function name. + if not tracer._is_node_span_created: + tracer._is_node_span_created = True + return tracer._node_name + else: + return tracer._node_name return None diff --git a/src/promptflow/tests/executor/e2etests/test_traces.py b/src/promptflow/tests/executor/e2etests/test_traces.py index c5c517c8c78..dbc5e5aee45 100644 --- a/src/promptflow/tests/executor/e2etests/test_traces.py +++ b/src/promptflow/tests/executor/e2etests/test_traces.py @@ -511,6 +511,21 @@ def assert_otel_traces_run_flow_then_traced_function(self): sub_level_span.parent.span_id == top_level_span.context.span_id ) # sub_level_span is a child of top_level_span + def test_flow_with_nested_tool(self): + memory_exporter = prepare_memory_exporter() + + line_result, line_run_id = self.submit_flow_run("flow_with_nested_tool", {"input": "Hello"}, {}) + assert line_result.output == {"output": "Hello"} + + span_list = memory_exporter.get_finished_spans() + for span in span_list: + if span.attributes.get("span_type", "") != "Flow": + inputs = span.attributes.get("inputs", None) + if "\"recursive_call\": false" in inputs: + assert span.name == "nested_tool" + else: + assert span.name == "nested_tool_node" + def submit_flow_run(self, flow_file, inputs, dev_connections): executor = FlowExecutor.create(get_yaml_file(flow_file), dev_connections) line_run_id = str(uuid.uuid4()) diff --git a/src/promptflow/tests/test_configs/flows/flow_with_nested_tool/flow.dag.yaml b/src/promptflow/tests/test_configs/flows/flow_with_nested_tool/flow.dag.yaml new file mode 100644 index 00000000000..65ebdd3d555 --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/flow_with_nested_tool/flow.dag.yaml @@ -0,0 +1,16 @@ +inputs: + input: + type: string + default: test +outputs: + output: + type: string + reference: ${nested_tool_node.output} +nodes: + - name: nested_tool_node + type: python + source: + type: code + path: nested_tool.py + inputs: + input: ${inputs.input} diff --git a/src/promptflow/tests/test_configs/flows/flow_with_nested_tool/nested_tool.py b/src/promptflow/tests/test_configs/flows/flow_with_nested_tool/nested_tool.py new file mode 100644 index 00000000000..b769216fcca --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/flow_with_nested_tool/nested_tool.py @@ -0,0 +1,8 @@ +from promptflow import tool + + +@tool +def nested_tool(input, recursive_call=True): + if recursive_call: + nested_tool(input, recursive_call=False) + return input From 5c2df7bbdcb1409c7d2a693071e274923b2ebcf5 Mon Sep 17 00:00:00 2001 From: Zhengfei Wang <38847871+zhengfeiwang@users.noreply.github.com> Date: Wed, 13 Mar 2024 11:19:07 +0800 Subject: [PATCH 031/204] [tracing][bugfix] Correctly set or clear experiment test lineage (#2314) # Description This PR targets to fix the wrong Open Telemetry attributes in experiment test, and add some tests. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --- src/promptflow/promptflow/_sdk/_tracing.py | 2 +- .../sdk_cli_test/e2etests/test_experiment.py | 3 +- .../sdk_cli_test/unittests/test_trace.py | 45 ++++++++++++++++++- 3 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/promptflow/promptflow/_sdk/_tracing.py b/src/promptflow/promptflow/_sdk/_tracing.py index 186d5ebcf65..c34a0935bb3 100644 --- a/src/promptflow/promptflow/_sdk/_tracing.py +++ b/src/promptflow/promptflow/_sdk/_tracing.py @@ -177,7 +177,7 @@ def start_trace_with_devkit( ref_line_run_id = env_attrs.get(ContextAttributeKey.REFERENCED_LINE_RUN_ID, None) op_ctx = OperationContext.get_instance() # remove `referenced.line_run_id` from context to avoid stale value set by previous node - if ref_line_run_id: + if ref_line_run_id is None: op_ctx._remove_otel_attributes(SpanAttributeFieldName.REFERENCED_LINE_RUN_ID) else: op_ctx._add_otel_attributes(SpanAttributeFieldName.REFERENCED_LINE_RUN_ID, ref_line_run_id) diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_experiment.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_experiment.py index 1cdfab7b211..6af218f14da 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_experiment.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_experiment.py @@ -204,7 +204,6 @@ def test_cancel_experiment(self): exp = client._experiments.get(exp.name) assert exp.status == ExperimentStatus.TERMINATED - @pytest.mark.skip("This test is not working currently") @pytest.mark.usefixtures("use_secrets_config_file", "recording_injection", "setup_local_connection") def test_flow_test_with_experiment(self, monkeypatch): # set queue size to 1 to make collection faster @@ -253,7 +252,7 @@ def _assert_result(result): time.sleep(10) # TODO fix this line_runs = client._traces.list_line_runs(session_id=session) if len(line_runs) > 0: - assert len(line_runs) > 1 + assert len(line_runs) == 1 line_run = line_runs[0] assert len(line_run.evaluations) == 1, "line run evaluation not exists!" assert "eval_classification_accuracy" == list(line_run.evaluations.values())[0].display_name diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py b/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py index 58d9fe73d79..d1ba717ccea 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py @@ -3,18 +3,28 @@ # --------------------------------------------------------- import base64 +import json import os import uuid from typing import Dict from unittest.mock import patch import pytest +from mock import mock from opentelemetry import trace from opentelemetry.proto.trace.v1.trace_pb2 import Span as PBSpan from opentelemetry.sdk.environment_variables import OTEL_EXPORTER_OTLP_ENDPOINT from opentelemetry.sdk.trace import TracerProvider -from promptflow._constants import SpanResourceAttributesFieldName, SpanResourceFieldName, TraceEnvironmentVariableName +from promptflow._constants import ( + SpanAttributeFieldName, + SpanResourceAttributesFieldName, + SpanResourceFieldName, + TraceEnvironmentVariableName, +) +from promptflow._core.operation_context import OperationContext +from promptflow._sdk._constants import PF_TRACE_CONTEXT, PF_TRACE_CONTEXT_ATTR, ContextAttributeKey +from promptflow._sdk._tracing import start_trace_with_devkit from promptflow._sdk.entities._trace import Span from promptflow.tracing._start_trace import _is_tracer_provider_set, setup_exporter_from_environ @@ -40,6 +50,14 @@ def mock_resource() -> Dict: } +@pytest.fixture +def mock_promptflow_service_invocation(): + """Mock `_invoke_pf_svc` as we don't expect to invoke PFS during unit test.""" + with mock.patch("promptflow._sdk._tracing._invoke_pf_svc") as mock_func: + mock_func.return_value = "23333" + yield + + @pytest.mark.sdk_test @pytest.mark.unittest class TestStartTrace: @@ -103,3 +121,28 @@ def test_trace_without_attributes_collection(self, mock_resource: Dict) -> None: attributes = span._content["attributes"] assert isinstance(attributes, dict) assert len(attributes) == 0 + + def test_experiment_test_lineage(self, monkeypatch: pytest.MonkeyPatch, mock_promptflow_service_invocation) -> None: + # experiment orchestrator will help set this context in environment + referenced_line_run_id = str(uuid.uuid4()) + ctx = {PF_TRACE_CONTEXT_ATTR: {ContextAttributeKey.REFERENCED_LINE_RUN_ID: referenced_line_run_id}} + with monkeypatch.context() as m: + m.setenv(PF_TRACE_CONTEXT, json.dumps(ctx)) + start_trace_with_devkit(session_id=None) + # lineage is stored in context + op_ctx = OperationContext.get_instance() + otel_attrs = op_ctx._get_otel_attributes() + assert otel_attrs[SpanAttributeFieldName.REFERENCED_LINE_RUN_ID] == referenced_line_run_id + + def test_experiment_test_lineage_cleanup( + self, monkeypatch: pytest.MonkeyPatch, mock_promptflow_service_invocation + ) -> None: + # in previous code, context may be set with lineage + op_ctx = OperationContext.get_instance() + op_ctx._add_otel_attributes(SpanAttributeFieldName.REFERENCED_LINE_RUN_ID, str(uuid.uuid4())) + with monkeypatch.context() as m: + m.setenv(PF_TRACE_CONTEXT, json.dumps({PF_TRACE_CONTEXT_ATTR: dict()})) + start_trace_with_devkit(session_id=None) + # lineage will be reset + otel_attrs = op_ctx._get_otel_attributes() + assert SpanAttributeFieldName.REFERENCED_LINE_RUN_ID not in otel_attrs From b6e180e6f7f25e268f66dc6e980cc1027fa4636b Mon Sep 17 00:00:00 2001 From: melionel Date: Wed, 13 Mar 2024 14:02:18 +0800 Subject: [PATCH 032/204] [Internal] add hyper link to pf chatbot in pf docsite (#2324) # Description Add a hyper link point to promptflow chatbot in pf docsite. ![image](https://github.com/microsoft/promptflow/assets/9986857/ebaad79d-a8ee-4ea7-b2ec-24e61f66c758) # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. Co-authored-by: Meng Lan --- scripts/docs/conf.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/docs/conf.py b/scripts/docs/conf.py index a34262a1d00..17531c64bae 100644 --- a/scripts/docs/conf.py +++ b/scripts/docs/conf.py @@ -86,6 +86,11 @@ "url": "https://pypi.org/project/promptflow/", "icon": "fa-solid fa-box", }, + { + "name": "Chat with copilot", + "url": "https://pfcopilot.azurewebsites.net/chat", + "icon": "fa-solid fa-message", + }, ], "logo": { "text": "Prompt flow", From 3b4bbe79926591533247a37cda2f8b122294c6be Mon Sep 17 00:00:00 2001 From: Zhengfei Wang <38847871+zhengfeiwang@users.noreply.github.com> Date: Wed, 13 Mar 2024 14:03:44 +0800 Subject: [PATCH 033/204] [tracing][test] Add UT to guard executor exporter init behavior (#2325) # Description #2309 helps fix a bug introduced before, this PR targets to add some unit tests to guard this. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --- .../sdk_cli_test/unittests/test_trace.py | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py b/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py index d1ba717ccea..4ad92b165d6 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py @@ -26,7 +26,9 @@ from promptflow._sdk._constants import PF_TRACE_CONTEXT, PF_TRACE_CONTEXT_ATTR, ContextAttributeKey from promptflow._sdk._tracing import start_trace_with_devkit from promptflow._sdk.entities._trace import Span -from promptflow.tracing._start_trace import _is_tracer_provider_set, setup_exporter_from_environ +from promptflow.tracing._start_trace import _is_tracer_provider_set, setup_exporter_from_environ, start_trace + +MOCK_PROMPTFLOW_SERVICE_PORT = "23333" @pytest.fixture @@ -54,7 +56,7 @@ def mock_resource() -> Dict: def mock_promptflow_service_invocation(): """Mock `_invoke_pf_svc` as we don't expect to invoke PFS during unit test.""" with mock.patch("promptflow._sdk._tracing._invoke_pf_svc") as mock_func: - mock_func.return_value = "23333" + mock_func.return_value = MOCK_PROMPTFLOW_SERVICE_PORT yield @@ -146,3 +148,23 @@ def test_experiment_test_lineage_cleanup( # lineage will be reset otel_attrs = op_ctx._get_otel_attributes() assert SpanAttributeFieldName.REFERENCED_LINE_RUN_ID not in otel_attrs + + def test_setup_exporter_in_executor(self, monkeypatch: pytest.MonkeyPatch): + with monkeypatch.context() as m: + m.delenv(OTEL_EXPORTER_OTLP_ENDPOINT, raising=False) + setup_exporter_from_environ() + tracer_provider: TracerProvider = trace.get_tracer_provider() + assert len(tracer_provider._active_span_processor._span_processors) == 0 + + def test_setup_exporter_in_executor_with_preview_flag(self, mock_promptflow_service_invocation): + with mock.patch("promptflow._sdk._configuration.Configuration.is_internal_features_enabled") as mock_func: + mock_func.return_value = True + + start_trace() + setup_exporter_from_environ() + tracer_provider: TracerProvider = trace.get_tracer_provider() + assert len(tracer_provider._active_span_processor._span_processors) == 1 + assert ( + tracer_provider._active_span_processor._span_processors[0].span_exporter._endpoint + == f"http://localhost:{MOCK_PROMPTFLOW_SERVICE_PORT}/v1/traces" + ) From 39a9f8c037af61ea0c14d038b80a51b9e39377f4 Mon Sep 17 00:00:00 2001 From: Honglin Date: Wed, 13 Mar 2024 14:13:25 +0800 Subject: [PATCH 034/204] [SDK/CLI] Add chat group poc (#2249) # Description Add chat group sdk poc: ```python from promptflow._sdk.entities._chat_group._chat_group import ChatGroup from promptflow._sdk.entities._chat_group._chat_role import ChatRole copilot = ChatRole( flow=FLOWS_DIR / "chat_group_copilot", role="assistant", inputs=dict( question=topic, model="gpt-3.5-turbo", conversation_history="${parent.conversation_history}", ), ) simulation = ChatRole( flow=FLOWS_DIR / "chat_group_simulation", role="user", inputs=dict( topic=topic, persona="criticizer", conversation_history="${parent.conversation_history}", ), ) chat_group = ChatGroup( roles=[copilot, simulation], max_turns=4, max_tokens=1000, max_time=1000, stop_signal="[STOP]", ) chat_group.invoke() # history has 4 records history = chat_group.conversation_history assert len(history) == 4 assert history[0][0] == history[2][0] == copilot.role assert history[1][0] == history[3][0] == simulation.role ``` # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- src/promptflow/promptflow/_sdk/_constants.py | 8 + src/promptflow/promptflow/_sdk/_errors.py | 18 ++ .../_sdk/entities/_chat_group/__init__.py | 4 + .../_sdk/entities/_chat_group/_chat_group.py | 212 ++++++++++++++++++ .../entities/_chat_group/_chat_group_io.py | 37 +++ .../_sdk/entities/_chat_group/_chat_role.py | 103 +++++++++ .../sdk_cli_test/e2etests/test_chat_group.py | 52 +++++ .../sdk_cli_test/unittests/test_chat_group.py | 62 +++++ .../flows/chat_group_copilot/flow.dag.yaml | 35 +++ .../flows/chat_group_copilot/prompt.jinja2 | 15 ++ .../flows/chat_group_simulation/flow.dag.yaml | 21 ++ .../flows/chat_group_simulation/simulator.py | 12 + .../node_recordings/node_cache.shelve.bak | 2 + .../node_recordings/node_cache.shelve.dat | Bin 353715 -> 358030 bytes .../node_recordings/node_cache.shelve.dir | 2 + 15 files changed, 583 insertions(+) create mode 100644 src/promptflow/promptflow/_sdk/entities/_chat_group/__init__.py create mode 100644 src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_group.py create mode 100644 src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_group_io.py create mode 100644 src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_role.py create mode 100644 src/promptflow/tests/sdk_cli_test/e2etests/test_chat_group.py create mode 100644 src/promptflow/tests/sdk_cli_test/unittests/test_chat_group.py create mode 100644 src/promptflow/tests/test_configs/flows/chat_group_copilot/flow.dag.yaml create mode 100644 src/promptflow/tests/test_configs/flows/chat_group_copilot/prompt.jinja2 create mode 100644 src/promptflow/tests/test_configs/flows/chat_group_simulation/flow.dag.yaml create mode 100644 src/promptflow/tests/test_configs/flows/chat_group_simulation/simulator.py diff --git a/src/promptflow/promptflow/_sdk/_constants.py b/src/promptflow/promptflow/_sdk/_constants.py index 9fd6270d2f1..8b351bd3e0f 100644 --- a/src/promptflow/promptflow/_sdk/_constants.py +++ b/src/promptflow/promptflow/_sdk/_constants.py @@ -151,6 +151,9 @@ def _prepare_home_dir() -> Path: AzureMLWorkspaceTriad = namedtuple("AzureMLWorkspace", ["subscription_id", "resource_group_name", "workspace_name"]) +# chat group +STOP_SIGNAL = "[STOP]" + class RunTypes: BATCH = "batch" @@ -445,6 +448,11 @@ class LineRunFieldName: EVALUATIONS = "evaluations" +class ChatGroupSpeakOrder(str, Enum): + SEQUENTIAL = "sequential" + LLM = "llm" + + TRACE_LIST_DEFAULT_LIMIT = 1000 diff --git a/src/promptflow/promptflow/_sdk/_errors.py b/src/promptflow/promptflow/_sdk/_errors.py index 574ea85e53b..6d35e997c48 100644 --- a/src/promptflow/promptflow/_sdk/_errors.py +++ b/src/promptflow/promptflow/_sdk/_errors.py @@ -209,3 +209,21 @@ class ExperimentCommandRunError(SDKError): """Exception raised if experiment validation failed.""" pass + + +class ChatGroupError(SDKError): + """Exception raised if chat group operation failed.""" + + pass + + +class ChatRoleError(SDKError): + """Exception raised if chat agent operation failed.""" + + pass + + +class UnexpectedAttributeError(SDKError): + """Exception raised if unexpected attribute is found.""" + + pass diff --git a/src/promptflow/promptflow/_sdk/entities/_chat_group/__init__.py b/src/promptflow/promptflow/_sdk/entities/_chat_group/__init__.py new file mode 100644 index 00000000000..1c6a05164f8 --- /dev/null +++ b/src/promptflow/promptflow/_sdk/entities/_chat_group/__init__.py @@ -0,0 +1,4 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore diff --git a/src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_group.py b/src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_group.py new file mode 100644 index 00000000000..45b8024659a --- /dev/null +++ b/src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_group.py @@ -0,0 +1,212 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +import time +from collections import Counter +from itertools import cycle +from typing import Any, Dict, List, Optional + +from promptflow._sdk._constants import STOP_SIGNAL, ChatGroupSpeakOrder +from promptflow._sdk._errors import ChatGroupError +from promptflow._sdk.entities._chat_group._chat_role import ChatRole +from promptflow._utils.logger_utils import get_cli_sdk_logger + +logger = get_cli_sdk_logger() + + +class ChatGroup: + """Chat group entity, can invoke a multi-turn conversation with multiple chat roles. + + :param roles: List of chat roles in the chat group. + :type roles: List[ChatRole] + :param speak_order: Speak order of the chat group. Default to be sequential which is the order of the roles list. + :type speak_order: ChatGroupSpeakOrder + :param max_turns: Maximum turns of the chat group. Default to be None which means no limit. + :type max_turns: Optional[int] + :param max_tokens: Maximum tokens of the chat group. Default to be None which means no limit. + :type max_tokens: Optional[int] + :param max_time: Maximum time of the chat group. Default to be None which means no limit. + :type max_time: Optional[int] + :param stop_signal: Stop signal of the chat group. Default to be "[STOP]". + :type stop_signal: Optional[str] + :param entry_role: Entry role of the chat group. Default to be None which means the first role in the roles list. + Only meaningful when speak order is not sequential. + """ + + def __init__( + self, + roles: List[ChatRole], + speak_order: ChatGroupSpeakOrder = ChatGroupSpeakOrder.SEQUENTIAL, + max_turns: Optional[int] = None, + max_tokens: Optional[int] = None, + max_time: Optional[int] = None, + stop_signal: Optional[str] = STOP_SIGNAL, + entry_role: Optional[ChatRole] = None, + ): + self._roles = roles + self._speak_order = speak_order + self._roles_dict, self._speak_order_list = self._prepare_roles(roles, entry_role, speak_order) + self._max_turns, self._max_tokens, self._max_time = self._validate_int_parameters( + max_turns, max_tokens, max_time + ) + self._stop_signal = stop_signal + self._entry_role = entry_role + self._conversation_history = [] + + @property + def conversation_history(self): + return self._conversation_history + + def _prepare_roles(self, roles: List[ChatRole], entry_role: ChatRole, speak_order: ChatGroupSpeakOrder): + """Prepare roles""" + logger.info("Preparing roles in chat group.") + # check roles is a non-empty list of ChatRole + if not isinstance(roles, list) or len(roles) == 0 or not all(isinstance(role, ChatRole) for role in roles): + raise ChatGroupError(f"Agents should be a non-empty list of ChatRole. Got {roles!r} instead.") + + # check entry_role is in roles + if entry_role is not None and entry_role not in roles: + raise ChatGroupError(f"Entry role {entry_role.role} is not in roles list {roles!r}.") + + # check if there is duplicate role name + role_names = [role.role for role in roles] + if len(role_names) != len(set(role_names)): + counter = Counter(role_names) + duplicate_roles = [role for role in counter if counter[role] > 1] + raise ChatGroupError(f"Duplicate roles are not allowed: {duplicate_roles!r}.") + + speak_order_list = self._get_speak_order(roles, entry_role, speak_order) + roles_dict = {role.role: role for role in roles} + return roles_dict, cycle(speak_order_list) + + def _get_speak_order( + self, roles: List[ChatRole], entry_role: Optional[ChatRole], speak_order: ChatGroupSpeakOrder + ) -> List[str]: + """Calculate speak order""" + if speak_order == ChatGroupSpeakOrder.SEQUENTIAL: + if entry_role: + logger.warn( + f"Entry role {entry_role.role!r} is ignored when speak order is sequential. " + f"The first role in the list will be the entry role: {roles[0].role!r}." + ) + + speak_order_list = [role.role for role in roles] + logger.info(f"Role speak order is {speak_order_list!r}.") + return speak_order_list + else: + raise NotImplementedError(f"Speak order {speak_order.value!r} is not supported yet.") + + @staticmethod + def _validate_int_parameters(max_turns: int, max_tokens: int, max_time: int): + """Validate int parameters""" + logger.debug("Validating integer parameters for chat group.") + if max_turns is not None and not isinstance(max_turns, int): + raise ChatGroupError(f"max_turns should be an integer. Got {type(max_turns)!r} instead.") + if max_tokens is not None and not isinstance(max_tokens, int): + raise ChatGroupError(f"max_tokens should be an integer. Got {type(max_tokens)!r} instead.") + if max_time is not None and not isinstance(max_time, int): + raise ChatGroupError(f"max_time should be an integer. Got {type(max_time)!r} instead.") + + logger.info( + f"Chat group maximum turns: {max_turns!r}, maximum tokens: {max_tokens!r}, maximum time: {max_time!r}." + ) + return max_turns, max_tokens, max_time + + def invoke(self): + """Invoke the chat group""" + logger.info("Invoking chat group.") + + chat_round = 0 + chat_token = 0 + chat_start_time = time.time() + while True: + chat_round += 1 + + # select current role and run + current_role = self._select_role() + logger.info(f"[Round {chat_round}] Chat role {current_role.role!r} is speaking.") + role_input_values = self._get_role_input_values(current_role) + # TODO: Hide flow-invoker and executor log for execution + result = current_role.invoke(**role_input_values) + logger.info(f"[Round {chat_round}] Chat role {current_role.role!r} result: {result!r}.") + + # post process after role's invocation + self._update_information_with_result(current_role, result) + # TODO: Get used token from result and update chat_token + + # check if the chat group should continue + continue_chat = self._check_continue_condition(chat_round, chat_token, chat_start_time) + if not continue_chat: + logger.info( + f"Chat group stops at round {chat_round!r}, token cost {chat_token!r}, " + f"time cost {round(time.time() - chat_start_time, 2)} seconds." + ) + break + + def _select_role(self) -> ChatRole: + """Select next role""" + if self._speak_order == ChatGroupSpeakOrder.LLM: + return self._predict_next_role_with_llm() + next_role_name = next(self._speak_order_list) + return self._roles_dict[next_role_name] + + def _get_role_input_values(self, role: ChatRole) -> Dict[str, Any]: + """Get role input values""" + input_values = {} + for key in role.inputs: + role_input = role.inputs[key] + value = role_input.get("value", None) + # only conversation history binding needs to be processed here, other values are specified when + # initializing the chat role. + if value == "${parent.conversation_history}": + value = self._conversation_history + input_values[key] = value + logger.debug(f"Input values for role {role.role!r}: {input_values!r}") + return input_values + + def _update_information_with_result(self, role: ChatRole, result: dict) -> None: + """Update information with result""" + logger.debug(f"Updating chat group information with result from role {role.role!r}: {result!r}.") + + # 1. update group chat history + self._update_conversation_history(role, result) + + # 2. Update the role output value + for key, value in result.items(): + if key in role.outputs: + role.outputs[key]["value"] = value + + def _update_conversation_history(self, role: ChatRole, result: dict) -> None: + """Update conversation history""" + self._conversation_history.append((role.role, result)) + + def _check_continue_condition(self, chat_round: int, chat_token: int, chat_start_time: float) -> bool: + continue_chat = True + time_cost = time.time() - chat_start_time + + # 1. check if the chat round reaches the maximum + if self._max_turns is not None and chat_round >= self._max_turns: + logger.warn(f"Chat round {chat_round!r} reaches the maximum {self._max_turns!r}.") + continue_chat = False + + # 2. check if the chat token reaches the maximum + if self._max_tokens is not None and chat_token >= self._max_tokens: + logger.warn(f"Chat token {chat_token!r} reaches the maximum {self._max_tokens!r}.") + continue_chat = False + + # 3. check if the chat time reaches the maximum + if self._max_time is not None and time_cost >= self._max_time: + logger.warn(f"Chat time reaches the maximum {self._max_time!r} seconds.") + continue_chat = False + + # TODO: How to apply stop signal since a role can have multiple outputs? + if continue_chat: + logger.info( + f"Chat group continues at round {chat_round!r}, " + f"token cost {chat_token!r}, time cost {round(time_cost, 2)!r} seconds." + ) + return continue_chat + + def _predict_next_role_with_llm(self) -> ChatRole: + """Predict next role for non-deterministic speak order.""" + raise NotImplementedError(f"Speak order {self._speak_order} is not supported yet.") diff --git a/src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_group_io.py b/src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_group_io.py new file mode 100644 index 00000000000..91c96ca333f --- /dev/null +++ b/src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_group_io.py @@ -0,0 +1,37 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +from collections import UserDict +from typing import Any + +from promptflow._sdk._errors import UnexpectedAttributeError + + +class AttrDict(UserDict): + def __init__(self, inputs: dict, **kwargs: Any): + super().__init__(**inputs, **kwargs) + + def __getattr__(self, item: Any): + return self.__getitem__(item) + + def __getitem__(self, item: Any): + if item not in self: + raise UnexpectedAttributeError(f"Invalid attribute {item!r}, expected one of {list(self.keys())}.") + res = super().__getitem__(item) + return res + + +class ChatRoleInputs(AttrDict): + """Chat role inputs""" + + +class ChatRoleOutputs(AttrDict): + """Chat role outputs""" + + +class ChatGroupInputs(AttrDict): + """Chat group inputs""" + + +class ChatGroupOutputs(AttrDict): + """Chat group outputs""" diff --git a/src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_role.py b/src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_role.py new file mode 100644 index 00000000000..f468f9f6967 --- /dev/null +++ b/src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_role.py @@ -0,0 +1,103 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +from os import PathLike +from pathlib import Path +from typing import Dict, Optional, Union + +from promptflow import load_flow +from promptflow._sdk._constants import DAG_FILE_NAME +from promptflow._sdk._errors import ChatRoleError +from promptflow._sdk.entities._chat_group._chat_group_io import ChatRoleInputs, ChatRoleOutputs +from promptflow._utils.logger_utils import get_cli_sdk_logger +from promptflow._utils.yaml_utils import load_yaml + +logger = get_cli_sdk_logger() + + +class ChatRole: + """Chat role entity, used in a chat group to participate in a multi-turn conversation. + + :param flow: Path to the flow file. + :type flow: Union[str, PathLike] + :param role: Role of the chat role. e.g. assistant, user, etc. + :type role: str + :param name: Name of the chat role. If not provided, it will be the flow folder name. + :type name: Optional[str] + :param inputs: Inputs value for the chat role. + :type inputs: Optional[Dict] + """ + + def __init__(self, flow: Union[str, PathLike], role: str, inputs: Optional[Dict] = None, **kwargs): + self._role = role + self._flow, self._flow_object = self._validate_flow(flow) + self._inputs, self._outputs = self._build_role_io(flow, inputs) + logger.info(f"Created chat role {self.role!r} with flow {self._flow.as_posix()!r}") + + @property + def role(self): + """Role of the chat role""" + return self._role + + @property + def inputs(self): + """Inputs of the chat role""" + return self._inputs + + @property + def outputs(self): + """Outputs of the chat role""" + return self._outputs + + def _validate_flow(self, flow: Union[str, PathLike]): + """Validate flow""" + logger.debug(f"Validating chat role flow source {flow!r}") + flow_path = Path(flow).resolve() + try: + flow_object = load_flow(flow_path) + except Exception as e: + raise ChatRoleError(f"Failed to create chat role {self.role!r} due to: {str(e)}.") from e + return flow_path, flow_object + + def _build_role_io(self, flow: Union[str, PathLike], inputs_value: Dict = None): + """Build role io""" + logger.debug(f"Building io for chat role {self.role!r}.") + flow_dict = load_yaml(Path(flow) / DAG_FILE_NAME) + inputs = flow_dict.get("inputs", {}) + for key in inputs: + # fill the inputs with the provided values + # TODO: Shall we check the value type here or leave it to executor? + inputs[key]["value"] = inputs_value.get(key, None) + # current reference is an in-flow reference, not needed here + inputs[key].pop("reference", None) + outputs = flow_dict.get("outputs", {}) + for key in outputs: + # current reference is an in-flow reference, not needed here + outputs[key].pop("reference", None) + + # check for ignored inputs + ignored_keys = set(inputs_value.keys()) - set(inputs.keys()) + if ignored_keys: + logger.warning( + f"Ignoring inputs {ignored_keys!r} for chat role {self.role!r}, " + f"expected one of {list(inputs.keys())!r}." + ) + + # check for missing inputs + missing_keys = [] + for key in inputs: + if inputs[key].get("value") is None and inputs[key].get("default") is None: + missing_keys.append(key) + if missing_keys: + logger.warning( + f"Missing inputs {missing_keys!r} for chat role {self.role!r}. These inputs does not have provided " + f"value or default value." + ) + return ChatRoleInputs(inputs), ChatRoleOutputs(outputs) + + def invoke(self, *args, **kwargs): + """Invoke chat role""" + if args: + raise ChatRoleError(f"Chat role invoke does not accept positional arguments, got {args!r} instead.") + result = self._flow_object(**kwargs) or {} + return result diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_chat_group.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_chat_group.py new file mode 100644 index 00000000000..f303db1dfa2 --- /dev/null +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_chat_group.py @@ -0,0 +1,52 @@ +from pathlib import Path + +import pytest + +from promptflow._sdk.entities._chat_group._chat_group import ChatGroup +from promptflow._sdk.entities._chat_group._chat_role import ChatRole + +PROMOTFLOW_ROOT = Path(__file__) / "../../../.." + +TEST_ROOT = Path(__file__).parent.parent.parent +FLOWS_DIR = TEST_ROOT / "test_configs/flows" + + +@pytest.mark.sdk_test +@pytest.mark.e2etest +@pytest.mark.usefixtures("use_secrets_config_file", "recording_injection", "setup_local_connection") +class TestChatGroup: + def test_chat_group_basic_invoke(self): + topic = "Tell me a joke" + copilot = ChatRole( + flow=FLOWS_DIR / "chat_group_copilot", + role="assistant", + inputs=dict( + question=topic, + model="gpt-3.5-turbo", + conversation_history="${parent.conversation_history}", + ), + ) + simulation = ChatRole( + flow=FLOWS_DIR / "chat_group_simulation", + role="user", + inputs=dict( + topic=topic, + persona="criticizer", + conversation_history="${parent.conversation_history}", + ), + ) + + chat_group = ChatGroup( + roles=[copilot, simulation], + max_turns=4, + max_tokens=1000, + max_time=1000, + stop_signal="[STOP]", + ) + chat_group.invoke() + + # history has 4 records + history = chat_group.conversation_history + assert len(history) == 4 + assert history[0][0] == history[2][0] == copilot.role + assert history[1][0] == history[3][0] == simulation.role diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_chat_group.py b/src/promptflow/tests/sdk_cli_test/unittests/test_chat_group.py new file mode 100644 index 00000000000..7b8ebe7f015 --- /dev/null +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_chat_group.py @@ -0,0 +1,62 @@ +from pathlib import Path + +import pytest +from pytest_mock import MockFixture + +from promptflow._sdk._errors import ChatGroupError, ChatRoleError +from promptflow._sdk.entities._chat_group._chat_group import ChatGroup +from promptflow._sdk.entities._chat_group._chat_role import ChatRole + +PROMOTFLOW_ROOT = Path(__file__) / "../../../.." + +TEST_ROOT = Path(__file__).parent.parent.parent +FLOWS_DIR = TEST_ROOT / "test_configs/flows" + + +@pytest.mark.sdk_test +@pytest.mark.unittest +class TestChatGroup: + def test_chat_role_creation_error(self): + with pytest.raises(ChatRoleError, match=r"Failed to create chat role"): + ChatRole(flow=FLOWS_DIR / "non_existing_flow", role="assistant") + + def test_chat_role_invoke_error(self): + copilot = ChatRole( + flow=FLOWS_DIR / "chat_group_copilot", + role="assistant", + name="copilot", + inputs=dict( + question="Tell me a joke", + model="gpt-3.5-turbo", + conversation_history="${parent.conversation_history}", + ), + ) + with pytest.raises(ChatRoleError, match=r"Chat role invoke does not accept positional arguments"): + copilot.invoke(1) + + def test_chat_group_invalid_parameters(self, mocker: MockFixture): + mocker.patch.object(ChatRole, "_build_role_io", return_value=({}, {})) + copilot = ChatRole(flow=FLOWS_DIR / "chat_group_copilot", role="assistant") + simulation = ChatRole(flow=FLOWS_DIR / "chat_group_simulation", role="user") + simulation_1 = ChatRole(flow=FLOWS_DIR / "chat_group_simulation", role="user") + entry = ChatRole(flow=FLOWS_DIR / "hello-world", role="user2") + + # entry role is not in role list + with pytest.raises(ChatGroupError, match=r"Entry role .*? is not in roles list"): + ChatGroup(roles=[copilot, simulation], entry_role=entry) + + # invalid roles passed in + with pytest.raises(ChatGroupError, match="Agents should be a non-empty list of ChatRole"): + ChatGroup(roles=[1, True]) + + # duplicate roles + with pytest.raises(ChatGroupError, match="Duplicate roles are not allowed"): + ChatGroup(roles=[simulation, simulation_1]) + + # invalid parameters + with pytest.raises(ChatGroupError, match="should be an integer"): + ChatGroup(roles=[copilot, simulation], max_turns="4") + with pytest.raises(ChatGroupError, match="should be an integer"): + ChatGroup(roles=[copilot, simulation], max_tokens="1000") + with pytest.raises(ChatGroupError, match="should be an integer"): + ChatGroup(roles=[copilot, simulation], max_time="1000") diff --git a/src/promptflow/tests/test_configs/flows/chat_group_copilot/flow.dag.yaml b/src/promptflow/tests/test_configs/flows/chat_group_copilot/flow.dag.yaml new file mode 100644 index 00000000000..5fb77a718d3 --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/chat_group_copilot/flow.dag.yaml @@ -0,0 +1,35 @@ +$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Flow.schema.json +inputs: + question: + type: string + default: Tell me a joke. + model: + type: string + default: gpt-3.5-turbo + conversation_history: + type: list +outputs: + output: + type: string + reference: ${llm.output} +nodes: +- name: prompt + type: prompt + inputs: + question: ${inputs.question} + conversation_history: ${inputs.conversation_history} + source: + type: code + path: prompt.jinja2 +- name: llm + type: llm + inputs: + prompt: ${prompt.output} + deployment_name: gpt-35-turbo + model: ${inputs.model} + max_tokens: '120' + source: + type: code + path: prompt.jinja2 + connection: azure_open_ai_connection + api: chat diff --git a/src/promptflow/tests/test_configs/flows/chat_group_copilot/prompt.jinja2 b/src/promptflow/tests/test_configs/flows/chat_group_copilot/prompt.jinja2 new file mode 100644 index 00000000000..92edb67d42f --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/chat_group_copilot/prompt.jinja2 @@ -0,0 +1,15 @@ +system: +You are an assistant that can tell good jokes. + +Here is the initial message from user: +{{question}} + +{% if conversation_history %} +Here is a chat history you had with the user: +{% for item in conversation_history %} +{{item}} +{% endfor %} +{% endif %} + +Now please continue the conversation with the user: +``` \ No newline at end of file diff --git a/src/promptflow/tests/test_configs/flows/chat_group_simulation/flow.dag.yaml b/src/promptflow/tests/test_configs/flows/chat_group_simulation/flow.dag.yaml new file mode 100644 index 00000000000..889edb065df --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/chat_group_simulation/flow.dag.yaml @@ -0,0 +1,21 @@ +inputs: + topic: + type: string + persona: + type: string + conversation_history: + type: list +outputs: + result: + type: string + reference: ${simulator.output} +nodes: +- name: simulator + type: python + source: + type: code + path: simulator.py + inputs: + topic: ${inputs.topic} + persona: ${inputs.persona} + conversation_history: ${inputs.conversation_history} diff --git a/src/promptflow/tests/test_configs/flows/chat_group_simulation/simulator.py b/src/promptflow/tests/test_configs/flows/chat_group_simulation/simulator.py new file mode 100644 index 00000000000..623f5605a81 --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/chat_group_simulation/simulator.py @@ -0,0 +1,12 @@ +from typing import List + +from promptflow import tool + + +@tool +def simulate(topic: str, persona: str, conversation_history: List) -> str: + print(f"topic: {topic}") + print(f"persona: {persona}") + print(f"chat_history: {conversation_history}") + return f"This is not funny, tell me another joke." + diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak index 47b0198f33e..af1063657e1 100644 --- a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak +++ b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak @@ -65,3 +65,5 @@ 'b9bcb73bbe85960e4f492c6b60fd2584de421f91', (348160, 325) '71d8e363eeac4e3334679f505225acd75ef5607b', (348672, 414) 'e86cb445b6fd5c7ac664953d9ff006a4e9285d22', (349184, 4531) +'dbf350596085a5cd5aa1be0709da430507bf06f3', (353792, 1922) +'05a77a24b6a04713e8035183d5bcbe516a7c6201', (355840, 2190) diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dat b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dat index 82a83019b23f5baf4d107b3bcf06f900499dbcc7..26271bb132b297a2b3aad4fdc697aae499e051e6 100644 GIT binary patch delta 2897 zcmeHI-%k`*6lQm^=x9+32=zz3ORYN;q@XP-RuQm*tZsEh84$W$X7BDDn4P<4?!Caa z-Jl6R*oP)|(@c{-nEnaI{sTPq!M~-6Nt^oGGqY$7G0`SXo3!1BotZP|esj+G&N<(s z$8BH#+;)3CwjN(ktT+C+?GX$1?1*3a#u%%O8{KOU8X6j=g(lQzgnEQZ=}1LAMHHus z*l1GBbxBc(JXsV=O!gYaI74Sgq6=O;M>*6bB_<^;GE(qGiD=3EL1QvJSVGw7pkWvp zu|mo&qmmI@c*^lK6A=hLEi+$I-9hrFczbM5E%`l(?G5PT#+HG%EPUSp zEtY|o5?#$HOw*IlnqG~NbJQsFJ_WJSTQ!^eAt0{68j?E+_=b*E8XS}=lUHs0GD!gZMggzR8h_{|fS&ir_ zu^3=R(K=q9twLA2AqvJ7#j-CJB)p%AFgHnq?%?6R#K>9?A|9(kZ-n@P$qkDm+I6gU z58=ppN+OrG8}^7zgok7cpHze%G>j=;A$j4Y6p^;WkXxy+KYT3}p-PnGkYS84nQ{;15Ysm*VCUwQ+-MovZ zFs)1$KILIbwB8=r-wH#%I#E9Iq;~&7Tl2MgZ!Rn{TR}D$Zi=_Xt_R6)6CKTynW#B* zII(aenBN`mYrcu(PgTK+$e*s=pYBM^q}yvhEVZ1wl{T$i$cqw+y3fXAHa!#-bFLoQ zXC|NFv-}oDmdnC?6j}712K2Z1fu@Byu&a;{HfX$MjinnnR=;3!EP8Qkx?FQCrnA+& zs5w?}X{*`Q9BWqEYWB3&bhB#0*H@)i_f+xj#jvGIgXB4^DE(C5l-`4_o113J|3wa@TSIjZQi=DliKJF8uWnF?2Q6ot>Eb`?gEn#2S`aqxs9xGKF$PhCMmAwV1Mkw^}D zQwZ=fMTl1a;{S@E`Yw!RmrIvE7o)P&Ul`!SBdaGbPe3sZ|D+;(iF@F6TX2(ZREohZ zjkm;Hri3R+!6|Y@7_~WxdSfVboD3BrR1=gFPM0IeAVsZY61xumTPiXADwRkeA+A_~ aKPM9K7m7sZrbzIYiNsg`CXq-;-TONQ*Nz?l delta 19 acmeBsE4ul#XhREQ3sVbo3(FSP&8YxV=Le4f diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir index 47b0198f33e..af1063657e1 100644 --- a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir +++ b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir @@ -65,3 +65,5 @@ 'b9bcb73bbe85960e4f492c6b60fd2584de421f91', (348160, 325) '71d8e363eeac4e3334679f505225acd75ef5607b', (348672, 414) 'e86cb445b6fd5c7ac664953d9ff006a4e9285d22', (349184, 4531) +'dbf350596085a5cd5aa1be0709da430507bf06f3', (353792, 1922) +'05a77a24b6a04713e8035183d5bcbe516a7c6201', (355840, 2190) From e4d2cf07888289f1a4b8515ef32b067ceb5d3663 Mon Sep 17 00:00:00 2001 From: Robben Wang <350053002@qq.com> Date: Wed, 13 Mar 2024 14:29:22 +0800 Subject: [PATCH 035/204] Rename display_name to name for UX easier handling (#2326) # Description Rename `display_name` to `name` for UX easier handling. (Let evaluations structure similar to main flow) # All Promptflow Contribution checklist: - [X] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [X] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [X] Title of the pull request is clear and informative. - [X] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [X] Pull request includes test coverage for the included changes. Co-authored-by: robbenwang --- .../promptflow/azure/_storage/cosmosdb/summary.py | 4 ++-- .../tests/sdk_cli_azure_test/unittests/test_summary.py | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/promptflow/promptflow/azure/_storage/cosmosdb/summary.py b/src/promptflow/promptflow/azure/_storage/cosmosdb/summary.py index 74f3c6f8549..42dde3beaf8 100644 --- a/src/promptflow/promptflow/azure/_storage/cosmosdb/summary.py +++ b/src/promptflow/promptflow/azure/_storage/cosmosdb/summary.py @@ -48,7 +48,7 @@ class LineEvaluation: outputs: typing.Dict trace_id: str root_span_id: str - display_name: str + name: str created_by: typing.Dict flow_id: str = None # Only for batch run @@ -153,7 +153,7 @@ def _insert_evaluation(self, client): trace_id=self.span.trace_id, root_span_id=self.span.span_id, outputs=json_loads_parse_const_as_str(attributes[SpanAttributeFieldName.OUTPUT]), - display_name=name, + name=name, created_by=self.created_by, ) if SpanAttributeFieldName.REFERENCED_LINE_RUN_ID in attributes: diff --git a/src/promptflow/tests/sdk_cli_azure_test/unittests/test_summary.py b/src/promptflow/tests/sdk_cli_azure_test/unittests/test_summary.py index 301ca2e9e60..08dbbb1ca71 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/unittests/test_summary.py +++ b/src/promptflow/tests/sdk_cli_azure_test/unittests/test_summary.py @@ -9,8 +9,10 @@ from promptflow.azure._storage.cosmosdb.summary import LineEvaluation, Summary, SummaryLine +@pytest.mark.unittest class TestSummary: FAKE_CREATED_BY = {"oid": "fake_oid"} + FAKE_LOGGER = mock.Mock() @pytest.fixture(autouse=True) def setup_data(self): @@ -32,7 +34,7 @@ def setup_data(self): run="test_run", experiment="test_experiment", ) - self.summary = Summary(test_span, self.FAKE_CREATED_BY) + self.summary = Summary(test_span, self.FAKE_CREATED_BY, self.FAKE_LOGGER) app = Flask(__name__) with app.app_context(): yield @@ -114,7 +116,7 @@ def test_insert_evaluation_line_run_normal(self): trace_id=self.summary.span.trace_id, root_span_id=self.summary.span.span_id, outputs={"output_key": "output_value"}, - display_name=self.summary.span.name, + name=self.summary.span.name, created_by=self.FAKE_CREATED_BY, ) expected_patch_operations = [ @@ -162,7 +164,7 @@ def test_insert_evaluation_batch_run_normal(self): trace_id=self.summary.span.trace_id, root_span_id=self.summary.span.span_id, outputs={"output_key": "output_value"}, - display_name=self.summary.span.name, + name=self.summary.span.name, created_by=self.FAKE_CREATED_BY, ) From 9e9dc8cbc799a1681f58a48331aea3d12caab891 Mon Sep 17 00:00:00 2001 From: Zhengfei Wang <38847871+zhengfeiwang@users.noreply.github.com> Date: Wed, 13 Mar 2024 14:43:05 +0800 Subject: [PATCH 036/204] [tracing] Rename `display_name` to `name` in line run evaluations (#2327) # Description Rename this field to make UX easier to work with line run; will keep both `display_name` and `name` for now to avoid temp breaking, and will remove `display_name` once we get UX bundle updated. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --- .../promptflow/_sdk/entities/_trace.py | 6 +++-- .../tests/sdk_pfs_test/e2etests/test_trace.py | 23 +++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/promptflow/promptflow/_sdk/entities/_trace.py b/src/promptflow/promptflow/_sdk/entities/_trace.py index 045b112b266..ad881827ddc 100644 --- a/src/promptflow/promptflow/_sdk/entities/_trace.py +++ b/src/promptflow/promptflow/_sdk/entities/_trace.py @@ -223,7 +223,8 @@ class _LineRunData: end_time: str status: str latency: float - display_name: str + name: str + display_name: str # rename to `name`, keep this to avoid breaking before UX update kind: str cumulative_token_count: typing.Optional[typing.Dict[str, int]] @@ -256,6 +257,7 @@ def _from_root_span(span: Span) -> "_LineRunData": end_time=end_time.isoformat(), status=span._content[SpanFieldName.STATUS][SpanStatusFieldName.STATUS_CODE], latency=(end_time - start_time).total_seconds(), + name=span.name, display_name=span.name, kind=attributes.get(SpanAttributeFieldName.SPAN_TYPE, span.span_type), cumulative_token_count=cumulative_token_count, @@ -314,7 +316,7 @@ def _from_spans(spans: typing.List[Span]) -> typing.Optional["LineRun"]: end_time=main_line_run_data.end_time, status=main_line_run_data.status, latency=main_line_run_data.latency, - name=main_line_run_data.display_name, + name=main_line_run_data.name, kind=main_line_run_data.kind, cumulative_token_count=main_line_run_data.cumulative_token_count, evaluations=evaluations, diff --git a/src/promptflow/tests/sdk_pfs_test/e2etests/test_trace.py b/src/promptflow/tests/sdk_pfs_test/e2etests/test_trace.py index e245a993f95..af66b180aa1 100644 --- a/src/promptflow/tests/sdk_pfs_test/e2etests/test_trace.py +++ b/src/promptflow/tests/sdk_pfs_test/e2etests/test_trace.py @@ -84,6 +84,29 @@ def test_evaluation_type(self, pfs_op: PFSOperations, mock_session_id: str) -> N line_run = response.json[0] assert isinstance(line_run[LineRunFieldName.EVALUATIONS], dict) + def test_evaluation_name(self, pfs_op: PFSOperations, mock_session_id: str) -> None: + # mock batch run line + mock_batch_run_id = str(uuid.uuid4()) + batch_run_attrs = { + SpanAttributeFieldName.BATCH_RUN_ID: mock_batch_run_id, + SpanAttributeFieldName.LINE_NUMBER: "0", + } + persist_a_span(session_id=mock_session_id, custom_attributes=batch_run_attrs) + # mock eval run line + mock_eval_run_id = str(uuid.uuid4()) + eval_run_attrs = { + SpanAttributeFieldName.BATCH_RUN_ID: mock_eval_run_id, + SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID: mock_batch_run_id, + SpanAttributeFieldName.LINE_NUMBER: "0", + } + persist_a_span(session_id=mock_session_id, custom_attributes=eval_run_attrs) + line_run = pfs_op.list_line_runs(runs=[mock_batch_run_id]).json[0] + assert len(line_run[LineRunFieldName.EVALUATIONS]) == 1 + eval_line_run = list(line_run[LineRunFieldName.EVALUATIONS].values())[0] + assert LineRunFieldName.NAME in eval_line_run + # remove below when we remove display name from line run data dataclass + assert "display_name" in eval_line_run + def test_illegal_json_values(self, pfs_op: PFSOperations, mock_session_id: str) -> None: output_string = json.dumps( { From 6496a221e84c2de14780522b0ce0b33ab6b37b48 Mon Sep 17 00:00:00 2001 From: Zhengfei Wang <38847871+zhengfeiwang@users.noreply.github.com> Date: Wed, 13 Mar 2024 15:00:34 +0800 Subject: [PATCH 037/204] [internal][bugfix] Create a placeholder for still running line runs (#2200) # Description We will ignore those still-running line runs, but when the user runs a time-consuming flow, he cannot see anything until this line run terminated - this is very annoyed. So in this PR, we will create a placeholder for such case, so that user can happily view something, even before the line(s) terminated. **Running traces** ![image](https://github.com/microsoft/promptflow/assets/38847871/53b04da0-2351-4cdf-adaf-93a8dbff823a) **Trace UI url change** The new url will look like `http://localhost:/v1.0/ui/traces/?#run=`, there will be a **#** in the path, which is the way that React/UX route, similar to what we do with `?` in backend. It's not easy to avoid this breaking change, and as 1) we can update the print url 2) tracing is still a private preview feature, so this change shall be acceptable. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --- scripts/compliance-check/user_exclusion.xml | 1 + src/promptflow/promptflow/_constants.py | 1 + src/promptflow/promptflow/_sdk/_orm/trace.py | 128 +- .../promptflow/_sdk/_service/apis/line_run.py | 11 +- .../promptflow/_sdk/_service/apis/ui.py | 17 +- .../promptflow/_sdk/_service/app.py | 5 +- .../_sdk/_service/static/TraceViewPage.min.js | 2222 ----------------- .../_service/static/{ => assets}/favicon.ico | Bin .../_service/static/assets/index-4cTGdARK.js | 1949 +++++++++++++++ .../_service/{templates => static}/index.html | 7 +- src/promptflow/promptflow/_sdk/_tracing.py | 8 +- .../promptflow/_sdk/entities/_trace.py | 91 +- .../_sdk/operations/_trace_operations.py | 170 +- .../tests/sdk_pfs_test/e2etests/test_trace.py | 64 +- 14 files changed, 2275 insertions(+), 2399 deletions(-) delete mode 100644 src/promptflow/promptflow/_sdk/_service/static/TraceViewPage.min.js rename src/promptflow/promptflow/_sdk/_service/static/{ => assets}/favicon.ico (100%) create mode 100644 src/promptflow/promptflow/_sdk/_service/static/assets/index-4cTGdARK.js rename src/promptflow/promptflow/_sdk/_service/{templates => static}/index.html (51%) diff --git a/scripts/compliance-check/user_exclusion.xml b/scripts/compliance-check/user_exclusion.xml index 2733c3cb150..722280eef37 100644 --- a/scripts/compliance-check/user_exclusion.xml +++ b/scripts/compliance-check/user_exclusion.xml @@ -3,4 +3,5 @@ SRC\PROMPTFLOW\PROMPTFLOW\_SDK\_SERVING\STATIC\INDEX.JS .MIN.JS + SRC\PROMPTFLOW\PROMPTFLOW\_SDK\_SERVICE\STATIC\ diff --git a/src/promptflow/promptflow/_constants.py b/src/promptflow/promptflow/_constants.py index 086a18c530f..bba94c0fa2e 100644 --- a/src/promptflow/promptflow/_constants.py +++ b/src/promptflow/promptflow/_constants.py @@ -68,6 +68,7 @@ class AvailableIDE: # trace related OTEL_RESOURCE_SERVICE_NAME = "promptflow" DEFAULT_SPAN_TYPE = "default" +RUNNING_LINE_RUN_STATUS = "Running" class TraceEnvironmentVariableName: diff --git a/src/promptflow/promptflow/_sdk/_orm/trace.py b/src/promptflow/promptflow/_sdk/_orm/trace.py index a42eb1844b5..7a91c4b43ee 100644 --- a/src/promptflow/promptflow/_sdk/_orm/trace.py +++ b/src/promptflow/promptflow/_sdk/_orm/trace.py @@ -70,32 +70,31 @@ def list( stmt = stmt.limit(TRACE_LIST_DEFAULT_LIMIT) return [span for span in stmt.all()] - @staticmethod - def list_with_runs(runs: typing.List[str]) -> typing.List["Span"]: - with trace_mgmt_db_session() as session: - stmt: Query = session.query(Span) - runs_string = "" - for run in runs: - runs_string += f"'{run}'," - runs_string = runs_string[:-1] # remove the last comma - stmt = stmt.filter( - text( - "(parent_span_id is null OR parent_span_id = '') AND " - f"(json_extract(json_extract(span.content, '$.attributes'), '$.batch_run_id') in ({runs_string}) OR " # noqa: E501 - f"json_extract(json_extract(span.content, '$.attributes'), '$.\"referenced.batch_run_id\"') in ({runs_string}))" # noqa: E501 - ) - ) - stmt = stmt.order_by( - Span.trace_id, - text("json_extract(span.content, '$.start_time') asc"), - ) - return [span for span in stmt.all()] - class LineRun: """Line run is an abstraction of spans, which is not persisted in the database.""" @staticmethod + def _group_by_trace_id(stmt: Query) -> typing.List[Span]: + res = list() + current_spans = list() + span: Span + for span in stmt.all(): + if len(current_spans) == 0: + current_spans.append(span) + continue + current_trace_id = current_spans[0].trace_id + if span.trace_id == current_trace_id: + current_spans.append(span) + continue + res.append(copy.deepcopy(current_spans)) + current_spans = [span] + if len(current_spans) > 0: + res.append(copy.deepcopy(current_spans)) + return res + + @staticmethod + @sqlite_retry def list( session_id: typing.Optional[str] = None, experiments: typing.Optional[typing.List[str]] = None, @@ -112,19 +111,74 @@ def list( ) if session_id is None and experiments is None: stmt = stmt.limit(TRACE_LIST_DEFAULT_LIMIT) - line_runs = [] - current_spans: typing.List[Span] = [] - span: Span - for span in stmt.all(): - if len(current_spans) == 0: - current_spans.append(span) - continue - current_trace_id = current_spans[0].trace_id - if span.trace_id == current_trace_id: - current_spans.append(span) - continue - line_runs.append(copy.deepcopy(current_spans)) - current_spans = [span] - if len(current_spans) > 0: - line_runs.append(copy.deepcopy(current_spans)) - return line_runs + return LineRun._group_by_trace_id(stmt) + + @staticmethod + @sqlite_retry + def list_with_runs(runs: typing.List[str]) -> typing.List[Span]: + with trace_mgmt_db_session() as session: + stmt: Query = session.query(Span) + runs_string = "" + for run in runs: + runs_string += f"'{run}'," + runs_string = runs_string[:-1] # remove the last comma + stmt = stmt.filter( + text( + f"(json_extract(json_extract(span.content, '$.attributes'), '$.batch_run_id') in ({runs_string}) OR " # noqa: E501 + f"json_extract(json_extract(span.content, '$.attributes'), '$.\"referenced.batch_run_id\"') in ({runs_string}))" # noqa: E501 + ) + ) + stmt = stmt.order_by( + Span.trace_id, + text("json_extract(span.content, '$.start_time') asc"), + ) + return LineRun._group_by_trace_id(stmt) + + @staticmethod + @sqlite_retry + def get_line_run(line_run_id: str) -> typing.List[Span]: + with trace_mgmt_db_session() as session: + sql = f""" +with trace as +( + select + json_extract(json_extract(span.content, '$.attributes'), '$.line_run_id') as line_run_id, + json_extract(json_extract(span.content, '$.attributes'), '$.batch_run_id') as batch_run_id, + json_extract(json_extract(span.content, '$.attributes'), '$.line_number') as line_number + from span + where trace_id = '{line_run_id}' + limit 1 +) +select name, trace_id, span_id, parent_span_id, span_type, session_id, content, path, run, experiment +from span s +join trace t +where + json_extract(json_extract(s.content, '$.attributes'), '$.line_run_id') = t.line_run_id + or json_extract(json_extract(s.content, '$.attributes'), '$.\"referenced.line_run_id\"') = t.line_run_id + or ( + json_extract(json_extract(s.content, '$.attributes'), '$.batch_run_id') = t.batch_run_id + and json_extract(json_extract(s.content, '$.attributes'), '$.line_number') = t.line_number + ) + or ( + json_extract(json_extract(s.content, '$.attributes'), '$.\"referenced.batch_run_id\"') = t.batch_run_id + and json_extract(json_extract(s.content, '$.attributes'), '$.line_number') = t.line_number + ) +""" + rows = session.execute(text(sql)) + spans = [] + for row in rows: + name, trace_id, span_id, parent_span_id, span_type, session_id, content, path, run, experiment = row + span = Span( + name=name, + trace_id=trace_id, + span_id=span_id, + parent_span_id=parent_span_id, + span_type=span_type, + session_id=session_id, + content=content, + path=path, + run=run, + experiment=experiment, + ) + spans.append(span) + return spans diff --git a/src/promptflow/promptflow/_sdk/_service/apis/line_run.py b/src/promptflow/promptflow/_sdk/_service/apis/line_run.py index 97b4c0a3466..8675d858fda 100644 --- a/src/promptflow/promptflow/_sdk/_service/apis/line_run.py +++ b/src/promptflow/promptflow/_sdk/_service/apis/line_run.py @@ -8,9 +8,10 @@ from flask_restx import fields from promptflow._sdk._constants import PFS_MODEL_DATETIME_FORMAT, CumulativeTokenCountFieldName, LineRunFieldName +from promptflow._sdk._pf_client import PFClient from promptflow._sdk._service import Namespace, Resource from promptflow._sdk._service.utils.utils import get_client_from_request -from promptflow._sdk.entities._trace import LineRun +from promptflow._sdk.entities._trace import LineRun as LineRunEntity api = Namespace("LineRuns", description="Line runs management") @@ -19,6 +20,7 @@ list_line_run_parser.add_argument("session", type=str, required=False) list_line_run_parser.add_argument("run", type=str, required=False) list_line_run_parser.add_argument("experiment", type=str, required=False) +list_line_run_parser.add_argument("trace_ids", type=str, required=False) # use @dataclass for strong type @@ -27,6 +29,7 @@ class ListLineRunParser: session_id: typing.Optional[str] = None runs: typing.Optional[typing.List[str]] = None experiments: typing.Optional[typing.List[str]] = None + trace_ids: typing.Optional[typing.List[str]] = None @staticmethod def _parse_string_list(value: typing.Optional[str]) -> typing.Optional[typing.List[str]]: @@ -41,6 +44,7 @@ def from_request() -> "ListLineRunParser": session_id=args.session, runs=ListLineRunParser._parse_string_list(args.run), experiments=ListLineRunParser._parse_string_list(args.experiment), + trace_ids=ListLineRunParser._parse_string_list(args.trace_ids), ) @@ -79,14 +83,13 @@ class LineRuns(Resource): @api.marshal_list_with(line_run_model) @api.response(code=200, description="Line runs") def get(self): - from promptflow import PFClient - client: PFClient = get_client_from_request() args = ListLineRunParser.from_request() - line_runs: typing.List[LineRun] = client._traces.list_line_runs( + line_runs: typing.List[LineRunEntity] = client._traces.list_line_runs( session_id=args.session_id, runs=args.runs, experiments=args.experiments, + trace_ids=args.trace_ids, ) # order by start_time desc line_runs.sort(key=lambda x: x.start_time, reverse=True) diff --git a/src/promptflow/promptflow/_sdk/_service/apis/ui.py b/src/promptflow/promptflow/_sdk/_service/apis/ui.py index e3fa05eb978..7cbd369e225 100644 --- a/src/promptflow/promptflow/_sdk/_service/apis/ui.py +++ b/src/promptflow/promptflow/_sdk/_service/apis/ui.py @@ -2,17 +2,12 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -from flask import Response, render_template, url_for +import os -from promptflow._sdk._service import Namespace, Resource +from flask import current_app, send_from_directory -api = Namespace("ui", description="UI") - -@api.route("/traces") -class TraceUI(Resource): - def get(self): - return Response( - render_template("index.html", url_for=url_for), - mimetype="text/html", - ) +def serve_trace_ui(path): + if path != "" and os.path.exists(os.path.join(current_app.static_folder, path)): + return send_from_directory(current_app.static_folder, path) + return send_from_directory(current_app.static_folder, "index.html") diff --git a/src/promptflow/promptflow/_sdk/_service/app.py b/src/promptflow/promptflow/_sdk/_service/app.py index 385543ec149..e706dd8ab92 100644 --- a/src/promptflow/promptflow/_sdk/_service/app.py +++ b/src/promptflow/promptflow/_sdk/_service/app.py @@ -24,7 +24,7 @@ from promptflow._sdk._service.apis.run import api as run_api from promptflow._sdk._service.apis.span import api as span_api from promptflow._sdk._service.apis.telemetry import api as telemetry_api -from promptflow._sdk._service.apis.ui import api as ui_api +from promptflow._sdk._service.apis.ui import serve_trace_ui from promptflow._sdk._service.utils.utils import ( FormattedException, get_current_env_pfs_file, @@ -55,6 +55,8 @@ def create_app(): app.add_url_rule( "/v1/traces", view_func=lambda: trace_collector(get_created_by_info_with_cache, app.logger), methods=["POST"] ) + app.add_url_rule("/v1.0/ui/traces/", defaults={"path": ""}, view_func=serve_trace_ui, methods=["GET"]) + app.add_url_rule("/v1.0/ui/traces/", view_func=serve_trace_ui, methods=["GET"]) with app.app_context(): api_v1 = Blueprint("Prompt Flow Service", __name__, url_prefix="/v1.0") @@ -65,7 +67,6 @@ def create_app(): api.add_namespace(telemetry_api) api.add_namespace(span_api) api.add_namespace(line_run_api) - api.add_namespace(ui_api) app.register_blueprint(api_v1) # Disable flask-restx set X-Fields in header. https://flask-restx.readthedocs.io/en/latest/mask.html#usage diff --git a/src/promptflow/promptflow/_sdk/_service/static/TraceViewPage.min.js b/src/promptflow/promptflow/_sdk/_service/static/TraceViewPage.min.js deleted file mode 100644 index 166fb655336..00000000000 --- a/src/promptflow/promptflow/_sdk/_service/static/TraceViewPage.min.js +++ /dev/null @@ -1,2222 +0,0 @@ -(function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode('@layer rdg.MeasuringCell{.m1l09lto7-0-0-beta-39{contain:strict;grid-row:1;visibility:hidden}}@layer rdg.Cell{.c1wupbe7-0-0-beta-39{position:relative;padding-block:0;padding-inline:8px;border-inline-end:1px solid var(--rdg-border-color);border-block-end:1px solid var(--rdg-border-color);grid-row-start:var(--rdg-grid-row-start);background-color:inherit;white-space:nowrap;overflow:clip;text-overflow:ellipsis;outline:none}.c1wupbe7-0-0-beta-39[aria-selected=true]{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.Cell{.cd0kgiy7-0-0-beta-39{position:sticky;z-index:1}}@layer rdg.Cell{.c1730fa47-0-0-beta-39{box-shadow:calc(2px * var(--rdg-sign)) 0 5px -2px #8888884d}}@layer rdg.CheckboxLabel{.c1hs68w07-0-0-beta-39{cursor:pointer;display:flex;align-items:center;justify-content:center;position:absolute;top:0;right:0;bottom:0;left:0;margin-inline-end:1px}}@layer rdg.CheckboxInput{.cojpd0n7-0-0-beta-39{all:unset}}@layer rdg.CheckboxIcon{.cwsfieb7-0-0-beta-39{content:"";inline-size:20px;block-size:20px;border:2px solid var(--rdg-border-color);background-color:var(--rdg-background-color)}.cojpd0n7-0-0-beta-39:checked+.cwsfieb7-0-0-beta-39{background-color:var(--rdg-checkbox-color);outline:4px solid var(--rdg-background-color);outline-offset:-6px}.cojpd0n7-0-0-beta-39:focus+.cwsfieb7-0-0-beta-39{border-color:var(--rdg-checkbox-focus-color)}}@layer rdg.CheckboxLabel{.c1fgadbl7-0-0-beta-39{cursor:default}.c1fgadbl7-0-0-beta-39 .cwsfieb7-0-0-beta-39{border-color:var(--rdg-checkbox-disabled-border-color);background-color:var(--rdg-checkbox-disabled-background-color)}}@layer rdg.GroupCellContent{.g1w3c5217-0-0-beta-39{outline:none}}@layer rdg.GroupCellCaret{.cm5tyhw7-0-0-beta-39{margin-inline-start:4px;stroke:currentColor;stroke-width:1.5px;fill:transparent;vertical-align:middle}.cm5tyhw7-0-0-beta-39>path{transition:d .1s}}@layer rdg.DragHandle{.cadd3bp7-0-0-beta-39{--rdg-drag-handle-size: 8px;z-index:0;cursor:move;inline-size:var(--rdg-drag-handle-size);block-size:var(--rdg-drag-handle-size);background-color:var(--rdg-selection-color);place-self:end}.cadd3bp7-0-0-beta-39:hover{--rdg-drag-handle-size: 16px;border:2px solid var(--rdg-selection-color);background-color:var(--rdg-background-color)}}@layer rdg.DragHandle{.ccmuez27-0-0-beta-39{z-index:1;position:sticky}}@layer rdg.EditCell{.c1tngyp17-0-0-beta-39{padding:0}}@layer rdg.SortableHeaderCell{.hizp7y17-0-0-beta-39{display:flex}}@layer rdg.SortableHeaderCellName{.h14cojrm7-0-0-beta-39{flex-grow:1;overflow:clip;text-overflow:ellipsis}}@layer rdg.HeaderCell{.celq7o97-0-0-beta-39{cursor:pointer}}@layer rdg.HeaderCell{.ceqw94e7-0-0-beta-39{touch-action:none}}@layer rdg.HeaderCell{.r12jy2ca7-0-0-beta-39{cursor:col-resize;position:absolute;inset-block-start:0;inset-inline-end:0;inset-block-end:0;inline-size:10px}}.c1j3os1p7-0-0-beta-39{opacity:.5}.c1ui3nad7-0-0-beta-39{background-color:var(--rdg-header-draggable-background-color)}@layer rdg.Row{.r1otpg647-0-0-beta-39{display:contents;line-height:var(--rdg-row-height);background-color:var(--rdg-background-color)}.r1otpg647-0-0-beta-39:hover{background-color:var(--rdg-row-hover-background-color)}.r1otpg647-0-0-beta-39[aria-selected=true]{background-color:var(--rdg-row-selected-background-color)}.r1otpg647-0-0-beta-39[aria-selected=true]:hover{background-color:var(--rdg-row-selected-hover-background-color)}}@layer rdg.FocusSink{.rel5gk27-0-0-beta-39{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.FocusSink{.r1qymf1z7-0-0-beta-39:before{content:"";display:inline-block;height:100%;position:sticky;inset-inline-start:0;border-inline-start:2px solid var(--rdg-selection-color)}}@layer rdg.HeaderRow{.h197vzie7-0-0-beta-39{display:contents;line-height:var(--rdg-header-row-height);background-color:var(--rdg-header-background-color);font-weight:700}.h197vzie7-0-0-beta-39>.c1wupbe7-0-0-beta-39{z-index:2;position:sticky}.h197vzie7-0-0-beta-39>.cd0kgiy7-0-0-beta-39{z-index:3}}@layer rdg.Cell{.ccpfvsn7-0-0-beta-39{background-color:#ccf}}@layer rdg.Cell{.c1bmg16t7-0-0-beta-39{background-color:#ccf}.c1bmg16t7-0-0-beta-39.ccpfvsn7-0-0-beta-39{background-color:#99f}}@layer rdg.SortIcon{.a1mygwml7-0-0-beta-39{fill:currentColor}.a1mygwml7-0-0-beta-39>path{transition:d .1s}}@layer rdg{@layer Defaults,FocusSink,CheckboxInput,CheckboxIcon,CheckboxLabel,Cell,HeaderCell,SummaryCell,EditCell,Row,HeaderRow,SummaryRow,GroupedRow,Root;@layer Defaults{.r104f42s7-0-0-beta-39 *,.r104f42s7-0-0-beta-39 *:before,.r104f42s7-0-0-beta-39 *:after{box-sizing:inherit}}@layer Root{.r104f42s7-0-0-beta-39{--rdg-color: #000;--rdg-border-color: #ddd;--rdg-summary-border-color: #aaa;--rdg-background-color: hsl(0deg 0% 100%);--rdg-header-background-color: hsl(0deg 0% 97.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 90.5%);--rdg-row-hover-background-color: hsl(0deg 0% 96%);--rdg-row-selected-background-color: hsl(207deg 76% 92%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 88%);--rdg-checkbox-color: hsl(207deg 100% 29%);--rdg-checkbox-focus-color: hsl(207deg 100% 69%);--rdg-checkbox-disabled-border-color: #ccc;--rdg-checkbox-disabled-background-color: #ddd;--rdg-selection-color: #66afe9;--rdg-font-size: 14px;display:grid;color-scheme:var(--rdg-color-scheme, light dark);contain:content;content-visibility:auto;block-size:350px;border:1px solid var(--rdg-border-color);box-sizing:border-box;overflow:auto;background-color:var(--rdg-background-color);color:var(--rdg-color);font-size:var(--rdg-font-size)}.r104f42s7-0-0-beta-39:before{content:"";grid-column:1/-1;grid-row:1/-1}.r104f42s7-0-0-beta-39.rdg-dark{--rdg-color-scheme: dark;--rdg-color: #ddd;--rdg-border-color: #444;--rdg-summary-border-color: #555;--rdg-background-color: hsl(0deg 0% 13%);--rdg-header-background-color: hsl(0deg 0% 10.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 17.5%);--rdg-row-hover-background-color: hsl(0deg 0% 9%);--rdg-row-selected-background-color: hsl(207deg 76% 42%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 38%);--rdg-checkbox-color: hsl(207deg 100% 79%);--rdg-checkbox-focus-color: hsl(207deg 100% 89%);--rdg-checkbox-disabled-border-color: #000;--rdg-checkbox-disabled-background-color: #333}.r104f42s7-0-0-beta-39.rdg-light{--rdg-color-scheme: light}@media (prefers-color-scheme: dark){.r104f42s7-0-0-beta-39:not(.rdg-light){--rdg-color: #ddd;--rdg-border-color: #444;--rdg-summary-border-color: #555;--rdg-background-color: hsl(0deg 0% 13%);--rdg-header-background-color: hsl(0deg 0% 10.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 17.5%);--rdg-row-hover-background-color: hsl(0deg 0% 9%);--rdg-row-selected-background-color: hsl(207deg 76% 42%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 38%);--rdg-checkbox-color: hsl(207deg 100% 79%);--rdg-checkbox-focus-color: hsl(207deg 100% 89%);--rdg-checkbox-disabled-border-color: #000;--rdg-checkbox-disabled-background-color: #333}}}}@layer rdg.Root{.v7ly7s7-0-0-beta-39{-webkit-user-select:none;user-select:none}.v7ly7s7-0-0-beta-39 .r1otpg647-0-0-beta-39{cursor:move}}@layer rdg.FocusSink{.fc4f4zb7-0-0-beta-39{grid-column:1/-1;pointer-events:none;z-index:1}}@layer rdg.FocusSink{.fq51q037-0-0-beta-39{z-index:3}}@layer rdg.SummaryCell{.s1n3hxke7-0-0-beta-39{inset-block-start:var(--rdg-summary-row-top);inset-block-end:var(--rdg-summary-row-bottom)}}@layer rdg.SummaryRow{.snfqesz7-0-0-beta-39{line-height:var(--rdg-summary-row-height)}.snfqesz7-0-0-beta-39>.c1wupbe7-0-0-beta-39{position:sticky}}@layer rdg.SummaryRow{.t1jijrjz7-0-0-beta-39>.c1wupbe7-0-0-beta-39{z-index:2}.t1jijrjz7-0-0-beta-39>.cd0kgiy7-0-0-beta-39{z-index:3}}@layer rdg.SummaryRow{.t14bmecc7-0-0-beta-39>.c1wupbe7-0-0-beta-39{border-block-end:2px solid var(--rdg-summary-border-color)}}@layer rdg.SummaryRow{.b1odhhml7-0-0-beta-39>.c1wupbe7-0-0-beta-39{border-block-start:2px solid var(--rdg-summary-border-color)}}@layer rdg.GroupedRow{.gyxx7e97-0-0-beta-39:not([aria-selected=true]){background-color:var(--rdg-header-background-color)}.gyxx7e97-0-0-beta-39>.c1wupbe7-0-0-beta-39:not(:last-child):not(.c1730fa47-0-0-beta-39){border-inline-end:none}}@layer rdg.TextEditor{.tlmcuo07-0-0-beta-39{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;inline-size:100%;block-size:100%;padding-block:0;padding-inline:6px;border:2px solid #ccc;vertical-align:top;color:var(--rdg-color);background-color:var(--rdg-background-color);font-family:inherit;font-size:var(--rdg-font-size)}.tlmcuo07-0-0-beta-39:focus{border-color:var(--rdg-selection-color);outline:none}.tlmcuo07-0-0-beta-39::placeholder{color:#999;opacity:1}}.json-view{display:block;color:#4d4d4d;text-align:left;--json-property: #009033;--json-index: #676dff;--json-number: #676dff;--json-string: #b2762e;--json-boolean: #dc155e;--json-null: #dc155e}.json-view .json-view--property{color:var(--json-property)}.json-view .json-view--index{color:var(--json-index)}.json-view .json-view--number{color:var(--json-number)}.json-view .json-view--string{color:var(--json-string)}.json-view .json-view--boolean{color:var(--json-boolean)}.json-view .json-view--null{color:var(--json-null)}.json-view .jv-indent{padding-left:1em}.json-view .jv-chevron{display:inline-block;vertical-align:-20%;cursor:pointer;opacity:.4;width:1em;height:1em}:is(.json-view .jv-chevron:hover,.json-view .jv-size:hover+.jv-chevron){opacity:.8}.json-view .jv-size{cursor:pointer;opacity:.4;font-size:.875em;font-style:italic;margin-left:.5em;vertical-align:-5%;line-height:1}.json-view :is(.json-view--copy,.json-view--edit),.json-view .json-view--link svg{display:none;width:1em;height:1em;margin-left:.25em;cursor:pointer}.json-view .json-view--input{width:120px;margin-left:.25em;border-radius:4px;border:1px solid currentColor;padding:0 4px;font-size:87.5%;line-height:1.25;background:transparent}.json-view .json-view--deleting{outline:1px solid #da0000;background-color:#da000011;text-decoration-line:line-through}:is(.json-view:hover,.json-view--pair:hover)>:is(.json-view--copy,.json-view--edit),:is(.json-view:hover,.json-view--pair:hover)>.json-view--link svg{display:inline-block}.json-view .jv-button{background:transparent;outline:none;border:none;cursor:pointer}.json-view .cursor-pointer{cursor:pointer}.json-view svg{vertical-align:-10%}.jv-size-chevron~svg{vertical-align:-16%}.json-view_a11y{color:#545454;--json-property: #aa5d00;--json-index: #007299;--json-number: #007299;--json-string: #008000;--json-boolean: #d91e18;--json-null: #d91e18}.json-view_github{color:#005cc5;--json-property: #005cc5;--json-index: #005cc5;--json-number: #005cc5;--json-string: #032f62;--json-boolean: #005cc5;--json-null: #005cc5}.json-view_vscode{color:#005cc5;--json-property: #0451a5;--json-index: #0000ff;--json-number: #0000ff;--json-string: #a31515;--json-boolean: #0000ff;--json-null: #0000ff}.json-view_atom{color:#383a42;--json-property: #e45649;--json-index: #986801;--json-number: #986801;--json-string: #50a14f;--json-boolean: #0184bc;--json-null: #0184bc}.json-view_winter-is-coming{color:#0431fa;--json-property: #3a9685;--json-index: #ae408b;--json-number: #ae408b;--json-string: #8123a9;--json-boolean: #0184bc;--json-null: #0184bc}:is(.dark .json-view,.dark.json-view){color:#d1d1d1;--json-property: #009033;--json-index: #5d75f2;--json-number: #5d75f2;--json-string: #c57e29;--json-boolean: #e4407b;--json-null: #e4407b}:is(.dark .json-view_a11y,.dark.json-view_a11y){color:#d1d1d1;--json-property: #ffd700;--json-index: #00e0e0;--json-number: #00e0e0;--json-string: #abe338;--json-boolean: #ffa07a;--json-null: #ffa07a}:is(.dark .json-view_github,.dark.json-view_github){color:#79b8ff;--json-property: #79b8ff;--json-index: #79b8ff;--json-number: #79b8ff;--json-string: #9ecbff;--json-boolean: #79b8ff;--json-null: #79b8ff}:is(.dark .json-view_vscode,.dark.json-view_vscode){color:orchid;--json-property: #9cdcfe;--json-index: #b5cea8;--json-number: #b5cea8;--json-string: #ce9178;--json-boolean: #569cd6;--json-null: #569cd6}:is(.dark .json-view_atom,.dark.json-view_atom){color:#abb2bf;--json-property: #e06c75;--json-index: #d19a66;--json-number: #d19a66;--json-string: #98c379;--json-boolean: #56b6c2;--json-null: #56b6c2}:is(.dark .json-view_winter-is-coming,.dark.json-view_winter-is-coming){color:#a7dbf7;--json-property: #91dacd;--json-index: #8dec95;--json-number: #8dec95;--json-string: #e0aff5;--json-boolean: #f29fd8;--json-null: #f29fd8}.json-view .json-view--string{word-break:break-all}')),document.head.appendChild(o)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); -var iR=Object.defineProperty;var aR=(zp,$f,Hp)=>$f in zp?iR(zp,$f,{enumerable:!0,configurable:!0,writable:!0,value:Hp}):zp[$f]=Hp;var Cn=(zp,$f,Hp)=>(aR(zp,typeof $f!="symbol"?$f+"":$f,Hp),Hp);(function(){"use strict";function _mergeNamespaces(S,C){for(var R=0;RO[I]})}}}return Object.freeze(Object.defineProperty(S,Symbol.toStringTag,{value:"Module"}))}var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(S){return S&&S.__esModule&&Object.prototype.hasOwnProperty.call(S,"default")?S.default:S}var jsxRuntime$1={exports:{}},reactJsxRuntime_development={},react={exports:{}},react_development={exports:{}};react_development.exports;var hasRequiredReact_development;function requireReact_development(){return hasRequiredReact_development||(hasRequiredReact_development=1,function(S,C){var R={};/** - * @license React - * react.development.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */R.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var O="18.2.0",I=Symbol.for("react.element"),N=Symbol.for("react.portal"),L=Symbol.for("react.fragment"),B=Symbol.for("react.strict_mode"),j=Symbol.for("react.profiler"),F=Symbol.for("react.provider"),V=Symbol.for("react.context"),K=Symbol.for("react.forward_ref"),W=Symbol.for("react.suspense"),X=Symbol.for("react.suspense_list"),J=Symbol.for("react.memo"),oe=Symbol.for("react.lazy"),pe=Symbol.for("react.offscreen"),me=Symbol.iterator,xe="@@iterator";function Ae(Et){if(Et===null||typeof Et!="object")return null;var Zt=me&&Et[me]||Et[xe];return typeof Zt=="function"?Zt:null}var ge={current:null},Te={transition:null},we={current:null,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1},ke={current:null},Be={},Ie=null;function je(Et){Ie=Et}Be.setExtraStackFrame=function(Et){Ie=Et},Be.getCurrentStack=null,Be.getStackAddendum=function(){var Et="";Ie&&(Et+=Ie);var Zt=Be.getCurrentStack;return Zt&&(Et+=Zt()||""),Et};var Ke=!1,Je=!1,Xe=!1,ot=!1,tt=!1,Ue={ReactCurrentDispatcher:ge,ReactCurrentBatchConfig:Te,ReactCurrentOwner:ke};Ue.ReactDebugCurrentFrame=Be,Ue.ReactCurrentActQueue=we;function et(Et){{for(var Zt=arguments.length,$r=new Array(Zt>1?Zt-1:0),Nr=1;Nr1?Zt-1:0),Nr=1;Nr1){for(var Uo=Array(Pi),Wi=0;Wi1){for(var si=Array(Wi),fa=0;fa is not supported and will be removed in a future major release. Did you mean to render instead?")),Zt.Provider},set:function(Pn){Zt.Provider=Pn}},_currentValue:{get:function(){return Zt._currentValue},set:function(Pn){Zt._currentValue=Pn}},_currentValue2:{get:function(){return Zt._currentValue2},set:function(Pn){Zt._currentValue2=Pn}},_threadCount:{get:function(){return Zt._threadCount},set:function(Pn){Zt._threadCount=Pn}},Consumer:{get:function(){return $r||($r=!0,dt("Rendering is not supported and will be removed in a future major release. Did you mean to render instead?")),Zt.Consumer}},displayName:{get:function(){return Zt.displayName},set:function(Pn){mn||(et("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.",Pn),mn=!0)}}}),Zt.Consumer=Xn}return Zt._currentRenderer=null,Zt._currentRenderer2=null,Zt}var vi=-1,ca=0,Go=1,di=2;function Qi(Et){if(Et._status===vi){var Zt=Et._result,$r=Zt();if($r.then(function(Xn){if(Et._status===ca||Et._status===vi){var Pn=Et;Pn._status=Go,Pn._result=Xn}},function(Xn){if(Et._status===ca||Et._status===vi){var Pn=Et;Pn._status=di,Pn._result=Xn}}),Et._status===vi){var Nr=Et;Nr._status=ca,Nr._result=$r}}if(Et._status===Go){var mn=Et._result;return mn===void 0&&dt(`lazy: Expected the result of a dynamic import() call. Instead received: %s - -Your code should look like: - const MyComponent = lazy(() => import('./MyComponent')) - -Did you accidentally put curly braces around the import?`,mn),"default"in mn||dt(`lazy: Expected the result of a dynamic import() call. Instead received: %s - -Your code should look like: - const MyComponent = lazy(() => import('./MyComponent'))`,mn),mn.default}else throw Et._result}function Oa(Et){var Zt={_status:vi,_result:Et},$r={$$typeof:oe,_payload:Zt,_init:Qi};{var Nr,mn;Object.defineProperties($r,{defaultProps:{configurable:!0,get:function(){return Nr},set:function(Xn){dt("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),Nr=Xn,Object.defineProperty($r,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return mn},set:function(Xn){dt("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),mn=Xn,Object.defineProperty($r,"propTypes",{enumerable:!0})}}})}return $r}function gs(Et){Et!=null&&Et.$$typeof===J?dt("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof Et!="function"?dt("forwardRef requires a render function but was given %s.",Et===null?"null":typeof Et):Et.length!==0&&Et.length!==2&&dt("forwardRef render functions accept exactly two parameters: props and ref. %s",Et.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),Et!=null&&(Et.defaultProps!=null||Et.propTypes!=null)&&dt("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?");var Zt={$$typeof:K,render:Et};{var $r;Object.defineProperty(Zt,"displayName",{enumerable:!1,configurable:!0,get:function(){return $r},set:function(Nr){$r=Nr,!Et.name&&!Et.displayName&&(Et.displayName=Nr)}})}return Zt}var Dt;Dt=Symbol.for("react.module.reference");function St(Et){return!!(typeof Et=="string"||typeof Et=="function"||Et===L||Et===j||tt||Et===B||Et===W||Et===X||ot||Et===pe||Ke||Je||Xe||typeof Et=="object"&&Et!==null&&(Et.$$typeof===oe||Et.$$typeof===J||Et.$$typeof===F||Et.$$typeof===V||Et.$$typeof===K||Et.$$typeof===Dt||Et.getModuleId!==void 0))}function wt(Et,Zt){St(Et)||dt("memo: The first argument must be a component. Instead received: %s",Et===null?"null":typeof Et);var $r={$$typeof:J,type:Et,compare:Zt===void 0?null:Zt};{var Nr;Object.defineProperty($r,"displayName",{enumerable:!1,configurable:!0,get:function(){return Nr},set:function(mn){Nr=mn,!Et.name&&!Et.displayName&&(Et.displayName=mn)}})}return $r}function yt(){var Et=ge.current;return Et===null&&dt(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: -1. You might have mismatching versions of React and the renderer (such as React DOM) -2. You might be breaking the Rules of Hooks -3. You might have more than one copy of React in the same app -See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.`),Et}function Rt(Et){var Zt=yt();if(Et._context!==void 0){var $r=Et._context;$r.Consumer===Et?dt("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):$r.Provider===Et&&dt("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return Zt.useContext(Et)}function Nt(Et){var Zt=yt();return Zt.useState(Et)}function Yt(Et,Zt,$r){var Nr=yt();return Nr.useReducer(Et,Zt,$r)}function lr(Et){var Zt=yt();return Zt.useRef(Et)}function vr(Et,Zt){var $r=yt();return $r.useEffect(Et,Zt)}function Qt(Et,Zt){var $r=yt();return $r.useInsertionEffect(Et,Zt)}function Ar(Et,Zt){var $r=yt();return $r.useLayoutEffect(Et,Zt)}function un(Et,Zt){var $r=yt();return $r.useCallback(Et,Zt)}function po(Et,Zt){var $r=yt();return $r.useMemo(Et,Zt)}function In(Et,Zt,$r){var Nr=yt();return Nr.useImperativeHandle(Et,Zt,$r)}function xo(Et,Zt){{var $r=yt();return $r.useDebugValue(Et,Zt)}}function Vn(){var Et=yt();return Et.useTransition()}function Ro(Et){var Zt=yt();return Zt.useDeferredValue(Et)}function Nn(){var Et=yt();return Et.useId()}function so(Et,Zt,$r){var Nr=yt();return Nr.useSyncExternalStore(Et,Zt,$r)}var Ei=0,Ji,mi,ks,Li,hl,Is,ea;function fi(){}fi.__reactDisabledLog=!0;function aa(){{if(Ei===0){Ji=console.log,mi=console.info,ks=console.warn,Li=console.error,hl=console.group,Is=console.groupCollapsed,ea=console.groupEnd;var Et={configurable:!0,enumerable:!0,value:fi,writable:!0};Object.defineProperties(console,{info:Et,log:Et,warn:Et,error:Et,group:Et,groupCollapsed:Et,groupEnd:Et})}Ei++}}function ta(){{if(Ei--,Ei===0){var Et={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Ct({},Et,{value:Ji}),info:Ct({},Et,{value:mi}),warn:Ct({},Et,{value:ks}),error:Ct({},Et,{value:Li}),group:Ct({},Et,{value:hl}),groupCollapsed:Ct({},Et,{value:Is}),groupEnd:Ct({},Et,{value:ea})})}Ei<0&&dt("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var $a=Ue.ReactCurrentDispatcher,ii;function ts(Et,Zt,$r){{if(ii===void 0)try{throw Error()}catch(mn){var Nr=mn.stack.trim().match(/\n( *(at )?)/);ii=Nr&&Nr[1]||""}return` -`+ii+Et}}var as=!1,Ns;{var Ds=typeof WeakMap=="function"?WeakMap:Map;Ns=new Ds}function ga(Et,Zt){if(!Et||as)return"";{var $r=Ns.get(Et);if($r!==void 0)return $r}var Nr;as=!0;var mn=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var Xn;Xn=$a.current,$a.current=null,aa();try{if(Zt){var Pn=function(){throw Error()};if(Object.defineProperty(Pn.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Pn,[])}catch(gi){Nr=gi}Reflect.construct(Et,[],Pn)}else{try{Pn.call()}catch(gi){Nr=gi}Et.call(Pn.prototype)}}else{try{throw Error()}catch(gi){Nr=gi}Et()}}catch(gi){if(gi&&Nr&&typeof gi.stack=="string"){for(var Io=gi.stack.split(` -`),Jo=Nr.stack.split(` -`),Pi=Io.length-1,Uo=Jo.length-1;Pi>=1&&Uo>=0&&Io[Pi]!==Jo[Uo];)Uo--;for(;Pi>=1&&Uo>=0;Pi--,Uo--)if(Io[Pi]!==Jo[Uo]){if(Pi!==1||Uo!==1)do if(Pi--,Uo--,Uo<0||Io[Pi]!==Jo[Uo]){var Wi=` -`+Io[Pi].replace(" at new "," at ");return Et.displayName&&Wi.includes("")&&(Wi=Wi.replace("",Et.displayName)),typeof Et=="function"&&Ns.set(Et,Wi),Wi}while(Pi>=1&&Uo>=0);break}}}finally{as=!1,$a.current=Xn,ta(),Error.prepareStackTrace=mn}var si=Et?Et.displayName||Et.name:"",fa=si?ts(si):"";return typeof Et=="function"&&Ns.set(Et,fa),fa}function vs(Et,Zt,$r){return ga(Et,!1)}function Xl(Et){var Zt=Et.prototype;return!!(Zt&&Zt.isReactComponent)}function Qn(Et,Zt,$r){if(Et==null)return"";if(typeof Et=="function")return ga(Et,Xl(Et));if(typeof Et=="string")return ts(Et);switch(Et){case W:return ts("Suspense");case X:return ts("SuspenseList")}if(typeof Et=="object")switch(Et.$$typeof){case K:return vs(Et.render);case J:return Qn(Et.type,Zt,$r);case oe:{var Nr=Et,mn=Nr._payload,Xn=Nr._init;try{return Qn(Xn(mn),Zt,$r)}catch{}}}return""}var va={},ma=Ue.ReactDebugCurrentFrame;function Ys(Et){if(Et){var Zt=Et._owner,$r=Qn(Et.type,Et._source,Zt?Zt.type:null);ma.setExtraStackFrame($r)}else ma.setExtraStackFrame(null)}function Ms(Et,Zt,$r,Nr,mn){{var Xn=Function.call.bind(pn);for(var Pn in Et)if(Xn(Et,Pn)){var Io=void 0;try{if(typeof Et[Pn]!="function"){var Jo=Error((Nr||"React class")+": "+$r+" type `"+Pn+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof Et[Pn]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw Jo.name="Invariant Violation",Jo}Io=Et[Pn](Zt,Pn,Nr,$r,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(Pi){Io=Pi}Io&&!(Io instanceof Error)&&(Ys(mn),dt("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",Nr||"React class",$r,Pn,typeof Io),Ys(null)),Io instanceof Error&&!(Io.message in va)&&(va[Io.message]=!0,Ys(mn),dt("Failed %s type: %s",$r,Io.message),Ys(null))}}}function Qo(Et){if(Et){var Zt=Et._owner,$r=Qn(Et.type,Et._source,Zt?Zt.type:null);je($r)}else je(null)}var Ls;Ls=!1;function Ol(){if(ke.current){var Et=Tn(ke.current.type);if(Et)return` - -Check the render method of \``+Et+"`."}return""}function qn(Et){if(Et!==void 0){var Zt=Et.fileName.replace(/^.*[\\\/]/,""),$r=Et.lineNumber;return` - -Check your code at `+Zt+":"+$r+"."}return""}function Xs(Et){return Et!=null?qn(Et.__source):""}var yi={};function Zs(Et){var Zt=Ol();if(!Zt){var $r=typeof Et=="string"?Et:Et.displayName||Et.name;$r&&(Zt=` - -Check the top-level render call using <`+$r+">.")}return Zt}function Ya(Et,Zt){if(!(!Et._store||Et._store.validated||Et.key!=null)){Et._store.validated=!0;var $r=Zs(Zt);if(!yi[$r]){yi[$r]=!0;var Nr="";Et&&Et._owner&&Et._owner!==ke.current&&(Nr=" It was passed a child from "+Tn(Et._owner.type)+"."),Qo(Et),dt('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',$r,Nr),Qo(null)}}}function Zl(Et,Zt){if(typeof Et=="object"){if(tr(Et))for(var $r=0;$r",mn=" Did you accidentally export a JSX literal instead of a component?"):Pn=typeof Et,dt("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",Pn,mn)}var Io=Or.apply(this,arguments);if(Io==null)return Io;if(Nr)for(var Jo=2;Jo10&&et("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."),Nr._updatedFibers.clear()}}}var So=!1,To=null;function Kn(Et){if(To===null)try{var Zt=("require"+Math.random()).slice(0,7),$r=S&&S[Zt];To=$r.call(S,"timers").setImmediate}catch{To=function(mn){So===!1&&(So=!0,typeof MessageChannel>"u"&&dt("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var Xn=new MessageChannel;Xn.port1.onmessage=mn,Xn.port2.postMessage(void 0)}}return To(Et)}var zn=0,ai=!1;function wi(Et){{var Zt=zn;zn++,we.current===null&&(we.current=[]);var $r=we.isBatchingLegacy,Nr;try{if(we.isBatchingLegacy=!0,Nr=Et(),!$r&&we.didScheduleLegacyUpdate){var mn=we.current;mn!==null&&(we.didScheduleLegacyUpdate=!1,Ql(mn))}}catch(si){throw ra(Zt),si}finally{we.isBatchingLegacy=$r}if(Nr!==null&&typeof Nr=="object"&&typeof Nr.then=="function"){var Xn=Nr,Pn=!1,Io={then:function(si,fa){Pn=!0,Xn.then(function(gi){ra(Zt),zn===0?rs(gi,si,fa):si(gi)},function(gi){ra(Zt),fa(gi)})}};return!ai&&typeof Promise<"u"&&Promise.resolve().then(function(){}).then(function(){Pn||(ai=!0,dt("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),Io}else{var Jo=Nr;if(ra(Zt),zn===0){var Pi=we.current;Pi!==null&&(Ql(Pi),we.current=null);var Uo={then:function(si,fa){we.current===null?(we.current=[],rs(Jo,si,fa)):si(Jo)}};return Uo}else{var Wi={then:function(si,fa){si(Jo)}};return Wi}}}}function ra(Et){Et!==zn-1&&dt("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "),zn=Et}function rs(Et,Zt,$r){{var Nr=we.current;if(Nr!==null)try{Ql(Nr),Kn(function(){Nr.length===0?(we.current=null,Zt(Et)):rs(Et,Zt,$r)})}catch(mn){$r(mn)}else Zt(Et)}}var Xa=!1;function Ql(Et){if(!Xa){Xa=!0;var Zt=0;try{for(;Zt1?St-1:0),yt=1;yt=1&&Ar>=0&&lr[Qt]!==vr[Ar];)Ar--;for(;Qt>=1&&Ar>=0;Qt--,Ar--)if(lr[Qt]!==vr[Ar]){if(Qt!==1||Ar!==1)do if(Qt--,Ar--,Ar<0||lr[Qt]!==vr[Ar]){var un=` -`+lr[Qt].replace(" at new "," at ");return Dt.displayName&&un.includes("")&&(un=un.replace("",Dt.displayName)),typeof Dt=="function"&&Ht.set(Dt,un),un}while(Qt>=1&&Ar>=0);break}}}finally{It=!1,Pt.current=Nt,Gt(),Error.prepareStackTrace=Rt}var po=Dt?Dt.displayName||Dt.name:"",In=po?bt(po):"";return typeof Dt=="function"&&Ht.set(Dt,In),In}function tr(Dt,St,wt){return Kt(Dt,!1)}function wr(Dt){var St=Dt.prototype;return!!(St&&St.isReactComponent)}function xr(Dt,St,wt){if(Dt==null)return"";if(typeof Dt=="function")return Kt(Dt,wr(Dt));if(typeof Dt=="string")return bt(Dt);switch(Dt){case V:return bt("Suspense");case K:return bt("SuspenseList")}if(typeof Dt=="object")switch(Dt.$$typeof){case F:return tr(Dt.render);case W:return xr(Dt.type,St,wt);case X:{var yt=Dt,Rt=yt._payload,Nt=yt._init;try{return xr(Nt(Rt),St,wt)}catch{}}}return""}var Vr=Object.prototype.hasOwnProperty,bn={},Bn=xe.ReactDebugCurrentFrame;function An(Dt){if(Dt){var St=Dt._owner,wt=xr(Dt.type,Dt._source,St?St.type:null);Bn.setExtraStackFrame(wt)}else Bn.setExtraStackFrame(null)}function Tn(Dt,St,wt,yt,Rt){{var Nt=Function.call.bind(Vr);for(var Yt in Dt)if(Nt(Dt,Yt)){var lr=void 0;try{if(typeof Dt[Yt]!="function"){var vr=Error((yt||"React class")+": "+wt+" type `"+Yt+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof Dt[Yt]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw vr.name="Invariant Violation",vr}lr=Dt[Yt](St,Yt,yt,wt,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(Qt){lr=Qt}lr&&!(lr instanceof Error)&&(An(Rt),Ae("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",yt||"React class",wt,Yt,typeof lr),An(null)),lr instanceof Error&&!(lr.message in bn)&&(bn[lr.message]=!0,An(Rt),Ae("Failed %s type: %s",wt,lr.message),An(null))}}}var pn=Array.isArray;function Mn(Dt){return pn(Dt)}function bo(Dt){{var St=typeof Symbol=="function"&&Symbol.toStringTag,wt=St&&Dt[Symbol.toStringTag]||Dt.constructor.name||"Object";return wt}}function mr(Dt){try{return sr(Dt),!1}catch{return!0}}function sr(Dt){return""+Dt}function Ut(Dt){if(mr(Dt))return Ae("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",bo(Dt)),sr(Dt)}var nr=xe.ReactCurrentOwner,Ir={key:!0,ref:!0,__self:!0,__source:!0},jr,Rr,fr;fr={};function Or(Dt){if(Vr.call(Dt,"ref")){var St=Object.getOwnPropertyDescriptor(Dt,"ref").get;if(St&&St.isReactWarning)return!1}return Dt.ref!==void 0}function Jr(Dt){if(Vr.call(Dt,"key")){var St=Object.getOwnPropertyDescriptor(Dt,"key").get;if(St&&St.isReactWarning)return!1}return Dt.key!==void 0}function nn(Dt,St){if(typeof Dt.ref=="string"&&nr.current&&St&&nr.current.stateNode!==St){var wt=ot(nr.current.type);fr[wt]||(Ae('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',ot(nr.current.type),Dt.ref),fr[wt]=!0)}}function hn(Dt,St){{var wt=function(){jr||(jr=!0,Ae("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",St))};wt.isReactWarning=!0,Object.defineProperty(Dt,"key",{get:wt,configurable:!0})}}function Gn(Dt,St){{var wt=function(){Rr||(Rr=!0,Ae("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",St))};wt.isReactWarning=!0,Object.defineProperty(Dt,"ref",{get:wt,configurable:!0})}}var Zn=function(Dt,St,wt,yt,Rt,Nt,Yt){var lr={$$typeof:R,type:Dt,key:St,ref:wt,props:Yt,_owner:Nt};return lr._store={},Object.defineProperty(lr._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(lr,"_self",{configurable:!1,enumerable:!1,writable:!1,value:yt}),Object.defineProperty(lr,"_source",{configurable:!1,enumerable:!1,writable:!1,value:Rt}),Object.freeze&&(Object.freeze(lr.props),Object.freeze(lr)),lr};function Eo(Dt,St,wt,yt,Rt){{var Nt,Yt={},lr=null,vr=null;wt!==void 0&&(Ut(wt),lr=""+wt),Jr(St)&&(Ut(St.key),lr=""+St.key),Or(St)&&(vr=St.ref,nn(St,Rt));for(Nt in St)Vr.call(St,Nt)&&!Ir.hasOwnProperty(Nt)&&(Yt[Nt]=St[Nt]);if(Dt&&Dt.defaultProps){var Qt=Dt.defaultProps;for(Nt in Qt)Yt[Nt]===void 0&&(Yt[Nt]=Qt[Nt])}if(lr||vr){var Ar=typeof Dt=="function"?Dt.displayName||Dt.name||"Unknown":Dt;lr&&hn(Yt,Ar),vr&&Gn(Yt,Ar)}return Zn(Dt,lr,vr,Rt,yt,nr.current,Yt)}}var vo=xe.ReactCurrentOwner,Fo=xe.ReactDebugCurrentFrame;function Ln(Dt){if(Dt){var St=Dt._owner,wt=xr(Dt.type,Dt._source,St?St.type:null);Fo.setExtraStackFrame(wt)}else Fo.setExtraStackFrame(null)}var xn;xn=!1;function Ko(Dt){return typeof Dt=="object"&&Dt!==null&&Dt.$$typeof===R}function ao(){{if(vo.current){var Dt=ot(vo.current.type);if(Dt)return` - -Check the render method of \``+Dt+"`."}return""}}function zo(Dt){{if(Dt!==void 0){var St=Dt.fileName.replace(/^.*[\\\/]/,""),wt=Dt.lineNumber;return` - -Check your code at `+St+":"+wt+"."}return""}}var fo={};function Wn(Dt){{var St=ao();if(!St){var wt=typeof Dt=="string"?Dt:Dt.displayName||Dt.name;wt&&(St=` - -Check the top-level render call using <`+wt+">.")}return St}}function wn(Dt,St){{if(!Dt._store||Dt._store.validated||Dt.key!=null)return;Dt._store.validated=!0;var wt=Wn(St);if(fo[wt])return;fo[wt]=!0;var yt="";Dt&&Dt._owner&&Dt._owner!==vo.current&&(yt=" It was passed a child from "+ot(Dt._owner.type)+"."),Ln(Dt),Ae('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',wt,yt),Ln(null)}}function cn(Dt,St){{if(typeof Dt!="object")return;if(Mn(Dt))for(var wt=0;wt",lr=" Did you accidentally export a JSX literal instead of a component?"):Qt=typeof Dt,Ae("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",Qt,lr)}var Ar=Eo(Dt,St,wt,Rt,Nt);if(Ar==null)return Ar;if(Yt){var un=St.children;if(un!==void 0)if(yt)if(Mn(un)){for(var po=0;po0;){var hn=nn-1>>>1,Gn=fr[hn];if(V(Gn,Or)>0)fr[hn]=Or,fr[nn]=Gn,nn=hn;else return}}function F(fr,Or,Jr){for(var nn=Jr,hn=fr.length,Gn=hn>>>1;nnJr&&(!fr||An()));){var nn=ot.callback;if(typeof nn=="function"){ot.callback=null,tt=ot.priorityLevel;var hn=ot.expirationTime<=Jr,Gn=nn(hn);Jr=S.unstable_now(),typeof Gn=="function"?ot.callback=Gn:ot===L(Ke)&&B(Ke),ht(Jr)}else B(Ke);ot=L(Ke)}if(ot!==null)return!0;var Zn=L(Je);return Zn!==null&&nr(Ct,Zn.startTime-Jr),!1}function Gt(fr,Or){switch(fr){case K:case W:case X:case J:case oe:break;default:fr=X}var Jr=tt;tt=fr;try{return Or()}finally{tt=Jr}}function Pt(fr){var Or;switch(tt){case K:case W:case X:Or=X;break;default:Or=tt;break}var Jr=tt;tt=Or;try{return fr()}finally{tt=Jr}}function Vt(fr){var Or=tt;return function(){var Jr=tt;tt=Or;try{return fr.apply(this,arguments)}finally{tt=Jr}}}function bt(fr,Or,Jr){var nn=S.unstable_now(),hn;if(typeof Jr=="object"&&Jr!==null){var Gn=Jr.delay;typeof Gn=="number"&&Gn>0?hn=nn+Gn:hn=nn}else hn=nn;var Zn;switch(fr){case K:Zn=we;break;case W:Zn=ke;break;case oe:Zn=je;break;case J:Zn=Ie;break;case X:default:Zn=Be;break}var Eo=hn+Zn,vo={id:Xe++,callback:Or,priorityLevel:fr,startTime:hn,expirationTime:Eo,sortIndex:-1};return hn>nn?(vo.sortIndex=hn,N(Je,vo),L(Ke)===null&&vo===L(Je)&&(dt?Ir():dt=!0,nr(Ct,hn-nn))):(vo.sortIndex=Eo,N(Ke,vo),!et&&!Ue&&(et=!0,Ut($t))),vo}function It(){}function Ht(){!et&&!Ue&&(et=!0,Ut($t))}function kt(){return L(Ke)}function Kt(fr){fr.callback=null}function tr(){return tt}var wr=!1,xr=null,Vr=-1,bn=I,Bn=-1;function An(){var fr=S.unstable_now()-Bn;return!(fr125){console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported");return}fr>0?bn=Math.floor(1e3/fr):bn=I}var Mn=function(){if(xr!==null){var fr=S.unstable_now();Bn=fr;var Or=!0,Jr=!0;try{Jr=xr(Or,fr)}finally{Jr?bo():(wr=!1,xr=null)}}else wr=!1},bo;if(typeof lt=="function")bo=function(){lt(Mn)};else if(typeof MessageChannel<"u"){var mr=new MessageChannel,sr=mr.port2;mr.port1.onmessage=Mn,bo=function(){sr.postMessage(null)}}else bo=function(){gt(Mn,0)};function Ut(fr){xr=fr,wr||(wr=!0,bo())}function nr(fr,Or){Vr=gt(function(){fr(S.unstable_now())},Or)}function Ir(){Qe(Vr),Vr=-1}var jr=Tn,Rr=null;S.unstable_IdlePriority=oe,S.unstable_ImmediatePriority=K,S.unstable_LowPriority=J,S.unstable_NormalPriority=X,S.unstable_Profiling=Rr,S.unstable_UserBlockingPriority=W,S.unstable_cancelCallback=Kt,S.unstable_continueExecution=Ht,S.unstable_forceFrameRate=pn,S.unstable_getCurrentPriorityLevel=tr,S.unstable_getFirstCallbackNode=kt,S.unstable_next=Pt,S.unstable_pauseExecution=It,S.unstable_requestPaint=jr,S.unstable_runWithPriority=Gt,S.unstable_scheduleCallback=bt,S.unstable_shouldYield=An,S.unstable_wrapCallback=Vt,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()}(scheduler_development)),scheduler_development}var scheduler_production_min={};/** - * @license React - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var hasRequiredScheduler_production_min;function requireScheduler_production_min(){return hasRequiredScheduler_production_min||(hasRequiredScheduler_production_min=1,function(S){function C(dt,gt){var Qe=dt.length;dt.push(gt);e:for(;0>>1,ht=dt[lt];if(0>>1;ltI(Lt,Qe))GtI(Pt,Lt)?(dt[lt]=Pt,dt[Gt]=Qe,lt=Gt):(dt[lt]=Lt,dt[$t]=Qe,lt=$t);else if(GtI(Pt,Qe))dt[lt]=Pt,dt[Gt]=Qe,lt=Gt;else break e}}return gt}function I(dt,gt){var Qe=dt.sortIndex-gt.sortIndex;return Qe!==0?Qe:dt.id-gt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var N=performance;S.unstable_now=function(){return N.now()}}else{var L=Date,B=L.now();S.unstable_now=function(){return L.now()-B}}var j=[],F=[],V=1,K=null,W=3,X=!1,J=!1,oe=!1,pe=typeof setTimeout=="function"?setTimeout:null,me=typeof clearTimeout=="function"?clearTimeout:null,xe=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ae(dt){for(var gt=R(F);gt!==null;){if(gt.callback===null)O(F);else if(gt.startTime<=dt)O(F),gt.sortIndex=gt.expirationTime,C(j,gt);else break;gt=R(F)}}function ge(dt){if(oe=!1,Ae(dt),!J)if(R(j)!==null)J=!0,Ue(Te);else{var gt=R(F);gt!==null&&et(ge,gt.startTime-dt)}}function Te(dt,gt){J=!1,oe&&(oe=!1,me(Be),Be=-1),X=!0;var Qe=W;try{for(Ae(gt),K=R(j);K!==null&&(!(K.expirationTime>gt)||dt&&!Ke());){var lt=K.callback;if(typeof lt=="function"){K.callback=null,W=K.priorityLevel;var ht=lt(K.expirationTime<=gt);gt=S.unstable_now(),typeof ht=="function"?K.callback=ht:K===R(j)&&O(j),Ae(gt)}else O(j);K=R(j)}if(K!==null)var Ct=!0;else{var $t=R(F);$t!==null&&et(ge,$t.startTime-gt),Ct=!1}return Ct}finally{K=null,W=Qe,X=!1}}var we=!1,ke=null,Be=-1,Ie=5,je=-1;function Ke(){return!(S.unstable_now()-jedt||125lt?(dt.sortIndex=Qe,C(F,dt),R(j)===null&&dt===R(F)&&(oe?(me(Be),Be=-1):oe=!0,et(ge,Qe-lt))):(dt.sortIndex=ht,C(j,dt),J||X||(J=!0,Ue(Te))),dt},S.unstable_shouldYield=Ke,S.unstable_wrapCallback=function(dt){var gt=W;return function(){var Qe=W;W=gt;try{return dt.apply(this,arguments)}finally{W=Qe}}}}(scheduler_production_min)),scheduler_production_min}var hasRequiredScheduler;function requireScheduler(){if(hasRequiredScheduler)return scheduler.exports;hasRequiredScheduler=1;var S={};return S.NODE_ENV==="production"?scheduler.exports=requireScheduler_production_min():scheduler.exports=requireScheduler_development(),scheduler.exports}var hasRequiredReactDom_development;function requireReactDom_development(){if(hasRequiredReactDom_development)return reactDom_development;hasRequiredReactDom_development=1;var S={};/** - * @license React - * react-dom.development.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */return S.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var C=requireReact(),R=requireScheduler(),O=C.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,I=!1;function N(G){I=G}function L(G){if(!I){for(var U=arguments.length,ue=new Array(U>1?U-1:0),ve=1;ve1?U-1:0),ve=1;ve2&&(G[0]==="o"||G[0]==="O")&&(G[1]==="n"||G[1]==="N")}function Eo(G,U,ue,ve){if(ue!==null&&ue.type===mr)return!1;switch(typeof U){case"function":case"symbol":return!0;case"boolean":{if(ve)return!1;if(ue!==null)return!ue.acceptsBooleans;var Re=G.toLowerCase().slice(0,5);return Re!=="data-"&&Re!=="aria-"}default:return!1}}function vo(G,U,ue,ve){if(U===null||typeof U>"u"||Eo(G,U,ue,ve))return!0;if(ve)return!1;if(ue!==null)switch(ue.type){case nr:return!U;case Ir:return U===!1;case jr:return isNaN(U);case Rr:return isNaN(U)||U<1}return!1}function Fo(G){return xn.hasOwnProperty(G)?xn[G]:null}function Ln(G,U,ue,ve,Re,qe,rt){this.acceptsBooleans=U===Ut||U===nr||U===Ir,this.attributeName=ve,this.attributeNamespace=Re,this.mustUseProperty=ue,this.propertyName=G,this.type=U,this.sanitizeURL=qe,this.removeEmptyString=rt}var xn={},Ko=["children","dangerouslySetInnerHTML","defaultValue","defaultChecked","innerHTML","suppressContentEditableWarning","suppressHydrationWarning","style"];Ko.forEach(function(G){xn[G]=new Ln(G,mr,!1,G,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(G){var U=G[0],ue=G[1];xn[U]=new Ln(U,sr,!1,ue,null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(G){xn[G]=new Ln(G,Ut,!1,G.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(G){xn[G]=new Ln(G,Ut,!1,G,null,!1,!1)}),["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope"].forEach(function(G){xn[G]=new Ln(G,nr,!1,G.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(G){xn[G]=new Ln(G,nr,!0,G,null,!1,!1)}),["capture","download"].forEach(function(G){xn[G]=new Ln(G,Ir,!1,G,null,!1,!1)}),["cols","rows","size","span"].forEach(function(G){xn[G]=new Ln(G,Rr,!1,G,null,!1,!1)}),["rowSpan","start"].forEach(function(G){xn[G]=new Ln(G,jr,!1,G.toLowerCase(),null,!1,!1)});var ao=/[\-\:]([a-z])/g,zo=function(G){return G[1].toUpperCase()};["accent-height","alignment-baseline","arabic-form","baseline-shift","cap-height","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","dominant-baseline","enable-background","fill-opacity","fill-rule","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-name","glyph-orientation-horizontal","glyph-orientation-vertical","horiz-adv-x","horiz-origin-x","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","overline-position","overline-thickness","paint-order","panose-1","pointer-events","rendering-intent","shape-rendering","stop-color","stop-opacity","strikethrough-position","strikethrough-thickness","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-rendering","underline-position","underline-thickness","unicode-bidi","unicode-range","units-per-em","v-alphabetic","v-hanging","v-ideographic","v-mathematical","vector-effect","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","writing-mode","xmlns:xlink","x-height"].forEach(function(G){var U=G.replace(ao,zo);xn[U]=new Ln(U,sr,!1,G,null,!1,!1)}),["xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type"].forEach(function(G){var U=G.replace(ao,zo);xn[U]=new Ln(U,sr,!1,G,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(G){var U=G.replace(ao,zo);xn[U]=new Ln(U,sr,!1,G,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(G){xn[G]=new Ln(G,sr,!1,G.toLowerCase(),null,!1,!1)});var fo="xlinkHref";xn[fo]=new Ln("xlinkHref",sr,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(G){xn[G]=new Ln(G,sr,!1,G.toLowerCase(),null,!0,!0)});var Wn=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i,wn=!1;function cn(G){!wn&&Wn.test(G)&&(wn=!0,B("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.",JSON.stringify(G)))}function vi(G,U,ue,ve){if(ve.mustUseProperty){var Re=ve.propertyName;return G[Re]}else{Bn(ue,U),ve.sanitizeURL&&cn(""+ue);var qe=ve.attributeName,rt=null;if(ve.type===Ir){if(G.hasAttribute(qe)){var pt=G.getAttribute(qe);return pt===""?!0:vo(U,ue,ve,!1)?pt:pt===""+ue?ue:pt}}else if(G.hasAttribute(qe)){if(vo(U,ue,ve,!1))return G.getAttribute(qe);if(ve.type===nr)return ue;rt=G.getAttribute(qe)}return vo(U,ue,ve,!1)?rt===null?ue:rt:rt===""+ue?ue:rt}}function ca(G,U,ue,ve){{if(!Gn(U))return;if(!G.hasAttribute(U))return ue===void 0?void 0:null;var Re=G.getAttribute(U);return Bn(ue,U),Re===""+ue?ue:Re}}function Go(G,U,ue,ve){var Re=Fo(U);if(!Zn(U,Re,ve)){if(vo(U,ue,Re,ve)&&(ue=null),ve||Re===null){if(Gn(U)){var qe=U;ue===null?G.removeAttribute(qe):(Bn(ue,U),G.setAttribute(qe,""+ue))}return}var rt=Re.mustUseProperty;if(rt){var pt=Re.propertyName;if(ue===null){var _t=Re.type;G[pt]=_t===nr?!1:""}else G[pt]=ue;return}var Mt=Re.attributeName,zt=Re.attributeNamespace;if(ue===null)G.removeAttribute(Mt);else{var hr=Re.type,pr;hr===nr||hr===Ir&&ue===!0?pr="":(Bn(ue,Mt),pr=""+ue,Re.sanitizeURL&&cn(pr.toString())),zt?G.setAttributeNS(zt,Mt,pr):G.setAttribute(Mt,pr)}}}var di=Symbol.for("react.element"),Qi=Symbol.for("react.portal"),Oa=Symbol.for("react.fragment"),gs=Symbol.for("react.strict_mode"),Dt=Symbol.for("react.profiler"),St=Symbol.for("react.provider"),wt=Symbol.for("react.context"),yt=Symbol.for("react.forward_ref"),Rt=Symbol.for("react.suspense"),Nt=Symbol.for("react.suspense_list"),Yt=Symbol.for("react.memo"),lr=Symbol.for("react.lazy"),vr=Symbol.for("react.scope"),Qt=Symbol.for("react.debug_trace_mode"),Ar=Symbol.for("react.offscreen"),un=Symbol.for("react.legacy_hidden"),po=Symbol.for("react.cache"),In=Symbol.for("react.tracing_marker"),xo=Symbol.iterator,Vn="@@iterator";function Ro(G){if(G===null||typeof G!="object")return null;var U=xo&&G[xo]||G[Vn];return typeof U=="function"?U:null}var Nn=Object.assign,so=0,Ei,Ji,mi,ks,Li,hl,Is;function ea(){}ea.__reactDisabledLog=!0;function fi(){{if(so===0){Ei=console.log,Ji=console.info,mi=console.warn,ks=console.error,Li=console.group,hl=console.groupCollapsed,Is=console.groupEnd;var G={configurable:!0,enumerable:!0,value:ea,writable:!0};Object.defineProperties(console,{info:G,log:G,warn:G,error:G,group:G,groupCollapsed:G,groupEnd:G})}so++}}function aa(){{if(so--,so===0){var G={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Nn({},G,{value:Ei}),info:Nn({},G,{value:Ji}),warn:Nn({},G,{value:mi}),error:Nn({},G,{value:ks}),group:Nn({},G,{value:Li}),groupCollapsed:Nn({},G,{value:hl}),groupEnd:Nn({},G,{value:Is})})}so<0&&B("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ta=O.ReactCurrentDispatcher,$a;function ii(G,U,ue){{if($a===void 0)try{throw Error()}catch(Re){var ve=Re.stack.trim().match(/\n( *(at )?)/);$a=ve&&ve[1]||""}return` -`+$a+G}}var ts=!1,as;{var Ns=typeof WeakMap=="function"?WeakMap:Map;as=new Ns}function Ds(G,U){if(!G||ts)return"";{var ue=as.get(G);if(ue!==void 0)return ue}var ve;ts=!0;var Re=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var qe;qe=ta.current,ta.current=null,fi();try{if(U){var rt=function(){throw Error()};if(Object.defineProperty(rt.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(rt,[])}catch(Lr){ve=Lr}Reflect.construct(G,[],rt)}else{try{rt.call()}catch(Lr){ve=Lr}G.call(rt.prototype)}}else{try{throw Error()}catch(Lr){ve=Lr}G()}}catch(Lr){if(Lr&&ve&&typeof Lr.stack=="string"){for(var pt=Lr.stack.split(` -`),_t=ve.stack.split(` -`),Mt=pt.length-1,zt=_t.length-1;Mt>=1&&zt>=0&&pt[Mt]!==_t[zt];)zt--;for(;Mt>=1&&zt>=0;Mt--,zt--)if(pt[Mt]!==_t[zt]){if(Mt!==1||zt!==1)do if(Mt--,zt--,zt<0||pt[Mt]!==_t[zt]){var hr=` -`+pt[Mt].replace(" at new "," at ");return G.displayName&&hr.includes("")&&(hr=hr.replace("",G.displayName)),typeof G=="function"&&as.set(G,hr),hr}while(Mt>=1&&zt>=0);break}}}finally{ts=!1,ta.current=qe,aa(),Error.prepareStackTrace=Re}var pr=G?G.displayName||G.name:"",Mr=pr?ii(pr):"";return typeof G=="function"&&as.set(G,Mr),Mr}function ga(G,U,ue){return Ds(G,!0)}function vs(G,U,ue){return Ds(G,!1)}function Xl(G){var U=G.prototype;return!!(U&&U.isReactComponent)}function Qn(G,U,ue){if(G==null)return"";if(typeof G=="function")return Ds(G,Xl(G));if(typeof G=="string")return ii(G);switch(G){case Rt:return ii("Suspense");case Nt:return ii("SuspenseList")}if(typeof G=="object")switch(G.$$typeof){case yt:return vs(G.render);case Yt:return Qn(G.type,U,ue);case lr:{var ve=G,Re=ve._payload,qe=ve._init;try{return Qn(qe(Re),U,ue)}catch{}}}return""}function va(G){switch(G._debugOwner&&G._debugOwner.type,G._debugSource,G.tag){case J:return ii(G.type);case Ie:return ii("Lazy");case we:return ii("Suspense");case Je:return ii("SuspenseList");case F:case K:case Be:return vs(G.type);case ge:return vs(G.type.render);case V:return ga(G.type);default:return""}}function ma(G){try{var U="",ue=G;do U+=va(ue),ue=ue.return;while(ue);return U}catch(ve){return` -Error generating stack: `+ve.message+` -`+ve.stack}}function Ys(G,U,ue){var ve=G.displayName;if(ve)return ve;var Re=U.displayName||U.name||"";return Re!==""?ue+"("+Re+")":ue}function Ms(G){return G.displayName||"Context"}function Qo(G){if(G==null)return null;if(typeof G.tag=="number"&&B("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof G=="function")return G.displayName||G.name||null;if(typeof G=="string")return G;switch(G){case Oa:return"Fragment";case Qi:return"Portal";case Dt:return"Profiler";case gs:return"StrictMode";case Rt:return"Suspense";case Nt:return"SuspenseList"}if(typeof G=="object")switch(G.$$typeof){case wt:var U=G;return Ms(U)+".Consumer";case St:var ue=G;return Ms(ue._context)+".Provider";case yt:return Ys(G,G.render,"ForwardRef");case Yt:var ve=G.displayName||null;return ve!==null?ve:Qo(G.type)||"Memo";case lr:{var Re=G,qe=Re._payload,rt=Re._init;try{return Qo(rt(qe))}catch{return null}}}return null}function Ls(G,U,ue){var ve=U.displayName||U.name||"";return G.displayName||(ve!==""?ue+"("+ve+")":ue)}function Ol(G){return G.displayName||"Context"}function qn(G){var U=G.tag,ue=G.type;switch(U){case Ue:return"Cache";case xe:var ve=ue;return Ol(ve)+".Consumer";case Ae:var Re=ue;return Ol(Re._context)+".Provider";case Ke:return"DehydratedFragment";case ge:return Ls(ue,ue.render,"ForwardRef");case pe:return"Fragment";case J:return ue;case X:return"Portal";case W:return"Root";case oe:return"Text";case Ie:return Qo(ue);case me:return ue===gs?"StrictMode":"Mode";case ot:return"Offscreen";case Te:return"Profiler";case Xe:return"Scope";case we:return"Suspense";case Je:return"SuspenseList";case et:return"TracingMarker";case V:case F:case je:case K:case ke:case Be:if(typeof ue=="function")return ue.displayName||ue.name||null;if(typeof ue=="string")return ue;break}return null}var Xs=O.ReactDebugCurrentFrame,yi=null,Zs=!1;function Ya(){{if(yi===null)return null;var G=yi._debugOwner;if(G!==null&&typeof G<"u")return qn(G)}return null}function Zl(){return yi===null?"":ma(yi)}function Ki(){Xs.getCurrentStack=null,yi=null,Zs=!1}function $i(G){Xs.getCurrentStack=G===null?null:Zl,yi=G,Zs=!1}function Ku(){return yi}function da(G){Zs=G}function ss(G){return""+G}function Ur(G){switch(typeof G){case"boolean":case"number":case"string":case"undefined":return G;case"object":return bo(G),G;default:return""}}var gn={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0};function So(G,U){gn[U.type]||U.onChange||U.onInput||U.readOnly||U.disabled||U.value==null||B("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."),U.onChange||U.readOnly||U.disabled||U.checked==null||B("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")}function To(G){var U=G.type,ue=G.nodeName;return ue&&ue.toLowerCase()==="input"&&(U==="checkbox"||U==="radio")}function Kn(G){return G._valueTracker}function zn(G){G._valueTracker=null}function ai(G){var U="";return G&&(To(G)?U=G.checked?"true":"false":U=G.value),U}function wi(G){var U=To(G)?"checked":"value",ue=Object.getOwnPropertyDescriptor(G.constructor.prototype,U);bo(G[U]);var ve=""+G[U];if(!(G.hasOwnProperty(U)||typeof ue>"u"||typeof ue.get!="function"||typeof ue.set!="function")){var Re=ue.get,qe=ue.set;Object.defineProperty(G,U,{configurable:!0,get:function(){return Re.call(this)},set:function(pt){bo(pt),ve=""+pt,qe.call(this,pt)}}),Object.defineProperty(G,U,{enumerable:ue.enumerable});var rt={getValue:function(){return ve},setValue:function(pt){bo(pt),ve=""+pt},stopTracking:function(){zn(G),delete G[U]}};return rt}}function ra(G){Kn(G)||(G._valueTracker=wi(G))}function rs(G){if(!G)return!1;var U=Kn(G);if(!U)return!0;var ue=U.getValue(),ve=ai(G);return ve!==ue?(U.setValue(ve),!0):!1}function Xa(G){if(G=G||(typeof document<"u"?document:void 0),typeof G>"u")return null;try{return G.activeElement||G.body}catch{return G.body}}var Ql=!1,Jl=!1,Uu=!1,Ui=!1;function Oc(G){var U=G.type==="checkbox"||G.type==="radio";return U?G.checked!=null:G.value!=null}function Et(G,U){var ue=G,ve=U.checked,Re=Nn({},U,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:ve??ue._wrapperState.initialChecked});return Re}function Zt(G,U){So("input",U),U.checked!==void 0&&U.defaultChecked!==void 0&&!Jl&&(B("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",Ya()||"A component",U.type),Jl=!0),U.value!==void 0&&U.defaultValue!==void 0&&!Ql&&(B("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",Ya()||"A component",U.type),Ql=!0);var ue=G,ve=U.defaultValue==null?"":U.defaultValue;ue._wrapperState={initialChecked:U.checked!=null?U.checked:U.defaultChecked,initialValue:Ur(U.value!=null?U.value:ve),controlled:Oc(U)}}function $r(G,U){var ue=G,ve=U.checked;ve!=null&&Go(ue,"checked",ve,!1)}function Nr(G,U){var ue=G;{var ve=Oc(U);!ue._wrapperState.controlled&&ve&&!Ui&&(B("A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),Ui=!0),ue._wrapperState.controlled&&!ve&&!Uu&&(B("A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),Uu=!0)}$r(G,U);var Re=Ur(U.value),qe=U.type;if(Re!=null)qe==="number"?(Re===0&&ue.value===""||ue.value!=Re)&&(ue.value=ss(Re)):ue.value!==ss(Re)&&(ue.value=ss(Re));else if(qe==="submit"||qe==="reset"){ue.removeAttribute("value");return}U.hasOwnProperty("value")?Io(ue,U.type,Re):U.hasOwnProperty("defaultValue")&&Io(ue,U.type,Ur(U.defaultValue)),U.checked==null&&U.defaultChecked!=null&&(ue.defaultChecked=!!U.defaultChecked)}function mn(G,U,ue){var ve=G;if(U.hasOwnProperty("value")||U.hasOwnProperty("defaultValue")){var Re=U.type,qe=Re==="submit"||Re==="reset";if(qe&&(U.value===void 0||U.value===null))return;var rt=ss(ve._wrapperState.initialValue);ue||rt!==ve.value&&(ve.value=rt),ve.defaultValue=rt}var pt=ve.name;pt!==""&&(ve.name=""),ve.defaultChecked=!ve.defaultChecked,ve.defaultChecked=!!ve._wrapperState.initialChecked,pt!==""&&(ve.name=pt)}function Xn(G,U){var ue=G;Nr(ue,U),Pn(ue,U)}function Pn(G,U){var ue=U.name;if(U.type==="radio"&&ue!=null){for(var ve=G;ve.parentNode;)ve=ve.parentNode;Bn(ue,"name");for(var Re=ve.querySelectorAll("input[name="+JSON.stringify(""+ue)+'][type="radio"]'),qe=0;qe.")))}):U.dangerouslySetInnerHTML!=null&&(Uo||(Uo=!0,B("Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected.")))),U.selected!=null&&!Jo&&(B("Use the `defaultValue` or `value` props on must be a scalar value if `multiple` is false.%s",ue,kl())}}}}function ya(G,U,ue,ve){var Re=G.options;if(U){for(var qe=ue,rt={},pt=0;pt.");var ve=Nn({},U,{value:void 0,defaultValue:void 0,children:ss(ue._wrapperState.initialValue)});return ve}function xd(G,U){var ue=G;So("textarea",U),U.value!==void 0&&U.defaultValue!==void 0&&!rd&&(B("%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://reactjs.org/link/controlled-components",Ya()||"A component"),rd=!0);var ve=U.value;if(ve==null){var Re=U.children,qe=U.defaultValue;if(Re!=null){B("Use the `defaultValue` or `value` props instead of setting children on - -`,textFieldTemplate=(S,C)=>html$4` - -`,disabledCursor="not-allowed",hidden=":host([hidden]){display:none}";function display(S){return`${hidden}:host{display:${S}}`}const focusVisible=canUseFocusVisible()?"focus-visible":"focus",reservedReactProperties=new Set(["children","localName","ref","style","className"]),emptyProps=Object.freeze(Object.create(null)),DEFAULT_CACHE_NAME="_default",wrappersCache=new Map;function setRef(S,C){typeof S=="function"?S(C):S.current=C}function getTagName(S,C){if(!C.name){const R=FASTElementDefinition.forType(S);if(R)C.name=R.name;else throw new Error("React wrappers must wrap a FASTElement or be configured with a name.")}return C.name}function getElementEvents(S){return S.events||(S.events={})}function keyIsValid(S,C,R){return reservedReactProperties.has(R)?(console.warn(`${getTagName(S,C)} contains property ${R} which is a React reserved property. It will be used by React and not set on the element.`),!1):!0}function getElementKeys(S,C){if(!C.keys)if(C.properties)C.keys=new Set(C.properties.concat(Object.keys(getElementEvents(C))));else{const R=new Set(Object.keys(getElementEvents(C))),O=Observable$1.getAccessors(S.prototype);if(O.length>0)for(const I of O)keyIsValid(S,C,I.name)&&R.add(I.name);else for(const I in S.prototype)!(I in HTMLElement.prototype)&&keyIsValid(S,C,I)&&R.add(I);C.keys=R}return C.keys}function provideReactWrapper(S,C){let R=[];const O={register(N,...L){R.forEach(B=>B.register(N,...L)),R=[]}};function I(N,L={}){var B,j;N instanceof FoundationElementRegistry&&(C?C.register(N):R.push(N),N=N.type);const F=wrappersCache.get(N);if(F){const W=F.get((B=L.name)!==null&&B!==void 0?B:DEFAULT_CACHE_NAME);if(W)return W}class V extends S.Component{constructor(){super(...arguments),this._element=null}_updateElement(X){const J=this._element;if(J===null)return;const oe=this.props,pe=X||emptyProps,me=getElementEvents(L);for(const xe in this._elementProps){const Ae=oe[xe],ge=me[xe];if(ge===void 0)J[xe]=Ae;else{const Te=pe[xe];if(Ae===Te)continue;Te!==void 0&&J.removeEventListener(ge,Te),Ae!==void 0&&J.addEventListener(ge,Ae)}}}componentDidMount(){this._updateElement()}componentDidUpdate(X){this._updateElement(X)}render(){const X=this.props.__forwardedRef;(this._ref===void 0||this._userRef!==X)&&(this._ref=xe=>{this._element===null&&(this._element=xe),X!==null&&setRef(X,xe),this._userRef=X});const J={ref:this._ref},oe=this._elementProps={},pe=getElementKeys(N,L),me=this.props;for(const xe in me){const Ae=me[xe];pe.has(xe)?oe[xe]=Ae:J[xe==="className"?"class":xe]=Ae}return S.createElement(getTagName(N,L),J)}}const K=S.forwardRef((W,X)=>S.createElement(V,Object.assign(Object.assign({},W),{__forwardedRef:X}),W==null?void 0:W.children));return wrappersCache.has(N)||wrappersCache.set(N,new Map),wrappersCache.get(N).set((j=L.name)!==null&&j!==void 0?j:DEFAULT_CACHE_NAME,K),K}return{wrap:I,registry:O}}function provideVSCodeDesignSystem(S){return DesignSystem.getOrCreate(S).withPrefix("vscode")}function initThemeChangeListener(S){window.addEventListener("load",()=>{new MutationObserver(()=>{applyCurrentTheme(S)}).observe(document.body,{attributes:!0,attributeFilter:["class"]}),applyCurrentTheme(S)})}function applyCurrentTheme(S){const C=getComputedStyle(document.body),R=document.querySelector("body");if(R){const O=R.getAttribute("data-vscode-theme-kind");for(const[I,N]of S){let L=C.getPropertyValue(I).toString();if(O==="vscode-high-contrast")L.length===0&&N.name.includes("background")&&(L="transparent"),N.name==="button-icon-hover-background"&&(L="transparent");else if(O==="vscode-high-contrast-light"){if(L.length===0&&N.name.includes("background"))switch(N.name){case"button-primary-hover-background":L="#0F4A85";break;case"button-secondary-hover-background":L="transparent";break;case"button-icon-hover-background":L="transparent";break}}else N.name==="contrast-active-border"&&(L="transparent");N.setValueFor(R,L)}}}const tokenMappings=new Map;let isThemeListenerInitialized=!1;function create$4(S,C){const R=DesignToken.create(S);if(C){if(C.includes("--fake-vscode-token")){const O="id"+Math.random().toString(16).slice(2);C=`${C}-${O}`}tokenMappings.set(C,R)}return isThemeListenerInitialized||(initThemeChangeListener(tokenMappings),isThemeListenerInitialized=!0),R}const background=create$4("background","--vscode-editor-background").withDefault("#1e1e1e"),borderWidth=create$4("border-width").withDefault(1),contrastActiveBorder=create$4("contrast-active-border","--vscode-contrastActiveBorder").withDefault("#f38518");create$4("contrast-border","--vscode-contrastBorder").withDefault("#6fc3df");const cornerRadius=create$4("corner-radius").withDefault(0),cornerRadiusRound=create$4("corner-radius-round").withDefault(2),designUnit=create$4("design-unit").withDefault(4),disabledOpacity=create$4("disabled-opacity").withDefault(.4),focusBorder=create$4("focus-border","--vscode-focusBorder").withDefault("#007fd4"),fontFamily=create$4("font-family","--vscode-font-family").withDefault("-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol");create$4("font-weight","--vscode-font-weight").withDefault("400");const foreground=create$4("foreground","--vscode-foreground").withDefault("#cccccc"),inputHeight=create$4("input-height").withDefault("26"),inputMinWidth=create$4("input-min-width").withDefault("100px"),typeRampBaseFontSize=create$4("type-ramp-base-font-size","--vscode-font-size").withDefault("13px"),typeRampBaseLineHeight=create$4("type-ramp-base-line-height").withDefault("normal"),typeRampMinus1FontSize=create$4("type-ramp-minus1-font-size").withDefault("11px"),typeRampMinus1LineHeight=create$4("type-ramp-minus1-line-height").withDefault("16px");create$4("type-ramp-minus2-font-size").withDefault("9px"),create$4("type-ramp-minus2-line-height").withDefault("16px"),create$4("type-ramp-plus1-font-size").withDefault("16px"),create$4("type-ramp-plus1-line-height").withDefault("24px");const scrollbarWidth=create$4("scrollbarWidth").withDefault("10px"),scrollbarHeight=create$4("scrollbarHeight").withDefault("10px"),scrollbarSliderBackground=create$4("scrollbar-slider-background","--vscode-scrollbarSlider-background").withDefault("#79797966"),scrollbarSliderHoverBackground=create$4("scrollbar-slider-hover-background","--vscode-scrollbarSlider-hoverBackground").withDefault("#646464b3"),scrollbarSliderActiveBackground=create$4("scrollbar-slider-active-background","--vscode-scrollbarSlider-activeBackground").withDefault("#bfbfbf66"),badgeBackground=create$4("badge-background","--vscode-badge-background").withDefault("#4d4d4d"),badgeForeground=create$4("badge-foreground","--vscode-badge-foreground").withDefault("#ffffff"),buttonBorder=create$4("button-border","--vscode-button-border").withDefault("transparent"),buttonIconBackground=create$4("button-icon-background").withDefault("transparent"),buttonIconCornerRadius=create$4("button-icon-corner-radius").withDefault("5px"),buttonIconFocusBorderOffset=create$4("button-icon-outline-offset").withDefault(0),buttonIconHoverBackground=create$4("button-icon-hover-background","--fake-vscode-token").withDefault("rgba(90, 93, 94, 0.31)"),buttonIconPadding=create$4("button-icon-padding").withDefault("3px"),buttonPrimaryBackground=create$4("button-primary-background","--vscode-button-background").withDefault("#0e639c"),buttonPrimaryForeground=create$4("button-primary-foreground","--vscode-button-foreground").withDefault("#ffffff"),buttonPrimaryHoverBackground=create$4("button-primary-hover-background","--vscode-button-hoverBackground").withDefault("#1177bb"),buttonSecondaryBackground=create$4("button-secondary-background","--vscode-button-secondaryBackground").withDefault("#3a3d41"),buttonSecondaryForeground=create$4("button-secondary-foreground","--vscode-button-secondaryForeground").withDefault("#ffffff"),buttonSecondaryHoverBackground=create$4("button-secondary-hover-background","--vscode-button-secondaryHoverBackground").withDefault("#45494e"),buttonPaddingHorizontal=create$4("button-padding-horizontal").withDefault("11px"),buttonPaddingVertical=create$4("button-padding-vertical").withDefault("4px"),checkboxBackground=create$4("checkbox-background","--vscode-checkbox-background").withDefault("#3c3c3c"),checkboxBorder=create$4("checkbox-border","--vscode-checkbox-border").withDefault("#3c3c3c"),checkboxCornerRadius=create$4("checkbox-corner-radius").withDefault(3);create$4("checkbox-foreground","--vscode-checkbox-foreground").withDefault("#f0f0f0");const listActiveSelectionBackground=create$4("list-active-selection-background","--vscode-list-activeSelectionBackground").withDefault("#094771"),listActiveSelectionForeground=create$4("list-active-selection-foreground","--vscode-list-activeSelectionForeground").withDefault("#ffffff"),listHoverBackground=create$4("list-hover-background","--vscode-list-hoverBackground").withDefault("#2a2d2e"),dividerBackground=create$4("divider-background","--vscode-settings-dropdownListBorder").withDefault("#454545"),dropdownBackground=create$4("dropdown-background","--vscode-dropdown-background").withDefault("#3c3c3c"),dropdownBorder=create$4("dropdown-border","--vscode-dropdown-border").withDefault("#3c3c3c");create$4("dropdown-foreground","--vscode-dropdown-foreground").withDefault("#f0f0f0");const dropdownListMaxHeight=create$4("dropdown-list-max-height").withDefault("200px"),inputBackground=create$4("input-background","--vscode-input-background").withDefault("#3c3c3c"),inputForeground=create$4("input-foreground","--vscode-input-foreground").withDefault("#cccccc");create$4("input-placeholder-foreground","--vscode-input-placeholderForeground").withDefault("#cccccc");const linkActiveForeground=create$4("link-active-foreground","--vscode-textLink-activeForeground").withDefault("#3794ff"),linkForeground=create$4("link-foreground","--vscode-textLink-foreground").withDefault("#3794ff"),progressBackground=create$4("progress-background","--vscode-progressBar-background").withDefault("#0e70c0"),panelTabActiveBorder=create$4("panel-tab-active-border","--vscode-panelTitle-activeBorder").withDefault("#e7e7e7"),panelTabActiveForeground=create$4("panel-tab-active-foreground","--vscode-panelTitle-activeForeground").withDefault("#e7e7e7"),panelTabForeground=create$4("panel-tab-foreground","--vscode-panelTitle-inactiveForeground").withDefault("#e7e7e799");create$4("panel-view-background","--vscode-panel-background").withDefault("#1e1e1e"),create$4("panel-view-border","--vscode-panel-border").withDefault("#80808059");const tagCornerRadius=create$4("tag-corner-radius").withDefault("2px"),badgeStyles=(S,C)=>css$1` - ${display("inline-block")} :host { - box-sizing: border-box; - font-family: ${fontFamily}; - font-size: ${typeRampMinus1FontSize}; - line-height: ${typeRampMinus1LineHeight}; - text-align: center; - } - .control { - align-items: center; - background-color: ${badgeBackground}; - border: calc(${borderWidth} * 1px) solid ${buttonBorder}; - border-radius: 11px; - box-sizing: border-box; - color: ${badgeForeground}; - display: flex; - height: calc(${designUnit} * 4px); - justify-content: center; - min-width: calc(${designUnit} * 4px + 2px); - min-height: calc(${designUnit} * 4px + 2px); - padding: 3px 6px; - } -`;class Badge extends Badge$1{connectedCallback(){super.connectedCallback(),this.circular||(this.circular=!0)}}const vsCodeBadge=Badge.compose({baseName:"badge",template:badgeTemplate,styles:badgeStyles}),BaseButtonStyles=css$1` - ${display("inline-flex")} :host { - outline: none; - font-family: ${fontFamily}; - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - color: ${buttonPrimaryForeground}; - background: ${buttonPrimaryBackground}; - border-radius: calc(${cornerRadiusRound} * 1px); - fill: currentColor; - cursor: pointer; - } - .control { - background: transparent; - height: inherit; - flex-grow: 1; - box-sizing: border-box; - display: inline-flex; - justify-content: center; - align-items: center; - padding: ${buttonPaddingVertical} ${buttonPaddingHorizontal}; - white-space: wrap; - outline: none; - text-decoration: none; - border: calc(${borderWidth} * 1px) solid ${buttonBorder}; - color: inherit; - border-radius: inherit; - fill: inherit; - cursor: inherit; - font-family: inherit; - } - :host(:hover) { - background: ${buttonPrimaryHoverBackground}; - } - :host(:active) { - background: ${buttonPrimaryBackground}; - } - .control:${focusVisible} { - outline: calc(${borderWidth} * 1px) solid ${focusBorder}; - outline-offset: calc(${borderWidth} * 2px); - } - .control::-moz-focus-inner { - border: 0; - } - :host([disabled]) { - opacity: ${disabledOpacity}; - background: ${buttonPrimaryBackground}; - cursor: ${disabledCursor}; - } - .content { - display: flex; - } - .start { - display: flex; - } - ::slotted(svg), - ::slotted(span) { - width: calc(${designUnit} * 4px); - height: calc(${designUnit} * 4px); - } - .start { - margin-inline-end: 8px; - } -`,PrimaryButtonStyles=css$1` - :host([appearance='primary']) { - background: ${buttonPrimaryBackground}; - color: ${buttonPrimaryForeground}; - } - :host([appearance='primary']:hover) { - background: ${buttonPrimaryHoverBackground}; - } - :host([appearance='primary']:active) .control:active { - background: ${buttonPrimaryBackground}; - } - :host([appearance='primary']) .control:${focusVisible} { - outline: calc(${borderWidth} * 1px) solid ${focusBorder}; - outline-offset: calc(${borderWidth} * 2px); - } - :host([appearance='primary'][disabled]) { - background: ${buttonPrimaryBackground}; - } -`,SecondaryButtonStyles=css$1` - :host([appearance='secondary']) { - background: ${buttonSecondaryBackground}; - color: ${buttonSecondaryForeground}; - } - :host([appearance='secondary']:hover) { - background: ${buttonSecondaryHoverBackground}; - } - :host([appearance='secondary']:active) .control:active { - background: ${buttonSecondaryBackground}; - } - :host([appearance='secondary']) .control:${focusVisible} { - outline: calc(${borderWidth} * 1px) solid ${focusBorder}; - outline-offset: calc(${borderWidth} * 2px); - } - :host([appearance='secondary'][disabled]) { - background: ${buttonSecondaryBackground}; - } -`,IconButtonStyles=css$1` - :host([appearance='icon']) { - background: ${buttonIconBackground}; - border-radius: ${buttonIconCornerRadius}; - color: ${foreground}; - } - :host([appearance='icon']:hover) { - background: ${buttonIconHoverBackground}; - outline: 1px dotted ${contrastActiveBorder}; - outline-offset: -1px; - } - :host([appearance='icon']) .control { - padding: ${buttonIconPadding}; - border: none; - } - :host([appearance='icon']:active) .control:active { - background: ${buttonIconHoverBackground}; - } - :host([appearance='icon']) .control:${focusVisible} { - outline: calc(${borderWidth} * 1px) solid ${focusBorder}; - outline-offset: ${buttonIconFocusBorderOffset}; - } - :host([appearance='icon'][disabled]) { - background: ${buttonIconBackground}; - } -`,buttonStyles=(S,C)=>css$1` - ${BaseButtonStyles} - ${PrimaryButtonStyles} - ${SecondaryButtonStyles} - ${IconButtonStyles} -`;class Button extends Button$1{connectedCallback(){if(super.connectedCallback(),!this.appearance){const C=this.getAttribute("appearance");this.appearance=C}}attributeChangedCallback(C,R,O){C==="appearance"&&O==="icon"&&(this.getAttribute("aria-label")||(this.ariaLabel="Icon Button")),C==="aria-label"&&(this.ariaLabel=O),C==="disabled"&&(this.disabled=O!==null)}}__decorate$1([attr],Button.prototype,"appearance",void 0);const vsCodeButton=Button.compose({baseName:"button",template:buttonTemplate,styles:buttonStyles,shadowOptions:{delegatesFocus:!0}}),checkboxStyles=(S,C)=>css$1` - ${display("inline-flex")} :host { - align-items: center; - outline: none; - margin: calc(${designUnit} * 1px) 0; - user-select: none; - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - } - .control { - position: relative; - width: calc(${designUnit} * 4px + 2px); - height: calc(${designUnit} * 4px + 2px); - box-sizing: border-box; - border-radius: calc(${checkboxCornerRadius} * 1px); - border: calc(${borderWidth} * 1px) solid ${checkboxBorder}; - background: ${checkboxBackground}; - outline: none; - cursor: pointer; - } - .label { - font-family: ${fontFamily}; - color: ${foreground}; - padding-inline-start: calc(${designUnit} * 2px + 2px); - margin-inline-end: calc(${designUnit} * 2px + 2px); - cursor: pointer; - } - .label__hidden { - display: none; - visibility: hidden; - } - .checked-indicator { - width: 100%; - height: 100%; - display: block; - fill: ${foreground}; - opacity: 0; - pointer-events: none; - } - .indeterminate-indicator { - border-radius: 2px; - background: ${foreground}; - position: absolute; - top: 50%; - left: 50%; - width: 50%; - height: 50%; - transform: translate(-50%, -50%); - opacity: 0; - } - :host(:enabled) .control:hover { - background: ${checkboxBackground}; - border-color: ${checkboxBorder}; - } - :host(:enabled) .control:active { - background: ${checkboxBackground}; - border-color: ${focusBorder}; - } - :host(:${focusVisible}) .control { - border: calc(${borderWidth} * 1px) solid ${focusBorder}; - } - :host(.disabled) .label, - :host(.readonly) .label, - :host(.readonly) .control, - :host(.disabled) .control { - cursor: ${disabledCursor}; - } - :host(.checked:not(.indeterminate)) .checked-indicator, - :host(.indeterminate) .indeterminate-indicator { - opacity: 1; - } - :host(.disabled) { - opacity: ${disabledOpacity}; - } -`;class Checkbox extends Checkbox$1{connectedCallback(){super.connectedCallback(),this.textContent?this.setAttribute("aria-label",this.textContent):this.setAttribute("aria-label","Checkbox")}}const vsCodeCheckbox=Checkbox.compose({baseName:"checkbox",template:checkboxTemplate,styles:checkboxStyles,checkedIndicator:` - - - - `,indeterminateIndicator:` -
- `}),dataGridStyles=(S,C)=>css$1` - :host { - display: flex; - position: relative; - flex-direction: column; - width: 100%; - } -`,dataGridRowStyles=(S,C)=>css$1` - :host { - display: grid; - padding: calc((${designUnit} / 4) * 1px) 0; - box-sizing: border-box; - width: 100%; - background: transparent; - } - :host(.header) { - } - :host(.sticky-header) { - background: ${background}; - position: sticky; - top: 0; - } - :host(:hover) { - background: ${listHoverBackground}; - outline: 1px dotted ${contrastActiveBorder}; - outline-offset: -1px; - } -`,dataGridCellStyles=(S,C)=>css$1` - :host { - padding: calc(${designUnit} * 1px) calc(${designUnit} * 3px); - color: ${foreground}; - opacity: 1; - box-sizing: border-box; - font-family: ${fontFamily}; - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - font-weight: 400; - border: solid calc(${borderWidth} * 1px) transparent; - border-radius: calc(${cornerRadius} * 1px); - white-space: wrap; - overflow-wrap: anywhere; - } - :host(.column-header) { - font-weight: 600; - } - :host(:${focusVisible}), - :host(:focus), - :host(:active) { - background: ${listActiveSelectionBackground}; - border: solid calc(${borderWidth} * 1px) ${focusBorder}; - color: ${listActiveSelectionForeground}; - outline: none; - } - :host(:${focusVisible}) ::slotted(*), - :host(:focus) ::slotted(*), - :host(:active) ::slotted(*) { - color: ${listActiveSelectionForeground} !important; - } -`;class DataGrid extends DataGrid$1{connectedCallback(){super.connectedCallback(),this.getAttribute("aria-label")||this.setAttribute("aria-label","Data Grid")}}const vsCodeDataGrid=DataGrid.compose({baseName:"data-grid",baseClass:DataGrid$1,template:dataGridTemplate,styles:dataGridStyles});class DataGridRow extends DataGridRow$1{}const vsCodeDataGridRow=DataGridRow.compose({baseName:"data-grid-row",baseClass:DataGridRow$1,template:dataGridRowTemplate,styles:dataGridRowStyles});class DataGridCell extends DataGridCell$1{}const vsCodeDataGridCell=DataGridCell.compose({baseName:"data-grid-cell",baseClass:DataGridCell$1,template:dataGridCellTemplate,styles:dataGridCellStyles}),dividerStyles=(S,C)=>css$1` - ${display("block")} :host { - border: none; - border-top: calc(${borderWidth} * 1px) solid ${dividerBackground}; - box-sizing: content-box; - height: 0; - margin: calc(${designUnit} * 1px) 0; - width: 100%; - } -`;class Divider extends Divider$1{}const vsCodeDivider=Divider.compose({baseName:"divider",template:dividerTemplate,styles:dividerStyles}),dropdownStyles=(S,C)=>css$1` - ${display("inline-flex")} :host { - background: ${dropdownBackground}; - border-radius: calc(${cornerRadiusRound} * 1px); - box-sizing: border-box; - color: ${foreground}; - contain: contents; - font-family: ${fontFamily}; - height: calc(${inputHeight} * 1px); - position: relative; - user-select: none; - min-width: ${inputMinWidth}; - outline: none; - vertical-align: top; - } - .control { - align-items: center; - box-sizing: border-box; - border: calc(${borderWidth} * 1px) solid ${dropdownBorder}; - border-radius: calc(${cornerRadiusRound} * 1px); - cursor: pointer; - display: flex; - font-family: inherit; - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - min-height: 100%; - padding: 2px 6px 2px 8px; - width: 100%; - } - .listbox { - background: ${dropdownBackground}; - border: calc(${borderWidth} * 1px) solid ${focusBorder}; - border-radius: calc(${cornerRadiusRound} * 1px); - box-sizing: border-box; - display: inline-flex; - flex-direction: column; - left: 0; - max-height: ${dropdownListMaxHeight}; - padding: 0; - overflow-y: auto; - position: absolute; - width: 100%; - z-index: 1; - } - .listbox[hidden] { - display: none; - } - :host(:${focusVisible}) .control { - border-color: ${focusBorder}; - } - :host(:not([disabled]):hover) { - background: ${dropdownBackground}; - border-color: ${dropdownBorder}; - } - :host(:${focusVisible}) ::slotted([aria-selected="true"][role="option"]:not([disabled])) { - background: ${listActiveSelectionBackground}; - border: calc(${borderWidth} * 1px) solid transparent; - color: ${listActiveSelectionForeground}; - } - :host([disabled]) { - cursor: ${disabledCursor}; - opacity: ${disabledOpacity}; - } - :host([disabled]) .control { - cursor: ${disabledCursor}; - user-select: none; - } - :host([disabled]:hover) { - background: ${dropdownBackground}; - color: ${foreground}; - fill: currentcolor; - } - :host(:not([disabled])) .control:active { - border-color: ${focusBorder}; - } - :host(:empty) .listbox { - display: none; - } - :host([open]) .control { - border-color: ${focusBorder}; - } - :host([open][position='above']) .listbox { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - } - :host([open][position='below']) .listbox { - border-top-left-radius: 0; - border-top-right-radius: 0; - } - :host([open][position='above']) .listbox { - bottom: calc(${inputHeight} * 1px); - } - :host([open][position='below']) .listbox { - top: calc(${inputHeight} * 1px); - } - .selected-value { - flex: 1 1 auto; - font-family: inherit; - overflow: hidden; - text-align: start; - text-overflow: ellipsis; - white-space: nowrap; - } - .indicator { - flex: 0 0 auto; - margin-inline-start: 1em; - } - slot[name='listbox'] { - display: none; - width: 100%; - } - :host([open]) slot[name='listbox'] { - display: flex; - position: absolute; - } - .end { - margin-inline-start: auto; - } - .start, - .end, - .indicator, - .select-indicator, - ::slotted(svg), - ::slotted(span) { - fill: currentcolor; - height: 1em; - min-height: calc(${designUnit} * 4px); - min-width: calc(${designUnit} * 4px); - width: 1em; - } - ::slotted([role='option']), - ::slotted(option) { - flex: 0 0 auto; - } -`;class Dropdown extends Select{}const vsCodeDropdown=Dropdown.compose({baseName:"dropdown",template:selectTemplate,styles:dropdownStyles,indicator:` - - - - `}),linkStyles=(S,C)=>css$1` - ${display("inline-flex")} :host { - background: transparent; - box-sizing: border-box; - color: ${linkForeground}; - cursor: pointer; - fill: currentcolor; - font-family: ${fontFamily}; - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - outline: none; - } - .control { - background: transparent; - border: calc(${borderWidth} * 1px) solid transparent; - border-radius: calc(${cornerRadius} * 1px); - box-sizing: border-box; - color: inherit; - cursor: inherit; - fill: inherit; - font-family: inherit; - height: inherit; - padding: 0; - outline: none; - text-decoration: none; - word-break: break-word; - } - .control::-moz-focus-inner { - border: 0; - } - :host(:hover) { - color: ${linkActiveForeground}; - } - :host(:hover) .content { - text-decoration: underline; - } - :host(:active) { - background: transparent; - color: ${linkActiveForeground}; - } - :host(:${focusVisible}) .control, - :host(:focus) .control { - border: calc(${borderWidth} * 1px) solid ${focusBorder}; - } -`;class Link extends Anchor{}const vsCodeLink=Link.compose({baseName:"link",template:anchorTemplate,styles:linkStyles,shadowOptions:{delegatesFocus:!0}}),optionStyles=(S,C)=>css$1` - ${display("inline-flex")} :host { - font-family: var(--body-font); - border-radius: ${cornerRadius}; - border: calc(${borderWidth} * 1px) solid transparent; - box-sizing: border-box; - color: ${foreground}; - cursor: pointer; - fill: currentcolor; - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - margin: 0; - outline: none; - overflow: hidden; - padding: 0 calc((${designUnit} / 2) * 1px) - calc((${designUnit} / 4) * 1px); - user-select: none; - white-space: nowrap; - } - :host(:${focusVisible}) { - border-color: ${focusBorder}; - background: ${listActiveSelectionBackground}; - color: ${foreground}; - } - :host([aria-selected='true']) { - background: ${listActiveSelectionBackground}; - border: calc(${borderWidth} * 1px) solid transparent; - color: ${listActiveSelectionForeground}; - } - :host(:active) { - background: ${listActiveSelectionBackground}; - color: ${listActiveSelectionForeground}; - } - :host(:not([aria-selected='true']):hover) { - background: ${listActiveSelectionBackground}; - border: calc(${borderWidth} * 1px) solid transparent; - color: ${listActiveSelectionForeground}; - } - :host(:not([aria-selected='true']):active) { - background: ${listActiveSelectionBackground}; - color: ${foreground}; - } - :host([disabled]) { - cursor: ${disabledCursor}; - opacity: ${disabledOpacity}; - } - :host([disabled]:hover) { - background-color: inherit; - } - .content { - grid-column-start: 2; - justify-self: start; - overflow: hidden; - text-overflow: ellipsis; - } -`;let Option$1=class extends ListboxOption{connectedCallback(){super.connectedCallback(),this.textContent?this.setAttribute("aria-label",this.textContent):this.setAttribute("aria-label","Option")}};const vsCodeOption=Option$1.compose({baseName:"option",template:listboxOptionTemplate,styles:optionStyles}),panelsStyles=(S,C)=>css$1` - ${display("grid")} :host { - box-sizing: border-box; - font-family: ${fontFamily}; - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - color: ${foreground}; - grid-template-columns: auto 1fr auto; - grid-template-rows: auto 1fr; - overflow-x: auto; - } - .tablist { - display: grid; - grid-template-rows: auto auto; - grid-template-columns: auto; - column-gap: calc(${designUnit} * 8px); - position: relative; - width: max-content; - align-self: end; - padding: calc(${designUnit} * 1px) calc(${designUnit} * 1px) 0; - box-sizing: border-box; - } - .start, - .end { - align-self: center; - } - .activeIndicator { - grid-row: 2; - grid-column: 1; - width: 100%; - height: calc((${designUnit} / 4) * 1px); - justify-self: center; - background: ${panelTabActiveForeground}; - margin: 0; - border-radius: calc(${cornerRadius} * 1px); - } - .activeIndicatorTransition { - transition: transform 0.01s linear; - } - .tabpanel { - grid-row: 2; - grid-column-start: 1; - grid-column-end: 4; - position: relative; - } -`,panelTabStyles=(S,C)=>css$1` - ${display("inline-flex")} :host { - box-sizing: border-box; - font-family: ${fontFamily}; - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - height: calc(${designUnit} * 7px); - padding: calc(${designUnit} * 1px) 0; - color: ${panelTabForeground}; - fill: currentcolor; - border-radius: calc(${cornerRadius} * 1px); - border: solid calc(${borderWidth} * 1px) transparent; - align-items: center; - justify-content: center; - grid-row: 1; - cursor: pointer; - } - :host(:hover) { - color: ${panelTabActiveForeground}; - fill: currentcolor; - } - :host(:active) { - color: ${panelTabActiveForeground}; - fill: currentcolor; - } - :host([aria-selected='true']) { - background: transparent; - color: ${panelTabActiveForeground}; - fill: currentcolor; - } - :host([aria-selected='true']:hover) { - background: transparent; - color: ${panelTabActiveForeground}; - fill: currentcolor; - } - :host([aria-selected='true']:active) { - background: transparent; - color: ${panelTabActiveForeground}; - fill: currentcolor; - } - :host(:${focusVisible}) { - outline: none; - border: solid calc(${borderWidth} * 1px) ${panelTabActiveBorder}; - } - :host(:focus) { - outline: none; - } - ::slotted(vscode-badge) { - margin-inline-start: calc(${designUnit} * 2px); - } -`,panelViewStyles=(S,C)=>css$1` - ${display("flex")} :host { - color: inherit; - background-color: transparent; - border: solid calc(${borderWidth} * 1px) transparent; - box-sizing: border-box; - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - padding: 10px calc((${designUnit} + 2) * 1px); - } -`;class Panels extends Tabs{connectedCallback(){super.connectedCallback(),this.orientation&&(this.orientation=TabsOrientation.horizontal),this.getAttribute("aria-label")||this.setAttribute("aria-label","Panels")}}const vsCodePanels=Panels.compose({baseName:"panels",template:tabsTemplate,styles:panelsStyles});class PanelTab extends Tab{connectedCallback(){super.connectedCallback(),this.disabled&&(this.disabled=!1),this.textContent&&this.setAttribute("aria-label",this.textContent)}}const vsCodePanelTab=PanelTab.compose({baseName:"panel-tab",template:tabTemplate,styles:panelTabStyles});class PanelView extends TabPanel{}const vsCodePanelView=PanelView.compose({baseName:"panel-view",template:tabPanelTemplate,styles:panelViewStyles}),progressRingStyles=(S,C)=>css$1` - ${display("flex")} :host { - align-items: center; - outline: none; - height: calc(${designUnit} * 7px); - width: calc(${designUnit} * 7px); - margin: 0; - } - .progress { - height: 100%; - width: 100%; - } - .background { - fill: none; - stroke: transparent; - stroke-width: calc(${designUnit} / 2 * 1px); - } - .indeterminate-indicator-1 { - fill: none; - stroke: ${progressBackground}; - stroke-width: calc(${designUnit} / 2 * 1px); - stroke-linecap: square; - transform-origin: 50% 50%; - transform: rotate(-90deg); - transition: all 0.2s ease-in-out; - animation: spin-infinite 2s linear infinite; - } - @keyframes spin-infinite { - 0% { - stroke-dasharray: 0.01px 43.97px; - transform: rotate(0deg); - } - 50% { - stroke-dasharray: 21.99px 21.99px; - transform: rotate(450deg); - } - 100% { - stroke-dasharray: 0.01px 43.97px; - transform: rotate(1080deg); - } - } -`;class ProgressRing extends BaseProgress{connectedCallback(){super.connectedCallback(),this.paused&&(this.paused=!1),this.setAttribute("aria-label","Loading"),this.setAttribute("aria-live","assertive"),this.setAttribute("role","alert")}attributeChangedCallback(C,R,O){C==="value"&&this.removeAttribute("value")}}const vsCodeProgressRing=ProgressRing.compose({baseName:"progress-ring",template:progressRingTemplate,styles:progressRingStyles,indeterminateIndicator:` - - - - - `}),radioGroupStyles=(S,C)=>css$1` - ${display("flex")} :host { - align-items: flex-start; - margin: calc(${designUnit} * 1px) 0; - flex-direction: column; - } - .positioning-region { - display: flex; - flex-wrap: wrap; - } - :host([orientation='vertical']) .positioning-region { - flex-direction: column; - } - :host([orientation='horizontal']) .positioning-region { - flex-direction: row; - } - ::slotted([slot='label']) { - color: ${foreground}; - font-size: ${typeRampBaseFontSize}; - margin: calc(${designUnit} * 1px) 0; - } -`;class RadioGroup extends RadioGroup$1{connectedCallback(){super.connectedCallback();const C=this.querySelector("label");if(C){const R="radio-group-"+Math.random().toString(16).slice(2);C.setAttribute("id",R),this.setAttribute("aria-labelledby",R)}}}const vsCodeRadioGroup=RadioGroup.compose({baseName:"radio-group",template:radioGroupTemplate,styles:radioGroupStyles}),radioStyles=(S,C)=>css$1` - ${display("inline-flex")} :host { - align-items: center; - flex-direction: row; - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - margin: calc(${designUnit} * 1px) 0; - outline: none; - position: relative; - transition: all 0.2s ease-in-out; - user-select: none; - } - .control { - background: ${checkboxBackground}; - border-radius: 999px; - border: calc(${borderWidth} * 1px) solid ${checkboxBorder}; - box-sizing: border-box; - cursor: pointer; - height: calc(${designUnit} * 4px); - position: relative; - outline: none; - width: calc(${designUnit} * 4px); - } - .label { - color: ${foreground}; - cursor: pointer; - font-family: ${fontFamily}; - margin-inline-end: calc(${designUnit} * 2px + 2px); - padding-inline-start: calc(${designUnit} * 2px + 2px); - } - .label__hidden { - display: none; - visibility: hidden; - } - .control, - .checked-indicator { - flex-shrink: 0; - } - .checked-indicator { - background: ${foreground}; - border-radius: 999px; - display: inline-block; - inset: calc(${designUnit} * 1px); - opacity: 0; - pointer-events: none; - position: absolute; - } - :host(:not([disabled])) .control:hover { - background: ${checkboxBackground}; - border-color: ${checkboxBorder}; - } - :host(:not([disabled])) .control:active { - background: ${checkboxBackground}; - border-color: ${focusBorder}; - } - :host(:${focusVisible}) .control { - border: calc(${borderWidth} * 1px) solid ${focusBorder}; - } - :host([aria-checked='true']) .control { - background: ${checkboxBackground}; - border: calc(${borderWidth} * 1px) solid ${checkboxBorder}; - } - :host([aria-checked='true']:not([disabled])) .control:hover { - background: ${checkboxBackground}; - border: calc(${borderWidth} * 1px) solid ${checkboxBorder}; - } - :host([aria-checked='true']:not([disabled])) .control:active { - background: ${checkboxBackground}; - border: calc(${borderWidth} * 1px) solid ${focusBorder}; - } - :host([aria-checked="true"]:${focusVisible}:not([disabled])) .control { - border: calc(${borderWidth} * 1px) solid ${focusBorder}; - } - :host([disabled]) .label, - :host([readonly]) .label, - :host([readonly]) .control, - :host([disabled]) .control { - cursor: ${disabledCursor}; - } - :host([aria-checked='true']) .checked-indicator { - opacity: 1; - } - :host([disabled]) { - opacity: ${disabledOpacity}; - } -`;class Radio extends Radio$1{connectedCallback(){super.connectedCallback(),this.textContent?this.setAttribute("aria-label",this.textContent):this.setAttribute("aria-label","Radio")}}const vsCodeRadio=Radio.compose({baseName:"radio",template:radioTemplate,styles:radioStyles,checkedIndicator:` -
- `}),tagStyles=(S,C)=>css$1` - ${display("inline-block")} :host { - box-sizing: border-box; - font-family: ${fontFamily}; - font-size: ${typeRampMinus1FontSize}; - line-height: ${typeRampMinus1LineHeight}; - } - .control { - background-color: ${badgeBackground}; - border: calc(${borderWidth} * 1px) solid ${buttonBorder}; - border-radius: ${tagCornerRadius}; - color: ${badgeForeground}; - padding: calc(${designUnit} * 0.5px) calc(${designUnit} * 1px); - text-transform: uppercase; - } -`;class Tag extends Badge$1{connectedCallback(){super.connectedCallback(),this.circular&&(this.circular=!1)}}const vsCodeTag=Tag.compose({baseName:"tag",template:badgeTemplate,styles:tagStyles}),textAreaStyles=(S,C)=>css$1` - ${display("inline-block")} :host { - font-family: ${fontFamily}; - outline: none; - user-select: none; - } - .control { - box-sizing: border-box; - position: relative; - color: ${inputForeground}; - background: ${inputBackground}; - border-radius: calc(${cornerRadiusRound} * 1px); - border: calc(${borderWidth} * 1px) solid ${dropdownBorder}; - font: inherit; - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - padding: calc(${designUnit} * 2px + 1px); - width: 100%; - min-width: ${inputMinWidth}; - resize: none; - } - .control:hover:enabled { - background: ${inputBackground}; - border-color: ${dropdownBorder}; - } - .control:active:enabled { - background: ${inputBackground}; - border-color: ${focusBorder}; - } - .control:hover, - .control:${focusVisible}, - .control:disabled, - .control:active { - outline: none; - } - .control::-webkit-scrollbar { - width: ${scrollbarWidth}; - height: ${scrollbarHeight}; - } - .control::-webkit-scrollbar-corner { - background: ${inputBackground}; - } - .control::-webkit-scrollbar-thumb { - background: ${scrollbarSliderBackground}; - } - .control::-webkit-scrollbar-thumb:hover { - background: ${scrollbarSliderHoverBackground}; - } - .control::-webkit-scrollbar-thumb:active { - background: ${scrollbarSliderActiveBackground}; - } - :host(:focus-within:not([disabled])) .control { - border-color: ${focusBorder}; - } - :host([resize='both']) .control { - resize: both; - } - :host([resize='horizontal']) .control { - resize: horizontal; - } - :host([resize='vertical']) .control { - resize: vertical; - } - .label { - display: block; - color: ${foreground}; - cursor: pointer; - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - margin-bottom: 2px; - } - .label__hidden { - display: none; - visibility: hidden; - } - :host([disabled]) .label, - :host([readonly]) .label, - :host([readonly]) .control, - :host([disabled]) .control { - cursor: ${disabledCursor}; - } - :host([disabled]) { - opacity: ${disabledOpacity}; - } - :host([disabled]) .control { - border-color: ${dropdownBorder}; - } -`;class TextArea extends TextArea$1{connectedCallback(){super.connectedCallback(),this.textContent?this.setAttribute("aria-label",this.textContent):this.setAttribute("aria-label","Text area")}}const vsCodeTextArea=TextArea.compose({baseName:"text-area",template:textAreaTemplate,styles:textAreaStyles,shadowOptions:{delegatesFocus:!0}}),textFieldStyles=(S,C)=>css$1` - ${display("inline-block")} :host { - font-family: ${fontFamily}; - outline: none; - user-select: none; - } - .root { - box-sizing: border-box; - position: relative; - display: flex; - flex-direction: row; - color: ${inputForeground}; - background: ${inputBackground}; - border-radius: calc(${cornerRadiusRound} * 1px); - border: calc(${borderWidth} * 1px) solid ${dropdownBorder}; - height: calc(${inputHeight} * 1px); - min-width: ${inputMinWidth}; - } - .control { - -webkit-appearance: none; - font: inherit; - background: transparent; - border: 0; - color: inherit; - height: calc(100% - (${designUnit} * 1px)); - width: 100%; - margin-top: auto; - margin-bottom: auto; - border: none; - padding: 0 calc(${designUnit} * 2px + 1px); - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - } - .control:hover, - .control:${focusVisible}, - .control:disabled, - .control:active { - outline: none; - } - .label { - display: block; - color: ${foreground}; - cursor: pointer; - font-size: ${typeRampBaseFontSize}; - line-height: ${typeRampBaseLineHeight}; - margin-bottom: 2px; - } - .label__hidden { - display: none; - visibility: hidden; - } - .start, - .end { - display: flex; - margin: auto; - fill: currentcolor; - } - ::slotted(svg), - ::slotted(span) { - width: calc(${designUnit} * 4px); - height: calc(${designUnit} * 4px); - } - .start { - margin-inline-start: calc(${designUnit} * 2px); - } - .end { - margin-inline-end: calc(${designUnit} * 2px); - } - :host(:hover:not([disabled])) .root { - background: ${inputBackground}; - border-color: ${dropdownBorder}; - } - :host(:active:not([disabled])) .root { - background: ${inputBackground}; - border-color: ${focusBorder}; - } - :host(:focus-within:not([disabled])) .root { - border-color: ${focusBorder}; - } - :host([disabled]) .label, - :host([readonly]) .label, - :host([readonly]) .control, - :host([disabled]) .control { - cursor: ${disabledCursor}; - } - :host([disabled]) { - opacity: ${disabledOpacity}; - } - :host([disabled]) .control { - border-color: ${dropdownBorder}; - } -`;class TextField extends TextField$1{connectedCallback(){super.connectedCallback(),this.textContent?this.setAttribute("aria-label",this.textContent):this.setAttribute("aria-label","Text field")}}const vsCodeTextField=TextField.compose({baseName:"text-field",template:textFieldTemplate,styles:textFieldStyles,shadowOptions:{delegatesFocus:!0}}),{wrap:wrap$1}=provideReactWrapper(React,provideVSCodeDesignSystem());wrap$1(vsCodeBadge(),{name:"vscode-badge"}),wrap$1(vsCodeButton(),{name:"vscode-button"}),wrap$1(vsCodeCheckbox(),{name:"vscode-checkbox",events:{onChange:"change"}}),wrap$1(vsCodeDataGrid(),{name:"vscode-data-grid"}),wrap$1(vsCodeDataGridCell(),{name:"vscode-data-grid-cell"}),wrap$1(vsCodeDataGridRow(),{name:"vscode-data-grid-row"}),wrap$1(vsCodeDivider(),{name:"vscode-divider"}),wrap$1(vsCodeDropdown(),{name:"vscode-dropdown",events:{onChange:"change"}}),wrap$1(vsCodeLink(),{name:"vscode-link"}),wrap$1(vsCodeOption(),{name:"vscode-option"}),wrap$1(vsCodePanels(),{name:"vscode-panels",events:{onChange:"change"}}),wrap$1(vsCodePanelTab(),{name:"vscode-panel-tab"}),wrap$1(vsCodePanelView(),{name:"vscode-panel-view"});const VSCodeProgressRing=wrap$1(vsCodeProgressRing(),{name:"vscode-progress-ring"});wrap$1(vsCodeRadio(),{name:"vscode-radio",events:{onChange:"change"}}),wrap$1(vsCodeRadioGroup(),{name:"vscode-radio-group",events:{onChange:"change"}}),wrap$1(vsCodeTag(),{name:"vscode-tag"}),wrap$1(vsCodeTextArea(),{name:"vscode-text-area",events:{onChange:"change",onInput:"input"}}),wrap$1(vsCodeTextField(),{name:"vscode-text-field",events:{onChange:"change",onInput:"input"}});const Loading=({isFullPage:S=!1,style:C={}})=>{const R=S?{...C,height:"100vh",width:"100%"}:{...C};return jsxRuntimeExports.jsx(Stack$1,{horizontalAlign:"center",verticalAlign:"center",verticalFill:!0,style:R,children:jsxRuntimeExports.jsx(VSCodeProgressRing,{})})};memoizeFunction((S,C)=>mergeStyleSets({root:mergeStyles$1({display:"flex",flexDirection:"row",alignItems:"center",height:"30px",background:"var(--background)",width:"100%",...C&&{position:"fixed",top:0,zIndex:100}},S),buttonGroup:{display:"flex",flexDirection:"row",height:"30px"},searchField:{marginRight:"100px",selectors:{"div.root":{height:"30px"}}}}));var toggleSelection=function(){var S=document.getSelection();if(!S.rangeCount)return function(){};for(var C=document.activeElement,R=[],O=0;O"u"){R&&console.warn("unable to use e.clipboardData"),R&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var K=clipboardToIE11Formatting[C.format]||clipboardToIE11Formatting.default;window.clipboardData.setData(K,S)}else V.clipboardData.clearData(),V.clipboardData.setData(C.format,S);C.onCopy&&(V.preventDefault(),C.onCopy(V.clipboardData))}),document.body.appendChild(B),N.selectNodeContents(B),L.addRange(N);var F=document.execCommand("copy");if(!F)throw new Error("copy command was unsuccessful");j=!0}catch(V){R&&console.error("unable to copy using execCommand: ",V),R&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(C.format||"text",S),C.onCopy&&C.onCopy(window.clipboardData),j=!0}catch(K){R&&console.error("unable to copy using clipboardData: ",K),R&&console.error("falling back to prompt"),O=format$2("message"in C?C.message:defaultMessage),window.prompt(O,S)}}finally{L&&(typeof L.removeRange=="function"?L.removeRange(N):L.removeAllRanges()),B&&document.body.removeChild(B),I()}return j}var copyToClipboard=copy$3;const copy$4=getDefaultExportFromCjs(copyToClipboard);var main={exports:{}};(function(S,C){(function(R,O){S.exports=O(requireReact())})(commonjsGlobal,function(R){return function(O){var I={};function N(L){if(I[L])return I[L].exports;var B=I[L]={i:L,l:!1,exports:{}};return O[L].call(B.exports,B,B.exports,N),B.l=!0,B.exports}return N.m=O,N.c=I,N.d=function(L,B,j){N.o(L,B)||Object.defineProperty(L,B,{enumerable:!0,get:j})},N.r=function(L){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(L,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(L,"__esModule",{value:!0})},N.t=function(L,B){if(1&B&&(L=N(L)),8&B||4&B&&typeof L=="object"&&L&&L.__esModule)return L;var j=Object.create(null);if(N.r(j),Object.defineProperty(j,"default",{enumerable:!0,value:L}),2&B&&typeof L!="string")for(var F in L)N.d(j,F,(function(V){return L[V]}).bind(null,F));return j},N.n=function(L){var B=L&&L.__esModule?function(){return L.default}:function(){return L};return N.d(B,"a",B),B},N.o=function(L,B){return Object.prototype.hasOwnProperty.call(L,B)},N.p="",N(N.s=48)}([function(O,I){O.exports=R},function(O,I){var N=O.exports={version:"2.6.12"};typeof __e=="number"&&(__e=N)},function(O,I,N){var L=N(26)("wks"),B=N(17),j=N(3).Symbol,F=typeof j=="function";(O.exports=function(V){return L[V]||(L[V]=F&&j[V]||(F?j:B)("Symbol."+V))}).store=L},function(O,I){var N=O.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=N)},function(O,I,N){O.exports=!N(8)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(O,I){var N={}.hasOwnProperty;O.exports=function(L,B){return N.call(L,B)}},function(O,I,N){var L=N(7),B=N(16);O.exports=N(4)?function(j,F,V){return L.f(j,F,B(1,V))}:function(j,F,V){return j[F]=V,j}},function(O,I,N){var L=N(10),B=N(35),j=N(23),F=Object.defineProperty;I.f=N(4)?Object.defineProperty:function(V,K,W){if(L(V),K=j(K,!0),L(W),B)try{return F(V,K,W)}catch{}if("get"in W||"set"in W)throw TypeError("Accessors not supported!");return"value"in W&&(V[K]=W.value),V}},function(O,I){O.exports=function(N){try{return!!N()}catch{return!0}}},function(O,I,N){var L=N(40),B=N(22);O.exports=function(j){return L(B(j))}},function(O,I,N){var L=N(11);O.exports=function(B){if(!L(B))throw TypeError(B+" is not an object!");return B}},function(O,I){O.exports=function(N){return typeof N=="object"?N!==null:typeof N=="function"}},function(O,I){O.exports={}},function(O,I,N){var L=N(39),B=N(27);O.exports=Object.keys||function(j){return L(j,B)}},function(O,I){O.exports=!0},function(O,I,N){var L=N(3),B=N(1),j=N(53),F=N(6),V=N(5),K=function(W,X,J){var oe,pe,me,xe=W&K.F,Ae=W&K.G,ge=W&K.S,Te=W&K.P,we=W&K.B,ke=W&K.W,Be=Ae?B:B[X]||(B[X]={}),Ie=Be.prototype,je=Ae?L:ge?L[X]:(L[X]||{}).prototype;for(oe in Ae&&(J=X),J)(pe=!xe&&je&&je[oe]!==void 0)&&V(Be,oe)||(me=pe?je[oe]:J[oe],Be[oe]=Ae&&typeof je[oe]!="function"?J[oe]:we&&pe?j(me,L):ke&&je[oe]==me?function(Ke){var Je=function(Xe,ot,tt){if(this instanceof Ke){switch(arguments.length){case 0:return new Ke;case 1:return new Ke(Xe);case 2:return new Ke(Xe,ot)}return new Ke(Xe,ot,tt)}return Ke.apply(this,arguments)};return Je.prototype=Ke.prototype,Je}(me):Te&&typeof me=="function"?j(Function.call,me):me,Te&&((Be.virtual||(Be.virtual={}))[oe]=me,W&K.R&&Ie&&!Ie[oe]&&F(Ie,oe,me)))};K.F=1,K.G=2,K.S=4,K.P=8,K.B=16,K.W=32,K.U=64,K.R=128,O.exports=K},function(O,I){O.exports=function(N,L){return{enumerable:!(1&N),configurable:!(2&N),writable:!(4&N),value:L}}},function(O,I){var N=0,L=Math.random();O.exports=function(B){return"Symbol(".concat(B===void 0?"":B,")_",(++N+L).toString(36))}},function(O,I,N){var L=N(22);O.exports=function(B){return Object(L(B))}},function(O,I){I.f={}.propertyIsEnumerable},function(O,I,N){var L=N(52)(!0);N(34)(String,"String",function(B){this._t=String(B),this._i=0},function(){var B,j=this._t,F=this._i;return F>=j.length?{value:void 0,done:!0}:(B=L(j,F),this._i+=B.length,{value:B,done:!1})})},function(O,I){var N=Math.ceil,L=Math.floor;O.exports=function(B){return isNaN(B=+B)?0:(B>0?L:N)(B)}},function(O,I){O.exports=function(N){if(N==null)throw TypeError("Can't call method on "+N);return N}},function(O,I,N){var L=N(11);O.exports=function(B,j){if(!L(B))return B;var F,V;if(j&&typeof(F=B.toString)=="function"&&!L(V=F.call(B))||typeof(F=B.valueOf)=="function"&&!L(V=F.call(B))||!j&&typeof(F=B.toString)=="function"&&!L(V=F.call(B)))return V;throw TypeError("Can't convert object to primitive value")}},function(O,I){var N={}.toString;O.exports=function(L){return N.call(L).slice(8,-1)}},function(O,I,N){var L=N(26)("keys"),B=N(17);O.exports=function(j){return L[j]||(L[j]=B(j))}},function(O,I,N){var L=N(1),B=N(3),j=B["__core-js_shared__"]||(B["__core-js_shared__"]={});(O.exports=function(F,V){return j[F]||(j[F]=V!==void 0?V:{})})("versions",[]).push({version:L.version,mode:N(14)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(O,I){O.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(O,I,N){var L=N(7).f,B=N(5),j=N(2)("toStringTag");O.exports=function(F,V,K){F&&!B(F=K?F:F.prototype,j)&&L(F,j,{configurable:!0,value:V})}},function(O,I,N){N(62);for(var L=N(3),B=N(6),j=N(12),F=N(2)("toStringTag"),V="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),K=0;Kdocument.F=Object<\/script>"),W.close(),K=W.F;J--;)delete K.prototype[j[J]];return K()};O.exports=Object.create||function(W,X){var J;return W!==null?(V.prototype=L(W),J=new V,V.prototype=null,J[F]=W):J=K(),X===void 0?J:B(J,X)}},function(O,I,N){var L=N(5),B=N(9),j=N(57)(!1),F=N(25)("IE_PROTO");O.exports=function(V,K){var W,X=B(V),J=0,oe=[];for(W in X)W!=F&&L(X,W)&&oe.push(W);for(;K.length>J;)L(X,W=K[J++])&&(~j(oe,W)||oe.push(W));return oe}},function(O,I,N){var L=N(24);O.exports=Object("z").propertyIsEnumerable(0)?Object:function(B){return L(B)=="String"?B.split(""):Object(B)}},function(O,I,N){var L=N(39),B=N(27).concat("length","prototype");I.f=Object.getOwnPropertyNames||function(j){return L(j,B)}},function(O,I,N){var L=N(24),B=N(2)("toStringTag"),j=L(function(){return arguments}())=="Arguments";O.exports=function(F){var V,K,W;return F===void 0?"Undefined":F===null?"Null":typeof(K=function(X,J){try{return X[J]}catch{}}(V=Object(F),B))=="string"?K:j?L(V):(W=L(V))=="Object"&&typeof V.callee=="function"?"Arguments":W}},function(O,I){var N;N=function(){return this}();try{N=N||new Function("return this")()}catch{typeof window=="object"&&(N=window)}O.exports=N},function(O,I){var N=/-?\d+(\.\d+)?%?/g;O.exports=function(L){return L.match(N)}},function(O,I,N){Object.defineProperty(I,"__esModule",{value:!0}),I.getBase16Theme=I.createStyling=I.invertTheme=void 0;var L=pe(N(49)),B=pe(N(76)),j=pe(N(81)),F=pe(N(89)),V=pe(N(93)),K=function(Ie){if(Ie&&Ie.__esModule)return Ie;var je={};if(Ie!=null)for(var Ke in Ie)Object.prototype.hasOwnProperty.call(Ie,Ke)&&(je[Ke]=Ie[Ke]);return je.default=Ie,je}(N(94)),W=pe(N(132)),X=pe(N(133)),J=pe(N(138)),oe=N(139);function pe(Ie){return Ie&&Ie.__esModule?Ie:{default:Ie}}var me=K.default,xe=(0,F.default)(me),Ae=(0,J.default)(X.default,oe.rgb2yuv,function(Ie){var je,Ke=(0,j.default)(Ie,3),Je=Ke[0],Xe=Ke[1],ot=Ke[2];return[(je=Je,je<.25?1:je<.5?.9-je:1.1-je),Xe,ot]},oe.yuv2rgb,W.default),ge=function(Ie){return function(je){return{className:[je.className,Ie.className].filter(Boolean).join(" "),style:(0,B.default)({},je.style||{},Ie.style||{})}}},Te=function(Ie,je){var Ke=(0,F.default)(je);for(var Je in Ie)Ke.indexOf(Je)===-1&&Ke.push(Je);return Ke.reduce(function(Xe,ot){return Xe[ot]=function(tt,Ue){if(tt===void 0)return Ue;if(Ue===void 0)return tt;var et=tt===void 0?"undefined":(0,L.default)(tt),dt=Ue===void 0?"undefined":(0,L.default)(Ue);switch(et){case"string":switch(dt){case"string":return[Ue,tt].filter(Boolean).join(" ");case"object":return ge({className:tt,style:Ue});case"function":return function(gt){for(var Qe=arguments.length,lt=Array(Qe>1?Qe-1:0),ht=1;ht1?Qe-1:0),ht=1;ht1?Qe-1:0),ht=1;ht1?Qe-1:0),ht=1;ht1?Qe-1:0),ht=1;ht2?Ke-2:0),Xe=2;Xe3?je-3:0),Je=3;Je1&&arguments[1]!==void 0?arguments[1]:{},ot=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},tt=Xe.defaultBase16,Ue=tt===void 0?me:tt,et=Xe.base16Themes,dt=et===void 0?null:et,gt=Be(ot,dt);gt&&(ot=(0,B.default)({},gt,ot));var Qe=xe.reduce(function($t,Lt){return $t[Lt]=ot[Lt]||Ue[Lt],$t},{}),lt=(0,F.default)(ot).reduce(function($t,Lt){return xe.indexOf(Lt)===-1&&($t[Lt]=ot[Lt]),$t},{}),ht=Ie(Qe),Ct=Te(lt,ht);return(0,V.default)(we,2).apply(void 0,[Ct].concat(Ke))},3),I.getBase16Theme=function(Ie,je){if(Ie&&Ie.extend&&(Ie=Ie.extend),typeof Ie=="string"){var Ke=Ie.split(":"),Je=(0,j.default)(Ke,2),Xe=Je[0],ot=Je[1];Ie=(je||{})[Xe]||K[Xe],ot==="inverted"&&(Ie=ke(Ie))}return Ie&&Ie.hasOwnProperty("base00")?Ie:void 0})},function(O,I,N){var L,B=typeof Reflect=="object"?Reflect:null,j=B&&typeof B.apply=="function"?B.apply:function(ge,Te,we){return Function.prototype.apply.call(ge,Te,we)};L=B&&typeof B.ownKeys=="function"?B.ownKeys:Object.getOwnPropertySymbols?function(ge){return Object.getOwnPropertyNames(ge).concat(Object.getOwnPropertySymbols(ge))}:function(ge){return Object.getOwnPropertyNames(ge)};var F=Number.isNaN||function(ge){return ge!=ge};function V(){V.init.call(this)}O.exports=V,O.exports.once=function(ge,Te){return new Promise(function(we,ke){function Be(){Ie!==void 0&&ge.removeListener("error",Ie),we([].slice.call(arguments))}var Ie;Te!=="error"&&(Ie=function(je){ge.removeListener(Te,Be),ke(je)},ge.once("error",Ie)),ge.once(Te,Be)})},V.EventEmitter=V,V.prototype._events=void 0,V.prototype._eventsCount=0,V.prototype._maxListeners=void 0;var K=10;function W(ge){if(typeof ge!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof ge)}function X(ge){return ge._maxListeners===void 0?V.defaultMaxListeners:ge._maxListeners}function J(ge,Te,we,ke){var Be,Ie,je,Ke;if(W(we),(Ie=ge._events)===void 0?(Ie=ge._events=Object.create(null),ge._eventsCount=0):(Ie.newListener!==void 0&&(ge.emit("newListener",Te,we.listener?we.listener:we),Ie=ge._events),je=Ie[Te]),je===void 0)je=Ie[Te]=we,++ge._eventsCount;else if(typeof je=="function"?je=Ie[Te]=ke?[we,je]:[je,we]:ke?je.unshift(we):je.push(we),(Be=X(ge))>0&&je.length>Be&&!je.warned){je.warned=!0;var Je=new Error("Possible EventEmitter memory leak detected. "+je.length+" "+String(Te)+" listeners added. Use emitter.setMaxListeners() to increase limit");Je.name="MaxListenersExceededWarning",Je.emitter=ge,Je.type=Te,Je.count=je.length,Ke=Je,console&&console.warn&&console.warn(Ke)}return ge}function oe(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function pe(ge,Te,we){var ke={fired:!1,wrapFn:void 0,target:ge,type:Te,listener:we},Be=oe.bind(ke);return Be.listener=we,ke.wrapFn=Be,Be}function me(ge,Te,we){var ke=ge._events;if(ke===void 0)return[];var Be=ke[Te];return Be===void 0?[]:typeof Be=="function"?we?[Be.listener||Be]:[Be]:we?function(Ie){for(var je=new Array(Ie.length),Ke=0;Ke0&&(Ie=Te[0]),Ie instanceof Error)throw Ie;var je=new Error("Unhandled error."+(Ie?" ("+Ie.message+")":""));throw je.context=Ie,je}var Ke=Be[ge];if(Ke===void 0)return!1;if(typeof Ke=="function")j(Ke,this,Te);else{var Je=Ke.length,Xe=Ae(Ke,Je);for(we=0;we=0;Ie--)if(we[Ie]===Te||we[Ie].listener===Te){je=we[Ie].listener,Be=Ie;break}if(Be<0)return this;Be===0?we.shift():function(Ke,Je){for(;Je+1=0;ke--)this.removeListener(ge,Te[ke]);return this},V.prototype.listeners=function(ge){return me(this,ge,!0)},V.prototype.rawListeners=function(ge){return me(this,ge,!1)},V.listenerCount=function(ge,Te){return typeof ge.listenerCount=="function"?ge.listenerCount(Te):xe.call(ge,Te)},V.prototype.listenerCount=xe,V.prototype.eventNames=function(){return this._eventsCount>0?L(this._events):[]}},function(O,I,N){O.exports.Dispatcher=N(140)},function(O,I,N){O.exports=N(142)},function(O,I,N){I.__esModule=!0;var L=F(N(50)),B=F(N(65)),j=typeof B.default=="function"&&typeof L.default=="symbol"?function(V){return typeof V}:function(V){return V&&typeof B.default=="function"&&V.constructor===B.default&&V!==B.default.prototype?"symbol":typeof V};function F(V){return V&&V.__esModule?V:{default:V}}I.default=typeof B.default=="function"&&j(L.default)==="symbol"?function(V){return V===void 0?"undefined":j(V)}:function(V){return V&&typeof B.default=="function"&&V.constructor===B.default&&V!==B.default.prototype?"symbol":V===void 0?"undefined":j(V)}},function(O,I,N){O.exports={default:N(51),__esModule:!0}},function(O,I,N){N(20),N(29),O.exports=N(30).f("iterator")},function(O,I,N){var L=N(21),B=N(22);O.exports=function(j){return function(F,V){var K,W,X=String(B(F)),J=L(V),oe=X.length;return J<0||J>=oe?j?"":void 0:(K=X.charCodeAt(J))<55296||K>56319||J+1===oe||(W=X.charCodeAt(J+1))<56320||W>57343?j?X.charAt(J):K:j?X.slice(J,J+2):W-56320+(K-55296<<10)+65536}}},function(O,I,N){var L=N(54);O.exports=function(B,j,F){if(L(B),j===void 0)return B;switch(F){case 1:return function(V){return B.call(j,V)};case 2:return function(V,K){return B.call(j,V,K)};case 3:return function(V,K,W){return B.call(j,V,K,W)}}return function(){return B.apply(j,arguments)}}},function(O,I){O.exports=function(N){if(typeof N!="function")throw TypeError(N+" is not a function!");return N}},function(O,I,N){var L=N(38),B=N(16),j=N(28),F={};N(6)(F,N(2)("iterator"),function(){return this}),O.exports=function(V,K,W){V.prototype=L(F,{next:B(1,W)}),j(V,K+" Iterator")}},function(O,I,N){var L=N(7),B=N(10),j=N(13);O.exports=N(4)?Object.defineProperties:function(F,V){B(F);for(var K,W=j(V),X=W.length,J=0;X>J;)L.f(F,K=W[J++],V[K]);return F}},function(O,I,N){var L=N(9),B=N(58),j=N(59);O.exports=function(F){return function(V,K,W){var X,J=L(V),oe=B(J.length),pe=j(W,oe);if(F&&K!=K){for(;oe>pe;)if((X=J[pe++])!=X)return!0}else for(;oe>pe;pe++)if((F||pe in J)&&J[pe]===K)return F||pe||0;return!F&&-1}}},function(O,I,N){var L=N(21),B=Math.min;O.exports=function(j){return j>0?B(L(j),9007199254740991):0}},function(O,I,N){var L=N(21),B=Math.max,j=Math.min;O.exports=function(F,V){return(F=L(F))<0?B(F+V,0):j(F,V)}},function(O,I,N){var L=N(3).document;O.exports=L&&L.documentElement},function(O,I,N){var L=N(5),B=N(18),j=N(25)("IE_PROTO"),F=Object.prototype;O.exports=Object.getPrototypeOf||function(V){return V=B(V),L(V,j)?V[j]:typeof V.constructor=="function"&&V instanceof V.constructor?V.constructor.prototype:V instanceof Object?F:null}},function(O,I,N){var L=N(63),B=N(64),j=N(12),F=N(9);O.exports=N(34)(Array,"Array",function(V,K){this._t=F(V),this._i=0,this._k=K},function(){var V=this._t,K=this._k,W=this._i++;return!V||W>=V.length?(this._t=void 0,B(1)):B(0,K=="keys"?W:K=="values"?V[W]:[W,V[W]])},"values"),j.Arguments=j.Array,L("keys"),L("values"),L("entries")},function(O,I){O.exports=function(){}},function(O,I){O.exports=function(N,L){return{value:L,done:!!N}}},function(O,I,N){O.exports={default:N(66),__esModule:!0}},function(O,I,N){N(67),N(73),N(74),N(75),O.exports=N(1).Symbol},function(O,I,N){var L=N(3),B=N(5),j=N(4),F=N(15),V=N(37),K=N(68).KEY,W=N(8),X=N(26),J=N(28),oe=N(17),pe=N(2),me=N(30),xe=N(31),Ae=N(69),ge=N(70),Te=N(10),we=N(11),ke=N(18),Be=N(9),Ie=N(23),je=N(16),Ke=N(38),Je=N(71),Xe=N(72),ot=N(32),tt=N(7),Ue=N(13),et=Xe.f,dt=tt.f,gt=Je.f,Qe=L.Symbol,lt=L.JSON,ht=lt&<.stringify,Ct=pe("_hidden"),$t=pe("toPrimitive"),Lt={}.propertyIsEnumerable,Gt=X("symbol-registry"),Pt=X("symbols"),Vt=X("op-symbols"),bt=Object.prototype,It=typeof Qe=="function"&&!!ot.f,Ht=L.QObject,kt=!Ht||!Ht.prototype||!Ht.prototype.findChild,Kt=j&&W(function(){return Ke(dt({},"a",{get:function(){return dt(this,"a",{value:7}).a}})).a!=7})?function(Ut,nr,Ir){var jr=et(bt,nr);jr&&delete bt[nr],dt(Ut,nr,Ir),jr&&Ut!==bt&&dt(bt,nr,jr)}:dt,tr=function(Ut){var nr=Pt[Ut]=Ke(Qe.prototype);return nr._k=Ut,nr},wr=It&&typeof Qe.iterator=="symbol"?function(Ut){return typeof Ut=="symbol"}:function(Ut){return Ut instanceof Qe},xr=function(Ut,nr,Ir){return Ut===bt&&xr(Vt,nr,Ir),Te(Ut),nr=Ie(nr,!0),Te(Ir),B(Pt,nr)?(Ir.enumerable?(B(Ut,Ct)&&Ut[Ct][nr]&&(Ut[Ct][nr]=!1),Ir=Ke(Ir,{enumerable:je(0,!1)})):(B(Ut,Ct)||dt(Ut,Ct,je(1,{})),Ut[Ct][nr]=!0),Kt(Ut,nr,Ir)):dt(Ut,nr,Ir)},Vr=function(Ut,nr){Te(Ut);for(var Ir,jr=Ae(nr=Be(nr)),Rr=0,fr=jr.length;fr>Rr;)xr(Ut,Ir=jr[Rr++],nr[Ir]);return Ut},bn=function(Ut){var nr=Lt.call(this,Ut=Ie(Ut,!0));return!(this===bt&&B(Pt,Ut)&&!B(Vt,Ut))&&(!(nr||!B(this,Ut)||!B(Pt,Ut)||B(this,Ct)&&this[Ct][Ut])||nr)},Bn=function(Ut,nr){if(Ut=Be(Ut),nr=Ie(nr,!0),Ut!==bt||!B(Pt,nr)||B(Vt,nr)){var Ir=et(Ut,nr);return!Ir||!B(Pt,nr)||B(Ut,Ct)&&Ut[Ct][nr]||(Ir.enumerable=!0),Ir}},An=function(Ut){for(var nr,Ir=gt(Be(Ut)),jr=[],Rr=0;Ir.length>Rr;)B(Pt,nr=Ir[Rr++])||nr==Ct||nr==K||jr.push(nr);return jr},Tn=function(Ut){for(var nr,Ir=Ut===bt,jr=gt(Ir?Vt:Be(Ut)),Rr=[],fr=0;jr.length>fr;)!B(Pt,nr=jr[fr++])||Ir&&!B(bt,nr)||Rr.push(Pt[nr]);return Rr};It||(V((Qe=function(){if(this instanceof Qe)throw TypeError("Symbol is not a constructor!");var Ut=oe(arguments.length>0?arguments[0]:void 0),nr=function(Ir){this===bt&&nr.call(Vt,Ir),B(this,Ct)&&B(this[Ct],Ut)&&(this[Ct][Ut]=!1),Kt(this,Ut,je(1,Ir))};return j&&kt&&Kt(bt,Ut,{configurable:!0,set:nr}),tr(Ut)}).prototype,"toString",function(){return this._k}),Xe.f=Bn,tt.f=xr,N(41).f=Je.f=An,N(19).f=bn,ot.f=Tn,j&&!N(14)&&V(bt,"propertyIsEnumerable",bn,!0),me.f=function(Ut){return tr(pe(Ut))}),F(F.G+F.W+F.F*!It,{Symbol:Qe});for(var pn="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),Mn=0;pn.length>Mn;)pe(pn[Mn++]);for(var bo=Ue(pe.store),mr=0;bo.length>mr;)xe(bo[mr++]);F(F.S+F.F*!It,"Symbol",{for:function(Ut){return B(Gt,Ut+="")?Gt[Ut]:Gt[Ut]=Qe(Ut)},keyFor:function(Ut){if(!wr(Ut))throw TypeError(Ut+" is not a symbol!");for(var nr in Gt)if(Gt[nr]===Ut)return nr},useSetter:function(){kt=!0},useSimple:function(){kt=!1}}),F(F.S+F.F*!It,"Object",{create:function(Ut,nr){return nr===void 0?Ke(Ut):Vr(Ke(Ut),nr)},defineProperty:xr,defineProperties:Vr,getOwnPropertyDescriptor:Bn,getOwnPropertyNames:An,getOwnPropertySymbols:Tn});var sr=W(function(){ot.f(1)});F(F.S+F.F*sr,"Object",{getOwnPropertySymbols:function(Ut){return ot.f(ke(Ut))}}),lt&&F(F.S+F.F*(!It||W(function(){var Ut=Qe();return ht([Ut])!="[null]"||ht({a:Ut})!="{}"||ht(Object(Ut))!="{}"})),"JSON",{stringify:function(Ut){for(var nr,Ir,jr=[Ut],Rr=1;arguments.length>Rr;)jr.push(arguments[Rr++]);if(Ir=nr=jr[1],(we(nr)||Ut!==void 0)&&!wr(Ut))return ge(nr)||(nr=function(fr,Or){if(typeof Ir=="function"&&(Or=Ir.call(this,fr,Or)),!wr(Or))return Or}),jr[1]=nr,ht.apply(lt,jr)}}),Qe.prototype[$t]||N(6)(Qe.prototype,$t,Qe.prototype.valueOf),J(Qe,"Symbol"),J(Math,"Math",!0),J(L.JSON,"JSON",!0)},function(O,I,N){var L=N(17)("meta"),B=N(11),j=N(5),F=N(7).f,V=0,K=Object.isExtensible||function(){return!0},W=!N(8)(function(){return K(Object.preventExtensions({}))}),X=function(oe){F(oe,L,{value:{i:"O"+ ++V,w:{}}})},J=O.exports={KEY:L,NEED:!1,fastKey:function(oe,pe){if(!B(oe))return typeof oe=="symbol"?oe:(typeof oe=="string"?"S":"P")+oe;if(!j(oe,L)){if(!K(oe))return"F";if(!pe)return"E";X(oe)}return oe[L].i},getWeak:function(oe,pe){if(!j(oe,L)){if(!K(oe))return!0;if(!pe)return!1;X(oe)}return oe[L].w},onFreeze:function(oe){return W&&J.NEED&&K(oe)&&!j(oe,L)&&X(oe),oe}}},function(O,I,N){var L=N(13),B=N(32),j=N(19);O.exports=function(F){var V=L(F),K=B.f;if(K)for(var W,X=K(F),J=j.f,oe=0;X.length>oe;)J.call(F,W=X[oe++])&&V.push(W);return V}},function(O,I,N){var L=N(24);O.exports=Array.isArray||function(B){return L(B)=="Array"}},function(O,I,N){var L=N(9),B=N(41).f,j={}.toString,F=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];O.exports.f=function(V){return F&&j.call(V)=="[object Window]"?function(K){try{return B(K)}catch{return F.slice()}}(V):B(L(V))}},function(O,I,N){var L=N(19),B=N(16),j=N(9),F=N(23),V=N(5),K=N(35),W=Object.getOwnPropertyDescriptor;I.f=N(4)?W:function(X,J){if(X=j(X),J=F(J,!0),K)try{return W(X,J)}catch{}if(V(X,J))return B(!L.f.call(X,J),X[J])}},function(O,I){},function(O,I,N){N(31)("asyncIterator")},function(O,I,N){N(31)("observable")},function(O,I,N){I.__esModule=!0;var L,B=N(77),j=(L=B)&&L.__esModule?L:{default:L};I.default=j.default||function(F){for(var V=1;Vme;)for(var ge,Te=K(arguments[me++]),we=xe?B(Te).concat(xe(Te)):B(Te),ke=we.length,Be=0;ke>Be;)ge=we[Be++],L&&!Ae.call(Te,ge)||(oe[ge]=Te[ge]);return oe}:W},function(O,I,N){I.__esModule=!0;var L=j(N(82)),B=j(N(85));function j(F){return F&&F.__esModule?F:{default:F}}I.default=function(F,V){if(Array.isArray(F))return F;if((0,L.default)(Object(F)))return function(K,W){var X=[],J=!0,oe=!1,pe=void 0;try{for(var me,xe=(0,B.default)(K);!(J=(me=xe.next()).done)&&(X.push(me.value),!W||X.length!==W);J=!0);}catch(Ae){oe=!0,pe=Ae}finally{try{!J&&xe.return&&xe.return()}finally{if(oe)throw pe}}return X}(F,V);throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(O,I,N){O.exports={default:N(83),__esModule:!0}},function(O,I,N){N(29),N(20),O.exports=N(84)},function(O,I,N){var L=N(42),B=N(2)("iterator"),j=N(12);O.exports=N(1).isIterable=function(F){var V=Object(F);return V[B]!==void 0||"@@iterator"in V||j.hasOwnProperty(L(V))}},function(O,I,N){O.exports={default:N(86),__esModule:!0}},function(O,I,N){N(29),N(20),O.exports=N(87)},function(O,I,N){var L=N(10),B=N(88);O.exports=N(1).getIterator=function(j){var F=B(j);if(typeof F!="function")throw TypeError(j+" is not iterable!");return L(F.call(j))}},function(O,I,N){var L=N(42),B=N(2)("iterator"),j=N(12);O.exports=N(1).getIteratorMethod=function(F){if(F!=null)return F[B]||F["@@iterator"]||j[L(F)]}},function(O,I,N){O.exports={default:N(90),__esModule:!0}},function(O,I,N){N(91),O.exports=N(1).Object.keys},function(O,I,N){var L=N(18),B=N(13);N(92)("keys",function(){return function(j){return B(L(j))}})},function(O,I,N){var L=N(15),B=N(1),j=N(8);O.exports=function(F,V){var K=(B.Object||{})[F]||Object[F],W={};W[F]=V(K),L(L.S+L.F*j(function(){K(1)}),"Object",W)}},function(O,I,N){(function(L){var B=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],j=/^\s+|\s+$/g,F=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,V=/\{\n\/\* \[wrapped with (.+)\] \*/,K=/,? & /,W=/^[-+]0x[0-9a-f]+$/i,X=/^0b[01]+$/i,J=/^\[object .+?Constructor\]$/,oe=/^0o[0-7]+$/i,pe=/^(?:0|[1-9]\d*)$/,me=parseInt,xe=typeof L=="object"&&L&&L.Object===Object&&L,Ae=typeof self=="object"&&self&&self.Object===Object&&self,ge=xe||Ae||Function("return this")();function Te(mr,sr,Ut){switch(Ut.length){case 0:return mr.call(sr);case 1:return mr.call(sr,Ut[0]);case 2:return mr.call(sr,Ut[0],Ut[1]);case 3:return mr.call(sr,Ut[0],Ut[1],Ut[2])}return mr.apply(sr,Ut)}function we(mr,sr){return!!(mr&&mr.length)&&function(Ut,nr,Ir){if(nr!=nr)return function(fr,Or,Jr,nn){for(var hn=fr.length,Gn=Jr+(nn?1:-1);nn?Gn--:++Gn-1}function ke(mr){return mr!=mr}function Be(mr,sr){for(var Ut=mr.length,nr=0;Ut--;)mr[Ut]===sr&&nr++;return nr}function Ie(mr,sr){for(var Ut=-1,nr=mr.length,Ir=0,jr=[];++Ut2?Ke:void 0);function Lt(mr){return pn(mr)?lt(mr):{}}function Gt(mr){return!(!pn(mr)||function(sr){return!!Ue&&Ue in sr}(mr))&&(function(sr){var Ut=pn(sr)?gt.call(sr):"";return Ut=="[object Function]"||Ut=="[object GeneratorFunction]"}(mr)||function(sr){var Ut=!1;if(sr!=null&&typeof sr.toString!="function")try{Ut=!!(sr+"")}catch{}return Ut}(mr)?Qe:J).test(function(sr){if(sr!=null){try{return et.call(sr)}catch{}try{return sr+""}catch{}}return""}(mr))}function Pt(mr,sr,Ut,nr){for(var Ir=-1,jr=mr.length,Rr=Ut.length,fr=-1,Or=sr.length,Jr=ht(jr-Rr,0),nn=Array(Or+Jr),hn=!nr;++fr1&&xn.reverse(),nn&&Or1?"& ":"")+sr[nr],sr=sr.join(Ut>2?", ":" "),mr.replace(F,`{ -/* [wrapped with `+sr+`] */ -`)}function Vr(mr,sr){return!!(sr=sr??9007199254740991)&&(typeof mr=="number"||pe.test(mr))&&mr>-1&&mr%1==0&&mr1&&j--,V=6*j<1?L+6*(B-L)*j:2*j<1?B:3*j<2?L+(B-L)*(2/3-j)*6:L,F[J]=255*V;return F}},function(O,I,N){(function(L){var B=typeof L=="object"&&L&&L.Object===Object&&L,j=typeof self=="object"&&self&&self.Object===Object&&self,F=B||j||Function("return this")();function V(Ie,je,Ke){switch(Ke.length){case 0:return Ie.call(je);case 1:return Ie.call(je,Ke[0]);case 2:return Ie.call(je,Ke[0],Ke[1]);case 3:return Ie.call(je,Ke[0],Ke[1],Ke[2])}return Ie.apply(je,Ke)}function K(Ie,je){for(var Ke=-1,Je=je.length,Xe=Ie.length;++Ke-1&&Xe%1==0&&Xe<=9007199254740991}(Je.length)&&!function(Xe){var ot=function(tt){var Ue=typeof tt;return!!tt&&(Ue=="object"||Ue=="function")}(Xe)?J.call(Xe):"";return ot=="[object Function]"||ot=="[object GeneratorFunction]"}(Je)}(Ke)}(je)&&X.call(je,"callee")&&(!pe.call(je,"callee")||J.call(je)=="[object Arguments]")}(Ie)||!!(me&&Ie&&Ie[me])}var ge=Array.isArray,Te,we,ke,Be=(we=function(Ie){var je=(Ie=function Je(Xe,ot,tt,Ue,et){var dt=-1,gt=Xe.length;for(tt||(tt=Ae),et||(et=[]);++dt0&&tt(Qe)?ot>1?Je(Qe,ot-1,tt,Ue,et):K(et,Qe):Ue||(et[et.length]=Qe)}return et}(Ie,1)).length,Ke=je;for(Te;Ke--;)if(typeof Ie[Ke]!="function")throw new TypeError("Expected a function");return function(){for(var Je=0,Xe=je?Ie[Je].apply(this,arguments):arguments[0];++Je2?j-2:0),V=2;V"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var yt,Rt=J(St);if(wt){var Nt=J(this).constructor;yt=Reflect.construct(Rt,arguments,Nt)}else yt=Rt.apply(this,arguments);return me(this,yt)}}N.r(I);var Ae=N(0),ge=N.n(Ae);function Te(){var St=this.constructor.getDerivedStateFromProps(this.props,this.state);St!=null&&this.setState(St)}function we(St){this.setState((function(wt){var yt=this.constructor.getDerivedStateFromProps(St,wt);return yt??null}).bind(this))}function ke(St,wt){try{var yt=this.props,Rt=this.state;this.props=St,this.state=wt,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(yt,Rt)}finally{this.props=yt,this.state=Rt}}function Be(St){var wt=St.prototype;if(!wt||!wt.isReactComponent)throw new Error("Can only polyfill class components");if(typeof St.getDerivedStateFromProps!="function"&&typeof wt.getSnapshotBeforeUpdate!="function")return St;var yt=null,Rt=null,Nt=null;if(typeof wt.componentWillMount=="function"?yt="componentWillMount":typeof wt.UNSAFE_componentWillMount=="function"&&(yt="UNSAFE_componentWillMount"),typeof wt.componentWillReceiveProps=="function"?Rt="componentWillReceiveProps":typeof wt.UNSAFE_componentWillReceiveProps=="function"&&(Rt="UNSAFE_componentWillReceiveProps"),typeof wt.componentWillUpdate=="function"?Nt="componentWillUpdate":typeof wt.UNSAFE_componentWillUpdate=="function"&&(Nt="UNSAFE_componentWillUpdate"),yt!==null||Rt!==null||Nt!==null){var Yt=St.displayName||St.name,lr=typeof St.getDerivedStateFromProps=="function"?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error(`Unsafe legacy lifecycles will not be called for components using new component APIs. - -`+Yt+" uses "+lr+" but also contains the following legacy lifecycles:"+(yt!==null?` - `+yt:"")+(Rt!==null?` - `+Rt:"")+(Nt!==null?` - `+Nt:"")+` - -The above lifecycles should be removed. Learn more about this warning here: -https://fb.me/react-async-component-lifecycle-hooks`)}if(typeof St.getDerivedStateFromProps=="function"&&(wt.componentWillMount=Te,wt.componentWillReceiveProps=we),typeof wt.getSnapshotBeforeUpdate=="function"){if(typeof wt.componentDidUpdate!="function")throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");wt.componentWillUpdate=ke;var vr=wt.componentDidUpdate;wt.componentDidUpdate=function(Qt,Ar,un){var po=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:un;vr.call(this,Qt,Ar,po)}}return St}function Ie(St,wt){if(St==null)return{};var yt,Rt,Nt=function(lr,vr){if(lr==null)return{};var Qt,Ar,un={},po=Object.keys(lr);for(Ar=0;Ar=0||(un[Qt]=lr[Qt]);return un}(St,wt);if(Object.getOwnPropertySymbols){var Yt=Object.getOwnPropertySymbols(St);for(Rt=0;Rt=0||Object.prototype.propertyIsEnumerable.call(St,yt)&&(Nt[yt]=St[yt])}return Nt}function je(St){var wt=function(yt){return{}.toString.call(yt).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}(St);return wt==="number"&&(wt=isNaN(St)?"nan":(0|St)!=St?"float":"integer"),wt}Te.__suppressDeprecationWarning=!0,we.__suppressDeprecationWarning=!0,ke.__suppressDeprecationWarning=!0;var Ke={scheme:"rjv-default",author:"mac gainor",base00:"rgba(0, 0, 0, 0)",base01:"rgb(245, 245, 245)",base02:"rgb(235, 235, 235)",base03:"#93a1a1",base04:"rgba(0, 0, 0, 0.3)",base05:"#586e75",base06:"#073642",base07:"#002b36",base08:"#d33682",base09:"#cb4b16",base0A:"#dc322f",base0B:"#859900",base0C:"#6c71c4",base0D:"#586e75",base0E:"#2aa198",base0F:"#268bd2"},Je={scheme:"rjv-grey",author:"mac gainor",base00:"rgba(1, 1, 1, 0)",base01:"rgba(1, 1, 1, 0.1)",base02:"rgba(0, 0, 0, 0.2)",base03:"rgba(1, 1, 1, 0.3)",base04:"rgba(0, 0, 0, 0.4)",base05:"rgba(1, 1, 1, 0.5)",base06:"rgba(1, 1, 1, 0.6)",base07:"rgba(1, 1, 1, 0.7)",base08:"rgba(1, 1, 1, 0.8)",base09:"rgba(1, 1, 1, 0.8)",base0A:"rgba(1, 1, 1, 0.8)",base0B:"rgba(1, 1, 1, 0.8)",base0C:"rgba(1, 1, 1, 0.8)",base0D:"rgba(1, 1, 1, 0.8)",base0E:"rgba(1, 1, 1, 0.8)",base0F:"rgba(1, 1, 1, 0.8)"},Xe={white:"#fff",black:"#000",transparent:"rgba(1, 1, 1, 0)",globalFontFamily:"monospace",globalCursor:"default",indentBlockWidth:"5px",braceFontWeight:"bold",braceCursor:"pointer",ellipsisFontSize:"18px",ellipsisLineHeight:"10px",ellipsisCursor:"pointer",keyMargin:"0px 5px",keyLetterSpacing:"0.5px",keyFontStyle:"none",keyBorderRadius:"3px",keyColonWeight:"bold",keyVerticalAlign:"top",keyOpacity:"0.85",keyOpacityHover:"1",keyValPaddingTop:"3px",keyValPaddingBottom:"3px",keyValPaddingRight:"5px",keyValBorderLeft:"1px solid",keyValBorderHover:"2px solid",keyValPaddingHover:"3px 5px 3px 4px",pushedContentMarginLeft:"6px",variableValuePaddingRight:"6px",nullFontSize:"11px",nullFontWeight:"bold",nullPadding:"1px 2px",nullBorderRadius:"3px",nanFontSize:"11px",nanFontWeight:"bold",nanPadding:"1px 2px",nanBorderRadius:"3px",undefinedFontSize:"11px",undefinedFontWeight:"bold",undefinedPadding:"1px 2px",undefinedBorderRadius:"3px",dataTypeFontSize:"11px",dataTypeMarginRight:"4px",datatypeOpacity:"0.8",objectSizeBorderRadius:"3px",objectSizeFontStyle:"italic",objectSizeMargin:"0px 6px 0px 0px",clipboardCursor:"pointer",clipboardCheckMarginLeft:"-12px",metaDataPadding:"0px 0px 0px 10px",arrayGroupMetaPadding:"0px 0px 0px 4px",iconContainerWidth:"17px",tooltipPadding:"4px",editInputMinWidth:"130px",editInputBorderRadius:"2px",editInputPadding:"5px",editInputMarginRight:"4px",editInputFontFamily:"monospace",iconCursor:"pointer",iconFontSize:"15px",iconPaddingRight:"1px",dateValueMarginLeft:"2px",iconMarginRight:"3px",detectedRowPaddingTop:"3px",addKeyCoverBackground:"rgba(255, 255, 255, 0.3)",addKeyCoverPosition:"absolute",addKeyCoverPositionPx:"0px",addKeyModalWidth:"200px",addKeyModalMargin:"auto",addKeyModalPadding:"10px",addKeyModalRadius:"3px"},ot=N(45),tt=function(St){var wt=function(yt){return{backgroundColor:yt.base00,ellipsisColor:yt.base09,braceColor:yt.base07,expandedIcon:yt.base0D,collapsedIcon:yt.base0E,keyColor:yt.base07,arrayKeyColor:yt.base0C,objectSize:yt.base04,copyToClipboard:yt.base0F,copyToClipboardCheck:yt.base0D,objectBorder:yt.base02,dataTypes:{boolean:yt.base0E,date:yt.base0D,float:yt.base0B,function:yt.base0D,integer:yt.base0F,string:yt.base09,nan:yt.base08,null:yt.base0A,undefined:yt.base05,regexp:yt.base0A,background:yt.base02},editVariable:{editIcon:yt.base0E,cancelIcon:yt.base09,removeIcon:yt.base09,addIcon:yt.base0E,checkIcon:yt.base0E,background:yt.base01,color:yt.base0A,border:yt.base07},addKeyModal:{background:yt.base05,border:yt.base04,color:yt.base0A,labelColor:yt.base01},validationFailure:{background:yt.base09,iconColor:yt.base01,fontColor:yt.base01}}}(St);return{"app-container":{fontFamily:Xe.globalFontFamily,cursor:Xe.globalCursor,backgroundColor:wt.backgroundColor,position:"relative"},ellipsis:{display:"inline-block",color:wt.ellipsisColor,fontSize:Xe.ellipsisFontSize,lineHeight:Xe.ellipsisLineHeight,cursor:Xe.ellipsisCursor},"brace-row":{display:"inline-block",cursor:"pointer"},brace:{display:"inline-block",cursor:Xe.braceCursor,fontWeight:Xe.braceFontWeight,color:wt.braceColor},"expanded-icon":{color:wt.expandedIcon},"collapsed-icon":{color:wt.collapsedIcon},colon:{display:"inline-block",margin:Xe.keyMargin,color:wt.keyColor,verticalAlign:"top"},objectKeyVal:function(yt,Rt){return{style:j({paddingTop:Xe.keyValPaddingTop,paddingRight:Xe.keyValPaddingRight,paddingBottom:Xe.keyValPaddingBottom,borderLeft:Xe.keyValBorderLeft+" "+wt.objectBorder,":hover":{paddingLeft:Rt.paddingLeft-1+"px",borderLeft:Xe.keyValBorderHover+" "+wt.objectBorder}},Rt)}},"object-key-val-no-border":{padding:Xe.keyValPadding},"pushed-content":{marginLeft:Xe.pushedContentMarginLeft},variableValue:function(yt,Rt){return{style:j({display:"inline-block",paddingRight:Xe.variableValuePaddingRight,position:"relative"},Rt)}},"object-name":{display:"inline-block",color:wt.keyColor,letterSpacing:Xe.keyLetterSpacing,fontStyle:Xe.keyFontStyle,verticalAlign:Xe.keyVerticalAlign,opacity:Xe.keyOpacity,":hover":{opacity:Xe.keyOpacityHover}},"array-key":{display:"inline-block",color:wt.arrayKeyColor,letterSpacing:Xe.keyLetterSpacing,fontStyle:Xe.keyFontStyle,verticalAlign:Xe.keyVerticalAlign,opacity:Xe.keyOpacity,":hover":{opacity:Xe.keyOpacityHover}},"object-size":{color:wt.objectSize,borderRadius:Xe.objectSizeBorderRadius,fontStyle:Xe.objectSizeFontStyle,margin:Xe.objectSizeMargin,cursor:"default"},"data-type-label":{fontSize:Xe.dataTypeFontSize,marginRight:Xe.dataTypeMarginRight,opacity:Xe.datatypeOpacity},boolean:{display:"inline-block",color:wt.dataTypes.boolean},date:{display:"inline-block",color:wt.dataTypes.date},"date-value":{marginLeft:Xe.dateValueMarginLeft},float:{display:"inline-block",color:wt.dataTypes.float},function:{display:"inline-block",color:wt.dataTypes.function,cursor:"pointer",whiteSpace:"pre-line"},"function-value":{fontStyle:"italic"},integer:{display:"inline-block",color:wt.dataTypes.integer},string:{display:"inline-block",color:wt.dataTypes.string},nan:{display:"inline-block",color:wt.dataTypes.nan,fontSize:Xe.nanFontSize,fontWeight:Xe.nanFontWeight,backgroundColor:wt.dataTypes.background,padding:Xe.nanPadding,borderRadius:Xe.nanBorderRadius},null:{display:"inline-block",color:wt.dataTypes.null,fontSize:Xe.nullFontSize,fontWeight:Xe.nullFontWeight,backgroundColor:wt.dataTypes.background,padding:Xe.nullPadding,borderRadius:Xe.nullBorderRadius},undefined:{display:"inline-block",color:wt.dataTypes.undefined,fontSize:Xe.undefinedFontSize,padding:Xe.undefinedPadding,borderRadius:Xe.undefinedBorderRadius,backgroundColor:wt.dataTypes.background},regexp:{display:"inline-block",color:wt.dataTypes.regexp},"copy-to-clipboard":{cursor:Xe.clipboardCursor},"copy-icon":{color:wt.copyToClipboard,fontSize:Xe.iconFontSize,marginRight:Xe.iconMarginRight,verticalAlign:"top"},"copy-icon-copied":{color:wt.copyToClipboardCheck,marginLeft:Xe.clipboardCheckMarginLeft},"array-group-meta-data":{display:"inline-block",padding:Xe.arrayGroupMetaPadding},"object-meta-data":{display:"inline-block",padding:Xe.metaDataPadding},"icon-container":{display:"inline-block",width:Xe.iconContainerWidth},tooltip:{padding:Xe.tooltipPadding},removeVarIcon:{verticalAlign:"top",display:"inline-block",color:wt.editVariable.removeIcon,cursor:Xe.iconCursor,fontSize:Xe.iconFontSize,marginRight:Xe.iconMarginRight},addVarIcon:{verticalAlign:"top",display:"inline-block",color:wt.editVariable.addIcon,cursor:Xe.iconCursor,fontSize:Xe.iconFontSize,marginRight:Xe.iconMarginRight},editVarIcon:{verticalAlign:"top",display:"inline-block",color:wt.editVariable.editIcon,cursor:Xe.iconCursor,fontSize:Xe.iconFontSize,marginRight:Xe.iconMarginRight},"edit-icon-container":{display:"inline-block",verticalAlign:"top"},"check-icon":{display:"inline-block",cursor:Xe.iconCursor,color:wt.editVariable.checkIcon,fontSize:Xe.iconFontSize,paddingRight:Xe.iconPaddingRight},"cancel-icon":{display:"inline-block",cursor:Xe.iconCursor,color:wt.editVariable.cancelIcon,fontSize:Xe.iconFontSize,paddingRight:Xe.iconPaddingRight},"edit-input":{display:"inline-block",minWidth:Xe.editInputMinWidth,borderRadius:Xe.editInputBorderRadius,backgroundColor:wt.editVariable.background,color:wt.editVariable.color,padding:Xe.editInputPadding,marginRight:Xe.editInputMarginRight,fontFamily:Xe.editInputFontFamily},"detected-row":{paddingTop:Xe.detectedRowPaddingTop},"key-modal-request":{position:Xe.addKeyCoverPosition,top:Xe.addKeyCoverPositionPx,left:Xe.addKeyCoverPositionPx,right:Xe.addKeyCoverPositionPx,bottom:Xe.addKeyCoverPositionPx,backgroundColor:Xe.addKeyCoverBackground},"key-modal":{width:Xe.addKeyModalWidth,backgroundColor:wt.addKeyModal.background,marginLeft:Xe.addKeyModalMargin,marginRight:Xe.addKeyModalMargin,padding:Xe.addKeyModalPadding,borderRadius:Xe.addKeyModalRadius,marginTop:"15px",position:"relative"},"key-modal-label":{color:wt.addKeyModal.labelColor,marginLeft:"2px",marginBottom:"5px",fontSize:"11px"},"key-modal-input-container":{overflow:"hidden"},"key-modal-input":{width:"100%",padding:"3px 6px",fontFamily:"monospace",color:wt.addKeyModal.color,border:"none",boxSizing:"border-box",borderRadius:"2px"},"key-modal-cancel":{backgroundColor:wt.editVariable.removeIcon,position:"absolute",top:"0px",right:"0px",borderRadius:"0px 3px 0px 3px",cursor:"pointer"},"key-modal-cancel-icon":{color:wt.addKeyModal.labelColor,fontSize:Xe.iconFontSize,transform:"rotate(45deg)"},"key-modal-submit":{color:wt.editVariable.addIcon,fontSize:Xe.iconFontSize,position:"absolute",right:"2px",top:"3px",cursor:"pointer"},"function-ellipsis":{display:"inline-block",color:wt.ellipsisColor,fontSize:Xe.ellipsisFontSize,lineHeight:Xe.ellipsisLineHeight,cursor:Xe.ellipsisCursor},"validation-failure":{float:"right",padding:"3px 6px",borderRadius:"2px",cursor:"pointer",color:wt.validationFailure.fontColor,backgroundColor:wt.validationFailure.background},"validation-failure-label":{marginRight:"6px"},"validation-failure-clear":{position:"relative",verticalAlign:"top",cursor:"pointer",color:wt.validationFailure.iconColor,fontSize:Xe.iconFontSize,transform:"rotate(45deg)"}}};function Ue(St,wt,yt){return St||console.error("theme has not been set"),function(Rt){var Nt=Ke;return Rt!==!1&&Rt!=="none"||(Nt=Je),Object(ot.createStyling)(tt,{defaultBase16:Nt})(Rt)}(St)(wt,yt)}var et=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props,Nt=(Rt.rjvId,Rt.type_name),Yt=Rt.displayDataTypes,lr=Rt.theme;return Yt?ge.a.createElement("span",Object.assign({className:"data-type-label"},Ue(lr,"data-type-label")),Nt):null}}]),yt}(ge.a.PureComponent),dt=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props;return ge.a.createElement("div",Ue(Rt.theme,"boolean"),ge.a.createElement(et,Object.assign({type_name:"bool"},Rt)),Rt.value?"true":"false")}}]),yt}(ge.a.PureComponent),gt=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props;return ge.a.createElement("div",Ue(Rt.theme,"date"),ge.a.createElement(et,Object.assign({type_name:"date"},Rt)),ge.a.createElement("span",Object.assign({className:"date-value"},Ue(Rt.theme,"date-value")),Rt.value.toLocaleTimeString("en-us",{weekday:"short",year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})))}}]),yt}(ge.a.PureComponent),Qe=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props;return ge.a.createElement("div",Ue(Rt.theme,"float"),ge.a.createElement(et,Object.assign({type_name:"float"},Rt)),this.props.value)}}]),yt}(ge.a.PureComponent);function lt(St,wt){(wt==null||wt>St.length)&&(wt=St.length);for(var yt=0,Rt=new Array(wt);yt"u"||St[Symbol.iterator]==null){if(Array.isArray(St)||(yt=ht(St))||wt&&St&&typeof St.length=="number"){yt&&(St=yt);var Rt=0,Nt=function(){};return{s:Nt,n:function(){return Rt>=St.length?{done:!0}:{done:!1,value:St[Rt++]}},e:function(Qt){throw Qt},f:Nt}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Yt,lr=!0,vr=!1;return{s:function(){yt=St[Symbol.iterator]()},n:function(){var Qt=yt.next();return lr=Qt.done,Qt},e:function(Qt){vr=!0,Yt=Qt},f:function(){try{lr||yt.return==null||yt.return()}finally{if(vr)throw Yt}}}}function $t(St){return function(wt){if(Array.isArray(wt))return lt(wt)}(St)||function(wt){if(typeof Symbol<"u"&&Symbol.iterator in Object(wt))return Array.from(wt)}(St)||ht(St)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}var Lt=N(46),Gt=new(N(47)).Dispatcher,Pt=new(function(St){X(yt,St);var wt=xe(yt);function yt(){var Rt;F(this,yt);for(var Nt=arguments.length,Yt=new Array(Nt),lr=0;lrNt&&(vr.style.cursor="pointer",this.state.collapsed&&(lr=ge.a.createElement("span",null,lr.substring(0,Nt),ge.a.createElement("span",Ue(Yt,"ellipsis")," ...")))),ge.a.createElement("div",Ue(Yt,"string"),ge.a.createElement(et,Object.assign({type_name:"string"},Rt)),ge.a.createElement("span",Object.assign({className:"string-value"},vr,{onClick:this.toggleCollapsed}),'"',lr,'"'))}}]),yt}(ge.a.PureComponent),wr=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){return ge.a.createElement("div",Ue(this.props.theme,"undefined"),"undefined")}}]),yt}(ge.a.PureComponent);function xr(){return(xr=Object.assign||function(St){for(var wt=1;wt=0||(ks[Ji]=so[Ji]);return ks}(St,["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"]),un,po=Ar.value!==void 0,In=Object(Ae.useRef)(null),xo=An(In,wt),Vn=Object(Ae.useRef)(0),Ro=Object(Ae.useRef)(),Nn=function(){var so=In.current,Ei=yt&&Ro.current?Ro.current:function(Li){var hl=window.getComputedStyle(Li);if(hl===null)return null;var Is,ea=(Is=hl,mr.reduce(function(aa,ta){return aa[ta]=Is[ta],aa},{})),fi=ea.boxSizing;return fi===""?null:(sr&&fi==="border-box"&&(ea.width=parseFloat(ea.width)+parseFloat(ea.borderRightWidth)+parseFloat(ea.borderLeftWidth)+parseFloat(ea.paddingRight)+parseFloat(ea.paddingLeft)+"px"),{sizingStyle:ea,paddingSize:parseFloat(ea.paddingBottom)+parseFloat(ea.paddingTop),borderSize:parseFloat(ea.borderBottomWidth)+parseFloat(ea.borderTopWidth)})}(so);if(Ei){Ro.current=Ei;var Ji=function(Li,hl,Is,ea){Is===void 0&&(Is=1),ea===void 0&&(ea=1/0),Mn||((Mn=document.createElement("textarea")).setAttribute("tab-index","-1"),Mn.setAttribute("aria-hidden","true"),pn(Mn)),Mn.parentNode===null&&document.body.appendChild(Mn);var fi=Li.paddingSize,aa=Li.borderSize,ta=Li.sizingStyle,$a=ta.boxSizing;Object.keys(ta).forEach(function(Ds){var ga=Ds;Mn.style[ga]=ta[ga]}),pn(Mn),Mn.value=hl;var ii=function(Ds,ga){var vs=Ds.scrollHeight;return ga.sizingStyle.boxSizing==="border-box"?vs+ga.borderSize:vs-ga.paddingSize}(Mn,Li);Mn.value="x";var ts=Mn.scrollHeight-fi,as=ts*Is;$a==="border-box"&&(as=as+fi+aa),ii=Math.max(as,ii);var Ns=ts*ea;return $a==="border-box"&&(Ns=Ns+fi+aa),[ii=Math.min(Ns,ii),ts]}(Ei,so.value||so.placeholder||"x",Nt,Rt),mi=Ji[0],ks=Ji[1];Vn.current!==mi&&(Vn.current=mi,so.style.setProperty("height",mi+"px","important"),Qt(mi,{rowHeight:ks}))}};return Object(Ae.useLayoutEffect)(Nn),un=bn(Nn),Object(Ae.useLayoutEffect)(function(){var so=function(Ei){un.current(Ei)};return window.addEventListener("resize",so),function(){window.removeEventListener("resize",so)}},[]),Object(Ae.createElement)("textarea",xr({},Ar,{onChange:function(so){po||Nn(),lr(so)},ref:xo}))},nr=Object(Ae.forwardRef)(Ut);function Ir(St){St=St.trim();try{if((St=JSON.stringify(JSON.parse(St)))[0]==="[")return jr("array",JSON.parse(St));if(St[0]==="{")return jr("object",JSON.parse(St));if(St.match(/\-?\d+\.\d+/)&&St.match(/\-?\d+\.\d+/)[0]===St)return jr("float",parseFloat(St));if(St.match(/\-?\d+e-\d+/)&&St.match(/\-?\d+e-\d+/)[0]===St)return jr("float",Number(St));if(St.match(/\-?\d+/)&&St.match(/\-?\d+/)[0]===St)return jr("integer",parseInt(St));if(St.match(/\-?\d+e\+\d+/)&&St.match(/\-?\d+e\+\d+/)[0]===St)return jr("integer",Number(St))}catch{}switch(St=St.toLowerCase()){case"undefined":return jr("undefined",void 0);case"nan":return jr("nan",NaN);case"null":return jr("null",null);case"true":return jr("boolean",!0);case"false":return jr("boolean",!1);default:if(St=Date.parse(St))return jr("date",new Date(St))}return jr(!1,null)}function jr(St,wt){return{type:St,value:wt}}var Rr=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props,Nt=Rt.style,Yt=Ie(Rt,["style"]);return ge.a.createElement("span",Yt,ge.a.createElement("svg",Object.assign({},xn(Nt),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),ge.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,13H17V11H7"})))}}]),yt}(ge.a.PureComponent),fr=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props,Nt=Rt.style,Yt=Ie(Rt,["style"]);return ge.a.createElement("span",Yt,ge.a.createElement("svg",Object.assign({},xn(Nt),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),ge.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M13,7H11V11H7V13H11V17H13V13H17V11H13V7Z"})))}}]),yt}(ge.a.PureComponent),Or=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props,Nt=Rt.style,Yt=Ie(Rt,["style"]),lr=xn(Nt).style;return ge.a.createElement("span",Yt,ge.a.createElement("svg",{fill:lr.color,width:lr.height,height:lr.width,style:lr,viewBox:"0 0 1792 1792"},ge.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-832q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h832q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),yt}(ge.a.PureComponent),Jr=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props,Nt=Rt.style,Yt=Ie(Rt,["style"]),lr=xn(Nt).style;return ge.a.createElement("span",Yt,ge.a.createElement("svg",{fill:lr.color,width:lr.height,height:lr.width,style:lr,viewBox:"0 0 1792 1792"},ge.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-352v352q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23v-352h-352q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h352v-352q0-14 9-23t23-9h64q14 0 23 9t9 23v352h352q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),yt}(ge.a.PureComponent),nn=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props,Nt=Rt.style,Yt=Ie(Rt,["style"]);return ge.a.createElement("span",Yt,ge.a.createElement("svg",{style:j(j({},xn(Nt).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},ge.a.createElement("path",{d:"M0 14l6-6-6-6z"})))}}]),yt}(ge.a.PureComponent),hn=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props,Nt=Rt.style,Yt=Ie(Rt,["style"]);return ge.a.createElement("span",Yt,ge.a.createElement("svg",{style:j(j({},xn(Nt).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},ge.a.createElement("path",{d:"M0 5l6 6 6-6z"})))}}]),yt}(ge.a.PureComponent),Gn=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props,Nt=Rt.style,Yt=Ie(Rt,["style"]);return ge.a.createElement("span",Yt,ge.a.createElement("svg",Object.assign({},xn(Nt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),ge.a.createElement("g",null,ge.a.createElement("path",{d:"m30 35h-25v-22.5h25v7.5h2.5v-12.5c0-1.4-1.1-2.5-2.5-2.5h-7.5c0-2.8-2.2-5-5-5s-5 2.2-5 5h-7.5c-1.4 0-2.5 1.1-2.5 2.5v27.5c0 1.4 1.1 2.5 2.5 2.5h25c1.4 0 2.5-1.1 2.5-2.5v-5h-2.5v5z m-20-27.5h2.5s2.5-1.1 2.5-2.5 1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5 1.3 2.5 2.5 2.5h2.5s2.5 1.1 2.5 2.5h-20c0-1.5 1.1-2.5 2.5-2.5z m-2.5 20h5v-2.5h-5v2.5z m17.5-5v-5l-10 7.5 10 7.5v-5h12.5v-5h-12.5z m-17.5 10h7.5v-2.5h-7.5v2.5z m12.5-17.5h-12.5v2.5h12.5v-2.5z m-7.5 5h-5v2.5h5v-2.5z"}))))}}]),yt}(ge.a.PureComponent),Zn=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props,Nt=Rt.style,Yt=Ie(Rt,["style"]);return ge.a.createElement("span",Yt,ge.a.createElement("svg",Object.assign({},xn(Nt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),ge.a.createElement("g",null,ge.a.createElement("path",{d:"m28.6 25q0-0.5-0.4-1l-4-4 4-4q0.4-0.5 0.4-1 0-0.6-0.4-1.1l-2-2q-0.4-0.4-1-0.4-0.6 0-1 0.4l-4.1 4.1-4-4.1q-0.4-0.4-1-0.4-0.6 0-1 0.4l-2 2q-0.5 0.5-0.5 1.1 0 0.5 0.5 1l4 4-4 4q-0.5 0.5-0.5 1 0 0.7 0.5 1.1l2 2q0.4 0.4 1 0.4 0.6 0 1-0.4l4-4.1 4.1 4.1q0.4 0.4 1 0.4 0.6 0 1-0.4l2-2q0.4-0.4 0.4-1z m8.7-5q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),yt}(ge.a.PureComponent),Eo=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props,Nt=Rt.style,Yt=Ie(Rt,["style"]);return ge.a.createElement("span",Yt,ge.a.createElement("svg",Object.assign({},xn(Nt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),ge.a.createElement("g",null,ge.a.createElement("path",{d:"m30.1 21.4v-2.8q0-0.6-0.4-1t-1-0.5h-5.7v-5.7q0-0.6-0.4-1t-1-0.4h-2.9q-0.6 0-1 0.4t-0.4 1v5.7h-5.7q-0.6 0-1 0.5t-0.5 1v2.8q0 0.6 0.5 1t1 0.5h5.7v5.7q0 0.5 0.4 1t1 0.4h2.9q0.6 0 1-0.4t0.4-1v-5.7h5.7q0.6 0 1-0.5t0.4-1z m7.2-1.4q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),yt}(ge.a.PureComponent),vo=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props,Nt=Rt.style,Yt=Ie(Rt,["style"]);return ge.a.createElement("span",Yt,ge.a.createElement("svg",Object.assign({},xn(Nt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),ge.a.createElement("g",null,ge.a.createElement("path",{d:"m31.6 21.6h-10v10h-3.2v-10h-10v-3.2h10v-10h3.2v10h10v3.2z"}))))}}]),yt}(ge.a.PureComponent),Fo=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props,Nt=Rt.style,Yt=Ie(Rt,["style"]);return ge.a.createElement("span",Yt,ge.a.createElement("svg",Object.assign({},xn(Nt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),ge.a.createElement("g",null,ge.a.createElement("path",{d:"m19.8 26.4l2.6-2.6-3.4-3.4-2.6 2.6v1.3h2.2v2.1h1.2z m9.8-16q-0.3-0.4-0.7 0l-7.8 7.8q-0.4 0.4 0 0.7t0.7 0l7.8-7.8q0.4-0.4 0-0.7z m1.8 13.2v4.3q0 2.6-1.9 4.5t-4.5 1.9h-18.6q-2.6 0-4.5-1.9t-1.9-4.5v-18.6q0-2.7 1.9-4.6t4.5-1.8h18.6q1.4 0 2.6 0.5 0.3 0.2 0.4 0.5 0.1 0.4-0.2 0.7l-1.1 1.1q-0.3 0.3-0.7 0.1-0.5-0.1-1-0.1h-18.6q-1.4 0-2.5 1.1t-1 2.5v18.6q0 1.4 1 2.5t2.5 1h18.6q1.5 0 2.5-1t1.1-2.5v-2.9q0-0.2 0.2-0.4l1.4-1.5q0.3-0.3 0.8-0.1t0.4 0.6z m-2.1-16.5l6.4 6.5-15 15h-6.4v-6.5z m9.9 3l-2.1 2-6.4-6.4 2.1-2q0.6-0.7 1.5-0.7t1.5 0.7l3.4 3.4q0.6 0.6 0.6 1.5t-0.6 1.5z"}))))}}]),yt}(ge.a.PureComponent),Ln=function(St){X(yt,St);var wt=xe(yt);function yt(){return F(this,yt),wt.apply(this,arguments)}return K(yt,[{key:"render",value:function(){var Rt=this.props,Nt=Rt.style,Yt=Ie(Rt,["style"]);return ge.a.createElement("span",Yt,ge.a.createElement("svg",Object.assign({},xn(Nt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),ge.a.createElement("g",null,ge.a.createElement("path",{d:"m31.7 16.4q0-0.6-0.4-1l-2.1-2.1q-0.4-0.4-1-0.4t-1 0.4l-9.1 9.1-5-5q-0.5-0.4-1-0.4t-1 0.4l-2.1 2q-0.4 0.4-0.4 1 0 0.6 0.4 1l8.1 8.1q0.4 0.4 1 0.4 0.6 0 1-0.4l12.2-12.1q0.4-0.4 0.4-1z m5.6 3.6q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),yt}(ge.a.PureComponent);function xn(St){return St||(St={}),{style:j(j({verticalAlign:"middle"},St),{},{color:St.color?St.color:"#000000",height:"1em",width:"1em"})}}var Ko=function(St){X(yt,St);var wt=xe(yt);function yt(Rt){var Nt;return F(this,yt),(Nt=wt.call(this,Rt)).copiedTimer=null,Nt.handleCopy=function(){var Yt=document.createElement("textarea"),lr=Nt.props,vr=lr.clickCallback,Qt=lr.src,Ar=lr.namespace;Yt.innerHTML=JSON.stringify(Nt.clipboardValue(Qt),null," "),document.body.appendChild(Yt),Yt.select(),document.execCommand("copy"),document.body.removeChild(Yt),Nt.copiedTimer=setTimeout(function(){Nt.setState({copied:!1})},5500),Nt.setState({copied:!0},function(){typeof vr=="function"&&vr({src:Qt,namespace:Ar,name:Ar[Ar.length-1]})})},Nt.getClippyIcon=function(){var Yt=Nt.props.theme;return Nt.state.copied?ge.a.createElement("span",null,ge.a.createElement(Gn,Object.assign({className:"copy-icon"},Ue(Yt,"copy-icon"))),ge.a.createElement("span",Ue(Yt,"copy-icon-copied"),"✔")):ge.a.createElement(Gn,Object.assign({className:"copy-icon"},Ue(Yt,"copy-icon")))},Nt.clipboardValue=function(Yt){switch(je(Yt)){case"function":case"regexp":return Yt.toString();default:return Yt}},Nt.state={copied:!1},Nt}return K(yt,[{key:"componentWillUnmount",value:function(){this.copiedTimer&&(clearTimeout(this.copiedTimer),this.copiedTimer=null)}},{key:"render",value:function(){var Rt=this.props,Nt=(Rt.src,Rt.theme),Yt=Rt.hidden,lr=Rt.rowHovered,vr=Ue(Nt,"copy-to-clipboard").style,Qt="inline";return Yt&&(Qt="none"),ge.a.createElement("span",{className:"copy-to-clipboard-container",title:"Copy to clipboard",style:{verticalAlign:"top",display:lr?"inline-block":"none"}},ge.a.createElement("span",{style:j(j({},vr),{},{display:Qt}),onClick:this.handleCopy},this.getClippyIcon()))}}]),yt}(ge.a.PureComponent),ao=function(St){X(yt,St);var wt=xe(yt);function yt(Rt){var Nt;return F(this,yt),(Nt=wt.call(this,Rt)).getEditIcon=function(){var Yt=Nt.props,lr=Yt.variable,vr=Yt.theme;return ge.a.createElement("div",{className:"click-to-edit",style:{verticalAlign:"top",display:Nt.state.hovered?"inline-block":"none"}},ge.a.createElement(Fo,Object.assign({className:"click-to-edit-icon"},Ue(vr,"editVarIcon"),{onClick:function(){Nt.prepopInput(lr)}})))},Nt.prepopInput=function(Yt){if(Nt.props.onEdit!==!1){var lr=function(Qt){var Ar;switch(je(Qt)){case"undefined":Ar="undefined";break;case"nan":Ar="NaN";break;case"string":Ar=Qt;break;case"date":case"function":case"regexp":Ar=Qt.toString();break;default:try{Ar=JSON.stringify(Qt,null," ")}catch{Ar=""}}return Ar}(Yt.value),vr=Ir(lr);Nt.setState({editMode:!0,editValue:lr,parsedInput:{type:vr.type,value:vr.value}})}},Nt.getRemoveIcon=function(){var Yt=Nt.props,lr=Yt.variable,vr=Yt.namespace,Qt=Yt.theme,Ar=Yt.rjvId;return ge.a.createElement("div",{className:"click-to-remove",style:{verticalAlign:"top",display:Nt.state.hovered?"inline-block":"none"}},ge.a.createElement(Zn,Object.assign({className:"click-to-remove-icon"},Ue(Qt,"removeVarIcon"),{onClick:function(){Gt.dispatch({name:"VARIABLE_REMOVED",rjvId:Ar,data:{name:lr.name,namespace:vr,existing_value:lr.value,variable_removed:!0}})}})))},Nt.getValue=function(Yt,lr){var vr=!lr&&Yt.type,Qt=pe(Nt).props;switch(vr){case!1:return Nt.getEditInput();case"string":return ge.a.createElement(tr,Object.assign({value:Yt.value},Qt));case"integer":return ge.a.createElement(kt,Object.assign({value:Yt.value},Qt));case"float":return ge.a.createElement(Qe,Object.assign({value:Yt.value},Qt));case"boolean":return ge.a.createElement(dt,Object.assign({value:Yt.value},Qt));case"function":return ge.a.createElement(bt,Object.assign({value:Yt.value},Qt));case"null":return ge.a.createElement(Ht,Qt);case"nan":return ge.a.createElement(It,Qt);case"undefined":return ge.a.createElement(wr,Qt);case"date":return ge.a.createElement(gt,Object.assign({value:Yt.value},Qt));case"regexp":return ge.a.createElement(Kt,Object.assign({value:Yt.value},Qt));default:return ge.a.createElement("div",{className:"object-value"},JSON.stringify(Yt.value))}},Nt.getEditInput=function(){var Yt=Nt.props.theme,lr=Nt.state.editValue;return ge.a.createElement("div",null,ge.a.createElement(nr,Object.assign({type:"text",inputRef:function(vr){return vr&&vr.focus()},value:lr,className:"variable-editor",onChange:function(vr){var Qt=vr.target.value,Ar=Ir(Qt);Nt.setState({editValue:Qt,parsedInput:{type:Ar.type,value:Ar.value}})},onKeyDown:function(vr){switch(vr.key){case"Escape":Nt.setState({editMode:!1,editValue:""});break;case"Enter":(vr.ctrlKey||vr.metaKey)&&Nt.submitEdit(!0)}vr.stopPropagation()},placeholder:"update this value",minRows:2},Ue(Yt,"edit-input"))),ge.a.createElement("div",Ue(Yt,"edit-icon-container"),ge.a.createElement(Zn,Object.assign({className:"edit-cancel"},Ue(Yt,"cancel-icon"),{onClick:function(){Nt.setState({editMode:!1,editValue:""})}})),ge.a.createElement(Ln,Object.assign({className:"edit-check string-value"},Ue(Yt,"check-icon"),{onClick:function(){Nt.submitEdit()}})),ge.a.createElement("div",null,Nt.showDetected())))},Nt.submitEdit=function(Yt){var lr=Nt.props,vr=lr.variable,Qt=lr.namespace,Ar=lr.rjvId,un=Nt.state,po=un.editValue,In=un.parsedInput,xo=po;Yt&&In.type&&(xo=In.value),Nt.setState({editMode:!1}),Gt.dispatch({name:"VARIABLE_UPDATED",rjvId:Ar,data:{name:vr.name,namespace:Qt,existing_value:vr.value,new_value:xo,variable_removed:!1}})},Nt.showDetected=function(){var Yt=Nt.props,lr=Yt.theme,vr=(Yt.variable,Yt.namespace,Yt.rjvId,Nt.state.parsedInput),Qt=(vr.type,vr.value,Nt.getDetectedInput());if(Qt)return ge.a.createElement("div",null,ge.a.createElement("div",Ue(lr,"detected-row"),Qt,ge.a.createElement(Ln,{className:"edit-check detected",style:j({verticalAlign:"top",paddingLeft:"3px"},Ue(lr,"check-icon").style),onClick:function(){Nt.submitEdit(!0)}})))},Nt.getDetectedInput=function(){var Yt=Nt.state.parsedInput,lr=Yt.type,vr=Yt.value,Qt=pe(Nt).props,Ar=Qt.theme;if(lr!==!1)switch(lr.toLowerCase()){case"object":return ge.a.createElement("span",null,ge.a.createElement("span",{style:j(j({},Ue(Ar,"brace").style),{},{cursor:"default"})},"{"),ge.a.createElement("span",{style:j(j({},Ue(Ar,"ellipsis").style),{},{cursor:"default"})},"..."),ge.a.createElement("span",{style:j(j({},Ue(Ar,"brace").style),{},{cursor:"default"})},"}"));case"array":return ge.a.createElement("span",null,ge.a.createElement("span",{style:j(j({},Ue(Ar,"brace").style),{},{cursor:"default"})},"["),ge.a.createElement("span",{style:j(j({},Ue(Ar,"ellipsis").style),{},{cursor:"default"})},"..."),ge.a.createElement("span",{style:j(j({},Ue(Ar,"brace").style),{},{cursor:"default"})},"]"));case"string":return ge.a.createElement(tr,Object.assign({value:vr},Qt));case"integer":return ge.a.createElement(kt,Object.assign({value:vr},Qt));case"float":return ge.a.createElement(Qe,Object.assign({value:vr},Qt));case"boolean":return ge.a.createElement(dt,Object.assign({value:vr},Qt));case"function":return ge.a.createElement(bt,Object.assign({value:vr},Qt));case"null":return ge.a.createElement(Ht,Qt);case"nan":return ge.a.createElement(It,Qt);case"undefined":return ge.a.createElement(wr,Qt);case"date":return ge.a.createElement(gt,Object.assign({value:new Date(vr)},Qt))}},Nt.state={editMode:!1,editValue:"",hovered:!1,renameKey:!1,parsedInput:{type:!1,value:null}},Nt}return K(yt,[{key:"render",value:function(){var Rt=this,Nt=this.props,Yt=Nt.variable,lr=Nt.singleIndent,vr=Nt.type,Qt=Nt.theme,Ar=Nt.namespace,un=Nt.indentWidth,po=Nt.enableClipboard,In=Nt.onEdit,xo=Nt.onDelete,Vn=Nt.onSelect,Ro=Nt.displayArrayKey,Nn=Nt.quotesOnKeys,so=this.state.editMode;return ge.a.createElement("div",Object.assign({},Ue(Qt,"objectKeyVal",{paddingLeft:un*lr}),{onMouseEnter:function(){return Rt.setState(j(j({},Rt.state),{},{hovered:!0}))},onMouseLeave:function(){return Rt.setState(j(j({},Rt.state),{},{hovered:!1}))},className:"variable-row",key:Yt.name}),vr=="array"?Ro?ge.a.createElement("span",Object.assign({},Ue(Qt,"array-key"),{key:Yt.name+"_"+Ar}),Yt.name,ge.a.createElement("div",Ue(Qt,"colon"),":")):null:ge.a.createElement("span",null,ge.a.createElement("span",Object.assign({},Ue(Qt,"object-name"),{className:"object-key",key:Yt.name+"_"+Ar}),!!Nn&&ge.a.createElement("span",{style:{verticalAlign:"top"}},'"'),ge.a.createElement("span",{style:{display:"inline-block"}},Yt.name),!!Nn&&ge.a.createElement("span",{style:{verticalAlign:"top"}},'"')),ge.a.createElement("span",Ue(Qt,"colon"),":")),ge.a.createElement("div",Object.assign({className:"variable-value",onClick:Vn===!1&&In===!1?null:function(Ei){var Ji=$t(Ar);(Ei.ctrlKey||Ei.metaKey)&&In!==!1?Rt.prepopInput(Yt):Vn!==!1&&(Ji.shift(),Vn(j(j({},Yt),{},{namespace:Ji})))}},Ue(Qt,"variableValue",{cursor:Vn===!1?"default":"pointer"})),this.getValue(Yt,so)),po?ge.a.createElement(Ko,{rowHovered:this.state.hovered,hidden:so,src:Yt.value,clickCallback:po,theme:Qt,namespace:[].concat($t(Ar),[Yt.name])}):null,In!==!1&&so==0?this.getEditIcon():null,xo!==!1&&so==0?this.getRemoveIcon():null)}}]),yt}(ge.a.PureComponent),zo=function(St){X(yt,St);var wt=xe(yt);function yt(){var Rt;F(this,yt);for(var Nt=arguments.length,Yt=new Array(Nt),lr=0;lr0?po:null,namespace:un.splice(0,un.length-1),existing_value:In,variable_removed:!1,key_name:null};je(In)==="object"?Gt.dispatch({name:"ADD_VARIABLE_KEY_REQUEST",rjvId:xo,data:Ro}):Gt.dispatch({name:"VARIABLE_ADDED",rjvId:xo,data:j(j({},Ro),{},{new_value:[].concat($t(In),[null])})})}})))},Rt.getRemoveObject=function(vr){var Qt=Rt.props,Ar=Qt.theme,un=(Qt.hover,Qt.namespace),po=Qt.name,In=Qt.src,xo=Qt.rjvId;if(un.length!==1)return ge.a.createElement("span",{className:"click-to-remove",style:{display:vr?"inline-block":"none"}},ge.a.createElement(Zn,Object.assign({className:"click-to-remove-icon"},Ue(Ar,"removeVarIcon"),{onClick:function(){Gt.dispatch({name:"VARIABLE_REMOVED",rjvId:xo,data:{name:po,namespace:un.splice(0,un.length-1),existing_value:In,variable_removed:!0}})}})))},Rt.render=function(){var vr=Rt.props,Qt=vr.theme,Ar=vr.onDelete,un=vr.onAdd,po=vr.enableClipboard,In=vr.src,xo=vr.namespace,Vn=vr.rowHovered;return ge.a.createElement("div",Object.assign({},Ue(Qt,"object-meta-data"),{className:"object-meta-data",onClick:function(Ro){Ro.stopPropagation()}}),Rt.getObjectSize(),po?ge.a.createElement(Ko,{rowHovered:Vn,clickCallback:po,src:In,theme:Qt,namespace:xo}):null,un!==!1?Rt.getAddAttribute(Vn):null,Ar!==!1?Rt.getRemoveObject(Vn):null)},Rt}return yt}(ge.a.PureComponent);function fo(St){var wt=St.parent_type,yt=St.namespace,Rt=St.quotesOnKeys,Nt=St.theme,Yt=St.jsvRoot,lr=St.name,vr=St.displayArrayKey,Qt=St.name?St.name:"";return!Yt||lr!==!1&&lr!==null?wt=="array"?vr?ge.a.createElement("span",Object.assign({},Ue(Nt,"array-key"),{key:yt}),ge.a.createElement("span",{className:"array-key"},Qt),ge.a.createElement("span",Ue(Nt,"colon"),":")):ge.a.createElement("span",null):ge.a.createElement("span",Object.assign({},Ue(Nt,"object-name"),{key:yt}),ge.a.createElement("span",{className:"object-key"},Rt&&ge.a.createElement("span",{style:{verticalAlign:"top"}},'"'),ge.a.createElement("span",null,Qt),Rt&&ge.a.createElement("span",{style:{verticalAlign:"top"}},'"')),ge.a.createElement("span",Ue(Nt,"colon"),":")):ge.a.createElement("span",null)}function Wn(St){var wt=St.theme;switch(St.iconStyle){case"triangle":return ge.a.createElement(hn,Object.assign({},Ue(wt,"expanded-icon"),{className:"expanded-icon"}));case"square":return ge.a.createElement(Or,Object.assign({},Ue(wt,"expanded-icon"),{className:"expanded-icon"}));default:return ge.a.createElement(Rr,Object.assign({},Ue(wt,"expanded-icon"),{className:"expanded-icon"}))}}function wn(St){var wt=St.theme;switch(St.iconStyle){case"triangle":return ge.a.createElement(nn,Object.assign({},Ue(wt,"collapsed-icon"),{className:"collapsed-icon"}));case"square":return ge.a.createElement(Jr,Object.assign({},Ue(wt,"collapsed-icon"),{className:"collapsed-icon"}));default:return ge.a.createElement(fr,Object.assign({},Ue(wt,"collapsed-icon"),{className:"collapsed-icon"}))}}var cn=function(St){X(yt,St);var wt=xe(yt);function yt(Rt){var Nt;return F(this,yt),(Nt=wt.call(this,Rt)).toggleCollapsed=function(Yt){var lr=[];for(var vr in Nt.state.expanded)lr.push(Nt.state.expanded[vr]);lr[Yt]=!lr[Yt],Nt.setState({expanded:lr})},Nt.state={expanded:[]},Nt}return K(yt,[{key:"getExpandedIcon",value:function(Rt){var Nt=this.props,Yt=Nt.theme,lr=Nt.iconStyle;return this.state.expanded[Rt]?ge.a.createElement(Wn,{theme:Yt,iconStyle:lr}):ge.a.createElement(wn,{theme:Yt,iconStyle:lr})}},{key:"render",value:function(){var Rt=this,Nt=this.props,Yt=Nt.src,lr=Nt.groupArraysAfterLength,vr=(Nt.depth,Nt.name),Qt=Nt.theme,Ar=Nt.jsvRoot,un=Nt.namespace,po=(Nt.parent_type,Ie(Nt,["src","groupArraysAfterLength","depth","name","theme","jsvRoot","namespace","parent_type"])),In=0,xo=5*this.props.indentWidth;Ar||(In=5*this.props.indentWidth);var Vn=lr,Ro=Math.ceil(Yt.length/Vn);return ge.a.createElement("div",Object.assign({className:"object-key-val"},Ue(Qt,Ar?"jsv-root":"objectKeyVal",{paddingLeft:In})),ge.a.createElement(fo,this.props),ge.a.createElement("span",null,ge.a.createElement(zo,Object.assign({size:Yt.length},this.props))),$t(Array(Ro)).map(function(Nn,so){return ge.a.createElement("div",Object.assign({key:so,className:"object-key-val array-group"},Ue(Qt,"objectKeyVal",{marginLeft:6,paddingLeft:xo})),ge.a.createElement("span",Ue(Qt,"brace-row"),ge.a.createElement("div",Object.assign({className:"icon-container"},Ue(Qt,"icon-container"),{onClick:function(Ei){Rt.toggleCollapsed(so)}}),Rt.getExpandedIcon(so)),Rt.state.expanded[so]?ge.a.createElement(Go,Object.assign({key:vr+so,depth:0,name:!1,collapsed:!1,groupArraysAfterLength:Vn,index_offset:so*Vn,src:Yt.slice(so*Vn,so*Vn+Vn),namespace:un,type:"array",parent_type:"array_group",theme:Qt},po)):ge.a.createElement("span",Object.assign({},Ue(Qt,"brace"),{onClick:function(Ei){Rt.toggleCollapsed(so)},className:"array-group-brace"}),"[",ge.a.createElement("div",Object.assign({},Ue(Qt,"array-group-meta-data"),{className:"array-group-meta-data"}),ge.a.createElement("span",Object.assign({className:"object-size"},Ue(Qt,"object-size")),so*Vn," - ",so*Vn+Vn>Yt.length?Yt.length:so*Vn+Vn)),"]")))}))}}]),yt}(ge.a.PureComponent),vi=function(St){X(yt,St);var wt=xe(yt);function yt(Rt){var Nt;F(this,yt),(Nt=wt.call(this,Rt)).toggleCollapsed=function(){Nt.setState({expanded:!Nt.state.expanded},function(){Vt.set(Nt.props.rjvId,Nt.props.namespace,"expanded",Nt.state.expanded)})},Nt.getObjectContent=function(lr,vr,Qt){return ge.a.createElement("div",{className:"pushed-content object-container"},ge.a.createElement("div",Object.assign({className:"object-content"},Ue(Nt.props.theme,"pushed-content")),Nt.renderObjectContents(vr,Qt)))},Nt.getEllipsis=function(){return Nt.state.size===0?null:ge.a.createElement("div",Object.assign({},Ue(Nt.props.theme,"ellipsis"),{className:"node-ellipsis",onClick:Nt.toggleCollapsed}),"...")},Nt.getObjectMetaData=function(lr){var vr=Nt.props,Qt=(vr.rjvId,vr.theme,Nt.state),Ar=Qt.size,un=Qt.hovered;return ge.a.createElement(zo,Object.assign({rowHovered:un,size:Ar},Nt.props))},Nt.renderObjectContents=function(lr,vr){var Qt,Ar=Nt.props,un=Ar.depth,po=Ar.parent_type,In=Ar.index_offset,xo=Ar.groupArraysAfterLength,Vn=Ar.namespace,Ro=Nt.state.object_type,Nn=[],so=Object.keys(lr||{});return Nt.props.sortKeys&&Ro!=="array"&&(so=so.sort()),so.forEach(function(Ei){if(Qt=new ca(Ei,lr[Ei]),po==="array_group"&&In&&(Qt.name=parseInt(Qt.name)+In),lr.hasOwnProperty(Ei))if(Qt.type==="object")Nn.push(ge.a.createElement(Go,Object.assign({key:Qt.name,depth:un+1,name:Qt.name,src:Qt.value,namespace:Vn.concat(Qt.name),parent_type:Ro},vr)));else if(Qt.type==="array"){var Ji=Go;xo&&Qt.value.length>xo&&(Ji=cn),Nn.push(ge.a.createElement(Ji,Object.assign({key:Qt.name,depth:un+1,name:Qt.name,src:Qt.value,namespace:Vn.concat(Qt.name),type:"array",parent_type:Ro},vr)))}else Nn.push(ge.a.createElement(ao,Object.assign({key:Qt.name+"_"+Vn,variable:Qt,singleIndent:5,namespace:Vn,type:Nt.props.type},vr)))}),Nn};var Yt=yt.getState(Rt);return Nt.state=j(j({},Yt),{},{prevProps:{}}),Nt}return K(yt,[{key:"getBraceStart",value:function(Rt,Nt){var Yt=this,lr=this.props,vr=lr.src,Qt=lr.theme,Ar=lr.iconStyle;if(lr.parent_type==="array_group")return ge.a.createElement("span",null,ge.a.createElement("span",Ue(Qt,"brace"),Rt==="array"?"[":"{"),Nt?this.getObjectMetaData(vr):null);var un=Nt?Wn:wn;return ge.a.createElement("span",null,ge.a.createElement("span",Object.assign({onClick:function(po){Yt.toggleCollapsed()}},Ue(Qt,"brace-row")),ge.a.createElement("div",Object.assign({className:"icon-container"},Ue(Qt,"icon-container")),ge.a.createElement(un,{theme:Qt,iconStyle:Ar})),ge.a.createElement(fo,this.props),ge.a.createElement("span",Ue(Qt,"brace"),Rt==="array"?"[":"{")),Nt?this.getObjectMetaData(vr):null)}},{key:"render",value:function(){var Rt=this,Nt=this.props,Yt=Nt.depth,lr=Nt.src,vr=(Nt.namespace,Nt.name,Nt.type,Nt.parent_type),Qt=Nt.theme,Ar=Nt.jsvRoot,un=Nt.iconStyle,po=Ie(Nt,["depth","src","namespace","name","type","parent_type","theme","jsvRoot","iconStyle"]),In=this.state,xo=In.object_type,Vn=In.expanded,Ro={};return Ar||vr==="array_group"?vr==="array_group"&&(Ro.borderLeft=0,Ro.display="inline"):Ro.paddingLeft=5*this.props.indentWidth,ge.a.createElement("div",Object.assign({className:"object-key-val",onMouseEnter:function(){return Rt.setState(j(j({},Rt.state),{},{hovered:!0}))},onMouseLeave:function(){return Rt.setState(j(j({},Rt.state),{},{hovered:!1}))}},Ue(Qt,Ar?"jsv-root":"objectKeyVal",Ro)),this.getBraceStart(xo,Vn),Vn?this.getObjectContent(Yt,lr,j({theme:Qt,iconStyle:un},po)):this.getEllipsis(),ge.a.createElement("span",{className:"brace-row"},ge.a.createElement("span",{style:j(j({},Ue(Qt,"brace").style),{},{paddingLeft:Vn?"3px":"0px"})},xo==="array"?"]":"}"),Vn?null:this.getObjectMetaData(lr)))}}],[{key:"getDerivedStateFromProps",value:function(Rt,Nt){var Yt=Nt.prevProps;return Rt.src!==Yt.src||Rt.collapsed!==Yt.collapsed||Rt.name!==Yt.name||Rt.namespace!==Yt.namespace||Rt.rjvId!==Yt.rjvId?j(j({},yt.getState(Rt)),{},{prevProps:Rt}):null}}]),yt}(ge.a.PureComponent);vi.getState=function(St){var wt=Object.keys(St.src).length,yt=(St.collapsed===!1||St.collapsed!==!0&&St.collapsed>St.depth)&&(!St.shouldCollapse||St.shouldCollapse({name:St.name,src:St.src,type:je(St.src),namespace:St.namespace})===!1)&&wt!==0;return{expanded:Vt.get(St.rjvId,St.namespace,"expanded",yt),object_type:St.type==="array"?"array":"object",parent_type:St.type==="array"?"array":"object",size:wt,hovered:!1}};var ca=function St(wt,yt){F(this,St),this.name=wt,this.value=yt,this.type=je(yt)};Be(vi);var Go=vi,di=function(St){X(yt,St);var wt=xe(yt);function yt(){var Rt;F(this,yt);for(var Nt=arguments.length,Yt=new Array(Nt),lr=0;lrvr.groupArraysAfterLength&&(Ar=cn),ge.a.createElement("div",{className:"pretty-json-container object-container"},ge.a.createElement("div",{className:"object-content"},ge.a.createElement(Ar,Object.assign({namespace:Qt,depth:0,jsvRoot:!0},vr))))},Rt}return yt}(ge.a.PureComponent),Qi=function(St){X(yt,St);var wt=xe(yt);function yt(Rt){var Nt;return F(this,yt),(Nt=wt.call(this,Rt)).closeModal=function(){Gt.dispatch({rjvId:Nt.props.rjvId,name:"RESET"})},Nt.submit=function(){Nt.props.submit(Nt.state.input)},Nt.state={input:Rt.input?Rt.input:""},Nt}return K(yt,[{key:"render",value:function(){var Rt=this,Nt=this.props,Yt=Nt.theme,lr=Nt.rjvId,vr=Nt.isValid,Qt=this.state.input,Ar=vr(Qt);return ge.a.createElement("div",Object.assign({className:"key-modal-request"},Ue(Yt,"key-modal-request"),{onClick:this.closeModal}),ge.a.createElement("div",Object.assign({},Ue(Yt,"key-modal"),{onClick:function(un){un.stopPropagation()}}),ge.a.createElement("div",Ue(Yt,"key-modal-label"),"Key Name:"),ge.a.createElement("div",{style:{position:"relative"}},ge.a.createElement("input",Object.assign({},Ue(Yt,"key-modal-input"),{className:"key-modal-input",ref:function(un){return un&&un.focus()},spellCheck:!1,value:Qt,placeholder:"...",onChange:function(un){Rt.setState({input:un.target.value})},onKeyPress:function(un){Ar&&un.key==="Enter"?Rt.submit():un.key==="Escape"&&Rt.closeModal()}})),Ar?ge.a.createElement(Ln,Object.assign({},Ue(Yt,"key-modal-submit"),{className:"key-modal-submit",onClick:function(un){return Rt.submit()}})):null),ge.a.createElement("span",Ue(Yt,"key-modal-cancel"),ge.a.createElement(vo,Object.assign({},Ue(Yt,"key-modal-cancel-icon"),{className:"key-modal-cancel",onClick:function(){Gt.dispatch({rjvId:lr,name:"RESET"})}})))))}}]),yt}(ge.a.PureComponent),Oa=function(St){X(yt,St);var wt=xe(yt);function yt(){var Rt;F(this,yt);for(var Nt=arguments.length,Yt=new Array(Nt),lr=0;lr=0)&&(R[I]=S[I]);return R}function _objectWithoutProperties$g(S,C){if(S==null)return{};var R=_objectWithoutPropertiesLoose$g(S,C),O,I;if(Object.getOwnPropertySymbols){var N=Object.getOwnPropertySymbols(S);for(I=0;I=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _slicedToArray$d(S,C){return _arrayWithHoles$e(S)||_iterableToArrayLimit$d(S,C)||_unsupportedIterableToArray$l(S,C)||_nonIterableRest$e()}function _arrayWithHoles$e(S){if(Array.isArray(S))return S}function _iterableToArrayLimit$d(S,C){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(S)))){var R=[],O=!0,I=!1,N=void 0;try{for(var L=S[Symbol.iterator](),B;!(O=(B=L.next()).done)&&(R.push(B.value),!(C&&R.length===C));O=!0);}catch(j){I=!0,N=j}finally{try{!O&&L.return!=null&&L.return()}finally{if(I)throw N}}return R}}function _unsupportedIterableToArray$l(S,C){if(S){if(typeof S=="string")return _arrayLikeToArray$l(S,C);var R=Object.prototype.toString.call(S).slice(8,-1);if(R==="Object"&&S.constructor&&(R=S.constructor.name),R==="Map"||R==="Set")return Array.from(S);if(R==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(R))return _arrayLikeToArray$l(S,C)}}function _arrayLikeToArray$l(S,C){(C==null||C>S.length)&&(C=S.length);for(var R=0,O=new Array(C);R=S.length?S.apply(this,I):function(){for(var L=arguments.length,B=new Array(L),j=0;j1&&arguments[1]!==void 0?arguments[1]:{};validators$1.initial(S),validators$1.handler(C);var R={current:S},O=curry$2(didStateUpdate)(R,C),I=curry$2(updateState)(R),N=curry$2(validators$1.changes)(S),L=curry$2(extractChanges)(R);function B(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(V){return V};return validators$1.selector(F),F(R.current)}function j(F){compose$2(O,I,N,L)(F)}return[B,j]}function extractChanges(S,C){return isFunction(C)?C(S.current):C}function updateState(S,C){return S.current=_objectSpread2(_objectSpread2({},S.current),C),C}function didStateUpdate(S,C,R){return isFunction(C)?C(S.current):Object.keys(R).forEach(function(O){var I;return(I=C[O])===null||I===void 0?void 0:I.call(C,S.current[O])}),R}var index$1={create:create$3},config$2={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}};function curry$1(S){return function C(){for(var R=this,O=arguments.length,I=new Array(O),N=0;N=S.length?S.apply(this,I):function(){for(var L=arguments.length,B=new Array(L),j=0;j{O.current=!1}:S,C)}var l=he;function D(){}function h(S,C,R,O){return De(S,O)||be(S,C,R,O)}function De(S,C){return S.editor.getModel(te(S,C))}function be(S,C,R,O){return S.editor.createModel(C,R,O?te(S,O):void 0)}function te(S,C){return S.Uri.parse(C)}function Oe({original:S,modified:C,language:R,originalLanguage:O,modifiedLanguage:I,originalModelPath:N,modifiedModelPath:L,keepCurrentOriginalModel:B=!1,keepCurrentModifiedModel:j=!1,theme:F="light",loading:V="Loading...",options:K={},height:W="100%",width:X="100%",className:J,wrapperProps:oe={},beforeMount:pe=D,onMount:me=D}){let[xe,Ae]=reactExports.useState(!1),[ge,Te]=reactExports.useState(!0),we=reactExports.useRef(null),ke=reactExports.useRef(null),Be=reactExports.useRef(null),Ie=reactExports.useRef(me),je=reactExports.useRef(pe),Ke=reactExports.useRef(!1);k$1(()=>{let tt=loader.init();return tt.then(Ue=>(ke.current=Ue)&&Te(!1)).catch(Ue=>(Ue==null?void 0:Ue.type)!=="cancelation"&&console.error("Monaco initialization: error:",Ue)),()=>we.current?ot():tt.cancel()}),l(()=>{if(we.current&&ke.current){let tt=we.current.getOriginalEditor(),Ue=h(ke.current,S||"",O||R||"text",N||"");Ue!==tt.getModel()&&tt.setModel(Ue)}},[N],xe),l(()=>{if(we.current&&ke.current){let tt=we.current.getModifiedEditor(),Ue=h(ke.current,C||"",I||R||"text",L||"");Ue!==tt.getModel()&&tt.setModel(Ue)}},[L],xe),l(()=>{let tt=we.current.getModifiedEditor();tt.getOption(ke.current.editor.EditorOption.readOnly)?tt.setValue(C||""):C!==tt.getValue()&&(tt.executeEdits("",[{range:tt.getModel().getFullModelRange(),text:C||"",forceMoveMarkers:!0}]),tt.pushUndoStop())},[C],xe),l(()=>{var tt,Ue;(Ue=(tt=we.current)==null?void 0:tt.getModel())==null||Ue.original.setValue(S||"")},[S],xe),l(()=>{let{original:tt,modified:Ue}=we.current.getModel();ke.current.editor.setModelLanguage(tt,O||R||"text"),ke.current.editor.setModelLanguage(Ue,I||R||"text")},[R,O,I],xe),l(()=>{var tt;(tt=ke.current)==null||tt.editor.setTheme(F)},[F],xe),l(()=>{var tt;(tt=we.current)==null||tt.updateOptions(K)},[K],xe);let Je=reactExports.useCallback(()=>{var et;if(!ke.current)return;je.current(ke.current);let tt=h(ke.current,S||"",O||R||"text",N||""),Ue=h(ke.current,C||"",I||R||"text",L||"");(et=we.current)==null||et.setModel({original:tt,modified:Ue})},[R,C,I,S,O,N,L]),Xe=reactExports.useCallback(()=>{var tt;!Ke.current&&Be.current&&(we.current=ke.current.editor.createDiffEditor(Be.current,{automaticLayout:!0,...K}),Je(),(tt=ke.current)==null||tt.editor.setTheme(F),Ae(!0),Ke.current=!0)},[K,F,Je]);reactExports.useEffect(()=>{xe&&Ie.current(we.current,ke.current)},[xe]),reactExports.useEffect(()=>{!ge&&!xe&&Xe()},[ge,xe,Xe]);function ot(){var Ue,et,dt,gt;let tt=(Ue=we.current)==null?void 0:Ue.getModel();B||((et=tt==null?void 0:tt.original)==null||et.dispose()),j||((dt=tt==null?void 0:tt.modified)==null||dt.dispose()),(gt=we.current)==null||gt.dispose()}return React.createElement(H,{width:X,height:W,isEditorReady:xe,loading:V,_ref:Be,className:J,wrapperProps:oe})}var ie=Oe;reactExports.memo(ie);function He(S){let C=reactExports.useRef();return reactExports.useEffect(()=>{C.current=S},[S]),C.current}var se=He,_=new Map;function Ve({defaultValue:S,defaultLanguage:C,defaultPath:R,value:O,language:I,path:N,theme:L="light",line:B,loading:j="Loading...",options:F={},overrideServices:V={},saveViewState:K=!0,keepCurrentModel:W=!1,width:X="100%",height:J="100%",className:oe,wrapperProps:pe={},beforeMount:me=D,onMount:xe=D,onChange:Ae,onValidate:ge=D}){let[Te,we]=reactExports.useState(!1),[ke,Be]=reactExports.useState(!0),Ie=reactExports.useRef(null),je=reactExports.useRef(null),Ke=reactExports.useRef(null),Je=reactExports.useRef(xe),Xe=reactExports.useRef(me),ot=reactExports.useRef(),tt=reactExports.useRef(O),Ue=se(N),et=reactExports.useRef(!1),dt=reactExports.useRef(!1);k$1(()=>{let lt=loader.init();return lt.then(ht=>(Ie.current=ht)&&Be(!1)).catch(ht=>(ht==null?void 0:ht.type)!=="cancelation"&&console.error("Monaco initialization: error:",ht)),()=>je.current?Qe():lt.cancel()}),l(()=>{var ht,Ct,$t,Lt;let lt=h(Ie.current,S||O||"",C||I||"",N||R||"");lt!==((ht=je.current)==null?void 0:ht.getModel())&&(K&&_.set(Ue,(Ct=je.current)==null?void 0:Ct.saveViewState()),($t=je.current)==null||$t.setModel(lt),K&&((Lt=je.current)==null||Lt.restoreViewState(_.get(N))))},[N],Te),l(()=>{var lt;(lt=je.current)==null||lt.updateOptions(F)},[F],Te),l(()=>{!je.current||O===void 0||(je.current.getOption(Ie.current.editor.EditorOption.readOnly)?je.current.setValue(O):O!==je.current.getValue()&&(dt.current=!0,je.current.executeEdits("",[{range:je.current.getModel().getFullModelRange(),text:O,forceMoveMarkers:!0}]),je.current.pushUndoStop(),dt.current=!1))},[O],Te),l(()=>{var ht,Ct;let lt=(ht=je.current)==null?void 0:ht.getModel();lt&&I&&((Ct=Ie.current)==null||Ct.editor.setModelLanguage(lt,I))},[I],Te),l(()=>{var lt;B!==void 0&&((lt=je.current)==null||lt.revealLine(B))},[B],Te),l(()=>{var lt;(lt=Ie.current)==null||lt.editor.setTheme(L)},[L],Te);let gt=reactExports.useCallback(()=>{var lt;if(!(!Ke.current||!Ie.current)&&!et.current){Xe.current(Ie.current);let ht=N||R,Ct=h(Ie.current,O||S||"",C||I||"",ht||"");je.current=(lt=Ie.current)==null?void 0:lt.editor.create(Ke.current,{model:Ct,automaticLayout:!0,...F},V),K&&je.current.restoreViewState(_.get(ht)),Ie.current.editor.setTheme(L),B!==void 0&&je.current.revealLine(B),we(!0),et.current=!0}},[S,C,R,O,I,N,F,V,K,L,B]);reactExports.useEffect(()=>{Te&&Je.current(je.current,Ie.current)},[Te]),reactExports.useEffect(()=>{!ke&&!Te&>()},[ke,Te,gt]),tt.current=O,reactExports.useEffect(()=>{var lt,ht;Te&&Ae&&((lt=ot.current)==null||lt.dispose(),ot.current=(ht=je.current)==null?void 0:ht.onDidChangeModelContent(Ct=>{dt.current||Ae(je.current.getValue(),Ct)}))},[Te,Ae]),reactExports.useEffect(()=>{if(Te){let lt=Ie.current.editor.onDidChangeMarkers(ht=>{var $t;let Ct=($t=je.current.getModel())==null?void 0:$t.uri;if(Ct&&ht.find(Lt=>Lt.path===Ct.path)){let Lt=Ie.current.editor.getModelMarkers({resource:Ct});ge==null||ge(Lt)}});return()=>{lt==null||lt.dispose()}}return()=>{}},[Te,ge]);function Qe(){var lt,ht;(lt=ot.current)==null||lt.dispose(),W?K&&_.set(N,je.current.saveViewState()):(ht=je.current.getModel())==null||ht.dispose(),je.current.dispose()}return React.createElement(H,{width:X,height:J,isEditorReady:Te,loading:j,_ref:Ke,className:oe,wrapperProps:pe})}var fe=Ve,de=reactExports.memo(fe),Ft=de;const JinjaSyntaxHighlighter=({value:S,theme:C})=>jsxRuntimeExports.jsx(Ft,{value:S,theme:C,options:{readOnly:!0,minimap:{enabled:!1}},defaultLanguage:"jinja2",onMount:(R,O)=>{O.languages.register({id:"jinja2"}),O.languages.setLanguageConfiguration("jinja2",{comments:{blockComment:["{#","#}"]},brackets:[["{#","#}"],["{%","%}"],["{{","}}"],["{","}"]],folding:{markers:{start:/\{%\s*(block|for|if)/,end:/\{%\s*end(block|for|if)/}}}),O.languages.setMonarchTokensProvider("jinja2",{tokenizer:{root:[[/\{\{/,"delimiter"],[/\}\}/,"delimiter"],[/\{#/,"comment"],[/#\}/,"comment"],[/\{%/,"control"],[/%\}/,"control"],[/\b(if|else|elif|endif|for|endfor|set|extends|include|block|endblock|macro|endmacro)\b/,"keyword"],[/\b(length|list|lower|upper|trim|truncate|replace|round|urlencode|urlize)\b/,"filter"],[/\b(\+|-|\*|\/|%|\*\*|\/\/)\b/,"operator"],[/\b(\d+|\d*\.\d+)\b/,"number"],[/(^user:|^# user:|^system:|^# system:|^assistant:|^# assistant:)/,"keyword"]]}})}}),locStringsInjectionToken=createInjectionToken("locStrings",{}),useLocStrings=()=>{const[S]=useInjected(locStringsInjectionToken);return S},parseTraceOutput=S=>{var R;const C=(R=S==null?void 0:S.attributes)==null?void 0:R.output;if(typeof C=="string")try{const O=JSON.parse(C);if(typeof O.usage=="string")try{O.usage=JSON.parse(O.usage)}catch{O.usage={}}return O}catch{return C}return C},convertToTraceListRow=S=>{var R,O,I;const C=S.end_time&&S.start_time?Date.parse(S.end_time)-Date.parse(S.start_time):0;return{...S,latency:C,total_tokens:((R=S==null?void 0:S.cumulative_token_count)==null?void 0:R.total)??0,prompt_tokens:((O=S==null?void 0:S.cumulative_token_count)==null?void 0:O.prompt)??0,completion_tokens:((I=S==null?void 0:S.cumulative_token_count)==null?void 0:I.completion)??0}};var _a;const initialTableColumnNames={normalColumns:[],evaluationColumns:[]};var ViewStatus=(S=>(S.loading="loading",S.loaded="loaded",S.error="error",S))(ViewStatus||{});const c0=class c0{constructor(){this.selectedSpanId$=new State$1(void 0),this.selectedTraceId$=new State$1(void 0),this.spans$=new ObservableMap,this.traces$=new ObservableOrderedMap,this.tableColumnNames$=new State$1(initialTableColumnNames),this.tableHiddenColumnNames$=new State$1([]),this.isTraceDetailOpen$=new State$1(!1),this.isGanttChartOpen$=new State$1(!1),this.traceListStatus$=new State$1("loading"),this.traceDetailStatus$=new State$1("loading"),this.selectedTraceId$.subscribe(C=>{var R;C&&((R=this.traceDetailDidOpenCallback)==null||R.call(this,C))})}traceDetailDidOpen(C){this.traceDetailDidOpenCallback=C}clear(){this.traces$.clear(),this.spans$.clear()}appendTraces(C){C.forEach(R=>{R.trace_id!==void 0&&this.traces$.set(R.trace_id,R)})}appendSpans(C){C.forEach(R=>{var L,B;const O=(L=R==null?void 0:R.context)==null?void 0:L.trace_id,I=(B=R==null?void 0:R.context)==null?void 0:B.span_id;if(!O||!I)return;const N=this.spans$.get(O)||new ObservableOrderedMap;this.spans$.set(O,N.set(I,R))})}toggleIsGanttChartOpen(){this.isGanttChartOpen$.setState(!this.isGanttChartOpen$.getSnapshot())}getTraceById(C){return this.traces$.get(C)}setTraceListStatus(C){this.traceListStatus$.setState(C)}setTraceDetailStatus(C){this.traceDetailStatus$.setState(C)}};_a=SINGLETON,c0[_a]=!0;let TraceViewModel=c0;const TraceViewModelToken=createInjectionToken("TraceViewModel",new TraceViewModel),useTraceViewModel=()=>{const[S]=useInjected(TraceViewModelToken);return S},useSelectedSpanId=()=>{const S=useTraceViewModel();return useState(S.selectedSpanId$)},useSelectedSpan=()=>{var O;const S=useTraceViewModel(),C=useSelectedSpanId(),R=useSelectedTraceId();if(!(!C||!R))return(O=S.spans$.get(R))==null?void 0:O.get(C)},useParentSpanOfSelectedSpan=()=>{var O;const S=useTraceViewModel(),C=useSelectedTraceId(),R=useSelectedSpan();if(!(!R||!C||!R.parent_id))return(O=S.spans$.get(C))==null?void 0:O.get(R.parent_id)},useSetSelectedSpanId=()=>useSetState(useTraceViewModel().selectedSpanId$),useSelectedTraceId=()=>useState(useTraceViewModel().selectedTraceId$),useSetSelectedTraceId=()=>useSetState(useTraceViewModel().selectedTraceId$),useSelectedTrace=()=>{const S=useTraceViewModel(),C=useSelectedTraceId();return C?S.traces$.value.find(R=>R.trace_id===C):void 0},useSpansOfSelectedTrace=()=>{const S=useTraceViewModel(),C=useSelectedTraceId(),R=useState(S.spans$.get(C??"")??new ObservableOrderedMap);return Array.from(R.values())},useTraces=()=>Array.from(useState(useTraceViewModel().traces$).values()),useParseTraceOutput=S=>reactExports.useMemo(()=>parseTraceOutput(S),[S]),useEvaluationSpansOfSelectedSpan=()=>{const S=useTraceViewModel(),C=[],R=useSelectedTrace();return R?(Object.keys(R.evaluations??[]).forEach(O=>{var N,L;const I=(N=R==null?void 0:R.evaluations)==null?void 0:N[O];if(I){const B=Array.from(((L=S.spans$.get(I.trace_id??""))==null?void 0:L.getState().values())??[]);C.push({evaluationName:I.display_name??O,evaluationTraces:B})}}),C):[]},useRootSpanIdOfSelectedSpans=()=>{const S=useSelectedTrace();return S==null?void 0:S.root_span_id},useTableColumnNames=()=>useState(useTraceViewModel().tableColumnNames$),useSetTableColumnNames=()=>useSetState(useTraceViewModel().tableColumnNames$),useTableHiddenColumnNames=()=>useState(useTraceViewModel().tableHiddenColumnNames$),useSetTableHiddenColumnNames=()=>useSetState(useTraceViewModel().tableHiddenColumnNames$),useTraceDetailRefreshKey=()=>{const S=useTraceViewModel(),C=useSelectedTraceId(),R=useState(S.spans$),O=Array.from(useState(R.get(C??"")??new ObservableOrderedMap).keys());return`${C}-${O.join("-")}`},useIsGanttChartOpen=()=>useState(useTraceViewModel().isGanttChartOpen$),traceDetailErrorInjectionToken=createInjectionToken("traceDetailErrorInjectionToken",()=>{const S=useLocStrings();return jsxRuntimeExports.jsx(MessageBar,{intent:"error",children:S.Failed_to_load_trace})}),traceDetailLoadingInjectionToken=createInjectionToken("traceDetailLoadingInjectionToken",Loading),traceListErrorInjectionToken=createInjectionToken("traceListErrorInjectionToken",()=>{const S=useLocStrings();return jsxRuntimeExports.jsx(MessageBar,{intent:"error",children:S.Failed_to_load_traces})}),traceListLoadingInjectionToken=createInjectionToken("traceListLoadingInjectionToken",Loading),useTraceListViewStatus=()=>{const S=useTraceViewModel();return useState(S.traceListStatus$)},useTraceDetailViewStatus=()=>{const S=useTraceViewModel();return useState(S.traceDetailStatus$)},useTraceListLoadingComponent=()=>{const[S]=useInjected(traceListLoadingInjectionToken);return S},useTraceListErrorComponent=()=>{const[S]=useInjected(traceListErrorInjectionToken);return S},useTraceDetailLoadingComponent=()=>{const[S]=useInjected(traceDetailLoadingInjectionToken);return S},useTraceDetailErrorComponent=()=>{const[S]=useInjected(traceDetailErrorInjectionToken);return S},TREE_NODE_HEIGHT=58,TREE_NODE_WIDTH=400,TREE_NODE_PADDING=10,TREE_NODE_INDENT=48,sortTraceByStartTime=(S,C)=>S.start_time&&C.start_time?Date.parse(C.start_time)-Date.parse(S.start_time):1,defaultGetNodeX=({level:S})=>S*TREE_NODE_INDENT,defaultGetNodeWidth=()=>TREE_NODE_WIDTH,defaultGetNodeHeight=()=>TREE_NODE_HEIGHT,spansToGraphModel=(S,{rootSpanId:C,isEdgesHidden:R=!1,getNodeX:O=defaultGetNodeX,getNodeWidth:I=defaultGetNodeWidth,getNodeHeight:N=defaultGetNodeHeight})=>{const L=[],B=[],j=S.filter(K=>{var W;return((W=K==null?void 0:K.context)==null?void 0:W.span_id)===C}).sort((K,W)=>Date.parse(K.start_time??"")??0-Date.parse(W.start_time??"")??0),F=new Map;S.forEach(K=>{K.parent_id&&(F.has(K.parent_id)?F.get(K.parent_id).push(K):F.set(K.parent_id,[K]))});let V=0;return j.sort(sortTraceByStartTime).forEach(K=>{var X,J;const W=[{span:K,level:0}];for(;W.length>0;){const{span:oe,level:pe}=W.pop(),me=N({span:oe,level:pe,index:V});L.push({id:((X=oe==null?void 0:oe.context)==null?void 0:X.span_id)??"",width:I({span:oe,level:pe,index:V}),height:me,x:O({span:oe,level:pe,index:V}),y:V*(me+TREE_NODE_PADDING),ports:[{id:"port",name:"port",position:[0,.5]}]}),V++,(J=oe==null?void 0:oe.context)!=null&&J.span_id&&F.has(oe.context.span_id)&&F.get(oe.context.span_id).sort(sortTraceByStartTime).forEach(xe=>{var Ae,ge;!R&&((Ae=oe==null?void 0:oe.context)!=null&&Ae.span_id)&&((ge=xe==null?void 0:xe.context)!=null&&ge.span_id)&&B.push({id:`${oe.context.span_id}-${xe.context.span_id}`,source:oe.context.span_id,sourcePortId:"port",target:xe.context.span_id,targetPortId:"port"}),W.push({span:xe,level:pe+1})})}}),GraphModel.fromJSON({nodes:L,edges:B})};class EdgeConfig{render({x1:C,x2:R,y1:O,y2:I,model:N,data:L}){if(!L.nodes.get(N.source)||!L.nodes.get(N.target))return null;const F=C+30,V=R+20,K=O+10,W=`M ${F} ${K} L ${F} ${I} L ${V} ${I}`;return jsxRuntimeExports.jsx("path",{d:W,stroke:tokens.colorNeutralStrokeAccessible,strokeWidth:1,fill:"none"})}}const GanttTreeNode=({node:S})=>{const C=bitset.has(GraphNodeStatus.Selected)(S.status),R=bitset.has(GraphNodeStatus.Activated)(S.status);let O=tokens.colorNeutralStroke1,I=tokens.colorBrandBackground2,N=1;return C&&(O=tokens.colorBrandStroke2,N=2,I=tokens.colorBrandBackground2Pressed),R&&(I=tokens.colorBrandBackground2Hover),jsxRuntimeExports.jsx("foreignObject",{x:S.x,y:S.y,width:S.width,height:S.height,style:{border:`${N}px solid ${O}`,backgroundColor:I,borderRadius:10,paddingLeft:10},children:jsxRuntimeExports.jsx("div",{style:{height:"100%",width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"nowrap",cursor:"pointer"}})})};class GanttNodeConfig{constructor(C){this.options=C}render(C){const R=this.options.spans.find(O=>{var I;return((I=O==null?void 0:O.context)==null?void 0:I.span_id)===C.model.id});return R?jsxRuntimeExports.jsx(GanttTreeNode,{node:C.model,span:R}):null}getMinHeight(){return 0}getMinWidth(){return 0}}const GanttTimeline=({startMs:S,endMs:C})=>{const R=C-S,O=Math.pow(10,Math.floor(Math.log10(R))-1),I=Math.ceil(R/O),N=[],L=[];for(let B=0;BjsxRuntimeExports.jsx("div",{style:{width:"100%",height:"100%"},children:jsxRuntimeExports.jsx(ReactDagEditor,{state:S,dispatch:C,style:{height:"100%",flexGrow:1,display:"flex"},children:jsxRuntimeExports.jsx(Graph,{canvasMouseMode:CanvasMouseMode.Pan})})}),GanttView=()=>{var J;const S=useSpansOfSelectedTrace(),C=useSetSelectedSpanId(),R=useSelectedSpanId(),O=useRootSpanIdOfSelectedSpans(),I=oe=>(pe,me)=>(me&&me.type===GraphNodeEvent.Click&&C(me.node.id),oe(pe,me)),N=GraphConfigBuilder.default().registerNode(()=>new GanttNodeConfig({spans:S})).registerPort(()=>new PortConfig).registerEdge(()=>new EdgeConfig).build();previewMode.add(GraphFeatures.ClickNodeToSelect);const[B,j]=useGraphReducer({data:GraphModel.empty(),settings:{features:previewMode,graphConfig:N}},I),F=((J=B.viewport.rect)==null?void 0:J.width)||1200;let V=Number.MAX_SAFE_INTEGER,K=0;S.forEach(oe=>{const pe=Date.parse(oe.start_time??"");peK&&(K=me)});const W=reactExports.useCallback(({span:oe})=>F/(K-V)*(Date.parse(oe.start_time??"")-V),[K,F,V]),X=reactExports.useCallback(({span:oe})=>F/(K-V)*(Date.parse(oe.end_time??"")-Date.parse(oe.start_time??"")),[K,F,V]);return reactExports.useEffect(()=>{O&&(j({type:GraphCanvasEvent.SetData,data:spansToGraphModel(S,{rootSpanId:O,isEdgesHidden:!0,getNodeX:W,getNodeWidth:X,getNodeHeight:()=>24}).selectNodes(oe=>oe.id===O)}),C(O))},[]),reactExports.useEffect(()=>{R&&j({type:GraphNodeEvent.Select,nodes:[R]})},[R]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(GanttTimeline,{startMs:V,endMs:K}),jsxRuntimeExports.jsx(TreeGraph,{state:B,dispatch:j})]})},useNodeDetailClasses=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%"},headerWrapper:{display:"flex",boxSizing:"border-box",width:"100%",...shorthands.padding("12px","12px",0,"12px"),flexDirection:"row",alignItems:"center",...shorthands.gap("12px")},headerTitle:{flexGrow:1,flexShrink:1,...shorthands.overflow("hidden"),whiteSpace:"nowrap",textOverflow:"ellipsis"},headerItem:{display:"flex",alignItems:"center"},tabDivider:{...shorthands.flex("none"),...shorthands.padding(0,"12px")},content:{...shorthands.flex(1),...shorthands.padding("12px"),...shorthands.overflow("auto")},panels:{...shorthands.padding(0,"10px"),"& th":{textAlign:"left",...shorthands.padding(0,"30px",0,0)}},cardWrapper:{backgroundColor:tokens.colorNeutralBackground3},cardTitle:{fontSize:"16px",fontWeight:600},innerCardWrapper:{...shorthands.padding("16px"),...shorthands.border("1px","solid",tokens.colorNeutralForeground1),...shorthands.borderRadius("8px")}}),useRetrievalNodeDetailClasses=makeStyles({accordionHeader:{"& button":{...shorthands.padding(0),fontWeight:600}}}),getToolTypeFromSpan=S=>{var R;const C=(R=S==null?void 0:S.attributes)==null?void 0:R.span_type;return(C==null?void 0:C.split(".").pop())||"Tool"};function isObject$i(S){return Object.prototype.toString.call(S)==="[object Object]"}function objectSize(S){return Array.isArray(S)?S.length:isObject$i(S)?Object.keys(S).length:0}function stringifyForCopying(S,C){if(typeof S=="string")return S;try{return JSON.stringify(S,(R,O)=>{switch(typeof O){case"bigint":return String(O)+"n";case"number":case"boolean":case"object":case"string":return O;default:return String(O)}},C)}catch(R){return`${R.name}: ${R.message}`||"JSON.stringify failed"}}function isCollapsed(S,C,R,O,I,N){if(N&&N.collapsed!==void 0)return!!N.collapsed;if(typeof O=="boolean")return O;if(typeof O=="number"&&C>O)return!0;const L=objectSize(S);if(typeof O=="function"){const B=safeCall(O,[{node:S,depth:C,indexOrName:R,size:L}]);if(typeof B=="boolean")return B}return!!(Array.isArray(S)&&L>I||isObject$i(S)&&L>I)}function isCollapsed_largeArray(S,C,R,O,I,N){if(N&&N.collapsed!==void 0)return!!N.collapsed;if(typeof O=="boolean")return O;if(typeof O=="number"&&C>O)return!0;const L=Math.ceil(S.length/100);if(typeof O=="function"){const B=safeCall(O,[{node:S,depth:C,indexOrName:R,size:L}]);if(typeof B=="boolean")return B}return!!(Array.isArray(S)&&L>I||isObject$i(S)&&L>I)}function ifDisplay(S,C,R){return typeof S=="boolean"?S:!!(typeof S=="number"&&C>S||S==="collapsed"&&R||S==="expanded"&&!R)}function safeCall(S,C){try{return S(...C)}catch(R){reportError(R)}}function editableAdd(S){if(S===!0||isObject$i(S)&&S.add===!0)return!0}function editableEdit(S){if(S===!0||isObject$i(S)&&S.edit===!0)return!0}function editableDelete(S){if(S===!0||isObject$i(S)&&S.delete===!0)return!0}function isReactComponent(S){return typeof S=="function"}function customAdd(S){return!S||S.add===void 0||!!S.add}function customEdit(S){return!S||S.edit===void 0||!!S.edit}function customDelete(S){return!S||S.delete===void 0||!!S.delete}function customCopy(S){return!S||S.enableClipboard===void 0||!!S.enableClipboard}function customMatchesURL(S){return!S||S.matchesURL===void 0||!!S.matchesURL}function resolveEvalFailedNewValue(S,C){return S==="string"?C.trim().replace(/^\"([\s\S]+?)\"$/,"$1"):C}var _path$8;function _extends$8$1(){return _extends$8$1=Object.assign?Object.assign.bind():function(S){for(var C=1;C{I.stopPropagation();const N=C(S);typeof N=="string"&&N&&navigator.clipboard.writeText(N),O(!0),setTimeout(()=>O(!1),3e3)},className:"json-view--copy"})}function NameValue({indexOrName:S,value:C,depth:R,parent:O,deleteHandle:I,editHandle:N}){return jsxRuntimeExports.jsxs("div",Object.assign({className:"json-view--pair"},{children:[jsxRuntimeExports.jsx("span",Object.assign({className:typeof S=="number"?"json-view--index":"json-view--property"},{children:S})),":"," ",jsxRuntimeExports.jsx(JsonNode,{node:C,depth:R+1,deleteHandle:I,editHandle:N,parent:O,indexOrName:S})]}))}var _path$5,_path2$4;function _extends$5$1(){return _extends$5$1=Object.assign?Object.assign.bind():function(S){for(var C=1;C{S[xe]=Ae,F&&F({newValue:Ae,oldValue:ge,depth:R,src:j,indexOrName:xe,parentType:"array"}),V&&V({type:"edit",depth:R,src:j,indexOrName:xe,parentType:"array"}),K()},[C,F,V,K]),pe=xe=>{S.splice(xe,1),K()},me=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!X&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>J(!0),className:"jv-size-chevron"},{children:[ifDisplay(W,R,X)&&jsxRuntimeExports.jsxs("span",Object.assign({className:"jv-size"},{children:[objectSize(C)," Items"]})),jsxRuntimeExports.jsx(SvgAngleDown,{className:"jv-chevron"})]})),!X&&B&&customCopy(N)&&jsxRuntimeExports.jsx(CopyButton$2,{node:C})]});return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("span",{children:"["}),me,X?jsxRuntimeExports.jsxs("button",Object.assign({onClick:()=>J(!1),className:"jv-button"},{children:[L," ... ",L+C.length-1]})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:C.map((xe,Ae)=>jsxRuntimeExports.jsx(NameValue,{indexOrName:Ae+L,value:xe,depth:R,parent:C,deleteHandle:pe,editHandle:oe},String(O)+String(Ae)))})),jsxRuntimeExports.jsx("span",{children:"]"})]})}function LargeArray({node:S,depth:C,deleteHandle:R,indexOrName:O,customOptions:I}){const N=[];for(let Je=0;Je{xe(isCollapsed_largeArray(S,C,O,L,j,I))},[L,j]);const[Ae,ge]=reactExports.useState(!1),Te=()=>{ge(!1),R&&R(O),V&&V({value:S,depth:C,src:K,indexOrName:O,parentType:"array"}),J&&J({type:"delete",depth:C,src:K,indexOrName:O,parentType:"array"})},[we,ke]=reactExports.useState(!1),Be=()=>{const Je=S;Je.push(null),W&&W({indexOrName:Je.length-1,depth:C,src:K,parentType:"array"}),J&&J({type:"add",indexOrName:Je.length-1,depth:C,src:K,parentType:"array"}),oe()},Ie=Ae||we,je=()=>{ge(!1),ke(!1)},Ke=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!me&&!Ie&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>xe(!0),className:"jv-size-chevron"},{children:[ifDisplay(pe,C,me)&&jsxRuntimeExports.jsxs("span",Object.assign({className:"jv-size"},{children:[S.length," Items"]})),jsxRuntimeExports.jsx(SvgAngleDown,{className:"jv-chevron"})]})),Ie&&jsxRuntimeExports.jsx(SvgDone,{className:"json-view--edit",style:{display:"inline-block"},onClick:we?Be:Te}),Ie&&jsxRuntimeExports.jsx(SvgCancel,{className:"json-view--edit",style:{display:"inline-block"},onClick:je}),!me&&!Ie&&B&&customCopy(I)&&jsxRuntimeExports.jsx(CopyButton$2,{node:S}),!me&&!Ie&&editableAdd(F)&&customAdd(I)&&jsxRuntimeExports.jsx(SvgAddSquare,{className:"json-view--edit",onClick:()=>{Be()}}),!me&&!Ie&&editableDelete(F)&&customDelete(I)&&R&&jsxRuntimeExports.jsx(SvgTrash,{className:"json-view--edit",onClick:()=>ge(!0)})]});return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:"["}),Ke,me?jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>xe(!1),className:"jv-button"},{children:"..."})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:N.map((Je,Xe)=>jsxRuntimeExports.jsx(LargeArrayNode,{originNode:S,node:Je,depth:C,index:Xe,startIndex:Xe*100},String(O)+String(Xe)))})),jsxRuntimeExports.jsx("span",{children:"]"}),me&&ifDisplay(pe,C,me)&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>xe(!1),className:"jv-size"},{children:[S.length," Items"]}))]})}function ObjectNode({node:S,depth:C,indexOrName:R,deleteHandle:O,customOptions:I}){if(Array.isArray(S)&&S.length>100)return jsxRuntimeExports.jsx(LargeArray,{node:S,depth:C,indexOrName:R,deleteHandle:O,customOptions:I});const{collapsed:N,enableClipboard:L,collapseObjectsAfterLength:B,editable:j,onDelete:F,src:V,onAdd:K,onEdit:W,onChange:X,forceUpdate:J,displaySize:oe}=reactExports.useContext(JsonViewContext),pe=isObject$i(S),[me,xe]=reactExports.useState(isCollapsed(S,C,R,N,B,I));reactExports.useEffect(()=>{xe(isCollapsed(S,C,R,N,B,I))},[N,B]);const Ae=reactExports.useCallback((Ue,et,dt)=>{Array.isArray(S)?S[+Ue]=et:S&&(S[Ue]=et),W&&W({newValue:et,oldValue:dt,depth:C,src:V,indexOrName:Ue,parentType:pe?"object":"array"}),X&&X({type:"edit",depth:C,src:V,indexOrName:Ue,parentType:pe?"object":"array"}),J()},[S,W,X,J]),ge=Ue=>{Array.isArray(S)?S.splice(+Ue,1):S&&delete S[Ue],J()},[Te,we]=reactExports.useState(!1),ke=()=>{we(!1),O&&O(R),F&&F({value:S,depth:C,src:V,indexOrName:R,parentType:pe?"object":"array"}),X&&X({type:"delete",depth:C,src:V,indexOrName:R,parentType:pe?"object":"array"})},[Be,Ie]=reactExports.useState(!1),je=reactExports.useRef(null),Ke=()=>{var Ue;if(pe){const et=(Ue=je.current)===null||Ue===void 0?void 0:Ue.value;et&&(S[et]=null,je.current&&(je.current.value=""),Ie(!1),K&&K({indexOrName:et,depth:C,src:V,parentType:"object"}),X&&X({type:"add",indexOrName:et,depth:C,src:V,parentType:"object"}))}else if(Array.isArray(S)){const et=S;et.push(null),K&&K({indexOrName:et.length-1,depth:C,src:V,parentType:"array"}),X&&X({type:"add",indexOrName:et.length-1,depth:C,src:V,parentType:"array"})}J()},Je=Ue=>{Ue.key==="Enter"?(Ue.preventDefault(),Ke()):Ue.key==="Escape"&&ot()},Xe=Te||Be,ot=()=>{we(!1),Ie(!1)},tt=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!me&&!Xe&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>xe(!0),className:"jv-size-chevron"},{children:[ifDisplay(oe,C,me)&&jsxRuntimeExports.jsxs("span",Object.assign({className:"jv-size"},{children:[objectSize(S)," Items"]})),jsxRuntimeExports.jsx(SvgAngleDown,{className:"jv-chevron"})]})),Be&&pe&&jsxRuntimeExports.jsx("input",{className:"json-view--input",placeholder:"property",ref:je,onKeyDown:Je}),Xe&&jsxRuntimeExports.jsx(SvgDone,{className:"json-view--edit",style:{display:"inline-block"},onClick:Be?Ke:ke}),Xe&&jsxRuntimeExports.jsx(SvgCancel,{className:"json-view--edit",style:{display:"inline-block"},onClick:ot}),!me&&!Xe&&L&&customCopy(I)&&jsxRuntimeExports.jsx(CopyButton$2,{node:S}),!me&&!Xe&&editableAdd(j)&&customAdd(I)&&jsxRuntimeExports.jsx(SvgAddSquare,{className:"json-view--edit",onClick:()=>{pe?(Ie(!0),setTimeout(()=>{var Ue;return(Ue=je.current)===null||Ue===void 0?void 0:Ue.focus()})):Ke()}}),!me&&!Xe&&editableDelete(j)&&customDelete(I)&&O&&jsxRuntimeExports.jsx(SvgTrash,{className:"json-view--edit",onClick:()=>we(!0)})]});return Array.isArray(S)?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:"["}),tt,me?jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>xe(!1),className:"jv-button"},{children:"..."})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:S.map((Ue,et)=>jsxRuntimeExports.jsx(NameValue,{indexOrName:et,value:Ue,depth:C,parent:S,deleteHandle:ge,editHandle:Ae},String(R)+String(et)))})),jsxRuntimeExports.jsx("span",{children:"]"}),me&&ifDisplay(oe,C,me)&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>xe(!1),className:"jv-size"},{children:[objectSize(S)," Items"]}))]}):pe?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:"{"}),tt,me?jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>xe(!1),className:"jv-button"},{children:"..."})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:Object.entries(S).map(([Ue,et])=>jsxRuntimeExports.jsx(NameValue,{indexOrName:Ue,value:et,depth:C,parent:S,deleteHandle:ge,editHandle:Ae},String(R)+String(Ue)))})),jsxRuntimeExports.jsx("span",{children:"}"}),me&&ifDisplay(oe,C,me)&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>xe(!1),className:"jv-size"},{children:[objectSize(S)," Items"]}))]}):null}const LongString=React.forwardRef(({str:S,className:C,ctrlClick:R},O)=>{let{collapseStringMode:I,collapseStringsAfterLength:N}=reactExports.useContext(JsonViewContext);const[L,B]=reactExports.useState(!0);N=N>0?N:0;const j=S.replace(/\s+/g," "),F=V=>{(V.ctrlKey||V.metaKey)&&R?R(V):B(!L)};if(S.length<=N)return jsxRuntimeExports.jsxs("span",Object.assign({className:C,onClick:R},{children:['"',S,'"']}));if(I==="address")return S.length<=10?jsxRuntimeExports.jsxs("span",Object.assign({className:C,onClick:R},{children:['"',S,'"']})):jsxRuntimeExports.jsxs("span",Object.assign({onClick:F,className:C+" cursor-pointer"},{children:['"',L?j.slice(0,6)+"..."+j.slice(-4):S,'"']}));if(I==="directly")return jsxRuntimeExports.jsxs("span",Object.assign({onClick:F,className:C+" cursor-pointer"},{children:['"',L?j.slice(0,N)+"...":S,'"']}));if(I==="word"){let V=N,K=N+1,W=j,X=1;for(;;){if(/\W/.test(S[V])){W=S.slice(0,V);break}if(/\W/.test(S[K])){W=S.slice(0,K);break}if(X===6){W=S.slice(0,N);break}X++,V--,K++}return jsxRuntimeExports.jsxs("span",Object.assign({onClick:F,className:C+" cursor-pointer"},{children:['"',L?W+"...":S,'"']}))}return jsxRuntimeExports.jsxs("span",Object.assign({className:C},{children:['"',S,'"']}))});var _path$1;function _extends$1$1(){return _extends$1$1=Object.assign?Object.assign.bind():function(S){for(var C=1;C{setEditing(!0),setTimeout(()=>{var S,C;(S=window.getSelection())===null||S===void 0||S.selectAllChildren(valueRef.current),(C=valueRef.current)===null||C===void 0||C.focus()})},done=reactExports.useCallback(()=>{const newValue=valueRef.current.innerText;try{const evalValue=eval(newValue);editHandle&&editHandle(indexOrName,evalValue,node)}catch(S){const C=resolveEvalFailedNewValue(type,newValue);editHandle&&editHandle(indexOrName,C,node)}setEditing(!1)},[editHandle]),cancel=()=>{setEditing(!1),setDeleting(!1)},deleteHandle=()=>{setDeleting(!1),_deleteHandle&&_deleteHandle(indexOrName),onDelete&&onDelete({value:node,depth,src,indexOrName,parentType:Array.isArray(parent)?"array":"object"}),onChange&&onChange({depth,src,indexOrName,parentType:Array.isArray(parent)?"array":"object",type:"delete"})},handleKeyDown=reactExports.useCallback(S=>{S.key==="Enter"?(S.preventDefault(),done()):S.key==="Escape"&&cancel()},[done]),isEditing=editing||deleting,ctrlClick=!isEditing&&editableEdit(editable)&&customEdit(customReturn)&&editHandle?S=>{(S.ctrlKey||S.metaKey)&&edit()}:void 0,Icons=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[isEditing&&jsxRuntimeExports.jsx(SvgDone,{className:"json-view--edit",style:{display:"inline-block"},onClick:deleting?deleteHandle:done}),isEditing&&jsxRuntimeExports.jsx(SvgCancel,{className:"json-view--edit",style:{display:"inline-block"},onClick:cancel}),!isEditing&&enableClipboard&&customCopy(customReturn)&&jsxRuntimeExports.jsx(CopyButton$2,{node}),!isEditing&&matchesURL&&type==="string"&&urlRegExp.test(node)&&customMatchesURL(customReturn)&&jsxRuntimeExports.jsx("a",Object.assign({href:node,target:"_blank",className:"json-view--link"},{children:jsxRuntimeExports.jsx(SvgLink,{})})),!isEditing&&editableEdit(editable)&&customEdit(customReturn)&&editHandle&&jsxRuntimeExports.jsx(SvgEdit,{className:"json-view--edit",onClick:edit}),!isEditing&&editableDelete(editable)&&customDelete(customReturn)&&_deleteHandle&&jsxRuntimeExports.jsx(SvgTrash,{className:"json-view--edit",onClick:()=>setDeleting(!0)})]});let className="json-view--string";switch(typeof(customReturn==null?void 0:customReturn.className)=="string"&&(className+=" "+customReturn.className),type){case"number":case"bigint":className="json-view--number";break;case"boolean":className="json-view--boolean";break;case"object":className="json-view--null";break}deleting&&(className+=" json-view--deleting");let displayValue=String(node);type==="bigint"&&(displayValue+="n");const EditingElement=reactExports.useMemo(()=>jsxRuntimeExports.jsx("span",{contentEditable:!0,className,dangerouslySetInnerHTML:{__html:type==="string"?`"${displayValue}"`:displayValue},ref:valueRef,onKeyDown:handleKeyDown}),[displayValue,type,handleKeyDown]);return type==="string"?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[editing?EditingElement:node.length>collapseStringsAfterLength?jsxRuntimeExports.jsx(LongString,{str:node,ref:valueRef,className,ctrlClick}):jsxRuntimeExports.jsxs("span",Object.assign({className,onClick:ctrlClick},{children:['"',displayValue,'"']})),Icons]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[editing?EditingElement:jsxRuntimeExports.jsx("span",Object.assign({className,onClick:ctrlClick},{children:displayValue})),Icons]})}}const defaultURLRegExp=/^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/,JsonViewContext=reactExports.createContext({src:void 0,collapseStringsAfterLength:99,collapseStringMode:"directly",collapseObjectsAfterLength:20,collapsed:!1,enableClipboard:!0,editable:!1,onEdit:void 0,onDelete:void 0,onAdd:void 0,onChange:void 0,forceUpdate:()=>{},customizeNode:void 0,customizeCopy:()=>{},displaySize:void 0,matchesURL:!1,urlRegExp:defaultURLRegExp});function JsonView({src:S,collapseStringsAfterLength:C=99,collapseStringMode:R="directly",collapseObjectsAfterLength:O=99,collapsed:I,enableClipboard:N=!0,editable:L=!1,onEdit:B,onDelete:j,onAdd:F,onChange:V,dark:K=!1,theme:W="default",customizeNode:X,customizeCopy:J=stringifyForCopying,displaySize:oe,style:pe,className:me,matchesURL:xe=!1,urlRegExp:Ae=defaultURLRegExp}){const[ge,Te]=reactExports.useState(0),we=reactExports.useCallback(()=>Te(ke=>++ke),[]);return jsxRuntimeExports.jsx(JsonViewContext.Provider,Object.assign({value:{src:S,collapseStringsAfterLength:C,collapseStringMode:R,collapseObjectsAfterLength:O,collapsed:I,enableClipboard:N,editable:L,onEdit:B,onDelete:j,onAdd:F,onChange:V,forceUpdate:we,customizeNode:X,customizeCopy:J,displaySize:oe,matchesURL:xe,urlRegExp:Ae}},{children:jsxRuntimeExports.jsx("code",Object.assign({className:"json-view"+(K?" dark":"")+(W&&W!=="default"?" json-view_"+W:"")+(me?" "+me:""),style:pe},{children:jsxRuntimeExports.jsx(JsonNode,{node:S,depth:1})}))}))}const TraceViewThemeContext=reactExports.createContext(!1),useIsDark=()=>reactExports.useContext(TraceViewThemeContext),JsonNodeCard=({title:S,src:C,wrapperStyle:R={}})=>{let O="";if(typeof C=="string")try{O=JSON.parse(C)}catch{O=C}else typeof C=="object"&&(O=C);const I=useIsDark();return jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12,...R},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:S})})}),jsxRuntimeExports.jsx(JsonView,{src:O,theme:"vscode",dark:I})]})},DefaultNodeInfo=()=>{var C,R;const S=useSelectedSpan();return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(JsonNodeCard,{title:"Input",src:(C=S==null?void 0:S.attributes)==null?void 0:C.inputs}),jsxRuntimeExports.jsx(JsonNodeCard,{title:"Output",src:(R=S==null?void 0:S.attributes)==null?void 0:R.output})]})},BlockquoteType="blockquote",BreakType="break",CodeType="code",DefinitionType="definition",DeleteType="delete",EmphasisType="emphasis",HeadingType="heading",HtmlType="html";var HtmlContentType;(function(S){S.CDATA="cdata",S.Closing="closing",S.Comment="comment",S.Declaration="declaration",S.Instruction="instruction",S.Open="open"})(HtmlContentType||(HtmlContentType={}));const ImageReferenceType="imageReference",ImageType$1="image",InlineCodeType="inlineCode",LinkReferenceType="linkReference",LinkType="link",ListItemType="listItem";var TaskStatus;(function(S){S.TODO="todo",S.DOING="doing",S.DONE="done"})(TaskStatus||(TaskStatus={}));const ListType="list",ParagraphType$1="paragraph",StrongType="strong",TableType="table",TextType$1="text",ThematicBreakType="thematicBreak";var AsciiCodePoint;(function(S){S[S.NUL=0]="NUL",S[S.SOH=1]="SOH",S[S.STX=2]="STX",S[S.ETX=3]="ETX",S[S.EOT=4]="EOT",S[S.ENQ=5]="ENQ",S[S.ACK=6]="ACK",S[S.BEL=7]="BEL",S[S.BS=8]="BS",S[S.HT=9]="HT",S[S.LF=10]="LF",S[S.VT=11]="VT",S[S.FF=12]="FF",S[S.CR=13]="CR",S[S.SO=14]="SO",S[S.SI=15]="SI",S[S.DLE=16]="DLE",S[S.DC1=17]="DC1",S[S.DC2=18]="DC2",S[S.DC3=19]="DC3",S[S.DC4=20]="DC4",S[S.NAK=21]="NAK",S[S.SYN=22]="SYN",S[S.ETB=23]="ETB",S[S.CAN=24]="CAN",S[S.EM=25]="EM",S[S.SUB=26]="SUB",S[S.ESC=27]="ESC",S[S.FS=28]="FS",S[S.GS=29]="GS",S[S.RS=30]="RS",S[S.US=31]="US",S[S.SPACE=32]="SPACE",S[S.EXCLAMATION_MARK=33]="EXCLAMATION_MARK",S[S.DOUBLE_QUOTE=34]="DOUBLE_QUOTE",S[S.NUMBER_SIGN=35]="NUMBER_SIGN",S[S.DOLLAR_SIGN=36]="DOLLAR_SIGN",S[S.PERCENT_SIGN=37]="PERCENT_SIGN",S[S.AMPERSAND=38]="AMPERSAND",S[S.SINGLE_QUOTE=39]="SINGLE_QUOTE",S[S.OPEN_PARENTHESIS=40]="OPEN_PARENTHESIS",S[S.CLOSE_PARENTHESIS=41]="CLOSE_PARENTHESIS",S[S.ASTERISK=42]="ASTERISK",S[S.PLUS_SIGN=43]="PLUS_SIGN",S[S.COMMA=44]="COMMA",S[S.MINUS_SIGN=45]="MINUS_SIGN",S[S.DOT=46]="DOT",S[S.SLASH=47]="SLASH",S[S.DIGIT0=48]="DIGIT0",S[S.DIGIT1=49]="DIGIT1",S[S.DIGIT2=50]="DIGIT2",S[S.DIGIT3=51]="DIGIT3",S[S.DIGIT4=52]="DIGIT4",S[S.DIGIT5=53]="DIGIT5",S[S.DIGIT6=54]="DIGIT6",S[S.DIGIT7=55]="DIGIT7",S[S.DIGIT8=56]="DIGIT8",S[S.DIGIT9=57]="DIGIT9",S[S.COLON=58]="COLON",S[S.SEMICOLON=59]="SEMICOLON",S[S.OPEN_ANGLE=60]="OPEN_ANGLE",S[S.EQUALS_SIGN=61]="EQUALS_SIGN",S[S.CLOSE_ANGLE=62]="CLOSE_ANGLE",S[S.QUESTION_MARK=63]="QUESTION_MARK",S[S.AT_SIGN=64]="AT_SIGN",S[S.UPPERCASE_A=65]="UPPERCASE_A",S[S.UPPERCASE_B=66]="UPPERCASE_B",S[S.UPPERCASE_C=67]="UPPERCASE_C",S[S.UPPERCASE_D=68]="UPPERCASE_D",S[S.UPPERCASE_E=69]="UPPERCASE_E",S[S.UPPERCASE_F=70]="UPPERCASE_F",S[S.UPPERCASE_G=71]="UPPERCASE_G",S[S.UPPERCASE_H=72]="UPPERCASE_H",S[S.UPPERCASE_I=73]="UPPERCASE_I",S[S.UPPERCASE_J=74]="UPPERCASE_J",S[S.UPPERCASE_K=75]="UPPERCASE_K",S[S.UPPERCASE_L=76]="UPPERCASE_L",S[S.UPPERCASE_M=77]="UPPERCASE_M",S[S.UPPERCASE_N=78]="UPPERCASE_N",S[S.UPPERCASE_O=79]="UPPERCASE_O",S[S.UPPERCASE_P=80]="UPPERCASE_P",S[S.UPPERCASE_Q=81]="UPPERCASE_Q",S[S.UPPERCASE_R=82]="UPPERCASE_R",S[S.UPPERCASE_S=83]="UPPERCASE_S",S[S.UPPERCASE_T=84]="UPPERCASE_T",S[S.UPPERCASE_U=85]="UPPERCASE_U",S[S.UPPERCASE_V=86]="UPPERCASE_V",S[S.UPPERCASE_W=87]="UPPERCASE_W",S[S.UPPERCASE_X=88]="UPPERCASE_X",S[S.UPPERCASE_Y=89]="UPPERCASE_Y",S[S.UPPERCASE_Z=90]="UPPERCASE_Z",S[S.OPEN_BRACKET=91]="OPEN_BRACKET",S[S.BACKSLASH=92]="BACKSLASH",S[S.CLOSE_BRACKET=93]="CLOSE_BRACKET",S[S.CARET=94]="CARET",S[S.UNDERSCORE=95]="UNDERSCORE",S[S.BACKTICK=96]="BACKTICK",S[S.LOWERCASE_A=97]="LOWERCASE_A",S[S.LOWERCASE_B=98]="LOWERCASE_B",S[S.LOWERCASE_C=99]="LOWERCASE_C",S[S.LOWERCASE_D=100]="LOWERCASE_D",S[S.LOWERCASE_E=101]="LOWERCASE_E",S[S.LOWERCASE_F=102]="LOWERCASE_F",S[S.LOWERCASE_G=103]="LOWERCASE_G",S[S.LOWERCASE_H=104]="LOWERCASE_H",S[S.LOWERCASE_I=105]="LOWERCASE_I",S[S.LOWERCASE_J=106]="LOWERCASE_J",S[S.LOWERCASE_K=107]="LOWERCASE_K",S[S.LOWERCASE_L=108]="LOWERCASE_L",S[S.LOWERCASE_M=109]="LOWERCASE_M",S[S.LOWERCASE_N=110]="LOWERCASE_N",S[S.LOWERCASE_O=111]="LOWERCASE_O",S[S.LOWERCASE_P=112]="LOWERCASE_P",S[S.LOWERCASE_Q=113]="LOWERCASE_Q",S[S.LOWERCASE_R=114]="LOWERCASE_R",S[S.LOWERCASE_S=115]="LOWERCASE_S",S[S.LOWERCASE_T=116]="LOWERCASE_T",S[S.LOWERCASE_U=117]="LOWERCASE_U",S[S.LOWERCASE_V=118]="LOWERCASE_V",S[S.LOWERCASE_W=119]="LOWERCASE_W",S[S.LOWERCASE_X=120]="LOWERCASE_X",S[S.LOWERCASE_Y=121]="LOWERCASE_Y",S[S.LOWERCASE_Z=122]="LOWERCASE_Z",S[S.OPEN_BRACE=123]="OPEN_BRACE",S[S.VERTICAL_SLASH=124]="VERTICAL_SLASH",S[S.CLOSE_BRACE=125]="CLOSE_BRACE",S[S.TILDE=126]="TILDE",S[S.DELETE=127]="DELETE"})(AsciiCodePoint||(AsciiCodePoint={}));const foldingCaseCodeMap={µ:"μ",À:"à",Á:"á",Â:"â",Ã:"ã",Ä:"ä",Å:"å",Æ:"æ",Ç:"ç",È:"è",É:"é",Ê:"ê",Ë:"ë",Ì:"ì",Í:"í",Î:"î",Ï:"ï",Ð:"ð",Ñ:"ñ",Ò:"ò",Ó:"ó",Ô:"ô",Õ:"õ",Ö:"ö",Ø:"ø",Ù:"ù",Ú:"ú",Û:"û",Ü:"ü",Ý:"ý",Þ:"þ",Ā:"ā",Ă:"ă",Ą:"ą",Ć:"ć",Ĉ:"ĉ",Ċ:"ċ",Č:"č",Ď:"ď",Đ:"đ",Ē:"ē",Ĕ:"ĕ",Ė:"ė",Ę:"ę",Ě:"ě",Ĝ:"ĝ",Ğ:"ğ",Ġ:"ġ",Ģ:"ģ",Ĥ:"ĥ",Ħ:"ħ",Ĩ:"ĩ",Ī:"ī",Ĭ:"ĭ",Į:"į",IJ:"ij",Ĵ:"ĵ",Ķ:"ķ",Ĺ:"ĺ",Ļ:"ļ",Ľ:"ľ",Ŀ:"ŀ",Ł:"ł",Ń:"ń",Ņ:"ņ",Ň:"ň",Ŋ:"ŋ",Ō:"ō",Ŏ:"ŏ",Ő:"ő",Œ:"œ",Ŕ:"ŕ",Ŗ:"ŗ",Ř:"ř",Ś:"ś",Ŝ:"ŝ",Ş:"ş",Š:"š",Ţ:"ţ",Ť:"ť",Ŧ:"ŧ",Ũ:"ũ",Ū:"ū",Ŭ:"ŭ",Ů:"ů",Ű:"ű",Ų:"ų",Ŵ:"ŵ",Ŷ:"ŷ",Ÿ:"ÿ",Ź:"ź",Ż:"ż",Ž:"ž",ſ:"s",Ɓ:"ɓ",Ƃ:"ƃ",Ƅ:"ƅ",Ɔ:"ɔ",Ƈ:"ƈ",Ɖ:"ɖ",Ɗ:"ɗ",Ƌ:"ƌ",Ǝ:"ǝ",Ə:"ə",Ɛ:"ɛ",Ƒ:"ƒ",Ɠ:"ɠ",Ɣ:"ɣ",Ɩ:"ɩ",Ɨ:"ɨ",Ƙ:"ƙ",Ɯ:"ɯ",Ɲ:"ɲ",Ɵ:"ɵ",Ơ:"ơ",Ƣ:"ƣ",Ƥ:"ƥ",Ʀ:"ʀ",Ƨ:"ƨ",Ʃ:"ʃ",Ƭ:"ƭ",Ʈ:"ʈ",Ư:"ư",Ʊ:"ʊ",Ʋ:"ʋ",Ƴ:"ƴ",Ƶ:"ƶ",Ʒ:"ʒ",Ƹ:"ƹ",Ƽ:"ƽ",DŽ:"dž",Dž:"dž",LJ:"lj",Lj:"lj",NJ:"nj",Nj:"nj",Ǎ:"ǎ",Ǐ:"ǐ",Ǒ:"ǒ",Ǔ:"ǔ",Ǖ:"ǖ",Ǘ:"ǘ",Ǚ:"ǚ",Ǜ:"ǜ",Ǟ:"ǟ",Ǡ:"ǡ",Ǣ:"ǣ",Ǥ:"ǥ",Ǧ:"ǧ",Ǩ:"ǩ",Ǫ:"ǫ",Ǭ:"ǭ",Ǯ:"ǯ",DZ:"dz",Dz:"dz",Ǵ:"ǵ",Ƕ:"ƕ",Ƿ:"ƿ",Ǹ:"ǹ",Ǻ:"ǻ",Ǽ:"ǽ",Ǿ:"ǿ",Ȁ:"ȁ",Ȃ:"ȃ",Ȅ:"ȅ",Ȇ:"ȇ",Ȉ:"ȉ",Ȋ:"ȋ",Ȍ:"ȍ",Ȏ:"ȏ",Ȑ:"ȑ",Ȓ:"ȓ",Ȕ:"ȕ",Ȗ:"ȗ",Ș:"ș",Ț:"ț",Ȝ:"ȝ",Ȟ:"ȟ","Ƞ":"ƞ",Ȣ:"ȣ",Ȥ:"ȥ",Ȧ:"ȧ",Ȩ:"ȩ",Ȫ:"ȫ",Ȭ:"ȭ",Ȯ:"ȯ",Ȱ:"ȱ",Ȳ:"ȳ","Ⱥ":"ⱥ","Ȼ":"ȼ","Ƚ":"ƚ","Ⱦ":"ⱦ","Ɂ":"ɂ","Ƀ":"ƀ","Ʉ":"ʉ","Ʌ":"ʌ","Ɇ":"ɇ","Ɉ":"ɉ","Ɋ":"ɋ","Ɍ":"ɍ","Ɏ":"ɏ","ͅ":"ι","Ͱ":"ͱ","Ͳ":"ͳ","Ͷ":"ͷ","Ϳ":"ϳ",Ά:"ά",Έ:"έ",Ή:"ή",Ί:"ί",Ό:"ό",Ύ:"ύ",Ώ:"ώ",Α:"α",Β:"β",Γ:"γ",Δ:"δ",Ε:"ε",Ζ:"ζ",Η:"η",Θ:"θ",Ι:"ι",Κ:"κ",Λ:"λ",Μ:"μ",Ν:"ν",Ξ:"ξ",Ο:"ο",Π:"π",Ρ:"ρ",Σ:"σ",Τ:"τ",Υ:"υ",Φ:"φ",Χ:"χ",Ψ:"ψ",Ω:"ω",Ϊ:"ϊ",Ϋ:"ϋ",ς:"σ","Ϗ":"ϗ",ϐ:"β",ϑ:"θ",ϕ:"φ",ϖ:"π","Ϙ":"ϙ",Ϛ:"ϛ",Ϝ:"ϝ",Ϟ:"ϟ",Ϡ:"ϡ",Ϣ:"ϣ",Ϥ:"ϥ",Ϧ:"ϧ",Ϩ:"ϩ",Ϫ:"ϫ",Ϭ:"ϭ",Ϯ:"ϯ",ϰ:"κ",ϱ:"ρ","ϴ":"θ","ϵ":"ε","Ϸ":"ϸ","Ϲ":"ϲ","Ϻ":"ϻ","Ͻ":"ͻ","Ͼ":"ͼ","Ͽ":"ͽ",Ѐ:"ѐ",Ё:"ё",Ђ:"ђ",Ѓ:"ѓ",Є:"є",Ѕ:"ѕ",І:"і",Ї:"ї",Ј:"ј",Љ:"љ",Њ:"њ",Ћ:"ћ",Ќ:"ќ",Ѝ:"ѝ",Ў:"ў",Џ:"џ",А:"а",Б:"б",В:"в",Г:"г",Д:"д",Е:"е",Ж:"ж",З:"з",И:"и",Й:"й",К:"к",Л:"л",М:"м",Н:"н",О:"о",П:"п",Р:"р",С:"с",Т:"т",У:"у",Ф:"ф",Х:"х",Ц:"ц",Ч:"ч",Ш:"ш",Щ:"щ",Ъ:"ъ",Ы:"ы",Ь:"ь",Э:"э",Ю:"ю",Я:"я",Ѡ:"ѡ",Ѣ:"ѣ",Ѥ:"ѥ",Ѧ:"ѧ",Ѩ:"ѩ",Ѫ:"ѫ",Ѭ:"ѭ",Ѯ:"ѯ",Ѱ:"ѱ",Ѳ:"ѳ",Ѵ:"ѵ",Ѷ:"ѷ",Ѹ:"ѹ",Ѻ:"ѻ",Ѽ:"ѽ",Ѿ:"ѿ",Ҁ:"ҁ","Ҋ":"ҋ",Ҍ:"ҍ",Ҏ:"ҏ",Ґ:"ґ",Ғ:"ғ",Ҕ:"ҕ",Җ:"җ",Ҙ:"ҙ",Қ:"қ",Ҝ:"ҝ",Ҟ:"ҟ",Ҡ:"ҡ",Ң:"ң",Ҥ:"ҥ",Ҧ:"ҧ",Ҩ:"ҩ",Ҫ:"ҫ",Ҭ:"ҭ",Ү:"ү",Ұ:"ұ",Ҳ:"ҳ",Ҵ:"ҵ",Ҷ:"ҷ",Ҹ:"ҹ",Һ:"һ",Ҽ:"ҽ",Ҿ:"ҿ",Ӏ:"ӏ",Ӂ:"ӂ",Ӄ:"ӄ","Ӆ":"ӆ",Ӈ:"ӈ","Ӊ":"ӊ",Ӌ:"ӌ","Ӎ":"ӎ",Ӑ:"ӑ",Ӓ:"ӓ",Ӕ:"ӕ",Ӗ:"ӗ",Ә:"ә",Ӛ:"ӛ",Ӝ:"ӝ",Ӟ:"ӟ",Ӡ:"ӡ",Ӣ:"ӣ",Ӥ:"ӥ",Ӧ:"ӧ",Ө:"ө",Ӫ:"ӫ",Ӭ:"ӭ",Ӯ:"ӯ",Ӱ:"ӱ",Ӳ:"ӳ",Ӵ:"ӵ","Ӷ":"ӷ",Ӹ:"ӹ","Ӻ":"ӻ","Ӽ":"ӽ","Ӿ":"ӿ","Ԁ":"ԁ","Ԃ":"ԃ","Ԅ":"ԅ","Ԇ":"ԇ","Ԉ":"ԉ","Ԋ":"ԋ","Ԍ":"ԍ","Ԏ":"ԏ","Ԑ":"ԑ","Ԓ":"ԓ","Ԕ":"ԕ","Ԗ":"ԗ","Ԙ":"ԙ","Ԛ":"ԛ","Ԝ":"ԝ","Ԟ":"ԟ","Ԡ":"ԡ","Ԣ":"ԣ","Ԥ":"ԥ","Ԧ":"ԧ","Ԩ":"ԩ","Ԫ":"ԫ","Ԭ":"ԭ","Ԯ":"ԯ",Ա:"ա",Բ:"բ",Գ:"գ",Դ:"դ",Ե:"ե",Զ:"զ",Է:"է",Ը:"ը",Թ:"թ",Ժ:"ժ",Ի:"ի",Լ:"լ",Խ:"խ",Ծ:"ծ",Կ:"կ",Հ:"հ",Ձ:"ձ",Ղ:"ղ",Ճ:"ճ",Մ:"մ",Յ:"յ",Ն:"ն",Շ:"շ",Ո:"ո",Չ:"չ",Պ:"պ",Ջ:"ջ",Ռ:"ռ",Ս:"ս",Վ:"վ",Տ:"տ",Ր:"ր",Ց:"ց",Ւ:"ւ",Փ:"փ",Ք:"ք",Օ:"օ",Ֆ:"ֆ",Ⴀ:"ⴀ",Ⴁ:"ⴁ",Ⴂ:"ⴂ",Ⴃ:"ⴃ",Ⴄ:"ⴄ",Ⴅ:"ⴅ",Ⴆ:"ⴆ",Ⴇ:"ⴇ",Ⴈ:"ⴈ",Ⴉ:"ⴉ",Ⴊ:"ⴊ",Ⴋ:"ⴋ",Ⴌ:"ⴌ",Ⴍ:"ⴍ",Ⴎ:"ⴎ",Ⴏ:"ⴏ",Ⴐ:"ⴐ",Ⴑ:"ⴑ",Ⴒ:"ⴒ",Ⴓ:"ⴓ",Ⴔ:"ⴔ",Ⴕ:"ⴕ",Ⴖ:"ⴖ",Ⴗ:"ⴗ",Ⴘ:"ⴘ",Ⴙ:"ⴙ",Ⴚ:"ⴚ",Ⴛ:"ⴛ",Ⴜ:"ⴜ",Ⴝ:"ⴝ",Ⴞ:"ⴞ",Ⴟ:"ⴟ",Ⴠ:"ⴠ",Ⴡ:"ⴡ",Ⴢ:"ⴢ",Ⴣ:"ⴣ",Ⴤ:"ⴤ",Ⴥ:"ⴥ","Ⴧ":"ⴧ","Ⴭ":"ⴭ",Ḁ:"ḁ",Ḃ:"ḃ",Ḅ:"ḅ",Ḇ:"ḇ",Ḉ:"ḉ",Ḋ:"ḋ",Ḍ:"ḍ",Ḏ:"ḏ",Ḑ:"ḑ",Ḓ:"ḓ",Ḕ:"ḕ",Ḗ:"ḗ",Ḙ:"ḙ",Ḛ:"ḛ",Ḝ:"ḝ",Ḟ:"ḟ",Ḡ:"ḡ",Ḣ:"ḣ",Ḥ:"ḥ",Ḧ:"ḧ",Ḩ:"ḩ",Ḫ:"ḫ",Ḭ:"ḭ",Ḯ:"ḯ",Ḱ:"ḱ",Ḳ:"ḳ",Ḵ:"ḵ",Ḷ:"ḷ",Ḹ:"ḹ",Ḻ:"ḻ",Ḽ:"ḽ",Ḿ:"ḿ",Ṁ:"ṁ",Ṃ:"ṃ",Ṅ:"ṅ",Ṇ:"ṇ",Ṉ:"ṉ",Ṋ:"ṋ",Ṍ:"ṍ",Ṏ:"ṏ",Ṑ:"ṑ",Ṓ:"ṓ",Ṕ:"ṕ",Ṗ:"ṗ",Ṙ:"ṙ",Ṛ:"ṛ",Ṝ:"ṝ",Ṟ:"ṟ",Ṡ:"ṡ",Ṣ:"ṣ",Ṥ:"ṥ",Ṧ:"ṧ",Ṩ:"ṩ",Ṫ:"ṫ",Ṭ:"ṭ",Ṯ:"ṯ",Ṱ:"ṱ",Ṳ:"ṳ",Ṵ:"ṵ",Ṷ:"ṷ",Ṹ:"ṹ",Ṻ:"ṻ",Ṽ:"ṽ",Ṿ:"ṿ",Ẁ:"ẁ",Ẃ:"ẃ",Ẅ:"ẅ",Ẇ:"ẇ",Ẉ:"ẉ",Ẋ:"ẋ",Ẍ:"ẍ",Ẏ:"ẏ",Ẑ:"ẑ",Ẓ:"ẓ",Ẕ:"ẕ",ẛ:"ṡ",Ạ:"ạ",Ả:"ả",Ấ:"ấ",Ầ:"ầ",Ẩ:"ẩ",Ẫ:"ẫ",Ậ:"ậ",Ắ:"ắ",Ằ:"ằ",Ẳ:"ẳ",Ẵ:"ẵ",Ặ:"ặ",Ẹ:"ẹ",Ẻ:"ẻ",Ẽ:"ẽ",Ế:"ế",Ề:"ề",Ể:"ể",Ễ:"ễ",Ệ:"ệ",Ỉ:"ỉ",Ị:"ị",Ọ:"ọ",Ỏ:"ỏ",Ố:"ố",Ồ:"ồ",Ổ:"ổ",Ỗ:"ỗ",Ộ:"ộ",Ớ:"ớ",Ờ:"ờ",Ở:"ở",Ỡ:"ỡ",Ợ:"ợ",Ụ:"ụ",Ủ:"ủ",Ứ:"ứ",Ừ:"ừ",Ử:"ử",Ữ:"ữ",Ự:"ự",Ỳ:"ỳ",Ỵ:"ỵ",Ỷ:"ỷ",Ỹ:"ỹ","Ỻ":"ỻ","Ỽ":"ỽ","Ỿ":"ỿ",Ἀ:"ἀ",Ἁ:"ἁ",Ἂ:"ἂ",Ἃ:"ἃ",Ἄ:"ἄ",Ἅ:"ἅ",Ἆ:"ἆ",Ἇ:"ἇ",Ἐ:"ἐ",Ἑ:"ἑ",Ἒ:"ἒ",Ἓ:"ἓ",Ἔ:"ἔ",Ἕ:"ἕ",Ἠ:"ἠ",Ἡ:"ἡ",Ἢ:"ἢ",Ἣ:"ἣ",Ἤ:"ἤ",Ἥ:"ἥ",Ἦ:"ἦ",Ἧ:"ἧ",Ἰ:"ἰ",Ἱ:"ἱ",Ἲ:"ἲ",Ἳ:"ἳ",Ἴ:"ἴ",Ἵ:"ἵ",Ἶ:"ἶ",Ἷ:"ἷ",Ὀ:"ὀ",Ὁ:"ὁ",Ὂ:"ὂ",Ὃ:"ὃ",Ὄ:"ὄ",Ὅ:"ὅ",Ὑ:"ὑ",Ὓ:"ὓ",Ὕ:"ὕ",Ὗ:"ὗ",Ὠ:"ὠ",Ὡ:"ὡ",Ὢ:"ὢ",Ὣ:"ὣ",Ὤ:"ὤ",Ὥ:"ὥ",Ὦ:"ὦ",Ὧ:"ὧ",Ᾰ:"ᾰ",Ᾱ:"ᾱ",Ὰ:"ὰ",Ά:"ά",ι:"ι",Ὲ:"ὲ",Έ:"έ",Ὴ:"ὴ",Ή:"ή",Ῐ:"ῐ",Ῑ:"ῑ",Ὶ:"ὶ",Ί:"ί",Ῠ:"ῠ",Ῡ:"ῡ",Ὺ:"ὺ",Ύ:"ύ",Ῥ:"ῥ",Ὸ:"ὸ",Ό:"ό",Ὼ:"ὼ",Ώ:"ώ",Ω:"ω",K:"k",Å:"å","Ⅎ":"ⅎ","Ⅰ":"ⅰ","Ⅱ":"ⅱ","Ⅲ":"ⅲ","Ⅳ":"ⅳ","Ⅴ":"ⅴ","Ⅵ":"ⅵ","Ⅶ":"ⅶ","Ⅷ":"ⅷ","Ⅸ":"ⅸ","Ⅹ":"ⅹ","Ⅺ":"ⅺ","Ⅻ":"ⅻ","Ⅼ":"ⅼ","Ⅽ":"ⅽ","Ⅾ":"ⅾ","Ⅿ":"ⅿ","Ↄ":"ↄ","Ⓐ":"ⓐ","Ⓑ":"ⓑ","Ⓒ":"ⓒ","Ⓓ":"ⓓ","Ⓔ":"ⓔ","Ⓕ":"ⓕ","Ⓖ":"ⓖ","Ⓗ":"ⓗ","Ⓘ":"ⓘ","Ⓙ":"ⓙ","Ⓚ":"ⓚ","Ⓛ":"ⓛ","Ⓜ":"ⓜ","Ⓝ":"ⓝ","Ⓞ":"ⓞ","Ⓟ":"ⓟ","Ⓠ":"ⓠ","Ⓡ":"ⓡ","Ⓢ":"ⓢ","Ⓣ":"ⓣ","Ⓤ":"ⓤ","Ⓥ":"ⓥ","Ⓦ":"ⓦ","Ⓧ":"ⓧ","Ⓨ":"ⓨ","Ⓩ":"ⓩ","Ⰰ":"ⰰ","Ⰱ":"ⰱ","Ⰲ":"ⰲ","Ⰳ":"ⰳ","Ⰴ":"ⰴ","Ⰵ":"ⰵ","Ⰶ":"ⰶ","Ⰷ":"ⰷ","Ⰸ":"ⰸ","Ⰹ":"ⰹ","Ⰺ":"ⰺ","Ⰻ":"ⰻ","Ⰼ":"ⰼ","Ⰽ":"ⰽ","Ⰾ":"ⰾ","Ⰿ":"ⰿ","Ⱀ":"ⱀ","Ⱁ":"ⱁ","Ⱂ":"ⱂ","Ⱃ":"ⱃ","Ⱄ":"ⱄ","Ⱅ":"ⱅ","Ⱆ":"ⱆ","Ⱇ":"ⱇ","Ⱈ":"ⱈ","Ⱉ":"ⱉ","Ⱊ":"ⱊ","Ⱋ":"ⱋ","Ⱌ":"ⱌ","Ⱍ":"ⱍ","Ⱎ":"ⱎ","Ⱏ":"ⱏ","Ⱐ":"ⱐ","Ⱑ":"ⱑ","Ⱒ":"ⱒ","Ⱓ":"ⱓ","Ⱔ":"ⱔ","Ⱕ":"ⱕ","Ⱖ":"ⱖ","Ⱗ":"ⱗ","Ⱘ":"ⱘ","Ⱙ":"ⱙ","Ⱚ":"ⱚ","Ⱛ":"ⱛ","Ⱜ":"ⱜ","Ⱝ":"ⱝ","Ⱞ":"ⱞ","Ⱡ":"ⱡ","Ɫ":"ɫ","Ᵽ":"ᵽ","Ɽ":"ɽ","Ⱨ":"ⱨ","Ⱪ":"ⱪ","Ⱬ":"ⱬ","Ɑ":"ɑ","Ɱ":"ɱ","Ɐ":"ɐ","Ɒ":"ɒ","Ⱳ":"ⱳ","Ⱶ":"ⱶ","Ȿ":"ȿ","Ɀ":"ɀ","Ⲁ":"ⲁ","Ⲃ":"ⲃ","Ⲅ":"ⲅ","Ⲇ":"ⲇ","Ⲉ":"ⲉ","Ⲋ":"ⲋ","Ⲍ":"ⲍ","Ⲏ":"ⲏ","Ⲑ":"ⲑ","Ⲓ":"ⲓ","Ⲕ":"ⲕ","Ⲗ":"ⲗ","Ⲙ":"ⲙ","Ⲛ":"ⲛ","Ⲝ":"ⲝ","Ⲟ":"ⲟ","Ⲡ":"ⲡ","Ⲣ":"ⲣ","Ⲥ":"ⲥ","Ⲧ":"ⲧ","Ⲩ":"ⲩ","Ⲫ":"ⲫ","Ⲭ":"ⲭ","Ⲯ":"ⲯ","Ⲱ":"ⲱ","Ⲳ":"ⲳ","Ⲵ":"ⲵ","Ⲷ":"ⲷ","Ⲹ":"ⲹ","Ⲻ":"ⲻ","Ⲽ":"ⲽ","Ⲿ":"ⲿ","Ⳁ":"ⳁ","Ⳃ":"ⳃ","Ⳅ":"ⳅ","Ⳇ":"ⳇ","Ⳉ":"ⳉ","Ⳋ":"ⳋ","Ⳍ":"ⳍ","Ⳏ":"ⳏ","Ⳑ":"ⳑ","Ⳓ":"ⳓ","Ⳕ":"ⳕ","Ⳗ":"ⳗ","Ⳙ":"ⳙ","Ⳛ":"ⳛ","Ⳝ":"ⳝ","Ⳟ":"ⳟ","Ⳡ":"ⳡ","Ⳣ":"ⳣ","Ⳬ":"ⳬ","Ⳮ":"ⳮ","Ⳳ":"ⳳ","Ꙁ":"ꙁ","Ꙃ":"ꙃ","Ꙅ":"ꙅ","Ꙇ":"ꙇ","Ꙉ":"ꙉ","Ꙋ":"ꙋ","Ꙍ":"ꙍ","Ꙏ":"ꙏ","Ꙑ":"ꙑ","Ꙓ":"ꙓ","Ꙕ":"ꙕ","Ꙗ":"ꙗ","Ꙙ":"ꙙ","Ꙛ":"ꙛ","Ꙝ":"ꙝ","Ꙟ":"ꙟ","Ꙡ":"ꙡ","Ꙣ":"ꙣ","Ꙥ":"ꙥ","Ꙧ":"ꙧ","Ꙩ":"ꙩ","Ꙫ":"ꙫ","Ꙭ":"ꙭ","Ꚁ":"ꚁ","Ꚃ":"ꚃ","Ꚅ":"ꚅ","Ꚇ":"ꚇ","Ꚉ":"ꚉ","Ꚋ":"ꚋ","Ꚍ":"ꚍ","Ꚏ":"ꚏ","Ꚑ":"ꚑ","Ꚓ":"ꚓ","Ꚕ":"ꚕ","Ꚗ":"ꚗ","Ꚙ":"ꚙ","Ꚛ":"ꚛ","Ꜣ":"ꜣ","Ꜥ":"ꜥ","Ꜧ":"ꜧ","Ꜩ":"ꜩ","Ꜫ":"ꜫ","Ꜭ":"ꜭ","Ꜯ":"ꜯ","Ꜳ":"ꜳ","Ꜵ":"ꜵ","Ꜷ":"ꜷ","Ꜹ":"ꜹ","Ꜻ":"ꜻ","Ꜽ":"ꜽ","Ꜿ":"ꜿ","Ꝁ":"ꝁ","Ꝃ":"ꝃ","Ꝅ":"ꝅ","Ꝇ":"ꝇ","Ꝉ":"ꝉ","Ꝋ":"ꝋ","Ꝍ":"ꝍ","Ꝏ":"ꝏ","Ꝑ":"ꝑ","Ꝓ":"ꝓ","Ꝕ":"ꝕ","Ꝗ":"ꝗ","Ꝙ":"ꝙ","Ꝛ":"ꝛ","Ꝝ":"ꝝ","Ꝟ":"ꝟ","Ꝡ":"ꝡ","Ꝣ":"ꝣ","Ꝥ":"ꝥ","Ꝧ":"ꝧ","Ꝩ":"ꝩ","Ꝫ":"ꝫ","Ꝭ":"ꝭ","Ꝯ":"ꝯ","Ꝺ":"ꝺ","Ꝼ":"ꝼ","Ᵹ":"ᵹ","Ꝿ":"ꝿ","Ꞁ":"ꞁ","Ꞃ":"ꞃ","Ꞅ":"ꞅ","Ꞇ":"ꞇ","Ꞌ":"ꞌ","Ɥ":"ɥ","Ꞑ":"ꞑ","Ꞓ":"ꞓ","Ꞗ":"ꞗ","Ꞙ":"ꞙ","Ꞛ":"ꞛ","Ꞝ":"ꞝ","Ꞟ":"ꞟ","Ꞡ":"ꞡ","Ꞣ":"ꞣ","Ꞥ":"ꞥ","Ꞧ":"ꞧ","Ꞩ":"ꞩ","Ɦ":"ɦ","Ɜ":"ɜ","Ɡ":"ɡ","Ɬ":"ɬ","Ʞ":"ʞ","Ʇ":"ʇ",A:"a",B:"b",C:"c",D:"d",E:"e",F:"f",G:"g",H:"h",I:"i",J:"j",K:"k",L:"l",M:"m",N:"n",O:"o",P:"p",Q:"q",R:"r",S:"s",T:"t",U:"u",V:"v",W:"w",X:"x",Y:"y",Z:"z","𐐀":"𐐨","𐐁":"𐐩","𐐂":"𐐪","𐐃":"𐐫","𐐄":"𐐬","𐐅":"𐐭","𐐆":"𐐮","𐐇":"𐐯","𐐈":"𐐰","𐐉":"𐐱","𐐊":"𐐲","𐐋":"𐐳","𐐌":"𐐴","𐐍":"𐐵","𐐎":"𐐶","𐐏":"𐐷","𐐐":"𐐸","𐐑":"𐐹","𐐒":"𐐺","𐐓":"𐐻","𐐔":"𐐼","𐐕":"𐐽","𐐖":"𐐾","𐐗":"𐐿","𐐘":"𐑀","𐐙":"𐑁","𐐚":"𐑂","𐐛":"𐑃","𐐜":"𐑄","𐐝":"𐑅","𐐞":"𐑆","𐐟":"𐑇","𐐠":"𐑈","𐐡":"𐑉","𐐢":"𐑊","𐐣":"𐑋","𐐤":"𐑌","𐐥":"𐑍","𐐦":"𐑎","𐐧":"𐑏","𑢠":"𑣀","𑢡":"𑣁","𑢢":"𑣂","𑢣":"𑣃","𑢤":"𑣄","𑢥":"𑣅","𑢦":"𑣆","𑢧":"𑣇","𑢨":"𑣈","𑢩":"𑣉","𑢪":"𑣊","𑢫":"𑣋","𑢬":"𑣌","𑢭":"𑣍","𑢮":"𑣎","𑢯":"𑣏","𑢰":"𑣐","𑢱":"𑣑","𑢲":"𑣒","𑢳":"𑣓","𑢴":"𑣔","𑢵":"𑣕","𑢶":"𑣖","𑢷":"𑣗","𑢸":"𑣘","𑢹":"𑣙","𑢺":"𑣚","𑢻":"𑣛","𑢼":"𑣜","𑢽":"𑣝","𑢾":"𑣞","𑢿":"𑣟",ß:"ss",İ:"i̇",ʼn:"ʼn",ǰ:"ǰ",ΐ:"ΐ",ΰ:"ΰ",և:"եւ",ẖ:"ẖ",ẗ:"ẗ",ẘ:"ẘ",ẙ:"ẙ",ẚ:"aʾ","ẞ":"ss",ὐ:"ὐ",ὒ:"ὒ",ὔ:"ὔ",ὖ:"ὖ",ᾀ:"ἀι",ᾁ:"ἁι",ᾂ:"ἂι",ᾃ:"ἃι",ᾄ:"ἄι",ᾅ:"ἅι",ᾆ:"ἆι",ᾇ:"ἇι",ᾈ:"ἀι",ᾉ:"ἁι",ᾊ:"ἂι",ᾋ:"ἃι",ᾌ:"ἄι",ᾍ:"ἅι",ᾎ:"ἆι",ᾏ:"ἇι",ᾐ:"ἠι",ᾑ:"ἡι",ᾒ:"ἢι",ᾓ:"ἣι",ᾔ:"ἤι",ᾕ:"ἥι",ᾖ:"ἦι",ᾗ:"ἧι",ᾘ:"ἠι",ᾙ:"ἡι",ᾚ:"ἢι",ᾛ:"ἣι",ᾜ:"ἤι",ᾝ:"ἥι",ᾞ:"ἦι",ᾟ:"ἧι",ᾠ:"ὠι",ᾡ:"ὡι",ᾢ:"ὢι",ᾣ:"ὣι",ᾤ:"ὤι",ᾥ:"ὥι",ᾦ:"ὦι",ᾧ:"ὧι",ᾨ:"ὠι",ᾩ:"ὡι",ᾪ:"ὢι",ᾫ:"ὣι",ᾬ:"ὤι",ᾭ:"ὥι",ᾮ:"ὦι",ᾯ:"ὧι",ᾲ:"ὰι",ᾳ:"αι",ᾴ:"άι",ᾶ:"ᾶ",ᾷ:"ᾶι",ᾼ:"αι",ῂ:"ὴι",ῃ:"ηι",ῄ:"ήι",ῆ:"ῆ",ῇ:"ῆι",ῌ:"ηι",ῒ:"ῒ",ΐ:"ΐ",ῖ:"ῖ",ῗ:"ῗ",ῢ:"ῢ",ΰ:"ΰ",ῤ:"ῤ",ῦ:"ῦ",ῧ:"ῧ",ῲ:"ὼι",ῳ:"ωι",ῴ:"ώι",ῶ:"ῶ",ῷ:"ῶι",ῼ:"ωι",ff:"ff",fi:"fi",fl:"fl",ffi:"ffi",ffl:"ffl",ſt:"st",st:"st",ﬓ:"մն",ﬔ:"մե",ﬕ:"մի",ﬖ:"վն",ﬗ:"մխ"},entityReferences=[{key:[65,69,108,105,103,59],value:"Æ"},{key:[65,77,80,59],value:"&"},{key:[65,97,99,117,116,101,59],value:"Á"},{key:[65,98,114,101,118,101,59],value:"Ă"},{key:[65,99,105,114,99,59],value:"Â"},{key:[65,99,121,59],value:"А"},{key:[65,102,114,59],value:"𝔄"},{key:[65,103,114,97,118,101,59],value:"À"},{key:[65,108,112,104,97,59],value:"Α"},{key:[65,109,97,99,114,59],value:"Ā"},{key:[65,110,100,59],value:"⩓"},{key:[65,111,103,111,110,59],value:"Ą"},{key:[65,111,112,102,59],value:"𝔸"},{key:[65,112,112,108,121,70,117,110,99,116,105,111,110,59],value:"⁡"},{key:[65,114,105,110,103,59],value:"Å"},{key:[65,115,99,114,59],value:"𝒜"},{key:[65,115,115,105,103,110,59],value:"≔"},{key:[65,116,105,108,100,101,59],value:"Ã"},{key:[65,117,109,108,59],value:"Ä"},{key:[66,97,99,107,115,108,97,115,104,59],value:"∖"},{key:[66,97,114,118,59],value:"⫧"},{key:[66,97,114,119,101,100,59],value:"⌆"},{key:[66,99,121,59],value:"Б"},{key:[66,101,99,97,117,115,101,59],value:"∵"},{key:[66,101,114,110,111,117,108,108,105,115,59],value:"ℬ"},{key:[66,101,116,97,59],value:"Β"},{key:[66,102,114,59],value:"𝔅"},{key:[66,111,112,102,59],value:"𝔹"},{key:[66,114,101,118,101,59],value:"˘"},{key:[66,115,99,114,59],value:"ℬ"},{key:[66,117,109,112,101,113,59],value:"≎"},{key:[67,72,99,121,59],value:"Ч"},{key:[67,79,80,89,59],value:"©"},{key:[67,97,99,117,116,101,59],value:"Ć"},{key:[67,97,112,59],value:"⋒"},{key:[67,97,112,105,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59],value:"ⅅ"},{key:[67,97,121,108,101,121,115,59],value:"ℭ"},{key:[67,99,97,114,111,110,59],value:"Č"},{key:[67,99,101,100,105,108,59],value:"Ç"},{key:[67,99,105,114,99,59],value:"Ĉ"},{key:[67,99,111,110,105,110,116,59],value:"∰"},{key:[67,100,111,116,59],value:"Ċ"},{key:[67,101,100,105,108,108,97,59],value:"¸"},{key:[67,101,110,116,101,114,68,111,116,59],value:"·"},{key:[67,102,114,59],value:"ℭ"},{key:[67,104,105,59],value:"Χ"},{key:[67,105,114,99,108,101,68,111,116,59],value:"⊙"},{key:[67,105,114,99,108,101,77,105,110,117,115,59],value:"⊖"},{key:[67,105,114,99,108,101,80,108,117,115,59],value:"⊕"},{key:[67,105,114,99,108,101,84,105,109,101,115,59],value:"⊗"},{key:[67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∲"},{key:[67,108,111,115,101,67,117,114,108,121,68,111,117,98,108,101,81,117,111,116,101,59],value:"”"},{key:[67,108,111,115,101,67,117,114,108,121,81,117,111,116,101,59],value:"’"},{key:[67,111,108,111,110,59],value:"∷"},{key:[67,111,108,111,110,101,59],value:"⩴"},{key:[67,111,110,103,114,117,101,110,116,59],value:"≡"},{key:[67,111,110,105,110,116,59],value:"∯"},{key:[67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∮"},{key:[67,111,112,102,59],value:"ℂ"},{key:[67,111,112,114,111,100,117,99,116,59],value:"∐"},{key:[67,111,117,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∳"},{key:[67,114,111,115,115,59],value:"⨯"},{key:[67,115,99,114,59],value:"𝒞"},{key:[67,117,112,59],value:"⋓"},{key:[67,117,112,67,97,112,59],value:"≍"},{key:[68,68,59],value:"ⅅ"},{key:[68,68,111,116,114,97,104,100,59],value:"⤑"},{key:[68,74,99,121,59],value:"Ђ"},{key:[68,83,99,121,59],value:"Ѕ"},{key:[68,90,99,121,59],value:"Џ"},{key:[68,97,103,103,101,114,59],value:"‡"},{key:[68,97,114,114,59],value:"↡"},{key:[68,97,115,104,118,59],value:"⫤"},{key:[68,99,97,114,111,110,59],value:"Ď"},{key:[68,99,121,59],value:"Д"},{key:[68,101,108,59],value:"∇"},{key:[68,101,108,116,97,59],value:"Δ"},{key:[68,102,114,59],value:"𝔇"},{key:[68,105,97,99,114,105,116,105,99,97,108,65,99,117,116,101,59],value:"´"},{key:[68,105,97,99,114,105,116,105,99,97,108,68,111,116,59],value:"˙"},{key:[68,105,97,99,114,105,116,105,99,97,108,68,111,117,98,108,101,65,99,117,116,101,59],value:"˝"},{key:[68,105,97,99,114,105,116,105,99,97,108,71,114,97,118,101,59],value:"`"},{key:[68,105,97,99,114,105,116,105,99,97,108,84,105,108,100,101,59],value:"˜"},{key:[68,105,97,109,111,110,100,59],value:"⋄"},{key:[68,105,102,102,101,114,101,110,116,105,97,108,68,59],value:"ⅆ"},{key:[68,111,112,102,59],value:"𝔻"},{key:[68,111,116,59],value:"¨"},{key:[68,111,116,68,111,116,59],value:"⃜"},{key:[68,111,116,69,113,117,97,108,59],value:"≐"},{key:[68,111,117,98,108,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∯"},{key:[68,111,117,98,108,101,68,111,116,59],value:"¨"},{key:[68,111,117,98,108,101,68,111,119,110,65,114,114,111,119,59],value:"⇓"},{key:[68,111,117,98,108,101,76,101,102,116,65,114,114,111,119,59],value:"⇐"},{key:[68,111,117,98,108,101,76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"⇔"},{key:[68,111,117,98,108,101,76,101,102,116,84,101,101,59],value:"⫤"},{key:[68,111,117,98,108,101,76,111,110,103,76,101,102,116,65,114,114,111,119,59],value:"⟸"},{key:[68,111,117,98,108,101,76,111,110,103,76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"⟺"},{key:[68,111,117,98,108,101,76,111,110,103,82,105,103,104,116,65,114,114,111,119,59],value:"⟹"},{key:[68,111,117,98,108,101,82,105,103,104,116,65,114,114,111,119,59],value:"⇒"},{key:[68,111,117,98,108,101,82,105,103,104,116,84,101,101,59],value:"⊨"},{key:[68,111,117,98,108,101,85,112,65,114,114,111,119,59],value:"⇑"},{key:[68,111,117,98,108,101,85,112,68,111,119,110,65,114,114,111,119,59],value:"⇕"},{key:[68,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59],value:"∥"},{key:[68,111,119,110,65,114,114,111,119,59],value:"↓"},{key:[68,111,119,110,65,114,114,111,119,66,97,114,59],value:"⤓"},{key:[68,111,119,110,65,114,114,111,119,85,112,65,114,114,111,119,59],value:"⇵"},{key:[68,111,119,110,66,114,101,118,101,59],value:"̑"},{key:[68,111,119,110,76,101,102,116,82,105,103,104,116,86,101,99,116,111,114,59],value:"⥐"},{key:[68,111,119,110,76,101,102,116,84,101,101,86,101,99,116,111,114,59],value:"⥞"},{key:[68,111,119,110,76,101,102,116,86,101,99,116,111,114,59],value:"↽"},{key:[68,111,119,110,76,101,102,116,86,101,99,116,111,114,66,97,114,59],value:"⥖"},{key:[68,111,119,110,82,105,103,104,116,84,101,101,86,101,99,116,111,114,59],value:"⥟"},{key:[68,111,119,110,82,105,103,104,116,86,101,99,116,111,114,59],value:"⇁"},{key:[68,111,119,110,82,105,103,104,116,86,101,99,116,111,114,66,97,114,59],value:"⥗"},{key:[68,111,119,110,84,101,101,59],value:"⊤"},{key:[68,111,119,110,84,101,101,65,114,114,111,119,59],value:"↧"},{key:[68,111,119,110,97,114,114,111,119,59],value:"⇓"},{key:[68,115,99,114,59],value:"𝒟"},{key:[68,115,116,114,111,107,59],value:"Đ"},{key:[69,78,71,59],value:"Ŋ"},{key:[69,84,72,59],value:"Ð"},{key:[69,97,99,117,116,101,59],value:"É"},{key:[69,99,97,114,111,110,59],value:"Ě"},{key:[69,99,105,114,99,59],value:"Ê"},{key:[69,99,121,59],value:"Э"},{key:[69,100,111,116,59],value:"Ė"},{key:[69,102,114,59],value:"𝔈"},{key:[69,103,114,97,118,101,59],value:"È"},{key:[69,108,101,109,101,110,116,59],value:"∈"},{key:[69,109,97,99,114,59],value:"Ē"},{key:[69,109,112,116,121,83,109,97,108,108,83,113,117,97,114,101,59],value:"◻"},{key:[69,109,112,116,121,86,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59],value:"▫"},{key:[69,111,103,111,110,59],value:"Ę"},{key:[69,111,112,102,59],value:"𝔼"},{key:[69,112,115,105,108,111,110,59],value:"Ε"},{key:[69,113,117,97,108,59],value:"⩵"},{key:[69,113,117,97,108,84,105,108,100,101,59],value:"≂"},{key:[69,113,117,105,108,105,98,114,105,117,109,59],value:"⇌"},{key:[69,115,99,114,59],value:"ℰ"},{key:[69,115,105,109,59],value:"⩳"},{key:[69,116,97,59],value:"Η"},{key:[69,117,109,108,59],value:"Ë"},{key:[69,120,105,115,116,115,59],value:"∃"},{key:[69,120,112,111,110,101,110,116,105,97,108,69,59],value:"ⅇ"},{key:[70,99,121,59],value:"Ф"},{key:[70,102,114,59],value:"𝔉"},{key:[70,105,108,108,101,100,83,109,97,108,108,83,113,117,97,114,101,59],value:"◼"},{key:[70,105,108,108,101,100,86,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59],value:"▪"},{key:[70,111,112,102,59],value:"𝔽"},{key:[70,111,114,65,108,108,59],value:"∀"},{key:[70,111,117,114,105,101,114,116,114,102,59],value:"ℱ"},{key:[70,115,99,114,59],value:"ℱ"},{key:[71,74,99,121,59],value:"Ѓ"},{key:[71,84,59],value:">"},{key:[71,97,109,109,97,59],value:"Γ"},{key:[71,97,109,109,97,100,59],value:"Ϝ"},{key:[71,98,114,101,118,101,59],value:"Ğ"},{key:[71,99,101,100,105,108,59],value:"Ģ"},{key:[71,99,105,114,99,59],value:"Ĝ"},{key:[71,99,121,59],value:"Г"},{key:[71,100,111,116,59],value:"Ġ"},{key:[71,102,114,59],value:"𝔊"},{key:[71,103,59],value:"⋙"},{key:[71,111,112,102,59],value:"𝔾"},{key:[71,114,101,97,116,101,114,69,113,117,97,108,59],value:"≥"},{key:[71,114,101,97,116,101,114,69,113,117,97,108,76,101,115,115,59],value:"⋛"},{key:[71,114,101,97,116,101,114,70,117,108,108,69,113,117,97,108,59],value:"≧"},{key:[71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"⪢"},{key:[71,114,101,97,116,101,114,76,101,115,115,59],value:"≷"},{key:[71,114,101,97,116,101,114,83,108,97,110,116,69,113,117,97,108,59],value:"⩾"},{key:[71,114,101,97,116,101,114,84,105,108,100,101,59],value:"≳"},{key:[71,115,99,114,59],value:"𝒢"},{key:[71,116,59],value:"≫"},{key:[72,65,82,68,99,121,59],value:"Ъ"},{key:[72,97,99,101,107,59],value:"ˇ"},{key:[72,97,116,59],value:"^"},{key:[72,99,105,114,99,59],value:"Ĥ"},{key:[72,102,114,59],value:"ℌ"},{key:[72,105,108,98,101,114,116,83,112,97,99,101,59],value:"ℋ"},{key:[72,111,112,102,59],value:"ℍ"},{key:[72,111,114,105,122,111,110,116,97,108,76,105,110,101,59],value:"─"},{key:[72,115,99,114,59],value:"ℋ"},{key:[72,115,116,114,111,107,59],value:"Ħ"},{key:[72,117,109,112,68,111,119,110,72,117,109,112,59],value:"≎"},{key:[72,117,109,112,69,113,117,97,108,59],value:"≏"},{key:[73,69,99,121,59],value:"Е"},{key:[73,74,108,105,103,59],value:"IJ"},{key:[73,79,99,121,59],value:"Ё"},{key:[73,97,99,117,116,101,59],value:"Í"},{key:[73,99,105,114,99,59],value:"Î"},{key:[73,99,121,59],value:"И"},{key:[73,100,111,116,59],value:"İ"},{key:[73,102,114,59],value:"ℑ"},{key:[73,103,114,97,118,101,59],value:"Ì"},{key:[73,109,59],value:"ℑ"},{key:[73,109,97,99,114,59],value:"Ī"},{key:[73,109,97,103,105,110,97,114,121,73,59],value:"ⅈ"},{key:[73,109,112,108,105,101,115,59],value:"⇒"},{key:[73,110,116,59],value:"∬"},{key:[73,110,116,101,103,114,97,108,59],value:"∫"},{key:[73,110,116,101,114,115,101,99,116,105,111,110,59],value:"⋂"},{key:[73,110,118,105,115,105,98,108,101,67,111,109,109,97,59],value:"⁣"},{key:[73,110,118,105,115,105,98,108,101,84,105,109,101,115,59],value:"⁢"},{key:[73,111,103,111,110,59],value:"Į"},{key:[73,111,112,102,59],value:"𝕀"},{key:[73,111,116,97,59],value:"Ι"},{key:[73,115,99,114,59],value:"ℐ"},{key:[73,116,105,108,100,101,59],value:"Ĩ"},{key:[73,117,107,99,121,59],value:"І"},{key:[73,117,109,108,59],value:"Ï"},{key:[74,99,105,114,99,59],value:"Ĵ"},{key:[74,99,121,59],value:"Й"},{key:[74,102,114,59],value:"𝔍"},{key:[74,111,112,102,59],value:"𝕁"},{key:[74,115,99,114,59],value:"𝒥"},{key:[74,115,101,114,99,121,59],value:"Ј"},{key:[74,117,107,99,121,59],value:"Є"},{key:[75,72,99,121,59],value:"Х"},{key:[75,74,99,121,59],value:"Ќ"},{key:[75,97,112,112,97,59],value:"Κ"},{key:[75,99,101,100,105,108,59],value:"Ķ"},{key:[75,99,121,59],value:"К"},{key:[75,102,114,59],value:"𝔎"},{key:[75,111,112,102,59],value:"𝕂"},{key:[75,115,99,114,59],value:"𝒦"},{key:[76,74,99,121,59],value:"Љ"},{key:[76,84,59],value:"<"},{key:[76,97,99,117,116,101,59],value:"Ĺ"},{key:[76,97,109,98,100,97,59],value:"Λ"},{key:[76,97,110,103,59],value:"⟪"},{key:[76,97,112,108,97,99,101,116,114,102,59],value:"ℒ"},{key:[76,97,114,114,59],value:"↞"},{key:[76,99,97,114,111,110,59],value:"Ľ"},{key:[76,99,101,100,105,108,59],value:"Ļ"},{key:[76,99,121,59],value:"Л"},{key:[76,101,102,116,65,110,103,108,101,66,114,97,99,107,101,116,59],value:"⟨"},{key:[76,101,102,116,65,114,114,111,119,59],value:"←"},{key:[76,101,102,116,65,114,114,111,119,66,97,114,59],value:"⇤"},{key:[76,101,102,116,65,114,114,111,119,82,105,103,104,116,65,114,114,111,119,59],value:"⇆"},{key:[76,101,102,116,67,101,105,108,105,110,103,59],value:"⌈"},{key:[76,101,102,116,68,111,117,98,108,101,66,114,97,99,107,101,116,59],value:"⟦"},{key:[76,101,102,116,68,111,119,110,84,101,101,86,101,99,116,111,114,59],value:"⥡"},{key:[76,101,102,116,68,111,119,110,86,101,99,116,111,114,59],value:"⇃"},{key:[76,101,102,116,68,111,119,110,86,101,99,116,111,114,66,97,114,59],value:"⥙"},{key:[76,101,102,116,70,108,111,111,114,59],value:"⌊"},{key:[76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"↔"},{key:[76,101,102,116,82,105,103,104,116,86,101,99,116,111,114,59],value:"⥎"},{key:[76,101,102,116,84,101,101,59],value:"⊣"},{key:[76,101,102,116,84,101,101,65,114,114,111,119,59],value:"↤"},{key:[76,101,102,116,84,101,101,86,101,99,116,111,114,59],value:"⥚"},{key:[76,101,102,116,84,114,105,97,110,103,108,101,59],value:"⊲"},{key:[76,101,102,116,84,114,105,97,110,103,108,101,66,97,114,59],value:"⧏"},{key:[76,101,102,116,84,114,105,97,110,103,108,101,69,113,117,97,108,59],value:"⊴"},{key:[76,101,102,116,85,112,68,111,119,110,86,101,99,116,111,114,59],value:"⥑"},{key:[76,101,102,116,85,112,84,101,101,86,101,99,116,111,114,59],value:"⥠"},{key:[76,101,102,116,85,112,86,101,99,116,111,114,59],value:"↿"},{key:[76,101,102,116,85,112,86,101,99,116,111,114,66,97,114,59],value:"⥘"},{key:[76,101,102,116,86,101,99,116,111,114,59],value:"↼"},{key:[76,101,102,116,86,101,99,116,111,114,66,97,114,59],value:"⥒"},{key:[76,101,102,116,97,114,114,111,119,59],value:"⇐"},{key:[76,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⇔"},{key:[76,101,115,115,69,113,117,97,108,71,114,101,97,116,101,114,59],value:"⋚"},{key:[76,101,115,115,70,117,108,108,69,113,117,97,108,59],value:"≦"},{key:[76,101,115,115,71,114,101,97,116,101,114,59],value:"≶"},{key:[76,101,115,115,76,101,115,115,59],value:"⪡"},{key:[76,101,115,115,83,108,97,110,116,69,113,117,97,108,59],value:"⩽"},{key:[76,101,115,115,84,105,108,100,101,59],value:"≲"},{key:[76,102,114,59],value:"𝔏"},{key:[76,108,59],value:"⋘"},{key:[76,108,101,102,116,97,114,114,111,119,59],value:"⇚"},{key:[76,109,105,100,111,116,59],value:"Ŀ"},{key:[76,111,110,103,76,101,102,116,65,114,114,111,119,59],value:"⟵"},{key:[76,111,110,103,76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"⟷"},{key:[76,111,110,103,82,105,103,104,116,65,114,114,111,119,59],value:"⟶"},{key:[76,111,110,103,108,101,102,116,97,114,114,111,119,59],value:"⟸"},{key:[76,111,110,103,108,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⟺"},{key:[76,111,110,103,114,105,103,104,116,97,114,114,111,119,59],value:"⟹"},{key:[76,111,112,102,59],value:"𝕃"},{key:[76,111,119,101,114,76,101,102,116,65,114,114,111,119,59],value:"↙"},{key:[76,111,119,101,114,82,105,103,104,116,65,114,114,111,119,59],value:"↘"},{key:[76,115,99,114,59],value:"ℒ"},{key:[76,115,104,59],value:"↰"},{key:[76,115,116,114,111,107,59],value:"Ł"},{key:[76,116,59],value:"≪"},{key:[77,97,112,59],value:"⤅"},{key:[77,99,121,59],value:"М"},{key:[77,101,100,105,117,109,83,112,97,99,101,59],value:" "},{key:[77,101,108,108,105,110,116,114,102,59],value:"ℳ"},{key:[77,102,114,59],value:"𝔐"},{key:[77,105,110,117,115,80,108,117,115,59],value:"∓"},{key:[77,111,112,102,59],value:"𝕄"},{key:[77,115,99,114,59],value:"ℳ"},{key:[77,117,59],value:"Μ"},{key:[78,74,99,121,59],value:"Њ"},{key:[78,97,99,117,116,101,59],value:"Ń"},{key:[78,99,97,114,111,110,59],value:"Ň"},{key:[78,99,101,100,105,108,59],value:"Ņ"},{key:[78,99,121,59],value:"Н"},{key:[78,101,103,97,116,105,118,101,77,101,100,105,117,109,83,112,97,99,101,59],value:"​"},{key:[78,101,103,97,116,105,118,101,84,104,105,99,107,83,112,97,99,101,59],value:"​"},{key:[78,101,103,97,116,105,118,101,84,104,105,110,83,112,97,99,101,59],value:"​"},{key:[78,101,103,97,116,105,118,101,86,101,114,121,84,104,105,110,83,112,97,99,101,59],value:"​"},{key:[78,101,115,116,101,100,71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"≫"},{key:[78,101,115,116,101,100,76,101,115,115,76,101,115,115,59],value:"≪"},{key:[78,101,119,76,105,110,101,59],value:` -`},{key:[78,102,114,59],value:"𝔑"},{key:[78,111,66,114,101,97,107,59],value:"⁠"},{key:[78,111,110,66,114,101,97,107,105,110,103,83,112,97,99,101,59],value:" "},{key:[78,111,112,102,59],value:"ℕ"},{key:[78,111,116,59],value:"⫬"},{key:[78,111,116,67,111,110,103,114,117,101,110,116,59],value:"≢"},{key:[78,111,116,67,117,112,67,97,112,59],value:"≭"},{key:[78,111,116,68,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59],value:"∦"},{key:[78,111,116,69,108,101,109,101,110,116,59],value:"∉"},{key:[78,111,116,69,113,117,97,108,59],value:"≠"},{key:[78,111,116,69,113,117,97,108,84,105,108,100,101,59],value:"≂̸"},{key:[78,111,116,69,120,105,115,116,115,59],value:"∄"},{key:[78,111,116,71,114,101,97,116,101,114,59],value:"≯"},{key:[78,111,116,71,114,101,97,116,101,114,69,113,117,97,108,59],value:"≱"},{key:[78,111,116,71,114,101,97,116,101,114,70,117,108,108,69,113,117,97,108,59],value:"≧̸"},{key:[78,111,116,71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"≫̸"},{key:[78,111,116,71,114,101,97,116,101,114,76,101,115,115,59],value:"≹"},{key:[78,111,116,71,114,101,97,116,101,114,83,108,97,110,116,69,113,117,97,108,59],value:"⩾̸"},{key:[78,111,116,71,114,101,97,116,101,114,84,105,108,100,101,59],value:"≵"},{key:[78,111,116,72,117,109,112,68,111,119,110,72,117,109,112,59],value:"≎̸"},{key:[78,111,116,72,117,109,112,69,113,117,97,108,59],value:"≏̸"},{key:[78,111,116,76,101,102,116,84,114,105,97,110,103,108,101,59],value:"⋪"},{key:[78,111,116,76,101,102,116,84,114,105,97,110,103,108,101,66,97,114,59],value:"⧏̸"},{key:[78,111,116,76,101,102,116,84,114,105,97,110,103,108,101,69,113,117,97,108,59],value:"⋬"},{key:[78,111,116,76,101,115,115,59],value:"≮"},{key:[78,111,116,76,101,115,115,69,113,117,97,108,59],value:"≰"},{key:[78,111,116,76,101,115,115,71,114,101,97,116,101,114,59],value:"≸"},{key:[78,111,116,76,101,115,115,76,101,115,115,59],value:"≪̸"},{key:[78,111,116,76,101,115,115,83,108,97,110,116,69,113,117,97,108,59],value:"⩽̸"},{key:[78,111,116,76,101,115,115,84,105,108,100,101,59],value:"≴"},{key:[78,111,116,78,101,115,116,101,100,71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"⪢̸"},{key:[78,111,116,78,101,115,116,101,100,76,101,115,115,76,101,115,115,59],value:"⪡̸"},{key:[78,111,116,80,114,101,99,101,100,101,115,59],value:"⊀"},{key:[78,111,116,80,114,101,99,101,100,101,115,69,113,117,97,108,59],value:"⪯̸"},{key:[78,111,116,80,114,101,99,101,100,101,115,83,108,97,110,116,69,113,117,97,108,59],value:"⋠"},{key:[78,111,116,82,101,118,101,114,115,101,69,108,101,109,101,110,116,59],value:"∌"},{key:[78,111,116,82,105,103,104,116,84,114,105,97,110,103,108,101,59],value:"⋫"},{key:[78,111,116,82,105,103,104,116,84,114,105,97,110,103,108,101,66,97,114,59],value:"⧐̸"},{key:[78,111,116,82,105,103,104,116,84,114,105,97,110,103,108,101,69,113,117,97,108,59],value:"⋭"},{key:[78,111,116,83,113,117,97,114,101,83,117,98,115,101,116,59],value:"⊏̸"},{key:[78,111,116,83,113,117,97,114,101,83,117,98,115,101,116,69,113,117,97,108,59],value:"⋢"},{key:[78,111,116,83,113,117,97,114,101,83,117,112,101,114,115,101,116,59],value:"⊐̸"},{key:[78,111,116,83,113,117,97,114,101,83,117,112,101,114,115,101,116,69,113,117,97,108,59],value:"⋣"},{key:[78,111,116,83,117,98,115,101,116,59],value:"⊂⃒"},{key:[78,111,116,83,117,98,115,101,116,69,113,117,97,108,59],value:"⊈"},{key:[78,111,116,83,117,99,99,101,101,100,115,59],value:"⊁"},{key:[78,111,116,83,117,99,99,101,101,100,115,69,113,117,97,108,59],value:"⪰̸"},{key:[78,111,116,83,117,99,99,101,101,100,115,83,108,97,110,116,69,113,117,97,108,59],value:"⋡"},{key:[78,111,116,83,117,99,99,101,101,100,115,84,105,108,100,101,59],value:"≿̸"},{key:[78,111,116,83,117,112,101,114,115,101,116,59],value:"⊃⃒"},{key:[78,111,116,83,117,112,101,114,115,101,116,69,113,117,97,108,59],value:"⊉"},{key:[78,111,116,84,105,108,100,101,59],value:"≁"},{key:[78,111,116,84,105,108,100,101,69,113,117,97,108,59],value:"≄"},{key:[78,111,116,84,105,108,100,101,70,117,108,108,69,113,117,97,108,59],value:"≇"},{key:[78,111,116,84,105,108,100,101,84,105,108,100,101,59],value:"≉"},{key:[78,111,116,86,101,114,116,105,99,97,108,66,97,114,59],value:"∤"},{key:[78,115,99,114,59],value:"𝒩"},{key:[78,116,105,108,100,101,59],value:"Ñ"},{key:[78,117,59],value:"Ν"},{key:[79,69,108,105,103,59],value:"Œ"},{key:[79,97,99,117,116,101,59],value:"Ó"},{key:[79,99,105,114,99,59],value:"Ô"},{key:[79,99,121,59],value:"О"},{key:[79,100,98,108,97,99,59],value:"Ő"},{key:[79,102,114,59],value:"𝔒"},{key:[79,103,114,97,118,101,59],value:"Ò"},{key:[79,109,97,99,114,59],value:"Ō"},{key:[79,109,101,103,97,59],value:"Ω"},{key:[79,109,105,99,114,111,110,59],value:"Ο"},{key:[79,111,112,102,59],value:"𝕆"},{key:[79,112,101,110,67,117,114,108,121,68,111,117,98,108,101,81,117,111,116,101,59],value:"“"},{key:[79,112,101,110,67,117,114,108,121,81,117,111,116,101,59],value:"‘"},{key:[79,114,59],value:"⩔"},{key:[79,115,99,114,59],value:"𝒪"},{key:[79,115,108,97,115,104,59],value:"Ø"},{key:[79,116,105,108,100,101,59],value:"Õ"},{key:[79,116,105,109,101,115,59],value:"⨷"},{key:[79,117,109,108,59],value:"Ö"},{key:[79,118,101,114,66,97,114,59],value:"‾"},{key:[79,118,101,114,66,114,97,99,101,59],value:"⏞"},{key:[79,118,101,114,66,114,97,99,107,101,116,59],value:"⎴"},{key:[79,118,101,114,80,97,114,101,110,116,104,101,115,105,115,59],value:"⏜"},{key:[80,97,114,116,105,97,108,68,59],value:"∂"},{key:[80,99,121,59],value:"П"},{key:[80,102,114,59],value:"𝔓"},{key:[80,104,105,59],value:"Φ"},{key:[80,105,59],value:"Π"},{key:[80,108,117,115,77,105,110,117,115,59],value:"±"},{key:[80,111,105,110,99,97,114,101,112,108,97,110,101,59],value:"ℌ"},{key:[80,111,112,102,59],value:"ℙ"},{key:[80,114,59],value:"⪻"},{key:[80,114,101,99,101,100,101,115,59],value:"≺"},{key:[80,114,101,99,101,100,101,115,69,113,117,97,108,59],value:"⪯"},{key:[80,114,101,99,101,100,101,115,83,108,97,110,116,69,113,117,97,108,59],value:"≼"},{key:[80,114,101,99,101,100,101,115,84,105,108,100,101,59],value:"≾"},{key:[80,114,105,109,101,59],value:"″"},{key:[80,114,111,100,117,99,116,59],value:"∏"},{key:[80,114,111,112,111,114,116,105,111,110,59],value:"∷"},{key:[80,114,111,112,111,114,116,105,111,110,97,108,59],value:"∝"},{key:[80,115,99,114,59],value:"𝒫"},{key:[80,115,105,59],value:"Ψ"},{key:[81,85,79,84,59],value:'"'},{key:[81,102,114,59],value:"𝔔"},{key:[81,111,112,102,59],value:"ℚ"},{key:[81,115,99,114,59],value:"𝒬"},{key:[82,66,97,114,114,59],value:"⤐"},{key:[82,69,71,59],value:"®"},{key:[82,97,99,117,116,101,59],value:"Ŕ"},{key:[82,97,110,103,59],value:"⟫"},{key:[82,97,114,114,59],value:"↠"},{key:[82,97,114,114,116,108,59],value:"⤖"},{key:[82,99,97,114,111,110,59],value:"Ř"},{key:[82,99,101,100,105,108,59],value:"Ŗ"},{key:[82,99,121,59],value:"Р"},{key:[82,101,59],value:"ℜ"},{key:[82,101,118,101,114,115,101,69,108,101,109,101,110,116,59],value:"∋"},{key:[82,101,118,101,114,115,101,69,113,117,105,108,105,98,114,105,117,109,59],value:"⇋"},{key:[82,101,118,101,114,115,101,85,112,69,113,117,105,108,105,98,114,105,117,109,59],value:"⥯"},{key:[82,102,114,59],value:"ℜ"},{key:[82,104,111,59],value:"Ρ"},{key:[82,105,103,104,116,65,110,103,108,101,66,114,97,99,107,101,116,59],value:"⟩"},{key:[82,105,103,104,116,65,114,114,111,119,59],value:"→"},{key:[82,105,103,104,116,65,114,114,111,119,66,97,114,59],value:"⇥"},{key:[82,105,103,104,116,65,114,114,111,119,76,101,102,116,65,114,114,111,119,59],value:"⇄"},{key:[82,105,103,104,116,67,101,105,108,105,110,103,59],value:"⌉"},{key:[82,105,103,104,116,68,111,117,98,108,101,66,114,97,99,107,101,116,59],value:"⟧"},{key:[82,105,103,104,116,68,111,119,110,84,101,101,86,101,99,116,111,114,59],value:"⥝"},{key:[82,105,103,104,116,68,111,119,110,86,101,99,116,111,114,59],value:"⇂"},{key:[82,105,103,104,116,68,111,119,110,86,101,99,116,111,114,66,97,114,59],value:"⥕"},{key:[82,105,103,104,116,70,108,111,111,114,59],value:"⌋"},{key:[82,105,103,104,116,84,101,101,59],value:"⊢"},{key:[82,105,103,104,116,84,101,101,65,114,114,111,119,59],value:"↦"},{key:[82,105,103,104,116,84,101,101,86,101,99,116,111,114,59],value:"⥛"},{key:[82,105,103,104,116,84,114,105,97,110,103,108,101,59],value:"⊳"},{key:[82,105,103,104,116,84,114,105,97,110,103,108,101,66,97,114,59],value:"⧐"},{key:[82,105,103,104,116,84,114,105,97,110,103,108,101,69,113,117,97,108,59],value:"⊵"},{key:[82,105,103,104,116,85,112,68,111,119,110,86,101,99,116,111,114,59],value:"⥏"},{key:[82,105,103,104,116,85,112,84,101,101,86,101,99,116,111,114,59],value:"⥜"},{key:[82,105,103,104,116,85,112,86,101,99,116,111,114,59],value:"↾"},{key:[82,105,103,104,116,85,112,86,101,99,116,111,114,66,97,114,59],value:"⥔"},{key:[82,105,103,104,116,86,101,99,116,111,114,59],value:"⇀"},{key:[82,105,103,104,116,86,101,99,116,111,114,66,97,114,59],value:"⥓"},{key:[82,105,103,104,116,97,114,114,111,119,59],value:"⇒"},{key:[82,111,112,102,59],value:"ℝ"},{key:[82,111,117,110,100,73,109,112,108,105,101,115,59],value:"⥰"},{key:[82,114,105,103,104,116,97,114,114,111,119,59],value:"⇛"},{key:[82,115,99,114,59],value:"ℛ"},{key:[82,115,104,59],value:"↱"},{key:[82,117,108,101,68,101,108,97,121,101,100,59],value:"⧴"},{key:[83,72,67,72,99,121,59],value:"Щ"},{key:[83,72,99,121,59],value:"Ш"},{key:[83,79,70,84,99,121,59],value:"Ь"},{key:[83,97,99,117,116,101,59],value:"Ś"},{key:[83,99,59],value:"⪼"},{key:[83,99,97,114,111,110,59],value:"Š"},{key:[83,99,101,100,105,108,59],value:"Ş"},{key:[83,99,105,114,99,59],value:"Ŝ"},{key:[83,99,121,59],value:"С"},{key:[83,102,114,59],value:"𝔖"},{key:[83,104,111,114,116,68,111,119,110,65,114,114,111,119,59],value:"↓"},{key:[83,104,111,114,116,76,101,102,116,65,114,114,111,119,59],value:"←"},{key:[83,104,111,114,116,82,105,103,104,116,65,114,114,111,119,59],value:"→"},{key:[83,104,111,114,116,85,112,65,114,114,111,119,59],value:"↑"},{key:[83,105,103,109,97,59],value:"Σ"},{key:[83,109,97,108,108,67,105,114,99,108,101,59],value:"∘"},{key:[83,111,112,102,59],value:"𝕊"},{key:[83,113,114,116,59],value:"√"},{key:[83,113,117,97,114,101,59],value:"□"},{key:[83,113,117,97,114,101,73,110,116,101,114,115,101,99,116,105,111,110,59],value:"⊓"},{key:[83,113,117,97,114,101,83,117,98,115,101,116,59],value:"⊏"},{key:[83,113,117,97,114,101,83,117,98,115,101,116,69,113,117,97,108,59],value:"⊑"},{key:[83,113,117,97,114,101,83,117,112,101,114,115,101,116,59],value:"⊐"},{key:[83,113,117,97,114,101,83,117,112,101,114,115,101,116,69,113,117,97,108,59],value:"⊒"},{key:[83,113,117,97,114,101,85,110,105,111,110,59],value:"⊔"},{key:[83,115,99,114,59],value:"𝒮"},{key:[83,116,97,114,59],value:"⋆"},{key:[83,117,98,59],value:"⋐"},{key:[83,117,98,115,101,116,59],value:"⋐"},{key:[83,117,98,115,101,116,69,113,117,97,108,59],value:"⊆"},{key:[83,117,99,99,101,101,100,115,59],value:"≻"},{key:[83,117,99,99,101,101,100,115,69,113,117,97,108,59],value:"⪰"},{key:[83,117,99,99,101,101,100,115,83,108,97,110,116,69,113,117,97,108,59],value:"≽"},{key:[83,117,99,99,101,101,100,115,84,105,108,100,101,59],value:"≿"},{key:[83,117,99,104,84,104,97,116,59],value:"∋"},{key:[83,117,109,59],value:"∑"},{key:[83,117,112,59],value:"⋑"},{key:[83,117,112,101,114,115,101,116,59],value:"⊃"},{key:[83,117,112,101,114,115,101,116,69,113,117,97,108,59],value:"⊇"},{key:[83,117,112,115,101,116,59],value:"⋑"},{key:[84,72,79,82,78,59],value:"Þ"},{key:[84,82,65,68,69,59],value:"™"},{key:[84,83,72,99,121,59],value:"Ћ"},{key:[84,83,99,121,59],value:"Ц"},{key:[84,97,98,59],value:" "},{key:[84,97,117,59],value:"Τ"},{key:[84,99,97,114,111,110,59],value:"Ť"},{key:[84,99,101,100,105,108,59],value:"Ţ"},{key:[84,99,121,59],value:"Т"},{key:[84,102,114,59],value:"𝔗"},{key:[84,104,101,114,101,102,111,114,101,59],value:"∴"},{key:[84,104,101,116,97,59],value:"Θ"},{key:[84,104,105,99,107,83,112,97,99,101,59],value:"  "},{key:[84,104,105,110,83,112,97,99,101,59],value:" "},{key:[84,105,108,100,101,59],value:"∼"},{key:[84,105,108,100,101,69,113,117,97,108,59],value:"≃"},{key:[84,105,108,100,101,70,117,108,108,69,113,117,97,108,59],value:"≅"},{key:[84,105,108,100,101,84,105,108,100,101,59],value:"≈"},{key:[84,111,112,102,59],value:"𝕋"},{key:[84,114,105,112,108,101,68,111,116,59],value:"⃛"},{key:[84,115,99,114,59],value:"𝒯"},{key:[84,115,116,114,111,107,59],value:"Ŧ"},{key:[85,97,99,117,116,101,59],value:"Ú"},{key:[85,97,114,114,59],value:"↟"},{key:[85,97,114,114,111,99,105,114,59],value:"⥉"},{key:[85,98,114,99,121,59],value:"Ў"},{key:[85,98,114,101,118,101,59],value:"Ŭ"},{key:[85,99,105,114,99,59],value:"Û"},{key:[85,99,121,59],value:"У"},{key:[85,100,98,108,97,99,59],value:"Ű"},{key:[85,102,114,59],value:"𝔘"},{key:[85,103,114,97,118,101,59],value:"Ù"},{key:[85,109,97,99,114,59],value:"Ū"},{key:[85,110,100,101,114,66,97,114,59],value:"_"},{key:[85,110,100,101,114,66,114,97,99,101,59],value:"⏟"},{key:[85,110,100,101,114,66,114,97,99,107,101,116,59],value:"⎵"},{key:[85,110,100,101,114,80,97,114,101,110,116,104,101,115,105,115,59],value:"⏝"},{key:[85,110,105,111,110,59],value:"⋃"},{key:[85,110,105,111,110,80,108,117,115,59],value:"⊎"},{key:[85,111,103,111,110,59],value:"Ų"},{key:[85,111,112,102,59],value:"𝕌"},{key:[85,112,65,114,114,111,119,59],value:"↑"},{key:[85,112,65,114,114,111,119,66,97,114,59],value:"⤒"},{key:[85,112,65,114,114,111,119,68,111,119,110,65,114,114,111,119,59],value:"⇅"},{key:[85,112,68,111,119,110,65,114,114,111,119,59],value:"↕"},{key:[85,112,69,113,117,105,108,105,98,114,105,117,109,59],value:"⥮"},{key:[85,112,84,101,101,59],value:"⊥"},{key:[85,112,84,101,101,65,114,114,111,119,59],value:"↥"},{key:[85,112,97,114,114,111,119,59],value:"⇑"},{key:[85,112,100,111,119,110,97,114,114,111,119,59],value:"⇕"},{key:[85,112,112,101,114,76,101,102,116,65,114,114,111,119,59],value:"↖"},{key:[85,112,112,101,114,82,105,103,104,116,65,114,114,111,119,59],value:"↗"},{key:[85,112,115,105,59],value:"ϒ"},{key:[85,112,115,105,108,111,110,59],value:"Υ"},{key:[85,114,105,110,103,59],value:"Ů"},{key:[85,115,99,114,59],value:"𝒰"},{key:[85,116,105,108,100,101,59],value:"Ũ"},{key:[85,117,109,108,59],value:"Ü"},{key:[86,68,97,115,104,59],value:"⊫"},{key:[86,98,97,114,59],value:"⫫"},{key:[86,99,121,59],value:"В"},{key:[86,100,97,115,104,59],value:"⊩"},{key:[86,100,97,115,104,108,59],value:"⫦"},{key:[86,101,101,59],value:"⋁"},{key:[86,101,114,98,97,114,59],value:"‖"},{key:[86,101,114,116,59],value:"‖"},{key:[86,101,114,116,105,99,97,108,66,97,114,59],value:"∣"},{key:[86,101,114,116,105,99,97,108,76,105,110,101,59],value:"|"},{key:[86,101,114,116,105,99,97,108,83,101,112,97,114,97,116,111,114,59],value:"❘"},{key:[86,101,114,116,105,99,97,108,84,105,108,100,101,59],value:"≀"},{key:[86,101,114,121,84,104,105,110,83,112,97,99,101,59],value:" "},{key:[86,102,114,59],value:"𝔙"},{key:[86,111,112,102,59],value:"𝕍"},{key:[86,115,99,114,59],value:"𝒱"},{key:[86,118,100,97,115,104,59],value:"⊪"},{key:[87,99,105,114,99,59],value:"Ŵ"},{key:[87,101,100,103,101,59],value:"⋀"},{key:[87,102,114,59],value:"𝔚"},{key:[87,111,112,102,59],value:"𝕎"},{key:[87,115,99,114,59],value:"𝒲"},{key:[88,102,114,59],value:"𝔛"},{key:[88,105,59],value:"Ξ"},{key:[88,111,112,102,59],value:"𝕏"},{key:[88,115,99,114,59],value:"𝒳"},{key:[89,65,99,121,59],value:"Я"},{key:[89,73,99,121,59],value:"Ї"},{key:[89,85,99,121,59],value:"Ю"},{key:[89,97,99,117,116,101,59],value:"Ý"},{key:[89,99,105,114,99,59],value:"Ŷ"},{key:[89,99,121,59],value:"Ы"},{key:[89,102,114,59],value:"𝔜"},{key:[89,111,112,102,59],value:"𝕐"},{key:[89,115,99,114,59],value:"𝒴"},{key:[89,117,109,108,59],value:"Ÿ"},{key:[90,72,99,121,59],value:"Ж"},{key:[90,97,99,117,116,101,59],value:"Ź"},{key:[90,99,97,114,111,110,59],value:"Ž"},{key:[90,99,121,59],value:"З"},{key:[90,100,111,116,59],value:"Ż"},{key:[90,101,114,111,87,105,100,116,104,83,112,97,99,101,59],value:"​"},{key:[90,101,116,97,59],value:"Ζ"},{key:[90,102,114,59],value:"ℨ"},{key:[90,111,112,102,59],value:"ℤ"},{key:[90,115,99,114,59],value:"𝒵"},{key:[97,97,99,117,116,101,59],value:"á"},{key:[97,98,114,101,118,101,59],value:"ă"},{key:[97,99,59],value:"∾"},{key:[97,99,69,59],value:"∾̳"},{key:[97,99,100,59],value:"∿"},{key:[97,99,105,114,99,59],value:"â"},{key:[97,99,117,116,101,59],value:"´"},{key:[97,99,121,59],value:"а"},{key:[97,101,108,105,103,59],value:"æ"},{key:[97,102,59],value:"⁡"},{key:[97,102,114,59],value:"𝔞"},{key:[97,103,114,97,118,101,59],value:"à"},{key:[97,108,101,102,115,121,109,59],value:"ℵ"},{key:[97,108,101,112,104,59],value:"ℵ"},{key:[97,108,112,104,97,59],value:"α"},{key:[97,109,97,99,114,59],value:"ā"},{key:[97,109,97,108,103,59],value:"⨿"},{key:[97,109,112,59],value:"&"},{key:[97,110,100,59],value:"∧"},{key:[97,110,100,97,110,100,59],value:"⩕"},{key:[97,110,100,100,59],value:"⩜"},{key:[97,110,100,115,108,111,112,101,59],value:"⩘"},{key:[97,110,100,118,59],value:"⩚"},{key:[97,110,103,59],value:"∠"},{key:[97,110,103,101,59],value:"⦤"},{key:[97,110,103,108,101,59],value:"∠"},{key:[97,110,103,109,115,100,59],value:"∡"},{key:[97,110,103,109,115,100,97,97,59],value:"⦨"},{key:[97,110,103,109,115,100,97,98,59],value:"⦩"},{key:[97,110,103,109,115,100,97,99,59],value:"⦪"},{key:[97,110,103,109,115,100,97,100,59],value:"⦫"},{key:[97,110,103,109,115,100,97,101,59],value:"⦬"},{key:[97,110,103,109,115,100,97,102,59],value:"⦭"},{key:[97,110,103,109,115,100,97,103,59],value:"⦮"},{key:[97,110,103,109,115,100,97,104,59],value:"⦯"},{key:[97,110,103,114,116,59],value:"∟"},{key:[97,110,103,114,116,118,98,59],value:"⊾"},{key:[97,110,103,114,116,118,98,100,59],value:"⦝"},{key:[97,110,103,115,112,104,59],value:"∢"},{key:[97,110,103,115,116,59],value:"Å"},{key:[97,110,103,122,97,114,114,59],value:"⍼"},{key:[97,111,103,111,110,59],value:"ą"},{key:[97,111,112,102,59],value:"𝕒"},{key:[97,112,59],value:"≈"},{key:[97,112,69,59],value:"⩰"},{key:[97,112,97,99,105,114,59],value:"⩯"},{key:[97,112,101,59],value:"≊"},{key:[97,112,105,100,59],value:"≋"},{key:[97,112,111,115,59],value:"'"},{key:[97,112,112,114,111,120,59],value:"≈"},{key:[97,112,112,114,111,120,101,113,59],value:"≊"},{key:[97,114,105,110,103,59],value:"å"},{key:[97,115,99,114,59],value:"𝒶"},{key:[97,115,116,59],value:"*"},{key:[97,115,121,109,112,59],value:"≈"},{key:[97,115,121,109,112,101,113,59],value:"≍"},{key:[97,116,105,108,100,101,59],value:"ã"},{key:[97,117,109,108,59],value:"ä"},{key:[97,119,99,111,110,105,110,116,59],value:"∳"},{key:[97,119,105,110,116,59],value:"⨑"},{key:[98,78,111,116,59],value:"⫭"},{key:[98,97,99,107,99,111,110,103,59],value:"≌"},{key:[98,97,99,107,101,112,115,105,108,111,110,59],value:"϶"},{key:[98,97,99,107,112,114,105,109,101,59],value:"‵"},{key:[98,97,99,107,115,105,109,59],value:"∽"},{key:[98,97,99,107,115,105,109,101,113,59],value:"⋍"},{key:[98,97,114,118,101,101,59],value:"⊽"},{key:[98,97,114,119,101,100,59],value:"⌅"},{key:[98,97,114,119,101,100,103,101,59],value:"⌅"},{key:[98,98,114,107,59],value:"⎵"},{key:[98,98,114,107,116,98,114,107,59],value:"⎶"},{key:[98,99,111,110,103,59],value:"≌"},{key:[98,99,121,59],value:"б"},{key:[98,100,113,117,111,59],value:"„"},{key:[98,101,99,97,117,115,59],value:"∵"},{key:[98,101,99,97,117,115,101,59],value:"∵"},{key:[98,101,109,112,116,121,118,59],value:"⦰"},{key:[98,101,112,115,105,59],value:"϶"},{key:[98,101,114,110,111,117,59],value:"ℬ"},{key:[98,101,116,97,59],value:"β"},{key:[98,101,116,104,59],value:"ℶ"},{key:[98,101,116,119,101,101,110,59],value:"≬"},{key:[98,102,114,59],value:"𝔟"},{key:[98,105,103,99,97,112,59],value:"⋂"},{key:[98,105,103,99,105,114,99,59],value:"◯"},{key:[98,105,103,99,117,112,59],value:"⋃"},{key:[98,105,103,111,100,111,116,59],value:"⨀"},{key:[98,105,103,111,112,108,117,115,59],value:"⨁"},{key:[98,105,103,111,116,105,109,101,115,59],value:"⨂"},{key:[98,105,103,115,113,99,117,112,59],value:"⨆"},{key:[98,105,103,115,116,97,114,59],value:"★"},{key:[98,105,103,116,114,105,97,110,103,108,101,100,111,119,110,59],value:"▽"},{key:[98,105,103,116,114,105,97,110,103,108,101,117,112,59],value:"△"},{key:[98,105,103,117,112,108,117,115,59],value:"⨄"},{key:[98,105,103,118,101,101,59],value:"⋁"},{key:[98,105,103,119,101,100,103,101,59],value:"⋀"},{key:[98,107,97,114,111,119,59],value:"⤍"},{key:[98,108,97,99,107,108,111,122,101,110,103,101,59],value:"⧫"},{key:[98,108,97,99,107,115,113,117,97,114,101,59],value:"▪"},{key:[98,108,97,99,107,116,114,105,97,110,103,108,101,59],value:"▴"},{key:[98,108,97,99,107,116,114,105,97,110,103,108,101,100,111,119,110,59],value:"▾"},{key:[98,108,97,99,107,116,114,105,97,110,103,108,101,108,101,102,116,59],value:"◂"},{key:[98,108,97,99,107,116,114,105,97,110,103,108,101,114,105,103,104,116,59],value:"▸"},{key:[98,108,97,110,107,59],value:"␣"},{key:[98,108,107,49,50,59],value:"▒"},{key:[98,108,107,49,52,59],value:"░"},{key:[98,108,107,51,52,59],value:"▓"},{key:[98,108,111,99,107,59],value:"█"},{key:[98,110,101,59],value:"=⃥"},{key:[98,110,101,113,117,105,118,59],value:"≡⃥"},{key:[98,110,111,116,59],value:"⌐"},{key:[98,111,112,102,59],value:"𝕓"},{key:[98,111,116,59],value:"⊥"},{key:[98,111,116,116,111,109,59],value:"⊥"},{key:[98,111,119,116,105,101,59],value:"⋈"},{key:[98,111,120,68,76,59],value:"╗"},{key:[98,111,120,68,82,59],value:"╔"},{key:[98,111,120,68,108,59],value:"╖"},{key:[98,111,120,68,114,59],value:"╓"},{key:[98,111,120,72,59],value:"═"},{key:[98,111,120,72,68,59],value:"╦"},{key:[98,111,120,72,85,59],value:"╩"},{key:[98,111,120,72,100,59],value:"╤"},{key:[98,111,120,72,117,59],value:"╧"},{key:[98,111,120,85,76,59],value:"╝"},{key:[98,111,120,85,82,59],value:"╚"},{key:[98,111,120,85,108,59],value:"╜"},{key:[98,111,120,85,114,59],value:"╙"},{key:[98,111,120,86,59],value:"║"},{key:[98,111,120,86,72,59],value:"╬"},{key:[98,111,120,86,76,59],value:"╣"},{key:[98,111,120,86,82,59],value:"╠"},{key:[98,111,120,86,104,59],value:"╫"},{key:[98,111,120,86,108,59],value:"╢"},{key:[98,111,120,86,114,59],value:"╟"},{key:[98,111,120,98,111,120,59],value:"⧉"},{key:[98,111,120,100,76,59],value:"╕"},{key:[98,111,120,100,82,59],value:"╒"},{key:[98,111,120,100,108,59],value:"┐"},{key:[98,111,120,100,114,59],value:"┌"},{key:[98,111,120,104,59],value:"─"},{key:[98,111,120,104,68,59],value:"╥"},{key:[98,111,120,104,85,59],value:"╨"},{key:[98,111,120,104,100,59],value:"┬"},{key:[98,111,120,104,117,59],value:"┴"},{key:[98,111,120,109,105,110,117,115,59],value:"⊟"},{key:[98,111,120,112,108,117,115,59],value:"⊞"},{key:[98,111,120,116,105,109,101,115,59],value:"⊠"},{key:[98,111,120,117,76,59],value:"╛"},{key:[98,111,120,117,82,59],value:"╘"},{key:[98,111,120,117,108,59],value:"┘"},{key:[98,111,120,117,114,59],value:"└"},{key:[98,111,120,118,59],value:"│"},{key:[98,111,120,118,72,59],value:"╪"},{key:[98,111,120,118,76,59],value:"╡"},{key:[98,111,120,118,82,59],value:"╞"},{key:[98,111,120,118,104,59],value:"┼"},{key:[98,111,120,118,108,59],value:"┤"},{key:[98,111,120,118,114,59],value:"├"},{key:[98,112,114,105,109,101,59],value:"‵"},{key:[98,114,101,118,101,59],value:"˘"},{key:[98,114,118,98,97,114,59],value:"¦"},{key:[98,115,99,114,59],value:"𝒷"},{key:[98,115,101,109,105,59],value:"⁏"},{key:[98,115,105,109,59],value:"∽"},{key:[98,115,105,109,101,59],value:"⋍"},{key:[98,115,111,108,59],value:"\\"},{key:[98,115,111,108,98,59],value:"⧅"},{key:[98,115,111,108,104,115,117,98,59],value:"⟈"},{key:[98,117,108,108,59],value:"•"},{key:[98,117,108,108,101,116,59],value:"•"},{key:[98,117,109,112,59],value:"≎"},{key:[98,117,109,112,69,59],value:"⪮"},{key:[98,117,109,112,101,59],value:"≏"},{key:[98,117,109,112,101,113,59],value:"≏"},{key:[99,97,99,117,116,101,59],value:"ć"},{key:[99,97,112,59],value:"∩"},{key:[99,97,112,97,110,100,59],value:"⩄"},{key:[99,97,112,98,114,99,117,112,59],value:"⩉"},{key:[99,97,112,99,97,112,59],value:"⩋"},{key:[99,97,112,99,117,112,59],value:"⩇"},{key:[99,97,112,100,111,116,59],value:"⩀"},{key:[99,97,112,115,59],value:"∩︀"},{key:[99,97,114,101,116,59],value:"⁁"},{key:[99,97,114,111,110,59],value:"ˇ"},{key:[99,99,97,112,115,59],value:"⩍"},{key:[99,99,97,114,111,110,59],value:"č"},{key:[99,99,101,100,105,108,59],value:"ç"},{key:[99,99,105,114,99,59],value:"ĉ"},{key:[99,99,117,112,115,59],value:"⩌"},{key:[99,99,117,112,115,115,109,59],value:"⩐"},{key:[99,100,111,116,59],value:"ċ"},{key:[99,101,100,105,108,59],value:"¸"},{key:[99,101,109,112,116,121,118,59],value:"⦲"},{key:[99,101,110,116,59],value:"¢"},{key:[99,101,110,116,101,114,100,111,116,59],value:"·"},{key:[99,102,114,59],value:"𝔠"},{key:[99,104,99,121,59],value:"ч"},{key:[99,104,101,99,107,59],value:"✓"},{key:[99,104,101,99,107,109,97,114,107,59],value:"✓"},{key:[99,104,105,59],value:"χ"},{key:[99,105,114,59],value:"○"},{key:[99,105,114,69,59],value:"⧃"},{key:[99,105,114,99,59],value:"ˆ"},{key:[99,105,114,99,101,113,59],value:"≗"},{key:[99,105,114,99,108,101,97,114,114,111,119,108,101,102,116,59],value:"↺"},{key:[99,105,114,99,108,101,97,114,114,111,119,114,105,103,104,116,59],value:"↻"},{key:[99,105,114,99,108,101,100,82,59],value:"®"},{key:[99,105,114,99,108,101,100,83,59],value:"Ⓢ"},{key:[99,105,114,99,108,101,100,97,115,116,59],value:"⊛"},{key:[99,105,114,99,108,101,100,99,105,114,99,59],value:"⊚"},{key:[99,105,114,99,108,101,100,100,97,115,104,59],value:"⊝"},{key:[99,105,114,101,59],value:"≗"},{key:[99,105,114,102,110,105,110,116,59],value:"⨐"},{key:[99,105,114,109,105,100,59],value:"⫯"},{key:[99,105,114,115,99,105,114,59],value:"⧂"},{key:[99,108,117,98,115,59],value:"♣"},{key:[99,108,117,98,115,117,105,116,59],value:"♣"},{key:[99,111,108,111,110,59],value:":"},{key:[99,111,108,111,110,101,59],value:"≔"},{key:[99,111,108,111,110,101,113,59],value:"≔"},{key:[99,111,109,109,97,59],value:","},{key:[99,111,109,109,97,116,59],value:"@"},{key:[99,111,109,112,59],value:"∁"},{key:[99,111,109,112,102,110,59],value:"∘"},{key:[99,111,109,112,108,101,109,101,110,116,59],value:"∁"},{key:[99,111,109,112,108,101,120,101,115,59],value:"ℂ"},{key:[99,111,110,103,59],value:"≅"},{key:[99,111,110,103,100,111,116,59],value:"⩭"},{key:[99,111,110,105,110,116,59],value:"∮"},{key:[99,111,112,102,59],value:"𝕔"},{key:[99,111,112,114,111,100,59],value:"∐"},{key:[99,111,112,121,59],value:"©"},{key:[99,111,112,121,115,114,59],value:"℗"},{key:[99,114,97,114,114,59],value:"↵"},{key:[99,114,111,115,115,59],value:"✗"},{key:[99,115,99,114,59],value:"𝒸"},{key:[99,115,117,98,59],value:"⫏"},{key:[99,115,117,98,101,59],value:"⫑"},{key:[99,115,117,112,59],value:"⫐"},{key:[99,115,117,112,101,59],value:"⫒"},{key:[99,116,100,111,116,59],value:"⋯"},{key:[99,117,100,97,114,114,108,59],value:"⤸"},{key:[99,117,100,97,114,114,114,59],value:"⤵"},{key:[99,117,101,112,114,59],value:"⋞"},{key:[99,117,101,115,99,59],value:"⋟"},{key:[99,117,108,97,114,114,59],value:"↶"},{key:[99,117,108,97,114,114,112,59],value:"⤽"},{key:[99,117,112,59],value:"∪"},{key:[99,117,112,98,114,99,97,112,59],value:"⩈"},{key:[99,117,112,99,97,112,59],value:"⩆"},{key:[99,117,112,99,117,112,59],value:"⩊"},{key:[99,117,112,100,111,116,59],value:"⊍"},{key:[99,117,112,111,114,59],value:"⩅"},{key:[99,117,112,115,59],value:"∪︀"},{key:[99,117,114,97,114,114,59],value:"↷"},{key:[99,117,114,97,114,114,109,59],value:"⤼"},{key:[99,117,114,108,121,101,113,112,114,101,99,59],value:"⋞"},{key:[99,117,114,108,121,101,113,115,117,99,99,59],value:"⋟"},{key:[99,117,114,108,121,118,101,101,59],value:"⋎"},{key:[99,117,114,108,121,119,101,100,103,101,59],value:"⋏"},{key:[99,117,114,114,101,110,59],value:"¤"},{key:[99,117,114,118,101,97,114,114,111,119,108,101,102,116,59],value:"↶"},{key:[99,117,114,118,101,97,114,114,111,119,114,105,103,104,116,59],value:"↷"},{key:[99,117,118,101,101,59],value:"⋎"},{key:[99,117,119,101,100,59],value:"⋏"},{key:[99,119,99,111,110,105,110,116,59],value:"∲"},{key:[99,119,105,110,116,59],value:"∱"},{key:[99,121,108,99,116,121,59],value:"⌭"},{key:[100,65,114,114,59],value:"⇓"},{key:[100,72,97,114,59],value:"⥥"},{key:[100,97,103,103,101,114,59],value:"†"},{key:[100,97,108,101,116,104,59],value:"ℸ"},{key:[100,97,114,114,59],value:"↓"},{key:[100,97,115,104,59],value:"‐"},{key:[100,97,115,104,118,59],value:"⊣"},{key:[100,98,107,97,114,111,119,59],value:"⤏"},{key:[100,98,108,97,99,59],value:"˝"},{key:[100,99,97,114,111,110,59],value:"ď"},{key:[100,99,121,59],value:"д"},{key:[100,100,59],value:"ⅆ"},{key:[100,100,97,103,103,101,114,59],value:"‡"},{key:[100,100,97,114,114,59],value:"⇊"},{key:[100,100,111,116,115,101,113,59],value:"⩷"},{key:[100,101,103,59],value:"°"},{key:[100,101,108,116,97,59],value:"δ"},{key:[100,101,109,112,116,121,118,59],value:"⦱"},{key:[100,102,105,115,104,116,59],value:"⥿"},{key:[100,102,114,59],value:"𝔡"},{key:[100,104,97,114,108,59],value:"⇃"},{key:[100,104,97,114,114,59],value:"⇂"},{key:[100,105,97,109,59],value:"⋄"},{key:[100,105,97,109,111,110,100,59],value:"⋄"},{key:[100,105,97,109,111,110,100,115,117,105,116,59],value:"♦"},{key:[100,105,97,109,115,59],value:"♦"},{key:[100,105,101,59],value:"¨"},{key:[100,105,103,97,109,109,97,59],value:"ϝ"},{key:[100,105,115,105,110,59],value:"⋲"},{key:[100,105,118,59],value:"÷"},{key:[100,105,118,105,100,101,59],value:"÷"},{key:[100,105,118,105,100,101,111,110,116,105,109,101,115,59],value:"⋇"},{key:[100,105,118,111,110,120,59],value:"⋇"},{key:[100,106,99,121,59],value:"ђ"},{key:[100,108,99,111,114,110,59],value:"⌞"},{key:[100,108,99,114,111,112,59],value:"⌍"},{key:[100,111,108,108,97,114,59],value:"$"},{key:[100,111,112,102,59],value:"𝕕"},{key:[100,111,116,59],value:"˙"},{key:[100,111,116,101,113,59],value:"≐"},{key:[100,111,116,101,113,100,111,116,59],value:"≑"},{key:[100,111,116,109,105,110,117,115,59],value:"∸"},{key:[100,111,116,112,108,117,115,59],value:"∔"},{key:[100,111,116,115,113,117,97,114,101,59],value:"⊡"},{key:[100,111,117,98,108,101,98,97,114,119,101,100,103,101,59],value:"⌆"},{key:[100,111,119,110,97,114,114,111,119,59],value:"↓"},{key:[100,111,119,110,100,111,119,110,97,114,114,111,119,115,59],value:"⇊"},{key:[100,111,119,110,104,97,114,112,111,111,110,108,101,102,116,59],value:"⇃"},{key:[100,111,119,110,104,97,114,112,111,111,110,114,105,103,104,116,59],value:"⇂"},{key:[100,114,98,107,97,114,111,119,59],value:"⤐"},{key:[100,114,99,111,114,110,59],value:"⌟"},{key:[100,114,99,114,111,112,59],value:"⌌"},{key:[100,115,99,114,59],value:"𝒹"},{key:[100,115,99,121,59],value:"ѕ"},{key:[100,115,111,108,59],value:"⧶"},{key:[100,115,116,114,111,107,59],value:"đ"},{key:[100,116,100,111,116,59],value:"⋱"},{key:[100,116,114,105,59],value:"▿"},{key:[100,116,114,105,102,59],value:"▾"},{key:[100,117,97,114,114,59],value:"⇵"},{key:[100,117,104,97,114,59],value:"⥯"},{key:[100,119,97,110,103,108,101,59],value:"⦦"},{key:[100,122,99,121,59],value:"џ"},{key:[100,122,105,103,114,97,114,114,59],value:"⟿"},{key:[101,68,68,111,116,59],value:"⩷"},{key:[101,68,111,116,59],value:"≑"},{key:[101,97,99,117,116,101,59],value:"é"},{key:[101,97,115,116,101,114,59],value:"⩮"},{key:[101,99,97,114,111,110,59],value:"ě"},{key:[101,99,105,114,59],value:"≖"},{key:[101,99,105,114,99,59],value:"ê"},{key:[101,99,111,108,111,110,59],value:"≕"},{key:[101,99,121,59],value:"э"},{key:[101,100,111,116,59],value:"ė"},{key:[101,101,59],value:"ⅇ"},{key:[101,102,68,111,116,59],value:"≒"},{key:[101,102,114,59],value:"𝔢"},{key:[101,103,59],value:"⪚"},{key:[101,103,114,97,118,101,59],value:"è"},{key:[101,103,115,59],value:"⪖"},{key:[101,103,115,100,111,116,59],value:"⪘"},{key:[101,108,59],value:"⪙"},{key:[101,108,105,110,116,101,114,115,59],value:"⏧"},{key:[101,108,108,59],value:"ℓ"},{key:[101,108,115,59],value:"⪕"},{key:[101,108,115,100,111,116,59],value:"⪗"},{key:[101,109,97,99,114,59],value:"ē"},{key:[101,109,112,116,121,59],value:"∅"},{key:[101,109,112,116,121,115,101,116,59],value:"∅"},{key:[101,109,112,116,121,118,59],value:"∅"},{key:[101,109,115,112,49,51,59],value:" "},{key:[101,109,115,112,49,52,59],value:" "},{key:[101,109,115,112,59],value:" "},{key:[101,110,103,59],value:"ŋ"},{key:[101,110,115,112,59],value:" "},{key:[101,111,103,111,110,59],value:"ę"},{key:[101,111,112,102,59],value:"𝕖"},{key:[101,112,97,114,59],value:"⋕"},{key:[101,112,97,114,115,108,59],value:"⧣"},{key:[101,112,108,117,115,59],value:"⩱"},{key:[101,112,115,105,59],value:"ε"},{key:[101,112,115,105,108,111,110,59],value:"ε"},{key:[101,112,115,105,118,59],value:"ϵ"},{key:[101,113,99,105,114,99,59],value:"≖"},{key:[101,113,99,111,108,111,110,59],value:"≕"},{key:[101,113,115,105,109,59],value:"≂"},{key:[101,113,115,108,97,110,116,103,116,114,59],value:"⪖"},{key:[101,113,115,108,97,110,116,108,101,115,115,59],value:"⪕"},{key:[101,113,117,97,108,115,59],value:"="},{key:[101,113,117,101,115,116,59],value:"≟"},{key:[101,113,117,105,118,59],value:"≡"},{key:[101,113,117,105,118,68,68,59],value:"⩸"},{key:[101,113,118,112,97,114,115,108,59],value:"⧥"},{key:[101,114,68,111,116,59],value:"≓"},{key:[101,114,97,114,114,59],value:"⥱"},{key:[101,115,99,114,59],value:"ℯ"},{key:[101,115,100,111,116,59],value:"≐"},{key:[101,115,105,109,59],value:"≂"},{key:[101,116,97,59],value:"η"},{key:[101,116,104,59],value:"ð"},{key:[101,117,109,108,59],value:"ë"},{key:[101,117,114,111,59],value:"€"},{key:[101,120,99,108,59],value:"!"},{key:[101,120,105,115,116,59],value:"∃"},{key:[101,120,112,101,99,116,97,116,105,111,110,59],value:"ℰ"},{key:[101,120,112,111,110,101,110,116,105,97,108,101,59],value:"ⅇ"},{key:[102,97,108,108,105,110,103,100,111,116,115,101,113,59],value:"≒"},{key:[102,99,121,59],value:"ф"},{key:[102,101,109,97,108,101,59],value:"♀"},{key:[102,102,105,108,105,103,59],value:"ffi"},{key:[102,102,108,105,103,59],value:"ff"},{key:[102,102,108,108,105,103,59],value:"ffl"},{key:[102,102,114,59],value:"𝔣"},{key:[102,105,108,105,103,59],value:"fi"},{key:[102,106,108,105,103,59],value:"fj"},{key:[102,108,97,116,59],value:"♭"},{key:[102,108,108,105,103,59],value:"fl"},{key:[102,108,116,110,115,59],value:"▱"},{key:[102,110,111,102,59],value:"ƒ"},{key:[102,111,112,102,59],value:"𝕗"},{key:[102,111,114,97,108,108,59],value:"∀"},{key:[102,111,114,107,59],value:"⋔"},{key:[102,111,114,107,118,59],value:"⫙"},{key:[102,112,97,114,116,105,110,116,59],value:"⨍"},{key:[102,114,97,99,49,50,59],value:"½"},{key:[102,114,97,99,49,51,59],value:"⅓"},{key:[102,114,97,99,49,52,59],value:"¼"},{key:[102,114,97,99,49,53,59],value:"⅕"},{key:[102,114,97,99,49,54,59],value:"⅙"},{key:[102,114,97,99,49,56,59],value:"⅛"},{key:[102,114,97,99,50,51,59],value:"⅔"},{key:[102,114,97,99,50,53,59],value:"⅖"},{key:[102,114,97,99,51,52,59],value:"¾"},{key:[102,114,97,99,51,53,59],value:"⅗"},{key:[102,114,97,99,51,56,59],value:"⅜"},{key:[102,114,97,99,52,53,59],value:"⅘"},{key:[102,114,97,99,53,54,59],value:"⅚"},{key:[102,114,97,99,53,56,59],value:"⅝"},{key:[102,114,97,99,55,56,59],value:"⅞"},{key:[102,114,97,115,108,59],value:"⁄"},{key:[102,114,111,119,110,59],value:"⌢"},{key:[102,115,99,114,59],value:"𝒻"},{key:[103,69,59],value:"≧"},{key:[103,69,108,59],value:"⪌"},{key:[103,97,99,117,116,101,59],value:"ǵ"},{key:[103,97,109,109,97,59],value:"γ"},{key:[103,97,109,109,97,100,59],value:"ϝ"},{key:[103,97,112,59],value:"⪆"},{key:[103,98,114,101,118,101,59],value:"ğ"},{key:[103,99,105,114,99,59],value:"ĝ"},{key:[103,99,121,59],value:"г"},{key:[103,100,111,116,59],value:"ġ"},{key:[103,101,59],value:"≥"},{key:[103,101,108,59],value:"⋛"},{key:[103,101,113,59],value:"≥"},{key:[103,101,113,113,59],value:"≧"},{key:[103,101,113,115,108,97,110,116,59],value:"⩾"},{key:[103,101,115,59],value:"⩾"},{key:[103,101,115,99,99,59],value:"⪩"},{key:[103,101,115,100,111,116,59],value:"⪀"},{key:[103,101,115,100,111,116,111,59],value:"⪂"},{key:[103,101,115,100,111,116,111,108,59],value:"⪄"},{key:[103,101,115,108,59],value:"⋛︀"},{key:[103,101,115,108,101,115,59],value:"⪔"},{key:[103,102,114,59],value:"𝔤"},{key:[103,103,59],value:"≫"},{key:[103,103,103,59],value:"⋙"},{key:[103,105,109,101,108,59],value:"ℷ"},{key:[103,106,99,121,59],value:"ѓ"},{key:[103,108,59],value:"≷"},{key:[103,108,69,59],value:"⪒"},{key:[103,108,97,59],value:"⪥"},{key:[103,108,106,59],value:"⪤"},{key:[103,110,69,59],value:"≩"},{key:[103,110,97,112,59],value:"⪊"},{key:[103,110,97,112,112,114,111,120,59],value:"⪊"},{key:[103,110,101,59],value:"⪈"},{key:[103,110,101,113,59],value:"⪈"},{key:[103,110,101,113,113,59],value:"≩"},{key:[103,110,115,105,109,59],value:"⋧"},{key:[103,111,112,102,59],value:"𝕘"},{key:[103,114,97,118,101,59],value:"`"},{key:[103,115,99,114,59],value:"ℊ"},{key:[103,115,105,109,59],value:"≳"},{key:[103,115,105,109,101,59],value:"⪎"},{key:[103,115,105,109,108,59],value:"⪐"},{key:[103,116,59],value:">"},{key:[103,116,99,99,59],value:"⪧"},{key:[103,116,99,105,114,59],value:"⩺"},{key:[103,116,100,111,116,59],value:"⋗"},{key:[103,116,108,80,97,114,59],value:"⦕"},{key:[103,116,113,117,101,115,116,59],value:"⩼"},{key:[103,116,114,97,112,112,114,111,120,59],value:"⪆"},{key:[103,116,114,97,114,114,59],value:"⥸"},{key:[103,116,114,100,111,116,59],value:"⋗"},{key:[103,116,114,101,113,108,101,115,115,59],value:"⋛"},{key:[103,116,114,101,113,113,108,101,115,115,59],value:"⪌"},{key:[103,116,114,108,101,115,115,59],value:"≷"},{key:[103,116,114,115,105,109,59],value:"≳"},{key:[103,118,101,114,116,110,101,113,113,59],value:"≩︀"},{key:[103,118,110,69,59],value:"≩︀"},{key:[104,65,114,114,59],value:"⇔"},{key:[104,97,105,114,115,112,59],value:" "},{key:[104,97,108,102,59],value:"½"},{key:[104,97,109,105,108,116,59],value:"ℋ"},{key:[104,97,114,100,99,121,59],value:"ъ"},{key:[104,97,114,114,59],value:"↔"},{key:[104,97,114,114,99,105,114,59],value:"⥈"},{key:[104,97,114,114,119,59],value:"↭"},{key:[104,98,97,114,59],value:"ℏ"},{key:[104,99,105,114,99,59],value:"ĥ"},{key:[104,101,97,114,116,115,59],value:"♥"},{key:[104,101,97,114,116,115,117,105,116,59],value:"♥"},{key:[104,101,108,108,105,112,59],value:"…"},{key:[104,101,114,99,111,110,59],value:"⊹"},{key:[104,102,114,59],value:"𝔥"},{key:[104,107,115,101,97,114,111,119,59],value:"⤥"},{key:[104,107,115,119,97,114,111,119,59],value:"⤦"},{key:[104,111,97,114,114,59],value:"⇿"},{key:[104,111,109,116,104,116,59],value:"∻"},{key:[104,111,111,107,108,101,102,116,97,114,114,111,119,59],value:"↩"},{key:[104,111,111,107,114,105,103,104,116,97,114,114,111,119,59],value:"↪"},{key:[104,111,112,102,59],value:"𝕙"},{key:[104,111,114,98,97,114,59],value:"―"},{key:[104,115,99,114,59],value:"𝒽"},{key:[104,115,108,97,115,104,59],value:"ℏ"},{key:[104,115,116,114,111,107,59],value:"ħ"},{key:[104,121,98,117,108,108,59],value:"⁃"},{key:[104,121,112,104,101,110,59],value:"‐"},{key:[105,97,99,117,116,101,59],value:"í"},{key:[105,99,59],value:"⁣"},{key:[105,99,105,114,99,59],value:"î"},{key:[105,99,121,59],value:"и"},{key:[105,101,99,121,59],value:"е"},{key:[105,101,120,99,108,59],value:"¡"},{key:[105,102,102,59],value:"⇔"},{key:[105,102,114,59],value:"𝔦"},{key:[105,103,114,97,118,101,59],value:"ì"},{key:[105,105,59],value:"ⅈ"},{key:[105,105,105,105,110,116,59],value:"⨌"},{key:[105,105,105,110,116,59],value:"∭"},{key:[105,105,110,102,105,110,59],value:"⧜"},{key:[105,105,111,116,97,59],value:"℩"},{key:[105,106,108,105,103,59],value:"ij"},{key:[105,109,97,99,114,59],value:"ī"},{key:[105,109,97,103,101,59],value:"ℑ"},{key:[105,109,97,103,108,105,110,101,59],value:"ℐ"},{key:[105,109,97,103,112,97,114,116,59],value:"ℑ"},{key:[105,109,97,116,104,59],value:"ı"},{key:[105,109,111,102,59],value:"⊷"},{key:[105,109,112,101,100,59],value:"Ƶ"},{key:[105,110,59],value:"∈"},{key:[105,110,99,97,114,101,59],value:"℅"},{key:[105,110,102,105,110,59],value:"∞"},{key:[105,110,102,105,110,116,105,101,59],value:"⧝"},{key:[105,110,111,100,111,116,59],value:"ı"},{key:[105,110,116,59],value:"∫"},{key:[105,110,116,99,97,108,59],value:"⊺"},{key:[105,110,116,101,103,101,114,115,59],value:"ℤ"},{key:[105,110,116,101,114,99,97,108,59],value:"⊺"},{key:[105,110,116,108,97,114,104,107,59],value:"⨗"},{key:[105,110,116,112,114,111,100,59],value:"⨼"},{key:[105,111,99,121,59],value:"ё"},{key:[105,111,103,111,110,59],value:"į"},{key:[105,111,112,102,59],value:"𝕚"},{key:[105,111,116,97,59],value:"ι"},{key:[105,112,114,111,100,59],value:"⨼"},{key:[105,113,117,101,115,116,59],value:"¿"},{key:[105,115,99,114,59],value:"𝒾"},{key:[105,115,105,110,59],value:"∈"},{key:[105,115,105,110,69,59],value:"⋹"},{key:[105,115,105,110,100,111,116,59],value:"⋵"},{key:[105,115,105,110,115,59],value:"⋴"},{key:[105,115,105,110,115,118,59],value:"⋳"},{key:[105,115,105,110,118,59],value:"∈"},{key:[105,116,59],value:"⁢"},{key:[105,116,105,108,100,101,59],value:"ĩ"},{key:[105,117,107,99,121,59],value:"і"},{key:[105,117,109,108,59],value:"ï"},{key:[106,99,105,114,99,59],value:"ĵ"},{key:[106,99,121,59],value:"й"},{key:[106,102,114,59],value:"𝔧"},{key:[106,109,97,116,104,59],value:"ȷ"},{key:[106,111,112,102,59],value:"𝕛"},{key:[106,115,99,114,59],value:"𝒿"},{key:[106,115,101,114,99,121,59],value:"ј"},{key:[106,117,107,99,121,59],value:"є"},{key:[107,97,112,112,97,59],value:"κ"},{key:[107,97,112,112,97,118,59],value:"ϰ"},{key:[107,99,101,100,105,108,59],value:"ķ"},{key:[107,99,121,59],value:"к"},{key:[107,102,114,59],value:"𝔨"},{key:[107,103,114,101,101,110,59],value:"ĸ"},{key:[107,104,99,121,59],value:"х"},{key:[107,106,99,121,59],value:"ќ"},{key:[107,111,112,102,59],value:"𝕜"},{key:[107,115,99,114,59],value:"𝓀"},{key:[108,65,97,114,114,59],value:"⇚"},{key:[108,65,114,114,59],value:"⇐"},{key:[108,65,116,97,105,108,59],value:"⤛"},{key:[108,66,97,114,114,59],value:"⤎"},{key:[108,69,59],value:"≦"},{key:[108,69,103,59],value:"⪋"},{key:[108,72,97,114,59],value:"⥢"},{key:[108,97,99,117,116,101,59],value:"ĺ"},{key:[108,97,101,109,112,116,121,118,59],value:"⦴"},{key:[108,97,103,114,97,110,59],value:"ℒ"},{key:[108,97,109,98,100,97,59],value:"λ"},{key:[108,97,110,103,59],value:"⟨"},{key:[108,97,110,103,100,59],value:"⦑"},{key:[108,97,110,103,108,101,59],value:"⟨"},{key:[108,97,112,59],value:"⪅"},{key:[108,97,113,117,111,59],value:"«"},{key:[108,97,114,114,59],value:"←"},{key:[108,97,114,114,98,59],value:"⇤"},{key:[108,97,114,114,98,102,115,59],value:"⤟"},{key:[108,97,114,114,102,115,59],value:"⤝"},{key:[108,97,114,114,104,107,59],value:"↩"},{key:[108,97,114,114,108,112,59],value:"↫"},{key:[108,97,114,114,112,108,59],value:"⤹"},{key:[108,97,114,114,115,105,109,59],value:"⥳"},{key:[108,97,114,114,116,108,59],value:"↢"},{key:[108,97,116,59],value:"⪫"},{key:[108,97,116,97,105,108,59],value:"⤙"},{key:[108,97,116,101,59],value:"⪭"},{key:[108,97,116,101,115,59],value:"⪭︀"},{key:[108,98,97,114,114,59],value:"⤌"},{key:[108,98,98,114,107,59],value:"❲"},{key:[108,98,114,97,99,101,59],value:"{ "},{key:[108,98,114,97,99,107,59],value:"["},{key:[108,98,114,107,101,59],value:"⦋"},{key:[108,98,114,107,115,108,100,59],value:"⦏"},{key:[108,98,114,107,115,108,117,59],value:"⦍"},{key:[108,99,97,114,111,110,59],value:"ľ"},{key:[108,99,101,100,105,108,59],value:"ļ"},{key:[108,99,101,105,108,59],value:"⌈"},{key:[108,99,117,98,59],value:"{ "},{key:[108,99,121,59],value:"л"},{key:[108,100,99,97,59],value:"⤶"},{key:[108,100,113,117,111,59],value:"“"},{key:[108,100,113,117,111,114,59],value:"„"},{key:[108,100,114,100,104,97,114,59],value:"⥧"},{key:[108,100,114,117,115,104,97,114,59],value:"⥋"},{key:[108,100,115,104,59],value:"↲"},{key:[108,101,59],value:"≤"},{key:[108,101,102,116,97,114,114,111,119,59],value:"←"},{key:[108,101,102,116,97,114,114,111,119,116,97,105,108,59],value:"↢"},{key:[108,101,102,116,104,97,114,112,111,111,110,100,111,119,110,59],value:"↽"},{key:[108,101,102,116,104,97,114,112,111,111,110,117,112,59],value:"↼"},{key:[108,101,102,116,108,101,102,116,97,114,114,111,119,115,59],value:"⇇"},{key:[108,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"↔"},{key:[108,101,102,116,114,105,103,104,116,97,114,114,111,119,115,59],value:"⇆"},{key:[108,101,102,116,114,105,103,104,116,104,97,114,112,111,111,110,115,59],value:"⇋"},{key:[108,101,102,116,114,105,103,104,116,115,113,117,105,103,97,114,114,111,119,59],value:"↭"},{key:[108,101,102,116,116,104,114,101,101,116,105,109,101,115,59],value:"⋋"},{key:[108,101,103,59],value:"⋚"},{key:[108,101,113,59],value:"≤"},{key:[108,101,113,113,59],value:"≦"},{key:[108,101,113,115,108,97,110,116,59],value:"⩽"},{key:[108,101,115,59],value:"⩽"},{key:[108,101,115,99,99,59],value:"⪨"},{key:[108,101,115,100,111,116,59],value:"⩿"},{key:[108,101,115,100,111,116,111,59],value:"⪁"},{key:[108,101,115,100,111,116,111,114,59],value:"⪃"},{key:[108,101,115,103,59],value:"⋚︀"},{key:[108,101,115,103,101,115,59],value:"⪓"},{key:[108,101,115,115,97,112,112,114,111,120,59],value:"⪅"},{key:[108,101,115,115,100,111,116,59],value:"⋖"},{key:[108,101,115,115,101,113,103,116,114,59],value:"⋚"},{key:[108,101,115,115,101,113,113,103,116,114,59],value:"⪋"},{key:[108,101,115,115,103,116,114,59],value:"≶"},{key:[108,101,115,115,115,105,109,59],value:"≲"},{key:[108,102,105,115,104,116,59],value:"⥼"},{key:[108,102,108,111,111,114,59],value:"⌊"},{key:[108,102,114,59],value:"𝔩"},{key:[108,103,59],value:"≶"},{key:[108,103,69,59],value:"⪑"},{key:[108,104,97,114,100,59],value:"↽"},{key:[108,104,97,114,117,59],value:"↼"},{key:[108,104,97,114,117,108,59],value:"⥪"},{key:[108,104,98,108,107,59],value:"▄"},{key:[108,106,99,121,59],value:"љ"},{key:[108,108,59],value:"≪"},{key:[108,108,97,114,114,59],value:"⇇"},{key:[108,108,99,111,114,110,101,114,59],value:"⌞"},{key:[108,108,104,97,114,100,59],value:"⥫"},{key:[108,108,116,114,105,59],value:"◺"},{key:[108,109,105,100,111,116,59],value:"ŀ"},{key:[108,109,111,117,115,116,59],value:"⎰"},{key:[108,109,111,117,115,116,97,99,104,101,59],value:"⎰"},{key:[108,110,69,59],value:"≨"},{key:[108,110,97,112,59],value:"⪉"},{key:[108,110,97,112,112,114,111,120,59],value:"⪉"},{key:[108,110,101,59],value:"⪇"},{key:[108,110,101,113,59],value:"⪇"},{key:[108,110,101,113,113,59],value:"≨"},{key:[108,110,115,105,109,59],value:"⋦"},{key:[108,111,97,110,103,59],value:"⟬"},{key:[108,111,97,114,114,59],value:"⇽"},{key:[108,111,98,114,107,59],value:"⟦"},{key:[108,111,110,103,108,101,102,116,97,114,114,111,119,59],value:"⟵"},{key:[108,111,110,103,108,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⟷"},{key:[108,111,110,103,109,97,112,115,116,111,59],value:"⟼"},{key:[108,111,110,103,114,105,103,104,116,97,114,114,111,119,59],value:"⟶"},{key:[108,111,111,112,97,114,114,111,119,108,101,102,116,59],value:"↫"},{key:[108,111,111,112,97,114,114,111,119,114,105,103,104,116,59],value:"↬"},{key:[108,111,112,97,114,59],value:"⦅"},{key:[108,111,112,102,59],value:"𝕝"},{key:[108,111,112,108,117,115,59],value:"⨭"},{key:[108,111,116,105,109,101,115,59],value:"⨴"},{key:[108,111,119,97,115,116,59],value:"∗"},{key:[108,111,119,98,97,114,59],value:"_"},{key:[108,111,122,59],value:"◊"},{key:[108,111,122,101,110,103,101,59],value:"◊"},{key:[108,111,122,102,59],value:"⧫"},{key:[108,112,97,114,59],value:"("},{key:[108,112,97,114,108,116,59],value:"⦓"},{key:[108,114,97,114,114,59],value:"⇆"},{key:[108,114,99,111,114,110,101,114,59],value:"⌟"},{key:[108,114,104,97,114,59],value:"⇋"},{key:[108,114,104,97,114,100,59],value:"⥭"},{key:[108,114,109,59],value:"‎"},{key:[108,114,116,114,105,59],value:"⊿"},{key:[108,115,97,113,117,111,59],value:"‹"},{key:[108,115,99,114,59],value:"𝓁"},{key:[108,115,104,59],value:"↰"},{key:[108,115,105,109,59],value:"≲"},{key:[108,115,105,109,101,59],value:"⪍"},{key:[108,115,105,109,103,59],value:"⪏"},{key:[108,115,113,98,59],value:"["},{key:[108,115,113,117,111,59],value:"‘"},{key:[108,115,113,117,111,114,59],value:"‚"},{key:[108,115,116,114,111,107,59],value:"ł"},{key:[108,116,59],value:"<"},{key:[108,116,99,99,59],value:"⪦"},{key:[108,116,99,105,114,59],value:"⩹"},{key:[108,116,100,111,116,59],value:"⋖"},{key:[108,116,104,114,101,101,59],value:"⋋"},{key:[108,116,105,109,101,115,59],value:"⋉"},{key:[108,116,108,97,114,114,59],value:"⥶"},{key:[108,116,113,117,101,115,116,59],value:"⩻"},{key:[108,116,114,80,97,114,59],value:"⦖"},{key:[108,116,114,105,59],value:"◃"},{key:[108,116,114,105,101,59],value:"⊴"},{key:[108,116,114,105,102,59],value:"◂"},{key:[108,117,114,100,115,104,97,114,59],value:"⥊"},{key:[108,117,114,117,104,97,114,59],value:"⥦"},{key:[108,118,101,114,116,110,101,113,113,59],value:"≨︀"},{key:[108,118,110,69,59],value:"≨︀"},{key:[109,68,68,111,116,59],value:"∺"},{key:[109,97,99,114,59],value:"¯"},{key:[109,97,108,101,59],value:"♂"},{key:[109,97,108,116,59],value:"✠"},{key:[109,97,108,116,101,115,101,59],value:"✠"},{key:[109,97,112,59],value:"↦"},{key:[109,97,112,115,116,111,59],value:"↦"},{key:[109,97,112,115,116,111,100,111,119,110,59],value:"↧"},{key:[109,97,112,115,116,111,108,101,102,116,59],value:"↤"},{key:[109,97,112,115,116,111,117,112,59],value:"↥"},{key:[109,97,114,107,101,114,59],value:"▮"},{key:[109,99,111,109,109,97,59],value:"⨩"},{key:[109,99,121,59],value:"м"},{key:[109,100,97,115,104,59],value:"—"},{key:[109,101,97,115,117,114,101,100,97,110,103,108,101,59],value:"∡"},{key:[109,102,114,59],value:"𝔪"},{key:[109,104,111,59],value:"℧"},{key:[109,105,99,114,111,59],value:"µ"},{key:[109,105,100,59],value:"∣"},{key:[109,105,100,97,115,116,59],value:"*"},{key:[109,105,100,99,105,114,59],value:"⫰"},{key:[109,105,100,100,111,116,59],value:"·"},{key:[109,105,110,117,115,59],value:"−"},{key:[109,105,110,117,115,98,59],value:"⊟"},{key:[109,105,110,117,115,100,59],value:"∸"},{key:[109,105,110,117,115,100,117,59],value:"⨪"},{key:[109,108,99,112,59],value:"⫛"},{key:[109,108,100,114,59],value:"…"},{key:[109,110,112,108,117,115,59],value:"∓"},{key:[109,111,100,101,108,115,59],value:"⊧"},{key:[109,111,112,102,59],value:"𝕞"},{key:[109,112,59],value:"∓"},{key:[109,115,99,114,59],value:"𝓂"},{key:[109,115,116,112,111,115,59],value:"∾"},{key:[109,117,59],value:"μ"},{key:[109,117,108,116,105,109,97,112,59],value:"⊸"},{key:[109,117,109,97,112,59],value:"⊸"},{key:[110,71,103,59],value:"⋙̸"},{key:[110,71,116,59],value:"≫⃒"},{key:[110,71,116,118,59],value:"≫̸"},{key:[110,76,101,102,116,97,114,114,111,119,59],value:"⇍"},{key:[110,76,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⇎"},{key:[110,76,108,59],value:"⋘̸"},{key:[110,76,116,59],value:"≪⃒"},{key:[110,76,116,118,59],value:"≪̸"},{key:[110,82,105,103,104,116,97,114,114,111,119,59],value:"⇏"},{key:[110,86,68,97,115,104,59],value:"⊯"},{key:[110,86,100,97,115,104,59],value:"⊮"},{key:[110,97,98,108,97,59],value:"∇"},{key:[110,97,99,117,116,101,59],value:"ń"},{key:[110,97,110,103,59],value:"∠⃒"},{key:[110,97,112,59],value:"≉"},{key:[110,97,112,69,59],value:"⩰̸"},{key:[110,97,112,105,100,59],value:"≋̸"},{key:[110,97,112,111,115,59],value:"ʼn"},{key:[110,97,112,112,114,111,120,59],value:"≉"},{key:[110,97,116,117,114,59],value:"♮"},{key:[110,97,116,117,114,97,108,59],value:"♮"},{key:[110,97,116,117,114,97,108,115,59],value:"ℕ"},{key:[110,98,115,112,59],value:" "},{key:[110,98,117,109,112,59],value:"≎̸"},{key:[110,98,117,109,112,101,59],value:"≏̸"},{key:[110,99,97,112,59],value:"⩃"},{key:[110,99,97,114,111,110,59],value:"ň"},{key:[110,99,101,100,105,108,59],value:"ņ"},{key:[110,99,111,110,103,59],value:"≇"},{key:[110,99,111,110,103,100,111,116,59],value:"⩭̸"},{key:[110,99,117,112,59],value:"⩂"},{key:[110,99,121,59],value:"н"},{key:[110,100,97,115,104,59],value:"–"},{key:[110,101,59],value:"≠"},{key:[110,101,65,114,114,59],value:"⇗"},{key:[110,101,97,114,104,107,59],value:"⤤"},{key:[110,101,97,114,114,59],value:"↗"},{key:[110,101,97,114,114,111,119,59],value:"↗"},{key:[110,101,100,111,116,59],value:"≐̸"},{key:[110,101,113,117,105,118,59],value:"≢"},{key:[110,101,115,101,97,114,59],value:"⤨"},{key:[110,101,115,105,109,59],value:"≂̸"},{key:[110,101,120,105,115,116,59],value:"∄"},{key:[110,101,120,105,115,116,115,59],value:"∄"},{key:[110,102,114,59],value:"𝔫"},{key:[110,103,69,59],value:"≧̸"},{key:[110,103,101,59],value:"≱"},{key:[110,103,101,113,59],value:"≱"},{key:[110,103,101,113,113,59],value:"≧̸"},{key:[110,103,101,113,115,108,97,110,116,59],value:"⩾̸"},{key:[110,103,101,115,59],value:"⩾̸"},{key:[110,103,115,105,109,59],value:"≵"},{key:[110,103,116,59],value:"≯"},{key:[110,103,116,114,59],value:"≯"},{key:[110,104,65,114,114,59],value:"⇎"},{key:[110,104,97,114,114,59],value:"↮"},{key:[110,104,112,97,114,59],value:"⫲"},{key:[110,105,59],value:"∋"},{key:[110,105,115,59],value:"⋼"},{key:[110,105,115,100,59],value:"⋺"},{key:[110,105,118,59],value:"∋"},{key:[110,106,99,121,59],value:"њ"},{key:[110,108,65,114,114,59],value:"⇍"},{key:[110,108,69,59],value:"≦̸"},{key:[110,108,97,114,114,59],value:"↚"},{key:[110,108,100,114,59],value:"‥"},{key:[110,108,101,59],value:"≰"},{key:[110,108,101,102,116,97,114,114,111,119,59],value:"↚"},{key:[110,108,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"↮"},{key:[110,108,101,113,59],value:"≰"},{key:[110,108,101,113,113,59],value:"≦̸"},{key:[110,108,101,113,115,108,97,110,116,59],value:"⩽̸"},{key:[110,108,101,115,59],value:"⩽̸"},{key:[110,108,101,115,115,59],value:"≮"},{key:[110,108,115,105,109,59],value:"≴"},{key:[110,108,116,59],value:"≮"},{key:[110,108,116,114,105,59],value:"⋪"},{key:[110,108,116,114,105,101,59],value:"⋬"},{key:[110,109,105,100,59],value:"∤"},{key:[110,111,112,102,59],value:"𝕟"},{key:[110,111,116,59],value:"¬"},{key:[110,111,116,105,110,59],value:"∉"},{key:[110,111,116,105,110,69,59],value:"⋹̸"},{key:[110,111,116,105,110,100,111,116,59],value:"⋵̸"},{key:[110,111,116,105,110,118,97,59],value:"∉"},{key:[110,111,116,105,110,118,98,59],value:"⋷"},{key:[110,111,116,105,110,118,99,59],value:"⋶"},{key:[110,111,116,110,105,59],value:"∌"},{key:[110,111,116,110,105,118,97,59],value:"∌"},{key:[110,111,116,110,105,118,98,59],value:"⋾"},{key:[110,111,116,110,105,118,99,59],value:"⋽"},{key:[110,112,97,114,59],value:"∦"},{key:[110,112,97,114,97,108,108,101,108,59],value:"∦"},{key:[110,112,97,114,115,108,59],value:"⫽⃥"},{key:[110,112,97,114,116,59],value:"∂̸"},{key:[110,112,111,108,105,110,116,59],value:"⨔"},{key:[110,112,114,59],value:"⊀"},{key:[110,112,114,99,117,101,59],value:"⋠"},{key:[110,112,114,101,59],value:"⪯̸"},{key:[110,112,114,101,99,59],value:"⊀"},{key:[110,112,114,101,99,101,113,59],value:"⪯̸"},{key:[110,114,65,114,114,59],value:"⇏"},{key:[110,114,97,114,114,59],value:"↛"},{key:[110,114,97,114,114,99,59],value:"⤳̸"},{key:[110,114,97,114,114,119,59],value:"↝̸"},{key:[110,114,105,103,104,116,97,114,114,111,119,59],value:"↛"},{key:[110,114,116,114,105,59],value:"⋫"},{key:[110,114,116,114,105,101,59],value:"⋭"},{key:[110,115,99,59],value:"⊁"},{key:[110,115,99,99,117,101,59],value:"⋡"},{key:[110,115,99,101,59],value:"⪰̸"},{key:[110,115,99,114,59],value:"𝓃"},{key:[110,115,104,111,114,116,109,105,100,59],value:"∤"},{key:[110,115,104,111,114,116,112,97,114,97,108,108,101,108,59],value:"∦"},{key:[110,115,105,109,59],value:"≁"},{key:[110,115,105,109,101,59],value:"≄"},{key:[110,115,105,109,101,113,59],value:"≄"},{key:[110,115,109,105,100,59],value:"∤"},{key:[110,115,112,97,114,59],value:"∦"},{key:[110,115,113,115,117,98,101,59],value:"⋢"},{key:[110,115,113,115,117,112,101,59],value:"⋣"},{key:[110,115,117,98,59],value:"⊄"},{key:[110,115,117,98,69,59],value:"⫅̸"},{key:[110,115,117,98,101,59],value:"⊈"},{key:[110,115,117,98,115,101,116,59],value:"⊂⃒"},{key:[110,115,117,98,115,101,116,101,113,59],value:"⊈"},{key:[110,115,117,98,115,101,116,101,113,113,59],value:"⫅̸"},{key:[110,115,117,99,99,59],value:"⊁"},{key:[110,115,117,99,99,101,113,59],value:"⪰̸"},{key:[110,115,117,112,59],value:"⊅"},{key:[110,115,117,112,69,59],value:"⫆̸"},{key:[110,115,117,112,101,59],value:"⊉"},{key:[110,115,117,112,115,101,116,59],value:"⊃⃒"},{key:[110,115,117,112,115,101,116,101,113,59],value:"⊉"},{key:[110,115,117,112,115,101,116,101,113,113,59],value:"⫆̸"},{key:[110,116,103,108,59],value:"≹"},{key:[110,116,105,108,100,101,59],value:"ñ"},{key:[110,116,108,103,59],value:"≸"},{key:[110,116,114,105,97,110,103,108,101,108,101,102,116,59],value:"⋪"},{key:[110,116,114,105,97,110,103,108,101,108,101,102,116,101,113,59],value:"⋬"},{key:[110,116,114,105,97,110,103,108,101,114,105,103,104,116,59],value:"⋫"},{key:[110,116,114,105,97,110,103,108,101,114,105,103,104,116,101,113,59],value:"⋭"},{key:[110,117,59],value:"ν"},{key:[110,117,109,59],value:"#"},{key:[110,117,109,101,114,111,59],value:"№"},{key:[110,117,109,115,112,59],value:" "},{key:[110,118,68,97,115,104,59],value:"⊭"},{key:[110,118,72,97,114,114,59],value:"⤄"},{key:[110,118,97,112,59],value:"≍⃒"},{key:[110,118,100,97,115,104,59],value:"⊬"},{key:[110,118,103,101,59],value:"≥⃒"},{key:[110,118,103,116,59],value:">⃒"},{key:[110,118,105,110,102,105,110,59],value:"⧞"},{key:[110,118,108,65,114,114,59],value:"⤂"},{key:[110,118,108,101,59],value:"≤⃒"},{key:[110,118,108,116,59],value:"<⃒"},{key:[110,118,108,116,114,105,101,59],value:"⊴⃒"},{key:[110,118,114,65,114,114,59],value:"⤃"},{key:[110,118,114,116,114,105,101,59],value:"⊵⃒"},{key:[110,118,115,105,109,59],value:"∼⃒"},{key:[110,119,65,114,114,59],value:"⇖"},{key:[110,119,97,114,104,107,59],value:"⤣"},{key:[110,119,97,114,114,59],value:"↖"},{key:[110,119,97,114,114,111,119,59],value:"↖"},{key:[110,119,110,101,97,114,59],value:"⤧"},{key:[111,83,59],value:"Ⓢ"},{key:[111,97,99,117,116,101,59],value:"ó"},{key:[111,97,115,116,59],value:"⊛"},{key:[111,99,105,114,59],value:"⊚"},{key:[111,99,105,114,99,59],value:"ô"},{key:[111,99,121,59],value:"о"},{key:[111,100,97,115,104,59],value:"⊝"},{key:[111,100,98,108,97,99,59],value:"ő"},{key:[111,100,105,118,59],value:"⨸"},{key:[111,100,111,116,59],value:"⊙"},{key:[111,100,115,111,108,100,59],value:"⦼"},{key:[111,101,108,105,103,59],value:"œ"},{key:[111,102,99,105,114,59],value:"⦿"},{key:[111,102,114,59],value:"𝔬"},{key:[111,103,111,110,59],value:"˛"},{key:[111,103,114,97,118,101,59],value:"ò"},{key:[111,103,116,59],value:"⧁"},{key:[111,104,98,97,114,59],value:"⦵"},{key:[111,104,109,59],value:"Ω"},{key:[111,105,110,116,59],value:"∮"},{key:[111,108,97,114,114,59],value:"↺"},{key:[111,108,99,105,114,59],value:"⦾"},{key:[111,108,99,114,111,115,115,59],value:"⦻"},{key:[111,108,105,110,101,59],value:"‾"},{key:[111,108,116,59],value:"⧀"},{key:[111,109,97,99,114,59],value:"ō"},{key:[111,109,101,103,97,59],value:"ω"},{key:[111,109,105,99,114,111,110,59],value:"ο"},{key:[111,109,105,100,59],value:"⦶"},{key:[111,109,105,110,117,115,59],value:"⊖"},{key:[111,111,112,102,59],value:"𝕠"},{key:[111,112,97,114,59],value:"⦷"},{key:[111,112,101,114,112,59],value:"⦹"},{key:[111,112,108,117,115,59],value:"⊕"},{key:[111,114,59],value:"∨"},{key:[111,114,97,114,114,59],value:"↻"},{key:[111,114,100,59],value:"⩝"},{key:[111,114,100,101,114,59],value:"ℴ"},{key:[111,114,100,101,114,111,102,59],value:"ℴ"},{key:[111,114,100,102,59],value:"ª"},{key:[111,114,100,109,59],value:"º"},{key:[111,114,105,103,111,102,59],value:"⊶"},{key:[111,114,111,114,59],value:"⩖"},{key:[111,114,115,108,111,112,101,59],value:"⩗"},{key:[111,114,118,59],value:"⩛"},{key:[111,115,99,114,59],value:"ℴ"},{key:[111,115,108,97,115,104,59],value:"ø"},{key:[111,115,111,108,59],value:"⊘"},{key:[111,116,105,108,100,101,59],value:"õ"},{key:[111,116,105,109,101,115,59],value:"⊗"},{key:[111,116,105,109,101,115,97,115,59],value:"⨶"},{key:[111,117,109,108,59],value:"ö"},{key:[111,118,98,97,114,59],value:"⌽"},{key:[112,97,114,59],value:"∥"},{key:[112,97,114,97,59],value:"¶"},{key:[112,97,114,97,108,108,101,108,59],value:"∥"},{key:[112,97,114,115,105,109,59],value:"⫳"},{key:[112,97,114,115,108,59],value:"⫽"},{key:[112,97,114,116,59],value:"∂"},{key:[112,99,121,59],value:"п"},{key:[112,101,114,99,110,116,59],value:"%"},{key:[112,101,114,105,111,100,59],value:"."},{key:[112,101,114,109,105,108,59],value:"‰"},{key:[112,101,114,112,59],value:"⊥"},{key:[112,101,114,116,101,110,107,59],value:"‱"},{key:[112,102,114,59],value:"𝔭"},{key:[112,104,105,59],value:"φ"},{key:[112,104,105,118,59],value:"ϕ"},{key:[112,104,109,109,97,116,59],value:"ℳ"},{key:[112,104,111,110,101,59],value:"☎"},{key:[112,105,59],value:"π"},{key:[112,105,116,99,104,102,111,114,107,59],value:"⋔"},{key:[112,105,118,59],value:"ϖ"},{key:[112,108,97,110,99,107,59],value:"ℏ"},{key:[112,108,97,110,99,107,104,59],value:"ℎ"},{key:[112,108,97,110,107,118,59],value:"ℏ"},{key:[112,108,117,115,59],value:"+"},{key:[112,108,117,115,97,99,105,114,59],value:"⨣"},{key:[112,108,117,115,98,59],value:"⊞"},{key:[112,108,117,115,99,105,114,59],value:"⨢"},{key:[112,108,117,115,100,111,59],value:"∔"},{key:[112,108,117,115,100,117,59],value:"⨥"},{key:[112,108,117,115,101,59],value:"⩲"},{key:[112,108,117,115,109,110,59],value:"±"},{key:[112,108,117,115,115,105,109,59],value:"⨦"},{key:[112,108,117,115,116,119,111,59],value:"⨧"},{key:[112,109,59],value:"±"},{key:[112,111,105,110,116,105,110,116,59],value:"⨕"},{key:[112,111,112,102,59],value:"𝕡"},{key:[112,111,117,110,100,59],value:"£"},{key:[112,114,59],value:"≺"},{key:[112,114,69,59],value:"⪳"},{key:[112,114,97,112,59],value:"⪷"},{key:[112,114,99,117,101,59],value:"≼"},{key:[112,114,101,59],value:"⪯"},{key:[112,114,101,99,59],value:"≺"},{key:[112,114,101,99,97,112,112,114,111,120,59],value:"⪷"},{key:[112,114,101,99,99,117,114,108,121,101,113,59],value:"≼"},{key:[112,114,101,99,101,113,59],value:"⪯"},{key:[112,114,101,99,110,97,112,112,114,111,120,59],value:"⪹"},{key:[112,114,101,99,110,101,113,113,59],value:"⪵"},{key:[112,114,101,99,110,115,105,109,59],value:"⋨"},{key:[112,114,101,99,115,105,109,59],value:"≾"},{key:[112,114,105,109,101,59],value:"′"},{key:[112,114,105,109,101,115,59],value:"ℙ"},{key:[112,114,110,69,59],value:"⪵"},{key:[112,114,110,97,112,59],value:"⪹"},{key:[112,114,110,115,105,109,59],value:"⋨"},{key:[112,114,111,100,59],value:"∏"},{key:[112,114,111,102,97,108,97,114,59],value:"⌮"},{key:[112,114,111,102,108,105,110,101,59],value:"⌒"},{key:[112,114,111,102,115,117,114,102,59],value:"⌓"},{key:[112,114,111,112,59],value:"∝"},{key:[112,114,111,112,116,111,59],value:"∝"},{key:[112,114,115,105,109,59],value:"≾"},{key:[112,114,117,114,101,108,59],value:"⊰"},{key:[112,115,99,114,59],value:"𝓅"},{key:[112,115,105,59],value:"ψ"},{key:[112,117,110,99,115,112,59],value:" "},{key:[113,102,114,59],value:"𝔮"},{key:[113,105,110,116,59],value:"⨌"},{key:[113,111,112,102,59],value:"𝕢"},{key:[113,112,114,105,109,101,59],value:"⁗"},{key:[113,115,99,114,59],value:"𝓆"},{key:[113,117,97,116,101,114,110,105,111,110,115,59],value:"ℍ"},{key:[113,117,97,116,105,110,116,59],value:"⨖"},{key:[113,117,101,115,116,59],value:"?"},{key:[113,117,101,115,116,101,113,59],value:"≟"},{key:[113,117,111,116,59],value:'"'},{key:[114,65,97,114,114,59],value:"⇛"},{key:[114,65,114,114,59],value:"⇒"},{key:[114,65,116,97,105,108,59],value:"⤜"},{key:[114,66,97,114,114,59],value:"⤏"},{key:[114,72,97,114,59],value:"⥤"},{key:[114,97,99,101,59],value:"∽̱"},{key:[114,97,99,117,116,101,59],value:"ŕ"},{key:[114,97,100,105,99,59],value:"√"},{key:[114,97,101,109,112,116,121,118,59],value:"⦳"},{key:[114,97,110,103,59],value:"⟩"},{key:[114,97,110,103,100,59],value:"⦒"},{key:[114,97,110,103,101,59],value:"⦥"},{key:[114,97,110,103,108,101,59],value:"⟩"},{key:[114,97,113,117,111,59],value:"»"},{key:[114,97,114,114,59],value:"→"},{key:[114,97,114,114,97,112,59],value:"⥵"},{key:[114,97,114,114,98,59],value:"⇥"},{key:[114,97,114,114,98,102,115,59],value:"⤠"},{key:[114,97,114,114,99,59],value:"⤳"},{key:[114,97,114,114,102,115,59],value:"⤞"},{key:[114,97,114,114,104,107,59],value:"↪"},{key:[114,97,114,114,108,112,59],value:"↬"},{key:[114,97,114,114,112,108,59],value:"⥅"},{key:[114,97,114,114,115,105,109,59],value:"⥴"},{key:[114,97,114,114,116,108,59],value:"↣"},{key:[114,97,114,114,119,59],value:"↝"},{key:[114,97,116,97,105,108,59],value:"⤚"},{key:[114,97,116,105,111,59],value:"∶"},{key:[114,97,116,105,111,110,97,108,115,59],value:"ℚ"},{key:[114,98,97,114,114,59],value:"⤍"},{key:[114,98,98,114,107,59],value:"❳"},{key:[114,98,114,97,99,101,59],value:" }"},{key:[114,98,114,97,99,107,59],value:"]"},{key:[114,98,114,107,101,59],value:"⦌"},{key:[114,98,114,107,115,108,100,59],value:"⦎"},{key:[114,98,114,107,115,108,117,59],value:"⦐"},{key:[114,99,97,114,111,110,59],value:"ř"},{key:[114,99,101,100,105,108,59],value:"ŗ"},{key:[114,99,101,105,108,59],value:"⌉"},{key:[114,99,117,98,59],value:" }"},{key:[114,99,121,59],value:"р"},{key:[114,100,99,97,59],value:"⤷"},{key:[114,100,108,100,104,97,114,59],value:"⥩"},{key:[114,100,113,117,111,59],value:"”"},{key:[114,100,113,117,111,114,59],value:"”"},{key:[114,100,115,104,59],value:"↳"},{key:[114,101,97,108,59],value:"ℜ"},{key:[114,101,97,108,105,110,101,59],value:"ℛ"},{key:[114,101,97,108,112,97,114,116,59],value:"ℜ"},{key:[114,101,97,108,115,59],value:"ℝ"},{key:[114,101,99,116,59],value:"▭"},{key:[114,101,103,59],value:"®"},{key:[114,102,105,115,104,116,59],value:"⥽"},{key:[114,102,108,111,111,114,59],value:"⌋"},{key:[114,102,114,59],value:"𝔯"},{key:[114,104,97,114,100,59],value:"⇁"},{key:[114,104,97,114,117,59],value:"⇀"},{key:[114,104,97,114,117,108,59],value:"⥬"},{key:[114,104,111,59],value:"ρ"},{key:[114,104,111,118,59],value:"ϱ"},{key:[114,105,103,104,116,97,114,114,111,119,59],value:"→"},{key:[114,105,103,104,116,97,114,114,111,119,116,97,105,108,59],value:"↣"},{key:[114,105,103,104,116,104,97,114,112,111,111,110,100,111,119,110,59],value:"⇁"},{key:[114,105,103,104,116,104,97,114,112,111,111,110,117,112,59],value:"⇀"},{key:[114,105,103,104,116,108,101,102,116,97,114,114,111,119,115,59],value:"⇄"},{key:[114,105,103,104,116,108,101,102,116,104,97,114,112,111,111,110,115,59],value:"⇌"},{key:[114,105,103,104,116,114,105,103,104,116,97,114,114,111,119,115,59],value:"⇉"},{key:[114,105,103,104,116,115,113,117,105,103,97,114,114,111,119,59],value:"↝"},{key:[114,105,103,104,116,116,104,114,101,101,116,105,109,101,115,59],value:"⋌"},{key:[114,105,110,103,59],value:"˚"},{key:[114,105,115,105,110,103,100,111,116,115,101,113,59],value:"≓"},{key:[114,108,97,114,114,59],value:"⇄"},{key:[114,108,104,97,114,59],value:"⇌"},{key:[114,108,109,59],value:"‏"},{key:[114,109,111,117,115,116,59],value:"⎱"},{key:[114,109,111,117,115,116,97,99,104,101,59],value:"⎱"},{key:[114,110,109,105,100,59],value:"⫮"},{key:[114,111,97,110,103,59],value:"⟭"},{key:[114,111,97,114,114,59],value:"⇾"},{key:[114,111,98,114,107,59],value:"⟧"},{key:[114,111,112,97,114,59],value:"⦆"},{key:[114,111,112,102,59],value:"𝕣"},{key:[114,111,112,108,117,115,59],value:"⨮"},{key:[114,111,116,105,109,101,115,59],value:"⨵"},{key:[114,112,97,114,59],value:")"},{key:[114,112,97,114,103,116,59],value:"⦔"},{key:[114,112,112,111,108,105,110,116,59],value:"⨒"},{key:[114,114,97,114,114,59],value:"⇉"},{key:[114,115,97,113,117,111,59],value:"›"},{key:[114,115,99,114,59],value:"𝓇"},{key:[114,115,104,59],value:"↱"},{key:[114,115,113,98,59],value:"]"},{key:[114,115,113,117,111,59],value:"’"},{key:[114,115,113,117,111,114,59],value:"’"},{key:[114,116,104,114,101,101,59],value:"⋌"},{key:[114,116,105,109,101,115,59],value:"⋊"},{key:[114,116,114,105,59],value:"▹"},{key:[114,116,114,105,101,59],value:"⊵"},{key:[114,116,114,105,102,59],value:"▸"},{key:[114,116,114,105,108,116,114,105,59],value:"⧎"},{key:[114,117,108,117,104,97,114,59],value:"⥨"},{key:[114,120,59],value:"℞"},{key:[115,97,99,117,116,101,59],value:"ś"},{key:[115,98,113,117,111,59],value:"‚"},{key:[115,99,59],value:"≻"},{key:[115,99,69,59],value:"⪴"},{key:[115,99,97,112,59],value:"⪸"},{key:[115,99,97,114,111,110,59],value:"š"},{key:[115,99,99,117,101,59],value:"≽"},{key:[115,99,101,59],value:"⪰"},{key:[115,99,101,100,105,108,59],value:"ş"},{key:[115,99,105,114,99,59],value:"ŝ"},{key:[115,99,110,69,59],value:"⪶"},{key:[115,99,110,97,112,59],value:"⪺"},{key:[115,99,110,115,105,109,59],value:"⋩"},{key:[115,99,112,111,108,105,110,116,59],value:"⨓"},{key:[115,99,115,105,109,59],value:"≿"},{key:[115,99,121,59],value:"с"},{key:[115,100,111,116,59],value:"⋅"},{key:[115,100,111,116,98,59],value:"⊡"},{key:[115,100,111,116,101,59],value:"⩦"},{key:[115,101,65,114,114,59],value:"⇘"},{key:[115,101,97,114,104,107,59],value:"⤥"},{key:[115,101,97,114,114,59],value:"↘"},{key:[115,101,97,114,114,111,119,59],value:"↘"},{key:[115,101,99,116,59],value:"§"},{key:[115,101,109,105,59],value:";"},{key:[115,101,115,119,97,114,59],value:"⤩"},{key:[115,101,116,109,105,110,117,115,59],value:"∖"},{key:[115,101,116,109,110,59],value:"∖"},{key:[115,101,120,116,59],value:"✶"},{key:[115,102,114,59],value:"𝔰"},{key:[115,102,114,111,119,110,59],value:"⌢"},{key:[115,104,97,114,112,59],value:"♯"},{key:[115,104,99,104,99,121,59],value:"щ"},{key:[115,104,99,121,59],value:"ш"},{key:[115,104,111,114,116,109,105,100,59],value:"∣"},{key:[115,104,111,114,116,112,97,114,97,108,108,101,108,59],value:"∥"},{key:[115,104,121,59],value:"­"},{key:[115,105,103,109,97,59],value:"σ"},{key:[115,105,103,109,97,102,59],value:"ς"},{key:[115,105,103,109,97,118,59],value:"ς"},{key:[115,105,109,59],value:"∼"},{key:[115,105,109,100,111,116,59],value:"⩪"},{key:[115,105,109,101,59],value:"≃"},{key:[115,105,109,101,113,59],value:"≃"},{key:[115,105,109,103,59],value:"⪞"},{key:[115,105,109,103,69,59],value:"⪠"},{key:[115,105,109,108,59],value:"⪝"},{key:[115,105,109,108,69,59],value:"⪟"},{key:[115,105,109,110,101,59],value:"≆"},{key:[115,105,109,112,108,117,115,59],value:"⨤"},{key:[115,105,109,114,97,114,114,59],value:"⥲"},{key:[115,108,97,114,114,59],value:"←"},{key:[115,109,97,108,108,115,101,116,109,105,110,117,115,59],value:"∖"},{key:[115,109,97,115,104,112,59],value:"⨳"},{key:[115,109,101,112,97,114,115,108,59],value:"⧤"},{key:[115,109,105,100,59],value:"∣"},{key:[115,109,105,108,101,59],value:"⌣"},{key:[115,109,116,59],value:"⪪"},{key:[115,109,116,101,59],value:"⪬"},{key:[115,109,116,101,115,59],value:"⪬︀"},{key:[115,111,102,116,99,121,59],value:"ь"},{key:[115,111,108,59],value:"/"},{key:[115,111,108,98,59],value:"⧄"},{key:[115,111,108,98,97,114,59],value:"⌿"},{key:[115,111,112,102,59],value:"𝕤"},{key:[115,112,97,100,101,115,59],value:"♠"},{key:[115,112,97,100,101,115,117,105,116,59],value:"♠"},{key:[115,112,97,114,59],value:"∥"},{key:[115,113,99,97,112,59],value:"⊓"},{key:[115,113,99,97,112,115,59],value:"⊓︀"},{key:[115,113,99,117,112,59],value:"⊔"},{key:[115,113,99,117,112,115,59],value:"⊔︀"},{key:[115,113,115,117,98,59],value:"⊏"},{key:[115,113,115,117,98,101,59],value:"⊑"},{key:[115,113,115,117,98,115,101,116,59],value:"⊏"},{key:[115,113,115,117,98,115,101,116,101,113,59],value:"⊑"},{key:[115,113,115,117,112,59],value:"⊐"},{key:[115,113,115,117,112,101,59],value:"⊒"},{key:[115,113,115,117,112,115,101,116,59],value:"⊐"},{key:[115,113,115,117,112,115,101,116,101,113,59],value:"⊒"},{key:[115,113,117,59],value:"□"},{key:[115,113,117,97,114,101,59],value:"□"},{key:[115,113,117,97,114,102,59],value:"▪"},{key:[115,113,117,102,59],value:"▪"},{key:[115,114,97,114,114,59],value:"→"},{key:[115,115,99,114,59],value:"𝓈"},{key:[115,115,101,116,109,110,59],value:"∖"},{key:[115,115,109,105,108,101,59],value:"⌣"},{key:[115,115,116,97,114,102,59],value:"⋆"},{key:[115,116,97,114,59],value:"☆"},{key:[115,116,97,114,102,59],value:"★"},{key:[115,116,114,97,105,103,104,116,101,112,115,105,108,111,110,59],value:"ϵ"},{key:[115,116,114,97,105,103,104,116,112,104,105,59],value:"ϕ"},{key:[115,116,114,110,115,59],value:"¯"},{key:[115,117,98,59],value:"⊂"},{key:[115,117,98,69,59],value:"⫅"},{key:[115,117,98,100,111,116,59],value:"⪽"},{key:[115,117,98,101,59],value:"⊆"},{key:[115,117,98,101,100,111,116,59],value:"⫃"},{key:[115,117,98,109,117,108,116,59],value:"⫁"},{key:[115,117,98,110,69,59],value:"⫋"},{key:[115,117,98,110,101,59],value:"⊊"},{key:[115,117,98,112,108,117,115,59],value:"⪿"},{key:[115,117,98,114,97,114,114,59],value:"⥹"},{key:[115,117,98,115,101,116,59],value:"⊂"},{key:[115,117,98,115,101,116,101,113,59],value:"⊆"},{key:[115,117,98,115,101,116,101,113,113,59],value:"⫅"},{key:[115,117,98,115,101,116,110,101,113,59],value:"⊊"},{key:[115,117,98,115,101,116,110,101,113,113,59],value:"⫋"},{key:[115,117,98,115,105,109,59],value:"⫇"},{key:[115,117,98,115,117,98,59],value:"⫕"},{key:[115,117,98,115,117,112,59],value:"⫓"},{key:[115,117,99,99,59],value:"≻"},{key:[115,117,99,99,97,112,112,114,111,120,59],value:"⪸"},{key:[115,117,99,99,99,117,114,108,121,101,113,59],value:"≽"},{key:[115,117,99,99,101,113,59],value:"⪰"},{key:[115,117,99,99,110,97,112,112,114,111,120,59],value:"⪺"},{key:[115,117,99,99,110,101,113,113,59],value:"⪶"},{key:[115,117,99,99,110,115,105,109,59],value:"⋩"},{key:[115,117,99,99,115,105,109,59],value:"≿"},{key:[115,117,109,59],value:"∑"},{key:[115,117,110,103,59],value:"♪"},{key:[115,117,112,49,59],value:"¹"},{key:[115,117,112,50,59],value:"²"},{key:[115,117,112,51,59],value:"³"},{key:[115,117,112,59],value:"⊃"},{key:[115,117,112,69,59],value:"⫆"},{key:[115,117,112,100,111,116,59],value:"⪾"},{key:[115,117,112,100,115,117,98,59],value:"⫘"},{key:[115,117,112,101,59],value:"⊇"},{key:[115,117,112,101,100,111,116,59],value:"⫄"},{key:[115,117,112,104,115,111,108,59],value:"⟉"},{key:[115,117,112,104,115,117,98,59],value:"⫗"},{key:[115,117,112,108,97,114,114,59],value:"⥻"},{key:[115,117,112,109,117,108,116,59],value:"⫂"},{key:[115,117,112,110,69,59],value:"⫌"},{key:[115,117,112,110,101,59],value:"⊋"},{key:[115,117,112,112,108,117,115,59],value:"⫀"},{key:[115,117,112,115,101,116,59],value:"⊃"},{key:[115,117,112,115,101,116,101,113,59],value:"⊇"},{key:[115,117,112,115,101,116,101,113,113,59],value:"⫆"},{key:[115,117,112,115,101,116,110,101,113,59],value:"⊋"},{key:[115,117,112,115,101,116,110,101,113,113,59],value:"⫌"},{key:[115,117,112,115,105,109,59],value:"⫈"},{key:[115,117,112,115,117,98,59],value:"⫔"},{key:[115,117,112,115,117,112,59],value:"⫖"},{key:[115,119,65,114,114,59],value:"⇙"},{key:[115,119,97,114,104,107,59],value:"⤦"},{key:[115,119,97,114,114,59],value:"↙"},{key:[115,119,97,114,114,111,119,59],value:"↙"},{key:[115,119,110,119,97,114,59],value:"⤪"},{key:[115,122,108,105,103,59],value:"ß"},{key:[116,97,114,103,101,116,59],value:"⌖"},{key:[116,97,117,59],value:"τ"},{key:[116,98,114,107,59],value:"⎴"},{key:[116,99,97,114,111,110,59],value:"ť"},{key:[116,99,101,100,105,108,59],value:"ţ"},{key:[116,99,121,59],value:"т"},{key:[116,100,111,116,59],value:"⃛"},{key:[116,101,108,114,101,99,59],value:"⌕"},{key:[116,102,114,59],value:"𝔱"},{key:[116,104,101,114,101,52,59],value:"∴"},{key:[116,104,101,114,101,102,111,114,101,59],value:"∴"},{key:[116,104,101,116,97,59],value:"θ"},{key:[116,104,101,116,97,115,121,109,59],value:"ϑ"},{key:[116,104,101,116,97,118,59],value:"ϑ"},{key:[116,104,105,99,107,97,112,112,114,111,120,59],value:"≈"},{key:[116,104,105,99,107,115,105,109,59],value:"∼"},{key:[116,104,105,110,115,112,59],value:" "},{key:[116,104,107,97,112,59],value:"≈"},{key:[116,104,107,115,105,109,59],value:"∼"},{key:[116,104,111,114,110,59],value:"þ"},{key:[116,105,108,100,101,59],value:"˜"},{key:[116,105,109,101,115,59],value:"×"},{key:[116,105,109,101,115,98,59],value:"⊠"},{key:[116,105,109,101,115,98,97,114,59],value:"⨱"},{key:[116,105,109,101,115,100,59],value:"⨰"},{key:[116,105,110,116,59],value:"∭"},{key:[116,111,101,97,59],value:"⤨"},{key:[116,111,112,59],value:"⊤"},{key:[116,111,112,98,111,116,59],value:"⌶"},{key:[116,111,112,99,105,114,59],value:"⫱"},{key:[116,111,112,102,59],value:"𝕥"},{key:[116,111,112,102,111,114,107,59],value:"⫚"},{key:[116,111,115,97,59],value:"⤩"},{key:[116,112,114,105,109,101,59],value:"‴"},{key:[116,114,97,100,101,59],value:"™"},{key:[116,114,105,97,110,103,108,101,59],value:"▵"},{key:[116,114,105,97,110,103,108,101,100,111,119,110,59],value:"▿"},{key:[116,114,105,97,110,103,108,101,108,101,102,116,59],value:"◃"},{key:[116,114,105,97,110,103,108,101,108,101,102,116,101,113,59],value:"⊴"},{key:[116,114,105,97,110,103,108,101,113,59],value:"≜"},{key:[116,114,105,97,110,103,108,101,114,105,103,104,116,59],value:"▹"},{key:[116,114,105,97,110,103,108,101,114,105,103,104,116,101,113,59],value:"⊵"},{key:[116,114,105,100,111,116,59],value:"◬"},{key:[116,114,105,101,59],value:"≜"},{key:[116,114,105,109,105,110,117,115,59],value:"⨺"},{key:[116,114,105,112,108,117,115,59],value:"⨹"},{key:[116,114,105,115,98,59],value:"⧍"},{key:[116,114,105,116,105,109,101,59],value:"⨻"},{key:[116,114,112,101,122,105,117,109,59],value:"⏢"},{key:[116,115,99,114,59],value:"𝓉"},{key:[116,115,99,121,59],value:"ц"},{key:[116,115,104,99,121,59],value:"ћ"},{key:[116,115,116,114,111,107,59],value:"ŧ"},{key:[116,119,105,120,116,59],value:"≬"},{key:[116,119,111,104,101,97,100,108,101,102,116,97,114,114,111,119,59],value:"↞"},{key:[116,119,111,104,101,97,100,114,105,103,104,116,97,114,114,111,119,59],value:"↠"},{key:[117,65,114,114,59],value:"⇑"},{key:[117,72,97,114,59],value:"⥣"},{key:[117,97,99,117,116,101,59],value:"ú"},{key:[117,97,114,114,59],value:"↑"},{key:[117,98,114,99,121,59],value:"ў"},{key:[117,98,114,101,118,101,59],value:"ŭ"},{key:[117,99,105,114,99,59],value:"û"},{key:[117,99,121,59],value:"у"},{key:[117,100,97,114,114,59],value:"⇅"},{key:[117,100,98,108,97,99,59],value:"ű"},{key:[117,100,104,97,114,59],value:"⥮"},{key:[117,102,105,115,104,116,59],value:"⥾"},{key:[117,102,114,59],value:"𝔲"},{key:[117,103,114,97,118,101,59],value:"ù"},{key:[117,104,97,114,108,59],value:"↿"},{key:[117,104,97,114,114,59],value:"↾"},{key:[117,104,98,108,107,59],value:"▀"},{key:[117,108,99,111,114,110,59],value:"⌜"},{key:[117,108,99,111,114,110,101,114,59],value:"⌜"},{key:[117,108,99,114,111,112,59],value:"⌏"},{key:[117,108,116,114,105,59],value:"◸"},{key:[117,109,97,99,114,59],value:"ū"},{key:[117,109,108,59],value:"¨"},{key:[117,111,103,111,110,59],value:"ų"},{key:[117,111,112,102,59],value:"𝕦"},{key:[117,112,97,114,114,111,119,59],value:"↑"},{key:[117,112,100,111,119,110,97,114,114,111,119,59],value:"↕"},{key:[117,112,104,97,114,112,111,111,110,108,101,102,116,59],value:"↿"},{key:[117,112,104,97,114,112,111,111,110,114,105,103,104,116,59],value:"↾"},{key:[117,112,108,117,115,59],value:"⊎"},{key:[117,112,115,105,59],value:"υ"},{key:[117,112,115,105,104,59],value:"ϒ"},{key:[117,112,115,105,108,111,110,59],value:"υ"},{key:[117,112,117,112,97,114,114,111,119,115,59],value:"⇈"},{key:[117,114,99,111,114,110,59],value:"⌝"},{key:[117,114,99,111,114,110,101,114,59],value:"⌝"},{key:[117,114,99,114,111,112,59],value:"⌎"},{key:[117,114,105,110,103,59],value:"ů"},{key:[117,114,116,114,105,59],value:"◹"},{key:[117,115,99,114,59],value:"𝓊"},{key:[117,116,100,111,116,59],value:"⋰"},{key:[117,116,105,108,100,101,59],value:"ũ"},{key:[117,116,114,105,59],value:"▵"},{key:[117,116,114,105,102,59],value:"▴"},{key:[117,117,97,114,114,59],value:"⇈"},{key:[117,117,109,108,59],value:"ü"},{key:[117,119,97,110,103,108,101,59],value:"⦧"},{key:[118,65,114,114,59],value:"⇕"},{key:[118,66,97,114,59],value:"⫨"},{key:[118,66,97,114,118,59],value:"⫩"},{key:[118,68,97,115,104,59],value:"⊨"},{key:[118,97,110,103,114,116,59],value:"⦜"},{key:[118,97,114,101,112,115,105,108,111,110,59],value:"ϵ"},{key:[118,97,114,107,97,112,112,97,59],value:"ϰ"},{key:[118,97,114,110,111,116,104,105,110,103,59],value:"∅"},{key:[118,97,114,112,104,105,59],value:"ϕ"},{key:[118,97,114,112,105,59],value:"ϖ"},{key:[118,97,114,112,114,111,112,116,111,59],value:"∝"},{key:[118,97,114,114,59],value:"↕"},{key:[118,97,114,114,104,111,59],value:"ϱ"},{key:[118,97,114,115,105,103,109,97,59],value:"ς"},{key:[118,97,114,115,117,98,115,101,116,110,101,113,59],value:"⊊︀"},{key:[118,97,114,115,117,98,115,101,116,110,101,113,113,59],value:"⫋︀"},{key:[118,97,114,115,117,112,115,101,116,110,101,113,59],value:"⊋︀"},{key:[118,97,114,115,117,112,115,101,116,110,101,113,113,59],value:"⫌︀"},{key:[118,97,114,116,104,101,116,97,59],value:"ϑ"},{key:[118,97,114,116,114,105,97,110,103,108,101,108,101,102,116,59],value:"⊲"},{key:[118,97,114,116,114,105,97,110,103,108,101,114,105,103,104,116,59],value:"⊳"},{key:[118,99,121,59],value:"в"},{key:[118,100,97,115,104,59],value:"⊢"},{key:[118,101,101,59],value:"∨"},{key:[118,101,101,98,97,114,59],value:"⊻"},{key:[118,101,101,101,113,59],value:"≚"},{key:[118,101,108,108,105,112,59],value:"⋮"},{key:[118,101,114,98,97,114,59],value:"|"},{key:[118,101,114,116,59],value:"|"},{key:[118,102,114,59],value:"𝔳"},{key:[118,108,116,114,105,59],value:"⊲"},{key:[118,110,115,117,98,59],value:"⊂⃒"},{key:[118,110,115,117,112,59],value:"⊃⃒"},{key:[118,111,112,102,59],value:"𝕧"},{key:[118,112,114,111,112,59],value:"∝"},{key:[118,114,116,114,105,59],value:"⊳"},{key:[118,115,99,114,59],value:"𝓋"},{key:[118,115,117,98,110,69,59],value:"⫋︀"},{key:[118,115,117,98,110,101,59],value:"⊊︀"},{key:[118,115,117,112,110,69,59],value:"⫌︀"},{key:[118,115,117,112,110,101,59],value:"⊋︀"},{key:[118,122,105,103,122,97,103,59],value:"⦚"},{key:[119,99,105,114,99,59],value:"ŵ"},{key:[119,101,100,98,97,114,59],value:"⩟"},{key:[119,101,100,103,101,59],value:"∧"},{key:[119,101,100,103,101,113,59],value:"≙"},{key:[119,101,105,101,114,112,59],value:"℘"},{key:[119,102,114,59],value:"𝔴"},{key:[119,111,112,102,59],value:"𝕨"},{key:[119,112,59],value:"℘"},{key:[119,114,59],value:"≀"},{key:[119,114,101,97,116,104,59],value:"≀"},{key:[119,115,99,114,59],value:"𝓌"},{key:[120,99,97,112,59],value:"⋂"},{key:[120,99,105,114,99,59],value:"◯"},{key:[120,99,117,112,59],value:"⋃"},{key:[120,100,116,114,105,59],value:"▽"},{key:[120,102,114,59],value:"𝔵"},{key:[120,104,65,114,114,59],value:"⟺"},{key:[120,104,97,114,114,59],value:"⟷"},{key:[120,105,59],value:"ξ"},{key:[120,108,65,114,114,59],value:"⟸"},{key:[120,108,97,114,114,59],value:"⟵"},{key:[120,109,97,112,59],value:"⟼"},{key:[120,110,105,115,59],value:"⋻"},{key:[120,111,100,111,116,59],value:"⨀"},{key:[120,111,112,102,59],value:"𝕩"},{key:[120,111,112,108,117,115,59],value:"⨁"},{key:[120,111,116,105,109,101,59],value:"⨂"},{key:[120,114,65,114,114,59],value:"⟹"},{key:[120,114,97,114,114,59],value:"⟶"},{key:[120,115,99,114,59],value:"𝓍"},{key:[120,115,113,99,117,112,59],value:"⨆"},{key:[120,117,112,108,117,115,59],value:"⨄"},{key:[120,117,116,114,105,59],value:"△"},{key:[120,118,101,101,59],value:"⋁"},{key:[120,119,101,100,103,101,59],value:"⋀"},{key:[121,97,99,117,116,101,59],value:"ý"},{key:[121,97,99,121,59],value:"я"},{key:[121,99,105,114,99,59],value:"ŷ"},{key:[121,99,121,59],value:"ы"},{key:[121,101,110,59],value:"¥"},{key:[121,102,114,59],value:"𝔶"},{key:[121,105,99,121,59],value:"ї"},{key:[121,111,112,102,59],value:"𝕪"},{key:[121,115,99,114,59],value:"𝓎"},{key:[121,117,99,121,59],value:"ю"},{key:[121,117,109,108,59],value:"ÿ"},{key:[122,97,99,117,116,101,59],value:"ź"},{key:[122,99,97,114,111,110,59],value:"ž"},{key:[122,99,121,59],value:"з"},{key:[122,100,111,116,59],value:"ż"},{key:[122,101,101,116,114,102,59],value:"ℨ"},{key:[122,101,116,97,59],value:"ζ"},{key:[122,102,114,59],value:"𝔷"},{key:[122,104,99,121,59],value:"ж"},{key:[122,105,103,114,97,114,114,59],value:"⇝"},{key:[122,111,112,102,59],value:"𝕫"},{key:[122,115,99,114,59],value:"𝓏"},{key:[122,119,106,59],value:"‍"},{key:[122,119,110,106,59],value:"‌"}];var UnicodePcCodePoint;(function(S){S[S.LOW_LINE=95]="LOW_LINE",S[S.UNDERTIE=8255]="UNDERTIE",S[S.CHARACTER_TIE=8256]="CHARACTER_TIE",S[S.INVERTED_UNDERTIE=8276]="INVERTED_UNDERTIE",S[S.PRESENTATION_FORM_FOR_VERTICAL_LOW_LINE=65075]="PRESENTATION_FORM_FOR_VERTICAL_LOW_LINE",S[S.PRESENTATION_FORM_FOR_VERTICAL_WAVY_LOW_LINE=65076]="PRESENTATION_FORM_FOR_VERTICAL_WAVY_LOW_LINE",S[S.DASHED_LOW_LINE=65101]="DASHED_LOW_LINE",S[S.CENTRELINE_LOW_LINE=65102]="CENTRELINE_LOW_LINE",S[S.WAVY_LOW_LINE=65103]="WAVY_LOW_LINE",S[S.FULLWIDTH_LOW_LINE=65343]="FULLWIDTH_LOW_LINE"})(UnicodePcCodePoint||(UnicodePcCodePoint={}));var UnicodePdCodePoint;(function(S){S[S.HYPHEN_MINUS=45]="HYPHEN_MINUS",S[S.ARMENIAN_HYPHEN=1418]="ARMENIAN_HYPHEN",S[S.HEBREW_PUNCTUATION_MAQAF=1470]="HEBREW_PUNCTUATION_MAQAF",S[S.CANADIAN_SYLLABICS_HYPHEN=5120]="CANADIAN_SYLLABICS_HYPHEN",S[S.MONGOLIAN_TODO_SOFT_HYPHEN=6150]="MONGOLIAN_TODO_SOFT_HYPHEN",S[S.HYPHEN=8208]="HYPHEN",S[S.NON_BREAKING_HYPHEN=8209]="NON_BREAKING_HYPHEN",S[S.FIGURE_DASH=8210]="FIGURE_DASH",S[S.EN_DASH=8211]="EN_DASH",S[S.EM_DASH=8212]="EM_DASH",S[S.HORIZONTAL_BAR=8213]="HORIZONTAL_BAR",S[S.DOUBLE_OBLIQUE_HYPHEN=11799]="DOUBLE_OBLIQUE_HYPHEN",S[S.HYPHEN_WITH_DIAERESIS=11802]="HYPHEN_WITH_DIAERESIS",S[S.TWO_EM_DASH=11834]="TWO_EM_DASH",S[S.THREE_EM_DASH=11835]="THREE_EM_DASH",S[S.DOUBLE_HYPHEN=11840]="DOUBLE_HYPHEN",S[S.WAVE_DASH=12316]="WAVE_DASH",S[S.WAVY_DASH=12336]="WAVY_DASH",S[S.KATAKANA_HIRAGANA_DOUBLE_HYPHEN=12448]="KATAKANA_HIRAGANA_DOUBLE_HYPHEN",S[S.PRESENTATION_FORM_FOR_VERTICAL_EM_DASH=65073]="PRESENTATION_FORM_FOR_VERTICAL_EM_DASH",S[S.PRESENTATION_FORM_FOR_VERTICAL_EN_DASH=65074]="PRESENTATION_FORM_FOR_VERTICAL_EN_DASH",S[S.SMALL_EM_DASH=65112]="SMALL_EM_DASH",S[S.SMALL_HYPHEN_MINUS=65123]="SMALL_HYPHEN_MINUS",S[S.FULLWIDTH_HYPHEN_MINUS=65293]="FULLWIDTH_HYPHEN_MINUS",S[S.YEZIDI_HYPHENATION_MARK=69293]="YEZIDI_HYPHENATION_MARK"})(UnicodePdCodePoint||(UnicodePdCodePoint={}));var UnicodePeCodePoint;(function(S){S[S.RIGHT_PARENTHESIS=41]="RIGHT_PARENTHESIS",S[S.RIGHT_SQUARE_BRACKET=93]="RIGHT_SQUARE_BRACKET",S[S.RIGHT_CURLY_BRACKET=125]="RIGHT_CURLY_BRACKET",S[S.TIBETAN_MARK_GUG_RTAGS_GYAS=3899]="TIBETAN_MARK_GUG_RTAGS_GYAS",S[S.TIBETAN_MARK_ANG_KHANG_GYAS=3901]="TIBETAN_MARK_ANG_KHANG_GYAS",S[S.OGHAM_REVERSED_FEATHER_MARK=5788]="OGHAM_REVERSED_FEATHER_MARK",S[S.RIGHT_SQUARE_BRACKET_WITH_QUILL=8262]="RIGHT_SQUARE_BRACKET_WITH_QUILL",S[S.SUPERSCRIPT_RIGHT_PARENTHESIS=8318]="SUPERSCRIPT_RIGHT_PARENTHESIS",S[S.SUBSCRIPT_RIGHT_PARENTHESIS=8334]="SUBSCRIPT_RIGHT_PARENTHESIS",S[S.RIGHT_CEILING=8969]="RIGHT_CEILING",S[S.RIGHT_FLOOR=8971]="RIGHT_FLOOR",S[S.RIGHT_POINTING_ANGLE_BRACKET=9002]="RIGHT_POINTING_ANGLE_BRACKET",S[S.MEDIUM_RIGHT_PARENTHESIS_ORNAMENT=10089]="MEDIUM_RIGHT_PARENTHESIS_ORNAMENT",S[S.MEDIUM_FLATTENED_RIGHT_PARENTHESIS_ORNAMENT=10091]="MEDIUM_FLATTENED_RIGHT_PARENTHESIS_ORNAMENT",S[S.MEDIUM_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT=10093]="MEDIUM_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT",S[S.HEAVY_RIGHT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT=10095]="HEAVY_RIGHT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT",S[S.HEAVY_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT=10097]="HEAVY_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT",S[S.LIGHT_RIGHT_TORTOISE_SHELL_BRACKET_ORNAMENT=10099]="LIGHT_RIGHT_TORTOISE_SHELL_BRACKET_ORNAMENT",S[S.MEDIUM_RIGHT_CURLY_BRACKET_ORNAMENT=10101]="MEDIUM_RIGHT_CURLY_BRACKET_ORNAMENT",S[S.RIGHT_S_SHAPED_BAG_DELIMITER=10182]="RIGHT_S_SHAPED_BAG_DELIMITER",S[S.MATHEMATICAL_RIGHT_WHITE_SQUARE_BRACKET=10215]="MATHEMATICAL_RIGHT_WHITE_SQUARE_BRACKET",S[S.MATHEMATICAL_RIGHT_ANGLE_BRACKET=10217]="MATHEMATICAL_RIGHT_ANGLE_BRACKET",S[S.MATHEMATICAL_RIGHT_DOUBLE_ANGLE_BRACKET=10219]="MATHEMATICAL_RIGHT_DOUBLE_ANGLE_BRACKET",S[S.MATHEMATICAL_RIGHT_WHITE_TORTOISE_SHELL_BRACKET=10221]="MATHEMATICAL_RIGHT_WHITE_TORTOISE_SHELL_BRACKET",S[S.MATHEMATICAL_RIGHT_FLATTENED_PARENTHESIS=10223]="MATHEMATICAL_RIGHT_FLATTENED_PARENTHESIS",S[S.RIGHT_WHITE_CURLY_BRACKET=10628]="RIGHT_WHITE_CURLY_BRACKET",S[S.RIGHT_WHITE_PARENTHESIS=10630]="RIGHT_WHITE_PARENTHESIS",S[S.Z_NOTATION_RIGHT_IMAGE_BRACKET=10632]="Z_NOTATION_RIGHT_IMAGE_BRACKET",S[S.Z_NOTATION_RIGHT_BINDING_BRACKET=10634]="Z_NOTATION_RIGHT_BINDING_BRACKET",S[S.RIGHT_SQUARE_BRACKET_WITH_UNDERBAR=10636]="RIGHT_SQUARE_BRACKET_WITH_UNDERBAR",S[S.RIGHT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER=10638]="RIGHT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER",S[S.RIGHT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER=10640]="RIGHT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER",S[S.RIGHT_ANGLE_BRACKET_WITH_DOT=10642]="RIGHT_ANGLE_BRACKET_WITH_DOT",S[S.RIGHT_ARC_GREATER_THAN_BRACKET=10644]="RIGHT_ARC_GREATER_THAN_BRACKET",S[S.DOUBLE_RIGHT_ARC_LESS_THAN_BRACKET=10646]="DOUBLE_RIGHT_ARC_LESS_THAN_BRACKET",S[S.RIGHT_BLACK_TORTOISE_SHELL_BRACKET=10648]="RIGHT_BLACK_TORTOISE_SHELL_BRACKET",S[S.RIGHT_WIGGLY_FENCE=10713]="RIGHT_WIGGLY_FENCE",S[S.RIGHT_DOUBLE_WIGGLY_FENCE=10715]="RIGHT_DOUBLE_WIGGLY_FENCE",S[S.RIGHT_POINTING_CURVED_ANGLE_BRACKET=10749]="RIGHT_POINTING_CURVED_ANGLE_BRACKET",S[S.TOP_RIGHT_HALF_BRACKET=11811]="TOP_RIGHT_HALF_BRACKET",S[S.BOTTOM_RIGHT_HALF_BRACKET=11813]="BOTTOM_RIGHT_HALF_BRACKET",S[S.RIGHT_SIDEWAYS_U_BRACKET=11815]="RIGHT_SIDEWAYS_U_BRACKET",S[S.RIGHT_DOUBLE_PARENTHESIS=11817]="RIGHT_DOUBLE_PARENTHESIS",S[S.RIGHT_ANGLE_BRACKET=12297]="RIGHT_ANGLE_BRACKET",S[S.RIGHT_DOUBLE_ANGLE_BRACKET=12299]="RIGHT_DOUBLE_ANGLE_BRACKET",S[S.RIGHT_CORNER_BRACKET=12301]="RIGHT_CORNER_BRACKET",S[S.RIGHT_WHITE_CORNER_BRACKET=12303]="RIGHT_WHITE_CORNER_BRACKET",S[S.RIGHT_BLACK_LENTICULAR_BRACKET=12305]="RIGHT_BLACK_LENTICULAR_BRACKET",S[S.RIGHT_TORTOISE_SHELL_BRACKET=12309]="RIGHT_TORTOISE_SHELL_BRACKET",S[S.RIGHT_WHITE_LENTICULAR_BRACKET=12311]="RIGHT_WHITE_LENTICULAR_BRACKET",S[S.RIGHT_WHITE_TORTOISE_SHELL_BRACKET=12313]="RIGHT_WHITE_TORTOISE_SHELL_BRACKET",S[S.RIGHT_WHITE_SQUARE_BRACKET=12315]="RIGHT_WHITE_SQUARE_BRACKET",S[S.DOUBLE_PRIME_QUOTATION_MARK=12318]="DOUBLE_PRIME_QUOTATION_MARK",S[S.LOW_DOUBLE_PRIME_QUOTATION_MARK=12319]="LOW_DOUBLE_PRIME_QUOTATION_MARK",S[S.ORNATE_LEFT_PARENTHESIS=64830]="ORNATE_LEFT_PARENTHESIS",S[S.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_LENTICULAR_BRAKCET=65048]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_LENTICULAR_BRAKCET",S[S.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_PARENTHESIS=65078]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_PARENTHESIS",S[S.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CURLY_BRACKET=65080]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CURLY_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_TORTOISE_SHELL_BRACKET=65082]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_TORTOISE_SHELL_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_BLACK_LENTICULAR_BRACKET=65084]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_BLACK_LENTICULAR_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_DOUBLE_ANGLE_BRACKET=65086]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_DOUBLE_ANGLE_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_ANGLE_BRACKET=65088]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_ANGLE_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CORNER_BRACKET=65090]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CORNER_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_CORNER_BRACKET=65092]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_CORNER_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_SQUARE_BRACKET=65096]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_SQUARE_BRACKET",S[S.SMALL_RIGHT_PARENTHESIS=65114]="SMALL_RIGHT_PARENTHESIS",S[S.SMALL_RIGHT_CURLY_BRACKET=65116]="SMALL_RIGHT_CURLY_BRACKET",S[S.SMALL_RIGHT_TORTOISE_SHELL_BRACKET=65118]="SMALL_RIGHT_TORTOISE_SHELL_BRACKET",S[S.FULLWIDTH_RIGHT_PARENTHESIS=65289]="FULLWIDTH_RIGHT_PARENTHESIS",S[S.FULLWIDTH_RIGHT_SQUARE_BRACKET=65341]="FULLWIDTH_RIGHT_SQUARE_BRACKET",S[S.FULLWIDTH_RIGHT_CURLY_BRACKET=65373]="FULLWIDTH_RIGHT_CURLY_BRACKET",S[S.FULLWIDTH_RIGHT_WHITE_PARENTHESIS=65376]="FULLWIDTH_RIGHT_WHITE_PARENTHESIS",S[S.HALFWIDTH_RIGHT_CORNER_BRACKET=65379]="HALFWIDTH_RIGHT_CORNER_BRACKET"})(UnicodePeCodePoint||(UnicodePeCodePoint={}));var UnicodePfCodePoint;(function(S){S[S.RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK=187]="RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK",S[S.RIGHT_SINGLE_QUOTATION_MARK=8217]="RIGHT_SINGLE_QUOTATION_MARK",S[S.RIGHT_DOUBLE_QUOTATION_MARK=8221]="RIGHT_DOUBLE_QUOTATION_MARK",S[S.SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK=8250]="SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK",S[S.RIGHT_SUBSTITUTION_BRACKET=11779]="RIGHT_SUBSTITUTION_BRACKET",S[S.RIGHT_DOTTED_SUBSTITUTION_BRACKET=11781]="RIGHT_DOTTED_SUBSTITUTION_BRACKET",S[S.RIGHT_TRANSPOSITION_BRACKET=11786]="RIGHT_TRANSPOSITION_BRACKET",S[S.RIGHT_RAISED_OMISSION_BRACKET=11789]="RIGHT_RAISED_OMISSION_BRACKET",S[S.RIGHT_LOW_PARAPHRASE_BRACKET=11805]="RIGHT_LOW_PARAPHRASE_BRACKET",S[S.RIGHT_VERTICAL_BAR_WITH_QUILL=11809]="RIGHT_VERTICAL_BAR_WITH_QUILL"})(UnicodePfCodePoint||(UnicodePfCodePoint={}));var UnicodePiCodePoint;(function(S){S[S.LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK=171]="LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK",S[S.LEFT_SINGLE_QUOTATION_MARK=8216]="LEFT_SINGLE_QUOTATION_MARK",S[S.SINGLE_HIGH_REVERSED_9_QUOTATION_MARK=8219]="SINGLE_HIGH_REVERSED_9_QUOTATION_MARK",S[S.LEFT_DOUBLE_QUOTATION_MARK=8220]="LEFT_DOUBLE_QUOTATION_MARK",S[S.DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK=8223]="DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK",S[S.SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK=8249]="SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK",S[S.LEFT_SUBSTITUTION_BRACKET=11778]="LEFT_SUBSTITUTION_BRACKET",S[S.LEFT_DOTTED_SUBSTITUTION_BRACKET=11780]="LEFT_DOTTED_SUBSTITUTION_BRACKET",S[S.LEFT_TRANSPOSITION_BRACKET=11785]="LEFT_TRANSPOSITION_BRACKET",S[S.LEFT_RAISED_OMISSION_BRACKET=11788]="LEFT_RAISED_OMISSION_BRACKET",S[S.LEFT_LOW_PARAPHRASE_BRACKET=11804]="LEFT_LOW_PARAPHRASE_BRACKET",S[S.LEFT_VERTICAL_BAR_WITH_QUILL=11808]="LEFT_VERTICAL_BAR_WITH_QUILL"})(UnicodePiCodePoint||(UnicodePiCodePoint={}));var UnicodePoCodePoint;(function(S){S[S.EXCLAMATION_MARK=33]="EXCLAMATION_MARK",S[S.QUOTATION_MARK=34]="QUOTATION_MARK",S[S.NUMBER_SIGN=35]="NUMBER_SIGN",S[S.PERCENT_SIGN=37]="PERCENT_SIGN",S[S.AMPERSAND=38]="AMPERSAND",S[S.APOSTROPHE=39]="APOSTROPHE",S[S.ASTERISK=42]="ASTERISK",S[S.COMMA=44]="COMMA",S[S.FULL_STOP=46]="FULL_STOP",S[S.SOLIDUS=47]="SOLIDUS",S[S.COLON=58]="COLON",S[S.SEMICOLON=59]="SEMICOLON",S[S.QUESTION_MARK=63]="QUESTION_MARK",S[S.COMMERCIAL_AT=64]="COMMERCIAL_AT",S[S.REVERSE_SOLIDUS=92]="REVERSE_SOLIDUS",S[S.INVERTED_EXCLAMATION_MARK=161]="INVERTED_EXCLAMATION_MARK",S[S.SECTION_SIGN=167]="SECTION_SIGN",S[S.PILCROW_SIGN=182]="PILCROW_SIGN",S[S.MIDDLE_DOT=183]="MIDDLE_DOT",S[S.INVERTED_QUESTION_MARK=191]="INVERTED_QUESTION_MARK",S[S.GREEK_QUESTION_MARK=894]="GREEK_QUESTION_MARK",S[S.GREEK_ANO_TELEIA=903]="GREEK_ANO_TELEIA",S[S.ARMENIAN_APOSTROPHE=1370]="ARMENIAN_APOSTROPHE",S[S.ARMENIAN_EMPHASIS_MARK=1371]="ARMENIAN_EMPHASIS_MARK",S[S.ARMENIAN_EXCLAMATION_MARK=1372]="ARMENIAN_EXCLAMATION_MARK",S[S.ARMENIAN_COMMA=1373]="ARMENIAN_COMMA",S[S.ARMENIAN_QUESTION_MARK=1374]="ARMENIAN_QUESTION_MARK",S[S.ARMENIAN_ABBREVIATION_MARK=1375]="ARMENIAN_ABBREVIATION_MARK",S[S.ARMENIAN_FULL_STOP=1417]="ARMENIAN_FULL_STOP",S[S.HEBREW_PUNCTUATION_PASEQ=1472]="HEBREW_PUNCTUATION_PASEQ",S[S.HEBREW_PUNCTUATION_SOF_PASUQ=1475]="HEBREW_PUNCTUATION_SOF_PASUQ",S[S.HEBREW_PUNCTUATION_NUN_HAFUKHA=1478]="HEBREW_PUNCTUATION_NUN_HAFUKHA",S[S.HEBREW_PUNCTUATION_GERESH=1523]="HEBREW_PUNCTUATION_GERESH",S[S.HEBREW_PUNCTUATION_GERSHAYIM=1524]="HEBREW_PUNCTUATION_GERSHAYIM",S[S.ARABIC_INDIC_PER_MILLE_SIGN=1545]="ARABIC_INDIC_PER_MILLE_SIGN",S[S.ARABIC_INDIC_PER_TEN_THOUSAND_SIGN=1546]="ARABIC_INDIC_PER_TEN_THOUSAND_SIGN",S[S.ARABIC_COMMA=1548]="ARABIC_COMMA",S[S.ARABIC_DATE_SEPARATOR=1549]="ARABIC_DATE_SEPARATOR",S[S.ARABIC_SEMICOLON=1563]="ARABIC_SEMICOLON",S[S.ARABIC_TRIPLE_DOT_PUNCTUATION_MARK=1566]="ARABIC_TRIPLE_DOT_PUNCTUATION_MARK",S[S.ARABIC_QUESTION_MARK=1567]="ARABIC_QUESTION_MARK",S[S.ARABIC_PERCENT_SIGN=1642]="ARABIC_PERCENT_SIGN",S[S.ARABIC_DECIMAL_SEPARATOR=1643]="ARABIC_DECIMAL_SEPARATOR",S[S.ARABIC_THOUSANDS_SEPARATOR=1644]="ARABIC_THOUSANDS_SEPARATOR",S[S.ARABIC_FIVE_POINTED_STAR=1645]="ARABIC_FIVE_POINTED_STAR",S[S.ARABIC_FULL_STOP=1748]="ARABIC_FULL_STOP",S[S.SYRIAC_END_OF_PARAGRAPH=1792]="SYRIAC_END_OF_PARAGRAPH",S[S.SYRIAC_SUPRALINEAR_FULL_STOP=1793]="SYRIAC_SUPRALINEAR_FULL_STOP",S[S.SYRIAC_SUBLINEAR_FULL_STOP=1794]="SYRIAC_SUBLINEAR_FULL_STOP",S[S.SYRIAC_SUPRALINEAR_COLON=1795]="SYRIAC_SUPRALINEAR_COLON",S[S.SYRIAC_SUBLINEAR_COLON=1796]="SYRIAC_SUBLINEAR_COLON",S[S.SYRIAC_HORIZONTAL_COLON=1797]="SYRIAC_HORIZONTAL_COLON",S[S.SYRIAC_COLON_SKEWED_LEFT=1798]="SYRIAC_COLON_SKEWED_LEFT",S[S.SYRIAC_COLON_SKEWED_RIGHT=1799]="SYRIAC_COLON_SKEWED_RIGHT",S[S.SYRIAC_SUPRALINEAR_COLON_SKEWED_LEFT=1800]="SYRIAC_SUPRALINEAR_COLON_SKEWED_LEFT",S[S.SYRIAC_SUBLINEAR_COLON_SKEWED_RIGHT=1801]="SYRIAC_SUBLINEAR_COLON_SKEWED_RIGHT",S[S.SYRIAC_CONTRACTION=1802]="SYRIAC_CONTRACTION",S[S.SYRIAC_HARKLEAN_OBELUS=1803]="SYRIAC_HARKLEAN_OBELUS",S[S.SYRIAC_HARKLEAN_METOBELUS=1804]="SYRIAC_HARKLEAN_METOBELUS",S[S.SYRIAC_HARKLEAN_ASTERISCUS=1805]="SYRIAC_HARKLEAN_ASTERISCUS",S[S.NKO_SYMBOL_GBAKURUNEN=2039]="NKO_SYMBOL_GBAKURUNEN",S[S.NKO_COMMA=2040]="NKO_COMMA",S[S.NKO_EXCLAMATION_MARK=2041]="NKO_EXCLAMATION_MARK",S[S.SAMARITAN_PUNCTUATION_NEQUDAA=2096]="SAMARITAN_PUNCTUATION_NEQUDAA",S[S.SAMARITAN_PUNCTUATION_AFSAAQ=2097]="SAMARITAN_PUNCTUATION_AFSAAQ",S[S.SAMARITAN_PUNCTUATION_ANGED=2098]="SAMARITAN_PUNCTUATION_ANGED",S[S.SAMARITAN_PUNCTUATION_BAU=2099]="SAMARITAN_PUNCTUATION_BAU",S[S.SAMARITAN_PUNCTUATION_ATMAAU=2100]="SAMARITAN_PUNCTUATION_ATMAAU",S[S.SAMARITAN_PUNCTUATION_SHIYYAALAA=2101]="SAMARITAN_PUNCTUATION_SHIYYAALAA",S[S.SAMARITAN_ABBREVIATION_MARK=2102]="SAMARITAN_ABBREVIATION_MARK",S[S.SAMARITAN_PUNCTUATION_MELODIC_QITSA=2103]="SAMARITAN_PUNCTUATION_MELODIC_QITSA",S[S.SAMARITAN_PUNCTUATION_ZIQAA=2104]="SAMARITAN_PUNCTUATION_ZIQAA",S[S.SAMARITAN_PUNCTUATION_QITSA=2105]="SAMARITAN_PUNCTUATION_QITSA",S[S.SAMARITAN_PUNCTUATION_ZAEF=2106]="SAMARITAN_PUNCTUATION_ZAEF",S[S.SAMARITAN_PUNCTUATION_TURU=2107]="SAMARITAN_PUNCTUATION_TURU",S[S.SAMARITAN_PUNCTUATION_ARKAANU=2108]="SAMARITAN_PUNCTUATION_ARKAANU",S[S.SAMARITAN_PUNCTUATION_SOF_MASHFAAT=2109]="SAMARITAN_PUNCTUATION_SOF_MASHFAAT",S[S.SAMARITAN_PUNCTUATION_ANNAAU=2110]="SAMARITAN_PUNCTUATION_ANNAAU",S[S.MANDAIC_PUNCTUATION=2142]="MANDAIC_PUNCTUATION",S[S.DEVANAGARI_DANDA=2404]="DEVANAGARI_DANDA",S[S.DEVANAGARI_DOUBLE_DANDA=2405]="DEVANAGARI_DOUBLE_DANDA",S[S.DEVANAGARI_ABBREVIATION_SIGN=2416]="DEVANAGARI_ABBREVIATION_SIGN",S[S.BENGALI_ABBREVIATION_SIGN=2557]="BENGALI_ABBREVIATION_SIGN",S[S.GURMUKHI_ABBREVIATION_SIGN=2678]="GURMUKHI_ABBREVIATION_SIGN",S[S.GUJARATI_ABBREVIATION_SIGN=2800]="GUJARATI_ABBREVIATION_SIGN",S[S.TELUGU_SIGN_SIDDHAM=3191]="TELUGU_SIGN_SIDDHAM",S[S.KANNADA_SIGN_SIDDHAM=3204]="KANNADA_SIGN_SIDDHAM",S[S.SINHALA_PUNCTUATION_KUNDDALIYA=3572]="SINHALA_PUNCTUATION_KUNDDALIYA",S[S.THAI_CHARACTER_FONGMAN=3663]="THAI_CHARACTER_FONGMAN",S[S.THAI_CHARACTER_ANGKHANKHU=3674]="THAI_CHARACTER_ANGKHANKHU",S[S.THAI_CHARACTER_KHOMUT=3675]="THAI_CHARACTER_KHOMUT",S[S.TIBETAN_MARK_INITIAL_YIG_MGO_MDUN_MA=3844]="TIBETAN_MARK_INITIAL_YIG_MGO_MDUN_MA",S[S.TIBETAN_MARK_CLOSING_YIG_MGO_SGAB_MA=3845]="TIBETAN_MARK_CLOSING_YIG_MGO_SGAB_MA",S[S.TIBETAN_MARK_CARET_YIG_MGO_PHUR_SHAD_MA=3846]="TIBETAN_MARK_CARET_YIG_MGO_PHUR_SHAD_MA",S[S.TIBETAN_MARK_YIG_MGO_TSHEG_SHAD_MA=3847]="TIBETAN_MARK_YIG_MGO_TSHEG_SHAD_MA",S[S.TIBETAN_MARK_SBRUL_SHAD=3848]="TIBETAN_MARK_SBRUL_SHAD",S[S.TIBETAN_MARK_BSKUR_YIG_MGO=3849]="TIBETAN_MARK_BSKUR_YIG_MGO",S[S.TIBETAN_MARK_BKA__SHOG_YIG_MGO=3850]="TIBETAN_MARK_BKA__SHOG_YIG_MGO",S[S.TIBETAN_MARK_INTERSYLLABIC_TSHEG=3851]="TIBETAN_MARK_INTERSYLLABIC_TSHEG",S[S.TIBETAN_MARK_DELIMITER_TSHEG_BSTAR=3852]="TIBETAN_MARK_DELIMITER_TSHEG_BSTAR",S[S.TIBETAN_MARK_SHAD=3853]="TIBETAN_MARK_SHAD",S[S.TIBETAN_MARK_NYIS_SHAD=3854]="TIBETAN_MARK_NYIS_SHAD",S[S.TIBETAN_MARK_TSHEG_SHAD=3855]="TIBETAN_MARK_TSHEG_SHAD",S[S.TIBETAN_MARK_NYIS_TSHEG_SHAD=3856]="TIBETAN_MARK_NYIS_TSHEG_SHAD",S[S.TIBETAN_MARK_RIN_CHEN_SPUNGS_SHAD=3857]="TIBETAN_MARK_RIN_CHEN_SPUNGS_SHAD",S[S.TIBETAN_MARK_RGYA_GRAM_SHAD=3858]="TIBETAN_MARK_RGYA_GRAM_SHAD",S[S.TIBETAN_MARK_GTER_TSHEG=3860]="TIBETAN_MARK_GTER_TSHEG",S[S.TIBETAN_MARK_PALUTA=3973]="TIBETAN_MARK_PALUTA",S[S.TIBETAN_MARK_BSKA__SHOG_GI_MGO_RGYAN=4048]="TIBETAN_MARK_BSKA__SHOG_GI_MGO_RGYAN",S[S.TIBETAN_MARK_MNYAM_YIG_GI_MGO_RGYAN=4049]="TIBETAN_MARK_MNYAM_YIG_GI_MGO_RGYAN",S[S.TIBETAN_MARK_NYIS_TSHEG=4050]="TIBETAN_MARK_NYIS_TSHEG",S[S.TIBETAN_MARK_INITIAL_BRDA_RNYING_YIG_MGO_MDUN_MA=4051]="TIBETAN_MARK_INITIAL_BRDA_RNYING_YIG_MGO_MDUN_MA",S[S.TIBETAN_MARK_CLOSING_BRDA_RNYING_YIG_MGO_SGAB_MA=4052]="TIBETAN_MARK_CLOSING_BRDA_RNYING_YIG_MGO_SGAB_MA",S[S.TIBETAN_MARK_LEADING_MCHAN_RTAGS=4057]="TIBETAN_MARK_LEADING_MCHAN_RTAGS",S[S.TIBETAN_MARK_TRAILING_MCHAN_RTAGS=4058]="TIBETAN_MARK_TRAILING_MCHAN_RTAGS",S[S.MYANMAR_SIGN_LITTLE_SECTION=4170]="MYANMAR_SIGN_LITTLE_SECTION",S[S.MYANMAR_SIGN_SECTION=4171]="MYANMAR_SIGN_SECTION",S[S.MYANMAR_SYMBOL_LOCATIVE=4172]="MYANMAR_SYMBOL_LOCATIVE",S[S.MYANMAR_SYMBOL_COMPLETED=4173]="MYANMAR_SYMBOL_COMPLETED",S[S.MYANMAR_SYMBOL_AFOREMENTIONED=4174]="MYANMAR_SYMBOL_AFOREMENTIONED",S[S.MYANMAR_SYMBOL_GENITIVE=4175]="MYANMAR_SYMBOL_GENITIVE",S[S.GEORGIAN_PARAGRAPH_SEPARATOR=4347]="GEORGIAN_PARAGRAPH_SEPARATOR",S[S.ETHIOPIC_SECTION_MARK=4960]="ETHIOPIC_SECTION_MARK",S[S.ETHIOPIC_WORDSPACE=4961]="ETHIOPIC_WORDSPACE",S[S.ETHIOPIC_FULL_STOP=4962]="ETHIOPIC_FULL_STOP",S[S.ETHIOPIC_COMMA=4963]="ETHIOPIC_COMMA",S[S.ETHIOPIC_SEMICOLON=4964]="ETHIOPIC_SEMICOLON",S[S.ETHIOPIC_COLON=4965]="ETHIOPIC_COLON",S[S.ETHIOPIC_PREFACE_COLON=4966]="ETHIOPIC_PREFACE_COLON",S[S.ETHIOPIC_QUESTION_MARK=4967]="ETHIOPIC_QUESTION_MARK",S[S.ETHIOPIC_PARAGRAPH_SEPARATOR=4968]="ETHIOPIC_PARAGRAPH_SEPARATOR",S[S.CANADIAN_SYLLABICS_FULL_STOP=5742]="CANADIAN_SYLLABICS_FULL_STOP",S[S.RUNIC_SINGLE_PUNCTUATION=5867]="RUNIC_SINGLE_PUNCTUATION",S[S.RUNIC_MULTIPLE_PUNCTUATION=5868]="RUNIC_MULTIPLE_PUNCTUATION",S[S.RUNIC_CROSS_PUNCTUATION=5869]="RUNIC_CROSS_PUNCTUATION",S[S.PHILIPPINE_SINGLE_PUNCTUATION=5941]="PHILIPPINE_SINGLE_PUNCTUATION",S[S.PHILIPPINE_DOUBLE_PUNCTUATION=5942]="PHILIPPINE_DOUBLE_PUNCTUATION",S[S.KHMER_SIGN_KHAN=6100]="KHMER_SIGN_KHAN",S[S.KHMER_SIGN_BARIYOOSAN=6101]="KHMER_SIGN_BARIYOOSAN",S[S.KHMER_SIGN_CAMNUC_PII_KUUH=6102]="KHMER_SIGN_CAMNUC_PII_KUUH",S[S.KHMER_SIGN_BEYYAL=6104]="KHMER_SIGN_BEYYAL",S[S.KHMER_SIGN_PHNAEK_MUAN=6105]="KHMER_SIGN_PHNAEK_MUAN",S[S.KHMER_SIGN_KOOMUUT=6106]="KHMER_SIGN_KOOMUUT",S[S.MONGOLIAN_BIRGA=6144]="MONGOLIAN_BIRGA",S[S.MONGOLIAN_ELLIPSIS=6145]="MONGOLIAN_ELLIPSIS",S[S.MONGOLIAN_COMMA=6146]="MONGOLIAN_COMMA",S[S.MONGOLIAN_FULL_STOP=6147]="MONGOLIAN_FULL_STOP",S[S.MONGOLIAN_COLON=6148]="MONGOLIAN_COLON",S[S.MONGOLIAN_FOUR_DOTS=6149]="MONGOLIAN_FOUR_DOTS",S[S.MONGOLIAN_SIBE_SYLLABLE_BOUNDARY_MARKER=6151]="MONGOLIAN_SIBE_SYLLABLE_BOUNDARY_MARKER",S[S.MONGOLIAN_MANCHU_COMMA=6152]="MONGOLIAN_MANCHU_COMMA",S[S.MONGOLIAN_MANCHU_FULL_STOP=6153]="MONGOLIAN_MANCHU_FULL_STOP",S[S.MONGOLIAN_NIRUGU=6154]="MONGOLIAN_NIRUGU",S[S.LIMBU_EXCLAMATION_MARK=6468]="LIMBU_EXCLAMATION_MARK",S[S.LIMBU_QUESTION_MARK=6469]="LIMBU_QUESTION_MARK",S[S.BUGINESE_PALLAWA=6686]="BUGINESE_PALLAWA",S[S.BUGINESE_END_OF_SECTION=6687]="BUGINESE_END_OF_SECTION",S[S.TAI_THAM_SIGN_WIANG=6816]="TAI_THAM_SIGN_WIANG",S[S.TAI_THAM_SIGN_WIANGWAAK=6817]="TAI_THAM_SIGN_WIANGWAAK",S[S.TAI_THAM_SIGN_SAWAN=6818]="TAI_THAM_SIGN_SAWAN",S[S.TAI_THAM_SIGN_KEOW=6819]="TAI_THAM_SIGN_KEOW",S[S.TAI_THAM_SIGN_HOY=6820]="TAI_THAM_SIGN_HOY",S[S.TAI_THAM_SIGN_DOKMAI=6821]="TAI_THAM_SIGN_DOKMAI",S[S.TAI_THAM_SIGN_REVERSED_ROTATED_RANA=6822]="TAI_THAM_SIGN_REVERSED_ROTATED_RANA",S[S.TAI_THAM_SIGN_KAAN=6824]="TAI_THAM_SIGN_KAAN",S[S.TAI_THAM_SIGN_KAANKUU=6825]="TAI_THAM_SIGN_KAANKUU",S[S.TAI_THAM_SIGN_SATKAAN=6826]="TAI_THAM_SIGN_SATKAAN",S[S.TAI_THAM_SIGN_SATKAANKUU=6827]="TAI_THAM_SIGN_SATKAANKUU",S[S.TAI_THAM_SIGN_HANG=6828]="TAI_THAM_SIGN_HANG",S[S.TAI_THAM_SIGN_CAANG=6829]="TAI_THAM_SIGN_CAANG",S[S.BALINESE_PANTI=7002]="BALINESE_PANTI",S[S.BALINESE_PAMADA=7003]="BALINESE_PAMADA",S[S.BALINESE_WINDU=7004]="BALINESE_WINDU",S[S.BALINESE_CARIK_PAMUNGKAH=7005]="BALINESE_CARIK_PAMUNGKAH",S[S.BALINESE_CARIK_SIKI=7006]="BALINESE_CARIK_SIKI",S[S.BALINESE_CARIK_PAREREN=7007]="BALINESE_CARIK_PAREREN",S[S.BALINESE_PAMENENG=7008]="BALINESE_PAMENENG",S[S.BATAK_SYMBOL_BINDU_NA_METEK=7164]="BATAK_SYMBOL_BINDU_NA_METEK",S[S.BATAK_SYMBOL_BINDU_PINARBORAS=7165]="BATAK_SYMBOL_BINDU_PINARBORAS",S[S.BATAK_SYMBOL_BINDU_JUDUL=7166]="BATAK_SYMBOL_BINDU_JUDUL",S[S.BATAK_SYMBOL_BINDU_PANGOLAT=7167]="BATAK_SYMBOL_BINDU_PANGOLAT",S[S.LEPCHA_PUNCTUATION_TA_ROL=7227]="LEPCHA_PUNCTUATION_TA_ROL",S[S.LEPCHA_PUNCTUATION_NYET_THYOOM_TA_ROL=7228]="LEPCHA_PUNCTUATION_NYET_THYOOM_TA_ROL",S[S.LEPCHA_PUNCTUATION_CER_WA=7229]="LEPCHA_PUNCTUATION_CER_WA",S[S.LEPCHA_PUNCTUATION_TSHOOK_CER_WA=7230]="LEPCHA_PUNCTUATION_TSHOOK_CER_WA",S[S.LEPCHA_PUNCTUATION_TSHOOK=7231]="LEPCHA_PUNCTUATION_TSHOOK",S[S.OL_CHIKI_PUNCTUATION_MUCAAD=7294]="OL_CHIKI_PUNCTUATION_MUCAAD",S[S.OL_CHIKI_PUNCTUATION_DOUBLE_MUCAAD=7295]="OL_CHIKI_PUNCTUATION_DOUBLE_MUCAAD",S[S.SUNDANESE_PUNCTUATION_BINDU_SURYA=7360]="SUNDANESE_PUNCTUATION_BINDU_SURYA",S[S.SUNDANESE_PUNCTUATION_BINDU_PANGLONG=7361]="SUNDANESE_PUNCTUATION_BINDU_PANGLONG",S[S.SUNDANESE_PUNCTUATION_BINDU_PURNAMA=7362]="SUNDANESE_PUNCTUATION_BINDU_PURNAMA",S[S.SUNDANESE_PUNCTUATION_BINDU_CAKRA=7363]="SUNDANESE_PUNCTUATION_BINDU_CAKRA",S[S.SUNDANESE_PUNCTUATION_BINDU_LEU_SATANGA=7364]="SUNDANESE_PUNCTUATION_BINDU_LEU_SATANGA",S[S.SUNDANESE_PUNCTUATION_BINDU_KA_SATANGA=7365]="SUNDANESE_PUNCTUATION_BINDU_KA_SATANGA",S[S.SUNDANESE_PUNCTUATION_BINDU_DA_SATANGA=7366]="SUNDANESE_PUNCTUATION_BINDU_DA_SATANGA",S[S.SUNDANESE_PUNCTUATION_BINDU_BA_SATANGA=7367]="SUNDANESE_PUNCTUATION_BINDU_BA_SATANGA",S[S.VEDIC_SIGN_NIHSHVASA=7379]="VEDIC_SIGN_NIHSHVASA",S[S.DOUBLE_VERTICAL_LINE=8214]="DOUBLE_VERTICAL_LINE",S[S.DOUBLE_LOW_LINE=8215]="DOUBLE_LOW_LINE",S[S.DAGGER=8224]="DAGGER",S[S.DOUBLE_DAGGER=8225]="DOUBLE_DAGGER",S[S.BULLET=8226]="BULLET",S[S.TRIANGULAR_BULLET=8227]="TRIANGULAR_BULLET",S[S.ONE_DOT_LEADER=8228]="ONE_DOT_LEADER",S[S.TWO_DOT_LEADER=8229]="TWO_DOT_LEADER",S[S.HORIZONTAL_ELLIPSIS=8230]="HORIZONTAL_ELLIPSIS",S[S.HYPHENATION_POINT=8231]="HYPHENATION_POINT",S[S.PER_MILLE_SIGN=8240]="PER_MILLE_SIGN",S[S.PER_TEN_THOUSAND_SIGN=8241]="PER_TEN_THOUSAND_SIGN",S[S.PRIME=8242]="PRIME",S[S.DOUBLE_PRIME=8243]="DOUBLE_PRIME",S[S.TRIPLE_PRIME=8244]="TRIPLE_PRIME",S[S.REVERSED_PRIME=8245]="REVERSED_PRIME",S[S.REVERSED_DOUBLE_PRIME=8246]="REVERSED_DOUBLE_PRIME",S[S.REVERSED_TRIPLE_PRIME=8247]="REVERSED_TRIPLE_PRIME",S[S.CARET=8248]="CARET",S[S.REFERENCE_MARK=8251]="REFERENCE_MARK",S[S.DOUBLE_EXCLAMATION_MARK=8252]="DOUBLE_EXCLAMATION_MARK",S[S.INTERROBANG=8253]="INTERROBANG",S[S.OVERLINE=8254]="OVERLINE",S[S.CARET_INSERTION_POINT=8257]="CARET_INSERTION_POINT",S[S.ASTERISM=8258]="ASTERISM",S[S.HYPHEN_BULLET=8259]="HYPHEN_BULLET",S[S.DOUBLE_QUESTION_MARK=8263]="DOUBLE_QUESTION_MARK",S[S.QUESTION_EXCLAMATION_MARK=8264]="QUESTION_EXCLAMATION_MARK",S[S.EXCLAMATION_QUESTION_MARK=8265]="EXCLAMATION_QUESTION_MARK",S[S.TIRONIAN_SIGN_ET=8266]="TIRONIAN_SIGN_ET",S[S.REVERSED_PILCROW_SIGN=8267]="REVERSED_PILCROW_SIGN",S[S.BLACK_LEFTWARDS_BULLET=8268]="BLACK_LEFTWARDS_BULLET",S[S.BLACK_RIGHTWARDS_BULLET=8269]="BLACK_RIGHTWARDS_BULLET",S[S.LOW_ASTERISK=8270]="LOW_ASTERISK",S[S.REVERSED_SEMICOLON=8271]="REVERSED_SEMICOLON",S[S.CLOSE_UP=8272]="CLOSE_UP",S[S.TWO_ASTERISKS_ALIGNED_VERTICALLY=8273]="TWO_ASTERISKS_ALIGNED_VERTICALLY",S[S.SWUNG_DASH=8275]="SWUNG_DASH",S[S.FLOWER_PUNCTUATION_MARK=8277]="FLOWER_PUNCTUATION_MARK",S[S.THREE_DOT_PUNCTUATION=8278]="THREE_DOT_PUNCTUATION",S[S.QUADRUPLE_PRIME=8279]="QUADRUPLE_PRIME",S[S.FOUR_DOT_PUNCTUATION=8280]="FOUR_DOT_PUNCTUATION",S[S.FIVE_DOT_PUNCTUATION=8281]="FIVE_DOT_PUNCTUATION",S[S.TWO_DOT_PUNCTUATION=8282]="TWO_DOT_PUNCTUATION",S[S.FOUR_DOT_MARK=8283]="FOUR_DOT_MARK",S[S.DOTTED_CROSS=8284]="DOTTED_CROSS",S[S.TRICOLON=8285]="TRICOLON",S[S.VERTICAL_FOUR_DOTS=8286]="VERTICAL_FOUR_DOTS",S[S.COPTIC_OLD_NUBIAN_FULL_STOP=11513]="COPTIC_OLD_NUBIAN_FULL_STOP",S[S.COPTIC_OLD_NUBIAN_DIRECT_QUESTION_MARK=11514]="COPTIC_OLD_NUBIAN_DIRECT_QUESTION_MARK",S[S.COPTIC_OLD_NUBIAN_INDIRECT_QUESTION_MARK=11515]="COPTIC_OLD_NUBIAN_INDIRECT_QUESTION_MARK",S[S.COPTIC_OLD_NUBIAN_VERSE_DIVIDER=11516]="COPTIC_OLD_NUBIAN_VERSE_DIVIDER",S[S.COPTIC_FULL_STOP=11518]="COPTIC_FULL_STOP",S[S.COPTIC_MORPHOLOGICAL_DIVIDER=11519]="COPTIC_MORPHOLOGICAL_DIVIDER",S[S.TIFINAGH_SEPARATOR_MARK=11632]="TIFINAGH_SEPARATOR_MARK",S[S.RIGHT_ANGLE_SUBSTITUTION_MARKER=11776]="RIGHT_ANGLE_SUBSTITUTION_MARKER",S[S.RIGHT_ANGLE_DOTTED_SUBSTITUTION_MARKER=11777]="RIGHT_ANGLE_DOTTED_SUBSTITUTION_MARKER",S[S.RAISED_INTERPOLATION_MARKER=11782]="RAISED_INTERPOLATION_MARKER",S[S.RAISED_DOTTED_INTERPOLATION_MARKER=11783]="RAISED_DOTTED_INTERPOLATION_MARKER",S[S.DOTTED_TRANSPOSITION_MARKER=11784]="DOTTED_TRANSPOSITION_MARKER",S[S.RAISED_SQUARE=11787]="RAISED_SQUARE",S[S.EDITORIAL_CORONIS=11790]="EDITORIAL_CORONIS",S[S.PARAGRAPHOS=11791]="PARAGRAPHOS",S[S.FORKED_PARAGRAPHOS=11792]="FORKED_PARAGRAPHOS",S[S.REVERSED_FORKED_PARAGRAPHOS=11793]="REVERSED_FORKED_PARAGRAPHOS",S[S.HYPODIASTOLE=11794]="HYPODIASTOLE",S[S.DOTTED_OBELOS=11795]="DOTTED_OBELOS",S[S.DOWNWARDS_ANCORA=11796]="DOWNWARDS_ANCORA",S[S.UPWARDS_ANCORA=11797]="UPWARDS_ANCORA",S[S.DOTTED_RIGHT_POINTING_ANGLE=11798]="DOTTED_RIGHT_POINTING_ANGLE",S[S.INVERTED_INTERROBANG=11800]="INVERTED_INTERROBANG",S[S.PALM_BRANCH=11801]="PALM_BRANCH",S[S.TILDE_WITH_RING_ABOVE=11803]="TILDE_WITH_RING_ABOVE",S[S.TILDE_WITH_DOT_ABOVE=11806]="TILDE_WITH_DOT_ABOVE",S[S.TILDE_WITH_DOT_BELOW=11807]="TILDE_WITH_DOT_BELOW",S[S.TWO_DOTS_OVER_ONE_DOT_PUNCTUATION=11818]="TWO_DOTS_OVER_ONE_DOT_PUNCTUATION",S[S.ONE_DOT_OVER_TWO_DOTS_PUNCTUATION=11819]="ONE_DOT_OVER_TWO_DOTS_PUNCTUATION",S[S.SQUARED_FOUR_DOT_PUNCTUATION=11820]="SQUARED_FOUR_DOT_PUNCTUATION",S[S.FIVE_DOT_MARK=11821]="FIVE_DOT_MARK",S[S.REVERSED_QUESTION_MARK=11822]="REVERSED_QUESTION_MARK",S[S.RING_POINT=11824]="RING_POINT",S[S.WORD_SEPARATOR_MIDDLE_DOT=11825]="WORD_SEPARATOR_MIDDLE_DOT",S[S.TURNED_COMMA=11826]="TURNED_COMMA",S[S.RAISED_DOT=11827]="RAISED_DOT",S[S.RAISED_COMMA=11828]="RAISED_COMMA",S[S.TURNED_SEMICOLON=11829]="TURNED_SEMICOLON",S[S.DAGGER_WITH_LEFT_GUARD=11830]="DAGGER_WITH_LEFT_GUARD",S[S.DAGGER_WITH_RIGHT_GUARD=11831]="DAGGER_WITH_RIGHT_GUARD",S[S.TURNED_DAGGER=11832]="TURNED_DAGGER",S[S.TOP_HALF_SECTION_SIGN=11833]="TOP_HALF_SECTION_SIGN",S[S.STENOGRAPHIC_FULL_STOP=11836]="STENOGRAPHIC_FULL_STOP",S[S.VERTICAL_SIX_DOTS=11837]="VERTICAL_SIX_DOTS",S[S.WIGGLY_VERTICAL_LINE=11838]="WIGGLY_VERTICAL_LINE",S[S.CAPITULUM=11839]="CAPITULUM",S[S.REVERSED_COMMA=11841]="REVERSED_COMMA",S[S.DASH_WITH_LEFT_UPTURN=11843]="DASH_WITH_LEFT_UPTURN",S[S.DOUBLE_SUSPENSION_MARK=11844]="DOUBLE_SUSPENSION_MARK",S[S.INVERTED_LOW_KAVYKA=11845]="INVERTED_LOW_KAVYKA",S[S.INVERTED_LOW_KAVYKA_WITH_KAVYKA_ABOVE=11846]="INVERTED_LOW_KAVYKA_WITH_KAVYKA_ABOVE",S[S.LOW_KAVYKA=11847]="LOW_KAVYKA",S[S.LOW_KAVYKA_WITH_DOT=11848]="LOW_KAVYKA_WITH_DOT",S[S.DOUBLE_STACKED_COMMA=11849]="DOUBLE_STACKED_COMMA",S[S.DOTTED_SOLIDUS=11850]="DOTTED_SOLIDUS",S[S.TRIPLE_DAGGER=11851]="TRIPLE_DAGGER",S[S.MEDIEVAL_COMMA=11852]="MEDIEVAL_COMMA",S[S.PARAGRAPHUS_MARK=11853]="PARAGRAPHUS_MARK",S[S.PUNCTUS_ELEVATUS_MARK=11854]="PUNCTUS_ELEVATUS_MARK",S[S.CORNISH_VERSE_DIVIDER=11855]="CORNISH_VERSE_DIVIDER",S[S.TIRONIAN_SIGN_CAPITAL_ET=11858]="TIRONIAN_SIGN_CAPITAL_ET",S[S.IDEOGRAPHIC_COMMA=12289]="IDEOGRAPHIC_COMMA",S[S.IDEOGRAPHIC_FULL_STOP=12290]="IDEOGRAPHIC_FULL_STOP",S[S.DITTO_MARK=12291]="DITTO_MARK",S[S.PART_ALTERNATION_MARK=12349]="PART_ALTERNATION_MARK",S[S.KATAKANA_MIDDLE_DOT=12539]="KATAKANA_MIDDLE_DOT",S[S.LISU_PUNCTUATION_COMMA=42238]="LISU_PUNCTUATION_COMMA",S[S.LISU_PUNCTUATION_FULL_STOP=42239]="LISU_PUNCTUATION_FULL_STOP",S[S.VAI_COMMA=42509]="VAI_COMMA",S[S.VAI_FULL_STOP=42510]="VAI_FULL_STOP",S[S.VAI_QUESTION_MARK=42511]="VAI_QUESTION_MARK",S[S.SLAVONIC_ASTERISK=42611]="SLAVONIC_ASTERISK",S[S.CYRILLIC_KAVYKA=42622]="CYRILLIC_KAVYKA",S[S.BAMUM_NJAEMLI=42738]="BAMUM_NJAEMLI",S[S.BAMUM_FULL_STOP=42739]="BAMUM_FULL_STOP",S[S.BAMUM_COLON=42740]="BAMUM_COLON",S[S.BAMUM_COMMA=42741]="BAMUM_COMMA",S[S.BAMUM_SEMICOLON=42742]="BAMUM_SEMICOLON",S[S.BAMUM_QUESTION_MARK=42743]="BAMUM_QUESTION_MARK",S[S.PHAGS_PA_SINGLE_HEAD_MARK=43124]="PHAGS_PA_SINGLE_HEAD_MARK",S[S.PHAGS_PA_DOUBLE_HEAD_MARK=43125]="PHAGS_PA_DOUBLE_HEAD_MARK",S[S.PHAGS_PA_MARK_SHAD=43126]="PHAGS_PA_MARK_SHAD",S[S.PHAGS_PA_MARK_DOUBLE_SHAD=43127]="PHAGS_PA_MARK_DOUBLE_SHAD",S[S.SAURASHTRA_DANDA=43214]="SAURASHTRA_DANDA",S[S.SAURASHTRA_DOUBLE_DANDA=43215]="SAURASHTRA_DOUBLE_DANDA",S[S.DEVANAGARI_SIGN_PUSHPIKA=43256]="DEVANAGARI_SIGN_PUSHPIKA",S[S.DEVANAGARI_GAP_FILLER=43257]="DEVANAGARI_GAP_FILLER",S[S.DEVANAGARI_CARET=43258]="DEVANAGARI_CARET",S[S.DEVANAGARI_SIGN_SIDDHAM=43260]="DEVANAGARI_SIGN_SIDDHAM",S[S.KAYAH_LI_SIGN_CWI=43310]="KAYAH_LI_SIGN_CWI",S[S.KAYAH_LI_SIGN_SHYA=43311]="KAYAH_LI_SIGN_SHYA",S[S.REJANG_SECTION_MARK=43359]="REJANG_SECTION_MARK",S[S.JAVANESE_LEFT_RERENGGAN=43457]="JAVANESE_LEFT_RERENGGAN",S[S.JAVANESE_RIGHT_RERENGGAN=43458]="JAVANESE_RIGHT_RERENGGAN",S[S.JAVANESE_PADA_ANDAP=43459]="JAVANESE_PADA_ANDAP",S[S.JAVANESE_PADA_MADYA=43460]="JAVANESE_PADA_MADYA",S[S.JAVANESE_PADA_LUHUR=43461]="JAVANESE_PADA_LUHUR",S[S.JAVANESE_PADA_WINDU=43462]="JAVANESE_PADA_WINDU",S[S.JAVANESE_PADA_PANGKAT=43463]="JAVANESE_PADA_PANGKAT",S[S.JAVANESE_PADA_LINGSA=43464]="JAVANESE_PADA_LINGSA",S[S.JAVANESE_PADA_LUNGSI=43465]="JAVANESE_PADA_LUNGSI",S[S.JAVANESE_PADA_ADEG=43466]="JAVANESE_PADA_ADEG",S[S.JAVANESE_PADA_ADEG_ADEG=43467]="JAVANESE_PADA_ADEG_ADEG",S[S.JAVANESE_PADA_PISELEH=43468]="JAVANESE_PADA_PISELEH",S[S.JAVANESE_TURNED_PADA_PISELEH=43469]="JAVANESE_TURNED_PADA_PISELEH",S[S.JAVANESE_PADA_TIRTA_TUMETES=43486]="JAVANESE_PADA_TIRTA_TUMETES",S[S.JAVANESE_PADA_ISEN_ISEN=43487]="JAVANESE_PADA_ISEN_ISEN",S[S.CHAM_PUNCTUATION_SPIRAL=43612]="CHAM_PUNCTUATION_SPIRAL",S[S.CHAM_PUNCTUATION_DANDA=43613]="CHAM_PUNCTUATION_DANDA",S[S.CHAM_PUNCTUATION_DOUBLE_DANDA=43614]="CHAM_PUNCTUATION_DOUBLE_DANDA",S[S.CHAM_PUNCTUATION_TRIPLE_DANDA=43615]="CHAM_PUNCTUATION_TRIPLE_DANDA",S[S.TAI_VIET_SYMBOL_HO_HOI=43742]="TAI_VIET_SYMBOL_HO_HOI",S[S.TAI_VIET_SYMBOL_KOI_KOI=43743]="TAI_VIET_SYMBOL_KOI_KOI",S[S.MEETEI_MAYEK_CHEIKHAN=43760]="MEETEI_MAYEK_CHEIKHAN",S[S.MEETEI_MAYEK_AHANG_KHUDAM=43761]="MEETEI_MAYEK_AHANG_KHUDAM",S[S.MEETEI_MAYEK_CHEIKHEI=44011]="MEETEI_MAYEK_CHEIKHEI",S[S.PRESENTATION_FORM_FOR_VERTICAL_COMMA=65040]="PRESENTATION_FORM_FOR_VERTICAL_COMMA",S[S.PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_COMMA=65041]="PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_COMMA",S[S.PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_FULL_STOP=65042]="PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_FULL_STOP",S[S.PRESENTATION_FORM_FOR_VERTICAL_COLON=65043]="PRESENTATION_FORM_FOR_VERTICAL_COLON",S[S.PRESENTATION_FORM_FOR_VERTICAL_SEMICOLON=65044]="PRESENTATION_FORM_FOR_VERTICAL_SEMICOLON",S[S.PRESENTATION_FORM_FOR_VERTICAL_EXCLAMATION_MARK=65045]="PRESENTATION_FORM_FOR_VERTICAL_EXCLAMATION_MARK",S[S.PRESENTATION_FORM_FOR_VERTICAL_QUESTION_MARK=65046]="PRESENTATION_FORM_FOR_VERTICAL_QUESTION_MARK",S[S.PRESENTATION_FORM_FOR_VERTICAL_HORIZONTAL_ELLIPSIS=65049]="PRESENTATION_FORM_FOR_VERTICAL_HORIZONTAL_ELLIPSIS",S[S.PRESENTATION_FORM_FOR_VERTICAL_TWO_DOT_LEADER=65072]="PRESENTATION_FORM_FOR_VERTICAL_TWO_DOT_LEADER",S[S.SESAME_DOT=65093]="SESAME_DOT",S[S.WHITE_SESAME_DOT=65094]="WHITE_SESAME_DOT",S[S.DASHED_OVERLINE=65097]="DASHED_OVERLINE",S[S.CENTRELINE_OVERLINE=65098]="CENTRELINE_OVERLINE",S[S.WAVY_OVERLINE=65099]="WAVY_OVERLINE",S[S.DOUBLE_WAVY_OVERLINE=65100]="DOUBLE_WAVY_OVERLINE",S[S.SMALL_COMMA=65104]="SMALL_COMMA",S[S.SMALL_IDEOGRAPHIC_COMMA=65105]="SMALL_IDEOGRAPHIC_COMMA",S[S.SMALL_FULL_STOP=65106]="SMALL_FULL_STOP",S[S.SMALL_SEMICOLON=65108]="SMALL_SEMICOLON",S[S.SMALL_COLON=65109]="SMALL_COLON",S[S.SMALL_QUESTION_MARK=65110]="SMALL_QUESTION_MARK",S[S.SMALL_EXCLAMATION_MARK=65111]="SMALL_EXCLAMATION_MARK",S[S.SMALL_NUMBER_SIGN=65119]="SMALL_NUMBER_SIGN",S[S.SMALL_AMPERSAND=65120]="SMALL_AMPERSAND",S[S.SMALL_ASTERISK=65121]="SMALL_ASTERISK",S[S.SMALL_REVERSE_SOLIDUS=65128]="SMALL_REVERSE_SOLIDUS",S[S.SMALL_PERCENT_SIGN=65130]="SMALL_PERCENT_SIGN",S[S.SMALL_COMMERCIAL_AT=65131]="SMALL_COMMERCIAL_AT",S[S.FULLWIDTH_EXCLAMATION_MARK=65281]="FULLWIDTH_EXCLAMATION_MARK",S[S.FULLWIDTH_QUOTATION_MARK=65282]="FULLWIDTH_QUOTATION_MARK",S[S.FULLWIDTH_NUMBER_SIGN=65283]="FULLWIDTH_NUMBER_SIGN",S[S.FULLWIDTH_PERCENT_SIGN=65285]="FULLWIDTH_PERCENT_SIGN",S[S.FULLWIDTH_AMPERSAND=65286]="FULLWIDTH_AMPERSAND",S[S.FULLWIDTH_APOSTROPHE=65287]="FULLWIDTH_APOSTROPHE",S[S.FULLWIDTH_ASTERISK=65290]="FULLWIDTH_ASTERISK",S[S.FULLWIDTH_COMMA=65292]="FULLWIDTH_COMMA",S[S.FULLWIDTH_FULL_STOP=65294]="FULLWIDTH_FULL_STOP",S[S.FULLWIDTH_SOLIDUS=65295]="FULLWIDTH_SOLIDUS",S[S.FULLWIDTH_COLON=65306]="FULLWIDTH_COLON",S[S.FULLWIDTH_SEMICOLON=65307]="FULLWIDTH_SEMICOLON",S[S.FULLWIDTH_QUESTION_MARK=65311]="FULLWIDTH_QUESTION_MARK",S[S.FULLWIDTH_COMMERCIAL_AT=65312]="FULLWIDTH_COMMERCIAL_AT",S[S.FULLWIDTH_REVERSE_SOLIDUS=65340]="FULLWIDTH_REVERSE_SOLIDUS",S[S.HALFWIDTH_IDEOGRAPHIC_FULL_STOP=65377]="HALFWIDTH_IDEOGRAPHIC_FULL_STOP",S[S.HALFWIDTH_IDEOGRAPHIC_COMMA=65380]="HALFWIDTH_IDEOGRAPHIC_COMMA",S[S.HALFWIDTH_KATAKANA_MIDDLE_DOT=65381]="HALFWIDTH_KATAKANA_MIDDLE_DOT",S[S.AEGEAN_WORD_SEPARATOR_LINE=65792]="AEGEAN_WORD_SEPARATOR_LINE",S[S.AEGEAN_WORD_SEPARATOR_DOT=65793]="AEGEAN_WORD_SEPARATOR_DOT",S[S.AEGEAN_CHECK_MARK=65794]="AEGEAN_CHECK_MARK",S[S.UGARITIC_WORD_DIVIDER=66463]="UGARITIC_WORD_DIVIDER",S[S.OLD_PERSIAN_WORD_DIVIDER=66512]="OLD_PERSIAN_WORD_DIVIDER",S[S.CAUCASIAN_ALBANIAN_CITATION_MARK=66927]="CAUCASIAN_ALBANIAN_CITATION_MARK",S[S.IMPERIAL_ARAMAIC_SECTION_SIGN=67671]="IMPERIAL_ARAMAIC_SECTION_SIGN",S[S.PHOENICIAN_WORD_SEPARATOR=67871]="PHOENICIAN_WORD_SEPARATOR",S[S.LYDIAN_TRIANGULAR_MARK=67903]="LYDIAN_TRIANGULAR_MARK",S[S.KHAROSHTHI_PUNCTUATION_DOT=68176]="KHAROSHTHI_PUNCTUATION_DOT",S[S.KHAROSHTHI_PUNCTUATION_SMALL_CIRCLE=68177]="KHAROSHTHI_PUNCTUATION_SMALL_CIRCLE",S[S.KHAROSHTHI_PUNCTUATION_CIRCLE=68178]="KHAROSHTHI_PUNCTUATION_CIRCLE",S[S.KHAROSHTHI_PUNCTUATION_CRESCENT_BAR=68179]="KHAROSHTHI_PUNCTUATION_CRESCENT_BAR",S[S.KHAROSHTHI_PUNCTUATION_MANGALAM=68180]="KHAROSHTHI_PUNCTUATION_MANGALAM",S[S.KHAROSHTHI_PUNCTUATION_LOTUS=68181]="KHAROSHTHI_PUNCTUATION_LOTUS",S[S.KHAROSHTHI_PUNCTUATION_DANDA=68182]="KHAROSHTHI_PUNCTUATION_DANDA",S[S.KHAROSHTHI_PUNCTUATION_DOUBLE_DANDA=68183]="KHAROSHTHI_PUNCTUATION_DOUBLE_DANDA",S[S.KHAROSHTHI_PUNCTUATION_LINES=68184]="KHAROSHTHI_PUNCTUATION_LINES",S[S.OLD_SOUTH_ARABIAN_NUMERIC_INDICATOR=68223]="OLD_SOUTH_ARABIAN_NUMERIC_INDICATOR",S[S.MANICHAEAN_PUNCTUATION_STAR=68336]="MANICHAEAN_PUNCTUATION_STAR",S[S.MANICHAEAN_PUNCTUATION_FLEURON=68337]="MANICHAEAN_PUNCTUATION_FLEURON",S[S.MANICHAEAN_PUNCTUATION_DOUBLE_DOT_WITHIN_DOT=68338]="MANICHAEAN_PUNCTUATION_DOUBLE_DOT_WITHIN_DOT",S[S.MANICHAEAN_PUNCTUATION_DOT_WITHIN_DOT=68339]="MANICHAEAN_PUNCTUATION_DOT_WITHIN_DOT",S[S.MANICHAEAN_PUNCTUATION_DOT=68340]="MANICHAEAN_PUNCTUATION_DOT",S[S.MANICHAEAN_PUNCTUATION_TWO_DOTS=68341]="MANICHAEAN_PUNCTUATION_TWO_DOTS",S[S.MANICHAEAN_PUNCTUATION_LINE_FILLER=68342]="MANICHAEAN_PUNCTUATION_LINE_FILLER",S[S.AVESTAN_ABBREVIATION_MARK=68409]="AVESTAN_ABBREVIATION_MARK",S[S.TINY_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION=68410]="TINY_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION",S[S.SMALL_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION=68411]="SMALL_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION",S[S.LARGE_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION=68412]="LARGE_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION",S[S.LARGE_ONE_DOT_OVER_TWO_DOTS_PUNCTUATION=68413]="LARGE_ONE_DOT_OVER_TWO_DOTS_PUNCTUATION",S[S.LARGE_TWO_RINGS_OVER_ONE_RING_PUNCTUATION=68414]="LARGE_TWO_RINGS_OVER_ONE_RING_PUNCTUATION",S[S.LARGE_ONE_RING_OVER_TWO_RINGS_PUNCTUATION=68415]="LARGE_ONE_RING_OVER_TWO_RINGS_PUNCTUATION",S[S.PSALTER_PAHLAVI_SECTION_MARK=68505]="PSALTER_PAHLAVI_SECTION_MARK",S[S.PSALTER_PAHLAVI_TURNED_SECTION_MARK=68506]="PSALTER_PAHLAVI_TURNED_SECTION_MARK",S[S.PSALTER_PAHLAVI_FOUR_DOTS_WITH_CROSS=68507]="PSALTER_PAHLAVI_FOUR_DOTS_WITH_CROSS",S[S.PSALTER_PAHLAVI_FOUR_DOTS_WITH_DOT=68508]="PSALTER_PAHLAVI_FOUR_DOTS_WITH_DOT",S[S.SOGDIAN_PUNCTUATION_TWO_VERTICAL_BARS=69461]="SOGDIAN_PUNCTUATION_TWO_VERTICAL_BARS",S[S.SOGDIAN_PUNCTUATION_TWO_VERTICAL_BARS_WITH_DOTS=69462]="SOGDIAN_PUNCTUATION_TWO_VERTICAL_BARS_WITH_DOTS",S[S.SOGDIAN_PUNCTUATION_CIRCLE_WITH_DOT=69463]="SOGDIAN_PUNCTUATION_CIRCLE_WITH_DOT",S[S.SOGDIAN_PUNCTUATION_TWO_CIRCLES_WITH_DOTS=69464]="SOGDIAN_PUNCTUATION_TWO_CIRCLES_WITH_DOTS",S[S.SOGDIAN_PUNCTUATION_HALF_CIRCLE_WITH_DOT=69465]="SOGDIAN_PUNCTUATION_HALF_CIRCLE_WITH_DOT",S[S.BRAHMI_DANDA=69703]="BRAHMI_DANDA",S[S.BRAHMI_DOUBLE_DANDA=69704]="BRAHMI_DOUBLE_DANDA",S[S.BRAHMI_PUNCTUATION_DOT=69705]="BRAHMI_PUNCTUATION_DOT",S[S.BRAHMI_PUNCTUATION_DOUBLE_DOT=69706]="BRAHMI_PUNCTUATION_DOUBLE_DOT",S[S.BRAHMI_PUNCTUATION_LINE=69707]="BRAHMI_PUNCTUATION_LINE",S[S.BRAHMI_PUNCTUATION_CRESCENT_BAR=69708]="BRAHMI_PUNCTUATION_CRESCENT_BAR",S[S.BRAHMI_PUNCTUATION_LOTUS=69709]="BRAHMI_PUNCTUATION_LOTUS",S[S.KAITHI_ABBREVIATION_SIGN=69819]="KAITHI_ABBREVIATION_SIGN",S[S.KAITHI_ENUMERATION_SIGN=69820]="KAITHI_ENUMERATION_SIGN",S[S.KAITHI_SECTION_MARK=69822]="KAITHI_SECTION_MARK",S[S.KAITHI_DOUBLE_SECTION_MARK=69823]="KAITHI_DOUBLE_SECTION_MARK",S[S.KAITHI_DANDA=69824]="KAITHI_DANDA",S[S.KAITHI_DOUBLE_DANDA=69825]="KAITHI_DOUBLE_DANDA",S[S.CHAKMA_SECTION_MARK=69952]="CHAKMA_SECTION_MARK",S[S.CHAKMA_DANDA=69953]="CHAKMA_DANDA",S[S.CHAKMA_DOUBLE_DANDA=69954]="CHAKMA_DOUBLE_DANDA",S[S.CHAKMA_QUESTION_MARK=69955]="CHAKMA_QUESTION_MARK",S[S.MAHAJANI_ABBREVIATION_SIGN=70004]="MAHAJANI_ABBREVIATION_SIGN",S[S.MAHAJANI_SECTION_MARK=70005]="MAHAJANI_SECTION_MARK",S[S.SHARADA_DANDA=70085]="SHARADA_DANDA",S[S.SHARADA_DOUBLE_DANDA=70086]="SHARADA_DOUBLE_DANDA",S[S.SHARADA_ABBREVIATION_SIGN=70087]="SHARADA_ABBREVIATION_SIGN",S[S.SHARADA_SEPARATOR=70088]="SHARADA_SEPARATOR",S[S.SHARADA_SUTRA_MARK=70093]="SHARADA_SUTRA_MARK",S[S.SHARADA_SIGN_SIDDHAM=70107]="SHARADA_SIGN_SIDDHAM",S[S.SHARADA_CONTINUATION_SIGN=70109]="SHARADA_CONTINUATION_SIGN",S[S.SHARADA_SECTION_MARK_1=70110]="SHARADA_SECTION_MARK_1",S[S.SHARADA_SECTION_MARK_2=70111]="SHARADA_SECTION_MARK_2",S[S.KHOJKI_DANDA=70200]="KHOJKI_DANDA",S[S.KHOJKI_DOUBLE_DANDA=70201]="KHOJKI_DOUBLE_DANDA",S[S.KHOJKI_WORD_SEPARATOR=70202]="KHOJKI_WORD_SEPARATOR",S[S.KHOJKI_SECTION_MARK=70203]="KHOJKI_SECTION_MARK",S[S.KHOJKI_DOUBLE_SECTION_MARK=70204]="KHOJKI_DOUBLE_SECTION_MARK",S[S.KHOJKI_ABBREVIATION_SIGN=70205]="KHOJKI_ABBREVIATION_SIGN",S[S.MULTANI_SECTION_MARK=70313]="MULTANI_SECTION_MARK",S[S.NEWA_DANDA=70731]="NEWA_DANDA",S[S.NEWA_DOUBLE_DANDA=70732]="NEWA_DOUBLE_DANDA",S[S.NEWA_COMMA=70733]="NEWA_COMMA",S[S.NEWA_GAP_FILLER=70734]="NEWA_GAP_FILLER",S[S.NEWA_ABBREVIATION_SIGN=70735]="NEWA_ABBREVIATION_SIGN",S[S.NEWA_DOUBLE_COMMA=70746]="NEWA_DOUBLE_COMMA",S[S.NEWA_PLACEHOLDER_MARK=70747]="NEWA_PLACEHOLDER_MARK",S[S.NEWA_INSERTION_SIGN=70749]="NEWA_INSERTION_SIGN",S[S.TIRHUTA_ABBREVIATION_SIGN=70854]="TIRHUTA_ABBREVIATION_SIGN",S[S.SIDDHAM_SIGN_SIDDHAM=71105]="SIDDHAM_SIGN_SIDDHAM",S[S.SIDDHAM_DANDA=71106]="SIDDHAM_DANDA",S[S.SIDDHAM_DOUBLE_DANDA=71107]="SIDDHAM_DOUBLE_DANDA",S[S.SIDDHAM_SEPARATOR_DOT=71108]="SIDDHAM_SEPARATOR_DOT",S[S.SIDDHAM_SEPARATOR_BAR=71109]="SIDDHAM_SEPARATOR_BAR",S[S.SIDDHAM_REPETITION_MARK_1=71110]="SIDDHAM_REPETITION_MARK_1",S[S.SIDDHAM_REPETITION_MARK_2=71111]="SIDDHAM_REPETITION_MARK_2",S[S.SIDDHAM_REPETITION_MARK_3=71112]="SIDDHAM_REPETITION_MARK_3",S[S.SIDDHAM_END_OF_TEXT_MARK=71113]="SIDDHAM_END_OF_TEXT_MARK",S[S.SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_U_SHAPED_ORNAMENTS=71114]="SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_U_SHAPED_ORNAMENTS",S[S.SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_DOTTED_CRESCENTS=71115]="SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_DOTTED_CRESCENTS",S[S.SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_CRESCENTS=71116]="SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_CRESCENTS",S[S.SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_DOUBLE_CRESCENTS=71117]="SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_DOUBLE_CRESCENTS",S[S.SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_TRIPLE_CRESCENTS=71118]="SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_TRIPLE_CRESCENTS",S[S.SIDDHAM_SECTION_MARK_DOUBLE_RING=71119]="SIDDHAM_SECTION_MARK_DOUBLE_RING",S[S.SIDDHAM_SECTION_MARK_DOUBLE_RING_WITH_RAYS=71120]="SIDDHAM_SECTION_MARK_DOUBLE_RING_WITH_RAYS",S[S.SIDDHAM_SECTION_MARK_WITH_DOUBLE_CRESCENTS=71121]="SIDDHAM_SECTION_MARK_WITH_DOUBLE_CRESCENTS",S[S.SIDDHAM_SECTION_MARK_WITH_TRIPLE_CRESCENTS=71122]="SIDDHAM_SECTION_MARK_WITH_TRIPLE_CRESCENTS",S[S.SIDDHAM_SECTION_MARK_WITH_QUADRUPLE_CRESCENTS=71123]="SIDDHAM_SECTION_MARK_WITH_QUADRUPLE_CRESCENTS",S[S.SIDDHAM_SECTION_MARK_WITH_SEPTUPLE_CRESCENTS=71124]="SIDDHAM_SECTION_MARK_WITH_SEPTUPLE_CRESCENTS",S[S.SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_RAYS=71125]="SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_RAYS",S[S.SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_TWO_ENCLOSURES=71126]="SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_TWO_ENCLOSURES",S[S.SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_FOUR_ENCLOSURES=71127]="SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_FOUR_ENCLOSURES",S[S.MODI_DANDA=71233]="MODI_DANDA",S[S.MODI_DOUBLE_DANDA=71234]="MODI_DOUBLE_DANDA",S[S.MODI_ABBREVIATION_SIGN=71235]="MODI_ABBREVIATION_SIGN",S[S.MONGOLIAN_BIRGA_WITH_ORNAMENT=71264]="MONGOLIAN_BIRGA_WITH_ORNAMENT",S[S.MONGOLIAN_ROTATED_BIRGA=71265]="MONGOLIAN_ROTATED_BIRGA",S[S.MONGOLIAN_DOUBLE_BIRGA_WITH_ORNAMENT=71266]="MONGOLIAN_DOUBLE_BIRGA_WITH_ORNAMENT",S[S.MONGOLIAN_TRIPLE_BIRGA_WITH_ORNAMENT=71267]="MONGOLIAN_TRIPLE_BIRGA_WITH_ORNAMENT",S[S.MONGOLIAN_BIRGA_WITH_DOUBLE_ORNAMENT=71268]="MONGOLIAN_BIRGA_WITH_DOUBLE_ORNAMENT",S[S.MONGOLIAN_ROTATED_BIRGA_WITH_ORNAMENT=71269]="MONGOLIAN_ROTATED_BIRGA_WITH_ORNAMENT",S[S.MONGOLIAN_ROTATED_BIRGA_WITH_DOUBLE_ORNAMENT=71270]="MONGOLIAN_ROTATED_BIRGA_WITH_DOUBLE_ORNAMENT",S[S.MONGOLIAN_INVERTED_BIRGA=71271]="MONGOLIAN_INVERTED_BIRGA",S[S.MONGOLIAN_INVERTED_BIRGA_WITH_DOUBLE_ORNAMENT=71272]="MONGOLIAN_INVERTED_BIRGA_WITH_DOUBLE_ORNAMENT",S[S.MONGOLIAN_SWIRL_BIRGA=71273]="MONGOLIAN_SWIRL_BIRGA",S[S.MONGOLIAN_SWIRL_BIRGA_WITH_ORNAMENT=71274]="MONGOLIAN_SWIRL_BIRGA_WITH_ORNAMENT",S[S.MONGOLIAN_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT=71275]="MONGOLIAN_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT",S[S.MONGOLIAN_TURNED_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT=71276]="MONGOLIAN_TURNED_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT",S[S.AHOM_SIGN_SMALL_SECTION=71484]="AHOM_SIGN_SMALL_SECTION",S[S.AHOM_SIGN_SECTION=71485]="AHOM_SIGN_SECTION",S[S.AHOM_SIGN_RULAI=71486]="AHOM_SIGN_RULAI",S[S.DOGRA_ABBREVIATION_SIGN=71739]="DOGRA_ABBREVIATION_SIGN",S[S.DIVES_AKURU_DOUBLE_DANDA=72004]="DIVES_AKURU_DOUBLE_DANDA",S[S.DIVES_AKURU_GAP_FILLER=72005]="DIVES_AKURU_GAP_FILLER",S[S.DIVES_AKURU_END_OF_TEXT_MARK=72006]="DIVES_AKURU_END_OF_TEXT_MARK",S[S.NANDINAGARI_SIGN_SIDDHAM=72162]="NANDINAGARI_SIGN_SIDDHAM",S[S.ZANABAZAR_SQUARE_INITIAL_HEAD_MARK=72255]="ZANABAZAR_SQUARE_INITIAL_HEAD_MARK",S[S.ZANABAZAR_SQUARE_CLOSING_HEAD_MARK=72256]="ZANABAZAR_SQUARE_CLOSING_HEAD_MARK",S[S.ZANABAZAR_SQUARE_MARK_TSHEG=72257]="ZANABAZAR_SQUARE_MARK_TSHEG",S[S.ZANABAZAR_SQUARE_MARK_SHAD=72258]="ZANABAZAR_SQUARE_MARK_SHAD",S[S.ZANABAZAR_SQUARE_MARK_DOUBLE_SHAD=72259]="ZANABAZAR_SQUARE_MARK_DOUBLE_SHAD",S[S.ZANABAZAR_SQUARE_MARK_LONG_TSHEG=72260]="ZANABAZAR_SQUARE_MARK_LONG_TSHEG",S[S.ZANABAZAR_SQUARE_INITIAL_DOUBLE_LINED_HEAD_MARK=72261]="ZANABAZAR_SQUARE_INITIAL_DOUBLE_LINED_HEAD_MARK",S[S.ZANABAZAR_SQUARE_CLOSING_DOUBLE_LINED_HEAD_MARK=72262]="ZANABAZAR_SQUARE_CLOSING_DOUBLE_LINED_HEAD_MARK",S[S.SOYOMBO_MARK_TSHEG=72346]="SOYOMBO_MARK_TSHEG",S[S.SOYOMBO_MARK_SHAD=72347]="SOYOMBO_MARK_SHAD",S[S.SOYOMBO_MARK_DOUBLE_SHAD=72348]="SOYOMBO_MARK_DOUBLE_SHAD",S[S.SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_TRIPLE_FLAME=72350]="SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_TRIPLE_FLAME",S[S.SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_FLAME=72351]="SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_FLAME",S[S.SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN=72352]="SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN",S[S.SOYOMBO_TERMINAL_MARK_1=72353]="SOYOMBO_TERMINAL_MARK_1",S[S.SOYOMBO_TERMINAL_MARK_2=72354]="SOYOMBO_TERMINAL_MARK_2",S[S.BHAIKSUKI_DANDA=72769]="BHAIKSUKI_DANDA",S[S.BHAIKSUKI_DOUBLE_DANDA=72770]="BHAIKSUKI_DOUBLE_DANDA",S[S.BHAIKSUKI_WORD_SEPARATOR=72771]="BHAIKSUKI_WORD_SEPARATOR",S[S.BHAIKSUKI_GAP_FILLER_1=72772]="BHAIKSUKI_GAP_FILLER_1",S[S.BHAIKSUKI_GAP_FILLER_2=72773]="BHAIKSUKI_GAP_FILLER_2",S[S.MARCHEN_HEAD_MARK=72816]="MARCHEN_HEAD_MARK",S[S.MARCHEN_MARK_SHAD=72817]="MARCHEN_MARK_SHAD",S[S.MAKASAR_PASSIMBANG=73463]="MAKASAR_PASSIMBANG",S[S.MAKASAR_END_OF_SECTION=73464]="MAKASAR_END_OF_SECTION",S[S.TAMIL_PUNCTUATION_END_OF_TEXT=73727]="TAMIL_PUNCTUATION_END_OF_TEXT",S[S.CUNEIFORM_PUNCTUATION_SIGN_OLD_ASSYRIAN_WORD_DIVIDER=74864]="CUNEIFORM_PUNCTUATION_SIGN_OLD_ASSYRIAN_WORD_DIVIDER",S[S.CUNEIFORM_PUNCTUATION_SIGN_VERTICAL_COLON=74865]="CUNEIFORM_PUNCTUATION_SIGN_VERTICAL_COLON",S[S.CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_COLON=74866]="CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_COLON",S[S.CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_TRICOLON=74867]="CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_TRICOLON",S[S.CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_QUADCOLON=74868]="CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_QUADCOLON",S[S.MRO_DANDA=92782]="MRO_DANDA",S[S.MRO_DOUBLE_DANDA=92783]="MRO_DOUBLE_DANDA",S[S.BASSA_VAH_FULL_STOP=92917]="BASSA_VAH_FULL_STOP",S[S.PAHAWH_HMONG_SIGN_VOS_THOM=92983]="PAHAWH_HMONG_SIGN_VOS_THOM",S[S.PAHAWH_HMONG_SIGN_VOS_TSHAB_CEEB=92984]="PAHAWH_HMONG_SIGN_VOS_TSHAB_CEEB",S[S.PAHAWH_HMONG_SIGN_CIM_CHEEM=92985]="PAHAWH_HMONG_SIGN_CIM_CHEEM",S[S.PAHAWH_HMONG_SIGN_VOS_THIAB=92986]="PAHAWH_HMONG_SIGN_VOS_THIAB",S[S.PAHAWH_HMONG_SIGN_VOS_FEEM=92987]="PAHAWH_HMONG_SIGN_VOS_FEEM",S[S.PAHAWH_HMONG_SIGN_XAUS=92996]="PAHAWH_HMONG_SIGN_XAUS",S[S.MEDEFAIDRIN_COMMA=93847]="MEDEFAIDRIN_COMMA",S[S.MEDEFAIDRIN_FULL_STOP=93848]="MEDEFAIDRIN_FULL_STOP",S[S.MEDEFAIDRIN_SYMBOL_AIVA=93849]="MEDEFAIDRIN_SYMBOL_AIVA",S[S.MEDEFAIDRIN_EXCLAMATION_OH=93850]="MEDEFAIDRIN_EXCLAMATION_OH",S[S.OLD_CHINESE_HOOK_MARK=94178]="OLD_CHINESE_HOOK_MARK",S[S.DUPLOYAN_PUNCTUATION_CHINOOK_FULL_STOP=113823]="DUPLOYAN_PUNCTUATION_CHINOOK_FULL_STOP",S[S.SIGNWRITING_COMMA=121479]="SIGNWRITING_COMMA",S[S.SIGNWRITING_FULL_STOP=121480]="SIGNWRITING_FULL_STOP",S[S.SIGNWRITING_SEMICOLON=121481]="SIGNWRITING_SEMICOLON",S[S.SIGNWRITING_COLON=121482]="SIGNWRITING_COLON",S[S.SIGNWRITING_PARENTHESIS=121483]="SIGNWRITING_PARENTHESIS",S[S.ADLAM_INITIAL_EXCLAMATION_MARK=125278]="ADLAM_INITIAL_EXCLAMATION_MARK",S[S.ADLAM_INITIAL_QUESTION_MARK=125279]="ADLAM_INITIAL_QUESTION_MARK"})(UnicodePoCodePoint||(UnicodePoCodePoint={}));var UnicodePsCodePoint;(function(S){S[S.LEFT_PARENTHESIS=40]="LEFT_PARENTHESIS",S[S.LEFT_SQUARE_BRACKET=91]="LEFT_SQUARE_BRACKET",S[S.LEFT_CURLY_BRACKET=123]="LEFT_CURLY_BRACKET",S[S.TIBETAN_MARK_GUG_RTAGS_GYON=3898]="TIBETAN_MARK_GUG_RTAGS_GYON",S[S.TIBETAN_MARK_ANG_KHANG_GYON=3900]="TIBETAN_MARK_ANG_KHANG_GYON",S[S.OGHAM_FEATHER_MARK=5787]="OGHAM_FEATHER_MARK",S[S.SINGLE_LOW_9_QUOTATION_MARK=8218]="SINGLE_LOW_9_QUOTATION_MARK",S[S.DOUBLE_LOW_9_QUOTATION_MARK=8222]="DOUBLE_LOW_9_QUOTATION_MARK",S[S.LEFT_SQUARE_BRACKET_WITH_QUILL=8261]="LEFT_SQUARE_BRACKET_WITH_QUILL",S[S.SUPERSCRIPT_LEFT_PARENTHESIS=8317]="SUPERSCRIPT_LEFT_PARENTHESIS",S[S.SUBSCRIPT_LEFT_PARENTHESIS=8333]="SUBSCRIPT_LEFT_PARENTHESIS",S[S.LEFT_CEILING=8968]="LEFT_CEILING",S[S.LEFT_FLOOR=8970]="LEFT_FLOOR",S[S.LEFT_POINTING_ANGLE_BRACKET=9001]="LEFT_POINTING_ANGLE_BRACKET",S[S.MEDIUM_LEFT_PARENTHESIS_ORNAMENT=10088]="MEDIUM_LEFT_PARENTHESIS_ORNAMENT",S[S.MEDIUM_FLATTENED_LEFT_PARENTHESIS_ORNAMENT=10090]="MEDIUM_FLATTENED_LEFT_PARENTHESIS_ORNAMENT",S[S.MEDIUM_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT=10092]="MEDIUM_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT",S[S.HEAVY_LEFT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT=10094]="HEAVY_LEFT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT",S[S.HEAVY_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT=10096]="HEAVY_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT",S[S.LIGHT_LEFT_TORTOISE_SHELL_BRACKET_ORNAMENT=10098]="LIGHT_LEFT_TORTOISE_SHELL_BRACKET_ORNAMENT",S[S.MEDIUM_LEFT_CURLY_BRACKET_ORNAMENT=10100]="MEDIUM_LEFT_CURLY_BRACKET_ORNAMENT",S[S.LEFT_S_SHAPED_BAG_DELIMITER=10181]="LEFT_S_SHAPED_BAG_DELIMITER",S[S.MATHEMATICAL_LEFT_WHITE_SQUARE_BRACKET=10214]="MATHEMATICAL_LEFT_WHITE_SQUARE_BRACKET",S[S.MATHEMATICAL_LEFT_ANGLE_BRACKET=10216]="MATHEMATICAL_LEFT_ANGLE_BRACKET",S[S.MATHEMATICAL_LEFT_DOUBLE_ANGLE_BRACKET=10218]="MATHEMATICAL_LEFT_DOUBLE_ANGLE_BRACKET",S[S.MATHEMATICAL_LEFT_WHITE_TORTOISE_SHELL_BRACKET=10220]="MATHEMATICAL_LEFT_WHITE_TORTOISE_SHELL_BRACKET",S[S.MATHEMATICAL_LEFT_FLATTENED_PARENTHESIS=10222]="MATHEMATICAL_LEFT_FLATTENED_PARENTHESIS",S[S.LEFT_WHITE_CURLY_BRACKET=10627]="LEFT_WHITE_CURLY_BRACKET",S[S.LEFT_WHITE_PARENTHESIS=10629]="LEFT_WHITE_PARENTHESIS",S[S.Z_NOTATION_LEFT_IMAGE_BRACKET=10631]="Z_NOTATION_LEFT_IMAGE_BRACKET",S[S.Z_NOTATION_LEFT_BINDING_BRACKET=10633]="Z_NOTATION_LEFT_BINDING_BRACKET",S[S.LEFT_SQUARE_BRACKET_WITH_UNDERBAR=10635]="LEFT_SQUARE_BRACKET_WITH_UNDERBAR",S[S.LEFT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER=10637]="LEFT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER",S[S.LEFT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER=10639]="LEFT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER",S[S.LEFT_ANGLE_BRACKET_WITH_DOT=10641]="LEFT_ANGLE_BRACKET_WITH_DOT",S[S.LEFT_ARC_LESS_THAN_BRACKET=10643]="LEFT_ARC_LESS_THAN_BRACKET",S[S.DOUBLE_LEFT_ARC_GREATER_THAN_BRACKET=10645]="DOUBLE_LEFT_ARC_GREATER_THAN_BRACKET",S[S.LEFT_BLACK_TORTOISE_SHELL_BRACKET=10647]="LEFT_BLACK_TORTOISE_SHELL_BRACKET",S[S.LEFT_WIGGLY_FENCE=10712]="LEFT_WIGGLY_FENCE",S[S.LEFT_DOUBLE_WIGGLY_FENCE=10714]="LEFT_DOUBLE_WIGGLY_FENCE",S[S.LEFT_POINTING_CURVED_ANGLE_BRACKET=10748]="LEFT_POINTING_CURVED_ANGLE_BRACKET",S[S.TOP_LEFT_HALF_BRACKET=11810]="TOP_LEFT_HALF_BRACKET",S[S.BOTTOM_LEFT_HALF_BRACKET=11812]="BOTTOM_LEFT_HALF_BRACKET",S[S.LEFT_SIDEWAYS_U_BRACKET=11814]="LEFT_SIDEWAYS_U_BRACKET",S[S.LEFT_DOUBLE_PARENTHESIS=11816]="LEFT_DOUBLE_PARENTHESIS",S[S.DOUBLE_LOW_REVERSED_9_QUOTATION_MARK=11842]="DOUBLE_LOW_REVERSED_9_QUOTATION_MARK",S[S.LEFT_ANGLE_BRACKET=12296]="LEFT_ANGLE_BRACKET",S[S.LEFT_DOUBLE_ANGLE_BRACKET=12298]="LEFT_DOUBLE_ANGLE_BRACKET",S[S.LEFT_CORNER_BRACKET=12300]="LEFT_CORNER_BRACKET",S[S.LEFT_WHITE_CORNER_BRACKET=12302]="LEFT_WHITE_CORNER_BRACKET",S[S.LEFT_BLACK_LENTICULAR_BRACKET=12304]="LEFT_BLACK_LENTICULAR_BRACKET",S[S.LEFT_TORTOISE_SHELL_BRACKET=12308]="LEFT_TORTOISE_SHELL_BRACKET",S[S.LEFT_WHITE_LENTICULAR_BRACKET=12310]="LEFT_WHITE_LENTICULAR_BRACKET",S[S.LEFT_WHITE_TORTOISE_SHELL_BRACKET=12312]="LEFT_WHITE_TORTOISE_SHELL_BRACKET",S[S.LEFT_WHITE_SQUARE_BRACKET=12314]="LEFT_WHITE_SQUARE_BRACKET",S[S.REVERSED_DOUBLE_PRIME_QUOTATION_MARK=12317]="REVERSED_DOUBLE_PRIME_QUOTATION_MARK",S[S.ORNATE_RIGHT_PARENTHESIS=64831]="ORNATE_RIGHT_PARENTHESIS",S[S.PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_LENTICULAR_BRACKET=65047]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_LENTICULAR_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_LEFT_PARENTHESIS=65077]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_PARENTHESIS",S[S.PRESENTATION_FORM_FOR_VERTICAL_LEFT_CURLY_BRACKET=65079]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_CURLY_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_LEFT_TORTOISE_SHELL_BRACKET=65081]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_TORTOISE_SHELL_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_LEFT_BLACK_LENTICULAR_BRACKET=65083]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_BLACK_LENTICULAR_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_LEFT_DOUBLE_ANGLE_BRACKET=65085]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_DOUBLE_ANGLE_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_LEFT_ANGLE_BRACKET=65087]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_ANGLE_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_LEFT_CORNER_BRACKET=65089]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_CORNER_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_CORNER_BRACKET=65091]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_CORNER_BRACKET",S[S.PRESENTATION_FORM_FOR_VERTICAL_LEFT_SQUARE_BRACKET=65095]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_SQUARE_BRACKET",S[S.SMALL_LEFT_PARENTHESIS=65113]="SMALL_LEFT_PARENTHESIS",S[S.SMALL_LEFT_CURLY_BRACKET=65115]="SMALL_LEFT_CURLY_BRACKET",S[S.SMALL_LEFT_TORTOISE_SHELL_BRACKET=65117]="SMALL_LEFT_TORTOISE_SHELL_BRACKET",S[S.FULLWIDTH_LEFT_PARENTHESIS=65288]="FULLWIDTH_LEFT_PARENTHESIS",S[S.FULLWIDTH_LEFT_SQUARE_BRACKET=65339]="FULLWIDTH_LEFT_SQUARE_BRACKET",S[S.FULLWIDTH_LEFT_CURLY_BRACKET=65371]="FULLWIDTH_LEFT_CURLY_BRACKET",S[S.FULLWIDTH_LEFT_WHITE_PARENTHESIS=65375]="FULLWIDTH_LEFT_WHITE_PARENTHESIS",S[S.HALFWIDTH_LEFT_CORNER_BRACKET=65378]="HALFWIDTH_LEFT_CORNER_BRACKET"})(UnicodePsCodePoint||(UnicodePsCodePoint={}));var UnicodeZsCodePoint;(function(S){S[S.SPACE=32]="SPACE",S[S.NO_BREAK_SPACE=160]="NO_BREAK_SPACE",S[S.OGHAM_SPACE_MARK=5760]="OGHAM_SPACE_MARK",S[S.EN_QUAD=8192]="EN_QUAD",S[S.EM_QUAD=8193]="EM_QUAD",S[S.EN_SPACE=8194]="EN_SPACE",S[S.EM_SPACE=8195]="EM_SPACE",S[S.THREE_PER_EM_SPACE=8196]="THREE_PER_EM_SPACE",S[S.FOUR_PER_EM_SPACE=8197]="FOUR_PER_EM_SPACE",S[S.SIX_PER_EM_SPACE=8198]="SIX_PER_EM_SPACE",S[S.FIGURE_SPACE=8199]="FIGURE_SPACE",S[S.PUNCTUATION_SPACE=8200]="PUNCTUATION_SPACE",S[S.THIN_SPACE=8201]="THIN_SPACE",S[S.HAIR_SPACE=8202]="HAIR_SPACE",S[S.NARROW_NO_BREAK_SPACE=8239]="NARROW_NO_BREAK_SPACE",S[S.MEDIUM_MATHEMATICAL_SPACE=8287]="MEDIUM_MATHEMATICAL_SPACE",S[S.IDEOGRAPHIC_SPACE=12288]="IDEOGRAPHIC_SPACE"})(UnicodeZsCodePoint||(UnicodeZsCodePoint={}));var VirtualCodePoint;(function(S){S[S.LINE_END=-1]="LINE_END",S[S.SPACE=-2]="SPACE"})(VirtualCodePoint||(VirtualCodePoint={}));function createCodePointSearcher(S){const C=[...new Set(S)].sort((I,N)=>I-N),R=C.length;if(R<8)return[I=>{for(let N=0;NL+N);++N);O.push(L,L+N)}if(O.length*1.5{for(let L=0;L{let L=0,B=I;for(;L>>1;N{let N=0,L=R;for(;N>>1;Itypeof C=="number")}createCodePointSearcher([AsciiCodePoint.HT,AsciiCodePoint.LF,AsciiCodePoint.VT,AsciiCodePoint.FF,AsciiCodePoint.CR,AsciiCodePoint.SPACE]);const[isAsciiPunctuationCharacter,asciiPunctuationCharacters]=createCodePointSearcher([AsciiCodePoint.EXCLAMATION_MARK,AsciiCodePoint.DOUBLE_QUOTE,AsciiCodePoint.NUMBER_SIGN,AsciiCodePoint.DOLLAR_SIGN,AsciiCodePoint.PERCENT_SIGN,AsciiCodePoint.AMPERSAND,AsciiCodePoint.SINGLE_QUOTE,AsciiCodePoint.OPEN_PARENTHESIS,AsciiCodePoint.CLOSE_PARENTHESIS,AsciiCodePoint.ASTERISK,AsciiCodePoint.PLUS_SIGN,AsciiCodePoint.COMMA,AsciiCodePoint.MINUS_SIGN,AsciiCodePoint.DOT,AsciiCodePoint.SLASH,AsciiCodePoint.COLON,AsciiCodePoint.SEMICOLON,AsciiCodePoint.OPEN_ANGLE,AsciiCodePoint.EQUALS_SIGN,AsciiCodePoint.CLOSE_ANGLE,AsciiCodePoint.QUESTION_MARK,AsciiCodePoint.AT_SIGN,AsciiCodePoint.OPEN_BRACKET,AsciiCodePoint.BACKSLASH,AsciiCodePoint.CLOSE_BRACKET,AsciiCodePoint.CARET,AsciiCodePoint.UNDERSCORE,AsciiCodePoint.BACKTICK,AsciiCodePoint.OPEN_BRACE,AsciiCodePoint.VERTICAL_SLASH,AsciiCodePoint.CLOSE_BRACE,AsciiCodePoint.TILDE]),isAsciiDigitCharacter=S=>S>=AsciiCodePoint.DIGIT0&&S<=AsciiCodePoint.DIGIT9,isAsciiLowerLetter=S=>S>=AsciiCodePoint.LOWERCASE_A&&S<=AsciiCodePoint.LOWERCASE_Z,isAsciiUpperLetter=S=>S>=AsciiCodePoint.UPPERCASE_A&&S<=AsciiCodePoint.UPPERCASE_Z,isAsciiLetter=S=>isAsciiLowerLetter(S)||isAsciiUpperLetter(S),isAlphanumeric=S=>isAsciiLowerLetter(S)||isAsciiUpperLetter(S)||isAsciiDigitCharacter(S),isAsciiCharacter=S=>S>=AsciiCodePoint.NUL&&S<=AsciiCodePoint.DELETE,[isAsciiControlCharacter,asciiControlCharacters]=createCodePointSearcher([AsciiCodePoint.NUL,AsciiCodePoint.SOH,AsciiCodePoint.STX,AsciiCodePoint.ETX,AsciiCodePoint.EOT,AsciiCodePoint.ENQ,AsciiCodePoint.ACK,AsciiCodePoint.BEL,AsciiCodePoint.BS,AsciiCodePoint.HT,AsciiCodePoint.LF,AsciiCodePoint.VT,AsciiCodePoint.FF,AsciiCodePoint.CR,AsciiCodePoint.SO,AsciiCodePoint.SI,AsciiCodePoint.DLE,AsciiCodePoint.DC1,AsciiCodePoint.DC2,AsciiCodePoint.DC3,AsciiCodePoint.DC4,AsciiCodePoint.NAK,AsciiCodePoint.SYN,AsciiCodePoint.ETB,AsciiCodePoint.CAN,AsciiCodePoint.EM,AsciiCodePoint.SUB,AsciiCodePoint.ESC,AsciiCodePoint.FS,AsciiCodePoint.GS,AsciiCodePoint.RS,AsciiCodePoint.US,AsciiCodePoint.DELETE]),[isWhitespaceCharacter,whitespaceCharacters]=createCodePointSearcher([AsciiCodePoint.VT,AsciiCodePoint.FF,AsciiCodePoint.SPACE,VirtualCodePoint.SPACE,VirtualCodePoint.LINE_END]);AsciiCodePoint.SPACE,VirtualCodePoint.SPACE;const isSpaceCharacter=S=>S===AsciiCodePoint.SPACE||S===VirtualCodePoint.SPACE,isLineEnding=S=>S===VirtualCodePoint.LINE_END,[isPunctuationCharacter,punctuationCharacters]=createCodePointSearcher([...asciiPunctuationCharacters,...collectCodePointsFromEnum(UnicodePcCodePoint),...collectCodePointsFromEnum(UnicodePdCodePoint),...collectCodePointsFromEnum(UnicodePeCodePoint),...collectCodePointsFromEnum(UnicodePfCodePoint),...collectCodePointsFromEnum(UnicodePiCodePoint),...collectCodePointsFromEnum(UnicodePoCodePoint),...collectCodePointsFromEnum(UnicodePsCodePoint)]),isSpaceLike=S=>isSpaceCharacter(S)||isLineEnding(S),[isUnicodeWhitespaceCharacter,unicodeWhitespaceCharacters]=createCodePointSearcher([AsciiCodePoint.HT,AsciiCodePoint.LF,AsciiCodePoint.FF,AsciiCodePoint.CR,VirtualCodePoint.SPACE,VirtualCodePoint.LINE_END,...collectCodePointsFromEnum(UnicodeZsCodePoint)]);var UnicodeCodePoint;(function(S){S[S.REPLACEMENT_CHARACTER=65533]="REPLACEMENT_CHARACTER"})(UnicodeCodePoint||(UnicodeCodePoint={}));function createEntityReferenceTrie(){const S=(I,N)=>{if(I.length<=4){for(let j=0;j=N)return j;return I.length}let L=0,B=I.length;for(;L>>1;I[j].key{let L=C;for(const B of I){const j=S(L.children,B);if(j>=L.children.length){const V={key:B,children:[]};L.children.push(V),L=V;continue}let F=L.children[j];if(F.key===B){L=F;continue}F={key:B,children:[]},L.children.splice(j,0,F),L=F}L.value=N},search:(I,N,L)=>{let B=C;for(let j=N;j=B.children.length)return null;const K=B.children[V];if(K.key!==F)return null;if(K.value!=null)return{nextIndex:j+1,value:K.value};B=K}return null}}}const entityReferenceTrie=createEntityReferenceTrie();entityReferences.forEach(S=>entityReferenceTrie.insert(S.key,S.value));function eatEntityReference(S,C,R){if(C+1>=R)return null;const O=entityReferenceTrie.search(S,C,R);if(O!=null)return O;if(S[C].codePoint!==AsciiCodePoint.NUMBER_SIGN)return null;let I=0,N=C+1;if(S[N].codePoint===AsciiCodePoint.LOWERCASE_X||S[N].codePoint===AsciiCodePoint.UPPERCASE_X){N+=1;for(let B=1;B<=6&&N=AsciiCodePoint.UPPERCASE_A&&j<=AsciiCodePoint.UPPERCASE_F){I=(I<<4)+(j-AsciiCodePoint.UPPERCASE_A+10);continue}if(j>=AsciiCodePoint.LOWERCASE_A&&j<=AsciiCodePoint.LOWERCASE_F){I=(I<<4)+(j-AsciiCodePoint.LOWERCASE_A+10);continue}break}}else for(let B=1;B<=7&&N=R||S[N].codePoint!==AsciiCodePoint.SEMICOLON)return null;let L;try{I===0&&(I=UnicodeCodePoint.REPLACEMENT_CHARACTER),L=String.fromCodePoint(I)}catch{L=String.fromCodePoint(UnicodeCodePoint.REPLACEMENT_CHARACTER)}return{nextIndex:N+1,value:L}}function foldCase(S){return Array.from(S).map(C=>foldingCaseCodeMap[C]??C).join("")}(()=>{try{const S=new RegExp("\\p{Script=Han}|[\\u{3002}\\u{ff1f}\\u{ff01}\\u{ff0c}\\u{3001}\\u{ff1b}\\u{ff1a}\\u{201c}\\u{201d}\\u{2018}\\u{2019}\\u{ff08}\\u{ff09}\\u{300a}\\u{300b}\\u{3008}\\u{3009}\\u{3010}\\u{3011}\\u{300e}\\u{300f}\\u{300c}\\u{300d}\\u{fe43}\\u{fe44}\\u{3014}\\u{3015}\\u{2026}\\u{2014}\\u{ff5e}\\u{fe4f}\\u{ffe5}]","u").source,C=new RegExp(`(${S})\\n+(${S})`,"gu");return R=>R.replace(C,"$1$2")}catch{const S=/[\u{4E00}-\u{9FCC}\u{3400}-\u{4DB5}\u{FA0E}\u{FA0F}\u{FA11}\u{FA13}\u{FA14}\u{FA1F}\u{FA21}\u{FA23}\u{FA24}\u{FA27}-\u{FA29}]|[\u{d840}-\u{d868}][\u{dc00}-\u{dfff}]|\u{d869}[\u{dc00}-\u{ded6}\u{df00}-\u{dfff}]|[\u{d86a}-\u{d86c}][\u{dc00}-\u{dfff}]|\u{d86d}[\u{dc00}-\u{df34}\u{df40}-\u{dfff}]|\u{d86e}[\u{dc00}-\u{dc1d}]/u.source,C=new RegExp(`(${S})\\n+(${S})`,"gu");return R=>R.replace(C,"$1$2")}})(),(()=>{try{const S=new RegExp("\\p{Script=Han}|[\\u{3002}\\u{ff1f}\\u{ff01}\\u{ff0c}\\u{3001}\\u{ff1b}\\u{ff1a}\\u{201c}\\u{201d}\\u{2018}\\u{2019}\\u{ff08}\\u{ff09}\\u{300a}\\u{300b}\\u{3008}\\u{3009}\\u{3010}\\u{3011}\\u{300e}\\u{300f}\\u{300c}\\u{300d}\\u{fe43}\\u{fe44}\\u{3014}\\u{3015}\\u{2026}\\u{2014}\\u{ff5e}\\u{fe4f}\\u{ffe5}]","u").source,C=new RegExp(`(${S})[\\s\\n]+(${S})`,"gu");return R=>R.replace(C,"$1$2")}catch{const S=/[\u{4E00}-\u{9FCC}\u{3400}-\u{4DB5}\u{FA0E}\u{FA0F}\u{FA11}\u{FA13}\u{FA14}\u{FA1F}\u{FA21}\u{FA23}\u{FA24}\u{FA27}-\u{FA29}]|[\u{d840}-\u{d868}][\u{dc00}-\u{dfff}]|\u{d869}[\u{dc00}-\u{ded6}\u{df00}-\u{dfff}]|[\u{d86a}-\u{d86c}][\u{dc00}-\u{dfff}]|\u{d86d}[\u{dc00}-\u{df34}\u{df40}-\u{dfff}]|\u{d86e}[\u{dc00}-\u{dc1d}]/u.source,C=new RegExp(`(${S})[\\s\\n]+(${S})`,"gu");return R=>R.replace(C,"$1$2")}})();function*createNodePointGenerator(S){let C=0,R=1,O=1;const I=typeof S=="string"?[S]:S;for(const N of I){const L=[];for(const F of N){const V=F.codePointAt(0);L.push(V)}const B=[],j=L.length;for(let F=0;F>2,F=L-N&3;for(let V=0;V>2,F=L-N&3;for(let V=0;V!0;if(S instanceof Function)return S;if(S.length===0)return()=>!1;if(S.length===1){const C=S[0];return R=>R.type===C}if(S.length===2){const[C,R]=S;return O=>O.type===C||O.type===R}return C=>{for(const R of S)if(C.type===R)return!0;return!1}}function traverseAst(S,C,R){const O=createNodeMatcher(C),I=N=>{const{children:L}=N;for(let B=0;B{const O={};traverseAst(S,C,L=>{const B=L;O[B.identifier]===void 0&&(O[B.identifier]=B)});const I=[];for(const L of R)O[L.identifier]===void 0&&(O[L.identifier]=L,I.push(L));return{root:I.length>0?{...S,children:S.children.concat(I)}:S,definitionMap:O}},astClasses=mergeStyleSets({root:{"--colorBgBlockquote":"none","--colorBgTableHead":"hsl(0deg, 0%, 94%)","--colorBgTableEvenRow":"hsl(0deg, 0%, 96%)","--colorBgTableOddRow":"hsl(0deg, 0%, 100%)","--colorBorderBlockquote":"hsl(210deg, 13%, 85%)","--colorBorderHeading":"hsl(0deg, 0%, 80%)","--colorBorderImage":"hsl(277deg, 19%, 47%)","--colorBorderTable":"hsl(220deg, 7%, 90%)","--colorBgCode":"#f5f7f9","--colorDelete":"hsl(210deg, 8%, 65%)","--colorHeading":"hsl(0deg, 0%, 25%)","--colorImageTitle":"hsl(0deg, 0%, 50%)","--colorInlineCode":"hsl(348deg, 60%, 47%)","--colorLink":"hsl(206deg, 53%, 47%)","--colorLinkActive":"hsl(206deg, 53%, 52%)","--colorLinkHover":"hsl(206deg, 53%, 52%)","--colorLinkVisited":"hsl(206deg, 53%, 47%)","--fontFamilyCode":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif","--fontFamilyHeading":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif"},rootDarken:{"&&":{"--colorBgBlockquote":"none","--colorBgTableHead":"hsl(200deg, 10%, 16%)","--colorBgTableEvenRow":"hsl(200deg, 10%, 16%)","--colorBgTableOddRow":"hsl(0deg, 0%, 9%)","--colorBorderBlockquote":"hsl(207deg, 7%, 45%)","--colorBorderHeading":"hsla(0deg, 0%, 30%, 0.8)","--colorBorderImage":"hsl(290deg, 15%, 49%)","--colorBorderTable":"hsl(0deg, 0%, 50%)","--colorBgCode":"hsl(0deg, 0%, 12%)","--colorDelete":"hsl(220deg, 5%, 68%)","--colorHeading":"hsl(0deg, 0%, 65%)","--colorImageTitle":"hsl(0deg, 0%, 50%)","--colorInlineCode":"hsl(348deg, 70%, 52%)","--colorLink":"hsl(207deg, 53%, 50%)","--colorLinkActive":"hsl(207deg, 53%, 50%)","--colorLinkHover":"hsl(207deg, 53%, 50%)","--colorLinkVisited":"hsl(207deg, 53%, 50%)","--fontFamilyCode":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif","--fontFamilyHeading":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif"}},blockquote:{},break:{},code:{},delete:{},emphasis:{},heading:{},image:{},imageReference:{},inlineCode:{},link:{},linkReference:{},list:{},listItem:{},paragraph:{},strong:{},table:{},text:{},thematicBreak:{}}),NodeRendererContextType=React.createContext(null);NodeRendererContextType.displayName="NodeRendererContextType";const useNodeRendererContext=()=>React.useContext(NodeRendererContextType);function disposeAll(S){const C=[];for(const R of S)try{R.dispose()}catch(O){C.push(O)}if(C.length===1)throw C[0];if(C.length>1)throw new AggregateError(C,"Encountered errors while disposing")}class BatchDisposable{constructor(){Cn(this,"_disposed");Cn(this,"_disposables");this._disposed=!1,this._disposables=[]}get disposed(){return this._disposed}dispose(){if(!this._disposed){this._disposed=!0;try{disposeAll(this._disposables)}finally{this._disposables.length=0}}}registerDisposable(C){C.disposed||(this._disposed?C.dispose():this._disposables.push(C))}}class Disposable{constructor(C){Cn(this,"_onDispose");Cn(this,"_disposed");this._onDispose=C,this._disposed=!1}static fromCallback(C){return new Disposable(C)}static fromUnsubscribable(C){return new Disposable(()=>C.unsubscribe())}get disposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._onDispose())}}function isDisposable(S){return S===null||typeof S!="object"?!1:typeof Reflect.get(S,"dispose")=="function"&&typeof Reflect.get(S,"disposed")=="boolean"}var ScheduleTransactionStatus;(function(S){S[S.NOT_STARTED=0]="NOT_STARTED",S[S.STARTED=1]="STARTED",S[S.COMPLETED=2]="COMPLETED"})(ScheduleTransactionStatus||(ScheduleTransactionStatus={}));function noop$2(...S){}const noopUnsubscribable={unsubscribe:noop$2};class Schedulable{constructor(C){Cn(this,"_scheduled");Cn(this,"_run");this._scheduled=!1,this._run=C}get scheduled(){return this._scheduled}schedule(){this._scheduled||(this._scheduled=!0,this._run())}}class Observable extends BatchDisposable{constructor(R,O={}){super();Cn(this,"equals");Cn(this,"_value");Cn(this,"_subscribers");this._value=R,this._subscribers=[],this.equals=O.equals??((I,N)=>Object.is(I,N))}dispose(){if(!this.disposed){super.dispose();const R=this._subscribers;this._subscribers=[];for(const O of R)O.complete()}}getSnapshot(){return this._value}subscribe(R){return this.disposed?(R.complete(),noopUnsubscribable):(this._subscribers.includes(R)||(this._subscribers=[...this._subscribers,R]),{unsubscribe:()=>{this._subscribers.includes(R)&&(this._subscribers=this._subscribers.filter(O=>O!==R))}})}next(R,O){if(this.disposed){console.warn("[Observable] Don't update a disposed observable. value:",R);return}const I=this._value;this.equals(R,I)||(this._value=R,this.notify(R,I,O))}notify(R,O,I){if(I){I.step(new Schedulable(()=>this.notifyImmediate(R,O)));return}this.notifyImmediate(R,O)}notifyImmediate(R,O){const I=this._subscribers;for(const N of I)N.next(R,O)}}class Ticker extends Observable{constructor(R,O={}){const I=new Set,N=Number(O.delay||0)||0,L=Math.max(0,Number(O.threshold||0)||0);super(R??0,{equals:(B,j)=>B===j});Cn(this,"_observes");Cn(this,"_delay");Cn(this,"_threshold");Cn(this,"_caller");this._observes=I,this._delay=N>=0?N:-1,this._threshold=L,this._caller=void 0}dispose(){this.disposed||(super.dispose(),this.flush(),this._observes.clear())}tick(R){this.next(this._value+1,R)}observe(R){if(this.disposed){console.warn("[Ticker.observe] the ticker has been disposed.");return}if(!this._observes.has(R)){const O=R.subscribe({next:()=>{I.disposed||this.tick()},complete:()=>I.dispose()}),I=Disposable.fromUnsubscribable(O);this._observes.add(R),this.registerDisposable(I)}}notify(R,O,I){if(I){this.flush(),I.step(new Schedulable(()=>this.notifyImmediate(R,O)));return}if(this._delay<0){this.notifyImmediate(R,O);return}const{_delay:N,_threshold:L,_caller:B}=this;let j=Date.now();const F=()=>this.notifyImmediate(R,O),V=setTimeout(()=>{this._caller=void 0,F()},N);B!==void 0&&(this._caller=void 0,clearTimeout(B.timer),B.createdAt+L<=j?B.call():j=B.createdAt),this._caller={timer:V,createdAt:j,call:F}}flush(){const R=this._caller;R!==void 0&&(this._caller=void 0,clearTimeout(R.timer),R.call())}}class Computed{constructor(C){Cn(this,"_observable");Cn(this,"getSnapshot",()=>this._observable.getSnapshot());Cn(this,"getServerSnapshot",()=>this._observable.getSnapshot());Cn(this,"subscribeStateChange",C=>{const R={next:()=>C(),complete:()=>{}},O=this._observable.subscribe(R),I=Disposable.fromUnsubscribable(O);return this._observable.registerDisposable(I),()=>I.dispose()});this._observable=C}static fromObservables(C,R,O){const I=new Ticker;for(const B of C)I.observe(B);const N=()=>{const B=C.map(j=>j.getSnapshot());return R(B)},L=new Observable(N(),O);return L.registerDisposable(I),I.subscribe({next:()=>{L.disposed||L.next(N())},complete:()=>L.dispose()}),new Computed(L)}get disposed(){return this._observable.disposed}dispose(){this._observable.disposed||this._observable.dispose()}registerDisposable(C){this._observable.registerDisposable(C)}subscribe(C){return this._observable.subscribe(C)}}class State extends Observable{constructor(){super(...arguments);Cn(this,"getSnapshot",()=>super.getSnapshot());Cn(this,"getServerSnapshot",()=>super.getSnapshot());Cn(this,"setState",R=>{const O=typeof R=="function"?R(this.getSnapshot()):R;super.next(O)});Cn(this,"subscribeStateChange",R=>{const O={next:()=>R(),complete:()=>{}},I=super.subscribe(O),N=Disposable.fromUnsubscribable(I);return this.registerDisposable(N),()=>N.dispose()})}}function isObservable(S){return S===null||typeof S!="object"?!1:typeof Reflect.get(S,"dispose")=="function"&&typeof Reflect.get(S,"disposed")=="boolean"&&typeof Reflect.get(S,"subscribe")=="function"&&typeof Reflect.get(S,"equals")=="function"&&typeof Reflect.get(S,"getSnapshot")=="function"&&typeof Reflect.get(S,"next")=="function"}class ViewModel extends BatchDisposable{constructor(){super();Cn(this,"_tickerMap");this._tickerMap=new Map}dispose(){this.disposed||(super.dispose(),Reflect.ownKeys(this).forEach(R=>{if(typeof R=="string"&&R.endsWith("$")){const O=this[R];isDisposable(O)&&O.dispose()}}))}ticker(R){const O=Array.from(new Set(R)).sort(),I=O.join("|");let N=this._tickerMap.get(I);if(N===void 0){const L=new Ticker;N={keys:O,ticker:L},this.registerDisposable(L),this._tickerMap.set(I,N);for(const B of O){const j=this[B];if(!isObservable(j)){console.warn("[ViewModel.ticker] not an observable, key:",B,"val:",j);continue}L.observe(j)}}return N}}class ReactMarkdownViewModel extends ViewModel{constructor(C){super(),this.preferCodeWrap$=new State(!1);const{definitionMap:R,rendererMap:O,showCodeLineno:I,themeScheme:N}=C;this.definitionMap$=new State(R),this.rendererMap$=new State(O),this.showCodeLineno$=new State(I),this.themeScheme$=new State(N)}}function isEqual$2(S,C){if(S===null||C===null||S===void 0||C===void 0)return S===C;if(typeof S!=typeof C)return!1;if(Object.is(S,C))return!0;if(typeof S=="object"){if(S.constructor!==C.constructor)return!1;if(Array.isArray(S)){if(S.length!==C.length)return!1;for(let O=0;O{I.value=O,I.getSnapshot=C,checkIfSnapshotChanged(I)&&N({inst:I})},[S,O,C]),reactExports.useEffect(()=>(checkIfSnapshotChanged(I)&&N({inst:I}),S(()=>{checkIfSnapshotChanged(I)&&N({inst:I})})),[S]),reactExports.useDebugValue(O),O}function checkIfSnapshotChanged(S){const C=S.getSnapshot,R=S.value;try{const O=C();return!Object.is(R,O)}catch{return!0}}function useSyncExternalStore$1(S,C,R){return C()}const canUseDOM=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",shim=canUseDOM?useSyncExternalStore$2:useSyncExternalStore$1,builtin=reactExports.useSyncExternalStore,useSyncExternalStore=builtin||shim;function useStateValue(S){const{getSnapshot:C,getServerSnapshot:R,subscribeStateChange:O}=S;return useSyncExternalStore(O,C,R)}const NodesRenderer=S=>{const{nodes:C}=S,{viewmodel:R}=useNodeRendererContext(),O=useStateValue(R.rendererMap$);return!Array.isArray(C)||C.length<=0?jsxRuntimeExports.jsx(React.Fragment,{}):jsxRuntimeExports.jsx(NodesRendererInner,{nodes:C,rendererMap:O})};class NodesRendererInner extends React.Component{shouldComponentUpdate(C){const R=this.props;return!lodashExports.isEqual(R.nodes,C.nodes)||R.rendererMap!==C.rendererMap}render(){const{nodes:C,rendererMap:R}=this.props;return jsxRuntimeExports.jsx(React.Fragment,{children:C.map((O,I)=>{const N=`${O.type}-${I}`,L=R[O.type]??R._fallback;return jsxRuntimeExports.jsx(L,{...O},N)})})}}var TokenizerType;(function(S){S.BLOCK="block",S.INLINE="inline"})(TokenizerType||(TokenizerType={}));var TokenizerPriority;(function(S){S[S.ATOMIC=10]="ATOMIC",S[S.FENCED_BLOCK=10]="FENCED_BLOCK",S[S.CONTAINING_BLOCK=10]="CONTAINING_BLOCK",S[S.INTERRUPTABLE_BLOCK=2]="INTERRUPTABLE_BLOCK",S[S.IMAGES=4]="IMAGES",S[S.LINKS=3]="LINKS",S[S.CONTAINING_INLINE=2]="CONTAINING_INLINE",S[S.SOFT_INLINE=1]="SOFT_INLINE",S[S.FALLBACK=-1]="FALLBACK"})(TokenizerPriority||(TokenizerPriority={}));class BaseInlineTokenizer{constructor(C){Cn(this,"type",TokenizerType.INLINE);Cn(this,"name");Cn(this,"priority");this.name=C.name,this.priority=C.priority}toString(){return this.name}}function*genFindDelimiter(S){let C=-1,R=null;for(;;){const[O,I]=yield R;C===I&&(R==null||R.startIndex>=O)||(C=I,R=S(O,I))}}class BaseBlockTokenizer{constructor(C){Cn(this,"type",TokenizerType.BLOCK);Cn(this,"name");Cn(this,"priority");this.name=C.name,this.priority=C.priority}extractPhrasingContentLines(C){return null}buildBlockToken(C,R){return null}toString(){return this.name}}function calcStartPoint(S,C){const{line:R,column:O,offset:I}=S[C];return{line:R,column:O,offset:I}}function calcEndPoint(S,C){const{line:R,column:O,offset:I}=S[C];return{line:R,column:O+1,offset:I+1}}function calcPositionFromPhrasingContentLines(S){const C=S[0],R=S[S.length-1];return{start:calcStartPoint(C.nodePoints,C.startIndex),end:calcEndPoint(R.nodePoints,R.endIndex-1)}}function mergeContentLinesFaithfully(S,C=0,R=S.length){if(C>=R||C<0||R>S.length)return[];const O=[];for(let I=C;I=R||C<0||R>S.length)return[];for(let j=C;j+1=0;--B){const j=I[B];if(!isWhitespaceCharacter(j.codePoint))break}for(let j=L;j<=B;++j)O.push(I[j]);return O}function encodeLinkDestination(S){let C=S;for(;;)try{const R=decodeURIComponent(C);if(R===C)break;C=R}catch{break}return encodeURI(C)}function resolveLabelToIdentifier(S){const C=S.trim().replace(/\s+/gu," ").toLowerCase();return foldCase(C)}function resolveLinkLabelAndIdentifier(S,C,R){const O=calcStringFromNodePoints(S,C,R,!0);if(O.length<=0)return null;const I=resolveLabelToIdentifier(O);return{label:O,identifier:I}}function eatLinkLabel(S,C,R){let O=C+1;const I=Math.min(O+1e3,R);for(;OC;--R){const O=S[R];if(O.firstNonWhitespaceIndexR?[]:S.slice(C,R+1)}var define_process_env_default$m={};const isProduction$1=define_process_env_default$m.NODE_ENV==="production",prefix$2="Invariant failed";function invariant$1(S,C){if(!S)throw isProduction$1?new Error(prefix$2):C==null?new Error(prefix$2+": "):new Error(prefix$2+": "+(C instanceof Function?C():C))}const createBlockContentProcessor=(S,C)=>{const R={_tokenizer:"root",nodeType:"root",position:{start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}},children:[]},O=[];O.push({hook:{isContainingBlock:!0},token:R});let I=0;const N=X=>{for(let J=I;J>=0;--J){const oe=O[J];oe.token.position.end={...X}}},L=(X,J)=>{if(J.length<=0)return null;const oe=S.filter(me=>me!==X),pe=createBlockContentProcessor(oe,C);for(const me of J)pe.consume(me);return pe},B=()=>{const X=O.pop();if(X!=null){if(O.length>0){const J=O[O.length-1];if(X.hook.onClose!=null){const oe=X.hook.onClose(X.token);if(oe!=null)switch(oe.status){case"closingAndRollback":{const pe=L(X.hook,oe.lines);if(pe==null)break;const me=pe.done();J.token.children.push(...me.children);break}case"failedAndRollback":{J.token.children.pop();const pe=L(X.hook,oe.lines);if(pe==null)break;const me=pe.done();J.token.children.push(...me.children);break}}}}return I>=O.length&&(I=O.length-1),X}},j=X=>{for(;O.length>X;)B()},F=(X,J,oe)=>{j(I+1),O[I].token.children.push(J),N(J.position.end),I+=1,O.push({hook:X,token:J}),oe&&B()},V=(X,J,oe)=>{const pe=L(X,J);if(pe==null)return!1;const me=pe.shallowSnapshot(),xe=me[0];xe.token.children!=null&&oe.token.children.push(...xe.token.children),N(xe.token.position.end);for(let Ae=1;Ae{const{nodePoints:J,startIndex:oe,endIndex:pe}=X;let{firstNonWhitespaceIndex:me,countOfPrecedeSpaces:xe,startIndex:Ae}=X;const ge=()=>({nodePoints:J,startIndex:Ae,endIndex:pe,firstNonWhitespaceIndex:me,countOfPrecedeSpaces:xe}),Te=(Ke,Je)=>{if(invariant$1(Ae<=Ke,`[DBTContext#moveForward] nextIndex(${Ke}) is behind i(${Ae}).`),Je){const Xe=calcEndPoint(J,Ke-1);N(Xe)}if(Ae!==Ke)for(Ae=Ke,xe=0,me=Ke;me{const{token:Xe}=O[I],ot=Ke.eatOpener(Je,Xe);if(ot==null)return!1;invariant$1(ot.nextIndex>Ae,`[consumeNewOpener] The marker of the new data node cannot be empty. - tokenizer(${ot.token._tokenizer})`),Te(ot.nextIndex,!1);const tt=ot.token;return tt._tokenizer=Ke.name,F(Ke,tt,!!ot.saturated),!0},ke=(Ke,Je)=>{if(Ke.eatAndInterruptPreviousSibling==null)return!1;const{hook:Xe,token:ot}=O[I],{token:tt}=O[I-1];if(Ke.priority<=Xe.priority)return!1;const Ue=Ke.eatAndInterruptPreviousSibling(Je,ot,tt);if(Ue==null)return!1;j(I),tt.children.pop(),Ue.remainingSibling!=null&&(Array.isArray(Ue.remainingSibling)?tt.children.push(...Ue.remainingSibling):tt.children.push(Ue.remainingSibling)),Te(Ue.nextIndex,!1);const et=Ue.token;return et._tokenizer=Ke.name,F(Ke,et,!!Ue.saturated),!0},Be=()=>{if(I=1,O.length<2)return;let{token:Ke}=O[I-1];for(;Aedt!==Xe&&ke(dt,ot)))break;const tt=Xe.eatContinuationText==null?{status:"notMatched"}:Xe.eatContinuationText(ot,Je.token,Ke);let Ue=!1,et=!1;switch(tt.status){case"failedAndRollback":{if(Ke.children.pop(),O.length=I,I-=1,tt.lines.length>0){const dt=O[I];if(V(Xe,tt.lines,dt)){et=!0;break}}Ue=!0;break}case"closingAndRollback":{if(j(I),tt.lines.length>0){const dt=O[I];if(V(Xe,tt.lines,dt)){et=!0;break}}Ue=!0;break}case"notMatched":{I-=1,Ue=!0;break}case"closing":{Te(tt.nextIndex,!0),I-=1,Ue=!0;break}case"opening":{Te(tt.nextIndex,!0);break}default:throw new TypeError(`[eatContinuationText] unexpected status (${tt.status}).`)}if(Ue)break;et||(I+=1,Ke=Je.token)}},Ie=()=>{if(!(Ae>=pe)){if(I=4)return}else I=O.length-1;for(;Ae{if(Ae>=pe||I+1>=O.length)return!1;const{hook:Ke,token:Je}=O[O.length-1];if(Ke.eatLazyContinuationText==null)return!1;const{token:Xe}=O[O.length-2],ot=ge(),tt=Ke.eatLazyContinuationText(ot,Je,Xe);switch(tt.status){case"notMatched":return!1;case"opening":return I=O.length-1,Te(tt.nextIndex,!0),I=O.length-1,!0;default:throw new TypeError(`[eatLazyContinuationText] unexpected status (${tt.status}).`)}};if(Be(),Ie(),je()||j(I+1),C!=null&&Ae=pe,`[IBlockContentProcessor] there is still unprocessed contents. startIndexOfLine(${oe}), endIndexOfLine(${pe})`)},done:()=>{for(;O.length>1;)B();return R},shallowSnapshot:()=>[...O]}},createSinglePriorityDelimiterProcessor=()=>{let S=0;const C=[],R=[],O=[],I=K=>{let W=K-1;for(;W>=0&&R[W].inactive;)W-=1;R.length=W+1},N=(K,W)=>{R.push({hook:K,delimiter:W,inactive:!1,tokenStackIndex:O.length})},L=(K,W)=>{if(R.length<=0)return null;let X=null;for(let J=R.length-1;J>=0;--J){if(X=R[J],X.inactive||X.hook!==K)continue;const oe=X.delimiter,pe=K.isDelimiterPair(oe,W,C);if(pe.paired)return oe;if(!pe.closer)return null}return null},B=(K,W)=>{if(R.length<=0)return W;let X,J=W,oe=[];for(let pe=R.length-1;pe>=0;--pe){const me=R[pe];if(me.hook!==K||me.inactive)continue;const xe=me.tokenStackIndex;for(xe0){for(const we of Te)we._tokenizer=K.name;oe.unshift(...Te)}X=void 0,me.inactive=!0}if(!Ae.closer){const Te=K.processSingleDelimiter(J);if(Te.length>0){for(const we of Te)we._tokenizer=K.name;oe.push(...Te)}J=void 0}break}const ge=K.processDelimiterPair(X,J,oe);{for(const Te of ge.tokens)Te._tokenizer==null&&(Te._tokenizer=K.name);oe=ge.tokens}X=ge.remainOpenerDelimiter,J=ge.remainCloserDelimiter,I(pe),pe=Math.min(pe,R.length),X!=null&&N(K,X)}if(J==null||J.type==="full")break}if(O.push(...oe),J==null)return null;if(J.type==="full"||J.type==="closer"){const pe=K.processSingleDelimiter(J);for(const me of pe)me._tokenizer=K.name,O.push(me);return null}return J};return{process:(K,W)=>{for(;S=W.endIndex)break;X.startIndex>=W.startIndex||O.push(X)}switch(W.type){case"opener":{N(K,W);break}case"both":{const X=B(K,W);X!=null&&N(K,X);break}case"closer":{B(K,W);break}case"full":{const X=K.processSingleDelimiter(W);for(const J of X)J._tokenizer=K.name,O.push(J);break}default:throw new TypeError(`Unexpected delimiter type(${W.type}) from ${K.name}.`)}},done:()=>{const K=[];for(const{delimiter:X,hook:J}of R){const oe=J.processSingleDelimiter(X);for(const pe of oe)pe._tokenizer=J.name,K.push(pe)}if(R.length=0,K.length>0){const X=mergeSortedTokenStack(O,K);O.length=0,O.push(...X)}return O.concat(C.slice(S))},reset:K=>{C.length=K.length;for(let W=0;W{if(S.length<=0)return C;if(C.length<=0)return S;const R=[];let O=0,I=0;for(;O{const R=(N,L,B)=>{let j=[],F=null;const V=[N,L];for(const W of B){const X=W.findDelimiter(V);if(X!=null){if(F!=null){if(X.startIndex>F)continue;X.startIndex1){let W=0;for(const X of j){const J=X.delimiter.type;if(J==="full")return{items:[X],nextIndex:X.delimiter.endIndex};(J==="both"||J==="closer")&&(W+=1)}if(W>1){let X=-1,J=-1;for(let pe=0;pe-1?[j[X]]:j.filter(pe=>pe.delimiter.type!=="closer"),nextIndex:K}}}return{items:j,nextIndex:K}},O=createSinglePriorityDelimiterProcessor();return{process:(N,L,B)=>{let j=N;for(let F=C;F{const O=[];for(let I=0;I{let W=L.process(F,V,K);return W=R(W,V,K),W}}),j=S[I].priority;for(;I{let R;const O=S.match(C);return{isDelimiterPair:()=>({paired:!0}),processDelimiterPair:(I,N,L)=>({tokens:L}),processSingleDelimiter:()=>[],...O,name:S.name,priority:S.priority,findDelimiter:I=>R.next(I).value,reset:()=>{R=O.findDelimiter(),R.next()}}};function createProcessor(S){const{inlineTokenizers:C,inlineTokenizerMap:R,blockTokenizers:O,blockTokenizerMap:I,blockFallbackTokenizer:N,inlineFallbackTokenizer:L,shouldReservePosition:B,presetDefinitions:j,presetFootnoteDefinitions:F,formatUrl:V}=S;let K=!1;const W=new Set,X=new Set;let J=[],oe=-1,pe=-1;const me=Object.freeze({matchBlockApi:{extractPhrasingLines:Ie,rollbackPhrasingLines:je,registerDefinitionIdentifier:et=>{K&&W.add(et)},registerFootnoteDefinitionIdentifier:et=>{K&&X.add(et)}},parseBlockApi:{shouldReservePosition:B,formatUrl:V,processInlines:ot,parseBlockTokens:Xe},matchInlineApi:{hasDefinition:et=>W.has(et),hasFootnoteDefinition:et=>X.has(et),getNodePoints:()=>J,getBlockStartIndex:()=>oe,getBlockEndIndex:()=>pe,resolveFallbackTokens:Ke},parseInlineApi:{shouldReservePosition:B,calcPosition:et=>({start:calcStartPoint(J,et.startIndex),end:calcEndPoint(J,et.endIndex-1)}),formatUrl:V,getNodePoints:()=>J,hasDefinition:et=>W.has(et),hasFootnoteDefinition:et=>X.has(et),parseInlineTokens:Ue}}),xe=O.map(et=>({...et.match(me.matchBlockApi),name:et.name,priority:et.priority})),Ae=new Map(Array.from(I.entries()).map(et=>[et[0],et[1].parse(me.parseBlockApi)])),ge=N?{...N.match(me.matchBlockApi),name:N.name,priority:N.priority}:null,Te=createProcessorHookGroups(C,me.matchInlineApi,Ke),we=new Map(Array.from(R.entries()).map(et=>[et[0],et[1].parse(me.parseInlineApi)])),ke=createPhrasingContentProcessor(Te,0);return{process:Be};function Be(et){W.clear(),X.clear(),K=!0;const dt=Je(et);K=!1;for(const lt of j)W.add(lt.identifier);for(const lt of F)X.add(lt.identifier);const gt=Xe(dt.children);return B?{type:"root",position:dt.position,children:gt}:{type:"root",children:gt}}function Ie(et){const dt=I.get(et._tokenizer);return(dt==null?void 0:dt.extractPhrasingContentLines(et))??null}function je(et,dt){if(dt!=null){const Qe=I.get(dt._tokenizer);if(Qe!==void 0&&Qe.buildBlockToken!=null){const lt=Qe.buildBlockToken(et,dt);if(lt!==null)return lt._tokenizer=Qe.name,[lt]}}return Je([et]).children}function Ke(et,dt,gt){if(L==null)return et;let Qe=dt;const lt=[];for(const ht of et){if(QeL.priority)break}N<0||N>=C.length?C.push(O):C.splice(N,0,O)}_unregisterTokenizer(C,R,O){var B,j;const I=typeof O=="string"?O:O.name;if(!R.delete(I))return;((B=this.blockFallbackTokenizer)==null?void 0:B.name)===I&&(this.blockFallbackTokenizer=null),((j=this.inlineFallbackTokenizer)==null?void 0:j.name)===I&&(this.inlineFallbackTokenizer=null);const L=C.findIndex(F=>F.name===I);L>=0&&C.splice(L,1)}}function eatEmailAddress(S,C,R){let O=C;for(;O=R||S[O].codePoint!==AsciiCodePoint.AT_SIGN||!isAlphanumeric(S[O+1].codePoint))return{valid:!1,nextIndex:O+1};for(O=eatAddressPart0(S,O+2,R);O+1=C?I+1:C}function eatAbsoluteUri(S,C,R){const O=eatAutolinkSchema(S,C,R);let{nextIndex:I}=O;if(!O.valid||I>=R||S[I].codePoint!==AsciiCodePoint.COLON)return{valid:!1,nextIndex:I};for(I+=1;I32?{valid:!1,nextIndex:O+1}:{valid:!0,nextIndex:O}}const helpers=[{contentType:"uri",eat:eatAbsoluteUri},{contentType:"email",eat:eatEmailAddress}],match$n=function(S){return{findDelimiter:()=>genFindDelimiter(C),processSingleDelimiter:R};function C(O,I){const N=S.getNodePoints();for(let L=O;LC.map(R=>{const O=S.getNodePoints();let I=calcStringFromNodePoints(O,R.startIndex+1,R.endIndex-1);R.contentType==="email"&&(I="mailto:"+I);const N=S.formatUrl(I),L=S.parseInlineTokens(R.children);return S.shouldReservePosition?{type:LinkType,position:S.calcPosition(R),url:N,children:L}:{type:LinkType,url:N,children:L}})}},uniqueName$j="@yozora/tokenizer-autolink";class AutolinkTokenizer extends BaseInlineTokenizer{constructor(R={}){super({name:R.name??uniqueName$j,priority:R.priority??TokenizerPriority.ATOMIC});Cn(this,"match",match$n);Cn(this,"parse",parse$k)}}const match$m=function(){return{isContainingBlock:!0,eatOpener:S,eatAndInterruptPreviousSibling:C,eatContinuationText:R};function S(O){if(O.countOfPrecedeSpaces>=4)return null;const{nodePoints:I,startIndex:N,endIndex:L,firstNonWhitespaceIndex:B}=O;if(B>=L||I[B].codePoint!==AsciiCodePoint.CLOSE_ANGLE)return null;let j=B+1;return j=4||F>=j||L[F].codePoint!==AsciiCodePoint.CLOSE_ANGLE?N.nodeType===BlockquoteType?{status:"opening",nextIndex:B}:{status:"notMatched"}:{status:"opening",nextIndex:F+1C.map(R=>{const O=S.parseBlockTokens(R.children);return S.shouldReservePosition?{type:BlockquoteType,position:R.position,children:O}:{type:BlockquoteType,children:O}})}},uniqueName$i="@yozora/tokenizer-blockquote";class BlockquoteTokenizer extends BaseBlockTokenizer{constructor(R={}){super({name:R.name??uniqueName$i,priority:R.priority??TokenizerPriority.CONTAINING_BLOCK});Cn(this,"match",match$m);Cn(this,"parse",parse$j)}}const uniqueName$h="@yozora/tokenizer-break";var BreakTokenMarkerType;(function(S){S.BACKSLASH="backslash",S.MORE_THAN_TWO_SPACES="more-than-two-spaces"})(BreakTokenMarkerType||(BreakTokenMarkerType={}));const match$l=function(S){return{findDelimiter:()=>genFindDelimiter(C),processSingleDelimiter:R};function C(O,I){const N=S.getNodePoints();for(let L=O+1;L=O&&N[V].codePoint===AsciiCodePoint.BACKSLASH;V-=1);L-V&1||(j=L-1,F=BreakTokenMarkerType.BACKSLASH);break}case AsciiCodePoint.SPACE:{let V=L-2;for(;V>=O&&N[V].codePoint===AsciiCodePoint.SPACE;V-=1);L-V>2&&(j=V+1,F=BreakTokenMarkerType.MORE_THAN_TWO_SPACES);break}}if(!(j==null||F==null))return{type:"full",markerType:F,startIndex:j,endIndex:L}}return null}function R(O){return[{nodeType:BreakType,startIndex:O.startIndex,endIndex:O.endIndex}]}},parse$i=function(S){return{parse:C=>C.map(R=>S.shouldReservePosition?{type:BreakType,position:S.calcPosition(R)}:{type:BreakType})}};class BreakTokenizer extends BaseInlineTokenizer{constructor(R={}){super({name:R.name??uniqueName$h,priority:R.priority??TokenizerPriority.SOFT_INLINE});Cn(this,"match",match$l);Cn(this,"parse",parse$i)}}function eatAndCollectLinkDestination(S,C,R,O){let I=C;O==null&&(O={saturated:!1,nodePoints:[],hasOpenAngleBracket:!1,openParensCount:0});const N=eatOptionalWhitespaces(S,I,R);if(N>=R)return{nextIndex:-1,state:O};if(O.nodePoints.length<=0){I=N;const L=S[I];L.codePoint===AsciiCodePoint.OPEN_ANGLE&&(I+=1,O.hasOpenAngleBracket=!0,O.nodePoints.push(L))}if(O.hasOpenAngleBracket){for(;I=R)return{nextIndex:-1,state:O};if(O.nodePoints.length<=0){I=N;const L=S[I];if(L.codePoint!==AsciiCodePoint.OPEN_BRACKET)return{nextIndex:-1,state:O};I+=1,O.nodePoints.push(L)}for(;I=R)return{nextIndex:-1,state:O};if(O.nodePoints.length<=0){I=N;const L=S[I];switch(L.codePoint){case AsciiCodePoint.DOUBLE_QUOTE:case AsciiCodePoint.SINGLE_QUOTE:case AsciiCodePoint.OPEN_PARENTHESIS:O.wrapSymbol=L.codePoint,O.nodePoints.push(L),I+=1;break;default:return{nextIndex:-1,state:O}}}if(O.wrapSymbol==null)return{nextIndex:-1,state:O};switch(O.wrapSymbol){case AsciiCodePoint.DOUBLE_QUOTE:case AsciiCodePoint.SINGLE_QUOTE:{for(;I=R||S[I+1].codePoint===VirtualCodePoint.LINE_END){O.nodePoints.push(L),O.saturated=!0;break}return{nextIndex:-1,state:O};default:O.nodePoints.push(L)}}break}}return{nextIndex:R,state:O}}const match$k=function(S){return{isContainingBlock:!1,eatOpener:C,eatContinuationText:R,onClose:O};function C(I){if(I.countOfPrecedeSpaces>=4)return null;const{nodePoints:N,startIndex:L,endIndex:B,firstNonWhitespaceIndex:j}=I;if(j>=B)return null;let F=j;const{nextIndex:V,state:K}=eatAndCollectLinkLabel(N,F,B,null);if(V<0)return null;const W=N[L].line,X=()=>({nodeType:DefinitionType,position:{start:calcStartPoint(N,L),end:calcEndPoint(N,B-1)},label:K,destination:null,title:null,lineNoOfLabel:W,lineNoOfDestination:-1,lineNoOfTitle:-1,lines:[I]});if(!K.saturated)return{token:X(),nextIndex:B};if(V<0||V+1>=B||N[V].codePoint!==AsciiCodePoint.COLON)return null;if(F=eatOptionalWhitespaces(N,V+1,B),F>=B)return{token:X(),nextIndex:B};const{nextIndex:J,state:oe}=eatAndCollectLinkDestination(N,F,B,null);if(J<0||!oe.saturated&&J!==B)return null;if(F=eatOptionalWhitespaces(N,J,B),F>=B){const Ae=X();return Ae.destination=oe,Ae.lineNoOfDestination=W,{token:Ae,nextIndex:B}}if(F===J)return null;const{nextIndex:pe,state:me}=eatAndCollectLinkTitle(N,F,B,null);if(pe>=0&&(F=pe),F=F||L[pe].codePoint!==AsciiCodePoint.COLON)return{status:"failedAndRollback",lines:N.lines};K=pe+1}if(N.destination==null){if(K=eatOptionalWhitespaces(L,K,F),K>=F)return{status:"failedAndRollback",lines:N.lines};const{nextIndex:pe,state:me}=eatAndCollectLinkDestination(L,K,F,null);if(pe<0||!me.saturated)return{status:"failedAndRollback",lines:N.lines};if(K=eatOptionalWhitespaces(L,pe,F),K>=F)return N.destination=me,N.lines.push(I),{status:"opening",nextIndex:F};N.lineNoOfDestination=V,N.lineNoOfTitle=V}N.lineNoOfTitle<0&&(N.lineNoOfTitle=V);const{nextIndex:W,state:X}=eatAndCollectLinkTitle(L,K,F,N.title);if(N.title=X,W<0||X.nodePoints.length<=0||X.saturated&&eatOptionalWhitespaces(L,W,F)C.map(R=>{const O=R._label,I=R._identifier,N=R.destination.nodePoints,L=N[0].codePoint===AsciiCodePoint.OPEN_ANGLE?calcEscapedStringFromNodePoints(N,1,N.length-1,!0):calcEscapedStringFromNodePoints(N,0,N.length,!0),B=S.formatUrl(L),j=R.title==null?void 0:calcEscapedStringFromNodePoints(R.title.nodePoints,1,R.title.nodePoints.length-1);return S.shouldReservePosition?{type:DefinitionType,position:R.position,identifier:I,label:O,url:B,title:j}:{type:DefinitionType,identifier:I,label:O,url:B,title:j}})}},uniqueName$g="@yozora/tokenizer-definition";class DefinitionTokenizer extends BaseBlockTokenizer{constructor(R={}){super({name:R.name??uniqueName$g,priority:R.priority??TokenizerPriority.ATOMIC});Cn(this,"match",match$k);Cn(this,"parse",parse$h)}}const match$j=function(S){return{findDelimiter:()=>genFindDelimiter(C),isDelimiterPair:R,processDelimiterPair:O};function C(I,N){const L=S.getNodePoints(),B=S.getBlockStartIndex(),j=S.getBlockEndIndex(),F=(K,W)=>{if(W===j)return!1;if(W===N)return!0;const X=L[W];if(isUnicodeWhitespaceCharacter(X.codePoint))return!1;if(!isPunctuationCharacter(X.codePoint)||K<=I)return!0;const J=L[K-1];return isUnicodeWhitespaceCharacter(J.codePoint)||isPunctuationCharacter(J.codePoint)},V=(K,W)=>{if(K===B)return!1;if(K===I)return!0;const X=L[K-1];if(isUnicodeWhitespaceCharacter(X.codePoint))return!1;if(!isPunctuationCharacter(X.codePoint)||W>=N)return!0;const J=L[W];return isUnicodeWhitespaceCharacter(J.codePoint)||isPunctuationCharacter(J.codePoint)};for(let K=I;KI&&!isPunctuationCharacter(L[X-1].codePoint)&&(me=!1);const ge=L[J];isPunctuationCharacter(ge.codePoint)||(xe=!1)}if(!me&&!xe)break;const Ae=J-X;return{type:me?xe?"both":"opener":"closer",startIndex:X,endIndex:J,thickness:Ae,originalThickness:Ae}}}}return null}function R(I,N){const L=S.getNodePoints();return L[I.startIndex].codePoint!==L[N.startIndex].codePoint||(I.type==="both"||N.type==="both")&&(I.originalThickness+N.originalThickness)%3===0&&I.originalThickness%3!==0?{paired:!1,opener:!0,closer:!0}:{paired:!0}}function O(I,N,L){let B=1;I.thickness>1&&N.thickness>1&&(B=2),L=S.resolveInternalTokens(L,I.endIndex,N.startIndex);const j={nodeType:B===1?EmphasisType:StrongType,startIndex:I.endIndex-B,endIndex:N.startIndex+B,thickness:B,children:L},F=I.thickness>B?{type:I.type,startIndex:I.startIndex,endIndex:I.endIndex-B,thickness:I.thickness-B,originalThickness:I.originalThickness}:void 0,V=N.thickness>B?{type:N.type,startIndex:N.startIndex+B,endIndex:N.endIndex,thickness:N.thickness-B,originalThickness:N.originalThickness}:void 0;return{tokens:[j],remainOpenerDelimiter:F,remainCloserDelimiter:V}}},parse$g=function(S){return{parse:C=>C.map(R=>{const O=S.parseInlineTokens(R.children);return S.shouldReservePosition?{type:R.nodeType,position:S.calcPosition(R),children:O}:{type:R.nodeType,children:O}})}},uniqueName$f="@yozora/tokenizer-emphasis";class EmphasisTokenizer extends BaseInlineTokenizer{constructor(R={}){super({name:R.name??uniqueName$f,priority:R.priority??TokenizerPriority.CONTAINING_INLINE});Cn(this,"match",match$j);Cn(this,"parse",parse$g)}}function match$i(S){const{nodeType:C,markers:R,markersRequired:O,checkInfoString:I}=this;return{isContainingBlock:!1,eatOpener:N,eatAndInterruptPreviousSibling:L,eatContinuationText:B};function N(j){if(j.countOfPrecedeSpaces>=4)return null;const{endIndex:F,firstNonWhitespaceIndex:V}=j;if(V+O-1>=F)return null;const{nodePoints:K,startIndex:W}=j,X=K[V].codePoint;if(R.indexOf(X)<0)return null;const J=eatOptionalCharacters(K,V+1,F,X),oe=J-V;if(oe=F.markerCount){for(;pe=W)return{status:"closing",nextIndex:W}}}const oe=Math.min(K+F.indent,X,W-1);return F.lines.push({nodePoints:V,startIndex:oe,endIndex:W,firstNonWhitespaceIndex:X,countOfPrecedeSpaces:J}),{status:"opening",nextIndex:W}}}class FencedBlockTokenizer extends BaseBlockTokenizer{constructor(R){super({name:R.name,priority:R.priority??TokenizerPriority.FENCED_BLOCK});Cn(this,"nodeType");Cn(this,"markers",[]);Cn(this,"markersRequired");Cn(this,"checkInfoString");Cn(this,"match",match$i);this.nodeType=R.nodeType,this.markers=R.markers,this.markersRequired=R.markersRequired,this.checkInfoString=R.checkInfoString}}const match$h=function(S){return{...match$i.call(this,S),isContainingBlock:!1}},parse$f=function(S){return{parse:C=>C.map(R=>{const O=R.infoString;let I=0;const N=[];for(;I0?L:null,meta:B.length>0?B:null,value:F}:{type:CodeType,lang:L.length>0?L:null,meta:B.length>0?B:null,value:F}})}},uniqueName$e="@yozora/tokenizer-fenced-code";class FencedCodeTokenizer extends FencedBlockTokenizer{constructor(R={}){super({name:R.name??uniqueName$e,priority:R.priority??TokenizerPriority.FENCED_BLOCK,nodeType:CodeType,markers:[AsciiCodePoint.BACKTICK,AsciiCodePoint.TILDE],markersRequired:3,checkInfoString:(O,I)=>{if(I===AsciiCodePoint.BACKTICK){for(const N of O)if(N.codePoint===AsciiCodePoint.BACKTICK)return!1}return!0}});Cn(this,"match",match$h);Cn(this,"parse",parse$f)}}const match$g=function(){return{isContainingBlock:!1,eatOpener:S,eatAndInterruptPreviousSibling:C};function S(R){if(R.countOfPrecedeSpaces>=4)return null;const{nodePoints:O,startIndex:I,endIndex:N,firstNonWhitespaceIndex:L}=R;if(L>=N||O[L].codePoint!==AsciiCodePoint.NUMBER_SIGN)return null;const B=eatOptionalCharacters(O,L+1,N,AsciiCodePoint.NUMBER_SIGN),j=B-L;if(j>6||B+1C.map(R=>{const{nodePoints:O,firstNonWhitespaceIndex:I,endIndex:N}=R.line;let[L,B]=calcTrimBoundaryOfCodePoints(O,I+R.depth,N),j=0;for(let X=B-1;X>=L&&O[X].codePoint===AsciiCodePoint.NUMBER_SIGN;--X)j+=1;if(j>0){let X=0,J=B-1-j;for(;J>=L;--J){const oe=O[J].codePoint;if(!isWhitespaceCharacter(oe))break;X+=1}(X>0||J=R)return null;const I=O;let N=S[O].codePoint;if(!isAsciiLetter(N)&&N!==AsciiCodePoint.UNDERSCORE&&N!==AsciiCodePoint.COLON)return null;for(O=I+1;OF&&(B.value={startIndex:F,endIndex:V});break}}if(B.value!=null)return{attribute:B,nextIndex:O}}return{attribute:B,nextIndex:L}}function eatHTMLTagName(S,C,R){if(C>=R||!isAsciiLetter(S[C].codePoint))return null;let O=C;for(;O=R)return R;const I=S[C].codePoint;return isWhitespaceCharacter(I)||I===AsciiCodePoint.CLOSE_ANGLE?C+1:null}function eatEndCondition1(S,C,R){for(let O=C;O=R||S[N].codePoint!==AsciiCodePoint.CLOSE_ANGLE){O+=1;continue}const B=calcStringFromNodePoints(S,I,N,!0).toLowerCase();if(includedTags$1.includes(B))return N}return null}function eatStartCondition2(S,C,R){const O=C;return O+2=R)return R;const I=S[C].codePoint;return isWhitespaceCharacter(I)||I===AsciiCodePoint.CLOSE_ANGLE?C+1:I===AsciiCodePoint.SLASH&&C+1=R)return null;let N=C;if(I){for(;N=R)return null;S[N].codePoint===AsciiCodePoint.SLASH&&(N+=1)}else N=eatOptionalWhitespaces(S,C,R);if(N>=R||S[N].codePoint!==AsciiCodePoint.CLOSE_ANGLE)return null;for(N+=1;N=4)return null;const{nodePoints:L,startIndex:B,endIndex:j,firstNonWhitespaceIndex:F}=N;if(F>=j||L[F].codePoint!==AsciiCodePoint.OPEN_ANGLE)return null;const V=F+1,K=O(L,V,j);if(K==null)return null;const{condition:W}=K;let X=!1;W!==6&&W!==7&&I(L,K.nextIndex,j,W)!=null&&(X=!0);const J=j;return{token:{nodeType:HtmlType,position:{start:calcStartPoint(L,B),end:calcEndPoint(L,J-1)},condition:W,lines:[N]},nextIndex:J,saturated:X}}function C(N,L){const B=S(N);if(B==null||B.token.condition===7)return null;const{token:j,nextIndex:F}=B;return{token:j,nextIndex:F,remainingSibling:L}}function R(N,L){const{nodePoints:B,endIndex:j,firstNonWhitespaceIndex:F}=N,V=I(B,F,j,L.condition);return V===-1?{status:"notMatched"}:(L.lines.push(N),V!=null?{status:"closing",nextIndex:j}:{status:"opening",nextIndex:j})}function O(N,L,B){let j=null;if(L>=B)return null;if(j=eatStartCondition2(N,L,B),j!=null)return{nextIndex:j,condition:2};if(j=eatStartCondition3(N,L,B),j!=null)return{nextIndex:j,condition:3};if(j=eatStartCondition4(N,L,B),j!=null)return{nextIndex:j,condition:4};if(j=eatStartCondition5(N,L,B),j!=null)return{nextIndex:j,condition:5};if(N[L].codePoint!==AsciiCodePoint.SLASH){const J=L,oe=eatHTMLTagName(N,J,B);if(oe==null)return null;const pe={startIndex:J,endIndex:oe},xe=calcStringFromNodePoints(N,pe.startIndex,pe.endIndex).toLowerCase();return j=eatStartCondition1(N,pe.endIndex,B,xe),j!=null?{nextIndex:j,condition:1}:(j=eatStartCondition6(N,pe.endIndex,B,xe),j!=null?{nextIndex:j,condition:6}:(j=eatStartCondition7(N,pe.endIndex,B,xe,!0),j!=null?{nextIndex:j,condition:7}:null))}const F=L+1,V=eatHTMLTagName(N,F,B);if(V==null)return null;const K={startIndex:F,endIndex:V},X=calcStringFromNodePoints(N,K.startIndex,K.endIndex).toLowerCase();return j=eatStartCondition6(N,K.endIndex,B,X),j!=null?{nextIndex:j,condition:6}:(j=eatStartCondition7(N,K.endIndex,B,X,!1),j!=null?{nextIndex:j,condition:7}:null)}function I(N,L,B,j){switch(j){case 1:return eatEndCondition1(N,L,B)==null?null:B;case 2:return eatEndCondition2(N,L,B)==null?null:B;case 3:return eatEndCondition3(N,L,B)==null?null:B;case 4:return eatEndCondition4(N,L,B)==null?null:B;case 5:return eatEndCondition5(N,L,B)==null?null:B;case 6:case 7:return eatOptionalWhitespaces(N,L,B)>=B?-1:null}}},parse$d=function(S){return{parse:C=>C.map(R=>{const O=mergeContentLinesFaithfully(R.lines);return S.shouldReservePosition?{type:"html",position:R.position,value:calcStringFromNodePoints(O)}:{type:"html",value:calcStringFromNodePoints(O)}})}},uniqueName$c="@yozora/tokenizer-html-block";class HtmlBlockTokenizer extends BaseBlockTokenizer{constructor(R={}){super({name:R.name??uniqueName$c,priority:R.priority??TokenizerPriority.ATOMIC});Cn(this,"match",match$f);Cn(this,"parse",parse$d)}}function eatHtmlInlineCDataDelimiter(S,C,R){let O=C;if(O+11>=R||S[O+1].codePoint!==AsciiCodePoint.EXCLAMATION_MARK||S[O+2].codePoint!==AsciiCodePoint.OPEN_BRACKET||S[O+3].codePoint!==AsciiCodePoint.UPPERCASE_C||S[O+4].codePoint!==AsciiCodePoint.UPPERCASE_D||S[O+5].codePoint!==AsciiCodePoint.UPPERCASE_A||S[O+6].codePoint!==AsciiCodePoint.UPPERCASE_T||S[O+7].codePoint!==AsciiCodePoint.UPPERCASE_A||S[O+8].codePoint!==AsciiCodePoint.OPEN_BRACKET)return null;const I=O+9;for(O=I;O=R)return null;if(S[O+1].codePoint===AsciiCodePoint.CLOSE_BRACKET&&S[O+2].codePoint===AsciiCodePoint.CLOSE_ANGLE)return{type:"full",startIndex:C,endIndex:O+3,htmlType:"cdata"}}return null}function eatHtmlInlineClosingDelimiter(S,C,R){let O=C;if(O+3>=R||S[O+1].codePoint!==AsciiCodePoint.SLASH)return null;const I=O+2,N=eatHTMLTagName(S,I,R);return N==null||(O=eatOptionalWhitespaces(S,N,R),O>=R||S[O].codePoint!==AsciiCodePoint.CLOSE_ANGLE)?null:{type:"full",startIndex:C,endIndex:O+1,htmlType:"closing",tagName:{startIndex:I,endIndex:N}}}function eatHtmlInlineCommentDelimiter(S,C,R){let O=C;if(O+6>=R||S[O+1].codePoint!==AsciiCodePoint.EXCLAMATION_MARK||S[O+2].codePoint!==AsciiCodePoint.MINUS_SIGN||S[O+3].codePoint!==AsciiCodePoint.MINUS_SIGN||S[O+4].codePoint===AsciiCodePoint.CLOSE_ANGLE||S[O+4].codePoint===AsciiCodePoint.MINUS_SIGN&&S[O+5].codePoint===AsciiCodePoint.CLOSE_ANGLE)return null;const I=O+4;for(O=I;O2||O+2>=R||S[O+2].codePoint!==AsciiCodePoint.CLOSE_ANGLE?null:{type:"full",startIndex:C,endIndex:O+3,htmlType:"comment"}}return null}function eatHtmlInlineDeclarationDelimiter(S,C,R){let O=C;if(O+4>=R||S[O+1].codePoint!==AsciiCodePoint.EXCLAMATION_MARK)return null;const I=O+2;for(O=I;O=R||!isWhitespaceCharacter(S[O].codePoint))return null;const N=O,L=O+1;for(O=L;O=R||S[O+1].codePoint!==AsciiCodePoint.QUESTION_MARK)return null;const I=O+2;for(O=I;O=R)return null;if(S[O+1].codePoint===AsciiCodePoint.CLOSE_ANGLE)return{type:"full",startIndex:C,endIndex:O+2,htmlType:"instruction"}}return null}function eatHtmlInlineTokenOpenDelimiter(S,C,R){let O=C;if(O+2>=R)return null;const I=O+1,N=eatHTMLTagName(S,I,R);if(N==null)return null;const L=[];for(O=N;O=R)return null;let B=!1;return S[O].codePoint===AsciiCodePoint.SLASH&&(O+=1,B=!0),O>=R||S[O].codePoint!==AsciiCodePoint.CLOSE_ANGLE?null:{type:"full",startIndex:C,endIndex:O+1,htmlType:"open",tagName:{startIndex:I,endIndex:N},attributes:L,selfClosed:B}}const match$e=function(S){return{findDelimiter:()=>genFindDelimiter(C),processSingleDelimiter:R};function C(O,I){const N=S.getNodePoints();for(let L=O;L=I));++L)switch(N[L].codePoint){case AsciiCodePoint.BACKSLASH:L+=1;break;case AsciiCodePoint.OPEN_ANGLE:{const j=tryToEatDelimiter(N,L,I);if(j!=null)return j;break}}return null}function R(O){return[{...O,nodeType:HtmlType}]}};function tryToEatDelimiter(S,C,R){let O=null;return O=eatHtmlInlineTokenOpenDelimiter(S,C,R),O!=null||(O=eatHtmlInlineClosingDelimiter(S,C,R),O!=null)||(O=eatHtmlInlineCommentDelimiter(S,C,R),O!=null)||(O=eatHtmlInlineInstructionDelimiter(S,C,R),O!=null)||(O=eatHtmlInlineDeclarationDelimiter(S,C,R),O!=null)||(O=eatHtmlInlineCDataDelimiter(S,C,R)),O}const parse$c=function(S){return{parse:C=>C.map(R=>{const{startIndex:O,endIndex:I}=R,N=S.getNodePoints(),L=calcStringFromNodePoints(N,O,I);return S.shouldReservePosition?{type:HtmlType,position:S.calcPosition(R),value:L}:{type:HtmlType,value:L}})}},uniqueName$b="@yozora/tokenizer-html-inline";class HtmlInlineTokenizer extends BaseInlineTokenizer{constructor(R={}){super({name:R.name??uniqueName$b,priority:R.priority??TokenizerPriority.ATOMIC});Cn(this,"match",match$e);Cn(this,"parse",parse$c)}}const checkBalancedBracketsStatus=(S,C,R,O)=>{let I=S,N=0;const L=()=>{switch(O[I].codePoint){case AsciiCodePoint.BACKSLASH:I+=1;break;case AsciiCodePoint.OPEN_BRACKET:N+=1;break;case AsciiCodePoint.CLOSE_BRACKET:N-=1;break}};for(const B of R)if(!(B.startIndexC)break;for(;I0?1:0};function eatLinkDestination(S,C,R){if(C>=R)return-1;let O=C;switch(S[O].codePoint){case AsciiCodePoint.OPEN_ANGLE:{for(O+=1;O=R)return-1;let O=C;const I=S[O].codePoint;switch(I){case AsciiCodePoint.DOUBLE_QUOTE:case AsciiCodePoint.SINGLE_QUOTE:{for(O+=1;ON.line+1)return-1;break}}}break}case AsciiCodePoint.OPEN_PARENTHESIS:{let N=1;for(O+=1;OL.line+1)return-1;break}case AsciiCodePoint.OPEN_PARENTHESIS:N+=1;break;case AsciiCodePoint.CLOSE_PARENTHESIS:if(N-=1,N===0)return O+1;break}}break}case AsciiCodePoint.CLOSE_PARENTHESIS:return O;default:return-1}return-1}const match$d=function(S){return{findDelimiter:()=>genFindDelimiter(C),isDelimiterPair:R,processDelimiterPair:O};function C(I,N){const L=S.getNodePoints(),B=S.getBlockEndIndex();for(let j=I;j=N||L[j+1].codePoint!==AsciiCodePoint.OPEN_PARENTHESIS)break;const V=eatOptionalWhitespaces(L,j+2,B),K=eatLinkDestination(L,V,B);if(K<0)break;const W=eatOptionalWhitespaces(L,K,B),X=eatLinkTitle(L,W,B);if(X<0)break;const J=j,oe=eatOptionalWhitespaces(L,X,B)+1;if(oe>B||L[oe-1].codePoint!==AsciiCodePoint.CLOSE_PARENTHESIS)break;return{type:"closer",startIndex:J,endIndex:oe,destinationContent:VC.map(R=>{const O=S.getNodePoints();let I="";if(R.destinationContent!=null){let{startIndex:j,endIndex:F}=R.destinationContent;O[j].codePoint===AsciiCodePoint.OPEN_ANGLE&&(j+=1,F-=1);const V=calcEscapedStringFromNodePoints(O,j,F,!0);I=S.formatUrl(V)}let N;if(R.titleContent!=null){const{startIndex:j,endIndex:F}=R.titleContent;N=calcEscapedStringFromNodePoints(O,j+1,F-1)}const L=S.parseInlineTokens(R.children);return S.shouldReservePosition?{type:LinkType,position:S.calcPosition(R),url:I,title:N,children:L}:{type:LinkType,url:I,title:N,children:L}})}},uniqueName$a="@yozora/tokenizer-link";class LinkTokenizer extends BaseInlineTokenizer{constructor(R={}){super({name:R.name??uniqueName$a,priority:R.priority??TokenizerPriority.LINKS});Cn(this,"match",match$d);Cn(this,"parse",parse$b)}}function calcImageAlt(S){return S.map(C=>C.value!=null?C.value:C.alt!=null?C.alt:C.children!=null?calcImageAlt(C.children):"").join("")}const match$c=function(S){return{findDelimiter:()=>genFindDelimiter(C),isDelimiterPair:R,processDelimiterPair:O};function C(I,N){const L=S.getNodePoints(),B=S.getBlockEndIndex();for(let j=I;j=N||L[j+1].codePoint!==AsciiCodePoint.OPEN_PARENTHESIS)break;const V=eatOptionalWhitespaces(L,j+2,B),K=eatLinkDestination(L,V,B);if(K<0)break;const W=eatOptionalWhitespaces(L,K,B),X=eatLinkTitle(L,W,B);if(X<0)break;const J=j,oe=eatOptionalWhitespaces(L,X,B)+1;if(oe>B||L[oe-1].codePoint!==AsciiCodePoint.CLOSE_PARENTHESIS)break;return{type:"closer",startIndex:J,endIndex:oe,destinationContent:VC.map(R=>{const O=S.getNodePoints();let I="";if(R.destinationContent!=null){let{startIndex:F,endIndex:V}=R.destinationContent;O[F].codePoint===AsciiCodePoint.OPEN_ANGLE&&(F+=1,V-=1);const K=calcEscapedStringFromNodePoints(O,F,V,!0);I=S.formatUrl(K)}const N=S.parseInlineTokens(R.children),L=calcImageAlt(N);let B;if(R.titleContent!=null){const{startIndex:F,endIndex:V}=R.titleContent;B=calcEscapedStringFromNodePoints(O,F+1,V-1)}return S.shouldReservePosition?{type:ImageType$1,position:S.calcPosition(R),url:I,alt:L,title:B}:{type:ImageType$1,url:I,alt:L,title:B}})}},uniqueName$9="@yozora/tokenizer-image";class ImageTokenizer extends BaseInlineTokenizer{constructor(R={}){super({name:R.name??uniqueName$9,priority:R.priority??TokenizerPriority.LINKS});Cn(this,"match",match$c);Cn(this,"parse",parse$a)}}const match$b=function(S){return{findDelimiter:()=>genFindDelimiter(C),isDelimiterPair:R,processDelimiterPair:O};function C(I,N){const L=S.getNodePoints();for(let B=I;B=N||L[B+1].codePoint!==AsciiCodePoint.OPEN_BRACKET)break;return{type:"opener",startIndex:B,endIndex:B+2,brackets:[]}}case AsciiCodePoint.CLOSE_BRACKET:{const F={type:"closer",startIndex:B,endIndex:B+1,brackets:[]};if(B+1>=N||L[B+1].codePoint!==AsciiCodePoint.OPEN_BRACKET)return F;const V=eatLinkLabel(L,B+1,N);return V.nextIndex<0?F:V.labelAndIdentifier==null?{type:"closer",startIndex:B,endIndex:V.nextIndex,brackets:[{startIndex:B+1,endIndex:V.nextIndex}]}:{type:"closer",startIndex:B,endIndex:V.nextIndex,brackets:[{startIndex:B+1,endIndex:V.nextIndex,label:V.labelAndIdentifier.label,identifier:V.labelAndIdentifier.identifier}]}}}return null}function R(I,N,L){const B=S.getNodePoints();switch(checkBalancedBracketsStatus(I.endIndex,N.startIndex,L,B)){case-1:return{paired:!1,opener:!1,closer:!0};case 0:return{paired:!0};case 1:return{paired:!1,opener:!0,closer:!1}}}function O(I,N,L){const B=S.getNodePoints(),j=N.brackets[0];if(j!=null&&j.identifier!=null)return S.hasDefinition(j.identifier)?{tokens:[{nodeType:ImageReferenceType,startIndex:I.startIndex,endIndex:j.endIndex,referenceType:"full",label:j.label,identifier:j.identifier,children:S.resolveInternalTokens(L,I.endIndex,N.startIndex)}]}:{tokens:L};const{nextIndex:F,labelAndIdentifier:V}=eatLinkLabel(B,I.endIndex-1,N.startIndex+1);return F===N.startIndex+1&&V!=null&&S.hasDefinition(V.identifier)?{tokens:[{nodeType:ImageReferenceType,startIndex:I.startIndex,endIndex:N.endIndex,referenceType:j==null?"shortcut":"collapsed",label:V.label,identifier:V.identifier,children:S.resolveInternalTokens(L,I.endIndex,N.startIndex)}]}:{tokens:L}}},parse$9=function(S){return{parse:C=>C.map(R=>{const{identifier:O,label:I,referenceType:N}=R,L=S.parseInlineTokens(R.children),B=calcImageAlt(L);return S.shouldReservePosition?{type:ImageReferenceType,position:S.calcPosition(R),identifier:O,label:I,referenceType:N,alt:B}:{type:ImageReferenceType,identifier:O,label:I,referenceType:N,alt:B}})}},uniqueName$8="@yozora/tokenizer-image-reference";class ImageReferenceTokenizer extends BaseInlineTokenizer{constructor(R={}){super({name:R.name??uniqueName$8,priority:R.priority??TokenizerPriority.LINKS});Cn(this,"match",match$b);Cn(this,"parse",parse$9)}}const match$a=function(){return{isContainingBlock:!1,eatOpener:S,eatContinuationText:C};function S(R){if(R.countOfPrecedeSpaces<4)return null;const{nodePoints:O,startIndex:I,firstNonWhitespaceIndex:N,endIndex:L}=R;let B=I+4;if(O[I].codePoint===AsciiCodePoint.SPACE&&O[I+3].codePoint===VirtualCodePoint.SPACE){let V=I+1;for(;VC.map(R=>{const{lines:O}=R;let I=0,N=O.length;for(;IV+1&&L.push({type:"opener",startIndex:V+1,endIndex:W}),V=W-1}break}case AsciiCodePoint.BACKTICK:{const W=V,X=eatOptionalCharacters(O,V+1,N,K);L.push({type:"both",startIndex:W,endIndex:X}),V=X-1;break}}}let B=0,j=-1,F=null;for(;B=V))continue;j=K;let W=null,X=null;for(;B=V&&oe.type!=="closer")break}if(B+1>=L.length)return;W=L[B];const J=W.endIndex-W.startIndex;for(let oe=B+1;oeC.map(R=>{const O=S.getNodePoints();let I=R.startIndex+R.thickness,N=R.endIndex-R.thickness,L=!0;for(let F=I;FgenFindDelimiter(C),isDelimiterPair:R,processDelimiterPair:O,processSingleDelimiter:I};function C(N,L){const B=S.getNodePoints();for(let j=N;j=L||B[j+1].codePoint!==AsciiCodePoint.OPEN_BRACKET)break;const V=eatLinkLabel(B,j+1,L);if(V.nextIndex===-1)return{type:"opener",startIndex:j+1,endIndex:j+2,brackets:[]};if(V.labelAndIdentifier==null){j=V.nextIndex-1;break}const K=[{startIndex:j+1,endIndex:V.nextIndex,label:V.labelAndIdentifier.label,identifier:V.labelAndIdentifier.identifier}],W={type:"closer",startIndex:j,endIndex:V.nextIndex,brackets:K};for(j=V.nextIndex;j=B.length)break;if(F+1C.map(R=>{const{identifier:O,label:I,referenceType:N}=R,L=S.parseInlineTokens(R.children);return S.shouldReservePosition?{type:LinkReferenceType,position:S.calcPosition(R),identifier:O,label:I,referenceType:N,children:L}:{type:LinkReferenceType,identifier:O,label:I,referenceType:N,children:L}})}},uniqueName$5="@yozora/tokenizer-link-reference";class LinkReferenceTokenizer extends BaseInlineTokenizer{constructor(R={}){super({name:R.name??uniqueName$5,priority:R.priority??TokenizerPriority.LINKS});Cn(this,"match",match$8);Cn(this,"parse",parse$6)}}const match$7=function(){const{emptyItemCouldNotInterruptedTypes:S,enableTaskListItem:C}=this;return{isContainingBlock:!0,eatOpener:R,eatAndInterruptPreviousSibling:O,eatContinuationText:I};function R(N){if(N.countOfPrecedeSpaces>=4)return null;const{nodePoints:L,startIndex:B,endIndex:j,firstNonWhitespaceIndex:F}=N;if(F>=j)return null;let V=!1,K=null,W,X,J=F,oe=L[J].codePoint;if(J+1F&&J-F<=9&&(oe===AsciiCodePoint.DOT||oe===AsciiCodePoint.CLOSE_PARENTHESIS)&&(J+=1,V=!0,K=oe)}if(V||(oe===AsciiCodePoint.PLUS_SIGN||oe===AsciiCodePoint.MINUS_SIGN||oe===AsciiCodePoint.ASTERISK)&&(J+=1,K=oe),K==null)return null;let pe=0,me=J;for(me4&&(me-=pe-1,pe=1),pe===0&&me=j){if(L.countOfTopBlankLine>=0&&(L.countOfTopBlankLine+=1,L.countOfTopBlankLine>1))return{status:"notMatched"}}else L.countOfTopBlankLine=-1;return{status:"opening",nextIndex:Math.min(B+L.indent,j-1)}}};function eatTaskStatus(S,C,R){let O=C;for(;O=R||S[O].codePoint!==AsciiCodePoint.OPEN_BRACKET||S[O+2].codePoint!==AsciiCodePoint.CLOSE_BRACKET||!isWhitespaceCharacter(S[O+3].codePoint))return{status:null,nextIndex:C};let I;switch(S[O+1].codePoint){case AsciiCodePoint.SPACE:I=TaskStatus.TODO;break;case AsciiCodePoint.MINUS_SIGN:I=TaskStatus.DOING;break;case AsciiCodePoint.LOWERCASE_X:case AsciiCodePoint.UPPERCASE_X:I=TaskStatus.DONE;break;default:return{status:null,nextIndex:C}}return{status:I,nextIndex:O+4}}const parse$5=function(S){return{parse:C=>{const R=[];let O=[];for(let N=0;N{if(S.length<=0)return null;let R=S.some(N=>{if(N.children==null||N.children.length<=1)return!1;let L=N.children[0].position;for(let B=1;B1){let N=S[0];for(let L=1;L{const L=C.parseBlockTokens(N.children),B=R?L:L.map(F=>F.type===ParagraphType$1?F.children:F).flat();return C.shouldReservePosition?{type:ListItemType,position:N.position,status:N.status,children:B}:{type:ListItemType,status:N.status,children:B}});return C.shouldReservePosition?{type:ListType,position:{start:{...S[0].position.start},end:{...S[S.length-1].position.end}},ordered:S[0].ordered,orderType:S[0].orderType,start:S[0].order,marker:S[0].marker,spread:R,children:O}:{type:ListType,ordered:S[0].ordered,orderType:S[0].orderType,start:S[0].order,marker:S[0].marker,spread:R,children:O}},uniqueName$4="@yozora/tokenizer-list";class ListTokenizer extends BaseBlockTokenizer{constructor(R={}){super({name:R.name??uniqueName$4,priority:R.priority??TokenizerPriority.CONTAINING_BLOCK});Cn(this,"enableTaskListItem");Cn(this,"emptyItemCouldNotInterruptedTypes");Cn(this,"match",match$7);Cn(this,"parse",parse$5);this.enableTaskListItem=R.enableTaskListItem??!1,this.emptyItemCouldNotInterruptedTypes=R.emptyItemCouldNotInterruptedTypes??[ParagraphType$1]}}const match$6=function(){return{isContainingBlock:!1,eatOpener:S,eatContinuationText:C,eatLazyContinuationText:R};function S(O){const{endIndex:I,firstNonWhitespaceIndex:N}=O;if(N>=I)return null;const L=[O],B=calcPositionFromPhrasingContentLines(L);return{token:{nodeType:ParagraphType$1,position:B,lines:L},nextIndex:I}}function C(O,I){const{endIndex:N,firstNonWhitespaceIndex:L}=O;return L>=N?{status:"notMatched"}:(I.lines.push(O),{status:"opening",nextIndex:N})}function R(O,I){return C(O,I)}},parse$4=function(S){return{parse:C=>{const R=[];for(const O of C){const I=mergeAndStripContentLines(O.lines),N=S.processInlines(I);if(N.length<=0)continue;const L=S.shouldReservePosition?{type:ParagraphType$1,position:O.position,children:N}:{type:ParagraphType$1,children:N};R.push(L)}return R}}},uniqueName$3="@yozora/tokenizer-paragraph";class ParagraphTokenizer extends BaseBlockTokenizer{constructor(R={}){super({name:R.name??uniqueName$3,priority:R.priority??TokenizerPriority.FALLBACK});Cn(this,"match",match$6);Cn(this,"parse",parse$4)}extractPhrasingContentLines(R){return R.lines}buildBlockToken(R){const O=trimBlankLines(R);if(O.length<=0)return null;const I=calcPositionFromPhrasingContentLines(O);return{nodeType:ParagraphType$1,lines:O,position:I}}}const match$5=function(S){return{isContainingBlock:!1,eatOpener:C,eatAndInterruptPreviousSibling:R};function C(){return null}function R(O,I){const{nodePoints:N,endIndex:L,firstNonWhitespaceIndex:B,countOfPrecedeSpaces:j}=O;if(j>=4||B>=L)return null;let F=null,V=!1;for(let J=B;JC.map(R=>{let O=1;switch(R.marker){case AsciiCodePoint.EQUALS_SIGN:O=1;break;case AsciiCodePoint.MINUS_SIGN:O=2;break}const I=mergeAndStripContentLines(R.lines),N=S.processInlines(I);return S.shouldReservePosition?{type:HeadingType,position:R.position,depth:O,children:N}:{type:HeadingType,depth:O,children:N}})}},uniqueName$2="@yozora/tokenizer-setext-heading";class SetextHeadingTokenizer extends BaseBlockTokenizer{constructor(R={}){super({name:R.name??uniqueName$2,priority:R.priority??TokenizerPriority.ATOMIC});Cn(this,"match",match$5);Cn(this,"parse",parse$3)}}const match$4=function(){return{findDelimiter:()=>genFindDelimiter((S,C)=>({type:"full",startIndex:S,endIndex:C})),processSingleDelimiter:S=>[{nodeType:TextType$1,startIndex:S.startIndex,endIndex:S.endIndex}]}},parse$2=function(S){return{parse:C=>C.map(R=>{const O=S.getNodePoints();let I=calcEscapedStringFromNodePoints(O,R.startIndex,R.endIndex);return I=stripSpaces(I),S.shouldReservePosition?{type:TextType$1,position:S.calcPosition(R),value:I}:{type:TextType$1,value:I}})}},_stripRegex=/[^\S\n]*\n[^\S\n]*/g,stripSpaces=S=>S.replace(_stripRegex,` -`),uniqueName$1="@yozora/tokenizer-text";class TextTokenizer extends BaseInlineTokenizer{constructor(R={}){super({name:R.name??uniqueName$1,priority:R.priority??TokenizerPriority.FALLBACK});Cn(this,"match",match$4);Cn(this,"parse",parse$2)}findAndHandleDelimiter(R,O){return{nodeType:TextType$1,startIndex:R,endIndex:O}}}const match$3=function(){return{isContainingBlock:!1,eatOpener:S,eatAndInterruptPreviousSibling:C};function S(R){if(R.countOfPrecedeSpaces>=4)return null;const{nodePoints:O,startIndex:I,endIndex:N,firstNonWhitespaceIndex:L}=R;if(L+2>=N)return null;let B,j=0,F=!0,V=!1;for(let W=L;WC.map(R=>S.shouldReservePosition?{type:ThematicBreakType,position:R.position}:{type:ThematicBreakType})}},uniqueName="@yozora/tokenizer-thematic-break";class ThematicBreakTokenizer extends BaseBlockTokenizer{constructor(R={}){super({name:R.name??uniqueName,priority:R.priority??TokenizerPriority.ATOMIC});Cn(this,"match",match$3);Cn(this,"parse",parse$1)}}class GfmParser extends DefaultParser{constructor(C={}){super({...C,blockFallbackTokenizer:C.blockFallbackTokenizer??new ParagraphTokenizer,inlineFallbackTokenizer:C.inlineFallbackTokenizer??new TextTokenizer}),this.useTokenizer(new IndentedCodeTokenizer).useTokenizer(new HtmlBlockTokenizer).useTokenizer(new SetextHeadingTokenizer).useTokenizer(new ThematicBreakTokenizer).useTokenizer(new BlockquoteTokenizer).useTokenizer(new ListTokenizer({enableTaskListItem:!1})).useTokenizer(new HeadingTokenizer).useTokenizer(new FencedCodeTokenizer).useTokenizer(new DefinitionTokenizer).useTokenizer(new HtmlInlineTokenizer).useTokenizer(new InlineCodeTokenizer).useTokenizer(new AutolinkTokenizer).useTokenizer(new BreakTokenizer).useTokenizer(new ImageTokenizer).useTokenizer(new ImageReferenceTokenizer).useTokenizer(new LinkTokenizer).useTokenizer(new LinkReferenceTokenizer).useTokenizer(new EmphasisTokenizer)}}const parser=new GfmParser({defaultParseOptions:{shouldReservePosition:!1}});class BlockquoteRenderer extends React.Component{shouldComponentUpdate(C){return this.props.children!==C.children}render(){const C=this.props.children;return jsxRuntimeExports.jsx("blockquote",{className:cls$b,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:C})})}}const cls$b=mergeStyles$1(astClasses.blockquote,{boxSizing:"border-box",padding:"0.625em 1em",borderLeft:"0.25em solid var(--colorBorderBlockquote)",margin:"0px 0px 1.25em 0px",background:"var(--colorBgBlockquote)",boxShadow:"0 1px 2px 0 hsla(0deg, 0%, 0%, 0.1)","> :last-child":{marginBottom:0}});class BreakRenderer extends React.Component{shouldComponentUpdate(){return!1}render(){return jsxRuntimeExports.jsx("br",{className:cls$a})}}const cls$a=mergeStyles$1(astClasses.break,{boxSizing:"border-box"});var prism={exports:{}};(function(S){var C=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/** - * Prism: Lightweight, robust, elegant syntax highlighting - * - * @license MIT - * @author Lea Verou - * @namespace - * @public - */var R=function(O){var I=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,N=0,L={},B={manual:O.Prism&&O.Prism.manual,disableWorkerMessageHandler:O.Prism&&O.Prism.disableWorkerMessageHandler,util:{encode:function xe(Ae){return Ae instanceof j?new j(Ae.type,xe(Ae.content),Ae.alias):Array.isArray(Ae)?Ae.map(xe):Ae.replace(/&/g,"&").replace(/"u")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(Te){var xe=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(Te.stack)||[])[1];if(xe){var Ae=document.getElementsByTagName("script");for(var ge in Ae)if(Ae[ge].src==xe)return Ae[ge]}return null}},isActive:function(xe,Ae,ge){for(var Te="no-"+Ae;xe;){var we=xe.classList;if(we.contains(Ae))return!0;if(we.contains(Te))return!1;xe=xe.parentElement}return!!ge}},languages:{plain:L,plaintext:L,text:L,txt:L,extend:function(xe,Ae){var ge=B.util.clone(B.languages[xe]);for(var Te in Ae)ge[Te]=Ae[Te];return ge},insertBefore:function(xe,Ae,ge,Te){Te=Te||B.languages;var we=Te[xe],ke={};for(var Be in we)if(we.hasOwnProperty(Be)){if(Be==Ae)for(var Ie in ge)ge.hasOwnProperty(Ie)&&(ke[Ie]=ge[Ie]);ge.hasOwnProperty(Be)||(ke[Be]=we[Be])}var je=Te[xe];return Te[xe]=ke,B.languages.DFS(B.languages,function(Ke,Je){Je===je&&Ke!=xe&&(this[Ke]=ke)}),ke},DFS:function xe(Ae,ge,Te,we){we=we||{};var ke=B.util.objId;for(var Be in Ae)if(Ae.hasOwnProperty(Be)){ge.call(Ae,Be,Ae[Be],Te||Be);var Ie=Ae[Be],je=B.util.type(Ie);je==="Object"&&!we[ke(Ie)]?(we[ke(Ie)]=!0,xe(Ie,ge,null,we)):je==="Array"&&!we[ke(Ie)]&&(we[ke(Ie)]=!0,xe(Ie,ge,Be,we))}}},plugins:{},highlightAll:function(xe,Ae){B.highlightAllUnder(document,xe,Ae)},highlightAllUnder:function(xe,Ae,ge){var Te={callback:ge,container:xe,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};B.hooks.run("before-highlightall",Te),Te.elements=Array.prototype.slice.apply(Te.container.querySelectorAll(Te.selector)),B.hooks.run("before-all-elements-highlight",Te);for(var we=0,ke;ke=Te.elements[we++];)B.highlightElement(ke,Ae===!0,Te.callback)},highlightElement:function(xe,Ae,ge){var Te=B.util.getLanguage(xe),we=B.languages[Te];B.util.setLanguage(xe,Te);var ke=xe.parentElement;ke&&ke.nodeName.toLowerCase()==="pre"&&B.util.setLanguage(ke,Te);var Be=xe.textContent,Ie={element:xe,language:Te,grammar:we,code:Be};function je(Je){Ie.highlightedCode=Je,B.hooks.run("before-insert",Ie),Ie.element.innerHTML=Ie.highlightedCode,B.hooks.run("after-highlight",Ie),B.hooks.run("complete",Ie),ge&&ge.call(Ie.element)}if(B.hooks.run("before-sanity-check",Ie),ke=Ie.element.parentElement,ke&&ke.nodeName.toLowerCase()==="pre"&&!ke.hasAttribute("tabindex")&&ke.setAttribute("tabindex","0"),!Ie.code){B.hooks.run("complete",Ie),ge&&ge.call(Ie.element);return}if(B.hooks.run("before-highlight",Ie),!Ie.grammar){je(B.util.encode(Ie.code));return}if(Ae&&O.Worker){var Ke=new Worker(B.filename);Ke.onmessage=function(Je){je(Je.data)},Ke.postMessage(JSON.stringify({language:Ie.language,code:Ie.code,immediateClose:!0}))}else je(B.highlight(Ie.code,Ie.grammar,Ie.language))},highlight:function(xe,Ae,ge){var Te={code:xe,grammar:Ae,language:ge};if(B.hooks.run("before-tokenize",Te),!Te.grammar)throw new Error('The language "'+Te.language+'" has no grammar.');return Te.tokens=B.tokenize(Te.code,Te.grammar),B.hooks.run("after-tokenize",Te),j.stringify(B.util.encode(Te.tokens),Te.language)},tokenize:function(xe,Ae){var ge=Ae.rest;if(ge){for(var Te in ge)Ae[Te]=ge[Te];delete Ae.rest}var we=new K;return W(we,we.head,xe),V(xe,we,Ae,we.head,0),J(we)},hooks:{all:{},add:function(xe,Ae){var ge=B.hooks.all;ge[xe]=ge[xe]||[],ge[xe].push(Ae)},run:function(xe,Ae){var ge=B.hooks.all[xe];if(!(!ge||!ge.length))for(var Te=0,we;we=ge[Te++];)we(Ae)}},Token:j};O.Prism=B;function j(xe,Ae,ge,Te){this.type=xe,this.content=Ae,this.alias=ge,this.length=(Te||"").length|0}j.stringify=function xe(Ae,ge){if(typeof Ae=="string")return Ae;if(Array.isArray(Ae)){var Te="";return Ae.forEach(function(je){Te+=xe(je,ge)}),Te}var we={type:Ae.type,content:xe(Ae.content,ge),tag:"span",classes:["token",Ae.type],attributes:{},language:ge},ke=Ae.alias;ke&&(Array.isArray(ke)?Array.prototype.push.apply(we.classes,ke):we.classes.push(ke)),B.hooks.run("wrap",we);var Be="";for(var Ie in we.attributes)Be+=" "+Ie+'="'+(we.attributes[Ie]||"").replace(/"/g,""")+'"';return"<"+we.tag+' class="'+we.classes.join(" ")+'"'+Be+">"+we.content+""};function F(xe,Ae,ge,Te){xe.lastIndex=Ae;var we=xe.exec(ge);if(we&&Te&&we[1]){var ke=we[1].length;we.index+=ke,we[0]=we[0].slice(ke)}return we}function V(xe,Ae,ge,Te,we,ke){for(var Be in ge)if(!(!ge.hasOwnProperty(Be)||!ge[Be])){var Ie=ge[Be];Ie=Array.isArray(Ie)?Ie:[Ie];for(var je=0;je=ke.reach);gt+=dt.value.length,dt=dt.next){var Qe=dt.value;if(Ae.length>xe.length)return;if(!(Qe instanceof j)){var lt=1,ht;if(ot){if(ht=F(et,gt,xe,Xe),!ht||ht.index>=xe.length)break;var Gt=ht.index,Ct=ht.index+ht[0].length,$t=gt;for($t+=dt.value.length;Gt>=$t;)dt=dt.next,$t+=dt.value.length;if($t-=dt.value.length,gt=$t,dt.value instanceof j)continue;for(var Lt=dt;Lt!==Ae.tail&&($tke.reach&&(ke.reach=It);var Ht=dt.prev;Vt&&(Ht=W(Ae,Ht,Vt),gt+=Vt.length),X(Ae,Ht,lt);var kt=new j(Be,Je?B.tokenize(Pt,Je):Pt,tt,Pt);if(dt=W(Ae,Ht,kt),bt&&W(Ae,dt,bt),lt>1){var Kt={cause:Be+","+je,reach:It};V(xe,Ae,ge,dt.prev,gt,Kt),ke&&Kt.reach>ke.reach&&(ke.reach=Kt.reach)}}}}}}function K(){var xe={value:null,prev:null,next:null},Ae={value:null,prev:xe,next:null};xe.next=Ae,this.head=xe,this.tail=Ae,this.length=0}function W(xe,Ae,ge){var Te=Ae.next,we={value:ge,prev:Ae,next:Te};return Ae.next=we,Te.prev=we,xe.length++,we}function X(xe,Ae,ge){for(var Te=Ae.next,we=0;we/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},R.languages.markup.tag.inside["attr-value"].inside.entity=R.languages.markup.entity,R.languages.markup.doctype.inside["internal-subset"].inside=R.languages.markup,R.hooks.add("wrap",function(O){O.type==="entity"&&(O.attributes.title=O.content.replace(/&/,"&"))}),Object.defineProperty(R.languages.markup.tag,"addInlined",{value:function(I,N){var L={};L["language-"+N]={pattern:/(^$)/i,lookbehind:!0,inside:R.languages[N]},L.cdata=/^$/i;var B={"included-cdata":{pattern://i,inside:L}};B["language-"+N]={pattern:/[\s\S]+/,inside:R.languages[N]};var j={};j[I]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return I}),"i"),lookbehind:!0,greedy:!0,inside:B},R.languages.insertBefore("markup","cdata",j)}}),Object.defineProperty(R.languages.markup.tag,"addAttribute",{value:function(O,I){R.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+O+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[I,"language-"+I],inside:R.languages[I]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),R.languages.html=R.languages.markup,R.languages.mathml=R.languages.markup,R.languages.svg=R.languages.markup,R.languages.xml=R.languages.extend("markup",{}),R.languages.ssml=R.languages.xml,R.languages.atom=R.languages.xml,R.languages.rss=R.languages.xml,function(O){var I=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;O.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+I.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+I.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+I.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+I.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:I,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},O.languages.css.atrule.inside.rest=O.languages.css;var N=O.languages.markup;N&&(N.tag.addInlined("style","css"),N.tag.addAttribute("style","css"))}(R),R.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},R.languages.javascript=R.languages.extend("clike",{"class-name":[R.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),R.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,R.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:R.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:R.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:R.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:R.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:R.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),R.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:R.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),R.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),R.languages.markup&&(R.languages.markup.tag.addInlined("script","javascript"),R.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),R.languages.js=R.languages.javascript,function(){if(typeof R>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var O="Loading…",I=function(oe,pe){return"✖ Error "+oe+" while fetching file: "+pe},N="✖ Error: File does not exist or is empty",L={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},B="data-src-status",j="loading",F="loaded",V="failed",K="pre[data-src]:not(["+B+'="'+F+'"]):not(['+B+'="'+j+'"])';function W(oe,pe,me){var xe=new XMLHttpRequest;xe.open("GET",oe,!0),xe.onreadystatechange=function(){xe.readyState==4&&(xe.status<400&&xe.responseText?pe(xe.responseText):xe.status>=400?me(I(xe.status,xe.statusText)):me(N))},xe.send(null)}function X(oe){var pe=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(oe||"");if(pe){var me=Number(pe[1]),xe=pe[2],Ae=pe[3];return xe?Ae?[me,Number(Ae)]:[me,void 0]:[me,me]}}R.hooks.add("before-highlightall",function(oe){oe.selector+=", "+K}),R.hooks.add("before-sanity-check",function(oe){var pe=oe.element;if(pe.matches(K)){oe.code="",pe.setAttribute(B,j);var me=pe.appendChild(document.createElement("CODE"));me.textContent=O;var xe=pe.getAttribute("data-src"),Ae=oe.language;if(Ae==="none"){var ge=(/\.(\w+)$/.exec(xe)||[,"none"])[1];Ae=L[ge]||ge}R.util.setLanguage(me,Ae),R.util.setLanguage(pe,Ae);var Te=R.plugins.autoloader;Te&&Te.loadLanguages(Ae),W(xe,function(we){pe.setAttribute(B,F);var ke=X(pe.getAttribute("data-range"));if(ke){var Be=we.split(/\r\n?|\n/g),Ie=ke[0],je=ke[1]==null?Be.length:ke[1];Ie<0&&(Ie+=Be.length),Ie=Math.max(0,Math.min(Ie-1,Be.length)),je<0&&(je+=Be.length),je=Math.max(0,Math.min(je,Be.length)),we=Be.slice(Ie,je).join(` -`),pe.hasAttribute("data-start")||pe.setAttribute("data-start",String(Ie+1))}me.textContent=we,R.highlightElement(me)},function(we){pe.setAttribute(B,V),me.textContent=we})}}),R.plugins.fileHighlight={highlight:function(pe){for(var me=(pe||document).querySelectorAll(K),xe=0,Ae;Ae=me[xe++];)R.highlightElement(Ae)}};var J=!1;R.fileHighlight=function(){J||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),J=!0),R.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(prism);var prismExports=prism.exports;const Prism=getDefaultExportFromCjs(prismExports);var define_process_env_default$l={};function sheetForTag(S){if(S.sheet)return S.sheet;for(var C=0;C0?charat(characters,--position):0,column--,character===10&&(column=1,line--),character}function next(){return character=position2||token(character)>3?"":" "}function escaping(S,C){for(;--C&&next()&&!(character<48||character>102||character>57&&character<65||character>70&&character<97););return slice$6(S,caret()+(C<6&&peek()==32&&next()==32))}function delimiter(S){for(;next();)switch(character){case S:return position;case 34:case 39:S!==34&&S!==39&&delimiter(character);break;case 40:S===41&&delimiter(S);break;case 92:next();break}return position}function commenter(S,C){for(;next()&&S+character!==57;)if(S+character===84&&peek()===47)break;return"/*"+slice$6(C,position-1)+"*"+from$6(S===47?S:next())}function identifier(S){for(;!token(peek());)next();return slice$6(S,position)}function compile(S){return dealloc(parse("",null,null,null,[""],S=alloc(S),0,[0],S))}function parse(S,C,R,O,I,N,L,B,j){for(var F=0,V=0,K=L,W=0,X=0,J=0,oe=1,pe=1,me=1,xe=0,Ae="",ge=I,Te=N,we=O,ke=Ae;pe;)switch(J=xe,xe=next()){case 40:if(J!=108&&charat(ke,K-1)==58){indexof(ke+=replace$2(delimit(xe),"&","&\f"),"&\f")!=-1&&(me=-1);break}case 34:case 39:case 91:ke+=delimit(xe);break;case 9:case 10:case 13:case 32:ke+=whitespace(J);break;case 92:ke+=escaping(caret()-1,7);continue;case 47:switch(peek()){case 42:case 47:append$1(comment(commenter(next(),caret()),C,R),j);break;default:ke+="/"}break;case 123*oe:B[F++]=strlen(ke)*me;case 125*oe:case 59:case 0:switch(xe){case 0:case 125:pe=0;case 59+V:me==-1&&(ke=replace$2(ke,/\f/g,"")),X>0&&strlen(ke)-K&&append$1(X>32?declaration(ke+";",O,R,K-1):declaration(replace$2(ke," ","")+";",O,R,K-2),j);break;case 59:ke+=";";default:if(append$1(we=ruleset(ke,C,R,F,V,I,B,Ae,ge=[],Te=[],K),N),xe===123)if(V===0)parse(ke,C,we,we,ge,N,K,B,Te);else switch(W===99&&charat(ke,3)===110?100:W){case 100:case 108:case 109:case 115:parse(S,we,we,O&&append$1(ruleset(S,we,we,0,0,I,B,Ae,I,ge=[],K),Te),I,Te,K,B,O?ge:Te);break;default:parse(ke,we,we,we,[""],Te,0,B,Te)}}F=V=X=0,oe=me=1,Ae=ke="",K=L;break;case 58:K=1+strlen(ke),X=J;default:if(oe<1){if(xe==123)--oe;else if(xe==125&&oe++==0&&prev()==125)continue}switch(ke+=from$6(xe),xe*oe){case 38:me=V>0?1:(ke+="\f",-1);break;case 44:B[F++]=(strlen(ke)-1)*me,me=1;break;case 64:peek()===45&&(ke+=delimit(next())),W=peek(),V=K=strlen(Ae=ke+=identifier(caret())),xe++;break;case 45:J===45&&strlen(ke)==2&&(oe=0)}}return N}function ruleset(S,C,R,O,I,N,L,B,j,F,V){for(var K=I-1,W=I===0?N:[""],X=sizeof(W),J=0,oe=0,pe=0;J0?W[me]+" "+xe:replace$2(xe,/&\f/g,W[me])))&&(j[pe++]=Ae);return node(S,C,R,I===0?RULESET:B,j,F,V)}function comment(S,C,R){return node(S,C,R,COMMENT,from$6(char()),substr(S,2,-2),0)}function declaration(S,C,R,O){return node(S,C,R,DECLARATION,substr(S,0,O),substr(S,O+1,-1),O)}function serialize(S,C){for(var R="",O=sizeof(S),I=0;I-1},createUnsafeSelectorsAlarm=function S(C){return function(R,O,I){if(!(R.type!=="rule"||C.compat)){var N=R.value.match(/(:first|:nth|:nth-last)-child/g);if(N){for(var L=!!R.parent,B=L?R.parent.children:I,j=B.length-1;j>=0;j--){var F=B[j];if(F.line=0;O--)if(!isImportRule(R[O]))return!0;return!1},nullifyElement=function S(C){C.type="",C.value="",C.return="",C.children="",C.props=""},incorrectImportAlarm=function S(C,R,O){isImportRule(C)&&(C.parent?(console.error("`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles."),nullifyElement(C)):isPrependedWithRegularRules(R,O)&&(console.error("`@import` rules can't be after other rules. Please put your `@import` rules before your other rules."),nullifyElement(C)))};function prefix$1(S,C){switch(hash(S,C)){case 5103:return WEBKIT+"print-"+S+S;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return WEBKIT+S+S;case 5349:case 4246:case 4810:case 6968:case 2756:return WEBKIT+S+MOZ+S+MS+S+S;case 6828:case 4268:return WEBKIT+S+MS+S+S;case 6165:return WEBKIT+S+MS+"flex-"+S+S;case 5187:return WEBKIT+S+replace$2(S,/(\w+).+(:[^]+)/,WEBKIT+"box-$1$2"+MS+"flex-$1$2")+S;case 5443:return WEBKIT+S+MS+"flex-item-"+replace$2(S,/flex-|-self/,"")+S;case 4675:return WEBKIT+S+MS+"flex-line-pack"+replace$2(S,/align-content|flex-|-self/,"")+S;case 5548:return WEBKIT+S+MS+replace$2(S,"shrink","negative")+S;case 5292:return WEBKIT+S+MS+replace$2(S,"basis","preferred-size")+S;case 6060:return WEBKIT+"box-"+replace$2(S,"-grow","")+WEBKIT+S+MS+replace$2(S,"grow","positive")+S;case 4554:return WEBKIT+replace$2(S,/([^-])(transform)/g,"$1"+WEBKIT+"$2")+S;case 6187:return replace$2(replace$2(replace$2(S,/(zoom-|grab)/,WEBKIT+"$1"),/(image-set)/,WEBKIT+"$1"),S,"")+S;case 5495:case 3959:return replace$2(S,/(image-set\([^]*)/,WEBKIT+"$1$`$1");case 4968:return replace$2(replace$2(S,/(.+:)(flex-)?(.*)/,WEBKIT+"box-pack:$3"+MS+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+WEBKIT+S+S;case 4095:case 3583:case 4068:case 2532:return replace$2(S,/(.+)-inline(.+)/,WEBKIT+"$1$2")+S;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(strlen(S)-1-C>6)switch(charat(S,C+1)){case 109:if(charat(S,C+4)!==45)break;case 102:return replace$2(S,/(.+:)(.+)-([^]+)/,"$1"+WEBKIT+"$2-$3$1"+MOZ+(charat(S,C+3)==108?"$3":"$2-$3"))+S;case 115:return~indexof(S,"stretch")?prefix$1(replace$2(S,"stretch","fill-available"),C)+S:S}break;case 4949:if(charat(S,C+1)!==115)break;case 6444:switch(charat(S,strlen(S)-3-(~indexof(S,"!important")&&10))){case 107:return replace$2(S,":",":"+WEBKIT)+S;case 101:return replace$2(S,/(.+:)([^;!]+)(;|!.+)?/,"$1"+WEBKIT+(charat(S,14)===45?"inline-":"")+"box$3$1"+WEBKIT+"$2$3$1"+MS+"$2box$3")+S}break;case 5936:switch(charat(S,C+11)){case 114:return WEBKIT+S+MS+replace$2(S,/[svh]\w+-[tblr]{2}/,"tb")+S;case 108:return WEBKIT+S+MS+replace$2(S,/[svh]\w+-[tblr]{2}/,"tb-rl")+S;case 45:return WEBKIT+S+MS+replace$2(S,/[svh]\w+-[tblr]{2}/,"lr")+S}return WEBKIT+S+MS+S+S}return S}var prefixer=function S(C,R,O,I){if(C.length>-1&&!C.return)switch(C.type){case DECLARATION:C.return=prefix$1(C.value,C.length);break;case KEYFRAMES:return serialize([copy$2(C,{value:replace$2(C.value,"@","@"+WEBKIT)})],I);case RULESET:if(C.length)return combine(C.props,function(N){switch(match$2(N,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize([copy$2(C,{props:[replace$2(N,/:(read-\w+)/,":"+MOZ+"$1")]})],I);case"::placeholder":return serialize([copy$2(C,{props:[replace$2(N,/:(plac\w+)/,":"+WEBKIT+"input-$1")]}),copy$2(C,{props:[replace$2(N,/:(plac\w+)/,":"+MOZ+"$1")]}),copy$2(C,{props:[replace$2(N,/:(plac\w+)/,MS+"input-$1")]})],I)}return""})}},defaultStylisPlugins=[prefixer],createCache=function S(C){var R=C.key;if(define_process_env_default$k.NODE_ENV!=="production"&&!R)throw new Error(`You have to configure \`key\` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache. -If multiple caches share the same key they might "fight" for each other's style elements.`);if(R==="css"){var O=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(O,function(oe){var pe=oe.getAttribute("data-emotion");pe.indexOf(" ")!==-1&&(document.head.appendChild(oe),oe.setAttribute("data-s",""))})}var I=C.stylisPlugins||defaultStylisPlugins;if(define_process_env_default$k.NODE_ENV!=="production"&&/[^a-z-]/.test(R))throw new Error('Emotion key must only contain lower case alphabetical characters and - but "'+R+'" was passed');var N={},L,B=[];L=C.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+R+' "]'),function(oe){for(var pe=oe.getAttribute("data-emotion").split(" "),me=1;me css`color: ${props.color}`\nIt can be called directly with props or interpolated in a styled call like this\nlet SomeComponent = styled('div')`${dynamicStyle}`");break}case"string":if(define_process_env_default$j.NODE_ENV!=="production"){var B=[],j=R.replace(animationRegex,function(V,K,W){var X="animation"+B.length;return B.push("const "+X+" = keyframes`"+W.replace(/^@keyframes animation-\w+/,"")+"`"),"${"+X+"}"});B.length&&console.error("`keyframes` output got interpolated into plain string, please wrap it with `css`.\n\nInstead of doing this:\n\n"+[].concat(B,["`"+j+"`"]).join(` -`)+` - -You should wrap it with \`css\` like this: - -`+("css`"+j+"`"))}break}if(C==null)return R;var F=C[R];return F!==void 0?F:R}function createStringFromObject(S,C,R){var O="";if(Array.isArray(R))for(var I=0;INumber.isNaN(Number(S))).map(([S,C])=>[S,`var(${C})`])),Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s(?:\s*[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>/]+/,inside:{namespace:/^[^\s>/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",function(S){S.type==="entity"&&S.attributes&&(S.attributes.title=S.content.replace(/&/,"&"))}),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function S(C,R){const O={};O["language-"+R]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[R]},O.cdata=/^$/i;const I={"included-cdata":{pattern://i,inside:O}};I["language-"+R]={pattern:/[\s\S]+/,inside:Prism.languages[R]};const N={};N[C]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return C}),"i"),lookbehind:!0,greedy:!0,inside:I},Prism.languages.insertBefore("markup","cdata",N)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(S,C){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+S+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[C,"language-"+C],inside:Prism.languages[C]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml;const envVars="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",commandAfterHeredoc={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:void 0},insideString={bash:commandAfterHeredoc,environment:{pattern:RegExp("\\$"+envVars),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!/]|##?|%%?|\^\^?|,,?/,punctuation:/[[\]]/,environment:{pattern:RegExp("(\\{)"+envVars),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};Prism.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+envVars),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:insideString},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:commandAfterHeredoc}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:insideString},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:insideString.entity}}],environment:{pattern:RegExp("\\$?"+envVars),alias:"constant"},variable:insideString.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},commandAfterHeredoc.inside=Prism.languages.bash;const toBeCopied=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],inside$1=insideString.variable[1].inside;for(let S=0;S>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),Prism.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),Prism.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},Prism.languages.c.string],char:Prism.languages.c.char,comment:Prism.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:Prism.languages.c}}}}),Prism.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete Prism.languages.c.boolean;const string$1=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+string$1.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+string$1.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+string$1.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+string$1.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:string$1,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},Prism.languages.css.atrule.inside.rest=Prism.languages.css;const markup=Prism.languages.markup;markup&&(markup.tag.addInlined("style","css"),markup.tag.addAttribute("style","css"));const keyword=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,modName=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return keyword.source});Prism.languages.cpp=Prism.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return keyword.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),Prism.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return modName})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),Prism.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:Prism.languages.cpp}}}}),Prism.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),Prism.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:Prism.languages.extend("cpp",{})}}),Prism.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},Prism.languages.cpp["base-clause"]);const ID="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!)*>/.source].join("|")+")",IDInside={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:Prism.languages.markup}};function withID(S,C){return RegExp(S.replace(//g,function(){return ID}),C)}Prism.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:withID(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:IDInside},"attr-value":{pattern:withID(/(=[ \t\r\n]*)/.source),lookbehind:!0,greedy:!0,inside:IDInside},"attr-name":{pattern:withID(/([[;, \t\r\n])(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:IDInside},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ewc_]|[ns][ew]?)(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:withID(/(^|[^-.\w\x80-\uFFFF\\])/.source),lookbehind:!0,greedy:!0,inside:IDInside},operator:/[=:]|-[->]/,punctuation:/[[\]{};,]/},Prism.languages.gv=Prism.languages.dot,Prism.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};const PREFIXES={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(PREFIXES).forEach(function(S){const C=PREFIXES[S],R=[];/^\w+$/.test(S)||R.push(/\w+/.exec(S)[0]),S==="diff"&&R.push("bold"),Prism.languages.diff[S]={pattern:RegExp("^(?:["+C+`].*(?:\r -?| -|(?![\\s\\S])))+`,"m"),alias:R,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(S)[0]}}}}),Object.defineProperty(Prism.languages.diff,"PREFIXES",{value:PREFIXES}),Prism.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},Prism.languages.go=Prism.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),Prism.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete Prism.languages.go["class-name"];const keywords=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,classNamePrefix=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,className={pattern:RegExp(/(^|[^\w.])/.source+classNamePrefix+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};if(Prism.languages.java=Prism.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[className,{pattern:RegExp(/(^|[^\w.])/.source+classNamePrefix+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:className.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+classNamePrefix+/[A-Z]\w*\b/.source),lookbehind:!0,inside:className.inside}],keyword:keywords,function:[Prism.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),Prism.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),Prism.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":className,keyword:keywords,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+classNamePrefix+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:className.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+classNamePrefix+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:className.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,function(){return keywords.source})),lookbehind:!0,inside:{punctuation:/\./}}}),Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup){const S=Prism.languages.markup;S.tag.addInlined("script","javascript"),S.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")}Prism.languages.js=Prism.languages.javascript,Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json;const javascript=Prism.util.clone(Prism.languages.javascript),space=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,braces=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source;let spread=/(?:\{*\.{3}(?:[^{}]|)*\})/.source;function re$1(S,C){const R=S.replace(//g,()=>space).replace(//g,()=>braces).replace(//g,()=>spread);return RegExp(R,C)}spread=re$1(spread).source,Prism.languages.jsx=Prism.languages.extend("markup",javascript);const jsx=Prism.languages.jsx;jsx.tag.pattern=re$1(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),jsx.tag.inside.tag.pattern=/^<\/?[^\s>/]*/,jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,jsx.tag.inside.comment=javascript.comment,Prism.languages.insertBefore("inside","attr-name",{spread:{pattern:re$1(//.source),inside:Prism.languages.jsx}},jsx.tag),Prism.languages.insertBefore("inside","special-attr",{script:{pattern:re$1(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:Prism.languages.jsx}}},jsx.tag);const stringifyToken=function(S){return S?typeof S=="string"?S:typeof S.content=="string"?S.content:S.content.map(stringifyToken).join(""):""},walkTokens=function(S){const C=[];for(let R=0;R0&&C[C.length-1].tagName===stringifyToken(N[0].content[1])&&C.pop():N[N.length-1].content==="/>"||C.push({tagName:stringifyToken(N[0].content[1]),openedBraces:0}):C.length>0&&O.type==="punctuation"&&O.content==="{"?C[C.length-1].openedBraces+=1:C.length>0&&C[C.length-1].openedBraces>0&&O.type==="punctuation"&&O.content==="}"?C[C.length-1].openedBraces-=1:I=!0}if((I||typeof O=="string")&&C.length>0&&C[C.length-1].openedBraces===0){let N=stringifyToken(O);R0&&(typeof S[R-1]=="string"||S[R-1].type==="plain-text")&&(N=stringifyToken(S[R-1])+N,S.splice(R-1,1),R-=1),S[R]=new Prism.Token("plain-text",N,void 0,N)}typeof O!="string"&&O.content&&typeof O.content!="string"&&walkTokens(O.content)}};Prism.hooks.add("after-tokenize",function(S){S.language!=="jsx"&&S.language!=="tsx"||walkTokens(S.tokens)}),Prism.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/};const inner=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function createInline(S){const C=S.replace(//g,function(){return inner});return RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+C+")")}const tableCell=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,tableRow=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return tableCell}),tableLine=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;Prism.languages.markdown=Prism.languages.extend("markup",{}),Prism.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:Prism.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+tableRow+tableLine+"(?:"+tableRow+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+tableRow+tableLine+")(?:"+tableRow+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(tableCell),inside:Prism.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+tableRow+")"+tableLine+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+tableRow+"$"),inside:{"table-header":{pattern:RegExp(tableCell),alias:"important",inside:Prism.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[[\]!:]|[<>]/},alias:"url"},bold:{pattern:createInline(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:createInline(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:createInline(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:createInline(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(S){["url","bold","italic","strike","code-snippet"].forEach(function(C){if(S!==C){const R=Prism.languages.markdown;R[S].inside.content.inside[C]=R[C]}})}),Prism.hooks.add("after-tokenize",function(S){if(S.language!=="markdown"&&S.language!=="md")return;function C(R){if(!(!R||typeof R=="string"))for(let O=0,I=R.length;O",quot:'"'},fromCodePoint=String.fromCodePoint||String.fromCharCode;function textContent(S){let C=S.replace(tagPattern,"");return C=C.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(R,O){if(O=O.toLowerCase(),O[0]==="#"){let I;return O[1]==="x"?I=parseInt(O.slice(2),16):I=Number(O.slice(1)),fromCodePoint(I)}else{const I=KNOWN_ENTITY_NAMES[O];return I||R}}),C}Prism.languages.md=Prism.languages.markdown,Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python,Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),Prism.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),Prism.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),Prism.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),Prism.languages.scss.atrule.inside.rest=Prism.languages.scss,Prism.languages.sass=Prism.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),Prism.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete Prism.languages.sass.atrule;const variable=/\$[-\w]+|#\{\$[-\w]+\}/,operator=[/[+*/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];Prism.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable,operator}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable,operator,important:Prism.languages.sass.important}}}),delete Prism.languages.sass.property,delete Prism.languages.sass.important,Prism.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}}),Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/};const unit$1={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},number$3={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},inside={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:unit$1,number:number$3,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:unit$1,boolean:/\b(?:false|true)\b/,operator:[/~|[+!/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:number$3,punctuation:/[{}()[\];:,]/};inside.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:inside}},inside.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:inside}},Prism.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:inside}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:inside}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:inside}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:inside.interpolation}},rest:inside}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:inside.interpolation,comment:inside.comment,punctuation:/[{},]/}},func:inside.func,string:inside.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:inside.interpolation,punctuation:/[{}()[\];:.]/},Prism.languages.typescript=Prism.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),Prism.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[{*]|$))/),delete Prism.languages.typescript.parameter,delete Prism.languages.typescript["literal-property"];const typeInside=Prism.languages.extend("typescript",{});delete typeInside["class-name"],Prism.languages.typescript["class-name"].inside=typeInside,Prism.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:typeInside}}}}),Prism.languages.ts=Prism.languages.typescript;const typescript=Prism.util.clone(Prism.languages.typescript);Prism.languages.tsx=Prism.languages.extend("jsx",typescript),delete Prism.languages.tsx.parameter,delete Prism.languages.tsx["literal-property"];const tag$1=Prism.languages.tsx.tag;tag$1.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+tag$1.pattern.source+")",tag$1.pattern.flags),tag$1.lookbehind=!0,Prism.languages["visual-basic"]={comment:{pattern:/(?:['‘’]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\b_[ \t]*(?:\r\n?|\n)|.)+/i,alias:"property",greedy:!0},string:{pattern:/\$?["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,greedy:!0},date:{pattern:/#[ \t]*(?:\d+([/-])\d+\1\d+(?:[ \t]+(?:\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?))?|\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?)[ \t]*#/i,alias:"number"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:[FRD]|U?[ILS])?/i,boolean:/\b(?:False|Nothing|True)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:/[+\-*/\\^<=>&#@$%!]|\b_(?=[ \t]*[\r\n])/,punctuation:/[{}().,:?]/},Prism.languages.vb=Prism.languages["visual-basic"],Prism.languages.vba=Prism.languages["visual-basic"],Prism.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const anchorOrAlias=/[*&][^\s[\]{},]+/,tag=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,properties="(?:"+tag.source+"(?:[ ]+"+anchorOrAlias.source+")?|"+anchorOrAlias.source+"(?:[ ]+"+tag.source+")?)",plainKey=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,()=>/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source),string$2=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function createValuePattern(S,C){const R=(C||"").replace(/m/g,"")+"m",O=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return properties}).replace(/<>/g,function(){return S});return RegExp(O,R)}Prism.languages.yaml={scalar:{pattern:RegExp(/([-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return properties})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return properties}).replace(/<>/g,function(){return"(?:"+plainKey+"|"+string$2+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:createValuePattern(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:createValuePattern(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:createValuePattern(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:createValuePattern(string$2),lookbehind:!0,greedy:!0},number:{pattern:createValuePattern(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag,important:anchorOrAlias,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},Prism.languages.yml=Prism.languages.yaml;const vscDarkTheme={plain:{color:"#d4d4d4",backgroundColor:"#1e1e1e"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment","punctuation"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin"],style:{color:"rgb(79, 193, 255)"}},{types:["number","variable","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["operator"],style:{color:"rgb(212, 212, 212)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["tag","changed","function","keyword"],style:{color:"rgb(86, 156, 214)"}},{types:["attr-name"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value"],style:{color:"rgb(206, 145, 120)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}}]},vscLightTheme={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},vars={border:`1px solid var(${TokenNames.colorBorderCodeLineno}, hsla(0deg, 0%, 80%, 0.8))`,highlightBackground:`var(${TokenNames.colorBgCodeHighlight}, hsla(30deg, 90%, 50%, 0.3))`,fontSizeCode:`var(${CommonTokenNames.fontSizeCode}, 14px)`,lineHeightCode:`var(${CommonTokenNames.lineHeightCode}, 1.6)`},classes$2={container:css({MozOsxFontSmoothing:"grayscale",WebkitFontSmoothing:"antialiased",display:"flex",alignItems:"stretch",overflow:"hidden",width:"100%",fontSize:vars.fontSizeCode,lineHeight:vars.lineHeightCode,padding:0,transition:"max-height 0.5s ease-in-out",tabSize:2,fontSmooth:"always",whiteSpace:"pre",wordBreak:"keep-all",wordSpacing:"normal",wordWrap:"normal"}),line:css({boxSizing:"border-box",display:"flex",minWidth:"fit-content",width:"100%",padding:"0 6px",letterSpacing:"inherit",fontSize:vars.fontSizeCode,lineHeight:vars.lineHeightCode,height:vars.lineHeightCode,overflowWrap:"inherit",tabSize:"inherit",textIndent:"inherit",textRendering:"inherit",textTransform:"inherit",whiteSpace:"inherit",wordBreak:"inherit",wordSpacing:"inherit",wordWrap:"inherit"}),linenoLine:css({justifyContent:"flex-end",padding:"0 4px"}),highlightLine:css({background:vars.highlightBackground,borderColor:"transparent"}),lineno:css({flex:"0 0 auto",overflow:"hidden",boxSizing:"border-box",padding:"0.5rem 0",cursor:"default",fontSize:vars.fontSizeCode,lineHeight:vars.lineHeightCode,userSelect:"none",textAlign:"right",borderRight:vars.border}),codes:css({flex:"1 1 auto",overflow:"overlay",boxSizing:"border-box",padding:"0.5rem 0",fontSize:vars.fontSizeCode,lineHeight:vars.lineHeightCode}),codeWrapper:css({minWidth:"100%",width:"fit-content"}),codeLine:css({boxSizing:"border-box",padding:"0 12px"})},languageMap={js:"javascript",ts:"typescript"},themeToDict=(S,C)=>{S=languageMap[S]??S;const{plain:R}=C,O=Object.create(null),I=C.styles.reduce((N,L)=>{const{types:B,style:j,languages:F}=L;if(F&&!F.includes(S))return N;for(const V of B){const K={...N[V],...j};N[V]=K}return N},O);return I.root=R,I.plain={...R,backgroundColor:void 0},I},newlineRegex=/\r\n|\r|\n/,normalizeEmptyLines=S=>{S.length===0?S.push({types:["plain"],content:` -`,empty:!0}):S.length===1&&S[0].content===""&&(S[0].content=` -`,S[0].empty=!0)},appendTypes=(S,C)=>{const R=S.length;return R>0&&S[R-1]===C?S:S.concat(C)},normalizeTokens=S=>{const C=[[]],R=[S],O=[0],I=[S.length];let N=[];const L=[N];for(let B=0;B>-1;--B){for(let j=0;(j=O[B]++)0?V:["plain"],F=W):(V=appendTypes(V,W.type),W.alias&&(V=appendTypes(V,W.alias)),F=W.content),typeof F!="string"){B+=1,C.push(V),R.push(F),O.push(0),I.push(F.length);continue}const X=F.split(newlineRegex),J=X.length;N.push({types:V,content:X[0]});for(let oe=1;oe{var N,L;const O=R.target;if(O==null)return;const{scrollTop:I}=O;(L=(N=this.linenoRef.current)==null?void 0:N.scrollTo)==null||L.call(N,0,I)});const O=themeToDict(R.language,R.theme),I=this.tokenize(R.code,R.language),N=R.showLineno?`${Math.max(2,String(I.length).length)*1.1}em`:void 0;this.state={linenoWidth:N,themeDict:O,tokens:I},this.linenoRef={current:null}}shouldComponentUpdate(R,O){const I=this.props,N=this.state;return N.linenoWidth!==O.linenoWidth||N.themeDict!==O.themeDict||N.tokens!==O.tokens||I.code!==R.code||I.codesRef!==R.codesRef||I.collapsed!==R.collapsed||I.language!==R.language||I.maxLines!==R.maxLines||I.showLineno!==R.showLineno||!isEqual$2(I.theme,R.theme)||!isEqual$2(I.highlightLinenos,R.highlightLinenos)}render(){const{linenoRef:R,onScroll:O}=this,{codesRef:I,collapsed:N,highlightLinenos:L,language:B,maxLines:j,showLineno:F=!0}=this.props,{linenoWidth:V,tokens:K}=this.state,W=K.length,X=j>0?Math.min(j,W):W,J={...this.state.themeDict.root,backgroundColor:"none",...N?{maxHeight:0}:{maxHeight:`calc(calc(${vars.lineHeightCode} * ${X+.8}) + 6px)`,minHeight:"100%"}};return React.createElement("div",{className:cx(classes$2.container,B?`prism-code language-${B}`:"prism-code"),style:J},F&&React.createElement("div",{key:"linenos",className:classes$2.lineno,style:{width:V},ref:R},React.createElement(HighlightLinenos,{countOfLines:W,highlightLinenos:L})),React.createElement("div",{key:"codes",ref:I,className:classes$2.codes,onScroll:O},React.createElement("div",{className:classes$2.codeWrapper},K.map((oe,pe)=>{const me=L.includes(pe+1),xe=this.getLineProps({line:oe});return React.createElement("div",{...xe,key:pe,className:cx(classes$2.line,classes$2.codeLine,me&&classes$2.highlightLine,xe.className)},oe.map((Ae,ge)=>React.createElement("span",{...this.getTokenProps({token:Ae}),key:ge})))}))))}componentDidMount(){var R,O;(O=(R=this.props).onLinenoWidthChange)==null||O.call(R,this.state.linenoWidth)}componentDidUpdate(R,O){var B,j;const I=this.props,N=this.state,L=I.language!==R.language||!isEqual$2(I.theme,R.theme)?themeToDict(I.language,I.theme):N.themeDict;if(I.code!==R.code||I.language!==R.language||L!==O.themeDict){const F=this.tokenize(I.code,I.language),V=I.showLineno?`${Math.max(2,String(F.length).length)*1.1}em`:void 0;this.setState({linenoWidth:V,themeDict:L,tokens:F})}N.linenoWidth!==O.linenoWidth&&((j=(B=this.props).onLinenoWidthChange)==null||j.call(B,N.linenoWidth))}tokenize(R,O){const I=O?Prism.languages[O]:void 0;if(I){const N={code:R,grammar:I,language:O,tokens:[]};return Prism.hooks.run("before-tokenize",N),N.tokens=Prism.tokenize(N.code,N.grammar),Prism.hooks.run("after-tokenize",N),normalizeTokens(N.tokens)}else return normalizeTokens([R])}getLineProps(R){const{themeDict:O}=this.state,{key:I,className:N,style:L,line:B,...j}=R,F={...j,className:"token-line",style:void 0,key:void 0};return O!==void 0&&(F.style=O.plain),L!==void 0&&(F.style=F.style!==void 0?{...F.style,...L}:L),I!==void 0&&(F.key=I),N&&(F.className+=` ${N}`),F}getStyleForToken({types:R,empty:O}){const{themeDict:I}=this.state,N=R.length;if(I===void 0)return;if(N===1&&R[0]==="plain")return O?{display:"inline-block"}:void 0;if(N===1&&!O)return I[R[0]];const L=O?{display:"inline-block"}:{};for(const B of R){const j=I[B];Object.assign(L,j)}return L}getTokenProps(R){const{key:O,className:I,style:N,token:L,...B}=R,j={...B,className:`token ${L.types.join(" ")}`,children:L.content,style:this.getStyleForToken(L),key:void 0};return N!==void 0&&(j.style=j.style!==void 0?{...j.style,...N}:N),O!==void 0&&(j.key=O),I&&(j.className+=` ${I}`),j}}Cn(HighlightContent,"displayName","HighlightContent"),Cn(HighlightContent,"propTypes",{code:PropTypes$1.string.isRequired,codesRef:PropTypes$1.any,collapsed:PropTypes$1.bool.isRequired,language:PropTypes$1.string.isRequired,maxLines:PropTypes$1.number.isRequired,showLineno:PropTypes$1.bool.isRequired,theme:PropTypes$1.object.isRequired,highlightLinenos:PropTypes$1.array.isRequired,onLinenoWidthChange:PropTypes$1.func});class CodeHighlighter extends React.PureComponent{render(){const{lang:C,value:R,darken:O=!0,highlightLinenos:I=[],maxLines:N=-1,collapsed:L=!1,showLineNo:B=!0,codesRef:j,onLinenoWidthChange:F}=this.props,V=this.props.theme??(O?vscDarkTheme:vscLightTheme);return React.createElement(HighlightContent,{code:R,codesRef:j,collapsed:L,highlightLinenos:I,language:C??"",maxLines:N,showLineno:B,theme:V,onLinenoWidthChange:F})}}Cn(CodeHighlighter,"displayName","YozoraCodeHighlighter"),Cn(CodeHighlighter,"propTypes",{codesRef:PropTypes$1.any,collapsed:PropTypes$1.bool,darken:PropTypes$1.bool,highlightLinenos:PropTypes$1.arrayOf(PropTypes$1.number),lang:PropTypes$1.string,maxLines:PropTypes$1.number,onLinenoWidthChange:PropTypes$1.func,showLineNo:PropTypes$1.bool,theme:PropTypes$1.any,value:PropTypes$1.string.isRequired});const CopyButton$1=S=>{const{className:C,delay:R=1500,calcContentForCopy:O}=S,[I,N]=React.useState(0),L=useStyles$d(),B=I!==0,j=()=>{if(I===0){N(1);try{const F=O();copy$4(F),N(2)}catch{N(3)}}};return React.useEffect(()=>{if(I===2||I===3){const F=setTimeout(()=>N(0),R);return()=>{F&&clearTimeout(F)}}},[I,R]),jsxRuntimeExports.jsx(Button$2,{appearance:"transparent",className:mergeClasses(L.copyButton,C),disabled:B,as:"button",icon:I===0?jsxRuntimeExports.jsx(Copy20Regular,{}):jsxRuntimeExports.jsx(CopyArrowRight20Regular,{}),onClick:j})},useStyles$d=makeStyles({copyButton:{cursor:"pointer"}});class CodeRendererInner extends React.PureComponent{constructor(){super(...arguments),this.calcContentForCopy=()=>this.props.value}render(){const{calcContentForCopy:C}=this,{darken:R,lang:O,value:I,preferCodeWrap:N,showCodeLineno:L}=this.props;return jsxRuntimeExports.jsxs("code",{className:codeCls,"data-wrap":N,children:[jsxRuntimeExports.jsx(CodeHighlighter,{lang:O,value:I,collapsed:!1,showLineNo:L&&!N,darken:R}),jsxRuntimeExports.jsx("div",{className:copyBtnCls,children:jsxRuntimeExports.jsx(CopyButton$1,{calcContentForCopy:C})})]})}}const copyBtnCls=mergeStyles$1({position:"absolute",right:"4px",top:"4px",display:"none"}),codeCls=mergeStyles$1(astClasses.code,{position:"relative",display:"block",boxSizing:"border-box",borderRadius:"4px",margin:"0px 0px 1.25em 0px",backgroundColor:"var(--colorBgCode)",[`&:hover > .${copyBtnCls}`]:{display:"inline-block"},'&&[data-wrap="true"] > div':{whiteSpace:"pre-wrap",wordBreak:"keep-all"}}),CodeRenderer=S=>{const{lang:C}=S,R=S.value.replace(/[\r\n]+$/,""),{viewmodel:O}=useNodeRendererContext(),I=useStateValue(O.preferCodeWrap$),N=useStateValue(O.showCodeLineno$),B=useStateValue(O.themeScheme$)==="darken";return jsxRuntimeExports.jsx(CodeRendererInner,{darken:B,lang:C??"text",value:R,preferCodeWrap:I,showCodeLineno:N})};class DeleteRenderer extends React.Component{shouldComponentUpdate(C){return this.props.children!==C.children}render(){const C=this.props.children;return jsxRuntimeExports.jsx("del",{className:cls$9,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:C})})}}const cls$9=mergeStyles$1(astClasses.delete,{marginRight:"4px",color:"var(--colorDelete)",fontStyle:"italic",textDecoration:"line-through"});class EmphasisRenderer extends React.Component{shouldComponentUpdate(C){return this.props.children!==C.children}render(){const C=this.props.children;return jsxRuntimeExports.jsx("em",{className:cls$8,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:C})})}}const cls$8=mergeStyles$1(astClasses.emphasis,{fontStyle:"italic",margin:"0 6px 0 2px"});class HeadingRenderer extends React.Component{shouldComponentUpdate(C){const R=this.props;return R.depth!==C.depth||R.identifier!==C.identifier||R.children!==C.children||R.linkIcon!==C.linkIcon}render(){const{depth:C,identifier:R,children:O,linkIcon:I="¶"}=this.props,N=R==null?void 0:encodeURIComponent(R),L="h"+C,B=L,j=mergeStyles$1(astClasses.heading,classes$1.heading,classes$1[L]);return jsxRuntimeExports.jsxs(B,{id:N,className:j,children:[jsxRuntimeExports.jsx("p",{className:classes$1.content,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:O})}),R&&jsxRuntimeExports.jsx("a",{className:classes$1.anchor,href:"#"+N,children:I})]})}}const anchorCls=mergeStyles$1({flex:"0 0 3rem",paddingLeft:"0.5rem",color:"var(--colorLink)",opacity:0,transition:"color 0.2s ease-in-out, opacity 0.2s ease-in-out",userSelect:"none",textDecoration:"none","> svg":{overflow:"hidden",display:"inline-block",verticalAlign:"middle",fill:"currentColor"}}),classes$1=mergeStyleSets({heading:{display:"flex",alignItems:"center",justifyContent:"flex-start",padding:"0px",margin:"0px 0px 1.25em 0px",marginBottom:"1em",lineHeight:"1.25",fontFamily:"var(--fontFamilyHeading)",color:"var(--colorHeading)",[`&:active .${anchorCls}`]:{opacity:.8,color:"var(--colorLinkActive)"},[`&&:hover .${anchorCls}`]:{opacity:.8,color:"var(--colorLinkHover)"}},anchor:anchorCls,content:{flex:"0 1 auto",minWidth:0,margin:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"pre-wrap",lineHeight:"1.7"},h1:{padding:"0.3rem 0",borderBottom:"1px solid var(--colorBorderHeading)",fontSize:"2rem",fontStyle:"normal",fontWeight:500},h2:{padding:"0.3rem 0",borderBottom:"1px solid var(--colorBorderHeading)",fontSize:"1.5rem",fontStyle:"normal",fontWeight:500,marginBottom:"0.875rem"},h3:{fontSize:"1.25rem",fontStyle:"normal",fontWeight:500},h4:{fontSize:"1rem",fontStyle:"normal",fontWeight:500},h5:{fontSize:"0.875rem",fontStyle:"normal",fontWeight:500},h6:{fontSize:"0.85rem",fontStyle:"normal",fontWeight:500}});class ImageRendererInner extends React.Component{shouldComponentUpdate(C){const R=this.props;return R.src!==C.src||R.alt!==C.alt||R.title!==C.title||R.srcSet!==C.srcSet||R.sizes!==C.sizes||R.loading!==C.loading||R.className!==C.className}render(){const{src:C,alt:R,title:O,srcSet:I,sizes:N,loading:L,className:B}=this.props;return jsxRuntimeExports.jsxs("figure",{className:`${B} ${cls$7}`,children:[jsxRuntimeExports.jsx("img",{alt:R,src:C,title:O,srcSet:I,sizes:N,loading:L}),O&&jsxRuntimeExports.jsx("figcaption",{children:O})]})}}const cls$7=mergeStyles$1({boxSizing:"border-box",maxWidth:"80%",display:"flex",flexDirection:"column",alignItems:"center",margin:0,"> img":{flex:"1 0 auto",boxSizing:"border-box",maxWidth:"100%",border:"1px solid var(--colorBorderImage)",boxShadow:"0 0 20px 1px rgba(126, 125, 150, 0.6)"},"> figcaption":{textAlign:"center",fontStyle:"italic",fontSize:"1em",color:"var(--colorImageTitle)"}}),ImageRenderer=S=>{const{url:C,alt:R,title:O,srcSet:I,sizes:N,loading:L}=S;return jsxRuntimeExports.jsx(ImageRendererInner,{alt:R,src:C,title:O,srcSet:I,sizes:N,loading:L,className:astClasses.image})},ImageReferenceRenderer=S=>{const{viewmodel:C}=useNodeRendererContext(),R=useStateValue(C.definitionMap$),{alt:O,srcSet:I,sizes:N,loading:L}=S,B=R[S.identifier],j=(B==null?void 0:B.url)??"",F=B==null?void 0:B.title;return jsxRuntimeExports.jsx(ImageRendererInner,{alt:O,src:j,title:F,srcSet:I,sizes:N,loading:L,className:astClasses.imageReference})};class InlineCodeRenderer extends React.Component{shouldComponentUpdate(C){return this.props.value!==C.value}render(){return jsxRuntimeExports.jsx("code",{className:cls$6,children:this.props.value})}}const cls$6=mergeStyles$1(astClasses.inlineCode,{padding:"1px 4px",borderRadius:"4px",margin:0,background:"hsla(210deg, 15%, 60%, 0.15)",lineHeight:"1.375",color:"var(--colorInlineCode)",fontFamily:"var(--fontFamilyCode)",fontSize:"min(1rem, 18px)",fontWeight:500});class LinkRendererInner extends React.Component{shouldComponentUpdate(C){const R=this.props;return R.url!==C.url||R.title!==C.title||R.childNodes!==C.childNodes||R.className!==C.className}render(){const{url:C,title:R,childNodes:O,className:I}=this.props;return jsxRuntimeExports.jsx("a",{className:mergeStyles$1(cls$5,I),href:C,title:R,rel:"noopener, noreferrer",target:"_blank",children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:O})})}}const cls$5=mergeStyles$1({padding:"0.2rem 0",color:"var(--colorLink)",textDecoration:"none",background:"linear-gradient(90deg, hsla(358deg, 100%, 62%, 0.8), hsla(048deg, 100%, 50%, 0.8), hsla(196deg, 100%, 53%, 0.8))",backgroundSize:"0 3px",backgroundRepeat:"no-repeat",backgroundPosition:"50% 100%",transition:"all 0.3s ease-in-out","&:active":{color:"var(--colorLinkActive)"},"&&:hover":{color:"var(--colorLinkHover)",backgroundSize:"100% 3px",backgroundPositionX:0},"&:visited":{color:"var(--colorLinkVisited)"}}),LinkRenderer=S=>{const{url:C,title:R,children:O}=S;return jsxRuntimeExports.jsx(LinkRendererInner,{url:C,title:R,childNodes:O,className:astClasses.link})},LinkReferenceRenderer=S=>{const{viewmodel:C}=useNodeRendererContext(),O=useStateValue(C.definitionMap$)[S.identifier],I=(O==null?void 0:O.url)??"",N=O==null?void 0:O.title;return jsxRuntimeExports.jsx(LinkRendererInner,{url:I,title:N,childNodes:S.children,className:astClasses.linkReference})};class ListRenderer extends React.Component{shouldComponentUpdate(C){const R=this.props;return R.ordered!==C.ordered||R.orderType!==C.orderType||R.start!==C.start||R.children!==C.children}render(){const{ordered:C,orderType:R,start:O,children:I}=this.props;return C?jsxRuntimeExports.jsx("ol",{className:cls$4,type:R,start:O,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:I})}):jsxRuntimeExports.jsx("ul",{className:cls$4,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:I})})}}const cls$4=mergeStyles$1(astClasses.list,{padding:"0px",margin:"0 0 1em 2em",lineHeight:"2","> :last-child":{marginBottom:"0px"}});class ListItemRenderer extends React.Component{shouldComponentUpdate(C){return this.props.children!==C.children}render(){const C=this.props.children;return jsxRuntimeExports.jsx("li",{className:cls$3,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:C})})}}const cls$3=mergeStyles$1(astClasses.listItem,{position:"relative",padding:0,margin:0,"> :last-child":{marginBottom:0}});class ParagraphRenderer extends React.Component{shouldComponentUpdate(C){return this.props.children!==C.children}render(){const C=this.props.children;return C.some(O=>O.type===ImageType$1||O.type===ImageReferenceType)?jsxRuntimeExports.jsx("div",{className:paragraphDisplayCls,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:C})}):jsxRuntimeExports.jsx("p",{className:paragraphCls,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:C})})}}const paragraphCls=mergeStyles$1(astClasses.paragraph,{overflow:"hidden",padding:0,margin:"0px 0px 1.25em 0px",marginBottom:"1em",lineHeight:"1.8",hyphens:"auto",wordBreak:"normal",letterSpacing:"1px",overflowWrap:"break-word","> :last-child":{marginBottom:0}}),paragraphDisplayCls=mergeStyles$1(paragraphCls,{display:"flex",alignItems:"center",justifyContent:"center",padding:"1rem 0",margin:0});class StrongRenderer extends React.Component{shouldComponentUpdate(C){return this.props.children!==C.children}render(){const C=this.props.children;return jsxRuntimeExports.jsx("strong",{className:cls$2,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:C})})}}const cls$2=mergeStyles$1(astClasses.strong,{fontWeight:600});class TableRenderer extends React.Component{shouldComponentUpdate(C){const R=this.props;return!isEqual$2(R.columns,C.columns)||!isEqual$2(R.children,C.children)}render(){const{columns:C,children:R}=this.props,O=C.map(L=>L.align??void 0),[I,...N]=R.map(L=>L.children.map((B,j)=>jsxRuntimeExports.jsx(NodesRenderer,{nodes:B.children},j)));return jsxRuntimeExports.jsxs("table",{className:cls$1,children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsx("tr",{children:I.map((L,B)=>jsxRuntimeExports.jsx(Th,{align:O[B],children:L},B))})}),jsxRuntimeExports.jsx("tbody",{children:N.map((L,B)=>jsxRuntimeExports.jsx("tr",{children:L.map((j,F)=>jsxRuntimeExports.jsx("td",{align:O[F],children:j},F))},B))})]})}}class Th extends React.Component{constructor(C){super(C),this.ref={current:null}}shouldComponentUpdate(C){const R=this.props;return R.align!==C.align||R.children!==C.children}render(){const{align:C,children:R}=this.props;return jsxRuntimeExports.jsx("th",{ref:this.ref,align:C,children:R})}componentDidMount(){const C=this.ref.current;C&&C.setAttribute("title",C.innerText)}componentDidUpdate(){const C=this.ref.current;C&&C.setAttribute("title",C.innerText)}}const cls$1=mergeStyles$1(astClasses.table,{display:"block",overflow:"auto",width:"max-content",maxWidth:"100%",padding:0,borderCollapse:"collapse",borderRadius:"6px",borderSpacing:"0px",border:"1px solid var(--colorBorderTable)",margin:"0 auto 1.25em",lineHeight:"1.6","> thead":{backgroundColor:"var(--colorBgTableHead)",borderBottom:"1px solid #f0f0f0",th:{padding:"0.5rem 1rem",borderLeft:"1px solid var(--colorBorderTable)",wordBreak:"normal",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis","&:first-child":{borderLeft:"none"}}},"> tbody":{tr:{borderTop:"1px solid var(--colorBorderTable)",backgroundColor:"var(--colorBgTableOddRow)"},"tr:nth-child(2n)":{backgroundColor:"var(--colorBgTableEvenRow)"},td:{padding:"0.5rem 1rem",borderLeft:"1px solid var(--colorBorderTable)","&:first-child":{borderLeft:"none"}}}});class TextRenderer extends React.Component{shouldComponentUpdate(C){return this.props.value!==C.value}render(){return jsxRuntimeExports.jsx(React.Fragment,{children:this.props.value})}}class ThematicBreakRenderer extends React.Component{shouldComponentUpdate(){return!1}render(){return jsxRuntimeExports.jsx("hr",{className:cls})}}const cls=mergeStyles$1(astClasses.thematicBreak,{boxSizing:"content-box",display:"block",height:0,width:"100%",padding:0,border:0,borderBottom:"1px solid #dadada",outline:0,margin:"1.5em 0px"});function buildNodeRendererMap(S){if(S==null)return defaultNodeRendererMap;let C=!1;const R={};for(const[O,I]of Object.entries(S))I&&I!==defaultNodeRendererMap[O]&&(C=!0,R[O]=I);return C?{...defaultNodeRendererMap,...R}:defaultNodeRendererMap}const defaultNodeRendererMap={[BlockquoteType]:BlockquoteRenderer,[BreakType]:BreakRenderer,[CodeType]:CodeRenderer,[DefinitionType]:()=>null,[DeleteType]:DeleteRenderer,[EmphasisType]:EmphasisRenderer,[HeadingType]:HeadingRenderer,[HtmlType]:()=>null,[ImageType$1]:ImageRenderer,[ImageReferenceType]:ImageReferenceRenderer,[InlineCodeType]:InlineCodeRenderer,[LinkType]:LinkRenderer,[LinkReferenceType]:LinkReferenceRenderer,[ListType]:ListRenderer,[ListItemType]:ListItemRenderer,[ParagraphType$1]:ParagraphRenderer,[StrongType]:StrongRenderer,[TableType]:TableRenderer,[TextType$1]:TextRenderer,[ThematicBreakType]:ThematicBreakRenderer,_fallback:function S(C,R){return console.warn(`Cannot find render for \`${C.type}\` type node with key \`${R}\`:`,C),null}},ReactMarkdown=S=>{const{presetDefinitionMap:C,customizedRendererMap:R,preferCodeWrap:O=!1,showCodeLineno:I=!0,text:N,themeScheme:L="lighten",className:B,style:j}=S,F=React.useMemo(()=>parser.parse(N),[N]),V=React.useMemo(()=>calcDefinitionMap(F).definitionMap,[F]),[K]=React.useState(()=>new ReactMarkdownViewModel({definitionMap:{...C,...V},rendererMap:buildNodeRendererMap(R),preferCodeWrap:O,showCodeLineno:I,themeScheme:L})),W=React.useMemo(()=>({viewmodel:K}),[K]),X=mergeClasses(rootCls,L==="darken"&&astClasses.rootDarken,B);return React.useEffect(()=>{K.preferCodeWrap$.next(O)},[K,O]),React.useEffect(()=>{K.showCodeLineno$.next(I)},[K,I]),React.useEffect(()=>{K.themeScheme$.next(L)},[K,L]),jsxRuntimeExports.jsx("div",{className:X,style:j,children:jsxRuntimeExports.jsx(NodeRendererContextType.Provider,{value:W,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:F.children})})})},rootCls=mergeStyles$1(astClasses.root,{wordBreak:"break-all",userSelect:"unset",[astClasses.listItem]:{[`> ${astClasses.list}`]:{marginLeft:"1.2em"}},"> :last-child":{marginBottom:0}}),MarkdownViewer=({content:S})=>{const C=useClasses$k(),[R,O]=reactExports.useState("preview"),I=reactExports.useCallback(L=>{O(L)},[]),N=useLocStrings();return S?jsxRuntimeExports.jsxs("div",{className:C.content,children:[jsxRuntimeExports.jsx("div",{className:C.groupWrapper,children:jsxRuntimeExports.jsxs("div",{className:C.buttonGroup,children:[jsxRuntimeExports.jsx(Button$2,{value:"preview",size:"small",appearance:R==="preview"?void 0:"transparent",onClick:()=>I("preview"),children:N.Preview}),jsxRuntimeExports.jsx(Button$2,{value:"raw",size:"small",appearance:R==="raw"?void 0:"transparent",onClick:()=>I("raw"),children:N.Raw})]})}),R==="preview"?jsxRuntimeExports.jsx(ReactMarkdown,{text:`${S}`}):null,R==="raw"?jsxRuntimeExports.jsx("div",{style:{marginTop:6},children:`${S}`}):null]}):jsxRuntimeExports.jsx(MessageBar,{intent:"info",children:N["No content"]})},useClasses$k=makeStyles({content:{wordBreak:"break-all",whiteSpace:"break-spaces",...shorthands.overflow("auto")},groupWrapper:{display:"flex",flexDirection:"row-reverse",marginBottom:"12px"},buttonGroup:{display:"inline-flex",...shorthands.borderRadius("5px"),backgroundColor:tokens.colorNeutralBackground5}}),EmbeddingNodeInfo=()=>{var I,N;const S=useSelectedSpan(),C=(I=S==null?void 0:S.attributes)==null?void 0:I["embedding.model"],R=JSON.parse(((N=S==null?void 0:S.attributes)==null?void 0:N["embedding.embeddings"])??"[]")??[],O=useLocStrings();return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("span",{children:C})}),R.map((L,B)=>jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("i",{children:O.Embedded_text})}),L["embedding.text"]?jsxRuntimeExports.jsx(MarkdownViewer,{content:L["embedding.text"]}):null]},B))]})},CollapsibleTextArea=({children:S})=>{const[C,R]=reactExports.useState(!0),O=useClasses$j();return jsxRuntimeExports.jsxs("div",{className:O.wrapper,children:[jsxRuntimeExports.jsx(Button$2,{icon:C?jsxRuntimeExports.jsx(TextWrapOff16Regular,{}):jsxRuntimeExports.jsx(TextWrap16Regular,{}),onClick:()=>R(!C),size:"small"}),jsxRuntimeExports.jsx("pre",{className:`${C&&O.wrap} ${O.pre}`,children:S})]})},useClasses$j=makeStyles({wrapper:{width:"95%",height:"100%",paddingLeft:tokens.spacingHorizontalM,color:tokens.colorNeutralForeground1,display:"flex",flexDirection:"column"},wrap:{wordBreak:"break-all",whiteSpace:"pre-wrap"},pre:{marginTop:0}}),ErrorsTab=()=>{var j;const S=useClasses$i(),C=useSelectedSpan(),R=(C==null?void 0:C.events)??[],[O,I]=reactExports.useState((j=R[0])==null?void 0:j.name),N=R.find(F=>F.name===O),L=useIsDark(),B=useLocStrings();return jsxRuntimeExports.jsx(Card,{style:{height:"100%"},children:R.length===0?jsxRuntimeExports.jsxs("div",{className:S.emptyWrapper,children:[jsxRuntimeExports.jsx(ShieldCheckmark24Regular,{}),jsxRuntimeExports.jsxs(Text$2,{className:S.emptyText,children:[" ",B.No_Events_found]})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx(TabList,{selectedValue:O,onTabSelect:(F,V)=>{I(V.value)},children:R.map(F=>jsxRuntimeExports.jsx(Tab$1,{value:F.name,children:F.name},F.name))})}),jsxRuntimeExports.jsx("div",{className:S.wrapper,children:N&&jsxRuntimeExports.jsx(JsonView,{src:N,collapseStringsAfterLength:1e4,theme:"vscode",dark:L,customizeNode:({node:F,indexOrName:V})=>{if(V==="exception.message"||V==="exception.stacktrace")return jsxRuntimeExports.jsx(CollapsibleTextArea,{children:F})}})})]})})},useClasses$i=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%",...shorthands.overflow("auto"),...shorthands.gap("8px")},grid:{flexGrow:1},emptyWrapper:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"},emptyText:{paddingTop:tokens.spacingVerticalM},exceptionText:{width:"100%",paddingLeft:tokens.spacingHorizontalM,color:tokens.colorNeutralForeground1,...shorthands.margin("0")}}),useEvaluationTracesListRow=S=>{const[C,R]=reactExports.useState([]),O=reactExports.useMemo(()=>{const B={};return S.forEach(j=>{var F;(F=j==null?void 0:j.context)!=null&&F.span_id&&(B[j.context.span_id]={...j,children:[],depth:0})}),S.forEach(j=>{var F;if(j.parent_id&&((F=j==null?void 0:j.context)!=null&&F.span_id)&&j.parent_id!==""){const V=B[j.parent_id],K=B[j.context.span_id];K.depth=V.depth+1,V.children.push(K)}}),Object.values(B).filter(j=>!j.parent_id)},[S]),I=reactExports.useCallback(B=>{if(C.includes(B)){const F=findRowById(B,O);if(!F)return;const K=(F.children?findAllDescendants(F):[]).map(X=>{var J;return(J=X==null?void 0:X.context)==null?void 0:J.span_id}).filter(X=>X!==void 0),W=C.filter(X=>X!==B).filter(X=>!K.includes(X));R(W)}else R([...C,B])},[C,O]),N=reactExports.useMemo(()=>{const B=j=>j.reduce((F,V)=>{var X,J;const W=((X=V==null?void 0:V.context)!=null&&X.span_id?C.includes((J=V==null?void 0:V.context)==null?void 0:J.span_id):!1)?B(V.children):[];return[...F,V,...W]},[]);return B(O)},[C,O]),L=reactExports.useCallback(B=>B?C.includes(B):!1,[C]);return{rows:N,toggleSubRows:I,isRowExpanded:L}},findAllDescendants=S=>{let C=[...S.children];return S.children.forEach(R=>{C=[...C,...findAllDescendants(R)]}),C},findRowById=(S,C)=>{var R;for(const O of C){if(((R=O==null?void 0:O.context)==null?void 0:R.span_id)===S)return O;const I=findRowById(S,O.children);if(I)return I}return null},CellExpander=({isExpanded:S=!1,onToggle:C})=>{const R=useClasses$h();return jsxRuntimeExports.jsx("div",{className:R.wrapper,onClick:()=>C&&C(!S),children:S?jsxRuntimeExports.jsx(ChevronDown16Filled,{}):jsxRuntimeExports.jsx(ChevronRight16Filled,{})})},useClasses$h=makeStyles({wrapper:{cursor:"pointer",display:"flex"}}),UNDEFINED_VALUE_PLACEHOLDER="N/A";function KindText({kind:S}){return jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",size:"medium",children:S||UNDEFINED_VALUE_PLACEHOLDER})}function formatDecimal(S){return Math.abs(S=Math.round(S))>=1e21?S.toLocaleString("en").replace(/,/g,""):S.toString(10)}function formatDecimalParts(S,C){if((R=(S=C?S.toExponential(C-1):S.toExponential()).indexOf("e"))<0)return null;var R,O=S.slice(0,R);return[O.length>1?O[0]+O.slice(2):O,+S.slice(R+1)]}function exponent(S){return S=formatDecimalParts(Math.abs(S)),S?S[1]:NaN}function formatGroup(S,C){return function(R,O){for(var I=R.length,N=[],L=0,B=S[0],j=0;I>0&&B>0&&(j+B+1>O&&(B=Math.max(1,O-j)),N.push(R.substring(I-=B,I+B)),!((j+=B+1)>O));)B=S[L=(L+1)%S.length];return N.reverse().join(C)}}function formatNumerals(S){return function(C){return C.replace(/[0-9]/g,function(R){return S[+R]})}}var re=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function formatSpecifier(S){if(!(C=re.exec(S)))throw new Error("invalid format: "+S);var C;return new FormatSpecifier({fill:C[1],align:C[2],sign:C[3],symbol:C[4],zero:C[5],width:C[6],comma:C[7],precision:C[8]&&C[8].slice(1),trim:C[9],type:C[10]})}formatSpecifier.prototype=FormatSpecifier.prototype;function FormatSpecifier(S){this.fill=S.fill===void 0?" ":S.fill+"",this.align=S.align===void 0?">":S.align+"",this.sign=S.sign===void 0?"-":S.sign+"",this.symbol=S.symbol===void 0?"":S.symbol+"",this.zero=!!S.zero,this.width=S.width===void 0?void 0:+S.width,this.comma=!!S.comma,this.precision=S.precision===void 0?void 0:+S.precision,this.trim=!!S.trim,this.type=S.type===void 0?"":S.type+""}FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function formatTrim(S){e:for(var C=S.length,R=1,O=-1,I;R0&&(O=0);break}return O>0?S.slice(0,O)+S.slice(I+1):S}var prefixExponent;function formatPrefixAuto(S,C){var R=formatDecimalParts(S,C);if(!R)return S+"";var O=R[0],I=R[1],N=I-(prefixExponent=Math.max(-8,Math.min(8,Math.floor(I/3)))*3)+1,L=O.length;return N===L?O:N>L?O+new Array(N-L+1).join("0"):N>0?O.slice(0,N)+"."+O.slice(N):"0."+new Array(1-N).join("0")+formatDecimalParts(S,Math.max(0,C+N-1))[0]}function formatRounded(S,C){var R=formatDecimalParts(S,C);if(!R)return S+"";var O=R[0],I=R[1];return I<0?"0."+new Array(-I).join("0")+O:O.length>I+1?O.slice(0,I+1)+"."+O.slice(I+1):O+new Array(I-O.length+2).join("0")}const formatTypes={"%":(S,C)=>(S*100).toFixed(C),b:S=>Math.round(S).toString(2),c:S=>S+"",d:formatDecimal,e:(S,C)=>S.toExponential(C),f:(S,C)=>S.toFixed(C),g:(S,C)=>S.toPrecision(C),o:S=>Math.round(S).toString(8),p:(S,C)=>formatRounded(S*100,C),r:formatRounded,s:formatPrefixAuto,X:S=>Math.round(S).toString(16).toUpperCase(),x:S=>Math.round(S).toString(16)};function identity$4(S){return S}var map$2=Array.prototype.map,prefixes=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function formatLocale$1(S){var C=S.grouping===void 0||S.thousands===void 0?identity$4:formatGroup(map$2.call(S.grouping,Number),S.thousands+""),R=S.currency===void 0?"":S.currency[0]+"",O=S.currency===void 0?"":S.currency[1]+"",I=S.decimal===void 0?".":S.decimal+"",N=S.numerals===void 0?identity$4:formatNumerals(map$2.call(S.numerals,String)),L=S.percent===void 0?"%":S.percent+"",B=S.minus===void 0?"−":S.minus+"",j=S.nan===void 0?"NaN":S.nan+"";function F(K){K=formatSpecifier(K);var W=K.fill,X=K.align,J=K.sign,oe=K.symbol,pe=K.zero,me=K.width,xe=K.comma,Ae=K.precision,ge=K.trim,Te=K.type;Te==="n"?(xe=!0,Te="g"):formatTypes[Te]||(Ae===void 0&&(Ae=12),ge=!0,Te="g"),(pe||W==="0"&&X==="=")&&(pe=!0,W="0",X="=");var we=oe==="$"?R:oe==="#"&&/[boxX]/.test(Te)?"0"+Te.toLowerCase():"",ke=oe==="$"?O:/[%p]/.test(Te)?L:"",Be=formatTypes[Te],Ie=/[defgprs%]/.test(Te);Ae=Ae===void 0?6:/[gprs]/.test(Te)?Math.max(1,Math.min(21,Ae)):Math.max(0,Math.min(20,Ae));function je(Ke){var Je=we,Xe=ke,ot,tt,Ue;if(Te==="c")Xe=Be(Ke)+Xe,Ke="";else{Ke=+Ke;var et=Ke<0||1/Ke<0;if(Ke=isNaN(Ke)?j:Be(Math.abs(Ke),Ae),ge&&(Ke=formatTrim(Ke)),et&&+Ke==0&&J!=="+"&&(et=!1),Je=(et?J==="("?J:B:J==="-"||J==="("?"":J)+Je,Xe=(Te==="s"?prefixes[8+prefixExponent/3]:"")+Xe+(et&&J==="("?")":""),Ie){for(ot=-1,tt=Ke.length;++otUe||Ue>57){Xe=(Ue===46?I+Ke.slice(ot+1):Ke.slice(ot))+Xe,Ke=Ke.slice(0,ot);break}}}xe&&!pe&&(Ke=C(Ke,1/0));var dt=Je.length+Ke.length+Xe.length,gt=dt>1)+Je+Ke+Xe+gt.slice(dt);break;default:Ke=gt+Je+Ke+Xe;break}return N(Ke)}return je.toString=function(){return K+""},je}function V(K,W){var X=F((K=formatSpecifier(K),K.type="f",K)),J=Math.max(-8,Math.min(8,Math.floor(exponent(W)/3)))*3,oe=Math.pow(10,-J),pe=prefixes[8+J/3];return function(me){return X(oe*me)+pe}}return{format:F,formatPrefix:V}}var locale$1,format$1,formatPrefix;defaultLocale$1({thousands:",",grouping:[3],currency:["$",""]});function defaultLocale$1(S){return locale$1=formatLocale$1(S),format$1=locale$1.format,formatPrefix=locale$1.formatPrefix,locale$1}function precisionFixed(S){return Math.max(0,-exponent(Math.abs(S)))}function precisionPrefix(S,C){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(exponent(C)/3)))*3-exponent(Math.abs(S)))}function precisionRound(S,C){return S=Math.abs(S),C=Math.abs(C)-S,Math.max(0,exponent(C)-exponent(S))+1}function formatInt(S){return Math.abs(S)<1e6?format$1(",")(S):format$1("0.2s")(S)}function formatFloat(S){const C=Math.abs(S);return C===0?"0.00":C<.01?format$1(".2e")(S):C<1e3?format$1("0.2f")(S):format$1("0.2s")(S)}function formatNumber(S){return Number.isInteger(S)?formatInt(S):formatFloat(S)}function createNumberFormatter(S){return C=>typeof C!="number"?"--":S(C)}const intFormatter=createNumberFormatter(formatInt),floatFormatter=createNumberFormatter(formatFloat),numberFormatter=createNumberFormatter(formatNumber),timeFormat$1=S=>S?new Date(S).toLocaleString([],{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"--",LatencyText=({startTimeISOString:S,endTimeISOString:C,textSize:R,tipTextSize:O})=>{const I=useClasses$g(),N=S?new Date(S):void 0,L=C?new Date(C):void 0,B=N&&L?L.getTime()-N.getTime():void 0,j=reactExports.useMemo(()=>B===void 0?"N/A":B===0?"0 ms":B<10?formatFloat(B)+"ms":formatFloat(B/1e3)+"s",[B]);return jsxRuntimeExports.jsx(Tooltip$1,{content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Text$2,{size:O,weight:"bold",block:!0,children:"Start Time"}),jsxRuntimeExports.jsx(Text$2,{size:O,block:!0,children:timeFormat$1(S)}),jsxRuntimeExports.jsx(Text$2,{size:O,weight:"bold",block:!0,children:"End Time"}),jsxRuntimeExports.jsx(Text$2,{size:O,block:!0,children:timeFormat$1(C)})]}),relationship:"label",children:jsxRuntimeExports.jsxs("div",{className:I.wrapper,children:[jsxRuntimeExports.jsx(Clock20Regular,{}),jsxRuntimeExports.jsx(Text$2,{size:R,children:j})]})})},useClasses$g=makeStyles({wrapper:{display:"inline-flex",flexDirection:"row",alignItems:"center","> svg":{marginRight:"5px"}}});function StatusText({statusCode:S,showText:C=!1,textSize:R,tooltipContent:O}){const I=useClasses$f(),[N,L]=reactExports.useMemo(()=>{switch(S==null?void 0:S.toLowerCase()){case"ok":return[jsxRuntimeExports.jsx(CheckmarkCircle20Regular,{},"ok"),tokens.colorPaletteGreenForeground1];case"error":return[jsxRuntimeExports.jsx(DismissCircle20Regular,{},"error"),tokens.colorPaletteRedForeground1];case"unset":return[jsxRuntimeExports.jsx(ErrorCircle20Regular,{},"unset"),tokens.colorPaletteYellowForeground1];default:return[UNDEFINED_VALUE_PLACEHOLDER,tokens.colorPaletteYellowForeground1]}},[S]);return jsxRuntimeExports.jsx(Tooltip$1,{content:O??S??"",relationship:"label",children:jsxRuntimeExports.jsxs("div",{className:I.wrapper,style:{color:L},children:[N,C&&jsxRuntimeExports.jsx(Text$2,{size:R,children:S})]})})}const useClasses$f=makeStyles({wrapper:{display:"inline-flex",flexDirection:"row",alignItems:"center",justifyContent:"center","> svg":{marginRight:"5px"}}});function TimeText({time:S}){const C=timeFormat$1(S);return jsxRuntimeExports.jsx("time",{children:C})}function TokenText({token:S,info:C}){const R=useClasses$e(),O=typeof S=="number"?intFormatter(S):S;return jsxRuntimeExports.jsxs("div",{className:R.wrapper,children:[jsxRuntimeExports.jsx(NumberCircle020Regular,{}),C?jsxRuntimeExports.jsx(Tooltip$1,{content:C,relationship:"description",children:jsxRuntimeExports.jsx("div",{style:{lineHeight:"30px",marginLeft:-24,paddingLeft:24},children:O})}):jsxRuntimeExports.jsx(Text$2,{children:O})]})}const useClasses$e=makeStyles({wrapper:{display:"inline-flex",flexDirection:"row",alignItems:"center","> svg":{marginRight:"5px"}}}),CellWrapper=({children:S})=>{const C=useClasses$d();return jsxRuntimeExports.jsx("div",{className:C.cellWrapper,children:S})},TextCellWrapper=({children:S})=>{const C=useClasses$d();return jsxRuntimeExports.jsx("div",{className:C.textCellWrapper,children:jsxRuntimeExports.jsx("p",{className:C.textCellP,children:S})})},useClasses$d=makeStyles({cellWrapper:{display:"flex",flexDirection:"row",alignItems:"center",height:"100%"},textCellWrapper:{display:"flex",flexDirection:"row",alignItems:"center",height:"100%",width:"100%"},textCellP:{wordWrap:"break-word",maxWidth:"100%",lineHeight:tokens.lineHeightBase200,fontSize:tokens.fontSizeBase300,maxHeight:"100%",whiteSpace:"normal",...shorthands.padding(tokens.spacingVerticalS,tokens.spacingHorizontalXS)}}),isValidJson=S=>{if(typeof S=="string")return!1;try{return JSON.stringify(S),!0}catch{return!1}},TraceListJsonCell=({jsonObject:S,isViewDetailEnabled:C=!1})=>{const R=isValidJson(S);return jsxRuntimeExports.jsx(CellWrapper,{children:R?jsxRuntimeExports.jsx(TraceListObjectCell,{object:S,isViewDetailEnabled:C}):jsxRuntimeExports.jsx(TextCellWrapper,{children:formatText(String(S))})})},TraceListObjectCell=({object:S,isViewDetailEnabled:C})=>{const R=useIsDark();return C?jsxRuntimeExports.jsxs(Dialog,{children:[jsxRuntimeExports.jsx(DialogTrigger,{children:jsxRuntimeExports.jsx("div",{style:{overflow:"hidden",height:"100%",width:"100%",marginTop:"12px",lineHeight:"16px"},children:jsxRuntimeExports.jsx(JsonView,{src:S,enableClipboard:!1,collapsed:1,dark:R,theme:"vscode"})})}),jsxRuntimeExports.jsx(DialogSurface,{children:jsxRuntimeExports.jsx("div",{style:{height:"800px",width:"800ppx",marginTop:"12px",lineHeight:"16px",overflow:"auto"},children:jsxRuntimeExports.jsx(JsonView,{src:S,enableClipboard:!0,collapseStringsAfterLength:200,dark:R,theme:"vscode"})})})]}):jsxRuntimeExports.jsx("div",{style:{overflow:"hidden",height:"100%",width:"100%",marginTop:"12px",lineHeight:"16px"},children:jsxRuntimeExports.jsx(JsonView,{src:S,enableClipboard:!1,collapseStringsAfterLength:50,collapsed:1,dark:R,theme:"vscode"})})},MAX_LENGTH=80;function formatText(S){return S.length>MAX_LENGTH?`${S.slice(0,MAX_LENGTH)}...`:S}const useClasses$c=makeStyles({grid:{},row:{cursor:"pointer"},nameCell:{color:tokens.colorBrandForeground1,fontWeight:tokens.fontWeightSemibold,":hover":{...shorthands.textDecoration("underline")}},kindCell:{display:"flex",alignItems:"center",justifyContent:"flex-start",height:"100%",...shorthands.gap("4px")}}),EvaluationTracesList=({evaluationSpans:S,className:C})=>{const R=useClasses$c(),O=useIsDark(),{rows:I,toggleSubRows:N,isRowExpanded:L}=useEvaluationTracesListRow(S),B=useLocStrings();return jsxRuntimeExports.jsx(DataGrid$1$1,{className:`${mergeStyles$1(R.grid,C)} ${O?"rdg-dark":"rdg-light"}`,rowClass:()=>R.row,columns:[{key:"kind",name:B.Kind,minWidth:150,maxWidth:300,renderCell:({row:j})=>{var V,K,W;const F=((V=j==null?void 0:j.children)==null?void 0:V.length)>0;return jsxRuntimeExports.jsxs("div",{className:R.kindCell,style:{paddingLeft:j.depth*16+(F?0:20)},children:[F&&jsxRuntimeExports.jsx(CellExpander,{isExpanded:L((K=j==null?void 0:j.context)==null?void 0:K.span_id),onToggle:()=>{var X,J;(X=j==null?void 0:j.context)!=null&&X.span_id&&N((J=j==null?void 0:j.context)==null?void 0:J.span_id)}}),jsxRuntimeExports.jsx(KindText,{kind:(W=j.attributes)==null?void 0:W.span_type})]})}},{key:"name",name:B.Name,minWidth:150,maxWidth:300,renderCell:({row:j})=>jsxRuntimeExports.jsx(Tooltip$1,{content:j.name??"",relationship:"label",children:jsxRuntimeExports.jsx("span",{className:R.nameCell,title:j.name,children:j.name})})},{key:"input",name:B.Input,minWidth:200,renderCell:({row:j})=>{var F;return jsxRuntimeExports.jsx(TraceListJsonCell,{isViewDetailEnabled:!0,jsonObject:JSON.parse(((F=j.attributes)==null?void 0:F.inputs)??"{}")})}},{key:"output",name:B.Output,minWidth:200,renderCell:({row:j})=>{var F;return jsxRuntimeExports.jsx(TraceListJsonCell,{isViewDetailEnabled:!0,jsonObject:JSON.parse(((F=j.attributes)==null?void 0:F.output)??"{}")})}},{key:"start_time",name:B.Start_time,minWidth:150,renderCell:({row:j})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:j.start_time})})},{key:"end_time",name:B.End_time,minWidth:150,renderCell:({row:j})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:j.end_time})})},{key:"latency",name:B.Latency,minWidth:120,renderCell:({row:j})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:j.start_time,endTimeISOString:j.end_time})})},{key:"total_tokens",name:B.Total_tokens,minWidth:120,renderCell:({row:j})=>{var F;return jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TokenText,{token:Number.parseInt(((F=j.attributes)==null?void 0:F["__computed__.cumulative_token_count.total"])??"0")})})}},{key:"status",name:B.Status,minWidth:120,renderCell:({row:j})=>{var F;return jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(StatusText,{statusCode:(F=j.status)==null?void 0:F.status_code})})}}],rows:I,headerRowHeight:26,rowHeight:80,defaultColumnOptions:{resizable:!0}})},MetricTag=({tag:S})=>{const C=useClasses$b(),R=reactExports.useMemo(()=>typeof S.value=="number"?formatNumber(S.value):S.value,[S.value]);return jsxRuntimeExports.jsxs(Badge$2,{className:C.wrapper,size:"medium",shape:"rounded",appearance:"outline",children:[jsxRuntimeExports.jsxs("span",{className:C.name,children:[S.name," "]}),jsxRuntimeExports.jsx("span",{className:C.data,children:R})]})},useClasses$b=makeStyles({wrapper:{display:"inline-flex",fontSize:"12px",...shorthands.padding("0px","8px","1px"),...shorthands.borderColor(tokens.colorPaletteGreenBorder2),...shorthands.gap("0.5rem")},name:{color:tokens.colorPaletteGreenBorder2,fontWeight:tokens.fontWeightRegular},data:{color:tokens.colorNeutralForeground1,fontWeight:tokens.fontWeightRegular}}),EvaluationsTab=()=>{var j,F,V;const S=useClasses$a(),C=useEvaluationSpansOfSelectedSpan(),[R,O]=reactExports.useState((j=C[0])==null?void 0:j.evaluationName),I=((F=C.find(K=>K.evaluationName===R))==null?void 0:F.evaluationTraces)??[],N=useSelectedTrace(),L=(N==null?void 0:N.evaluations)??{},B=((V=L[R??""])==null?void 0:V.outputs)??{};return jsxRuntimeExports.jsxs(Card,{style:{height:"100%"},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx(TabList,{selectedValue:R,onTabSelect:(K,W)=>{O(W.value)},children:C.map(K=>jsxRuntimeExports.jsx(Tab$1,{value:K.evaluationName,children:K.evaluationName},K.evaluationName))})}),jsxRuntimeExports.jsxs("div",{className:S.wrapper,children:[R&&L[R]&&Object.keys(B).map(K=>{const W=B[K];return W?jsxRuntimeExports.jsx(MetricTag,{tag:{name:K,value:W}},K):null}),jsxRuntimeExports.jsx(EvaluationTracesList,{evaluationSpans:I,className:S.grid})]})]})},useClasses$a=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%",...shorthands.gap("8px")},grid:{flexGrow:1}}),useMessageCardClasses=makeStyles({card:{...shorthands.borderRadius("8px"),...shorthands.borderColor(tokens.colorNeutralStroke1),...shorthands.borderWidth("1px"),...shorthands.borderStyle("solid"),...shorthands.padding("16px"),...shorthands.margin("16px")}}),LLMNodeInvocationParametersTab=({invocationParameters:S})=>{const C=useMessageCardClasses();return jsxRuntimeExports.jsx(Card,{className:C.card,children:jsxRuntimeExports.jsx(JsonView,{src:S})})};var ChatMessageCategory=(S=>(S.System="system",S.Error="error",S.Chatbot="chatbot",S.User="user",S))(ChatMessageCategory||{}),ChatMessageType=(S=>(S.Message="message",S.SessionSplit="session-split",S))(ChatMessageType||{});const defaultLocStrings$1={CopyToClipboard:"Copy to clipboard",CopyToClipboard_Copying:"Copying...",CopyToClipboard_Copied:"Copied!",CopyToClipboard_Failed:"Failed!",Header_Clear:"Click to clear all chat histories",Header_Close:"Click to close chat box",Header_EnterFullScreen:"Click to enter full screen mode",Header_ExitFullScreen:"Click to exit full screen mode",Header_Title:"Chat",Input_Placeholder:"Input anything to test...",MessageError_HideDetail:"Hide Detail",MessageError_ShowDetail:"Show Detail",MessageStatus_TimeSpentDesc:"time spent",MessageStatus_TimeSpentDscCapitalized:"Time spent",MessageStatus_TimeSpent_Unit:"sec",MessageStatus_TokensDesc:"Total tokens for generating this",MessageStatus_TokensUint:"tokens",SessionSplit_Desc:"Your session start from here.",Tooltip_Bottom:"Only default variants will be used for chat, if you want to test variants please try bulk test. For chatbot and test app bot, it will only show the chat output.",Tooltip_TotalTokens:"Total tokens",Typing:"Generating chat output for you"};class ChatboxViewModel{constructor(C){this.calcContentForCopy=K=>this.calcContentForCopy$.getSnapshot()(K),this.monitorInputContentChange=K=>this.inputContentChangeTick$.subscribeStateChange(K),this.notifyInputContentChange=()=>{this.inputContentChangeTick$.setState(K=>K+1)},this.sendMessage=K=>{const W=this.editorRef.current;if(!W){console.log("!!!editorRef is not mounted.");return}const X=K??W.getContent(),J=this.sendMessage$.getSnapshot(),pe=this.makeUserMessage$.getSnapshot()(X);this.messages$.setState(me=>[...me,pe]),W.clear(),this.isOthersTyping$.next(!0),J(X,this,pe).then(me=>{me!==void 0&&this.messages$.setState(xe=>[...xe,me])}).finally(()=>{this.isOthersTyping$.next(!1)})},this.setCalcContentForCopy=K=>{this.calcContentForCopy$.next(K)},this.setMakeUserMessage=K=>{this.makeUserMessage$.next(K)},this.setSendMessage=K=>{this.sendMessage$.next(K)},this.sessionSplit=K=>{const W={id:uuid_1.v4(),type:ChatMessageType.SessionSplit,history:[{category:ChatMessageCategory.System,from:"system",content:K??"",timestamp:new Date().toISOString()}]};return this.messages$.setState(X=>[...X,W]),W};const{alias:R="",initialDisabled:O=!1,initialMessages:I=[],locStrings:N=defaultLocStrings$1,calcContentForCopy:L=K=>typeof K.content=="string"?K.content:JSON.stringify(K.content),makeUserMessage:B=K=>({id:uuid_1.v4(),type:ChatMessageType.Message,history:[{category:ChatMessageCategory.User,from:this.alias$.getSnapshot(),timestamp:new Date().toISOString(),content:K}]}),sendMessage:j=async K=>({id:uuid_1.v4(),type:ChatMessageType.Message,history:[{category:ChatMessageCategory.Chatbot,from:"chatbot",timestamp:new Date().toISOString(),content:K}]})}=C;this.editorRef={current:null};const F=new State(0),V=Computed.fromObservables([F],()=>{var K;return(K=this.editorRef.current)==null?void 0:K.isEmpty()});this.alias$=new State(R),this.disabled$=new State(O),this.inputContentChangeTick$=F,this.isEditorEmpty$=V,this.isOthersTyping$=new State(!1),this.locStrings$=new State(N),this.messages$=new State(I),this.calcContentForCopy$=new State(L),this.makeUserMessage$=new State(B),this.sendMessage$=new State(j)}}const viewmodel=new ChatboxViewModel({sendMessage:()=>Promise.resolve({id:Date.now(),type:ChatMessageType.Message,history:[{category:ChatMessageCategory.System,from:"system",timestamp:new Date().toISOString(),content:"sendMessage not implemented!"}]})});React.createContext({viewmodel});function useEventCallback$1(S){const C=reactExports.useRef(S);return reactExports.useLayoutEffect(()=>{C.current=S}),reactExports.useCallback((...R)=>{const O=C.current;return O(...R)},[])}const CopyButton=S=>{const{pendingText:C,copyingText:R,copiedText:O,failedText:I,calcContentForCopy:N,className:L,delay:B=1500}=S,[j,F]=React.useState(0),V=useStyles$c(),K=j===0?C:j===1?R:j===2?O:j===3?I:"",W=j!==0,X=useEventCallback$1(()=>{if(j===0){F(1);try{const J=N();copy$4(J),F(2)}catch{F(3)}}});return React.useEffect(()=>{if(j===2||j===3){const J=setTimeout(()=>F(0),B);return()=>{J&&clearTimeout(J)}}},[j,B]),jsxRuntimeExports.jsx(Tooltip$1,{relationship:"label",withArrow:!0,content:K,children:jsxRuntimeExports.jsx(Button$2,{appearance:"transparent",className:mergeClasses(V.copyButton,L),disabled:W,as:"button",icon:j===0?jsxRuntimeExports.jsx(Copy20Regular,{}):jsxRuntimeExports.jsx(CopyArrowRight20Regular,{}),onClick:X})})};CopyButton.displayName="CopyButton";const useStyles$c=makeStyles({copyButton:{cursor:"pointer"}}),defaultUploadPopoverLocStrings={Add:"Add",AddAnImage:"Add an image",PasteImageOrLinkHere:"Paste image or link here",UploadFromThisDevice:"Upload from this device"},ImageView=S=>{const{src:C,alt:R,loading:O=!1,width:I,height:N,styles:L}=S;return C?O?jsxRuntimeExports.jsx("div",{children:"Loading..."}):jsxRuntimeExports.jsx("div",{className:L==null?void 0:L.root,children:jsxRuntimeExports.jsx("img",{className:L==null?void 0:L.image,src:C,alt:R,width:I,height:N})}):jsxRuntimeExports.jsx("div",{children:"This image can not be previewed."})},ImageViewModal=S=>{const{src:C,alt:R,visible:O,loading:I=!1,width:N,height:L,onDismiss:B}=S,j=useStyles$b(),F=jsxRuntimeExports.jsxs("div",{className:j.container,children:[jsxRuntimeExports.jsxs("div",{className:j.header,children:[jsxRuntimeExports.jsx("h2",{className:j.heading,children:"Preview"}),jsxRuntimeExports.jsx(Button$2,{as:"button",appearance:"transparent",icon:jsxRuntimeExports.jsx(Dismiss24Regular,{}),className:j.dismissBtn,onClick:B})]}),jsxRuntimeExports.jsx("div",{className:j.main,children:jsxRuntimeExports.jsx(ImageView,{src:C,alt:R,loading:I,width:N,height:L,styles:{image:j.image}})})]});return jsxRuntimeExports.jsx(Modal,{isOpen:O,isBlocking:!1,onDismiss:B,children:F})},useStyles$b=makeStyles({container:{display:"flex",flexDirection:"column",flexWrap:"nowrap",...shorthands.padding("16px")},header:{...shorthands.flex(0,0,"auto"),display:"flex",flexDirection:"row",flexWrap:"nowrap",justifyContent:"space-between",marginBottom:"20px"},heading:{...shorthands.margin(0),fontWeight:FontWeights.semibold,fontSize:"inherit"},dismissBtn:{"&&":{fontSize:"16px",lineHeight:"16px",height:"16px",width:"16px",color:tokens.colorNeutralStroke1}},main:{...shorthands.overflow("auto"),display:"flex",justifyContent:"center",alignItems:"center"},image:{width:"auto",height:"auto",maxWidth:"60vw",maxHeight:"60vh"}}),IMAGE_WIDTH="48px",MASK_SELECTOR_CLASS_NAME="__MASK_SELECTOR_CLASS_NAME__",UploadPopoverImagePreview=S=>{const{image:C,alt:R,isReadonly:O,onClickDelete:I}=S,[N,L]=React.useState(!1),B=useStyles$a(),j=React.useMemo(()=>{if(C)return typeof C=="string"?C:URL.createObjectURL(C)},[C]),F=React.useCallback(()=>{L(K=>!K)},[]),V=j||"";return jsxRuntimeExports.jsxs("div",{className:mergeClasses(B.root,O?B.readonlyRoot:void 0),children:[jsxRuntimeExports.jsxs("div",{className:B.imageContainer,children:[jsxRuntimeExports.jsx("img",{decoding:"async",className:B.image,src:V,alt:R}),jsxRuntimeExports.jsx("div",{"aria-hidden":!0,className:mergeClasses(B.mask,MASK_SELECTOR_CLASS_NAME),onClick:F,role:"button",children:jsxRuntimeExports.jsx(ZoomIn20Regular,{})})]}),!O&&jsxRuntimeExports.jsx(Button$2,{as:"button",className:B.closeButton,icon:jsxRuntimeExports.jsx(Dismiss20Regular,{}),onClick:I}),jsxRuntimeExports.jsx(ImageViewModal,{src:V,alt:R||"",visible:N,onDismiss:F})]})},useStyles$a=makeStyles({root:{boxSizing:"border-box",display:"flex",height:"32px",width:"80px",...shorthands.border("1px","solid",tokens.colorNeutralStroke2),...shorthands.borderRadius("4px")},readonlyRoot:{width:"48px"},imageContainer:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",width:IMAGE_WIDTH,[`:hover .${MASK_SELECTOR_CLASS_NAME}`]:{visibility:"visible"}},image:{maxWidth:"100%",maxHeight:"100%",width:"auto",height:"auto"},mask:{visibility:"hidden",cursor:"pointer",position:"absolute",top:0,left:0,width:`calc(${IMAGE_WIDTH} - 2px)`,height:"100%",backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",color:tokens.colorNeutralForegroundStaticInverted,...shorthands.borderRadius("4px",0,0,"4px")},closeButton:{width:"32px",...shorthands.border(0)}}),UploadPopoverTrigger=React.forwardRef((S,C)=>jsxRuntimeExports.jsx(Button$2,{...S,ref:C,as:"button",appearance:"transparent",size:"medium",icon:jsxRuntimeExports.jsx(Attach16Regular,{})}));UploadPopoverTrigger.displayName="UploadPopoverTrigger";const mergeStyleSlots=(S,...C)=>{const R={...S};for(const O of Object.keys(S))R[O]=mergeClasses(S[O],...C.map(I=>I==null?void 0:I[O]));return R},UploadPopover=React.forwardRef(({isUploading:S,disabled:C,trigger:R=jsxRuntimeExports.jsx(UploadPopoverTrigger,{}),locStrings:O=defaultUploadPopoverLocStrings,styles:I,events:N,onUpload:L,onRenderImagePreview:B},j)=>{const F=mergeStyleSlots(useStyles$9(),I),{onDelete:V,onInputBlur:K,onPaste:W,onLocalUpload:X}=N??{};React.useImperativeHandle(j,()=>({open(){oe(!0)},close(){oe(!1)},reset:()=>{we()},retrieve:()=>xe}));const[J,oe]=React.useState(!1),[pe,me]=React.useState(""),[xe,Ae]=React.useState(void 0),ge=React.useRef(null),Te=React.useCallback((Je,Xe)=>{oe(Xe.open||!1)},[]),we=React.useCallback(()=>{me(""),Ae(void 0),ge.current&&(ge.current.value="")},[]),ke=React.useCallback(Je=>{const Xe=Je[0];Ae(Xe),W==null||W(Xe)},[W]),Be=React.useCallback(Je=>{Je.clipboardData.files&&ke&&ke(Je.clipboardData.files)},[ke]),Ie=React.useCallback(()=>{K==null||K(pe),Ae(pe)},[pe,K]),je=React.useCallback(()=>{xe&&L(xe)},[xe,L]),Ke=React.useMemo(()=>B?B({cachedImage:xe,customerInputContent:pe,isReadonly:C||S||!1}):jsxRuntimeExports.jsx(UploadPopoverImagePreview,{image:xe||pe,alt:pe||"",isReadonly:S,onClickDelete:()=>{we(),V==null||V()}}),[pe,xe,we,C,S,V,B]);return jsxRuntimeExports.jsxs(Popover,{positioning:"above-end",open:J,onOpenChange:Te,children:[jsxRuntimeExports.jsx(PopoverTrigger,{disableButtonEnhancement:!0,children:R}),jsxRuntimeExports.jsxs(PopoverSurface,{className:F.attachUploadPopover,children:[jsxRuntimeExports.jsxs("div",{className:F.attachUploadHeader,children:[jsxRuntimeExports.jsx("span",{children:O.AddAnImage}),jsxRuntimeExports.jsx(Button$2,{as:"button",disabled:C,appearance:"transparent",icon:jsxRuntimeExports.jsx(Dismiss24Regular,{}),onClick:()=>{oe(!1)}})]}),jsxRuntimeExports.jsxs("div",{className:F.attachUploadInputWrapper,children:[xe?Ke:jsxRuntimeExports.jsx(Input,{className:F.attachUploadInput,value:pe,disabled:C,placeholder:O.PasteImageOrLinkHere,onChange:(Je,Xe)=>{Ae(void 0),me(Xe.value)},onPaste:Be,onBlur:Ie}),jsxRuntimeExports.jsx(Button$2,{as:"button",disabled:C||S||!xe&&!pe,className:F.addButton,onClick:je,children:S?jsxRuntimeExports.jsx(Spinner,{size:"tiny"}):O.Add})]}),jsxRuntimeExports.jsx("input",{tabIndex:-1,"aria-hidden":!0,ref:ge,disabled:C,className:F.invisibleFileInput,onChange:Je=>{var ot;const Xe=(ot=Je.target.files)==null?void 0:ot[0];Xe&&(X==null||X(Xe)),Ae(Xe)},type:"file",accept:"image/*"}),jsxRuntimeExports.jsx("div",{className:F.triggerUploadButton,children:jsxRuntimeExports.jsx(Button$2,{as:"button",disabled:C,appearance:"transparent",icon:jsxRuntimeExports.jsx(ArrowUpload24Regular,{}),onClick:()=>{var Je;(Je=ge.current)==null||Je.click()},children:O.UploadFromThisDevice})})]})]})});UploadPopover.displayName="UploadPopover";const useStyles$9=makeStyles({attachUploadPopover:{width:"400px",backgroundColor:tokens.colorNeutralBackground1,...shorthands.padding("12px")},attachUploadHeader:{display:"flex",justifyContent:"space-between",alignItems:"center",fontWeight:500,fontSize:"16px",lineHeight:"22px"},attachUploadInputWrapper:{marginTop:"8px",display:"flex",columnGap:"8px",justifyContent:"space-between"},attachUploadInput:{flexGrow:1},addButton:{minWidth:"52px"},invisibleFileInput:{display:"none"},triggerUploadButton:{marginTop:"8px",display:"flex",justifyContent:"space-between"}});function DefaultMessageContentRenderer(S){const{content:C,className:R}=S,O=useStyles$8(),I=mergeClasses(O.content,R);if(typeof C=="string")return jsxRuntimeExports.jsx("p",{className:I,children:C});const N=JSON.stringify(C,null,2);return jsxRuntimeExports.jsx("pre",{className:I,children:N})}DefaultMessageContentRenderer.displayName="DefaultMessageContentRenderer";const useStyles$8=makeStyles({content:{...shorthands.overflow("auto"),wordBreak:"break-all",whiteSpace:"break-spaces"}});function DefaultMessageErrorRenderer(S){const{error:C,locStrings:R,className:O}=S,[I,N]=React.useState(!1),L=useStyles$7(),B=mergeClasses(L.errorMessageDetail,!I&&L.errorMessageDetailHidden,O);return jsxRuntimeExports.jsxs(React.Fragment,{children:[jsxRuntimeExports.jsx("p",{children:jsxRuntimeExports.jsx(Link$1,{onClick:()=>N(j=>!j),children:I?R.MessageError_HideDetail:R.MessageError_ShowDetail})}),jsxRuntimeExports.jsx("p",{className:B,children:C})]})}DefaultMessageErrorRenderer.displayName="DefaultMessageErrorRenderer";const useStyles$7=makeStyles({errorMessageDetail:{...shorthands.margin("0","0","0","0"),wordBreak:"break-word",whiteSpace:"break-spaces"},errorMessageDetailHidden:{display:"none"}});function DefaultMessagePaginationRenderer(S){const{message:C,current:R,className:O,setCurrent:I}=S,N=C.history.length,L=()=>{R>0&&I(R-1)},B=()=>{R=tt?ot:""+Array(tt+1-et.length).join(Ue)+ot},ge={s:Ae,z:function(ot){var tt=-ot.utcOffset(),Ue=Math.abs(tt),et=Math.floor(Ue/60),dt=Ue%60;return(tt<=0?"+":"-")+Ae(et,2,"0")+":"+Ae(dt,2,"0")},m:function ot(tt,Ue){if(tt.date()1)return ot(Qe[0])}else{var lt=tt.name;we[lt]=tt,dt=lt}return!et&&dt&&(Te=dt),dt||!et&&Te},je=function(ot,tt){if(Be(ot))return ot.clone();var Ue=typeof tt=="object"?tt:{};return Ue.date=ot,Ue.args=arguments,new Je(Ue)},Ke=ge;Ke.l=Ie,Ke.i=Be,Ke.w=function(ot,tt){return je(ot,{locale:tt.$L,utc:tt.$u,x:tt.$x,$offset:tt.$offset})};var Je=function(){function ot(Ue){this.$L=Ie(Ue.locale,null,!0),this.parse(Ue),this.$x=this.$x||Ue.x||{},this[ke]=!0}var tt=ot.prototype;return tt.parse=function(Ue){this.$d=function(et){var dt=et.date,gt=et.utc;if(dt===null)return new Date(NaN);if(Ke.u(dt))return new Date;if(dt instanceof Date)return new Date(dt);if(typeof dt=="string"&&!/Z$/i.test(dt)){var Qe=dt.match(pe);if(Qe){var lt=Qe[2]-1||0,ht=(Qe[7]||"0").substring(0,3);return gt?new Date(Date.UTC(Qe[1],lt,Qe[3]||1,Qe[4]||0,Qe[5]||0,Qe[6]||0,ht)):new Date(Qe[1],lt,Qe[3]||1,Qe[4]||0,Qe[5]||0,Qe[6]||0,ht)}}return new Date(dt)}(Ue),this.init()},tt.init=function(){var Ue=this.$d;this.$y=Ue.getFullYear(),this.$M=Ue.getMonth(),this.$D=Ue.getDate(),this.$W=Ue.getDay(),this.$H=Ue.getHours(),this.$m=Ue.getMinutes(),this.$s=Ue.getSeconds(),this.$ms=Ue.getMilliseconds()},tt.$utils=function(){return Ke},tt.isValid=function(){return this.$d.toString()!==oe},tt.isSame=function(Ue,et){var dt=je(Ue);return this.startOf(et)<=dt&&dt<=this.endOf(et)},tt.isAfter=function(Ue,et){return je(Ue){const{duration:C,tokens:R,locStrings:O,className:I}=S,N=C.toFixed(2).replace(/\.?0*$/,"");return jsxRuntimeExports.jsxs("div",{className:I,children:[R>0&&jsxRuntimeExports.jsxs(React.Fragment,{children:[`${O.MessageStatus_TokensDesc}: `,jsxRuntimeExports.jsx("b",{children:R}),` ${O.MessageStatus_TokensUint}, `]}),`${R>0?O.MessageStatus_TimeSpentDesc:O.MessageStatus_TimeSpentDscCapitalized}: `,jsxRuntimeExports.jsx("b",{children:N}),` ${O.MessageStatus_TimeSpent_Unit}`]})};DefaultMessageStatusRenderer.displayName="DefaultMessageStatusRenderer";const EMPTY_CONTEXTUAL_MENU_ITEMS=[],defaultUseContextualMenuItems=S=>EMPTY_CONTEXTUAL_MENU_ITEMS;function DefaultMessageBubbleRenderer(S){const{MessageAvatarRenderer:C,MessageContentRenderer:R=DefaultMessageContentRenderer,MessageErrorRenderer:O=DefaultMessageErrorRenderer,MessagePaginationRenderer:I=DefaultMessagePaginationRenderer,MessageSenderRenderer:N=DefaultMessageSenderRenderer,MessageStatusRenderer:L=DefaultMessageStatusRenderer,useMessageContextualMenuItems:B=defaultUseContextualMenuItems,locStrings:j,message:F,className:V}=S,K=useStyles$5(),[W,X]=React.useState(F.history.length-1),[J,oe]=React.useState(!1),pe=React.useRef(null),me=React.useRef(null),xe=React.useCallback(()=>{oe(!1)},[]),Ae=React.useCallback(Ie=>{const je=pe.current,Ke=me.current;if(je&&Ke){const Je=Ie.clientX,Xe=Ie.clientY,ot=je.getBoundingClientRect(),tt=ot.left+window.scrollX,Ue=ot.top+window.scrollY,et=Je-tt,dt=Xe-Ue;Ke.style.left=`${et}px`,Ke.style.top=`${dt}px`}},[]),ge=React.useCallback(Ie=>{Ie.preventDefault(),Ae(Ie),oe(!0)},[]),Te=F.history[W],we=Te.category===ChatMessageCategory.User?"right":"left",ke=B(Te),Be=React.useCallback(()=>S.calcContentForCopy(Te),[Te,S.calcContentForCopy]);return React.useEffect(()=>{const Ie=()=>{oe(!1)};return document.addEventListener("mousedown",Ie),()=>document.removeEventListener("mousedown",Ie)},[]),jsxRuntimeExports.jsx("div",{className:K.container,"data-position":we,children:jsxRuntimeExports.jsxs("div",{className:mergeClasses(K.message,V),"data-position":we,children:[jsxRuntimeExports.jsx("div",{className:K.avatar,children:C&&jsxRuntimeExports.jsx(C,{data:Te,position:we})}),jsxRuntimeExports.jsxs("div",{className:K.main,children:[jsxRuntimeExports.jsx("div",{className:K.sender,children:jsxRuntimeExports.jsx(N,{data:Te,position:we})}),jsxRuntimeExports.jsxs("div",{ref:pe,className:K.content,"data-category":Te.category,onContextMenu:ge,onClick:Ae,children:[jsxRuntimeExports.jsx(R,{content:Te.content}),Te.error&&jsxRuntimeExports.jsx(O,{error:Te.error,locStrings:j,className:K.error}),typeof Te.duration=="number"&&typeof Te.tokens=="number"&&jsxRuntimeExports.jsx(L,{duration:Te.duration,tokens:Te.tokens,locStrings:j,className:K.status}),F.history.length>1&&jsxRuntimeExports.jsx(I,{className:K.pagination,message:F,current:W,setCurrent:X}),jsxRuntimeExports.jsx("div",{ref:me,className:K.contentMenuAnchor}),ke.length>0&&jsxRuntimeExports.jsx(ContextualMenu,{items:ke,hidden:!J,target:me,onItemClick:xe,onDismiss:xe,className:K.contextualMenu}),jsxRuntimeExports.jsx("div",{className:mergeClasses(anchors.actions,K.actions),children:jsxRuntimeExports.jsx(CopyButton,{calcContentForCopy:Be,pendingText:j.CopyToClipboard,copyingText:j.CopyToClipboard_Copying,copiedText:j.CopyToClipboard_Copied,failedText:j.CopyToClipboard_Failed,className:mergeClasses(anchors.actionButton,K.actionButton)})})]})]})]})})}DefaultMessageBubbleRenderer.displayName="DefaultMessageBubbleRenderer";const anchors={actions:"chatbox-message-bubble-actions",actionButton:"chatbox-message-bubble-action-button"},useStyles$5=makeStyles({container:{...shorthands.margin("16px","0"),display:"flex",justifyContent:"flex-start",'&&[data-position="right"]':{justifyContent:"flex-end"},width:"100%"},message:{display:"flex",flexDirection:"row",'&&[data-position="right"]':{flexDirection:"row-reverse"},maxWidth:"calc(100% - 80px)"},avatar:{...shorthands.flex(0,0,"auto")},main:{...shorthands.flex(1,1,"auto"),display:"flex",flexDirection:"column",width:"100%"},sender:{...shorthands.flex(0,0,"auto")},content:{...shorthands.flex(1,1,"auto"),...shorthands.padding("12px","20px","12px","12px"),...shorthands.borderRadius("4px"),position:"relative",boxSizing:"border-box",minWidth:"48px",wordBreak:"break-word",lineHeight:"22px","> p":{...shorthands.margin(0)},[`&:hover > .${anchors.actions}`]:{display:"flex",visibility:"visible"},[`&&[data-category="${ChatMessageCategory.System}"]`]:{color:tokens.colorNeutralForeground4},[`&&[data-category="${ChatMessageCategory.Error}"]`]:{backgroundColor:tokens.colorPaletteRedBackground2,color:tokens.colorNeutralForeground1},[`&&[data-category="${ChatMessageCategory.Chatbot}"]`]:{backgroundColor:tokens.colorNeutralBackground4,color:tokens.colorNeutralForeground1},[`&&[data-category="${ChatMessageCategory.User}"]`]:{backgroundColor:tokens.colorBrandBackground2,color:tokens.colorNeutralForeground1,[`& .${anchors.actionButton}`]:{color:tokens.colorNeutralForegroundInverted,":hover":{color:tokens.colorNeutralForegroundInvertedHover}}}},contextualMenu:{width:"auto",minWidth:"180px"},contentMenuAnchor:{position:"absolute",top:"0px",left:"0px"},error:{...shorthands.borderTop("1px","solid",tokens.colorPaletteDarkRedBorderActive),marginTop:"8px !important",paddingTop:"8px"},status:{...shorthands.margin("10px","0","0","0"),...shorthands.borderTop("1px","solid",tokens.colorPaletteAnchorBackground2),fontSize:"12px",fontStyle:"italic"},pagination:{marginTop:"14px"},actions:{position:"absolute",right:"-5px",top:"0",display:"none",width:"32px",justifyContent:"space-between"},actionButton:{cursor:"pointer",width:"32px"}});function DefaultSessionSplitRenderer(S){const{locStrings:C,className:R}=S,O=useStyles$4();return jsxRuntimeExports.jsx("div",{className:mergeClasses(O.sessionSplit,R),children:jsxRuntimeExports.jsxs("span",{children:["--- ",C.SessionSplit_Desc," ---"]})})}DefaultSessionSplitRenderer.displayName="DefaultSessionSplitRenderer";const useStyles$4=makeStyles({sessionSplit:{display:"flex",justifyContent:"center",height:"24px",color:tokens.colorNeutralForeground4}});makeStyles({hintTyping:{...shorthands.overflow("hidden"),width:"1px",height:"1px"},typingDots:{...shorthands.transition("opacity","0.1s"),display:"flex",alignItems:"center",height:"22.5px"},typingDot:{...shorthands.borderRadius("50%"),...shorthands.margin("0","0","0","6px"),display:"inline-block",width:"6px",height:"6px",backgroundColor:tokens.colorNeutralStroke1,animationDuration:"1.5s",animationTimingFunction:"linear",animationIterationCount:"infinite",animationName:{"0%":{transform:"scale(1)"},"16.67%":{transform:"scale(0)"},"33.33%":{transform:"scale(0)"},"50%":{transform:"scale(0)"},"66.67%":{transform:"scale(1)"},"83.33%":{transform:"scale(1)"},"100%":{transform:"scale(1)"}},"&:nth-child(1)":{...shorthands.margin("0px")},"&:nth-child(2)":{animationDelay:"0.18s"},"&:nth-child(3)":{animationDelay:"0.36s"}}}),makeStyles({toolbar:{display:"flex",justifyContent:"flex-end"}}),makeStyles({input:{...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),boxSizing:"border-box",display:"grid",gridTemplateRows:"1fr auto"},editor:{boxSizing:"border-box"},editorInner:{...shorthands.border("0px"),boxSizing:"border-box"},editorToolbar:{boxSizing:"border-box",display:"flex",alignItems:"flex-end",justifyContent:"flex-end",height:"100%"}});function MessageListRenderer(S){const{MessageAvatarRenderer:C,MessageContentRenderer:R,MessageErrorRenderer:O,MessageSenderRenderer:I,MessageBubbleRenderer:N=DefaultMessageBubbleRenderer,SessionSplitRenderer:L=DefaultSessionSplitRenderer,className:B,bubbleClassName:j,sessionSplitClassName:F,locStrings:V,messages:K,calcContentForCopy:W,useMessageContextualMenuItems:X}=S,J=useStyles$3();return jsxRuntimeExports.jsx("div",{className:mergeClasses(J.container,B),children:K.map(oe=>{switch(oe.type){case ChatMessageType.Message:return jsxRuntimeExports.jsx(N,{MessageAvatarRenderer:C,MessageContentRenderer:R,MessageErrorRenderer:O,MessageSenderRenderer:I,calcContentForCopy:W,locStrings:V,message:oe,className:j,useMessageContextualMenuItems:X},oe.id);case ChatMessageType.SessionSplit:return jsxRuntimeExports.jsx(L,{locStrings:V,className:F},oe.id);default:return jsxRuntimeExports.jsx(React.Fragment,{},oe.id)}})})}MessageListRenderer.displayName="MessageListRenderer";const useStyles$3=makeStyles({container:{boxSizing:"border-box"}});makeStyles({editor:{...shorthands.padding("8px"),...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),boxSizing:"border-box",display:"block",width:"100%",userSelect:"none",position:"relative",'&[data-disabled="true"]':{backgroundColor:tokens.colorNeutralBackgroundDisabled}},textarea:{...shorthands.padding("0px"),...shorthands.overflow("hidden","auto"),...shorthands.borderWidth(0),...shorthands.outline(0,"solid","transparent"),backgroundColor:"transparent",boxSizing:"border-box",resize:"none",appearance:"none",overflowWrap:"break-word",lineHeight:"24px",height:"24px",width:"100%",wordBreak:"break-all",color:tokens.colorNeutralForeground1,userSelect:"text"}}),React.lazy(()=>Promise.resolve().then(()=>index).then(S=>({default:S.ReactRichEditor}))),React.lazy(()=>Promise.resolve().then(()=>index).then(S=>({default:S.AutoResizeTextBoxPlugin}))),makeStyles({editor:{...shorthands.padding("8px"),...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),boxSizing:"border-box",display:"block",width:"100%",userSelect:"none",position:"relative"}}),makeStyles({chatbox:{...shorthands.borderRadius("8px"),display:"flex",flexDirection:"column",alignItems:"stretch",backgroundColor:tokens.colorNeutralBackground1,width:"100%",height:"100%",boxShadow:"0px 6.4px 14.4px rgba(0, 0, 0, 0.132), 0px 1.2px 3.6px rgba(0, 0, 0, 0.108)","::-webkit-scrollbar":{width:"4px",backgroundColor:tokens.colorNeutralBackground1Hover},"::-webkit-scrollbar-thumb":{backgroundColor:tokens.colorScrollbarOverlay,...shorthands.border("1px","solid",tokens.colorNeutralBackground1),...shorthands.borderRadius("9999px")},"::-webkit-scrollbar-thumb:hover":{backgroundColor:tokens.colorNeutralForeground1Static},"::-webkit-scrollbar-track":{...shorthands.borderRadius("9999px"),backgroundColor:"transparent"}},header:{...shorthands.flex(0,0,"auto")},main:{...shorthands.flex(1,1,"auto"),...shorthands.overflow("hidden","auto")},footer:{...shorthands.flex(0,0,"auto")}}),makeStyles({header:{},topbar:{...shorthands.padding("0px","16px"),...shorthands.borderBottom("1px","solid",tokens.colorNeutralBackground5),boxSizing:"border-box",display:"flex",justifyContent:"space-between",alignItems:"center",height:"48px"},toolbarTitle:{display:"flex",alignItems:"center",columnGap:"2px"},toolbarActionButton:{color:tokens.colorNeutralForeground2}}),makeStyles({main:{...shorthands.padding("0","16px"),...shorthands.overflow("hidden","auto"),height:"100%"}}),makeStyles({footer:{...shorthands.padding("16px"),boxSizing:"border-box"},footerContainer:{display:"flex"},leftToolbar:{...shorthands.flex(0,0,"auto")},editor:{...shorthands.flex(1),boxSizing:"border-box"},validation:{boxSizing:"border-box"},validationInner:{...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),...shorthands.margin("8px","0px"),...shorthands.padding("2px","8px"),backgroundColor:tokens.colorStatusWarningBackground1,color:tokens.colorStatusWarningForeground1}});function setMetaTag(S,C){try{var R=global,O=R.document;if(typeof O<"u"&&O.createElement&&O.head&&O.head.appendChild){var I=O.querySelector('html meta[name="'.concat(encodeURI(S),'"]'))||O.createElement("meta");I.setAttribute("name",S),I.setAttribute("content",C),O.head.appendChild(I)}}catch{}}function addVersionToMetaTag(){setMetaTag("react-scroll-to-bottom:version","4.2.0")}var check$1=function(S){return S&&S.Math===Math&&S},global$x=check$1(typeof globalThis=="object"&&globalThis)||check$1(typeof window=="object"&&window)||check$1(typeof self=="object"&&self)||check$1(typeof commonjsGlobal=="object"&&commonjsGlobal)||check$1(typeof commonjsGlobal=="object"&&commonjsGlobal)||function(){return this}()||Function("return this")(),fails$v=function(S){try{return!!S()}catch{return!0}},fails$u=fails$v,functionBindNative=!fails$u(function(){var S=(function(){}).bind();return typeof S!="function"||S.hasOwnProperty("prototype")}),NATIVE_BIND$3=functionBindNative,FunctionPrototype$5=Function.prototype,apply$3=FunctionPrototype$5.apply,call$c=FunctionPrototype$5.call,functionApply=typeof Reflect=="object"&&Reflect.apply||(NATIVE_BIND$3?call$c.bind(apply$3):function(){return call$c.apply(apply$3,arguments)}),NATIVE_BIND$2=functionBindNative,FunctionPrototype$4=Function.prototype,call$b=FunctionPrototype$4.call,uncurryThisWithBind=NATIVE_BIND$2&&FunctionPrototype$4.bind.bind(call$b,call$b),functionUncurryThis=NATIVE_BIND$2?uncurryThisWithBind:function(S){return function(){return call$b.apply(S,arguments)}},uncurryThis$l=functionUncurryThis,toString$f=uncurryThis$l({}.toString),stringSlice$1=uncurryThis$l("".slice),classofRaw$4=function(S){return stringSlice$1(toString$f(S),8,-1)},classofRaw$3=classofRaw$4,uncurryThis$k=functionUncurryThis,functionUncurryThisClause=function(S){if(classofRaw$3(S)==="Function")return uncurryThis$k(S)},documentAll=typeof document=="object"&&document.all,isCallable$t=typeof documentAll>"u"&&documentAll!==void 0?function(S){return typeof S=="function"||S===documentAll}:function(S){return typeof S=="function"},objectGetOwnPropertyDescriptor$1={},fails$t=fails$v,descriptors$1=!fails$t(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),NATIVE_BIND$1=functionBindNative,call$a=Function.prototype.call,functionCall=NATIVE_BIND$1?call$a.bind(call$a):function(){return call$a.apply(call$a,arguments)},objectPropertyIsEnumerable$1={},$propertyIsEnumerable$2={}.propertyIsEnumerable,getOwnPropertyDescriptor$9=Object.getOwnPropertyDescriptor,NASHORN_BUG$1=getOwnPropertyDescriptor$9&&!$propertyIsEnumerable$2.call({1:2},1);objectPropertyIsEnumerable$1.f=NASHORN_BUG$1?function S(C){var R=getOwnPropertyDescriptor$9(this,C);return!!R&&R.enumerable}:$propertyIsEnumerable$2;var createPropertyDescriptor$8=function(S,C){return{enumerable:!(S&1),configurable:!(S&2),writable:!(S&4),value:C}},uncurryThis$j=functionUncurryThis,fails$s=fails$v,classof$e=classofRaw$4,$Object$4=Object,split$1=uncurryThis$j("".split),indexedObject$1=fails$s(function(){return!$Object$4("z").propertyIsEnumerable(0)})?function(S){return classof$e(S)==="String"?split$1(S,""):$Object$4(S)}:$Object$4,isNullOrUndefined$3=function(S){return S==null},isNullOrUndefined$2=isNullOrUndefined$3,$TypeError$a=TypeError,requireObjectCoercible$8=function(S){if(isNullOrUndefined$2(S))throw new $TypeError$a("Can't call method on "+S);return S},IndexedObject$2=indexedObject$1,requireObjectCoercible$7=requireObjectCoercible$8,toIndexedObject$e=function(S){return IndexedObject$2(requireObjectCoercible$7(S))},isCallable$s=isCallable$t,isObject$h=function(S){return typeof S=="object"?S!==null:isCallable$s(S)},path$h={},path$g=path$h,global$w=global$x,isCallable$r=isCallable$t,aFunction$1=function(S){return isCallable$r(S)?S:void 0},getBuiltIn$f=function(S,C){return arguments.length<2?aFunction$1(path$g[S])||aFunction$1(global$w[S]):path$g[S]&&path$g[S][C]||global$w[S]&&global$w[S][C]},uncurryThis$i=functionUncurryThis,objectIsPrototypeOf=uncurryThis$i({}.isPrototypeOf),engineUserAgent$1=typeof navigator<"u"&&String(navigator.userAgent)||"",global$v=global$x,userAgent$1=engineUserAgent$1,process$2=global$v.process,Deno$1=global$v.Deno,versions$1=process$2&&process$2.versions||Deno$1&&Deno$1.version,v8$1=versions$1&&versions$1.v8,match$1,version$1;v8$1&&(match$1=v8$1.split("."),version$1=match$1[0]>0&&match$1[0]<4?1:+(match$1[0]+match$1[1])),!version$1&&userAgent$1&&(match$1=userAgent$1.match(/Edge\/(\d+)/),(!match$1||match$1[1]>=74)&&(match$1=userAgent$1.match(/Chrome\/(\d+)/),match$1&&(version$1=+match$1[1])));var engineV8Version$1=version$1,V8_VERSION$3=engineV8Version$1,fails$r=fails$v,global$u=global$x,$String$4=global$u.String,symbolConstructorDetection=!!Object.getOwnPropertySymbols&&!fails$r(function(){var S=Symbol("symbol detection");return!$String$4(S)||!(Object(S)instanceof Symbol)||!Symbol.sham&&V8_VERSION$3&&V8_VERSION$3<41}),NATIVE_SYMBOL$7=symbolConstructorDetection,useSymbolAsUid$1=NATIVE_SYMBOL$7&&!Symbol.sham&&typeof Symbol.iterator=="symbol",getBuiltIn$e=getBuiltIn$f,isCallable$q=isCallable$t,isPrototypeOf$8=objectIsPrototypeOf,USE_SYMBOL_AS_UID$3=useSymbolAsUid$1,$Object$3=Object,isSymbol$8=USE_SYMBOL_AS_UID$3?function(S){return typeof S=="symbol"}:function(S){var C=getBuiltIn$e("Symbol");return isCallable$q(C)&&isPrototypeOf$8(C.prototype,$Object$3(S))},$String$3=String,tryToString$6=function(S){try{return $String$3(S)}catch{return"Object"}},isCallable$p=isCallable$t,tryToString$5=tryToString$6,$TypeError$9=TypeError,aCallable$5=function(S){if(isCallable$p(S))return S;throw new $TypeError$9(tryToString$5(S)+" is not a function")},aCallable$4=aCallable$5,isNullOrUndefined$1=isNullOrUndefined$3,getMethod$6=function(S,C){var R=S[C];return isNullOrUndefined$1(R)?void 0:aCallable$4(R)},call$9=functionCall,isCallable$o=isCallable$t,isObject$g=isObject$h,$TypeError$8=TypeError,ordinaryToPrimitive$3=function(S,C){var R,O;if(C==="string"&&isCallable$o(R=S.toString)&&!isObject$g(O=call$9(R,S))||isCallable$o(R=S.valueOf)&&!isObject$g(O=call$9(R,S))||C!=="string"&&isCallable$o(R=S.toString)&&!isObject$g(O=call$9(R,S)))return O;throw new $TypeError$8("Can't convert object to primitive value")},shared$c={exports:{}},global$t=global$x,defineProperty$d=Object.defineProperty,defineGlobalProperty$1=function(S,C){try{defineProperty$d(global$t,S,{value:C,configurable:!0,writable:!0})}catch{global$t[S]=C}return C},global$s=global$x,defineGlobalProperty=defineGlobalProperty$1,SHARED$1="__core-js_shared__",store$7=global$s[SHARED$1]||defineGlobalProperty(SHARED$1,{}),sharedStore$1=store$7,store$6=sharedStore$1;(shared$c.exports=function(S,C){return store$6[S]||(store$6[S]=C!==void 0?C:{})})("versions",[]).push({version:"3.35.1",mode:"pure",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE",source:"https://github.com/zloirock/core-js"});var sharedExports$1=shared$c.exports,requireObjectCoercible$6=requireObjectCoercible$8,$Object$2=Object,toObject$c=function(S){return $Object$2(requireObjectCoercible$6(S))},uncurryThis$h=functionUncurryThis,toObject$b=toObject$c,hasOwnProperty$2=uncurryThis$h({}.hasOwnProperty),hasOwnProperty_1$1=Object.hasOwn||function S(C,R){return hasOwnProperty$2(toObject$b(C),R)},uncurryThis$g=functionUncurryThis,id$1=0,postfix$1=Math.random(),toString$e=uncurryThis$g(1 .toString),uid$6=function(S){return"Symbol("+(S===void 0?"":S)+")_"+toString$e(++id$1+postfix$1,36)},global$r=global$x,shared$b=sharedExports$1,hasOwn$k=hasOwnProperty_1$1,uid$5=uid$6,NATIVE_SYMBOL$6=symbolConstructorDetection,USE_SYMBOL_AS_UID$2=useSymbolAsUid$1,Symbol$5=global$r.Symbol,WellKnownSymbolsStore$3=shared$b("wks"),createWellKnownSymbol$1=USE_SYMBOL_AS_UID$2?Symbol$5.for||Symbol$5:Symbol$5&&Symbol$5.withoutSetter||uid$5,wellKnownSymbol$o=function(S){return hasOwn$k(WellKnownSymbolsStore$3,S)||(WellKnownSymbolsStore$3[S]=NATIVE_SYMBOL$6&&hasOwn$k(Symbol$5,S)?Symbol$5[S]:createWellKnownSymbol$1("Symbol."+S)),WellKnownSymbolsStore$3[S]},call$8=functionCall,isObject$f=isObject$h,isSymbol$7=isSymbol$8,getMethod$5=getMethod$6,ordinaryToPrimitive$2=ordinaryToPrimitive$3,wellKnownSymbol$n=wellKnownSymbol$o,$TypeError$7=TypeError,TO_PRIMITIVE$1=wellKnownSymbol$n("toPrimitive"),toPrimitive$9=function(S,C){if(!isObject$f(S)||isSymbol$7(S))return S;var R=getMethod$5(S,TO_PRIMITIVE$1),O;if(R){if(C===void 0&&(C="default"),O=call$8(R,S,C),!isObject$f(O)||isSymbol$7(O))return O;throw new $TypeError$7("Can't convert object to primitive value")}return C===void 0&&(C="number"),ordinaryToPrimitive$2(S,C)},toPrimitive$8=toPrimitive$9,isSymbol$6=isSymbol$8,toPropertyKey$8=function(S){var C=toPrimitive$8(S,"string");return isSymbol$6(C)?C:C+""},global$q=global$x,isObject$e=isObject$h,document$2=global$q.document,EXISTS$3=isObject$e(document$2)&&isObject$e(document$2.createElement),documentCreateElement$3=function(S){return EXISTS$3?document$2.createElement(S):{}},DESCRIPTORS$j=descriptors$1,fails$q=fails$v,createElement$1=documentCreateElement$3,ie8DomDefine$1=!DESCRIPTORS$j&&!fails$q(function(){return Object.defineProperty(createElement$1("div"),"a",{get:function(){return 7}}).a!==7}),DESCRIPTORS$i=descriptors$1,call$7=functionCall,propertyIsEnumerableModule$2=objectPropertyIsEnumerable$1,createPropertyDescriptor$7=createPropertyDescriptor$8,toIndexedObject$d=toIndexedObject$e,toPropertyKey$7=toPropertyKey$8,hasOwn$j=hasOwnProperty_1$1,IE8_DOM_DEFINE$3=ie8DomDefine$1,$getOwnPropertyDescriptor$3=Object.getOwnPropertyDescriptor;objectGetOwnPropertyDescriptor$1.f=DESCRIPTORS$i?$getOwnPropertyDescriptor$3:function S(C,R){if(C=toIndexedObject$d(C),R=toPropertyKey$7(R),IE8_DOM_DEFINE$3)try{return $getOwnPropertyDescriptor$3(C,R)}catch{}if(hasOwn$j(C,R))return createPropertyDescriptor$7(!call$7(propertyIsEnumerableModule$2.f,C,R),C[R])};var fails$p=fails$v,isCallable$n=isCallable$t,replacement$1=/#|\.prototype\./,isForced$3=function(S,C){var R=data$1[normalize$2(S)];return R===POLYFILL$1?!0:R===NATIVE$1?!1:isCallable$n(C)?fails$p(C):!!C},normalize$2=isForced$3.normalize=function(S){return String(S).replace(replacement$1,".").toLowerCase()},data$1=isForced$3.data={},NATIVE$1=isForced$3.NATIVE="N",POLYFILL$1=isForced$3.POLYFILL="P",isForced_1$1=isForced$3,uncurryThis$f=functionUncurryThisClause,aCallable$3=aCallable$5,NATIVE_BIND=functionBindNative,bind$3=uncurryThis$f(uncurryThis$f.bind),functionBindContext=function(S,C){return aCallable$3(S),C===void 0?S:NATIVE_BIND?bind$3(S,C):function(){return S.apply(C,arguments)}},objectDefineProperty$1={},DESCRIPTORS$h=descriptors$1,fails$o=fails$v,v8PrototypeDefineBug=DESCRIPTORS$h&&fails$o(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),isObject$d=isObject$h,$String$2=String,$TypeError$6=TypeError,anObject$h=function(S){if(isObject$d(S))return S;throw new $TypeError$6($String$2(S)+" is not an object")},DESCRIPTORS$g=descriptors$1,IE8_DOM_DEFINE$2=ie8DomDefine$1,V8_PROTOTYPE_DEFINE_BUG$1=v8PrototypeDefineBug,anObject$g=anObject$h,toPropertyKey$6=toPropertyKey$8,$TypeError$5=TypeError,$defineProperty$2=Object.defineProperty,$getOwnPropertyDescriptor$2=Object.getOwnPropertyDescriptor,ENUMERABLE="enumerable",CONFIGURABLE$2="configurable",WRITABLE="writable";objectDefineProperty$1.f=DESCRIPTORS$g?V8_PROTOTYPE_DEFINE_BUG$1?function S(C,R,O){if(anObject$g(C),R=toPropertyKey$6(R),anObject$g(O),typeof C=="function"&&R==="prototype"&&"value"in O&&WRITABLE in O&&!O[WRITABLE]){var I=$getOwnPropertyDescriptor$2(C,R);I&&I[WRITABLE]&&(C[R]=O.value,O={configurable:CONFIGURABLE$2 in O?O[CONFIGURABLE$2]:I[CONFIGURABLE$2],enumerable:ENUMERABLE in O?O[ENUMERABLE]:I[ENUMERABLE],writable:!1})}return $defineProperty$2(C,R,O)}:$defineProperty$2:function S(C,R,O){if(anObject$g(C),R=toPropertyKey$6(R),anObject$g(O),IE8_DOM_DEFINE$2)try{return $defineProperty$2(C,R,O)}catch{}if("get"in O||"set"in O)throw new $TypeError$5("Accessors not supported");return"value"in O&&(C[R]=O.value),C};var DESCRIPTORS$f=descriptors$1,definePropertyModule$6=objectDefineProperty$1,createPropertyDescriptor$6=createPropertyDescriptor$8,createNonEnumerableProperty$9=DESCRIPTORS$f?function(S,C,R){return definePropertyModule$6.f(S,C,createPropertyDescriptor$6(1,R))}:function(S,C,R){return S[C]=R,S},global$p=global$x,apply$2=functionApply,uncurryThis$e=functionUncurryThisClause,isCallable$m=isCallable$t,getOwnPropertyDescriptor$8=objectGetOwnPropertyDescriptor$1.f,isForced$2=isForced_1$1,path$f=path$h,bind$2=functionBindContext,createNonEnumerableProperty$8=createNonEnumerableProperty$9,hasOwn$i=hasOwnProperty_1$1,wrapConstructor=function(S){var C=function(R,O,I){if(this instanceof C){switch(arguments.length){case 0:return new S;case 1:return new S(R);case 2:return new S(R,O)}return new S(R,O,I)}return apply$2(S,this,arguments)};return C.prototype=S.prototype,C},_export$1=function(S,C){var R=S.target,O=S.global,I=S.stat,N=S.proto,L=O?global$p:I?global$p[R]:global$p[R]&&global$p[R].prototype,B=O?path$f:path$f[R]||createNonEnumerableProperty$8(path$f,R,{})[R],j=B.prototype,F,V,K,W,X,J,oe,pe,me;for(W in C)F=isForced$2(O?W:R+(I?".":"#")+W,S.forced),V=!F&&L&&hasOwn$i(L,W),J=B[W],V&&(S.dontCallGetSet?(me=getOwnPropertyDescriptor$8(L,W),oe=me&&me.value):oe=L[W]),X=V&&oe?oe:C[W],!(!F&&!N&&typeof J==typeof X)&&(S.bind&&V?pe=bind$2(X,global$p):S.wrap&&V?pe=wrapConstructor(X):N&&isCallable$m(X)?pe=uncurryThis$e(X):pe=X,(S.sham||X&&X.sham||J&&J.sham)&&createNonEnumerableProperty$8(pe,"sham",!0),createNonEnumerableProperty$8(B,W,pe),N&&(K=R+"Prototype",hasOwn$i(path$f,K)||createNonEnumerableProperty$8(path$f,K,{}),createNonEnumerableProperty$8(path$f[K],W,X),S.real&&j&&(F||!j[W])&&createNonEnumerableProperty$8(j,W,X)))},classof$d=classofRaw$4,isArray$f=Array.isArray||function S(C){return classof$d(C)==="Array"},$$s=_export$1,isArray$e=isArray$f;$$s({target:"Array",stat:!0},{isArray:isArray$e});var path$e=path$h,isArray$d=path$e.Array.isArray,parent$C=isArray$d,isArray$c=parent$C,parent$B=isArray$c,isArray$b=parent$B,parent$A=isArray$b,isArray$a=parent$A,isArray$9=isArray$a;const _Array$isArray$1=getDefaultExportFromCjs(isArray$9);function _arrayWithHoles$d(S){if(_Array$isArray$1(S))return S}var ceil$1=Math.ceil,floor$2=Math.floor,mathTrunc=Math.trunc||function S(C){var R=+C;return(R>0?floor$2:ceil$1)(R)},trunc=mathTrunc,toIntegerOrInfinity$9=function(S){var C=+S;return C!==C||C===0?0:trunc(C)},toIntegerOrInfinity$8=toIntegerOrInfinity$9,min$6=Math.min,toLength$4=function(S){var C=toIntegerOrInfinity$8(S);return C>0?min$6(C,9007199254740991):0},toLength$3=toLength$4,lengthOfArrayLike$9=function(S){return toLength$3(S.length)},$TypeError$4=TypeError,MAX_SAFE_INTEGER$1=9007199254740991,doesNotExceedSafeInteger$3=function(S){if(S>MAX_SAFE_INTEGER$1)throw $TypeError$4("Maximum allowed index exceeded");return S},toPropertyKey$5=toPropertyKey$8,definePropertyModule$5=objectDefineProperty$1,createPropertyDescriptor$5=createPropertyDescriptor$8,createProperty$5=function(S,C,R){var O=toPropertyKey$5(C);O in S?definePropertyModule$5.f(S,O,createPropertyDescriptor$5(0,R)):S[O]=R},wellKnownSymbol$m=wellKnownSymbol$o,TO_STRING_TAG$4=wellKnownSymbol$m("toStringTag"),test$1={};test$1[TO_STRING_TAG$4]="z";var toStringTagSupport$1=String(test$1)==="[object z]",TO_STRING_TAG_SUPPORT$5=toStringTagSupport$1,isCallable$l=isCallable$t,classofRaw$2=classofRaw$4,wellKnownSymbol$l=wellKnownSymbol$o,TO_STRING_TAG$3=wellKnownSymbol$l("toStringTag"),$Object$1=Object,CORRECT_ARGUMENTS$1=classofRaw$2(function(){return arguments}())==="Arguments",tryGet$1=function(S,C){try{return S[C]}catch{}},classof$c=TO_STRING_TAG_SUPPORT$5?classofRaw$2:function(S){var C,R,O;return S===void 0?"Undefined":S===null?"Null":typeof(R=tryGet$1(C=$Object$1(S),TO_STRING_TAG$3))=="string"?R:CORRECT_ARGUMENTS$1?classofRaw$2(C):(O=classofRaw$2(C))==="Object"&&isCallable$l(C.callee)?"Arguments":O},uncurryThis$d=functionUncurryThis,isCallable$k=isCallable$t,store$5=sharedStore$1,functionToString$1=uncurryThis$d(Function.toString);isCallable$k(store$5.inspectSource)||(store$5.inspectSource=function(S){return functionToString$1(S)});var inspectSource$4=store$5.inspectSource,uncurryThis$c=functionUncurryThis,fails$n=fails$v,isCallable$j=isCallable$t,classof$b=classof$c,getBuiltIn$d=getBuiltIn$f,inspectSource$3=inspectSource$4,noop$1=function(){},construct=getBuiltIn$d("Reflect","construct"),constructorRegExp=/^\s*(?:class|function)\b/,exec$2=uncurryThis$c(constructorRegExp.exec),INCORRECT_TO_STRING=!constructorRegExp.test(noop$1),isConstructorModern=function S(C){if(!isCallable$j(C))return!1;try{return construct(noop$1,[],C),!0}catch{return!1}},isConstructorLegacy=function S(C){if(!isCallable$j(C))return!1;switch(classof$b(C)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return INCORRECT_TO_STRING||!!exec$2(constructorRegExp,inspectSource$3(C))}catch{return!0}};isConstructorLegacy.sham=!0;var isConstructor$3=!construct||fails$n(function(){var S;return isConstructorModern(isConstructorModern.call)||!isConstructorModern(Object)||!isConstructorModern(function(){S=!0})||S})?isConstructorLegacy:isConstructorModern,isArray$8=isArray$f,isConstructor$2=isConstructor$3,isObject$c=isObject$h,wellKnownSymbol$k=wellKnownSymbol$o,SPECIES$3=wellKnownSymbol$k("species"),$Array$2=Array,arraySpeciesConstructor$1=function(S){var C;return isArray$8(S)&&(C=S.constructor,isConstructor$2(C)&&(C===$Array$2||isArray$8(C.prototype))?C=void 0:isObject$c(C)&&(C=C[SPECIES$3],C===null&&(C=void 0))),C===void 0?$Array$2:C},arraySpeciesConstructor=arraySpeciesConstructor$1,arraySpeciesCreate$3=function(S,C){return new(arraySpeciesConstructor(S))(C===0?0:C)},fails$m=fails$v,wellKnownSymbol$j=wellKnownSymbol$o,V8_VERSION$2=engineV8Version$1,SPECIES$2=wellKnownSymbol$j("species"),arrayMethodHasSpeciesSupport$4=function(S){return V8_VERSION$2>=51||!fails$m(function(){var C=[],R=C.constructor={};return R[SPECIES$2]=function(){return{foo:1}},C[S](Boolean).foo!==1})},$$r=_export$1,fails$l=fails$v,isArray$7=isArray$f,isObject$b=isObject$h,toObject$a=toObject$c,lengthOfArrayLike$8=lengthOfArrayLike$9,doesNotExceedSafeInteger$2=doesNotExceedSafeInteger$3,createProperty$4=createProperty$5,arraySpeciesCreate$2=arraySpeciesCreate$3,arrayMethodHasSpeciesSupport$3=arrayMethodHasSpeciesSupport$4,wellKnownSymbol$i=wellKnownSymbol$o,V8_VERSION$1=engineV8Version$1,IS_CONCAT_SPREADABLE=wellKnownSymbol$i("isConcatSpreadable"),IS_CONCAT_SPREADABLE_SUPPORT=V8_VERSION$1>=51||!fails$l(function(){var S=[];return S[IS_CONCAT_SPREADABLE]=!1,S.concat()[0]!==S}),isConcatSpreadable=function(S){if(!isObject$b(S))return!1;var C=S[IS_CONCAT_SPREADABLE];return C!==void 0?!!C:isArray$7(S)},FORCED$4=!IS_CONCAT_SPREADABLE_SUPPORT||!arrayMethodHasSpeciesSupport$3("concat");$$r({target:"Array",proto:!0,arity:1,forced:FORCED$4},{concat:function S(C){var R=toObject$a(this),O=arraySpeciesCreate$2(R,0),I=0,N,L,B,j,F;for(N=-1,B=arguments.length;NL;)if(B=I[L++],B!==B)return!0}else for(;N>L;L++)if((S||L in I)&&I[L]===R)return S||L||0;return!S&&-1}},arrayIncludes$1={includes:createMethod$4(!0),indexOf:createMethod$4(!1)},hiddenKeys$a={},uncurryThis$b=functionUncurryThis,hasOwn$h=hasOwnProperty_1$1,toIndexedObject$b=toIndexedObject$e,indexOf$5=arrayIncludes$1.indexOf,hiddenKeys$9=hiddenKeys$a,push$9=uncurryThis$b([].push),objectKeysInternal$1=function(S,C){var R=toIndexedObject$b(S),O=0,I=[],N;for(N in R)!hasOwn$h(hiddenKeys$9,N)&&hasOwn$h(R,N)&&push$9(I,N);for(;C.length>O;)hasOwn$h(R,N=C[O++])&&(~indexOf$5(I,N)||push$9(I,N));return I},enumBugKeys$7=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],internalObjectKeys$3=objectKeysInternal$1,enumBugKeys$6=enumBugKeys$7,objectKeys$4=Object.keys||function S(C){return internalObjectKeys$3(C,enumBugKeys$6)},DESCRIPTORS$e=descriptors$1,V8_PROTOTYPE_DEFINE_BUG=v8PrototypeDefineBug,definePropertyModule$4=objectDefineProperty$1,anObject$f=anObject$h,toIndexedObject$a=toIndexedObject$e,objectKeys$3=objectKeys$4;objectDefineProperties$1.f=DESCRIPTORS$e&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function S(C,R){anObject$f(C);for(var O=toIndexedObject$a(R),I=objectKeys$3(R),N=I.length,L=0,B;N>L;)definePropertyModule$4.f(C,B=I[L++],O[B]);return C};var getBuiltIn$c=getBuiltIn$f,html$3=getBuiltIn$c("document","documentElement"),shared$a=sharedExports$1,uid$4=uid$6,keys$5=shared$a("keys"),sharedKey$7=function(S){return keys$5[S]||(keys$5[S]=uid$4(S))},anObject$e=anObject$h,definePropertiesModule$1=objectDefineProperties$1,enumBugKeys$5=enumBugKeys$7,hiddenKeys$8=hiddenKeys$a,html$2=html$3,documentCreateElement$2=documentCreateElement$3,sharedKey$6=sharedKey$7,GT$1=">",LT$1="<",PROTOTYPE$2="prototype",SCRIPT$1="script",IE_PROTO$2=sharedKey$6("IE_PROTO"),EmptyConstructor$1=function(){},scriptTag$1=function(S){return LT$1+SCRIPT$1+GT$1+S+LT$1+"/"+SCRIPT$1+GT$1},NullProtoObjectViaActiveX$1=function(S){S.write(scriptTag$1("")),S.close();var C=S.parentWindow.Object;return S=null,C},NullProtoObjectViaIFrame$1=function(){var S=documentCreateElement$2("iframe"),C="java"+SCRIPT$1+":",R;return S.style.display="none",html$2.appendChild(S),S.src=String(C),R=S.contentWindow.document,R.open(),R.write(scriptTag$1("document.F=Object")),R.close(),R.F},activeXDocument$1,NullProtoObject$1=function(){try{activeXDocument$1=new ActiveXObject("htmlfile")}catch{}NullProtoObject$1=typeof document<"u"?document.domain&&activeXDocument$1?NullProtoObjectViaActiveX$1(activeXDocument$1):NullProtoObjectViaIFrame$1():NullProtoObjectViaActiveX$1(activeXDocument$1);for(var S=enumBugKeys$5.length;S--;)delete NullProtoObject$1[PROTOTYPE$2][enumBugKeys$5[S]];return NullProtoObject$1()};hiddenKeys$8[IE_PROTO$2]=!0;var objectCreate$1=Object.create||function S(C,R){var O;return C!==null?(EmptyConstructor$1[PROTOTYPE$2]=anObject$e(C),O=new EmptyConstructor$1,EmptyConstructor$1[PROTOTYPE$2]=null,O[IE_PROTO$2]=C):O=NullProtoObject$1(),R===void 0?O:definePropertiesModule$1.f(O,R)},objectGetOwnPropertyNames$1={},internalObjectKeys$2=objectKeysInternal$1,enumBugKeys$4=enumBugKeys$7,hiddenKeys$7=enumBugKeys$4.concat("length","prototype");objectGetOwnPropertyNames$1.f=Object.getOwnPropertyNames||function S(C){return internalObjectKeys$2(C,hiddenKeys$7)};var objectGetOwnPropertyNamesExternal={},uncurryThis$a=functionUncurryThis,arraySlice$3=uncurryThis$a([].slice),classof$9=classofRaw$4,toIndexedObject$9=toIndexedObject$e,$getOwnPropertyNames$1=objectGetOwnPropertyNames$1.f,arraySlice$2=arraySlice$3,windowNames=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],getWindowNames=function(S){try{return $getOwnPropertyNames$1(S)}catch{return arraySlice$2(windowNames)}};objectGetOwnPropertyNamesExternal.f=function S(C){return windowNames&&classof$9(C)==="Window"?getWindowNames(C):$getOwnPropertyNames$1(toIndexedObject$9(C))};var objectGetOwnPropertySymbols$1={};objectGetOwnPropertySymbols$1.f=Object.getOwnPropertySymbols;var createNonEnumerableProperty$7=createNonEnumerableProperty$9,defineBuiltIn$4=function(S,C,R,O){return O&&O.enumerable?S[C]=R:createNonEnumerableProperty$7(S,C,R),S},defineProperty$c=objectDefineProperty$1,defineBuiltInAccessor$1=function(S,C,R){return defineProperty$c.f(S,C,R)},wellKnownSymbolWrapped={},wellKnownSymbol$h=wellKnownSymbol$o;wellKnownSymbolWrapped.f=wellKnownSymbol$h;var path$d=path$h,hasOwn$g=hasOwnProperty_1$1,wrappedWellKnownSymbolModule$1=wellKnownSymbolWrapped,defineProperty$b=objectDefineProperty$1.f,wellKnownSymbolDefine=function(S){var C=path$d.Symbol||(path$d.Symbol={});hasOwn$g(C,S)||defineProperty$b(C,S,{value:wrappedWellKnownSymbolModule$1.f(S)})},call$6=functionCall,getBuiltIn$b=getBuiltIn$f,wellKnownSymbol$g=wellKnownSymbol$o,defineBuiltIn$3=defineBuiltIn$4,symbolDefineToPrimitive=function(){var S=getBuiltIn$b("Symbol"),C=S&&S.prototype,R=C&&C.valueOf,O=wellKnownSymbol$g("toPrimitive");C&&!C[O]&&defineBuiltIn$3(C,O,function(I){return call$6(R,this)},{arity:1})},TO_STRING_TAG_SUPPORT$4=toStringTagSupport$1,classof$8=classof$c,objectToString$1=TO_STRING_TAG_SUPPORT$4?{}.toString:function S(){return"[object "+classof$8(this)+"]"},TO_STRING_TAG_SUPPORT$3=toStringTagSupport$1,defineProperty$a=objectDefineProperty$1.f,createNonEnumerableProperty$6=createNonEnumerableProperty$9,hasOwn$f=hasOwnProperty_1$1,toString$c=objectToString$1,wellKnownSymbol$f=wellKnownSymbol$o,TO_STRING_TAG$2=wellKnownSymbol$f("toStringTag"),setToStringTag$6=function(S,C,R,O){var I=R?S:S&&S.prototype;I&&(hasOwn$f(I,TO_STRING_TAG$2)||defineProperty$a(I,TO_STRING_TAG$2,{configurable:!0,value:C}),O&&!TO_STRING_TAG_SUPPORT$3&&createNonEnumerableProperty$6(I,"toString",toString$c))},global$o=global$x,isCallable$i=isCallable$t,WeakMap$4=global$o.WeakMap,weakMapBasicDetection=isCallable$i(WeakMap$4)&&/native code/.test(String(WeakMap$4)),NATIVE_WEAK_MAP$1=weakMapBasicDetection,global$n=global$x,isObject$a=isObject$h,createNonEnumerableProperty$5=createNonEnumerableProperty$9,hasOwn$e=hasOwnProperty_1$1,shared$9=sharedStore$1,sharedKey$5=sharedKey$7,hiddenKeys$6=hiddenKeys$a,OBJECT_ALREADY_INITIALIZED$1="Object already initialized",TypeError$2=global$n.TypeError,WeakMap$3=global$n.WeakMap,set$1,get$1,has$1,enforce$1=function(S){return has$1(S)?get$1(S):set$1(S,{})},getterFor$1=function(S){return function(C){var R;if(!isObject$a(C)||(R=get$1(C)).type!==S)throw new TypeError$2("Incompatible receiver, "+S+" required");return R}};if(NATIVE_WEAK_MAP$1||shared$9.state){var store$4=shared$9.state||(shared$9.state=new WeakMap$3);store$4.get=store$4.get,store$4.has=store$4.has,store$4.set=store$4.set,set$1=function(S,C){if(store$4.has(S))throw new TypeError$2(OBJECT_ALREADY_INITIALIZED$1);return C.facade=S,store$4.set(S,C),C},get$1=function(S){return store$4.get(S)||{}},has$1=function(S){return store$4.has(S)}}else{var STATE$1=sharedKey$5("state");hiddenKeys$6[STATE$1]=!0,set$1=function(S,C){if(hasOwn$e(S,STATE$1))throw new TypeError$2(OBJECT_ALREADY_INITIALIZED$1);return C.facade=S,createNonEnumerableProperty$5(S,STATE$1,C),C},get$1=function(S){return hasOwn$e(S,STATE$1)?S[STATE$1]:{}},has$1=function(S){return hasOwn$e(S,STATE$1)}}var internalState$1={set:set$1,get:get$1,has:has$1,enforce:enforce$1,getterFor:getterFor$1},bind$1=functionBindContext,uncurryThis$9=functionUncurryThis,IndexedObject$1=indexedObject$1,toObject$9=toObject$c,lengthOfArrayLike$6=lengthOfArrayLike$9,arraySpeciesCreate$1=arraySpeciesCreate$3,push$8=uncurryThis$9([].push),createMethod$3=function(S){var C=S===1,R=S===2,O=S===3,I=S===4,N=S===6,L=S===7,B=S===5||N;return function(j,F,V,K){for(var W=toObject$9(j),X=IndexedObject$1(W),J=lengthOfArrayLike$6(X),oe=bind$1(F,V),pe=0,me=K||arraySpeciesCreate$1,xe=C?me(j,J):R||L?me(j,0):void 0,Ae,ge;J>pe;pe++)if((B||pe in X)&&(Ae=X[pe],ge=oe(Ae,pe,W),S))if(C)xe[pe]=ge;else if(ge)switch(S){case 3:return!0;case 5:return Ae;case 6:return pe;case 2:push$8(xe,Ae)}else switch(S){case 4:return!1;case 7:push$8(xe,Ae)}return N?-1:O||I?I:xe}},arrayIteration={forEach:createMethod$3(0),map:createMethod$3(1),filter:createMethod$3(2),some:createMethod$3(3),every:createMethod$3(4),find:createMethod$3(5),findIndex:createMethod$3(6),filterReject:createMethod$3(7)},$$q=_export$1,global$m=global$x,call$5=functionCall,uncurryThis$8=functionUncurryThis,DESCRIPTORS$d=descriptors$1,NATIVE_SYMBOL$5=symbolConstructorDetection,fails$k=fails$v,hasOwn$d=hasOwnProperty_1$1,isPrototypeOf$7=objectIsPrototypeOf,anObject$d=anObject$h,toIndexedObject$8=toIndexedObject$e,toPropertyKey$4=toPropertyKey$8,$toString$1=toString$d,createPropertyDescriptor$4=createPropertyDescriptor$8,nativeObjectCreate=objectCreate$1,objectKeys$2=objectKeys$4,getOwnPropertyNamesModule$2=objectGetOwnPropertyNames$1,getOwnPropertyNamesExternal=objectGetOwnPropertyNamesExternal,getOwnPropertySymbolsModule$3=objectGetOwnPropertySymbols$1,getOwnPropertyDescriptorModule$2=objectGetOwnPropertyDescriptor$1,definePropertyModule$3=objectDefineProperty$1,definePropertiesModule=objectDefineProperties$1,propertyIsEnumerableModule$1=objectPropertyIsEnumerable$1,defineBuiltIn$2=defineBuiltIn$4,defineBuiltInAccessor=defineBuiltInAccessor$1,shared$8=sharedExports$1,sharedKey$4=sharedKey$7,hiddenKeys$5=hiddenKeys$a,uid$3=uid$6,wellKnownSymbol$e=wellKnownSymbol$o,wrappedWellKnownSymbolModule=wellKnownSymbolWrapped,defineWellKnownSymbol$l=wellKnownSymbolDefine,defineSymbolToPrimitive$1=symbolDefineToPrimitive,setToStringTag$5=setToStringTag$6,InternalStateModule$3=internalState$1,$forEach$1=arrayIteration.forEach,HIDDEN=sharedKey$4("hidden"),SYMBOL="Symbol",PROTOTYPE$1="prototype",setInternalState$2=InternalStateModule$3.set,getInternalState$4=InternalStateModule$3.getterFor(SYMBOL),ObjectPrototype$1=Object[PROTOTYPE$1],$Symbol=global$m.Symbol,SymbolPrototype=$Symbol&&$Symbol[PROTOTYPE$1],RangeError$1=global$m.RangeError,TypeError$1=global$m.TypeError,QObject=global$m.QObject,nativeGetOwnPropertyDescriptor$1=getOwnPropertyDescriptorModule$2.f,nativeDefineProperty=definePropertyModule$3.f,nativeGetOwnPropertyNames=getOwnPropertyNamesExternal.f,nativePropertyIsEnumerable=propertyIsEnumerableModule$1.f,push$7=uncurryThis$8([].push),AllSymbols=shared$8("symbols"),ObjectPrototypeSymbols=shared$8("op-symbols"),WellKnownSymbolsStore$2=shared$8("wks"),USE_SETTER=!QObject||!QObject[PROTOTYPE$1]||!QObject[PROTOTYPE$1].findChild,fallbackDefineProperty=function(S,C,R){var O=nativeGetOwnPropertyDescriptor$1(ObjectPrototype$1,C);O&&delete ObjectPrototype$1[C],nativeDefineProperty(S,C,R),O&&S!==ObjectPrototype$1&&nativeDefineProperty(ObjectPrototype$1,C,O)},setSymbolDescriptor=DESCRIPTORS$d&&fails$k(function(){return nativeObjectCreate(nativeDefineProperty({},"a",{get:function(){return nativeDefineProperty(this,"a",{value:7}).a}})).a!==7})?fallbackDefineProperty:nativeDefineProperty,wrap=function(S,C){var R=AllSymbols[S]=nativeObjectCreate(SymbolPrototype);return setInternalState$2(R,{type:SYMBOL,tag:S,description:C}),DESCRIPTORS$d||(R.description=C),R},$defineProperty$1=function S(C,R,O){C===ObjectPrototype$1&&$defineProperty$1(ObjectPrototypeSymbols,R,O),anObject$d(C);var I=toPropertyKey$4(R);return anObject$d(O),hasOwn$d(AllSymbols,I)?(O.enumerable?(hasOwn$d(C,HIDDEN)&&C[HIDDEN][I]&&(C[HIDDEN][I]=!1),O=nativeObjectCreate(O,{enumerable:createPropertyDescriptor$4(0,!1)})):(hasOwn$d(C,HIDDEN)||nativeDefineProperty(C,HIDDEN,createPropertyDescriptor$4(1,nativeObjectCreate(null))),C[HIDDEN][I]=!0),setSymbolDescriptor(C,I,O)):nativeDefineProperty(C,I,O)},$defineProperties=function S(C,R){anObject$d(C);var O=toIndexedObject$8(R),I=objectKeys$2(O).concat($getOwnPropertySymbols(O));return $forEach$1(I,function(N){(!DESCRIPTORS$d||call$5($propertyIsEnumerable$1,O,N))&&$defineProperty$1(C,N,O[N])}),C},$create=function S(C,R){return R===void 0?nativeObjectCreate(C):$defineProperties(nativeObjectCreate(C),R)},$propertyIsEnumerable$1=function S(C){var R=toPropertyKey$4(C),O=call$5(nativePropertyIsEnumerable,this,R);return this===ObjectPrototype$1&&hasOwn$d(AllSymbols,R)&&!hasOwn$d(ObjectPrototypeSymbols,R)?!1:O||!hasOwn$d(this,R)||!hasOwn$d(AllSymbols,R)||hasOwn$d(this,HIDDEN)&&this[HIDDEN][R]?O:!0},$getOwnPropertyDescriptor$1=function S(C,R){var O=toIndexedObject$8(C),I=toPropertyKey$4(R);if(!(O===ObjectPrototype$1&&hasOwn$d(AllSymbols,I)&&!hasOwn$d(ObjectPrototypeSymbols,I))){var N=nativeGetOwnPropertyDescriptor$1(O,I);return N&&hasOwn$d(AllSymbols,I)&&!(hasOwn$d(O,HIDDEN)&&O[HIDDEN][I])&&(N.enumerable=!0),N}},$getOwnPropertyNames=function S(C){var R=nativeGetOwnPropertyNames(toIndexedObject$8(C)),O=[];return $forEach$1(R,function(I){!hasOwn$d(AllSymbols,I)&&!hasOwn$d(hiddenKeys$5,I)&&push$7(O,I)}),O},$getOwnPropertySymbols=function(S){var C=S===ObjectPrototype$1,R=nativeGetOwnPropertyNames(C?ObjectPrototypeSymbols:toIndexedObject$8(S)),O=[];return $forEach$1(R,function(I){hasOwn$d(AllSymbols,I)&&(!C||hasOwn$d(ObjectPrototype$1,I))&&push$7(O,AllSymbols[I])}),O};NATIVE_SYMBOL$5||($Symbol=function(){if(isPrototypeOf$7(SymbolPrototype,this))throw new TypeError$1("Symbol is not a constructor");var C=!arguments.length||arguments[0]===void 0?void 0:$toString$1(arguments[0]),R=uid$3(C),O=function(I){var N=this===void 0?global$m:this;N===ObjectPrototype$1&&call$5(O,ObjectPrototypeSymbols,I),hasOwn$d(N,HIDDEN)&&hasOwn$d(N[HIDDEN],R)&&(N[HIDDEN][R]=!1);var L=createPropertyDescriptor$4(1,I);try{setSymbolDescriptor(N,R,L)}catch(B){if(!(B instanceof RangeError$1))throw B;fallbackDefineProperty(N,R,L)}};return DESCRIPTORS$d&&USE_SETTER&&setSymbolDescriptor(ObjectPrototype$1,R,{configurable:!0,set:O}),wrap(R,C)},SymbolPrototype=$Symbol[PROTOTYPE$1],defineBuiltIn$2(SymbolPrototype,"toString",function(){return getInternalState$4(this).tag}),defineBuiltIn$2($Symbol,"withoutSetter",function(S){return wrap(uid$3(S),S)}),propertyIsEnumerableModule$1.f=$propertyIsEnumerable$1,definePropertyModule$3.f=$defineProperty$1,definePropertiesModule.f=$defineProperties,getOwnPropertyDescriptorModule$2.f=$getOwnPropertyDescriptor$1,getOwnPropertyNamesModule$2.f=getOwnPropertyNamesExternal.f=$getOwnPropertyNames,getOwnPropertySymbolsModule$3.f=$getOwnPropertySymbols,wrappedWellKnownSymbolModule.f=function(S){return wrap(wellKnownSymbol$e(S),S)},DESCRIPTORS$d&&defineBuiltInAccessor(SymbolPrototype,"description",{configurable:!0,get:function(){return getInternalState$4(this).description}})),$$q({global:!0,constructor:!0,wrap:!0,forced:!NATIVE_SYMBOL$5,sham:!NATIVE_SYMBOL$5},{Symbol:$Symbol}),$forEach$1(objectKeys$2(WellKnownSymbolsStore$2),function(S){defineWellKnownSymbol$l(S)}),$$q({target:SYMBOL,stat:!0,forced:!NATIVE_SYMBOL$5},{useSetter:function(){USE_SETTER=!0},useSimple:function(){USE_SETTER=!1}}),$$q({target:"Object",stat:!0,forced:!NATIVE_SYMBOL$5,sham:!DESCRIPTORS$d},{create:$create,defineProperty:$defineProperty$1,defineProperties:$defineProperties,getOwnPropertyDescriptor:$getOwnPropertyDescriptor$1}),$$q({target:"Object",stat:!0,forced:!NATIVE_SYMBOL$5},{getOwnPropertyNames:$getOwnPropertyNames}),defineSymbolToPrimitive$1(),setToStringTag$5($Symbol,SYMBOL),hiddenKeys$5[HIDDEN]=!0;var NATIVE_SYMBOL$4=symbolConstructorDetection,symbolRegistryDetection=NATIVE_SYMBOL$4&&!!Symbol.for&&!!Symbol.keyFor,$$p=_export$1,getBuiltIn$a=getBuiltIn$f,hasOwn$c=hasOwnProperty_1$1,toString$b=toString$d,shared$7=sharedExports$1,NATIVE_SYMBOL_REGISTRY$1=symbolRegistryDetection,StringToSymbolRegistry=shared$7("string-to-symbol-registry"),SymbolToStringRegistry$1=shared$7("symbol-to-string-registry");$$p({target:"Symbol",stat:!0,forced:!NATIVE_SYMBOL_REGISTRY$1},{for:function(S){var C=toString$b(S);if(hasOwn$c(StringToSymbolRegistry,C))return StringToSymbolRegistry[C];var R=getBuiltIn$a("Symbol")(C);return StringToSymbolRegistry[C]=R,SymbolToStringRegistry$1[R]=C,R}});var $$o=_export$1,hasOwn$b=hasOwnProperty_1$1,isSymbol$5=isSymbol$8,tryToString$4=tryToString$6,shared$6=sharedExports$1,NATIVE_SYMBOL_REGISTRY=symbolRegistryDetection,SymbolToStringRegistry=shared$6("symbol-to-string-registry");$$o({target:"Symbol",stat:!0,forced:!NATIVE_SYMBOL_REGISTRY},{keyFor:function S(C){if(!isSymbol$5(C))throw new TypeError(tryToString$4(C)+" is not a symbol");if(hasOwn$b(SymbolToStringRegistry,C))return SymbolToStringRegistry[C]}});var uncurryThis$7=functionUncurryThis,isArray$6=isArray$f,isCallable$h=isCallable$t,classof$7=classofRaw$4,toString$a=toString$d,push$6=uncurryThis$7([].push),getJsonReplacerFunction=function(S){if(isCallable$h(S))return S;if(isArray$6(S)){for(var C=S.length,R=[],O=0;O=C.length)return S.target=void 0,createIterResultObject$1(void 0,!0);switch(S.kind){case"keys":return createIterResultObject$1(R,!1);case"values":return createIterResultObject$1(C[R],!1)}return createIterResultObject$1([R,C[R]],!1)},"values"),Iterators$3.Arguments=Iterators$3.Array;var domIterables={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},DOMIterables$1=domIterables,global$k=global$x,setToStringTag=setToStringTag$6,Iterators$2=iterators;for(var COLLECTION_NAME in DOMIterables$1)setToStringTag(global$k[COLLECTION_NAME],COLLECTION_NAME),Iterators$2[COLLECTION_NAME]=Iterators$2.Array;var parent$z=symbol$4,symbol$3=parent$z,wellKnownSymbol$b=wellKnownSymbol$o,defineProperty$9=objectDefineProperty$1.f,METADATA=wellKnownSymbol$b("metadata"),FunctionPrototype$2=Function.prototype;FunctionPrototype$2[METADATA]===void 0&&defineProperty$9(FunctionPrototype$2,METADATA,{value:null});var defineWellKnownSymbol$7=wellKnownSymbolDefine;defineWellKnownSymbol$7("asyncDispose");var defineWellKnownSymbol$6=wellKnownSymbolDefine;defineWellKnownSymbol$6("dispose");var defineWellKnownSymbol$5=wellKnownSymbolDefine;defineWellKnownSymbol$5("metadata");var parent$y=symbol$3,symbol$2=parent$y,getBuiltIn$7=getBuiltIn$f,uncurryThis$5=functionUncurryThis,Symbol$4=getBuiltIn$7("Symbol"),keyFor=Symbol$4.keyFor,thisSymbolValue$1=uncurryThis$5(Symbol$4.prototype.valueOf),symbolIsRegistered=Symbol$4.isRegisteredSymbol||function S(C){try{return keyFor(thisSymbolValue$1(C))!==void 0}catch{return!1}},$$k=_export$1,isRegisteredSymbol$1=symbolIsRegistered;$$k({target:"Symbol",stat:!0},{isRegisteredSymbol:isRegisteredSymbol$1});for(var shared$5=sharedExports$1,getBuiltIn$6=getBuiltIn$f,uncurryThis$4=functionUncurryThis,isSymbol$3=isSymbol$8,wellKnownSymbol$a=wellKnownSymbol$o,Symbol$3=getBuiltIn$6("Symbol"),$isWellKnownSymbol=Symbol$3.isWellKnownSymbol,getOwnPropertyNames$1=getBuiltIn$6("Object","getOwnPropertyNames"),thisSymbolValue=uncurryThis$4(Symbol$3.prototype.valueOf),WellKnownSymbolsStore$1=shared$5("wks"),i=0,symbolKeys=getOwnPropertyNames$1(Symbol$3),symbolKeysLength=symbolKeys.length;i=N?S?"":void 0:(L=charCodeAt(O,I),L<55296||L>56319||I+1===N||(B=charCodeAt(O,I+1))<56320||B>57343?S?charAt$2(O,I):L:S?stringSlice(O,I,I+2):(L-55296<<10)+(B-56320)+65536)}},stringMultibyte$1={codeAt:createMethod$2(!1),charAt:createMethod$2(!0)},charAt$1=stringMultibyte$1.charAt,toString$8=toString$d,InternalStateModule$1=internalState$1,defineIterator=iteratorDefine,createIterResultObject=createIterResultObject$2,STRING_ITERATOR="String Iterator",setInternalState=InternalStateModule$1.set,getInternalState$2=InternalStateModule$1.getterFor(STRING_ITERATOR);defineIterator(String,"String",function(S){setInternalState(this,{type:STRING_ITERATOR,string:toString$8(S),index:0})},function S(){var C=getInternalState$2(this),R=C.string,O=C.index,I;return O>=R.length?createIterResultObject(void 0,!0):(I=charAt$1(R,O),C.index+=I.length,createIterResultObject(I,!1))});var classof$6=classof$c,getMethod$4=getMethod$6,isNullOrUndefined=isNullOrUndefined$3,Iterators$1=iterators,wellKnownSymbol$9=wellKnownSymbol$o,ITERATOR$2=wellKnownSymbol$9("iterator"),getIteratorMethod$7=function(S){if(!isNullOrUndefined(S))return getMethod$4(S,ITERATOR$2)||getMethod$4(S,"@@iterator")||Iterators$1[classof$6(S)]},getIteratorMethod$6=getIteratorMethod$7,getIteratorMethod_1=getIteratorMethod$6,parent$w=getIteratorMethod_1,getIteratorMethod$5=parent$w,parent$v=getIteratorMethod$5,getIteratorMethod$4=parent$v,parent$u=getIteratorMethod$4,getIteratorMethod$3=parent$u,getIteratorMethod$2=getIteratorMethod$3;const _getIteratorMethod=getDefaultExportFromCjs(getIteratorMethod$2);var DESCRIPTORS$b=descriptors$1,isArray$5=isArray$f,$TypeError$3=TypeError,getOwnPropertyDescriptor$7=Object.getOwnPropertyDescriptor,SILENT_ON_NON_WRITABLE_LENGTH_SET=DESCRIPTORS$b&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(S){return S instanceof TypeError}}(),arraySetLength=SILENT_ON_NON_WRITABLE_LENGTH_SET?function(S,C){if(isArray$5(S)&&!getOwnPropertyDescriptor$7(S,"length").writable)throw new $TypeError$3("Cannot set read only .length");return S.length=C}:function(S,C){return S.length=C},$$g=_export$1,toObject$6=toObject$c,lengthOfArrayLike$5=lengthOfArrayLike$9,setArrayLength$1=arraySetLength,doesNotExceedSafeInteger$1=doesNotExceedSafeInteger$3,fails$f=fails$v,INCORRECT_TO_LENGTH=fails$f(function(){return[].push.call({length:4294967296},1)!==4294967297}),properErrorOnNonWritableLength=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(S){return S instanceof TypeError}},FORCED$2=INCORRECT_TO_LENGTH||!properErrorOnNonWritableLength();$$g({target:"Array",proto:!0,arity:1,forced:FORCED$2},{push:function S(C){var R=toObject$6(this),O=lengthOfArrayLike$5(R),I=arguments.length;doesNotExceedSafeInteger$1(O+I);for(var N=0;N1?arguments[1]:void 0,L=N!==void 0;L&&(N=bind(N,I>2?arguments[2]:void 0));var B=getIteratorMethod(R),j=0,F,V,K,W,X,J;if(B&&!(this===$Array&&isArrayIteratorMethod(B)))for(W=getIterator(R,B),X=W.next,V=O?new this:[];!(K=call(X,W)).done;j++)J=L?callWithSafeIterationClosing(W,N,[K.value,j],!0):K.value,createProperty$2(V,j,J);else for(F=lengthOfArrayLike$3(R),V=O?new this(F):$Array(F);F>j;j++)J=L?N(R[j],j):R[j],createProperty$2(V,j,J);return V.length=j,V},wellKnownSymbol$6=wellKnownSymbol$o,ITERATOR=wellKnownSymbol$6("iterator"),SAFE_CLOSING=!1;try{var called=0,iteratorWithReturn={next:function(){return{done:!!called++}},return:function(){SAFE_CLOSING=!0}};iteratorWithReturn[ITERATOR]=function(){return this},Array.from(iteratorWithReturn,function(){throw 2})}catch(S){}var checkCorrectnessOfIteration$1=function(S,C){try{if(!C&&!SAFE_CLOSING)return!1}catch{return!1}var R=!1;try{var O={};O[ITERATOR]=function(){return{next:function(){return{done:R=!0}}}},S(O)}catch{}return R},$$e=_export$1,from$5=arrayFrom,checkCorrectnessOfIteration=checkCorrectnessOfIteration$1,INCORRECT_ITERATION=!checkCorrectnessOfIteration(function(S){Array.from(S)});$$e({target:"Array",stat:!0,forced:INCORRECT_ITERATION},{from:from$5});var path$a=path$h,from$4=path$a.Array.from,parent$n=from$4,from$3=parent$n,parent$m=from$3,from$2=parent$m,parent$l=from$2,from$1=parent$l,from=from$1;const _Array$from=getDefaultExportFromCjs(from);function _arrayLikeToArray$k(S,C){(C==null||C>S.length)&&(C=S.length);for(var R=0,O=new Array(C);R1?L("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):L("Invalid argument supplied to oneOf, expected an array.")),B;function lt(ht,Ct,$t,Lt,Gt){for(var Pt=ht[Ct],Vt=0;Vt"u"||Qe===null)return""+Qe;var lt=Ue(Qe);if(lt==="object"){if(Qe instanceof Date)return"date";if(Qe instanceof RegExp)return"regexp"}return lt}function dt(Qe){var lt=et(Qe);switch(lt){case"array":case"object":return"an "+lt;case"boolean":case"date":case"regexp":return"a "+lt;default:return lt}}function gt(Qe){return!Qe.constructor||!Qe.constructor.name?X:Qe.constructor.name}return J.checkPropTypes=I,J.resetWarningCache=I.resetWarningCache,J.PropTypes=J,J},factoryWithTypeCheckers}var define_process_env_default$h={};if(define_process_env_default$h.NODE_ENV!=="production"){var ReactIs=reactIsExports,throwOnDirectAccess=!0;propTypes.exports=requireFactoryWithTypeCheckers()(ReactIs.isElement,throwOnDirectAccess)}else propTypes.exports=requireFactoryWithThrowingShims()();var propTypesExports=propTypes.exports;const PropTypes=getDefaultExportFromCjs(propTypesExports);var context$4=React.createContext({scrollTo:function S(){return 0},scrollToBottom:function S(){return 0},scrollToEnd:function S(){return 0},scrollToStart:function S(){return 0},scrollToTop:function S(){return 0}});context$4.displayName="ScrollToBottomFunctionContext";function useFunctionContext(){return reactExports.useContext(context$4)}function useScrollToEnd(){var S=useFunctionContext(),C=S.scrollToEnd;return C}var context$3=React.createContext({atBottom:!0,atEnd:!0,atStart:!1,atTop:!0,mode:"bottom"});context$3.displayName="ScrollToBottomState1Context";var context$2=React.createContext({animating:!1,animatingToEnd:!1,sticky:!0});context$2.displayName="ScrollToBottomState2Context";var context$1=React.createContext({animating:!1,animatingToEnd:!1,atBottom:!0,atEnd:!0,atStart:!1,atTop:!0,mode:"bottom",sticky:!0});context$1.displayName="ScrollToBottomStateContext";var stateContexts=[context$1,context$3,context$2];function useStateContext(S){return reactExports.useContext(stateContexts[S]||stateContexts[0])}function useSticky(){var S=useStateContext(2),C=S.sticky;return[C]}var context=React.createContext({offsetHeight:0,scrollHeight:0,setTarget:function S(){return 0},styleToClassName:function S(){return""}});context.displayName="ScrollToBottomInternalContext";function useInternalContext(){return reactExports.useContext(context)}function useStyleToClassName(){var S=useInternalContext(),C=S.styleToClassName;return C}var ROOT_STYLE$2={backgroundColor:"rgba(0, 0, 0, .2)",borderRadius:10,borderWidth:0,bottom:5,cursor:"pointer",height:20,outline:0,position:"absolute",right:20,width:20,"&:hover":{backgroundColor:"rgba(0, 0, 0, .4)"},"&:active":{backgroundColor:"rgba(0, 0, 0, .6)"}},AutoHideFollowButton=function S(C){var R=C.children,O=C.className,I=useSticky(),N=_slicedToArray$c(I,1),L=N[0],B=useStyleToClassName()(ROOT_STYLE$2),j=useScrollToEnd();return!L&&React.createElement("button",{className:classNames(B,(O||"")+""),onClick:j,type:"button"},R)};AutoHideFollowButton.defaultProps={children:void 0,className:""},AutoHideFollowButton.propTypes={children:PropTypes.any,className:PropTypes.string};var defineProperty$8={exports:{}},$$d=_export$1,DESCRIPTORS$a=descriptors$1,defineProperty$7=objectDefineProperty$1.f;$$d({target:"Object",stat:!0,forced:Object.defineProperty!==defineProperty$7,sham:!DESCRIPTORS$a},{defineProperty:defineProperty$7});var path$9=path$h,Object$3=path$9.Object,defineProperty$6=defineProperty$8.exports=function S(C,R,O){return Object$3.defineProperty(C,R,O)};Object$3.defineProperty.sham&&(defineProperty$6.sham=!0);var definePropertyExports=defineProperty$8.exports,parent$k=definePropertyExports,defineProperty$5=parent$k,parent$j=defineProperty$5,defineProperty$4=parent$j,parent$i=defineProperty$4,defineProperty$3=parent$i,defineProperty$2=defineProperty$3;const _Object$defineProperty$1=getDefaultExportFromCjs(defineProperty$2);var WrappedWellKnownSymbolModule$1=wellKnownSymbolWrapped,iterator$4=WrappedWellKnownSymbolModule$1.f("iterator"),parent$h=iterator$4,iterator$3=parent$h,parent$g=iterator$3,iterator$2=parent$g,parent$f=iterator$2,iterator$1=parent$f,iterator=iterator$1;const _Symbol$iterator=getDefaultExportFromCjs(iterator);function _typeof$D(S){"@babel/helpers - typeof";return _typeof$D=typeof _Symbol=="function"&&typeof _Symbol$iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof _Symbol=="function"&&C.constructor===_Symbol&&C!==_Symbol.prototype?"symbol":typeof C},_typeof$D(S)}var WrappedWellKnownSymbolModule=wellKnownSymbolWrapped,toPrimitive$7=WrappedWellKnownSymbolModule.f("toPrimitive"),parent$e=toPrimitive$7,toPrimitive$6=parent$e,parent$d=toPrimitive$6,toPrimitive$5=parent$d,parent$c=toPrimitive$5,toPrimitive$4=parent$c,toPrimitive$3=toPrimitive$4;const _Symbol$toPrimitive=getDefaultExportFromCjs(toPrimitive$3);function toPrimitive$2(S,C){if(_typeof$D(S)!="object"||!S)return S;var R=S[_Symbol$toPrimitive];if(R!==void 0){var O=R.call(S,C||"default");if(_typeof$D(O)!="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(C==="string"?String:Number)(S)}function toPropertyKey$3(S){var C=toPrimitive$2(S,"string");return _typeof$D(C)=="symbol"?C:String(C)}function _defineProperty$A(S,C,R){return C=toPropertyKey$3(C),C in S?_Object$defineProperty$1(S,C,{value:R,enumerable:!0,configurable:!0,writable:!0}):S[C]=R,S}function _arrayWithoutHoles$b(S){if(_Array$isArray$1(S))return _arrayLikeToArray$k(S)}function _iterableToArray$c(S){if(typeof _Symbol<"u"&&_getIteratorMethod(S)!=null||S["@@iterator"]!=null)return _Array$from(S)}function _nonIterableSpread$b(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _toConsumableArray$b(S){return _arrayWithoutHoles$b(S)||_iterableToArray$c(S)||_unsupportedIterableToArray$k(S)||_nonIterableSpread$b()}var check=function(S){return S&&S.Math==Math&&S},global$i=check(typeof globalThis=="object"&&globalThis)||check(typeof window=="object"&&window)||check(typeof self=="object"&&self)||check(typeof commonjsGlobal=="object"&&commonjsGlobal)||function(){return this}()||Function("return this")(),objectGetOwnPropertyDescriptor={},fails$e=function(S){try{return!!S()}catch{return!0}},fails$d=fails$e,descriptors=!fails$d(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7}),objectPropertyIsEnumerable={},$propertyIsEnumerable={}.propertyIsEnumerable,getOwnPropertyDescriptor$6=Object.getOwnPropertyDescriptor,NASHORN_BUG=getOwnPropertyDescriptor$6&&!$propertyIsEnumerable.call({1:2},1);objectPropertyIsEnumerable.f=NASHORN_BUG?function S(C){var R=getOwnPropertyDescriptor$6(this,C);return!!R&&R.enumerable}:$propertyIsEnumerable;var createPropertyDescriptor$2=function(S,C){return{enumerable:!(S&1),configurable:!(S&2),writable:!(S&4),value:C}},toString$7={}.toString,classofRaw$1=function(S){return toString$7.call(S).slice(8,-1)},fails$c=fails$e,classof$5=classofRaw$1,split="".split,indexedObject=fails$c(function(){return!Object("z").propertyIsEnumerable(0)})?function(S){return classof$5(S)=="String"?split.call(S,""):Object(S)}:Object,requireObjectCoercible$4=function(S){if(S==null)throw TypeError("Can't call method on "+S);return S},IndexedObject=indexedObject,requireObjectCoercible$3=requireObjectCoercible$4,toIndexedObject$5=function(S){return IndexedObject(requireObjectCoercible$3(S))},isCallable$d=function(S){return typeof S=="function"},isCallable$c=isCallable$d,isObject$7=function(S){return typeof S=="object"?S!==null:isCallable$c(S)},global$h=global$i,isCallable$b=isCallable$d,aFunction=function(S){return isCallable$b(S)?S:void 0},getBuiltIn$5=function(S,C){return arguments.length<2?aFunction(global$h[S]):global$h[S]&&global$h[S][C]},getBuiltIn$4=getBuiltIn$5,engineUserAgent=getBuiltIn$4("navigator","userAgent")||"",global$g=global$i,userAgent=engineUserAgent,process$1=global$g.process,Deno=global$g.Deno,versions=process$1&&process$1.versions||Deno&&Deno.version,v8=versions&&versions.v8,match,version;v8?(match=v8.split("."),version=match[0]<4?1:match[0]+match[1]):userAgent&&(match=userAgent.match(/Edge\/(\d+)/),(!match||match[1]>=74)&&(match=userAgent.match(/Chrome\/(\d+)/),match&&(version=match[1])));var engineV8Version=version&&+version,V8_VERSION=engineV8Version,fails$b=fails$e,nativeSymbol=!!Object.getOwnPropertySymbols&&!fails$b(function(){var S=Symbol();return!String(S)||!(Object(S)instanceof Symbol)||!Symbol.sham&&V8_VERSION&&V8_VERSION<41}),NATIVE_SYMBOL$1=nativeSymbol,useSymbolAsUid=NATIVE_SYMBOL$1&&!Symbol.sham&&typeof Symbol.iterator=="symbol",isCallable$a=isCallable$d,getBuiltIn$3=getBuiltIn$5,USE_SYMBOL_AS_UID$1=useSymbolAsUid,isSymbol$2=USE_SYMBOL_AS_UID$1?function(S){return typeof S=="symbol"}:function(S){var C=getBuiltIn$3("Symbol");return isCallable$a(C)&&Object(S)instanceof C},tryToString$2=function(S){try{return String(S)}catch{return"Object"}},isCallable$9=isCallable$d,tryToString$1=tryToString$2,aCallable$1=function(S){if(isCallable$9(S))return S;throw TypeError(tryToString$1(S)+" is not a function")},aCallable=aCallable$1,getMethod$2=function(S,C){var R=S[C];return R==null?void 0:aCallable(R)},isCallable$8=isCallable$d,isObject$6=isObject$7,ordinaryToPrimitive$1=function(S,C){var R,O;if(C==="string"&&isCallable$8(R=S.toString)&&!isObject$6(O=R.call(S))||isCallable$8(R=S.valueOf)&&!isObject$6(O=R.call(S))||C!=="string"&&isCallable$8(R=S.toString)&&!isObject$6(O=R.call(S)))return O;throw TypeError("Can't convert object to primitive value")},shared$4={exports:{}},global$f=global$i,setGlobal$3=function(S,C){try{Object.defineProperty(global$f,S,{value:C,configurable:!0,writable:!0})}catch{global$f[S]=C}return C},global$e=global$i,setGlobal$2=setGlobal$3,SHARED="__core-js_shared__",store$3=global$e[SHARED]||setGlobal$2(SHARED,{}),sharedStore=store$3,store$2=sharedStore;(shared$4.exports=function(S,C){return store$2[S]||(store$2[S]=C!==void 0?C:{})})("versions",[]).push({version:"3.18.3",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var sharedExports=shared$4.exports,requireObjectCoercible$2=requireObjectCoercible$4,toObject$4=function(S){return Object(requireObjectCoercible$2(S))},toObject$3=toObject$4,hasOwnProperty$1={}.hasOwnProperty,hasOwnProperty_1=Object.hasOwn||function S(C,R){return hasOwnProperty$1.call(toObject$3(C),R)},id=0,postfix=Math.random(),uid$2=function(S){return"Symbol("+String(S===void 0?"":S)+")_"+(++id+postfix).toString(36)},global$d=global$i,shared$3=sharedExports,hasOwn$8=hasOwnProperty_1,uid$1=uid$2,NATIVE_SYMBOL=nativeSymbol,USE_SYMBOL_AS_UID=useSymbolAsUid,WellKnownSymbolsStore=shared$3("wks"),Symbol$2=global$d.Symbol,createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol$2:Symbol$2&&Symbol$2.withoutSetter||uid$1,wellKnownSymbol$5=function(S){return(!hasOwn$8(WellKnownSymbolsStore,S)||!(NATIVE_SYMBOL||typeof WellKnownSymbolsStore[S]=="string"))&&(NATIVE_SYMBOL&&hasOwn$8(Symbol$2,S)?WellKnownSymbolsStore[S]=Symbol$2[S]:WellKnownSymbolsStore[S]=createWellKnownSymbol("Symbol."+S)),WellKnownSymbolsStore[S]},isObject$5=isObject$7,isSymbol$1=isSymbol$2,getMethod$1=getMethod$2,ordinaryToPrimitive=ordinaryToPrimitive$1,wellKnownSymbol$4=wellKnownSymbol$5,TO_PRIMITIVE=wellKnownSymbol$4("toPrimitive"),toPrimitive$1=function(S,C){if(!isObject$5(S)||isSymbol$1(S))return S;var R=getMethod$1(S,TO_PRIMITIVE),O;if(R){if(C===void 0&&(C="default"),O=R.call(S,C),!isObject$5(O)||isSymbol$1(O))return O;throw TypeError("Can't convert object to primitive value")}return C===void 0&&(C="number"),ordinaryToPrimitive(S,C)},toPrimitive=toPrimitive$1,isSymbol=isSymbol$2,toPropertyKey$2=function(S){var C=toPrimitive(S,"string");return isSymbol(C)?C:String(C)},global$c=global$i,isObject$4=isObject$7,document$1=global$c.document,EXISTS$1=isObject$4(document$1)&&isObject$4(document$1.createElement),documentCreateElement$1=function(S){return EXISTS$1?document$1.createElement(S):{}},DESCRIPTORS$9=descriptors,fails$a=fails$e,createElement=documentCreateElement$1,ie8DomDefine=!DESCRIPTORS$9&&!fails$a(function(){return Object.defineProperty(createElement("div"),"a",{get:function(){return 7}}).a!=7}),DESCRIPTORS$8=descriptors,propertyIsEnumerableModule=objectPropertyIsEnumerable,createPropertyDescriptor$1=createPropertyDescriptor$2,toIndexedObject$4=toIndexedObject$5,toPropertyKey$1=toPropertyKey$2,hasOwn$7=hasOwnProperty_1,IE8_DOM_DEFINE$1=ie8DomDefine,$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;objectGetOwnPropertyDescriptor.f=DESCRIPTORS$8?$getOwnPropertyDescriptor:function S(C,R){if(C=toIndexedObject$4(C),R=toPropertyKey$1(R),IE8_DOM_DEFINE$1)try{return $getOwnPropertyDescriptor(C,R)}catch{}if(hasOwn$7(C,R))return createPropertyDescriptor$1(!propertyIsEnumerableModule.f.call(C,R),C[R])};var objectDefineProperty={},isObject$3=isObject$7,anObject$9=function(S){if(isObject$3(S))return S;throw TypeError(String(S)+" is not an object")},DESCRIPTORS$7=descriptors,IE8_DOM_DEFINE=ie8DomDefine,anObject$8=anObject$9,toPropertyKey=toPropertyKey$2,$defineProperty=Object.defineProperty;objectDefineProperty.f=DESCRIPTORS$7?$defineProperty:function S(C,R,O){if(anObject$8(C),R=toPropertyKey(R),anObject$8(O),IE8_DOM_DEFINE)try{return $defineProperty(C,R,O)}catch{}if("get"in O||"set"in O)throw TypeError("Accessors not supported");return"value"in O&&(C[R]=O.value),C};var DESCRIPTORS$6=descriptors,definePropertyModule$2=objectDefineProperty,createPropertyDescriptor=createPropertyDescriptor$2,createNonEnumerableProperty$4=DESCRIPTORS$6?function(S,C,R){return definePropertyModule$2.f(S,C,createPropertyDescriptor(1,R))}:function(S,C,R){return S[C]=R,S},redefine$5={exports:{}},isCallable$7=isCallable$d,store$1=sharedStore,functionToString=Function.toString;isCallable$7(store$1.inspectSource)||(store$1.inspectSource=function(S){return functionToString.call(S)});var inspectSource$2=store$1.inspectSource,global$b=global$i,isCallable$6=isCallable$d,inspectSource$1=inspectSource$2,WeakMap$2=global$b.WeakMap,nativeWeakMap=isCallable$6(WeakMap$2)&&/native code/.test(inspectSource$1(WeakMap$2)),shared$2=sharedExports,uid=uid$2,keys$4=shared$2("keys"),sharedKey$2=function(S){return keys$4[S]||(keys$4[S]=uid(S))},hiddenKeys$4={},NATIVE_WEAK_MAP=nativeWeakMap,global$a=global$i,isObject$2=isObject$7,createNonEnumerableProperty$3=createNonEnumerableProperty$4,hasOwn$6=hasOwnProperty_1,shared$1=sharedStore,sharedKey$1=sharedKey$2,hiddenKeys$3=hiddenKeys$4,OBJECT_ALREADY_INITIALIZED="Object already initialized",WeakMap$1=global$a.WeakMap,set,get,has,enforce=function(S){return has(S)?get(S):set(S,{})},getterFor=function(S){return function(C){var R;if(!isObject$2(C)||(R=get(C)).type!==S)throw TypeError("Incompatible receiver, "+S+" required");return R}};if(NATIVE_WEAK_MAP||shared$1.state){var store=shared$1.state||(shared$1.state=new WeakMap$1),wmget=store.get,wmhas=store.has,wmset=store.set;set=function(S,C){if(wmhas.call(store,S))throw new TypeError(OBJECT_ALREADY_INITIALIZED);return C.facade=S,wmset.call(store,S,C),C},get=function(S){return wmget.call(store,S)||{}},has=function(S){return wmhas.call(store,S)}}else{var STATE=sharedKey$1("state");hiddenKeys$3[STATE]=!0,set=function(S,C){if(hasOwn$6(S,STATE))throw new TypeError(OBJECT_ALREADY_INITIALIZED);return C.facade=S,createNonEnumerableProperty$3(S,STATE,C),C},get=function(S){return hasOwn$6(S,STATE)?S[STATE]:{}},has=function(S){return hasOwn$6(S,STATE)}}var internalState={set,get,has,enforce,getterFor},DESCRIPTORS$5=descriptors,hasOwn$5=hasOwnProperty_1,FunctionPrototype$1=Function.prototype,getDescriptor=DESCRIPTORS$5&&Object.getOwnPropertyDescriptor,EXISTS=hasOwn$5(FunctionPrototype$1,"name"),PROPER=EXISTS&&(function S(){}).name==="something",CONFIGURABLE=EXISTS&&(!DESCRIPTORS$5||DESCRIPTORS$5&&getDescriptor(FunctionPrototype$1,"name").configurable),functionName={EXISTS,PROPER,CONFIGURABLE},global$9=global$i,isCallable$5=isCallable$d,hasOwn$4=hasOwnProperty_1,createNonEnumerableProperty$2=createNonEnumerableProperty$4,setGlobal$1=setGlobal$3,inspectSource=inspectSource$2,InternalStateModule=internalState,CONFIGURABLE_FUNCTION_NAME=functionName.CONFIGURABLE,getInternalState$1=InternalStateModule.get,enforceInternalState=InternalStateModule.enforce,TEMPLATE=String(String).split("String");(redefine$5.exports=function(S,C,R,O){var I=O?!!O.unsafe:!1,N=O?!!O.enumerable:!1,L=O?!!O.noTargetGet:!1,B=O&&O.name!==void 0?O.name:C,j;if(isCallable$5(R)&&(String(B).slice(0,7)==="Symbol("&&(B="["+String(B).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!hasOwn$4(R,"name")||CONFIGURABLE_FUNCTION_NAME&&R.name!==B)&&createNonEnumerableProperty$2(R,"name",B),j=enforceInternalState(R),j.source||(j.source=TEMPLATE.join(typeof B=="string"?B:""))),S===global$9){N?S[C]=R:setGlobal$1(C,R);return}else I?!L&&S[C]&&(N=!0):delete S[C];N?S[C]=R:createNonEnumerableProperty$2(S,C,R)})(Function.prototype,"toString",function S(){return isCallable$5(this)&&getInternalState$1(this).source||inspectSource(this)});var redefineExports=redefine$5.exports,objectGetOwnPropertyNames={},ceil=Math.ceil,floor$1=Math.floor,toIntegerOrInfinity$5=function(S){var C=+S;return C!==C||C===0?0:(C>0?floor$1:ceil)(C)},toIntegerOrInfinity$4=toIntegerOrInfinity$5,max$3=Math.max,min$4=Math.min,toAbsoluteIndex$2=function(S,C){var R=toIntegerOrInfinity$4(S);return R<0?max$3(R+C,0):min$4(R,C)},toIntegerOrInfinity$3=toIntegerOrInfinity$5,min$3=Math.min,toLength$2=function(S){return S>0?min$3(toIntegerOrInfinity$3(S),9007199254740991):0},toLength$1=toLength$2,lengthOfArrayLike$2=function(S){return toLength$1(S.length)},toIndexedObject$3=toIndexedObject$5,toAbsoluteIndex$1=toAbsoluteIndex$2,lengthOfArrayLike$1=lengthOfArrayLike$2,createMethod$1=function(S){return function(C,R,O){var I=toIndexedObject$3(C),N=lengthOfArrayLike$1(I),L=toAbsoluteIndex$1(O,N),B;if(S&&R!=R){for(;N>L;)if(B=I[L++],B!=B)return!0}else for(;N>L;L++)if((S||L in I)&&I[L]===R)return S||L||0;return!S&&-1}},arrayIncludes={includes:createMethod$1(!0),indexOf:createMethod$1(!1)},hasOwn$3=hasOwnProperty_1,toIndexedObject$2=toIndexedObject$5,indexOf$4=arrayIncludes.indexOf,hiddenKeys$2=hiddenKeys$4,objectKeysInternal=function(S,C){var R=toIndexedObject$2(S),O=0,I=[],N;for(N in R)!hasOwn$3(hiddenKeys$2,N)&&hasOwn$3(R,N)&&I.push(N);for(;C.length>O;)hasOwn$3(R,N=C[O++])&&(~indexOf$4(I,N)||I.push(N));return I},enumBugKeys$3=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],internalObjectKeys$1=objectKeysInternal,enumBugKeys$2=enumBugKeys$3,hiddenKeys$1=enumBugKeys$2.concat("length","prototype");objectGetOwnPropertyNames.f=Object.getOwnPropertyNames||function S(C){return internalObjectKeys$1(C,hiddenKeys$1)};var objectGetOwnPropertySymbols={};objectGetOwnPropertySymbols.f=Object.getOwnPropertySymbols;var getBuiltIn$2=getBuiltIn$5,getOwnPropertyNamesModule$1=objectGetOwnPropertyNames,getOwnPropertySymbolsModule$1=objectGetOwnPropertySymbols,anObject$7=anObject$9,ownKeys$C=getBuiltIn$2("Reflect","ownKeys")||function S(C){var R=getOwnPropertyNamesModule$1.f(anObject$7(C)),O=getOwnPropertySymbolsModule$1.f;return O?R.concat(O(C)):R},hasOwn$2=hasOwnProperty_1,ownKeys$B=ownKeys$C,getOwnPropertyDescriptorModule$1=objectGetOwnPropertyDescriptor,definePropertyModule$1=objectDefineProperty,copyConstructorProperties$1=function(S,C){for(var R=ownKeys$B(C),O=definePropertyModule$1.f,I=getOwnPropertyDescriptorModule$1.f,N=0;NN;)definePropertyModule.f(C,L=O[N++],R[L]);return C},getBuiltIn$1=getBuiltIn$5,html$1=getBuiltIn$1("document","documentElement"),anObject$4=anObject$9,defineProperties$5=objectDefineProperties,enumBugKeys=enumBugKeys$3,hiddenKeys=hiddenKeys$4,html=html$1,documentCreateElement=documentCreateElement$1,sharedKey=sharedKey$2,GT=">",LT="<",PROTOTYPE="prototype",SCRIPT="script",IE_PROTO=sharedKey("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(S){return LT+SCRIPT+GT+S+LT+"/"+SCRIPT+GT},NullProtoObjectViaActiveX=function(S){S.write(scriptTag("")),S.close();var C=S.parentWindow.Object;return S=null,C},NullProtoObjectViaIFrame=function(){var S=documentCreateElement("iframe"),C="java"+SCRIPT+":",R;return S.style.display="none",html.appendChild(S),S.src=String(C),R=S.contentWindow.document,R.open(),R.write(scriptTag("document.F=Object")),R.close(),R.F},activeXDocument,NullProtoObject=function(){try{activeXDocument=new ActiveXObject("htmlfile")}catch{}NullProtoObject=typeof document<"u"?document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame():NullProtoObjectViaActiveX(activeXDocument);for(var S=enumBugKeys.length;S--;)delete NullProtoObject[PROTOTYPE][enumBugKeys[S]];return NullProtoObject()};hiddenKeys[IE_PROTO]=!0;var objectCreate=Object.create||function S(C,R){var O;return C!==null?(EmptyConstructor[PROTOTYPE]=anObject$4(C),O=new EmptyConstructor,EmptyConstructor[PROTOTYPE]=null,O[IE_PROTO]=C):O=NullProtoObject(),R===void 0?O:defineProperties$5(O,R)},fails$7=fails$e,global$6=global$i,$RegExp$1=global$6.RegExp,regexpUnsupportedDotAll=fails$7(function(){var S=$RegExp$1(".","s");return!(S.dotAll&&S.exec(` -`)&&S.flags==="s")}),fails$6=fails$e,global$5=global$i,$RegExp=global$5.RegExp,regexpUnsupportedNcg=fails$6(function(){var S=$RegExp("(?b)","g");return S.exec("b").groups.a!=="b"||"b".replace(S,"$c")!=="bc"}),toString$5=toString$6,regexpFlags=regexpFlags$1,stickyHelpers=regexpStickyHelpers,shared=sharedExports,create=objectCreate,getInternalState=internalState.get,UNSUPPORTED_DOT_ALL=regexpUnsupportedDotAll,UNSUPPORTED_NCG=regexpUnsupportedNcg,nativeExec=RegExp.prototype.exec,nativeReplace=shared("native-string-replace",String.prototype.replace),patchedExec=nativeExec,UPDATES_LAST_INDEX_WRONG=function(){var S=/a/,C=/b*/g;return nativeExec.call(S,"a"),nativeExec.call(C,"a"),S.lastIndex!==0||C.lastIndex!==0}(),UNSUPPORTED_Y=stickyHelpers.UNSUPPORTED_Y||stickyHelpers.BROKEN_CARET,NPCG_INCLUDED=/()??/.exec("")[1]!==void 0,PATCH=UPDATES_LAST_INDEX_WRONG||NPCG_INCLUDED||UNSUPPORTED_Y||UNSUPPORTED_DOT_ALL||UNSUPPORTED_NCG;PATCH&&(patchedExec=function(C){var R=this,O=getInternalState(R),I=toString$5(C),N=O.raw,L,B,j,F,V,K,W;if(N)return N.lastIndex=R.lastIndex,L=patchedExec.call(N,I),R.lastIndex=N.lastIndex,L;var X=O.groups,J=UNSUPPORTED_Y&&R.sticky,oe=regexpFlags.call(R),pe=R.source,me=0,xe=I;if(J&&(oe=oe.replace("y",""),oe.indexOf("g")===-1&&(oe+="g"),xe=I.slice(R.lastIndex),R.lastIndex>0&&(!R.multiline||R.multiline&&I.charAt(R.lastIndex-1)!==` -`)&&(pe="(?: "+pe+")",xe=" "+xe,me++),B=new RegExp("^(?:"+pe+")",oe)),NPCG_INCLUDED&&(B=new RegExp("^"+pe+"$(?!\\s)",oe)),UPDATES_LAST_INDEX_WRONG&&(j=R.lastIndex),F=nativeExec.call(J?B:R,xe),J?F?(F.input=F.input.slice(me),F[0]=F[0].slice(me),F.index=R.lastIndex,R.lastIndex+=F[0].length):R.lastIndex=0:UPDATES_LAST_INDEX_WRONG&&F&&(R.lastIndex=R.global?F.index+F[0].length:j),NPCG_INCLUDED&&F&&F.length>1&&nativeReplace.call(F[0],B,function(){for(V=1;V=N?S?"":void 0:(L=O.charCodeAt(I),L<55296||L>56319||I+1===N||(B=O.charCodeAt(I+1))<56320||B>57343?S?O.charAt(I):L:S?O.slice(I,I+2):(L-55296<<10)+(B-56320)+65536)}},stringMultibyte={codeAt:createMethod(!1),charAt:createMethod(!0)},charAt=stringMultibyte.charAt,advanceStringIndex$1=function(S,C,R){return C+(R?charAt(S,C).length:1)},toObject$2=toObject$4,floor=Math.floor,replace="".replace,SUBSTITUTION_SYMBOLS=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,SUBSTITUTION_SYMBOLS_NO_NAMED=/\$([$&'`]|\d{1,2})/g,getSubstitution$1=function(S,C,R,O,I,N){var L=R+S.length,B=O.length,j=SUBSTITUTION_SYMBOLS_NO_NAMED;return I!==void 0&&(I=toObject$2(I),j=SUBSTITUTION_SYMBOLS),replace.call(N,j,function(F,V){var K;switch(V.charAt(0)){case"$":return"$";case"&":return S;case"`":return C.slice(0,R);case"'":return C.slice(L);case"<":K=I[V.slice(1,-1)];break;default:var W=+V;if(W===0)return F;if(W>B){var X=floor(W/10);return X===0?F:X<=B?O[X-1]===void 0?V.charAt(1):O[X-1]+V.charAt(1):F}K=O[W-1]}return K===void 0?"":K})},anObject$3=anObject$9,isCallable$2=isCallable$d,classof$2=classofRaw$1,regexpExec=regexpExec$2,regexpExecAbstract=function(S,C){var R=S.exec;if(isCallable$2(R)){var O=R.call(S,C);return O!==null&&anObject$3(O),O}if(classof$2(S)==="RegExp")return regexpExec.call(S,C);throw TypeError("RegExp#exec called on incompatible receiver")},fixRegExpWellKnownSymbolLogic=fixRegexpWellKnownSymbolLogic,fails$4=fails$e,anObject$2=anObject$9,isCallable$1=isCallable$d,toIntegerOrInfinity$1=toIntegerOrInfinity$5,toLength=toLength$2,toString$3=toString$6,requireObjectCoercible=requireObjectCoercible$4,advanceStringIndex=advanceStringIndex$1,getMethod=getMethod$2,getSubstitution=getSubstitution$1,regExpExec=regexpExecAbstract,wellKnownSymbol=wellKnownSymbol$5,REPLACE=wellKnownSymbol("replace"),max$2=Math.max,min$2=Math.min,maybeToString=function(S){return S===void 0?S:String(S)},REPLACE_KEEPS_$0=function(){return"a".replace(/./,"$0")==="$0"}(),REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE=function(){return/./[REPLACE]?/./[REPLACE]("a","$0")==="":!1}(),REPLACE_SUPPORTS_NAMED_GROUPS=!fails$4(function(){var S=/./;return S.exec=function(){var C=[];return C.groups={a:"7"},C},"".replace(S,"$")!=="7"});fixRegExpWellKnownSymbolLogic("replace",function(S,C,R){var O=REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE?"$":"$0";return[function(N,L){var B=requireObjectCoercible(this),j=N==null?void 0:getMethod(N,REPLACE);return j?j.call(N,B,L):C.call(toString$3(B),N,L)},function(I,N){var L=anObject$2(this),B=toString$3(I);if(typeof N=="string"&&N.indexOf(O)===-1&&N.indexOf("$<")===-1){var j=R(C,L,B,N);if(j.done)return j.value}var F=isCallable$1(N);F||(N=toString$3(N));var V=L.global;if(V){var K=L.unicode;L.lastIndex=0}for(var W=[];;){var X=regExpExec(L,B);if(X===null||(W.push(X),!V))break;var J=toString$3(X[0]);J===""&&(L.lastIndex=advanceStringIndex(B,toLength(L.lastIndex),K))}for(var oe="",pe=0,me=0;me=pe&&(oe+=B.slice(pe,Ae)+Be,pe=Ae+xe.length)}return oe+B.slice(pe)}]},!REPLACE_SUPPORTS_NAMED_GROUPS||!REPLACE_KEEPS_$0||REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);var engineIsBun=typeof Bun=="function"&&Bun&&typeof Bun.version=="string",$TypeError$1=TypeError,validateArgumentsLength$1=function(S,C){if(SR,L=isCallable(O)?O:Function$1(O),B=N?arraySlice(arguments,R):[],j=N?function(){apply(L,this,B)}:L;return C?S(j,I):S(j)}:S},$$b=_export$1,global$3=global$x,schedulersFix$1=schedulersFix$2,setInterval$3=schedulersFix$1(global$3.setInterval,!0);$$b({global:!0,bind:!0,forced:global$3.setInterval!==setInterval$3},{setInterval:setInterval$3});var $$a=_export$1,global$2=global$x,schedulersFix=schedulersFix$2,setTimeout$3=schedulersFix(global$2.setTimeout,!0);$$a({global:!0,bind:!0,forced:global$2.setTimeout!==setTimeout$3},{setTimeout:setTimeout$3});var path$8=path$h,setInterval$2=path$8.setInterval,setInterval$1=setInterval$2;const _setInterval=getDefaultExportFromCjs(setInterval$1);var fails$3=fails$v,arrayMethodIsStrict$2=function(S,C){var R=[][S];return!!R&&fails$3(function(){R.call(null,C||function(){return 1},1)})},$$9=_export$1,uncurryThis$2=functionUncurryThisClause,$indexOf=arrayIncludes$1.indexOf,arrayMethodIsStrict$1=arrayMethodIsStrict$2,nativeIndexOf=uncurryThis$2([].indexOf),NEGATIVE_ZERO=!!nativeIndexOf&&1/nativeIndexOf([1],1,-0)<0,FORCED$1=NEGATIVE_ZERO||!arrayMethodIsStrict$1("indexOf");$$9({target:"Array",proto:!0,forced:FORCED$1},{indexOf:function S(C){var R=arguments.length>1?arguments[1]:void 0;return NEGATIVE_ZERO?nativeIndexOf(this,C,R)||0:$indexOf(this,C,R)}});var getBuiltInPrototypeMethod$4=getBuiltInPrototypeMethod$7,indexOf$3=getBuiltInPrototypeMethod$4("Array","indexOf"),isPrototypeOf$4=objectIsPrototypeOf,method$4=indexOf$3,ArrayPrototype$4=Array.prototype,indexOf$2=function(S){var C=S.indexOf;return S===ArrayPrototype$4||isPrototypeOf$4(ArrayPrototype$4,S)&&C===ArrayPrototype$4.indexOf?method$4:C},parent$b=indexOf$2,indexOf$1=parent$b,indexOf=indexOf$1;const _indexOfInstanceProperty=getDefaultExportFromCjs(indexOf);var tryToString=tryToString$6,$TypeError=TypeError,deletePropertyOrThrow$1=function(S,C){if(!delete S[C])throw new $TypeError("Cannot delete property "+tryToString(C)+" of "+tryToString(S))},$$8=_export$1,toObject$1=toObject$c,toAbsoluteIndex=toAbsoluteIndex$5,toIntegerOrInfinity=toIntegerOrInfinity$9,lengthOfArrayLike=lengthOfArrayLike$9,setArrayLength=arraySetLength,doesNotExceedSafeInteger=doesNotExceedSafeInteger$3,arraySpeciesCreate=arraySpeciesCreate$3,createProperty$1=createProperty$5,deletePropertyOrThrow=deletePropertyOrThrow$1,arrayMethodHasSpeciesSupport$1=arrayMethodHasSpeciesSupport$4,HAS_SPECIES_SUPPORT$1=arrayMethodHasSpeciesSupport$1("splice"),max$1=Math.max,min$1=Math.min;$$8({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT$1},{splice:function S(C,R){var O=toObject$1(this),I=lengthOfArrayLike(O),N=toAbsoluteIndex(C,I),L=arguments.length,B,j,F,V,K,W;for(L===0?B=j=0:L===1?(B=0,j=I-N):(B=L-2,j=min$1(max$1(toIntegerOrInfinity(R),0),I-N)),doesNotExceedSafeInteger(I+B-j),F=arraySpeciesCreate(O,j),V=0;VI-j+B;V--)deletePropertyOrThrow(O,V-1)}else if(B>j)for(V=I-j;V>N;V--)K=V+j-1,W=V+B-1,K in O?O[W]=O[K]:deletePropertyOrThrow(O,W);for(V=0;V1?arguments[1]:void 0)},$$6=_export$1,forEach$4=arrayForEach;$$6({target:"Array",proto:!0,forced:[].forEach!==forEach$4},{forEach:forEach$4});var getBuiltInPrototypeMethod$1=getBuiltInPrototypeMethod$7,forEach$3=getBuiltInPrototypeMethod$1("Array","forEach"),parent$7=forEach$3,forEach$2=parent$7,classof$1=classof$c,hasOwn$1=hasOwnProperty_1$1,isPrototypeOf$1=objectIsPrototypeOf,method$1=forEach$2,ArrayPrototype$1=Array.prototype,DOMIterables={DOMTokenList:!0,NodeList:!0},forEach$1=function(S){var C=S.forEach;return S===ArrayPrototype$1||isPrototypeOf$1(ArrayPrototype$1,S)&&C===ArrayPrototype$1.forEach||hasOwn$1(DOMIterables,classof$1(S))?method$1:C},forEach=forEach$1;const _forEachInstanceProperty=getDefaultExportFromCjs(forEach);var $$5=_export$1,toObject=toObject$c,nativeKeys=objectKeys$4,fails$2=fails$v,FAILS_ON_PRIMITIVES=fails$2(function(){nativeKeys(1)});$$5({target:"Object",stat:!0,forced:FAILS_ON_PRIMITIVES},{keys:function S(C){return nativeKeys(toObject(C))}});var path$6=path$h,keys$3=path$6.Object.keys,parent$6=keys$3,keys$2=parent$6,keys$1=keys$2;const _Object$keys=getDefaultExportFromCjs(keys$1);var path$5=path$h,getOwnPropertySymbols$3=path$5.Object.getOwnPropertySymbols,parent$5=getOwnPropertySymbols$3,getOwnPropertySymbols$2=parent$5,getOwnPropertySymbols$1=getOwnPropertySymbols$2;const _Object$getOwnPropertySymbols=getDefaultExportFromCjs(getOwnPropertySymbols$1);var $$4=_export$1,$filter=arrayIteration.filter,arrayMethodHasSpeciesSupport=arrayMethodHasSpeciesSupport$4,HAS_SPECIES_SUPPORT=arrayMethodHasSpeciesSupport("filter");$$4({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT},{filter:function S(C){return $filter(this,C,arguments.length>1?arguments[1]:void 0)}});var getBuiltInPrototypeMethod=getBuiltInPrototypeMethod$7,filter$3=getBuiltInPrototypeMethod("Array","filter"),isPrototypeOf=objectIsPrototypeOf,method=filter$3,ArrayPrototype=Array.prototype,filter$2=function(S){var C=S.filter;return S===ArrayPrototype||isPrototypeOf(ArrayPrototype,S)&&C===ArrayPrototype.filter?method:C},parent$4=filter$2,filter$1=parent$4,filter=filter$1;const _filterInstanceProperty=getDefaultExportFromCjs(filter);var getOwnPropertyDescriptor$4={exports:{}},$$3=_export$1,fails$1=fails$v,toIndexedObject$1=toIndexedObject$e,nativeGetOwnPropertyDescriptor=objectGetOwnPropertyDescriptor$1.f,DESCRIPTORS$3=descriptors$1,FORCED=!DESCRIPTORS$3||fails$1(function(){nativeGetOwnPropertyDescriptor(1)});$$3({target:"Object",stat:!0,forced:FORCED,sham:!DESCRIPTORS$3},{getOwnPropertyDescriptor:function S(C,R){return nativeGetOwnPropertyDescriptor(toIndexedObject$1(C),R)}});var path$4=path$h,Object$2=path$4.Object,getOwnPropertyDescriptor$3=getOwnPropertyDescriptor$4.exports=function S(C,R){return Object$2.getOwnPropertyDescriptor(C,R)};Object$2.getOwnPropertyDescriptor.sham&&(getOwnPropertyDescriptor$3.sham=!0);var getOwnPropertyDescriptorExports=getOwnPropertyDescriptor$4.exports,parent$3=getOwnPropertyDescriptorExports,getOwnPropertyDescriptor$2=parent$3,getOwnPropertyDescriptor$1=getOwnPropertyDescriptor$2;const _Object$getOwnPropertyDescriptor=getDefaultExportFromCjs(getOwnPropertyDescriptor$1);var getBuiltIn=getBuiltIn$f,uncurryThis=functionUncurryThis,getOwnPropertyNamesModule=objectGetOwnPropertyNames$1,getOwnPropertySymbolsModule=objectGetOwnPropertySymbols$1,anObject$1=anObject$h,concat=uncurryThis([].concat),ownKeys$A=getBuiltIn("Reflect","ownKeys")||function S(C){var R=getOwnPropertyNamesModule.f(anObject$1(C)),O=getOwnPropertySymbolsModule.f;return O?concat(R,O(C)):R},$$2=_export$1,DESCRIPTORS$2=descriptors$1,ownKeys$z=ownKeys$A,toIndexedObject=toIndexedObject$e,getOwnPropertyDescriptorModule=objectGetOwnPropertyDescriptor$1,createProperty=createProperty$5;$$2({target:"Object",stat:!0,sham:!DESCRIPTORS$2},{getOwnPropertyDescriptors:function S(C){for(var R=toIndexedObject(C),O=getOwnPropertyDescriptorModule.f,I=ownKeys$z(R),N={},L=0,B,j;I.length>L;)j=O(R,B=I[L++]),j!==void 0&&createProperty(N,B,j);return N}});var path$3=path$h,getOwnPropertyDescriptors$2=path$3.Object.getOwnPropertyDescriptors,parent$2=getOwnPropertyDescriptors$2,getOwnPropertyDescriptors$1=parent$2,getOwnPropertyDescriptors=getOwnPropertyDescriptors$1;const _Object$getOwnPropertyDescriptors=getDefaultExportFromCjs(getOwnPropertyDescriptors);var defineProperties$4={exports:{}},$$1=_export$1,DESCRIPTORS$1=descriptors$1,defineProperties$3=objectDefineProperties$1.f;$$1({target:"Object",stat:!0,forced:Object.defineProperties!==defineProperties$3,sham:!DESCRIPTORS$1},{defineProperties:defineProperties$3});var path$2=path$h,Object$1=path$2.Object,defineProperties$2=defineProperties$4.exports=function S(C,R){return Object$1.defineProperties(C,R)};Object$1.defineProperties.sham&&(defineProperties$2.sham=!0);var definePropertiesExports=defineProperties$4.exports,parent$1=definePropertiesExports,defineProperties$1=parent$1,defineProperties=defineProperties$1;const _Object$defineProperties=getDefaultExportFromCjs(defineProperties);var defineProperty$1=defineProperty$5;const _Object$defineProperty=getDefaultExportFromCjs(defineProperty$1);var define_process_env_default$g={};function insertWithoutScoping(S,C){if(S.inserted[C.name]===void 0)return S.insert("",C,S.sheet,!0)}function merge(S,C,R){var O=[],I=getRegisteredStyles(S,O,R);return O.length<2?R:I+C(O)}var createEmotion=function S(C){var R=createCache(C);R.sheet.speedy=function(B){if(define_process_env_default$g.NODE_ENV!=="production"&&this.ctr!==0)throw new Error("speedy must be changed before any rules are inserted");this.isSpeedy=B},R.compat=!0;var O=function(){for(var j=arguments.length,F=new Array(j),V=0;V1&&arguments[1]!==void 0?arguments[1]:"white",R="background-color: ".concat(S,"; border-radius: 4px; padding: 2px 4px;");return C&&(R+=" color: ".concat(C,";")),[R,""]}function format(S,C){for(var R,O,I=arguments.length,N=new Array(I>2?I-2:0),L=2;L1&&arguments[1]!==void 0?arguments[1]:{},R=C.force,O=R===void 0?!1:R;return O?function(){for(var I=arguments.length,N=new Array(I),L=0;LC?(S.apply(void 0,N),R=B):(clearTimeout(O),O=_setTimeout(function(){S.apply(void 0,N),R=_Date$now()},Math.max(0,C-B+R)))}}var EventSpy=function S(C){var R=C.debounce,O=C.name,I=C.onEvent,N=C.target,L=reactExports.useRef();L.current=I;var B=reactExports.useMemo(function(){return debounceFn(function(F){var V=L.current;V&&V(F)},R)},[R,L]),j=reactExports.useCallback(function(F){F.timeStampLow=_Date$now(),B(F)},[B]);return reactExports.useLayoutEffect(function(){return N.addEventListener(O,j,{passive:!0}),j({target:N,type:O}),function(){return N.removeEventListener(O,j)}},[O,j,N]),!1};EventSpy.defaultProps={debounce:200};var mathSign$1=Math.sign||function S(C){var R=+C;return R===0||R!==R?R:R<0?-1:1},$=_export$1,sign$4=mathSign$1;$({target:"Math",stat:!0},{sign:sign$4});var path=path$h,sign$3=path.Math.sign,parent=sign$3,sign$2=parent,sign$1=sign$2;const _Math$sign=getDefaultExportFromCjs(sign$1);function squareStepper(S,C){var R=_Math$sign(C-S),O=Math.sqrt(Math.abs(C-S)),I=S+O*R;return R>0?Math.min(C,I):Math.max(C,I)}function step(S,C,R,O){for(var I=S,N=0;N4&&arguments[4]!==void 0?arguments[4]:_Date$now();(K==="100%"||typeof K=="number")&&(cancelAnimationFrame(L.current),L.current=requestAnimationFrame(function(){if(I){var J=K==="100%"?I.scrollHeight-I.offsetHeight:K,oe=step(V,J,squareStepper,(_Date$now()-X)/5);Math.abs(J-oe)<1.5&&(oe=J),I[F]=oe,J===oe?O&&O(!0):B(F,V,K,W+1,X)}}))},[L,O,I]),j=reactExports.useCallback(function(){cancelAnimationFrame(L.current),O&&O(!1)},[O]);return reactExports.useLayoutEffect(function(){return B(R,I[R],N,1),I?(I.addEventListener("pointerdown",j,{passive:!0}),I.addEventListener("wheel",j,{passive:!0}),function(){I.removeEventListener("pointerdown",j),I.removeEventListener("wheel",j),cancelAnimationFrame(L.current)}):function(){return cancelAnimationFrame(L.current)}},[B,L,j,R,I,N]),!1};SpineTo.propTypes={name:PropTypes.string.isRequired,onEnd:PropTypes.func,target:PropTypes.any.isRequired,value:PropTypes.oneOfType([PropTypes.number,PropTypes.oneOf(["100%"])]).isRequired};function useStateRef(S){var C=reactExports.useState(S),R=_slicedToArray$c(C,2),O=R[0],I=R[1],N=reactExports.useRef(),L=reactExports.useCallback(function(B){typeof B=="function"?L(function(j){return B=B(j),N.current=B,B}):(N.current=B,L(B))},[N]);return N.current=O,[O,I,N]}function ownKeys$y(S,C){var R=_Object$keys(S);if(_Object$getOwnPropertySymbols){var O=_Object$getOwnPropertySymbols(S);C&&(O=_filterInstanceProperty(O).call(O,function(I){return _Object$getOwnPropertyDescriptor(S,I).enumerable})),R.push.apply(R,O)}return R}function _objectSpread$y(S){for(var C=1;C",{force:N})},[N]);B=B===MODE_TOP?MODE_TOP:MODE_BOTTOM;var K=reactExports.useRef(0),W=reactExports.useRef(L),X=useStateRef(B===MODE_TOP?0:"100%"),J=_slicedToArray$c(X,3),oe=J[0],pe=J[1],me=J[2],xe=useStateRef(null),Ae=_slicedToArray$c(xe,3),ge=Ae[0],Te=Ae[1],we=Ae[2],ke=reactExports.useRef(0),Be=reactExports.useRef(0),Ie=reactExports.useRef(0),je=reactExports.useState(!0),Ke=_slicedToArray$c(je,2),Je=Ke[0],Xe=Ke[1],ot=reactExports.useState(!0),tt=_slicedToArray$c(ot,2),Ue=tt[0],et=tt[1],dt=reactExports.useState(!0),gt=_slicedToArray$c(dt,2),Qe=gt[0],lt=gt[1],ht=reactExports.useState(!1),Ct=_slicedToArray$c(ht,2),$t=Ct[0],Lt=Ct[1],Gt=useStateRef(!0),Pt=_slicedToArray$c(Gt,3),Vt=Pt[0],bt=Pt[1],It=Pt[2],Ht=reactExports.useRef([]),kt=reactExports.useCallback(function(Ut){var nr=we.current;return Ht.current.push(Ut),nr&&Ut({scrollTop:nr.scrollTop}),function(){var Ir=Ht.current,jr=_indexOfInstanceProperty(Ir).call(Ir,Ut);~jr&&_spliceInstanceProperty(Ir).call(Ir,jr,1)}},[Ht,we]),Kt=reactExports.useCallback(function(){var Ut=me.current;V(function(){var nr;return _concatInstanceProperty(nr=["%cSpineTo%c: %conEnd%c is fired."]).call(nr,_toConsumableArray$b(styleConsole("magenta")),_toConsumableArray$b(styleConsole("orange")),[{animateTo:Ut}])}),K.current=_Date$now(),isEnd(Ut,B)||bt(!1),pe(null)},[me,V,K,B,pe,bt]),tr=reactExports.useCallback(function(Ut){var nr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Ir=nr.behavior,jr=we.current;if(typeof Ut!="number"&&Ut!=="100%")return console.warn('react-scroll-to-bottom: Arguments passed to scrollTo() must be either number or "100%".');V(function(){var Rr;return[_concatInstanceProperty(Rr=["%cscrollTo%c: Will scroll to %c".concat(typeof Ut=="number"?Ut+"px":Ut.replace(/%/g,"%%"),"%c")]).call(Rr,_toConsumableArray$b(styleConsole("lime","")),_toConsumableArray$b(styleConsole("purple"))),{behavior:Ir,nextAnimateTo:Ut,target:jr}]}),Ir==="auto"?(Kt(),jr&&(jr.scrollTop=Ut==="100%"?jr.scrollHeight-jr.offsetHeight:Ut)):(Ir!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollTo". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.'),pe(Ut)),isEnd(Ut,B)&&(V(function(){var Rr;return[_concatInstanceProperty(Rr=["%cscrollTo%c: Scrolling to end, will set sticky to %ctrue%c."]).call(Rr,_toConsumableArray$b(styleConsole("lime","")),_toConsumableArray$b(styleConsole("purple"))),[{mode:B,nextAnimateTo:Ut}]]}),bt(!0))},[V,Kt,B,pe,bt,we]),wr=reactExports.useCallback(function(){var Ut=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},nr=Ut.behavior;V(function(){var Ir;return _concatInstanceProperty(Ir=["%cscrollToBottom%c: Called"]).call(Ir,_toConsumableArray$b(styleConsole("yellow","")))}),nr!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToBottom". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.'),tr("100%",{behavior:nr||"smooth"})},[V,tr]),xr=reactExports.useCallback(function(){var Ut=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},nr=Ut.behavior;V(function(){var Ir;return _concatInstanceProperty(Ir=["%cscrollToTop%c: Called"]).call(Ir,_toConsumableArray$b(styleConsole("yellow","")))}),nr!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToTop". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.'),tr(0,{behavior:nr||"smooth"})},[V,tr]),Vr=reactExports.useCallback(function(){var Ut=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},nr=Ut.behavior;V(function(){var jr;return _concatInstanceProperty(jr=["%cscrollToEnd%c: Called"]).call(jr,_toConsumableArray$b(styleConsole("yellow","")))}),nr!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToEnd". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.');var Ir={behavior:nr||"smooth"};B===MODE_TOP?xr(Ir):wr(Ir)},[V,B,wr,xr]),bn=reactExports.useCallback(function(){var Ut=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},nr=Ut.behavior;V(function(){var jr;return _concatInstanceProperty(jr=["%cscrollToStart%c: Called"]).call(jr,_toConsumableArray$b(styleConsole("yellow","")))}),nr!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToStart". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.');var Ir={behavior:nr||"smooth"};B===MODE_TOP?wr(Ir):xr(Ir)},[V,B,wr,xr]),Bn=reactExports.useCallback(function(){var Ut=we.current;if(Ut){if(W.current==="auto"){V(function(){var Gn;return _concatInstanceProperty(Gn=["%ctarget changed%c: Initial scroll"]).call(Gn,_toConsumableArray$b(styleConsole("blue")))}),Ut.scrollTop=B===MODE_TOP?0:Ut.scrollHeight-Ut.offsetHeight,W.current=!1;return}var nr=ke.current,Ir=Ut.offsetHeight,jr=Ut.scrollHeight,Rr=Ut.scrollTop,fr=B===MODE_TOP?0:Math.max(0,jr-Ir-Rr),Or=Math.max(0,nr-Rr),Jr=F({maxValue:fr,minValue:Or,offsetHeight:Ir,scrollHeight:jr,scrollTop:Rr}),nn=Math.max(0,Math.min(fr,Jr)),hn;B===MODE_TOP||nn!==fr?hn=Rr+nn:hn="100%",V(function(){var Gn,Zn,Eo;return[_concatInstanceProperty(Gn=[_concatInstanceProperty(Zn=_concatInstanceProperty(Eo="%cscrollToSticky%c: Will animate from %c".concat(nr,"px%c to %c")).call(Eo,typeof hn=="number"?hn+"px":hn.replace(/%/g,"%%"),"%c (%c")).call(Zn,(hn==="100%"?fr:hn)+nr,"px%c)")]).call(Gn,_toConsumableArray$b(styleConsole("orange")),_toConsumableArray$b(styleConsole("purple")),_toConsumableArray$b(styleConsole("purple")),_toConsumableArray$b(styleConsole("purple"))),{animateFrom:nr,maxValue:fr,minValue:Or,nextAnimateTo:hn,nextValue:nn,offsetHeight:Ir,rawNextValue:Jr,scrollHeight:jr,scrollTop:Rr}]}),tr(hn,{behavior:"smooth"})}},[ke,V,B,F,tr,we]),An=reactExports.useCallback(function(Ut){var nr,Ir=Ut.timeStampLow,jr=me.current,Rr=we.current,fr=jr!==null;if(!(Ir<=K.current||!Rr)){var Or=computeViewState({mode:B,target:Rr}),Jr=Or.atBottom,nn=Or.atEnd,hn=Or.atStart,Gn=Or.atTop;Xe(Jr),et(nn),Lt(hn),lt(Gn);var Zn=Rr.offsetHeight,Eo=Rr.scrollHeight,vo=Be.current,Fo=Ie.current,Ln=Zn!==vo,xn=Eo!==Fo;if(Ln&&(Be.current=Zn),xn&&(Ie.current=Eo),!Ln&&!xn){var Ko=fr&&isEnd(jr,B)||nn;It.current!==Ko&&(V(function(){var zo,fo,Wn,wn;return[_concatInstanceProperty(zo=["%conScroll%c: %csetSticky%c(%c".concat(Ko,"%c)")]).call(zo,_toConsumableArray$b(styleConsole("red")),_toConsumableArray$b(styleConsole("red")),_toConsumableArray$b(styleConsole("purple"))),_concatInstanceProperty(fo=[_concatInstanceProperty(Wn=_concatInstanceProperty(wn="(animating = %c".concat(fr,"%c && isEnd = %c")).call(wn,isEnd(jr,B),"%c) || atEnd = %c")).call(Wn,nn,"%c")]).call(fo,_toConsumableArray$b(styleConsole("purple")),_toConsumableArray$b(styleConsole("purple")),_toConsumableArray$b(styleConsole("purple")),[{animating:fr,animateTo:jr,atEnd:nn,mode:B,offsetHeight:Rr.offsetHeight,scrollHeight:Rr.scrollHeight,sticky:It.current,nextSticky:Ko}])]}),bt(Ko))}else It.current&&(V(function(){var zo;return[_concatInstanceProperty(zo=["%conScroll%c: Size changed while sticky, calling %cscrollToSticky()%c"]).call(zo,_toConsumableArray$b(styleConsole("red")),_toConsumableArray$b(styleConsole("orange")),[{offsetHeightChanged:Ln,scrollHeightChanged:xn}]),{nextOffsetHeight:Zn,prevOffsetHeight:vo,nextScrollHeight:Eo,prevScrollHeight:Fo}]}),Bn());var ao=Rr.scrollTop;_forEachInstanceProperty(nr=Ht.current).call(nr,function(zo){return zo({scrollTop:ao})})}},[me,V,K,B,Be,Ie,Ht,Bn,Xe,et,Lt,lt,bt,It,we]);reactExports.useEffect(function(){if(ge){var Ut=!1,nr=setImmediateInterval(function(){var Ir=we.current,jr=me.current!==null;It.current?computeViewState({mode:B,target:Ir}).atEnd?Ut=!1:Ut?_Date$now()-Ut>SCROLL_DECISION_DURATION&&(jr||(ke.current=Ir.scrollTop,V(function(){var Rr;return _concatInstanceProperty(Rr=["%cInterval check%c: Should sticky but not at end, calling %cscrollToSticky()%c to scroll"]).call(Rr,_toConsumableArray$b(styleConsole("navy")),_toConsumableArray$b(styleConsole("orange")))}),Bn()),Ut=!1):Ut=_Date$now():Ir.scrollHeight<=Ir.offsetHeight&&!It.current&&(V(function(){var Rr;return[_concatInstanceProperty(Rr=["%cInterval check%c: Container is emptied, setting sticky back to %ctrue%c"]).call(Rr,_toConsumableArray$b(styleConsole("navy")),_toConsumableArray$b(styleConsole("purple"))),[{offsetHeight:Ir.offsetHeight,scrollHeight:Ir.scrollHeight,sticky:It.current}]]}),bt(!0))},Math.max(MIN_CHECK_INTERVAL,R)||MIN_CHECK_INTERVAL);return function(){return clearInterval(nr)}}},[me,R,V,B,Bn,bt,It,ge,we]);var Tn=reactExports.useMemo(function(){var Ut=emotionPool[j]||(emotionPool[j]=createEmotion({key:"react-scroll-to-bottom--css-"+useCSSKey(),nonce:j}));return function(nr){return Ut.css(nr)+""}},[j]),pn=reactExports.useMemo(function(){return{observeScrollPosition:kt,setTarget:Te,styleToClassName:Tn}},[kt,Te,Tn]),Mn=reactExports.useMemo(function(){return{atBottom:Je,atEnd:Ue,atStart:$t,atTop:Qe,mode:B}},[Je,Ue,$t,Qe,B]),bo=reactExports.useMemo(function(){var Ut=oe!==null;return{animating:Ut,animatingToEnd:Ut&&isEnd(oe,B),sticky:Vt}},[oe,B,Vt]),mr=reactExports.useMemo(function(){return _objectSpread$y(_objectSpread$y({},Mn),bo)},[Mn,bo]),sr=reactExports.useMemo(function(){return{scrollTo:tr,scrollToBottom:wr,scrollToEnd:Vr,scrollToStart:bn,scrollToTop:xr}},[tr,wr,Vr,bn,xr]);return reactExports.useEffect(function(){if(ge){var Ut=function(){Ie.current=ge.scrollHeight};return ge.addEventListener("focus",Ut,{capture:!0,passive:!0}),function(){return ge.removeEventListener("focus",Ut)}}},[ge]),V(function(){var Ut;return[_concatInstanceProperty(Ut=["%cRender%c: Render"]).call(Ut,_toConsumableArray$b(styleConsole("cyan",""))),{animateTo:oe,animating:oe!==null,sticky:Vt,target:ge}]}),React.createElement(context.Provider,{value:pn},React.createElement(context$4.Provider,{value:sr},React.createElement(context$1.Provider,{value:mr},React.createElement(context$3.Provider,{value:Mn},React.createElement(context$2.Provider,{value:bo},O,ge&&React.createElement(EventSpy,{debounce:I,name:"scroll",onEvent:An,target:ge}),ge&&oe!==null&&React.createElement(SpineTo,{name:"scrollTop",onEnd:Kt,target:ge,value:oe}))))))};Composer.defaultProps={checkInterval:100,children:void 0,debounce:17,debug:void 0,initialScrollBehavior:"smooth",mode:void 0,nonce:void 0,scroller:DEFAULT_SCROLLER},Composer.propTypes={checkInterval:PropTypes.number,children:PropTypes.any,debounce:PropTypes.number,debug:PropTypes.bool,initialScrollBehavior:PropTypes.oneOf(["auto","smooth"]),mode:PropTypes.oneOf(["bottom","top"]),nonce:PropTypes.string,scroller:PropTypes.func};var ROOT_STYLE$1={height:"100%",overflowY:"auto",width:"100%"},Panel=function S(C){var R=C.children,O=C.className,I=reactExports.useContext(context),N=I.setTarget,L=useStyleToClassName()(ROOT_STYLE$1);return React.createElement("div",{className:classNames(L,(O||"")+""),ref:N},R)};Panel.defaultProps={children:void 0,className:void 0},Panel.propTypes={children:PropTypes.any,className:PropTypes.string};var ROOT_STYLE={position:"relative"},BasicScrollToBottomCore=function S(C){var R=C.children,O=C.className,I=C.followButtonClassName,N=C.scrollViewClassName,L=useStyleToClassName()(ROOT_STYLE);return React.createElement("div",{className:classNames(L,(O||"")+"")},React.createElement(Panel,{className:(N||"")+""},R),React.createElement(AutoHideFollowButton,{className:(I||"")+""}))};BasicScrollToBottomCore.defaultProps={children:void 0,className:void 0,followButtonClassName:void 0,scrollViewClassName:void 0},BasicScrollToBottomCore.propTypes={children:PropTypes.any,className:PropTypes.string,followButtonClassName:PropTypes.string,scrollViewClassName:PropTypes.string};var BasicScrollToBottom=function S(C){var R=C.checkInterval,O=C.children,I=C.className,N=C.debounce,L=C.debug,B=C.followButtonClassName,j=C.initialScrollBehavior,F=C.mode,V=C.nonce,K=C.scroller,W=C.scrollViewClassName;return React.createElement(Composer,{checkInterval:R,debounce:N,debug:L,initialScrollBehavior:j,mode:F,nonce:V,scroller:K},React.createElement(BasicScrollToBottomCore,{className:I,followButtonClassName:B,scrollViewClassName:W},O))};BasicScrollToBottom.defaultProps={checkInterval:void 0,children:void 0,className:void 0,debounce:void 0,debug:void 0,followButtonClassName:void 0,initialScrollBehavior:"smooth",mode:void 0,nonce:void 0,scroller:void 0,scrollViewClassName:void 0},BasicScrollToBottom.propTypes={checkInterval:PropTypes.number,children:PropTypes.any,className:PropTypes.string,debounce:PropTypes.number,debug:PropTypes.bool,followButtonClassName:PropTypes.string,initialScrollBehavior:PropTypes.oneOf(["auto","smooth"]),mode:PropTypes.oneOf(["bottom","top"]),nonce:PropTypes.string,scroller:PropTypes.func,scrollViewClassName:PropTypes.string},addVersionToMetaTag();function MessageSenderRenderer(S){const{data:C,position:R,className:O}=S,I=useStyles$2(),N=C.timestamp?dayjs(C.timestamp).format("h:mm A"):null,[L,B]=C.from.split(": ");return jsxRuntimeExports.jsxs("div",{className:mergeClasses(I.container,O),"data-position":R,children:[jsxRuntimeExports.jsxs("span",{className:I.name,"data-position":R,"data-category":C.category,children:[L,B&&jsxRuntimeExports.jsxs("span",{children:[": ",jsxRuntimeExports.jsx("strong",{children:B})]})]}),N&&jsxRuntimeExports.jsx("span",{className:I.time,children:N})]})}MessageSenderRenderer.displayName="MessageSenderRenderer";const useStyles$2=makeStyles({container:{display:"flex",flexWrap:"nowrap",alignItems:"center",justifyContent:"flex-start",fontSize:"0.75rem",'&&[data-position="right"]':{justifyContent:"flex-end"},color:tokens.colorNeutralForeground3},name:{...shorthands.margin("0px","6px","0px","0px"),fontSize:tokens.fontSizeBase200,lineHeight:tokens.lineHeightBase200,[`&&[data-category="${ChatMessageCategory.System}"]`]:{...shorthands.margin("0px","6px","0px","12px")}},time:{}}),OpenAIIcon=()=>jsxRuntimeExports.jsxs("svg",{fill:"currentColor",width:"20px",height:"20px",viewBox:"0 0 2048 2048",role:"img",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("title",{children:"OpenAI icon"}),jsxRuntimeExports.jsx("path",{d:"M832 676l575 288v760l-575 288-575-288V964l575-288zm0 144l-368 184 368 183 368-183-368-184zm-447 825l383 191v-538l-383-191v538zm894 0v-538l-383 191v538l383-191zm577-733q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9zM704 496q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9zm1206-48q0 23-15 38t-39 16q-27 0-57 11t-58 28-54 37-45 40q-19 19-39 44t-38 54-28 59-11 57q0 23-15 38t-39 16q-23 0-38-15t-16-39q0-27-11-57t-28-58-37-54-40-45q-19-19-44-39t-54-38-59-28-57-11q-23 0-38-15t-16-39q0-23 15-38t39-16q27 0 57-11t58-28 54-37 45-40q19-19 39-44t38-54 28-59 11-57q0-23 15-38t39-16q23 0 38 15t16 39q0 27 11 57t28 58 37 54 40 45q19 19 44 39t54 38 59 28 57 11q23 0 38 15t16 39zm-438 212q38-65 92-119t120-93q-65-38-119-92t-93-120q-38 65-92 119t-120 93q65 38 119 92t93 120z"})]});var RichContentType=(S=>(S.TEXT="text",S.IMAGE_URL="image_url",S.IMAGE_FILE="image_file",S))(RichContentType||{});const ErrorMessage=({error:S})=>{const C=useLocStrings();return jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[jsxRuntimeExports.jsx(ErrorCircle16Filled,{style:{color:tokens.colorStatusDangerForeground1}}),jsxRuntimeExports.jsxs("div",{children:[C.Error,": ",S.message]})]})},RichTextChatboxMessageContent=S=>{const{content:C,className:R}=S,O=reactExports.useMemo(()=>weaveRichNodesIntoMarkup(C),[C]),I=useStyles$1(),N=mergeClasses(I.content,R);return jsxRuntimeExports.jsx("div",{className:N,children:typeof O=="string"?jsxRuntimeExports.jsx(MarkdownViewer,{content:O}):jsxRuntimeExports.jsx(ErrorMessage,{error:O})})},useStyles$1=makeStyles({content:{...shorthands.overflow("auto"),wordBreak:"break-all",whiteSpace:"break-spaces"}});function weaveRichNodesIntoMarkup(S){if(typeof S=="string")return S;return Array.isArray(S)?S.map(C).filter(Boolean).join(` - -`):new Error("content type is not supported");function C(R){var O,I,N,L;switch(R.type){case RichContentType.TEXT:return R.text??"";case RichContentType.IMAGE_URL:return`![${(O=R.image_url)==null?void 0:O.url}](${(I=R.image_url)==null?void 0:I.url})`;case RichContentType.IMAGE_FILE:return`![${(N=R.image_file)==null?void 0:N.path}](${(L=R.image_file)==null?void 0:L.path})`;default:return""}}}const capitalizeFirstLetter=S=>S.charAt(0).toUpperCase()+S.slice(1),getSenderNameByLLMMessage=S=>S.role&&S.name?`${S.role}: ${S.name}`:S.role?S.role:S.name?S.name:"user",defaultCalcContentForCopy=S=>JSON.stringify(S.content),messageRoleToCategory=S=>{switch(S){case"system":return ChatMessageCategory.System;case"user":return ChatMessageCategory.User;default:return ChatMessageCategory.Chatbot}},useAvatarStyles=makeStyles({avatar:{...shorthands.margin("16px","4px","4px","4px")}}),LLMNodeMessagesList=S=>{const C=useSelectedSpan(),R=S.messages.map((O,I)=>({id:I,type:ChatMessageType.Message,history:[{content:O.content??"",category:messageRoleToCategory(O.role),from:capitalizeFirstLetter(getSenderNameByLLMMessage(O)),timestamp:O.role==="assistant"?C==null?void 0:C.start_time:C==null?void 0:C.end_time}]}));return jsxRuntimeExports.jsx(ChatboxMessageList,{locStrings:defaultLocStrings$1,messages:R,calcContentForCopy:defaultCalcContentForCopy})},MessageAvatarRenderer=({data:S,className:C})=>{const R=useAvatarStyles();return S.category===ChatMessageCategory.System?jsxRuntimeExports.jsx("div",{className:mergeClasses(R.avatar,C),children:jsxRuntimeExports.jsx(Alert20Regular,{})}):S.category===ChatMessageCategory.User?jsxRuntimeExports.jsx("div",{className:mergeClasses(R.avatar,C),children:jsxRuntimeExports.jsx(Person20Regular,{})}):S.category===ChatMessageCategory.Chatbot?jsxRuntimeExports.jsx("div",{className:mergeClasses(R.avatar,C),children:jsxRuntimeExports.jsx(OpenAIIcon,{})}):null};function ChatboxMessageList(S){const{locStrings:C,messages:R,calcContentForCopy:O}=S,I=useStyles();return jsxRuntimeExports.jsx(BasicScrollToBottom,{className:I.main,initialScrollBehavior:"auto",children:jsxRuntimeExports.jsx(MessageListRenderer,{calcContentForCopy:O,locStrings:C,messages:R,MessageAvatarRenderer,MessageContentRenderer:RichTextChatboxMessageContent,MessageSenderRenderer})})}ChatboxMessageList.displayName="ChatboxMessageList";const useStyles=makeStyles({main:{...shorthands.padding("0","16px"),...shorthands.overflow("auto"),height:"100%"}}),useClasses$9=makeStyles({root:{height:"100%",display:"flex",flexDirection:"column",...shorthands.overflow("auto")},title:{fontSize:"14px",lineHeight:"20px",fontStyle:"italic",fontWeight:400,color:tokens.colorNeutralForeground1},card:{flexGrow:1}}),LLMNodePromptTemplateTab=({promptTemplate:S,templateVariables:C})=>{const R=useClasses$9(),O=useMessageCardClasses(),N=useIsDark()?"vs-dark":"light",L=useLocStrings();return jsxRuntimeExports.jsxs("div",{className:R.root,children:[jsxRuntimeExports.jsxs(Card,{className:mergeClasses(O.card,R.card),children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{className:R.title,children:L.prompt_template})}),jsxRuntimeExports.jsx(JinjaSyntaxHighlighter,{value:S,theme:N})]}),jsxRuntimeExports.jsxs(Card,{className:O.card,children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{className:R.title,children:L.template_variables})}),jsxRuntimeExports.jsx(JsonView,{src:C})]})]})},LLMNodeRaw=({inputs:S,outputs:C})=>{const R=useLocStrings();return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[S&&jsxRuntimeExports.jsx(JsonNodeCard,{title:R.Inputs,src:S}),C&&jsxRuntimeExports.jsx(JsonNodeCard,{title:R.Output,src:C})]})},useLLMNodeClasses=makeStyles({root:{height:"100%",display:"flex"},content:{...shorthands.overflow("auto")}}),LLMNodeInfo=()=>{var xe,Ae,ge,Te,we,ke,Be;const S=useSelectedSpan(),C=(xe=useParentSpanOfSelectedSpan())==null?void 0:xe.attributes,R=useNodeDetailClasses(),O=JSON.parse(((Ae=S==null?void 0:S.attributes)==null?void 0:Ae.inputs)??"{}"),I=JSON.parse(((ge=S==null?void 0:S.attributes)==null?void 0:ge.output)??"{}"),N=(Te=S==null?void 0:S.attributes)==null?void 0:Te["llm.generated_message"],L=N?JSON.parse(N):void 0,B=C==null?void 0:C["prompt.template"],j=JSON.parse((C==null?void 0:C["prompt.variables"])??"{}"),F=Object.keys(j??{}),V={};Object.keys(O).forEach(Ie=>{Ie!=="messages"&&(F.includes(Ie)||(V[Ie]=O[Ie]))});const K=O.messages??[],W=((we=I.choices)==null?void 0:we.reduce((Ie,je)=>je.message?[...Ie,je.message]:je.text?[...Ie,{content:je.text,role:"assistant"}]:Ie,[]))??[];L&&W.push(L);const X=[...K,...W],[J,oe]=reactExports.useState("messages"),pe=useLLMNodeClasses(),me=useLocStrings();return jsxRuntimeExports.jsxs(Card,{className:pe.root,children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:R.headerWrapper,children:[jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",children:me.llm}),jsxRuntimeExports.jsx("div",{className:R.headerTitle,children:O.model})]}),jsxRuntimeExports.jsxs(TabList,{selectedValue:J,onTabSelect:(Ie,{value:je})=>oe(je),children:[jsxRuntimeExports.jsx(Tab$1,{value:"messages",children:me.Messages}),jsxRuntimeExports.jsx(Tab$1,{value:"raw",children:me.Raw_JSON}),jsxRuntimeExports.jsx(Tab$1,{value:"promptTemplate",children:me.Prompt_Template}),jsxRuntimeExports.jsx(Tab$1,{value:"llmParameters",children:me.LLM_Parameters})]})]})}),jsxRuntimeExports.jsxs("div",{className:pe.content,children:[J==="messages"&&jsxRuntimeExports.jsx(LLMNodeMessagesList,{messages:X}),J==="promptTemplate"&&jsxRuntimeExports.jsx(LLMNodePromptTemplateTab,{promptTemplate:B??"",templateVariables:j}),J==="llmParameters"&&jsxRuntimeExports.jsx(LLMNodeInvocationParametersTab,{invocationParameters:V}),J==="raw"&&jsxRuntimeExports.jsx(LLMNodeRaw,{inputs:(ke=S==null?void 0:S.attributes)==null?void 0:ke.inputs,outputs:((Be=S==null?void 0:S.attributes)==null?void 0:Be.output)??N})]})]})},NodeToken=({span:S,showDetail:C=!0})=>{const R=useParseTraceOutput(S);if(!R||typeof R=="string")return null;const O=R.usage;return!O||typeof O=="string"||!O.total_tokens?null:jsxRuntimeExports.jsx(TokenText,{token:O.total_tokens,info:C?jsxRuntimeExports.jsxs("div",{style:{display:"flex",flexDirection:"column",rowGap:6},children:[jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Total tokens",value:O.total_tokens??0}}),jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Prompt tokens",value:O.prompt_tokens??0}}),jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Completion tokens",value:O.completion_tokens??0}})]}):void 0})},SummaryToken=({trace:S,showDetail:C=!0})=>jsxRuntimeExports.jsx(TokenText,{token:S.total_tokens,info:C?jsxRuntimeExports.jsxs("div",{style:{display:"flex",flexDirection:"column",rowGap:6},children:[jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Total tokens",value:S.total_tokens}}),jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Prompt tokens",value:S.prompt_tokens}}),jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Completion tokens",value:S.completion_tokens}})]}):void 0}),RetrievalNodeInfo=()=>{const S=useSelectedSpan(),C=useLocStrings();if(!(S!=null&&S.attributes))return null;const R=S==null?void 0:S.attributes;let O=[];if(typeof R["retrieval.documents"]=="string")try{O=JSON.parse(R["retrieval.documents"])}catch{O=[]}return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:C.Query})})}),R["retrieval.query"]??""]}),jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:C.Documents})})}),O.map(I=>jsxRuntimeExports.jsx(Document$1,{document:I},I["document.id"]))]})]})},Document$1=({document:S})=>{const C=useRetrievalNodeDetailClasses(),[R,O]=reactExports.useState(["content"]),I=reactExports.useCallback((L,B)=>{O(B.openItems)},[]),N=useLocStrings();return jsxRuntimeExports.jsxs(Card,{style:{background:tokens.colorNeutralBackground2},children:[jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",columnGap:6},children:[jsxRuntimeExports.jsx(Document16Regular,{}),jsxRuntimeExports.jsx("div",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:jsxRuntimeExports.jsx(Tooltip$1,{content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:"id"})," ",S["document.id"]]}),relationship:"description",children:jsxRuntimeExports.jsxs("span",{children:[N.document," ",S["document.id"]]})})}),jsxRuntimeExports.jsx(Tooltip$1,{content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:N.score})," ",S["document.score"]]}),relationship:"description",children:jsxRuntimeExports.jsxs(Badge$2,{appearance:"outline",children:["score ",floatFormatter(S["document.score"])]})})]}),jsxRuntimeExports.jsx(Divider$2,{}),jsxRuntimeExports.jsx(Card,{style:{background:tokens.colorNeutralBackground3},children:jsxRuntimeExports.jsx(Accordion,{openItems:R,onToggle:I,collapsible:!0,multiple:!0,children:jsxRuntimeExports.jsxs(AccordionItem,{value:"content",children:[jsxRuntimeExports.jsx(AccordionHeader,{className:C.accordionHeader,children:N.content}),jsxRuntimeExports.jsx(AccordionPanel,{children:jsxRuntimeExports.jsx(MarkdownViewer,{content:S["document.content"]})})]})})}),jsxRuntimeExports.jsx(JsonNodeCard,{title:"metadata",src:S["document.metadata"],wrapperStyle:{background:tokens.colorNeutralBackground3}})]})},NodeDetail=({emptyTip:S=jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:"No Data"})})=>{var K,W,X;const C=useNodeDetailClasses(),[R,O]=reactExports.useState("info"),I=useSelectedSpan(),N=useEvaluationSpansOfSelectedSpan(),L=useRootSpanIdOfSelectedSpans(),B=useLocStrings(),j=reactExports.useMemo(()=>{var J;return L===((J=I==null?void 0:I.context)==null?void 0:J.span_id)},[L,I]),F=((K=I==null?void 0:I.events)==null?void 0:K.length)??0,V=N.length??0;return I?jsxRuntimeExports.jsxs("div",{className:C.wrapper,children:[((X=(W=I==null?void 0:I.status)==null?void 0:W.status_code)==null?void 0:X.toLowerCase())==="error"&&jsxRuntimeExports.jsx(MessageBar,{intent:"error",onClick:()=>{O("error")},style:{cursor:"pointer"},children:jsxRuntimeExports.jsxs(MessageBarBody,{children:[jsxRuntimeExports.jsxs(MessageBarTitle,{children:[" ",B.Error]}),I.status.message]})}),jsxRuntimeExports.jsxs("div",{className:C.headerWrapper,children:[jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",children:getToolTypeFromSpan(I)}),jsxRuntimeExports.jsx("div",{className:C.headerTitle,children:jsxRuntimeExports.jsx(Tooltip$1,{content:(I==null?void 0:I.name)||"",relationship:"description",children:jsxRuntimeExports.jsx("span",{children:I.name})})}),jsxRuntimeExports.jsx("div",{className:C.headerItem,children:jsxRuntimeExports.jsx(NodeToken,{span:I,showDetail:!0})}),jsxRuntimeExports.jsx("div",{className:C.headerItem,children:jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:I.start_time,endTimeISOString:I.end_time})})]}),jsxRuntimeExports.jsxs(TabList,{selectedValue:R,onTabSelect:(J,oe)=>{O(oe.value)},children:[jsxRuntimeExports.jsx(Tab$1,{value:"info",children:B.Info}),jsxRuntimeExports.jsx(Tab$1,{value:"attr",children:B.Raw_JSON}),j&&jsxRuntimeExports.jsxs(Tab$1,{value:"evaluations",children:[B.Metrics," ",jsxRuntimeExports.jsx(CounterBadge,{appearance:"filled",color:"informative",count:V,size:"small",showZero:!0})]}),jsxRuntimeExports.jsxs(Tab$1,{value:"error",children:[B.Events," ",jsxRuntimeExports.jsx(CounterBadge,{appearance:"filled",color:F>0?"danger":"informative",count:F,size:"small",showZero:!0})]})]}),jsxRuntimeExports.jsx(Divider$2,{className:C.tabDivider}),jsxRuntimeExports.jsxs("div",{className:C.content,children:[R==="info"&&jsxRuntimeExports.jsx(NodeCard,{}),R==="attr"&&jsxRuntimeExports.jsx(NodeAttrCard,{}),j&&R==="evaluations"&&jsxRuntimeExports.jsx(EvaluationsTab,{}),R==="error"&&jsxRuntimeExports.jsx(ErrorsTab,{})]})]}):S},NodeCard=()=>{var R,O,I;const S=useSelectedSpan(),C=(R=S==null?void 0:S.attributes)==null?void 0:R.function;switch((I=(O=S==null?void 0:S.attributes)==null?void 0:O.span_type)==null?void 0:I.toLowerCase()){case"llm":return C!=null&&C.startsWith("openai.resources.chat")||C!=null&&C.startsWith("openai.api_resources.chat")?jsxRuntimeExports.jsx(LLMNodeInfo,{}):jsxRuntimeExports.jsx(DefaultNodeInfo,{});case"retrieval":return jsxRuntimeExports.jsx(RetrievalNodeInfo,{});case"embedding":return jsxRuntimeExports.jsx(EmbeddingNodeInfo,{});default:return jsxRuntimeExports.jsx(DefaultNodeInfo,{})}},NodeAttrCard=()=>{const S=useSelectedSpan(),C=useLocStrings();return S!=null&&S.attributes?jsxRuntimeExports.jsx(JsonNodeCard,{title:C.Raw_JSON,src:S}):null};function isNil(S){return S==null}var isNil_1=isNil;const isNil$1=getDefaultExportFromCjs(isNil_1);var baseGetTag$1=_baseGetTag,isObjectLike$1=isObjectLike_1,numberTag="[object Number]";function isNumber$2(S){return typeof S=="number"||isObjectLike$1(S)&&baseGetTag$1(S)==numberTag}var isNumber_1=isNumber$2;const isNumber$3=getDefaultExportFromCjs(isNumber_1);var isNumber$1=isNumber_1;function isNaN$1(S){return isNumber$1(S)&&S!=+S}var _isNaN=isNaN$1;const isNan=getDefaultExportFromCjs(_isNaN);var mathSign=function S(C){return C===0?0:C>0?1:-1},isPercent=function S(C){return isString$1(C)&&C.indexOf("%")===C.length-1},isNumber=function S(C){return isNumber$3(C)&&!isNan(C)},isNumOrStr=function S(C){return isNumber(C)||isString$1(C)},idCounter=0,uniqueId=function S(C){var R=++idCounter;return"".concat(C||"").concat(R)},getPercentValue=function S(C,R){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!isNumber(C)&&!isString$1(C))return O;var N;if(isPercent(C)){var L=C.indexOf("%");N=R*parseFloat(C.slice(0,L))/100}else N=+C;return isNan(N)&&(N=O),I&&N>R&&(N=R),N},getAnyElementOfObject=function S(C){if(!C)return null;var R=Object.keys(C);return R&&R.length?C[R[0]]:null},hasDuplicate=function S(C){if(!Array.isArray(C))return!1;for(var R=C.length,O={},I=0;I=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$f(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}var REACT_BROWSER_EVENT_MAP={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart"},getDisplayName=function S(C){return typeof C=="string"?C:C?C.displayName||C.name||"Component":""},lastChildren=null,lastResult=null,toArray=function S(C){if(C===lastChildren&&Array.isArray(lastResult))return lastResult;var R=[];return reactExports.Children.forEach(C,function(O){isNil$1(O)||(reactIsExports.isFragment(O)?R=R.concat(S(O.props.children)):R.push(O))}),lastResult=R,lastChildren=C,R};function findAllByType(S,C){var R=[],O=[];return Array.isArray(C)?O=C.map(function(I){return getDisplayName(I)}):O=[getDisplayName(C)],toArray(S).forEach(function(I){var N=get$5(I,"type.displayName")||get$5(I,"type.name");O.indexOf(N)!==-1&&R.push(I)}),R}function findChildByType(S,C){var R=findAllByType(S,C);return R&&R[0]}var validateWidthHeight=function S(C){if(!C||!C.props)return!1;var R=C.props,O=R.width,I=R.height;return!(!isNumber(O)||O<=0||!isNumber(I)||I<=0)},SVG_TAGS=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],isSvgElement=function S(C){return C&&C.type&&isString$1(C.type)&&SVG_TAGS.indexOf(C.type)>=0},isValidSpreadableProp=function S(C,R,O,I){var N,L=(N=FilteredElementKeyMap==null?void 0:FilteredElementKeyMap[I])!==null&&N!==void 0?N:[];return!isFunction$6(C)&&(I&&L.includes(R)||SVGElementPropKeys.includes(R))||O&&EventKeys.includes(R)},filterProps=function S(C,R,O){if(!C||typeof C=="function"||typeof C=="boolean")return null;var I=C;if(reactExports.isValidElement(C)&&(I=C.props),!isObject$y(I))return null;var N={};return Object.keys(I).forEach(function(L){var B;isValidSpreadableProp((B=I)===null||B===void 0?void 0:B[L],L,R,O)&&(N[L]=I[L])}),N},isChildrenEqual=function S(C,R){if(C===R)return!0;var O=reactExports.Children.count(C);if(O!==reactExports.Children.count(R))return!1;if(O===0)return!0;if(O===1)return isSingleChildEqual(Array.isArray(C)?C[0]:C,Array.isArray(R)?R[0]:R);for(var I=0;I=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$e(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}function Surface(S){var C=S.children,R=S.width,O=S.height,I=S.viewBox,N=S.className,L=S.style,B=S.title,j=S.desc,F=_objectWithoutProperties$e(S,_excluded$e),V=I||{width:R,height:O,x:0,y:0},K=clsx("recharts-surface",N);return React.createElement("svg",_extends$n({},filterProps(F,!0,"svg"),{className:K,width:R,height:O,style:L,viewBox:"".concat(V.x," ").concat(V.y," ").concat(V.width," ").concat(V.height)}),React.createElement("title",null,B),React.createElement("desc",null,j),C)}var _excluded$d=["children","className"];function _extends$m(){return _extends$m=Object.assign?Object.assign.bind():function(S){for(var C=1;C=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$d(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}var Layer=React.forwardRef(function(S,C){var R=S.children,O=S.className,I=_objectWithoutProperties$d(S,_excluded$d),N=clsx("recharts-layer",O);return React.createElement("g",_extends$m({className:N},filterProps(I,!0),{ref:C}),R)}),define_process_env_default$f={},isDev$1=define_process_env_default$f.NODE_ENV!=="production",warn$1=function S(C,R){for(var O=arguments.length,I=new Array(O>2?O-2:0),N=2;NI?0:I+C),R=R>I?I:R,R<0&&(R+=I),I=C>R?0:R-C>>>0,C>>>=0;for(var N=Array(I);++O=O?S:baseSlice(S,C,R)}var _castSlice=castSlice$1;function asciiToArray$1(S){return S.split("")}var _asciiToArray=asciiToArray$1,rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsVarRange="\\ufe0e\\ufe0f",rsAstral="["+rsAstralRange+"]",rsCombo="["+rsComboRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ="\\u200d",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");function unicodeToArray$1(S){return S.match(reUnicode)||[]}var _unicodeToArray=unicodeToArray$1,asciiToArray=_asciiToArray,hasUnicode$1=_hasUnicode,unicodeToArray=_unicodeToArray;function stringToArray$1(S){return hasUnicode$1(S)?unicodeToArray(S):asciiToArray(S)}var _stringToArray=stringToArray$1,castSlice=_castSlice,hasUnicode=_hasUnicode,stringToArray=_stringToArray,toString$1=toString_1;function createCaseFirst$1(S){return function(C){C=toString$1(C);var R=hasUnicode(C)?stringToArray(C):void 0,O=R?R[0]:C.charAt(0),I=R?castSlice(R,1).join(""):C.slice(1);return O[S]()+I}}var _createCaseFirst=createCaseFirst$1,createCaseFirst=_createCaseFirst,upperFirst=createCaseFirst("toUpperCase"),upperFirst_1=upperFirst;const upperFirst$1=getDefaultExportFromCjs(upperFirst_1);function constant$1(S){return function(){return S}}const cos=Math.cos,sin=Math.sin,sqrt$1=Math.sqrt,pi$1=Math.PI,tau$1=2*pi$1,pi=Math.PI,tau=2*pi,epsilon=1e-6,tauEpsilon=tau-epsilon;function append(S){this._+=S[0];for(let C=1,R=S.length;C=0))throw new Error(`invalid digits: ${S}`);if(C>15)return append;const R=10**C;return function(O){this._+=O[0];for(let I=1,N=O.length;Iepsilon)if(!(Math.abs(K*j-F*V)>epsilon)||!N)this._append`L${this._x1=C},${this._y1=R}`;else{let X=O-L,J=I-B,oe=j*j+F*F,pe=X*X+J*J,me=Math.sqrt(oe),xe=Math.sqrt(W),Ae=N*Math.tan((pi-Math.acos((oe+W-pe)/(2*me*xe)))/2),ge=Ae/xe,Te=Ae/me;Math.abs(ge-1)>epsilon&&this._append`L${C+ge*V},${R+ge*K}`,this._append`A${N},${N},0,0,${+(K*X>V*J)},${this._x1=C+Te*j},${this._y1=R+Te*F}`}}arc(C,R,O,I,N,L){if(C=+C,R=+R,O=+O,L=!!L,O<0)throw new Error(`negative radius: ${O}`);let B=O*Math.cos(I),j=O*Math.sin(I),F=C+B,V=R+j,K=1^L,W=L?I-N:N-I;this._x1===null?this._append`M${F},${V}`:(Math.abs(this._x1-F)>epsilon||Math.abs(this._y1-V)>epsilon)&&this._append`L${F},${V}`,O&&(W<0&&(W=W%tau+tau),W>tauEpsilon?this._append`A${O},${O},0,1,${K},${C-B},${R-j}A${O},${O},0,1,${K},${this._x1=F},${this._y1=V}`:W>epsilon&&this._append`A${O},${O},0,${+(W>=pi)},${K},${this._x1=C+O*Math.cos(N)},${this._y1=R+O*Math.sin(N)}`)}rect(C,R,O,I){this._append`M${this._x0=this._x1=+C},${this._y0=this._y1=+R}h${O=+O}v${+I}h${-O}Z`}toString(){return this._}}function withPath(S){let C=3;return S.digits=function(R){if(!arguments.length)return C;if(R==null)C=null;else{const O=Math.floor(R);if(!(O>=0))throw new RangeError(`invalid digits: ${R}`);C=O}return S},()=>new Path(C)}function array(S){return typeof S=="object"&&"length"in S?S:Array.from(S)}function Linear(S){this._context=S}Linear.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(S,C){switch(S=+S,C=+C,this._point){case 0:this._point=1,this._line?this._context.lineTo(S,C):this._context.moveTo(S,C);break;case 1:this._point=2;default:this._context.lineTo(S,C);break}}};function curveLinear(S){return new Linear(S)}function x(S){return S[0]}function y(S){return S[1]}function shapeLine(S,C){var R=constant$1(!0),O=null,I=curveLinear,N=null,L=withPath(B);S=typeof S=="function"?S:S===void 0?x:constant$1(S),C=typeof C=="function"?C:C===void 0?y:constant$1(C);function B(j){var F,V=(j=array(j)).length,K,W=!1,X;for(O==null&&(N=I(X=L())),F=0;F<=V;++F)!(F=X;--J)B.point(Ae[J],ge[J]);B.lineEnd(),B.areaEnd()}me&&(Ae[W]=+S(pe,W,K),ge[W]=+C(pe,W,K),B.point(O?+O(pe,W,K):Ae[W],R?+R(pe,W,K):ge[W]))}if(xe)return B=null,xe+""||null}function V(){return shapeLine().defined(I).curve(L).context(N)}return F.x=function(K){return arguments.length?(S=typeof K=="function"?K:constant$1(+K),O=null,F):S},F.x0=function(K){return arguments.length?(S=typeof K=="function"?K:constant$1(+K),F):S},F.x1=function(K){return arguments.length?(O=K==null?null:typeof K=="function"?K:constant$1(+K),F):O},F.y=function(K){return arguments.length?(C=typeof K=="function"?K:constant$1(+K),R=null,F):C},F.y0=function(K){return arguments.length?(C=typeof K=="function"?K:constant$1(+K),F):C},F.y1=function(K){return arguments.length?(R=K==null?null:typeof K=="function"?K:constant$1(+K),F):R},F.lineX0=F.lineY0=function(){return V().x(S).y(C)},F.lineY1=function(){return V().x(S).y(R)},F.lineX1=function(){return V().x(O).y(C)},F.defined=function(K){return arguments.length?(I=typeof K=="function"?K:constant$1(!!K),F):I},F.curve=function(K){return arguments.length?(L=K,N!=null&&(B=L(N)),F):L},F.context=function(K){return arguments.length?(K==null?N=B=null:B=L(N=K),F):N},F}class Bump{constructor(C,R){this._context=C,this._x=R}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(C,R){switch(C=+C,R=+R,this._point){case 0:{this._point=1,this._line?this._context.lineTo(C,R):this._context.moveTo(C,R);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+C)/2,this._y0,this._x0,R,C,R):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+R)/2,C,this._y0,C,R);break}}this._x0=C,this._y0=R}}function bumpX(S){return new Bump(S,!0)}function bumpY(S){return new Bump(S,!1)}const symbolCircle={draw(S,C){const R=sqrt$1(C/pi$1);S.moveTo(R,0),S.arc(0,0,R,0,tau$1)}},symbolCross={draw(S,C){const R=sqrt$1(C/5)/2;S.moveTo(-3*R,-R),S.lineTo(-R,-R),S.lineTo(-R,-3*R),S.lineTo(R,-3*R),S.lineTo(R,-R),S.lineTo(3*R,-R),S.lineTo(3*R,R),S.lineTo(R,R),S.lineTo(R,3*R),S.lineTo(-R,3*R),S.lineTo(-R,R),S.lineTo(-3*R,R),S.closePath()}},tan30=sqrt$1(1/3),tan30_2=tan30*2,symbolDiamond={draw(S,C){const R=sqrt$1(C/tan30_2),O=R*tan30;S.moveTo(0,-R),S.lineTo(O,0),S.lineTo(0,R),S.lineTo(-O,0),S.closePath()}},symbolSquare={draw(S,C){const R=sqrt$1(C),O=-R/2;S.rect(O,O,R,R)}},ka=.8908130915292852,kr=sin(pi$1/10)/sin(7*pi$1/10),kx=sin(tau$1/10)*kr,ky=-cos(tau$1/10)*kr,symbolStar={draw(S,C){const R=sqrt$1(C*ka),O=kx*R,I=ky*R;S.moveTo(0,-R),S.lineTo(O,I);for(let N=1;N<5;++N){const L=tau$1*N/5,B=cos(L),j=sin(L);S.lineTo(j*R,-B*R),S.lineTo(B*O-j*I,j*O+B*I)}S.closePath()}},sqrt3=sqrt$1(3),symbolTriangle={draw(S,C){const R=-sqrt$1(C/(sqrt3*3));S.moveTo(0,R*2),S.lineTo(-sqrt3*R,-R),S.lineTo(sqrt3*R,-R),S.closePath()}},c=-.5,s=sqrt$1(3)/2,k=1/sqrt$1(12),a=(k/2+1)*3,symbolWye={draw(S,C){const R=sqrt$1(C/a),O=R/2,I=R*k,N=O,L=R*k+R,B=-N,j=L;S.moveTo(O,I),S.lineTo(N,L),S.lineTo(B,j),S.lineTo(c*O-s*I,s*O+c*I),S.lineTo(c*N-s*L,s*N+c*L),S.lineTo(c*B-s*j,s*B+c*j),S.lineTo(c*O+s*I,c*I-s*O),S.lineTo(c*N+s*L,c*L-s*N),S.lineTo(c*B+s*j,c*j-s*B),S.closePath()}};function Symbol$1(S,C){let R=null,O=withPath(I);S=typeof S=="function"?S:constant$1(S||symbolCircle),C=typeof C=="function"?C:constant$1(C===void 0?64:+C);function I(){let N;if(R||(R=N=O()),S.apply(this,arguments).draw(R,+C.apply(this,arguments)),N)return R=null,N+""||null}return I.type=function(N){return arguments.length?(S=typeof N=="function"?N:constant$1(N),I):S},I.size=function(N){return arguments.length?(C=typeof N=="function"?N:constant$1(+N),I):C},I.context=function(N){return arguments.length?(R=N??null,I):R},I}function noop(){}function point$2(S,C,R){S._context.bezierCurveTo((2*S._x0+S._x1)/3,(2*S._y0+S._y1)/3,(S._x0+2*S._x1)/3,(S._y0+2*S._y1)/3,(S._x0+4*S._x1+C)/6,(S._y0+4*S._y1+R)/6)}function Basis(S){this._context=S}Basis.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:point$2(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(S,C){switch(S=+S,C=+C,this._point){case 0:this._point=1,this._line?this._context.lineTo(S,C):this._context.moveTo(S,C);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:point$2(this,S,C);break}this._x0=this._x1,this._x1=S,this._y0=this._y1,this._y1=C}};function curveBasis(S){return new Basis(S)}function BasisClosed(S){this._context=S}BasisClosed.prototype={areaStart:noop,areaEnd:noop,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(S,C){switch(S=+S,C=+C,this._point){case 0:this._point=1,this._x2=S,this._y2=C;break;case 1:this._point=2,this._x3=S,this._y3=C;break;case 2:this._point=3,this._x4=S,this._y4=C,this._context.moveTo((this._x0+4*this._x1+S)/6,(this._y0+4*this._y1+C)/6);break;default:point$2(this,S,C);break}this._x0=this._x1,this._x1=S,this._y0=this._y1,this._y1=C}};function curveBasisClosed(S){return new BasisClosed(S)}function BasisOpen(S){this._context=S}BasisOpen.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(S,C){switch(S=+S,C=+C,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var R=(this._x0+4*this._x1+S)/6,O=(this._y0+4*this._y1+C)/6;this._line?this._context.lineTo(R,O):this._context.moveTo(R,O);break;case 3:this._point=4;default:point$2(this,S,C);break}this._x0=this._x1,this._x1=S,this._y0=this._y1,this._y1=C}};function curveBasisOpen(S){return new BasisOpen(S)}function LinearClosed(S){this._context=S}LinearClosed.prototype={areaStart:noop,areaEnd:noop,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(S,C){S=+S,C=+C,this._point?this._context.lineTo(S,C):(this._point=1,this._context.moveTo(S,C))}};function curveLinearClosed(S){return new LinearClosed(S)}function sign(S){return S<0?-1:1}function slope3(S,C,R){var O=S._x1-S._x0,I=C-S._x1,N=(S._y1-S._y0)/(O||I<0&&-0),L=(R-S._y1)/(I||O<0&&-0),B=(N*I+L*O)/(O+I);return(sign(N)+sign(L))*Math.min(Math.abs(N),Math.abs(L),.5*Math.abs(B))||0}function slope2(S,C){var R=S._x1-S._x0;return R?(3*(S._y1-S._y0)/R-C)/2:C}function point$1(S,C,R){var O=S._x0,I=S._y0,N=S._x1,L=S._y1,B=(N-O)/3;S._context.bezierCurveTo(O+B,I+B*C,N-B,L-B*R,N,L)}function MonotoneX(S){this._context=S}MonotoneX.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:point$1(this,this._t0,slope2(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(S,C){var R=NaN;if(S=+S,C=+C,!(S===this._x1&&C===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(S,C):this._context.moveTo(S,C);break;case 1:this._point=2;break;case 2:this._point=3,point$1(this,slope2(this,R=slope3(this,S,C)),R);break;default:point$1(this,this._t0,R=slope3(this,S,C));break}this._x0=this._x1,this._x1=S,this._y0=this._y1,this._y1=C,this._t0=R}}};function MonotoneY(S){this._context=new ReflectContext(S)}(MonotoneY.prototype=Object.create(MonotoneX.prototype)).point=function(S,C){MonotoneX.prototype.point.call(this,C,S)};function ReflectContext(S){this._context=S}ReflectContext.prototype={moveTo:function(S,C){this._context.moveTo(C,S)},closePath:function(){this._context.closePath()},lineTo:function(S,C){this._context.lineTo(C,S)},bezierCurveTo:function(S,C,R,O,I,N){this._context.bezierCurveTo(C,S,O,R,N,I)}};function monotoneX(S){return new MonotoneX(S)}function monotoneY(S){return new MonotoneY(S)}function Natural(S){this._context=S}Natural.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var S=this._x,C=this._y,R=S.length;if(R)if(this._line?this._context.lineTo(S[0],C[0]):this._context.moveTo(S[0],C[0]),R===2)this._context.lineTo(S[1],C[1]);else for(var O=controlPoints(S),I=controlPoints(C),N=0,L=1;L=0;--C)I[C]=(L[C]-I[C+1])/N[C];for(N[R-1]=(S[R]+I[R-1])/2,C=0;C=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(S,C){switch(S=+S,C=+C,this._point){case 0:this._point=1,this._line?this._context.lineTo(S,C):this._context.moveTo(S,C);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,C),this._context.lineTo(S,C);else{var R=this._x*(1-this._t)+S*this._t;this._context.lineTo(R,this._y),this._context.lineTo(R,C)}break}}this._x=S,this._y=C}};function curveStep(S){return new Step(S,.5)}function stepBefore(S){return new Step(S,0)}function stepAfter(S){return new Step(S,1)}function stackOffsetNone(S,C){if((L=S.length)>1)for(var R=1,O,I,N=S[C[0]],L,B=N.length;R=0;)R[C]=C;return R}function stackValue(S,C){return S[C]}function stackSeries(S){const C=[];return C.key=S,C}function shapeStack(){var S=constant$1([]),C=stackOrderNone,R=stackOffsetNone,O=stackValue;function I(N){var L=Array.from(S.apply(this,arguments),stackSeries),B,j=L.length,F=-1,V;for(const K of N)for(B=0,++F;B0){for(var R,O,I=0,N=S[0].length,L;I0){for(var R=0,O=S[C[0]],I,N=O.length;R0)||!((N=(I=S[C[0]]).length)>0))){for(var R=0,O=1,I,N,L;O=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$c(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}var symbolFactories={symbolCircle,symbolCross,symbolDiamond,symbolSquare,symbolStar,symbolTriangle,symbolWye},RADIAN$2=Math.PI/180,getSymbolFactory=function S(C){var R="symbol".concat(upperFirst$1(C));return symbolFactories[R]||symbolCircle},calculateAreaSize=function S(C,R,O){if(R==="area")return C;switch(O){case"cross":return 5*C*C/9;case"diamond":return .5*C*C/Math.sqrt(3);case"square":return C*C;case"star":{var I=18*RADIAN$2;return 1.25*C*C*(Math.tan(I)-Math.tan(I*2)*Math.pow(Math.tan(I),2))}case"triangle":return Math.sqrt(3)*C*C/4;case"wye":return(21-10*Math.sqrt(3))*C*C/8;default:return Math.PI*C*C/4}},registerSymbol=function S(C,R){symbolFactories["symbol".concat(upperFirst$1(C))]=R},Symbols=function S(C){var R=C.type,O=R===void 0?"circle":R,I=C.size,N=I===void 0?64:I,L=C.sizeType,B=L===void 0?"area":L,j=_objectWithoutProperties$c(C,_excluded$c),F=_objectSpread$x(_objectSpread$x({},j),{},{type:O,size:N,sizeType:B}),V=function(){var pe=getSymbolFactory(O),me=Symbol$1().type(pe).size(calculateAreaSize(N,B,O));return me()},K=F.className,W=F.cx,X=F.cy,J=filterProps(F,!0);return W===+W&&X===+X&&N===+N?React.createElement("path",_extends$l({},J,{className:clsx("recharts-symbols",K),transform:"translate(".concat(W,", ").concat(X,")"),d:V()})):null};Symbols.registerSymbol=registerSymbol;function _typeof$A(S){"@babel/helpers - typeof";return _typeof$A=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$A(S)}function _extends$k(){return _extends$k=Object.assign?Object.assign.bind():function(S){for(var C=1;C"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$a(S){return _getPrototypeOf$a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(R){return R.__proto__||Object.getPrototypeOf(R)},_getPrototypeOf$a(S)}function _defineProperty$y(S,C,R){return C=_toPropertyKey$z(C),C in S?Object.defineProperty(S,C,{value:R,enumerable:!0,configurable:!0,writable:!0}):S[C]=R,S}function _toPropertyKey$z(S){var C=_toPrimitive$z(S,"string");return _typeof$A(C)==="symbol"?C:String(C)}function _toPrimitive$z(S,C){if(_typeof$A(S)!=="object"||S===null)return S;var R=S[Symbol.toPrimitive];if(R!==void 0){var O=R.call(S,C||"default");if(_typeof$A(O)!=="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(C==="string"?String:Number)(S)}var SIZE=32,DefaultLegendContent=function(S){_inherits$a(R,S);var C=_createSuper$a(R);function R(){return _classCallCheck$d(this,R),C.apply(this,arguments)}return _createClass$d(R,[{key:"renderIcon",value:function(I){var N=this.props.inactiveColor,L=SIZE/2,B=SIZE/6,j=SIZE/3,F=I.inactive?N:I.color;if(I.type==="plainline")return React.createElement("line",{strokeWidth:4,fill:"none",stroke:F,strokeDasharray:I.payload.strokeDasharray,x1:0,y1:L,x2:SIZE,y2:L,className:"recharts-legend-icon"});if(I.type==="line")return React.createElement("path",{strokeWidth:4,fill:"none",stroke:F,d:"M0,".concat(L,"h").concat(j,` - A`).concat(B,",").concat(B,",0,1,1,").concat(2*j,",").concat(L,` - H`).concat(SIZE,"M").concat(2*j,",").concat(L,` - A`).concat(B,",").concat(B,",0,1,1,").concat(j,",").concat(L),className:"recharts-legend-icon"});if(I.type==="rect")return React.createElement("path",{stroke:"none",fill:F,d:"M0,".concat(SIZE/8,"h").concat(SIZE,"v").concat(SIZE*3/4,"h").concat(-SIZE,"z"),className:"recharts-legend-icon"});if(React.isValidElement(I.legendIcon)){var V=_objectSpread$w({},I);return delete V.legendIcon,React.cloneElement(I.legendIcon,V)}return React.createElement(Symbols,{fill:F,cx:L,cy:L,size:SIZE,sizeType:"diameter",type:I.type})}},{key:"renderItems",value:function(){var I=this,N=this.props,L=N.payload,B=N.iconSize,j=N.layout,F=N.formatter,V=N.inactiveColor,K={x:0,y:0,width:SIZE,height:SIZE},W={display:j==="horizontal"?"inline-block":"block",marginRight:10},X={display:"inline-block",verticalAlign:"middle",marginRight:4};return L.map(function(J,oe){var pe,me=J.formatter||F,xe=clsx((pe={"recharts-legend-item":!0},_defineProperty$y(pe,"legend-item-".concat(oe),!0),_defineProperty$y(pe,"inactive",J.inactive),pe));if(J.type==="none")return null;var Ae=isFunction$6(J.value)?null:J.value;warn$1(!isFunction$6(J.value),`The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: `);var ge=J.inactive?V:J.color;return React.createElement("li",_extends$k({className:xe,style:W,key:"legend-item-".concat(oe)},adaptEventsOfChild(I.props,J,oe)),React.createElement(Surface,{width:B,height:B,viewBox:K,style:X},I.renderIcon(J)),React.createElement("span",{className:"recharts-legend-item-text",style:{color:ge}},me?me(Ae,J,oe):Ae))})}},{key:"render",value:function(){var I=this.props,N=I.payload,L=I.layout,B=I.align;if(!N||!N.length)return null;var j={padding:0,margin:0,textAlign:L==="horizontal"?B:"left"};return React.createElement("ul",{className:"recharts-default-legend",style:j},this.renderItems())}}]),R}(reactExports.PureComponent);_defineProperty$y(DefaultLegendContent,"displayName","Legend"),_defineProperty$y(DefaultLegendContent,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var baseIteratee$3=_baseIteratee,baseUniq=_baseUniq;function uniqBy(S,C){return S&&S.length?baseUniq(S,baseIteratee$3(C)):[]}var uniqBy_1=uniqBy;const uniqBy$1=getDefaultExportFromCjs(uniqBy_1);function getUniqPayload(S,C,R){return C===!0?uniqBy$1(S,R):isFunction$6(C)?uniqBy$1(S,C):S}function _typeof$z(S){"@babel/helpers - typeof";return _typeof$z=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$z(S)}var _excluded$b=["ref"];function ownKeys$v(S,C){var R=Object.keys(S);if(Object.getOwnPropertySymbols){var O=Object.getOwnPropertySymbols(S);C&&(O=O.filter(function(I){return Object.getOwnPropertyDescriptor(S,I).enumerable})),R.push.apply(R,O)}return R}function _objectSpread$v(S){for(var C=1;C"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$9(S){return _getPrototypeOf$9=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(R){return R.__proto__||Object.getPrototypeOf(R)},_getPrototypeOf$9(S)}function _defineProperty$x(S,C,R){return C=_toPropertyKey$y(C),C in S?Object.defineProperty(S,C,{value:R,enumerable:!0,configurable:!0,writable:!0}):S[C]=R,S}function _toPropertyKey$y(S){var C=_toPrimitive$y(S,"string");return _typeof$z(C)==="symbol"?C:String(C)}function _toPrimitive$y(S,C){if(_typeof$z(S)!=="object"||S===null)return S;var R=S[Symbol.toPrimitive];if(R!==void 0){var O=R.call(S,C||"default");if(_typeof$z(O)!=="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(C==="string"?String:Number)(S)}function _objectWithoutProperties$b(S,C){if(S==null)return{};var R=_objectWithoutPropertiesLoose$b(S,C),O,I;if(Object.getOwnPropertySymbols){var N=Object.getOwnPropertySymbols(S);for(I=0;I=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$b(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}function defaultUniqBy$1(S){return S.value}function renderContent$1(S,C){if(React.isValidElement(S))return React.cloneElement(S,C);if(typeof S=="function")return React.createElement(S,C);C.ref;var R=_objectWithoutProperties$b(C,_excluded$b);return React.createElement(DefaultLegendContent,R)}var EPS$1=1,Legend=function(S){_inherits$9(R,S);var C=_createSuper$9(R);function R(){var O;_classCallCheck$c(this,R);for(var I=arguments.length,N=new Array(I),L=0;LEPS$1||Math.abs(N.height-this.lastBoundingBox.height)>EPS$1)&&(this.lastBoundingBox.width=N.width,this.lastBoundingBox.height=N.height,I&&I(N))}else(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,I&&I(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?_objectSpread$v({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(I){var N=this.props,L=N.layout,B=N.align,j=N.verticalAlign,F=N.margin,V=N.chartWidth,K=N.chartHeight,W,X;if(!I||(I.left===void 0||I.left===null)&&(I.right===void 0||I.right===null))if(B==="center"&&L==="vertical"){var J=this.getBBoxSnapshot();W={left:((V||0)-J.width)/2}}else W=B==="right"?{right:F&&F.right||0}:{left:F&&F.left||0};if(!I||(I.top===void 0||I.top===null)&&(I.bottom===void 0||I.bottom===null))if(j==="middle"){var oe=this.getBBoxSnapshot();X={top:((K||0)-oe.height)/2}}else X=j==="bottom"?{bottom:F&&F.bottom||0}:{top:F&&F.top||0};return _objectSpread$v(_objectSpread$v({},W),X)}},{key:"render",value:function(){var I=this,N=this.props,L=N.content,B=N.width,j=N.height,F=N.wrapperStyle,V=N.payloadUniqBy,K=N.payload,W=_objectSpread$v(_objectSpread$v({position:"absolute",width:B||"auto",height:j||"auto"},this.getDefaultPosition(F)),F);return React.createElement("div",{className:"recharts-legend-wrapper",style:W,ref:function(J){I.wrapperNode=J}},renderContent$1(L,_objectSpread$v(_objectSpread$v({},this.props),{},{payload:getUniqPayload(K,V,defaultUniqBy$1)})))}}],[{key:"getWithHeight",value:function(I,N){var L=I.props.layout;return L==="vertical"&&isNumber(I.props.height)?{height:I.props.height}:L==="horizontal"?{width:I.props.width||N}:null}}]),R}(reactExports.PureComponent);_defineProperty$x(Legend,"displayName","Legend"),_defineProperty$x(Legend,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});function _typeof$y(S){"@babel/helpers - typeof";return _typeof$y=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$y(S)}function _slicedToArray$b(S,C){return _arrayWithHoles$c(S)||_iterableToArrayLimit$b(S,C)||_unsupportedIterableToArray$j(S,C)||_nonIterableRest$c()}function _nonIterableRest$c(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$j(S,C){if(S){if(typeof S=="string")return _arrayLikeToArray$j(S,C);var R=Object.prototype.toString.call(S).slice(8,-1);if(R==="Object"&&S.constructor&&(R=S.constructor.name),R==="Map"||R==="Set")return Array.from(S);if(R==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(R))return _arrayLikeToArray$j(S,C)}}function _arrayLikeToArray$j(S,C){(C==null||C>S.length)&&(C=S.length);for(var R=0,O=new Array(C);R0;)if(!R.equals(S[O],C[O],O,O,S,C,R))return!1;return!0}function areDatesEqual(S,C){return sameValueZeroEqual(S.getTime(),C.getTime())}function areMapsEqual(S,C,R){if(S.size!==C.size)return!1;for(var O={},I=S.entries(),N=0,L,B;(L=I.next())&&!L.done;){for(var j=C.entries(),F=!1,V=0;(B=j.next())&&!B.done;){var K=L.value,W=K[0],X=K[1],J=B.value,oe=J[0],pe=J[1];!F&&!O[V]&&(F=R.equals(W,oe,N,V,S,C,R)&&R.equals(X,pe,W,oe,S,C,R))&&(O[V]=!0),V++}if(!F)return!1;N++}return!0}function areObjectsEqual(S,C,R){var O=keys(S),I=O.length;if(keys(C).length!==I)return!1;for(var N;I-- >0;)if(N=O[I],N===OWNER&&(S.$$typeof||C.$$typeof)&&S.$$typeof!==C.$$typeof||!hasOwn(C,N)||!R.equals(S[N],C[N],N,N,S,C,R))return!1;return!0}function areObjectsEqualStrict(S,C,R){var O=getStrictProperties(S),I=O.length;if(getStrictProperties(C).length!==I)return!1;for(var N,L,B;I-- >0;)if(N=O[I],N===OWNER&&(S.$$typeof||C.$$typeof)&&S.$$typeof!==C.$$typeof||!hasOwn(C,N)||!R.equals(S[N],C[N],N,N,S,C,R)||(L=getOwnPropertyDescriptor(S,N),B=getOwnPropertyDescriptor(C,N),(L||B)&&(!L||!B||L.configurable!==B.configurable||L.enumerable!==B.enumerable||L.writable!==B.writable)))return!1;return!0}function arePrimitiveWrappersEqual(S,C){return sameValueZeroEqual(S.valueOf(),C.valueOf())}function areRegExpsEqual(S,C){return S.source===C.source&&S.flags===C.flags}function areSetsEqual(S,C,R){if(S.size!==C.size)return!1;for(var O={},I=S.values(),N,L;(N=I.next())&&!N.done;){for(var B=C.values(),j=!1,F=0;(L=B.next())&&!L.done;)!j&&!O[F]&&(j=R.equals(N.value,L.value,N.value,L.value,S,C,R))&&(O[F]=!0),F++;if(!j)return!1}return!0}function areTypedArraysEqual(S,C){var R=S.length;if(C.length!==R)return!1;for(;R-- >0;)if(S[R]!==C[R])return!1;return!0}var ARGUMENTS_TAG="[object Arguments]",BOOLEAN_TAG="[object Boolean]",DATE_TAG="[object Date]",MAP_TAG="[object Map]",NUMBER_TAG="[object Number]",OBJECT_TAG="[object Object]",REG_EXP_TAG="[object RegExp]",SET_TAG="[object Set]",STRING_TAG="[object String]",isArray$2=Array.isArray,isTypedArray=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,assign=Object.assign,getTag=Object.prototype.toString.call.bind(Object.prototype.toString);function createEqualityComparator(S){var C=S.areArraysEqual,R=S.areDatesEqual,O=S.areMapsEqual,I=S.areObjectsEqual,N=S.arePrimitiveWrappersEqual,L=S.areRegExpsEqual,B=S.areSetsEqual,j=S.areTypedArraysEqual;return function(V,K,W){if(V===K)return!0;if(V==null||K==null||typeof V!="object"||typeof K!="object")return V!==V&&K!==K;var X=V.constructor;if(X!==K.constructor)return!1;if(X===Object)return I(V,K,W);if(isArray$2(V))return C(V,K,W);if(isTypedArray!=null&&isTypedArray(V))return j(V,K,W);if(X===Date)return R(V,K,W);if(X===RegExp)return L(V,K,W);if(X===Map)return O(V,K,W);if(X===Set)return B(V,K,W);var J=getTag(V);return J===DATE_TAG?R(V,K,W):J===REG_EXP_TAG?L(V,K,W):J===MAP_TAG?O(V,K,W):J===SET_TAG?B(V,K,W):J===OBJECT_TAG?typeof V.then!="function"&&typeof K.then!="function"&&I(V,K,W):J===ARGUMENTS_TAG?I(V,K,W):J===BOOLEAN_TAG||J===NUMBER_TAG||J===STRING_TAG?N(V,K,W):!1}}function createEqualityComparatorConfig(S){var C=S.circular,R=S.createCustomConfig,O=S.strict,I={areArraysEqual:O?areObjectsEqualStrict:areArraysEqual,areDatesEqual,areMapsEqual:O?combineComparators(areMapsEqual,areObjectsEqualStrict):areMapsEqual,areObjectsEqual:O?areObjectsEqualStrict:areObjectsEqual,arePrimitiveWrappersEqual,areRegExpsEqual,areSetsEqual:O?combineComparators(areSetsEqual,areObjectsEqualStrict):areSetsEqual,areTypedArraysEqual:O?areObjectsEqualStrict:areTypedArraysEqual};if(R&&(I=assign({},I,R(I))),C){var N=createIsCircular(I.areArraysEqual),L=createIsCircular(I.areMapsEqual),B=createIsCircular(I.areObjectsEqual),j=createIsCircular(I.areSetsEqual);I=assign({},I,{areArraysEqual:N,areMapsEqual:L,areObjectsEqual:B,areSetsEqual:j})}return I}function createInternalEqualityComparator(S){return function(C,R,O,I,N,L,B){return S(C,R,B)}}function createIsEqual(S){var C=S.circular,R=S.comparator,O=S.createState,I=S.equals,N=S.strict;if(O)return function(j,F){var V=O(),K=V.cache,W=K===void 0?C?new WeakMap:void 0:K,X=V.meta;return R(j,F,{cache:W,equals:I,meta:X,strict:N})};if(C)return function(j,F){return R(j,F,{cache:new WeakMap,equals:I,meta:void 0,strict:N})};var L={cache:void 0,equals:I,meta:void 0,strict:N};return function(j,F){return R(j,F,L)}}var deepEqual=createCustomEqual();createCustomEqual({strict:!0}),createCustomEqual({circular:!0}),createCustomEqual({circular:!0,strict:!0}),createCustomEqual({createInternalComparator:function(){return sameValueZeroEqual}}),createCustomEqual({strict:!0,createInternalComparator:function(){return sameValueZeroEqual}}),createCustomEqual({circular:!0,createInternalComparator:function(){return sameValueZeroEqual}}),createCustomEqual({circular:!0,createInternalComparator:function(){return sameValueZeroEqual},strict:!0});function createCustomEqual(S){S===void 0&&(S={});var C=S.circular,R=C===void 0?!1:C,O=S.createInternalComparator,I=S.createState,N=S.strict,L=N===void 0?!1:N,B=createEqualityComparatorConfig(S),j=createEqualityComparator(B),F=O?O(j):createInternalEqualityComparator(j);return createIsEqual({circular:R,comparator:j,createState:I,equals:F,strict:L})}function safeRequestAnimationFrame(S){typeof requestAnimationFrame<"u"&&requestAnimationFrame(S)}function setRafTimeout(S){var C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,R=-1,O=function I(N){R<0&&(R=N),N-R>C?(S(N),R=-1):safeRequestAnimationFrame(I)};requestAnimationFrame(O)}function _typeof$x(S){"@babel/helpers - typeof";return _typeof$x=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$x(S)}function _toArray(S){return _arrayWithHoles$b(S)||_iterableToArray$b(S)||_unsupportedIterableToArray$i(S)||_nonIterableRest$b()}function _nonIterableRest$b(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$i(S,C){if(S){if(typeof S=="string")return _arrayLikeToArray$i(S,C);var R=Object.prototype.toString.call(S).slice(8,-1);if(R==="Object"&&S.constructor&&(R=S.constructor.name),R==="Map"||R==="Set")return Array.from(S);if(R==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(R))return _arrayLikeToArray$i(S,C)}}function _arrayLikeToArray$i(S,C){(C==null||C>S.length)&&(C=S.length);for(var R=0,O=new Array(C);RS.length)&&(C=S.length);for(var R=0,O=new Array(C);R=0&&pe<=1}),"[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s",R);var K=cubicBezier(I,L),W=cubicBezier(N,B),X=derivativeCubicBezier(I,L),J=function(me){return me>1?1:me<0?0:me},oe=function(me){for(var xe=me>1?1:me,Ae=xe,ge=0;ge<8;++ge){var Te=K(Ae)-xe,we=X(Ae);if(Math.abs(Te-xe)0&&arguments[0]!==void 0?arguments[0]:{},R=C.stiff,O=R===void 0?100:R,I=C.damping,N=I===void 0?8:I,L=C.dt,B=L===void 0?17:L,j=function(V,K,W){var X=-(V-K)*O,J=W*N,oe=W+(X-J)*B/1e3,pe=W*B/1e3+V;return Math.abs(pe-K)S.length)&&(C=S.length);for(var R=0,O=new Array(C);R=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$a(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}function _toConsumableArray$8(S){return _arrayWithoutHoles$8(S)||_iterableToArray$8(S)||_unsupportedIterableToArray$f(S)||_nonIterableSpread$8()}function _nonIterableSpread$8(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$f(S,C){if(S){if(typeof S=="string")return _arrayLikeToArray$f(S,C);var R=Object.prototype.toString.call(S).slice(8,-1);if(R==="Object"&&S.constructor&&(R=S.constructor.name),R==="Map"||R==="Set")return Array.from(S);if(R==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(R))return _arrayLikeToArray$f(S,C)}}function _iterableToArray$8(S){if(typeof Symbol<"u"&&S[Symbol.iterator]!=null||S["@@iterator"]!=null)return Array.from(S)}function _arrayWithoutHoles$8(S){if(Array.isArray(S))return _arrayLikeToArray$f(S)}function _arrayLikeToArray$f(S,C){(C==null||C>S.length)&&(C=S.length);for(var R=0,O=new Array(C);R"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$8(S){return _getPrototypeOf$8=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(R){return R.__proto__||Object.getPrototypeOf(R)},_getPrototypeOf$8(S)}var Animate=function(S){_inherits$8(R,S);var C=_createSuper$8(R);function R(O,I){var N;_classCallCheck$b(this,R),N=C.call(this,O,I);var L=N.props,B=L.isActive,j=L.attributeName,F=L.from,V=L.to,K=L.steps,W=L.children,X=L.duration;if(N.handleStyleChange=N.handleStyleChange.bind(_assertThisInitialized$8(N)),N.changeStyle=N.changeStyle.bind(_assertThisInitialized$8(N)),!B||X<=0)return N.state={style:{}},typeof W=="function"&&(N.state={style:V}),_possibleConstructorReturn$8(N);if(K&&K.length)N.state={style:K[0].style};else if(F){if(typeof W=="function")return N.state={style:F},_possibleConstructorReturn$8(N);N.state={style:j?_defineProperty$t({},j,F):F}}else N.state={style:{}};return N}return _createClass$b(R,[{key:"componentDidMount",value:function(){var I=this.props,N=I.isActive,L=I.canBegin;this.mounted=!0,!(!N||!L)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(I){var N=this.props,L=N.isActive,B=N.canBegin,j=N.attributeName,F=N.shouldReAnimate,V=N.to,K=N.from,W=this.state.style;if(B){if(!L){var X={style:j?_defineProperty$t({},j,V):V};this.state&&W&&(j&&W[j]!==V||!j&&W!==V)&&this.setState(X);return}if(!(deepEqual(I.to,V)&&I.canBegin&&I.isActive)){var J=!I.canBegin||!I.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var oe=J||F?K:I.to;if(this.state&&W){var pe={style:j?_defineProperty$t({},j,oe):oe};(j&&[j]!==oe||!j&&W!==oe)&&this.setState(pe)}this.runAnimation(_objectSpread$r(_objectSpread$r({},this.props),{},{from:oe,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var I=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),I&&I()}},{key:"handleStyleChange",value:function(I){this.changeStyle(I)}},{key:"changeStyle",value:function(I){this.mounted&&this.setState({style:I})}},{key:"runJSAnimation",value:function(I){var N=this,L=I.from,B=I.to,j=I.duration,F=I.easing,V=I.begin,K=I.onAnimationEnd,W=I.onAnimationStart,X=configUpdate(L,B,configEasing(F),j,this.changeStyle),J=function(){N.stopJSAnimation=X()};this.manager.start([W,V,J,j,K])}},{key:"runStepAnimation",value:function(I){var N=this,L=I.steps,B=I.begin,j=I.onAnimationStart,F=L[0],V=F.style,K=F.duration,W=K===void 0?0:K,X=function(oe,pe,me){if(me===0)return oe;var xe=pe.duration,Ae=pe.easing,ge=Ae===void 0?"ease":Ae,Te=pe.style,we=pe.properties,ke=pe.onAnimationEnd,Be=me>0?L[me-1]:pe,Ie=we||Object.keys(Te);if(typeof ge=="function"||ge==="spring")return[].concat(_toConsumableArray$8(oe),[N.runJSAnimation.bind(N,{from:Be.style,to:Te,duration:xe,easing:ge}),xe]);var je=getTransitionVal(Ie,xe,ge),Ke=_objectSpread$r(_objectSpread$r(_objectSpread$r({},Be.style),Te),{},{transition:je});return[].concat(_toConsumableArray$8(oe),[Ke,xe,ke]).filter(identity$3)};return this.manager.start([j].concat(_toConsumableArray$8(L.reduce(X,[V,Math.max(W,B)])),[I.onAnimationEnd]))}},{key:"runAnimation",value:function(I){this.manager||(this.manager=createAnimateManager());var N=I.begin,L=I.duration,B=I.attributeName,j=I.to,F=I.easing,V=I.onAnimationStart,K=I.onAnimationEnd,W=I.steps,X=I.children,J=this.manager;if(this.unSubscribe=J.subscribe(this.handleStyleChange),typeof F=="function"||typeof X=="function"||F==="spring"){this.runJSAnimation(I);return}if(W.length>1){this.runStepAnimation(I);return}var oe=B?_defineProperty$t({},B,j):j,pe=getTransitionVal(Object.keys(oe),L,F);J.start([V,N,_objectSpread$r(_objectSpread$r({},oe),{},{transition:pe}),L,K])}},{key:"render",value:function(){var I=this.props,N=I.children;I.begin;var L=I.duration;I.attributeName,I.easing;var B=I.isActive;I.steps,I.from,I.to,I.canBegin,I.onAnimationEnd,I.shouldReAnimate,I.onAnimationReStart;var j=_objectWithoutProperties$a(I,_excluded$a),F=reactExports.Children.count(N),V=translateStyle(this.state.style);if(typeof N=="function")return N(V);if(!B||F===0||L<=0)return N;var K=function(X){var J=X.props,oe=J.style,pe=oe===void 0?{}:oe,me=J.className,xe=reactExports.cloneElement(X,_objectSpread$r(_objectSpread$r({},j),{},{style:_objectSpread$r(_objectSpread$r({},pe),V),className:me}));return xe};return F===1?K(reactExports.Children.only(N)):React.createElement("div",null,reactExports.Children.map(N,function(W){return K(W)}))}}]),R}(reactExports.PureComponent);Animate.displayName="Animate",Animate.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function S(){},onAnimationStart:function S(){}},Animate.propTypes={from:PropTypes$1.oneOfType([PropTypes$1.object,PropTypes$1.string]),to:PropTypes$1.oneOfType([PropTypes$1.object,PropTypes$1.string]),attributeName:PropTypes$1.string,duration:PropTypes$1.number,begin:PropTypes$1.number,easing:PropTypes$1.oneOfType([PropTypes$1.string,PropTypes$1.func]),steps:PropTypes$1.arrayOf(PropTypes$1.shape({duration:PropTypes$1.number.isRequired,style:PropTypes$1.object.isRequired,easing:PropTypes$1.oneOfType([PropTypes$1.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),PropTypes$1.func]),properties:PropTypes$1.arrayOf("string"),onAnimationEnd:PropTypes$1.func})),children:PropTypes$1.oneOfType([PropTypes$1.node,PropTypes$1.func]),isActive:PropTypes$1.bool,canBegin:PropTypes$1.bool,onAnimationEnd:PropTypes$1.func,shouldReAnimate:PropTypes$1.bool,onAnimationStart:PropTypes$1.func,onAnimationReStart:PropTypes$1.func},Number.isFinite===void 0&&(Number.isFinite=function(S){return typeof S=="number"&&isFinite(S)}),PropTypes$1.object,PropTypes$1.object,PropTypes$1.object,PropTypes$1.element,PropTypes$1.object,PropTypes$1.object,PropTypes$1.object,PropTypes$1.oneOfType([PropTypes$1.array,PropTypes$1.element]),PropTypes$1.any;function _typeof$t(S){"@babel/helpers - typeof";return _typeof$t=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$t(S)}function _defineProperty$s(S,C,R){return C=_toPropertyKey$t(C),C in S?Object.defineProperty(S,C,{value:R,enumerable:!0,configurable:!0,writable:!0}):S[C]=R,S}function _toPropertyKey$t(S){var C=_toPrimitive$t(S,"string");return _typeof$t(C)==="symbol"?C:String(C)}function _toPrimitive$t(S,C){if(_typeof$t(S)!=="object"||S===null)return S;var R=S[Symbol.toPrimitive];if(R!==void 0){var O=R.call(S,C||"default");if(_typeof$t(O)!=="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(C==="string"?String:Number)(S)}var CSS_CLASS_PREFIX="recharts-tooltip-wrapper",TOOLTIP_HIDDEN={visibility:"hidden"};function getTooltipCSSClassName(S){var C,R=S.coordinate,O=S.translateX,I=S.translateY;return clsx(CSS_CLASS_PREFIX,(C={},_defineProperty$s(C,"".concat(CSS_CLASS_PREFIX,"-right"),isNumber(O)&&R&&isNumber(R.x)&&O>=R.x),_defineProperty$s(C,"".concat(CSS_CLASS_PREFIX,"-left"),isNumber(O)&&R&&isNumber(R.x)&&O=R.y),_defineProperty$s(C,"".concat(CSS_CLASS_PREFIX,"-top"),isNumber(I)&&R&&isNumber(R.y)&&Ioe?Math.max(V,j[O]):Math.max(K,j[O])}function getTransformStyle(S){var C=S.translateX,R=S.translateY,O=S.useTranslate3d;return translateStyle({transform:O?"translate3d(".concat(C,"px, ").concat(R,"px, 0)"):"translate(".concat(C,"px, ").concat(R,"px)")})}function getTooltipTranslate(S){var C=S.allowEscapeViewBox,R=S.coordinate,O=S.offsetTopLeft,I=S.position,N=S.reverseDirection,L=S.tooltipBox,B=S.useTranslate3d,j=S.viewBox,F,V,K;return L.height>0&&L.width>0&&R?(V=getTooltipTranslateXY({allowEscapeViewBox:C,coordinate:R,key:"x",offsetTopLeft:O,position:I,reverseDirection:N,tooltipDimension:L.width,viewBox:j,viewBoxDimension:j.width}),K=getTooltipTranslateXY({allowEscapeViewBox:C,coordinate:R,key:"y",offsetTopLeft:O,position:I,reverseDirection:N,tooltipDimension:L.height,viewBox:j,viewBoxDimension:j.height}),F=getTransformStyle({translateX:V,translateY:K,useTranslate3d:B})):F=TOOLTIP_HIDDEN,{cssProperties:F,cssClasses:getTooltipCSSClassName({translateX:V,translateY:K,coordinate:R})}}function _typeof$s(S){"@babel/helpers - typeof";return _typeof$s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$s(S)}function ownKeys$q(S,C){var R=Object.keys(S);if(Object.getOwnPropertySymbols){var O=Object.getOwnPropertySymbols(S);C&&(O=O.filter(function(I){return Object.getOwnPropertyDescriptor(S,I).enumerable})),R.push.apply(R,O)}return R}function _objectSpread$q(S){for(var C=1;C"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$7(S){return _getPrototypeOf$7=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(R){return R.__proto__||Object.getPrototypeOf(R)},_getPrototypeOf$7(S)}function _defineProperty$r(S,C,R){return C=_toPropertyKey$s(C),C in S?Object.defineProperty(S,C,{value:R,enumerable:!0,configurable:!0,writable:!0}):S[C]=R,S}function _toPropertyKey$s(S){var C=_toPrimitive$s(S,"string");return _typeof$s(C)==="symbol"?C:String(C)}function _toPrimitive$s(S,C){if(_typeof$s(S)!=="object"||S===null)return S;var R=S[Symbol.toPrimitive];if(R!==void 0){var O=R.call(S,C||"default");if(_typeof$s(O)!=="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(C==="string"?String:Number)(S)}var EPSILON=1,TooltipBoundingBox=function(S){_inherits$7(R,S);var C=_createSuper$7(R);function R(){var O;_classCallCheck$a(this,R);for(var I=arguments.length,N=new Array(I),L=0;LEPSILON||Math.abs(I.height-this.lastBoundingBox.height)>EPSILON)&&(this.lastBoundingBox.width=I.width,this.lastBoundingBox.height=I.height)}else(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1)}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var I,N;this.props.active&&this.updateBBox(),this.state.dismissed&&(((I=this.props.coordinate)===null||I===void 0?void 0:I.x)!==this.state.dismissedAtCoordinate.x||((N=this.props.coordinate)===null||N===void 0?void 0:N.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var I=this,N=this.props,L=N.active,B=N.allowEscapeViewBox,j=N.animationDuration,F=N.animationEasing,V=N.children,K=N.coordinate,W=N.hasPayload,X=N.isAnimationActive,J=N.offset,oe=N.position,pe=N.reverseDirection,me=N.useTranslate3d,xe=N.viewBox,Ae=N.wrapperStyle,ge=getTooltipTranslate({allowEscapeViewBox:B,coordinate:K,offsetTopLeft:J,position:oe,reverseDirection:pe,tooltipBox:{height:this.lastBoundingBox.height,width:this.lastBoundingBox.width},useTranslate3d:me,viewBox:xe}),Te=ge.cssClasses,we=ge.cssProperties,ke=_objectSpread$q(_objectSpread$q(_objectSpread$q({},X&&L&&translateStyle({transition:"transform ".concat(j,"ms ").concat(F)})),we),{},{pointerEvents:"none",visibility:!this.state.dismissed&&L&&W?"visible":"hidden",position:"absolute",top:0,left:0},Ae);return React.createElement("div",{tabIndex:-1,role:"dialog",className:Te,style:ke,ref:function(Ie){I.wrapperNode=Ie}},V)}}]),R}(reactExports.PureComponent),parseIsSsrByDefault=function S(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Global={isSsr:parseIsSsrByDefault(),get:function S(C){return Global[C]},set:function S(C,R){if(typeof C=="string")Global[C]=R;else{var O=Object.keys(C);O&&O.length&&O.forEach(function(I){Global[I]=C[I]})}}};function _typeof$r(S){"@babel/helpers - typeof";return _typeof$r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$r(S)}function ownKeys$p(S,C){var R=Object.keys(S);if(Object.getOwnPropertySymbols){var O=Object.getOwnPropertySymbols(S);C&&(O=O.filter(function(I){return Object.getOwnPropertyDescriptor(S,I).enumerable})),R.push.apply(R,O)}return R}function _objectSpread$p(S){for(var C=1;C"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$6(S){return _getPrototypeOf$6=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(R){return R.__proto__||Object.getPrototypeOf(R)},_getPrototypeOf$6(S)}function _defineProperty$q(S,C,R){return C=_toPropertyKey$r(C),C in S?Object.defineProperty(S,C,{value:R,enumerable:!0,configurable:!0,writable:!0}):S[C]=R,S}function _toPropertyKey$r(S){var C=_toPrimitive$r(S,"string");return _typeof$r(C)==="symbol"?C:String(C)}function _toPrimitive$r(S,C){if(_typeof$r(S)!=="object"||S===null)return S;var R=S[Symbol.toPrimitive];if(R!==void 0){var O=R.call(S,C||"default");if(_typeof$r(O)!=="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(C==="string"?String:Number)(S)}function defaultUniqBy(S){return S.dataKey}function renderContent(S,C){return React.isValidElement(S)?React.cloneElement(S,C):typeof S=="function"?React.createElement(S,C):React.createElement(DefaultTooltipContent,C)}var Tooltip=function(S){_inherits$6(R,S);var C=_createSuper$6(R);function R(){return _classCallCheck$9(this,R),C.apply(this,arguments)}return _createClass$9(R,[{key:"render",value:function(){var I=this.props,N=I.active,L=I.allowEscapeViewBox,B=I.animationDuration,j=I.animationEasing,F=I.content,V=I.coordinate,K=I.filterNull,W=I.isAnimationActive,X=I.offset,J=I.payload,oe=I.payloadUniqBy,pe=I.position,me=I.reverseDirection,xe=I.useTranslate3d,Ae=I.viewBox,ge=I.wrapperStyle,Te=J??[];K&&Te.length&&(Te=getUniqPayload(J.filter(function(ke){return ke.value!=null}),oe,defaultUniqBy));var we=Te.length>0;return React.createElement(TooltipBoundingBox,{allowEscapeViewBox:L,animationDuration:B,animationEasing:j,isAnimationActive:W,active:N,coordinate:V,hasPayload:we,offset:X,position:pe,reverseDirection:me,useTranslate3d:xe,viewBox:Ae,wrapperStyle:ge},renderContent(F,_objectSpread$p(_objectSpread$p({},this.props),{},{payload:Te})))}}]),R}(reactExports.PureComponent);_defineProperty$q(Tooltip,"displayName","Tooltip"),_defineProperty$q(Tooltip,"defaultProps",{allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Global.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var isObject$1=isObject_1,now=now_1,toNumber=toNumber_1,FUNC_ERROR_TEXT$1="Expected a function",nativeMax=Math.max,nativeMin=Math.min;function debounce$1(S,C,R){var O,I,N,L,B,j,F=0,V=!1,K=!1,W=!0;if(typeof S!="function")throw new TypeError(FUNC_ERROR_TEXT$1);C=toNumber(C)||0,isObject$1(R)&&(V=!!R.leading,K="maxWait"in R,N=K?nativeMax(toNumber(R.maxWait)||0,C):N,W="trailing"in R?!!R.trailing:W);function X(we){var ke=O,Be=I;return O=I=void 0,F=we,L=S.apply(Be,ke),L}function J(we){return F=we,B=setTimeout(me,C),V?X(we):L}function oe(we){var ke=we-j,Be=we-F,Ie=C-ke;return K?nativeMin(Ie,N-Be):Ie}function pe(we){var ke=we-j,Be=we-F;return j===void 0||ke>=C||ke<0||K&&Be>=N}function me(){var we=now();if(pe(we))return xe(we);B=setTimeout(me,oe(we))}function xe(we){return B=void 0,W&&O?X(we):(O=I=void 0,L)}function Ae(){B!==void 0&&clearTimeout(B),F=0,O=j=I=B=void 0}function ge(){return B===void 0?L:xe(now())}function Te(){var we=now(),ke=pe(we);if(O=arguments,I=this,j=we,ke){if(B===void 0)return J(j);if(K)return clearTimeout(B),B=setTimeout(me,C),X(j)}return B===void 0&&(B=setTimeout(me,C)),L}return Te.cancel=Ae,Te.flush=ge,Te}var debounce_1=debounce$1,debounce=debounce_1,isObject=isObject_1,FUNC_ERROR_TEXT="Expected a function";function throttle(S,C,R){var O=!0,I=!0;if(typeof S!="function")throw new TypeError(FUNC_ERROR_TEXT);return isObject(R)&&(O="leading"in R?!!R.leading:O,I="trailing"in R?!!R.trailing:I),debounce(S,C,{leading:O,maxWait:C,trailing:I})}var throttle_1=throttle;const throttle$1=getDefaultExportFromCjs(throttle_1);var Cell=function S(C){return null};Cell.displayName="Cell";function _typeof$q(S){"@babel/helpers - typeof";return _typeof$q=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$q(S)}function ownKeys$o(S,C){var R=Object.keys(S);if(Object.getOwnPropertySymbols){var O=Object.getOwnPropertySymbols(S);C&&(O=O.filter(function(I){return Object.getOwnPropertyDescriptor(S,I).enumerable})),R.push.apply(R,O)}return R}function _objectSpread$o(S){for(var C=1;C1&&arguments[1]!==void 0?arguments[1]:{};if(C==null||Global.isSsr)return{width:0,height:0};var O=removeInvalidKeys(R),I=JSON.stringify({text:C,copyStyle:O});if(stringCache.widthCache[I])return stringCache.widthCache[I];try{var N=document.getElementById(MEASUREMENT_SPAN_ID);N||(N=document.createElement("span"),N.setAttribute("id",MEASUREMENT_SPAN_ID),N.setAttribute("aria-hidden","true"),document.body.appendChild(N));var L=_objectSpread$o(_objectSpread$o({},SPAN_STYLE),O);Object.assign(N.style,L),N.textContent="".concat(C);var B=N.getBoundingClientRect(),j={width:B.width,height:B.height};return stringCache.widthCache[I]=j,++stringCache.cacheCount>MAX_CACHE_NUM&&(stringCache.cacheCount=0,stringCache.widthCache={}),j}catch{return{width:0,height:0}}},getOffset=function S(C){return{top:C.top+window.scrollY-document.documentElement.clientTop,left:C.left+window.scrollX-document.documentElement.clientLeft}};function _typeof$p(S){"@babel/helpers - typeof";return _typeof$p=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$p(S)}function _slicedToArray$8(S,C){return _arrayWithHoles$8(S)||_iterableToArrayLimit$8(S,C)||_unsupportedIterableToArray$e(S,C)||_nonIterableRest$8()}function _nonIterableRest$8(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$e(S,C){if(S){if(typeof S=="string")return _arrayLikeToArray$e(S,C);var R=Object.prototype.toString.call(S).slice(8,-1);if(R==="Object"&&S.constructor&&(R=S.constructor.name),R==="Map"||R==="Set")return Array.from(S);if(R==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(R))return _arrayLikeToArray$e(S,C)}}function _arrayLikeToArray$e(S,C){(C==null||C>S.length)&&(C=S.length);for(var R=0,O=new Array(C);R=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$9(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}function _slicedToArray$7(S,C){return _arrayWithHoles$7(S)||_iterableToArrayLimit$7(S,C)||_unsupportedIterableToArray$d(S,C)||_nonIterableRest$7()}function _nonIterableRest$7(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$d(S,C){if(S){if(typeof S=="string")return _arrayLikeToArray$d(S,C);var R=Object.prototype.toString.call(S).slice(8,-1);if(R==="Object"&&S.constructor&&(R=S.constructor.name),R==="Map"||R==="Set")return Array.from(S);if(R==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(R))return _arrayLikeToArray$d(S,C)}}function _arrayLikeToArray$d(S,C){(C==null||C>S.length)&&(C=S.length);for(var R=0,O=new Array(C);R0&&arguments[0]!==void 0?arguments[0]:[];return tt.reduce(function(Ue,et){var dt=et.word,gt=et.width,Qe=Ue[Ue.length-1];if(Qe&&(I==null||N||Qe.width+gt+Oet.width?Ue:et})};if(!V)return X;for(var oe="…",pe=function(tt){var Ue=K.slice(0,tt),et=calculateWordWidths({breakAll:F,style:j,children:Ue+oe}).wordsWithComputedWidth,dt=W(et),gt=dt.length>L||J(dt).width>Number(I);return[gt,dt]},me=0,xe=K.length-1,Ae=0,ge;me<=xe&&Ae<=K.length-1;){var Te=Math.floor((me+xe)/2),we=Te-1,ke=pe(we),Be=_slicedToArray$7(ke,2),Ie=Be[0],je=Be[1],Ke=pe(Te),Je=_slicedToArray$7(Ke,1),Xe=Je[0];if(!Ie&&!Xe&&(me=Te+1),Ie&&Xe&&(xe=Te-1),!Ie&&Xe){ge=je;break}Ae++}return ge||X},getWordsWithoutCalculate=function S(C){var R=isNil$1(C)?[]:C.toString().split(BREAKING_SPACES);return[{words:R}]},getWordsByLines=function S(C){var R=C.width,O=C.scaleToFit,I=C.children,N=C.style,L=C.breakAll,B=C.maxLines;if((R||O)&&!Global.isSsr){var j,F,V=calculateWordWidths({breakAll:L,children:I,style:N});if(V){var K=V.wordsWithComputedWidth,W=V.spaceWidth;j=K,F=W}else return getWordsWithoutCalculate(I);return calculateWordsByLines({breakAll:L,children:I,maxLines:B,style:N},j,F,R,O)}return getWordsWithoutCalculate(I)},DEFAULT_FILL="#808080",Text$1=function S(C){var R=C.x,O=R===void 0?0:R,I=C.y,N=I===void 0?0:I,L=C.lineHeight,B=L===void 0?"1em":L,j=C.capHeight,F=j===void 0?"0.71em":j,V=C.scaleToFit,K=V===void 0?!1:V,W=C.textAnchor,X=W===void 0?"start":W,J=C.verticalAnchor,oe=J===void 0?"end":J,pe=C.fill,me=pe===void 0?DEFAULT_FILL:pe,xe=_objectWithoutProperties$9(C,_excluded$9),Ae=reactExports.useMemo(function(){return getWordsByLines({breakAll:xe.breakAll,children:xe.children,maxLines:xe.maxLines,scaleToFit:K,style:xe.style,width:xe.width})},[xe.breakAll,xe.children,xe.maxLines,K,xe.style,xe.width]),ge=xe.dx,Te=xe.dy,we=xe.angle,ke=xe.className,Be=xe.breakAll,Ie=_objectWithoutProperties$9(xe,_excluded2$4);if(!isNumOrStr(O)||!isNumOrStr(N))return null;var je=O+(isNumber(ge)?ge:0),Ke=N+(isNumber(Te)?Te:0),Je;switch(oe){case"start":Je=reduceCSSCalc("calc(".concat(F,")"));break;case"middle":Je=reduceCSSCalc("calc(".concat((Ae.length-1)/2," * -").concat(B," + (").concat(F," / 2))"));break;default:Je=reduceCSSCalc("calc(".concat(Ae.length-1," * -").concat(B,")"));break}var Xe=[];if(K){var ot=Ae[0].width,tt=xe.width;Xe.push("scale(".concat((isNumber(tt)?tt/ot:1)/ot,")"))}return we&&Xe.push("rotate(".concat(we,", ").concat(je,", ").concat(Ke,")")),Xe.length&&(Ie.transform=Xe.join(" ")),React.createElement("text",_extends$j({},filterProps(Ie,!0),{x:je,y:Ke,className:clsx("recharts-text",ke),textAnchor:X,fill:me.includes("url")?DEFAULT_FILL:me}),Ae.map(function(Ue,et){var dt=Ue.words.join(Be?"":" ");return React.createElement("tspan",{x:je,dy:et===0?Je:B,key:dt},dt)}))};function ascending(S,C){return S==null||C==null?NaN:SC?1:S>=C?0:NaN}function descending(S,C){return S==null||C==null?NaN:CS?1:C>=S?0:NaN}function bisector(S){let C,R,O;S.length!==2?(C=ascending,R=(B,j)=>ascending(S(B),j),O=(B,j)=>S(B)-j):(C=S===ascending||S===descending?S:zero$1,R=S,O=S);function I(B,j,F=0,V=B.length){if(F>>1;R(B[K],j)<0?F=K+1:V=K}while(F>>1;R(B[K],j)<=0?F=K+1:V=K}while(FF&&O(B[K-1],j)>-O(B[K],j)?K-1:K}return{left:I,center:L,right:N}}function zero$1(){return 0}function number$2(S){return S===null?NaN:+S}function*numbers(S,C){if(C===void 0)for(let R of S)R!=null&&(R=+R)>=R&&(yield R);else{let R=-1;for(let O of S)(O=C(O,++R,S))!=null&&(O=+O)>=O&&(yield O)}}const ascendingBisect=bisector(ascending),bisectRight=ascendingBisect.right;bisector(number$2).center;const bisect=bisectRight;class InternMap extends Map{constructor(C,R=keyof){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:R}}),C!=null)for(const[O,I]of C)this.set(O,I)}get(C){return super.get(intern_get(this,C))}has(C){return super.has(intern_get(this,C))}set(C,R){return super.set(intern_set(this,C),R)}delete(C){return super.delete(intern_delete(this,C))}}function intern_get({_intern:S,_key:C},R){const O=C(R);return S.has(O)?S.get(O):R}function intern_set({_intern:S,_key:C},R){const O=C(R);return S.has(O)?S.get(O):(S.set(O,R),R)}function intern_delete({_intern:S,_key:C},R){const O=C(R);return S.has(O)&&(R=S.get(O),S.delete(O)),R}function keyof(S){return S!==null&&typeof S=="object"?S.valueOf():S}function compareDefined(S=ascending){if(S===ascending)return ascendingDefined;if(typeof S!="function")throw new TypeError("compare is not a function");return(C,R)=>{const O=S(C,R);return O||O===0?O:(S(R,R)===0)-(S(C,C)===0)}}function ascendingDefined(S,C){return(S==null||!(S>=S))-(C==null||!(C>=C))||(SC?1:0)}const e10=Math.sqrt(50),e5=Math.sqrt(10),e2=Math.sqrt(2);function tickSpec(S,C,R){const O=(C-S)/Math.max(0,R),I=Math.floor(Math.log10(O)),N=O/Math.pow(10,I),L=N>=e10?10:N>=e5?5:N>=e2?2:1;let B,j,F;return I<0?(F=Math.pow(10,-I)/L,B=Math.round(S*F),j=Math.round(C*F),B/FC&&--j,F=-F):(F=Math.pow(10,I)*L,B=Math.round(S/F),j=Math.round(C/F),B*FC&&--j),j0))return[];if(S===C)return[S];const O=C=I))return[];const B=N-I+1,j=new Array(B);if(O)if(L<0)for(let F=0;F=O)&&(R=O);else{let O=-1;for(let I of S)(I=C(I,++O,S))!=null&&(R=I)&&(R=I)}return R}function min(S,C){let R;if(C===void 0)for(const O of S)O!=null&&(R>O||R===void 0&&O>=O)&&(R=O);else{let O=-1;for(let I of S)(I=C(I,++O,S))!=null&&(R>I||R===void 0&&I>=I)&&(R=I)}return R}function quickselect(S,C,R=0,O=1/0,I){if(C=Math.floor(C),R=Math.floor(Math.max(0,R)),O=Math.floor(Math.min(S.length-1,O)),!(R<=C&&C<=O))return S;for(I=I===void 0?ascendingDefined:compareDefined(I);O>R;){if(O-R>600){const j=O-R+1,F=C-R+1,V=Math.log(j),K=.5*Math.exp(2*V/3),W=.5*Math.sqrt(V*K*(j-K)/j)*(F-j/2<0?-1:1),X=Math.max(R,Math.floor(C-F*K/j+W)),J=Math.min(O,Math.floor(C+(j-F)*K/j+W));quickselect(S,C,X,J,I)}const N=S[C];let L=R,B=O;for(swap(S,R,C),I(S[O],N)>0&&swap(S,R,O);L0;)--B}I(S[R],N)===0?swap(S,R,B):(++B,swap(S,B,O)),B<=C&&(R=B+1),C<=B&&(O=B-1)}return S}function swap(S,C,R){const O=S[C];S[C]=S[R],S[R]=O}function quantile$1(S,C,R){if(S=Float64Array.from(numbers(S,R)),!(!(O=S.length)||isNaN(C=+C))){if(C<=0||O<2)return min(S);if(C>=1)return max(S);var O,I=(O-1)*C,N=Math.floor(I),L=max(quickselect(S,N).subarray(0,N+1)),B=min(S.subarray(N+1));return L+(B-L)*(I-N)}}function quantileSorted(S,C,R=number$2){if(!(!(O=S.length)||isNaN(C=+C))){if(C<=0||O<2)return+R(S[0],0,S);if(C>=1)return+R(S[O-1],O-1,S);var O,I=(O-1)*C,N=Math.floor(I),L=+R(S[N],N,S),B=+R(S[N+1],N+1,S);return L+(B-L)*(I-N)}}function range$1(S,C,R){S=+S,C=+C,R=(I=arguments.length)<2?(C=S,S=0,1):I<3?1:+R;for(var O=-1,I=Math.max(0,Math.ceil((C-S)/R))|0,N=new Array(I);++O>8&15|C>>4&240,C>>4&15|C&240,(C&15)<<4|C&15,1):R===8?rgba(C>>24&255,C>>16&255,C>>8&255,(C&255)/255):R===4?rgba(C>>12&15|C>>8&240,C>>8&15|C>>4&240,C>>4&15|C&240,((C&15)<<4|C&15)/255):null):(C=reRgbInteger.exec(S))?new Rgb(C[1],C[2],C[3],1):(C=reRgbPercent.exec(S))?new Rgb(C[1]*255/100,C[2]*255/100,C[3]*255/100,1):(C=reRgbaInteger.exec(S))?rgba(C[1],C[2],C[3],C[4]):(C=reRgbaPercent.exec(S))?rgba(C[1]*255/100,C[2]*255/100,C[3]*255/100,C[4]):(C=reHslPercent.exec(S))?hsla(C[1],C[2]/100,C[3]/100,1):(C=reHslaPercent.exec(S))?hsla(C[1],C[2]/100,C[3]/100,C[4]):named.hasOwnProperty(S)?rgbn(named[S]):S==="transparent"?new Rgb(NaN,NaN,NaN,0):null}function rgbn(S){return new Rgb(S>>16&255,S>>8&255,S&255,1)}function rgba(S,C,R,O){return O<=0&&(S=C=R=NaN),new Rgb(S,C,R,O)}function rgbConvert(S){return S instanceof Color||(S=color(S)),S?(S=S.rgb(),new Rgb(S.r,S.g,S.b,S.opacity)):new Rgb}function rgb$1(S,C,R,O){return arguments.length===1?rgbConvert(S):new Rgb(S,C,R,O??1)}function Rgb(S,C,R,O){this.r=+S,this.g=+C,this.b=+R,this.opacity=+O}define(Rgb,rgb$1,extend(Color,{brighter(S){return S=S==null?brighter:Math.pow(brighter,S),new Rgb(this.r*S,this.g*S,this.b*S,this.opacity)},darker(S){return S=S==null?darker:Math.pow(darker,S),new Rgb(this.r*S,this.g*S,this.b*S,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb}));function rgb_formatHex(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}`}function rgb_formatHex8(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb(){const S=clampa(this.opacity);return`${S===1?"rgb(":"rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${S===1?")":`, ${S})`}`}function clampa(S){return isNaN(S)?1:Math.max(0,Math.min(1,S))}function clampi(S){return Math.max(0,Math.min(255,Math.round(S)||0))}function hex(S){return S=clampi(S),(S<16?"0":"")+S.toString(16)}function hsla(S,C,R,O){return O<=0?S=C=R=NaN:R<=0||R>=1?S=C=NaN:C<=0&&(S=NaN),new Hsl(S,C,R,O)}function hslConvert(S){if(S instanceof Hsl)return new Hsl(S.h,S.s,S.l,S.opacity);if(S instanceof Color||(S=color(S)),!S)return new Hsl;if(S instanceof Hsl)return S;S=S.rgb();var C=S.r/255,R=S.g/255,O=S.b/255,I=Math.min(C,R,O),N=Math.max(C,R,O),L=NaN,B=N-I,j=(N+I)/2;return B?(C===N?L=(R-O)/B+(R0&&j<1?0:L,new Hsl(L,B,j,S.opacity)}function hsl(S,C,R,O){return arguments.length===1?hslConvert(S):new Hsl(S,C,R,O??1)}function Hsl(S,C,R,O){this.h=+S,this.s=+C,this.l=+R,this.opacity=+O}define(Hsl,hsl,extend(Color,{brighter(S){return S=S==null?brighter:Math.pow(brighter,S),new Hsl(this.h,this.s,this.l*S,this.opacity)},darker(S){return S=S==null?darker:Math.pow(darker,S),new Hsl(this.h,this.s,this.l*S,this.opacity)},rgb(){var S=this.h%360+(this.h<0)*360,C=isNaN(S)||isNaN(this.s)?0:this.s,R=this.l,O=R+(R<.5?R:1-R)*C,I=2*R-O;return new Rgb(hsl2rgb(S>=240?S-240:S+120,I,O),hsl2rgb(S,I,O),hsl2rgb(S<120?S+240:S-120,I,O),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const S=clampa(this.opacity);return`${S===1?"hsl(":"hsla("}${clamph(this.h)}, ${clampt(this.s)*100}%, ${clampt(this.l)*100}%${S===1?")":`, ${S})`}`}}));function clamph(S){return S=(S||0)%360,S<0?S+360:S}function clampt(S){return Math.max(0,Math.min(1,S||0))}function hsl2rgb(S,C,R){return(S<60?C+(R-C)*S/60:S<180?R:S<240?C+(R-C)*(240-S)/60:C)*255}const constant=S=>()=>S;function linear$1(S,C){return function(R){return S+R*C}}function exponential(S,C,R){return S=Math.pow(S,R),C=Math.pow(C,R)-S,R=1/R,function(O){return Math.pow(S+O*C,R)}}function gamma(S){return(S=+S)==1?nogamma:function(C,R){return R-C?exponential(C,R,S):constant(isNaN(C)?R:C)}}function nogamma(S,C){var R=C-S;return R?linear$1(S,R):constant(isNaN(S)?C:S)}const rgb=function S(C){var R=gamma(C);function O(I,N){var L=R((I=rgb$1(I)).r,(N=rgb$1(N)).r),B=R(I.g,N.g),j=R(I.b,N.b),F=nogamma(I.opacity,N.opacity);return function(V){return I.r=L(V),I.g=B(V),I.b=j(V),I.opacity=F(V),I+""}}return O.gamma=S,O}(1);function numberArray(S,C){C||(C=[]);var R=S?Math.min(C.length,S.length):0,O=C.slice(),I;return function(N){for(I=0;IR&&(N=C.slice(R,N),B[L]?B[L]+=N:B[++L]=N),(O=O[0])===(I=I[0])?B[L]?B[L]+=I:B[++L]=I:(B[++L]=null,j.push({i:L,x:interpolateNumber$1(O,I)})),R=reB.lastIndex;return RC&&(R=S,S=C,C=R),function(O){return Math.max(S,Math.min(C,O))}}function bimap(S,C,R){var O=S[0],I=S[1],N=C[0],L=C[1];return I2?polymap:bimap,j=F=null,K}function K(W){return W==null||isNaN(W=+W)?N:(j||(j=B(S.map(O),C,R)))(O(L(W)))}return K.invert=function(W){return L(I((F||(F=B(C,S.map(O),interpolateNumber$1)))(W)))},K.domain=function(W){return arguments.length?(S=Array.from(W,number$1),V()):S.slice()},K.range=function(W){return arguments.length?(C=Array.from(W),V()):C.slice()},K.rangeRound=function(W){return C=Array.from(W),R=interpolateRound,V()},K.clamp=function(W){return arguments.length?(L=W?!0:identity$2,V()):L!==identity$2},K.interpolate=function(W){return arguments.length?(R=W,V()):R},K.unknown=function(W){return arguments.length?(N=W,K):N},function(W,X){return O=W,I=X,V()}}function continuous(){return transformer$2()(identity$2,identity$2)}function tickFormat(S,C,R,O){var I=tickStep(S,C,R),N;switch(O=formatSpecifier(O??",f"),O.type){case"s":{var L=Math.max(Math.abs(S),Math.abs(C));return O.precision==null&&!isNaN(N=precisionPrefix(I,L))&&(O.precision=N),formatPrefix(O,L)}case"":case"e":case"g":case"p":case"r":{O.precision==null&&!isNaN(N=precisionRound(I,Math.max(Math.abs(S),Math.abs(C))))&&(O.precision=N-(O.type==="e"));break}case"f":case"%":{O.precision==null&&!isNaN(N=precisionFixed(I))&&(O.precision=N-(O.type==="%")*2);break}}return format$1(O)}function linearish(S){var C=S.domain;return S.ticks=function(R){var O=C();return ticks(O[0],O[O.length-1],R??10)},S.tickFormat=function(R,O){var I=C();return tickFormat(I[0],I[I.length-1],R??10,O)},S.nice=function(R){R==null&&(R=10);var O=C(),I=0,N=O.length-1,L=O[I],B=O[N],j,F,V=10;for(B0;){if(F=tickIncrement(L,B,R),F===j)return O[I]=L,O[N]=B,C(O);if(F>0)L=Math.floor(L/F)*F,B=Math.ceil(B/F)*F;else if(F<0)L=Math.ceil(L*F)/F,B=Math.floor(B*F)/F;else break;j=F}return S},S}function linear(){var S=continuous();return S.copy=function(){return copy$1(S,linear())},initRange.apply(S,arguments),linearish(S)}function identity$1(S){var C;function R(O){return O==null||isNaN(O=+O)?C:O}return R.invert=R,R.domain=R.range=function(O){return arguments.length?(S=Array.from(O,number$1),R):S.slice()},R.unknown=function(O){return arguments.length?(C=O,R):C},R.copy=function(){return identity$1(S).unknown(C)},S=arguments.length?Array.from(S,number$1):[0,1],linearish(R)}function nice(S,C){S=S.slice();var R=0,O=S.length-1,I=S[R],N=S[O],L;return NMath.pow(S,C)}function logp(S){return S===Math.E?Math.log:S===10&&Math.log10||S===2&&Math.log2||(S=Math.log(S),C=>Math.log(C)/S)}function reflect(S){return(C,R)=>-S(-C,R)}function loggish(S){const C=S(transformLog,transformExp),R=C.domain;let O=10,I,N;function L(){return I=logp(O),N=powp(O),R()[0]<0?(I=reflect(I),N=reflect(N),S(transformLogn,transformExpn)):S(transformLog,transformExp),C}return C.base=function(B){return arguments.length?(O=+B,L()):O},C.domain=function(B){return arguments.length?(R(B),L()):R()},C.ticks=B=>{const j=R();let F=j[0],V=j[j.length-1];const K=V0){for(;W<=X;++W)for(J=1;JV)break;me.push(oe)}}else for(;W<=X;++W)for(J=O-1;J>=1;--J)if(oe=W>0?J/N(-W):J*N(W),!(oeV)break;me.push(oe)}me.length*2{if(B==null&&(B=10),j==null&&(j=O===10?"s":","),typeof j!="function"&&(!(O%1)&&(j=formatSpecifier(j)).precision==null&&(j.trim=!0),j=format$1(j)),B===1/0)return j;const F=Math.max(1,O*B/C.ticks().length);return V=>{let K=V/N(Math.round(I(V)));return K*OR(nice(R(),{floor:B=>N(Math.floor(I(B))),ceil:B=>N(Math.ceil(I(B)))})),C}function log(){const S=loggish(transformer$2()).domain([1,10]);return S.copy=()=>copy$1(S,log()).base(S.base()),initRange.apply(S,arguments),S}function transformSymlog(S){return function(C){return Math.sign(C)*Math.log1p(Math.abs(C/S))}}function transformSymexp(S){return function(C){return Math.sign(C)*Math.expm1(Math.abs(C))*S}}function symlogish(S){var C=1,R=S(transformSymlog(C),transformSymexp(C));return R.constant=function(O){return arguments.length?S(transformSymlog(C=+O),transformSymexp(C)):C},linearish(R)}function symlog(){var S=symlogish(transformer$2());return S.copy=function(){return copy$1(S,symlog()).constant(S.constant())},initRange.apply(S,arguments)}function transformPow(S){return function(C){return C<0?-Math.pow(-C,S):Math.pow(C,S)}}function transformSqrt(S){return S<0?-Math.sqrt(-S):Math.sqrt(S)}function transformSquare(S){return S<0?-S*S:S*S}function powish(S){var C=S(identity$2,identity$2),R=1;function O(){return R===1?S(identity$2,identity$2):R===.5?S(transformSqrt,transformSquare):S(transformPow(R),transformPow(1/R))}return C.exponent=function(I){return arguments.length?(R=+I,O()):R},linearish(C)}function pow(){var S=powish(transformer$2());return S.copy=function(){return copy$1(S,pow()).exponent(S.exponent())},initRange.apply(S,arguments),S}function sqrt(){return pow.apply(null,arguments).exponent(.5)}function square(S){return Math.sign(S)*S*S}function unsquare(S){return Math.sign(S)*Math.sqrt(Math.abs(S))}function radial(){var S=continuous(),C=[0,1],R=!1,O;function I(N){var L=unsquare(S(N));return isNaN(L)?O:R?Math.round(L):L}return I.invert=function(N){return S.invert(square(N))},I.domain=function(N){return arguments.length?(S.domain(N),I):S.domain()},I.range=function(N){return arguments.length?(S.range((C=Array.from(N,number$1)).map(square)),I):C.slice()},I.rangeRound=function(N){return I.range(N).round(!0)},I.round=function(N){return arguments.length?(R=!!N,I):R},I.clamp=function(N){return arguments.length?(S.clamp(N),I):S.clamp()},I.unknown=function(N){return arguments.length?(O=N,I):O},I.copy=function(){return radial(S.domain(),C).round(R).clamp(S.clamp()).unknown(O)},initRange.apply(I,arguments),linearish(I)}function quantile(){var S=[],C=[],R=[],O;function I(){var L=0,B=Math.max(1,C.length);for(R=new Array(B-1);++L0?R[B-1]:S[0],B=R?[O[R-1],C]:[O[F-1],O[F]]},L.unknown=function(j){return arguments.length&&(N=j),L},L.thresholds=function(){return O.slice()},L.copy=function(){return quantize().domain([S,C]).range(I).unknown(N)},initRange.apply(linearish(L),arguments)}function threshold(){var S=[.5],C=[0,1],R,O=1;function I(N){return N!=null&&N<=N?C[bisect(S,N,0,O)]:R}return I.domain=function(N){return arguments.length?(S=Array.from(N),O=Math.min(S.length,C.length-1),I):S.slice()},I.range=function(N){return arguments.length?(C=Array.from(N),O=Math.min(S.length,C.length-1),I):C.slice()},I.invertExtent=function(N){var L=C.indexOf(N);return[S[L-1],S[L]]},I.unknown=function(N){return arguments.length?(R=N,I):R},I.copy=function(){return threshold().domain(S).range(C).unknown(R)},initRange.apply(I,arguments)}const t0=new Date,t1=new Date;function timeInterval(S,C,R,O){function I(N){return S(N=arguments.length===0?new Date:new Date(+N)),N}return I.floor=N=>(S(N=new Date(+N)),N),I.ceil=N=>(S(N=new Date(N-1)),C(N,1),S(N),N),I.round=N=>{const L=I(N),B=I.ceil(N);return N-L(C(N=new Date(+N),L==null?1:Math.floor(L)),N),I.range=(N,L,B)=>{const j=[];if(N=I.ceil(N),B=B==null?1:Math.floor(B),!(N0))return j;let F;do j.push(F=new Date(+N)),C(N,B),S(N);while(FtimeInterval(L=>{if(L>=L)for(;S(L),!N(L);)L.setTime(L-1)},(L,B)=>{if(L>=L)if(B<0)for(;++B<=0;)for(;C(L,-1),!N(L););else for(;--B>=0;)for(;C(L,1),!N(L););}),R&&(I.count=(N,L)=>(t0.setTime(+N),t1.setTime(+L),S(t0),S(t1),Math.floor(R(t0,t1))),I.every=N=>(N=Math.floor(N),!isFinite(N)||!(N>0)?null:N>1?I.filter(O?L=>O(L)%N===0:L=>I.count(0,L)%N===0):I)),I}const millisecond=timeInterval(()=>{},(S,C)=>{S.setTime(+S+C)},(S,C)=>C-S);millisecond.every=S=>(S=Math.floor(S),!isFinite(S)||!(S>0)?null:S>1?timeInterval(C=>{C.setTime(Math.floor(C/S)*S)},(C,R)=>{C.setTime(+C+R*S)},(C,R)=>(R-C)/S):millisecond),millisecond.range;const durationSecond=1e3,durationMinute=durationSecond*60,durationHour=durationMinute*60,durationDay=durationHour*24,durationWeek=durationDay*7,durationMonth=durationDay*30,durationYear=durationDay*365,second=timeInterval(S=>{S.setTime(S-S.getMilliseconds())},(S,C)=>{S.setTime(+S+C*durationSecond)},(S,C)=>(C-S)/durationSecond,S=>S.getUTCSeconds());second.range;const timeMinute=timeInterval(S=>{S.setTime(S-S.getMilliseconds()-S.getSeconds()*durationSecond)},(S,C)=>{S.setTime(+S+C*durationMinute)},(S,C)=>(C-S)/durationMinute,S=>S.getMinutes());timeMinute.range;const utcMinute=timeInterval(S=>{S.setUTCSeconds(0,0)},(S,C)=>{S.setTime(+S+C*durationMinute)},(S,C)=>(C-S)/durationMinute,S=>S.getUTCMinutes());utcMinute.range;const timeHour=timeInterval(S=>{S.setTime(S-S.getMilliseconds()-S.getSeconds()*durationSecond-S.getMinutes()*durationMinute)},(S,C)=>{S.setTime(+S+C*durationHour)},(S,C)=>(C-S)/durationHour,S=>S.getHours());timeHour.range;const utcHour=timeInterval(S=>{S.setUTCMinutes(0,0,0)},(S,C)=>{S.setTime(+S+C*durationHour)},(S,C)=>(C-S)/durationHour,S=>S.getUTCHours());utcHour.range;const timeDay=timeInterval(S=>S.setHours(0,0,0,0),(S,C)=>S.setDate(S.getDate()+C),(S,C)=>(C-S-(C.getTimezoneOffset()-S.getTimezoneOffset())*durationMinute)/durationDay,S=>S.getDate()-1);timeDay.range;const utcDay=timeInterval(S=>{S.setUTCHours(0,0,0,0)},(S,C)=>{S.setUTCDate(S.getUTCDate()+C)},(S,C)=>(C-S)/durationDay,S=>S.getUTCDate()-1);utcDay.range;const unixDay=timeInterval(S=>{S.setUTCHours(0,0,0,0)},(S,C)=>{S.setUTCDate(S.getUTCDate()+C)},(S,C)=>(C-S)/durationDay,S=>Math.floor(S/durationDay));unixDay.range;function timeWeekday(S){return timeInterval(C=>{C.setDate(C.getDate()-(C.getDay()+7-S)%7),C.setHours(0,0,0,0)},(C,R)=>{C.setDate(C.getDate()+R*7)},(C,R)=>(R-C-(R.getTimezoneOffset()-C.getTimezoneOffset())*durationMinute)/durationWeek)}const timeSunday=timeWeekday(0),timeMonday=timeWeekday(1),timeTuesday=timeWeekday(2),timeWednesday=timeWeekday(3),timeThursday=timeWeekday(4),timeFriday=timeWeekday(5),timeSaturday=timeWeekday(6);timeSunday.range,timeMonday.range,timeTuesday.range,timeWednesday.range,timeThursday.range,timeFriday.range,timeSaturday.range;function utcWeekday(S){return timeInterval(C=>{C.setUTCDate(C.getUTCDate()-(C.getUTCDay()+7-S)%7),C.setUTCHours(0,0,0,0)},(C,R)=>{C.setUTCDate(C.getUTCDate()+R*7)},(C,R)=>(R-C)/durationWeek)}const utcSunday=utcWeekday(0),utcMonday=utcWeekday(1),utcTuesday=utcWeekday(2),utcWednesday=utcWeekday(3),utcThursday=utcWeekday(4),utcFriday=utcWeekday(5),utcSaturday=utcWeekday(6);utcSunday.range,utcMonday.range,utcTuesday.range,utcWednesday.range,utcThursday.range,utcFriday.range,utcSaturday.range;const timeMonth=timeInterval(S=>{S.setDate(1),S.setHours(0,0,0,0)},(S,C)=>{S.setMonth(S.getMonth()+C)},(S,C)=>C.getMonth()-S.getMonth()+(C.getFullYear()-S.getFullYear())*12,S=>S.getMonth());timeMonth.range;const utcMonth=timeInterval(S=>{S.setUTCDate(1),S.setUTCHours(0,0,0,0)},(S,C)=>{S.setUTCMonth(S.getUTCMonth()+C)},(S,C)=>C.getUTCMonth()-S.getUTCMonth()+(C.getUTCFullYear()-S.getUTCFullYear())*12,S=>S.getUTCMonth());utcMonth.range;const timeYear=timeInterval(S=>{S.setMonth(0,1),S.setHours(0,0,0,0)},(S,C)=>{S.setFullYear(S.getFullYear()+C)},(S,C)=>C.getFullYear()-S.getFullYear(),S=>S.getFullYear());timeYear.every=S=>!isFinite(S=Math.floor(S))||!(S>0)?null:timeInterval(C=>{C.setFullYear(Math.floor(C.getFullYear()/S)*S),C.setMonth(0,1),C.setHours(0,0,0,0)},(C,R)=>{C.setFullYear(C.getFullYear()+R*S)}),timeYear.range;const utcYear=timeInterval(S=>{S.setUTCMonth(0,1),S.setUTCHours(0,0,0,0)},(S,C)=>{S.setUTCFullYear(S.getUTCFullYear()+C)},(S,C)=>C.getUTCFullYear()-S.getUTCFullYear(),S=>S.getUTCFullYear());utcYear.every=S=>!isFinite(S=Math.floor(S))||!(S>0)?null:timeInterval(C=>{C.setUTCFullYear(Math.floor(C.getUTCFullYear()/S)*S),C.setUTCMonth(0,1),C.setUTCHours(0,0,0,0)},(C,R)=>{C.setUTCFullYear(C.getUTCFullYear()+R*S)}),utcYear.range;function ticker(S,C,R,O,I,N){const L=[[second,1,durationSecond],[second,5,5*durationSecond],[second,15,15*durationSecond],[second,30,30*durationSecond],[N,1,durationMinute],[N,5,5*durationMinute],[N,15,15*durationMinute],[N,30,30*durationMinute],[I,1,durationHour],[I,3,3*durationHour],[I,6,6*durationHour],[I,12,12*durationHour],[O,1,durationDay],[O,2,2*durationDay],[R,1,durationWeek],[C,1,durationMonth],[C,3,3*durationMonth],[S,1,durationYear]];function B(F,V,K){const W=Vpe).right(L,W);if(X===L.length)return S.every(tickStep(F/durationYear,V/durationYear,K));if(X===0)return millisecond.every(Math.max(tickStep(F,V,K),1));const[J,oe]=L[W/L[X-1][2]53)return null;"w"in kt||(kt.w=1),"Z"in kt?(tr=utcDate(newDate(kt.y,0,1)),wr=tr.getUTCDay(),tr=wr>4||wr===0?utcMonday.ceil(tr):utcMonday(tr),tr=utcDay.offset(tr,(kt.V-1)*7),kt.y=tr.getUTCFullYear(),kt.m=tr.getUTCMonth(),kt.d=tr.getUTCDate()+(kt.w+6)%7):(tr=localDate(newDate(kt.y,0,1)),wr=tr.getDay(),tr=wr>4||wr===0?timeMonday.ceil(tr):timeMonday(tr),tr=timeDay.offset(tr,(kt.V-1)*7),kt.y=tr.getFullYear(),kt.m=tr.getMonth(),kt.d=tr.getDate()+(kt.w+6)%7)}else("W"in kt||"U"in kt)&&("w"in kt||(kt.w="u"in kt?kt.u%7:"W"in kt?1:0),wr="Z"in kt?utcDate(newDate(kt.y,0,1)).getUTCDay():localDate(newDate(kt.y,0,1)).getDay(),kt.m=0,kt.d="W"in kt?(kt.w+6)%7+kt.W*7-(wr+5)%7:kt.w+kt.U*7-(wr+6)%7);return"Z"in kt?(kt.H+=kt.Z/100|0,kt.M+=kt.Z%100,utcDate(kt)):localDate(kt)}}function Be(bt,It,Ht,kt){for(var Kt=0,tr=It.length,wr=Ht.length,xr,Vr;Kt=wr)return-1;if(xr=It.charCodeAt(Kt++),xr===37){if(xr=It.charAt(Kt++),Vr=Te[xr in pads?It.charAt(Kt++):xr],!Vr||(kt=Vr(bt,Ht,kt))<0)return-1}else if(xr!=Ht.charCodeAt(kt++))return-1}return kt}function Ie(bt,It,Ht){var kt=F.exec(It.slice(Ht));return kt?(bt.p=V.get(kt[0].toLowerCase()),Ht+kt[0].length):-1}function je(bt,It,Ht){var kt=X.exec(It.slice(Ht));return kt?(bt.w=J.get(kt[0].toLowerCase()),Ht+kt[0].length):-1}function Ke(bt,It,Ht){var kt=K.exec(It.slice(Ht));return kt?(bt.w=W.get(kt[0].toLowerCase()),Ht+kt[0].length):-1}function Je(bt,It,Ht){var kt=me.exec(It.slice(Ht));return kt?(bt.m=xe.get(kt[0].toLowerCase()),Ht+kt[0].length):-1}function Xe(bt,It,Ht){var kt=oe.exec(It.slice(Ht));return kt?(bt.m=pe.get(kt[0].toLowerCase()),Ht+kt[0].length):-1}function ot(bt,It,Ht){return Be(bt,C,It,Ht)}function tt(bt,It,Ht){return Be(bt,R,It,Ht)}function Ue(bt,It,Ht){return Be(bt,O,It,Ht)}function et(bt){return L[bt.getDay()]}function dt(bt){return N[bt.getDay()]}function gt(bt){return j[bt.getMonth()]}function Qe(bt){return B[bt.getMonth()]}function lt(bt){return I[+(bt.getHours()>=12)]}function ht(bt){return 1+~~(bt.getMonth()/3)}function Ct(bt){return L[bt.getUTCDay()]}function $t(bt){return N[bt.getUTCDay()]}function Lt(bt){return j[bt.getUTCMonth()]}function Gt(bt){return B[bt.getUTCMonth()]}function Pt(bt){return I[+(bt.getUTCHours()>=12)]}function Vt(bt){return 1+~~(bt.getUTCMonth()/3)}return{format:function(bt){var It=we(bt+="",Ae);return It.toString=function(){return bt},It},parse:function(bt){var It=ke(bt+="",!1);return It.toString=function(){return bt},It},utcFormat:function(bt){var It=we(bt+="",ge);return It.toString=function(){return bt},It},utcParse:function(bt){var It=ke(bt+="",!0);return It.toString=function(){return bt},It}}}var pads={"-":"",_:" ",0:"0"},numberRe=/^\s*\d+/,percentRe=/^%/,requoteRe=/[\\^$*+?|[\]().{}]/g;function pad(S,C,R){var O=S<0?"-":"",I=(O?-S:S)+"",N=I.length;return O+(N[C.toLowerCase(),R]))}function parseWeekdayNumberSunday(S,C,R){var O=numberRe.exec(C.slice(R,R+1));return O?(S.w=+O[0],R+O[0].length):-1}function parseWeekdayNumberMonday(S,C,R){var O=numberRe.exec(C.slice(R,R+1));return O?(S.u=+O[0],R+O[0].length):-1}function parseWeekNumberSunday(S,C,R){var O=numberRe.exec(C.slice(R,R+2));return O?(S.U=+O[0],R+O[0].length):-1}function parseWeekNumberISO(S,C,R){var O=numberRe.exec(C.slice(R,R+2));return O?(S.V=+O[0],R+O[0].length):-1}function parseWeekNumberMonday(S,C,R){var O=numberRe.exec(C.slice(R,R+2));return O?(S.W=+O[0],R+O[0].length):-1}function parseFullYear(S,C,R){var O=numberRe.exec(C.slice(R,R+4));return O?(S.y=+O[0],R+O[0].length):-1}function parseYear(S,C,R){var O=numberRe.exec(C.slice(R,R+2));return O?(S.y=+O[0]+(+O[0]>68?1900:2e3),R+O[0].length):-1}function parseZone(S,C,R){var O=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(C.slice(R,R+6));return O?(S.Z=O[1]?0:-(O[2]+(O[3]||"00")),R+O[0].length):-1}function parseQuarter(S,C,R){var O=numberRe.exec(C.slice(R,R+1));return O?(S.q=O[0]*3-3,R+O[0].length):-1}function parseMonthNumber(S,C,R){var O=numberRe.exec(C.slice(R,R+2));return O?(S.m=O[0]-1,R+O[0].length):-1}function parseDayOfMonth(S,C,R){var O=numberRe.exec(C.slice(R,R+2));return O?(S.d=+O[0],R+O[0].length):-1}function parseDayOfYear(S,C,R){var O=numberRe.exec(C.slice(R,R+3));return O?(S.m=0,S.d=+O[0],R+O[0].length):-1}function parseHour24(S,C,R){var O=numberRe.exec(C.slice(R,R+2));return O?(S.H=+O[0],R+O[0].length):-1}function parseMinutes(S,C,R){var O=numberRe.exec(C.slice(R,R+2));return O?(S.M=+O[0],R+O[0].length):-1}function parseSeconds(S,C,R){var O=numberRe.exec(C.slice(R,R+2));return O?(S.S=+O[0],R+O[0].length):-1}function parseMilliseconds(S,C,R){var O=numberRe.exec(C.slice(R,R+3));return O?(S.L=+O[0],R+O[0].length):-1}function parseMicroseconds(S,C,R){var O=numberRe.exec(C.slice(R,R+6));return O?(S.L=Math.floor(O[0]/1e3),R+O[0].length):-1}function parseLiteralPercent(S,C,R){var O=percentRe.exec(C.slice(R,R+1));return O?R+O[0].length:-1}function parseUnixTimestamp(S,C,R){var O=numberRe.exec(C.slice(R));return O?(S.Q=+O[0],R+O[0].length):-1}function parseUnixTimestampSeconds(S,C,R){var O=numberRe.exec(C.slice(R));return O?(S.s=+O[0],R+O[0].length):-1}function formatDayOfMonth(S,C){return pad(S.getDate(),C,2)}function formatHour24(S,C){return pad(S.getHours(),C,2)}function formatHour12(S,C){return pad(S.getHours()%12||12,C,2)}function formatDayOfYear(S,C){return pad(1+timeDay.count(timeYear(S),S),C,3)}function formatMilliseconds(S,C){return pad(S.getMilliseconds(),C,3)}function formatMicroseconds(S,C){return formatMilliseconds(S,C)+"000"}function formatMonthNumber(S,C){return pad(S.getMonth()+1,C,2)}function formatMinutes(S,C){return pad(S.getMinutes(),C,2)}function formatSeconds(S,C){return pad(S.getSeconds(),C,2)}function formatWeekdayNumberMonday(S){var C=S.getDay();return C===0?7:C}function formatWeekNumberSunday(S,C){return pad(timeSunday.count(timeYear(S)-1,S),C,2)}function dISO(S){var C=S.getDay();return C>=4||C===0?timeThursday(S):timeThursday.ceil(S)}function formatWeekNumberISO(S,C){return S=dISO(S),pad(timeThursday.count(timeYear(S),S)+(timeYear(S).getDay()===4),C,2)}function formatWeekdayNumberSunday(S){return S.getDay()}function formatWeekNumberMonday(S,C){return pad(timeMonday.count(timeYear(S)-1,S),C,2)}function formatYear(S,C){return pad(S.getFullYear()%100,C,2)}function formatYearISO(S,C){return S=dISO(S),pad(S.getFullYear()%100,C,2)}function formatFullYear(S,C){return pad(S.getFullYear()%1e4,C,4)}function formatFullYearISO(S,C){var R=S.getDay();return S=R>=4||R===0?timeThursday(S):timeThursday.ceil(S),pad(S.getFullYear()%1e4,C,4)}function formatZone(S){var C=S.getTimezoneOffset();return(C>0?"-":(C*=-1,"+"))+pad(C/60|0,"0",2)+pad(C%60,"0",2)}function formatUTCDayOfMonth(S,C){return pad(S.getUTCDate(),C,2)}function formatUTCHour24(S,C){return pad(S.getUTCHours(),C,2)}function formatUTCHour12(S,C){return pad(S.getUTCHours()%12||12,C,2)}function formatUTCDayOfYear(S,C){return pad(1+utcDay.count(utcYear(S),S),C,3)}function formatUTCMilliseconds(S,C){return pad(S.getUTCMilliseconds(),C,3)}function formatUTCMicroseconds(S,C){return formatUTCMilliseconds(S,C)+"000"}function formatUTCMonthNumber(S,C){return pad(S.getUTCMonth()+1,C,2)}function formatUTCMinutes(S,C){return pad(S.getUTCMinutes(),C,2)}function formatUTCSeconds(S,C){return pad(S.getUTCSeconds(),C,2)}function formatUTCWeekdayNumberMonday(S){var C=S.getUTCDay();return C===0?7:C}function formatUTCWeekNumberSunday(S,C){return pad(utcSunday.count(utcYear(S)-1,S),C,2)}function UTCdISO(S){var C=S.getUTCDay();return C>=4||C===0?utcThursday(S):utcThursday.ceil(S)}function formatUTCWeekNumberISO(S,C){return S=UTCdISO(S),pad(utcThursday.count(utcYear(S),S)+(utcYear(S).getUTCDay()===4),C,2)}function formatUTCWeekdayNumberSunday(S){return S.getUTCDay()}function formatUTCWeekNumberMonday(S,C){return pad(utcMonday.count(utcYear(S)-1,S),C,2)}function formatUTCYear(S,C){return pad(S.getUTCFullYear()%100,C,2)}function formatUTCYearISO(S,C){return S=UTCdISO(S),pad(S.getUTCFullYear()%100,C,2)}function formatUTCFullYear(S,C){return pad(S.getUTCFullYear()%1e4,C,4)}function formatUTCFullYearISO(S,C){var R=S.getUTCDay();return S=R>=4||R===0?utcThursday(S):utcThursday.ceil(S),pad(S.getUTCFullYear()%1e4,C,4)}function formatUTCZone(){return"+0000"}function formatLiteralPercent(){return"%"}function formatUnixTimestamp(S){return+S}function formatUnixTimestampSeconds(S){return Math.floor(+S/1e3)}var locale,timeFormat,utcFormat;defaultLocale({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function defaultLocale(S){return locale=formatLocale(S),timeFormat=locale.format,locale.parse,utcFormat=locale.utcFormat,locale.utcParse,locale}function date(S){return new Date(S)}function number(S){return S instanceof Date?+S:+new Date(+S)}function calendar(S,C,R,O,I,N,L,B,j,F){var V=continuous(),K=V.invert,W=V.domain,X=F(".%L"),J=F(":%S"),oe=F("%I:%M"),pe=F("%I %p"),me=F("%a %d"),xe=F("%b %d"),Ae=F("%B"),ge=F("%Y");function Te(we){return(j(we)C(I/(S.length-1)))},R.quantiles=function(O){return Array.from({length:O+1},(I,N)=>quantile$1(S,N/O))},R.copy=function(){return sequentialQuantile(C).domain(S)},initInterpolator.apply(R,arguments)}function transformer(){var S=0,C=.5,R=1,O=1,I,N,L,B,j,F=identity$2,V,K=!1,W;function X(oe){return isNaN(oe=+oe)?W:(oe=.5+((oe=+V(oe))-N)*(O*oeS.e^N.s<0?1:-1;for(O=N.d.length,I=S.d.length,C=0,R=OS.d[C]^N.s<0?1:-1;return O===I?0:O>I^N.s<0?1:-1},P.decimalPlaces=P.dp=function(){var S=this,C=S.d.length-1,R=(C-S.e)*LOG_BASE;if(C=S.d[C],C)for(;C%10==0;C/=10)R--;return R<0?0:R},P.dividedBy=P.div=function(S){return divide(this,new this.constructor(S))},P.dividedToIntegerBy=P.idiv=function(S){var C=this,R=C.constructor;return round(divide(C,new R(S),0,1),R.precision)},P.equals=P.eq=function(S){return!this.cmp(S)},P.exponent=function(){return getBase10Exponent(this)},P.greaterThan=P.gt=function(S){return this.cmp(S)>0},P.greaterThanOrEqualTo=P.gte=function(S){return this.cmp(S)>=0},P.isInteger=P.isint=function(){return this.e>this.d.length-2},P.isNegative=P.isneg=function(){return this.s<0},P.isPositive=P.ispos=function(){return this.s>0},P.isZero=function(){return this.s===0},P.lessThan=P.lt=function(S){return this.cmp(S)<0},P.lessThanOrEqualTo=P.lte=function(S){return this.cmp(S)<1},P.logarithm=P.log=function(S){var C,R=this,O=R.constructor,I=O.precision,N=I+5;if(S===void 0)S=new O(10);else if(S=new O(S),S.s<1||S.eq(ONE))throw Error(decimalError+"NaN");if(R.s<1)throw Error(decimalError+(R.s?"NaN":"-Infinity"));return R.eq(ONE)?new O(0):(external=!1,C=divide(ln(R,N),ln(S,N),N),external=!0,round(C,I))},P.minus=P.sub=function(S){var C=this;return S=new C.constructor(S),C.s==S.s?subtract(C,S):add(C,(S.s=-S.s,S))},P.modulo=P.mod=function(S){var C,R=this,O=R.constructor,I=O.precision;if(S=new O(S),!S.s)throw Error(decimalError+"NaN");return R.s?(external=!1,C=divide(R,S,0,1).times(S),external=!0,R.minus(C)):round(new O(R),I)},P.naturalExponential=P.exp=function(){return exp(this)},P.naturalLogarithm=P.ln=function(){return ln(this)},P.negated=P.neg=function(){var S=new this.constructor(this);return S.s=-S.s||0,S},P.plus=P.add=function(S){var C=this;return S=new C.constructor(S),C.s==S.s?add(C,S):subtract(C,(S.s=-S.s,S))},P.precision=P.sd=function(S){var C,R,O,I=this;if(S!==void 0&&S!==!!S&&S!==1&&S!==0)throw Error(invalidArgument+S);if(C=getBase10Exponent(I)+1,O=I.d.length-1,R=O*LOG_BASE+1,O=I.d[O],O){for(;O%10==0;O/=10)R--;for(O=I.d[0];O>=10;O/=10)R++}return S&&C>R?C:R},P.squareRoot=P.sqrt=function(){var S,C,R,O,I,N,L,B=this,j=B.constructor;if(B.s<1){if(!B.s)return new j(0);throw Error(decimalError+"NaN")}for(S=getBase10Exponent(B),external=!1,I=Math.sqrt(+B),I==0||I==1/0?(C=digitsToString(B.d),(C.length+S)%2==0&&(C+="0"),I=Math.sqrt(C),S=mathfloor((S+1)/2)-(S<0||S%2),I==1/0?C="5e"+S:(C=I.toExponential(),C=C.slice(0,C.indexOf("e")+1)+S),O=new j(C)):O=new j(I.toString()),R=j.precision,I=L=R+3;;)if(N=O,O=N.plus(divide(B,N,L+2)).times(.5),digitsToString(N.d).slice(0,L)===(C=digitsToString(O.d)).slice(0,L)){if(C=C.slice(L-3,L+1),I==L&&C=="4999"){if(round(N,R+1,0),N.times(N).eq(B)){O=N;break}}else if(C!="9999")break;L+=4}return external=!0,round(O,R)},P.times=P.mul=function(S){var C,R,O,I,N,L,B,j,F,V=this,K=V.constructor,W=V.d,X=(S=new K(S)).d;if(!V.s||!S.s)return new K(0);for(S.s*=V.s,R=V.e+S.e,j=W.length,F=X.length,j=0;){for(C=0,I=j+O;I>O;)B=N[I]+X[O]*W[I-O-1]+C,N[I--]=B%BASE|0,C=B/BASE|0;N[I]=(N[I]+C)%BASE|0}for(;!N[--L];)N.pop();return C?++R:N.shift(),S.d=N,S.e=R,external?round(S,K.precision):S},P.toDecimalPlaces=P.todp=function(S,C){var R=this,O=R.constructor;return R=new O(R),S===void 0?R:(checkInt32(S,0,MAX_DIGITS),C===void 0?C=O.rounding:checkInt32(C,0,8),round(R,S+getBase10Exponent(R)+1,C))},P.toExponential=function(S,C){var R,O=this,I=O.constructor;return S===void 0?R=toString(O,!0):(checkInt32(S,0,MAX_DIGITS),C===void 0?C=I.rounding:checkInt32(C,0,8),O=round(new I(O),S+1,C),R=toString(O,!0,S+1)),R},P.toFixed=function(S,C){var R,O,I=this,N=I.constructor;return S===void 0?toString(I):(checkInt32(S,0,MAX_DIGITS),C===void 0?C=N.rounding:checkInt32(C,0,8),O=round(new N(I),S+getBase10Exponent(I)+1,C),R=toString(O.abs(),!1,S+getBase10Exponent(O)+1),I.isneg()&&!I.isZero()?"-"+R:R)},P.toInteger=P.toint=function(){var S=this,C=S.constructor;return round(new C(S),getBase10Exponent(S)+1,C.rounding)},P.toNumber=function(){return+this},P.toPower=P.pow=function(S){var C,R,O,I,N,L,B=this,j=B.constructor,F=12,V=+(S=new j(S));if(!S.s)return new j(ONE);if(B=new j(B),!B.s){if(S.s<1)throw Error(decimalError+"Infinity");return B}if(B.eq(ONE))return B;if(O=j.precision,S.eq(ONE))return round(B,O);if(C=S.e,R=S.d.length-1,L=C>=R,N=B.s,L){if((R=V<0?-V:V)<=MAX_SAFE_INTEGER){for(I=new j(ONE),C=Math.ceil(O/LOG_BASE+4),external=!1;R%2&&(I=I.times(B),truncate(I.d,C)),R=mathfloor(R/2),R!==0;)B=B.times(B),truncate(B.d,C);return external=!0,S.s<0?new j(ONE).div(I):round(I,O)}}else if(N<0)throw Error(decimalError+"NaN");return N=N<0&&S.d[Math.max(C,R)]&1?-1:1,B.s=1,external=!1,I=S.times(ln(B,O+F)),external=!0,I=exp(I),I.s=N,I},P.toPrecision=function(S,C){var R,O,I=this,N=I.constructor;return S===void 0?(R=getBase10Exponent(I),O=toString(I,R<=N.toExpNeg||R>=N.toExpPos)):(checkInt32(S,1,MAX_DIGITS),C===void 0?C=N.rounding:checkInt32(C,0,8),I=round(new N(I),S,C),R=getBase10Exponent(I),O=toString(I,S<=R||R<=N.toExpNeg,S)),O},P.toSignificantDigits=P.tosd=function(S,C){var R=this,O=R.constructor;return S===void 0?(S=O.precision,C=O.rounding):(checkInt32(S,1,MAX_DIGITS),C===void 0?C=O.rounding:checkInt32(C,0,8)),round(new O(R),S,C)},P.toString=P.valueOf=P.val=P.toJSON=P[Symbol.for("nodejs.util.inspect.custom")]=function(){var S=this,C=getBase10Exponent(S),R=S.constructor;return toString(S,C<=R.toExpNeg||C>=R.toExpPos)};function add(S,C){var R,O,I,N,L,B,j,F,V=S.constructor,K=V.precision;if(!S.s||!C.s)return C.s||(C=new V(S)),external?round(C,K):C;if(j=S.d,F=C.d,L=S.e,I=C.e,j=j.slice(),N=L-I,N){for(N<0?(O=j,N=-N,B=F.length):(O=F,I=L,B=j.length),L=Math.ceil(K/LOG_BASE),B=L>B?L+1:B+1,N>B&&(N=B,O.length=1),O.reverse();N--;)O.push(0);O.reverse()}for(B=j.length,N=F.length,B-N<0&&(N=B,O=F,F=j,j=O),R=0;N;)R=(j[--N]=j[N]+F[N]+R)/BASE|0,j[N]%=BASE;for(R&&(j.unshift(R),++I),B=j.length;j[--B]==0;)j.pop();return C.d=j,C.e=I,external?round(C,K):C}function checkInt32(S,C,R){if(S!==~~S||SR)throw Error(invalidArgument+S)}function digitsToString(S){var C,R,O,I=S.length-1,N="",L=S[0];if(I>0){for(N+=L,C=1;CL?1:-1;else for(B=j=0;BI[B]?1:-1;break}return j}function R(O,I,N){for(var L=0;N--;)O[N]-=L,L=O[N]1;)O.shift()}return function(O,I,N,L){var B,j,F,V,K,W,X,J,oe,pe,me,xe,Ae,ge,Te,we,ke,Be,Ie=O.constructor,je=O.s==I.s?1:-1,Ke=O.d,Je=I.d;if(!O.s)return new Ie(O);if(!I.s)throw Error(decimalError+"Division by zero");for(j=O.e-I.e,ke=Je.length,Te=Ke.length,X=new Ie(je),J=X.d=[],F=0;Je[F]==(Ke[F]||0);)++F;if(Je[F]>(Ke[F]||0)&&--j,N==null?xe=N=Ie.precision:L?xe=N+(getBase10Exponent(O)-getBase10Exponent(I))+1:xe=N,xe<0)return new Ie(0);if(xe=xe/LOG_BASE+2|0,F=0,ke==1)for(V=0,Je=Je[0],xe++;(F1&&(Je=S(Je,V),Ke=S(Ke,V),ke=Je.length,Te=Ke.length),ge=ke,oe=Ke.slice(0,ke),pe=oe.length;pe=BASE/2&&++we;do V=0,B=C(Je,oe,ke,pe),B<0?(me=oe[0],ke!=pe&&(me=me*BASE+(oe[1]||0)),V=me/we|0,V>1?(V>=BASE&&(V=BASE-1),K=S(Je,V),W=K.length,pe=oe.length,B=C(K,oe,W,pe),B==1&&(V--,R(K,ke16)throw Error(exponentOutOfRange+getBase10Exponent(S));if(!S.s)return new V(ONE);for(C==null?(external=!1,B=K):B=C,L=new V(.03125);S.abs().gte(.1);)S=S.times(L),F+=5;for(O=Math.log(mathpow(2,F))/Math.LN10*2+5|0,B+=O,R=I=N=new V(ONE),V.precision=B;;){if(I=round(I.times(S),B),R=R.times(++j),L=N.plus(divide(I,R,B)),digitsToString(L.d).slice(0,B)===digitsToString(N.d).slice(0,B)){for(;F--;)N=round(N.times(N),B);return V.precision=K,C==null?(external=!0,round(N,K)):N}N=L}}function getBase10Exponent(S){for(var C=S.e*LOG_BASE,R=S.d[0];R>=10;R/=10)C++;return C}function getLn10(S,C,R){if(C>S.LN10.sd())throw external=!0,R&&(S.precision=R),Error(decimalError+"LN10 precision limit exceeded");return round(new S(S.LN10),C)}function getZeroString(S){for(var C="";S--;)C+="0";return C}function ln(S,C){var R,O,I,N,L,B,j,F,V,K=1,W=10,X=S,J=X.d,oe=X.constructor,pe=oe.precision;if(X.s<1)throw Error(decimalError+(X.s?"NaN":"-Infinity"));if(X.eq(ONE))return new oe(0);if(C==null?(external=!1,F=pe):F=C,X.eq(10))return C==null&&(external=!0),getLn10(oe,F);if(F+=W,oe.precision=F,R=digitsToString(J),O=R.charAt(0),N=getBase10Exponent(X),Math.abs(N)<15e14){for(;O<7&&O!=1||O==1&&R.charAt(1)>3;)X=X.times(S),R=digitsToString(X.d),O=R.charAt(0),K++;N=getBase10Exponent(X),O>1?(X=new oe("0."+R),N++):X=new oe(O+"."+R.slice(1))}else return j=getLn10(oe,F+2,pe).times(N+""),X=ln(new oe(O+"."+R.slice(1)),F-W).plus(j),oe.precision=pe,C==null?(external=!0,round(X,pe)):X;for(B=L=X=divide(X.minus(ONE),X.plus(ONE),F),V=round(X.times(X),F),I=3;;){if(L=round(L.times(V),F),j=B.plus(divide(L,new oe(I),F)),digitsToString(j.d).slice(0,F)===digitsToString(B.d).slice(0,F))return B=B.times(2),N!==0&&(B=B.plus(getLn10(oe,F+2,pe).times(N+""))),B=divide(B,new oe(K),F),oe.precision=pe,C==null?(external=!0,round(B,pe)):B;B=j,I+=2}}function parseDecimal(S,C){var R,O,I;for((R=C.indexOf("."))>-1&&(C=C.replace(".","")),(O=C.search(/e/i))>0?(R<0&&(R=O),R+=+C.slice(O+1),C=C.substring(0,O)):R<0&&(R=C.length),O=0;C.charCodeAt(O)===48;)++O;for(I=C.length;C.charCodeAt(I-1)===48;)--I;if(C=C.slice(O,I),C){if(I-=O,R=R-O-1,S.e=mathfloor(R/LOG_BASE),S.d=[],O=(R+1)%LOG_BASE,R<0&&(O+=LOG_BASE),OMAX_E||S.e<-MAX_E))throw Error(exponentOutOfRange+R)}else S.s=0,S.e=0,S.d=[0];return S}function round(S,C,R){var O,I,N,L,B,j,F,V,K=S.d;for(L=1,N=K[0];N>=10;N/=10)L++;if(O=C-L,O<0)O+=LOG_BASE,I=C,F=K[V=0];else{if(V=Math.ceil((O+1)/LOG_BASE),N=K.length,V>=N)return S;for(F=N=K[V],L=1;N>=10;N/=10)L++;O%=LOG_BASE,I=O-LOG_BASE+L}if(R!==void 0&&(N=mathpow(10,L-I-1),B=F/N%10|0,j=C<0||K[V+1]!==void 0||F%N,j=R<4?(B||j)&&(R==0||R==(S.s<0?3:2)):B>5||B==5&&(R==4||j||R==6&&(O>0?I>0?F/mathpow(10,L-I):0:K[V-1])%10&1||R==(S.s<0?8:7))),C<1||!K[0])return j?(N=getBase10Exponent(S),K.length=1,C=C-N-1,K[0]=mathpow(10,(LOG_BASE-C%LOG_BASE)%LOG_BASE),S.e=mathfloor(-C/LOG_BASE)||0):(K.length=1,K[0]=S.e=S.s=0),S;if(O==0?(K.length=V,N=1,V--):(K.length=V+1,N=mathpow(10,LOG_BASE-O),K[V]=I>0?(F/mathpow(10,L-I)%mathpow(10,I)|0)*N:0),j)for(;;)if(V==0){(K[0]+=N)==BASE&&(K[0]=1,++S.e);break}else{if(K[V]+=N,K[V]!=BASE)break;K[V--]=0,N=1}for(O=K.length;K[--O]===0;)K.pop();if(external&&(S.e>MAX_E||S.e<-MAX_E))throw Error(exponentOutOfRange+getBase10Exponent(S));return S}function subtract(S,C){var R,O,I,N,L,B,j,F,V,K,W=S.constructor,X=W.precision;if(!S.s||!C.s)return C.s?C.s=-C.s:C=new W(S),external?round(C,X):C;if(j=S.d,K=C.d,O=C.e,F=S.e,j=j.slice(),L=F-O,L){for(V=L<0,V?(R=j,L=-L,B=K.length):(R=K,O=F,B=j.length),I=Math.max(Math.ceil(X/LOG_BASE),B)+2,L>I&&(L=I,R.length=1),R.reverse(),I=L;I--;)R.push(0);R.reverse()}else{for(I=j.length,B=K.length,V=I0;--I)j[B++]=0;for(I=K.length;I>L;){if(j[--I]0?N=N.charAt(0)+"."+N.slice(1)+getZeroString(O):L>1&&(N=N.charAt(0)+"."+N.slice(1)),N=N+(I<0?"e":"e+")+I):I<0?(N="0."+getZeroString(-I-1)+N,R&&(O=R-L)>0&&(N+=getZeroString(O))):I>=L?(N+=getZeroString(I+1-L),R&&(O=R-I-1)>0&&(N=N+"."+getZeroString(O))):((O=I+1)0&&(I+1===L&&(N+="."),N+=getZeroString(O))),S.s<0?"-"+N:N}function truncate(S,C){if(S.length>C)return S.length=C,!0}function clone(S){var C,R,O;function I(N){var L=this;if(!(L instanceof I))return new I(N);if(L.constructor=I,N instanceof I){L.s=N.s,L.e=N.e,L.d=(N=N.d)?N.slice():N;return}if(typeof N=="number"){if(N*0!==0)throw Error(invalidArgument+N);if(N>0)L.s=1;else if(N<0)N=-N,L.s=-1;else{L.s=0,L.e=0,L.d=[0];return}if(N===~~N&&N<1e7){L.e=0,L.d=[N];return}return parseDecimal(L,N.toString())}else if(typeof N!="string")throw Error(invalidArgument+N);if(N.charCodeAt(0)===45?(N=N.slice(1),L.s=-1):L.s=1,isDecimal.test(N))parseDecimal(L,N);else throw Error(invalidArgument+N)}if(I.prototype=P,I.ROUND_UP=0,I.ROUND_DOWN=1,I.ROUND_CEIL=2,I.ROUND_FLOOR=3,I.ROUND_HALF_UP=4,I.ROUND_HALF_DOWN=5,I.ROUND_HALF_EVEN=6,I.ROUND_HALF_CEIL=7,I.ROUND_HALF_FLOOR=8,I.clone=clone,I.config=I.set=config,S===void 0&&(S={}),S)for(O=["precision","rounding","toExpNeg","toExpPos","LN10"],C=0;C=I[C+1]&&O<=I[C+2])this[R]=O;else throw Error(invalidArgument+R+": "+O);if((O=S[R="LN10"])!==void 0)if(O==Math.LN10)this[R]=new this(O);else throw Error(invalidArgument+R+": "+O);return this}var Decimal=clone(defaults);ONE=new Decimal(1);const Decimal$1=Decimal;function _toConsumableArray$7(S){return _arrayWithoutHoles$7(S)||_iterableToArray$7(S)||_unsupportedIterableToArray$c(S)||_nonIterableSpread$7()}function _nonIterableSpread$7(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$c(S,C){if(S){if(typeof S=="string")return _arrayLikeToArray$c(S,C);var R=Object.prototype.toString.call(S).slice(8,-1);if(R==="Object"&&S.constructor&&(R=S.constructor.name),R==="Map"||R==="Set")return Array.from(S);if(R==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(R))return _arrayLikeToArray$c(S,C)}}function _iterableToArray$7(S){if(typeof Symbol<"u"&&Symbol.iterator in Object(S))return Array.from(S)}function _arrayWithoutHoles$7(S){if(Array.isArray(S))return _arrayLikeToArray$c(S)}function _arrayLikeToArray$c(S,C){(C==null||C>S.length)&&(C=S.length);for(var R=0,O=new Array(C);R=C?R.apply(void 0,I):S(C-L,curry0(function(){for(var B=arguments.length,j=new Array(B),F=0;FS.length)&&(C=S.length);for(var R=0,O=new Array(C);R"u"||!(Symbol.iterator in Object(S)))){var R=[],O=!0,I=!1,N=void 0;try{for(var L=S[Symbol.iterator](),B;!(O=(B=L.next()).done)&&(R.push(B.value),!(C&&R.length===C));O=!0);}catch(j){I=!0,N=j}finally{try{!O&&L.return!=null&&L.return()}finally{if(I)throw N}}return R}}function _arrayWithHoles$6(S){if(Array.isArray(S))return S}function getValidInterval(S){var C=_slicedToArray$6(S,2),R=C[0],O=C[1],I=R,N=O;return R>O&&(I=O,N=R),[I,N]}function getFormatStep(S,C,R){if(S.lte(0))return new Decimal$1(0);var O=Arithmetic.getDigitCount(S.toNumber()),I=new Decimal$1(10).pow(O),N=S.div(I),L=O!==1?.05:.1,B=new Decimal$1(Math.ceil(N.div(L).toNumber())).add(R).mul(L),j=B.mul(I);return C?j:new Decimal$1(Math.ceil(j))}function getTickOfSingleValue(S,C,R){var O=1,I=new Decimal$1(S);if(!I.isint()&&R){var N=Math.abs(S);N<1?(O=new Decimal$1(10).pow(Arithmetic.getDigitCount(S)-1),I=new Decimal$1(Math.floor(I.div(O).toNumber())).mul(O)):N>1&&(I=new Decimal$1(Math.floor(S)))}else S===0?I=new Decimal$1(Math.floor((C-1)/2)):R||(I=new Decimal$1(Math.floor(S)));var L=Math.floor((C-1)/2),B=compose(map(function(j){return I.add(new Decimal$1(j-L).mul(O)).toNumber()}),range);return B(0,C)}function calculateStep(S,C,R,O){var I=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((C-S)/(R-1)))return{step:new Decimal$1(0),tickMin:new Decimal$1(0),tickMax:new Decimal$1(0)};var N=getFormatStep(new Decimal$1(C).sub(S).div(R-1),O,I),L;S<=0&&C>=0?L=new Decimal$1(0):(L=new Decimal$1(S).add(C).div(2),L=L.sub(new Decimal$1(L).mod(N)));var B=Math.ceil(L.sub(S).div(N).toNumber()),j=Math.ceil(new Decimal$1(C).sub(L).div(N).toNumber()),F=B+j+1;return F>R?calculateStep(S,C,R,O,I+1):(F0?j+(R-F):j,B=C>0?B:B+(R-F)),{step:N,tickMin:L.sub(new Decimal$1(B).mul(N)),tickMax:L.add(new Decimal$1(j).mul(N))})}function getNiceTickValuesFn(S){var C=_slicedToArray$6(S,2),R=C[0],O=C[1],I=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,L=Math.max(I,2),B=getValidInterval([R,O]),j=_slicedToArray$6(B,2),F=j[0],V=j[1];if(F===-1/0||V===1/0){var K=V===1/0?[F].concat(_toConsumableArray$6(range(0,I-1).map(function(){return 1/0}))):[].concat(_toConsumableArray$6(range(0,I-1).map(function(){return-1/0})),[V]);return R>O?reverse(K):K}if(F===V)return getTickOfSingleValue(F,I,N);var W=calculateStep(F,V,L,N),X=W.step,J=W.tickMin,oe=W.tickMax,pe=Arithmetic.rangeStep(J,oe.add(new Decimal$1(.1).mul(X)),X);return R>O?reverse(pe):pe}function getTickValuesFixedDomainFn(S,C){var R=_slicedToArray$6(S,2),O=R[0],I=R[1],N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,L=getValidInterval([O,I]),B=_slicedToArray$6(L,2),j=B[0],F=B[1];if(j===-1/0||F===1/0)return[O,I];if(j===F)return[j];var V=Math.max(C,2),K=getFormatStep(new Decimal$1(F).sub(j).div(V-1),N,0),W=[].concat(_toConsumableArray$6(Arithmetic.rangeStep(new Decimal$1(j),new Decimal$1(F).sub(new Decimal$1(.99).mul(K)),K)),[F]);return O>I?reverse(W):W}var getNiceTickValues=memoize(getNiceTickValuesFn),getTickValuesFixedDomain=memoize(getTickValuesFixedDomainFn),_excluded$8=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function _extends$i(){return _extends$i=Object.assign?Object.assign.bind():function(S){for(var C=1;CS.length)&&(C=S.length);for(var R=0,O=new Array(C);R=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$8(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}function ErrorBar(S){var C=S.offset,R=S.layout,O=S.width,I=S.dataKey,N=S.data,L=S.dataPointFormatter,B=S.xAxis,j=S.yAxis,F=_objectWithoutProperties$8(S,_excluded$8),V=filterProps(F),K=N.map(function(W){var X=L(W,I),J=X.x,oe=X.y,pe=X.value,me=X.errorVal;if(!me)return null;var xe=[],Ae,ge;if(Array.isArray(me)){var Te=_slicedToArray$5(me,2);Ae=Te[0],ge=Te[1]}else Ae=ge=me;if(R==="vertical"){var we=B.scale,ke=oe+C,Be=ke+O,Ie=ke-O,je=we(pe-Ae),Ke=we(pe+ge);xe.push({x1:Ke,y1:Be,x2:Ke,y2:Ie}),xe.push({x1:je,y1:ke,x2:Ke,y2:ke}),xe.push({x1:je,y1:Be,x2:je,y2:Ie})}else if(R==="horizontal"){var Je=j.scale,Xe=J+C,ot=Xe-O,tt=Xe+O,Ue=Je(pe-Ae),et=Je(pe+ge);xe.push({x1:ot,y1:et,x2:tt,y2:et}),xe.push({x1:Xe,y1:Ue,x2:Xe,y2:et}),xe.push({x1:ot,y1:Ue,x2:tt,y2:Ue})}return React.createElement(Layer,_extends$i({className:"recharts-errorBar",key:"bar-".concat(xe.map(function(dt){return"".concat(dt.x1,"-").concat(dt.x2,"-").concat(dt.y1,"-").concat(dt.y2)}))},V),xe.map(function(dt){return React.createElement("line",_extends$i({},dt,{key:"line-".concat(dt.x1,"-").concat(dt.x2,"-").concat(dt.y1,"-").concat(dt.y2)}))}))});return React.createElement(Layer,{className:"recharts-errorBars"},K)}ErrorBar.defaultProps={stroke:"black",strokeWidth:1.5,width:5,offset:0,layout:"horizontal"},ErrorBar.displayName="ErrorBar";function _typeof$o(S){"@babel/helpers - typeof";return _typeof$o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$o(S)}function ownKeys$n(S,C){var R=Object.keys(S);if(Object.getOwnPropertySymbols){var O=Object.getOwnPropertySymbols(S);C&&(O=O.filter(function(I){return Object.getOwnPropertyDescriptor(S,I).enumerable})),R.push.apply(R,O)}return R}function _objectSpread$n(S){for(var C=1;CS.length)&&(C=S.length);for(var R=0,O=new Array(C);R1&&arguments[1]!==void 0?arguments[1]:[],I=arguments.length>2?arguments[2]:void 0,N=arguments.length>3?arguments[3]:void 0,L=-1,B=(R=O==null?void 0:O.length)!==null&&R!==void 0?R:0;if(B<=1)return 0;if(N&&N.axisType==="angleAxis"&&Math.abs(Math.abs(N.range[1]-N.range[0])-360)<=1e-6)for(var j=N.range,F=0;F0?I[F-1].coordinate:I[B-1].coordinate,K=I[F].coordinate,W=F>=B-1?I[0].coordinate:I[F+1].coordinate,X=void 0;if(mathSign(K-V)!==mathSign(W-K)){var J=[];if(mathSign(W-K)===mathSign(j[1]-j[0])){X=W;var oe=K+j[1]-j[0];J[0]=Math.min(oe,(oe+V)/2),J[1]=Math.max(oe,(oe+V)/2)}else{X=V;var pe=W+j[1]-j[0];J[0]=Math.min(K,(pe+K)/2),J[1]=Math.max(K,(pe+K)/2)}var me=[Math.min(K,(X+K)/2),Math.max(K,(X+K)/2)];if(C>me[0]&&C<=me[1]||C>=J[0]&&C<=J[1]){L=I[F].index;break}}else{var xe=Math.min(V,W),Ae=Math.max(V,W);if(C>(xe+K)/2&&C<=(Ae+K)/2){L=I[F].index;break}}}else for(var ge=0;ge0&&ge(O[ge].coordinate+O[ge-1].coordinate)/2&&C<=(O[ge].coordinate+O[ge+1].coordinate)/2||ge===B-1&&C>(O[ge].coordinate+O[ge-1].coordinate)/2){L=O[ge].index;break}return L},getMainColorOfGraphicItem=function S(C){var R=C,O=R.type.displayName,I=C.props,N=I.stroke,L=I.fill,B;switch(O){case"Line":B=N;break;case"Area":case"Radar":B=N&&N!=="none"?N:L;break;default:B=L;break}return B},getBarSizeList=function S(C){var R=C.barSize,O=C.stackGroups,I=O===void 0?{}:O;if(!I)return{};for(var N={},L=Object.keys(I),B=0,j=L.length;B=0});if(pe&&pe.length){var me=pe[0].props.barSize,xe=pe[0].props[oe];N[xe]||(N[xe]=[]),N[xe].push({item:pe[0],stackList:pe.slice(1),barSize:isNil$1(me)?R:me})}}return N},getBarPosition=function S(C){var R=C.barGap,O=C.barCategoryGap,I=C.bandSize,N=C.sizeList,L=N===void 0?[]:N,B=C.maxBarSize,j=L.length;if(j<1)return null;var F=getPercentValue(R,I,0,!0),V,K=[];if(L[0].barSize===+L[0].barSize){var W=!1,X=I/j,J=L.reduce(function(ge,Te){return ge+Te.barSize||0},0);J+=(j-1)*F,J>=I&&(J-=(j-1)*F,F=0),J>=I&&X>0&&(W=!0,X*=.9,J=j*X);var oe=(I-J)/2>>0,pe={offset:oe-F,size:0};V=L.reduce(function(ge,Te){var we={item:Te.item,position:{offset:pe.offset+pe.size+F,size:W?X:Te.barSize}},ke=[].concat(_toConsumableArray$5(ge),[we]);return pe=ke[ke.length-1].position,Te.stackList&&Te.stackList.length&&Te.stackList.forEach(function(Be){ke.push({item:Be,position:pe})}),ke},K)}else{var me=getPercentValue(O,I,0,!0);I-2*me-(j-1)*F<=0&&(F=0);var xe=(I-2*me-(j-1)*F)/j;xe>1&&(xe>>=0);var Ae=B===+B?Math.min(xe,B):xe;V=L.reduce(function(ge,Te,we){var ke=[].concat(_toConsumableArray$5(ge),[{item:Te.item,position:{offset:me+(xe+F)*we+(xe-Ae)/2,size:Ae}}]);return Te.stackList&&Te.stackList.length&&Te.stackList.forEach(function(Be){ke.push({item:Be,position:ke[ke.length-1].position})}),ke},K)}return V},appendOffsetOfLegend=function S(C,R,O,I){var N=O.children,L=O.width,B=O.margin,j=L-(B.left||0)-(B.right||0),F=getLegendProps({children:N,legendWidth:j});if(F){var V=I||{},K=V.width,W=V.height,X=F.align,J=F.verticalAlign,oe=F.layout;if((oe==="vertical"||oe==="horizontal"&&J==="middle")&&X!=="center"&&isNumber(C[X]))return _objectSpread$m(_objectSpread$m({},C),{},_defineProperty$n({},X,C[X]+(K||0)));if((oe==="horizontal"||oe==="vertical"&&X==="center")&&J!=="middle"&&isNumber(C[J]))return _objectSpread$m(_objectSpread$m({},C),{},_defineProperty$n({},J,C[J]+(W||0)))}return C},isErrorBarRelevantForAxis=function S(C,R,O){return isNil$1(R)?!0:C==="horizontal"?R==="yAxis":C==="vertical"||O==="x"?R==="xAxis":O==="y"?R==="yAxis":!0},getDomainOfErrorBars=function S(C,R,O,I,N){var L=R.props.children,B=findAllByType(L,ErrorBar).filter(function(F){return isErrorBarRelevantForAxis(I,N,F.props.direction)});if(B&&B.length){var j=B.map(function(F){return F.props.dataKey});return C.reduce(function(F,V){var K=getValueByDataKey(V,O,0),W=Array.isArray(K)?[min$9(K),max$8(K)]:[K,K],X=j.reduce(function(J,oe){var pe=getValueByDataKey(V,oe,0),me=W[0]-Math.abs(Array.isArray(pe)?pe[0]:pe),xe=W[1]+Math.abs(Array.isArray(pe)?pe[1]:pe);return[Math.min(me,J[0]),Math.max(xe,J[1])]},[1/0,-1/0]);return[Math.min(X[0],F[0]),Math.max(X[1],F[1])]},[1/0,-1/0])}return null},parseErrorBarsOfAxis=function S(C,R,O,I,N){var L=R.map(function(B){return getDomainOfErrorBars(C,B,O,N,I)}).filter(function(B){return!isNil$1(B)});return L&&L.length?L.reduce(function(B,j){return[Math.min(B[0],j[0]),Math.max(B[1],j[1])]},[1/0,-1/0]):null},getDomainOfItemsWithSameAxis=function S(C,R,O,I,N){var L=R.map(function(j){var F=j.props.dataKey;return O==="number"&&F&&getDomainOfErrorBars(C,j,F,I)||getDomainOfDataByKey(C,F,O,N)});if(O==="number")return L.reduce(function(j,F){return[Math.min(j[0],F[0]),Math.max(j[1],F[1])]},[1/0,-1/0]);var B={};return L.reduce(function(j,F){for(var V=0,K=F.length;V=2?mathSign(B[0]-B[1])*2*F:F,R&&(C.ticks||C.niceTicks)){var V=(C.ticks||C.niceTicks).map(function(K){var W=N?N.indexOf(K):K;return{coordinate:I(W)+F,value:K,offset:F}});return V.filter(function(K){return!isNan(K.coordinate)})}return C.isCategorical&&C.categoricalDomain?C.categoricalDomain.map(function(K,W){return{coordinate:I(K)+F,value:K,index:W,offset:F}}):I.ticks&&!O?I.ticks(C.tickCount).map(function(K){return{coordinate:I(K)+F,value:K,offset:F}}):I.domain().map(function(K,W){return{coordinate:I(K)+F,value:N?N[K]:K,index:W,offset:F}})},handlerWeakMap=new WeakMap,combineEventHandlers=function S(C,R){if(typeof R!="function")return C;handlerWeakMap.has(C)||handlerWeakMap.set(C,new WeakMap);var O=handlerWeakMap.get(C);if(O.has(R))return O.get(R);var I=function(){C.apply(void 0,arguments),R.apply(void 0,arguments)};return O.set(R,I),I},parseScale=function S(C,R,O){var I=C.scale,N=C.type,L=C.layout,B=C.axisType;if(I==="auto")return L==="radial"&&B==="radiusAxis"?{scale:band(),realScaleType:"band"}:L==="radial"&&B==="angleAxis"?{scale:linear(),realScaleType:"linear"}:N==="category"&&R&&(R.indexOf("LineChart")>=0||R.indexOf("AreaChart")>=0||R.indexOf("ComposedChart")>=0&&!O)?{scale:point(),realScaleType:"point"}:N==="category"?{scale:band(),realScaleType:"band"}:{scale:linear(),realScaleType:"linear"};if(isString$1(I)){var j="scale".concat(upperFirst$1(I));return{scale:(d3Scales[j]||point)(),realScaleType:d3Scales[j]?j:"point"}}return isFunction$6(I)?{scale:I}:{scale:point(),realScaleType:"point"}},EPS=1e-4,checkDomainOfScale=function S(C){var R=C.domain();if(!(!R||R.length<=2)){var O=R.length,I=C.range(),N=Math.min(I[0],I[1])-EPS,L=Math.max(I[0],I[1])+EPS,B=C(R[0]),j=C(R[O-1]);(BL||jL)&&C.domain([R[0],R[O-1]])}},offsetSign=function S(C){var R=C.length;if(!(R<=0))for(var O=0,I=C[0].length;O=0?(C[B][O][0]=N,C[B][O][1]=N+j,N=C[B][O][1]):(C[B][O][0]=L,C[B][O][1]=L+j,L=C[B][O][1])}},offsetPositive=function S(C){var R=C.length;if(!(R<=0))for(var O=0,I=C[0].length;O=0?(C[L][O][0]=N,C[L][O][1]=N+B,N=C[L][O][1]):(C[L][O][0]=0,C[L][O][1]=0)}},STACK_OFFSET_MAP={sign:offsetSign,expand:stackOffsetExpand,none:stackOffsetNone,silhouette:stackOffsetSilhouette,wiggle:stackOffsetWiggle,positive:offsetPositive},getStackedData=function S(C,R,O){var I=R.map(function(B){return B.props.dataKey}),N=STACK_OFFSET_MAP[O],L=shapeStack().keys(I).value(function(B,j){return+getValueByDataKey(B,j,0)}).order(stackOrderNone).offset(N);return L(C)},getStackGroupsByAxisId=function S(C,R,O,I,N,L){if(!C)return null;var B=L?R.reverse():R,j={},F=B.reduce(function(K,W){var X=W.props,J=X.stackId,oe=X.hide;if(oe)return K;var pe=W.props[O],me=K[pe]||{hasStack:!1,stackGroups:{}};if(isNumOrStr(J)){var xe=me.stackGroups[J]||{numericAxisId:O,cateAxisId:I,items:[]};xe.items.push(W),me.hasStack=!0,me.stackGroups[J]=xe}else me.stackGroups[uniqueId("_stackId_")]={numericAxisId:O,cateAxisId:I,items:[W]};return _objectSpread$m(_objectSpread$m({},K),{},_defineProperty$n({},pe,me))},j),V={};return Object.keys(F).reduce(function(K,W){var X=F[W];if(X.hasStack){var J={};X.stackGroups=Object.keys(X.stackGroups).reduce(function(oe,pe){var me=X.stackGroups[pe];return _objectSpread$m(_objectSpread$m({},oe),{},_defineProperty$n({},pe,{numericAxisId:O,cateAxisId:I,items:me.items,stackedData:getStackedData(C,me.items,N)}))},J)}return _objectSpread$m(_objectSpread$m({},K),{},_defineProperty$n({},W,X))},V)},getTicksOfScale=function S(C,R){var O=R.realScaleType,I=R.type,N=R.tickCount,L=R.originalDomain,B=R.allowDecimals,j=O||R.scale;if(j!=="auto"&&j!=="linear")return null;if(N&&I==="number"&&L&&(L[0]==="auto"||L[1]==="auto")){var F=C.domain();if(!F.length)return null;var V=getNiceTickValues(F,N,B);return C.domain([min$9(V),max$8(V)]),{niceTicks:V}}if(N&&I==="number"){var K=C.domain(),W=getTickValuesFixedDomain(K,N,B);return{niceTicks:W}}return null},getStackedDataOfItem=function S(C,R){var O=C.props.stackId;if(isNumOrStr(O)){var I=R[O];if(I){var N=I.items.indexOf(C);return N>=0?I.stackedData[N]:null}}return null},getDomainOfSingle=function S(C){return C.reduce(function(R,O){return[min$9(O.concat([R[0]]).filter(isNumber)),max$8(O.concat([R[1]]).filter(isNumber))]},[1/0,-1/0])},getDomainOfStackGroups=function S(C,R,O){return Object.keys(C).reduce(function(I,N){var L=C[N],B=L.stackedData,j=B.reduce(function(F,V){var K=getDomainOfSingle(V.slice(R,O+1));return[Math.min(F[0],K[0]),Math.max(F[1],K[1])]},[1/0,-1/0]);return[Math.min(j[0],I[0]),Math.max(j[1],I[1])]},[1/0,-1/0]).map(function(I){return I===1/0||I===-1/0?0:I})},MIN_VALUE_REG=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,MAX_VALUE_REG=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,parseSpecifiedDomain=function S(C,R,O){if(isFunction$6(C))return C(R,O);if(!Array.isArray(C))return R;var I=[];if(isNumber(C[0]))I[0]=O?C[0]:Math.min(C[0],R[0]);else if(MIN_VALUE_REG.test(C[0])){var N=+MIN_VALUE_REG.exec(C[0])[1];I[0]=R[0]-N}else isFunction$6(C[0])?I[0]=C[0](R[0]):I[0]=R[0];if(isNumber(C[1]))I[1]=O?C[1]:Math.max(C[1],R[1]);else if(MAX_VALUE_REG.test(C[1])){var L=+MAX_VALUE_REG.exec(C[1])[1];I[1]=R[1]+L}else isFunction$6(C[1])?I[1]=C[1](R[1]):I[1]=R[1];return I},getBandSizeOfAxis=function S(C,R,O){if(C&&C.scale&&C.scale.bandwidth){var I=C.scale.bandwidth();if(!O||I>0)return I}if(C&&R&&R.length>=2){for(var N=sortBy$1(R,function(K){return K.coordinate}),L=1/0,B=1,j=N.length;BS.length)&&(C=S.length);for(var R=0,O=new Array(C);R2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(C-(O.left||0)-(O.right||0)),Math.abs(R-(O.top||0)-(O.bottom||0)))/2},formatAxisMap=function S(C,R,O,I,N){var L=C.width,B=C.height,j=C.startAngle,F=C.endAngle,V=getPercentValue(C.cx,L,L/2),K=getPercentValue(C.cy,B,B/2),W=getMaxRadius(L,B,O),X=getPercentValue(C.innerRadius,W,0),J=getPercentValue(C.outerRadius,W,W*.8),oe=Object.keys(R);return oe.reduce(function(pe,me){var xe=R[me],Ae=xe.domain,ge=xe.reversed,Te;if(isNil$1(xe.range))I==="angleAxis"?Te=[j,F]:I==="radiusAxis"&&(Te=[X,J]),ge&&(Te=[Te[1],Te[0]]);else{Te=xe.range;var we=Te,ke=_slicedToArray$4(we,2);j=ke[0],F=ke[1]}var Be=parseScale(xe,N),Ie=Be.realScaleType,je=Be.scale;je.domain(Ae).range(Te),checkDomainOfScale(je);var Ke=getTicksOfScale(je,_objectSpread$l(_objectSpread$l({},xe),{},{realScaleType:Ie})),Je=_objectSpread$l(_objectSpread$l(_objectSpread$l({},xe),Ke),{},{range:Te,radius:J,realScaleType:Ie,scale:je,cx:V,cy:K,innerRadius:X,outerRadius:J,startAngle:j,endAngle:F});return _objectSpread$l(_objectSpread$l({},pe),{},_defineProperty$m({},me,Je))},{})},distanceBetweenPoints=function S(C,R){var O=C.x,I=C.y,N=R.x,L=R.y;return Math.sqrt(Math.pow(O-N,2)+Math.pow(I-L,2))},getAngleOfPoint=function S(C,R){var O=C.x,I=C.y,N=R.cx,L=R.cy,B=distanceBetweenPoints({x:O,y:I},{x:N,y:L});if(B<=0)return{radius:B};var j=(O-N)/B,F=Math.acos(j);return I>L&&(F=2*Math.PI-F),{radius:B,angle:radianToDegree(F),angleInRadian:F}},formatAngleOfSector=function S(C){var R=C.startAngle,O=C.endAngle,I=Math.floor(R/360),N=Math.floor(O/360),L=Math.min(I,N);return{startAngle:R-L*360,endAngle:O-L*360}},reverseFormatAngleOfSetor=function S(C,R){var O=R.startAngle,I=R.endAngle,N=Math.floor(O/360),L=Math.floor(I/360),B=Math.min(N,L);return C+B*360},inRangeOfSector=function S(C,R){var O=C.x,I=C.y,N=getAngleOfPoint({x:O,y:I},R),L=N.radius,B=N.angle,j=R.innerRadius,F=R.outerRadius;if(LF)return!1;if(L===0)return!0;var V=formatAngleOfSector(R),K=V.startAngle,W=V.endAngle,X=B,J;if(K<=W){for(;X>W;)X-=360;for(;X=K&&X<=W}else{for(;X>K;)X-=360;for(;X=W&&X<=K}return J?_objectSpread$l(_objectSpread$l({},R),{},{radius:L,angle:reverseFormatAngleOfSetor(X,R)}):null};function _typeof$l(S){"@babel/helpers - typeof";return _typeof$l=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$l(S)}var _excluded$7=["offset"];function _toConsumableArray$4(S){return _arrayWithoutHoles$4(S)||_iterableToArray$4(S)||_unsupportedIterableToArray$7(S)||_nonIterableSpread$4()}function _nonIterableSpread$4(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$7(S,C){if(S){if(typeof S=="string")return _arrayLikeToArray$7(S,C);var R=Object.prototype.toString.call(S).slice(8,-1);if(R==="Object"&&S.constructor&&(R=S.constructor.name),R==="Map"||R==="Set")return Array.from(S);if(R==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(R))return _arrayLikeToArray$7(S,C)}}function _iterableToArray$4(S){if(typeof Symbol<"u"&&S[Symbol.iterator]!=null||S["@@iterator"]!=null)return Array.from(S)}function _arrayWithoutHoles$4(S){if(Array.isArray(S))return _arrayLikeToArray$7(S)}function _arrayLikeToArray$7(S,C){(C==null||C>S.length)&&(C=S.length);for(var R=0,O=new Array(C);R=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$7(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}function ownKeys$k(S,C){var R=Object.keys(S);if(Object.getOwnPropertySymbols){var O=Object.getOwnPropertySymbols(S);C&&(O=O.filter(function(I){return Object.getOwnPropertyDescriptor(S,I).enumerable})),R.push.apply(R,O)}return R}function _objectSpread$k(S){for(var C=1;C=0?1:-1,Ae,ge;I==="insideStart"?(Ae=X+xe*L,ge=oe):I==="insideEnd"?(Ae=J-xe*L,ge=!oe):I==="end"&&(Ae=J+xe*L,ge=oe),ge=me<=0?ge:!ge;var Te=polarToCartesian(F,V,pe,Ae),we=polarToCartesian(F,V,pe,Ae+(ge?1:-1)*359),ke="M".concat(Te.x,",").concat(Te.y,` - A`).concat(pe,",").concat(pe,",0,1,").concat(ge?0:1,`, - `).concat(we.x,",").concat(we.y),Be=isNil$1(C.id)?uniqueId("recharts-radial-line-"):C.id;return React.createElement("text",_extends$h({},O,{dominantBaseline:"central",className:clsx("recharts-radial-bar-label",B)}),React.createElement("defs",null,React.createElement("path",{id:Be,d:ke})),React.createElement("textPath",{xlinkHref:"#".concat(Be)},R))},getAttrsOfPolarLabel=function S(C){var R=C.viewBox,O=C.offset,I=C.position,N=R,L=N.cx,B=N.cy,j=N.innerRadius,F=N.outerRadius,V=N.startAngle,K=N.endAngle,W=(V+K)/2;if(I==="outside"){var X=polarToCartesian(L,B,F+O,W),J=X.x,oe=X.y;return{x:J,y:oe,textAnchor:J>=L?"start":"end",verticalAnchor:"middle"}}if(I==="center")return{x:L,y:B,textAnchor:"middle",verticalAnchor:"middle"};if(I==="centerTop")return{x:L,y:B,textAnchor:"middle",verticalAnchor:"start"};if(I==="centerBottom")return{x:L,y:B,textAnchor:"middle",verticalAnchor:"end"};var pe=(j+F)/2,me=polarToCartesian(L,B,pe,W),xe=me.x,Ae=me.y;return{x:xe,y:Ae,textAnchor:"middle",verticalAnchor:"middle"}},getAttrsOfCartesianLabel=function S(C){var R=C.viewBox,O=C.parentViewBox,I=C.offset,N=C.position,L=R,B=L.x,j=L.y,F=L.width,V=L.height,K=V>=0?1:-1,W=K*I,X=K>0?"end":"start",J=K>0?"start":"end",oe=F>=0?1:-1,pe=oe*I,me=oe>0?"end":"start",xe=oe>0?"start":"end";if(N==="top"){var Ae={x:B+F/2,y:j-K*I,textAnchor:"middle",verticalAnchor:X};return _objectSpread$k(_objectSpread$k({},Ae),O?{height:Math.max(j-O.y,0),width:F}:{})}if(N==="bottom"){var ge={x:B+F/2,y:j+V+W,textAnchor:"middle",verticalAnchor:J};return _objectSpread$k(_objectSpread$k({},ge),O?{height:Math.max(O.y+O.height-(j+V),0),width:F}:{})}if(N==="left"){var Te={x:B-pe,y:j+V/2,textAnchor:me,verticalAnchor:"middle"};return _objectSpread$k(_objectSpread$k({},Te),O?{width:Math.max(Te.x-O.x,0),height:V}:{})}if(N==="right"){var we={x:B+F+pe,y:j+V/2,textAnchor:xe,verticalAnchor:"middle"};return _objectSpread$k(_objectSpread$k({},we),O?{width:Math.max(O.x+O.width-we.x,0),height:V}:{})}var ke=O?{width:F,height:V}:{};return N==="insideLeft"?_objectSpread$k({x:B+pe,y:j+V/2,textAnchor:xe,verticalAnchor:"middle"},ke):N==="insideRight"?_objectSpread$k({x:B+F-pe,y:j+V/2,textAnchor:me,verticalAnchor:"middle"},ke):N==="insideTop"?_objectSpread$k({x:B+F/2,y:j+W,textAnchor:"middle",verticalAnchor:J},ke):N==="insideBottom"?_objectSpread$k({x:B+F/2,y:j+V-W,textAnchor:"middle",verticalAnchor:X},ke):N==="insideTopLeft"?_objectSpread$k({x:B+pe,y:j+W,textAnchor:xe,verticalAnchor:J},ke):N==="insideTopRight"?_objectSpread$k({x:B+F-pe,y:j+W,textAnchor:me,verticalAnchor:J},ke):N==="insideBottomLeft"?_objectSpread$k({x:B+pe,y:j+V-W,textAnchor:xe,verticalAnchor:X},ke):N==="insideBottomRight"?_objectSpread$k({x:B+F-pe,y:j+V-W,textAnchor:me,verticalAnchor:X},ke):isObject$y(N)&&(isNumber(N.x)||isPercent(N.x))&&(isNumber(N.y)||isPercent(N.y))?_objectSpread$k({x:B+getPercentValue(N.x,F),y:j+getPercentValue(N.y,V),textAnchor:"end",verticalAnchor:"end"},ke):_objectSpread$k({x:B+F/2,y:j+V/2,textAnchor:"middle",verticalAnchor:"middle"},ke)},isPolar=function S(C){return"cx"in C&&isNumber(C.cx)};function Label(S){var C=S.offset,R=C===void 0?5:C,O=_objectWithoutProperties$7(S,_excluded$7),I=_objectSpread$k({offset:R},O),N=I.viewBox,L=I.position,B=I.value,j=I.children,F=I.content,V=I.className,K=V===void 0?"":V,W=I.textBreakAll;if(!N||isNil$1(B)&&isNil$1(j)&&!reactExports.isValidElement(F)&&!isFunction$6(F))return null;if(reactExports.isValidElement(F))return reactExports.cloneElement(F,I);var X;if(isFunction$6(F)){if(X=reactExports.createElement(F,I),reactExports.isValidElement(X))return X}else X=getLabel(I);var J=isPolar(N),oe=filterProps(I,!0);if(J&&(L==="insideStart"||L==="insideEnd"||L==="end"))return renderRadialLabel(I,X,oe);var pe=J?getAttrsOfPolarLabel(I):getAttrsOfCartesianLabel(I);return React.createElement(Text$1,_extends$h({className:clsx("recharts-label",K)},oe,pe,{breakAll:W}),X)}Label.displayName="Label";var parseViewBox=function S(C){var R=C.cx,O=C.cy,I=C.angle,N=C.startAngle,L=C.endAngle,B=C.r,j=C.radius,F=C.innerRadius,V=C.outerRadius,K=C.x,W=C.y,X=C.top,J=C.left,oe=C.width,pe=C.height,me=C.clockWise,xe=C.labelViewBox;if(xe)return xe;if(isNumber(oe)&&isNumber(pe)){if(isNumber(K)&&isNumber(W))return{x:K,y:W,width:oe,height:pe};if(isNumber(X)&&isNumber(J))return{x:X,y:J,width:oe,height:pe}}return isNumber(K)&&isNumber(W)?{x:K,y:W,width:0,height:0}:isNumber(R)&&isNumber(O)?{cx:R,cy:O,startAngle:N||I||0,endAngle:L||I||0,innerRadius:F||0,outerRadius:V||j||B||0,clockWise:me}:C.viewBox?C.viewBox:{}},parseLabel=function S(C,R){return C?C===!0?React.createElement(Label,{key:"label-implicit",viewBox:R}):isNumOrStr(C)?React.createElement(Label,{key:"label-implicit",viewBox:R,value:C}):reactExports.isValidElement(C)?C.type===Label?reactExports.cloneElement(C,{key:"label-implicit",viewBox:R}):React.createElement(Label,{key:"label-implicit",content:C,viewBox:R}):isFunction$6(C)?React.createElement(Label,{key:"label-implicit",content:C,viewBox:R}):isObject$y(C)?React.createElement(Label,_extends$h({viewBox:R},C,{key:"label-implicit"})):null:null},renderCallByParent$1=function S(C,R){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!C||!C.children&&O&&!C.label)return null;var I=C.children,N=parseViewBox(C),L=findAllByType(I,Label).map(function(j,F){return reactExports.cloneElement(j,{viewBox:R||N,key:"label-".concat(F)})});if(!O)return L;var B=parseLabel(C.label,R||N);return[B].concat(_toConsumableArray$4(L))};Label.parseViewBox=parseViewBox,Label.renderCallByParent=renderCallByParent$1;function _typeof$k(S){"@babel/helpers - typeof";return _typeof$k=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$k(S)}var _excluded$6=["valueAccessor"],_excluded2$3=["data","dataKey","clockWise","id","textBreakAll"];function _toConsumableArray$3(S){return _arrayWithoutHoles$3(S)||_iterableToArray$3(S)||_unsupportedIterableToArray$6(S)||_nonIterableSpread$3()}function _nonIterableSpread$3(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$6(S,C){if(S){if(typeof S=="string")return _arrayLikeToArray$6(S,C);var R=Object.prototype.toString.call(S).slice(8,-1);if(R==="Object"&&S.constructor&&(R=S.constructor.name),R==="Map"||R==="Set")return Array.from(S);if(R==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(R))return _arrayLikeToArray$6(S,C)}}function _iterableToArray$3(S){if(typeof Symbol<"u"&&S[Symbol.iterator]!=null||S["@@iterator"]!=null)return Array.from(S)}function _arrayWithoutHoles$3(S){if(Array.isArray(S))return _arrayLikeToArray$6(S)}function _arrayLikeToArray$6(S,C){(C==null||C>S.length)&&(C=S.length);for(var R=0,O=new Array(C);R=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$6(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}var defaultAccessor=function S(C){return Array.isArray(C.value)?last$1(C.value):C.value};function LabelList(S){var C=S.valueAccessor,R=C===void 0?defaultAccessor:C,O=_objectWithoutProperties$6(S,_excluded$6),I=O.data,N=O.dataKey,L=O.clockWise,B=O.id,j=O.textBreakAll,F=_objectWithoutProperties$6(O,_excluded2$3);return!I||!I.length?null:React.createElement(Layer,{className:"recharts-label-list"},I.map(function(V,K){var W=isNil$1(N)?R(V,K):getValueByDataKey(V&&V.payload,N),X=isNil$1(B)?{}:{id:"".concat(B,"-").concat(K)};return React.createElement(Label,_extends$g({},filterProps(V,!0),F,X,{parentViewBox:V.parentViewBox,value:W,textBreakAll:j,viewBox:Label.parseViewBox(isNil$1(L)?V:_objectSpread$j(_objectSpread$j({},V),{},{clockWise:L})),key:"label-".concat(K),index:K}))}))}LabelList.displayName="LabelList";function parseLabelList(S,C){return S?S===!0?React.createElement(LabelList,{key:"labelList-implicit",data:C}):React.isValidElement(S)||isFunction$6(S)?React.createElement(LabelList,{key:"labelList-implicit",data:C,content:S}):isObject$y(S)?React.createElement(LabelList,_extends$g({data:C},S,{key:"labelList-implicit"})):null:null}function renderCallByParent(S,C){var R=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!S||!S.children&&R&&!S.label)return null;var O=S.children,I=findAllByType(O,LabelList).map(function(L,B){return reactExports.cloneElement(L,{data:C,key:"labelList-".concat(B)})});if(!R)return I;var N=parseLabelList(S.label,C);return[N].concat(_toConsumableArray$3(I))}LabelList.renderCallByParent=renderCallByParent;function _typeof$j(S){"@babel/helpers - typeof";return _typeof$j=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$j(S)}function _extends$f(){return _extends$f=Object.assign?Object.assign.bind():function(S){for(var C=1;C180),",").concat(+(L>F),`, - `).concat(K.x,",").concat(K.y,` - `);if(I>0){var X=polarToCartesian(R,O,I,L),J=polarToCartesian(R,O,I,F);W+="L ".concat(J.x,",").concat(J.y,` - A `).concat(I,",").concat(I,`,0, - `).concat(+(Math.abs(j)>180),",").concat(+(L<=F),`, - `).concat(X.x,",").concat(X.y," Z")}else W+="L ".concat(R,",").concat(O," Z");return W},getSectorWithCorner=function S(C){var R=C.cx,O=C.cy,I=C.innerRadius,N=C.outerRadius,L=C.cornerRadius,B=C.forceCornerRadius,j=C.cornerIsExternal,F=C.startAngle,V=C.endAngle,K=mathSign(V-F),W=getTangentCircle({cx:R,cy:O,radius:N,angle:F,sign:K,cornerRadius:L,cornerIsExternal:j}),X=W.circleTangency,J=W.lineTangency,oe=W.theta,pe=getTangentCircle({cx:R,cy:O,radius:N,angle:V,sign:-K,cornerRadius:L,cornerIsExternal:j}),me=pe.circleTangency,xe=pe.lineTangency,Ae=pe.theta,ge=j?Math.abs(F-V):Math.abs(F-V)-oe-Ae;if(ge<0)return B?"M ".concat(J.x,",").concat(J.y,` - a`).concat(L,",").concat(L,",0,0,1,").concat(L*2,`,0 - a`).concat(L,",").concat(L,",0,0,1,").concat(-L*2,`,0 - `):getSectorPath({cx:R,cy:O,innerRadius:I,outerRadius:N,startAngle:F,endAngle:V});var Te="M ".concat(J.x,",").concat(J.y,` - A`).concat(L,",").concat(L,",0,0,").concat(+(K<0),",").concat(X.x,",").concat(X.y,` - A`).concat(N,",").concat(N,",0,").concat(+(ge>180),",").concat(+(K<0),",").concat(me.x,",").concat(me.y,` - A`).concat(L,",").concat(L,",0,0,").concat(+(K<0),",").concat(xe.x,",").concat(xe.y,` - `);if(I>0){var we=getTangentCircle({cx:R,cy:O,radius:I,angle:F,sign:K,isExternal:!0,cornerRadius:L,cornerIsExternal:j}),ke=we.circleTangency,Be=we.lineTangency,Ie=we.theta,je=getTangentCircle({cx:R,cy:O,radius:I,angle:V,sign:-K,isExternal:!0,cornerRadius:L,cornerIsExternal:j}),Ke=je.circleTangency,Je=je.lineTangency,Xe=je.theta,ot=j?Math.abs(F-V):Math.abs(F-V)-Ie-Xe;if(ot<0&&L===0)return"".concat(Te,"L").concat(R,",").concat(O,"Z");Te+="L".concat(Je.x,",").concat(Je.y,` - A`).concat(L,",").concat(L,",0,0,").concat(+(K<0),",").concat(Ke.x,",").concat(Ke.y,` - A`).concat(I,",").concat(I,",0,").concat(+(ot>180),",").concat(+(K>0),",").concat(ke.x,",").concat(ke.y,` - A`).concat(L,",").concat(L,",0,0,").concat(+(K<0),",").concat(Be.x,",").concat(Be.y,"Z")}else Te+="L".concat(R,",").concat(O,"Z");return Te},defaultProps$2={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},Sector=function S(C){var R=_objectSpread$i(_objectSpread$i({},defaultProps$2),C),O=R.cx,I=R.cy,N=R.innerRadius,L=R.outerRadius,B=R.cornerRadius,j=R.forceCornerRadius,F=R.cornerIsExternal,V=R.startAngle,K=R.endAngle,W=R.className;if(L0&&Math.abs(V-K)<360?pe=getSectorWithCorner({cx:O,cy:I,innerRadius:N,outerRadius:L,cornerRadius:Math.min(oe,J/2),forceCornerRadius:j,cornerIsExternal:F,startAngle:V,endAngle:K}):pe=getSectorPath({cx:O,cy:I,innerRadius:N,outerRadius:L,startAngle:V,endAngle:K}),React.createElement("path",_extends$f({},filterProps(R,!0),{className:X,d:pe,role:"img"}))};function _typeof$i(S){"@babel/helpers - typeof";return _typeof$i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$i(S)}function _extends$e(){return _extends$e=Object.assign?Object.assign.bind():function(S){for(var C=1;CS.length)&&(C=S.length);for(var R=0,O=new Array(C);R=0?1:-1,j=O>=0?1:-1,F=I>=0&&O>=0||I<0&&O<0?1:0,V;if(L>0&&N instanceof Array){for(var K=[0,0,0,0],W=0,X=4;WL?L:N[W];V="M".concat(C,",").concat(R+B*K[0]),K[0]>0&&(V+="A ".concat(K[0],",").concat(K[0],",0,0,").concat(F,",").concat(C+j*K[0],",").concat(R)),V+="L ".concat(C+O-j*K[1],",").concat(R),K[1]>0&&(V+="A ".concat(K[1],",").concat(K[1],",0,0,").concat(F,`, - `).concat(C+O,",").concat(R+B*K[1])),V+="L ".concat(C+O,",").concat(R+I-B*K[2]),K[2]>0&&(V+="A ".concat(K[2],",").concat(K[2],",0,0,").concat(F,`, - `).concat(C+O-j*K[2],",").concat(R+I)),V+="L ".concat(C+j*K[3],",").concat(R+I),K[3]>0&&(V+="A ".concat(K[3],",").concat(K[3],",0,0,").concat(F,`, - `).concat(C,",").concat(R+I-B*K[3])),V+="Z"}else if(L>0&&N===+N&&N>0){var J=Math.min(L,N);V="M ".concat(C,",").concat(R+B*J,` - A `).concat(J,",").concat(J,",0,0,").concat(F,",").concat(C+j*J,",").concat(R,` - L `).concat(C+O-j*J,",").concat(R,` - A `).concat(J,",").concat(J,",0,0,").concat(F,",").concat(C+O,",").concat(R+B*J,` - L `).concat(C+O,",").concat(R+I-B*J,` - A `).concat(J,",").concat(J,",0,0,").concat(F,",").concat(C+O-j*J,",").concat(R+I,` - L `).concat(C+j*J,",").concat(R+I,` - A `).concat(J,",").concat(J,",0,0,").concat(F,",").concat(C,",").concat(R+I-B*J," Z")}else V="M ".concat(C,",").concat(R," h ").concat(O," v ").concat(I," h ").concat(-O," Z");return V},isInRectangle=function S(C,R){if(!C||!R)return!1;var O=C.x,I=C.y,N=R.x,L=R.y,B=R.width,j=R.height;if(Math.abs(B)>0&&Math.abs(j)>0){var F=Math.min(N,N+B),V=Math.max(N,N+B),K=Math.min(L,L+j),W=Math.max(L,L+j);return O>=F&&O<=V&&I>=K&&I<=W}return!1},defaultProps$1={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Rectangle=function S(C){var R=_objectSpread$g(_objectSpread$g({},defaultProps$1),C),O=reactExports.useRef(),I=reactExports.useState(-1),N=_slicedToArray$3(I,2),L=N[0],B=N[1];reactExports.useEffect(function(){if(O.current&&O.current.getTotalLength)try{var ge=O.current.getTotalLength();ge&&B(ge)}catch{}},[]);var j=R.x,F=R.y,V=R.width,K=R.height,W=R.radius,X=R.className,J=R.animationEasing,oe=R.animationDuration,pe=R.animationBegin,me=R.isAnimationActive,xe=R.isUpdateAnimationActive;if(j!==+j||F!==+F||V!==+V||K!==+K||V===0||K===0)return null;var Ae=clsx("recharts-rectangle",X);return xe?React.createElement(Animate,{canBegin:L>0,from:{width:V,height:K,x:j,y:F},to:{width:V,height:K,x:j,y:F},duration:oe,animationEasing:J,isActive:xe},function(ge){var Te=ge.width,we=ge.height,ke=ge.x,Be=ge.y;return React.createElement(Animate,{canBegin:L>0,from:"0px ".concat(L===-1?1:L,"px"),to:"".concat(L,"px 0px"),attributeName:"strokeDasharray",begin:pe,duration:oe,isActive:me,easing:J},React.createElement("path",_extends$d({},filterProps(R,!0),{className:Ae,d:getRectanglePath(ke,Be,Te,we,W),ref:O})))}):React.createElement("path",_extends$d({},filterProps(R,!0),{className:Ae,d:getRectanglePath(j,F,V,K,W)}))},_excluded$5=["points","className","baseLinePoints","connectNulls"];function _extends$c(){return _extends$c=Object.assign?Object.assign.bind():function(S){for(var C=1;C=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$5(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}function _toConsumableArray$2(S){return _arrayWithoutHoles$2(S)||_iterableToArray$2(S)||_unsupportedIterableToArray$4(S)||_nonIterableSpread$2()}function _nonIterableSpread$2(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$4(S,C){if(S){if(typeof S=="string")return _arrayLikeToArray$4(S,C);var R=Object.prototype.toString.call(S).slice(8,-1);if(R==="Object"&&S.constructor&&(R=S.constructor.name),R==="Map"||R==="Set")return Array.from(S);if(R==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(R))return _arrayLikeToArray$4(S,C)}}function _iterableToArray$2(S){if(typeof Symbol<"u"&&S[Symbol.iterator]!=null||S["@@iterator"]!=null)return Array.from(S)}function _arrayWithoutHoles$2(S){if(Array.isArray(S))return _arrayLikeToArray$4(S)}function _arrayLikeToArray$4(S,C){(C==null||C>S.length)&&(C=S.length);for(var R=0,O=new Array(C);R0&&arguments[0]!==void 0?arguments[0]:[],R=[[]];return C.forEach(function(O){isValidatePoint(O)?R[R.length-1].push(O):R[R.length-1].length>0&&R.push([])}),isValidatePoint(C[0])&&R[R.length-1].push(C[0]),R[R.length-1].length<=0&&(R=R.slice(0,-1)),R},getSinglePolygonPath=function S(C,R){var O=getParsedPoints(C);R&&(O=[O.reduce(function(N,L){return[].concat(_toConsumableArray$2(N),_toConsumableArray$2(L))},[])]);var I=O.map(function(N){return N.reduce(function(L,B,j){return"".concat(L).concat(j===0?"M":"L").concat(B.x,",").concat(B.y)},"")}).join("");return O.length===1?"".concat(I,"Z"):I},getRanglePath=function S(C,R,O){var I=getSinglePolygonPath(C,O);return"".concat(I.slice(-1)==="Z"?I.slice(0,-1):I,"L").concat(getSinglePolygonPath(R.reverse(),O).slice(1))},Polygon=function S(C){var R=C.points,O=C.className,I=C.baseLinePoints,N=C.connectNulls,L=_objectWithoutProperties$5(C,_excluded$5);if(!R||!R.length)return null;var B=clsx("recharts-polygon",O);if(I&&I.length){var j=L.stroke&&L.stroke!=="none",F=getRanglePath(R,I,N);return React.createElement("g",{className:B},React.createElement("path",_extends$c({},filterProps(L,!0),{fill:F.slice(-1)==="Z"?L.fill:"none",stroke:"none",d:F})),j?React.createElement("path",_extends$c({},filterProps(L,!0),{fill:"none",d:getSinglePolygonPath(R,N)})):null,j?React.createElement("path",_extends$c({},filterProps(L,!0),{fill:"none",d:getSinglePolygonPath(I,N)})):null)}var V=getSinglePolygonPath(R,N);return React.createElement("path",_extends$c({},filterProps(L,!0),{fill:V.slice(-1)==="Z"?L.fill:"none",className:B,d:V}))};function _extends$b(){return _extends$b=Object.assign?Object.assign.bind():function(S){for(var C=1;C=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$4(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}var getPath=function S(C,R,O,I,N,L){return"M".concat(C,",").concat(N,"v").concat(I,"M").concat(L,",").concat(R,"h").concat(O)},Cross=function S(C){var R=C.x,O=R===void 0?0:R,I=C.y,N=I===void 0?0:I,L=C.top,B=L===void 0?0:L,j=C.left,F=j===void 0?0:j,V=C.width,K=V===void 0?0:V,W=C.height,X=W===void 0?0:W,J=C.className,oe=_objectWithoutProperties$4(C,_excluded$4),pe=_objectSpread$f({x:O,y:N,top:B,left:F,width:K,height:X},oe);return!isNumber(O)||!isNumber(N)||!isNumber(K)||!isNumber(X)||!isNumber(B)||!isNumber(F)?null:React.createElement("path",_extends$a({},filterProps(pe,!0),{className:clsx("recharts-cross",J),d:getPath(O,N,K,X,B,F)}))},baseExtremum=_baseExtremum,baseGt=_baseGt,baseIteratee$2=_baseIteratee;function maxBy(S,C){return S&&S.length?baseExtremum(S,baseIteratee$2(C),baseGt):void 0}var maxBy_1=maxBy;const maxBy$1=getDefaultExportFromCjs(maxBy_1);var _excluded$3=["cx","cy","angle","ticks","axisLine"],_excluded2$2=["ticks","tick","angle","tickFormatter","stroke"];function _typeof$f(S){"@babel/helpers - typeof";return _typeof$f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$f(S)}function _extends$9(){return _extends$9=Object.assign?Object.assign.bind():function(S){for(var C=1;C=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$3(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}function _classCallCheck$7(S,C){if(!(S instanceof C))throw new TypeError("Cannot call a class as a function")}function _defineProperties$7(S,C){for(var R=0;R"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$5(S){return _getPrototypeOf$5=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(R){return R.__proto__||Object.getPrototypeOf(R)},_getPrototypeOf$5(S)}function _defineProperty$f(S,C,R){return C=_toPropertyKey$f(C),C in S?Object.defineProperty(S,C,{value:R,enumerable:!0,configurable:!0,writable:!0}):S[C]=R,S}function _toPropertyKey$f(S){var C=_toPrimitive$f(S,"string");return _typeof$f(C)==="symbol"?C:String(C)}function _toPrimitive$f(S,C){if(_typeof$f(S)!=="object"||S===null)return S;var R=S[Symbol.toPrimitive];if(R!==void 0){var O=R.call(S,C||"default");if(_typeof$f(O)!=="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(C==="string"?String:Number)(S)}var PolarRadiusAxis=function(S){_inherits$5(R,S);var C=_createSuper$5(R);function R(){return _classCallCheck$7(this,R),C.apply(this,arguments)}return _createClass$7(R,[{key:"getTickValueCoord",value:function(I){var N=I.coordinate,L=this.props,B=L.angle,j=L.cx,F=L.cy;return polarToCartesian(j,F,N,B)}},{key:"getTickTextAnchor",value:function(){var I=this.props.orientation,N;switch(I){case"left":N="end";break;case"right":N="start";break;default:N="middle";break}return N}},{key:"getViewBox",value:function(){var I=this.props,N=I.cx,L=I.cy,B=I.angle,j=I.ticks,F=maxBy$1(j,function(K){return K.coordinate||0}),V=minBy$1(j,function(K){return K.coordinate||0});return{cx:N,cy:L,startAngle:B,endAngle:B,innerRadius:V.coordinate||0,outerRadius:F.coordinate||0}}},{key:"renderAxisLine",value:function(){var I=this.props,N=I.cx,L=I.cy,B=I.angle,j=I.ticks,F=I.axisLine,V=_objectWithoutProperties$3(I,_excluded$3),K=j.reduce(function(oe,pe){return[Math.min(oe[0],pe.coordinate),Math.max(oe[1],pe.coordinate)]},[1/0,-1/0]),W=polarToCartesian(N,L,K[0],B),X=polarToCartesian(N,L,K[1],B),J=_objectSpread$e(_objectSpread$e(_objectSpread$e({},filterProps(V)),{},{fill:"none"},filterProps(F)),{},{x1:W.x,y1:W.y,x2:X.x,y2:X.y});return React.createElement("line",_extends$9({className:"recharts-polar-radius-axis-line"},J))}},{key:"renderTicks",value:function(){var I=this,N=this.props,L=N.ticks,B=N.tick,j=N.angle,F=N.tickFormatter,V=N.stroke,K=_objectWithoutProperties$3(N,_excluded2$2),W=this.getTickTextAnchor(),X=filterProps(K),J=filterProps(B),oe=L.map(function(pe,me){var xe=I.getTickValueCoord(pe),Ae=_objectSpread$e(_objectSpread$e(_objectSpread$e(_objectSpread$e({textAnchor:W,transform:"rotate(".concat(90-j,", ").concat(xe.x,", ").concat(xe.y,")")},X),{},{stroke:"none",fill:V},J),{},{index:me},xe),{},{payload:pe});return React.createElement(Layer,_extends$9({className:"recharts-polar-radius-axis-tick",key:"tick-".concat(pe.coordinate)},adaptEventsOfChild(I.props,pe,me)),R.renderTickItem(B,Ae,F?F(pe.value,me):pe.value))});return React.createElement(Layer,{className:"recharts-polar-radius-axis-ticks"},oe)}},{key:"render",value:function(){var I=this.props,N=I.ticks,L=I.axisLine,B=I.tick;return!N||!N.length?null:React.createElement(Layer,{className:"recharts-polar-radius-axis"},L&&this.renderAxisLine(),B&&this.renderTicks(),Label.renderCallByParent(this.props,this.getViewBox()))}}],[{key:"renderTickItem",value:function(I,N,L){var B;return React.isValidElement(I)?B=React.cloneElement(I,N):isFunction$6(I)?B=I(N):B=React.createElement(Text$1,_extends$9({},N,{className:"recharts-polar-radius-axis-tick-value"}),L),B}}]),R}(reactExports.PureComponent);_defineProperty$f(PolarRadiusAxis,"displayName","PolarRadiusAxis"),_defineProperty$f(PolarRadiusAxis,"axisType","radiusAxis"),_defineProperty$f(PolarRadiusAxis,"defaultProps",{type:"number",radiusAxisId:0,cx:0,cy:0,angle:0,orientation:"right",stroke:"#ccc",axisLine:!0,tick:!0,tickCount:5,allowDataOverflow:!1,scale:"auto",allowDuplicatedCategory:!0});function _typeof$e(S){"@babel/helpers - typeof";return _typeof$e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$e(S)}function _extends$8(){return _extends$8=Object.assign?Object.assign.bind():function(S){for(var C=1;C"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$4(S){return _getPrototypeOf$4=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(R){return R.__proto__||Object.getPrototypeOf(R)},_getPrototypeOf$4(S)}function _defineProperty$e(S,C,R){return C=_toPropertyKey$e(C),C in S?Object.defineProperty(S,C,{value:R,enumerable:!0,configurable:!0,writable:!0}):S[C]=R,S}function _toPropertyKey$e(S){var C=_toPrimitive$e(S,"string");return _typeof$e(C)==="symbol"?C:String(C)}function _toPrimitive$e(S,C){if(_typeof$e(S)!=="object"||S===null)return S;var R=S[Symbol.toPrimitive];if(R!==void 0){var O=R.call(S,C||"default");if(_typeof$e(O)!=="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(C==="string"?String:Number)(S)}var RADIAN=Math.PI/180,eps=1e-5,PolarAngleAxis=function(S){_inherits$4(R,S);var C=_createSuper$4(R);function R(){return _classCallCheck$6(this,R),C.apply(this,arguments)}return _createClass$6(R,[{key:"getTickLineCoord",value:function(I){var N=this.props,L=N.cx,B=N.cy,j=N.radius,F=N.orientation,V=N.tickSize,K=V||8,W=polarToCartesian(L,B,j,I.coordinate),X=polarToCartesian(L,B,j+(F==="inner"?-1:1)*K,I.coordinate);return{x1:W.x,y1:W.y,x2:X.x,y2:X.y}}},{key:"getTickTextAnchor",value:function(I){var N=this.props.orientation,L=Math.cos(-I.coordinate*RADIAN),B;return L>eps?B=N==="outer"?"start":"end":L<-eps?B=N==="outer"?"end":"start":B="middle",B}},{key:"renderAxisLine",value:function(){var I=this.props,N=I.cx,L=I.cy,B=I.radius,j=I.axisLine,F=I.axisLineType,V=_objectSpread$d(_objectSpread$d({},filterProps(this.props)),{},{fill:"none"},filterProps(j));if(F==="circle")return React.createElement(Dot,_extends$8({className:"recharts-polar-angle-axis-line"},V,{cx:N,cy:L,r:B}));var K=this.props.ticks,W=K.map(function(X){return polarToCartesian(N,L,B,X.coordinate)});return React.createElement(Polygon,_extends$8({className:"recharts-polar-angle-axis-line"},V,{points:W}))}},{key:"renderTicks",value:function(){var I=this,N=this.props,L=N.ticks,B=N.tick,j=N.tickLine,F=N.tickFormatter,V=N.stroke,K=filterProps(this.props),W=filterProps(B),X=_objectSpread$d(_objectSpread$d({},K),{},{fill:"none"},filterProps(j)),J=L.map(function(oe,pe){var me=I.getTickLineCoord(oe),xe=I.getTickTextAnchor(oe),Ae=_objectSpread$d(_objectSpread$d(_objectSpread$d({textAnchor:xe},K),{},{stroke:"none",fill:V},W),{},{index:pe,payload:oe,x:me.x2,y:me.y2});return React.createElement(Layer,_extends$8({className:"recharts-polar-angle-axis-tick",key:"tick-".concat(oe.coordinate)},adaptEventsOfChild(I.props,oe,pe)),j&&React.createElement("line",_extends$8({className:"recharts-polar-angle-axis-tick-line"},X,me)),B&&R.renderTickItem(B,Ae,F?F(oe.value,pe):oe.value))});return React.createElement(Layer,{className:"recharts-polar-angle-axis-ticks"},J)}},{key:"render",value:function(){var I=this.props,N=I.ticks,L=I.radius,B=I.axisLine;return L<=0||!N||!N.length?null:React.createElement(Layer,{className:"recharts-polar-angle-axis"},B&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(I,N,L){var B;return React.isValidElement(I)?B=React.cloneElement(I,N):isFunction$6(I)?B=I(N):B=React.createElement(Text$1,_extends$8({},N,{className:"recharts-polar-angle-axis-tick-value"}),L),B}}]),R}(reactExports.PureComponent);_defineProperty$e(PolarAngleAxis,"displayName","PolarAngleAxis"),_defineProperty$e(PolarAngleAxis,"axisType","angleAxis"),_defineProperty$e(PolarAngleAxis,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var baseGetTag=_baseGetTag,isObjectLike=isObjectLike_1,boolTag="[object Boolean]";function isBoolean(S){return S===!0||S===!1||isObjectLike(S)&&baseGetTag(S)==boolTag}var isBoolean_1=isBoolean;const isBoolean$1=getDefaultExportFromCjs(isBoolean_1);function _typeof$d(S){"@babel/helpers - typeof";return _typeof$d=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$d(S)}function _extends$7(){return _extends$7=Object.assign?Object.assign.bind():function(S){for(var C=1;CS.length)&&(C=S.length);for(var R=0,O=new Array(C);R0,from:{upperWidth:0,lowerWidth:0,height:W,x:j,y:F},to:{upperWidth:V,lowerWidth:K,height:W,x:j,y:F},duration:oe,animationEasing:J,isActive:me},function(Ae){var ge=Ae.upperWidth,Te=Ae.lowerWidth,we=Ae.height,ke=Ae.x,Be=Ae.y;return React.createElement(Animate,{canBegin:L>0,from:"0px ".concat(L===-1?1:L,"px"),to:"".concat(L,"px 0px"),attributeName:"strokeDasharray",begin:pe,duration:oe,easing:J},React.createElement("path",_extends$7({},filterProps(R,!0),{className:xe,d:getTrapezoidPath(ke,Be,ge,Te,we),ref:O})))}):React.createElement("g",null,React.createElement("path",_extends$7({},filterProps(R,!0),{className:xe,d:getTrapezoidPath(j,F,V,K,W)})))},_excluded$2=["option","shapeType","propTransformer","activeClassName","isActive"];function _typeof$c(S){"@babel/helpers - typeof";return _typeof$c=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$c(S)}function _objectWithoutProperties$2(S,C){if(S==null)return{};var R=_objectWithoutPropertiesLoose$2(S,C),O,I;if(Object.getOwnPropertySymbols){var N=Object.getOwnPropertySymbols(S);for(I=0;I=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$2(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}function ownKeys$b(S,C){var R=Object.keys(S);if(Object.getOwnPropertySymbols){var O=Object.getOwnPropertySymbols(S);C&&(O=O.filter(function(I){return Object.getOwnPropertyDescriptor(S,I).enumerable})),R.push.apply(R,O)}return R}function _objectSpread$b(S){for(var C=1;C"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$3(S){return _getPrototypeOf$3=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(R){return R.__proto__||Object.getPrototypeOf(R)},_getPrototypeOf$3(S)}function _defineProperty$b(S,C,R){return C=_toPropertyKey$b(C),C in S?Object.defineProperty(S,C,{value:R,enumerable:!0,configurable:!0,writable:!0}):S[C]=R,S}function _toPropertyKey$b(S){var C=_toPrimitive$b(S,"string");return _typeof$b(C)==="symbol"?C:String(C)}function _toPrimitive$b(S,C){if(_typeof$b(S)!=="object"||S===null)return S;var R=S[Symbol.toPrimitive];if(R!==void 0){var O=R.call(S,C||"default");if(_typeof$b(O)!=="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(C==="string"?String:Number)(S)}var Pie=function(S){_inherits$3(R,S);var C=_createSuper$3(R);function R(O){var I;return _classCallCheck$5(this,R),I=C.call(this,O),_defineProperty$b(_assertThisInitialized$3(I),"pieRef",null),_defineProperty$b(_assertThisInitialized$3(I),"sectorRefs",[]),_defineProperty$b(_assertThisInitialized$3(I),"id",uniqueId("recharts-pie-")),_defineProperty$b(_assertThisInitialized$3(I),"handleAnimationEnd",function(){var N=I.props.onAnimationEnd;I.setState({isAnimationFinished:!0}),isFunction$6(N)&&N()}),_defineProperty$b(_assertThisInitialized$3(I),"handleAnimationStart",function(){var N=I.props.onAnimationStart;I.setState({isAnimationFinished:!1}),isFunction$6(N)&&N()}),I.state={isAnimationFinished:!O.isAnimationActive,prevIsAnimationActive:O.isAnimationActive,prevAnimationId:O.animationId,sectorToFocus:0},I}return _createClass$5(R,[{key:"isActiveIndex",value:function(I){var N=this.props.activeIndex;return Array.isArray(N)?N.indexOf(I)!==-1:I===N}},{key:"hasActiveIndex",value:function(){var I=this.props.activeIndex;return Array.isArray(I)?I.length!==0:I||I===0}},{key:"renderLabels",value:function(I){var N=this.props.isAnimationActive;if(N&&!this.state.isAnimationFinished)return null;var L=this.props,B=L.label,j=L.labelLine,F=L.dataKey,V=L.valueKey,K=filterProps(this.props),W=filterProps(B),X=filterProps(j),J=B&&B.offsetRadius||20,oe=I.map(function(pe,me){var xe=(pe.startAngle+pe.endAngle)/2,Ae=polarToCartesian(pe.cx,pe.cy,pe.outerRadius+J,xe),ge=_objectSpread$a(_objectSpread$a(_objectSpread$a(_objectSpread$a({},K),pe),{},{stroke:"none"},W),{},{index:me,textAnchor:R.getTextAnchor(Ae.x,pe.cx)},Ae),Te=_objectSpread$a(_objectSpread$a(_objectSpread$a(_objectSpread$a({},K),pe),{},{fill:"none",stroke:pe.fill},X),{},{index:me,points:[polarToCartesian(pe.cx,pe.cy,pe.outerRadius,xe),Ae],key:"line"}),we=F;return isNil$1(F)&&isNil$1(V)?we="value":isNil$1(F)&&(we=V),React.createElement(Layer,{key:"label-".concat(pe.startAngle,"-").concat(pe.endAngle)},j&&R.renderLabelLineItem(j,Te),R.renderLabelItem(B,ge,getValueByDataKey(pe,we)))});return React.createElement(Layer,{className:"recharts-pie-labels"},oe)}},{key:"renderSectorsStatically",value:function(I){var N=this,L=this.props,B=L.activeShape,j=L.blendStroke,F=L.inactiveShape;return I.map(function(V,K){if((V==null?void 0:V.startAngle)===0&&(V==null?void 0:V.endAngle)===0&&I.length!==1)return null;var W=N.isActiveIndex(K),X=F&&N.hasActiveIndex()?F:null,J=W?B:X,oe=_objectSpread$a(_objectSpread$a({},V),{},{stroke:j?V.fill:V.stroke,tabIndex:-1});return React.createElement(Layer,_extends$6({ref:function(me){me&&!N.sectorRefs.includes(me)&&N.sectorRefs.push(me)},tabIndex:-1,className:"recharts-pie-sector"},adaptEventsOfChild(N.props,V,K),{key:"sector-".concat(V==null?void 0:V.startAngle,"-").concat(V==null?void 0:V.endAngle,"-").concat(V.midAngle)}),React.createElement(Shape,_extends$6({option:J,isActive:W,shapeType:"sector"},oe)))})}},{key:"renderSectorsWithAnimation",value:function(){var I=this,N=this.props,L=N.sectors,B=N.isAnimationActive,j=N.animationBegin,F=N.animationDuration,V=N.animationEasing,K=N.animationId,W=this.state,X=W.prevSectors,J=W.prevIsAnimationActive;return React.createElement(Animate,{begin:j,duration:F,isActive:B,easing:V,from:{t:0},to:{t:1},key:"pie-".concat(K,"-").concat(J),onAnimationStart:this.handleAnimationStart,onAnimationEnd:this.handleAnimationEnd},function(oe){var pe=oe.t,me=[],xe=L&&L[0],Ae=xe.startAngle;return L.forEach(function(ge,Te){var we=X&&X[Te],ke=Te>0?get$5(ge,"paddingAngle",0):0;if(we){var Be=interpolateNumber$2(we.endAngle-we.startAngle,ge.endAngle-ge.startAngle),Ie=_objectSpread$a(_objectSpread$a({},ge),{},{startAngle:Ae+ke,endAngle:Ae+Be(pe)+ke});me.push(Ie),Ae=Ie.endAngle}else{var je=ge.endAngle,Ke=ge.startAngle,Je=interpolateNumber$2(0,je-Ke),Xe=Je(pe),ot=_objectSpread$a(_objectSpread$a({},ge),{},{startAngle:Ae+ke,endAngle:Ae+Xe+ke});me.push(ot),Ae=ot.endAngle}}),React.createElement(Layer,null,I.renderSectorsStatically(me))})}},{key:"attachKeyboardHandlers",value:function(I){var N=this;I.onkeydown=function(L){if(!L.altKey)switch(L.key){case"ArrowLeft":{var B=++N.state.sectorToFocus%N.sectorRefs.length;N.sectorRefs[B].focus(),N.setState({sectorToFocus:B});break}case"ArrowRight":{var j=--N.state.sectorToFocus<0?N.sectorRefs.length-1:N.state.sectorToFocus%N.sectorRefs.length;N.sectorRefs[j].focus(),N.setState({sectorToFocus:j});break}case"Escape":{N.sectorRefs[N.state.sectorToFocus].blur(),N.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var I=this.props,N=I.sectors,L=I.isAnimationActive,B=this.state.prevSectors;return L&&N&&N.length&&(!B||!isEqual$1(B,N))?this.renderSectorsWithAnimation():this.renderSectorsStatically(N)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var I=this,N=this.props,L=N.hide,B=N.sectors,j=N.className,F=N.label,V=N.cx,K=N.cy,W=N.innerRadius,X=N.outerRadius,J=N.isAnimationActive,oe=this.state.isAnimationFinished;if(L||!B||!B.length||!isNumber(V)||!isNumber(K)||!isNumber(W)||!isNumber(X))return null;var pe=clsx("recharts-pie",j);return React.createElement(Layer,{tabIndex:this.props.rootTabIndex,className:pe,ref:function(xe){I.pieRef=xe}},this.renderSectors(),F&&this.renderLabels(B),Label.renderCallByParent(this.props,null,!1),(!J||oe)&&LabelList.renderCallByParent(this.props,B,!1))}}],[{key:"getDerivedStateFromProps",value:function(I,N){return N.prevIsAnimationActive!==I.isAnimationActive?{prevIsAnimationActive:I.isAnimationActive,prevAnimationId:I.animationId,curSectors:I.sectors,prevSectors:[],isAnimationFinished:!0}:I.isAnimationActive&&I.animationId!==N.prevAnimationId?{prevAnimationId:I.animationId,curSectors:I.sectors,prevSectors:N.curSectors,isAnimationFinished:!0}:I.sectors!==N.curSectors?{curSectors:I.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(I,N){return I>N?"start":I=360?xe:xe-1)*j,ge=pe-xe*X-Ae,Te=O.reduce(function(Be,Ie){var je=getValueByDataKey(Ie,me,0);return Be+(isNumber(je)?je:0)},0),we;if(Te>0){var ke;we=O.map(function(Be,Ie){var je=getValueByDataKey(Be,me,0),Ke=getValueByDataKey(Be,V,Ie),Je=(isNumber(je)?je:0)/Te,Xe;Ie?Xe=ke.endAngle+mathSign(oe)*j*(je!==0?1:0):Xe=L;var ot=Xe+mathSign(oe)*((je!==0?X:0)+Je*ge),tt=(Xe+ot)/2,Ue=(J.innerRadius+J.outerRadius)/2,et=[{name:Ke,value:je,payload:Be,dataKey:me,type:W}],dt=polarToCartesian(J.cx,J.cy,Ue,tt);return ke=_objectSpread$a(_objectSpread$a(_objectSpread$a({percent:Je,cornerRadius:N,name:Ke,tooltipPayload:et,midAngle:tt,middleRadius:Ue,tooltipPosition:dt},Be),J),{},{value:getValueByDataKey(Be,me),startAngle:Xe,endAngle:ot,payload:Be,paddingAngle:mathSign(oe)*j}),ke})}return _objectSpread$a(_objectSpread$a({},J),{},{sectors:we,data:O})});function _typeof$a(S){"@babel/helpers - typeof";return _typeof$a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$a(S)}function ownKeys$9(S,C){var R=Object.keys(S);if(Object.getOwnPropertySymbols){var O=Object.getOwnPropertySymbols(S);C&&(O=O.filter(function(I){return Object.getOwnPropertyDescriptor(S,I).enumerable})),R.push.apply(R,O)}return R}function _objectSpread$9(S){for(var C=1;C"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$2(S){return _getPrototypeOf$2=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(R){return R.__proto__||Object.getPrototypeOf(R)},_getPrototypeOf$2(S)}function _defineProperty$9(S,C,R){return C=_toPropertyKey$9(C),C in S?Object.defineProperty(S,C,{value:R,enumerable:!0,configurable:!0,writable:!0}):S[C]=R,S}function _toPropertyKey$9(S){var C=_toPrimitive$9(S,"string");return _typeof$9(C)==="symbol"?C:String(C)}function _toPrimitive$9(S,C){if(_typeof$9(S)!=="object"||S===null)return S;var R=S[Symbol.toPrimitive];if(R!==void 0){var O=R.call(S,C||"default");if(_typeof$9(O)!=="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(C==="string"?String:Number)(S)}var createScale=function S(C){var R=C.data,O=C.startIndex,I=C.endIndex,N=C.x,L=C.width,B=C.travellerWidth;if(!R||!R.length)return{};var j=R.length,F=point().domain(range$4(0,j)).range([N,N+L-B]),V=F.domain().map(function(K){return F(K)});return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,isTravellerFocused:!1,startX:F(O),endX:F(I),scale:F,scaleValues:V}},isTouch=function S(C){return C.changedTouches&&!!C.changedTouches.length},Brush=function(S){_inherits$2(R,S);var C=_createSuper$2(R);function R(O){var I;return _classCallCheck$4(this,R),I=C.call(this,O),_defineProperty$9(_assertThisInitialized$2(I),"handleDrag",function(N){I.leaveTimer&&(clearTimeout(I.leaveTimer),I.leaveTimer=null),I.state.isTravellerMoving?I.handleTravellerMove(N):I.state.isSlideMoving&&I.handleSlideDrag(N)}),_defineProperty$9(_assertThisInitialized$2(I),"handleTouchMove",function(N){N.changedTouches!=null&&N.changedTouches.length>0&&I.handleDrag(N.changedTouches[0])}),_defineProperty$9(_assertThisInitialized$2(I),"handleDragEnd",function(){I.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var N=I.props,L=N.endIndex,B=N.onDragEnd,j=N.startIndex;B==null||B({endIndex:L,startIndex:j})}),I.detachDragEndListener()}),_defineProperty$9(_assertThisInitialized$2(I),"handleLeaveWrapper",function(){(I.state.isTravellerMoving||I.state.isSlideMoving)&&(I.leaveTimer=window.setTimeout(I.handleDragEnd,I.props.leaveTimeOut))}),_defineProperty$9(_assertThisInitialized$2(I),"handleEnterSlideOrTraveller",function(){I.setState({isTextActive:!0})}),_defineProperty$9(_assertThisInitialized$2(I),"handleLeaveSlideOrTraveller",function(){I.setState({isTextActive:!1})}),_defineProperty$9(_assertThisInitialized$2(I),"handleSlideDragStart",function(N){var L=isTouch(N)?N.changedTouches[0]:N;I.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:L.pageX}),I.attachDragEndListener()}),I.travellerDragStartHandlers={startX:I.handleTravellerDragStart.bind(_assertThisInitialized$2(I),"startX"),endX:I.handleTravellerDragStart.bind(_assertThisInitialized$2(I),"endX")},I.state={},I}return _createClass$4(R,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(I){var N=I.startX,L=I.endX,B=this.state.scaleValues,j=this.props,F=j.gap,V=j.data,K=V.length-1,W=Math.min(N,L),X=Math.max(N,L),J=R.getIndexInRange(B,W),oe=R.getIndexInRange(B,X);return{startIndex:J-J%F,endIndex:oe===K?K:oe-oe%F}}},{key:"getTextOfTick",value:function(I){var N=this.props,L=N.data,B=N.tickFormatter,j=N.dataKey,F=getValueByDataKey(L[I],j,I);return isFunction$6(B)?B(F,I):F}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(I){var N=this.state,L=N.slideMoveStartX,B=N.startX,j=N.endX,F=this.props,V=F.x,K=F.width,W=F.travellerWidth,X=F.startIndex,J=F.endIndex,oe=F.onChange,pe=I.pageX-L;pe>0?pe=Math.min(pe,V+K-W-j,V+K-W-B):pe<0&&(pe=Math.max(pe,V-B,V-j));var me=this.getIndex({startX:B+pe,endX:j+pe});(me.startIndex!==X||me.endIndex!==J)&&oe&&oe(me),this.setState({startX:B+pe,endX:j+pe,slideMoveStartX:I.pageX})}},{key:"handleTravellerDragStart",value:function(I,N){var L=isTouch(N)?N.changedTouches[0]:N;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:I,brushMoveStartX:L.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(I){var N,L=this.state,B=L.brushMoveStartX,j=L.movingTravellerId,F=L.endX,V=L.startX,K=this.state[j],W=this.props,X=W.x,J=W.width,oe=W.travellerWidth,pe=W.onChange,me=W.gap,xe=W.data,Ae={startX:this.state.startX,endX:this.state.endX},ge=I.pageX-B;ge>0?ge=Math.min(ge,X+J-oe-K):ge<0&&(ge=Math.max(ge,X-K)),Ae[j]=K+ge;var Te=this.getIndex(Ae),we=Te.startIndex,ke=Te.endIndex,Be=function(){var je=xe.length-1;return j==="startX"&&(F>V?we%me===0:ke%me===0)||FV?ke%me===0:we%me===0)||F>V&&ke===je};this.setState((N={},_defineProperty$9(N,j,K+ge),_defineProperty$9(N,"brushMoveStartX",I.pageX),N),function(){pe&&Be()&&pe(Te)})}},{key:"handleTravellerMoveKeyboard",value:function(I,N){var L=this,B=this.state,j=B.scaleValues,F=B.startX,V=B.endX,K=this.state[N],W=j.indexOf(K);if(W!==-1){var X=W+I;if(!(X===-1||X>=j.length)){var J=j[X];N==="startX"&&J>=V||N==="endX"&&J<=F||this.setState(_defineProperty$9({},N,J),function(){L.props.onChange(L.getIndex({startX:L.state.startX,endX:L.state.endX}))})}}}},{key:"renderBackground",value:function(){var I=this.props,N=I.x,L=I.y,B=I.width,j=I.height,F=I.fill,V=I.stroke;return React.createElement("rect",{stroke:V,fill:F,x:N,y:L,width:B,height:j})}},{key:"renderPanorama",value:function(){var I=this.props,N=I.x,L=I.y,B=I.width,j=I.height,F=I.data,V=I.children,K=I.padding,W=reactExports.Children.only(V);return W?React.cloneElement(W,{x:N,y:L,width:B,height:j,margin:K,compact:!0,data:F}):null}},{key:"renderTravellerLayer",value:function(I,N){var L=this,B=this.props,j=B.y,F=B.travellerWidth,V=B.height,K=B.traveller,W=B.ariaLabel,X=B.data,J=B.startIndex,oe=B.endIndex,pe=Math.max(I,this.props.x),me=_objectSpread$8(_objectSpread$8({},filterProps(this.props)),{},{x:pe,y:j,width:F,height:V}),xe=W||"Min value: ".concat(X[J].name,", Max value: ").concat(X[oe].name);return React.createElement(Layer,{tabIndex:0,role:"slider","aria-label":xe,"aria-valuenow":I,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[N],onTouchStart:this.travellerDragStartHandlers[N],onKeyDown:function(ge){["ArrowLeft","ArrowRight"].includes(ge.key)&&(ge.preventDefault(),ge.stopPropagation(),L.handleTravellerMoveKeyboard(ge.key==="ArrowRight"?1:-1,N))},onFocus:function(){L.setState({isTravellerFocused:!0})},onBlur:function(){L.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},R.renderTraveller(K,me))}},{key:"renderSlide",value:function(I,N){var L=this.props,B=L.y,j=L.height,F=L.stroke,V=L.travellerWidth,K=Math.min(I,N)+V,W=Math.max(Math.abs(N-I)-V,0);return React.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:F,fillOpacity:.2,x:K,y:B,width:W,height:j})}},{key:"renderText",value:function(){var I=this.props,N=I.startIndex,L=I.endIndex,B=I.y,j=I.height,F=I.travellerWidth,V=I.stroke,K=this.state,W=K.startX,X=K.endX,J=5,oe={pointerEvents:"none",fill:V};return React.createElement(Layer,{className:"recharts-brush-texts"},React.createElement(Text$1,_extends$5({textAnchor:"end",verticalAnchor:"middle",x:Math.min(W,X)-J,y:B+j/2},oe),this.getTextOfTick(N)),React.createElement(Text$1,_extends$5({textAnchor:"start",verticalAnchor:"middle",x:Math.max(W,X)+F+J,y:B+j/2},oe),this.getTextOfTick(L)))}},{key:"render",value:function(){var I=this.props,N=I.data,L=I.className,B=I.children,j=I.x,F=I.y,V=I.width,K=I.height,W=I.alwaysShowText,X=this.state,J=X.startX,oe=X.endX,pe=X.isTextActive,me=X.isSlideMoving,xe=X.isTravellerMoving,Ae=X.isTravellerFocused;if(!N||!N.length||!isNumber(j)||!isNumber(F)||!isNumber(V)||!isNumber(K)||V<=0||K<=0)return null;var ge=clsx("recharts-brush",L),Te=React.Children.count(B)===1,we=generatePrefixStyle("userSelect","none");return React.createElement(Layer,{className:ge,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:we},this.renderBackground(),Te&&this.renderPanorama(),this.renderSlide(J,oe),this.renderTravellerLayer(J,"startX"),this.renderTravellerLayer(oe,"endX"),(pe||me||xe||Ae||W)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(I){var N=I.x,L=I.y,B=I.width,j=I.height,F=I.stroke,V=Math.floor(L+j/2)-1;return React.createElement(React.Fragment,null,React.createElement("rect",{x:N,y:L,width:B,height:j,fill:F,stroke:"none"}),React.createElement("line",{x1:N+1,y1:V,x2:N+B-1,y2:V,fill:"none",stroke:"#fff"}),React.createElement("line",{x1:N+1,y1:V+2,x2:N+B-1,y2:V+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(I,N){var L;return React.isValidElement(I)?L=React.cloneElement(I,N):isFunction$6(I)?L=I(N):L=R.renderDefaultTraveller(N),L}},{key:"getDerivedStateFromProps",value:function(I,N){var L=I.data,B=I.width,j=I.x,F=I.travellerWidth,V=I.updateId,K=I.startIndex,W=I.endIndex;if(L!==N.prevData||V!==N.prevUpdateId)return _objectSpread$8({prevData:L,prevTravellerWidth:F,prevUpdateId:V,prevX:j,prevWidth:B},L&&L.length?createScale({data:L,width:B,x:j,travellerWidth:F,startIndex:K,endIndex:W}):{scale:null,scaleValues:null});if(N.scale&&(B!==N.prevWidth||j!==N.prevX||F!==N.prevTravellerWidth)){N.scale.range([j,j+B-F]);var X=N.scale.domain().map(function(J){return N.scale(J)});return{prevData:L,prevTravellerWidth:F,prevUpdateId:V,prevX:j,prevWidth:B,startX:N.scale(I.startIndex),endX:N.scale(I.endIndex),scaleValues:X}}return null}},{key:"getIndexInRange",value:function(I,N){for(var L=I.length,B=0,j=L-1;j-B>1;){var F=Math.floor((B+j)/2);I[F]>N?j=F:B=F}return N>=I[j]?j:B}}]),R}(reactExports.PureComponent);_defineProperty$9(Brush,"displayName","Brush"),_defineProperty$9(Brush,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var baseEach$1=_baseEach;function baseSome$1(S,C){var R;return baseEach$1(S,function(O,I,N){return R=C(O,I,N),!R}),!!R}var _baseSome=baseSome$1,arraySome=_arraySome,baseIteratee$1=_baseIteratee,baseSome=_baseSome,isArray$1=isArray_1,isIterateeCall$1=_isIterateeCall;function some(S,C,R){var O=isArray$1(S)?arraySome:baseSome;return R&&isIterateeCall$1(S,C,R)&&(C=void 0),O(S,baseIteratee$1(C))}var some_1=some;const some$1=getDefaultExportFromCjs(some_1);var ifOverflowMatches=function S(C,R){var O=C.alwaysShow,I=C.ifOverflow;return O&&(I="extendDomain"),I===R};function arrayEvery$1(S,C){for(var R=-1,O=S==null?0:S.length;++R1&&arguments[1]!==void 0?arguments[1]:{},I=O.bandAware,N=O.position;if(R!==void 0){if(N)switch(N){case"start":return this.scale(R);case"middle":{var L=this.bandwidth?this.bandwidth()/2:0;return this.scale(R)+L}case"end":{var B=this.bandwidth?this.bandwidth():0;return this.scale(R)+B}default:return this.scale(R)}if(I){var j=this.bandwidth?this.bandwidth()/2:0;return this.scale(R)+j}return this.scale(R)}}},{key:"isInRange",value:function(R){var O=this.range(),I=O[0],N=O[O.length-1];return I<=N?R>=I&&R<=N:R>=N&&R<=I}}],[{key:"create",value:function(R){return new S(R)}}]),S}();_defineProperty$8(ScaleHelper,"EPS",1e-4);var createLabeledScales=function S(C){var R=Object.keys(C).reduce(function(O,I){return _objectSpread$7(_objectSpread$7({},O),{},_defineProperty$8({},I,ScaleHelper.create(C[I])))},{});return _objectSpread$7(_objectSpread$7({},R),{},{apply:function(I){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},L=N.bandAware,B=N.position;return mapValues$1(I,function(j,F){return R[F].apply(j,{bandAware:L,position:B})})},isInRange:function(I){return every$1(I,function(N,L){return R[L].isInRange(N)})}})};function normalizeAngle(S){return(S%180+180)%180}var getAngledRectangleWidth=function S(C){var R=C.width,O=C.height,I=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,N=normalizeAngle(I),L=N*Math.PI/180,B=Math.atan(O/R),j=L>B&&LS.length)&&(C=S.length);for(var R=0,O=new Array(C);RS*I)return!1;var N=R();return S*(C-S*N/2-O)>=0&&S*(C+S*N/2-I)<=0}function getNumberIntervalTicks(S,C){return getEveryNthWithCondition(S,C+1)}function getEquidistantTicks(S,C,R,O,I){for(var N=(O||[]).slice(),L=C.start,B=C.end,j=0,F=1,V=L,K=function(){var J=O==null?void 0:O[j];if(J===void 0)return{v:getEveryNthWithCondition(O,F)};var oe=j,pe,me=function(){return pe===void 0&&(pe=R(J,oe)),pe},xe=J.coordinate,Ae=j===0||isVisible(S,xe,me,V,B);Ae||(j=0,V=L,F+=1),Ae&&(V=xe+S*(me()/2+I),j+=F)},W;F<=N.length;)if(W=K(),W)return W.v;return[]}function _typeof$4(S){"@babel/helpers - typeof";return _typeof$4=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$4(S)}function ownKeys$3(S,C){var R=Object.keys(S);if(Object.getOwnPropertySymbols){var O=Object.getOwnPropertySymbols(S);C&&(O=O.filter(function(I){return Object.getOwnPropertyDescriptor(S,I).enumerable})),R.push.apply(R,O)}return R}function _objectSpread$3(S){for(var C=1;C0?X.coordinate-pe*S:X.coordinate})}else N[W]=X=_objectSpread$3(_objectSpread$3({},X),{},{tickCoord:X.coordinate});var me=isVisible(S,X.tickCoord,oe,B,j);me&&(j=X.tickCoord-S*(oe()/2+I),N[W]=_objectSpread$3(_objectSpread$3({},X),{},{isShow:!0}))},V=L-1;V>=0;V--)F(V);return N}function getTicksStart(S,C,R,O,I,N){var L=(O||[]).slice(),B=L.length,j=C.start,F=C.end;if(N){var V=O[B-1],K=R(V,B-1),W=S*(V.coordinate+S*K/2-F);L[B-1]=V=_objectSpread$3(_objectSpread$3({},V),{},{tickCoord:W>0?V.coordinate-W*S:V.coordinate});var X=isVisible(S,V.tickCoord,function(){return K},j,F);X&&(F=V.tickCoord-S*(K/2+I),L[B-1]=_objectSpread$3(_objectSpread$3({},V),{},{isShow:!0}))}for(var J=N?B-1:B,oe=function(xe){var Ae=L[xe],ge,Te=function(){return ge===void 0&&(ge=R(Ae,xe)),ge};if(xe===0){var we=S*(Ae.coordinate-S*Te()/2-j);L[xe]=Ae=_objectSpread$3(_objectSpread$3({},Ae),{},{tickCoord:we<0?Ae.coordinate-we*S:Ae.coordinate})}else L[xe]=Ae=_objectSpread$3(_objectSpread$3({},Ae),{},{tickCoord:Ae.coordinate});var ke=isVisible(S,Ae.tickCoord,Te,j,F);ke&&(j=Ae.tickCoord+S*(Te()/2+I),L[xe]=_objectSpread$3(_objectSpread$3({},Ae),{},{isShow:!0}))},pe=0;pe=2?mathSign(I[1].coordinate-I[0].coordinate):1,me=getTickBoundaries(N,pe,X);return j==="equidistantPreserveStart"?getEquidistantTicks(pe,me,oe,I,L):(j==="preserveStart"||j==="preserveStartEnd"?W=getTicksStart(pe,me,oe,I,L,j==="preserveStartEnd"):W=getTicksEnd(pe,me,oe,I,L),W.filter(function(xe){return xe.isShow}))}var _excluded$1=["viewBox"],_excluded2$1=["viewBox"],_excluded3=["ticks"];function _typeof$3(S){"@babel/helpers - typeof";return _typeof$3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(C){return typeof C}:function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},_typeof$3(S)}function _extends$1(){return _extends$1=Object.assign?Object.assign.bind():function(S){for(var C=1;C=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose$1(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}function _classCallCheck$2(S,C){if(!(S instanceof C))throw new TypeError("Cannot call a class as a function")}function _defineProperties$2(S,C){for(var R=0;R"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$1(S){return _getPrototypeOf$1=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(R){return R.__proto__||Object.getPrototypeOf(R)},_getPrototypeOf$1(S)}function _defineProperty$3(S,C,R){return C=_toPropertyKey$3(C),C in S?Object.defineProperty(S,C,{value:R,enumerable:!0,configurable:!0,writable:!0}):S[C]=R,S}function _toPropertyKey$3(S){var C=_toPrimitive$3(S,"string");return _typeof$3(C)==="symbol"?C:String(C)}function _toPrimitive$3(S,C){if(_typeof$3(S)!=="object"||S===null)return S;var R=S[Symbol.toPrimitive];if(R!==void 0){var O=R.call(S,C||"default");if(_typeof$3(O)!=="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(C==="string"?String:Number)(S)}var CartesianAxis=function(S){_inherits$1(R,S);var C=_createSuper$1(R);function R(O){var I;return _classCallCheck$2(this,R),I=C.call(this,O),I.state={fontSize:"",letterSpacing:""},I}return _createClass$2(R,[{key:"shouldComponentUpdate",value:function(I,N){var L=I.viewBox,B=_objectWithoutProperties$1(I,_excluded$1),j=this.props,F=j.viewBox,V=_objectWithoutProperties$1(j,_excluded2$1);return!shallowEqual(L,F)||!shallowEqual(B,V)||!shallowEqual(N,this.state)}},{key:"componentDidMount",value:function(){var I=this.layerReference;if(I){var N=I.getElementsByClassName("recharts-cartesian-axis-tick-value")[0];N&&this.setState({fontSize:window.getComputedStyle(N).fontSize,letterSpacing:window.getComputedStyle(N).letterSpacing})}}},{key:"getTickLineCoord",value:function(I){var N=this.props,L=N.x,B=N.y,j=N.width,F=N.height,V=N.orientation,K=N.tickSize,W=N.mirror,X=N.tickMargin,J,oe,pe,me,xe,Ae,ge=W?-1:1,Te=I.tickSize||K,we=isNumber(I.tickCoord)?I.tickCoord:I.coordinate;switch(V){case"top":J=oe=I.coordinate,me=B+ +!W*F,pe=me-ge*Te,Ae=pe-ge*X,xe=we;break;case"left":pe=me=I.coordinate,oe=L+ +!W*j,J=oe-ge*Te,xe=J-ge*X,Ae=we;break;case"right":pe=me=I.coordinate,oe=L+ +W*j,J=oe+ge*Te,xe=J+ge*X,Ae=we;break;default:J=oe=I.coordinate,me=B+ +W*F,pe=me+ge*Te,Ae=pe+ge*X,xe=we;break}return{line:{x1:J,y1:pe,x2:oe,y2:me},tick:{x:xe,y:Ae}}}},{key:"getTickTextAnchor",value:function(){var I=this.props,N=I.orientation,L=I.mirror,B;switch(N){case"left":B=L?"start":"end";break;case"right":B=L?"end":"start";break;default:B="middle";break}return B}},{key:"getTickVerticalAnchor",value:function(){var I=this.props,N=I.orientation,L=I.mirror,B="end";switch(N){case"left":case"right":B="middle";break;case"top":B=L?"start":"end";break;default:B=L?"end":"start";break}return B}},{key:"renderAxisLine",value:function(){var I=this.props,N=I.x,L=I.y,B=I.width,j=I.height,F=I.orientation,V=I.mirror,K=I.axisLine,W=_objectSpread$2(_objectSpread$2(_objectSpread$2({},filterProps(this.props)),filterProps(K)),{},{fill:"none"});if(F==="top"||F==="bottom"){var X=+(F==="top"&&!V||F==="bottom"&&V);W=_objectSpread$2(_objectSpread$2({},W),{},{x1:N,y1:L+X*j,x2:N+B,y2:L+X*j})}else{var J=+(F==="left"&&!V||F==="right"&&V);W=_objectSpread$2(_objectSpread$2({},W),{},{x1:N+J*B,y1:L,x2:N+J*B,y2:L+j})}return React.createElement("line",_extends$1({},W,{className:clsx("recharts-cartesian-axis-line",get$5(K,"className"))}))}},{key:"renderTicks",value:function(I,N,L){var B=this,j=this.props,F=j.tickLine,V=j.stroke,K=j.tick,W=j.tickFormatter,X=j.unit,J=getTicks(_objectSpread$2(_objectSpread$2({},this.props),{},{ticks:I}),N,L),oe=this.getTickTextAnchor(),pe=this.getTickVerticalAnchor(),me=filterProps(this.props),xe=filterProps(K),Ae=_objectSpread$2(_objectSpread$2({},me),{},{fill:"none"},filterProps(F)),ge=J.map(function(Te,we){var ke=B.getTickLineCoord(Te),Be=ke.line,Ie=ke.tick,je=_objectSpread$2(_objectSpread$2(_objectSpread$2(_objectSpread$2({textAnchor:oe,verticalAnchor:pe},me),{},{stroke:"none",fill:V},xe),Ie),{},{index:we,payload:Te,visibleTicksCount:J.length,tickFormatter:W});return React.createElement(Layer,_extends$1({className:"recharts-cartesian-axis-tick",key:"tick-".concat(Te.value,"-").concat(Te.coordinate,"-").concat(Te.tickCoord)},adaptEventsOfChild(B.props,Te,we)),F&&React.createElement("line",_extends$1({},Ae,Be,{className:clsx("recharts-cartesian-axis-tick-line",get$5(F,"className"))})),K&&R.renderTickItem(K,je,"".concat(isFunction$6(W)?W(Te.value,we):Te.value).concat(X||"")))});return React.createElement("g",{className:"recharts-cartesian-axis-ticks"},ge)}},{key:"render",value:function(){var I=this,N=this.props,L=N.axisLine,B=N.width,j=N.height,F=N.ticksGenerator,V=N.className,K=N.hide;if(K)return null;var W=this.props,X=W.ticks,J=_objectWithoutProperties$1(W,_excluded3),oe=X;return isFunction$6(F)&&(oe=X&&X.length>0?F(this.props):F(J)),B<=0||j<=0||!oe||!oe.length?null:React.createElement(Layer,{className:clsx("recharts-cartesian-axis",V),ref:function(me){I.layerReference=me}},L&&this.renderAxisLine(),this.renderTicks(oe,this.state.fontSize,this.state.letterSpacing),Label.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(I,N,L){var B;return React.isValidElement(I)?B=React.cloneElement(I,N):isFunction$6(I)?B=I(N):B=React.createElement(Text$1,_extends$1({},N,{className:"recharts-cartesian-axis-tick-value"}),L),B}}]),R}(reactExports.Component);_defineProperty$3(CartesianAxis,"displayName","CartesianAxis"),_defineProperty$3(CartesianAxis,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var define_process_env_default$d={},isProduction=define_process_env_default$d.NODE_ENV==="production",prefix="Invariant failed";function invariant(S,C){if(!S){if(isProduction)throw new Error(prefix);var R=typeof C=="function"?C():C,O=R?"".concat(prefix,": ").concat(R):prefix;throw new Error(O)}}function _toConsumableArray$1(S){return _arrayWithoutHoles$1(S)||_iterableToArray$1(S)||_unsupportedIterableToArray$1(S)||_nonIterableSpread$1()}function _nonIterableSpread$1(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$1(S,C){if(S){if(typeof S=="string")return _arrayLikeToArray$1(S,C);var R=Object.prototype.toString.call(S).slice(8,-1);if(R==="Object"&&S.constructor&&(R=S.constructor.name),R==="Map"||R==="Set")return Array.from(S);if(R==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(R))return _arrayLikeToArray$1(S,C)}}function _iterableToArray$1(S){if(typeof Symbol<"u"&&S[Symbol.iterator]!=null||S["@@iterator"]!=null)return Array.from(S)}function _arrayWithoutHoles$1(S){if(Array.isArray(S))return _arrayLikeToArray$1(S)}function _arrayLikeToArray$1(S,C){(C==null||C>S.length)&&(C=S.length);for(var R=0,O=new Array(C);R=0)&&Object.prototype.propertyIsEnumerable.call(S,O)&&(R[O]=S[O])}return R}function _objectWithoutPropertiesLoose(S,C){if(S==null)return{};var R={},O=Object.keys(S),I,N;for(N=0;N=0)&&(R[I]=S[I]);return R}function _classCallCheck(S,C){if(!(S instanceof C))throw new TypeError("Cannot call a class as a function")}function _defineProperties(S,C){for(var R=0;R"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf(S){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(R){return R.__proto__||Object.getPrototypeOf(R)},_getPrototypeOf(S)}function _toConsumableArray(S){return _arrayWithoutHoles(S)||_iterableToArray(S)||_unsupportedIterableToArray(S)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray(S,C){if(S){if(typeof S=="string")return _arrayLikeToArray(S,C);var R=Object.prototype.toString.call(S).slice(8,-1);if(R==="Object"&&S.constructor&&(R=S.constructor.name),R==="Map"||R==="Set")return Array.from(S);if(R==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(R))return _arrayLikeToArray(S,C)}}function _iterableToArray(S){if(typeof Symbol<"u"&&S[Symbol.iterator]!=null||S["@@iterator"]!=null)return Array.from(S)}function _arrayWithoutHoles(S){if(Array.isArray(S))return _arrayLikeToArray(S)}function _arrayLikeToArray(S,C){(C==null||C>S.length)&&(C=S.length);for(var R=0,O=new Array(C);R0?L:C&&C.length&&isNumber(I)&&isNumber(N)?C.slice(I,N+1):[]};function getDefaultDomainByAxisType(S){return S==="number"?[0,"auto"]:void 0}var getTooltipContent=function S(C,R,O,I){var N=C.graphicalItems,L=C.tooltipAxis,B=getDisplayedData(R,C);return O<0||!N||!N.length||O>=B.length?null:N.reduce(function(j,F){var V,K=F.props.hide;if(K)return j;var W=(V=F.props.data)!==null&&V!==void 0?V:R;W&&C.dataStartIndex+C.dataEndIndex!==0&&(W=W.slice(C.dataStartIndex,C.dataEndIndex+1));var X;if(L.dataKey&&!L.allowDuplicatedCategory){var J=W===void 0?B:W;X=findEntryInArray(J,L.dataKey,I)}else X=W&&W[O]||B[O];return X?[].concat(_toConsumableArray(j),[getTooltipItem(F,X)]):j},[])},getTooltipData=function S(C,R,O,I){var N=I||{x:C.chartX,y:C.chartY},L=calculateTooltipPos(N,O),B=C.orderedTooltipTicks,j=C.tooltipAxis,F=C.tooltipTicks,V=calculateActiveTickIndex(L,B,F,j);if(V>=0&&F){var K=F[V]&&F[V].value,W=getTooltipContent(C,R,V,K),X=getActiveCoordinate(O,B,V,N);return{activeTooltipIndex:V,activeLabel:K,activePayload:W,activeCoordinate:X}}return null},getAxisMapByAxes=function S(C,R){var O=R.axes,I=R.graphicalItems,N=R.axisType,L=R.axisIdKey,B=R.stackGroups,j=R.dataStartIndex,F=R.dataEndIndex,V=C.layout,K=C.children,W=C.stackOffset,X=isCategoricalAxis(V,N);return O.reduce(function(J,oe){var pe,me=oe.props,xe=me.type,Ae=me.dataKey,ge=me.allowDataOverflow,Te=me.allowDuplicatedCategory,we=me.scale,ke=me.ticks,Be=me.includeHidden,Ie=oe.props[L];if(J[Ie])return J;var je=getDisplayedData(C.data,{graphicalItems:I.filter(function(ht){return ht.props[L]===Ie}),dataStartIndex:j,dataEndIndex:F}),Ke=je.length,Je,Xe,ot;isDomainSpecifiedByUser(oe.props.domain,ge,xe)&&(Je=parseSpecifiedDomain(oe.props.domain,null,ge),X&&(xe==="number"||we!=="auto")&&(ot=getDomainOfDataByKey(je,Ae,"category")));var tt=getDefaultDomainByAxisType(xe);if(!Je||Je.length===0){var Ue,et=(Ue=oe.props.domain)!==null&&Ue!==void 0?Ue:tt;if(Ae){if(Je=getDomainOfDataByKey(je,Ae,xe),xe==="category"&&X){var dt=hasDuplicate(Je);Te&&dt?(Xe=Je,Je=range$4(0,Ke)):Te||(Je=parseDomainOfCategoryAxis(et,Je,oe).reduce(function(ht,Ct){return ht.indexOf(Ct)>=0?ht:[].concat(_toConsumableArray(ht),[Ct])},[]))}else if(xe==="category")Te?Je=Je.filter(function(ht){return ht!==""&&!isNil$1(ht)}):Je=parseDomainOfCategoryAxis(et,Je,oe).reduce(function(ht,Ct){return ht.indexOf(Ct)>=0||Ct===""||isNil$1(Ct)?ht:[].concat(_toConsumableArray(ht),[Ct])},[]);else if(xe==="number"){var gt=parseErrorBarsOfAxis(je,I.filter(function(ht){return ht.props[L]===Ie&&(Be||!ht.props.hide)}),Ae,N,V);gt&&(Je=gt)}X&&(xe==="number"||we!=="auto")&&(ot=getDomainOfDataByKey(je,Ae,"category"))}else X?Je=range$4(0,Ke):B&&B[Ie]&&B[Ie].hasStack&&xe==="number"?Je=W==="expand"?[0,1]:getDomainOfStackGroups(B[Ie].stackGroups,j,F):Je=getDomainOfItemsWithSameAxis(je,I.filter(function(ht){return ht.props[L]===Ie&&(Be||!ht.props.hide)}),xe,V,!0);if(xe==="number")Je=detectReferenceElementsDomain(K,Je,Ie,N,ke),et&&(Je=parseSpecifiedDomain(et,Je,ge));else if(xe==="category"&&et){var Qe=et,lt=Je.every(function(ht){return Qe.indexOf(ht)>=0});lt&&(Je=Qe)}}return _objectSpread(_objectSpread({},J),{},_defineProperty({},Ie,_objectSpread(_objectSpread({},oe.props),{},{axisType:N,domain:Je,categoricalDomain:ot,duplicateDomain:Xe,originalDomain:(pe=oe.props.domain)!==null&&pe!==void 0?pe:tt,isCategorical:X,layout:V})))},{})},getAxisMapByItems=function S(C,R){var O=R.graphicalItems,I=R.Axis,N=R.axisType,L=R.axisIdKey,B=R.stackGroups,j=R.dataStartIndex,F=R.dataEndIndex,V=C.layout,K=C.children,W=getDisplayedData(C.data,{graphicalItems:O,dataStartIndex:j,dataEndIndex:F}),X=W.length,J=isCategoricalAxis(V,N),oe=-1;return O.reduce(function(pe,me){var xe=me.props[L],Ae=getDefaultDomainByAxisType("number");if(!pe[xe]){oe++;var ge;return J?ge=range$4(0,X):B&&B[xe]&&B[xe].hasStack?(ge=getDomainOfStackGroups(B[xe].stackGroups,j,F),ge=detectReferenceElementsDomain(K,ge,xe,N)):(ge=parseSpecifiedDomain(Ae,getDomainOfItemsWithSameAxis(W,O.filter(function(Te){return Te.props[L]===xe&&!Te.props.hide}),"number",V),I.defaultProps.allowDataOverflow),ge=detectReferenceElementsDomain(K,ge,xe,N)),_objectSpread(_objectSpread({},pe),{},_defineProperty({},xe,_objectSpread(_objectSpread({axisType:N},I.defaultProps),{},{hide:!0,orientation:get$5(ORIENT_MAP,"".concat(N,".").concat(oe%2),null),domain:ge,originalDomain:Ae,isCategorical:J,layout:V})))}return pe},{})},getAxisMap=function S(C,R){var O=R.axisType,I=O===void 0?"xAxis":O,N=R.AxisComp,L=R.graphicalItems,B=R.stackGroups,j=R.dataStartIndex,F=R.dataEndIndex,V=C.children,K="".concat(I,"Id"),W=findAllByType(V,N),X={};return W&&W.length?X=getAxisMapByAxes(C,{axes:W,graphicalItems:L,axisType:I,axisIdKey:K,stackGroups:B,dataStartIndex:j,dataEndIndex:F}):L&&L.length&&(X=getAxisMapByItems(C,{Axis:N,graphicalItems:L,axisType:I,axisIdKey:K,stackGroups:B,dataStartIndex:j,dataEndIndex:F})),X},tooltipTicksGenerator=function S(C){var R=getAnyElementOfObject(C),O=getTicksOfAxis(R,!1,!0);return{tooltipTicks:O,orderedTooltipTicks:sortBy$1(O,function(I){return I.coordinate}),tooltipAxis:R,tooltipAxisBandSize:getBandSizeOfAxis(R,O)}},createDefaultState=function S(C){var R=C.children,O=C.defaultShowTooltip,I=findChildByType(R,Brush),N=0,L=0;return C.data&&C.data.length!==0&&(L=C.data.length-1),I&&I.props&&(I.props.startIndex>=0&&(N=I.props.startIndex),I.props.endIndex>=0&&(L=I.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:N,dataEndIndex:L,activeTooltipIndex:-1,isTooltipActive:!!O}},hasGraphicalBarItem=function S(C){return!C||!C.length?!1:C.some(function(R){var O=getDisplayName(R&&R.type);return O&&O.indexOf("Bar")>=0})},getAxisNameByLayout=function S(C){return C==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:C==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:C==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},calculateOffset=function S(C,R){var O=C.props,I=C.graphicalItems,N=C.xAxisMap,L=N===void 0?{}:N,B=C.yAxisMap,j=B===void 0?{}:B,F=O.width,V=O.height,K=O.children,W=O.margin||{},X=findChildByType(K,Brush),J=findChildByType(K,Legend),oe=Object.keys(j).reduce(function(Te,we){var ke=j[we],Be=ke.orientation;return!ke.mirror&&!ke.hide?_objectSpread(_objectSpread({},Te),{},_defineProperty({},Be,Te[Be]+ke.width)):Te},{left:W.left||0,right:W.right||0}),pe=Object.keys(L).reduce(function(Te,we){var ke=L[we],Be=ke.orientation;return!ke.mirror&&!ke.hide?_objectSpread(_objectSpread({},Te),{},_defineProperty({},Be,get$5(Te,"".concat(Be))+ke.height)):Te},{top:W.top||0,bottom:W.bottom||0}),me=_objectSpread(_objectSpread({},pe),oe),xe=me.bottom;X&&(me.bottom+=X.props.height||Brush.defaultProps.height),J&&R&&(me=appendOffsetOfLegend(me,I,O,R));var Ae=F-me.left-me.right,ge=V-me.top-me.bottom;return _objectSpread(_objectSpread({brushBottom:xe},me),{},{width:Math.max(Ae,0),height:Math.max(ge,0)})},generateCategoricalChart=function S(C){var R,O=C.chartName,I=C.GraphicalChild,N=C.defaultTooltipEventType,L=N===void 0?"axis":N,B=C.validateTooltipEventTypes,j=B===void 0?["axis"]:B,F=C.axisComponents,V=C.legendContent,K=C.formatAxisMap,W=C.defaultProps,X=function(pe,me){var xe=me.graphicalItems,Ae=me.stackGroups,ge=me.offset,Te=me.updateId,we=me.dataStartIndex,ke=me.dataEndIndex,Be=pe.barSize,Ie=pe.layout,je=pe.barGap,Ke=pe.barCategoryGap,Je=pe.maxBarSize,Xe=getAxisNameByLayout(Ie),ot=Xe.numericAxisName,tt=Xe.cateAxisName,Ue=hasGraphicalBarItem(xe),et=Ue&&getBarSizeList({barSize:Be,stackGroups:Ae}),dt=[];return xe.forEach(function(gt,Qe){var lt=getDisplayedData(pe.data,{graphicalItems:[gt],dataStartIndex:we,dataEndIndex:ke}),ht=gt.props,Ct=ht.dataKey,$t=ht.maxBarSize,Lt=gt.props["".concat(ot,"Id")],Gt=gt.props["".concat(tt,"Id")],Pt={},Vt=F.reduce(function(Tn,pn){var Mn,bo,mr,sr=me["".concat(pn.axisType,"Map")],Ut=gt.props["".concat(pn.axisType,"Id")];sr&&sr[Ut]||pn.axisType==="zAxis"||(define_process_env_default$c.NODE_ENV!=="production"?invariant(!1,"Specifying a(n) ".concat(pn.axisType,"Id requires a corresponding ").concat(pn.axisType,"Id on the targeted graphical component ").concat((Mn=gt==null||(bo=gt.type)===null||bo===void 0?void 0:bo.displayName)!==null&&Mn!==void 0?Mn:"")):invariant(!1));var nr=sr[Ut];return _objectSpread(_objectSpread({},Tn),{},(mr={},_defineProperty(mr,pn.axisType,nr),_defineProperty(mr,"".concat(pn.axisType,"Ticks"),getTicksOfAxis(nr)),mr))},Pt),bt=Vt[tt],It=Vt["".concat(tt,"Ticks")],Ht=Ae&&Ae[Lt]&&Ae[Lt].hasStack&&getStackedDataOfItem(gt,Ae[Lt].stackGroups),kt=getDisplayName(gt.type).indexOf("Bar")>=0,Kt=getBandSizeOfAxis(bt,It),tr=[];if(kt){var wr,xr,Vr=isNil$1($t)?Je:$t,bn=(wr=(xr=getBandSizeOfAxis(bt,It,!0))!==null&&xr!==void 0?xr:Vr)!==null&&wr!==void 0?wr:0;tr=getBarPosition({barGap:je,barCategoryGap:Ke,bandSize:bn!==Kt?bn:Kt,sizeList:et[Gt],maxBarSize:Vr}),bn!==Kt&&(tr=tr.map(function(Tn){return _objectSpread(_objectSpread({},Tn),{},{position:_objectSpread(_objectSpread({},Tn.position),{},{offset:Tn.position.offset-bn/2})})}))}var Bn=gt&>.type&>.type.getComposedData;if(Bn){var An;dt.push({props:_objectSpread(_objectSpread({},Bn(_objectSpread(_objectSpread({},Vt),{},{displayedData:lt,props:pe,dataKey:Ct,item:gt,bandSize:Kt,barPosition:tr,offset:ge,stackedData:Ht,layout:Ie,dataStartIndex:we,dataEndIndex:ke}))),{},(An={key:gt.key||"item-".concat(Qe)},_defineProperty(An,ot,Vt[ot]),_defineProperty(An,tt,Vt[tt]),_defineProperty(An,"animationId",Te),An)),childIndex:parseChildIndex(gt,pe.children),item:gt})}}),dt},J=function(pe,me){var xe=pe.props,Ae=pe.dataStartIndex,ge=pe.dataEndIndex,Te=pe.updateId;if(!validateWidthHeight({props:xe}))return null;var we=xe.children,ke=xe.layout,Be=xe.stackOffset,Ie=xe.data,je=xe.reverseStackOrder,Ke=getAxisNameByLayout(ke),Je=Ke.numericAxisName,Xe=Ke.cateAxisName,ot=findAllByType(we,I),tt=getStackGroupsByAxisId(Ie,ot,"".concat(Je,"Id"),"".concat(Xe,"Id"),Be,je),Ue=F.reduce(function(lt,ht){var Ct="".concat(ht.axisType,"Map");return _objectSpread(_objectSpread({},lt),{},_defineProperty({},Ct,getAxisMap(xe,_objectSpread(_objectSpread({},ht),{},{graphicalItems:ot,stackGroups:ht.axisType===Je&&tt,dataStartIndex:Ae,dataEndIndex:ge}))))},{}),et=calculateOffset(_objectSpread(_objectSpread({},Ue),{},{props:xe,graphicalItems:ot}),me==null?void 0:me.legendBBox);Object.keys(Ue).forEach(function(lt){Ue[lt]=K(xe,Ue[lt],et,lt.replace("Map",""),O)});var dt=Ue["".concat(Xe,"Map")],gt=tooltipTicksGenerator(dt),Qe=X(xe,_objectSpread(_objectSpread({},Ue),{},{dataStartIndex:Ae,dataEndIndex:ge,updateId:Te,graphicalItems:ot,stackGroups:tt,offset:et}));return _objectSpread(_objectSpread({formattedGraphicalItems:Qe,graphicalItems:ot,offset:et,stackGroups:tt},gt),Ue)};return R=function(oe){_inherits(me,oe);var pe=_createSuper(me);function me(xe){var Ae,ge,Te;return _classCallCheck(this,me),Te=pe.call(this,xe),_defineProperty(_assertThisInitialized(Te),"eventEmitterSymbol",Symbol("rechartsEventEmitter")),_defineProperty(_assertThisInitialized(Te),"accessibilityManager",new AccessibilityManager),_defineProperty(_assertThisInitialized(Te),"handleLegendBBoxUpdate",function(we){if(we){var ke=Te.state,Be=ke.dataStartIndex,Ie=ke.dataEndIndex,je=ke.updateId;Te.setState(_objectSpread({legendBBox:we},J({props:Te.props,dataStartIndex:Be,dataEndIndex:Ie,updateId:je},_objectSpread(_objectSpread({},Te.state),{},{legendBBox:we}))))}}),_defineProperty(_assertThisInitialized(Te),"handleReceiveSyncEvent",function(we,ke,Be){if(Te.props.syncId===we){if(Be===Te.eventEmitterSymbol&&typeof Te.props.syncMethod!="function")return;Te.applySyncEvent(ke)}}),_defineProperty(_assertThisInitialized(Te),"handleBrushChange",function(we){var ke=we.startIndex,Be=we.endIndex;if(ke!==Te.state.dataStartIndex||Be!==Te.state.dataEndIndex){var Ie=Te.state.updateId;Te.setState(function(){return _objectSpread({dataStartIndex:ke,dataEndIndex:Be},J({props:Te.props,dataStartIndex:ke,dataEndIndex:Be,updateId:Ie},Te.state))}),Te.triggerSyncEvent({dataStartIndex:ke,dataEndIndex:Be})}}),_defineProperty(_assertThisInitialized(Te),"handleMouseEnter",function(we){var ke=Te.getMouseInfo(we);if(ke){var Be=_objectSpread(_objectSpread({},ke),{},{isTooltipActive:!0});Te.setState(Be),Te.triggerSyncEvent(Be);var Ie=Te.props.onMouseEnter;isFunction$6(Ie)&&Ie(Be,we)}}),_defineProperty(_assertThisInitialized(Te),"triggeredAfterMouseMove",function(we){var ke=Te.getMouseInfo(we),Be=ke?_objectSpread(_objectSpread({},ke),{},{isTooltipActive:!0}):{isTooltipActive:!1};Te.setState(Be),Te.triggerSyncEvent(Be);var Ie=Te.props.onMouseMove;isFunction$6(Ie)&&Ie(Be,we)}),_defineProperty(_assertThisInitialized(Te),"handleItemMouseEnter",function(we){Te.setState(function(){return{isTooltipActive:!0,activeItem:we,activePayload:we.tooltipPayload,activeCoordinate:we.tooltipPosition||{x:we.cx,y:we.cy}}})}),_defineProperty(_assertThisInitialized(Te),"handleItemMouseLeave",function(){Te.setState(function(){return{isTooltipActive:!1}})}),_defineProperty(_assertThisInitialized(Te),"handleMouseMove",function(we){we.persist(),Te.throttleTriggeredAfterMouseMove(we)}),_defineProperty(_assertThisInitialized(Te),"handleMouseLeave",function(we){var ke={isTooltipActive:!1};Te.setState(ke),Te.triggerSyncEvent(ke);var Be=Te.props.onMouseLeave;isFunction$6(Be)&&Be(ke,we)}),_defineProperty(_assertThisInitialized(Te),"handleOuterEvent",function(we){var ke=getReactEventByType(we),Be=get$5(Te.props,"".concat(ke));if(ke&&isFunction$6(Be)){var Ie,je;/.*touch.*/i.test(ke)?je=Te.getMouseInfo(we.changedTouches[0]):je=Te.getMouseInfo(we),Be((Ie=je)!==null&&Ie!==void 0?Ie:{},we)}}),_defineProperty(_assertThisInitialized(Te),"handleClick",function(we){var ke=Te.getMouseInfo(we);if(ke){var Be=_objectSpread(_objectSpread({},ke),{},{isTooltipActive:!0});Te.setState(Be),Te.triggerSyncEvent(Be);var Ie=Te.props.onClick;isFunction$6(Ie)&&Ie(Be,we)}}),_defineProperty(_assertThisInitialized(Te),"handleMouseDown",function(we){var ke=Te.props.onMouseDown;if(isFunction$6(ke)){var Be=Te.getMouseInfo(we);ke(Be,we)}}),_defineProperty(_assertThisInitialized(Te),"handleMouseUp",function(we){var ke=Te.props.onMouseUp;if(isFunction$6(ke)){var Be=Te.getMouseInfo(we);ke(Be,we)}}),_defineProperty(_assertThisInitialized(Te),"handleTouchMove",function(we){we.changedTouches!=null&&we.changedTouches.length>0&&Te.throttleTriggeredAfterMouseMove(we.changedTouches[0])}),_defineProperty(_assertThisInitialized(Te),"handleTouchStart",function(we){we.changedTouches!=null&&we.changedTouches.length>0&&Te.handleMouseDown(we.changedTouches[0])}),_defineProperty(_assertThisInitialized(Te),"handleTouchEnd",function(we){we.changedTouches!=null&&we.changedTouches.length>0&&Te.handleMouseUp(we.changedTouches[0])}),_defineProperty(_assertThisInitialized(Te),"triggerSyncEvent",function(we){Te.props.syncId!==void 0&&eventCenter.emit(SYNC_EVENT,Te.props.syncId,we,Te.eventEmitterSymbol)}),_defineProperty(_assertThisInitialized(Te),"applySyncEvent",function(we){var ke=Te.props,Be=ke.layout,Ie=ke.syncMethod,je=Te.state.updateId,Ke=we.dataStartIndex,Je=we.dataEndIndex;if(we.dataStartIndex!==void 0||we.dataEndIndex!==void 0)Te.setState(_objectSpread({dataStartIndex:Ke,dataEndIndex:Je},J({props:Te.props,dataStartIndex:Ke,dataEndIndex:Je,updateId:je},Te.state)));else if(we.activeTooltipIndex!==void 0){var Xe=we.chartX,ot=we.chartY,tt=we.activeTooltipIndex,Ue=Te.state,et=Ue.offset,dt=Ue.tooltipTicks;if(!et)return;if(typeof Ie=="function")tt=Ie(dt,we);else if(Ie==="value"){tt=-1;for(var gt=0;gt=0){var Ht,kt;if(Xe.dataKey&&!Xe.allowDuplicatedCategory){var Kt=typeof Xe.dataKey=="function"?It:"payload.".concat(Xe.dataKey.toString());Ht=findEntryInArray(gt,Kt,tt),kt=Qe&<&&findEntryInArray(lt,Kt,tt)}else Ht=gt==null?void 0:gt[ot],kt=Qe&<&<[ot];if(Gt||Lt){var tr=we.props.activeIndex!==void 0?we.props.activeIndex:ot;return[reactExports.cloneElement(we,_objectSpread(_objectSpread(_objectSpread({},Ie.props),Vt),{},{activeIndex:tr})),null,null]}if(!isNil$1(Ht))return[bt].concat(_toConsumableArray(Te.renderActivePoints({item:Ie,activePoint:Ht,basePoint:kt,childIndex:ot,isRange:Qe})))}else{var wr,xr=(wr=Te.getItemByXY(Te.state.activeCoordinate))!==null&&wr!==void 0?wr:{graphicalItem:bt},Vr=xr.graphicalItem,bn=Vr.item,Bn=bn===void 0?we:bn,An=Vr.childIndex,Tn=_objectSpread(_objectSpread(_objectSpread({},Ie.props),Vt),{},{activeIndex:An});return[reactExports.cloneElement(Bn,Tn),null,null]}return Qe?[bt,null,null]:[bt,null]}),_defineProperty(_assertThisInitialized(Te),"renderCustomized",function(we,ke,Be){return reactExports.cloneElement(we,_objectSpread(_objectSpread({key:"recharts-customized-".concat(Be)},Te.props),Te.state))}),_defineProperty(_assertThisInitialized(Te),"renderMap",{CartesianGrid:{handler:Te.renderGrid,once:!0},ReferenceArea:{handler:Te.renderReferenceElement},ReferenceLine:{handler:Te.renderReferenceElement},ReferenceDot:{handler:Te.renderReferenceElement},XAxis:{handler:Te.renderXAxis},YAxis:{handler:Te.renderYAxis},Brush:{handler:Te.renderBrush,once:!0},Bar:{handler:Te.renderGraphicChild},Line:{handler:Te.renderGraphicChild},Area:{handler:Te.renderGraphicChild},Radar:{handler:Te.renderGraphicChild},RadialBar:{handler:Te.renderGraphicChild},Scatter:{handler:Te.renderGraphicChild},Pie:{handler:Te.renderGraphicChild},Funnel:{handler:Te.renderGraphicChild},Tooltip:{handler:Te.renderCursor,once:!0},PolarGrid:{handler:Te.renderPolarGrid,once:!0},PolarAngleAxis:{handler:Te.renderPolarAxis},PolarRadiusAxis:{handler:Te.renderPolarAxis},Customized:{handler:Te.renderCustomized}}),Te.clipPathId="".concat((Ae=xe.id)!==null&&Ae!==void 0?Ae:uniqueId("recharts"),"-clip"),Te.throttleTriggeredAfterMouseMove=throttle$1(Te.triggeredAfterMouseMove,(ge=xe.throttleDelay)!==null&&ge!==void 0?ge:1e3/60),Te.state={},Te}return _createClass(me,[{key:"componentDidMount",value:function(){var Ae,ge;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(Ae=this.props.margin.left)!==null&&Ae!==void 0?Ae:0,top:(ge=this.props.margin.top)!==null&&ge!==void 0?ge:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout})}},{key:"getSnapshotBeforeUpdate",value:function(Ae,ge){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==ge.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==Ae.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==Ae.margin){var Te,we;this.accessibilityManager.setDetails({offset:{left:(Te=this.props.margin.left)!==null&&Te!==void 0?Te:0,top:(we=this.props.margin.top)!==null&&we!==void 0?we:0}})}return null}},{key:"componentDidUpdate",value:function(){}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var Ae=findChildByType(this.props.children,Tooltip);if(Ae&&typeof Ae.props.shared=="boolean"){var ge=Ae.props.shared?"axis":"item";return j.indexOf(ge)>=0?ge:L}return L}},{key:"getMouseInfo",value:function(Ae){if(!this.container)return null;var ge=this.container,Te=ge.getBoundingClientRect(),we=getOffset(Te),ke={chartX:Math.round(Ae.pageX-we.left),chartY:Math.round(Ae.pageY-we.top)},Be=Te.width/ge.offsetWidth||1,Ie=this.inRange(ke.chartX,ke.chartY,Be);if(!Ie)return null;var je=this.state,Ke=je.xAxisMap,Je=je.yAxisMap,Xe=this.getTooltipEventType();if(Xe!=="axis"&&Ke&&Je){var ot=getAnyElementOfObject(Ke).scale,tt=getAnyElementOfObject(Je).scale,Ue=ot&&ot.invert?ot.invert(ke.chartX):null,et=tt&&tt.invert?tt.invert(ke.chartY):null;return _objectSpread(_objectSpread({},ke),{},{xValue:Ue,yValue:et})}var dt=getTooltipData(this.state,this.props.data,this.props.layout,Ie);return dt?_objectSpread(_objectSpread({},ke),dt):null}},{key:"inRange",value:function(Ae,ge){var Te=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,we=this.props.layout,ke=Ae/Te,Be=ge/Te;if(we==="horizontal"||we==="vertical"){var Ie=this.state.offset,je=ke>=Ie.left&&ke<=Ie.left+Ie.width&&Be>=Ie.top&&Be<=Ie.top+Ie.height;return je?{x:ke,y:Be}:null}var Ke=this.state,Je=Ke.angleAxisMap,Xe=Ke.radiusAxisMap;if(Je&&Xe){var ot=getAnyElementOfObject(Je);return inRangeOfSector({x:ke,y:Be},ot)}return null}},{key:"parseEventsOfWrapper",value:function(){var Ae=this.props.children,ge=this.getTooltipEventType(),Te=findChildByType(Ae,Tooltip),we={};Te&&ge==="axis"&&(Te.props.trigger==="click"?we={onClick:this.handleClick}:we={onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd});var ke=adaptEventHandlers(this.props,this.handleOuterEvent);return _objectSpread(_objectSpread({},ke),we)}},{key:"addListener",value:function(){eventCenter.on(SYNC_EVENT,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){eventCenter.removeListener(SYNC_EVENT,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(Ae,ge,Te){for(var we=this.state.formattedGraphicalItems,ke=0,Be=we.length;ke{const R=useClasses$8(),O=reactExports.useMemo(()=>mergeClasses(R.wrapper,C&&R.horizontal),[R,C]),I=reactExports.useMemo(()=>mergeClasses(R.tagsWrapper,C&&R.tagsWrapperHorizontal),[R,C]),N=reactExports.useMemo(()=>{let L;switch(S.type){case"custom":L=S.content;break;case"text":L=jsxRuntimeExports.jsx(Text$2,{size:500,children:S.data});break;case"number":L=jsxRuntimeExports.jsx(Text$2,{size:500,children:numberFormatter(S.data)});break;case"status":L=jsxRuntimeExports.jsx(StatusText,{statusCode:S.status,textSize:500,showText:!0});break;case"time":{L=jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:S.startTimeISOStr,endTimeISOString:S.endTimeISOStr,textSize:500});break}case"score":{const B=[{data:S.score,color:tokens.colorNeutralForeground3},{data:1-S.score,color:tokens.colorNeutralBackground4}];L=jsxRuntimeExports.jsxs("div",{className:R.scoreWrapper,children:[jsxRuntimeExports.jsx(PieChart,{width:24,height:24,children:jsxRuntimeExports.jsx(Pie,{data:B,dataKey:"data",cx:"50%",cy:"50%",innerRadius:8,outerRadius:11,strokeWidth:0,stroke:"transparent",children:B.map((j,F)=>jsxRuntimeExports.jsx(Cell,{fill:j.color},`cell-${F}`))})}),jsxRuntimeExports.jsx(Text$2,{size:500,children:S.score})]});break}case"tags":L=jsxRuntimeExports.jsx("div",{className:I,children:S.tags.map((B,j)=>jsxRuntimeExports.jsx(MetricTag,{tag:B},j))});break;default:L=null}return L},[S,R,I]);return jsxRuntimeExports.jsxs("div",{className:O,children:[jsxRuntimeExports.jsx(Text$2,{size:400,className:R.title,children:S.title}),jsxRuntimeExports.jsx("div",{className:R.data,children:N})]})},useClasses$8=makeStyles({wrapper:{display:"flex",flexDirection:"column",justifyContent:"space-between",...shorthands.flex(0,0,"auto")},horizontal:{flexDirection:"row",alignItems:"center",...shorthands.flex(0,0,"auto")},title:{color:tokens.colorNeutralForeground2,marginBottom:tokens.spacingVerticalXS},data:{color:tokens.colorNeutralForeground1},tagsWrapper:{display:"flex",flexDirection:"row",...shorthands.gap("0.5rem")},tagsWrapperHorizontal:{flexDirection:"column"},timeWrapper:{display:"flex",flexDirection:"row",alignItems:"center",justifyItems:"center","> svg":{marginRight:"5px"}},scoreWrapper:{display:"flex",flexDirection:"row",alignItems:"center","> :first-child":{marginRight:"8px"}}}),TraceDetailMetrics=()=>{const S=useClasses$7(),C=useSelectedTrace(),R=useLocStrings(),O=reactExports.useMemo(()=>{const I=C;if(!I||!I.evaluations)return[];const N=convertToTraceListRow(I),L=[{title:R.Status,type:"status",status:I.status??UNDEFINED_VALUE_PLACEHOLDER},{title:R.Total_Tokens,type:"custom",content:jsxRuntimeExports.jsx("div",{className:S.token,children:jsxRuntimeExports.jsx(SummaryToken,{trace:N})})},{title:R.Latency,type:"time",startTimeISOStr:I.start_time,endTimeISOStr:I.end_time}];return Object.entries(I.evaluations).forEach(([B,j])=>{const F=[],V=j.outputs;V&&(Object.keys(V).forEach(K=>{const W=V[K];W!=null&&F.push({name:K,value:V[K]})}),L.push({title:B,type:"tags",tags:F}))}),L},[C,S.token]);return jsxRuntimeExports.jsx("div",{className:S.wrapper,children:O.map((I,N)=>jsxRuntimeExports.jsx(MetricItem,{data:I},N))})},useClasses$7=makeStyles({wrapper:{display:"flex",alignItems:"stretch",height:"48px",width:"100%",...shorthands.margin("16px"),...shorthands.gap("1rem")},token:{"& div":{fontSize:"20px",fontWeight:400}}}),TreeNode=({node:S,span:C})=>{var B,j,F,V;const R=bitset.has(GraphNodeStatus.Selected)(S.status),O=bitset.has(GraphNodeStatus.Activated)(S.status);let I=tokens.colorNeutralStroke1,N=tokens.colorNeutralBackground4,L=1;return R&&(I=tokens.colorBrandStroke2,L=2,N=tokens.colorNeutralBackground4Selected),O&&(N=tokens.colorNeutralBackground4Hover),jsxRuntimeExports.jsx("foreignObject",{x:S.x,y:S.y,width:TREE_NODE_WIDTH,height:TREE_NODE_HEIGHT,style:{border:`${L}px solid ${I}`,backgroundColor:N,borderRadius:10,paddingLeft:10},children:jsxRuntimeExports.jsxs("div",{style:{height:"100%",width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"nowrap",cursor:"pointer"},children:[jsxRuntimeExports.jsxs("div",{style:{display:"flex",flexWrap:"nowrap",maxWidth:TREE_NODE_WIDTH*2/3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginRight:10},children:[jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",children:`${(B=C.attributes)==null?void 0:B.span_type}`.split(".").pop()}),jsxRuntimeExports.jsx(Tooltip$1,{content:C.name??"",relationship:"label",children:jsxRuntimeExports.jsx("span",{style:{marginLeft:4},children:`${C.name}`})})]}),jsxRuntimeExports.jsxs("div",{style:{display:"flex",flexWrap:"nowrap",paddingRight:10,gap:tokens.spacingHorizontalS},children:[((F=(j=C==null?void 0:C.status)==null?void 0:j.status_code)==null?void 0:F.toLowerCase())==="error"&&jsxRuntimeExports.jsx(StatusText,{statusCode:(V=C.status)==null?void 0:V.status_code,tooltipContent:C.status.message}),jsxRuntimeExports.jsx(NodeToken,{span:C}),jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:C.start_time,endTimeISOString:C.end_time})]})]})})};class NodeConfig{constructor(C){this.options=C}render(C){const R=this.options.spans.find(O=>{var I;return((I=O==null?void 0:O.context)==null?void 0:I.span_id)===C.model.id});return R?jsxRuntimeExports.jsx(TreeNode,{node:C.model,span:R}):null}getMinHeight(){return 0}getMinWidth(){return 0}}const TreeView=()=>{const S=useSpansOfSelectedTrace(),C=useSetSelectedSpanId(),R=useRootSpanIdOfSelectedSpans(),O=useSelectedSpanId(),I=F=>(V,K)=>(K&&K.type===GraphNodeEvent.Click&&C(K.node.id),F(V,K)),N=GraphConfigBuilder.default().registerNode(()=>new NodeConfig({spans:S})).registerPort(()=>new PortConfig).registerEdge(()=>new EdgeConfig).build(),L=previewMode;L.add(GraphFeatures.ClickNodeToSelect),L.add(GraphFeatures.CanvasVerticalScrollable);const[B,j]=useGraphReducer({data:GraphModel.empty(),settings:{features:L,graphConfig:N}},I);return reactExports.useEffect(()=>{R&&(j({type:GraphCanvasEvent.SetData,data:spansToGraphModel(S,{rootSpanId:R}).selectNodes(F=>F.id===R)}),C(R))},[]),reactExports.useEffect(()=>{O&&j({type:GraphNodeEvent.Select,nodes:[O]})},[O]),jsxRuntimeExports.jsx(TreeGraph,{state:B,dispatch:j})},TraceDetail=()=>{const S=useClasses$6(),C=useSelectedSpanId(),R=reactExports.useRef(null),O=useTraceDetailRefreshKey(),I=useIsGanttChartOpen(),N=useTraceDetailViewStatus(),L=useTraceDetailLoadingComponent(),B=useTraceDetailErrorComponent(),j=useLocStrings();return reactExports.useEffect(()=>{var F;I&&((F=R.current)==null||F.updateSize({height:400,width:"100%"}))},[I]),N===ViewStatus.error?jsxRuntimeExports.jsx(B,{}):N===ViewStatus.loading?jsxRuntimeExports.jsx(L,{}):jsxRuntimeExports.jsxs("div",{className:S.root,children:[jsxRuntimeExports.jsxs("div",{className:S.container,children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(TraceDetailMetrics,{},O),jsxRuntimeExports.jsx(Divider$2,{})]}),jsxRuntimeExports.jsxs("div",{className:S.content,children:[jsxRuntimeExports.jsx(Resizable,{enable:{right:!0},minWidth:100,maxWidth:"60%",defaultSize:{width:TREE_NODE_WIDTH+2*TREE_NODE_INDENT+32,height:"100%"},handleComponent:{right:jsxRuntimeExports.jsx("div",{className:S.resizeBar})},children:jsxRuntimeExports.jsx("div",{className:S.leftPane,children:jsxRuntimeExports.jsx(TreeView,{},O)})}),jsxRuntimeExports.jsx("div",{className:S.rightPane,children:jsxRuntimeExports.jsx(NodeDetail,{emptyTip:jsxRuntimeExports.jsx(MessageBar,{intent:"error",children:j.No_span_data})},O)},`${C}`)]})]}),I&&jsxRuntimeExports.jsx("div",{className:S.bottomPane,children:jsxRuntimeExports.jsx(Resizable,{ref:R,className:S.ganttContainer,defaultSize:{height:0,width:"100%"},enable:{top:!0},handleComponent:{top:jsxRuntimeExports.jsx("div",{className:S.resizeBarBottom})},children:jsxRuntimeExports.jsx(GanttView,{},O)})})]})},useClasses$6=makeStyles({root:{width:"100%",height:"100%"},container:{display:"flex",flexDirection:"column",height:"100%",width:"100%"},summary:{display:"flex",alignItems:"stretch",height:"48px",width:"100%",...shorthands.margin("16px"),...shorthands.gap("1rem")},content:{...shorthands.flex(1),display:"flex"},leftPane:{height:"100%",...shorthands.margin("16px",0,0,"16px")},rightPane:{position:"relative",width:"100%",height:"100%",...shorthands.flex(1),...shorthands.overflow("hidden")},bottomPane:{position:"absolute",backgroundColor:tokens.colorNeutralBackground1,bottom:0,width:"100%"},ganttContainer:{...shorthands.padding("16px")},resizeBar:{position:"absolute",top:0,bottom:0,right:"5px",width:"6px",backgroundColor:tokens.colorNeutralBackground3,"::before":{content:"''",position:"absolute",top:"50%",right:"1px",marginTop:"-12px",height:"24px",width:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed},"::after":{content:"''",position:"absolute",top:"50%",left:"1px",marginTop:"-12px",height:"24px",width:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed}},resizeBarBottom:{position:"absolute",left:0,right:0,bottom:"5px",height:"6px",backgroundColor:tokens.colorNeutralBackground3,"::before":{content:"''",position:"absolute",left:"50%",bottom:"1px",marginLeft:"-12px",width:"24px",height:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed},"::after":{content:"''",position:"absolute",left:"50%",top:"1px",marginLeft:"-12px",width:"24px",height:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed}}}),useClasses$5=makeStyles({title:{...shorthands.flex(1),...shorthands.padding("8px","16px"),lineHeight:"28px",fontSize:"18px",fontWeight:600}}),TraceDetailTitle=()=>{const S=useClasses$5(),C=useLocStrings(),R=useSelectedTrace();return jsxRuntimeExports.jsx("div",{className:S.title,children:(R==null?void 0:R.name)??C.Trace_Detail})},TraceFilter=()=>{const S=useClasses$4(),C=useTableColumnNames(),[R,O]=[useTableHiddenColumnNames(),useSetTableHiddenColumnNames()],I=reactExports.useMemo(()=>[...C.normalColumns,...C.evaluationColumns].filter(B=>!R.includes(B)),[R,C]),N=(L,B)=>{const{optionText:j}=B;j&&O(R.includes(j)?R.filter(F=>F!==j):[...R,j])};return jsxRuntimeExports.jsxs("div",{className:S.wrapper,children:[jsxRuntimeExports.jsx(Input,{className:S.filter,disabled:!0,placeholder:"NOT implement yet"}),jsxRuntimeExports.jsxs(Combobox,{className:S.chooser,multiselect:!0,placeholder:"Columns Filter",selectedOptions:I,onOptionSelect:N,children:[jsxRuntimeExports.jsx(OptionGroup,{label:"Trace Info",children:C.normalColumns.map(L=>jsxRuntimeExports.jsx(Option$2,{children:L},L))}),jsxRuntimeExports.jsx(OptionGroup,{label:"Metrics",children:C.evaluationColumns.map(L=>jsxRuntimeExports.jsx(Option$2,{children:L},L))})]})]})},useClasses$4=makeStyles({wrapper:{display:"flex",...shorthands.gap("1rem"),...shorthands.margin(tokens.spacingVerticalM)},filter:{flexGrow:1},chooser:{width:"100px"}}),useOnClickTraceRow=()=>{const S=useSetSelectedTraceId();return(C,R)=>{S(C==null?void 0:C.trace_id)}},useTraceListRows=()=>useTraces().map(C=>convertToTraceListRow(C)),useColumns=()=>{const S=useClasses$3(),C=useTraceListRows(),R=useOnClickTraceRow(),O=useSetTableColumnNames(),I=useTableHiddenColumnNames(),N=useLocStrings(),L=reactExports.useMemo(()=>{const j=[];return C.forEach(F=>{Object.entries(F.evaluations??{}).forEach(([V,K])=>{!j.includes(V)&&K.display_name&&j.push(K.display_name)})}),j.map(F=>{const V=[],K=[];return C.forEach(W=>{var oe;const X=(oe=W.evaluations)==null?void 0:oe[F];if(!X||!X.outputs)return;const J=X.outputs;Object.keys(J).forEach(pe=>{const me=J[pe];!V.includes(pe)&&me!==null&&(V.push(pe),K.push({key:`evaluation-${F}-${pe}-value`,name:pe,renderCell:({row:xe})=>{var Te,we,ke;let Ae;const ge=(ke=(we=(Te=xe==null?void 0:xe.evaluations)==null?void 0:Te[F])==null?void 0:we.outputs)==null?void 0:ke[pe];return ge===void 0?Ae="N/A":typeof ge=="number"?Ae=formatNumber(ge):Ae=`${ge}`,Ae}}))})}),{name:F,children:K}})},[C]);return reactExports.useMemo(()=>{const j=[{key:"kind",name:N.Kind,minWidth:150,maxWidth:300,renderCell:({row:K})=>jsxRuntimeExports.jsx(KindText,{kind:K.kind})},{key:"name",name:N.Name,minWidth:200,maxWidth:300,renderCell:({row:K})=>jsxRuntimeExports.jsx(Tooltip$1,{content:K.name??"",relationship:"label",children:jsxRuntimeExports.jsx("span",{className:S.nameCell,title:K.name,onClick:()=>{R(K,"name")},children:K.name})})},{key:"input",name:N.Input,minWidth:200,renderCell:({row:K})=>jsxRuntimeExports.jsx(TraceListJsonCell,{jsonObject:K.inputs})},{key:"output",name:N.Output,minWidth:200,renderCell:({row:K})=>jsxRuntimeExports.jsx(TraceListJsonCell,{jsonObject:K.outputs})},{key:"start_time",name:N.Start_time,minWidth:150,maxWidth:300,renderCell:({row:K})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:K.start_time})})},{key:"end_time",name:N.End_time,minWidth:150,maxWidth:300,renderCell:({row:K})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:K.end_time})})},{key:"latency",name:N.Latency,minWidth:120,renderCell:({row:K})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:K.start_time,endTimeISOString:K.end_time})})},{key:"total_tokens",name:N.Total_tokens,minWidth:120,renderCell:({row:K})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(SummaryToken,{trace:K})})},{key:"status",name:N.Status,minWidth:120,renderCell:({row:K})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(StatusText,{statusCode:K.status})})}];O({normalColumns:j.map(K=>K.name).filter(K=>!UN_FILTERABLE_COLUMNS.includes(K)),evaluationColumns:L.map(K=>K.name)});const F=j.filter(K=>!I.includes(K.name)),V=L.filter(K=>!I.includes(K.name));return[...F,{key:"evaluations",name:"Metrics",minWidth:450,children:V}]},[S.nameCell,L,I,R,O])},useClasses$3=makeStyles({typeBadge:{...shorthands.padding(tokens.spacingVerticalXXS,tokens.spacingHorizontalS)},latencyWrapper:{display:"flex",flexDirection:"row",alignItems:"center",justifyItems:"center","> svg":{marginRight:"5px"}},nameCell:{color:tokens.colorBrandForeground1,fontWeight:tokens.fontWeightSemibold,":hover":{...shorthands.textDecoration("underline")}}}),UN_FILTERABLE_COLUMNS=["Kind","Name"];function TraceList({onRowClick:S,className:C}){const R=useClasses$2(),O=useColumns(),I=useTraceListRows(),N=useTraceListViewStatus(),L=useTraceListLoadingComponent(),B=useTraceListErrorComponent(),j=useIsDark(),F=useOnClickTraceRow(),V=reactExports.useCallback(K=>{const{row:W,column:X}=K;F(W,X.key),S==null||S(W)},[F,S]);return N===ViewStatus.error?jsxRuntimeExports.jsx(B,{}):N===ViewStatus.loading?jsxRuntimeExports.jsx(L,{}):jsxRuntimeExports.jsx(DataGrid$1$1,{className:`${R.grid} ${C??""} ${j?"rdg-dark":"rdg-light"}`,renderers:{noRowsFallback:jsxRuntimeExports.jsxs("div",{style:{textAlign:"center",gridColumn:"1/-1",display:"flex",alignItems:"center",justifyContent:"center"},children:[jsxRuntimeExports.jsx(TextBulletListSquareWarning24Regular,{}),jsxRuntimeExports.jsx(Text$2,{style:{paddingLeft:"1rem"},children:"No traces found."})]})},rowClass:()=>R.row,columns:O,rows:I,headerRowHeight:26,rowHeight:80,onCellClick:V,defaultColumnOptions:{resizable:!0}})}const useClasses$2=makeStyles({grid:{},row:{cursor:"pointer"}}),DefaultDetailContainer=({isOpen:S,setIsOpen:C,header:R=null,content:O})=>jsxRuntimeExports.jsxs(OverlayDrawer,{position:"end",style:{width:"calc(100% - 160px)"},open:S,onOpenChange:(I,N)=>C(N.open),children:[R,jsxRuntimeExports.jsx("div",{style:{width:"100%",height:"calc(100vh - 40px)"},children:O})]}),defaultLocStrings=new Proxy({},{get:(S,C)=>C.replace(/_/g," ")}),RegistryWrapper=createRegistry({name:"TraceView"}),TraceView=({viewModel:S,styles:C,DetailContainer:R=DefaultDetailContainer,showFilter:O=!0,showGantt:I=!0,onRowClick:N,TraceDetailError:L,TraceDetailLoading:B,TraceListError:j,TraceListLoading:F,isDark:V=!1,locStrings:K=defaultLocStrings})=>{const W=useClasses$1(),X=useState(S.isTraceDetailOpen$),J=useSetState(S.isTraceDetailOpen$),oe=React.useCallback(pe=>{pe.register(TraceViewModelToken,{useValue:S}),F&&pe.register(traceListLoadingInjectionToken,{useValue:F}),j&&pe.register(traceListErrorInjectionToken,{useValue:j}),B&&pe.register(traceDetailLoadingInjectionToken,{useValue:B}),L&&pe.register(traceDetailErrorInjectionToken,{useValue:L}),K&&pe.register(locStringsInjectionToken,{useValue:K})},[]);return jsxRuntimeExports.jsx(TraceViewThemeContext.Provider,{value:V,children:jsxRuntimeExports.jsxs(RegistryWrapper,{onInitialize:oe,children:[jsxRuntimeExports.jsxs("div",{className:mergeClasses(W.wrapper,C==null?void 0:C.wrapper),children:[O?jsxRuntimeExports.jsx(TraceFilter,{}):null,jsxRuntimeExports.jsx(TraceList,{className:W.grid,onRowClick:pe=>{N!=null&&N(pe)||J(!0)}})]}),jsxRuntimeExports.jsx(R,{isOpen:X,setIsOpen:J,header:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:W.header,children:[jsxRuntimeExports.jsx(TraceDetailTitle,{}),I?jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Close",icon:jsxRuntimeExports.jsx(GanttChart20Regular,{}),onClick:()=>S.toggleIsGanttChartOpen()}):null,jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Close",icon:jsxRuntimeExports.jsx(Dismiss24Regular,{}),onClick:()=>J(!1)})]}),jsxRuntimeExports.jsx(Divider$2,{})]}),content:jsxRuntimeExports.jsx(TraceDetail,{})})]})})},useClasses$1=makeStyles({header:{display:"flex",width:"100%"},wrapper:{display:"flex",flexDirection:"column",height:"100%"},divider:{flexGrow:0,...shorthands.margin("16px",0)},grid:{flexGrow:1}}),URL_PREFIX="",TraceViewApp=()=>{const[S,C]=reactExports.useState(!1),[R,O]=reactExports.useState(void 0),[I,N]=reactExports.useState(!0),[L,B]=reactExports.useState(void 0),j=useClasses(),F=React.useMemo(()=>new TraceViewModel,[]);return reactExports.useEffect(()=>{const V=window.matchMedia("(prefers-color-scheme: dark)");C(V.matches);const K=W=>{C(W.matches)};return V.addEventListener("change",K),()=>{V.removeEventListener("change",K)}},[]),reactExports.useEffect(()=>{F.traceDetailDidOpen(V=>{const K=F.getTraceById(V);if(!K)return;const W=[V,...Object.values(K.evaluations??[]).map(X=>X.trace_id)];F.setTraceDetailStatus(ViewStatus.loading),fetch(`${URL_PREFIX}/v1.0/Spans/list?trace_ids=${W.join(",")}`).then(X=>X.json()).then(X=>{F.appendSpans(X),F.setTraceDetailStatus(ViewStatus.loaded)}).catch(X=>{console.error("Error:",X),F.setTraceDetailStatus(ViewStatus.error)})})},[F]),reactExports.useEffect(()=>{I&&F.setTraceListStatus(ViewStatus.loading);const V=()=>{if(R===void 0)return;const W=R?`?${R}`:"";fetch(`${URL_PREFIX}/v1.0/LineRuns/list${W}`).then(async X=>{const J=await X.json();if(!J)return null;const oe=getSummariesSignature(J);return L===void 0||oe!==L?(B(oe),J):null}).then(X=>{X&&(F.traces$.clear(),F.appendTraces(X))}).catch(X=>{F.setTraceListStatus(ViewStatus.error),F.appendTraces([]),console.error("Error:",X)}).finally(()=>{I&&(N(!1),F.setTraceListStatus(ViewStatus.loaded))})};V();const K=setInterval(V,1e4);return()=>{clearInterval(K)}},[R,L]),reactExports.useEffect(()=>{function V(){const W=new URL(window.location.href).search.substring(1);O(W)}return V(),window.addEventListener("popstate",V),()=>{window.removeEventListener("popstate",V)}},[]),jsxRuntimeExports.jsxs(FluentProvider,{theme:S?webDarkTheme:webLightTheme,style:{height:"100%",width:"100%"},children:[jsxRuntimeExports.jsx("style",{dangerouslySetInnerHTML:{__html:` - html, - body { - height: 100%; - width: 100%; - padding: 0; - margin: 0; - box-sizing: border-box; - overflow: hidden; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", - "Droid Sans", "Helvetica Neue", sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - - #root { - height: 100%; - width: 100%; - display: flex; - } - `}}),jsxRuntimeExports.jsx("div",{className:j.wrapper,children:jsxRuntimeExports.jsx(TraceView,{viewModel:F,isDark:S,styles:{wrapper:j.traceViewWrapper}})})]})},useClasses=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%"},traceViewWrapper:{display:"flex",flexDirection:"column",height:"100%",width:"100%",flexGrow:1}});client.createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(TraceViewApp,{}));var LexicalLink_prod={},LexicalUtils_prod={},LexicalSelection_prod={},Lexical_prod={},hasRequiredLexical_prod;function requireLexical_prod(){if(hasRequiredLexical_prod)return Lexical_prod;hasRequiredLexical_prod=1;let S={},C={},R={},O={},I={},N={},L={},B={},j={},F={},V={},K={},W={},X={},J={},oe={},pe={},me={},xe={},Ae={},ge={},Te={},we={},ke={},Be={},Ie={},je={},Ke={},Je={},Xe={},ot={},tt={},Ue={},et={},dt={},gt={};function Qe(Le){let ye=new URLSearchParams;ye.append("code",Le);for(let Ne=1;Ne{let ye=Co();return ye!==null?ye.clone():null})}function sr(Le,ye,Ne){Tn=!0;let Ye=100{let st=Co()||mr(Le);var ft=new Map,vt=Le.getRootElement(),Bt=Le._editorState,er=Le._blockCursorElement;let br=!1,dn="";for(var yn=0;yn{sr(Le,ye,Ne)})}function Ir(Le,ye){let Ne=Le.__mode,Ye=Le.__format;Le=Le.__style;let st=ye.__mode,ft=ye.__format;return ye=ye.__style,(Ne===null||Ne===st)&&(Ye===null||Ye===ft)&&(Le===null||Le===ye)}function jr(Le,ye){let Ne=Le.mergeWithSibling(ye),Ye=Ni()._normalizedNodes;return Ye.add(Le.__key),Ye.add(ye.__key),Ne}function Rr(Le){if(Le.__text===""&&Le.isSimpleText()&&!Le.isUnmergeable())Le.remove();else{for(var ye;(ye=Le.getPreviousSibling())!==null&&Jn(ye)&&ye.isSimpleText()&&!ye.isUnmergeable();)if(ye.__text==="")ye.remove();else{Ir(ye,Le)&&(Le=jr(ye,Le));break}for(var Ne;(Ne=Le.getNextSibling())!==null&&Jn(Ne)&&Ne.isSimpleText()&&!Ne.isUnmergeable();)if(Ne.__text==="")Ne.remove();else{Ir(Le,Ne)&&jr(Le,Ne);break}}}function fr(Le){return Or(Le.anchor),Or(Le.focus),Le}function Or(Le){for(;Le.type==="element";){var ye=Le.getNode(),Ne=Le.offset;if(Ne===ye.getChildrenSize()?(ye=ye.getChildAtIndex(Ne-1),Ne=!0):(ye=ye.getChildAtIndex(Ne),Ne=!1),Jn(ye)){Le.set(ye.__key,Ne?ye.getTextContentSize():0,"text");break}else if(!an(ye))break;Le.set(ye.__key,Ne?ye.getChildrenSize():0,"element")}}let Jr=1,nn=typeof queueMicrotask=="function"?queueMicrotask:Le=>{Promise.resolve().then(Le)};function hn(Le){let ye=document.activeElement;if(ye===null)return!1;let Ne=ye.nodeName;return Fi(wn(Le))&&(Ne==="INPUT"||Ne==="TEXTAREA"||ye.contentEditable==="true"&&ye.__lexicalEditor==null)}function Gn(Le,ye,Ne){let Ye=Le.getRootElement();try{return Ye!==null&&Ye.contains(ye)&&Ye.contains(Ne)&&ye!==null&&!hn(ye)&&Zn(ye)===Le}catch{return!1}}function Zn(Le){for(;Le!=null;){let ye=Le.__lexicalEditor;if(ye!=null)return ye;Le=un(Le)}return null}function Eo(Le){return Le.isToken()||Le.isSegmented()}function vo(Le){for(;Le!=null;){if(Le.nodeType===3)return Le;Le=Le.firstChild}return null}function Fo(Le,ye,Ne){let Ye=wr[ye];return Ne!==null&&(Le&Ye)===(Ne&Ye)||(Le^=Ye,ye==="subscript"?Le&=~wr.superscript:ye==="superscript"&&(Le&=~wr.subscript)),Le}function Ln(Le,ye){if(ye!=null)Le.__key=ye;else{Ha(),99Go().getTextContent())}function ca(Le,ye){ml(Le,()=>{var Ne=Yi();if(!Ne.isEmpty())if(ye==="root")Go().markDirty();else{Ne=Ne._nodeMap;for(let[,Ye]of Ne)Ye.markDirty()}},Le._pendingEditorState===null?{tag:"history-merge"}:void 0)}function Go(){return Yi()._nodeMap.get("root")}function di(Le){Ha();let ye=Yi();Le!==null&&(Le.dirty=!0,Le.setCachedNodes(null)),ye._selection=Le}function Qi(Le){var ye=Ni(),Ne;e:{for(Ne=Le;Ne!=null;){let Ye=Ne[`__lexicalKey_${ye._key}`];if(Ye!==void 0){Ne=Ye;break e}Ne=un(Ne)}Ne=null}return Ne===null?(ye=ye.getRootElement(),Le===ye?fo("root"):null):fo(Ne)}function Oa(Le){return/[\uD800-\uDBFF][\uDC00-\uDFFF]/g.test(Le)}function gs(Le){let ye=[];for(;Le!==null;)ye.push(Le),Le=Le._parentEditor;return ye}function Dt(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function St(Le,ye,Ne){if(ye=mi(ye._window),ye!==null){var Ye=ye.anchorNode,{anchorOffset:st,focusOffset:ft}=ye;if(Ye!==null&&(ye=Ye.nodeType===3?Ye.nodeValue:null,Ye=wn(Ye),ye!==null&&Jn(Ye))){if(ye===Ht&&Ne){let vt=Ne.length;ye=Ne,ft=st=vt}ye!==null&&wt(Ye,ye,st,ft,Le)}}}function wt(Le,ye,Ne,Ye,st){let ft=Le;if(ft.isAttached()&&(st||!ft.isDirty())){let br=ft.isComposing(),dn=ye;if((br||st)&&ye[ye.length-1]===Ht&&(dn=ye.slice(0,-1)),ye=ft.getTextContent(),st||dn!==ye)if(dn==="")if(ao(null),Gt||Pt||It)ft.remove();else{let yn=Ni();setTimeout(()=>{yn.update(()=>{ft.isAttached()&&ft.remove()})},20)}else{st=ft.getParent(),ye=za();var vt=ft.getTextContentSize(),Bt=zo(),er=ft.getKey();ft.isToken()||Bt!==null&&er===Bt&&!br||Wo(ye)&&(st!==null&&!st.canInsertTextBefore()&&ye.anchor.offset===0||ye.anchor.key===Le.__key&&ye.anchor.offset===0&&!ft.canInsertTextBefore()&&!br||ye.focus.key===Le.__key&&ye.focus.offset===vt&&!ft.canInsertTextAfter()&&!br)?ft.markDirty():(Le=Co(),Wo(Le)&&Ne!==null&&Ye!==null&&(Le.setTextNodeRange(ft,Ne,ft,Ye),ft.isSegmented()&&(Ne=ft.getTextContent(),Ne=ys(Ne),ft.replace(Ne),ft=Ne)),ft.setTextContent(dn))}}}function yt(Le,ye){if(ye.isSegmented())return!0;if(!Le.isCollapsed())return!1;Le=Le.anchor.offset;let Ne=ye.getParentOrThrow(),Ye=ye.isToken();return Le===0?((Le=!ye.canInsertTextBefore()||!Ne.canInsertTextBefore()||Ye)||(ye=ye.getPreviousSibling(),Le=(Jn(ye)||an(ye)&&ye.isInline())&&!ye.canInsertTextAfter()),Le):Le===ye.getTextContentSize()?!ye.canInsertTextAfter()||!Ne.canInsertTextAfter()||Ye:!1}function Rt(Le,ye){Le.__lexicalClassNameCache===void 0&&(Le.__lexicalClassNameCache={});let Ne=Le.__lexicalClassNameCache,Ye=Ne[ye];return Ye!==void 0?Ye:(Le=Le[ye],typeof Le=="string"?(Le=Le.split(" "),Ne[ye]=Le):Le)}function Nt(Le,ye,Ne,Ye,st){Ne.size!==0&&(Ne=Ye.__type,Ye=Ye.__key,ye=ye.get(Ne),ye===void 0&&Qe(33,Ne),Ne=ye.klass,ye=Le.get(Ne),ye===void 0&&(ye=new Map,Le.set(Ne,ye)),Le=ye.get(Ye),Ne=Le==="destroyed"&&st==="created",(Le===void 0||Ne)&&ye.set(Ye,Ne?"updated":st))}function Yt(Le,ye,Ne){let Ye=Le.getParent(),st=Ne;return Ye!==null&&(ye&&Ne===0?(st=Le.getIndexWithinParent(),Le=Ye):ye||Ne!==Le.getChildrenSize()||(st=Le.getIndexWithinParent()+1,Le=Ye)),Le.getChildAtIndex(ye?st-1:st)}function lr(Le,ye){var Ne=Le.offset;return Le.type==="element"?(Le=Le.getNode(),Yt(Le,ye,Ne)):(Le=Le.getNode(),ye&&Ne===0||!ye&&Ne===Le.getTextContentSize()?(Ne=ye?Le.getPreviousSibling():Le.getNextSibling(),Ne===null?Yt(Le.getParentOrThrow(),ye,Le.getIndexWithinParent()+(ye?0:1)):Ne):null)}function vr(Le){return Le=(Le=In(Le).event)&&Le.inputType,Le==="insertFromPaste"||Le==="insertFromPasteAsQuotation"}function Qt(Le){return!Bs(Le)&&!Le.isLastChild()&&!Le.isInline()}function Ar(Le,ye){return Le=Le._keyToDOMMap.get(ye),Le===void 0&&Qe(75,ye),Le}function un(Le){return Le=Le.assignedSlot||Le.parentElement,Le!==null&&Le.nodeType===11?Le.host:Le}function po(Le,ye){for(Le=Le.getParent();Le!==null;){if(Le.is(ye))return!0;Le=Le.getParent()}return!1}function In(Le){return Le=Le._window,Le===null&&Qe(78),Le}function xo(Le){for(Le=Le.getParentOrThrow();Le!==null&&!Vn(Le);)Le=Le.getParentOrThrow();return Le}function Vn(Le){return Bs(Le)||an(Le)&&Le.isShadowRoot()}function Ro(Le){return Le=Le.constructor.clone(Le),Ln(Le,null),Le}function Nn(Le){var ye=Ni();let Ne=Le.constructor.getType();return ye=ye._nodes.get(Ne),ye===void 0&&Qe(97),ye=ye.replace,ye!==null?(ye=ye(Le),ye instanceof Le.constructor||Qe(98),ye):Le}function so(Le,ye){Le=Le.getParent(),!Bs(Le)||an(ye)||Fi(ye)||Qe(99)}function Ei(Le){return(Fi(Le)||an(Le)&&!Le.canBeEmpty())&&!Le.isInline()}function Ji(Le,ye,Ne){Ne.style.removeProperty("caret-color"),ye._blockCursorElement=null,ye=Le.parentElement,ye!==null&&ye.removeChild(Le)}function mi(Le){return lt?(Le||window).getSelection():null}function ks(Le){return Le.nodeType===1}function Li(Le){if(Fi(Le)&&!Le.isInline())return!0;if(!an(Le)||Vn(Le))return!1;var ye=Le.getFirstChild();return ye=ye===null||ya(ye)||Jn(ye)||ye.isInline(),!Le.isInline()&&Le.canBeEmpty()!==!1&&ye}function hl(Le,ye){for(;Le!==null&&Le.getParent()!==null&&!ye(Le);)Le=Le.getParentOrThrow();return ye(Le)?Le:null}function Is(Le,ye,Ne,Ye,st,ft){for(Le=Le.getFirstChild();Le!==null;){let vt=Le.__key;Le.__parent===ye&&(an(Le)&&Is(Le,vt,Ne,Ye,st,ft),Ne.has(vt)||ft.delete(vt),st.push(vt)),Le=Le.getNextSibling()}}function ea(Le,ye,Ne,Ye){Le=Le._nodeMap,ye=ye._nodeMap;let st=[];for(let[ft]of Ye){let vt=ye.get(ft);vt===void 0||vt.isAttached()||(an(vt)&&Is(vt,ft,Le,ye,st,Ye),Le.has(ft)||Ye.delete(ft),st.push(ft))}for(let ft of st)ye.delete(ft);for(let ft of Ne)Ye=ye.get(ft),Ye===void 0||Ye.isAttached()||(Le.has(ft)||Ne.delete(ft),ye.delete(ft))}let fi="",aa="",ta="",$a,ii,ts,as=!1,Ns=!1,Ds,ga=null,vs,Xl,Qn,va,ma,Ys;function Ms(Le,ye){let Ne=Qn.get(Le);if(ye!==null){let Ye=ss(Le);Ye.parentNode===ye&&ye.removeChild(Ye)}va.has(Le)||ii._keyToDOMMap.delete(Le),an(Ne)&&(Le=Ki(Ne,Qn),Qo(Le,0,Le.length-1,null)),Ne!==void 0&&Nt(Ys,ts,Ds,Ne,"destroyed")}function Qo(Le,ye,Ne,Ye){for(;ye<=Ne;++ye){let st=Le[ye];st!==void 0&&Ms(st,Ye)}}function Ls(Le,ye){Le.setProperty("text-align",ye)}function Ol(Le,ye){var Ne=$a.theme.indent;if(typeof Ne=="string"){let Ye=Le.classList.contains(Ne);0ye&&Ye&&Le.classList.remove(Ne)}Ne=getComputedStyle(Le).getPropertyValue("--lexical-indent-base-value")||"40px",Le.style.setProperty("padding-inline-start",ye===0?"":`calc(${ye} * ${Ne})`)}function qn(Le,ye){Le=Le.style,ye===0?Ls(Le,""):ye===1?Ls(Le,"left"):ye===2?Ls(Le,"center"):ye===3?Ls(Le,"right"):ye===4?Ls(Le,"justify"):ye===5?Ls(Le,"start"):ye===6&&Ls(Le,"end")}function Xs(Le,ye,Ne){let Ye=va.get(Le);Ye===void 0&&Qe(60);let st=Ye.createDOM($a,ii);var ft=ii._keyToDOMMap;if(st["__lexicalKey_"+ii._key]=Le,ft.set(Le,st),Jn(Ye)?st.setAttribute("data-lexical-text","true"):Fi(Ye)&&st.setAttribute("data-lexical-decorator","true"),an(Ye)){if(Le=Ye.__indent,ft=Ye.__size,Le!==0&&Ol(st,Le),ft!==0){--ft,Le=Ki(Ye,va);var vt=aa;aa="",yi(Le,Ye,0,ft,st,null),Zl(Ye,st),aa=vt}Le=Ye.__format,Le!==0&&qn(st,Le),Ye.isInline()||Ya(null,Ye,st),Qt(Ye)&&(fi+=` - -`,ta+=` - -`)}else ft=Ye.getTextContent(),Fi(Ye)?(vt=Ye.decorate(ii,$a),vt!==null&&Ku(Le,vt),st.contentEditable="false"):Jn(Ye)&&(Ye.isDirectionless()||(aa+=ft)),fi+=ft,ta+=ft;return ye!==null&&(Ne!=null?ye.insertBefore(st,Ne):(Ne=ye.__lexicalLineBreak,Ne!=null?ye.insertBefore(st,Ne):ye.appendChild(st))),Nt(Ys,ts,Ds,Ye,"created"),st}function yi(Le,ye,Ne,Ye,st,ft){let vt=fi;for(fi="";Ne<=Ye;++Ne)Xs(Le[Ne],st,ft);Qt(ye)&&(fi+=` - -`),st.__lexicalTextContent=fi,fi=vt+fi}function Zs(Le,ye){return Le=ye.get(Le),ya(Le)||Fi(Le)&&Le.isInline()}function Ya(Le,ye,Ne){Le=Le!==null&&(Le.__size===0||Zs(Le.__last,Qn)),ye=ye.__size===0||Zs(ye.__last,va),Le?ye||(ye=Ne.__lexicalLineBreak,ye!=null&&Ne.removeChild(ye),Ne.__lexicalLineBreak=null):ye&&(ye=document.createElement("br"),Ne.__lexicalLineBreak=ye,Ne.appendChild(ye))}function Zl(Le,ye){var Ne=ye.__lexicalDir;if(ye.__lexicalDirTextContent!==aa||Ne!==ga){let ft=aa==="";if(ft)var Ye=ga;else Ye=aa,Ye=Kt.test(Ye)?"rtl":tr.test(Ye)?"ltr":null;if(Ye!==Ne){let vt=ye.classList,Bt=$a.theme;var st=Ne!==null?Bt[Ne]:void 0;let er=Ye!==null?Bt[Ye]:void 0;st!==void 0&&(typeof st=="string"&&(st=st.split(" "),st=Bt[Ne]=st),vt.remove(...st)),Ye===null||ft&&Ye==="ltr"?ye.removeAttribute("dir"):(er!==void 0&&(typeof er=="string"&&(Ne=er.split(" "),er=Bt[Ye]=Ne),er!==void 0&&vt.add(...er)),ye.dir=Ye),Ns||(Le.getWritable().__dir=Ye)}ga=Ye,ye.__lexicalDirTextContent=aa,ye.__lexicalDir=Ye}}function Ki(Le,ye){let Ne=[];for(Le=Le.__first;Le!==null;){let Ye=ye.get(Le);Ye===void 0&&Qe(101),Ne.push(Le),Le=Ye.__next}return Ne}function $i(Le,ye){var Ne=Qn.get(Le),Ye=va.get(Le);Ne!==void 0&&Ye!==void 0||Qe(61);var st=as||Xl.has(Le)||vs.has(Le);let ft=Ar(ii,Le);if(Ne===Ye&&!st)return an(Ne)?(Ye=ft.__lexicalTextContent,Ye!==void 0&&(fi+=Ye,ta+=Ye),Ye=ft.__lexicalDirTextContent,Ye!==void 0&&(aa+=Ye)):(Ye=Ne.getTextContent(),Jn(Ne)&&!Ne.isDirectionless()&&(aa+=Ye),ta+=Ye,fi+=Ye),ft;if(Ne!==Ye&&st&&Nt(Ys,ts,Ds,Ye,"updated"),Ye.updateDOM(Ne,ft,$a))return Ye=Xs(Le,null,null),ye===null&&Qe(62),ye.replaceChild(Ye,ft),Ms(Le,null),Ye;if(an(Ne)&&an(Ye)){if(Le=Ye.__indent,Le!==Ne.__indent&&Ol(ft,Le),Le=Ye.__format,Le!==Ne.__format&&qn(ft,Le),st){Le=aa,aa="",st=fi;var vt=Ne.__size,Bt=Ye.__size;if(fi="",vt===1&&Bt===1){var er=Ne.__first;if(ye=Ye.__first,er===ye)$i(er,ft);else{var br=ss(er);ye=Xs(ye,null,null),ft.replaceChild(ye,br),Ms(er,null)}}else{ye=Ki(Ne,Qn);var dn=Ki(Ye,va);if(vt===0)Bt!==0&&yi(dn,Ye,0,Bt-1,ft,null);else if(Bt===0)vt!==0&&(er=ft.__lexicalLineBreak==null,Qo(ye,0,vt-1,er?null:ft),er&&(ft.textContent=""));else{var yn=ye;ye=dn,dn=vt-1,vt=Bt-1;let Pr=ft.firstChild,$n=0;for(Bt=0;$n<=dn&&Bt<=vt;){var Wr=yn[$n];let Ao=ye[Bt];if(Wr===Ao)Pr=da($i(Ao,ft)),$n++,Bt++;else{er===void 0&&(er=new Set(yn)),br===void 0&&(br=new Set(ye));let Vo=br.has(Wr),Po=er.has(Ao);Vo?(Po?(Wr=Ar(ii,Ao),Wr===Pr?Pr=da($i(Ao,ft)):(Pr!=null?ft.insertBefore(Wr,Pr):ft.appendChild(Wr),$i(Ao,ft)),$n++):Xs(Ao,ft,Pr),Bt++):(Pr=da(ss(Wr)),Ms(Wr,ft),$n++)}}er=$n>dn,br=Bt>vt,er&&!br?(er=ye[vt+1],er=er===void 0?null:ii.getElementByKey(er),yi(ye,Ye,Bt,vt,ft,er)):br&&!er&&Qo(yn,$n,dn,ft)}}Qt(Ye)&&(fi+=` - -`),ft.__lexicalTextContent=fi,fi=st+fi,Zl(Ye,ft),aa=Le,Bs(Ye)||Ye.isInline()||Ya(Ne,Ye,ft)}Qt(Ye)&&(fi+=` - -`,ta+=` - -`)}else Ne=Ye.getTextContent(),Fi(Ye)?(st=Ye.decorate(ii,$a),st!==null&&Ku(Le,st)):Jn(Ye)&&!Ye.isDirectionless()&&(aa+=Ne),fi+=Ne,ta+=Ne;return!Ns&&Bs(Ye)&&Ye.__cachedText!==ta&&(Ye.getWritable().__cachedText=ta),ft}function Ku(Le,ye){let Ne=ii._pendingDecorators,Ye=ii._decorators;if(Ne===null){if(Ye[Le]===ye)return;Ne=cn(ii)}Ne[Le]=ye}function da(Le){return Le=Le.nextSibling,Le!==null&&Le===ii._blockCursorElement&&(Le=Le.nextSibling),Le}function ss(Le){let ye=ma.get(Le);return ye===void 0&&Qe(75,Le),ye}let Ur=Object.freeze({}),gn=[["keydown",Jo],["pointerdown",Et],["compositionstart",Xn],["compositionend",Io],["input",mn],["click",Oc],["cut",Ur],["copy",Ur],["dragstart",Ur],["dragover",Ur],["dragend",Ur],["paste",Ur],["focus",Ur],["blur",Ur],["drop",Ur]];Lt&&gn.push(["beforeinput",(Le,ye)=>Nr(Le,ye)]);let So=0,To=0,Kn=0,zn=null,ai=0,wi=!1,ra=!1,rs=!1,Xa=!1,Ql=[0,"",0,"root",0];function Jl(Le,ye,Ne,Ye,st){let ft=Le.anchor,vt=Le.focus,Bt=ft.getNode();var er=Ni();let br=mi(er._window),dn=br!==null?br.anchorNode:null,yn=ft.key;er=er.getElementByKey(yn);let Wr=Ne.length;return yn!==vt.key||!Jn(Bt)||(!st&&(!Lt||KnWr||Oa(Ne))&&ft.offset!==vt.offset&&!Bt.isComposing()||Eo(Bt)||Bt.isDirty()&&1{if(!Ne)di(null);else if(Gn(ye,Ye,ft)){var Bt=Co();if(Wo(Bt)){var er=Bt.anchor,br=er.getNode();if(Bt.isCollapsed()){Le.type==="Range"&&Le.anchorNode===Le.focusNode&&(Bt.dirty=!0);var dn=In(ye).event;dn=dn?dn.timeStamp:performance.now();let[Ao,Vo,Po,Xi,_s]=Ql;var yn=Go();yn=ye.isComposing()===!1&&yn.getTextContent()==="",dn<_s+200&&er.offset===Po&&er.key===Xi?(Bt.format=Ao,Bt.style=Vo):er.type==="text"?(Jn(br)||Qe(141),Bt.format=br.getFormat(),Bt.style=br.getStyle()):er.type!=="element"||yn||(Bt.format=0,Bt.style="")}else{var Wr=er.key,Pr=Bt.focus.key;er=Bt.getNodes(),br=er.length;var $n=Bt.isBackward();dn=$n?vt:st,yn=$n?st:vt;let Ao=$n?Pr:Wr;Wr=$n?Wr:Pr,Pr=255,$n=!1;for(let Vo=0;Vo{let Ne=Co();var Ye=mi(ye._window);let st=za();if(Ye)if(Wo(Ne)){let vt=Ne.anchor;var ft=vt.getNode();vt.type==="element"&&vt.offset===0&&Ne.isCollapsed()&&!Bs(ft)&&Go().getChildrenSize()===1&&ft.getTopLevelElementOrThrow().isEmpty()&&st!==null&&Ne.is(st)?(Ye.removeAllRanges(),Ne.dirty=!0):Le.detail!==3||Ne.isCollapsed()||(Ye=Ne.focus.getNode(),ft!==Ye&&(an(ft)?ft.select(0):ft.getParentOrThrow().select(0)))}else Le.pointerType==="touch"&&(ft=Ye.anchorNode,ft!==null&&(ft=ft.nodeType,ft===1||ft===3))&&(Ye=Yu(st,Ye,ye,Le),di(Ye));On(ye,C,Le)})}function Et(Le,ye){let Ne=Le.target;Le=Le.pointerType,Ne instanceof Node&&Le!=="touch"&&ml(ye,()=>{Fi(wn(Ne))||(ra=!0)})}function Zt(Le){return Le.getTargetRanges?(Le=Le.getTargetRanges(),Le.length===0?null:Le[0]):null}function $r(Le,ye){return Le!==ye||an(Le)||an(ye)||!Le.isToken()||!ye.isToken()}function Nr(Le,ye){let Ne=Le.inputType,Ye=Zt(Le);Ne==="deleteCompositionText"||$t&&vr(ye)||Ne!=="insertCompositionText"&&ml(ye,()=>{let st=Co();if(Ne==="deleteContentBackward"){if(st===null){var ft=za();if(!Wo(ft))return;di(ft.clone())}if(Wo(st)){Vt&&ao(st.anchor.key),To===229&&Le.timeStamp{ml(ye,()=>{ao(null)})},30),Wo(st)&&(ft=st.anchor.getNode(),ft.markDirty(),st.format=ft.getFormat(),Jn(ft)||Qe(142),st.style=ft.getStyle()),1>=st.anchor.getNode().getTextContent().length&&(Le.preventDefault(),On(ye,R,!0))):(ao(null),Le.preventDefault(),On(ye,R,!0));return}}if(Wo(st)){ft=Le.data,zn!==null&&St(!1,ye,zn),st.dirty&&zn===null||!st.isCollapsed()||Bs(st.anchor.getNode())||Ye===null||st.applyDOMRange(Ye),zn=null;var vt=st.focus,Bt=st.anchor.getNode();if(vt=vt.getNode(),Ne==="insertText"||Ne==="insertTranspose")ft===` -`?(Le.preventDefault(),On(ye,O,!1)):ft===` - -`?(Le.preventDefault(),On(ye,I,void 0)):ft==null&&Le.dataTransfer?(ft=Le.dataTransfer.getData("text/plain"),Le.preventDefault(),st.insertRawText(ft)):ft!=null&&Jl(st,Ye,ft,Le.timeStamp,!0)?(Le.preventDefault(),On(ye,N,ft)):zn=ft,Kn=Le.timeStamp;else switch(Le.preventDefault(),Ne){case"insertFromYank":case"insertFromDrop":case"insertReplacementText":On(ye,N,Le);break;case"insertFromComposition":ao(null),On(ye,N,Le);break;case"insertLineBreak":ao(null),On(ye,O,!1);break;case"insertParagraph":ao(null),rs&&!Pt?(rs=!1,On(ye,O,!1)):On(ye,I,void 0);break;case"insertFromPaste":case"insertFromPasteAsQuotation":On(ye,L,Le);break;case"deleteByComposition":$r(Bt,vt)&&On(ye,B,Le);break;case"deleteByDrag":case"deleteByCut":On(ye,B,Le);break;case"deleteContent":On(ye,R,!1);break;case"deleteWordBackward":On(ye,j,!0);break;case"deleteWordForward":On(ye,j,!1);break;case"deleteHardLineBackward":case"deleteSoftLineBackward":On(ye,F,!0);break;case"deleteContentForward":case"deleteHardLineForward":case"deleteSoftLineForward":On(ye,F,!1);break;case"formatStrikeThrough":On(ye,V,"strikethrough");break;case"formatBold":On(ye,V,"bold");break;case"formatItalic":On(ye,V,"italic");break;case"formatUnderline":On(ye,V,"underline");break;case"historyUndo":On(ye,K,void 0);break;case"historyRedo":On(ye,W,void 0)}}})}function mn(Le,ye){Le.stopPropagation(),ml(ye,()=>{var Ne=Co(),Ye=Le.data,st=Zt(Le);if(Ye!=null&&Wo(Ne)&&Jl(Ne,st,Ye,Le.timeStamp,!1)){Xa&&(Pn(ye,Ye),Xa=!1);var ft=Ne.anchor,vt=ft.getNode();if(st=mi(ye._window),st===null)return;let Bt=ft.offset;(ft=Lt&&!Ne.isCollapsed()&&Jn(vt)&&st.anchorNode!==null)&&(vt=vt.getTextContent().slice(0,Bt)+Ye+vt.getTextContent().slice(Bt+Ne.focus.offset),st=st.anchorNode,ft=vt===(st.nodeType===3?st.nodeValue:null)),ft||On(ye,N,Ye),Ye=Ye.length,$t&&1{let Ne=Co();if(Wo(Ne)&&!ye.isComposing()){let Ye=Ne.anchor,st=Ne.anchor.getNode();ao(Ye.key),(Le.timeStamp{Pn(ye,Le.data)})}function Jo(Le,ye){if(So=Le.timeStamp,To=Le.keyCode,!ye.isComposing()){var{keyCode:Ne,shiftKey:Ye,ctrlKey:st,metaKey:ft,altKey:vt}=Le;if(!On(ye,X,Le)){if(Ne!==39||st||ft||vt)if(Ne!==39||vt||Ye||!st&&!ft)if(Ne!==37||st||ft||vt)if(Ne!==37||vt||Ye||!st&&!ft)if(Ne!==38||st||ft)if(Ne!==40||st||ft)if(Ne===13&&Ye)rs=!0,On(ye,ge,Le);else if(Ne===32)On(ye,Te,Le);else if(Ct&&st&&Ne===79)Le.preventDefault(),rs=!0,On(ye,O,!0);else if(Ne!==13||Ye){var Bt=Ct?vt||ft?!1:Ne===8||Ne===72&&st:st||vt||ft?!1:Ne===8;Bt?Ne===8?On(ye,we,Le):(Le.preventDefault(),On(ye,R,!0)):Ne===27?On(ye,ke,Le):(Bt=Ct?Ye||vt||ft?!1:Ne===46||Ne===68&&st:st||vt||ft?!1:Ne===46,Bt?Ne===46?On(ye,Be,Le):(Le.preventDefault(),On(ye,R,!1)):Ne===8&&(Ct?vt:st)?(Le.preventDefault(),On(ye,j,!0)):Ne===46&&(Ct?vt:st)?(Le.preventDefault(),On(ye,j,!1)):Ct&&ft&&Ne===8?(Le.preventDefault(),On(ye,F,!0)):Ct&&ft&&Ne===46?(Le.preventDefault(),On(ye,F,!1)):Ne===66&&!vt&&(Ct?ft:st)?(Le.preventDefault(),On(ye,V,"bold")):Ne===85&&!vt&&(Ct?ft:st)?(Le.preventDefault(),On(ye,V,"underline")):Ne===73&&!vt&&(Ct?ft:st)?(Le.preventDefault(),On(ye,V,"italic")):Ne!==9||vt||st||ft?Ne===90&&!Ye&&(Ct?ft:st)?(Le.preventDefault(),On(ye,K,void 0)):(Bt=Ct?Ne===90&&ft&&Ye:Ne===89&&st||Ne===90&&st&&Ye,Bt?(Le.preventDefault(),On(ye,W,void 0)):Il(ye._editorState._selection)?(Bt=Ye?!1:Ne===67?Ct?ft:st:!1,Bt?(Le.preventDefault(),On(ye,ot,Le)):(Bt=Ye?!1:Ne===88?Ct?ft:st:!1,Bt?(Le.preventDefault(),On(ye,tt,Le)):Ne===65&&(Ct?ft:st)&&(Le.preventDefault(),On(ye,Ue,Le)))):!$t&&Ne===65&&(Ct?ft:st)&&(Le.preventDefault(),On(ye,Ue,Le))):On(ye,Ie,Le))}else rs=!1,On(ye,ge,Le);else On(ye,Ae,Le);else On(ye,xe,Le);else On(ye,me,Le);else On(ye,pe,Le);else On(ye,oe,Le);else On(ye,J,Le);(st||Ye||vt||ft)&&On(ye,gt,Le)}}}function Pi(Le){let ye=Le.__lexicalEventHandles;return ye===void 0&&(ye=[],Le.__lexicalEventHandles=ye),ye}let Uo=new Map;function Wi(Le){var ye=Le.target;let Ne=mi(ye==null?null:ye.nodeType===9?ye.defaultView:ye.ownerDocument.defaultView);if(Ne!==null){var Ye=Zn(Ne.anchorNode);if(Ye!==null){ra&&(ra=!1,ml(Ye,()=>{var Bt=za(),er=Ne.anchorNode;er!==null&&(er=er.nodeType,er===1||er===3)&&(Bt=Yu(Bt,Ne,Ye,Le),di(Bt))})),ye=gs(Ye),ye=ye[ye.length-1];var st=ye._key,ft=Uo.get(st),vt=ft||ye;vt!==Ye&&Ui(Ne,vt,!1),Ui(Ne,Ye,!0),Ye!==ye?Uo.set(st,Ye):ft&&Uo.delete(st)}}}function si(Le,ye){ai===0&&Le.ownerDocument.addEventListener("selectionchange",Wi),ai++,Le.__lexicalEditor=ye;let Ne=Pi(Le);for(let Ye=0;Ye{Bt._lexicalHandled!==!0&&(Bt._lexicalHandled=!0,ye.isEditable()&&ft(Bt,ye))}:Bt=>{if(Bt._lexicalHandled!==!0&&(Bt._lexicalHandled=!0,ye.isEditable()))switch(st){case"cut":return On(ye,tt,Bt);case"copy":return On(ye,ot,Bt);case"paste":return On(ye,L,Bt);case"dragstart":return On(ye,Ke,Bt);case"dragover":return On(ye,Je,Bt);case"dragend":return On(ye,Xe,Bt);case"focus":return On(ye,et,Bt);case"blur":return On(ye,dt,Bt);case"drop":return On(ye,je,Bt)}};Le.addEventListener(st,vt),Ne.push(()=>{Le.removeEventListener(st,vt)})}}function fa(Le,ye,Ne){Ha();var Ye=Le.__key;let st=Le.getParent();if(st!==null){var ft=Co();if(Wo(ft)&&an(Le)){var{anchor:vt,focus:Bt}=ft,er=vt.getNode(),br=Bt.getNode();po(er,Le)&&vt.set(Le.__key,0,"element"),po(br,Le)&&Bt.set(Le.__key,0,"element")}if(er=ft,br=!1,Wo(er)&&ye){ft=er.anchor;let dn=er.focus;ft.key===Ye&&(Lc(ft,Le,st,Le.getPreviousSibling(),Le.getNextSibling()),br=!0),dn.key===Ye&&(Lc(dn,Le,st,Le.getPreviousSibling(),Le.getNextSibling()),br=!0)}else Il(er)&&ye&&Le.isSelected()&&Le.selectPrevious();Wo(er)&&ye&&!br?(Ye=Le.getIndexWithinParent(),xn(Le),Vl(er,st,Ye,-1)):xn(Le),Ne||Vn(st)||st.canBeEmpty()||!st.isEmpty()||fa(st,ye),ye&&Bs(st)&&st.isEmpty()&&st.selectEnd()}}class gi{static getType(){Qe(64,this.name)}static clone(){Qe(65,this.name)}constructor(ye){this.__type=this.constructor.getType(),this.__next=this.__prev=this.__parent=null,Ln(this,ye)}getType(){return this.__type}isInline(){Qe(137,this.constructor.name)}isAttached(){for(var ye=this.__key;ye!==null;){if(ye==="root")return!0;if(ye=fo(ye),ye===null)break;ye=ye.__parent}return!1}isSelected(ye){if(ye=ye||Co(),ye==null)return!1;let Ne=ye.getNodes().some(Ye=>Ye.__key===this.__key);return Jn(this)?Ne:Wo(ye)&&ye.anchor.type==="element"&&ye.focus.type==="element"&&ye.anchor.key===ye.focus.key&&ye.anchor.offset===ye.focus.offset?!1:Ne}getKey(){return this.__key}getIndexWithinParent(){var ye=this.getParent();if(ye===null)return-1;ye=ye.getFirstChild();let Ne=0;for(;ye!==null;){if(this.is(ye))return Ne;Ne++,ye=ye.getNextSibling()}return-1}getParent(){let ye=this.getLatest().__parent;return ye===null?null:fo(ye)}getParentOrThrow(){let ye=this.getParent();return ye===null&&Qe(66,this.__key),ye}getTopLevelElement(){let ye=this;for(;ye!==null;){let Ne=ye.getParent();if(Vn(Ne))return an(ye)||Qe(138),ye;ye=Ne}return null}getTopLevelElementOrThrow(){let ye=this.getTopLevelElement();return ye===null&&Qe(67,this.__key),ye}getParents(){let ye=[],Ne=this.getParent();for(;Ne!==null;)ye.push(Ne),Ne=Ne.getParent();return ye}getParentKeys(){let ye=[],Ne=this.getParent();for(;Ne!==null;)ye.push(Ne.__key),Ne=Ne.getParent();return ye}getPreviousSibling(){let ye=this.getLatest().__prev;return ye===null?null:fo(ye)}getPreviousSiblings(){let ye=[];var Ne=this.getParent();if(Ne===null)return ye;for(Ne=Ne.getFirstChild();Ne!==null&&!Ne.is(this);)ye.push(Ne),Ne=Ne.getNextSibling();return ye}getNextSibling(){let ye=this.getLatest().__next;return ye===null?null:fo(ye)}getNextSiblings(){let ye=[],Ne=this.getNextSibling();for(;Ne!==null;)ye.push(Ne),Ne=Ne.getNextSibling();return ye}getCommonAncestor(ye){let Ne=this.getParents();var Ye=ye.getParents();an(this)&&Ne.unshift(this),an(ye)&&Ye.unshift(ye),ye=Ne.length;var st=Ye.length;if(ye===0||st===0||Ne[ye-1]!==Ye[st-1])return null;for(Ye=new Set(Ye),st=0;st{Bt.append($n)})),Wo(Ye)&&(di(Ye),Ne=Ye.anchor,Ye=Ye.focus,Ne.key===ft&&eu(Ne,Bt),Ye.key===ft&&eu(Ye,Bt)),zo()===ft&&ao(vt),Bt}insertAfter(ye,Ne=!0){Ha(),so(this,ye);var Ye=this.getWritable();let st=ye.getWritable();var ft=st.getParent();let vt=Co();var Bt=!1,er=!1;if(ft!==null){var br=ye.getIndexWithinParent();xn(st),Wo(vt)&&(er=ft.__key,Bt=vt.anchor,ft=vt.focus,Bt=Bt.type==="element"&&Bt.key===er&&Bt.offset===br+1,er=ft.type==="element"&&ft.key===er&&ft.offset===br+1)}ft=this.getNextSibling(),br=this.getParentOrThrow().getWritable();let dn=st.__key,yn=Ye.__next;return ft===null?br.__last=dn:ft.getWritable().__prev=dn,br.__size++,Ye.__next=dn,st.__next=yn,st.__prev=Ye.__key,st.__parent=Ye.__parent,Ne&&Wo(vt)&&(Ne=this.getIndexWithinParent(),Vl(vt,br,Ne+1),Ye=br.__key,Bt&&vt.anchor.set(Ye,Ne+2,"element"),er&&vt.focus.set(Ye,Ne+2,"element")),ye}insertBefore(ye,Ne=!0){Ha(),so(this,ye);var Ye=this.getWritable();let st=ye.getWritable(),ft=st.__key;xn(st);let vt=this.getPreviousSibling(),Bt=this.getParentOrThrow().getWritable(),er=Ye.__prev,br=this.getIndexWithinParent();return vt===null?Bt.__first=ft:vt.getWritable().__next=ft,Bt.__size++,Ye.__prev=ft,st.__prev=er,st.__next=Ye.__key,st.__parent=Ye.__parent,Ye=Co(),Ne&&Wo(Ye)&&(Ne=this.getParentOrThrow(),Vl(Ye,Ne,br)),ye}isParentRequired(){return!1}createParentElementNode(){return xi()}selectStart(){return this.selectPrevious()}selectEnd(){return this.selectNext(0,0)}selectPrevious(ye,Ne){Ha();let Ye=this.getPreviousSibling(),st=this.getParentOrThrow();return Ye===null?st.select(0,0):an(Ye)?Ye.select():Jn(Ye)?Ye.select(ye,Ne):(ye=Ye.getIndexWithinParent()+1,st.select(ye,ye))}selectNext(ye,Ne){Ha();let Ye=this.getNextSibling(),st=this.getParentOrThrow();return Ye===null?st.select():an(Ye)?Ye.select(0,0):Jn(Ye)?Ye.select(ye,Ne):(ye=Ye.getIndexWithinParent(),st.select(ye,ye))}markDirty(){this.getWritable()}}function gl(Le,ye,Ne){Ne=Ne||ye.getParentOrThrow().getLastChild();let Ye=ye;for(ye=[ye];Ye!==Ne;)Ye.getNextSibling()||Qe(140),Ye=Ye.getNextSibling(),ye.push(Ye);for(let st of ye)Le=Le.insertAfter(st)}class kl extends gi{static getType(){return"linebreak"}static clone(ye){return new kl(ye.__key)}constructor(ye){super(ye)}getTextContent(){return` -`}createDOM(){return document.createElement("br")}updateDOM(){return!1}static importDOM(){return{br:ye=>{e:{var Ne=ye.parentElement;if(Ne!==null){let Ye=Ne.firstChild;if((Ye===ye||Ye.nextSibling===ye&&kc(Ye))&&(Ne=Ne.lastChild,Ne===ye||Ne.previousSibling===ye&&kc(Ne))){ye=!0;break e}}ye=!1}return ye?null:{conversion:yu,priority:0}}}}static importJSON(){return Ri()}exportJSON(){return{type:"linebreak",version:1}}}function yu(){return{node:Ri()}}function Ri(){return Nn(new kl)}function ya(Le){return Le instanceof kl}function kc(Le){return Le.nodeType===3&&/^( |\t|\r?\n)+$/.test(Le.textContent||"")}function _u(Le,ye){return ye&16?"code":ye&128?"mark":ye&32?"sub":ye&64?"sup":null}function Ic(Le,ye){return ye&1?"strong":ye&2?"em":"span"}function wf(Le,ye,Ne,Ye,st){Le=Ye.classList,Ye=Rt(st,"base"),Ye!==void 0&&Le.add(...Ye),Ye=Rt(st,"underlineStrikethrough");let ft=!1,vt=ye&8&&ye&4;var Bt=Ne&8&&Ne&4;Ye!==void 0&&(Bt?(ft=!0,vt||Le.add(...Ye)):vt&&Le.remove(...Ye));for(let er in wr)Bt=wr[er],Ye=Rt(st,er),Ye!==void 0&&(Ne&Bt?!ft||er!=="underline"&&er!=="strikethrough"?(!(ye&Bt)||vt&&er==="underline"||er==="strikethrough")&&Le.add(...Ye):ye&Bt&&Le.remove(...Ye):ye&Bt&&Le.remove(...Ye))}function Nc(Le,ye,Ne){let Ye=ye.firstChild;if(Ne=Ne.isComposing(),Le+=Ne?Ht:"",Ye==null)ye.textContent=Le;else if(ye=Ye.nodeValue,ye!==Le)if(Ne||$t){Ne=ye.length;let st=Le.length,ft=0,vt=0;for(;ft({conversion:Fn,priority:0}),b:()=>({conversion:lc,priority:0}),code:()=>({conversion:bu,priority:0}),em:()=>({conversion:bu,priority:0}),i:()=>({conversion:bu,priority:0}),s:()=>({conversion:bu,priority:0}),span:()=>({conversion:xd,priority:0}),strong:()=>({conversion:bu,priority:0}),sub:()=>({conversion:bu,priority:0}),sup:()=>({conversion:bu,priority:0}),u:()=>({conversion:bu,priority:0})}}static importJSON(ye){let Ne=ys(ye.text);return Ne.setFormat(ye.format),Ne.setDetail(ye.detail),Ne.setMode(ye.mode),Ne.setStyle(ye.style),Ne}exportDOM(ye){return{element:ye}=super.exportDOM(ye),ye!==null&&ks(ye)||Qe(132),ye.style.whiteSpace="pre-wrap",this.hasFormat("bold")&&(ye=rd(ye,"b")),this.hasFormat("italic")&&(ye=rd(ye,"i")),this.hasFormat("strikethrough")&&(ye=rd(ye,"s")),this.hasFormat("underline")&&(ye=rd(ye,"u")),{element:ye}}exportJSON(){return{detail:this.getDetail(),format:this.getFormat(),mode:this.getMode(),style:this.getStyle(),text:this.getTextContent(),type:"text",version:1}}selectionTransform(){}setFormat(ye){let Ne=this.getWritable();return Ne.__format=typeof ye=="string"?wr[ye]:ye,Ne}setDetail(ye){let Ne=this.getWritable();return Ne.__detail=typeof ye=="string"?xr[ye]:ye,Ne}setStyle(ye){let Ne=this.getWritable();return Ne.__style=ye,Ne}toggleFormat(ye){let Ne=this.getFormat();return ye=Fo(Ne,ye,null),this.setFormat(ye)}toggleDirectionless(){let ye=this.getWritable();return ye.__detail^=1,ye}toggleUnmergeable(){let ye=this.getWritable();return ye.__detail^=2,ye}setMode(ye){if(ye=Bn[ye],this.__mode===ye)return this;let Ne=this.getWritable();return Ne.__mode=ye,Ne}setTextContent(ye){if(this.__text===ye)return this;let Ne=this.getWritable();return Ne.__text=ye,Ne}select(ye,Ne){Ha();let Ye=Co();var st=this.getTextContent();let ft=this.__key;if(typeof st=="string"?(st=st.length,ye===void 0&&(ye=st),Ne===void 0&&(Ne=st)):Ne=ye=0,Wo(Ye))st=zo(),st!==Ye.anchor.key&&st!==Ye.focus.key||ao(ft),Ye.setTextNodeRange(this,ye,this,Ne);else return Rf(ft,ye,ft,Ne,"text","text");return Ye}selectStart(){return this.select(0,0)}selectEnd(){let ye=this.getTextContentSize();return this.select(ye,ye)}spliceText(ye,Ne,Ye,st){let ft=this.getWritable(),vt=ft.__text,Bt=Ye.length,er=ye;0>er&&(er=Bt+er,0>er&&(er=0));let br=Co();return st&&Wo(br)&&(ye+=Bt,br.setTextNodeRange(ft,ye,ft,ye)),Ne=vt.slice(0,er)+Ye+vt.slice(er+Ne),ft.__text=Ne,ft}canInsertTextBefore(){return!0}canInsertTextAfter(){return!0}splitText(...ye){Ha();var Ne=this.getLatest(),Ye=Ne.getTextContent(),st=Ne.__key,ft=zo(),vt=new Set(ye);ye=[];for(var Bt=Ye.length,er="",br=0;brdn&&Po.offset<=$n&&(Po.key=Vo,Po.offset-=dn,Ne.dirty=!0),Xi.key===st&&Xi.type==="text"&&Xi.offset>dn&&Xi.offset<=$n&&(Xi.key=Vo,Xi.offset-=dn,Ne.dirty=!0)}ft===st&&ao(Vo),dn=$n,er.push(Pr)}return st=this.getPreviousSibling(),ft=this.getNextSibling(),st!==null&&Ko(st),ft!==null&&Ko(ft),st=Ye.getWritable(),ft=this.getIndexWithinParent(),Bt?(st.splice(ft,0,er),this.remove()):st.splice(ft,1,er),Wo(Ne)&&Vl(Ne,Ye,ft,vt-1),er}mergeWithSibling(ye){var Ne=ye===this.getPreviousSibling();Ne||ye===this.getNextSibling()||Qe(50);var Ye=this.__key;let st=ye.__key,ft=this.__text,vt=ft.length;zo()===st&&ao(Ye);let Bt=Co();if(Wo(Bt)){let er=Bt.anchor,br=Bt.focus;er!==null&&er.key===st&&(Of(er,Ne,Ye,ye,vt),Bt.dirty=!0),br!==null&&br.key===st&&(Of(br,Ne,Ye,ye,vt),Bt.dirty=!0)}return Ye=ye.__text,this.setTextContent(Ne?Ye+ft:ft+Ye),Ne=this.getWritable(),ye.remove(),Ne}isTextEntity(){return!1}}function xd(Le){let ye=Le.style.fontWeight==="700",Ne=Le.style.textDecoration==="line-through",Ye=Le.style.fontStyle==="italic",st=Le.style.textDecoration==="underline",ft=Le.style.verticalAlign;return{forChild:vt=>(Jn(vt)&&(ye&&vt.toggleFormat("bold"),Ne&&vt.toggleFormat("strikethrough"),Ye&&vt.toggleFormat("italic"),st&&vt.toggleFormat("underline"),ft==="sub"&&vt.toggleFormat("subscript"),ft==="super"&&vt.toggleFormat("superscript")),vt),node:null}}function lc(Le){let ye=Le.style.fontWeight==="normal";return{forChild:Ne=>(Jn(Ne)&&!ye&&Ne.toggleFormat("bold"),Ne),node:null}}let Sd=new WeakMap;function Fn(Le){Le.parentElement===null&&Qe(129);for(var ye=Le.textContent||"",Ne,Ye=Le.parentNode,st=[Le];Ye!==null&&(Ne=Sd.get(Ye))===void 0&&!(Ye.nodeName==="PRE"||Ye.nodeType===1&&Ye.style!==void 0&&Ye.style.whiteSpace!==void 0&&Ye.style.whiteSpace.startsWith("pre"));)st.push(Ye),Ye=Ye.parentNode;for(Ne=Ne===void 0?Ye:Ne,Ye=0;Ye(Jn(Ne)&&!Ne.hasFormat(ye)&&Ne.toggleFormat(ye),Ne),node:null}}function ys(Le=""){return Nn(new Wu(Le))}function Jn(Le){return Le instanceof Wu}class Eu extends Wu{static getType(){return"tab"}static clone(ye){let Ne=new Eu(ye.__key);return Ne.__text=ye.__text,Ne.__format=ye.__format,Ne.__style=ye.__style,Ne}constructor(ye){super(" ",ye),this.__detail=2}static importDOM(){return null}static importJSON(ye){let Ne=Dc();return Ne.setFormat(ye.format),Ne.setStyle(ye.style),Ne}exportJSON(){return{...super.exportJSON(),type:"tab",version:1}}setTextContent(){Qe(126)}setDetail(){Qe(127)}setMode(){Qe(128)}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}}function Dc(){return Nn(new Eu)}function ll(Le){return Le instanceof Eu}class Ia{constructor(ye,Ne,Ye){this._selection=null,this.key=ye,this.offset=Ne,this.type=Ye}is(ye){return this.key===ye.key&&this.offset===ye.offset&&this.type===ye.type}isBefore(ye){let Ne=this.getNode(),Ye=ye.getNode(),st=this.offset;if(ye=ye.offset,an(Ne)){var ft=Ne.getDescendantByIndex(st);Ne=ft??Ne}return an(Ye)&&(ft=Ye.getDescendantByIndex(ye),Ye=ft??Ye),Ne===Ye?stye&&(Ye=ye);else if(!an(ye)){var ft=ye.getNextSibling();Jn(ft)?(Ne=ft.__key,Ye=0,st="text"):(ft=ye.getParent())&&(Ne=ft.__key,Ye=ye.getIndexWithinParent()+1)}Le.set(Ne,Ye,st)}function eu(Le,ye){if(an(ye)){let Ne=ye.getLastDescendant();an(Ne)||Jn(Ne)?ls(Le,Ne):ls(Le,ye)}else ls(Le,ye)}function Mc(Le,ye,Ne,Ye){let st=Le.getNode(),ft=st.getChildAtIndex(Le.offset),vt=ys(),Bt=Bs(st)?xi().append(vt):vt;vt.setFormat(Ne),vt.setStyle(Ye),ft===null?st.append(Bt):ft.insertBefore(Bt),Le.is(ye)&&ye.set(vt.__key,0,"text"),Le.set(vt.__key,0,"text")}function Gl(Le,ye,Ne,Ye){Le.key=ye,Le.offset=Ne,Le.type=Ye}class xu{constructor(ye){this._cachedNodes=null,this._nodes=ye,this.dirty=!1}getCachedNodes(){return this._cachedNodes}setCachedNodes(ye){this._cachedNodes=ye}is(ye){if(!Il(ye))return!1;let Ne=this._nodes,Ye=ye._nodes;return Ne.size===Ye.size&&Array.from(Ne).every(st=>Ye.has(st))}isCollapsed(){return!1}isBackward(){return!1}getStartEndPoints(){return null}add(ye){this.dirty=!0,this._nodes.add(ye),this._cachedNodes=null}delete(ye){this.dirty=!0,this._nodes.delete(ye),this._cachedNodes=null}clear(){this.dirty=!0,this._nodes.clear(),this._cachedNodes=null}has(ye){return this._nodes.has(ye)}clone(){return new xu(new Set(this._nodes))}extract(){return this.getNodes()}insertRawText(){}insertText(){}insertNodes(ye){let Ne=this.getNodes(),Ye=Ne.length;var st=Ne[Ye-1];if(Jn(st))st=st.select();else{let ft=st.getIndexWithinParent()+1;st=st.getParentOrThrow().select(ft,ft)}for(st.insertNodes(ye),ye=0;ye(an(Bt)||Fi(Bt))&&!Bt.isInline())){Ne=Fr(ye),ye=Ne.getLastDescendant();var ft=Ne.getChildren();Ne=an(Ye)&&Ye.isEmpty()?null:this.insertParagraph(),st=ft[ft.length-1];var vt=ft[0];(Bt=>an(Bt)&&Li(Bt)&&!Bt.isEmpty()&&an(Ye)&&(!Ye.isEmpty()||"__value"in Ye&&"__checked"in Ye))(vt)&&(an(Ye)||Qe(135),Ye.append(...vt.getChildren()),vt=ft[1]),vt&&gl(Ye,vt),ft=hl(ye,Li),Ne&&an(ft)&&("__value"in Ne&&"__checked"in Ne||Li(st))&&(ft.append(...Ne.getChildren()),Ne.remove()),an(Ye)&&Ye.isEmpty()&&Ye.remove(),ye.selectEnd(),ye=an(Ye)?Ye.getLastChild():null,ya(ye)&&ft!==Ye&&ye.remove()}else an(Ye)||Qe(135),st=Zu(this),Ye.splice(st,0,ye),Ne.selectEnd()}}insertParagraph(){if(this.anchor.key==="root"){var ye=xi();return Go().splice(this.anchor.offset,0,[ye]),ye.select(),ye}var Ne=Zu(this);return ye=hl(this.anchor.getNode(),Li),an(ye)||Qe(136),Ne=(Ne=ye.getChildAtIndex(Ne))?[Ne,...Ne.getNextSiblings()]:[],(ye=ye.insertNewAfter(this,!1))?(ye.append(...Ne),ye.selectStart(),ye):null}insertLineBreak(ye){var Ne=Ri();this.insertNodes([Ne]),ye&&(ye=Ne.getParentOrThrow(),Ne=Ne.getIndexWithinParent(),ye.select(Ne,Ne))}extract(){var ye=this.getNodes(),Ne=ye.length,Ye=Ne-1,st=this.anchor;let ft=this.focus;var vt=ye[0];let Bt=ye[Ye],[er,br]=tu(this);return Ne===0?[]:Ne===1?Jn(vt)&&!this.isCollapsed()?(ye=er>br?br:er,Ye=vt.splitText(ye,er>br?er:br),ye=ye===0?Ye[0]:Ye[1],ye!=null?[ye]:[]):[vt]:(Ne=st.isBefore(ft),Jn(vt)&&(st=Ne?er:br,st===vt.getTextContentSize()?ye.shift():st!==0&&([,vt]=vt.splitText(st),ye[0]=vt)),Jn(Bt)&&(vt=Bt.getTextContent().length,Ne=Ne?br:er,Ne===0?ye.pop():Ne!==vt&&([Bt]=Bt.splitText(Ne),ye[Ye]=Bt)),ye)}modify(ye,Ne,Ye){var st=this.focus,ft=this.anchor,vt=ye==="move",Bt=lr(st,Ne);if(Fi(Bt)&&!Bt.isIsolated())vt&&Bt.isKeyboardSelectable()?(Ne=Cu(),Ne.add(Bt.__key),di(Ne)):(ye=Ne?Bt.getPreviousSibling():Bt.getNextSibling(),Jn(ye)?(Bt=ye.__key,Ne=Ne?ye.getTextContent().length:0,st.set(Bt,Ne,"text"),vt&&ft.set(Bt,Ne,"text")):(Ye=Bt.getParentOrThrow(),an(ye)?(Ye=ye.__key,Bt=Ne?ye.getChildrenSize():0):(Bt=Bt.getIndexWithinParent(),Ye=Ye.__key,Ne||Bt++),st.set(Ye,Bt,"element"),vt&&ft.set(Ye,Bt,"element")));else if(ft=Ni(),st=mi(ft._window)){var er=ft._blockCursorElement,br=ft._rootElement;if(br===null||er===null||!an(Bt)||Bt.isInline()||Bt.canBeEmpty()||Ji(er,ft,br),st.modify(ye,Ne?"backward":"forward",Ye),0Ne||br){Ye.splice(Bt,1),br&&(vt=void 0);break}}ye=Ye.join("").trim(),ye===""?Le.remove():(Le.setTextContent(ye),Le.select(vt,vt))}function Td(Le,ye,Ne,Ye){var st=ye;if(Le.nodeType===1){let Bt=!1;var ft=Le.childNodes,vt=ft.length;st===vt&&(Bt=!0,st=vt-1);let er=ft[st];if(vt=!1,er===Ye._blockCursorElement?(er=ft[st+1],vt=!0):Ye._blockCursorElement!==null&&st--,Ye=Qi(er),Jn(Ye))st=Bt?Ye.getTextContentSize():0;else{if(ft=Qi(Le),ft===null)return null;if(an(ft)?(Le=ft.getChildAtIndex(st),(ye=an(Le))&&(ye=Le.getParent(),ye=Ne===null||ye===null||!ye.canBeEmpty()||ye!==Ne.getNode()),ye&&(Ne=Bt?Le.getLastDescendant():Le.getFirstDescendant(),Ne===null?(ft=Le,st=0):(Le=Ne,ft=an(Le)?Le:Le.getParentOrThrow())),Jn(Le)?(Ye=Le,ft=null,st=Bt?Le.getTextContentSize():0):Le!==ft&&Bt&&!vt&&st++):(st=ft.getIndexWithinParent(),st=ye===0&&Fi(ft)&&Qi(Le)===ft?st:st+1,ft=ft.getParentOrThrow()),an(ft))return Oi(ft.__key,st,"element")}}else Ye=Qi(Le);return Jn(Ye)?Oi(Ye.__key,st,"text"):null}function ad(Le,ye,Ne){var Ye=Le.offset,st=Le.getNode();Ye===0?(Ye=st.getPreviousSibling(),st=st.getParent(),ye?(Ne||!ye)&&Ye===null&&an(st)&&st.isInline()&&(ye=st.getPreviousSibling(),Jn(ye)&&(Le.key=ye.__key,Le.offset=ye.getTextContent().length)):an(Ye)&&!Ne&&Ye.isInline()?(Le.key=Ye.__key,Le.offset=Ye.getChildrenSize(),Le.type="element"):Jn(Ye)&&(Le.key=Ye.__key,Le.offset=Ye.getTextContent().length)):Ye===st.getTextContent().length&&(Ye=st.getNextSibling(),st=st.getParent(),ye&&an(Ye)&&Ye.isInline()?(Le.key=Ye.__key,Le.offset=0,Le.type="element"):(Ne||ye)&&Ye===null&&an(st)&&st.isInline()&&!st.canInsertTextAfter()&&(ye=st.getNextSibling(),Jn(ye)&&(Le.key=ye.__key,Le.offset=0)))}function Ps(Le,ye,Ne){if(Le.type==="text"&&ye.type==="text"){var Ye=Le.isBefore(ye);let st=Le.is(ye);ad(Le,Ye,st),ad(ye,!Ye,st),st&&(ye.key=Le.key,ye.offset=Le.offset,ye.type=Le.type),Ye=Ni(),Ye.isComposing()&&Ye._compositionKey!==Le.key&&Wo(Ne)&&(Ye=Ne.anchor,Ne=Ne.focus,Gl(Le,Ye.key,Ye.offset,Ye.type),Gl(ye,Ne.key,Ne.offset,Ne.type))}}function Tu(Le,ye,Ne,Ye,st,ft){return Le===null||Ne===null||!Gn(st,Le,Ne)||(ye=Td(Le,ye,Wo(ft)?ft.anchor:null,st),ye===null)||(Ye=Td(Ne,Ye,Wo(ft)?ft.focus:null,st),Ye===null||ye.type==="element"&&Ye.type==="element"&&(Le=Qi(Le),Ne=Qi(Ne),Fi(Le)&&Fi(Ne)))?null:(Ps(ye,Ye,ft),[ye,Ye])}function Rf(Le,ye,Ne,Ye,st,ft){let vt=Yi();return Le=new Su(Oi(Le,ye,st),Oi(Ne,Ye,ft),0,""),Le.dirty=!0,vt._selection=Le}function Cu(){return new xu(new Set)}function nf(Le){let ye=Le.getEditorState()._selection,Ne=mi(Le._window);return Wo(ye)||ye==null?Yu(ye,Ne,Le,null):ye.clone()}function Yu(Le,ye,Ne,Ye){var st=Ne._window;if(st===null)return null;var ft=(st=Ye||st.event)?st.type:void 0;Ye=ft==="selectionchange",st=!Tn&&(Ye||ft==="beforeinput"||ft==="compositionstart"||ft==="compositionend"||ft==="click"&&st&&st.detail===3||ft==="drop"||ft===void 0);let vt;if(!Wo(Le)||st){if(ye===null)return null;if(st=ye.anchorNode,ft=ye.focusNode,vt=ye.anchorOffset,ye=ye.focusOffset,Ye&&Wo(Le)&&!Gn(Ne,st,ft))return Le.clone()}else return Le.clone();if(Ne=Tu(st,vt,ft,ye,Ne,Le),Ne===null)return null;let[Bt,er]=Ne;return new Su(Bt,er,Wo(Le)?Le.format:0,Wo(Le)?Le.style:"")}function Co(){return Yi()._selection}function za(){return Ni()._editorState._selection}function Vl(Le,ye,Ne,Ye=1){var st=Le.anchor,ft=Le.focus,vt=st.getNode(),Bt=ft.getNode();if(ye.is(vt)||ye.is(Bt)){if(vt=ye.__key,Le.isCollapsed())ye=st.offset,(Ne<=ye&&0Ye)&&(Ne=Math.max(0,ye+Ye),st.set(vt,Ne,"element"),ft.set(vt,Ne,"element"),Xu(Le));else{let br=Le.isBackward();Bt=br?ft:st;var er=Bt.getNode();st=br?st:ft,ft=st.getNode(),ye.is(er)&&(er=Bt.offset,(Ne<=er&&0Ye)&&Bt.set(vt,Math.max(0,er+Ye),"element")),ye.is(ft)&&(ye=st.offset,(Ne<=ye&&0Ye)&&st.set(vt,Math.max(0,ye+Ye),"element"))}Xu(Le)}}function Xu(Le){var ye=Le.anchor,Ne=ye.offset;let Ye=Le.focus;var st=Ye.offset,ft=ye.getNode(),vt=Ye.getNode();if(Le.isCollapsed())an(ft)&&(vt=ft.getChildrenSize(),vt=(st=Ne>=vt)?ft.getChildAtIndex(vt-1):ft.getChildAtIndex(Ne),Jn(vt)&&(Ne=0,st&&(Ne=vt.getTextContentSize()),ye.set(vt.__key,Ne,"text"),Ye.set(vt.__key,Ne,"text")));else{if(an(ft)){let Bt=ft.getChildrenSize();Ne=(Le=Ne>=Bt)?ft.getChildAtIndex(Bt-1):ft.getChildAtIndex(Ne),Jn(Ne)&&(ft=0,Le&&(ft=Ne.getTextContentSize()),ye.set(Ne.__key,ft,"text"))}an(vt)&&(Ne=vt.getChildrenSize(),st=(ye=st>=Ne)?vt.getChildAtIndex(Ne-1):vt.getChildAtIndex(st),Jn(st)&&(vt=0,ye&&(vt=st.getTextContentSize()),Ye.set(st.__key,vt,"text")))}}function ul(Le,ye){if(ye=ye.getEditorState()._selection,Le=Le._selection,Wo(Le)){var Ne=Le.anchor;let Ye=Le.focus,st;Ne.type==="text"&&(st=Ne.getNode(),st.selectionTransform(ye,Le)),Ye.type==="text"&&(Ne=Ye.getNode(),st!==Ne&&Ne.selectionTransform(ye,Le))}}function Lc(Le,ye,Ne,Ye,st){let ft=null,vt=0,Bt=null;Ye!==null?(ft=Ye.__key,Jn(Ye)?(vt=Ye.getTextContentSize(),Bt="text"):an(Ye)&&(vt=Ye.getChildrenSize(),Bt="element")):st!==null&&(ft=st.__key,Jn(st)?Bt="text":an(st)&&(Bt="element")),ft!==null&&Bt!==null?Le.set(ft,vt,Bt):(vt=ye.getIndexWithinParent(),vt===-1&&(vt=Ne.getChildrenSize()),Le.set(Ne.__key,vt,"element"))}function Of(Le,ye,Ne,Ye,st){Le.type==="text"?(Le.key=Ne,ye||(Le.offset+=st)):Le.offset>Ye.getIndexWithinParent()&&--Le.offset}function Zu(Le){Le.isCollapsed()||Le.removeText();var ye=Le.anchor;for(Le=ye.getNode(),ye=ye.offset;!Li(Le);)[Le,ye]=gr(Le,ye);return ye}function gr(Le,ye){var Ne=Le.getParent();if(!Ne)return Ne=xi(),Go().append(Ne),Ne.select(),[Go(),0];if(Jn(Le)){var Ye=Le.splitText(ye);return Ye.length===0?[Ne,Le.getIndexWithinParent()]:(Le=ye===0?0:1,Le=Ye[0].getIndexWithinParent()+Le,[Ne,Le])}return!an(Le)||ye===0?[Ne,Le.getIndexWithinParent()]:((Ye=Le.getChildAtIndex(ye))&&(ye=new Su(Oi(Le.__key,ye,"element"),Oi(Le.__key,ye,"element"),0,""),(ye=Le.insertNewAfter(ye))&&ye.append(Ye,...Ye.getNextSiblings())),[Ne,Le.getIndexWithinParent()+1])}function Fr(Le){let ye=xi(),Ne=null;for(let Ye=0;YeRu&&(Ll=Es-Ru),Ll!==0)if(Bi)Hi.scrollBy(0,Ll);else{let su=Qa.scrollTop;Qa.scrollTop+=Ll;let Pl=Qa.scrollTop-su;Ga-=Pl,Es-=Pl}if(Bi)break;Qa=un(Qa)}}}wi=!0}}else vt!==null&&Gn(Le,Da,Di)&&Ot.removeAllRanges()}}e:{let zi=Le._blockCursorElement;if(Wo(Bt)&&Bt.isCollapsed()&&Bt.anchor.type==="element"&&Ye.contains(document.activeElement)){let Da=Bt.anchor,Di=Da.getNode(),Xo=Da.offset,Rn=Di.getChildrenSize(),Va=!1,sa=null;if(Xo===Rn){let Ea=Di.getChildAtIndex(Xo-1);Ei(Ea)&&(Va=!0)}else{let Ea=Di.getChildAtIndex(Xo);if(Ei(Ea)){let Hs=Ea.getPreviousSibling();(Hs===null||Ei(Hs))&&(Va=!0,sa=Le.getElementByKey(Ea.__key))}}if(Va){let Ea=Le.getElementByKey(Di.__key);if(zi===null){let Hs=Le._config.theme,Hi=document.createElement("div");Hi.contentEditable="false",Hi.setAttribute("data-lexical-cursor","true");let Bi=Hs.blockCursor;if(Bi!==void 0){if(typeof Bi=="string"){let Ll=Bi.split(" ");Bi=Hs.blockCursor=Ll}Bi!==void 0&&Hi.classList.add(...Bi)}Le._blockCursorElement=zi=Hi}Ye.style.caretColor="transparent",sa===null?Ea.appendChild(zi):Ea.insertBefore(zi,sa);break e}}zi!==null&&Ji(zi,Le,Ye)}Pr!==null&&Pr.observe(Ye,Ii)}finally{vn=yn,_r=br}}if($n!==null){var If=$n;let zi=Array.from(Le._listeners.mutation),Da=zi.length;for(let Di=0;Di{ft=On(Le,ye,Ne)}),ft}let Ye=gs(Le);for(let ft=4;0<=ft;ft--)for(let vt=0;vt{ql(Le)}):(vt._flushSync=!1,Bt&&(Ye.clear(),Le._deferred=[],Le._pendingEditorState=null))}function ml(Le,ye,Ne){Le._updating?Le._updates.push([ye,Ne]):us(Le,ye,Ne)}class ec extends gi{constructor(ye){super(ye)}decorate(){Qe(47)}isIsolated(){return!1}isInline(){return!0}isKeyboardSelectable(){return!0}}function Fi(Le){return Le instanceof ec}class Pc extends gi{constructor(ye){super(ye),this.__last=this.__first=null,this.__indent=this.__format=this.__size=0,this.__dir=null}getFormat(){return this.getLatest().__format}getFormatType(){let ye=this.getFormat();return bn[ye]||""}getIndent(){return this.getLatest().__indent}getChildren(){let ye=[],Ne=this.getFirstChild();for(;Ne!==null;)ye.push(Ne),Ne=Ne.getNextSibling();return ye}getChildrenKeys(){let ye=[],Ne=this.getFirstChild();for(;Ne!==null;)ye.push(Ne.__key),Ne=Ne.getNextSibling();return ye}getChildrenSize(){return this.getLatest().__size}isEmpty(){return this.getChildrenSize()===0}isDirty(){let ye=Ni()._dirtyElements;return ye!==null&&ye.has(this.__key)}isLastChild(){let ye=this.getLatest(),Ne=this.getParentOrThrow().getLastChild();return Ne!==null&&Ne.is(ye)}getAllTextNodes(){let ye=[],Ne=this.getFirstChild();for(;Ne!==null;){if(Jn(Ne)&&ye.push(Ne),an(Ne)){let Ye=Ne.getAllTextNodes();ye.push(...Ye)}Ne=Ne.getNextSibling()}return ye}getFirstDescendant(){let ye=this.getFirstChild();for(;ye!==null;){if(an(ye)){let Ne=ye.getFirstChild();if(Ne!==null){ye=Ne;continue}}break}return ye}getLastDescendant(){let ye=this.getLastChild();for(;ye!==null;){if(an(ye)){let Ne=ye.getLastChild();if(Ne!==null){ye=Ne;continue}}break}return ye}getDescendantByIndex(ye){let Ne=this.getChildren(),Ye=Ne.length;return ye>=Ye?(ye=Ne[Ye-1],an(ye)&&ye.getLastDescendant()||ye||null):(ye=Ne[ye],an(ye)&&ye.getFirstDescendant()||ye||null)}getFirstChild(){let ye=this.getLatest().__first;return ye===null?null:fo(ye)}getFirstChildOrThrow(){let ye=this.getFirstChild();return ye===null&&Qe(45,this.__key),ye}getLastChild(){let ye=this.getLatest().__last;return ye===null?null:fo(ye)}getLastChildOrThrow(){let ye=this.getLastChild();return ye===null&&Qe(96,this.__key),ye}getChildAtIndex(ye){var Ne=this.getChildrenSize();let Ye;if(ye=ye;){if(Ne===ye)return Ye;Ye=Ye.getPreviousSibling(),Ne--}return null}getTextContent(){let ye="",Ne=this.getChildren(),Ye=Ne.length;for(let st=0;stNe.remove()),ye}append(...ye){return this.splice(this.getChildrenSize(),0,ye)}setDirection(ye){let Ne=this.getWritable();return Ne.__dir=ye,Ne}setFormat(ye){return this.getWritable().__format=ye!==""?Vr[ye]:0,this}setIndent(ye){return this.getWritable().__indent=ye,this}splice(ye,Ne,Ye){let st=Ye.length,ft=this.getChildrenSize(),vt=this.getWritable(),Bt=vt.__key;var er=[],br=[];let dn=this.getChildAtIndex(ye+Ne),yn=null,Wr=ft-Ne+st;if(ye!==0)if(ye===ft)yn=this.getLastChild();else{var Pr=this.getChildAtIndex(ye);Pr!==null&&(yn=Pr.getPreviousSibling())}if(0({root:cl(Go())}))}}class Nl extends Pc{static getType(){return"paragraph"}static clone(ye){return new Nl(ye.__key)}createDOM(ye){let Ne=document.createElement("p");return ye=Rt(ye.theme,"paragraph"),ye!==void 0&&Ne.classList.add(...ye),Ne}updateDOM(){return!1}static importDOM(){return{p:()=>({conversion:kf,priority:0})}}exportDOM(ye){if({element:ye}=super.exportDOM(ye),ye&&ks(ye)){this.isEmpty()&&ye.append(document.createElement("br"));var Ne=this.getFormatType();ye.style.textAlign=Ne,(Ne=this.getDirection())&&(ye.dir=Ne),Ne=this.getIndent(),0{Object.keys(ft).forEach(vt=>{let Bt=Ne.get(vt);Bt===void 0&&(Bt=[],Ne.set(vt,Bt)),Bt.push(ft[vt])})};return Le.forEach(ft=>{ft=ft.klass.importDOM!=null?ft.klass.importDOM.bind(ft.klass):null,ft==null||Ye.has(ft)||(Ye.add(ft),ft=ft(),ft!==null&&st(ft))}),ye&&st(ye),Ne}class yl{constructor(ye,Ne,Ye,st,ft,vt,Bt){this._parentEditor=Ne,this._rootElement=null,this._editorState=ye,this._compositionKey=this._pendingEditorState=null,this._deferred=[],this._keyToDOMMap=new Map,this._updates=[],this._updating=!1,this._listeners={decorator:new Set,editable:new Set,mutation:new Map,root:new Set,textcontent:new Set,update:new Set},this._commands=new Map,this._config=st,this._nodes=Ye,this._decorators={},this._pendingDecorators=null,this._dirtyType=0,this._cloneNotNeeded=new Set,this._dirtyLeaves=new Set,this._dirtyElements=new Map,this._normalizedNodes=new Set,this._updateTags=new Set,this._observer=null,this._key=Dt(),this._onError=ft,this._htmlConversions=vt,this._editable=Bt,this._headless=Ne!==null&&Ne._headless,this._blockCursorElement=this._window=null}isComposing(){return this._compositionKey!=null}registerUpdateListener(ye){let Ne=this._listeners.update;return Ne.add(ye),()=>{Ne.delete(ye)}}registerEditableListener(ye){let Ne=this._listeners.editable;return Ne.add(ye),()=>{Ne.delete(ye)}}registerDecoratorListener(ye){let Ne=this._listeners.decorator;return Ne.add(ye),()=>{Ne.delete(ye)}}registerTextContentListener(ye){let Ne=this._listeners.textcontent;return Ne.add(ye),()=>{Ne.delete(ye)}}registerRootListener(ye){let Ne=this._listeners.root;return ye(this._rootElement,null),Ne.add(ye),()=>{ye(null,this._rootElement),Ne.delete(ye)}}registerCommand(ye,Ne,Ye){Ye===void 0&&Qe(35);let st=this._commands;st.has(ye)||st.set(ye,[new Set,new Set,new Set,new Set,new Set]);let ft=st.get(ye);ft===void 0&&Qe(36,String(ye));let vt=ft[Ye];return vt.add(Ne),()=>{vt.delete(Ne),ft.every(Bt=>Bt.size===0)&&st.delete(ye)}}registerMutationListener(ye,Ne){this._nodes.get(ye.getType())===void 0&&Qe(37,ye.name);let Ye=this._listeners.mutation;return Ye.set(Ne,ye),()=>{Ye.delete(Ne)}}registerNodeTransformToKlass(ye,Ne){var Ye=ye.getType();return Ye=this._nodes.get(Ye),Ye===void 0&&Qe(37,ye.name),Ye.transforms.add(Ne),Ye}registerNodeTransform(ye,Ne){var Ye=this.registerNodeTransformToKlass(ye,Ne);let st=[Ye];return Ye=Ye.replaceWithKlass,Ye!=null&&(Ye=this.registerNodeTransformToKlass(Ye,Ne),st.push(Ye)),ca(this,ye.getType()),()=>{st.forEach(ft=>ft.transforms.delete(Ne))}}hasNode(ye){return this._nodes.has(ye.getType())}hasNodes(ye){return ye.every(this.hasNode.bind(this))}dispatchCommand(ye,Ne){return On(this,ye,Ne)}getDecorators(){return this._decorators}getRootElement(){return this._rootElement}getKey(){return this._key}setRootElement(ye){let Ne=this._rootElement;if(ye!==Ne){let vt=Rt(this._config.theme,"root");var Ye=this._pendingEditorState||this._editorState;if(this._rootElement=ye,$u(this,Ne,ye,Ye),Ne!==null){if(!this._config.disableEvents){ai!==0&&(ai--,ai===0&&Ne.ownerDocument.removeEventListener("selectionchange",Wi));var st=Ne.__lexicalEditor;if(st!=null){if(st._parentEditor!==null){var ft=gs(st);ft=ft[ft.length-1]._key,Uo.get(ft)===st&&Uo.delete(ft)}else Uo.delete(st._key);Ne.__lexicalEditor=null}for(st=Pi(Ne),ft=0;ft{let st=Co(),ft=Go();st!==null?st.dirty=!0:ft.getChildrenSize()!==0&&(Ne.defaultSelection==="rootStart"?ft.selectStart():ft.selectEnd())},{onUpdate:()=>{Ye.removeAttribute("autocapitalize"),ye&&ye()},tag:"focus"}),this._pendingEditorState===null&&Ye.removeAttribute("autocapitalize"))}blur(){var ye=this._rootElement;ye!==null&&ye.blur(),ye=mi(this._window),ye!==null&&ye.removeAllRanges()}isEditable(){return this._editable}setEditable(ye){this._editable!==ye&&(this._editable=ye,Ju("editable",this,!0,ye))}toJSON(){return{editorState:this._editorState.toJSON()}}}return Lexical_prod.$addUpdateTag=function(Le){Ha(),Ni()._updateTags.add(Le)},Lexical_prod.$applyNodeReplacement=Nn,Lexical_prod.$copyNode=Ro,Lexical_prod.$createLineBreakNode=Ri,Lexical_prod.$createNodeSelection=Cu,Lexical_prod.$createParagraphNode=xi,Lexical_prod.$createPoint=Oi,Lexical_prod.$createRangeSelection=function(){let Le=Oi("root",0,"element"),ye=Oi("root",0,"element");return new Su(Le,ye,0,"")},Lexical_prod.$createTabNode=Dc,Lexical_prod.$createTextNode=ys,Lexical_prod.$getAdjacentNode=lr,Lexical_prod.$getCharacterOffsets=tu,Lexical_prod.$getEditor=function(){return Ni()},Lexical_prod.$getNearestNodeFromDOMNode=wn,Lexical_prod.$getNearestRootOrShadowRoot=xo,Lexical_prod.$getNodeByKey=fo,Lexical_prod.$getPreviousSelection=za,Lexical_prod.$getRoot=Go,Lexical_prod.$getSelection=Co,Lexical_prod.$getTextContent=function(){let Le=Co();return Le===null?"":Le.getTextContent()},Lexical_prod.$hasAncestor=po,Lexical_prod.$hasUpdateTag=function(Le){return Ni()._updateTags.has(Le)},Lexical_prod.$insertNodes=function(Le){let ye=Co()||za();ye===null&&(ye=Go().selectEnd()),ye.insertNodes(Le)},Lexical_prod.$isBlockElementNode=function(Le){return an(Le)&&!Le.isInline()},Lexical_prod.$isDecoratorNode=Fi,Lexical_prod.$isElementNode=an,Lexical_prod.$isInlineElementOrDecoratorNode=function(Le){return an(Le)&&Le.isInline()||Fi(Le)&&Le.isInline()},Lexical_prod.$isLeafNode=function(Le){return Jn(Le)||ya(Le)||Fi(Le)},Lexical_prod.$isLineBreakNode=ya,Lexical_prod.$isNodeSelection=Il,Lexical_prod.$isParagraphNode=function(Le){return Le instanceof Nl},Lexical_prod.$isRangeSelection=Wo,Lexical_prod.$isRootNode=Bs,Lexical_prod.$isRootOrShadowRoot=Vn,Lexical_prod.$isTabNode=ll,Lexical_prod.$isTextNode=Jn,Lexical_prod.$nodesOfType=function(Le){var ye=Yi();let Ne=ye._readOnly,Ye=Le.getType();ye=ye._nodeMap;let st=[];for(let[,ft]of ye)ft instanceof Le&&ft.__type===Ye&&(Ne||ft.isAttached())&&st.push(ft);return st},Lexical_prod.$normalizeSelection__EXPERIMENTAL=fr,Lexical_prod.$parseSerializedNode=function(Le){return sd(Le,Ni()._nodes)},Lexical_prod.$selectAll=function(){var Le=Go();Le=Le.select(0,Le.getChildrenSize()),di(fr(Le))},Lexical_prod.$setCompositionKey=ao,Lexical_prod.$setSelection=di,Lexical_prod.$splitNode=function(Le,ye){let Ne=Le.getChildAtIndex(ye);Ne==null&&(Ne=Le),Vn(Le)&&Qe(102);let Ye=vt=>{const Bt=vt.getParentOrThrow(),er=Vn(Bt),br=vt!==Ne||er?Ro(vt):vt;if(er)return an(vt)&&an(br)||Qe(133),vt.insertAfter(br),[vt,br,br];const[dn,yn,Wr]=Ye(Bt);return vt=vt.getNextSiblings(),Wr.append(br,...vt),[dn,yn,br]},[st,ft]=Ye(Ne);return[st,ft]},Lexical_prod.BLUR_COMMAND=dt,Lexical_prod.CAN_REDO_COMMAND={},Lexical_prod.CAN_UNDO_COMMAND={},Lexical_prod.CLEAR_EDITOR_COMMAND={},Lexical_prod.CLEAR_HISTORY_COMMAND={},Lexical_prod.CLICK_COMMAND=C,Lexical_prod.COMMAND_PRIORITY_CRITICAL=4,Lexical_prod.COMMAND_PRIORITY_EDITOR=0,Lexical_prod.COMMAND_PRIORITY_HIGH=3,Lexical_prod.COMMAND_PRIORITY_LOW=1,Lexical_prod.COMMAND_PRIORITY_NORMAL=2,Lexical_prod.CONTROLLED_TEXT_INSERTION_COMMAND=N,Lexical_prod.COPY_COMMAND=ot,Lexical_prod.CUT_COMMAND=tt,Lexical_prod.DELETE_CHARACTER_COMMAND=R,Lexical_prod.DELETE_LINE_COMMAND=F,Lexical_prod.DELETE_WORD_COMMAND=j,Lexical_prod.DRAGEND_COMMAND=Xe,Lexical_prod.DRAGOVER_COMMAND=Je,Lexical_prod.DRAGSTART_COMMAND=Ke,Lexical_prod.DROP_COMMAND=je,Lexical_prod.DecoratorNode=ec,Lexical_prod.ElementNode=Pc,Lexical_prod.FOCUS_COMMAND=et,Lexical_prod.FORMAT_ELEMENT_COMMAND={},Lexical_prod.FORMAT_TEXT_COMMAND=V,Lexical_prod.INDENT_CONTENT_COMMAND={},Lexical_prod.INSERT_LINE_BREAK_COMMAND=O,Lexical_prod.INSERT_PARAGRAPH_COMMAND=I,Lexical_prod.INSERT_TAB_COMMAND={},Lexical_prod.KEY_ARROW_DOWN_COMMAND=Ae,Lexical_prod.KEY_ARROW_LEFT_COMMAND=pe,Lexical_prod.KEY_ARROW_RIGHT_COMMAND=J,Lexical_prod.KEY_ARROW_UP_COMMAND=xe,Lexical_prod.KEY_BACKSPACE_COMMAND=we,Lexical_prod.KEY_DELETE_COMMAND=Be,Lexical_prod.KEY_DOWN_COMMAND=X,Lexical_prod.KEY_ENTER_COMMAND=ge,Lexical_prod.KEY_ESCAPE_COMMAND=ke,Lexical_prod.KEY_MODIFIER_COMMAND=gt,Lexical_prod.KEY_SPACE_COMMAND=Te,Lexical_prod.KEY_TAB_COMMAND=Ie,Lexical_prod.LineBreakNode=kl,Lexical_prod.MOVE_TO_END=oe,Lexical_prod.MOVE_TO_START=me,Lexical_prod.OUTDENT_CONTENT_COMMAND={},Lexical_prod.PASTE_COMMAND=L,Lexical_prod.ParagraphNode=Nl,Lexical_prod.REDO_COMMAND=W,Lexical_prod.REMOVE_TEXT_COMMAND=B,Lexical_prod.RootNode=tc,Lexical_prod.SELECTION_CHANGE_COMMAND=S,Lexical_prod.SELECTION_INSERT_CLIPBOARD_NODES_COMMAND={},Lexical_prod.SELECT_ALL_COMMAND=Ue,Lexical_prod.TabNode=Eu,Lexical_prod.TextNode=Wu,Lexical_prod.UNDO_COMMAND=K,Lexical_prod.createCommand=function(){return{}},Lexical_prod.createEditor=function(Le){var ye=Le||{},Ne=vn,Ye=ye.theme||{};let st=Le===void 0?Ne:ye.parentEditor||null,ft=ye.disableEvents||!1,vt=nu(),Bt=ye.namespace||(st!==null?st._config.namespace:Dt()),er=ye.editorState,br=[tc,Wu,kl,Eu,Nl,...ye.nodes||[]],{onError:dn,html:yn}=ye;if(ye=ye.editable!==void 0?ye.editable:!0,Le===void 0&&Ne!==null)Le=Ne._nodes;else for(Le=new Map,Ne=0;Ne{const $e=pa();return $e!==null?$e.clone():null})}function Ar(ze,$e,Pe){const We=tu(Pe._window);let nt=null,it=null;We!==null&&We.anchorNode===ze&&(nt=We.anchorOffset,it=We.focusOffset);const mt=ze.nodeValue;mt!==null&&gn($e,mt,nt,it,!1)}function un(ze,$e,Pe){if(ho(ze)){const We=ze.anchor.getNode();if(We.is(Pe)&&ze.format!==We.getFormat())return!1}return $e.nodeType===Tn&&Pe.isAttached()}function po(ze,$e,Pe){yt=!0;const We=performance.now()-Rt>wt;try{tl(ze,()=>{const nt=pa()||Qt(ze),it=new Map,mt=ze.getRootElement(),xt=ze._editorState,qt=ze._blockCursorElement;let Jt=!1,rr="";for(let cr=0;cr<$e.length;cr++){const ir=$e[cr],Kr=ir.type,Zr=ir.target;let Br=Ms(Zr,xt);if(!(Br===null&&Zr!==mt||Ta(Br))){if(Kr==="characterData")We&&Rn(Br)&&un(nt,Zr,Br)&&Ar(Zr,Br,ze);else if(Kr==="childList"){Jt=!0;const Hn=ir.addedNodes;for(let ei=0;ei0){let ei=0;for(let Bo=0;Bo0)for(const[cr,ir]of it)if(qr(ir)){const Kr=ir.getChildrenKeys();let Zr=cr.firstChild;for(let Br=0;Br0){for(let cr=0;cr{po(ze,$e,Pe)})}function Vn(ze,$e){const Pe=ze.__mode,We=ze.__format,nt=ze.__style,it=$e.__mode,mt=$e.__format,xt=$e.__style;return(Pe===null||Pe===it)&&(We===null||We===mt)&&(nt===null||nt===xt)}function Ro(ze,$e){const Pe=ze.mergeWithSibling($e),We=Ra()._normalizedNodes;return We.add(ze.__key),We.add($e.__key),Pe}function Nn(ze){let $e=ze;if($e.__text===""&&$e.isSimpleText()&&!$e.isUnmergeable()){$e.remove();return}let Pe;for(;(Pe=$e.getPreviousSibling())!==null&&Rn(Pe)&&Pe.isSimpleText()&&!Pe.isUnmergeable();)if(Pe.__text==="")Pe.remove();else if(Vn(Pe,$e)){$e=Ro(Pe,$e);break}else break;let We;for(;(We=$e.getNextSibling())!==null&&Rn(We)&&We.isSimpleText()&&!We.isUnmergeable();)if(We.__text==="")We.remove();else if(Vn($e,We)){$e=Ro($e,We);break}else break}function so(ze){return Ei(ze.anchor),Ei(ze.focus),ze}function Ei(ze){for(;ze.type==="element";){const $e=ze.getNode(),Pe=ze.offset;let We,nt;if(Pe===$e.getChildrenSize()?(We=$e.getChildAtIndex(Pe-1),nt=!0):(We=$e.getChildAtIndex(Pe),nt=!1),Rn(We)){ze.set(We.__key,nt?We.getTextContentSize():0,"text");break}else if(!qr(We))break;ze.set(We.__key,nt?We.getChildrenSize():0,"element")}}let Ji=1;function mi(){return""+Ji++}function ks(ze,$e){const Pe=ze._nodes.get($e);if(Pe===void 0)throw Error(`registeredNode: Type ${$e} not found`);return Pe}const Li=typeof queueMicrotask=="function"?queueMicrotask:ze=>{Promise.resolve().then(ze)};function hl(ze){return Ta(Ms(ze))}function Is(ze){const $e=document.activeElement;if($e===null)return!1;const Pe=$e.nodeName;return Ta(Ms(ze))&&(Pe==="INPUT"||Pe==="TEXTAREA"||$e.contentEditable==="true"&&$e.__lexicalEditor==null)}function ea(ze,$e,Pe){const We=ze.getRootElement();try{return We!==null&&We.contains($e)&&We.contains(Pe)&&$e!==null&&!Is($e)&&fi($e)===ze}catch{return!1}}function fi(ze){let $e=ze;for(;$e!=null;){const Pe=$e.__lexicalEditor;if(Pe!=null)return Pe;$e=uc($e)}return null}function aa(ze){return ca.test(ze)?"rtl":Go.test(ze)?"ltr":null}function ta(ze){return ze.isToken()||ze.isSegmented()}function $a(ze){return ze.nodeType===Tn}function ii(ze){let $e=ze;for(;$e!=null;){if($a($e))return $e;$e=$e.firstChild}return null}function ts(ze,$e,Pe){const We=di[$e];if(Pe!==null&&(ze&We)===(Pe&We))return ze;let nt=ze^We;return $e==="subscript"?nt&=~di.superscript:$e==="superscript"&&(nt&=~di.subscript),nt}function as(ze){return Rn(ze)||li(ze)||Ta(ze)}function Ns(ze,$e){if($e!=null){ze.__key=$e;return}Js(),hp();const Pe=Ra(),We=hc(),nt=mi();We._nodeMap.set(nt,ze),qr(ze)?Pe._dirtyElements.set(nt,!0):Pe._dirtyLeaves.add(nt),Pe._cloneNotNeeded.add(nt),Pe._dirtyType=Mn,ze.__key=nt}function Ds(ze,$e,Pe){let We=ze;for(;We!==null;){if(Pe.has(We))return;const nt=$e.get(We);if(nt===void 0)break;Pe.set(We,!1),We=nt.__parent}}function ga(ze){const $e=ze.getParent();if($e!==null){const Pe=ze.getWritable(),We=$e.getWritable(),nt=ze.getPreviousSibling(),it=ze.getNextSibling();if(nt===null)if(it!==null){const mt=it.getWritable();We.__first=it.__key,mt.__prev=null}else We.__first=null;else{const mt=nt.getWritable();if(it!==null){const xt=it.getWritable();xt.__prev=mt.__key,mt.__next=xt.__key}else mt.__next=null;Pe.__prev=null}if(it===null)if(nt!==null){const mt=nt.getWritable();We.__last=nt.__key,mt.__next=null}else We.__last=null;else{const mt=it.getWritable();if(nt!==null){const xt=nt.getWritable();xt.__next=mt.__key,mt.__prev=xt.__key}else mt.__prev=null;Pe.__next=null}We.__size--,Pe.__parent=null}}function vs(ze){hp();const $e=ze.getLatest(),Pe=$e.__parent,We=hc(),nt=Ra(),it=We._nodeMap,mt=nt._dirtyElements;Pe!==null&&Ds(Pe,it,mt);const xt=$e.__key;nt._dirtyType=Mn,qr(ze)?mt.set(xt,!0):nt._dirtyLeaves.add(xt)}function Xl(ze){const $e=ze.getPreviousSibling(),Pe=ze.getNextSibling();$e!==null&&vs($e),Pe!==null&&vs(Pe)}function Qn(ze){Js();const $e=Ra(),Pe=$e._compositionKey;if(ze!==Pe){if($e._compositionKey=ze,Pe!==null){const We=ma(Pe);We!==null&&We.getWritable()}if(ze!==null){const We=ma(ze);We!==null&&We.getWritable()}}}function va(){return cd()?null:Ra()._compositionKey}function ma(ze,$e){const We=($e||hc())._nodeMap.get(ze);return We===void 0?null:We}function Ys(ze,$e){const Pe=Ra(),We=ze[`__lexicalKey_${Pe._key}`];return We!==void 0?ma(We,$e):null}function Ms(ze,$e){let Pe=ze;for(;Pe!=null;){const We=Ys(Pe,$e);if(We!==null)return We;Pe=uc(Pe)}return null}function Qo(ze){const $e=ze._decorators,Pe=Object.assign({},$e);return ze._pendingDecorators=Pe,Pe}function Ls(ze){return ze.read(()=>qn().getTextContent())}function Ol(ze,$e){tl(ze,()=>{const Pe=hc();if(Pe.isEmpty())return;if($e==="root"){qn().markDirty();return}const We=Pe._nodeMap;for(const[,nt]of We)nt.markDirty()},ze._pendingEditorState===null?{tag:"history-merge"}:void 0)}function qn(){return Xs(hc())}function Xs(ze){return ze._nodeMap.get("root")}function yi(ze){Js();const $e=hc();if(ze!==null){if(Object.isFrozen(ze))throw Error("$setSelection called on frozen selection object. Ensure selection is cloned before passing in.");ze.dirty=!0,ze.setCachedNodes(null)}$e._selection=ze}function Zs(){Js();const ze=Ra();In(ze)}function Ya(ze){const $e=Ra(),Pe=Ki(ze,$e);if(Pe===null){const We=$e.getRootElement();return ze===We?ma("root"):null}return ma(Pe)}function Zl(ze,$e){return $e?ze.getTextContentSize():0}function Ki(ze,$e){let Pe=ze;for(;Pe!=null;){const We=Pe[`__lexicalKey_${$e._key}`];if(We!==void 0)return We;Pe=uc(Pe)}return null}function $i(ze){return/[\uD800-\uDBFF][\uDC00-\uDFFF]/g.test(ze)}function Ku(ze){const $e=[];let Pe=ze;for(;Pe!==null;)$e.push(Pe),Pe=Pe._parentEditor;return $e}function da(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function ss(ze){return ze.nodeType===Tn?ze.nodeValue:null}function Ur(ze,$e,Pe){const We=tu($e._window);if(We===null)return;const nt=We.anchorNode;let{anchorOffset:it,focusOffset:mt}=We;if(nt!==null){let xt=ss(nt);const qt=Ms(nt);if(xt!==null&&Rn(qt)){if(xt===fo&&Pe){const Jt=Pe.length;xt=Pe,it=Jt,mt=Jt}xt!==null&&gn(qt,xt,it,mt,ze)}}}function gn(ze,$e,Pe,We,nt){let it=ze;if(it.isAttached()&&(nt||!it.isDirty())){const mt=it.isComposing();let xt=$e;(mt||nt)&&$e[$e.length-1]===fo&&(xt=$e.slice(0,-1));const qt=it.getTextContent();if(nt||xt!==qt){if(xt===""){if(Qn(null),!wr&&!xr&&!Bn){const Zr=Ra();setTimeout(()=>{Zr.update(()=>{it.isAttached()&&it.remove()})},20)}else it.remove();return}const Jt=it.getParent(),rr=cs(),ur=it.getTextContentSize(),cr=va(),ir=it.getKey();if(it.isToken()||cr!==null&&ir===cr&&!mt||ho(rr)&&(Jt!==null&&!Jt.canInsertTextBefore()&&rr.anchor.offset===0||rr.anchor.key===ze.__key&&rr.anchor.offset===0&&!it.canInsertTextBefore()&&!mt||rr.focus.key===ze.__key&&rr.focus.offset===ur&&!it.canInsertTextAfter()&&!mt)){it.markDirty();return}const Kr=pa();if(!ho(Kr)||Pe===null||We===null){it.setTextContent(xt);return}if(Kr.setTextNodeRange(it,Pe,it,We),it.isSegmented()){const Zr=it.getTextContent(),Br=Xo(Zr);it.replace(Br),it=Br}it.setTextContent(xt)}}}function So(ze){const $e=ze.getPreviousSibling();return(Rn($e)||qr($e)&&$e.isInline())&&!$e.canInsertTextAfter()}function To(ze,$e){if($e.isSegmented())return!0;if(!ze.isCollapsed())return!1;const Pe=ze.anchor.offset,We=$e.getParentOrThrow(),nt=$e.isToken();return Pe===0?!$e.canInsertTextBefore()||!We.canInsertTextBefore()||nt||So($e):Pe===$e.getTextContentSize()?!$e.canInsertTextAfter()||!We.canInsertTextAfter()||nt:!1}function Kn(ze,$e,Pe,We){return ze===9&&!$e&&!Pe&&!We}function zn(ze,$e,Pe,We){return ze===66&&!$e&&yu(Pe,We)}function ai(ze,$e,Pe,We){return ze===73&&!$e&&yu(Pe,We)}function wi(ze,$e,Pe,We){return ze===85&&!$e&&yu(Pe,We)}function ra(ze,$e){return Ri(ze)&&!$e}function rs(ze,$e){return Ri(ze)&&$e}function Xa(ze,$e){return kt&&$e&&ze===79}function Ql(ze,$e,Pe){return ya(ze)&&(kt?$e:Pe)}function Jl(ze,$e,Pe){return _u(ze)&&(kt?$e:Pe)}function Uu(ze,$e){return kt&&$e&&ya(ze)}function Ui(ze,$e){return kt&&$e&&_u(ze)}function Oc(ze,$e,Pe,We){return kt?$e||Pe?!1:ya(ze)||ze===72&&We:We||$e||Pe?!1:ya(ze)}function Et(ze,$e,Pe,We,nt){return kt?Pe||We||nt?!1:_u(ze)||ze===68&&$e:$e||We||nt?!1:_u(ze)}function Zt(ze,$e,Pe,We){return ze===90&&!$e&&yu(Pe,We)}function $r(ze,$e,Pe,We){return kt?ze===90&&Pe&&$e:ze===89&&We||ze===90&&We&&$e}function Nr(ze,$e,Pe,We){return $e?!1:ze===67?kt?Pe:We:!1}function mn(ze,$e,Pe,We){return $e?!1:ze===88?kt?Pe:We:!1}function Xn(ze){return ze===37}function Pn(ze){return ze===39}function Io(ze){return ze===38}function Jo(ze){return ze===40}function Pi(ze,$e,Pe,We){return Xn(ze)&&!$e&&!We&&!Pe}function Uo(ze,$e,Pe,We,nt){return Xn(ze)&&!We&&!Pe&&($e||nt)}function Wi(ze,$e,Pe,We){return Pn(ze)&&!$e&&!We&&!Pe}function si(ze,$e,Pe,We,nt){return Pn(ze)&&!We&&!Pe&&($e||nt)}function fa(ze,$e,Pe){return Io(ze)&&!$e&&!Pe}function gi(ze,$e,Pe){return Jo(ze)&&!$e&&!Pe}function gl(ze,$e,Pe,We){return ze||$e||Pe||We}function kl(ze){return ze===32}function yu(ze,$e){return kt?ze:$e}function Ri(ze){return ze===13}function ya(ze){return ze===8}function kc(ze){return ze===27}function _u(ze){return ze===46}function Ic(ze,$e,Pe){return ze===65&&yu($e,Pe)}function wf(){const ze=qn(),$e=ze.select(0,ze.getChildrenSize());yi(so($e))}function Nc(ze,$e){ze.__lexicalClassNameCache===void 0&&(ze.__lexicalClassNameCache={});const Pe=ze.__lexicalClassNameCache,We=Pe[$e];if(We!==void 0)return We;const nt=ze[$e];if(typeof nt=="string"){const it=nt.split(" ");return Pe[$e]=it,it}return nt}function rd(ze,$e,Pe,We,nt){if(Pe.size===0)return;const it=We.__type,mt=We.__key,xt=$e.get(it);if(xt===void 0)throw Error(`Type ${it} not in registeredNodes`);const qt=xt.klass;let Jt=ze.get(qt);Jt===void 0&&(Jt=new Map,ze.set(qt,Jt));const rr=Jt.get(mt),ur=rr==="destroyed"&&nt==="created";(rr===void 0||ur)&&Jt.set(mt,ur?"updated":nt)}function Wu(ze){const $e=hc(),Pe=$e._readOnly,We=ze.getType(),nt=$e._nodeMap,it=[];for(const[,mt]of nt)mt instanceof ze&&mt.__type===We&&(Pe||mt.isAttached())&&it.push(mt);return it}function xd(ze,$e,Pe){const We=ze.getParent();let nt=Pe,it=ze;return We!==null&&($e&&Pe===0?(nt=it.getIndexWithinParent(),it=We):!$e&&Pe===it.getChildrenSize()&&(nt=it.getIndexWithinParent()+1,it=We)),it.getChildAtIndex($e?nt-1:nt)}function lc(ze,$e){const Pe=ze.offset;if(ze.type==="element"){const We=ze.getNode();return xd(We,$e,Pe)}else{const We=ze.getNode();if($e&&Pe===0||!$e&&Pe===We.getTextContentSize()){const nt=$e?We.getPreviousSibling():We.getNextSibling();return nt===null?xd(We.getParentOrThrow(),$e,We.getIndexWithinParent()+($e?0:1)):nt}}return null}function Sd(ze){const $e=Ia(ze).event,Pe=$e&&$e.inputType;return Pe==="insertFromPaste"||Pe==="insertFromPasteAsQuotation"}function Fn(ze,$e,Pe){return Oo(ze,$e,Pe)}function Hl(ze){return!Gi(ze)&&!ze.isLastChild()&&!ze.isInline()}function nd(ze,$e){const Pe=ze._keyToDOMMap.get($e);if(Pe===void 0)throw Error(`Reconciliation: could not find DOM element for node key ${$e}`);return Pe}function uc(ze){const $e=ze.assignedSlot||ze.parentElement;return $e!==null&&$e.nodeType===11?$e.host:$e}function bu(ze,$e,Pe){const We=Pe.ownerDocument,nt=We.defaultView;if(nt===null)return;let{top:it,bottom:mt}=$e,xt=0,qt=0,Jt=Pe;for(;Jt!==null;){const rr=Jt===We.body;if(rr)xt=0,qt=Ia(ze).innerHeight;else{const cr=Jt.getBoundingClientRect();xt=cr.top,qt=cr.bottom}let ur=0;if(itqt&&(ur=mt-qt),ur!==0)if(rr)nt.scrollBy(0,ur);else{const cr=Jt.scrollTop;Jt.scrollTop+=ur;const ir=Jt.scrollTop-cr;it-=ir,mt-=ir}if(rr)break;Jt=uc(Jt)}}function ys(ze){return Ra()._updateTags.has(ze)}function Jn(ze){Js(),Ra()._updateTags.add(ze)}function Eu(ze){const $e=pa();if(!ho($e)||!qr(ze))return $e;const{anchor:Pe,focus:We}=$e,nt=Pe.getNode(),it=We.getNode();return Dc(nt,ze)&&Pe.set(ze.__key,0,"element"),Dc(it,ze)&&We.set(ze.__key,0,"element"),$e}function Dc(ze,$e){let Pe=ze.getParent();for(;Pe!==null;){if(Pe.is($e))return!0;Pe=Pe.getParent()}return!1}function ll(ze){const $e=ze.ownerDocument;return $e&&$e.defaultView||null}function Ia(ze){const $e=ze._window;if($e===null)throw Error("window object not found");return $e}function Oi(ze){return qr(ze)&&ze.isInline()||Ta(ze)&&ze.isInline()}function ls(ze){let $e=ze.getParentOrThrow();for(;$e!==null;){if(eu($e))return $e;$e=$e.getParentOrThrow()}return $e}function eu(ze){return Gi(ze)||qr(ze)&&ze.isShadowRoot()}function Mc(ze){const $e=ze.constructor.clone(ze);return Ns($e,null),$e}function Gl(ze){const $e=Ra(),Pe=ze.constructor.getType(),We=$e._nodes.get(Pe);if(We===void 0)throw Error('$initializeNode failed. Ensure node has been registered to the editor. You can do this by passing the node class via the "nodes" array in the editor config.');const nt=We.replace;if(nt!==null){const it=nt(ze);if(!(it instanceof ze.constructor))throw Error("$initializeNode failed. Ensure replacement node is a subclass of the original node.");return it}return ze}function xu(ze,$e){const Pe=ze.getParent();if(Gi(Pe)&&!qr($e)&&!Ta($e))throw Error("Only element or decorator nodes can be inserted in to the root node")}function Wo(ze){const $e=ze.theme,Pe=document.createElement("div");Pe.contentEditable="false",Pe.setAttribute("data-lexical-cursor","true");let We=$e.blockCursor;if(We!==void 0){if(typeof We=="string"){const nt=We.split(" ");We=$e.blockCursor=nt}We!==void 0&&Pe.classList.add(...We)}return Pe}function Su(ze){return(Ta(ze)||qr(ze)&&!ze.canBeEmpty())&&!ze.isInline()}function Il(ze,$e,Pe){Pe.style.removeProperty("caret-color"),$e._blockCursorElement=null;const We=ze.parentElement;We!==null&&We.removeChild(ze)}function od(ze,$e,Pe){let We=ze._blockCursorElement;if(ho(Pe)&&Pe.isCollapsed()&&Pe.anchor.type==="element"&&$e.contains(document.activeElement)){const nt=Pe.anchor,it=nt.getNode(),mt=nt.offset,xt=it.getChildrenSize();let qt=!1,Jt=null;if(mt===xt){const rr=it.getChildAtIndex(mt-1);Su(rr)&&(qt=!0)}else{const rr=it.getChildAtIndex(mt);if(Su(rr)){const ur=rr.getPreviousSibling();(ur===null||Su(ur))&&(qt=!0,Jt=ze.getElementByKey(rr.__key))}}if(qt){const rr=ze.getElementByKey(it.__key);We===null&&(ze._blockCursorElement=We=Wo(ze._config)),$e.style.caretColor="transparent",Jt===null?rr.appendChild(We):rr.insertBefore(We,Jt);return}}We!==null&&Il(We,ze,$e)}function tu(ze){return It?(ze||window).getSelection():null}function up(ze,$e){let Pe=ze.getChildAtIndex($e);if(Pe==null&&(Pe=ze),eu(ze))throw Error("Can not call $splitNode() on root element");const We=mt=>{const xt=mt.getParentOrThrow(),qt=eu(xt),Jt=mt===Pe&&!qt?mt:Mc(mt);if(qt){if(!(qr(mt)&&qr(Jt)))throw Error("Children of a root must be ElementNode");return mt.insertAfter(Jt),[mt,Jt,Jt]}else{const[rr,ur,cr]=We(xt),ir=mt.getNextSiblings();return cr.append(Jt,...ir),[rr,ur,Jt]}},[nt,it]=We(Pe);return[nt,it]}function Td(ze){return ad(ze)&&ze.tagName==="A"}function ad(ze){return ze.nodeType===1}function Ps(ze){if(Ta(ze)&&!ze.isInline())return!0;if(!qr(ze)||eu(ze))return!1;const $e=ze.getFirstChild(),Pe=$e===null||li($e)||Rn($e)||$e.isInline();return!ze.isInline()&&ze.canBeEmpty()!==!1&&Pe}function Tu(ze,$e){let Pe=ze;for(;Pe!==null&&Pe.getParent()!==null&&!$e(Pe);)Pe=Pe.getParentOrThrow();return $e(Pe)?Pe:null}function Rf(){return Ra()}function Cu(ze,$e){const Pe=ze._decorators;let nt=ze._pendingDecorators||Pe;const it=$e._nodeMap;let mt;for(mt in nt)it.has(mt)||(nt===Pe&&(nt=Qo(ze)),delete nt[mt])}function nf(ze,$e,Pe,We,nt,it){let mt=ze.getFirstChild();for(;mt!==null;){const xt=mt.__key;mt.__parent===$e&&(qr(mt)&&nf(mt,xt,Pe,We,nt,it),Pe.has(xt)||it.delete(xt),nt.push(xt)),mt=mt.getNextSibling()}}function Yu(ze,$e,Pe,We){const nt=ze._nodeMap,it=$e._nodeMap,mt=[];for(const[xt]of We){const qt=it.get(xt);qt!==void 0&&(qt.isAttached()||(qr(qt)&&nf(qt,xt,nt,it,mt,We),nt.has(xt)||We.delete(xt),mt.push(xt)))}for(const xt of mt)it.delete(xt);for(const xt of Pe){const qt=it.get(xt);qt!==void 0&&!qt.isAttached()&&(nt.has(xt)||Pe.delete(xt),it.delete(xt))}}let Co="",za="",Vl="",Xu,ul,Lc,Of=!1,Zu=!1,gr,Fr=null,_r,vn,eo,ti,ba,Ii;function vl(ze,$e){const Pe=eo.get(ze);if($e!==null){const We=rc(ze);We.parentNode===$e&&$e.removeChild(We)}if(ti.has(ze)||ul._keyToDOMMap.delete(ze),qr(Pe)){const We=us(Pe,eo);Ha(We,0,We.length-1,null)}Pe!==void 0&&rd(Ii,Lc,gr,Pe,"destroyed")}function Ha(ze,$e,Pe,We){let nt=$e;for(;nt<=Pe;++nt){const it=ze[nt];it!==void 0&&vl(it,We)}}function Yi(ze,$e){ze.setProperty("text-align",$e)}const Ni="40px";function Qu(ze,$e){const Pe=Xu.theme.indent;if(typeof Pe=="string"){const nt=ze.classList.contains(Pe);$e>0&&!nt?ze.classList.add(Pe):$e<1&&nt&&ze.classList.remove(Pe)}const We=getComputedStyle(ze).getPropertyValue("--lexical-indent-base-value")||Ni;ze.style.setProperty("padding-inline-start",$e===0?"":`calc(${$e} * ${We})`)}function Au(ze,$e){const Pe=ze.style;$e===0?Yi(Pe,""):$e===Eo?Yi(Pe,"left"):$e===vo?Yi(Pe,"center"):$e===Fo?Yi(Pe,"right"):$e===Ln?Yi(Pe,"justify"):$e===xn?Yi(Pe,"start"):$e===Ko&&Yi(Pe,"end")}function cc(ze,$e,Pe){const We=ti.get(ze);if(We===void 0)throw Error("createNode: node does not exist in nodeMap");const nt=We.createDOM(Xu,ul);if(Bs(ze,nt,ul),Rn(We)?nt.setAttribute("data-lexical-text","true"):Ta(We)&&nt.setAttribute("data-lexical-decorator","true"),qr(We)){const it=We.__indent,mt=We.__size;if(it!==0&&Qu(nt,it),mt!==0){const qt=mt-1,Jt=us(We,ti);sd(Jt,qt,We,nt)}const xt=We.__format;xt!==0&&Au(nt,xt),We.isInline()||Ju(null,We,nt),Hl(We)&&(Co+=Wn,Vl+=Wn)}else{const it=We.getTextContent();if(Ta(We)){const mt=We.decorate(ul,Xu);mt!==null&&Fi(ze,mt),nt.contentEditable="false"}else Rn(We)&&(We.isDirectionless()||(za+=it));Co+=it,Vl+=it}if($e!==null)if(Pe!=null)$e.insertBefore(nt,Pe);else{const it=$e.__lexicalLineBreak;it!=null?$e.insertBefore(nt,it):$e.appendChild(nt)}return Object.freeze(We),rd(Ii,Lc,gr,We,"created"),nt}function sd(ze,$e,Pe,We){const nt=za;za="",Si(ze,Pe,0,$e,We,null),On(Pe,We),za=nt}function Si(ze,$e,Pe,We,nt,it){const mt=Co;Co="";let xt=Pe;for(;xt<=We;++xt)cc(ze[xt],nt,it);Hl($e)&&(Co+=Wn),nt.__lexicalTextContent=Co,Co=mt+Co}function ql(ze,$e){const Pe=$e.get(ze);return li(Pe)||Ta(Pe)&&Pe.isInline()}function Ju(ze,$e,Pe){const We=ze!==null&&(ze.__size===0||ql(ze.__last,eo)),nt=$e.__size===0||ql($e.__last,ti);if(We){if(!nt){const it=Pe.__lexicalLineBreak;it!=null&&Pe.removeChild(it),Pe.__lexicalLineBreak=null}}else if(nt){const it=document.createElement("br");Pe.__lexicalLineBreak=it,Pe.appendChild(it)}}function On(ze,$e){const Pe=$e.__lexicalDirTextContent,We=$e.__lexicalDir;if(Pe!==za||We!==Fr){const nt=za==="",it=nt?Fr:aa(za);if(it!==We){const mt=$e.classList,xt=Xu.theme;let qt=We!==null?xt[We]:void 0,Jt=it!==null?xt[it]:void 0;if(qt!==void 0){if(typeof qt=="string"){const rr=qt.split(" ");qt=xt[We]=rr}mt.remove(...qt)}if(it===null||nt&&it==="ltr")$e.removeAttribute("dir");else{if(Jt!==void 0){if(typeof Jt=="string"){const rr=Jt.split(" ");Jt=xt[it]=rr}Jt!==void 0&&mt.add(...Jt)}$e.dir=it}if(!Zu){const rr=ze.getWritable();rr.__dir=it}}Fr=it,$e.__lexicalDirTextContent=za,$e.__lexicalDir=it}}function Cd(ze,$e,Pe){const We=za;za="",ml(ze,$e,Pe),On($e,Pe),za=We}function us(ze,$e){const Pe=[];let We=ze.__first;for(;We!==null;){const nt=$e.get(We);if(nt===void 0)throw Error("createChildrenArray: node does not exist in nodeMap");Pe.push(We),We=nt.__next}return Pe}function ml(ze,$e,Pe){const We=Co,nt=ze.__size,it=$e.__size;if(Co="",nt===1&&it===1){const mt=ze.__first,xt=$e.__first;if(mt===xt)ec(mt,Pe);else{const qt=rc(mt),Jt=cc(xt,null,null);Pe.replaceChild(Jt,qt),vl(mt,null)}}else{const mt=us(ze,eo),xt=us($e,ti);if(nt===0)it!==0&&Si(xt,$e,0,it-1,Pe,null);else if(it===0){if(nt!==0){const Jt=Pe.__lexicalLineBreak==null;Ha(mt,0,nt-1,Jt?null:Pe),Jt&&(Pe.textContent="")}}else ru($e,mt,xt,nt,it,Pe)}Hl($e)&&(Co+=Wn),Pe.__lexicalTextContent=Co,Co=We+Co}function ec(ze,$e){const Pe=eo.get(ze);let We=ti.get(ze);if(Pe===void 0||We===void 0)throw Error("reconcileNode: prevNode or nextNode does not exist in nodeMap");const nt=Of||vn.has(ze)||_r.has(ze),it=nd(ul,ze);if(Pe===We&&!nt){if(qr(Pe)){const mt=it.__lexicalTextContent;mt!==void 0&&(Co+=mt,Vl+=mt);const xt=it.__lexicalDirTextContent;xt!==void 0&&(za+=xt)}else{const mt=Pe.getTextContent();Rn(Pe)&&!Pe.isDirectionless()&&(za+=mt),Vl+=mt,Co+=mt}return it}if(Pe!==We&&nt&&rd(Ii,Lc,gr,We,"updated"),We.updateDOM(Pe,it,Xu)){const mt=cc(ze,null,null);if($e===null)throw Error("reconcileNode: parentDOM is null");return $e.replaceChild(mt,it),vl(ze,null),mt}if(qr(Pe)&&qr(We)){const mt=We.__indent;mt!==Pe.__indent&&Qu(it,mt);const xt=We.__format;xt!==Pe.__format&&Au(it,xt),nt&&(Cd(Pe,We,it),!Gi(We)&&!We.isInline()&&Ju(Pe,We,it)),Hl(We)&&(Co+=Wn,Vl+=Wn)}else{const mt=We.getTextContent();if(Ta(We)){const xt=We.decorate(ul,Xu);xt!==null&&Fi(ze,xt)}else Rn(We)&&!We.isDirectionless()&&(za+=mt);Co+=mt,Vl+=mt}if(!Zu&&Gi(We)&&We.__cachedText!==Vl){const mt=We.getWritable();mt.__cachedText=Vl,We=mt}return Object.freeze(We),it}function Fi(ze,$e){let Pe=ul._pendingDecorators;const We=ul._decorators;if(Pe===null){if(We[ze]===$e)return;Pe=Qo(ul)}Pe[ze]=$e}function Pc(ze){return ze.firstChild}function an(ze){let $e=ze.nextSibling;return $e!==null&&$e===ul._blockCursorElement&&($e=$e.nextSibling),$e}function ru(ze,$e,Pe,We,nt,it){const mt=We-1,xt=nt-1;let qt,Jt,rr=Pc(it),ur=0,cr=0;for(;ur<=mt&&cr<=xt;){const Zr=$e[ur],Br=Pe[cr];if(Zr===Br)rr=an(ec(Br,it)),ur++,cr++;else{qt===void 0&&(qt=new Set($e)),Jt===void 0&&(Jt=new Set(Pe));const Hn=Jt.has(Zr),en=qt.has(Br);if(!Hn)rr=an(rc(Zr)),vl(Zr,it),ur++;else if(!en)cc(Br,it,rr),cr++;else{const kn=nd(ul,Br);kn===rr?rr=an(ec(Br,it)):(rr!=null?it.insertBefore(kn,rr):it.appendChild(kn),ec(Br,it)),ur++,cr++}}}const ir=ur>mt,Kr=cr>xt;if(ir&&!Kr){const Zr=Pe[xt+1],Br=Zr===void 0?null:ul.getElementByKey(Zr);Si(Pe,ze,cr,xt,it,Br)}else Kr&&!ir&&Ha($e,ur,mt,it)}function tc(ze,$e,Pe,We,nt,it){Co="",Vl="",za="",Of=We===bo,Fr=null,ul=Pe,Xu=Pe._config,Lc=Pe._nodes,gr=ul._listeners.mutation,_r=nt,vn=it,eo=ze._nodeMap,ti=$e._nodeMap,Zu=$e._readOnly,ba=new Map(Pe._keyToDOMMap);const mt=new Map;return Ii=mt,ec("root",null),ul=void 0,Lc=void 0,_r=void 0,vn=void 0,eo=void 0,ti=void 0,Xu=void 0,ba=void 0,Ii=void 0,mt}function Bs(ze,$e,Pe){const We=Pe._keyToDOMMap;$e["__lexicalKey_"+Pe._key]=ze,We.set(ze,$e)}function rc(ze){const $e=ba.get(ze);if($e===void 0)throw Error(`Reconciliation: could not find DOM element for node key ${ze}`);return $e}const nu=Object.freeze({}),cl=30,ou=[["keydown",Po],["pointerdown",er],["compositionstart",$n],["compositionend",Vo],["input",Pr],["click",Bt],["cut",nu],["copy",nu],["dragstart",nu],["dragover",nu],["dragend",nu],["paste",nu],["focus",nu],["blur",nu],["drop",nu]];tr&&ou.push(["beforeinput",(ze,$e)=>Wr(ze,$e)]);let Nl=0,kf=0,xi=0,$u=null,dl=0,yl=!1,Le=!1,ye=!1,Ne=!1,Ye=[0,"",0,"root",0];function st(ze,$e,Pe,We,nt){const it=ze.anchor,mt=ze.focus,xt=it.getNode(),qt=Ra(),Jt=tu(qt._window),rr=Jt!==null?Jt.anchorNode:null,ur=it.key,cr=qt.getElementByKey(ur),ir=Pe.length;return ur!==mt.key||!Rn(xt)||(!nt&&(!tr||xi1||(nt||!tr)&&cr!==null&&!xt.isComposing()&&rr!==ii(cr)||Jt!==null&&$e!==null&&(!$e.collapsed||$e.startContainer!==Jt.anchorNode||$e.startOffset!==Jt.anchorOffset)||xt.getFormat()!==ze.format||xt.getStyle()!==ze.style||To(ze,xt)}function ft(ze,$e){return ze!==null&&ze.nodeValue!==null&&ze.nodeType===Tn&&$e!==0&&$e!==ze.nodeValue.length}function vt(ze,$e,Pe){const{anchorNode:We,anchorOffset:nt,focusNode:it,focusOffset:mt}=ze;yl&&(yl=!1,ft(We,nt)&&ft(it,mt))||tl($e,()=>{if(!Pe){yi(null);return}if(!ea($e,We,it))return;const xt=pa();if(ho(xt)){const qt=xt.anchor,Jt=qt.getNode();if(xt.isCollapsed()){ze.type==="Range"&&ze.anchorNode===ze.focusNode&&(xt.dirty=!0);const rr=Ia($e).event,ur=rr?rr.timeStamp:performance.now(),[cr,ir,Kr,Zr,Br]=Ye,Hn=qn(),en=$e.isComposing()===!1&&Hn.getTextContent()==="";if(ur{const Pe=pa(),We=tu($e._window),nt=cs();if(We){if(ho(Pe)){const it=Pe.anchor,mt=it.getNode();if(it.type==="element"&&it.offset===0&&Pe.isCollapsed()&&!Gi(mt)&&qn().getChildrenSize()===1&&mt.getTopLevelElementOrThrow().isEmpty()&&nt!==null&&Pe.is(nt))We.removeAllRanges(),Pe.dirty=!0;else if(ze.detail===3&&!Pe.isCollapsed()){const qt=Pe.focus.getNode();mt!==qt&&(qr(mt)?mt.select(0):mt.getParentOrThrow().select(0))}}else if(ze.pointerType==="touch"){const it=We.anchorNode;if(it!==null){const mt=it.nodeType;if(mt===An||mt===Tn){const xt=Vd(nt,We,$e,ze);yi(xt)}}}}Fn($e,O,ze)})}function er(ze,$e){const Pe=ze.target,We=ze.pointerType;Pe instanceof Node&&We!=="touch"&&tl($e,()=>{hl(Pe)||(Le=!0)})}function br(ze){if(!ze.getTargetRanges)return null;const $e=ze.getTargetRanges();return $e.length===0?null:$e[0]}function dn(ze,$e){return ze!==$e||qr(ze)||qr($e)||!ze.isToken()||!$e.isToken()}function yn(ze){return kf===229&&ze{const nt=pa();if(Pe==="deleteContentBackward"){if(nt===null){const rr=cs();if(!ho(rr))return;yi(rr.clone())}if(ho(nt)){if(Vr&&Qn(nt.anchor.key),yn(ze.timeStamp)&&$e.isComposing()&&nt.anchor.key===nt.focus.key){if(Qn(null),Nl=0,setTimeout(()=>{tl($e,()=>{Qn(null)})},cl),ho(nt)){const ur=nt.anchor.getNode();if(ur.markDirty(),nt.format=ur.getFormat(),!Rn(ur))throw Error("Anchor node must be a TextNode");nt.style=ur.getStyle()}nt.anchor.getNode().getTextContent().length<=1&&(ze.preventDefault(),Fn($e,I,!0))}else Qn(null),ze.preventDefault(),Fn($e,I,!0);return}}if(!ho(nt))return;const it=ze.data;$u!==null&&Ur(!1,$e,$u),(!nt.dirty||$u!==null)&&nt.isCollapsed()&&!Gi(nt.anchor.getNode())&&We!==null&&nt.applyDOMRange(We),$u=null;const mt=nt.anchor,xt=nt.focus,qt=mt.getNode(),Jt=xt.getNode();if(Pe==="insertText"||Pe==="insertTranspose"){if(it===` -`)ze.preventDefault(),Fn($e,N,!1);else if(it===Wn)ze.preventDefault(),Fn($e,L,void 0);else if(it==null&&ze.dataTransfer){const rr=ze.dataTransfer.getData("text/plain");ze.preventDefault(),nt.insertRawText(rr)}else it!=null&&st(nt,We,it,ze.timeStamp,!0)?(ze.preventDefault(),Fn($e,B,it)):$u=it;xi=ze.timeStamp;return}switch(ze.preventDefault(),Pe){case"insertFromYank":case"insertFromDrop":case"insertReplacementText":{Fn($e,B,ze);break}case"insertFromComposition":{Qn(null),Fn($e,B,ze);break}case"insertLineBreak":{Qn(null),Fn($e,N,!1);break}case"insertParagraph":{Qn(null),ye&&!xr?(ye=!1,Fn($e,N,!1)):Fn($e,L,void 0);break}case"insertFromPaste":case"insertFromPasteAsQuotation":{Fn($e,j,ze);break}case"deleteByComposition":{dn(qt,Jt)&&Fn($e,F,ze);break}case"deleteByDrag":case"deleteByCut":{Fn($e,F,ze);break}case"deleteContent":{Fn($e,I,!1);break}case"deleteWordBackward":{Fn($e,V,!0);break}case"deleteWordForward":{Fn($e,V,!1);break}case"deleteHardLineBackward":case"deleteSoftLineBackward":{Fn($e,K,!0);break}case"deleteContentForward":case"deleteHardLineForward":case"deleteSoftLineForward":{Fn($e,K,!1);break}case"formatStrikeThrough":{Fn($e,W,"strikethrough");break}case"formatBold":{Fn($e,W,"bold");break}case"formatItalic":{Fn($e,W,"italic");break}case"formatUnderline":{Fn($e,W,"underline");break}case"historyUndo":{Fn($e,X,void 0);break}case"historyRedo":{Fn($e,J,void 0);break}}})}function Pr(ze,$e){ze.stopPropagation(),tl($e,()=>{const Pe=pa(),We=ze.data,nt=br(ze);if(We!=null&&ho(Pe)&&st(Pe,nt,We,ze.timeStamp,!1)){Ne&&(Ao($e,We),Ne=!1);const it=Pe.anchor,mt=it.getNode(),xt=tu($e._window);if(xt===null)return;const qt=it.offset;(!tr||Pe.isCollapsed()||!Rn(mt)||xt.anchorNode===null||mt.getTextContent().slice(0,qt)+We+mt.getTextContent().slice(qt+Pe.focus.offset)!==ss(xt.anchorNode))&&Fn($e,B,We);const Jt=We.length;Kt&&Jt>1&&ze.inputType==="insertCompositionText"&&!$e.isComposing()&&(Pe.anchor.offset-=Jt),!wr&&!xr&&!Bn&&$e.isComposing()&&(Nl=0,Qn(null))}else Ur(!1,$e,We!==null?We:void 0),Ne&&(Ao($e,We||void 0),Ne=!1);Zs()}),$u=null}function $n(ze,$e){tl($e,()=>{const Pe=pa();if(ho(Pe)&&!$e.isComposing()){const We=Pe.anchor,nt=Pe.anchor.getNode();Qn(We.key),(ze.timeStamp{Ao($e,ze.data)})}function Po(ze,$e){if(Nl=ze.timeStamp,kf=ze.keyCode,$e.isComposing())return;const{keyCode:Pe,shiftKey:We,ctrlKey:nt,metaKey:it,altKey:mt}=ze;if(!Fn($e,oe,ze)){if(Wi(Pe,nt,mt,it))Fn($e,pe,ze);else if(si(Pe,nt,We,mt,it))Fn($e,me,ze);else if(Pi(Pe,nt,mt,it))Fn($e,xe,ze);else if(Uo(Pe,nt,We,mt,it))Fn($e,Ae,ze);else if(fa(Pe,nt,it))Fn($e,ge,ze);else if(gi(Pe,nt,it))Fn($e,Te,ze);else if(rs(Pe,We))ye=!0,Fn($e,we,ze);else if(kl(Pe))Fn($e,ke,ze);else if(Xa(Pe,nt))ze.preventDefault(),ye=!0,Fn($e,N,!0);else if(ra(Pe,We))ye=!1,Fn($e,we,ze);else if(Oc(Pe,mt,it,nt))ya(Pe)?Fn($e,Be,ze):(ze.preventDefault(),Fn($e,I,!0));else if(kc(Pe))Fn($e,Ie,ze);else if(Et(Pe,nt,We,mt,it))_u(Pe)?Fn($e,je,ze):(ze.preventDefault(),Fn($e,I,!1));else if(Ql(Pe,mt,nt))ze.preventDefault(),Fn($e,V,!0);else if(Jl(Pe,mt,nt))ze.preventDefault(),Fn($e,V,!1);else if(Uu(Pe,it))ze.preventDefault(),Fn($e,K,!0);else if(Ui(Pe,it))ze.preventDefault(),Fn($e,K,!1);else if(zn(Pe,mt,it,nt))ze.preventDefault(),Fn($e,W,"bold");else if(wi(Pe,mt,it,nt))ze.preventDefault(),Fn($e,W,"underline");else if(ai(Pe,mt,it,nt))ze.preventDefault(),Fn($e,W,"italic");else if(Kn(Pe,mt,nt,it))Fn($e,Ke,ze);else if(Zt(Pe,We,it,nt))ze.preventDefault(),Fn($e,X,void 0);else if($r(Pe,We,it,nt))ze.preventDefault(),Fn($e,J,void 0);else{const xt=$e._editorState._selection;la(xt)?Nr(Pe,We,it,nt)?(ze.preventDefault(),Fn($e,Qe,ze)):mn(Pe,We,it,nt)?(ze.preventDefault(),Fn($e,lt,ze)):Ic(Pe,it,nt)&&(ze.preventDefault(),Fn($e,ht,ze)):!Kt&&Ic(Pe,it,nt)&&(ze.preventDefault(),Fn($e,ht,ze))}gl(nt,We,mt,it)&&Fn($e,bt,ze)}}function Xi(ze){let $e=ze.__lexicalEventHandles;return $e===void 0&&($e=[],ze.__lexicalEventHandles=$e),$e}const _s=new Map;function Fs(ze){const $e=ze.target,Pe=$e==null?null:$e.nodeType===9?$e.defaultView:$e.ownerDocument.defaultView,We=tu(Pe);if(We===null)return;const nt=fi(We.anchorNode);if(nt===null)return;Le&&(Le=!1,tl(nt,()=>{const rr=cs(),ur=We.anchorNode;if(ur===null)return;const cr=ur.nodeType;if(cr!==An&&cr!==Tn)return;const ir=Vd(rr,We,nt,ze);yi(ir)}));const it=Ku(nt),mt=it[it.length-1],xt=mt._key,qt=_s.get(xt),Jt=qt||mt;Jt!==nt&&vt(We,Jt,!1),vt(We,nt,!0),nt!==mt?_s.set(xt,nt):qt&&_s.delete(xt)}function Dl(ze){ze._lexicalHandled=!0}function iu(ze){return ze._lexicalHandled===!0}function Kl(ze,$e){dl===0&&ze.ownerDocument.addEventListener("selectionchange",Fs),dl++,ze.__lexicalEditor=$e;const Pe=Xi(ze);for(let We=0;We{iu(xt)||(Dl(xt),$e.isEditable()&&it(xt,$e))}:xt=>{if(!iu(xt)&&(Dl(xt),$e.isEditable()))switch(nt){case"cut":return Fn($e,lt,xt);case"copy":return Fn($e,Qe,xt);case"paste":return Fn($e,j,xt);case"dragstart":return Fn($e,et,xt);case"dragover":return Fn($e,dt,xt);case"dragend":return Fn($e,gt,xt);case"focus":return Fn($e,Pt,xt);case"blur":return Fn($e,Vt,xt);case"drop":return Fn($e,tt,xt)}};ze.addEventListener(nt,mt),Pe.push(()=>{ze.removeEventListener(nt,mt)})}}function wu(ze){dl!==0&&(dl--,dl===0&&ze.ownerDocument.removeEventListener("selectionchange",Fs));const $e=ze.__lexicalEditor;$e!=null&&(_l($e),ze.__lexicalEditor=null);const Pe=Xi(ze);for(let We=0;Went.__key===this.__key);return Rn(this)?We:ho(Pe)&&Pe.anchor.type==="element"&&Pe.focus.type==="element"&&Pe.anchor.key===Pe.focus.key&&Pe.anchor.offset===Pe.focus.offset?!1:We}getKey(){return this.__key}getIndexWithinParent(){const $e=this.getParent();if($e===null)return-1;let Pe=$e.getFirstChild(),We=0;for(;Pe!==null;){if(this.is(Pe))return We;We++,Pe=Pe.getNextSibling()}return-1}getParent(){const $e=this.getLatest().__parent;return $e===null?null:ma($e)}getParentOrThrow(){const $e=this.getParent();if($e===null)throw Error(`Expected node ${this.__key} to have a parent.`);return $e}getTopLevelElement(){let $e=this;for(;$e!==null;){const Pe=$e.getParent();if(eu(Pe)){if(!qr($e))throw Error("Children of root nodes must be elements");return $e}$e=Pe}return null}getTopLevelElementOrThrow(){const $e=this.getTopLevelElement();if($e===null)throw Error(`Expected node ${this.__key} to have a top parent element.`);return $e}getParents(){const $e=[];let Pe=this.getParent();for(;Pe!==null;)$e.push(Pe),Pe=Pe.getParent();return $e}getParentKeys(){const $e=[];let Pe=this.getParent();for(;Pe!==null;)$e.push(Pe.__key),Pe=Pe.getParent();return $e}getPreviousSibling(){const Pe=this.getLatest().__prev;return Pe===null?null:ma(Pe)}getPreviousSiblings(){const $e=[],Pe=this.getParent();if(Pe===null)return $e;let We=Pe.getFirstChild();for(;We!==null&&!We.is(this);)$e.push(We),We=We.getNextSibling();return $e}getNextSibling(){const Pe=this.getLatest().__next;return Pe===null?null:ma(Pe)}getNextSiblings(){const $e=[];let Pe=this.getNextSibling();for(;Pe!==null;)$e.push(Pe),Pe=Pe.getNextSibling();return $e}getCommonAncestor($e){const Pe=this.getParents(),We=$e.getParents();qr(this)&&Pe.unshift(this),qr($e)&&We.unshift($e);const nt=Pe.length,it=We.length;if(nt===0||it===0||Pe[nt-1]!==We[it-1])return null;const mt=new Set(We);for(let xt=0;xt{xt.append(Zr)})}if(ho(We)){yi(We);const Zr=We.anchor,Br=We.focus;Zr.key===it&&Ll(Zr,xt),Br.key===it&&Ll(Br,xt)}return va()===it&&Qn(mt),xt}insertAfter($e,Pe=!0){Js(),xu(this,$e);const We=this.getWritable(),nt=$e.getWritable(),it=nt.getParent(),mt=pa();let xt=!1,qt=!1;if(it!==null){const ir=$e.getIndexWithinParent();if(ga(nt),ho(mt)){const Kr=it.__key,Zr=mt.anchor,Br=mt.focus;xt=Zr.type==="element"&&Zr.key===Kr&&Zr.offset===ir+1,qt=Br.type==="element"&&Br.key===Kr&&Br.offset===ir+1}}const Jt=this.getNextSibling(),rr=this.getParentOrThrow().getWritable(),ur=nt.__key,cr=We.__next;if(Jt===null)rr.__last=ur;else{const ir=Jt.getWritable();ir.__prev=ur}if(rr.__size++,We.__next=ur,nt.__next=cr,nt.__prev=We.__key,nt.__parent=We.__parent,Pe&&ho(mt)){const ir=this.getIndexWithinParent();Ma(mt,rr,ir+1);const Kr=rr.__key;xt&&mt.anchor.set(Kr,ir+2,"element"),qt&&mt.focus.set(Kr,ir+2,"element")}return $e}insertBefore($e,Pe=!0){Js(),xu(this,$e);const We=this.getWritable(),nt=$e.getWritable(),it=nt.__key;ga(nt);const mt=this.getPreviousSibling(),xt=this.getParentOrThrow().getWritable(),qt=We.__prev,Jt=this.getIndexWithinParent();if(mt===null)xt.__first=it;else{const ur=mt.getWritable();ur.__next=it}xt.__size++,We.__prev=it,nt.__prev=qt,nt.__next=We.__key,nt.__parent=We.__parent;const rr=pa();if(Pe&&ho(rr)){const ur=this.getParentOrThrow();Ma(rr,ur,Jt)}return $e}isParentRequired(){return!1}createParentElementNode(){return Sl()}selectStart(){return this.selectPrevious()}selectEnd(){return this.selectNext(0,0)}selectPrevious($e,Pe){Js();const We=this.getPreviousSibling(),nt=this.getParentOrThrow();if(We===null)return nt.select(0,0);if(qr(We))return We.select();if(!Rn(We)){const it=We.getIndexWithinParent()+1;return nt.select(it,it)}return We.select($e,Pe)}selectNext($e,Pe){Js();const We=this.getNextSibling(),nt=this.getParentOrThrow();if(We===null)return nt.select();if(qr(We))return We.select(0,0);if(!Rn(We)){const it=We.getIndexWithinParent();return nt.select(it,it)}return We.select($e,Pe)}markDirty(){this.getWritable()}}function Za(ze,$e){const Pe=Ra()._nodes.get(ze);if(Pe===void 0)throw Error(`Create node: Attempted to create node ${$e.name} that was not configured to be used on the editor.`);const We=Pe.klass;if(We!==$e)throw Error(`Create node: Type ${ze} in node ${$e.name} does not match registered node ${We.name} with the same type`)}function ri(ze,$e,Pe){const We=Pe||$e.getParentOrThrow().getLastChild();let nt=$e;const it=[$e];for(;nt!==We;){if(!nt.getNextSibling())throw Error("insertRangeAfter: lastToInsert must be a later sibling of firstToInsert");nt=nt.getNextSibling(),it.push(nt)}let mt=ze;for(const xt of it)mt=mt.insertAfter(xt)}class nc extends Qs{static getType(){return"linebreak"}static clone($e){return new nc($e.__key)}constructor($e){super($e)}getTextContent(){return` -`}createDOM(){return document.createElement("br")}updateDOM(){return!1}static importDOM(){return{br:$e=>io($e)?null:{conversion:wo,priority:0}}}static importJSON($e){return bs()}exportJSON(){return{type:"linebreak",version:1}}}function wo(ze){return{node:bs()}}function bs(){return Gl(new nc)}function li(ze){return ze instanceof nc}function io(ze){const $e=ze.parentElement;if($e!==null){const Pe=$e.firstChild;if(Pe===ze||Pe.nextSibling===ze&&Ti(Pe)){const We=$e.lastChild;if(We===ze||We.previousSibling===ze&&Ti(We))return!0}}return!1}function Ti(ze){return ze.nodeType===Tn&&/^( |\t|\r?\n)+$/.test(ze.textContent||"")}function bl(ze,$e){return $e&fr?"code":$e&nn?"mark":$e&Or?"sub":$e&Jr?"sup":null}function Na(ze,$e){return $e&nr?"strong":$e&Ir?"em":"span"}function No(ze,$e,Pe,We,nt){const it=We.classList;let mt=Nc(nt,"base");mt!==void 0&&it.add(...mt),mt=Nc(nt,"underlineStrikethrough");let xt=!1;const qt=$e&Rr&&$e&jr,Jt=Pe&Rr&&Pe&jr;mt!==void 0&&(Jt?(xt=!0,qt||it.add(...mt)):qt&&it.remove(...mt));for(const rr in di){const cr=di[rr];if(mt=Nc(nt,rr),mt!==void 0)if(Pe&cr){if(xt&&(rr==="underline"||rr==="strikethrough")){$e&cr&&it.remove(...mt);continue}(!($e&cr)||qt&&rr==="underline"||rr==="strikethrough")&&it.add(...mt)}else $e&cr&&it.remove(...mt)}}function wa(ze,$e){const Pe=ze.length,We=$e.length;let nt=0,it=0;for(;nt({conversion:zs,priority:0}),b:()=>({conversion:Qa,priority:0}),code:()=>({conversion:Di,priority:0}),em:()=>({conversion:Di,priority:0}),i:()=>({conversion:Di,priority:0}),s:()=>({conversion:Di,priority:0}),span:()=>({conversion:Ru,priority:0}),strong:()=>({conversion:Di,priority:0}),sub:()=>({conversion:Di,priority:0}),sup:()=>({conversion:Di,priority:0}),u:()=>({conversion:Di,priority:0})}}static importJSON($e){const Pe=Xo($e.text);return Pe.setFormat($e.format),Pe.setDetail($e.detail),Pe.setMode($e.mode),Pe.setStyle($e.style),Pe}exportDOM($e){let{element:Pe}=super.exportDOM($e);if(!(Pe!==null&&ad(Pe)))throw Error("Expected TextNode createDOM to always return a HTMLElement");return Pe.style.whiteSpace="pre-wrap",this.hasFormat("bold")&&(Pe=Es(Pe,"b")),this.hasFormat("italic")&&(Pe=Es(Pe,"i")),this.hasFormat("strikethrough")&&(Pe=Es(Pe,"s")),this.hasFormat("underline")&&(Pe=Es(Pe,"u")),{element:Pe}}exportJSON(){return{detail:this.getDetail(),format:this.getFormat(),mode:this.getMode(),style:this.getStyle(),text:this.getTextContent(),type:"text",version:1}}selectionTransform($e,Pe){}setFormat($e){const Pe=this.getWritable();return Pe.__format=typeof $e=="string"?di[$e]:$e,Pe}setDetail($e){const Pe=this.getWritable();return Pe.__detail=typeof $e=="string"?Qi[$e]:$e,Pe}setStyle($e){const Pe=this.getWritable();return Pe.__style=$e,Pe}toggleFormat($e){const Pe=this.getFormat(),We=ts(Pe,$e,null);return this.setFormat(We)}toggleDirectionless(){const $e=this.getWritable();return $e.__detail^=Gn,$e}toggleUnmergeable(){const $e=this.getWritable();return $e.__detail^=Zn,$e}setMode($e){const Pe=Dt[$e];if(this.__mode===Pe)return this;const We=this.getWritable();return We.__mode=Pe,We}setTextContent($e){if(this.__text===$e)return this;const Pe=this.getWritable();return Pe.__text=$e,Pe}select($e,Pe){Js();let We=$e,nt=Pe;const it=pa(),mt=this.getTextContent(),xt=this.__key;if(typeof mt=="string"){const qt=mt.length;We===void 0&&(We=qt),nt===void 0&&(nt=qt)}else We=0,nt=0;if(ho(it)){const qt=va();(qt===it.anchor.key||qt===it.focus.key)&&Qn(xt),it.setTextNodeRange(this,We,this,nt)}else return jc(xt,We,xt,nt,"text","text");return it}selectStart(){return this.select(0,0)}selectEnd(){const $e=this.getTextContentSize();return this.select($e,$e)}spliceText($e,Pe,We,nt){const it=this.getWritable(),mt=it.__text,xt=We.length;let qt=$e;qt<0&&(qt=xt+qt,qt<0&&(qt=0));const Jt=pa();if(nt&&ho(Jt)){const ur=$e+xt;Jt.setTextNodeRange(it,ur,it,ur)}const rr=mt.slice(0,qt)+We+mt.slice(qt+Pe);return it.__text=rr,it}canInsertTextBefore(){return!0}canInsertTextAfter(){return!0}splitText(...$e){Js();const Pe=this.getLatest(),We=Pe.getTextContent(),nt=Pe.__key,it=va(),mt=new Set($e),xt=[],qt=We.length;let Jt="";for(let ki=0;kiei&&cu.offset<=Wa&&(cu.key=Ci,cu.offset-=ei,en.dirty=!0),Du.key===nt&&Du.type==="text"&&Du.offset>ei&&Du.offset<=Wa&&(Du.key=Ci,Du.offset-=ei,en.dirty=!0)}it===nt&&Qn(Ci),ei=Wa,kn.push(As)}Xl(this);const Bo=cr.getWritable(),mo=this.getIndexWithinParent();return Hn?(Bo.splice(mo,0,kn),this.remove()):Bo.splice(mo,1,kn),ho(en)&&Ma(en,cr,mo,rr-1),kn}mergeWithSibling($e){const Pe=$e===this.getPreviousSibling();if(!Pe&&$e!==this.getNextSibling())throw Error("mergeWithSibling: sibling must be a previous or next sibling");const We=this.__key,nt=$e.__key,it=this.__text,mt=it.length;va()===nt&&Qn(We);const qt=pa();if(ho(qt)){const cr=qt.anchor,ir=qt.focus;cr!==null&&cr.key===nt&&(xl(cr,Pe,We,$e,mt),qt.dirty=!0),ir!==null&&ir.key===nt&&(xl(ir,Pe,We,$e,mt),qt.dirty=!0)}const Jt=$e.__text,rr=Pe?Jt+it:it+Jt;this.setTextContent(rr);const ur=this.getWritable();return $e.remove(),ur}isTextEntity(){return!1}}function Ru(ze){const $e=ze,Pe=$e.style.fontWeight==="700",We=$e.style.textDecoration==="line-through",nt=$e.style.fontStyle==="italic",it=$e.style.textDecoration==="underline",mt=$e.style.verticalAlign;return{forChild:xt=>(Rn(xt)&&(Pe&&xt.toggleFormat("bold"),We&&xt.toggleFormat("strikethrough"),nt&&xt.toggleFormat("italic"),it&&xt.toggleFormat("underline"),mt==="sub"&&xt.toggleFormat("subscript"),mt==="super"&&xt.toggleFormat("superscript")),xt),node:null}}function Qa(ze){const Pe=ze.style.fontWeight==="normal";return{forChild:We=>(Rn(We)&&!Pe&&We.toggleFormat("bold"),We),node:null}}const If=new WeakMap;function Ou(ze){return ze.nodeName==="PRE"||ze.nodeType===An&&ze.style!==void 0&&ze.style.whiteSpace!==void 0&&ze.style.whiteSpace.startsWith("pre")}function Bc(ze){let $e,Pe=ze.parentNode;const We=[ze];for(;Pe!==null&&($e=If.get(Pe))===void 0&&!Ou(Pe);)We.push(Pe),Pe=Pe.parentNode;const nt=$e===void 0?Pe:$e;for(let it=0;it0){/[ \t\n]$/.test(mt)&&(We=We.slice(1)),it=!1;break}}it&&(We=We.slice(1))}if(We[We.length-1]===" "){let nt=$e,it=!0;for(;nt!==null&&(nt=zi(nt,!0))!==null;)if((nt.textContent||"").replace(/^( |\t|\r?\n)+/,"").length>0){it=!1;break}it&&(We=We.slice(0,We.length-1))}return We===""?{node:null}:{node:Xo(We)}}const Gd=new RegExp(/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/,"i");function zi(ze,$e){let Pe=ze;for(;;){let We;for(;(We=$e?Pe.nextSibling:Pe.previousSibling)===null;){const it=Pe.parentElement;if(it===null)return null;Pe=it}if(Pe=We,Pe.nodeType===An){const it=Pe.style.display;if(it===""&&Pe.nodeName.match(Gd)===null||it!==""&&!it.startsWith("inline"))return null}let nt=Pe;for(;(nt=$e?Pe.firstChild:Pe.lastChild)!==null;)Pe=nt;if(Pe.nodeType===Tn)return Pe;if(Pe.nodeName==="BR")return null}}const Da={code:"code",em:"italic",i:"italic",s:"strikethrough",strong:"bold",sub:"subscript",sup:"superscript",u:"underline"};function Di(ze){const $e=Da[ze.nodeName.toLowerCase()];return $e===void 0?{node:null}:{forChild:Pe=>(Rn(Pe)&&!Pe.hasFormat($e)&&Pe.toggleFormat($e),Pe),node:null}}function Xo(ze=""){return Gl(new xs(ze))}function Rn(ze){return ze instanceof xs}class Va extends xs{static getType(){return"tab"}static clone($e){const Pe=new Va($e.__key);return Pe.__text=$e.__text,Pe.__format=$e.__format,Pe.__style=$e.__style,Pe}constructor($e){super(" ",$e),this.__detail=Zn}static importDOM(){return null}static importJSON($e){const Pe=sa();return Pe.setFormat($e.format),Pe.setStyle($e.style),Pe}exportJSON(){return{...super.exportJSON(),type:"tab",version:1}}setTextContent($e){throw Error("TabNode does not support setTextContent")}setDetail($e){throw Error("TabNode does not support setDetail")}setMode($e){throw Error("TabNode does not support setMode")}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}}function sa(){return Gl(new Va)}function Ea(ze){return ze instanceof Va}class Hs{constructor($e,Pe,We){this._selection=null,this.key=$e,this.offset=Pe,this.type=We}is($e){return this.key===$e.key&&this.offset===$e.offset&&this.type===$e.type}isBefore($e){let Pe=this.getNode(),We=$e.getNode();const nt=this.offset,it=$e.offset;if(qr(Pe)){const mt=Pe.getDescendantByIndex(nt);Pe=mt??Pe}if(qr(We)){const mt=We.getDescendantByIndex(it);We=mt??We}return Pe===We?ntit&&(We=it)}else if(!qr($e)){const it=$e.getNextSibling();if(Rn(it))Pe=it.__key,We=0,nt="text";else{const mt=$e.getParent();mt&&(Pe=mt.__key,We=$e.getIndexWithinParent()+1)}}ze.set(Pe,We,nt)}function Ll(ze,$e){if(qr($e)){const Pe=$e.getLastDescendant();qr(Pe)||Rn(Pe)?Bi(ze,Pe):Bi(ze,$e)}else Bi(ze,$e)}function su(ze,$e,Pe,We){const nt=ze.getNode(),it=nt.getChildAtIndex(ze.offset),mt=Xo(),xt=Gi(nt)?Sl().append(mt):mt;mt.setFormat(Pe),mt.setStyle(We),it===null?nt.append(xt):it.insertBefore(xt),ze.is($e)&&$e.set(mt.__key,0,"text"),ze.set(mt.__key,0,"text")}function Pl(ze,$e,Pe,We){ze.key=$e,ze.offset=Pe,ze.type=We}class dc{constructor($e){this._cachedNodes=null,this._nodes=$e,this.dirty=!1}getCachedNodes(){return this._cachedNodes}setCachedNodes($e){this._cachedNodes=$e}is($e){if(!la($e))return!1;const Pe=this._nodes,We=$e._nodes;return Pe.size===We.size&&Array.from(Pe).every(nt=>We.has(nt))}isCollapsed(){return!1}isBackward(){return!1}getStartEndPoints(){return null}add($e){this.dirty=!0,this._nodes.add($e),this._cachedNodes=null}delete($e){this.dirty=!0,this._nodes.delete($e),this._cachedNodes=null}clear(){this.dirty=!0,this._nodes.clear(),this._cachedNodes=null}has($e){return this._nodes.has($e)}clone(){return new dc(new Set(this._nodes))}extract(){return this.getNodes()}insertRawText($e){}insertText(){}insertNodes($e){const Pe=this.getNodes(),We=Pe.length,nt=Pe[We-1];let it;if(Rn(nt))it=nt.select();else{const mt=nt.getIndexWithinParent()+1;it=nt.getParentOrThrow().select(mt,mt)}it.insertNodes($e);for(let mt=0;mt0?ur=[]:ur=[xt]:ur=xt.getNodesBetween(qt),cd()||(this._cachedNodes=ur),ur}setTextNodeRange($e,Pe,We,nt){Pl(this.anchor,$e.__key,Pe,"text"),Pl(this.focus,We.__key,nt,"text"),this._cachedNodes=null,this.dirty=!0}getTextContent(){const $e=this.getNodes();if($e.length===0)return"";const Pe=$e[0],We=$e[$e.length-1],nt=this.anchor,it=this.focus,mt=nt.isBefore(it),[xt,qt]=Iu(this);let Jt="",rr=!0;for(let ur=0;ur<$e.length;ur++){const cr=$e[ur];if(qr(cr)&&!cr.isInline())rr||(Jt+=` -`),cr.isEmpty()?rr=!1:rr=!0;else if(rr=!1,Rn(cr)){let ir=cr.getTextContent();cr===Pe?cr===We?(nt.type!=="element"||it.type!=="element"||it.offset===nt.offset)&&(ir=xt=0;Ci--){const Wa=ki[Ci];if(Wa.is(ir)||qr(Wa)&&Wa.isParentOf(ir))break;Wa.isAttached()&&(!Cs.has(Wa)||Wa.is(mo)?jl||As.insertAfter(Wa,!1):Wa.remove())}if(!jl){let Ci=Bo,Wa=null;for(;Ci!==null;){const cu=Ci.getChildren(),Du=cu.length;(Du===0||cu[Du-1].is(Wa))&&(kn.delete(Ci.__key),Wa=Ci),Ci=Ci.getParent()}}if(!ir.isToken())ir=ir.spliceText(ur,Zr-ur,$e,!0),ir.getTextContent()===""?ir.remove():ir.isComposing()&&this.anchor.type==="text"&&(this.anchor.offset-=$e.length);else if(ur===Zr)ir.select();else{const Ci=Xo($e);Ci.select(),ir.replace(Ci)}for(let Ci=1;Ci0&&(Br!==Zr.getTextContentSize()&&([Zr]=Zr.splitText(Br)),Zr.setFormat(Hn));for(let en=rr+1;en(qr(Hn)||Ta(Hn))&&!Hn.isInline();if(!$e.some(it)){if(!qr(We))throw Error("Expected 'firstBlock' to be an ElementNode");const Hn=fp(this);We.splice(Hn,0,$e),nt.selectEnd();return}const mt=wd($e),xt=mt.getLastDescendant(),qt=mt.getChildren(),Jt=Hn=>"__value"in Hn&&"__checked"in Hn,rr=Hn=>qr(Hn)&&Ps(Hn)&&!Hn.isEmpty()&&qr(We)&&(!We.isEmpty()||Jt(We)),cr=!qr(We)||!We.isEmpty()?this.insertParagraph():null,ir=qt[qt.length-1];let Kr=qt[0];if(rr(Kr)){if(!qr(We))throw Error("Expected 'firstBlock' to be an ElementNode");We.append(...Kr.getChildren()),Kr=qt[1]}Kr&&ri(We,Kr);const Zr=Tu(xt,Ps);cr&&qr(Zr)&&(Jt(cr)||Ps(ir))&&(Zr.append(...cr.getChildren()),cr.remove()),qr(We)&&We.isEmpty()&&We.remove(),xt.selectEnd();const Br=qr(We)?We.getLastChild():null;li(Br)&&Zr!==We&&Br.remove()}insertParagraph(){if(this.anchor.key==="root"){const mt=Sl();return qn().splice(this.anchor.offset,0,[mt]),mt.select(),mt}const $e=fp(this),Pe=Tu(this.anchor.getNode(),Ps);if(!qr(Pe))throw Error("Expected ancestor to be an ElementNode");const We=Pe.getChildAtIndex($e),nt=We?[We,...We.getNextSiblings()]:[],it=Pe.insertNewAfter(this,!1);return it?(it.append(...nt),it.selectStart(),it):null}insertLineBreak($e){const Pe=bs();if(this.insertNodes([Pe]),$e){const We=Pe.getParentOrThrow(),nt=Pe.getIndexWithinParent();We.select(nt,nt)}}extract(){const $e=this.getNodes(),Pe=$e.length,We=Pe-1,nt=this.anchor,it=this.focus;let mt=$e[0],xt=$e[We];const[qt,Jt]=Iu(this);if(Pe===0)return[];if(Pe===1){if(Rn(mt)&&!this.isCollapsed()){const ur=qt>Jt?Jt:qt,cr=qt>Jt?qt:Jt,ir=mt.splitText(ur,cr),Kr=ur===0?ir[0]:ir[1];return Kr!=null?[Kr]:[]}return[mt]}const rr=nt.isBefore(it);if(Rn(mt)){const ur=rr?qt:Jt;ur===mt.getTextContentSize()?$e.shift():ur!==0&&([,mt]=mt.splitText(ur),$e[0]=mt)}if(Rn(xt)){const cr=xt.getTextContent().length,ir=rr?Jt:qt;ir===0?$e.pop():ir!==cr&&([xt]=xt.splitText(ir),$e[We]=xt)}return $e}modify($e,Pe,We){const nt=this.focus,it=this.anchor,mt=$e==="move",xt=lc(nt,Pe);if(Ta(xt)&&!xt.isIsolated()){if(mt&&xt.isKeyboardSelectable()){const ir=ud();ir.add(xt.__key),yi(ir);return}const cr=Pe?xt.getPreviousSibling():xt.getNextSibling();if(Rn(cr)){const ir=cr.__key,Kr=Pe?cr.getTextContent().length:0;nt.set(ir,Kr,"text"),mt&&it.set(ir,Kr,"text");return}else{const ir=xt.getParentOrThrow();let Kr,Zr;qr(cr)?(Zr=cr.__key,Kr=Pe?cr.getChildrenSize():0):(Kr=xt.getIndexWithinParent(),Zr=ir.__key,Pe||Kr++),nt.set(Zr,Kr,"element"),mt&&it.set(Zr,Kr,"element");return}}const qt=Ra(),Jt=tu(qt._window);if(!Jt)return;const rr=qt._blockCursorElement,ur=qt._rootElement;if(ur!==null&&rr!==null&&qr(xt)&&!xt.isInline()&&!xt.canBeEmpty()&&Il(rr,qt,ur),ld(Jt,$e,Pe?"backward":"forward",We),Jt.rangeCount>0){const cr=Jt.getRangeAt(0),ir=this.anchor.getNode(),Kr=Gi(ir)?ir:ls(ir);if(this.applyDOMRange(cr),this.dirty=!0,!mt){const Zr=this.getNodes(),Br=[];let Hn=!1;for(let en=0;en0)if(Pe){const en=Br[0];qr(en)?en.selectStart():en.getParentOrThrow().selectStart()}else{const en=Br[Br.length-1];qr(en)?en.selectEnd():en.getParentOrThrow().selectEnd()}(Jt.anchorNode!==cr.startContainer||Jt.anchorOffset!==cr.startOffset)&&Nf(this)}}}deleteCharacter($e){const Pe=this.isCollapsed();if(this.isCollapsed()){const We=this.anchor,nt=this.focus;let it=We.getNode();if(!$e&&(We.type==="element"&&qr(it)&&We.offset===it.getChildrenSize()||We.type==="text"&&We.offset===it.getTextContentSize())){const xt=it.getParent(),qt=it.getNextSibling()||(xt===null?null:xt.getNextSibling());if(qr(qt)&&qt.isShadowRoot())return}const mt=lc(nt,$e);if(Ta(mt)&&!mt.isIsolated()){if(mt.isKeyboardSelectable()&&qr(it)&&it.getChildrenSize()===0){it.remove();const xt=ud();xt.add(mt.__key),yi(xt)}else mt.remove(),Ra().dispatchCommand(C,void 0);return}else if(!$e&&qr(mt)&&qr(it)&&it.isEmpty()){it.remove(),mt.selectStart();return}if(this.modify("extend",$e,"character"),this.isCollapsed()){if($e&&We.offset===0&&(We.type==="element"?We.getNode():We.getNode().getParentOrThrow()).collapseAtStart(this))return}else{const xt=nt.type==="text"?nt.getNode():null;if(it=We.type==="text"?We.getNode():null,xt!==null&&xt.isSegmented()){const qt=nt.offset,Jt=xt.getTextContentSize();if(xt.is(it)||$e&&qt!==Jt||!$e&&qt!==0){cp(xt,$e,qt);return}}else if(it!==null&&it.isSegmented()){const qt=We.offset,Jt=it.getTextContentSize();if(it.is(xt)||$e&&qt!==0||!$e&&qt!==Jt){cp(it,$e,qt);return}}Ul(this,$e)}}if(this.removeText(),$e&&!Pe&&this.isCollapsed()&&this.anchor.type==="element"&&this.anchor.offset===0){const We=this.anchor.getNode();We.isEmpty()&&Gi(We.getParent())&&We.getIndexWithinParent()===0&&We.collapseAtStart(this)}}deleteLine($e){this.isCollapsed()&&(this.anchor.type==="text"&&this.modify("extend",$e,"lineboundary"),($e?this.focus:this.anchor).offset===0&&this.modify("extend",$e,"character")),this.removeText()}deleteWord($e){this.isCollapsed()&&this.modify("extend",$e,"word"),this.removeText()}isBackward(){return this.focus.isBefore(this.anchor)}getStartEndPoints(){return[this.anchor,this.focus]}}function la(ze){return ze instanceof dc}function ku(ze){const $e=ze.offset;if(ze.type==="text")return $e;const Pe=ze.getNode();return $e===Pe.getChildrenSize()?Pe.getTextContent().length:0}function Iu(ze){const $e=ze.getStartEndPoints();if($e===null)return[0,0];const[Pe,We]=$e;return Pe.type==="element"&&We.type==="element"&&Pe.key===We.key&&Pe.offset===We.offset?[0,0]:[ku(Pe),ku(We)]}function Nf(ze){const $e=ze.focus,Pe=ze.anchor,We=Pe.key,nt=Pe.offset,it=Pe.type;Pl(Pe,$e.key,$e.offset,$e.type),Pl($e,We,nt,it),ze._cachedNodes=null}function ld(ze,$e,Pe,We){ze.modify($e,Pe,We)}function Ul(ze,$e){const Pe=ze.anchor,We=ze.focus,nt=Pe.getNode(),it=We.getNode();if(nt===it&&Pe.type==="text"&&We.type==="text"){const mt=Pe.offset,xt=We.offset,qt=mtPe||cr){it.splice(rr,1),cr&&(qt=void 0);break}}const Jt=it.join("").trim();Jt===""?We.remove():(We.setTextContent(Jt),We.select(qt,qt))}function Df(ze,$e,Pe){const We=ze.getParent();return Pe===null||We===null||!We.canBeEmpty()||We!==Pe.getNode()}function dp(ze,$e,Pe,We){let nt=$e,it;if(ze.nodeType===An){let mt=!1;const xt=ze.childNodes,qt=xt.length;nt===qt&&(mt=!0,nt=qt-1);let Jt=xt[nt],rr=!1;if(Jt===We._blockCursorElement?(Jt=xt[nt+1],rr=!0):We._blockCursorElement!==null&&nt--,it=Ya(Jt),Rn(it))nt=Zl(it,mt);else{let ur=Ya(ze);if(ur===null)return null;if(qr(ur)){let cr=ur.getChildAtIndex(nt);if(qr(cr)&&Df(cr,nt,Pe)){const ir=mt?cr.getLastDescendant():cr.getFirstDescendant();ir===null?(ur=cr,nt=0):(cr=ir,ur=qr(cr)?cr:cr.getParentOrThrow())}Rn(cr)?(it=cr,ur=null,nt=Zl(cr,mt)):cr!==ur&&mt&&!rr&&nt++}else{const cr=ur.getIndexWithinParent();$e===0&&Ta(ur)&&Ya(ze)===ur?nt=cr:nt=cr+1,ur=ur.getParentOrThrow()}if(qr(ur))return Hi(ur.__key,nt,"element")}}else it=Ya(ze);return Rn(it)?Hi(it.__key,nt,"text"):null}function fc(ze,$e,Pe){const We=ze.offset,nt=ze.getNode();if(We===0){const it=nt.getPreviousSibling(),mt=nt.getParent();if(!$e)qr(it)&&!Pe&&it.isInline()?(ze.key=it.__key,ze.offset=it.getChildrenSize(),ze.type="element"):Rn(it)&&(ze.key=it.__key,ze.offset=it.getTextContent().length);else if((Pe||!$e)&&it===null&&qr(mt)&&mt.isInline()){const xt=mt.getPreviousSibling();Rn(xt)&&(ze.key=xt.__key,ze.offset=xt.getTextContent().length)}}else if(We===nt.getTextContent().length){const it=nt.getNextSibling(),mt=nt.getParent();if($e&&qr(it)&&it.isInline())ze.key=it.__key,ze.offset=0,ze.type="element";else if((Pe||$e)&&it===null&&qr(mt)&&mt.isInline()&&!mt.canInsertTextAfter()){const xt=mt.getNextSibling();Rn(xt)&&(ze.key=xt.__key,ze.offset=0)}}}function xa(ze,$e,Pe){if(ze.type==="text"&&$e.type==="text"){const We=ze.isBefore($e),nt=ze.is($e);fc(ze,We,nt),fc($e,!We,nt),nt&&($e.key=ze.key,$e.offset=ze.offset,$e.type=ze.type);const it=Ra();if(it.isComposing()&&it._compositionKey!==ze.key&&ho(Pe)){const mt=Pe.anchor,xt=Pe.focus;Pl(ze,mt.key,mt.offset,mt.type),Pl($e,xt.key,xt.offset,xt.type)}}}function Gp(ze,$e,Pe,We,nt,it){if(ze===null||Pe===null||!ea(nt,ze,Pe))return null;const mt=dp(ze,$e,ho(it)?it.anchor:null,nt);if(mt===null)return null;const xt=dp(Pe,We,ho(it)?it.focus:null,nt);if(xt===null)return null;if(mt.type==="element"&&xt.type==="element"){const qt=Ya(ze),Jt=Ya(Pe);if(Ta(qt)&&Ta(Jt))return null}return xa(mt,xt,it),[mt,xt]}function lu(ze){return qr(ze)&&!ze.isInline()}function jc(ze,$e,Pe,We,nt,it){const mt=hc(),xt=new Gs(Hi(ze,$e,nt),Hi(Pe,We,it),0,"");return xt.dirty=!0,mt._selection=xt,xt}function Fc(){const ze=Hi("root",0,"element"),$e=Hi("root",0,"element");return new Gs(ze,$e,0,"")}function ud(){return new dc(new Set)}function Ss(ze){const Pe=ze.getEditorState()._selection,We=tu(ze._window);return ho(Pe)||Pe==null?Vd(Pe,We,ze,null):Pe.clone()}function Vd(ze,$e,Pe,We){const nt=Pe._window;if(nt===null)return null;const it=We||nt.event,mt=it?it.type:void 0,xt=mt==="selectionchange",qt=!Nt()&&(xt||mt==="beforeinput"||mt==="compositionstart"||mt==="compositionend"||mt==="click"&&it&&it.detail===3||mt==="drop"||mt===void 0);let Jt,rr,ur,cr;if(!ho(ze)||qt){if($e===null)return null;if(Jt=$e.anchorNode,rr=$e.focusNode,ur=$e.anchorOffset,cr=$e.focusOffset,xt&&ho(ze)&&!ea(Pe,Jt,rr))return ze.clone()}else return ze.clone();const ir=Gp(Jt,ur,rr,cr,Pe,ze);if(ir===null)return null;const[Kr,Zr]=ir;return new Gs(Kr,Zr,ho(ze)?ze.format:0,ho(ze)?ze.style:"")}function pa(){return hc()._selection}function cs(){return Ra()._editorState._selection}function Ma(ze,$e,Pe,We=1){const nt=ze.anchor,it=ze.focus,mt=nt.getNode(),xt=it.getNode();if(!$e.is(mt)&&!$e.is(xt))return;const qt=$e.__key;if(ze.isCollapsed()){const Jt=nt.offset;if(Pe<=Jt&&We>0||Pe0||Pe0||Pe=xt,Jt=qt?it.getChildAtIndex(xt-1):it.getChildAtIndex(Pe);if(Rn(Jt)){let rr=0;qt&&(rr=Jt.getTextContentSize()),$e.set(Jt.__key,rr,"text"),We.set(Jt.__key,rr,"text")}return}if(qr(it)){const xt=it.getChildrenSize(),qt=Pe>=xt,Jt=qt?it.getChildAtIndex(xt-1):it.getChildAtIndex(Pe);if(Rn(Jt)){let rr=0;qt&&(rr=Jt.getTextContentSize()),$e.set(Jt.__key,rr,"text")}}if(qr(mt)){const xt=mt.getChildrenSize(),qt=nt>=xt,Jt=qt?mt.getChildAtIndex(xt-1):mt.getChildAtIndex(nt);if(Rn(Jt)){let rr=0;qt&&(rr=Jt.getTextContentSize()),We.set(Jt.__key,rr,"text")}}}function ds(ze,$e){const We=$e.getEditorState()._selection,nt=ze._selection;if(ho(nt)){const it=nt.anchor,mt=nt.focus;let xt;if(it.type==="text"&&(xt=it.getNode(),xt.selectionTransform(We,nt)),mt.type==="text"){const qt=mt.getNode();xt!==qt&&qt.selectionTransform(We,nt)}}}function El(ze,$e,Pe,We,nt){let it=null,mt=0,xt=null;We!==null?(it=We.__key,Rn(We)?(mt=We.getTextContentSize(),xt="text"):qr(We)&&(mt=We.getChildrenSize(),xt="element")):nt!==null&&(it=nt.__key,Rn(nt)?xt="text":qr(nt)&&(xt="element")),it!==null&&xt!==null?ze.set(it,mt,xt):(mt=$e.getIndexWithinParent(),mt===-1&&(mt=Pe.getChildrenSize()),ze.set(Pe.__key,mt,"element"))}function xl(ze,$e,Pe,We,nt){ze.type==="text"?(ze.key=Pe,$e||(ze.offset+=nt)):ze.offset>We.getIndexWithinParent()&&(ze.offset-=1)}function pc(ze,$e,Pe,We,nt,it,mt){const xt=We.anchorNode,qt=We.focusNode,Jt=We.anchorOffset,rr=We.focusOffset,ur=document.activeElement;if(nt.has("collaboration")&&ur!==it||ur!==null&&Is(ur))return;if(!ho($e)){ze!==null&&ea(Pe,xt,qt)&&We.removeAllRanges();return}const cr=$e.anchor,ir=$e.focus,Kr=cr.key,Zr=ir.key,Br=nd(Pe,Kr),Hn=nd(Pe,Zr),en=cr.offset,kn=ir.offset,ei=$e.format,Bo=$e.style,mo=$e.isCollapsed();let ki=Br,Cs=Hn,jl=!1;if(cr.type==="text"){ki=ii(Br);const As=cr.getNode();jl=As.getFormat()!==ei||As.getStyle()!==Bo}else ho(ze)&&ze.anchor.type==="text"&&(jl=!0);if(ir.type==="text"&&(Cs=ii(Hn)),!(ki===null||Cs===null)&&(mo&&(ze===null||jl||ho(ze)&&(ze.format!==ei||ze.style!==Bo))&&Ot(ei,Bo,en,Kr,performance.now()),!(Jt===en&&rr===kn&&xt===ki&&qt===Cs&&!(We.type==="Range"&&mo)&&((ur===null||!it.contains(ur))&&it.focus({preventScroll:!0}),cr.type!=="element")))){try{We.setBaseAndExtent(ki,en,Cs,kn)}catch{}if(!nt.has("skip-scroll-into-view")&&$e.isCollapsed()&&it!==null&&it===document.activeElement){const As=$e instanceof Gs&&$e.anchor.type==="element"?ki.childNodes[en]||null:We.rangeCount>0?We.getRangeAt(0):null;if(As!==null){let Ci;if(As instanceof Text){const Wa=document.createRange();Wa.selectNode(As),Ci=Wa.getBoundingClientRect()}else Ci=As.getBoundingClientRect();bu(Pe,Ci,it)}}Ad()}}function $d(ze){let $e=pa()||cs();$e===null&&($e=qn().selectEnd()),$e.insertNodes(ze)}function Vp(){const ze=pa();return ze===null?"":ze.getTextContent()}function fp(ze){ze.isCollapsed()||ze.removeText();const $e=ze.anchor;let Pe=$e.getNode(),We=$e.offset;for(;!Ps(Pe);)[Pe,We]=Sa(Pe,We);return We}function Sa(ze,$e){const Pe=ze.getParent();if(!Pe){const nt=Sl();return qn().append(nt),nt.select(),[qn(),0]}if(Rn(ze)){const nt=ze.splitText($e);if(nt.length===0)return[Pe,ze.getIndexWithinParent()];const it=$e===0?0:1,mt=nt[0].getIndexWithinParent()+it;return[Pe,mt]}if(!qr(ze)||$e===0)return[Pe,ze.getIndexWithinParent()];const We=ze.getChildAtIndex($e);if(We){const nt=new Gs(Hi(ze.__key,$e,"element"),Hi(ze.__key,$e,"element"),0,""),it=ze.insertNewAfter(nt);it&&it.append(We,...We.getNextSiblings())}return[Pe,ze.getIndexWithinParent()+1]}function wd(ze){const $e=Sl();let Pe=null;for(let We=0;We99)throw Error("One or more transforms are endlessly triggering additional transforms. May have encountered infinite recursion caused by transforms that have their preconditions too lose and/or conflict with each other.")}function hc(){if(qa===null)throw Error("Unable to find an active editor state. State helpers or node methods can only be used synchronously during the callback of editor.update() or editorState.read().");return qa}function Ra(){if(Vs===null)throw Error("Unable to find an active editor. This method can only be used synchronously during the callback of editor.update().");return Vs}function af(){return Vs}function qd(ze,$e,Pe){const We=$e.__type,nt=ks(ze,We);let it=Pe.get(We);it===void 0&&(it=Array.from(nt.transforms),Pe.set(We,it));const mt=it.length;for(let xt=0;xt0||rr>0;){if(qt>0){$e._dirtyLeaves=new Set;for(const ur of xt){const cr=nt.get(ur);Rn(cr)&&cr.isAttached()&&cr.isSimpleText()&&!cr.isUnmergeable()&&Nn(cr),cr!==void 0&&Mf(cr,it)&&qd($e,cr,mt),Pe.add(ur)}if(xt=$e._dirtyLeaves,qt=xt.size,qt>0){uu++;continue}}$e._dirtyLeaves=new Set,$e._dirtyElements=new Map;for(const ur of Jt){const cr=ur[0],ir=ur[1];if(cr!=="root"&&!ir)continue;const Kr=nt.get(cr);Kr!==void 0&&Mf(Kr,it)&&qd($e,Kr,mt),We.set(cr,ir)}xt=$e._dirtyLeaves,qt=xt.size,Jt=$e._dirtyElements,rr=Jt.size,uu++}$e._dirtyLeaves=Pe,$e._dirtyElements=We}function qp(ze){return kd(ze,Ra()._nodes)}function kd(ze,$e){const Pe=ze.type,We=$e.get(Pe);if(We===void 0)throw Error(`parseEditorState: type "${Pe}" + not found`);const nt=We.klass;if(ze.type!==nt.getType())throw Error(`LexicalNode: Node ${nt.name} does not implement .importJSON().`);const it=nt.importJSON(ze),mt=ze.children;if(qr(it)&&Array.isArray(mt))for(let xt=0;xt{throw new Error("Cannot call set() on a frozen Lexical node map")},$e.clear=()=>{throw new Error("Cannot call clear() on a frozen Lexical node map")},$e.delete=()=>{throw new Error("Cannot call delete() on a frozen Lexical node map")}}function Wl(ze,$e){const Pe=ze._pendingEditorState,We=ze._rootElement,nt=ze._headless||We===null;if(Pe===null)return;const it=ze._editorState,mt=it._selection,xt=Pe._selection,qt=ze._dirtyType!==pn,Jt=qa,rr=fl,ur=Vs,cr=ze._updating,ir=ze._observer;let Kr=null;if(ze._pendingEditorState=null,ze._editorState=Pe,!nt&&qt&&ir!==null){Vs=ze,qa=Pe,fl=!1,ze._updating=!0;try{const mo=ze._dirtyType,ki=ze._dirtyElements,Cs=ze._dirtyLeaves;ir.disconnect(),Kr=tc(it,Pe,ze,mo,ki,Cs)}catch(mo){if(mo instanceof Error&&ze._onError(mo),!Rd)Kd(ze,null,We,Pe),xo(ze),ze._dirtyType=bo,Rd=!0,Wl(ze,it),Rd=!1;else throw mo;return}finally{ir.observe(We,pp),ze._updating=cr,qa=Jt,fl=rr,Vs=ur}}Pe._readOnly||(Pe._readOnly=!0,sf(Pe),ho(xt)&&(Object.freeze(xt.anchor),Object.freeze(xt.focus)),Object.freeze(xt));const Zr=ze._dirtyLeaves,Br=ze._dirtyElements,Hn=ze._normalizedNodes,en=ze._updateTags,kn=ze._deferred;qt&&(ze._dirtyType=pn,ze._cloneNotNeeded.clear(),ze._dirtyLeaves=new Set,ze._dirtyElements=new Map,ze._normalizedNodes=new Set,ze._updateTags=new Set),Cu(ze,Pe);const ei=nt?null:tu(ze._window);if(ze._editable&&ei!==null&&(qt||xt===null||xt.dirty)){Vs=ze,qa=Pe;try{if(ir!==null&&ir.disconnect(),qt||xt===null||xt.dirty){const mo=ze._blockCursorElement;mo!==null&&Il(mo,ze,We),pc(mt,xt,ze,ei,en,We)}od(ze,We,xt),ir!==null&&ir.observe(We,pp)}finally{Vs=ur,qa=Jt}}Kr!==null&&lf(ze,Kr,en,Zr,it),!ho(xt)&&xt!==null&&(mt===null||!mt.is(xt))&&ze.dispatchCommand(C,void 0);const Bo=ze._pendingDecorators;Bo!==null&&(ze._decorators=Bo,ze._pendingDecorators=null,dd("decorator",ze,!0,Bo)),gp(ze,$e||it,Pe),dd("update",ze,!0,{dirtyElements:Br,dirtyLeaves:Zr,editorState:Pe,normalizedNodes:Hn,prevEditorState:$e||it,tags:en}),ji(ze,kn),go(ze)}function gp(ze,$e,Pe){const We=Ls($e),nt=Ls(Pe);We!==nt&&dd("textcontent",ze,!0,nt)}function lf(ze,$e,Pe,We,nt){const it=Array.from(ze._listeners.mutation),mt=it.length;for(let xt=0;xt{nt=Oo(ze,$e,Pe)}),nt}const We=Ku(ze);for(let nt=4;nt>=0;nt--)for(let it=0;it{Wl(ze)}):(Jt._flushSync=!1,rr&&(We.clear(),ze._deferred=[],ze._pendingEditorState=null))}function tl(ze,$e,Pe){ze._updating?ze._updates.push([$e,Pe]):Nu(ze,$e,Pe)}class ni extends Qs{constructor($e){super($e)}decorate($e,Pe){throw Error("decorate: base method not extended")}isIsolated(){return!1}isInline(){return!0}isKeyboardSelectable(){return!0}}function Ta(ze){return ze instanceof ni}class La extends Qs{constructor($e){super($e),this.__first=null,this.__last=null,this.__size=0,this.__format=0,this.__indent=0,this.__dir=null}getFormat(){return this.getLatest().__format}getFormatType(){const $e=this.getFormat();return gs[$e]||""}getIndent(){return this.getLatest().__indent}getChildren(){const $e=[];let Pe=this.getFirstChild();for(;Pe!==null;)$e.push(Pe),Pe=Pe.getNextSibling();return $e}getChildrenKeys(){const $e=[];let Pe=this.getFirstChild();for(;Pe!==null;)$e.push(Pe.__key),Pe=Pe.getNextSibling();return $e}getChildrenSize(){return this.getLatest().__size}isEmpty(){return this.getChildrenSize()===0}isDirty(){const Pe=Ra()._dirtyElements;return Pe!==null&&Pe.has(this.__key)}isLastChild(){const $e=this.getLatest(),Pe=this.getParentOrThrow().getLastChild();return Pe!==null&&Pe.is($e)}getAllTextNodes(){const $e=[];let Pe=this.getFirstChild();for(;Pe!==null;){if(Rn(Pe)&&$e.push(Pe),qr(Pe)){const We=Pe.getAllTextNodes();$e.push(...We)}Pe=Pe.getNextSibling()}return $e}getFirstDescendant(){let $e=this.getFirstChild();for(;$e!==null;){if(qr($e)){const Pe=$e.getFirstChild();if(Pe!==null){$e=Pe;continue}}break}return $e}getLastDescendant(){let $e=this.getLastChild();for(;$e!==null;){if(qr($e)){const Pe=$e.getLastChild();if(Pe!==null){$e=Pe;continue}}break}return $e}getDescendantByIndex($e){const Pe=this.getChildren(),We=Pe.length;if($e>=We){const it=Pe[We-1];return qr(it)&&it.getLastDescendant()||it||null}const nt=Pe[$e];return qr(nt)&&nt.getFirstDescendant()||nt||null}getFirstChild(){const Pe=this.getLatest().__first;return Pe===null?null:ma(Pe)}getFirstChildOrThrow(){const $e=this.getFirstChild();if($e===null)throw Error(`Expected node ${this.__key} to have a first child.`);return $e}getLastChild(){const Pe=this.getLatest().__last;return Pe===null?null:ma(Pe)}getLastChildOrThrow(){const $e=this.getLastChild();if($e===null)throw Error(`Expected node ${this.__key} to have a last child.`);return $e}getChildAtIndex($e){const Pe=this.getChildrenSize();let We,nt;if($e=$e;){if(nt===$e)return We;We=We.getPreviousSibling(),nt--}return null}getTextContent(){let $e="";const Pe=this.getChildren(),We=Pe.length;for(let nt=0;ntWe.remove()),$e}append(...$e){return this.splice(this.getChildrenSize(),0,$e)}setDirection($e){const Pe=this.getWritable();return Pe.__dir=$e,Pe}setFormat($e){const Pe=this.getWritable();return Pe.__format=$e!==""?Oa[$e]:0,this}setIndent($e){const Pe=this.getWritable();return Pe.__indent=$e,this}splice($e,Pe,We){const nt=We.length,it=this.getChildrenSize(),mt=this.getWritable(),xt=mt.__key,qt=[],Jt=[],rr=this.getChildAtIndex($e+Pe);let ur=null,cr=it-Pe+nt;if($e!==0)if($e===it)ur=this.getLastChild();else{const Kr=this.getChildAtIndex($e);Kr!==null&&(ur=Kr.getPreviousSibling())}if(Pe>0){let Kr=ur===null?this.getFirstChild():ur.getNextSibling();for(let Zr=0;Zr({root:pd(qn())}))}}class na extends La{static getType(){return"paragraph"}static clone($e){return new na($e.__key)}createDOM($e){const Pe=document.createElement("p"),We=Nc($e.theme,"paragraph");return We!==void 0&&Pe.classList.add(...We),Pe}updateDOM($e,Pe,We){return!1}static importDOM(){return{p:$e=>({conversion:Ts,priority:0})}}exportDOM($e){const{element:Pe}=super.exportDOM($e);if(Pe&&ad(Pe)){this.isEmpty()&&Pe.append(document.createElement("br"));const We=this.getFormatType();Pe.style.textAlign=We;const nt=this.getDirection();nt&&(Pe.dir=nt);const it=this.getIndent();it>0&&(Pe.style.textIndent=`${it*20}px`)}return{element:Pe}}static importJSON($e){const Pe=Sl();return Pe.setFormat($e.format),Pe.setIndent($e.indent),Pe.setDirection($e.direction),Pe}exportJSON(){return{...super.exportJSON(),type:"paragraph",version:1}}insertNewAfter($e,Pe){const We=Sl(),nt=this.getDirection();return We.setDirection(nt),this.insertAfter(We,Pe),We}collapseAtStart(){const $e=this.getChildren();if($e.length===0||Rn($e[0])&&$e[0].getTextContent().trim()===""){if(this.getNextSibling()!==null)return this.selectNext(),this.remove(),!0;if(this.getPreviousSibling()!==null)return this.selectPrevious(),this.remove(),!0}return!1}}function Ts(ze){const $e=Sl();if(ze.style){$e.setFormat(ze.style.textAlign);const Pe=parseInt(ze.style.textIndent,10)/20;Pe>0&&$e.setIndent(Pe)}return{node:$e}}function Sl(){return Gl(new na)}function uf(ze){return ze instanceof na}const Id=0,Lf=1,cf=2,Pf=3,df=4;function Kd(ze,$e,Pe,We){const nt=ze._keyToDOMMap;nt.clear(),ze._editorState=Bl(),ze._pendingEditorState=We,ze._compositionKey=null,ze._dirtyType=pn,ze._cloneNotNeeded.clear(),ze._dirtyLeaves=new Set,ze._dirtyElements.clear(),ze._normalizedNodes=new Set,ze._updateTags=new Set,ze._updates=[],ze._blockCursorElement=null;const it=ze._observer;it!==null&&(it.disconnect(),ze._observer=null),$e!==null&&($e.textContent=""),Pe!==null&&(Pe.textContent="",nt.set("root",Pe))}function vc(ze,$e){const Pe=new Map,We=new Set,nt=it=>{Object.keys(it).forEach(mt=>{let xt=Pe.get(mt);xt===void 0&&(xt=[],Pe.set(mt,xt)),xt.push(it[mt])})};return ze.forEach(it=>{const mt=it.klass.importDOM!=null?it.klass.importDOM.bind(it.klass):null;if(mt==null||We.has(mt))return;We.add(mt);const xt=mt();xt!==null&&nt(xt)}),$e&&nt($e),Pe}function vp(ze){const $e=ze||{},Pe=af(),We=$e.theme||{},nt=ze===void 0?Pe:$e.parentEditor||null,it=$e.disableEvents||!1,mt=Bl(),xt=$e.namespace||(nt!==null?nt._config.namespace:da()),qt=$e.editorState,Jt=[Pa,xs,nc,Va,na,...$e.nodes||[]],{onError:rr,html:ur}=$e,cr=$e.editable!==void 0?$e.editable:!0;let ir;if(ze===void 0&&Pe!==null)ir=Pe._nodes;else{ir=new Map;for(let Zr=0;Zr{Br.hasOwnProperty(Cs)||console.warn(`${mo} must implement static "${Cs}" method`)}),!Br.hasOwnProperty("importDOM")&&Br.hasOwnProperty("exportDOM")&&console.warn(`${mo} should implement "importDOM" if using a custom "exportDOM" method to ensure HTML serialization (important for copy & paste) works as expected`),ki instanceof ni&&(ki.hasOwnProperty("decorate")||console.warn(`${ki.constructor.name} must implement "decorate" method`)),Br.hasOwnProperty("importJSON")||console.warn(`${mo} should implement "importJSON" method to ensure JSON and default HTML serialization works as expected`),ki.hasOwnProperty("exportJSON")||console.warn(`${mo} should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected`)}}const kn=Br.getType(),ei=Br.transform(),Bo=new Set;ei!==null&&Bo.add(ei),ir.set(kn,{exportDOM:ur&&ur.export?ur.export.get(Br):void 0,klass:Br,replace:Hn,replaceWithKlass:en,transforms:Bo})}}const Kr=new mc(mt,nt,ir,{disableEvents:it,namespace:xt,theme:We},rr||console.error,vc(ir,ur?ur.import:void 0),cr);return qt!==void 0&&(Kr._pendingEditorState=qt,Kr._dirtyType=bo),Kr}class mc{constructor($e,Pe,We,nt,it,mt,xt){this._parentEditor=Pe,this._rootElement=null,this._editorState=$e,this._pendingEditorState=null,this._compositionKey=null,this._deferred=[],this._keyToDOMMap=new Map,this._updates=[],this._updating=!1,this._listeners={decorator:new Set,editable:new Set,mutation:new Map,root:new Set,textcontent:new Set,update:new Set},this._commands=new Map,this._config=nt,this._nodes=We,this._decorators={},this._pendingDecorators=null,this._dirtyType=pn,this._cloneNotNeeded=new Set,this._dirtyLeaves=new Set,this._dirtyElements=new Map,this._normalizedNodes=new Set,this._updateTags=new Set,this._observer=null,this._key=da(),this._onError=it,this._htmlConversions=mt,this._editable=xt,this._headless=Pe!==null&&Pe._headless,this._window=null,this._blockCursorElement=null}isComposing(){return this._compositionKey!=null}registerUpdateListener($e){const Pe=this._listeners.update;return Pe.add($e),()=>{Pe.delete($e)}}registerEditableListener($e){const Pe=this._listeners.editable;return Pe.add($e),()=>{Pe.delete($e)}}registerDecoratorListener($e){const Pe=this._listeners.decorator;return Pe.add($e),()=>{Pe.delete($e)}}registerTextContentListener($e){const Pe=this._listeners.textcontent;return Pe.add($e),()=>{Pe.delete($e)}}registerRootListener($e){const Pe=this._listeners.root;return $e(this._rootElement,null),Pe.add($e),()=>{$e(null,this._rootElement),Pe.delete($e)}}registerCommand($e,Pe,We){if(We===void 0)throw Error('Listener for type "command" requires a "priority".');const nt=this._commands;nt.has($e)||nt.set($e,[new Set,new Set,new Set,new Set,new Set]);const it=nt.get($e);if(it===void 0)throw Error(`registerCommand: Command ${String($e)} not found in command map`);const mt=it[We];return mt.add(Pe),()=>{mt.delete(Pe),it.every(xt=>xt.size===0)&&nt.delete($e)}}registerMutationListener($e,Pe){if(this._nodes.get($e.getType())===void 0)throw Error(`Node ${$e.name} has not been registered. Ensure node has been passed to createEditor.`);const nt=this._listeners.mutation;return nt.set(Pe,$e),()=>{nt.delete(Pe)}}registerNodeTransformToKlass($e,Pe){const We=$e.getType(),nt=this._nodes.get(We);if(nt===void 0)throw Error(`Node ${$e.name} has not been registered. Ensure node has been passed to createEditor.`);return nt.transforms.add(Pe),nt}registerNodeTransform($e,Pe){const We=this.registerNodeTransformToKlass($e,Pe),nt=[We],it=We.replaceWithKlass;if(it!=null){const mt=this.registerNodeTransformToKlass(it,Pe);nt.push(mt)}return Ol(this,$e.getType()),()=>{nt.forEach(mt=>mt.transforms.delete(Pe))}}hasNode($e){return this._nodes.has($e.getType())}hasNodes($e){return $e.every(this.hasNode.bind(this))}dispatchCommand($e,Pe){return Fn(this,$e,Pe)}getDecorators(){return this._decorators}getRootElement(){return this._rootElement}getKey(){return this._key}setRootElement($e){const Pe=this._rootElement;if($e!==Pe){const We=Nc(this._config.theme,"root"),nt=this._pendingEditorState||this._editorState;if(this._rootElement=$e,Kd(this,Pe,$e,nt),Pe!==null&&(this._config.disableEvents||wu(Pe),We!=null&&Pe.classList.remove(...We)),$e!==null){const it=ll($e),mt=$e.style;mt.userSelect="text",mt.whiteSpace="pre-wrap",mt.wordBreak="break-word",$e.setAttribute("data-lexical-editor","true"),this._window=it,this._dirtyType=bo,xo(this),this._updateTags.add("history-merge"),Wl(this),this._config.disableEvents||Kl($e,this),We!=null&&$e.classList.add(...We)}else this._editorState=nt,this._pendingEditorState=null,this._window=null;dd("root",this,!1,$e,Pe)}}getElementByKey($e){return this._keyToDOMMap.get($e)||null}getEditorState(){return this._editorState}setEditorState($e,Pe){if($e.isEmpty())throw Error("setEditorState: the editor state is empty. Ensure the editor state's root node never becomes empty.");In(this);const We=this._pendingEditorState,nt=this._updateTags,it=Pe!==void 0?Pe.tag:null;We!==null&&!We.isEmpty()&&(it!=null&&nt.add(it),Wl(this)),this._pendingEditorState=$e,this._dirtyType=bo,this._dirtyElements.set("root",!1),this._compositionKey=null,it!=null&&nt.add(it),Wl(this)}parseEditorState($e,Pe){const We=typeof $e=="string"?JSON.parse($e):$e;return gc(We,this,Pe)}update($e,Pe){tl(this,$e,Pe)}focus($e,Pe={}){const We=this._rootElement;We!==null&&(We.setAttribute("autocapitalize","off"),tl(this,()=>{const nt=pa(),it=qn();nt!==null?nt.dirty=!0:it.getChildrenSize()!==0&&(Pe.defaultSelection==="rootStart"?it.selectStart():it.selectEnd())},{onUpdate:()=>{We.removeAttribute("autocapitalize"),$e&&$e()},tag:"focus"}),this._pendingEditorState===null&&We.removeAttribute("autocapitalize"))}blur(){const $e=this._rootElement;$e!==null&&$e.blur();const Pe=tu(this._window);Pe!==null&&Pe.removeAllRanges()}isEditable(){return this._editable}setEditable($e){this._editable!==$e&&(this._editable=$e,dd("editable",this,!0,$e))}toJSON(){return{editorState:this._editorState.toJSON()}}}return Lexical_dev.$addUpdateTag=Jn,Lexical_dev.$applyNodeReplacement=Gl,Lexical_dev.$copyNode=Mc,Lexical_dev.$createLineBreakNode=bs,Lexical_dev.$createNodeSelection=ud,Lexical_dev.$createParagraphNode=Sl,Lexical_dev.$createPoint=Hi,Lexical_dev.$createRangeSelection=Fc,Lexical_dev.$createTabNode=sa,Lexical_dev.$createTextNode=Xo,Lexical_dev.$getAdjacentNode=lc,Lexical_dev.$getCharacterOffsets=Iu,Lexical_dev.$getEditor=Rf,Lexical_dev.$getNearestNodeFromDOMNode=Ms,Lexical_dev.$getNearestRootOrShadowRoot=ls,Lexical_dev.$getNodeByKey=ma,Lexical_dev.$getPreviousSelection=cs,Lexical_dev.$getRoot=qn,Lexical_dev.$getSelection=pa,Lexical_dev.$getTextContent=Vp,Lexical_dev.$hasAncestor=Dc,Lexical_dev.$hasUpdateTag=ys,Lexical_dev.$insertNodes=$d,Lexical_dev.$isBlockElementNode=lu,Lexical_dev.$isDecoratorNode=Ta,Lexical_dev.$isElementNode=qr,Lexical_dev.$isInlineElementOrDecoratorNode=Oi,Lexical_dev.$isLeafNode=as,Lexical_dev.$isLineBreakNode=li,Lexical_dev.$isNodeSelection=la,Lexical_dev.$isParagraphNode=uf,Lexical_dev.$isRangeSelection=ho,Lexical_dev.$isRootNode=Gi,Lexical_dev.$isRootOrShadowRoot=eu,Lexical_dev.$isTabNode=Ea,Lexical_dev.$isTextNode=Rn,Lexical_dev.$nodesOfType=Wu,Lexical_dev.$normalizeSelection__EXPERIMENTAL=so,Lexical_dev.$parseSerializedNode=qp,Lexical_dev.$selectAll=wf,Lexical_dev.$setCompositionKey=Qn,Lexical_dev.$setSelection=yi,Lexical_dev.$splitNode=up,Lexical_dev.BLUR_COMMAND=Vt,Lexical_dev.CAN_REDO_COMMAND=Lt,Lexical_dev.CAN_UNDO_COMMAND=Gt,Lexical_dev.CLEAR_EDITOR_COMMAND=Ct,Lexical_dev.CLEAR_HISTORY_COMMAND=$t,Lexical_dev.CLICK_COMMAND=O,Lexical_dev.COMMAND_PRIORITY_CRITICAL=df,Lexical_dev.COMMAND_PRIORITY_EDITOR=Id,Lexical_dev.COMMAND_PRIORITY_HIGH=Pf,Lexical_dev.COMMAND_PRIORITY_LOW=Lf,Lexical_dev.COMMAND_PRIORITY_NORMAL=cf,Lexical_dev.CONTROLLED_TEXT_INSERTION_COMMAND=B,Lexical_dev.COPY_COMMAND=Qe,Lexical_dev.CUT_COMMAND=lt,Lexical_dev.DELETE_CHARACTER_COMMAND=I,Lexical_dev.DELETE_LINE_COMMAND=K,Lexical_dev.DELETE_WORD_COMMAND=V,Lexical_dev.DRAGEND_COMMAND=gt,Lexical_dev.DRAGOVER_COMMAND=dt,Lexical_dev.DRAGSTART_COMMAND=et,Lexical_dev.DROP_COMMAND=tt,Lexical_dev.DecoratorNode=ni,Lexical_dev.ElementNode=La,Lexical_dev.FOCUS_COMMAND=Pt,Lexical_dev.FORMAT_ELEMENT_COMMAND=Ue,Lexical_dev.FORMAT_TEXT_COMMAND=W,Lexical_dev.INDENT_CONTENT_COMMAND=Xe,Lexical_dev.INSERT_LINE_BREAK_COMMAND=N,Lexical_dev.INSERT_PARAGRAPH_COMMAND=L,Lexical_dev.INSERT_TAB_COMMAND=Je,Lexical_dev.KEY_ARROW_DOWN_COMMAND=Te,Lexical_dev.KEY_ARROW_LEFT_COMMAND=xe,Lexical_dev.KEY_ARROW_RIGHT_COMMAND=pe,Lexical_dev.KEY_ARROW_UP_COMMAND=ge,Lexical_dev.KEY_BACKSPACE_COMMAND=Be,Lexical_dev.KEY_DELETE_COMMAND=je,Lexical_dev.KEY_DOWN_COMMAND=oe,Lexical_dev.KEY_ENTER_COMMAND=we,Lexical_dev.KEY_ESCAPE_COMMAND=Ie,Lexical_dev.KEY_MODIFIER_COMMAND=bt,Lexical_dev.KEY_SPACE_COMMAND=ke,Lexical_dev.KEY_TAB_COMMAND=Ke,Lexical_dev.LineBreakNode=nc,Lexical_dev.MOVE_TO_END=me,Lexical_dev.MOVE_TO_START=Ae,Lexical_dev.OUTDENT_CONTENT_COMMAND=ot,Lexical_dev.PASTE_COMMAND=j,Lexical_dev.ParagraphNode=na,Lexical_dev.REDO_COMMAND=J,Lexical_dev.REMOVE_TEXT_COMMAND=F,Lexical_dev.RootNode=Pa,Lexical_dev.SELECTION_CHANGE_COMMAND=C,Lexical_dev.SELECTION_INSERT_CLIPBOARD_NODES_COMMAND=R,Lexical_dev.SELECT_ALL_COMMAND=ht,Lexical_dev.TabNode=Va,Lexical_dev.TextNode=xs,Lexical_dev.UNDO_COMMAND=X,Lexical_dev.createCommand=S,Lexical_dev.createEditor=vp,Lexical_dev.getNearestEditorFromDOMNode=fi,Lexical_dev.isCurrentlyReadOnlyMode=cd,Lexical_dev.isHTMLAnchorElement=Td,Lexical_dev.isHTMLElement=ad,Lexical_dev.isSelectionCapturedInDecoratorInput=Is,Lexical_dev.isSelectionWithinEditor=ea,Lexical_dev}var define_process_env_default$b={};const Lexical=define_process_env_default$b.NODE_ENV==="development"?requireLexical_dev():requireLexical_prod();var Lexical_1=Lexical,hasRequiredLexicalSelection_prod;function requireLexicalSelection_prod(){if(hasRequiredLexicalSelection_prod)return LexicalSelection_prod;hasRequiredLexicalSelection_prod=1;var S=Lexical_1;let C=new Map;function R(X){for(;X!=null;){if(X.nodeType===Node.TEXT_NODE)return X;X=X.firstChild}return null}function O(X){let J=X.parentNode;if(J==null)throw Error("Should never happen");return[J,Array.from(J.childNodes).indexOf(X)]}function I(X){let J={};X=X.split(";");for(let oe of X)if(oe!==""){let[pe,me]=oe.split(/:([^]+)/);pe&&me&&(J[pe.trim()]=me.trim())}return J}function N(X){let J=C.get(X);return J===void 0&&(J=I(X),C.set(X,J)),J}function L(X){let J="";for(let oe in X)oe&&(J+=`${oe}: ${X[oe]};`);return J}function B(X,J){let oe=N("getStyle"in X?X.getStyle():X.style);J=Object.entries(J).reduce((me,[xe,Ae])=>(Ae instanceof Function?me[xe]=Ae(oe[xe]):Ae===null?delete me[xe]:me[xe]=Ae,me),{...oe});let pe=L(J);X.setStyle(pe),C.set(pe,J)}function j(X){for(;X!==null&&!S.$isRootOrShadowRoot(X);){let J=X.getLatest(),oe=X.getParent();J.getChildrenSize()===0&&X.remove(!0),X=oe}}function F(X,J,oe,pe,me=null){if(J.length!==0){var xe=J[0],Ae=new Map,ge=[];xe=S.$isElementNode(xe)?xe:xe.getParentOrThrow(),xe.isInline()&&(xe=xe.getParentOrThrow());for(var Te=!1;xe!==null;){var we=xe.getPreviousSibling();if(we!==null){xe=we,Te=!0;break}if(xe=xe.getParentOrThrow(),S.$isRootOrShadowRoot(xe))break}we=new Set;for(var ke=0;ke{Ke.append(Je),Ie.add(Je.getKey()),S.$isElementNode(Je)&&Je.getChildrenKeys().forEach(Xe=>Ie.add(Xe))}),j(je)}}else if(we.has(Be.getKey())){if(!S.$isElementNode(Be))throw Error("Expected node in emptyElements to be an ElementNode");je=pe(),je.setFormat(Be.getFormatType()),je.setIndent(Be.getIndent()),ge.push(je),Be.remove(!0)}}if(me!==null)for(J=0;Jwe?we:ke,X=Ke==="element"?Te:ke>we?ke:we,Ie!==X&&(Ie===0&&X===Te?(B(me,J),me.select(Ie,X)):(oe=me.splitText(Ie,X),oe=Ie===0?oe[0]:oe[1],B(oe,J),oe.select(0,X-Ie))));else for(S.$isTextNode(me)&&Ieke?ke:we,Ae=we>ke?we:ke):xe?(pe=oe?ke:we,Ae=void 0):me&&(oe=oe?we:ke,pe=0,Ae=oe),J.__text=J.__text.slice(pe,Ae)}}return J},LexicalSelection_prod.$wrapNodes=function(X,J,oe=null){var pe=X.getStartEndPoints(),me=pe?pe[0]:null;pe=X.getNodes();let xe=pe.length;if(me!==null&&(xe===0||xe===1&&me.type==="element"&&me.getNode().getChildrenSize()===0)){X=me.type==="text"?me.getNode().getParentOrThrow():me.getNode(),pe=X.getChildren();let ge=J();ge.setFormat(X.getFormatType()),ge.setIndent(X.getIndent()),pe.forEach(Te=>ge.append(Te)),oe&&(ge=oe.append(ge)),X.replace(ge)}else{me=null;var Ae=[];for(let ge=0;ge{let ge=xe.top-Ae.top;return 3>=Math.abs(ge)?xe.left-Ae.left:ge});let me;for(let xe=0;xeAe.top&&me.left+me.width>Ae.left||ge?(J.splice(xe--,1),pe--):me=Ae}return J},LexicalSelection_prod.getStyleObjectFromCSS=N,LexicalSelection_prod.trimTextContentFromAnchor=function(X,J,oe){let pe=J.getNode();if(S.$isElementNode(pe)){var me=pe.getDescendantByIndex(J.offset);me!==null&&(pe=me)}for(;0=me)ge=pe.getParent(),pe.remove(),ge==null||ge.getChildrenSize()!==0||S.$isRootNode(ge)||ge.remove(),oe-=me+Ae,pe=xe;else{let Te=pe.getKey();Ae=X.getEditorState().read(()=>{const ke=S.$getNodeByKey(Te);return S.$isTextNode(ke)&&ke.isSimpleText()?ke.getTextContent():null}),xe=me-oe;let we=ge.slice(0,xe);Ae!==null&&Ae!==ge?(oe=S.$getPreviousSelection(),me=pe,pe.isSimpleText()?pe.setTextContent(Ae):(me=S.$createTextNode(Ae),pe.replace(me)),S.$isRangeSelection(oe)&&oe.isCollapsed()&&(oe=oe.anchor.offset,me.select(oe,oe))):pe.isSimpleText()?(Ae=J.key===Te,ge=J.offset,ge{const Pt=Lt.top-Gt.top;return Math.abs(Pt)<=3?Lt.left-Gt.left:Pt});let $t;for(let Lt=0;LtGt.top&&$t.left+$t.width>Gt.left,Vt=Gt.width+lt===gt.width;if(Pt||Vt){ht.splice(Lt--,1),Ct--;continue}$t=Gt}return ht}function L(Ue){const et={},dt=Ue.split(";");for(const gt of dt)if(gt!==""){const[Qe,lt]=gt.split(/:([^]+)/);Qe&<&&(et[Qe.trim()]=lt.trim())}return et}function B(Ue){let et=C.get(Ue);return et===void 0&&(et=L(Ue),C.set(Ue,et)),Object.freeze(et),et}function j(Ue){let et="";for(const dt in Ue)dt&&(et+=`${dt}: ${Ue[dt]};`);return et}function F(Ue,et){return Ue.__first=et.__first,Ue.__last=et.__last,Ue.__size=et.__size,Ue.__format=et.__format,Ue.__indent=et.__indent,Ue.__dir=et.__dir,Ue}function V(Ue,et){return Ue.__format=et.__format,Ue.__style=et.__style,Ue.__mode=et.__mode,Ue.__detail=et.__detail,Ue}function K(Ue){const dt=Ue.constructor.clone(Ue);return dt.__parent=Ue.__parent,dt.__next=Ue.__next,dt.__prev=Ue.__prev,S.$isElementNode(Ue)&&S.$isElementNode(dt)?F(dt,Ue):S.$isTextNode(Ue)&&S.$isTextNode(dt)?V(dt,Ue):dt}function W(Ue,et){const dt=Ue.getStartEndPoints();if(et.isSelected(Ue)&&!et.isSegmented()&&!et.isToken()&&dt!==null){const[gt,Qe]=dt,lt=Ue.isBackward(),ht=gt.getNode(),Ct=Qe.getNode(),$t=et.is(ht),Lt=et.is(Ct);if($t||Lt){const[Gt,Pt]=S.$getCharacterOffsets(Ue),Vt=ht.is(Ct),bt=et.is(lt?Ct:ht),It=et.is(lt?ht:Ct);let Ht=0,kt;if(Vt)Ht=Gt>Pt?Pt:Gt,kt=Gt>Pt?Gt:Pt;else if(bt)Ht=lt?Pt:Gt,kt=void 0;else if(It){const Kt=lt?Gt:Pt;Ht=0,kt=Kt}return et.__text=et.__text.slice(Ht,kt),et}}return et}function X(Ue){if(Ue.type==="text")return Ue.offset===Ue.getNode().getTextContentSize();const et=Ue.getNode();if(!S.$isElementNode(et))throw Error("isAtNodeEnd: node must be a TextNode or ElementNode");return Ue.offset===et.getChildrenSize()}function J(Ue,et,dt){let gt=et.getNode(),Qe=dt;if(S.$isElementNode(gt)){const lt=gt.getDescendantByIndex(et.offset);lt!==null&&(gt=lt)}for(;Qe>0&>!==null;){if(S.$isElementNode(gt)){const Lt=gt.getLastDescendant();Lt!==null&&(gt=Lt)}let lt=gt.getPreviousSibling(),ht=0;if(lt===null){let Lt=gt.getParentOrThrow(),Gt=Lt.getPreviousSibling();for(;Gt===null;){if(Lt=Lt.getParent(),Lt===null){lt=null;break}Gt=Lt.getPreviousSibling()}Lt!==null&&(ht=Lt.isInline()?0:2,lt=Gt)}let Ct=gt.getTextContent();Ct===""&&S.$isElementNode(gt)&&!gt.isInline()&&(Ct=` - -`);const $t=Ct.length;if(!S.$isTextNode(gt)||Qe>=$t){const Lt=gt.getParent();gt.remove(),Lt!=null&&Lt.getChildrenSize()===0&&!S.$isRootNode(Lt)&&Lt.remove(),Qe-=$t+ht,gt=lt}else{const Lt=gt.getKey(),Gt=Ue.getEditorState().read(()=>{const bt=S.$getNodeByKey(Lt);return S.$isTextNode(bt)&&bt.isSimpleText()?bt.getTextContent():null}),Pt=$t-Qe,Vt=Ct.slice(0,Pt);if(Gt!==null&&Gt!==Ct){const bt=S.$getPreviousSelection();let It=gt;if(gt.isSimpleText())gt.setTextContent(Gt);else{const Ht=S.$createTextNode(Gt);gt.replace(Ht),It=Ht}if(S.$isRangeSelection(bt)&&bt.isCollapsed()){const Ht=bt.anchor.offset;It.select(Ht,Ht)}}else if(gt.isSimpleText()){const bt=et.key===Lt;let It=et.offset;It(Ct instanceof Function?lt[ht]=Ct(dt[ht]):Ct===null?delete lt[ht]:lt[ht]=Ct,lt),{...dt}),Qe=j(gt);Ue.setStyle(Qe),C.set(Qe,gt)}function me(Ue,et){const dt=Ue.getNodes(),gt=dt.length,Qe=Ue.getStartEndPoints();if(Qe===null)return;const[lt,ht]=Qe,Ct=gt-1;let $t=dt[0],Lt=dt[Ct];if(Ue.isCollapsed()&&S.$isRangeSelection(Ue)){pe(Ue,et);return}const Pt=$t.getTextContent().length,Vt=ht.offset;let bt=lt.offset;const It=lt.isBefore(ht);let Ht=It?bt:Vt,kt=It?Vt:bt;const Kt=It?lt.type:ht.type,tr=It?ht.type:lt.type,wr=It?ht.key:lt.key;if(S.$isTextNode($t)&&Ht===Pt){const xr=$t.getNextSibling();S.$isTextNode(xr)&&(bt=0,Ht=0,$t=xr)}if(dt.length===1){if(S.$isTextNode($t)&&$t.canHaveFormat()){if(Ht=Kt==="element"?0:bt>Vt?Vt:bt,kt=tr==="element"?Pt:bt>Vt?bt:Vt,Ht===kt)return;if(Ht===0&&kt===Pt)pe($t,et),$t.select(Ht,kt);else{const xr=$t.splitText(Ht,kt),Vr=Ht===0?xr[0]:xr[1];pe(Vr,et),Vr.select(0,kt-Ht)}}}else{if(S.$isTextNode($t)&&Ht<$t.getTextContentSize()&&$t.canHaveFormat()&&(Ht!==0&&($t=$t.splitText(Ht)[1],Ht=0,lt.set($t.getKey(),Ht,"text")),pe($t,et)),S.$isTextNode(Lt)&&Lt.canHaveFormat()){const Vr=Lt.getTextContent().length;Lt.__key!==wr&&kt!==0&&(kt=Vr),kt!==Vr&&([Lt]=Lt.splitText(kt)),(kt!==0||tr==="element")&&pe(Lt,et)}for(let xr=1;xrPt.append(Vt)),dt&&(Pt=dt.append(Pt)),Lt.replace(Pt);return}let Ct=null,$t=[];for(let Lt=0;Lt{tr.append(wr),Pt.add(wr.getKey()),S.$isElementNode(wr)&&wr.getChildrenKeys().forEach(xr=>Pt.add(xr))}),ge(kt)}}else if(Gt.has(Ht.getKey())){if(!S.$isElementNode(Ht))throw Error("Expected node in emptyElements to be an ElementNode");const Kt=gt();Kt.setFormat(Ht.getFormatType()),Kt.setIndent(Ht.getIndent()),Ct.push(Kt),Ht.remove(!0)}}if(Qe!==null)for(let It=0;It=0;It--){const Ht=Ct[It];$t.insertAfter(Ht)}else{const It=$t.getFirstChild();if(S.$isElementNode(It)&&($t=It),It===null)if(Qe)$t.append(Qe);else for(let Ht=0;Ht=0;It--){const Ht=Ct[It];$t.insertAfter(Ht),Vt=Ht}const bt=S.$getPreviousSelection();S.$isRangeSelection(bt)&&Ae(bt.anchor)&&Ae(bt.focus)?S.$setSelection(bt.clone()):Vt!==null?Vt.selectEnd():Ue.dirty=!0}function ke(Ue,et){const dt=S.$getAdjacentNode(Ue.focus,et);return S.$isDecoratorNode(dt)&&!dt.isIsolated()||S.$isElementNode(dt)&&!dt.isInline()&&!dt.canBeEmpty()}function Be(Ue,et,dt,gt){Ue.modify(et?"extend":"move",dt,gt)}function Ie(Ue){const et=Ue.anchor.getNode();return(S.$isRootNode(et)?et:et.getParentOrThrow()).getDirection()==="rtl"}function je(Ue,et,dt){const gt=Ie(Ue);Be(Ue,et,dt?!gt:gt,"character")}function Ke(Ue){const et=Ue.anchor,dt=Ue.focus,lt=et.getNode().getTopLevelElementOrThrow().getParentOrThrow();let ht=lt.getFirstDescendant(),Ct=lt.getLastDescendant(),$t="element",Lt="element",Gt=0;S.$isTextNode(ht)?$t="text":!S.$isElementNode(ht)&&ht!==null&&(ht=ht.getParentOrThrow()),S.$isTextNode(Ct)?(Lt="text",Gt=Ct.getTextContentSize()):!S.$isElementNode(Ct)&&Ct!==null&&(Ct=Ct.getParentOrThrow()),ht&&Ct&&(et.set(ht.getKey(),0,$t),dt.set(Ct.getKey(),Gt,Lt))}function Je(Ue,et,dt){const gt=Ue.getStyle(),Qe=B(gt);return Qe!==null&&Qe[et]||dt}function Xe(Ue,et,dt=""){let gt=null;const Qe=Ue.getNodes(),lt=Ue.anchor,ht=Ue.focus,Ct=Ue.isBackward(),$t=Ct?ht.offset:lt.offset,Lt=Ct?ht.getNode():lt.getNode();if(Ue.isCollapsed()&&Ue.style!==""){const Gt=Ue.style,Pt=B(Gt);if(Pt!==null&&et in Pt)return Pt[et]}for(let Gt=0;Gt{j.forEach(F=>F())}}let I={attributes:!0,characterData:!0,childList:!0,subtree:!0};function N(j,F,V){function K(){if(J===null)throw Error("Unexpected null rootDOMNode");if(oe===null)throw Error("Unexpected null parentDOMNode");let{left:ge,top:Te}=J.getBoundingClientRect();var we=oe;let ke=S.createRectsFromDOMRange(j,F);xe.isConnected||we.append(xe),we=!1;for(let je=0;jeke.length;)me.pop();we&&V(me)}function W(){J=oe=null,pe!==null&&pe.disconnect(),pe=null,xe.remove();for(let ge of me)ge.remove();me=[]}function X(){let ge=j.getRootElement();if(ge===null)return W();let Te=ge.parentElement;if(!(Te instanceof HTMLElement))return W();W(),J=ge,oe=Te,pe=new MutationObserver(we=>{let ke=j.getRootElement(),Be=ke&&ke.parentElement;if(ke!==J||Be!==oe)return X();for(let Ie of we)if(!xe.contains(Ie.target))return K()}),pe.observe(Te,I),K()}let J=null,oe=null,pe=null,me=[],xe=document.createElement("div"),Ae=j.registerRootListener(X);return()=>{Ae(),W()}}function L(j,F){for(let V of F)if(j.type.startsWith(V))return!0;return!1}let B=(j,F)=>{for(;j!==C.$getRoot()&&j!=null;){if(F(j))return j;j=j.getParent()}return null};return LexicalUtils_prod.$splitNode=C.$splitNode,LexicalUtils_prod.isHTMLAnchorElement=C.isHTMLAnchorElement,LexicalUtils_prod.isHTMLElement=C.isHTMLElement,LexicalUtils_prod.$dfs=function(j,F){let V=[];j=(j||C.$getRoot()).getLatest(),F=F||(C.$isElementNode(j)?j.getLastDescendant():j);for(var K=j,W=0;(K=K.getParent())!==null;)W++;for(K=W;j!==null&&!j.is(F);)if(V.push({depth:K,node:j}),C.$isElementNode(j)&&0C.$isElementNode(V)&&!V.isInline());return C.$isElementNode(F)||R(4,j.__key),F},LexicalUtils_prod.$getNearestNodeOfType=function(j,F){for(;j!=null;){if(j instanceof F)return j;j=j.getParent()}return null},LexicalUtils_prod.$insertFirst=function(j,F){let V=j.getFirstChild();V!==null?V.insertBefore(F):j.append(F)},LexicalUtils_prod.$insertNodeToNearestRoot=function(j){var F=C.$getSelection()||C.$getPreviousSelection();if(C.$isRangeSelection(F)){var{focus:V}=F;if(F=V.getNode(),V=V.offset,C.$isRootOrShadowRoot(F))V=F.getChildAtIndex(V),V==null?F.append(j):V.insertBefore(j),j.selectNext();else{let K,W;C.$isTextNode(F)?(K=F.getParentOrThrow(),W=F.getIndexWithinParent(),0{typeof V=="string"&&(V=V.split(" ").filter(K=>K!==""),j.classList.add(...V))})},LexicalUtils_prod.isMimeType=L,LexicalUtils_prod.markSelection=function(j,F){function V(pe){pe.read(()=>{var me=C.$getSelection();if(C.$isRangeSelection(me)){var{anchor:xe,focus:Ae}=me;me=xe.getNode();var ge=me.getKey(),Te=xe.offset,we=Ae.getNode(),ke=we.getKey(),Be=Ae.offset,Ie=j.getElementByKey(ge),je=j.getElementByKey(ke);if(ge=K===null||Ie===null||Te!==W||ge!==K.getKey()||me!==K&&(!(K instanceof C.TextNode)||me.updateDOM(K,Ie,j._config)),ke=X===null||je===null||Be!==J||ke!==X.getKey()||we!==X&&(!(X instanceof C.TextNode)||we.updateDOM(X,je,j._config)),ge||ke){Ie=j.getElementByKey(xe.getNode().getKey());var Ke=j.getElementByKey(Ae.getNode().getKey());if(Ie!==null&&Ke!==null&&Ie.tagName==="SPAN"&&Ke.tagName==="SPAN"){if(ke=document.createRange(),Ae.isBefore(xe)?(ge=Ke,je=Ae.offset,Ke=Ie,Ie=xe.offset):(ge=Ie,je=xe.offset,Ie=Ae.offset),ge=ge.firstChild,ge===null||(Ke=Ke.firstChild,Ke===null))throw Error("Expected text node to be first child of span");ke.setStart(ge,je),ke.setEnd(Ke,Ie),oe(),oe=N(j,ke,Je=>{for(let Xe of Je){let ot=Xe.style;ot.background!=="Highlight"&&(ot.background="Highlight"),ot.color!=="HighlightText"&&(ot.color="HighlightText"),ot.zIndex!=="-1"&&(ot.zIndex="-1"),ot.pointerEvents!=="none"&&(ot.pointerEvents="none"),ot.marginTop!=="-1.5px"&&(ot.marginTop="-1.5px"),ot.paddingTop!=="4px"&&(ot.paddingTop="4px"),ot.paddingBottom!=="0px"&&(ot.paddingBottom="0px")}F!==void 0&&F(Je)})}}K=me,W=Te,X=we,J=Be}else J=X=W=K=null,oe(),oe=()=>{}})}let K=null,W=null,X=null,J=null,oe=()=>{};return V(j.getEditorState()),O(j.registerUpdateListener(({editorState:pe})=>V(pe)),oe,()=>{oe()})},LexicalUtils_prod.mediaFileReader=function(j,F){let V=j[Symbol.iterator]();return new Promise((K,W)=>{let X=[],J=()=>{const{done:oe,value:pe}=V.next();if(oe)return K(X);const me=new FileReader;me.addEventListener("error",W),me.addEventListener("load",()=>{const xe=me.result;typeof xe=="string"&&X.push({file:pe,result:xe}),J()}),L(pe,F)?me.readAsDataURL(pe):J()};J()})},LexicalUtils_prod.mergeRegister=O,LexicalUtils_prod.objectKlassEquals=function(j,F){return j!==null?Object.getPrototypeOf(j).constructor.name===F.name:!1},LexicalUtils_prod.positionNodeOnRange=N,LexicalUtils_prod.registerNestedElementResolver=function(j,F,V,K){return j.registerNodeTransform(F,W=>{e:{for(var X=W.getChildren(),J=0;J{typeof V=="string"&&j.classList.remove(...V.split(" "))})},LexicalUtils_prod}var LexicalUtils_dev={},hasRequiredLexicalUtils_dev;function requireLexicalUtils_dev(){if(hasRequiredLexicalUtils_dev)return LexicalUtils_dev;hasRequiredLexicalUtils_dev=1;var S=requireLexicalSelection(),C=Lexical_1;function R(...ke){return()=>{ke.forEach(Be=>Be())}}function O(ke){return`${ke}px`}const I={attributes:!0,characterData:!0,childList:!0,subtree:!0};function N(ke,Be,Ie){let je=null,Ke=null,Je=null,Xe=[];const ot=document.createElement("div");function tt(){if(je===null)throw Error("Unexpected null rootDOMNode");if(Ke===null)throw Error("Unexpected null parentDOMNode");const{left:gt,top:Qe}=je.getBoundingClientRect(),lt=Ke,ht=S.createRectsFromDOMRange(ke,Be);ot.isConnected||lt.append(ot);let Ct=!1;for(let $t=0;$tht.length;)Xe.pop();Ct&&Ie(Xe)}function Ue(){Ke=null,je=null,Je!==null&&Je.disconnect(),Je=null,ot.remove();for(const gt of Xe)gt.remove();Xe=[]}function et(){const gt=ke.getRootElement();if(gt===null)return Ue();const Qe=gt.parentElement;if(!(Qe instanceof HTMLElement))return Ue();Ue(),je=gt,Ke=Qe,Je=new MutationObserver(lt=>{const ht=ke.getRootElement(),Ct=ht&&ht.parentElement;if(ht!==je||Ct!==Ke)return et();for(const $t of lt)if(!ot.contains($t.target))return tt()}),Je.observe(Qe,I),tt()}const dt=ke.registerRootListener(et);return()=>{dt(),Ue()}}function L(ke,Be){let Ie=null,je=null,Ke=null,Je=null,Xe=()=>{};function ot(tt){tt.read(()=>{const Ue=C.$getSelection();if(!C.$isRangeSelection(Ue)){Ie=null,je=null,Ke=null,Je=null,Xe(),Xe=()=>{};return}const{anchor:et,focus:dt}=Ue,gt=et.getNode(),Qe=gt.getKey(),lt=et.offset,ht=dt.getNode(),Ct=ht.getKey(),$t=dt.offset,Lt=ke.getElementByKey(Qe),Gt=ke.getElementByKey(Ct),Pt=Ie===null||Lt===null||lt!==je||Qe!==Ie.getKey()||gt!==Ie&&(!(Ie instanceof C.TextNode)||gt.updateDOM(Ie,Lt,ke._config)),Vt=Ke===null||Gt===null||$t!==Je||Ct!==Ke.getKey()||ht!==Ke&&(!(Ke instanceof C.TextNode)||ht.updateDOM(Ke,Gt,ke._config));if(Pt||Vt){const bt=ke.getElementByKey(et.getNode().getKey()),It=ke.getElementByKey(dt.getNode().getKey());if(bt!==null&&It!==null&&bt.tagName==="SPAN"&&It.tagName==="SPAN"){const Ht=document.createRange();let kt,Kt,tr,wr;dt.isBefore(et)?(kt=It,Kt=dt.offset,tr=bt,wr=et.offset):(kt=bt,Kt=et.offset,tr=It,wr=dt.offset);const xr=kt.firstChild;if(xr===null)throw Error("Expected text node to be first child of span");const Vr=tr.firstChild;if(Vr===null)throw Error("Expected text node to be first child of span");Ht.setStart(xr,Kt),Ht.setEnd(Vr,wr),Xe(),Xe=N(ke,Ht,bn=>{for(const Bn of bn){const An=Bn.style;An.background!=="Highlight"&&(An.background="Highlight"),An.color!=="HighlightText"&&(An.color="HighlightText"),An.zIndex!=="-1"&&(An.zIndex="-1"),An.pointerEvents!=="none"&&(An.pointerEvents="none"),An.marginTop!==O(-1.5)&&(An.marginTop=O(-1.5)),An.paddingTop!==O(4)&&(An.paddingTop=O(4)),An.paddingBottom!==O(0)&&(An.paddingBottom=O(0))}Be!==void 0&&Be(bn)})}}Ie=gt,je=lt,Ke=ht,Je=$t})}return ot(ke.getEditorState()),R(ke.registerUpdateListener(({editorState:tt})=>ot(tt)),Xe,()=>{Xe()})}function B(ke,...Be){Be.forEach(Ie=>{if(typeof Ie=="string"){const je=Ie.split(" ").filter(Ke=>Ke!=="");ke.classList.add(...je)}})}function j(ke,...Be){Be.forEach(Ie=>{typeof Ie=="string"&&ke.classList.remove(...Ie.split(" "))})}function F(ke,Be){for(const Ie of Be)if(ke.type.startsWith(Ie))return!0;return!1}function V(ke,Be){const Ie=ke[Symbol.iterator]();return new Promise((je,Ke)=>{const Je=[],Xe=()=>{const{done:ot,value:tt}=Ie.next();if(ot)return je(Je);const Ue=new FileReader;Ue.addEventListener("error",Ke),Ue.addEventListener("load",()=>{const et=Ue.result;typeof et=="string"&&Je.push({file:tt,result:et}),Xe()}),F(tt,Be)?Ue.readAsDataURL(tt):Xe()};Xe()})}function K(ke,Be){const Ie=[],je=(ke||C.$getRoot()).getLatest(),Ke=Be||(C.$isElementNode(je)?je.getLastDescendant():je);let Je=je,Xe=W(Je);for(;Je!==null&&!Je.is(Ke);)if(Ie.push({depth:Xe,node:Je}),C.$isElementNode(Je)&&Je.getChildrenSize()>0)Je=Je.getFirstChild(),Xe++;else{let ot=null;for(;ot===null&&Je!==null;)ot=Je.getNextSibling(),ot===null?(Je=Je.getParent(),Xe--):Je=ot}return Je!==null&&Je.is(Ke)&&Ie.push({depth:Xe,node:Je}),Ie}function W(ke){let Be=ke,Ie=0;for(;(Be=Be.getParent())!==null;)Ie++;return Ie}function X(ke,Be){let Ie=ke;for(;Ie!=null;){if(Ie instanceof Be)return Ie;Ie=Ie.getParent()}return null}function J(ke){const Be=oe(ke,Ie=>C.$isElementNode(Ie)&&!Ie.isInline());if(!C.$isElementNode(Be))throw Error(`Expected node ${ke.__key} to have closest block element node.`);return Be}const oe=(ke,Be)=>{let Ie=ke;for(;Ie!==C.$getRoot()&&Ie!=null;){if(Be(Ie))return Ie;Ie=Ie.getParent()}return null};function pe(ke,Be,Ie,je){const Ke=ot=>ot instanceof Be,Je=ot=>{const tt=ot.getChildren();for(let dt=0;dt{const tt=Je(ot);if(tt!==null){const{child:Ue,parent:et}=tt;if(Ue.is(ot)){je(et,ot);const dt=Ue.getNextSiblings(),gt=dt.length;if(et.insertAfter(Ue),gt!==0){const Qe=Ie(et);Ue.insertAfter(Qe);for(let lt=0;lt0&&(Xe+=1,je.splitText(Ke))):(Je=je,Xe=Ke);const[,ot]=C.$splitNode(Je,Xe);ot.insertBefore(ke),ot.selectStart()}}else{if(Be!=null){const je=Be.getNodes();je[je.length-1].getTopLevelElementOrThrow().insertAfter(ke)}else C.$getRoot().append(ke);const Ie=C.$createParagraphNode();ke.insertAfter(Ie),Ie.select()}return ke.getLatest()}function Ae(ke,Be){const Ie=Be();return ke.replace(Ie),Ie.append(ke),Ie}function ge(ke,Be){return ke!==null?Object.getPrototypeOf(ke).constructor.name===Be.name:!1}function Te(ke,Be){const Ie=[];for(let je=0;je({conversion:I,priority:1})}}static importJSON(W){let X=N(W.url,{rel:W.rel,target:W.target,title:W.title});return X.setFormat(W.format),X.setIndent(W.indent),X.setDirection(W.direction),X}sanitizeUrl(W){try{let X=new URL(W);if(!R.has(X.protocol))return"about:blank"}catch{}return W}exportJSON(){return{...super.exportJSON(),rel:this.getRel(),target:this.getTarget(),title:this.getTitle(),type:"link",url:this.getURL(),version:1}}getURL(){return this.getLatest().__url}setURL(W){this.getWritable().__url=W}getTarget(){return this.getLatest().__target}setTarget(W){this.getWritable().__target=W}getRel(){return this.getLatest().__rel}setRel(W){this.getWritable().__rel=W}getTitle(){return this.getLatest().__title}setTitle(W){this.getWritable().__title=W}insertNewAfter(W,X=!0){return W=N(this.__url,{rel:this.__rel,target:this.__target,title:this.__title}),this.insertAfter(W,X),W}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}canBeEmpty(){return!1}isInline(){return!0}extractWithChild(W,X){if(!C.$isRangeSelection(X))return!1;W=X.anchor.getNode();let J=X.focus.getNode();return this.isParentOf(W)&&this.isParentOf(J)&&0{if(pe=pe.getParent(),L(pe)){let me=pe.getChildren();for(let xe=0;xe{var Ae=xe.getParent();if(Ae!==me&&Ae!==null&&(!C.$isElementNode(xe)||xe.isInline()))if(L(Ae))me=Ae,Ae.setURL(K),X!==void 0&&Ae.setTarget(X),oe!==null&&me.setRel(oe),J!==void 0&&me.setTitle(J);else if(Ae.is(pe)||(pe=Ae,me=N(K,{rel:oe,target:X,title:J}),L(Ae)?xe.getPreviousSibling()===null?Ae.insertBefore(me):Ae.insertAfter(me):xe.insertBefore(me)),L(xe)){if(!xe.is(me)){if(me!==null){Ae=xe.getChildren();for(let ge=0;ge({conversion:I,priority:1})}}static importJSON(J){const oe=N(J.url,{rel:J.rel,target:J.target,title:J.title});return oe.setFormat(J.format),oe.setIndent(J.indent),oe.setDirection(J.direction),oe}sanitizeUrl(J){try{const oe=new URL(J);if(!R.has(oe.protocol))return"about:blank"}catch{return J}return J}exportJSON(){return{...super.exportJSON(),rel:this.getRel(),target:this.getTarget(),title:this.getTitle(),type:"link",url:this.getURL(),version:1}}getURL(){return this.getLatest().__url}setURL(J){const oe=this.getWritable();oe.__url=J}getTarget(){return this.getLatest().__target}setTarget(J){const oe=this.getWritable();oe.__target=J}getRel(){return this.getLatest().__rel}setRel(J){const oe=this.getWritable();oe.__rel=J}getTitle(){return this.getLatest().__title}setTitle(J){const oe=this.getWritable();oe.__title=J}insertNewAfter(J,oe=!0){const pe=N(this.__url,{rel:this.__rel,target:this.__target,title:this.__title});return this.insertAfter(pe,oe),pe}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}canBeEmpty(){return!1}isInline(){return!0}extractWithChild(J,oe,pe){if(!C.$isRangeSelection(oe))return!1;const me=oe.anchor.getNode(),xe=oe.focus.getNode();return this.isParentOf(me)&&this.isParentOf(xe)&&oe.getTextContent().length>0}}function I(X){let J=null;if(S.isHTMLAnchorElement(X)){const oe=X.textContent;(oe!==null&&oe!==""||X.children.length>0)&&(J=N(X.getAttribute("href")||"",{rel:X.getAttribute("rel"),target:X.getAttribute("target"),title:X.getAttribute("title")}))}return{node:J}}function N(X,J){return C.$applyNodeReplacement(new O(X,J))}function L(X){return X instanceof O}class B extends O{static getType(){return"autolink"}static clone(J){return new B(J.__url,{rel:J.__rel,target:J.__target,title:J.__title},J.__key)}static importJSON(J){const oe=j(J.url,{rel:J.rel,target:J.target,title:J.title});return oe.setFormat(J.format),oe.setIndent(J.indent),oe.setDirection(J.direction),oe}static importDOM(){return null}exportJSON(){return{...super.exportJSON(),type:"autolink",version:1}}insertNewAfter(J,oe=!0){const pe=this.getParentOrThrow().insertNewAfter(J,oe);if(C.$isElementNode(pe)){const me=j(this.__url,{rel:this.__rel,target:this.__target,title:this.__title});return pe.append(me),me}return null}}function j(X,J){return C.$applyNodeReplacement(new B(X,J))}function F(X){return X instanceof B}const V=C.createCommand("TOGGLE_LINK_COMMAND");function K(X,J={}){const{target:oe,title:pe}=J,me=J.rel===void 0?"noreferrer":J.rel,xe=C.$getSelection();if(!C.$isRangeSelection(xe))return;const Ae=xe.extract();if(X===null)Ae.forEach(ge=>{const Te=ge.getParent();if(L(Te)){const we=Te.getChildren();for(let ke=0;ke{const ke=we.getParent();if(!(ke===Te||ke===null||C.$isElementNode(we)&&!we.isInline())){if(L(ke)){Te=ke,ke.setURL(X),oe!==void 0&&ke.setTarget(oe),me!==null&&Te.setRel(me),pe!==void 0&&Te.setTitle(pe);return}if(ke.is(ge)||(ge=ke,Te=N(X,{rel:me,target:oe,title:pe}),L(ke)?we.getPreviousSibling()===null?ke.insertBefore(Te):ke.insertAfter(Te):we.insertBefore(Te)),L(we)){if(we.is(Te))return;if(Te!==null){const Be=we.getChildren();for(let Ie=0;Ie{var F=C.$getRoot();if(F.isEmpty()){let V=C.$createParagraphNode();F.append(V),F=O?document.activeElement:null,(C.$getSelection()!==null||F!==null&&F===B.getRootElement())&&V.select()}},N);else if(j!==null)switch(typeof j){case"string":let F=B.parseEditorState(j);B.setEditorState(F,N);break;case"object":B.setEditorState(j,N);break;case"function":B.update(()=>{C.$getRoot().isEmpty()&&j(B)},N)}}}return LexicalComposer_prod.LexicalComposer=function({initialConfig:B,children:j}){let F=R.useMemo(()=>{const{theme:V,namespace:K,editor__DEPRECATED:W,nodes:X,onError:J,editorState:oe,html:pe}=B,me=S.createLexicalComposerContext(null,V);let xe=W||null;if(xe===null){const Ae=C.createEditor({editable:B.editable,html:pe,namespace:K,nodes:X,onError:ge=>J(ge,Ae),theme:V});L(Ae,oe),xe=Ae}return[xe,me]},[]);return I(()=>{let V=B.editable,[K]=F;K.setEditable(V!==void 0?V:!0)},[]),R.createElement(S.LexicalComposerContext.Provider,{value:F},j)},LexicalComposer_prod}var LexicalComposer_dev={},hasRequiredLexicalComposer_dev;function requireLexicalComposer_dev(){if(hasRequiredLexicalComposer_dev)return LexicalComposer_dev;hasRequiredLexicalComposer_dev=1;var S=LexicalComposerContext_1,C=Lexical_1,R=requireReact();const O=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";var N=O?R.useLayoutEffect:R.useEffect;const L={tag:"history-merge"};function B({initialConfig:F,children:V}){const K=R.useMemo(()=>{const{theme:W,namespace:X,editor__DEPRECATED:J,nodes:oe,onError:pe,editorState:me,html:xe}=F,Ae=S.createLexicalComposerContext(null,W);let ge=J||null;if(ge===null){const Te=C.createEditor({editable:F.editable,html:xe,namespace:X,nodes:oe,onError:we=>pe(we,Te),theme:W});j(Te,me),ge=Te}return[ge,Ae]},[]);return N(()=>{const W=F.editable,[X]=K;X.setEditable(W!==void 0?W:!0)},[]),R.createElement(S.LexicalComposerContext.Provider,{value:K},V)}function j(F,V){if(V!==null){if(V===void 0)F.update(()=>{const K=C.$getRoot();if(K.isEmpty()){const W=C.$createParagraphNode();K.append(W);const X=O?document.activeElement:null;(C.$getSelection()!==null||X!==null&&X===F.getRootElement())&&W.select()}},L);else if(V!==null)switch(typeof V){case"string":{const K=F.parseEditorState(V);F.setEditorState(K,L);break}case"object":{F.setEditorState(V,L);break}case"function":{F.update(()=>{C.$getRoot().isEmpty()&&V(F)},L);break}}}}return LexicalComposer_dev.LexicalComposer=B,LexicalComposer_dev}var define_process_env_default$7={};const LexicalComposer=define_process_env_default$7.NODE_ENV==="development"?requireLexicalComposer_dev():requireLexicalComposer_prod();var LexicalComposer_1=LexicalComposer,LexicalContentEditable_prod={},hasRequiredLexicalContentEditable_prod;function requireLexicalContentEditable_prod(){if(hasRequiredLexicalContentEditable_prod)return LexicalContentEditable_prod;hasRequiredLexicalContentEditable_prod=1;var S=LexicalComposerContext_1,C=requireReact();function R(){return R=Object.assign?Object.assign.bind():function(I){for(var N=1;N{ke.setRootElement(Ke)},[ke]);return O(()=>(Ie(ke.isEditable()),ke.registerEditableListener(Ke=>{Ie(Ke)})),[ke]),C.createElement("div",R({},we,{"aria-activedescendant":Be?I:void 0,"aria-autocomplete":Be?N:"none","aria-controls":Be?L:void 0,"aria-describedby":B,"aria-expanded":Be&&me==="combobox"?!!j:void 0,"aria-label":F,"aria-labelledby":V,"aria-multiline":K,"aria-owns":Be?W:void 0,"aria-readonly":Be?void 0:!0,"aria-required":X,autoCapitalize:J,className:oe,contentEditable:Be,"data-testid":Te,id:pe,ref:je,role:me,spellCheck:xe,style:Ae,tabIndex:ge}))},LexicalContentEditable_prod}var LexicalContentEditable_dev={},hasRequiredLexicalContentEditable_dev;function requireLexicalContentEditable_dev(){if(hasRequiredLexicalContentEditable_dev)return LexicalContentEditable_dev;hasRequiredLexicalContentEditable_dev=1;var S=LexicalComposerContext_1,C=requireReact();function R(){return R=Object.assign?Object.assign.bind():function(B){for(var j=1;j{je.setRootElement(ot)},[je]);return N(()=>(Je(je.isEditable()),je.registerEditableListener(ot=>{Je(ot)})),[je]),C.createElement("div",R({},Ie,{"aria-activedescendant":Ke?B:void 0,"aria-autocomplete":Ke?j:"none","aria-controls":Ke?F:void 0,"aria-describedby":V,"aria-expanded":Ke&&ge==="combobox"?!!K:void 0,"aria-label":W,"aria-labelledby":X,"aria-multiline":J,"aria-owns":Ke?oe:void 0,"aria-readonly":Ke?void 0:!0,"aria-required":pe,autoCapitalize:me,className:xe,contentEditable:Ke,"data-testid":Be,id:Ae,ref:Xe,role:ge,spellCheck:Te,style:we,tabIndex:ke}))}return LexicalContentEditable_dev.ContentEditable=L,LexicalContentEditable_dev}var define_process_env_default$6={};const LexicalContentEditable=define_process_env_default$6.NODE_ENV==="development"?requireLexicalContentEditable_dev():requireLexicalContentEditable_prod();var LexicalContentEditable_1=LexicalContentEditable,LexicalErrorBoundary_prod,hasRequiredLexicalErrorBoundary_prod;function requireLexicalErrorBoundary_prod(){if(hasRequiredLexicalErrorBoundary_prod)return LexicalErrorBoundary_prod;hasRequiredLexicalErrorBoundary_prod=1;var S=requireReact();function C(L,B){return C=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(j,F){return j.__proto__=F,j},C(L,B)}function R(L,B){L.prototype=Object.create(B.prototype),L.prototype.constructor=L,C(L,B)}function O(L,B){return L===void 0&&(L=[]),B===void 0&&(B=[]),L.length!==B.length||L.some(function(j,F){return!Object.is(j,B[F])})}var I={error:null},N=function(L){function B(){for(var F,V=arguments.length,K=Array(V),W=0;W{let J=Date.now();if(X.has("historic"))return B=0,L=J,2;let oe=R(j,F,K,W,I.isComposing()),pe=(()=>{var me=V===null||V.editor===I,xe=X.has("history-push");if(!xe&&me&&X.has("history-merge"))return 0;if(j===null)return 1;var Ae=F._selection;if(!(0{const oe=N.current,pe=N.redoStack,me=N.undoStack,xe=oe===null?null:oe.editorState;if(oe===null||V!==xe){if(K=B(K,V,oe,W,X,J),K===1)pe.length!==0&&(N.redoStack=[],I.dispatchCommand(C.CAN_REDO_COMMAND,!1)),oe!==null&&(me.push({...oe}),I.dispatchCommand(C.CAN_UNDO_COMMAND,!0));else if(K===2)return;N.current={editor:I,editorState:V}}};let j=S.mergeRegister(I.registerCommand(C.UNDO_COMMAND,()=>{let V=N.redoStack,K=N.undoStack;if(K.length!==0){let W=N.current,X=K.pop();W!==null&&(V.push(W),I.dispatchCommand(C.CAN_REDO_COMMAND,!0)),K.length===0&&I.dispatchCommand(C.CAN_UNDO_COMMAND,!1),N.current=X||null,X&&X.editor.setEditorState(X.editorState,{tag:"historic"})}return!0},C.COMMAND_PRIORITY_EDITOR),I.registerCommand(C.REDO_COMMAND,()=>{let V=N.redoStack;var K=N.undoStack;if(V.length!==0){let W=N.current;W!==null&&(K.push(W),I.dispatchCommand(C.CAN_UNDO_COMMAND,!0)),K=V.pop(),V.length===0&&I.dispatchCommand(C.CAN_REDO_COMMAND,!1),N.current=K||null,K&&K.editor.setEditorState(K.editorState,{tag:"historic"})}return!0},C.COMMAND_PRIORITY_EDITOR),I.registerCommand(C.CLEAR_EDITOR_COMMAND,()=>(N.undoStack=[],N.redoStack=[],N.current=null,!1),C.COMMAND_PRIORITY_EDITOR),I.registerCommand(C.CLEAR_HISTORY_COMMAND,()=>(N.undoStack=[],N.redoStack=[],N.current=null,I.dispatchCommand(C.CAN_REDO_COMMAND,!1),I.dispatchCommand(C.CAN_UNDO_COMMAND,!1),!0),C.COMMAND_PRIORITY_EDITOR),I.registerUpdateListener(L)),F=I.registerUpdateListener(L);return()=>{j(),F()}},LexicalHistory_prod}var LexicalHistory_dev={},hasRequiredLexicalHistory_dev;function requireLexicalHistory_dev(){if(hasRequiredLexicalHistory_dev)return LexicalHistory_dev;hasRequiredLexicalHistory_dev=1;var S=LexicalUtils_1,C=Lexical_1;const R=0,O=1,I=2,N=0,L=1,B=2,j=3,F=4;function V(Ae,ge,Te){const we=Ae._nodeMap,ke=[];for(const Be of ge){const Ie=we.get(Be);Ie!==void 0&&ke.push(Ie)}for(const[Be,Ie]of Te){if(!Ie)continue;const je=we.get(Be);je!==void 0&&!C.$isRootNode(je)&&ke.push(je)}return ke}function K(Ae,ge,Te,we,ke){if(Ae===null||Te.size===0&&we.size===0&&!ke)return N;const Be=ge._selection,Ie=Ae._selection;if(ke)return L;if(!C.$isRangeSelection(Be)||!C.$isRangeSelection(Ie)||!Ie.isCollapsed()||!Be.isCollapsed())return N;const je=V(ge,Te,we);if(je.length===0)return N;if(je.length>1){const Qe=ge._nodeMap,lt=Qe.get(Be.anchor.key),ht=Qe.get(Ie.anchor.key);return lt&&ht&&!Ae._nodeMap.has(lt.__key)&&C.$isTextNode(lt)&<.__text.length===1&&Be.anchor.offset===1?B:N}const Ke=je[0],Je=Ae._nodeMap.get(Ke.__key);if(!C.$isTextNode(Je)||!C.$isTextNode(Ke)||Je.__mode!==Ke.__mode)return N;const Xe=Je.__text,ot=Ke.__text;if(Xe===ot)return N;const tt=Be.anchor,Ue=Ie.anchor;if(tt.key!==Ue.key||tt.type!=="text")return N;const et=tt.offset,dt=Ue.offset,gt=ot.length-Xe.length;return gt===1&&dt===et-1?B:gt===-1&&dt===et+1?j:gt===-1&&dt===et?F:N}function W(Ae,ge,Te){const we=ge._nodeMap.get(Ae),ke=Te._nodeMap.get(Ae),Be=ge._selection,Ie=Te._selection;let je=!1;return C.$isRangeSelection(Be)&&C.$isRangeSelection(Ie)&&(je=Be.anchor.type==="element"&&Be.focus.type==="element"&&Ie.anchor.type==="text"&&Ie.focus.type==="text"),!je&&C.$isTextNode(we)&&C.$isTextNode(ke)?we.__type===ke.__type&&we.__text===ke.__text&&we.__mode===ke.__mode&&we.__detail===ke.__detail&&we.__style===ke.__style&&we.__format===ke.__format&&we.__parent===ke.__parent:!1}function X(Ae,ge){let Te=Date.now(),we=N;return(ke,Be,Ie,je,Ke,Je)=>{const Xe=Date.now();if(Je.has("historic"))return we=N,Te=Xe,I;const ot=K(ke,Be,je,Ke,Ae.isComposing()),tt=(()=>{const Ue=Ie===null||Ie.editor===Ae,et=Je.has("history-push");if(!et&&Ue&&Je.has("history-merge"))return R;if(ke===null)return O;const gt=Be._selection;if(!(je.size>0||Ke.size>0))return gt!==null?R:I;if(et===!1&&ot!==N&&ot===we&&Xe{const tt=ge.current,Ue=ge.redoStack,et=ge.undoStack,dt=tt===null?null:tt.editorState;if(tt!==null&&je===dt)return;const gt=we(Ke,je,tt,Je,Xe,ot);if(gt===O)Ue.length!==0&&(ge.redoStack=[],Ae.dispatchCommand(C.CAN_REDO_COMMAND,!1)),tt!==null&&(et.push({...tt}),Ae.dispatchCommand(C.CAN_UNDO_COMMAND,!0));else if(gt===I)return;ge.current={editor:Ae,editorState:je}},Be=S.mergeRegister(Ae.registerCommand(C.UNDO_COMMAND,()=>(oe(Ae,ge),!0),C.COMMAND_PRIORITY_EDITOR),Ae.registerCommand(C.REDO_COMMAND,()=>(J(Ae,ge),!0),C.COMMAND_PRIORITY_EDITOR),Ae.registerCommand(C.CLEAR_EDITOR_COMMAND,()=>(pe(ge),!1),C.COMMAND_PRIORITY_EDITOR),Ae.registerCommand(C.CLEAR_HISTORY_COMMAND,()=>(pe(ge),Ae.dispatchCommand(C.CAN_REDO_COMMAND,!1),Ae.dispatchCommand(C.CAN_UNDO_COMMAND,!1),!0),C.COMMAND_PRIORITY_EDITOR),Ae.registerUpdateListener(ke)),Ie=Ae.registerUpdateListener(ke);return()=>{Be(),Ie()}}function xe(){return{current:null,redoStack:[],undoStack:[]}}return LexicalHistory_dev.createEmptyHistoryState=xe,LexicalHistory_dev.registerHistory=me,LexicalHistory_dev}var LexicalHistory_1,hasRequiredLexicalHistory;function requireLexicalHistory(){if(hasRequiredLexicalHistory)return LexicalHistory_1;hasRequiredLexicalHistory=1;var S={};return LexicalHistory_1=S.NODE_ENV==="development"?requireLexicalHistory_dev():requireLexicalHistory_prod(),LexicalHistory_1}var hasRequiredLexicalHistoryPlugin_prod;function requireLexicalHistoryPlugin_prod(){if(hasRequiredLexicalHistoryPlugin_prod)return LexicalHistoryPlugin_prod;hasRequiredLexicalHistoryPlugin_prod=1;var S=LexicalComposerContext_1,C=requireLexicalHistory(),R=requireReact();function O(I,N,L=1e3){let B=R.useMemo(()=>N||C.createEmptyHistoryState(),[N]);R.useEffect(()=>C.registerHistory(I,B,L),[L,I,B])}return LexicalHistoryPlugin_prod.createEmptyHistoryState=C.createEmptyHistoryState,LexicalHistoryPlugin_prod.HistoryPlugin=function({externalHistoryState:I}){let[N]=S.useLexicalComposerContext();return O(N,I),null},LexicalHistoryPlugin_prod}var LexicalHistoryPlugin_dev={},hasRequiredLexicalHistoryPlugin_dev;function requireLexicalHistoryPlugin_dev(){if(hasRequiredLexicalHistoryPlugin_dev)return LexicalHistoryPlugin_dev;hasRequiredLexicalHistoryPlugin_dev=1;var S=LexicalComposerContext_1,C=requireLexicalHistory(),R=requireReact();function O(N,L,B=1e3){const j=R.useMemo(()=>L||C.createEmptyHistoryState(),[L]);R.useEffect(()=>C.registerHistory(N,j,B),[B,N,j])}function I({externalHistoryState:N}){const[L]=S.useLexicalComposerContext();return O(L,N),null}return LexicalHistoryPlugin_dev.createEmptyHistoryState=C.createEmptyHistoryState,LexicalHistoryPlugin_dev.HistoryPlugin=I,LexicalHistoryPlugin_dev}var define_process_env_default$4={};const LexicalHistoryPlugin=define_process_env_default$4.NODE_ENV==="development"?requireLexicalHistoryPlugin_dev():requireLexicalHistoryPlugin_prod();var LexicalHistoryPlugin_1=LexicalHistoryPlugin,LexicalOnChangePlugin_prod={},hasRequiredLexicalOnChangePlugin_prod;function requireLexicalOnChangePlugin_prod(){if(hasRequiredLexicalOnChangePlugin_prod)return LexicalOnChangePlugin_prod;hasRequiredLexicalOnChangePlugin_prod=1;var S=LexicalComposerContext_1,C=requireReact(),R=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?C.useLayoutEffect:C.useEffect;return LexicalOnChangePlugin_prod.OnChangePlugin=function({ignoreHistoryMergeTagChange:O=!0,ignoreSelectionChange:I=!1,onChange:N}){let[L]=S.useLexicalComposerContext();return R(()=>{if(N)return L.registerUpdateListener(({editorState:B,dirtyElements:j,dirtyLeaves:F,prevEditorState:V,tags:K})=>{I&&j.size===0&&F.size===0||O&&K.has("history-merge")||V.isEmpty()||N(B,L,K)})},[L,O,I,N]),null},LexicalOnChangePlugin_prod}var LexicalOnChangePlugin_dev={},hasRequiredLexicalOnChangePlugin_dev;function requireLexicalOnChangePlugin_dev(){if(hasRequiredLexicalOnChangePlugin_dev)return LexicalOnChangePlugin_dev;hasRequiredLexicalOnChangePlugin_dev=1;var S=LexicalComposerContext_1,C=requireReact(),I=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?C.useLayoutEffect:C.useEffect;function N({ignoreHistoryMergeTagChange:L=!0,ignoreSelectionChange:B=!1,onChange:j}){const[F]=S.useLexicalComposerContext();return I(()=>{if(j)return F.registerUpdateListener(({editorState:V,dirtyElements:K,dirtyLeaves:W,prevEditorState:X,tags:J})=>{B&&K.size===0&&W.size===0||L&&J.has("history-merge")||X.isEmpty()||j(V,F,J)})},[F,L,B,j]),null}return LexicalOnChangePlugin_dev.OnChangePlugin=N,LexicalOnChangePlugin_dev}var define_process_env_default$3={};const LexicalOnChangePlugin=define_process_env_default$3.NODE_ENV==="development"?requireLexicalOnChangePlugin_dev():requireLexicalOnChangePlugin_prod();var LexicalOnChangePlugin_1=LexicalOnChangePlugin,LexicalRichTextPlugin_prod={},useLexicalEditable_prod,hasRequiredUseLexicalEditable_prod;function requireUseLexicalEditable_prod(){if(hasRequiredUseLexicalEditable_prod)return useLexicalEditable_prod;hasRequiredUseLexicalEditable_prod=1;var S=LexicalComposerContext_1,C=requireReact(),R=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?C.useLayoutEffect:C.useEffect;function O(N){let[L]=S.useLexicalComposerContext(),B=C.useMemo(()=>N(L),[L,N]),j=C.useRef(B.initialValueFn()),[F,V]=C.useState(j.current);return R(()=>{let{initialValueFn:K,subscribe:W}=B,X=K();return j.current!==X&&(j.current=X,V(X)),W(J=>{j.current=J,V(J)})},[B,N]),F}function I(N){return{initialValueFn:()=>N.isEditable(),subscribe:L=>N.registerEditableListener(L)}}return useLexicalEditable_prod=function(){return O(I)},useLexicalEditable_prod}var useLexicalEditable_dev,hasRequiredUseLexicalEditable_dev;function requireUseLexicalEditable_dev(){if(hasRequiredUseLexicalEditable_dev)return useLexicalEditable_dev;hasRequiredUseLexicalEditable_dev=1;var S=LexicalComposerContext_1,C=requireReact(),I=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?C.useLayoutEffect:C.useEffect;function N(j){const[F]=S.useLexicalComposerContext(),V=C.useMemo(()=>j(F),[F,j]),K=C.useRef(V.initialValueFn()),[W,X]=C.useState(K.current);return I(()=>{const{initialValueFn:J,subscribe:oe}=V,pe=J();return K.current!==pe&&(K.current=pe,X(pe)),oe(me=>{K.current=me,X(me)})},[V,j]),W}function L(j){return{initialValueFn:()=>j.isEditable(),subscribe:F=>j.registerEditableListener(F)}}function B(){return N(L)}return useLexicalEditable_dev=B,useLexicalEditable_dev}var useLexicalEditable_1,hasRequiredUseLexicalEditable;function requireUseLexicalEditable(){if(hasRequiredUseLexicalEditable)return useLexicalEditable_1;hasRequiredUseLexicalEditable=1;var S={};return useLexicalEditable_1=S.NODE_ENV==="development"?requireUseLexicalEditable_dev():requireUseLexicalEditable_prod(),useLexicalEditable_1}var LexicalText_prod={},hasRequiredLexicalText_prod;function requireLexicalText_prod(){if(hasRequiredLexicalText_prod)return LexicalText_prod;hasRequiredLexicalText_prod=1;var S=Lexical_1;function C(I,N=!0){return I?!1:(I=R(),N&&(I=I.trim()),I==="")}function R(){return S.$getRoot().getTextContent()}function O(I){if(!C(I,!1))return!1;I=S.$getRoot().getChildren();let N=I.length;if(1O(I)},LexicalText_prod.$findTextIntersectionFromCharacters=function(I,N){var L=I.getFirstChild();I=0;e:for(;L!==null;){if(S.$isElementNode(L)){var B=L.getFirstChild();if(B!==null){L=B;continue}}else if(S.$isTextNode(L)){if(B=L.getTextContentSize(),I+B>N)return{node:L,offset:N-I};I+=B}if(B=L.getNextSibling(),B!==null)L=B;else{for(L=L.getParent();L!==null;){if(B=L.getNextSibling(),B!==null){L=B;continue e}L=L.getParent()}break}}return null},LexicalText_prod.$isRootTextContentEmpty=C,LexicalText_prod.$isRootTextContentEmptyCurry=function(I,N){return()=>C(I,N)},LexicalText_prod.$rootTextContent=R,LexicalText_prod.registerLexicalTextEntity=function(I,N,L,B){let j=V=>{const K=S.$createTextNode(V.getTextContent());K.setFormat(V.getFormat()),V.replace(K)},F=I.registerNodeTransform(S.TextNode,V=>{if(V.isSimpleText()){var K=V.getPreviousSibling(),W=V.getTextContent(),X=V;if(S.$isTextNode(K)){var J=K.getTextContent(),oe=N(J+W);if(K instanceof L){if(oe===null||K.getLatest().__mode!==0){j(K);return}if(oe=oe.end-J.length,0{var K=V.getTextContent();const W=N(K);W===null||W.start!==0?j(V):K.length>W.end?V.splitText(W.end):(K=V.getPreviousSibling(),S.$isTextNode(K)&&K.isTextEntity()&&(j(K),j(V)),K=V.getNextSibling(),S.$isTextNode(K)&&K.isTextEntity()&&(j(K),V instanceof L&&j(V)))}),[F,I]},LexicalText_prod}var LexicalText_dev={},hasRequiredLexicalText_dev;function requireLexicalText_dev(){if(hasRequiredLexicalText_dev)return LexicalText_dev;hasRequiredLexicalText_dev=1;var S=Lexical_1;function C(j,F){let V=j.getFirstChild(),K=0;e:for(;V!==null;){if(S.$isElementNode(V)){const J=V.getFirstChild();if(J!==null){V=J;continue}}else if(S.$isTextNode(V)){const J=V.getTextContentSize();if(K+J>F)return{node:V,offset:F-K};K+=J}const W=V.getNextSibling();if(W!==null){V=W;continue}let X=V.getParent();for(;X!==null;){const J=X.getNextSibling();if(J!==null){V=J;continue e}X=X.getParent()}break}return null}function R(j,F=!0){if(j)return!1;let V=I();return F&&(V=V.trim()),V===""}function O(j,F){return()=>R(j,F)}function I(){return S.$getRoot().getTextContent()}function N(j){if(!R(j,!1))return!1;const V=S.$getRoot().getChildren(),K=V.length;if(K>1)return!1;for(let W=0;WN(j)}function B(j,F,V,K){const W=Ae=>Ae instanceof V,X=Ae=>{const ge=S.$createTextNode(Ae.getTextContent());ge.setFormat(Ae.getFormat()),Ae.replace(ge)},J=Ae=>Ae.getLatest().__mode,oe=Ae=>{if(!Ae.isSimpleText())return;const ge=Ae.getPreviousSibling();let Te=Ae.getTextContent(),we=Ae,ke;if(S.$isTextNode(ge)){const Be=ge.getTextContent(),Ie=Be+Te,je=F(Ie);if(W(ge))if(je===null||J(ge)!==0){X(ge);return}else{const Ke=je.end-Be.length;if(Ke>0){const Je=Te.slice(0,Ke),Xe=Be+Je;if(ge.select(),ge.setTextContent(Xe),Ke===Te.length)Ae.remove();else{const ot=Te.slice(Ke);Ae.setTextContent(ot)}return}}else if(je===null||je.start{const ge=Ae.getTextContent(),Te=F(ge);if(Te===null||Te.start!==0){X(Ae);return}if(ge.length>Te.end){Ae.splitText(Te.end);return}const we=Ae.getPreviousSibling();S.$isTextNode(we)&&we.isTextEntity()&&(X(we),X(Ae));const ke=Ae.getNextSibling();S.$isTextNode(ke)&&ke.isTextEntity()&&(X(ke),W(Ae)&&X(Ae))},me=j.registerNodeTransform(S.TextNode,oe),xe=j.registerNodeTransform(V,pe);return[me,xe]}return LexicalText_dev.$canShowPlaceholder=N,LexicalText_dev.$canShowPlaceholderCurry=L,LexicalText_dev.$findTextIntersectionFromCharacters=C,LexicalText_dev.$isRootTextContentEmpty=R,LexicalText_dev.$isRootTextContentEmptyCurry=O,LexicalText_dev.$rootTextContent=I,LexicalText_dev.registerLexicalTextEntity=B,LexicalText_dev}var LexicalText_1,hasRequiredLexicalText;function requireLexicalText(){if(hasRequiredLexicalText)return LexicalText_1;hasRequiredLexicalText=1;var S={};return LexicalText_1=S.NODE_ENV==="development"?requireLexicalText_dev():requireLexicalText_prod(),LexicalText_1}var LexicalDragon_prod={},hasRequiredLexicalDragon_prod;function requireLexicalDragon_prod(){if(hasRequiredLexicalDragon_prod)return LexicalDragon_prod;hasRequiredLexicalDragon_prod=1;var S=Lexical_1;return LexicalDragon_prod.registerDragonSupport=function(C){let R=window.location.origin,O=I=>{if(I.origin===R){var N=C.getRootElement();if(document.activeElement===N&&(N=I.data,typeof N=="string")){try{var L=JSON.parse(N)}catch{return}if(L&&L.protocol==="nuanria_messaging"&&L.type==="request"&&(L=L.payload)&&L.functionId==="makeChanges"&&(L=L.args)){const[B,j,F,V,K]=L;C.update(()=>{const W=S.$getSelection();if(S.$isRangeSelection(W)){var X=W.anchor;let J=X.getNode(),oe=0,pe=0;S.$isTextNode(J)&&0<=B&&0<=j&&(oe=B,pe=B+j,W.setTextNodeRange(J,oe,J,pe)),(oe!==pe||F!=="")&&(W.insertRawText(F),J=X.getNode()),S.$isTextNode(J)&&(oe=V,pe=V+K,X=J.getTextContentSize(),oe=oe>X?X:oe,pe=pe>X?X:pe,W.setTextNodeRange(J,oe,J,pe)),I.stopImmediatePropagation()}})}}}};return window.addEventListener("message",O,!0),()=>{window.removeEventListener("message",O,!0)}},LexicalDragon_prod}var LexicalDragon_dev={},hasRequiredLexicalDragon_dev;function requireLexicalDragon_dev(){if(hasRequiredLexicalDragon_dev)return LexicalDragon_dev;hasRequiredLexicalDragon_dev=1;var S=Lexical_1;function C(R){const O=window.location.origin,I=N=>{if(N.origin!==O)return;const L=R.getRootElement();if(document.activeElement!==L)return;const B=N.data;if(typeof B=="string"){let j;try{j=JSON.parse(B)}catch{return}if(j&&j.protocol==="nuanria_messaging"&&j.type==="request"){const F=j.payload;if(F&&F.functionId==="makeChanges"){const V=F.args;if(V){const[K,W,X,J,oe,pe]=V;R.update(()=>{const me=S.$getSelection();if(S.$isRangeSelection(me)){const xe=me.anchor;let Ae=xe.getNode(),ge=0,Te=0;if(S.$isTextNode(Ae)&&K>=0&&W>=0&&(ge=K,Te=K+W,me.setTextNodeRange(Ae,ge,Ae,Te)),(ge!==Te||X!=="")&&(me.insertRawText(X),Ae=xe.getNode()),S.$isTextNode(Ae)){ge=J,Te=J+oe;const we=Ae.getTextContentSize();ge=ge>we?we:ge,Te=Te>we?we:Te,me.setTextNodeRange(Ae,ge,Ae,Te)}N.stopImmediatePropagation()}})}}}}};return window.addEventListener("message",I,!0),()=>{window.removeEventListener("message",I,!0)}}return LexicalDragon_dev.registerDragonSupport=C,LexicalDragon_dev}var LexicalDragon_1,hasRequiredLexicalDragon;function requireLexicalDragon(){if(hasRequiredLexicalDragon)return LexicalDragon_1;hasRequiredLexicalDragon=1;var S={};return LexicalDragon_1=S.NODE_ENV==="development"?requireLexicalDragon_dev():requireLexicalDragon_prod(),LexicalDragon_1}var LexicalRichText_prod={},LexicalClipboard_prod={},LexicalHtml_prod={},hasRequiredLexicalHtml_prod;function requireLexicalHtml_prod(){if(hasRequiredLexicalHtml_prod)return LexicalHtml_prod;hasRequiredLexicalHtml_prod=1;var S=requireLexicalSelection(),C=LexicalUtils_1,R=Lexical_1;function O(L,B,j,F=null){let V=F!==null?B.isSelected(F):!0,K=R.$isElementNode(B)&&B.excludeFromCopy("html");var W=B;F!==null&&(W=S.$cloneWithProperties(B),W=R.$isTextNode(W)&&F!==null?S.$sliceSelectedTextNodeContent(F,W):W);let X=R.$isElementNode(W)?W.getChildren():[];var J=L._nodes.get(W.getType());J=J&&J.exportDOM!==void 0?J.exportDOM(L,W):W.exportDOM(L);let{element:oe,after:pe}=J;if(!oe)return!1;J=document.createDocumentFragment();for(let me=0;me"u"||typeof window>"u"&&typeof commonjsGlobal.window>"u")throw Error("To use $generateHtmlFromNodes in headless mode please initialize a headless browser implementation such as JSDom before calling this function.");let j=document.createElement("div"),F=R.$getRoot().getChildren();for(let V=0;V"u"||typeof window>"u"&&typeof commonjsGlobal.window>"u")throw new Error("To use $generateHtmlFromNodes in headless mode please initialize a headless browser implementation such as JSDom before calling this function.");const K=document.createElement("div"),X=R.$getRoot().getChildren();for(let J=0;J{J.update(()=>{ge(X(J,oe))})});var pe=J.getRootElement();let me=J._window==null?window.document:J._window.document,xe=N?(J._window||window).getSelection():null;if(pe===null||xe===null)return!1;let Ae=me.createElement("span");return Ae.style.cssText="position: fixed; top: -1000px;",Ae.append(me.createTextNode("#")),pe.append(Ae),pe=new Range,pe.setStart(Ae,0),pe.setEnd(Ae,1),xe.removeAllRanges(),xe.addRange(pe),new Promise(ge=>{let Te=J.registerCommand(O.COPY_COMMAND,we=>(R.objectKlassEquals(we,ClipboardEvent)&&(Te(),W!==null&&(window.clearTimeout(W),W=null),ge(X(J,we))),!0),O.COMMAND_PRIORITY_CRITICAL);W=window.setTimeout(()=>{Te(),W=null,ge(!1)},50),me.execCommand("copy"),Ae.remove()})},LexicalClipboard_prod}var LexicalClipboard_dev={},hasRequiredLexicalClipboard_dev;function requireLexicalClipboard_dev(){if(hasRequiredLexicalClipboard_dev)return LexicalClipboard_dev;hasRequiredLexicalClipboard_dev=1;var S=requireLexicalHtml(),C=requireLexicalSelection(),R=LexicalUtils_1,O=Lexical_1;const I=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",N=Ae=>I?(Ae||window).getSelection():null;function L(Ae){const ge=O.$getSelection();if(ge==null)throw Error("Expected valid LexicalSelection");return O.$isRangeSelection(ge)&&ge.isCollapsed()||ge.getNodes().length===0?"":S.$generateHtmlFromNodes(Ae,ge)}function B(Ae){const ge=O.$getSelection();if(ge==null)throw Error("Expected valid LexicalSelection");return O.$isRangeSelection(ge)&&ge.isCollapsed()||ge.getNodes().length===0?null:JSON.stringify(X(Ae,ge))}function j(Ae,ge){const Te=Ae.getData("text/plain")||Ae.getData("text/uri-list");Te!=null&&ge.insertRawText(Te)}function F(Ae,ge,Te){const we=Ae.getData("application/x-lexical-editor");if(we)try{const Ie=JSON.parse(we);if(Ie.namespace===Te._config.namespace&&Array.isArray(Ie.nodes)){const je=J(Ie.nodes);return V(Te,je,ge)}}catch{}const ke=Ae.getData("text/html");if(ke)try{const je=new DOMParser().parseFromString(ke,"text/html"),Ke=S.$generateNodesFromDOM(Te,je);return V(Te,Ke,ge)}catch{}const Be=Ae.getData("text/plain")||Ae.getData("text/uri-list");if(Be!=null)if(O.$isRangeSelection(ge)){const Ie=Be.split(/(\r?\n|\t)/);Ie[Ie.length-1]===""&&Ie.pop();for(let je=0;je0?Ke.text=Je:ke=!1}for(let Je=0;Je{Ae.update(()=>{je(xe(Ae,ge))})});const Te=Ae.getRootElement(),we=Ae._window==null?window.document:Ae._window.document,ke=N(Ae._window);if(Te===null||ke===null)return!1;const Be=we.createElement("span");Be.style.cssText="position: fixed; top: -1000px;",Be.append(we.createTextNode("#")),Te.append(Be);const Ie=new Range;return Ie.setStart(Be,0),Ie.setEnd(Be,1),ke.removeAllRanges(),ke.addRange(Ie),new Promise((je,Ke)=>{const Je=Ae.registerCommand(O.COPY_COMMAND,Xe=>(R.objectKlassEquals(Xe,ClipboardEvent)&&(Je(),pe!==null&&(window.clearTimeout(pe),pe=null),je(xe(Ae,Xe))),!0),O.COMMAND_PRIORITY_CRITICAL);pe=window.setTimeout(()=>{Je(),pe=null,je(!1)},oe),we.execCommand("copy"),Be.remove()})}function xe(Ae,ge){const Te=N(Ae._window);if(!Te)return!1;const we=Te.anchorNode,ke=Te.focusNode;if(we!==null&&ke!==null&&!O.isSelectionWithinEditor(Ae,we,ke))return!1;ge.preventDefault();const Be=ge.clipboardData,Ie=O.$getSelection();if(Be===null||Ie===null)return!1;const je=L(Ae),Ke=B(Ae);let Je="";return Ie!==null&&(Je=Ie.getTextContent()),je!==null&&Be.setData("text/html",je),Ke!==null&&Be.setData("application/x-lexical-editor",Ke),Be.setData("text/plain",Je),!0}return LexicalClipboard_dev.$generateJSONFromSelectedNodes=X,LexicalClipboard_dev.$generateNodesFromSerializedNodes=J,LexicalClipboard_dev.$getHtmlContent=L,LexicalClipboard_dev.$getLexicalContent=B,LexicalClipboard_dev.$insertDataTransferForPlainText=j,LexicalClipboard_dev.$insertDataTransferForRichText=F,LexicalClipboard_dev.$insertGeneratedNodes=V,LexicalClipboard_dev.copyToClipboard=me,LexicalClipboard_dev}var LexicalClipboard_1,hasRequiredLexicalClipboard;function requireLexicalClipboard(){if(hasRequiredLexicalClipboard)return LexicalClipboard_1;hasRequiredLexicalClipboard=1;var S={};return LexicalClipboard_1=S.NODE_ENV==="development"?requireLexicalClipboard_dev():requireLexicalClipboard_prod(),LexicalClipboard_1}var hasRequiredLexicalRichText_prod;function requireLexicalRichText_prod(){if(hasRequiredLexicalRichText_prod)return LexicalRichText_prod;hasRequiredLexicalRichText_prod=1;var S=requireLexicalClipboard(),C=requireLexicalSelection(),R=LexicalUtils_1,O=Lexical_1;function I(Ie,je){return typeof document.caretRangeFromPoint<"u"?(Ie=document.caretRangeFromPoint(Ie,je),Ie===null?null:{node:Ie.startContainer,offset:Ie.startOffset}):document.caretPositionFromPoint!=="undefined"?(Ie=document.caretPositionFromPoint(Ie,je),Ie===null?null:{node:Ie.offsetNode,offset:Ie.offset}):null}let N=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",L=N&&"documentMode"in document?document.documentMode:null,B=N&&"InputEvent"in window&&!L?"getTargetRanges"in new window.InputEvent("input"):!1,j=N&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),F=N&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,V=N&&/^(?=.*Chrome).*/i.test(navigator.userAgent),K=N&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!V,W=O.createCommand("DRAG_DROP_PASTE_FILE");class X extends O.ElementNode{static getType(){return"quote"}static clone(je){return new X(je.__key)}constructor(je){super(je)}createDOM(je){let Ke=document.createElement("blockquote");return R.addClassNamesToElement(Ke,je.theme.quote),Ke}updateDOM(){return!1}static importDOM(){return{blockquote:()=>({conversion:xe,priority:0})}}exportDOM(je){if({element:je}=super.exportDOM(je),je&&R.isHTMLElement(je)){this.isEmpty()&&je.append(document.createElement("br"));var Ke=this.getFormatType();je.style.textAlign=Ke,(Ke=this.getDirection())&&(je.dir=Ke)}return{element:je}}static importJSON(je){let Ke=J();return Ke.setFormat(je.format),Ke.setIndent(je.indent),Ke.setDirection(je.direction),Ke}exportJSON(){return{...super.exportJSON(),type:"quote"}}insertNewAfter(je,Ke){je=O.$createParagraphNode();let Je=this.getDirection();return je.setDirection(Je),this.insertAfter(je,Ke),je}collapseAtStart(){let je=O.$createParagraphNode();return this.getChildren().forEach(Ke=>je.append(Ke)),this.replace(je),!0}}function J(){return O.$applyNodeReplacement(new X)}class oe extends O.ElementNode{static getType(){return"heading"}static clone(je){return new oe(je.__tag,je.__key)}constructor(je,Ke){super(Ke),this.__tag=je}getTag(){return this.__tag}createDOM(je){let Ke=this.__tag,Je=document.createElement(Ke);return je=je.theme.heading,je!==void 0&&R.addClassNamesToElement(Je,je[Ke]),Je}updateDOM(){return!1}static importDOM(){return{h1:()=>({conversion:me,priority:0}),h2:()=>({conversion:me,priority:0}),h3:()=>({conversion:me,priority:0}),h4:()=>({conversion:me,priority:0}),h5:()=>({conversion:me,priority:0}),h6:()=>({conversion:me,priority:0}),p:je=>(je=je.firstChild,je!==null&&pe(je)?{conversion:()=>({node:null}),priority:3}:null),span:je=>pe(je)?{conversion:()=>({node:Ae("h1")}),priority:3}:null}}exportDOM(je){if({element:je}=super.exportDOM(je),je&&R.isHTMLElement(je)){this.isEmpty()&&je.append(document.createElement("br"));var Ke=this.getFormatType();je.style.textAlign=Ke,(Ke=this.getDirection())&&(je.dir=Ke)}return{element:je}}static importJSON(je){let Ke=Ae(je.tag);return Ke.setFormat(je.format),Ke.setIndent(je.indent),Ke.setDirection(je.direction),Ke}exportJSON(){return{...super.exportJSON(),tag:this.getTag(),type:"heading",version:1}}insertNewAfter(je,Ke=!0){let Je=je?je.anchor.offset:0,Xe=Je!==this.getTextContentSize()&&je?Ae(this.getTag()):O.$createParagraphNode(),ot=this.getDirection();return Xe.setDirection(ot),this.insertAfter(Xe,Ke),Je===0&&!this.isEmpty()&&je&&(je=O.$createParagraphNode(),je.select(),this.replace(je,!0)),Xe}collapseAtStart(){let je=this.isEmpty()?O.$createParagraphNode():Ae(this.getTag());return this.getChildren().forEach(Ke=>je.append(Ke)),this.replace(je),!0}extractWithChild(){return!0}}function pe(Ie){return Ie.nodeName.toLowerCase()==="span"?Ie.style.fontSize==="26pt":!1}function me(Ie){let je=Ie.nodeName.toLowerCase(),Ke=null;return(je==="h1"||je==="h2"||je==="h3"||je==="h4"||je==="h5"||je==="h6")&&(Ke=Ae(je),Ie.style!==null&&Ke.setFormat(Ie.style.textAlign)),{node:Ke}}function xe(Ie){let je=J();return Ie.style!==null&&je.setFormat(Ie.style.textAlign),{node:je}}function Ae(Ie){return O.$applyNodeReplacement(new oe(Ie))}function ge(Ie,je){Ie.preventDefault(),je.update(()=>{let Ke=O.$getSelection(),Je=Ie instanceof InputEvent||Ie instanceof KeyboardEvent?null:Ie.clipboardData;Je!=null&&Ke!==null&&S.$insertDataTransferForRichText(Je,Ke,je)},{tag:"paste"})}async function Te(Ie,je){await S.copyToClipboard(je,R.objectKlassEquals(Ie,ClipboardEvent)?Ie:null),je.update(()=>{let Ke=O.$getSelection();O.$isRangeSelection(Ke)?Ke.removeText():O.$isNodeSelection(Ke)&&Ke.getNodes().forEach(Je=>Je.remove())})}function we(Ie){let je=null;if(Ie instanceof DragEvent?je=Ie.dataTransfer:Ie instanceof ClipboardEvent&&(je=Ie.clipboardData),je===null)return[!1,[],!1];var Ke=je.types;return Ie=Ke.includes("Files"),Ke=Ke.includes("text/html")||Ke.includes("text/plain"),[Ie,Array.from(je.files),Ke]}function ke(Ie){var je=O.$getSelection();if(!O.$isRangeSelection(je))return!1;let Ke=new Set;je=je.getNodes();for(let ot=0;ot{const je=O.$getSelection();return O.$isNodeSelection(je)?(je.clear(),!0):!1},0),Ie.registerCommand(O.DELETE_CHARACTER_COMMAND,je=>{const Ke=O.$getSelection();return O.$isRangeSelection(Ke)?(Ke.deleteCharacter(je),!0):!1},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.DELETE_WORD_COMMAND,je=>{const Ke=O.$getSelection();return O.$isRangeSelection(Ke)?(Ke.deleteWord(je),!0):!1},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.DELETE_LINE_COMMAND,je=>{const Ke=O.$getSelection();return O.$isRangeSelection(Ke)?(Ke.deleteLine(je),!0):!1},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.CONTROLLED_TEXT_INSERTION_COMMAND,je=>{const Ke=O.$getSelection();if(typeof je=="string")Ke!==null&&Ke.insertText(je);else{if(Ke===null)return!1;const Je=je.dataTransfer;Je!=null?S.$insertDataTransferForRichText(Je,Ke,Ie):O.$isRangeSelection(Ke)&&(je=je.data)&&Ke.insertText(je)}return!0},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.REMOVE_TEXT_COMMAND,()=>{const je=O.$getSelection();return O.$isRangeSelection(je)?(je.removeText(),!0):!1},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.FORMAT_TEXT_COMMAND,je=>{const Ke=O.$getSelection();return O.$isRangeSelection(Ke)?(Ke.formatText(je),!0):!1},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.FORMAT_ELEMENT_COMMAND,je=>{var Ke=O.$getSelection();if(!O.$isRangeSelection(Ke)&&!O.$isNodeSelection(Ke))return!1;Ke=Ke.getNodes();for(const Je of Ke)Ke=R.$findMatchingParent(Je,Xe=>O.$isElementNode(Xe)&&!Xe.isInline()),Ke!==null&&Ke.setFormat(je);return!0},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.INSERT_LINE_BREAK_COMMAND,je=>{const Ke=O.$getSelection();return O.$isRangeSelection(Ke)?(Ke.insertLineBreak(je),!0):!1},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.INSERT_PARAGRAPH_COMMAND,()=>{const je=O.$getSelection();return O.$isRangeSelection(je)?(je.insertParagraph(),!0):!1},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.INSERT_TAB_COMMAND,()=>(O.$insertNodes([O.$createTabNode()]),!0),O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.INDENT_CONTENT_COMMAND,()=>ke(je=>{const Ke=je.getIndent();je.setIndent(Ke+1)}),O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.OUTDENT_CONTENT_COMMAND,()=>ke(je=>{const Ke=je.getIndent();0{var Ke=O.$getSelection();if(O.$isNodeSelection(Ke)&&!Be(je.target)){if(je=Ke.getNodes(),0{var Ke=O.$getSelection();if(O.$isNodeSelection(Ke)){if(je=Ke.getNodes(),0{const Ke=O.$getSelection();if(O.$isNodeSelection(Ke)){var Je=Ke.getNodes();if(0{const Ke=O.$getSelection();if(O.$isNodeSelection(Ke)&&!Be(je.target)){var Je=Ke.getNodes();if(0{if(Be(je.target))return!1;const Ke=O.$getSelection();if(!O.$isRangeSelection(Ke))return!1;je.preventDefault(),{anchor:je}=Ke;const Je=je.getNode();return Ke.isCollapsed()&&je.offset===0&&!O.$isRootNode(Je)&&0{if(Be(je.target))return!1;const Ke=O.$getSelection();return O.$isRangeSelection(Ke)?(je.preventDefault(),Ie.dispatchCommand(O.DELETE_CHARACTER_COMMAND,!1)):!1},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.KEY_ENTER_COMMAND,je=>{const Ke=O.$getSelection();if(!O.$isRangeSelection(Ke))return!1;if(je!==null){if((F||j||K)&&B)return!1;if(je.preventDefault(),je.shiftKey)return Ie.dispatchCommand(O.INSERT_LINE_BREAK_COMMAND,!1)}return Ie.dispatchCommand(O.INSERT_PARAGRAPH_COMMAND,void 0)},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.KEY_ESCAPE_COMMAND,()=>{const je=O.$getSelection();return O.$isRangeSelection(je)?(Ie.blur(),!0):!1},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.DROP_COMMAND,je=>{const[,Ke]=we(je);if(0{[je]=we(je);const Ke=O.$getSelection();return!(je&&!O.$isRangeSelection(Ke))},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.DRAGOVER_COMMAND,je=>{var[Ke]=we(je);const Je=O.$getSelection();return Ke&&!O.$isRangeSelection(Je)?!1:(Ke=I(je.clientX,je.clientY),Ke!==null&&(Ke=O.$getNearestNodeFromDOMNode(Ke.node),O.$isDecoratorNode(Ke)&&je.preventDefault()),!0)},O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.SELECT_ALL_COMMAND,()=>(O.$selectAll(),!0),O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.COPY_COMMAND,je=>(S.copyToClipboard(Ie,R.objectKlassEquals(je,ClipboardEvent)?je:null),!0),O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.CUT_COMMAND,je=>(Te(je,Ie),!0),O.COMMAND_PRIORITY_EDITOR),Ie.registerCommand(O.PASTE_COMMAND,je=>{const[,Ke,Je]=we(je);return 0({conversion:Ae,priority:0})}}exportDOM(ot){const{element:tt}=super.exportDOM(ot);if(tt&&R.isHTMLElement(tt)){this.isEmpty()&&tt.append(document.createElement("br"));const Ue=this.getFormatType();tt.style.textAlign=Ue;const et=this.getDirection();et&&(tt.dir=et)}return{element:tt}}static importJSON(ot){const tt=J();return tt.setFormat(ot.format),tt.setIndent(ot.indent),tt.setDirection(ot.direction),tt}exportJSON(){return{...super.exportJSON(),type:"quote"}}insertNewAfter(ot,tt){const Ue=O.$createParagraphNode(),et=this.getDirection();return Ue.setDirection(et),this.insertAfter(Ue,tt),Ue}collapseAtStart(){const ot=O.$createParagraphNode();return this.getChildren().forEach(Ue=>ot.append(Ue)),this.replace(ot),!0}}function J(){return O.$applyNodeReplacement(new X)}function oe(Xe){return Xe instanceof X}class pe extends O.ElementNode{static getType(){return"heading"}static clone(ot){return new pe(ot.__tag,ot.__key)}constructor(ot,tt){super(tt),this.__tag=ot}getTag(){return this.__tag}createDOM(ot){const tt=this.__tag,Ue=document.createElement(tt),dt=ot.theme.heading;if(dt!==void 0){const gt=dt[tt];R.addClassNamesToElement(Ue,gt)}return Ue}updateDOM(ot,tt){return!1}static importDOM(){return{h1:ot=>({conversion:xe,priority:0}),h2:ot=>({conversion:xe,priority:0}),h3:ot=>({conversion:xe,priority:0}),h4:ot=>({conversion:xe,priority:0}),h5:ot=>({conversion:xe,priority:0}),h6:ot=>({conversion:xe,priority:0}),p:ot=>{const Ue=ot.firstChild;return Ue!==null&&me(Ue)?{conversion:()=>({node:null}),priority:3}:null},span:ot=>me(ot)?{conversion:tt=>({node:ge("h1")}),priority:3}:null}}exportDOM(ot){const{element:tt}=super.exportDOM(ot);if(tt&&R.isHTMLElement(tt)){this.isEmpty()&&tt.append(document.createElement("br"));const Ue=this.getFormatType();tt.style.textAlign=Ue;const et=this.getDirection();et&&(tt.dir=et)}return{element:tt}}static importJSON(ot){const tt=ge(ot.tag);return tt.setFormat(ot.format),tt.setIndent(ot.indent),tt.setDirection(ot.direction),tt}exportJSON(){return{...super.exportJSON(),tag:this.getTag(),type:"heading",version:1}}insertNewAfter(ot,tt=!0){const Ue=ot?ot.anchor.offset:0,et=Ue===this.getTextContentSize()||!ot?O.$createParagraphNode():ge(this.getTag()),dt=this.getDirection();if(et.setDirection(dt),this.insertAfter(et,tt),Ue===0&&!this.isEmpty()&&ot){const gt=O.$createParagraphNode();gt.select(),this.replace(gt,!0)}return et}collapseAtStart(){const ot=this.isEmpty()?O.$createParagraphNode():ge(this.getTag());return this.getChildren().forEach(Ue=>ot.append(Ue)),this.replace(ot),!0}extractWithChild(){return!0}}function me(Xe){return Xe.nodeName.toLowerCase()==="span"?Xe.style.fontSize==="26pt":!1}function xe(Xe){const ot=Xe.nodeName.toLowerCase();let tt=null;return(ot==="h1"||ot==="h2"||ot==="h3"||ot==="h4"||ot==="h5"||ot==="h6")&&(tt=ge(ot),Xe.style!==null&&tt.setFormat(Xe.style.textAlign)),{node:tt}}function Ae(Xe){const ot=J();return Xe.style!==null&&ot.setFormat(Xe.style.textAlign),{node:ot}}function ge(Xe){return O.$applyNodeReplacement(new pe(Xe))}function Te(Xe){return Xe instanceof pe}function we(Xe,ot){Xe.preventDefault(),ot.update(()=>{const tt=O.$getSelection(),Ue=Xe instanceof InputEvent||Xe instanceof KeyboardEvent?null:Xe.clipboardData;Ue!=null&&tt!==null&&S.$insertDataTransferForRichText(Ue,tt,ot)},{tag:"paste"})}async function ke(Xe,ot){await S.copyToClipboard(ot,R.objectKlassEquals(Xe,ClipboardEvent)?Xe:null),ot.update(()=>{const tt=O.$getSelection();O.$isRangeSelection(tt)?tt.removeText():O.$isNodeSelection(tt)&&tt.getNodes().forEach(Ue=>Ue.remove())})}function Be(Xe){let ot=null;if(Xe instanceof DragEvent?ot=Xe.dataTransfer:Xe instanceof ClipboardEvent&&(ot=Xe.clipboardData),ot===null)return[!1,[],!1];const tt=ot.types,Ue=tt.includes("Files"),et=tt.includes("text/html")||tt.includes("text/plain");return[Ue,Array.from(ot.files),et]}function Ie(Xe){const ot=O.$getSelection();if(!O.$isRangeSelection(ot))return!1;const tt=new Set,Ue=ot.getNodes();for(let et=0;et0}function je(Xe){const ot=O.$getNearestNodeFromDOMNode(Xe);return O.$isDecoratorNode(ot)}function Ke(Xe){const ot=Xe.focus;return ot.key==="root"&&ot.offset===O.$getRoot().getChildrenSize()}function Je(Xe){return R.mergeRegister(Xe.registerCommand(O.CLICK_COMMAND,tt=>{const Ue=O.$getSelection();return O.$isNodeSelection(Ue)?(Ue.clear(),!0):!1},0),Xe.registerCommand(O.DELETE_CHARACTER_COMMAND,tt=>{const Ue=O.$getSelection();return O.$isRangeSelection(Ue)?(Ue.deleteCharacter(tt),!0):!1},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.DELETE_WORD_COMMAND,tt=>{const Ue=O.$getSelection();return O.$isRangeSelection(Ue)?(Ue.deleteWord(tt),!0):!1},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.DELETE_LINE_COMMAND,tt=>{const Ue=O.$getSelection();return O.$isRangeSelection(Ue)?(Ue.deleteLine(tt),!0):!1},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.CONTROLLED_TEXT_INSERTION_COMMAND,tt=>{const Ue=O.$getSelection();if(typeof tt=="string")Ue!==null&&Ue.insertText(tt);else{if(Ue===null)return!1;const et=tt.dataTransfer;if(et!=null)S.$insertDataTransferForRichText(et,Ue,Xe);else if(O.$isRangeSelection(Ue)){const dt=tt.data;return dt&&Ue.insertText(dt),!0}}return!0},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.REMOVE_TEXT_COMMAND,()=>{const tt=O.$getSelection();return O.$isRangeSelection(tt)?(tt.removeText(),!0):!1},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.FORMAT_TEXT_COMMAND,tt=>{const Ue=O.$getSelection();return O.$isRangeSelection(Ue)?(Ue.formatText(tt),!0):!1},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.FORMAT_ELEMENT_COMMAND,tt=>{const Ue=O.$getSelection();if(!O.$isRangeSelection(Ue)&&!O.$isNodeSelection(Ue))return!1;const et=Ue.getNodes();for(const dt of et){const gt=R.$findMatchingParent(dt,Qe=>O.$isElementNode(Qe)&&!Qe.isInline());gt!==null&>.setFormat(tt)}return!0},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.INSERT_LINE_BREAK_COMMAND,tt=>{const Ue=O.$getSelection();return O.$isRangeSelection(Ue)?(Ue.insertLineBreak(tt),!0):!1},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.INSERT_PARAGRAPH_COMMAND,()=>{const tt=O.$getSelection();return O.$isRangeSelection(tt)?(tt.insertParagraph(),!0):!1},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.INSERT_TAB_COMMAND,()=>(O.$insertNodes([O.$createTabNode()]),!0),O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.INDENT_CONTENT_COMMAND,()=>Ie(tt=>{const Ue=tt.getIndent();tt.setIndent(Ue+1)}),O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.OUTDENT_CONTENT_COMMAND,()=>Ie(tt=>{const Ue=tt.getIndent();Ue>0&&tt.setIndent(Ue-1)}),O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.KEY_ARROW_UP_COMMAND,tt=>{const Ue=O.$getSelection();if(O.$isNodeSelection(Ue)&&!je(tt.target)){const et=Ue.getNodes();if(et.length>0)return et[0].selectPrevious(),!0}else if(O.$isRangeSelection(Ue)){const et=O.$getAdjacentNode(Ue.focus,!0);if(!tt.shiftKey&&O.$isDecoratorNode(et)&&!et.isIsolated()&&!et.isInline())return et.selectPrevious(),tt.preventDefault(),!0}return!1},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.KEY_ARROW_DOWN_COMMAND,tt=>{const Ue=O.$getSelection();if(O.$isNodeSelection(Ue)){const et=Ue.getNodes();if(et.length>0)return et[0].selectNext(0,0),!0}else if(O.$isRangeSelection(Ue)){if(Ke(Ue))return tt.preventDefault(),!0;const et=O.$getAdjacentNode(Ue.focus,!1);if(!tt.shiftKey&&O.$isDecoratorNode(et)&&!et.isIsolated()&&!et.isInline())return et.selectNext(),tt.preventDefault(),!0}return!1},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.KEY_ARROW_LEFT_COMMAND,tt=>{const Ue=O.$getSelection();if(O.$isNodeSelection(Ue)){const et=Ue.getNodes();if(et.length>0)return tt.preventDefault(),et[0].selectPrevious(),!0}if(!O.$isRangeSelection(Ue))return!1;if(C.$shouldOverrideDefaultCharacterSelection(Ue,!0)){const et=tt.shiftKey;return tt.preventDefault(),C.$moveCharacter(Ue,et,!0),!0}return!1},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.KEY_ARROW_RIGHT_COMMAND,tt=>{const Ue=O.$getSelection();if(O.$isNodeSelection(Ue)&&!je(tt.target)){const dt=Ue.getNodes();if(dt.length>0)return tt.preventDefault(),dt[0].selectNext(0,0),!0}if(!O.$isRangeSelection(Ue))return!1;const et=tt.shiftKey;return C.$shouldOverrideDefaultCharacterSelection(Ue,!1)?(tt.preventDefault(),C.$moveCharacter(Ue,et,!1),!0):!1},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.KEY_BACKSPACE_COMMAND,tt=>{if(je(tt.target))return!1;const Ue=O.$getSelection();if(!O.$isRangeSelection(Ue))return!1;tt.preventDefault();const{anchor:et}=Ue,dt=et.getNode();return Ue.isCollapsed()&&et.offset===0&&!O.$isRootNode(dt)&&R.$getNearestBlockElementAncestorOrThrow(dt).getIndent()>0?Xe.dispatchCommand(O.OUTDENT_CONTENT_COMMAND,void 0):Xe.dispatchCommand(O.DELETE_CHARACTER_COMMAND,!0)},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.KEY_DELETE_COMMAND,tt=>{if(je(tt.target))return!1;const Ue=O.$getSelection();return O.$isRangeSelection(Ue)?(tt.preventDefault(),Xe.dispatchCommand(O.DELETE_CHARACTER_COMMAND,!1)):!1},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.KEY_ENTER_COMMAND,tt=>{const Ue=O.$getSelection();if(!O.$isRangeSelection(Ue))return!1;if(tt!==null){if((F||j||K)&&B)return!1;if(tt.preventDefault(),tt.shiftKey)return Xe.dispatchCommand(O.INSERT_LINE_BREAK_COMMAND,!1)}return Xe.dispatchCommand(O.INSERT_PARAGRAPH_COMMAND,void 0)},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.KEY_ESCAPE_COMMAND,()=>{const tt=O.$getSelection();return O.$isRangeSelection(tt)?(Xe.blur(),!0):!1},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.DROP_COMMAND,tt=>{const[,Ue]=Be(tt);if(Ue.length>0){const dt=tt.clientX,gt=tt.clientY,Qe=I(dt,gt);if(Qe!==null){const{offset:lt,node:ht}=Qe,Ct=O.$getNearestNodeFromDOMNode(ht);if(Ct!==null){const $t=O.$createRangeSelection();if(O.$isTextNode(Ct))$t.anchor.set(Ct.getKey(),lt,"text"),$t.focus.set(Ct.getKey(),lt,"text");else{const Gt=Ct.getParentOrThrow().getKey(),Pt=Ct.getIndexWithinParent()+1;$t.anchor.set(Gt,Pt,"element"),$t.focus.set(Gt,Pt,"element")}const Lt=O.$normalizeSelection__EXPERIMENTAL($t);O.$setSelection(Lt)}Xe.dispatchCommand(W,Ue)}return tt.preventDefault(),!0}const et=O.$getSelection();return!!O.$isRangeSelection(et)},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.DRAGSTART_COMMAND,tt=>{const[Ue]=Be(tt),et=O.$getSelection();return!(Ue&&!O.$isRangeSelection(et))},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.DRAGOVER_COMMAND,tt=>{const[Ue]=Be(tt),et=O.$getSelection();if(Ue&&!O.$isRangeSelection(et))return!1;const dt=tt.clientX,gt=tt.clientY,Qe=I(dt,gt);if(Qe!==null){const lt=O.$getNearestNodeFromDOMNode(Qe.node);O.$isDecoratorNode(lt)&&tt.preventDefault()}return!0},O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.SELECT_ALL_COMMAND,()=>(O.$selectAll(),!0),O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.COPY_COMMAND,tt=>(S.copyToClipboard(Xe,R.objectKlassEquals(tt,ClipboardEvent)?tt:null),!0),O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.CUT_COMMAND,tt=>(ke(tt,Xe),!0),O.COMMAND_PRIORITY_EDITOR),Xe.registerCommand(O.PASTE_COMMAND,tt=>{const[,Ue,et]=Be(tt);return Ue.length>0&&!et?(Xe.dispatchCommand(W,Ue),!0):O.isSelectionCapturedInDecoratorInput(tt.target)?!1:O.$getSelection()!==null?(we(tt,Xe),!0):!1},O.COMMAND_PRIORITY_EDITOR))}return LexicalRichText_dev.$createHeadingNode=ge,LexicalRichText_dev.$createQuoteNode=J,LexicalRichText_dev.$isHeadingNode=Te,LexicalRichText_dev.$isQuoteNode=oe,LexicalRichText_dev.DRAG_DROP_PASTE=W,LexicalRichText_dev.HeadingNode=pe,LexicalRichText_dev.QuoteNode=X,LexicalRichText_dev.eventFiles=Be,LexicalRichText_dev.registerRichText=Je,LexicalRichText_dev}var define_process_env_default$2={};const LexicalRichText=define_process_env_default$2.NODE_ENV==="development"?requireLexicalRichText_dev():requireLexicalRichText_prod();var LexicalRichText_1=LexicalRichText,hasRequiredLexicalRichTextPlugin_prod;function requireLexicalRichTextPlugin_prod(){if(hasRequiredLexicalRichTextPlugin_prod)return LexicalRichTextPlugin_prod;hasRequiredLexicalRichTextPlugin_prod=1;var S=LexicalComposerContext_1,C=requireUseLexicalEditable(),R=requireReact(),O=requireLexicalText(),I=LexicalUtils_1,N=reactDomExports,L=requireLexicalDragon(),B=LexicalRichText_1,j=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?R.useLayoutEffect:R.useEffect;function F(J){return J.getEditorState().read(O.$canShowPlaceholderCurry(J.isComposing()))}function V(J){let[oe,pe]=R.useState(()=>F(J));return j(()=>{function me(){let xe=F(J);pe(xe)}return me(),I.mergeRegister(J.registerUpdateListener(()=>{me()}),J.registerEditableListener(()=>{me()}))},[J]),oe}function K(J,oe){let[pe,me]=R.useState(()=>J.getDecorators());return j(()=>J.registerDecoratorListener(xe=>{N.flushSync(()=>{me(xe)})}),[J]),R.useEffect(()=>{me(J.getDecorators())},[J]),R.useMemo(()=>{let xe=[],Ae=Object.keys(pe);for(let ge=0;geJ._onError(Be)},R.createElement(R.Suspense,{fallback:null},pe[Te])),ke=J.getElementByKey(Te);ke!==null&&xe.push(N.createPortal(we,ke,Te))}return xe},[oe,pe,J])}function W(J){j(()=>I.mergeRegister(B.registerRichText(J),L.registerDragonSupport(J)),[J])}function X({content:J}){var[oe]=S.useLexicalComposerContext();oe=V(oe);let pe=C();return oe?typeof J=="function"?J(pe):J:null}return LexicalRichTextPlugin_prod.RichTextPlugin=function({contentEditable:J,placeholder:oe,ErrorBoundary:pe}){let[me]=S.useLexicalComposerContext();return pe=K(me,pe),W(me),R.createElement(R.Fragment,null,J,R.createElement(X,{content:oe}),pe)},LexicalRichTextPlugin_prod}var LexicalRichTextPlugin_dev={},hasRequiredLexicalRichTextPlugin_dev;function requireLexicalRichTextPlugin_dev(){if(hasRequiredLexicalRichTextPlugin_dev)return LexicalRichTextPlugin_dev;hasRequiredLexicalRichTextPlugin_dev=1;var S=LexicalComposerContext_1,C=requireUseLexicalEditable(),R=requireReact(),O=requireLexicalText(),I=LexicalUtils_1,N=reactDomExports,L=requireLexicalDragon(),B=LexicalRichText_1,V=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?R.useLayoutEffect:R.useEffect;function K(me){return me.getEditorState().read(O.$canShowPlaceholderCurry(me.isComposing()))}function W(me){const[xe,Ae]=R.useState(()=>K(me));return V(()=>{function ge(){const Te=K(me);Ae(Te)}return ge(),I.mergeRegister(me.registerUpdateListener(()=>{ge()}),me.registerEditableListener(()=>{ge()}))},[me]),xe}function X(me,xe){const[Ae,ge]=R.useState(()=>me.getDecorators());return V(()=>me.registerDecoratorListener(Te=>{N.flushSync(()=>{ge(Te)})}),[me]),R.useEffect(()=>{ge(me.getDecorators())},[me]),R.useMemo(()=>{const Te=[],we=Object.keys(Ae);for(let ke=0;keme._onError(Ke)},R.createElement(R.Suspense,{fallback:null},Ae[Be])),je=me.getElementByKey(Be);je!==null&&Te.push(N.createPortal(Ie,je,Be))}return Te},[xe,Ae,me])}function J(me){V(()=>I.mergeRegister(B.registerRichText(me),L.registerDragonSupport(me)),[me])}function oe({contentEditable:me,placeholder:xe,ErrorBoundary:Ae}){const[ge]=S.useLexicalComposerContext(),Te=X(ge,Ae);return J(ge),R.createElement(R.Fragment,null,me,R.createElement(pe,{content:xe}),Te)}function pe({content:me}){const[xe]=S.useLexicalComposerContext(),Ae=W(xe),ge=C();return Ae?typeof me=="function"?me(ge):me:null}return LexicalRichTextPlugin_dev.RichTextPlugin=oe,LexicalRichTextPlugin_dev}var define_process_env_default$1={};const LexicalRichTextPlugin=define_process_env_default$1.NODE_ENV==="development"?requireLexicalRichTextPlugin_dev():requireLexicalRichTextPlugin_prod();var LexicalRichTextPlugin_1=LexicalRichTextPlugin,RichEditorContentType=(S=>(S.IMAGE="image",S.TEXT="text",S))(RichEditorContentType||{});const FAKE_PROTOCOL="fake:",CAN_USE_DOM=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";var useLexicalNodeSelection_prod={},hasRequiredUseLexicalNodeSelection_prod;function requireUseLexicalNodeSelection_prod(){if(hasRequiredUseLexicalNodeSelection_prod)return useLexicalNodeSelection_prod;hasRequiredUseLexicalNodeSelection_prod=1;var S=LexicalComposerContext_1,C=Lexical_1,R=requireReact();function O(I,N){return I.getEditorState().read(()=>{let L=C.$getNodeByKey(N);return L===null?!1:L.isSelected()})}return useLexicalNodeSelection_prod.useLexicalNodeSelection=function(I){let[N]=S.useLexicalComposerContext(),[L,B]=R.useState(()=>O(N,I));R.useEffect(()=>{let V=!0,K=N.registerUpdateListener(()=>{V&&B(O(N,I))});return()=>{V=!1,K()}},[N,I]);let j=R.useCallback(V=>{N.update(()=>{let K=C.$getSelection();C.$isNodeSelection(K)||(K=C.$createNodeSelection(),C.$setSelection(K)),C.$isNodeSelection(K)&&(V?K.add(I):K.delete(I))})},[N,I]),F=R.useCallback(()=>{N.update(()=>{const V=C.$getSelection();C.$isNodeSelection(V)&&V.clear()})},[N]);return[L,j,F]},useLexicalNodeSelection_prod}var useLexicalNodeSelection_dev={},hasRequiredUseLexicalNodeSelection_dev;function requireUseLexicalNodeSelection_dev(){if(hasRequiredUseLexicalNodeSelection_dev)return useLexicalNodeSelection_dev;hasRequiredUseLexicalNodeSelection_dev=1;var S=LexicalComposerContext_1,C=Lexical_1,R=requireReact();function O(N,L){return N.getEditorState().read(()=>{const B=C.$getNodeByKey(L);return B===null?!1:B.isSelected()})}function I(N){const[L]=S.useLexicalComposerContext(),[B,j]=R.useState(()=>O(L,N));R.useEffect(()=>{let K=!0;const W=L.registerUpdateListener(()=>{K&&j(O(L,N))});return()=>{K=!1,W()}},[L,N]);const F=R.useCallback(K=>{L.update(()=>{let W=C.$getSelection();C.$isNodeSelection(W)||(W=C.$createNodeSelection(),C.$setSelection(W)),C.$isNodeSelection(W)&&(K?W.add(N):W.delete(N))})},[L,N]),V=R.useCallback(()=>{L.update(()=>{const K=C.$getSelection();C.$isNodeSelection(K)&&K.clear()})},[L]);return[B,F,V]}return useLexicalNodeSelection_dev.useLexicalNodeSelection=I,useLexicalNodeSelection_dev}var define_process_env_default={};const useLexicalNodeSelection=define_process_env_default.NODE_ENV==="development"?requireUseLexicalNodeSelection_dev():requireUseLexicalNodeSelection_prod();var useLexicalNodeSelection_1=useLexicalNodeSelection;function useEventCallback(S){const C=reactExports.useRef(S);return reactExports.useLayoutEffect(()=>{C.current=S}),reactExports.useCallback((...R)=>{const O=C.current;return O(...R)},[])}const INSERT_IMAGE_COMMAND=Lexical_1.createCommand("INSERT_IMAGE_COMMAND"),INSERT_MULTIPLE_NODES_COMMAND=Lexical_1.createCommand("INSERT_MULTIPLE_NODES_COMMAND"),RIGHT_CLICK_IMAGE_COMMAND=Lexical_1.createCommand("RIGHT_CLICK_IMAGE_COMMAND");class RichEditorViewModel extends ViewModel{constructor(C){super(),this.editor$=new State(void 0),this.maxHeight$=new State(void 0),this.resolveUrlByPath$=new State(void 0),this.resolveUrlByFile$=new State(void 0),this._resetEditorState=C.resetEditorState,this._replaceImageSrc=C.replaceImageSrc,this._extractEditorData=C.extractEditorData}get requiredEditor(){const C=this.editor$.getSnapshot();if(!C)throw new Error("[RichEditor] editor is not prepared.");return C}focus(){this.requiredEditor.focus()}getContent(){const R=this.requiredEditor.getEditorState();return this._extractEditorData(R)}insert(C){this.requiredEditor.dispatchCommand(INSERT_MULTIPLE_NODES_COMMAND,{nodes:C})}isEmpty(){return this.requiredEditor.getEditorState().read(()=>{const I=Lexical_1.$getRoot(),N=I.getFirstChild();return N?I.getChildrenSize()===1&&N instanceof Lexical_1.ElementNode?N.isEmpty():!1:!0})}replaceImageSrc(C,R){const O=this.editor$.getSnapshot();if(!O)throw new Error("[RichEditor] editor is not prepared.");this._replaceImageSrc(O,C,R)}reset(C){const R=this.requiredEditor;this._resetEditorState(C)(R)}async resolveUrlByFile(C){const R=this.resolveUrlByFile$.getSnapshot();return R?R(C):""}async resolveUrlByPath(C){if(C.startsWith(FAKE_PROTOCOL))return C;const R=this.resolveUrlByPath$.getSnapshot();return(R==null?void 0:R(C))??C}}const RichEditorContextType=reactExports.createContext({viewmodel:new RichEditorViewModel({extractEditorData:()=>[],resetEditorState:()=>()=>{},replaceImageSrc:()=>{}})}),useRichEditorContext=()=>{const S=reactExports.useContext(RichEditorContextType),C=reactExports.useContext(LexicalComposerContext_1.LexicalComposerContext),R=(C==null?void 0:C[0])??void 0;return R&&S.viewmodel.editor$.setState(R),S},useAutoResize=()=>{const[S]=LexicalComposerContext_1.useLexicalComposerContext(),{viewmodel:C}=useRichEditorContext(),R=useStateValue(C.maxHeight$);return useEventCallback(()=>{if(R===void 0)return;const I=S==null?void 0:S.getRootElement();if(I){I.style.height="24px";const N=Math.min(R,I.scrollHeight);I.style.height=`${N}px`}})},imageCache=new Set;function useSuspenseImage(S){imageCache.has(S)||new Promise(C=>{const R=new Image;R.src=S,R.onload=()=>{imageCache.add(S),C(null)}})}function LazyImage({alt:S,className:C,imageRef:R,src:O,width:I,height:N,maxWidth:L,onLoad:B}){return useSuspenseImage(O),jsxRuntimeExports.jsx("img",{className:C||void 0,src:O,alt:S,ref:R,style:{height:N,maxWidth:L,width:I,border:"1px solid #E5E5E5"},draggable:!1,onLoad:B})}const ImageComponent=S=>{const{viewmodel:C}=useRichEditorContext(),R=useAutoResize(),{src:O,alt:I,nodeKey:N,width:L,height:B,maxWidth:j,isImageNode:F}=S,[V,K]=reactExports.useState(O),W=reactExports.useRef(null),X=reactExports.useRef(null),[J,oe,pe]=useLexicalNodeSelection_1.useLexicalNodeSelection(N),[me]=LexicalComposerContext_1.useLexicalComposerContext(),[xe,Ae]=reactExports.useState(null),ge=reactExports.useRef(null),Te=reactExports.useCallback(tt=>{if(J&&Lexical_1.$isNodeSelection(Lexical_1.$getSelection())){tt.preventDefault();const et=Lexical_1.$getNodeByKey(N);F(et)&&et.remove()}return!1},[J,N,F]),we=reactExports.useCallback(tt=>{const Ue=Lexical_1.$getSelection(),et=X.current;return J&&Lexical_1.$isNodeSelection(Ue)&&Ue.getNodes().length===1&&et!==null&&et!==document.activeElement?(tt.preventDefault(),et.focus(),!0):!1},[J]),ke=reactExports.useCallback(tt=>tt.target===W.current?(tt.preventDefault(),!0):!1,[]),Be=reactExports.useCallback(tt=>X.current===tt.target?(Lexical_1.$setSelection(null),me.update(()=>{oe(!0);const Ue=me.getRootElement();Ue!==null&&Ue.focus()}),!0):!1,[me,oe]),Ie=reactExports.useCallback(tt=>{const Ue=tt;return Ue.target===W.current?(Ue.shiftKey?oe(!J):(pe(),oe(!0)),!0):!1},[J,oe,pe]),je=reactExports.useCallback(tt=>{me.getEditorState().read(()=>{const Ue=Lexical_1.$getSelection();tt.target.tagName==="IMG"&&Lexical_1.$isRangeSelection(Ue)&&Ue.getNodes().length===1&&me.dispatchCommand(RIGHT_CLICK_IMAGE_COMMAND,tt)})},[me]);reactExports.useEffect(()=>{let tt=!1;return C.resolveUrlByPath(O).then(Ue=>{tt||K(Ue)}),()=>{tt=!0}},[C,O]),reactExports.useEffect(()=>{let tt=!0;const Ue=me.getRootElement(),et=LexicalUtils_1.mergeRegister(me.registerUpdateListener(({editorState:dt})=>{tt&&Ae(dt.read(Lexical_1.$getSelection))}),me.registerCommand(Lexical_1.SELECTION_CHANGE_COMMAND,(dt,gt)=>(ge.current=gt,!1),Lexical_1.COMMAND_PRIORITY_LOW),me.registerCommand(Lexical_1.CLICK_COMMAND,Ie,Lexical_1.COMMAND_PRIORITY_LOW),me.registerCommand(RIGHT_CLICK_IMAGE_COMMAND,Ie,Lexical_1.COMMAND_PRIORITY_LOW),me.registerCommand(Lexical_1.DRAGSTART_COMMAND,ke,Lexical_1.COMMAND_PRIORITY_LOW),me.registerCommand(Lexical_1.KEY_DELETE_COMMAND,Te,Lexical_1.COMMAND_PRIORITY_LOW),me.registerCommand(Lexical_1.KEY_BACKSPACE_COMMAND,Te,Lexical_1.COMMAND_PRIORITY_LOW),me.registerCommand(Lexical_1.KEY_ENTER_COMMAND,we,Lexical_1.COMMAND_PRIORITY_LOW),me.registerCommand(Lexical_1.KEY_ESCAPE_COMMAND,Be,Lexical_1.COMMAND_PRIORITY_LOW));return Ue==null||Ue.addEventListener("contextmenu",je),()=>{tt=!1,et(),Ue==null||Ue.removeEventListener("contextmenu",je)}},[me,J,N,pe,Te,ke,we,Be,Ie,je,oe]);const Ke=J&&Lexical_1.$isNodeSelection(xe),Xe=J?`focused ${Lexical_1.$isNodeSelection(xe)?"draggable":""}`:void 0,ot=(V.startsWith(FAKE_PROTOCOL)?V.slice(FAKE_PROTOCOL.length):V).replace(/#[\s\S]*$/,"");return jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:null,children:jsxRuntimeExports.jsx("div",{draggable:Ke,children:jsxRuntimeExports.jsx(LazyImage,{className:Xe,src:ot,alt:I,imageRef:W,width:L,height:B,maxWidth:j,onLoad:R})})})};class ImageNode extends Lexical_1.DecoratorNode{constructor(C,R,O,I,N,L){super(L),this.src=C,this.alt=R,this.maxWidth=O,this.width=I||"inherit",this.height=N||"inherit"}static getType(){return RichEditorContentType.IMAGE}static clone(C){return new ImageNode(C.src,C.alt,C.maxWidth,C.width,C.height,C.__key)}static importDOM(){return{img:C=>({conversion:convertImageElement,priority:0})}}static importJSON(C){const{alt:R,height:O,width:I,maxWidth:N,src:L}=C;return $createImageNode({alt:R,height:O,maxWidth:N,src:L,width:I})}exportDOM(){const C=document.createElement("img");return C.setAttribute("src",this.src),C.setAttribute("alt",this.alt),C.setAttribute("width",this.width.toString()),C.setAttribute("height",this.height.toString()),{element:C}}exportJSON(){return{alt:this.getAltText(),height:this.height==="inherit"?0:this.height,maxWidth:this.maxWidth,src:this.getSrc(),type:RichEditorContentType.IMAGE,version:1,width:this.width==="inherit"?0:this.width}}setWidthAndHeight(C,R){const O=this.getWritable();O.width=C,O.height=R}createDOM(C){const R=document.createElement("span"),I=C.theme.image;return I!==void 0&&(R.className=I),R}updateDOM(){return!1}getSrc(){return this.src}getAltText(){return this.alt}decorate(){return jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:null,children:jsxRuntimeExports.jsx(ImageComponent,{src:this.src,alt:this.alt,width:this.width,height:this.height,maxWidth:this.maxWidth,nodeKey:this.getKey(),isImageNode:$isImageNode})})}}function $createImageNode({alt:S,height:C,maxWidth:R=240,src:O,width:I,key:N}){return Lexical_1.$applyNodeReplacement(new ImageNode(O,S,R,I,C,N))}function $isImageNode(S){return S instanceof ImageNode}function convertImageElement(S){if(S instanceof HTMLImageElement){const{alt:C,src:R,width:O,height:I}=S;return R.startsWith("blob:")?null:{node:$createImageNode({alt:C,height:I,src:R,width:O})}}return null}const CommandPlugin=()=>{const[S]=LexicalComposerContext_1.useLexicalComposerContext();return React.useLayoutEffect(()=>LexicalUtils_1.mergeRegister(S.registerCommand(INSERT_MULTIPLE_NODES_COMMAND,C=>{const{nodes:R}=C;if(R.length===1&&R[0].type===RichEditorContentType.TEXT){const N=R[0];return S.update(()=>{const L=Lexical_1.$getSelection();L&&L.insertRawText(N.value)}),!0}let O;const I=[];for(const N of R)switch(N.type){case RichEditorContentType.TEXT:{const L=Lexical_1.$createTextNode(N.value),B=Lexical_1.$createParagraphNode();O=L,B.append(L),I.push(B);break}case RichEditorContentType.IMAGE:{const L=$createImageNode(N),B=Lexical_1.$createParagraphNode();O=L,B.append(L),I.push(B);break}}return I.length<=0||(Lexical_1.$insertNodes(I),O&&Lexical_1.$isRootOrShadowRoot(O.getParentOrThrow())&&O.selectEnd()),!0},Lexical_1.COMMAND_PRIORITY_EDITOR)),[S]),jsxRuntimeExports.jsx(React.Fragment,{})},ACCEPTABLE_IMAGE_TYPES=["image/","image/heic","image/heif","image/gif","image/webp"],DragDropPastePlugin=()=>{const[S]=LexicalComposerContext_1.useLexicalComposerContext(),{viewmodel:C}=useRichEditorContext();return reactExports.useLayoutEffect(()=>S.registerCommand(LexicalRichText_1.DRAG_DROP_PASTE,R=>{return O(),!0;async function O(){for(const I of R)if(LexicalUtils_1.isMimeType(I,ACCEPTABLE_IMAGE_TYPES)){const N=I.name,L=await C.resolveUrlByFile(I);S.dispatchCommand(INSERT_IMAGE_COMMAND,{alt:N,src:L})}}},Lexical_1.COMMAND_PRIORITY_LOW),[S,C]),jsxRuntimeExports.jsx(reactExports.Fragment,{})};class Point{constructor(C,R){this._x=C,this._y=R}get x(){return this._x}get y(){return this._y}equals(C){return this.x===C.x&&this.y===C.y}calcDeltaXTo(C){return this.x-C.x}calcDeltaYTo(C){return this.y-C.y}calcHorizontalDistanceTo(C){return Math.abs(this.calcDeltaXTo(C))}calcVerticalDistance(C){return Math.abs(this.calcDeltaYTo(C))}calcDistanceTo(C){const R=this.calcDeltaXTo(C)**2,O=this.calcDeltaYTo(C)**2;return Math.sqrt(R+O)}}function isPoint(S){return S instanceof Point}class Rect{constructor(C,R,O,I){const[N,L]=R<=I?[R,I]:[I,R],[B,j]=C<=O?[C,O]:[O,C];this._top=N,this._right=j,this._left=B,this._bottom=L}get top(){return this._top}get right(){return this._right}get bottom(){return this._bottom}get left(){return this._left}get width(){return Math.abs(this._left-this._right)}get height(){return Math.abs(this._bottom-this._top)}static fromLTRB(C,R,O,I){return new Rect(C,R,O,I)}static fromLWTH(C,R,O,I){return new Rect(C,O,C+R,O+I)}static fromPoints(C,R){const{y:O,x:I}=C,{y:N,x:L}=R;return Rect.fromLTRB(I,O,L,N)}static fromDOM(C){const{top:R,width:O,left:I,height:N}=C.getBoundingClientRect();return Rect.fromLWTH(I,O,R,N)}equals(C){return C.top===this._top&&C.bottom===this._bottom&&C.left===this._left&&C.right===this._right}contains(C){if(isPoint(C)){const{x:R,y:O}=C,I=Othis._bottom,L=Rthis._right;return{reason:{isOnBottomSide:N,isOnLeftSide:L,isOnRightSide:B,isOnTopSide:I},result:!I&&!N&&!L&&!B}}else{const{top:R,left:O,bottom:I,right:N}=C;return R>=this._top&&R<=this._bottom&&I>=this._top&&I<=this._bottom&&O>=this._left&&O<=this._right&&N>=this._left&&N<=this._right}}intersectsWith(C){const{left:R,top:O,width:I,height:N}=C,{left:L,top:B,width:j,height:F}=this,V=R+I>=L+j?R+I:L+j,K=O+N>=B+F?O+N:B+F,W=R<=L?R:L,X=O<=B?O:B;return V-W<=I+j&&K-X<=N+F}generateNewRect({left:C=this.left,top:R=this.top,right:O=this.right,bottom:I=this.bottom}){return new Rect(C,R,O,I)}}const SPACE=4,TARGET_LINE_HALF_HEIGHT=2,DRAGGABLE_BLOCK_MENU_CLASSNAME="draggable-block-menu",DRAG_DATA_FORMAT="application/x-lexical-drag-block",TEXT_BOX_HORIZONTAL_PADDING=28,Downward=1,Upward=-1,Indeterminate=0,DraggableBlockPlugin=S=>{const{anchorElem:C=document.body}=S,[R]=LexicalComposerContext_1.useLexicalComposerContext();return useDraggableBlockMenu(R,C,R._editable)};let prevIndex=1/0;function getCurrentIndex(S){return S===0?1/0:prevIndex>=0&&prevIndexLexical_1.$getRoot().getChildrenKeys())}function getCollapsedMargins(S){const C=(j,F)=>j?parseFloat(window.getComputedStyle(j)[F]):0,{marginTop:R,marginBottom:O}=window.getComputedStyle(S),I=C(S.previousElementSibling,"marginBottom"),N=C(S.nextElementSibling,"marginTop"),L=Math.max(parseFloat(R),I);return{marginBottom:Math.max(parseFloat(O),N),marginTop:L}}function getBlockElement(S,C,R,O=!1){const I=S.getBoundingClientRect(),N=getTopLevelNodeKeys(C);let L=null;return C.getEditorState().read(()=>{if(O){const F=C.getElementByKey(N[0]),V=C.getElementByKey(N[N.length-1]),K=F==null?void 0:F.getBoundingClientRect(),W=V==null?void 0:V.getBoundingClientRect();if(K&&W&&(R.yW.bottom&&(L=V),L))return}let B=getCurrentIndex(N.length),j=Indeterminate;for(;B>=0&&B{O.transform=R})}function setTargetLine(S,C,R,O){const{top:I,height:N}=C.getBoundingClientRect(),{top:L,width:B}=O.getBoundingClientRect(),{marginTop:j,marginBottom:F}=getCollapsedMargins(C);let V=I;R>=I?V+=N+F/2:V-=j/2;const K=V-L-TARGET_LINE_HALF_HEIGHT,W=TEXT_BOX_HORIZONTAL_PADDING-SPACE,X=S.style;X.transform=`translate(${W}px, ${K}px)`,X.width=`${B-(TEXT_BOX_HORIZONTAL_PADDING-SPACE)*2}px`,X.opacity=".4"}function hideTargetLine(S){const C=S==null?void 0:S.style;C&&(C.opacity="0",C.transform="translate(-10000px, -10000px)")}function useDraggableBlockMenu(S,C,R){const O=C.parentElement,I=reactExports.useRef(null),N=reactExports.useRef(null),L=reactExports.useRef(!1),[B,j]=reactExports.useState(null);reactExports.useLayoutEffect(()=>{function K(X){const J=X.target;if(!isHTMLElement(J)){j(null);return}if(isOnMenu(J))return;const oe=getBlockElement(C,S,X);j(oe)}function W(){j(null)}return O==null||O.addEventListener("mousemove",K),O==null||O.addEventListener("mouseleave",W),()=>{O==null||O.removeEventListener("mousemove",K),O==null||O.removeEventListener("mouseleave",W)}},[O,C,S]),reactExports.useEffect(()=>{I.current&&setMenuPosition(B,I.current,C)},[C,B]),reactExports.useEffect(()=>{function K(X){if(!L.current)return!1;const[J]=LexicalRichText_1.eventFiles(X);if(J)return!1;const{pageY:oe,target:pe}=X;if(!isHTMLElement(pe))return!1;const me=getBlockElement(C,S,X,!0),xe=N.current;return me===null||xe===null?!1:(setTargetLine(xe,me,oe,C),X.preventDefault(),!0)}function W(X){if(!L.current)return!1;const[J]=LexicalRichText_1.eventFiles(X);if(J)return!1;const{target:oe,dataTransfer:pe,pageY:me}=X,xe=(pe==null?void 0:pe.getData(DRAG_DATA_FORMAT))||"",Ae=Lexical_1.$getNodeByKey(xe);if(!Ae||!isHTMLElement(oe))return!1;const ge=getBlockElement(C,S,X,!0);if(!ge)return!1;const Te=Lexical_1.$getNearestNodeFromDOMNode(ge);if(!Te)return!1;if(Te===Ae)return!0;const we=ge.getBoundingClientRect().top;return me>=we?Te.insertAfter(Ae):Te.insertBefore(Ae),j(null),!0}return LexicalUtils_1.mergeRegister(S.registerCommand(Lexical_1.DRAGOVER_COMMAND,X=>K(X),Lexical_1.COMMAND_PRIORITY_LOW),S.registerCommand(Lexical_1.DROP_COMMAND,X=>W(X),Lexical_1.COMMAND_PRIORITY_HIGH))},[C,S]);const F=K=>{const W=K.dataTransfer;if(!W||!B)return;setDragImage(W,B);let X="";S.update(()=>{const J=Lexical_1.$getNearestNodeFromDOMNode(B);J&&(X=J.getKey())}),L.current=!0,W.setData(DRAG_DATA_FORMAT,X)},V=()=>{L.current=!1,hideTargetLine(N.current)};return reactDomExports.createPortal(jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"icon draggable-block-menu",role:"button",ref:I,draggable:!0,onDragStart:F,onDragEnd:V,children:jsxRuntimeExports.jsx("div",{className:R?"icon":""})}),jsxRuntimeExports.jsx("div",{className:"draggable-block-target-line",ref:N})]}),C)}const EditablePlugin=S=>{const{editable:C}=S,[R]=LexicalComposerContext_1.useLexicalComposerContext();return reactExports.useEffect(()=>{R.setEditable(C)},[R,C]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},ImagesPlugin=()=>{const[S]=LexicalComposerContext_1.useLexicalComposerContext();return reactExports.useLayoutEffect(()=>{if(!S.hasNodes([ImageNode]))throw new Error("[RichEditor] ImagesPlugin: ImageNode not registered on editor");return LexicalUtils_1.mergeRegister(S.registerCommand(INSERT_IMAGE_COMMAND,onInsertImage,Lexical_1.COMMAND_PRIORITY_EDITOR),S.registerCommand(Lexical_1.DRAGSTART_COMMAND,onDragStart,Lexical_1.COMMAND_PRIORITY_HIGH),S.registerCommand(Lexical_1.DRAGOVER_COMMAND,onDragover,Lexical_1.COMMAND_PRIORITY_LOW),S.registerCommand(Lexical_1.DROP_COMMAND,C=>onDrop(C,S),Lexical_1.COMMAND_PRIORITY_HIGH))},[S]),jsxRuntimeExports.jsx(reactExports.Fragment,{})};let _transparentImage;const getTransparentImage=()=>{if(_transparentImage===void 0){const S="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";_transparentImage=document.createElement("img"),_transparentImage.src=S}return _transparentImage};function onInsertImage(S){const C=$createImageNode(S);return Lexical_1.$insertNodes([C]),Lexical_1.$isRootOrShadowRoot(C.getParentOrThrow())&&LexicalUtils_1.$wrapNodeInElement(C,Lexical_1.$createParagraphNode).selectEnd(),!0}function onDragStart(S){const C=getImageNodeInSelection();if(!C)return!1;const R=S.dataTransfer;if(!R)return!1;const O=getTransparentImage();return R.setData("text/plain","_"),R.setDragImage(O,0,0),R.setData("application/x-lexical-drag",JSON.stringify({type:RichEditorContentType.IMAGE,data:{alt:C.alt,height:C.height,key:C.getKey(),maxWidth:C.maxWidth,src:C.src,width:C.width}})),!0}function onDragover(S){return getImageNodeInSelection()?(canDropImage(S)||S.preventDefault(),!0):!1}function onDrop(S,C){const R=getImageNodeInSelection();if(!R)return!1;const O=getDragImageData(S);if(!O)return!1;if(S.preventDefault(),canDropImage(S)){const I=getDragSelection(S);R.remove();const N=Lexical_1.$createRangeSelection();I!=null&&N.applyDOMRange(I),Lexical_1.$setSelection(N),C.dispatchCommand(INSERT_IMAGE_COMMAND,O)}return!0}function getImageNodeInSelection(){const S=Lexical_1.$getSelection();if(!Lexical_1.$isNodeSelection(S))return null;const R=S.getNodes()[0];return $isImageNode(R)?R:null}function getDragImageData(S){var R;const C=(R=S.dataTransfer)==null?void 0:R.getData("application/x-lexical-drag");if(!C)return null;try{const{type:O,data:I}=JSON.parse(C);return O===RichEditorContentType.IMAGE?I:null}catch{return null}}function canDropImage(S){const C=S.target;return!!(C&&C instanceof HTMLElement&&!C.closest("code, span.editor-image")&&C.parentElement&&C.parentElement.closest("div.ContentEditable__root"))}const getDOMSelection=S=>CAN_USE_DOM?(S||window).getSelection():null;function getDragSelection(S){const C=S,R=C.target,O=R==null?null:R.nodeType===9?R.defaultView:R.ownerDocument.defaultView,I=getDOMSelection(O);let N;if(document.caretRangeFromPoint)N=document.caretRangeFromPoint(C.clientX,C.clientY);else if(C.rangeParent&&I!==null)I.collapse(C.rangeParent,C.rangeOffset||0),N=I.getRangeAt(0);else throw Error("[RichEditor] ImagesPlugin: Cannot get the selection when dragging");return N}const OnKeyDownPlugin=S=>{const[C]=LexicalComposerContext_1.useLexicalComposerContext(),R=reactExports.useRef(S.onKeyDown);return reactExports.useLayoutEffect(()=>{const O=I=>{var N;(N=R.current)==null||N.call(R,I)};return C.registerRootListener((I,N)=>{N!==null&&N.removeEventListener("keydown",O),I!==null&&I.addEventListener("keydown",O)})},[C]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},PlainContentPastePlugin=()=>{const[S]=LexicalComposerContext_1.useLexicalComposerContext();return reactExports.useLayoutEffect(()=>LexicalUtils_1.mergeRegister(S.registerUpdateListener(C=>{C.tags.has("paste")&&S.update(()=>{C.dirtyLeaves.forEach(R=>{const O=Lexical_1.$getNodeByKey(R);if(Lexical_1.$isTextNode(O)){const I=Lexical_1.$copyNode(O);I.setFormat(0),I.setStyle(""),O.replace(I)}})})}),S.registerNodeTransform(Lexical_1.TextNode,C=>{const R=C.getParentOrThrow();if(LexicalLink_1.$isLinkNode(R)){const O=Lexical_1.$createTextNode(R.__url);R.insertBefore(O),R.remove()}})),[S]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},resetEditorState=S=>C=>{C.update(()=>{const R=Lexical_1.$getRoot();R.clear();for(const O of S)if(O!=null){if(typeof O=="string"){const I=Lexical_1.$createTextNode(O),N=Lexical_1.$createParagraphNode();N.append(I),R.append(N);continue}if(typeof O=="object"){switch(O.type){case RichEditorContentType.IMAGE:{const I=$createImageNode({alt:O.alt,src:O.src}),N=Lexical_1.$createParagraphNode();N.append(I),R.append(N);break}case RichEditorContentType.TEXT:{const I=Lexical_1.$createTextNode(O.value),N=Lexical_1.$createParagraphNode();N.append(I),R.append(N);break}default:throw console.log("item:",O),new TypeError(`[resetEditorState] unknown rich-editor content type: ${O.type}`)}continue}console.error("[resetEditorState] unknown rich-editor data:",O)}})},RootType=Lexical_1.RootNode.getType(),ParagraphType=Lexical_1.ParagraphNode.getType(),TextType=Lexical_1.TextNode.getType(),ImageType=ImageNode.getType(),LineBreakType=Lexical_1.LineBreakNode.getType(),extractEditorData=S=>{const C=S.toJSON(),R=[];for(const I of C.root.children)O(I);return R;function O(I){switch(I.type){case ImageType:{const{src:N,alt:L}=I;if(N.startsWith(FAKE_PROTOCOL)){const B=R[R.length-1];(B==null?void 0:B.type)===RichEditorContentType.TEXT&&(B.value+=` -`);break}R.push({type:RichEditorContentType.IMAGE,src:N,alt:L});break}case LineBreakType:{const N=R[R.length-1];(N==null?void 0:N.type)===RichEditorContentType.TEXT&&(N.value+=` -`);break}case ParagraphType:{const N=I.children;for(const L of N)O(L);break}case TextType:{const N=I.text,L=R[R.length-1];(L==null?void 0:L.type)===RichEditorContentType.TEXT?L.value+=N:R.push({type:RichEditorContentType.TEXT,value:N});break}default:throw new TypeError(`[RichEditor] [extractEditorData] Unknown node.type: (${I.type})`)}}},replaceImageSrc=(S,C,R)=>{S.update(()=>{const O=Lexical_1.$getRoot();I(O);function I(N){switch(N.getType()){case RootType:case ParagraphType:for(const L of N.getChildren())I(L);break;case ImageType:{const L=N;if(L.getSrc()===C){const B=$createImageNode({alt:L.getAltText(),src:R});L.replace(B)}break}}}})};class RichEditor extends reactExports.Component{constructor(C){super(C),this.state={floatingAnchorElem:null};const{editable:R=!0,initialContent:O}=this.props;this.initialConfig={namespace:"react-simple-rich-editor",theme:{ltr:"ltr",rtl:"rtl",placeholder:classes.editorPlaceholder,paragraph:classes.editorParagraph},nodes:[ImageNode,LexicalLink_1.LinkNode],editable:R,editorState:O?resetEditorState(O):null,onError:I=>{console.error(I)}},this.onKeyDown=this.onKeyDown.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),this.onChange=this.onChange.bind(this),this.onEditorInputWrapperRef=this.onEditorInputWrapperRef.bind(this)}render(){const{initialConfig:C,onKeyDown:R,onFocus:O,onBlur:I,onChange:N,onEditorInputWrapperRef:L}=this,{editable:B=!0,placeholder:j="Enter some text...",pluginsBeforeRichEditors:F=[],pluginsAfterRichEditors:V=[]}=this.props,{floatingAnchorElem:K}=this.state,W=mergeStyles$1(classes.editorContainer,this.props.editorContainerCls),X=mergeStyles$1(classes.editorInput,this.props.editorInputCls),J=mergeStyles$1(classes.editorInputBox,this.props.editorInputBoxCls),oe=mergeStyles$1(classes.editorPlaceholder,this.props.editorPlaceholderCls),pe=jsxRuntimeExports.jsx("div",{ref:L,className:J,children:jsxRuntimeExports.jsx(LexicalContentEditable_1.ContentEditable,{onFocus:O,onBlur:I,className:X})});return jsxRuntimeExports.jsxs(LexicalComposer_1.LexicalComposer,{initialConfig:C,children:[jsxRuntimeExports.jsx(EditablePlugin,{editable:B}),jsxRuntimeExports.jsx(CommandPlugin,{}),jsxRuntimeExports.jsxs("div",{className:W,children:[F,jsxRuntimeExports.jsx(LexicalRichTextPlugin_1.RichTextPlugin,{contentEditable:pe,placeholder:jsxRuntimeExports.jsx("div",{className:oe,children:j}),ErrorBoundary:LexicalErrorBoundary$1}),V,jsxRuntimeExports.jsx(OnKeyDownPlugin,{onKeyDown:R}),jsxRuntimeExports.jsx(LexicalOnChangePlugin_1.OnChangePlugin,{onChange:N}),jsxRuntimeExports.jsx(DragDropPastePlugin,{}),jsxRuntimeExports.jsx(PlainContentPastePlugin,{}),jsxRuntimeExports.jsx(ImagesPlugin,{}),jsxRuntimeExports.jsx(LexicalHistoryPlugin_1.HistoryPlugin,{}),K&&jsxRuntimeExports.jsx(DraggableBlockPlugin,{anchorElem:K})]})]})}onKeyDown(C){var R,O;(O=(R=this.props).onKeyDown)==null||O.call(R,C)}onFocus(C){var R,O;(O=(R=this.props).onFocus)==null||O.call(R,C)}onBlur(C){var R,O;(O=(R=this.props).onBlur)==null||O.call(R,C)}onChange(C){var R,O;(O=(R=this.props).onChange)==null||O.call(R,C)}onEditorInputWrapperRef(C){C!==null&&this.setState({floatingAnchorElem:C})}}const classes=mergeStyleSets({editorContainer:{boxSizing:"border-box",position:"relative"},editorInputBox:{boxSizing:"border-box",overflow:"auto",border:"none",position:"relative",fontWeight:"400",textAlign:"left"},editorInput:{overflow:"auto",boxSizing:"border-box",resize:"none",fontSize:"15px",position:"relative",tabSize:"1",outline:"0","> :last-child":{marginBottom:0}},editorPlaceholder:{boxSizing:"border-box",color:"#999",overflow:"hidden",position:"absolute",textOverflow:"ellipsis",top:"0px",left:"0px",fontSize:"15px",userSelect:"none",display:"inline-block",pointerEvents:"none",width:"100%"},editorParagraph:{margin:"0 0 15px 0",position:"relative"}}),ReactRichEditor=reactExports.forwardRef((S,C)=>{const[R]=reactExports.useState(()=>new RichEditorViewModel({extractEditorData,replaceImageSrc,resetEditorState})),O=reactExports.useMemo(()=>({viewmodel:R}),[R]);return R.resolveUrlByFile$.next(S.resolveUrlByFile),R.resolveUrlByPath$.next(S.resolveUrlByPath),reactExports.useImperativeHandle(C,()=>({focus:()=>{O.viewmodel.focus()},getContent:()=>O.viewmodel.getContent(),insert:I=>{O.viewmodel.insert(I)},isEmpty:()=>O.viewmodel.isEmpty(),replaceImageSrc:(I,N)=>{O.viewmodel.replaceImageSrc(I,N)},reset:I=>{O.viewmodel.reset(I)}})),jsxRuntimeExports.jsx(RichEditorContextType.Provider,{value:O,children:jsxRuntimeExports.jsx(RichEditor,{...S})})});ReactRichEditor.displayName="ReactRichEditor";const AutoResizeTextBoxPlugin=S=>{const{viewmodel:C}=useRichEditorContext(),{maxHeight:R}=S,O=useAutoResize();return reactExports.useLayoutEffect(()=>{C.maxHeight$.setState(R),O(),setTimeout(O,1e3)},[R,O]),jsxRuntimeExports.jsx(LexicalOnChangePlugin_1.OnChangePlugin,{onChange:O,ignoreHistoryMergeTagChange:!0,ignoreSelectionChange:!0})},InspectPlugin=S=>{const[C]=LexicalComposerContext_1.useLexicalComposerContext(),R=useEventCallback(O=>{var N;return(((N=S.inspectImageUrl)==null?void 0:N.call(S,O))??"good")==="good"});return reactExports.useLayoutEffect(()=>LexicalUtils_1.mergeRegister(C.registerNodeTransform(ImageNode,O=>{if(!R(O.src)){const I=Lexical_1.$createTextNode(O.src);O.insertBefore(I),O.remove()}})),[C,R]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},pfImageKeyPattern=/^data:image\//,isPfImage=S=>{if(!S||typeof S!="object")return!1;const C=Object.keys(S);return C.length===1&&pfImageKeyPattern.test(C[0])};function isPFChatInputItem(S){return typeof S=="string"?!0:S?isPfImage(S)?!0:typeof S=="object"&&typeof S.type=="string":!1}function isNonBlankPFChatInputs(S){return!Array.isArray(S)||S.length<1?!1:S.every(isPFChatInputItem)}const PFPastePlugin=()=>{const{viewmodel:S}=useRichEditorContext();return reactExports.useLayoutEffect(()=>{const C=S.requiredEditor;if(!C.hasNodes([ImageNode]))throw new Error("[RichEditor] PFPastePlugin: ImageNode not registered on editor");return C.registerCommand(Lexical_1.PASTE_COMMAND,R=>{var N;const O=(N=R.clipboardData)==null?void 0:N.getData("Text");if(O){let L=!1;try{const B=JSON.parse(O);isNonBlankPFChatInputs(B)&&(L=!0,I(B))}catch{L=!1}return L}return!1;async function I(L){const B=[];for(const j of L){if(typeof j=="string"){B.push({type:RichEditorContentType.TEXT,value:j});continue}if(isPfImage(j)){const F=Object.keys(j)[0],V=j[F];B.push({type:RichEditorContentType.IMAGE,src:V,alt:"image"});continue}switch(j.type){case"text":{B.push({type:RichEditorContentType.TEXT,value:j.text});break}case"image_file":{B.push({type:RichEditorContentType.IMAGE,src:j.image_file.path,alt:j.image_file.path});break}case"image_url":{B.push({type:RichEditorContentType.IMAGE,src:j.image_url.url,alt:j.image_url.url});break}}}S.insert(B)}},Lexical_1.COMMAND_PRIORITY_EDITOR)},[S]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},index=Object.freeze(Object.defineProperty({__proto__:null,ACCEPTABLE_IMAGE_TYPES,AutoResizeTextBoxPlugin,CAN_USE_DOM,DragDropPastePlugin,DraggableBlockPlugin,FAKE_PROTOCOL,ImagesPlugin,InspectPlugin,PFPastePlugin,ReactRichEditor,RichEditorContentType,RichEditorContextType,RichEditorViewModel,isNonBlankPFChatInputs,isPFChatInputItem,isPfImage,useRichEditorContext},Symbol.toStringTag,{value:"Module"}))})(); diff --git a/src/promptflow/promptflow/_sdk/_service/static/favicon.ico b/src/promptflow/promptflow/_sdk/_service/static/assets/favicon.ico similarity index 100% rename from src/promptflow/promptflow/_sdk/_service/static/favicon.ico rename to src/promptflow/promptflow/_sdk/_service/static/assets/favicon.ico diff --git a/src/promptflow/promptflow/_sdk/_service/static/assets/index-4cTGdARK.js b/src/promptflow/promptflow/_sdk/_service/static/assets/index-4cTGdARK.js new file mode 100644 index 00000000000..3e1ef984ed0 --- /dev/null +++ b/src/promptflow/promptflow/_sdk/_service/static/assets/index-4cTGdARK.js @@ -0,0 +1,1949 @@ +(function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode('@layer rdg.MeasuringCell{.m1l09lto7-0-0-beta-39{contain:strict;grid-row:1;visibility:hidden}}@layer rdg.Cell{.c1wupbe7-0-0-beta-39{position:relative;padding-block:0;padding-inline:8px;border-inline-end:1px solid var(--rdg-border-color);border-block-end:1px solid var(--rdg-border-color);grid-row-start:var(--rdg-grid-row-start);background-color:inherit;white-space:nowrap;overflow:clip;text-overflow:ellipsis;outline:none}.c1wupbe7-0-0-beta-39[aria-selected=true]{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.Cell{.cd0kgiy7-0-0-beta-39{position:sticky;z-index:1}}@layer rdg.Cell{.c1730fa47-0-0-beta-39{box-shadow:calc(2px * var(--rdg-sign)) 0 5px -2px #8888884d}}@layer rdg.CheckboxLabel{.c1hs68w07-0-0-beta-39{cursor:pointer;display:flex;align-items:center;justify-content:center;position:absolute;top:0;right:0;bottom:0;left:0;margin-inline-end:1px}}@layer rdg.CheckboxInput{.cojpd0n7-0-0-beta-39{all:unset}}@layer rdg.CheckboxIcon{.cwsfieb7-0-0-beta-39{content:"";inline-size:20px;block-size:20px;border:2px solid var(--rdg-border-color);background-color:var(--rdg-background-color)}.cojpd0n7-0-0-beta-39:checked+.cwsfieb7-0-0-beta-39{background-color:var(--rdg-checkbox-color);outline:4px solid var(--rdg-background-color);outline-offset:-6px}.cojpd0n7-0-0-beta-39:focus+.cwsfieb7-0-0-beta-39{border-color:var(--rdg-checkbox-focus-color)}}@layer rdg.CheckboxLabel{.c1fgadbl7-0-0-beta-39{cursor:default}.c1fgadbl7-0-0-beta-39 .cwsfieb7-0-0-beta-39{border-color:var(--rdg-checkbox-disabled-border-color);background-color:var(--rdg-checkbox-disabled-background-color)}}@layer rdg.GroupCellContent{.g1w3c5217-0-0-beta-39{outline:none}}@layer rdg.GroupCellCaret{.cm5tyhw7-0-0-beta-39{margin-inline-start:4px;stroke:currentColor;stroke-width:1.5px;fill:transparent;vertical-align:middle}.cm5tyhw7-0-0-beta-39>path{transition:d .1s}}@layer rdg.DragHandle{.cadd3bp7-0-0-beta-39{--rdg-drag-handle-size: 8px;z-index:0;cursor:move;inline-size:var(--rdg-drag-handle-size);block-size:var(--rdg-drag-handle-size);background-color:var(--rdg-selection-color);place-self:end}.cadd3bp7-0-0-beta-39:hover{--rdg-drag-handle-size: 16px;border:2px solid var(--rdg-selection-color);background-color:var(--rdg-background-color)}}@layer rdg.DragHandle{.ccmuez27-0-0-beta-39{z-index:1;position:sticky}}@layer rdg.EditCell{.c1tngyp17-0-0-beta-39{padding:0}}@layer rdg.SortableHeaderCell{.hizp7y17-0-0-beta-39{display:flex}}@layer rdg.SortableHeaderCellName{.h14cojrm7-0-0-beta-39{flex-grow:1;overflow:clip;text-overflow:ellipsis}}@layer rdg.HeaderCell{.celq7o97-0-0-beta-39{cursor:pointer}}@layer rdg.HeaderCell{.ceqw94e7-0-0-beta-39{touch-action:none}}@layer rdg.HeaderCell{.r12jy2ca7-0-0-beta-39{cursor:col-resize;position:absolute;inset-block-start:0;inset-inline-end:0;inset-block-end:0;inline-size:10px}}.c1j3os1p7-0-0-beta-39{opacity:.5}.c1ui3nad7-0-0-beta-39{background-color:var(--rdg-header-draggable-background-color)}@layer rdg.Row{.r1otpg647-0-0-beta-39{display:contents;line-height:var(--rdg-row-height);background-color:var(--rdg-background-color)}.r1otpg647-0-0-beta-39:hover{background-color:var(--rdg-row-hover-background-color)}.r1otpg647-0-0-beta-39[aria-selected=true]{background-color:var(--rdg-row-selected-background-color)}.r1otpg647-0-0-beta-39[aria-selected=true]:hover{background-color:var(--rdg-row-selected-hover-background-color)}}@layer rdg.FocusSink{.rel5gk27-0-0-beta-39{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.FocusSink{.r1qymf1z7-0-0-beta-39:before{content:"";display:inline-block;height:100%;position:sticky;inset-inline-start:0;border-inline-start:2px solid var(--rdg-selection-color)}}@layer rdg.HeaderRow{.h197vzie7-0-0-beta-39{display:contents;line-height:var(--rdg-header-row-height);background-color:var(--rdg-header-background-color);font-weight:700}.h197vzie7-0-0-beta-39>.c1wupbe7-0-0-beta-39{z-index:2;position:sticky}.h197vzie7-0-0-beta-39>.cd0kgiy7-0-0-beta-39{z-index:3}}@layer rdg.Cell{.ccpfvsn7-0-0-beta-39{background-color:#ccf}}@layer rdg.Cell{.c1bmg16t7-0-0-beta-39{background-color:#ccf}.c1bmg16t7-0-0-beta-39.ccpfvsn7-0-0-beta-39{background-color:#99f}}@layer rdg.SortIcon{.a1mygwml7-0-0-beta-39{fill:currentColor}.a1mygwml7-0-0-beta-39>path{transition:d .1s}}@layer rdg{@layer Defaults,FocusSink,CheckboxInput,CheckboxIcon,CheckboxLabel,Cell,HeaderCell,SummaryCell,EditCell,Row,HeaderRow,SummaryRow,GroupedRow,Root;@layer Defaults{.r104f42s7-0-0-beta-39 *,.r104f42s7-0-0-beta-39 *:before,.r104f42s7-0-0-beta-39 *:after{box-sizing:inherit}}@layer Root{.r104f42s7-0-0-beta-39{--rdg-color: #000;--rdg-border-color: #ddd;--rdg-summary-border-color: #aaa;--rdg-background-color: hsl(0deg 0% 100%);--rdg-header-background-color: hsl(0deg 0% 97.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 90.5%);--rdg-row-hover-background-color: hsl(0deg 0% 96%);--rdg-row-selected-background-color: hsl(207deg 76% 92%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 88%);--rdg-checkbox-color: hsl(207deg 100% 29%);--rdg-checkbox-focus-color: hsl(207deg 100% 69%);--rdg-checkbox-disabled-border-color: #ccc;--rdg-checkbox-disabled-background-color: #ddd;--rdg-selection-color: #66afe9;--rdg-font-size: 14px;display:grid;color-scheme:var(--rdg-color-scheme, light dark);contain:content;content-visibility:auto;block-size:350px;border:1px solid var(--rdg-border-color);box-sizing:border-box;overflow:auto;background-color:var(--rdg-background-color);color:var(--rdg-color);font-size:var(--rdg-font-size)}.r104f42s7-0-0-beta-39:before{content:"";grid-column:1/-1;grid-row:1/-1}.r104f42s7-0-0-beta-39.rdg-dark{--rdg-color-scheme: dark;--rdg-color: #ddd;--rdg-border-color: #444;--rdg-summary-border-color: #555;--rdg-background-color: hsl(0deg 0% 13%);--rdg-header-background-color: hsl(0deg 0% 10.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 17.5%);--rdg-row-hover-background-color: hsl(0deg 0% 9%);--rdg-row-selected-background-color: hsl(207deg 76% 42%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 38%);--rdg-checkbox-color: hsl(207deg 100% 79%);--rdg-checkbox-focus-color: hsl(207deg 100% 89%);--rdg-checkbox-disabled-border-color: #000;--rdg-checkbox-disabled-background-color: #333}.r104f42s7-0-0-beta-39.rdg-light{--rdg-color-scheme: light}@media (prefers-color-scheme: dark){.r104f42s7-0-0-beta-39:not(.rdg-light){--rdg-color: #ddd;--rdg-border-color: #444;--rdg-summary-border-color: #555;--rdg-background-color: hsl(0deg 0% 13%);--rdg-header-background-color: hsl(0deg 0% 10.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 17.5%);--rdg-row-hover-background-color: hsl(0deg 0% 9%);--rdg-row-selected-background-color: hsl(207deg 76% 42%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 38%);--rdg-checkbox-color: hsl(207deg 100% 79%);--rdg-checkbox-focus-color: hsl(207deg 100% 89%);--rdg-checkbox-disabled-border-color: #000;--rdg-checkbox-disabled-background-color: #333}}}}@layer rdg.Root{.v7ly7s7-0-0-beta-39{-webkit-user-select:none;user-select:none}.v7ly7s7-0-0-beta-39 .r1otpg647-0-0-beta-39{cursor:move}}@layer rdg.FocusSink{.fc4f4zb7-0-0-beta-39{grid-column:1/-1;pointer-events:none;z-index:1}}@layer rdg.FocusSink{.fq51q037-0-0-beta-39{z-index:3}}@layer rdg.SummaryCell{.s1n3hxke7-0-0-beta-39{inset-block-start:var(--rdg-summary-row-top);inset-block-end:var(--rdg-summary-row-bottom)}}@layer rdg.SummaryRow{.snfqesz7-0-0-beta-39{line-height:var(--rdg-summary-row-height)}.snfqesz7-0-0-beta-39>.c1wupbe7-0-0-beta-39{position:sticky}}@layer rdg.SummaryRow{.t1jijrjz7-0-0-beta-39>.c1wupbe7-0-0-beta-39{z-index:2}.t1jijrjz7-0-0-beta-39>.cd0kgiy7-0-0-beta-39{z-index:3}}@layer rdg.SummaryRow{.t14bmecc7-0-0-beta-39>.c1wupbe7-0-0-beta-39{border-block-end:2px solid var(--rdg-summary-border-color)}}@layer rdg.SummaryRow{.b1odhhml7-0-0-beta-39>.c1wupbe7-0-0-beta-39{border-block-start:2px solid var(--rdg-summary-border-color)}}@layer rdg.GroupedRow{.gyxx7e97-0-0-beta-39:not([aria-selected=true]){background-color:var(--rdg-header-background-color)}.gyxx7e97-0-0-beta-39>.c1wupbe7-0-0-beta-39:not(:last-child):not(.c1730fa47-0-0-beta-39){border-inline-end:none}}@layer rdg.TextEditor{.tlmcuo07-0-0-beta-39{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;inline-size:100%;block-size:100%;padding-block:0;padding-inline:6px;border:2px solid #ccc;vertical-align:top;color:var(--rdg-color);background-color:var(--rdg-background-color);font-family:inherit;font-size:var(--rdg-font-size)}.tlmcuo07-0-0-beta-39:focus{border-color:var(--rdg-selection-color);outline:none}.tlmcuo07-0-0-beta-39::placeholder{color:#999;opacity:1}}.json-view{display:block;color:#4d4d4d;text-align:left;--json-property: #009033;--json-index: #676dff;--json-number: #676dff;--json-string: #b2762e;--json-boolean: #dc155e;--json-null: #dc155e}.json-view .json-view--property{color:var(--json-property)}.json-view .json-view--index{color:var(--json-index)}.json-view .json-view--number{color:var(--json-number)}.json-view .json-view--string{color:var(--json-string)}.json-view .json-view--boolean{color:var(--json-boolean)}.json-view .json-view--null{color:var(--json-null)}.json-view .jv-indent{padding-left:1em}.json-view .jv-chevron{display:inline-block;vertical-align:-20%;cursor:pointer;opacity:.4;width:1em;height:1em}:is(.json-view .jv-chevron:hover,.json-view .jv-size:hover+.jv-chevron){opacity:.8}.json-view .jv-size{cursor:pointer;opacity:.4;font-size:.875em;font-style:italic;margin-left:.5em;vertical-align:-5%;line-height:1}.json-view :is(.json-view--copy,.json-view--edit),.json-view .json-view--link svg{display:none;width:1em;height:1em;margin-left:.25em;cursor:pointer}.json-view .json-view--input{width:120px;margin-left:.25em;border-radius:4px;border:1px solid currentColor;padding:0 4px;font-size:87.5%;line-height:1.25;background:transparent}.json-view .json-view--deleting{outline:1px solid #da0000;background-color:#da000011;text-decoration-line:line-through}:is(.json-view:hover,.json-view--pair:hover)>:is(.json-view--copy,.json-view--edit),:is(.json-view:hover,.json-view--pair:hover)>.json-view--link svg{display:inline-block}.json-view .jv-button{background:transparent;outline:none;border:none;cursor:pointer}.json-view .cursor-pointer{cursor:pointer}.json-view svg{vertical-align:-10%}.jv-size-chevron~svg{vertical-align:-16%}.json-view_a11y{color:#545454;--json-property: #aa5d00;--json-index: #007299;--json-number: #007299;--json-string: #008000;--json-boolean: #d91e18;--json-null: #d91e18}.json-view_github{color:#005cc5;--json-property: #005cc5;--json-index: #005cc5;--json-number: #005cc5;--json-string: #032f62;--json-boolean: #005cc5;--json-null: #005cc5}.json-view_vscode{color:#005cc5;--json-property: #0451a5;--json-index: #0000ff;--json-number: #0000ff;--json-string: #a31515;--json-boolean: #0000ff;--json-null: #0000ff}.json-view_atom{color:#383a42;--json-property: #e45649;--json-index: #986801;--json-number: #986801;--json-string: #50a14f;--json-boolean: #0184bc;--json-null: #0184bc}.json-view_winter-is-coming{color:#0431fa;--json-property: #3a9685;--json-index: #ae408b;--json-number: #ae408b;--json-string: #8123a9;--json-boolean: #0184bc;--json-null: #0184bc}:is(.dark .json-view,.dark.json-view){color:#d1d1d1;--json-property: #009033;--json-index: #5d75f2;--json-number: #5d75f2;--json-string: #c57e29;--json-boolean: #e4407b;--json-null: #e4407b}:is(.dark .json-view_a11y,.dark.json-view_a11y){color:#d1d1d1;--json-property: #ffd700;--json-index: #00e0e0;--json-number: #00e0e0;--json-string: #abe338;--json-boolean: #ffa07a;--json-null: #ffa07a}:is(.dark .json-view_github,.dark.json-view_github){color:#79b8ff;--json-property: #79b8ff;--json-index: #79b8ff;--json-number: #79b8ff;--json-string: #9ecbff;--json-boolean: #79b8ff;--json-null: #79b8ff}:is(.dark .json-view_vscode,.dark.json-view_vscode){color:orchid;--json-property: #9cdcfe;--json-index: #b5cea8;--json-number: #b5cea8;--json-string: #ce9178;--json-boolean: #569cd6;--json-null: #569cd6}:is(.dark .json-view_atom,.dark.json-view_atom){color:#abb2bf;--json-property: #e06c75;--json-index: #d19a66;--json-number: #d19a66;--json-string: #98c379;--json-boolean: #56b6c2;--json-null: #56b6c2}:is(.dark .json-view_winter-is-coming,.dark.json-view_winter-is-coming){color:#a7dbf7;--json-property: #91dacd;--json-index: #8dec95;--json-number: #8dec95;--json-string: #e0aff5;--json-boolean: #f29fd8;--json-null: #f29fd8}.json-view .json-view--string{word-break:break-all}')),document.head.appendChild(o)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); +var KS=Object.defineProperty;var VS=(j,_e,et)=>_e in j?KS(j,_e,{enumerable:!0,configurable:!0,writable:!0,value:et}):j[_e]=et;var qS=(j,_e)=>()=>(_e||j((_e={exports:{}}).exports,_e),_e.exports);var zr=(j,_e,et)=>(VS(j,typeof _e!="symbol"?_e+"":_e,et),et);var US=qS((exports,module)=>{function _mergeNamespaces(j,_e){for(var et=0;et<_e.length;et++){const tt=_e[et];if(typeof tt!="string"&&!Array.isArray(tt)){for(const rt in tt)if(rt!=="default"&&!(rt in j)){const nt=Object.getOwnPropertyDescriptor(tt,rt);nt&&Object.defineProperty(j,rt,nt.get?nt:{enumerable:!0,get:()=>tt[rt]})}}}return Object.freeze(Object.defineProperty(j,Symbol.toStringTag,{value:"Module"}))}(function(){const _e=document.createElement("link").relList;if(_e&&_e.supports&&_e.supports("modulepreload"))return;for(const rt of document.querySelectorAll('link[rel="modulepreload"]'))tt(rt);new MutationObserver(rt=>{for(const nt of rt)if(nt.type==="childList")for(const ot of nt.addedNodes)ot.tagName==="LINK"&&ot.rel==="modulepreload"&&tt(ot)}).observe(document,{childList:!0,subtree:!0});function et(rt){const nt={};return rt.integrity&&(nt.integrity=rt.integrity),rt.referrerPolicy&&(nt.referrerPolicy=rt.referrerPolicy),rt.crossOrigin==="use-credentials"?nt.credentials="include":rt.crossOrigin==="anonymous"?nt.credentials="omit":nt.credentials="same-origin",nt}function tt(rt){if(rt.ep)return;rt.ep=!0;const nt=et(rt);fetch(rt.href,nt)}})();var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(j){return j&&j.__esModule&&Object.prototype.hasOwnProperty.call(j,"default")?j.default:j}var jsxRuntime$1={exports:{}},reactJsxRuntime_production_min={},react={exports:{}},react_production_min={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var l$9=Symbol.for("react.element"),n$c=Symbol.for("react.portal"),p$c=Symbol.for("react.fragment"),q$9=Symbol.for("react.strict_mode"),r$a=Symbol.for("react.profiler"),t$a=Symbol.for("react.provider"),u$9=Symbol.for("react.context"),v$b=Symbol.for("react.forward_ref"),w$8=Symbol.for("react.suspense"),x$9=Symbol.for("react.memo"),y$a=Symbol.for("react.lazy"),z$7=Symbol.iterator;function A$5(j){return j===null||typeof j!="object"?null:(j=z$7&&j[z$7]||j["@@iterator"],typeof j=="function"?j:null)}var B$7={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C$7=Object.assign,D$5={};function E$5(j,_e,et){this.props=j,this.context=_e,this.refs=D$5,this.updater=et||B$7}E$5.prototype.isReactComponent={};E$5.prototype.setState=function(j,_e){if(typeof j!="object"&&typeof j!="function"&&j!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,j,_e,"setState")};E$5.prototype.forceUpdate=function(j){this.updater.enqueueForceUpdate(this,j,"forceUpdate")};function F$4(){}F$4.prototype=E$5.prototype;function G$5(j,_e,et){this.props=j,this.context=_e,this.refs=D$5,this.updater=et||B$7}var H$5=G$5.prototype=new F$4;H$5.constructor=G$5;C$7(H$5,E$5.prototype);H$5.isPureReactComponent=!0;var I$3=Array.isArray,J$2=Object.prototype.hasOwnProperty,K$2={current:null},L$2={key:!0,ref:!0,__self:!0,__source:!0};function M$2(j,_e,et){var tt,rt={},nt=null,ot=null;if(_e!=null)for(tt in _e.ref!==void 0&&(ot=_e.ref),_e.key!==void 0&&(nt=""+_e.key),_e)J$2.call(_e,tt)&&!L$2.hasOwnProperty(tt)&&(rt[tt]=_e[tt]);var it=arguments.length-2;if(it===1)rt.children=et;else if(1>>1,Xt=jt[Yt];if(0>>1;Ytrt(vr,Vt))Trrt(gr,vr)?(jt[Yt]=gr,jt[Tr]=Vt,Yt=Tr):(jt[Yt]=vr,jt[cr]=Vt,Yt=cr);else if(Trrt(gr,Vt))jt[Yt]=gr,jt[Tr]=Vt,Yt=Tr;else break e}}return Gt}function rt(jt,Gt){var Vt=jt.sortIndex-Gt.sortIndex;return Vt!==0?Vt:jt.id-Gt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var nt=performance;j.unstable_now=function(){return nt.now()}}else{var ot=Date,it=ot.now();j.unstable_now=function(){return ot.now()-it}}var st=[],lt=[],ut=1,ct=null,dt=3,ft=!1,pt=!1,gt=!1,vt=typeof setTimeout=="function"?setTimeout:null,bt=typeof clearTimeout=="function"?clearTimeout:null,_t=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function xt(jt){for(var Gt=et(lt);Gt!==null;){if(Gt.callback===null)tt(lt);else if(Gt.startTime<=jt)tt(lt),Gt.sortIndex=Gt.expirationTime,_e(st,Gt);else break;Gt=et(lt)}}function yt(jt){if(gt=!1,xt(jt),!pt)if(et(st)!==null)pt=!0,Rt(Et);else{var Gt=et(lt);Gt!==null&&Lt(yt,Gt.startTime-jt)}}function Et(jt,Gt){pt=!1,gt&&(gt=!1,bt(At),At=-1),ft=!0;var Vt=dt;try{for(xt(Gt),ct=et(st);ct!==null&&(!(ct.expirationTime>Gt)||jt&&!It());){var Yt=ct.callback;if(typeof Yt=="function"){ct.callback=null,dt=ct.priorityLevel;var Xt=Yt(ct.expirationTime<=Gt);Gt=j.unstable_now(),typeof Xt=="function"?ct.callback=Xt:ct===et(st)&&tt(st),xt(Gt)}else tt(st);ct=et(st)}if(ct!==null)var rr=!0;else{var cr=et(lt);cr!==null&&Lt(yt,cr.startTime-Gt),rr=!1}return rr}finally{ct=null,dt=Vt,ft=!1}}var St=!1,$t=null,At=-1,wt=5,Ct=-1;function It(){return!(j.unstable_now()-Ctjt||125Yt?(jt.sortIndex=Vt,_e(lt,jt),et(st)===null&&jt===et(lt)&&(gt?(bt(At),At=-1):gt=!0,Lt(yt,Vt-Yt))):(jt.sortIndex=Xt,_e(st,jt),pt||ft||(pt=!0,Rt(Et))),jt},j.unstable_shouldYield=It,j.unstable_wrapCallback=function(jt){var Gt=dt;return function(){var Vt=dt;dt=Gt;try{return jt.apply(this,arguments)}finally{dt=Vt}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;var schedulerExports=scheduler.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var aa=reactExports,ca$1=schedulerExports;function p$a(j){for(var _e="https://reactjs.org/docs/error-decoder.html?invariant="+j,et=1;et"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ja=Object.prototype.hasOwnProperty,ka$2=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,la$1={},ma$1={};function oa$1(j){return ja.call(ma$1,j)?!0:ja.call(la$1,j)?!1:ka$2.test(j)?ma$1[j]=!0:(la$1[j]=!0,!1)}function pa$1(j,_e,et,tt){if(et!==null&&et.type===0)return!1;switch(typeof _e){case"function":case"symbol":return!0;case"boolean":return tt?!1:et!==null?!et.acceptsBooleans:(j=j.toLowerCase().slice(0,5),j!=="data-"&&j!=="aria-");default:return!1}}function qa$1(j,_e,et,tt){if(_e===null||typeof _e>"u"||pa$1(j,_e,et,tt))return!0;if(tt)return!1;if(et!==null)switch(et.type){case 3:return!_e;case 4:return _e===!1;case 5:return isNaN(_e);case 6:return isNaN(_e)||1>_e}return!1}function v$a(j,_e,et,tt,rt,nt,ot){this.acceptsBooleans=_e===2||_e===3||_e===4,this.attributeName=tt,this.attributeNamespace=rt,this.mustUseProperty=et,this.propertyName=j,this.type=_e,this.sanitizeURL=nt,this.removeEmptyString=ot}var z$6={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(j){z$6[j]=new v$a(j,0,!1,j,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(j){var _e=j[0];z$6[_e]=new v$a(_e,1,!1,j[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(j){z$6[j]=new v$a(j,2,!1,j.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(j){z$6[j]=new v$a(j,2,!1,j,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(j){z$6[j]=new v$a(j,3,!1,j.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(j){z$6[j]=new v$a(j,3,!0,j,null,!1,!1)});["capture","download"].forEach(function(j){z$6[j]=new v$a(j,4,!1,j,null,!1,!1)});["cols","rows","size","span"].forEach(function(j){z$6[j]=new v$a(j,6,!1,j,null,!1,!1)});["rowSpan","start"].forEach(function(j){z$6[j]=new v$a(j,5,!1,j.toLowerCase(),null,!1,!1)});var ra$1=/[\-:]([a-z])/g;function sa$1(j){return j[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(j){var _e=j.replace(ra$1,sa$1);z$6[_e]=new v$a(_e,1,!1,j,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(j){var _e=j.replace(ra$1,sa$1);z$6[_e]=new v$a(_e,1,!1,j,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(j){var _e=j.replace(ra$1,sa$1);z$6[_e]=new v$a(_e,1,!1,j,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(j){z$6[j]=new v$a(j,1,!1,j.toLowerCase(),null,!1,!1)});z$6.xlinkHref=new v$a("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(j){z$6[j]=new v$a(j,1,!1,j.toLowerCase(),null,!0,!0)});function ta$1(j,_e,et,tt){var rt=z$6.hasOwnProperty(_e)?z$6[_e]:null;(rt!==null?rt.type!==0:tt||!(2<_e.length)||_e[0]!=="o"&&_e[0]!=="O"||_e[1]!=="n"&&_e[1]!=="N")&&(qa$1(_e,et,rt,tt)&&(et=null),tt||rt===null?oa$1(_e)&&(et===null?j.removeAttribute(_e):j.setAttribute(_e,""+et)):rt.mustUseProperty?j[rt.propertyName]=et===null?rt.type===3?!1:"":et:(_e=rt.attributeName,tt=rt.attributeNamespace,et===null?j.removeAttribute(_e):(rt=rt.type,et=rt===3||rt===4&&et===!0?"":""+et,tt?j.setAttributeNS(tt,_e,et):j.setAttribute(_e,et))))}var ua$1=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va$1=Symbol.for("react.element"),wa$1=Symbol.for("react.portal"),ya$1=Symbol.for("react.fragment"),za$1=Symbol.for("react.strict_mode"),Aa$1=Symbol.for("react.profiler"),Ba$1=Symbol.for("react.provider"),Ca$1=Symbol.for("react.context"),Da$1=Symbol.for("react.forward_ref"),Ea=Symbol.for("react.suspense"),Fa=Symbol.for("react.suspense_list"),Ga$1=Symbol.for("react.memo"),Ha$1=Symbol.for("react.lazy"),Ia$1=Symbol.for("react.offscreen"),Ja$1=Symbol.iterator;function Ka$1(j){return j===null||typeof j!="object"?null:(j=Ja$1&&j[Ja$1]||j["@@iterator"],typeof j=="function"?j:null)}var A$4=Object.assign,La$1;function Ma$1(j){if(La$1===void 0)try{throw Error()}catch(et){var _e=et.stack.trim().match(/\n( *(at )?)/);La$1=_e&&_e[1]||""}return` +`+La$1+j}var Na$1=!1;function Oa$1(j,_e){if(!j||Na$1)return"";Na$1=!0;var et=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(_e)if(_e=function(){throw Error()},Object.defineProperty(_e.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(_e,[])}catch(lt){var tt=lt}Reflect.construct(j,[],_e)}else{try{_e.call()}catch(lt){tt=lt}j.call(_e.prototype)}else{try{throw Error()}catch(lt){tt=lt}j()}}catch(lt){if(lt&&tt&&typeof lt.stack=="string"){for(var rt=lt.stack.split(` +`),nt=tt.stack.split(` +`),ot=rt.length-1,it=nt.length-1;1<=ot&&0<=it&&rt[ot]!==nt[it];)it--;for(;1<=ot&&0<=it;ot--,it--)if(rt[ot]!==nt[it]){if(ot!==1||it!==1)do if(ot--,it--,0>it||rt[ot]!==nt[it]){var st=` +`+rt[ot].replace(" at new "," at ");return j.displayName&&st.includes("")&&(st=st.replace("",j.displayName)),st}while(1<=ot&&0<=it);break}}}finally{Na$1=!1,Error.prepareStackTrace=et}return(j=j?j.displayName||j.name:"")?Ma$1(j):""}function Pa$1(j){switch(j.tag){case 5:return Ma$1(j.type);case 16:return Ma$1("Lazy");case 13:return Ma$1("Suspense");case 19:return Ma$1("SuspenseList");case 0:case 2:case 15:return j=Oa$1(j.type,!1),j;case 11:return j=Oa$1(j.type.render,!1),j;case 1:return j=Oa$1(j.type,!0),j;default:return""}}function Qa$1(j){if(j==null)return null;if(typeof j=="function")return j.displayName||j.name||null;if(typeof j=="string")return j;switch(j){case ya$1:return"Fragment";case wa$1:return"Portal";case Aa$1:return"Profiler";case za$1:return"StrictMode";case Ea:return"Suspense";case Fa:return"SuspenseList"}if(typeof j=="object")switch(j.$$typeof){case Ca$1:return(j.displayName||"Context")+".Consumer";case Ba$1:return(j._context.displayName||"Context")+".Provider";case Da$1:var _e=j.render;return j=j.displayName,j||(j=_e.displayName||_e.name||"",j=j!==""?"ForwardRef("+j+")":"ForwardRef"),j;case Ga$1:return _e=j.displayName||null,_e!==null?_e:Qa$1(j.type)||"Memo";case Ha$1:_e=j._payload,j=j._init;try{return Qa$1(j(_e))}catch{}}return null}function Ra$1(j){var _e=j.type;switch(j.tag){case 24:return"Cache";case 9:return(_e.displayName||"Context")+".Consumer";case 10:return(_e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return j=_e.render,j=j.displayName||j.name||"",_e.displayName||(j!==""?"ForwardRef("+j+")":"ForwardRef");case 7:return"Fragment";case 5:return _e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Qa$1(_e);case 8:return _e===za$1?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof _e=="function")return _e.displayName||_e.name||null;if(typeof _e=="string")return _e}return null}function Sa$1(j){switch(typeof j){case"boolean":case"number":case"string":case"undefined":return j;case"object":return j;default:return""}}function Ta$1(j){var _e=j.type;return(j=j.nodeName)&&j.toLowerCase()==="input"&&(_e==="checkbox"||_e==="radio")}function Ua(j){var _e=Ta$1(j)?"checked":"value",et=Object.getOwnPropertyDescriptor(j.constructor.prototype,_e),tt=""+j[_e];if(!j.hasOwnProperty(_e)&&typeof et<"u"&&typeof et.get=="function"&&typeof et.set=="function"){var rt=et.get,nt=et.set;return Object.defineProperty(j,_e,{configurable:!0,get:function(){return rt.call(this)},set:function(ot){tt=""+ot,nt.call(this,ot)}}),Object.defineProperty(j,_e,{enumerable:et.enumerable}),{getValue:function(){return tt},setValue:function(ot){tt=""+ot},stopTracking:function(){j._valueTracker=null,delete j[_e]}}}}function Va$1(j){j._valueTracker||(j._valueTracker=Ua(j))}function Wa$1(j){if(!j)return!1;var _e=j._valueTracker;if(!_e)return!0;var et=_e.getValue(),tt="";return j&&(tt=Ta$1(j)?j.checked?"true":"false":j.value),j=tt,j!==et?(_e.setValue(j),!0):!1}function Xa$1(j){if(j=j||(typeof document<"u"?document:void 0),typeof j>"u")return null;try{return j.activeElement||j.body}catch{return j.body}}function Ya$1(j,_e){var et=_e.checked;return A$4({},_e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:et??j._wrapperState.initialChecked})}function Za$1(j,_e){var et=_e.defaultValue==null?"":_e.defaultValue,tt=_e.checked!=null?_e.checked:_e.defaultChecked;et=Sa$1(_e.value!=null?_e.value:et),j._wrapperState={initialChecked:tt,initialValue:et,controlled:_e.type==="checkbox"||_e.type==="radio"?_e.checked!=null:_e.value!=null}}function ab$1(j,_e){_e=_e.checked,_e!=null&&ta$1(j,"checked",_e,!1)}function bb$1(j,_e){ab$1(j,_e);var et=Sa$1(_e.value),tt=_e.type;if(et!=null)tt==="number"?(et===0&&j.value===""||j.value!=et)&&(j.value=""+et):j.value!==""+et&&(j.value=""+et);else if(tt==="submit"||tt==="reset"){j.removeAttribute("value");return}_e.hasOwnProperty("value")?cb$1(j,_e.type,et):_e.hasOwnProperty("defaultValue")&&cb$1(j,_e.type,Sa$1(_e.defaultValue)),_e.checked==null&&_e.defaultChecked!=null&&(j.defaultChecked=!!_e.defaultChecked)}function db$1(j,_e,et){if(_e.hasOwnProperty("value")||_e.hasOwnProperty("defaultValue")){var tt=_e.type;if(!(tt!=="submit"&&tt!=="reset"||_e.value!==void 0&&_e.value!==null))return;_e=""+j._wrapperState.initialValue,et||_e===j.value||(j.value=_e),j.defaultValue=_e}et=j.name,et!==""&&(j.name=""),j.defaultChecked=!!j._wrapperState.initialChecked,et!==""&&(j.name=et)}function cb$1(j,_e,et){(_e!=="number"||Xa$1(j.ownerDocument)!==j)&&(et==null?j.defaultValue=""+j._wrapperState.initialValue:j.defaultValue!==""+et&&(j.defaultValue=""+et))}var eb$1=Array.isArray;function fb$1(j,_e,et,tt){if(j=j.options,_e){_e={};for(var rt=0;rt"+_e.valueOf().toString()+"",_e=mb$1.firstChild;j.firstChild;)j.removeChild(j.firstChild);for(;_e.firstChild;)j.appendChild(_e.firstChild)}});function ob$1(j,_e){if(_e){var et=j.firstChild;if(et&&et===j.lastChild&&et.nodeType===3){et.nodeValue=_e;return}}j.textContent=_e}var pb$1={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb$1=["Webkit","ms","Moz","O"];Object.keys(pb$1).forEach(function(j){qb$1.forEach(function(_e){_e=_e+j.charAt(0).toUpperCase()+j.substring(1),pb$1[_e]=pb$1[j]})});function rb$1(j,_e,et){return _e==null||typeof _e=="boolean"||_e===""?"":et||typeof _e!="number"||_e===0||pb$1.hasOwnProperty(j)&&pb$1[j]?(""+_e).trim():_e+"px"}function sb$1(j,_e){j=j.style;for(var et in _e)if(_e.hasOwnProperty(et)){var tt=et.indexOf("--")===0,rt=rb$1(et,_e[et],tt);et==="float"&&(et="cssFloat"),tt?j.setProperty(et,rt):j[et]=rt}}var tb$1=A$4({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ub$1(j,_e){if(_e){if(tb$1[j]&&(_e.children!=null||_e.dangerouslySetInnerHTML!=null))throw Error(p$a(137,j));if(_e.dangerouslySetInnerHTML!=null){if(_e.children!=null)throw Error(p$a(60));if(typeof _e.dangerouslySetInnerHTML!="object"||!("__html"in _e.dangerouslySetInnerHTML))throw Error(p$a(61))}if(_e.style!=null&&typeof _e.style!="object")throw Error(p$a(62))}}function vb$1(j,_e){if(j.indexOf("-")===-1)return typeof _e.is=="string";switch(j){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wb$1=null;function xb$1(j){return j=j.target||j.srcElement||window,j.correspondingUseElement&&(j=j.correspondingUseElement),j.nodeType===3?j.parentNode:j}var yb$1=null,zb$1=null,Ab$1=null;function Bb$1(j){if(j=Cb$1(j)){if(typeof yb$1!="function")throw Error(p$a(280));var _e=j.stateNode;_e&&(_e=Db$1(_e),yb$1(j.stateNode,j.type,_e))}}function Eb$1(j){zb$1?Ab$1?Ab$1.push(j):Ab$1=[j]:zb$1=j}function Fb$1(){if(zb$1){var j=zb$1,_e=Ab$1;if(Ab$1=zb$1=null,Bb$1(j),_e)for(j=0;j<_e.length;j++)Bb$1(_e[j])}}function Gb$1(j,_e){return j(_e)}function Hb$1(){}var Ib$1=!1;function Jb$1(j,_e,et){if(Ib$1)return j(_e,et);Ib$1=!0;try{return Gb$1(j,_e,et)}finally{Ib$1=!1,(zb$1!==null||Ab$1!==null)&&(Hb$1(),Fb$1())}}function Kb$1(j,_e){var et=j.stateNode;if(et===null)return null;var tt=Db$1(et);if(tt===null)return null;et=tt[_e];e:switch(_e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(tt=!tt.disabled)||(j=j.type,tt=!(j==="button"||j==="input"||j==="select"||j==="textarea")),j=!tt;break e;default:j=!1}if(j)return null;if(et&&typeof et!="function")throw Error(p$a(231,_e,typeof et));return et}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,"passive",{get:function(){Lb=!0}}),window.addEventListener("test",Mb,Mb),window.removeEventListener("test",Mb,Mb)}catch{Lb=!1}function Nb(j,_e,et,tt,rt,nt,ot,it,st){var lt=Array.prototype.slice.call(arguments,3);try{_e.apply(et,lt)}catch(ut){this.onError(ut)}}var Ob=!1,Pb=null,Qb=!1,Rb$1=null,Sb$1={onError:function(j){Ob=!0,Pb=j}};function Tb$1(j,_e,et,tt,rt,nt,ot,it,st){Ob=!1,Pb=null,Nb.apply(Sb$1,arguments)}function Ub$1(j,_e,et,tt,rt,nt,ot,it,st){if(Tb$1.apply(this,arguments),Ob){if(Ob){var lt=Pb;Ob=!1,Pb=null}else throw Error(p$a(198));Qb||(Qb=!0,Rb$1=lt)}}function Vb$1(j){var _e=j,et=j;if(j.alternate)for(;_e.return;)_e=_e.return;else{j=_e;do _e=j,_e.flags&4098&&(et=_e.return),j=_e.return;while(j)}return _e.tag===3?et:null}function Wb$1(j){if(j.tag===13){var _e=j.memoizedState;if(_e===null&&(j=j.alternate,j!==null&&(_e=j.memoizedState)),_e!==null)return _e.dehydrated}return null}function Xb$1(j){if(Vb$1(j)!==j)throw Error(p$a(188))}function Yb$1(j){var _e=j.alternate;if(!_e){if(_e=Vb$1(j),_e===null)throw Error(p$a(188));return _e!==j?null:j}for(var et=j,tt=_e;;){var rt=et.return;if(rt===null)break;var nt=rt.alternate;if(nt===null){if(tt=rt.return,tt!==null){et=tt;continue}break}if(rt.child===nt.child){for(nt=rt.child;nt;){if(nt===et)return Xb$1(rt),j;if(nt===tt)return Xb$1(rt),_e;nt=nt.sibling}throw Error(p$a(188))}if(et.return!==tt.return)et=rt,tt=nt;else{for(var ot=!1,it=rt.child;it;){if(it===et){ot=!0,et=rt,tt=nt;break}if(it===tt){ot=!0,tt=rt,et=nt;break}it=it.sibling}if(!ot){for(it=nt.child;it;){if(it===et){ot=!0,et=nt,tt=rt;break}if(it===tt){ot=!0,tt=nt,et=rt;break}it=it.sibling}if(!ot)throw Error(p$a(189))}}if(et.alternate!==tt)throw Error(p$a(190))}if(et.tag!==3)throw Error(p$a(188));return et.stateNode.current===et?j:_e}function Zb$1(j){return j=Yb$1(j),j!==null?$b$1(j):null}function $b$1(j){if(j.tag===5||j.tag===6)return j;for(j=j.child;j!==null;){var _e=$b$1(j);if(_e!==null)return _e;j=j.sibling}return null}var ac$1=ca$1.unstable_scheduleCallback,bc$1=ca$1.unstable_cancelCallback,cc$1=ca$1.unstable_shouldYield,dc$1=ca$1.unstable_requestPaint,B$6=ca$1.unstable_now,ec$1=ca$1.unstable_getCurrentPriorityLevel,fc$1=ca$1.unstable_ImmediatePriority,gc$1=ca$1.unstable_UserBlockingPriority,hc$1=ca$1.unstable_NormalPriority,ic$1=ca$1.unstable_LowPriority,jc$1=ca$1.unstable_IdlePriority,kc$1=null,lc$1=null;function mc$1(j){if(lc$1&&typeof lc$1.onCommitFiberRoot=="function")try{lc$1.onCommitFiberRoot(kc$1,j,void 0,(j.current.flags&128)===128)}catch{}}var oc$1=Math.clz32?Math.clz32:nc$1,pc$1=Math.log,qc$1=Math.LN2;function nc$1(j){return j>>>=0,j===0?32:31-(pc$1(j)/qc$1|0)|0}var rc$1=64,sc$1=4194304;function tc$1(j){switch(j&-j){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return j&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return j&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return j}}function uc$1(j,_e){var et=j.pendingLanes;if(et===0)return 0;var tt=0,rt=j.suspendedLanes,nt=j.pingedLanes,ot=et&268435455;if(ot!==0){var it=ot&~rt;it!==0?tt=tc$1(it):(nt&=ot,nt!==0&&(tt=tc$1(nt)))}else ot=et&~rt,ot!==0?tt=tc$1(ot):nt!==0&&(tt=tc$1(nt));if(tt===0)return 0;if(_e!==0&&_e!==tt&&!(_e&rt)&&(rt=tt&-tt,nt=_e&-_e,rt>=nt||rt===16&&(nt&4194240)!==0))return _e;if(tt&4&&(tt|=et&16),_e=j.entangledLanes,_e!==0)for(j=j.entanglements,_e&=tt;0<_e;)et=31-oc$1(_e),rt=1<et;et++)_e.push(j);return _e}function Ac$1(j,_e,et){j.pendingLanes|=_e,_e!==536870912&&(j.suspendedLanes=0,j.pingedLanes=0),j=j.eventTimes,_e=31-oc$1(_e),j[_e]=et}function Bc$1(j,_e){var et=j.pendingLanes&~_e;j.pendingLanes=_e,j.suspendedLanes=0,j.pingedLanes=0,j.expiredLanes&=_e,j.mutableReadLanes&=_e,j.entangledLanes&=_e,_e=j.entanglements;var tt=j.eventTimes;for(j=j.expirationTimes;0=be$2),ee$2=" ",fe$2=!1;function ge$1(j,_e){switch(j){case"keyup":return $d$1.indexOf(_e.keyCode)!==-1;case"keydown":return _e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function he$2(j){return j=j.detail,typeof j=="object"&&"data"in j?j.data:null}var ie$2=!1;function je$1(j,_e){switch(j){case"compositionend":return he$2(_e);case"keypress":return _e.which!==32?null:(fe$2=!0,ee$2);case"textInput":return j=_e.data,j===ee$2&&fe$2?null:j;default:return null}}function ke$1(j,_e){if(ie$2)return j==="compositionend"||!ae$2&&ge$1(j,_e)?(j=nd$1(),md$1=ld$1=kd$1=null,ie$2=!1,j):null;switch(j){case"paste":return null;case"keypress":if(!(_e.ctrlKey||_e.altKey||_e.metaKey)||_e.ctrlKey&&_e.altKey){if(_e.char&&1<_e.char.length)return _e.char;if(_e.which)return String.fromCharCode(_e.which)}return null;case"compositionend":return de$2&&_e.locale!=="ko"?null:_e.data;default:return null}}var le$2={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me$1(j){var _e=j&&j.nodeName&&j.nodeName.toLowerCase();return _e==="input"?!!le$2[j.type]:_e==="textarea"}function ne$1(j,_e,et,tt){Eb$1(tt),_e=oe$1(_e,"onChange"),0<_e.length&&(et=new td$1("onChange","change",null,et,tt),j.push({event:et,listeners:_e}))}var pe$1=null,qe$1=null;function re$3(j){se$2(j,0)}function te$2(j){var _e=ue$1(j);if(Wa$1(_e))return j}function ve$1(j,_e){if(j==="change")return _e}var we=!1;if(ia){var xe;if(ia){var ye="oninput"in document;if(!ye){var ze=document.createElement("div");ze.setAttribute("oninput","return;"),ye=typeof ze.oninput=="function"}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9=_e)return{node:et,offset:_e-j};j=tt}e:{for(;et;){if(et.nextSibling){et=et.nextSibling;break e}et=et.parentNode}et=void 0}et=Je$1(et)}}function Le$1(j,_e){return j&&_e?j===_e?!0:j&&j.nodeType===3?!1:_e&&_e.nodeType===3?Le$1(j,_e.parentNode):"contains"in j?j.contains(_e):j.compareDocumentPosition?!!(j.compareDocumentPosition(_e)&16):!1:!1}function Me$2(){for(var j=window,_e=Xa$1();_e instanceof j.HTMLIFrameElement;){try{var et=typeof _e.contentWindow.location.href=="string"}catch{et=!1}if(et)j=_e.contentWindow;else break;_e=Xa$1(j.document)}return _e}function Ne$1(j){var _e=j&&j.nodeName&&j.nodeName.toLowerCase();return _e&&(_e==="input"&&(j.type==="text"||j.type==="search"||j.type==="tel"||j.type==="url"||j.type==="password")||_e==="textarea"||j.contentEditable==="true")}function Oe$2(j){var _e=Me$2(),et=j.focusedElem,tt=j.selectionRange;if(_e!==et&&et&&et.ownerDocument&&Le$1(et.ownerDocument.documentElement,et)){if(tt!==null&&Ne$1(et)){if(_e=tt.start,j=tt.end,j===void 0&&(j=_e),"selectionStart"in et)et.selectionStart=_e,et.selectionEnd=Math.min(j,et.value.length);else if(j=(_e=et.ownerDocument||document)&&_e.defaultView||window,j.getSelection){j=j.getSelection();var rt=et.textContent.length,nt=Math.min(tt.start,rt);tt=tt.end===void 0?nt:Math.min(tt.end,rt),!j.extend&&nt>tt&&(rt=tt,tt=nt,nt=rt),rt=Ke$1(et,nt);var ot=Ke$1(et,tt);rt&&ot&&(j.rangeCount!==1||j.anchorNode!==rt.node||j.anchorOffset!==rt.offset||j.focusNode!==ot.node||j.focusOffset!==ot.offset)&&(_e=_e.createRange(),_e.setStart(rt.node,rt.offset),j.removeAllRanges(),nt>tt?(j.addRange(_e),j.extend(ot.node,ot.offset)):(_e.setEnd(ot.node,ot.offset),j.addRange(_e)))}}for(_e=[],j=et;j=j.parentNode;)j.nodeType===1&&_e.push({element:j,left:j.scrollLeft,top:j.scrollTop});for(typeof et.focus=="function"&&et.focus(),et=0;et<_e.length;et++)j=_e[et],j.element.scrollLeft=j.left,j.element.scrollTop=j.top}}var Pe$1=ia&&"documentMode"in document&&11>=document.documentMode,Qe$1=null,Re$1=null,Se$1=null,Te$1=!1;function Ue$1(j,_e,et){var tt=et.window===et?et.document:et.nodeType===9?et:et.ownerDocument;Te$1||Qe$1==null||Qe$1!==Xa$1(tt)||(tt=Qe$1,"selectionStart"in tt&&Ne$1(tt)?tt={start:tt.selectionStart,end:tt.selectionEnd}:(tt=(tt.ownerDocument&&tt.ownerDocument.defaultView||window).getSelection(),tt={anchorNode:tt.anchorNode,anchorOffset:tt.anchorOffset,focusNode:tt.focusNode,focusOffset:tt.focusOffset}),Se$1&&Ie$1(Se$1,tt)||(Se$1=tt,tt=oe$1(Re$1,"onSelect"),0Tf||(j.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G$4(j,_e){Tf++,Sf[Tf]=j.current,j.current=_e}var Vf={},H$4=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(j,_e){var et=j.type.contextTypes;if(!et)return Vf;var tt=j.stateNode;if(tt&&tt.__reactInternalMemoizedUnmaskedChildContext===_e)return tt.__reactInternalMemoizedMaskedChildContext;var rt={},nt;for(nt in et)rt[nt]=_e[nt];return tt&&(j=j.stateNode,j.__reactInternalMemoizedUnmaskedChildContext=_e,j.__reactInternalMemoizedMaskedChildContext=rt),rt}function Zf(j){return j=j.childContextTypes,j!=null}function $f(){E$4(Wf),E$4(H$4)}function ag(j,_e,et){if(H$4.current!==Vf)throw Error(p$a(168));G$4(H$4,_e),G$4(Wf,et)}function bg(j,_e,et){var tt=j.stateNode;if(_e=_e.childContextTypes,typeof tt.getChildContext!="function")return et;tt=tt.getChildContext();for(var rt in tt)if(!(rt in _e))throw Error(p$a(108,Ra$1(j)||"Unknown",rt));return A$4({},et,tt)}function cg(j){return j=(j=j.stateNode)&&j.__reactInternalMemoizedMergedChildContext||Vf,Xf=H$4.current,G$4(H$4,j),G$4(Wf,Wf.current),!0}function dg(j,_e,et){var tt=j.stateNode;if(!tt)throw Error(p$a(169));et?(j=bg(j,_e,Xf),tt.__reactInternalMemoizedMergedChildContext=j,E$4(Wf),E$4(H$4),G$4(H$4,j)):E$4(Wf),G$4(Wf,et)}var eg=null,fg=!1,gg=!1;function hg(j){eg===null?eg=[j]:eg.push(j)}function ig(j){fg=!0,hg(j)}function jg(){if(!gg&&eg!==null){gg=!0;var j=0,_e=C$6;try{var et=eg;for(C$6=1;j>=ot,rt-=ot,rg=1<<32-oc$1(_e)+rt|et<At?(wt=$t,$t=null):wt=$t.sibling;var Ct=dt(bt,$t,xt[At],yt);if(Ct===null){$t===null&&($t=wt);break}j&&$t&&Ct.alternate===null&&_e(bt,$t),_t=nt(Ct,_t,At),St===null?Et=Ct:St.sibling=Ct,St=Ct,$t=wt}if(At===xt.length)return et(bt,$t),I$2&&tg(bt,At),Et;if($t===null){for(;AtAt?(wt=$t,$t=null):wt=$t.sibling;var It=dt(bt,$t,Ct.value,yt);if(It===null){$t===null&&($t=wt);break}j&&$t&&It.alternate===null&&_e(bt,$t),_t=nt(It,_t,At),St===null?Et=It:St.sibling=It,St=It,$t=wt}if(Ct.done)return et(bt,$t),I$2&&tg(bt,At),Et;if($t===null){for(;!Ct.done;At++,Ct=xt.next())Ct=ct(bt,Ct.value,yt),Ct!==null&&(_t=nt(Ct,_t,At),St===null?Et=Ct:St.sibling=Ct,St=Ct);return I$2&&tg(bt,At),Et}for($t=tt(bt,$t);!Ct.done;At++,Ct=xt.next())Ct=ft($t,bt,At,Ct.value,yt),Ct!==null&&(j&&Ct.alternate!==null&&$t.delete(Ct.key===null?At:Ct.key),_t=nt(Ct,_t,At),St===null?Et=Ct:St.sibling=Ct,St=Ct);return j&&$t.forEach(function(Ot){return _e(bt,Ot)}),I$2&&tg(bt,At),Et}function vt(bt,_t,xt,yt){if(typeof xt=="object"&&xt!==null&&xt.type===ya$1&&xt.key===null&&(xt=xt.props.children),typeof xt=="object"&&xt!==null){switch(xt.$$typeof){case va$1:e:{for(var Et=xt.key,St=_t;St!==null;){if(St.key===Et){if(Et=xt.type,Et===ya$1){if(St.tag===7){et(bt,St.sibling),_t=rt(St,xt.props.children),_t.return=bt,bt=_t;break e}}else if(St.elementType===Et||typeof Et=="object"&&Et!==null&&Et.$$typeof===Ha$1&&uh(Et)===St.type){et(bt,St.sibling),_t=rt(St,xt.props),_t.ref=sh(bt,St,xt),_t.return=bt,bt=_t;break e}et(bt,St);break}else _e(bt,St);St=St.sibling}xt.type===ya$1?(_t=Ah(xt.props.children,bt.mode,yt,xt.key),_t.return=bt,bt=_t):(yt=yh(xt.type,xt.key,xt.props,null,bt.mode,yt),yt.ref=sh(bt,_t,xt),yt.return=bt,bt=yt)}return ot(bt);case wa$1:e:{for(St=xt.key;_t!==null;){if(_t.key===St)if(_t.tag===4&&_t.stateNode.containerInfo===xt.containerInfo&&_t.stateNode.implementation===xt.implementation){et(bt,_t.sibling),_t=rt(_t,xt.children||[]),_t.return=bt,bt=_t;break e}else{et(bt,_t);break}else _e(bt,_t);_t=_t.sibling}_t=zh(xt,bt.mode,yt),_t.return=bt,bt=_t}return ot(bt);case Ha$1:return St=xt._init,vt(bt,_t,St(xt._payload),yt)}if(eb$1(xt))return pt(bt,_t,xt,yt);if(Ka$1(xt))return gt(bt,_t,xt,yt);th(bt,xt)}return typeof xt=="string"&&xt!==""||typeof xt=="number"?(xt=""+xt,_t!==null&&_t.tag===6?(et(bt,_t.sibling),_t=rt(_t,xt),_t.return=bt,bt=_t):(et(bt,_t),_t=xh(xt,bt.mode,yt),_t.return=bt,bt=_t),ot(bt)):et(bt,_t)}return vt}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(j){if(j===Dh)throw Error(p$a(174));return j}function Ih(j,_e){switch(G$4(Gh,_e),G$4(Fh,j),G$4(Eh,Dh),j=_e.nodeType,j){case 9:case 11:_e=(_e=_e.documentElement)?_e.namespaceURI:lb$1(null,"");break;default:j=j===8?_e.parentNode:_e,_e=j.namespaceURI||null,j=j.tagName,_e=lb$1(_e,j)}E$4(Eh),G$4(Eh,_e)}function Jh(){E$4(Eh),E$4(Fh),E$4(Gh)}function Kh(j){Hh(Gh.current);var _e=Hh(Eh.current),et=lb$1(_e,j.type);_e!==et&&(G$4(Fh,j),G$4(Eh,et))}function Lh(j){Fh.current===j&&(E$4(Eh),E$4(Fh))}var M$1=Uf(0);function Mh(j){for(var _e=j;_e!==null;){if(_e.tag===13){var et=_e.memoizedState;if(et!==null&&(et=et.dehydrated,et===null||et.data==="$?"||et.data==="$!"))return _e}else if(_e.tag===19&&_e.memoizedProps.revealOrder!==void 0){if(_e.flags&128)return _e}else if(_e.child!==null){_e.child.return=_e,_e=_e.child;continue}if(_e===j)break;for(;_e.sibling===null;){if(_e.return===null||_e.return===j)return null;_e=_e.return}_e.sibling.return=_e.return,_e=_e.sibling}return null}var Nh=[];function Oh(){for(var j=0;jet?et:4,j(!0);var tt=Qh.transition;Qh.transition={};try{j(!1),_e()}finally{C$6=et,Qh.transition=tt}}function Fi(){return di().memoizedState}function Gi(j,_e,et){var tt=lh(j);if(et={lane:tt,action:et,hasEagerState:!1,eagerState:null,next:null},Hi(j))Ii(_e,et);else if(et=Yg(j,_e,et,tt),et!==null){var rt=L$1();mh(et,j,tt,rt),Ji(et,_e,tt)}}function ri(j,_e,et){var tt=lh(j),rt={lane:tt,action:et,hasEagerState:!1,eagerState:null,next:null};if(Hi(j))Ii(_e,rt);else{var nt=j.alternate;if(j.lanes===0&&(nt===null||nt.lanes===0)&&(nt=_e.lastRenderedReducer,nt!==null))try{var ot=_e.lastRenderedState,it=nt(ot,et);if(rt.hasEagerState=!0,rt.eagerState=it,He$2(it,ot)){var st=_e.interleaved;st===null?(rt.next=rt,Xg(_e)):(rt.next=st.next,st.next=rt),_e.interleaved=rt;return}}catch{}finally{}et=Yg(j,_e,rt,tt),et!==null&&(rt=L$1(),mh(et,j,tt,rt),Ji(et,_e,tt))}}function Hi(j){var _e=j.alternate;return j===N$1||_e!==null&&_e===N$1}function Ii(j,_e){Th$1=Sh=!0;var et=j.pending;et===null?_e.next=_e:(_e.next=et.next,et.next=_e),j.pending=_e}function Ji(j,_e,et){if(et&4194240){var tt=_e.lanes;tt&=j.pendingLanes,et|=tt,_e.lanes=et,Cc$1(j,et)}}var ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(j,_e){return ci().memoizedState=[j,_e===void 0?null:_e],j},useContext:Vg,useEffect:vi,useImperativeHandle:function(j,_e,et){return et=et!=null?et.concat([j]):null,ti(4194308,4,yi.bind(null,_e,j),et)},useLayoutEffect:function(j,_e){return ti(4194308,4,j,_e)},useInsertionEffect:function(j,_e){return ti(4,2,j,_e)},useMemo:function(j,_e){var et=ci();return _e=_e===void 0?null:_e,j=j(),et.memoizedState=[j,_e],j},useReducer:function(j,_e,et){var tt=ci();return _e=et!==void 0?et(_e):_e,tt.memoizedState=tt.baseState=_e,j={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:j,lastRenderedState:_e},tt.queue=j,j=j.dispatch=Gi.bind(null,N$1,j),[tt.memoizedState,j]},useRef:function(j){var _e=ci();return j={current:j},_e.memoizedState=j},useState:qi,useDebugValue:Ai,useDeferredValue:function(j){return ci().memoizedState=j},useTransition:function(){var j=qi(!1),_e=j[0];return j=Ei.bind(null,j[1]),ci().memoizedState=j,[_e,j]},useMutableSource:function(){},useSyncExternalStore:function(j,_e,et){var tt=N$1,rt=ci();if(I$2){if(et===void 0)throw Error(p$a(407));et=et()}else{if(et=_e(),R$1===null)throw Error(p$a(349));Rh&30||ni(tt,_e,et)}rt.memoizedState=et;var nt={value:et,getSnapshot:_e};return rt.queue=nt,vi(ki.bind(null,tt,nt,j),[j]),tt.flags|=2048,li(9,mi.bind(null,tt,nt,et,_e),void 0,null),et},useId:function(){var j=ci(),_e=R$1.identifierPrefix;if(I$2){var et=sg,tt=rg;et=(tt&~(1<<32-oc$1(tt)-1)).toString(32)+et,_e=":"+_e+"R"+et,et=Uh++,0<\/script>",j=j.removeChild(j.firstChild)):typeof tt.is=="string"?j=ot.createElement(et,{is:tt.is}):(j=ot.createElement(et),et==="select"&&(ot=j,tt.multiple?ot.multiple=!0:tt.size&&(ot.size=tt.size))):j=ot.createElementNS(j,et),j[Of]=_e,j[Pf]=tt,Aj(j,_e,!1,!1),_e.stateNode=j;e:{switch(ot=vb$1(et,tt),et){case"dialog":D$4("cancel",j),D$4("close",j),rt=tt;break;case"iframe":case"object":case"embed":D$4("load",j),rt=tt;break;case"video":case"audio":for(rt=0;rtHj&&(_e.flags|=128,tt=!0,Ej(nt,!1),_e.lanes=4194304)}else{if(!tt)if(j=Mh(ot),j!==null){if(_e.flags|=128,tt=!0,et=j.updateQueue,et!==null&&(_e.updateQueue=et,_e.flags|=4),Ej(nt,!0),nt.tail===null&&nt.tailMode==="hidden"&&!ot.alternate&&!I$2)return S$1(_e),null}else 2*B$6()-nt.renderingStartTime>Hj&&et!==1073741824&&(_e.flags|=128,tt=!0,Ej(nt,!1),_e.lanes=4194304);nt.isBackwards?(ot.sibling=_e.child,_e.child=ot):(et=nt.last,et!==null?et.sibling=ot:_e.child=ot,nt.last=ot)}return nt.tail!==null?(_e=nt.tail,nt.rendering=_e,nt.tail=_e.sibling,nt.renderingStartTime=B$6(),_e.sibling=null,et=M$1.current,G$4(M$1,tt?et&1|2:et&1),_e):(S$1(_e),null);case 22:case 23:return Ij(),tt=_e.memoizedState!==null,j!==null&&j.memoizedState!==null!==tt&&(_e.flags|=8192),tt&&_e.mode&1?gj&1073741824&&(S$1(_e),_e.subtreeFlags&6&&(_e.flags|=8192)):S$1(_e),null;case 24:return null;case 25:return null}throw Error(p$a(156,_e.tag))}function Jj(j,_e){switch(wg(_e),_e.tag){case 1:return Zf(_e.type)&&$f(),j=_e.flags,j&65536?(_e.flags=j&-65537|128,_e):null;case 3:return Jh(),E$4(Wf),E$4(H$4),Oh(),j=_e.flags,j&65536&&!(j&128)?(_e.flags=j&-65537|128,_e):null;case 5:return Lh(_e),null;case 13:if(E$4(M$1),j=_e.memoizedState,j!==null&&j.dehydrated!==null){if(_e.alternate===null)throw Error(p$a(340));Ig()}return j=_e.flags,j&65536?(_e.flags=j&-65537|128,_e):null;case 19:return E$4(M$1),null;case 4:return Jh(),null;case 10:return Rg(_e.type._context),null;case 22:case 23:return Ij(),null;case 24:return null;default:return null}}var Kj=!1,U$1=!1,Lj=typeof WeakSet=="function"?WeakSet:Set,V=null;function Mj(j,_e){var et=j.ref;if(et!==null)if(typeof et=="function")try{et(null)}catch(tt){W(j,_e,tt)}else et.current=null}function Nj(j,_e,et){try{et()}catch(tt){W(j,_e,tt)}}var Oj=!1;function Pj(j,_e){if(Cf=dd$1,j=Me$2(),Ne$1(j)){if("selectionStart"in j)var et={start:j.selectionStart,end:j.selectionEnd};else e:{et=(et=j.ownerDocument)&&et.defaultView||window;var tt=et.getSelection&&et.getSelection();if(tt&&tt.rangeCount!==0){et=tt.anchorNode;var rt=tt.anchorOffset,nt=tt.focusNode;tt=tt.focusOffset;try{et.nodeType,nt.nodeType}catch{et=null;break e}var ot=0,it=-1,st=-1,lt=0,ut=0,ct=j,dt=null;t:for(;;){for(var ft;ct!==et||rt!==0&&ct.nodeType!==3||(it=ot+rt),ct!==nt||tt!==0&&ct.nodeType!==3||(st=ot+tt),ct.nodeType===3&&(ot+=ct.nodeValue.length),(ft=ct.firstChild)!==null;)dt=ct,ct=ft;for(;;){if(ct===j)break t;if(dt===et&&++lt===rt&&(it=ot),dt===nt&&++ut===tt&&(st=ot),(ft=ct.nextSibling)!==null)break;ct=dt,dt=ct.parentNode}ct=ft}et=it===-1||st===-1?null:{start:it,end:st}}else et=null}et=et||{start:0,end:0}}else et=null;for(Df$1={focusedElem:j,selectionRange:et},dd$1=!1,V=_e;V!==null;)if(_e=V,j=_e.child,(_e.subtreeFlags&1028)!==0&&j!==null)j.return=_e,V=j;else for(;V!==null;){_e=V;try{var pt=_e.alternate;if(_e.flags&1024)switch(_e.tag){case 0:case 11:case 15:break;case 1:if(pt!==null){var gt=pt.memoizedProps,vt=pt.memoizedState,bt=_e.stateNode,_t=bt.getSnapshotBeforeUpdate(_e.elementType===_e.type?gt:Lg(_e.type,gt),vt);bt.__reactInternalSnapshotBeforeUpdate=_t}break;case 3:var xt=_e.stateNode.containerInfo;xt.nodeType===1?xt.textContent="":xt.nodeType===9&&xt.documentElement&&xt.removeChild(xt.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p$a(163))}}catch(yt){W(_e,_e.return,yt)}if(j=_e.sibling,j!==null){j.return=_e.return,V=j;break}V=_e.return}return pt=Oj,Oj=!1,pt}function Qj(j,_e,et){var tt=_e.updateQueue;if(tt=tt!==null?tt.lastEffect:null,tt!==null){var rt=tt=tt.next;do{if((rt.tag&j)===j){var nt=rt.destroy;rt.destroy=void 0,nt!==void 0&&Nj(_e,et,nt)}rt=rt.next}while(rt!==tt)}}function Rj(j,_e){if(_e=_e.updateQueue,_e=_e!==null?_e.lastEffect:null,_e!==null){var et=_e=_e.next;do{if((et.tag&j)===j){var tt=et.create;et.destroy=tt()}et=et.next}while(et!==_e)}}function Sj(j){var _e=j.ref;if(_e!==null){var et=j.stateNode;switch(j.tag){case 5:j=et;break;default:j=et}typeof _e=="function"?_e(j):_e.current=j}}function Tj(j){var _e=j.alternate;_e!==null&&(j.alternate=null,Tj(_e)),j.child=null,j.deletions=null,j.sibling=null,j.tag===5&&(_e=j.stateNode,_e!==null&&(delete _e[Of],delete _e[Pf],delete _e[of$2],delete _e[Qf],delete _e[Rf])),j.stateNode=null,j.return=null,j.dependencies=null,j.memoizedProps=null,j.memoizedState=null,j.pendingProps=null,j.stateNode=null,j.updateQueue=null}function Uj(j){return j.tag===5||j.tag===3||j.tag===4}function Vj(j){e:for(;;){for(;j.sibling===null;){if(j.return===null||Uj(j.return))return null;j=j.return}for(j.sibling.return=j.return,j=j.sibling;j.tag!==5&&j.tag!==6&&j.tag!==18;){if(j.flags&2||j.child===null||j.tag===4)continue e;j.child.return=j,j=j.child}if(!(j.flags&2))return j.stateNode}}function Wj(j,_e,et){var tt=j.tag;if(tt===5||tt===6)j=j.stateNode,_e?et.nodeType===8?et.parentNode.insertBefore(j,_e):et.insertBefore(j,_e):(et.nodeType===8?(_e=et.parentNode,_e.insertBefore(j,et)):(_e=et,_e.appendChild(j)),et=et._reactRootContainer,et!=null||_e.onclick!==null||(_e.onclick=Bf));else if(tt!==4&&(j=j.child,j!==null))for(Wj(j,_e,et),j=j.sibling;j!==null;)Wj(j,_e,et),j=j.sibling}function Xj(j,_e,et){var tt=j.tag;if(tt===5||tt===6)j=j.stateNode,_e?et.insertBefore(j,_e):et.appendChild(j);else if(tt!==4&&(j=j.child,j!==null))for(Xj(j,_e,et),j=j.sibling;j!==null;)Xj(j,_e,et),j=j.sibling}var X=null,Yj=!1;function Zj(j,_e,et){for(et=et.child;et!==null;)ak(j,_e,et),et=et.sibling}function ak(j,_e,et){if(lc$1&&typeof lc$1.onCommitFiberUnmount=="function")try{lc$1.onCommitFiberUnmount(kc$1,et)}catch{}switch(et.tag){case 5:U$1||Mj(et,_e);case 6:var tt=X,rt=Yj;X=null,Zj(j,_e,et),X=tt,Yj=rt,X!==null&&(Yj?(j=X,et=et.stateNode,j.nodeType===8?j.parentNode.removeChild(et):j.removeChild(et)):X.removeChild(et.stateNode));break;case 18:X!==null&&(Yj?(j=X,et=et.stateNode,j.nodeType===8?Kf(j.parentNode,et):j.nodeType===1&&Kf(j,et),bd$1(j)):Kf(X,et.stateNode));break;case 4:tt=X,rt=Yj,X=et.stateNode.containerInfo,Yj=!0,Zj(j,_e,et),X=tt,Yj=rt;break;case 0:case 11:case 14:case 15:if(!U$1&&(tt=et.updateQueue,tt!==null&&(tt=tt.lastEffect,tt!==null))){rt=tt=tt.next;do{var nt=rt,ot=nt.destroy;nt=nt.tag,ot!==void 0&&(nt&2||nt&4)&&Nj(et,_e,ot),rt=rt.next}while(rt!==tt)}Zj(j,_e,et);break;case 1:if(!U$1&&(Mj(et,_e),tt=et.stateNode,typeof tt.componentWillUnmount=="function"))try{tt.props=et.memoizedProps,tt.state=et.memoizedState,tt.componentWillUnmount()}catch(it){W(et,_e,it)}Zj(j,_e,et);break;case 21:Zj(j,_e,et);break;case 22:et.mode&1?(U$1=(tt=U$1)||et.memoizedState!==null,Zj(j,_e,et),U$1=tt):Zj(j,_e,et);break;default:Zj(j,_e,et)}}function bk$1(j){var _e=j.updateQueue;if(_e!==null){j.updateQueue=null;var et=j.stateNode;et===null&&(et=j.stateNode=new Lj),_e.forEach(function(tt){var rt=ck.bind(null,j,tt);et.has(tt)||(et.add(tt),tt.then(rt,rt))})}}function dk(j,_e){var et=_e.deletions;if(et!==null)for(var tt=0;ttrt&&(rt=ot),tt&=~nt}if(tt=rt,tt=B$6()-tt,tt=(120>tt?120:480>tt?480:1080>tt?1080:1920>tt?1920:3e3>tt?3e3:4320>tt?4320:1960*mk(tt/1960))-tt,10j?16:j,xk===null)var tt=!1;else{if(j=xk,xk=null,yk=0,K$1&6)throw Error(p$a(331));var rt=K$1;for(K$1|=4,V=j.current;V!==null;){var nt=V,ot=nt.child;if(V.flags&16){var it=nt.deletions;if(it!==null){for(var st=0;stB$6()-gk?Lk(j,0):sk|=et),Ek(j,_e)}function Zk(j,_e){_e===0&&(j.mode&1?(_e=sc$1,sc$1<<=1,!(sc$1&130023424)&&(sc$1=4194304)):_e=1);var et=L$1();j=Zg(j,_e),j!==null&&(Ac$1(j,_e,et),Ek(j,et))}function vj(j){var _e=j.memoizedState,et=0;_e!==null&&(et=_e.retryLane),Zk(j,et)}function ck(j,_e){var et=0;switch(j.tag){case 13:var tt=j.stateNode,rt=j.memoizedState;rt!==null&&(et=rt.retryLane);break;case 19:tt=j.stateNode;break;default:throw Error(p$a(314))}tt!==null&&tt.delete(_e),Zk(j,et)}var Wk;Wk=function(j,_e,et){if(j!==null)if(j.memoizedProps!==_e.pendingProps||Wf.current)Ug=!0;else{if(!(j.lanes&et)&&!(_e.flags&128))return Ug=!1,zj(j,_e,et);Ug=!!(j.flags&131072)}else Ug=!1,I$2&&_e.flags&1048576&&ug(_e,ng,_e.index);switch(_e.lanes=0,_e.tag){case 2:var tt=_e.type;jj(j,_e),j=_e.pendingProps;var rt=Yf(_e,H$4.current);Tg(_e,et),rt=Xh(null,_e,tt,j,rt,et);var nt=bi();return _e.flags|=1,typeof rt=="object"&&rt!==null&&typeof rt.render=="function"&&rt.$$typeof===void 0?(_e.tag=1,_e.memoizedState=null,_e.updateQueue=null,Zf(tt)?(nt=!0,cg(_e)):nt=!1,_e.memoizedState=rt.state!==null&&rt.state!==void 0?rt.state:null,ah(_e),rt.updater=nh,_e.stateNode=rt,rt._reactInternals=_e,rh(_e,tt,j,et),_e=kj(null,_e,tt,!0,nt,et)):(_e.tag=0,I$2&&nt&&vg(_e),Yi(null,_e,rt,et),_e=_e.child),_e;case 16:tt=_e.elementType;e:{switch(jj(j,_e),j=_e.pendingProps,rt=tt._init,tt=rt(tt._payload),_e.type=tt,rt=_e.tag=$k(tt),j=Lg(tt,j),rt){case 0:_e=dj(null,_e,tt,j,et);break e;case 1:_e=ij(null,_e,tt,j,et);break e;case 11:_e=Zi(null,_e,tt,j,et);break e;case 14:_e=aj(null,_e,tt,Lg(tt.type,j),et);break e}throw Error(p$a(306,tt,""))}return _e;case 0:return tt=_e.type,rt=_e.pendingProps,rt=_e.elementType===tt?rt:Lg(tt,rt),dj(j,_e,tt,rt,et);case 1:return tt=_e.type,rt=_e.pendingProps,rt=_e.elementType===tt?rt:Lg(tt,rt),ij(j,_e,tt,rt,et);case 3:e:{if(lj(_e),j===null)throw Error(p$a(387));tt=_e.pendingProps,nt=_e.memoizedState,rt=nt.element,bh(j,_e),gh(_e,tt,null,et);var ot=_e.memoizedState;if(tt=ot.element,nt.isDehydrated)if(nt={element:tt,isDehydrated:!1,cache:ot.cache,pendingSuspenseBoundaries:ot.pendingSuspenseBoundaries,transitions:ot.transitions},_e.updateQueue.baseState=nt,_e.memoizedState=nt,_e.flags&256){rt=Ki(Error(p$a(423)),_e),_e=mj(j,_e,tt,et,rt);break e}else if(tt!==rt){rt=Ki(Error(p$a(424)),_e),_e=mj(j,_e,tt,et,rt);break e}else for(yg=Lf(_e.stateNode.containerInfo.firstChild),xg=_e,I$2=!0,zg=null,et=Ch(_e,null,tt,et),_e.child=et;et;)et.flags=et.flags&-3|4096,et=et.sibling;else{if(Ig(),tt===rt){_e=$i(j,_e,et);break e}Yi(j,_e,tt,et)}_e=_e.child}return _e;case 5:return Kh(_e),j===null&&Eg(_e),tt=_e.type,rt=_e.pendingProps,nt=j!==null?j.memoizedProps:null,ot=rt.children,Ef$1(tt,rt)?ot=null:nt!==null&&Ef$1(tt,nt)&&(_e.flags|=32),hj(j,_e),Yi(j,_e,ot,et),_e.child;case 6:return j===null&&Eg(_e),null;case 13:return pj(j,_e,et);case 4:return Ih(_e,_e.stateNode.containerInfo),tt=_e.pendingProps,j===null?_e.child=Bh(_e,null,tt,et):Yi(j,_e,tt,et),_e.child;case 11:return tt=_e.type,rt=_e.pendingProps,rt=_e.elementType===tt?rt:Lg(tt,rt),Zi(j,_e,tt,rt,et);case 7:return Yi(j,_e,_e.pendingProps,et),_e.child;case 8:return Yi(j,_e,_e.pendingProps.children,et),_e.child;case 12:return Yi(j,_e,_e.pendingProps.children,et),_e.child;case 10:e:{if(tt=_e.type._context,rt=_e.pendingProps,nt=_e.memoizedProps,ot=rt.value,G$4(Mg,tt._currentValue),tt._currentValue=ot,nt!==null)if(He$2(nt.value,ot)){if(nt.children===rt.children&&!Wf.current){_e=$i(j,_e,et);break e}}else for(nt=_e.child,nt!==null&&(nt.return=_e);nt!==null;){var it=nt.dependencies;if(it!==null){ot=nt.child;for(var st=it.firstContext;st!==null;){if(st.context===tt){if(nt.tag===1){st=ch(-1,et&-et),st.tag=2;var lt=nt.updateQueue;if(lt!==null){lt=lt.shared;var ut=lt.pending;ut===null?st.next=st:(st.next=ut.next,ut.next=st),lt.pending=st}}nt.lanes|=et,st=nt.alternate,st!==null&&(st.lanes|=et),Sg(nt.return,et,_e),it.lanes|=et;break}st=st.next}}else if(nt.tag===10)ot=nt.type===_e.type?null:nt.child;else if(nt.tag===18){if(ot=nt.return,ot===null)throw Error(p$a(341));ot.lanes|=et,it=ot.alternate,it!==null&&(it.lanes|=et),Sg(ot,et,_e),ot=nt.sibling}else ot=nt.child;if(ot!==null)ot.return=nt;else for(ot=nt;ot!==null;){if(ot===_e){ot=null;break}if(nt=ot.sibling,nt!==null){nt.return=ot.return,ot=nt;break}ot=ot.return}nt=ot}Yi(j,_e,rt.children,et),_e=_e.child}return _e;case 9:return rt=_e.type,tt=_e.pendingProps.children,Tg(_e,et),rt=Vg(rt),tt=tt(rt),_e.flags|=1,Yi(j,_e,tt,et),_e.child;case 14:return tt=_e.type,rt=Lg(tt,_e.pendingProps),rt=Lg(tt.type,rt),aj(j,_e,tt,rt,et);case 15:return cj(j,_e,_e.type,_e.pendingProps,et);case 17:return tt=_e.type,rt=_e.pendingProps,rt=_e.elementType===tt?rt:Lg(tt,rt),jj(j,_e),_e.tag=1,Zf(tt)?(j=!0,cg(_e)):j=!1,Tg(_e,et),ph(_e,tt,rt),rh(_e,tt,rt,et),kj(null,_e,tt,!0,j,et);case 19:return yj(j,_e,et);case 22:return ej(j,_e,et)}throw Error(p$a(156,_e.tag))};function Gk(j,_e){return ac$1(j,_e)}function al(j,_e,et,tt){this.tag=j,this.key=et,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=_e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=tt,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Bg(j,_e,et,tt){return new al(j,_e,et,tt)}function bj(j){return j=j.prototype,!(!j||!j.isReactComponent)}function $k(j){if(typeof j=="function")return bj(j)?1:0;if(j!=null){if(j=j.$$typeof,j===Da$1)return 11;if(j===Ga$1)return 14}return 2}function wh(j,_e){var et=j.alternate;return et===null?(et=Bg(j.tag,_e,j.key,j.mode),et.elementType=j.elementType,et.type=j.type,et.stateNode=j.stateNode,et.alternate=j,j.alternate=et):(et.pendingProps=_e,et.type=j.type,et.flags=0,et.subtreeFlags=0,et.deletions=null),et.flags=j.flags&14680064,et.childLanes=j.childLanes,et.lanes=j.lanes,et.child=j.child,et.memoizedProps=j.memoizedProps,et.memoizedState=j.memoizedState,et.updateQueue=j.updateQueue,_e=j.dependencies,et.dependencies=_e===null?null:{lanes:_e.lanes,firstContext:_e.firstContext},et.sibling=j.sibling,et.index=j.index,et.ref=j.ref,et}function yh(j,_e,et,tt,rt,nt){var ot=2;if(tt=j,typeof j=="function")bj(j)&&(ot=1);else if(typeof j=="string")ot=5;else e:switch(j){case ya$1:return Ah(et.children,rt,nt,_e);case za$1:ot=8,rt|=8;break;case Aa$1:return j=Bg(12,et,_e,rt|2),j.elementType=Aa$1,j.lanes=nt,j;case Ea:return j=Bg(13,et,_e,rt),j.elementType=Ea,j.lanes=nt,j;case Fa:return j=Bg(19,et,_e,rt),j.elementType=Fa,j.lanes=nt,j;case Ia$1:return qj(et,rt,nt,_e);default:if(typeof j=="object"&&j!==null)switch(j.$$typeof){case Ba$1:ot=10;break e;case Ca$1:ot=9;break e;case Da$1:ot=11;break e;case Ga$1:ot=14;break e;case Ha$1:ot=16,tt=null;break e}throw Error(p$a(130,j==null?j:typeof j,""))}return _e=Bg(ot,et,_e,rt),_e.elementType=j,_e.type=tt,_e.lanes=nt,_e}function Ah(j,_e,et,tt){return j=Bg(7,j,tt,_e),j.lanes=et,j}function qj(j,_e,et,tt){return j=Bg(22,j,tt,_e),j.elementType=Ia$1,j.lanes=et,j.stateNode={isHidden:!1},j}function xh(j,_e,et){return j=Bg(6,j,null,_e),j.lanes=et,j}function zh(j,_e,et){return _e=Bg(4,j.children!==null?j.children:[],j.key,_e),_e.lanes=et,_e.stateNode={containerInfo:j.containerInfo,pendingChildren:null,implementation:j.implementation},_e}function bl(j,_e,et,tt,rt){this.tag=_e,this.containerInfo=j,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zc$1(0),this.expirationTimes=zc$1(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zc$1(0),this.identifierPrefix=tt,this.onRecoverableError=rt,this.mutableSourceEagerHydrationData=null}function cl(j,_e,et,tt,rt,nt,ot,it,st){return j=new bl(j,_e,et,it,st),_e===1?(_e=1,nt===!0&&(_e|=8)):_e=0,nt=Bg(3,null,null,_e),j.current=nt,nt.stateNode=j,nt.memoizedState={element:tt,isDehydrated:et,cache:null,transitions:null,pendingSuspenseBoundaries:null},ah(nt),j}function dl(j,_e,et){var tt=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(j){console.error(j)}}checkDCE(),reactDom.exports=reactDom_production_min;var reactDomExports=reactDom.exports;const ReactDOM=getDefaultExportFromCjs(reactDomExports);var m$a=reactDomExports;client.createRoot=m$a.createRoot,client.hydrateRoot=m$a.hydrateRoot;const positionMap=["Top","Right","Bottom","Left"];function generateStyles(j,_e,...et){const[tt,rt=tt,nt=tt,ot=rt]=et,it=[tt,rt,nt,ot],st={};for(let lt=0;lttypeof j=="string"&&/(\d+(\w+|%))/.test(j),isUnitless=j=>typeof j=="number"&&!Number.isNaN(j),isInitial=j=>j==="initial",isAuto=j=>j==="auto",isNone=j=>j==="none",widthReservedKeys=["content","fit-content","max-content","min-content"],isWidth=j=>widthReservedKeys.some(_e=>j===_e)||isUnit(j);function flex(...j){const _e=j.length===1,et=j.length===2,tt=j.length===3;if(_e){const[rt]=j;if(isInitial(rt))return{flexGrow:0,flexShrink:1,flexBasis:"auto"};if(isAuto(rt))return{flexGrow:1,flexShrink:1,flexBasis:"auto"};if(isNone(rt))return{flexGrow:0,flexShrink:0,flexBasis:"auto"};if(isUnitless(rt))return{flexGrow:rt,flexShrink:1,flexBasis:0};if(isWidth(rt))return{flexGrow:1,flexShrink:1,flexBasis:rt}}if(et){const[rt,nt]=j;if(isUnitless(nt))return{flexGrow:rt,flexShrink:nt,flexBasis:0};if(isWidth(nt))return{flexGrow:rt,flexShrink:1,flexBasis:nt}}if(tt){const[rt,nt,ot]=j;if(isUnitless(rt)&&isUnitless(nt)&&(isAuto(ot)||isWidth(ot)))return{flexGrow:rt,flexShrink:nt,flexBasis:ot}}return{}}function gap(j,_e=j){return{columnGap:j,rowGap:_e}}const cssVarRegEx=/var\(.*\)/gi;function isValidGridAreaInput(j){return j===void 0||typeof j=="number"||typeof j=="string"&&!cssVarRegEx.test(j)}const customIdentRegEx=/^[a-zA-Z0-9\-_\\#;]+$/,nonCustomIdentRegEx=/^-moz-initial$|^auto$|^initial$|^inherit$|^revert$|^unset$|^span \d+$|^\d.*/;function isCustomIdent(j){return j!==void 0&&typeof j=="string"&&customIdentRegEx.test(j)&&!nonCustomIdentRegEx.test(j)}function gridArea(...j){if(j.some(nt=>!isValidGridAreaInput(nt)))return{};const _e=j[0]!==void 0?j[0]:"auto",et=j[1]!==void 0?j[1]:isCustomIdent(_e)?_e:"auto",tt=j[2]!==void 0?j[2]:isCustomIdent(_e)?_e:"auto",rt=j[3]!==void 0?j[3]:isCustomIdent(et)?et:"auto";return{gridRowStart:_e,gridColumnStart:et,gridRowEnd:tt,gridColumnEnd:rt}}function margin(...j){return generateStyles("margin","",...j)}function marginBlock(j,_e=j){return{marginBlockStart:j,marginBlockEnd:_e}}function marginInline(j,_e=j){return{marginInlineStart:j,marginInlineEnd:_e}}function padding(...j){return generateStyles("padding","",...j)}function paddingBlock(j,_e=j){return{paddingBlockStart:j,paddingBlockEnd:_e}}function paddingInline(j,_e=j){return{paddingInlineStart:j,paddingInlineEnd:_e}}function overflow(j,_e=j){return{overflowX:j,overflowY:_e}}function inset(...j){const[_e,et=_e,tt=_e,rt=et]=j;return{top:_e,right:et,bottom:tt,left:rt}}function outline(j,_e,et){return{outlineWidth:j,..._e&&{outlineStyle:_e},...et&&{outlineColor:et}}}function transition$1(...j){return isTransitionGlobalInputs(j)?{transitionDelay:j[0],transitionDuration:j[0],transitionProperty:j[0],transitionTimingFunction:j[0]}:normalizeTransitionInputs(j).reduce((et,[tt,rt="0s",nt="0s",ot="ease"],it)=>(it===0?(et.transitionProperty=tt,et.transitionDuration=rt,et.transitionDelay=nt,et.transitionTimingFunction=ot):(et.transitionProperty+=`, ${tt}`,et.transitionDuration+=`, ${rt}`,et.transitionDelay+=`, ${nt}`,et.transitionTimingFunction+=`, ${ot}`),et),{})}const transitionGlobalInputs=["-moz-initial","inherit","initial","revert","unset"];function isTransitionGlobalInputs(j){return j.length===1&&transitionGlobalInputs.includes(j[0])}function normalizeTransitionInputs(j){return j.length===1&&Array.isArray(j[0])?j[0]:[j]}function textDecoration(j,..._e){if(_e.length===0)return isTextDecorationStyleInput(j)?{textDecorationStyle:j}:{textDecorationLine:j};const[et,tt,rt]=_e;return{textDecorationLine:j,...et&&{textDecorationStyle:et},...tt&&{textDecorationColor:tt},...rt&&{textDecorationThickness:rt}}}const textDecorationStyleInputs=["dashed","dotted","double","solid","wavy"];function isTextDecorationStyleInput(j){return textDecorationStyleInputs.includes(j)}const __GLOBAL__=typeof window>"u"?global:window,__NAMESPACE_PREFIX__="@griffel/";function getGlobalVar(j,_e){return __GLOBAL__[Symbol.for(__NAMESPACE_PREFIX__+j)]||(__GLOBAL__[Symbol.for(__NAMESPACE_PREFIX__+j)]=_e),__GLOBAL__[Symbol.for(__NAMESPACE_PREFIX__+j)]}const DEFINITION_LOOKUP_TABLE=getGlobalVar("DEFINITION_LOOKUP_TABLE",{}),DATA_BUCKET_ATTR="data-make-styles-bucket",HASH_PREFIX="f",SEQUENCE_HASH_LENGTH=7,SEQUENCE_PREFIX="___",SEQUENCE_SIZE=SEQUENCE_PREFIX.length+SEQUENCE_HASH_LENGTH,LOOKUP_DEFINITIONS_INDEX=0,LOOKUP_DIR_INDEX=1,UNSUPPORTED_CSS_PROPERTIES={all:1,animation:1,background:1,backgroundPosition:1,border:1,borderBlock:1,borderBlockEnd:1,borderBlockStart:1,borderBottom:1,borderColor:1,borderImage:1,borderInline:1,borderInlineEnd:1,borderInlineStart:1,borderLeft:1,borderRadius:1,borderRight:1,borderStyle:1,borderTop:1,borderWidth:1,caret:1,columns:1,columnRule:1,containIntrinsicSize:1,container:1,flex:1,flexFlow:1,font:1,gap:1,grid:1,gridArea:1,gridColumn:1,gridRow:1,gridTemplate:1,inset:1,insetBlock:1,insetInline:1,lineClamp:1,listStyle:1,margin:1,marginBlock:1,marginInline:1,mask:1,maskBorder:1,motion:1,offset:1,outline:1,overflow:1,overscrollBehavior:1,padding:1,paddingBlock:1,paddingInline:1,placeItems:1,placeContent:1,placeSelf:1,scrollMargin:1,scrollMarginBlock:1,scrollMarginInline:1,scrollPadding:1,scrollPaddingBlock:1,scrollPaddingInline:1,scrollSnapMargin:1,scrollTimeline:1,textDecoration:1,textEmphasis:1,transition:1};function murmur2(j){for(var _e=0,et,tt=0,rt=j.length;rt>=4;++tt,rt-=4)et=j.charCodeAt(tt)&255|(j.charCodeAt(++tt)&255)<<8|(j.charCodeAt(++tt)&255)<<16|(j.charCodeAt(++tt)&255)<<24,et=(et&65535)*1540483477+((et>>>16)*59797<<16),et^=et>>>24,_e=(et&65535)*1540483477+((et>>>16)*59797<<16)^(_e&65535)*1540483477+((_e>>>16)*59797<<16);switch(rt){case 3:_e^=(j.charCodeAt(tt+2)&255)<<16;case 2:_e^=(j.charCodeAt(tt+1)&255)<<8;case 1:_e^=j.charCodeAt(tt)&255,_e=(_e&65535)*1540483477+((_e>>>16)*59797<<16)}return _e^=_e>>>13,_e=(_e&65535)*1540483477+((_e>>>16)*59797<<16),((_e^_e>>>15)>>>0).toString(36)}function padEndHash(j){const _e=j.length;if(_e===SEQUENCE_HASH_LENGTH)return j;for(let et=_e;et0&&(_e+=ut.slice(0,ct)),et+=dt,tt[lt]=dt}}}if(et==="")return _e.slice(0,-1);const rt=mergeClassesCachedResults[et];if(rt!==void 0)return _e+rt;const nt=[];for(let lt=0;lt{const _e=Object.keys(mergeClassesCachedResults).find(et=>mergeClassesCachedResults[et].startsWith(j));return _e?_e.split(SEQUENCE_PREFIX).filter(et=>et.length).map(et=>SEQUENCE_PREFIX+et):[]},addCSSRule:j=>{cssRules.add(j)},addSequenceDetails:(j,_e)=>{Object.entries(j).forEach(([et,tt])=>{sequenceDetails[tt.substring(0,SEQUENCE_SIZE)]={slotName:et,sourceURL:_e}})},getCSSRules:()=>Array.from(cssRules),getSequenceDetails:j=>sequenceDetails[j]};function getDirectionalClassName(j,_e){return Array.isArray(j)?_e==="rtl"?j[1]:j[0]:j}function getDebugClassNames(j,_e,et,tt){const rt=j[0],nt=j[1];return Object.entries(rt).map(([ot,it])=>{const st=getDirectionalClassName(it,nt);let lt;if(et&&_e){const ut=et.find(({className:ct})=>ct===st);!ut&&_e[0][ot]?lt=getDirectionalClassName(_e[0][ot],_e[1]):ut&&_e[0][ot]?lt=(tt?tt.filter(({debugClassNames:dt})=>dt.filter(({className:ft})=>ft===st).length>0).length>0:!1)?ut.className:ut.overriddenBy:(!ut&&!_e[0][ot]||ut&&!_e[0][ot])&&(lt=void 0)}return{className:st,overriddenBy:lt}})}function getDebugTree(j,_e){const et=DEFINITION_LOOKUP_TABLE[j];if(et===void 0)return;const tt=_e?DEFINITION_LOOKUP_TABLE[_e.sequenceHash]:void 0,rt=getDebugClassNames(et,tt,_e==null?void 0:_e.debugClassNames,_e==null?void 0:_e.children),nt={sequenceHash:j,direction:et[1],children:[],debugClassNames:rt};return debugData.getChildrenSequences(nt.sequenceHash).reverse().forEach(it=>{const st=getDebugTree(it,nt);st&&nt.children.push(st)}),nt.children.length||(nt.rules={},nt.debugClassNames.forEach(({className:it})=>{const st=debugData.getSequenceDetails(j);st&&(nt.slot=st.slotName,nt.sourceURL=st.sourceURL);const lt=debugData.getCSSRules().find(ut=>ut.includes(it));nt.rules[it]=lt})),nt}function injectDevTools(j){const _e=j.defaultView;if(!_e||_e.__GRIFFEL_DEVTOOLS__)return;const et={getInfo:tt=>{const rt=Array.from(tt.classList).find(nt=>nt.startsWith(SEQUENCE_PREFIX));if(rt!==void 0)return getDebugTree(rt)}};Object.defineProperty(_e,"__GRIFFEL_DEVTOOLS__",{configurable:!1,enumerable:!1,get(){return et}})}function normalizeCSSBucketEntry(j){return Array.isArray(j)?j:[j]}function createIsomorphicStyleSheet(j,_e,et){const tt=[];if(et[DATA_BUCKET_ATTR]=_e,j)for(const nt in et)j.setAttribute(nt,et[nt]);function rt(nt){return j!=null&&j.sheet?j.sheet.insertRule(nt,j.sheet.cssRules.length):tt.push(nt)}return{elementAttributes:et,insertRule:rt,element:j,bucketName:_e,cssRules(){return j!=null&&j.sheet?Array.from(j.sheet.cssRules).map(nt=>nt.cssText):tt}}}const styleBucketOrdering=["r","d","l","v","w","f","i","h","a","s","k","t","m","c"],styleBucketOrderingMap=styleBucketOrdering.reduce((j,_e,et)=>(j[_e]=et,j),{});function getStyleSheetForBucket(j,_e,et,tt,rt={}){const nt=j==="m",ot=nt?j+rt.m:j;if(!tt.stylesheets[ot]){const it=_e&&_e.createElement("style"),st=createIsomorphicStyleSheet(it,j,{...tt.styleElementAttributes,...nt&&{media:rt.m}});tt.stylesheets[ot]=st,_e&&it&&_e.head.insertBefore(it,findInsertionPoint(_e,et,j,tt,rt))}return tt.stylesheets[ot]}function findInsertionPoint(j,_e,et,tt,rt){const nt=styleBucketOrderingMap[et];let ot=ut=>nt-styleBucketOrderingMap[ut.getAttribute(DATA_BUCKET_ATTR)],it=j.head.querySelectorAll(`[${DATA_BUCKET_ATTR}]`);if(et==="m"&&rt){const ut=j.head.querySelectorAll(`[${DATA_BUCKET_ATTR}="${et}"]`);ut.length&&(it=ut,ot=ct=>tt.compareMediaQueries(rt.m,ct.media))}const st=it.length;let lt=st-1;for(;lt>=0;){const ut=it.item(lt);if(ot(ut)>0)return ut.nextSibling;lt--}return st>0?it.item(0):_e?_e.nextSibling:null}function safeInsertRule(j,_e){try{j.insertRule(_e)}catch{}}let lastIndex=0;const defaultCompareMediaQueries=(j,_e)=>j<_e?-1:j>_e?1:0;function createDOMRenderer(j=typeof document>"u"?void 0:document,_e={}){const{unstable_filterCSSRule:et,insertionPoint:tt,styleElementAttributes:rt,compareMediaQueries:nt=defaultCompareMediaQueries}=_e,ot={insertionCache:{},stylesheets:{},styleElementAttributes:Object.freeze(rt),compareMediaQueries:nt,id:`d${lastIndex++}`,insertCSSRules(it){for(const st in it){const lt=it[st];for(let ut=0,ct=lt.length;ut{const j={};return function(et,tt){j[et.id]===void 0&&(et.insertCSSRules(tt),j[et.id]=!0)}};function arrayToObject(j){return j.reduce(function(_e,et){var tt=et[0],rt=et[1];return _e[tt]=rt,_e[rt]=tt,_e},{})}function isBoolean$2(j){return typeof j=="boolean"}function isFunction$8(j){return typeof j=="function"}function isNumber$6(j){return typeof j=="number"}function isNullOrUndefined$5(j){return j===null||typeof j>"u"}function isObject$B(j){return j&&typeof j=="object"}function isString$3(j){return typeof j=="string"}function includes(j,_e){return j.indexOf(_e)!==-1}function flipSign(j){return parseFloat(j)===0?j:j[0]==="-"?j.slice(1):"-"+j}function flipTransformSign(j,_e,et,tt){return _e+flipSign(et)+tt}function calculateNewBackgroundPosition(j){var _e=j.indexOf(".");if(_e===-1)j=100-parseFloat(j)+"%";else{var et=j.length-_e-2;j=100-parseFloat(j),j=j.toFixed(et)+"%"}return j}function getValuesAsList(j){return j.replace(/ +/g," ").split(" ").map(function(_e){return _e.trim()}).filter(Boolean).reduce(function(_e,et){var tt=_e.list,rt=_e.state,nt=(et.match(/\(/g)||[]).length,ot=(et.match(/\)/g)||[]).length;return rt.parensDepth>0?tt[tt.length-1]=tt[tt.length-1]+" "+et:tt.push(et),rt.parensDepth+=nt-ot,{list:tt,state:rt}},{list:[],state:{parensDepth:0}}).list}function handleQuartetValues(j){var _e=getValuesAsList(j);if(_e.length<=3||_e.length>4)return j;var et=_e[0],tt=_e[1],rt=_e[2],nt=_e[3];return[et,nt,rt,tt].join(" ")}function canConvertValue(j){return!isBoolean$2(j)&&!isNullOrUndefined$5(j)}function splitShadow(j){for(var _e=[],et=0,tt=0,rt=!1;tt0?charat$1(characters$1,--position$3):0,column$1--,character$1===10&&(column$1=1,line$2--),character$1}function next$1(){return character$1=position$32||token$2(character$1)>3?"":" "}function tokenizer(j){for(;next$1();)switch(token$2(character$1)){case 0:append$2(identifier$1(position$3-1),j);break;case 2:append$2(delimit$1(character$1),j);break;default:append$2(from$8(character$1),j)}return j}function escaping$1(j,_e){for(;--_e&&next$1()&&!(character$1<48||character$1>102||character$1>57&&character$1<65||character$1>70&&character$1<97););return slice$7(j,caret$1()+(_e<6&&peek$1()==32&&next$1()==32))}function delimiter$1(j){for(;next$1();)switch(character$1){case j:return position$3;case 34:case 39:j!==34&&j!==39&&delimiter$1(character$1);break;case 40:j===41&&delimiter$1(j);break;case 92:next$1();break}return position$3}function commenter$1(j,_e){for(;next$1()&&j+character$1!==57;)if(j+character$1===84&&peek$1()===47)break;return"/*"+slice$7(_e,position$3-1)+"*"+from$8(j===47?j:next$1())}function identifier$1(j){for(;!token$2(peek$1());)next$1();return slice$7(j,position$3)}function compile$1(j){return dealloc$1(parse$n("",null,null,null,[""],j=alloc$1(j),0,[0],j))}function parse$n(j,_e,et,tt,rt,nt,ot,it,st){for(var lt=0,ut=0,ct=ot,dt=0,ft=0,pt=0,gt=1,vt=1,bt=1,_t=0,xt="",yt=rt,Et=nt,St=tt,$t=xt;vt;)switch(pt=_t,_t=next$1()){case 40:if(pt!=108&&charat$1($t,ct-1)==58){indexof$1($t+=replace$4(delimit$1(_t),"&","&\f"),"&\f")!=-1&&(bt=-1);break}case 34:case 39:case 91:$t+=delimit$1(_t);break;case 9:case 10:case 13:case 32:$t+=whitespace$1(pt);break;case 92:$t+=escaping$1(caret$1()-1,7);continue;case 47:switch(peek$1()){case 42:case 47:append$2(comment$1(commenter$1(next$1(),caret$1()),_e,et,st),st);break;default:$t+="/"}break;case 123*gt:it[lt++]=strlen$1($t)*bt;case 125*gt:case 59:case 0:switch(_t){case 0:case 125:vt=0;case 59+ut:bt==-1&&($t=replace$4($t,/\f/g,"")),ft>0&&strlen$1($t)-ct&&append$2(ft>32?declaration$1($t+";",tt,et,ct-1,st):declaration$1(replace$4($t," ","")+";",tt,et,ct-2,st),st);break;case 59:$t+=";";default:if(append$2(St=ruleset$1($t,_e,et,lt,ut,rt,it,xt,yt=[],Et=[],ct,nt),nt),_t===123)if(ut===0)parse$n($t,_e,St,St,yt,nt,ct,it,Et);else switch(dt===99&&charat$1($t,3)===110?100:dt){case 100:case 108:case 109:case 115:parse$n(j,St,St,tt&&append$2(ruleset$1(j,St,St,0,0,rt,it,xt,rt,yt=[],ct,Et),Et),rt,Et,ct,it,tt?yt:Et);break;default:parse$n($t,St,St,St,[""],Et,0,it,Et)}}lt=ut=ft=0,gt=bt=1,xt=$t="",ct=ot;break;case 58:ct=1+strlen$1($t),ft=pt;default:if(gt<1){if(_t==123)--gt;else if(_t==125&>++==0&&prev$1()==125)continue}switch($t+=from$8(_t),_t*gt){case 38:bt=ut>0?1:($t+="\f",-1);break;case 44:it[lt++]=(strlen$1($t)-1)*bt,bt=1;break;case 64:peek$1()===45&&($t+=delimit$1(next$1())),dt=peek$1(),ut=ct=strlen$1(xt=$t+=identifier$1(caret$1())),_t++;break;case 45:pt===45&&strlen$1($t)==2&&(gt=0)}}return nt}function ruleset$1(j,_e,et,tt,rt,nt,ot,it,st,lt,ut,ct){for(var dt=rt-1,ft=rt===0?nt:[""],pt=sizeof$1(ft),gt=0,vt=0,bt=0;gt0?ft[_t]+" "+xt:replace$4(xt,/&\f/g,ft[_t])))&&(st[bt++]=yt);return node$1(j,_e,et,rt===0?RULESET$1:it,st,lt,ut,ct)}function comment$1(j,_e,et,tt){return node$1(j,_e,et,COMMENT$1,from$8(char$1()),substr$1(j,2,-2),0,tt)}function declaration$1(j,_e,et,tt,rt){return node$1(j,_e,et,DECLARATION$1,substr$1(j,0,tt),substr$1(j,tt+1,-1),tt,rt)}function serialize$1(j,_e){for(var et="",tt=0;tt{switch(j.type){case RULESET$1:if(typeof j.props=="string")return;j.props=j.props.map(_e=>_e.indexOf(":global(")===-1?_e:tokenize(_e).reduce((et,tt,rt,nt)=>{if(tt==="")return et;if(tt===":"&&nt[rt+1]==="global"){const ot=nt[rt+2].slice(1,-1)+" ";return et.unshift(ot),nt[rt+1]="",nt[rt+2]="",et}return et.push(tt),et},[]).join(""))}};function prefix$4(j,_e,et){switch(hash$2(j,_e)){case 5103:return WEBKIT$1+"print-"+j+j;case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:return WEBKIT$1+j+j;case 4215:if(charat$1(j,9)===102||charat$1(j,_e+1)===116)return WEBKIT$1+j+j;break;case 4789:return MOZ$1+j+j;case 5349:case 4246:case 6968:return WEBKIT$1+j+MOZ$1+j+j;case 6187:if(!match$o(j,/grab/))return replace$4(replace$4(replace$4(j,/(zoom-|grab)/,WEBKIT$1+"$1"),/(image-set)/,WEBKIT$1+"$1"),j,"")+j;case 5495:case 3959:return replace$4(j,/(image-set\([^]*)/,WEBKIT$1+"$1$`$1");case 4095:case 3583:case 4068:case 2532:return replace$4(j,/(.+)-inline(.+)/,WEBKIT$1+"$1$2")+j;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(strlen$1(j)-1-_e>6)switch(charat$1(j,_e+1)){case 102:if(charat$1(j,_e+3)===108)return replace$4(j,/(.+:)(.+)-([^]+)/,"$1"+WEBKIT$1+"$2-$3$1"+MOZ$1+(charat$1(j,_e+3)==108?"$3":"$2-$3"))+j;case 115:return~indexof$1(j,"stretch")?prefix$4(replace$4(j,"stretch","fill-available"),_e)+j:j}break}return j}function prefixerPlugin(j,_e,et,tt){if(j.length>-1&&!j.return)switch(j.type){case DECLARATION$1:j.return=prefix$4(j.value,j.length);return;case RULESET$1:if(j.length)return combine$1(j.props,function(rt){switch(match$o(rt,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize$1([copy$5(j,{props:[replace$4(rt,/:(read-\w+)/,":"+MOZ$1+"$1")]})],tt);case"::placeholder":return serialize$1([copy$5(j,{props:[replace$4(rt,/:(plac\w+)/,":"+WEBKIT$1+"input-$1")]}),copy$5(j,{props:[replace$4(rt,/:(plac\w+)/,":"+MOZ$1+"$1")]})],tt)}return""})}}function isAtRuleElement(j){switch(j.type){case"@container":case MEDIA:case SUPPORTS:case LAYER$1:return!0}return!1}const sortClassesInAtRulesPlugin=j=>{isAtRuleElement(j)&&Array.isArray(j.children)&&j.children.sort((_e,et)=>_e.props[0]>et.props[0]?1:-1)};function noop$8(){}function compileCSSRules(j,_e){const et=[];return serialize$1(compile$1(j),middleware$1([globalPlugin,_e?sortClassesInAtRulesPlugin:noop$8,prefixerPlugin,stringify$2,rulesheet$1(tt=>et.push(tt))])),et}const PSEUDO_SELECTOR_REGEX=/,( *[^ &])/g;function normalizePseudoSelector(j){return"&"+normalizeNestedProperty(j.replace(PSEUDO_SELECTOR_REGEX,",&$1"))}function createCSSRule(j,_e,et){let tt=_e;return et.length>0&&(tt=et.reduceRight((rt,nt)=>`${normalizePseudoSelector(nt)} { ${rt} }`,_e)),`${j}{${tt}}`}function compileAtomicCSSRule(j){const{className:_e,media:et,layer:tt,selectors:rt,support:nt,property:ot,rtlClassName:it,rtlProperty:st,rtlValue:lt,value:ut,container:ct}=j,dt=`.${_e}`,ft=Array.isArray(ut)?`${ut.map(gt=>`${hyphenateProperty(ot)}: ${gt}`).join(";")};`:`${hyphenateProperty(ot)}: ${ut};`;let pt=createCSSRule(dt,ft,rt);if(st&&it){const gt=`.${it}`,vt=Array.isArray(lt)?`${lt.map(bt=>`${hyphenateProperty(st)}: ${bt}`).join(";")};`:`${hyphenateProperty(st)}: ${lt};`;pt+=createCSSRule(gt,vt,rt)}return et&&(pt=`@media ${et} { ${pt} }`),tt&&(pt=`@layer ${tt} { ${pt} }`),nt&&(pt=`@supports ${nt} { ${pt} }`),ct&&(pt=`@container ${ct} { ${pt} }`),compileCSSRules(pt,!0)}function cssifyObject(j){let _e="";for(const et in j){const tt=j[et];typeof tt!="string"&&typeof tt!="number"||(_e+=hyphenateProperty(et)+":"+tt+";")}return _e}function compileKeyframeRule(j){let _e="";for(const et in j)_e+=`${et}{${cssifyObject(j[et])}}`;return _e}function compileKeyframesCSS(j,_e){const et=`@keyframes ${j} {${_e}}`,tt=[];return serialize$1(compile$1(et),middleware$1([stringify$2,prefixerPlugin,rulesheet$1(rt=>tt.push(rt))])),tt}function generateCombinedQuery(j,_e){return j.length===0?_e:`${j} and ${_e}`}function isMediaQuerySelector(j){return j.substr(0,6)==="@media"}function isLayerSelector(j){return j.substr(0,6)==="@layer"}const regex=/^(:|\[|>|&)/;function isNestedSelector(j){return regex.test(j)}function isSupportQuerySelector(j){return j.substr(0,9)==="@supports"}function isContainerQuerySelector(j){return j.substring(0,10)==="@container"}function isObject$A(j){return j!=null&&typeof j=="object"&&Array.isArray(j)===!1}const pseudosMap={"us-w":"w","us-v":"i",nk:"l",si:"v",cu:"f",ve:"h",ti:"a"};function getStyleBucketName(j,_e,et,tt,rt){if(et)return"m";if(_e||tt)return"t";if(rt)return"c";if(j.length>0){const nt=j[0].trim();if(nt.charCodeAt(0)===58)return pseudosMap[nt.slice(4,8)]||pseudosMap[nt.slice(3,5)]||"d"}return"d"}function hashClassName({container:j,media:_e,layer:et,property:tt,selector:rt,support:nt,value:ot}){const it=murmur2(rt+j+_e+et+nt+tt+ot.trim());return HASH_PREFIX+it}function hashPropertyKey(j,_e,et,tt,rt){const nt=j+_e+et+tt+rt,ot=murmur2(nt),it=ot.charCodeAt(0);return it>=48&&it<=57?String.fromCharCode(it+17)+ot.slice(1):ot}function trimSelector(j){return j.replace(/>\s+/g,">")}function warnAboutUnresolvedRule(j,_e){const et=JSON.stringify(_e,null,2);" ".repeat(2)+""," ".repeat(4)+""," ".repeat(6)+`"${j}": ${et.split(` +`).map((tt,rt)=>" ".repeat(rt===0?0:6)+tt).join(` +`)}`," ".repeat(4)+""," ".repeat(2)+"",j.indexOf("&")}function warnAboutUnsupportedProperties(j,_e){}function pushToClassesMap(j,_e,et,tt){j[_e]=tt?[et,tt]:et}function createBucketEntry(j,_e){return _e?[j,_e]:j}function pushToCSSRules(j,_e,et,tt,rt){var nt;let ot;_e==="m"&&rt&&(ot={m:rt}),(nt=j[_e])!==null&&nt!==void 0||(j[_e]=[]),et&&j[_e].push(createBucketEntry(et,ot)),tt&&j[_e].push(createBucketEntry(tt,ot))}function resolveStyleRules(j,_e=[],et="",tt="",rt="",nt="",ot={},it={},st){for(const lt in j){if(UNSUPPORTED_CSS_PROPERTIES.hasOwnProperty(lt)){j[lt];continue}const ut=j[lt];if(ut!=null){if(typeof ut=="string"||typeof ut=="number"){const ct=trimSelector(_e.join("")),dt=hashPropertyKey(ct,nt,et,rt,lt),ft=hashClassName({container:nt,media:et,layer:tt,value:ut.toString(),support:rt,selector:ct,property:lt}),pt=st&&{key:lt,value:st}||convertProperty(lt,ut),gt=pt.key!==lt||pt.value!==ut,vt=gt?hashClassName({container:nt,value:pt.value.toString(),property:pt.key,selector:ct,media:et,layer:tt,support:rt}):void 0,bt=gt?{rtlClassName:vt,rtlProperty:pt.key,rtlValue:pt.value}:void 0,_t=getStyleBucketName(_e,tt,et,rt,nt),[xt,yt]=compileAtomicCSSRule({className:ft,media:et,layer:tt,selectors:_e,property:lt,support:rt,container:nt,value:ut,...bt});pushToClassesMap(ot,dt,ft,vt),pushToCSSRules(it,_t,xt,yt,et)}else if(lt==="animationName"){const ct=Array.isArray(ut)?ut:[ut],dt=[],ft=[];for(const pt of ct){const gt=compileKeyframeRule(pt),vt=compileKeyframeRule(convert(pt)),bt=HASH_PREFIX+murmur2(gt);let _t;const xt=compileKeyframesCSS(bt,gt);let yt=[];gt===vt?_t=bt:(_t=HASH_PREFIX+murmur2(vt),yt=compileKeyframesCSS(_t,vt));for(let Et=0;Et(St??"").toString()).join(";"),support:rt,selector:ct,property:lt}),pt=ut.map(St=>convertProperty(lt,St));if(!!pt.some(St=>St.key!==pt[0].key))continue;const vt=pt[0].key!==lt||pt.some((St,$t)=>St.value!==ut[$t]),bt=vt?hashClassName({container:nt,value:pt.map(St=>{var $t;return(($t=St==null?void 0:St.value)!==null&&$t!==void 0?$t:"").toString()}).join(";"),property:pt[0].key,selector:ct,layer:tt,media:et,support:rt}):void 0,_t=vt?{rtlClassName:bt,rtlProperty:pt[0].key,rtlValue:pt.map(St=>St.value)}:void 0,xt=getStyleBucketName(_e,tt,et,rt,nt),[yt,Et]=compileAtomicCSSRule({className:ft,media:et,layer:tt,selectors:_e,property:lt,support:rt,container:nt,value:ut,..._t});pushToClassesMap(ot,dt,ft,bt),pushToCSSRules(it,xt,yt,Et,et)}else if(isObject$A(ut))if(isNestedSelector(lt))resolveStyleRules(ut,_e.concat(normalizeNestedProperty(lt)),et,tt,rt,nt,ot,it);else if(isMediaQuerySelector(lt)){const ct=generateCombinedQuery(et,lt.slice(6).trim());resolveStyleRules(ut,_e,ct,tt,rt,nt,ot,it)}else if(isLayerSelector(lt)){const ct=(tt?`${tt}.`:"")+lt.slice(6).trim();resolveStyleRules(ut,_e,et,ct,rt,nt,ot,it)}else if(isSupportQuerySelector(lt)){const ct=generateCombinedQuery(rt,lt.slice(9).trim());resolveStyleRules(ut,_e,et,tt,ct,nt,ot,it)}else if(isContainerQuerySelector(lt)){const ct=lt.slice(10).trim();resolveStyleRules(ut,_e,et,tt,rt,ct,ot,it)}else warnAboutUnresolvedRule(lt,ut)}}return[ot,it]}function resolveStyleRulesForSlots(j){const _e={},et={};for(const tt in j){const rt=j[tt],[nt,ot]=resolveStyleRules(rt);_e[tt]=nt,Object.keys(ot).forEach(it=>{et[it]=(et[it]||[]).concat(ot[it])})}return[_e,et]}function makeStyles$1(j,_e=insertionFactory$1){const et=_e();let tt=null,rt=null,nt=null,ot=null;function it(st){const{dir:lt,renderer:ut}=st;tt===null&&([tt,rt]=resolveStyleRulesForSlots(j));const ct=lt==="ltr";return ct?nt===null&&(nt=reduceToClassNameForSlots(tt,lt)):ot===null&&(ot=reduceToClassNameForSlots(tt,lt)),et(ut,rt),ct?nt:ot}return it}function __styles$1(j,_e,et=insertionFactory$1){const tt=et();let rt=null,nt=null;function ot(it){const{dir:st,renderer:lt}=it,ut=st==="ltr";return ut?rt===null&&(rt=reduceToClassNameForSlots(j,st)):nt===null&&(nt=reduceToClassNameForSlots(j,st)),tt(lt,_e),ut?rt:nt}return ot}function __resetStyles$1(j,_e,et,tt=insertionFactory$1){const rt=tt();function nt(ot){const{dir:it,renderer:st}=ot,lt=it==="ltr"?j:_e||j;return rt(st,Array.isArray(et)?{r:et}:et),lt}return nt}const shorthands={border,borderLeft,borderBottom,borderRight,borderTop,borderColor,borderStyle,borderRadius:borderRadius$1,borderWidth:borderWidth$1,flex,gap,gridArea,margin,marginBlock,marginInline,padding,paddingBlock,paddingInline,overflow,inset,outline,transition:transition$1,textDecoration};function canUseDOM$4(){return typeof window<"u"&&!!(window.document&&window.document.createElement)}const useInsertionEffect$2=React$1.useInsertionEffect?React$1.useInsertionEffect:void 0,insertionFactory=()=>{const j={};return function(et,tt){if(useInsertionEffect$2&&canUseDOM$4()){useInsertionEffect$2(()=>{et.insertCSSRules(tt)},[et,tt]);return}j[et.id]===void 0&&(et.insertCSSRules(tt),j[et.id]=!0)}},RendererContext=reactExports.createContext(createDOMRenderer());function useRenderer(){return reactExports.useContext(RendererContext)}const TextDirectionContext=reactExports.createContext("ltr"),TextDirectionProvider=({children:j,dir:_e})=>reactExports.createElement(TextDirectionContext.Provider,{value:_e},j);function useTextDirection(){return reactExports.useContext(TextDirectionContext)}function makeStyles(j){const _e=makeStyles$1(j,insertionFactory);return function(){const tt=useTextDirection(),rt=useRenderer();return _e({dir:tt,renderer:rt})}}function __styles(j,_e){const et=__styles$1(j,_e,insertionFactory);return function(){const rt=useTextDirection(),nt=useRenderer();return et({dir:rt,renderer:nt})}}function __resetStyles(j,_e,et){const tt=__resetStyles$1(j,_e,et,insertionFactory);return function(){const nt=useTextDirection(),ot=useRenderer();return tt({dir:nt,renderer:ot})}}function createCSSRuleFromTheme(j,_e){if(_e){const et=Object.keys(_e).reduce((tt,rt)=>`${tt}--${rt}: ${_e[rt]}; `,"");return`${j} { ${et} }`}return`${j} {}`}const SLOT_RENDER_FUNCTION_SYMBOL=Symbol("fui.slotRenderFunction"),SLOT_ELEMENT_TYPE_SYMBOL=Symbol("fui.slotElementType");function always(j,_e){const{defaultProps:et,elementType:tt}=_e,rt=resolveShorthand(j),nt={...et,...rt,[SLOT_ELEMENT_TYPE_SYMBOL]:tt};return rt&&typeof rt.children=="function"&&(nt[SLOT_RENDER_FUNCTION_SYMBOL]=rt.children,nt.children=et==null?void 0:et.children),nt}function optional(j,_e){if(!(j===null||j===void 0&&!_e.renderByDefault))return always(j,_e)}function resolveShorthand(j){return typeof j=="string"||typeof j=="number"||Array.isArray(j)||reactExports.isValidElement(j)?{children:j}:j}function isSlot(j){return!!(j!=null&&j.hasOwnProperty(SLOT_ELEMENT_TYPE_SYMBOL))}function isResolvedShorthand(j){return j!==null&&typeof j=="object"&&!Array.isArray(j)&&!reactExports.isValidElement(j)}const toObjectMap$1=(...j)=>{const _e={};for(const et of j){const tt=Array.isArray(et)?et:Object.keys(et);for(const rt of tt)_e[rt]=1}return _e},baseElementEvents$1=toObjectMap$1(["onAuxClick","onAnimationEnd","onAnimationStart","onCopy","onCut","onPaste","onCompositionEnd","onCompositionStart","onCompositionUpdate","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onInput","onSubmit","onLoad","onError","onKeyDown","onKeyDownCapture","onKeyPress","onKeyUp","onAbort","onCanPlay","onCanPlayThrough","onDurationChange","onEmptied","onEncrypted","onEnded","onLoadedData","onLoadedMetadata","onLoadStart","onPause","onPlay","onPlaying","onProgress","onRateChange","onSeeked","onSeeking","onStalled","onSuspend","onTimeUpdate","onVolumeChange","onWaiting","onClick","onClickCapture","onContextMenu","onDoubleClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onMouseUpCapture","onSelect","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onScroll","onWheel","onPointerCancel","onPointerDown","onPointerEnter","onPointerLeave","onPointerMove","onPointerOut","onPointerOver","onPointerUp","onGotPointerCapture","onLostPointerCapture"]),baseElementProperties$1=toObjectMap$1(["accessKey","children","className","contentEditable","dir","draggable","hidden","htmlFor","id","lang","ref","role","style","tabIndex","title","translate","spellCheck","name"]),microdataProperties=toObjectMap$1(["itemID","itemProp","itemRef","itemScope","itemType"]),htmlElementProperties$1=toObjectMap$1(baseElementProperties$1,baseElementEvents$1,microdataProperties),labelProperties=toObjectMap$1(htmlElementProperties$1,["form"]),audioProperties$1=toObjectMap$1(htmlElementProperties$1,["height","loop","muted","preload","src","width"]),videoProperties=toObjectMap$1(audioProperties$1,["poster"]),olProperties=toObjectMap$1(htmlElementProperties$1,["start"]),liProperties=toObjectMap$1(htmlElementProperties$1,["value"]),anchorProperties$1=toObjectMap$1(htmlElementProperties$1,["download","href","hrefLang","media","rel","target","type"]),timeProperties=toObjectMap$1(htmlElementProperties$1,["dateTime"]),buttonProperties$1=toObjectMap$1(htmlElementProperties$1,["autoFocus","disabled","form","formAction","formEncType","formMethod","formNoValidate","formTarget","type","value"]),inputProperties=toObjectMap$1(buttonProperties$1,["accept","alt","autoCapitalize","autoComplete","checked","dirname","form","height","inputMode","list","max","maxLength","min","multiple","pattern","placeholder","readOnly","required","src","step","size","type","value","width"]),textAreaProperties=toObjectMap$1(buttonProperties$1,["autoCapitalize","cols","dirname","form","maxLength","placeholder","readOnly","required","rows","wrap"]),selectProperties=toObjectMap$1(buttonProperties$1,["form","multiple","required"]),optionProperties=toObjectMap$1(htmlElementProperties$1,["selected","value"]),tableProperties=toObjectMap$1(htmlElementProperties$1,["cellPadding","cellSpacing"]),trProperties=htmlElementProperties$1,thProperties=toObjectMap$1(htmlElementProperties$1,["colSpan","rowSpan","scope"]),tdProperties=toObjectMap$1(htmlElementProperties$1,["colSpan","headers","rowSpan","scope"]),colGroupProperties=toObjectMap$1(htmlElementProperties$1,["span"]),colProperties=toObjectMap$1(htmlElementProperties$1,["span"]),fieldsetProperties=toObjectMap$1(htmlElementProperties$1,["disabled","form"]),formProperties=toObjectMap$1(htmlElementProperties$1,["acceptCharset","action","encType","encType","method","noValidate","target"]),iframeProperties=toObjectMap$1(htmlElementProperties$1,["allow","allowFullScreen","allowPaymentRequest","allowTransparency","csp","height","importance","referrerPolicy","sandbox","src","srcDoc","width"]),imgProperties$1=toObjectMap$1(htmlElementProperties$1,["alt","crossOrigin","height","src","srcSet","useMap","width"]),dialogProperties=toObjectMap$1(htmlElementProperties$1,["open","onCancel","onClose"]);function getNativeProps$1(j,_e,et){const tt=Array.isArray(_e),rt={},nt=Object.keys(j);for(const ot of nt)(!tt&&_e[ot]||tt&&_e.indexOf(ot)>=0||ot.indexOf("data-")===0||ot.indexOf("aria-")===0)&&(!et||(et==null?void 0:et.indexOf(ot))===-1)&&(rt[ot]=j[ot]);return rt}const nativeElementMap={label:labelProperties,audio:audioProperties$1,video:videoProperties,ol:olProperties,li:liProperties,a:anchorProperties$1,button:buttonProperties$1,input:inputProperties,textarea:textAreaProperties,select:selectProperties,option:optionProperties,table:tableProperties,tr:trProperties,th:thProperties,td:tdProperties,colGroup:colGroupProperties,col:colProperties,fieldset:fieldsetProperties,form:formProperties,iframe:iframeProperties,img:imgProperties$1,time:timeProperties,dialog:dialogProperties};function getNativeElementProps(j,_e,et){const tt=j&&nativeElementMap[j]||htmlElementProperties$1;return tt.as=1,getNativeProps$1(_e,tt,et)}const getPartitionedNativeProps=({primarySlotTagName:j,props:_e,excludedPropNames:et})=>({root:{style:_e.style,className:_e.className},primary:getNativeElementProps(j,_e,[...et||[],"style","className"])}),getIntrinsicElementProps=(j,_e,et)=>{var tt;return getNativeElementProps((tt=_e.as)!==null&&tt!==void 0?tt:j,_e,et)};function canUseDOM$3(){return typeof window<"u"&&!!(window.document&&window.document.createElement)}function useBrowserTimer(j,_e){const et=reactExports.useRef(void 0),tt=reactExports.useCallback((nt,ot)=>(et.current!==void 0&&_e(et.current),et.current=j(nt,ot),et.current),[_e,j]),rt=reactExports.useCallback(()=>{et.current!==void 0&&(_e(et.current),et.current=void 0)},[_e]);return reactExports.useEffect(()=>rt,[rt]),[tt,rt]}const setAnimationFrameNoop=j=>(j(0),0),cancelAnimationFrameNoop=j=>j;function useAnimationFrame(){const j=canUseDOM$3();return useBrowserTimer(j?requestAnimationFrame:setAnimationFrameNoop,j?cancelAnimationFrame:cancelAnimationFrameNoop)}function isFactoryDispatch(j){return typeof j=="function"}const useControllableState=j=>{const[_e,et]=reactExports.useState(()=>j.defaultState===void 0?j.initialState:isInitializer(j.defaultState)?j.defaultState():j.defaultState),tt=reactExports.useRef(j.state);reactExports.useEffect(()=>{tt.current=j.state},[j.state]);const rt=reactExports.useCallback(nt=>{isFactoryDispatch(nt)&&nt(tt.current)},[]);return useIsControlled(j.state)?[j.state,rt]:[_e,et]};function isInitializer(j){return typeof j=="function"}const useIsControlled=j=>{const[_e]=reactExports.useState(()=>j!==void 0);return _e},defaultSSRContextValue={current:0},SSRContext=reactExports.createContext(void 0);function useSSRContext(){var j;return(j=reactExports.useContext(SSRContext))!==null&&j!==void 0?j:defaultSSRContextValue}function useIsSSR(){const j=useSSRContext()!==defaultSSRContextValue,[_e,et]=reactExports.useState(j);return canUseDOM$3()&&j&&reactExports.useLayoutEffect(()=>{et(!1)},[]),_e}const useIsomorphicLayoutEffect$1=canUseDOM$3()?reactExports.useLayoutEffect:reactExports.useEffect,useEventCallback$3=j=>{const _e=reactExports.useRef(()=>{throw new Error("Cannot call an event handler while rendering")});return useIsomorphicLayoutEffect$1(()=>{_e.current=j},[j]),reactExports.useCallback((...et)=>{const tt=_e.current;return tt(...et)},[_e])};function useFirstMount(){const j=reactExports.useRef(!0);return j.current?(j.current=!1,!0):j.current}const IdPrefixContext=reactExports.createContext(void 0);IdPrefixContext.Provider;function useIdPrefix(){return reactExports.useContext(IdPrefixContext)||""}function useId$1(j="fui-",_e){const et=useSSRContext(),tt=useIdPrefix(),rt=React$1.useId;if(rt){const nt=rt(),ot=reactExports.useMemo(()=>nt.replace(/:/g,""),[nt]);return _e||`${tt}${j}${ot}`}return reactExports.useMemo(()=>_e||`${tt}${j}${++et.current}`,[tt,j,_e,et])}function useMergedRefs$1(...j){const _e=reactExports.useCallback(et=>{_e.current=et;for(const tt of j)typeof tt=="function"?tt(et):tt&&(tt.current=et)},[...j]);return _e}const ThemeContext$1=reactExports.createContext(void 0),ThemeProvider=ThemeContext$1.Provider,ThemeClassNameContext=reactExports.createContext(void 0),themeClassNameContextDefaultVaue="",ThemeClassNameProvider=ThemeClassNameContext.Provider;function useThemeClassName(){var j;return(j=reactExports.useContext(ThemeClassNameContext))!==null&&j!==void 0?j:themeClassNameContextDefaultVaue}const TooltipVisibilityContext=reactExports.createContext(void 0),tooltipVisibilityContextDefaultValue={},TooltipVisibilityProvider=TooltipVisibilityContext.Provider;function useTooltipVisibility(){var j;return(j=reactExports.useContext(TooltipVisibilityContext))!==null&&j!==void 0?j:tooltipVisibilityContextDefaultValue}const ProviderContext=reactExports.createContext(void 0),providerContextDefaultValue={targetDocument:typeof document=="object"?document:void 0,dir:"ltr"},Provider=ProviderContext.Provider;function useFluent(){var j;return(j=reactExports.useContext(ProviderContext))!==null&&j!==void 0?j:providerContextDefaultValue}const OverridesContext=reactExports.createContext(void 0),OverridesProvider=OverridesContext.Provider;function useOverrides(){var j;return(j=reactExports.useContext(OverridesContext))!==null&&j!==void 0?j:{}}const CustomStyleHooksContext=reactExports.createContext(void 0),noop$7=()=>{},CustomStyleHooksProvider=CustomStyleHooksContext.Provider,useCustomStyleHook=j=>{var _e,et;return(et=(_e=reactExports.useContext(CustomStyleHooksContext))===null||_e===void 0?void 0:_e[j])!==null&&et!==void 0?et:noop$7},BackgroundAppearanceContext=reactExports.createContext(void 0);BackgroundAppearanceContext.Provider;function useBackgroundAppearance(){return reactExports.useContext(BackgroundAppearanceContext)}const PortalMountNodeContext=reactExports.createContext(void 0);PortalMountNodeContext.Provider;function usePortalMountNode$1(){return reactExports.useContext(PortalMountNodeContext)}const AnnounceContext=reactExports.createContext(void 0);AnnounceContext.Provider;function useAnnounce(){var j;return(j=reactExports.useContext(AnnounceContext))!==null&&j!==void 0?j:{announce:()=>{}}}const DEFAULT_CONTAINS=(j,_e)=>!!(j!=null&&j.contains(_e)),useOnClickOutside=j=>{const{targetDocument:_e}=useFluent(),et=_e==null?void 0:_e.defaultView,{refs:tt,callback:rt,element:nt,disabled:ot,disabledFocusOnIframe:it,contains:st=DEFAULT_CONTAINS}=j,lt=reactExports.useRef(void 0);useIFrameFocus({element:nt,disabled:it||ot,callback:rt,refs:tt,contains:st});const ut=reactExports.useRef(!1),ct=useEventCallback$3(ft=>{if(ut.current){ut.current=!1;return}const pt=ft.composedPath()[0];tt.every(vt=>!st(vt.current||null,pt))&&!ot&&rt(ft)}),dt=useEventCallback$3(ft=>{ut.current=tt.some(pt=>st(pt.current||null,ft.target))});reactExports.useEffect(()=>{if(ot)return;let ft=getWindowEvent(et);const pt=gt=>{if(gt===ft){ft=void 0;return}ct(gt)};return nt==null||nt.addEventListener("click",pt,!0),nt==null||nt.addEventListener("touchstart",pt,!0),nt==null||nt.addEventListener("contextmenu",pt,!0),nt==null||nt.addEventListener("mousedown",dt,!0),lt.current=et==null?void 0:et.setTimeout(()=>{ft=void 0},1),()=>{nt==null||nt.removeEventListener("click",pt,!0),nt==null||nt.removeEventListener("touchstart",pt,!0),nt==null||nt.removeEventListener("contextmenu",pt,!0),nt==null||nt.removeEventListener("mousedown",dt,!0),et==null||et.clearTimeout(lt.current),ft=void 0}},[ct,nt,ot,dt,et])},getWindowEvent=j=>{if(j){var _e,et;if(typeof j.window=="object"&&j.window===j)return j.event;var tt;return(tt=(et=j.ownerDocument)===null||et===void 0||(_e=et.defaultView)===null||_e===void 0?void 0:_e.event)!==null&&tt!==void 0?tt:void 0}},FUI_FRAME_EVENT="fuiframefocus",useIFrameFocus=j=>{const{disabled:_e,element:et,callback:tt,contains:rt=DEFAULT_CONTAINS,pollDuration:nt=1e3,refs:ot}=j,it=reactExports.useRef(),st=useEventCallback$3(lt=>{ot.every(ct=>!rt(ct.current||null,lt.target))&&!_e&&tt(lt)});reactExports.useEffect(()=>{if(!_e)return et==null||et.addEventListener(FUI_FRAME_EVENT,st,!0),()=>{et==null||et.removeEventListener(FUI_FRAME_EVENT,st,!0)}},[et,_e,st]),reactExports.useEffect(()=>{var lt;if(!_e)return it.current=et==null||(lt=et.defaultView)===null||lt===void 0?void 0:lt.setInterval(()=>{const ut=et==null?void 0:et.activeElement;if((ut==null?void 0:ut.tagName)==="IFRAME"||(ut==null?void 0:ut.tagName)==="WEBVIEW"){const ct=new CustomEvent(FUI_FRAME_EVENT,{bubbles:!0});ut.dispatchEvent(ct)}},nt),()=>{var ut;et==null||(ut=et.defaultView)===null||ut===void 0||ut.clearTimeout(it.current)}},[et,_e,nt])},useOnScrollOutside=j=>{const{refs:_e,callback:et,element:tt,disabled:rt,contains:nt}=j,ot=useEventCallback$3(it=>{const st=nt||((ct,dt)=>!!(ct!=null&&ct.contains(dt))),lt=it.composedPath()[0];_e.every(ct=>!st(ct.current||null,lt))&&!rt&&et(it)});reactExports.useEffect(()=>{if(!rt)return tt==null||tt.addEventListener("wheel",ot),tt==null||tt.addEventListener("touchmove",ot),()=>{tt==null||tt.removeEventListener("wheel",ot),tt==null||tt.removeEventListener("touchmove",ot)}},[ot,tt,rt])};function useTimeout(){return useBrowserTimer(setTimeout,clearTimeout)}function mergeCallbacks(j,_e){return(...et)=>{j==null||j(...et),_e==null||_e(...et)}}function isHTMLElement$4(j,_e){var et;const tt=j;var rt;return!!(!(tt==null||(et=tt.ownerDocument)===null||et===void 0)&&et.defaultView&&tt instanceof tt.ownerDocument.defaultView[(rt=_e==null?void 0:_e.constructorName)!==null&&rt!==void 0?rt:"HTMLElement"])}function isFluentTrigger(j){return!!j.type.isFluentTriggerComponent}function applyTriggerPropsToChildren(j,_e){return typeof j=="function"?j(_e):j?cloneTriggerTree(j,_e):j||null}function cloneTriggerTree(j,_e){if(!reactExports.isValidElement(j)||j.type===reactExports.Fragment)throw new Error("A trigger element must be a single element for this component. Please ensure that you're not using React Fragments.");if(isFluentTrigger(j)){const et=cloneTriggerTree(j.props.children,_e);return reactExports.cloneElement(j,void 0,et)}else return reactExports.cloneElement(j,_e)}function getTriggerChild(j){return reactExports.isValidElement(j)?isFluentTrigger(j)?getTriggerChild(j.props.children):j:null}function isVirtualElement$1(j){return j&&!!j._virtual}function getVirtualParent$1(j){return isVirtualElement$1(j)&&j._virtual.parent||null}function getParent$1(j,_e={}){if(!j)return null;if(!_e.skipVirtual){const et=getVirtualParent$1(j);if(et)return et}return(j==null?void 0:j.parentNode)||null}function elementContains$1(j,_e){if(!j||!_e)return!1;if(j===_e)return!0;{const et=new WeakSet;for(;_e;){const tt=getParent$1(_e,{skipVirtual:et.has(_e)});if(et.add(_e),tt===j)return!0;_e=tt}}return!1}function setVirtualParent$1(j,_e){if(!j)return;const et=j;et._virtual||(et._virtual={}),et._virtual.parent=_e}function createCompatSlotComponent(j,_e){return{..._e,[SLOT_ELEMENT_TYPE_SYMBOL]:j}}function createJSX(j,_e){return function(tt,rt,nt,ot,it){return isSlot(rt)?_e(createCompatSlotComponent(tt,rt),null,nt,ot,it):isSlot(tt)?_e(tt,rt,nt,ot,it):j(tt,rt,nt,ot,it)}}function getMetadataFromSlotComponent(j){const{as:_e,[SLOT_ELEMENT_TYPE_SYMBOL]:et,[SLOT_RENDER_FUNCTION_SYMBOL]:tt,...rt}=j,nt=rt,ot=typeof et=="string"?_e??et:et;return typeof ot!="string"&&_e&&(nt.as=_e),{elementType:ot,props:nt,renderFunction:tt}}const Runtime=ReactRuntime,jsxSlot=(j,_e,et)=>{const{elementType:tt,renderFunction:rt,props:nt}=getMetadataFromSlotComponent(j),ot={...nt,..._e};return rt?Runtime.jsx(reactExports.Fragment,{children:rt(tt,ot)},et):Runtime.jsx(tt,ot,et)},jsxsSlot=(j,_e,et)=>{const{elementType:tt,renderFunction:rt,props:nt}=getMetadataFromSlotComponent(j),ot={...nt,..._e};return rt?Runtime.jsx(reactExports.Fragment,{children:rt(tt,{...ot,children:Runtime.jsxs(reactExports.Fragment,{children:ot.children},void 0)})},et):Runtime.jsxs(tt,ot,et)},jsx$1=createJSX(Runtime.jsx,jsxSlot),jsxs=createJSX(Runtime.jsxs,jsxsSlot),IconDirectionContext=reactExports.createContext(void 0),IconDirectionContextDefaultValue={},IconDirectionContextProvider=IconDirectionContext.Provider,useIconContext=()=>reactExports.useContext(IconDirectionContext)?reactExports.useContext(IconDirectionContext):IconDirectionContextDefaultValue,useRootStyles$7=__styles({root:{mc9l5x:"f1w7gpdv",Bg96gwp:"fez10in",ycbfsm:"fg4l7m0"},rtl:{Bz10aip:"f13rod7r"}},{d:[".f1w7gpdv{display:inline;}",".fez10in{line-height:0;}",".f13rod7r{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);}"],t:["@media (forced-colors: active){.fg4l7m0{forced-color-adjust:auto;}}"]}),useIconState=(j,_e)=>{const{title:et,primaryFill:tt="currentColor",...rt}=j,nt={...rt,title:void 0,fill:tt},ot=useRootStyles$7(),it=useIconContext();return nt.className=mergeClasses(ot.root,(_e==null?void 0:_e.flipInRtl)&&(it==null?void 0:it.textDirection)==="rtl"&&ot.rtl,nt.className),et&&(nt["aria-label"]=et),!nt["aria-label"]&&!nt["aria-labelledby"]?nt["aria-hidden"]=!0:nt.role="img",nt},createFluentIcon=(j,_e,et,tt)=>{const rt=_e==="1em"?"20":_e,nt=reactExports.forwardRef((ot,it)=>{const st={...useIconState(ot,{flipInRtl:tt==null?void 0:tt.flipInRtl}),ref:it,width:_e,height:_e,viewBox:`0 0 ${rt} ${rt}`,xmlns:"http://www.w3.org/2000/svg"};return reactExports.createElement("svg",st,...et.map(lt=>reactExports.createElement("path",{d:lt,fill:st.fill})))});return nt.displayName=j,nt},CheckmarkFilled=createFluentIcon("CheckmarkFilled","1em",["M7.03 13.9 3.56 10a.75.75 0 0 0-1.12 1l4 4.5c.29.32.79.34 1.09.03l10.5-10.5a.75.75 0 0 0-1.06-1.06l-9.94 9.94Z"]),CheckmarkCircleFilled=createFluentIcon("CheckmarkCircleFilled","1em",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm3.36 5.65a.5.5 0 0 0-.64-.06l-.07.06L9 11.3 7.35 9.65l-.07-.06a.5.5 0 0 0-.7.7l.07.07 2 2 .07.06c.17.11.4.11.56 0l.07-.06 4-4 .07-.08a.5.5 0 0 0-.06-.63Z"]),ChevronDownRegular=createFluentIcon("ChevronDownRegular","1em",["M15.85 7.65c.2.2.2.5 0 .7l-5.46 5.49a.55.55 0 0 1-.78 0L4.15 8.35a.5.5 0 1 1 .7-.7L10 12.8l5.15-5.16c.2-.2.5-.2.7 0Z"]),ChevronRightRegular=createFluentIcon("ChevronRightRegular","1em",["M7.65 4.15c.2-.2.5-.2.7 0l5.49 5.46c.21.22.21.57 0 .78l-5.49 5.46a.5.5 0 0 1-.7-.7L12.8 10 7.65 4.85a.5.5 0 0 1 0-.7Z"]),CircleFilled=createFluentIcon("CircleFilled","1em",["M10 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Z"]),ErrorCircleFilled=createFluentIcon("ErrorCircleFilled","1em",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 10.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM10 6a.5.5 0 0 0-.5.41v4.68a.5.5 0 0 0 1 0V6.41A.5.5 0 0 0 10 6Z"]),InfoFilled=createFluentIcon("InfoFilled","1em",["M18 10a8 8 0 1 0-16 0 8 8 0 0 0 16 0ZM9.5 8.91a.5.5 0 0 1 1 0V13.6a.5.5 0 0 1-1 0V8.9Zm-.25-2.16a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0Z"]),WarningFilled=createFluentIcon("WarningFilled","1em",["M8.68 2.79a1.5 1.5 0 0 1 2.64 0l6.5 12A1.5 1.5 0 0 1 16.5 17h-13a1.5 1.5 0 0 1-1.32-2.21l6.5-12ZM10.5 7.5a.5.5 0 0 0-1 0v4a.5.5 0 0 0 1 0v-4Zm.25 6.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"]),Alert20Regular=createFluentIcon("Alert20Regular","20",["M10 2a5.92 5.92 0 0 1 5.98 5.36l.02.22V11.4l.92 2.22a1 1 0 0 1 .06.17l.01.08.01.13a1 1 0 0 1-.75.97l-.11.02L16 15h-3.5v.17a2.5 2.5 0 0 1-5 0V15H4a1 1 0 0 1-.26-.03l-.13-.04a1 1 0 0 1-.6-1.05l.02-.13.05-.13L4 11.4V7.57A5.9 5.9 0 0 1 10 2Zm1.5 13h-3v.15a1.5 1.5 0 0 0 1.36 1.34l.14.01c.78 0 1.42-.6 1.5-1.36V15ZM10 3a4.9 4.9 0 0 0-4.98 4.38L5 7.6V11.5l-.04.2L4 14h12l-.96-2.3-.04-.2V7.61A4.9 4.9 0 0 0 10 3Z"]),ArrowClockwise16Regular=createFluentIcon("ArrowClockwise16Regular","16",["M3 8a5 5 0 0 1 9-3H9.5a.5.5 0 0 0 0 1h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-1 0v1.03A6 6 0 1 0 14 8a.5.5 0 0 0-1 0A5 5 0 0 1 3 8Z"]),ArrowClockwiseDashes20Regular=createFluentIcon("ArrowClockwiseDashes20Regular","20",["M8.13 2.22a8.02 8.02 0 0 1 3.74 0 .5.5 0 0 1-.23.97 7.02 7.02 0 0 0-3.28 0 .5.5 0 1 1-.23-.97ZM6.51 3.34a.5.5 0 0 1-.17.69 7.04 7.04 0 0 0-2.31 2.31.5.5 0 0 1-.85-.52 8.04 8.04 0 0 1 2.64-2.64.5.5 0 0 1 .69.16Zm7.67-.16a.5.5 0 1 0-.52.85c.82.5 1.53 1.18 2.09 1.97H12.5a.5.5 0 0 0 0 1h4a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-1 0v2.2a8.04 8.04 0 0 0-1.82-1.52ZM2.82 7.76a.5.5 0 0 1 .37.6 7.02 7.02 0 0 0 0 3.28.5.5 0 0 1-.97.23 8.02 8.02 0 0 1 0-3.74.5.5 0 0 1 .6-.37ZM18 10v-.5a.5.5 0 0 0-1 0v.5c0 .56-.07 1.11-.2 1.64a.5.5 0 1 0 .98.23c.14-.6.22-1.23.22-1.87ZM3.34 13.5a.5.5 0 0 1 .69.16 7.04 7.04 0 0 0 2.31 2.31.5.5 0 1 1-.52.85 8.04 8.04 0 0 1-2.64-2.64.5.5 0 0 1 .16-.69Zm13.48.68a.5.5 0 0 0-.85-.52 7.04 7.04 0 0 1-2.31 2.31.5.5 0 0 0 .52.85 8.04 8.04 0 0 0 2.64-2.64Zm-9.06 3a.5.5 0 0 1 .6-.37 7.02 7.02 0 0 0 3.28 0 .5.5 0 1 1 .23.97 8.02 8.02 0 0 1-3.74 0 .5.5 0 0 1-.37-.6Z"]),ArrowUpload24Regular=createFluentIcon("ArrowUpload24Regular","24",["M18.25 3.51a.75.75 0 1 0 0-1.5h-13a.75.75 0 1 0 0 1.5h13ZM11.65 22h.1c.38 0 .7-.28.74-.64l.01-.1V7.56l3.72 3.72c.27.27.68.29.98.07l.08-.07a.75.75 0 0 0 .07-.98l-.07-.08-5-5a.75.75 0 0 0-.97-.07l-.09.07-5 5a.75.75 0 0 0 .98 1.13l.08-.07L11 7.58v13.67c0 .38.28.7.65.75Z"]),Attach16Regular=createFluentIcon("Attach16Regular","16",["M2.28 7.97a.5.5 0 0 0 .86.36l4.6-4.6A2.5 2.5 0 0 1 12 5.5a2.5 2.5 0 0 1-.73 1.77l-5.3 5.3a1 1 0 0 1-1.71-.7 1 1 0 0 1 .3-.71l5.3-5.3a.5.5 0 0 0-.7-.7l-5.32 5.29a2 2 0 1 0 2.83 2.83l5.3-5.3A3.49 3.49 0 0 0 9.5 2c-.9 0-1.8.34-2.48 1.02l-4.6 4.6a.5.5 0 0 0-.14.35Z"]),Checkmark12Filled=createFluentIcon("Checkmark12Filled","12",["M9.76 3.2c.3.29.32.76.04 1.06l-4.25 4.5a.75.75 0 0 1-1.08.02L2.22 6.53a.75.75 0 0 1 1.06-1.06l1.7 1.7L8.7 3.24a.75.75 0 0 1 1.06-.04Z"]),CheckmarkCircle20Regular=createFluentIcon("CheckmarkCircle20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm3.36 4.65c.17.17.2.44.06.63l-.06.07-4 4a.5.5 0 0 1-.64.07l-.07-.06-2-2a.5.5 0 0 1 .63-.77l.07.06L9 11.3l3.65-3.65c.2-.2.51-.2.7 0Z"]),ChevronDown16Filled=createFluentIcon("ChevronDown16Filled","16",["M3.2 5.74a.75.75 0 0 1 1.06-.04L8 9.23l3.74-3.53a.75.75 0 1 1 1.02 1.1l-4.25 4a.75.75 0 0 1-1.02 0l-4.25-4a.75.75 0 0 1-.04-1.06Z"]),ChevronLeft16Regular=createFluentIcon("ChevronLeft16Regular","16",["M10.35 3.15c.2.2.2.5 0 .7L6.21 8l4.14 4.15a.5.5 0 0 1-.7.7l-4.5-4.5a.5.5 0 0 1 0-.7l4.5-4.5c.2-.2.5-.2.7 0Z"]),ChevronRight16Filled=createFluentIcon("ChevronRight16Filled","16",["M5.74 3.2a.75.75 0 0 0-.04 1.06L9.23 8 5.7 11.74a.75.75 0 1 0 1.1 1.02l4-4.25a.75.75 0 0 0 0-1.02l-4-4.25a.75.75 0 0 0-1.06-.04Z"]),ChevronRight16Regular=createFluentIcon("ChevronRight16Regular","16",["M5.65 3.15a.5.5 0 0 0 0 .7L9.79 8l-4.14 4.15a.5.5 0 0 0 .7.7l4.5-4.5a.5.5 0 0 0 0-.7l-4.5-4.5a.5.5 0 0 0-.7 0Z"]),Clock20Regular=createFluentIcon("Clock20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-.5 2a.5.5 0 0 1 .5.41V10h2.5a.5.5 0 0 1 .09 1H9.5a.5.5 0 0 1-.5-.41V5.5c0-.28.22-.5.5-.5Z"]),Copy20Regular=createFluentIcon("Copy20Regular","20",["M8 2a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h6a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8ZM7 4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1V4ZM4 6a2 2 0 0 1 1-1.73V14.5A2.5 2.5 0 0 0 7.5 17h6.23A2 2 0 0 1 12 18H7.5A3.5 3.5 0 0 1 4 14.5V6Z"]),CopyArrowRight20Regular=createFluentIcon("CopyArrowRight20Regular","20",["M8 2a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h1.2c-.08-.32-.15-.66-.18-1H8a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v5.02c.34.03.68.1 1 .19V4a2 2 0 0 0-2-2H8Zm-.5 15h2.1c.18.36.4.7.66 1H7.5A3.5 3.5 0 0 1 4 14.5V6a2 2 0 0 1 1-1.73V14.5A2.5 2.5 0 0 0 7.5 17Zm7-7a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9Zm2.35 4.85a.5.5 0 0 0 .15-.35.5.5 0 0 0-.15-.35l-2-2a.5.5 0 0 0-.7.7L15.29 14H12.5a.5.5 0 0 0 0 1h2.8l-1.15 1.15a.5.5 0 0 0 .7.7l2-2Z"]),Dismiss20Regular=createFluentIcon("Dismiss20Regular","20",["m4.09 4.22.06-.07a.5.5 0 0 1 .63-.06l.07.06L10 9.29l5.15-5.14a.5.5 0 0 1 .63-.06l.07.06c.18.17.2.44.06.63l-.06.07L10.71 10l5.14 5.15c.18.17.2.44.06.63l-.06.07a.5.5 0 0 1-.63.06l-.07-.06L10 10.71l-5.15 5.14a.5.5 0 0 1-.63.06l-.07-.06a.5.5 0 0 1-.06-.63l.06-.07L9.29 10 4.15 4.85a.5.5 0 0 1-.06-.63l.06-.07-.06.07Z"]),Dismiss24Regular=createFluentIcon("Dismiss24Regular","24",["m4.4 4.55.07-.08a.75.75 0 0 1 .98-.07l.08.07L12 10.94l6.47-6.47a.75.75 0 1 1 1.06 1.06L13.06 12l6.47 6.47c.27.27.3.68.07.98l-.07.08a.75.75 0 0 1-.98.07l-.08-.07L12 13.06l-6.47 6.47a.75.75 0 0 1-1.06-1.06L10.94 12 4.47 5.53a.75.75 0 0 1-.07-.98l.07-.08-.07.08Z"]),DismissCircle20Regular=createFluentIcon("DismissCircle20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14ZM7.8 7.11l.08.06L10 9.3l2.12-2.12a.5.5 0 0 1 .64-.06l.07.06c.17.18.2.44.06.64l-.06.07L10.7 10l2.12 2.12c.17.17.2.44.06.64l-.06.07a.5.5 0 0 1-.64.06l-.07-.06L10 10.7l-2.12 2.12a.5.5 0 0 1-.64.06l-.07-.06a.5.5 0 0 1-.06-.64l.06-.07L9.3 10 7.17 7.88a.5.5 0 0 1-.06-.64l.06-.07a.5.5 0 0 1 .64-.06Z"]),Document16Regular=createFluentIcon("Document16Regular","16",["M5 1a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h6a2 2 0 0 0 2-2V5.41c0-.4-.16-.78-.44-1.06L9.65 1.44A1.5 1.5 0 0 0 8.59 1H5ZM4 3a1 1 0 0 1 1-1h3v2.5C8 5.33 8.67 6 9.5 6H12v7a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3Zm7.8 2H9.5a.5.5 0 0 1-.5-.5V2.2L11.8 5Z"]),ErrorCircle16Filled=createFluentIcon("ErrorCircle16Filled","16",["M8 2a6 6 0 1 1 0 12A6 6 0 0 1 8 2Zm0 8a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0-5.5a.5.5 0 0 0-.5.41V8.59a.5.5 0 0 0 1 0V4.91A.5.5 0 0 0 8 4.5Z"]),ErrorCircle20Regular=createFluentIcon("ErrorCircle20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm0 9.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5ZM10 6a.5.5 0 0 1 .5.41V11a.5.5 0 0 1-1 .09V6.5c0-.28.22-.5.5-.5Z"]),GanttChart20Regular=createFluentIcon("GanttChart20Regular","20",["M4.5 7a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1h-4ZM9 9.5c0-.28.22-.5.5-.5h4a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5Zm3.5 1.5a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3Zm-8-7A2.5 2.5 0 0 0 2 6.5v7A2.5 2.5 0 0 0 4.5 16h11a2.5 2.5 0 0 0 2.5-2.5v-7A2.5 2.5 0 0 0 15.5 4h-11ZM3 6.5C3 5.67 3.67 5 4.5 5H7v1h1V5h4v3h1V5h2.5c.83 0 1.5.67 1.5 1.5v7c0 .83-.67 1.5-1.5 1.5H13v-2h-1v2H8V9H7v6H4.5A1.5 1.5 0 0 1 3 13.5v-7Z"]),NumberCircle020Regular=createFluentIcon("NumberCircle020Regular","20",["M17 10a7 7 0 1 1-14 0 7 7 0 0 1 14 0Zm-7 8a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm-2-8c0-1.07.15-1.97.49-2.6.16-.3.36-.51.6-.66.23-.15.52-.24.91-.24s.68.1.92.24c.23.15.43.37.6.67.33.62.48 1.52.48 2.59 0 1.07-.15 1.97-.49 2.6-.16.3-.36.51-.6.66-.23.15-.52.24-.91.24s-.68-.1-.92-.24a1.74 1.74 0 0 1-.6-.67A5.65 5.65 0 0 1 8 10Zm2-4.5c-.55 0-1.04.13-1.45.4-.4.25-.72.61-.94 1.03A6.6 6.6 0 0 0 7 10c0 1.14.16 2.23.6 3.07.23.42.54.78.95 1.04.41.26.9.39 1.45.39.55 0 1.04-.13 1.45-.4.4-.25.72-.61.94-1.03.45-.84.61-1.93.61-3.07a6.6 6.6 0 0 0-.6-3.07 2.74 2.74 0 0 0-.95-1.04c-.41-.26-.9-.39-1.45-.39Z"]),Person20Regular=createFluentIcon("Person20Regular","20",["M10 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8ZM7 6a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm-2 5a2 2 0 0 0-2 2c0 1.7.83 2.97 2.13 3.8A9.14 9.14 0 0 0 10 18c1.85 0 3.58-.39 4.87-1.2A4.35 4.35 0 0 0 17 13a2 2 0 0 0-2-2H5Zm-1 2a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1c0 1.3-.62 2.28-1.67 2.95A8.16 8.16 0 0 1 10 17a8.16 8.16 0 0 1-4.33-1.05A3.36 3.36 0 0 1 4 13Z"]),QuestionCircle20Regular=createFluentIcon("QuestionCircle20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm0 10.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5Zm0-8a2.5 2.5 0 0 1 1.65 4.38l-.15.12-.22.17-.09.07-.16.15c-.33.36-.53.85-.53 1.61a.5.5 0 0 1-1 0 3.2 3.2 0 0 1 1.16-2.62l.25-.19.12-.1A1.5 1.5 0 0 0 10 6.5c-.83 0-1.5.67-1.5 1.5a.5.5 0 0 1-1 0A2.5 2.5 0 0 1 10 5.5Z"]),SendCopy20Regular=createFluentIcon("SendCopy20Regular","20",["M8.65 2.15c.2-.2.5-.2.7 0l3 3a.5.5 0 0 1-.7.7L9.5 3.71v7.79a.5.5 0 0 1-1 0V3.7L6.35 5.86a.5.5 0 1 1-.7-.7l3-3ZM5.27 17c.34.6.99 1 1.73 1h6a4 4 0 0 0 4-4v-3.5a.5.5 0 1 0-1 0V14a3 3 0 0 1-3 3H5.27ZM4 8.5a.5.5 0 0 0-1 0V14c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-1 0V14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8.5Z"]),ShieldCheckmark24Regular=createFluentIcon("ShieldCheckmark24Regular","24",["M3 5.75c0-.41.34-.75.75-.75 2.66 0 5.26-.94 7.8-2.85.27-.2.63-.2.9 0C14.99 4.05 17.59 5 20.25 5c.41 0 .75.34.75.75V11c0 .34-.01.67-.04 1a6.47 6.47 0 0 0-1.46-.69V6.48a14.36 14.36 0 0 1-7.5-2.8 14.36 14.36 0 0 1-7.5 2.8V11c0 4.15 2.33 7.22 7.13 9.28.26.56.6 1.07 1 1.52l-.36.15a.75.75 0 0 1-.54 0C5.96 19.68 3 16 3 11V5.75ZM23 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0Zm-2.15-2.35a.5.5 0 0 0-.7 0l-3.65 3.64-1.65-1.64a.5.5 0 0 0-.7.7l2 2c.2.2.5.2.7 0l4-4a.5.5 0 0 0 0-.7Z"]),TextBulletListSquareWarning24Regular=createFluentIcon("TextBulletListSquareWarning24Regular","24",["M7.75 9.25a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm3.5-1.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5h-5.5Zm0 3.75a.75.75 0 1 0 0 1.5h3.83l.19-.37c.26-.53.67-.9 1.13-1.13h-5.15Zm0 3.75h2.7l-.74 1.5h-1.96a.75.75 0 1 1 0-1.5Zm-5 4.5h5.46l-.44.88c-.1.2-.17.41-.22.62h-4.8A3.25 3.25 0 0 1 3 17.75V6.25C3 4.45 4.46 3 6.25 3h11.5C19.55 3 21 4.46 21 6.25v8.65l-1.26-2.52a2.6 2.6 0 0 0-.24-.39V6.25c0-.97-.78-1.75-1.75-1.75H6.25c-.97 0-1.75.78-1.75 1.75v11.5c0 .97.78 1.75 1.75 1.75Zm2.5-7.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm-1 4.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm8.41-3.92a1.5 1.5 0 0 1 2.69 0l4 8c.5 1-.23 2.17-1.35 2.17h-8a1.5 1.5 0 0 1-1.34-2.17l4-8ZM18 15.5a.5.5 0 0 0-1 0v3a.5.5 0 0 0 1 0v-3Zm-.5 5.5a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z"]),TextWrap16Regular=createFluentIcon("TextWrap16Regular","16",["M2 3.5c0-.28.22-.5.5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5Zm0 4c0-.28.22-.5.5-.5h10a2.5 2.5 0 0 1 0 5H9.7l.65.65a.5.5 0 0 1-.7.7l-1.5-1.5a.5.5 0 0 1 0-.7l1.5-1.5a.5.5 0 0 1 .7.7l-.64.65h2.79a1.5 1.5 0 0 0 0-3h-10a.5.5 0 0 1-.5-.5ZM6 11a.5.5 0 0 1 0 1H2.5a.5.5 0 0 1 0-1H6Z"]),TextWrapOff16Regular=createFluentIcon("TextWrapOff16Regular","16",["M14.15 14.85 11.29 12H9.71l.64.65a.5.5 0 0 1-.7.7l-1.5-1.5a.5.5 0 0 1 0-.7L9.29 10l-2-2H2.5a.5.5 0 0 1 0-1h3.8l-3-3h-.8a.5.5 0 0 1-.18-.97L1.15 1.85a.5.5 0 1 1 .7-.7l13 13a.5.5 0 0 1-.7.7ZM10.12 8l-1-1h3.38a2.5 2.5 0 0 1 1.27 4.65l-.74-.74A1.5 1.5 0 0 0 12.5 8h-2.38Zm-4-4-1-1h8.38a.5.5 0 0 1 0 1H6.12ZM6 11a.5.5 0 0 1 0 1H2.5a.5.5 0 0 1 0-1H6Z"]),ZoomIn20Regular=createFluentIcon("ZoomIn20Regular","20",["M11.5 8.5A.5.5 0 0 0 11 8H9V6a.5.5 0 0 0-1 0v2H6a.5.5 0 0 0 0 1h2v2a.5.5 0 0 0 1 0V9h2a.5.5 0 0 0 .5-.5ZM8.5 3a5.5 5.5 0 0 1 4.23 9.02l4.12 4.13a.5.5 0 0 1-.63.76l-.07-.06-4.13-4.12A5.5 5.5 0 1 1 8.5 3Zm0 1a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9Z"]),renderFluentProvider_unstable=(j,_e)=>jsx$1(Provider,{value:_e.provider,children:jsx$1(ThemeProvider,{value:_e.theme,children:jsx$1(ThemeClassNameProvider,{value:_e.themeClassName,children:jsx$1(CustomStyleHooksProvider,{value:_e.customStyleHooks_unstable,children:jsx$1(TooltipVisibilityProvider,{value:_e.tooltip,children:jsx$1(TextDirectionProvider,{dir:_e.textDirection,children:jsx$1(IconDirectionContextProvider,{value:_e.iconDirection,children:jsx$1(OverridesProvider,{value:_e.overrides_unstable,children:jsxs(j.root,{children:[canUseDOM$3()?null:jsx$1("style",{dangerouslySetInnerHTML:{__html:j.serverStyleProps.cssRule},...j.serverStyleProps.attributes}),j.root.children]})})})})})})})})});/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */const _canUseWeakRef=typeof WeakRef<"u";class WeakRefInstance{constructor(_e){_canUseWeakRef&&typeof _e=="object"?this._weakRef=new WeakRef(_e):this._instance=_e}deref(){var _e,et,tt;let rt;return this._weakRef?(rt=(_e=this._weakRef)===null||_e===void 0?void 0:_e.deref(),rt||delete this._weakRef):(rt=this._instance,!((tt=(et=rt)===null||et===void 0?void 0:et.isDisposed)===null||tt===void 0)&&tt.call(et)&&delete this._instance),rt}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */const KEYBORG_FOCUSIN="keyborg:focusin";function canOverrideNativeFocus(j){const _e=j.HTMLElement,et=_e.prototype.focus;let tt=!1;return _e.prototype.focus=function(){tt=!0},j.document.createElement("button").focus(),_e.prototype.focus=et,tt}let _canOverrideNativeFocus=!1;function nativeFocus(j){const _e=j.focus;_e.__keyborgNativeFocus?_e.__keyborgNativeFocus.call(j):j.focus()}function setupFocusEvent(j){const _e=j;_canOverrideNativeFocus||(_canOverrideNativeFocus=canOverrideNativeFocus(_e));const et=_e.HTMLElement.prototype.focus;if(et.__keyborgNativeFocus)return;_e.HTMLElement.prototype.focus=ot;const tt=it=>{const st=it.relatedTarget,lt=it.currentTarget;lt.contains(st)||(lt.removeEventListener("focusin",rt),lt.removeEventListener("focusout",tt))},rt=it=>{var st;let lt=it.target;if(!lt)return;lt.shadowRoot&&(lt.shadowRoot.addEventListener("focusin",rt),lt.shadowRoot.addEventListener("focusout",tt),lt=it.composedPath()[0]);const ut={relatedTarget:it.relatedTarget||void 0},ct=new CustomEvent(KEYBORG_FOCUSIN,{cancelable:!0,bubbles:!0,composed:!0,detail:ut});ct.details=ut,(_canOverrideNativeFocus||nt.lastFocusedProgrammatically)&&(ut.isFocusedProgrammatically=lt===((st=nt.lastFocusedProgrammatically)===null||st===void 0?void 0:st.deref()),nt.lastFocusedProgrammatically=void 0),lt.dispatchEvent(ct)},nt=_e.__keyborgData={focusInHandler:rt};_e.document.addEventListener("focusin",_e.__keyborgData.focusInHandler,!0);function ot(){const it=_e.__keyborgData;return it&&(it.lastFocusedProgrammatically=new WeakRefInstance(this)),et.apply(this,arguments)}ot.__keyborgNativeFocus=et}function disposeFocusEvent(j){const _e=j,et=_e.HTMLElement.prototype,tt=et.focus.__keyborgNativeFocus,rt=_e.__keyborgData;rt&&(_e.document.removeEventListener("focusin",rt.focusInHandler,!0),delete _e.__keyborgData),tt&&(et.focus=tt)}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */const _dismissTimeout=500;let _lastId=0;class KeyborgState{constructor(){this.__keyborgCoreRefs={},this._isNavigatingWithKeyboard=!1}add(_e){const et=_e.id;et in this.__keyborgCoreRefs||(this.__keyborgCoreRefs[et]=new WeakRefInstance(_e))}remove(_e){delete this.__keyborgCoreRefs[_e],Object.keys(this.__keyborgCoreRefs).length===0&&(this._isNavigatingWithKeyboard=!1)}setVal(_e){if(this._isNavigatingWithKeyboard!==_e){this._isNavigatingWithKeyboard=_e;for(const et of Object.keys(this.__keyborgCoreRefs)){const rt=this.__keyborgCoreRefs[et].deref();rt?rt.update(_e):this.remove(et)}}}getVal(){return this._isNavigatingWithKeyboard}}const _state=new KeyborgState;class KeyborgCore{constructor(_e,et){this._onFocusIn=rt=>{if(this._isMouseUsedTimer||_state.getVal())return;const nt=rt.detail;nt.relatedTarget&&(nt.isFocusedProgrammatically||nt.isFocusedProgrammatically===void 0||_state.setVal(!0))},this._onMouseDown=rt=>{if(rt.buttons===0||rt.clientX===0&&rt.clientY===0&&rt.screenX===0&&rt.screenY===0)return;const nt=this._win;nt&&(this._isMouseUsedTimer&&nt.clearTimeout(this._isMouseUsedTimer),this._isMouseUsedTimer=nt.setTimeout(()=>{delete this._isMouseUsedTimer},1e3)),_state.setVal(!1)},this._onKeyDown=rt=>{var nt,ot;const it=_state.getVal(),st=rt.keyCode,lt=this._triggerKeys;if(!it&&(!lt||lt.has(st))){const ut=(nt=this._win)===null||nt===void 0?void 0:nt.document.activeElement;if(ut&&(ut.tagName==="INPUT"||ut.tagName==="TEXTAREA"||ut.contentEditable==="true"))return;_state.setVal(!0)}else it&&(!((ot=this._dismissKeys)===null||ot===void 0)&&ot.has(st))&&this._scheduleDismiss()},this.id="c"+ ++_lastId,this._win=_e;const tt=_e.document;if(et){const rt=et.triggerKeys,nt=et.dismissKeys;rt!=null&&rt.length&&(this._triggerKeys=new Set(rt)),nt!=null&&nt.length&&(this._dismissKeys=new Set(nt))}tt.addEventListener(KEYBORG_FOCUSIN,this._onFocusIn,!0),tt.addEventListener("mousedown",this._onMouseDown,!0),_e.addEventListener("keydown",this._onKeyDown,!0),setupFocusEvent(_e),_state.add(this)}dispose(){const _e=this._win;if(_e){this._isMouseUsedTimer&&(_e.clearTimeout(this._isMouseUsedTimer),this._isMouseUsedTimer=void 0),this._dismissTimer&&(_e.clearTimeout(this._dismissTimer),this._dismissTimer=void 0),disposeFocusEvent(_e);const et=_e.document;et.removeEventListener(KEYBORG_FOCUSIN,this._onFocusIn,!0),et.removeEventListener("mousedown",this._onMouseDown,!0),_e.removeEventListener("keydown",this._onKeyDown,!0),delete this._win,_state.remove(this.id)}}isDisposed(){return!!this._win}update(_e){var et,tt;const rt=(tt=(et=this._win)===null||et===void 0?void 0:et.__keyborg)===null||tt===void 0?void 0:tt.refs;if(rt)for(const nt of Object.keys(rt))Keyborg.update(rt[nt],_e)}_scheduleDismiss(){const _e=this._win;if(_e){this._dismissTimer&&(_e.clearTimeout(this._dismissTimer),this._dismissTimer=void 0);const et=_e.document.activeElement;this._dismissTimer=_e.setTimeout(()=>{this._dismissTimer=void 0;const tt=_e.document.activeElement;et&&tt&&et===tt&&_state.setVal(!1)},_dismissTimeout)}}}class Keyborg{constructor(_e,et){this._cb=[],this._id="k"+ ++_lastId,this._win=_e;const tt=_e.__keyborg;tt?(this._core=tt.core,tt.refs[this._id]=this):(this._core=new KeyborgCore(_e,et),_e.__keyborg={core:this._core,refs:{[this._id]:this}})}static create(_e,et){return new Keyborg(_e,et)}static dispose(_e){_e.dispose()}static update(_e,et){_e._cb.forEach(tt=>tt(et))}dispose(){var _e;const et=(_e=this._win)===null||_e===void 0?void 0:_e.__keyborg;et!=null&&et.refs[this._id]&&(delete et.refs[this._id],Object.keys(et.refs).length===0&&(et.core.dispose(),delete this._win.__keyborg)),this._cb=[],delete this._core,delete this._win}isNavigatingWithKeyboard(){return _state.getVal()}subscribe(_e){this._cb.push(_e)}unsubscribe(_e){const et=this._cb.indexOf(_e);et>=0&&this._cb.splice(et,1)}setVal(_e){_state.setVal(_e)}}function createKeyborg(j,_e){return Keyborg.create(j,_e)}function disposeKeyborg(j){Keyborg.dispose(j)}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */const TabsterAttributeName="data-tabster",TabsterDummyInputAttributeName="data-tabster-dummy",DeloserEventName="tabster:deloser",ModalizerActiveEventName="tabster:modalizer:active",ModalizerInactiveEventName="tabster:modalizer:inactive",ModalizerFocusInEventName="tabster:modalizer:focusin",ModalizerFocusOutEventName="tabster:modalizer:focusout",ModalizerBeforeFocusOutEventName="tabster:modalizer:beforefocusout",MoverEventName="tabster:mover",FocusInEventName="tabster:focusin",FocusOutEventName="tabster:focusout",MoveFocusEventName="tabster:movefocus",FocusableSelector=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","*[tabindex]","*[contenteditable]"].join(", "),ObservedElementAccesibilities={Any:0,Accessible:1,Focusable:2},RestoreFocusOrders={History:0,DeloserDefault:1,RootDefault:2,DeloserFirst:3,RootFirst:4},Visibilities={Invisible:0,PartiallyVisible:1,Visible:2},RestorerTypes={Source:0,Target:1},MoverDirections={Both:0,Vertical:1,Horizontal:2,Grid:3,GridLinear:4},GroupperTabbabilities={Unlimited:0,Limited:1,LimitedTrapFocus:2},SysDummyInputsPositions={Auto:0,Inside:1,Outside:2};var Types=Object.freeze({__proto__:null,TabsterAttributeName,TabsterDummyInputAttributeName,DeloserEventName,ModalizerActiveEventName,ModalizerInactiveEventName,ModalizerFocusInEventName,ModalizerFocusOutEventName,ModalizerBeforeFocusOutEventName,MoverEventName,FocusInEventName,FocusOutEventName,MoveFocusEventName,FocusableSelector,ObservedElementAccesibilities,RestoreFocusOrders,Visibilities,RestorerTypes,MoverDirections,GroupperTabbabilities,SysDummyInputsPositions});/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */function getTabsterOnElement(j,_e){var et;return(et=j.storageEntry(_e))===null||et===void 0?void 0:et.tabster}function updateTabsterByAttribute(j,_e,et){var tt,rt;const nt=et||j._noop?void 0:_e.getAttribute(TabsterAttributeName);let ot=j.storageEntry(_e),it;if(nt)if(nt!==((tt=ot==null?void 0:ot.attr)===null||tt===void 0?void 0:tt.string))try{const ct=JSON.parse(nt);if(typeof ct!="object")throw new Error(`Value is not a JSON object, got '${nt}'.`);it={string:nt,object:ct}}catch{}else return;else if(!ot)return;ot||(ot=j.storageEntry(_e,!0)),ot.tabster||(ot.tabster={});const st=ot.tabster||{},lt=((rt=ot.attr)===null||rt===void 0?void 0:rt.object)||{},ut=(it==null?void 0:it.object)||{};for(const ct of Object.keys(lt))if(!ut[ct]){if(ct==="root"){const dt=st[ct];dt&&j.root.onRoot(dt,!0)}switch(ct){case"deloser":case"root":case"groupper":case"modalizer":case"restorer":case"mover":const dt=st[ct];dt&&(dt.dispose(),delete st[ct]);break;case"observed":delete st[ct],j.observedElement&&j.observedElement.onObservedElementUpdate(_e);break;case"focusable":case"outline":case"uncontrolled":case"sys":delete st[ct];break}}for(const ct of Object.keys(ut)){const dt=ut.sys;switch(ct){case"deloser":st.deloser?st.deloser.setProps(ut.deloser):j.deloser&&(st.deloser=j.deloser.createDeloser(_e,ut.deloser));break;case"root":st.root?st.root.setProps(ut.root):st.root=j.root.createRoot(_e,ut.root,dt),j.root.onRoot(st.root);break;case"modalizer":st.modalizer?st.modalizer.setProps(ut.modalizer):j.modalizer&&(st.modalizer=j.modalizer.createModalizer(_e,ut.modalizer,dt));break;case"restorer":st.restorer?st.restorer.setProps(ut.restorer):j.restorer&&ut.restorer&&(st.restorer=j.restorer.createRestorer(_e,ut.restorer));break;case"focusable":st.focusable=ut.focusable;break;case"groupper":st.groupper?st.groupper.setProps(ut.groupper):j.groupper&&(st.groupper=j.groupper.createGroupper(_e,ut.groupper,dt));break;case"mover":st.mover?st.mover.setProps(ut.mover):j.mover&&(st.mover=j.mover.createMover(_e,ut.mover,dt));break;case"observed":j.observedElement&&(st.observed=ut.observed,j.observedElement.onObservedElementUpdate(_e));break;case"uncontrolled":st.uncontrolled=ut.uncontrolled;break;case"outline":j.outline&&(st.outline=ut.outline);break;case"sys":st.sys=ut.sys;break;default:console.error(`Unknown key '${ct}' in data-tabster attribute value.`)}}it?ot.attr=it:(Object.keys(st).length===0&&(delete ot.tabster,delete ot.attr),j.storageEntry(_e,!1))}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */function createEventTarget(j){const _e=j();try{if(_e.EventTarget)return new _e.EventTarget}catch(et){if(!(et instanceof TypeError))throw et}return _e.document.createElement("div")}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */let _isBrokenIE11;const _DOMRect=typeof DOMRect<"u"?DOMRect:class{constructor(j,_e,et,tt){this.left=j||0,this.top=_e||0,this.right=(j||0)+(et||0),this.bottom=(_e||0)+(tt||0)}};let _uidCounter=0;try{document.createTreeWalker(document,NodeFilter.SHOW_ELEMENT),_isBrokenIE11=!1}catch{_isBrokenIE11=!0}const _updateDummyInputsTimeout=100;function getInstanceContext(j){const _e=j();let et=_e.__tabsterInstanceContext;return et||(et={elementByUId:{},basics:{Promise:_e.Promise||void 0,WeakRef:_e.WeakRef||void 0},containerBoundingRectCache:{},lastContainerBoundingRectCacheId:0,fakeWeakRefs:[],fakeWeakRefsStarted:!1},_e.__tabsterInstanceContext=et),et}function disposeInstanceContext(j){const _e=j.__tabsterInstanceContext;_e&&(_e.elementByUId={},delete _e.WeakRef,_e.containerBoundingRectCache={},_e.containerBoundingRectCacheTimer&&j.clearTimeout(_e.containerBoundingRectCacheTimer),_e.fakeWeakRefsTimer&&j.clearTimeout(_e.fakeWeakRefsTimer),_e.fakeWeakRefs=[],delete j.__tabsterInstanceContext)}function createWeakMap(j){const _e=j.__tabsterInstanceContext;return new((_e==null?void 0:_e.basics.WeakMap)||WeakMap)}function hasSubFocusable(j){return!!j.querySelector(FocusableSelector)}class FakeWeakRef{constructor(_e){this._target=_e}deref(){return this._target}static cleanup(_e,et){return _e._target?et||!documentContains(_e._target.ownerDocument,_e._target)?(delete _e._target,!0):!1:!0}}class WeakHTMLElement{constructor(_e,et,tt){const rt=getInstanceContext(_e);let nt;rt.WeakRef?nt=new rt.WeakRef(et):(nt=new FakeWeakRef(et),rt.fakeWeakRefs.push(nt)),this._ref=nt,this._data=tt}get(){const _e=this._ref;let et;return _e&&(et=_e.deref(),et||delete this._ref),et}getData(){return this._data}}function cleanupFakeWeakRefs(j,_e){const et=getInstanceContext(j);et.fakeWeakRefs=et.fakeWeakRefs.filter(tt=>!FakeWeakRef.cleanup(tt,_e))}function startFakeWeakRefsCleanup(j){const _e=getInstanceContext(j);_e.fakeWeakRefsStarted||(_e.fakeWeakRefsStarted=!0,_e.WeakRef=getWeakRef(_e)),_e.fakeWeakRefsTimer||(_e.fakeWeakRefsTimer=j().setTimeout(()=>{_e.fakeWeakRefsTimer=void 0,cleanupFakeWeakRefs(j),startFakeWeakRefsCleanup(j)},2*60*1e3))}function stopFakeWeakRefsCleanupAndClearStorage(j){const _e=getInstanceContext(j);_e.fakeWeakRefsStarted=!1,_e.fakeWeakRefsTimer&&(j().clearTimeout(_e.fakeWeakRefsTimer),_e.fakeWeakRefsTimer=void 0,_e.fakeWeakRefs=[])}function createElementTreeWalker(j,_e,et){if(_e.nodeType!==Node.ELEMENT_NODE)return;const tt=_isBrokenIE11?et:{acceptNode:et};return j.createTreeWalker(_e,NodeFilter.SHOW_ELEMENT,tt,!1)}function getBoundingRect(j,_e){let et=_e.__tabsterCacheId;const tt=getInstanceContext(j),rt=et?tt.containerBoundingRectCache[et]:void 0;if(rt)return rt.rect;const nt=_e.ownerDocument&&_e.ownerDocument.documentElement;if(!nt)return new _DOMRect;let ot=0,it=0,st=nt.clientWidth,lt=nt.clientHeight;if(_e!==nt){const ct=_e.getBoundingClientRect();ot=Math.max(ot,ct.left),it=Math.max(it,ct.top),st=Math.min(st,ct.right),lt=Math.min(lt,ct.bottom)}const ut=new _DOMRect(ot{tt.containerBoundingRectCacheTimer=void 0;for(const ct of Object.keys(tt.containerBoundingRectCache))delete tt.containerBoundingRectCache[ct].element.__tabsterCacheId;tt.containerBoundingRectCache={}},50)),ut}function isElementVerticallyVisibleInContainer(j,_e,et){const tt=getScrollableContainer(_e);if(!tt)return!1;const rt=getBoundingRect(j,tt),nt=_e.getBoundingClientRect(),ot=nt.height*(1-et),it=Math.max(0,rt.top-nt.top),st=Math.max(0,nt.bottom-rt.bottom),lt=it+st;return lt===0||lt<=ot}function scrollIntoView$2(j,_e,et){const tt=getScrollableContainer(_e);if(tt){const rt=getBoundingRect(j,tt),nt=_e.getBoundingClientRect();et?tt.scrollTop+=nt.top-rt.top:tt.scrollTop+=nt.bottom-rt.bottom}}function getScrollableContainer(j){const _e=j.ownerDocument;if(_e){for(let et=j.parentElement;et;et=et.parentElement)if(et.scrollWidth>et.clientWidth||et.scrollHeight>et.clientHeight)return et;return _e.documentElement}return null}function makeFocusIgnored(j){j.__shouldIgnoreFocus=!0}function shouldIgnoreFocus(j){return!!j.__shouldIgnoreFocus}function getUId(j){const _e=new Uint32Array(4);if(j.crypto&&j.crypto.getRandomValues)j.crypto.getRandomValues(_e);else if(j.msCrypto&&j.msCrypto.getRandomValues)j.msCrypto.getRandomValues(_e);else for(let tt=0;tt<_e.length;tt++)_e[tt]=4294967295*Math.random();const et=[];for(let tt=0;tt<_e.length;tt++)et.push(_e[tt].toString(36));return et.push("|"),et.push((++_uidCounter).toString(36)),et.push("|"),et.push(Date.now().toString(36)),et.join("")}function getElementUId(j,_e){const et=getInstanceContext(j);let tt=_e.__tabsterElementUID;return tt||(tt=_e.__tabsterElementUID=getUId(j())),!et.elementByUId[tt]&&documentContains(_e.ownerDocument,_e)&&(et.elementByUId[tt]=new WeakHTMLElement(j,_e)),tt}function clearElementCache(j,_e){const et=getInstanceContext(j);for(const tt of Object.keys(et.elementByUId)){const rt=et.elementByUId[tt],nt=rt&&rt.get();nt&&_e&&!_e.contains(nt)||delete et.elementByUId[tt]}}function documentContains(j,_e){var et;return!!(!((et=j==null?void 0:j.body)===null||et===void 0)&&et.contains(_e))}function matchesSelector(j,_e){const et=j.matches||j.matchesSelector||j.msMatchesSelector||j.webkitMatchesSelector;return et&&et.call(j,_e)}function getPromise(j){const _e=getInstanceContext(j);if(_e.basics.Promise)return _e.basics.Promise;throw new Error("No Promise defined.")}function getWeakRef(j){return j.basics.WeakRef}let _lastTabsterPartId=0;class TabsterPart{constructor(_e,et,tt){const rt=_e.getWindow;this._tabster=_e,this._element=new WeakHTMLElement(rt,et),this._props={...tt},this.id="i"+ ++_lastTabsterPartId}getElement(){return this._element.get()}getProps(){return this._props}setProps(_e){this._props={..._e}}}class DummyInput{constructor(_e,et,tt,rt,nt){var ot;this._focusIn=ut=>{if(this._fixedTarget){const dt=this._fixedTarget.get();dt&&nativeFocus(dt);return}const ct=this.input;if(this.onFocusIn&&ct){const dt=ut.relatedTarget;this.onFocusIn(this,this._isBackward(!0,ct,dt),dt)}},this._focusOut=ut=>{if(this._fixedTarget)return;this.useDefaultAction=!1;const ct=this.input;if(this.onFocusOut&&ct){const dt=ut.relatedTarget;this.onFocusOut(this,this._isBackward(!1,ct,dt),dt)}};const it=_e(),st=it.document.createElement("i");st.tabIndex=0,st.setAttribute("role","none"),st.setAttribute(TabsterDummyInputAttributeName,""),st.setAttribute("aria-hidden","true");const lt=st.style;lt.position="fixed",lt.width=lt.height="1px",lt.opacity="0.001",lt.zIndex="-1",lt.setProperty("content-visibility","hidden"),makeFocusIgnored(st),this.input=st,this.isFirst=tt.isFirst,this.isOutside=et,this._isPhantom=(ot=tt.isPhantom)!==null&&ot!==void 0?ot:!1,this._fixedTarget=nt,st.addEventListener("focusin",this._focusIn),st.addEventListener("focusout",this._focusOut),st.__tabsterDummyContainer=rt,this._isPhantom&&(this._disposeTimer=it.setTimeout(()=>{delete this._disposeTimer,this.dispose()},0),this._clearDisposeTimeout=()=>{this._disposeTimer&&(it.clearTimeout(this._disposeTimer),delete this._disposeTimer),delete this._clearDisposeTimeout})}dispose(){var _e;this._clearDisposeTimeout&&this._clearDisposeTimeout();const et=this.input;et&&(delete this._fixedTarget,delete this.onFocusIn,delete this.onFocusOut,delete this.input,et.removeEventListener("focusin",this._focusIn),et.removeEventListener("focusout",this._focusOut),delete et.__tabsterDummyContainer,(_e=et.parentElement)===null||_e===void 0||_e.removeChild(et))}setTopLeft(_e,et){var tt;const rt=(tt=this.input)===null||tt===void 0?void 0:tt.style;rt&&(rt.top=`${_e}px`,rt.left=`${et}px`)}_isBackward(_e,et,tt){return _e&&!tt?!this.isFirst:!!(tt&&et.compareDocumentPosition(tt)&Node.DOCUMENT_POSITION_FOLLOWING)}}const DummyInputManagerPriorities={Root:1,Modalizer:2,Mover:3,Groupper:4};class DummyInputManager{constructor(_e,et,tt,rt,nt,ot){this._element=et,this._instance=new DummyInputManagerCore(_e,et,this,tt,rt,nt,ot)}_setHandlers(_e,et){this._onFocusIn=_e,this._onFocusOut=et}moveOut(_e){var et;(et=this._instance)===null||et===void 0||et.moveOut(_e)}moveOutWithDefaultAction(_e,et){var tt;(tt=this._instance)===null||tt===void 0||tt.moveOutWithDefaultAction(_e,et)}getHandler(_e){return _e?this._onFocusIn:this._onFocusOut}setTabbable(_e){var et;(et=this._instance)===null||et===void 0||et.setTabbable(this,_e)}dispose(){this._instance&&(this._instance.dispose(this),delete this._instance),delete this._onFocusIn,delete this._onFocusOut}static moveWithPhantomDummy(_e,et,tt,rt,nt){var ot;const st=new DummyInput(_e.getWindow,!0,{isPhantom:!0,isFirst:!0}).input;if(st){let lt,ut;if(et.tagName==="BODY")lt=et,ut=tt&&rt||!tt&&!rt?et.firstElementChild:null;else{tt&&(!rt||rt&&!_e.focusable.isFocusable(et,!1,!0,!0))?(lt=et,ut=rt?et.firstElementChild:null):(lt=et.parentElement,ut=tt&&rt||!tt&&!rt?et:et.nextElementSibling);let ct,dt;do ct=tt&&rt||!tt&&!rt?ut==null?void 0:ut.previousElementSibling:ut,dt=(ot=ct==null?void 0:ct.__tabsterDummyContainer)===null||ot===void 0?void 0:ot.get(),dt===et?ut=tt&&rt||!tt&&!rt?ct:ct==null?void 0:ct.nextElementSibling:dt=void 0;while(dt)}lt&&triggerMoveFocusEvent({by:"root",owner:lt,next:null,relatedEvent:nt})&&(lt.insertBefore(st,ut),nativeFocus(st))}}static addPhantomDummyWithTarget(_e,et,tt,rt){const ot=new DummyInput(_e.getWindow,!0,{isPhantom:!0,isFirst:!0},void 0,new WeakHTMLElement(_e.getWindow,rt)).input;if(ot){let it,st;hasSubFocusable(et)&&!tt?(it=et,st=et.firstElementChild):(it=et.parentElement,st=tt?et:et.nextElementSibling),it==null||it.insertBefore(ot,st)}}}class DummyInputObserver{constructor(_e){this._updateQueue=new Set,this._lastUpdateQueueTime=0,this._changedParents=new WeakSet,this._dummyElements=[],this._dummyCallbacks=new WeakMap,this._domChanged=et=>{var tt;this._changedParents.has(et)||(this._changedParents.add(et),!this._updateDummyInputsTimer&&(this._updateDummyInputsTimer=(tt=this._win)===null||tt===void 0?void 0:tt.call(this).setTimeout(()=>{delete this._updateDummyInputsTimer;for(const rt of this._dummyElements){const nt=rt.get();if(nt){const ot=this._dummyCallbacks.get(nt);if(ot){const it=nt.parentElement;(!it||this._changedParents.has(it))&&ot()}}}this._changedParents=new WeakSet},_updateDummyInputsTimeout)))},this._win=_e}add(_e,et){!this._dummyCallbacks.has(_e)&&this._win&&(this._dummyElements.push(new WeakHTMLElement(this._win,_e)),this._dummyCallbacks.set(_e,et),this.domChanged=this._domChanged)}remove(_e){this._dummyElements=this._dummyElements.filter(et=>{const tt=et.get();return tt&&tt!==_e}),this._dummyCallbacks.delete(_e),this._dummyElements.length===0&&delete this.domChanged}dispose(){var _e;const et=(_e=this._win)===null||_e===void 0?void 0:_e.call(this);this._updateTimer&&(et==null||et.clearTimeout(this._updateTimer),delete this._updateTimer),this._updateDummyInputsTimer&&(et==null||et.clearTimeout(this._updateDummyInputsTimer),delete this._updateDummyInputsTimer),this._changedParents=new WeakSet,this._dummyCallbacks=new WeakMap,this._dummyElements=[],this._updateQueue.clear(),delete this.domChanged,delete this._win}updatePositions(_e){this._win&&(this._updateQueue.add(_e),this._lastUpdateQueueTime=Date.now(),this._scheduledUpdatePositions())}_scheduledUpdatePositions(){var _e;this._updateTimer||(this._updateTimer=(_e=this._win)===null||_e===void 0?void 0:_e.call(this).setTimeout(()=>{if(delete this._updateTimer,this._lastUpdateQueueTime+_updateDummyInputsTimeout<=Date.now()){const et=new Map,tt=[];for(const rt of this._updateQueue)tt.push(rt(et));this._updateQueue.clear();for(const rt of tt)rt();et.clear()}else this._scheduledUpdatePositions()},_updateDummyInputsTimeout))}}class DummyInputManagerCore{constructor(_e,et,tt,rt,nt,ot,it){this._wrappers=[],this._isOutside=!1,this._transformElements=new Set,this._onFocusIn=(ft,pt,gt)=>{this._onFocus(!0,ft,pt,gt)},this._onFocusOut=(ft,pt,gt)=>{this._onFocus(!1,ft,pt,gt)},this.moveOut=ft=>{var pt;const gt=this._firstDummy,vt=this._lastDummy;if(gt&&vt){this._ensurePosition();const bt=gt.input,_t=vt.input,xt=(pt=this._element)===null||pt===void 0?void 0:pt.get();if(bt&&_t&&xt){let yt;ft?(bt.tabIndex=0,yt=bt):(_t.tabIndex=0,yt=_t),yt&&nativeFocus(yt)}}},this.moveOutWithDefaultAction=(ft,pt)=>{var gt;const vt=this._firstDummy,bt=this._lastDummy;if(vt&&bt){this._ensurePosition();const _t=vt.input,xt=bt.input,yt=(gt=this._element)===null||gt===void 0?void 0:gt.get();if(_t&&xt&&yt){let Et;ft?!vt.isOutside&&this._tabster.focusable.isFocusable(yt,!0,!0,!0)?Et=yt:(vt.useDefaultAction=!0,_t.tabIndex=0,Et=_t):(bt.useDefaultAction=!0,xt.tabIndex=0,Et=xt),Et&&triggerMoveFocusEvent({by:"root",owner:yt,next:null,relatedEvent:pt})&&nativeFocus(Et)}}},this.setTabbable=(ft,pt)=>{var gt,vt;for(const _t of this._wrappers)if(_t.manager===ft){_t.tabbable=pt;break}const bt=this._getCurrent();if(bt){const _t=bt.tabbable?0:-1;let xt=(gt=this._firstDummy)===null||gt===void 0?void 0:gt.input;xt&&(xt.tabIndex=_t),xt=(vt=this._lastDummy)===null||vt===void 0?void 0:vt.input,xt&&(xt.tabIndex=_t)}},this._addDummyInputs=()=>{this._addTimer||(this._addTimer=this._getWindow().setTimeout(()=>{delete this._addTimer,this._ensurePosition(),this._addTransformOffsets()},0))},this._addTransformOffsets=()=>{this._tabster._dummyObserver.updatePositions(this._computeTransformOffsets)},this._computeTransformOffsets=ft=>{var pt,gt;const vt=((pt=this._firstDummy)===null||pt===void 0?void 0:pt.input)||((gt=this._lastDummy)===null||gt===void 0?void 0:gt.input),bt=this._transformElements,_t=new Set;let xt=0,yt=0;const Et=this._getWindow();for(let St=vt;St&&St.nodeType===Node.ELEMENT_NODE;St=St.parentElement){let $t=ft.get(St);if($t===void 0){const At=Et.getComputedStyle(St).transform;At&&At!=="none"&&($t={scrollTop:St.scrollTop,scrollLeft:St.scrollLeft}),ft.set(St,$t||null)}$t&&(_t.add(St),bt.has(St)||St.addEventListener("scroll",this._addTransformOffsets),xt+=$t.scrollTop,yt+=$t.scrollLeft)}for(const St of bt)_t.has(St)||St.removeEventListener("scroll",this._addTransformOffsets);return this._transformElements=_t,()=>{var St,$t;(St=this._firstDummy)===null||St===void 0||St.setTopLeft(xt,yt),($t=this._lastDummy)===null||$t===void 0||$t.setTopLeft(xt,yt)}};const st=et.get();if(!st)throw new Error("No element");this._tabster=_e,this._getWindow=_e.getWindow,this._callForDefaultAction=it;const lt=st.__tabsterDummy;if((lt||this)._wrappers.push({manager:tt,priority:rt,tabbable:!0}),lt)return lt;st.__tabsterDummy=this;const ut=nt==null?void 0:nt.dummyInputsPosition,ct=st.tagName;this._isOutside=ut?ut===SysDummyInputsPositions.Outside:(ot||ct==="UL"||ct==="OL"||ct==="TABLE")&&!(ct==="LI"||ct==="TD"||ct==="TH"),this._firstDummy=new DummyInput(this._getWindow,this._isOutside,{isFirst:!0},et),this._lastDummy=new DummyInput(this._getWindow,this._isOutside,{isFirst:!1},et);const dt=this._firstDummy.input;dt&&_e._dummyObserver.add(dt,this._addDummyInputs),this._firstDummy.onFocusIn=this._onFocusIn,this._firstDummy.onFocusOut=this._onFocusOut,this._lastDummy.onFocusIn=this._onFocusIn,this._lastDummy.onFocusOut=this._onFocusOut,this._element=et,this._addDummyInputs()}dispose(_e,et){var tt,rt,nt,ot;if((this._wrappers=this._wrappers.filter(st=>st.manager!==_e&&!et)).length===0){delete((tt=this._element)===null||tt===void 0?void 0:tt.get()).__tabsterDummy;for(const ut of this._transformElements)ut.removeEventListener("scroll",this._addTransformOffsets);this._transformElements.clear();const st=this._getWindow();this._addTimer&&(st.clearTimeout(this._addTimer),delete this._addTimer);const lt=(rt=this._firstDummy)===null||rt===void 0?void 0:rt.input;lt&&this._tabster._dummyObserver.remove(lt),(nt=this._firstDummy)===null||nt===void 0||nt.dispose(),(ot=this._lastDummy)===null||ot===void 0||ot.dispose()}}_onFocus(_e,et,tt,rt){var nt;const ot=this._getCurrent();ot&&(!et.useDefaultAction||this._callForDefaultAction)&&((nt=ot.manager.getHandler(_e))===null||nt===void 0||nt(et,tt,rt))}_getCurrent(){return this._wrappers.sort((_e,et)=>_e.tabbable!==et.tabbable?_e.tabbable?-1:1:_e.priority-et.priority),this._wrappers[0]}_ensurePosition(){var _e,et,tt;const rt=(_e=this._element)===null||_e===void 0?void 0:_e.get(),nt=(et=this._firstDummy)===null||et===void 0?void 0:et.input,ot=(tt=this._lastDummy)===null||tt===void 0?void 0:tt.input;if(!(!rt||!nt||!ot))if(this._isOutside){const it=rt.parentElement;if(it){const st=rt.nextElementSibling;st!==ot&&it.insertBefore(ot,st),rt.previousElementSibling!==nt&&it.insertBefore(nt,rt)}}else{rt.lastElementChild!==ot&&rt.appendChild(ot);const it=rt.firstElementChild;it&&it!==nt&&rt.insertBefore(nt,it)}}}function getLastChild(j){let _e=null;for(let et=j.lastElementChild;et;et=et.lastElementChild)_e=et;return _e||void 0}function getAdjacentElement(j,_e){let et=j,tt=null;for(;et&&!tt;)tt=_e?et.previousElementSibling:et.nextElementSibling,et=et.parentElement;return tt||void 0}function triggerEvent(j,_e,et){const tt=document.createEvent("HTMLEvents");return tt.initEvent(_e,!0,!0),tt.details=et,j.dispatchEvent(tt),!tt.defaultPrevented}function triggerMoveFocusEvent(j){return triggerEvent(j.owner,MoveFocusEventName,j)}function augmentAttribute(j,_e,et,tt){const rt=j.storageEntry(_e,!0);let nt=!1;if(!rt.aug){if(tt===void 0)return nt;rt.aug={}}if(tt===void 0){if(et in rt.aug){const ot=rt.aug[et];delete rt.aug[et],ot===null?_e.removeAttribute(et):_e.setAttribute(et,ot),nt=!0}}else{let ot;et in rt.aug||(ot=_e.getAttribute(et)),ot!==void 0&&ot!==tt&&(rt.aug[et]=ot,tt===null?_e.removeAttribute(et):_e.setAttribute(et,tt),nt=!0)}return tt===void 0&&Object.keys(rt.aug).length===0&&(delete rt.aug,j.storageEntry(_e,!1)),nt}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */function getTabsterAttribute(j,_e){const et=JSON.stringify(j);return _e===!0?et:{[TabsterAttributeName]:et}}function mergeTabsterProps(j,_e){for(const et of Object.keys(_e)){const tt=_e[et];tt?j[et]=tt:delete j[et]}}function setTabsterAttribute(j,_e,et){let tt;if(et){const rt=j.getAttribute(TabsterAttributeName);if(rt)try{tt=JSON.parse(rt)}catch{}}tt||(tt={}),mergeTabsterProps(tt,_e),Object.keys(tt).length>0?j.setAttribute(TabsterAttributeName,getTabsterAttribute(tt,!0)):j.removeAttribute(TabsterAttributeName)}class RootDummyManager extends DummyInputManager{constructor(_e,et,tt,rt){super(_e,et,DummyInputManagerPriorities.Root,rt,void 0,!0),this._onDummyInputFocus=nt=>{var ot;if(nt.useDefaultAction)this._setFocused(!1);else{this._tabster.keyboardNavigation.setNavigatingWithKeyboard(!0);const it=this._element.get();if(it){this._setFocused(!0);const st=this._tabster.focusedElement.getFirstOrLastTabbable(nt.isFirst,{container:it,ignoreAccessibility:!0});if(st){nativeFocus(st);return}}(ot=nt.input)===null||ot===void 0||ot.blur()}},this._setHandlers(this._onDummyInputFocus),this._tabster=_e,this._setFocused=tt}}class Root extends TabsterPart{constructor(_e,et,tt,rt,nt){super(_e,et,rt),this._isFocused=!1,this._setFocused=st=>{var lt;if(this._setFocusedTimer&&(this._tabster.getWindow().clearTimeout(this._setFocusedTimer),delete this._setFocusedTimer),this._isFocused===st)return;const ut=this._element.get();ut&&(st?(this._isFocused=!0,(lt=this._dummyManager)===null||lt===void 0||lt.setTabbable(!1),triggerEvent(this._tabster.root.eventTarget,"focus",{element:ut})):this._setFocusedTimer=this._tabster.getWindow().setTimeout(()=>{var ct;delete this._setFocusedTimer,this._isFocused=!1,(ct=this._dummyManager)===null||ct===void 0||ct.setTabbable(!0),triggerEvent(this._tabster.root.eventTarget,"blur",{element:ut})},0))},this._onFocusIn=st=>{const lt=this._tabster.getParent,ut=this._element.get();let ct=st.target;do{if(ct===ut){this._setFocused(!0);return}ct=ct&<(ct)}while(ct)},this._onFocusOut=()=>{this._setFocused(!1)},this._onDispose=tt;const ot=_e.getWindow;this.uid=getElementUId(ot,et),this._sys=nt,(_e.controlTab||_e.rootDummyInputs)&&this.addDummyInputs();const it=ot();it.document.addEventListener("focusin",this._onFocusIn),it.document.addEventListener("focusout",this._onFocusOut),this._add()}addDummyInputs(){this._dummyManager||(this._dummyManager=new RootDummyManager(this._tabster,this._element,this._setFocused,this._sys))}dispose(){var _e;this._onDispose(this);const et=this._tabster.getWindow();et.document.removeEventListener("focusin",this._onFocusIn),et.document.removeEventListener("focusout",this._onFocusOut),this._setFocusedTimer&&(et.clearTimeout(this._setFocusedTimer),delete this._setFocusedTimer),(_e=this._dummyManager)===null||_e===void 0||_e.dispose(),this._remove()}moveOutWithDefaultAction(_e,et){const tt=this._dummyManager;if(tt)tt.moveOutWithDefaultAction(_e,et);else{const rt=this.getElement();rt&&RootDummyManager.moveWithPhantomDummy(this._tabster,rt,!0,_e,et)}}_add(){}_remove(){}}class RootAPI{constructor(_e,et){this._autoRootWaiting=!1,this._roots={},this._forceDummy=!1,this.rootById={},this._autoRootCreate=()=>{var tt;const rt=this._win().document,nt=rt.body;if(nt){this._autoRootUnwait(rt);const ot=this._autoRoot;if(ot)return setTabsterAttribute(nt,{root:ot},!0),updateTabsterByAttribute(this._tabster,nt),(tt=getTabsterOnElement(this._tabster,nt))===null||tt===void 0?void 0:tt.root}else this._autoRootWaiting||(this._autoRootWaiting=!0,rt.addEventListener("readystatechange",this._autoRootCreate))},this._onRootDispose=tt=>{delete this._roots[tt.id]},this._tabster=_e,this._win=_e.getWindow,this._autoRoot=et,this.eventTarget=createEventTarget(this._win),_e.queueInit(()=>{this._autoRoot&&this._autoRootCreate()})}_autoRootUnwait(_e){_e.removeEventListener("readystatechange",this._autoRootCreate),this._autoRootWaiting=!1}dispose(){const _e=this._win();this._autoRootUnwait(_e.document),delete this._autoRoot,Object.keys(this._roots).forEach(et=>{this._roots[et]&&(this._roots[et].dispose(),delete this._roots[et])}),this.rootById={}}createRoot(_e,et,tt){const rt=new Root(this._tabster,_e,this._onRootDispose,et,tt);return this._roots[rt.id]=rt,this._forceDummy&&rt.addDummyInputs(),rt}addDummyInputs(){this._forceDummy=!0;const _e=this._roots;for(const et of Object.keys(_e))_e[et].addDummyInputs()}static getRootByUId(_e,et){const tt=_e().__tabsterInstance;return tt&&tt.root.rootById[et]}static getTabsterContext(_e,et,tt){tt===void 0&&(tt={});var rt,nt,ot,it;if(!et.ownerDocument)return;const{checkRtl:st,referenceElement:lt}=tt,ut=_e.getParent;_e.drainInitQueue();let ct,dt,ft,pt,gt=!1,vt,bt,_t,xt,yt=lt||et;const Et={};for(;yt&&(!ct||st);){const $t=getTabsterOnElement(_e,yt);if(st&&_t===void 0){const Ot=yt.dir;Ot&&(_t=Ot.toLowerCase()==="rtl")}if(!$t){yt=ut(yt);continue}const At=yt.tagName;($t.uncontrolled||At==="IFRAME"||At==="WEBVIEW")&&(xt=yt),!pt&&(!((rt=$t.focusable)===null||rt===void 0)&&rt.excludeFromMover)&&!ft&&(gt=!0);const wt=$t.modalizer,Ct=$t.groupper,It=$t.mover;!dt&&wt&&(dt=wt),!ft&&Ct&&(!dt||wt)&&(dt?(!Ct.isActive()&&Ct.getProps().tabbability&&dt.userId!==((nt=_e.modalizer)===null||nt===void 0?void 0:nt.activeId)&&(dt=void 0,ft=Ct),bt=Ct):ft=Ct),!pt&&It&&(!dt||wt)&&(!Ct||yt!==et)&&(pt=It,vt=!!ft&&ft!==Ct),$t.root&&(ct=$t.root),!((ot=$t.focusable)===null||ot===void 0)&&ot.ignoreKeydown&&Object.assign(Et,$t.focusable.ignoreKeydown),yt=ut(yt)}if(!ct){const $t=_e.root;$t._autoRoot&&!((it=et.ownerDocument)===null||it===void 0)&&it.body&&(ct=$t._autoRootCreate())}return ft&&!pt&&(vt=!0),ct?{root:ct,modalizer:dt,groupper:ft,mover:pt,groupperBeforeMover:vt,modalizerInGroupper:bt,rtl:st?!!_t:void 0,uncontrolled:xt,excludedFromMover:gt,ignoreKeydown:$t=>!!Et[$t.key]}:void 0}static getRoot(_e,et){var tt;const rt=_e.getParent;for(let nt=et;nt;nt=rt(nt)){const ot=(tt=getTabsterOnElement(_e,nt))===null||tt===void 0?void 0:tt.root;if(ot)return ot}}onRoot(_e,et){et?delete this.rootById[_e.uid]:this.rootById[_e.uid]=_e}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */class Subscribable{constructor(){this._callbacks=[]}dispose(){this._callbacks=[],delete this._val}subscribe(_e){const et=this._callbacks;et.indexOf(_e)<0&&et.push(_e)}subscribeFirst(_e){const et=this._callbacks,tt=et.indexOf(_e);tt>=0&&et.splice(tt,1),et.unshift(_e)}unsubscribe(_e){const et=this._callbacks.indexOf(_e);et>=0&&this._callbacks.splice(et,1)}setVal(_e,et){this._val!==_e&&(this._val=_e,this._callCallbacks(_e,et))}getVal(){return this._val}trigger(_e,et){this._callCallbacks(_e,et)}_callCallbacks(_e,et){this._callbacks.forEach(tt=>tt(_e,et))}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */class FocusableAPI{constructor(_e){this._tabster=_e}dispose(){}getProps(_e){const et=getTabsterOnElement(this._tabster,_e);return et&&et.focusable||{}}isFocusable(_e,et,tt,rt){return matchesSelector(_e,FocusableSelector)&&(et||_e.tabIndex!==-1)?(tt||this.isVisible(_e))&&(rt||this.isAccessible(_e)):!1}isVisible(_e){if(!_e.ownerDocument||_e.nodeType!==Node.ELEMENT_NODE||_e.offsetParent===null&&_e.ownerDocument.body!==_e)return!1;const et=_e.ownerDocument.defaultView;if(!et)return!1;const tt=_e.ownerDocument.body.getBoundingClientRect();return!(tt.width===0&&tt.height===0||et.getComputedStyle(_e).visibility==="hidden")}isAccessible(_e){var et;for(let tt=_e;tt;tt=tt.parentElement){const rt=getTabsterOnElement(this._tabster,tt);if(this._isHidden(tt)||!((et=rt==null?void 0:rt.focusable)===null||et===void 0?void 0:et.ignoreAriaDisabled)&&this._isDisabled(tt))return!1}return!0}_isDisabled(_e){return _e.hasAttribute("disabled")}_isHidden(_e){var et;const tt=_e.getAttribute("aria-hidden");return!!(tt&&tt.toLowerCase()==="true"&&!(!((et=this._tabster.modalizer)===null||et===void 0)&&et.isAugmented(_e)))}findFirst(_e,et){return this.findElement({..._e},et)}findLast(_e,et){return this.findElement({isBackward:!0,..._e},et)}findNext(_e,et){return this.findElement({..._e},et)}findPrev(_e,et){return this.findElement({..._e,isBackward:!0},et)}findDefault(_e,et){return this.findElement({..._e,acceptCondition:tt=>this.isFocusable(tt,_e.includeProgrammaticallyFocusable)&&!!this.getProps(tt).isDefault},et)||null}findAll(_e){return this._findElements(!0,_e)||[]}findElement(_e,et){const tt=this._findElements(!1,_e,et);return tt&&tt[0]}_findElements(_e,et,tt){var rt,nt,ot;const{container:it,currentElement:st=null,includeProgrammaticallyFocusable:lt,useActiveModalizer:ut,ignoreAccessibility:ct,modalizerId:dt,isBackward:ft,onElement:pt}=et;tt||(tt={});const gt=[];let{acceptCondition:vt}=et;const bt=!!vt;if(!it)return null;vt||(vt=Et=>this.isFocusable(Et,lt,!1,ct));const _t={container:it,modalizerUserId:dt===void 0&&ut?(rt=this._tabster.modalizer)===null||rt===void 0?void 0:rt.activeId:dt||((ot=(nt=RootAPI.getTabsterContext(this._tabster,it))===null||nt===void 0?void 0:nt.modalizer)===null||ot===void 0?void 0:ot.userId),from:st||it,isBackward:ft,acceptCondition:vt,hasCustomCondition:bt,includeProgrammaticallyFocusable:lt,ignoreAccessibility:ct,cachedGrouppers:{}},xt=createElementTreeWalker(it.ownerDocument,it,Et=>this._acceptElement(Et,_t));if(!xt)return null;const yt=Et=>{var St,$t;const At=(St=_t.foundElement)!==null&&St!==void 0?St:_t.foundBackward;return At&>.push(At),_e?At&&(_t.found=!1,delete _t.foundElement,delete _t.foundBackward,delete _t.fromCtx,_t.from=At,pt&&!pt(At))?!1:!!(At||Et):(At&&tt&&(tt.uncontrolled=($t=RootAPI.getTabsterContext(this._tabster,At))===null||$t===void 0?void 0:$t.uncontrolled),!!(Et&&!At))};if(st||(tt.outOfDOMOrder=!0),st)xt.currentNode=st;else if(ft){const Et=getLastChild(it);if(!Et)return null;if(this._acceptElement(Et,_t)===NodeFilter.FILTER_ACCEPT&&!yt(!0))return _t.skippedFocusable&&(tt.outOfDOMOrder=!0),gt;xt.currentNode=Et}do ft?xt.previousNode():xt.nextNode();while(yt());return _t.skippedFocusable&&(tt.outOfDOMOrder=!0),gt.length?gt:null}_acceptElement(_e,et){var tt,rt,nt,ot;if(et.found)return NodeFilter.FILTER_ACCEPT;const it=et.foundBackward;if(it&&(_e===it||!it.contains(_e)))return et.found=!0,et.foundElement=it,NodeFilter.FILTER_ACCEPT;const st=et.container;if(_e===st)return NodeFilter.FILTER_SKIP;if(!st.contains(_e)||_e.__tabsterDummyContainer||!((tt=et.rejectElementsFrom)===null||tt===void 0)&&tt.contains(_e))return NodeFilter.FILTER_REJECT;const lt=et.currentCtx=RootAPI.getTabsterContext(this._tabster,_e);if(!lt)return NodeFilter.FILTER_SKIP;if(shouldIgnoreFocus(_e))return this.isFocusable(_e,void 0,!0,!0)&&(et.skippedFocusable=!0),NodeFilter.FILTER_SKIP;if(!et.hasCustomCondition&&(_e.tagName==="IFRAME"||_e.tagName==="WEBVIEW"))return((rt=lt.modalizer)===null||rt===void 0?void 0:rt.userId)===((nt=this._tabster.modalizer)===null||nt===void 0?void 0:nt.activeId)?(et.found=!0,et.rejectElementsFrom=et.foundElement=_e,NodeFilter.FILTER_ACCEPT):NodeFilter.FILTER_REJECT;if(!et.ignoreAccessibility&&!this.isAccessible(_e))return this.isFocusable(_e,!1,!0,!0)&&(et.skippedFocusable=!0),NodeFilter.FILTER_REJECT;let ut,ct=et.fromCtx;ct||(ct=et.fromCtx=RootAPI.getTabsterContext(this._tabster,et.from));const dt=ct==null?void 0:ct.mover;let ft=lt.groupper,pt=lt.mover;if(ut=(ot=this._tabster.modalizer)===null||ot===void 0?void 0:ot.acceptElement(_e,et),ut!==void 0&&(et.skippedFocusable=!0),ut===void 0&&(ft||pt||dt)){const gt=ft==null?void 0:ft.getElement(),vt=dt==null?void 0:dt.getElement();let bt=pt==null?void 0:pt.getElement();bt&&(vt!=null&&vt.contains(bt))&&st.contains(vt)&&(!gt||!pt||vt.contains(gt))&&(pt=dt,bt=vt),gt&&(gt===st||!st.contains(gt))&&(ft=void 0),bt&&!st.contains(bt)&&(pt=void 0),ft&&pt&&(bt&>&&!gt.contains(bt)?pt=void 0:ft=void 0),ft&&(ut=ft.acceptElement(_e,et)),pt&&(ut=pt.acceptElement(_e,et))}return ut===void 0&&(ut=et.acceptCondition(_e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP,ut===NodeFilter.FILTER_SKIP&&this.isFocusable(_e,!1,!0,!0)&&(et.skippedFocusable=!0)),ut===NodeFilter.FILTER_ACCEPT&&!et.found&&(et.isBackward?(et.foundBackward=_e,ut=NodeFilter.FILTER_SKIP):(et.found=!0,et.foundElement=_e)),ut}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */const Keys={Tab:9,Enter:13,Esc:27,Space:32,PageUp:33,PageDown:34,End:35,Home:36,Left:37,Up:38,Right:39,Down:40};/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */function getUncontrolledCompletelyContainer(j,_e){var et;const tt=j.getParent;let rt=_e;do{const nt=(et=getTabsterOnElement(j,rt))===null||et===void 0?void 0:et.uncontrolled;if(nt&&j.uncontrolled.isUncontrolledCompletely(rt,!!nt.completely))return rt;rt=tt(rt)}while(rt)}class FocusedElementState extends Subscribable{constructor(_e,et){super(),this._init=()=>{const tt=this._win(),rt=tt.document;rt.addEventListener(KEYBORG_FOCUSIN,this._onFocusIn,!0),rt.addEventListener("focusout",this._onFocusOut,!0),tt.addEventListener("keydown",this._onKeyDown,!0);const nt=rt.activeElement;nt&&nt!==rt.body&&this._setFocusedElement(nt),this.subscribe(this._onChanged)},this._onFocusIn=tt=>{this._setFocusedElement(tt.target,tt.details.relatedTarget,tt.details.isFocusedProgrammatically)},this._onFocusOut=tt=>{this._setFocusedElement(void 0,tt.relatedTarget)},this._validateFocusedElement=tt=>{},this._onKeyDown=tt=>{if(tt.keyCode!==Keys.Tab||tt.ctrlKey)return;const rt=this.getVal();if(!rt||!rt.ownerDocument||rt.contentEditable==="true")return;const nt=this._tabster,ot=nt.controlTab,it=RootAPI.getTabsterContext(nt,rt);if(!it||it.ignoreKeydown(tt))return;const st=tt.shiftKey,lt=FocusedElementState.findNextTabbable(nt,it,void 0,rt,void 0,st,!0),ut=it.root.getElement();if(!ut)return;const ct=lt==null?void 0:lt.element,dt=getUncontrolledCompletelyContainer(nt,rt);if(ct){const ft=lt.uncontrolled;if(it.uncontrolled||ft!=null&&ft.contains(rt)){if(!lt.outOfDOMOrder&&ft===it.uncontrolled||dt&&!dt.contains(ct))return;DummyInputManager.addPhantomDummyWithTarget(nt,rt,st,ct);return}if(ft||ct.tagName==="IFRAME"){triggerMoveFocusEvent({by:"root",owner:ut,next:ct,relatedEvent:tt})&&DummyInputManager.moveWithPhantomDummy(this._tabster,ft??ct,!1,st,tt);return}(ot||lt!=null&<.outOfDOMOrder)&&triggerMoveFocusEvent({by:"root",owner:ut,next:ct,relatedEvent:tt})&&(tt.preventDefault(),tt.stopImmediatePropagation(),nativeFocus(ct))}else!dt&&triggerMoveFocusEvent({by:"root",owner:ut,next:null,relatedEvent:tt})&&it.root.moveOutWithDefaultAction(st,tt)},this._onChanged=(tt,rt)=>{var nt,ot;if(tt)triggerEvent(tt,FocusInEventName,rt);else{const it=(nt=this._lastVal)===null||nt===void 0?void 0:nt.get();if(it){const st={...rt},lt=RootAPI.getTabsterContext(this._tabster,it),ut=(ot=lt==null?void 0:lt.modalizer)===null||ot===void 0?void 0:ot.userId;ut&&(st.modalizerId=ut),triggerEvent(it,FocusOutEventName,st)}}},this._tabster=_e,this._win=et,_e.queueInit(this._init)}dispose(){super.dispose();const _e=this._win();_e.document.removeEventListener(KEYBORG_FOCUSIN,this._onFocusIn,!0),_e.document.removeEventListener("focusout",this._onFocusOut,!0),_e.removeEventListener("keydown",this._onKeyDown,!0),this.unsubscribe(this._onChanged),delete FocusedElementState._lastResetElement,delete this._nextVal,delete this._lastVal}static forgetMemorized(_e,et){var tt,rt;let nt=FocusedElementState._lastResetElement,ot=nt&&nt.get();ot&&et.contains(ot)&&delete FocusedElementState._lastResetElement,ot=(rt=(tt=_e._nextVal)===null||tt===void 0?void 0:tt.element)===null||rt===void 0?void 0:rt.get(),ot&&et.contains(ot)&&delete _e._nextVal,nt=_e._lastVal,ot=nt&&nt.get(),ot&&et.contains(ot)&&delete _e._lastVal}getFocusedElement(){return this.getVal()}getLastFocusedElement(){var _e;let et=(_e=this._lastVal)===null||_e===void 0?void 0:_e.get();return(!et||et&&!documentContains(et.ownerDocument,et))&&(this._lastVal=et=void 0),et}focus(_e,et,tt){return this._tabster.focusable.isFocusable(_e,et,!1,tt)?(_e.focus(),!0):!1}focusDefault(_e){const et=this._tabster.focusable.findDefault({container:_e});return et?(this._tabster.focusedElement.focus(et),!0):!1}getFirstOrLastTabbable(_e,et){var tt;const{container:rt,ignoreAccessibility:nt}=et;let ot;if(rt){const it=RootAPI.getTabsterContext(this._tabster,rt);it&&(ot=(tt=FocusedElementState.findNextTabbable(this._tabster,it,rt,void 0,void 0,!_e,nt))===null||tt===void 0?void 0:tt.element)}return ot&&!(rt!=null&&rt.contains(ot))&&(ot=void 0),ot||void 0}_focusFirstOrLast(_e,et){const tt=this.getFirstOrLastTabbable(_e,et);return tt?(this.focus(tt,!1,!0),!0):!1}focusFirst(_e){return this._focusFirstOrLast(!0,_e)}focusLast(_e){return this._focusFirstOrLast(!1,_e)}resetFocus(_e){if(!this._tabster.focusable.isVisible(_e))return!1;if(this._tabster.focusable.isFocusable(_e,!0,!0,!0))this.focus(_e);else{const et=_e.getAttribute("tabindex"),tt=_e.getAttribute("aria-hidden");_e.tabIndex=-1,_e.setAttribute("aria-hidden","true"),FocusedElementState._lastResetElement=new WeakHTMLElement(this._win,_e),this.focus(_e,!0,!0),this._setOrRemoveAttribute(_e,"tabindex",et),this._setOrRemoveAttribute(_e,"aria-hidden",tt)}return!0}_setOrRemoveAttribute(_e,et,tt){tt===null?_e.removeAttribute(et):_e.setAttribute(et,tt)}_setFocusedElement(_e,et,tt){var rt,nt;if(this._tabster._noop)return;const ot={relatedTarget:et};if(_e){const st=(rt=FocusedElementState._lastResetElement)===null||rt===void 0?void 0:rt.get();if(FocusedElementState._lastResetElement=void 0,st===_e||shouldIgnoreFocus(_e))return;ot.isFocusedProgrammatically=tt;const lt=RootAPI.getTabsterContext(this._tabster,_e),ut=(nt=lt==null?void 0:lt.modalizer)===null||nt===void 0?void 0:nt.userId;ut&&(ot.modalizerId=ut)}const it=this._nextVal={element:_e?new WeakHTMLElement(this._win,_e):void 0,details:ot};_e&&_e!==this._val&&this._validateFocusedElement(_e),this._nextVal===it&&this.setVal(_e,ot),this._nextVal=void 0}setVal(_e,et){super.setVal(_e,et),_e&&(this._lastVal=new WeakHTMLElement(this._win,_e))}static findNextTabbable(_e,et,tt,rt,nt,ot,it){const st=tt||et.root.getElement();if(!st)return null;let lt=null;const ut=FocusedElementState._isTabbingTimer,ct=_e.getWindow();ut&&ct.clearTimeout(ut),FocusedElementState.isTabbing=!0,FocusedElementState._isTabbingTimer=ct.setTimeout(()=>{delete FocusedElementState._isTabbingTimer,FocusedElementState.isTabbing=!1},0);const dt=et.modalizer,ft=et.groupper,pt=et.mover,gt=vt=>{var bt;if(lt=vt.findNextTabbable(rt,nt,ot,it),rt&&!(lt!=null&<.element)){const _t=vt!==dt&&((bt=vt.getElement())===null||bt===void 0?void 0:bt.parentElement);if(_t){const xt=RootAPI.getTabsterContext(_e,rt,{referenceElement:_t});if(xt){const yt=vt.getElement(),Et=ot?yt:yt&&getLastChild(yt)||yt;Et&&(lt=FocusedElementState.findNextTabbable(_e,xt,tt,Et,_t,ot,it),lt&&(lt.outOfDOMOrder=!0))}}}};if(ft&&pt)gt(et.groupperBeforeMover?ft:pt);else if(ft)gt(ft);else if(pt)gt(pt);else if(dt)gt(dt);else{const vt={container:st,currentElement:rt,referenceElement:nt,ignoreAccessibility:it,useActiveModalizer:!0},bt={};lt={element:_e.focusable[ot?"findPrev":"findNext"](vt,bt),outOfDOMOrder:bt.outOfDOMOrder,uncontrolled:bt.uncontrolled}}return lt}}FocusedElementState.isTabbing=!1;/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */class GroupperDummyManager extends DummyInputManager{constructor(_e,et,tt,rt){super(tt,_e,DummyInputManagerPriorities.Groupper,rt,!0),this._setHandlers((nt,ot,it)=>{var st,lt;const ut=_e.get(),ct=nt.input;if(ut&&ct){const dt=RootAPI.getTabsterContext(tt,ct);if(dt){let ft;ft=(st=et.findNextTabbable(it||void 0,void 0,ot,!0))===null||st===void 0?void 0:st.element,ft||(ft=(lt=FocusedElementState.findNextTabbable(tt,dt,void 0,nt.isOutside?ct:getAdjacentElement(ut,!ot),void 0,ot,!0))===null||lt===void 0?void 0:lt.element),ft&&nativeFocus(ft)}}})}}class Groupper extends TabsterPart{constructor(_e,et,tt,rt,nt){super(_e,et,rt),this._shouldTabInside=!1,this.makeTabbable(!1),this._onDispose=tt,_e.controlTab||(this.dummyManager=new GroupperDummyManager(this._element,this,_e,nt))}dispose(){var _e;this._onDispose(this),this._element.get(),(_e=this.dummyManager)===null||_e===void 0||_e.dispose(),delete this.dummyManager,delete this._first}findNextTabbable(_e,et,tt,rt){var nt;const ot=this.getElement();if(!ot)return null;const it=((nt=_e==null?void 0:_e.__tabsterDummyContainer)===null||nt===void 0?void 0:nt.get())===ot;if(!this._shouldTabInside&&_e&&ot.contains(_e)&&!it)return{element:void 0,outOfDOMOrder:!0};const st=this.getFirst(!0);if(!_e||!ot.contains(_e)||it)return{element:st,outOfDOMOrder:!0};const lt=this._tabster;let ut=null,ct=!1,dt;if(this._shouldTabInside&&st){const ft={container:ot,currentElement:_e,referenceElement:et,ignoreAccessibility:rt,useActiveModalizer:!0},pt={};ut=lt.focusable[tt?"findPrev":"findNext"](ft,pt),ct=!!pt.outOfDOMOrder,!ut&&this._props.tabbability===GroupperTabbabilities.LimitedTrapFocus&&(ut=lt.focusable[tt?"findLast":"findFirst"]({container:ot,ignoreAccessibility:rt,useActiveModalizer:!0},pt),ct=!0),dt=pt.uncontrolled}return{element:ut,uncontrolled:dt,outOfDOMOrder:ct}}makeTabbable(_e){this._shouldTabInside=_e||!this._props.tabbability}isActive(_e){var et;const tt=this.getElement()||null;let rt=!0;for(let ot=tt==null?void 0:tt.parentElement;ot;ot=ot.parentElement){const it=(et=getTabsterOnElement(this._tabster,ot))===null||et===void 0?void 0:et.groupper;it&&(it._shouldTabInside||(rt=!1))}let nt=rt?this._props.tabbability?this._shouldTabInside:!1:void 0;if(nt&&_e){const ot=this._tabster.focusedElement.getFocusedElement();ot&&(nt=ot!==this.getFirst(!0))}return nt}getFirst(_e){var et;const tt=this.getElement();let rt;if(tt){if(_e&&this._tabster.focusable.isFocusable(tt))return tt;rt=(et=this._first)===null||et===void 0?void 0:et.get(),rt||(rt=this._tabster.focusable.findFirst({container:tt,useActiveModalizer:!0})||void 0,rt&&this.setFirst(rt))}return rt}setFirst(_e){_e?this._first=new WeakHTMLElement(this._tabster.getWindow,_e):delete this._first}acceptElement(_e,et){var tt;const rt=et.cachedGrouppers,nt=(tt=this.getElement())===null||tt===void 0?void 0:tt.parentElement,ot=nt&&RootAPI.getTabsterContext(this._tabster,nt),it=ot==null?void 0:ot.groupper,st=ot!=null&&ot.groupperBeforeMover?it:void 0;let lt;const ut=ft=>{let pt=rt[ft.id],gt;return pt?gt=pt.isActive:(gt=this.isActive(!0),pt=rt[ft.id]={isActive:gt}),gt};if(st&&(lt=st.getElement(),!ut(st)&<&&et.container!==lt&&et.container.contains(lt)))return et.skippedFocusable=!0,NodeFilter.FILTER_REJECT;const ct=ut(this),dt=this.getElement();if(dt&&ct!==!0){if(dt===_e&&it&&(lt||(lt=it.getElement()),lt&&!ut(it)&&et.container.contains(lt)&<!==et.container)||dt!==_e&&dt.contains(_e))return et.skippedFocusable=!0,NodeFilter.FILTER_REJECT;const ft=rt[this.id];let pt;if("first"in ft?pt=ft.first:pt=ft.first=this.getFirst(!0),pt&&et.acceptCondition(pt))return et.rejectElementsFrom=dt,et.skippedFocusable=!0,pt!==et.from?(et.found=!0,et.foundElement=pt,NodeFilter.FILTER_ACCEPT):NodeFilter.FILTER_REJECT}}}class GroupperAPI{constructor(_e,et){this._current={},this._grouppers={},this._init=()=>{const tt=this._win();this._tabster.focusedElement.subscribeFirst(this._onFocus),tt.document.addEventListener("mousedown",this._onMouseDown,!0),tt.addEventListener("keydown",this._onKeyDown,!0)},this._onGroupperDispose=tt=>{delete this._grouppers[tt.id]},this._onFocus=tt=>{tt&&this._updateCurrent(tt,!0,!0)},this._onMouseDown=tt=>{tt.target&&this._updateCurrent(tt.target,!0)},this._onKeyDown=tt=>{if(tt.keyCode!==Keys.Enter&&tt.keyCode!==Keys.Esc||tt.ctrlKey||tt.altKey||tt.shiftKey||tt.metaKey)return;const rt=this._tabster.focusedElement.getFocusedElement();rt&&this.handleKeyPress(rt,tt)},this._tabster=_e,this._win=et,_e.queueInit(this._init)}dispose(){const _e=this._win();this._handleKeyPressTimer&&(_e.clearTimeout(this._handleKeyPressTimer),delete this._handleKeyPressTimer),this._current={},this._updateTimer&&(_e.clearTimeout(this._updateTimer),delete this._updateTimer),this._tabster.focusedElement.unsubscribe(this._onFocus),_e.document.removeEventListener("mousedown",this._onMouseDown,!0),_e.removeEventListener("keydown",this._onKeyDown,!0),Object.keys(this._grouppers).forEach(et=>{this._grouppers[et]&&(this._grouppers[et].dispose(),delete this._grouppers[et])})}createGroupper(_e,et,tt){const rt=new Groupper(this._tabster,_e,this._onGroupperDispose,et,tt);this._grouppers[rt.id]=rt;const nt=this._tabster.focusedElement.getFocusedElement();return nt&&_e.contains(nt)&&!this._updateTimer&&(this._updateTimer=this._win().setTimeout(()=>{delete this._updateTimer,nt===this._tabster.focusedElement.getFocusedElement()&&this._updateCurrent(nt,!0,!0)},0)),rt}forgetCurrentGrouppers(){this._current={}}_updateCurrent(_e,et,tt){var rt;this._updateTimer&&(this._win().clearTimeout(this._updateTimer),delete this._updateTimer);const nt={};let ot=!0;for(let it=_e;it;it=it.parentElement){const st=(rt=getTabsterOnElement(this._tabster,it))===null||rt===void 0?void 0:rt.groupper;if(st){if(nt[st.id]=!0,ot&&tt&&it!==_e&&(ot=!1),et||!ot){this._current[st.id]=st;const lt=st.isActive()||_e!==it&&(!st.getProps().delegated||st.getFirst(!1)!==_e);st.makeTabbable(lt)}ot=!1}}for(const it of Object.keys(this._current)){const st=this._current[it];st.id in nt||(st.makeTabbable(!1),st.setFirst(void 0),delete this._current[it])}}handleKeyPress(_e,et,tt){const rt=this._tabster,nt=RootAPI.getTabsterContext(rt,_e),ot=nt==null?void 0:nt.modalizerInGroupper;let it=(nt==null?void 0:nt.groupper)||ot;if(nt&&it){const st=this._win();if(this._handleKeyPressTimer&&(st.clearTimeout(this._handleKeyPressTimer),delete this._handleKeyPressTimer),nt.ignoreKeydown(et))return;let lt;const ut=it.getElement();if(et.keyCode===Keys.Enter)ut&&(_e===ut||it.getProps().delegated&&_e===it.getFirst(!1))&&(lt=rt.focusable.findNext({container:ut,currentElement:_e,useActiveModalizer:!0})),lt&&ut&&triggerMoveFocusEvent({by:"groupper",owner:ut,next:lt,relatedEvent:et})&&(et.preventDefault(),et.stopImmediatePropagation(),lt.focus());else if(et.keyCode===Keys.Esc){const ct=rt.focusedElement.getFocusedElement();this._handleKeyPressTimer=st.setTimeout(()=>{var dt;if(delete this._handleKeyPressTimer,ct===rt.focusedElement.getFocusedElement()&&it&&ut&&ut.contains(_e)){if(_e!==ut||tt)lt=it.getFirst(!0);else{const ft=ut.parentElement,pt=ft?RootAPI.getTabsterContext(rt,ft):void 0;it=pt==null?void 0:pt.groupper,lt=it==null?void 0:it.getFirst(!0)}lt&&triggerMoveFocusEvent({by:"groupper",owner:ut,next:lt,relatedEvent:et})&&(it&&(it.makeTabbable(!1),ot&&((dt=rt.modalizer)===null||dt===void 0||dt.setActive(void 0))),lt.focus())}},0)}}}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */class KeyboardNavigationState extends Subscribable{constructor(_e){super(),this._onChange=et=>{this.setVal(et,void 0)},this._keyborg=createKeyborg(_e()),this._keyborg.subscribe(this._onChange)}dispose(){super.dispose(),this._keyborg&&(this._keyborg.unsubscribe(this._onChange),disposeKeyborg(this._keyborg),delete this._keyborg)}setNavigatingWithKeyboard(_e){var et;(et=this._keyborg)===null||et===void 0||et.setVal(_e)}isNavigatingWithKeyboard(){var _e;return!!(!((_e=this._keyborg)===null||_e===void 0)&&_e.isNavigatingWithKeyboard())}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */let _wasFocusedCounter=0;const _ariaHidden="aria-hidden";class ModalizerDummyManager extends DummyInputManager{constructor(_e,et,tt){super(et,_e,DummyInputManagerPriorities.Modalizer,tt),this._setHandlers((rt,nt)=>{var ot,it,st;const lt=_e.get(),ut=lt&&((ot=RootAPI.getRoot(et,lt))===null||ot===void 0?void 0:ot.getElement()),ct=rt.input;let dt;if(ut&&ct){const ft=(it=ct.__tabsterDummyContainer)===null||it===void 0?void 0:it.get(),pt=RootAPI.getTabsterContext(et,ft||ct);pt&&(dt=(st=FocusedElementState.findNextTabbable(et,pt,ut,ct,void 0,nt,!0))===null||st===void 0?void 0:st.element),dt&&nativeFocus(dt)}})}}class Modalizer extends TabsterPart{constructor(_e,et,tt,rt,nt,ot){super(_e,et,rt),this._wasFocused=0,this.userId=rt.id,this._onDispose=tt,this._activeElements=ot,_e.controlTab||(this.dummyManager=new ModalizerDummyManager(this._element,_e,nt))}makeActive(_e){if(this._isActive!==_e){this._isActive=_e;const et=this.getElement();if(et){const tt=this._activeElements,rt=tt.map(nt=>nt.get()).indexOf(et);_e?rt<0&&tt.push(new WeakHTMLElement(this._tabster.getWindow,et)):rt>=0&&tt.splice(rt,1)}this.triggerFocusEvent(_e?ModalizerActiveEventName:ModalizerInactiveEventName)}}focused(_e){return _e||(this._wasFocused=++_wasFocusedCounter),this._wasFocused}setProps(_e){_e.id&&(this.userId=_e.id),this._props={..._e}}dispose(){var _e;this.makeActive(!1),this._onDispose(this),(_e=this.dummyManager)===null||_e===void 0||_e.dispose(),delete this.dummyManager,this._activeElements=[],this._remove()}isActive(){return!!this._isActive}contains(_e){var et;return!!(!((et=this.getElement())===null||et===void 0)&&et.contains(_e))}findNextTabbable(_e,et,tt,rt){var nt,ot;if(!this.getElement())return null;const st=this._tabster;let lt=null,ut=!1,ct;const dt=_e&&((nt=RootAPI.getRoot(st,_e))===null||nt===void 0?void 0:nt.getElement());if(dt){const ft={container:dt,currentElement:_e,referenceElement:et,ignoreAccessibility:rt,useActiveModalizer:!0},pt={};lt=st.focusable[tt?"findPrev":"findNext"](ft,pt),!lt&&this._props.isTrapped&&(!((ot=st.modalizer)===null||ot===void 0)&&ot.activeId)?(lt=st.focusable[tt?"findLast":"findFirst"]({container:dt,ignoreAccessibility:rt,useActiveModalizer:!0},pt),ut=!0):ut=!!pt.outOfDOMOrder,ct=pt.uncontrolled}return{element:lt,uncontrolled:ct,outOfDOMOrder:ut}}triggerFocusEvent(_e,et){const tt=this.getElement();let rt=!1;if(tt){const nt=et?this._activeElements.map(ot=>ot.get()):[tt];for(const ot of nt)ot&&!triggerEvent(ot,_e,{id:this.userId,element:tt,eventName:_e})&&(rt=!0)}return rt}_remove(){}}class ModalizerAPI{constructor(_e,et,tt){this._onModalizerDispose=nt=>{const ot=nt.id,it=nt.userId,st=this._parts[it];delete this._modalizers[ot],st&&(delete st[ot],Object.keys(st).length===0&&(delete this._parts[it],this.activeId===it&&this.setActive(void 0)))},this._onKeyDown=nt=>{var ot;if(nt.keyCode!==Keys.Esc)return;const it=this._tabster,st=it.focusedElement.getFocusedElement();if(st){const lt=RootAPI.getTabsterContext(it,st),ut=lt==null?void 0:lt.modalizer;if(lt&&!lt.groupper&&(ut!=null&&ut.isActive())&&!lt.ignoreKeydown(nt)){const ct=ut.userId;if(ct){const dt=this._parts[ct];if(dt){const ft=Object.keys(dt).map(pt=>{var gt;const vt=dt[pt],bt=vt.getElement();let _t;return bt&&(_t=(gt=getTabsterOnElement(this._tabster,bt))===null||gt===void 0?void 0:gt.groupper),vt&&bt&&_t?{el:bt,focusedSince:vt.focused(!0)}:{focusedSince:0}}).filter(pt=>pt.focusedSince>0).sort((pt,gt)=>pt.focusedSince>gt.focusedSince?-1:pt.focusedSince{var it,st;const lt=nt&&RootAPI.getTabsterContext(this._tabster,nt);if(!lt||!nt)return;const ut=this._augMap;for(let dt=nt;dt;dt=dt.parentElement)ut.has(dt)&&(ut.delete(dt),augmentAttribute(this._tabster,dt,_ariaHidden));const ct=lt.modalizer;if((st=ct||((it=getTabsterOnElement(this._tabster,nt))===null||it===void 0?void 0:it.modalizer))===null||st===void 0||st.focused(),(ct==null?void 0:ct.userId)===this.activeId){this.currentIsOthersAccessible=ct==null?void 0:ct.getProps().isOthersAccessible;return}if(ot.isFocusedProgrammatically||this.currentIsOthersAccessible||ct!=null&&ct.getProps().isAlwaysAccessible)this.setActive(ct);else{const dt=this._win();dt.clearTimeout(this._restoreModalizerFocusTimer),this._restoreModalizerFocusTimer=dt.setTimeout(()=>this._restoreModalizerFocus(nt),100)}},this._tabster=_e,this._win=_e.getWindow,this._modalizers={},this._parts={},this._augMap=new WeakMap,this._aug=[],this._alwaysAccessibleSelector=et,this._accessibleCheck=tt,this.activeElements=[],_e.controlTab||_e.root.addDummyInputs(),this._win().addEventListener("keydown",this._onKeyDown,!0),_e.queueInit(()=>{this._tabster.focusedElement.subscribe(this._onFocus)})}dispose(){const _e=this._win();_e.removeEventListener("keydown",this._onKeyDown,!0),Object.keys(this._modalizers).forEach(et=>{this._modalizers[et]&&(this._modalizers[et].dispose(),delete this._modalizers[et])}),_e.clearTimeout(this._restoreModalizerFocusTimer),_e.clearTimeout(this._hiddenUpdateTimer),this._parts={},delete this.activeId,this.activeElements=[],this._augMap=new WeakMap,this._aug=[],this._tabster.focusedElement.unsubscribe(this._onFocus)}createModalizer(_e,et,tt){var rt;const nt=new Modalizer(this._tabster,_e,this._onModalizerDispose,et,tt,this.activeElements),ot=nt.id,it=et.id;this._modalizers[ot]=nt;let st=this._parts[it];return st||(st=this._parts[it]={}),st[ot]=nt,_e.contains((rt=this._tabster.focusedElement.getFocusedElement())!==null&&rt!==void 0?rt:null)&&(it!==this.activeId?this.setActive(nt):nt.makeActive(!0)),nt}isAugmented(_e){return this._augMap.has(_e)}hiddenUpdate(){this._hiddenUpdateTimer||(this._hiddenUpdateTimer=this._win().setTimeout(()=>{delete this._hiddenUpdateTimer,this._hiddenUpdate()},250))}setActive(_e){const et=_e==null?void 0:_e.userId,tt=this.activeId;if(tt!==et){if(this.activeId=et,tt){const rt=this._parts[tt];if(rt)for(const nt of Object.keys(rt))rt[nt].makeActive(!1)}if(et){const rt=this._parts[et];if(rt)for(const nt of Object.keys(rt))rt[nt].makeActive(!0)}this.currentIsOthersAccessible=_e==null?void 0:_e.getProps().isOthersAccessible,this.hiddenUpdate()}}focus(_e,et,tt){const rt=RootAPI.getTabsterContext(this._tabster,_e),nt=rt==null?void 0:rt.modalizer;if(nt){this.setActive(nt);const ot=nt.getProps(),it=nt.getElement();if(it){if(et===void 0&&(et=ot.isNoFocusFirst),!et&&this._tabster.keyboardNavigation.isNavigatingWithKeyboard()&&this._tabster.focusedElement.focusFirst({container:it})||(tt===void 0&&(tt=ot.isNoFocusDefault),!tt&&this._tabster.focusedElement.focusDefault(it)))return!0;this._tabster.focusedElement.resetFocus(it)}}return!1}acceptElement(_e,et){var tt;const rt=et.modalizerUserId,nt=(tt=et.currentCtx)===null||tt===void 0?void 0:tt.modalizer;if(rt)for(const it of this.activeElements){const st=it.get();if(st&&(_e.contains(st)||st===_e))return NodeFilter.FILTER_SKIP}const ot=rt===(nt==null?void 0:nt.userId)||!rt&&(nt!=null&&nt.getProps().isAlwaysAccessible)?void 0:NodeFilter.FILTER_SKIP;return ot!==void 0&&(et.skippedFocusable=!0),ot}_hiddenUpdate(){var _e;const et=this._tabster,tt=et.getWindow().document.body,rt=this.activeId,nt=this._parts,ot=[],it=[],st=this._alwaysAccessibleSelector,lt=st?Array.from(tt.querySelectorAll(st)):[],ut=[];for(const bt of Object.keys(nt)){const _t=nt[bt];for(const xt of Object.keys(_t)){const yt=_t[xt],Et=yt.getElement(),$t=yt.getProps().isAlwaysAccessible;Et&&(bt===rt?(ut.push(Et),this.currentIsOthersAccessible||ot.push(Et)):$t?lt.push(Et):it.push(Et))}}const ct=this._augMap,dt=ot.length>0?[...ot,...lt]:void 0,ft=[],pt=new WeakMap,gt=(bt,_t)=>{var xt;const yt=bt.tagName;if(yt==="SCRIPT"||yt==="STYLE")return;let Et=!1;ct.has(bt)?_t?Et=!0:(ct.delete(bt),augmentAttribute(et,bt,_ariaHidden)):_t&&!(!((xt=this._accessibleCheck)===null||xt===void 0)&&xt.call(this,bt,ut))&&augmentAttribute(et,bt,_ariaHidden,"true")&&(ct.set(bt,!0),Et=!0),Et&&(ft.push(new WeakHTMLElement(et.getWindow,bt)),pt.set(bt,!0))},vt=bt=>{for(let _t=bt.firstElementChild;_t;_t=_t.nextElementSibling){let xt=!1,yt=!1;if(dt){for(const Et of dt){if(_t===Et){xt=!0;break}if(_t.contains(Et)){yt=!0;break}}yt?vt(_t):xt||gt(_t,!0)}else gt(_t,!1)}};dt||lt.forEach(bt=>gt(bt,!1)),it.forEach(bt=>gt(bt,!0)),tt&&vt(tt),(_e=this._aug)===null||_e===void 0||_e.map(bt=>bt.get()).forEach(bt=>{bt&&!pt.get(bt)&>(bt,!1)}),this._aug=ft,this._augMap=pt}_restoreModalizerFocus(_e){const et=_e==null?void 0:_e.ownerDocument;if(!_e||!et)return;const tt=RootAPI.getTabsterContext(this._tabster,_e),rt=tt==null?void 0:tt.modalizer,nt=this.activeId;if(!rt&&!nt||rt&&nt===rt.userId)return;const ot=tt==null?void 0:tt.root.getElement();if(ot){let it=this._tabster.focusable.findFirst({container:ot,useActiveModalizer:!0});if(it){if(_e.compareDocumentPosition(it)&document.DOCUMENT_POSITION_PRECEDING&&(it=this._tabster.focusable.findLast({container:ot,useActiveModalizer:!0}),!it))throw new Error("Something went wrong.");this._tabster.focusedElement.focus(it);return}}_e.blur()}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */const _inputSelector=["input","textarea","*[contenteditable]"].join(", ");class MoverDummyManager extends DummyInputManager{constructor(_e,et,tt,rt){super(et,_e,DummyInputManagerPriorities.Mover,rt),this._onFocusDummyInput=nt=>{var ot,it;const st=this._element.get(),lt=nt.input;if(st&<){const ut=RootAPI.getTabsterContext(this._tabster,st);let ct;ut&&(ct=(ot=FocusedElementState.findNextTabbable(this._tabster,ut,void 0,lt,void 0,!nt.isFirst,!0))===null||ot===void 0?void 0:ot.element);const dt=(it=this._getMemorized())===null||it===void 0?void 0:it.get();dt&&(ct=dt),ct&&nativeFocus(ct)}},this._tabster=et,this._getMemorized=tt,this._setHandlers(this._onFocusDummyInput)}}const _moverUpdateAdd=1,_moverUpdateAttr=2,_moverUpdateRemove=3;class Mover extends TabsterPart{constructor(_e,et,tt,rt,nt){var ot;super(_e,et,rt),this._visible={},this._onIntersection=st=>{for(const lt of st){const ut=lt.target,ct=getElementUId(this._win,ut);let dt,ft=this._fullyVisible;if(lt.intersectionRatio>=.25?(dt=lt.intersectionRatio>=.75?Visibilities.Visible:Visibilities.PartiallyVisible,dt===Visibilities.Visible&&(ft=ct)):dt=Visibilities.Invisible,this._visible[ct]!==dt){dt===void 0?(delete this._visible[ct],ft===ct&&delete this._fullyVisible):(this._visible[ct]=dt,this._fullyVisible=ft);const pt=this.getState(ut);pt&&triggerEvent(ut,MoverEventName,pt)}}},this._win=_e.getWindow,this.visibilityTolerance=(ot=rt.visibilityTolerance)!==null&&ot!==void 0?ot:.8,(this._props.trackState||this._props.visibilityAware)&&(this._intersectionObserver=new IntersectionObserver(this._onIntersection,{threshold:[0,.25,.5,.75,1]}),this._observeState()),this._onDispose=tt;const it=()=>rt.memorizeCurrent?this._current:void 0;_e.controlTab||(this.dummyManager=new MoverDummyManager(this._element,_e,it,nt))}dispose(){var _e;this._onDispose(this),this._intersectionObserver&&(this._intersectionObserver.disconnect(),delete this._intersectionObserver),delete this._current,delete this._fullyVisible,delete this._allElements,delete this._updateQueue,this._unobserve&&(this._unobserve(),delete this._unobserve);const et=this._win();this._setCurrentTimer&&(et.clearTimeout(this._setCurrentTimer),delete this._setCurrentTimer),this._updateTimer&&(et.clearTimeout(this._updateTimer),delete this._updateTimer),(_e=this.dummyManager)===null||_e===void 0||_e.dispose(),delete this.dummyManager}setCurrent(_e){_e?this._current=new WeakHTMLElement(this._win,_e):this._current=void 0,(this._props.trackState||this._props.visibilityAware)&&!this._setCurrentTimer&&(this._setCurrentTimer=this._win().setTimeout(()=>{var et;delete this._setCurrentTimer;const tt=[];this._current!==this._prevCurrent&&(tt.push(this._current),tt.push(this._prevCurrent),this._prevCurrent=this._current);for(const rt of tt){const nt=rt==null?void 0:rt.get();if(nt&&((et=this._allElements)===null||et===void 0?void 0:et.get(nt))===this){const ot=this._props;if(nt&&(ot.visibilityAware!==void 0||ot.trackState)){const it=this.getState(nt);it&&triggerEvent(nt,MoverEventName,it)}}}}))}getCurrent(){var _e;return((_e=this._current)===null||_e===void 0?void 0:_e.get())||null}findNextTabbable(_e,et,tt,rt){var nt;const ot=this.getElement(),it=ot&&((nt=_e==null?void 0:_e.__tabsterDummyContainer)===null||nt===void 0?void 0:nt.get())===ot;if(!ot)return null;let st=null,lt=!1,ut;if(this._props.tabbable||it||_e&&!ot.contains(_e)){const ct={currentElement:_e,referenceElement:et,container:ot,ignoreAccessibility:rt,useActiveModalizer:!0},dt={};st=this._tabster.focusable[tt?"findPrev":"findNext"](ct,dt),lt=!!dt.outOfDOMOrder,ut=dt.uncontrolled}return{element:st,uncontrolled:ut,outOfDOMOrder:lt}}acceptElement(_e,et){var tt,rt,nt;if(!FocusedElementState.isTabbing)return!((tt=et.currentCtx)===null||tt===void 0)&&tt.excludedFromMover?NodeFilter.FILTER_REJECT:void 0;const{memorizeCurrent:ot,visibilityAware:it,hasDefault:st=!0}=this._props,lt=this.getElement();if(lt&&(ot||it||st)&&(!lt.contains(et.from)||((rt=et.from.__tabsterDummyContainer)===null||rt===void 0?void 0:rt.get())===lt)){let ut;if(ot){const ct=(nt=this._current)===null||nt===void 0?void 0:nt.get();ct&&et.acceptCondition(ct)&&(ut=ct)}if(!ut&&st&&(ut=this._tabster.focusable.findDefault({container:lt,useActiveModalizer:!0})),!ut&&it&&(ut=this._tabster.focusable.findElement({container:lt,useActiveModalizer:!0,isBackward:et.isBackward,acceptCondition:ct=>{var dt;const ft=getElementUId(this._win,ct),pt=this._visible[ft];return lt!==ct&&!!(!((dt=this._allElements)===null||dt===void 0)&&dt.get(ct))&&et.acceptCondition(ct)&&(pt===Visibilities.Visible||pt===Visibilities.PartiallyVisible&&(it===Visibilities.PartiallyVisible||!this._fullyVisible))}})),ut)return et.found=!0,et.foundElement=ut,et.rejectElementsFrom=lt,et.skippedFocusable=!0,NodeFilter.FILTER_ACCEPT}}_observeState(){const _e=this.getElement();if(this._unobserve||!_e||typeof MutationObserver>"u")return;const et=this._win(),tt=this._allElements=new WeakMap,rt=this._tabster.focusable;let nt=this._updateQueue=[];const ot=new MutationObserver(ft=>{for(const pt of ft){const gt=pt.target,vt=pt.removedNodes,bt=pt.addedNodes;if(pt.type==="attributes")pt.attributeName==="tabindex"&&nt.push({element:gt,type:_moverUpdateAttr});else{for(let _t=0;_t{var gt,vt;const bt=tt.get(ft);bt&&pt&&((gt=this._intersectionObserver)===null||gt===void 0||gt.unobserve(ft),tt.delete(ft)),!bt&&!pt&&(tt.set(ft,this),(vt=this._intersectionObserver)===null||vt===void 0||vt.observe(ft))},st=ft=>{const pt=rt.isFocusable(ft);tt.get(ft)?pt||it(ft,!0):pt&&it(ft)},lt=ft=>{const{mover:pt}=dt(ft);if(pt&&pt!==this)if(pt.getElement()===ft&&rt.isFocusable(ft))it(ft);else return;const gt=createElementTreeWalker(et.document,ft,vt=>{const{mover:bt,groupper:_t}=dt(vt);if(bt&&bt!==this)return NodeFilter.FILTER_REJECT;const xt=_t==null?void 0:_t.getFirst(!0);return _t&&_t.getElement()!==vt&&xt&&xt!==vt?NodeFilter.FILTER_REJECT:(rt.isFocusable(vt)&&it(vt),NodeFilter.FILTER_SKIP)});if(gt)for(gt.currentNode=ft;gt.nextNode(););},ut=ft=>{tt.get(ft)&&it(ft,!0);for(let gt=ft.firstElementChild;gt;gt=gt.nextElementSibling)ut(gt)},ct=()=>{!this._updateTimer&&nt.length&&(this._updateTimer=et.setTimeout(()=>{delete this._updateTimer;for(const{element:ft,type:pt}of nt)switch(pt){case _moverUpdateAttr:st(ft);break;case _moverUpdateAdd:lt(ft);break;case _moverUpdateRemove:ut(ft);break}nt=this._updateQueue=[]},0))},dt=ft=>{const pt={};for(let gt=ft;gt;gt=gt.parentElement){const vt=getTabsterOnElement(this._tabster,gt);if(vt&&(vt.groupper&&!pt.groupper&&(pt.groupper=vt.groupper),vt.mover)){pt.mover=vt.mover;break}}return pt};nt.push({element:_e,type:_moverUpdateAdd}),ct(),ot.observe(_e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["tabindex"]}),this._unobserve=()=>{ot.disconnect()}}getState(_e){const et=getElementUId(this._win,_e);if(et in this._visible){const tt=this._visible[et]||Visibilities.Invisible;return{isCurrent:this._current?this._current.get()===_e:void 0,visibility:tt}}}}function getDistance(j,_e,et,tt,rt,nt,ot,it){const st=et{this._win().addEventListener("keydown",this._onKeyDown,!0),this._tabster.focusedElement.subscribe(this._onFocus)},this._onMoverDispose=tt=>{delete this._movers[tt.id]},this._onFocus=tt=>{var rt;let nt=tt,ot=tt;for(let it=tt==null?void 0:tt.parentElement;it;it=it.parentElement){const st=(rt=getTabsterOnElement(this._tabster,it))===null||rt===void 0?void 0:rt.mover;st&&(st.setCurrent(ot),nt=void 0),!nt&&this._tabster.focusable.isFocusable(it)&&(nt=ot=it)}},this._onKeyDown=async tt=>{var rt,nt,ot,it;this._ignoredInputTimer&&(this._win().clearTimeout(this._ignoredInputTimer),delete this._ignoredInputTimer),(rt=this._ignoredInputResolve)===null||rt===void 0||rt.call(this,!1);let st=tt.keyCode;if(tt.ctrlKey||tt.altKey||tt.shiftKey||tt.metaKey)return;switch(st){case Keys.Down:case Keys.Right:case Keys.Up:case Keys.Left:case Keys.PageDown:case Keys.PageUp:case Keys.Home:case Keys.End:break;default:return}const lt=this._tabster,ut=lt.focusedElement.getFocusedElement();if(!ut||await this._isIgnoredInput(ut,st))return;const ct=RootAPI.getTabsterContext(lt,ut,{checkRtl:!0});if(!ct||!ct.mover||ct.excludedFromMover||ct.ignoreKeydown(tt))return;const dt=ct.mover,ft=dt.getElement();if(ct.groupperBeforeMover){const Ot=ct.groupper;if(Ot&&!Ot.isActive(!0)){for(let Nt=(nt=Ot.getElement())===null||nt===void 0?void 0:nt.parentElement;Nt&&Nt!==ft;Nt=Nt.parentElement)if(!((it=(ot=getTabsterOnElement(lt,Nt))===null||ot===void 0?void 0:ot.groupper)===null||it===void 0)&&it.isActive(!0))return}else return}if(!ft)return;const pt=lt.focusable,gt=dt.getProps(),vt=gt.direction||MoverDirections.Both,bt=vt===MoverDirections.Both,_t=bt||vt===MoverDirections.Vertical,xt=bt||vt===MoverDirections.Horizontal,yt=vt===MoverDirections.GridLinear,Et=yt||vt===MoverDirections.Grid,St=gt.cyclic;let $t,At,wt,Ct=0,It=0;if(Et&&(wt=ut.getBoundingClientRect(),Ct=Math.ceil(wt.left),It=Math.floor(wt.right)),ct.rtl&&(st===Keys.Right?st=Keys.Left:st===Keys.Left&&(st=Keys.Right)),st===Keys.Down&&_t||st===Keys.Right&&(xt||Et))if($t=pt.findNext({currentElement:ut,container:ft,useActiveModalizer:!0}),$t&&Et){const Ot=Math.ceil($t.getBoundingClientRect().left);!yt&&It>Ot&&($t=void 0)}else!$t&&St&&($t=pt.findFirst({container:ft,useActiveModalizer:!0}));else if(st===Keys.Up&&_t||st===Keys.Left&&(xt||Et))if($t=pt.findPrev({currentElement:ut,container:ft,useActiveModalizer:!0}),$t&&Et){const Ot=Math.floor($t.getBoundingClientRect().right);!yt&&Ot>Ct&&($t=void 0)}else!$t&&St&&($t=pt.findLast({container:ft,useActiveModalizer:!0}));else if(st===Keys.Home)Et?pt.findElement({container:ft,currentElement:ut,useActiveModalizer:!0,isBackward:!0,acceptCondition:Ot=>{var Nt;if(!pt.isFocusable(Ot))return!1;const Pt=Math.ceil((Nt=Ot.getBoundingClientRect().left)!==null&&Nt!==void 0?Nt:0);return Ot!==ut&&Ct<=Pt?!0:($t=Ot,!1)}}):$t=pt.findFirst({container:ft,useActiveModalizer:!0});else if(st===Keys.End)Et?pt.findElement({container:ft,currentElement:ut,useActiveModalizer:!0,acceptCondition:Ot=>{var Nt;if(!pt.isFocusable(Ot))return!1;const Pt=Math.ceil((Nt=Ot.getBoundingClientRect().left)!==null&&Nt!==void 0?Nt:0);return Ot!==ut&&Ct>=Pt?!0:($t=Ot,!1)}}):$t=pt.findLast({container:ft,useActiveModalizer:!0});else if(st===Keys.PageUp){if(pt.findElement({currentElement:ut,container:ft,useActiveModalizer:!0,isBackward:!0,acceptCondition:Ot=>pt.isFocusable(Ot)?isElementVerticallyVisibleInContainer(this._win,Ot,dt.visibilityTolerance)?($t=Ot,!1):!0:!1}),Et&&$t){const Ot=Math.ceil($t.getBoundingClientRect().left);pt.findElement({currentElement:$t,container:ft,useActiveModalizer:!0,acceptCondition:Nt=>{if(!pt.isFocusable(Nt))return!1;const Pt=Math.ceil(Nt.getBoundingClientRect().left);return Ct=Pt?!0:($t=Nt,!1)}})}At=!1}else if(st===Keys.PageDown){if(pt.findElement({currentElement:ut,container:ft,useActiveModalizer:!0,acceptCondition:Ot=>pt.isFocusable(Ot)?isElementVerticallyVisibleInContainer(this._win,Ot,dt.visibilityTolerance)?($t=Ot,!1):!0:!1}),Et&&$t){const Ot=Math.ceil($t.getBoundingClientRect().left);pt.findElement({currentElement:$t,container:ft,useActiveModalizer:!0,isBackward:!0,acceptCondition:Nt=>{if(!pt.isFocusable(Nt))return!1;const Pt=Math.ceil(Nt.getBoundingClientRect().left);return Ct>Pt||Ot<=Pt?!0:($t=Nt,!1)}})}At=!0}else if(Et){const Ot=st===Keys.Up,Nt=Ct,Pt=Math.ceil(wt.top),Mt=It,Rt=Math.floor(wt.bottom);let Lt,jt,Gt=0;pt.findAll({container:ft,currentElement:ut,isBackward:Ot,onElement:Vt=>{const Yt=Vt.getBoundingClientRect(),Xt=Math.ceil(Yt.left),rr=Math.ceil(Yt.top),cr=Math.floor(Yt.right),vr=Math.floor(Yt.bottom);if(Ot&&Ptrr)return!0;const Tr=Math.ceil(Math.min(Mt,cr))-Math.floor(Math.max(Nt,Xt)),gr=Math.ceil(Math.min(Mt-Nt,cr-Xt));if(Tr>0&&gr>=Tr){const Er=Tr/gr;Er>Gt&&(Lt=Vt,Gt=Er)}else if(Gt===0){const Er=getDistance(Nt,Pt,Mt,Rt,Xt,rr,cr,vr);(jt===void 0||Er0)return!1;return!0}}),$t=Lt}$t&&triggerMoveFocusEvent({by:"mover",owner:ft,next:$t,relatedEvent:tt})&&(At!==void 0&&scrollIntoView$2(this._win,$t,At),tt.preventDefault(),tt.stopImmediatePropagation(),nativeFocus($t))},this._tabster=_e,this._win=et,this._movers={},_e.queueInit(this._init)}dispose(){var _e;const et=this._win();this._tabster.focusedElement.unsubscribe(this._onFocus),(_e=this._ignoredInputResolve)===null||_e===void 0||_e.call(this,!1),this._ignoredInputTimer&&(et.clearTimeout(this._ignoredInputTimer),delete this._ignoredInputTimer),et.removeEventListener("keydown",this._onKeyDown,!0),Object.keys(this._movers).forEach(tt=>{this._movers[tt]&&(this._movers[tt].dispose(),delete this._movers[tt])})}createMover(_e,et,tt){const rt=new Mover(this._tabster,_e,this._onMoverDispose,et,tt);return this._movers[rt.id]=rt,rt}async _isIgnoredInput(_e,et){var tt;if(_e.getAttribute("aria-expanded")==="true"&&_e.hasAttribute("aria-activedescendant"))return!0;if(matchesSelector(_e,_inputSelector)){let rt=0,nt=0,ot=0,it;if(_e.tagName==="INPUT"||_e.tagName==="TEXTAREA"){const st=_e.type;if(ot=(_e.value||"").length,st==="email"||st==="number"){if(ot){const ut=(tt=_e.ownerDocument.defaultView)===null||tt===void 0?void 0:tt.getSelection();if(ut){const ct=ut.toString().length,dt=et===Keys.Left||et===Keys.Up;if(ut.modify("extend",dt?"backward":"forward","character"),ct!==ut.toString().length)return ut.modify("extend",dt?"forward":"backward","character"),!0;ot=0}}}else{const ut=_e.selectionStart;if(ut===null)return st==="hidden";rt=ut||0,nt=_e.selectionEnd||0}}else _e.contentEditable==="true"&&(it=new(getPromise(this._win))(st=>{this._ignoredInputResolve=pt=>{delete this._ignoredInputResolve,st(pt)};const lt=this._win();this._ignoredInputTimer&<.clearTimeout(this._ignoredInputTimer);const{anchorNode:ut,focusNode:ct,anchorOffset:dt,focusOffset:ft}=lt.getSelection()||{};this._ignoredInputTimer=lt.setTimeout(()=>{var pt,gt,vt;delete this._ignoredInputTimer;const{anchorNode:bt,focusNode:_t,anchorOffset:xt,focusOffset:yt}=lt.getSelection()||{};if(bt!==ut||_t!==ct||xt!==dt||yt!==ft){(pt=this._ignoredInputResolve)===null||pt===void 0||pt.call(this,!1);return}if(rt=xt||0,nt=yt||0,ot=((gt=_e.textContent)===null||gt===void 0?void 0:gt.length)||0,bt&&_t&&_e.contains(bt)&&_e.contains(_t)&&bt!==_e){let Et=!1;const St=$t=>{if($t===bt)Et=!0;else if($t===_t)return!0;const At=$t.textContent;if(At&&!$t.firstChild){const Ct=At.length;Et?_t!==bt&&(nt+=Ct):(rt+=Ct,nt+=Ct)}let wt=!1;for(let Ct=$t.firstChild;Ct&&!wt;Ct=Ct.nextSibling)wt=St(Ct);return wt};St(_e)}(vt=this._ignoredInputResolve)===null||vt===void 0||vt.call(this,!0)},0)}));if(it&&!await it||rt!==nt||rt>0&&(et===Keys.Left||et===Keys.Up||et===Keys.Home)||rt"u")return()=>{};const rt=_e.getWindow;let nt;const ot=ut=>{var ct,dt,ft,pt,gt;for(const vt of ut){const bt=vt.target,_t=vt.removedNodes,xt=vt.addedNodes;if(vt.type==="attributes")vt.attributeName===TabsterAttributeName&&et(_e,bt);else{for(let yt=0;yt<_t.length;yt++)it(_t[yt],!0),(dt=(ct=_e._dummyObserver).domChanged)===null||dt===void 0||dt.call(ct,bt);for(let yt=0;ytst(ft,ct));if(dt)for(;dt.nextNode(););}function st(ut,ct){var dt;if(!ut.getAttribute)return NodeFilter.FILTER_SKIP;const ft=ut.__tabsterElementUID;return ft&&nt&&(ct?delete nt[ft]:(dt=nt[ft])!==null&&dt!==void 0||(nt[ft]=new WeakHTMLElement(rt,ut))),(getTabsterOnElement(_e,ut)||ut.hasAttribute(TabsterAttributeName))&&et(_e,ut,ct),NodeFilter.FILTER_SKIP}const lt=new MutationObserver(ot);return tt&&it(rt().document.body),lt.observe(j,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[TabsterAttributeName]}),()=>{lt.disconnect()}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */class UncontrolledAPI{constructor(_e){this._isUncontrolledCompletely=_e}isUncontrolledCompletely(_e,et){var tt;const rt=(tt=this._isUncontrolledCompletely)===null||tt===void 0?void 0:tt.call(this,_e,et);return rt===void 0?et:rt}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */const EVENT_NAME="restorer:restorefocus",HISOTRY_DEPTH=10;class Restorer extends TabsterPart{constructor(_e,et,tt){var rt;if(super(_e,et,tt),this._hasFocus=!1,this._onFocusOut=nt=>{var ot;const it=(ot=this._element)===null||ot===void 0?void 0:ot.get();it&&nt.relatedTarget===null&&it.dispatchEvent(new Event(EVENT_NAME,{bubbles:!0})),it&&!it.contains(nt.relatedTarget)&&(this._hasFocus=!1)},this._onFocusIn=()=>{this._hasFocus=!0},this._props.type===RestorerTypes.Source){const nt=(rt=this._element)===null||rt===void 0?void 0:rt.get();nt==null||nt.addEventListener("focusout",this._onFocusOut),nt==null||nt.addEventListener("focusin",this._onFocusIn)}}dispose(){var _e,et;if(this._props.type===RestorerTypes.Source){const tt=(_e=this._element)===null||_e===void 0?void 0:_e.get();tt==null||tt.removeEventListener("focusout",this._onFocusOut),tt==null||tt.removeEventListener("focusin",this._onFocusIn),this._hasFocus&&((et=this._tabster.getWindow().document.body)===null||et===void 0||et.dispatchEvent(new Event(EVENT_NAME,{bubbles:!0})))}}}class RestorerAPI{constructor(_e){this._history=[],this._restoreFocusTimeout=0,this._onRestoreFocus=et=>{const tt=this._getWindow();this._restoreFocusTimeout&&tt.clearTimeout(this._restoreFocusTimeout),this._restoreFocusTimeout=tt.setTimeout(()=>this._restoreFocus(et.target))},this._onFocusIn=et=>{var tt;if(!et)return;const rt=getTabsterOnElement(this._tabster,et);((tt=rt==null?void 0:rt.restorer)===null||tt===void 0?void 0:tt.getProps().type)===RestorerTypes.Target&&this._addToHistory(et)},this._restoreFocus=et=>{var tt,rt,nt;const ot=this._getWindow().document;if(ot.activeElement!==ot.body||!this._keyboardNavState.isNavigatingWithKeyboard()&&ot.body.contains(et))return;let it=this._history.pop();for(;it&&!ot.body.contains((rt=(tt=it.get())===null||tt===void 0?void 0:tt.parentElement)!==null&&rt!==void 0?rt:null);)it=this._history.pop();(nt=it==null?void 0:it.get())===null||nt===void 0||nt.focus()},this._tabster=_e,this._getWindow=_e.getWindow,this._getWindow().addEventListener(EVENT_NAME,this._onRestoreFocus),this._keyboardNavState=_e.keyboardNavigation,this._focusedElementState=_e.focusedElement,this._focusedElementState.subscribe(this._onFocusIn)}dispose(){const _e=this._getWindow();this._focusedElementState.unsubscribe(this._onFocusIn),_e.removeEventListener(EVENT_NAME,this._onRestoreFocus),this._restoreFocusTimeout&&_e.clearTimeout(this._restoreFocusTimeout)}_addToHistory(_e){var et;((et=this._history[this._history.length-1])===null||et===void 0?void 0:et.get())!==_e&&(this._history.length>HISOTRY_DEPTH&&this._history.shift(),this._history.push(new WeakHTMLElement(this._getWindow,_e)))}createRestorer(_e,et){const tt=new Restorer(this._tabster,_e,et);return et.type===RestorerTypes.Target&&_e.ownerDocument.activeElement===_e&&this._addToHistory(_e),tt}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */class Tabster{constructor(_e){this.keyboardNavigation=_e.keyboardNavigation,this.focusedElement=_e.focusedElement,this.focusable=_e.focusable,this.root=_e.root,this.uncontrolled=_e.uncontrolled,this.core=_e}}class TabsterCore{constructor(_e,et){var tt,rt;this._forgetMemorizedElements=[],this._wrappers=new Set,this._initQueue=[],this._version="5.2.0",this._noop=!1,this.getWindow=()=>{if(!this._win)throw new Error("Using disposed Tabster.");return this._win},this._storage=createWeakMap(_e),this._win=_e;const nt=this.getWindow;this.keyboardNavigation=new KeyboardNavigationState(nt),this.focusedElement=new FocusedElementState(this,nt),this.focusable=new FocusableAPI(this),this.root=new RootAPI(this,et==null?void 0:et.autoRoot),this.uncontrolled=new UncontrolledAPI((et==null?void 0:et.checkUncontrolledCompletely)||(et==null?void 0:et.checkUncontrolledTrappingFocus)),this.controlTab=(tt=et==null?void 0:et.controlTab)!==null&&tt!==void 0?tt:!0,this.rootDummyInputs=!!(et!=null&&et.rootDummyInputs),this._dummyObserver=new DummyInputObserver(nt),this.getParent=(rt=et==null?void 0:et.getParent)!==null&&rt!==void 0?rt:ot=>ot.parentElement,this.internal={stopObserver:()=>{this._unobserve&&(this._unobserve(),delete this._unobserve)},resumeObserver:ot=>{if(!this._unobserve){const it=nt().document;this._unobserve=observeMutations(it,this,updateTabsterByAttribute,ot)}}},startFakeWeakRefsCleanup(nt),this.queueInit(()=>{this.internal.resumeObserver(!0)})}_mergeProps(_e){var et;_e&&(this.getParent=(et=_e.getParent)!==null&&et!==void 0?et:this.getParent)}createTabster(_e,et){const tt=new Tabster(this);return _e||this._wrappers.add(tt),this._mergeProps(et),tt}disposeTabster(_e,et){et?this._wrappers.clear():this._wrappers.delete(_e),this._wrappers.size===0&&this.dispose()}dispose(){var _e,et,tt,rt,nt,ot,it,st;this.internal.stopObserver();const lt=this._win;lt==null||lt.clearTimeout(this._initTimer),delete this._initTimer,this._initQueue=[],this._forgetMemorizedElements=[],lt&&this._forgetMemorizedTimer&&(lt.clearTimeout(this._forgetMemorizedTimer),delete this._forgetMemorizedTimer),(_e=this.outline)===null||_e===void 0||_e.dispose(),(et=this.crossOrigin)===null||et===void 0||et.dispose(),(tt=this.deloser)===null||tt===void 0||tt.dispose(),(rt=this.groupper)===null||rt===void 0||rt.dispose(),(nt=this.mover)===null||nt===void 0||nt.dispose(),(ot=this.modalizer)===null||ot===void 0||ot.dispose(),(it=this.observedElement)===null||it===void 0||it.dispose(),(st=this.restorer)===null||st===void 0||st.dispose(),this.keyboardNavigation.dispose(),this.focusable.dispose(),this.focusedElement.dispose(),this.root.dispose(),this._dummyObserver.dispose(),stopFakeWeakRefsCleanupAndClearStorage(this.getWindow),clearElementCache(this.getWindow),this._storage=new WeakMap,this._wrappers.clear(),lt&&(disposeInstanceContext(lt),delete lt.__tabsterInstance,delete this._win)}storageEntry(_e,et){const tt=this._storage;let rt=tt.get(_e);return rt?et===!1&&Object.keys(rt).length===0&&tt.delete(_e):et===!0&&(rt={},tt.set(_e,rt)),rt}forceCleanup(){this._win&&(this._forgetMemorizedElements.push(this._win.document.body),!this._forgetMemorizedTimer&&(this._forgetMemorizedTimer=this._win.setTimeout(()=>{delete this._forgetMemorizedTimer;for(let _e=this._forgetMemorizedElements.shift();_e;_e=this._forgetMemorizedElements.shift())clearElementCache(this.getWindow,_e),FocusedElementState.forgetMemorized(this.focusedElement,_e)},0),cleanupFakeWeakRefs(this.getWindow,!0)))}queueInit(_e){var et;this._win&&(this._initQueue.push(_e),this._initTimer||(this._initTimer=(et=this._win)===null||et===void 0?void 0:et.setTimeout(()=>{delete this._initTimer,this.drainInitQueue()},0)))}drainInitQueue(){if(!this._win)return;const _e=this._initQueue;this._initQueue=[],_e.forEach(et=>et())}}function createTabster(j,_e){let et=getCurrentTabster(j);return et?et.createTabster(!1,_e):(et=new TabsterCore(j,_e),j.__tabsterInstance=et,et.createTabster())}function getGroupper(j){const _e=j.core;return _e.groupper||(_e.groupper=new GroupperAPI(_e,_e.getWindow)),_e.groupper}function getMover(j){const _e=j.core;return _e.mover||(_e.mover=new MoverAPI(_e,_e.getWindow)),_e.mover}function getModalizer(j,_e,et){const tt=j.core;return tt.modalizer||(tt.modalizer=new ModalizerAPI(tt,_e,et)),tt.modalizer}function getRestorer(j){const _e=j.core;return _e.restorer||(_e.restorer=new RestorerAPI(_e)),_e.restorer}function disposeTabster(j,_e){j.core.disposeTabster(j,_e)}function getCurrentTabster(j){return j.__tabsterInstance}const useTabster=()=>{const{targetDocument:j}=useFluent(),_e=(j==null?void 0:j.defaultView)||void 0,et=reactExports.useMemo(()=>_e?createTabster(_e,{autoRoot:{},controlTab:!1,getParent:getParent$1,checkUncontrolledTrappingFocus:tt=>{var rt;return!!(!((rt=tt.firstElementChild)===null||rt===void 0)&&rt.hasAttribute("data-is-focus-trap-zone-bumper"))}}):null,[_e]);return useIsomorphicLayoutEffect$1(()=>()=>{et&&disposeTabster(et)},[et]),et},useTabsterAttributes=j=>(useTabster(),getTabsterAttribute(j)),useArrowNavigationGroup=(j={})=>{const{circular:_e,axis:et,memorizeCurrent:tt,tabbable:rt,ignoreDefaultKeydown:nt,unstable_hasDefault:ot}=j,it=useTabster();return it&&getMover(it),useTabsterAttributes({mover:{cyclic:!!_e,direction:axisToMoverDirection(et??"vertical"),memorizeCurrent:tt,tabbable:rt,hasDefault:ot},...nt&&{focusable:{ignoreKeydown:nt}}})};function axisToMoverDirection(j){switch(j){case"horizontal":return Types.MoverDirections.Horizontal;case"grid":return Types.MoverDirections.Grid;case"grid-linear":return Types.MoverDirections.GridLinear;case"both":return Types.MoverDirections.Both;case"vertical":default:return Types.MoverDirections.Vertical}}const useFocusableGroup=j=>{const _e=useTabster();return _e&&getGroupper(_e),useTabsterAttributes({groupper:{tabbability:getTabbability(j==null?void 0:j.tabBehavior)},focusable:{ignoreKeydown:j==null?void 0:j.ignoreDefaultKeydown}})},getTabbability=j=>{switch(j){case"unlimited":return Types.GroupperTabbabilities.Unlimited;case"limited":return Types.GroupperTabbabilities.Limited;case"limited-trap-focus":return Types.GroupperTabbabilities.LimitedTrapFocus;default:return}},useFocusFinders=()=>{const j=useTabster(),{targetDocument:_e}=useFluent(),et=reactExports.useCallback((it,st)=>(j==null?void 0:j.focusable.findAll({container:it,acceptCondition:st}))||[],[j]),tt=reactExports.useCallback(it=>j==null?void 0:j.focusable.findFirst({container:it}),[j]),rt=reactExports.useCallback(it=>j==null?void 0:j.focusable.findLast({container:it}),[j]),nt=reactExports.useCallback((it,st={})=>{if(!j||!_e)return null;const{container:lt=_e.body}=st;return j.focusable.findNext({currentElement:it,container:lt})},[j,_e]),ot=reactExports.useCallback((it,st={})=>{if(!j||!_e)return null;const{container:lt=_e.body}=st;return j.focusable.findPrev({currentElement:it,container:lt})},[j,_e]);return{findAllFocusable:et,findFirstFocusable:tt,findLastFocusable:rt,findNextFocusable:nt,findPrevFocusable:ot}},FOCUS_VISIBLE_ATTR="data-fui-focus-visible",FOCUS_WITHIN_ATTR="data-fui-focus-within";function applyFocusVisiblePolyfill(j,_e){if(alreadyInScope(j))return()=>{};const et={current:void 0},tt=createKeyborg(_e);function rt(st){tt.isNavigatingWithKeyboard()&&isHTMLElement$4(st)&&(et.current=st,st.setAttribute(FOCUS_VISIBLE_ATTR,""))}function nt(){et.current&&(et.current.removeAttribute(FOCUS_VISIBLE_ATTR),et.current=void 0)}tt.subscribe(st=>{st||nt()});const ot=st=>{nt();const lt=st.composedPath()[0];rt(lt)},it=st=>{(!st.relatedTarget||isHTMLElement$4(st.relatedTarget)&&!j.contains(st.relatedTarget))&&nt()};return j.addEventListener(KEYBORG_FOCUSIN,ot),j.addEventListener("focusout",it),j.focusVisible=!0,rt(_e.document.activeElement),()=>{nt(),j.removeEventListener(KEYBORG_FOCUSIN,ot),j.removeEventListener("focusout",it),delete j.focusVisible,disposeKeyborg(tt)}}function alreadyInScope(j){return j?j.focusVisible?!0:alreadyInScope(j==null?void 0:j.parentElement):!1}function useFocusVisible(j={}){const _e=useFluent(),et=reactExports.useRef(null);var tt;const rt=(tt=j.targetDocument)!==null&&tt!==void 0?tt:_e.targetDocument;return reactExports.useEffect(()=>{if(rt!=null&&rt.defaultView&&et.current)return applyFocusVisiblePolyfill(et.current,rt.defaultView)},[et,rt]),et}function applyFocusWithinPolyfill(j,_e){const et=createKeyborg(_e);et.subscribe(nt=>{nt||removeFocusWithinClass(j)});const tt=nt=>{et.isNavigatingWithKeyboard()&&isHTMLElement$3(nt.target)&&applyFocusWithinClass(j)},rt=nt=>{(!nt.relatedTarget||isHTMLElement$3(nt.relatedTarget)&&!j.contains(nt.relatedTarget))&&removeFocusWithinClass(j)};return j.addEventListener(KEYBORG_FOCUSIN,tt),j.addEventListener("focusout",rt),()=>{j.removeEventListener(KEYBORG_FOCUSIN,tt),j.removeEventListener("focusout",rt),disposeKeyborg(et)}}function applyFocusWithinClass(j){j.setAttribute(FOCUS_WITHIN_ATTR,"")}function removeFocusWithinClass(j){j.removeAttribute(FOCUS_WITHIN_ATTR)}function isHTMLElement$3(j){return j?!!(j&&typeof j=="object"&&"classList"in j&&"contains"in j):!1}function useFocusWithin(){const{targetDocument:j}=useFluent(),_e=reactExports.useRef(null);return reactExports.useEffect(()=>{if(j!=null&&j.defaultView&&_e.current)return applyFocusWithinPolyfill(_e.current,j.defaultView)},[_e,j]),_e}const useModalAttributes=(j={})=>{const{trapFocus:_e,alwaysFocusable:et,legacyTrapFocus:tt}=j,rt=useTabster();rt&&(getModalizer(rt),getRestorer(rt));const nt=useId$1("modal-",j.id),ot=useTabsterAttributes({restorer:{type:Types.RestorerTypes.Source},..._e&&{modalizer:{id:nt,isOthersAccessible:!_e,isAlwaysAccessible:et,isTrapped:tt&&_e}}}),it=useTabsterAttributes({restorer:{type:Types.RestorerTypes.Target}});return{modalAttributes:ot,triggerAttributes:it}},grey={2:"#050505",4:"#0a0a0a",6:"#0f0f0f",8:"#141414",10:"#1a1a1a",12:"#1f1f1f",14:"#242424",16:"#292929",18:"#2e2e2e",20:"#333333",22:"#383838",24:"#3d3d3d",26:"#424242",28:"#474747",30:"#4d4d4d",32:"#525252",34:"#575757",36:"#5c5c5c",38:"#616161",40:"#666666",42:"#6b6b6b",44:"#707070",46:"#757575",48:"#7a7a7a",50:"#808080",52:"#858585",54:"#8a8a8a",56:"#8f8f8f",58:"#949494",60:"#999999",62:"#9e9e9e",64:"#a3a3a3",66:"#a8a8a8",68:"#adadad",70:"#b3b3b3",72:"#b8b8b8",74:"#bdbdbd",76:"#c2c2c2",78:"#c7c7c7",80:"#cccccc",82:"#d1d1d1",84:"#d6d6d6",86:"#dbdbdb",88:"#e0e0e0",90:"#e6e6e6",92:"#ebebeb",94:"#f0f0f0",96:"#f5f5f5",98:"#fafafa"},whiteAlpha={5:"rgba(255, 255, 255, 0.05)",10:"rgba(255, 255, 255, 0.1)",20:"rgba(255, 255, 255, 0.2)",30:"rgba(255, 255, 255, 0.3)",40:"rgba(255, 255, 255, 0.4)",50:"rgba(255, 255, 255, 0.5)",60:"rgba(255, 255, 255, 0.6)",70:"rgba(255, 255, 255, 0.7)",80:"rgba(255, 255, 255, 0.8)",90:"rgba(255, 255, 255, 0.9)"},blackAlpha={5:"rgba(0, 0, 0, 0.05)",10:"rgba(0, 0, 0, 0.1)",20:"rgba(0, 0, 0, 0.2)",30:"rgba(0, 0, 0, 0.3)",40:"rgba(0, 0, 0, 0.4)",50:"rgba(0, 0, 0, 0.5)",60:"rgba(0, 0, 0, 0.6)",70:"rgba(0, 0, 0, 0.7)",80:"rgba(0, 0, 0, 0.8)",90:"rgba(0, 0, 0, 0.9)"},grey10Alpha={5:"rgba(26, 26, 26, 0.05)",10:"rgba(26, 26, 26, 0.1)",20:"rgba(26, 26, 26, 0.2)",30:"rgba(26, 26, 26, 0.3)",40:"rgba(26, 26, 26, 0.4)",50:"rgba(26, 26, 26, 0.5)",60:"rgba(26, 26, 26, 0.6)",70:"rgba(26, 26, 26, 0.7)",80:"rgba(26, 26, 26, 0.8)",90:"rgba(26, 26, 26, 0.9)"},grey12Alpha={5:"rgba(31, 31, 31, 0.05)",10:"rgba(31, 31, 31, 0.1)",20:"rgba(31, 31, 31, 0.2)",30:"rgba(31, 31, 31, 0.3)",40:"rgba(31, 31, 31, 0.4)",50:"rgba(31, 31, 31, 0.5)",60:"rgba(31, 31, 31, 0.6)",70:"rgba(31, 31, 31, 0.7)",80:"rgba(31, 31, 31, 0.8)",90:"rgba(31, 31, 31, 0.9)"},grey14Alpha={5:"rgba(36, 36, 36, 0.05)",10:"rgba(36, 36, 36, 0.1)",20:"rgba(36, 36, 36, 0.2)",30:"rgba(36, 36, 36, 0.3)",40:"rgba(36, 36, 36, 0.4)",50:"rgba(36, 36, 36, 0.5)",60:"rgba(36, 36, 36, 0.6)",70:"rgba(36, 36, 36, 0.7)",80:"rgba(36, 36, 36, 0.8)",90:"rgba(36, 36, 36, 0.9)"},white="#ffffff",black="#000000",darkRed={shade50:"#130204",shade40:"#230308",shade30:"#420610",shade20:"#590815",shade10:"#690a19",primary:"#750b1c",tint10:"#861b2c",tint20:"#962f3f",tint30:"#ac4f5e",tint40:"#d69ca5",tint50:"#e9c7cd",tint60:"#f9f0f2"},cranberry={shade50:"#200205",shade40:"#3b0509",shade30:"#6e0811",shade20:"#960b18",shade10:"#b10e1c",primary:"#c50f1f",tint10:"#cc2635",tint20:"#d33f4c",tint30:"#dc626d",tint40:"#eeacb2",tint50:"#f6d1d5",tint60:"#fdf3f4"},red={shade50:"#210809",shade40:"#3f1011",shade30:"#751d1f",shade20:"#9f282b",shade10:"#bc2f32",primary:"#d13438",tint10:"#d7494c",tint20:"#dc5e62",tint30:"#e37d80",tint40:"#f1bbbc",tint50:"#f8dadb",tint60:"#fdf6f6"},darkOrange={shade50:"#230900",shade40:"#411200",shade30:"#7a2101",shade20:"#a62d01",shade10:"#c43501",primary:"#da3b01",tint10:"#de501c",tint20:"#e36537",tint30:"#e9835e",tint40:"#f4bfab",tint50:"#f9dcd1",tint60:"#fdf6f3"},pumpkin={shade50:"#200d03",shade40:"#3d1805",shade30:"#712d09",shade20:"#9a3d0c",shade10:"#b6480e",primary:"#ca5010",tint10:"#d06228",tint20:"#d77440",tint30:"#df8e64",tint40:"#efc4ad",tint50:"#f7dfd2",tint60:"#fdf7f4"},orange={shade50:"#271002",shade40:"#4a1e04",shade30:"#8a3707",shade20:"#bc4b09",shade10:"#de590b",primary:"#f7630c",tint10:"#f87528",tint20:"#f98845",tint30:"#faa06b",tint40:"#fdcfb4",tint50:"#fee5d7",tint60:"#fff9f5"},peach={shade50:"#291600",shade40:"#4d2a00",shade30:"#8f4e00",shade20:"#c26a00",shade10:"#e67e00",primary:"#ff8c00",tint10:"#ff9a1f",tint20:"#ffa83d",tint30:"#ffba66",tint40:"#ffddb3",tint50:"#ffedd6",tint60:"#fffaf5"},marigold={shade50:"#251a00",shade40:"#463100",shade30:"#835b00",shade20:"#b27c00",shade10:"#d39300",primary:"#eaa300",tint10:"#edad1c",tint20:"#efb839",tint30:"#f2c661",tint40:"#f9e2ae",tint50:"#fcefd3",tint60:"#fefbf4"},yellow={primary:"#fde300",shade10:"#e4cc00",shade20:"#c0ad00",shade30:"#817400",shade40:"#4c4400",shade50:"#282400",tint10:"#fde61e",tint20:"#fdea3d",tint30:"#feee66",tint40:"#fef7b2",tint50:"#fffad6",tint60:"#fffef5"},gold={shade50:"#1f1900",shade40:"#3a2f00",shade30:"#6c5700",shade20:"#937700",shade10:"#ae8c00",primary:"#c19c00",tint10:"#c8a718",tint20:"#d0b232",tint30:"#dac157",tint40:"#ecdfa5",tint50:"#f5eece",tint60:"#fdfbf2"},brass={shade50:"#181202",shade40:"#2e2103",shade30:"#553e06",shade20:"#745408",shade10:"#89640a",primary:"#986f0b",tint10:"#a47d1e",tint20:"#b18c34",tint30:"#c1a256",tint40:"#e0cea2",tint50:"#efe4cb",tint60:"#fbf8f2"},brown={shade50:"#170e07",shade40:"#2b1a0e",shade30:"#50301a",shade20:"#6c4123",shade10:"#804d29",primary:"#8e562e",tint10:"#9c663f",tint20:"#a97652",tint30:"#bb8f6f",tint40:"#ddc3b0",tint50:"#edded3",tint60:"#faf7f4"},forest={shade50:"#0c1501",shade40:"#162702",shade30:"#294903",shade20:"#376304",shade10:"#427505",primary:"#498205",tint10:"#599116",tint20:"#6ba02b",tint30:"#85b44c",tint40:"#bdd99b",tint50:"#dbebc7",tint60:"#f6faf0"},seafoam={shade50:"#002111",shade40:"#003d20",shade30:"#00723b",shade20:"#009b51",shade10:"#00b85f",primary:"#00cc6a",tint10:"#19d279",tint20:"#34d889",tint30:"#5ae0a0",tint40:"#a8f0cd",tint50:"#cff7e4",tint60:"#f3fdf8"},lightGreen={shade50:"#031a02",shade40:"#063004",shade30:"#0b5a08",shade20:"#0e7a0b",shade10:"#11910d",primary:"#13a10e",tint10:"#27ac22",tint20:"#3db838",tint30:"#5ec75a",tint40:"#a7e3a5",tint50:"#cef0cd",tint60:"#f2fbf2"},green={shade50:"#031403",shade40:"#052505",shade30:"#094509",shade20:"#0c5e0c",shade10:"#0e700e",primary:"#107c10",tint10:"#218c21",tint20:"#359b35",tint30:"#54b054",tint40:"#9fd89f",tint50:"#c9eac9",tint60:"#f1faf1"},darkGreen={shade50:"#021102",shade40:"#032003",shade30:"#063b06",shade20:"#085108",shade10:"#0a5f0a",primary:"#0b6a0b",tint10:"#1a7c1a",tint20:"#2d8e2d",tint30:"#4da64d",tint40:"#9ad29a",tint50:"#c6e7c6",tint60:"#f0f9f0"},lightTeal={shade50:"#001d1f",shade40:"#00373a",shade30:"#00666d",shade20:"#008b94",shade10:"#00a5af",primary:"#00b7c3",tint10:"#18bfca",tint20:"#32c8d1",tint30:"#58d3db",tint40:"#a6e9ed",tint50:"#cef3f5",tint60:"#f2fcfd"},teal={shade50:"#001516",shade40:"#012728",shade30:"#02494c",shade20:"#026467",shade10:"#037679",primary:"#038387",tint10:"#159195",tint20:"#2aa0a4",tint30:"#4cb4b7",tint40:"#9bd9db",tint50:"#c7ebec",tint60:"#f0fafa"},steel={shade50:"#000f12",shade40:"#001b22",shade30:"#00333f",shade20:"#004555",shade10:"#005265",primary:"#005b70",tint10:"#0f6c81",tint20:"#237d92",tint30:"#4496a9",tint40:"#94c8d4",tint50:"#c3e1e8",tint60:"#eff7f9"},blue={shade50:"#001322",shade40:"#002440",shade30:"#004377",shade20:"#005ba1",shade10:"#006cbf",primary:"#0078d4",tint10:"#1a86d9",tint20:"#3595de",tint30:"#5caae5",tint40:"#a9d3f2",tint50:"#d0e7f8",tint60:"#f3f9fd"},royalBlue={shade50:"#000c16",shade40:"#00172a",shade30:"#002c4e",shade20:"#003b6a",shade10:"#00467e",primary:"#004e8c",tint10:"#125e9a",tint20:"#286fa8",tint30:"#4a89ba",tint40:"#9abfdc",tint50:"#c7dced",tint60:"#f0f6fa"},cornflower={shade50:"#0d1126",shade40:"#182047",shade30:"#2c3c85",shade20:"#3c51b4",shade10:"#4760d5",primary:"#4f6bed",tint10:"#637cef",tint20:"#778df1",tint30:"#93a4f4",tint40:"#c8d1fa",tint50:"#e1e6fc",tint60:"#f7f9fe"},navy={shade50:"#00061d",shade40:"#000c36",shade30:"#001665",shade20:"#001e89",shade10:"#0023a2",primary:"#0027b4",tint10:"#173bbd",tint20:"#3050c6",tint30:"#546fd2",tint40:"#a3b2e8",tint50:"#ccd5f3",tint60:"#f2f4fc"},lavender={shade50:"#120f25",shade40:"#221d46",shade30:"#3f3682",shade20:"#5649b0",shade10:"#6656d1",primary:"#7160e8",tint10:"#8172eb",tint20:"#9184ee",tint30:"#a79cf1",tint40:"#d2ccf8",tint50:"#e7e4fb",tint60:"#f9f8fe"},purple={shade50:"#0f0717",shade40:"#1c0e2b",shade30:"#341a51",shade20:"#46236e",shade10:"#532982",primary:"#5c2e91",tint10:"#6b3f9e",tint20:"#7c52ab",tint30:"#9470bd",tint40:"#c6b1de",tint50:"#e0d3ed",tint60:"#f7f4fb"},grape={shade50:"#160418",shade40:"#29072e",shade30:"#4c0d55",shade20:"#671174",shade10:"#7a1589",primary:"#881798",tint10:"#952aa4",tint20:"#a33fb1",tint30:"#b55fc1",tint40:"#d9a7e0",tint50:"#eaceef",tint60:"#faf2fb"},berry={shade50:"#1f091d",shade40:"#3a1136",shade30:"#6d2064",shade20:"#932b88",shade10:"#af33a1",primary:"#c239b3",tint10:"#c94cbc",tint20:"#d161c4",tint30:"#da7ed0",tint40:"#edbbe7",tint50:"#f5daf2",tint60:"#fdf5fc"},lilac={shade50:"#1c0b1f",shade40:"#35153a",shade30:"#63276d",shade20:"#863593",shade10:"#9f3faf",primary:"#b146c2",tint10:"#ba58c9",tint20:"#c36bd1",tint30:"#cf87da",tint40:"#e6bfed",tint50:"#f2dcf5",tint60:"#fcf6fd"},pink={shade50:"#24091b",shade40:"#441232",shade30:"#80215d",shade20:"#ad2d7e",shade10:"#cd3595",primary:"#e43ba6",tint10:"#e750b0",tint20:"#ea66ba",tint30:"#ef85c8",tint40:"#f7c0e3",tint50:"#fbddf0",tint60:"#fef6fb"},magenta={shade50:"#1f0013",shade40:"#390024",shade30:"#6b0043",shade20:"#91005a",shade10:"#ac006b",primary:"#bf0077",tint10:"#c71885",tint20:"#ce3293",tint30:"#d957a8",tint40:"#eca5d1",tint50:"#f5cee6",tint60:"#fcf2f9"},plum={shade50:"#13000c",shade40:"#240017",shade30:"#43002b",shade20:"#5a003b",shade10:"#6b0045",primary:"#77004d",tint10:"#87105d",tint20:"#98246f",tint30:"#ad4589",tint40:"#d696c0",tint50:"#e9c4dc",tint60:"#faf0f6"},beige={shade50:"#141313",shade40:"#252323",shade30:"#444241",shade20:"#5d5958",shade10:"#6e6968",primary:"#7a7574",tint10:"#8a8584",tint20:"#9a9594",tint30:"#afabaa",tint40:"#d7d4d4",tint50:"#eae8e8",tint60:"#faf9f9"},mink={shade50:"#0f0e0e",shade40:"#1c1b1a",shade30:"#343231",shade20:"#474443",shade10:"#54514f",primary:"#5d5a58",tint10:"#706d6b",tint20:"#84817e",tint30:"#9e9b99",tint40:"#cecccb",tint50:"#e5e4e3",tint60:"#f8f8f8"},platinum={shade50:"#111314",shade40:"#1f2426",shade30:"#3b4447",shade20:"#505c60",shade10:"#5f6d71",primary:"#69797e",tint10:"#79898d",tint20:"#89989d",tint30:"#a0adb2",tint40:"#cdd6d8",tint50:"#e4e9ea",tint60:"#f8f9fa"},anchor={shade50:"#090a0b",shade40:"#111315",shade30:"#202427",shade20:"#2b3135",shade10:"#333a3f",primary:"#394146",tint10:"#4d565c",tint20:"#626c72",tint30:"#808a90",tint40:"#bcc3c7",tint50:"#dbdfe1",tint60:"#f6f7f8"},statusSharedColors={red,green,darkOrange,yellow,berry,lightGreen,marigold},personaSharedColors={darkRed,cranberry,pumpkin,peach,gold,brass,brown,forest,seafoam,darkGreen,lightTeal,teal,steel,blue,royalBlue,cornflower,navy,lavender,purple,grape,lilac,pink,magenta,plum,beige,mink,platinum,anchor},mappedStatusColors={cranberry,green,orange},statusSharedColorNames=["red","green","darkOrange","yellow","berry","lightGreen","marigold"],personaSharedColorNames=["darkRed","cranberry","pumpkin","peach","gold","brass","brown","forest","seafoam","darkGreen","lightTeal","teal","steel","blue","royalBlue","cornflower","navy","lavender","purple","grape","lilac","pink","magenta","plum","beige","mink","platinum","anchor"],statusColorMapping={success:"green",warning:"orange",danger:"cranberry"},statusColorPaletteTokens$1=statusSharedColorNames.reduce((j,_e)=>{const et=_e.slice(0,1).toUpperCase()+_e.slice(1),tt={[`colorPalette${et}Background1`]:statusSharedColors[_e].tint60,[`colorPalette${et}Background2`]:statusSharedColors[_e].tint40,[`colorPalette${et}Background3`]:statusSharedColors[_e].primary,[`colorPalette${et}Foreground1`]:statusSharedColors[_e].shade10,[`colorPalette${et}Foreground2`]:statusSharedColors[_e].shade30,[`colorPalette${et}Foreground3`]:statusSharedColors[_e].primary,[`colorPalette${et}BorderActive`]:statusSharedColors[_e].primary,[`colorPalette${et}Border1`]:statusSharedColors[_e].tint40,[`colorPalette${et}Border2`]:statusSharedColors[_e].primary};return Object.assign(j,tt)},{});statusColorPaletteTokens$1.colorPaletteYellowForeground1=statusSharedColors.yellow.shade30;statusColorPaletteTokens$1.colorPaletteRedForegroundInverted=statusSharedColors.red.tint20;statusColorPaletteTokens$1.colorPaletteGreenForegroundInverted=statusSharedColors.green.tint20;statusColorPaletteTokens$1.colorPaletteYellowForegroundInverted=statusSharedColors.yellow.tint40;const personaColorPaletteTokens$1=personaSharedColorNames.reduce((j,_e)=>{const et=_e.slice(0,1).toUpperCase()+_e.slice(1),tt={[`colorPalette${et}Background2`]:personaSharedColors[_e].tint40,[`colorPalette${et}Foreground2`]:personaSharedColors[_e].shade30,[`colorPalette${et}BorderActive`]:personaSharedColors[_e].primary};return Object.assign(j,tt)},{}),colorPaletteTokens$1={...statusColorPaletteTokens$1,...personaColorPaletteTokens$1},colorStatusTokens$1=Object.entries(statusColorMapping).reduce((j,[_e,et])=>{const tt=_e.slice(0,1).toUpperCase()+_e.slice(1),rt={[`colorStatus${tt}Background1`]:mappedStatusColors[et].tint60,[`colorStatus${tt}Background2`]:mappedStatusColors[et].tint40,[`colorStatus${tt}Background3`]:mappedStatusColors[et].primary,[`colorStatus${tt}Foreground1`]:mappedStatusColors[et].shade10,[`colorStatus${tt}Foreground2`]:mappedStatusColors[et].shade30,[`colorStatus${tt}Foreground3`]:mappedStatusColors[et].primary,[`colorStatus${tt}ForegroundInverted`]:mappedStatusColors[et].tint30,[`colorStatus${tt}BorderActive`]:mappedStatusColors[et].primary,[`colorStatus${tt}Border1`]:mappedStatusColors[et].tint40,[`colorStatus${tt}Border2`]:mappedStatusColors[et].primary};return Object.assign(j,rt)},{});colorStatusTokens$1.colorStatusWarningForeground1=mappedStatusColors[statusColorMapping.warning].shade20;colorStatusTokens$1.colorStatusWarningForeground3=mappedStatusColors[statusColorMapping.warning].shade20;colorStatusTokens$1.colorStatusWarningBorder2=mappedStatusColors[statusColorMapping.warning].shade20;const generateColorTokens$1=j=>({colorNeutralForeground1:grey[14],colorNeutralForeground1Hover:grey[14],colorNeutralForeground1Pressed:grey[14],colorNeutralForeground1Selected:grey[14],colorNeutralForeground2:grey[26],colorNeutralForeground2Hover:grey[14],colorNeutralForeground2Pressed:grey[14],colorNeutralForeground2Selected:grey[14],colorNeutralForeground2BrandHover:j[80],colorNeutralForeground2BrandPressed:j[70],colorNeutralForeground2BrandSelected:j[80],colorNeutralForeground3:grey[38],colorNeutralForeground3Hover:grey[26],colorNeutralForeground3Pressed:grey[26],colorNeutralForeground3Selected:grey[26],colorNeutralForeground3BrandHover:j[80],colorNeutralForeground3BrandPressed:j[70],colorNeutralForeground3BrandSelected:j[80],colorNeutralForeground4:grey[44],colorNeutralForegroundDisabled:grey[74],colorNeutralForegroundInvertedDisabled:whiteAlpha[40],colorBrandForegroundLink:j[70],colorBrandForegroundLinkHover:j[60],colorBrandForegroundLinkPressed:j[40],colorBrandForegroundLinkSelected:j[70],colorNeutralForeground2Link:grey[26],colorNeutralForeground2LinkHover:grey[14],colorNeutralForeground2LinkPressed:grey[14],colorNeutralForeground2LinkSelected:grey[14],colorCompoundBrandForeground1:j[80],colorCompoundBrandForeground1Hover:j[70],colorCompoundBrandForeground1Pressed:j[60],colorBrandForeground1:j[80],colorBrandForeground2:j[70],colorBrandForeground2Hover:j[60],colorBrandForeground2Pressed:j[30],colorNeutralForeground1Static:grey[14],colorNeutralForegroundStaticInverted:white,colorNeutralForegroundInverted:white,colorNeutralForegroundInvertedHover:white,colorNeutralForegroundInvertedPressed:white,colorNeutralForegroundInvertedSelected:white,colorNeutralForegroundInverted2:white,colorNeutralForegroundOnBrand:white,colorNeutralForegroundInvertedLink:white,colorNeutralForegroundInvertedLinkHover:white,colorNeutralForegroundInvertedLinkPressed:white,colorNeutralForegroundInvertedLinkSelected:white,colorBrandForegroundInverted:j[100],colorBrandForegroundInvertedHover:j[110],colorBrandForegroundInvertedPressed:j[100],colorBrandForegroundOnLight:j[80],colorBrandForegroundOnLightHover:j[70],colorBrandForegroundOnLightPressed:j[50],colorBrandForegroundOnLightSelected:j[60],colorNeutralBackground1:white,colorNeutralBackground1Hover:grey[96],colorNeutralBackground1Pressed:grey[88],colorNeutralBackground1Selected:grey[92],colorNeutralBackground2:grey[98],colorNeutralBackground2Hover:grey[94],colorNeutralBackground2Pressed:grey[86],colorNeutralBackground2Selected:grey[90],colorNeutralBackground3:grey[96],colorNeutralBackground3Hover:grey[92],colorNeutralBackground3Pressed:grey[84],colorNeutralBackground3Selected:grey[88],colorNeutralBackground4:grey[94],colorNeutralBackground4Hover:grey[98],colorNeutralBackground4Pressed:grey[96],colorNeutralBackground4Selected:white,colorNeutralBackground5:grey[92],colorNeutralBackground5Hover:grey[96],colorNeutralBackground5Pressed:grey[94],colorNeutralBackground5Selected:grey[98],colorNeutralBackground6:grey[90],colorNeutralBackgroundInverted:grey[16],colorNeutralBackgroundStatic:grey[20],colorNeutralBackgroundAlpha:whiteAlpha[50],colorNeutralBackgroundAlpha2:whiteAlpha[80],colorSubtleBackground:"transparent",colorSubtleBackgroundHover:grey[96],colorSubtleBackgroundPressed:grey[88],colorSubtleBackgroundSelected:grey[92],colorSubtleBackgroundLightAlphaHover:whiteAlpha[70],colorSubtleBackgroundLightAlphaPressed:whiteAlpha[50],colorSubtleBackgroundLightAlphaSelected:"transparent",colorSubtleBackgroundInverted:"transparent",colorSubtleBackgroundInvertedHover:blackAlpha[10],colorSubtleBackgroundInvertedPressed:blackAlpha[30],colorSubtleBackgroundInvertedSelected:blackAlpha[20],colorTransparentBackground:"transparent",colorTransparentBackgroundHover:"transparent",colorTransparentBackgroundPressed:"transparent",colorTransparentBackgroundSelected:"transparent",colorNeutralBackgroundDisabled:grey[94],colorNeutralBackgroundInvertedDisabled:whiteAlpha[10],colorNeutralStencil1:grey[90],colorNeutralStencil2:grey[98],colorNeutralStencil1Alpha:blackAlpha[10],colorNeutralStencil2Alpha:blackAlpha[5],colorBackgroundOverlay:blackAlpha[40],colorScrollbarOverlay:blackAlpha[50],colorBrandBackground:j[80],colorBrandBackgroundHover:j[70],colorBrandBackgroundPressed:j[40],colorBrandBackgroundSelected:j[60],colorCompoundBrandBackground:j[80],colorCompoundBrandBackgroundHover:j[70],colorCompoundBrandBackgroundPressed:j[60],colorBrandBackgroundStatic:j[80],colorBrandBackground2:j[160],colorBrandBackground2Hover:j[150],colorBrandBackground2Pressed:j[130],colorBrandBackgroundInverted:white,colorBrandBackgroundInvertedHover:j[160],colorBrandBackgroundInvertedPressed:j[140],colorBrandBackgroundInvertedSelected:j[150],colorNeutralStrokeAccessible:grey[38],colorNeutralStrokeAccessibleHover:grey[34],colorNeutralStrokeAccessiblePressed:grey[30],colorNeutralStrokeAccessibleSelected:j[80],colorNeutralStroke1:grey[82],colorNeutralStroke1Hover:grey[78],colorNeutralStroke1Pressed:grey[70],colorNeutralStroke1Selected:grey[74],colorNeutralStroke2:grey[88],colorNeutralStroke3:grey[94],colorNeutralStrokeSubtle:grey[88],colorNeutralStrokeOnBrand:white,colorNeutralStrokeOnBrand2:white,colorNeutralStrokeOnBrand2Hover:white,colorNeutralStrokeOnBrand2Pressed:white,colorNeutralStrokeOnBrand2Selected:white,colorBrandStroke1:j[80],colorBrandStroke2:j[140],colorBrandStroke2Hover:j[120],colorBrandStroke2Pressed:j[80],colorBrandStroke2Contrast:j[140],colorCompoundBrandStroke:j[80],colorCompoundBrandStrokeHover:j[70],colorCompoundBrandStrokePressed:j[60],colorNeutralStrokeDisabled:grey[88],colorNeutralStrokeInvertedDisabled:whiteAlpha[40],colorTransparentStroke:"transparent",colorTransparentStrokeInteractive:"transparent",colorTransparentStrokeDisabled:"transparent",colorNeutralStrokeAlpha:blackAlpha[5],colorNeutralStrokeAlpha2:whiteAlpha[20],colorStrokeFocus1:white,colorStrokeFocus2:black,colorNeutralShadowAmbient:"rgba(0,0,0,0.12)",colorNeutralShadowKey:"rgba(0,0,0,0.14)",colorNeutralShadowAmbientLighter:"rgba(0,0,0,0.06)",colorNeutralShadowKeyLighter:"rgba(0,0,0,0.07)",colorNeutralShadowAmbientDarker:"rgba(0,0,0,0.20)",colorNeutralShadowKeyDarker:"rgba(0,0,0,0.24)",colorBrandShadowAmbient:"rgba(0,0,0,0.30)",colorBrandShadowKey:"rgba(0,0,0,0.25)"}),borderRadius={borderRadiusNone:"0",borderRadiusSmall:"2px",borderRadiusMedium:"4px",borderRadiusLarge:"6px",borderRadiusXLarge:"8px",borderRadiusCircular:"10000px"},curves={curveAccelerateMax:"cubic-bezier(0.9,0.1,1,0.2)",curveAccelerateMid:"cubic-bezier(1,0,1,1)",curveAccelerateMin:"cubic-bezier(0.8,0,0.78,1)",curveDecelerateMax:"cubic-bezier(0.1,0.9,0.2,1)",curveDecelerateMid:"cubic-bezier(0,0,0,1)",curveDecelerateMin:"cubic-bezier(0.33,0,0.1,1)",curveEasyEaseMax:"cubic-bezier(0.8,0,0.2,1)",curveEasyEase:"cubic-bezier(0.33,0,0.67,1)",curveLinear:"cubic-bezier(0,0,1,1)"},durations={durationUltraFast:"50ms",durationFaster:"100ms",durationFast:"150ms",durationNormal:"200ms",durationGentle:"250ms",durationSlow:"300ms",durationSlower:"400ms",durationUltraSlow:"500ms"},fontSizes={fontSizeBase100:"10px",fontSizeBase200:"12px",fontSizeBase300:"14px",fontSizeBase400:"16px",fontSizeBase500:"20px",fontSizeBase600:"24px",fontSizeHero700:"28px",fontSizeHero800:"32px",fontSizeHero900:"40px",fontSizeHero1000:"68px"},lineHeights={lineHeightBase100:"14px",lineHeightBase200:"16px",lineHeightBase300:"20px",lineHeightBase400:"22px",lineHeightBase500:"28px",lineHeightBase600:"32px",lineHeightHero700:"36px",lineHeightHero800:"40px",lineHeightHero900:"52px",lineHeightHero1000:"92px"},fontWeights={fontWeightRegular:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},fontFamilies={fontFamilyBase:"'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif",fontFamilyMonospace:"Consolas, 'Courier New', Courier, monospace",fontFamilyNumeric:"Bahnschrift, 'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif"},spacings={none:"0",xxs:"2px",xs:"4px",sNudge:"6px",s:"8px",mNudge:"10px",m:"12px",l:"16px",xl:"20px",xxl:"24px",xxxl:"32px"},horizontalSpacings={spacingHorizontalNone:spacings.none,spacingHorizontalXXS:spacings.xxs,spacingHorizontalXS:spacings.xs,spacingHorizontalSNudge:spacings.sNudge,spacingHorizontalS:spacings.s,spacingHorizontalMNudge:spacings.mNudge,spacingHorizontalM:spacings.m,spacingHorizontalL:spacings.l,spacingHorizontalXL:spacings.xl,spacingHorizontalXXL:spacings.xxl,spacingHorizontalXXXL:spacings.xxxl},verticalSpacings={spacingVerticalNone:spacings.none,spacingVerticalXXS:spacings.xxs,spacingVerticalXS:spacings.xs,spacingVerticalSNudge:spacings.sNudge,spacingVerticalS:spacings.s,spacingVerticalMNudge:spacings.mNudge,spacingVerticalM:spacings.m,spacingVerticalL:spacings.l,spacingVerticalXL:spacings.xl,spacingVerticalXXL:spacings.xxl,spacingVerticalXXXL:spacings.xxxl},strokeWidths={strokeWidthThin:"1px",strokeWidthThick:"2px",strokeWidthThicker:"3px",strokeWidthThickest:"4px"},tokens={colorNeutralForeground1:"var(--colorNeutralForeground1)",colorNeutralForeground1Hover:"var(--colorNeutralForeground1Hover)",colorNeutralForeground1Pressed:"var(--colorNeutralForeground1Pressed)",colorNeutralForeground1Selected:"var(--colorNeutralForeground1Selected)",colorNeutralForeground2:"var(--colorNeutralForeground2)",colorNeutralForeground2Hover:"var(--colorNeutralForeground2Hover)",colorNeutralForeground2Pressed:"var(--colorNeutralForeground2Pressed)",colorNeutralForeground2Selected:"var(--colorNeutralForeground2Selected)",colorNeutralForeground2BrandHover:"var(--colorNeutralForeground2BrandHover)",colorNeutralForeground2BrandPressed:"var(--colorNeutralForeground2BrandPressed)",colorNeutralForeground2BrandSelected:"var(--colorNeutralForeground2BrandSelected)",colorNeutralForeground3:"var(--colorNeutralForeground3)",colorNeutralForeground3Hover:"var(--colorNeutralForeground3Hover)",colorNeutralForeground3Pressed:"var(--colorNeutralForeground3Pressed)",colorNeutralForeground3Selected:"var(--colorNeutralForeground3Selected)",colorNeutralForeground3BrandHover:"var(--colorNeutralForeground3BrandHover)",colorNeutralForeground3BrandPressed:"var(--colorNeutralForeground3BrandPressed)",colorNeutralForeground3BrandSelected:"var(--colorNeutralForeground3BrandSelected)",colorNeutralForeground4:"var(--colorNeutralForeground4)",colorNeutralForegroundDisabled:"var(--colorNeutralForegroundDisabled)",colorBrandForegroundLink:"var(--colorBrandForegroundLink)",colorBrandForegroundLinkHover:"var(--colorBrandForegroundLinkHover)",colorBrandForegroundLinkPressed:"var(--colorBrandForegroundLinkPressed)",colorBrandForegroundLinkSelected:"var(--colorBrandForegroundLinkSelected)",colorNeutralForeground2Link:"var(--colorNeutralForeground2Link)",colorNeutralForeground2LinkHover:"var(--colorNeutralForeground2LinkHover)",colorNeutralForeground2LinkPressed:"var(--colorNeutralForeground2LinkPressed)",colorNeutralForeground2LinkSelected:"var(--colorNeutralForeground2LinkSelected)",colorCompoundBrandForeground1:"var(--colorCompoundBrandForeground1)",colorCompoundBrandForeground1Hover:"var(--colorCompoundBrandForeground1Hover)",colorCompoundBrandForeground1Pressed:"var(--colorCompoundBrandForeground1Pressed)",colorNeutralForegroundOnBrand:"var(--colorNeutralForegroundOnBrand)",colorNeutralForegroundInverted:"var(--colorNeutralForegroundInverted)",colorNeutralForegroundInvertedHover:"var(--colorNeutralForegroundInvertedHover)",colorNeutralForegroundInvertedPressed:"var(--colorNeutralForegroundInvertedPressed)",colorNeutralForegroundInvertedSelected:"var(--colorNeutralForegroundInvertedSelected)",colorNeutralForegroundInverted2:"var(--colorNeutralForegroundInverted2)",colorNeutralForegroundStaticInverted:"var(--colorNeutralForegroundStaticInverted)",colorNeutralForegroundInvertedLink:"var(--colorNeutralForegroundInvertedLink)",colorNeutralForegroundInvertedLinkHover:"var(--colorNeutralForegroundInvertedLinkHover)",colorNeutralForegroundInvertedLinkPressed:"var(--colorNeutralForegroundInvertedLinkPressed)",colorNeutralForegroundInvertedLinkSelected:"var(--colorNeutralForegroundInvertedLinkSelected)",colorNeutralForegroundInvertedDisabled:"var(--colorNeutralForegroundInvertedDisabled)",colorBrandForeground1:"var(--colorBrandForeground1)",colorBrandForeground2:"var(--colorBrandForeground2)",colorBrandForeground2Hover:"var(--colorBrandForeground2Hover)",colorBrandForeground2Pressed:"var(--colorBrandForeground2Pressed)",colorNeutralForeground1Static:"var(--colorNeutralForeground1Static)",colorBrandForegroundInverted:"var(--colorBrandForegroundInverted)",colorBrandForegroundInvertedHover:"var(--colorBrandForegroundInvertedHover)",colorBrandForegroundInvertedPressed:"var(--colorBrandForegroundInvertedPressed)",colorBrandForegroundOnLight:"var(--colorBrandForegroundOnLight)",colorBrandForegroundOnLightHover:"var(--colorBrandForegroundOnLightHover)",colorBrandForegroundOnLightPressed:"var(--colorBrandForegroundOnLightPressed)",colorBrandForegroundOnLightSelected:"var(--colorBrandForegroundOnLightSelected)",colorNeutralBackground1:"var(--colorNeutralBackground1)",colorNeutralBackground1Hover:"var(--colorNeutralBackground1Hover)",colorNeutralBackground1Pressed:"var(--colorNeutralBackground1Pressed)",colorNeutralBackground1Selected:"var(--colorNeutralBackground1Selected)",colorNeutralBackground2:"var(--colorNeutralBackground2)",colorNeutralBackground2Hover:"var(--colorNeutralBackground2Hover)",colorNeutralBackground2Pressed:"var(--colorNeutralBackground2Pressed)",colorNeutralBackground2Selected:"var(--colorNeutralBackground2Selected)",colorNeutralBackground3:"var(--colorNeutralBackground3)",colorNeutralBackground3Hover:"var(--colorNeutralBackground3Hover)",colorNeutralBackground3Pressed:"var(--colorNeutralBackground3Pressed)",colorNeutralBackground3Selected:"var(--colorNeutralBackground3Selected)",colorNeutralBackground4:"var(--colorNeutralBackground4)",colorNeutralBackground4Hover:"var(--colorNeutralBackground4Hover)",colorNeutralBackground4Pressed:"var(--colorNeutralBackground4Pressed)",colorNeutralBackground4Selected:"var(--colorNeutralBackground4Selected)",colorNeutralBackground5:"var(--colorNeutralBackground5)",colorNeutralBackground5Hover:"var(--colorNeutralBackground5Hover)",colorNeutralBackground5Pressed:"var(--colorNeutralBackground5Pressed)",colorNeutralBackground5Selected:"var(--colorNeutralBackground5Selected)",colorNeutralBackground6:"var(--colorNeutralBackground6)",colorNeutralBackgroundInverted:"var(--colorNeutralBackgroundInverted)",colorNeutralBackgroundStatic:"var(--colorNeutralBackgroundStatic)",colorNeutralBackgroundAlpha:"var(--colorNeutralBackgroundAlpha)",colorNeutralBackgroundAlpha2:"var(--colorNeutralBackgroundAlpha2)",colorSubtleBackground:"var(--colorSubtleBackground)",colorSubtleBackgroundHover:"var(--colorSubtleBackgroundHover)",colorSubtleBackgroundPressed:"var(--colorSubtleBackgroundPressed)",colorSubtleBackgroundSelected:"var(--colorSubtleBackgroundSelected)",colorSubtleBackgroundLightAlphaHover:"var(--colorSubtleBackgroundLightAlphaHover)",colorSubtleBackgroundLightAlphaPressed:"var(--colorSubtleBackgroundLightAlphaPressed)",colorSubtleBackgroundLightAlphaSelected:"var(--colorSubtleBackgroundLightAlphaSelected)",colorSubtleBackgroundInverted:"var(--colorSubtleBackgroundInverted)",colorSubtleBackgroundInvertedHover:"var(--colorSubtleBackgroundInvertedHover)",colorSubtleBackgroundInvertedPressed:"var(--colorSubtleBackgroundInvertedPressed)",colorSubtleBackgroundInvertedSelected:"var(--colorSubtleBackgroundInvertedSelected)",colorTransparentBackground:"var(--colorTransparentBackground)",colorTransparentBackgroundHover:"var(--colorTransparentBackgroundHover)",colorTransparentBackgroundPressed:"var(--colorTransparentBackgroundPressed)",colorTransparentBackgroundSelected:"var(--colorTransparentBackgroundSelected)",colorNeutralBackgroundDisabled:"var(--colorNeutralBackgroundDisabled)",colorNeutralBackgroundInvertedDisabled:"var(--colorNeutralBackgroundInvertedDisabled)",colorNeutralStencil1:"var(--colorNeutralStencil1)",colorNeutralStencil2:"var(--colorNeutralStencil2)",colorNeutralStencil1Alpha:"var(--colorNeutralStencil1Alpha)",colorNeutralStencil2Alpha:"var(--colorNeutralStencil2Alpha)",colorBackgroundOverlay:"var(--colorBackgroundOverlay)",colorScrollbarOverlay:"var(--colorScrollbarOverlay)",colorBrandBackground:"var(--colorBrandBackground)",colorBrandBackgroundHover:"var(--colorBrandBackgroundHover)",colorBrandBackgroundPressed:"var(--colorBrandBackgroundPressed)",colorBrandBackgroundSelected:"var(--colorBrandBackgroundSelected)",colorCompoundBrandBackground:"var(--colorCompoundBrandBackground)",colorCompoundBrandBackgroundHover:"var(--colorCompoundBrandBackgroundHover)",colorCompoundBrandBackgroundPressed:"var(--colorCompoundBrandBackgroundPressed)",colorBrandBackgroundStatic:"var(--colorBrandBackgroundStatic)",colorBrandBackground2:"var(--colorBrandBackground2)",colorBrandBackground2Hover:"var(--colorBrandBackground2Hover)",colorBrandBackground2Pressed:"var(--colorBrandBackground2Pressed)",colorBrandBackgroundInverted:"var(--colorBrandBackgroundInverted)",colorBrandBackgroundInvertedHover:"var(--colorBrandBackgroundInvertedHover)",colorBrandBackgroundInvertedPressed:"var(--colorBrandBackgroundInvertedPressed)",colorBrandBackgroundInvertedSelected:"var(--colorBrandBackgroundInvertedSelected)",colorNeutralStrokeAccessible:"var(--colorNeutralStrokeAccessible)",colorNeutralStrokeAccessibleHover:"var(--colorNeutralStrokeAccessibleHover)",colorNeutralStrokeAccessiblePressed:"var(--colorNeutralStrokeAccessiblePressed)",colorNeutralStrokeAccessibleSelected:"var(--colorNeutralStrokeAccessibleSelected)",colorNeutralStroke1:"var(--colorNeutralStroke1)",colorNeutralStroke1Hover:"var(--colorNeutralStroke1Hover)",colorNeutralStroke1Pressed:"var(--colorNeutralStroke1Pressed)",colorNeutralStroke1Selected:"var(--colorNeutralStroke1Selected)",colorNeutralStroke2:"var(--colorNeutralStroke2)",colorNeutralStroke3:"var(--colorNeutralStroke3)",colorNeutralStrokeSubtle:"var(--colorNeutralStrokeSubtle)",colorNeutralStrokeOnBrand:"var(--colorNeutralStrokeOnBrand)",colorNeutralStrokeOnBrand2:"var(--colorNeutralStrokeOnBrand2)",colorNeutralStrokeOnBrand2Hover:"var(--colorNeutralStrokeOnBrand2Hover)",colorNeutralStrokeOnBrand2Pressed:"var(--colorNeutralStrokeOnBrand2Pressed)",colorNeutralStrokeOnBrand2Selected:"var(--colorNeutralStrokeOnBrand2Selected)",colorBrandStroke1:"var(--colorBrandStroke1)",colorBrandStroke2:"var(--colorBrandStroke2)",colorBrandStroke2Hover:"var(--colorBrandStroke2Hover)",colorBrandStroke2Pressed:"var(--colorBrandStroke2Pressed)",colorBrandStroke2Contrast:"var(--colorBrandStroke2Contrast)",colorCompoundBrandStroke:"var(--colorCompoundBrandStroke)",colorCompoundBrandStrokeHover:"var(--colorCompoundBrandStrokeHover)",colorCompoundBrandStrokePressed:"var(--colorCompoundBrandStrokePressed)",colorNeutralStrokeDisabled:"var(--colorNeutralStrokeDisabled)",colorNeutralStrokeInvertedDisabled:"var(--colorNeutralStrokeInvertedDisabled)",colorTransparentStroke:"var(--colorTransparentStroke)",colorTransparentStrokeInteractive:"var(--colorTransparentStrokeInteractive)",colorTransparentStrokeDisabled:"var(--colorTransparentStrokeDisabled)",colorNeutralStrokeAlpha:"var(--colorNeutralStrokeAlpha)",colorNeutralStrokeAlpha2:"var(--colorNeutralStrokeAlpha2)",colorStrokeFocus1:"var(--colorStrokeFocus1)",colorStrokeFocus2:"var(--colorStrokeFocus2)",colorNeutralShadowAmbient:"var(--colorNeutralShadowAmbient)",colorNeutralShadowKey:"var(--colorNeutralShadowKey)",colorNeutralShadowAmbientLighter:"var(--colorNeutralShadowAmbientLighter)",colorNeutralShadowKeyLighter:"var(--colorNeutralShadowKeyLighter)",colorNeutralShadowAmbientDarker:"var(--colorNeutralShadowAmbientDarker)",colorNeutralShadowKeyDarker:"var(--colorNeutralShadowKeyDarker)",colorBrandShadowAmbient:"var(--colorBrandShadowAmbient)",colorBrandShadowKey:"var(--colorBrandShadowKey)",colorPaletteRedBackground1:"var(--colorPaletteRedBackground1)",colorPaletteRedBackground2:"var(--colorPaletteRedBackground2)",colorPaletteRedBackground3:"var(--colorPaletteRedBackground3)",colorPaletteRedBorderActive:"var(--colorPaletteRedBorderActive)",colorPaletteRedBorder1:"var(--colorPaletteRedBorder1)",colorPaletteRedBorder2:"var(--colorPaletteRedBorder2)",colorPaletteRedForeground1:"var(--colorPaletteRedForeground1)",colorPaletteRedForeground2:"var(--colorPaletteRedForeground2)",colorPaletteRedForeground3:"var(--colorPaletteRedForeground3)",colorPaletteRedForegroundInverted:"var(--colorPaletteRedForegroundInverted)",colorPaletteGreenBackground1:"var(--colorPaletteGreenBackground1)",colorPaletteGreenBackground2:"var(--colorPaletteGreenBackground2)",colorPaletteGreenBackground3:"var(--colorPaletteGreenBackground3)",colorPaletteGreenBorderActive:"var(--colorPaletteGreenBorderActive)",colorPaletteGreenBorder1:"var(--colorPaletteGreenBorder1)",colorPaletteGreenBorder2:"var(--colorPaletteGreenBorder2)",colorPaletteGreenForeground1:"var(--colorPaletteGreenForeground1)",colorPaletteGreenForeground2:"var(--colorPaletteGreenForeground2)",colorPaletteGreenForeground3:"var(--colorPaletteGreenForeground3)",colorPaletteGreenForegroundInverted:"var(--colorPaletteGreenForegroundInverted)",colorPaletteDarkOrangeBackground1:"var(--colorPaletteDarkOrangeBackground1)",colorPaletteDarkOrangeBackground2:"var(--colorPaletteDarkOrangeBackground2)",colorPaletteDarkOrangeBackground3:"var(--colorPaletteDarkOrangeBackground3)",colorPaletteDarkOrangeBorderActive:"var(--colorPaletteDarkOrangeBorderActive)",colorPaletteDarkOrangeBorder1:"var(--colorPaletteDarkOrangeBorder1)",colorPaletteDarkOrangeBorder2:"var(--colorPaletteDarkOrangeBorder2)",colorPaletteDarkOrangeForeground1:"var(--colorPaletteDarkOrangeForeground1)",colorPaletteDarkOrangeForeground2:"var(--colorPaletteDarkOrangeForeground2)",colorPaletteDarkOrangeForeground3:"var(--colorPaletteDarkOrangeForeground3)",colorPaletteYellowBackground1:"var(--colorPaletteYellowBackground1)",colorPaletteYellowBackground2:"var(--colorPaletteYellowBackground2)",colorPaletteYellowBackground3:"var(--colorPaletteYellowBackground3)",colorPaletteYellowBorderActive:"var(--colorPaletteYellowBorderActive)",colorPaletteYellowBorder1:"var(--colorPaletteYellowBorder1)",colorPaletteYellowBorder2:"var(--colorPaletteYellowBorder2)",colorPaletteYellowForeground1:"var(--colorPaletteYellowForeground1)",colorPaletteYellowForeground2:"var(--colorPaletteYellowForeground2)",colorPaletteYellowForeground3:"var(--colorPaletteYellowForeground3)",colorPaletteYellowForegroundInverted:"var(--colorPaletteYellowForegroundInverted)",colorPaletteBerryBackground1:"var(--colorPaletteBerryBackground1)",colorPaletteBerryBackground2:"var(--colorPaletteBerryBackground2)",colorPaletteBerryBackground3:"var(--colorPaletteBerryBackground3)",colorPaletteBerryBorderActive:"var(--colorPaletteBerryBorderActive)",colorPaletteBerryBorder1:"var(--colorPaletteBerryBorder1)",colorPaletteBerryBorder2:"var(--colorPaletteBerryBorder2)",colorPaletteBerryForeground1:"var(--colorPaletteBerryForeground1)",colorPaletteBerryForeground2:"var(--colorPaletteBerryForeground2)",colorPaletteBerryForeground3:"var(--colorPaletteBerryForeground3)",colorPaletteMarigoldBackground1:"var(--colorPaletteMarigoldBackground1)",colorPaletteMarigoldBackground2:"var(--colorPaletteMarigoldBackground2)",colorPaletteMarigoldBackground3:"var(--colorPaletteMarigoldBackground3)",colorPaletteMarigoldBorderActive:"var(--colorPaletteMarigoldBorderActive)",colorPaletteMarigoldBorder1:"var(--colorPaletteMarigoldBorder1)",colorPaletteMarigoldBorder2:"var(--colorPaletteMarigoldBorder2)",colorPaletteMarigoldForeground1:"var(--colorPaletteMarigoldForeground1)",colorPaletteMarigoldForeground2:"var(--colorPaletteMarigoldForeground2)",colorPaletteMarigoldForeground3:"var(--colorPaletteMarigoldForeground3)",colorPaletteLightGreenBackground1:"var(--colorPaletteLightGreenBackground1)",colorPaletteLightGreenBackground2:"var(--colorPaletteLightGreenBackground2)",colorPaletteLightGreenBackground3:"var(--colorPaletteLightGreenBackground3)",colorPaletteLightGreenBorderActive:"var(--colorPaletteLightGreenBorderActive)",colorPaletteLightGreenBorder1:"var(--colorPaletteLightGreenBorder1)",colorPaletteLightGreenBorder2:"var(--colorPaletteLightGreenBorder2)",colorPaletteLightGreenForeground1:"var(--colorPaletteLightGreenForeground1)",colorPaletteLightGreenForeground2:"var(--colorPaletteLightGreenForeground2)",colorPaletteLightGreenForeground3:"var(--colorPaletteLightGreenForeground3)",colorPaletteAnchorBackground2:"var(--colorPaletteAnchorBackground2)",colorPaletteAnchorBorderActive:"var(--colorPaletteAnchorBorderActive)",colorPaletteAnchorForeground2:"var(--colorPaletteAnchorForeground2)",colorPaletteBeigeBackground2:"var(--colorPaletteBeigeBackground2)",colorPaletteBeigeBorderActive:"var(--colorPaletteBeigeBorderActive)",colorPaletteBeigeForeground2:"var(--colorPaletteBeigeForeground2)",colorPaletteBlueBackground2:"var(--colorPaletteBlueBackground2)",colorPaletteBlueBorderActive:"var(--colorPaletteBlueBorderActive)",colorPaletteBlueForeground2:"var(--colorPaletteBlueForeground2)",colorPaletteBrassBackground2:"var(--colorPaletteBrassBackground2)",colorPaletteBrassBorderActive:"var(--colorPaletteBrassBorderActive)",colorPaletteBrassForeground2:"var(--colorPaletteBrassForeground2)",colorPaletteBrownBackground2:"var(--colorPaletteBrownBackground2)",colorPaletteBrownBorderActive:"var(--colorPaletteBrownBorderActive)",colorPaletteBrownForeground2:"var(--colorPaletteBrownForeground2)",colorPaletteCornflowerBackground2:"var(--colorPaletteCornflowerBackground2)",colorPaletteCornflowerBorderActive:"var(--colorPaletteCornflowerBorderActive)",colorPaletteCornflowerForeground2:"var(--colorPaletteCornflowerForeground2)",colorPaletteCranberryBackground2:"var(--colorPaletteCranberryBackground2)",colorPaletteCranberryBorderActive:"var(--colorPaletteCranberryBorderActive)",colorPaletteCranberryForeground2:"var(--colorPaletteCranberryForeground2)",colorPaletteDarkGreenBackground2:"var(--colorPaletteDarkGreenBackground2)",colorPaletteDarkGreenBorderActive:"var(--colorPaletteDarkGreenBorderActive)",colorPaletteDarkGreenForeground2:"var(--colorPaletteDarkGreenForeground2)",colorPaletteDarkRedBackground2:"var(--colorPaletteDarkRedBackground2)",colorPaletteDarkRedBorderActive:"var(--colorPaletteDarkRedBorderActive)",colorPaletteDarkRedForeground2:"var(--colorPaletteDarkRedForeground2)",colorPaletteForestBackground2:"var(--colorPaletteForestBackground2)",colorPaletteForestBorderActive:"var(--colorPaletteForestBorderActive)",colorPaletteForestForeground2:"var(--colorPaletteForestForeground2)",colorPaletteGoldBackground2:"var(--colorPaletteGoldBackground2)",colorPaletteGoldBorderActive:"var(--colorPaletteGoldBorderActive)",colorPaletteGoldForeground2:"var(--colorPaletteGoldForeground2)",colorPaletteGrapeBackground2:"var(--colorPaletteGrapeBackground2)",colorPaletteGrapeBorderActive:"var(--colorPaletteGrapeBorderActive)",colorPaletteGrapeForeground2:"var(--colorPaletteGrapeForeground2)",colorPaletteLavenderBackground2:"var(--colorPaletteLavenderBackground2)",colorPaletteLavenderBorderActive:"var(--colorPaletteLavenderBorderActive)",colorPaletteLavenderForeground2:"var(--colorPaletteLavenderForeground2)",colorPaletteLightTealBackground2:"var(--colorPaletteLightTealBackground2)",colorPaletteLightTealBorderActive:"var(--colorPaletteLightTealBorderActive)",colorPaletteLightTealForeground2:"var(--colorPaletteLightTealForeground2)",colorPaletteLilacBackground2:"var(--colorPaletteLilacBackground2)",colorPaletteLilacBorderActive:"var(--colorPaletteLilacBorderActive)",colorPaletteLilacForeground2:"var(--colorPaletteLilacForeground2)",colorPaletteMagentaBackground2:"var(--colorPaletteMagentaBackground2)",colorPaletteMagentaBorderActive:"var(--colorPaletteMagentaBorderActive)",colorPaletteMagentaForeground2:"var(--colorPaletteMagentaForeground2)",colorPaletteMinkBackground2:"var(--colorPaletteMinkBackground2)",colorPaletteMinkBorderActive:"var(--colorPaletteMinkBorderActive)",colorPaletteMinkForeground2:"var(--colorPaletteMinkForeground2)",colorPaletteNavyBackground2:"var(--colorPaletteNavyBackground2)",colorPaletteNavyBorderActive:"var(--colorPaletteNavyBorderActive)",colorPaletteNavyForeground2:"var(--colorPaletteNavyForeground2)",colorPalettePeachBackground2:"var(--colorPalettePeachBackground2)",colorPalettePeachBorderActive:"var(--colorPalettePeachBorderActive)",colorPalettePeachForeground2:"var(--colorPalettePeachForeground2)",colorPalettePinkBackground2:"var(--colorPalettePinkBackground2)",colorPalettePinkBorderActive:"var(--colorPalettePinkBorderActive)",colorPalettePinkForeground2:"var(--colorPalettePinkForeground2)",colorPalettePlatinumBackground2:"var(--colorPalettePlatinumBackground2)",colorPalettePlatinumBorderActive:"var(--colorPalettePlatinumBorderActive)",colorPalettePlatinumForeground2:"var(--colorPalettePlatinumForeground2)",colorPalettePlumBackground2:"var(--colorPalettePlumBackground2)",colorPalettePlumBorderActive:"var(--colorPalettePlumBorderActive)",colorPalettePlumForeground2:"var(--colorPalettePlumForeground2)",colorPalettePumpkinBackground2:"var(--colorPalettePumpkinBackground2)",colorPalettePumpkinBorderActive:"var(--colorPalettePumpkinBorderActive)",colorPalettePumpkinForeground2:"var(--colorPalettePumpkinForeground2)",colorPalettePurpleBackground2:"var(--colorPalettePurpleBackground2)",colorPalettePurpleBorderActive:"var(--colorPalettePurpleBorderActive)",colorPalettePurpleForeground2:"var(--colorPalettePurpleForeground2)",colorPaletteRoyalBlueBackground2:"var(--colorPaletteRoyalBlueBackground2)",colorPaletteRoyalBlueBorderActive:"var(--colorPaletteRoyalBlueBorderActive)",colorPaletteRoyalBlueForeground2:"var(--colorPaletteRoyalBlueForeground2)",colorPaletteSeafoamBackground2:"var(--colorPaletteSeafoamBackground2)",colorPaletteSeafoamBorderActive:"var(--colorPaletteSeafoamBorderActive)",colorPaletteSeafoamForeground2:"var(--colorPaletteSeafoamForeground2)",colorPaletteSteelBackground2:"var(--colorPaletteSteelBackground2)",colorPaletteSteelBorderActive:"var(--colorPaletteSteelBorderActive)",colorPaletteSteelForeground2:"var(--colorPaletteSteelForeground2)",colorPaletteTealBackground2:"var(--colorPaletteTealBackground2)",colorPaletteTealBorderActive:"var(--colorPaletteTealBorderActive)",colorPaletteTealForeground2:"var(--colorPaletteTealForeground2)",colorStatusSuccessBackground1:"var(--colorStatusSuccessBackground1)",colorStatusSuccessBackground2:"var(--colorStatusSuccessBackground2)",colorStatusSuccessBackground3:"var(--colorStatusSuccessBackground3)",colorStatusSuccessForeground1:"var(--colorStatusSuccessForeground1)",colorStatusSuccessForeground2:"var(--colorStatusSuccessForeground2)",colorStatusSuccessForeground3:"var(--colorStatusSuccessForeground3)",colorStatusSuccessForegroundInverted:"var(--colorStatusSuccessForegroundInverted)",colorStatusSuccessBorderActive:"var(--colorStatusSuccessBorderActive)",colorStatusSuccessBorder1:"var(--colorStatusSuccessBorder1)",colorStatusSuccessBorder2:"var(--colorStatusSuccessBorder2)",colorStatusWarningBackground1:"var(--colorStatusWarningBackground1)",colorStatusWarningBackground2:"var(--colorStatusWarningBackground2)",colorStatusWarningBackground3:"var(--colorStatusWarningBackground3)",colorStatusWarningForeground1:"var(--colorStatusWarningForeground1)",colorStatusWarningForeground2:"var(--colorStatusWarningForeground2)",colorStatusWarningForeground3:"var(--colorStatusWarningForeground3)",colorStatusWarningForegroundInverted:"var(--colorStatusWarningForegroundInverted)",colorStatusWarningBorderActive:"var(--colorStatusWarningBorderActive)",colorStatusWarningBorder1:"var(--colorStatusWarningBorder1)",colorStatusWarningBorder2:"var(--colorStatusWarningBorder2)",colorStatusDangerBackground1:"var(--colorStatusDangerBackground1)",colorStatusDangerBackground2:"var(--colorStatusDangerBackground2)",colorStatusDangerBackground3:"var(--colorStatusDangerBackground3)",colorStatusDangerForeground1:"var(--colorStatusDangerForeground1)",colorStatusDangerForeground2:"var(--colorStatusDangerForeground2)",colorStatusDangerForeground3:"var(--colorStatusDangerForeground3)",colorStatusDangerForegroundInverted:"var(--colorStatusDangerForegroundInverted)",colorStatusDangerBorderActive:"var(--colorStatusDangerBorderActive)",colorStatusDangerBorder1:"var(--colorStatusDangerBorder1)",colorStatusDangerBorder2:"var(--colorStatusDangerBorder2)",borderRadiusNone:"var(--borderRadiusNone)",borderRadiusSmall:"var(--borderRadiusSmall)",borderRadiusMedium:"var(--borderRadiusMedium)",borderRadiusLarge:"var(--borderRadiusLarge)",borderRadiusXLarge:"var(--borderRadiusXLarge)",borderRadiusCircular:"var(--borderRadiusCircular)",fontFamilyBase:"var(--fontFamilyBase)",fontFamilyMonospace:"var(--fontFamilyMonospace)",fontFamilyNumeric:"var(--fontFamilyNumeric)",fontSizeBase100:"var(--fontSizeBase100)",fontSizeBase200:"var(--fontSizeBase200)",fontSizeBase300:"var(--fontSizeBase300)",fontSizeBase400:"var(--fontSizeBase400)",fontSizeBase500:"var(--fontSizeBase500)",fontSizeBase600:"var(--fontSizeBase600)",fontSizeHero700:"var(--fontSizeHero700)",fontSizeHero800:"var(--fontSizeHero800)",fontSizeHero900:"var(--fontSizeHero900)",fontSizeHero1000:"var(--fontSizeHero1000)",fontWeightRegular:"var(--fontWeightRegular)",fontWeightMedium:"var(--fontWeightMedium)",fontWeightSemibold:"var(--fontWeightSemibold)",fontWeightBold:"var(--fontWeightBold)",lineHeightBase100:"var(--lineHeightBase100)",lineHeightBase200:"var(--lineHeightBase200)",lineHeightBase300:"var(--lineHeightBase300)",lineHeightBase400:"var(--lineHeightBase400)",lineHeightBase500:"var(--lineHeightBase500)",lineHeightBase600:"var(--lineHeightBase600)",lineHeightHero700:"var(--lineHeightHero700)",lineHeightHero800:"var(--lineHeightHero800)",lineHeightHero900:"var(--lineHeightHero900)",lineHeightHero1000:"var(--lineHeightHero1000)",shadow2:"var(--shadow2)",shadow4:"var(--shadow4)",shadow8:"var(--shadow8)",shadow16:"var(--shadow16)",shadow28:"var(--shadow28)",shadow64:"var(--shadow64)",shadow2Brand:"var(--shadow2Brand)",shadow4Brand:"var(--shadow4Brand)",shadow8Brand:"var(--shadow8Brand)",shadow16Brand:"var(--shadow16Brand)",shadow28Brand:"var(--shadow28Brand)",shadow64Brand:"var(--shadow64Brand)",strokeWidthThin:"var(--strokeWidthThin)",strokeWidthThick:"var(--strokeWidthThick)",strokeWidthThicker:"var(--strokeWidthThicker)",strokeWidthThickest:"var(--strokeWidthThickest)",spacingHorizontalNone:"var(--spacingHorizontalNone)",spacingHorizontalXXS:"var(--spacingHorizontalXXS)",spacingHorizontalXS:"var(--spacingHorizontalXS)",spacingHorizontalSNudge:"var(--spacingHorizontalSNudge)",spacingHorizontalS:"var(--spacingHorizontalS)",spacingHorizontalMNudge:"var(--spacingHorizontalMNudge)",spacingHorizontalM:"var(--spacingHorizontalM)",spacingHorizontalL:"var(--spacingHorizontalL)",spacingHorizontalXL:"var(--spacingHorizontalXL)",spacingHorizontalXXL:"var(--spacingHorizontalXXL)",spacingHorizontalXXXL:"var(--spacingHorizontalXXXL)",spacingVerticalNone:"var(--spacingVerticalNone)",spacingVerticalXXS:"var(--spacingVerticalXXS)",spacingVerticalXS:"var(--spacingVerticalXS)",spacingVerticalSNudge:"var(--spacingVerticalSNudge)",spacingVerticalS:"var(--spacingVerticalS)",spacingVerticalMNudge:"var(--spacingVerticalMNudge)",spacingVerticalM:"var(--spacingVerticalM)",spacingVerticalL:"var(--spacingVerticalL)",spacingVerticalXL:"var(--spacingVerticalXL)",spacingVerticalXXL:"var(--spacingVerticalXXL)",spacingVerticalXXXL:"var(--spacingVerticalXXXL)",durationUltraFast:"var(--durationUltraFast)",durationFaster:"var(--durationFaster)",durationFast:"var(--durationFast)",durationNormal:"var(--durationNormal)",durationGentle:"var(--durationGentle)",durationSlow:"var(--durationSlow)",durationSlower:"var(--durationSlower)",durationUltraSlow:"var(--durationUltraSlow)",curveAccelerateMax:"var(--curveAccelerateMax)",curveAccelerateMid:"var(--curveAccelerateMid)",curveAccelerateMin:"var(--curveAccelerateMin)",curveDecelerateMax:"var(--curveDecelerateMax)",curveDecelerateMid:"var(--curveDecelerateMid)",curveDecelerateMin:"var(--curveDecelerateMin)",curveEasyEaseMax:"var(--curveEasyEaseMax)",curveEasyEase:"var(--curveEasyEase)",curveLinear:"var(--curveLinear)"};function createShadowTokens(j,_e,et=""){return{[`shadow2${et}`]:`0 0 2px ${j}, 0 1px 2px ${_e}`,[`shadow4${et}`]:`0 0 2px ${j}, 0 2px 4px ${_e}`,[`shadow8${et}`]:`0 0 2px ${j}, 0 4px 8px ${_e}`,[`shadow16${et}`]:`0 0 2px ${j}, 0 8px 16px ${_e}`,[`shadow28${et}`]:`0 0 8px ${j}, 0 14px 28px ${_e}`,[`shadow64${et}`]:`0 0 8px ${j}, 0 32px 64px ${_e}`}}const createLightTheme=j=>{const _e=generateColorTokens$1(j);return{...borderRadius,...fontSizes,...lineHeights,...fontFamilies,...fontWeights,...strokeWidths,...horizontalSpacings,...verticalSpacings,...durations,...curves,..._e,...colorPaletteTokens$1,...colorStatusTokens$1,...createShadowTokens(_e.colorNeutralShadowAmbient,_e.colorNeutralShadowKey),...createShadowTokens(_e.colorBrandShadowAmbient,_e.colorBrandShadowKey,"Brand")}},brandWeb={10:"#061724",20:"#082338",30:"#0a2e4a",40:"#0c3b5e",50:"#0e4775",60:"#0f548c",70:"#115ea3",80:"#0f6cbd",90:"#2886de",100:"#479ef5",110:"#62abf5",120:"#77b7f7",130:"#96c6fa",140:"#b4d6fa",150:"#cfe4fa",160:"#ebf3fc"},statusColorPaletteTokens=statusSharedColorNames.reduce((j,_e)=>{const et=_e.slice(0,1).toUpperCase()+_e.slice(1),tt={[`colorPalette${et}Background1`]:statusSharedColors[_e].shade40,[`colorPalette${et}Background2`]:statusSharedColors[_e].shade30,[`colorPalette${et}Background3`]:statusSharedColors[_e].primary,[`colorPalette${et}Foreground1`]:statusSharedColors[_e].tint30,[`colorPalette${et}Foreground2`]:statusSharedColors[_e].tint40,[`colorPalette${et}Foreground3`]:statusSharedColors[_e].tint20,[`colorPalette${et}BorderActive`]:statusSharedColors[_e].tint30,[`colorPalette${et}Border1`]:statusSharedColors[_e].primary,[`colorPalette${et}Border2`]:statusSharedColors[_e].tint20};return Object.assign(j,tt)},{});statusColorPaletteTokens.colorPaletteRedForeground3=statusSharedColors.red.tint30;statusColorPaletteTokens.colorPaletteRedBorder2=statusSharedColors.red.tint30;statusColorPaletteTokens.colorPaletteGreenForeground3=statusSharedColors.green.tint40;statusColorPaletteTokens.colorPaletteGreenBorder2=statusSharedColors.green.tint40;statusColorPaletteTokens.colorPaletteDarkOrangeForeground3=statusSharedColors.darkOrange.tint30;statusColorPaletteTokens.colorPaletteDarkOrangeBorder2=statusSharedColors.darkOrange.tint30;statusColorPaletteTokens.colorPaletteRedForegroundInverted=statusSharedColors.red.primary;statusColorPaletteTokens.colorPaletteGreenForegroundInverted=statusSharedColors.green.primary;statusColorPaletteTokens.colorPaletteYellowForegroundInverted=statusSharedColors.yellow.shade30;const personaColorPaletteTokens=personaSharedColorNames.reduce((j,_e)=>{const et=_e.slice(0,1).toUpperCase()+_e.slice(1),tt={[`colorPalette${et}Background2`]:personaSharedColors[_e].shade30,[`colorPalette${et}Foreground2`]:personaSharedColors[_e].tint40,[`colorPalette${et}BorderActive`]:personaSharedColors[_e].tint30};return Object.assign(j,tt)},{});personaColorPaletteTokens.colorPaletteDarkRedBackground2=personaSharedColors.darkRed.shade20;personaColorPaletteTokens.colorPalettePlumBackground2=personaSharedColors.plum.shade20;const colorPaletteTokens={...statusColorPaletteTokens,...personaColorPaletteTokens},colorStatusTokens=Object.entries(statusColorMapping).reduce((j,[_e,et])=>{const tt=_e.slice(0,1).toUpperCase()+_e.slice(1),rt={[`colorStatus${tt}Background1`]:mappedStatusColors[et].shade40,[`colorStatus${tt}Background2`]:mappedStatusColors[et].shade30,[`colorStatus${tt}Background3`]:mappedStatusColors[et].primary,[`colorStatus${tt}Foreground1`]:mappedStatusColors[et].tint30,[`colorStatus${tt}Foreground2`]:mappedStatusColors[et].tint40,[`colorStatus${tt}Foreground3`]:mappedStatusColors[et].tint20,[`colorStatus${tt}BorderActive`]:mappedStatusColors[et].tint30,[`colorStatus${tt}ForegroundInverted`]:mappedStatusColors[et].shade10,[`colorStatus${tt}Border1`]:mappedStatusColors[et].primary,[`colorStatus${tt}Border2`]:mappedStatusColors[et].tint20};return Object.assign(j,rt)},{});colorStatusTokens.colorStatusDangerForeground3=mappedStatusColors[statusColorMapping.danger].tint30;colorStatusTokens.colorStatusDangerBorder2=mappedStatusColors[statusColorMapping.danger].tint30;colorStatusTokens.colorStatusSuccessForeground3=mappedStatusColors[statusColorMapping.success].tint40;colorStatusTokens.colorStatusSuccessBorder2=mappedStatusColors[statusColorMapping.success].tint40;colorStatusTokens.colorStatusWarningForegroundInverted=mappedStatusColors[statusColorMapping.warning].shade20;const webLightTheme=createLightTheme(brandWeb),generateColorTokens=j=>({colorNeutralForeground1:white,colorNeutralForeground1Hover:white,colorNeutralForeground1Pressed:white,colorNeutralForeground1Selected:white,colorNeutralForeground2:grey[84],colorNeutralForeground2Hover:white,colorNeutralForeground2Pressed:white,colorNeutralForeground2Selected:white,colorNeutralForeground2BrandHover:j[100],colorNeutralForeground2BrandPressed:j[90],colorNeutralForeground2BrandSelected:j[100],colorNeutralForeground3:grey[68],colorNeutralForeground3Hover:grey[84],colorNeutralForeground3Pressed:grey[84],colorNeutralForeground3Selected:grey[84],colorNeutralForeground3BrandHover:j[100],colorNeutralForeground3BrandPressed:j[90],colorNeutralForeground3BrandSelected:j[100],colorNeutralForeground4:grey[60],colorNeutralForegroundDisabled:grey[36],colorNeutralForegroundInvertedDisabled:whiteAlpha[40],colorBrandForegroundLink:j[100],colorBrandForegroundLinkHover:j[110],colorBrandForegroundLinkPressed:j[90],colorBrandForegroundLinkSelected:j[100],colorNeutralForeground2Link:grey[84],colorNeutralForeground2LinkHover:white,colorNeutralForeground2LinkPressed:white,colorNeutralForeground2LinkSelected:white,colorCompoundBrandForeground1:j[100],colorCompoundBrandForeground1Hover:j[110],colorCompoundBrandForeground1Pressed:j[90],colorBrandForeground1:j[100],colorBrandForeground2:j[110],colorBrandForeground2Hover:j[130],colorBrandForeground2Pressed:j[160],colorNeutralForeground1Static:grey[14],colorNeutralForegroundStaticInverted:white,colorNeutralForegroundInverted:grey[14],colorNeutralForegroundInvertedHover:grey[14],colorNeutralForegroundInvertedPressed:grey[14],colorNeutralForegroundInvertedSelected:grey[14],colorNeutralForegroundInverted2:grey[14],colorNeutralForegroundOnBrand:white,colorNeutralForegroundInvertedLink:white,colorNeutralForegroundInvertedLinkHover:white,colorNeutralForegroundInvertedLinkPressed:white,colorNeutralForegroundInvertedLinkSelected:white,colorBrandForegroundInverted:j[80],colorBrandForegroundInvertedHover:j[70],colorBrandForegroundInvertedPressed:j[60],colorBrandForegroundOnLight:j[80],colorBrandForegroundOnLightHover:j[70],colorBrandForegroundOnLightPressed:j[50],colorBrandForegroundOnLightSelected:j[60],colorNeutralBackground1:grey[16],colorNeutralBackground1Hover:grey[24],colorNeutralBackground1Pressed:grey[12],colorNeutralBackground1Selected:grey[22],colorNeutralBackground2:grey[12],colorNeutralBackground2Hover:grey[20],colorNeutralBackground2Pressed:grey[8],colorNeutralBackground2Selected:grey[18],colorNeutralBackground3:grey[8],colorNeutralBackground3Hover:grey[16],colorNeutralBackground3Pressed:grey[4],colorNeutralBackground3Selected:grey[14],colorNeutralBackground4:grey[4],colorNeutralBackground4Hover:grey[12],colorNeutralBackground4Pressed:black,colorNeutralBackground4Selected:grey[10],colorNeutralBackground5:black,colorNeutralBackground5Hover:grey[8],colorNeutralBackground5Pressed:grey[2],colorNeutralBackground5Selected:grey[6],colorNeutralBackground6:grey[20],colorNeutralBackgroundInverted:white,colorNeutralBackgroundStatic:grey[24],colorNeutralBackgroundAlpha:grey10Alpha[50],colorNeutralBackgroundAlpha2:grey12Alpha[70],colorSubtleBackground:"transparent",colorSubtleBackgroundHover:grey[22],colorSubtleBackgroundPressed:grey[18],colorSubtleBackgroundSelected:grey[20],colorSubtleBackgroundLightAlphaHover:grey14Alpha[80],colorSubtleBackgroundLightAlphaPressed:grey14Alpha[50],colorSubtleBackgroundLightAlphaSelected:"transparent",colorSubtleBackgroundInverted:"transparent",colorSubtleBackgroundInvertedHover:blackAlpha[10],colorSubtleBackgroundInvertedPressed:blackAlpha[30],colorSubtleBackgroundInvertedSelected:blackAlpha[20],colorTransparentBackground:"transparent",colorTransparentBackgroundHover:"transparent",colorTransparentBackgroundPressed:"transparent",colorTransparentBackgroundSelected:"transparent",colorNeutralBackgroundDisabled:grey[8],colorNeutralBackgroundInvertedDisabled:whiteAlpha[10],colorNeutralStencil1:grey[34],colorNeutralStencil2:grey[20],colorNeutralStencil1Alpha:whiteAlpha[10],colorNeutralStencil2Alpha:whiteAlpha[5],colorBackgroundOverlay:blackAlpha[50],colorScrollbarOverlay:whiteAlpha[60],colorBrandBackground:j[70],colorBrandBackgroundHover:j[80],colorBrandBackgroundPressed:j[40],colorBrandBackgroundSelected:j[60],colorCompoundBrandBackground:j[100],colorCompoundBrandBackgroundHover:j[110],colorCompoundBrandBackgroundPressed:j[90],colorBrandBackgroundStatic:j[80],colorBrandBackground2:j[20],colorBrandBackground2Hover:j[40],colorBrandBackground2Pressed:j[10],colorBrandBackgroundInverted:white,colorBrandBackgroundInvertedHover:j[160],colorBrandBackgroundInvertedPressed:j[140],colorBrandBackgroundInvertedSelected:j[150],colorNeutralStrokeAccessible:grey[68],colorNeutralStrokeAccessibleHover:grey[74],colorNeutralStrokeAccessiblePressed:grey[70],colorNeutralStrokeAccessibleSelected:j[100],colorNeutralStroke1:grey[40],colorNeutralStroke1Hover:grey[46],colorNeutralStroke1Pressed:grey[42],colorNeutralStroke1Selected:grey[44],colorNeutralStroke2:grey[32],colorNeutralStroke3:grey[24],colorNeutralStrokeSubtle:grey[4],colorNeutralStrokeOnBrand:grey[16],colorNeutralStrokeOnBrand2:white,colorNeutralStrokeOnBrand2Hover:white,colorNeutralStrokeOnBrand2Pressed:white,colorNeutralStrokeOnBrand2Selected:white,colorBrandStroke1:j[100],colorBrandStroke2:j[50],colorBrandStroke2Hover:j[50],colorBrandStroke2Pressed:j[30],colorBrandStroke2Contrast:j[50],colorCompoundBrandStroke:j[100],colorCompoundBrandStrokeHover:j[110],colorCompoundBrandStrokePressed:j[90],colorNeutralStrokeDisabled:grey[26],colorNeutralStrokeInvertedDisabled:whiteAlpha[40],colorTransparentStroke:"transparent",colorTransparentStrokeInteractive:"transparent",colorTransparentStrokeDisabled:"transparent",colorNeutralStrokeAlpha:whiteAlpha[10],colorNeutralStrokeAlpha2:whiteAlpha[20],colorStrokeFocus1:black,colorStrokeFocus2:white,colorNeutralShadowAmbient:"rgba(0,0,0,0.24)",colorNeutralShadowKey:"rgba(0,0,0,0.28)",colorNeutralShadowAmbientLighter:"rgba(0,0,0,0.12)",colorNeutralShadowKeyLighter:"rgba(0,0,0,0.14)",colorNeutralShadowAmbientDarker:"rgba(0,0,0,0.40)",colorNeutralShadowKeyDarker:"rgba(0,0,0,0.48)",colorBrandShadowAmbient:"rgba(0,0,0,0.30)",colorBrandShadowKey:"rgba(0,0,0,0.25)"}),createDarkTheme=j=>{const _e=generateColorTokens(j);return{...borderRadius,...fontSizes,...lineHeights,...fontFamilies,...fontWeights,...strokeWidths,...horizontalSpacings,...verticalSpacings,...durations,...curves,..._e,...colorPaletteTokens,...colorStatusTokens,...createShadowTokens(_e.colorNeutralShadowAmbient,_e.colorNeutralShadowKey),...createShadowTokens(_e.colorBrandShadowAmbient,_e.colorBrandShadowKey,"Brand")}},webDarkTheme=createDarkTheme(brandWeb),fluentProviderClassNames={root:"fui-FluentProvider"},useStyles$z=__styles$1({root:{sj55zd:"f19n0e5",De3pzq:"fxugw4r",fsow6f:["f1o700av","fes3tcz"],Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"}},{d:[".f19n0e5{color:var(--colorNeutralForeground1);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1o700av{text-align:left;}",".fes3tcz{text-align:right;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}"]}),useFluentProviderStyles_unstable=j=>{const _e=useRenderer(),et=useStyles$z({dir:j.dir,renderer:_e});return j.root.className=mergeClasses(fluentProviderClassNames.root,j.themeClassName,et.root,j.root.className),j},useInsertionEffect$1=reactExports.useInsertionEffect?reactExports.useInsertionEffect:useIsomorphicLayoutEffect$1,createStyleTag=(j,_e)=>{if(!j)return;const et=j.createElement("style");return Object.keys(_e).forEach(tt=>{et.setAttribute(tt,_e[tt])}),j.head.appendChild(et),et},insertSheet=(j,_e)=>{const et=j.sheet;et&&(et.cssRules.length>0&&et.deleteRule(0),et.insertRule(_e,0))},useFluentProviderThemeStyleTag=j=>{const{targetDocument:_e,theme:et,rendererAttributes:tt}=j,rt=reactExports.useRef(),nt=useId$1(fluentProviderClassNames.root),ot=tt,it=reactExports.useMemo(()=>createCSSRuleFromTheme(`.${nt}`,et),[et,nt]);return useHandleSSRStyleElements(_e,nt),useInsertionEffect$1(()=>{const st=_e==null?void 0:_e.getElementById(nt);return st?rt.current=st:(rt.current=createStyleTag(_e,{...ot,id:nt}),rt.current&&insertSheet(rt.current,it)),()=>{var lt;(lt=rt.current)===null||lt===void 0||lt.remove()}},[nt,_e,it,ot]),{styleTagId:nt,rule:it}};function useHandleSSRStyleElements(j,_e){reactExports.useState(()=>{if(!j)return;const et=j.getElementById(_e);et&&j.head.append(et)})}const EMPTY_OBJECT={},useFluentProvider_unstable=(j,_e)=>{const et=useFluent(),tt=useTheme(),rt=useOverrides(),nt=reactExports.useContext(CustomStyleHooksContext)||EMPTY_OBJECT,{applyStylesToPortals:ot=!0,customStyleHooks_unstable:it,dir:st=et.dir,targetDocument:lt=et.targetDocument,theme:ut,overrides_unstable:ct={}}=j,dt=shallowMerge(tt,ut),ft=shallowMerge(rt,ct),pt=shallowMerge(nt,it),gt=useRenderer();var vt;const{styleTagId:bt,rule:_t}=useFluentProviderThemeStyleTag({theme:dt,targetDocument:lt,rendererAttributes:(vt=gt.styleElementAttributes)!==null&&vt!==void 0?vt:{}});return{applyStylesToPortals:ot,customStyleHooks_unstable:pt,dir:st,targetDocument:lt,theme:dt,overrides_unstable:ft,themeClassName:bt,components:{root:"div"},root:always(getIntrinsicElementProps("div",{...j,dir:st,ref:useMergedRefs$1(_e,useFocusVisible({targetDocument:lt}))}),{elementType:"div"}),serverStyleProps:{cssRule:_t,attributes:{...gt.styleElementAttributes,id:bt}}}};function shallowMerge(j,_e){return j&&_e?{...j,..._e}:j||_e}function useTheme(){return reactExports.useContext(ThemeContext$1)}function useFluentProviderContextValues_unstable(j){const{applyStylesToPortals:_e,customStyleHooks_unstable:et,dir:tt,root:rt,targetDocument:nt,theme:ot,themeClassName:it,overrides_unstable:st}=j,lt=reactExports.useMemo(()=>({dir:tt,targetDocument:nt}),[tt,nt]),[ut]=reactExports.useState(()=>({})),ct=reactExports.useMemo(()=>({textDirection:tt}),[tt]);return{customStyleHooks_unstable:et,overrides_unstable:st,provider:lt,textDirection:tt,iconDirection:ct,tooltip:ut,theme:ot,themeClassName:_e?rt.className:it}}const FluentProvider=reactExports.forwardRef((j,_e)=>{const et=useFluentProvider_unstable(j,_e);useFluentProviderStyles_unstable(et);const tt=useFluentProviderContextValues_unstable(et);return renderFluentProvider_unstable(et,tt)});FluentProvider.displayName="FluentProvider";const createProvider=j=>et=>{const tt=reactExports.useRef(et.value),rt=reactExports.useRef(0),nt=reactExports.useRef();return nt.current||(nt.current={value:tt,version:rt,listeners:[]}),useIsomorphicLayoutEffect$1(()=>{tt.current=et.value,rt.current+=1,schedulerExports.unstable_runWithPriority(schedulerExports.unstable_NormalPriority,()=>{nt.current.listeners.forEach(ot=>{ot([rt.current,et.value])})})},[et.value]),reactExports.createElement(j,{value:nt.current},et.children)},createContext=j=>{const _e=reactExports.createContext({value:{current:j},version:{current:-1},listeners:[]});return _e.Provider=createProvider(_e.Provider),delete _e.Consumer,_e},useContextSelector=(j,_e)=>{const et=reactExports.useContext(j),{value:{current:tt},version:{current:rt},listeners:nt}=et,ot=_e(tt),[it,st]=reactExports.useReducer((lt,ut)=>{if(!ut)return[tt,ot];if(ut[0]<=rt)return objectIs(lt[1],ot)?lt:[tt,ot];try{if(objectIs(lt[0],ut[1]))return lt;const ct=_e(ut[1]);return objectIs(lt[1],ct)?lt:[ut[1],ct]}catch{}return[lt[0],lt[1]]},[tt,ot]);return objectIs(it[1],ot)||st(void 0),useIsomorphicLayoutEffect$1(()=>(nt.push(st),()=>{const lt=nt.indexOf(st);nt.splice(lt,1)}),[nt]),it[1]};function is$3(j,_e){return j===_e&&(j!==0||1/j===1/_e)||j!==j&&_e!==_e}const objectIs=typeof Object.is=="function"?Object.is:is$3;function useHasParentContext(j){const _e=reactExports.useContext(j);return _e.version?_e.version.current!==-1:!1}const AccordionContext=createContext(void 0),accordionContextDefaultValue={openItems:[],collapsible:!1,multiple:!1,navigation:void 0,requestToggle(){}},{Provider:AccordionProvider}=AccordionContext,useAccordionContext_unstable=j=>useContextSelector(AccordionContext,(_e=accordionContextDefaultValue)=>j(_e)),renderAccordion_unstable=(j,_e)=>jsx$1(j.root,{children:jsx$1(AccordionProvider,{value:_e.accordion,children:j.root.children})}),useAccordion_unstable=(j,_e)=>{const{openItems:et,defaultOpenItems:tt,multiple:rt=!1,collapsible:nt=!1,onToggle:ot,navigation:it}=j,[st,lt]=useControllableState({state:reactExports.useMemo(()=>normalizeValues(et),[et]),defaultState:()=>initializeUncontrolledOpenItems({defaultOpenItems:tt,multiple:rt}),initialState:[]}),ut=useArrowNavigationGroup({circular:it==="circular",tabbable:!0}),ct=useEventCallback$3(dt=>{const ft=updateOpenItems(dt.value,st,rt,nt);ot==null||ot(dt.event,{value:dt.value,openItems:ft}),lt(ft)});return{collapsible:nt,multiple:rt,navigation:it,openItems:st,requestToggle:ct,components:{root:"div"},root:always(getIntrinsicElementProps("div",{...j,...it?ut:void 0,ref:_e}),{elementType:"div"})}};function initializeUncontrolledOpenItems({defaultOpenItems:j,multiple:_e}){return j!==void 0?Array.isArray(j)?_e?j:[j[0]]:[j]:[]}function updateOpenItems(j,_e,et,tt){if(et)if(_e.includes(j)){if(_e.length>1||tt)return _e.filter(rt=>rt!==j)}else return[..._e,j].sort();else return _e[0]===j&&tt?[]:[j];return _e}function normalizeValues(j){if(j!==void 0)return Array.isArray(j)?j:[j]}function useAccordionContextValues_unstable(j){const{navigation:_e,openItems:et,requestToggle:tt,multiple:rt,collapsible:nt}=j;return{accordion:{navigation:_e,openItems:et,requestToggle:tt,collapsible:nt,multiple:rt}}}const accordionClassNames={root:"fui-Accordion"},useAccordionStyles_unstable=j=>(j.root.className=mergeClasses(accordionClassNames.root,j.root.className),j),Accordion=reactExports.forwardRef((j,_e)=>{const et=useAccordion_unstable(j,_e),tt=useAccordionContextValues_unstable(et);return useAccordionStyles_unstable(et),useCustomStyleHook("useAccordionStyles_unstable")(et),renderAccordion_unstable(et,tt)});Accordion.displayName="Accordion";const useAccordionItem_unstable=(j,_e)=>{const{value:et,disabled:tt=!1}=j,rt=useAccordionContext_unstable(it=>it.requestToggle),nt=useAccordionContext_unstable(it=>it.openItems.includes(et)),ot=useEventCallback$3(it=>rt({event:it,value:et}));return{open:nt,value:et,disabled:tt,onHeaderClick:ot,components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"})}};function useAccordionItemContextValues_unstable(j){const{disabled:_e,open:et,value:tt,onHeaderClick:rt}=j;return{accordionItem:reactExports.useMemo(()=>({disabled:_e,open:et,value:tt,onHeaderClick:rt}),[_e,et,tt,rt])}}const AccordionItemContext=reactExports.createContext(void 0),accordionItemContextDefaultValue={open:!1,disabled:!1,value:void 0,onHeaderClick(){}},{Provider:AccordionItemProvider}=AccordionItemContext,useAccordionItemContext_unstable=()=>{var j;return(j=reactExports.useContext(AccordionItemContext))!==null&&j!==void 0?j:accordionItemContextDefaultValue},renderAccordionItem_unstable=(j,_e)=>jsx$1(j.root,{children:jsx$1(AccordionItemProvider,{value:_e.accordionItem,children:j.root.children})}),accordionItemClassNames={root:"fui-AccordionItem"},useAccordionItemStyles_unstable=j=>(j.root.className=mergeClasses(accordionItemClassNames.root,j.root.className),j),AccordionItem=reactExports.forwardRef((j,_e)=>{const et=useAccordionItem_unstable(j,_e),tt=useAccordionItemContextValues_unstable(et);return useAccordionItemStyles_unstable(et),useCustomStyleHook("useAccordionItemStyles_unstable")(et),renderAccordionItem_unstable(et,tt)});AccordionItem.displayName="AccordionItem";const Enter="Enter",Space=" ",Tab$2="Tab",ArrowDown="ArrowDown",ArrowLeft="ArrowLeft",ArrowRight="ArrowRight",ArrowUp="ArrowUp",End="End",Home="Home",PageDown="PageDown",PageUp="PageUp",Escape="Escape";function useARIAButtonProps(j,_e){const{disabled:et,disabledFocusable:tt=!1,["aria-disabled"]:rt,onClick:nt,onKeyDown:ot,onKeyUp:it,...st}=_e??{},lt=typeof rt=="string"?rt==="true":rt,ut=et||tt||lt,ct=useEventCallback$3(pt=>{ut?(pt.preventDefault(),pt.stopPropagation()):nt==null||nt(pt)}),dt=useEventCallback$3(pt=>{if(ot==null||ot(pt),pt.isDefaultPrevented())return;const gt=pt.key;if(ut&&(gt===Enter||gt===Space)){pt.preventDefault(),pt.stopPropagation();return}if(gt===Space){pt.preventDefault();return}else gt===Enter&&(pt.preventDefault(),pt.currentTarget.click())}),ft=useEventCallback$3(pt=>{if(it==null||it(pt),pt.isDefaultPrevented())return;const gt=pt.key;if(ut&&(gt===Enter||gt===Space)){pt.preventDefault(),pt.stopPropagation();return}gt===Space&&(pt.preventDefault(),pt.currentTarget.click())});if(j==="button"||j===void 0)return{...st,disabled:et&&!tt,"aria-disabled":tt?!0:lt,onClick:tt?void 0:ct,onKeyUp:tt?void 0:it,onKeyDown:tt?void 0:ot};{const pt={role:"button",tabIndex:et&&!tt?void 0:0,...st,onClick:ct,onKeyUp:ft,onKeyDown:dt,"aria-disabled":et||tt||lt};return j==="a"&&ut&&(pt.href=void 0),pt}}const useAccordionHeader_unstable=(j,_e)=>{const{icon:et,button:tt,expandIcon:rt,inline:nt=!1,size:ot="medium",expandIconPosition:it="start"}=j,{value:st,disabled:lt,open:ut}=useAccordionItemContext_unstable(),ct=useAccordionContext_unstable(vt=>vt.requestToggle),dt=useAccordionContext_unstable(vt=>!vt.collapsible&&vt.openItems.length===1&&ut),{dir:ft}=useFluent();let pt;it==="end"?pt=ut?-90:90:pt=ut?90:ft!=="rtl"?0:180;const gt=always(tt,{elementType:"button",defaultProps:{disabled:lt,disabledFocusable:dt,"aria-expanded":ut,type:"button"}});return gt.onClick=useEventCallback$3(vt=>{if(isResolvedShorthand(tt)){var bt;(bt=tt.onClick)===null||bt===void 0||bt.call(tt,vt)}vt.defaultPrevented||ct({value:st,event:vt})}),{disabled:lt,open:ut,size:ot,inline:nt,expandIconPosition:it,components:{root:"div",button:"button",expandIcon:"span",icon:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"}),icon:optional(et,{elementType:"div"}),expandIcon:optional(rt,{renderByDefault:!0,defaultProps:{children:reactExports.createElement(ChevronRightRegular,{style:{transform:`rotate(${pt}deg)`}}),"aria-hidden":!0},elementType:"span"}),button:useARIAButtonProps(gt.as,gt)}},AccordionHeaderContext=reactExports.createContext(void 0),{Provider:AccordionHeaderProvider}=AccordionHeaderContext,renderAccordionHeader_unstable=(j,_e)=>jsx$1(AccordionHeaderProvider,{value:_e.accordionHeader,children:jsx$1(j.root,{children:jsxs(j.button,{children:[j.expandIconPosition==="start"&&j.expandIcon&&jsx$1(j.expandIcon,{}),j.icon&&jsx$1(j.icon,{}),j.root.children,j.expandIconPosition==="end"&&j.expandIcon&&jsx$1(j.expandIcon,{})]})})}),accordionHeaderClassNames={root:"fui-AccordionHeader",button:"fui-AccordionHeader__button",expandIcon:"fui-AccordionHeader__expandIcon",icon:"fui-AccordionHeader__icon"},useStyles$y=__styles({resetButton:{B7ck84d:"f1e4lqlz",De3pzq:"f1u2r49w",sj55zd:"f1ym3bx4",Bahqtrf:"f1mo0ibp",Be2twd7:"fjoy568",Bg96gwp:"fytdu2e",B68tc82:"f1mtd64y",Bmxbyg5:"f1y7q3j9",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1cnd47f","fhxju0i"],Bv0vk6g:"f37px4s",fsow6f:"fgusgyc"},focusIndicator:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bb7d1vk:"f226i61",zhwhgb:["f13kzufm","fsx75g8"],dhy2o1:"flujwa2",Gfyso:["fsx75g8","f13kzufm"],Bm4h7ae:"f15bsgw9",B7ys5i9:"f14e48fq",Busjfv9:"f18yb2kv",Bhk32uz:"fd6o370",Bf4ptjt:"fh1cnn4",kclons:["fy7oxxb","f184ne2d"],Bhdgwq3:"fpukqih",Blkhhs4:["f184ne2d","fy7oxxb"],Bqtpl0w:"frrh606",clg4pj:["f1v5zibi","fo2hd23"],hgwjuy:"ful5kiu",Bonggc9:["fo2hd23","f1v5zibi"],B1tsrr9:["f1jqcqds","ftffrms"],Dah5zi:["ftffrms","f1jqcqds"],Bkh64rk:["f2e7qr6","fsr1zz6"],qqdqy8:["fsr1zz6","f2e7qr6"],B6dhp37:"f1dvezut",i03rao:["fd0oaoj","f1cwg4i8"],Boxcth7:"fjvm52t",Bsom6fd:["f1cwg4i8","fd0oaoj"],J0r882:"f57olzd",Bule8hv:["f4stah7","fs1por5"],Bjwuhne:"f480a47",Ghsupd:["fs1por5","f4stah7"]},root:{sj55zd:"f19n0e5",De3pzq:"f1c21dwh",B6of3ja:"f1hu3pq6",t21cq0:["f11qmguv","f1tyq0we"],jrapky:"f19f4twv",Frg6f3:["f1tyq0we","f11qmguv"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"]},rootDisabled:{Bcmaq0h:"fwrgwhw",sj55zd:"f1s2aq7o"},rootInline:{mc9l5x:"f14t3ns0"},button:{qhf8xq:"f10pi13n",a9b677:"fly5x3f",B4j52fo:"f5ogflp",Bekrc4i:["f1hqa2wf","finvdd3"],Bn0qgzm:"f1f09k3d",ibv6hh:["finvdd3","f1hqa2wf"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],z8tnut:"f1g0x7ka",z189sj:["fw5db7e","f1uw59to"],Byoj8tv:"f1qch9an",uwmqm3:["f1ng84yb","f11gcy0p"],sshi5w:"f5pgtk9",mc9l5x:"f22iagw",Bt984gj:"f122n59",Bceei9c:"f1k6fduh",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B7ck84d:"f1ewtqcl"},buttonSmall:{sshi5w:"f1nxs5xn",Be2twd7:"fy9rknc"},buttonLarge:{Bg96gwp:"faaz57k",Be2twd7:"fod5ikn"},buttonExtraLarge:{Bg96gwp:"f106mvju",Be2twd7:"f1pp30po"},buttonInline:{mc9l5x:"ftuwxu6"},buttonExpandIconEndNoIcon:{uwmqm3:["f1uw59to","fw5db7e"]},buttonExpandIconEnd:{z189sj:["f11gcy0p","f1ng84yb"]},buttonDisabled:{Bceei9c:"fdrzuqr"},expandIcon:{Bqenvij:"f1l02sjl",mc9l5x:"f22iagw",Bt984gj:"f122n59",Bg96gwp:"f106mvju",Be2twd7:"f1pp30po"},expandIconStart:{z189sj:["f1vdfbxk","f1f5gg8d"]},expandIconEnd:{Bh6795r:"fqerorx",Bnnss6s:"f1neuvcm",xawz:"flqd7gy",mc9l5x:"f22iagw",Brf1p80:"f9c4gz4",uwmqm3:["f1f5gg8d","f1vdfbxk"]},icon:{Bqenvij:"f1l02sjl",mc9l5x:"f22iagw",Bt984gj:"f122n59",z189sj:["f1vdfbxk","f1f5gg8d"],Bg96gwp:"f106mvju",Be2twd7:"f1pp30po"}},{d:[".f1e4lqlz{box-sizing:content-box;}",".f1u2r49w{background-color:inherit;}",".f1ym3bx4{color:inherit;}",".f1mo0ibp{font-family:inherit;}",".fjoy568{font-size:inherit;}",".fytdu2e{line-height:normal;}",".f1mtd64y{overflow-x:visible;}",".f1y7q3j9{overflow-y:visible;}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1qch9an{padding-bottom:0;}",".f37px4s{-webkit-appearance:button;}",".fgusgyc{text-align:unset;}",".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",'.f15bsgw9[data-fui-focus-visible]::after{content:"";}',".f14e48fq[data-fui-focus-visible]::after{position:absolute;}",".f18yb2kv[data-fui-focus-visible]::after{pointer-events:none;}",".fd6o370[data-fui-focus-visible]::after{z-index:1;}",".fh1cnn4[data-fui-focus-visible]::after{border-top-style:solid;}",".fy7oxxb[data-fui-focus-visible]::after{border-right-style:solid;}",".f184ne2d[data-fui-focus-visible]::after{border-left-style:solid;}",".fpukqih[data-fui-focus-visible]::after{border-bottom-style:solid;}",".frrh606[data-fui-focus-visible]::after{border-top-width:2px;}",".f1v5zibi[data-fui-focus-visible]::after{border-right-width:2px;}",".fo2hd23[data-fui-focus-visible]::after{border-left-width:2px;}",".ful5kiu[data-fui-focus-visible]::after{border-bottom-width:2px;}",".f1jqcqds[data-fui-focus-visible]::after{border-bottom-right-radius:var(--borderRadiusMedium);}",".ftffrms[data-fui-focus-visible]::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f2e7qr6[data-fui-focus-visible]::after{border-top-right-radius:var(--borderRadiusMedium);}",".fsr1zz6[data-fui-focus-visible]::after{border-top-left-radius:var(--borderRadiusMedium);}",".f1dvezut[data-fui-focus-visible]::after{border-top-color:var(--colorStrokeFocus2);}",".fd0oaoj[data-fui-focus-visible]::after{border-right-color:var(--colorStrokeFocus2);}",".f1cwg4i8[data-fui-focus-visible]::after{border-left-color:var(--colorStrokeFocus2);}",".fjvm52t[data-fui-focus-visible]::after{border-bottom-color:var(--colorStrokeFocus2);}",".f57olzd[data-fui-focus-visible]::after{top:calc(2px * -1);}",".f4stah7[data-fui-focus-visible]::after{right:calc(2px * -1);}",".fs1por5[data-fui-focus-visible]::after{left:calc(2px * -1);}",".f480a47[data-fui-focus-visible]::after{bottom:calc(2px * -1);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1hu3pq6{margin-top:0;}",".f11qmguv{margin-right:0;}",".f1tyq0we{margin-left:0;}",".f19f4twv{margin-bottom:0;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".fwrgwhw{background-image:none;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f14t3ns0{display:inline-block;}",".f10pi13n{position:relative;}",".fly5x3f{width:100%;}",".f5ogflp{border-top-width:1px;}",".f1hqa2wf{border-right-width:1px;}",".finvdd3{border-left-width:1px;}",".f1f09k3d{border-bottom-width:1px;}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}",".fw5db7e{padding-right:var(--spacingHorizontalM);}",".f1uw59to{padding-left:var(--spacingHorizontalM);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f5pgtk9{min-height:44px;}",".f22iagw{display:flex;}",".f122n59{align-items:center;}",".f1k6fduh{cursor:pointer;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1ewtqcl{box-sizing:border-box;}",".f1nxs5xn{min-height:32px;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".f106mvju{line-height:var(--lineHeightBase500);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".ftuwxu6{display:inline-flex;}",".fdrzuqr{cursor:not-allowed;}",".f1l02sjl{height:100%;}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".fqerorx{flex-grow:1;}",".f1neuvcm{flex-shrink:1;}",".flqd7gy{flex-basis:0%;}",".f9c4gz4{justify-content:flex-end;}"],f:[".ftqa4ok:focus{outline-style:none;}"],i:[".f2hkw1w:focus-visible{outline-style:none;}"],m:[["@media (forced-colors: active){.f226i61[data-fui-focus-visible]::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f13kzufm[data-fui-focus-visible]::after{border-right-color:Highlight;}.fsx75g8[data-fui-focus-visible]::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.flujwa2[data-fui-focus-visible]::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}]]}),useAccordionHeaderStyles_unstable=j=>{const _e=useStyles$y();return j.root.className=mergeClasses(accordionHeaderClassNames.root,_e.root,j.inline&&_e.rootInline,j.disabled&&_e.rootDisabled,j.root.className),j.button.className=mergeClasses(accordionHeaderClassNames.button,_e.resetButton,_e.button,_e.focusIndicator,j.expandIconPosition==="end"&&!j.icon&&_e.buttonExpandIconEndNoIcon,j.expandIconPosition==="end"&&_e.buttonExpandIconEnd,j.inline&&_e.buttonInline,j.size==="small"&&_e.buttonSmall,j.size==="large"&&_e.buttonLarge,j.size==="extra-large"&&_e.buttonExtraLarge,j.disabled&&_e.buttonDisabled,j.button.className),j.expandIcon&&(j.expandIcon.className=mergeClasses(accordionHeaderClassNames.expandIcon,_e.expandIcon,j.expandIconPosition==="start"&&_e.expandIconStart,j.expandIconPosition==="end"&&_e.expandIconEnd,j.expandIcon.className)),j.icon&&(j.icon.className=mergeClasses(accordionHeaderClassNames.icon,_e.icon,j.icon.className)),j};function useAccordionHeaderContextValues_unstable(j){const{disabled:_e,expandIconPosition:et,open:tt,size:rt}=j;return{accordionHeader:reactExports.useMemo(()=>({disabled:_e,expandIconPosition:et,open:tt,size:rt}),[_e,et,tt,rt])}}const AccordionHeader=reactExports.forwardRef((j,_e)=>{const et=useAccordionHeader_unstable(j,_e),tt=useAccordionHeaderContextValues_unstable(et);return useAccordionHeaderStyles_unstable(et),useCustomStyleHook("useAccordionHeaderStyles_unstable")(et),renderAccordionHeader_unstable(et,tt)});AccordionHeader.displayName="AccordionHeader";const useAccordionPanel_unstable=(j,_e)=>{const{open:et}=useAccordionItemContext_unstable(),tt=useTabsterAttributes({focusable:{excludeFromMover:!0}}),rt=useAccordionContext_unstable(nt=>nt.navigation);return{open:et,components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,...j,...rt&&tt}),{elementType:"div"})}},renderAccordionPanel_unstable=j=>j.open?jsx$1(j.root,{children:j.root.children}):null,accordionPanelClassNames={root:"fui-AccordionPanel"},useStyles$x=__styles({root:{B6of3ja:"f1hu3pq6",t21cq0:["fkujibs","f199hnxi"],jrapky:"f19f4twv",Frg6f3:["f199hnxi","fkujibs"]}},{d:[".f1hu3pq6{margin-top:0;}",".fkujibs{margin-right:var(--spacingHorizontalM);}",".f199hnxi{margin-left:var(--spacingHorizontalM);}",".f19f4twv{margin-bottom:0;}"]}),useAccordionPanelStyles_unstable=j=>{const _e=useStyles$x();return j.root.className=mergeClasses(accordionPanelClassNames.root,_e.root,j.root.className),j},AccordionPanel=reactExports.forwardRef((j,_e)=>{const et=useAccordionPanel_unstable(j,_e);return useAccordionPanelStyles_unstable(et),useCustomStyleHook("useAccordionPanelStyles_unstable")(et),renderAccordionPanel_unstable(et)});AccordionPanel.displayName="AccordionPanel";const useBadge_unstable=(j,_e)=>{const{shape:et="circular",size:tt="medium",iconPosition:rt="before",appearance:nt="filled",color:ot="brand"}=j;return{shape:et,size:tt,iconPosition:rt,appearance:nt,color:ot,components:{root:"div",icon:"span"},root:always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"}),icon:optional(j.icon,{elementType:"span"})}},badgeClassNames={root:"fui-Badge",icon:"fui-Badge__icon"},useRootClassName$1=__resetStyles("r1l7mb74","rntuq2r",[".r1l7mb74{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;position:relative;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase200);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase200);height:20px;width:20px;min-width:max-content;padding:0 calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));border-radius:var(--borderRadiusCircular);border-color:var(--colorTransparentStroke);}",'.r1l7mb74::after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;border-style:solid;border-color:inherit;border-width:var(--strokeWidthThin);border-radius:inherit;}',".rntuq2r{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;position:relative;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase200);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase200);height:20px;width:20px;min-width:max-content;padding:0 calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));border-radius:var(--borderRadiusCircular);border-color:var(--colorTransparentStroke);}",'.rntuq2r::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-style:solid;border-color:inherit;border-width:var(--strokeWidthThin);border-radius:inherit;}']),useRootStyles$6=__styles({fontSmallToTiny:{Bahqtrf:"fk6fouc",Be2twd7:"f13mqy1h",Bhrd7zp:"fl43uef",Bg96gwp:"fcpl73t"},tiny:{a9b677:"f16dn6v3",Bqenvij:"f3mu39s",Be2twd7:"f130uwy9",Bg96gwp:"fod1mrr",Bf4jedk:"f18p0k4z",z8tnut:"f1q8r6hh",z189sj:["fio2s09","fkiw60q"],Byoj8tv:"f9yu9nh",uwmqm3:["fkiw60q","fio2s09"]},"extra-small":{a9b677:"fpd43o0",Bqenvij:"f30q22z",Be2twd7:"f1tccstq",Bg96gwp:"f1y3arg5",Bf4jedk:"f18p0k4z",z8tnut:"f1q8r6hh",z189sj:["fio2s09","fkiw60q"],Byoj8tv:"f9yu9nh",uwmqm3:["fkiw60q","fio2s09"]},small:{a9b677:"fjw5fx7",Bqenvij:"fd461yt",z8tnut:"f1g0x7ka",z189sj:["fps1v9c","f17ae1jz"],Byoj8tv:"f1qch9an",uwmqm3:["f17ae1jz","fps1v9c"]},medium:{},large:{a9b677:"fq4mcun",Bqenvij:"frvgh55",z8tnut:"f1g0x7ka",z189sj:["f17a92cs","f1pe0i86"],Byoj8tv:"f1qch9an",uwmqm3:["f1pe0i86","f17a92cs"]},"extra-large":{a9b677:"f1szoe96",Bqenvij:"f1d2rq10",z8tnut:"f1g0x7ka",z189sj:["fqznh8f","f1xile11"],Byoj8tv:"f1qch9an",uwmqm3:["f1xile11","fqznh8f"]},square:{Bbmb7ep:["fzi6hpg","fyowgf4"],Beyfa6y:["fyowgf4","fzi6hpg"],B7oj6ja:["f3fg2lr","f13av6d4"],Btl43ni:["f13av6d4","f3fg2lr"]},rounded:{Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"]},roundedSmallToTiny:{Bbmb7ep:["f1g3puop","fi2rrw2"],Beyfa6y:["fi2rrw2","f1g3puop"],B7oj6ja:["f1rstyi9","f1s4nn1u"],Btl43ni:["f1s4nn1u","f1rstyi9"]},circular:{},borderGhost:{ap17g6:"f10ludwy"},filled:{},"filled-brand":{De3pzq:"ffp7eso",sj55zd:"f1phragk"},"filled-danger":{De3pzq:"fdl5y0r",sj55zd:"f1phragk"},"filled-important":{De3pzq:"f1c73kur",sj55zd:"fr0bkrk"},"filled-informative":{De3pzq:"f3vzo32",sj55zd:"f11d4kpn"},"filled-severe":{De3pzq:"f1s438gw",sj55zd:"f1phragk"},"filled-subtle":{De3pzq:"fxugw4r",sj55zd:"f19n0e5"},"filled-success":{De3pzq:"flxk52p",sj55zd:"f1phragk"},"filled-warning":{De3pzq:"ffq97bm",sj55zd:"ff5vbop"},ghost:{},"ghost-brand":{sj55zd:"f16muhyy"},"ghost-danger":{sj55zd:"f1whyuy6"},"ghost-important":{sj55zd:"f19n0e5"},"ghost-informative":{sj55zd:"f11d4kpn"},"ghost-severe":{sj55zd:"f1l8vj45"},"ghost-subtle":{sj55zd:"fonrgv7"},"ghost-success":{sj55zd:"f1m7fhi8"},"ghost-warning":{sj55zd:"fpti2h4"},outline:{g2u3we:"f23ftbb",h3c5rm:["f1gkuv52","f1p1bl80"],B9xav0g:"fioka3i",zhjwy3:["f1p1bl80","f1gkuv52"]},"outline-brand":{sj55zd:"f16muhyy"},"outline-danger":{sj55zd:"f1whyuy6",g2u3we:"fyqpifd",h3c5rm:["f3ukxca","f1k7dugc"],B9xav0g:"f1njxb2b",zhjwy3:["f1k7dugc","f3ukxca"]},"outline-important":{sj55zd:"f11d4kpn",g2u3we:"fq0vr37",h3c5rm:["f1byw159","f11cr0be"],B9xav0g:"f1c1zstj",zhjwy3:["f11cr0be","f1byw159"]},"outline-informative":{sj55zd:"f11d4kpn",g2u3we:"f68mrw8",h3c5rm:["f7pw515","fw35ms5"],B9xav0g:"frpde29",zhjwy3:["fw35ms5","f7pw515"]},"outline-severe":{sj55zd:"f1l8vj45"},"outline-subtle":{sj55zd:"fonrgv7"},"outline-success":{sj55zd:"f1m7fhi8",g2u3we:"f1mmhl11",h3c5rm:["f1tjpp2f","f1ocn5n7"],B9xav0g:"f1gjv25d",zhjwy3:["f1ocn5n7","f1tjpp2f"]},"outline-warning":{sj55zd:"fpti2h4"},tint:{},"tint-brand":{De3pzq:"f16xkysk",sj55zd:"faj9fo0",g2u3we:"f161y7kd",h3c5rm:["f1c8dzaj","f1sl6hi9"],B9xav0g:"f1619yhw",zhjwy3:["f1sl6hi9","f1c8dzaj"]},"tint-danger":{De3pzq:"ff0poqj",sj55zd:"f1hcrxcs",g2u3we:"f1oqjm8o",h3c5rm:["fkgrb8g","frb5wm0"],B9xav0g:"f1iai1ph",zhjwy3:["frb5wm0","fkgrb8g"]},"tint-important":{De3pzq:"f945g0u",sj55zd:"fr0bkrk",g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},"tint-informative":{De3pzq:"f1ctqxl6",sj55zd:"f11d4kpn",g2u3we:"f68mrw8",h3c5rm:["f7pw515","fw35ms5"],B9xav0g:"frpde29",zhjwy3:["fw35ms5","f7pw515"]},"tint-severe":{De3pzq:"f1xzsg4",sj55zd:"f1k5f75o",g2u3we:"fxy9dsj",h3c5rm:["f54u6j2","fcm23ze"],B9xav0g:"f4vf0uq",zhjwy3:["fcm23ze","f54u6j2"]},"tint-subtle":{De3pzq:"fxugw4r",sj55zd:"f11d4kpn",g2u3we:"f68mrw8",h3c5rm:["f7pw515","fw35ms5"],B9xav0g:"frpde29",zhjwy3:["fw35ms5","f7pw515"]},"tint-success":{De3pzq:"f2vsrz6",sj55zd:"ffmvakt",g2u3we:"fdmic9h",h3c5rm:["f196y6m","fetptd8"],B9xav0g:"f1pev5xq",zhjwy3:["fetptd8","f196y6m"]},"tint-warning":{De3pzq:"f10s6hli",sj55zd:"f42v8de",g2u3we:"fn9i3n",h3c5rm:["f1aw8cx4","f51if14"],B9xav0g:"fvq8iai",zhjwy3:["f51if14","f1aw8cx4"]}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".f13mqy1h{font-size:var(--fontSizeBase100);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fcpl73t{line-height:var(--lineHeightBase100);}",".f16dn6v3{width:6px;}",".f3mu39s{height:6px;}",".f130uwy9{font-size:4px;}",".fod1mrr{line-height:4px;}",".f18p0k4z{min-width:unset;}",".f1q8r6hh{padding-top:unset;}",".fio2s09{padding-right:unset;}",".fkiw60q{padding-left:unset;}",".f9yu9nh{padding-bottom:unset;}",".fpd43o0{width:10px;}",".f30q22z{height:10px;}",".f1tccstq{font-size:6px;}",".f1y3arg5{line-height:6px;}",".fjw5fx7{width:16px;}",".fd461yt{height:16px;}",".f1g0x7ka{padding-top:0;}",".fps1v9c{padding-right:calc(var(--spacingHorizontalXXS) + var(--spacingHorizontalXXS));}",".f17ae1jz{padding-left:calc(var(--spacingHorizontalXXS) + var(--spacingHorizontalXXS));}",".f1qch9an{padding-bottom:0;}",".fq4mcun{width:24px;}",".frvgh55{height:24px;}",".f17a92cs{padding-right:calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));}",".f1pe0i86{padding-left:calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));}",".f1szoe96{width:32px;}",".f1d2rq10{height:32px;}",".fqznh8f{padding-right:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".f1xile11{padding-left:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".fzi6hpg{border-bottom-right-radius:var(--borderRadiusNone);}",".fyowgf4{border-bottom-left-radius:var(--borderRadiusNone);}",".f3fg2lr{border-top-right-radius:var(--borderRadiusNone);}",".f13av6d4{border-top-left-radius:var(--borderRadiusNone);}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f1g3puop{border-bottom-right-radius:var(--borderRadiusSmall);}",".fi2rrw2{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1rstyi9{border-top-right-radius:var(--borderRadiusSmall);}",".f1s4nn1u{border-top-left-radius:var(--borderRadiusSmall);}",".f10ludwy::after{display:none;}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".fdl5y0r{background-color:var(--colorPaletteRedBackground3);}",".f1c73kur{background-color:var(--colorNeutralForeground1);}",".fr0bkrk{color:var(--colorNeutralBackground1);}",".f3vzo32{background-color:var(--colorNeutralBackground5);}",".f11d4kpn{color:var(--colorNeutralForeground3);}",".f1s438gw{background-color:var(--colorPaletteDarkOrangeBackground3);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".flxk52p{background-color:var(--colorPaletteGreenBackground3);}",".ffq97bm{background-color:var(--colorPaletteYellowBackground3);}",".ff5vbop{color:var(--colorNeutralForeground1Static);}",".f16muhyy{color:var(--colorBrandForeground1);}",".f1whyuy6{color:var(--colorPaletteRedForeground3);}",".f1l8vj45{color:var(--colorPaletteDarkOrangeForeground3);}",".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".f1m7fhi8{color:var(--colorPaletteGreenForeground3);}",".fpti2h4{color:var(--colorPaletteYellowForeground2);}",".f23ftbb{border-top-color:currentColor;}",".f1gkuv52{border-right-color:currentColor;}",".f1p1bl80{border-left-color:currentColor;}",".fioka3i{border-bottom-color:currentColor;}",".fyqpifd{border-top-color:var(--colorPaletteRedBorder2);}",".f3ukxca{border-right-color:var(--colorPaletteRedBorder2);}",".f1k7dugc{border-left-color:var(--colorPaletteRedBorder2);}",".f1njxb2b{border-bottom-color:var(--colorPaletteRedBorder2);}",".fq0vr37{border-top-color:var(--colorNeutralStrokeAccessible);}",".f1byw159{border-right-color:var(--colorNeutralStrokeAccessible);}",".f11cr0be{border-left-color:var(--colorNeutralStrokeAccessible);}",".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}",".f68mrw8{border-top-color:var(--colorNeutralStroke2);}",".f7pw515{border-right-color:var(--colorNeutralStroke2);}",".fw35ms5{border-left-color:var(--colorNeutralStroke2);}",".frpde29{border-bottom-color:var(--colorNeutralStroke2);}",".f1mmhl11{border-top-color:var(--colorPaletteGreenBorder2);}",".f1tjpp2f{border-right-color:var(--colorPaletteGreenBorder2);}",".f1ocn5n7{border-left-color:var(--colorPaletteGreenBorder2);}",".f1gjv25d{border-bottom-color:var(--colorPaletteGreenBorder2);}",".f16xkysk{background-color:var(--colorBrandBackground2);}",".faj9fo0{color:var(--colorBrandForeground2);}",".f161y7kd{border-top-color:var(--colorBrandStroke2);}",".f1c8dzaj{border-right-color:var(--colorBrandStroke2);}",".f1sl6hi9{border-left-color:var(--colorBrandStroke2);}",".f1619yhw{border-bottom-color:var(--colorBrandStroke2);}",".ff0poqj{background-color:var(--colorPaletteRedBackground1);}",".f1hcrxcs{color:var(--colorPaletteRedForeground1);}",".f1oqjm8o{border-top-color:var(--colorPaletteRedBorder1);}",".fkgrb8g{border-right-color:var(--colorPaletteRedBorder1);}",".frb5wm0{border-left-color:var(--colorPaletteRedBorder1);}",".f1iai1ph{border-bottom-color:var(--colorPaletteRedBorder1);}",".f945g0u{background-color:var(--colorNeutralForeground3);}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".f1ctqxl6{background-color:var(--colorNeutralBackground4);}",".f1xzsg4{background-color:var(--colorPaletteDarkOrangeBackground1);}",".f1k5f75o{color:var(--colorPaletteDarkOrangeForeground1);}",".fxy9dsj{border-top-color:var(--colorPaletteDarkOrangeBorder1);}",".f54u6j2{border-right-color:var(--colorPaletteDarkOrangeBorder1);}",".fcm23ze{border-left-color:var(--colorPaletteDarkOrangeBorder1);}",".f4vf0uq{border-bottom-color:var(--colorPaletteDarkOrangeBorder1);}",".f2vsrz6{background-color:var(--colorPaletteGreenBackground1);}",".ffmvakt{color:var(--colorPaletteGreenForeground1);}",".fdmic9h{border-top-color:var(--colorPaletteGreenBorder1);}",".f196y6m{border-right-color:var(--colorPaletteGreenBorder1);}",".fetptd8{border-left-color:var(--colorPaletteGreenBorder1);}",".f1pev5xq{border-bottom-color:var(--colorPaletteGreenBorder1);}",".f10s6hli{background-color:var(--colorPaletteYellowBackground1);}",".f42v8de{color:var(--colorPaletteYellowForeground1);}",".fn9i3n{border-top-color:var(--colorPaletteYellowBorder1);}",".f1aw8cx4{border-right-color:var(--colorPaletteYellowBorder1);}",".f51if14{border-left-color:var(--colorPaletteYellowBorder1);}",".fvq8iai{border-bottom-color:var(--colorPaletteYellowBorder1);}"]}),useIconRootClassName=__resetStyles("rttl5z0",null,[".rttl5z0{display:flex;line-height:1;margin:0 calc(-1 * var(--spacingHorizontalXXS));font-size:12px;}"]),useIconStyles$3=__styles({beforeText:{t21cq0:["f1t8l4o1","f11juvx6"]},afterText:{Frg6f3:["f11juvx6","f1t8l4o1"]},beforeTextXL:{t21cq0:["f1rs9grm","f1kwmkpi"]},afterTextXL:{Frg6f3:["f1kwmkpi","f1rs9grm"]},tiny:{Be2twd7:"f1tccstq"},"extra-small":{Be2twd7:"fnmn6fi"},small:{Be2twd7:"f1ugzwwg"},medium:{},large:{Be2twd7:"f4ybsrx"},"extra-large":{Be2twd7:"fe5j1ua"}},{d:[".f1t8l4o1{margin-right:calc(var(--spacingHorizontalXXS) + var(--spacingHorizontalXXS));}",".f11juvx6{margin-left:calc(var(--spacingHorizontalXXS) + var(--spacingHorizontalXXS));}",".f1rs9grm{margin-right:calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));}",".f1kwmkpi{margin-left:calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));}",".f1tccstq{font-size:6px;}",".fnmn6fi{font-size:10px;}",".f1ugzwwg{font-size:12px;}",".f4ybsrx{font-size:16px;}",".fe5j1ua{font-size:20px;}"]}),useBadgeStyles_unstable=j=>{const _e=useRootClassName$1(),et=useRootStyles$6(),tt=j.size==="small"||j.size==="extra-small"||j.size==="tiny";j.root.className=mergeClasses(badgeClassNames.root,_e,tt&&et.fontSmallToTiny,et[j.size],et[j.shape],j.shape==="rounded"&&tt&&et.roundedSmallToTiny,j.appearance==="ghost"&&et.borderGhost,et[j.appearance],et[`${j.appearance}-${j.color}`],j.root.className);const rt=useIconRootClassName(),nt=useIconStyles$3();if(j.icon){let ot;j.root.children&&(j.size==="extra-large"?ot=j.iconPosition==="after"?nt.afterTextXL:nt.beforeTextXL:ot=j.iconPosition==="after"?nt.afterText:nt.beforeText),j.icon.className=mergeClasses(badgeClassNames.icon,rt,ot,nt[j.size],j.icon.className)}return j},renderBadge_unstable=j=>jsxs(j.root,{children:[j.iconPosition==="before"&&j.icon&&jsx$1(j.icon,{}),j.root.children,j.iconPosition==="after"&&j.icon&&jsx$1(j.icon,{})]}),Badge$2=reactExports.forwardRef((j,_e)=>{const et=useBadge_unstable(j,_e);return useBadgeStyles_unstable(et),useCustomStyleHook("useBadgeStyles_unstable")(et),renderBadge_unstable(et)});Badge$2.displayName="Badge";const useCounterBadge_unstable=(j,_e)=>{const{shape:et="circular",appearance:tt="filled",showZero:rt=!1,overflowCount:nt=99,count:ot=0,dot:it=!1}=j,st={...useBadge_unstable(j,_e),shape:et,appearance:tt,showZero:rt,count:ot,dot:it};return(ot!==0||rt)&&!it&&!st.root.children&&(st.root.children=ot>nt?`${nt}+`:`${ot}`),st},counterBadgeClassNames={root:"fui-CounterBadge",icon:"fui-CounterBadge__icon"},useStyles$w=__styles({dot:{Bf4jedk:"fgfkb25",a9b677:"f16dn6v3",Bqenvij:"f3mu39s",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1cnd47f","fhxju0i"]},hide:{mc9l5x:"fjseox"}},{d:[".fgfkb25{min-width:auto;}",".f16dn6v3{width:6px;}",".f3mu39s{height:6px;}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1qch9an{padding-bottom:0;}",".fjseox{display:none;}"]}),useCounterBadgeStyles_unstable=j=>{const _e=useStyles$w();return j.root.className=mergeClasses(counterBadgeClassNames.root,j.dot&&_e.dot,!j.root.children&&!j.dot&&_e.hide,j.root.className),j.icon&&(j.icon.className=mergeClasses(counterBadgeClassNames.icon,j.icon.className)),useBadgeStyles_unstable(j)},CounterBadge=reactExports.forwardRef((j,_e)=>{const et=useCounterBadge_unstable(j,_e);return useCounterBadgeStyles_unstable(et),useCustomStyleHook("useCounterBadgeStyles_unstable")(et),renderBadge_unstable(et)});CounterBadge.displayName="CounterBadge";function createVirtualElementFromClick(j){const _e=j.clientX,et=j.clientY,tt=_e+1,rt=et+1;function nt(){return{left:_e,top:et,right:tt,bottom:rt,x:_e,y:et,height:1,width:1}}return{getBoundingClientRect:nt}}const DATA_POSITIONING_INTERSECTING="data-popper-is-intersecting",DATA_POSITIONING_ESCAPED="data-popper-escaped",DATA_POSITIONING_HIDDEN="data-popper-reference-hidden",DATA_POSITIONING_PLACEMENT="data-popper-placement",sides=["top","right","bottom","left"],min$a=Math.min,max$9=Math.max,round$2=Math.round,createCoords=j=>({x:j,y:j}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"},oppositeAlignmentMap={start:"end",end:"start"};function clamp$2(j,_e,et){return max$9(j,min$a(_e,et))}function evaluate(j,_e){return typeof j=="function"?j(_e):j}function getSide(j){return j.split("-")[0]}function getAlignment(j){return j.split("-")[1]}function getOppositeAxis(j){return j==="x"?"y":"x"}function getAxisLength(j){return j==="y"?"height":"width"}function getSideAxis(j){return["top","bottom"].includes(getSide(j))?"y":"x"}function getAlignmentAxis(j){return getOppositeAxis(getSideAxis(j))}function getAlignmentSides(j,_e,et){et===void 0&&(et=!1);const tt=getAlignment(j),rt=getAlignmentAxis(j),nt=getAxisLength(rt);let ot=rt==="x"?tt===(et?"end":"start")?"right":"left":tt==="start"?"bottom":"top";return _e.reference[nt]>_e.floating[nt]&&(ot=getOppositePlacement(ot)),[ot,getOppositePlacement(ot)]}function getExpandedPlacements(j){const _e=getOppositePlacement(j);return[getOppositeAlignmentPlacement(j),_e,getOppositeAlignmentPlacement(_e)]}function getOppositeAlignmentPlacement(j){return j.replace(/start|end/g,_e=>oppositeAlignmentMap[_e])}function getSideList(j,_e,et){const tt=["left","right"],rt=["right","left"],nt=["top","bottom"],ot=["bottom","top"];switch(j){case"top":case"bottom":return et?_e?rt:tt:_e?tt:rt;case"left":case"right":return _e?nt:ot;default:return[]}}function getOppositeAxisPlacements(j,_e,et,tt){const rt=getAlignment(j);let nt=getSideList(getSide(j),et==="start",tt);return rt&&(nt=nt.map(ot=>ot+"-"+rt),_e&&(nt=nt.concat(nt.map(getOppositeAlignmentPlacement)))),nt}function getOppositePlacement(j){return j.replace(/left|right|bottom|top/g,_e=>oppositeSideMap[_e])}function expandPaddingObject(j){return{top:0,right:0,bottom:0,left:0,...j}}function getPaddingObject(j){return typeof j!="number"?expandPaddingObject(j):{top:j,right:j,bottom:j,left:j}}function rectToClientRect(j){return{...j,top:j.y,left:j.x,right:j.x+j.width,bottom:j.y+j.height}}function computeCoordsFromPlacement(j,_e,et){let{reference:tt,floating:rt}=j;const nt=getSideAxis(_e),ot=getAlignmentAxis(_e),it=getAxisLength(ot),st=getSide(_e),lt=nt==="y",ut=tt.x+tt.width/2-rt.width/2,ct=tt.y+tt.height/2-rt.height/2,dt=tt[it]/2-rt[it]/2;let ft;switch(st){case"top":ft={x:ut,y:tt.y-rt.height};break;case"bottom":ft={x:ut,y:tt.y+tt.height};break;case"right":ft={x:tt.x+tt.width,y:ct};break;case"left":ft={x:tt.x-rt.width,y:ct};break;default:ft={x:tt.x,y:tt.y}}switch(getAlignment(_e)){case"start":ft[ot]-=dt*(et&<?-1:1);break;case"end":ft[ot]+=dt*(et&<?-1:1);break}return ft}const computePosition$1=async(j,_e,et)=>{const{placement:tt="bottom",strategy:rt="absolute",middleware:nt=[],platform:ot}=et,it=nt.filter(Boolean),st=await(ot.isRTL==null?void 0:ot.isRTL(_e));let lt=await ot.getElementRects({reference:j,floating:_e,strategy:rt}),{x:ut,y:ct}=computeCoordsFromPlacement(lt,tt,st),dt=tt,ft={},pt=0;for(let gt=0;gt({name:"arrow",options:j,async fn(_e){const{x:et,y:tt,placement:rt,rects:nt,platform:ot,elements:it,middlewareData:st}=_e,{element:lt,padding:ut=0}=evaluate(j,_e)||{};if(lt==null)return{};const ct=getPaddingObject(ut),dt={x:et,y:tt},ft=getAlignmentAxis(rt),pt=getAxisLength(ft),gt=await ot.getDimensions(lt),vt=ft==="y",bt=vt?"top":"left",_t=vt?"bottom":"right",xt=vt?"clientHeight":"clientWidth",yt=nt.reference[pt]+nt.reference[ft]-dt[ft]-nt.floating[pt],Et=dt[ft]-nt.reference[ft],St=await(ot.getOffsetParent==null?void 0:ot.getOffsetParent(lt));let $t=St?St[xt]:0;(!$t||!await(ot.isElement==null?void 0:ot.isElement(St)))&&($t=it.floating[xt]||nt.floating[pt]);const At=yt/2-Et/2,wt=$t/2-gt[pt]/2-1,Ct=min$a(ct[bt],wt),It=min$a(ct[_t],wt),Ot=Ct,Nt=$t-gt[pt]-It,Pt=$t/2-gt[pt]/2+At,Mt=clamp$2(Ot,Pt,Nt),Rt=!st.arrow&&getAlignment(rt)!=null&&Pt!=Mt&&nt.reference[pt]/2-(PtOt<=0)){var wt,Ct;const Ot=(((wt=nt.flip)==null?void 0:wt.index)||0)+1,Nt=Et[Ot];if(Nt)return{data:{index:Ot,overflows:At},reset:{placement:Nt}};let Pt=(Ct=At.filter(Mt=>Mt.overflows[0]<=0).sort((Mt,Rt)=>Mt.overflows[1]-Rt.overflows[1])[0])==null?void 0:Ct.placement;if(!Pt)switch(ft){case"bestFit":{var It;const Mt=(It=At.map(Rt=>[Rt.placement,Rt.overflows.filter(Lt=>Lt>0).reduce((Lt,jt)=>Lt+jt,0)]).sort((Rt,Lt)=>Rt[1]-Lt[1])[0])==null?void 0:It[0];Mt&&(Pt=Mt);break}case"initialPlacement":Pt=it;break}if(rt!==Pt)return{reset:{placement:Pt}}}return{}}}};function getSideOffsets(j,_e){return{top:j.top-_e.height,right:j.right-_e.width,bottom:j.bottom-_e.height,left:j.left-_e.width}}function isAnySideFullyClipped(j){return sides.some(_e=>j[_e]>=0)}const hide=function(j){return j===void 0&&(j={}),{name:"hide",options:j,async fn(_e){const{rects:et}=_e,{strategy:tt="referenceHidden",...rt}=evaluate(j,_e);switch(tt){case"referenceHidden":{const nt=await detectOverflow(_e,{...rt,elementContext:"reference"}),ot=getSideOffsets(nt,et.reference);return{data:{referenceHiddenOffsets:ot,referenceHidden:isAnySideFullyClipped(ot)}}}case"escaped":{const nt=await detectOverflow(_e,{...rt,altBoundary:!0}),ot=getSideOffsets(nt,et.floating);return{data:{escapedOffsets:ot,escaped:isAnySideFullyClipped(ot)}}}default:return{}}}}};async function convertValueToCoords(j,_e){const{placement:et,platform:tt,elements:rt}=j,nt=await(tt.isRTL==null?void 0:tt.isRTL(rt.floating)),ot=getSide(et),it=getAlignment(et),st=getSideAxis(et)==="y",lt=["left","top"].includes(ot)?-1:1,ut=nt&&st?-1:1,ct=evaluate(_e,j);let{mainAxis:dt,crossAxis:ft,alignmentAxis:pt}=typeof ct=="number"?{mainAxis:ct,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...ct};return it&&typeof pt=="number"&&(ft=it==="end"?pt*-1:pt),st?{x:ft*ut,y:dt*lt}:{x:dt*lt,y:ft*ut}}const offset$1=function(j){return j===void 0&&(j=0),{name:"offset",options:j,async fn(_e){var et,tt;const{x:rt,y:nt,placement:ot,middlewareData:it}=_e,st=await convertValueToCoords(_e,j);return ot===((et=it.offset)==null?void 0:et.placement)&&(tt=it.arrow)!=null&&tt.alignmentOffset?{}:{x:rt+st.x,y:nt+st.y,data:{...st,placement:ot}}}}},shift$1=function(j){return j===void 0&&(j={}),{name:"shift",options:j,async fn(_e){const{x:et,y:tt,placement:rt}=_e,{mainAxis:nt=!0,crossAxis:ot=!1,limiter:it={fn:vt=>{let{x:bt,y:_t}=vt;return{x:bt,y:_t}}},...st}=evaluate(j,_e),lt={x:et,y:tt},ut=await detectOverflow(_e,st),ct=getSideAxis(getSide(rt)),dt=getOppositeAxis(ct);let ft=lt[dt],pt=lt[ct];if(nt){const vt=dt==="y"?"top":"left",bt=dt==="y"?"bottom":"right",_t=ft+ut[vt],xt=ft-ut[bt];ft=clamp$2(_t,ft,xt)}if(ot){const vt=ct==="y"?"top":"left",bt=ct==="y"?"bottom":"right",_t=pt+ut[vt],xt=pt-ut[bt];pt=clamp$2(_t,pt,xt)}const gt=it.fn({..._e,[dt]:ft,[ct]:pt});return{...gt,data:{x:gt.x-et,y:gt.y-tt}}}}},limitShift=function(j){return j===void 0&&(j={}),{options:j,fn(_e){const{x:et,y:tt,placement:rt,rects:nt,middlewareData:ot}=_e,{offset:it=0,mainAxis:st=!0,crossAxis:lt=!0}=evaluate(j,_e),ut={x:et,y:tt},ct=getSideAxis(rt),dt=getOppositeAxis(ct);let ft=ut[dt],pt=ut[ct];const gt=evaluate(it,_e),vt=typeof gt=="number"?{mainAxis:gt,crossAxis:0}:{mainAxis:0,crossAxis:0,...gt};if(st){const xt=dt==="y"?"height":"width",yt=nt.reference[dt]-nt.floating[xt]+vt.mainAxis,Et=nt.reference[dt]+nt.reference[xt]-vt.mainAxis;ftEt&&(ft=Et)}if(lt){var bt,_t;const xt=dt==="y"?"width":"height",yt=["top","left"].includes(getSide(rt)),Et=nt.reference[ct]-nt.floating[xt]+(yt&&((bt=ot.offset)==null?void 0:bt[ct])||0)+(yt?0:vt.crossAxis),St=nt.reference[ct]+nt.reference[xt]+(yt?0:((_t=ot.offset)==null?void 0:_t[ct])||0)-(yt?vt.crossAxis:0);ptSt&&(pt=St)}return{[dt]:ft,[ct]:pt}}}},size=function(j){return j===void 0&&(j={}),{name:"size",options:j,async fn(_e){const{placement:et,rects:tt,platform:rt,elements:nt}=_e,{apply:ot=()=>{},...it}=evaluate(j,_e),st=await detectOverflow(_e,it),lt=getSide(et),ut=getAlignment(et),ct=getSideAxis(et)==="y",{width:dt,height:ft}=tt.floating;let pt,gt;lt==="top"||lt==="bottom"?(pt=lt,gt=ut===(await(rt.isRTL==null?void 0:rt.isRTL(nt.floating))?"start":"end")?"left":"right"):(gt=lt,pt=ut==="end"?"top":"bottom");const vt=ft-st[pt],bt=dt-st[gt],_t=!_e.middlewareData.shift;let xt=vt,yt=bt;if(ct){const St=dt-st.left-st.right;yt=ut||_t?min$a(bt,St):St}else{const St=ft-st.top-st.bottom;xt=ut||_t?min$a(vt,St):St}if(_t&&!ut){const St=max$9(st.left,0),$t=max$9(st.right,0),At=max$9(st.top,0),wt=max$9(st.bottom,0);ct?yt=dt-2*(St!==0||$t!==0?St+$t:max$9(st.left,st.right)):xt=ft-2*(At!==0||wt!==0?At+wt:max$9(st.top,st.bottom))}await ot({..._e,availableWidth:yt,availableHeight:xt});const Et=await rt.getDimensions(nt.floating);return dt!==Et.width||ft!==Et.height?{reset:{rects:!0}}:{}}}};function getNodeName(j){return isNode(j)?(j.nodeName||"").toLowerCase():"#document"}function getWindow$1(j){var _e;return(j==null||(_e=j.ownerDocument)==null?void 0:_e.defaultView)||window}function getDocumentElement(j){var _e;return(_e=(isNode(j)?j.ownerDocument:j.document)||window.document)==null?void 0:_e.documentElement}function isNode(j){return j instanceof Node||j instanceof getWindow$1(j).Node}function isElement$1(j){return j instanceof Element||j instanceof getWindow$1(j).Element}function isHTMLElement$2(j){return j instanceof HTMLElement||j instanceof getWindow$1(j).HTMLElement}function isShadowRoot(j){return typeof ShadowRoot>"u"?!1:j instanceof ShadowRoot||j instanceof getWindow$1(j).ShadowRoot}function isOverflowElement(j){const{overflow:_e,overflowX:et,overflowY:tt,display:rt}=getComputedStyle$1(j);return/auto|scroll|overlay|hidden|clip/.test(_e+tt+et)&&!["inline","contents"].includes(rt)}function isTableElement(j){return["table","td","th"].includes(getNodeName(j))}function isContainingBlock(j){const _e=isWebKit(),et=getComputedStyle$1(j);return et.transform!=="none"||et.perspective!=="none"||(et.containerType?et.containerType!=="normal":!1)||!_e&&(et.backdropFilter?et.backdropFilter!=="none":!1)||!_e&&(et.filter?et.filter!=="none":!1)||["transform","perspective","filter"].some(tt=>(et.willChange||"").includes(tt))||["paint","layout","strict","content"].some(tt=>(et.contain||"").includes(tt))}function getContainingBlock(j){let _e=getParentNode$1(j);for(;isHTMLElement$2(_e)&&!isLastTraversableNode(_e);){if(isContainingBlock(_e))return _e;_e=getParentNode$1(_e)}return null}function isWebKit(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function isLastTraversableNode(j){return["html","body","#document"].includes(getNodeName(j))}function getComputedStyle$1(j){return getWindow$1(j).getComputedStyle(j)}function getNodeScroll(j){return isElement$1(j)?{scrollLeft:j.scrollLeft,scrollTop:j.scrollTop}:{scrollLeft:j.pageXOffset,scrollTop:j.pageYOffset}}function getParentNode$1(j){if(getNodeName(j)==="html")return j;const _e=j.assignedSlot||j.parentNode||isShadowRoot(j)&&j.host||getDocumentElement(j);return isShadowRoot(_e)?_e.host:_e}function getNearestOverflowAncestor(j){const _e=getParentNode$1(j);return isLastTraversableNode(_e)?j.ownerDocument?j.ownerDocument.body:j.body:isHTMLElement$2(_e)&&isOverflowElement(_e)?_e:getNearestOverflowAncestor(_e)}function getOverflowAncestors(j,_e,et){var tt;_e===void 0&&(_e=[]),et===void 0&&(et=!0);const rt=getNearestOverflowAncestor(j),nt=rt===((tt=j.ownerDocument)==null?void 0:tt.body),ot=getWindow$1(rt);return nt?_e.concat(ot,ot.visualViewport||[],isOverflowElement(rt)?rt:[],ot.frameElement&&et?getOverflowAncestors(ot.frameElement):[]):_e.concat(rt,getOverflowAncestors(rt,[],et))}function getCssDimensions(j){const _e=getComputedStyle$1(j);let et=parseFloat(_e.width)||0,tt=parseFloat(_e.height)||0;const rt=isHTMLElement$2(j),nt=rt?j.offsetWidth:et,ot=rt?j.offsetHeight:tt,it=round$2(et)!==nt||round$2(tt)!==ot;return it&&(et=nt,tt=ot),{width:et,height:tt,$:it}}function unwrapElement(j){return isElement$1(j)?j:j.contextElement}function getScale(j){const _e=unwrapElement(j);if(!isHTMLElement$2(_e))return createCoords(1);const et=_e.getBoundingClientRect(),{width:tt,height:rt,$:nt}=getCssDimensions(_e);let ot=(nt?round$2(et.width):et.width)/tt,it=(nt?round$2(et.height):et.height)/rt;return(!ot||!Number.isFinite(ot))&&(ot=1),(!it||!Number.isFinite(it))&&(it=1),{x:ot,y:it}}const noOffsets=createCoords(0);function getVisualOffsets(j){const _e=getWindow$1(j);return!isWebKit()||!_e.visualViewport?noOffsets:{x:_e.visualViewport.offsetLeft,y:_e.visualViewport.offsetTop}}function shouldAddVisualOffsets(j,_e,et){return _e===void 0&&(_e=!1),!et||_e&&et!==getWindow$1(j)?!1:_e}function getBoundingClientRect(j,_e,et,tt){_e===void 0&&(_e=!1),et===void 0&&(et=!1);const rt=j.getBoundingClientRect(),nt=unwrapElement(j);let ot=createCoords(1);_e&&(tt?isElement$1(tt)&&(ot=getScale(tt)):ot=getScale(j));const it=shouldAddVisualOffsets(nt,et,tt)?getVisualOffsets(nt):createCoords(0);let st=(rt.left+it.x)/ot.x,lt=(rt.top+it.y)/ot.y,ut=rt.width/ot.x,ct=rt.height/ot.y;if(nt){const dt=getWindow$1(nt),ft=tt&&isElement$1(tt)?getWindow$1(tt):tt;let pt=dt.frameElement;for(;pt&&tt&&ft!==dt;){const gt=getScale(pt),vt=pt.getBoundingClientRect(),bt=getComputedStyle$1(pt),_t=vt.left+(pt.clientLeft+parseFloat(bt.paddingLeft))*gt.x,xt=vt.top+(pt.clientTop+parseFloat(bt.paddingTop))*gt.y;st*=gt.x,lt*=gt.y,ut*=gt.x,ct*=gt.y,st+=_t,lt+=xt,pt=getWindow$1(pt).frameElement}}return rectToClientRect({width:ut,height:ct,x:st,y:lt})}function convertOffsetParentRelativeRectToViewportRelativeRect(j){let{rect:_e,offsetParent:et,strategy:tt}=j;const rt=isHTMLElement$2(et),nt=getDocumentElement(et);if(et===nt)return _e;let ot={scrollLeft:0,scrollTop:0},it=createCoords(1);const st=createCoords(0);if((rt||!rt&&tt!=="fixed")&&((getNodeName(et)!=="body"||isOverflowElement(nt))&&(ot=getNodeScroll(et)),isHTMLElement$2(et))){const lt=getBoundingClientRect(et);it=getScale(et),st.x=lt.x+et.clientLeft,st.y=lt.y+et.clientTop}return{width:_e.width*it.x,height:_e.height*it.y,x:_e.x*it.x-ot.scrollLeft*it.x+st.x,y:_e.y*it.y-ot.scrollTop*it.y+st.y}}function getClientRects(j){return Array.from(j.getClientRects())}function getWindowScrollBarX(j){return getBoundingClientRect(getDocumentElement(j)).left+getNodeScroll(j).scrollLeft}function getDocumentRect(j){const _e=getDocumentElement(j),et=getNodeScroll(j),tt=j.ownerDocument.body,rt=max$9(_e.scrollWidth,_e.clientWidth,tt.scrollWidth,tt.clientWidth),nt=max$9(_e.scrollHeight,_e.clientHeight,tt.scrollHeight,tt.clientHeight);let ot=-et.scrollLeft+getWindowScrollBarX(j);const it=-et.scrollTop;return getComputedStyle$1(tt).direction==="rtl"&&(ot+=max$9(_e.clientWidth,tt.clientWidth)-rt),{width:rt,height:nt,x:ot,y:it}}function getViewportRect(j,_e){const et=getWindow$1(j),tt=getDocumentElement(j),rt=et.visualViewport;let nt=tt.clientWidth,ot=tt.clientHeight,it=0,st=0;if(rt){nt=rt.width,ot=rt.height;const lt=isWebKit();(!lt||lt&&_e==="fixed")&&(it=rt.offsetLeft,st=rt.offsetTop)}return{width:nt,height:ot,x:it,y:st}}function getInnerBoundingClientRect(j,_e){const et=getBoundingClientRect(j,!0,_e==="fixed"),tt=et.top+j.clientTop,rt=et.left+j.clientLeft,nt=isHTMLElement$2(j)?getScale(j):createCoords(1),ot=j.clientWidth*nt.x,it=j.clientHeight*nt.y,st=rt*nt.x,lt=tt*nt.y;return{width:ot,height:it,x:st,y:lt}}function getClientRectFromClippingAncestor(j,_e,et){let tt;if(_e==="viewport")tt=getViewportRect(j,et);else if(_e==="document")tt=getDocumentRect(getDocumentElement(j));else if(isElement$1(_e))tt=getInnerBoundingClientRect(_e,et);else{const rt=getVisualOffsets(j);tt={..._e,x:_e.x-rt.x,y:_e.y-rt.y}}return rectToClientRect(tt)}function hasFixedPositionAncestor(j,_e){const et=getParentNode$1(j);return et===_e||!isElement$1(et)||isLastTraversableNode(et)?!1:getComputedStyle$1(et).position==="fixed"||hasFixedPositionAncestor(et,_e)}function getClippingElementAncestors(j,_e){const et=_e.get(j);if(et)return et;let tt=getOverflowAncestors(j,[],!1).filter(it=>isElement$1(it)&&getNodeName(it)!=="body"),rt=null;const nt=getComputedStyle$1(j).position==="fixed";let ot=nt?getParentNode$1(j):j;for(;isElement$1(ot)&&!isLastTraversableNode(ot);){const it=getComputedStyle$1(ot),st=isContainingBlock(ot);!st&&it.position==="fixed"&&(rt=null),(nt?!st&&!rt:!st&&it.position==="static"&&!!rt&&["absolute","fixed"].includes(rt.position)||isOverflowElement(ot)&&!st&&hasFixedPositionAncestor(j,ot))?tt=tt.filter(ut=>ut!==ot):rt=it,ot=getParentNode$1(ot)}return _e.set(j,tt),tt}function getClippingRect(j){let{element:_e,boundary:et,rootBoundary:tt,strategy:rt}=j;const ot=[...et==="clippingAncestors"?getClippingElementAncestors(_e,this._c):[].concat(et),tt],it=ot[0],st=ot.reduce((lt,ut)=>{const ct=getClientRectFromClippingAncestor(_e,ut,rt);return lt.top=max$9(ct.top,lt.top),lt.right=min$a(ct.right,lt.right),lt.bottom=min$a(ct.bottom,lt.bottom),lt.left=max$9(ct.left,lt.left),lt},getClientRectFromClippingAncestor(_e,it,rt));return{width:st.right-st.left,height:st.bottom-st.top,x:st.left,y:st.top}}function getDimensions(j){return getCssDimensions(j)}function getRectRelativeToOffsetParent(j,_e,et){const tt=isHTMLElement$2(_e),rt=getDocumentElement(_e),nt=et==="fixed",ot=getBoundingClientRect(j,!0,nt,_e);let it={scrollLeft:0,scrollTop:0};const st=createCoords(0);if(tt||!tt&&!nt)if((getNodeName(_e)!=="body"||isOverflowElement(rt))&&(it=getNodeScroll(_e)),tt){const lt=getBoundingClientRect(_e,!0,nt,_e);st.x=lt.x+_e.clientLeft,st.y=lt.y+_e.clientTop}else rt&&(st.x=getWindowScrollBarX(rt));return{x:ot.left+it.scrollLeft-st.x,y:ot.top+it.scrollTop-st.y,width:ot.width,height:ot.height}}function getTrueOffsetParent(j,_e){return!isHTMLElement$2(j)||getComputedStyle$1(j).position==="fixed"?null:_e?_e(j):j.offsetParent}function getOffsetParent(j,_e){const et=getWindow$1(j);if(!isHTMLElement$2(j))return et;let tt=getTrueOffsetParent(j,_e);for(;tt&&isTableElement(tt)&&getComputedStyle$1(tt).position==="static";)tt=getTrueOffsetParent(tt,_e);return tt&&(getNodeName(tt)==="html"||getNodeName(tt)==="body"&&getComputedStyle$1(tt).position==="static"&&!isContainingBlock(tt))?et:tt||getContainingBlock(j)||et}const getElementRects=async function(j){let{reference:_e,floating:et,strategy:tt}=j;const rt=this.getOffsetParent||getOffsetParent,nt=this.getDimensions;return{reference:getRectRelativeToOffsetParent(_e,await rt(et),tt),floating:{x:0,y:0,...await nt(et)}}};function isRTL(j){return getComputedStyle$1(j).direction==="rtl"}const platform={convertOffsetParentRelativeRectToViewportRelativeRect,getDocumentElement,getClippingRect,getOffsetParent,getElementRects,getClientRects,getDimensions,getScale,isElement:isElement$1,isRTL},computePosition=(j,_e,et)=>{const tt=new Map,rt={platform,...et},nt={...rt.platform,_c:tt};return computePosition$1(j,_e,{...rt,platform:nt})};function parseFloatingUIPlacement(j){const _e=j.split("-");return{side:_e[0],alignment:_e[1]}}const getParentNode=j=>j.nodeName==="HTML"?j:j.parentNode||j.host,getStyleComputedProperty=j=>{var _e;return j.nodeType!==1?{}:((_e=j.ownerDocument)===null||_e===void 0?void 0:_e.defaultView).getComputedStyle(j,null)},getScrollParent=j=>{const _e=j&&getParentNode(j);if(!_e)return document.body;switch(_e.nodeName){case"HTML":case"BODY":return _e.ownerDocument.body;case"#document":return _e.body}const{overflow:et,overflowX:tt,overflowY:rt}=getStyleComputedProperty(_e);return/(auto|scroll|overlay)/.test(et+rt+tt)?_e:getScrollParent(_e)},hasScrollParent=j=>{var _e;const et=getScrollParent(j);return et?et!==((_e=et.ownerDocument)===null||_e===void 0?void 0:_e.body):!1};function getBoundary(j,_e){if(_e==="window")return j==null?void 0:j.ownerDocument.documentElement;if(_e==="clippingParents")return"clippingAncestors";if(_e==="scrollParent"){let et=getScrollParent(j);return et.nodeName==="BODY"&&(et=j==null?void 0:j.ownerDocument.documentElement),et}return _e}function mergeArrowOffset(j,_e){return typeof j=="number"||typeof j=="object"&&j!==null?addArrowOffset(j,_e):typeof j=="function"?et=>{const tt=j(et);return addArrowOffset(tt,_e)}:{mainAxis:_e}}const addArrowOffset=(j,_e)=>{if(typeof j=="number")return{mainAxis:j+_e};var et;return{...j,mainAxis:((et=j.mainAxis)!==null&&et!==void 0?et:0)+_e}};function toFloatingUIPadding(j,_e){if(typeof j=="number")return j;const{start:et,end:tt,...rt}=j,nt=rt,ot=_e?"end":"start",it=_e?"start":"end";return j[ot]&&(nt.left=j[ot]),j[it]&&(nt.right=j[it]),nt}const getPositionMap$1=j=>({above:"top",below:"bottom",before:j?"right":"left",after:j?"left":"right"}),getAlignmentMap$1=()=>({start:"start",end:"end",top:"start",bottom:"end",center:void 0}),shouldAlignToCenter=(j,_e)=>{const et=j==="above"||j==="below",tt=_e==="top"||_e==="bottom";return et&&tt||!et&&!tt},toFloatingUIPlacement=(j,_e,et)=>{const tt=shouldAlignToCenter(_e,j)?"center":j,rt=_e&&getPositionMap$1(et)[_e],nt=tt&&getAlignmentMap$1()[tt];return rt&&nt?`${rt}-${nt}`:rt},getPositionMap=()=>({top:"above",bottom:"below",right:"after",left:"before"}),getAlignmentMap=j=>j==="above"||j==="below"?{start:"start",end:"end"}:{start:"top",end:"bottom"},fromFloatingUIPlacement=j=>{const{side:_e,alignment:et}=parseFloatingUIPlacement(j),tt=getPositionMap()[_e],rt=et&&getAlignmentMap(tt)[et];return{position:tt,alignment:rt}},shorthandLookup={above:{position:"above",align:"center"},"above-start":{position:"above",align:"start"},"above-end":{position:"above",align:"end"},below:{position:"below",align:"center"},"below-start":{position:"below",align:"start"},"below-end":{position:"below",align:"end"},before:{position:"before",align:"center"},"before-top":{position:"before",align:"top"},"before-bottom":{position:"before",align:"bottom"},after:{position:"after",align:"center"},"after-top":{position:"after",align:"top"},"after-bottom":{position:"after",align:"bottom"}};function resolvePositioningShorthand(j){return j==null?{}:typeof j=="string"?shorthandLookup[j]:j}function useCallbackRef(j,_e,et){const tt=reactExports.useRef(!0),[rt]=reactExports.useState(()=>({value:j,callback:_e,facade:{get current(){return rt.value},set current(nt){const ot=rt.value;if(ot!==nt){if(rt.value=nt,et&&tt.current)return;rt.callback(nt,ot)}}}}));return useIsomorphicLayoutEffect$1(()=>{tt.current=!1},[]),rt.callback=_e,rt.facade}function debounce$3(j){let _e;return()=>(_e||(_e=new Promise(et=>{Promise.resolve().then(()=>{_e=void 0,et(j())})})),_e)}function writeArrowUpdates(j){const{arrow:_e,middlewareData:et}=j;if(!et.arrow||!_e)return;const{x:tt,y:rt}=et.arrow;Object.assign(_e.style,{left:`${tt}px`,top:`${rt}px`})}function writeContainerUpdates(j){var _e,et,tt;const{container:rt,placement:nt,middlewareData:ot,strategy:it,lowPPI:st,coordinates:lt,useTransform:ut=!0}=j;if(!rt)return;rt.setAttribute(DATA_POSITIONING_PLACEMENT,nt),rt.removeAttribute(DATA_POSITIONING_INTERSECTING),ot.intersectionObserver.intersecting&&rt.setAttribute(DATA_POSITIONING_INTERSECTING,""),rt.removeAttribute(DATA_POSITIONING_ESCAPED),!((_e=ot.hide)===null||_e===void 0)&&_e.escaped&&rt.setAttribute(DATA_POSITIONING_ESCAPED,""),rt.removeAttribute(DATA_POSITIONING_HIDDEN),!((et=ot.hide)===null||et===void 0)&&et.referenceHidden&&rt.setAttribute(DATA_POSITIONING_HIDDEN,"");const ct=((tt=rt.ownerDocument.defaultView)===null||tt===void 0?void 0:tt.devicePixelRatio)||1,dt=Math.round(lt.x*ct)/ct,ft=Math.round(lt.y*ct)/ct;if(Object.assign(rt.style,{position:it}),ut){Object.assign(rt.style,{transform:st?`translate(${dt}px, ${ft}px)`:`translate3d(${dt}px, ${ft}px, 0)`});return}Object.assign(rt.style,{left:`${dt}px`,top:`${ft}px`})}const normalizeAutoSize=j=>{switch(j){case"always":case!0:return{applyMaxWidth:!0,applyMaxHeight:!0};case"width-always":case"width":return{applyMaxWidth:!0,applyMaxHeight:!1};case"height-always":case"height":return{applyMaxWidth:!1,applyMaxHeight:!0};default:return!1}};function coverTarget(){return{name:"coverTarget",fn:j=>{const{placement:_e,rects:et,x:tt,y:rt}=j,nt=parseFloatingUIPlacement(_e).side,ot={x:tt,y:rt};switch(nt){case"bottom":ot.y-=et.reference.height;break;case"top":ot.y+=et.reference.height;break;case"left":ot.x+=et.reference.width;break;case"right":ot.x-=et.reference.width;break}return ot}}}function flip(j){const{hasScrollableElement:_e,flipBoundary:et,container:tt,fallbackPositions:rt=[],isRtl:nt}=j,ot=rt.reduce((it,st)=>{const{position:lt,align:ut}=resolvePositioningShorthand(st),ct=toFloatingUIPlacement(ut,lt,nt);return ct&&it.push(ct),it},[]);return flip$1({..._e&&{boundary:"clippingAncestors"},...et&&{altBoundary:!0,boundary:getBoundary(tt,et)},fallbackStrategy:"bestFit",...ot.length&&{fallbackPlacements:ot}})}function intersecting(){return{name:"intersectionObserver",fn:async j=>{const _e=j.rects.floating,et=await detectOverflow(j,{altBoundary:!0}),tt=et.top<_e.height&&et.top>0,rt=et.bottom<_e.height&&et.bottom>0;return{data:{intersecting:tt||rt}}}}}const resetMaxSize=j=>({name:"resetMaxSize",fn({middlewareData:_e,elements:et}){var tt;if(!((tt=_e.resetMaxSize)===null||tt===void 0)&&tt.maxSizeAlreadyReset)return{};const{applyMaxWidth:rt,applyMaxHeight:nt}=j;return rt&&(et.floating.style.removeProperty("box-sizing"),et.floating.style.removeProperty("max-width"),et.floating.style.removeProperty("width")),nt&&(et.floating.style.removeProperty("box-sizing"),et.floating.style.removeProperty("max-height"),et.floating.style.removeProperty("height")),{data:{maxSizeAlreadyReset:!0},reset:{rects:!0}}}});function maxSize(j,_e){const{container:et,overflowBoundary:tt}=_e;return size({...tt&&{altBoundary:!0,boundary:getBoundary(et,tt)},apply({availableHeight:rt,availableWidth:nt,elements:ot,rects:it}){const st=(ct,dt,ft)=>{if(ct&&(ot.floating.style.setProperty("box-sizing","border-box"),ot.floating.style.setProperty(`max-${dt}`,`${ft}px`),it.floating[dt]>ft)){ot.floating.style.setProperty(dt,`${ft}px`);const pt=dt==="width"?"x":"y";ot.floating.style.getPropertyValue(`overflow-${pt}`)||ot.floating.style.setProperty(`overflow-${pt}`,"auto")}},{applyMaxWidth:lt,applyMaxHeight:ut}=j;st(lt,"width",nt),st(ut,"height",rt)}})}function getFloatingUIOffset(j){return!j||typeof j=="number"||typeof j=="object"?j:({rects:{floating:_e,reference:et},placement:tt})=>{const{position:rt,alignment:nt}=fromFloatingUIPlacement(tt);return j({positionedRect:_e,targetRect:et,position:rt,alignment:nt})}}function offset(j){const _e=getFloatingUIOffset(j);return offset$1(_e)}function shift(j){const{hasScrollableElement:_e,disableTether:et,overflowBoundary:tt,container:rt,overflowBoundaryPadding:nt,isRtl:ot}=j;return shift$1({..._e&&{boundary:"clippingAncestors"},...et&&{crossAxis:et==="all",limiter:limitShift({crossAxis:et!=="all",mainAxis:!1})},...nt&&{padding:toFloatingUIPadding(nt,ot)},...tt&&{altBoundary:!0,boundary:getBoundary(rt,tt)}})}const matchTargetSizeCssVar="--fui-match-target-size";function matchTargetSize(){return{name:"matchTargetSize",fn:async j=>{const{rects:{reference:_e,floating:et},elements:{floating:tt},middlewareData:{matchTargetSize:{matchTargetSizeAttempt:rt=!1}={}}}=j;if(_e.width===et.width||rt)return{};const{width:nt}=_e;return tt.style.setProperty(matchTargetSizeCssVar,`${nt}px`),tt.style.width||(tt.style.width=`var(${matchTargetSizeCssVar})`),{data:{matchTargetSizeAttempt:!0},reset:{rects:!0}}}}}function listScrollParents(j){const _e=[];let et=j;for(;et;){const tt=getScrollParent(et);if(j.ownerDocument.body===tt){_e.push(tt);break}_e.push(tt),et=tt}return _e}function createPositionManager(j){const{container:_e,target:et,arrow:tt,strategy:rt,middleware:nt,placement:ot,useTransform:it=!0}=j;let st=!1;if(!et||!_e)return{updatePosition:()=>{},dispose:()=>{}};let lt=!0;const ut=new Set,ct=_e.ownerDocument.defaultView;Object.assign(_e.style,{position:"fixed",left:0,top:0,margin:0});const dt=()=>{st||(lt&&(listScrollParents(_e).forEach(gt=>ut.add(gt)),isHTMLElement$4(et)&&listScrollParents(et).forEach(gt=>ut.add(gt)),ut.forEach(gt=>{gt.addEventListener("scroll",ft,{passive:!0})}),lt=!1),Object.assign(_e.style,{position:rt}),computePosition(et,_e,{placement:ot,middleware:nt,strategy:rt}).then(({x:gt,y:vt,middlewareData:bt,placement:_t})=>{st||(writeArrowUpdates({arrow:tt,middlewareData:bt}),writeContainerUpdates({container:_e,middlewareData:bt,placement:_t,coordinates:{x:gt,y:vt},lowPPI:((ct==null?void 0:ct.devicePixelRatio)||1)<=1,strategy:rt,useTransform:it}))}).catch(gt=>{}))},ft=debounce$3(()=>dt()),pt=()=>{st=!0,ct&&(ct.removeEventListener("scroll",ft),ct.removeEventListener("resize",ft)),ut.forEach(gt=>{gt.removeEventListener("scroll",ft)}),ut.clear()};return ct&&(ct.addEventListener("scroll",ft,{passive:!0}),ct.addEventListener("resize",ft)),ft(),{updatePosition:ft,dispose:pt}}function usePositioning(j){const _e=reactExports.useRef(null),et=reactExports.useRef(null),tt=reactExports.useRef(null),rt=reactExports.useRef(null),nt=reactExports.useRef(null),{enabled:ot=!0}=j,it=usePositioningOptions(j),st=reactExports.useCallback(()=>{_e.current&&_e.current.dispose(),_e.current=null;var ft;const pt=(ft=tt.current)!==null&&ft!==void 0?ft:et.current;ot&&canUseDOM$3()&&pt&&rt.current&&(_e.current=createPositionManager({container:rt.current,target:pt,arrow:nt.current,...it(rt.current,nt.current)}))},[ot,it]),lt=useEventCallback$3(ft=>{tt.current=ft,st()});reactExports.useImperativeHandle(j.positioningRef,()=>({updatePosition:()=>{var ft;return(ft=_e.current)===null||ft===void 0?void 0:ft.updatePosition()},setTarget:ft=>{j.target,lt(ft)}}),[j.target,lt]),useIsomorphicLayoutEffect$1(()=>{var ft;lt((ft=j.target)!==null&&ft!==void 0?ft:null)},[j.target,lt]),useIsomorphicLayoutEffect$1(()=>{st()},[st]);const ut=useCallbackRef(null,ft=>{et.current!==ft&&(et.current=ft,st())}),ct=useCallbackRef(null,ft=>{rt.current!==ft&&(rt.current=ft,st())}),dt=useCallbackRef(null,ft=>{nt.current!==ft&&(nt.current=ft,st())});return{targetRef:ut,containerRef:ct,arrowRef:dt}}function usePositioningOptions(j){const{align:_e,arrowPadding:et,autoSize:tt,coverTarget:rt,flipBoundary:nt,offset:ot,overflowBoundary:it,pinned:st,position:lt,unstable_disableTether:ut,positionFixed:ct,strategy:dt,overflowBoundaryPadding:ft,fallbackPositions:pt,useTransform:gt,matchTargetSize:vt}=j,{dir:bt,targetDocument:_t}=useFluent(),xt=bt==="rtl",yt=dt??ct?"fixed":"absolute",Et=normalizeAutoSize(tt);return reactExports.useCallback((St,$t)=>{const At=hasScrollParent(St),wt=[Et&&resetMaxSize(Et),vt&&matchTargetSize(),ot&&offset(ot),rt&&coverTarget(),!st&&flip({container:St,flipBoundary:nt,hasScrollableElement:At,isRtl:xt,fallbackPositions:pt}),shift({container:St,hasScrollableElement:At,overflowBoundary:it,disableTether:ut,overflowBoundaryPadding:ft,isRtl:xt}),Et&&maxSize(Et,{container:St,overflowBoundary:it}),intersecting(),$t&&arrow$1({element:$t,padding:et}),hide({strategy:"referenceHidden"}),hide({strategy:"escaped"}),!1].filter(Boolean);return{placement:toFloatingUIPlacement(_e,lt,xt),middleware:wt,strategy:yt,useTransform:gt}},[_e,et,Et,rt,ut,nt,xt,ot,it,st,lt,yt,ft,pt,gt,vt,_t])}const usePositioningMouseTarget=j=>{const[_e,et]=reactExports.useState(j);return[_e,rt=>{if(rt==null){et(void 0);return}let nt;rt instanceof MouseEvent?nt=rt:nt=rt.nativeEvent,nt instanceof MouseEvent;const ot=createVirtualElementFromClick(nt);et(ot)}]},PopoverContext=createContext(void 0),popoverContextDefaultValue={open:!1,setOpen:()=>null,toggleOpen:()=>null,triggerRef:{current:null},contentRef:{current:null},arrowRef:{current:null},openOnContext:!1,openOnHover:!1,size:"medium",trapFocus:!1,inline:!1};PopoverContext.Provider;const usePopoverContext_unstable=j=>useContextSelector(PopoverContext,(_e=popoverContextDefaultValue)=>j(_e)),usePopoverSurface_unstable=(j,_e)=>{const et=usePopoverContext_unstable(_t=>_t.contentRef),tt=usePopoverContext_unstable(_t=>_t.openOnHover),rt=usePopoverContext_unstable(_t=>_t.setOpen),nt=usePopoverContext_unstable(_t=>_t.mountNode),ot=usePopoverContext_unstable(_t=>_t.arrowRef),it=usePopoverContext_unstable(_t=>_t.size),st=usePopoverContext_unstable(_t=>_t.withArrow),lt=usePopoverContext_unstable(_t=>_t.appearance),ut=usePopoverContext_unstable(_t=>_t.trapFocus),ct=usePopoverContext_unstable(_t=>_t.inertTrapFocus),dt=usePopoverContext_unstable(_t=>_t.inline),{modalAttributes:ft}=useModalAttributes({trapFocus:ut,legacyTrapFocus:!ct,alwaysFocusable:!ut}),pt={inline:dt,appearance:lt,withArrow:st,size:it,arrowRef:ot,mountNode:nt,components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,et),role:ut?"dialog":"group","aria-modal":ut?!0:void 0,...ft,...j}),{elementType:"div"})},{onMouseEnter:gt,onMouseLeave:vt,onKeyDown:bt}=pt.root;return pt.root.onMouseEnter=_t=>{tt&&rt(_t,!0),gt==null||gt(_t)},pt.root.onMouseLeave=_t=>{tt&&rt(_t,!1),vt==null||vt(_t)},pt.root.onKeyDown=_t=>{var xt;_t.key==="Escape"&&(!((xt=et.current)===null||xt===void 0)&&xt.contains(_t.target))&&(_t.preventDefault(),rt(_t,!1)),bt==null||bt(_t)},pt};function toMountNodeProps(j){return isHTMLElement$4(j)?{element:j}:typeof j=="object"?j===null?{element:null}:j:{}}var getCurrentOwner=()=>reactExports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner.current,useIsStrictMode=()=>!1,effectSet=new WeakSet;function useStrictEffect(j,_e){const et=getCurrentOwner();reactExports.useEffect(()=>{if(!effectSet.has(et)){effectSet.add(et),j();return}return j()},_e)}var memoSet=new WeakSet;function useStrictMemo(j,_e){return reactExports.useMemo(()=>{const et=getCurrentOwner();return memoSet.has(et)?j():(memoSet.add(et),null)},_e)}function useDisposable(j,_e){var et;const tt=useIsStrictMode()&&!1,rt=tt?useStrictMemo:reactExports.useMemo,nt=tt?useStrictEffect:reactExports.useEffect,[ot,it]=(et=rt(()=>j(),_e))!=null?et:[null,()=>null];return nt(()=>it,_e),ot}const usePortalMountNodeStylesStyles=__styles({root:{qhf8xq:"f1euv43f",Bhzewxz:"f15twtuk",oyh7mz:["f1vgc2s3","f1e31b4d"],j35jbq:["f1e31b4d","f1vgc2s3"],Bj3rh1h:"f494woh"}},{d:[".f1euv43f{position:absolute;}",".f15twtuk{top:0;}",".f1vgc2s3{left:0;}",".f1e31b4d{right:0;}",".f494woh{z-index:1000000;}"]}),useInsertionEffect=React$1.useInsertionEffect,usePortalMountNode=j=>{const{targetDocument:_e,dir:et}=useFluent(),tt=usePortalMountNode$1(),rt=useFocusVisible(),nt=usePortalMountNodeStylesStyles(),ot=useThemeClassName(),it=mergeClasses(ot,nt.root,j.className),st=tt??(_e==null?void 0:_e.body),lt=useDisposable(()=>{if(st===void 0||j.disabled)return[null,()=>null];const ut=st.ownerDocument.createElement("div");return st.appendChild(ut),[ut,()=>ut.remove()]},[st]);return useInsertionEffect?useInsertionEffect(()=>{if(!lt)return;const ut=it.split(" ").filter(Boolean);return lt.classList.add(...ut),lt.setAttribute("dir",et),rt.current=lt,()=>{lt.classList.remove(...ut),lt.removeAttribute("dir")}},[it,et,lt,rt]):reactExports.useMemo(()=>{lt&&(lt.className=it,lt.setAttribute("dir",et),rt.current=lt)},[it,et,lt,rt]),lt},usePortal_unstable=j=>{const{element:_e,className:et}=toMountNodeProps(j.mountNode),tt=reactExports.useRef(null),rt=usePortalMountNode({disabled:!!_e,className:et}),nt=_e??rt,ot={children:j.children,mountNode:nt,virtualParentRootRef:tt};return reactExports.useEffect(()=>{if(!nt)return;const it=tt.current,st=nt.contains(it);if(it&&!st)return setVirtualParent$1(nt,it),()=>{setVirtualParent$1(nt,void 0)}},[tt,nt]),ot},renderPortal_unstable=j=>reactExports.createElement("span",{hidden:!0,ref:j.virtualParentRootRef},j.mountNode&&reactDomExports.createPortal(j.children,j.mountNode)),Portal$1=j=>{const _e=usePortal_unstable(j);return renderPortal_unstable(_e)};Portal$1.displayName="Portal";const renderPopoverSurface_unstable=j=>{const _e=jsxs(j.root,{children:[j.withArrow&&jsx$1("div",{ref:j.arrowRef,className:j.arrowClassName}),j.root.children]});return j.inline?_e:jsx$1(Portal$1,{mountNode:j.mountNode,children:_e})},popoverSurfaceClassNames={root:"fui-PopoverSurface"},arrowHeights={small:6,medium:8,large:8},useStyles$v=__styles({root:{sj55zd:"f19n0e5",De3pzq:"fxugw4r",E5pizo:"f1hg901r",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B4j52fo:"f5ogflp",Bekrc4i:["f1hqa2wf","finvdd3"],Bn0qgzm:"f1f09k3d",ibv6hh:["finvdd3","f1hqa2wf"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"],Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B93otf3:"f18k4bn6",vin17d:"fo1kyvf",Ezkn3b:"fetxo7e",nyiy2g:"f8x1vz1",swvrvq:"f8g0anz",Bkovbt3:"fezwn9i",hgjdhn:"fz5efge",fsy9dk:"f1ydixl4",B3ogreh:"f8dgqj5",jv49x5:"fnyfnr8",Bk7o48c:"fgw77r4",Bv12yb3:"ftje0s4",z0t1cu:"fi19xcv",Bks05zx:"f1mzajhk",Bvtglag:"fjp4h9y"},inline:{Bj3rh1h:"f19g0ac"},inverted:{De3pzq:"fg3r6xk",sj55zd:"fonrgv7"},brand:{De3pzq:"ffp7eso",sj55zd:"f1phragk"},smallPadding:{z8tnut:"f1kcqot9",z189sj:["f11qrl6u","fjlbh76"],Byoj8tv:"fpe6lb7",uwmqm3:["fjlbh76","f11qrl6u"]},mediumPadding:{z8tnut:"fqag9an",z189sj:["f1gbmcue","f1rh9g5y"],Byoj8tv:"fp67ikv",uwmqm3:["f1rh9g5y","f1gbmcue"]},largePadding:{z8tnut:"fc7z3ec",z189sj:["fat0sn4","fekwl8i"],Byoj8tv:"fe2my4m",uwmqm3:["fekwl8i","fat0sn4"]},smallArrow:{a9b677:"f1ekdpwm",Bqenvij:"f83vc9z"},mediumLargeArrow:{a9b677:"f1kmc0fn",Bqenvij:"fb6lvc5"},arrow:{qhf8xq:"f1euv43f",De3pzq:"f1u2r49w",Bcdw1i0:"fd7fpy0",Bj3rh1h:"f1bsuimh",Ftih45:"f1wl9k8s",B1puzpu:"f1wkw4r9",Brfgrao:"f1j7ml58",Bcvre1j:"fyl8oag",Ccq8qp:"frdoeuz",Baz25je:"fb81m9q",cmx5o7:"f1ljr5q2",B4f6apu:"fyfemzf",m598lv:"focyt6c",Bk5zm6e:"fnhxbxj",y0oebl:"fdw6hkg",qa3bma:"f11yjt3y",Bqjgrrk:"f1172wan",Budzafs:["f9e5op9","f112wvtl"],Hv9wc6:["f1500xdc","f1it0ps5"],hl6cv3:"f1773hnp",c8svkw:"fw7o64x",yayu3t:"f1v7783n",nr3p0k:"f1f0d6v",rhl9o9:"fh2hsk5",wiz9v7:"f1gj3y7g",B6q6orb:"f11yvu4",ndpsmx:"f17lejdj"}},{d:[".f19n0e5{color:var(--colorNeutralForeground1);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1hg901r{box-shadow:var(--shadow16);}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f5ogflp{border-top-width:1px;}",".f1hqa2wf{border-right-width:1px;}",".finvdd3{border-left-width:1px;}",".f1f09k3d{border-bottom-width:1px;}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f18k4bn6{animation-composition:accumulate;}",".fo1kyvf{animation-duration:var(--durationSlower);}",".fetxo7e{animation-timing-function:var(--curveDecelerateMid);}",".f8x1vz1{--fui-positioning-slide-distance-x:0px;}",".f8g0anz{--fui-positioning-slide-distance-y:10px;}",".fezwn9i[data-popper-placement^=right]{--fui-positioning-slide-distance-x:-10px;}",".fz5efge[data-popper-placement^=right]{--fui-positioning-slide-distance-y:0px;}",".f1ydixl4[data-popper-placement^=bottom]{--fui-positioning-slide-distance-x:0px;}",".f8dgqj5[data-popper-placement^=bottom]{--fui-positioning-slide-distance-y:-10px;}",".fnyfnr8[data-popper-placement^=left]{--fui-positioning-slide-distance-x:10px;}",".fgw77r4[data-popper-placement^=left]{--fui-positioning-slide-distance-y:0px;}",".ftje0s4{animation-name:f5j8bii,f79suad;}",".f19g0ac{z-index:1;}",".fg3r6xk{background-color:var(--colorNeutralBackgroundStatic);}",".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".f1kcqot9{padding-top:12px;}",".f11qrl6u{padding-right:12px;}",".fjlbh76{padding-left:12px;}",".fpe6lb7{padding-bottom:12px;}",".fqag9an{padding-top:16px;}",".f1gbmcue{padding-right:16px;}",".f1rh9g5y{padding-left:16px;}",".fp67ikv{padding-bottom:16px;}",".fc7z3ec{padding-top:20px;}",".fat0sn4{padding-right:20px;}",".fekwl8i{padding-left:20px;}",".fe2my4m{padding-bottom:20px;}",".f1ekdpwm{width:8.484px;}",".f83vc9z{height:8.484px;}",".f1kmc0fn{width:11.312px;}",".fb6lvc5{height:11.312px;}",".f1euv43f{position:absolute;}",".f1u2r49w{background-color:inherit;}",".fd7fpy0{visibility:hidden;}",".f1bsuimh{z-index:-1;}",'.f1wl9k8s::before{content:"";}',".f1wkw4r9::before{visibility:visible;}",".f1j7ml58::before{position:absolute;}",".fyl8oag::before{box-sizing:border-box;}",".frdoeuz::before{width:inherit;}",".fb81m9q::before{height:inherit;}",".f1ljr5q2::before{background-color:inherit;}",".fyfemzf::before{border-right-width:1px;}",".focyt6c::before{border-right-style:solid;}",".fnhxbxj::before{border-right-color:var(--colorTransparentStroke);}",".fdw6hkg::before{border-bottom-width:1px;}",".f11yjt3y::before{border-bottom-style:solid;}",".f1172wan::before{border-bottom-color:var(--colorTransparentStroke);}",".f9e5op9::before{border-bottom-right-radius:var(--borderRadiusSmall);}",".f112wvtl::before{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1500xdc::before{transform:rotate(var(--fui-positioning-angle)) translate(0, 50%) rotate(45deg);}",".f1it0ps5::before{transform:rotate(var(--fui-positioning-angle)) translate(0, 50%) rotate(-45deg);}",'[data-popper-placement^="top"] .f1773hnp{bottom:-1px;}','[data-popper-placement^="top"] .fw7o64x{--fui-positioning-angle:0;}','[data-popper-placement^="right"] .f1v7783n{left:-1px;}','[data-popper-placement^="right"] .f1f0d6v{--fui-positioning-angle:90deg;}','[data-popper-placement^="bottom"] .fh2hsk5{top:-1px;}','[data-popper-placement^="bottom"] .f1gj3y7g{--fui-positioning-angle:180deg;}','[data-popper-placement^="left"] .f11yvu4{right:-1px;}','[data-popper-placement^="left"] .f17lejdj{--fui-positioning-angle:270deg;}'],k:["@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}","@keyframes f79suad{from{transform:translate(var(--fui-positioning-slide-distance-x), var(--fui-positioning-slide-distance-y));}}"],m:[["@media (prefers-reduced-motion){.fi19xcv[data-popper-placement]{animation-duration:1ms;}}",{m:"(prefers-reduced-motion)"}],["@media (prefers-reduced-motion){.f1mzajhk[data-popper-placement]{animation-name:f5j8bii;}}",{m:"(prefers-reduced-motion)"}]],t:["@supports not (animation-composition: accumulate){.fjp4h9y[data-popper-placement]{animation-name:f5j8bii;}}"]}),usePopoverSurfaceStyles_unstable=j=>{const _e=useStyles$v();return j.root.className=mergeClasses(popoverSurfaceClassNames.root,_e.root,j.inline&&_e.inline,j.size==="small"&&_e.smallPadding,j.size==="medium"&&_e.mediumPadding,j.size==="large"&&_e.largePadding,j.appearance==="inverted"&&_e.inverted,j.appearance==="brand"&&_e.brand,j.root.className),j.arrowClassName=mergeClasses(_e.arrow,j.size==="small"?_e.smallArrow:_e.mediumLargeArrow),j},PopoverSurface=reactExports.forwardRef((j,_e)=>{const et=usePopoverSurface_unstable(j,_e);return usePopoverSurfaceStyles_unstable(et),useCustomStyleHook("usePopoverSurfaceStyles_unstable")(et),renderPopoverSurface_unstable(et)});PopoverSurface.displayName="PopoverSurface";const popoverSurfaceBorderRadius=4,usePopover_unstable=j=>{const[_e,et]=usePositioningMouseTarget(),tt={size:"medium",contextTarget:_e,setContextTarget:et,...j},rt=reactExports.Children.toArray(j.children);let nt,ot;rt.length===2?(nt=rt[0],ot=rt[1]):rt.length===1&&(ot=rt[0]);const[it,st]=useOpenState(tt),lt=reactExports.useRef(0),ut=useEventCallback$3((xt,yt)=>{if(clearTimeout(lt.current),!(xt instanceof Event)&&xt.persist&&xt.persist(),xt.type==="mouseleave"){var Et;lt.current=setTimeout(()=>{st(xt,yt)},(Et=j.mouseLeaveDelay)!==null&&Et!==void 0?Et:500)}else st(xt,yt)});reactExports.useEffect(()=>()=>{clearTimeout(lt.current)},[]);const ct=reactExports.useCallback(xt=>{ut(xt,!it)},[ut,it]),dt=usePopoverRefs(tt),{targetDocument:ft}=useFluent();var pt;useOnClickOutside({contains:elementContains$1,element:ft,callback:xt=>ut(xt,!1),refs:[dt.triggerRef,dt.contentRef],disabled:!it,disabledFocusOnIframe:!(!((pt=j.closeOnIframeFocus)!==null&&pt!==void 0)||pt)});const gt=tt.openOnContext||tt.closeOnScroll;useOnScrollOutside({contains:elementContains$1,element:ft,callback:xt=>ut(xt,!1),refs:[dt.triggerRef,dt.contentRef],disabled:!it||!gt});const{findFirstFocusable:vt}=useFocusFinders();reactExports.useEffect(()=>{if(!j.unstable_disableAutoFocus&&it&&dt.contentRef.current){var xt;const yt=(xt=dt.contentRef.current.getAttribute("tabIndex"))!==null&&xt!==void 0?xt:void 0,Et=isNaN(yt)?vt(dt.contentRef.current):dt.contentRef.current;Et==null||Et.focus()}},[vt,it,dt.contentRef,j.unstable_disableAutoFocus]);var bt,_t;return{...tt,...dt,inertTrapFocus:(bt=j.inertTrapFocus)!==null&&bt!==void 0?bt:j.legacyTrapFocus===void 0?!1:!j.legacyTrapFocus,popoverTrigger:nt,popoverSurface:ot,open:it,setOpen:ut,toggleOpen:ct,setContextTarget:et,contextTarget:_e,inline:(_t=j.inline)!==null&&_t!==void 0?_t:!1}};function useOpenState(j){const _e=useEventCallback$3((ot,it)=>{var st;return(st=j.onOpenChange)===null||st===void 0?void 0:st.call(j,ot,it)}),[et,tt]=useControllableState({state:j.open,defaultState:j.defaultOpen,initialState:!1});j.open=et!==void 0?et:j.open;const rt=j.setContextTarget,nt=reactExports.useCallback((ot,it)=>{it&&ot.type==="contextmenu"&&rt(ot),it||rt(void 0),tt(it),_e==null||_e(ot,{open:it})},[tt,_e,rt]);return[et,nt]}function usePopoverRefs(j){const _e={position:"above",align:"center",arrowPadding:2*popoverSurfaceBorderRadius,target:j.openOnContext?j.contextTarget:void 0,...resolvePositioningShorthand(j.positioning)};_e.coverTarget&&(j.withArrow=!1),j.withArrow&&(_e.offset=mergeArrowOffset(_e.offset,arrowHeights[j.size]));const{targetRef:et,containerRef:tt,arrowRef:rt}=usePositioning(_e);return{triggerRef:et,contentRef:tt,arrowRef:rt}}const renderPopover_unstable=j=>{const{appearance:_e,arrowRef:et,contentRef:tt,inline:rt,mountNode:nt,open:ot,openOnContext:it,openOnHover:st,setOpen:lt,size:ut,toggleOpen:ct,trapFocus:dt,triggerRef:ft,withArrow:pt,inertTrapFocus:gt}=j;return reactExports.createElement(PopoverContext.Provider,{value:{appearance:_e,arrowRef:et,contentRef:tt,inline:rt,mountNode:nt,open:ot,openOnContext:it,openOnHover:st,setOpen:lt,toggleOpen:ct,triggerRef:ft,size:ut,trapFocus:dt,inertTrapFocus:gt,withArrow:pt}},j.popoverTrigger,j.open&&j.popoverSurface)},Popover=j=>{const _e=usePopover_unstable(j);return renderPopover_unstable(_e)};Popover.displayName="Popover";const usePopoverTrigger_unstable=j=>{const{children:_e,disableButtonEnhancement:et=!1}=j,tt=getTriggerChild(_e),rt=usePopoverContext_unstable(xt=>xt.open),nt=usePopoverContext_unstable(xt=>xt.setOpen),ot=usePopoverContext_unstable(xt=>xt.toggleOpen),it=usePopoverContext_unstable(xt=>xt.triggerRef),st=usePopoverContext_unstable(xt=>xt.openOnHover),lt=usePopoverContext_unstable(xt=>xt.openOnContext),{triggerAttributes:ut}=useModalAttributes(),ct=xt=>{lt&&(xt.preventDefault(),nt(xt,!0))},dt=xt=>{lt||ot(xt)},ft=xt=>{xt.key===Escape&&rt&&!xt.isDefaultPrevented()&&(nt(xt,!1),xt.preventDefault())},pt=xt=>{st&&nt(xt,!0)},gt=xt=>{st&&nt(xt,!1)},vt={...ut,"aria-expanded":`${rt}`,...tt==null?void 0:tt.props,onMouseEnter:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onMouseEnter,pt)),onMouseLeave:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onMouseLeave,gt)),onContextMenu:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onContextMenu,ct)),ref:useMergedRefs$1(it,tt==null?void 0:tt.ref)},bt={...vt,onClick:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onClick,dt)),onKeyDown:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onKeyDown,ft))},_t=useARIAButtonProps((tt==null?void 0:tt.type)==="button"||(tt==null?void 0:tt.type)==="a"?tt.type:"div",bt);return{children:applyTriggerPropsToChildren(j.children,useARIAButtonProps((tt==null?void 0:tt.type)==="button"||(tt==null?void 0:tt.type)==="a"?tt.type:"div",lt?vt:et?bt:_t))}},renderPopoverTrigger_unstable=j=>j.children,PopoverTrigger=j=>{const _e=usePopoverTrigger_unstable(j);return renderPopoverTrigger_unstable(_e)};PopoverTrigger.displayName="PopoverTrigger";PopoverTrigger.isFluentTriggerComponent=!0;const arrowHeight=6,tooltipBorderRadius=4,useTooltip_unstable=j=>{var _e,et,tt,rt;const nt=useTooltipVisibility(),ot=useIsSSR(),{targetDocument:it}=useFluent(),[st,lt]=useTimeout(),{appearance:ut="normal",children:ct,content:dt,withArrow:ft=!1,positioning:pt="above",onVisibleChange:gt,relationship:vt,showDelay:bt=250,hideDelay:_t=250,mountNode:xt}=j,[yt,Et]=useControllableState({state:j.visible,initialState:!1}),St=reactExports.useCallback((jt,Gt)=>{lt(),Et(Vt=>(Gt.visible!==Vt&&(gt==null||gt(jt,Gt)),Gt.visible))},[lt,Et,gt]),$t={withArrow:ft,positioning:pt,showDelay:bt,hideDelay:_t,relationship:vt,visible:yt,shouldRenderTooltip:yt,appearance:ut,mountNode:xt,components:{content:"div"},content:always(dt,{defaultProps:{role:"tooltip"},elementType:"div"})};$t.content.id=useId$1("tooltip-",$t.content.id);const At={enabled:$t.visible,arrowPadding:2*tooltipBorderRadius,position:"above",align:"center",offset:4,...resolvePositioningShorthand($t.positioning)};$t.withArrow&&(At.offset=mergeArrowOffset(At.offset,arrowHeight));const{targetRef:wt,containerRef:Ct,arrowRef:It}=usePositioning(At);$t.content.ref=useMergedRefs$1($t.content.ref,Ct),$t.arrowRef=It,useIsomorphicLayoutEffect$1(()=>{if(yt){var jt;const Gt={hide:Yt=>St(void 0,{visible:!1,documentKeyboardEvent:Yt})};(jt=nt.visibleTooltip)===null||jt===void 0||jt.hide(),nt.visibleTooltip=Gt;const Vt=Yt=>{Yt.key===Escape&&!Yt.defaultPrevented&&(Gt.hide(Yt),Yt.preventDefault())};return it==null||it.addEventListener("keydown",Vt,{capture:!0}),()=>{nt.visibleTooltip===Gt&&(nt.visibleTooltip=void 0),it==null||it.removeEventListener("keydown",Vt,{capture:!0})}}},[nt,it,yt,St]);const Ot=reactExports.useRef(!1),Nt=reactExports.useCallback(jt=>{if(jt.type==="focus"&&Ot.current){Ot.current=!1;return}const Gt=nt.visibleTooltip?0:$t.showDelay;st(()=>{St(jt,{visible:!0})},Gt),jt.persist()},[st,St,$t.showDelay,nt]),[Pt]=reactExports.useState(()=>{const jt=Vt=>{var Yt;!((Yt=Vt.detail)===null||Yt===void 0)&&Yt.isFocusedProgrammatically&&(Ot.current=!0)};let Gt=null;return Vt=>{Gt==null||Gt.removeEventListener(KEYBORG_FOCUSIN,jt),Vt==null||Vt.addEventListener(KEYBORG_FOCUSIN,jt),Gt=Vt}}),Mt=reactExports.useCallback(jt=>{let Gt=$t.hideDelay;jt.type==="blur"&&(Gt=0,Ot.current=(it==null?void 0:it.activeElement)===jt.target),st(()=>{St(jt,{visible:!1})},Gt),jt.persist()},[st,St,$t.hideDelay,it]);$t.content.onPointerEnter=mergeCallbacks($t.content.onPointerEnter,lt),$t.content.onPointerLeave=mergeCallbacks($t.content.onPointerLeave,Mt),$t.content.onFocus=mergeCallbacks($t.content.onFocus,lt),$t.content.onBlur=mergeCallbacks($t.content.onBlur,Mt);const Rt=getTriggerChild(ct),Lt={};return vt==="label"?typeof $t.content.children=="string"?Lt["aria-label"]=$t.content.children:(Lt["aria-labelledby"]=$t.content.id,$t.shouldRenderTooltip=!0):vt==="description"&&(Lt["aria-describedby"]=$t.content.id,$t.shouldRenderTooltip=!0),ot&&($t.shouldRenderTooltip=!1),$t.children=applyTriggerPropsToChildren(ct,{...Lt,...Rt==null?void 0:Rt.props,ref:useMergedRefs$1(Rt==null?void 0:Rt.ref,Pt,At.target===void 0?wt:void 0),onPointerEnter:useEventCallback$3(mergeCallbacks(Rt==null||(_e=Rt.props)===null||_e===void 0?void 0:_e.onPointerEnter,Nt)),onPointerLeave:useEventCallback$3(mergeCallbacks(Rt==null||(et=Rt.props)===null||et===void 0?void 0:et.onPointerLeave,Mt)),onFocus:useEventCallback$3(mergeCallbacks(Rt==null||(tt=Rt.props)===null||tt===void 0?void 0:tt.onFocus,Nt)),onBlur:useEventCallback$3(mergeCallbacks(Rt==null||(rt=Rt.props)===null||rt===void 0?void 0:rt.onBlur,Mt))}),$t},renderTooltip_unstable=j=>jsxs(reactExports.Fragment,{children:[j.children,j.shouldRenderTooltip&&jsx$1(Portal$1,{mountNode:j.mountNode,children:jsxs(j.content,{children:[j.withArrow&&jsx$1("div",{ref:j.arrowRef,className:j.arrowClassName}),j.content.children]})})]}),tooltipClassNames={content:"fui-Tooltip__content"},useStyles$u=__styles({root:{mc9l5x:"fjseox",B7ck84d:"f1ewtqcl",B2u0y6b:"f132xexn",Bceei9c:"f158kwzp",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bg96gwp:"fwrc4pm",Btd35i7:"fokg9q4",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B4j52fo:"f5ogflp",Bekrc4i:["f1hqa2wf","finvdd3"],Bn0qgzm:"f1f09k3d",ibv6hh:["finvdd3","f1hqa2wf"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"],z8tnut:"f10ra9hq",z189sj:["fd9xhir","f1jlaasf"],Byoj8tv:"f1d7kygh",uwmqm3:["f1jlaasf","fd9xhir"],De3pzq:"fxugw4r",sj55zd:"f19n0e5",Bhu2qc9:"fxeb0a7"},visible:{mc9l5x:"ftgm304"},inverted:{De3pzq:"fg3r6xk",sj55zd:"fonrgv7"},arrow:{qhf8xq:"f1euv43f",De3pzq:"f1u2r49w",Bcdw1i0:"fd7fpy0",Bj3rh1h:"f1bsuimh",a9b677:"f1ekdpwm",Bqenvij:"f83vc9z",Ftih45:"f1wl9k8s",B1puzpu:"f1wkw4r9",Brfgrao:"f1j7ml58",Bcvre1j:"fyl8oag",Ccq8qp:"frdoeuz",Baz25je:"fb81m9q",cmx5o7:"f1ljr5q2",B4f6apu:"fyfemzf",m598lv:"focyt6c",Bk5zm6e:"fnhxbxj",y0oebl:"fdw6hkg",qa3bma:"f11yjt3y",Bqjgrrk:"f1172wan",Budzafs:["f9e5op9","f112wvtl"],Hv9wc6:["f1500xdc","f1it0ps5"],hl6cv3:"f1773hnp",c8svkw:"fw7o64x",yayu3t:"f1v7783n",nr3p0k:"f1f0d6v",rhl9o9:"fh2hsk5",wiz9v7:"f1gj3y7g",B6q6orb:"f11yvu4",ndpsmx:"f17lejdj"}},{d:[".fjseox{display:none;}",".f1ewtqcl{box-sizing:border-box;}",".f132xexn{max-width:240px;}",".f158kwzp{cursor:default;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fokg9q4{overflow-wrap:break-word;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f5ogflp{border-top-width:1px;}",".f1hqa2wf{border-right-width:1px;}",".finvdd3{border-left-width:1px;}",".f1f09k3d{border-bottom-width:1px;}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".f10ra9hq{padding-top:4px;}",".fd9xhir{padding-right:11px;}",".f1jlaasf{padding-left:11px;}",".f1d7kygh{padding-bottom:6px;}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".fxeb0a7{filter:drop-shadow(0 0 2px var(--colorNeutralShadowAmbient)) drop-shadow(0 4px 8px var(--colorNeutralShadowKey));}",".ftgm304{display:block;}",".fg3r6xk{background-color:var(--colorNeutralBackgroundStatic);}",".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".f1euv43f{position:absolute;}",".f1u2r49w{background-color:inherit;}",".fd7fpy0{visibility:hidden;}",".f1bsuimh{z-index:-1;}",".f1ekdpwm{width:8.484px;}",".f83vc9z{height:8.484px;}",'.f1wl9k8s::before{content:"";}',".f1wkw4r9::before{visibility:visible;}",".f1j7ml58::before{position:absolute;}",".fyl8oag::before{box-sizing:border-box;}",".frdoeuz::before{width:inherit;}",".fb81m9q::before{height:inherit;}",".f1ljr5q2::before{background-color:inherit;}",".fyfemzf::before{border-right-width:1px;}",".focyt6c::before{border-right-style:solid;}",".fnhxbxj::before{border-right-color:var(--colorTransparentStroke);}",".fdw6hkg::before{border-bottom-width:1px;}",".f11yjt3y::before{border-bottom-style:solid;}",".f1172wan::before{border-bottom-color:var(--colorTransparentStroke);}",".f9e5op9::before{border-bottom-right-radius:var(--borderRadiusSmall);}",".f112wvtl::before{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1500xdc::before{transform:rotate(var(--fui-positioning-angle)) translate(0, 50%) rotate(45deg);}",".f1it0ps5::before{transform:rotate(var(--fui-positioning-angle)) translate(0, 50%) rotate(-45deg);}",'[data-popper-placement^="top"] .f1773hnp{bottom:-1px;}','[data-popper-placement^="top"] .fw7o64x{--fui-positioning-angle:0;}','[data-popper-placement^="right"] .f1v7783n{left:-1px;}','[data-popper-placement^="right"] .f1f0d6v{--fui-positioning-angle:90deg;}','[data-popper-placement^="bottom"] .fh2hsk5{top:-1px;}','[data-popper-placement^="bottom"] .f1gj3y7g{--fui-positioning-angle:180deg;}','[data-popper-placement^="left"] .f11yvu4{right:-1px;}','[data-popper-placement^="left"] .f17lejdj{--fui-positioning-angle:270deg;}']}),useTooltipStyles_unstable=j=>{const _e=useStyles$u();return j.content.className=mergeClasses(tooltipClassNames.content,_e.root,j.appearance==="inverted"&&_e.inverted,j.visible&&_e.visible,j.content.className),j.arrowClassName=_e.arrow,j},Tooltip$1=j=>{const _e=useTooltip_unstable(j);return useTooltipStyles_unstable(_e),useCustomStyleHook("useTooltipStyles_unstable")(_e),renderTooltip_unstable(_e)};Tooltip$1.displayName="Tooltip";Tooltip$1.isFluentTriggerComponent=!0;const renderButton_unstable=j=>{const{iconOnly:_e,iconPosition:et}=j;return jsxs(j.root,{children:[et!=="after"&&j.icon&&jsx$1(j.icon,{}),!_e&&j.root.children,et==="after"&&j.icon&&jsx$1(j.icon,{})]})},buttonContext=reactExports.createContext(void 0),buttonContextDefaultValue={};buttonContext.Provider;const useButtonContext=()=>{var j;return(j=reactExports.useContext(buttonContext))!==null&&j!==void 0?j:buttonContextDefaultValue},useButton_unstable=(j,_e)=>{const{size:et}=useButtonContext(),{appearance:tt="secondary",as:rt="button",disabled:nt=!1,disabledFocusable:ot=!1,icon:it,iconPosition:st="before",shape:lt="rounded",size:ut=et??"medium"}=j,ct=optional(it,{elementType:"span"});return{appearance:tt,disabled:nt,disabledFocusable:ot,iconPosition:st,shape:lt,size:ut,iconOnly:!!(ct!=null&&ct.children&&!j.children),components:{root:"button",icon:"span"},root:always(getIntrinsicElementProps(rt,useARIAButtonProps(j.as,j)),{elementType:"button",defaultProps:{ref:_e,type:"button"}}),icon:ct}},buttonClassNames={root:"fui-Button",icon:"fui-Button__icon"},useRootBaseClassName$1=__resetStyles("r1alrhcs",null,{r:[".r1alrhcs{align-items:center;box-sizing:border-box;display:inline-flex;justify-content:center;text-decoration-line:none;vertical-align:middle;margin:0;overflow:hidden;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);font-family:var(--fontFamilyBase);outline-style:none;padding:5px var(--spacingHorizontalM);min-width:96px;border-radius:var(--borderRadiusMedium);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase300);transition-duration:var(--durationFaster);transition-property:background,border,color;transition-timing-function:var(--curveEasyEase);}",".r1alrhcs:hover{background-color:var(--colorNeutralBackground1Hover);border-color:var(--colorNeutralStroke1Hover);color:var(--colorNeutralForeground1Hover);cursor:pointer;}",".r1alrhcs:hover:active{background-color:var(--colorNeutralBackground1Pressed);border-color:var(--colorNeutralStroke1Pressed);color:var(--colorNeutralForeground1Pressed);outline-style:none;}",".r1alrhcs[data-fui-focus-visible]{border-color:var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);border-width:1px;outline:var(--strokeWidthThick) solid var(--colorTransparentStroke);box-shadow:0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset;z-index:1;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r1alrhcs{transition-duration:0.01ms;}}","@media (forced-colors: active){.r1alrhcs:focus{border-color:ButtonText;}.r1alrhcs:hover{background-color:HighlightText;border-color:Highlight;color:Highlight;forced-color-adjust:none;}.r1alrhcs:hover:active{background-color:HighlightText;border-color:Highlight;color:Highlight;forced-color-adjust:none;}}","@supports (-moz-appearance:button){.r1alrhcs[data-fui-focus-visible]{box-shadow:0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset;}}"]}),useIconBaseClassName=__resetStyles("rywnvv2",null,[".rywnvv2{align-items:center;display:inline-flex;justify-content:center;font-size:20px;height:20px;width:20px;--fui-Button__icon--spacing:var(--spacingHorizontalSNudge);}"]),useRootStyles$5=__styles({outline:{De3pzq:"f1c21dwh",Jwef8y:"fjxutwb",iro3zm:"fwiml72"},primary:{De3pzq:"ffp7eso",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"f1phragk",Jwef8y:"f15wkkf3",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"f1rq72xc",iro3zm:"fnp9lpt",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1d6v5y2",Bsw6fvg:"f1rirnrt",Bjwas2f:"f1uu00uk",Bn1d65q:["fkvaka8","f9a0qzu"],Bxeuatn:"f1ux7til",n51gp8:["f9a0qzu","fkvaka8"],Bbusuzp:"f1lkg8j3",ycbfsm:"fkc42ay",Bqrx1nm:"fq7113v",pgvf35:"ff1wgvm",Bh7lczh:["fiob0tu","f1x4h75k"],dpv3f4:"f1j6scgf",Bpnjhaq:["f1x4h75k","fiob0tu"],ze5xyy:"f4xjyn1",g2kj27:"fbgcvur",Bf756sw:"f1ks1yx8",Bow2dr7:["f1o6qegi","fmxjhhp"],Bvhedfk:"fcnxywj",Gye4lf:["fmxjhhp","f1o6qegi"],pc6evw:"f9ddjv3"},secondary:{},subtle:{De3pzq:"fhovq9v",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"fkfq4zb",Jwef8y:"f1t94bn6",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"fnwyq0v",Bk3fhr4:"ft1hn21",Bmfj8id:"fuxngvv",Bbdnnc7:"fy5bs14",iro3zm:"fsv2rcd",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1omzyqd",em6i61:"f1dfjoow",vm6p8p:"f1j98vj9",x3br3k:"fj8yq94",ze5xyy:"f4xjyn1",Bx3q9su:"f1et0tmh",pc6evw:"f9ddjv3",xd2cci:"f1wi8ngl"},transparent:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"fkfq4zb",Jwef8y:"fjxutwb",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"f139oj5f",Bk3fhr4:"ft1hn21",Bmfj8id:"fuxngvv",iro3zm:"fwiml72",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1fg1p5m",em6i61:"f1dfjoow",vm6p8p:"f1j98vj9",Bqrx1nm:"f1tme0vf",ze5xyy:"f4xjyn1",g2kj27:"f18onu3q",pc6evw:"f9ddjv3"},circular:{Bbmb7ep:["f8fbkgy","f1nfllo7"],Beyfa6y:["f1nfllo7","f8fbkgy"],B7oj6ja:["f1djnp8u","f1s8kh49"],Btl43ni:["f1s8kh49","f1djnp8u"]},rounded:{},square:{Bbmb7ep:["fzi6hpg","fyowgf4"],Beyfa6y:["fyowgf4","fzi6hpg"],B7oj6ja:["f3fg2lr","f13av6d4"],Btl43ni:["f13av6d4","f3fg2lr"]},small:{Bf4jedk:"fh7ncta",z8tnut:"f1khb0e9",z189sj:["f1vdfbxk","f1f5gg8d"],Byoj8tv:"f1jnq6q7",uwmqm3:["f1f5gg8d","f1vdfbxk"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},smallWithIcon:{Byoj8tv:"f1brlhvm",z8tnut:"f1sl3k7w"},medium:{},large:{Bf4jedk:"f14es27b",z8tnut:"fp9bwmr",z189sj:["fjodcmx","fhx4nu"],Byoj8tv:"f150uoa4",uwmqm3:["fhx4nu","fjodcmx"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},largeWithIcon:{Byoj8tv:"fy7v416",z8tnut:"f1a1bwwz"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fkfq4zb{color:var(--colorNeutralForeground2);}",".f8fbkgy{border-bottom-right-radius:var(--borderRadiusCircular);}",".f1nfllo7{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1djnp8u{border-top-right-radius:var(--borderRadiusCircular);}",".f1s8kh49{border-top-left-radius:var(--borderRadiusCircular);}",".fzi6hpg{border-bottom-right-radius:var(--borderRadiusNone);}",".fyowgf4{border-bottom-left-radius:var(--borderRadiusNone);}",".f3fg2lr{border-top-right-radius:var(--borderRadiusNone);}",".f13av6d4{border-top-left-radius:var(--borderRadiusNone);}",".fh7ncta{min-width:64px;}",".f1khb0e9{padding-top:3px;}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".f1jnq6q7{padding-bottom:3px;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1brlhvm{padding-bottom:1px;}",".f1sl3k7w{padding-top:1px;}",".f14es27b{min-width:96px;}",".fp9bwmr{padding-top:8px;}",".fjodcmx{padding-right:var(--spacingHorizontalL);}",".fhx4nu{padding-left:var(--spacingHorizontalL);}",".f150uoa4{padding-bottom:8px;}",".fod5ikn{font-size:var(--fontSizeBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fy7v416{padding-bottom:7px;}",".f1a1bwwz{padding-top:7px;}"],h:[".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".fwiml72:hover:active{background-color:var(--colorTransparentBackgroundPressed);}",".f15wkkf3:hover{background-color:var(--colorBrandBackgroundHover);}",".f1s2uweq:hover{border-top-color:transparent;}",".fr80ssc:hover{border-right-color:transparent;}",".fecsdlb:hover{border-left-color:transparent;}",".f1ukrpxl:hover{border-bottom-color:transparent;}",".f1rq72xc:hover{color:var(--colorNeutralForegroundOnBrand);}",".fnp9lpt:hover:active{background-color:var(--colorBrandBackgroundPressed);}",".f1h0usnq:hover:active{border-top-color:transparent;}",".fs4ktlq:hover:active{border-right-color:transparent;}",".fx2bmrt:hover:active{border-left-color:transparent;}",".f16h9ulv:hover:active{border-bottom-color:transparent;}",".f1d6v5y2:hover:active{color:var(--colorNeutralForegroundOnBrand);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".fnwyq0v:hover{color:var(--colorNeutralForeground2Hover);}",".ft1hn21:hover .fui-Icon-filled{display:inline;}",".fuxngvv:hover .fui-Icon-regular{display:none;}",".fy5bs14:hover .fui-Button__icon{color:var(--colorNeutralForeground2BrandHover);}",".fsv2rcd:hover:active{background-color:var(--colorSubtleBackgroundPressed);}",".f1omzyqd:hover:active{color:var(--colorNeutralForeground2Pressed);}",".f1dfjoow:hover:active .fui-Icon-filled{display:inline;}",".f1j98vj9:hover:active .fui-Icon-regular{display:none;}",".fj8yq94:hover:active .fui-Button__icon{color:var(--colorNeutralForeground2BrandPressed);}",".f139oj5f:hover{color:var(--colorNeutralForeground2BrandHover);}",".f1fg1p5m:hover:active{color:var(--colorNeutralForeground2BrandPressed);}"],m:[["@media (forced-colors: active){.f1rirnrt{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1uu00uk{border-top-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f9a0qzu{border-left-color:HighlightText;}.fkvaka8{border-right-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ux7til{border-bottom-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lkg8j3{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fq7113v:hover{background-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.ff1wgvm:hover{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1x4h75k:hover{border-left-color:Highlight;}.fiob0tu:hover{border-right-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1j6scgf:hover{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f4xjyn1:hover{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fbgcvur:hover:active{background-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ks1yx8:hover:active{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1o6qegi:hover:active{border-right-color:Highlight;}.fmxjhhp:hover:active{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fcnxywj:hover:active{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f9ddjv3:hover:active{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1et0tmh:hover .fui-Button__icon{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1wi8ngl:hover:active .fui-Button__icon{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1tme0vf:hover{background-color:var(--colorTransparentBackground);}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f18onu3q:hover:active{background-color:var(--colorTransparentBackground);}}",{m:"(forced-colors: active)"}]]}),useRootDisabledStyles=__styles({base:{De3pzq:"f1bg9a2p",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr",Bfinmwp:"f15x8b5r",Jwef8y:"f1falr9n",Bgoe8wy:"f12mpcsy",Bwzppfd:["f1gwvigk","f18rmfxp"],oetu4i:"f1jnshp0",gg5e9n:["f18rmfxp","f1gwvigk"],Bi91k9c:"fvgxktp",eoavqd:"fphbwmw",Bk3fhr4:"f19vpps7",Bmfj8id:"fv5swzo",Bbdnnc7:"f1al02dq",iro3zm:"f1t6o4dc",b661bw:"f10ztigi",Bk6r4ia:["f1ft5sdu","f1gzf82w"],B9zn80p:"f12zbtn2",Bpld233:["f1gzf82w","f1ft5sdu"],B2d53fq:"fcvwxyo",c3iz72:"f8w4c43",em6i61:"f1ol4fw6",vm6p8p:"f1q1lw4e",x3br3k:"f1dwjv2g"},highContrast:{Bsw6fvg:"f4lkoma",Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"],Bbusuzp:"f1dcs8yz",G867l3:"fjwq6ea",gdbnj:["f1lr3nhc","f1mbxvi6"],mxns5l:"fn5gmvv",o3nasb:["f1mbxvi6","f1lr3nhc"],Bqrx1nm:"f1vmkb5g",pgvf35:"f53ppgq",Bh7lczh:["f1663y11","f80fkiy"],dpv3f4:"f18v5270",Bpnjhaq:["f80fkiy","f1663y11"],ze5xyy:"f1kc2mi9",g2kj27:"f1y0svfh",Bf756sw:"fihuait",Bow2dr7:["fnxhupq","fyd6l6x"],Bvhedfk:"fx507ft",Gye4lf:["fyd6l6x","fnxhupq"],pc6evw:"fb3rf2x"},outline:{De3pzq:"f1c21dwh",Jwef8y:"f9ql6rf",iro3zm:"f3h1zc4"},primary:{g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]},secondary:{},subtle:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Jwef8y:"f9ql6rf",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],iro3zm:"f3h1zc4",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]},transparent:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Jwef8y:"f9ql6rf",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],iro3zm:"f3h1zc4",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]}},{d:[".f1bg9a2p{background-color:var(--colorNeutralBackgroundDisabled);}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f15x8b5r .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}"],h:[".f1falr9n:hover{background-color:var(--colorNeutralBackgroundDisabled);}",".f12mpcsy:hover{border-top-color:var(--colorNeutralStrokeDisabled);}",".f1gwvigk:hover{border-right-color:var(--colorNeutralStrokeDisabled);}",".f18rmfxp:hover{border-left-color:var(--colorNeutralStrokeDisabled);}",".f1jnshp0:hover{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}",".fphbwmw:hover{cursor:not-allowed;}",".f19vpps7:hover .fui-Icon-filled{display:none;}",".fv5swzo:hover .fui-Icon-regular{display:inline;}",".f1al02dq:hover .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f1t6o4dc:hover:active{background-color:var(--colorNeutralBackgroundDisabled);}",".f10ztigi:hover:active{border-top-color:var(--colorNeutralStrokeDisabled);}",".f1ft5sdu:hover:active{border-right-color:var(--colorNeutralStrokeDisabled);}",".f1gzf82w:hover:active{border-left-color:var(--colorNeutralStrokeDisabled);}",".f12zbtn2:hover:active{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fcvwxyo:hover:active{color:var(--colorNeutralForegroundDisabled);}",".f8w4c43:hover:active{cursor:not-allowed;}",".f1ol4fw6:hover:active .fui-Icon-filled{display:none;}",".f1q1lw4e:hover:active .fui-Icon-regular{display:inline;}",".f1dwjv2g:hover:active .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}",".f3h1zc4:hover:active{background-color:var(--colorTransparentBackground);}",".f1s2uweq:hover{border-top-color:transparent;}",".fr80ssc:hover{border-right-color:transparent;}",".fecsdlb:hover{border-left-color:transparent;}",".f1ukrpxl:hover{border-bottom-color:transparent;}",".f1h0usnq:hover:active{border-top-color:transparent;}",".fs4ktlq:hover:active{border-right-color:transparent;}",".fx2bmrt:hover:active{border-left-color:transparent;}",".f16h9ulv:hover:active{border-bottom-color:transparent;}"],m:[["@media (forced-colors: active){.f4lkoma{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fjwq6ea:focus{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lr3nhc:focus{border-right-color:GrayText;}.f1mbxvi6:focus{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fn5gmvv:focus{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1vmkb5g:hover{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f53ppgq:hover{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1663y11:hover{border-right-color:GrayText;}.f80fkiy:hover{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f18v5270:hover{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1kc2mi9:hover{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1y0svfh:hover:active{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fihuait:hover:active{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fnxhupq:hover:active{border-right-color:GrayText;}.fyd6l6x:hover:active{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fx507ft:hover:active{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fb3rf2x:hover:active{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),useRootFocusStyles=__styles({circular:{kdpuga:["fanj13w","f1gou5sz"],Bw81rd7:["f1gou5sz","fanj13w"],B6xbmo0:["fulf6x3","foeb2x"],dm238s:["foeb2x","fulf6x3"]},rounded:{},square:{kdpuga:["f1ndz5i7","f1co4qro"],Bw81rd7:["f1co4qro","f1ndz5i7"],B6xbmo0:["f146y5a9","f1k2ftg"],dm238s:["f1k2ftg","f146y5a9"]},primary:{B8q5s1w:"f17t0x8g",Bci5o5g:["f194v5ow","fk7jm04"],n8qw10:"f1qgg65p",Bdrgwmp:["fk7jm04","f194v5ow"],j6ew2k:["fhgccpy","fjo7pq6"],he4mth:"f32wu9k",Byr4aka:"fu5nqqq",lks7q5:["f13prjl2","f1nl83rv"],Bnan3qt:"f1czftr5",k1dn9:["f1nl83rv","f13prjl2"],Boium3a:["f12k37oa","fdnykm2"],tm8e47:"fr96u23"},small:{kdpuga:["fg3gtdo","fwii5mg"],Bw81rd7:["fwii5mg","fg3gtdo"],B6xbmo0:["f1palphq","f12nxie7"],dm238s:["f12nxie7","f1palphq"]},medium:{},large:{kdpuga:["ft3lys4","f1la4x2g"],Bw81rd7:["f1la4x2g","ft3lys4"],B6xbmo0:["f156y0zm","fakimq4"],dm238s:["fakimq4","f156y0zm"]}},{d:[".fanj13w[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusCircular);}",".f1gou5sz[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusCircular);}",".fulf6x3[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusCircular);}",".foeb2x[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusCircular);}",".f1ndz5i7[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusNone);}",".f1co4qro[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusNone);}",".f146y5a9[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusNone);}",".f1k2ftg[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusNone);}",".f17t0x8g[data-fui-focus-visible]{border-top-color:var(--colorStrokeFocus2);}",".f194v5ow[data-fui-focus-visible]{border-right-color:var(--colorStrokeFocus2);}",".fk7jm04[data-fui-focus-visible]{border-left-color:var(--colorStrokeFocus2);}",".f1qgg65p[data-fui-focus-visible]{border-bottom-color:var(--colorStrokeFocus2);}",".fhgccpy[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}",".fjo7pq6[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}",".f32wu9k[data-fui-focus-visible]:hover{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset;}",".fu5nqqq[data-fui-focus-visible]:hover{border-top-color:var(--colorStrokeFocus2);}",".f13prjl2[data-fui-focus-visible]:hover{border-right-color:var(--colorStrokeFocus2);}",".f1nl83rv[data-fui-focus-visible]:hover{border-left-color:var(--colorStrokeFocus2);}",".f1czftr5[data-fui-focus-visible]:hover{border-bottom-color:var(--colorStrokeFocus2);}",".fg3gtdo[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusSmall);}",".fwii5mg[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1palphq[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusSmall);}",".f12nxie7[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusSmall);}",".ft3lys4[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusLarge);}",".f1la4x2g[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusLarge);}",".f156y0zm[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusLarge);}",".fakimq4[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusLarge);}"],t:["@supports (-moz-appearance:button){.f12k37oa[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}.fdnykm2[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}}","@supports (-moz-appearance:button){.fr96u23[data-fui-focus-visible]:hover{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset;}}"]}),useRootIconOnlyStyles=__styles({small:{z8tnut:"f1sl3k7w",z189sj:["f136y8j8","f10xn8zz"],Byoj8tv:"f1brlhvm",uwmqm3:["f10xn8zz","f136y8j8"],Bf4jedk:"f17fgpbq",B2u0y6b:"f1jt17bm"},medium:{z8tnut:"f1sbtcvk",z189sj:["fwiuce9","f15vdbe4"],Byoj8tv:"fdghr9",uwmqm3:["f15vdbe4","fwiuce9"],Bf4jedk:"fwbmr0d",B2u0y6b:"f44c6la"},large:{z8tnut:"f1a1bwwz",z189sj:["f18k1jr3","f1rtp3s9"],Byoj8tv:"fy7v416",uwmqm3:["f1rtp3s9","f18k1jr3"],Bf4jedk:"f12clzc2",B2u0y6b:"fjy1crr"}},{d:[".f1sl3k7w{padding-top:1px;}",".f136y8j8{padding-right:1px;}",".f10xn8zz{padding-left:1px;}",".f1brlhvm{padding-bottom:1px;}",".f17fgpbq{min-width:24px;}",".f1jt17bm{max-width:24px;}",".f1sbtcvk{padding-top:5px;}",".fwiuce9{padding-right:5px;}",".f15vdbe4{padding-left:5px;}",".fdghr9{padding-bottom:5px;}",".fwbmr0d{min-width:32px;}",".f44c6la{max-width:32px;}",".f1a1bwwz{padding-top:7px;}",".f18k1jr3{padding-right:7px;}",".f1rtp3s9{padding-left:7px;}",".fy7v416{padding-bottom:7px;}",".f12clzc2{min-width:40px;}",".fjy1crr{max-width:40px;}"]}),useIconStyles$2=__styles({small:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3",Bqrlyyl:"fbaiahx"},medium:{},large:{Be2twd7:"f1rt2boy",Bqenvij:"frvgh55",a9b677:"fq4mcun",Bqrlyyl:"f1exjqw5"},before:{t21cq0:["f1nizpg2","f1a695kz"]},after:{Frg6f3:["f1a695kz","f1nizpg2"]}},{d:[".fe5j1ua{font-size:20px;}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",".fbaiahx{--fui-Button__icon--spacing:var(--spacingHorizontalXS);}",".f1rt2boy{font-size:24px;}",".frvgh55{height:24px;}",".fq4mcun{width:24px;}",".f1exjqw5{--fui-Button__icon--spacing:var(--spacingHorizontalSNudge);}",".f1nizpg2{margin-right:var(--fui-Button__icon--spacing);}",".f1a695kz{margin-left:var(--fui-Button__icon--spacing);}"]}),useButtonStyles_unstable=j=>{const _e=useRootBaseClassName$1(),et=useIconBaseClassName(),tt=useRootStyles$5(),rt=useRootDisabledStyles(),nt=useRootFocusStyles(),ot=useRootIconOnlyStyles(),it=useIconStyles$2(),{appearance:st,disabled:lt,disabledFocusable:ut,icon:ct,iconOnly:dt,iconPosition:ft,shape:pt,size:gt}=j;return j.root.className=mergeClasses(buttonClassNames.root,_e,st&&tt[st],tt[gt],ct&>==="small"&&tt.smallWithIcon,ct&>==="large"&&tt.largeWithIcon,tt[pt],(lt||ut)&&rt.base,(lt||ut)&&rt.highContrast,st&&(lt||ut)&&rt[st],st==="primary"&&nt.primary,nt[gt],nt[pt],dt&&ot[gt],j.root.className),j.icon&&(j.icon.className=mergeClasses(buttonClassNames.icon,et,!!j.root.children&&it[ft],it[gt],j.icon.className)),j},Button$2=reactExports.forwardRef((j,_e)=>{const et=useButton_unstable(j,_e);return useButtonStyles_unstable(et),useCustomStyleHook("useButtonStyles_unstable")(et),renderButton_unstable(et)});Button$2.displayName="Button";const FieldContext=reactExports.createContext(void 0);FieldContext.Provider;const useFieldContext_unstable=()=>reactExports.useContext(FieldContext);function useFieldControlProps_unstable(j,_e){return getFieldControlProps(useFieldContext_unstable(),j,_e)}function getFieldControlProps(j,_e,et){if(!j)return _e;_e={..._e};const{generatedControlId:tt,hintId:rt,labelFor:nt,labelId:ot,required:it,validationMessageId:st,validationState:lt}=j;if(tt){var ut,ct;(ct=(ut=_e).id)!==null&&ct!==void 0||(ut.id=tt)}if(ot&&(!(et!=null&&et.supportsLabelFor)||nt!==_e.id)){var dt,ft,pt;(pt=(dt=_e)[ft="aria-labelledby"])!==null&&pt!==void 0||(dt[ft]=ot)}if((st||rt)&&(_e["aria-describedby"]=[st,rt,_e==null?void 0:_e["aria-describedby"]].filter(Boolean).join(" ")),lt==="error"){var gt,vt,bt;(bt=(gt=_e)[vt="aria-invalid"])!==null&&bt!==void 0||(gt[vt]=!0)}if(it)if(et!=null&&et.supportsRequired){var _t,xt;(xt=(_t=_e).required)!==null&&xt!==void 0||(_t.required=!0)}else{var yt,Et,St;(St=(yt=_e)[Et="aria-required"])!==null&&St!==void 0||(yt[Et]=!0)}if(et!=null&&et.supportsSize){var $t,At;(At=($t=_e).size)!==null&&At!==void 0||($t.size=j.size)}return _e}const useLabel_unstable=(j,_e)=>{const{disabled:et=!1,required:tt=!1,weight:rt="regular",size:nt="medium"}=j;return{disabled:et,required:optional(tt===!0?"*":tt||void 0,{defaultProps:{"aria-hidden":"true"},elementType:"span"}),weight:rt,size:nt,components:{root:"label",required:"span"},root:always(getIntrinsicElementProps("label",{ref:_e,...j}),{elementType:"label"})}},renderLabel_unstable=j=>jsxs(j.root,{children:[j.root.children,j.required&&jsx$1(j.required,{})]}),labelClassNames={root:"fui-Label",required:"fui-Label__required"},useStyles$t=__styles({root:{Bahqtrf:"fk6fouc",sj55zd:"f19n0e5"},disabled:{sj55zd:"f1s2aq7o"},required:{sj55zd:"f1whyuy6",uwmqm3:["fycuoez","f8wuabp"]},requiredDisabled:{sj55zd:"f1s2aq7o"},small:{Be2twd7:"fy9rknc",Bg96gwp:"fwrc4pm"},medium:{Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi"},large:{Be2twd7:"fod5ikn",Bg96gwp:"faaz57k",Bhrd7zp:"fl43uef"},semibold:{Bhrd7zp:"fl43uef"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f1whyuy6{color:var(--colorPaletteRedForeground3);}",".fycuoez{padding-left:4px;}",".f8wuabp{padding-right:4px;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}"]}),useLabelStyles_unstable=j=>{const _e=useStyles$t();return j.root.className=mergeClasses(labelClassNames.root,_e.root,j.disabled&&_e.disabled,_e[j.size],j.weight==="semibold"&&_e.semibold,j.root.className),j.required&&(j.required.className=mergeClasses(labelClassNames.required,_e.required,j.disabled&&_e.requiredDisabled,j.required.className)),j},Label$1=reactExports.forwardRef((j,_e)=>{const et=useLabel_unstable(j,_e);return useLabelStyles_unstable(et),useCustomStyleHook("useLabelStyles_unstable")(et),renderLabel_unstable(et)});Label$1.displayName="Label";const ComboboxContext=createContext({activeOption:void 0,appearance:"outline",focusVisible:!1,open:!1,registerOption(){return()=>{}},selectedOptions:[],selectOption(){},setActiveOption(){},setOpen(){},size:"medium"});ComboboxContext.Provider;const ListboxContext=createContext({activeOption:void 0,focusVisible:!1,multiselect:!1,registerOption(){return()=>{}},selectedOptions:[],selectOption(){},setActiveOption(){}});ListboxContext.Provider;function useComboboxContextValues(j){const{activeOption:_e,appearance:et,focusVisible:tt,open:rt,registerOption:nt,selectedOptions:ot,selectOption:it,setActiveOption:st,setOpen:lt,size:ut}=j;return{combobox:{activeOption:_e,appearance:et,focusVisible:tt,open:rt,registerOption:nt,selectedOptions:ot,selectOption:it,setActiveOption:st,setOpen:lt,size:ut}}}function useListboxContextValues(j){const _e=useHasParentContext(ComboboxContext),{activeOption:et,focusVisible:tt,multiselect:rt,registerOption:nt,selectedOptions:ot,selectOption:it,setActiveOption:st}=j,lt=useContextSelector(ComboboxContext,dt=>dt.registerOption);return{listbox:{activeOption:et,focusVisible:tt,multiselect:rt,registerOption:_e?lt:nt,selectedOptions:ot,selectOption:it,setActiveOption:st}}}function getDropdownActionFromKey(j,_e={}){const{open:et=!0,multiselect:tt=!1}=_e,rt=j.key,{altKey:nt,ctrlKey:ot,key:it,metaKey:st}=j;return it.length===1&&rt!==Space&&!nt&&!ot&&!st?"Type":et?rt===ArrowUp&&nt||rt===Enter||!tt&&rt===Space?"CloseSelect":tt&&rt===Space?"Select":rt===Escape?"Close":rt===ArrowDown?"Next":rt===ArrowUp?"Previous":rt===Home?"First":rt===End?"Last":rt===PageUp?"PageUp":rt===PageDown?"PageDown":rt===Tab$2?"Tab":"None":rt===ArrowDown||rt===ArrowUp||rt===Enter||rt===Space?"Open":"None"}function getIndexFromAction(j,_e,et){switch(j){case"Next":return Math.min(et,_e+1);case"Previous":return Math.max(0,_e-1);case"First":return 0;case"Last":return et;case"PageDown":return Math.min(et,_e+10);case"PageUp":return Math.max(0,_e-10);default:return _e}}const useOptionCollection=()=>{const j=reactExports.useRef([]),_e=reactExports.useMemo(()=>({getCount:()=>j.current.length,getOptionAtIndex:lt=>{var ut;return(ut=j.current[lt])===null||ut===void 0?void 0:ut.option},getIndexOfId:lt=>j.current.findIndex(ut=>ut.option.id===lt),getOptionById:lt=>{const ut=j.current.find(ct=>ct.option.id===lt);return ut==null?void 0:ut.option},getOptionsMatchingText:lt=>j.current.filter(ut=>lt(ut.option.text)).map(ut=>ut.option),getOptionsMatchingValue:lt=>j.current.filter(ut=>lt(ut.option.value)).map(ut=>ut.option)}),[]),et=reactExports.useCallback((tt,rt)=>{var nt;const ot=j.current.findIndex(it=>!it.element||!rt?!1:it.option.id===tt.id?!0:it.element.compareDocumentPosition(rt)&Node.DOCUMENT_POSITION_PRECEDING);if(((nt=j.current[ot])===null||nt===void 0?void 0:nt.option.id)!==tt.id){const it={element:rt,option:tt};ot===-1?j.current=[...j.current,it]:j.current.splice(ot,0,it)}return()=>{j.current=j.current.filter(it=>it.option.id!==tt.id)}},[]);return{..._e,options:j.current.map(tt=>tt.option),registerOption:et}};function useScrollOptionsIntoView(j){const{activeOption:_e}=j,et=reactExports.useRef(null);return reactExports.useEffect(()=>{if(et.current&&_e&&canUseDOM$3()){const tt=et.current.querySelector(`#${_e.id}`);if(!tt)return;const{offsetHeight:rt,offsetTop:nt}=tt,{offsetHeight:ot,scrollTop:it}=et.current,st=ntit+ot,ut=2;st?et.current.scrollTo(0,nt-ut):lt&&et.current.scrollTo(0,nt-ot+rt+ut)}},[_e]),et}const useSelection=j=>{const{defaultSelectedOptions:_e,multiselect:et,onOptionSelect:tt}=j,[rt,nt]=useControllableState({state:j.selectedOptions,defaultState:_e,initialState:[]}),ot=reactExports.useCallback((st,lt)=>{if(lt.disabled)return;let ut=[lt.value];if(et){const ct=rt.findIndex(dt=>dt===lt.value);ct>-1?ut=[...rt.slice(0,ct),...rt.slice(ct+1)]:ut=[...rt,lt.value]}nt(ut),tt==null||tt(st,{optionValue:lt.value,optionText:lt.text,selectedOptions:ut})},[tt,et,rt,nt]);return{clearSelection:st=>{nt([]),tt==null||tt(st,{optionValue:void 0,optionText:void 0,selectedOptions:[]})},selectOption:ot,selectedOptions:rt}},useListbox_unstable=(j,_e)=>{const{multiselect:et}=j,tt=useOptionCollection(),{getCount:rt,getOptionAtIndex:nt,getIndexOfId:ot}=tt,{clearSelection:it,selectedOptions:st,selectOption:lt}=useSelection(j),[ut,ct]=reactExports.useState(),[dt,ft]=reactExports.useState(!1),pt=wt=>{const Ct=getDropdownActionFromKey(wt,{open:!0}),It=rt()-1,Ot=ut?ot(ut.id):-1;let Nt=Ot;switch(Ct){case"Select":case"CloseSelect":ut&<(wt,ut);break;default:Nt=getIndexFromAction(Ct,Ot,It)}Nt!==Ot&&(wt.preventDefault(),ct(nt(Nt)),ft(!0))},gt=wt=>{ft(!1)},vt=useHasParentContext(ComboboxContext),bt=useContextSelector(ComboboxContext,wt=>wt.activeOption),_t=useContextSelector(ComboboxContext,wt=>wt.focusVisible),xt=useContextSelector(ComboboxContext,wt=>wt.selectedOptions),yt=useContextSelector(ComboboxContext,wt=>wt.selectOption),Et=useContextSelector(ComboboxContext,wt=>wt.setActiveOption),St=vt?{activeOption:bt,focusVisible:_t,selectedOptions:xt,selectOption:yt,setActiveOption:Et}:{activeOption:ut,focusVisible:dt,selectedOptions:st,selectOption:lt,setActiveOption:ct},$t={components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,role:et?"menu":"listbox","aria-activedescendant":vt||ut==null?void 0:ut.id,"aria-multiselectable":et,tabIndex:0,...j}),{elementType:"div"}),multiselect:et,clearSelection:it,...tt,...St},At=useScrollOptionsIntoView($t);return $t.root.ref=useMergedRefs$1($t.root.ref,At),$t.root.onKeyDown=useEventCallback$3(mergeCallbacks($t.root.onKeyDown,pt)),$t.root.onMouseOver=useEventCallback$3(mergeCallbacks($t.root.onMouseOver,gt)),$t},renderListbox_unstable=(j,_e)=>jsx$1(ListboxContext.Provider,{value:_e.listbox,children:jsx$1(j.root,{})}),listboxClassNames={root:"fui-Listbox"},useStyles$s=__styles({root:{De3pzq:"fxugw4r",B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Beiy3e4:"f1vx9l62",Bf4jedk:"f3hsy1e",Bmxbyg5:"f5zp4f",Bpd4iqm:"fpvhumw",oeaueh:"f1yog68k",Bw0xxkn:"f13sgyd8",z8tnut:"f1x4af0m",z189sj:["f7x41pl","fruq291"],Byoj8tv:"fd55psn",uwmqm3:["fruq291","f7x41pl"],Belr9w4:"fiut8dr"}},{d:[".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1ewtqcl{box-sizing:border-box;}",".f22iagw{display:flex;}",".f1vx9l62{flex-direction:column;}",".f3hsy1e{min-width:160px;}",".f5zp4f{overflow-y:auto;}",".fpvhumw{outline-width:1px;}",".f1yog68k{outline-style:solid;}",".f13sgyd8{outline-color:var(--colorTransparentStroke);}",".f1x4af0m{padding-top:var(--spacingHorizontalXS);}",".f7x41pl{padding-right:var(--spacingHorizontalXS);}",".fruq291{padding-left:var(--spacingHorizontalXS);}",".fd55psn{padding-bottom:var(--spacingHorizontalXS);}",".fiut8dr{row-gap:var(--spacingHorizontalXXS);}"]}),useListboxStyles_unstable=j=>{const _e=useStyles$s();return j.root.className=mergeClasses(listboxClassNames.root,_e.root,j.root.className),j},Listbox$1=reactExports.forwardRef((j,_e)=>{const et=useListbox_unstable(j,_e),tt=useListboxContextValues(et);return useListboxStyles_unstable(et),useCustomStyleHook("useListboxStyles_unstable")(et),renderListbox_unstable(et,tt)});Listbox$1.displayName="Listbox";function getTextString(j,_e){if(j!==void 0)return j;let et="",tt=!1;return reactExports.Children.forEach(_e,rt=>{typeof rt=="string"?et+=rt:tt=!0}),tt&&console.warn("Provide a `text` prop to Option components when they contain non-string children."),et}const useOption_unstable=(j,_e)=>{const{children:et,disabled:tt,text:rt,value:nt}=j,ot=reactExports.useRef(null),it=getTextString(rt,et),st=nt??it,lt=useId$1("fluent-option",j.id),ut=reactExports.useMemo(()=>({id:lt,disabled:tt,text:it,value:st}),[lt,tt,it,st]),ct=useContextSelector(ListboxContext,St=>St.focusVisible),dt=useContextSelector(ListboxContext,St=>St.multiselect),ft=useContextSelector(ListboxContext,St=>St.registerOption),pt=useContextSelector(ListboxContext,St=>{const $t=St.selectedOptions;return!!st&&!!$t.find(At=>At===st)}),gt=useContextSelector(ListboxContext,St=>St.selectOption),vt=useContextSelector(ListboxContext,St=>St.setActiveOption),bt=useContextSelector(ComboboxContext,St=>St.setOpen),_t=useContextSelector(ListboxContext,St=>{var $t,At;return(($t=St.activeOption)===null||$t===void 0?void 0:$t.id)!==void 0&&((At=St.activeOption)===null||At===void 0?void 0:At.id)===lt});let xt=reactExports.createElement(CheckmarkFilled,null);dt&&(xt=pt?reactExports.createElement(Checkmark12Filled,null):"");const yt=St=>{var $t;if(tt){St.preventDefault();return}vt(ut),dt||bt==null||bt(St,!1),gt(St,ut),($t=j.onClick)===null||$t===void 0||$t.call(j,St)};reactExports.useEffect(()=>{if(lt&&ot.current)return ft(ut,ot.current)},[lt,ut,ft]);const Et=dt?{role:"menuitemcheckbox","aria-checked":pt}:{role:"option","aria-selected":pt};return{components:{root:"div",checkIcon:"span"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,ot),"aria-disabled":tt?"true":void 0,id:lt,...Et,...j,onClick:yt}),{elementType:"div"}),checkIcon:optional(j.checkIcon,{renderByDefault:!0,defaultProps:{"aria-hidden":"true",children:xt},elementType:"span"}),active:_t,disabled:tt,focusVisible:ct,multiselect:dt,selected:pt}},renderOption_unstable=j=>jsxs(j.root,{children:[j.checkIcon&&jsx$1(j.checkIcon,{}),j.root.children]}),optionClassNames={root:"fui-Option",checkIcon:"fui-Option__checkIcon"},useStyles$r=__styles({root:{Bt984gj:"f122n59",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],sj55zd:"f19n0e5",i8kkvl:"f1ufnopg",Bceei9c:"f1k6fduh",mc9l5x:"f22iagw",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi",z8tnut:"fp2oml8",z189sj:["f1vdfbxk","f1f5gg8d"],Byoj8tv:"f1tdddsa",uwmqm3:["f1f5gg8d","f1vdfbxk"],qhf8xq:"f10pi13n",Jwef8y:"f1knas48",ecr2s2:"fb40n2d"},active:{Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9",B80jsxd:"f1nwj1ja",t2ki1e:"ffmd2fr",Bm2nyyq:"f8rth92",Barhvk9:["flthirb","ftkbnf5"],Bw17bha:"f1lh990p",vfts7:["ftkbnf5","flthirb"],xrcqlc:"fc9v8v1",Ihftqj:["f1mwfetb","f18mat8f"],Bcgy8vk:"f1cb6c3",Bhxzhr1:["f18mat8f","f1mwfetb"],B3778ie:["f1ibwz09","f1kp91vd"],d9w3h3:["f1kp91vd","f1ibwz09"],Bl18szs:["f1pix4dl","f13nd1z4"],B4j8arr:["f13nd1z4","f1pix4dl"],B0n5ga8:"f1qw5sz7",s924m2:["f19va7ni","f1a9v3mw"],B1q35kw:"fkkziue",Gp14am:["f1a9v3mw","f19va7ni"],bn5sak:"f1a97anr",By385i5:"f5226zp",Eqx8gd:["fa2bdqt","fei6g0k"],B1piin3:["fei6g0k","fa2bdqt"]},disabled:{sj55zd:"f1s2aq7o",Jwef8y:"f9ql6rf",ecr2s2:"fgj9um3",Bbusuzp:"f1dcs8yz"},selected:{},checkIcon:{Be2twd7:"fod5ikn",Frg6f3:["f18b9hdq","fn6qj8t"],t21cq0:["f1xk557c","f1h9en5y"],Bcdw1i0:"fd7fpy0",Bo70h7d:"fvc9v3g"},selectedCheck:{Bcdw1i0:"f1022m68"},multiselectCheck:{B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fq0vr37",h3c5rm:["f1byw159","f11cr0be"],B9xav0g:"f1c1zstj",zhjwy3:["f11cr0be","f1byw159"],Bbmb7ep:["f1g3puop","fi2rrw2"],Beyfa6y:["fi2rrw2","f1g3puop"],B7oj6ja:["f1rstyi9","f1s4nn1u"],Btl43ni:["f1s4nn1u","f1rstyi9"],B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Bt984gj:"f122n59",Brf1p80:"f4d9j23",Bkfmm31:"f1w9h62z",Be2twd7:"f1ugzwwg",Bqenvij:"fd461yt",a9b677:"fjw5fx7",Bcdw1i0:"f1022m68"},selectedMultiselectCheck:{De3pzq:"ftywsgz",sj55zd:"fqpbvvt",g2u3we:"f3xi7mh",h3c5rm:["ftovhe4","f1wczvin"],B9xav0g:"f68vbr6",zhjwy3:["f1wczvin","ftovhe4"]},checkDisabled:{sj55zd:"f1s2aq7o",Bbusuzp:"f1dcs8yz"}},{d:[".f122n59{align-items:center;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1ufnopg{column-gap:var(--spacingHorizontalXS);}",".f1k6fduh{cursor:pointer;}",".f22iagw{display:flex;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fp2oml8{padding-top:var(--spacingVerticalSNudge);}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".f1tdddsa{padding-bottom:var(--spacingVerticalSNudge);}",".f10pi13n{position:relative;}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".f1nwj1ja::after{pointer-events:none;}",".ffmd2fr::after{z-index:1;}",".f8rth92::after{border-top-style:solid;}",".flthirb::after{border-right-style:solid;}",".ftkbnf5::after{border-left-style:solid;}",".f1lh990p::after{border-bottom-style:solid;}",".fc9v8v1::after{border-top-width:2px;}",".f1mwfetb::after{border-right-width:2px;}",".f18mat8f::after{border-left-width:2px;}",".f1cb6c3::after{border-bottom-width:2px;}",".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}",".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1pix4dl::after{border-top-right-radius:var(--borderRadiusMedium);}",".f13nd1z4::after{border-top-left-radius:var(--borderRadiusMedium);}",".f1qw5sz7::after{border-top-color:var(--colorStrokeFocus2);}",".f19va7ni::after{border-right-color:var(--colorStrokeFocus2);}",".f1a9v3mw::after{border-left-color:var(--colorStrokeFocus2);}",".fkkziue::after{border-bottom-color:var(--colorStrokeFocus2);}",".f1a97anr::after{top:-2px;}",".f5226zp::after{bottom:-2px;}",".fa2bdqt::after{left:-2px;}",".fei6g0k::after{right:-2px;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".f18b9hdq{margin-left:calc(var(--spacingHorizontalXXS) * -1);}",".fn6qj8t{margin-right:calc(var(--spacingHorizontalXXS) * -1);}",".f1xk557c{margin-right:var(--spacingHorizontalXXS);}",".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}",".fd7fpy0{visibility:hidden;}",".fvc9v3g svg{display:block;}",".f1022m68{visibility:visible;}",".f192inf7{border-top-width:var(--strokeWidthThin);}",".f5tn483{border-right-width:var(--strokeWidthThin);}",".f1ojsxk5{border-left-width:var(--strokeWidthThin);}",".f1vxd6vx{border-bottom-width:var(--strokeWidthThin);}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fq0vr37{border-top-color:var(--colorNeutralStrokeAccessible);}",".f1byw159{border-right-color:var(--colorNeutralStrokeAccessible);}",".f11cr0be{border-left-color:var(--colorNeutralStrokeAccessible);}",".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}",".f1g3puop{border-bottom-right-radius:var(--borderRadiusSmall);}",".fi2rrw2{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1rstyi9{border-top-right-radius:var(--borderRadiusSmall);}",".f1s4nn1u{border-top-left-radius:var(--borderRadiusSmall);}",".f1ewtqcl{box-sizing:border-box;}",".f4d9j23{justify-content:center;}",".f1w9h62z{fill:currentColor;}",".f1ugzwwg{font-size:12px;}",".fd461yt{height:16px;}",".fjw5fx7{width:16px;}",".ftywsgz{background-color:var(--colorCompoundBrandBackground);}",".fqpbvvt{color:var(--colorNeutralForegroundInverted);}",".f3xi7mh{border-top-color:var(--colorCompoundBrandBackground);}",".ftovhe4{border-right-color:var(--colorCompoundBrandBackground);}",".f1wczvin{border-left-color:var(--colorCompoundBrandBackground);}",".f68vbr6{border-bottom-color:var(--colorCompoundBrandBackground);}"],h:[".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}",".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}"],a:[".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}",".fgj9um3:active{background-color:var(--colorTransparentBackground);}"],m:[["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),useOptionStyles_unstable=j=>{const{active:_e,disabled:et,focusVisible:tt,multiselect:rt,selected:nt}=j,ot=useStyles$r();return j.root.className=mergeClasses(optionClassNames.root,ot.root,_e&&tt&&ot.active,et&&ot.disabled,nt&&ot.selected,j.root.className),j.checkIcon&&(j.checkIcon.className=mergeClasses(optionClassNames.checkIcon,ot.checkIcon,rt&&ot.multiselectCheck,nt&&ot.selectedCheck,nt&&rt&&ot.selectedMultiselectCheck,et&&ot.checkDisabled,j.checkIcon.className)),j},Option$2=reactExports.forwardRef((j,_e)=>{const et=useOption_unstable(j,_e);return useOptionStyles_unstable(et),useCustomStyleHook("useOptionStyles_unstable")(et),renderOption_unstable(et)});Option$2.displayName="Option";const useComboboxBaseState=j=>{const{appearance:_e="outline",children:et,editable:tt=!1,inlinePopup:rt=!1,mountNode:nt=void 0,multiselect:ot,onOpenChange:it,size:st="medium"}=j,lt=useOptionCollection(),{getOptionAtIndex:ut,getOptionsMatchingValue:ct}=lt,[dt,ft]=reactExports.useState(),[pt,gt]=reactExports.useState(!1),[vt,bt]=reactExports.useState(!1),_t=reactExports.useRef(!1),xt=useSelection(j),{selectedOptions:yt}=xt,Et=useFirstMount(),[St,$t]=useControllableState({state:j.value,initialState:void 0}),At=reactExports.useMemo(()=>{if(St!==void 0)return St;if(Et&&j.defaultValue!==void 0)return j.defaultValue;const Ot=ct(Nt=>yt.includes(Nt)).map(Nt=>Nt.text);return ot?tt?"":Ot.join(", "):Ot[0]},[St,tt,ct,ot,j.defaultValue,yt]),[wt,Ct]=useControllableState({state:j.open,defaultState:j.defaultOpen,initialState:!1}),It=reactExports.useCallback((Ot,Nt)=>{it==null||it(Ot,{open:Nt}),Ct(Nt)},[it,Ct]);return reactExports.useEffect(()=>{if(wt&&!dt)if(!ot&&yt.length>0){const Ot=ct(Nt=>Nt===yt[0]).pop();Ot&&ft(Ot)}else ft(ut(0));else wt||ft(void 0)},[wt,et]),{...lt,...xt,activeOption:dt,appearance:_e,focusVisible:pt,hasFocus:vt,ignoreNextBlur:_t,inlinePopup:rt,mountNode:nt,open:wt,setActiveOption:ft,setFocusVisible:gt,setHasFocus:bt,setOpen:It,setValue:$t,size:st,value:At,multiselect:ot}};function useComboboxPositioning(j){const{positioning:_e}=j,tt={position:"below",align:"start",offset:{crossAxis:0,mainAxis:2},fallbackPositions:["above","after","after-top","before","before-top"],matchTargetSize:"width",...resolvePositioningShorthand(_e)},{targetRef:rt,containerRef:nt}=usePositioning(tt);return[nt,rt]}function useListboxSlot(j,_e,et){const{state:{multiselect:tt},triggerRef:rt,defaultProps:nt}=et,ot=useId$1("fluent-listbox",isResolvedShorthand(j)?j.id:void 0),it=optional(j,{renderByDefault:!0,elementType:Listbox$1,defaultProps:{id:ot,multiselect:tt,tabIndex:void 0,...nt}}),st=useEventCallback$3(mergeCallbacks(ct=>{ct.preventDefault()},it==null?void 0:it.onMouseDown)),lt=useEventCallback$3(mergeCallbacks(ct=>{var dt;ct.preventDefault(),(dt=rt.current)===null||dt===void 0||dt.focus()},it==null?void 0:it.onClick)),ut=useMergedRefs$1(it==null?void 0:it.ref,_e);return it&&(it.ref=ut,it.onMouseDown=st,it.onClick=lt),it}function useTriggerSlot(j,_e,et){const{state:{activeOption:tt,getCount:rt,getIndexOfId:nt,getOptionAtIndex:ot,open:it,selectOption:st,setActiveOption:lt,setFocusVisible:ut,setOpen:ct,multiselect:dt},defaultProps:ft,elementType:pt}=et,gt=always(j,{defaultProps:{type:"text","aria-expanded":it,"aria-activedescendant":it?tt==null?void 0:tt.id:void 0,role:"combobox",...typeof ft=="object"&&ft},elementType:pt}),vt=reactExports.useRef(null);return gt.ref=useMergedRefs$1(vt,gt.ref,_e),gt.onBlur=mergeCallbacks(bt=>{ct(bt,!1)},gt.onBlur),gt.onClick=mergeCallbacks(bt=>{ct(bt,!it)},gt.onClick),gt.onKeyDown=mergeCallbacks(bt=>{const _t=getDropdownActionFromKey(bt,{open:it,multiselect:dt}),xt=rt()-1,yt=tt?nt(tt.id):-1;let Et=yt;switch(_t){case"Open":bt.preventDefault(),ut(!0),ct(bt,!0);break;case"Close":bt.stopPropagation(),bt.preventDefault(),ct(bt,!1);break;case"CloseSelect":!dt&&!(tt!=null&&tt.disabled)&&ct(bt,!1);case"Select":tt&&st(bt,tt),bt.preventDefault();break;case"Tab":!dt&&tt&&st(bt,tt);break;default:Et=getIndexFromAction(_t,yt,xt)}Et!==yt&&(bt.preventDefault(),lt(ot(Et)),ut(!0))},gt.onKeyDown),gt.onMouseOver=mergeCallbacks(bt=>{ut(!1)},gt.onMouseOver),gt}function useInputTriggerSlot(j,_e,et){const{state:{open:tt,value:rt,activeOption:nt,selectOption:ot,setValue:it,setActiveOption:st,setFocusVisible:lt,multiselect:ut,selectedOptions:ct,clearSelection:dt,getOptionsMatchingText:ft,getIndexOfId:pt,setOpen:gt},freeform:vt,defaultProps:bt}=et,_t=It=>{!tt&&!vt&&(rt&&nt&&rt.trim().toLowerCase()===(nt==null?void 0:nt.text.toLowerCase())&&ot(It,nt),it(void 0))},xt=It=>{const Ot=It==null?void 0:It.trim().toLowerCase();if(!Ot||Ot.length===0)return;const Pt=ft(Rt=>Rt.toLowerCase().indexOf(Ot)===0);if(Pt.length>1&&nt){const Rt=pt(nt.id),Lt=Pt.find(jt=>pt(jt.id)>=Rt);return Lt??Pt[0]}var Mt;return(Mt=Pt[0])!==null&&Mt!==void 0?Mt:void 0},yt=It=>{const Ot=It.target.value;it(Ot);const Nt=xt(Ot);st(Nt),lt(!0),!ut&&ct.length===1&&(Ot.length<1||!Nt)&&dt(It)},Et=useTriggerSlot(j,_e,{state:et.state,defaultProps:bt,elementType:"input"});Et.onChange=mergeCallbacks(Et.onChange,yt),Et.onBlur=mergeCallbacks(Et.onBlur,_t);const[St,$t]=reactExports.useState(!1),At=reactExports.useRef(!1),wt=Et.onKeyDown,Ct=useEventCallback$3(It=>{!tt&&getDropdownActionFromKey(It)==="Type"&>(It,!0),It.key===ArrowLeft||It.key===ArrowRight?$t(!0):$t(!1);const Ot=getDropdownActionFromKey(It,{open:tt,multiselect:ut});if(Ot==="Type"?At.current=!0:(Ot==="Open"&&It.key!==" "||Ot==="Next"||Ot==="Previous"||Ot==="First"||Ot==="Last"||Ot==="PageUp"||Ot==="PageDown")&&(At.current=!1),vt&&(At.current||!tt)&&It.key===" "){var Nt;j==null||(Nt=j.onKeyDown)===null||Nt===void 0||Nt.call(j,It);return}wt==null||wt(It)});return Et.onKeyDown=Ct,St&&(Et["aria-activedescendant"]=void 0),Et}const useCombobox_unstable=(j,_e)=>{j=useFieldControlProps_unstable(j,{supportsLabelFor:!0,supportsRequired:!0,supportsSize:!0});const et=useComboboxBaseState({...j,editable:!0}),{open:tt,selectOption:rt,setOpen:nt,setValue:ot,value:it}=et,[st,lt]=useComboboxPositioning(j),{disabled:ut,freeform:ct,inlinePopup:dt}=j,ft=useId$1("combobox-"),{primary:pt,root:gt}=getPartitionedNativeProps({props:j,primarySlotTagName:"input",excludedPropNames:["children","size"]});et.selectOption=(wt,Ct)=>{ot(void 0),rt(wt,Ct)},et.setOpen=(wt,Ct)=>{ut||(!Ct&&!ct&&ot(void 0),nt(wt,Ct))};const vt=reactExports.useRef(null),bt=useListboxSlot(j.listbox,st,{state:et,triggerRef:vt,defaultProps:{children:j.children}});var _t;const xt=useInputTriggerSlot((_t=j.input)!==null&&_t!==void 0?_t:{},useMergedRefs$1(vt,_e),{state:et,freeform:ct,defaultProps:{type:"text",value:it??"",...pt}}),yt=always(j.root,{defaultProps:{"aria-owns":!dt&&tt?bt==null?void 0:bt.id:void 0,...gt},elementType:"div"});yt.ref=useMergedRefs$1(yt.ref,lt);const Et={components:{root:"div",input:"input",expandIcon:"span",listbox:Listbox$1},root:yt,input:xt,listbox:tt?bt:void 0,expandIcon:optional(j.expandIcon,{renderByDefault:!0,defaultProps:{"aria-expanded":tt,children:reactExports.createElement(ChevronDownRegular,null),role:"button"},elementType:"span"}),...et},{onMouseDown:St}=Et.expandIcon||{},$t=useEventCallback$3(mergeCallbacks(St,wt=>{var Ct;wt.preventDefault(),Et.setOpen(wt,!Et.open),(Ct=vt.current)===null||Ct===void 0||Ct.focus()}));if(Et.expandIcon){Et.expandIcon.onMouseDown=$t;const wt=Et.expandIcon["aria-label"]||Et.expandIcon["aria-labelledby"],Ct="Open";if(!wt)if(j["aria-labelledby"]){var At;const It=(At=Et.expandIcon.id)!==null&&At!==void 0?At:`${ft}-chevron`,Ot=`${It} ${Et.input["aria-labelledby"]}`;Et.expandIcon["aria-label"]=Ct,Et.expandIcon.id=It,Et.expandIcon["aria-labelledby"]=Ot}else j["aria-label"]?Et.expandIcon["aria-label"]=`${Ct} ${j["aria-label"]}`:Et.expandIcon["aria-label"]=Ct}return Et},renderCombobox_unstable=(j,_e)=>jsx$1(j.root,{children:jsxs(ComboboxContext.Provider,{value:_e.combobox,children:[jsx$1(j.input,{}),j.expandIcon&&jsx$1(j.expandIcon,{}),j.listbox&&(j.inlinePopup?jsx$1(j.listbox,{}):jsx$1(Portal$1,{mountNode:j.mountNode,children:jsx$1(j.listbox,{})}))]})}),comboboxClassNames={root:"fui-Combobox",input:"fui-Combobox__input",expandIcon:"fui-Combobox__expandIcon",listbox:"fui-Combobox__listbox"},useStyles$q=__styles({root:{Bt984gj:"f122n59",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B7ck84d:"f1ewtqcl",i8kkvl:"f14mj54c",mc9l5x:"fwk3njj",Budl1dq:"fz17x9o",Brf1p80:"f1869bpl",Bf4jedk:"f1exfvgq",qhf8xq:"f10pi13n",Bbr2w1p:"f14a1fxs",Bduesf4:"f3e99gv",Bpq79vn:"fhljsf7",li1rpt:"f1gw3sf2",Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9",Eqx8gd:["f1a7op3","f1cjjd47"],By385i5:"f1gboi2j",B1piin3:["f1cjjd47","f1a7op3"],Dlnsje:"f145g4dw",d9w3h3:["f1kp91vd","f1ibwz09"],B3778ie:["f1ibwz09","f1kp91vd"],Bcgy8vk:"f14pi962",Bw17bha:"f1lh990p",B1q35kw:"f1jc6hxc",Gjdm7m:"f13evtba",b1kco5:"f1yk9hq",Ba2ppi3:"fhwpy7i",F2fol1:"f14ee0xe",lck23g:"f1xhbsuh",df92cz:"fv8e3ye",I188md:"ftb5wc6",umuwi5:"fjw5xc1",Blcqepd:"f1xdyd5c",nplu4u:"fatpbeo",Bioka5o:"fb7uyps",H713fs:"f1cmft4k",B9ooomg:"f1x58t8o",Bercvud:"f1ibeo51"},listbox:{E5pizo:"f1hg901r",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],Bxyxcbc:"fmmk62d",B7ck84d:"f1ewtqcl"},listboxCollapsed:{mc9l5x:"fjseox"},small:{z189sj:["fdw0yi8","fk8j09s"]},medium:{z189sj:["f11gcy0p","f1ng84yb"]},large:{i8kkvl:"f1rjii52",z189sj:["fw5db7e","f1uw59to"]},outline:{De3pzq:"fxugw4r",B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fj3muxo",h3c5rm:["f1akhkt","f1lxtadh"],B9xav0g:"f1c1zstj",zhjwy3:["f1lxtadh","f1akhkt"]},outlineInteractive:{Bgoe8wy:"fvcxoqz",Bwzppfd:["f1ub3y4t","f1m52nbi"],oetu4i:"flmw63s",gg5e9n:["f1m52nbi","f1ub3y4t"],B6oc9vd:"fvs00aa",ak43y8:["f1assf6x","f4ruux4"],wmxk5l:"fqhmt4z",B50zh58:["f4ruux4","f1assf6x"]},underline:{De3pzq:"f1c21dwh",Bn0qgzm:"f1vxd6vx",oivjwe:"fg706s2",B9xav0g:"f1c1zstj",Bbmb7ep:["f1krrbdw","f1deotkl"],Beyfa6y:["f1deotkl","f1krrbdw"],B7oj6ja:["f10ostut","f1ozlkrg"],Btl43ni:["f1ozlkrg","f10ostut"]},"filled-lighter":{De3pzq:"fxugw4r",B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},"filled-darker":{De3pzq:"f16xq7d1",B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},invalid:{tvckwq:"fs4k3qj",gk2u95:["fcee079","fmyw78r"],hhx65j:"f1fgmyf4",Bxowmz0:["fmyw78r","fcee079"]},invalidUnderline:{hhx65j:"f1fgmyf4"},disabled:{Bceei9c:"fdrzuqr",De3pzq:"f1c21dwh",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"]}},{d:[".f122n59{align-items:center;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f1ewtqcl{box-sizing:border-box;}",".f14mj54c{column-gap:var(--spacingHorizontalXXS);}",".fwk3njj{display:inline-grid;}",".fz17x9o{grid-template-columns:1fr auto;}",".f1869bpl{justify-content:space-between;}",".f1exfvgq{min-width:250px;}",".f10pi13n{position:relative;}",".f1gw3sf2::after{box-sizing:border-box;}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".f1a7op3::after{left:-1px;}",".f1cjjd47::after{right:-1px;}",".f1gboi2j::after{bottom:-1px;}",".f145g4dw::after{height:max(2px, var(--borderRadiusMedium));}",".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}",".f14pi962::after{border-bottom-width:var(--strokeWidthThick);}",".f1lh990p::after{border-bottom-style:solid;}",".f1jc6hxc::after{border-bottom-color:var(--colorCompoundBrandStroke);}",".f13evtba::after{clip-path:inset(calc(100% - 2px) 0 0 0);}",".f1yk9hq::after{transform:scaleX(0);}",".fhwpy7i::after{transition-property:transform;}",".f14ee0xe::after{transition-duration:var(--durationUltraFast);}",".f1xhbsuh::after{transition-delay:var(--curveAccelerateMid);}",".f1hg901r{box-shadow:var(--shadow16);}",".fmmk62d{max-height:80vh;}",".fjseox{display:none;}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",".fw5db7e{padding-right:var(--spacingHorizontalM);}",".f1uw59to{padding-left:var(--spacingHorizontalM);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f192inf7{border-top-width:var(--strokeWidthThin);}",".f5tn483{border-right-width:var(--strokeWidthThin);}",".f1ojsxk5{border-left-width:var(--strokeWidthThin);}",".f1vxd6vx{border-bottom-width:var(--strokeWidthThin);}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fj3muxo{border-top-color:var(--colorNeutralStroke1);}",".f1akhkt{border-right-color:var(--colorNeutralStroke1);}",".f1lxtadh{border-left-color:var(--colorNeutralStroke1);}",".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1krrbdw{border-bottom-right-radius:0;}",".f1deotkl{border-bottom-left-radius:0;}",".f10ostut{border-top-right-radius:0;}",".f1ozlkrg{border-top-left-radius:0;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".f16xq7d1{background-color:var(--colorNeutralBackground3);}",".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}",".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}",".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}",".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}",".fdrzuqr{cursor:not-allowed;}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}"],w:[".f14a1fxs:focus-within{outline-width:2px;}",".f3e99gv:focus-within{outline-style:solid;}",".fhljsf7:focus-within{outline-color:transparent;}",".fjw5xc1:focus-within::after{transform:scaleX(1);}",".f1xdyd5c:focus-within::after{transition-property:transform;}",".fatpbeo:focus-within::after{transition-duration:var(--durationNormal);}",".fb7uyps:focus-within::after{transition-delay:var(--curveDecelerateMid);}",".f1ibeo51:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}"],m:[["@media screen and (prefers-reduced-motion: reduce){.fv8e3ye::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.ftb5wc6::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1cmft4k:focus-within::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1x58t8o:focus-within::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}]],h:[".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}",".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}",".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}",".flmw63s:hover{border-bottom-color:var(--colorNeutralStrokeAccessible);}"],a:[".fvs00aa:active{border-top-color:var(--colorNeutralStroke1Pressed);}",".f1assf6x:active{border-right-color:var(--colorNeutralStroke1Pressed);}",".f4ruux4:active{border-left-color:var(--colorNeutralStroke1Pressed);}",".fqhmt4z:active{border-bottom-color:var(--colorNeutralStrokeAccessible);}"]}),useInputStyles$1=__styles({input:{De3pzq:"f1c21dwh",B4j52fo:"fre7gi1",Bekrc4i:["f1358rze","f1rvrf73"],Bn0qgzm:"fqdk4by",ibv6hh:["f1rvrf73","f1358rze"],sj55zd:"f19n0e5",Bahqtrf:"fk6fouc",Brovlpu:"ftqa4ok",yvdlaj:"fwyc1cq",B3o7kgh:"f13ta7ih"},small:{Bqenvij:"f50nw0v",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1xile11","fqznh8f"]},medium:{Bqenvij:"f1tvdnth",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1e60jzv","f135dnwl"]},large:{Bqenvij:"f1ihhdec",Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["fnphzt9","flt1dlf"]},disabled:{sj55zd:"f1s2aq7o",De3pzq:"f1c21dwh",Bceei9c:"fdrzuqr",yvdlaj:"fahhnxm"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",".fre7gi1{border-top-width:0;}",".f1358rze{border-right-width:0;}",".f1rvrf73{border-left-width:0;}",".fqdk4by{border-bottom-width:0;}",".f19n0e5{color:var(--colorNeutralForeground1);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fwyc1cq::-webkit-input-placeholder{color:var(--colorNeutralForeground4);}",".fwyc1cq::-moz-placeholder{color:var(--colorNeutralForeground4);}",".f13ta7ih::-webkit-input-placeholder{opacity:1;}",".f13ta7ih::-moz-placeholder{opacity:1;}",".f50nw0v{height:22px;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1qch9an{padding-bottom:0;}",".f1xile11{padding-left:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".fqznh8f{padding-right:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".f1tvdnth{height:30px;}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1e60jzv{padding-left:calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS));}",".f135dnwl{padding-right:calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS));}",".f1ihhdec{height:38px;}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fnphzt9{padding-left:calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}",".flt1dlf{padding-right:calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}",".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}"],f:[".ftqa4ok:focus{outline-style:none;}"]}),useIconStyles$1=__styles({icon:{B7ck84d:"f1ewtqcl",sj55zd:"fxkbij4",Bceei9c:"f1k6fduh",mc9l5x:"ftgm304",Be2twd7:"f1pp30po",Bo70h7d:"fvc9v3g"},small:{Be2twd7:"f4ybsrx",Frg6f3:["f1h9en5y","f1xk557c"]},medium:{Be2twd7:"fe5j1ua",Frg6f3:["f1h9en5y","f1xk557c"]},large:{Be2twd7:"f1rt2boy",Frg6f3:["f1t5qyk5","f1ikr372"]},disabled:{sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr"}},{d:[".f1ewtqcl{box-sizing:border-box;}",".fxkbij4{color:var(--colorNeutralStrokeAccessible);}",".f1k6fduh{cursor:pointer;}",".ftgm304{display:block;}",".f1pp30po{font-size:var(--fontSizeBase500);}",".fvc9v3g svg{display:block;}",".f4ybsrx{font-size:16px;}",".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}",".f1xk557c{margin-right:var(--spacingHorizontalXXS);}",".fe5j1ua{font-size:20px;}",".f1rt2boy{font-size:24px;}",".f1t5qyk5{margin-left:var(--spacingHorizontalSNudge);}",".f1ikr372{margin-right:var(--spacingHorizontalSNudge);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}"]}),useComboboxStyles_unstable=j=>{const{appearance:_e,open:et,size:tt}=j,rt=`${j.input["aria-invalid"]}`=="true",nt=j.input.disabled,ot=useStyles$q(),it=useIconStyles$1(),st=useInputStyles$1();return j.root.className=mergeClasses(comboboxClassNames.root,ot.root,ot[_e],ot[tt],!nt&&_e==="outline"&&ot.outlineInteractive,rt&&_e!=="underline"&&ot.invalid,rt&&_e==="underline"&&ot.invalidUnderline,nt&&ot.disabled,j.root.className),j.input.className=mergeClasses(comboboxClassNames.input,st.input,st[tt],nt&&st.disabled,j.input.className),j.listbox&&(j.listbox.className=mergeClasses(comboboxClassNames.listbox,ot.listbox,!et&&ot.listboxCollapsed,j.listbox.className)),j.expandIcon&&(j.expandIcon.className=mergeClasses(comboboxClassNames.expandIcon,it.icon,it[tt],nt&&it.disabled,j.expandIcon.className)),j},Combobox=reactExports.forwardRef((j,_e)=>{const et=useCombobox_unstable(j,_e),tt=useComboboxContextValues(et);return useComboboxStyles_unstable(et),useCustomStyleHook("useComboboxStyles_unstable")(et),renderCombobox_unstable(et,tt)});Combobox.displayName="Combobox";const useOptionGroup_unstable=(j,_e)=>{const et=useId$1("group-label"),{label:tt}=j;return{components:{root:"div",label:"span"},root:always(getIntrinsicElementProps("div",{ref:_e,role:"group","aria-labelledby":tt?et:void 0,...j}),{elementType:"div"}),label:optional(tt,{defaultProps:{id:et,role:"presentation"},elementType:"span"})}},renderOptionGroup_unstable=j=>jsxs(j.root,{children:[j.label&&jsx$1(j.label,{children:j.label.children}),j.root.children]}),optionGroupClassNames={root:"fui-OptionGroup",label:"fui-OptionGroup__label"},useStyles$p=__styles({root:{mc9l5x:"f22iagw",Beiy3e4:"f1vx9l62",Belr9w4:"fiut8dr",B8lkq7l:"f1xxzjds",Gwp8xu:"fu19d3i",H93o2g:"flylvvz",eii1in:"f1ug5m11",om0q45:"f5642y",Hl9o3s:"ffdf81h",Bi9x0x4:"flgyru6",B0i58d9:["f1fjgumo","f1sgo0dv"],sl1c2c:"fwsdxdw",z4hxbw:["f1sgo0dv","f1fjgumo"]},label:{Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],sj55zd:"f11d4kpn",mc9l5x:"ftgm304",Be2twd7:"fy9rknc",Bhrd7zp:"fl43uef",Bg96gwp:"fwrc4pm",z8tnut:"f17mpqex",z189sj:["fdw0yi8","fk8j09s"],Byoj8tv:"fdvome7",uwmqm3:["fk8j09s","fdw0yi8"]}},{d:[".f22iagw{display:flex;}",".f1vx9l62{flex-direction:column;}",".fiut8dr{row-gap:var(--spacingHorizontalXXS);}",'.f1xxzjds:not(:last-child)::after{content:"";}',".fu19d3i:not(:last-child)::after{border-bottom-width:var(--strokeWidthThin);}",".flylvvz:not(:last-child)::after{border-bottom-style:solid;}",".f1ug5m11:not(:last-child)::after{border-bottom-color:var(--colorNeutralStroke2);}",".f5642y:not(:last-child)::after{display:block;}",".ffdf81h:not(:last-child)::after{padding-bottom:var(--spacingHorizontalXS);}",".flgyru6:not(:last-child)::after{margin-top:0;}",".f1fjgumo:not(:last-child)::after{margin-right:calc(var(--spacingHorizontalXS) * -1);}",".f1sgo0dv:not(:last-child)::after{margin-left:calc(var(--spacingHorizontalXS) * -1);}",".fwsdxdw:not(:last-child)::after{margin-bottom:var(--spacingVerticalXS);}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f11d4kpn{color:var(--colorNeutralForeground3);}",".ftgm304{display:block;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f17mpqex{padding-top:var(--spacingHorizontalS);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".fdvome7{padding-bottom:var(--spacingHorizontalS);}"]}),useOptionGroupStyles_unstable=j=>{const _e=useStyles$p();return j.root.className=mergeClasses(optionGroupClassNames.root,_e.root,j.root.className),j.label&&(j.label.className=mergeClasses(optionGroupClassNames.label,_e.label,j.label.className)),j},OptionGroup=reactExports.forwardRef((j,_e)=>{const et=useOptionGroup_unstable(j,_e);return useOptionGroupStyles_unstable(et),useCustomStyleHook("useOptionGroupStyles_unstable")(et),renderOptionGroup_unstable(et)});OptionGroup.displayName="OptionGroup";const renderDivider_unstable=j=>jsx$1(j.root,{children:j.root.children!==void 0&&jsx$1(j.wrapper,{children:j.root.children})}),useDivider_unstable=(j,_e)=>{const{alignContent:et="center",appearance:tt="default",inset:rt=!1,vertical:nt=!1,wrapper:ot}=j,it=useId$1("divider-");return{alignContent:et,appearance:tt,inset:rt,vertical:nt,components:{root:"div",wrapper:"div"},root:always(getIntrinsicElementProps("div",{role:"separator","aria-orientation":nt?"vertical":"horizontal","aria-labelledby":j.children?it:void 0,...j,ref:_e}),{elementType:"div"}),wrapper:always(ot,{defaultProps:{id:it,children:j.children},elementType:"div"})}},dividerClassNames={root:"fui-Divider",wrapper:"fui-Divider__wrapper"},useBaseStyles=__styles({base:{Bt984gj:"f122n59",B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Beiy3e4:"f1063pyq",Bh6795r:"fqerorx",qhf8xq:"f10pi13n",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm",fsow6f:"f17mccla",Bcvre1j:"fyl8oag",Br0sdwz:"f16vkdww",Bn78ew0:"fhsnbul",li1rpt:"f1gw3sf2",ap17g6:"f1ly5f7u",B771hl4:"f1s3tz6t"},childless:{susq4k:"f1kyqvp9",Bicfajf:["fzynn9s","f1z0ukd1"],jwcpgy:["fekrn8e","ftdg338"],B4rk6o:"fesgyo"},start:{Bsft5z2:"f13zj6fq"},center:{Ftih45:"f1wl9k8s",Bsft5z2:"f13zj6fq"},end:{Ftih45:"f1wl9k8s"},brand:{sj55zd:"f16muhyy",Bq4z7u6:"fcbuu2a",Bk5zm6e:["f1wdw2dr","f1ttio3w"],Bqjgrrk:"f1582fpk",Bm6vgfq:["f1ttio3w","f1wdw2dr"],B0n5ga8:"f1ahrvm8",s924m2:["f1cd3wbc","f17hbk9y"],B1q35kw:"fvrapl0",Gp14am:["f17hbk9y","f1cd3wbc"]},default:{sj55zd:"fkfq4zb",Bq4z7u6:"f1vccso1",Bk5zm6e:["f1geml7w","fjml6kk"],Bqjgrrk:"f1r7kh1m",Bm6vgfq:["fjml6kk","f1geml7w"],B0n5ga8:"f16j7guv",s924m2:["fx01ahm","fj1a37q"],B1q35kw:"fl8d8yv",Gp14am:["fj1a37q","fx01ahm"]},subtle:{sj55zd:"fkfq4zb",Bq4z7u6:"f5g06un",Bk5zm6e:["f13sxdku","f1n015lb"],Bqjgrrk:"f1x6bl8t",Bm6vgfq:["f1n015lb","f13sxdku"],B0n5ga8:"fvod1wy",s924m2:["fwslg65","flk0e17"],B1q35kw:"f103fvts",Gp14am:["flk0e17","fwslg65"]},strong:{sj55zd:"fkfq4zb",Bq4z7u6:"f10tv6oz",Bk5zm6e:["f16xp3sf","f1seuxxq"],Bqjgrrk:"fwrmqbx",Bm6vgfq:["f1seuxxq","f16xp3sf"],B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"]}},{d:[".f122n59{align-items:center;}",".f1ewtqcl{box-sizing:border-box;}",".f22iagw{display:flex;}",".f1063pyq{flex-direction:row;}",".fqerorx{flex-grow:1;}",".f10pi13n{position:relative;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f17mccla{text-align:center;}",".fyl8oag::before{box-sizing:border-box;}",".f16vkdww::before{display:flex;}",".fhsnbul::before{flex-grow:1;}",".f1gw3sf2::after{box-sizing:border-box;}",".f1ly5f7u::after{display:flex;}",".f1s3tz6t::after{flex-grow:1;}",".f1kyqvp9::before{margin-bottom:0;}",".fzynn9s::before{margin-right:0;}",".f1z0ukd1::before{margin-left:0;}",".fekrn8e::after{margin-left:0;}",".ftdg338::after{margin-right:0;}",".fesgyo::after{margin-top:0;}",'.f13zj6fq::after{content:"";}','.f1wl9k8s::before{content:"";}',".f16muhyy{color:var(--colorBrandForeground1);}",".fcbuu2a::before{border-top-color:var(--colorBrandStroke1);}",".f1wdw2dr::before{border-right-color:var(--colorBrandStroke1);}",".f1ttio3w::before{border-left-color:var(--colorBrandStroke1);}",".f1582fpk::before{border-bottom-color:var(--colorBrandStroke1);}",".f1ahrvm8::after{border-top-color:var(--colorBrandStroke1);}",".f1cd3wbc::after{border-right-color:var(--colorBrandStroke1);}",".f17hbk9y::after{border-left-color:var(--colorBrandStroke1);}",".fvrapl0::after{border-bottom-color:var(--colorBrandStroke1);}",".fkfq4zb{color:var(--colorNeutralForeground2);}",".f1vccso1::before{border-top-color:var(--colorNeutralStroke2);}",".f1geml7w::before{border-right-color:var(--colorNeutralStroke2);}",".fjml6kk::before{border-left-color:var(--colorNeutralStroke2);}",".f1r7kh1m::before{border-bottom-color:var(--colorNeutralStroke2);}",".f16j7guv::after{border-top-color:var(--colorNeutralStroke2);}",".fx01ahm::after{border-right-color:var(--colorNeutralStroke2);}",".fj1a37q::after{border-left-color:var(--colorNeutralStroke2);}",".fl8d8yv::after{border-bottom-color:var(--colorNeutralStroke2);}",".f5g06un::before{border-top-color:var(--colorNeutralStroke3);}",".f13sxdku::before{border-right-color:var(--colorNeutralStroke3);}",".f1n015lb::before{border-left-color:var(--colorNeutralStroke3);}",".f1x6bl8t::before{border-bottom-color:var(--colorNeutralStroke3);}",".fvod1wy::after{border-top-color:var(--colorNeutralStroke3);}",".fwslg65::after{border-right-color:var(--colorNeutralStroke3);}",".flk0e17::after{border-left-color:var(--colorNeutralStroke3);}",".f103fvts::after{border-bottom-color:var(--colorNeutralStroke3);}",".f10tv6oz::before{border-top-color:var(--colorNeutralStroke1);}",".f16xp3sf::before{border-right-color:var(--colorNeutralStroke1);}",".f1seuxxq::before{border-left-color:var(--colorNeutralStroke1);}",".fwrmqbx::before{border-bottom-color:var(--colorNeutralStroke1);}",".ft83z1f::after{border-top-color:var(--colorNeutralStroke1);}",".f1g4150c::after{border-right-color:var(--colorNeutralStroke1);}",".f192dr6e::after{border-left-color:var(--colorNeutralStroke1);}",".f1qnawh6::after{border-bottom-color:var(--colorNeutralStroke1);}"]}),useHorizontalStyles=__styles({base:{a9b677:"fly5x3f",Bdkvgpv:"f163fonl",B0qfbqy:"f51yk4v",pbipgd:"f13rof3u",Bm2nyyq:"f8rth92",xrcqlc:"f6czdpx",i5u598:"f1iyka9k"},inset:{uwmqm3:["fjlbh76","f11qrl6u"],z189sj:["f11qrl6u","fjlbh76"]},start:{Ftih45:"f1wl9k8s",Bicfajf:["f1ojjlep","fk1kexq"],Bxwl2t9:"f1he2m4d",jwcpgy:["f12w1bnb","f1558wlj"]},center:{Bicfajf:["f1ojjlep","fk1kexq"],jwcpgy:["f12w1bnb","f1558wlj"]},end:{Bicfajf:["f1ojjlep","fk1kexq"],Bsft5z2:"f13zj6fq",jwcpgy:["f12w1bnb","f1558wlj"],Iy66sp:"f1ayce8x"}},{d:[".fly5x3f{width:100%;}",".f163fonl::before{border-top-style:solid;}",".f51yk4v::before{border-top-width:var(--strokeWidthThin);}",".f13rof3u::before{min-width:8px;}",".f8rth92::after{border-top-style:solid;}",".f6czdpx::after{border-top-width:var(--strokeWidthThin);}",".f1iyka9k::after{min-width:8px;}",".fjlbh76{padding-left:12px;}",".f11qrl6u{padding-right:12px;}",'.f1wl9k8s::before{content:"";}',".f1ojjlep::before{margin-right:12px;}",".fk1kexq::before{margin-left:12px;}",".f1he2m4d::before{max-width:8px;}",".f12w1bnb::after{margin-left:12px;}",".f1558wlj::after{margin-right:12px;}",'.f13zj6fq::after{content:"";}',".f1ayce8x::after{max-width:8px;}"]}),useVerticalStyles=__styles({base:{Beiy3e4:"f1vx9l62",sshi5w:"f16gbxbe",m598lv:["f1yq6w5o","f1jpmc5p"],B4f6apu:["f9sc749","f1x8pvcy"],zkzzav:"fhkwbjy",Barhvk9:["flthirb","ftkbnf5"],Ihftqj:["f13hvwk3","f1en4csx"],Bde111x:"f19onpk6"},inset:{B6of3ja:"f1xdg43u",jrapky:"f1jlhsmd"},withChildren:{sshi5w:"f1tjaq3g"},start:{Ftih45:"f1wl9k8s",susq4k:"fg2pwug",Bbdr6tz:"fkjtzyi",B4rk6o:"f8vk40g"},center:{susq4k:"fg2pwug",B4rk6o:"f8vk40g"},end:{susq4k:"fg2pwug",Bsft5z2:"f13zj6fq",B4rk6o:"f8vk40g",gn64ia:"fqg5mu5"}},{d:[".f1vx9l62{flex-direction:column;}",".f16gbxbe{min-height:20px;}",".f1yq6w5o::before{border-right-style:solid;}",".f1jpmc5p::before{border-left-style:solid;}",".f9sc749::before{border-right-width:var(--strokeWidthThin);}",".f1x8pvcy::before{border-left-width:var(--strokeWidthThin);}",".fhkwbjy::before{min-height:8px;}",".flthirb::after{border-right-style:solid;}",".ftkbnf5::after{border-left-style:solid;}",".f13hvwk3::after{border-right-width:var(--strokeWidthThin);}",".f1en4csx::after{border-left-width:var(--strokeWidthThin);}",".f19onpk6::after{min-height:8px;}",".f1xdg43u{margin-top:12px;}",".f1jlhsmd{margin-bottom:12px;}",".f1tjaq3g{min-height:84px;}",'.f1wl9k8s::before{content:"";}',".fg2pwug::before{margin-bottom:12px;}",".fkjtzyi::before{max-height:8px;}",".f8vk40g::after{margin-top:12px;}",'.f13zj6fq::after{content:"";}',".fqg5mu5::after{max-height:8px;}"]}),useDividerStyles_unstable=j=>{const _e=useBaseStyles(),et=useHorizontalStyles(),tt=useVerticalStyles(),{alignContent:rt,appearance:nt,inset:ot,vertical:it}=j;return j.root.className=mergeClasses(dividerClassNames.root,_e.base,_e[rt],nt&&_e[nt],!it&&et.base,!it&&ot&&et.inset,!it&&et[rt],it&&tt.base,it&&ot&&tt.inset,it&&tt[rt],it&&j.root.children!==void 0&&tt.withChildren,j.root.children===void 0&&_e.childless,j.root.className),j.wrapper&&(j.wrapper.className=mergeClasses(dividerClassNames.wrapper,j.wrapper.className)),j},Divider$2=reactExports.forwardRef((j,_e)=>{const et=useDivider_unstable(j,_e);return useDividerStyles_unstable(et),useCustomStyleHook("useDividerStyles_unstable")(et),renderDivider_unstable(et)});Divider$2.displayName="Divider";const useInput_unstable=(j,_e)=>{j=useFieldControlProps_unstable(j,{supportsLabelFor:!0,supportsRequired:!0,supportsSize:!0});const et=useOverrides();var tt;const{size:rt="medium",appearance:nt=(tt=et.inputDefaultAppearance)!==null&&tt!==void 0?tt:"outline",onChange:ot}=j,[it,st]=useControllableState({state:j.value,defaultState:j.defaultValue,initialState:""}),lt=getPartitionedNativeProps({props:j,primarySlotTagName:"input",excludedPropNames:["size","onChange","value","defaultValue"]}),ut={size:rt,appearance:nt,components:{root:"span",input:"input",contentBefore:"span",contentAfter:"span"},input:always(j.input,{defaultProps:{type:"text",ref:_e,...lt.primary},elementType:"input"}),contentAfter:optional(j.contentAfter,{elementType:"span"}),contentBefore:optional(j.contentBefore,{elementType:"span"}),root:always(j.root,{defaultProps:lt.root,elementType:"span"})};return ut.input.value=it,ut.input.onChange=useEventCallback$3(ct=>{const dt=ct.target.value;ot==null||ot(ct,{value:dt}),st(dt)}),ut},renderInput_unstable=j=>jsxs(j.root,{children:[j.contentBefore&&jsx$1(j.contentBefore,{}),jsx$1(j.input,{}),j.contentAfter&&jsx$1(j.contentAfter,{})]}),inputClassNames={root:"fui-Input",input:"fui-Input__input",contentBefore:"fui-Input__contentBefore",contentAfter:"fui-Input__contentAfter"},useRootClassName=__resetStyles("r1jtohuq","rl1z2p5",{r:[".r1jtohuq{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:var(--spacingHorizontalXXS);border-radius:var(--borderRadiusMedium);position:relative;box-sizing:border-box;min-height:32px;padding:0 var(--spacingHorizontalMNudge);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);background-color:var(--colorNeutralBackground1);border:1px solid var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStrokeAccessible);}",'.r1jtohuq::after{box-sizing:border-box;content:"";position:absolute;left:-1px;bottom:-1px;right:-1px;height:max(2px, var(--borderRadiusMedium));border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-bottom:2px solid var(--colorCompoundBrandStroke);clip-path:inset(calc(100% - 2px) 0 0 0);transform:scaleX(0);transition-property:transform;transition-duration:var(--durationUltraFast);transition-delay:var(--curveAccelerateMid);}',".r1jtohuq:focus-within::after{transform:scaleX(1);transition-property:transform;transition-duration:var(--durationNormal);transition-delay:var(--curveDecelerateMid);}",".r1jtohuq:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}",".r1jtohuq:focus-within{outline:2px solid transparent;}",".rl1z2p5{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:var(--spacingHorizontalXXS);border-radius:var(--borderRadiusMedium);position:relative;box-sizing:border-box;min-height:32px;padding:0 var(--spacingHorizontalMNudge);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);background-color:var(--colorNeutralBackground1);border:1px solid var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStrokeAccessible);}",'.rl1z2p5::after{box-sizing:border-box;content:"";position:absolute;right:-1px;bottom:-1px;left:-1px;height:max(2px, var(--borderRadiusMedium));border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-bottom:2px solid var(--colorCompoundBrandStroke);clip-path:inset(calc(100% - 2px) 0 0 0);transform:scaleX(0);transition-property:transform;transition-duration:var(--durationUltraFast);transition-delay:var(--curveAccelerateMid);}',".rl1z2p5:focus-within::after{transform:scaleX(1);transition-property:transform;transition-duration:var(--durationNormal);transition-delay:var(--curveDecelerateMid);}",".rl1z2p5:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}",".rl1z2p5:focus-within{outline:2px solid transparent;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r1jtohuq::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r1jtohuq:focus-within::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.rl1z2p5::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.rl1z2p5:focus-within::after{transition-duration:0.01ms;transition-delay:0.01ms;}}"]}),useRootStyles$4=__styles({small:{sshi5w:"f1pha7fy",uwmqm3:["fk8j09s","fdw0yi8"],z189sj:["fdw0yi8","fk8j09s"],Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},medium:{},large:{sshi5w:"f1w5jphr",uwmqm3:["f1uw59to","fw5db7e"],z189sj:["fw5db7e","f1uw59to"],Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k",i8kkvl:"f1rjii52",Belr9w4:"f1r7g2jn"},outline:{},outlineInteractive:{Bgoe8wy:"fvcxoqz",Bwzppfd:["f1ub3y4t","f1m52nbi"],oetu4i:"f1l4zc64",gg5e9n:["f1m52nbi","f1ub3y4t"],Drbcw7:"f8vnjqi",udz0bu:["fz1etlk","f1hc16gm"],Be8ivqh:"f1klwx88",ofdepl:["f1hc16gm","fz1etlk"]},underline:{De3pzq:"f1c21dwh",Bbmb7ep:["f1krrbdw","f1deotkl"],Beyfa6y:["f1deotkl","f1krrbdw"],B7oj6ja:["f10ostut","f1ozlkrg"],Btl43ni:["f1ozlkrg","f10ostut"],icvyot:"f1ern45e",vrafjx:["f1n71otn","f1deefiw"],wvpqe5:["f1deefiw","f1n71otn"],Eqx8gd:["f1n6gb5g","f15yvnhg"],B1piin3:["f15yvnhg","f1n6gb5g"]},underlineInteractive:{oetu4i:"f1l4zc64",Be8ivqh:"f1klwx88",B3778ie:["f1nf3wye","feulmo5"],d9w3h3:["feulmo5","f1nf3wye"],Bl18szs:["f18vqdqu","f53nyzz"],B4j8arr:["f53nyzz","f18vqdqu"]},filled:{g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},filledInteractive:{q7v0qe:"ftmjh5b",kmh5ft:["f17blpuu","fsrcdbj"],nagaa4:"f1tpwn32",B1yhkcb:["fsrcdbj","f17blpuu"]},invalid:{tvckwq:"fs4k3qj",gk2u95:["fcee079","fmyw78r"],hhx65j:"f1fgmyf4",Bxowmz0:["fmyw78r","fcee079"]},"filled-darker":{De3pzq:"f16xq7d1"},"filled-lighter":{De3pzq:"fxugw4r"},"filled-darker-shadow":{De3pzq:"f16xq7d1",E5pizo:"fyed02w"},"filled-lighter-shadow":{De3pzq:"fxugw4r",E5pizo:"fyed02w"},disabled:{Bceei9c:"fdrzuqr",De3pzq:"f1c21dwh",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"],Bsft5z2:"fhr9occ",Bduesf4:"f99w1ws"}},{d:[".f1pha7fy{min-height:24px;}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1w5jphr{min-height:40px;}",".f1uw59to{padding-left:var(--spacingHorizontalM);}",".fw5db7e{padding-right:var(--spacingHorizontalM);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",".f1r7g2jn{row-gap:var(--spacingHorizontalSNudge);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1krrbdw{border-bottom-right-radius:0;}",".f1deotkl{border-bottom-left-radius:0;}",".f10ostut{border-top-right-radius:0;}",".f1ozlkrg{border-top-left-radius:0;}",".f1ern45e{border-top-style:none;}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",".f1nf3wye::after{border-bottom-right-radius:0;}",".feulmo5::after{border-bottom-left-radius:0;}",".f18vqdqu::after{border-top-right-radius:0;}",".f53nyzz::after{border-top-left-radius:0;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}",".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}",".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}",".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}",".f16xq7d1{background-color:var(--colorNeutralBackground3);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".fyed02w{box-shadow:var(--shadow2);}",".fdrzuqr{cursor:not-allowed;}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fhr9occ::after{content:unset;}"],h:[".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}",".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}",".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}",".f1l4zc64:hover{border-bottom-color:var(--colorNeutralStrokeAccessibleHover);}",".ftmjh5b:hover,.ftmjh5b:focus-within{border-top-color:var(--colorTransparentStrokeInteractive);}",".f17blpuu:hover,.f17blpuu:focus-within{border-right-color:var(--colorTransparentStrokeInteractive);}",".fsrcdbj:hover,.fsrcdbj:focus-within{border-left-color:var(--colorTransparentStrokeInteractive);}",".f1tpwn32:hover,.f1tpwn32:focus-within{border-bottom-color:var(--colorTransparentStrokeInteractive);}"],a:[".f8vnjqi:active,.f8vnjqi:focus-within{border-top-color:var(--colorNeutralStroke1Pressed);}",".fz1etlk:active,.fz1etlk:focus-within{border-right-color:var(--colorNeutralStroke1Pressed);}",".f1hc16gm:active,.f1hc16gm:focus-within{border-left-color:var(--colorNeutralStroke1Pressed);}",".f1klwx88:active,.f1klwx88:focus-within{border-bottom-color:var(--colorNeutralStrokeAccessiblePressed);}"],m:[["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}]],w:[".f99w1ws:focus-within{outline-style:none;}"]}),useInputClassName=__resetStyles("rvp2gzh",null,[".rvp2gzh{box-sizing:border-box;flex-grow:1;min-width:0;border-style:none;padding:0 var(--spacingHorizontalXXS);color:var(--colorNeutralForeground1);background-color:transparent;outline-style:none;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;}",".rvp2gzh::-webkit-input-placeholder{color:var(--colorNeutralForeground4);opacity:1;}",".rvp2gzh::-moz-placeholder{color:var(--colorNeutralForeground4);opacity:1;}",".rvp2gzh:-ms-input-placeholder{color:var(--colorNeutralForeground4);opacity:1;}",".rvp2gzh::placeholder{color:var(--colorNeutralForeground4);opacity:1;}"]),useInputElementStyles=__styles({large:{uwmqm3:["fk8j09s","fdw0yi8"],z189sj:["fdw0yi8","fk8j09s"]},disabled:{sj55zd:"f1s2aq7o",De3pzq:"f1c21dwh",Bceei9c:"fdrzuqr",yvdlaj:"fahhnxm"}},{d:[".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".fdrzuqr{cursor:not-allowed;}",".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}",".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}"]}),useContentClassName=__resetStyles("r1572tok",null,[".r1572tok{box-sizing:border-box;color:var(--colorNeutralForeground3);display:flex;}",".r1572tok>svg{font-size:20px;}"]),useContentStyles$1=__styles({disabled:{sj55zd:"f1s2aq7o"},small:{kwki1k:"f3u2cy0"},medium:{},large:{kwki1k:"fa420co"}},{d:[".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f3u2cy0>svg{font-size:16px;}",".fa420co>svg{font-size:24px;}"]}),useInputStyles_unstable=j=>{const{size:_e,appearance:et}=j,tt=j.input.disabled,rt=`${j.input["aria-invalid"]}`=="true",nt=et.startsWith("filled"),ot=useRootStyles$4(),it=useInputElementStyles(),st=useContentStyles$1();j.root.className=mergeClasses(inputClassNames.root,useRootClassName(),ot[_e],ot[et],!tt&&et==="outline"&&ot.outlineInteractive,!tt&&et==="underline"&&ot.underlineInteractive,!tt&&nt&&ot.filledInteractive,nt&&ot.filled,!tt&&rt&&ot.invalid,tt&&ot.disabled,j.root.className),j.input.className=mergeClasses(inputClassNames.input,useInputClassName(),_e==="large"&&it.large,tt&&it.disabled,j.input.className);const lt=[useContentClassName(),tt&&st.disabled,st[_e]];return j.contentBefore&&(j.contentBefore.className=mergeClasses(inputClassNames.contentBefore,...lt,j.contentBefore.className)),j.contentAfter&&(j.contentAfter.className=mergeClasses(inputClassNames.contentAfter,...lt,j.contentAfter.className)),j},Input=reactExports.forwardRef((j,_e)=>{const et=useInput_unstable(j,_e);return useInputStyles_unstable(et),useCustomStyleHook("useInputStyles_unstable")(et),renderInput_unstable(et)});Input.displayName="Input";const useLinkState_unstable=j=>{const{disabled:_e,disabledFocusable:et}=j,{onClick:tt,onKeyDown:rt,role:nt,tabIndex:ot}=j.root;return j.root.as==="a"&&(j.root.href=_e?void 0:j.root.href,(_e||et)&&(j.root.role=nt||"link")),(j.root.as==="a"||j.root.as==="span")&&(j.root.tabIndex=ot??(_e&&!et?void 0:0)),j.root.onClick=it=>{_e||et?it.preventDefault():tt==null||tt(it)},j.root.onKeyDown=it=>{(_e||et)&&(it.key===Enter||it.key===Space)?(it.preventDefault(),it.stopPropagation()):rt==null||rt(it)},j.disabled=_e||et,j.root["aria-disabled"]=_e||et||void 0,j.root.as==="button"&&(j.root.disabled=_e&&!et),j},useLink_unstable=(j,_e)=>{const et=useBackgroundAppearance(),{appearance:tt="default",disabled:rt=!1,disabledFocusable:nt=!1,inline:ot=!1}=j,it=j.as||(j.href?"a":"button"),st={role:it==="span"?"button":void 0,type:it==="button"?"button":void 0,...j,as:it},lt={appearance:tt,disabled:rt,disabledFocusable:nt,inline:ot,components:{root:it},root:always(getIntrinsicElementProps(it,{ref:_e,...st}),{elementType:it}),backgroundAppearance:et};return useLinkState_unstable(lt),lt},linkClassNames={root:"fui-Link"},useStyles$o=__styles({focusIndicator:{Bttzg6e:"fhgqx19",B3uz8dt:"f1olyrje",B6ihwck:"f1p93eir",g9k6zt:"f1nev41a"},root:{B486eqv:"f2hkw1w",De3pzq:"f3rmtva",B7ck84d:"f1ewtqcl",sj55zd:"fyind8e",Bceei9c:"f1k6fduh",mc9l5x:"f1w7gpdv",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",B6of3ja:"f1hu3pq6",t21cq0:["f11qmguv","f1tyq0we"],jrapky:"f19f4twv",Frg6f3:["f1tyq0we","f11qmguv"],z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1cnd47f","fhxju0i"],B68tc82:"fqv5qza",Bmxbyg5:"f1vmzxwi",fsow6f:["f1o700av","fes3tcz"],w71qe1:"f1iuv45f",Bkioxbp:"f1cmlufx",ygn44y:"f9n3di6",famaaq:"f1ids18y",Bde5pd6:"f1tx3yz7",Bi91k9c:"f1deo86v",i089h6:"f1eh06m1",lj723h:"f1iescvh"},button:{icvyot:"f1ern45e",vrafjx:["f1n71otn","f1deefiw"],oivjwe:"f1h8hb77",wvpqe5:["f1deefiw","f1n71otn"]},href:{Be2twd7:"fjoy568"},subtle:{sj55zd:"fkfq4zb",Bde5pd6:"f1tx3yz7",Bi91k9c:"fnwyq0v",i089h6:"f1eh06m1",lj723h:"flvvhsy"},inline:{w71qe1:"f13mvf36"},disabled:{w71qe1:"f1iuv45f",sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr",Bde5pd6:"fbnuktb",Bi91k9c:"fvgxktp",i089h6:"fljg2da",lj723h:"f19wldhg"},inverted:{sj55zd:"f1qz2gb0",Bi91k9c:"f1mlt8il",lj723h:"f1hsd4st"}},{d:[".fhgqx19[data-fui-focus-visible]{text-decoration-color:var(--colorStrokeFocus2);}",".f1olyrje[data-fui-focus-visible]{text-decoration-line:underline;}",".f1p93eir[data-fui-focus-visible]{text-decoration-style:double;}",".f1nev41a[data-fui-focus-visible]{outline-style:none;}",".f3rmtva{background-color:transparent;}",".f1ewtqcl{box-sizing:border-box;}",".fyind8e{color:var(--colorBrandForegroundLink);}",".f1k6fduh{cursor:pointer;}",".f1w7gpdv{display:inline;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1hu3pq6{margin-top:0;}",".f11qmguv{margin-right:0;}",".f1tyq0we{margin-left:0;}",".f19f4twv{margin-bottom:0;}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1qch9an{padding-bottom:0;}",".fqv5qza{overflow-x:inherit;}",".f1vmzxwi{overflow-y:inherit;}",".f1o700av{text-align:left;}",".fes3tcz{text-align:right;}",".f1iuv45f{text-decoration-line:none;}",".f1cmlufx{text-decoration-thickness:var(--strokeWidthThin);}",".f9n3di6{text-overflow:inherit;}",".f1ids18y{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;}",".f1ern45e{border-top-style:none;}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",".f1h8hb77{border-bottom-style:none;}",".fjoy568{font-size:inherit;}",".fkfq4zb{color:var(--colorNeutralForeground2);}",".f13mvf36{text-decoration-line:underline;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f1qz2gb0{color:var(--colorBrandForegroundInverted);}"],i:[".f2hkw1w:focus-visible{outline-style:none;}"],h:[".f1tx3yz7:hover{text-decoration-line:underline;}",".f1deo86v:hover{color:var(--colorBrandForegroundLinkHover);}",".fnwyq0v:hover{color:var(--colorNeutralForeground2Hover);}",".fbnuktb:hover{text-decoration-line:none;}",".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}",".f1mlt8il:hover{color:var(--colorBrandForegroundInvertedHover);}"],a:[".f1eh06m1:active{text-decoration-line:underline;}",".f1iescvh:active{color:var(--colorBrandForegroundLinkPressed);}",".flvvhsy:active{color:var(--colorNeutralForeground2Pressed);}",".fljg2da:active{text-decoration-line:none;}",".f19wldhg:active{color:var(--colorNeutralForegroundDisabled);}",".f1hsd4st:active{color:var(--colorBrandForegroundInvertedPressed);}"]}),useLinkStyles_unstable=j=>{const _e=useStyles$o(),{appearance:et,disabled:tt,inline:rt,root:nt,backgroundAppearance:ot}=j;return j.root.className=mergeClasses(linkClassNames.root,_e.root,_e.focusIndicator,nt.as==="a"&&nt.href&&_e.href,nt.as==="button"&&_e.button,et==="subtle"&&_e.subtle,ot==="inverted"&&_e.inverted,rt&&_e.inline,tt&&_e.disabled,j.root.className),j},renderLink_unstable=j=>jsx$1(j.root,{}),Link$1=reactExports.forwardRef((j,_e)=>{const et=useLink_unstable(j,_e);return useLinkStyles_unstable(et),renderLink_unstable(et)});Link$1.displayName="Link";const SkeletonContext=reactExports.createContext(void 0),skeletonContextDefaultValue={},SkeletonContextProvider=SkeletonContext.Provider,useSkeletonContext=()=>{var j;return(j=reactExports.useContext(SkeletonContext))!==null&&j!==void 0?j:skeletonContextDefaultValue},useSkeleton_unstable=(j,_e)=>{const{animation:et,appearance:tt}=useSkeletonContext(),{animation:rt=et??"wave",appearance:nt=tt??"opaque"}=j,ot=always(getIntrinsicElementProps("div",{ref:_e,role:"progressbar","aria-busy":!0,"aria-label":"Loading Content",...j}),{elementType:"div"});return{animation:rt,appearance:nt,components:{root:"div"},root:ot}},renderSkeleton_unstable=(j,_e)=>jsx$1(SkeletonContextProvider,{value:_e.skeletonGroup,children:jsx$1(j.root,{})}),skeletonClassNames={root:"fui-Skeleton"},useSkeletonStyles_unstable=j=>(j.root.className=mergeClasses(skeletonClassNames.root,j.root.className),j),useSkeletonContextValues=j=>{const{animation:_e,appearance:et}=j;return{skeletonGroup:reactExports.useMemo(()=>({animation:_e,appearance:et}),[_e,et])}},Skeleton=reactExports.forwardRef((j,_e)=>{const et=useSkeleton_unstable(j,_e),tt=useSkeletonContextValues(et);return useSkeletonStyles_unstable(et),renderSkeleton_unstable(et,tt)});Skeleton.displayName="Skeleton";const useSkeletonItem_unstable=(j,_e)=>{const{animation:et,appearance:tt}=useSkeletonContext(),{animation:rt=et??"wave",appearance:nt=tt??"opaque",size:ot=16,shape:it="rectangle"}=j,st=always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"});return{appearance:nt,animation:rt,size:ot,shape:it,components:{root:"div"},root:st}},renderSkeletonItem_unstable=j=>jsx$1(j.root,{}),skeletonItemClassNames={root:"fui-SkeletonItem"},useStyles$n=__styles({root:{qhf8xq:"f10pi13n",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",Bkjc3bi:"f1qx3921",B8a6bjv:"fj9j8l8",Bpptf2m:"f1b6djjb",Bgh53k4:"f1dsdmen",w3vfg9:"f1cpbl36",vin17d:"f1a27w2r",Ezkn3b:"f452v7t",Gqtpxc:"f4akx1t",B3vm3ge:"f18p5put"},wave:{Bv12yb3:"fj20wtk",Bcmaq0h:["f101ziu5","f152emvt"],Bpep1pd:"f9jxvrw"},waveRtl:{Bv12yb3:"f105t0nc",Bcmaq0h:["f101ziu5","f152emvt"],Bpep1pd:"f9jxvrw"},pulse:{Bv12yb3:"fnm2mpv",vin17d:"f1iuewzk",De3pzq:"f1gjxg63"},translucent:{Bcmaq0h:["fss7axp","f4160cw"]},translucentPulse:{De3pzq:"f162mh4z"}},{d:[".f10pi13n{position:relative;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f1qx3921{background-size:300% 100%;}",".fj9j8l8{background-position-x:center;}",".f1b6djjb{background-position-y:center;}",".f1dsdmen{background-attachment:fixed;}",".f1cpbl36{animation-iteration-count:infinite;}",".f1a27w2r{animation-duration:3s;}",".f452v7t{animation-timing-function:linear;}",".fj20wtk{animation-name:fma800j;}",`.f101ziu5{background-image:linear-gradient( + to right, + var(--colorNeutralStencil1) 0%, + var(--colorNeutralStencil2) 50%, + var(--colorNeutralStencil1) 100%);}`,`.f152emvt{background-image:linear-gradient( + to left, + var(--colorNeutralStencil1) 0%, + var(--colorNeutralStencil2) 50%, + var(--colorNeutralStencil1) 100%);}`,".f105t0nc{animation-name:fj9wi3p;}",".fnm2mpv{animation-name:f12o7gg6;}",".f1iuewzk{animation-duration:1s;}",".f1gjxg63{background-color:var(--colorNeutralStencil1);}",`.fss7axp{background-image:linear-gradient( + to right, + var(--colorNeutralStencil1Alpha) 0%, + var(--colorNeutralStencil2Alpha) 50%, + var(--colorNeutralStencil1Alpha) 100%);}`,`.f4160cw{background-image:linear-gradient( + to left, + var(--colorNeutralStencil1Alpha) 0%, + var(--colorNeutralStencil2Alpha) 50%, + var(--colorNeutralStencil1Alpha) 100%);}`,".f162mh4z{background-color:var(--colorNeutralStencil1Alpha);}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f4akx1t{animation-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f18p5put{animation-iteration-count:1;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (forced-colors: active){.f9jxvrw{background-color:WindowText;}}",{m:"screen and (forced-colors: active)"}]],k:["@keyframes fma800j{from{background-position-x:300%;}to{background-position-x:0%;}}","@keyframes fj9wi3p{from{background-position-x:0%;}to{background-position-x:300%;}}","@keyframes f12o7gg6{0%{opacity:1;}50%{opacity:0.4;}100%{opacity:1;}}"]}),useRectangleStyles=__styles({8:{Bqenvij:"f1x82gua"},12:{Bqenvij:"fvblgha"},16:{Bqenvij:"fd461yt"},20:{Bqenvij:"fjamq6b"},24:{Bqenvij:"frvgh55"},28:{Bqenvij:"fxldao9"},32:{Bqenvij:"f1d2rq10"},36:{Bqenvij:"f8ljn23"},40:{Bqenvij:"fbhnoac"},48:{Bqenvij:"ff2sm71"},56:{Bqenvij:"fzki0ko"},64:{Bqenvij:"f16k9i2m"},72:{Bqenvij:"f1shusfg"},96:{Bqenvij:"fypu0ge"},120:{Bqenvij:"fjr5b71"},128:{Bqenvij:"fele2au"},root:{a9b677:"fly5x3f",Bbmb7ep:["fff7au0","f1bjk9e1"],Beyfa6y:["f1bjk9e1","fff7au0"],B7oj6ja:["fwsfkhu","f8wkphi"],Btl43ni:["f8wkphi","fwsfkhu"]}},{d:[".f1x82gua{height:8px;}",".fvblgha{height:12px;}",".fd461yt{height:16px;}",".fjamq6b{height:20px;}",".frvgh55{height:24px;}",".fxldao9{height:28px;}",".f1d2rq10{height:32px;}",".f8ljn23{height:36px;}",".fbhnoac{height:40px;}",".ff2sm71{height:48px;}",".fzki0ko{height:56px;}",".f16k9i2m{height:64px;}",".f1shusfg{height:72px;}",".fypu0ge{height:96px;}",".fjr5b71{height:120px;}",".fele2au{height:128px;}",".fly5x3f{width:100%;}",".fff7au0{border-bottom-right-radius:4px;}",".f1bjk9e1{border-bottom-left-radius:4px;}",".fwsfkhu{border-top-right-radius:4px;}",".f8wkphi{border-top-left-radius:4px;}"]}),useSizeStyles=__styles({8:{a9b677:"f1o3cbw4",Bqenvij:"f1x82gua"},12:{a9b677:"frx94fk",Bqenvij:"fvblgha"},16:{a9b677:"fjw5fx7",Bqenvij:"fd461yt"},20:{a9b677:"f64fuq3",Bqenvij:"fjamq6b"},24:{a9b677:"fq4mcun",Bqenvij:"frvgh55"},28:{a9b677:"f1w9dchk",Bqenvij:"fxldao9"},32:{a9b677:"f1szoe96",Bqenvij:"f1d2rq10"},36:{a9b677:"fpdz1er",Bqenvij:"f8ljn23"},40:{a9b677:"feqmc2u",Bqenvij:"fbhnoac"},48:{a9b677:"f124akge",Bqenvij:"ff2sm71"},56:{a9b677:"f1u66zr1",Bqenvij:"fzki0ko"},64:{a9b677:"fa9ln6p",Bqenvij:"f16k9i2m"},72:{a9b677:"fhcae8x",Bqenvij:"f1shusfg"},96:{a9b677:"f1kyr2gn",Bqenvij:"fypu0ge"},120:{a9b677:"fwfqyga",Bqenvij:"fjr5b71"},128:{a9b677:"f1iksgmy",Bqenvij:"fele2au"}},{d:[".f1o3cbw4{width:8px;}",".f1x82gua{height:8px;}",".frx94fk{width:12px;}",".fvblgha{height:12px;}",".fjw5fx7{width:16px;}",".fd461yt{height:16px;}",".f64fuq3{width:20px;}",".fjamq6b{height:20px;}",".fq4mcun{width:24px;}",".frvgh55{height:24px;}",".f1w9dchk{width:28px;}",".fxldao9{height:28px;}",".f1szoe96{width:32px;}",".f1d2rq10{height:32px;}",".fpdz1er{width:36px;}",".f8ljn23{height:36px;}",".feqmc2u{width:40px;}",".fbhnoac{height:40px;}",".f124akge{width:48px;}",".ff2sm71{height:48px;}",".f1u66zr1{width:56px;}",".fzki0ko{height:56px;}",".fa9ln6p{width:64px;}",".f16k9i2m{height:64px;}",".fhcae8x{width:72px;}",".f1shusfg{height:72px;}",".f1kyr2gn{width:96px;}",".fypu0ge{height:96px;}",".fwfqyga{width:120px;}",".fjr5b71{height:120px;}",".f1iksgmy{width:128px;}",".fele2au{height:128px;}"]}),useCircleSizeStyles=__styles({root:{Bbmb7ep:["fqgqgel","fchfifz"],Beyfa6y:["fchfifz","fqgqgel"],B7oj6ja:["fc7b1hi","f1dpx5h9"],Btl43ni:["f1dpx5h9","fc7b1hi"]}},{d:[".fqgqgel{border-bottom-right-radius:50%;}",".fchfifz{border-bottom-left-radius:50%;}",".fc7b1hi{border-top-right-radius:50%;}",".f1dpx5h9{border-top-left-radius:50%;}"]}),useSkeletonItemStyles_unstable=j=>{const{animation:_e,appearance:et,size:tt,shape:rt}=j,{dir:nt}=useFluent(),ot=useStyles$n(),it=useRectangleStyles(),st=useSizeStyles(),lt=useCircleSizeStyles();return j.root.className=mergeClasses(skeletonItemClassNames.root,ot.root,_e==="wave"&&ot.wave,_e==="wave"&&nt==="rtl"&&ot.waveRtl,_e==="pulse"&&ot.pulse,et==="translucent"&&ot.translucent,_e==="pulse"&&et==="translucent"&&ot.translucentPulse,rt==="rectangle"&&it.root,rt==="rectangle"&&it[tt],rt==="square"&&st[tt],rt==="circle"&<.root,rt==="circle"&&st[tt],j.root.className),j},SkeletonItem=reactExports.forwardRef((j,_e)=>{const et=useSkeletonItem_unstable(j,_e);return useSkeletonItemStyles_unstable(et),renderSkeletonItem_unstable(et)});SkeletonItem.displayName="SkeletonItem";const DefaultSvg=()=>reactExports.createElement("svg",{className:"fui-Spinner__Progressbar"},reactExports.createElement("circle",{className:"fui-Spinner__Track"}),reactExports.createElement("circle",{className:"fui-Spinner__Tail"})),SpinnerContext=reactExports.createContext(void 0),SpinnerContextDefaultValue={};SpinnerContext.Provider;const useSpinnerContext=()=>{var j;return(j=reactExports.useContext(SpinnerContext))!==null&&j!==void 0?j:SpinnerContextDefaultValue},useSpinner_unstable=(j,_e)=>{const{size:et}=useSpinnerContext(),{appearance:tt="primary",labelPosition:rt="after",size:nt=et??"medium",delay:ot=0}=j,it=useId$1("spinner"),{role:st="progressbar",tabIndex:lt,...ut}=j,ct=always(getIntrinsicElementProps("div",{ref:_e,role:st,...ut},["size"]),{elementType:"div"}),[dt,ft]=reactExports.useState(!0),[pt,gt]=useTimeout();reactExports.useEffect(()=>{if(!(ot<=0))return ft(!1),pt(()=>{ft(!0)},ot),()=>{gt()}},[pt,gt,ot]);const vt=optional(j.label,{defaultProps:{id:it},renderByDefault:!1,elementType:Label$1}),bt=optional(j.spinner,{renderByDefault:!0,defaultProps:{children:reactExports.createElement(DefaultSvg,null),tabIndex:lt},elementType:"span"});return vt&&ct&&!ct["aria-labelledby"]&&(ct["aria-labelledby"]=vt.id),{appearance:tt,delay:ot,labelPosition:rt,size:nt,shouldRenderSpinner:dt,components:{root:"div",spinner:"span",label:Label$1},root:ct,spinner:bt,label:vt}},renderSpinner_unstable=j=>{const{labelPosition:_e,shouldRenderSpinner:et}=j;return jsxs(j.root,{children:[j.label&&et&&(_e==="above"||_e==="before")&&jsx$1(j.label,{}),j.spinner&&et&&jsx$1(j.spinner,{}),j.label&&et&&(_e==="below"||_e==="after")&&jsx$1(j.label,{})]})},spinnerClassNames={root:"fui-Spinner",spinner:"fui-Spinner__spinner",label:"fui-Spinner__label"},useRootStyles$3=__styles({root:{mc9l5x:"f22iagw",Bt984gj:"f122n59",Brf1p80:"f4d9j23",Bg96gwp:"fez10in",i8kkvl:"f4px1ci",Belr9w4:"fn67r4l"},horizontal:{Beiy3e4:"f1063pyq"},vertical:{Beiy3e4:"f1vx9l62"}},{d:[".f22iagw{display:flex;}",".f122n59{align-items:center;}",".f4d9j23{justify-content:center;}",".fez10in{line-height:0;}",".f4px1ci{column-gap:8px;}",".fn67r4l{row-gap:8px;}",".f1063pyq{flex-direction:row;}",".f1vx9l62{flex-direction:column;}"]}),useLoaderStyles=__styles({spinnerSVG:{B3aqqti:"f1or16p5",Brovlpu:"f1grzc83",Bxa1mx5:"f19shzzi",Bwaue66:["f5tbecn","f15qb8s7"],fyp1ls:"fn4mtlg",ag6ruv:"f1y80fxs",osj692:"f1r2crtq",aq5vjd:"f1wsi8sr",tlu9e1:"f1bkm2qd",J3u96z:"f1urqz7h",d32isg:"f1da2vov",Bsvqbuc:"f11rfva0",b3s3i5:"f1exc66"},"extra-tiny":{Bah9ito:"f1x2gjcb",ut6tcf:"f1vjiaua",B7p06xz:"fv1u54w",B807ibg:"f1oebb0s"},tiny:{Bah9ito:"f1j4wmu2",ut6tcf:"f1vppzuq",B7p06xz:"fv1u54w",B807ibg:"fngtx1d"},"extra-small":{Bah9ito:"fmpqlna",ut6tcf:"f15z5jzu",B7p06xz:"fv1u54w",B807ibg:"fadawes"},small:{Bah9ito:"fo52gbo",ut6tcf:"f1b41i3v",B7p06xz:"fv1u54w",B807ibg:"f1xqyyrl"},medium:{Bah9ito:"f1aiqagr",ut6tcf:"f1wtx80b",B7p06xz:"f1flujpd",B807ibg:"f1u06hy7"},large:{Bah9ito:"f1trdq7b",ut6tcf:"f9e0mc5",B7p06xz:"f1flujpd",B807ibg:"f13pmvhl"},"extra-large":{Bah9ito:"f89rf2a",ut6tcf:"f1w2xg3q",B7p06xz:"f1flujpd",B807ibg:"fmn74v6"},huge:{Bah9ito:"f1rx7k5y",ut6tcf:"f1vtyt49",B7p06xz:"f1owbg48",B807ibg:"f1fr1izd"}},{f:[".f1or16p5:focus{outline-width:3px;}",".f1grzc83:focus{outline-style:solid;}",".f19shzzi:focus{outline-color:transparent;}"],k:["@keyframes fb7n1on{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}","@keyframes f1gx3jof{0%{transform:rotate(0deg);}100%{transform:rotate(-360deg);}}"],d:[".f5tbecn>svg{animation-name:fb7n1on;}",".f15qb8s7>svg{animation-name:f1gx3jof;}",".fn4mtlg>svg{animation-duration:3s;}",".f1y80fxs>svg{animation-iteration-count:infinite;}",".f1r2crtq>svg{animation-timing-function:linear;}",".f1wsi8sr>svg{background-color:transparent;}",".f1da2vov>svg>circle{cx:50%;}",".f11rfva0>svg>circle{cy:50%;}",".f1exc66>svg>circle{fill:none;}",".f1x2gjcb>svg{height:16px;}",".f1vjiaua>svg{width:16px;}",".fv1u54w>svg>circle{stroke-width:var(--strokeWidthThick);}",".f1oebb0s>svg>circle{r:7px;}",".f1j4wmu2>svg{height:20px;}",".f1vppzuq>svg{width:20px;}",".fngtx1d>svg>circle{r:9px;}",".fmpqlna>svg{height:24px;}",".f15z5jzu>svg{width:24px;}",".fadawes>svg>circle{r:11px;}",".fo52gbo>svg{height:28px;}",".f1b41i3v>svg{width:28px;}",".f1xqyyrl>svg>circle{r:13px;}",".f1aiqagr>svg{height:32px;}",".f1wtx80b>svg{width:32px;}",".f1flujpd>svg>circle{stroke-width:var(--strokeWidthThicker);}",".f1u06hy7>svg>circle{r:14.5px;}",".f1trdq7b>svg{height:36px;}",".f9e0mc5>svg{width:36px;}",".f13pmvhl>svg>circle{r:16.5px;}",".f89rf2a>svg{height:40px;}",".f1w2xg3q>svg{width:40px;}",".fmn74v6>svg>circle{r:18.5px;}",".f1rx7k5y>svg{height:44px;}",".f1vtyt49>svg{width:44px;}",".f1owbg48>svg>circle{stroke-width:var(--strokeWidthThickest);}",".f1fr1izd>svg>circle{r:20px;}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f1bkm2qd>svg{animation-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1urqz7h>svg{animation-iteration-count:1;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]}),useTrackStyles=__styles({inverted:{gwg7kz:"f1jvpmnu",Bvrehnu:"fq8a5sv",Bidp6o:"f1b4lwqj",cq3kgi:"f1najlst",Btwiser:"fjxod4",B8001xd:"fu3xdw0",Bdordwa:["f1ttdh6v","fmyjox0"],Bo2mdfu:"f1eseayc",E10nrc:"folzdkc",Bwl7w15:"fhlfkde",Bksq7rz:"f1esql28"},primary:{gwg7kz:"f11ditju",B8k2rxp:"f1m9nikz",Bvrehnu:"fq8a5sv",Bidp6o:"f1b4lwqj",cq3kgi:"f1najlst",Btwiser:"fjxod4",B8001xd:"fu3xdw0",Bdordwa:["f1ttdh6v","fmyjox0"],Bo2mdfu:"f1eseayc",E10nrc:"folzdkc",Bwl7w15:"fhlfkde",Bksq7rz:"f13qeqtg",y14cdu:"flglbw1"}},{d:[".f1jvpmnu>svg>circle.fui-Spinner__Tail{stroke:var(--colorNeutralStrokeOnBrand2);}",".fq8a5sv>svg>circle.fui-Spinner__Tail{animation-name:f1v1ql0f;}",".f1b4lwqj>svg>circle.fui-Spinner__Tail{animation-duration:1.5s;}",".f1najlst>svg>circle.fui-Spinner__Tail{animation-iteration-count:infinite;}",".fjxod4>svg>circle.fui-Spinner__Tail{animation-timing-function:var(--curveEasyEase);}",".fu3xdw0>svg>circle.fui-Spinner__Tail{stroke-linecap:round;}",".f1ttdh6v>svg>circle.fui-Spinner__Tail{transform:rotate(-90deg);}",".fmyjox0>svg>circle.fui-Spinner__Tail{transform:rotate(90deg);}",".f1eseayc>svg>circle.fui-Spinner__Tail{transform-origin:50% 50%;}",".f1esql28>svg>circle.fui-Spinner__Track{stroke:rgba(255, 255, 255, 0.2);}",".f11ditju>svg>circle.fui-Spinner__Tail{stroke:var(--colorBrandStroke1);}",".f13qeqtg>svg>circle.fui-Spinner__Track{stroke:var(--colorBrandStroke2Contrast);}"],k:["@keyframes f1v1ql0f{0%{stroke-dasharray:1,150;stroke-dashoffset:0;}50%{stroke-dasharray:90,150;stroke-dashoffset:-35;}100%{stroke-dasharray:90,150;stroke-dashoffset:-124;}}"],m:[["@media screen and (prefers-reduced-motion: reduce){.folzdkc>svg>circle.fui-Spinner__Tail{animation-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.fhlfkde>svg>circle.fui-Spinner__Tail{animation-iteration-count:1;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (forced-colors: active){.f1m9nikz>svg>circle.fui-Spinner__Tail{stroke:var(--colorNeutralStrokeOnBrand2);}}",{m:"screen and (forced-colors: active)"}],["@media screen and (forced-colors: active){.flglbw1>svg>circle.fui-Spinner__Track{stroke:var(--colorNeutralBackgroundInverted);}}",{m:"screen and (forced-colors: active)"}]]}),useLabelStyles$1=__styles({inverted:{sj55zd:"f15aqcq"},primary:{},"extra-tiny":{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},tiny:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},"extra-small":{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},small:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},medium:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},large:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},"extra-large":{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},huge:{Bahqtrf:"fk6fouc",Be2twd7:"f1pp30po",Bhrd7zp:"fl43uef",Bg96gwp:"f106mvju"}},{d:[".f15aqcq{color:rgba(255, 255, 255, 1);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".f106mvju{line-height:var(--lineHeightBase500);}"]}),useSpinnerStyles_unstable=j=>{const{labelPosition:_e,size:et,appearance:tt="primary"}=j,rt=useRootStyles$3(),nt=useLoaderStyles(),ot=useLabelStyles$1(),it=useTrackStyles();return j.root.className=mergeClasses(spinnerClassNames.root,rt.root,(_e==="above"||_e==="below")&&rt.vertical,(_e==="before"||_e==="after")&&rt.horizontal,j.root.className),j.spinner&&(j.spinner.className=mergeClasses(spinnerClassNames.spinner,nt.spinnerSVG,nt[et],it[tt],j.spinner.className)),j.label&&(j.label.className=mergeClasses(spinnerClassNames.label,ot[et],ot[tt],j.label.className)),j},Spinner=reactExports.forwardRef((j,_e)=>{const et=useSpinner_unstable(j,_e);return useSpinnerStyles_unstable(et),useCustomStyleHook("useSpinnerStyles_unstable")(et),renderSpinner_unstable(et)});Spinner.displayName="Spinner";const useSwitch_unstable=(j,_e)=>{j=useFieldControlProps_unstable(j,{supportsLabelFor:!0,supportsRequired:!0});const{checked:et,defaultChecked:tt,disabled:rt,labelPosition:nt="after",onChange:ot,required:it}=j,st=getPartitionedNativeProps({props:j,primarySlotTagName:"input",excludedPropNames:["checked","defaultChecked","onChange"]}),lt=useId$1("switch-",st.primary.id),ut=always(j.root,{defaultProps:{ref:useFocusWithin(),...st.root},elementType:"div"}),ct=always(j.indicator,{defaultProps:{"aria-hidden":!0,children:reactExports.createElement(CircleFilled,null)},elementType:"div"}),dt=always(j.input,{defaultProps:{checked:et,defaultChecked:tt,id:lt,ref:_e,role:"switch",type:"checkbox",...st.primary},elementType:"input"});dt.onChange=mergeCallbacks(dt.onChange,pt=>ot==null?void 0:ot(pt,{checked:pt.currentTarget.checked}));const ft=optional(j.label,{defaultProps:{disabled:rt,htmlFor:lt,required:it,size:"medium"},elementType:Label$1});return{labelPosition:nt,components:{root:"div",indicator:"div",input:"input",label:Label$1},root:ut,indicator:ct,input:dt,label:ft}},renderSwitch_unstable=j=>{const{labelPosition:_e}=j;return jsxs(j.root,{children:[jsx$1(j.input,{}),_e!=="after"&&j.label&&jsx$1(j.label,{}),jsx$1(j.indicator,{}),_e==="after"&&j.label&&jsx$1(j.label,{})]})},switchClassNames={root:"fui-Switch",indicator:"fui-Switch__indicator",input:"fui-Switch__input",label:"fui-Switch__label"},useRootBaseClassName=__resetStyles("r1i56xw0","rk4yt03",{r:[".r1i56xw0{align-items:flex-start;box-sizing:border-box;display:inline-flex;position:relative;}",".r1i56xw0:focus{outline-style:none;}",".r1i56xw0:focus-visible{outline-style:none;}",".r1i56xw0[data-fui-focus-within]:focus-within{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.r1i56xw0[data-fui-focus-within]:focus-within::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:2px;border-right-width:2px;border-bottom-width:2px;border-left-width:2px;border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".rk4yt03{align-items:flex-start;box-sizing:border-box;display:inline-flex;position:relative;}",".rk4yt03:focus{outline-style:none;}",".rk4yt03:focus-visible{outline-style:none;}",".rk4yt03[data-fui-focus-within]:focus-within{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.rk4yt03[data-fui-focus-within]:focus-within::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:2px;border-left-width:2px;border-bottom-width:2px;border-right-width:2px;border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.r1i56xw0[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media (forced-colors: active){.rk4yt03[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}"]}),useRootStyles$2=__styles({vertical:{Beiy3e4:"f1vx9l62"}},{d:[".f1vx9l62{flex-direction:column;}"]}),useIndicatorBaseClassName=__resetStyles("r13wlxb8",null,{r:[".r13wlxb8{border-radius:var(--borderRadiusCircular);border:1px solid;line-height:0;box-sizing:border-box;fill:currentColor;flex-shrink:0;font-size:18px;height:20px;margin:var(--spacingVerticalS) var(--spacingHorizontalS);pointer-events:none;transition-duration:var(--durationNormal);transition-timing-function:var(--curveEasyEase);transition-property:background,border,color;width:40px;}",".r13wlxb8>*{transition-duration:var(--durationNormal);transition-timing-function:var(--curveEasyEase);transition-property:transform;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r13wlxb8{transition-duration:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r13wlxb8>*{transition-duration:0.01ms;}}"]}),useIndicatorStyles=__styles({labelAbove:{B6of3ja:"f1hu3pq6"}},{d:[".f1hu3pq6{margin-top:0;}"]}),useInputBaseClassName=__resetStyles("rw4brat","r1f4bxyr",{r:[".rw4brat{box-sizing:border-box;cursor:pointer;height:100%;margin:0;opacity:0;position:absolute;width:calc(40px + 2 * var(--spacingHorizontalS));}",".rw4brat:checked~.fui-Switch__indicator>*{transform:translateX(20px);}",".rw4brat:disabled{cursor:default;}",".rw4brat:disabled~.fui-Switch__indicator{color:var(--colorNeutralForegroundDisabled);}",".rw4brat:disabled~.fui-Switch__label{cursor:default;color:var(--colorNeutralForegroundDisabled);}",".rw4brat:enabled:not(:checked)~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessible);border-color:var(--colorNeutralStrokeAccessible);}",".rw4brat:enabled:not(:checked)~.fui-Switch__label{color:var(--colorNeutralForeground1);}",".rw4brat:enabled:not(:checked):hover~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessibleHover);border-color:var(--colorNeutralStrokeAccessibleHover);}",".rw4brat:enabled:not(:checked):hover:active~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessiblePressed);border-color:var(--colorNeutralStrokeAccessiblePressed);}",".rw4brat:enabled:checked~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackground);color:var(--colorNeutralForegroundInverted);border-color:var(--colorTransparentStroke);}",".rw4brat:enabled:checked:hover~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackgroundHover);border-color:var(--colorTransparentStrokeInteractive);}",".rw4brat:enabled:checked:hover:active~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackgroundPressed);border-color:var(--colorTransparentStrokeInteractive);}",".rw4brat:disabled:not(:checked)~.fui-Switch__indicator{border-color:var(--colorNeutralStrokeDisabled);}",".rw4brat:disabled:checked~.fui-Switch__indicator{background-color:var(--colorNeutralBackgroundDisabled);border-color:var(--colorTransparentStrokeDisabled);}",".r1f4bxyr{box-sizing:border-box;cursor:pointer;height:100%;margin:0;opacity:0;position:absolute;width:calc(40px + 2 * var(--spacingHorizontalS));}",".r1f4bxyr:checked~.fui-Switch__indicator>*{transform:translateX(-20px);}",".r1f4bxyr:disabled{cursor:default;}",".r1f4bxyr:disabled~.fui-Switch__indicator{color:var(--colorNeutralForegroundDisabled);}",".r1f4bxyr:disabled~.fui-Switch__label{cursor:default;color:var(--colorNeutralForegroundDisabled);}",".r1f4bxyr:enabled:not(:checked)~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessible);border-color:var(--colorNeutralStrokeAccessible);}",".r1f4bxyr:enabled:not(:checked)~.fui-Switch__label{color:var(--colorNeutralForeground1);}",".r1f4bxyr:enabled:not(:checked):hover~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessibleHover);border-color:var(--colorNeutralStrokeAccessibleHover);}",".r1f4bxyr:enabled:not(:checked):hover:active~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessiblePressed);border-color:var(--colorNeutralStrokeAccessiblePressed);}",".r1f4bxyr:enabled:checked~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackground);color:var(--colorNeutralForegroundInverted);border-color:var(--colorTransparentStroke);}",".r1f4bxyr:enabled:checked:hover~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackgroundHover);border-color:var(--colorTransparentStrokeInteractive);}",".r1f4bxyr:enabled:checked:hover:active~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackgroundPressed);border-color:var(--colorTransparentStrokeInteractive);}",".r1f4bxyr:disabled:not(:checked)~.fui-Switch__indicator{border-color:var(--colorNeutralStrokeDisabled);}",".r1f4bxyr:disabled:checked~.fui-Switch__indicator{background-color:var(--colorNeutralBackgroundDisabled);border-color:var(--colorTransparentStrokeDisabled);}"],s:["@media (forced-colors: active){.rw4brat:disabled~.fui-Switch__indicator{color:GrayText;border-color:GrayText;}.rw4brat:disabled~.fui-Switch__label{color:GrayText;}.rw4brat:enabled:checked:hover~.fui-Switch__indicator{background-color:Highlight;color:Canvas;}.rw4brat:enabled:checked~.fui-Switch__indicator{background-color:Highlight;color:Canvas;}}","@media (forced-colors: active){.r1f4bxyr:disabled~.fui-Switch__indicator{color:GrayText;border-color:GrayText;}.r1f4bxyr:disabled~.fui-Switch__label{color:GrayText;}.r1f4bxyr:enabled:checked:hover~.fui-Switch__indicator{background-color:Highlight;color:Canvas;}.r1f4bxyr:enabled:checked~.fui-Switch__indicator{background-color:Highlight;color:Canvas;}}"]}),useInputStyles=__styles({before:{j35jbq:["f1e31b4d","f1vgc2s3"],Bhzewxz:"f15twtuk"},after:{oyh7mz:["f1vgc2s3","f1e31b4d"],Bhzewxz:"f15twtuk"},above:{B5kzvoi:"f1yab3r1",Bqenvij:"f1aar7gd",a9b677:"fly5x3f"}},{d:[".f1e31b4d{right:0;}",".f1vgc2s3{left:0;}",".f15twtuk{top:0;}",".f1yab3r1{bottom:0;}",".f1aar7gd{height:calc(20px + var(--spacingVerticalS));}",".fly5x3f{width:100%;}"]}),useLabelStyles=__styles({base:{Bceei9c:"f1k6fduh",jrapky:"f49ad5g",B6of3ja:"f1xlvstr",z8tnut:"f1kwiid1",z189sj:["f1vdfbxk","f1f5gg8d"],Byoj8tv:"f5b47ha",uwmqm3:["f1f5gg8d","f1vdfbxk"]},above:{z8tnut:"f1ywm7hm",Byoj8tv:"f14wxoun",a9b677:"fly5x3f"},after:{uwmqm3:["fruq291","f7x41pl"]},before:{z189sj:["f7x41pl","fruq291"]}},{d:[".f1k6fduh{cursor:pointer;}",".f49ad5g{margin-bottom:calc((20px - var(--lineHeightBase300)) / 2);}",".f1xlvstr{margin-top:calc((20px - var(--lineHeightBase300)) / 2);}",".f1kwiid1{padding-top:var(--spacingVerticalS);}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".f5b47ha{padding-bottom:var(--spacingVerticalS);}",".f1ywm7hm{padding-top:var(--spacingVerticalXS);}",".f14wxoun{padding-bottom:var(--spacingVerticalXS);}",".fly5x3f{width:100%;}",".fruq291{padding-left:var(--spacingHorizontalXS);}",".f7x41pl{padding-right:var(--spacingHorizontalXS);}"]}),useSwitchStyles_unstable=j=>{const _e=useRootBaseClassName(),et=useRootStyles$2(),tt=useIndicatorBaseClassName(),rt=useIndicatorStyles(),nt=useInputBaseClassName(),ot=useInputStyles(),it=useLabelStyles(),{label:st,labelPosition:lt}=j;return j.root.className=mergeClasses(switchClassNames.root,_e,lt==="above"&&et.vertical,j.root.className),j.indicator.className=mergeClasses(switchClassNames.indicator,tt,st&<==="above"&&rt.labelAbove,j.indicator.className),j.input.className=mergeClasses(switchClassNames.input,nt,st&&ot[lt],j.input.className),j.label&&(j.label.className=mergeClasses(switchClassNames.label,it.base,it[lt],j.label.className)),j},Switch=reactExports.forwardRef((j,_e)=>{const et=useSwitch_unstable(j,_e);return useSwitchStyles_unstable(et),useCustomStyleHook("useSwitchStyles_unstable")(et),renderSwitch_unstable(et)});Switch.displayName="Switch";const tabListContextDefaultValue={appearance:"transparent",reserveSelectedTabSpace:!0,selectTabOnFocus:!1,disabled:!1,selectedValue:void 0,onRegister:()=>{},onUnregister:()=>{},onSelect:()=>{},getRegisteredTabs:()=>({registeredTabs:{}}),size:"medium",vertical:!1},TabListContext=createContext(void 0),TabListProvider=TabListContext.Provider,useTabListContext_unstable=j=>useContextSelector(TabListContext,(_e=tabListContextDefaultValue)=>j(_e)),useTab_unstable=(j,_e)=>{const{content:et,disabled:tt=!1,icon:rt,onClick:nt,onFocus:ot,value:it}=j,st=useTabListContext_unstable(Ct=>Ct.appearance),lt=useTabListContext_unstable(Ct=>Ct.reserveSelectedTabSpace),ut=useTabListContext_unstable(Ct=>Ct.selectTabOnFocus),ct=useTabListContext_unstable(Ct=>Ct.disabled),dt=useTabListContext_unstable(Ct=>Ct.selectedValue===it),ft=useTabListContext_unstable(Ct=>Ct.onRegister),pt=useTabListContext_unstable(Ct=>Ct.onUnregister),gt=useTabListContext_unstable(Ct=>Ct.onSelect),vt=useTabListContext_unstable(Ct=>Ct.size),bt=useTabListContext_unstable(Ct=>!!Ct.vertical),_t=ct||tt,xt=reactExports.useRef(null),yt=Ct=>gt(Ct,{value:it}),Et=useEventCallback$3(mergeCallbacks(nt,yt)),St=useEventCallback$3(mergeCallbacks(ot,yt));reactExports.useEffect(()=>(ft({value:it,ref:xt}),()=>{pt({value:it,ref:xt})}),[ft,pt,xt,it]);const $t=optional(rt,{elementType:"span"}),At=always(et,{defaultProps:{children:j.children},elementType:"span"}),wt=!!($t!=null&&$t.children&&!At.children);return{components:{root:"button",icon:"span",content:"span",contentReservedSpace:"span"},root:always(getIntrinsicElementProps("button",{ref:useMergedRefs$1(_e,xt),role:"tab",type:"button","aria-selected":_t?void 0:`${dt}`,...j,disabled:_t,onClick:Et,onFocus:ut?St:ot}),{elementType:"button"}),icon:$t,iconOnly:wt,content:At,contentReservedSpace:optional(et,{renderByDefault:!dt&&!wt&<,defaultProps:{children:j.children},elementType:"span"}),appearance:st,disabled:_t,selected:dt,size:vt,value:it,vertical:bt}},renderTab_unstable=j=>jsxs(j.root,{children:[j.icon&&jsx$1(j.icon,{}),!j.iconOnly&&jsx$1(j.content,{}),j.contentReservedSpace&&jsx$1(j.contentReservedSpace,{})]}),tabIndicatorCssVars_unstable={offsetVar:"--fui-Tab__indicator--offset",scaleVar:"--fui-Tab__indicator--scale"},useActiveIndicatorStyles$1=__styles({base:{B68tc82:"f1mtd64y",Bmxbyg5:"f1y7q3j9"},animated:{Ba2ppi3:"fhwpy7i",F2fol1:"f6zz20j",B1dyfl9:"f1ai4sc1",B0vmy72:"f9qxlq5",u9bimw:"f1aql376"},horizontal:{sjv3b2:["fug4aj8","f1i5xzg7"],b1kco5:"f1q7ujh"},vertical:{sjv3b2:"f1hqboyk",b1kco5:"f1dxupa6"}},{d:[".f1mtd64y{overflow-x:visible;}",".f1y7q3j9{overflow-y:visible;}",".fhwpy7i::after{transition-property:transform;}",".f6zz20j::after{transition-duration:var(--durationSlow);}",".f1ai4sc1::after{transition-timing-function:var(--curveDecelerateMax);}",".fug4aj8::after{transform-origin:left;}",".f1i5xzg7::after{transform-origin:right;}",".f1q7ujh::after{transform:translateX(var(--fui-Tab__indicator--offset)) scaleX(var(--fui-Tab__indicator--scale));}",".f1hqboyk::after{transform-origin:top;}",".f1dxupa6::after{transform:translateY(var(--fui-Tab__indicator--offset)) scaleY(var(--fui-Tab__indicator--scale));}"],m:[["@media (prefers-reduced-motion: reduce){.f9qxlq5::after{transition-property:none;}}",{m:"(prefers-reduced-motion: reduce)"}],["@media (prefers-reduced-motion: reduce){.f1aql376::after{transition-duration:0.01ms;}}",{m:"(prefers-reduced-motion: reduce)"}]]}),calculateTabRect=j=>{if(j){var _e;const et=((_e=j.parentElement)===null||_e===void 0?void 0:_e.getBoundingClientRect())||{x:0,y:0,width:0,height:0},tt=j.getBoundingClientRect();return{x:tt.x-et.x,y:tt.y-et.y,width:tt.width,height:tt.height}}},getRegisteredTabRect=(j,_e)=>{var et;const tt=_e!=null?(et=j[JSON.stringify(_e)])===null||et===void 0?void 0:et.ref.current:void 0;return tt?calculateTabRect(tt):void 0},useTabAnimatedIndicatorStyles_unstable=j=>{const{disabled:_e,selected:et,vertical:tt}=j,rt=useActiveIndicatorStyles$1(),[nt,ot]=reactExports.useState(),[it,st]=reactExports.useState({offset:0,scale:1}),lt=useTabListContext_unstable(dt=>dt.getRegisteredTabs);if(reactExports.useEffect(()=>{nt&&st({offset:0,scale:1})},[nt]),et){const{previousSelectedValue:dt,selectedValue:ft,registeredTabs:pt}=lt();if(dt&&nt!==dt){const gt=getRegisteredTabRect(pt,dt),vt=getRegisteredTabRect(pt,ft);if(vt&>){const bt=tt?gt.y-vt.y:gt.x-vt.x,_t=tt?gt.height/vt.height:gt.width/vt.width;st({offset:bt,scale:_t}),ot(dt)}}}else nt&&ot(void 0);if(_e)return j;const ut=it.offset===0&&it.scale===1;j.root.className=mergeClasses(j.root.className,et&&rt.base,et&&ut&&rt.animated,et&&(tt?rt.vertical:rt.horizontal));const ct={[tabIndicatorCssVars_unstable.offsetVar]:`${it.offset}px`,[tabIndicatorCssVars_unstable.scaleVar]:`${it.scale}`};return j.root.style={...ct,...j.root.style},j},tabClassNames={root:"fui-Tab",icon:"fui-Tab__icon",content:"fui-Tab__content"},reservedSpaceClassNames={content:"fui-Tab__content--reserved-space"},useRootStyles$1=__styles({base:{Bt984gj:"f122n59",g2u3we:"fwhevhj",h3c5rm:["f61n433","f1q8l70w"],B9xav0g:"fv1dfc8",zhjwy3:["f1q8l70w","f61n433"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B4j52fo:"fre7gi1",Bekrc4i:["f1358rze","f1rvrf73"],Bn0qgzm:"fqdk4by",ibv6hh:["f1rvrf73","f1358rze"],Bceei9c:"f1k6fduh",mc9l5x:"f13qh94s",Bnnss6s:"fi64zpg",Bxotwcr:"f1u07yai",Budl1dq:"frn2hmy",wkccdc:"f1olsevy",Bahqtrf:"fk6fouc",Bg96gwp:"f1i3iumi",oeaueh:"f1s6fcnf",qhf8xq:"f10pi13n",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",B9bfxx9:"f1cxpek8"},horizontal:{Brf1p80:"f4d9j23"},vertical:{Brf1p80:"f1s9ku6b"},smallHorizontal:{i8kkvl:"f14mj54c",z8tnut:"fp2oml8",z189sj:["fdw0yi8","fk8j09s"],Byoj8tv:"f1tdddsa",uwmqm3:["fk8j09s","fdw0yi8"]},smallVertical:{i8kkvl:"f14mj54c",z8tnut:"fclwglc",z189sj:["fdw0yi8","fk8j09s"],Byoj8tv:"fywfov9",uwmqm3:["fk8j09s","fdw0yi8"]},mediumHorizontal:{i8kkvl:"f1rjii52",z8tnut:"f5yzyt",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"fx3omr",uwmqm3:["f1ng84yb","f11gcy0p"]},mediumVertical:{i8kkvl:"f1rjii52",z8tnut:"fp2oml8",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"f1tdddsa",uwmqm3:["f1ng84yb","f11gcy0p"]},largeHorizontal:{i8kkvl:"f1rjii52",z8tnut:"fikn0iw",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"fdxej3c",uwmqm3:["f1ng84yb","f11gcy0p"]},largeVertical:{i8kkvl:"f1rjii52",z8tnut:"f1kwiid1",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"f5b47ha",uwmqm3:["f1ng84yb","f11gcy0p"]},transparent:{De3pzq:"f1c21dwh",Jwef8y:"fjxutwb",ecr2s2:"fophhak",Bptxc3x:"fmmjozx",B076xvk:"f1mfqf41",q9r9w5:"f10aiid4",cl4aha:"fpkze5g",Bk452zc:"f149wc3x",a4hkcw:"fjioou7"},subtle:{De3pzq:"fhovq9v",Jwef8y:"f1t94bn6",ecr2s2:"f1wfn5kd",Bptxc3x:"fmmjozx",B076xvk:"f1mfqf41",q9r9w5:"f10aiid4",cl4aha:"fpkze5g",Bk452zc:"f149wc3x",a4hkcw:"fjioou7"},disabled:{De3pzq:"f1c21dwh",Bptxc3x:"fato7r6",cl4aha:"fao1bnu",Bceei9c:"fdrzuqr"},selected:{Bptxc3x:"f1cadz5z",B076xvk:"f1ck17l",q9r9w5:"f42ak0g",cl4aha:"ffplhdr",Bk452zc:"ffth601",a4hkcw:"fhklyu5"}},{d:[".f122n59{align-items:center;}",".fwhevhj{border-top-color:none;}",".f61n433{border-right-color:none;}",".f1q8l70w{border-left-color:none;}",".fv1dfc8{border-bottom-color:none;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".fre7gi1{border-top-width:0;}",".f1358rze{border-right-width:0;}",".f1rvrf73{border-left-width:0;}",".fqdk4by{border-bottom-width:0;}",".f1k6fduh{cursor:pointer;}",".f13qh94s{display:grid;}",".fi64zpg{flex-shrink:0;}",".f1u07yai{grid-auto-flow:column;}",".frn2hmy{grid-template-columns:auto;}",".f1olsevy{grid-template-rows:auto;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1s6fcnf{outline-style:none;}",".f10pi13n{position:relative;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f1cxpek8{text-transform:none;}",".f4d9j23{justify-content:center;}",".f1s9ku6b{justify-content:start;}",".f14mj54c{column-gap:var(--spacingHorizontalXXS);}",".fp2oml8{padding-top:var(--spacingVerticalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".f1tdddsa{padding-bottom:var(--spacingVerticalSNudge);}",".fclwglc{padding-top:var(--spacingVerticalXXS);}",".fywfov9{padding-bottom:var(--spacingVerticalXXS);}",".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",".f5yzyt{padding-top:var(--spacingVerticalM);}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".fx3omr{padding-bottom:var(--spacingVerticalM);}",".fikn0iw{padding-top:var(--spacingVerticalL);}",".fdxej3c{padding-bottom:var(--spacingVerticalL);}",".f1kwiid1{padding-top:var(--spacingVerticalS);}",".f5b47ha{padding-bottom:var(--spacingVerticalS);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".fmmjozx .fui-Tab__icon{color:var(--colorNeutralForeground2);}",".fpkze5g .fui-Tab__content{color:var(--colorNeutralForeground2);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fato7r6 .fui-Tab__icon{color:var(--colorNeutralForegroundDisabled);}",".fao1bnu .fui-Tab__content{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f1cadz5z .fui-Tab__icon{color:var(--colorCompoundBrandForeground1);}",".ffplhdr .fui-Tab__content{color:var(--colorNeutralForeground1);}"],h:[".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".f1mfqf41:hover .fui-Tab__icon{color:var(--colorNeutralForeground2Hover);}",".f149wc3x:hover .fui-Tab__content{color:var(--colorNeutralForeground2Hover);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".f1ck17l:hover .fui-Tab__icon{color:var(--colorCompoundBrandForeground1Hover);}",".ffth601:hover .fui-Tab__content{color:var(--colorNeutralForeground1Hover);}"],a:[".fophhak:active{background-color:var(--colorTransparentBackgroundPressed);}",".f10aiid4:active .fui-Tab__icon{color:var(--colorNeutralForeground2Pressed);}",".fjioou7:active .fui-Tab__content{color:var(--colorNeutralForeground2Pressed);}",".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}",".f42ak0g:active .fui-Tab__icon{color:var(--colorCompoundBrandForeground1Pressed);}",".fhklyu5:active .fui-Tab__content{color:var(--colorNeutralForeground1Pressed);}"]}),useFocusStyles=__styles({base:{B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bn4voq9:"f1p7hgxw",Bfpq7zp:"f1way5bb",g9k6zt:"f9znhxp",j6ew2k:["fqa318h","fqa318h"],Bhxq17a:"f1vjpng2"}},{d:[".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",".f1p7hgxw[data-fui-focus-visible]{outline-width:var(--strokeWidthThick);}",".f1way5bb[data-fui-focus-visible]{outline-color:transparent;}",".f9znhxp[data-fui-focus-visible]{outline-style:solid;}",".fqa318h[data-fui-focus-visible]{box-shadow:var(--shadow4),0 0 0 var(--strokeWidthThick) var(--colorStrokeFocus2);}",".f1vjpng2[data-fui-focus-visible]{z-index:1;}"]}),usePendingIndicatorStyles=__styles({base:{az7l2e:"fhw179n",Bv4n3vi:["f10y1uxy","f6aiuy0"],vqofr:["f6aiuy0","f10y1uxy"],B0uxbk8:["f1kfpfnu","f1dx5wco"],Bgqb9hq:["f1dx5wco","f1kfpfnu"],amg5m6:"f1kmhr4c",zkfqfm:"fl1ydde",Bkydozb:"f1y7maxz",vzq8l0:["f105swax","fscdmel"],Bka2azo:["fscdmel","f105swax"],Br4ovkg:["f1tkcw1w","f1u11x8o"],csmgbd:["f1u11x8o","f1tkcw1w"],y36c18:"f16cxu0",B1ctymy:"f1nwgacf",Bgvrrv0:"f15ovonk",ddr6p5:"fvje46l"},disabled:{az7l2e:"f1ut20fw",Bkydozb:"fhrzcfn"},smallHorizontal:{lawp4y:"fchca7p",Baz25je:"f1r53b5e",Fbdkly:["f1s6rxz5","fo35v8s"],mdwyqc:["fo35v8s","f1s6rxz5"]},smallVertical:{lawp4y:"fze4zud",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"fdp32p8",Ccq8qp:"f1aij3q"},mediumHorizontal:{lawp4y:"fchca7p",Baz25je:"f1s2r9ax",Fbdkly:["f1o0nnkk","fxb7rol"],mdwyqc:["fxb7rol","f1o0nnkk"]},mediumVertical:{lawp4y:"f17jracn",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"f117lcb2",Ccq8qp:"f1aij3q"},largeHorizontal:{lawp4y:"fchca7p",Baz25je:"f1s2r9ax",Fbdkly:["f1o0nnkk","fxb7rol"],mdwyqc:["fxb7rol","f1o0nnkk"]},largeVertical:{lawp4y:"fel9d3z",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"f6vqlre",Ccq8qp:"f1aij3q"}},{h:[".fhw179n:hover::before{background-color:var(--colorNeutralStroke1Hover);}",".f10y1uxy:hover::before{border-bottom-right-radius:var(--borderRadiusCircular);}",".f6aiuy0:hover::before{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1kfpfnu:hover::before{border-top-right-radius:var(--borderRadiusCircular);}",".f1dx5wco:hover::before{border-top-left-radius:var(--borderRadiusCircular);}",'.f1kmhr4c:hover::before{content:"";}',".fl1ydde:hover::before{position:absolute;}",".f1ut20fw:hover::before{background-color:var(--colorTransparentStroke);}"],a:[".f1y7maxz:active::before{background-color:var(--colorNeutralStroke1Pressed);}",".f105swax:active::before{border-bottom-right-radius:var(--borderRadiusCircular);}",".fscdmel:active::before{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1tkcw1w:active::before{border-top-right-radius:var(--borderRadiusCircular);}",".f1u11x8o:active::before{border-top-left-radius:var(--borderRadiusCircular);}",'.f16cxu0:active::before{content:"";}',".f1nwgacf:active::before{position:absolute;}",".fhrzcfn:active::before{background-color:var(--colorTransparentStroke);}"],m:[["@media (forced-colors: active){.f15ovonk:hover::before{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fvje46l:active::before{background-color:Highlight;}}",{m:"(forced-colors: active)"}]],d:[".fchca7p::before{bottom:0;}",".f1r53b5e::before{height:var(--strokeWidthThick);}",".f1s6rxz5::before{left:var(--spacingHorizontalSNudge);}",".fo35v8s::before{right:var(--spacingHorizontalSNudge);}",".fze4zud::before{bottom:var(--spacingVerticalXS);}",".f1fzr1x6::before{left:0;}",".f1f351id::before{right:0;}",".fdp32p8::before{top:var(--spacingVerticalXS);}",".f1aij3q::before{width:var(--strokeWidthThicker);}",".f1s2r9ax::before{height:var(--strokeWidthThicker);}",".f1o0nnkk::before{left:var(--spacingHorizontalM);}",".fxb7rol::before{right:var(--spacingHorizontalM);}",".f17jracn::before{bottom:var(--spacingVerticalS);}",".f117lcb2::before{top:var(--spacingVerticalS);}",".fel9d3z::before{bottom:var(--spacingVerticalMNudge);}",".f6vqlre::before{top:var(--spacingVerticalMNudge);}"]}),useActiveIndicatorStyles=__styles({base:{Bjyk6c5:"f1rp0jgh",B3778ie:["fprarqb","f14vs0nd"],d9w3h3:["f14vs0nd","fprarqb"],Bl18szs:["f1gtfqs9","f18zvfd9"],B4j8arr:["f18zvfd9","f1gtfqs9"],Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9",t2ki1e:"ffmd2fr"},selected:{Bjyk6c5:"f1ksivud",Glksuk:"f1eytvvh",Blzl0y7:"fuaa9s",f7digc:"fy7ktjt",Biqphg1:"f16tp0gf",Bntoloa:"fj0yp7j"},disabled:{Bjyk6c5:"f13lkzet"},smallHorizontal:{By385i5:"fo72kxq",Dlnsje:"f9bb2ob",Eqx8gd:["f1q70ajw","f18rbzdx"],B1piin3:["f18rbzdx","f1q70ajw"]},smallVertical:{By385i5:"fqbue9b",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"fk1klkt",a2br6o:"f1o25lip"},mediumHorizontal:{By385i5:"fo72kxq",Dlnsje:"f1vx7lu8",Eqx8gd:["fna7m5n","f1oxpfwv"],B1piin3:["f1oxpfwv","fna7m5n"]},mediumVertical:{By385i5:"fipylg0",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"fqchiol",a2br6o:"f1o25lip"},largeHorizontal:{By385i5:"fo72kxq",Dlnsje:"f1vx7lu8",Eqx8gd:["fna7m5n","f1oxpfwv"],B1piin3:["f1oxpfwv","fna7m5n"]},largeVertical:{By385i5:"f1w7dm5g",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"f1p6em4m",a2br6o:"f1o25lip"}},{d:[".f1rp0jgh::after{background-color:var(--colorTransparentStroke);}",".fprarqb::after{border-bottom-right-radius:var(--borderRadiusCircular);}",".f14vs0nd::after{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1gtfqs9::after{border-top-right-radius:var(--borderRadiusCircular);}",".f18zvfd9::after{border-top-left-radius:var(--borderRadiusCircular);}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".ffmd2fr::after{z-index:1;}",".f1ksivud::after{background-color:var(--colorCompoundBrandStroke);}",".f13lkzet::after{background-color:var(--colorNeutralForegroundDisabled);}",".fo72kxq::after{bottom:0;}",".f9bb2ob::after{height:var(--strokeWidthThick);}",".f1q70ajw::after{left:var(--spacingHorizontalSNudge);}",".f18rbzdx::after{right:var(--spacingHorizontalSNudge);}",".fqbue9b::after{bottom:var(--spacingVerticalXS);}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",".fk1klkt::after{top:var(--spacingVerticalXS);}",".f1o25lip::after{width:var(--strokeWidthThicker);}",".f1vx7lu8::after{height:var(--strokeWidthThicker);}",".fna7m5n::after{left:var(--spacingHorizontalM);}",".f1oxpfwv::after{right:var(--spacingHorizontalM);}",".fipylg0::after{bottom:var(--spacingVerticalS);}",".fqchiol::after{top:var(--spacingVerticalS);}",".f1w7dm5g::after{bottom:var(--spacingVerticalMNudge);}",".f1p6em4m::after{top:var(--spacingVerticalMNudge);}"],h:[".f1eytvvh:hover::after{background-color:var(--colorCompoundBrandStrokeHover);}"],a:[".fuaa9s:active::after{background-color:var(--colorCompoundBrandStrokePressed);}"],m:[["@media (forced-colors: active){.fy7ktjt::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f16tp0gf:hover::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fj0yp7j:active::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}]]}),useIconStyles=__styles({base:{Br312pm:"fwpfdsa",Ijaq50:"f16hsg94",Bt984gj:"f122n59",mc9l5x:"ftuwxu6",Brf1p80:"f4d9j23",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",D0sxk3:"f16u1re",t6yez3:"f8bsbmo"},small:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3"},medium:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3"},large:{Be2twd7:"f1rt2boy",Bqenvij:"frvgh55",a9b677:"fq4mcun"},selected:{D0sxk3:"fxoiby5",t6yez3:"f15q0o9g"}},{d:[".fwpfdsa{grid-column-start:1;}",".f16hsg94{grid-row-start:1;}",".f122n59{align-items:center;}",".ftuwxu6{display:inline-flex;}",".f4d9j23{justify-content:center;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f16u1re .fui-Icon-filled{display:none;}",".f8bsbmo .fui-Icon-regular{display:inline;}",".fe5j1ua{font-size:20px;}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",".f1rt2boy{font-size:24px;}",".frvgh55{height:24px;}",".fq4mcun{width:24px;}",".fxoiby5 .fui-Icon-filled{display:inline;}",".f15q0o9g .fui-Icon-regular{display:none;}"]}),useContentStyles=__styles({base:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",z8tnut:"fztplxc",z189sj:["ffczdla","fgiv446"],Byoj8tv:"f9g1xly",uwmqm3:["fgiv446","ffczdla"]},selected:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"fl43uef",Bg96gwp:"f1i3iumi"},large:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k"},largeSelected:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},noIconBefore:{Br312pm:"fwpfdsa",Ijaq50:"f16hsg94"},iconBefore:{Br312pm:"fd46tj4",Ijaq50:"f16hsg94"},placeholder:{Bcdw1i0:"fd7fpy0"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".fztplxc{padding-top:var(--spacingVerticalNone);}",".ffczdla{padding-right:var(--spacingHorizontalXXS);}",".fgiv446{padding-left:var(--spacingHorizontalXXS);}",".f9g1xly{padding-bottom:var(--spacingVerticalNone);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fwpfdsa{grid-column-start:1;}",".f16hsg94{grid-row-start:1;}",".fd46tj4{grid-column-start:2;}",".fd7fpy0{visibility:hidden;}"]}),useTabStyles_unstable=j=>{const _e=useRootStyles$1(),et=useFocusStyles(),tt=usePendingIndicatorStyles(),rt=useActiveIndicatorStyles(),nt=useIconStyles(),ot=useContentStyles(),{appearance:it,disabled:st,selected:lt,size:ut,vertical:ct}=j;return j.root.className=mergeClasses(tabClassNames.root,_e.base,ct?_e.vertical:_e.horizontal,ut==="small"&&(ct?_e.smallVertical:_e.smallHorizontal),ut==="medium"&&(ct?_e.mediumVertical:_e.mediumHorizontal),ut==="large"&&(ct?_e.largeVertical:_e.largeHorizontal),et.base,!st&&it==="subtle"&&_e.subtle,!st&&it==="transparent"&&_e.transparent,!st&<&&_e.selected,st&&_e.disabled,tt.base,ut==="small"&&(ct?tt.smallVertical:tt.smallHorizontal),ut==="medium"&&(ct?tt.mediumVertical:tt.mediumHorizontal),ut==="large"&&(ct?tt.largeVertical:tt.largeHorizontal),st&&tt.disabled,lt&&rt.base,lt&&!st&&rt.selected,lt&&ut==="small"&&(ct?rt.smallVertical:rt.smallHorizontal),lt&&ut==="medium"&&(ct?rt.mediumVertical:rt.mediumHorizontal),lt&&ut==="large"&&(ct?rt.largeVertical:rt.largeHorizontal),lt&&st&&rt.disabled,j.root.className),j.icon&&(j.icon.className=mergeClasses(tabClassNames.icon,nt.base,nt[ut],lt&&nt.selected,j.icon.className)),j.contentReservedSpace&&(j.contentReservedSpace.className=mergeClasses(reservedSpaceClassNames.content,ot.base,ut==="large"?ot.largeSelected:ot.selected,j.icon?ot.iconBefore:ot.noIconBefore,ot.placeholder,j.content.className),j.contentReservedSpaceClassName=j.contentReservedSpace.className),j.content.className=mergeClasses(tabClassNames.content,ot.base,ut==="large"&&ot.large,lt&&(ut==="large"?ot.largeSelected:ot.selected),j.icon?ot.iconBefore:ot.noIconBefore,j.content.className),useTabAnimatedIndicatorStyles_unstable(j),j},Tab$1=reactExports.forwardRef((j,_e)=>{const et=useTab_unstable(j,_e);return useTabStyles_unstable(et),useCustomStyleHook("useTabStyles_unstable")(et),renderTab_unstable(et)});Tab$1.displayName="Tab";const useTabList_unstable=(j,_e)=>{const{appearance:et="transparent",reserveSelectedTabSpace:tt=!0,disabled:rt=!1,onTabSelect:nt,selectTabOnFocus:ot=!1,size:it="medium",vertical:st=!1}=j,lt=reactExports.useRef(null),ut=useArrowNavigationGroup({circular:!0,axis:st?"vertical":"horizontal",memorizeCurrent:!0}),[ct,dt]=useControllableState({state:j.selectedValue,defaultState:j.defaultSelectedValue,initialState:void 0}),ft=reactExports.useRef(void 0),pt=reactExports.useRef(void 0);reactExports.useEffect(()=>{pt.current=ft.current,ft.current=ct},[ct]);const gt=useEventCallback$3((yt,Et)=>{dt(Et.value),nt==null||nt(yt,Et)}),vt=reactExports.useRef({}),bt=useEventCallback$3(yt=>{vt.current[JSON.stringify(yt.value)]=yt}),_t=useEventCallback$3(yt=>{delete vt.current[JSON.stringify(yt.value)]}),xt=reactExports.useCallback(()=>({selectedValue:ft.current,previousSelectedValue:pt.current,registeredTabs:vt.current}),[]);return{components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,lt),role:"tablist","aria-orientation":st?"vertical":"horizontal",...ut,...j}),{elementType:"div"}),appearance:et,reserveSelectedTabSpace:tt,disabled:rt,selectTabOnFocus:ot,selectedValue:ct,size:it,vertical:st,onRegister:bt,onUnregister:_t,onSelect:gt,getRegisteredTabs:xt}},renderTabList_unstable=(j,_e)=>jsx$1(j.root,{children:jsx$1(TabListProvider,{value:_e.tabList,children:j.root.children})}),tabListClassNames={root:"fui-TabList"},useStyles$m=__styles({root:{mc9l5x:"f22iagw",Beiy3e4:"f1063pyq",Bnnss6s:"fi64zpg",Eh141a:"flvyvdh",qhf8xq:"f10pi13n"},horizontal:{Bt984gj:"f1q9h2pe",Beiy3e4:"f1063pyq"},vertical:{Bt984gj:"f1q9h2pe",Beiy3e4:"f1vx9l62"}},{d:[".f22iagw{display:flex;}",".f1063pyq{flex-direction:row;}",".fi64zpg{flex-shrink:0;}",".flvyvdh{flex-wrap:nowrap;}",".f10pi13n{position:relative;}",".f1q9h2pe{align-items:stretch;}",".f1vx9l62{flex-direction:column;}"]}),useTabListStyles_unstable=j=>{const{vertical:_e}=j,et=useStyles$m();return j.root.className=mergeClasses(tabListClassNames.root,et.root,_e?et.vertical:et.horizontal,j.root.className),j};function useTabListContextValues_unstable(j){const{appearance:_e,reserveSelectedTabSpace:et,disabled:tt,selectTabOnFocus:rt,selectedValue:nt,onRegister:ot,onUnregister:it,onSelect:st,getRegisteredTabs:lt,size:ut,vertical:ct}=j;return{tabList:{appearance:_e,reserveSelectedTabSpace:et,disabled:tt,selectTabOnFocus:rt,selectedValue:nt,onSelect:st,onRegister:ot,onUnregister:it,getRegisteredTabs:lt,size:ut,vertical:ct}}}const TabList=reactExports.forwardRef((j,_e)=>{const et=useTabList_unstable(j,_e),tt=useTabListContextValues_unstable(et);return useTabListStyles_unstable(et),useCustomStyleHook("useTabListStyles_unstable")(et),renderTabList_unstable(et,tt)});TabList.displayName="TabList";const useText_unstable=(j,_e)=>{const{wrap:et,truncate:tt,block:rt,italic:nt,underline:ot,strikethrough:it,size:st,font:lt,weight:ut,align:ct}=j;return{align:ct??"start",block:rt??!1,font:lt??"base",italic:nt??!1,size:st??300,strikethrough:it??!1,truncate:tt??!1,underline:ot??!1,weight:ut??"regular",wrap:et??!0,components:{root:"span"},root:always(getIntrinsicElementProps("span",{ref:_e,...j}),{elementType:"span"})}},renderText_unstable=j=>jsx$1(j.root,{}),textClassNames={root:"fui-Text"},useStyles$l=__styles({root:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi",Bhrd7zp:"figsok6",fsow6f:"fpgzoln",mc9l5x:"f1w7gpdv",Huce71:"f6juhto",B68tc82:"f1mtd64y",Bmxbyg5:"f1y7q3j9",ygn44y:"f2jf649"},nowrap:{Huce71:"fz5stix",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw"},truncate:{ygn44y:"f1cmbuwj"},block:{mc9l5x:"ftgm304"},italic:{B80ckks:"f1j4dglz"},underline:{w71qe1:"f13mvf36"},strikethrough:{w71qe1:"fv5q2k7"},strikethroughUnderline:{w71qe1:"f1drk4o6"},base100:{Be2twd7:"f13mqy1h",Bg96gwp:"fcpl73t"},base200:{Be2twd7:"fy9rknc",Bg96gwp:"fwrc4pm"},base400:{Be2twd7:"fod5ikn",Bg96gwp:"faaz57k"},base500:{Be2twd7:"f1pp30po",Bg96gwp:"f106mvju"},base600:{Be2twd7:"f1x0m3f5",Bg96gwp:"fb86gi6"},hero700:{Be2twd7:"fojgt09",Bg96gwp:"fcen8rp"},hero800:{Be2twd7:"fccw675",Bg96gwp:"f1ebx5kk"},hero900:{Be2twd7:"f15afnhw",Bg96gwp:"fr3w3wp"},hero1000:{Be2twd7:"fpyltcb",Bg96gwp:"f1ivgwrt"},monospace:{Bahqtrf:"f1fedwem"},numeric:{Bahqtrf:"f1uq0ln5"},weightMedium:{Bhrd7zp:"fdj6btp"},weightSemibold:{Bhrd7zp:"fl43uef"},weightBold:{Bhrd7zp:"flh3ekv"},alignCenter:{fsow6f:"f17mccla"},alignEnd:{fsow6f:"f12ymhq5"},alignJustify:{fsow6f:"f1j59e10"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fpgzoln{text-align:start;}",".f1w7gpdv{display:inline;}",".f6juhto{white-space:normal;}",".f1mtd64y{overflow-x:visible;}",".f1y7q3j9{overflow-y:visible;}",".f2jf649{text-overflow:clip;}",".fz5stix{white-space:nowrap;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f1cmbuwj{text-overflow:ellipsis;}",".ftgm304{display:block;}",".f1j4dglz{font-style:italic;}",".f13mvf36{text-decoration-line:underline;}",".fv5q2k7{text-decoration-line:line-through;}",".f1drk4o6{text-decoration-line:line-through underline;}",".f13mqy1h{font-size:var(--fontSizeBase100);}",".fcpl73t{line-height:var(--lineHeightBase100);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".f106mvju{line-height:var(--lineHeightBase500);}",".f1x0m3f5{font-size:var(--fontSizeBase600);}",".fb86gi6{line-height:var(--lineHeightBase600);}",".fojgt09{font-size:var(--fontSizeHero700);}",".fcen8rp{line-height:var(--lineHeightHero700);}",".fccw675{font-size:var(--fontSizeHero800);}",".f1ebx5kk{line-height:var(--lineHeightHero800);}",".f15afnhw{font-size:var(--fontSizeHero900);}",".fr3w3wp{line-height:var(--lineHeightHero900);}",".fpyltcb{font-size:var(--fontSizeHero1000);}",".f1ivgwrt{line-height:var(--lineHeightHero1000);}",".f1fedwem{font-family:var(--fontFamilyMonospace);}",".f1uq0ln5{font-family:var(--fontFamilyNumeric);}",".fdj6btp{font-weight:var(--fontWeightMedium);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".flh3ekv{font-weight:var(--fontWeightBold);}",".f17mccla{text-align:center;}",".f12ymhq5{text-align:end;}",".f1j59e10{text-align:justify;}"]}),useTextStyles_unstable=j=>{const _e=useStyles$l();return j.root.className=mergeClasses(textClassNames.root,_e.root,j.wrap===!1&&_e.nowrap,j.truncate&&_e.truncate,j.block&&_e.block,j.italic&&_e.italic,j.underline&&_e.underline,j.strikethrough&&_e.strikethrough,j.underline&&j.strikethrough&&_e.strikethroughUnderline,j.size===100&&_e.base100,j.size===200&&_e.base200,j.size===400&&_e.base400,j.size===500&&_e.base500,j.size===600&&_e.base600,j.size===700&&_e.hero700,j.size===800&&_e.hero800,j.size===900&&_e.hero900,j.size===1e3&&_e.hero1000,j.font==="monospace"&&_e.monospace,j.font==="numeric"&&_e.numeric,j.weight==="medium"&&_e.weightMedium,j.weight==="semibold"&&_e.weightSemibold,j.weight==="bold"&&_e.weightBold,j.align==="center"&&_e.alignCenter,j.align==="end"&&_e.alignEnd,j.align==="justify"&&_e.alignJustify,j.root.className),j},Text$2=reactExports.forwardRef((j,_e)=>{const et=useText_unstable(j,_e);return useTextStyles_unstable(et),useCustomStyleHook("useTextStyles_unstable")(et),renderText_unstable(et)});Text$2.displayName="Text";const disableScrollElementProp="__fluentDisableScrollElement";function useDisableBodyScroll(){const{targetDocument:j}=useFluent();return reactExports.useCallback(()=>{if(j)return disableScroll(j.body)},[j])}function disableScroll(j){var _e;const{clientWidth:et}=j.ownerDocument.documentElement;var tt;const rt=(tt=(_e=j.ownerDocument.defaultView)===null||_e===void 0?void 0:_e.innerWidth)!==null&&tt!==void 0?tt:0;return assertIsDisableScrollElement(j),j[disableScrollElementProp].count===0&&(j.style.overflow="hidden",j.style.paddingRight=`${rt-et}px`),j[disableScrollElementProp].count++,()=>{j[disableScrollElementProp].count--,j[disableScrollElementProp].count===0&&(j.style.overflow=j[disableScrollElementProp].previousOverflowStyle,j.style.paddingRight=j[disableScrollElementProp].previousPaddingRightStyle)}}function assertIsDisableScrollElement(j){var _e,et,tt;(tt=(_e=j)[et=disableScrollElementProp])!==null&&tt!==void 0||(_e[et]={count:0,previousOverflowStyle:j.style.overflow,previousPaddingRightStyle:j.style.paddingRight})}function useFocusFirstElement(j,_e){const{findFirstFocusable:et}=useFocusFinders(),{targetDocument:tt}=useFluent(),rt=reactExports.useRef(null);return reactExports.useEffect(()=>{if(!j)return;const nt=rt.current&&et(rt.current);if(nt)nt.focus();else{var ot;(ot=rt.current)===null||ot===void 0||ot.focus()}},[et,j,_e,tt]),rt}const defaultContextValue$2={open:!1,inertTrapFocus:!1,modalType:"modal",isNestedDialog:!1,dialogRef:{current:null},requestOpenChange(){}},DialogContext=createContext(void 0),DialogProvider=DialogContext.Provider,useDialogContext_unstable=j=>useContextSelector(DialogContext,(_e=defaultContextValue$2)=>j(_e)),defaultContextValue$1=!1,DialogSurfaceContext=reactExports.createContext(void 0),DialogSurfaceProvider=DialogSurfaceContext.Provider,useDialogSurfaceContext_unstable=()=>{var j;return(j=reactExports.useContext(DialogSurfaceContext))!==null&&j!==void 0?j:defaultContextValue$1},useDialog_unstable=j=>{const{children:_e,modalType:et="modal",onOpenChange:tt,inertTrapFocus:rt=!1}=j,[nt,ot]=childrenToTriggerAndContent(_e),[it,st]=useControllableState({state:j.open,defaultState:j.defaultOpen,initialState:!1}),lt=useEventCallback$3(gt=>{tt==null||tt(gt.event,gt),gt.event.isDefaultPrevented()||st(gt.open)}),ut=useFocusFirstElement(it,et),ct=useDisableBodyScroll(),dt=!!(it&&et!=="non-modal");useIsomorphicLayoutEffect$1(()=>{if(dt)return ct()},[ct,dt]);const{modalAttributes:ft,triggerAttributes:pt}=useModalAttributes({trapFocus:et!=="non-modal",legacyTrapFocus:!rt});return{components:{backdrop:"div"},inertTrapFocus:rt,open:it,modalType:et,content:ot,trigger:nt,requestOpenChange:lt,dialogTitleId:useId$1("dialog-title-"),isNestedDialog:useHasParentContext(DialogContext),dialogRef:ut,modalAttributes:et!=="non-modal"?ft:void 0,triggerAttributes:pt}};function childrenToTriggerAndContent(j){const _e=reactExports.Children.toArray(j);switch(_e.length){case 2:return _e;case 1:return[void 0,_e[0]];default:return[void 0,void 0]}}function _extends$r(){return _extends$r=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&(et[rt]=j[rt]);return et}function _setPrototypeOf$c(j,_e){return _setPrototypeOf$c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$c(j,_e)}function _inheritsLoose$1(j,_e){j.prototype=Object.create(_e.prototype),j.prototype.constructor=j,_setPrototypeOf$c(j,_e)}var propTypes$1={exports:{}},ReactPropTypesSecret$3="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",ReactPropTypesSecret_1$1=ReactPropTypesSecret$3,ReactPropTypesSecret$2=ReactPropTypesSecret_1$1;function emptyFunction$1(){}function emptyFunctionWithReset$1(){}emptyFunctionWithReset$1.resetWarningCache=emptyFunction$1;var factoryWithThrowingShims$1=function(){function j(tt,rt,nt,ot,it,st){if(st!==ReactPropTypesSecret$2){var lt=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw lt.name="Invariant Violation",lt}}j.isRequired=j;function _e(){return j}var et={array:j,bigint:j,bool:j,func:j,number:j,object:j,string:j,symbol:j,any:j,arrayOf:_e,element:j,elementType:j,instanceOf:_e,node:j,objectOf:_e,oneOf:_e,oneOfType:_e,shape:_e,exact:_e,checkPropTypes:emptyFunctionWithReset$1,resetWarningCache:emptyFunction$1};return et.PropTypes=et,et};propTypes$1.exports=factoryWithThrowingShims$1();var propTypesExports$1=propTypes$1.exports;const PropTypes$1=getDefaultExportFromCjs(propTypesExports$1),config$4={disabled:!1},TransitionGroupContext=React.createContext(null);var forceReflow=function(_e){return _e.scrollTop},UNMOUNTED="unmounted",EXITED="exited",ENTERING="entering",ENTERED="entered",EXITING="exiting",Transition=function(j){_inheritsLoose$1(_e,j);function _e(tt,rt){var nt;nt=j.call(this,tt,rt)||this;var ot=rt,it=ot&&!ot.isMounting?tt.enter:tt.appear,st;return nt.appearStatus=null,tt.in?it?(st=EXITED,nt.appearStatus=ENTERING):st=ENTERED:tt.unmountOnExit||tt.mountOnEnter?st=UNMOUNTED:st=EXITED,nt.state={status:st},nt.nextCallback=null,nt}_e.getDerivedStateFromProps=function(rt,nt){var ot=rt.in;return ot&&nt.status===UNMOUNTED?{status:EXITED}:null};var et=_e.prototype;return et.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},et.componentDidUpdate=function(rt){var nt=null;if(rt!==this.props){var ot=this.state.status;this.props.in?ot!==ENTERING&&ot!==ENTERED&&(nt=ENTERING):(ot===ENTERING||ot===ENTERED)&&(nt=EXITING)}this.updateStatus(!1,nt)},et.componentWillUnmount=function(){this.cancelNextCallback()},et.getTimeouts=function(){var rt=this.props.timeout,nt,ot,it;return nt=ot=it=rt,rt!=null&&typeof rt!="number"&&(nt=rt.exit,ot=rt.enter,it=rt.appear!==void 0?rt.appear:ot),{exit:nt,enter:ot,appear:it}},et.updateStatus=function(rt,nt){if(rt===void 0&&(rt=!1),nt!==null)if(this.cancelNextCallback(),nt===ENTERING){if(this.props.unmountOnExit||this.props.mountOnEnter){var ot=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this);ot&&forceReflow(ot)}this.performEnter(rt)}else this.performExit();else this.props.unmountOnExit&&this.state.status===EXITED&&this.setState({status:UNMOUNTED})},et.performEnter=function(rt){var nt=this,ot=this.props.enter,it=this.context?this.context.isMounting:rt,st=this.props.nodeRef?[it]:[ReactDOM.findDOMNode(this),it],lt=st[0],ut=st[1],ct=this.getTimeouts(),dt=it?ct.appear:ct.enter;if(!rt&&!ot||config$4.disabled){this.safeSetState({status:ENTERED},function(){nt.props.onEntered(lt)});return}this.props.onEnter(lt,ut),this.safeSetState({status:ENTERING},function(){nt.props.onEntering(lt,ut),nt.onTransitionEnd(dt,function(){nt.safeSetState({status:ENTERED},function(){nt.props.onEntered(lt,ut)})})})},et.performExit=function(){var rt=this,nt=this.props.exit,ot=this.getTimeouts(),it=this.props.nodeRef?void 0:ReactDOM.findDOMNode(this);if(!nt||config$4.disabled){this.safeSetState({status:EXITED},function(){rt.props.onExited(it)});return}this.props.onExit(it),this.safeSetState({status:EXITING},function(){rt.props.onExiting(it),rt.onTransitionEnd(ot.exit,function(){rt.safeSetState({status:EXITED},function(){rt.props.onExited(it)})})})},et.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},et.safeSetState=function(rt,nt){nt=this.setNextCallback(nt),this.setState(rt,nt)},et.setNextCallback=function(rt){var nt=this,ot=!0;return this.nextCallback=function(it){ot&&(ot=!1,nt.nextCallback=null,rt(it))},this.nextCallback.cancel=function(){ot=!1},this.nextCallback},et.onTransitionEnd=function(rt,nt){this.setNextCallback(nt);var ot=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this),it=rt==null&&!this.props.addEndListener;if(!ot||it){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var st=this.props.nodeRef?[this.nextCallback]:[ot,this.nextCallback],lt=st[0],ut=st[1];this.props.addEndListener(lt,ut)}rt!=null&&setTimeout(this.nextCallback,rt)},et.render=function(){var rt=this.state.status;if(rt===UNMOUNTED)return null;var nt=this.props,ot=nt.children;nt.in,nt.mountOnEnter,nt.unmountOnExit,nt.appear,nt.enter,nt.exit,nt.timeout,nt.addEndListener,nt.onEnter,nt.onEntering,nt.onEntered,nt.onExit,nt.onExiting,nt.onExited,nt.nodeRef;var it=_objectWithoutPropertiesLoose$i(nt,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return React.createElement(TransitionGroupContext.Provider,{value:null},typeof ot=="function"?ot(rt,it):React.cloneElement(React.Children.only(ot),it))},_e}(React.Component);Transition.contextType=TransitionGroupContext;Transition.propTypes={};function noop$6(){}Transition.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:noop$6,onEntering:noop$6,onEntered:noop$6,onExit:noop$6,onExiting:noop$6,onExited:noop$6};Transition.UNMOUNTED=UNMOUNTED;Transition.EXITED=EXITED;Transition.ENTERING=ENTERING;Transition.ENTERED=ENTERED;Transition.EXITING=EXITING;const Transition$1=Transition;function _assertThisInitialized$d(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}const defaultContextValue=void 0,DialogTransitionContext=reactExports.createContext(void 0),DialogTransitionProvider=DialogTransitionContext.Provider,useDialogTransitionContext_unstable=()=>{var j;return(j=reactExports.useContext(DialogTransitionContext))!==null&&j!==void 0?j:defaultContextValue},renderDialog_unstable=(j,_e)=>{const{content:et,trigger:tt}=j;return jsx$1(DialogProvider,{value:_e.dialog,children:jsxs(DialogSurfaceProvider,{value:_e.dialogSurface,children:[tt,jsx$1(Transition$1,{mountOnEnter:!0,unmountOnExit:!0,in:j.open,nodeRef:j.dialogRef,appear:!0,timeout:250,children:rt=>jsx$1(DialogTransitionProvider,{value:rt,children:et})})]})})};function useDialogContextValues_unstable(j){const{modalType:_e,open:et,dialogRef:tt,dialogTitleId:rt,isNestedDialog:nt,inertTrapFocus:ot,requestOpenChange:it,modalAttributes:st,triggerAttributes:lt}=j;return{dialog:{open:et,modalType:_e,dialogRef:tt,dialogTitleId:rt,isNestedDialog:nt,inertTrapFocus:ot,modalAttributes:st,triggerAttributes:lt,requestOpenChange:it},dialogSurface:!1}}const Dialog=reactExports.memo(j=>{const _e=useDialog_unstable(j),et=useDialogContextValues_unstable(_e);return renderDialog_unstable(_e,et)});Dialog.displayName="Dialog";const useDialogTrigger_unstable=j=>{const _e=useDialogSurfaceContext_unstable(),{children:et,disableButtonEnhancement:tt=!1,action:rt=_e?"close":"open"}=j,nt=getTriggerChild(et),ot=useDialogContext_unstable(ct=>ct.requestOpenChange),{triggerAttributes:it}=useModalAttributes(),st=useEventCallback$3(ct=>{var dt,ft;nt==null||(dt=(ft=nt.props).onClick)===null||dt===void 0||dt.call(ft,ct),ct.isDefaultPrevented()||ot({event:ct,type:"triggerClick",open:rt==="open"})}),lt={...nt==null?void 0:nt.props,ref:nt==null?void 0:nt.ref,onClick:st,...it},ut=useARIAButtonProps((nt==null?void 0:nt.type)==="button"||(nt==null?void 0:nt.type)==="a"?nt.type:"div",{...lt,type:"button"});return{children:applyTriggerPropsToChildren(et,tt?lt:ut)}},renderDialogTrigger_unstable=j=>j.children,DialogTrigger=j=>{const _e=useDialogTrigger_unstable(j);return renderDialogTrigger_unstable(_e)};DialogTrigger.displayName="DialogTrigger";DialogTrigger.isFluentTriggerComponent=!0;const useDialogSurface_unstable=(j,_e)=>{const et=useDialogContext_unstable(dt=>dt.modalType),tt=useDialogContext_unstable(dt=>dt.isNestedDialog),rt=useDialogTransitionContext_unstable(),nt=useDialogContext_unstable(dt=>dt.modalAttributes),ot=useDialogContext_unstable(dt=>dt.dialogRef),it=useDialogContext_unstable(dt=>dt.requestOpenChange),st=useDialogContext_unstable(dt=>dt.dialogTitleId),lt=useEventCallback$3(dt=>{if(isResolvedShorthand(j.backdrop)){var ft,pt;(ft=(pt=j.backdrop).onClick)===null||ft===void 0||ft.call(pt,dt)}et==="modal"&&!dt.isDefaultPrevented()&&it({event:dt,open:!1,type:"backdropClick"})}),ut=useEventCallback$3(dt=>{var ft;(ft=j.onKeyDown)===null||ft===void 0||ft.call(j,dt),dt.key===Escape&&!dt.isDefaultPrevented()&&(it({event:dt,open:!1,type:"escapeKeyDown"}),dt.preventDefault())}),ct=optional(j.backdrop,{renderByDefault:et!=="non-modal",defaultProps:{"aria-hidden":"true"},elementType:"div"});return ct&&(ct.onClick=lt),{components:{backdrop:"div",root:"div"},backdrop:ct,isNestedDialog:tt,transitionStatus:rt,mountNode:j.mountNode,root:always(getIntrinsicElementProps("div",{tabIndex:-1,"aria-modal":et!=="non-modal",role:et==="alert"?"alertdialog":"dialog","aria-labelledby":j["aria-label"]?void 0:st,...j,...nt,onKeyDown:ut,ref:useMergedRefs$1(_e,ot)}),{elementType:"div"})}},renderDialogSurface_unstable=(j,_e)=>jsxs(Portal$1,{mountNode:j.mountNode,children:[j.backdrop&&jsx$1(j.backdrop,{}),jsx$1(DialogSurfaceProvider,{value:_e.dialogSurface,children:jsx$1(j.root,{})})]}),dialogSurfaceClassNames={root:"fui-DialogSurface",backdrop:"fui-DialogSurface__backdrop"},useRootBaseStyle=__resetStyles("rhhzfde","r1n1tr5u",{r:[".rhhzfde{top:0;right:0;bottom:0;left:0;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px;margin-top:auto;margin-right:auto;margin-bottom:auto;margin-left:auto;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;overflow-x:unset;overflow-y:unset;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-color:var(--colorTransparentStroke);border-right-color:var(--colorTransparentStroke);border-bottom-color:var(--colorTransparentStroke);border-left-color:var(--colorTransparentStroke);border-bottom-right-radius:var(--borderRadiusXLarge);border-bottom-left-radius:var(--borderRadiusXLarge);border-top-right-radius:var(--borderRadiusXLarge);border-top-left-radius:var(--borderRadiusXLarge);display:block;-webkit-user-select:unset;-moz-user-select:unset;-ms-user-select:unset;user-select:unset;visibility:unset;position:fixed;height:fit-content;max-width:600px;max-height:100vh;box-sizing:border-box;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);}",".rhhzfde:focus{outline-style:none;}",".rhhzfde:focus-visible{outline-style:none;}",".rhhzfde[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.rhhzfde[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:2px;border-right-width:2px;border-bottom-width:2px;border-left-width:2px;border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".r1n1tr5u{top:0;left:0;bottom:0;right:0;padding-top:24px;padding-left:24px;padding-bottom:24px;padding-right:24px;margin-top:auto;margin-left:auto;margin-bottom:auto;margin-right:auto;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;overflow-x:unset;overflow-y:unset;border-top-width:1px;border-left-width:1px;border-bottom-width:1px;border-right-width:1px;border-top-color:var(--colorTransparentStroke);border-left-color:var(--colorTransparentStroke);border-bottom-color:var(--colorTransparentStroke);border-right-color:var(--colorTransparentStroke);border-bottom-left-radius:var(--borderRadiusXLarge);border-bottom-right-radius:var(--borderRadiusXLarge);border-top-left-radius:var(--borderRadiusXLarge);border-top-right-radius:var(--borderRadiusXLarge);display:block;-webkit-user-select:unset;-moz-user-select:unset;-ms-user-select:unset;user-select:unset;visibility:unset;position:fixed;height:fit-content;max-width:600px;max-height:100vh;box-sizing:border-box;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);}",".r1n1tr5u:focus{outline-style:none;}",".r1n1tr5u:focus-visible{outline-style:none;}",".r1n1tr5u[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.r1n1tr5u[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:2px;border-left-width:2px;border-bottom-width:2px;border-right-width:2px;border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.rhhzfde[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media screen and (max-width: 480px){.rhhzfde{max-width:100vw;}}","@media (forced-colors: active){.r1n1tr5u[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}","@media screen and (max-width: 480px){.r1n1tr5u{max-width:100vw;}}"]}),useRootStyles=__styles({animated:{abs64n:"fk73vx1",B3o57yi:"fc397y7",Bmy1vo4:"f1b86uth",Bkqvd7p:"f18ad807",E5pizo:"f1yzz98r",Bz10aip:"f15ofi6c"},unmounted:{},entering:{},entered:{E5pizo:"f10nrhrw",Bz10aip:"f186d0ee",abs64n:"f5p0z4x"},idle:{},exiting:{Bkqvd7p:"f1mfizis"},exited:{}},{d:[".fk73vx1{opacity:0;}",".fc397y7{transition-duration:var(--durationGentle);}",".f1b86uth{transition-property:opacity,transform,box-shadow;}",".f18ad807{transition-timing-function:var(--curveDecelerateMid);}",".f1yzz98r{box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.1);}",".f15ofi6c{transform:scale(0.85) translateZ(0);}",".f10nrhrw{box-shadow:var(--shadow64);}",".f186d0ee{transform:scale(1) translateZ(0);}",".f5p0z4x{opacity:1;}",".f1mfizis{transition-timing-function:var(--curveAccelerateMin);}"]}),useBackdropBaseStyle=__resetStyles("raidwwn","r17vltcu",[".raidwwn{top:0px;right:0px;bottom:0px;left:0px;background-color:rgba(0, 0, 0, 0.4);position:fixed;transition-duration:var(--durationGentle);transition-timing-function:var(--curveLinear);transition-property:opacity;will-change:opacity;opacity:0;}",".r17vltcu{top:0px;left:0px;bottom:0px;right:0px;background-color:rgba(0, 0, 0, 0.4);position:fixed;transition-duration:var(--durationGentle);transition-timing-function:var(--curveLinear);transition-property:opacity;will-change:opacity;opacity:0;}"]),useBackdropStyles$1=__styles({nestedDialogBackdrop:{De3pzq:"f1c21dwh"},unmounted:{},entering:{},entered:{abs64n:"f5p0z4x"},idle:{},exiting:{Bkqvd7p:"f1mfizis"},exited:{}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f5p0z4x{opacity:1;}",".f1mfizis{transition-timing-function:var(--curveAccelerateMin);}"]}),useDialogSurfaceStyles_unstable=j=>{const{isNestedDialog:_e,root:et,backdrop:tt,transitionStatus:rt}=j,nt=useRootBaseStyle(),ot=useRootStyles(),it=useBackdropBaseStyle(),st=useBackdropStyles$1();return et.className=mergeClasses(dialogSurfaceClassNames.root,nt,rt&&ot.animated,rt&&ot[rt],et.className),tt&&(tt.className=mergeClasses(dialogSurfaceClassNames.backdrop,it,_e&&st.nestedDialogBackdrop,rt&&st[rt],tt.className)),j};function useDialogSurfaceContextValues_unstable(j){return{dialogSurface:!0}}const DialogSurface=reactExports.forwardRef((j,_e)=>{const et=useDialogSurface_unstable(j,_e),tt=useDialogSurfaceContextValues_unstable();return useDialogSurfaceStyles_unstable(et),useCustomStyleHook("useDialogSurfaceStyles_unstable")(et),renderDialogSurface_unstable(et,tt)});DialogSurface.displayName="DialogSurface";const useCardSelectable=(j,{referenceLabel:_e,referenceId:et},tt)=>{const{checkbox:rt={},onSelectionChange:nt,floatingAction:ot,onClick:it,onKeyDown:st}=j,{findAllFocusable:lt}=useFocusFinders(),ut=reactExports.useRef(null),[ct,dt]=useControllableState({state:j.selected,defaultState:j.defaultSelected,initialState:!1}),ft=[j.selected,j.defaultSelected,nt].some(St=>typeof St<"u"),[pt,gt]=reactExports.useState(!1),vt=reactExports.useCallback(St=>{if(!tt.current)return!1;const $t=lt(tt.current),At=St.target,wt=$t.some(It=>It.contains(At)),Ct=(ut==null?void 0:ut.current)===At;return wt&&!Ct},[tt,lt]),bt=reactExports.useCallback(St=>{if(vt(St))return;const $t=!ct;dt($t),nt&&nt(St,{selected:$t})},[nt,ct,dt,vt]),_t=reactExports.useCallback(St=>{[Enter].includes(St.key)&&(St.preventDefault(),bt(St))},[bt]),xt=reactExports.useMemo(()=>{if(!ft||ot)return;const St={};return et?St["aria-labelledby"]=et:_e&&(St["aria-label"]=_e),optional(rt,{defaultProps:{ref:ut,type:"checkbox",checked:ct,onChange:$t=>bt($t),onFocus:()=>gt(!0),onBlur:()=>gt(!1),...St},elementType:"input"})},[rt,ot,ct,ft,bt,et,_e]),yt=reactExports.useMemo(()=>{if(ot)return optional(ot,{defaultProps:{ref:ut},elementType:"div"})},[ot]),Et=reactExports.useMemo(()=>ft?{onClick:mergeCallbacks(it,bt),onKeyDown:mergeCallbacks(st,_t)}:null,[ft,bt,it,st,_t]);return{selected:ct,selectable:ft,selectFocused:pt,selectableCardProps:Et,checkboxSlot:xt,floatingActionSlot:yt}},cardContext=reactExports.createContext(void 0),cardContextDefaultValue={selectableA11yProps:{referenceId:void 0,setReferenceId(){},referenceLabel:void 0,setReferenceLabel(){}}},CardProvider=cardContext.Provider,useCardContext_unstable=()=>{var j;return(j=reactExports.useContext(cardContext))!==null&&j!==void 0?j:cardContextDefaultValue},focusMap={off:void 0,"no-tab":"limited-trap-focus","tab-exit":"limited","tab-only":"unlimited"},useCardInteractive=({focusMode:j="off",..._e})=>{const et=["onClick","onDoubleClick","onMouseUp","onMouseDown","onPointerUp","onPointerDown","onTouchStart","onTouchEnd","onDragStart","onDragEnd"].some(nt=>_e[nt]),rt={...useFocusableGroup({tabBehavior:focusMap[et?"no-tab":j]}),tabIndex:0};return{interactive:et,focusAttributes:!et&&j==="off"?null:rt}},useCard_unstable=(j,_e)=>{const{appearance:et="filled",orientation:tt="vertical",size:rt="medium"}=j,[nt,ot]=reactExports.useState(cardContextDefaultValue.selectableA11yProps.referenceId),[it,st]=reactExports.useState(cardContextDefaultValue.selectableA11yProps.referenceId),lt=useFocusWithin(),{selectable:ut,selected:ct,selectableCardProps:dt,selectFocused:ft,checkboxSlot:pt,floatingActionSlot:gt}=useCardSelectable(j,{referenceId:nt,referenceLabel:it},lt),vt=useMergedRefs$1(lt,_e),{interactive:bt,focusAttributes:_t}=useCardInteractive(j);return{appearance:et,orientation:tt,size:rt,interactive:bt,selectable:ut,selectFocused:ft,selected:ct,selectableA11yProps:{setReferenceId:ot,referenceId:nt,referenceLabel:it,setReferenceLabel:st},components:{root:"div",floatingAction:"div",checkbox:"input"},root:always(getIntrinsicElementProps("div",{ref:vt,role:"group",..._t,...j,...dt}),{elementType:"div"}),floatingAction:gt,checkbox:pt}},renderCard_unstable=(j,_e)=>jsx$1(j.root,{children:jsxs(CardProvider,{value:_e,children:[j.checkbox?jsx$1(j.checkbox,{}):null,j.floatingAction?jsx$1(j.floatingAction,{}):null,j.root.children]})}),cardHeaderClassNames={root:"fui-CardHeader",image:"fui-CardHeader__image",header:"fui-CardHeader__header",description:"fui-CardHeader__description",action:"fui-CardHeader__action"},useStyles$k=__styles({root:{Bkc6ea2:"fkufhic",mc9l5x:"f13qh94s",t4k1zu:"f8a668j",Bt984gj:"f122n59"},image:{mc9l5x:"ftuwxu6",t21cq0:["fql5097","f6yss9k"],Br312pm:"fwpfdsa",Ijaq50:"fldnz9j"},header:{Br312pm:"fd46tj4",Ijaq50:"f16hsg94",mc9l5x:"f22iagw"},description:{Br312pm:"fd46tj4",Ijaq50:"faunodf",mc9l5x:"f22iagw"},action:{Frg6f3:["f6yss9k","fql5097"],Br312pm:"fis13di",Ijaq50:"fldnz9j"}},{d:[".fkufhic{--fui-CardHeader--gap:12px;}",".f13qh94s{display:grid;}",".f8a668j{grid-auto-columns:min-content 1fr min-content;}",".f122n59{align-items:center;}",".ftuwxu6{display:inline-flex;}",".fql5097{margin-right:var(--fui-CardHeader--gap);}",".f6yss9k{margin-left:var(--fui-CardHeader--gap);}",".fwpfdsa{grid-column-start:1;}",".fldnz9j{grid-row-start:span 2;}",".fd46tj4{grid-column-start:2;}",".f16hsg94{grid-row-start:1;}",".f22iagw{display:flex;}",".faunodf{grid-row-start:2;}",".fis13di{grid-column-start:3;}"]}),useCardHeaderStyles_unstable=j=>{const _e=useStyles$k();return j.root.className=mergeClasses(cardHeaderClassNames.root,_e.root,j.root.className),j.image&&(j.image.className=mergeClasses(cardHeaderClassNames.image,_e.image,j.image.className)),j.header&&(j.header.className=mergeClasses(cardHeaderClassNames.header,_e.header,j.header.className)),j.description&&(j.description.className=mergeClasses(cardHeaderClassNames.description,_e.description,j.description.className)),j.action&&(j.action.className=mergeClasses(cardHeaderClassNames.action,_e.action,j.action.className)),j},cardClassNames={root:"fui-Card",floatingAction:"fui-Card__floatingAction",checkbox:"fui-Card__checkbox"},useStyles$j=__styles({root:{B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",Bbmb7ep:["fifeqxg","f899z7z"],Beyfa6y:["f899z7z","fifeqxg"],B7oj6ja:["f4h3tyx","f18ur2pz"],Btl43ni:["f18ur2pz","f4h3tyx"],z8tnut:"f1lplnzb",z189sj:["f10m5gbb","f1k04kkk"],Byoj8tv:"fhftqfp",uwmqm3:["f1k04kkk","f10m5gbb"],i8kkvl:"fxsr4vj",Belr9w4:"fcvsdzp",mc9l5x:"f22iagw",qhf8xq:"f10pi13n",B7ck84d:"f1ewtqcl",sj55zd:"f19n0e5",E3zdtr:"f1mdlcz9",bn5sak:"frwkxtg",Eqx8gd:["f1n6gb5g","f15yvnhg"],B1piin3:["f15yvnhg","f1n6gb5g"],By385i5:"fo72kxq",Bsft5z2:"f13zj6fq",B80jsxd:"f1nwj1ja",Bm2nyyq:"f8rth92",Barhvk9:["flthirb","ftkbnf5"],Bw17bha:"f1lh990p",vfts7:["ftkbnf5","flthirb"],xrcqlc:"f6czdpx",Ihftqj:["f13hvwk3","f1en4csx"],Bcgy8vk:"f1i1u9k0",Bhxzhr1:["f1en4csx","f13hvwk3"],B3778ie:["f1qnomq5","f2fl922"],d9w3h3:["f2fl922","f1qnomq5"],Bl18szs:["f1anhtl","f1n2zcl3"],B4j8arr:["f1n2zcl3","f1anhtl"],B2jhnfs:"f16v3d5c",wiictr:"f1su8t2g"},focused:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bb7d1vk:"f226i61",zhwhgb:["f13kzufm","fsx75g8"],dhy2o1:"flujwa2",Gfyso:["fsx75g8","f13kzufm"],Bm4h7ae:"f15bsgw9",B7ys5i9:"f14e48fq",Busjfv9:"f18yb2kv",Bhk32uz:"fd6o370",Bf4ptjt:"fh1cnn4",kclons:["fy7oxxb","f184ne2d"],Bhdgwq3:"fpukqih",Blkhhs4:["f184ne2d","fy7oxxb"],Bqtpl0w:"f99gebs",clg4pj:["f13b0oaq","f8t2bz6"],hgwjuy:"f1jvq617",Bonggc9:["f8t2bz6","f13b0oaq"],B1tsrr9:["f11unbnk","fbd201q"],Dah5zi:["fbd201q","f11unbnk"],Bkh64rk:["f12nqxso","f1uguk4w"],qqdqy8:["f1uguk4w","f12nqxso"],B6dhp37:"f1dvezut",i03rao:["fd0oaoj","f1cwg4i8"],Boxcth7:"fjvm52t",Bsom6fd:["f1cwg4i8","fd0oaoj"],J0r882:"f15fr7a0",Bule8hv:["fwsq40z","fy0y4wt"],Bjwuhne:"f34ld9f",Ghsupd:["fy0y4wt","fwsq40z"]},selectableFocused:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",Bssx7fj:"f1b1k54r",uh7if5:["f4ne723","fqqcjud"],clntm0:"fh7aioi",Dlk2r6:["fqqcjud","f4ne723"],Bm3wd5j:"f1k55ka9",Bbrhkcr:["fgclinu","f16pcs8n"],f1oku:"fycbxed",aywvf2:["f16pcs8n","fgclinu"],B2j2mmj:"ffht0p2",wigs8:"f1p0ul1q",pbfy6t:"f1c901ms",B0v4ure:"f1alokd7",ghq09:"f78i1la",B24cy0v:["f1kvsw7t","f1bw8brt"],Bwckmig:"f8k7e5g",Bvwlmkc:["f1bw8brt","f1kvsw7t"],Bbgo44z:"f125hn41",Bil7v7r:["fgxkx34","f1v56tyl"],skfxo0:"fdxas6f",jo1ztg:["f1v56tyl","fgxkx34"],Ba3ybja:["fxwickw","f1ia5cve"],az1dzo:["f1ia5cve","fxwickw"],vppk2z:["f194aguw","fqicc6c"],B6352mv:["fqicc6c","f194aguw"],nr063g:"fq4eyks",Blmvk6g:["f1ya6x16","ftuszwa"],Bsiemmq:"f1e2iu44",B98u21t:["ftuszwa","f1ya6x16"],B2pnrqr:"f1amxum7",B29w5g4:["f1cec8w7","f554mv0"],Bhhzhcn:"f1sj6kbr",Bec0n69:["f554mv0","f1cec8w7"]},orientationHorizontal:{Beiy3e4:"f1063pyq",Bt984gj:"f122n59",Bnoktp0:"fpfyeui",Idhjb2:"fwi74qw",ihgzqh:["ffcmwrh","f6ppoih"],Bgp6ld0:["f1dc9p14","fd933vt"],Bbucpmy:"f18esqgw"},orientationVertical:{Beiy3e4:"f1vx9l62",Bt4kzjz:["fobhde4","fx5r7kn"],B1ou843:["fx5r7kn","fobhde4"],y1433z:"f19chtn8",B7egwnw:"fuvs6re",B49b4xf:"fy4glsf"},sizeSmall:{B7balbw:"f1pi9uxy",B1h88n7:"f1h1zgly"},sizeMedium:{B7balbw:"frsmuga",B1h88n7:"fuldkky"},sizeLarge:{B7balbw:"f1qua4xo",B1h88n7:"fimkt6v"},filled:{De3pzq:"fxugw4r",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},filledInteractive:{Bceei9c:"f1k6fduh",De3pzq:"fxugw4r",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Jwef8y:"f1knas48",Bvxd0ez:"f1m145df",ecr2s2:"fb40n2d"},filledInteractiveSelected:{De3pzq:"f1nfm20t",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"f1kz6goq"},filledAlternative:{De3pzq:"f1dmdbja",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},filledAlternativeInteractive:{Bceei9c:"f1k6fduh",De3pzq:"f1dmdbja",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Jwef8y:"f1uvynv3",Bvxd0ez:"f1m145df",ecr2s2:"f1yhgkbh"},filledAlternativeInteractiveSelected:{De3pzq:"fjxa0vh",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"fehi0vp"},outline:{De3pzq:"f1c21dwh",E5pizo:"f1couhl3",B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"]},outlineInteractive:{Bceei9c:"f1k6fduh",De3pzq:"f1c21dwh",E5pizo:"f1couhl3",B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"],Jwef8y:"fjxutwb",Be0v6ae:"f1llr77y",B5kxglz:["fzk0khw","fjj8tog"],B3pwyw6:"fb1u8ub",Bymgtzf:["fjj8tog","fzk0khw"],ecr2s2:"fophhak",dmfk:"f1uohb70",B4ofi8:["f1jm7v1n","f1bus3rq"],jgq6uv:"f1fbu7rr",Baxewws:["f1bus3rq","f1jm7v1n"]},outlineInteractiveSelected:{De3pzq:"f1q9pm1r",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"fg59vm4"},subtle:{De3pzq:"fhovq9v",E5pizo:"f1couhl3",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},subtleInteractive:{Bceei9c:"f1k6fduh",De3pzq:"fhovq9v",E5pizo:"f1couhl3",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Jwef8y:"f1t94bn6",ecr2s2:"f1wfn5kd"},subtleInteractiveSelected:{De3pzq:"fq5gl1p",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"f1uqaxdt"},highContrastSelected:{ycbfsm:"fkc42ay",Bsw6fvg:"f1rirnrt",Bbusuzp:"f1lkg8j3",xgfqdd:"f1nkj0oa",Bmmdzwq:"fey3rwa",zkpvhj:["f5jhx11","fff9uym"],B20bydw:"fm7n0jy",Bwwwggl:["fff9uym","f5jhx11"]},highContrastInteractive:{h1vhog:"fpfvv3l",kslmdy:"f1oamsm6",Baaf6ca:"f1il21bs",x9zz3d:"fnn5dk0",Bmmdzwq:"fey3rwa",zkpvhj:["f5jhx11","fff9uym"],B20bydw:"fm7n0jy",Bwwwggl:["fff9uym","f5jhx11"]},select:{qhf8xq:"f1euv43f",Bhzewxz:"fqclxi7",j35jbq:["fiv86kb","f36uhnt"],Bj3rh1h:"f19g0ac"},hiddenCheckbox:{B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",a9b677:"frkrog8",Bqenvij:"f1mpe4l3",qhf8xq:"f1euv43f",Bh84pgu:"fmf1zke",Bgl5zvf:"f1wch0ki",Huce71:"fz5stix"}},{d:[".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".fifeqxg{border-bottom-right-radius:var(--fui-Card--border-radius);}",".f899z7z{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f4h3tyx{border-top-right-radius:var(--fui-Card--border-radius);}",".f18ur2pz{border-top-left-radius:var(--fui-Card--border-radius);}",".f1lplnzb{padding-top:var(--fui-Card--size);}",".f10m5gbb{padding-right:var(--fui-Card--size);}",".f1k04kkk{padding-left:var(--fui-Card--size);}",".fhftqfp{padding-bottom:var(--fui-Card--size);}",".fxsr4vj{column-gap:var(--fui-Card--size);}",".fcvsdzp{row-gap:var(--fui-Card--size);}",".f22iagw{display:flex;}",".f10pi13n{position:relative;}",".f1ewtqcl{box-sizing:border-box;}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1mdlcz9::after{position:absolute;}",".frwkxtg::after{top:0;}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",".fo72kxq::after{bottom:0;}",'.f13zj6fq::after{content:"";}',".f1nwj1ja::after{pointer-events:none;}",".f8rth92::after{border-top-style:solid;}",".flthirb::after{border-right-style:solid;}",".ftkbnf5::after{border-left-style:solid;}",".f1lh990p::after{border-bottom-style:solid;}",".f6czdpx::after{border-top-width:var(--strokeWidthThin);}",".f13hvwk3::after{border-right-width:var(--strokeWidthThin);}",".f1en4csx::after{border-left-width:var(--strokeWidthThin);}",".f1i1u9k0::after{border-bottom-width:var(--strokeWidthThin);}",".f1qnomq5::after{border-bottom-right-radius:var(--fui-Card--border-radius);}",".f2fl922::after{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f1anhtl::after{border-top-right-radius:var(--fui-Card--border-radius);}",".f1n2zcl3::after{border-top-left-radius:var(--fui-Card--border-radius);}",".f16v3d5c>.fui-CardHeader,.f16v3d5c>.fui-CardFooter{flex-shrink:0;}",".f1su8t2g>:not(.fui-CardPreview):not(.fui-CardHeader):not(.fui-CardFooter){flex-grow:1;}",".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",'.f15bsgw9[data-fui-focus-visible]::after{content:"";}',".f14e48fq[data-fui-focus-visible]::after{position:absolute;}",".f18yb2kv[data-fui-focus-visible]::after{pointer-events:none;}",".fd6o370[data-fui-focus-visible]::after{z-index:1;}",".fh1cnn4[data-fui-focus-visible]::after{border-top-style:solid;}",".fy7oxxb[data-fui-focus-visible]::after{border-right-style:solid;}",".f184ne2d[data-fui-focus-visible]::after{border-left-style:solid;}",".fpukqih[data-fui-focus-visible]::after{border-bottom-style:solid;}",".f99gebs[data-fui-focus-visible]::after{border-top-width:var(--strokeWidthThick);}",".f13b0oaq[data-fui-focus-visible]::after{border-right-width:var(--strokeWidthThick);}",".f8t2bz6[data-fui-focus-visible]::after{border-left-width:var(--strokeWidthThick);}",".f1jvq617[data-fui-focus-visible]::after{border-bottom-width:var(--strokeWidthThick);}",".f11unbnk[data-fui-focus-visible]::after{border-bottom-right-radius:var(--fui-Card--border-radius);}",".fbd201q[data-fui-focus-visible]::after{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f12nqxso[data-fui-focus-visible]::after{border-top-right-radius:var(--fui-Card--border-radius);}",".f1uguk4w[data-fui-focus-visible]::after{border-top-left-radius:var(--fui-Card--border-radius);}",".f1dvezut[data-fui-focus-visible]::after{border-top-color:var(--colorStrokeFocus2);}",".fd0oaoj[data-fui-focus-visible]::after{border-right-color:var(--colorStrokeFocus2);}",".f1cwg4i8[data-fui-focus-visible]::after{border-left-color:var(--colorStrokeFocus2);}",".fjvm52t[data-fui-focus-visible]::after{border-bottom-color:var(--colorStrokeFocus2);}",".f15fr7a0[data-fui-focus-visible]::after{top:calc(0px - var(--strokeWidthThick) - -2px);}",".fwsq40z[data-fui-focus-visible]::after{right:calc(0px - var(--strokeWidthThick) - -2px);}",".fy0y4wt[data-fui-focus-visible]::after{left:calc(0px - var(--strokeWidthThick) - -2px);}",".f34ld9f[data-fui-focus-visible]::after{bottom:calc(0px - var(--strokeWidthThick) - -2px);}",".f1b1k54r[data-fui-focus-within]:focus-within{border-top-color:transparent;}",".f4ne723[data-fui-focus-within]:focus-within{border-right-color:transparent;}",".fqqcjud[data-fui-focus-within]:focus-within{border-left-color:transparent;}",".fh7aioi[data-fui-focus-within]:focus-within{border-bottom-color:transparent;}",'.ffht0p2[data-fui-focus-within]:focus-within::after{content:"";}',".f1p0ul1q[data-fui-focus-within]:focus-within::after{position:absolute;}",".f1c901ms[data-fui-focus-within]:focus-within::after{pointer-events:none;}",".f1alokd7[data-fui-focus-within]:focus-within::after{z-index:1;}",".f78i1la[data-fui-focus-within]:focus-within::after{border-top-style:solid;}",".f1kvsw7t[data-fui-focus-within]:focus-within::after{border-right-style:solid;}",".f1bw8brt[data-fui-focus-within]:focus-within::after{border-left-style:solid;}",".f8k7e5g[data-fui-focus-within]:focus-within::after{border-bottom-style:solid;}",".f125hn41[data-fui-focus-within]:focus-within::after{border-top-width:var(--strokeWidthThick);}",".fgxkx34[data-fui-focus-within]:focus-within::after{border-right-width:var(--strokeWidthThick);}",".f1v56tyl[data-fui-focus-within]:focus-within::after{border-left-width:var(--strokeWidthThick);}",".fdxas6f[data-fui-focus-within]:focus-within::after{border-bottom-width:var(--strokeWidthThick);}",".fxwickw[data-fui-focus-within]:focus-within::after{border-bottom-right-radius:var(--fui-Card--border-radius);}",".f1ia5cve[data-fui-focus-within]:focus-within::after{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f194aguw[data-fui-focus-within]:focus-within::after{border-top-right-radius:var(--fui-Card--border-radius);}",".fqicc6c[data-fui-focus-within]:focus-within::after{border-top-left-radius:var(--fui-Card--border-radius);}",".fq4eyks[data-fui-focus-within]:focus-within::after{border-top-color:var(--colorStrokeFocus2);}",".f1ya6x16[data-fui-focus-within]:focus-within::after{border-right-color:var(--colorStrokeFocus2);}",".ftuszwa[data-fui-focus-within]:focus-within::after{border-left-color:var(--colorStrokeFocus2);}",".f1e2iu44[data-fui-focus-within]:focus-within::after{border-bottom-color:var(--colorStrokeFocus2);}",".f1amxum7[data-fui-focus-within]:focus-within::after{top:calc(0px - var(--strokeWidthThick) - -2px);}",".f1cec8w7[data-fui-focus-within]:focus-within::after{right:calc(0px - var(--strokeWidthThick) - -2px);}",".f554mv0[data-fui-focus-within]:focus-within::after{left:calc(0px - var(--strokeWidthThick) - -2px);}",".f1sj6kbr[data-fui-focus-within]:focus-within::after{bottom:calc(0px - var(--strokeWidthThick) - -2px);}",".f1063pyq{flex-direction:row;}",".f122n59{align-items:center;}",".fpfyeui>.fui-CardPreview{margin-top:calc(var(--fui-Card--size) * -1);}",".fwi74qw>.fui-CardPreview{margin-bottom:calc(var(--fui-Card--size) * -1);}",'.ffcmwrh>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-left:calc(var(--fui-Card--size) * -1);}','.f6ppoih>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-right:calc(var(--fui-Card--size) * -1);}','.f1dc9p14>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-right:calc(var(--fui-Card--size) * -1);}','.fd933vt>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-left:calc(var(--fui-Card--size) * -1);}',".f18esqgw>.fui-CardHeader:last-of-type,.f18esqgw>.fui-CardFooter:last-of-type{flex-grow:1;}",".f1vx9l62{flex-direction:column;}",".fobhde4>.fui-CardPreview{margin-left:calc(var(--fui-Card--size) * -1);}",".fx5r7kn>.fui-CardPreview{margin-right:calc(var(--fui-Card--size) * -1);}",'.f19chtn8>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-top:calc(var(--fui-Card--size) * -1);}',".fuvs6re>.fui-Card__floatingAction+.fui-CardPreview{margin-top:calc(var(--fui-Card--size) * -1);}",'.fy4glsf>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-bottom:calc(var(--fui-Card--size) * -1);}',".f1pi9uxy{--fui-Card--size:8px;}",".f1h1zgly{--fui-Card--border-radius:var(--borderRadiusSmall);}",".frsmuga{--fui-Card--size:12px;}",".fuldkky{--fui-Card--border-radius:var(--borderRadiusMedium);}",".f1qua4xo{--fui-Card--size:16px;}",".fimkt6v{--fui-Card--border-radius:var(--borderRadiusLarge);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1whvlc6{box-shadow:var(--shadow4);}",".f16gxe2i::after{border-top-color:var(--colorTransparentStroke);}",".fpgykix::after{border-right-color:var(--colorTransparentStroke);}",".fzybk4o::after{border-left-color:var(--colorTransparentStroke);}",".f1osi826::after{border-bottom-color:var(--colorTransparentStroke);}",".f1k6fduh{cursor:pointer;}",".f1nfm20t{background-color:var(--colorNeutralBackground1Selected);}",".f16eln5f::after{border-top-color:var(--colorNeutralStroke1Selected);}",".fa2okxs::after{border-right-color:var(--colorNeutralStroke1Selected);}",".fg4zq3l::after{border-left-color:var(--colorNeutralStroke1Selected);}",".ff6932p::after{border-bottom-color:var(--colorNeutralStroke1Selected);}",".f1dmdbja{background-color:var(--colorNeutralBackground2);}",".fjxa0vh{background-color:var(--colorNeutralBackground2Selected);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1couhl3{box-shadow:none;}",".ft83z1f::after{border-top-color:var(--colorNeutralStroke1);}",".f1g4150c::after{border-right-color:var(--colorNeutralStroke1);}",".f192dr6e::after{border-left-color:var(--colorNeutralStroke1);}",".f1qnawh6::after{border-bottom-color:var(--colorNeutralStroke1);}",".f1q9pm1r{background-color:var(--colorTransparentBackgroundSelected);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fq5gl1p{background-color:var(--colorSubtleBackgroundSelected);}",".f1euv43f{position:absolute;}",".fqclxi7{top:4px;}",".fiv86kb{right:4px;}",".f36uhnt{left:4px;}",".f19g0ac{z-index:1;}",".frkrog8{width:1px;}",".f1mpe4l3{height:1px;}",".fmf1zke{clip:rect(0 0 0 0);}",".f1wch0ki{clip-path:inset(50%);}",".fz5stix{white-space:nowrap;}"],f:[".ftqa4ok:focus{outline-style:none;}"],i:[".f2hkw1w:focus-visible{outline-style:none;}"],m:[["@media (forced-colors: active){.f226i61[data-fui-focus-visible]::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f13kzufm[data-fui-focus-visible]::after{border-right-color:Highlight;}.fsx75g8[data-fui-focus-visible]::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.flujwa2[data-fui-focus-visible]::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1k55ka9[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f16pcs8n[data-fui-focus-within]:focus-within::after{border-left-color:Highlight;}.fgclinu[data-fui-focus-within]:focus-within::after{border-right-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fycbxed[data-fui-focus-within]:focus-within::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1rirnrt{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lkg8j3{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1nkj0oa .fui-CardPreview,.f1nkj0oa .fui-CardFooter{forced-color-adjust:auto;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fey3rwa::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f5jhx11::after{border-right-color:Highlight;}.fff9uym::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fm7n0jy::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fpfvv3l:hover,.fpfvv3l :active{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1oamsm6:hover,.f1oamsm6 :active{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1il21bs:hover,.f1il21bs :active{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fnn5dk0:hover .fui-CardPreview,.fnn5dk0 :active .fui-CardPreview,.fnn5dk0:hover .fui-CardFooter,.fnn5dk0 :active .fui-CardFooter{forced-color-adjust:auto;}}",{m:"(forced-colors: active)"}]],h:[".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}",".f1m145df:hover{box-shadow:var(--shadow8);}",".f1kz6goq:hover{background-color:var(--colorNeutralBackground1Selected);}",".f1uvynv3:hover{background-color:var(--colorNeutralBackground2Hover);}",".fehi0vp:hover{background-color:var(--colorNeutralBackground2Selected);}",".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".f1llr77y:hover::after{border-top-color:var(--colorNeutralStroke1Hover);}",".fzk0khw:hover::after{border-right-color:var(--colorNeutralStroke1Hover);}",".fjj8tog:hover::after{border-left-color:var(--colorNeutralStroke1Hover);}",".fb1u8ub:hover::after{border-bottom-color:var(--colorNeutralStroke1Hover);}",".fg59vm4:hover{background-color:var(--colorTransparentBackgroundSelected);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".f1uqaxdt:hover{background-color:var(--colorSubtleBackgroundSelected);}"],a:[".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}",".f1yhgkbh:active{background-color:var(--colorNeutralBackground2Pressed);}",".fophhak:active{background-color:var(--colorTransparentBackgroundPressed);}",".f1uohb70:active::after{border-top-color:var(--colorNeutralStroke1Pressed);}",".f1jm7v1n:active::after{border-right-color:var(--colorNeutralStroke1Pressed);}",".f1bus3rq:active::after{border-left-color:var(--colorNeutralStroke1Pressed);}",".f1fbu7rr:active::after{border-bottom-color:var(--colorNeutralStroke1Pressed);}",".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}"]}),useCardStyles_unstable=j=>{const _e=useStyles$j(),et={horizontal:_e.orientationHorizontal,vertical:_e.orientationVertical},tt={small:_e.sizeSmall,medium:_e.sizeMedium,large:_e.sizeLarge},rt={filled:_e.filled,"filled-alternative":_e.filledAlternative,outline:_e.outline,subtle:_e.subtle},nt={filled:_e.filledInteractiveSelected,"filled-alternative":_e.filledAlternativeInteractiveSelected,outline:_e.outlineInteractiveSelected,subtle:_e.subtleInteractiveSelected},ot={filled:_e.filledInteractive,"filled-alternative":_e.filledAlternativeInteractive,outline:_e.outlineInteractive,subtle:_e.subtleInteractive},it=j.interactive||j.selectable,st=reactExports.useMemo(()=>j.selectable?j.selectFocused?_e.selectableFocused:"":_e.focused,[j.selectFocused,j.selectable,_e.focused,_e.selectableFocused]);return j.root.className=mergeClasses(cardClassNames.root,_e.root,et[j.orientation],tt[j.size],rt[j.appearance],it&&ot[j.appearance],j.selected&&nt[j.appearance],st,it&&_e.highContrastInteractive,j.selected&&_e.highContrastSelected,j.root.className),j.floatingAction&&(j.floatingAction.className=mergeClasses(cardClassNames.floatingAction,_e.select,j.floatingAction.className)),j.checkbox&&(j.checkbox.className=mergeClasses(cardClassNames.checkbox,_e.hiddenCheckbox,j.checkbox.className)),j};function useCardContextValue({selectableA11yProps:j}){return{selectableA11yProps:j}}const Card=reactExports.forwardRef((j,_e)=>{const et=useCard_unstable(j,_e),tt=useCardContextValue(et);return useCardStyles_unstable(et),renderCard_unstable(et,tt)});Card.displayName="Card";function getChildWithId(j){function _e(et){return reactExports.isValidElement(et)&&!!et.props.id}return reactExports.Children.toArray(j).find(_e)}function getReferenceId(j,_e,et){return j||(_e!=null&&_e.props.id?_e.props.id:et)}const useCardHeader_unstable=(j,_e)=>{const{image:et,header:tt,description:rt,action:nt}=j,{selectableA11yProps:{referenceId:ot,setReferenceId:it}}=useCardContext_unstable(),st=reactExports.useRef(null),lt=reactExports.useRef(!1),ut=useId$1(cardHeaderClassNames.header,ot),ct=optional(tt,{renderByDefault:!0,defaultProps:{ref:st,id:lt.current?void 0:ot},elementType:"div"});return reactExports.useEffect(()=>{var dt;const ft=lt.current||(dt=st.current)===null||dt===void 0?void 0:dt.id,pt=getChildWithId(ct==null?void 0:ct.children);lt.current=!!pt,it(getReferenceId(ft,pt,ut))},[ut,tt,ct,it]),{components:{root:"div",image:"div",header:"div",description:"div",action:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"}),image:optional(et,{elementType:"div"}),header:ct,description:optional(rt,{elementType:"div"}),action:optional(nt,{elementType:"div"})}},renderCardHeader_unstable=j=>jsxs(j.root,{children:[j.image&&jsx$1(j.image,{}),jsx$1(j.header,{}),j.description&&jsx$1(j.description,{}),j.action&&jsx$1(j.action,{})]}),CardHeader=reactExports.forwardRef((j,_e)=>{const et=useCardHeader_unstable(j,_e);return useCardHeaderStyles_unstable(et),renderCardHeader_unstable(et)});CardHeader.displayName="CardHeader";function getIntentIcon(j){switch(j){case"info":return reactExports.createElement(InfoFilled,null);case"warning":return reactExports.createElement(WarningFilled,null);case"error":return reactExports.createElement(ErrorCircleFilled,null);case"success":return reactExports.createElement(CheckmarkCircleFilled,null);default:return null}}function useMessageBarReflow(j=!1){const{targetDocument:_e}=useFluent(),et=reactExports.useReducer(()=>({}),{})[1],tt=reactExports.useRef(!1),rt=reactExports.useRef(null),nt=reactExports.useRef(-1),ot=reactExports.useCallback(st=>{const lt=st[0],ut=lt==null?void 0:lt.borderBoxSize[0];if(!ut||!lt)return;const{inlineSize:ct}=ut,{target:dt}=lt;if(!isHTMLElement$4(dt))return;let ft;if(tt.current)nt.current{var lt;if(!j||!st||!(_e!=null&&_e.defaultView))return;(lt=rt.current)===null||lt===void 0||lt.disconnect();const ut=_e.defaultView,ct=new ut.ResizeObserver(ot);rt.current=ct,ct.observe(st,{box:"border-box"})},[_e,ot,j]);return reactExports.useEffect(()=>()=>{var st;(st=rt.current)===null||st===void 0||st.disconnect()},[]),{ref:it,reflowing:tt.current}}const messageBarTransitionContext=reactExports.createContext(void 0),messageBarTransitionContextDefaultValue={className:"",nodeRef:reactExports.createRef()};messageBarTransitionContext.Provider;const useMessageBarTransitionContext=()=>{var j;return(j=reactExports.useContext(messageBarTransitionContext))!==null&&j!==void 0?j:messageBarTransitionContextDefaultValue},useMessageBar_unstable=(j,_e)=>{const{layout:et="auto",intent:tt="info",politeness:rt,shape:nt="rounded"}=j,ot=rt??tt==="info"?"polite":"assertive",it=et==="auto",{ref:st,reflowing:lt}=useMessageBarReflow(it),ut=it?lt?"multiline":"singleline":et,{className:ct,nodeRef:dt}=useMessageBarTransitionContext(),ft=reactExports.useRef(null),pt=reactExports.useRef(null),{announce:gt}=useAnnounce(),vt=useId$1();return reactExports.useEffect(()=>{var bt,_t;const xt=(bt=pt.current)===null||bt===void 0?void 0:bt.textContent,yt=(_t=ft.current)===null||_t===void 0?void 0:_t.textContent,Et=[xt,yt].filter(Boolean).join(",");gt(Et,{polite:ot==="polite",alert:ot==="assertive"})},[pt,ft,gt,ot]),{components:{root:"div",icon:"div"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,st,dt),role:"group","aria-labelledby":vt,...j}),{elementType:"div"}),icon:optional(j.icon,{renderByDefault:!0,elementType:"div",defaultProps:{children:getIntentIcon(tt)}}),layout:ut,intent:tt,transitionClassName:ct,actionsRef:ft,bodyRef:pt,titleId:vt,shape:nt}},messageBarContext=reactExports.createContext(void 0),messageBarContextDefaultValue={titleId:"",layout:"singleline",actionsRef:reactExports.createRef(),bodyRef:reactExports.createRef()},MessageBarContextProvider=messageBarContext.Provider,useMessageBarContext=()=>{var j;return(j=reactExports.useContext(messageBarContext))!==null&&j!==void 0?j:messageBarContextDefaultValue},renderMessageBar_unstable=(j,_e)=>jsx$1(MessageBarContextProvider,{value:_e.messageBar,children:jsxs(j.root,{children:[j.icon&&jsx$1(j.icon,{}),j.root.children]})}),messageBarClassNames={root:"fui-MessageBar",icon:"fui-MessageBar__icon"},useRootBaseStyles$2=__resetStyles("rashqx","ri1c0vc",['.rashqx{white-space:nowrap;display:grid;grid-template-columns:auto 1fr auto auto;grid-template-rows:1fr;grid-template-areas:"icon body secondaryActions actions";padding-left:var(--spacingHorizontalM);border-top-width:var(--strokeWidthThin);border-right-width:var(--strokeWidthThin);border-bottom-width:var(--strokeWidthThin);border-left-width:var(--strokeWidthThin);border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:var(--colorNeutralStroke1);border-right-color:var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStroke1);border-left-color:var(--colorNeutralStroke1);border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);align-items:center;min-height:36px;box-sizing:border-box;background-color:var(--colorNeutralBackground3);}','.ri1c0vc{white-space:nowrap;display:grid;grid-template-columns:auto 1fr auto auto;grid-template-rows:1fr;grid-template-areas:"icon body secondaryActions actions";padding-right:var(--spacingHorizontalM);border-top-width:var(--strokeWidthThin);border-left-width:var(--strokeWidthThin);border-bottom-width:var(--strokeWidthThin);border-right-width:var(--strokeWidthThin);border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-color:var(--colorNeutralStroke1);border-left-color:var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStroke1);border-right-color:var(--colorNeutralStroke1);border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);align-items:center;min-height:36px;box-sizing:border-box;background-color:var(--colorNeutralBackground3);}']),useIconBaseStyles=__resetStyles("r1bxgyar","rv8i6h8",[".r1bxgyar{grid-row-start:icon;grid-column-start:icon;grid-row-end:icon;grid-column-end:icon;font-size:var(--fontSizeBase500);margin-right:var(--spacingHorizontalS);color:var(--colorNeutralForeground3);display:flex;align-items:center;}",".rv8i6h8{grid-row-start:icon;grid-column-start:icon;grid-row-end:icon;grid-column-end:icon;font-size:var(--fontSizeBase500);margin-left:var(--spacingHorizontalS);color:var(--colorNeutralForeground3);display:flex;align-items:center;}"]),useStyles$i=__styles({rootMultiline:{Huce71:"f6juhto",Bt984gj:"f1s2louj",z8tnut:"f1ngh7ph",Budl1dq:"f17g0uqy",zoa1oz:"f1w7oly7"},secondaryActionsMultiline:{Brf1p80:"f1e8xxv9",B6of3ja:"f1gaxbfw",jrapky:"fqcjy3b",t21cq0:["fibjyge","f9yszdx"]},square:{Bbmb7ep:["f1krrbdw","f1deotkl"],Beyfa6y:["f1deotkl","f1krrbdw"],B7oj6ja:["f10ostut","f1ozlkrg"],Btl43ni:["f1ozlkrg","f10ostut"]}},{d:[".f6juhto{white-space:normal;}",".f1s2louj{align-items:start;}",".f1ngh7ph{padding-top:var(--spacingVerticalMNudge);}",".f17g0uqy{grid-template-columns:auto 1fr auto;}",'.f1w7oly7{grid-template-areas:"icon body actions" "secondaryActions secondaryActions secondaryActions";}',".f1e8xxv9{justify-content:end;}",".f1gaxbfw{margin-top:var(--spacingVerticalMNudge);}",".fqcjy3b{margin-bottom:var(--spacingVerticalS);}",".fibjyge{margin-right:0px;}",".f9yszdx{margin-left:0px;}",".f1krrbdw{border-bottom-right-radius:0;}",".f1deotkl{border-bottom-left-radius:0;}",".f10ostut{border-top-right-radius:0;}",".f1ozlkrg{border-top-left-radius:0;}"]}),useIconIntentStyles=__styles({info:{},error:{sj55zd:"f1ca9wz"},warning:{sj55zd:"f14a4cve"},success:{sj55zd:"f36rra6"}},{d:[".f1ca9wz{color:var(--colorStatusDangerForeground1);}",".f14a4cve{color:var(--colorStatusWarningForeground3);}",".f36rra6{color:var(--colorStatusSuccessForeground1);}"]}),useRootIntentStyles=__styles({info:{},error:{De3pzq:"f1eon7jj",g2u3we:"f1f8dvr7",h3c5rm:["f1g1ijmo","f1nxacbt"],B9xav0g:"fo25q1j",zhjwy3:["f1nxacbt","f1g1ijmo"]},warning:{De3pzq:"f13ftzij",g2u3we:"frd1ypx",h3c5rm:["f1gyjrma","f18qd5xz"],B9xav0g:"fqyqtrt",zhjwy3:["f18qd5xz","f1gyjrma"]},success:{De3pzq:"f64thcm",g2u3we:"f1b4u7v",h3c5rm:["f1nyd2b1","f70v3om"],B9xav0g:"fk173vo",zhjwy3:["f70v3om","f1nyd2b1"]}},{d:[".f1eon7jj{background-color:var(--colorStatusDangerBackground1);}",".f1f8dvr7{border-top-color:var(--colorStatusDangerBorder1);}",".f1g1ijmo{border-right-color:var(--colorStatusDangerBorder1);}",".f1nxacbt{border-left-color:var(--colorStatusDangerBorder1);}",".fo25q1j{border-bottom-color:var(--colorStatusDangerBorder1);}",".f13ftzij{background-color:var(--colorStatusWarningBackground1);}",".frd1ypx{border-top-color:var(--colorStatusWarningBorder1);}",".f1gyjrma{border-right-color:var(--colorStatusWarningBorder1);}",".f18qd5xz{border-left-color:var(--colorStatusWarningBorder1);}",".fqyqtrt{border-bottom-color:var(--colorStatusWarningBorder1);}",".f64thcm{background-color:var(--colorStatusSuccessBackground1);}",".f1b4u7v{border-top-color:var(--colorStatusSuccessBorder1);}",".f1nyd2b1{border-right-color:var(--colorStatusSuccessBorder1);}",".f70v3om{border-left-color:var(--colorStatusSuccessBorder1);}",".fk173vo{border-bottom-color:var(--colorStatusSuccessBorder1);}"]}),useMessageBarStyles_unstable=j=>{const _e=useRootBaseStyles$2(),et=useIconBaseStyles(),tt=useIconIntentStyles(),rt=useRootIntentStyles(),nt=useStyles$i();return j.root.className=mergeClasses(messageBarClassNames.root,_e,j.layout==="multiline"&&nt.rootMultiline,j.shape==="square"&&nt.square,rt[j.intent],j.transitionClassName,j.root.className),j.icon&&(j.icon.className=mergeClasses(messageBarClassNames.icon,et,tt[j.intent],j.icon.className)),j};function useMessageBarContextValue_unstable(j){const{layout:_e,actionsRef:et,bodyRef:tt,titleId:rt}=j;return{messageBar:reactExports.useMemo(()=>({layout:_e,actionsRef:et,bodyRef:tt,titleId:rt}),[_e,et,tt,rt])}}const MessageBar=reactExports.forwardRef((j,_e)=>{const et=useMessageBar_unstable(j,_e);return useMessageBarStyles_unstable(et),useCustomStyleHook("useMessageBarStyles_unstable")(et),renderMessageBar_unstable(et,useMessageBarContextValue_unstable(et))});MessageBar.displayName="MessageBar";const useMessageBarTitle_unstable=(j,_e)=>{const{titleId:et}=useMessageBarContext();return{components:{root:"span"},root:always(getIntrinsicElementProps("span",{ref:_e,id:et,...j}),{elementType:"span"})}},renderMessageBarTitle_unstable=j=>jsx$1(j.root,{}),messageBarTitleClassNames={root:"fui-MessageBarTitle"},useRootBaseStyles$1=__resetStyles("r168xkm9",null,[".r168xkm9{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase300);}",'.r168xkm9::after{content:" ";}']),useMessageBarTitleStyles_unstable=j=>{const _e=useRootBaseStyles$1();return j.root.className=mergeClasses(messageBarTitleClassNames.root,_e,j.root.className),j},MessageBarTitle=reactExports.forwardRef((j,_e)=>{const et=useMessageBarTitle_unstable(j,_e);return useMessageBarTitleStyles_unstable(et),useCustomStyleHook("useMessageBarTitleStyles_unstable")(et),renderMessageBarTitle_unstable(et)});MessageBarTitle.displayName="MessageBarTitle";const useMessageBarBody_unstable=(j,_e)=>{const{bodyRef:et}=useMessageBarContext();return{components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,et),...j}),{elementType:"div"})}},renderMessageBarBody_unstable=j=>jsx$1(j.root,{}),messageBarBodyClassNames={root:"fui-MessageBarBody"},useRootBaseStyles=__resetStyles("rnv3mfe","r1ixc1x8",[".rnv3mfe{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);grid-row-start:body;grid-column-start:body;grid-row-end:body;grid-column-end:body;padding-right:var(--spacingHorizontalM);}",".r1ixc1x8{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);grid-row-start:body;grid-column-start:body;grid-row-end:body;grid-column-end:body;padding-left:var(--spacingHorizontalM);}"]),useMessageBarBodyStyles_unstable=j=>{const _e=useRootBaseStyles();return j.root.className=mergeClasses(messageBarBodyClassNames.root,_e,j.root.className),j},MessageBarBody=reactExports.forwardRef((j,_e)=>{const et=useMessageBarBody_unstable(j,_e);return useMessageBarBodyStyles_unstable(et),useCustomStyleHook("useMessageBarBodyStyles_unstable")(et),renderMessageBarBody_unstable(et)});MessageBarBody.displayName="MessageBarBody";const useReducedMotion=()=>{var j;const _e=useFluent(),et=reactExports.useRef(!1),tt=canUseDOM$3()&&((j=_e.targetDocument)===null||j===void 0?void 0:j.defaultView),rt=reactExports.useCallback(nt=>{et.current=nt.matches},[]);return useIsomorphicLayoutEffect$1(()=>{if(!tt||!tt.matchMedia)return;const nt=tt.matchMedia("screen and (prefers-reduced-motion: reduce)");return nt.matches&&(et.current=!0),nt.addEventListener("change",rt),()=>nt.removeEventListener("change",rt)},[rt,tt]),et.current},getCSSStyle=j=>hasCSSOMSupport(j)?j.computedStyleMap():getElementComputedStyle(j),hasCSSOMSupport=j=>!!(typeof CSS<"u"&&CSS.number&&j.computedStyleMap),getElementComputedStyle=j=>{var _e,et;const tt=canUseDOM$3()&&((et=(_e=j.ownerDocument)===null||_e===void 0?void 0:_e.defaultView)!==null&&et!==void 0?et:window);return tt?tt.getComputedStyle(j,null):{getPropertyValue:rt=>""}};function toMs(j){const _e=j.trim();if(_e.includes("auto"))return 0;if(_e.endsWith("ms")){const et=Number(_e.replace("ms",""));return isNaN(et)?0:et}return Number(_e.slice(0,-1).replace(",","."))*1e3}const getComputedMapProp=(j,_e)=>{const et=j.getAll(_e);return et.length>0?et.map(({value:tt,unit:rt})=>`${tt}${rt}`):["0"]},getComputedStyleProp=(j,_e)=>{const et=j.getPropertyValue(_e);return et?et.split(","):["0"]},getMaxCSSDuration=(j,_e)=>{const et=Math.max(j.length,_e.length),tt=[];if(et===0)return 0;for(let rt=0;rt{const _e=hasCSSOMSupport(j),et=getCSSStyle(j),tt=ot=>_e?getComputedMapProp(et,ot):getComputedStyleProp(et,ot),rt=getMaxCSSDuration(tt("transition-duration"),tt("transition-delay")),nt=getMaxCSSDuration(tt("animation-duration"),tt("animation-delay"));return Math.max(rt,nt)},useFirstMountCondition=j=>{const _e=reactExports.useRef(!0);return _e.current&&j?(_e.current=!1,!0):_e.current};function useMotionPresence(j,_e={}){const{animateOnFirstMount:et,duration:tt}={animateOnFirstMount:!1,..._e},[rt,nt]=reactExports.useState(j&&et?"entering":j?"idle":"unmounted"),[ot,it]=reactExports.useState(!et&&j),[st,lt]=useTimeout(),[ut,ct]=useTimeout(),[dt,ft]=useAnimationFrame(),[pt,gt]=reactExports.useState(null),vt=useReducedMotion(),bt=useFirstMount(),_t=useFirstMountCondition(!!pt),xt=reactExports.useRef(j).current,yt=vt||_t&&xt&&!et,Et=reactExports.useCallback(At=>{At&>(At)},[]),St=reactExports.useCallback(At=>(ut(()=>dt(At),0),()=>{ct(),ft()}),[ft,ct,dt,ut]),$t=reactExports.useCallback(()=>{nt(j?"entered":"exited"),St(()=>nt(j?"idle":"unmounted"))},[St,j]);return reactExports.useEffect(()=>{if(!bt){if(yt){nt(j?"idle":"unmounted"),it(j);return}if(nt(j?"entering":"exiting"),!!pt)return St(()=>{it(j),St(()=>{const At=tt||getMotionDuration(pt);if(At===0){$t();return}st(()=>$t(),At)})}),()=>lt()}},[pt,yt,$t,j]),reactExports.useMemo(()=>({ref:Et,type:rt,active:ot,canRender:j||rt!=="unmounted"}),[ot,rt,j])}function useMotion(j,_e){const et=typeof j=="object",tt=useMotionPresence(et?!1:j,_e);return et?j:tt}const useReducedMotionStyles=__styles({reduced:{Hwfdqs:"f1bggi9a"}},{m:[["@media screen and (prefers-reduced-motion: reduce){.f1bggi9a{transition-duration:0.01ms!important;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]});function assertMotionStyles(j){}const useMotionClassNames=(j,_e)=>{const{reduced:et}=useReducedMotionStyles(),tt=reactExports.useMemo(()=>!_e.enter&&!_e.exit?"":j.active||j.type==="idle"?_e.enter:j.active?"":_e.exit,[j.active,j.type,_e.enter,_e.exit]);return reactExports.useEffect(()=>void 0,[_e]),mergeClasses(_e.default,tt,_e[j.type],et)};function useDrawerDefaultProps(j){const{open:_e=!1,size:et="small",position:tt="start"}=j;return{size:et,position:tt,open:_e}}const useBackdropResetStyles=__resetStyles("rivxbo","r1trjn1z",[".rivxbo{top:0px;right:0px;bottom:0px;left:0px;position:fixed;background-color:rgba(0, 0, 0, 0.4);}",".r1trjn1z{top:0px;left:0px;bottom:0px;right:0px;position:fixed;background-color:rgba(0, 0, 0, 0.4);}"]),useBackdropStyles=__styles({nested:{De3pzq:"f1c21dwh"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}"]}),useOverlayDrawerSurfaceStyles_unstable=j=>{const _e=useBackdropResetStyles(),et=useBackdropStyles();return j.backdrop&&(j.backdrop.className=mergeClasses(_e,j.isNestedDialog&&et.nested,j.backdrop.className)),j},OverlayDrawerSurface=reactExports.forwardRef((j,_e)=>{const et=useDialogSurface_unstable(j,_e),tt=useDialogSurfaceContextValues_unstable();return useOverlayDrawerSurfaceStyles_unstable(et),renderDialogSurface_unstable(et,tt)});OverlayDrawerSurface.displayName="OverlayDrawerSurface";const useOverlayDrawer_unstable=(j,_e)=>{const{open:et,size:tt,position:rt}=useDrawerDefaultProps(j),{modalType:nt="modal",inertTrapFocus:ot,defaultOpen:it=!1,onOpenChange:st}=j,lt=useMotion(et),ut=resolveShorthand(j.backdrop),dt=always({...j,backdrop:nt!=="non-modal"&&ut!==null?{...ut}:null},{elementType:OverlayDrawerSurface,defaultProps:{ref:useMergedRefs$1(_e,lt.ref)}}),ft=always({open:!0,defaultOpen:it,onOpenChange:st,inertTrapFocus:ot,modalType:nt,children:null},{elementType:Dialog});return{components:{root:OverlayDrawerSurface,dialog:Dialog},root:dt,dialog:ft,size:tt,position:rt,motion:lt}},renderOverlayDrawer_unstable=j=>j.motion.canRender?jsx$1(j.dialog,{children:jsx$1(j.root,{})}):null,useDrawerStyles=__styles({entering:{Bkqvd7p:"f18ad807"},exiting:{Bkqvd7p:"f1mfizis"},reducedMotion:{Hwfdqs:"f5e8c63"},start:{Bekrc4i:["f5tn483","f1ojsxk5"],vrafjx:["fcdblym","fjik90z"],h3c5rm:["f1gn591s","fjscplz"],oyh7mz:["f1vgc2s3","f1e31b4d"],j35jbq:["fvfyk4","frppm18"]},end:{ibv6hh:["f1ojsxk5","f5tn483"],wvpqe5:["fjik90z","fcdblym"],zhjwy3:["fjscplz","f1gn591s"],j35jbq:["f1e31b4d","f1vgc2s3"],oyh7mz:["frppm18","fvfyk4"]},small:{Bjr0ffy:"f1exhnwo"},medium:{Bjr0ffy:"fqofjzu"},large:{Bjr0ffy:"fce6y3m"},full:{Bjr0ffy:"fsdmzs6"}},{d:[".f18ad807{transition-timing-function:var(--curveDecelerateMid);}",".f1mfizis{transition-timing-function:var(--curveAccelerateMin);}",".f5tn483{border-right-width:var(--strokeWidthThin);}",".f1ojsxk5{border-left-width:var(--strokeWidthThin);}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".f1vgc2s3{left:0;}",".f1e31b4d{right:0;}",".fvfyk4{right:auto;}",".frppm18{left:auto;}",".f1exhnwo{--fui-Drawer--size:320px;}",".fqofjzu{--fui-Drawer--size:592px;}",".fce6y3m{--fui-Drawer--size:940px;}",".fsdmzs6{--fui-Drawer--size:100vw;}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f5e8c63{transition-duration:0.001ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]}),useDrawerDurationStyles=__styles({small:{B3o57yi:"fc397y7"},medium:{B3o57yi:"f78771"},large:{B3o57yi:"f9ymmep"},full:{B3o57yi:"f1loko9l"}},{d:[".fc397y7{transition-duration:var(--durationGentle);}",".f78771{transition-duration:var(--durationSlow);}",".f9ymmep{transition-duration:var(--durationSlower);}",".f1loko9l{transition-duration:var(--durationUltraSlow);}"]}),useDrawerBaseClassNames=({position:j,size:_e,motion:et})=>{const tt=useDrawerStyles(),rt=useDrawerDurationStyles();return mergeClasses(tt[j],rt[_e],tt[_e],tt.reducedMotion,et.type==="entering"&&tt.entering,et.type==="exiting"&&tt.exiting)},overlayDrawerClassNames={root:"fui-OverlayDrawer",backdrop:"fui-OverlayDrawer__backdrop"},useDrawerResetStyles=__resetStyles("r1vxc6jp","r1uky7bi",{r:[".r1vxc6jp{overflow-x:hidden;overflow-y:hidden;width:var(--fui-Drawer--size);max-width:100vw;height:auto;max-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);position:fixed;top:0;bottom:0;}",".r1vxc6jp:focus{outline-style:none;}",".r1vxc6jp:focus-visible{outline-style:none;}",".r1vxc6jp[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.r1vxc6jp[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:2px;border-right-width:2px;border-bottom-width:2px;border-left-width:2px;border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".r1uky7bi{overflow-x:hidden;overflow-y:hidden;width:var(--fui-Drawer--size);max-width:100vw;height:auto;max-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);position:fixed;top:0;bottom:0;}",".r1uky7bi:focus{outline-style:none;}",".r1uky7bi:focus-visible{outline-style:none;}",".r1uky7bi[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.r1uky7bi[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:2px;border-left-width:2px;border-bottom-width:2px;border-right-width:2px;border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.r1vxc6jp[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media (forced-colors: active){.r1uky7bi[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}"]}),useDrawerRootStyles=__styles({start:{Bz10aip:"f1d8gkik"},end:{Bz10aip:"f1g0pcr8"}},{d:[".f1d8gkik{transform:translate3D(calc(var(--fui-Drawer--size) * -1), 0, 0);}",".f1g0pcr8{transform:translate3D(calc(var(--fui-Drawer--size) * 1), 0, 0);}"]}),useDrawerMotionStyles=__styles({default:{abs64n:"fk73vx1",E5pizo:"ff88big",Bmy1vo4:"f1neo61",Es3by:"f1ytgekk"},enter:{abs64n:"f5p0z4x",Bz10aip:"f87uvqx",E5pizo:"f10nrhrw"}},{d:[".fk73vx1{opacity:0;}",".ff88big{box-shadow:0px var(--colorTransparentBackground);}",".f1neo61{transition-property:transform,box-shadow,opacity;}",".f1ytgekk{will-change:transform,box-shadow,opacity;}",".f5p0z4x{opacity:1;}",".f87uvqx{transform:translate3D(0, 0, 0);}",".f10nrhrw{box-shadow:var(--shadow64);}"]}),useBackdropMotionStyles=__styles({default:{abs64n:"fk73vx1",Bmy1vo4:"f13u1uyl",Bkqvd7p:"f17wnm97",Es3by:"f1gqqdtu"},enter:{abs64n:"f5p0z4x"}},{d:[".fk73vx1{opacity:0;}",".f13u1uyl{transition-property:opacity;}",".f17wnm97{transition-timing-function:var(--curveEasyEase);}",".f1gqqdtu{will-change:opacity;}",".f5p0z4x{opacity:1;}"]}),useOverlayDrawerStyles_unstable=j=>{const _e=useDrawerBaseClassNames(j),et=useDrawerResetStyles(),tt=useDrawerRootStyles(),rt=useDrawerDurationStyles(),nt=useMotionClassNames(j.motion,useDrawerMotionStyles()),ot=useMotionClassNames(j.motion,useBackdropMotionStyles()),it=j.root.backdrop;return j.root.className=mergeClasses(overlayDrawerClassNames.root,_e,et,tt[j.position],nt,j.root.className),it&&(it.className=mergeClasses(overlayDrawerClassNames.backdrop,ot,rt[j.size],it.className)),j},OverlayDrawer=reactExports.forwardRef((j,_e)=>{const et=useOverlayDrawer_unstable(j,_e);return useOverlayDrawerStyles_unstable(et),useCustomStyleHook("useDrawerOverlayStyles_unstable")(et),useCustomStyleHook("useOverlayDrawerStyles_unstable")(et),renderOverlayDrawer_unstable(et)});OverlayDrawer.displayName="OverlayDrawer";var axios$1={exports:{}},bind$6=function(_e,et){return function(){for(var rt=new Array(arguments.length),nt=0;nt"u"}function isBuffer$4(j){return j!==null&&!isUndefined(j)&&j.constructor!==null&&!isUndefined(j.constructor)&&typeof j.constructor.isBuffer=="function"&&j.constructor.isBuffer(j)}function isArrayBuffer(j){return toString$j.call(j)==="[object ArrayBuffer]"}function isFormData(j){return typeof FormData<"u"&&j instanceof FormData}function isArrayBufferView(j){var _e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?_e=ArrayBuffer.isView(j):_e=j&&j.buffer&&j.buffer instanceof ArrayBuffer,_e}function isString$2(j){return typeof j=="string"}function isNumber$5(j){return typeof j=="number"}function isObject$z(j){return j!==null&&typeof j=="object"}function isPlainObject$3(j){if(toString$j.call(j)!=="[object Object]")return!1;var _e=Object.getPrototypeOf(j);return _e===null||_e===Object.prototype}function isDate(j){return toString$j.call(j)==="[object Date]"}function isFile(j){return toString$j.call(j)==="[object File]"}function isBlob(j){return toString$j.call(j)==="[object Blob]"}function isFunction$7(j){return toString$j.call(j)==="[object Function]"}function isStream(j){return isObject$z(j)&&isFunction$7(j.pipe)}function isURLSearchParams(j){return typeof URLSearchParams<"u"&&j instanceof URLSearchParams}function trim$1(j){return j.trim?j.trim():j.replace(/^\s+|\s+$/g,"")}function isStandardBrowserEnv(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function forEach$5(j,_e){if(!(j===null||typeof j>"u"))if(typeof j!="object"&&(j=[j]),isArray$v(j))for(var et=0,tt=j.length;et"u"||(utils$8.isArray(st)?lt=lt+"[]":st=[st],utils$8.forEach(st,function(ct){utils$8.isDate(ct)?ct=ct.toISOString():utils$8.isObject(ct)&&(ct=JSON.stringify(ct)),nt.push(encode$1(lt)+"="+encode$1(ct))}))}),rt=nt.join("&")}if(rt){var ot=_e.indexOf("#");ot!==-1&&(_e=_e.slice(0,ot)),_e+=(_e.indexOf("?")===-1?"?":"&")+rt}return _e},utils$7=utils$9;function InterceptorManager$1(){this.handlers=[]}InterceptorManager$1.prototype.use=function(_e,et,tt){return this.handlers.push({fulfilled:_e,rejected:et,synchronous:tt?tt.synchronous:!1,runWhen:tt?tt.runWhen:null}),this.handlers.length-1};InterceptorManager$1.prototype.eject=function(_e){this.handlers[_e]&&(this.handlers[_e]=null)};InterceptorManager$1.prototype.forEach=function(_e){utils$7.forEach(this.handlers,function(tt){tt!==null&&_e(tt)})};var InterceptorManager_1=InterceptorManager$1,utils$6=utils$9,normalizeHeaderName$1=function(_e,et){utils$6.forEach(_e,function(rt,nt){nt!==et&&nt.toUpperCase()===et.toUpperCase()&&(_e[et]=rt,delete _e[nt])})},enhanceError$1=function(_e,et,tt,rt,nt){return _e.config=et,tt&&(_e.code=tt),_e.request=rt,_e.response=nt,_e.isAxiosError=!0,_e.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:this.config,code:this.code}},_e},createError,hasRequiredCreateError;function requireCreateError(){if(hasRequiredCreateError)return createError;hasRequiredCreateError=1;var j=enhanceError$1;return createError=function(et,tt,rt,nt,ot){var it=new Error(et);return j(it,tt,rt,nt,ot)},createError}var settle,hasRequiredSettle;function requireSettle(){if(hasRequiredSettle)return settle;hasRequiredSettle=1;var j=requireCreateError();return settle=function(et,tt,rt){var nt=rt.config.validateStatus;!rt.status||!nt||nt(rt.status)?et(rt):tt(j("Request failed with status code "+rt.status,rt.config,null,rt.request,rt))},settle}var cookies,hasRequiredCookies;function requireCookies(){if(hasRequiredCookies)return cookies;hasRequiredCookies=1;var j=utils$9;return cookies=j.isStandardBrowserEnv()?function(){return{write:function(tt,rt,nt,ot,it,st){var lt=[];lt.push(tt+"="+encodeURIComponent(rt)),j.isNumber(nt)&<.push("expires="+new Date(nt).toGMTString()),j.isString(ot)&<.push("path="+ot),j.isString(it)&<.push("domain="+it),st===!0&<.push("secure"),document.cookie=lt.join("; ")},read:function(tt){var rt=document.cookie.match(new RegExp("(^|;\\s*)("+tt+")=([^;]*)"));return rt?decodeURIComponent(rt[3]):null},remove:function(tt){this.write(tt,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}(),cookies}var isAbsoluteURL,hasRequiredIsAbsoluteURL;function requireIsAbsoluteURL(){return hasRequiredIsAbsoluteURL||(hasRequiredIsAbsoluteURL=1,isAbsoluteURL=function(_e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(_e)}),isAbsoluteURL}var combineURLs,hasRequiredCombineURLs;function requireCombineURLs(){return hasRequiredCombineURLs||(hasRequiredCombineURLs=1,combineURLs=function(_e,et){return et?_e.replace(/\/+$/,"")+"/"+et.replace(/^\/+/,""):_e}),combineURLs}var buildFullPath,hasRequiredBuildFullPath;function requireBuildFullPath(){if(hasRequiredBuildFullPath)return buildFullPath;hasRequiredBuildFullPath=1;var j=requireIsAbsoluteURL(),_e=requireCombineURLs();return buildFullPath=function(tt,rt){return tt&&!j(rt)?_e(tt,rt):rt},buildFullPath}var parseHeaders,hasRequiredParseHeaders;function requireParseHeaders(){if(hasRequiredParseHeaders)return parseHeaders;hasRequiredParseHeaders=1;var j=utils$9,_e=["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"];return parseHeaders=function(tt){var rt={},nt,ot,it;return tt&&j.forEach(tt.split(` +`),function(lt){if(it=lt.indexOf(":"),nt=j.trim(lt.substr(0,it)).toLowerCase(),ot=j.trim(lt.substr(it+1)),nt){if(rt[nt]&&_e.indexOf(nt)>=0)return;nt==="set-cookie"?rt[nt]=(rt[nt]?rt[nt]:[]).concat([ot]):rt[nt]=rt[nt]?rt[nt]+", "+ot:ot}}),rt},parseHeaders}var isURLSameOrigin,hasRequiredIsURLSameOrigin;function requireIsURLSameOrigin(){if(hasRequiredIsURLSameOrigin)return isURLSameOrigin;hasRequiredIsURLSameOrigin=1;var j=utils$9;return isURLSameOrigin=j.isStandardBrowserEnv()?function(){var et=/(msie|trident)/i.test(navigator.userAgent),tt=document.createElement("a"),rt;function nt(ot){var it=ot;return et&&(tt.setAttribute("href",it),it=tt.href),tt.setAttribute("href",it),{href:tt.href,protocol:tt.protocol?tt.protocol.replace(/:$/,""):"",host:tt.host,search:tt.search?tt.search.replace(/^\?/,""):"",hash:tt.hash?tt.hash.replace(/^#/,""):"",hostname:tt.hostname,port:tt.port,pathname:tt.pathname.charAt(0)==="/"?tt.pathname:"/"+tt.pathname}}return rt=nt(window.location.href),function(it){var st=j.isString(it)?nt(it):it;return st.protocol===rt.protocol&&st.host===rt.host}}():function(){return function(){return!0}}(),isURLSameOrigin}var xhr,hasRequiredXhr;function requireXhr(){if(hasRequiredXhr)return xhr;hasRequiredXhr=1;var j=utils$9,_e=requireSettle(),et=requireCookies(),tt=buildURL$1,rt=requireBuildFullPath(),nt=requireParseHeaders(),ot=requireIsURLSameOrigin(),it=requireCreateError();return xhr=function(lt){return new Promise(function(ct,dt){var ft=lt.data,pt=lt.headers,gt=lt.responseType;j.isFormData(ft)&&delete pt["Content-Type"];var vt=new XMLHttpRequest;if(lt.auth){var bt=lt.auth.username||"",_t=lt.auth.password?unescape(encodeURIComponent(lt.auth.password)):"";pt.Authorization="Basic "+btoa(bt+":"+_t)}var xt=rt(lt.baseURL,lt.url);vt.open(lt.method.toUpperCase(),tt(xt,lt.params,lt.paramsSerializer),!0),vt.timeout=lt.timeout;function yt(){if(vt){var St="getAllResponseHeaders"in vt?nt(vt.getAllResponseHeaders()):null,$t=!gt||gt==="text"||gt==="json"?vt.responseText:vt.response,At={data:$t,status:vt.status,statusText:vt.statusText,headers:St,config:lt,request:vt};_e(ct,dt,At),vt=null}}if("onloadend"in vt?vt.onloadend=yt:vt.onreadystatechange=function(){!vt||vt.readyState!==4||vt.status===0&&!(vt.responseURL&&vt.responseURL.indexOf("file:")===0)||setTimeout(yt)},vt.onabort=function(){vt&&(dt(it("Request aborted",lt,"ECONNABORTED",vt)),vt=null)},vt.onerror=function(){dt(it("Network Error",lt,null,vt)),vt=null},vt.ontimeout=function(){var $t="timeout of "+lt.timeout+"ms exceeded";lt.timeoutErrorMessage&&($t=lt.timeoutErrorMessage),dt(it($t,lt,lt.transitional&<.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",vt)),vt=null},j.isStandardBrowserEnv()){var Et=(lt.withCredentials||ot(xt))&<.xsrfCookieName?et.read(lt.xsrfCookieName):void 0;Et&&(pt[lt.xsrfHeaderName]=Et)}"setRequestHeader"in vt&&j.forEach(pt,function($t,At){typeof ft>"u"&&At.toLowerCase()==="content-type"?delete pt[At]:vt.setRequestHeader(At,$t)}),j.isUndefined(lt.withCredentials)||(vt.withCredentials=!!lt.withCredentials),gt&>!=="json"&&(vt.responseType=lt.responseType),typeof lt.onDownloadProgress=="function"&&vt.addEventListener("progress",lt.onDownloadProgress),typeof lt.onUploadProgress=="function"&&vt.upload&&vt.upload.addEventListener("progress",lt.onUploadProgress),lt.cancelToken&<.cancelToken.promise.then(function($t){vt&&(vt.abort(),dt($t),vt=null)}),ft||(ft=null),vt.send(ft)})},xhr}var utils$5=utils$9,normalizeHeaderName=normalizeHeaderName$1,enhanceError=enhanceError$1,DEFAULT_CONTENT_TYPE={"Content-Type":"application/x-www-form-urlencoded"};function setContentTypeIfUnset(j,_e){!utils$5.isUndefined(j)&&utils$5.isUndefined(j["Content-Type"])&&(j["Content-Type"]=_e)}function getDefaultAdapter(){var j;return(typeof XMLHttpRequest<"u"||typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]")&&(j=requireXhr()),j}function stringifySafely(j,_e,et){if(utils$5.isString(j))try{return(_e||JSON.parse)(j),utils$5.trim(j)}catch(tt){if(tt.name!=="SyntaxError")throw tt}return(et||JSON.stringify)(j)}var defaults$4={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:getDefaultAdapter(),transformRequest:[function(_e,et){return normalizeHeaderName(et,"Accept"),normalizeHeaderName(et,"Content-Type"),utils$5.isFormData(_e)||utils$5.isArrayBuffer(_e)||utils$5.isBuffer(_e)||utils$5.isStream(_e)||utils$5.isFile(_e)||utils$5.isBlob(_e)?_e:utils$5.isArrayBufferView(_e)?_e.buffer:utils$5.isURLSearchParams(_e)?(setContentTypeIfUnset(et,"application/x-www-form-urlencoded;charset=utf-8"),_e.toString()):utils$5.isObject(_e)||et&&et["Content-Type"]==="application/json"?(setContentTypeIfUnset(et,"application/json"),stringifySafely(_e)):_e}],transformResponse:[function(_e){var et=this.transitional,tt=et&&et.silentJSONParsing,rt=et&&et.forcedJSONParsing,nt=!tt&&this.responseType==="json";if(nt||rt&&utils$5.isString(_e)&&_e.length)try{return JSON.parse(_e)}catch(ot){if(nt)throw ot.name==="SyntaxError"?enhanceError(ot,this,"E_JSON_PARSE"):ot}return _e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(_e){return _e>=200&&_e<300}};defaults$4.headers={common:{Accept:"application/json, text/plain, */*"}};utils$5.forEach(["delete","get","head"],function(_e){defaults$4.headers[_e]={}});utils$5.forEach(["post","put","patch"],function(_e){defaults$4.headers[_e]=utils$5.merge(DEFAULT_CONTENT_TYPE)});var defaults_1$1=defaults$4,utils$4=utils$9,defaults$3=defaults_1$1,transformData$1=function(_e,et,tt){var rt=this||defaults$3;return utils$4.forEach(tt,function(ot){_e=ot.call(rt,_e,et)}),_e},isCancel$1,hasRequiredIsCancel;function requireIsCancel(){return hasRequiredIsCancel||(hasRequiredIsCancel=1,isCancel$1=function(_e){return!!(_e&&_e.__CANCEL__)}),isCancel$1}var utils$3=utils$9,transformData=transformData$1,isCancel=requireIsCancel(),defaults$2=defaults_1$1;function throwIfCancellationRequested(j){j.cancelToken&&j.cancelToken.throwIfRequested()}var dispatchRequest$1=function(_e){throwIfCancellationRequested(_e),_e.headers=_e.headers||{},_e.data=transformData.call(_e,_e.data,_e.headers,_e.transformRequest),_e.headers=utils$3.merge(_e.headers.common||{},_e.headers[_e.method]||{},_e.headers),utils$3.forEach(["delete","get","head","post","put","patch","common"],function(rt){delete _e.headers[rt]});var et=_e.adapter||defaults$2.adapter;return et(_e).then(function(rt){return throwIfCancellationRequested(_e),rt.data=transformData.call(_e,rt.data,rt.headers,_e.transformResponse),rt},function(rt){return isCancel(rt)||(throwIfCancellationRequested(_e),rt&&rt.response&&(rt.response.data=transformData.call(_e,rt.response.data,rt.response.headers,_e.transformResponse))),Promise.reject(rt)})},utils$2=utils$9,mergeConfig$2=function(_e,et){et=et||{};var tt={},rt=["url","method","data"],nt=["headers","auth","proxy","params"],ot=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],it=["validateStatus"];function st(dt,ft){return utils$2.isPlainObject(dt)&&utils$2.isPlainObject(ft)?utils$2.merge(dt,ft):utils$2.isPlainObject(ft)?utils$2.merge({},ft):utils$2.isArray(ft)?ft.slice():ft}function lt(dt){utils$2.isUndefined(et[dt])?utils$2.isUndefined(_e[dt])||(tt[dt]=st(void 0,_e[dt])):tt[dt]=st(_e[dt],et[dt])}utils$2.forEach(rt,function(ft){utils$2.isUndefined(et[ft])||(tt[ft]=st(void 0,et[ft]))}),utils$2.forEach(nt,lt),utils$2.forEach(ot,function(ft){utils$2.isUndefined(et[ft])?utils$2.isUndefined(_e[ft])||(tt[ft]=st(void 0,_e[ft])):tt[ft]=st(void 0,et[ft])}),utils$2.forEach(it,function(ft){ft in et?tt[ft]=st(_e[ft],et[ft]):ft in _e&&(tt[ft]=st(void 0,_e[ft]))});var ut=rt.concat(nt).concat(ot).concat(it),ct=Object.keys(_e).concat(Object.keys(et)).filter(function(ft){return ut.indexOf(ft)===-1});return utils$2.forEach(ct,lt),tt};const name="axios",version$4="0.21.4",description="Promise based HTTP client for the browser and node.js",main$1="index.js",scripts={test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository={type:"git",url:"https://github.com/axios/axios.git"},keywords$1=["xhr","http","ajax","promise","node"],author="Matt Zabriskie",license="MIT",bugs={url:"https://github.com/axios/axios/issues"},homepage="https://axios-http.com",devDependencies={coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser$2={"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr="dist/axios.min.js",unpkg="dist/axios.min.js",typings="./index.d.ts",dependencies={"follow-redirects":"^1.14.0"},bundlesize=[{path:"./dist/axios.min.js",threshold:"5kB"}],require$$0={name,version:version$4,description,main:main$1,scripts,repository,keywords:keywords$1,author,license,bugs,homepage,devDependencies,browser:browser$2,jsdelivr,unpkg,typings,dependencies,bundlesize};var pkg=require$$0,validators$3={};["object","boolean","number","function","string","symbol"].forEach(function(j,_e){validators$3[j]=function(tt){return typeof tt===j||"a"+(_e<1?"n ":" ")+j}});var deprecatedWarnings={},currentVerArr=pkg.version.split(".");function isOlderVersion(j,_e){for(var et=_e?_e.split("."):currentVerArr,tt=j.split("."),rt=0;rt<3;rt++){if(et[rt]>tt[rt])return!0;if(et[rt]0;){var nt=tt[rt],ot=_e[nt];if(ot){var it=j[nt],st=it===void 0||ot(it,nt,j);if(st!==!0)throw new TypeError("option "+nt+" must be "+st);continue}if(et!==!0)throw Error("Unknown option "+nt)}}var validator$1={isOlderVersion,assertOptions,validators:validators$3},utils$1=utils$9,buildURL=buildURL$1,InterceptorManager=InterceptorManager_1,dispatchRequest=dispatchRequest$1,mergeConfig$1=mergeConfig$2,validator=validator$1,validators$2=validator.validators;function Axios$1(j){this.defaults=j,this.interceptors={request:new InterceptorManager,response:new InterceptorManager}}Axios$1.prototype.request=function(_e){typeof _e=="string"?(_e=arguments[1]||{},_e.url=arguments[0]):_e=_e||{},_e=mergeConfig$1(this.defaults,_e),_e.method?_e.method=_e.method.toLowerCase():this.defaults.method?_e.method=this.defaults.method.toLowerCase():_e.method="get";var et=_e.transitional;et!==void 0&&validator.assertOptions(et,{silentJSONParsing:validators$2.transitional(validators$2.boolean,"1.0.0"),forcedJSONParsing:validators$2.transitional(validators$2.boolean,"1.0.0"),clarifyTimeoutError:validators$2.transitional(validators$2.boolean,"1.0.0")},!1);var tt=[],rt=!0;this.interceptors.request.forEach(function(dt){typeof dt.runWhen=="function"&&dt.runWhen(_e)===!1||(rt=rt&&dt.synchronous,tt.unshift(dt.fulfilled,dt.rejected))});var nt=[];this.interceptors.response.forEach(function(dt){nt.push(dt.fulfilled,dt.rejected)});var ot;if(!rt){var it=[dispatchRequest,void 0];for(Array.prototype.unshift.apply(it,tt),it=it.concat(nt),ot=Promise.resolve(_e);it.length;)ot=ot.then(it.shift(),it.shift());return ot}for(var st=_e;tt.length;){var lt=tt.shift(),ut=tt.shift();try{st=lt(st)}catch(ct){ut(ct);break}}try{ot=dispatchRequest(st)}catch(ct){return Promise.reject(ct)}for(;nt.length;)ot=ot.then(nt.shift(),nt.shift());return ot};Axios$1.prototype.getUri=function(_e){return _e=mergeConfig$1(this.defaults,_e),buildURL(_e.url,_e.params,_e.paramsSerializer).replace(/^\?/,"")};utils$1.forEach(["delete","get","head","options"],function(_e){Axios$1.prototype[_e]=function(et,tt){return this.request(mergeConfig$1(tt||{},{method:_e,url:et,data:(tt||{}).data}))}});utils$1.forEach(["post","put","patch"],function(_e){Axios$1.prototype[_e]=function(et,tt,rt){return this.request(mergeConfig$1(rt||{},{method:_e,url:et,data:tt}))}});var Axios_1=Axios$1,Cancel_1,hasRequiredCancel;function requireCancel(){if(hasRequiredCancel)return Cancel_1;hasRequiredCancel=1;function j(_e){this.message=_e}return j.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},j.prototype.__CANCEL__=!0,Cancel_1=j,Cancel_1}var CancelToken_1,hasRequiredCancelToken;function requireCancelToken(){if(hasRequiredCancelToken)return CancelToken_1;hasRequiredCancelToken=1;var j=requireCancel();function _e(et){if(typeof et!="function")throw new TypeError("executor must be a function.");var tt;this.promise=new Promise(function(ot){tt=ot});var rt=this;et(function(ot){rt.reason||(rt.reason=new j(ot),tt(rt.reason))})}return _e.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},_e.source=function(){var tt,rt=new _e(function(ot){tt=ot});return{token:rt,cancel:tt}},CancelToken_1=_e,CancelToken_1}var spread$1,hasRequiredSpread;function requireSpread(){return hasRequiredSpread||(hasRequiredSpread=1,spread$1=function(_e){return function(tt){return _e.apply(null,tt)}}),spread$1}var isAxiosError,hasRequiredIsAxiosError;function requireIsAxiosError(){return hasRequiredIsAxiosError||(hasRequiredIsAxiosError=1,isAxiosError=function(_e){return typeof _e=="object"&&_e.isAxiosError===!0}),isAxiosError}var utils=utils$9,bind$4=bind$6,Axios=Axios_1,mergeConfig=mergeConfig$2,defaults$1=defaults_1$1;function createInstance(j){var _e=new Axios(j),et=bind$4(Axios.prototype.request,_e);return utils.extend(et,Axios.prototype,_e),utils.extend(et,_e),et}var axios=createInstance(defaults$1);axios.Axios=Axios;axios.create=function(_e){return createInstance(mergeConfig(axios.defaults,_e))};axios.Cancel=requireCancel();axios.CancelToken=requireCancelToken();axios.isCancel=requireIsCancel();axios.all=function(_e){return Promise.all(_e)};axios.spread=requireSpread();axios.isAxiosError=requireIsAxiosError();axios$1.exports=axios;axios$1.exports.default=axios;var rngBrowser={exports:{}},getRandomValues$1=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof window.msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto);if(getRandomValues$1){var rnds8$1=new Uint8Array(16);rngBrowser.exports=function(){return getRandomValues$1(rnds8$1),rnds8$1}}else{var rnds=new Array(16);rngBrowser.exports=function(){for(var _e=0,et;_e<16;_e++)_e&3||(et=Math.random()*4294967296),rnds[_e]=et>>>((_e&3)<<3)&255;return rnds}}var rngBrowserExports=rngBrowser.exports,byteToHex$1=[];for(var i$2=0;i$2<256;++i$2)byteToHex$1[i$2]=(i$2+256).toString(16).substr(1);function bytesToUuid$3(j,_e){var et=_e||0,tt=byteToHex$1;return[tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]]].join("")}var bytesToUuid_1=bytesToUuid$3,rng$2=rngBrowserExports,bytesToUuid$2=bytesToUuid_1,_nodeId,_clockseq,_lastMSecs=0,_lastNSecs=0;function v1$1(j,_e,et){var tt=_e&&et||0,rt=_e||[];j=j||{};var nt=j.node||_nodeId,ot=j.clockseq!==void 0?j.clockseq:_clockseq;if(nt==null||ot==null){var it=rng$2();nt==null&&(nt=_nodeId=[it[0]|1,it[1],it[2],it[3],it[4],it[5]]),ot==null&&(ot=_clockseq=(it[6]<<8|it[7])&16383)}var st=j.msecs!==void 0?j.msecs:new Date().getTime(),lt=j.nsecs!==void 0?j.nsecs:_lastNSecs+1,ut=st-_lastMSecs+(lt-_lastNSecs)/1e4;if(ut<0&&j.clockseq===void 0&&(ot=ot+1&16383),(ut<0||st>_lastMSecs)&&j.nsecs===void 0&&(lt=0),lt>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=st,_lastNSecs=lt,_clockseq=ot,st+=122192928e5;var ct=((st&268435455)*1e4+lt)%4294967296;rt[tt++]=ct>>>24&255,rt[tt++]=ct>>>16&255,rt[tt++]=ct>>>8&255,rt[tt++]=ct&255;var dt=st/4294967296*1e4&268435455;rt[tt++]=dt>>>8&255,rt[tt++]=dt&255,rt[tt++]=dt>>>24&15|16,rt[tt++]=dt>>>16&255,rt[tt++]=ot>>>8|128,rt[tt++]=ot&255;for(var ft=0;ft<6;++ft)rt[tt+ft]=nt[ft];return _e||bytesToUuid$2(rt)}var v1_1=v1$1,rng$1=rngBrowserExports,bytesToUuid$1=bytesToUuid_1;function v4$2(j,_e,et){var tt=_e&&et||0;typeof j=="string"&&(_e=j==="binary"?new Array(16):null,j=null),j=j||{};var rt=j.random||(j.rng||rng$1)();if(rt[6]=rt[6]&15|64,rt[8]=rt[8]&63|128,_e)for(var nt=0;nt<16;++nt)_e[tt+nt]=rt[nt];return _e||bytesToUuid$1(rt)}var v4_1=v4$2,v1=v1_1,v4$1=v4_1,uuid=v4$1;uuid.v1=v1;uuid.v4=v4$1;var uuid_1=uuid;const BASELINE_VARIANT_ID="variant_0",DEFAULT_CHAT_INPUT_NAME="chat_input",DEFAULT_CHAT_HISTORY_NAME="chat_history",DEFAULT_CHAT_OUTPUT_NAME="chat_output";var FlowFeatures=(j=>(j.OpenCodeFileInNode="OpenCodeFileInNode",j.ShowWarningIconOnNode="ShowWarningIconOnNode",j))(FlowFeatures||{}),ConnectionType=(j=>(j.OpenAI="OpenAI",j.AzureOpenAI="AzureOpenAI",j.Serp="Serp",j.Bing="Bing",j.AzureContentModerator="AzureContentModerator",j.Custom="Custom",j.AzureContentSafety="AzureContentSafety",j.CognitiveSearch="CognitiveSearch",j.SubstrateLLM="SubstrateLLM",j.Pinecone="Pinecone",j.Qdrant="Qdrant",j.Weaviate="Weaviate",j.FormRecognizer="FormRecognizer",j.Serverless="Serverless",j))(ConnectionType||{}),FlowType=(j=>(j.Default="Default",j.Evaluation="Evaluation",j.Chat="Chat",j.Rag="Rag",j))(FlowType||{}),InputType=(j=>(j.default="default",j.uionly_hidden="uionly_hidden",j))(InputType||{}),Orientation$1=(j=>(j.Horizontal="Horizontal",j.Vertical="Vertical",j))(Orientation$1||{}),ToolType=(j=>(j.llm="llm",j.python="python",j.action="action",j.prompt="prompt",j.custom_llm="custom_llm",j.csharp="csharp",j.typescript="typescript",j))(ToolType||{}),ValueType=(j=>(j.int="int",j.double="double",j.bool="bool",j.string="string",j.secret="secret",j.prompt_template="prompt_template",j.object="object",j.list="list",j.BingConnection="BingConnection",j.OpenAIConnection="OpenAIConnection",j.AzureOpenAIConnection="AzureOpenAIConnection",j.AzureContentModeratorConnection="AzureContentModeratorConnection",j.CustomConnection="CustomConnection",j.AzureContentSafetyConnection="AzureContentSafetyConnection",j.SerpConnection="SerpConnection",j.CognitiveSearchConnection="CognitiveSearchConnection",j.SubstrateLLMConnection="SubstrateLLMConnection",j.PineconeConnection="PineconeConnection",j.QdrantConnection="QdrantConnection",j.WeaviateConnection="WeaviateConnection",j.function_list="function_list",j.function_str="function_str",j.FormRecognizerConnection="FormRecognizerConnection",j.file_path="file_path",j.image="image",j.assistant_definition="assistant_definition",j.ServerlessConnection="ServerlessConnection",j))(ValueType||{});const FLOW_INPUT_REF_NAME_FLOW="flow",FLOW_INPUT_REF_NAME_INPUT="inputs",FLOW_INPUT_NODE_NAME="inputs",FLOW_OUTPUT_NODE_NAME="outputs",isFlowInput=j=>[FLOW_INPUT_REF_NAME_FLOW,FLOW_INPUT_REF_NAME_INPUT].includes(j),SystemColors=["#637CEF","#E61C99","#00A5AF","#9470BD","#689920","#3487C7","#CA5010","#009B51","#B27C00","#B146C2","#4F6BED","#EE5FB7","#008B94","#D77440","#BA58C9","#3A96DD","#E3008C","#57811B","#C36BD1","#D06228","#6E0811","#C50F1F","#F7630C","#107C10","#094509"];var ValidationErrorType=(j=>(j.CircularDependency="CircularDependency",j.InputDependencyNotFound="InputDependencyNotFound",j.InputGenerateError="InputGenerateError",j.InputSelfReference="InputSelfReference",j.InputEmpty="InputEmpty",j.InputInvalidType="InputInvalidType",j.NodeConfigInvalid="NodeConfigInvalid",j.UnparsedCode="UnparsedCode",j.EmptyCode="EmptyCode",j.MissingTool="MissingTool",j.AutoParseInputError="AutoParseInputError",j.RuntimeNameEmpty="RuntimeNameEmpty",j.RuntimeStatusInvalid="RuntimeStatusInvalid",j))(ValidationErrorType||{}),ChatMessageFrom=(j=>(j.System="system",j.ErrorHandler="error",j.Chatbot="chatbot",j.User="user",j))(ChatMessageFrom||{}),ChatMessageType$1=(j=>(j.Text="text",j.Typing="typing",j.SessionSplit="session-split",j))(ChatMessageType$1||{});const convertToBool=j=>j==="true"||j==="True"||j===!0,basicValueTypeDetector=j=>Array.isArray(j)?ValueType.list:typeof j=="boolean"?ValueType.bool:typeof j=="string"?ValueType.string:typeof j=="number"?Number.isInteger(j)?ValueType.int:ValueType.double:ValueType.object;function valueStringify(j){if(j==null)return;switch(basicValueTypeDetector(j)){case ValueType.string:return j;case ValueType.int:case ValueType.double:return j.toString();case ValueType.bool:return j?"True":"False";case ValueType.object:case ValueType.list:return JSON.stringify(j);default:return String(j)}}var lodash$1={exports:{}};/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */lodash$1.exports;(function(j,_e){(function(){var et,tt="4.17.21",rt=200,nt="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",ot="Expected a function",it="Invalid `variable` option passed into `_.template`",st="__lodash_hash_undefined__",lt=500,ut="__lodash_placeholder__",ct=1,dt=2,ft=4,pt=1,gt=2,vt=1,bt=2,_t=4,xt=8,yt=16,Et=32,St=64,$t=128,At=256,wt=512,Ct=30,It="...",Ot=800,Nt=16,Pt=1,Mt=2,Rt=3,Lt=1/0,jt=9007199254740991,Gt=17976931348623157e292,Vt=NaN,Yt=4294967295,Xt=Yt-1,rr=Yt>>>1,cr=[["ary",$t],["bind",vt],["bindKey",bt],["curry",xt],["curryRight",yt],["flip",wt],["partial",Et],["partialRight",St],["rearg",At]],vr="[object Arguments]",Tr="[object Array]",gr="[object AsyncFunction]",Er="[object Boolean]",qt="[object Date]",ir="[object DOMException]",hr="[object Error]",nr="[object Function]",mr="[object GeneratorFunction]",Ar="[object Map]",Or="[object Number]",wr="[object Null]",Nr="[object Object]",Wr="[object Promise]",Vr="[object Proxy]",Jr="[object RegExp]",Yr="[object Set]",jr="[object String]",Hr="[object Symbol]",hn="[object Undefined]",pr="[object WeakMap]",sr="[object WeakSet]",Jt="[object ArrayBuffer]",ur="[object DataView]",br="[object Float32Array]",Sr="[object Float64Array]",yr="[object Int8Array]",Cr="[object Int16Array]",Lr="[object Int32Array]",Xr="[object Uint8Array]",qr="[object Uint8ClampedArray]",Qr="[object Uint16Array]",xn="[object Uint32Array]",wn=/\b__p \+= '';/g,nn=/\b(__p \+=) '' \+/g,Ln=/(__e\(.*?\)|\b__t\)) \+\n'';/g,zn=/&(?:amp|lt|gt|quot|#39);/g,En=/[&<>"']/g,sn=RegExp(zn.source),Dn=RegExp(En.source),Mn=/<%-([\s\S]+?)%>/g,In=/<%([\s\S]+?)%>/g,Cn=/<%=([\s\S]+?)%>/g,cn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ur=/^\w*$/,Fr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Hn=/[\\^$.*+?()[\]{}|]/g,ro=RegExp(Hn.source),Pn=/^\s+/,jo=/\s/,vo=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,eo=/\{\n\/\* \[wrapped with (.+)\] \*/,Co=/,? & /,Mr=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Ut=/[()=,{}\[\]\/\s]/,Zt=/\\(\\)?/g,zt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ht=/\w*$/,Dt=/^[-+]0x[0-9a-f]+$/i,Qt=/^0b[01]+$/i,ar=/^\[object .+?Constructor\]$/,lr=/^0o[0-7]+$/i,tr=/^(?:0|[1-9]\d*)$/,_r=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Br=/($^)/,un=/['\n\r\u2028\u2029\\]/g,fn="\\ud800-\\udfff",an="\\u0300-\\u036f",tn="\\ufe20-\\ufe2f",_n="\\u20d0-\\u20ff",jn=an+tn+_n,pn="\\u2700-\\u27bf",qn="a-z\\xdf-\\xf6\\xf8-\\xff",to="\\xac\\xb1\\xd7\\xf7",fo="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Fo="\\u2000-\\u206f",xo=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",_i="A-Z\\xc0-\\xd6\\xd8-\\xde",zo="\\ufe0e\\ufe0f",Zn=to+fo+Fo+xo,ko="['’]",na="["+fn+"]",Ho="["+Zn+"]",ga="["+jn+"]",Go="\\d+",ps="["+pn+"]",Uo="["+qn+"]",xa="[^"+fn+Zn+Go+pn+qn+_i+"]",es="\\ud83c[\\udffb-\\udfff]",Yo="(?:"+ga+"|"+es+")",Xo="[^"+fn+"]",Fs="(?:\\ud83c[\\udde6-\\uddff]){2}",El="[\\ud800-\\udbff][\\udc00-\\udfff]",hs="["+_i+"]",Vl="\\u200d",Sl="(?:"+Uo+"|"+xa+")",ws="(?:"+hs+"|"+xa+")",zs="(?:"+ko+"(?:d|ll|m|re|s|t|ve))?",Hs="(?:"+ko+"(?:D|LL|M|RE|S|T|VE))?",Cs=Yo+"?",gs="["+zo+"]?",Lu="(?:"+Vl+"(?:"+[Xo,Fs,El].join("|")+")"+gs+Cs+")*",Ul="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Bu="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",$l=gs+Cs+Lu,Pu="(?:"+[ps,Fs,El].join("|")+")"+$l,ju="(?:"+[Xo+ga+"?",ga,Fs,El,na].join("|")+")",ks=RegExp(ko,"g"),Fu=RegExp(ga,"g"),vs=RegExp(es+"(?="+es+")|"+ju+$l,"g"),Yl=RegExp([hs+"?"+Uo+"+"+zs+"(?="+[Ho,hs,"$"].join("|")+")",ws+"+"+Hs+"(?="+[Ho,hs+Sl,"$"].join("|")+")",hs+"?"+Sl+"+"+zs,hs+"+"+Hs,Bu,Ul,Go,Pu].join("|"),"g"),Pr=RegExp("["+Vl+fn+jn+zo+"]"),Gr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,bn=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],vn=-1,rn={};rn[br]=rn[Sr]=rn[yr]=rn[Cr]=rn[Lr]=rn[Xr]=rn[qr]=rn[Qr]=rn[xn]=!0,rn[vr]=rn[Tr]=rn[Jt]=rn[Er]=rn[ur]=rn[qt]=rn[hr]=rn[nr]=rn[Ar]=rn[Or]=rn[Nr]=rn[Jr]=rn[Yr]=rn[jr]=rn[pr]=!1;var dn={};dn[vr]=dn[Tr]=dn[Jt]=dn[ur]=dn[Er]=dn[qt]=dn[br]=dn[Sr]=dn[yr]=dn[Cr]=dn[Lr]=dn[Ar]=dn[Or]=dn[Nr]=dn[Jr]=dn[Yr]=dn[jr]=dn[Hr]=dn[Xr]=dn[qr]=dn[Qr]=dn[xn]=!0,dn[hr]=dn[nr]=dn[pr]=!1;var Wn={À:"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"},Kn={"&":"&","<":"<",">":">",'"':""","'":"'"},no={"&":"&","<":"<",">":">",""":'"',"'":"'"},Io={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ts=parseFloat,zu=parseInt,Gs=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,Tl=typeof self=="object"&&self&&self.Object===Object&&self,oo=Gs||Tl||Function("return this")(),Hu=_e&&!_e.nodeType&&_e,Is=Hu&&!0&&j&&!j.nodeType&&j,Qp=Is&&Is.exports===Hu,Gu=Qp&&Gs.process,Ro=function(){try{var dr=Is&&Is.require&&Is.require("util").types;return dr||Gu&&Gu.binding&&Gu.binding("util")}catch{}}(),Jp=Ro&&Ro.isArrayBuffer,e1=Ro&&Ro.isDate,r1=Ro&&Ro.isMap,n1=Ro&&Ro.isRegExp,o1=Ro&&Ro.isSet,i1=Ro&&Ro.isTypedArray;function Eo(dr,$r,xr){switch(xr.length){case 0:return dr.call($r);case 1:return dr.call($r,xr[0]);case 2:return dr.call($r,xr[0],xr[1]);case 3:return dr.call($r,xr[0],xr[1],xr[2])}return dr.apply($r,xr)}function um(dr,$r,xr,Zr){for(var Sn=-1,Bn=dr==null?0:dr.length;++Sn-1}function Wu(dr,$r,xr){for(var Zr=-1,Sn=dr==null?0:dr.length;++Zr-1;);return xr}function p1(dr,$r){for(var xr=dr.length;xr--&&Ws($r,dr[xr],0)>-1;);return xr}function ym(dr,$r){for(var xr=dr.length,Zr=0;xr--;)dr[xr]===$r&&++Zr;return Zr}var bm=Uu(Wn),_m=Uu(Kn);function xm(dr){return"\\"+Io[dr]}function Em(dr,$r){return dr==null?et:dr[$r]}function Ks(dr){return Pr.test(dr)}function Sm(dr){return Gr.test(dr)}function $m(dr){for(var $r,xr=[];!($r=dr.next()).done;)xr.push($r.value);return xr}function Qu(dr){var $r=-1,xr=Array(dr.size);return dr.forEach(function(Zr,Sn){xr[++$r]=[Sn,Zr]}),xr}function h1(dr,$r){return function(xr){return dr($r(xr))}}function _s(dr,$r){for(var xr=-1,Zr=dr.length,Sn=0,Bn=[];++xr-1}function dy(ht,mt){var Tt=this.__data__,kt=pu(Tt,ht);return kt<0?(++this.size,Tt.push([ht,mt])):Tt[kt][1]=mt,this}rs.prototype.clear=sy,rs.prototype.delete=ly,rs.prototype.get=uy,rs.prototype.has=cy,rs.prototype.set=dy;function os(ht){var mt=-1,Tt=ht==null?0:ht.length;for(this.clear();++mt=mt?ht:mt)),ht}function Mo(ht,mt,Tt,kt,Bt,Kt){var er,or=mt&ct,fr=mt&dt,Ir=mt&ft;if(Tt&&(er=Bt?Tt(ht,kt,Bt,Kt):Tt(ht)),er!==et)return er;if(!Yn(ht))return ht;var Rr=$n(ht);if(Rr){if(er=m0(ht),!or)return mo(ht,er)}else{var Dr=co(ht),Kr=Dr==nr||Dr==mr;if(As(ht))return Z1(ht,or);if(Dr==Nr||Dr==vr||Kr&&!Bt){if(er=fr||Kr?{}:hv(ht),!or)return fr?a0(ht,wy(er,ht)):i0(ht,w1(er,ht))}else{if(!dn[Dr])return Bt?ht:{};er=y0(ht,Dr,or)}}Kt||(Kt=new Ko);var en=Kt.get(ht);if(en)return en;Kt.set(ht,er),Gv(ht)?ht.forEach(function(yn){er.add(Mo(yn,mt,Tt,yn,ht,Kt))}):zv(ht)&&ht.forEach(function(yn,Rn){er.set(Rn,Mo(yn,mt,Tt,Rn,ht,Kt))});var mn=Ir?fr?xp:_p:fr?bo:so,An=Rr?et:mn(ht);return Oo(An||ht,function(yn,Rn){An&&(Rn=yn,yn=ht[Rn]),Dl(er,Rn,Mo(yn,mt,Tt,Rn,ht,Kt))}),er}function Cy(ht){var mt=so(ht);return function(Tt){return C1(Tt,ht,mt)}}function C1(ht,mt,Tt){var kt=Tt.length;if(ht==null)return!kt;for(ht=Vn(ht);kt--;){var Bt=Tt[kt],Kt=mt[Bt],er=ht[Bt];if(er===et&&!(Bt in ht)||!Kt(er))return!1}return!0}function k1(ht,mt,Tt){if(typeof ht!="function")throw new No(ot);return Hl(function(){ht.apply(et,Tt)},mt)}function Ml(ht,mt,Tt,kt){var Bt=-1,Kt=Xl,er=!0,or=ht.length,fr=[],Ir=mt.length;if(!or)return fr;Tt&&(mt=Un(mt,So(Tt))),kt?(Kt=Wu,er=!1):mt.length>=rt&&(Kt=Al,er=!1,mt=new Ns(mt));e:for(;++BtBt?0:Bt+Tt),kt=kt===et||kt>Bt?Bt:Tn(kt),kt<0&&(kt+=Bt),kt=Tt>kt?0:Kv(kt);Tt0&&Tt(or)?mt>1?lo(or,mt-1,Tt,kt,Bt):bs(Bt,or):kt||(Bt[Bt.length]=or)}return Bt}var rp=tv(),O1=tv(!0);function Zo(ht,mt){return ht&&rp(ht,mt,so)}function np(ht,mt){return ht&&O1(ht,mt,so)}function gu(ht,mt){return ys(mt,function(Tt){return cs(ht[Tt])})}function Ms(ht,mt){mt=$s(mt,ht);for(var Tt=0,kt=mt.length;ht!=null&&Ttmt}function Oy(ht,mt){return ht!=null&&Gn.call(ht,mt)}function Ny(ht,mt){return ht!=null&&mt in Vn(ht)}function Dy(ht,mt,Tt){return ht>=uo(mt,Tt)&&ht=120&&Rr.length>=120)?new Ns(er&&Rr):et}Rr=ht[0];var Dr=-1,Kr=or[0];e:for(;++Dr-1;)or!==ht&&au.call(or,fr,1),au.call(ht,fr,1);return ht}function G1(ht,mt){for(var Tt=ht?mt.length:0,kt=Tt-1;Tt--;){var Bt=mt[Tt];if(Tt==kt||Bt!==Kt){var Kt=Bt;us(Bt)?au.call(ht,Bt,1):pp(ht,Bt)}}return ht}function cp(ht,mt){return ht+uu(S1()*(mt-ht+1))}function qy(ht,mt,Tt,kt){for(var Bt=-1,Kt=ao(lu((mt-ht)/(Tt||1)),0),er=xr(Kt);Kt--;)er[kt?Kt:++Bt]=ht,ht+=Tt;return er}function dp(ht,mt){var Tt="";if(!ht||mt<1||mt>jt)return Tt;do mt%2&&(Tt+=ht),mt=uu(mt/2),mt&&(ht+=ht);while(mt);return Tt}function kn(ht,mt){return Cp(mv(ht,mt,_o),ht+"")}function Uy(ht){return A1(xl(ht))}function Yy(ht,mt){var Tt=xl(ht);return Au(Tt,Ds(mt,0,Tt.length))}function Pl(ht,mt,Tt,kt){if(!Yn(ht))return ht;mt=$s(mt,ht);for(var Bt=-1,Kt=mt.length,er=Kt-1,or=ht;or!=null&&++BtBt?0:Bt+mt),Tt=Tt>Bt?Bt:Tt,Tt<0&&(Tt+=Bt),Bt=mt>Tt?0:Tt-mt>>>0,mt>>>=0;for(var Kt=xr(Bt);++kt>>1,er=ht[Kt];er!==null&&!To(er)&&(Tt?er<=mt:er=rt){var Ir=mt?null:c0(ht);if(Ir)return Ql(Ir);er=!1,Bt=Al,fr=new Ns}else fr=mt?[]:or;e:for(;++kt=kt?ht:Lo(ht,mt,Tt)}var X1=jm||function(ht){return oo.clearTimeout(ht)};function Z1(ht,mt){if(mt)return ht.slice();var Tt=ht.length,kt=y1?y1(Tt):new ht.constructor(Tt);return ht.copy(kt),kt}function mp(ht){var mt=new ht.constructor(ht.byteLength);return new ou(mt).set(new ou(ht)),mt}function e0(ht,mt){var Tt=mt?mp(ht.buffer):ht.buffer;return new ht.constructor(Tt,ht.byteOffset,ht.byteLength)}function r0(ht){var mt=new ht.constructor(ht.source,Ht.exec(ht));return mt.lastIndex=ht.lastIndex,mt}function n0(ht){return Nl?Vn(Nl.call(ht)):{}}function Q1(ht,mt){var Tt=mt?mp(ht.buffer):ht.buffer;return new ht.constructor(Tt,ht.byteOffset,ht.length)}function J1(ht,mt){if(ht!==mt){var Tt=ht!==et,kt=ht===null,Bt=ht===ht,Kt=To(ht),er=mt!==et,or=mt===null,fr=mt===mt,Ir=To(mt);if(!or&&!Ir&&!Kt&&ht>mt||Kt&&er&&fr&&!or&&!Ir||kt&&er&&fr||!Tt&&fr||!Bt)return 1;if(!kt&&!Kt&&!Ir&&ht=or)return fr;var Ir=Tt[kt];return fr*(Ir=="desc"?-1:1)}}return ht.index-mt.index}function _h(ht,mt,Tt,kt){for(var Bt=-1,Kt=ht.length,er=Tt.length,or=-1,fr=mt.length,Ir=ao(Kt-er,0),Rr=xr(fr+Ir),Dr=!kt;++or1?Tt[Bt-1]:et,er=Bt>2?Tt[2]:et;for(Kt=ht.length>3&&typeof Kt=="function"?(Bt--,Kt):et,er&&ho(Tt[0],Tt[1],er)&&(Kt=Bt<3?et:Kt,Bt=1),mt=Vn(mt);++kt-1?Bt[Kt?mt[er]:er]:et}}function ov(ht){return ls(function(mt){var Tt=mt.length,kt=Tt,Bt=Do.prototype.thru;for(ht&&mt.reverse();kt--;){var Kt=mt[kt];if(typeof Kt!="function")throw new No(ot);if(Bt&&!er&&$u(Kt)=="wrapper")var er=new Do([],!0)}for(kt=er?kt:Tt;++kt1&&Nn.reverse(),Rr&&fror))return!1;var Ir=Kt.get(ht),Rr=Kt.get(mt);if(Ir&&Rr)return Ir==mt&&Rr==ht;var Dr=-1,Kr=!0,en=Tt>?new Ns:et;for(Kt.set(ht,mt),Kt.set(mt,ht);++Dr1?"& ":"")+mt[kt],mt=mt.join(Tt>2?", ":" "),ht.replace(vo,`{ +/* [wrapped with `+mt+`] */ +`)}function _0(ht){return $n(ht)||Ps(ht)||!!(x1&&ht&&ht[x1])}function us(ht,mt){var Tt=typeof ht;return mt=mt??jt,!!mt&&(Tt=="number"||Tt!="symbol"&&tr.test(ht))&&ht>-1&&ht%1==0&&ht0){if(++mt>=Ot)return arguments[0]}else mt=0;return ht.apply(et,arguments)}}function Au(ht,mt){var Tt=-1,kt=ht.length,Bt=kt-1;for(mt=mt===et?kt:mt;++Tt1?ht[mt-1]:et;return Tt=typeof Tt=="function"?(ht.pop(),Tt):et,kv(ht,Tt)});function Iv(ht){var mt=Wt(ht);return mt.__chain__=!0,mt}function I_(ht,mt){return mt(ht),ht}function wu(ht,mt){return mt(ht)}var R_=ls(function(ht){var mt=ht.length,Tt=mt?ht[0]:0,kt=this.__wrapped__,Bt=function(Kt){return tp(Kt,ht)};return mt>1||this.__actions__.length||!(kt instanceof On)||!us(Tt)?this.thru(Bt):(kt=kt.slice(Tt,+Tt+(mt?1:0)),kt.__actions__.push({func:wu,args:[Bt],thisArg:et}),new Do(kt,this.__chain__).thru(function(Kt){return mt&&!Kt.length&&Kt.push(et),Kt}))});function O_(){return Iv(this)}function N_(){return new Do(this.value(),this.__chain__)}function D_(){this.__values__===et&&(this.__values__=Wv(this.value()));var ht=this.__index__>=this.__values__.length,mt=ht?et:this.__values__[this.__index__++];return{done:ht,value:mt}}function M_(){return this}function L_(ht){for(var mt,Tt=this;Tt instanceof fu;){var kt=Sv(Tt);kt.__index__=0,kt.__values__=et,mt?Bt.__wrapped__=kt:mt=kt;var Bt=kt;Tt=Tt.__wrapped__}return Bt.__wrapped__=ht,mt}function B_(){var ht=this.__wrapped__;if(ht instanceof On){var mt=ht;return this.__actions__.length&&(mt=new On(this)),mt=mt.reverse(),mt.__actions__.push({func:wu,args:[kp],thisArg:et}),new Do(mt,this.__chain__)}return this.thru(kp)}function P_(){return U1(this.__wrapped__,this.__actions__)}var j_=bu(function(ht,mt,Tt){Gn.call(ht,Tt)?++ht[Tt]:as(ht,Tt,1)});function F_(ht,mt,Tt){var kt=$n(ht)?a1:Iy;return Tt&&ho(ht,mt,Tt)&&(mt=et),kt(ht,gn(mt,3))}function z_(ht,mt){var Tt=$n(ht)?ys:R1;return Tt(ht,gn(mt,3))}var H_=nv($v),G_=nv(Tv);function W_(ht,mt){return lo(Cu(ht,mt),1)}function K_(ht,mt){return lo(Cu(ht,mt),Lt)}function V_(ht,mt,Tt){return Tt=Tt===et?1:Tn(Tt),lo(Cu(ht,mt),Tt)}function Rv(ht,mt){var Tt=$n(ht)?Oo:Es;return Tt(ht,gn(mt,3))}function Ov(ht,mt){var Tt=$n(ht)?cm:I1;return Tt(ht,gn(mt,3))}var q_=bu(function(ht,mt,Tt){Gn.call(ht,Tt)?ht[Tt].push(mt):as(ht,Tt,[mt])});function U_(ht,mt,Tt,kt){ht=yo(ht)?ht:xl(ht),Tt=Tt&&!kt?Tn(Tt):0;var Bt=ht.length;return Tt<0&&(Tt=ao(Bt+Tt,0)),Nu(ht)?Tt<=Bt&&ht.indexOf(mt,Tt)>-1:!!Bt&&Ws(ht,mt,Tt)>-1}var Y_=kn(function(ht,mt,Tt){var kt=-1,Bt=typeof mt=="function",Kt=yo(ht)?xr(ht.length):[];return Es(ht,function(er){Kt[++kt]=Bt?Eo(mt,er,Tt):Ll(er,mt,Tt)}),Kt}),X_=bu(function(ht,mt,Tt){as(ht,Tt,mt)});function Cu(ht,mt){var Tt=$n(ht)?Un:B1;return Tt(ht,gn(mt,3))}function Z_(ht,mt,Tt,kt){return ht==null?[]:($n(mt)||(mt=mt==null?[]:[mt]),Tt=kt?et:Tt,$n(Tt)||(Tt=Tt==null?[]:[Tt]),z1(ht,mt,Tt))}var Q_=bu(function(ht,mt,Tt){ht[Tt?0:1].push(mt)},function(){return[[],[]]});function J_(ht,mt,Tt){var kt=$n(ht)?Ku:c1,Bt=arguments.length<3;return kt(ht,gn(mt,4),Tt,Bt,Es)}function ex(ht,mt,Tt){var kt=$n(ht)?dm:c1,Bt=arguments.length<3;return kt(ht,gn(mt,4),Tt,Bt,I1)}function tx(ht,mt){var Tt=$n(ht)?ys:R1;return Tt(ht,Ru(gn(mt,3)))}function rx(ht){var mt=$n(ht)?A1:Uy;return mt(ht)}function nx(ht,mt,Tt){(Tt?ho(ht,mt,Tt):mt===et)?mt=1:mt=Tn(mt);var kt=$n(ht)?$y:Yy;return kt(ht,mt)}function ox(ht){var mt=$n(ht)?Ty:Zy;return mt(ht)}function ix(ht){if(ht==null)return 0;if(yo(ht))return Nu(ht)?Vs(ht):ht.length;var mt=co(ht);return mt==Ar||mt==Yr?ht.size:sp(ht).length}function ax(ht,mt,Tt){var kt=$n(ht)?Vu:Qy;return Tt&&ho(ht,mt,Tt)&&(mt=et),kt(ht,gn(mt,3))}var sx=kn(function(ht,mt){if(ht==null)return[];var Tt=mt.length;return Tt>1&&ho(ht,mt[0],mt[1])?mt=[]:Tt>2&&ho(mt[0],mt[1],mt[2])&&(mt=[mt[0]]),z1(ht,lo(mt,1),[])}),ku=Fm||function(){return oo.Date.now()};function lx(ht,mt){if(typeof mt!="function")throw new No(ot);return ht=Tn(ht),function(){if(--ht<1)return mt.apply(this,arguments)}}function Nv(ht,mt,Tt){return mt=Tt?et:mt,mt=ht&&mt==null?ht.length:mt,ss(ht,$t,et,et,et,et,mt)}function Dv(ht,mt){var Tt;if(typeof mt!="function")throw new No(ot);return ht=Tn(ht),function(){return--ht>0&&(Tt=mt.apply(this,arguments)),ht<=1&&(mt=et),Tt}}var Rp=kn(function(ht,mt,Tt){var kt=vt;if(Tt.length){var Bt=_s(Tt,yl(Rp));kt|=Et}return ss(ht,kt,mt,Tt,Bt)}),Mv=kn(function(ht,mt,Tt){var kt=vt|bt;if(Tt.length){var Bt=_s(Tt,yl(Mv));kt|=Et}return ss(mt,kt,ht,Tt,Bt)});function Lv(ht,mt,Tt){mt=Tt?et:mt;var kt=ss(ht,xt,et,et,et,et,et,mt);return kt.placeholder=Lv.placeholder,kt}function Bv(ht,mt,Tt){mt=Tt?et:mt;var kt=ss(ht,yt,et,et,et,et,et,mt);return kt.placeholder=Bv.placeholder,kt}function Pv(ht,mt,Tt){var kt,Bt,Kt,er,or,fr,Ir=0,Rr=!1,Dr=!1,Kr=!0;if(typeof ht!="function")throw new No(ot);mt=Po(mt)||0,Yn(Tt)&&(Rr=!!Tt.leading,Dr="maxWait"in Tt,Kt=Dr?ao(Po(Tt.maxWait)||0,mt):Kt,Kr="trailing"in Tt?!!Tt.trailing:Kr);function en(Jn){var qo=kt,fs=Bt;return kt=Bt=et,Ir=Jn,er=ht.apply(fs,qo),er}function mn(Jn){return Ir=Jn,or=Hl(Rn,mt),Rr?en(Jn):er}function An(Jn){var qo=Jn-fr,fs=Jn-Ir,nm=mt-qo;return Dr?uo(nm,Kt-fs):nm}function yn(Jn){var qo=Jn-fr,fs=Jn-Ir;return fr===et||qo>=mt||qo<0||Dr&&fs>=Kt}function Rn(){var Jn=ku();if(yn(Jn))return Nn(Jn);or=Hl(Rn,An(Jn))}function Nn(Jn){return or=et,Kr&&kt?en(Jn):(kt=Bt=et,er)}function Ao(){or!==et&&X1(or),Ir=0,kt=fr=Bt=or=et}function go(){return or===et?er:Nn(ku())}function wo(){var Jn=ku(),qo=yn(Jn);if(kt=arguments,Bt=this,fr=Jn,qo){if(or===et)return mn(fr);if(Dr)return X1(or),or=Hl(Rn,mt),en(fr)}return or===et&&(or=Hl(Rn,mt)),er}return wo.cancel=Ao,wo.flush=go,wo}var ux=kn(function(ht,mt){return k1(ht,1,mt)}),dx=kn(function(ht,mt,Tt){return k1(ht,Po(mt)||0,Tt)});function fx(ht){return ss(ht,wt)}function Iu(ht,mt){if(typeof ht!="function"||mt!=null&&typeof mt!="function")throw new No(ot);var Tt=function(){var kt=arguments,Bt=mt?mt.apply(this,kt):kt[0],Kt=Tt.cache;if(Kt.has(Bt))return Kt.get(Bt);var er=ht.apply(this,kt);return Tt.cache=Kt.set(Bt,er)||Kt,er};return Tt.cache=new(Iu.Cache||os),Tt}Iu.Cache=os;function Ru(ht){if(typeof ht!="function")throw new No(ot);return function(){var mt=arguments;switch(mt.length){case 0:return!ht.call(this);case 1:return!ht.call(this,mt[0]);case 2:return!ht.call(this,mt[0],mt[1]);case 3:return!ht.call(this,mt[0],mt[1],mt[2])}return!ht.apply(this,mt)}}function hx(ht){return Dv(2,ht)}var gx=Jy(function(ht,mt){mt=mt.length==1&&$n(mt[0])?Un(mt[0],So(gn())):Un(lo(mt,1),So(gn()));var Tt=mt.length;return kn(function(kt){for(var Bt=-1,Kt=uo(kt.length,Tt);++Bt=mt}),Ps=D1(function(){return arguments}())?D1:function(ht){return Xn(ht)&&Gn.call(ht,"callee")&&!_1.call(ht,"callee")},$n=xr.isArray,Rx=Jp?So(Jp):Ly;function yo(ht){return ht!=null&&Ou(ht.length)&&!cs(ht)}function Qn(ht){return Xn(ht)&&yo(ht)}function Ox(ht){return ht===!0||ht===!1||Xn(ht)&&po(ht)==Er}var As=Hm||Gp,Nx=e1?So(e1):By;function Dx(ht){return Xn(ht)&&ht.nodeType===1&&!Gl(ht)}function Mx(ht){if(ht==null)return!0;if(yo(ht)&&($n(ht)||typeof ht=="string"||typeof ht.splice=="function"||As(ht)||_l(ht)||Ps(ht)))return!ht.length;var mt=co(ht);if(mt==Ar||mt==Yr)return!ht.size;if(zl(ht))return!sp(ht).length;for(var Tt in ht)if(Gn.call(ht,Tt))return!1;return!0}function Lx(ht,mt){return Bl(ht,mt)}function Bx(ht,mt,Tt){Tt=typeof Tt=="function"?Tt:et;var kt=Tt?Tt(ht,mt):et;return kt===et?Bl(ht,mt,et,Tt):!!kt}function Np(ht){if(!Xn(ht))return!1;var mt=po(ht);return mt==hr||mt==ir||typeof ht.message=="string"&&typeof ht.name=="string"&&!Gl(ht)}function Px(ht){return typeof ht=="number"&&E1(ht)}function cs(ht){if(!Yn(ht))return!1;var mt=po(ht);return mt==nr||mt==mr||mt==gr||mt==Vr}function Fv(ht){return typeof ht=="number"&&ht==Tn(ht)}function Ou(ht){return typeof ht=="number"&&ht>-1&&ht%1==0&&ht<=jt}function Yn(ht){var mt=typeof ht;return ht!=null&&(mt=="object"||mt=="function")}function Xn(ht){return ht!=null&&typeof ht=="object"}var zv=r1?So(r1):jy;function jx(ht,mt){return ht===mt||ap(ht,mt,Sp(mt))}function Fx(ht,mt,Tt){return Tt=typeof Tt=="function"?Tt:et,ap(ht,mt,Sp(mt),Tt)}function zx(ht){return Hv(ht)&&ht!=+ht}function Hx(ht){if(S0(ht))throw new Sn(nt);return M1(ht)}function Gx(ht){return ht===null}function Wx(ht){return ht==null}function Hv(ht){return typeof ht=="number"||Xn(ht)&&po(ht)==Or}function Gl(ht){if(!Xn(ht)||po(ht)!=Nr)return!1;var mt=iu(ht);if(mt===null)return!0;var Tt=Gn.call(mt,"constructor")&&mt.constructor;return typeof Tt=="function"&&Tt instanceof Tt&&tu.call(Tt)==Lm}var Dp=n1?So(n1):Fy;function Kx(ht){return Fv(ht)&&ht>=-jt&&ht<=jt}var Gv=o1?So(o1):zy;function Nu(ht){return typeof ht=="string"||!$n(ht)&&Xn(ht)&&po(ht)==jr}function To(ht){return typeof ht=="symbol"||Xn(ht)&&po(ht)==Hr}var _l=i1?So(i1):Hy;function Vx(ht){return ht===et}function qx(ht){return Xn(ht)&&co(ht)==pr}function Ux(ht){return Xn(ht)&&po(ht)==sr}var Yx=Su(lp),Xx=Su(function(ht,mt){return ht<=mt});function Wv(ht){if(!ht)return[];if(yo(ht))return Nu(ht)?Wo(ht):mo(ht);if(Cl&&ht[Cl])return $m(ht[Cl]());var mt=co(ht),Tt=mt==Ar?Qu:mt==Yr?Ql:xl;return Tt(ht)}function ds(ht){if(!ht)return ht===0?ht:0;if(ht=Po(ht),ht===Lt||ht===-Lt){var mt=ht<0?-1:1;return mt*Gt}return ht===ht?ht:0}function Tn(ht){var mt=ds(ht),Tt=mt%1;return mt===mt?Tt?mt-Tt:mt:0}function Kv(ht){return ht?Ds(Tn(ht),0,Yt):0}function Po(ht){if(typeof ht=="number")return ht;if(To(ht))return Vt;if(Yn(ht)){var mt=typeof ht.valueOf=="function"?ht.valueOf():ht;ht=Yn(mt)?mt+"":mt}if(typeof ht!="string")return ht===0?ht:+ht;ht=d1(ht);var Tt=Qt.test(ht);return Tt||lr.test(ht)?zu(ht.slice(2),Tt?2:8):Dt.test(ht)?Vt:+ht}function Vv(ht){return Qo(ht,bo(ht))}function Zx(ht){return ht?Ds(Tn(ht),-jt,jt):ht===0?ht:0}function Fn(ht){return ht==null?"":$o(ht)}var Qx=Qs(function(ht,mt){if(zl(mt)||yo(mt)){Qo(mt,so(mt),ht);return}for(var Tt in mt)Gn.call(mt,Tt)&&Dl(ht,Tt,mt[Tt])}),qv=Qs(function(ht,mt){Qo(mt,bo(mt),ht)}),Du=Qs(function(ht,mt,Tt,kt){Qo(mt,bo(mt),ht,kt)}),Jx=Qs(function(ht,mt,Tt,kt){Qo(mt,so(mt),ht,kt)}),eE=ls(tp);function tE(ht,mt){var Tt=Zs(ht);return mt==null?Tt:w1(Tt,mt)}var rE=kn(function(ht,mt){ht=Vn(ht);var Tt=-1,kt=mt.length,Bt=kt>2?mt[2]:et;for(Bt&&ho(mt[0],mt[1],Bt)&&(kt=1);++Tt1),Kt}),Qo(ht,xp(ht),Tt),kt&&(Tt=Mo(Tt,ct|dt|ft,d0));for(var Bt=mt.length;Bt--;)pp(Tt,mt[Bt]);return Tt});function _E(ht,mt){return Yv(ht,Ru(gn(mt)))}var xE=ls(function(ht,mt){return ht==null?{}:Ky(ht,mt)});function Yv(ht,mt){if(ht==null)return{};var Tt=Un(xp(ht),function(kt){return[kt]});return mt=gn(mt),H1(ht,Tt,function(kt,Bt){return mt(kt,Bt[0])})}function EE(ht,mt,Tt){mt=$s(mt,ht);var kt=-1,Bt=mt.length;for(Bt||(Bt=1,ht=et);++ktmt){var kt=ht;ht=mt,mt=kt}if(Tt||ht%1||mt%1){var Bt=S1();return uo(ht+Bt*(mt-ht+ts("1e-"+((Bt+"").length-1))),mt)}return cp(ht,mt)}var NE=Js(function(ht,mt,Tt){return mt=mt.toLowerCase(),ht+(Tt?Qv(mt):mt)});function Qv(ht){return Bp(Fn(ht).toLowerCase())}function Jv(ht){return ht=Fn(ht),ht&&ht.replace(_r,bm).replace(Fu,"")}function DE(ht,mt,Tt){ht=Fn(ht),mt=$o(mt);var kt=ht.length;Tt=Tt===et?kt:Ds(Tn(Tt),0,kt);var Bt=Tt;return Tt-=mt.length,Tt>=0&&ht.slice(Tt,Bt)==mt}function ME(ht){return ht=Fn(ht),ht&&Dn.test(ht)?ht.replace(En,_m):ht}function LE(ht){return ht=Fn(ht),ht&&ro.test(ht)?ht.replace(Hn,"\\$&"):ht}var BE=Js(function(ht,mt,Tt){return ht+(Tt?"-":"")+mt.toLowerCase()}),PE=Js(function(ht,mt,Tt){return ht+(Tt?" ":"")+mt.toLowerCase()}),jE=rv("toLowerCase");function FE(ht,mt,Tt){ht=Fn(ht),mt=Tn(mt);var kt=mt?Vs(ht):0;if(!mt||kt>=mt)return ht;var Bt=(mt-kt)/2;return Eu(uu(Bt),Tt)+ht+Eu(lu(Bt),Tt)}function zE(ht,mt,Tt){ht=Fn(ht),mt=Tn(mt);var kt=mt?Vs(ht):0;return mt&&kt>>0,Tt?(ht=Fn(ht),ht&&(typeof mt=="string"||mt!=null&&!Dp(mt))&&(mt=$o(mt),!mt&&Ks(ht))?Ts(Wo(ht),0,Tt):ht.split(mt,Tt)):[]}var UE=Js(function(ht,mt,Tt){return ht+(Tt?" ":"")+Bp(mt)});function YE(ht,mt,Tt){return ht=Fn(ht),Tt=Tt==null?0:Ds(Tn(Tt),0,ht.length),mt=$o(mt),ht.slice(Tt,Tt+mt.length)==mt}function XE(ht,mt,Tt){var kt=Wt.templateSettings;Tt&&ho(ht,mt,Tt)&&(mt=et),ht=Fn(ht),mt=Du({},mt,kt,uv);var Bt=Du({},mt.imports,kt.imports,uv),Kt=so(Bt),er=Zu(Bt,Kt),or,fr,Ir=0,Rr=mt.interpolate||Br,Dr="__p += '",Kr=Ju((mt.escape||Br).source+"|"+Rr.source+"|"+(Rr===Cn?zt:Br).source+"|"+(mt.evaluate||Br).source+"|$","g"),en="//# sourceURL="+(Gn.call(mt,"sourceURL")?(mt.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++vn+"]")+` +`;ht.replace(Kr,function(yn,Rn,Nn,Ao,go,wo){return Nn||(Nn=Ao),Dr+=ht.slice(Ir,wo).replace(un,xm),Rn&&(or=!0,Dr+=`' + +__e(`+Rn+`) + +'`),go&&(fr=!0,Dr+=`'; +`+go+`; +__p += '`),Nn&&(Dr+=`' + +((__t = (`+Nn+`)) == null ? '' : __t) + +'`),Ir=wo+yn.length,yn}),Dr+=`'; +`;var mn=Gn.call(mt,"variable")&&mt.variable;if(!mn)Dr=`with (obj) { +`+Dr+` +} +`;else if(Ut.test(mn))throw new Sn(it);Dr=(fr?Dr.replace(wn,""):Dr).replace(nn,"$1").replace(Ln,"$1;"),Dr="function("+(mn||"obj")+`) { +`+(mn?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(or?", __e = _.escape":"")+(fr?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Dr+`return __p +}`;var An=tm(function(){return Bn(Kt,en+"return "+Dr).apply(et,er)});if(An.source=Dr,Np(An))throw An;return An}function ZE(ht){return Fn(ht).toLowerCase()}function QE(ht){return Fn(ht).toUpperCase()}function JE(ht,mt,Tt){if(ht=Fn(ht),ht&&(Tt||mt===et))return d1(ht);if(!ht||!(mt=$o(mt)))return ht;var kt=Wo(ht),Bt=Wo(mt),Kt=f1(kt,Bt),er=p1(kt,Bt)+1;return Ts(kt,Kt,er).join("")}function eS(ht,mt,Tt){if(ht=Fn(ht),ht&&(Tt||mt===et))return ht.slice(0,g1(ht)+1);if(!ht||!(mt=$o(mt)))return ht;var kt=Wo(ht),Bt=p1(kt,Wo(mt))+1;return Ts(kt,0,Bt).join("")}function tS(ht,mt,Tt){if(ht=Fn(ht),ht&&(Tt||mt===et))return ht.replace(Pn,"");if(!ht||!(mt=$o(mt)))return ht;var kt=Wo(ht),Bt=f1(kt,Wo(mt));return Ts(kt,Bt).join("")}function rS(ht,mt){var Tt=Ct,kt=It;if(Yn(mt)){var Bt="separator"in mt?mt.separator:Bt;Tt="length"in mt?Tn(mt.length):Tt,kt="omission"in mt?$o(mt.omission):kt}ht=Fn(ht);var Kt=ht.length;if(Ks(ht)){var er=Wo(ht);Kt=er.length}if(Tt>=Kt)return ht;var or=Tt-Vs(kt);if(or<1)return kt;var fr=er?Ts(er,0,or).join(""):ht.slice(0,or);if(Bt===et)return fr+kt;if(er&&(or+=fr.length-or),Dp(Bt)){if(ht.slice(or).search(Bt)){var Ir,Rr=fr;for(Bt.global||(Bt=Ju(Bt.source,Fn(Ht.exec(Bt))+"g")),Bt.lastIndex=0;Ir=Bt.exec(Rr);)var Dr=Ir.index;fr=fr.slice(0,Dr===et?or:Dr)}}else if(ht.indexOf($o(Bt),or)!=or){var Kr=fr.lastIndexOf(Bt);Kr>-1&&(fr=fr.slice(0,Kr))}return fr+kt}function nS(ht){return ht=Fn(ht),ht&&sn.test(ht)?ht.replace(zn,Cm):ht}var oS=Js(function(ht,mt,Tt){return ht+(Tt?" ":"")+mt.toUpperCase()}),Bp=rv("toUpperCase");function em(ht,mt,Tt){return ht=Fn(ht),mt=Tt?et:mt,mt===et?Sm(ht)?Rm(ht):hm(ht):ht.match(mt)||[]}var tm=kn(function(ht,mt){try{return Eo(ht,et,mt)}catch(Tt){return Np(Tt)?Tt:new Sn(Tt)}}),iS=ls(function(ht,mt){return Oo(mt,function(Tt){Tt=Jo(Tt),as(ht,Tt,Rp(ht[Tt],ht))}),ht});function aS(ht){var mt=ht==null?0:ht.length,Tt=gn();return ht=mt?Un(ht,function(kt){if(typeof kt[1]!="function")throw new No(ot);return[Tt(kt[0]),kt[1]]}):[],kn(function(kt){for(var Bt=-1;++Btjt)return[];var Tt=Yt,kt=uo(ht,Yt);mt=gn(mt),ht-=Yt;for(var Bt=Xu(kt,mt);++Tt0||mt<0)?new On(Tt):(ht<0?Tt=Tt.takeRight(-ht):ht&&(Tt=Tt.drop(ht)),mt!==et&&(mt=Tn(mt),Tt=mt<0?Tt.dropRight(-mt):Tt.take(mt-ht)),Tt)},On.prototype.takeRightWhile=function(ht){return this.reverse().takeWhile(ht).reverse()},On.prototype.toArray=function(){return this.take(Yt)},Zo(On.prototype,function(ht,mt){var Tt=/^(?:filter|find|map|reject)|While$/.test(mt),kt=/^(?:head|last)$/.test(mt),Bt=Wt[kt?"take"+(mt=="last"?"Right":""):mt],Kt=kt||/^find/.test(mt);Bt&&(Wt.prototype[mt]=function(){var er=this.__wrapped__,or=kt?[1]:arguments,fr=er instanceof On,Ir=or[0],Rr=fr||$n(er),Dr=function(Rn){var Nn=Bt.apply(Wt,bs([Rn],or));return kt&&Kr?Nn[0]:Nn};Rr&&Tt&&typeof Ir=="function"&&Ir.length!=1&&(fr=Rr=!1);var Kr=this.__chain__,en=!!this.__actions__.length,mn=Kt&&!Kr,An=fr&&!en;if(!Kt&&Rr){er=An?er:new On(this);var yn=ht.apply(er,or);return yn.__actions__.push({func:wu,args:[Dr],thisArg:et}),new Do(yn,Kr)}return mn&&An?ht.apply(this,or):(yn=this.thru(Dr),mn?kt?yn.value()[0]:yn.value():yn)})}),Oo(["pop","push","shift","sort","splice","unshift"],function(ht){var mt=Jl[ht],Tt=/^(?:push|sort|unshift)$/.test(ht)?"tap":"thru",kt=/^(?:pop|shift)$/.test(ht);Wt.prototype[ht]=function(){var Bt=arguments;if(kt&&!this.__chain__){var Kt=this.value();return mt.apply($n(Kt)?Kt:[],Bt)}return this[Tt](function(er){return mt.apply($n(er)?er:[],Bt)})}}),Zo(On.prototype,function(ht,mt){var Tt=Wt[mt];if(Tt){var kt=Tt.name+"";Gn.call(Xs,kt)||(Xs[kt]=[]),Xs[kt].push({name:mt,func:Tt})}}),Xs[_u(et,bt).name]=[{name:"wrapper",func:et}],On.prototype.clone=Jm,On.prototype.reverse=ey,On.prototype.value=ty,Wt.prototype.at=R_,Wt.prototype.chain=O_,Wt.prototype.commit=N_,Wt.prototype.next=D_,Wt.prototype.plant=L_,Wt.prototype.reverse=B_,Wt.prototype.toJSON=Wt.prototype.valueOf=Wt.prototype.value=P_,Wt.prototype.first=Wt.prototype.head,Cl&&(Wt.prototype[Cl]=M_),Wt},qs=Om();Is?((Is.exports=qs)._=qs,Hu._=qs):oo._=qs}).call(commonjsGlobal)})(lodash$1,lodash$1.exports);var lodashExports=lodash$1.exports;const isImageDataObject=j=>{if(!lodashExports.isPlainObject(j))return!1;const _e=Object.keys(j);return _e.length!==1?!1:_e[0].startsWith("data:image/")},encodeImageDataObjectToMarkup=j=>{const _e=Object.keys(j).find(et=>et.startsWith("data:image/"));return _e?`![image](${j[_e]??""})`:""},listToMarkup=j=>j.map(_e=>typeof _e=="string"?_e:isImageDataObject(_e)?encodeImageDataObjectToMarkup(_e):valueStringify(_e)).join(` + +`),isChatInput=j=>!!j.is_chat_input,isChatHistory=(j,_e,et=!1)=>j!==FlowType.Chat||_e.type!==ValueType.list?!1:Reflect.has(_e,"is_chat_history")?!!_e.is_chat_history:et?!1:_e.name===DEFAULT_CHAT_HISTORY_NAME,isChatOutput=j=>!!j.is_chat_output,makeChatMessageFromUser=(j,_e)=>{const et=typeof j=="string"?j:Array.isArray(j)?listToMarkup(j):JSON.stringify(j)??"",tt=Array.isArray(j)?JSON.stringify(j):void 0;return{id:uuid_1.v4(),from:ChatMessageFrom.User,type:ChatMessageType$1.Text,content:et,contentForCopy:tt,timestamp:new Date().toISOString(),extraData:_e}},makeChatMessageFromChatBot=(j,_e,et,tt)=>{const rt=typeof j=="string"?j:Array.isArray(j)?listToMarkup(j):JSON.stringify(j)??"",nt=Array.isArray(j)?JSON.stringify(j):void 0;return{id:uuid_1.v4(),from:ChatMessageFrom.Chatbot,type:ChatMessageType$1.Text,content:rt,contentForCopy:nt,timestamp:new Date().toISOString(),duration:tt==null?void 0:tt.duration,tokens:tt==null?void 0:tt.total_tokens,error:et,extraData:_e}},parseChatMessages=(j,_e,et)=>{const tt=[];for(const rt of et){const nt=rt.inputs[j],ot=rt.outputs[_e];if(typeof nt=="string"&&typeof ot=="string"){const it={flowInputs:rt.inputs,flowOutputs:rt.outputs};tt.push(makeChatMessageFromUser(nt,it)),tt.push(makeChatMessageFromChatBot(ot,it))}else if(Array.isArray(nt)&&Array.isArray(ot)){const it={flowInputs:rt.inputs,flowOutputs:rt.outputs};tt.push(makeChatMessageFromUser(nt,it)),tt.push(makeChatMessageFromChatBot(ot,it))}}return tt};ValueType.AzureContentSafetyConnection,ValueType.AzureContentModeratorConnection,ValueType.OpenAIConnection,ValueType.AzureOpenAIConnection,ValueType.BingConnection,ValueType.CustomConnection,ValueType.SerpConnection,ValueType.CognitiveSearchConnection,ValueType.SubstrateLLMConnection,ValueType.QdrantConnection,ValueType.WeaviateConnection,ValueType.FormRecognizerConnection;const convertConnectionTypeToValueType=j=>{switch(j){case ConnectionType.AzureContentSafety:return ValueType.AzureContentSafetyConnection;case ConnectionType.AzureContentModerator:return ValueType.AzureContentModeratorConnection;case ConnectionType.Serp:return ValueType.SerpConnection;case ConnectionType.OpenAI:return ValueType.OpenAIConnection;case ConnectionType.Bing:return ValueType.BingConnection;case ConnectionType.AzureOpenAI:return ValueType.AzureOpenAIConnection;case ConnectionType.CognitiveSearch:return ValueType.CognitiveSearchConnection;case ConnectionType.SubstrateLLM:return ValueType.SubstrateLLMConnection;case ConnectionType.Custom:return ValueType.CustomConnection;default:return ValueType.CustomConnection}},getValueTypeByConnectionType=(j,_e)=>{var et;return!_e||_e.length===0?convertConnectionTypeToValueType(j):(et=_e.find(tt=>tt.connectionType===j))==null?void 0:et.flowValueType},getConnectionTypeByName=(j,_e,et)=>{var rt;const tt=(rt=j==null?void 0:j.find(nt=>nt.connectionName===et))==null?void 0:rt.connectionType;if(tt)return getValueTypeByConnectionType(tt,_e)};ValueType.AzureContentSafetyConnection+"",ValueType.BingConnection+"",ValueType.OpenAIConnection+"",ValueType.CustomConnection+"",ValueType.AzureOpenAIConnection+"",ValueType.AzureContentModeratorConnection+"",ValueType.SerpConnection+"",ValueType.CognitiveSearchConnection+"",ValueType.SubstrateLLMConnection+"",ValueType.PineconeConnection+"",ValueType.QdrantConnection+"",ValueType.WeaviateConnection+"",ValueType.FormRecognizerConnection+"",ValueType.ServerlessConnection+"";const safelyParseJson=(j,_e)=>{if(!j)return _e??"";try{return JSON.parse(j)}catch{return _e??""}},intNumberRegExp$1=/^[+-]?\d+$/,doubleNumberRegExp$1=/^[+-]?\d+(\.\d+)?$/,safelyParseInt=j=>{try{const _e=parseInt(j,10);return isNaN(_e)?j:_e}catch{return j}},safelyParseFloat=j=>{try{const _e=parseFloat(j);return isNaN(_e)?j:_e}catch{return j}},boolValues=["true","false","True","False",!0,!1],safelyParseBool=j=>{try{return boolValues.includes(j)?convertToBool(j):j}catch{return j}},convertValByType=(j,_e)=>{var tt;let et=j;if(!(((tt=j==null?void 0:j.trim)==null?void 0:tt.call(j))===""&&_e!==ValueType.string)){switch(_e){case ValueType.int:et=typeof et=="string"&&intNumberRegExp$1.test(et.trim())?safelyParseInt(et):et;break;case ValueType.double:et=typeof et=="string"&&doubleNumberRegExp$1.test(et.trim())?safelyParseFloat(et):et;break;case ValueType.bool:et=safelyParseBool(et);break;case ValueType.string:et=typeof et=="object"?JSON.stringify(et):String(et??"");break;case ValueType.list:case ValueType.object:et=typeof et=="string"?safelyParseJson(et,et):et;break}return et}},inferTypeByVal=j=>{if(typeof j=="boolean")return ValueType.bool;if(typeof j=="number")return Number.isInteger(j)?ValueType.int:ValueType.double;if(Array.isArray(j))return ValueType.list;if(typeof j=="object"&&j!==null)return ValueType.object;if(typeof j=="string")return ValueType.string},filterNodeInputsKeys=(j,_e,et,tt,rt=!1)=>{const nt=sortToolInputs(j),ot={..._e};return Object.keys(nt??{}).filter(lt=>{var ct;const ut=nt==null?void 0:nt[lt];if(!rt&&(ut==null?void 0:ut.input_type)===InputType.uionly_hidden)return!1;if(ut!=null&&ut.enabled_by&&(ut!=null&&ut.enabled_by_value)){const dt=nt==null?void 0:nt[ut.enabled_by],ft=(ot==null?void 0:ot[ut.enabled_by])??(dt==null?void 0:dt.default),pt=convertValByType(ft,(ct=dt==null?void 0:dt.type)==null?void 0:ct[0]),gt=ut==null?void 0:ut.enabled_by_value.includes(pt);return gt||(ot[lt]=void 0),gt}if(ut!=null&&ut.enabled_by&&(ut!=null&&ut.enabled_by_type)){const dt=ot==null?void 0:ot[ut.enabled_by],ft=getConnectionTypeByName(et??[],tt??[],dt??""),pt=ft?ut==null?void 0:ut.enabled_by_type.includes(ft):!1;return pt||(ot[lt]=void 0),pt}return!0})},sortToolInputs=j=>{let _e=[];if(Object.values(j??{}).some(rt=>{var nt;return((nt=rt.ui_hints)==null?void 0:nt.index)!==void 0}))_e=Object.keys(j??{}).sort((rt,nt)=>{var st,lt,ut,ct;const ot=((lt=(st=j==null?void 0:j[rt])==null?void 0:st.ui_hints)==null?void 0:lt.index)??0,it=((ct=(ut=j==null?void 0:j[nt])==null?void 0:ut.ui_hints)==null?void 0:ct.index)??0;return ot-it});else{const rt=[],nt={};Object.keys(j??{}).forEach(it=>{const st=j==null?void 0:j[it];st!=null&&st.enabled_by?(nt[st.enabled_by]||(nt[st.enabled_by]=[]),nt[st.enabled_by].push(it)):rt.push(it)});const ot=it=>{for(const st of it)_e.push(st),nt[st]&&ot(nt[st])};ot(rt)}const tt={};for(const rt of _e)tt[rt]=j==null?void 0:j[rt];return tt};var papaparse_min={exports:{}};/* @license +Papa Parse +v5.4.1 +https://github.com/mholt/PapaParse +License: MIT +*/(function(j,_e){(function(et,tt){j.exports=tt()})(commonjsGlobal,function et(){var tt=typeof self<"u"?self:typeof window<"u"?window:tt!==void 0?tt:{},rt=!tt.document&&!!tt.postMessage,nt=tt.IS_PAPA_WORKER||!1,ot={},it=0,st={parse:function(At,wt){var Ct=(wt=wt||{}).dynamicTyping||!1;if($t(Ct)&&(wt.dynamicTypingFunction=Ct,Ct={}),wt.dynamicTyping=Ct,wt.transform=!!$t(wt.transform)&&wt.transform,wt.worker&&st.WORKERS_SUPPORTED){var It=function(){if(!st.WORKERS_SUPPORTED)return!1;var Nt=(Mt=tt.URL||tt.webkitURL||null,Rt=et.toString(),st.BLOB_URL||(st.BLOB_URL=Mt.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",Rt,")();"],{type:"text/javascript"})))),Pt=new tt.Worker(Nt),Mt,Rt;return Pt.onmessage=_t,Pt.id=it++,ot[Pt.id]=Pt}();return It.userStep=wt.step,It.userChunk=wt.chunk,It.userComplete=wt.complete,It.userError=wt.error,wt.step=$t(wt.step),wt.chunk=$t(wt.chunk),wt.complete=$t(wt.complete),wt.error=$t(wt.error),delete wt.worker,void It.postMessage({input:At,config:wt,workerId:It.id})}var Ot=null;return st.NODE_STREAM_INPUT,typeof At=="string"?(At=function(Nt){return Nt.charCodeAt(0)===65279?Nt.slice(1):Nt}(At),Ot=wt.download?new ct(wt):new ft(wt)):At.readable===!0&&$t(At.read)&&$t(At.on)?Ot=new pt(wt):(tt.File&&At instanceof File||At instanceof Object)&&(Ot=new dt(wt)),Ot.stream(At)},unparse:function(At,wt){var Ct=!1,It=!0,Ot=",",Nt=`\r +`,Pt='"',Mt=Pt+Pt,Rt=!1,Lt=null,jt=!1;(function(){if(typeof wt=="object"){if(typeof wt.delimiter!="string"||st.BAD_DELIMITERS.filter(function(Xt){return wt.delimiter.indexOf(Xt)!==-1}).length||(Ot=wt.delimiter),(typeof wt.quotes=="boolean"||typeof wt.quotes=="function"||Array.isArray(wt.quotes))&&(Ct=wt.quotes),typeof wt.skipEmptyLines!="boolean"&&typeof wt.skipEmptyLines!="string"||(Rt=wt.skipEmptyLines),typeof wt.newline=="string"&&(Nt=wt.newline),typeof wt.quoteChar=="string"&&(Pt=wt.quoteChar),typeof wt.header=="boolean"&&(It=wt.header),Array.isArray(wt.columns)){if(wt.columns.length===0)throw new Error("Option columns is empty");Lt=wt.columns}wt.escapeChar!==void 0&&(Mt=wt.escapeChar+Pt),(typeof wt.escapeFormulae=="boolean"||wt.escapeFormulae instanceof RegExp)&&(jt=wt.escapeFormulae instanceof RegExp?wt.escapeFormulae:/^[=+\-@\t\r].*$/)}})();var Gt=new RegExp(vt(Pt),"g");if(typeof At=="string"&&(At=JSON.parse(At)),Array.isArray(At)){if(!At.length||Array.isArray(At[0]))return Vt(null,At,Rt);if(typeof At[0]=="object")return Vt(Lt||Object.keys(At[0]),At,Rt)}else if(typeof At=="object")return typeof At.data=="string"&&(At.data=JSON.parse(At.data)),Array.isArray(At.data)&&(At.fields||(At.fields=At.meta&&At.meta.fields||Lt),At.fields||(At.fields=Array.isArray(At.data[0])?At.fields:typeof At.data[0]=="object"?Object.keys(At.data[0]):[]),Array.isArray(At.data[0])||typeof At.data[0]=="object"||(At.data=[At.data])),Vt(At.fields||[],At.data||[],Rt);throw new Error("Unable to serialize unrecognized input");function Vt(Xt,rr,cr){var vr="";typeof Xt=="string"&&(Xt=JSON.parse(Xt)),typeof rr=="string"&&(rr=JSON.parse(rr));var Tr=Array.isArray(Xt)&&0=this._config.preview;if(nt)tt.postMessage({results:Nt,workerId:st.WORKER_ID,finished:Mt});else if($t(this._config.chunk)&&!Ct){if(this._config.chunk(Nt,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);Nt=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(Nt.data),this._completeResults.errors=this._completeResults.errors.concat(Nt.errors),this._completeResults.meta=Nt.meta),this._completed||!Mt||!$t(this._config.complete)||Nt&&Nt.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),Mt||Nt&&Nt.meta.paused||this._nextChunk(),Nt}this._halted=!0},this._sendError=function(wt){$t(this._config.error)?this._config.error(wt):nt&&this._config.error&&tt.postMessage({workerId:st.WORKER_ID,error:wt,finished:!1})}}function ct(At){var wt;(At=At||{}).chunkSize||(At.chunkSize=st.RemoteChunkSize),ut.call(this,At),this._nextChunk=rt?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(Ct){this._input=Ct,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(wt=new XMLHttpRequest,this._config.withCredentials&&(wt.withCredentials=this._config.withCredentials),rt||(wt.onload=St(this._chunkLoaded,this),wt.onerror=St(this._chunkError,this)),wt.open(this._config.downloadRequestBody?"POST":"GET",this._input,!rt),this._config.downloadRequestHeaders){var Ct=this._config.downloadRequestHeaders;for(var It in Ct)wt.setRequestHeader(It,Ct[It])}if(this._config.chunkSize){var Ot=this._start+this._config.chunkSize-1;wt.setRequestHeader("Range","bytes="+this._start+"-"+Ot)}try{wt.send(this._config.downloadRequestBody)}catch(Nt){this._chunkError(Nt.message)}rt&&wt.status===0&&this._chunkError()}},this._chunkLoaded=function(){wt.readyState===4&&(wt.status<200||400<=wt.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:wt.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(Ct){var It=Ct.getResponseHeader("Content-Range");return It===null?-1:parseInt(It.substring(It.lastIndexOf("/")+1))}(wt),this.parseChunk(wt.responseText)))},this._chunkError=function(Ct){var It=wt.statusText||Ct;this._sendError(new Error(It))}}function dt(At){var wt,Ct;(At=At||{}).chunkSize||(At.chunkSize=st.LocalChunkSize),ut.call(this,At);var It=typeof FileReader<"u";this.stream=function(Ot){this._input=Ot,Ct=Ot.slice||Ot.webkitSlice||Ot.mozSlice,It?((wt=new FileReader).onload=St(this._chunkLoaded,this),wt.onerror=St(this._chunkError,this)):wt=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(Ot.target.result)},this._chunkError=function(){this._sendError(wt.error)}}function ft(At){var wt;ut.call(this,At=At||{}),this.stream=function(Ct){return wt=Ct,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var Ct,It=this._config.chunkSize;return It?(Ct=wt.substring(0,It),wt=wt.substring(It)):(Ct=wt,wt=""),this._finished=!wt,this.parseChunk(Ct)}}}function pt(At){ut.call(this,At=At||{});var wt=[],Ct=!0,It=!1;this.pause=function(){ut.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){ut.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(Ot){this._input=Ot,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){It&&wt.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),wt.length?this.parseChunk(wt.shift()):Ct=!0},this._streamData=St(function(Ot){try{wt.push(typeof Ot=="string"?Ot:Ot.toString(this._config.encoding)),Ct&&(Ct=!1,this._checkIsFinished(),this.parseChunk(wt.shift()))}catch(Nt){this._streamError(Nt)}},this),this._streamError=St(function(Ot){this._streamCleanUp(),this._sendError(Ot)},this),this._streamEnd=St(function(){this._streamCleanUp(),It=!0,this._streamData("")},this),this._streamCleanUp=St(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function gt(At){var wt,Ct,It,Ot=Math.pow(2,53),Nt=-Ot,Pt=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,Mt=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,Rt=this,Lt=0,jt=0,Gt=!1,Vt=!1,Yt=[],Xt={data:[],errors:[],meta:{}};if($t(At.step)){var rr=At.step;At.step=function(qt){if(Xt=qt,Tr())vr();else{if(vr(),Xt.data.length===0)return;Lt+=qt.data.length,At.preview&&Lt>At.preview?Ct.abort():(Xt.data=Xt.data[0],rr(Xt,Rt))}}}function cr(qt){return At.skipEmptyLines==="greedy"?qt.join("").trim()==="":qt.length===1&&qt[0].length===0}function vr(){return Xt&&It&&(Er("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+st.DefaultDelimiter+"'"),It=!1),At.skipEmptyLines&&(Xt.data=Xt.data.filter(function(qt){return!cr(qt)})),Tr()&&function(){if(!Xt)return;function qt(hr,nr){$t(At.transformHeader)&&(hr=At.transformHeader(hr,nr)),Yt.push(hr)}if(Array.isArray(Xt.data[0])){for(var ir=0;Tr()&&ir=Yt.length?"__parsed_extra":Yt[mr]),At.transform&&(wr=At.transform(wr,Or)),wr=gr(Or,wr),Or==="__parsed_extra"?(Ar[Or]=Ar[Or]||[],Ar[Or].push(wr)):Ar[Or]=wr}return At.header&&(mr>Yt.length?Er("FieldMismatch","TooManyFields","Too many fields: expected "+Yt.length+" fields but parsed "+mr,jt+nr):mr=Wr.length/2?`\r +`:"\r"}(qt,nr)),It=!1,At.delimiter)$t(At.delimiter)&&(At.delimiter=At.delimiter(qt),Xt.meta.delimiter=At.delimiter);else{var mr=function(Or,wr,Nr,Wr,Vr){var Jr,Yr,jr,Hr;Vr=Vr||[","," ","|",";",st.RECORD_SEP,st.UNIT_SEP];for(var hn=0;hn=Pt)return Cr(!0)}else for(pr=Lt,Lt++;;){if((pr=Gt.indexOf(wt,pr+1))===-1)return Yt||Er.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:gr.length,index:Lt}),Sr();if(pr===Xt-1)return Sr(Gt.substring(Lt,pr).replace(hn,wt));if(wt!==Rt||Gt[pr+1]!==Rt){if(wt===Rt||pr===0||Gt[pr-1]!==Rt){jr!==-1&&jr=Pt)return Cr(!0);break}Er.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:gr.length,index:Lt}),pr++}}else pr++}return Sr();function ur(Xr){gr.push(Xr),ir=Lt}function br(Xr){var qr=0;if(Xr!==-1){var Qr=Gt.substring(pr+1,Xr);Qr&&Qr.trim()===""&&(qr=Qr.length)}return qr}function Sr(Xr){return Yt||(Xr===void 0&&(Xr=Gt.substring(Lt)),qt.push(Xr),Lt=Xt,ur(qt),Tr&&Lr()),Cr()}function yr(Xr){Lt=Xr,ur(qt),qt=[],Hr=Gt.indexOf(It,Lt)}function Cr(Xr){return{data:gr,errors:Er,meta:{delimiter:Ct,linebreak:It,aborted:jt,truncated:!!Xr,cursor:ir+(Vt||0)}}}function Lr(){Nt(Cr()),gr=[],Er=[]}},this.abort=function(){jt=!0},this.getCharIndex=function(){return Lt}}function _t(At){var wt=At.data,Ct=ot[wt.workerId],It=!1;if(wt.error)Ct.userError(wt.error,wt.file);else if(wt.results&&wt.results.data){var Ot={abort:function(){It=!0,xt(wt.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:yt,resume:yt};if($t(Ct.userStep)){for(var Nt=0;Nt{const tt={};return Object.keys(j).forEach(rt=>{const nt=j[rt];rt===_e?tt[et]=nt:tt[rt]=nt}),tt},getDefaultNodeVariant=j=>{const{defaultVariantId:_e=BASELINE_VARIANT_ID,variants:et={}}=j,tt=et[_e];return tt==null?void 0:tt.node},getDefaultNodeList=(j,_e)=>{const et=[];return j.forEach(tt=>{const rt=_e.get(tt);if(!rt)return;const nt=getDefaultNodeVariant(rt);nt&&et.push(nt)}),et},getFlowSnapshotNodeList=(j,_e,et)=>{const tt=[];return j.forEach(rt=>{if(et.includes(rt)){tt.push({name:rt,use_variants:!0});return}const nt=_e[rt];if(!nt)return;const ot={inputs:{},...getDefaultNodeVariant(nt)};ot&&tt.push(ot)}),tt};ToolType.llm;ToolType.prompt;ValueType.string,ToolType.python;ValueType.string,ToolType.typescript;const getTokensUsageByRow=j=>{var _e,et,tt,rt,nt,ot;return j.children&&j.children.length>0?j.children.reduce((it,st)=>{const lt=getTokensUsageByRow(st);return{totalTokens:it.totalTokens+lt.totalTokens,promptTokens:it.promptTokens+lt.promptTokens,completionTokens:it.completionTokens+lt.completionTokens}},{totalTokens:0,promptTokens:0,completionTokens:0}):{totalTokens:((et=(_e=j.output)==null?void 0:_e.usage)==null?void 0:et.total_tokens)??0,promptTokens:((rt=(tt=j.output)==null?void 0:tt.usage)==null?void 0:rt.prompt_tokens)??0,completionTokens:((ot=(nt=j.output)==null?void 0:nt.usage)==null?void 0:ot.completion_tokens)??0}},numberToDigitsString=j=>j.toString().replace(/\B(?=(\d{3})+(?!\d))/g,","),timePDTFormatter=j=>{const _e=new Date(j),et=getUTCTimezoneOffset();return`${_e.getFullYear()}-${_e.getMonth()+1}-${_e.getDate()} ${_e.getHours()}:${_e.getMinutes()}:${_e.getSeconds()}:${_e.getMilliseconds()} (${et})`},getUTCTimezoneOffset=()=>{const j=new Date().getTimezoneOffset(),_e=Math.abs(j);return`UTC${(j<0?"+":"-")+`00${Math.floor(_e/60)}`.slice(-2)}:${`00${_e%60}`.slice(-2)}`},hasOwn$l=(j,_e)=>Object.prototype.hasOwnProperty.call(j,_e),resolveTool=(j,_e,et,tt)=>{var rt,nt,ot;if(((rt=j==null?void 0:j.source)==null?void 0:rt.type)==="code")return _e;if(((nt=j==null?void 0:j.source)==null?void 0:nt.type)==="package_with_prompt"){const it=(ot=j==null?void 0:j.source)==null?void 0:ot.path,st=tt(it??"");return et?{...et,inputs:{...st==null?void 0:st.inputs,...addPositionField(et==null?void 0:et.inputs,"parameter")},code:st==null?void 0:st.code}:void 0}return et},addPositionField=(j,_e)=>{if(!j)return j;const et={...j};return Object.keys(et).forEach(tt=>{et[tt]={...et[tt],position:_e}}),et},keyWords=["and","as","assert","break","class","continue","def","del","elif","else","except","False","finally","for","from","global","if","import","in","is","lambda","None","nonlocal","not","or","pass","raise","return","True","try","while","with","yield"],keyFunction=["abs","all","any","ascii","bin","bool","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","str","sum","super","tuple","type","vars","zip"],flowWords=["input","inputs","output","outputs","flow","flows"],checkNodeNameValid=j=>keyWords.some(_e=>_e===j)||keyFunction.some(_e=>_e===j)||flowWords.some(_e=>_e===j)?!1:/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(j),getNodesThatMoreThanOneVariant=(j={})=>{const _e=[];return Object.keys(j).forEach(et=>{const tt=j[et],{variants:rt={},defaultVariantId:nt,default_variant_id:ot}=tt,it=Object.keys(rt).length;it>1&&_e.push({nodeName:et,variantsCount:it,defaultVariantId:nt??ot??BASELINE_VARIANT_ID,variants:rt})}),_e},getVariantNodes=(j={})=>{const _e={};return Object.keys(j).forEach(et=>{const tt=j[et],{variants:rt={}}=tt;if(Object.keys(rt).length>1){const ot=lodashExports.cloneDeep(tt);Object.entries((ot==null?void 0:ot.variants)??{}).forEach(([st,lt])=>{lt.node&&delete lt.node.name});const it=ot.defaultVariantId;delete ot.defaultVariantId,_e[et]={default_variant_id:it,...ot}}}),Object.keys(_e).length>0?_e:void 0},revValueRegex=/^\$\{(\S+)\}$/,getRefValueFromRaw=j=>{var _e,et;return(et=(_e=`${j??""}`)==null?void 0:_e.match(revValueRegex))==null?void 0:et[1]},generateRandomStrings=j=>{const _e="abcdefghijklmnopqrstuvwxyz0123456789";let et="";for(let tt=0;ttgenerateRandomStrings(8),getRandomOutputDefinitionId=getRandomInputDefinitionId,intNumberRegExp=/^[+-]?\d+$/,doubleNumberRegExp=/^[+-]?\d+(\.\d+)?$/,isBool=j=>j.toLowerCase()==="true"||j.toLowerCase()==="false",isNumber$4=j=>doubleNumberRegExp.test(j.trim())?j===j.trim()&&j.length>0&&!Number.isNaN(Number(j)):!1,isInt=j=>intNumberRegExp.test(j.trim())?isNumber$4(j)&&Number.isInteger(Number(j)):!1,isList$1=j=>{try{const _e=JSON.parse(j);return Array.isArray(_e)}catch{return!1}},isObject$y=j=>{try{const _e=JSON.parse(j);return Object.prototype.toString.call(_e)==="[object Object]"}catch{return!1}},isTypeValid=(j,_e)=>{const et=typeof j,tt=et==="string";switch(_e){case ValueType.int:return tt?isInt(j):Number.isInteger(j);case ValueType.double:return tt?isNumber$4(j):et==="number";case ValueType.list:return tt?isList$1(j):Array.isArray(j);case ValueType.object:return tt?isObject$y(j):et==="object";case ValueType.bool:return tt?isBool(j):et==="boolean";case ValueType.function_str:return!0;default:return!0}},getCycle=(j,_e,et,tt)=>{var ot,it;const rt=[],nt=new Set(j.keys());for(j.forEach((st,lt)=>{st===0&&rt.push(lt)});rt.length>0;){const st=rt.shift();st&&(nt.delete(st),(ot=_e.get(st))==null||ot.forEach(lt=>{const ut=(j.get(lt)??0)-1;j.set(lt,ut),ut===0&&rt.push(lt)}))}for(et.forEach((st,lt)=>{st===0&&rt.push(lt)});rt.length>0;){const st=rt.shift();st&&(nt.delete(st),(it=tt.get(st))==null||it.forEach(lt=>{const ut=(et.get(lt)??0)-1;et.set(lt,ut),ut===0&&rt.push(lt)}))}return nt};function commonjsRequire$1(j){throw new Error('Could not dynamically require "'+j+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}function listCacheClear$1(){this.__data__=[],this.size=0}var _listCacheClear=listCacheClear$1;function eq$4(j,_e){return j===_e||j!==j&&_e!==_e}var eq_1=eq$4,eq$3=eq_1;function assocIndexOf$4(j,_e){for(var et=j.length;et--;)if(eq$3(j[et][0],_e))return et;return-1}var _assocIndexOf=assocIndexOf$4,assocIndexOf$3=_assocIndexOf,arrayProto=Array.prototype,splice$4=arrayProto.splice;function listCacheDelete$1(j){var _e=this.__data__,et=assocIndexOf$3(_e,j);if(et<0)return!1;var tt=_e.length-1;return et==tt?_e.pop():splice$4.call(_e,et,1),--this.size,!0}var _listCacheDelete=listCacheDelete$1,assocIndexOf$2=_assocIndexOf;function listCacheGet$1(j){var _e=this.__data__,et=assocIndexOf$2(_e,j);return et<0?void 0:_e[et][1]}var _listCacheGet=listCacheGet$1,assocIndexOf$1=_assocIndexOf;function listCacheHas$1(j){return assocIndexOf$1(this.__data__,j)>-1}var _listCacheHas=listCacheHas$1,assocIndexOf=_assocIndexOf;function listCacheSet$1(j,_e){var et=this.__data__,tt=assocIndexOf(et,j);return tt<0?(++this.size,et.push([j,_e])):et[tt][1]=_e,this}var _listCacheSet=listCacheSet$1,listCacheClear=_listCacheClear,listCacheDelete=_listCacheDelete,listCacheGet=_listCacheGet,listCacheHas=_listCacheHas,listCacheSet=_listCacheSet;function ListCache$4(j){var _e=-1,et=j==null?0:j.length;for(this.clear();++_e-1&&j%1==0&&j<_e}var _isIndex=isIndex$3,MAX_SAFE_INTEGER$2=9007199254740991;function isLength$3(j){return typeof j=="number"&&j>-1&&j%1==0&&j<=MAX_SAFE_INTEGER$2}var isLength_1=isLength$3,baseGetTag$6=_baseGetTag,isLength$2=isLength_1,isObjectLike$8=isObjectLike_1,argsTag$2="[object Arguments]",arrayTag$2="[object Array]",boolTag$4="[object Boolean]",dateTag$3="[object Date]",errorTag$2="[object Error]",funcTag$1="[object Function]",mapTag$5="[object Map]",numberTag$4="[object Number]",objectTag$4="[object Object]",regexpTag$3="[object RegExp]",setTag$5="[object Set]",stringTag$4="[object String]",weakMapTag$2="[object WeakMap]",arrayBufferTag$3="[object ArrayBuffer]",dataViewTag$4="[object DataView]",float32Tag$2="[object Float32Array]",float64Tag$2="[object Float64Array]",int8Tag$2="[object Int8Array]",int16Tag$2="[object Int16Array]",int32Tag$2="[object Int32Array]",uint8Tag$2="[object Uint8Array]",uint8ClampedTag$2="[object Uint8ClampedArray]",uint16Tag$2="[object Uint16Array]",uint32Tag$2="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag$2]=typedArrayTags[float64Tag$2]=typedArrayTags[int8Tag$2]=typedArrayTags[int16Tag$2]=typedArrayTags[int32Tag$2]=typedArrayTags[uint8Tag$2]=typedArrayTags[uint8ClampedTag$2]=typedArrayTags[uint16Tag$2]=typedArrayTags[uint32Tag$2]=!0;typedArrayTags[argsTag$2]=typedArrayTags[arrayTag$2]=typedArrayTags[arrayBufferTag$3]=typedArrayTags[boolTag$4]=typedArrayTags[dataViewTag$4]=typedArrayTags[dateTag$3]=typedArrayTags[errorTag$2]=typedArrayTags[funcTag$1]=typedArrayTags[mapTag$5]=typedArrayTags[numberTag$4]=typedArrayTags[objectTag$4]=typedArrayTags[regexpTag$3]=typedArrayTags[setTag$5]=typedArrayTags[stringTag$4]=typedArrayTags[weakMapTag$2]=!1;function baseIsTypedArray$1(j){return isObjectLike$8(j)&&isLength$2(j.length)&&!!typedArrayTags[baseGetTag$6(j)]}var _baseIsTypedArray=baseIsTypedArray$1;function baseUnary$4(j){return function(_e){return j(_e)}}var _baseUnary=baseUnary$4,_nodeUtil={exports:{}};_nodeUtil.exports;(function(j,_e){var et=_freeGlobal,tt=_e&&!_e.nodeType&&_e,rt=tt&&!0&&j&&!j.nodeType&&j,nt=rt&&rt.exports===tt,ot=nt&&et.process,it=function(){try{var st=rt&&rt.require&&rt.require("util").types;return st||ot&&ot.binding&&ot.binding("util")}catch{}}();j.exports=it})(_nodeUtil,_nodeUtil.exports);var _nodeUtilExports=_nodeUtil.exports,baseIsTypedArray=_baseIsTypedArray,baseUnary$3=_baseUnary,nodeUtil$2=_nodeUtilExports,nodeIsTypedArray=nodeUtil$2&&nodeUtil$2.isTypedArray,isTypedArray$3=nodeIsTypedArray?baseUnary$3(nodeIsTypedArray):baseIsTypedArray,isTypedArray_1=isTypedArray$3,baseTimes=_baseTimes,isArguments$2=isArguments_1,isArray$t=isArray_1,isBuffer$2=isBufferExports,isIndex$2=_isIndex,isTypedArray$2=isTypedArray_1,objectProto$8=Object.prototype,hasOwnProperty$b=objectProto$8.hasOwnProperty;function arrayLikeKeys$2(j,_e){var et=isArray$t(j),tt=!et&&isArguments$2(j),rt=!et&&!tt&&isBuffer$2(j),nt=!et&&!tt&&!rt&&isTypedArray$2(j),ot=et||tt||rt||nt,it=ot?baseTimes(j.length,String):[],st=it.length;for(var lt in j)(_e||hasOwnProperty$b.call(j,lt))&&!(ot&&(lt=="length"||rt&&(lt=="offset"||lt=="parent")||nt&&(lt=="buffer"||lt=="byteLength"||lt=="byteOffset")||isIndex$2(lt,st)))&&it.push(lt);return it}var _arrayLikeKeys=arrayLikeKeys$2,objectProto$7=Object.prototype;function isPrototype$3(j){var _e=j&&j.constructor,et=typeof _e=="function"&&_e.prototype||objectProto$7;return j===et}var _isPrototype=isPrototype$3;function overArg$2(j,_e){return function(et){return j(_e(et))}}var _overArg=overArg$2,overArg$1=_overArg,nativeKeys$2=overArg$1(Object.keys,Object),_nativeKeys=nativeKeys$2,isPrototype$2=_isPrototype,nativeKeys$1=_nativeKeys,objectProto$6=Object.prototype,hasOwnProperty$a=objectProto$6.hasOwnProperty;function baseKeys$1(j){if(!isPrototype$2(j))return nativeKeys$1(j);var _e=[];for(var et in Object(j))hasOwnProperty$a.call(j,et)&&et!="constructor"&&_e.push(et);return _e}var _baseKeys=baseKeys$1,isFunction$3=isFunction_1,isLength$1=isLength_1;function isArrayLike$8(j){return j!=null&&isLength$1(j.length)&&!isFunction$3(j)}var isArrayLike_1=isArrayLike$8,arrayLikeKeys$1=_arrayLikeKeys,baseKeys=_baseKeys,isArrayLike$7=isArrayLike_1;function keys$c(j){return isArrayLike$7(j)?arrayLikeKeys$1(j):baseKeys(j)}var keys_1=keys$c,copyObject$3=_copyObject,keys$b=keys_1;function baseAssign$1(j,_e){return j&©Object$3(_e,keys$b(_e),j)}var _baseAssign=baseAssign$1;function nativeKeysIn$1(j){var _e=[];if(j!=null)for(var et in Object(j))_e.push(et);return _e}var _nativeKeysIn=nativeKeysIn$1,isObject$t=isObject_1,isPrototype$1=_isPrototype,nativeKeysIn=_nativeKeysIn,objectProto$5=Object.prototype,hasOwnProperty$9=objectProto$5.hasOwnProperty;function baseKeysIn$1(j){if(!isObject$t(j))return nativeKeysIn(j);var _e=isPrototype$1(j),et=[];for(var tt in j)tt=="constructor"&&(_e||!hasOwnProperty$9.call(j,tt))||et.push(tt);return et}var _baseKeysIn=baseKeysIn$1,arrayLikeKeys=_arrayLikeKeys,baseKeysIn=_baseKeysIn,isArrayLike$6=isArrayLike_1;function keysIn$3(j){return isArrayLike$6(j)?arrayLikeKeys(j,!0):baseKeysIn(j)}var keysIn_1=keysIn$3,copyObject$2=_copyObject,keysIn$2=keysIn_1;function baseAssignIn$1(j,_e){return j&©Object$2(_e,keysIn$2(_e),j)}var _baseAssignIn=baseAssignIn$1,_cloneBuffer={exports:{}};_cloneBuffer.exports;(function(j,_e){var et=_root$1,tt=_e&&!_e.nodeType&&_e,rt=tt&&!0&&j&&!j.nodeType&&j,nt=rt&&rt.exports===tt,ot=nt?et.Buffer:void 0,it=ot?ot.allocUnsafe:void 0;function st(lt,ut){if(ut)return lt.slice();var ct=lt.length,dt=it?it(ct):new lt.constructor(ct);return lt.copy(dt),dt}j.exports=st})(_cloneBuffer,_cloneBuffer.exports);var _cloneBufferExports=_cloneBuffer.exports;function copyArray$1(j,_e){var et=-1,tt=j.length;for(_e||(_e=Array(tt));++etit))return!1;var lt=nt.get(j),ut=nt.get(_e);if(lt&&ut)return lt==_e&&ut==j;var ct=-1,dt=!0,ft=et&COMPARE_UNORDERED_FLAG$3?new SetCache$1:void 0;for(nt.set(j,_e),nt.set(_e,j);++ct0&&et(it)?_e>1?baseFlatten$3(it,_e-1,et,tt,rt):arrayPush$1(rt,it):tt||(rt[rt.length]=it)}return rt}var _baseFlatten=baseFlatten$3;function apply$6(j,_e,et){switch(et.length){case 0:return j.call(_e);case 1:return j.call(_e,et[0]);case 2:return j.call(_e,et[0],et[1]);case 3:return j.call(_e,et[0],et[1],et[2])}return j.apply(_e,et)}var _apply=apply$6,apply$5=_apply,nativeMax$3=Math.max;function overRest$2(j,_e,et){return _e=nativeMax$3(_e===void 0?j.length-1:_e,0),function(){for(var tt=arguments,rt=-1,nt=nativeMax$3(tt.length-_e,0),ot=Array(nt);++rt0){if(++_e>=HOT_COUNT)return arguments[0]}else _e=0;return j.apply(void 0,arguments)}}var _shortOut=shortOut$1,baseSetToString=_baseSetToString,shortOut=_shortOut,setToString$2=shortOut(baseSetToString),_setToString=setToString$2,identity$9=identity_1,overRest$1=_overRest,setToString$1=_setToString;function baseRest$1(j,_e){return setToString$1(overRest$1(j,_e,identity$9),j+"")}var _baseRest=baseRest$1;function baseFindIndex$2(j,_e,et,tt){for(var rt=j.length,nt=et+(tt?1:-1);tt?nt--:++nt-1}var _arrayIncludes=arrayIncludes$3;function arrayIncludesWith$1(j,_e,et){for(var tt=-1,rt=j==null?0:j.length;++tt=LARGE_ARRAY_SIZE){var lt=_e?null:createSet(j);if(lt)return setToArray(lt);ot=!1,rt=cacheHas,st=new SetCache}else st=_e?[]:it;e:for(;++tt1?ft.setNode(pt,ct):ft.setNode(pt)}),this},rt.prototype.setNode=function(ut,ct){return j.has(this._nodes,ut)?(arguments.length>1&&(this._nodes[ut]=ct),this):(this._nodes[ut]=arguments.length>1?ct:this._defaultNodeLabelFn(ut),this._isCompound&&(this._parent[ut]=et,this._children[ut]={},this._children[et][ut]=!0),this._in[ut]={},this._preds[ut]={},this._out[ut]={},this._sucs[ut]={},++this._nodeCount,this)},rt.prototype.node=function(ut){return this._nodes[ut]},rt.prototype.hasNode=function(ut){return j.has(this._nodes,ut)},rt.prototype.removeNode=function(ut){var ct=this;if(j.has(this._nodes,ut)){var dt=function(ft){ct.removeEdge(ct._edgeObjs[ft])};delete this._nodes[ut],this._isCompound&&(this._removeFromParentsChildList(ut),delete this._parent[ut],j.each(this.children(ut),function(ft){ct.setParent(ft)}),delete this._children[ut]),j.each(j.keys(this._in[ut]),dt),delete this._in[ut],delete this._preds[ut],j.each(j.keys(this._out[ut]),dt),delete this._out[ut],delete this._sucs[ut],--this._nodeCount}return this},rt.prototype.setParent=function(ut,ct){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(j.isUndefined(ct))ct=et;else{ct+="";for(var dt=ct;!j.isUndefined(dt);dt=this.parent(dt))if(dt===ut)throw new Error("Setting "+ct+" as parent of "+ut+" would create a cycle");this.setNode(ct)}return this.setNode(ut),this._removeFromParentsChildList(ut),this._parent[ut]=ct,this._children[ct][ut]=!0,this},rt.prototype._removeFromParentsChildList=function(ut){delete this._children[this._parent[ut]][ut]},rt.prototype.parent=function(ut){if(this._isCompound){var ct=this._parent[ut];if(ct!==et)return ct}},rt.prototype.children=function(ut){if(j.isUndefined(ut)&&(ut=et),this._isCompound){var ct=this._children[ut];if(ct)return j.keys(ct)}else{if(ut===et)return this.nodes();if(this.hasNode(ut))return[]}},rt.prototype.predecessors=function(ut){var ct=this._preds[ut];if(ct)return j.keys(ct)},rt.prototype.successors=function(ut){var ct=this._sucs[ut];if(ct)return j.keys(ct)},rt.prototype.neighbors=function(ut){var ct=this.predecessors(ut);if(ct)return j.union(ct,this.successors(ut))},rt.prototype.isLeaf=function(ut){var ct;return this.isDirected()?ct=this.successors(ut):ct=this.neighbors(ut),ct.length===0},rt.prototype.filterNodes=function(ut){var ct=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});ct.setGraph(this.graph());var dt=this;j.each(this._nodes,function(gt,vt){ut(vt)&&ct.setNode(vt,gt)}),j.each(this._edgeObjs,function(gt){ct.hasNode(gt.v)&&ct.hasNode(gt.w)&&ct.setEdge(gt,dt.edge(gt))});var ft={};function pt(gt){var vt=dt.parent(gt);return vt===void 0||ct.hasNode(vt)?(ft[gt]=vt,vt):vt in ft?ft[vt]:pt(vt)}return this._isCompound&&j.each(ct.nodes(),function(gt){ct.setParent(gt,pt(gt))}),ct},rt.prototype.setDefaultEdgeLabel=function(ut){return j.isFunction(ut)||(ut=j.constant(ut)),this._defaultEdgeLabelFn=ut,this},rt.prototype.edgeCount=function(){return this._edgeCount},rt.prototype.edges=function(){return j.values(this._edgeObjs)},rt.prototype.setPath=function(ut,ct){var dt=this,ft=arguments;return j.reduce(ut,function(pt,gt){return ft.length>1?dt.setEdge(pt,gt,ct):dt.setEdge(pt,gt),gt}),this},rt.prototype.setEdge=function(){var ut,ct,dt,ft,pt=!1,gt=arguments[0];typeof gt=="object"&>!==null&&"v"in gt?(ut=gt.v,ct=gt.w,dt=gt.name,arguments.length===2&&(ft=arguments[1],pt=!0)):(ut=gt,ct=arguments[1],dt=arguments[3],arguments.length>2&&(ft=arguments[2],pt=!0)),ut=""+ut,ct=""+ct,j.isUndefined(dt)||(dt=""+dt);var vt=it(this._isDirected,ut,ct,dt);if(j.has(this._edgeLabels,vt))return pt&&(this._edgeLabels[vt]=ft),this;if(!j.isUndefined(dt)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(ut),this.setNode(ct),this._edgeLabels[vt]=pt?ft:this._defaultEdgeLabelFn(ut,ct,dt);var bt=st(this._isDirected,ut,ct,dt);return ut=bt.v,ct=bt.w,Object.freeze(bt),this._edgeObjs[vt]=bt,nt(this._preds[ct],ut),nt(this._sucs[ut],ct),this._in[ct][vt]=bt,this._out[ut][vt]=bt,this._edgeCount++,this},rt.prototype.edge=function(ut,ct,dt){var ft=arguments.length===1?lt(this._isDirected,arguments[0]):it(this._isDirected,ut,ct,dt);return this._edgeLabels[ft]},rt.prototype.hasEdge=function(ut,ct,dt){var ft=arguments.length===1?lt(this._isDirected,arguments[0]):it(this._isDirected,ut,ct,dt);return j.has(this._edgeLabels,ft)},rt.prototype.removeEdge=function(ut,ct,dt){var ft=arguments.length===1?lt(this._isDirected,arguments[0]):it(this._isDirected,ut,ct,dt),pt=this._edgeObjs[ft];return pt&&(ut=pt.v,ct=pt.w,delete this._edgeLabels[ft],delete this._edgeObjs[ft],ot(this._preds[ct],ut),ot(this._sucs[ut],ct),delete this._in[ct][ft],delete this._out[ut][ft],this._edgeCount--),this},rt.prototype.inEdges=function(ut,ct){var dt=this._in[ut];if(dt){var ft=j.values(dt);return ct?j.filter(ft,function(pt){return pt.v===ct}):ft}},rt.prototype.outEdges=function(ut,ct){var dt=this._out[ut];if(dt){var ft=j.values(dt);return ct?j.filter(ft,function(pt){return pt.w===ct}):ft}},rt.prototype.nodeEdges=function(ut,ct){var dt=this.inEdges(ut,ct);if(dt)return dt.concat(this.outEdges(ut,ct))};function nt(ut,ct){ut[ct]?ut[ct]++:ut[ct]=1}function ot(ut,ct){--ut[ct]||delete ut[ct]}function it(ut,ct,dt,ft){var pt=""+ct,gt=""+dt;if(!ut&&pt>gt){var vt=pt;pt=gt,gt=vt}return pt+tt+gt+tt+(j.isUndefined(ft)?_e:ft)}function st(ut,ct,dt,ft){var pt=""+ct,gt=""+dt;if(!ut&&pt>gt){var vt=pt;pt=gt,gt=vt}var bt={v:pt,w:gt};return ft&&(bt.name=ft),bt}function lt(ut,ct){return it(ut,ct.v,ct.w,ct.name)}return graph}var version$3,hasRequiredVersion;function requireVersion(){return hasRequiredVersion||(hasRequiredVersion=1,version$3="2.1.8"),version$3}var lib,hasRequiredLib;function requireLib(){return hasRequiredLib||(hasRequiredLib=1,lib={Graph:requireGraph(),version:requireVersion()}),lib}var json,hasRequiredJson;function requireJson(){if(hasRequiredJson)return json;hasRequiredJson=1;var j=requireLodash(),_e=requireGraph();json={write:et,read:nt};function et(ot){var it={options:{directed:ot.isDirected(),multigraph:ot.isMultigraph(),compound:ot.isCompound()},nodes:tt(ot),edges:rt(ot)};return j.isUndefined(ot.graph())||(it.value=j.clone(ot.graph())),it}function tt(ot){return j.map(ot.nodes(),function(it){var st=ot.node(it),lt=ot.parent(it),ut={v:it};return j.isUndefined(st)||(ut.value=st),j.isUndefined(lt)||(ut.parent=lt),ut})}function rt(ot){return j.map(ot.edges(),function(it){var st=ot.edge(it),lt={v:it.v,w:it.w};return j.isUndefined(it.name)||(lt.name=it.name),j.isUndefined(st)||(lt.value=st),lt})}function nt(ot){var it=new _e(ot.options).setGraph(ot.value);return j.each(ot.nodes,function(st){it.setNode(st.v,st.value),st.parent&&it.setParent(st.v,st.parent)}),j.each(ot.edges,function(st){it.setEdge({v:st.v,w:st.w,name:st.name},st.value)}),it}return json}var components_1,hasRequiredComponents;function requireComponents(){if(hasRequiredComponents)return components_1;hasRequiredComponents=1;var j=requireLodash();components_1=_e;function _e(et){var tt={},rt=[],nt;function ot(it){j.has(tt,it)||(tt[it]=!0,nt.push(it),j.each(et.successors(it),ot),j.each(et.predecessors(it),ot))}return j.each(et.nodes(),function(it){nt=[],ot(it),nt.length&&rt.push(nt)}),rt}return components_1}var priorityQueue,hasRequiredPriorityQueue;function requirePriorityQueue(){if(hasRequiredPriorityQueue)return priorityQueue;hasRequiredPriorityQueue=1;var j=requireLodash();priorityQueue=_e;function _e(){this._arr=[],this._keyIndices={}}return _e.prototype.size=function(){return this._arr.length},_e.prototype.keys=function(){return this._arr.map(function(et){return et.key})},_e.prototype.has=function(et){return j.has(this._keyIndices,et)},_e.prototype.priority=function(et){var tt=this._keyIndices[et];if(tt!==void 0)return this._arr[tt].priority},_e.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},_e.prototype.add=function(et,tt){var rt=this._keyIndices;if(et=String(et),!j.has(rt,et)){var nt=this._arr,ot=nt.length;return rt[et]=ot,nt.push({key:et,priority:tt}),this._decrease(ot),!0}return!1},_e.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var et=this._arr.pop();return delete this._keyIndices[et.key],this._heapify(0),et.key},_e.prototype.decrease=function(et,tt){var rt=this._keyIndices[et];if(tt>this._arr[rt].priority)throw new Error("New priority is greater than current priority. Key: "+et+" Old: "+this._arr[rt].priority+" New: "+tt);this._arr[rt].priority=tt,this._decrease(rt)},_e.prototype._heapify=function(et){var tt=this._arr,rt=2*et,nt=rt+1,ot=et;rt>1,!(tt[nt].priority0&&(ct=ut.removeMin(),dt=lt[ct],dt.distance!==Number.POSITIVE_INFINITY);)st(ct).forEach(ft);return lt}return dijkstra_1}var dijkstraAll_1,hasRequiredDijkstraAll;function requireDijkstraAll(){if(hasRequiredDijkstraAll)return dijkstraAll_1;hasRequiredDijkstraAll=1;var j=requireDijkstra(),_e=requireLodash();dijkstraAll_1=et;function et(tt,rt,nt){return _e.transform(tt.nodes(),function(ot,it){ot[it]=j(tt,it,rt,nt)},{})}return dijkstraAll_1}var tarjan_1,hasRequiredTarjan;function requireTarjan(){if(hasRequiredTarjan)return tarjan_1;hasRequiredTarjan=1;var j=requireLodash();tarjan_1=_e;function _e(et){var tt=0,rt=[],nt={},ot=[];function it(st){var lt=nt[st]={onStack:!0,lowlink:tt,index:tt++};if(rt.push(st),et.successors(st).forEach(function(dt){j.has(nt,dt)?nt[dt].onStack&&(lt.lowlink=Math.min(lt.lowlink,nt[dt].index)):(it(dt),lt.lowlink=Math.min(lt.lowlink,nt[dt].lowlink))}),lt.lowlink===lt.index){var ut=[],ct;do ct=rt.pop(),nt[ct].onStack=!1,ut.push(ct);while(st!==ct);ot.push(ut)}}return et.nodes().forEach(function(st){j.has(nt,st)||it(st)}),ot}return tarjan_1}var findCycles_1,hasRequiredFindCycles;function requireFindCycles(){if(hasRequiredFindCycles)return findCycles_1;hasRequiredFindCycles=1;var j=requireLodash(),_e=requireTarjan();findCycles_1=et;function et(tt){return j.filter(_e(tt),function(rt){return rt.length>1||rt.length===1&&tt.hasEdge(rt[0],rt[0])})}return findCycles_1}var floydWarshall_1,hasRequiredFloydWarshall;function requireFloydWarshall(){if(hasRequiredFloydWarshall)return floydWarshall_1;hasRequiredFloydWarshall=1;var j=requireLodash();floydWarshall_1=et;var _e=j.constant(1);function et(rt,nt,ot){return tt(rt,nt||_e,ot||function(it){return rt.outEdges(it)})}function tt(rt,nt,ot){var it={},st=rt.nodes();return st.forEach(function(lt){it[lt]={},it[lt][lt]={distance:0},st.forEach(function(ut){lt!==ut&&(it[lt][ut]={distance:Number.POSITIVE_INFINITY})}),ot(lt).forEach(function(ut){var ct=ut.v===lt?ut.w:ut.v,dt=nt(ut);it[lt][ct]={distance:dt,predecessor:lt}})}),st.forEach(function(lt){var ut=it[lt];st.forEach(function(ct){var dt=it[ct];st.forEach(function(ft){var pt=dt[lt],gt=ut[ft],vt=dt[ft],bt=pt.distance+gt.distance;bt0;){if(lt=st.removeMin(),j.has(it,lt))ot.setEdge(lt,it[lt]);else{if(ct)throw new Error("Input graph is not connected: "+rt);ct=!0}rt.nodeEdges(lt).forEach(ut)}return ot}return prim_1}var alg,hasRequiredAlg;function requireAlg(){return hasRequiredAlg||(hasRequiredAlg=1,alg={components:requireComponents(),dijkstra:requireDijkstra(),dijkstraAll:requireDijkstraAll(),findCycles:requireFindCycles(),floydWarshall:requireFloydWarshall(),isAcyclic:requireIsAcyclic(),postorder:requirePostorder(),preorder:requirePreorder(),prim:requirePrim(),tarjan:requireTarjan(),topsort:requireTopsort()}),alg}var graphlib$1,hasRequiredGraphlib;function requireGraphlib(){if(hasRequiredGraphlib)return graphlib$1;hasRequiredGraphlib=1;var j=requireLib();return graphlib$1={Graph:j.Graph,json:requireJson(),alg:requireAlg(),version:j.version},graphlib$1}var graphlib;if(typeof commonjsRequire$1=="function")try{graphlib=requireGraphlib()}catch{}graphlib||(graphlib=window.graphlib);var graphlib_1=graphlib,cloneDeep_1,hasRequiredCloneDeep;function requireCloneDeep(){if(hasRequiredCloneDeep)return cloneDeep_1;hasRequiredCloneDeep=1;var j=_baseClone,_e=1,et=4;function tt(rt){return j(rt,_e|et)}return cloneDeep_1=tt,cloneDeep_1}var eq=eq_1,isArrayLike$3=isArrayLike_1,isIndex=_isIndex,isObject$p=isObject_1;function isIterateeCall$4(j,_e,et){if(!isObject$p(et))return!1;var tt=typeof _e;return(tt=="number"?isArrayLike$3(et)&&isIndex(_e,et.length):tt=="string"&&_e in et)?eq(et[_e],j):!1}var _isIterateeCall=isIterateeCall$4,defaults_1,hasRequiredDefaults;function requireDefaults(){if(hasRequiredDefaults)return defaults_1;hasRequiredDefaults=1;var j=_baseRest,_e=eq_1,et=_isIterateeCall,tt=keysIn_1,rt=Object.prototype,nt=rt.hasOwnProperty,ot=j(function(it,st){it=Object(it);var lt=-1,ut=st.length,ct=ut>2?st[2]:void 0;for(ct&&et(st[0],st[1],ct)&&(ut=1);++lt-1?rt[nt?_e[ot]:ot]:void 0}}var _createFind=createFind$1,reWhitespace=/\s/;function trimmedEndIndex$1(j){for(var _e=j.length;_e--&&reWhitespace.test(j.charAt(_e)););return _e}var _trimmedEndIndex=trimmedEndIndex$1,trimmedEndIndex=_trimmedEndIndex,reTrimStart=/^\s+/;function baseTrim$1(j){return j&&j.slice(0,trimmedEndIndex(j)+1).replace(reTrimStart,"")}var _baseTrim=baseTrim$1,baseTrim=_baseTrim,isObject$o=isObject_1,isSymbol$b=isSymbol_1,NAN=NaN,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt;function toNumber$2(j){if(typeof j=="number")return j;if(isSymbol$b(j))return NAN;if(isObject$o(j)){var _e=typeof j.valueOf=="function"?j.valueOf():j;j=isObject$o(_e)?_e+"":_e}if(typeof j!="string")return j===0?j:+j;j=baseTrim(j);var et=reIsBinary.test(j);return et||reIsOctal.test(j)?freeParseInt(j.slice(2),et?2:8):reIsBadHex.test(j)?NAN:+j}var toNumber_1=toNumber$2,toNumber$1=toNumber_1,INFINITY=1/0,MAX_INTEGER=17976931348623157e292;function toFinite$2(j){if(!j)return j===0?j:0;if(j=toNumber$1(j),j===INFINITY||j===-INFINITY){var _e=j<0?-1:1;return _e*MAX_INTEGER}return j===j?j:0}var toFinite_1=toFinite$2,toFinite$1=toFinite_1;function toInteger$1(j){var _e=toFinite$1(j),et=_e%1;return _e===_e?et?_e-et:_e:0}var toInteger_1=toInteger$1,baseFindIndex=_baseFindIndex,baseIteratee$7=_baseIteratee,toInteger=toInteger_1,nativeMax$2=Math.max;function findIndex$1(j,_e,et){var tt=j==null?0:j.length;if(!tt)return-1;var rt=et==null?0:toInteger(et);return rt<0&&(rt=nativeMax$2(tt+rt,0)),baseFindIndex(j,baseIteratee$7(_e),rt)}var findIndex_1=findIndex$1,createFind=_createFind,findIndex=findIndex_1,find=createFind(findIndex),find_1=find;const find$1=getDefaultExportFromCjs(find_1);var baseFlatten$2=_baseFlatten;function flatten$1(j){var _e=j==null?0:j.length;return _e?baseFlatten$2(j,1):[]}var flatten_1=flatten$1,forIn_1,hasRequiredForIn;function requireForIn(){if(hasRequiredForIn)return forIn_1;hasRequiredForIn=1;var j=_baseFor,_e=require_castFunction(),et=keysIn_1;function tt(rt,nt){return rt==null?rt:j(rt,_e(nt),et)}return forIn_1=tt,forIn_1}function last(j){var _e=j==null?0:j.length;return _e?j[_e-1]:void 0}var last_1=last;const last$1=getDefaultExportFromCjs(last_1);var baseAssignValue=_baseAssignValue,baseForOwn=_baseForOwn,baseIteratee$6=_baseIteratee;function mapValues(j,_e){var et={};return _e=baseIteratee$6(_e),baseForOwn(j,function(tt,rt,nt){baseAssignValue(et,rt,_e(tt,rt,nt))}),et}var mapValues_1=mapValues;const mapValues$1=getDefaultExportFromCjs(mapValues_1);var isSymbol$a=isSymbol_1;function baseExtremum$4(j,_e,et){for(var tt=-1,rt=j.length;++tt_e}var _baseGt=baseGt$2,baseExtremum$3=_baseExtremum,baseGt$1=_baseGt,identity$8=identity_1;function max$7(j){return j&&j.length?baseExtremum$3(j,identity$8,baseGt$1):void 0}var max_1=max$7;const max$8=getDefaultExportFromCjs(max_1);var _assignMergeValue,hasRequired_assignMergeValue;function require_assignMergeValue(){if(hasRequired_assignMergeValue)return _assignMergeValue;hasRequired_assignMergeValue=1;var j=_baseAssignValue,_e=eq_1;function et(tt,rt,nt){(nt!==void 0&&!_e(tt[rt],nt)||nt===void 0&&!(rt in tt))&&j(tt,rt,nt)}return _assignMergeValue=et,_assignMergeValue}var baseGetTag$2=_baseGetTag,getPrototype=_getPrototype,isObjectLike$2=isObjectLike_1,objectTag="[object Object]",funcProto=Function.prototype,objectProto=Object.prototype,funcToString=funcProto.toString,hasOwnProperty$5=objectProto.hasOwnProperty,objectCtorString=funcToString.call(Object);function isPlainObject$1(j){if(!isObjectLike$2(j)||baseGetTag$2(j)!=objectTag)return!1;var _e=getPrototype(j);if(_e===null)return!0;var et=hasOwnProperty$5.call(_e,"constructor")&&_e.constructor;return typeof et=="function"&&et instanceof et&&funcToString.call(et)==objectCtorString}var isPlainObject_1=isPlainObject$1;const isPlainObject$2=getDefaultExportFromCjs(isPlainObject_1);var _safeGet,hasRequired_safeGet;function require_safeGet(){if(hasRequired_safeGet)return _safeGet;hasRequired_safeGet=1;function j(_e,et){if(!(et==="constructor"&&typeof _e[et]=="function")&&et!="__proto__")return _e[et]}return _safeGet=j,_safeGet}var toPlainObject_1,hasRequiredToPlainObject;function requireToPlainObject(){if(hasRequiredToPlainObject)return toPlainObject_1;hasRequiredToPlainObject=1;var j=_copyObject,_e=keysIn_1;function et(tt){return j(tt,_e(tt))}return toPlainObject_1=et,toPlainObject_1}var _baseMergeDeep,hasRequired_baseMergeDeep;function require_baseMergeDeep(){if(hasRequired_baseMergeDeep)return _baseMergeDeep;hasRequired_baseMergeDeep=1;var j=require_assignMergeValue(),_e=_cloneBufferExports,et=_cloneTypedArray,tt=_copyArray,rt=_initCloneObject,nt=isArguments_1,ot=isArray_1,it=requireIsArrayLikeObject(),st=isBufferExports,lt=isFunction_1,ut=isObject_1,ct=isPlainObject_1,dt=isTypedArray_1,ft=require_safeGet(),pt=requireToPlainObject();function gt(vt,bt,_t,xt,yt,Et,St){var $t=ft(vt,_t),At=ft(bt,_t),wt=St.get(At);if(wt){j(vt,_t,wt);return}var Ct=Et?Et($t,At,_t+"",vt,bt,St):void 0,It=Ct===void 0;if(It){var Ot=ot(At),Nt=!Ot&&st(At),Pt=!Ot&&!Nt&&dt(At);Ct=At,Ot||Nt||Pt?ot($t)?Ct=$t:it($t)?Ct=tt($t):Nt?(It=!1,Ct=_e(At,!0)):Pt?(It=!1,Ct=et(At,!0)):Ct=[]:ct(At)||nt(At)?(Ct=$t,nt($t)?Ct=pt($t):(!ut($t)||lt($t))&&(Ct=rt(At))):It=!1}It&&(St.set(At,Ct),yt(Ct,At,xt,Et,St),St.delete(At)),j(vt,_t,Ct)}return _baseMergeDeep=gt,_baseMergeDeep}var _baseMerge,hasRequired_baseMerge;function require_baseMerge(){if(hasRequired_baseMerge)return _baseMerge;hasRequired_baseMerge=1;var j=_Stack,_e=require_assignMergeValue(),et=_baseFor,tt=require_baseMergeDeep(),rt=isObject_1,nt=keysIn_1,ot=require_safeGet();function it(st,lt,ut,ct,dt){st!==lt&&et(lt,function(ft,pt){if(dt||(dt=new j),rt(ft))tt(st,lt,pt,ut,it,ct,dt);else{var gt=ct?ct(ot(st,pt),ft,pt+"",st,lt,dt):void 0;gt===void 0&&(gt=ft),_e(st,pt,gt)}},nt)}return _baseMerge=it,_baseMerge}var _createAssigner,hasRequired_createAssigner;function require_createAssigner(){if(hasRequired_createAssigner)return _createAssigner;hasRequired_createAssigner=1;var j=_baseRest,_e=_isIterateeCall;function et(tt){return j(function(rt,nt){var ot=-1,it=nt.length,st=it>1?nt[it-1]:void 0,lt=it>2?nt[2]:void 0;for(st=tt.length>3&&typeof st=="function"?(it--,st):void 0,lt&&_e(nt[0],nt[1],lt)&&(st=it<3?void 0:st,it=1),rt=Object(rt);++ot_e||nt&&ot&&st&&!it&&!lt||tt&&ot&&st||!et&&st||!rt)return 1;if(!tt&&!nt&&!lt&&j<_e||lt&&et&&rt&&!tt&&!nt||it&&et&&rt||!ot&&rt||!st)return-1}return 0}var _compareAscending=compareAscending$1,compareAscending=_compareAscending;function compareMultiple$1(j,_e,et){for(var tt=-1,rt=j.criteria,nt=_e.criteria,ot=rt.length,it=et.length;++tt=it)return st;var lt=et[tt];return st*(lt=="desc"?-1:1)}}return j.index-_e.index}var _compareMultiple=compareMultiple$1,arrayMap=_arrayMap,baseGet=_baseGet,baseIteratee$4=_baseIteratee,baseMap=_baseMap,baseSortBy=_baseSortBy,baseUnary=_baseUnary,compareMultiple=_compareMultiple,identity$6=identity_1,isArray$h=isArray_1;function baseOrderBy$1(j,_e,et){_e.length?_e=arrayMap(_e,function(nt){return isArray$h(nt)?function(ot){return baseGet(ot,nt.length===1?nt[0]:nt)}:nt}):_e=[identity$6];var tt=-1;_e=arrayMap(_e,baseUnary(baseIteratee$4));var rt=baseMap(j,function(nt,ot,it){var st=arrayMap(_e,function(lt){return lt(nt)});return{criteria:st,index:++tt,value:nt}});return baseSortBy(rt,function(nt,ot){return compareMultiple(nt,ot,et)})}var _baseOrderBy=baseOrderBy$1,baseFlatten$1=_baseFlatten,baseOrderBy=_baseOrderBy,baseRest=_baseRest,isIterateeCall$2=_isIterateeCall,sortBy=baseRest(function(j,_e){if(j==null)return[];var et=_e.length;return et>1&&isIterateeCall$2(j,_e[0],_e[1])?_e=[]:et>2&&isIterateeCall$2(_e[0],_e[1],_e[2])&&(_e=[_e[0]]),baseOrderBy(j,baseFlatten$1(_e,1),[])}),sortBy_1=sortBy;const sortBy$1=getDefaultExportFromCjs(sortBy_1);var uniqueId_1,hasRequiredUniqueId;function requireUniqueId(){if(hasRequiredUniqueId)return uniqueId_1;hasRequiredUniqueId=1;var j=toString_1,_e=0;function et(tt){var rt=++_e;return j(tt)+rt}return uniqueId_1=et,uniqueId_1}var _baseZipObject,hasRequired_baseZipObject;function require_baseZipObject(){if(hasRequired_baseZipObject)return _baseZipObject;hasRequired_baseZipObject=1;function j(_e,et,tt){for(var rt=-1,nt=_e.length,ot=et.length,it={};++rt0;--it)if(ot=_e[it].dequeue(),ot){tt=tt.concat(removeNode(j,_e,et,ot,!0));break}}}return tt}function removeNode(j,_e,et,tt,rt){var nt=rt?[]:void 0;return _$o.forEach(j.inEdges(tt.v),function(ot){var it=j.edge(ot),st=j.node(ot.v);rt&&nt.push({v:ot.v,w:ot.w}),st.out-=it,assignBucket(_e,et,st)}),_$o.forEach(j.outEdges(tt.v),function(ot){var it=j.edge(ot),st=ot.w,lt=j.node(st);lt.in-=it,assignBucket(_e,et,lt)}),j.removeNode(tt.v),nt}function buildState(j,_e){var et=new Graph$8,tt=0,rt=0;_$o.forEach(j.nodes(),function(it){et.setNode(it,{v:it,in:0,out:0})}),_$o.forEach(j.edges(),function(it){var st=et.edge(it.v,it.w)||0,lt=_e(it),ut=st+lt;et.setEdge(it.v,it.w,ut),rt=Math.max(rt,et.node(it.v).out+=lt),tt=Math.max(tt,et.node(it.w).in+=lt)});var nt=_$o.range(rt+tt+3).map(function(){return new List$2}),ot=tt+1;return _$o.forEach(et.nodes(),function(it){assignBucket(nt,ot,et.node(it))}),{graph:et,buckets:nt,zeroIdx:ot}}function assignBucket(j,_e,et){et.out?et.in?j[et.out-et.in+_e].enqueue(et):j[j.length-1].enqueue(et):j[0].enqueue(et)}var _$n=lodash_1,greedyFAS=greedyFas,acyclic$1={run:run$2,undo:undo$3};function run$2(j){var _e=j.graph().acyclicer==="greedy"?greedyFAS(j,et(j)):dfsFAS(j);_$n.forEach(_e,function(tt){var rt=j.edge(tt);j.removeEdge(tt),rt.forwardName=tt.name,rt.reversed=!0,j.setEdge(tt.w,tt.v,rt,_$n.uniqueId("rev"))});function et(tt){return function(rt){return tt.edge(rt).weight}}}function dfsFAS(j){var _e=[],et={},tt={};function rt(nt){_$n.has(tt,nt)||(tt[nt]=!0,et[nt]=!0,_$n.forEach(j.outEdges(nt),function(ot){_$n.has(et,ot.w)?_e.push(ot):rt(ot.w)}),delete et[nt])}return _$n.forEach(j.nodes(),rt),_e}function undo$3(j){_$n.forEach(j.edges(),function(_e){var et=j.edge(_e);if(et.reversed){j.removeEdge(_e);var tt=et.forwardName;delete et.reversed,delete et.forwardName,j.setEdge(_e.w,_e.v,et,tt)}})}var _$m=lodash_1,Graph$7=graphlib_1.Graph,util$a={addDummyNode,simplify:simplify$1,asNonCompoundGraph,successorWeights,predecessorWeights,intersectRect,buildLayerMatrix,normalizeRanks:normalizeRanks$1,removeEmptyRanks:removeEmptyRanks$1,addBorderNode:addBorderNode$1,maxRank,partition,time:time$1,notime};function addDummyNode(j,_e,et,tt){var rt;do rt=_$m.uniqueId(tt);while(j.hasNode(rt));return et.dummy=_e,j.setNode(rt,et),rt}function simplify$1(j){var _e=new Graph$7().setGraph(j.graph());return _$m.forEach(j.nodes(),function(et){_e.setNode(et,j.node(et))}),_$m.forEach(j.edges(),function(et){var tt=_e.edge(et.v,et.w)||{weight:0,minlen:1},rt=j.edge(et);_e.setEdge(et.v,et.w,{weight:tt.weight+rt.weight,minlen:Math.max(tt.minlen,rt.minlen)})}),_e}function asNonCompoundGraph(j){var _e=new Graph$7({multigraph:j.isMultigraph()}).setGraph(j.graph());return _$m.forEach(j.nodes(),function(et){j.children(et).length||_e.setNode(et,j.node(et))}),_$m.forEach(j.edges(),function(et){_e.setEdge(et,j.edge(et))}),_e}function successorWeights(j){var _e=_$m.map(j.nodes(),function(et){var tt={};return _$m.forEach(j.outEdges(et),function(rt){tt[rt.w]=(tt[rt.w]||0)+j.edge(rt).weight}),tt});return _$m.zipObject(j.nodes(),_e)}function predecessorWeights(j){var _e=_$m.map(j.nodes(),function(et){var tt={};return _$m.forEach(j.inEdges(et),function(rt){tt[rt.v]=(tt[rt.v]||0)+j.edge(rt).weight}),tt});return _$m.zipObject(j.nodes(),_e)}function intersectRect(j,_e){var et=j.x,tt=j.y,rt=_e.x-et,nt=_e.y-tt,ot=j.width/2,it=j.height/2;if(!rt&&!nt)throw new Error("Not possible to find intersection inside of the rectangle");var st,lt;return Math.abs(nt)*ot>Math.abs(rt)*it?(nt<0&&(it=-it),st=it*rt/nt,lt=it):(rt<0&&(ot=-ot),st=ot,lt=ot*nt/rt),{x:et+st,y:tt+lt}}function buildLayerMatrix(j){var _e=_$m.map(_$m.range(maxRank(j)+1),function(){return[]});return _$m.forEach(j.nodes(),function(et){var tt=j.node(et),rt=tt.rank;_$m.isUndefined(rt)||(_e[rt][tt.order]=et)}),_e}function normalizeRanks$1(j){var _e=_$m.min(_$m.map(j.nodes(),function(et){return j.node(et).rank}));_$m.forEach(j.nodes(),function(et){var tt=j.node(et);_$m.has(tt,"rank")&&(tt.rank-=_e)})}function removeEmptyRanks$1(j){var _e=_$m.min(_$m.map(j.nodes(),function(nt){return j.node(nt).rank})),et=[];_$m.forEach(j.nodes(),function(nt){var ot=j.node(nt).rank-_e;et[ot]||(et[ot]=[]),et[ot].push(nt)});var tt=0,rt=j.graph().nodeRankFactor;_$m.forEach(et,function(nt,ot){_$m.isUndefined(nt)&&ot%rt!==0?--tt:tt&&_$m.forEach(nt,function(it){j.node(it).rank+=tt})})}function addBorderNode$1(j,_e,et,tt){var rt={width:0,height:0};return arguments.length>=4&&(rt.rank=et,rt.order=tt),addDummyNode(j,"border",rt,_e)}function maxRank(j){return _$m.max(_$m.map(j.nodes(),function(_e){var et=j.node(_e).rank;if(!_$m.isUndefined(et))return et}))}function partition(j,_e){var et={lhs:[],rhs:[]};return _$m.forEach(j,function(tt){_e(tt)?et.lhs.push(tt):et.rhs.push(tt)}),et}function time$1(j,_e){var et=_$m.now();try{return _e()}finally{console.log(j+" time: "+(_$m.now()-et)+"ms")}}function notime(j,_e){return _e()}var _$l=lodash_1,util$9=util$a,normalize$4={run:run$1,undo:undo$2};function run$1(j){j.graph().dummyChains=[],_$l.forEach(j.edges(),function(_e){normalizeEdge(j,_e)})}function normalizeEdge(j,_e){var et=_e.v,tt=j.node(et).rank,rt=_e.w,nt=j.node(rt).rank,ot=_e.name,it=j.edge(_e),st=it.labelRank;if(nt!==tt+1){j.removeEdge(_e);var lt,ut,ct;for(ct=0,++tt;ttot.lim&&(it=ot,st=!0);var lt=_$i.filter(_e.edges(),function(ut){return st===isDescendant(j,j.node(ut.v),it)&&st!==isDescendant(j,j.node(ut.w),it)});return _$i.minBy(lt,function(ut){return slack(_e,ut)})}function exchangeEdges(j,_e,et,tt){var rt=et.v,nt=et.w;j.removeEdge(rt,nt),j.setEdge(tt.v,tt.w,{}),initLowLimValues(j),initCutValues(j,_e),updateRanks(j,_e)}function updateRanks(j,_e){var et=_$i.find(j.nodes(),function(rt){return!_e.node(rt).parent}),tt=preorder(j,et);tt=tt.slice(1),_$i.forEach(tt,function(rt){var nt=j.node(rt).parent,ot=_e.edge(rt,nt),it=!1;ot||(ot=_e.edge(nt,rt),it=!0),_e.node(rt).rank=_e.node(nt).rank+(it?ot.minlen:-ot.minlen)})}function isTreeEdge(j,_e,et){return j.hasEdge(_e,et)}function isDescendant(j,_e,et){return et.low<=_e.lim&&_e.lim<=et.lim}var rankUtil=util$8,longestPath=rankUtil.longestPath,feasibleTree=feasibleTree_1,networkSimplex=networkSimplex_1,rank_1=rank$1;function rank$1(j){switch(j.graph().ranker){case"network-simplex":networkSimplexRanker(j);break;case"tight-tree":tightTreeRanker(j);break;case"longest-path":longestPathRanker(j);break;default:networkSimplexRanker(j)}}var longestPathRanker=longestPath;function tightTreeRanker(j){longestPath(j),feasibleTree(j)}function networkSimplexRanker(j){networkSimplex(j)}var _$h=lodash_1,parentDummyChains_1=parentDummyChains$1;function parentDummyChains$1(j){var _e=postorder(j);_$h.forEach(j.graph().dummyChains,function(et){for(var tt=j.node(et),rt=tt.edgeObj,nt=findPath(j,_e,rt.v,rt.w),ot=nt.path,it=nt.lca,st=0,lt=ot[st],ut=!0;et!==rt.w;){if(tt=j.node(et),ut){for(;(lt=ot[st])!==it&&j.node(lt).maxRankot||it>_e[st].lim));for(lt=st,st=tt;(st=j.parent(st))!==lt;)nt.push(st);return{path:rt.concat(nt.reverse()),lca:lt}}function postorder(j){var _e={},et=0;function tt(rt){var nt=et;_$h.forEach(j.children(rt),tt),_e[rt]={low:nt,lim:et++}}return _$h.forEach(j.children(),tt),_e}var _$g=lodash_1,util$7=util$a,nestingGraph$1={run,cleanup:cleanup$1};function run(j){var _e=util$7.addDummyNode(j,"root",{},"_root"),et=treeDepths(j),tt=_$g.max(_$g.values(et))-1,rt=2*tt+1;j.graph().nestingRoot=_e,_$g.forEach(j.edges(),function(ot){j.edge(ot).minlen*=rt});var nt=sumWeights(j)+1;_$g.forEach(j.children(),function(ot){dfs(j,_e,rt,nt,tt,et,ot)}),j.graph().nodeRankFactor=rt}function dfs(j,_e,et,tt,rt,nt,ot){var it=j.children(ot);if(!it.length){ot!==_e&&j.setEdge(_e,ot,{weight:0,minlen:et});return}var st=util$7.addBorderNode(j,"_bt"),lt=util$7.addBorderNode(j,"_bb"),ut=j.node(ot);j.setParent(st,ot),ut.borderTop=st,j.setParent(lt,ot),ut.borderBottom=lt,_$g.forEach(it,function(ct){dfs(j,_e,et,tt,rt,nt,ct);var dt=j.node(ct),ft=dt.borderTop?dt.borderTop:ct,pt=dt.borderBottom?dt.borderBottom:ct,gt=dt.borderTop?tt:2*tt,vt=ft!==pt?1:rt-nt[ot]+1;j.setEdge(st,ft,{weight:gt,minlen:vt,nestingEdge:!0}),j.setEdge(pt,lt,{weight:gt,minlen:vt,nestingEdge:!0})}),j.parent(ot)||j.setEdge(_e,st,{weight:0,minlen:rt+nt[ot]})}function treeDepths(j){var _e={};function et(tt,rt){var nt=j.children(tt);nt&&nt.length&&_$g.forEach(nt,function(ot){et(ot,rt+1)}),_e[tt]=rt}return _$g.forEach(j.children(),function(tt){et(tt,1)}),_e}function sumWeights(j){return _$g.reduce(j.edges(),function(_e,et){return _e+j.edge(et).weight},0)}function cleanup$1(j){var _e=j.graph();j.removeNode(_e.nestingRoot),delete _e.nestingRoot,_$g.forEach(j.edges(),function(et){var tt=j.edge(et);tt.nestingEdge&&j.removeEdge(et)})}var _$f=lodash_1,util$6=util$a,addBorderSegments_1=addBorderSegments$1;function addBorderSegments$1(j){function _e(et){var tt=j.children(et),rt=j.node(et);if(tt.length&&_$f.forEach(tt,_e),_$f.has(rt,"minRank")){rt.borderLeft=[],rt.borderRight=[];for(var nt=rt.minRank,ot=rt.maxRank+1;nt0;)ut%2&&(ct+=it[ut+1]),ut=ut-1>>1,it[ut]+=lt.weight;st+=lt.weight*ct})),st}var _$b=lodash_1,barycenter_1=barycenter$1;function barycenter$1(j,_e){return _$b.map(_e,function(et){var tt=j.inEdges(et);if(tt.length){var rt=_$b.reduce(tt,function(nt,ot){var it=j.edge(ot),st=j.node(ot.v);return{sum:nt.sum+it.weight*st.order,weight:nt.weight+it.weight}},{sum:0,weight:0});return{v:et,barycenter:rt.sum/rt.weight,weight:rt.weight}}else return{v:et}})}var _$a=lodash_1,resolveConflicts_1=resolveConflicts$1;function resolveConflicts$1(j,_e){var et={};_$a.forEach(j,function(rt,nt){var ot=et[rt.v]={indegree:0,in:[],out:[],vs:[rt.v],i:nt};_$a.isUndefined(rt.barycenter)||(ot.barycenter=rt.barycenter,ot.weight=rt.weight)}),_$a.forEach(_e.edges(),function(rt){var nt=et[rt.v],ot=et[rt.w];!_$a.isUndefined(nt)&&!_$a.isUndefined(ot)&&(ot.indegree++,nt.out.push(et[rt.w]))});var tt=_$a.filter(et,function(rt){return!rt.indegree});return doResolveConflicts(tt)}function doResolveConflicts(j){var _e=[];function et(nt){return function(ot){ot.merged||(_$a.isUndefined(ot.barycenter)||_$a.isUndefined(nt.barycenter)||ot.barycenter>=nt.barycenter)&&mergeEntries(nt,ot)}}function tt(nt){return function(ot){ot.in.push(nt),--ot.indegree===0&&j.push(ot)}}for(;j.length;){var rt=j.pop();_e.push(rt),_$a.forEach(rt.in.reverse(),et(rt)),_$a.forEach(rt.out,tt(rt))}return _$a.map(_$a.filter(_e,function(nt){return!nt.merged}),function(nt){return _$a.pick(nt,["vs","i","barycenter","weight"])})}function mergeEntries(j,_e){var et=0,tt=0;j.weight&&(et+=j.barycenter*j.weight,tt+=j.weight),_e.weight&&(et+=_e.barycenter*_e.weight,tt+=_e.weight),j.vs=_e.vs.concat(j.vs),j.barycenter=et/tt,j.weight=tt,j.i=Math.min(_e.i,j.i),_e.merged=!0}var _$9=lodash_1,util$5=util$a,sort_1=sort$1;function sort$1(j,_e){var et=util$5.partition(j,function(ut){return _$9.has(ut,"barycenter")}),tt=et.lhs,rt=_$9.sortBy(et.rhs,function(ut){return-ut.i}),nt=[],ot=0,it=0,st=0;tt.sort(compareWithBias(!!_e)),st=consumeUnsortable(nt,rt,st),_$9.forEach(tt,function(ut){st+=ut.vs.length,nt.push(ut.vs),ot+=ut.barycenter*ut.weight,it+=ut.weight,st=consumeUnsortable(nt,rt,st)});var lt={vs:_$9.flatten(nt,!0)};return it&&(lt.barycenter=ot/it,lt.weight=it),lt}function consumeUnsortable(j,_e,et){for(var tt;_e.length&&(tt=_$9.last(_e)).i<=et;)_e.pop(),j.push(tt.vs),et++;return et}function compareWithBias(j){return function(_e,et){return _e.barycenteret.barycenter?1:j?et.i-_e.i:_e.i-et.i}}var _$8=lodash_1,barycenter=barycenter_1,resolveConflicts=resolveConflicts_1,sort=sort_1,sortSubgraph_1=sortSubgraph$1;function sortSubgraph$1(j,_e,et,tt){var rt=j.children(_e),nt=j.node(_e),ot=nt?nt.borderLeft:void 0,it=nt?nt.borderRight:void 0,st={};ot&&(rt=_$8.filter(rt,function(pt){return pt!==ot&&pt!==it}));var lt=barycenter(j,rt);_$8.forEach(lt,function(pt){if(j.children(pt.v).length){var gt=sortSubgraph$1(j,pt.v,et,tt);st[pt.v]=gt,_$8.has(gt,"barycenter")&&mergeBarycenters(pt,gt)}});var ut=resolveConflicts(lt,et);expandSubgraphs(ut,st);var ct=sort(ut,tt);if(ot&&(ct.vs=_$8.flatten([ot,ct.vs,it],!0),j.predecessors(ot).length)){var dt=j.node(j.predecessors(ot)[0]),ft=j.node(j.predecessors(it)[0]);_$8.has(ct,"barycenter")||(ct.barycenter=0,ct.weight=0),ct.barycenter=(ct.barycenter*ct.weight+dt.order+ft.order)/(ct.weight+2),ct.weight+=2}return ct}function expandSubgraphs(j,_e){_$8.forEach(j,function(et){et.vs=_$8.flatten(et.vs.map(function(tt){return _e[tt]?_e[tt].vs:tt}),!0)})}function mergeBarycenters(j,_e){_$8.isUndefined(j.barycenter)?(j.barycenter=_e.barycenter,j.weight=_e.weight):(j.barycenter=(j.barycenter*j.weight+_e.barycenter*_e.weight)/(j.weight+_e.weight),j.weight+=_e.weight)}var _$7=lodash_1,Graph$5=graphlib_1.Graph,buildLayerGraph_1=buildLayerGraph$1;function buildLayerGraph$1(j,_e,et){var tt=createRootNode(j),rt=new Graph$5({compound:!0}).setGraph({root:tt}).setDefaultNodeLabel(function(nt){return j.node(nt)});return _$7.forEach(j.nodes(),function(nt){var ot=j.node(nt),it=j.parent(nt);(ot.rank===_e||ot.minRank<=_e&&_e<=ot.maxRank)&&(rt.setNode(nt),rt.setParent(nt,it||tt),_$7.forEach(j[et](nt),function(st){var lt=st.v===nt?st.w:st.v,ut=rt.edge(lt,nt),ct=_$7.isUndefined(ut)?0:ut.weight;rt.setEdge(lt,nt,{weight:j.edge(st).weight+ct})}),_$7.has(ot,"minRank")&&rt.setNode(nt,{borderLeft:ot.borderLeft[_e],borderRight:ot.borderRight[_e]}))}),rt}function createRootNode(j){for(var _e;j.hasNode(_e=_$7.uniqueId("_root")););return _e}var _$6=lodash_1,addSubgraphConstraints_1=addSubgraphConstraints$1;function addSubgraphConstraints$1(j,_e,et){var tt={},rt;_$6.forEach(et,function(nt){for(var ot=j.parent(nt),it,st;ot;){if(it=j.parent(ot),it?(st=tt[it],tt[it]=ot):(st=rt,rt=ot),st&&st!==ot){_e.setEdge(st,ot);return}ot=it}})}var _$5=lodash_1,initOrder=initOrder_1,crossCount=crossCount_1,sortSubgraph=sortSubgraph_1,buildLayerGraph=buildLayerGraph_1,addSubgraphConstraints=addSubgraphConstraints_1,Graph$4=graphlib_1.Graph,util$4=util$a,order_1=order$1;function order$1(j){var _e=util$4.maxRank(j),et=buildLayerGraphs(j,_$5.range(1,_e+1),"inEdges"),tt=buildLayerGraphs(j,_$5.range(_e-1,-1,-1),"outEdges"),rt=initOrder(j);assignOrder(j,rt);for(var nt=Number.POSITIVE_INFINITY,ot,it=0,st=0;st<4;++it,++st){sweepLayerGraphs(it%2?et:tt,it%4>=2),rt=util$4.buildLayerMatrix(j);var lt=crossCount(j,rt);ltlt)&&addConflict(et,dt,ut)})})}function rt(nt,ot){var it=-1,st,lt=0;return _$4.forEach(ot,function(ut,ct){if(j.node(ut).dummy==="border"){var dt=j.predecessors(ut);dt.length&&(st=j.node(dt[0]).order,tt(ot,lt,ct,it,st),lt=ct,it=st)}tt(ot,lt,ot.length,st,nt.length)}),ot}return _$4.reduce(_e,rt),et}function findOtherInnerSegmentNode(j,_e){if(j.node(_e).dummy)return _$4.find(j.predecessors(_e),function(et){return j.node(et).dummy})}function addConflict(j,_e,et){if(_e>et){var tt=_e;_e=et,et=tt}var rt=j[_e];rt||(j[_e]=rt={}),rt[et]=!0}function hasConflict(j,_e,et){if(_e>et){var tt=_e;_e=et,et=tt}return _$4.has(j[_e],et)}function verticalAlignment(j,_e,et,tt){var rt={},nt={},ot={};return _$4.forEach(_e,function(it){_$4.forEach(it,function(st,lt){rt[st]=st,nt[st]=st,ot[st]=lt})}),_$4.forEach(_e,function(it){var st=-1;_$4.forEach(it,function(lt){var ut=tt(lt);if(ut.length){ut=_$4.sortBy(ut,function(gt){return ot[gt]});for(var ct=(ut.length-1)/2,dt=Math.floor(ct),ft=Math.ceil(ct);dt<=ft;++dt){var pt=ut[dt];nt[lt]===lt&&st=0;it--)(ot=j[it])&&(nt=(rt<3?ot(nt):rt>3?ot(_e,et,nt):ot(_e,et))||nt);return rt>3&&nt&&Object.defineProperty(_e,et,nt),nt}function __spreadArray$1(j,_e,et){if(et||arguments.length===2)for(var tt=0,rt=_e.length,nt;tt"u"?InjectionMode$1.none:InjectionMode$1.insertNode,defaultPrefix:"css",namespace:void 0,cspSettings:void 0},_e),this._classNameToArgs=(tt=et==null?void 0:et.classNameToArgs)!==null&&tt!==void 0?tt:this._classNameToArgs,this._counter=(rt=et==null?void 0:et.counter)!==null&&rt!==void 0?rt:this._counter,this._keyToClassName=(ot=(nt=this._config.classNameCache)!==null&&nt!==void 0?nt:et==null?void 0:et.keyToClassName)!==null&&ot!==void 0?ot:this._keyToClassName,this._preservedRules=(it=et==null?void 0:et.preservedRules)!==null&&it!==void 0?it:this._preservedRules,this._rules=(st=et==null?void 0:et.rules)!==null&&st!==void 0?st:this._rules}return j.getInstance=function(){if(_stylesheet$1=_global$2[STYLESHEET_SETTING$1],!_stylesheet$1||_stylesheet$1._lastStyleElement&&_stylesheet$1._lastStyleElement.ownerDocument!==document){var _e=(_global$2==null?void 0:_global$2.FabricConfig)||{},et=new j(_e.mergeStyles,_e.serializedStylesheet);_stylesheet$1=et,_global$2[STYLESHEET_SETTING$1]=et}return _stylesheet$1},j.prototype.serialize=function(){return JSON.stringify({classNameToArgs:this._classNameToArgs,counter:this._counter,keyToClassName:this._keyToClassName,preservedRules:this._preservedRules,rules:this._rules})},j.prototype.setConfig=function(_e){this._config=__assign$4(__assign$4({},this._config),_e)},j.prototype.onReset=function(_e){var et=this;return this._onResetCallbacks.push(_e),function(){et._onResetCallbacks=et._onResetCallbacks.filter(function(tt){return tt!==_e})}},j.prototype.onInsertRule=function(_e){var et=this;return this._onInsertRuleCallbacks.push(_e),function(){et._onInsertRuleCallbacks=et._onInsertRuleCallbacks.filter(function(tt){return tt!==_e})}},j.prototype.getClassName=function(_e){var et=this._config.namespace,tt=_e||this._config.defaultPrefix;return"".concat(et?et+"-":"").concat(tt,"-").concat(this._counter++)},j.prototype.cacheClassName=function(_e,et,tt,rt){this._keyToClassName[et]=_e,this._classNameToArgs[_e]={args:tt,rules:rt}},j.prototype.classNameFromKey=function(_e){return this._keyToClassName[_e]},j.prototype.getClassNameCache=function(){return this._keyToClassName},j.prototype.argsFromClassName=function(_e){var et=this._classNameToArgs[_e];return et&&et.args},j.prototype.insertedRulesFromClassName=function(_e){var et=this._classNameToArgs[_e];return et&&et.rules},j.prototype.insertRule=function(_e,et){var tt=this._config.injectionMode,rt=tt!==InjectionMode$1.none?this._getStyleElement():void 0;if(et&&this._preservedRules.push(_e),rt)switch(tt){case InjectionMode$1.insertNode:var nt=rt.sheet;try{nt.insertRule(_e,nt.cssRules.length)}catch{}break;case InjectionMode$1.appendChild:rt.appendChild(document.createTextNode(_e));break}else this._rules.push(_e);this._config.onInsertRule&&this._config.onInsertRule(_e),this._onInsertRuleCallbacks.forEach(function(ot){return ot()})},j.prototype.getRules=function(_e){return(_e?this._preservedRules.join(""):"")+this._rules.join("")},j.prototype.reset=function(){this._rules=[],this._counter=0,this._classNameToArgs={},this._keyToClassName={},this._onResetCallbacks.forEach(function(_e){return _e()})},j.prototype.resetKeys=function(){this._keyToClassName={}},j.prototype._getStyleElement=function(){var _e=this;return!this._styleElement&&typeof document<"u"&&(this._styleElement=this._createStyleElement(),REUSE_STYLE_NODE$1||window.requestAnimationFrame(function(){_e._styleElement=void 0})),this._styleElement},j.prototype._createStyleElement=function(){var _e=document.head,et=document.createElement("style"),tt=null;et.setAttribute("data-merge-styles","true");var rt=this._config.cspSettings;if(rt&&rt.nonce&&et.setAttribute("nonce",rt.nonce),this._lastStyleElement)tt=this._lastStyleElement.nextElementSibling;else{var nt=this._findPlaceholderStyleTag();nt?tt=nt.nextElementSibling:tt=_e.childNodes[0]}return _e.insertBefore(et,_e.contains(tt)?tt:null),this._lastStyleElement=et,et},j.prototype._findPlaceholderStyleTag=function(){var _e=document.head;return _e?_e.querySelector("style[data-merge-styles]"):null},j}();function extractStyleParts$1(){for(var j=[],_e=0;_e=0)nt(lt.split(" "));else{var ut=rt.argsFromClassName(lt);ut?nt(ut):et.indexOf(lt)===-1&&et.push(lt)}else Array.isArray(lt)?nt(lt):typeof lt=="object"&&tt.push(lt)}}return nt(j),{classes:et,objects:tt}}function setRTL$1(j){_rtl$1!==j&&(_rtl$1=j)}function getRTL$2(){return _rtl$1===void 0&&(_rtl$1=typeof document<"u"&&!!document.documentElement&&document.documentElement.getAttribute("dir")==="rtl"),_rtl$1}var _rtl$1;_rtl$1=getRTL$2();function getStyleOptions$1(){return{rtl:getRTL$2()}}var rules$1={};function kebabRules$1(j,_e){var et=j[_e];et.charAt(0)!=="-"&&(j[_e]=rules$1[et]=rules$1[et]||et.replace(/([A-Z])/g,"-$1").toLowerCase())}var _vendorSettings$1;function getVendorSettings$1(){var j;if(!_vendorSettings$1){var _e=typeof document<"u"?document:void 0,et=typeof navigator<"u"?navigator:void 0,tt=(j=et==null?void 0:et.userAgent)===null||j===void 0?void 0:j.toLowerCase();_e?_vendorSettings$1={isWebkit:!!(_e&&"WebkitAppearance"in _e.documentElement.style),isMoz:!!(tt&&tt.indexOf("firefox")>-1),isOpera:!!(tt&&tt.indexOf("opera")>-1),isMs:!!(et&&(/rv:11.0/i.test(et.userAgent)||/Edge\/\d./i.test(navigator.userAgent)))}:_vendorSettings$1={isWebkit:!0,isMoz:!0,isOpera:!0,isMs:!0}}return _vendorSettings$1}var autoPrefixNames$1={"user-select":1};function prefixRules$1(j,_e){var et=getVendorSettings$1(),tt=j[_e];if(autoPrefixNames$1[tt]){var rt=j[_e+1];autoPrefixNames$1[tt]&&(et.isWebkit&&j.push("-webkit-"+tt,rt),et.isMoz&&j.push("-moz-"+tt,rt),et.isMs&&j.push("-ms-"+tt,rt),et.isOpera&&j.push("-o-"+tt,rt))}}var NON_PIXEL_NUMBER_PROPS$1=["column-count","font-weight","flex","flex-grow","flex-shrink","fill-opacity","opacity","order","z-index","zoom"];function provideUnits$1(j,_e){var et=j[_e],tt=j[_e+1];if(typeof tt=="number"){var rt=NON_PIXEL_NUMBER_PROPS$1.indexOf(et)>-1,nt=et.indexOf("--")>-1,ot=rt||nt?"":"px";j[_e+1]="".concat(tt).concat(ot)}}var _a$9,LEFT$1="left",RIGHT$1="right",NO_FLIP$1="@noflip",NAME_REPLACEMENTS$1=(_a$9={},_a$9[LEFT$1]=RIGHT$1,_a$9[RIGHT$1]=LEFT$1,_a$9),VALUE_REPLACEMENTS$1={"w-resize":"e-resize","sw-resize":"se-resize","nw-resize":"ne-resize"};function rtlifyRules$1(j,_e,et){if(j.rtl){var tt=_e[et];if(!tt)return;var rt=_e[et+1];if(typeof rt=="string"&&rt.indexOf(NO_FLIP$1)>=0)_e[et+1]=rt.replace(/\s*(?:\/\*\s*)?\@noflip\b(?:\s*\*\/)?\s*?/g,"");else if(tt.indexOf(LEFT$1)>=0)_e[et]=tt.replace(LEFT$1,RIGHT$1);else if(tt.indexOf(RIGHT$1)>=0)_e[et]=tt.replace(RIGHT$1,LEFT$1);else if(String(rt).indexOf(LEFT$1)>=0)_e[et+1]=rt.replace(LEFT$1,RIGHT$1);else if(String(rt).indexOf(RIGHT$1)>=0)_e[et+1]=rt.replace(RIGHT$1,LEFT$1);else if(NAME_REPLACEMENTS$1[tt])_e[et]=NAME_REPLACEMENTS$1[tt];else if(VALUE_REPLACEMENTS$1[rt])_e[et+1]=VALUE_REPLACEMENTS$1[rt];else switch(tt){case"margin":case"padding":_e[et+1]=flipQuad$1(rt);break;case"box-shadow":_e[et+1]=negateNum$1(rt,0);break}}}function negateNum$1(j,_e){var et=j.split(" "),tt=parseInt(et[_e],10);return et[0]=et[0].replace(String(tt),String(tt*-1)),et.join(" ")}function flipQuad$1(j){if(typeof j=="string"){var _e=j.split(" ");if(_e.length===4)return"".concat(_e[0]," ").concat(_e[3]," ").concat(_e[2]," ").concat(_e[1])}return j}function tokenizeWithParentheses$1(j){for(var _e=[],et=0,tt=0,rt=0;rtet&&_e.push(j.substring(et,rt)),et=rt+1);break}return et-1&&_e.push([tt.index,tt.index+tt[0].length,tt[1].split(",").map(function(rt){return":global(".concat(rt.trim(),")")}).join(", ")]);return _e.reverse().reduce(function(rt,nt){var ot=nt[0],it=nt[1],st=nt[2],lt=rt.slice(0,ot),ut=rt.slice(it);return lt+st+ut},j)}function expandSelector$1(j,_e){return j.indexOf(":global(")>=0?j.replace(globalSelectorRegExp$1,"$1"):j.indexOf(":")===0?_e+j:j.indexOf("&")<0?_e+" "+j:j}function extractSelector$1(j,_e,et,tt){_e===void 0&&(_e={__order:[]}),et.indexOf("@")===0?(et=et+"{"+j,extractRules$1([tt],_e,et)):et.indexOf(",")>-1?expandCommaSeparatedGlobals$1(et).split(",").map(function(rt){return rt.trim()}).forEach(function(rt){return extractRules$1([tt],_e,expandSelector$1(rt,j))}):extractRules$1([tt],_e,expandSelector$1(et,j))}function extractRules$1(j,_e,et){_e===void 0&&(_e={__order:[]}),et===void 0&&(et="&");var tt=Stylesheet$1.getInstance(),rt=_e[et];rt||(rt={},_e[et]=rt,_e.__order.push(et));for(var nt=0,ot=j;nt0){et.subComponentStyles={};var dt=et.subComponentStyles,ft=function(pt){if(tt.hasOwnProperty(pt)){var gt=tt[pt];dt[pt]=function(vt){return concatStyleSets.apply(void 0,gt.map(function(bt){return typeof bt=="function"?bt(vt):bt}))}}};for(var lt in tt)ft(lt)}return et}function mergeStyleSets(){for(var j=[],_e=0;_e"u")){var _e=j;return _e&&_e.ownerDocument&&_e.ownerDocument.defaultView?_e.ownerDocument.defaultView:_window}}var Async=function(){function j(_e,et){this._timeoutIds=null,this._immediateIds=null,this._intervalIds=null,this._animationFrameIds=null,this._isDisposed=!1,this._parent=_e||null,this._onErrorHandler=et,this._noop=function(){}}return j.prototype.dispose=function(){var _e;if(this._isDisposed=!0,this._parent=null,this._timeoutIds){for(_e in this._timeoutIds)this._timeoutIds.hasOwnProperty(_e)&&this.clearTimeout(parseInt(_e,10));this._timeoutIds=null}if(this._immediateIds){for(_e in this._immediateIds)this._immediateIds.hasOwnProperty(_e)&&this.clearImmediate(parseInt(_e,10));this._immediateIds=null}if(this._intervalIds){for(_e in this._intervalIds)this._intervalIds.hasOwnProperty(_e)&&this.clearInterval(parseInt(_e,10));this._intervalIds=null}if(this._animationFrameIds){for(_e in this._animationFrameIds)this._animationFrameIds.hasOwnProperty(_e)&&this.cancelAnimationFrame(parseInt(_e,10));this._animationFrameIds=null}},j.prototype.setTimeout=function(_e,et){var tt=this,rt=0;return this._isDisposed||(this._timeoutIds||(this._timeoutIds={}),rt=setTimeout(function(){try{tt._timeoutIds&&delete tt._timeoutIds[rt],_e.apply(tt._parent)}catch(nt){tt._logError(nt)}},et),this._timeoutIds[rt]=!0),rt},j.prototype.clearTimeout=function(_e){this._timeoutIds&&this._timeoutIds[_e]&&(clearTimeout(_e),delete this._timeoutIds[_e])},j.prototype.setImmediate=function(_e,et){var tt=this,rt=0,nt=getWindow(et);if(!this._isDisposed){this._immediateIds||(this._immediateIds={});var ot=function(){try{tt._immediateIds&&delete tt._immediateIds[rt],_e.apply(tt._parent)}catch(it){tt._logError(it)}};rt=nt.setTimeout(ot,0),this._immediateIds[rt]=!0}return rt},j.prototype.clearImmediate=function(_e,et){var tt=getWindow(et);this._immediateIds&&this._immediateIds[_e]&&(tt.clearTimeout(_e),delete this._immediateIds[_e])},j.prototype.setInterval=function(_e,et){var tt=this,rt=0;return this._isDisposed||(this._intervalIds||(this._intervalIds={}),rt=setInterval(function(){try{_e.apply(tt._parent)}catch(nt){tt._logError(nt)}},et),this._intervalIds[rt]=!0),rt},j.prototype.clearInterval=function(_e){this._intervalIds&&this._intervalIds[_e]&&(clearInterval(_e),delete this._intervalIds[_e])},j.prototype.throttle=function(_e,et,tt){var rt=this;if(this._isDisposed)return this._noop;var nt=et||0,ot=!0,it=!0,st=0,lt,ut,ct=null;tt&&typeof tt.leading=="boolean"&&(ot=tt.leading),tt&&typeof tt.trailing=="boolean"&&(it=tt.trailing);var dt=function(pt){var gt=Date.now(),vt=gt-st,bt=ot?nt-vt:nt;return vt>=nt&&(!pt||ot)?(st=gt,ct&&(rt.clearTimeout(ct),ct=null),lt=_e.apply(rt._parent,ut)):ct===null&&it&&(ct=rt.setTimeout(dt,bt)),lt},ft=function(){for(var pt=[],gt=0;gt=ot&&(At=!0),ut=$t);var wt=$t-ut,Ct=ot-wt,It=$t-ct,Ot=!1;return lt!==null&&(It>=lt&&pt?Ot=!0:Ct=Math.min(Ct,lt-It)),wt>=ot||Ot||At?vt($t):(pt===null||!St)&&st&&(pt=rt.setTimeout(bt,Ct)),dt},_t=function(){return!!pt},xt=function(){_t()&>(Date.now())},yt=function(){return _t()&&vt(Date.now()),dt},Et=function(){for(var St=[],$t=0;$t-1)for(var ot=et.split(/[ ,]+/),it=0;it"u")){var _e=j;return _e&&_e.ownerDocument?_e.ownerDocument:document}}var _scrollbarWidth,_bodyScrollDisabledCount=0,DisabledScrollClassName=mergeStyles$1({overflow:"hidden !important"}),DATA_IS_SCROLLABLE_ATTRIBUTE="data-is-scrollable",allowScrollOnElement=function(j,_e){if(j){var et=0,tt=null,rt=function(ot){ot.targetTouches.length===1&&(et=ot.targetTouches[0].clientY)},nt=function(ot){if(ot.targetTouches.length===1&&(ot.stopPropagation(),!!tt)){var it=ot.targetTouches[0].clientY-et,st=findScrollableParent(ot.target);st&&(tt=st),tt.scrollTop===0&&it>0&&ot.preventDefault(),tt.scrollHeight-Math.ceil(tt.scrollTop)<=tt.clientHeight&&it<0&&ot.preventDefault()}};_e.on(j,"touchstart",rt,{passive:!1}),_e.on(j,"touchmove",nt,{passive:!1}),tt=j}},allowOverscrollOnElement=function(j,_e){if(j){var et=function(tt){tt.stopPropagation()};_e.on(j,"touchmove",et,{passive:!1})}},_disableIosBodyScroll=function(j){j.preventDefault()};function disableBodyScroll(){var j=getDocument();j&&j.body&&!_bodyScrollDisabledCount&&(j.body.classList.add(DisabledScrollClassName),j.body.addEventListener("touchmove",_disableIosBodyScroll,{passive:!1,capture:!1})),_bodyScrollDisabledCount++}function enableBodyScroll(){if(_bodyScrollDisabledCount>0){var j=getDocument();j&&j.body&&_bodyScrollDisabledCount===1&&(j.body.classList.remove(DisabledScrollClassName),j.body.removeEventListener("touchmove",_disableIosBodyScroll)),_bodyScrollDisabledCount--}}function getScrollbarWidth(){if(_scrollbarWidth===void 0){var j=document.createElement("div");j.style.setProperty("width","100px"),j.style.setProperty("height","100px"),j.style.setProperty("overflow","scroll"),j.style.setProperty("position","absolute"),j.style.setProperty("top","-9999px"),document.body.appendChild(j),_scrollbarWidth=j.offsetWidth-j.clientWidth,document.body.removeChild(j)}return _scrollbarWidth}function findScrollableParent(j){for(var _e=j,et=getDocument(j);_e&&_e!==et.body;){if(_e.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE)==="true")return _e;_e=_e.parentElement}for(_e=j;_e&&_e!==et.body;){if(_e.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE)!=="false"){var tt=getComputedStyle(_e),rt=tt?tt.getPropertyValue("overflow-y"):"";if(rt&&(rt==="scroll"||rt==="auto"))return _e}_e=_e.parentElement}return(!_e||_e===et.body)&&(_e=getWindow(j)),_e}var _warningCallback=void 0;function warn$1(j){console&&console.warn&&console.warn(j)}var GLOBAL_SETTINGS_PROP_NAME="__globalSettings__",CALLBACK_STATE_PROP_NAME="__callbacks__",_counter=0,GlobalSettings=function(){function j(){}return j.getValue=function(_e,et){var tt=_getGlobalSettings();return tt[_e]===void 0&&(tt[_e]=typeof et=="function"?et():et),tt[_e]},j.setValue=function(_e,et){var tt=_getGlobalSettings(),rt=tt[CALLBACK_STATE_PROP_NAME],nt=tt[_e];if(et!==nt){tt[_e]=et;var ot={oldValue:nt,value:et,key:_e};for(var it in rt)rt.hasOwnProperty(it)&&rt[it](ot)}return et},j.addChangeListener=function(_e){var et=_e.__id__,tt=_getCallbacks();et||(et=_e.__id__=String(_counter++)),tt[et]=_e},j.removeChangeListener=function(_e){var et=_getCallbacks();delete et[_e.__id__]},j}();function _getGlobalSettings(){var j,_e=getWindow(),et=_e||{};return et[GLOBAL_SETTINGS_PROP_NAME]||(et[GLOBAL_SETTINGS_PROP_NAME]=(j={},j[CALLBACK_STATE_PROP_NAME]={},j)),et[GLOBAL_SETTINGS_PROP_NAME]}function _getCallbacks(){var j=_getGlobalSettings();return j[CALLBACK_STATE_PROP_NAME]}var KeyCodes$1={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,pauseBreak:19,capslock:20,escape:27,space:32,pageUp:33,pageDown:34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,del:46,zero:48,one:49,two:50,three:51,four:52,five:53,six:54,seven:55,eight:56,nine:57,colon:58,a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90,leftWindow:91,rightWindow:92,select:93,zero_numpad:96,one_numpad:97,two_numpad:98,three_numpad:99,four_numpad:100,five_numpad:101,six_numpad:102,seven_numpad:103,eight_numpad:104,nine_numpad:105,multiply:106,add:107,subtract:109,decimalPoint:110,divide:111,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,numlock:144,scrollLock:145,semicolon:186,equalSign:187,comma:188,dash:189,period:190,forwardSlash:191,graveAccent:192,openBracket:219,backSlash:220,closeBracket:221,singleQuote:222},Rectangle$1=function(){function j(_e,et,tt,rt){_e===void 0&&(_e=0),et===void 0&&(et=0),tt===void 0&&(tt=0),rt===void 0&&(rt=0),this.top=tt,this.bottom=rt,this.left=_e,this.right=et}return Object.defineProperty(j.prototype,"width",{get:function(){return this.right-this.left},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"height",{get:function(){return this.bottom-this.top},enumerable:!1,configurable:!0}),j.prototype.equals=function(_e){return parseFloat(this.top.toFixed(4))===parseFloat(_e.top.toFixed(4))&&parseFloat(this.bottom.toFixed(4))===parseFloat(_e.bottom.toFixed(4))&&parseFloat(this.left.toFixed(4))===parseFloat(_e.left.toFixed(4))&&parseFloat(this.right.toFixed(4))===parseFloat(_e.right.toFixed(4))},j}();function appendFunction(j){for(var _e=[],et=1;et-1&&rt._virtual.children.splice(nt,1)}et._virtual.parent=tt||void 0,tt&&(tt._virtual||(tt._virtual={children:[]}),tt._virtual.children.push(et))}var IS_FOCUSABLE_ATTRIBUTE$1="data-is-focusable",IS_VISIBLE_ATTRIBUTE="data-is-visible",FOCUSZONE_ID_ATTRIBUTE$1="data-focuszone-id",FOCUSZONE_SUB_ATTRIBUTE="data-is-sub-focuszone";function getFirstFocusable(j,_e,et){return getNextElement(j,_e,!0,!1,!1,et)}function getLastFocusable(j,_e,et){return getPreviousElement(j,_e,!0,!1,!0,et)}function getFirstTabbable(j,_e,et,tt){return tt===void 0&&(tt=!0),getNextElement(j,_e,tt,!1,!1,et,!1,!0)}function getLastTabbable(j,_e,et,tt){return tt===void 0&&(tt=!0),getPreviousElement(j,_e,tt,!1,!0,et,!1,!0)}function focusFirstChild(j,_e){var et=getNextElement(j,j,!0,!1,!1,!0,void 0,void 0,_e);return et?(focusAsync(et),!0):!1}function getPreviousElement(j,_e,et,tt,rt,nt,ot,it){if(!_e||!ot&&_e===j)return null;var st=isElementVisible(_e);if(rt&&st&&(nt||!(isElementFocusZone(_e)||isElementFocusSubZone(_e)))){var lt=getPreviousElement(j,_e.lastElementChild,!0,!0,!0,nt,ot,it);if(lt){if(it&&isElementTabbable(lt,!0)||!it)return lt;var ut=getPreviousElement(j,lt.previousElementSibling,!0,!0,!0,nt,ot,it);if(ut)return ut;for(var ct=lt.parentElement;ct&&ct!==_e;){var dt=getPreviousElement(j,ct.previousElementSibling,!0,!0,!0,nt,ot,it);if(dt)return dt;ct=ct.parentElement}}}if(et&&st&&isElementTabbable(_e,it))return _e;var ft=getPreviousElement(j,_e.previousElementSibling,!0,!0,!0,nt,ot,it);return ft||(tt?null:getPreviousElement(j,_e.parentElement,!0,!1,!1,nt,ot,it))}function getNextElement(j,_e,et,tt,rt,nt,ot,it,st){if(!_e||_e===j&&rt&&!ot)return null;var lt=st?isElementVisibleAndNotHidden:isElementVisible,ut=lt(_e);if(et&&ut&&isElementTabbable(_e,it))return _e;if(!rt&&ut&&(nt||!(isElementFocusZone(_e)||isElementFocusSubZone(_e)))){var ct=getNextElement(j,_e.firstElementChild,!0,!0,!1,nt,ot,it,st);if(ct)return ct}if(_e===j)return null;var dt=getNextElement(j,_e.nextElementSibling,!0,!0,!1,nt,ot,it,st);return dt||(tt?null:getNextElement(j,_e.parentElement,!1,!1,!0,nt,ot,it,st))}function isElementVisible(j){if(!j||!j.getAttribute)return!1;var _e=j.getAttribute(IS_VISIBLE_ATTRIBUTE);return _e!=null?_e==="true":j.offsetHeight!==0||j.offsetParent!==null||j.isVisible===!0}function isElementVisibleAndNotHidden(j){return!!j&&isElementVisible(j)&&!j.hidden&&window.getComputedStyle(j).visibility!=="hidden"}function isElementTabbable(j,_e){if(!j||j.disabled)return!1;var et=0,tt=null;j&&j.getAttribute&&(tt=j.getAttribute("tabIndex"),tt&&(et=parseInt(tt,10)));var rt=j.getAttribute?j.getAttribute(IS_FOCUSABLE_ATTRIBUTE$1):null,nt=tt!==null&&et>=0,ot=!!j&&rt!=="false"&&(j.tagName==="A"||j.tagName==="BUTTON"||j.tagName==="INPUT"||j.tagName==="TEXTAREA"||j.tagName==="SELECT"||rt==="true"||nt);return _e?et!==-1&&ot:ot}function isElementFocusZone(j){return!!(j&&j.getAttribute&&j.getAttribute(FOCUSZONE_ID_ATTRIBUTE$1))}function isElementFocusSubZone(j){return!!(j&&j.getAttribute&&j.getAttribute(FOCUSZONE_SUB_ATTRIBUTE)==="true")}function doesElementContainFocus(j){var _e=getDocument(j),et=_e&&_e.activeElement;return!!(et&&elementContains(j,et))}function shouldWrapFocus(j,_e){return elementContainsAttribute(j,_e)!=="true"}var animationId=void 0;function focusAsync(j){if(j){var _e=getWindow(j);_e&&(animationId!==void 0&&_e.cancelAnimationFrame(animationId),animationId=_e.requestAnimationFrame(function(){j&&j.focus(),animationId=void 0}))}}function getFocusableByIndexPath(j,_e){for(var et=j,tt=0,rt=_e;tt(j.cacheSize||MAX_CACHE_COUNT)){var ft=getWindow();!((st=ft==null?void 0:ft.FabricConfig)===null||st===void 0)&&st.enableClassNameCacheFullWarning&&(console.warn("Styles are being recalculated too frequently. Cache miss rate is ".concat(et,"/").concat(tt,".")),console.trace()),_e.clear(),et=0,j.disableCaching=!0}return lt[retVal]};return nt}function _traverseEdge(j,_e){return _e=_normalizeValue(_e),j.has(_e)||j.set(_e,new Map),j.get(_e)}function _traverseMap(j,_e){if(typeof _e=="function"){var et=_e.__cachedInputs__;if(et)for(var tt=0,rt=_e.__cachedInputs__;tt"u"?null:WeakMap;function resetMemoizations(){_resetCounter++}function memoizeFunction(j,_e,et){if(_e===void 0&&(_e=100),et===void 0&&(et=!1),!_weakMap)return j;if(!_initializedStylesheetResets$1){var tt=Stylesheet$1.getInstance();tt&&tt.onReset&&Stylesheet$1.getInstance().onReset(resetMemoizations),_initializedStylesheetResets$1=!0}var rt,nt=0,ot=_resetCounter;return function(){for(var st=[],lt=0;lt0&&nt>_e)&&(rt=_createNode(),nt=0,ot=_resetCounter),ut=rt;for(var ct=0;ct=0||st.indexOf("data-")===0||st.indexOf("aria-")===0;lt&&(!et||(et==null?void 0:et.indexOf(st))===-1)&&(rt[st]=j[st])}return rt}function initializeComponentRef(j){extendComponent(j,{componentDidMount:_onMount,componentDidUpdate:_onUpdate,componentWillUnmount:_onUnmount})}function _onMount(){_setComponentRef(this.props.componentRef,this)}function _onUpdate(j){j.componentRef!==this.props.componentRef&&(_setComponentRef(j.componentRef,null),_setComponentRef(this.props.componentRef,this))}function _onUnmount(){_setComponentRef(this.props.componentRef,null)}function _setComponentRef(j,_e){j&&(typeof j=="object"?j.current=_e:typeof j=="function"&&j(_e))}var _a$8,DirectionalKeyCodes=(_a$8={},_a$8[KeyCodes$1.up]=1,_a$8[KeyCodes$1.down]=1,_a$8[KeyCodes$1.left]=1,_a$8[KeyCodes$1.right]=1,_a$8[KeyCodes$1.home]=1,_a$8[KeyCodes$1.end]=1,_a$8[KeyCodes$1.tab]=1,_a$8[KeyCodes$1.pageUp]=1,_a$8[KeyCodes$1.pageDown]=1,_a$8);function isDirectionalKeyCode(j){return!!DirectionalKeyCodes[j]}var IsFocusVisibleClassName="ms-Fabric--isFocusVisible",IsFocusHiddenClassName="ms-Fabric--isFocusHidden";function updateClassList(j,_e){j&&(j.classList.add(_e?IsFocusVisibleClassName:IsFocusHiddenClassName),j.classList.remove(_e?IsFocusHiddenClassName:IsFocusVisibleClassName))}function setFocusVisibility(j,_e,et){var tt;et?et.forEach(function(rt){return updateClassList(rt.current,j)}):updateClassList((tt=getWindow(_e))===null||tt===void 0?void 0:tt.document.body,j)}var mountCounters=new WeakMap,callbackMap=new WeakMap;function setMountCounters(j,_e){var et,tt=mountCounters.get(j);return tt?et=tt+_e:et=1,mountCounters.set(j,et),et}function setCallbackMap(j){var _e=callbackMap.get(j);if(_e)return _e;var et=function(ot){return _onMouseDown(ot,j.registeredProviders)},tt=function(ot){return _onPointerDown(ot,j.registeredProviders)},rt=function(ot){return _onKeyDown(ot,j.registeredProviders)},nt=function(ot){return _onKeyUp(ot,j.registeredProviders)};return _e={onMouseDown:et,onPointerDown:tt,onKeyDown:rt,onKeyUp:nt},callbackMap.set(j,_e),_e}var FocusRectsContext=reactExports.createContext(void 0);function useFocusRects(j){var _e=reactExports.useContext(FocusRectsContext);reactExports.useEffect(function(){var et,tt,rt,nt,ot=getWindow(j==null?void 0:j.current);if(!(!ot||((et=ot.FabricConfig)===null||et===void 0?void 0:et.disableFocusRects)===!0)){var it=ot,st,lt,ut,ct;if(!((tt=_e==null?void 0:_e.providerRef)===null||tt===void 0)&&tt.current&&(!((nt=(rt=_e==null?void 0:_e.providerRef)===null||rt===void 0?void 0:rt.current)===null||nt===void 0)&&nt.addEventListener)){it=_e.providerRef.current;var dt=setCallbackMap(_e);st=dt.onMouseDown,lt=dt.onPointerDown,ut=dt.onKeyDown,ct=dt.onKeyUp}else st=_onMouseDown,lt=_onPointerDown,ut=_onKeyDown,ct=_onKeyUp;var ft=setMountCounters(it,1);return ft<=1&&(it.addEventListener("mousedown",st,!0),it.addEventListener("pointerdown",lt,!0),it.addEventListener("keydown",ut,!0),it.addEventListener("keyup",ct,!0)),function(){var pt;!ot||((pt=ot.FabricConfig)===null||pt===void 0?void 0:pt.disableFocusRects)===!0||(ft=setMountCounters(it,-1),ft===0&&(it.removeEventListener("mousedown",st,!0),it.removeEventListener("pointerdown",lt,!0),it.removeEventListener("keydown",ut,!0),it.removeEventListener("keyup",ct,!0)))}}},[_e,j])}var FocusRects=function(j){return useFocusRects(j.rootRef),null};function _onMouseDown(j,_e){setFocusVisibility(!1,j.target,_e)}function _onPointerDown(j,_e){j.pointerType!=="mouse"&&setFocusVisibility(!1,j.target,_e)}function _onKeyDown(j,_e){isDirectionalKeyCode(j.which)&&setFocusVisibility(!0,j.target,_e)}function _onKeyUp(j,_e){isDirectionalKeyCode(j.which)&&setFocusVisibility(!0,j.target,_e)}var FocusRectsProvider=function(j){var _e=j.providerRef,et=j.layerRoot,tt=reactExports.useState([])[0],rt=reactExports.useContext(FocusRectsContext),nt=rt!==void 0&&!et,ot=reactExports.useMemo(function(){return nt?void 0:{providerRef:_e,registeredProviders:tt,registerProvider:function(it){tt.push(it),rt==null||rt.registerProvider(it)},unregisterProvider:function(it){rt==null||rt.unregisterProvider(it);var st=tt.indexOf(it);st>=0&&tt.splice(st,1)}}},[_e,tt,rt,nt]);return reactExports.useEffect(function(){if(ot)return ot.registerProvider(ot.providerRef),function(){return ot.unregisterProvider(ot.providerRef)}},[ot]),ot?reactExports.createElement(FocusRectsContext.Provider,{value:ot},j.children):reactExports.createElement(reactExports.Fragment,null,j.children)};function getItem(j){var _e=null;try{var et=getWindow();_e=et?et.localStorage.getItem(j):null}catch{}return _e}var _language,STORAGE_KEY="language";function getLanguage(j){if(j===void 0&&(j="sessionStorage"),_language===void 0){var _e=getDocument(),et=j==="localStorage"?getItem(STORAGE_KEY):j==="sessionStorage"?getItem$1(STORAGE_KEY):void 0;et&&(_language=et),_language===void 0&&_e&&(_language=_e.documentElement.getAttribute("lang")),_language===void 0&&(_language="en")}return _language}function merge$4(j){for(var _e=[],et=1;et-1;j[tt]=nt?rt:_merge(j[tt]||{},rt,et)}else j[tt]=rt}return et.pop(),j}var isIOS=function(){return!window||!window.navigator||!window.navigator.userAgent?!1:/iPad|iPhone|iPod/i.test(window.navigator.userAgent)},tagsToIgnore=["TEMPLATE","STYLE","SCRIPT"];function modalize(j){var _e=getDocument(j);if(!_e)return function(){};for(var et=[];j!==_e.body&&j.parentElement;){for(var tt=0,rt=j.parentElement.children;tt"u"||j){var et=getWindow(),tt=(_e=et==null?void 0:et.navigator)===null||_e===void 0?void 0:_e.userAgent;isMacResult=!!tt&&tt.indexOf("Macintosh")!==-1}return!!isMacResult}function createComposedRenderFunction(j){var _e=createMemoizer(function(et){var tt=createMemoizer(function(rt){return function(nt){return et(nt,rt)}});return function(rt,nt){return j(rt,nt?tt(nt):et)}});return _e}var memoizer=createMemoizer(createComposedRenderFunction);function composeRenderFunction(j,_e){return memoizer(j)(_e)}var DefaultFields=["theme","styles"];function styled(j,_e,et,tt,rt){tt=tt||{scope:"",fields:void 0};var nt=tt.scope,ot=tt.fields,it=ot===void 0?DefaultFields:ot,st=reactExports.forwardRef(function(ut,ct){var dt=reactExports.useRef(),ft=useCustomizationSettings(it,nt),pt=ft.styles;ft.dir;var gt=__rest$1(ft,["styles","dir"]),vt=et?et(ut):void 0,bt=dt.current&&dt.current.__cachedInputs__||[],_t=ut.styles;if(!dt.current||pt!==bt[1]||_t!==bt[2]){var xt=function(yt){return concatStyleSetsWithProps(yt,_e,pt,_t)};xt.__cachedInputs__=[_e,pt,_t],xt.__noStyleOverride__=!pt&&!_t,dt.current=xt}return reactExports.createElement(j,__assign$4({ref:ct},gt,vt,ut,{styles:dt.current}))});st.displayName="Styled".concat(j.displayName||j.name);var lt=rt?reactExports.memo(st):st;return st.displayName&&(lt.displayName=st.displayName),lt}function getPropsWithDefaults(j,_e){for(var et=__assign$4({},_e),tt=0,rt=Object.keys(j);tttt?" (+ ".concat(_missingIcons.length-tt," more)"):"")),_missingIconsTimer=void 0,_missingIcons=[]},et)))}function makeSemanticColors(j,_e,et,tt,rt){rt===void 0&&(rt=!1);var nt=__assign$4({primaryButtonBorder:"transparent",errorText:tt?"#F1707B":"#a4262c",messageText:tt?"#F3F2F1":"#323130",messageLink:tt?"#6CB8F6":"#005A9E",messageLinkHovered:tt?"#82C7FF":"#004578",infoIcon:tt?"#C8C6C4":"#605e5c",errorIcon:tt?"#F1707B":"#A80000",blockingIcon:tt?"#442726":"#FDE7E9",warningIcon:tt?"#C8C6C4":"#797775",severeWarningIcon:tt?"#FCE100":"#D83B01",successIcon:tt?"#92C353":"#107C10",infoBackground:tt?"#323130":"#f3f2f1",errorBackground:tt?"#442726":"#FDE7E9",blockingBackground:tt?"#442726":"#FDE7E9",warningBackground:tt?"#433519":"#FFF4CE",severeWarningBackground:tt?"#4F2A0F":"#FED9CC",successBackground:tt?"#393D1B":"#DFF6DD",warningHighlight:tt?"#fff100":"#ffb900",successText:tt?"#92c353":"#107C10"},et),ot=getSemanticColors(j,_e,nt,tt);return _fixDeprecatedSlots(ot,rt)}function getSemanticColors(j,_e,et,tt,rt){var nt={},ot=j||{},it=ot.white,st=ot.black,lt=ot.themePrimary,ut=ot.themeDark,ct=ot.themeDarker,dt=ot.themeDarkAlt,ft=ot.themeLighter,pt=ot.neutralLight,gt=ot.neutralLighter,vt=ot.neutralDark,bt=ot.neutralQuaternary,_t=ot.neutralQuaternaryAlt,xt=ot.neutralPrimary,yt=ot.neutralSecondary,Et=ot.neutralSecondaryAlt,St=ot.neutralTertiary,$t=ot.neutralTertiaryAlt,At=ot.neutralLighterAlt,wt=ot.accent;return it&&(nt.bodyBackground=it,nt.bodyFrameBackground=it,nt.accentButtonText=it,nt.buttonBackground=it,nt.primaryButtonText=it,nt.primaryButtonTextHovered=it,nt.primaryButtonTextPressed=it,nt.inputBackground=it,nt.inputForegroundChecked=it,nt.listBackground=it,nt.menuBackground=it,nt.cardStandoutBackground=it),st&&(nt.bodyTextChecked=st,nt.buttonTextCheckedHovered=st),lt&&(nt.link=lt,nt.primaryButtonBackground=lt,nt.inputBackgroundChecked=lt,nt.inputIcon=lt,nt.inputFocusBorderAlt=lt,nt.menuIcon=lt,nt.menuHeader=lt,nt.accentButtonBackground=lt),ut&&(nt.primaryButtonBackgroundPressed=ut,nt.inputBackgroundCheckedHovered=ut,nt.inputIconHovered=ut),ct&&(nt.linkHovered=ct),dt&&(nt.primaryButtonBackgroundHovered=dt),ft&&(nt.inputPlaceholderBackgroundChecked=ft),pt&&(nt.bodyBackgroundChecked=pt,nt.bodyFrameDivider=pt,nt.bodyDivider=pt,nt.variantBorder=pt,nt.buttonBackgroundCheckedHovered=pt,nt.buttonBackgroundPressed=pt,nt.listItemBackgroundChecked=pt,nt.listHeaderBackgroundPressed=pt,nt.menuItemBackgroundPressed=pt,nt.menuItemBackgroundChecked=pt),gt&&(nt.bodyBackgroundHovered=gt,nt.buttonBackgroundHovered=gt,nt.buttonBackgroundDisabled=gt,nt.buttonBorderDisabled=gt,nt.primaryButtonBackgroundDisabled=gt,nt.disabledBackground=gt,nt.listItemBackgroundHovered=gt,nt.listHeaderBackgroundHovered=gt,nt.menuItemBackgroundHovered=gt),bt&&(nt.primaryButtonTextDisabled=bt,nt.disabledSubtext=bt),_t&&(nt.listItemBackgroundCheckedHovered=_t),St&&(nt.disabledBodyText=St,nt.variantBorderHovered=(et==null?void 0:et.variantBorderHovered)||St,nt.buttonTextDisabled=St,nt.inputIconDisabled=St,nt.disabledText=St),xt&&(nt.bodyText=xt,nt.actionLink=xt,nt.buttonText=xt,nt.inputBorderHovered=xt,nt.inputText=xt,nt.listText=xt,nt.menuItemText=xt),At&&(nt.bodyStandoutBackground=At,nt.defaultStateBackground=At),vt&&(nt.actionLinkHovered=vt,nt.buttonTextHovered=vt,nt.buttonTextChecked=vt,nt.buttonTextPressed=vt,nt.inputTextHovered=vt,nt.menuItemTextHovered=vt),yt&&(nt.bodySubtext=yt,nt.focusBorder=yt,nt.inputBorder=yt,nt.smallInputBorder=yt,nt.inputPlaceholderText=yt),Et&&(nt.buttonBorder=Et),$t&&(nt.disabledBodySubtext=$t,nt.disabledBorder=$t,nt.buttonBackgroundChecked=$t,nt.menuDivider=$t),wt&&(nt.accentButtonBackground=wt),_e!=null&&_e.elevation4&&(nt.cardShadow=_e.elevation4),!tt&&(_e!=null&&_e.elevation8)?nt.cardShadowHovered=_e.elevation8:nt.variantBorderHovered&&(nt.cardShadowHovered="0 0 1px "+nt.variantBorderHovered),nt=__assign$4(__assign$4({},nt),et),nt}function _fixDeprecatedSlots(j,_e){var et="";return _e===!0&&(et=" /* @deprecated */"),j.listTextColor=j.listText+et,j.menuItemBackgroundChecked+=et,j.warningHighlight+=et,j.warningText=j.messageText+et,j.successText+=et,j}function mergeThemes(j,_e){var et,tt,rt;_e===void 0&&(_e={});var nt=merge$4({},j,_e,{semanticColors:getSemanticColors(_e.palette,_e.effects,_e.semanticColors,_e.isInverted===void 0?j.isInverted:_e.isInverted)});if(!((et=_e.palette)===null||et===void 0)&&et.themePrimary&&!(!((tt=_e.palette)===null||tt===void 0)&&tt.accent)&&(nt.palette.accent=_e.palette.themePrimary),_e.defaultFontStyle)for(var ot=0,it=Object.keys(nt.fonts);ot"u"?global:window,_styleNonce=_root&&_root.CSPSettings&&_root.CSPSettings.nonce,_themeState=initializeThemeState();function initializeThemeState(){var j=_root.__themeState__||{theme:void 0,lastStyleElement:void 0,registeredStyles:[]};return j.runState||(j=__assign$3(__assign$3({},j),{perf:{count:0,duration:0},runState:{flushTimer:0,mode:0,buffer:[]}})),j.registeredThemableStyles||(j=__assign$3(__assign$3({},j),{registeredThemableStyles:[]})),_root.__themeState__=j,j}function applyThemableStyles(j,_e){_themeState.loadStyles?_themeState.loadStyles(resolveThemableArray(j).styleString,j):registerStyles$1(j)}function loadTheme$1(j){_themeState.theme=j,reloadStyles()}function clearStyles(j){j===void 0&&(j=3),(j===3||j===2)&&(clearStylesInternal(_themeState.registeredStyles),_themeState.registeredStyles=[]),(j===3||j===1)&&(clearStylesInternal(_themeState.registeredThemableStyles),_themeState.registeredThemableStyles=[])}function clearStylesInternal(j){j.forEach(function(_e){var et=_e&&_e.styleElement;et&&et.parentElement&&et.parentElement.removeChild(et)})}function reloadStyles(){if(_themeState.theme){for(var j=[],_e=0,et=_themeState.registeredThemableStyles;_e0&&(clearStyles(1),applyThemableStyles([].concat.apply([],j)))}}function resolveThemableArray(j){var _e=_themeState.theme,et=!1,tt=(j||[]).map(function(rt){var nt=rt.theme;if(nt){et=!0;var ot=_e?_e[nt]:void 0,it=rt.defaultValue||"inherit";return _e&&!ot&&console&&!(nt in _e)&&typeof DEBUG<"u"&&DEBUG&&console.warn('Theming value not provided for "'.concat(nt,'". Falling back to "').concat(it,'".')),ot||it}else return rt.rawString});return{styleString:tt.join(""),themable:et}}function registerStyles$1(j){if(!(typeof document>"u")){var _e=document.getElementsByTagName("head")[0],et=document.createElement("style"),tt=resolveThemableArray(j),rt=tt.styleString,nt=tt.themable;et.setAttribute("data-load-themed-styles","true"),_styleNonce&&et.setAttribute("nonce",_styleNonce),et.appendChild(document.createTextNode(rt)),_themeState.perf.count++,_e.appendChild(et);var ot=document.createEvent("HTMLEvents");ot.initEvent("styleinsert",!0,!1),ot.args={newStyle:et},document.dispatchEvent(ot);var it={styleElement:et,themableStyle:j};nt?_themeState.registeredThemableStyles.push(it):_themeState.registeredStyles.push(it)}}var _theme=createTheme({}),_onThemeChangeCallbacks=[],ThemeSettingName="theme";function initializeThemeInCustomizations(){var j,_e,et,tt=getWindow();!((_e=tt==null?void 0:tt.FabricConfig)===null||_e===void 0)&&_e.legacyTheme?loadTheme(tt.FabricConfig.legacyTheme):Customizations.getSettings([ThemeSettingName]).theme||(!((et=tt==null?void 0:tt.FabricConfig)===null||et===void 0)&&et.theme&&(_theme=createTheme(tt.FabricConfig.theme)),Customizations.applySettings((j={},j[ThemeSettingName]=_theme,j)))}initializeThemeInCustomizations();function getTheme(j){return j===void 0&&(j=!1),j===!0&&(_theme=createTheme({},j)),_theme}function loadTheme(j,_e){var et;return _e===void 0&&(_e=!1),_theme=createTheme(j,_e),loadTheme$1(__assign$4(__assign$4(__assign$4(__assign$4({},_theme.palette),_theme.semanticColors),_theme.effects),_loadFonts(_theme))),Customizations.applySettings((et={},et[ThemeSettingName]=_theme,et)),_onThemeChangeCallbacks.forEach(function(tt){try{tt(_theme)}catch{}}),_theme}function _loadFonts(j){for(var _e={},et=0,tt=Object.keys(j.fonts);et_e.bottom||j.left<_e.left||j.right>_e.right)}function _getOutOfBoundsEdges(j,_e){var et=[];return j.top<_e.top&&et.push(RectangleEdge.top),j.bottom>_e.bottom&&et.push(RectangleEdge.bottom),j.left<_e.left&&et.push(RectangleEdge.left),j.right>_e.right&&et.push(RectangleEdge.right),et}function _getEdgeValue(j,_e){return j[RectangleEdge[_e]]}function _setEdgeValue(j,_e,et){return j[RectangleEdge[_e]]=et,j}function _getCenterValue(j,_e){var et=_getFlankingEdges(_e);return(_getEdgeValue(j,et.positiveEdge)+_getEdgeValue(j,et.negativeEdge))/2}function _getRelativeEdgeValue(j,_e){return j>0?_e:_e*-1}function _getRelativeRectEdgeValue(j,_e){return _getRelativeEdgeValue(j,_getEdgeValue(_e,j))}function _getRelativeEdgeDifference(j,_e,et){var tt=_getEdgeValue(j,et)-_getEdgeValue(_e,et);return _getRelativeEdgeValue(et,tt)}function _moveEdge(j,_e,et,tt){tt===void 0&&(tt=!0);var rt=_getEdgeValue(j,_e)-et,nt=_setEdgeValue(j,_e,et);return tt&&(nt=_setEdgeValue(j,_e*-1,_getEdgeValue(j,_e*-1)-rt)),nt}function _alignEdges(j,_e,et,tt){return tt===void 0&&(tt=0),_moveEdge(j,et,_getEdgeValue(_e,et)+_getRelativeEdgeValue(et,tt))}function _alignOppositeEdges(j,_e,et,tt){tt===void 0&&(tt=0);var rt=et*-1,nt=_getRelativeEdgeValue(rt,tt);return _moveEdge(j,et*-1,_getEdgeValue(_e,et)+nt)}function _isEdgeInBounds(j,_e,et){var tt=_getRelativeRectEdgeValue(et,j);return tt>_getRelativeRectEdgeValue(et,_e)}function _getOutOfBoundsDegree(j,_e){for(var et=_getOutOfBoundsEdges(j,_e),tt=0,rt=0,nt=et;rt=tt}function _flipToFit(j,_e,et,tt,rt,nt,ot){rt===void 0&&(rt=!1),ot===void 0&&(ot=0);var it=[RectangleEdge.left,RectangleEdge.right,RectangleEdge.bottom,RectangleEdge.top];getRTL$1()&&(it[0]*=-1,it[1]*=-1);for(var st=j,lt=tt.targetEdge,ut=tt.alignmentEdge,ct,dt=lt,ft=ut,pt=0;pt<4;pt++){if(_isEdgeInBounds(st,et,lt))return{elementRectangle:st,targetEdge:lt,alignmentEdge:ut};if(rt&&_canScrollResizeToFitEdge(_e,et,lt,nt)){switch(lt){case RectangleEdge.bottom:st.bottom=et.bottom;break;case RectangleEdge.top:st.top=et.top;break}return{elementRectangle:st,targetEdge:lt,alignmentEdge:ut,forcedInBounds:!0}}else{var gt=_getOutOfBoundsDegree(st,et);(!ct||gt0&&(it.indexOf(lt*-1)>-1?lt=lt*-1:(ut=lt,lt=it.slice(-1)[0]),st=_estimatePosition(j,_e,{targetEdge:lt,alignmentEdge:ut},ot))}}return st=_estimatePosition(j,_e,{targetEdge:dt,alignmentEdge:ft},ot),{elementRectangle:st,targetEdge:dt,alignmentEdge:ft}}function _flipAlignmentEdge(j,_e,et,tt){var rt=j.alignmentEdge,nt=j.targetEdge,ot=j.elementRectangle,it=rt*-1,st=_estimatePosition(ot,_e,{targetEdge:nt,alignmentEdge:it},et,tt);return{elementRectangle:st,targetEdge:nt,alignmentEdge:it}}function _adjustFitWithinBounds(j,_e,et,tt,rt,nt,ot,it,st){rt===void 0&&(rt=!1),ot===void 0&&(ot=0);var lt=tt.alignmentEdge,ut=tt.alignTargetEdge,ct={elementRectangle:j,targetEdge:tt.targetEdge,alignmentEdge:lt};!it&&!st&&(ct=_flipToFit(j,_e,et,tt,rt,nt,ot));var dt=_getOutOfBoundsEdges(ct.elementRectangle,et),ft=it?-ct.targetEdge:void 0;if(dt.length>0)if(ut)if(ct.alignmentEdge&&dt.indexOf(ct.alignmentEdge*-1)>-1){var pt=_flipAlignmentEdge(ct,_e,ot,st);if(_isRectangleWithinBounds(pt.elementRectangle,et))return pt;ct=_alignOutOfBoundsEdges(_getOutOfBoundsEdges(pt.elementRectangle,et),ct,et,ft)}else ct=_alignOutOfBoundsEdges(dt,ct,et,ft);else ct=_alignOutOfBoundsEdges(dt,ct,et,ft);return ct}function _alignOutOfBoundsEdges(j,_e,et,tt){for(var rt=0,nt=j;rtMath.abs(_getRelativeEdgeDifference(j,et,_e*-1))?_e*-1:_e}function _isEdgeOnBounds(j,_e,et){return et!==void 0&&_getEdgeValue(j,_e)===_getEdgeValue(et,_e)}function _finalizeElementPosition(j,_e,et,tt,rt,nt,ot,it){var st={},lt=_getRectangleFromElement(_e),ut=nt?et:et*-1,ct=rt||_getFlankingEdges(et).positiveEdge;return(!ot||_isEdgeOnBounds(j,getOppositeEdge(ct),tt))&&(ct=_finalizeReturnEdge(j,ct,tt)),st[RectangleEdge[ut]]=_getRelativeEdgeDifference(j,lt,ut),st[RectangleEdge[ct]]=_getRelativeEdgeDifference(j,lt,ct),it&&(st[RectangleEdge[ut*-1]]=_getRelativeEdgeDifference(j,lt,ut*-1),st[RectangleEdge[ct*-1]]=_getRelativeEdgeDifference(j,lt,ct*-1)),st}function _calculateActualBeakWidthInPixels(j){return Math.sqrt(j*j*2)}function _getPositionData(j,_e,et){if(j===void 0&&(j=DirectionalHint.bottomAutoEdge),et)return{alignmentEdge:et.alignmentEdge,isAuto:et.isAuto,targetEdge:et.targetEdge};var tt=__assign$4({},DirectionalDictionary[j]);return getRTL$1()?(tt.alignmentEdge&&tt.alignmentEdge%2===0&&(tt.alignmentEdge=tt.alignmentEdge*-1),_e!==void 0?DirectionalDictionary[_e]:tt):tt}function _getAlignmentData(j,_e,et,tt,rt){return j.isAuto&&(j.alignmentEdge=getClosestEdge(j.targetEdge,_e,et)),j.alignTargetEdge=rt,j}function getClosestEdge(j,_e,et){var tt=_getCenterValue(_e,j),rt=_getCenterValue(et,j),nt=_getFlankingEdges(j),ot=nt.positiveEdge,it=nt.negativeEdge;return tt<=rt?ot:it}function _positionElementWithinBounds(j,_e,et,tt,rt,nt,ot,it,st){nt===void 0&&(nt=!1);var lt=_estimatePosition(j,_e,tt,rt,st);return _isRectangleWithinBounds(lt,et)?{elementRectangle:lt,targetEdge:tt.targetEdge,alignmentEdge:tt.alignmentEdge}:_adjustFitWithinBounds(lt,_e,et,tt,nt,ot,rt,it,st)}function _finalizeBeakPosition(j,_e,et){var tt=j.targetEdge*-1,rt=new Rectangle$1(0,j.elementRectangle.width,0,j.elementRectangle.height),nt={},ot=_finalizeReturnEdge(j.elementRectangle,j.alignmentEdge?j.alignmentEdge:_getFlankingEdges(tt).positiveEdge,et),it=_getRelativeEdgeDifference(j.elementRectangle,j.targetRectangle,tt),st=it>Math.abs(_getEdgeValue(_e,tt));return nt[RectangleEdge[tt]]=_getEdgeValue(_e,tt),nt[RectangleEdge[ot]]=_getRelativeEdgeDifference(_e,rt,ot),{elementPosition:__assign$4({},nt),closestEdge:getClosestEdge(j.targetEdge,_e,rt),targetEdge:tt,hideBeak:!st}}function _positionBeak(j,_e){var et=_e.targetRectangle,tt=_getFlankingEdges(_e.targetEdge),rt=tt.positiveEdge,nt=tt.negativeEdge,ot=_getCenterValue(et,_e.targetEdge),it=new Rectangle$1(j/2,_e.elementRectangle.width-j/2,j/2,_e.elementRectangle.height-j/2),st=new Rectangle$1(0,j,0,j);return st=_moveEdge(st,_e.targetEdge*-1,-j/2),st=_centerEdgeToPoint(st,_e.targetEdge*-1,ot-_getRelativeRectEdgeValue(rt,_e.elementRectangle)),_isEdgeInBounds(st,it,rt)?_isEdgeInBounds(st,it,nt)||(st=_alignEdges(st,it,nt)):st=_alignEdges(st,it,rt),st}function _getRectangleFromElement(j){var _e=j.getBoundingClientRect();return new Rectangle$1(_e.left,_e.right,_e.top,_e.bottom)}function _getRectangleFromIRect(j){return new Rectangle$1(j.left,j.right,j.top,j.bottom)}function _getTargetRect(j,_e){var et;if(_e){if(_e.preventDefault){var tt=_e;et=new Rectangle$1(tt.clientX,tt.clientX,tt.clientY,tt.clientY)}else if(_e.getBoundingClientRect)et=_getRectangleFromElement(_e);else{var rt=_e,nt=rt.left||rt.x,ot=rt.top||rt.y,it=rt.right||nt,st=rt.bottom||ot;et=new Rectangle$1(nt,it,ot,st)}if(!_isRectangleWithinBounds(et,j))for(var lt=_getOutOfBoundsEdges(et,j),ut=0,ct=lt;ut=tt&&rt&<.top<=rt&<.bottom>=rt&&(ot={top:lt.top,left:lt.left,right:lt.right,bottom:lt.bottom,width:lt.width,height:lt.height})}return ot}function getBoundsFromTargetWindow(j,_e){return _getBoundsFromTargetWindow(j,_e)}function calculateGapSpace(j,_e,et){return _calculateGapSpace(j,_e,et)}function getRectangleFromTarget(j){return _getRectangleFromTarget(j)}function useAsync(){var j=reactExports.useRef();return j.current||(j.current=new Async),reactExports.useEffect(function(){return function(){var _e;(_e=j.current)===null||_e===void 0||_e.dispose(),j.current=void 0}},[]),j.current}function useConst$1(j){var _e=reactExports.useRef();return _e.current===void 0&&(_e.current={value:typeof j=="function"?j():j}),_e.current.value}function useBoolean(j){var _e=reactExports.useState(j),et=_e[0],tt=_e[1],rt=useConst$1(function(){return function(){tt(!0)}}),nt=useConst$1(function(){return function(){tt(!1)}}),ot=useConst$1(function(){return function(){tt(function(it){return!it})}});return[et,{setTrue:rt,setFalse:nt,toggle:ot}]}function useEventCallback$2(j){var _e=reactExports.useRef(function(){throw new Error("Cannot call an event handler while rendering")});return useIsomorphicLayoutEffect(function(){_e.current=j},[j]),useConst$1(function(){return function(){for(var et=[],tt=0;tt0&<>st&&(it=lt-st>1)}rt!==it&&nt(it)}}),function(){return et.dispose()}}),rt}function defaultFocusRestorer(j){var _e=j.originalElement,et=j.containsFocus;_e&&et&&_e!==getWindow()&&setTimeout(function(){var tt;(tt=_e.focus)===null||tt===void 0||tt.call(_e)},0)}function useRestoreFocus(j,_e){var et=j.onRestoreFocus,tt=et===void 0?defaultFocusRestorer:et,rt=reactExports.useRef(),nt=reactExports.useRef(!1);reactExports.useEffect(function(){return rt.current=getDocument().activeElement,doesElementContainFocus(_e.current)&&(nt.current=!0),function(){var ot;tt==null||tt({originalElement:rt.current,containsFocus:nt.current,documentContainsFocus:((ot=getDocument())===null||ot===void 0?void 0:ot.hasFocus())||!1}),rt.current=void 0}},[]),useOnEvent(_e,"focus",reactExports.useCallback(function(){nt.current=!0},[]),!0),useOnEvent(_e,"blur",reactExports.useCallback(function(ot){_e.current&&ot.relatedTarget&&!_e.current.contains(ot.relatedTarget)&&(nt.current=!1)},[]),!0)}function useHideSiblingNodes(j,_e){var et=String(j["aria-modal"]).toLowerCase()==="true"&&j.enableAriaHiddenSiblings;reactExports.useEffect(function(){if(et&&_e.current){var tt=modalize(_e.current);return tt}},[_e,et])}var Popup=reactExports.forwardRef(function(j,_e){var et=getPropsWithDefaults({shouldRestoreFocus:!0,enableAriaHiddenSiblings:!0},j),tt=reactExports.useRef(),rt=useMergedRefs(tt,_e);useHideSiblingNodes(et,tt),useRestoreFocus(et,tt);var nt=et.role,ot=et.className,it=et.ariaLabel,st=et.ariaLabelledBy,lt=et.ariaDescribedBy,ut=et.style,ct=et.children,dt=et.onDismiss,ft=useScrollbarAsync(et,tt),pt=reactExports.useCallback(function(vt){switch(vt.which){case KeyCodes$1.escape:dt&&(dt(vt),vt.preventDefault(),vt.stopPropagation());break}},[dt]),gt=useWindow();return useOnEvent(gt,"keydown",pt),reactExports.createElement("div",__assign$4({ref:rt},getNativeProps(et,divProperties),{className:ot,role:nt,"aria-label":it,"aria-labelledby":st,"aria-describedby":lt,onKeyDown:pt,style:__assign$4({overflowY:ft?"scroll":void 0,outline:"none"},ut)}),ct)});Popup.displayName="Popup";var _a$6,COMPONENT_NAME$2="CalloutContentBase",ANIMATIONS=(_a$6={},_a$6[RectangleEdge.top]=AnimationClassNames.slideUpIn10,_a$6[RectangleEdge.bottom]=AnimationClassNames.slideDownIn10,_a$6[RectangleEdge.left]=AnimationClassNames.slideLeftIn10,_a$6[RectangleEdge.right]=AnimationClassNames.slideRightIn10,_a$6),BEAK_ORIGIN_POSITION={top:0,left:0},OFF_SCREEN_STYLE={opacity:0,filter:"opacity(0)",pointerEvents:"none"},ARIA_ROLE_ATTRIBUTES=["role","aria-roledescription"],DEFAULT_PROPS$3={preventDismissOnLostFocus:!1,preventDismissOnScroll:!1,preventDismissOnResize:!1,isBeakVisible:!0,beakWidth:16,gapSpace:0,minPagePadding:8,directionalHint:DirectionalHint.bottomAutoEdge},getClassNames$9=classNamesFunction({disableCaching:!0});function useBounds(j,_e,et){var tt=j.bounds,rt=j.minPagePadding,nt=rt===void 0?DEFAULT_PROPS$3.minPagePadding:rt,ot=j.target,it=reactExports.useState(!1),st=it[0],lt=it[1],ut=reactExports.useRef(),ct=reactExports.useCallback(function(){if(!ut.current||st){var ft=typeof tt=="function"?et?tt(ot,et):void 0:tt;!ft&&et&&(ft=getBoundsFromTargetWindow(_e.current,et),ft={top:ft.top+nt,left:ft.left+nt,right:ft.right-nt,bottom:ft.bottom-nt,width:ft.width-nt*2,height:ft.height-nt*2}),ut.current=ft,st&<(!1)}return ut.current},[tt,nt,ot,_e,et,st]),dt=useAsync();return useOnEvent(et,"resize",dt.debounce(function(){lt(!0)},500,{leading:!0})),ct}function useMaxHeight(j,_e,et,tt){var rt,nt=j.calloutMaxHeight,ot=j.finalHeight,it=j.directionalHint,st=j.directionalHintFixed,lt=j.hidden,ut=j.gapSpace,ct=j.beakWidth,dt=j.isBeakVisible,ft=reactExports.useState(),pt=ft[0],gt=ft[1],vt=(rt=tt==null?void 0:tt.elementPosition)!==null&&rt!==void 0?rt:{},bt=vt.top,_t=vt.bottom,xt=et!=null&&et.current?getRectangleFromTarget(et.current):void 0;return reactExports.useEffect(function(){var yt,Et=(yt=_e())!==null&&yt!==void 0?yt:{},St=Et.top,$t=Et.bottom,At;(tt==null?void 0:tt.targetEdge)===RectangleEdge.top&&(xt!=null&&xt.top)&&($t=xt.top-calculateGapSpace(dt,ct,ut)),typeof bt=="number"&&$t?At=$t-bt:typeof _t=="number"&&typeof St=="number"&&$t&&(At=$t-St-_t),!nt&&!lt||nt&&At&&nt>At?gt(At):gt(nt||void 0)},[_t,nt,ot,it,st,_e,lt,tt,bt,ut,ct,dt,xt]),pt}function usePositions(j,_e,et,tt,rt,nt){var ot=reactExports.useState(),it=ot[0],st=ot[1],lt=reactExports.useRef(0),ut=reactExports.useRef(),ct=useAsync(),dt=j.hidden,ft=j.target,pt=j.finalHeight,gt=j.calloutMaxHeight,vt=j.onPositioned,bt=j.directionalHint,_t=j.hideOverflow,xt=j.preferScrollResizePositioning,yt=useWindow(),Et=reactExports.useRef(),St;Et.current!==nt.current&&(Et.current=nt.current,St=nt.current?yt==null?void 0:yt.getComputedStyle(nt.current):void 0);var $t=St==null?void 0:St.overflowY;return reactExports.useEffect(function(){if(dt)st(void 0),lt.current=0;else{var At=ct.requestAnimationFrame(function(){var wt,Ct;if(_e.current&&et){var It=__assign$4(__assign$4({},j),{target:tt.current,bounds:rt()}),Ot=et.cloneNode(!0);Ot.style.maxHeight=gt?"".concat(gt):"",Ot.style.visibility="hidden",(wt=et.parentElement)===null||wt===void 0||wt.appendChild(Ot);var Nt=ut.current===ft?it:void 0,Pt=_t||$t==="clip"||$t==="hidden",Mt=xt&&!Pt,Rt=pt?positionCard(It,_e.current,Ot,Nt):positionCallout(It,_e.current,Ot,Nt,Mt);(Ct=et.parentElement)===null||Ct===void 0||Ct.removeChild(Ot),!it&&Rt||it&&Rt&&!arePositionsEqual(it,Rt)&<.current<5?(lt.current++,st(Rt)):lt.current>0&&(lt.current=0,vt==null||vt(it))}},et);return ut.current=ft,function(){ct.cancelAnimationFrame(At),ut.current=void 0}}},[dt,bt,ct,et,gt,_e,tt,pt,rt,vt,it,j,ft,_t,xt,$t]),it}function useAutoFocus(j,_e,et){var tt=j.hidden,rt=j.setInitialFocus,nt=useAsync(),ot=!!_e;reactExports.useEffect(function(){if(!tt&&rt&&ot&&et){var it=nt.requestAnimationFrame(function(){return focusFirstChild(et)},et);return function(){return nt.cancelAnimationFrame(it)}}},[tt,ot,nt,et,rt])}function useDismissHandlers(j,_e,et,tt,rt){var nt=j.hidden,ot=j.onDismiss,it=j.preventDismissOnScroll,st=j.preventDismissOnResize,lt=j.preventDismissOnLostFocus,ut=j.dismissOnTargetClick,ct=j.shouldDismissOnWindowFocus,dt=j.preventDismissOnEvent,ft=reactExports.useRef(!1),pt=useAsync(),gt=useConst$1([function(){ft.current=!0},function(){ft.current=!1}]),vt=!!_e;return reactExports.useEffect(function(){var bt=function($t){vt&&!it&&yt($t)},_t=function($t){!st&&!(dt&&dt($t))&&(ot==null||ot($t))},xt=function($t){lt||yt($t)},yt=function($t){var At=$t.composedPath?$t.composedPath():[],wt=At.length>0?At[0]:$t.target,Ct=et.current&&!elementContains(et.current,wt);if(Ct&&ft.current){ft.current=!1;return}if(!tt.current&&Ct||$t.target!==rt&&Ct&&(!tt.current||"stopPropagation"in tt.current||ut||wt!==tt.current&&!elementContains(tt.current,wt))){if(dt&&dt($t))return;ot==null||ot($t)}},Et=function($t){ct&&(dt&&!dt($t)||!dt&&!lt)&&!(rt!=null&&rt.document.hasFocus())&&$t.relatedTarget===null&&(ot==null||ot($t))},St=new Promise(function($t){pt.setTimeout(function(){if(!nt&&rt){var At=[on(rt,"scroll",bt,!0),on(rt,"resize",_t,!0),on(rt.document.documentElement,"focus",xt,!0),on(rt.document.documentElement,"click",xt,!0),on(rt,"blur",Et,!0)];$t(function(){At.forEach(function(wt){return wt()})})}},0)});return function(){St.then(function($t){return $t()})}},[nt,pt,et,tt,rt,ot,ct,ut,lt,st,it,vt,dt]),gt}var CalloutContentBase=reactExports.memo(reactExports.forwardRef(function(j,_e){var et=getPropsWithDefaults(DEFAULT_PROPS$3,j),tt=et.styles,rt=et.style,nt=et.ariaLabel,ot=et.ariaDescribedBy,it=et.ariaLabelledBy,st=et.className,lt=et.isBeakVisible,ut=et.children,ct=et.beakWidth,dt=et.calloutWidth,ft=et.calloutMaxWidth,pt=et.calloutMinWidth,gt=et.doNotLayer,vt=et.finalHeight,bt=et.hideOverflow,_t=bt===void 0?!!vt:bt,xt=et.backgroundColor,yt=et.calloutMaxHeight,Et=et.onScroll,St=et.shouldRestoreFocus,$t=St===void 0?!0:St,At=et.target,wt=et.hidden,Ct=et.onLayerMounted,It=et.popupProps,Ot=reactExports.useRef(null),Nt=reactExports.useRef(null),Pt=useMergedRefs(Nt,It==null?void 0:It.ref),Mt=reactExports.useState(null),Rt=Mt[0],Lt=Mt[1],jt=reactExports.useCallback(function(wr){Lt(wr)},[]),Gt=useMergedRefs(Ot,_e),Vt=useTarget(et.target,{current:Rt}),Yt=Vt[0],Xt=Vt[1],rr=useBounds(et,Yt,Xt),cr=usePositions(et,Ot,Rt,Yt,rr,Pt),vr=useMaxHeight(et,rr,Yt,cr),Tr=useDismissHandlers(et,cr,Ot,Yt,Xt),gr=Tr[0],Er=Tr[1],qt=(cr==null?void 0:cr.elementPosition.top)&&(cr==null?void 0:cr.elementPosition.bottom),ir=__assign$4(__assign$4({},cr==null?void 0:cr.elementPosition),{maxHeight:vr});if(qt&&(ir.bottom=void 0),useAutoFocus(et,cr,Rt),reactExports.useEffect(function(){wt||Ct==null||Ct()},[wt]),!Xt)return null;var hr=_t,nr=lt&&!!At,mr=getClassNames$9(tt,{theme:et.theme,className:st,overflowYHidden:hr,calloutWidth:dt,positions:cr,beakWidth:ct,backgroundColor:xt,calloutMaxWidth:ft,calloutMinWidth:pt,doNotLayer:gt}),Ar=__assign$4(__assign$4({maxHeight:yt||"100%"},rt),hr&&{overflowY:"hidden"}),Or=et.hidden?{visibility:"hidden"}:void 0;return reactExports.createElement("div",{ref:Gt,className:mr.container,style:Or},reactExports.createElement("div",__assign$4({},getNativeProps(et,divProperties,ARIA_ROLE_ATTRIBUTES),{className:css$3(mr.root,cr&&cr.targetEdge&&ANIMATIONS[cr.targetEdge]),style:cr?__assign$4({},ir):OFF_SCREEN_STYLE,tabIndex:-1,ref:jt}),nr&&reactExports.createElement("div",{className:mr.beak,style:getBeakPosition(cr)}),nr&&reactExports.createElement("div",{className:mr.beakCurtain}),reactExports.createElement(Popup,__assign$4({role:et.role,"aria-roledescription":et["aria-roledescription"],ariaDescribedBy:ot,ariaLabel:nt,ariaLabelledBy:it,className:mr.calloutMain,onDismiss:et.onDismiss,onMouseDown:gr,onMouseUp:Er,onRestoreFocus:et.onRestoreFocus,onScroll:Et,shouldRestoreFocus:$t,style:Ar},It,{ref:Pt}),ut)))}),function(j,_e){return!_e.shouldUpdateWhenHidden&&j.hidden&&_e.hidden?!0:shallowCompare(j,_e)});function getBeakPosition(j){var _e,et,tt=__assign$4(__assign$4({},(_e=j==null?void 0:j.beakPosition)===null||_e===void 0?void 0:_e.elementPosition),{display:!((et=j==null?void 0:j.beakPosition)===null||et===void 0)&&et.hideBeak?"none":void 0});return!tt.top&&!tt.bottom&&!tt.left&&!tt.right&&(tt.left=BEAK_ORIGIN_POSITION.left,tt.top=BEAK_ORIGIN_POSITION.top),tt}function arePositionsEqual(j,_e){return comparePositions(j.elementPosition,_e.elementPosition)&&comparePositions(j.beakPosition.elementPosition,_e.beakPosition.elementPosition)}function comparePositions(j,_e){for(var et in _e)if(_e.hasOwnProperty(et)){var tt=j[et],rt=_e[et];if(tt!==void 0&&rt!==void 0){if(tt.toFixed(2)!==rt.toFixed(2))return!1}else return!1}return!0}CalloutContentBase.displayName=COMPONENT_NAME$2;function getBeakStyle(j){return{height:j,width:j}}var GlobalClassNames$8={container:"ms-Callout-container",root:"ms-Callout",beak:"ms-Callout-beak",beakCurtain:"ms-Callout-beakCurtain",calloutMain:"ms-Callout-main"},getStyles$9=function(j){var _e,et=j.theme,tt=j.className,rt=j.overflowYHidden,nt=j.calloutWidth,ot=j.beakWidth,it=j.backgroundColor,st=j.calloutMaxWidth,lt=j.calloutMinWidth,ut=j.doNotLayer,ct=getGlobalClassNames(GlobalClassNames$8,et),dt=et.semanticColors,ft=et.effects;return{container:[ct.container,{position:"relative"}],root:[ct.root,et.fonts.medium,{position:"absolute",display:"flex",zIndex:ut?ZIndexes.Layer:void 0,boxSizing:"border-box",borderRadius:ft.roundedCorner2,boxShadow:ft.elevation16,selectors:(_e={},_e[HighContrastSelector]={borderWidth:1,borderStyle:"solid",borderColor:"WindowText"},_e)},focusClear(),tt,!!nt&&{width:nt},!!st&&{maxWidth:st},!!lt&&{minWidth:lt}],beak:[ct.beak,{position:"absolute",backgroundColor:dt.menuBackground,boxShadow:"inherit",border:"inherit",boxSizing:"border-box",transform:"rotate(45deg)"},getBeakStyle(ot),it&&{backgroundColor:it}],beakCurtain:[ct.beakCurtain,{position:"absolute",top:0,right:0,bottom:0,left:0,backgroundColor:dt.menuBackground,borderRadius:ft.roundedCorner2}],calloutMain:[ct.calloutMain,{backgroundColor:dt.menuBackground,overflowX:"hidden",overflowY:"auto",position:"relative",width:"100%",borderRadius:ft.roundedCorner2},rt&&{overflowY:"hidden"},it&&{backgroundColor:it}]}},CalloutContent=styled(CalloutContentBase,getStyles$9,void 0,{scope:"CalloutContent"});const PortalCompatContext=reactExports.createContext(void 0),portalCompatContextDefaultValue=()=>()=>{};PortalCompatContext.Provider;function usePortalCompat(){var j;return(j=reactExports.useContext(PortalCompatContext))!==null&&j!==void 0?j:portalCompatContextDefaultValue}var getClassNames$8=classNamesFunction(),getFabricTheme=memoizeFunction(function(j,_e){return createTheme(__assign$4(__assign$4({},j),{rtl:_e}))}),getDir=function(j){var _e=j.theme,et=j.dir,tt=getRTL$1(_e)?"rtl":"ltr",rt=getRTL$1()?"rtl":"ltr",nt=et||tt;return{rootDir:nt!==tt||nt!==rt?nt:et,needsTheme:nt!==tt}},FabricBase=reactExports.forwardRef(function(j,_e){var et=j.className,tt=j.theme,rt=j.applyTheme,nt=j.applyThemeToBody,ot=j.styles,it=getClassNames$8(ot,{theme:tt,applyTheme:rt,className:et}),st=reactExports.useRef(null);return useApplyThemeToBody(nt,it,st),reactExports.createElement(reactExports.Fragment,null,useRenderedContent(j,it,st,_e))});FabricBase.displayName="FabricBase";function useRenderedContent(j,_e,et,tt){var rt=_e.root,nt=j.as,ot=nt===void 0?"div":nt,it=j.dir,st=j.theme,lt=getNativeProps(j,divProperties,["dir"]),ut=getDir(j),ct=ut.rootDir,dt=ut.needsTheme,ft=reactExports.createElement(FocusRectsProvider,{providerRef:et},reactExports.createElement(ot,__assign$4({dir:ct},lt,{className:rt,ref:useMergedRefs(et,tt)})));return dt&&(ft=reactExports.createElement(Customizer,{settings:{theme:getFabricTheme(st,it==="rtl")}},ft)),ft}function useApplyThemeToBody(j,_e,et){var tt=_e.bodyThemed;return reactExports.useEffect(function(){if(j){var rt=getDocument(et.current);if(rt)return rt.body.classList.add(tt),function(){rt.body.classList.remove(tt)}}},[tt,j,et]),et}var inheritFont={fontFamily:"inherit"},GlobalClassNames$7={root:"ms-Fabric",bodyThemed:"ms-Fabric-bodyThemed"},getStyles$8=function(j){var _e=j.applyTheme,et=j.className,tt=j.preventBlanketFontInheritance,rt=j.theme,nt=getGlobalClassNames(GlobalClassNames$7,rt);return{root:[nt.root,rt.fonts.medium,{color:rt.palette.neutralPrimary},!tt&&{"& button":inheritFont,"& input":inheritFont,"& textarea":inheritFont},_e&&{color:rt.semanticColors.bodyText,backgroundColor:rt.semanticColors.bodyBackground},et],bodyThemed:[{backgroundColor:rt.semanticColors.bodyBackground}]}},Fabric=styled(FabricBase,getStyles$8,void 0,{scope:"Fabric"}),_layersByHostId={},_layerHostsById={},defaultHostId="fluent-default-layer-host",_defaultHostSelector="#".concat(defaultHostId);function registerLayer(j,_e){_layersByHostId[j]||(_layersByHostId[j]=[]),_layersByHostId[j].push(_e);var et=_layerHostsById[j];if(et)for(var tt=0,rt=et;tt=0&&(et.splice(tt,1),et.length===0&&delete _layersByHostId[j])}var rt=_layerHostsById[j];if(rt)for(var nt=0,ot=rt;nt0&&_e.current.naturalHeight>0||_e.current.complete&&SVG_REGEX.test(nt):!1;ct&&st(ImageLoadState.loaded)}}),reactExports.useEffect(function(){et==null||et(it)},[it]);var lt=reactExports.useCallback(function(ct){tt==null||tt(ct),nt&&st(ImageLoadState.loaded)},[nt,tt]),ut=reactExports.useCallback(function(ct){rt==null||rt(ct),st(ImageLoadState.error)},[rt]);return[it,lt,ut]}var ImageBase=reactExports.forwardRef(function(j,_e){var et=reactExports.useRef(),tt=reactExports.useRef(),rt=useLoadState(j,tt),nt=rt[0],ot=rt[1],it=rt[2],st=getNativeProps(j,imgProperties,["width","height"]),lt=j.src,ut=j.alt,ct=j.width,dt=j.height,ft=j.shouldFadeIn,pt=ft===void 0?!0:ft,gt=j.shouldStartVisible,vt=j.className,bt=j.imageFit,_t=j.role,xt=j.maximizeFrame,yt=j.styles,Et=j.theme,St=j.loading,$t=useCoverStyle(j,nt,tt,et),At=getClassNames$6(yt,{theme:Et,className:vt,width:ct,height:dt,maximizeFrame:xt,shouldFadeIn:pt,shouldStartVisible:gt,isLoaded:nt===ImageLoadState.loaded||nt===ImageLoadState.notLoaded&&j.shouldStartVisible,isLandscape:$t===ImageCoverStyle.landscape,isCenter:bt===ImageFit.center,isCenterContain:bt===ImageFit.centerContain,isCenterCover:bt===ImageFit.centerCover,isContain:bt===ImageFit.contain,isCover:bt===ImageFit.cover,isNone:bt===ImageFit.none,isError:nt===ImageLoadState.error,isNotImageFit:bt===void 0});return reactExports.createElement("div",{className:At.root,style:{width:ct,height:dt},ref:et},reactExports.createElement("img",__assign$4({},st,{onLoad:ot,onError:it,key:KEY_PREFIX+j.src||"",className:At.image,ref:useMergedRefs(tt,_e),src:lt,alt:ut,role:_t,loading:St})))});ImageBase.displayName="ImageBase";function useCoverStyle(j,_e,et,tt){var rt=reactExports.useRef(_e),nt=reactExports.useRef();return(nt===void 0||rt.current===ImageLoadState.notLoaded&&_e===ImageLoadState.loaded)&&(nt.current=computeCoverStyle(j,_e,et,tt)),rt.current=_e,nt.current}function computeCoverStyle(j,_e,et,tt){var rt=j.imageFit,nt=j.width,ot=j.height;if(j.coverStyle!==void 0)return j.coverStyle;if(_e===ImageLoadState.loaded&&(rt===ImageFit.cover||rt===ImageFit.contain||rt===ImageFit.centerContain||rt===ImageFit.centerCover)&&et.current&&tt.current){var it=void 0;typeof nt=="number"&&typeof ot=="number"&&rt!==ImageFit.centerContain&&rt!==ImageFit.centerCover?it=nt/ot:it=tt.current.clientWidth/tt.current.clientHeight;var st=et.current.naturalWidth/et.current.naturalHeight;if(st>it)return ImageCoverStyle.landscape}return ImageCoverStyle.portrait}var GlobalClassNames$5={root:"ms-Image",rootMaximizeFrame:"ms-Image--maximizeFrame",image:"ms-Image-image",imageCenter:"ms-Image-image--center",imageContain:"ms-Image-image--contain",imageCover:"ms-Image-image--cover",imageCenterContain:"ms-Image-image--centerContain",imageCenterCover:"ms-Image-image--centerCover",imageNone:"ms-Image-image--none",imageLandscape:"ms-Image-image--landscape",imagePortrait:"ms-Image-image--portrait"},getStyles$6=function(j){var _e=j.className,et=j.width,tt=j.height,rt=j.maximizeFrame,nt=j.isLoaded,ot=j.shouldFadeIn,it=j.shouldStartVisible,st=j.isLandscape,lt=j.isCenter,ut=j.isContain,ct=j.isCover,dt=j.isCenterContain,ft=j.isCenterCover,pt=j.isNone,gt=j.isError,vt=j.isNotImageFit,bt=j.theme,_t=getGlobalClassNames(GlobalClassNames$5,bt),xt={position:"absolute",left:"50% /* @noflip */",top:"50%",transform:"translate(-50%,-50%)"},yt=getWindow(),Et=yt!==void 0&&yt.navigator.msMaxTouchPoints===void 0,St=ut&&st||ct&&!st?{width:"100%",height:"auto"}:{width:"auto",height:"100%"};return{root:[_t.root,bt.fonts.medium,{overflow:"hidden"},rt&&[_t.rootMaximizeFrame,{height:"100%",width:"100%"}],nt&&ot&&!it&&AnimationClassNames.fadeIn400,(lt||ut||ct||dt||ft)&&{position:"relative"},_e],image:[_t.image,{display:"block",opacity:0},nt&&["is-loaded",{opacity:1}],lt&&[_t.imageCenter,xt],ut&&[_t.imageContain,Et&&{width:"100%",height:"100%",objectFit:"contain"},!Et&&St,!Et&&xt],ct&&[_t.imageCover,Et&&{width:"100%",height:"100%",objectFit:"cover"},!Et&&St,!Et&&xt],dt&&[_t.imageCenterContain,st&&{maxWidth:"100%"},!st&&{maxHeight:"100%"},xt],ft&&[_t.imageCenterCover,st&&{maxHeight:"100%"},!st&&{maxWidth:"100%"},xt],pt&&[_t.imageNone,{width:"auto",height:"auto"}],vt&&[!!et&&!tt&&{height:"auto",width:"100%"},!et&&!!tt&&{height:"100%",width:"auto"},!!et&&!!tt&&{height:"100%",width:"100%"}],st&&_t.imageLandscape,!st&&_t.imagePortrait,!nt&&"is-notLoaded",ot&&"is-fadeIn",gt&&"is-error"]}},Image$1=styled(ImageBase,getStyles$6,void 0,{scope:"Image"},!0);Image$1.displayName="Image";var classNames$1=mergeStyleSets({root:{display:"inline-block"},placeholder:["ms-Icon-placeHolder",{width:"1em"}],image:["ms-Icon-imageContainer",{overflow:"hidden"}]}),MS_ICON="ms-Icon",getStyles$5=function(j){var _e=j.className,et=j.iconClassName,tt=j.isPlaceholder,rt=j.isImage,nt=j.styles;return{root:[tt&&classNames$1.placeholder,classNames$1.root,rt&&classNames$1.image,et,_e,nt&&nt.root,nt&&nt.imageContainer]}},getIconContent=memoizeFunction(function(j){var _e=getIcon(j)||{subset:{},code:void 0},et=_e.code,tt=_e.subset;return et?{children:et,iconClassName:tt.className,fontFamily:tt.fontFace&&tt.fontFace.fontFamily,mergeImageProps:tt.mergeImageProps}:null},void 0,!0),FontIcon=function(j){var _e=j.iconName,et=j.className,tt=j.style,rt=tt===void 0?{}:tt,nt=getIconContent(_e)||{},ot=nt.iconClassName,it=nt.children,st=nt.fontFamily,lt=nt.mergeImageProps,ut=getNativeProps(j,htmlElementProperties),ct=j["aria-label"]||j.title,dt=j["aria-label"]||j["aria-labelledby"]||j.title?{role:lt?void 0:"img"}:{"aria-hidden":!0},ft=it;return lt&&typeof it=="object"&&typeof it.props=="object"&&ct&&(ft=reactExports.cloneElement(it,{alt:ct})),reactExports.createElement("i",__assign$4({"data-icon-name":_e},dt,ut,lt?{title:void 0,"aria-label":void 0}:{},{className:css$3(MS_ICON,classNames$1.root,ot,!_e&&classNames$1.placeholder,et),style:__assign$4({fontFamily:st},rt)}),ft)};memoizeFunction(function(j,_e,et){return FontIcon({iconName:j,className:_e,"aria-label":et})});var getClassNames$5=classNamesFunction({cacheSize:100}),IconBase=function(j){__extends$3(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt._onImageLoadingStateChange=function(rt){tt.props.imageProps&&tt.props.imageProps.onLoadingStateChange&&tt.props.imageProps.onLoadingStateChange(rt),rt===ImageLoadState.error&&tt.setState({imageLoadError:!0})},tt.state={imageLoadError:!1},tt}return _e.prototype.render=function(){var et=this.props,tt=et.children,rt=et.className,nt=et.styles,ot=et.iconName,it=et.imageErrorAs,st=et.theme,lt=typeof ot=="string"&&ot.length===0,ut=!!this.props.imageProps||this.props.iconType===IconType.image||this.props.iconType===IconType.Image,ct=getIconContent(ot)||{},dt=ct.iconClassName,ft=ct.children,pt=ct.mergeImageProps,gt=getClassNames$5(nt,{theme:st,className:rt,iconClassName:dt,isImage:ut,isPlaceholder:lt}),vt=ut?"span":"i",bt=getNativeProps(this.props,htmlElementProperties,["aria-label"]),_t=this.state.imageLoadError,xt=__assign$4(__assign$4({},this.props.imageProps),{onLoadingStateChange:this._onImageLoadingStateChange}),yt=_t&&it||Image$1,Et=this.props["aria-label"]||this.props.ariaLabel,St=xt.alt||Et||this.props.title,$t=!!(St||this.props["aria-labelledby"]||xt["aria-label"]||xt["aria-labelledby"]),At=$t?{role:ut||pt?void 0:"img","aria-label":ut||pt?void 0:St}:{"aria-hidden":!0},wt=ft;return pt&&ft&&typeof ft=="object"&&St&&(wt=reactExports.cloneElement(ft,{alt:St})),reactExports.createElement(vt,__assign$4({"data-icon-name":ot},At,bt,pt?{title:void 0,"aria-label":void 0}:{},{className:gt.root}),ut?reactExports.createElement(yt,__assign$4({},xt)):tt||wt)},_e}(reactExports.Component),Icon=styled(IconBase,getStyles$5,void 0,{scope:"Icon"},!0);Icon.displayName="Icon";var FocusZoneTabbableElements={none:0,all:1,inputOnly:2},FocusZoneDirection;(function(j){j[j.vertical=0]="vertical",j[j.horizontal=1]="horizontal",j[j.bidirectional=2]="bidirectional",j[j.domOrder=3]="domOrder"})(FocusZoneDirection||(FocusZoneDirection={}));var IS_FOCUSABLE_ATTRIBUTE="data-is-focusable",IS_ENTER_DISABLED_ATTRIBUTE="data-disable-click-on-enter",FOCUSZONE_ID_ATTRIBUTE="data-focuszone-id",TABINDEX="tabindex",NO_VERTICAL_WRAP="data-no-vertical-wrap",NO_HORIZONTAL_WRAP="data-no-horizontal-wrap",LARGE_DISTANCE_FROM_CENTER=999999999,LARGE_NEGATIVE_DISTANCE_FROM_CENTER=-999999999,focusZoneStyles,focusZoneClass="ms-FocusZone";function raiseClickFromKeyboardEvent(j,_e){var et;typeof MouseEvent=="function"?et=new MouseEvent("click",{ctrlKey:_e==null?void 0:_e.ctrlKey,metaKey:_e==null?void 0:_e.metaKey,shiftKey:_e==null?void 0:_e.shiftKey,altKey:_e==null?void 0:_e.altKey,bubbles:_e==null?void 0:_e.bubbles,cancelable:_e==null?void 0:_e.cancelable}):(et=document.createEvent("MouseEvents"),et.initMouseEvent("click",_e?_e.bubbles:!1,_e?_e.cancelable:!1,window,0,0,0,0,0,_e?_e.ctrlKey:!1,_e?_e.altKey:!1,_e?_e.shiftKey:!1,_e?_e.metaKey:!1,0,null)),j.dispatchEvent(et)}function getRootClass(){return focusZoneStyles||(focusZoneStyles=mergeStyles$1({selectors:{":focus":{outline:"none"}}},focusZoneClass)),focusZoneStyles}var _allInstances={},_outerZones=new Set,ALLOWED_INPUT_TYPES=["text","number","password","email","tel","url","search","textarea"],ALLOW_VIRTUAL_ELEMENTS=!1,FocusZone=function(j){__extends$3(_e,j);function _e(et){var tt=this,rt,nt,ot,it;tt=j.call(this,et)||this,tt._root=reactExports.createRef(),tt._mergedRef=createMergedRef(),tt._onFocus=function(lt){if(!tt._portalContainsElement(lt.target)){var ut=tt.props,ct=ut.onActiveElementChanged,dt=ut.doNotAllowFocusEventToPropagate,ft=ut.stopFocusPropagation,pt=ut.onFocusNotification,gt=ut.onFocus,vt=ut.shouldFocusInnerElementWhenReceivedFocus,bt=ut.defaultTabbableElement,_t=tt._isImmediateDescendantOfZone(lt.target),xt;if(_t)xt=lt.target;else for(var yt=lt.target;yt&&yt!==tt._root.current;){if(isElementTabbable(yt)&&tt._isImmediateDescendantOfZone(yt)){xt=yt;break}yt=getParent(yt,ALLOW_VIRTUAL_ELEMENTS)}if(vt&<.target===tt._root.current){var Et=bt&&typeof bt=="function"&&tt._root.current&&bt(tt._root.current);Et&&isElementTabbable(Et)?(xt=Et,Et.focus()):(tt.focus(!0),tt._activeElement&&(xt=null))}var St=!tt._activeElement;xt&&xt!==tt._activeElement&&((_t||St)&&tt._setFocusAlignment(xt,!0,!0),tt._activeElement=xt,St&&tt._updateTabIndexes()),ct&&ct(tt._activeElement,lt),(ft||dt)&<.stopPropagation(),gt?gt(lt):pt&&pt()}},tt._onBlur=function(){tt._setParkedFocus(!1)},tt._onMouseDown=function(lt){if(!tt._portalContainsElement(lt.target)){var ut=tt.props.disabled;if(!ut){for(var ct=lt.target,dt=[];ct&&ct!==tt._root.current;)dt.push(ct),ct=getParent(ct,ALLOW_VIRTUAL_ELEMENTS);for(;dt.length&&(ct=dt.pop(),ct&&isElementTabbable(ct)&&tt._setActiveElement(ct,!0),!isElementFocusZone(ct)););}}},tt._onKeyDown=function(lt,ut){if(!tt._portalContainsElement(lt.target)){var ct=tt.props,dt=ct.direction,ft=ct.disabled,pt=ct.isInnerZoneKeystroke,gt=ct.pagingSupportDisabled,vt=ct.shouldEnterInnerZone;if(!ft&&(tt.props.onKeyDown&&tt.props.onKeyDown(lt),!lt.isDefaultPrevented()&&!(tt._getDocument().activeElement===tt._root.current&&tt._isInnerZone))){if((vt&&vt(lt)||pt&&pt(lt))&&tt._isImmediateDescendantOfZone(lt.target)){var bt=tt._getFirstInnerZone();if(bt){if(!bt.focus(!0))return}else if(isElementFocusSubZone(lt.target)){if(!tt.focusElement(getNextElement(lt.target,lt.target.firstChild,!0)))return}else return}else{if(lt.altKey)return;switch(lt.which){case KeyCodes$1.space:if(tt._shouldRaiseClicksOnSpace&&tt._tryInvokeClickForFocusable(lt.target,lt))break;return;case KeyCodes$1.left:if(dt!==FocusZoneDirection.vertical&&(tt._preventDefaultWhenHandled(lt),tt._moveFocusLeft(ut)))break;return;case KeyCodes$1.right:if(dt!==FocusZoneDirection.vertical&&(tt._preventDefaultWhenHandled(lt),tt._moveFocusRight(ut)))break;return;case KeyCodes$1.up:if(dt!==FocusZoneDirection.horizontal&&(tt._preventDefaultWhenHandled(lt),tt._moveFocusUp()))break;return;case KeyCodes$1.down:if(dt!==FocusZoneDirection.horizontal&&(tt._preventDefaultWhenHandled(lt),tt._moveFocusDown()))break;return;case KeyCodes$1.pageDown:if(!gt&&tt._moveFocusPaging(!0))break;return;case KeyCodes$1.pageUp:if(!gt&&tt._moveFocusPaging(!1))break;return;case KeyCodes$1.tab:if(tt.props.allowTabKey||tt.props.handleTabKey===FocusZoneTabbableElements.all||tt.props.handleTabKey===FocusZoneTabbableElements.inputOnly&&tt._isElementInput(lt.target)){var _t=!1;if(tt._processingTabKey=!0,dt===FocusZoneDirection.vertical||!tt._shouldWrapFocus(tt._activeElement,NO_HORIZONTAL_WRAP))_t=lt.shiftKey?tt._moveFocusUp():tt._moveFocusDown();else{var xt=getRTL$1(ut)?!lt.shiftKey:lt.shiftKey;_t=xt?tt._moveFocusLeft(ut):tt._moveFocusRight(ut)}if(tt._processingTabKey=!1,_t)break;tt.props.shouldResetActiveElementWhenTabFromZone&&(tt._activeElement=null)}return;case KeyCodes$1.home:if(tt._isContentEditableElement(lt.target)||tt._isElementInput(lt.target)&&!tt._shouldInputLoseFocus(lt.target,!1))return!1;var yt=tt._root.current&&tt._root.current.firstChild;if(tt._root.current&&yt&&tt.focusElement(getNextElement(tt._root.current,yt,!0)))break;return;case KeyCodes$1.end:if(tt._isContentEditableElement(lt.target)||tt._isElementInput(lt.target)&&!tt._shouldInputLoseFocus(lt.target,!0))return!1;var Et=tt._root.current&&tt._root.current.lastChild;if(tt._root.current&&tt.focusElement(getPreviousElement(tt._root.current,Et,!0,!0,!0)))break;return;case KeyCodes$1.enter:if(tt._shouldRaiseClicksOnEnter&&tt._tryInvokeClickForFocusable(lt.target,lt))break;return;default:return}}lt.preventDefault(),lt.stopPropagation()}}},tt._getHorizontalDistanceFromCenter=function(lt,ut,ct){var dt=tt._focusAlignment.left||tt._focusAlignment.x||0,ft=Math.floor(ct.top),pt=Math.floor(ut.bottom),gt=Math.floor(ct.bottom),vt=Math.floor(ut.top),bt=lt&&ft>pt,_t=!lt&>=ct.left&&dt<=ct.left+ct.width?0:Math.abs(ct.left+ct.width/2-dt):tt._shouldWrapFocus(tt._activeElement,NO_VERTICAL_WRAP)?LARGE_DISTANCE_FROM_CENTER:LARGE_NEGATIVE_DISTANCE_FROM_CENTER},initializeComponentRef(tt),tt._id=getId("FocusZone"),tt._focusAlignment={left:0,top:0},tt._processingTabKey=!1;var st=(nt=(rt=et.shouldRaiseClicks)!==null&&rt!==void 0?rt:_e.defaultProps.shouldRaiseClicks)!==null&&nt!==void 0?nt:!0;return tt._shouldRaiseClicksOnEnter=(ot=et.shouldRaiseClicksOnEnter)!==null&&ot!==void 0?ot:st,tt._shouldRaiseClicksOnSpace=(it=et.shouldRaiseClicksOnSpace)!==null&&it!==void 0?it:st,tt}return _e.getOuterZones=function(){return _outerZones.size},_e._onKeyDownCapture=function(et){et.which===KeyCodes$1.tab&&_outerZones.forEach(function(tt){return tt._updateTabIndexes()})},_e.prototype.componentDidMount=function(){var et=this._root.current;if(_allInstances[this._id]=this,et){for(var tt=getParent(et,ALLOW_VIRTUAL_ELEMENTS);tt&&tt!==this._getDocument().body&&tt.nodeType===1;){if(isElementFocusZone(tt)){this._isInnerZone=!0;break}tt=getParent(tt,ALLOW_VIRTUAL_ELEMENTS)}this._isInnerZone||(_outerZones.add(this),this._root.current&&this._root.current.addEventListener("keydown",_e._onKeyDownCapture,!0)),this._root.current&&this._root.current.addEventListener("blur",this._onBlur,!0),this._updateTabIndexes(),this.props.defaultTabbableElement&&typeof this.props.defaultTabbableElement=="string"?this._activeElement=this._getDocument().querySelector(this.props.defaultTabbableElement):this.props.defaultActiveElement&&(this._activeElement=this._getDocument().querySelector(this.props.defaultActiveElement)),this.props.shouldFocusOnMount&&this.focus()}},_e.prototype.componentDidUpdate=function(){var et=this._root.current,tt=this._getDocument();if((this._activeElement&&!elementContains(this._root.current,this._activeElement,ALLOW_VIRTUAL_ELEMENTS)||this._defaultFocusElement&&!elementContains(this._root.current,this._defaultFocusElement,ALLOW_VIRTUAL_ELEMENTS))&&(this._activeElement=null,this._defaultFocusElement=null,this._updateTabIndexes()),!this.props.preventFocusRestoration&&tt&&this._lastIndexPath&&(tt.activeElement===tt.body||tt.activeElement===null||tt.activeElement===et)){var rt=getFocusableByIndexPath(et,this._lastIndexPath);rt?(this._setActiveElement(rt,!0),rt.focus(),this._setParkedFocus(!1)):this._setParkedFocus(!0)}},_e.prototype.componentWillUnmount=function(){delete _allInstances[this._id],this._isInnerZone||(_outerZones.delete(this),this._root.current&&this._root.current.removeEventListener("keydown",_e._onKeyDownCapture,!0)),this._root.current&&this._root.current.removeEventListener("blur",this._onBlur,!0),this._activeElement=null,this._defaultFocusElement=null},_e.prototype.render=function(){var et=this,tt=this.props,rt=tt.as,nt=tt.elementType,ot=tt.rootProps,it=tt.ariaDescribedBy,st=tt.ariaLabelledBy,lt=tt.className,ut=getNativeProps(this.props,htmlElementProperties),ct=rt||nt||"div";this._evaluateFocusBeforeRender();var dt=getTheme();return reactExports.createElement(ct,__assign$4({"aria-labelledby":st,"aria-describedby":it},ut,ot,{className:css$3(getRootClass(),lt),ref:this._mergedRef(this.props.elementRef,this._root),"data-focuszone-id":this._id,onKeyDown:function(ft){return et._onKeyDown(ft,dt)},onFocus:this._onFocus,onMouseDownCapture:this._onMouseDown}),this.props.children)},_e.prototype.focus=function(et,tt){if(et===void 0&&(et=!1),tt===void 0&&(tt=!1),this._root.current)if(!et&&this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE)==="true"&&this._isInnerZone){var rt=this._getOwnerZone(this._root.current);if(rt!==this._root.current){var nt=_allInstances[rt.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];return!!nt&&nt.focusElement(this._root.current)}return!1}else{if(!et&&this._activeElement&&elementContains(this._root.current,this._activeElement)&&isElementTabbable(this._activeElement)&&(!tt||isElementVisibleAndNotHidden(this._activeElement)))return this._activeElement.focus(),!0;var ot=this._root.current.firstChild;return this.focusElement(getNextElement(this._root.current,ot,!0,void 0,void 0,void 0,void 0,void 0,tt))}return!1},_e.prototype.focusLast=function(){if(this._root.current){var et=this._root.current&&this._root.current.lastChild;return this.focusElement(getPreviousElement(this._root.current,et,!0,!0,!0))}return!1},_e.prototype.focusElement=function(et,tt){var rt=this.props,nt=rt.onBeforeFocus,ot=rt.shouldReceiveFocus;return ot&&!ot(et)||nt&&!nt(et)?!1:et?(this._setActiveElement(et,tt),this._activeElement&&this._activeElement.focus(),!0):!1},_e.prototype.setFocusAlignment=function(et){this._focusAlignment=et},Object.defineProperty(_e.prototype,"defaultFocusElement",{get:function(){return this._defaultFocusElement},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"activeElement",{get:function(){return this._activeElement},enumerable:!1,configurable:!0}),_e.prototype._evaluateFocusBeforeRender=function(){var et=this._root.current,tt=this._getDocument();if(tt){var rt=tt.activeElement;if(rt!==et){var nt=elementContains(et,rt,!1);this._lastIndexPath=nt?getElementIndexPath(et,rt):void 0}}},_e.prototype._setParkedFocus=function(et){var tt=this._root.current;tt&&this._isParked!==et&&(this._isParked=et,et?(this.props.allowFocusRoot||(this._parkedTabIndex=tt.getAttribute("tabindex"),tt.setAttribute("tabindex","-1")),tt.focus()):this.props.allowFocusRoot||(this._parkedTabIndex?(tt.setAttribute("tabindex",this._parkedTabIndex),this._parkedTabIndex=void 0):tt.removeAttribute("tabindex")))},_e.prototype._setActiveElement=function(et,tt){var rt=this._activeElement;this._activeElement=et,rt&&(isElementFocusZone(rt)&&this._updateTabIndexes(rt),rt.tabIndex=-1),this._activeElement&&((!this._focusAlignment||tt)&&this._setFocusAlignment(et,!0,!0),this._activeElement.tabIndex=0)},_e.prototype._preventDefaultWhenHandled=function(et){this.props.preventDefaultWhenHandled&&et.preventDefault()},_e.prototype._tryInvokeClickForFocusable=function(et,tt){var rt=et;if(rt===this._root.current)return!1;do{if(rt.tagName==="BUTTON"||rt.tagName==="A"||rt.tagName==="INPUT"||rt.tagName==="TEXTAREA"||rt.tagName==="SUMMARY")return!1;if(this._isImmediateDescendantOfZone(rt)&&rt.getAttribute(IS_FOCUSABLE_ATTRIBUTE)==="true"&&rt.getAttribute(IS_ENTER_DISABLED_ATTRIBUTE)!=="true")return raiseClickFromKeyboardEvent(rt,tt),!0;rt=getParent(rt,ALLOW_VIRTUAL_ELEMENTS)}while(rt!==this._root.current);return!1},_e.prototype._getFirstInnerZone=function(et){if(et=et||this._activeElement||this._root.current,!et)return null;if(isElementFocusZone(et))return _allInstances[et.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];for(var tt=et.firstElementChild;tt;){if(isElementFocusZone(tt))return _allInstances[tt.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];var rt=this._getFirstInnerZone(tt);if(rt)return rt;tt=tt.nextElementSibling}return null},_e.prototype._moveFocus=function(et,tt,rt,nt){nt===void 0&&(nt=!0);var ot=this._activeElement,it=-1,st=void 0,lt=!1,ut=this.props.direction===FocusZoneDirection.bidirectional;if(!ot||!this._root.current||this._isElementInput(ot)&&!this._shouldInputLoseFocus(ot,et))return!1;var ct=ut?ot.getBoundingClientRect():null;do if(ot=et?getNextElement(this._root.current,ot):getPreviousElement(this._root.current,ot),ut){if(ot){var dt=ot.getBoundingClientRect(),ft=tt(ct,dt);if(ft===-1&&it===-1){st=ot;break}if(ft>-1&&(it===-1||ft=0&&ft<0)break}}else{st=ot;break}while(ot);if(st&&st!==this._activeElement)lt=!0,this.focusElement(st);else if(this.props.isCircularNavigation&&nt)return et?this.focusElement(getNextElement(this._root.current,this._root.current.firstElementChild,!0)):this.focusElement(getPreviousElement(this._root.current,this._root.current.lastElementChild,!0,!0,!0));return lt},_e.prototype._moveFocusDown=function(){var et=this,tt=-1,rt=this._focusAlignment.left||this._focusAlignment.x||0;return this._moveFocus(!0,function(nt,ot){var it=-1,st=Math.floor(ot.top),lt=Math.floor(nt.bottom);return st=lt||st===tt)&&(tt=st,rt>=ot.left&&rt<=ot.left+ot.width?it=0:it=Math.abs(ot.left+ot.width/2-rt)),it)})?(this._setFocusAlignment(this._activeElement,!1,!0),!0):!1},_e.prototype._moveFocusUp=function(){var et=this,tt=-1,rt=this._focusAlignment.left||this._focusAlignment.x||0;return this._moveFocus(!1,function(nt,ot){var it=-1,st=Math.floor(ot.bottom),lt=Math.floor(ot.top),ut=Math.floor(nt.top);return st>ut?et._shouldWrapFocus(et._activeElement,NO_VERTICAL_WRAP)?LARGE_DISTANCE_FROM_CENTER:LARGE_NEGATIVE_DISTANCE_FROM_CENTER:((tt===-1&&st<=ut||lt===tt)&&(tt=lt,rt>=ot.left&&rt<=ot.left+ot.width?it=0:it=Math.abs(ot.left+ot.width/2-rt)),it)})?(this._setFocusAlignment(this._activeElement,!1,!0),!0):!1},_e.prototype._moveFocusLeft=function(et){var tt=this,rt=this._shouldWrapFocus(this._activeElement,NO_HORIZONTAL_WRAP);return this._moveFocus(getRTL$1(et),function(nt,ot){var it=-1,st;return getRTL$1(et)?st=parseFloat(ot.top.toFixed(3))parseFloat(nt.top.toFixed(3)),st&&ot.right<=nt.right&&tt.props.direction!==FocusZoneDirection.vertical?it=nt.right-ot.right:rt||(it=LARGE_NEGATIVE_DISTANCE_FROM_CENTER),it},void 0,rt)?(this._setFocusAlignment(this._activeElement,!0,!1),!0):!1},_e.prototype._moveFocusRight=function(et){var tt=this,rt=this._shouldWrapFocus(this._activeElement,NO_HORIZONTAL_WRAP);return this._moveFocus(!getRTL$1(et),function(nt,ot){var it=-1,st;return getRTL$1(et)?st=parseFloat(ot.bottom.toFixed(3))>parseFloat(nt.top.toFixed(3)):st=parseFloat(ot.top.toFixed(3))=nt.left&&tt.props.direction!==FocusZoneDirection.vertical?it=ot.left-nt.left:rt||(it=LARGE_NEGATIVE_DISTANCE_FROM_CENTER),it},void 0,rt)?(this._setFocusAlignment(this._activeElement,!0,!1),!0):!1},_e.prototype._moveFocusPaging=function(et,tt){tt===void 0&&(tt=!0);var rt=this._activeElement;if(!rt||!this._root.current||this._isElementInput(rt)&&!this._shouldInputLoseFocus(rt,et))return!1;var nt=findScrollableParent(rt);if(!nt)return!1;var ot=-1,it=void 0,st=-1,lt=-1,ut=nt.clientHeight,ct=rt.getBoundingClientRect();do if(rt=et?getNextElement(this._root.current,rt):getPreviousElement(this._root.current,rt),rt){var dt=rt.getBoundingClientRect(),ft=Math.floor(dt.top),pt=Math.floor(ct.bottom),gt=Math.floor(dt.bottom),vt=Math.floor(ct.top),bt=this._getHorizontalDistanceFromCenter(et,ct,dt),_t=et&&ft>pt+ut,xt=!et&>-1&&(et&&ft>st?(st=ft,ot=bt,it=rt):!et&>-1){var rt=et.selectionStart,nt=et.selectionEnd,ot=rt!==nt,it=et.value,st=et.readOnly;if(ot||rt>0&&!tt&&!st||rt!==it.length&&tt&&!st||this.props.handleTabKey&&!(this.props.shouldInputLoseFocusOnArrowKey&&this.props.shouldInputLoseFocusOnArrowKey(et)))return!1}return!0},_e.prototype._shouldWrapFocus=function(et,tt){return this.props.checkForNoWrap?shouldWrapFocus(et,tt):!0},_e.prototype._portalContainsElement=function(et){return et&&!!this._root.current&&portalContainsElement(et,this._root.current)},_e.prototype._getDocument=function(){return getDocument(this._root.current)},_e.defaultProps={isCircularNavigation:!1,direction:FocusZoneDirection.bidirectional,shouldRaiseClicks:!0},_e}(reactExports.Component),ContextualMenuItemType;(function(j){j[j.Normal=0]="Normal",j[j.Divider=1]="Divider",j[j.Header=2]="Header",j[j.Section=3]="Section"})(ContextualMenuItemType||(ContextualMenuItemType={}));function getIsChecked(j){return j.canCheck?!!(j.isChecked||j.checked):typeof j.isChecked=="boolean"?j.isChecked:typeof j.checked=="boolean"?j.checked:null}function hasSubmenu(j){return!!(j.subMenuProps||j.items)}function isItemDisabled(j){return!!(j.isDisabled||j.disabled)}function getMenuItemAriaRole(j){var _e=getIsChecked(j),et=_e!==null;return et?"menuitemcheckbox":"menuitem"}var defaultIconRenderer=function(j){var _e=j.item,et=j.classNames,tt=_e.iconProps;return reactExports.createElement(Icon,__assign$4({},tt,{className:et.icon}))},renderItemIcon=function(j){var _e=j.item,et=j.hasIcons;return et?_e.onRenderIcon?_e.onRenderIcon(j,defaultIconRenderer):defaultIconRenderer(j):null},renderCheckMarkIcon=function(j){var _e=j.onCheckmarkClick,et=j.item,tt=j.classNames,rt=getIsChecked(et);if(_e){var nt=function(ot){return _e(et,ot)};return reactExports.createElement(Icon,{iconName:et.canCheck!==!1&&rt?"CheckMark":"",className:tt.checkmarkIcon,onClick:nt})}return null},renderItemName=function(j){var _e=j.item,et=j.classNames;return _e.text||_e.name?reactExports.createElement("span",{className:et.label},_e.text||_e.name):null},renderSecondaryText=function(j){var _e=j.item,et=j.classNames;return _e.secondaryText?reactExports.createElement("span",{className:et.secondaryText},_e.secondaryText):null},renderSubMenuIcon=function(j){var _e=j.item,et=j.classNames,tt=j.theme;return hasSubmenu(_e)?reactExports.createElement(Icon,__assign$4({iconName:getRTL$1(tt)?"ChevronLeft":"ChevronRight"},_e.submenuIconProps,{className:et.subMenuIcon})):null},ContextualMenuItemBase=function(j){__extends$3(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt.openSubMenu=function(){var rt=tt.props,nt=rt.item,ot=rt.openSubMenu,it=rt.getSubmenuTarget;if(it){var st=it();hasSubmenu(nt)&&ot&&st&&ot(nt,st)}},tt.dismissSubMenu=function(){var rt=tt.props,nt=rt.item,ot=rt.dismissSubMenu;hasSubmenu(nt)&&ot&&ot()},tt.dismissMenu=function(rt){var nt=tt.props.dismissMenu;nt&&nt(void 0,rt)},initializeComponentRef(tt),tt}return _e.prototype.render=function(){var et=this.props,tt=et.item,rt=et.classNames,nt=tt.onRenderContent||this._renderLayout;return reactExports.createElement("div",{className:tt.split?rt.linkContentMenu:rt.linkContent},nt(this.props,{renderCheckMarkIcon,renderItemIcon,renderItemName,renderSecondaryText,renderSubMenuIcon}))},_e.prototype._renderLayout=function(et,tt){return reactExports.createElement(reactExports.Fragment,null,tt.renderCheckMarkIcon(et),tt.renderItemIcon(et),tt.renderItemName(et),tt.renderSecondaryText(et),tt.renderSubMenuIcon(et))},_e}(reactExports.Component),getDividerClassNames=memoizeFunction(function(j){return mergeStyleSets({wrapper:{display:"inline-flex",height:"100%",alignItems:"center"},divider:{width:1,height:"100%",backgroundColor:j.palette.neutralTertiaryAlt}})}),CONTEXTUAL_MENU_ITEM_HEIGHT=36,MediumScreenSelector$1=getScreenSelector(0,ScreenWidthMaxMedium),getMenuItemStyles=memoizeFunction(function(j){var _e,et,tt,rt,nt,ot=j.semanticColors,it=j.fonts,st=j.palette,lt=ot.menuItemBackgroundHovered,ut=ot.menuItemTextHovered,ct=ot.menuItemBackgroundPressed,dt=ot.bodyDivider,ft={item:[it.medium,{color:ot.bodyText,position:"relative",boxSizing:"border-box"}],divider:{display:"block",height:"1px",backgroundColor:dt,position:"relative"},root:[getFocusStyle(j),it.medium,{color:ot.bodyText,backgroundColor:"transparent",border:"none",width:"100%",height:CONTEXTUAL_MENU_ITEM_HEIGHT,lineHeight:CONTEXTUAL_MENU_ITEM_HEIGHT,display:"block",cursor:"pointer",padding:"0px 8px 0 4px",textAlign:"left"}],rootDisabled:{color:ot.disabledBodyText,cursor:"default",pointerEvents:"none",selectors:(_e={},_e[HighContrastSelector]={color:"GrayText",opacity:1},_e)},rootHovered:{backgroundColor:lt,color:ut,selectors:{".ms-ContextualMenu-icon":{color:st.themeDarkAlt},".ms-ContextualMenu-submenuIcon":{color:st.neutralPrimary}}},rootFocused:{backgroundColor:st.white},rootChecked:{selectors:{".ms-ContextualMenu-checkmarkIcon":{color:st.neutralPrimary}}},rootPressed:{backgroundColor:ct,selectors:{".ms-ContextualMenu-icon":{color:st.themeDark},".ms-ContextualMenu-submenuIcon":{color:st.neutralPrimary}}},rootExpanded:{backgroundColor:ct,color:ot.bodyTextChecked,selectors:(et={".ms-ContextualMenu-submenuIcon":(tt={},tt[HighContrastSelector]={color:"inherit"},tt)},et[HighContrastSelector]=__assign$4({},getHighContrastNoAdjustStyle()),et)},linkContent:{whiteSpace:"nowrap",height:"inherit",display:"flex",alignItems:"center",maxWidth:"100%"},anchorLink:{padding:"0px 8px 0 4px",textRendering:"auto",color:"inherit",letterSpacing:"normal",wordSpacing:"normal",textTransform:"none",textIndent:"0px",textShadow:"none",textDecoration:"none",boxSizing:"border-box"},label:{margin:"0 4px",verticalAlign:"middle",display:"inline-block",flexGrow:"1",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},secondaryText:{color:j.palette.neutralSecondary,paddingLeft:"20px",textAlign:"right"},icon:{display:"inline-block",minHeight:"1px",maxHeight:CONTEXTUAL_MENU_ITEM_HEIGHT,fontSize:IconFontSizes.medium,width:IconFontSizes.medium,margin:"0 4px",verticalAlign:"middle",flexShrink:"0",selectors:(rt={},rt[MediumScreenSelector$1]={fontSize:IconFontSizes.large,width:IconFontSizes.large},rt)},iconColor:{color:ot.menuIcon},iconDisabled:{color:ot.disabledBodyText},checkmarkIcon:{color:ot.bodySubtext},subMenuIcon:{height:CONTEXTUAL_MENU_ITEM_HEIGHT,lineHeight:CONTEXTUAL_MENU_ITEM_HEIGHT,color:st.neutralSecondary,textAlign:"center",display:"inline-block",verticalAlign:"middle",flexShrink:"0",fontSize:IconFontSizes.small,selectors:(nt={":hover":{color:st.neutralPrimary},":active":{color:st.neutralPrimary}},nt[MediumScreenSelector$1]={fontSize:IconFontSizes.medium},nt)},splitButtonFlexContainer:[getFocusStyle(j),{display:"flex",height:CONTEXTUAL_MENU_ITEM_HEIGHT,flexWrap:"nowrap",justifyContent:"center",alignItems:"flex-start"}]};return concatStyleSets(ft)}),CONTEXTUAL_SPLIT_MENU_MINWIDTH="28px",MediumScreenSelector=getScreenSelector(0,ScreenWidthMaxMedium),getSplitButtonVerticalDividerClassNames=memoizeFunction(function(j){var _e;return mergeStyleSets(getDividerClassNames(j),{wrapper:{position:"absolute",right:28,selectors:(_e={},_e[MediumScreenSelector]={right:32},_e)},divider:{height:16,width:1}})}),GlobalClassNames$4={item:"ms-ContextualMenu-item",divider:"ms-ContextualMenu-divider",root:"ms-ContextualMenu-link",isChecked:"is-checked",isExpanded:"is-expanded",isDisabled:"is-disabled",linkContent:"ms-ContextualMenu-linkContent",linkContentMenu:"ms-ContextualMenu-linkContent",icon:"ms-ContextualMenu-icon",iconColor:"ms-ContextualMenu-iconColor",checkmarkIcon:"ms-ContextualMenu-checkmarkIcon",subMenuIcon:"ms-ContextualMenu-submenuIcon",label:"ms-ContextualMenu-itemText",secondaryText:"ms-ContextualMenu-secondaryText",splitMenu:"ms-ContextualMenu-splitMenu",screenReaderText:"ms-ContextualMenu-screenReaderText"},getItemClassNames=memoizeFunction(function(j,_e,et,tt,rt,nt,ot,it,st,lt,ut,ct){var dt,ft,pt,gt,vt=getMenuItemStyles(j),bt=getGlobalClassNames(GlobalClassNames$4,j);return mergeStyleSets({item:[bt.item,vt.item,ot],divider:[bt.divider,vt.divider,it],root:[bt.root,vt.root,tt&&[bt.isChecked,vt.rootChecked],rt&&vt.anchorLink,et&&[bt.isExpanded,vt.rootExpanded],_e&&[bt.isDisabled,vt.rootDisabled],!_e&&!et&&[{selectors:(dt={":hover":vt.rootHovered,":active":vt.rootPressed},dt[".".concat(IsFocusVisibleClassName," &:focus, .").concat(IsFocusVisibleClassName," &:focus:hover")]=vt.rootFocused,dt[".".concat(IsFocusVisibleClassName," &:hover")]={background:"inherit;"},dt)}],ct],splitPrimary:[vt.root,{width:"calc(100% - ".concat(CONTEXTUAL_SPLIT_MENU_MINWIDTH,")")},tt&&["is-checked",vt.rootChecked],(_e||ut)&&["is-disabled",vt.rootDisabled],!(_e||ut)&&!tt&&[{selectors:(ft={":hover":vt.rootHovered},ft[":hover ~ .".concat(bt.splitMenu)]=vt.rootHovered,ft[":active"]=vt.rootPressed,ft[".".concat(IsFocusVisibleClassName," &:focus, .").concat(IsFocusVisibleClassName," &:focus:hover")]=vt.rootFocused,ft[".".concat(IsFocusVisibleClassName," &:hover")]={background:"inherit;"},ft)}]],splitMenu:[bt.splitMenu,vt.root,{flexBasis:"0",padding:"0 8px",minWidth:CONTEXTUAL_SPLIT_MENU_MINWIDTH},et&&["is-expanded",vt.rootExpanded],_e&&["is-disabled",vt.rootDisabled],!_e&&!et&&[{selectors:(pt={":hover":vt.rootHovered,":active":vt.rootPressed},pt[".".concat(IsFocusVisibleClassName," &:focus, .").concat(IsFocusVisibleClassName," &:focus:hover")]=vt.rootFocused,pt[".".concat(IsFocusVisibleClassName," &:hover")]={background:"inherit;"},pt)}]],anchorLink:vt.anchorLink,linkContent:[bt.linkContent,vt.linkContent],linkContentMenu:[bt.linkContentMenu,vt.linkContent,{justifyContent:"center"}],icon:[bt.icon,nt&&vt.iconColor,vt.icon,st,_e&&[bt.isDisabled,vt.iconDisabled]],iconColor:vt.iconColor,checkmarkIcon:[bt.checkmarkIcon,nt&&vt.checkmarkIcon,vt.icon,st],subMenuIcon:[bt.subMenuIcon,vt.subMenuIcon,lt,et&&{color:j.palette.neutralPrimary},_e&&[vt.iconDisabled]],label:[bt.label,vt.label],secondaryText:[bt.secondaryText,vt.secondaryText],splitContainer:[vt.splitButtonFlexContainer,!_e&&!tt&&[{selectors:(gt={},gt[".".concat(IsFocusVisibleClassName," &:focus, .").concat(IsFocusVisibleClassName," &:focus:hover")]=vt.rootFocused,gt)}]],screenReaderText:[bt.screenReaderText,vt.screenReaderText,hiddenContentStyle,{visibility:"hidden"}]})}),getItemStyles=function(j){var _e=j.theme,et=j.disabled,tt=j.expanded,rt=j.checked,nt=j.isAnchorLink,ot=j.knownIcon,it=j.itemClassName,st=j.dividerClassName,lt=j.iconClassName,ut=j.subMenuClassName,ct=j.primaryDisabled,dt=j.className;return getItemClassNames(_e,et,tt,rt,nt,ot,it,st,lt,ut,ct,dt)},ContextualMenuItem=styled(ContextualMenuItemBase,getItemStyles,void 0,{scope:"ContextualMenuItem"}),ContextualMenuItemWrapper=function(j){__extends$3(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt._onItemMouseEnter=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseEnter;it&&it(ot,rt,rt.currentTarget)},tt._onItemClick=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemClickBase;it&&it(ot,rt,rt.currentTarget)},tt._onItemMouseLeave=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseLeave;it&&it(ot,rt)},tt._onItemKeyDown=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemKeyDown;it&&it(ot,rt)},tt._onItemMouseMove=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseMove;it&&it(ot,rt,rt.currentTarget)},tt._getSubmenuTarget=function(){},initializeComponentRef(tt),tt}return _e.prototype.shouldComponentUpdate=function(et){return!shallowCompare(et,this.props)},_e}(reactExports.Component),KTP_PREFIX="ktp",KTP_SEPARATOR="-",DATAKTP_TARGET="data-ktp-target",DATAKTP_EXECUTE_TARGET="data-ktp-execute-target",KTP_LAYER_ID="ktp-layer-id",KeytipEvents;(function(j){j.KEYTIP_ADDED="keytipAdded",j.KEYTIP_REMOVED="keytipRemoved",j.KEYTIP_UPDATED="keytipUpdated",j.PERSISTED_KEYTIP_ADDED="persistedKeytipAdded",j.PERSISTED_KEYTIP_REMOVED="persistedKeytipRemoved",j.PERSISTED_KEYTIP_EXECUTE="persistedKeytipExecute",j.ENTER_KEYTIP_MODE="enterKeytipMode",j.EXIT_KEYTIP_MODE="exitKeytipMode"})(KeytipEvents||(KeytipEvents={}));var KeytipManager=function(){function j(){this.keytips={},this.persistedKeytips={},this.sequenceMapping={},this.inKeytipMode=!1,this.shouldEnterKeytipMode=!0,this.delayUpdatingKeytipChange=!1}return j.getInstance=function(){return this._instance},j.prototype.init=function(_e){this.delayUpdatingKeytipChange=_e},j.prototype.register=function(_e,et){et===void 0&&(et=!1);var tt=_e;et||(tt=this.addParentOverflow(_e),this.sequenceMapping[tt.keySequences.toString()]=tt);var rt=this._getUniqueKtp(tt);if(et?this.persistedKeytips[rt.uniqueID]=rt:this.keytips[rt.uniqueID]=rt,this.inKeytipMode||!this.delayUpdatingKeytipChange){var nt=et?KeytipEvents.PERSISTED_KEYTIP_ADDED:KeytipEvents.KEYTIP_ADDED;EventGroup.raise(this,nt,{keytip:tt,uniqueID:rt.uniqueID})}return rt.uniqueID},j.prototype.update=function(_e,et){var tt=this.addParentOverflow(_e),rt=this._getUniqueKtp(tt,et),nt=this.keytips[et];nt&&(rt.keytip.visible=nt.keytip.visible,this.keytips[et]=rt,delete this.sequenceMapping[nt.keytip.keySequences.toString()],this.sequenceMapping[rt.keytip.keySequences.toString()]=rt.keytip,(this.inKeytipMode||!this.delayUpdatingKeytipChange)&&EventGroup.raise(this,KeytipEvents.KEYTIP_UPDATED,{keytip:rt.keytip,uniqueID:rt.uniqueID}))},j.prototype.unregister=function(_e,et,tt){tt===void 0&&(tt=!1),tt?delete this.persistedKeytips[et]:delete this.keytips[et],!tt&&delete this.sequenceMapping[_e.keySequences.toString()];var rt=tt?KeytipEvents.PERSISTED_KEYTIP_REMOVED:KeytipEvents.KEYTIP_REMOVED;(this.inKeytipMode||!this.delayUpdatingKeytipChange)&&EventGroup.raise(this,rt,{keytip:_e,uniqueID:et})},j.prototype.enterKeytipMode=function(){EventGroup.raise(this,KeytipEvents.ENTER_KEYTIP_MODE)},j.prototype.exitKeytipMode=function(){EventGroup.raise(this,KeytipEvents.EXIT_KEYTIP_MODE)},j.prototype.getKeytips=function(){var _e=this;return Object.keys(this.keytips).map(function(et){return _e.keytips[et].keytip})},j.prototype.addParentOverflow=function(_e){var et=__spreadArray$1([],_e.keySequences,!0);if(et.pop(),et.length!==0){var tt=this.sequenceMapping[et.toString()];if(tt&&tt.overflowSetSequence)return __assign$4(__assign$4({},_e),{overflowSetSequence:tt.overflowSetSequence})}return _e},j.prototype.menuExecute=function(_e,et){EventGroup.raise(this,KeytipEvents.PERSISTED_KEYTIP_EXECUTE,{overflowButtonSequences:_e,keytipSequences:et})},j.prototype._getUniqueKtp=function(_e,et){return et===void 0&&(et=getId()),{keytip:__assign$4({},_e),uniqueID:et}},j._instance=new j,j}();function sequencesToID(j){return j.reduce(function(_e,et){return _e+KTP_SEPARATOR+et.split("").join(KTP_SEPARATOR)},KTP_PREFIX)}function mergeOverflows(j,_e){var et=_e.length,tt=__spreadArray$1([],_e,!0).pop(),rt=__spreadArray$1([],j,!0);return addElementAtIndex(rt,et-1,tt)}function getAriaDescribedBy(j){var _e=" "+KTP_LAYER_ID;return j.length?_e+" "+sequencesToID(j):_e}function useKeytipData(j){var _e=reactExports.useRef(),et=j.keytipProps?__assign$4({disabled:j.disabled},j.keytipProps):void 0,tt=useConst$1(KeytipManager.getInstance()),rt=usePrevious(j);useIsomorphicLayoutEffect(function(){_e.current&&et&&((rt==null?void 0:rt.keytipProps)!==j.keytipProps||(rt==null?void 0:rt.disabled)!==j.disabled)&&tt.update(et,_e.current)}),useIsomorphicLayoutEffect(function(){return et&&(_e.current=tt.register(et)),function(){et&&tt.unregister(et,_e.current)}},[]);var nt={ariaDescribedBy:void 0,keytipId:void 0};return et&&(nt=getKeytipData(tt,et,j.ariaDescribedBy)),nt}function getKeytipData(j,_e,et){var tt=j.addParentOverflow(_e),rt=mergeAriaAttributeValues(et,getAriaDescribedBy(tt.keySequences)),nt=__spreadArray$1([],tt.keySequences,!0);tt.overflowSetSequence&&(nt=mergeOverflows(nt,tt.overflowSetSequence));var ot=sequencesToID(nt);return{ariaDescribedBy:rt,keytipId:ot}}var KeytipData=function(j){var _e,et=j.children,tt=__rest$1(j,["children"]),rt=useKeytipData(tt),nt=rt.keytipId,ot=rt.ariaDescribedBy;return et((_e={},_e[DATAKTP_TARGET]=nt,_e[DATAKTP_EXECUTE_TARGET]=nt,_e["aria-describedby"]=ot,_e))},ContextualMenuAnchor=function(j){__extends$3(_e,j);function _e(){var et=j!==null&&j.apply(this,arguments)||this;return et._anchor=reactExports.createRef(),et._getMemoizedMenuButtonKeytipProps=memoizeFunction(function(tt){return __assign$4(__assign$4({},tt),{hasMenu:!0})}),et._getSubmenuTarget=function(){return et._anchor.current?et._anchor.current:void 0},et._onItemClick=function(tt){var rt=et.props,nt=rt.item,ot=rt.onItemClick;ot&&ot(nt,tt)},et._renderAriaDescription=function(tt,rt){return tt?reactExports.createElement("span",{id:et._ariaDescriptionId,className:rt},tt):null},et}return _e.prototype.render=function(){var et=this,tt=this.props,rt=tt.item,nt=tt.classNames,ot=tt.index,it=tt.focusableElementIndex,st=tt.totalItemCount,lt=tt.hasCheckmarks,ut=tt.hasIcons,ct=tt.expandedMenuItemKey,dt=tt.onItemClick,ft=tt.openSubMenu,pt=tt.dismissSubMenu,gt=tt.dismissMenu,vt=ContextualMenuItem;this.props.item.contextualMenuItemAs&&(vt=composeComponentAs(this.props.item.contextualMenuItemAs,vt)),this.props.contextualMenuItemAs&&(vt=composeComponentAs(this.props.contextualMenuItemAs,vt));var bt=rt.rel;rt.target&&rt.target.toLowerCase()==="_blank"&&(bt=bt||"nofollow noopener noreferrer");var _t=hasSubmenu(rt),xt=getNativeProps(rt,anchorProperties),yt=isItemDisabled(rt),Et=rt.itemProps,St=rt.ariaDescription,$t=rt.keytipProps;$t&&_t&&($t=this._getMemoizedMenuButtonKeytipProps($t)),St&&(this._ariaDescriptionId=getId());var At=mergeAriaAttributeValues(rt.ariaDescribedBy,St?this._ariaDescriptionId:void 0,xt["aria-describedby"]),wt={"aria-describedby":At};return reactExports.createElement("div",null,reactExports.createElement(KeytipData,{keytipProps:rt.keytipProps,ariaDescribedBy:At,disabled:yt},function(Ct){return reactExports.createElement("a",__assign$4({},wt,xt,Ct,{ref:et._anchor,href:rt.href,target:rt.target,rel:bt,className:nt.root,role:"menuitem","aria-haspopup":_t||void 0,"aria-expanded":_t?rt.key===ct:void 0,"aria-posinset":it+1,"aria-setsize":st,"aria-disabled":isItemDisabled(rt),style:rt.style,onClick:et._onItemClick,onMouseEnter:et._onItemMouseEnter,onMouseLeave:et._onItemMouseLeave,onMouseMove:et._onItemMouseMove,onKeyDown:_t?et._onItemKeyDown:void 0}),reactExports.createElement(vt,__assign$4({componentRef:rt.componentRef,item:rt,classNames:nt,index:ot,onCheckmarkClick:lt&&dt?dt:void 0,hasIcons:ut,openSubMenu:ft,dismissSubMenu:pt,dismissMenu:gt,getSubmenuTarget:et._getSubmenuTarget},Et)),et._renderAriaDescription(St,nt.screenReaderText))}))},_e}(ContextualMenuItemWrapper),ContextualMenuButton=function(j){__extends$3(_e,j);function _e(){var et=j!==null&&j.apply(this,arguments)||this;return et._btn=reactExports.createRef(),et._getMemoizedMenuButtonKeytipProps=memoizeFunction(function(tt){return __assign$4(__assign$4({},tt),{hasMenu:!0})}),et._renderAriaDescription=function(tt,rt){return tt?reactExports.createElement("span",{id:et._ariaDescriptionId,className:rt},tt):null},et._getSubmenuTarget=function(){return et._btn.current?et._btn.current:void 0},et}return _e.prototype.render=function(){var et=this,tt=this.props,rt=tt.item,nt=tt.classNames,ot=tt.index,it=tt.focusableElementIndex,st=tt.totalItemCount,lt=tt.hasCheckmarks,ut=tt.hasIcons,ct=tt.contextualMenuItemAs,dt=tt.expandedMenuItemKey,ft=tt.onItemMouseDown,pt=tt.onItemClick,gt=tt.openSubMenu,vt=tt.dismissSubMenu,bt=tt.dismissMenu,_t=ContextualMenuItem;rt.contextualMenuItemAs&&(_t=composeComponentAs(rt.contextualMenuItemAs,_t)),ct&&(_t=composeComponentAs(ct,_t));var xt=getIsChecked(rt),yt=xt!==null,Et=getMenuItemAriaRole(rt),St=hasSubmenu(rt),$t=rt.itemProps,At=rt.ariaLabel,wt=rt.ariaDescription,Ct=getNativeProps(rt,buttonProperties);delete Ct.disabled;var It=rt.role||Et;wt&&(this._ariaDescriptionId=getId());var Ot=mergeAriaAttributeValues(rt.ariaDescribedBy,wt?this._ariaDescriptionId:void 0,Ct["aria-describedby"]),Nt={className:nt.root,onClick:this._onItemClick,onKeyDown:St?this._onItemKeyDown:void 0,onMouseEnter:this._onItemMouseEnter,onMouseLeave:this._onItemMouseLeave,onMouseDown:function(Mt){return ft?ft(rt,Mt):void 0},onMouseMove:this._onItemMouseMove,href:rt.href,title:rt.title,"aria-label":At,"aria-describedby":Ot,"aria-haspopup":St||void 0,"aria-expanded":St?rt.key===dt:void 0,"aria-posinset":it+1,"aria-setsize":st,"aria-disabled":isItemDisabled(rt),"aria-checked":(It==="menuitemcheckbox"||It==="menuitemradio")&&yt?!!xt:void 0,"aria-selected":It==="menuitem"&&yt?!!xt:void 0,role:It,style:rt.style},Pt=rt.keytipProps;return Pt&&St&&(Pt=this._getMemoizedMenuButtonKeytipProps(Pt)),reactExports.createElement(KeytipData,{keytipProps:Pt,ariaDescribedBy:Ot,disabled:isItemDisabled(rt)},function(Mt){return reactExports.createElement("button",__assign$4({ref:et._btn},Ct,Nt,Mt),reactExports.createElement(_t,__assign$4({componentRef:rt.componentRef,item:rt,classNames:nt,index:ot,onCheckmarkClick:lt&&pt?pt:void 0,hasIcons:ut,openSubMenu:gt,dismissSubMenu:vt,dismissMenu:bt,getSubmenuTarget:et._getSubmenuTarget},$t)),et._renderAriaDescription(wt,nt.screenReaderText))})},_e}(ContextualMenuItemWrapper),getStyles$4=function(j){var _e=j.theme,et=j.getClassNames,tt=j.className;if(!_e)throw new Error("Theme is undefined or null.");if(et){var rt=et(_e);return{wrapper:[rt.wrapper],divider:[rt.divider]}}return{wrapper:[{display:"inline-flex",height:"100%",alignItems:"center"},tt],divider:[{width:1,height:"100%",backgroundColor:_e.palette.neutralTertiaryAlt}]}},getClassNames$4=classNamesFunction(),VerticalDividerBase=reactExports.forwardRef(function(j,_e){var et=j.styles,tt=j.theme,rt=j.getClassNames,nt=j.className,ot=getClassNames$4(et,{theme:tt,getClassNames:rt,className:nt});return reactExports.createElement("span",{className:ot.wrapper,ref:_e},reactExports.createElement("span",{className:ot.divider}))});VerticalDividerBase.displayName="VerticalDividerBase";var VerticalDivider=styled(VerticalDividerBase,getStyles$4,void 0,{scope:"VerticalDivider"}),TouchIdleDelay=500,ContextualMenuSplitButton=function(j){__extends$3(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt._getMemoizedMenuButtonKeytipProps=memoizeFunction(function(rt){return __assign$4(__assign$4({},rt),{hasMenu:!0})}),tt._onItemKeyDown=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemKeyDown;rt.which===KeyCodes$1.enter?(tt._executeItemClick(rt),rt.preventDefault(),rt.stopPropagation()):it&&it(ot,rt)},tt._getSubmenuTarget=function(){return tt._splitButton},tt._renderAriaDescription=function(rt,nt){return rt?reactExports.createElement("span",{id:tt._ariaDescriptionId,className:nt},rt):null},tt._onItemMouseEnterPrimary=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseEnter;it&&it(__assign$4(__assign$4({},ot),{subMenuProps:void 0,items:void 0}),rt,tt._splitButton)},tt._onItemMouseEnterIcon=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseEnter;it&&it(ot,rt,tt._splitButton)},tt._onItemMouseMovePrimary=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseMove;it&&it(__assign$4(__assign$4({},ot),{subMenuProps:void 0,items:void 0}),rt,tt._splitButton)},tt._onItemMouseMoveIcon=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseMove;it&&it(ot,rt,tt._splitButton)},tt._onIconItemClick=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemClickBase;it&&it(ot,rt,tt._splitButton?tt._splitButton:rt.currentTarget)},tt._executeItemClick=function(rt){var nt=tt.props,ot=nt.item,it=nt.executeItemClick,st=nt.onItemClick;if(!(ot.disabled||ot.isDisabled)){if(tt._processingTouch&&!ot.canCheck&&st)return st(ot,rt);it&&it(ot,rt)}},tt._onTouchStart=function(rt){tt._splitButton&&!("onpointerdown"in tt._splitButton)&&tt._handleTouchAndPointerEvent(rt)},tt._onPointerDown=function(rt){rt.pointerType==="touch"&&(tt._handleTouchAndPointerEvent(rt),rt.preventDefault(),rt.stopImmediatePropagation())},tt._async=new Async(tt),tt._events=new EventGroup(tt),tt._dismissLabelId=getId(),tt}return _e.prototype.componentDidMount=function(){this._splitButton&&"onpointerdown"in this._splitButton&&this._events.on(this._splitButton,"pointerdown",this._onPointerDown,!0)},_e.prototype.componentWillUnmount=function(){this._async.dispose(),this._events.dispose()},_e.prototype.render=function(){var et=this,tt,rt=this.props,nt=rt.item,ot=rt.classNames,it=rt.index,st=rt.focusableElementIndex,lt=rt.totalItemCount,ut=rt.hasCheckmarks,ct=rt.hasIcons,dt=rt.onItemMouseLeave,ft=rt.expandedMenuItemKey,pt=hasSubmenu(nt),gt=nt.keytipProps;gt&&(gt=this._getMemoizedMenuButtonKeytipProps(gt));var vt=nt.ariaDescription;vt&&(this._ariaDescriptionId=getId());var bt=(tt=getIsChecked(nt))!==null&&tt!==void 0?tt:void 0;return reactExports.createElement(KeytipData,{keytipProps:gt,disabled:isItemDisabled(nt)},function(_t){return reactExports.createElement("div",{"data-ktp-target":_t["data-ktp-target"],ref:function(xt){return et._splitButton=xt},role:getMenuItemAriaRole(nt),"aria-label":nt.ariaLabel,className:ot.splitContainer,"aria-disabled":isItemDisabled(nt),"aria-expanded":pt?nt.key===ft:void 0,"aria-haspopup":!0,"aria-describedby":mergeAriaAttributeValues(nt.ariaDescribedBy,vt?et._ariaDescriptionId:void 0,_t["aria-describedby"]),"aria-checked":bt,"aria-posinset":st+1,"aria-setsize":lt,onMouseEnter:et._onItemMouseEnterPrimary,onMouseLeave:dt?dt.bind(et,__assign$4(__assign$4({},nt),{subMenuProps:null,items:null})):void 0,onMouseMove:et._onItemMouseMovePrimary,onKeyDown:et._onItemKeyDown,onClick:et._executeItemClick,onTouchStart:et._onTouchStart,tabIndex:0,"data-is-focusable":!0,"aria-roledescription":nt["aria-roledescription"]},et._renderSplitPrimaryButton(nt,ot,it,ut,ct),et._renderSplitDivider(nt),et._renderSplitIconButton(nt,ot,it,_t),et._renderAriaDescription(vt,ot.screenReaderText))})},_e.prototype._renderSplitPrimaryButton=function(et,tt,rt,nt,ot){var it=this.props,st=it.contextualMenuItemAs,lt=st===void 0?ContextualMenuItem:st,ut=it.onItemClick,ct={key:et.key,disabled:isItemDisabled(et)||et.primaryDisabled,name:et.name,text:et.text||et.name,secondaryText:et.secondaryText,className:tt.splitPrimary,canCheck:et.canCheck,isChecked:et.isChecked,checked:et.checked,iconProps:et.iconProps,id:this._dismissLabelId,onRenderIcon:et.onRenderIcon,data:et.data,"data-is-focusable":!1},dt=et.itemProps;return reactExports.createElement("button",__assign$4({},getNativeProps(ct,buttonProperties)),reactExports.createElement(lt,__assign$4({"data-is-focusable":!1,item:ct,classNames:tt,index:rt,onCheckmarkClick:nt&&ut?ut:void 0,hasIcons:ot},dt)))},_e.prototype._renderSplitDivider=function(et){var tt=et.getSplitButtonVerticalDividerClassNames||getSplitButtonVerticalDividerClassNames;return reactExports.createElement(VerticalDivider,{getClassNames:tt})},_e.prototype._renderSplitIconButton=function(et,tt,rt,nt){var ot=this.props,it=ot.onItemMouseLeave,st=ot.onItemMouseDown,lt=ot.openSubMenu,ut=ot.dismissSubMenu,ct=ot.dismissMenu,dt=ContextualMenuItem;this.props.item.contextualMenuItemAs&&(dt=composeComponentAs(this.props.item.contextualMenuItemAs,dt)),this.props.contextualMenuItemAs&&(dt=composeComponentAs(this.props.contextualMenuItemAs,dt));var ft={onClick:this._onIconItemClick,disabled:isItemDisabled(et),className:tt.splitMenu,subMenuProps:et.subMenuProps,submenuIconProps:et.submenuIconProps,split:!0,key:et.key,"aria-labelledby":this._dismissLabelId},pt=__assign$4(__assign$4({},getNativeProps(ft,buttonProperties)),{onMouseEnter:this._onItemMouseEnterIcon,onMouseLeave:it?it.bind(this,et):void 0,onMouseDown:function(vt){return st?st(et,vt):void 0},onMouseMove:this._onItemMouseMoveIcon,"data-is-focusable":!1,"data-ktp-execute-target":nt["data-ktp-execute-target"],"aria-haspopup":!0}),gt=et.itemProps;return reactExports.createElement("button",__assign$4({},pt),reactExports.createElement(dt,__assign$4({componentRef:et.componentRef,item:ft,classNames:tt,index:rt,hasIcons:!1,openSubMenu:lt,dismissSubMenu:ut,dismissMenu:ct,getSubmenuTarget:this._getSubmenuTarget},gt)))},_e.prototype._handleTouchAndPointerEvent=function(et){var tt=this,rt=this.props.onTap;rt&&rt(et),this._lastTouchTimeoutId&&(this._async.clearTimeout(this._lastTouchTimeoutId),this._lastTouchTimeoutId=void 0),this._processingTouch=!0,this._lastTouchTimeoutId=this._async.setTimeout(function(){tt._processingTouch=!1,tt._lastTouchTimeoutId=void 0},TouchIdleDelay)},_e}(ContextualMenuItemWrapper),ResponsiveMode;(function(j){j[j.small=0]="small",j[j.medium=1]="medium",j[j.large=2]="large",j[j.xLarge=3]="xLarge",j[j.xxLarge=4]="xxLarge",j[j.xxxLarge=5]="xxxLarge",j[j.unknown=999]="unknown"})(ResponsiveMode||(ResponsiveMode={}));var RESPONSIVE_MAX_CONSTRAINT=[479,639,1023,1365,1919,99999999],_defaultMode,_lastMode;function getInitialResponsiveMode(){var j;return(j=_defaultMode??_lastMode)!==null&&j!==void 0?j:ResponsiveMode.large}function getWidthOfCurrentWindow(j){try{return j.document.documentElement.clientWidth}catch{return j.innerWidth}}function getResponsiveMode(j){var _e=ResponsiveMode.small;if(j){try{for(;getWidthOfCurrentWindow(j)>RESPONSIVE_MAX_CONSTRAINT[_e];)_e++}catch{_e=getInitialResponsiveMode()}_lastMode=_e}else throw new Error("Content was rendered in a server environment without providing a default responsive mode. Call setResponsiveMode to define what the responsive mode is.");return _e}var useResponsiveMode=function(j,_e){var et=reactExports.useState(getInitialResponsiveMode()),tt=et[0],rt=et[1],nt=reactExports.useCallback(function(){var it=getResponsiveMode(getWindow(j.current));tt!==it&&rt(it)},[j,tt]),ot=useWindow();return useOnEvent(ot,"resize",nt),reactExports.useEffect(function(){_e===void 0&&nt()},[_e]),_e??tt},MenuContext=reactExports.createContext({}),getClassNames$3=classNamesFunction(),getContextualMenuItemClassNames=classNamesFunction(),DEFAULT_PROPS$1={items:[],shouldFocusOnMount:!0,gapSpace:0,directionalHint:DirectionalHint.bottomAutoEdge,beakWidth:16};function getItemCount(j){for(var _e=0,et=0,tt=j;et0){var fn=0;return reactExports.createElement("li",{role:"presentation",key:Qt.key||Mr.key||"section-".concat(zt)},reactExports.createElement("div",__assign$4({},lr),reactExports.createElement("ul",{className:Zt.list,role:"presentation"},Qt.topDivider&&mr(zt,Ut,!0,!0),ar&&nr(ar,Mr.key||zt,Ut,Mr.title),Qt.items.map(function(an,tn){var _n=qt(an,tn,fn,getItemCount(Qt.items),Ht,Dt,Zt);if(an.itemType!==ContextualMenuItemType.Divider&&an.itemType!==ContextualMenuItemType.Header){var jn=an.customOnRenderListLength?an.customOnRenderListLength:1;fn+=jn}return _n}),Qt.bottomDivider&&mr(zt,Ut,!1,!0))))}}},nr=function(Mr,Ut,Zt,zt){return reactExports.createElement("li",{role:"presentation",title:zt,key:Ut,className:Zt.item},Mr)},mr=function(Mr,Ut,Zt,zt){return zt||Mr>0?reactExports.createElement("li",{role:"separator",key:"separator-"+Mr+(Zt===void 0?"":Zt?"-top":"-bottom"),className:Ut.divider,"aria-hidden":"true"}):null},Ar=function(Mr,Ut,Zt,zt,Ht,Dt,Qt){if(Mr.onRender)return Mr.onRender(__assign$4({"aria-posinset":zt+1,"aria-setsize":Ht},Mr),st);var ar=rt.contextualMenuItemAs,lr={item:Mr,classNames:Ut,index:Zt,focusableElementIndex:zt,totalItemCount:Ht,hasCheckmarks:Dt,hasIcons:Qt,contextualMenuItemAs:ar,onItemMouseEnter:Vt,onItemMouseLeave:Xt,onItemMouseMove:Yt,onItemMouseDown,executeItemClick:vr,onItemKeyDown:jt,expandedMenuItemKey:pt,openSubMenu:gt,dismissSubMenu:bt,dismissMenu:st};if(Mr.href){var tr=ContextualMenuAnchor;return Mr.contextualMenuItemWrapperAs&&(tr=composeComponentAs(Mr.contextualMenuItemWrapperAs,tr)),reactExports.createElement(tr,__assign$4({},lr,{onItemClick:cr}))}if(Mr.split&&hasSubmenu(Mr)){var _r=ContextualMenuSplitButton;return Mr.contextualMenuItemWrapperAs&&(_r=composeComponentAs(Mr.contextualMenuItemWrapperAs,_r)),reactExports.createElement(_r,__assign$4({},lr,{onItemClick:rr,onItemClickBase:Tr,onTap:Ct}))}var Br=ContextualMenuButton;return Mr.contextualMenuItemWrapperAs&&(Br=composeComponentAs(Mr.contextualMenuItemWrapperAs,Br)),reactExports.createElement(Br,__assign$4({},lr,{onItemClick:rr,onItemClickBase:Tr}))},Or=function(Mr,Ut,Zt,zt,Ht,Dt){var Qt=ContextualMenuItem;Mr.contextualMenuItemAs&&(Qt=composeComponentAs(Mr.contextualMenuItemAs,Qt)),rt.contextualMenuItemAs&&(Qt=composeComponentAs(rt.contextualMenuItemAs,Qt));var ar=Mr.itemProps,lr=Mr.id,tr=ar&&getNativeProps(ar,divProperties);return reactExports.createElement("div",__assign$4({id:lr,className:Zt.header},tr,{style:Mr.style}),reactExports.createElement(Qt,__assign$4({item:Mr,classNames:Ut,index:zt,onCheckmarkClick:Ht?rr:void 0,hasIcons:Dt},ar)))},wr=rt.isBeakVisible,Nr=rt.items,Wr=rt.labelElementId,Vr=rt.id,Jr=rt.className,Yr=rt.beakWidth,jr=rt.directionalHint,Hr=rt.directionalHintForRTL,hn=rt.alignTargetEdge,pr=rt.gapSpace,sr=rt.coverTarget,Jt=rt.ariaLabel,ur=rt.doNotLayer,br=rt.target,Sr=rt.bounds,yr=rt.useTargetWidth,Cr=rt.useTargetAsMinWidth,Lr=rt.directionalHintFixed,Xr=rt.shouldFocusOnMount,qr=rt.shouldFocusOnContainer,Qr=rt.title,xn=rt.styles,wn=rt.theme,nn=rt.calloutProps,Ln=rt.onRenderSubMenu,zn=Ln===void 0?onDefaultRenderSubMenu:Ln,En=rt.onRenderMenuList,sn=En===void 0?function(Mr,Ut){return gr(Mr,In)}:En,Dn=rt.focusZoneProps,Mn=rt.getMenuClassNames,In=Mn?Mn(wn,Jr):getClassNames$3(xn,{theme:wn,className:Jr}),Cn=cn(Nr);function cn(Mr){for(var Ut=0,Zt=Mr;Ut0){var eo=getItemCount(Nr),Co=In.subComponentStyles?In.subComponentStyles.callout:void 0;return reactExports.createElement(MenuContext.Consumer,null,function(Mr){return reactExports.createElement(Callout,__assign$4({styles:Co,onRestoreFocus:dt},nn,{target:br||Mr.target,isBeakVisible:wr,beakWidth:Yr,directionalHint:jr,directionalHintForRTL:Hr,gapSpace:pr,coverTarget:sr,doNotLayer:ur,className:css$3("ms-ContextualMenu-Callout",nn&&nn.className),setInitialFocus:Xr,onDismiss:rt.onDismiss||Mr.onDismiss,onScroll:$t,bounds:Sr,directionalHintFixed:Lr,alignTargetEdge:hn,hidden:rt.hidden||Mr.hidden,ref:_e}),reactExports.createElement("div",{style:ro,ref:nt,id:Vr,className:In.container,tabIndex:qr?0:-1,onKeyDown:Lt,onKeyUp:Rt,onFocusCapture:Et,"aria-label":Jt,"aria-labelledby":Wr,role:"menu"},Qr&&reactExports.createElement("div",{className:In.title}," ",Qr," "),Nr&&Nr.length?Er(sn({ariaLabel:Jt,items:Nr,totalItemCount:eo,hasCheckmarks:Fr,hasIcons:Cn,defaultMenuItemRenderer:function(Ut){return ir(Ut,In)},labelElementId:Wr},function(Ut,Zt){return gr(Ut,In)}),Ur):null,Hn&&zn(Hn,onDefaultRenderSubMenu)),reactExports.createElement(FocusRects,null))})}else return null}),function(j,_e){return!_e.shouldUpdateWhenHidden&&j.hidden&&_e.hidden?!0:shallowCompare(j,_e)});ContextualMenuBase.displayName="ContextualMenuBase";function isAltOrMeta(j){return j.which===KeyCodes$1.alt||j.key==="Meta"}function onItemMouseDown(j,_e){var et;(et=j.onMouseDown)===null||et===void 0||et.call(j,j,_e)}function onDefaultRenderSubMenu(j,_e){throw Error("ContextualMenuBase: onRenderSubMenu callback is null or undefined. Please ensure to set `onRenderSubMenu` property either manually or with `styled` helper.")}function findItemByKeyFromItems(j,_e){for(var et=0,tt=_e;et=(Rt||ResponsiveMode.small)&&reactExports.createElement(Layer$1,__assign$4({ref:gr},Qr),reactExports.createElement(Popup,__assign$4({role:Lr?"alertdialog":"dialog",ariaLabelledBy:It,ariaDescribedBy:Nt,onDismiss:$t,shouldRestoreFocus:!_t,enableAriaHiddenSiblings:Yt,"aria-modal":!jt},Xt),reactExports.createElement("div",{className:qr.root,role:jt?void 0:"document"},!jt&&reactExports.createElement(Overlay,__assign$4({"aria-hidden":!0,isDarkThemed:St,onClick:xt?void 0:$t,allowTouchBodyScroll:st},wt)),Gt?reactExports.createElement(DraggableZone,{handleSelector:Gt.dragHandleSelector||"#".concat(qt),preventDragSelector:"button",onStart:zn,onDragChange:En,onStop:sn,position:Yr},Cn):Cn)))||null});ModalBase.displayName="Modal";var Modal=styled(ModalBase,getStyles$2,void 0,{scope:"Modal",fields:["theme","styles","enableAriaHiddenSiblings"]});Modal.displayName="Modal";var assign$2=__assign$4;function withSlots(j,_e){for(var et=[],tt=2;tt0)throw new Error("Any module using getSlots must use withSlots. Please see withSlots javadoc for more info.");return _renderSlot(_e[ot],st,tt[ot],tt.slots&&tt.slots[ot],tt._defaultStyles&&tt._defaultStyles[ot],tt.theme)};it.isSlot=!0,et[ot]=it}};for(var nt in _e)rt(nt);return et}function _translateShorthand(j,_e){var et,tt;return typeof _e=="string"||typeof _e=="number"||typeof _e=="boolean"?tt=(et={},et[j]=_e,et):tt=_e,tt}function _constructFinalProps(j,_e){for(var et=[],tt=2;tt2)return{rowGap:{value:0,unit:"px"},columnGap:{value:0,unit:"px"}};if(et.length===2)return{rowGap:_getValueUnitGap(_getThemedSpacing(et[0],_e)),columnGap:_getValueUnitGap(_getThemedSpacing(et[1],_e))};var tt=_getValueUnitGap(_getThemedSpacing(j,_e));return{rowGap:tt,columnGap:tt}},parsePadding=function(j,_e){if(j===void 0||typeof j=="number"||j==="")return j;var et=j.split(" ");return et.length<2?_getThemedSpacing(j,_e):et.reduce(function(tt,rt){return _getThemedSpacing(tt,_e)+" "+_getThemedSpacing(rt,_e)})},nameMap={start:"flex-start",end:"flex-end"},GlobalClassNames={root:"ms-Stack",inner:"ms-Stack-inner",child:"ms-Stack-child"},styles$2=function(j,_e,et){var tt,rt,nt,ot,it,st,lt,ut,ct,dt,ft,pt,gt,vt=j.className,bt=j.disableShrink,_t=j.enableScopedSelectors,xt=j.grow,yt=j.horizontal,Et=j.horizontalAlign,St=j.reversed,$t=j.verticalAlign,At=j.verticalFill,wt=j.wrap,Ct=getGlobalClassNames(GlobalClassNames,_e),It=et&&et.childrenGap?et.childrenGap:j.gap,Ot=et&&et.maxHeight?et.maxHeight:j.maxHeight,Nt=et&&et.maxWidth?et.maxWidth:j.maxWidth,Pt=et&&et.padding?et.padding:j.padding,Mt=parseGap(It,_e),Rt=Mt.rowGap,Lt=Mt.columnGap,jt="".concat(-.5*Lt.value).concat(Lt.unit),Gt="".concat(-.5*Rt.value).concat(Rt.unit),Vt={textOverflow:"ellipsis"},Yt="> "+(_t?"."+GlobalClassNames.child:"*"),Xt=(tt={},tt["".concat(Yt,":not(.").concat(GlobalClassNames$1.root,")")]={flexShrink:0},tt);return wt?{root:[Ct.root,{flexWrap:"wrap",maxWidth:Nt,maxHeight:Ot,width:"auto",overflow:"visible",height:"100%"},Et&&(rt={},rt[yt?"justifyContent":"alignItems"]=nameMap[Et]||Et,rt),$t&&(nt={},nt[yt?"alignItems":"justifyContent"]=nameMap[$t]||$t,nt),vt,{display:"flex"},yt&&{height:At?"100%":"auto"}],inner:[Ct.inner,(ot={display:"flex",flexWrap:"wrap",marginLeft:jt,marginRight:jt,marginTop:Gt,marginBottom:Gt,overflow:"visible",boxSizing:"border-box",padding:parsePadding(Pt,_e),width:Lt.value===0?"100%":"calc(100% + ".concat(Lt.value).concat(Lt.unit,")"),maxWidth:"100vw"},ot[Yt]=__assign$4({margin:"".concat(.5*Rt.value).concat(Rt.unit," ").concat(.5*Lt.value).concat(Lt.unit)},Vt),ot),bt&&Xt,Et&&(it={},it[yt?"justifyContent":"alignItems"]=nameMap[Et]||Et,it),$t&&(st={},st[yt?"alignItems":"justifyContent"]=nameMap[$t]||$t,st),yt&&(lt={flexDirection:St?"row-reverse":"row",height:Rt.value===0?"100%":"calc(100% + ".concat(Rt.value).concat(Rt.unit,")")},lt[Yt]={maxWidth:Lt.value===0?"100%":"calc(100% - ".concat(Lt.value).concat(Lt.unit,")")},lt),!yt&&(ut={flexDirection:St?"column-reverse":"column",height:"calc(100% + ".concat(Rt.value).concat(Rt.unit,")")},ut[Yt]={maxHeight:Rt.value===0?"100%":"calc(100% - ".concat(Rt.value).concat(Rt.unit,")")},ut)]}:{root:[Ct.root,(ct={display:"flex",flexDirection:yt?St?"row-reverse":"row":St?"column-reverse":"column",flexWrap:"nowrap",width:"auto",height:At?"100%":"auto",maxWidth:Nt,maxHeight:Ot,padding:parsePadding(Pt,_e),boxSizing:"border-box"},ct[Yt]=Vt,ct),bt&&Xt,xt&&{flexGrow:xt===!0?1:xt},Et&&(dt={},dt[yt?"justifyContent":"alignItems"]=nameMap[Et]||Et,dt),$t&&(ft={},ft[yt?"alignItems":"justifyContent"]=nameMap[$t]||$t,ft),yt&&Lt.value>0&&(pt={},pt[St?"".concat(Yt,":not(:last-child)"):"".concat(Yt,":not(:first-child)")]={marginLeft:"".concat(Lt.value).concat(Lt.unit)},pt),!yt&&Rt.value>0&&(gt={},gt[St?"".concat(Yt,":not(:last-child)"):"".concat(Yt,":not(:first-child)")]={marginTop:"".concat(Rt.value).concat(Rt.unit)},gt),vt]}},StackView=function(j){var _e=j.as,et=_e===void 0?"div":_e,tt=j.disableShrink,rt=tt===void 0?!1:tt,nt=j.doNotRenderFalsyValues,ot=nt===void 0?!1:nt,it=j.enableScopedSelectors,st=it===void 0?!1:it,lt=j.wrap,ut=__rest$1(j,["as","disableShrink","doNotRenderFalsyValues","enableScopedSelectors","wrap"]),ct=_processStackChildren(j.children,{disableShrink:rt,enableScopedSelectors:st,doNotRenderFalsyValues:ot}),dt=getNativeProps(ut,htmlElementProperties),ft=getSlots(j,{root:et,inner:"div"});return lt?withSlots(ft.root,__assign$4({},dt),withSlots(ft.inner,null,ct)):withSlots(ft.root,__assign$4({},dt),ct)};function _processStackChildren(j,_e){var et=_e.disableShrink,tt=_e.enableScopedSelectors,rt=_e.doNotRenderFalsyValues,nt=reactExports.Children.toArray(j);return nt=reactExports.Children.map(nt,function(ot){if(!ot)return rt?null:ot;if(!reactExports.isValidElement(ot))return ot;if(ot.type===reactExports.Fragment)return ot.props.children?_processStackChildren(ot.props.children,{disableShrink:et,enableScopedSelectors:tt,doNotRenderFalsyValues:rt}):null;var it=ot,st={};_isStackItem(ot)&&(st={shrink:!et});var lt=it.props.className;return reactExports.cloneElement(it,__assign$4(__assign$4(__assign$4(__assign$4({},st),it.props),lt&&{className:lt}),tt&&{className:css$3(GlobalClassNames.child,lt)}))}),nt}function _isStackItem(j){return!!j&&typeof j=="object"&&!!j.type&&j.type.displayName===StackItem.displayName}var StackStatics={Item:StackItem},Stack$1=createComponent(StackView,{displayName:"Stack",styles:styles$2,statics:StackStatics});const AzureContentSafetyIcon="data:image/svg+xml,%3csvg%20id='uuid-40011f3f-22d0-4882-8376-afe2ef514a7e'%20xmlns='http://www.w3.org/2000/svg'%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%3e%3cdefs%3e%3clinearGradient%20id='uuid-5c4dfc33-1236-40a5-b487-5c8d33e4013b'%20x1='12.062'%20y1='5.427'%20x2='12.062'%20y2='3.991'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2376bc2d'/%3e%3cstop%20offset='1'%20stop-color='%2386d633'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-5dc2ae3c-3a23-47ff-9dc1-e087ff0e2742'%20x1='2.902'%20y1='6.762'%20x2='9.455'%20y2='6.762'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23e6e6e6'/%3e%3cstop%20offset='1'%20stop-color='%23999'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-d781b8b0-afbe-4f6e-a478-ee1974441cbf'%20x1='-1288.505'%20y1='-521.774'%20x2='-1284.777'%20y2='-521.774'%20gradientTransform='translate(-512.319%201291.819)%20rotate(90)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2386d633'/%3e%3cstop%20offset='1'%20stop-color='%2376bc2d'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-efb884ed-afc6-4667-82f2-34983e82b107'%20x1='2.902'%20y1='11.544'%20x2='9.455'%20y2='11.544'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23e6e6e6'/%3e%3cstop%20offset='1'%20stop-color='%23999'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-e8c8c19d-aa6c-48ed-823e-cfec5a014d78'%20x1='-274.183'%20y1='-521.774'%20x2='-279.397'%20y2='-521.774'%20gradientTransform='translate(-512.319%20-263.224)%20rotate(-90)%20scale(1%20-1)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23faa21d'/%3e%3cstop%20offset='.999'%20stop-color='%23f78d1e'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-7a6a88dd-1778-43da-9238-45bfc5a17b3e'%20x1='-140.646'%20y1='13.626'%20x2='-143.764'%20y2='4.784'%20gradientTransform='translate(149.182)%20skewX(-19.425)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2350e6ff'/%3e%3cstop%20offset='1'%20stop-color='%239cebff'/%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='m16.62,4.541l-2.765-1.597c-.129-.075-.291.019-.291.168v.822h-6.158v1.55h6.158v.822c0,.149.161.242.291.168l2.765-1.597c.129-.075.129-.261,0-.336Z'%20fill='url(%23uuid-5c4dfc33-1236-40a5-b487-5c8d33e4013b)'/%3e%3cpath%20d='m4.495,9.616h-1.592v-4.634c-.002-.591.476-1.071,1.067-1.073,0,0,.001,0,.002,0h5.484v1.592h-4.96v4.115Z'%20fill='url(%23uuid-5dc2ae3c-3a23-47ff-9dc1-e087ff0e2742)'/%3e%3ccircle%20cx='9.455'%20cy='4.603'%20r='2.607'%20fill='url(%23uuid-d781b8b0-afbe-4f6e-a478-ee1974441cbf)'/%3e%3cpath%20d='m9.455,14.4H3.971c-.591,0-1.07-.48-1.069-1.071,0,0,0-.001,0-.002v-4.638h1.592v4.115h4.96v1.596Z'%20fill='url(%23uuid-efb884ed-afc6-4667-82f2-34983e82b107)'/%3e%3ccircle%20cx='9.455'%20cy='13.397'%20r='2.607'%20fill='url(%23uuid-e8c8c19d-aa6c-48ed-823e-cfec5a014d78)'/%3e%3cpath%20d='m5.008,12.097H1.696c-.272,0-.453-.301-.405-.673l.584-4.534c.048-.372.307-.673.578-.673h3.312c.272,0,.453.301.405.673l-.584,4.534c-.048.372-.307.673-.578.673Z'%20fill='url(%23uuid-7a6a88dd-1778-43da-9238-45bfc5a17b3e)'/%3e%3cpath%20d='m.362,3.138C.162,3.138,0,2.976,0,2.777h0V.361C0,.162.162,0,.362,0h2.266c.2,0,.362.162.362.361,0,.199-.162.361-.362.361H.724v2.053c0,.199-.161.362-.361.362,0,0,0,0-.001,0Zm17.638-.361V.361C18,.162,17.838,0,17.638,0h-2.266c-.2,0-.362.162-.362.361s.162.361.362.361h1.904v2.053c0,.199.162.361.362.361.2,0,.361-.162.362-.361h0ZM2.99,17.639c0-.199-.162-.361-.362-.361H.724v-2.053c0-.199-.162-.361-.362-.361-.2,0-.362.162-.362.361v2.415c0,.199.163.36.362.36h2.266c.2,0,.362-.162.362-.361Zm15.01.001v-2.415c0-.199-.162-.361-.362-.361-.2,0-.361.162-.362.361v2.053h-1.904c-.2,0-.362.162-.362.362,0,.199.162.361.362.361h2.266c.199,0,.361-.161.362-.36Z'%20fill='%2376bc2d'/%3e%3c/svg%3e",BingLogoIcon="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20234%20343.41'%3e%3cdefs%3e%3clinearGradient%20id='a'%20x1='-29.25'%20y1='662.02'%20x2='-23.09'%20y2='658.46'%20gradientTransform='matrix(24.45,%200,%200,%20-24.45,%20967.18,%2016420.97)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2337bdff'/%3e%3cstop%20offset='0.18'%20stop-color='%2333bffd'/%3e%3cstop%20offset='0.36'%20stop-color='%2328c5f5'/%3e%3cstop%20offset='0.53'%20stop-color='%2315d0e9'/%3e%3cstop%20offset='0.55'%20stop-color='%2312d1e7'/%3e%3cstop%20offset='0.59'%20stop-color='%231cd2e5'/%3e%3cstop%20offset='0.77'%20stop-color='%2342d8dc'/%3e%3cstop%20offset='0.91'%20stop-color='%2359dbd6'/%3e%3cstop%20offset='1'%20stop-color='%2362dcd4'/%3e%3c/linearGradient%3e%3clinearGradient%20id='b'%20x1='-32.86'%20y1='656.68'%20x2='-23.89'%20y2='656.68'%20gradientTransform='matrix(24.45,%200,%200,%20-24.45,%20967.18,%2016420.97)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2339d2ff'/%3e%3cstop%20offset='0.15'%20stop-color='%2338cefe'/%3e%3cstop%20offset='0.29'%20stop-color='%2335c3fa'/%3e%3cstop%20offset='0.43'%20stop-color='%232fb0f3'/%3e%3cstop%20offset='0.55'%20stop-color='%23299aeb'/%3e%3cstop%20offset='0.58'%20stop-color='%232692ec'/%3e%3cstop%20offset='0.76'%20stop-color='%231a6cf1'/%3e%3cstop%20offset='0.91'%20stop-color='%231355f4'/%3e%3cstop%20offset='1'%20stop-color='%23104cf5'/%3e%3c/linearGradient%3e%3clinearGradient%20id='c'%20x1='-31.2'%20y1='655.9'%20x2='-31.2'%20y2='667.89'%20gradientTransform='matrix(24.45,%200,%200,%20-24.45,%20967.18,%2016420.97)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%231b48ef'/%3e%3cstop%20offset='0.12'%20stop-color='%231c51f0'/%3e%3cstop%20offset='0.32'%20stop-color='%231e69f5'/%3e%3cstop%20offset='0.57'%20stop-color='%232190fb'/%3e%3cstop%20offset='1'%20stop-color='%2326b8f4'/%3e%3c/linearGradient%3e%3cclipPath%20id='d'%20transform='translate(-163%20-82.94)'%3e%3crect%20x='163.02'%20y='288.38'%20width='227.17'%20height='140.76'%20style='fill:none'/%3e%3c/clipPath%3e%3clinearGradient%20id='e'%20x1='-31.08'%20y1='654.47'%20x2='-25.54'%20y2='660'%20gradientTransform='matrix(24.45,%200,%200,%20-24.45,%20967.18,%2016420.97)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23fff'/%3e%3cstop%20offset='0.37'%20stop-color='%23fdfdfd'/%3e%3cstop%20offset='0.51'%20stop-color='%23f6f6f6'/%3e%3cstop%20offset='0.6'%20stop-color='%23ebebeb'/%3e%3cstop%20offset='0.68'%20stop-color='%23dadada'/%3e%3cstop%20offset='0.75'%20stop-color='%23c4c4c4'/%3e%3cstop%20offset='0.81'%20stop-color='%23a8a8a8'/%3e%3cstop%20offset='0.86'%20stop-color='%23888'/%3e%3cstop%20offset='0.91'%20stop-color='%23626262'/%3e%3cstop%20offset='0.95'%20stop-color='%23373737'/%3e%3cstop%20offset='0.99'%20stop-color='%23090909'/%3e%3cstop%20offset='1'/%3e%3c/linearGradient%3e%3cclipPath%20id='f'%20transform='translate(-163%20-82.94)'%3e%3crect%20x='163.02'%20y='82.87'%20width='86.51'%20height='302.96'%20style='fill:none'/%3e%3c/clipPath%3e%3clinearGradient%20id='g'%20x1='-31.2'%20y1='668.1'%20x2='-31.2'%20y2='656.02'%20xlink:href='%23e'/%3e%3c/defs%3e%3ctitle%3ebing-logo%3c/title%3e%3cpath%20d='M397,303.4a92.73,92.73,0,0,1-24.84,63.16,41.81,41.81,0,0,0,4.5-6,38.11,38.11,0,0,0,2.69-5.08,17.7,17.7,0,0,0,.74-1.78,17.25,17.25,0,0,0,.65-1.78c.21-.56.39-1.14.55-1.72s.33-1.2.46-1.81l.07-.21c.14-.6.25-1.2.37-1.81s.23-1.25.33-1.88v0c.09-.58.16-1.16.21-1.76a40,40,0,0,0,.21-4.13A41.41,41.41,0,0,0,377,317.11a36.51,36.51,0,0,0-2.85-4.17,39.93,39.93,0,0,0-4-4.43,41.45,41.45,0,0,0-12.36-8.28,38.78,38.78,0,0,0-6.22-2.14l-.09,0-.74-.25-10.81-3.71v0l-28.27-9.72c-.09,0-.21,0-.28,0l-1.77-.65A26.23,26.23,0,0,1,296.29,272L286,245.62l-11.83-30.16-2.27-5.82-.58-1.18a13.35,13.35,0,0,1-1-5.08,12,12,0,0,1,0-1.35,13.19,13.19,0,0,1,18.26-10.79l52.69,27,10.39,5.31A91.11,91.11,0,0,1,367,235a92.45,92.45,0,0,1,29.79,61.87C396.91,299.06,397,301.22,397,303.4Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23a)'/%3e%3cpath%20d='M382.91,338.56a42.8,42.8,0,0,1-.72,7.82c-.14.67-.28,1.35-.44,2-.3,1.2-.62,2.36-1,3.53-.21.6-.42,1.2-.65,1.78s-.49,1.18-.74,1.78a38.1,38.1,0,0,1-2.69,5.08,42.22,42.22,0,0,1-4.5,6c-7.68,8.49-33.75,23.63-43.36,29.79l-21.33,13c-15.63,9.63-30.41,16.45-49,16.91-.88,0-1.74,0-2.6,0-1.2,0-2.39,0-3.57-.07a92.86,92.86,0,0,1-74.92-43.17,91.58,91.58,0,0,1-13.68-38.67,41.13,41.13,0,0,0,60,28.95l.14-.07,2.09-1.25,8.49-5,10.81-6.4v-.3l1.39-.83,96.71-57.29,7.44-4.41.74.25.09,0a38.31,38.31,0,0,1,6.22,2.14,41.45,41.45,0,0,1,12.36,8.28,40,40,0,0,1,4,4.43,37,37,0,0,1,2.85,4.17A41.64,41.64,0,0,1,382.91,338.56Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23b)'/%3e%3cpath%20d='M245.24,147.35l0,213.29L234.39,367l-8.5,5-2.09,1.27a.24.24,0,0,0-.13.06,41.13,41.13,0,0,1-60-28.94c-.16-.89-.28-1.81-.38-2.7-.13-1.68-.22-3.33-.25-5v-240a13.77,13.77,0,0,1,21.46-11.41l42.07,27.48a5.55,5.55,0,0,0,.73.51A41.14,41.14,0,0,1,245.24,147.35Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23c)'/%3e%3cg%20style='opacity:0.14900000393390656;isolation:isolate'%3e%3cg%20style='clip-path:url(%23d)'%3e%3cpath%20d='M382.91,338.56a42.8,42.8,0,0,1-.72,7.82c-.14.67-.28,1.35-.44,2-.3,1.2-.62,2.36-1,3.53-.21.6-.42,1.2-.65,1.78s-.49,1.18-.74,1.78a38.1,38.1,0,0,1-2.69,5.08,41.81,41.81,0,0,1-4.5,6c-7.68,8.49-33.75,23.63-43.36,29.79l-21.33,13c-15.63,9.63-30.41,16.45-49,16.91-.88,0-1.74,0-2.6,0-1.2,0-2.39,0-3.57-.07a92.86,92.86,0,0,1-74.92-43.17,91.58,91.58,0,0,1-13.68-38.67,41.13,41.13,0,0,0,60,28.95l.14-.07,2.09-1.25,8.49-5,10.81-6.4v-.3l1.39-.83,96.71-57.29,7.44-4.41.74.25.09,0a38.31,38.31,0,0,1,6.22,2.14,41.45,41.45,0,0,1,12.36,8.28,40,40,0,0,1,4,4.43,37,37,0,0,1,2.85,4.17A41.64,41.64,0,0,1,382.91,338.56Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23e)'/%3e%3c/g%3e%3c/g%3e%3cg%20style='opacity:0.09799999743700027;isolation:isolate'%3e%3cg%20style='clip-path:url(%23f)'%3e%3cpath%20d='M245.24,147.35l0,213.29L234.39,367l-8.5,5-2.09,1.27a.24.24,0,0,0-.13.06,41.13,41.13,0,0,1-60-28.94c-.16-.89-.28-1.81-.38-2.7-.13-1.68-.22-3.33-.25-5v-240a13.77,13.77,0,0,1,21.46-11.41l42.07,27.48a5.55,5.55,0,0,0,.73.51A41.14,41.14,0,0,1,245.24,147.35Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23g)'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",DefaultIcon=()=>jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16px",height:"16px",viewBox:"0 0 18 18",children:[jsxRuntimeExports.jsxs("defs",{children:[jsxRuntimeExports.jsxs("linearGradient",{id:"a5efbc52-c9a4-425f-9d94-50e000195659",x1:"9",y1:"18.967",x2:"9",y2:"3.398",gradientUnits:"userSpaceOnUse",children:[jsxRuntimeExports.jsx("stop",{offset:"0",stopColor:"#0078d4"}),jsxRuntimeExports.jsx("stop",{offset:"0.156",stopColor:"#1380da"}),jsxRuntimeExports.jsx("stop",{offset:"0.528",stopColor:"#3c91e5"}),jsxRuntimeExports.jsx("stop",{offset:"0.822",stopColor:"#559cec"}),jsxRuntimeExports.jsx("stop",{offset:"1",stopColor:"#5ea0ef"})]}),jsxRuntimeExports.jsxs("linearGradient",{id:"a110d41d-e4ca-48ee-9efe-328e60a20dcc",x1:"9",y1:"5.019",x2:"9",y2:"13.676",gradientUnits:"userSpaceOnUse",children:[jsxRuntimeExports.jsx("stop",{offset:"0.22",stopColor:"#fff"}),jsxRuntimeExports.jsx("stop",{offset:"1",stopColor:"#e6e6e6"})]}),jsxRuntimeExports.jsxs("linearGradient",{id:"bcf81335-a15c-4e8a-85c4-cb14c4ef74b0",x1:"8.991",y1:"2.883",x2:"8.991",y2:"11.32",gradientUnits:"userSpaceOnUse",children:[jsxRuntimeExports.jsx("stop",{offset:"0.22",stopColor:"#fff"}),jsxRuntimeExports.jsx("stop",{offset:"1",stopColor:"#e6e6e6"})]})]}),jsxRuntimeExports.jsx("g",{id:"b5d797c5-507f-4358-b61e-ca040c36ef52",children:jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("path",{d:"M.038,9.142,4.4,16.69a.285.285,0,0,0,.246.142h8.716a.285.285,0,0,0,.246-.142l4.358-7.548a.283.283,0,0,0,0-.284L13.6,1.31a.285.285,0,0,0-.246-.142H4.642A.285.285,0,0,0,4.4,1.31L.038,8.858A.283.283,0,0,0,.038,9.142Z",fill:"url(#a5efbc52-c9a4-425f-9d94-50e000195659)"}),jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("path",{id:"a81cd782-d573-434f-a6f1-758ffbb6f88b",d:"M12.239,6.083l.048.042a.085.085,0,0,0,.115,0l.447-.374.808-1.334a.083.083,0,0,0,0-.1l-.138-.145a.085.085,0,0,0-.1,0l-1.273.863L11.78,5.5a.086.086,0,0,0,0,.109l.049.048L9.2,8.394l-.543-.6-.6.6a1.093,1.093,0,0,1-.26.911.945.945,0,0,1-.826.3L4.376,12.232a.163.163,0,0,0,0,.231l0,.005,1.255,1.3a.162.162,0,0,0,.23.011l.011-.011L8.4,11.14a1.037,1.037,0,0,1,.3-.869.964.964,0,0,1,.826-.3l.6-.6L9.6,8.78Z",opacity:"0.4",fill:"url(#a110d41d-e4ca-48ee-9efe-328e60a20dcc)"}),jsxRuntimeExports.jsx("path",{d:"M13.283,12.057l-.6-.645L8.648,7.278h0l-.2-.218a2.242,2.242,0,0,0-.525-2.2,2.067,2.067,0,0,0-1.865-.6.09.09,0,0,0-.065.11.088.088,0,0,0,.017.035l1.05,1.068a.091.091,0,0,1,0,.085L6.808,6.65a.084.084,0,0,1-.061.06l-1.074.3a.084.084,0,0,1-.084,0l-1.02-1.08a.084.084,0,0,0-.145.054,2.19,2.19,0,0,0,.6,1.919,2.035,2.035,0,0,0,2.034.543l.036.043.23.235h0l4.592,4.828a.954.954,0,0,0,1.34.048l.048-.048a1.017,1.017,0,0,0,.284-.724A1.117,1.117,0,0,0,13.283,12.057Z",fill:"url(#bcf81335-a15c-4e8a-85c4-cb14c4ef74b0)"})]})]})})]}),OpenAIIcon$1=()=>jsxRuntimeExports.jsxs("svg",{fill:"currentColor",width:"16px",height:"16px",viewBox:"0 0 2048 2048",role:"img",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("title",{children:"OpenAI icon"}),jsxRuntimeExports.jsx("path",{d:"M832 676l575 288v760l-575 288-575-288V964l575-288zm0 144l-368 184 368 183 368-183-368-184zm-447 825l383 191v-538l-383-191v538zm894 0v-538l-383 191v538l383-191zm577-733q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9zM704 496q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9zm1206-48q0 23-15 38t-39 16q-27 0-57 11t-58 28-54 37-45 40q-19 19-39 44t-38 54-28 59-11 57q0 23-15 38t-39 16q-23 0-38-15t-16-39q0-27-11-57t-28-58-37-54-40-45q-19-19-44-39t-54-38-59-28-57-11q-23 0-38-15t-16-39q0-23 15-38t39-16q27 0 57-11t58-28 54-37 45-40q19-19 39-44t38-54 28-59 11-57q0-23 15-38t39-16q23 0 38 15t16 39q0 27 11 57t28 58 37 54 40 45q19 19 44 39t54 38 59 28 57 11q23 0 38 15t16 39zm-438 212q38-65 92-119t120-93q-65-38-119-92t-93-120q-38 65-92 119t-120 93q65 38 119 92t93 120z"})]}),PromptIcon=()=>jsxRuntimeExports.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntimeExports.jsx("path",{d:"M9.5 6.50238C9.5 6.22624 9.72386 6.00238 10 6.00238C10.2761 6.00238 10.5 6.22624 10.5 6.50238V7.50391C10.5 7.78005 10.2761 8.00391 10 8.00391C9.72386 8.00391 9.5 7.78005 9.5 7.50391V6.50238ZM12.8506 7.44332C12.6553 7.24806 12.3388 7.24806 12.1435 7.44332L11.4353 8.15151C11.2401 8.34677 11.2401 8.66335 11.4353 8.85861C11.6306 9.05388 11.9472 9.05388 12.1424 8.85861L12.8506 8.15043C13.0459 7.95517 13.0459 7.63858 12.8506 7.44332ZM7.8521 7.44332C7.65684 7.24806 7.34026 7.24806 7.145 7.44332C6.94973 7.63858 6.94973 7.95517 7.145 8.15043L7.85318 8.85861C8.04844 9.05388 8.36503 9.05388 8.56029 8.85861C8.75555 8.66335 8.75555 8.34677 8.56029 8.15151L7.8521 7.44332ZM10 2C13.3137 2 16 4.59693 16 7.80041C16 9.47737 15.2546 11.0164 13.7961 12.3942C13.7324 12.4544 13.6831 12.5269 13.6512 12.6065L13.6251 12.6883L12.6891 16.6051C12.5048 17.3763 11.8236 17.935 11.0181 17.9947L10.8748 18H9.12546C8.30655 18 7.59 17.4839 7.34866 16.7385L7.31108 16.6047L6.37626 12.6886C6.34955 12.5766 6.29016 12.4745 6.20516 12.3942C4.8153 11.0819 4.07265 9.62354 4.00507 8.03903L4 7.80041L4.00321 7.60894C4.1077 4.49409 6.75257 2 10 2ZM7.955 15L8.27386 16.3344L8.30004 16.4305C8.39695 16.7298 8.67583 16.9517 9.0116 16.993L9.12546 17L10.8379 17.0007L10.9442 16.9974C11.2865 16.9721 11.5726 16.7609 11.6854 16.4718L11.7165 16.3727L12.045 15H7.955ZM10 3C7.36782 3 5.21188 4.95301 5.0151 7.41357L5.00307 7.62569L4.99977 7.77916L5.00416 7.99642C5.05977 9.30026 5.67758 10.5208 6.89167 11.6671C7.07995 11.8449 7.22191 12.0647 7.30572 12.3078L7.34894 12.4564L7.716 14H9.50024V9.49707C9.50024 9.22093 9.7241 8.99707 10.0002 8.99707C10.2764 8.99707 10.5002 9.22093 10.5002 9.49707V14H12.285L12.6722 12.3851L12.7231 12.2343C12.8091 12.0198 12.9409 11.8265 13.1094 11.6673C14.3825 10.4646 15 9.18054 15 7.80041C15 5.15693 12.7689 3 10 3Z",fill:"currentColor"})}),PythonIcon=()=>jsxRuntimeExports.jsxs("svg",{width:"16px",height:"16px",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.0164 2C10.8193 2 9.03825 3.72453 9.03825 5.85185V8.51852H15.9235V9.25926H5.97814C3.78107 9.25926 2 10.9838 2 13.1111L2 18.8889C2 21.0162 3.78107 22.7407 5.97814 22.7407H8.27322V19.4815C8.27322 17.3542 10.0543 15.6296 12.2514 15.6296H19.5956C21.4547 15.6296 22.9617 14.1704 22.9617 12.3704V5.85185C22.9617 3.72453 21.1807 2 18.9836 2H13.0164ZM12.0984 6.74074C12.8589 6.74074 13.4754 6.14378 13.4754 5.40741C13.4754 4.67103 12.8589 4.07407 12.0984 4.07407C11.3378 4.07407 10.7213 4.67103 10.7213 5.40741C10.7213 6.14378 11.3378 6.74074 12.0984 6.74074Z",fill:"#327EBD"}),jsxRuntimeExports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18.9834 30C21.1805 30 22.9616 28.2755 22.9616 26.1482V23.4815L16.0763 23.4815L16.0763 22.7408L26.0217 22.7408C28.2188 22.7408 29.9998 21.0162 29.9998 18.8889V13.1111C29.9998 10.9838 28.2188 9.25928 26.0217 9.25928L23.7266 9.25928V12.5185C23.7266 14.6459 21.9455 16.3704 19.7485 16.3704L12.4042 16.3704C10.5451 16.3704 9.03809 17.8296 9.03809 19.6296L9.03809 26.1482C9.03809 28.2755 10.8192 30 13.0162 30H18.9834ZM19.9015 25.2593C19.1409 25.2593 18.5244 25.8562 18.5244 26.5926C18.5244 27.329 19.1409 27.9259 19.9015 27.9259C20.662 27.9259 21.2785 27.329 21.2785 26.5926C21.2785 25.8562 20.662 25.2593 19.9015 25.2593Z",fill:"#FFDA4B"})]}),TypeScriptIcon="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20aria-label='TypeScript'%20role='img'%20viewBox='0%200%20512%20512'%3e%3crect%20width='512'%20height='512'%20rx='15%25'%20fill='%233178c6'/%3e%3cpath%20fill='%23ffffff'%20d='m233%20284h64v-41H118v41h64v183h51zm84%20173c8.1%204.2%2018%207.3%2029%209.4s23%203.1%2035%203.1c12%200%2023-1.1%2034-3.4c11-2.3%2020-6.1%2028-11c8.1-5.3%2015-12%2019-21s7.1-19%207.1-32c0-9.1-1.4-17-4.1-24s-6.6-13-12-18c-5.1-5.3-11-10-18-14s-15-8.2-24-12c-6.6-2.7-12-5.3-18-7.9c-5.2-2.6-9.7-5.2-13-7.8c-3.7-2.7-6.5-5.5-8.5-8.4c-2-3-3-6.3-3-10c0-3.4.89-6.5%202.7-9.3s4.3-5.1%207.5-7.1c3.2-2%207.2-3.5%2012-4.6c4.7-1.1%209.9-1.6%2016-1.6c4.2%200%208.6.31%2013%20.94c4.6.63%209.3%201.6%2014%202.9c4.7%201.3%209.3%202.9%2014%204.9c4.4%202%208.5%204.3%2012%206.9v-47c-7.6-2.9-16-5.1-25-6.5s-19-2.1-31-2.1c-12%200-23%201.3-34%203.8s-20%206.5-28%2012c-8.1%205.4-14%2012-19%2021c-4.7%208.4-7%2018-7%2030c0%2015%204.3%2028%2013%2038c8.6%2011%2022%2019%2039%2027c6.9%202.8%2013%205.6%2019%208.3s11%205.5%2015%208.4c4.3%202.9%207.7%206.1%2010%209.5c2.5%203.4%203.8%207.4%203.8%2012c0%203.2-.78%206.2-2.3%209s-3.9%205.2-7.1%207.2s-7.1%203.6-12%204.8c-4.7%201.1-10%201.7-17%201.7c-11%200-22-1.9-32-5.7c-11-3.8-21-9.5-28.1-15.44z'/%3e%3c/svg%3e",VectorSearchIcon=()=>jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16px",height:"16px",viewBox:"0 0 18 18",role:"img",children:[jsxRuntimeExports.jsx("defs",{children:jsxRuntimeExports.jsxs("linearGradient",{id:"fb5d9d20-fc2c-4e2c-bffd-dc236176d8b2",x1:"-6428.21",y1:"9646.124",x2:"-6428.21",y2:"9617.899",gradientTransform:"matrix(0.5, 0, 0, -0.5, 3224.856, 4823.856)",gradientUnits:"userSpaceOnUse",children:[jsxRuntimeExports.jsx("stop",{offset:"0",stopColor:"#5ea0ef"}),jsxRuntimeExports.jsx("stop",{offset:"0.178",stopColor:"#589eed"}),jsxRuntimeExports.jsx("stop",{offset:"0.406",stopColor:"#4897e9"}),jsxRuntimeExports.jsx("stop",{offset:"0.662",stopColor:"#2e8ce1"}),jsxRuntimeExports.jsx("stop",{offset:"0.936",stopColor:"#0a7cd7"}),jsxRuntimeExports.jsx("stop",{offset:"1",stopColor:"#0078d4"})]})}),jsxRuntimeExports.jsx("g",{id:"a05a9809-540f-4ec8-9a73-07896b5e7f5c",children:jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("path",{d:"M8.438,10.379h4.234v4.234H8.438ZM3.5,4.734H7.732V.5H4.086a.588.588,0,0,0-.588.588Zm.588,9.879H7.732V10.379H3.5v3.646A.588.588,0,0,0,4.086,14.613ZM3.5,9.674H7.732V5.44H3.5Zm9.88,4.939h3.646a.588.588,0,0,0,.588-.588V10.379H13.378ZM8.438,9.674h4.234V5.44H8.438Zm4.94,0h4.234V5.44H13.378Zm0-9.174V4.734h4.234V1.088A.588.588,0,0,0,17.024.5ZM8.438,4.734h4.234V.5H8.438Z",fill:"url(#fb5d9d20-fc2c-4e2c-bffd-dc236176d8b2)"}),jsxRuntimeExports.jsx("rect",{x:"-0.212",y:"14.751",width:"5.457",height:"1.243",rx:"0.581",transform:"translate(-10.133 6.282) rotate(-45)",fill:"#198ab3"}),jsxRuntimeExports.jsx("circle",{cx:"5.959",cy:"11.709",r:"3.744",fill:"#50e6ff"}),jsxRuntimeExports.jsx("circle",{cx:"5.952",cy:"11.642",r:"2.94",fill:"#fff"})]})})]}),DEFAULT_SIZE$1=16,toolsIcons={PromptFlowToolAzureContentSafety:jsxRuntimeExports.jsx(AzureContentSafetyIcon,{width:DEFAULT_SIZE$1,height:DEFAULT_SIZE$1}),PromptFlowToolSerpAPI:jsxRuntimeExports.jsx(DefaultIcon,{}),PromptFlowToolBing:jsxRuntimeExports.jsx(BingLogoIcon,{width:DEFAULT_SIZE$1,height:DEFAULT_SIZE$1}),PromptFlowToolAzureContentModerator:jsxRuntimeExports.jsx(AzureContentSafetyIcon,{width:DEFAULT_SIZE$1,height:DEFAULT_SIZE$1}),PromptFlowToolVectorIndexLookupByText:jsxRuntimeExports.jsx(VectorSearchIcon,{}),PromptFlowToolFaissIndexLookup:jsxRuntimeExports.jsx(VectorSearchIcon,{}),PromptFlowToolVectorDBLookup:jsxRuntimeExports.jsx(VectorSearchIcon,{}),PromptFlowToolVectorSearch:jsxRuntimeExports.jsx(VectorSearchIcon,{}),PromptFlowToolLlm:jsxRuntimeExports.jsx(OpenAIIcon$1,{}),PromptFlowToolPython:jsxRuntimeExports.jsx(PythonIcon,{}),PromptFlowToolTypeScript:jsxRuntimeExports.jsx(TypeScriptIcon,{width:DEFAULT_SIZE$1,height:DEFAULT_SIZE$1}),PromptFlowToolPrompt:jsxRuntimeExports.jsx(PromptIcon,{}),PromptFlowToolDefault:jsxRuntimeExports.jsx(DefaultIcon,{})};registerIcons({icons:{...toolsIcons}});var getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),rnds8=new Uint8Array(16);function rng(){if(!getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}var byteToHex=[];for(var i$1=0;i$1<256;++i$1)byteToHex[i$1]=(i$1+256).toString(16).substr(1);function bytesToUuid(j,_e){var et=_e||0,tt=byteToHex;return[tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]]].join("")}function v4(j,_e,et){var tt=_e&&et||0;typeof j=="string"&&(_e=j==="binary"?new Array(16):null,j=null),j=j||{};var rt=j.random||(j.rng||rng)();if(rt[6]=rt[6]&15|64,rt[8]=rt[8]&63|128,_e)for(var nt=0;nt<16;++nt)_e[tt+nt]=rt[nt];return _e||bytesToUuid(rt)}var toposort$1={exports:{}};toposort$1.exports=function(j){return toposort(uniqueNodes(j),j)};toposort$1.exports.array=toposort;function toposort(j,_e){for(var et=j.length,tt=new Array(et),rt={},nt=et;nt--;)rt[nt]||ot(j[nt],nt,[]);return tt;function ot(it,st,lt){if(lt.indexOf(it)>=0){var ut;try{ut=", node was:"+JSON.stringify(it)}catch{ut=""}throw new Error("Cyclic dependency"+ut)}if(!~j.indexOf(it))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(it));if(!rt[st]){rt[st]=!0;var ct=_e.filter(function(pt){return pt[0]===it});if(st=ct.length){var dt=lt.concat(it);do{var ft=ct[--st][1];ot(ft,j.indexOf(ft),dt)}while(st)}tt[--et]=it}}}function uniqueNodes(j){for(var _e=[],et=0,tt=j.length;et1?et-1:0),rt=1;rt2&&arguments[2]!==void 0?arguments[2]:stringToLowerCase;setPrototypeOf&&setPrototypeOf(j,null);let tt=_e.length;for(;tt--;){let rt=_e[tt];if(typeof rt=="string"){const nt=et(rt);nt!==rt&&(isFrozen(_e)||(_e[tt]=nt),rt=nt)}j[rt]=!0}return j}function cleanArray(j){for(let _e=0;_e/gm),TMPLIT_EXPR=seal(/\${[\w\W]*}/gm),DATA_ATTR=seal(/^data-[\-\w.\u00B7-\uFFFF]/),ARIA_ATTR=seal(/^aria-[\-\w]+$/),IS_ALLOWED_URI=seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),IS_SCRIPT_OR_DATA=seal(/^(?:\w+script|data):/i),ATTR_WHITESPACE=seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),DOCTYPE_NAME=seal(/^html$/i);var EXPRESSIONS=Object.freeze({__proto__:null,MUSTACHE_EXPR,ERB_EXPR,TMPLIT_EXPR,DATA_ATTR,ARIA_ATTR,IS_ALLOWED_URI,IS_SCRIPT_OR_DATA,ATTR_WHITESPACE,DOCTYPE_NAME});const getGlobal=function(){return typeof window>"u"?null:window},_createTrustedTypesPolicy=function(_e,et){if(typeof _e!="object"||typeof _e.createPolicy!="function")return null;let tt=null;const rt="data-tt-policy-suffix";et&&et.hasAttribute(rt)&&(tt=et.getAttribute(rt));const nt="dompurify"+(tt?"#"+tt:"");try{return _e.createPolicy(nt,{createHTML(ot){return ot},createScriptURL(ot){return ot}})}catch{return console.warn("TrustedTypes policy "+nt+" could not be created."),null}};function createDOMPurify(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:getGlobal();const _e=Ht=>createDOMPurify(Ht);if(_e.version="3.0.9",_e.removed=[],!j||!j.document||j.document.nodeType!==9)return _e.isSupported=!1,_e;let{document:et}=j;const tt=et,rt=tt.currentScript,{DocumentFragment:nt,HTMLTemplateElement:ot,Node:it,Element:st,NodeFilter:lt,NamedNodeMap:ut=j.NamedNodeMap||j.MozNamedAttrMap,HTMLFormElement:ct,DOMParser:dt,trustedTypes:ft}=j,pt=st.prototype,gt=lookupGetter(pt,"cloneNode"),vt=lookupGetter(pt,"nextSibling"),bt=lookupGetter(pt,"childNodes"),_t=lookupGetter(pt,"parentNode");if(typeof ot=="function"){const Ht=et.createElement("template");Ht.content&&Ht.content.ownerDocument&&(et=Ht.content.ownerDocument)}let xt,yt="";const{implementation:Et,createNodeIterator:St,createDocumentFragment:$t,getElementsByTagName:At}=et,{importNode:wt}=tt;let Ct={};_e.isSupported=typeof entries=="function"&&typeof _t=="function"&&Et&&Et.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:It,ERB_EXPR:Ot,TMPLIT_EXPR:Nt,DATA_ATTR:Pt,ARIA_ATTR:Mt,IS_SCRIPT_OR_DATA:Rt,ATTR_WHITESPACE:Lt}=EXPRESSIONS;let{IS_ALLOWED_URI:jt}=EXPRESSIONS,Gt=null;const Vt=addToSet({},[...html$1$1,...svg$1,...svgFilters,...mathMl$1,...text]);let Yt=null;const Xt=addToSet({},[...html$5,...svg,...mathMl,...xml]);let rr=Object.seal(create$7(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),cr=null,vr=null,Tr=!0,gr=!0,Er=!1,qt=!0,ir=!1,hr=!1,nr=!1,mr=!1,Ar=!1,Or=!1,wr=!1,Nr=!0,Wr=!1;const Vr="user-content-";let Jr=!0,Yr=!1,jr={},Hr=null;const hn=addToSet({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let pr=null;const sr=addToSet({},["audio","video","img","source","image","track"]);let Jt=null;const ur=addToSet({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),br="http://www.w3.org/1998/Math/MathML",Sr="http://www.w3.org/2000/svg",yr="http://www.w3.org/1999/xhtml";let Cr=yr,Lr=!1,Xr=null;const qr=addToSet({},[br,Sr,yr],stringToString);let Qr=null;const xn=["application/xhtml+xml","text/html"],wn="text/html";let nn=null,Ln=null;const zn=et.createElement("form"),En=function(Dt){return Dt instanceof RegExp||Dt instanceof Function},sn=function(){let Dt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Ln&&Ln===Dt)){if((!Dt||typeof Dt!="object")&&(Dt={}),Dt=clone$1(Dt),Qr=xn.indexOf(Dt.PARSER_MEDIA_TYPE)===-1?wn:Dt.PARSER_MEDIA_TYPE,nn=Qr==="application/xhtml+xml"?stringToString:stringToLowerCase,Gt=objectHasOwnProperty(Dt,"ALLOWED_TAGS")?addToSet({},Dt.ALLOWED_TAGS,nn):Vt,Yt=objectHasOwnProperty(Dt,"ALLOWED_ATTR")?addToSet({},Dt.ALLOWED_ATTR,nn):Xt,Xr=objectHasOwnProperty(Dt,"ALLOWED_NAMESPACES")?addToSet({},Dt.ALLOWED_NAMESPACES,stringToString):qr,Jt=objectHasOwnProperty(Dt,"ADD_URI_SAFE_ATTR")?addToSet(clone$1(ur),Dt.ADD_URI_SAFE_ATTR,nn):ur,pr=objectHasOwnProperty(Dt,"ADD_DATA_URI_TAGS")?addToSet(clone$1(sr),Dt.ADD_DATA_URI_TAGS,nn):sr,Hr=objectHasOwnProperty(Dt,"FORBID_CONTENTS")?addToSet({},Dt.FORBID_CONTENTS,nn):hn,cr=objectHasOwnProperty(Dt,"FORBID_TAGS")?addToSet({},Dt.FORBID_TAGS,nn):{},vr=objectHasOwnProperty(Dt,"FORBID_ATTR")?addToSet({},Dt.FORBID_ATTR,nn):{},jr=objectHasOwnProperty(Dt,"USE_PROFILES")?Dt.USE_PROFILES:!1,Tr=Dt.ALLOW_ARIA_ATTR!==!1,gr=Dt.ALLOW_DATA_ATTR!==!1,Er=Dt.ALLOW_UNKNOWN_PROTOCOLS||!1,qt=Dt.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ir=Dt.SAFE_FOR_TEMPLATES||!1,hr=Dt.WHOLE_DOCUMENT||!1,Ar=Dt.RETURN_DOM||!1,Or=Dt.RETURN_DOM_FRAGMENT||!1,wr=Dt.RETURN_TRUSTED_TYPE||!1,mr=Dt.FORCE_BODY||!1,Nr=Dt.SANITIZE_DOM!==!1,Wr=Dt.SANITIZE_NAMED_PROPS||!1,Jr=Dt.KEEP_CONTENT!==!1,Yr=Dt.IN_PLACE||!1,jt=Dt.ALLOWED_URI_REGEXP||IS_ALLOWED_URI,Cr=Dt.NAMESPACE||yr,rr=Dt.CUSTOM_ELEMENT_HANDLING||{},Dt.CUSTOM_ELEMENT_HANDLING&&En(Dt.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(rr.tagNameCheck=Dt.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Dt.CUSTOM_ELEMENT_HANDLING&&En(Dt.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(rr.attributeNameCheck=Dt.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Dt.CUSTOM_ELEMENT_HANDLING&&typeof Dt.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(rr.allowCustomizedBuiltInElements=Dt.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ir&&(gr=!1),Or&&(Ar=!0),jr&&(Gt=addToSet({},text),Yt=[],jr.html===!0&&(addToSet(Gt,html$1$1),addToSet(Yt,html$5)),jr.svg===!0&&(addToSet(Gt,svg$1),addToSet(Yt,svg),addToSet(Yt,xml)),jr.svgFilters===!0&&(addToSet(Gt,svgFilters),addToSet(Yt,svg),addToSet(Yt,xml)),jr.mathMl===!0&&(addToSet(Gt,mathMl$1),addToSet(Yt,mathMl),addToSet(Yt,xml))),Dt.ADD_TAGS&&(Gt===Vt&&(Gt=clone$1(Gt)),addToSet(Gt,Dt.ADD_TAGS,nn)),Dt.ADD_ATTR&&(Yt===Xt&&(Yt=clone$1(Yt)),addToSet(Yt,Dt.ADD_ATTR,nn)),Dt.ADD_URI_SAFE_ATTR&&addToSet(Jt,Dt.ADD_URI_SAFE_ATTR,nn),Dt.FORBID_CONTENTS&&(Hr===hn&&(Hr=clone$1(Hr)),addToSet(Hr,Dt.FORBID_CONTENTS,nn)),Jr&&(Gt["#text"]=!0),hr&&addToSet(Gt,["html","head","body"]),Gt.table&&(addToSet(Gt,["tbody"]),delete cr.tbody),Dt.TRUSTED_TYPES_POLICY){if(typeof Dt.TRUSTED_TYPES_POLICY.createHTML!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Dt.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');xt=Dt.TRUSTED_TYPES_POLICY,yt=xt.createHTML("")}else xt===void 0&&(xt=_createTrustedTypesPolicy(ft,rt)),xt!==null&&typeof yt=="string"&&(yt=xt.createHTML(""));freeze&&freeze(Dt),Ln=Dt}},Dn=addToSet({},["mi","mo","mn","ms","mtext"]),Mn=addToSet({},["foreignobject","desc","title","annotation-xml"]),In=addToSet({},["title","style","font","a","script"]),Cn=addToSet({},[...svg$1,...svgFilters,...svgDisallowed]),cn=addToSet({},[...mathMl$1,...mathMlDisallowed]),Ur=function(Dt){let Qt=_t(Dt);(!Qt||!Qt.tagName)&&(Qt={namespaceURI:Cr,tagName:"template"});const ar=stringToLowerCase(Dt.tagName),lr=stringToLowerCase(Qt.tagName);return Xr[Dt.namespaceURI]?Dt.namespaceURI===Sr?Qt.namespaceURI===yr?ar==="svg":Qt.namespaceURI===br?ar==="svg"&&(lr==="annotation-xml"||Dn[lr]):!!Cn[ar]:Dt.namespaceURI===br?Qt.namespaceURI===yr?ar==="math":Qt.namespaceURI===Sr?ar==="math"&&Mn[lr]:!!cn[ar]:Dt.namespaceURI===yr?Qt.namespaceURI===Sr&&!Mn[lr]||Qt.namespaceURI===br&&!Dn[lr]?!1:!cn[ar]&&(In[ar]||!Cn[ar]):!!(Qr==="application/xhtml+xml"&&Xr[Dt.namespaceURI]):!1},Fr=function(Dt){arrayPush(_e.removed,{element:Dt});try{Dt.parentNode.removeChild(Dt)}catch{Dt.remove()}},Hn=function(Dt,Qt){try{arrayPush(_e.removed,{attribute:Qt.getAttributeNode(Dt),from:Qt})}catch{arrayPush(_e.removed,{attribute:null,from:Qt})}if(Qt.removeAttribute(Dt),Dt==="is"&&!Yt[Dt])if(Ar||Or)try{Fr(Qt)}catch{}else try{Qt.setAttribute(Dt,"")}catch{}},ro=function(Dt){let Qt=null,ar=null;if(mr)Dt=""+Dt;else{const _r=stringMatch(Dt,/^[\r\n\t ]+/);ar=_r&&_r[0]}Qr==="application/xhtml+xml"&&Cr===yr&&(Dt=''+Dt+"");const lr=xt?xt.createHTML(Dt):Dt;if(Cr===yr)try{Qt=new dt().parseFromString(lr,Qr)}catch{}if(!Qt||!Qt.documentElement){Qt=Et.createDocument(Cr,"template",null);try{Qt.documentElement.innerHTML=Lr?yt:lr}catch{}}const tr=Qt.body||Qt.documentElement;return Dt&&ar&&tr.insertBefore(et.createTextNode(ar),tr.childNodes[0]||null),Cr===yr?At.call(Qt,hr?"html":"body")[0]:hr?Qt.documentElement:tr},Pn=function(Dt){return St.call(Dt.ownerDocument||Dt,Dt,lt.SHOW_ELEMENT|lt.SHOW_COMMENT|lt.SHOW_TEXT,null)},jo=function(Dt){return Dt instanceof ct&&(typeof Dt.nodeName!="string"||typeof Dt.textContent!="string"||typeof Dt.removeChild!="function"||!(Dt.attributes instanceof ut)||typeof Dt.removeAttribute!="function"||typeof Dt.setAttribute!="function"||typeof Dt.namespaceURI!="string"||typeof Dt.insertBefore!="function"||typeof Dt.hasChildNodes!="function")},vo=function(Dt){return typeof it=="function"&&Dt instanceof it},eo=function(Dt,Qt,ar){Ct[Dt]&&arrayForEach$1(Ct[Dt],lr=>{lr.call(_e,Qt,ar,Ln)})},Co=function(Dt){let Qt=null;if(eo("beforeSanitizeElements",Dt,null),jo(Dt))return Fr(Dt),!0;const ar=nn(Dt.nodeName);if(eo("uponSanitizeElement",Dt,{tagName:ar,allowedTags:Gt}),Dt.hasChildNodes()&&!vo(Dt.firstElementChild)&®ExpTest(/<[/\w]/g,Dt.innerHTML)&®ExpTest(/<[/\w]/g,Dt.textContent))return Fr(Dt),!0;if(!Gt[ar]||cr[ar]){if(!cr[ar]&&Ut(ar)&&(rr.tagNameCheck instanceof RegExp&®ExpTest(rr.tagNameCheck,ar)||rr.tagNameCheck instanceof Function&&rr.tagNameCheck(ar)))return!1;if(Jr&&!Hr[ar]){const lr=_t(Dt)||Dt.parentNode,tr=bt(Dt)||Dt.childNodes;if(tr&&lr){const _r=tr.length;for(let Br=_r-1;Br>=0;--Br)lr.insertBefore(gt(tr[Br],!0),vt(Dt))}}return Fr(Dt),!0}return Dt instanceof st&&!Ur(Dt)||(ar==="noscript"||ar==="noembed"||ar==="noframes")&®ExpTest(/<\/no(script|embed|frames)/i,Dt.innerHTML)?(Fr(Dt),!0):(ir&&Dt.nodeType===3&&(Qt=Dt.textContent,arrayForEach$1([It,Ot,Nt],lr=>{Qt=stringReplace(Qt,lr," ")}),Dt.textContent!==Qt&&(arrayPush(_e.removed,{element:Dt.cloneNode()}),Dt.textContent=Qt)),eo("afterSanitizeElements",Dt,null),!1)},Mr=function(Dt,Qt,ar){if(Nr&&(Qt==="id"||Qt==="name")&&(ar in et||ar in zn))return!1;if(!(gr&&!vr[Qt]&®ExpTest(Pt,Qt))){if(!(Tr&®ExpTest(Mt,Qt))){if(!Yt[Qt]||vr[Qt]){if(!(Ut(Dt)&&(rr.tagNameCheck instanceof RegExp&®ExpTest(rr.tagNameCheck,Dt)||rr.tagNameCheck instanceof Function&&rr.tagNameCheck(Dt))&&(rr.attributeNameCheck instanceof RegExp&®ExpTest(rr.attributeNameCheck,Qt)||rr.attributeNameCheck instanceof Function&&rr.attributeNameCheck(Qt))||Qt==="is"&&rr.allowCustomizedBuiltInElements&&(rr.tagNameCheck instanceof RegExp&®ExpTest(rr.tagNameCheck,ar)||rr.tagNameCheck instanceof Function&&rr.tagNameCheck(ar))))return!1}else if(!Jt[Qt]){if(!regExpTest(jt,stringReplace(ar,Lt,""))){if(!((Qt==="src"||Qt==="xlink:href"||Qt==="href")&&Dt!=="script"&&stringIndexOf(ar,"data:")===0&&pr[Dt])){if(!(Er&&!regExpTest(Rt,stringReplace(ar,Lt,"")))){if(ar)return!1}}}}}}return!0},Ut=function(Dt){return Dt!=="annotation-xml"&&Dt.indexOf("-")>0},Zt=function(Dt){eo("beforeSanitizeAttributes",Dt,null);const{attributes:Qt}=Dt;if(!Qt)return;const ar={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Yt};let lr=Qt.length;for(;lr--;){const tr=Qt[lr],{name:_r,namespaceURI:Br,value:un}=tr,fn=nn(_r);let an=_r==="value"?un:stringTrim(un);if(ar.attrName=fn,ar.attrValue=an,ar.keepAttr=!0,ar.forceKeepAttr=void 0,eo("uponSanitizeAttribute",Dt,ar),an=ar.attrValue,ar.forceKeepAttr||(Hn(_r,Dt),!ar.keepAttr))continue;if(!qt&®ExpTest(/\/>/i,an)){Hn(_r,Dt);continue}ir&&arrayForEach$1([It,Ot,Nt],_n=>{an=stringReplace(an,_n," ")});const tn=nn(Dt.nodeName);if(Mr(tn,fn,an)){if(Wr&&(fn==="id"||fn==="name")&&(Hn(_r,Dt),an=Vr+an),xt&&typeof ft=="object"&&typeof ft.getAttributeType=="function"&&!Br)switch(ft.getAttributeType(tn,fn)){case"TrustedHTML":{an=xt.createHTML(an);break}case"TrustedScriptURL":{an=xt.createScriptURL(an);break}}try{Br?Dt.setAttributeNS(Br,_r,an):Dt.setAttribute(_r,an),arrayPop(_e.removed)}catch{}}}eo("afterSanitizeAttributes",Dt,null)},zt=function Ht(Dt){let Qt=null;const ar=Pn(Dt);for(eo("beforeSanitizeShadowDOM",Dt,null);Qt=ar.nextNode();)eo("uponSanitizeShadowNode",Qt,null),!Co(Qt)&&(Qt.content instanceof nt&&Ht(Qt.content),Zt(Qt));eo("afterSanitizeShadowDOM",Dt,null)};return _e.sanitize=function(Ht){let Dt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Qt=null,ar=null,lr=null,tr=null;if(Lr=!Ht,Lr&&(Ht=""),typeof Ht!="string"&&!vo(Ht))if(typeof Ht.toString=="function"){if(Ht=Ht.toString(),typeof Ht!="string")throw typeErrorCreate("dirty is not a string, aborting")}else throw typeErrorCreate("toString is not a function");if(!_e.isSupported)return Ht;if(nr||sn(Dt),_e.removed=[],typeof Ht=="string"&&(Yr=!1),Yr){if(Ht.nodeName){const un=nn(Ht.nodeName);if(!Gt[un]||cr[un])throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place")}}else if(Ht instanceof it)Qt=ro(""),ar=Qt.ownerDocument.importNode(Ht,!0),ar.nodeType===1&&ar.nodeName==="BODY"||ar.nodeName==="HTML"?Qt=ar:Qt.appendChild(ar);else{if(!Ar&&!ir&&!hr&&Ht.indexOf("<")===-1)return xt&&wr?xt.createHTML(Ht):Ht;if(Qt=ro(Ht),!Qt)return Ar?null:wr?yt:""}Qt&&mr&&Fr(Qt.firstChild);const _r=Pn(Yr?Ht:Qt);for(;lr=_r.nextNode();)Co(lr)||(lr.content instanceof nt&&zt(lr.content),Zt(lr));if(Yr)return Ht;if(Ar){if(Or)for(tr=$t.call(Qt.ownerDocument);Qt.firstChild;)tr.appendChild(Qt.firstChild);else tr=Qt;return(Yt.shadowroot||Yt.shadowrootmode)&&(tr=wt.call(tt,tr,!0)),tr}let Br=hr?Qt.outerHTML:Qt.innerHTML;return hr&&Gt["!doctype"]&&Qt.ownerDocument&&Qt.ownerDocument.doctype&&Qt.ownerDocument.doctype.name&®ExpTest(DOCTYPE_NAME,Qt.ownerDocument.doctype.name)&&(Br=" +`+Br),ir&&arrayForEach$1([It,Ot,Nt],un=>{Br=stringReplace(Br,un," ")}),xt&&wr?xt.createHTML(Br):Br},_e.setConfig=function(){let Ht=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};sn(Ht),nr=!0},_e.clearConfig=function(){Ln=null,nr=!1},_e.isValidAttribute=function(Ht,Dt,Qt){Ln||sn({});const ar=nn(Ht),lr=nn(Dt);return Mr(ar,lr,Qt)},_e.addHook=function(Ht,Dt){typeof Dt=="function"&&(Ct[Ht]=Ct[Ht]||[],arrayPush(Ct[Ht],Dt))},_e.removeHook=function(Ht){if(Ct[Ht])return arrayPop(Ct[Ht])},_e.removeHooks=function(Ht){Ct[Ht]&&(Ct[Ht]=[])},_e.removeAllHooks=function(){Ct={}},_e}var purify=createDOMPurify(),eventemitter3={exports:{}};(function(j){var _e=Object.prototype.hasOwnProperty,et="~";function tt(){}Object.create&&(tt.prototype=Object.create(null),new tt().__proto__||(et=!1));function rt(st,lt,ut){this.fn=st,this.context=lt,this.once=ut||!1}function nt(st,lt,ut,ct,dt){if(typeof ut!="function")throw new TypeError("The listener must be a function");var ft=new rt(ut,ct||st,dt),pt=et?et+lt:lt;return st._events[pt]?st._events[pt].fn?st._events[pt]=[st._events[pt],ft]:st._events[pt].push(ft):(st._events[pt]=ft,st._eventsCount++),st}function ot(st,lt){--st._eventsCount===0?st._events=new tt:delete st._events[lt]}function it(){this._events=new tt,this._eventsCount=0}it.prototype.eventNames=function(){var lt=[],ut,ct;if(this._eventsCount===0)return lt;for(ct in ut=this._events)_e.call(ut,ct)&<.push(et?ct.slice(1):ct);return Object.getOwnPropertySymbols?lt.concat(Object.getOwnPropertySymbols(ut)):lt},it.prototype.listeners=function(lt){var ut=et?et+lt:lt,ct=this._events[ut];if(!ct)return[];if(ct.fn)return[ct.fn];for(var dt=0,ft=ct.length,pt=new Array(ft);dt0?j:"Unknown")}function _defineProperty$E(j,_e,et){return _e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _extends$q(){return _extends$q=Object.assign||function(j){for(var _e=1;_e"u"?"undefined":_typeof$G(window))==="object"&&(typeof document>"u"?"undefined":_typeof$G(document))==="object"&&document.nodeType===9;function _typeof$F(j){"@babel/helpers - typeof";return _typeof$F=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$F(j)}function toPrimitive$a(j,_e){if(_typeof$F(j)!="object"||!j)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$F(tt)!="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}function toPropertyKey$9(j){var _e=toPrimitive$a(j,"string");return _typeof$F(_e)=="symbol"?_e:String(_e)}function _defineProperties$f(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,toPropertyKey$9(tt.key),tt)}}function _createClass$f(j,_e,et){return _e&&_defineProperties$f(j.prototype,_e),et&&_defineProperties$f(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}var plainObjectConstrurctor={}.constructor;function cloneStyle(j){if(j==null||typeof j!="object")return j;if(Array.isArray(j))return j.map(cloneStyle);if(j.constructor!==plainObjectConstrurctor)return j;var _e={};for(var et in j)_e[et]=cloneStyle(j[et]);return _e}function createRule(j,_e,et){j===void 0&&(j="unnamed");var tt=et.jss,rt=cloneStyle(_e),nt=tt.plugins.onCreateRule(j,rt,et);return nt||(j[0],null)}var join=function(_e,et){for(var tt="",rt=0;rt<_e.length&&_e[rt]!=="!important";rt++)tt&&(tt+=et),tt+=_e[rt];return tt};function toCssValue(j,_e){if(_e===void 0&&(_e=!1),!Array.isArray(j))return j;var et="";if(Array.isArray(j[0]))for(var tt=0;tt<+~=|^:(),"'`\s])/g,nativeEscape=typeof CSS<"u"&&CSS.escape,escape=function(j){return nativeEscape?nativeEscape(j):j.replace(escapeRegex,"\\$1")},BaseStyleRule=function(){function j(et,tt,rt){this.type="style",this.key=void 0,this.isProcessed=!1,this.style=void 0,this.renderer=void 0,this.renderable=void 0,this.options=void 0;var nt=rt.sheet,ot=rt.Renderer;this.key=et,this.options=rt,this.style=tt,nt?this.renderer=nt.renderer:ot&&(this.renderer=new ot)}var _e=j.prototype;return _e.prop=function(tt,rt,nt){if(rt===void 0)return this.style[tt];var ot=nt?nt.force:!1;if(!ot&&this.style[tt]===rt)return this;var it=rt;(!nt||nt.process!==!1)&&(it=this.options.jss.plugins.onChangeValue(rt,tt,this));var st=it==null||it===!1,lt=tt in this.style;if(st&&!lt&&!ot)return this;var ut=st&<if(ut?delete this.style[tt]:this.style[tt]=it,this.renderable&&this.renderer)return ut?this.renderer.removeProperty(this.renderable,tt):this.renderer.setProperty(this.renderable,tt,it),this;var ct=this.options.sheet;return ct&&ct.attached,this},j}(),StyleRule=function(j){_inheritsLoose$1(_e,j);function _e(tt,rt,nt){var ot;ot=j.call(this,tt,rt,nt)||this,ot.selectorText=void 0,ot.id=void 0,ot.renderable=void 0;var it=nt.selector,st=nt.scoped,lt=nt.sheet,ut=nt.generateId;return it?ot.selectorText=it:st!==!1&&(ot.id=ut(_assertThisInitialized$d(_assertThisInitialized$d(ot)),lt),ot.selectorText="."+escape(ot.id)),ot}var et=_e.prototype;return et.applyTo=function(rt){var nt=this.renderer;if(nt){var ot=this.toJSON();for(var it in ot)nt.setProperty(rt,it,ot[it])}return this},et.toJSON=function(){var rt={};for(var nt in this.style){var ot=this.style[nt];typeof ot!="object"?rt[nt]=ot:Array.isArray(ot)&&(rt[nt]=toCssValue(ot))}return rt},et.toString=function(rt){var nt=this.options.sheet,ot=nt?nt.options.link:!1,it=ot?_extends$r({},rt,{allowEmpty:!0}):rt;return toCss(this.selectorText,this.style,it)},_createClass$f(_e,[{key:"selector",set:function(rt){if(rt!==this.selectorText){this.selectorText=rt;var nt=this.renderer,ot=this.renderable;if(!(!ot||!nt)){var it=nt.setSelector(ot,rt);it||nt.replaceRule(ot,this)}}},get:function(){return this.selectorText}}]),_e}(BaseStyleRule),pluginStyleRule={onCreateRule:function(_e,et,tt){return _e[0]==="@"||tt.parent&&tt.parent.type==="keyframes"?null:new StyleRule(_e,et,tt)}},defaultToStringOptions={indent:1,children:!0},atRegExp=/@([\w-]+)/,ConditionalRule=function(){function j(et,tt,rt){this.type="conditional",this.at=void 0,this.key=void 0,this.query=void 0,this.rules=void 0,this.options=void 0,this.isProcessed=!1,this.renderable=void 0,this.key=et,this.query=rt.name;var nt=et.match(atRegExp);this.at=nt?nt[1]:"unknown",this.options=rt,this.rules=new RuleList(_extends$r({},rt,{parent:this}));for(var ot in tt)this.rules.add(ot,tt[ot]);this.rules.process()}var _e=j.prototype;return _e.getRule=function(tt){return this.rules.get(tt)},_e.indexOf=function(tt){return this.rules.indexOf(tt)},_e.addRule=function(tt,rt,nt){var ot=this.rules.add(tt,rt,nt);return ot?(this.options.jss.plugins.onProcessRule(ot),ot):null},_e.toString=function(tt){if(tt===void 0&&(tt=defaultToStringOptions),tt.indent==null&&(tt.indent=defaultToStringOptions.indent),tt.children==null&&(tt.children=defaultToStringOptions.children),tt.children===!1)return this.query+" {}";var rt=this.rules.toString(tt);return rt?this.query+` { +`+rt+` +}`:""},j}(),keyRegExp=/@media|@supports\s+/,pluginConditionalRule={onCreateRule:function(_e,et,tt){return keyRegExp.test(_e)?new ConditionalRule(_e,et,tt):null}},defaultToStringOptions$1={indent:1,children:!0},nameRegExp=/@keyframes\s+([\w-]+)/,KeyframesRule=function(){function j(et,tt,rt){this.type="keyframes",this.at="@keyframes",this.key=void 0,this.name=void 0,this.id=void 0,this.rules=void 0,this.options=void 0,this.isProcessed=!1,this.renderable=void 0;var nt=et.match(nameRegExp);nt&&nt[1]?this.name=nt[1]:this.name="noname",this.key=this.type+"-"+this.name,this.options=rt;var ot=rt.scoped,it=rt.sheet,st=rt.generateId;this.id=ot===!1?this.name:escape(st(this,it)),this.rules=new RuleList(_extends$r({},rt,{parent:this}));for(var lt in tt)this.rules.add(lt,tt[lt],_extends$r({},rt,{parent:this}));this.rules.process()}var _e=j.prototype;return _e.toString=function(tt){if(tt===void 0&&(tt=defaultToStringOptions$1),tt.indent==null&&(tt.indent=defaultToStringOptions$1.indent),tt.children==null&&(tt.children=defaultToStringOptions$1.children),tt.children===!1)return this.at+" "+this.id+" {}";var rt=this.rules.toString(tt);return rt&&(rt=` +`+rt+` +`),this.at+" "+this.id+" {"+rt+"}"},j}(),keyRegExp$1=/@keyframes\s+/,refRegExp$1=/\$([\w-]+)/g,findReferencedKeyframe=function(_e,et){return typeof _e=="string"?_e.replace(refRegExp$1,function(tt,rt){return rt in et?et[rt]:tt}):_e},replaceRef=function(_e,et,tt){var rt=_e[et],nt=findReferencedKeyframe(rt,tt);nt!==rt&&(_e[et]=nt)},plugin={onCreateRule:function(_e,et,tt){return typeof _e=="string"&&keyRegExp$1.test(_e)?new KeyframesRule(_e,et,tt):null},onProcessStyle:function(_e,et,tt){return et.type!=="style"||!tt||("animation-name"in _e&&replaceRef(_e,"animation-name",tt.keyframes),"animation"in _e&&replaceRef(_e,"animation",tt.keyframes)),_e},onChangeValue:function(_e,et,tt){var rt=tt.options.sheet;if(!rt)return _e;switch(et){case"animation":return findReferencedKeyframe(_e,rt.keyframes);case"animation-name":return findReferencedKeyframe(_e,rt.keyframes);default:return _e}}},KeyframeRule=function(j){_inheritsLoose$1(_e,j);function _e(){for(var tt,rt=arguments.length,nt=new Array(rt),ot=0;ot=this.index){rt.push(tt);return}for(var ot=0;otnt){rt.splice(ot,0,tt);return}}},_e.reset=function(){this.registry=[]},_e.remove=function(tt){var rt=this.registry.indexOf(tt);this.registry.splice(rt,1)},_e.toString=function(tt){for(var rt=tt===void 0?{}:tt,nt=rt.attached,ot=_objectWithoutPropertiesLoose$i(rt,["attached"]),it="",st=0;st_e.index&&tt.options.insertionPoint===_e.insertionPoint)return tt}return null}function findHighestSheet(j,_e){for(var et=j.length-1;et>=0;et--){var tt=j[et];if(tt.attached&&tt.options.insertionPoint===_e.insertionPoint)return tt}return null}function findCommentNode(j){for(var _e=getHead(),et=0;et<_e.childNodes.length;et++){var tt=_e.childNodes[et];if(tt.nodeType===8&&tt.nodeValue.trim()===j)return tt}return null}function findPrevNode(j){var _e=sheets.registry;if(_e.length>0){var et=findHigherSheet(_e,j);if(et&&et.renderer)return{parent:et.renderer.element.parentNode,node:et.renderer.element};if(et=findHighestSheet(_e,j),et&&et.renderer)return{parent:et.renderer.element.parentNode,node:et.renderer.element.nextSibling}}var tt=j.insertionPoint;if(tt&&typeof tt=="string"){var rt=findCommentNode(tt);if(rt)return{parent:rt.parentNode,node:rt.nextSibling}}return!1}function insertStyle(j,_e){var et=_e.insertionPoint,tt=findPrevNode(_e);if(tt!==!1&&tt.parent){tt.parent.insertBefore(j,tt.node);return}if(et&&typeof et.nodeType=="number"){var rt=et,nt=rt.parentNode;nt&&nt.insertBefore(j,rt.nextSibling);return}getHead().appendChild(j)}var getNonce$1=memoize$3(function(){var j=document.querySelector('meta[property="csp-nonce"]');return j?j.getAttribute("content"):null}),_insertRule=function(_e,et,tt){var rt=_e.cssRules.length;(tt===void 0||tt>rt)&&(tt=rt);try{if("insertRule"in _e){var nt=_e;nt.insertRule(et,tt)}else if("appendRule"in _e){var ot=_e;ot.appendRule(et)}}catch{return!1}return _e.cssRules[tt]},createStyle=function(){var _e=document.createElement("style");return _e.textContent=` +`,_e},DomRenderer=function(){function j(et){this.getPropertyValue=getPropertyValue,this.setProperty=setProperty,this.removeProperty=removeProperty,this.setSelector=setSelector,this.element=void 0,this.sheet=void 0,this.hasInsertedRules=!1,et&&sheets.add(et),this.sheet=et;var tt=this.sheet?this.sheet.options:{},rt=tt.media,nt=tt.meta,ot=tt.element;this.element=ot||createStyle(),this.element.setAttribute("data-jss",""),rt&&this.element.setAttribute("media",rt),nt&&this.element.setAttribute("data-meta",nt);var it=getNonce$1();it&&this.element.setAttribute("nonce",it)}var _e=j.prototype;return _e.attach=function(){if(!(this.element.parentNode||!this.sheet)){insertStyle(this.element,this.sheet.options);var tt=!!(this.sheet&&this.sheet.deployed);this.hasInsertedRules&&tt&&(this.hasInsertedRules=!1,this.deploy())}},_e.detach=function(){var tt=this.element.parentNode;tt&&tt.removeChild(this.element)},_e.deploy=function(){var tt=this.sheet;if(tt){if(tt.options.link){this.insertRules(tt.rules);return}this.element.textContent=` +`+tt.toString()+` +`}},_e.insertRules=function(tt,rt){for(var nt=0;nt0&&(rt.refs--,rt.refs===0&&rt.sheet.detach()):warning(!1,"SheetsManager: can't find sheet to unmanage")},_createClass$f(j,[{key:"size",get:function(){return this.length}}]),j}();/** + * A better abstraction over CSS. + * + * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present + * @website https://github.com/cssinjs/jss + * @license MIT + */var hasCSSTOMSupport=typeof CSS<"u"&&CSS&&"number"in CSS,create$6=function(_e){return new Jss(_e)},index$4=create$6(),now$4=Date.now(),fnValuesNs="fnValues"+now$4,fnRuleNs="fnStyle"+ ++now$4;function functionPlugin(){return{onCreateRule:function(_e,et,tt){if(typeof et!="function")return null;var rt=createRule(_e,{},tt);return rt[fnRuleNs]=et,rt},onProcessStyle:function(_e,et){if(fnValuesNs in et||fnRuleNs in et)return _e;var tt={};for(var rt in _e){var nt=_e[rt];typeof nt=="function"&&(delete _e[rt],tt[rt]=nt)}return et[fnValuesNs]=tt,_e},onUpdate:function(_e,et,tt,rt){var nt=et,ot=nt[fnRuleNs];ot&&(nt.style=ot(_e)||{});var it=nt[fnValuesNs];if(it)for(var st in it)nt.prop(st,it[st](_e),rt)}}}function symbolObservablePonyfill(j){var _e,et=j.Symbol;return typeof et=="function"?et.observable?_e=et.observable:(_e=et("observable"),et.observable=_e):_e="@@observable",_e}var root$1;typeof self<"u"?root$1=self:typeof window<"u"?root$1=window:typeof global<"u"?root$1=global:typeof module<"u"?root$1=module:root$1=Function("return this")();var result=symbolObservablePonyfill(root$1),isObservable$1=function(_e){return _e&&_e[result]&&_e===_e[result]()};function observablePlugin(j){return{onCreateRule:function(et,tt,rt){if(!isObservable$1(tt))return null;var nt=tt,ot=createRule(et,{},rt);return nt.subscribe(function(it){for(var st in it)ot.prop(st,it[st],j)}),ot},onProcessRule:function(et){if(!(et&&et.type!=="style")){var tt=et,rt=tt.style,nt=function(lt){var ut=rt[lt];if(!isObservable$1(ut))return"continue";delete rt[lt],ut.subscribe({next:function(dt){tt.prop(lt,dt,j)}})};for(var ot in rt)var it=nt(ot)}}}}var semiWithNl=/;\n/,parse$m=function(j){for(var _e={},et=j.split(semiWithNl),tt=0;tt-1)return registerClass(j,_e.split(" "));var rt=j.options,nt=rt.parent;if(_e[0]==="$"){var ot=nt.getRule(_e.substr(1));return!ot||ot===j?!1:(nt.classes[j.key]+=" "+nt.classes[ot.key],!0)}return nt.classes[j.key]+=" "+_e,!0}function jssCompose(){function j(_e,et){return"composes"in _e&&(registerClass(et,_e.composes),delete _e.composes),_e}return{onProcessStyle:j}}var uppercasePattern=/[A-Z]/g,msPattern=/^ms-/,cache$2={};function toHyphenLower(j){return"-"+j.toLowerCase()}function hyphenateStyleName(j){if(cache$2.hasOwnProperty(j))return cache$2[j];var _e=j.replace(uppercasePattern,toHyphenLower);return cache$2[j]=msPattern.test(_e)?"-"+_e:_e}function convertCase(j){var _e={};for(var et in j){var tt=et.indexOf("--")===0?et:hyphenateStyleName(et);_e[tt]=j[et]}return j.fallbacks&&(Array.isArray(j.fallbacks)?_e.fallbacks=j.fallbacks.map(convertCase):_e.fallbacks=convertCase(j.fallbacks)),_e}function camelCase(){function j(et){if(Array.isArray(et)){for(var tt=0;ttj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _arrayWithoutHoles$c(j){if(Array.isArray(j))return _arrayLikeToArray$n(j)}function _iterableToArray$d(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _unsupportedIterableToArray$n(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$n(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$n(j,_e)}}function _nonIterableSpread$c(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _toConsumableArray$c(j){return _arrayWithoutHoles$c(j)||_iterableToArray$d(j)||_unsupportedIterableToArray$n(j)||_nonIterableSpread$c()}var js="",css$2="",vendor="",browser$1="",isTouch$1=isBrowser$2&&"ontouchstart"in document.documentElement;if(isBrowser$2){var jsCssMap={Moz:"-moz-",ms:"-ms-",O:"-o-",Webkit:"-webkit-"},_document$createEleme=document.createElement("p"),style=_document$createEleme.style,testProp="Transform";for(var key in jsCssMap)if(key+testProp in style){js=key,css$2=jsCssMap[key];break}js==="Webkit"&&"msHyphens"in style&&(js="ms",css$2=jsCssMap.ms,browser$1="edge"),js==="Webkit"&&"-apple-trailing-word"in style&&(vendor="apple")}var prefix$3={js,css:css$2,vendor,browser:browser$1,isTouch:isTouch$1};function supportedKeyframes(j){return j[1]==="-"||prefix$3.js==="ms"?j:"@"+prefix$3.css+"keyframes"+j.substr(10)}var appearence={noPrefill:["appearance"],supportedProperty:function(_e){return _e!=="appearance"?!1:prefix$3.js==="ms"?"-webkit-"+_e:prefix$3.css+_e}},colorAdjust={noPrefill:["color-adjust"],supportedProperty:function(_e){return _e!=="color-adjust"?!1:prefix$3.js==="Webkit"?prefix$3.css+"print-"+_e:_e}},regExp=/[-\s]+(.)?/g;function toUpper(j,_e){return _e?_e.toUpperCase():""}function camelize(j){return j.replace(regExp,toUpper)}function pascalize(j){return camelize("-"+j)}var mask={noPrefill:["mask"],supportedProperty:function(_e,et){if(!/^mask/.test(_e))return!1;if(prefix$3.js==="Webkit"){var tt="mask-image";if(camelize(tt)in et)return _e;if(prefix$3.js+pascalize(tt)in et)return prefix$3.css+_e}return _e}},textOrientation={noPrefill:["text-orientation"],supportedProperty:function(_e){return _e!=="text-orientation"?!1:prefix$3.vendor==="apple"&&!prefix$3.isTouch?prefix$3.css+_e:_e}},transform={noPrefill:["transform"],supportedProperty:function(_e,et,tt){return _e!=="transform"?!1:tt.transform?_e:prefix$3.css+_e}},transition={noPrefill:["transition"],supportedProperty:function(_e,et,tt){return _e!=="transition"?!1:tt.transition?_e:prefix$3.css+_e}},writingMode={noPrefill:["writing-mode"],supportedProperty:function(_e){return _e!=="writing-mode"?!1:prefix$3.js==="Webkit"||prefix$3.js==="ms"&&prefix$3.browser!=="edge"?prefix$3.css+_e:_e}},userSelect={noPrefill:["user-select"],supportedProperty:function(_e){return _e!=="user-select"?!1:prefix$3.js==="Moz"||prefix$3.js==="ms"||prefix$3.vendor==="apple"?prefix$3.css+_e:_e}},breakPropsOld={supportedProperty:function(_e,et){if(!/^break-/.test(_e))return!1;if(prefix$3.js==="Webkit"){var tt="WebkitColumn"+pascalize(_e);return tt in et?prefix$3.css+"column-"+_e:!1}if(prefix$3.js==="Moz"){var rt="page"+pascalize(_e);return rt in et?"page-"+_e:!1}return!1}},inlineLogicalOld={supportedProperty:function(_e,et){if(!/^(border|margin|padding)-inline/.test(_e))return!1;if(prefix$3.js==="Moz")return _e;var tt=_e.replace("-inline","");return prefix$3.js+pascalize(tt)in et?prefix$3.css+tt:!1}},unprefixed={supportedProperty:function(_e,et){return camelize(_e)in et?_e:!1}},prefixed={supportedProperty:function(_e,et){var tt=pascalize(_e);return _e[0]==="-"||_e[0]==="-"&&_e[1]==="-"?_e:prefix$3.js+tt in et?prefix$3.css+_e:prefix$3.js!=="Webkit"&&"Webkit"+tt in et?"-webkit-"+_e:!1}},scrollSnap={supportedProperty:function(_e){return _e.substring(0,11)!=="scroll-snap"?!1:prefix$3.js==="ms"?""+prefix$3.css+_e:_e}},overscrollBehavior={supportedProperty:function(_e){return _e!=="overscroll-behavior"?!1:prefix$3.js==="ms"?prefix$3.css+"scroll-chaining":_e}},propMap={"flex-grow":"flex-positive","flex-shrink":"flex-negative","flex-basis":"flex-preferred-size","justify-content":"flex-pack",order:"flex-order","align-items":"flex-align","align-content":"flex-line-pack"},flex2012={supportedProperty:function(_e,et){var tt=propMap[_e];return tt&&prefix$3.js+pascalize(tt)in et?prefix$3.css+tt:!1}},propMap$1={flex:"box-flex","flex-grow":"box-flex","flex-direction":["box-orient","box-direction"],order:"box-ordinal-group","align-items":"box-align","flex-flow":["box-orient","box-direction"],"justify-content":"box-pack"},propKeys=Object.keys(propMap$1),prefixCss=function(_e){return prefix$3.css+_e},flex2009={supportedProperty:function(_e,et,tt){var rt=tt.multiple;if(propKeys.indexOf(_e)>-1){var nt=propMap$1[_e];if(!Array.isArray(nt))return prefix$3.js+pascalize(nt)in et?prefix$3.css+nt:!1;if(!rt)return!1;for(var ot=0;ottt?1:-1:et.length-tt.length};return{onProcessStyle:function(et,tt){if(tt.type!=="style")return et;for(var rt={},nt=Object.keys(et).sort(j),ot=0;otMAX_RULES_PER_SHEET)&&(rt=_e.createStyleSheet().attach()),rt};function ot(){var it=arguments,st=JSON.stringify(it),lt=et.get(st);if(lt)return lt.className;var ut=[];for(var ct in it){var dt=it[ct];if(!Array.isArray(dt)){ut.push(dt);continue}for(var ft=0;ft_e=>!!pick$1(j)(_e),add$1=j=>_e=>{const et=_e||0;return Array.isArray(j)?j.reduce((tt,rt)=>tt|rt,et):et|j},toggle=j=>_e=>(_e||0)^j,pick$1=j=>_e=>(_e||0)&j,remove$1=j=>_e=>{const et=_e||0;return Array.isArray(j)?j.reduce((tt,rt)=>tt&~rt,et):et&~j},replace$3=j=>()=>j;var bitset=Object.freeze({__proto__:null,has:has$3,add:add$1,toggle,pick:pick$1,remove:remove$1,replace:replace$3});const EMPTY_STATUS=0,SELECTED_STATUS=1,ACTIVATED_STATUS=2;var GraphEdgeStatus;(function(j){j[j.Default=EMPTY_STATUS]="Default",j[j.Selected=SELECTED_STATUS]="Selected",j[j.Activated=ACTIVATED_STATUS]="Activated",j[j.ConnectedToSelected=4]="ConnectedToSelected",j[j.UnconnectedToSelected=8]="UnconnectedToSelected",j[j.Editing=16]="Editing"})(GraphEdgeStatus||(GraphEdgeStatus={}));var GraphNodeStatus;(function(j){j[j.Default=EMPTY_STATUS]="Default",j[j.Selected=SELECTED_STATUS]="Selected",j[j.Activated=ACTIVATED_STATUS]="Activated",j[j.Editing=4]="Editing",j[j.ConnectedToSelected=8]="ConnectedToSelected",j[j.UnconnectedToSelected=16]="UnconnectedToSelected"})(GraphNodeStatus||(GraphNodeStatus={}));var GraphPortStatus;(function(j){j[j.Default=EMPTY_STATUS]="Default",j[j.Selected=SELECTED_STATUS]="Selected",j[j.Activated=ACTIVATED_STATUS]="Activated",j[j.Connecting=4]="Connecting",j[j.ConnectingAsTarget=8]="ConnectingAsTarget"})(GraphPortStatus||(GraphPortStatus={}));const updateStatus=j=>_e=>{var et;const tt=j((et=_e.status)!==null&&et!==void 0?et:0);return tt===_e.status?_e:Object.assign(Object.assign({},_e),{status:tt})};function isNodeEditing(j){return has$3(GraphNodeStatus.Editing)(j.status)}function isSelected(j){return has$3(SELECTED_STATUS)(j.status)}function notSelected(j){return!isSelected(j)}const resetConnectStatus=j=>_e=>(_e||0)&GraphNodeStatus.Activated|j;class Debug{static log(_e){}static warn(_e){}static error(..._e){console.error(..._e)}static never(_e,et){throw new Error(et??`${_e} is unexpected`)}}const getNodeConfig=(j,_e)=>{const et=_e.getNodeConfig(j);if(!et){Debug.warn(`invalid node ${JSON.stringify(j)}`);return}return et};function getRectWidth(j,_e){var et;const tt=(et=j==null?void 0:j.getMinWidth(_e))!==null&&et!==void 0?et:0;return _e.width&&_e.width>=tt?_e.width:tt}function getRectHeight(j,_e){var et;const tt=(et=j==null?void 0:j.getMinHeight(_e))!==null&&et!==void 0?et:0;return _e.height&&_e.height>=tt?_e.height:tt}function getNodeSize(j,_e){const et=getNodeConfig(j,_e),tt=getRectWidth(et,j);return{height:getRectHeight(et,j),width:tt}}function getGroupRect(j,_e,et){var tt,rt,nt,ot,it,st,lt,ut;const ct=new Set(j.nodeIds),dt=Array.from(_e.values()).filter(Et=>ct.has(Et.id)),ft=Math.min(...dt.map(Et=>Et.x)),pt=Math.max(...dt.map(Et=>Et.x+getNodeSize(Et,et).width)),gt=Math.min(...dt.map(Et=>Et.y)),vt=Math.max(...dt.map(Et=>Et.y+getNodeSize(Et,et).height)),bt=ft-((rt=(tt=j.padding)===null||tt===void 0?void 0:tt.left)!==null&&rt!==void 0?rt:0),_t=gt-((ot=(nt=j.padding)===null||nt===void 0?void 0:nt.top)!==null&&ot!==void 0?ot:0),xt=vt-_t+((st=(it=j.padding)===null||it===void 0?void 0:it.bottom)!==null&&st!==void 0?st:0),yt=pt-bt+((ut=(lt=j.padding)===null||lt===void 0?void 0:lt.left)!==null&&ut!==void 0?ut:0);return{x:bt,y:_t,width:yt,height:xt}}var MouseEventButton;(function(j){j[j.Primary=0]="Primary",j[j.Auxiliary=1]="Auxiliary",j[j.Secondary=2]="Secondary",j[j.Fourth=4]="Fourth",j[j.Fifth=5]="Fifth"})(MouseEventButton||(MouseEventButton={}));var MouseEventButtons;(function(j){j[j.None=0]="None",j[j.Left=1]="Left",j[j.Right=2]="Right",j[j.Middle=4]="Middle"})(MouseEventButtons||(MouseEventButtons={}));const DEFAULT_AUTO_ALIGN_THRESHOLD=50,COPIED_NODE_SPACING=50,NODE_MIN_VISIBLE_LENGTH=5,NODE_MAX_VISIBLE_LENGTH=500,defaultColors={controlPointColor:"#333333",primaryColor:"#0078D4",defaultColor:"#CCCCCC",borderColor:"#B3B0AD",defaultBorderColor:"#FFFFFF",unConnectableBgColor:"#E1DFDD",defaultBackgroundColor:"#FFFFFF",portStroke:"#ccc",portFill:"#fff",connectedPortColor:"gray",nodeActivateFill:"#ffffff",nodeActivateStroke:"#0078D4",nodeFill:"#ffffff",nodeStroke:"#cccccc",contextMenuBackground:"#FFFFFF",contextMenuBorder:"#E1DFDD",contextMenuHoverBackground:"rgba(0, 120, 212, 0.05)",fontColor:"#000000",canvasBackground:"#EDEDED",minimapBackground:"#EDEDED",edgeColor:"#ccc",edgeColorSelected:"#015cda",minimapShadow:"#000000",outlineStyle:"none",focusOutlineColor:"#000000",dummyNodeStroke:"#015cda",inputFocusBorderAlt:"#0078d4",buttonBorder:"#797775",scrollbarColor:"#c8c8c8"},RectComponent=j=>{const{style:_e,node:et,width:tt,height:rt,textY:nt}=j,ot=et.data&&et.data.comment?et.data.comment:"",it=isNodeEditing(et);return jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("rect",{width:tt,height:rt,x:et.x,y:et.y,style:_e,rx:_e.borderRadius}),jsxRuntimeExports.jsx("text",Object.assign({x:et.x,y:nt,fontSize:12},{children:et.name})),et.data&&et.data.comment&&!it&&jsxRuntimeExports.jsx("text",Object.assign({x:et.x,y:nt+20,fontSize:12,className:`comment-${et.id}`},{children:et.data.comment})),it&&jsxRuntimeExports.jsx("foreignObject",Object.assign({x:et.x,y:nt,height:rt/2.5,width:tt-5},{children:jsxRuntimeExports.jsx("input",{value:ot,placeholder:"Input your comment here"})}))]},et.id)},rect={getMinHeight(){return 150},getMinWidth(){return 150},render(j){const _e=j.model,et=getRectWidth(rect,_e),tt=getRectHeight(rect,_e),rt=has$3(GraphNodeStatus.Selected|GraphNodeStatus.Activated)(_e.status)?{fill:defaultColors.nodeActivateFill,stroke:defaultColors.nodeActivateStroke}:{fill:defaultColors.nodeFill,fillOpacity:.1,stroke:defaultColors.nodeStroke,borderRadius:"5"},nt=_e.y+tt/3;return jsxRuntimeExports.jsx(RectComponent,{style:rt,node:_e,width:et,height:tt,textY:nt})}},getCurvePathD=(j,_e,et,tt)=>`M${j},${et}C${j},${et-getControlPointDistance(et,tt)},${_e},${tt+5+getControlPointDistance(et,tt)},${_e},${tt+5}`,getControlPointDistance=(j,_e)=>Math.min(5*15,Math.max(5*3,Math.abs((j-(_e+5))/2))),line$1={render(j){const _e=j.model,et={cursor:"crosshair",stroke:has$3(GraphEdgeStatus.Selected)(_e.status)?defaultColors.edgeColorSelected:defaultColors.edgeColor,strokeWidth:"2"};return jsxRuntimeExports.jsx("path",{d:getCurvePathD(j.x2,j.x1,j.y2,j.y1),fill:"none",style:et,id:`edge${_e.id}`},_e.id)}};class DefaultPort{getStyle(_e,et,tt,rt,nt){const ot=defaultColors.portStroke;let it=defaultColors.portFill;return(rt||nt)&&(it=defaultColors.connectedPortColor),has$3(GraphPortStatus.Activated)(_e.status)&&(it=defaultColors.primaryColor),{stroke:ot,fill:it}}getIsConnectable(){return!0}render(_e){const{model:et,data:tt,parentNode:rt}=_e,nt=tt.isPortConnectedAsSource(rt.id,et.id),ot=tt.isPortConnectedAsTarget(rt.id,et.id),it=this.getStyle(et,rt,tt,nt,ot),{x:st,y:lt}=_e,ut=`${st-5} ${lt}, ${st+7} ${lt}, ${st+1} ${lt+8}`;return ot?jsxRuntimeExports.jsx("polygon",{points:ut,style:it}):jsxRuntimeExports.jsx("circle",{r:5,cx:st,cy:lt,style:it},`${_e.parentNode.id}-${_e.model.id}`)}}const defaultPort=new DefaultPort;class DefaultClipboard{constructor(_e){this.storage=_e}write(_e){this.storage.setItem("graph-clipboard",JSON.stringify({nodes:_e.nodes.map(et=>Object.assign(Object.assign({},et),{data:{}})),edges:_e.edges.map(et=>Object.assign(Object.assign({},et),{data:{}}))}))}read(){const _e=this.storage.getItem("graph-clipboard");if(!_e)return null;try{const et=JSON.parse(_e),tt=new Map;return{nodes:et.nodes.map(rt=>{const nt=v4();return tt.set(rt.id,nt),Object.assign(Object.assign({},rt),{x:rt.x+COPIED_NODE_SPACING,y:rt.y+COPIED_NODE_SPACING,id:nt})}),edges:et.edges.map(rt=>Object.assign(Object.assign({},rt),{id:v4(),source:tt.get(rt.source)||"",target:tt.get(rt.target)||""}))}}catch{return null}}}class DefaultStorage{get length(){return this.items.size}constructor(){this.key=()=>"DefaultLocalStorage",this.items=new Map}clear(){this.items=new Map}setItem(_e,et){this.items.set(_e,et)}getItem(_e){return this.items.has(_e)?this.items.get(_e):null}removeItem(_e){this.items.delete(_e)}}class GraphConfigBuilder{constructor(){const _e=new DefaultStorage,et=new DefaultClipboard(_e);this.draft={getNodeConfig:()=>rect,getEdgeConfig:()=>line$1,getPortConfig:()=>defaultPort,getGroupConfig:()=>{},getClipboard:()=>et}}static default(){return new GraphConfigBuilder}static from(_e){return new GraphConfigBuilder().registerNode(_e.getNodeConfig.bind(_e)).registerEdge(_e.getEdgeConfig.bind(_e)).registerPort(_e.getPortConfig.bind(_e)).registerGroup(_e.getGroupConfig.bind(_e)).registerClipboard(_e.getClipboard.bind(_e))}registerNode(_e){return this.draft.getNodeConfig=_e,this}registerEdge(_e){return this.draft.getEdgeConfig=_e,this}registerPort(_e){return this.draft.getPortConfig=_e,this}registerGroup(_e){return this.draft.getGroupConfig=_e,this}registerClipboard(_e){return this.draft.getClipboard=_e,this}build(){return this.draft}}const GraphConfigContext=reactExports.createContext(GraphConfigBuilder.default().build());var MenuType;(function(j){j.Node="node",j.Edge="edge",j.Port="port",j.Canvas="canvas",j.Multi="multi"})(MenuType||(MenuType={}));class ContextMenuConfig{constructor(){this.contextMenu=new Map}registerContextMenu(_e){this.contextMenuProps=Object.assign({},_e)}registerMenu(_e,et){this.contextMenu.set(et,_e)}getMenu(_e){if(this.contextMenuProps&&this.contextMenu.has(_e)){const{className:et,styles:tt}=this.contextMenuProps;return reactExports.createElement("div",{className:et,style:tt},this.contextMenu.get(_e))}return null}}const ContextMenuConfigContext=reactExports.createContext(new ContextMenuConfig),emptySelectBoxPosition=()=>({startX:0,startY:0,height:0,width:0}),SelectBox=j=>{const{selectBoxPosition:_e,style:et}=j,tt=`m${_e.startX} ${_e.startY} v ${_e.height} h ${_e.width} v${-_e.height} h ${-_e.width}`,rt=et??{fill:"none",stroke:defaultColors.defaultColor};return jsxRuntimeExports.jsx("path",{style:rt,d:tt})};var GraphFeatures;(function(j){j.NodeDraggable="nodeDraggable",j.NodeResizable="nodeResizable",j.ClickNodeToSelect="clickNodeToSelect",j.PanCanvas="panCanvas",j.MultipleSelect="multipleSelect",j.LassoSelect="lassoSelect",j.Delete="delete",j.AddNewNodes="addNewNodes",j.AddNewEdges="addNewEdges",j.AddNewPorts="addNewPorts",j.AutoFit="autoFit",j.CanvasHorizontalScrollable="canvasHorizontalScrollable",j.CanvasVerticalScrollable="canvasVerticalScrollable",j.NodeHoverView="nodeHoverView",j.PortHoverView="portHoverView",j.AddEdgesByKeyboard="addEdgesByKeyboard",j.A11yFeatures="a11YFeatures",j.EditNode="editNode",j.AutoAlign="autoAlign",j.UndoStack="undoStack",j.CtrlKeyZoom="ctrlKeyZoom",j.LimitBoundary="limitBoundary",j.EditEdge="editEdge",j.InvisibleScrollbar="InvisibleScrollbar"})(GraphFeatures||(GraphFeatures={}));GraphFeatures.NodeDraggable,GraphFeatures.NodeResizable,GraphFeatures.ClickNodeToSelect,GraphFeatures.PanCanvas,GraphFeatures.MultipleSelect,GraphFeatures.LassoSelect,GraphFeatures.Delete,GraphFeatures.AddNewNodes,GraphFeatures.AddNewEdges,GraphFeatures.AddNewPorts,GraphFeatures.CanvasHorizontalScrollable,GraphFeatures.CanvasVerticalScrollable,GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.AddEdgesByKeyboard,GraphFeatures.A11yFeatures,GraphFeatures.AutoFit,GraphFeatures.EditNode,GraphFeatures.AutoAlign,GraphFeatures.UndoStack,GraphFeatures.CtrlKeyZoom,GraphFeatures.LimitBoundary,GraphFeatures.EditEdge;const defaultFeatures=new Set([GraphFeatures.NodeDraggable,GraphFeatures.NodeResizable,GraphFeatures.ClickNodeToSelect,GraphFeatures.PanCanvas,GraphFeatures.MultipleSelect,GraphFeatures.Delete,GraphFeatures.AddNewNodes,GraphFeatures.AddNewEdges,GraphFeatures.AddNewPorts,GraphFeatures.CanvasHorizontalScrollable,GraphFeatures.CanvasVerticalScrollable,GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.AddEdgesByKeyboard,GraphFeatures.A11yFeatures,GraphFeatures.EditNode,GraphFeatures.AutoAlign,GraphFeatures.UndoStack,GraphFeatures.CtrlKeyZoom,GraphFeatures.LimitBoundary]),dataReadonlyMode=new Set([GraphFeatures.NodeDraggable,GraphFeatures.NodeResizable,GraphFeatures.ClickNodeToSelect,GraphFeatures.PanCanvas,GraphFeatures.MultipleSelect,GraphFeatures.CanvasHorizontalScrollable,GraphFeatures.CanvasVerticalScrollable,GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.A11yFeatures,GraphFeatures.CtrlKeyZoom,GraphFeatures.LimitBoundary]);GraphFeatures.ClickNodeToSelect,GraphFeatures.CanvasHorizontalScrollable,GraphFeatures.CanvasVerticalScrollable,GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.A11yFeatures,GraphFeatures.LassoSelect,GraphFeatures.LimitBoundary;const previewMode=new Set([GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.AutoFit]),emptyDummyNodes=()=>({dx:0,dy:0,dWidth:0,dHeight:0,alignedDX:void 0,alignedDY:void 0,nodes:[],isVisible:!1}),is$1=Object.is;let MapIterator$1=class{constructor(_e,et){this.upstream=_e,this.f=et}[Symbol.iterator](){return this}next(){const _e=this.upstream.next();return _e.done?_e:{done:!1,value:this.f(_e.value)}}};var NodeType$1;(function(j){j[j.Bitmap=0]="Bitmap",j[j.Collision=1]="Collision"})(NodeType$1||(NodeType$1={}));const HASH_CODE_LENGTH=30,BIT_PARTITION_SIZE=5,FULL_MASK=1073741823;function bitPosFrom(j){return 1<>>_e&31}function bitCount(j){return j|=0,j-=j>>>1&1431655765,j=(j&858993459)+(j>>>2&858993459),j=j+(j>>>4)&252645135,j+=j>>>8,j+=j>>>16,j&127}let BitmapIndexedNode$1=class Wl{get valueCount(){return this.values.length}get nodeCount(){return this.children.length}constructor(_e,et,tt,rt,nt,ot,it,st){this.type=NodeType$1.Bitmap,this.owner=_e,this.dataMap=et,this.nodeMap=tt,this.keys=rt,this.values=nt,this.children=ot,this.hashes=it,this.size=st}static empty(_e){return new Wl(_e,0,0,[],[],[],[],0)}getKey(_e){return this.keys[_e]}getValue(_e){return this.values[_e]}getHash(_e){return this.hashes[_e]}getNode(_e){return this.children[_e]}contains(_e,et,tt){const rt=maskFrom(et,tt),nt=bitPosFrom(rt),{dataMap:ot,nodeMap:it}=this;if(ot&nt){const st=indexFrom(ot,rt,nt),lt=this.getKey(st);return is$1(lt,_e)}else if(it&nt){const st=indexFrom(it,rt,nt);return this.getNode(st).contains(_e,et,tt+BIT_PARTITION_SIZE)}return!1}get(_e,et,tt){const rt=maskFrom(et,tt),nt=bitPosFrom(rt),{dataMap:ot,nodeMap:it}=this;if(ot&nt){const st=indexFrom(ot,rt,nt),lt=this.getKey(st);return is$1(lt,_e)?this.getValue(st):void 0}else if(it&nt){const st=indexFrom(it,rt,nt);return this.getNode(st).get(_e,et,tt+BIT_PARTITION_SIZE)}}insert(_e,et,tt,rt,nt){const ot=maskFrom(rt,nt),it=bitPosFrom(ot),{dataMap:st,nodeMap:lt}=this;if(st&it){const ut=indexFrom(st,ot,it),ct=this.getKey(ut),dt=this.getValue(ut),ft=this.getHash(ut);if(ft===rt&&is$1(ct,et))return is$1(dt,tt)?this:this.setValue(_e,tt,ut);{const pt=mergeTwoKeyValPairs(_e,ct,dt,ft,et,tt,rt,nt+BIT_PARTITION_SIZE);return this.migrateInlineToNode(_e,it,pt)}}else if(lt&it){const ut=indexFrom(lt,ot,it),dt=this.getNode(ut).insert(_e,et,tt,rt,nt+BIT_PARTITION_SIZE);return this.setNode(_e,1,dt,it)}return this.insertValue(_e,it,et,rt,tt)}update(_e,et,tt,rt,nt){const ot=maskFrom(rt,nt),it=bitPosFrom(ot),{dataMap:st,nodeMap:lt}=this;if(st&it){const ut=indexFrom(st,ot,it),ct=this.getKey(ut);if(this.getHash(ut)===rt&&is$1(ct,et)){const ft=this.getValue(ut),pt=tt(ft);return is$1(ft,pt)?this:this.setValue(_e,pt,ut)}}else if(lt&it){const ut=indexFrom(lt,ot,it),ct=this.getNode(ut),dt=ct.update(_e,et,tt,rt,nt+BIT_PARTITION_SIZE);return dt===ct?this:this.setNode(_e,0,dt,it)}return this}remove(_e,et,tt,rt){const nt=maskFrom(tt,rt),ot=bitPosFrom(nt);if(this.dataMap&ot){const it=indexFrom(this.dataMap,nt,ot),st=this.getKey(it);return is$1(st,et)?this.removeValue(_e,ot):void 0}else if(this.nodeMap&ot){const it=indexFrom(this.nodeMap,nt,ot),st=this.getNode(it),lt=st.remove(_e,et,tt,rt+BIT_PARTITION_SIZE);if(lt===void 0)return;const[ut,ct]=lt;return ut.size===1?this.size===st.size?[new Wl(_e,ot,0,[ut.getKey(0)],[ut.getValue(0)],[],[ut.getHash(0)],1),ct]:[this.migrateNodeToInline(_e,ot,ut),ct]:[this.setNode(_e,-1,ut,ot),ct]}}toOwned(_e){return this.owner===_e?this:new Wl(_e,this.dataMap,this.nodeMap,this.keys.slice(),this.values.slice(),this.children.slice(),this.hashes.slice(),this.size)}iter(){return new BitmapIndexedNodeIterator(this)}map(_e,et){const tt=this.valueCount,rt=[],nt=[],ot=[];let it=!0;for(let st=0;st=HASH_CODE_LENGTH)return new HashCollisionNode$1(j,tt,[_e,rt],[et,nt]);{const st=maskFrom(tt,it),lt=maskFrom(ot,it);if(st!==lt){const ut=bitPosFrom(st)|bitPosFrom(lt);return stis$1(tt,_e));return et>=0?this.values[et]:void 0}insert(_e,et,tt){const rt=this.keys.findIndex(nt=>is$1(nt,et));if(rt>=0){const nt=this.values[rt];if(is$1(nt,tt))return this;const ot=this.toOwned(_e);return ot.values[rt]=tt,ot}else{const nt=this.toOwned(_e);return nt.keys.push(et),nt.values.push(tt),nt}}update(_e,et,tt){const rt=this.keys.findIndex(nt=>is$1(nt,et));if(rt>=0){const nt=this.values[rt],ot=tt(nt);if(is$1(nt,ot))return this;const it=this.toOwned(_e);return it.values[rt]=ot,it}return this}remove(_e,et){const tt=this.keys.findIndex(nt=>is$1(nt,et));if(tt===-1)return;const rt=this.getValue(tt);return[new Mu(_e,this.hash,this.keys.filter((nt,ot)=>ot!==tt),this.values.filter((nt,ot)=>ot!==tt)),rt]}getKey(_e){return this.keys[_e]}getValue(_e){return this.values[_e]}getHash(){return this.hash}iter(){return new HashCollisionNodeIterator(this)}map(_e,et){const tt=this.size,rt=[];let nt=!1;for(let ot=0;ot=this.node.size)return{done:!0,value:void 0};const _e=this.node.getKey(this.index),et=this.node.getValue(this.index);return this.index+=1,{done:!1,value:[_e,et]}}clone(){const _e=new HashCollisionNodeIterator(this.node);return _e.index=this.index,_e}}function hashing(j){if(j===null)return 1108378658;switch(typeof j){case"boolean":return j?839943201:839943200;case"number":return hashNumber$1(j);case"string":return hashString$1(j);case"object":case"function":case"symbol":throw new Error("Using object, function and symbol as hash map key is not supported");case"undefined":return 839943203;default:return hashString$1(String(j))}}function hashString$1(j){let _e=0;for(let et=0;et4294967295;)j/=4294967295,_e^=j;return smi$1(_e)}function smi$1(j){return j&1073741823}class Uid{constructor(){this.id=0}take(){return this.id+=1,this.id}peek(){return this.id+1}}const uid$1$1=new Uid;class HashMap{get size(){return this.root.size}constructor(_e){this.id=uid$1$1.take(),this.root=_e}static empty(){return HashMapBuilder.empty().finish()}static from(_e){return HashMapBuilder.from(_e).finish()}get(_e){const et=hashing(_e);return this.root.get(_e,et,0)}has(_e){const et=hashing(_e);return this.root.contains(_e,et,0)}set(_e,et){return this.withRoot(this.root.insert(uid$1$1.peek(),_e,et,hashing(_e),0))}update(_e,et){return this.withRoot(this.root.update(uid$1$1.peek(),_e,et,hashing(_e),0))}delete(_e){const et=hashing(_e),tt=uid$1$1.peek(),rt=this.root.remove(tt,_e,et,0);return rt===void 0?this:new HashMap(rt[0])}clone(){return new HashMap(this.root)}[Symbol.iterator](){return this.entries()}entries(){return this.root.iter()}values(){return new MapIterator$1(this.entries(),([,_e])=>_e)}mutate(){return new HashMapBuilder(this.root)}map(_e){return new HashMap(this.root.map(uid$1$1.peek(),_e))}filter(_e){const et=this.mutate();return this.forEach((tt,rt)=>{_e(tt,rt)||et.delete(rt)}),et.finish()}forEach(_e){this.root.forEach(_e)}find(_e){return this.root.find(_e)}withRoot(_e){return _e===this.root?this:new HashMap(_e)}}class HashMapBuilder{constructor(_e){this.id=uid$1$1.take(),this.root=_e}static empty(){const _e=uid$1$1.peek(),et=BitmapIndexedNode$1.empty(_e);return new HashMapBuilder(et)}static from(_e){if(Array.isArray(_e))return HashMapBuilder.fromArray(_e);const et=_e[Symbol.iterator](),tt=HashMapBuilder.empty();let rt=et.next();for(;!rt.done;){const[nt,ot]=rt.value;tt.set(nt,ot),rt=et.next()}return tt}static fromArray(_e){const et=HashMapBuilder.empty();for(let tt=0;tt<_e.length;tt+=1){const[rt,nt]=_e[tt];et.set(rt,nt)}return et}get(_e){const et=hashing(_e);return this.root.get(_e,et,0)}has(_e){const et=hashing(_e);return this.root.contains(_e,et,0)}set(_e,et){return this.root=this.root.insert(this.id,_e,et,hashing(_e),0),this}update(_e,et){const tt=hashing(_e);return this.root=this.root.update(this.id,_e,et,tt,0),this}delete(_e){const et=hashing(_e),tt=this.root.remove(this.id,_e,et,0);return tt!==void 0&&(this.root=tt[0]),this}finish(){return new HashMap(this.root)}}var NodeType;(function(j){j[j.Internal=0]="Internal",j[j.Leaf=1]="Leaf"})(NodeType||(NodeType={}));const MAX_SIZE=31,MIN_SIZE$1=15,HALF_NODE_SPLIT=7;function binaryFind(j,_e){let et=0,tt=j.length;for(;;){if(et+1===tt)return j[et]>=_e?et:tt;const rt=et+tt>>>1;if(j[rt]===_e)return rt;_e=MIN_SIZE$1)return lt;if(tt===rt)return lt.balanceTail(st),lt;const ut=this.getValue(tt);return lt.balanceChild(_e,st,it,ut,tt)}}removeMostRight(_e){const et=this.selfSize,[tt,rt,nt]=this.getChild(et).removeMostRight(_e),ot=this.toOwned(_e);return ot.size-=1,ot.children[et]=nt,nt.selfSizeMIN_SIZE$1)this.rotateRight(et,it,nt,ot);else if(st.selfSize>MIN_SIZE$1)this.rotateLeft(et,st,nt,ot);else{const lt=it.toOwned(_e),ut=st.toOwned(_e),ct=et.getKey(HALF_NODE_SPLIT),dt=et.getValue(HALF_NODE_SPLIT);lt.keys.push(this.getKey(nt-1)),lt.values.push(this.getValue(nt-1)),lt.keys.push(...et.keys.slice(0,HALF_NODE_SPLIT)),lt.values.push(...et.values.slice(0,HALF_NODE_SPLIT)),ut.keys.unshift(tt),ut.values.unshift(rt),ut.keys.unshift(...et.keys.slice(HALF_NODE_SPLIT+1,MIN_SIZE$1)),ut.values.unshift(...et.values.slice(HALF_NODE_SPLIT+1,MIN_SIZE$1)),this.keys.splice(nt-1,2,ct),this.values.splice(nt-1,2,dt),this.children.splice(nt-1,3,lt,ut),ot&&(lt.children.push(...et.children.slice(0,HALF_NODE_SPLIT+1)),ut.children.unshift(...et.children.slice(HALF_NODE_SPLIT+1,MIN_SIZE$1+1)),lt.updateSize(),ut.updateSize())}return this}rotateLeft(_e,et,tt,rt){const nt=et.toOwned(this.owner),ot=nt.keys.shift(),it=nt.values.shift(),st=this.getKey(tt),lt=this.getValue(tt);if(_e.keys.push(st),_e.values.push(lt),this.keys[tt]=ot,this.values[tt]=it,this.children[tt+1]=nt,rt){const ut=nt.children.shift();_e.children.push(ut);const ct=ut.size+1;_e.size+=ct,nt.size-=ct}}rotateRight(_e,et,tt,rt){const nt=et.toOwned(this.owner),ot=nt.keys.pop(),it=nt.values.pop(),st=this.getKey(tt-1),lt=this.getValue(tt-1);if(_e.keys.unshift(st),_e.values.unshift(lt),this.keys[tt-1]=ot,this.values[tt-1]=it,this.children[tt-1]=nt,rt){const ut=nt.children.pop();_e.children.unshift(ut);const ct=ut.size+1;_e.size+=ct,nt.size-=ct}}balanceTail(_e){const et=this.selfSize,tt=this.getChild(et-1),rt=_e.type===NodeType.Internal;tt.selfSize===MIN_SIZE$1?(_e.keys.unshift(this.getKey(et-1)),_e.values.unshift(this.getValue(et-1)),_e.keys.unshift(...tt.keys),_e.values.unshift(...tt.values),this.keys.splice(et-1,1),this.values.splice(et-1,1),this.children.splice(et-1,1),rt&&(_e.children.unshift(...tt.children),_e.size+=tt.size+1)):this.rotateRight(_e,tt,et,rt)}balanceHead(_e){const et=this.getChild(1),tt=_e.type===NodeType.Internal;et.selfSize===MIN_SIZE$1?(_e.keys.push(this.getKey(0)),_e.values.push(this.getValue(0)),_e.keys.push(...et.keys),_e.values.push(...et.values),this.keys.splice(0,1),this.values.splice(0,1),this.children.splice(1,1),tt&&(_e.children.push(...et.children),_e.size+=et.size+1)):this.rotateLeft(_e,et,0,tt)}updateWithSplit(_e,et,tt,rt,nt,ot){const it=this.toOwned(_e);it.keys.splice(ot,0,rt),it.values.splice(ot,0,nt),it.children.splice(ot,1,et,tt);const st=new InternalNode(_e,it.keys.splice(16,16),it.values.splice(16,16),it.children.splice(16,17),0),lt=it.keys.pop(),ut=it.values.pop();return it.updateSize(),st.updateSize(),[it,st,lt,ut]}updateSize(){let _e=this.selfSize;const et=this.children.length;for(let tt=0;tt{const[ot,it]=nt,st=et(it);return is$1(st,it)?nt:[ot,st]});return this.withRoot(this.itemId,this.hashRoot,rt)}[Symbol.iterator](){return this.entries()}clone(){return new Kl(this.itemId,this.hashRoot,this.sortedRoot)}entries(){return new OrderedMapIterator(new BTreeIterator(this.sortedRoot))}values(){return new MapIterator$1(this.entries(),([,_e])=>_e)}mutate(){return new OrderedMapBuilder(this.itemId,this.hashRoot,this.sortedRoot)}map(_e){const et=uid$7.peek(),tt=nt=>{const[ot,it]=nt,st=_e(it,ot);return is$1(it,st)?nt:[ot,st]},rt=this.sortedRoot.map(et,tt);return new Kl(this.itemId,this.hashRoot,rt)}forEach(_e){this.sortedRoot.forEach(([et,tt])=>{_e(tt,et)})}find(_e){const et=this.sortedRoot.find(([,tt])=>_e(tt));return et?et[1]:void 0}first(){const _e=this.entries().next();if(!_e.done)return _e.value[1]}filter(_e){const et=this.mutate();return this.forEach((tt,rt)=>{_e(tt,rt)||et.delete(rt)}),et.finish()}withRoot(_e,et,tt){return et===this.hashRoot&&tt===this.sortedRoot?this:new Kl(_e,et,tt)}};class OrderedMapIterator{constructor(_e){this.delegate=_e}[Symbol.iterator](){return this.clone()}next(){const _e=this.delegate.next();return _e.done?{done:!0,value:void 0}:{done:!1,value:_e.value[1]}}clone(){return new OrderedMapIterator(this.delegate.clone())}}class OrderedMapBuilder{constructor(_e,et,tt){this.id=uid$7.take(),this.itemId=_e,this.hashRoot=et,this.sortedRoot=tt}static empty(){const _e=uid$7.peek(),et=BitmapIndexedNode$1.empty(_e),tt=emptyRoot(_e);return new OrderedMapBuilder(0,et,tt)}static from(_e){if(Array.isArray(_e))return OrderedMapBuilder.fromArray(_e);const et=OrderedMapBuilder.empty(),tt=_e[Symbol.iterator]();let rt=tt.next();for(;!rt.done;){const[nt,ot]=rt.value;et.set(nt,ot),rt=tt.next()}return et}static fromArray(_e){const et=OrderedMapBuilder.empty();for(let tt=0;tt<_e.length;tt+=1){const[rt,nt]=_e[tt];et.set(rt,nt)}return et}delete(_e){const et=hashing(_e),tt=this.hashRoot.remove(this.id,_e,et,0);if(tt===void 0)return this;const rt=tt[1];return this.hashRoot=tt[0],this.sortedRoot=rootRemove(this.id,this.sortedRoot,rt),this}get(_e){var et;const tt=hashing(_e),rt=this.hashRoot.get(_e,tt,0);if(rt!==void 0)return(et=this.sortedRoot.get(rt))===null||et===void 0?void 0:et[1]}has(_e){const et=hashing(_e);return this.hashRoot.contains(_e,et,0)}set(_e,et){let tt=this.hashRoot.get(_e,hashing(_e),0);return tt===void 0&&(tt=this.itemId+1,this.itemId+=1,this.hashRoot=this.hashRoot.insert(this.id,_e,tt,hashing(_e),0)),this.sortedRoot=rootInsert(this.id,this.sortedRoot,tt,[_e,et]),this}update(_e,et){const tt=this.hashRoot.get(_e,hashing(_e),0);return tt?(this.sortedRoot=this.sortedRoot.update(this.id,tt,rt=>{const[nt,ot]=rt,it=et(ot);return is$1(it,ot)?rt:[nt,it]}),this):this}finish(){return new OrderedMap$1(this.itemId,this.hashRoot,this.sortedRoot)}}const getPortPosition=(j,_e,et)=>{const tt=getRectWidth(et,j),rt=getRectHeight(et,j),nt=_e.position?_e.position[0]*tt:tt*.5,ot=j.x+nt,it=_e.position?_e.position[1]*rt:rt,st=j.y+it;return{x:ot,y:st}},getPortPositionByPortId=(j,_e,et)=>{const tt=getNodeConfig(j,et);if(!tt)return;const nt=(j.ports||[]).find(ot=>ot.id===_e);if(!nt){Debug.warn(`invalid port id ${JSON.stringify(nt)}`);return}return getPortPosition(j,nt,tt)},identical=j=>j,isMobile=()=>[/Android/i,/webOS/i,/iPhone/i,/iPad/i,/iPod/i,/BlackBerry/i,/Windows Phone/i].some(_e=>navigator.userAgent.match(_e));var BrowserType;(function(j){j.Unknown="Unknown",j.Edge="Edge",j.EdgeChromium="EdgeChromium",j.Opera="Opera",j.Chrome="Chrome",j.IE="IE",j.Firefox="Firefox",j.Safari="Safari",j.Electron="Electron"})(BrowserType||(BrowserType={}));const getBrowser=()=>{const j=navigator.userAgent.toLowerCase();if(j.indexOf("electron")>-1)return BrowserType.Electron;switch(!0){case j.indexOf("edge")>-1:return BrowserType.Edge;case j.indexOf("edg")>-1:return BrowserType.EdgeChromium;case(j.indexOf("opr")>-1&&!!window.opr):return BrowserType.Opera;case(j.indexOf("chrome")>-1&&!!window.chrome):return BrowserType.Chrome;case j.indexOf("trident")>-1:return BrowserType.IE;case j.indexOf("firefox")>-1:return BrowserType.Firefox;case j.indexOf("safari")>-1:return BrowserType.Safari;default:return BrowserType.Unknown}},isSupported=()=>{if(isMobile())return!1;const j=getBrowser();return[BrowserType.Chrome,BrowserType.EdgeChromium,BrowserType.Firefox,BrowserType.Safari,BrowserType.Electron].indexOf(j)>-1},isMacOs=navigator.userAgent.includes("Macintosh"),metaControl=j=>isMacOs?j.metaKey:j.ctrlKey,checkIsMultiSelect=j=>j.shiftKey||metaControl(j),transformPoint=(j,_e,et)=>({x:et[0]*j+et[2]*_e+et[4],y:et[1]*j+et[3]*_e+et[5]}),reverseTransformPoint=(j,_e,et)=>{const[tt,rt,nt,ot,it,st]=et;return{x:((j-it)*ot-(_e-st)*nt)/(tt*ot-rt*nt),y:((j-it)*rt-(_e-st)*tt)/(rt*nt-tt*ot)}},getPointDeltaByClientDelta=(j,_e,et)=>{const[tt,rt,nt,ot]=et,it=ot*j/(tt*ot-rt*nt)+nt*_e/(rt*nt-tt*ot),st=rt*j/(rt*nt-tt*ot)+tt*_e/(tt*ot-rt*nt);return{x:it,y:st}},getClientDeltaByPointDelta=(j,_e,et)=>{if(!et)return{x:j,y:_e};const[tt,rt,nt,ot]=et;return transformPoint(j,_e,[tt,rt,nt,ot,0,0])},getRealPointFromClientPoint=(j,_e,et)=>{const{rect:tt}=et,rt=j-tt.left,nt=_e-tt.top;return reverseTransformPoint(rt,nt,et.transformMatrix)},getClientPointFromRealPoint=(j,_e,et)=>{const{x:tt,y:rt}=transformPoint(j,_e,et.transformMatrix),{rect:nt}=et;return{x:tt+nt.left,y:rt+nt.top}},getContainerClientPoint=(j,_e,et)=>{const tt=getClientPointFromRealPoint(j,_e,et),{rect:rt}=et;return{x:tt.x-rt.left,y:tt.y-rt.top}};function markEdgeDirty(j,_e){j.update(_e,et=>et.shallow())}const getNearestConnectablePort=j=>{const{parentNode:_e,clientX:et,clientY:tt,graphConfig:rt,viewport:nt}=j;let ot=1/0,it;if(!_e.ports)return;const st=getRealPointFromClientPoint(et,tt,nt);return _e.ports.forEach(lt=>{if(isConnectable(rt,Object.assign(Object.assign({},j),{model:lt}))){const ut=getPortPositionByPortId(_e,lt.id,rt);if(!ut)return;const ct=st.x-ut.x,dt=st.y-ut.y,ft=ct*ct+dt*dt;ft{const et=j.getPortConfig(_e.model);return et?et.getIsConnectable(_e):!1},filterSelectedItems=j=>{const _e=new Map,et=[];return j.nodes.forEach(({inner:tt})=>{isSelected(tt)&&_e.set(tt.id,tt)}),j.edges.forEach(({inner:tt})=>{(isSelected(tt)||_e.has(tt.source)&&_e.has(tt.target))&&et.push(tt)}),{nodes:Array.from(_e.values()),edges:et}},getNeighborPorts=(j,_e,et)=>{const tt=[],rt=j.getEdgesBySource(_e,et),nt=j.getEdgesByTarget(_e,et);return rt==null||rt.forEach(ot=>{const it=j.edges.get(ot);it&&tt.push({nodeId:it.target,portId:it.targetPortId})}),nt==null||nt.forEach(ot=>{const it=j.edges.get(ot);it&&tt.push({nodeId:it.source,portId:it.sourcePortId})}),tt},unSelectAllEntity=()=>j=>j.mapNodes(_e=>_e.update(et=>{var tt;const rt=Object.assign(Object.assign({},et),{ports:(tt=et.ports)===null||tt===void 0?void 0:tt.map(updateStatus(replace$3(GraphPortStatus.Default)))});return updateStatus(replace$3(GraphNodeStatus.Default))(rt)})).mapEdges(_e=>_e.update(updateStatus(replace$3(GraphEdgeStatus.Default)))),nodeSelection=(j,_e)=>{if(isNodeEditing(_e))return identical;const et=checkIsMultiSelect(j);return isSelected(_e)&&!et?identical:tt=>{const rt=et?nt=>nt.id!==_e.id?isSelected(nt):j.button===MouseEventButton.Secondary?!0:!isSelected(_e):nt=>nt.id===_e.id;return tt.selectNodes(rt,_e.id)}},getNodeAutomationId=j=>{var _e;return`node-container-${(_e=j.name)!==null&&_e!==void 0?_e:"unnamed"}-${j.id}`},getPortAutomationId=(j,_e)=>`port-${_e.name}-${_e.id}-${j.name}-${j.id}`,getNodeUid=(j,_e)=>`node:${j}:${_e.id}`,getPortUid=(j,_e,et)=>`port:${j}:${_e.id}:${et.id}`,getEdgeUid=(j,_e)=>`edge:${j}:${_e.id}`;function preventSpread(j){Object.defineProperty(j,"__preventSpread",{enumerable:!0,configurable:!1,get(){document.currentScript&&Debug.error(`${j.constructor.name} is a class, which should not be used in the spread syntax or argument of Object.assign`)}})}class EdgeModel{get id(){return this.inner.id}get automationId(){return this.inner.automationId}get source(){return this.inner.source}get target(){return this.inner.target}get sourcePortId(){return this.inner.sourcePortId}get targetPortId(){return this.inner.targetPortId}get status(){return this.inner.status}get data(){return this.inner.data}constructor(_e){this.inner=_e,preventSpread(this)}static fromJSON(_e){return new EdgeModel(_e)}updateStatus(_e){return this.update(updateStatus(_e))}update(_e){const et=_e(this.inner);return et===this.inner?this:new EdgeModel(et)}shallow(){return new EdgeModel(this.inner)}toJSON(){return this.inner}}const is$2=Object.is;function mapCow(j,_e){const et=[];let tt=!0;for(let rt=0;rttt.id===_e)}link({prev:_e,next:et}){return _e===this.prev&&et===this.next?this:new NodeModel(this.inner,this.portPositionCache,_e??this.prev,et??this.next)}updateStatus(_e){return this.update(updateStatus(_e))}update(_e){const et=_e(this.inner);return et===this.inner?this:new NodeModel(et,new Map,this.prev,this.next)}updateData(_e){return this.data?this.update(et=>{const tt=_e(et.data);return tt===et.data?et:Object.assign(Object.assign({},et),{data:tt})}):this}getPortPosition(_e,et){let tt=this.portPositionCache.get(_e);return tt||(tt=getPortPositionByPortId(this.inner,_e,et),this.portPositionCache.set(_e,tt)),tt}hasPort(_e){var et;return!!(!((et=this.inner.ports)===null||et===void 0)&&et.find(tt=>tt.id===_e))}updatePositionAndSize(_e){const{x:et,y:tt,width:rt,height:nt}=_e,ot=Object.assign(Object.assign({},this.inner),{x:et,y:tt,width:rt??this.inner.width,height:nt??this.inner.height});return new NodeModel(ot,new Map,this.prev,this.next)}updatePorts(_e){if(!this.inner.ports)return this;const et=mapCow(this.inner.ports,_e),tt=this.inner.ports===et?this.inner:Object.assign(Object.assign({},this.inner),{ports:et});return tt===this.inner?this:new NodeModel(tt,new Map,this.prev,this.next)}invalidCache(){return new NodeModel(this.inner,new Map,this.prev,this.next)}toJSON(){return this.inner}}class GraphModel{constructor(_e){this.nodes=_e.nodes,this.edges=_e.edges,this.groups=_e.groups,this.head=_e.head,this.tail=_e.tail,this.edgesBySource=_e.edgesBySource,this.edgesByTarget=_e.edgesByTarget,this.selectedNodes=_e.selectedNodes,preventSpread(this)}static empty(){return new GraphModel({nodes:OrderedMap$1.empty(),edges:HashMap.empty(),groups:[],head:void 0,tail:void 0,edgesBySource:HashMap.empty(),edgesByTarget:HashMap.empty(),selectedNodes:new Set})}static fromJSON(_e){var et;const tt=OrderedMap$1.empty().mutate(),rt=HashMap.empty().mutate();let nt,ot;if(_e.nodes.length===0)nt=void 0,ot=void 0;else if(_e.nodes.length===1){const lt=_e.nodes[0];tt.set(lt.id,NodeModel.fromJSON(lt,void 0,void 0)),nt=lt.id,ot=lt.id}else{const lt=_e.nodes[0],ut=_e.nodes[1],ct=_e.nodes[_e.nodes.length-1];nt=lt.id,ot=ct.id,tt.set(lt.id,NodeModel.fromJSON(lt,void 0,ut.id));let dt=_e.nodes[0];if(_e.nodes.length>2)for(let ft=1;ft<_e.nodes.length-1;ft+=1){const pt=_e.nodes[ft],gt=_e.nodes[ft+1];tt.set(pt.id,NodeModel.fromJSON(pt,dt.id,gt.id)),dt=pt}tt.set(ct.id,NodeModel.fromJSON(ct,dt.id,void 0))}const it=HashMapBuilder.empty(),st=HashMapBuilder.empty();for(const lt of _e.edges)rt.set(lt.id,EdgeModel.fromJSON(lt)),setEdgeByPortMutable(it,lt.id,lt.source,lt.sourcePortId),setEdgeByPortMutable(st,lt.id,lt.target,lt.targetPortId);return new GraphModel({nodes:tt.finish(),edges:rt.finish(),groups:(et=_e.groups)!==null&&et!==void 0?et:[],head:nt,tail:ot,edgesBySource:it.finish(),edgesByTarget:st.finish(),selectedNodes:new Set})}getNavigationFirstNode(){if(this.head!==void 0)return this.nodes.get(this.head)}updateNode(_e,et){var tt,rt;const nt=this.nodes.update(_e,it=>it.update(et));if(nt===this.nodes)return this;const ot=this.edges.mutate();return(tt=this.edgesBySource.get(_e))===null||tt===void 0||tt.forEach(it=>{it.forEach(st=>{markEdgeDirty(ot,st)})}),(rt=this.edgesByTarget.get(_e))===null||rt===void 0||rt.forEach(it=>{it.forEach(st=>{markEdgeDirty(ot,st)})}),this.merge({nodes:nt,edges:ot.finish()})}updateNodeData(_e,et){return this.merge({nodes:this.nodes.update(_e,tt=>tt.updateData(et))})}updatePort(_e,et,tt){const rt=this.nodes.update(_e,nt=>nt.updatePorts(ot=>ot.id===et?tt(ot):ot));return this.merge({nodes:rt})}insertNode(_e){const et=this.nodes.mutate().set(_e.id,NodeModel.fromJSON(_e,this.tail,void 0));return this.tail&&!this.nodes.has(_e.id)&&et.update(this.tail,tt=>tt.link({next:_e.id})),this.merge({nodes:et.finish(),head:this.nodes.size===0?_e.id:this.head,tail:_e.id})}deleteItems(_e){var et;const tt=new Set,rt=this.nodes.mutate();let nt=this.head===void 0?void 0:this.nodes.get(this.head),ot=nt,it;const st=this.edgesBySource.mutate(),lt=this.edgesByTarget.mutate();for(;ot!==void 0;){const ct=ot.next?this.nodes.get(ot.next):void 0;!((et=_e.node)===null||et===void 0)&&et.call(_e,ot.inner)?(rt.update(ot.id,dt=>dt.link({prev:it==null?void 0:it.id}).update(ft=>has$3(GraphNodeStatus.Editing)(ft.status)?ft:Object.assign(Object.assign({},ft),{status:GraphNodeStatus.Default}))),it=ot):(rt.delete(ot.id),st.delete(ot.id),lt.delete(ot.id),tt.add(ot.id),it&&rt.update(it.id,dt=>dt.link({next:ot==null?void 0:ot.next})),ct&&rt.update(ct.id,dt=>dt.link({prev:it==null?void 0:it.id})),ot===nt&&(nt=ct)),ot=ct}const ut=this.edges.mutate();return this.edges.forEach(ct=>{var dt,ft;!tt.has(ct.source)&&!tt.has(ct.target)&&(!((ft=(dt=_e.edge)===null||dt===void 0?void 0:dt.call(_e,ct))!==null&&ft!==void 0)||ft)?ut.update(ct.id,pt=>pt.update(updateStatus(replace$3(GraphEdgeStatus.Default)))):(ut.delete(ct.id),deleteEdgeByPort(st,ct.id,ct.source,ct.sourcePortId),deleteEdgeByPort(lt,ct.id,ct.target,ct.targetPortId))}),this.merge({nodes:rt.finish(),edges:ut.finish(),head:nt==null?void 0:nt.id,tail:it==null?void 0:it.id,edgesBySource:st.finish(),edgesByTarget:lt.finish()})}insertEdge(_e){if(this.isEdgeExist(_e.source,_e.sourcePortId,_e.target,_e.targetPortId)||!this.nodes.has(_e.source)||!this.nodes.has(_e.target))return this;const et=setEdgeByPort(this.edgesBySource,_e.id,_e.source,_e.sourcePortId),tt=setEdgeByPort(this.edgesByTarget,_e.id,_e.target,_e.targetPortId);return this.merge({nodes:this.nodes.update(_e.source,rt=>rt.invalidCache()).update(_e.target,rt=>rt.invalidCache()),edges:this.edges.set(_e.id,EdgeModel.fromJSON(_e)).map(rt=>rt.updateStatus(replace$3(GraphEdgeStatus.Default))),edgesBySource:et,edgesByTarget:tt})}updateEdge(_e,et){return this.merge({edges:this.edges.update(_e,tt=>tt.update(et))})}deleteEdge(_e){const et=this.edges.get(_e);return et?this.merge({edges:this.edges.delete(_e),edgesBySource:deleteEdgeByPort(this.edgesBySource,et.id,et.source,et.sourcePortId),edgesByTarget:deleteEdgeByPort(this.edgesByTarget,et.id,et.target,et.targetPortId)}):this}updateNodesPositionAndSize(_e){const et=new Set,tt=this.nodes.mutate(),rt=this.edges.mutate();return _e.forEach(nt=>{var ot,it;et.add(nt.id),tt.update(nt.id,st=>st.updatePositionAndSize(nt)),(ot=this.edgesBySource.get(nt.id))===null||ot===void 0||ot.forEach(st=>{st.forEach(lt=>{markEdgeDirty(rt,lt)})}),(it=this.edgesByTarget.get(nt.id))===null||it===void 0||it.forEach(st=>{st.forEach(lt=>{markEdgeDirty(rt,lt)})})}),this.merge({nodes:tt.finish(),edges:rt.finish()})}mapNodes(_e){return this.merge({nodes:this.nodes.map(_e)})}mapEdges(_e){return this.merge({edges:this.edges.map(_e)})}selectNodes(_e,et){const tt=new Set,rt=this.nodes.map(it=>{const st=_e(it.inner);return st&&tt.add(it.id),it.updatePorts(updateStatus(replace$3(GraphPortStatus.Default))).updateStatus(resetConnectStatus(st?GraphNodeStatus.Selected:GraphNodeStatus.UnconnectedToSelected))}).mutate();if(tt.size===0)this.nodes.forEach(it=>rt.update(it.id,st=>st.updateStatus(replace$3(GraphNodeStatus.Default))));else if(et){const it=rt.get(et);it&&(rt.delete(et),rt.set(it.id,it))}const nt=it=>{rt.update(it,st=>st.updateStatus(replace$3(isSelected(st)?GraphNodeStatus.Selected:GraphNodeStatus.ConnectedToSelected)))},ot=tt.size?this.edges.map(it=>{let st=GraphEdgeStatus.UnconnectedToSelected;return tt.has(it.source)&&(nt(it.target),st=GraphEdgeStatus.ConnectedToSelected),tt.has(it.target)&&(nt(it.source),st=GraphEdgeStatus.ConnectedToSelected),it.updateStatus(replace$3(st))}):this.edges.map(it=>it.updateStatus(replace$3(GraphEdgeStatus.Default)));return this.merge({nodes:rt.finish(),edges:ot,selectedNodes:tt})}getEdgesBySource(_e,et){var tt;return(tt=this.edgesBySource.get(_e))===null||tt===void 0?void 0:tt.get(et)}getEdgesByTarget(_e,et){var tt;return(tt=this.edgesByTarget.get(_e))===null||tt===void 0?void 0:tt.get(et)}isPortConnectedAsSource(_e,et){var tt,rt;return((rt=(tt=this.getEdgesBySource(_e,et))===null||tt===void 0?void 0:tt.size)!==null&&rt!==void 0?rt:0)>0}isPortConnectedAsTarget(_e,et){var tt,rt;return((rt=(tt=this.getEdgesByTarget(_e,et))===null||tt===void 0?void 0:tt.size)!==null&&rt!==void 0?rt:0)>0}shallow(){return this.merge({})}toJSON(){const _e=[];let et=this.head&&this.nodes.get(this.head);for(;et;)_e.push(et.inner),et=et.next&&this.nodes.get(et.next);const tt=Array.from(this.edges.values()).map(rt=>rt.inner);return{nodes:_e,edges:tt}}isEdgeExist(_e,et,tt,rt){const nt=this.getEdgesBySource(_e,et),ot=this.getEdgesByTarget(tt,rt);if(!nt||!ot)return!1;let it=!1;return nt.forEach(st=>{ot.has(st)&&(it=!0)}),it}merge(_e){var et,tt,rt,nt,ot,it,st,lt;return new GraphModel({nodes:(et=_e.nodes)!==null&&et!==void 0?et:this.nodes,edges:(tt=_e.edges)!==null&&tt!==void 0?tt:this.edges,groups:(rt=_e.groups)!==null&&rt!==void 0?rt:this.groups,head:(nt=_e.head)!==null&&nt!==void 0?nt:this.head,tail:(ot=_e.tail)!==null&&ot!==void 0?ot:this.tail,edgesBySource:(it=_e.edgesBySource)!==null&&it!==void 0?it:this.edgesBySource,edgesByTarget:(st=_e.edgesByTarget)!==null&&st!==void 0?st:this.edgesByTarget,selectedNodes:(lt=_e.selectedNodes)!==null&<!==void 0?lt:this.selectedNodes})}}function setEdgeByPort(j,_e,et,tt){return j.has(et)?j.update(et,rt=>{const nt=rt.get(tt);return new Map(rt).set(tt,(nt?new Set(nt):new Set).add(_e))}):j.set(et,new Map([[tt,new Set([_e])]]))}function setEdgeByPortMutable(j,_e,et,tt){j.has(et)?j.update(et,rt=>{let nt=rt.get(tt);return nt||(nt=new Set,rt.set(tt,nt)),nt.add(_e),rt}):j.set(et,new Map([[tt,new Set([_e])]]))}function deleteEdgeByPort(j,_e,et,tt){return j.has(et)?j.update(et,rt=>{const nt=rt.get(tt);if(!nt)return rt;const ot=new Set(nt);return ot.delete(_e),new Map(rt).set(tt,ot)}):j}var CanvasMouseMode;(function(j){j.Pan="Pan",j.Select="Select"})(CanvasMouseMode||(CanvasMouseMode={}));var GraphBehavior;(function(j){j.Default="default",j.Dragging="dragging",j.Panning="panning",j.MultiSelect="multiSelect",j.Connecting="connecting",j.AddingNode="addingNode"})(GraphBehavior||(GraphBehavior={}));function clamp$1(j,_e,et){return j>et?j:_e{const{instance:tt,maxWait:rt}=et||{};let nt=0,ot;return(...st)=>{if(window.clearTimeout(nt),isDef(rt)){const lt=Date.now();if(!isDef(ot))ot=lt;else if(lt-ot>=rt){ot=void 0,it(st);return}}nt=window.setTimeout(()=>{it(st)},_e)};function it(st){j.apply(tt,st)}},emptyArrayInstance=[];function constantEmptyArray(){return emptyArrayInstance}const checkRectIntersect=(j,_e)=>{const et=j.maxX<_e.minX,tt=j.minX>_e.maxX,rt=j.minY>_e.maxY,nt=j.maxY<_e.minY;return!(et||tt||rt||nt)},isPointInRect=(j,_e)=>{const{minX:et,minY:tt,maxX:rt,maxY:nt}=j,{x:ot,y:it}=_e;return ot>et&&ottt&&itMath.pow(j,2),distance=(j,_e,et,tt)=>Math.sqrt(square$1(et-j)+square$1(tt-_e)),getLinearFunction=(j,_e,et,tt)=>j===et?()=>Number.MAX_SAFE_INTEGER:rt=>(tt-_e)/(et-j)*rt+(_e*et-tt*j)/(et-j),shallowEqual$1=(j,_e)=>{if(!j||j.length!==_e.length)return!1;for(let et=0;et{const nt=_e?Array.isArray(_e)?_e:_e.apply(void 0,rt):rt;return shallowEqual$1(et,nt)||(et=nt,tt=j.apply(void 0,rt)),tt}}var Direction$1;(function(j){j[j.X=0]="X",j[j.Y=1]="Y",j[j.XY=2]="XY"})(Direction$1||(Direction$1={}));const isViewportComplete=j=>!!j.rect,getNodeRect=(j,_e)=>{const{x:et,y:tt}=j,{width:rt,height:nt}=getNodeSize(j,_e);return{x:et,y:tt,width:rt,height:nt}},isNodeVisible=(j,_e,et)=>isRectVisible(getNodeRect(j,et),_e),isRectVisible=(j,_e)=>{const{x:et,y:tt,width:rt,height:nt}=j;return isPointVisible({x:et,y:tt},_e)||isPointVisible({x:et+rt,y:tt},_e)||isPointVisible({x:et+rt,y:tt+nt},_e)||isPointVisible({x:et,y:tt+nt},_e)},isPointVisible=(j,_e)=>{const{x:et,y:tt}=getContainerClientPoint(j.x,j.y,_e),{height:rt,width:nt}=_e.rect;return et>0&&et0&&tt{const tt=[];return j.forEach(rt=>{isNodeVisible(rt,_e,et)&&tt.push(rt.inner)}),tt},getRenderedNodes=(j,_e)=>{const et=[],tt=getRenderedArea(_e);return j.forEach(rt=>{isNodeInRenderedArea(rt,tt)&&et.push(rt.inner)}),et},isNodeInRenderedArea=(j,_e)=>isPointInRect(_e,j),getVisibleArea=j=>{if(!isViewportComplete(j))return{minX:0,minY:0,maxX:0,maxY:0};const{rect:_e,transformMatrix:et}=j,tt=0,rt=0,nt=_e.width,ot=_e.height,it=reverseTransformPoint(tt,rt,et),st=reverseTransformPoint(nt,ot,et);return{minX:it.x,minY:it.y,maxX:st.x,maxY:st.y}},getRenderedArea=j=>{if(!isViewportComplete(j))return{minX:0,minY:0,maxX:0,maxY:0};const{rect:_e,transformMatrix:et}=j,tt=0,rt=0,nt=_e.width,ot=_e.height,it=reverseTransformPoint(tt-_e.width,rt-_e.height,et),st=reverseTransformPoint(nt+_e.width,ot+_e.height,et);return{minX:it.x,minY:it.y,maxX:st.x,maxY:st.y}},normalizeSpacing=j=>j?typeof j=="number"?{top:j,right:j,bottom:j,left:j}:Object.assign({top:0,right:0,bottom:0,left:0},j):{top:0,right:0,bottom:0,left:0},zoomTo=({scale:j,anchor:_e,direction:et,limitScale:tt})=>rt=>{const nt=tt(j)/rt.transformMatrix[0],ot=tt(j)/rt.transformMatrix[3],{x:it,y:st}=_e,lt=it*(1-nt),ut=st*(1-ot);let ct;switch(et){case Direction$1.X:ct=[j,0,0,rt.transformMatrix[3],rt.transformMatrix[4]*nt+lt,rt.transformMatrix[5]];break;case Direction$1.Y:ct=[rt.transformMatrix[0],0,0,j,rt.transformMatrix[4],rt.transformMatrix[5]*ot+ut];break;case Direction$1.XY:default:ct=[j,0,0,j,rt.transformMatrix[4]*nt+lt,rt.transformMatrix[5]*ot+ut]}return Object.assign(Object.assign({},rt),{transformMatrix:ct})},zoom=({scale:j,anchor:_e,direction:et,limitScale:tt})=>j===1?identical:rt=>{let nt;switch(et){case Direction$1.X:return zoomTo({anchor:_e,direction:et,limitScale:tt,scale:rt.transformMatrix[0]*j})(rt);case Direction$1.Y:return zoomTo({anchor:_e,direction:et,limitScale:tt,scale:rt.transformMatrix[3]*j})(rt);case Direction$1.XY:default:{const ot=tt(rt.transformMatrix[0]*j),it=tt(rt.transformMatrix[3]*j),st=ot/rt.transformMatrix[0],lt=it/rt.transformMatrix[3],{x:ut,y:ct}=_e,dt=ut*(1-st),ft=ct*(1-lt);nt=[ot,0,0,it,rt.transformMatrix[4]*st+dt,rt.transformMatrix[5]*lt+ft]}}return Object.assign(Object.assign({},rt),{transformMatrix:nt})},pan=(j,_e)=>j===0&&_e===0?identical:et=>Object.assign(Object.assign({},et),{transformMatrix:[et.transformMatrix[0],et.transformMatrix[1],et.transformMatrix[2],et.transformMatrix[3],et.transformMatrix[4]+j,et.transformMatrix[5]+_e]}),minimapPan=(j,_e)=>j===0&&_e===0?identical:et=>{const[tt,rt,nt,ot]=et.transformMatrix;return Object.assign(Object.assign({},et),{transformMatrix:[tt,rt,nt,ot,et.transformMatrix[4]+tt*j+rt*_e,et.transformMatrix[5]+nt*j+ot*_e]})},getContentArea$1=(j,_e,et)=>{let tt=1/0,rt=1/0,nt=1/0,ot=1/0,it=-1/0,st=-1/0;return(et===void 0?dt=>j.nodes.forEach(dt):dt=>et==null?void 0:et.forEach(ft=>{const pt=j.nodes.get(ft);pt&&dt(pt)}))(dt=>{const{width:ft,height:pt}=getNodeSize(dt,_e);dt.xit&&(it=dt.x+ft),dt.y+pt>st&&(st=dt.y+pt),ft{let{width:et,height:tt}=j,{width:rt,height:nt}=_e;if(et>rt){const ot=et;et=rt,rt=ot}if(tt>nt){const ot=tt;tt=nt,nt=ot}return{nodeMinVisibleWidth:et,nodeMinVisibleHeight:tt,nodeMaxVisibleWidth:rt,nodeMaxVisibleHeight:nt}},getScaleRange=(j,{width:_e,height:et})=>{const{nodeMinVisibleWidth:tt,nodeMinVisibleHeight:rt,nodeMaxVisibleWidth:nt,nodeMaxVisibleHeight:ot}=normalizeNodeVisibleMinMax(j);let it=0,st=0,lt=1/0,ut=1/0;return _e&&(it=tt/_e,lt=nt/_e),et&&(st=rt/et,ut=ot/et),{minScaleX:it,minScaleY:st,maxScaleX:lt,maxScaleY:ut}},getZoomFitMatrix=j=>{const{data:_e,graphConfig:et,disablePan:tt,direction:rt,rect:nt}=j,{nodes:ot}=_e;if(ot.size===0)return[1,0,0,1,0,0];const{minNodeWidth:it,minNodeHeight:st,minNodeX:lt,minNodeY:ut,maxNodeX:ct,maxNodeY:dt}=getContentArea$1(_e,et),{minScaleX:ft,minScaleY:pt,maxScaleX:gt,maxScaleY:vt}=getScaleRange(j,{width:it,height:st}),bt=normalizeSpacing(j.spacing),{width:_t,height:xt}=nt,yt=_t/(ct-lt+bt.left+bt.right),Et=xt/(dt-ut+bt.top+bt.bottom),St=rt===Direction$1.Y?Math.min(Math.max(ft,pt,Et),gt,vt):Math.min(Math.max(ft,pt,Math.min(yt,Et)),vt,vt),$t=rt===Direction$1.XY?Math.min(Math.max(ft,yt),gt):St,At=rt===Direction$1.XY?Math.min(Math.max(pt,Et),vt):St;if(tt)return[$t,0,0,At,0,0];const wt=-$t*(lt-bt.left),Ct=-At*(ut-bt.top);if(getVisibleNodes(_e.nodes,{rect:nt,transformMatrix:[$t,0,0,At,wt,Ct]},et).length>0)return[$t,0,0,At,wt,Ct];let Ot=_e.nodes.first();return Ot&&_e.nodes.forEach(Nt=>{Ot.y>Nt.y&&(Ot=Nt)}),[$t,0,0,At,-$t*(Ot.x-bt.left),-At*(Ot.y-bt.top)]},focusArea=(j,_e,et,tt,rt)=>{const nt=et-j,ot=tt-_e,it=Math.min(rt.rect.width/nt,rt.rect.height/ot),st=-it*(j+nt/2)+rt.rect.width/2,lt=-it*(_e+ot/2)+rt.rect.height/2;return Object.assign(Object.assign({},rt),{transformMatrix:[it,0,0,it,st,lt]})};function getContainerCenter(j){const _e=j.current;if(!_e)return;const et=_e.width/2,tt=_e.height/2;return{x:et,y:tt}}function getRelativePoint(j,_e){const et=_e.clientX-j.left,tt=_e.clientY-j.top;return{x:et,y:tt}}const scrollIntoView$1=(j,_e,et,tt,rt)=>{if(!et)return identical;const{width:nt,height:ot}=et;return!(j<0||j>nt||_e<0||_e>ot)&&!tt?identical:st=>{const lt=rt?rt.x-j:nt/2-j,ut=rt?rt.y-_e:ot/2-_e;return Object.assign(Object.assign({},st),{transformMatrix:[st.transformMatrix[0],st.transformMatrix[1],st.transformMatrix[2],st.transformMatrix[3],st.transformMatrix[4]+lt,st.transformMatrix[5]+ut]})}},getScaleLimit=(j,_e)=>{const{minNodeWidth:et,minNodeHeight:tt}=getContentArea$1(j,_e.graphConfig),{minScaleX:rt,minScaleY:nt}=getScaleRange(_e,{width:et,height:tt});return Math.max(rt,nt)},getContentArea=memoize$2(getContentArea$1),getOffsetLimit=({data:j,graphConfig:_e,rect:et,transformMatrix:tt,canvasBoundaryPadding:rt,groupPadding:nt})=>{var ot,it,st,lt;const ut=getContentArea(j,_e),ct=getClientDeltaByPointDelta(ut.minNodeX-((nt==null?void 0:nt.left)||0),ut.minNodeY-((nt==null?void 0:nt.top)||0),tt);ct.x-=(ot=rt==null?void 0:rt.left)!==null&&ot!==void 0?ot:0,ct.y-=(it=rt==null?void 0:rt.top)!==null&&it!==void 0?it:0;const dt=getClientDeltaByPointDelta(ut.maxNodeX+((nt==null?void 0:nt.right)||0),ut.maxNodeY+((nt==null?void 0:nt.bottom)||0),tt);dt.x+=(st=rt==null?void 0:rt.right)!==null&&st!==void 0?st:0,dt.y+=(lt=rt==null?void 0:rt.bottom)!==null&<!==void 0?lt:0;let ft=-ct.x||0,pt=-ct.y||0,gt=et.width-dt.x||0,vt=et.height-dt.y||0;if(gt({present:_e,past:{next:j.past,value:et(j.present)},future:null}),undo=j=>j.past?{present:j.past.value,past:j.past.next,future:{next:j.future,value:j.present}}:j,redo=j=>j.future?{present:j.future.value,past:{next:j.past,value:j.present},future:j.future.next}:j,resetUndoStack=j=>({present:j,future:null,past:null}),isWithinThreshold=(j,_e,et)=>Math.abs(j){warnGraphStateContext()}},EMPTY_CONNECT_STATE={sourceNode:void 0,sourcePort:void 0,targetNode:void 0,targetPort:void 0,movingPoint:{x:0,y:0}},GraphValueContext=reactExports.createContext(new Proxy(GraphModel.empty(),{get:(j,_e)=>(console.warn("Default graph data value is being used. Please check if you forget rendering Graph component"),Reflect.get(j,_e))})),GraphStateContext=reactExports.createContext(defaultGraphStateContext),SlotsContext=reactExports.createContext({});class EventChannel{constructor(){this.listenersRef=reactExports.createRef(),this.externalHandlerRef=reactExports.createRef(),this.queue=[],this.working=!1}trigger(_e){this.working?this.queue.push(_e):(this.working=!0,reactDomExports.unstable_batchedUpdates(()=>{this.callHandlers(_e);for(let et=0;et{this.dispatchDelegate(tt,rt)},this.state=_e,this.UNSAFE_latestState=_e,this.dispatchDelegate=et}setMouseClientPosition(_e){this.mouseClientPoint=_e}unsetMouseClientPosition(){this.mouseClientPoint=void 0}getMouseClientPosition(){return this.mouseClientPoint}getEnabledFeatures(){return this.state.settings.features}getBehavior(){return this.behavior}setBehavior(_e){this.behavior=_e}getData(){return this.state.data.present}getGlobalEventTarget(){var _e,et;return(et=(_e=this.getGlobalEventTargetDelegate)===null||_e===void 0?void 0:_e.call(this))!==null&&et!==void 0?et:window}}function useConst(j){const _e=reactExports.useRef();return _e.current===void 0&&(_e.current=j()),_e.current}const noop$3=()=>{};class ErrorBoundary extends reactExports.Component{constructor(_e){super(_e),this.state={hasError:!1}}static getDerivedStateFromError(_e){return{hasError:!0,error:_e}}componentDidCatch(_e,et){console.error(_e),this.setState({error:_e,errorInfo:et})}render(){var _e,et;if(!this.state.hasError)return this.props.children;if(this.props.renderOnError)return(_e=this.props.renderOnError(this.state.error,this.state.errorInfo,this.props.children))!==null&&_e!==void 0?_e:null;const tt=this.state.errorInfo?(et=this.state.errorInfo.componentStack)===null||et===void 0?void 0:et.split(` +`):[];return jsxRuntimeExports.jsxs("div",Object.assign({style:{color:"red"}},{children:[jsxRuntimeExports.jsx("h1",{children:"Something went wrong."}),jsxRuntimeExports.jsx("p",{children:`Error: ${this.state.error}`}),jsxRuntimeExports.jsx("p",{children:`ErrorInfo: ${JSON.stringify(this.state.errorInfo)}`}),jsxRuntimeExports.jsx("h2",{children:"Component Stack"}),(tt??[]).map((rt,nt)=>jsxRuntimeExports.jsx("p",{children:rt},nt))]}))}}const EMPTY_CONNECT_CONTEXT={sourceNode:void 0,sourcePort:void 0,targetNode:void 0,targetPort:void 0},ConnectingStateContext=reactExports.createContext(EMPTY_CONNECT_CONTEXT);ConnectingStateContext.displayName="ConnectingStateContext";const ConnectingState=({children:j,data:_e,connectState:et})=>{let tt,rt,nt,ot;et&&(tt=_e.nodes.get(et.sourceNode),rt=tt==null?void 0:tt.getPort(et.sourcePort),nt=et.targetNode?_e.nodes.get(et.targetNode):void 0,ot=et.targetPort?nt==null?void 0:nt.getPort(et.targetPort):void 0);const it=reactExports.useMemo(()=>({sourceNode:tt,sourcePort:rt,targetNode:nt,targetPort:ot}),[tt,rt,nt,ot]);return jsxRuntimeExports.jsx(ConnectingStateContext.Provider,Object.assign({value:it},{children:j}))};ConnectingState.displayName="ConnectingState";const AlignmentLinesContext=reactExports.createContext([]),GraphControllerContext=reactExports.createContext(new GraphController(EMPTY_GRAPH_STATE,noop$3));function GraphStateStore(j){const{graphController:_e,state:et,dispatch:tt,children:rt}=j,nt=reactExports.useMemo(()=>({state:et,dispatch:tt}),[et,tt]);return jsxRuntimeExports.jsx(GraphConfigContext.Provider,Object.assign({value:et.settings.graphConfig},{children:jsxRuntimeExports.jsx(GraphControllerContext.Provider,Object.assign({value:_e},{children:jsxRuntimeExports.jsx(ConnectingState,Object.assign({data:et.data.present,connectState:et.connectState},{children:jsxRuntimeExports.jsx(GraphStateContext.Provider,Object.assign({value:nt},{children:jsxRuntimeExports.jsx(ViewportContext.Provider,Object.assign({value:et.viewport},{children:jsxRuntimeExports.jsx(GraphValueContext.Provider,Object.assign({value:et.data.present},{children:jsxRuntimeExports.jsx(AlignmentLinesContext.Provider,Object.assign({value:et.alignmentLines},{children:rt}))}))}))}))}))}))}))}const ReactDagEditor=j=>{var _e;reactExports.useEffect(()=>{j.handleWarning&&(Debug.warn=j.handleWarning)},[]);const et=(_e=j.handleError)===null||_e===void 0?void 0:_e.bind(null),{state:tt,dispatch:rt,getGlobalEventTarget:nt}=j,ot=useConst(()=>new GraphController(tt,rt));return ot.UNSAFE_latestState=tt,reactExports.useLayoutEffect(()=>{ot.state=tt,ot.dispatchDelegate=rt,ot.getGlobalEventTargetDelegate=nt},[rt,nt,ot,tt]),reactExports.useEffect(()=>()=>{ot.dispatchDelegate=noop$3},[ot]),jsxRuntimeExports.jsx(ErrorBoundary,Object.assign({renderOnError:et},{children:jsxRuntimeExports.jsx(SlotsContext.Provider,Object.assign({value:j},{children:jsxRuntimeExports.jsx(GraphStateStore,Object.assign({state:tt,dispatch:rt,graphController:ot},{children:jsxRuntimeExports.jsx(ContextMenuConfigContext.Provider,Object.assign({value:useConst(()=>new ContextMenuConfig)},{children:jsxRuntimeExports.jsx("div",Object.assign({style:j.style,className:j.className},{children:j.children}))}))}))}))}))},useContextMenuConfigContext=()=>reactExports.useContext(ContextMenuConfigContext);var GraphNodeEvent;(function(j){j.Click="[Node]Click",j.DoubleClick="[Node]DoubleClick",j.MouseDown="[Node]MouseDown",j.MouseUp="[Node]MouseUp",j.MouseEnter="[Node]MouseEnter",j.MouseLeave="[Node]MouseLeave",j.MouseOver="[Node]MouseOver",j.MouseOut="[Node]MouseOut",j.MouseMove="[Node]MouseMove",j.ContextMenu="[Node]ContextMenu",j.Drag="[Node]Drag",j.DragStart="[Node]DragStart",j.DragEnd="[Node]DragEnd",j.PointerDown="[Node]PointerDown",j.PointerEnter="[Node]PointerEnter",j.PointerMove="[Node]PointerMove",j.PointerLeave="[Node]PointerLeave",j.PointerUp="[Node]PointerUp",j.Resizing="[Node]Resizing",j.ResizingStart="[Node]ResizingStart",j.ResizingEnd="[Node]ResizingEnd",j.KeyDown="[Node]KeyDown",j.Select="[Node]Select",j.SelectAll="[Node]SelectAll",j.Centralize="[Node]Centralize",j.Locate="[Node]Locate",j.Add="[Node]Add"})(GraphNodeEvent||(GraphNodeEvent={}));var GraphEdgeEvent;(function(j){j.Click="[Edge]Click",j.DoubleClick="[Edge]DoubleClick",j.MouseEnter="[Edge]MouseEnter",j.MouseLeave="[Edge]MouseLeave",j.MouseOver="[Edge]MouseOver",j.MouseOut="[Edge]MouseOut",j.MouseMove="[Edge]MouseMove",j.MouseDown="[Edge]MouseDown",j.MouseUp="[Edge]MouseUp",j.ContextMenu="[Edge]ContextMenu",j.ConnectStart="[Edge]ConnectStart",j.ConnectMove="[Edge]ConnectMove",j.ConnectEnd="[Edge]ConnectEnd",j.ConnectNavigate="[Edge]ConnectNavigate",j.Add="[Edge]Add"})(GraphEdgeEvent||(GraphEdgeEvent={}));var GraphPortEvent;(function(j){j.Click="[Port]Click",j.DoubleClick="[Port]DoubleClick",j.MouseDown="[Port]MouseDown",j.PointerDown="[Port]PointerDown",j.PointerUp="[Port]PointerUp",j.PointerEnter="[Port]PointerEnter",j.PointerLeave="[Port]PointerLeave",j.MouseUp="[Port]MouseUp",j.MouseEnter="[Port]MouseEnter",j.MouseLeave="[Port]MouseLeave",j.MouseOver="[Port]MouseOver",j.MouseOut="[Port]MouseOut",j.MouseMove="[Port]MouseMove",j.ContextMenu="[Port]ContextMenu",j.KeyDown="[Port]KeyDown",j.Focus="[Port]Focus",j.Blur="[Port]Blur"})(GraphPortEvent||(GraphPortEvent={}));var GraphCanvasEvent;(function(j){j.Click="[Canvas]Click",j.DoubleClick="[Canvas]DoubleClick",j.MouseDown="[Canvas]MouseDown",j.MouseUp="[Canvas]MouseUp",j.MouseEnter="[Canvas]MouseEnter",j.MouseLeave="[Canvas]MouseLeave",j.MouseOver="[Canvas]MouseOver",j.MouseOut="[Canvas]MouseOut",j.MouseMove="[Canvas]MouseMove",j.ContextMenu="[Canvas]ContextMenu",j.DragStart="[Canvas]DragStart",j.Drag="[Canvas]Drag",j.DragEnd="[Canvas]DragEnd",j.Pan="[Canvas]Pan",j.Focus="[Canvas]Focus",j.Blur="[Canvas]Blur",j.Zoom="[Canvas]Zoom",j.Pinch="[Canvas]Pinch",j.KeyDown="[Canvas]KeyDown",j.KeyUp="[Canvas]KeyUp",j.SelectStart="[Canvas]SelectStart",j.SelectMove="[Canvas]SelectMove",j.SelectEnd="[Canvas]SelectEnd",j.UpdateNodeSelectionBySelectBox="[Canvas]UpdateNodeSelectionBySelectBox",j.MouseWheelScroll="[Canvas]MouseWheelScroll",j.DraggingNodeFromItemPanel="[Canvas]DraggingNodeFromItemPanel",j.DraggingNodeFromItemPanelStart="[Canvas]DraggingNodeFromItemPanelStart",j.DraggingNodeFromItemPanelEnd="[Canvas]DraggingNodeFromItemPanelEnd",j.ViewportResize="[Canvas]ViewportResize",j.Navigate="[Canvas]Navigate",j.VirtualizationRecalculated="[Canvas]VirtualizationRecalculated",j.ResetSelection="[Canvas]ResetSelection",j.Copy="[Canvas]Copy",j.Paste="[Canvas]Paste",j.Delete="[Canvas]Delete",j.Undo="[Canvas]Undo",j.Redo="[Canvas]Redo",j.ScrollIntoView="[Canvas]ScrollIntoView",j.ResetUndoStack="[Canvas]ResetUndoStack",j.ResetViewport="[Canvas]ResetViewport",j.ZoomTo="[Canvas]ZoomTo",j.ZoomToFit="[Canvas]ZoomToFit",j.SetData="[Canvas]SetData",j.UpdateData="[Canvas]UpdateData",j.ScrollTo="[Canvas]ScrollTo",j.UpdateSettings="[Canvas]UpdateSettings"})(GraphCanvasEvent||(GraphCanvasEvent={}));var GraphScrollBarEvent;(function(j){j.ScrollStart="[ScrollBar]ScrollStart",j.Scroll="[ScrollBar]Scroll",j.ScrollEnd="[ScrollBar]ScrollEnd"})(GraphScrollBarEvent||(GraphScrollBarEvent={}));var GraphMinimapEvent;(function(j){j.PanStart="[Minimap]PanStart",j.Pan="[Minimap]Pan",j.PanEnd="[Minimap]PanEnd",j.Click="[Minimap]Click"})(GraphMinimapEvent||(GraphMinimapEvent={}));var GraphContextMenuEvent;(function(j){j.Open="[ContextMenu]Open",j.Close="[ContextMenu]Close"})(GraphContextMenuEvent||(GraphContextMenuEvent={}));function getScrollLineHeight(){try{const j=document.createElement("iframe");j.src="#",document.body.appendChild(j);const{contentDocument:_e}=j;if(!_e)throw new Error("Fail to create iframe");_e.documentElement.innerHTML=purify.sanitize("a",{RETURN_TRUSTED_TYPE:!0});const tt=_e.body.firstElementChild.offsetHeight;return document.body.removeChild(j),tt}catch(j){return Debug.error("failed to calculate scroll line height",j),16}}const scrollLineHeight=getScrollLineHeight(),normalizeWheelDelta=typeof WheelEvent=="function"?(j,_e)=>{switch(j){case WheelEvent.DOM_DELTA_PIXEL:return _e;case WheelEvent.DOM_DELTA_LINE:return _e*scrollLineHeight;case WheelEvent.DOM_DELTA_PAGE:return _e*window.innerHeight;default:return _e}}:(j,_e)=>_e,EMPTY_RECT={height:0,width:0,x:0,y:0,bottom:0,left:0,right:0,top:0,toJSON(){return this}},VirtualizationContext=reactExports.createContext({viewport:{rect:EMPTY_RECT,transformMatrix:EMPTY_TRANSFORM_MATRIX},renderedArea:{minX:0,minY:0,maxX:0,maxY:0},visibleArea:{minX:0,minY:0,maxX:0,maxY:0},renderedNodes:new Set,renderedEdges:new Set,timestamp:0});function useGraphConfig(){return reactExports.useContext(GraphConfigContext)}function useGraphController(){return reactExports.useContext(GraphControllerContext)}function useAlignmentLines(){return reactExports.useContext(AlignmentLinesContext)}function useConnectingState(){return reactExports.useContext(ConnectingStateContext)}function useVirtualization(){return reactExports.useContext(VirtualizationContext)}let shouldRespondWheel=!1;const useWheelHandler=j=>{const{containerRef:_e,svgRef:et,rectRef:tt,zoomSensitivity:rt,scrollSensitivity:nt,isHorizontalScrollDisabled:ot,isVerticalScrollDisabled:it,isCtrlKeyZoomEnable:st,eventChannel:lt,graphConfig:ut,dispatch:ct}=j,ft=useGraphController().getGlobalEventTarget();reactExports.useLayoutEffect(()=>{const pt=et.current,gt=_e.current;if(!pt||!gt)return noop$3;const vt=xt=>{const yt=tt.current;if(!yt||!shouldRespondWheel)return;if(xt.preventDefault(),xt.ctrlKey&&st){const At=(normalizeWheelDelta(xt.deltaMode,xt.deltaY)>0?-rt:rt)+1;lt.trigger({type:GraphCanvasEvent.Zoom,rawEvent:xt,scale:At,anchor:getRelativePoint(yt,xt)});return}const Et=ot?0:-normalizeWheelDelta(xt.deltaMode,xt.shiftKey?xt.deltaY:xt.deltaX)*nt,St=it||xt.shiftKey?0:-normalizeWheelDelta(xt.deltaMode,xt.deltaY)*nt;lt.trigger({type:GraphCanvasEvent.MouseWheelScroll,dx:Et,dy:St,rawEvent:xt})},bt=()=>{shouldRespondWheel=!0};gt.addEventListener("mouseenter",bt);const _t=()=>{shouldRespondWheel=!1};return gt.addEventListener("mouseleave",_t),ft.addEventListener("wheel",vt,{passive:!1}),()=>{ft.removeEventListener("wheel",vt),gt.removeEventListener("mouseenter",bt),gt.removeEventListener("mouseleave",_t)}},[et,tt,rt,nt,ct,ot,it,ut,lt,st])};function nextFrame(j){requestAnimationFrame(()=>{requestAnimationFrame(j)})}const LIMIT=20,isRectChanged=(j,_e)=>j===_e?!1:!j||!_e?!0:j.top!==_e.top||j.left!==_e.left||j.width!==_e.width||j.height!==_e.height,useUpdateViewportCallback=(j,_e,et)=>reactExports.useCallback((tt=!1)=>{var rt;const nt=(rt=_e.current)===null||rt===void 0?void 0:rt.getBoundingClientRect();(tt||isRectChanged(j.current,nt))&&(j.current=nt,et.trigger({type:GraphCanvasEvent.ViewportResize,viewportRect:nt}))},[et,j,_e]),useContainerRect=(j,_e,et,tt)=>{reactExports.useLayoutEffect(()=>{j.viewport.rect||tt(!0)}),reactExports.useEffect(()=>{const rt=et.current;if(!rt)return noop$3;const nt=debounce$2(()=>nextFrame(()=>{tt()}),LIMIT);if(typeof ResizeObserver<"u"){const ot=new ResizeObserver(nt);return ot.observe(rt),()=>{ot.unobserve(rt),ot.disconnect()}}return window.addEventListener("resize",nt),()=>{window.removeEventListener("resize",nt)}},[et,tt]),reactExports.useEffect(()=>{const rt=debounce$2(ot=>{const it=_e.current;!it||!(ot.target instanceof Element)||!ot.target.contains(it)||tt()},LIMIT),nt={capture:!0,passive:!0};return document.body.addEventListener("scroll",rt,nt),()=>{document.body.removeEventListener("scroll",rt,nt)}},[_e,tt])};function makeScheduledCallback(j,_e,et){let tt=!1,rt,nt;const ot=(...it)=>{rt=it,tt||(tt=!0,nt=_e(()=>{tt=!1,reactDomExports.unstable_batchedUpdates(()=>{j.apply(null,rt)})}))};return ot.cancel=()=>{et(nt)},ot}const animationFramed=j=>makeScheduledCallback(j,requestAnimationFrame,cancelAnimationFrame),useRenderedArea=(j,_e)=>reactExports.useMemo(()=>_e?getRenderedArea(j):{minX:-Number.MAX_SAFE_INTEGER,minY:-Number.MAX_SAFE_INTEGER,maxX:Number.MAX_SAFE_INTEGER,maxY:Number.MAX_SAFE_INTEGER},[j,_e]);class DragController{constructor(_e,et){this.onMove=noop$3,this.onEnd=noop$3,this.lastEvent=null,this.startX=0,this.startY=0,this.prevClientX=0,this.prevClientY=0,this.onMouseUp=tt=>{this.lastEvent=tt,this.doOnMouseUp(tt),this.lastEvent=null},this.onMouseMove=tt=>{this.lastEvent=tt,tt.preventDefault(),this.mouseMove(tt)},this.eventProvider=_e,this.getPositionFromEvent=et,this.mouseMove=animationFramed(tt=>{this.doOnMouseMove(tt)})}start(_e){this.lastEvent=_e;const{x:et,y:tt}=this.getPositionFromEvent(_e);this.startX=et,this.startY=tt,this.prevClientX=et,this.prevClientY=tt,this.eventProvider.on("move",this.onMouseMove),this.eventProvider.on("end",this.onMouseUp)}stop(){this.mouseMove.cancel(),this.eventProvider.off("move",this.onMouseMove),this.eventProvider.off("end",this.onMouseUp)}getDelta(_e,et){const tt=_e-this.prevClientX,rt=et-this.prevClientY;return this.prevClientX=_e,this.prevClientY=et,{x:tt,y:rt}}getTotalDelta(_e){const et=_e.clientX-this.startX,tt=_e.clientY-this.startY;return{x:et,y:tt}}doOnMouseMove(_e){const{x:et,y:tt}=this.getPositionFromEvent(_e),{x:rt,y:nt}=this.getDelta(et,tt),{x:ot,y:it}=this.getTotalDelta(_e);this.onMove({clientX:et,clientY:tt,dx:rt,dy:nt,totalDX:ot,totalDY:it,e:_e})}doOnMouseUp(_e){_e.preventDefault();const{x:et,y:tt}=this.getTotalDelta(_e);this.onEnd({totalDX:et,totalDY:tt,e:_e}),this.stop()}}function defaultGetPositionFromEvent(j){return{x:j.clientX,y:j.clientY}}class DragNodeController extends DragController{constructor(_e,et,tt){super(_e,et),this.rectRef=tt}doOnMouseMove(_e){super.doOnMouseMove(_e);const et=this.rectRef.current;!et||!this.lastEvent||(_e.clientXet.right||_e.clientYet.bottom)&&this.mouseMove(this.lastEvent)}}class TouchController{constructor(_e){this.eventHandlers={onPointerDown:(et,...tt)=>{et.pointerType==="touch"&&(et.preventDefault(),this.pointers=new Map(this.pointers),this.pointers.set(et.pointerId,et.nativeEvent),this.updateHandler(et.nativeEvent,...tt))},onPointerMove:(et,...tt)=>{et.pointerType==="touch"&&(et.preventDefault(),this.pointers.set(et.pointerId,et.nativeEvent),this.onMove(et.nativeEvent,...tt))},onPointerUp:(et,...tt)=>{et.pointerType==="touch"&&(et.preventDefault(),this.pointers=new Map(this.pointers),this.pointers.delete(et.pointerId),this.updateHandler(et.nativeEvent,...tt))}},this.pointers=new Map,this.onMove=animationFramed((et,...tt)=>{var rt;(rt=this.currentHandler)===null||rt===void 0||rt.onMove(this.pointers,et,...tt)}),this.handlers=_e}updateHandler(_e,...et){var tt,rt;const nt=this.handlers.get(this.pointers.size);nt!==this.currentHandler&&((tt=this.currentHandler)===null||tt===void 0||tt.onEnd(_e,...et),this.currentHandler=nt,(rt=this.currentHandler)===null||rt===void 0||rt.onStart(this.pointers,_e,...et))}}class TwoFingerHandler{constructor(_e,et){this.prevDistance=0,this.rectRef=_e,this.eventChannel=et}onEnd(){}onMove(_e,et){const tt=Array.from(_e.values()),rt=distance(tt[0].clientX,tt[0].clientY,tt[1].clientX,tt[1].clientY),{prevEvents:nt,prevDistance:ot}=this;if(this.prevDistance=rt,this.prevEvents=tt,!nt)return;const it=tt[0].clientX-nt[0].clientX,st=tt[1].clientX-nt[1].clientX,lt=tt[0].clientY-nt[0].clientY,ut=tt[1].clientY-nt[1].clientY,ct=(it+st)/2,dt=(lt+ut)/2,ft=(rt-ot)/ot+1,pt=getContainerCenter(this.rectRef);pt&&this.eventChannel.trigger({type:GraphCanvasEvent.Pinch,rawEvent:et,dx:ct,dy:dt,scale:ft,anchor:pt})}onStart(_e){if(_e.size!==2)throw new Error(`Unexpected touch event with ${_e.size} touches`);this.prevEvents=Array.from(_e.values()),this.prevDistance=distance(this.prevEvents[0].clientX,this.prevEvents[0].clientY,this.prevEvents[1].clientX,this.prevEvents[1].clientY)}}const useGraphTouchHandler=(j,_e)=>reactExports.useMemo(()=>new TouchController(new Map().set(2,new TwoFingerHandler(j,_e))).eventHandlers,[j,_e]),isSafari=getBrowser()===BrowserType.Safari;let prevScale=0;function useSafariScale({rectRef:j,svgRef:_e,eventChannel:et}){reactExports.useEffect(()=>{const tt=_e.current;if(!isSafari||!tt||isMobile())return()=>{};const rt=animationFramed(st=>{const{scale:lt}=st,ut=lt/prevScale;prevScale=lt,et.trigger({type:GraphCanvasEvent.Zoom,rawEvent:st,scale:ut,anchor:getContainerCenter(j)})}),nt=st=>{st.stopPropagation(),st.preventDefault(),prevScale=st.scale,et.trigger({type:GraphCanvasEvent.Zoom,rawEvent:st,scale:st.scale,anchor:getContainerCenter(j)})},ot=st=>{st.stopPropagation(),st.preventDefault(),rt(st)},it=st=>{st.stopPropagation(),st.preventDefault(),rt(st)};return tt.addEventListener("gesturestart",nt),tt.addEventListener("gesturechange",ot),tt.addEventListener("gestureend",it),()=>{tt.removeEventListener("gesturestart",nt),tt.removeEventListener("gesturechange",ot),tt.removeEventListener("gestureend",it)}},[])}function useDeferredValue(j,{timeout:_e}){const[et,tt]=reactExports.useState(j);return reactExports.useEffect(()=>{const rt=setTimeout(()=>{tt(j)},_e);return()=>{clearTimeout(rt)}},[j,_e]),et}const useSelectBox=(j,_e)=>{const et=useDeferredValue(_e,{timeout:100});reactExports.useEffect(()=>{j({type:GraphCanvasEvent.UpdateNodeSelectionBySelectBox})},[et])},useGraphState=()=>reactExports.useContext(GraphStateContext),handleBehaviorChange=(j,_e)=>{switch(_e.type){case GraphNodeEvent.DragStart:return GraphBehavior.Dragging;case GraphEdgeEvent.ConnectStart:return GraphBehavior.Connecting;case GraphCanvasEvent.SelectStart:return GraphBehavior.MultiSelect;case GraphCanvasEvent.DragStart:return GraphBehavior.Panning;case GraphCanvasEvent.DraggingNodeFromItemPanelStart:return GraphBehavior.AddingNode;case GraphNodeEvent.DragEnd:case GraphEdgeEvent.ConnectEnd:case GraphCanvasEvent.SelectEnd:case GraphCanvasEvent.DragEnd:case GraphCanvasEvent.DraggingNodeFromItemPanelEnd:return GraphBehavior.Default;default:return j}},behaviorReducer=(j,_e)=>{const et=handleBehaviorChange(j.behavior,_e);return et===j.behavior?j:Object.assign(Object.assign({},j),{behavior:et})};function __rest(j,_e){var et={};for(var tt in j)Object.prototype.hasOwnProperty.call(j,tt)&&_e.indexOf(tt)<0&&(et[tt]=j[tt]);if(j!=null&&typeof Object.getOwnPropertySymbols=="function")for(var rt=0,tt=Object.getOwnPropertySymbols(j);rt{switch(_e.type){case GraphCanvasEvent.Paste:{const{position:et}=_e;if(!isViewportComplete(j.viewport))return j;const{rect:tt}=j.viewport;let rt=_e.data.nodes;if(et&&tt){const ot=getRealPointFromClientPoint(et.x,et.y,j.viewport);let it,st;rt=rt.map((lt,ut)=>(ut===0&&(it=ot.x-lt.x,st=ot.y-lt.y),Object.assign(Object.assign({},lt),{x:it?lt.x-COPIED_NODE_SPACING+it:lt.x,y:st?lt.y-COPIED_NODE_SPACING+st:lt.y,state:GraphNodeStatus.Selected})))}let nt=unSelectAllEntity()(j.data.present);return rt.forEach(ot=>{nt=nt.insertNode(ot)}),_e.data.edges.forEach(ot=>{nt=nt.insertEdge(ot)}),Object.assign(Object.assign({},j),{data:pushHistory(j.data,nt)})}case GraphCanvasEvent.Delete:return j.settings.features.has(GraphFeatures.Delete)?Object.assign(Object.assign({},j),{data:pushHistory(j.data,j.data.present.deleteItems({node:notSelected,edge:notSelected}),unSelectAllEntity())}):j;case GraphCanvasEvent.Undo:return Object.assign(Object.assign({},j),{data:undo(j.data)});case GraphCanvasEvent.Redo:return Object.assign(Object.assign({},j),{data:redo(j.data)});case GraphCanvasEvent.KeyDown:{const et=_e.rawEvent.key.toLowerCase();if(j.activeKeys.has(et))return j;const tt=new Set(j.activeKeys);return tt.add(et),Object.assign(Object.assign({},j),{activeKeys:tt})}case GraphCanvasEvent.KeyUp:{const et=_e.rawEvent.key.toLowerCase();if(!j.activeKeys.has(et))return j;const tt=new Set(j.activeKeys);return tt.delete(et),Object.assign(Object.assign({},j),{activeKeys:tt})}case GraphCanvasEvent.SetData:return Object.assign(Object.assign({},j),{data:resetUndoStack(_e.data)});case GraphCanvasEvent.UpdateData:return Object.assign(Object.assign({},j),{data:_e.shouldRecord?pushHistory(j.data,_e.updater(j.data.present)):Object.assign(Object.assign({},j.data),{present:_e.updater(j.data.present)})});case GraphCanvasEvent.ResetUndoStack:return Object.assign(Object.assign({},j),{data:resetUndoStack(j.data.present)});case GraphCanvasEvent.UpdateSettings:{const et=__rest(_e,["type"]);return Object.assign(Object.assign({},j),{settings:Object.assign(Object.assign({},j.settings),et)})}default:return j}};function composeReducers(j){return _e=>j.reduceRight((et,tt)=>tt(et),_e)}const VisitPortHelper=j=>{const{neighborPorts:_e,data:et}=j,tt=reactExports.useRef(null),[rt,nt]=reactExports.useState(),ot=reactExports.useCallback(lt=>{lt.key==="Escape"&&(lt.stopPropagation(),lt.preventDefault(),rt&&j.onComplete(rt))},[rt,j]),it=reactExports.useCallback(()=>{},[]),st=reactExports.useCallback(lt=>{const ut=JSON.parse(lt.target.value);ut.nodeId&&ut.portId&&nt({nodeId:ut.nodeId,portId:ut.portId})},[nt]);return reactExports.useEffect(()=>{tt.current&&tt.current.focus({preventScroll:!0})},[]),jsxRuntimeExports.jsx("select",Object.assign({onKeyDown:ot,onBlur:it,ref:tt,onChange:st},{children:_e.map(lt=>{const ut=rt&&rt.portId===lt.portId&&rt.nodeId===lt.nodeId,ct=JSON.stringify(lt),dt=et.nodes.get(lt.nodeId);if(!dt)return null;const ft=dt.ports?dt.ports.filter(gt=>gt.id===lt.portId)[0]:null;if(!ft)return null;const pt=`${dt.ariaLabel||dt.name||dt.id}: ${ft.ariaLabel||ft.name||ft.id}`;return jsxRuntimeExports.jsx("option",Object.assign({value:ct,"aria-selected":ut,"aria-label":pt},{children:pt}),`${lt.nodeId}-${lt.portId}`)})}))},item=(j=void 0,_e=void 0)=>({node:j,port:_e}),findDOMElement=(j,{node:_e,port:et})=>{var tt,rt;let nt;if(_e&&et)nt=getPortUid((tt=j.dataset.graphId)!==null&&tt!==void 0?tt:"",_e,et);else if(_e)nt=getNodeUid((rt=j.dataset.graphId)!==null&&rt!==void 0?rt:"",_e);else return null;return j.getElementById(nt)},focusItem=(j,_e,et,tt)=>{if(!j.current)return;const rt=findDOMElement(j.current,_e);rt?(et.preventDefault(),et.stopPropagation(),rt.focus({preventScroll:!0}),tt.trigger({type:GraphCanvasEvent.Navigate,node:_e.node,port:_e.port,rawEvent:et})):!_e.node&&!_e.port&&tt.trigger({type:GraphCanvasEvent.Navigate,node:_e.node,port:_e.port,rawEvent:et})},getNextItem=(j,_e,et)=>{if(_e.ports){const nt=(et?_e.ports.findIndex(ot=>ot.id===et.id):-1)+1;if(nt<_e.ports.length)return item(_e,_e.ports[nt])}const tt=_e.next&&j.nodes.get(_e.next);return tt?item(tt):item()},getPrevItem=(j,_e,et)=>{if(et&&_e.ports){const rt=_e.ports.findIndex(nt=>nt.id===et.id)-1;return rt>=0?item(_e,_e.ports[rt]):item(_e)}const tt=_e.prev&&j.nodes.get(_e.prev);return tt?item(tt,tt.ports&&tt.ports.length?tt.ports[tt.ports.length-1]:void 0):item()},nextConnectablePort=(j,_e)=>(et,tt,rt)=>{var nt,ot,it;let st=getNextItem(et,tt,rt);for(;!(((nt=st.node)===null||nt===void 0?void 0:nt.id)===tt.id&&((ot=st.port)===null||ot===void 0?void 0:ot.id)===(rt==null?void 0:rt.id));){if(!st.node)st=item(et.getNavigationFirstNode());else if(st.port&&!((it=j.getPortConfig(st.port))===null||it===void 0)&&it.getIsConnectable(Object.assign(Object.assign({},_e),{data:et,parentNode:st.node,model:st.port})))return st;st=getNextItem(et,st.node,st.port)}return item()},focusNextPort=(j,_e,et,tt,rt,nt)=>{const it=(j.findIndex(lt=>lt.id===et)+1)%j.length,st=j[it];st&&tt.current&&focusItem(tt,{node:_e,port:st},rt,nt)},focusPrevPort=(j,_e,et,tt,rt,nt)=>{const it=(j.findIndex(lt=>lt.id===et)-1+j.length)%j.length,st=j[it];st&&tt.current&&focusItem(tt,{node:_e,port:st},rt,nt)},getFocusNodeHandler=j=>(_e,et,tt,rt,nt,ot)=>{const it=Array.from(_e.nodes.values()).sort(j),st=it.findIndex(ut=>ut.id===et),lt=it[(st+1)%it.length];lt&&tt.current&&(rt.dispatch({type:GraphNodeEvent.Select,nodes:[lt.id]}),rt.dispatch({type:GraphNodeEvent.Centralize,nodes:[lt.id]}),focusItem(tt,{node:lt,port:void 0},nt,ot))},focusLeftNode=getFocusNodeHandler((j,_e)=>j.x*10+j.y-_e.x*10-_e.y),focusRightNode=getFocusNodeHandler((j,_e)=>_e.x*10+_e.y-j.x*10-j.y),focusDownNode=getFocusNodeHandler((j,_e)=>j.x+j.y*10-_e.x-_e.y*10),focusUpNode=getFocusNodeHandler((j,_e)=>_e.x+_e.y*10-j.x-j.y*10),goToConnectedPort=(j,_e,et,tt,rt,nt)=>{var ot;const it=getNeighborPorts(j,_e.id,et.id);if(it.length===1&&tt.current){const st=j.nodes.get(it[0].nodeId);if(!st)return;const lt=(ot=st.ports)===null||ot===void 0?void 0:ot.find(ut=>ut.id===it[0].portId);if(!lt)return;focusItem(tt,{node:st,port:lt},rt,nt)}else if(it.length>1&&tt.current){const st=ct=>{var dt;if(reactDomExports.unmountComponentAtNode(lt),tt.current){const gt=tt.current.closest(".react-dag-editor-container");gt&>.removeChild(lt)}const ft=j.nodes.get(ct.nodeId);if(!ft)return;const pt=(dt=ft.ports)===null||dt===void 0?void 0:dt.find(gt=>gt.id===ct.portId);pt&&focusItem(tt,{node:ft,port:pt},rt,nt)},lt=document.createElement("div"),ut=tt.current.closest(".react-dag-editor-container");ut&&ut.appendChild(lt),lt.style.position="fixed",lt.style.top="0",reactDomExports.render(jsxRuntimeExports.jsx(VisitPortHelper,{neighborPorts:it,onComplete:st,data:j}),lt)}};function defaultGetPortAriaLabel(j,_e,et){return et.ariaLabel}function defaultGetNodeAriaLabel(j){return j.ariaLabel}function attachPort(j,_e,et){if(!j.connectState)return j;let tt=j.data.present;return tt=tt.updatePort(_e,et,updateStatus(add$1(GraphPortStatus.ConnectingAsTarget))),j.connectState.targetNode&&j.connectState.targetPort&&(tt=tt.updatePort(j.connectState.targetNode,j.connectState.targetPort,updateStatus(remove$1(GraphPortStatus.ConnectingAsTarget)))),Object.assign(Object.assign({},j),{connectState:Object.assign(Object.assign({},j.connectState),{targetNode:_e,targetPort:et}),data:Object.assign(Object.assign({},j.data),{present:tt})})}function clearAttach(j){if(!j.connectState)return j;let _e=j.data.present;const{targetPort:et,targetNode:tt}=j.connectState;return tt&&et&&(_e=_e.updatePort(tt,et,updateStatus(remove$1(GraphPortStatus.ConnectingAsTarget)))),Object.assign(Object.assign({},j),{connectState:Object.assign(Object.assign({},j.connectState),{targetNode:void 0,targetPort:void 0}),data:Object.assign(Object.assign({},j.data),{present:_e})})}const connectingReducer=(j,_e)=>{var et,tt,rt;if(!isViewportComplete(j.viewport))return j;const{rect:nt}=j.viewport;switch(_e.type){case GraphEdgeEvent.ConnectStart:return Object.assign(Object.assign({},j),{connectState:Object.assign(Object.assign({},EMPTY_CONNECT_STATE),{sourceNode:_e.nodeId,sourcePort:_e.portId,movingPoint:_e.clientPoint?{x:_e.clientPoint.x-nt.left,y:_e.clientPoint.y-nt.top}:void 0}),data:Object.assign(Object.assign({},j.data),{present:j.data.present.updatePort(_e.nodeId,_e.portId,updateStatus(add$1(GraphPortStatus.Connecting)))})});case GraphEdgeEvent.ConnectMove:return j.connectState?Object.assign(Object.assign({},j),{connectState:Object.assign(Object.assign({},j.connectState),{movingPoint:{x:_e.clientX-nt.left,y:_e.clientY-nt.top}})}):j;case GraphEdgeEvent.ConnectEnd:if(j.connectState){const{edgeWillAdd:ot,isCancel:it}=_e,{sourceNode:st,sourcePort:lt,targetNode:ut,targetPort:ct}=j.connectState;let dt=j.data.present;if(dt=dt.updatePort(st,lt,updateStatus(replace$3(GraphPortStatus.Default))),!it&&ut&&ct){let ft={source:st,sourcePortId:lt,target:ut,targetPortId:ct,id:v4(),status:GraphEdgeStatus.Default};return ot&&(ft=ot(ft,dt)),dt=dt.insertEdge(ft).updatePort(ut,ct,updateStatus(replace$3(GraphPortStatus.Default))),Object.assign(Object.assign({},j),{connectState:void 0,data:pushHistory(j.data,dt,unSelectAllEntity())})}return Object.assign(Object.assign({},j),{connectState:void 0,data:Object.assign(Object.assign({},j.data),{present:dt})})}return j;case GraphEdgeEvent.ConnectNavigate:if(j.connectState){const ot=j.data.present,it=ot.nodes.get(j.connectState.sourceNode),st=it==null?void 0:it.getPort(j.connectState.sourcePort),lt=j.connectState.targetNode?ot.nodes.get(j.connectState.targetNode):void 0,ut=j.connectState.targetPort?lt==null?void 0:lt.getPort(j.connectState.targetPort):void 0;if(!it||!st)return j;const ct=nextConnectablePort(j.settings.graphConfig,{anotherNode:it,anotherPort:st})(ot,lt||it,ut);return!ct.node||!ct.port||ct.node.id===it.id&&ct.port.id===st.id?j:attachPort(j,ct.node.id,ct.port.id)}return j;case GraphPortEvent.PointerEnter:if(j.connectState){const{sourceNode:ot,sourcePort:it}=j.connectState,st=j.data.present,lt=st.nodes.get(_e.node.id),ut=lt==null?void 0:lt.getPort(_e.port.id),ct=st.nodes.get(ot),dt=ct==null?void 0:ct.getPort(it);if(lt&&ut&&ct&&dt&&isConnectable(j.settings.graphConfig,{parentNode:lt,model:ut,data:st,anotherPort:dt,anotherNode:ct}))return attachPort(j,lt.id,ut.id)}return j;case GraphNodeEvent.PointerEnter:case GraphNodeEvent.PointerMove:if(j.connectState){const{clientX:ot,clientY:it}=_e.rawEvent,{sourceNode:st,sourcePort:lt}=j.connectState,ut=j.data.present,ct=ut.nodes.get(_e.node.id),dt=ut.nodes.get(st),ft=dt==null?void 0:dt.getPort(lt);if(ct&&dt&&ft){const pt=getNearestConnectablePort({parentNode:ct,clientX:ot,clientY:it,graphConfig:j.settings.graphConfig,data:j.data.present,viewport:j.viewport,anotherPort:ft,anotherNode:dt});return pt?attachPort(j,ct.id,pt.id):j}}return j;case GraphNodeEvent.PointerLeave:return((et=j.connectState)===null||et===void 0?void 0:et.targetNode)===_e.node.id?clearAttach(j):j;case GraphPortEvent.PointerLeave:return((tt=j.connectState)===null||tt===void 0?void 0:tt.targetNode)===_e.node.id&&((rt=j.connectState)===null||rt===void 0?void 0:rt.targetPort)===_e.port.id?clearAttach(j):j;default:return j}},contextMenuReducer=(j,_e)=>{let et=j.contextMenuPosition;switch(_e.type){case GraphCanvasEvent.ContextMenu:case GraphNodeEvent.ContextMenu:case GraphEdgeEvent.ContextMenu:case GraphPortEvent.ContextMenu:{const tt=_e.rawEvent;tt.button===MouseEventButton.Secondary&&(et={x:tt.clientX,y:tt.clientY})}break;case GraphCanvasEvent.Click:case GraphNodeEvent.Click:case GraphEdgeEvent.Click:case GraphPortEvent.Click:et=void 0;break;case GraphContextMenuEvent.Open:et={x:_e.x,y:_e.y};break;case GraphContextMenuEvent.Close:et=void 0;break}return j.contextMenuPosition===et?j:Object.assign(Object.assign({},j),{contextMenuPosition:et})},edgeReducer=(j,_e)=>{switch(_e.type){case GraphEdgeEvent.DoubleClick:return j.settings.features.has(GraphFeatures.EditEdge)?Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updateEdge(_e.edge.id,updateStatus(replace$3(GraphEdgeStatus.Editing)))})}):j;case GraphEdgeEvent.MouseEnter:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updateEdge(_e.edge.id,updateStatus(add$1(GraphEdgeStatus.Activated)))})});case GraphEdgeEvent.MouseLeave:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updateEdge(_e.edge.id,updateStatus(remove$1(GraphEdgeStatus.Activated)))})});case GraphEdgeEvent.Click:case GraphEdgeEvent.ContextMenu:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:unSelectAllEntity()(j.data.present).updateEdge(_e.edge.id,updateStatus(add$1(GraphEdgeStatus.Selected)))})});case GraphEdgeEvent.Add:return Object.assign(Object.assign({},j),{data:pushHistory(j.data,j.data.present.insertEdge(_e.edge))});default:return j}},getAlignmentLines=(j,_e,et,tt=2)=>{const rt=getDummyDraggingNode(j),nt=getClosestNodes(rt,j,_e,et,tt);return getLines(rt,nt,j.length)},getAutoAlignDisplacement=(j,_e,et,tt)=>{let rt=1/0,nt=0;const ot=getDummyDraggingNode(_e),it=tt==="x"?ot.width||0:ot.height||0;return j.forEach(st=>{let lt;if(tt==="x"&&st.x1===st.x2)lt=st.x1;else if(tt==="y"&&st.y1===st.y2)lt=st.y1;else return;const ut=ot[tt]-lt,ct=ot[tt]+(it||0)/2-lt,dt=ot[tt]+(it||0)-lt;Math.abs(ut)0?-rt:rt),Math.abs(ct)0?-rt:rt),Math.abs(dt)0?-rt:rt)}),nt},getMinCoordinate=(j,_e)=>{if(j.length)return Math.min(...j.map(et=>et[_e]))},getMaxCoordinate=(j,_e)=>{if(j.length)return Math.max(...j.map(et=>et[_e]+(_e==="y"?et.height||0:et.width||0)))},setSizeForNode=(j,_e)=>Object.assign(Object.assign({},j),getNodeSize(j,_e)),getBoundingBoxOfNodes=j=>{let _e=1/0,et=1/0,tt=-1/0,rt=-1/0;return j.forEach(nt=>{const ot=nt.x,it=nt.y,st=nt.x+(nt.width||0),lt=nt.y+(nt.height||0);ot<_e&&(_e=ot),ittt&&(tt=st),lt>rt&&(rt=lt)}),{x:_e,y:et,width:tt-_e,height:rt-et}},getDummyDraggingNode=j=>{const{x:_e,y:et,width:tt,height:rt}=getBoundingBoxOfNodes(j);return{id:v4(),x:_e,y:et,width:tt,height:rt}},getClosestNodes=(j,_e,et,tt,rt=2)=>{const nt=[],ot=[],{x:it,y:st,width:lt=0,height:ut=0}=j;let ct=rt,dt=rt;return et.forEach(ft=>{if(_e.find(bt=>bt.id===ft.id))return;const pt=setSizeForNode(ft,tt),{width:gt=0,height:vt=0}=pt;[it,it+lt/2,it+lt].forEach((bt,_t)=>{nt[_t]||(nt[_t]={}),nt[_t].closestNodes||(nt[_t].closestNodes=[]),[pt.x,pt.x+gt/2,pt.x+gt].forEach(xt=>{var yt;const Et=Math.abs(bt-xt);Et<=ct&&((yt=nt[_t].closestNodes)===null||yt===void 0||yt.push(pt),nt[_t].alignCoordinateValue=xt,ct=Et)})}),[st,st+ut/2,st+ut].forEach((bt,_t)=>{ot[_t]||(ot[_t]={}),ot[_t].closestNodes||(ot[_t].closestNodes=[]),[pt.y,pt.y+vt/2,pt.y+vt].forEach(xt=>{var yt;const Et=Math.abs(bt-xt);Et<=dt&&((yt=ot[_t].closestNodes)===null||yt===void 0||yt.push(pt),ot[_t].alignCoordinateValue=xt,dt=Et)})})}),{closestX:nt,closestY:ot}},getLines=(j,_e,et=1)=>{const tt=[],rt=[],nt=_e.closestX,ot=_e.closestY;return nt.forEach((it,st)=>{var lt;if(it.alignCoordinateValue===void 0||st===1&&(tt.length||et>1))return;const ut=[],ct=it.alignCoordinateValue;(lt=it.closestNodes)===null||lt===void 0||lt.forEach(pt=>{(pt.x===ct||pt.x+(pt.width||0)/2===ct||pt.x+(pt.width||0)===ct)&&ut.push(pt)});const dt=getMinCoordinate([j,...ut],"y"),ft=getMaxCoordinate([j,...ut],"y");dt!==void 0&&ft!==void 0&&tt.push({x1:ct,y1:dt,x2:ct,y2:ft,visible:!0})}),ot.forEach((it,st)=>{var lt;if(it.alignCoordinateValue===void 0||st===1&&(rt.length||et>1))return;const ut=[],ct=it.alignCoordinateValue;(lt=it.closestNodes)===null||lt===void 0||lt.forEach(pt=>{(pt.y===ct||pt.y+(pt.height||0)/2===ct||pt.y+(pt.height||0)===ct)&&ut.push(pt)});const dt=getMinCoordinate([j,...ut],"x"),ft=getMaxCoordinate([j,...ut],"x");dt!==void 0&&ft!==void 0&&rt.push({x1:dt,y1:ct,x2:ft,y2:ct,visible:!0})}),[...tt,...rt]};function pipe(...j){return j.reduceRight((_e,et)=>tt=>_e(et(tt)),identical)}const getDelta=(j,_e,et)=>et_e?10:0;function getSelectedNodes(j,_e){const et=[];return j.nodes.forEach(tt=>{isSelected(tt)&&et.push(Object.assign({id:tt.id,x:tt.x,y:tt.y},getNodeSize(tt,_e)))}),et}function dragNodeHandler(j,_e){if(!isViewportComplete(j.viewport))return j;const et=ft=>Math.max(ft,getScaleLimit(ot,j.settings)),tt=_e.rawEvent,{rect:rt}=j.viewport,nt=Object.assign({},j),ot=j.data.present,it=getDelta(rt.left,rt.right,tt.clientX),st=getDelta(rt.top,rt.bottom,tt.clientY),lt=it!==0||st!==0?.999:1,ut=it!==0||it!==0?pipe(pan(-it,-st),zoom({scale:lt,anchor:getRelativePoint(rt,tt),direction:Direction$1.XY,limitScale:et}))(j.viewport):j.viewport,ct=getPointDeltaByClientDelta(_e.dx+it*lt,_e.dy+st*lt,ut.transformMatrix),dt=Object.assign(Object.assign({},j.dummyNodes),{dx:j.dummyNodes.dx+ct.x,dy:j.dummyNodes.dy+ct.y,isVisible:_e.isVisible});if(_e.isAutoAlignEnable){const ft=getRenderedNodes(ot.nodes,j.viewport);if(ft.length<_e.autoAlignThreshold){const pt=dt.nodes.map(vt=>Object.assign(Object.assign({},vt),{x:vt.x+dt.dx,y:vt.y+dt.dy})),gt=getAlignmentLines(pt,ft,j.settings.graphConfig,j.viewport.transformMatrix[0]>.3?2:5);if(gt.length){const vt=getAutoAlignDisplacement(gt,pt,j.settings.graphConfig,"x"),bt=getAutoAlignDisplacement(gt,pt,j.settings.graphConfig,"y");dt.alignedDX=dt.dx+vt,dt.alignedDY=dt.dy+bt}else dt.alignedDX=void 0,dt.alignedDY=void 0;nt.alignmentLines=gt}else dt.alignedDX=void 0,dt.alignedDY=void 0}return nt.dummyNodes=dt,nt.viewport=ut,nt}function handleDraggingNewNode(j,_e){if(!j.settings.features.has(GraphFeatures.AutoAlign))return j;const et=j.data.present,tt=getRenderedNodes(et.nodes,j.viewport),rt=getAlignmentLines([_e.node],tt,j.settings.graphConfig,j.viewport.transformMatrix[0]>.3?2:5);return Object.assign(Object.assign({},j),{alignmentLines:rt})}function dragStart(j,_e){let et=j.data.present;const tt=et.nodes.get(_e.node.id);if(!tt)return j;let rt;return _e.isMultiSelect?(et=et.selectNodes(nt=>nt.id===_e.node.id||isSelected(nt)),rt=getSelectedNodes(et,j.settings.graphConfig)):isSelected(tt)?rt=getSelectedNodes(et,j.settings.graphConfig):rt=[Object.assign({id:_e.node.id,x:_e.node.x,y:_e.node.y},getNodeSize(_e.node,j.settings.graphConfig))],Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:et}),dummyNodes:Object.assign(Object.assign({},emptyDummyNodes()),{isVisible:!1,nodes:rt})})}function dragEnd(j,_e){let et=j.data.present;if(_e.isDragCanceled)return Object.assign(Object.assign({},j),{alignmentLines:[],dummyNodes:emptyDummyNodes()});const{dx:tt,dy:rt}=j.dummyNodes;return et=et.updateNodesPositionAndSize(j.dummyNodes.nodes.map(nt=>Object.assign(Object.assign({},nt),{x:nt.x+tt,y:nt.y+rt,width:void 0,height:void 0}))),Object.assign(Object.assign({},j),{alignmentLines:[],dummyNodes:emptyDummyNodes(),data:pushHistory(j.data,et,unSelectAllEntity())})}function locateNode(j,_e){const et=_e.data.present;if(!isViewportComplete(_e.viewport)||!j.nodes.length)return _e;if(j.nodes.length===1){const it=j.nodes[0],st=et.nodes.get(it);if(!st)return _e;const{width:lt,height:ut}=getNodeSize(st,_e.settings.graphConfig),ct=j.type===GraphNodeEvent.Centralize?st.x+lt/2:st.x,dt=j.type===GraphNodeEvent.Centralize?st.y+ut/2:st.y,{x:ft,y:pt}=transformPoint(ct,dt,_e.viewport.transformMatrix),gt=j.type===GraphNodeEvent.Locate?j.position:void 0;return Object.assign(Object.assign({},_e),{viewport:scrollIntoView$1(ft,pt,_e.viewport.rect,!0,gt)(_e.viewport)})}const{minNodeX:tt,minNodeY:rt,maxNodeX:nt,maxNodeY:ot}=getContentArea$1(et,_e.settings.graphConfig,new Set(j.nodes));return Object.assign(Object.assign({},_e),{viewport:focusArea(tt,rt,nt,ot,_e.viewport)})}const nodeReducer=(j,_e)=>{const et=j.data.present;switch(_e.type){case GraphNodeEvent.ResizingStart:return Object.assign(Object.assign({},j),{dummyNodes:Object.assign(Object.assign({},emptyDummyNodes()),{isVisible:!0,nodes:getSelectedNodes(et,j.settings.graphConfig)})});case GraphNodeEvent.Resizing:return Object.assign(Object.assign({},j),{dummyNodes:Object.assign(Object.assign({},j.dummyNodes),{dx:_e.dx,dy:_e.dy,dWidth:_e.dWidth,dHeight:_e.dHeight})});case GraphNodeEvent.ResizingEnd:{const{dx:tt,dy:rt,dWidth:nt,dHeight:ot}=j.dummyNodes;return Object.assign(Object.assign({},j),{dummyNodes:emptyDummyNodes(),data:pushHistory(j.data,et.updateNodesPositionAndSize(j.dummyNodes.nodes.map(it=>Object.assign(Object.assign({},it),{x:it.x+tt,y:it.y+rt,width:it.width+nt,height:it.height+ot}))),unSelectAllEntity())})}case GraphNodeEvent.DragStart:return dragStart(j,_e);case GraphNodeEvent.Drag:return dragNodeHandler(j,_e);case GraphNodeEvent.DragEnd:return dragEnd(j,_e);case GraphNodeEvent.PointerEnter:switch(j.behavior){case GraphBehavior.Default:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:et.updateNode(_e.node.id,updateStatus(add$1(GraphNodeStatus.Activated)))})});default:return j}case GraphNodeEvent.PointerLeave:switch(j.behavior){case GraphBehavior.Default:case GraphBehavior.Connecting:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:et.updateNode(_e.node.id,updateStatus(remove$1(GraphNodeStatus.Activated)))})});default:return j}case GraphCanvasEvent.DraggingNodeFromItemPanel:return handleDraggingNewNode(j,_e);case GraphCanvasEvent.DraggingNodeFromItemPanelEnd:return _e.node?Object.assign(Object.assign({},j),{alignmentLines:[],data:pushHistory(j.data,j.data.present.insertNode(Object.assign(Object.assign({},_e.node),{status:GraphNodeStatus.Selected})),unSelectAllEntity())}):Object.assign(Object.assign({},j),{alignmentLines:[]});case GraphNodeEvent.Centralize:case GraphNodeEvent.Locate:return locateNode(_e,j);case GraphNodeEvent.Add:return Object.assign(Object.assign({},j),{data:pushHistory(j.data,et.insertNode(_e.node))});case GraphNodeEvent.DoubleClick:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updateNode(_e.node.id,updateStatus(add$1(GraphNodeStatus.Editing)))})});default:return j}},portReducer=(j,_e)=>{switch(_e.type){case GraphPortEvent.Focus:case GraphPortEvent.PointerEnter:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updatePort(_e.node.id,_e.port.id,updateStatus(add$1(GraphPortStatus.Activated)))})});case GraphPortEvent.Blur:case GraphPortEvent.PointerLeave:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updatePort(_e.node.id,_e.port.id,updateStatus(remove$1(GraphPortStatus.Activated)))})});case GraphPortEvent.Click:case GraphPortEvent.ContextMenu:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:unSelectAllEntity()(j.data.present).updatePort(_e.node.id,_e.port.id,updateStatus(add$1(GraphPortStatus.Selected)))})});default:return j}},selectNodeBySelectBox=(j,_e,et,tt)=>{if(!et.width||!et.height)return tt;const rt=Math.min(et.startX,et.startX+et.width),nt=Math.max(et.startX,et.startX+et.width),ot=Math.min(et.startY,et.startY+et.height),it=Math.max(et.startY,et.startY+et.height),st=reverseTransformPoint(rt,ot,_e),lt=reverseTransformPoint(nt,it,_e),ut={minX:st.x,minY:st.y,maxX:lt.x,maxY:lt.y};return tt.selectNodes(ct=>{const{width:dt,height:ft}=getNodeSize(ct,j),pt={minX:ct.x,minY:ct.y,maxX:ct.x+dt,maxY:ct.y+ft};return checkRectIntersect(ut,pt)})};function handleNavigate(j,_e){let et=unSelectAllEntity()(j.data.present);if(_e.node&&_e.port)et=et.updatePort(_e.node.id,_e.port.id,updateStatus(add$1(GraphPortStatus.Selected)));else if(_e.node){const tt=_e.node.id;et=et.selectNodes(rt=>rt.id===tt)}return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:et})})}const selectionReducer=(j,_e)=>{var et,tt;const rt=j.data.present,nt=j.settings.features.has(GraphFeatures.LassoSelect);switch(_e.type){case GraphCanvasEvent.Click:case GraphCanvasEvent.ResetSelection:case GraphCanvasEvent.ContextMenu:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:unSelectAllEntity()(rt)})});case GraphNodeEvent.Click:case GraphNodeEvent.ContextMenu:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:nodeSelection(_e.rawEvent,_e.node)(rt)})});case GraphCanvasEvent.SelectStart:{if(!isViewportComplete(j.viewport))return j;const ot=getRelativePoint(j.viewport.rect,_e.rawEvent);return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:unSelectAllEntity()(rt)}),selectBoxPosition:{startX:ot.x,startY:nt?0:ot.y,width:0,height:0}})}case GraphCanvasEvent.SelectMove:return j.behavior!==GraphBehavior.MultiSelect?j:Object.assign(Object.assign({},j),{selectBoxPosition:Object.assign(Object.assign({},j.selectBoxPosition),{width:j.selectBoxPosition.width+_e.dx,height:nt?(tt=(et=j.viewport.rect)===null||et===void 0?void 0:et.height)!==null&&tt!==void 0?tt:j.selectBoxPosition.height:j.selectBoxPosition.height+_e.dy})});case GraphCanvasEvent.SelectEnd:return Object.assign(Object.assign({},j),{selectBoxPosition:emptySelectBoxPosition(),data:Object.assign(Object.assign({},j.data),{present:selectNodeBySelectBox(j.settings.graphConfig,j.viewport.transformMatrix,j.selectBoxPosition,rt)})});case GraphCanvasEvent.UpdateNodeSelectionBySelectBox:return j.behavior!==GraphBehavior.MultiSelect?j:Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:selectNodeBySelectBox(j.settings.graphConfig,j.viewport.transformMatrix,j.selectBoxPosition,rt)})});case GraphCanvasEvent.Navigate:return handleNavigate(j,_e);case GraphNodeEvent.SelectAll:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:rt.selectNodes(()=>!0)})});case GraphNodeEvent.Select:{const ot=new Set(_e.nodes);return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:rt.selectNodes(it=>ot.has(it.id))})})}default:return j}};function getRectCenter(j){return{x:j.width/2,y:j.height/2}}function resetViewport(j,_e,et,tt){if(!isViewportComplete(j))return j;if(!tt.ensureNodeVisible)return Object.assign(Object.assign({},j),{transformMatrix:EMPTY_TRANSFORM_MATRIX});const{nodes:rt,groups:nt}=_e;if(rt.size===0)return Object.assign(Object.assign({},j),{transformMatrix:EMPTY_TRANSFORM_MATRIX});const ot=ft=>isRectVisible(ft,j),it=rt.map(ft=>getNodeRect(ft,et));if(it.find(ot))return Object.assign(Object.assign({},j),{transformMatrix:EMPTY_TRANSFORM_MATRIX});const lt=nt.map(ft=>getGroupRect(ft,rt,et));if(lt.find(ot))return Object.assign(Object.assign({},j),{transformMatrix:EMPTY_TRANSFORM_MATRIX});let ct=it.first();const dt=ft=>{ct.y>ft.y&&(ct=ft)};return it.forEach(dt),lt.forEach(dt),Object.assign(Object.assign({},j),{transformMatrix:[1,0,0,1,-ct.x,-ct.y]})}function zoomToFit(j,_e,et,tt){if(!isViewportComplete(j))return j;const{graphConfig:rt,nodeMaxVisibleSize:nt,nodeMinVisibleSize:ot}=et,it=getZoomFitMatrix(Object.assign(Object.assign({},tt),{data:_e,graphConfig:rt,rect:j.rect,nodeMaxVisibleSize:nt,nodeMinVisibleSize:ot}));return Object.assign(Object.assign({},j),{transformMatrix:it})}const reducer=(j,_e,et,tt)=>{var rt,nt,ot,it;const{graphConfig:st,canvasBoundaryPadding:lt,features:ut}=tt,ct=dt=>Math.max(dt,getScaleLimit(et,tt));switch(_e.type){case GraphCanvasEvent.ViewportResize:return Object.assign(Object.assign({},j),{rect:_e.viewportRect});case GraphCanvasEvent.Zoom:return isViewportComplete(j)?zoom({scale:_e.scale,anchor:(rt=_e.anchor)!==null&&rt!==void 0?rt:getRectCenter(j.rect),direction:_e.direction,limitScale:ct})(j):j;case GraphScrollBarEvent.Scroll:case GraphCanvasEvent.MouseWheelScroll:case GraphCanvasEvent.Pan:case GraphCanvasEvent.Drag:{if(!isViewportComplete(j))return j;const{transformMatrix:dt,rect:ft}=j;let{dx:pt,dy:gt}=_e;const vt=ut.has(GraphFeatures.LimitBoundary),bt=(ot=(nt=et.groups)===null||nt===void 0?void 0:nt[0])===null||ot===void 0?void 0:ot.padding;if(vt){const{minX:_t,maxX:xt,minY:yt,maxY:Et}=getOffsetLimit({data:et,graphConfig:st,rect:ft,transformMatrix:dt,canvasBoundaryPadding:lt,groupPadding:bt});pt=clamp$1(_t-dt[4],xt-dt[4],pt),gt=clamp$1(yt-dt[5],Et-dt[5],gt)}return pan(pt,gt)(j)}case GraphCanvasEvent.Pinch:{const{dx:dt,dy:ft,scale:pt,anchor:gt}=_e;return pipe(pan(dt,ft),zoom({scale:pt,anchor:gt,limitScale:ct}))(j)}case GraphMinimapEvent.Pan:return minimapPan(_e.dx,_e.dy)(j);case GraphCanvasEvent.ResetViewport:return resetViewport(j,et,st,_e);case GraphCanvasEvent.ZoomTo:return isViewportComplete(j)?zoomTo({scale:_e.scale,anchor:(it=_e.anchor)!==null&&it!==void 0?it:getRectCenter(j.rect),direction:_e.direction,limitScale:ct})(j):j;case GraphCanvasEvent.ZoomToFit:return zoomToFit(j,et,tt,_e);case GraphCanvasEvent.ScrollIntoView:if(j.rect){const{x:dt,y:ft}=transformPoint(_e.x,_e.y,j.transformMatrix);return scrollIntoView$1(dt,ft,j.rect,!0)(j)}return j;default:return j}},viewportReducer=(j,_e)=>{const et=reducer(j.viewport,_e,j.data.present,j.settings);return et===j.viewport?j:Object.assign(Object.assign({},j),{viewport:et})},builtinReducer=composeReducers([behaviorReducer,viewportReducer,nodeReducer,portReducer,edgeReducer,canvasReducer,connectingReducer,selectionReducer,contextMenuReducer].map(j=>_e=>(et,tt)=>_e(j(et,tt),tt)));function getGraphReducer(j=void 0,_e=identical){return(j?composeReducers([j,builtinReducer]):builtinReducer)(_e)}function useGraphReducer(j,_e){const et=reactExports.useMemo(()=>getGraphReducer(_e),[_e]),[tt,rt]=reactExports.useReducer(et,j,createGraphState),nt=useConst(()=>[]),ot=reactExports.useRef(tt),it=reactExports.useCallback((st,lt)=>{lt&&nt.push(lt),rt(st)},[nt]);return reactExports.useEffect(()=>{const st=ot.current;st!==tt&&(ot.current=tt,reactDomExports.unstable_batchedUpdates(()=>{nt.forEach(lt=>{try{lt(tt,st)}catch(ut){console.error(ut)}}),nt.length=0}))},[tt]),[tt,it]}class MouseMoveEventProvider{constructor(_e){this.target=_e}off(_e,et){switch(_e){case"move":this.target.removeEventListener("mousemove",et);break;case"end":this.target.removeEventListener("mouseup",et);break}return this}on(_e,et){switch(_e){case"move":this.target.addEventListener("mousemove",et);break;case"end":this.target.addEventListener("mouseup",et);break}return this}}const useGetMouseDownOnAnchor=(j,_e)=>{const et=useGraphController();return reactExports.useCallback(tt=>rt=>{rt.preventDefault(),rt.stopPropagation(),_e.trigger({type:GraphNodeEvent.ResizingStart,rawEvent:rt,node:j});const nt=new DragController(new MouseMoveEventProvider(et.getGlobalEventTarget()),defaultGetPositionFromEvent);nt.onMove=({totalDX:ot,totalDY:it,e:st})=>{_e.trigger(Object.assign({type:GraphNodeEvent.Resizing,rawEvent:st,node:j,dx:0,dy:0,dWidth:0,dHeight:0},tt(ot,it)))},nt.onEnd=({e:ot})=>{_e.trigger({type:GraphNodeEvent.ResizingEnd,rawEvent:ot,node:j})},_e.trigger({type:GraphNodeEvent.ResizingStart,rawEvent:rt,node:j}),nt.start(rt.nativeEvent)},[_e,et,j])};class PointerEventProvider{constructor(_e,et=null){this.eventEmitter=new eventemitter3Exports.EventEmitter,this.onMove=tt=>{(this.pointerId===null||this.pointerId===tt.pointerId)&&this.eventEmitter.emit("move",tt)},this.onUp=tt=>{(this.pointerId===null||this.pointerId===tt.pointerId)&&this.eventEmitter.emit("end",tt)},this.target=_e,this.pointerId=et}off(_e,et){return this.eventEmitter.off(_e,et),this.ensureRemoveListener(_e),this}on(_e,et){return this.ensureAddListener(_e),this.eventEmitter.on(_e,et),this}ensureAddListener(_e){if(!this.eventEmitter.listeners(_e).length)switch(_e){case"move":this.target.addEventListener("pointermove",this.onMove);break;case"end":this.target.addEventListener("pointerup",this.onUp);break}}ensureRemoveListener(_e){if(!this.eventEmitter.listeners(_e).length)switch(_e){case"move":this.target.removeEventListener("pointermove",this.onMove);break;case"end":this.target.removeEventListener("pointerup",this.onUp);break}}}const withSimulatedClick=(j,_e)=>({totalDX:et,totalDY:tt,e:rt})=>{var nt;const{eventChannel:ot,dragThreshold:it,containerRef:st}=j,lt=[];lt.push({type:_e,rawEvent:rt}),rt.target instanceof Node&&(!((nt=st.current)===null||nt===void 0)&&nt.contains(rt.target))&&isWithinThreshold(et,tt,it)&<.push({type:GraphCanvasEvent.Click,rawEvent:rt}),ot.batch(lt)},dragMultiSelect=(j,_e)=>{const{getPositionFromEvent:et,graphController:tt,eventChannel:rt}=_e,nt=new DragController(new MouseMoveEventProvider(tt.getGlobalEventTarget()),et);nt.onMove=({dx:ot,dy:it,e:st})=>{rt.trigger({type:GraphCanvasEvent.SelectMove,rawEvent:st,dx:ot,dy:it})},nt.onEnd=withSimulatedClick(_e,GraphCanvasEvent.SelectEnd),rt.trigger({type:GraphCanvasEvent.SelectStart,rawEvent:j}),nt.start(j)},dragPan=(j,_e)=>{const{getPositionFromEvent:et,graphController:tt,eventChannel:rt}=_e,nt=new DragController(new MouseMoveEventProvider(tt.getGlobalEventTarget()),et);nt.onMove=({dx:ot,dy:it,e:st})=>{rt.trigger({type:GraphCanvasEvent.Drag,rawEvent:st,dx:ot,dy:it})},nt.onEnd=withSimulatedClick(_e,GraphCanvasEvent.DragEnd),nt.start(j),rt.trigger({type:GraphCanvasEvent.DragStart,rawEvent:j})},onContainerMouseDown=(j,_e)=>{var et;if(j.preventDefault(),j.stopPropagation(),j.button!==MouseEventButton.Primary)return;const{canvasMouseMode:tt,isPanDisabled:rt,isMultiSelectDisabled:nt,state:ot,isLassoSelectEnable:it,graphController:st}=_e,lt=tt===CanvasMouseMode.Pan&&!j.ctrlKey&&!j.shiftKey&&!j.metaKey||((et=ot.activeKeys)===null||et===void 0?void 0:et.has(" "));!rt&<?dragPan(j.nativeEvent,_e):!nt||it&&!j.ctrlKey&&!j.metaKey?dragMultiSelect(j.nativeEvent,_e):st.canvasClickOnce=!0};function isMouseButNotLeft(j){return j.pointerType==="mouse"&&j.button!==MouseEventButton.Primary}const onNodePointerDown=(j,_e,et)=>{j.preventDefault();const{svgRef:tt,isNodesDraggable:rt,getPositionFromEvent:nt,isClickNodeToSelectDisabled:ot,eventChannel:it,dragThreshold:st,rectRef:lt,isAutoAlignEnable:ut,autoAlignThreshold:ct,graphController:dt}=et;rt&&j.stopPropagation();const ft=isMouseButNotLeft(j);if(ot||ft)return;tt.current&&tt.current.focus({preventScroll:!0});const pt=checkIsMultiSelect(j),gt=new DragNodeController(new PointerEventProvider(dt.getGlobalEventTarget(),j.pointerId),nt,lt);gt.onMove=({dx:vt,dy:bt,totalDX:_t,totalDY:xt,e:yt})=>{rt&&it.trigger({type:GraphNodeEvent.Drag,node:_e,dx:vt,dy:bt,rawEvent:yt,isVisible:!isWithinThreshold(_t,xt,st),isAutoAlignEnable:ut,autoAlignThreshold:ct})},gt.onEnd=({totalDX:vt,totalDY:bt,e:_t})=>{var xt,yt;dt.pointerId=null;const Et=isWithinThreshold(vt,bt,st);if((Et||!rt)&&(dt.nodeClickOnce=_e),it.trigger({type:GraphNodeEvent.DragEnd,node:_e,rawEvent:_t,isDragCanceled:Et}),Et){const St=new MouseEvent("click",_t);(yt=(xt=j.currentTarget)!==null&&xt!==void 0?xt:j.target)===null||yt===void 0||yt.dispatchEvent(St)}},dt.pointerId=j.pointerId,j.target instanceof Element&&j.pointerType!=="mouse"&&j.target.releasePointerCapture(j.pointerId),it.trigger({type:GraphNodeEvent.DragStart,node:_e,rawEvent:j,isMultiSelect:pt}),gt.start(j.nativeEvent)},useCanvasKeyboardEventHandlers=j=>{const{featureControl:_e,graphConfig:et,setCurHoverNode:tt,setCurHoverPort:rt,eventChannel:nt}=j,{isDeleteDisabled:ot,isPasteDisabled:it,isUndoEnabled:st}=_e;return reactExports.useMemo(()=>{const lt=new Map,ut=()=>yt=>{yt.preventDefault(),yt.stopPropagation(),!ot&&(nt.trigger({type:GraphCanvasEvent.Delete}),tt(void 0),rt(void 0))};lt.set("delete",ut()),lt.set("backspace",ut());const ct=yt=>{metaControl(yt)&&(yt.preventDefault(),yt.stopPropagation(),nt.trigger({type:GraphCanvasEvent.Copy}))};lt.set("c",ct);const dt=yt=>{if(metaControl(yt)){if(yt.preventDefault(),yt.stopPropagation(),it)return;const Et=et.getClipboard().read();Et&&nt.trigger({type:GraphCanvasEvent.Paste,data:Et})}};lt.set("v",dt);const ft=yt=>{st&&metaControl(yt)&&(yt.preventDefault(),yt.stopPropagation(),nt.trigger({type:GraphCanvasEvent.Undo}))};st&<.set("z",ft);const pt=yt=>{st&&metaControl(yt)&&(yt.preventDefault(),yt.stopPropagation(),nt.trigger({type:GraphCanvasEvent.Redo}))};st&<.set("y",pt);const gt=yt=>{metaControl(yt)&&(yt.preventDefault(),yt.stopPropagation(),nt.trigger({type:GraphNodeEvent.SelectAll}))};lt.set("a",gt);const vt=yt=>{yt.preventDefault(),yt.stopPropagation()},bt=yt=>{yt.preventDefault(),yt.stopPropagation()},_t=yt=>{yt.preventDefault(),yt.stopPropagation()},xt=yt=>{yt.preventDefault(),yt.stopPropagation()};return lt.set(" ",vt),lt.set("control",bt),lt.set("meta",_t),lt.set("shift",xt),yt=>{if(yt.repeat)return;const Et=yt.key.toLowerCase(),St=lt.get(Et);St&&St.call(null,yt)}},[nt,et,ot,it,st,tt,rt])};let prevMouseDownPortId,prevMouseDownPortTime;function useEventChannel({props:j,dispatch:_e,rectRef:et,svgRef:tt,containerRef:rt,featureControl:nt,graphConfig:ot,setFocusedWithoutMouse:it,setCurHoverNode:st,setCurHoverPort:lt,eventChannel:ut,updateViewport:ct,graphController:dt}){const{dragThreshold:ft=10,autoAlignThreshold:pt=DEFAULT_AUTO_ALIGN_THRESHOLD,getPositionFromEvent:gt=defaultGetPositionFromEvent,canvasMouseMode:vt,edgeWillAdd:bt}=j,{isNodesDraggable:_t,isAutoAlignEnable:xt,isClickNodeToSelectDisabled:yt,isPanDisabled:Et,isMultiSelectDisabled:St,isLassoSelectEnable:$t,isConnectDisabled:At,isPortHoverViewEnable:wt,isNodeEditDisabled:Ct,isA11yEnable:It}=nt,Ot=reactExports.useMemo(()=>animationFramed(_e),[_e]),Nt=useCanvasKeyboardEventHandlers({featureControl:nt,eventChannel:ut,graphConfig:ot,setCurHoverNode:st,setCurHoverPort:lt}),Pt=qt=>{const ir=dt.getData();if(ir.nodes.size>0&&tt.current){const hr=ir.head&&ir.nodes.get(ir.head);hr&&focusItem(tt,{node:hr,port:void 0},qt,ut)}},Mt=qt=>{switch(qt.type){case GraphEdgeEvent.ConnectStart:case GraphEdgeEvent.ConnectMove:case GraphEdgeEvent.ConnectEnd:case GraphEdgeEvent.ConnectNavigate:case GraphEdgeEvent.Click:case GraphEdgeEvent.MouseEnter:case GraphEdgeEvent.MouseLeave:case GraphEdgeEvent.DoubleClick:_e(qt);break;case GraphEdgeEvent.ContextMenu:qt.rawEvent.stopPropagation(),qt.rawEvent.preventDefault(),_e(qt);break}},Rt=qt=>{var ir,hr;switch(qt.type){case GraphCanvasEvent.ViewportResize:case GraphCanvasEvent.Drag:case GraphCanvasEvent.MouseWheelScroll:case GraphCanvasEvent.Zoom:case GraphCanvasEvent.Pinch:case GraphCanvasEvent.Click:case GraphCanvasEvent.SelectStart:case GraphCanvasEvent.SelectMove:case GraphCanvasEvent.SelectEnd:case GraphCanvasEvent.ResetSelection:case GraphCanvasEvent.Navigate:case GraphCanvasEvent.Paste:case GraphCanvasEvent.Undo:case GraphCanvasEvent.Redo:case GraphCanvasEvent.Delete:case GraphCanvasEvent.KeyUp:case GraphCanvasEvent.DraggingNodeFromItemPanelStart:case GraphCanvasEvent.DraggingNodeFromItemPanel:case GraphCanvasEvent.DraggingNodeFromItemPanelEnd:_e(qt);break;case GraphCanvasEvent.Copy:{const nr=filterSelectedItems(dt.getData());ot.getClipboard().write(nr)}break;case GraphCanvasEvent.KeyDown:!qt.rawEvent.repeat&&qt.rawEvent.target===qt.rawEvent.currentTarget&&!qt.rawEvent.shiftKey&&qt.rawEvent.key==="Tab"?(qt.rawEvent.preventDefault(),qt.rawEvent.stopPropagation(),it(!0),Pt(qt.rawEvent)):Nt(qt.rawEvent),_e(qt);break;case GraphCanvasEvent.MouseDown:{dt.nodeClickOnce=null,(ir=tt.current)===null||ir===void 0||ir.focus({preventScroll:!0}),it(!1);const nr=qt.rawEvent;ct(),onContainerMouseDown(nr,{state:dt.state,canvasMouseMode:vt,isPanDisabled:Et,isMultiSelectDisabled:St,isLassoSelectEnable:$t,dragThreshold:ft,containerRef:rt,getPositionFromEvent:defaultGetPositionFromEvent,eventChannel:ut,graphController:dt})}break;case GraphCanvasEvent.MouseUp:if(dt.canvasClickOnce){dt.canvasClickOnce=!1;const nr=qt.rawEvent;nr.target instanceof Node&&(!((hr=tt.current)===null||hr===void 0)&&hr.contains(nr.target))&&nr.target.nodeName==="svg"&&ut.trigger({type:GraphCanvasEvent.Click,rawEvent:qt.rawEvent})}break;case GraphCanvasEvent.ContextMenu:qt.rawEvent.preventDefault(),qt.rawEvent.stopPropagation(),_e(qt);break;case GraphCanvasEvent.MouseMove:{const nr=qt.rawEvent;dt.setMouseClientPosition({x:nr.clientX,y:nr.clientY})}break;case GraphCanvasEvent.MouseLeave:dt.unsetMouseClientPosition(),dt.canvasClickOnce=!1;break;case GraphCanvasEvent.Blur:it(!1);break}},Lt=qt=>{const{node:ir}=qt,{isNodeHoverViewEnabled:hr}=nt;switch(dt.getBehavior()){case GraphBehavior.Connecting:case GraphBehavior.Default:hr&&(st(ir.id),lt(void 0));break}_e(qt)},jt=qt=>{_e(qt),st(void 0)},Gt=qt=>{Ct||(qt.rawEvent.stopPropagation(),_e(qt))},Vt=qt=>{if(!tt||!It)return;const ir=dt.getData(),{node:hr}=qt,nr=qt.rawEvent;switch(nr.key){case"Tab":{nr.preventDefault(),nr.stopPropagation();const mr=nr.shiftKey?getPrevItem(ir,hr):getNextItem(ir,hr);focusItem(tt,mr,nr,ut)}break;case"ArrowUp":nr.preventDefault(),nr.stopPropagation(),focusUpNode(ir,hr.id,tt,dt,nr,ut);break;case"ArrowDown":nr.preventDefault(),nr.stopPropagation(),focusDownNode(ir,hr.id,tt,dt,nr,ut);break;case"ArrowLeft":nr.preventDefault(),nr.stopPropagation(),focusLeftNode(ir,hr.id,tt,dt,nr,ut);break;case"ArrowRight":nr.preventDefault(),nr.stopPropagation(),focusRightNode(ir,hr.id,tt,dt,nr,ut);break}},Yt=qt=>{var ir;switch(qt.type){case GraphNodeEvent.ResizingStart:case GraphNodeEvent.Resizing:case GraphNodeEvent.ResizingEnd:case GraphNodeEvent.DragStart:case GraphNodeEvent.Drag:case GraphNodeEvent.DragEnd:case GraphNodeEvent.SelectAll:_e(qt);break;case GraphNodeEvent.PointerMove:qt.rawEvent.pointerId===dt.pointerId&&Ot(qt);break;case GraphNodeEvent.PointerDown:{if(dt.nodeClickOnce=null,dt.getBehavior()!==GraphBehavior.Default)return;const hr=qt.rawEvent;ct(),onNodePointerDown(hr,qt.node,{svgRef:tt,rectRef:et,isNodesDraggable:_t,isAutoAlignEnable:xt,dragThreshold:ft,getPositionFromEvent:gt,isClickNodeToSelectDisabled:yt,autoAlignThreshold:pt,eventChannel:ut,graphController:dt})}break;case GraphNodeEvent.PointerEnter:Lt(qt);break;case GraphNodeEvent.PointerLeave:jt(qt);break;case GraphNodeEvent.MouseDown:dt.nodeClickOnce=null,qt.rawEvent.preventDefault(),_t&&qt.rawEvent.stopPropagation(),it(!1);break;case GraphNodeEvent.Click:if(((ir=dt.nodeClickOnce)===null||ir===void 0?void 0:ir.id)===qt.node.id){const{currentTarget:hr}=qt.rawEvent;hr instanceof SVGElement&&hr.focus({preventScroll:!0}),qt.node=dt.nodeClickOnce,_e(qt),dt.nodeClickOnce=null}else qt.intercepted=!0;break;case GraphNodeEvent.ContextMenu:qt.rawEvent.preventDefault(),qt.rawEvent.stopPropagation(),_e(qt);break;case GraphNodeEvent.DoubleClick:Gt(qt);break;case GraphNodeEvent.KeyDown:Vt(qt);break}},Xt=reactExports.useCallback(qt=>{const ir=qt.rawEvent,{node:hr,port:nr}=qt;if(it(!1),ir.stopPropagation(),ir.preventDefault(),prevMouseDownPortId=`${hr.id}:${nr.id}`,prevMouseDownPortTime=performance.now(),At||isMouseButNotLeft(ir))return;ct();const mr=dt.getGlobalEventTarget(),Ar=new DragController(new PointerEventProvider(mr,ir.pointerId),gt);Ar.onMove=({clientX:Or,clientY:wr,e:Nr})=>{ut.trigger({type:GraphEdgeEvent.ConnectMove,rawEvent:Nr,clientX:Or,clientY:wr})},Ar.onEnd=({e:Or,totalDY:wr,totalDX:Nr})=>{var Wr,Vr;const Jr=isWithinThreshold(Nr,wr,ft);if(ut.trigger({type:GraphEdgeEvent.ConnectEnd,rawEvent:Or,edgeWillAdd:bt,isCancel:Jr}),dt.pointerId=null,Jr){const Yr=new MouseEvent("click",Or);(Vr=(Wr=ir.currentTarget)!==null&&Wr!==void 0?Wr:ir.target)===null||Vr===void 0||Vr.dispatchEvent(Yr)}},ut.trigger({type:GraphEdgeEvent.ConnectStart,nodeId:hr.id,portId:nr.id,rawEvent:ir,clientPoint:{x:ir.clientX,y:ir.clientY}}),ir.target instanceof Element&&ir.pointerType!=="mouse"&&ir.target.releasePointerCapture(ir.pointerId),dt.pointerId=ir.pointerId,Ar.start(ir.nativeEvent)},[bt,ut,gt,dt,At,it,ct]),rr=reactExports.useCallback(qt=>{const ir=qt.rawEvent,{node:hr,port:nr}=qt;prevMouseDownPortId===`${hr.id}:${nr.id}`&&performance.now()-(prevMouseDownPortTime||0)<500&&(prevMouseDownPortId=void 0,prevMouseDownPortTime=void 0,ut.trigger({type:GraphPortEvent.Click,node:hr,port:nr,rawEvent:ir}))},[ut]),cr=qt=>{switch(dt.getBehavior()){case GraphBehavior.Default:lt([qt.node.id,qt.port.id]);break}wt&<([qt.node.id,qt.port.id]),qt.rawEvent.pointerId===dt.pointerId&&_e(qt)},vr=qt=>{lt(void 0),_e(qt)},Tr=qt=>{var ir,hr,nr;if(!It)return;const mr=qt.rawEvent;if(mr.altKey&&(mr.nativeEvent.code==="KeyC"||mr.key==="c")){mr.preventDefault(),mr.stopPropagation(),ut.trigger({type:GraphEdgeEvent.ConnectStart,nodeId:qt.node.id,portId:qt.port.id,rawEvent:mr});return}const Ar=dt.getData(),{node:Or,port:wr}=qt;switch(mr.key){case"Tab":if(It&&dt.getBehavior()===GraphBehavior.Connecting)mr.preventDefault(),mr.stopPropagation(),ut.trigger({type:GraphEdgeEvent.ConnectNavigate,rawEvent:mr});else{const Nr=mr.shiftKey?getPrevItem(Ar,Or,wr):getNextItem(Ar,Or,wr);focusItem(tt,Nr,mr,ut)}break;case"ArrowUp":case"ArrowLeft":mr.preventDefault(),mr.stopPropagation(),focusPrevPort((ir=Or.ports)!==null&&ir!==void 0?ir:[],Or,wr.id,tt,mr,ut);break;case"ArrowDown":case"ArrowRight":mr.preventDefault(),mr.stopPropagation(),focusNextPort((hr=Or.ports)!==null&&hr!==void 0?hr:[],Or,wr.id,tt,mr,ut);break;case"g":mr.preventDefault(),mr.stopPropagation(),goToConnectedPort(Ar,Or,wr,tt,mr,ut);break;case"Escape":dt.getBehavior()===GraphBehavior.Connecting&&(mr.preventDefault(),mr.stopPropagation(),tt.current&&((nr=findDOMElement(tt.current,{node:Or,port:wr}))===null||nr===void 0||nr.blur()));break;case"Enter":mr.preventDefault(),mr.stopPropagation(),ut.trigger({type:GraphEdgeEvent.ConnectEnd,rawEvent:mr.nativeEvent,edgeWillAdd:bt,isCancel:!1});break}},gr=qt=>{switch(qt.type){case GraphPortEvent.Click:_e(qt);break;case GraphPortEvent.PointerDown:Xt(qt);break;case GraphPortEvent.PointerUp:rr(qt);break;case GraphPortEvent.PointerEnter:cr(qt);break;case GraphPortEvent.PointerLeave:vr(qt);break;case GraphPortEvent.ContextMenu:qt.rawEvent.preventDefault(),qt.rawEvent.stopPropagation(),_e(qt);break;case GraphPortEvent.Focus:qt.rawEvent.stopPropagation(),_e(qt);break;case GraphPortEvent.Blur:dt.getBehavior()===GraphBehavior.Connecting&&ut.trigger({type:GraphEdgeEvent.ConnectEnd,rawEvent:qt.rawEvent.nativeEvent,edgeWillAdd:bt,isCancel:!0});break;case GraphPortEvent.KeyDown:Tr(qt);break}},Er=qt=>{const ir=handleBehaviorChange(dt.getBehavior(),qt);switch(dt.setBehavior(ir),Mt(qt),Rt(qt),Yt(qt),gr(qt),qt.type){case GraphMinimapEvent.Pan:case GraphScrollBarEvent.Scroll:case GraphContextMenuEvent.Open:case GraphContextMenuEvent.Close:_e(qt);break}};reactExports.useImperativeHandle(ut.listenersRef,()=>Er),reactExports.useImperativeHandle(ut.externalHandlerRef,()=>j.onEvent)}const useFeatureControl=j=>reactExports.useMemo(()=>{const _e=j.has(GraphFeatures.NodeDraggable),et=j.has(GraphFeatures.NodeResizable),tt=!j.has(GraphFeatures.AutoFit),rt=!j.has(GraphFeatures.PanCanvas),nt=!j.has(GraphFeatures.MultipleSelect),ot=j.has(GraphFeatures.LassoSelect),it=j.has(GraphFeatures.NodeHoverView),st=!j.has(GraphFeatures.ClickNodeToSelect),lt=!j.has(GraphFeatures.AddNewEdges),ut=j.has(GraphFeatures.PortHoverView),ct=!j.has(GraphFeatures.EditNode),dt=!j.has(GraphFeatures.CanvasVerticalScrollable),ft=!j.has(GraphFeatures.CanvasHorizontalScrollable),pt=j.has(GraphFeatures.A11yFeatures),gt=j.has(GraphFeatures.AutoAlign),vt=j.has(GraphFeatures.CtrlKeyZoom),bt=j.has(GraphFeatures.LimitBoundary),_t=!j.has(GraphFeatures.AutoFit),xt=j.has(GraphFeatures.EditEdge),yt=!j.has(GraphFeatures.Delete),Et=!j.has(GraphFeatures.AddNewNodes)||!j.has(GraphFeatures.AddNewEdges),St=j.has(GraphFeatures.UndoStack),$t=(!dt||!ft||!rt)&&bt&&!j.has(GraphFeatures.InvisibleScrollbar);return{isNodesDraggable:_e,isNodeResizable:et,isAutoFitDisabled:tt,isPanDisabled:rt,isMultiSelectDisabled:nt,isLassoSelectEnable:ot,isNodeHoverViewEnabled:it,isClickNodeToSelectDisabled:st,isConnectDisabled:lt,isPortHoverViewEnable:ut,isNodeEditDisabled:ct,isVerticalScrollDisabled:dt,isHorizontalScrollDisabled:ft,isA11yEnable:pt,isAutoAlignEnable:gt,isCtrlKeyZoomEnable:vt,isLimitBoundary:bt,isVirtualizationEnabled:_t,isEdgeEditable:xt,isDeleteDisabled:yt,isPasteDisabled:Et,isUndoEnabled:St,isScrollbarVisible:$t}},[j]),emptyLine=()=>({x1:0,y1:0,x2:0,y2:0,visible:!1}),Line=j=>{var _e;const{line:et,style:tt}=j,rt=Object.assign(Object.assign({strokeWidth:1},tt),{stroke:et.visible?(_e=tt==null?void 0:tt.stroke)!==null&&_e!==void 0?_e:"#ea4300":"none"});return jsxRuntimeExports.jsx("line",{className:"auto-align-hint",x1:et.x1,y1:et.y1,x2:et.x2,y2:et.y2,style:rt})},AlignmentLines=reactExports.memo(({style:j})=>{const _e=useAlignmentLines();return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:_e.map((et,tt)=>et.visible?jsxRuntimeExports.jsx(Line,{line:et,style:j},tt):null)})});AlignmentLines.displayName="AlignmentLines";const NodeFrame=j=>{var _e,et;const tt=reactExports.useContext(SlotsContext);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:(et=(_e=tt.renderNodeFrame)===null||_e===void 0?void 0:_e.call(tt,j))!==null&&et!==void 0?et:j.children})},NodeResizeHandler=j=>{var _e,et;const tt=reactExports.useContext(SlotsContext);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:(et=(_e=tt.renderNodeResizeHandler)===null||_e===void 0?void 0:_e.call(tt,j))!==null&&et!==void 0?et:j.children})},Slots={NodeFrame,NodeResizeHandler},AnimatingNodeGroup=j=>{var _e,et;const{dummyNodes:tt,graphData:rt}=j,nt=useGraphConfig(),{dWidth:ot,dHeight:it}=tt,st=(_e=tt.alignedDX)!==null&&_e!==void 0?_e:tt.dx,lt=(et=tt.alignedDY)!==null&&et!==void 0?et:tt.dy;return jsxRuntimeExports.jsx("g",{children:tt.nodes.map(ut=>{const ct=rt.nodes.get(ut.id);if(!ct)return null;const dt=ut.x+st,ft=ut.y+lt,pt=ut.width+ot,gt=ut.height+it,vt=getNodeConfig(ct,nt);return vt!=null&&vt.renderDummy?vt.renderDummy(Object.assign(Object.assign({},ct.inner),{x:dt,y:ft,width:pt,height:gt})):jsxRuntimeExports.jsx(Slots.NodeFrame,Object.assign({height:gt,width:pt,x:dt,y:ft},{children:jsxRuntimeExports.jsx("rect",{transform:`translate(${dt},${ft})`,height:gt,width:pt,stroke:defaultColors.dummyNodeStroke,strokeDasharray:"4",fill:"none"},ct.id)}),`node-frame-${ut.id}`)})})},ConnectingLine=j=>{const{autoAttachLine:_e,connectingLine:et,styles:tt}=j,rt=(tt==null?void 0:tt.stroke)||defaultColors.primaryColor,nt=(tt==null?void 0:tt.fill)||"none",ot=(tt==null?void 0:tt.strokeDasharray)||"4,4",it=et.visible?rt:"none";return jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("defs",{children:jsxRuntimeExports.jsx("marker",Object.assign({id:"markerArrow",markerWidth:"10",markerHeight:"10",refX:"6",refY:"5",orient:"auto",markerUnits:"strokeWidth"},{children:jsxRuntimeExports.jsx("path",{d:"M0,0 L6,5 L0,10",style:{stroke:it,fill:"none"}})}))}),jsxRuntimeExports.jsx("line",{x1:et.x1,y1:et.y1,x2:et.x2,y2:et.y2,style:{stroke:it,fill:nt,strokeDasharray:ot},markerEnd:"url(#markerArrow)"}),jsxRuntimeExports.jsx("path",{d:getCurvePathD(_e.x2,_e.x1,_e.y2,_e.y1),style:{stroke:_e.visible?rt:"none",fill:"none"}})]})},Connecting=reactExports.memo(j=>{const{styles:_e,graphConfig:et,viewport:tt,movingPoint:rt}=j,{sourcePort:nt,sourceNode:ot,targetPort:it,targetNode:st}=useConnectingState();if(!ot||!nt)return null;const lt=ot.getPortPosition(nt.id,et);let ut,ct=!1;if(st&&it?(ct=!0,ut=st==null?void 0:st.getPortPosition(it.id,et)):ut=lt,!lt||!ut)return null;const dt=transformPoint(lt.x,lt.y,tt.transformMatrix),ft=transformPoint(ut.x,ut.y,tt.transformMatrix),pt=rt?{x1:dt.x,y1:dt.y,x2:rt.x,y2:rt.y,visible:!ct}:emptyLine(),gt={x1:dt.x,y1:dt.y,x2:ft.x,y2:ft.y,visible:ct};return jsxRuntimeExports.jsx(ConnectingLine,{connectingLine:pt,autoAttachLine:gt,styles:_e})});Connecting.displayName="Connecting";const defaultStyle={position:"fixed",userSelect:"none"},GraphContextMenu=({state:j,onClick:_e})=>{var et,tt;const rt=reactExports.useRef(null),[nt,ot]=reactExports.useState(Object.assign({},defaultStyle));reactExports.useLayoutEffect(()=>{const ct=rt.current;if(!ct||!j.contextMenuPosition)return;const{x:dt,y:ft}=j.contextMenuPosition,{clientWidth:pt,clientHeight:gt}=document.documentElement,{width:vt,height:bt}=ct.getBoundingClientRect(),_t=Object.assign({},defaultStyle);dt+vt>=pt?_t.right=0:_t.left=dt,ft+bt>gt?_t.bottom=0:_t.top=ft,ot(_t)},[(et=j.contextMenuPosition)===null||et===void 0?void 0:et.x,(tt=j.contextMenuPosition)===null||tt===void 0?void 0:tt.y]);const it=useContextMenuConfigContext(),[st,lt]=reactExports.useState(jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{}));reactExports.useEffect(()=>{const ct=j.data.present;let dt=0,ft=0,pt=0;ct.nodes.forEach(vt=>{var bt;isSelected(vt)&&(dt+=1),(bt=vt.ports)===null||bt===void 0||bt.forEach(_t=>{isSelected(_t)&&(ft+=1)})}),ct.edges.forEach(vt=>{isSelected(vt)&&(pt+=1)});let gt;ft+dt+pt>1?gt=it.getMenu(MenuType.Multi):ft+dt+pt===0?gt=it.getMenu(MenuType.Canvas):dt===1?gt=it.getMenu(MenuType.Node):ft===1?gt=it.getMenu(MenuType.Port):gt=it.getMenu(MenuType.Edge),lt(gt)},[j.data.present,it]);const ut=reactExports.useCallback(ct=>{ct.stopPropagation(),ct.preventDefault()},[]);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:j.contextMenuPosition&&jsxRuntimeExports.jsx("div",Object.assign({ref:rt,onClick:_e,onContextMenu:ut,role:"button",style:nt},{children:st}))})},Renderer=j=>jsxRuntimeExports.jsx("rect",{height:j.height,width:j.width,fill:j.group.fill}),defaultGroup={render:Renderer},Group=j=>{var _e;const{data:et,group:tt}=j,rt=useGraphConfig(),{x:nt,y:ot,width:it,height:st}=reactExports.useMemo(()=>getGroupRect(tt,et.nodes,rt),[tt,et.nodes,rt]),lt=(_e=rt.getGroupConfig(tt))!==null&&_e!==void 0?_e:defaultGroup,ut=`group-container-${tt.id}`;return jsxRuntimeExports.jsx("g",Object.assign({"data-automation-id":ut,transform:`translate(${nt}, ${ot})`},{children:lt.render({group:tt,height:st,width:it})}),tt.id)},GraphGroupsRenderer=j=>jsxRuntimeExports.jsx("g",{children:reactExports.useMemo(()=>j.groups.map(_e=>jsxRuntimeExports.jsx(Group,{group:_e,data:j.data},_e.id)),[j.groups,j.data])}),NodeTooltips=j=>{const{node:_e,viewport:et}=j,tt=useGraphConfig();if(!_e||!has$3(GraphNodeStatus.Activated)(_e.status))return null;const rt=getNodeConfig(_e,tt);return rt!=null&&rt.renderTooltips?jsxRuntimeExports.jsx("div",Object.assign({className:"node-tooltips"},{children:rt.renderTooltips({model:_e,viewport:et})})):null},PortTooltips=j=>{const _e=useGraphConfig(),{parentNode:et,port:tt,viewport:rt}=j;if(!has$3(GraphPortStatus.Activated)(tt.status))return null;const ot=_e.getPortConfig(tt);if(!ot||!ot.renderTooltips)return null;const it=et.getPortPosition(tt.id,_e);return it?jsxRuntimeExports.jsx("div",Object.assign({className:"port-tooltips"},{children:jsxRuntimeExports.jsx(ConnectingStateContext.Consumer,{children:({sourceNode:st,sourcePort:lt})=>ot.renderTooltips&&ot.renderTooltips(Object.assign({model:tt,parentNode:et,data:j.data,anotherNode:st,anotherPort:lt,viewport:rt},it))})})):null};function useRefValue(j){const _e=reactExports.useRef(j);return reactExports.useLayoutEffect(()=>{_e.current=j},[j]),_e}const SCROLL_BAR_WIDTH=10,wrapperCommonStyle={position:"absolute",cursor:"initial"},useStyles$h=createUseStyles({verticalScrollWrapper:Object.assign(Object.assign({},wrapperCommonStyle),{height:"100%",width:SCROLL_BAR_WIDTH,top:0,right:0}),horizontalScrollWrapper:Object.assign(Object.assign({},wrapperCommonStyle),{height:SCROLL_BAR_WIDTH,width:"100%",bottom:0,left:0}),verticalScrollStyle:j=>({height:j.scrollbarLayout.verticalScrollHeight,width:"100%",backgroundColor:defaultColors.scrollbarColor,position:"absolute",top:0,right:0,transform:`translateY(${j.scrollbarLayout.verticalScrollTop}px)`}),horizontalScrollStyle:j=>({width:j.scrollbarLayout.horizontalScrollWidth-SCROLL_BAR_WIDTH,height:"100%",backgroundColor:defaultColors.scrollbarColor,position:"absolute",left:0,bottom:0,transform:`translateX(${j.scrollbarLayout.horizontalScrollLeft}px)`})}),Scrollbar=j=>{const{vertical:_e=!0,horizontal:et=!0,offsetLimit:tt,eventChannel:rt,viewport:nt}=j,ot=useGraphController(),it=getScrollbarLayout(nt,tt),st=useStyles$h({scrollbarLayout:it}),lt=useRefValue(it);function ut(dt){dt.preventDefault(),dt.stopPropagation();const{height:ft}=nt.rect,pt=new DragController(new MouseMoveEventProvider(ot.getGlobalEventTarget()),defaultGetPositionFromEvent);pt.onMove=({dy:gt,e:vt})=>{const{totalContentHeight:bt}=lt.current,_t=-(gt*bt)/ft;rt.trigger({type:GraphScrollBarEvent.Scroll,rawEvent:vt,dx:0,dy:_t})},pt.onEnd=()=>{rt.trigger({type:GraphScrollBarEvent.ScrollEnd})},pt.start(dt.nativeEvent),rt.trigger({type:GraphScrollBarEvent.ScrollStart})}function ct(dt){dt.preventDefault(),dt.stopPropagation();const{width:ft}=nt.rect,pt=new DragController(new MouseMoveEventProvider(ot.getGlobalEventTarget()),defaultGetPositionFromEvent);pt.onMove=({dx:gt,e:vt})=>{const{totalContentWidth:bt}=lt.current,_t=-(gt*bt)/ft;rt.trigger({type:GraphScrollBarEvent.Scroll,rawEvent:vt,dx:_t,dy:0})},pt.onEnd=()=>{rt.trigger({type:GraphScrollBarEvent.ScrollEnd})},pt.start(dt.nativeEvent),rt.trigger({type:GraphScrollBarEvent.ScrollStart})}return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[_e&&jsxRuntimeExports.jsx("div",Object.assign({className:st.verticalScrollWrapper},{children:jsxRuntimeExports.jsx("div",{className:st.verticalScrollStyle,onMouseDown:ut,role:"button","aria-label":"vertical scrollbar","aria-roledescription":"vertical scrollbar",id:"canvas-vertical-scrollbar"})})),et&&jsxRuntimeExports.jsx("div",Object.assign({className:st.horizontalScrollWrapper},{children:jsxRuntimeExports.jsx("div",{className:st.horizontalScrollStyle,onMouseDown:ct,role:"button","aria-label":"horizontal scrollbar","aria-roledescription":"horizontal scrollbar",id:"canvas-horizontal-scrollbar"})}))]})};function getTotalContentHeight(j,_e){const{minY:et,maxY:tt}=_e;return j+tt-et}function getTotalContentWidth(j,_e){const{minX:et,maxX:tt}=_e;return j+tt-et}function getScrollbarLayout(j,_e){const{rect:et,transformMatrix:tt}=j,rt=getTotalContentHeight(et.height,_e),nt=getTotalContentWidth(et.width,_e);return{totalContentHeight:rt,totalContentWidth:nt,verticalScrollHeight:et.height*et.height/rt,horizontalScrollWidth:et.width*et.width/nt,verticalScrollTop:(_e.maxY-tt[5])*et.height/rt,horizontalScrollLeft:(_e.maxX-tt[4])*et.width/nt}}const Transform=({matrix:j,children:_e})=>{const et=reactExports.useMemo(()=>`matrix(${j.join(" ")})`,j);return jsxRuntimeExports.jsx("g",Object.assign({transform:et},{children:_e}))};function getHintPoints(j,_e,{minX:et,minY:tt,maxX:rt,maxY:nt},ot,it,st,lt){return j.x===_e.x?{x:j.x,y:j.y<_e.y?nt:tt}:j.x<_e.x?j.y<_e.y?ot<=nt?{x:rt,y:ot}:{x:it,y:nt}:ot>=tt?{x:rt,y:ot}:{x:st,y:tt}:j.y<_e.y?it>et?{x:it,y:nt}:{x:et,y:lt}:lt>tt?{x:et,y:lt}:{x:st,y:tt}}const GraphEdge=reactExports.memo(j=>{var _e;const{edge:et,data:tt,eventChannel:rt,source:nt,target:ot,graphId:it}=j,st=useGraphConfig(),lt=useVirtualization(),{viewport:ut,renderedArea:ct,visibleArea:dt}=lt,ft=At=>wt=>{wt.persist(),rt.trigger({type:At,edge:et,rawEvent:wt})},pt=isPointInRect(ct,nt),gt=isPointInRect(ct,ot),vt=pt&>if(reactExports.useLayoutEffect(()=>{vt&<.renderedEdges.add(et.id)},[lt]),!vt)return null;const bt=st.getEdgeConfig(et);if(!bt)return Debug.warn(`invalid edge ${JSON.stringify(et)}`),null;if(!bt.render)return Debug.warn(`Missing "render" method in edge config ${JSON.stringify(et)}`),null;const _t=isPointInRect(dt,nt),xt=isPointInRect(dt,ot);let yt=bt.render({model:et,data:tt,x1:nt.x,y1:nt.y,x2:ot.x,y2:ot.y,viewport:ut});if(has$3(GraphEdgeStatus.ConnectedToSelected)(et.status)&&(!_t||!xt)){const At=getLinearFunction(nt.x,nt.y,ot.x,ot.y),wt=getLinearFunction(nt.y,nt.x,ot.y,ot.x),Ct=_t?nt:ot,It=_t?ot:nt,Ot=At(dt.maxX),Nt=wt(dt.maxY),Pt=wt(dt.minY),Mt=At(dt.minX),Rt=getHintPoints(Ct,It,dt,Ot,Nt,Pt,Mt);_t&&bt.renderWithTargetHint?yt=bt.renderWithTargetHint({model:et,data:tt,x1:nt.x,y1:nt.y,x2:Rt.x,y2:Rt.y,viewport:ut}):xt&&bt.renderWithSourceHint&&(yt=bt.renderWithSourceHint({model:et,data:tt,x1:Rt.x,y1:Rt.y,x2:ot.x,y2:ot.y,viewport:ut}))}const Et=getEdgeUid(it,et),St=`edge-container-${et.id}`,$t=(_e=et.automationId)!==null&&_e!==void 0?_e:St;return jsxRuntimeExports.jsx("g",Object.assign({id:Et,onClick:ft(GraphEdgeEvent.Click),onDoubleClick:ft(GraphEdgeEvent.DoubleClick),onMouseDown:ft(GraphEdgeEvent.MouseDown),onMouseUp:ft(GraphEdgeEvent.MouseUp),onMouseEnter:ft(GraphEdgeEvent.MouseEnter),onMouseLeave:ft(GraphEdgeEvent.MouseLeave),onContextMenu:ft(GraphEdgeEvent.ContextMenu),onMouseMove:ft(GraphEdgeEvent.MouseMove),onMouseOver:ft(GraphEdgeEvent.MouseOver),onMouseOut:ft(GraphEdgeEvent.MouseOut),onFocus:void 0,onBlur:void 0,className:St,"data-automation-id":$t},{children:yt}))});function compareEqual(j,_e){return j.node===_e.node}const EdgeChampNodeRender=reactExports.memo(j=>{var _e,et;const{node:tt,data:rt}=j,nt=__rest(j,["node","data"]),ot=useGraphConfig(),it=[],st=tt.valueCount;for(let ct=0;ct{const{data:_e,node:et}=j,tt=__rest(j,["data","node"]),rt=useGraphConfig();return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:et.values.map(nt=>{var ot,it;const st=(ot=_e.nodes.get(nt.source))===null||ot===void 0?void 0:ot.getPortPosition(nt.sourcePortId,rt),lt=(it=_e.nodes.get(nt.target))===null||it===void 0?void 0:it.getPortPosition(nt.targetPortId,rt);return st&<?reactExports.createElement(GraphEdge,Object.assign({},tt,{key:nt.id,data:_e,edge:nt,source:st,target:lt})):null})})},compareEqual);EdgeHashCollisionNodeRender.displayName="EdgeHashCollisionNodeRender";const EdgeTree=j=>{const{tree:_e}=j,et=__rest(j,["tree"]);return jsxRuntimeExports.jsx(EdgeChampNodeRender,Object.assign({},et,{node:_e.root}))},styles$1=mergeStyleSets({svg:[{position:"absolute",overflow:"hidden",top:0,left:0,width:"100%",height:"100%"},{"&:focus":{outline:"none"}}],node:{cursor:"move"},container:{position:"relative",width:"100%",height:"100%",overflow:"hidden",touchAction:"none"},buttonA11Y:{opacity:0,width:0,height:0,overflow:"hidden"},addingNodeSvg:{zIndex:1e6,position:"fixed",left:0,top:0,width:"100%",height:"100%"},moduleItem:{userSelect:"none",cursor:"pointer"},minimap:{height:320,width:320,userSelect:"none",touchAction:"none"},minimapSvg:{position:"absolute",top:0,left:0,width:"100%",height:"100%"}}),GraphNode=j=>{var _e;const{node:et,eventChannel:tt,getNodeAriaLabel:rt,viewport:nt,graphId:ot}=j,it=useGraphConfig(),st=getNodeConfig(et,it),lt=ft=>pt=>{pt.persist();const gt={type:ft,node:et,rawEvent:pt};tt.trigger(gt)},ut=ft=>{ft.persist();const pt=checkIsMultiSelect(ft);tt.trigger({type:GraphNodeEvent.Click,rawEvent:ft,isMultiSelect:pt,node:et})},ct=getNodeUid(ot,et),dt=(_e=et.automationId)!==null&&_e!==void 0?_e:getNodeAutomationId(et);return st!=null&&st.render?jsxRuntimeExports.jsx("g",Object.assign({id:ct,focusable:"true",tabIndex:0,className:styles$1.node,onPointerDown:lt(GraphNodeEvent.PointerDown),onPointerEnter:lt(GraphNodeEvent.PointerEnter),onPointerMove:lt(GraphNodeEvent.PointerMove),onPointerLeave:lt(GraphNodeEvent.PointerLeave),onPointerUp:lt(GraphNodeEvent.PointerUp),onDoubleClick:lt(GraphNodeEvent.DoubleClick),onMouseDown:lt(GraphNodeEvent.MouseDown),onMouseUp:lt(GraphNodeEvent.MouseUp),onMouseEnter:lt(GraphNodeEvent.MouseEnter),onMouseLeave:lt(GraphNodeEvent.MouseLeave),onContextMenu:lt(GraphNodeEvent.ContextMenu),onMouseMove:lt(GraphNodeEvent.MouseMove),onMouseOver:lt(GraphNodeEvent.MouseOver),onMouseOut:lt(GraphNodeEvent.MouseOut),onClick:ut,onKeyDown:lt(GraphNodeEvent.KeyDown),"aria-label":rt(et),role:"group","aria-roledescription":"node","data-automation-id":dt},{children:jsxRuntimeExports.jsx("g",Object.assign({className:"node-box-container"},{children:st.render({model:et,viewport:nt})}))})):(Debug.warn('Missing "render" method in node config'),null)},RESIZE_POINT_WIDTH=8,RESIZE_POINT_HEIGHT=8,NodeAnchor=({x:j,y:_e,cursor:et,onMouseDown:tt})=>jsxRuntimeExports.jsx(Slots.NodeResizeHandler,Object.assign({x:j,y:_e,cursor:et,onMouseDown:tt},{children:jsxRuntimeExports.jsx("rect",{x:j,y:_e,height:RESIZE_POINT_HEIGHT,width:RESIZE_POINT_WIDTH,stroke:defaultColors.controlPointColor,fill:"transparent",cursor:et,onMouseDown:tt})})),BBOX_PADDING=15,GraphNodeAnchors=j=>{var _e,et;const{node:tt,getMouseDown:rt}=j,nt=useGraphConfig(),ot=getNodeConfig(tt,nt),it=(_e=ot==null?void 0:ot.getMinWidth(tt))!==null&&_e!==void 0?_e:0,st=(et=ot==null?void 0:ot.getMinHeight(tt))!==null&&et!==void 0?et:0,lt=getRectHeight(ot,tt),ut=getRectWidth(ot,tt),ct=rt((xt,yt)=>{const Et=Math.min(xt,ut-it),St=Math.min(yt,lt-st);return{dx:+Et,dy:+St,dWidth:-Et,dHeight:-St}}),dt=rt((xt,yt)=>{const Et=Math.min(yt,lt-st);return{dy:+Et,dHeight:-Et}}),ft=rt((xt,yt)=>{const Et=Math.max(xt,it-ut),St=Math.min(yt,lt-st);return{dy:+St,dWidth:+Et,dHeight:-St}}),pt=rt(xt=>({dWidth:+Math.max(xt,it-ut)})),gt=rt((xt,yt)=>{const Et=Math.max(xt,it-ut),St=Math.max(yt,st-lt);return{dWidth:+Et,dHeight:+St}}),vt=rt((xt,yt)=>({dHeight:+Math.max(yt,st-lt)})),bt=rt((xt,yt)=>{const Et=Math.min(xt,ut-it),St=Math.max(yt,st-lt);return{dx:+Et,dWidth:-Et,dHeight:+St}}),_t=rt(xt=>{const yt=Math.min(xt,ut-it);return{dx:yt,dWidth:-yt}});return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(NodeAnchor,{cursor:"nw-resize",x:tt.x-BBOX_PADDING,y:tt.y-BBOX_PADDING-RESIZE_POINT_HEIGHT,onMouseDown:ct},"nw-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut/2-RESIZE_POINT_WIDTH/2,y:tt.y-BBOX_PADDING-RESIZE_POINT_HEIGHT,cursor:"n-resize",onMouseDown:dt},"n-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut+BBOX_PADDING-RESIZE_POINT_WIDTH,y:tt.y-BBOX_PADDING-RESIZE_POINT_HEIGHT,cursor:"ne-resize",onMouseDown:ft},"ne-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut+BBOX_PADDING-RESIZE_POINT_WIDTH,y:tt.y+lt/2-RESIZE_POINT_HEIGHT/2,cursor:"e-resize",onMouseDown:pt},"e-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut+BBOX_PADDING-RESIZE_POINT_WIDTH,y:tt.y+lt+BBOX_PADDING,cursor:"se-resize",onMouseDown:gt},"se-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut/2-RESIZE_POINT_WIDTH/2,y:tt.y+lt+BBOX_PADDING,cursor:"s-resize",onMouseDown:vt},"s-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x-BBOX_PADDING,y:tt.y+lt+BBOX_PADDING,cursor:"sw-resize",onMouseDown:bt},"sw-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x-BBOX_PADDING,y:tt.y+lt/2-RESIZE_POINT_HEIGHT/2,cursor:"w-resize",onMouseDown:_t},"w-resize")]})},GraphOneNodePorts=j=>{const{data:_e,node:et,getPortAriaLabel:tt,eventChannel:rt,viewport:nt,graphId:ot}=j,it=useGraphConfig(),st=et.ports;if(!st)return null;const lt=(ut,ct)=>dt=>{dt.persist(),rt.trigger({type:ut,node:et,port:ct,rawEvent:dt})};return jsxRuntimeExports.jsx("g",{children:st.map(ut=>{var ct;const dt=it.getPortConfig(ut);if(!dt||!dt.render)return Debug.warn(`invalid port config ${et.id}:${et.name} - ${ut.id}:${ut.name}`),null;const ft=et.getPortPosition(ut.id,it);if(!ft)return null;const pt=getPortUid(ot,et,ut),gt=(ct=ut.automationId)!==null&&ct!==void 0?ct:getPortAutomationId(ut,et);return jsxRuntimeExports.jsx("g",Object.assign({id:pt,tabIndex:0,focusable:"true",onPointerDown:lt(GraphPortEvent.PointerDown,ut),onPointerUp:lt(GraphPortEvent.PointerUp,ut),onDoubleClick:lt(GraphPortEvent.DoubleClick,ut),onMouseDown:lt(GraphPortEvent.MouseDown,ut),onMouseUp:lt(GraphPortEvent.MouseUp,ut),onContextMenu:lt(GraphPortEvent.ContextMenu,ut),onPointerEnter:lt(GraphPortEvent.PointerEnter,ut),onPointerLeave:lt(GraphPortEvent.PointerLeave,ut),onMouseMove:lt(GraphPortEvent.MouseMove,ut),onMouseOver:lt(GraphPortEvent.MouseOver,ut),onMouseOut:lt(GraphPortEvent.MouseOut,ut),onFocus:lt(GraphPortEvent.Focus,ut),onBlur:lt(GraphPortEvent.Blur,ut),onKeyDown:lt(GraphPortEvent.KeyDown,ut),onClick:lt(GraphPortEvent.Click,ut),"aria-label":tt(_e,et,ut),role:"group","aria-roledescription":"port","data-automation-id":gt},{children:jsxRuntimeExports.jsx(ConnectingStateContext.Consumer,{children:({sourceNode:vt,sourcePort:bt})=>dt==null?void 0:dt.render(Object.assign({model:ut,data:_e,parentNode:et,anotherNode:vt,anotherPort:bt,viewport:nt},ft))})}),pt)})})},GraphNodeParts=j=>{var{node:_e,isNodeResizable:et,renderNodeAnchors:tt}=j,rt=__rest(j,["node","isNodeResizable","renderNodeAnchors"]);const nt=useVirtualization(),{renderedArea:ot,viewport:it}=nt,st=useGetMouseDownOnAnchor(_e,rt.eventChannel),lt=isPointInRect(ot,_e);if(reactExports.useLayoutEffect(()=>{lt&&nt.renderedEdges.add(_e.id)},[nt]),!lt)return null;let ut;if(et&&isNodeEditing(_e)){const ct=jsxRuntimeExports.jsx(GraphNodeAnchors,{node:_e,getMouseDown:st});ut=tt?tt(_e,st,ct):ct}return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(GraphNode,Object.assign({},rt,{node:_e,viewport:it})),jsxRuntimeExports.jsx(GraphOneNodePorts,Object.assign({},rt,{node:_e,viewport:it})),ut]})},GraphNodePartsMemo=reactExports.memo(GraphNodeParts),NodeTreeNode=reactExports.memo(j=>{var{node:_e}=j,et=__rest(j,["node"]);const tt=_e.values.map(nt=>{const ot=nt[1];return jsxRuntimeExports.jsx(GraphNodePartsMemo,Object.assign({node:ot},et),ot.id)}),rt=_e.type===NodeType.Internal?_e.children.map((nt,ot)=>{const it=ot<_e.selfSize?_e.getKey(ot):"last";return jsxRuntimeExports.jsx(NodeTreeNode,Object.assign({node:nt},et),it)}):void 0;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[tt,rt]})},(j,_e)=>j.node===_e.node);NodeTreeNode.displayName="NodeTreeNode";const NodeTree=j=>{var{tree:_e}=j,et=__rest(j,["tree"]);return jsxRuntimeExports.jsx(NodeTreeNode,Object.assign({node:_e.sortedRoot},et))},NodeLayers=({data:j,renderTree:_e})=>{const et=new Set;return j.nodes.forEach(tt=>et.add(tt.layer)),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:Array.from(et.values()).sort().map(tt=>_e(j.nodes.filter(rt=>rt.layer===tt),tt))})},VirtualizationProvider=({viewport:j,isVirtualizationEnabled:_e,virtualizationDelay:et,eventChannel:tt,children:rt})=>{const nt=useRenderedArea(j,_e),ot=reactExports.useMemo(()=>getVisibleArea(j),[j]),it=reactExports.useMemo(()=>({viewport:j,renderedArea:nt,visibleArea:ot,renderedEdges:new Set,renderedNodes:new Set,timestamp:performance.now()}),[j,nt,ot]),st=useDeferredValue(it,{timeout:et}),lt=reactExports.useRef(st);return reactExports.useEffect(()=>{const ut=lt.current;lt.current=st,tt.trigger({type:GraphCanvasEvent.VirtualizationRecalculated,performanceStartTime:st.timestamp,renderedNodes:ut.renderedNodes,renderedEdges:ut.renderedEdges,previousRenderedNodes:ut.renderedNodes,previousRenderedEdges:ut.renderedEdges})},[st,tt]),jsxRuntimeExports.jsx(VirtualizationContext.Provider,Object.assign({value:st},{children:rt}))},getCursorStyle=({canvasMouseMode:j,state:_e,isPanDisabled:et,isMultiSelecting:tt})=>_e.behavior===GraphBehavior.Connecting||["meta","control"].some(ot=>_e.activeKeys.has(ot))?"initial":_e.activeKeys.has("shift")?"crosshair":j!==CanvasMouseMode.Pan?_e.activeKeys.has(" ")&&!et?"grab":tt?"crosshair":"inherit":et?"inherit":"grab";function getNodeCursor(j){return j?"move":"initial"}const getGraphStyles=(j,_e,et,tt,rt,nt)=>{var ot,it;return mergeStyleSets({svg:["react-dag-editor-svg-container",styles$1.svg,(ot=j.styles)===null||ot===void 0?void 0:ot.svg,{"& *:focus":{outline:defaultColors.outlineStyle},[`& .${styles$1.node}`]:{cursor:getNodeCursor(tt)}}],container:["react-dag-editor-container",styles$1.container,{cursor:getCursorStyle({canvasMouseMode:j.canvasMouseMode,state:_e,isPanDisabled:et,isMultiSelecting:nt}),[`&.${styles$1.container}`]:Object.assign(Object.assign({background:defaultColors.canvasBackground},j.style),(it=j.styles)===null||it===void 0?void 0:it.root)},rt&&{outline:`${defaultColors.focusOutlineColor} solid 1px`}],buttonA11y:["react-dag-editor-a11y-help-button",styles$1.buttonA11Y],node:[styles$1.node]})};function Graph(j){var _e,et,tt,rt,nt;const[ot,it]=reactExports.useState(!1),st=useGraphController(),{state:lt,dispatch:ut}=useGraphState(),ct=lt.data.present,{viewport:dt}=lt,{eventChannel:ft}=st,pt=useConst(()=>`graph-${v4()}`),gt=reactExports.useRef(null),{focusCanvasAccessKey:vt="f",zoomSensitivity:bt=.1,scrollSensitivity:_t=.5,svgRef:xt=gt,virtualizationDelay:yt=500,background:Et=null}=j,St=useGraphConfig(),$t=useFeatureControl(lt.settings.features),[At,wt]=reactExports.useState(),[Ct,It]=reactExports.useState(void 0),Ot=reactExports.useRef(null),Nt=reactExports.useRef(void 0),Pt=useUpdateViewportCallback(Nt,xt,ft);useEventChannel({props:j,dispatch:ut,rectRef:Nt,svgRef:xt,setFocusedWithoutMouse:it,containerRef:Ot,featureControl:$t,graphConfig:St,setCurHoverNode:wt,setCurHoverPort:It,updateViewport:Pt,eventChannel:ft,graphController:st}),useContainerRect(lt,xt,Ot,Pt);const{isNodesDraggable:Mt,isNodeResizable:Rt,isPanDisabled:Lt,isMultiSelectDisabled:jt,isLassoSelectEnable:Gt,isNodeEditDisabled:Vt,isVerticalScrollDisabled:Yt,isHorizontalScrollDisabled:Xt,isA11yEnable:rr,isCtrlKeyZoomEnable:cr,isVirtualizationEnabled:vr,isScrollbarVisible:Tr}=$t;useSelectBox(ut,lt.selectBoxPosition);const gr=wr=>Nr=>{Nr.persist(),ft.trigger({type:wr,rawEvent:Nr})},Er=getGraphStyles(j,lt,Lt,Mt,ot,lt.behavior===GraphBehavior.MultiSelect);useWheelHandler({containerRef:Ot,svgRef:xt,rectRef:Nt,zoomSensitivity:bt,scrollSensitivity:_t,dispatch:ut,isHorizontalScrollDisabled:Xt,isVerticalScrollDisabled:Yt,isCtrlKeyZoomEnable:cr,eventChannel:ft,graphConfig:St});const qt=reactExports.useCallback(wr=>{wr.preventDefault(),wr.stopPropagation(),ft.trigger({type:GraphContextMenuEvent.Close}),xt.current&&xt.current.focus({preventScroll:!0})},[ft,xt]),ir=reactExports.useCallback(()=>{it(!0),xt.current&&xt.current.focus({preventScroll:!0})},[xt]);useSafariScale({rectRef:Nt,svgRef:xt,eventChannel:ft});const hr=rr?vt:void 0,nr=useGraphTouchHandler(Nt,ft),mr=reactExports.useCallback((wr,Nr)=>{var Wr,Vr;return jsxRuntimeExports.jsx(NodeTree,{graphId:pt,isNodeResizable:Rt,tree:wr,data:ct,isNodeEditDisabled:Vt,eventChannel:ft,getNodeAriaLabel:(Wr=j.getNodeAriaLabel)!==null&&Wr!==void 0?Wr:defaultGetNodeAriaLabel,getPortAriaLabel:(Vr=j.getPortAriaLabel)!==null&&Vr!==void 0?Vr:defaultGetPortAriaLabel,renderNodeAnchors:j.renderNodeAnchors},Nr)},[ct,ft,pt,Vt,Rt,j.getNodeAriaLabel,j.getPortAriaLabel,j.renderNodeAnchors]);if(!isSupported()){const{onBrowserNotSupported:wr=()=>jsxRuntimeExports.jsx("p",{children:"Your browser is not supported"})}=j;return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:wr()})}const Ar=()=>{if(!Ct||!isViewportComplete(lt.viewport))return null;const[wr,Nr]=Ct,Wr=ct.nodes.get(wr);if(!Wr)return null;const Vr=Wr.getPort(Nr);return Vr?jsxRuntimeExports.jsx(PortTooltips,{port:Vr,parentNode:Wr,data:ct,viewport:lt.viewport}):null},Or=()=>{var wr;return!At||!isViewportComplete(lt.viewport)||lt.contextMenuPosition&&At===((wr=lt.data.present.nodes.find(isSelected))===null||wr===void 0?void 0:wr.id)?null:jsxRuntimeExports.jsx(NodeTooltips,{node:ct.nodes.get(At),viewport:lt.viewport})};return jsxRuntimeExports.jsxs("div",Object.assign({ref:Ot,role:"application",id:pt,className:Er.container},nr,{onDoubleClick:gr(GraphCanvasEvent.DoubleClick),onMouseDown:gr(GraphCanvasEvent.MouseDown),onMouseUp:gr(GraphCanvasEvent.MouseUp),onContextMenu:gr(GraphCanvasEvent.ContextMenu),onMouseMove:gr(GraphCanvasEvent.MouseMove),onMouseOver:gr(GraphCanvasEvent.MouseOver),onMouseOut:gr(GraphCanvasEvent.MouseOut),onFocus:gr(GraphCanvasEvent.Focus),onBlur:gr(GraphCanvasEvent.Blur),onKeyDown:gr(GraphCanvasEvent.KeyDown),onKeyUp:gr(GraphCanvasEvent.KeyUp)},{children:[jsxRuntimeExports.jsx("button",{className:Er.buttonA11y,onClick:ir,accessKey:hr,hidden:!0}),jsxRuntimeExports.jsxs("svg",Object.assign({tabIndex:0,focusable:"true",preserveAspectRatio:"xMidYMid meet",ref:xt,className:Er.svg,"data-graph-id":pt},{children:[jsxRuntimeExports.jsx("title",{children:j.title}),jsxRuntimeExports.jsx("desc",{children:j.desc}),jsxRuntimeExports.jsxs(Transform,Object.assign({matrix:dt.transformMatrix},{children:[lt.viewport.rect&&jsxRuntimeExports.jsxs(VirtualizationProvider,Object.assign({viewport:lt.viewport,isVirtualizationEnabled:vr,virtualizationDelay:yt,eventChannel:ft},{children:[Et,jsxRuntimeExports.jsx(GraphGroupsRenderer,{data:ct,groups:(_e=ct.groups)!==null&&_e!==void 0?_e:constantEmptyArray()}),jsxRuntimeExports.jsx(EdgeTree,{graphId:pt,tree:ct.edges,data:ct,eventChannel:ft}),jsxRuntimeExports.jsx(NodeLayers,{data:ct,renderTree:mr})]})),lt.dummyNodes.isVisible&&jsxRuntimeExports.jsx(AnimatingNodeGroup,{dummyNodes:lt.dummyNodes,graphData:lt.data.present}),jsxRuntimeExports.jsx(AlignmentLines,{style:(et=j.styles)===null||et===void 0?void 0:et.alignmentLine})]})),(!jt||Gt)&&jsxRuntimeExports.jsx(SelectBox,{selectBoxPosition:lt.selectBoxPosition,style:(tt=j.styles)===null||tt===void 0?void 0:tt.selectBox}),lt.connectState&&jsxRuntimeExports.jsx(Connecting,{graphConfig:St,eventChannel:ft,viewport:lt.viewport,styles:(rt=j.styles)===null||rt===void 0?void 0:rt.connectingLine,movingPoint:lt.connectState.movingPoint})]})),Tr&&isViewportComplete(lt.viewport)&&jsxRuntimeExports.jsx(Scrollbar,{viewport:lt.viewport,offsetLimit:getOffsetLimit({data:ct,graphConfig:St,rect:lt.viewport.rect,transformMatrix:dt.transformMatrix,canvasBoundaryPadding:lt.settings.canvasBoundaryPadding,groupPadding:(nt=ct.groups[0])===null||nt===void 0?void 0:nt.padding}),dispatch:ut,horizontal:!Xt,vertical:!Yt,eventChannel:ft}),jsxRuntimeExports.jsx(GraphContextMenu,{state:lt,onClick:qt,"data-automation-id":"context-menu-container"}),Or(),Ar()]}))}const el=document.createElement("div");document.body.appendChild(el);const StaticNode=j=>{const{node:_e}=j,et=useGraphConfig(),tt=getNodeConfig(_e,et);if(tt!=null&&tt.renderStatic)return jsxRuntimeExports.jsx("g",{children:tt.renderStatic({model:_e})});const rt=getRectHeight(tt,_e),nt=getRectWidth(tt,_e);return jsxRuntimeExports.jsx("rect",{transform:`translate(${_e.x}, ${_e.y})`,height:rt,width:nt,fill:defaultColors.dummyNodeStroke})},StaticNodeWithMemo=reactExports.memo(StaticNode,(j,_e)=>{const et=j.node,tt=_e.node;return et.x===tt.x&&et.y===tt.y&&et.height===tt.height&&et.width===tt.width&&et.isInSearchResults===tt.isInSearchResults&&et.isCurrentSearchResult===tt.isCurrentSearchResult}),ReadonlyNodeTreeNode=reactExports.memo(({node:j})=>{const _e=j.values.map(tt=>jsxRuntimeExports.jsx(StaticNodeWithMemo,{node:tt[1]},tt[1].id)),et=j.type===NodeType.Internal?j.children.map((tt,rt)=>{const nt=rt>>0;if(""+et!==_e||et===4294967295)return NaN;_e=et}return _e<0?ensureSize(j)+_e:_e}function returnTrue(){return!0}function wholeSlice(j,_e,et){return(j===0&&!isNeg(j)||et!==void 0&&j<=-et)&&(_e===void 0||et!==void 0&&_e>=et)}function resolveBegin(j,_e){return resolveIndex(j,_e,0)}function resolveEnd(j,_e){return resolveIndex(j,_e,_e)}function resolveIndex(j,_e,et){return j===void 0?et:isNeg(j)?_e===1/0?_e:Math.max(0,_e+j)|0:_e===void 0||_e===j?j:Math.min(_e,j)|0}function isNeg(j){return j<0||j===0&&1/j===-1/0}var IS_COLLECTION_SYMBOL="@@__IMMUTABLE_ITERABLE__@@";function isCollection(j){return!!(j&&j[IS_COLLECTION_SYMBOL])}var IS_KEYED_SYMBOL="@@__IMMUTABLE_KEYED__@@";function isKeyed(j){return!!(j&&j[IS_KEYED_SYMBOL])}var IS_INDEXED_SYMBOL="@@__IMMUTABLE_INDEXED__@@";function isIndexed(j){return!!(j&&j[IS_INDEXED_SYMBOL])}function isAssociative(j){return isKeyed(j)||isIndexed(j)}var Collection$1=function(_e){return isCollection(_e)?_e:Seq(_e)},KeyedCollection=function(j){function _e(et){return isKeyed(et)?et:KeyedSeq(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e}(Collection$1),IndexedCollection=function(j){function _e(et){return isIndexed(et)?et:IndexedSeq(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e}(Collection$1),SetCollection=function(j){function _e(et){return isCollection(et)&&!isAssociative(et)?et:SetSeq(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e}(Collection$1);Collection$1.Keyed=KeyedCollection;Collection$1.Indexed=IndexedCollection;Collection$1.Set=SetCollection;var IS_SEQ_SYMBOL="@@__IMMUTABLE_SEQ__@@";function isSeq(j){return!!(j&&j[IS_SEQ_SYMBOL])}var IS_RECORD_SYMBOL="@@__IMMUTABLE_RECORD__@@";function isRecord(j){return!!(j&&j[IS_RECORD_SYMBOL])}function isImmutable(j){return isCollection(j)||isRecord(j)}var IS_ORDERED_SYMBOL="@@__IMMUTABLE_ORDERED__@@";function isOrdered(j){return!!(j&&j[IS_ORDERED_SYMBOL])}var ITERATE_KEYS=0,ITERATE_VALUES=1,ITERATE_ENTRIES=2,REAL_ITERATOR_SYMBOL=typeof Symbol=="function"&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ITERATOR_SYMBOL=REAL_ITERATOR_SYMBOL||FAUX_ITERATOR_SYMBOL,Iterator=function(_e){this.next=_e};Iterator.prototype.toString=function(){return"[Iterator]"};Iterator.KEYS=ITERATE_KEYS;Iterator.VALUES=ITERATE_VALUES;Iterator.ENTRIES=ITERATE_ENTRIES;Iterator.prototype.inspect=Iterator.prototype.toSource=function(){return this.toString()};Iterator.prototype[ITERATOR_SYMBOL]=function(){return this};function iteratorValue(j,_e,et,tt){var rt=j===0?_e:j===1?et:[_e,et];return tt?tt.value=rt:tt={value:rt,done:!1},tt}function iteratorDone(){return{value:void 0,done:!0}}function hasIterator(j){return Array.isArray(j)?!0:!!getIteratorFn(j)}function isIterator(j){return j&&typeof j.next=="function"}function getIterator$2(j){var _e=getIteratorFn(j);return _e&&_e.call(j)}function getIteratorFn(j){var _e=j&&(REAL_ITERATOR_SYMBOL&&j[REAL_ITERATOR_SYMBOL]||j[FAUX_ITERATOR_SYMBOL]);if(typeof _e=="function")return _e}function isEntriesIterable(j){var _e=getIteratorFn(j);return _e&&_e===j.entries}function isKeysIterable(j){var _e=getIteratorFn(j);return _e&&_e===j.keys}var hasOwnProperty$4=Object.prototype.hasOwnProperty;function isArrayLike$1(j){return Array.isArray(j)||typeof j=="string"?!0:j&&typeof j=="object"&&Number.isInteger(j.length)&&j.length>=0&&(j.length===0?Object.keys(j).length===1:j.hasOwnProperty(j.length-1))}var Seq=function(j){function _e(et){return et==null?emptySequence():isImmutable(et)?et.toSeq():seqFromValue(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.toSeq=function(){return this},_e.prototype.toString=function(){return this.__toString("Seq {","}")},_e.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},_e.prototype.__iterate=function(tt,rt){var nt=this._cache;if(nt){for(var ot=nt.length,it=0;it!==ot;){var st=nt[rt?ot-++it:it++];if(tt(st[1],st[0],this)===!1)break}return it}return this.__iterateUncached(tt,rt)},_e.prototype.__iterator=function(tt,rt){var nt=this._cache;if(nt){var ot=nt.length,it=0;return new Iterator(function(){if(it===ot)return iteratorDone();var st=nt[rt?ot-++it:it++];return iteratorValue(tt,st[0],st[1])})}return this.__iteratorUncached(tt,rt)},_e}(Collection$1),KeyedSeq=function(j){function _e(et){return et==null?emptySequence().toKeyedSeq():isCollection(et)?isKeyed(et)?et.toSeq():et.fromEntrySeq():isRecord(et)?et.toSeq():keyedSeqFromValue(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.toKeyedSeq=function(){return this},_e}(Seq),IndexedSeq=function(j){function _e(et){return et==null?emptySequence():isCollection(et)?isKeyed(et)?et.entrySeq():et.toIndexedSeq():isRecord(et)?et.toSeq().entrySeq():indexedSeqFromValue(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return _e(arguments)},_e.prototype.toIndexedSeq=function(){return this},_e.prototype.toString=function(){return this.__toString("Seq [","]")},_e}(Seq),SetSeq=function(j){function _e(et){return(isCollection(et)&&!isAssociative(et)?et:IndexedSeq(et)).toSetSeq()}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return _e(arguments)},_e.prototype.toSetSeq=function(){return this},_e}(Seq);Seq.isSeq=isSeq;Seq.Keyed=KeyedSeq;Seq.Set=SetSeq;Seq.Indexed=IndexedSeq;Seq.prototype[IS_SEQ_SYMBOL]=!0;var ArraySeq=function(j){function _e(et){this._array=et,this.size=et.length}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.get=function(tt,rt){return this.has(tt)?this._array[wrapIndex(this,tt)]:rt},_e.prototype.__iterate=function(tt,rt){for(var nt=this._array,ot=nt.length,it=0;it!==ot;){var st=rt?ot-++it:it++;if(tt(nt[st],st,this)===!1)break}return it},_e.prototype.__iterator=function(tt,rt){var nt=this._array,ot=nt.length,it=0;return new Iterator(function(){if(it===ot)return iteratorDone();var st=rt?ot-++it:it++;return iteratorValue(tt,st,nt[st])})},_e}(IndexedSeq),ObjectSeq=function(j){function _e(et){var tt=Object.keys(et).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(et):[]);this._object=et,this._keys=tt,this.size=tt.length}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.get=function(tt,rt){return rt!==void 0&&!this.has(tt)?rt:this._object[tt]},_e.prototype.has=function(tt){return hasOwnProperty$4.call(this._object,tt)},_e.prototype.__iterate=function(tt,rt){for(var nt=this._object,ot=this._keys,it=ot.length,st=0;st!==it;){var lt=ot[rt?it-++st:st++];if(tt(nt[lt],lt,this)===!1)break}return st},_e.prototype.__iterator=function(tt,rt){var nt=this._object,ot=this._keys,it=ot.length,st=0;return new Iterator(function(){if(st===it)return iteratorDone();var lt=ot[rt?it-++st:st++];return iteratorValue(tt,lt,nt[lt])})},_e}(KeyedSeq);ObjectSeq.prototype[IS_ORDERED_SYMBOL]=!0;var CollectionSeq=function(j){function _e(et){this._collection=et,this.size=et.length||et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.__iterateUncached=function(tt,rt){if(rt)return this.cacheResult().__iterate(tt,rt);var nt=this._collection,ot=getIterator$2(nt),it=0;if(isIterator(ot))for(var st;!(st=ot.next()).done&&tt(st.value,it++,this)!==!1;);return it},_e.prototype.__iteratorUncached=function(tt,rt){if(rt)return this.cacheResult().__iterator(tt,rt);var nt=this._collection,ot=getIterator$2(nt);if(!isIterator(ot))return new Iterator(iteratorDone);var it=0;return new Iterator(function(){var st=ot.next();return st.done?st:iteratorValue(tt,it++,st.value)})},_e}(IndexedSeq),EMPTY_SEQ;function emptySequence(){return EMPTY_SEQ||(EMPTY_SEQ=new ArraySeq([]))}function keyedSeqFromValue(j){var _e=maybeIndexedSeqFromValue(j);if(_e)return _e.fromEntrySeq();if(typeof j=="object")return new ObjectSeq(j);throw new TypeError("Expected Array or collection object of [k, v] entries, or keyed object: "+j)}function indexedSeqFromValue(j){var _e=maybeIndexedSeqFromValue(j);if(_e)return _e;throw new TypeError("Expected Array or collection object of values: "+j)}function seqFromValue(j){var _e=maybeIndexedSeqFromValue(j);if(_e)return isEntriesIterable(j)?_e.fromEntrySeq():isKeysIterable(j)?_e.toSetSeq():_e;if(typeof j=="object")return new ObjectSeq(j);throw new TypeError("Expected Array or collection object of values, or keyed object: "+j)}function maybeIndexedSeqFromValue(j){return isArrayLike$1(j)?new ArraySeq(j):hasIterator(j)?new CollectionSeq(j):void 0}var IS_MAP_SYMBOL="@@__IMMUTABLE_MAP__@@";function isMap(j){return!!(j&&j[IS_MAP_SYMBOL])}function isOrderedMap(j){return isMap(j)&&isOrdered(j)}function isValueObject(j){return!!(j&&typeof j.equals=="function"&&typeof j.hashCode=="function")}function is(j,_e){if(j===_e||j!==j&&_e!==_e)return!0;if(!j||!_e)return!1;if(typeof j.valueOf=="function"&&typeof _e.valueOf=="function"){if(j=j.valueOf(),_e=_e.valueOf(),j===_e||j!==j&&_e!==_e)return!0;if(!j||!_e)return!1}return!!(isValueObject(j)&&isValueObject(_e)&&j.equals(_e))}var imul=typeof Math.imul=="function"&&Math.imul(4294967295,2)===-2?Math.imul:function(_e,et){_e|=0,et|=0;var tt=_e&65535,rt=et&65535;return tt*rt+((_e>>>16)*rt+tt*(et>>>16)<<16>>>0)|0};function smi(j){return j>>>1&1073741824|j&3221225471}var defaultValueOf=Object.prototype.valueOf;function hash$1(j){if(j==null)return hashNullish(j);if(typeof j.hashCode=="function")return smi(j.hashCode(j));var _e=valueOf(j);if(_e==null)return hashNullish(_e);switch(typeof _e){case"boolean":return _e?1108378657:1108378656;case"number":return hashNumber(_e);case"string":return _e.length>STRING_HASH_CACHE_MIN_STRLEN?cachedHashString(_e):hashString(_e);case"object":case"function":return hashJSObj(_e);case"symbol":return hashSymbol(_e);default:if(typeof _e.toString=="function")return hashString(_e.toString());throw new Error("Value type "+typeof _e+" cannot be hashed.")}}function hashNullish(j){return j===null?1108378658:1108378659}function hashNumber(j){if(j!==j||j===1/0)return 0;var _e=j|0;for(_e!==j&&(_e^=j*4294967295);j>4294967295;)j/=4294967295,_e^=j;return smi(_e)}function cachedHashString(j){var _e=stringHashCache[j];return _e===void 0&&(_e=hashString(j),STRING_HASH_CACHE_SIZE===STRING_HASH_CACHE_MAX_SIZE&&(STRING_HASH_CACHE_SIZE=0,stringHashCache={}),STRING_HASH_CACHE_SIZE++,stringHashCache[j]=_e),_e}function hashString(j){for(var _e=0,et=0;et0)switch(j.nodeType){case 1:return j.uniqueID;case 9:return j.documentElement&&j.documentElement.uniqueID}}function valueOf(j){return j.valueOf!==defaultValueOf&&typeof j.valueOf=="function"?j.valueOf(j):j}function nextHash(){var j=++_objHashUID;return _objHashUID&1073741824&&(_objHashUID=0),j}var usingWeakMap=typeof WeakMap=="function",weakMap;usingWeakMap&&(weakMap=new WeakMap);var symbolMap=Object.create(null),_objHashUID=0,UID_HASH_KEY="__immutablehash__";typeof Symbol=="function"&&(UID_HASH_KEY=Symbol(UID_HASH_KEY));var STRING_HASH_CACHE_MIN_STRLEN=16,STRING_HASH_CACHE_MAX_SIZE=255,STRING_HASH_CACHE_SIZE=0,stringHashCache={},ToKeyedSequence=function(j){function _e(et,tt){this._iter=et,this._useKeys=tt,this.size=et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.get=function(tt,rt){return this._iter.get(tt,rt)},_e.prototype.has=function(tt){return this._iter.has(tt)},_e.prototype.valueSeq=function(){return this._iter.valueSeq()},_e.prototype.reverse=function(){var tt=this,rt=reverseFactory(this,!0);return this._useKeys||(rt.valueSeq=function(){return tt._iter.toSeq().reverse()}),rt},_e.prototype.map=function(tt,rt){var nt=this,ot=mapFactory(this,tt,rt);return this._useKeys||(ot.valueSeq=function(){return nt._iter.toSeq().map(tt,rt)}),ot},_e.prototype.__iterate=function(tt,rt){var nt=this;return this._iter.__iterate(function(ot,it){return tt(ot,it,nt)},rt)},_e.prototype.__iterator=function(tt,rt){return this._iter.__iterator(tt,rt)},_e}(KeyedSeq);ToKeyedSequence.prototype[IS_ORDERED_SYMBOL]=!0;var ToIndexedSequence=function(j){function _e(et){this._iter=et,this.size=et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.includes=function(tt){return this._iter.includes(tt)},_e.prototype.__iterate=function(tt,rt){var nt=this,ot=0;return rt&&ensureSize(this),this._iter.__iterate(function(it){return tt(it,rt?nt.size-++ot:ot++,nt)},rt)},_e.prototype.__iterator=function(tt,rt){var nt=this,ot=this._iter.__iterator(ITERATE_VALUES,rt),it=0;return rt&&ensureSize(this),new Iterator(function(){var st=ot.next();return st.done?st:iteratorValue(tt,rt?nt.size-++it:it++,st.value,st)})},_e}(IndexedSeq),ToSetSequence=function(j){function _e(et){this._iter=et,this.size=et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.has=function(tt){return this._iter.includes(tt)},_e.prototype.__iterate=function(tt,rt){var nt=this;return this._iter.__iterate(function(ot){return tt(ot,ot,nt)},rt)},_e.prototype.__iterator=function(tt,rt){var nt=this._iter.__iterator(ITERATE_VALUES,rt);return new Iterator(function(){var ot=nt.next();return ot.done?ot:iteratorValue(tt,ot.value,ot.value,ot)})},_e}(SetSeq),FromEntriesSequence=function(j){function _e(et){this._iter=et,this.size=et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.entrySeq=function(){return this._iter.toSeq()},_e.prototype.__iterate=function(tt,rt){var nt=this;return this._iter.__iterate(function(ot){if(ot){validateEntry(ot);var it=isCollection(ot);return tt(it?ot.get(1):ot[1],it?ot.get(0):ot[0],nt)}},rt)},_e.prototype.__iterator=function(tt,rt){var nt=this._iter.__iterator(ITERATE_VALUES,rt);return new Iterator(function(){for(;;){var ot=nt.next();if(ot.done)return ot;var it=ot.value;if(it){validateEntry(it);var st=isCollection(it);return iteratorValue(tt,st?it.get(0):it[0],st?it.get(1):it[1],ot)}}})},_e}(KeyedSeq);ToIndexedSequence.prototype.cacheResult=ToKeyedSequence.prototype.cacheResult=ToSetSequence.prototype.cacheResult=FromEntriesSequence.prototype.cacheResult=cacheResultThrough;function flipFactory(j){var _e=makeSequence(j);return _e._iter=j,_e.size=j.size,_e.flip=function(){return j},_e.reverse=function(){var et=j.reverse.apply(this);return et.flip=function(){return j.reverse()},et},_e.has=function(et){return j.includes(et)},_e.includes=function(et){return j.has(et)},_e.cacheResult=cacheResultThrough,_e.__iterateUncached=function(et,tt){var rt=this;return j.__iterate(function(nt,ot){return et(ot,nt,rt)!==!1},tt)},_e.__iteratorUncached=function(et,tt){if(et===ITERATE_ENTRIES){var rt=j.__iterator(et,tt);return new Iterator(function(){var nt=rt.next();if(!nt.done){var ot=nt.value[0];nt.value[0]=nt.value[1],nt.value[1]=ot}return nt})}return j.__iterator(et===ITERATE_VALUES?ITERATE_KEYS:ITERATE_VALUES,tt)},_e}function mapFactory(j,_e,et){var tt=makeSequence(j);return tt.size=j.size,tt.has=function(rt){return j.has(rt)},tt.get=function(rt,nt){var ot=j.get(rt,NOT_SET);return ot===NOT_SET?nt:_e.call(et,ot,rt,j)},tt.__iterateUncached=function(rt,nt){var ot=this;return j.__iterate(function(it,st,lt){return rt(_e.call(et,it,st,lt),st,ot)!==!1},nt)},tt.__iteratorUncached=function(rt,nt){var ot=j.__iterator(ITERATE_ENTRIES,nt);return new Iterator(function(){var it=ot.next();if(it.done)return it;var st=it.value,lt=st[0];return iteratorValue(rt,lt,_e.call(et,st[1],lt,j),it)})},tt}function reverseFactory(j,_e){var et=this,tt=makeSequence(j);return tt._iter=j,tt.size=j.size,tt.reverse=function(){return j},j.flip&&(tt.flip=function(){var rt=flipFactory(j);return rt.reverse=function(){return j.flip()},rt}),tt.get=function(rt,nt){return j.get(_e?rt:-1-rt,nt)},tt.has=function(rt){return j.has(_e?rt:-1-rt)},tt.includes=function(rt){return j.includes(rt)},tt.cacheResult=cacheResultThrough,tt.__iterate=function(rt,nt){var ot=this,it=0;return nt&&ensureSize(j),j.__iterate(function(st,lt){return rt(st,_e?lt:nt?ot.size-++it:it++,ot)},!nt)},tt.__iterator=function(rt,nt){var ot=0;nt&&ensureSize(j);var it=j.__iterator(ITERATE_ENTRIES,!nt);return new Iterator(function(){var st=it.next();if(st.done)return st;var lt=st.value;return iteratorValue(rt,_e?lt[0]:nt?et.size-++ot:ot++,lt[1],st)})},tt}function filterFactory(j,_e,et,tt){var rt=makeSequence(j);return tt&&(rt.has=function(nt){var ot=j.get(nt,NOT_SET);return ot!==NOT_SET&&!!_e.call(et,ot,nt,j)},rt.get=function(nt,ot){var it=j.get(nt,NOT_SET);return it!==NOT_SET&&_e.call(et,it,nt,j)?it:ot}),rt.__iterateUncached=function(nt,ot){var it=this,st=0;return j.__iterate(function(lt,ut,ct){if(_e.call(et,lt,ut,ct))return st++,nt(lt,tt?ut:st-1,it)},ot),st},rt.__iteratorUncached=function(nt,ot){var it=j.__iterator(ITERATE_ENTRIES,ot),st=0;return new Iterator(function(){for(;;){var lt=it.next();if(lt.done)return lt;var ut=lt.value,ct=ut[0],dt=ut[1];if(_e.call(et,dt,ct,j))return iteratorValue(nt,tt?ct:st++,dt,lt)}})},rt}function countByFactory(j,_e,et){var tt=Map$1().asMutable();return j.__iterate(function(rt,nt){tt.update(_e.call(et,rt,nt,j),0,function(ot){return ot+1})}),tt.asImmutable()}function groupByFactory(j,_e,et){var tt=isKeyed(j),rt=(isOrdered(j)?OrderedMap():Map$1()).asMutable();j.__iterate(function(ot,it){rt.update(_e.call(et,ot,it,j),function(st){return st=st||[],st.push(tt?[it,ot]:ot),st})});var nt=collectionClass(j);return rt.map(function(ot){return reify(j,nt(ot))}).asImmutable()}function partitionFactory(j,_e,et){var tt=isKeyed(j),rt=[[],[]];j.__iterate(function(ot,it){rt[_e.call(et,ot,it,j)?1:0].push(tt?[it,ot]:ot)});var nt=collectionClass(j);return rt.map(function(ot){return reify(j,nt(ot))})}function sliceFactory(j,_e,et,tt){var rt=j.size;if(wholeSlice(_e,et,rt))return j;var nt=resolveBegin(_e,rt),ot=resolveEnd(et,rt);if(nt!==nt||ot!==ot)return sliceFactory(j.toSeq().cacheResult(),_e,et,tt);var it=ot-nt,st;it===it&&(st=it<0?0:it);var lt=makeSequence(j);return lt.size=st===0?st:j.size&&st||void 0,!tt&&isSeq(j)&&st>=0&&(lt.get=function(ut,ct){return ut=wrapIndex(this,ut),ut>=0&&utst)return iteratorDone();var gt=dt.next();return tt||ut===ITERATE_VALUES||gt.done?gt:ut===ITERATE_KEYS?iteratorValue(ut,pt-1,void 0,gt):iteratorValue(ut,pt-1,gt.value[1],gt)})},lt}function takeWhileFactory(j,_e,et){var tt=makeSequence(j);return tt.__iterateUncached=function(rt,nt){var ot=this;if(nt)return this.cacheResult().__iterate(rt,nt);var it=0;return j.__iterate(function(st,lt,ut){return _e.call(et,st,lt,ut)&&++it&&rt(st,lt,ot)}),it},tt.__iteratorUncached=function(rt,nt){var ot=this;if(nt)return this.cacheResult().__iterator(rt,nt);var it=j.__iterator(ITERATE_ENTRIES,nt),st=!0;return new Iterator(function(){if(!st)return iteratorDone();var lt=it.next();if(lt.done)return lt;var ut=lt.value,ct=ut[0],dt=ut[1];return _e.call(et,dt,ct,ot)?rt===ITERATE_ENTRIES?lt:iteratorValue(rt,ct,dt,lt):(st=!1,iteratorDone())})},tt}function skipWhileFactory(j,_e,et,tt){var rt=makeSequence(j);return rt.__iterateUncached=function(nt,ot){var it=this;if(ot)return this.cacheResult().__iterate(nt,ot);var st=!0,lt=0;return j.__iterate(function(ut,ct,dt){if(!(st&&(st=_e.call(et,ut,ct,dt))))return lt++,nt(ut,tt?ct:lt-1,it)}),lt},rt.__iteratorUncached=function(nt,ot){var it=this;if(ot)return this.cacheResult().__iterator(nt,ot);var st=j.__iterator(ITERATE_ENTRIES,ot),lt=!0,ut=0;return new Iterator(function(){var ct,dt,ft;do{if(ct=st.next(),ct.done)return tt||nt===ITERATE_VALUES?ct:nt===ITERATE_KEYS?iteratorValue(nt,ut++,void 0,ct):iteratorValue(nt,ut++,ct.value[1],ct);var pt=ct.value;dt=pt[0],ft=pt[1],lt&&(lt=_e.call(et,ft,dt,it))}while(lt);return nt===ITERATE_ENTRIES?ct:iteratorValue(nt,dt,ft,ct)})},rt}function concatFactory(j,_e){var et=isKeyed(j),tt=[j].concat(_e).map(function(ot){return isCollection(ot)?et&&(ot=KeyedCollection(ot)):ot=et?keyedSeqFromValue(ot):indexedSeqFromValue(Array.isArray(ot)?ot:[ot]),ot}).filter(function(ot){return ot.size!==0});if(tt.length===0)return j;if(tt.length===1){var rt=tt[0];if(rt===j||et&&isKeyed(rt)||isIndexed(j)&&isIndexed(rt))return rt}var nt=new ArraySeq(tt);return et?nt=nt.toKeyedSeq():isIndexed(j)||(nt=nt.toSetSeq()),nt=nt.flatten(!0),nt.size=tt.reduce(function(ot,it){if(ot!==void 0){var st=it.size;if(st!==void 0)return ot+st}},0),nt}function flattenFactory(j,_e,et){var tt=makeSequence(j);return tt.__iterateUncached=function(rt,nt){if(nt)return this.cacheResult().__iterate(rt,nt);var ot=0,it=!1;function st(lt,ut){lt.__iterate(function(ct,dt){return(!_e||ut<_e)&&isCollection(ct)?st(ct,ut+1):(ot++,rt(ct,et?dt:ot-1,tt)===!1&&(it=!0)),!it},nt)}return st(j,0),ot},tt.__iteratorUncached=function(rt,nt){if(nt)return this.cacheResult().__iterator(rt,nt);var ot=j.__iterator(rt,nt),it=[],st=0;return new Iterator(function(){for(;ot;){var lt=ot.next();if(lt.done!==!1){ot=it.pop();continue}var ut=lt.value;if(rt===ITERATE_ENTRIES&&(ut=ut[1]),(!_e||it.length<_e)&&isCollection(ut))it.push(ot),ot=ut.__iterator(rt,nt);else return et?lt:iteratorValue(rt,st++,ut,lt)}return iteratorDone()})},tt}function flatMapFactory(j,_e,et){var tt=collectionClass(j);return j.toSeq().map(function(rt,nt){return tt(_e.call(et,rt,nt,j))}).flatten(!0)}function interposeFactory(j,_e){var et=makeSequence(j);return et.size=j.size&&j.size*2-1,et.__iterateUncached=function(tt,rt){var nt=this,ot=0;return j.__iterate(function(it){return(!ot||tt(_e,ot++,nt)!==!1)&&tt(it,ot++,nt)!==!1},rt),ot},et.__iteratorUncached=function(tt,rt){var nt=j.__iterator(ITERATE_VALUES,rt),ot=0,it;return new Iterator(function(){return(!it||ot%2)&&(it=nt.next(),it.done)?it:ot%2?iteratorValue(tt,ot++,_e):iteratorValue(tt,ot++,it.value,it)})},et}function sortFactory(j,_e,et){_e||(_e=defaultComparator);var tt=isKeyed(j),rt=0,nt=j.toSeq().map(function(ot,it){return[it,ot,rt++,et?et(ot,it,j):ot]}).valueSeq().toArray();return nt.sort(function(ot,it){return _e(ot[3],it[3])||ot[2]-it[2]}).forEach(tt?function(ot,it){nt[it].length=2}:function(ot,it){nt[it]=ot[1]}),tt?KeyedSeq(nt):isIndexed(j)?IndexedSeq(nt):SetSeq(nt)}function maxFactory(j,_e,et){if(_e||(_e=defaultComparator),et){var tt=j.toSeq().map(function(rt,nt){return[rt,et(rt,nt,j)]}).reduce(function(rt,nt){return maxCompare(_e,rt[1],nt[1])?nt:rt});return tt&&tt[0]}return j.reduce(function(rt,nt){return maxCompare(_e,rt,nt)?nt:rt})}function maxCompare(j,_e,et){var tt=j(et,_e);return tt===0&&et!==_e&&(et==null||et!==et)||tt>0}function zipWithFactory(j,_e,et,tt){var rt=makeSequence(j),nt=new ArraySeq(et).map(function(ot){return ot.size});return rt.size=tt?nt.max():nt.min(),rt.__iterate=function(ot,it){for(var st=this.__iterator(ITERATE_VALUES,it),lt,ut=0;!(lt=st.next()).done&&ot(lt.value,ut++,this)!==!1;);return ut},rt.__iteratorUncached=function(ot,it){var st=et.map(function(ct){return ct=Collection$1(ct),getIterator$2(it?ct.reverse():ct)}),lt=0,ut=!1;return new Iterator(function(){var ct;return ut||(ct=st.map(function(dt){return dt.next()}),ut=tt?ct.every(function(dt){return dt.done}):ct.some(function(dt){return dt.done})),ut?iteratorDone():iteratorValue(ot,lt++,_e.apply(null,ct.map(function(dt){return dt.value})))})},rt}function reify(j,_e){return j===_e?j:isSeq(j)?_e:j.constructor(_e)}function validateEntry(j){if(j!==Object(j))throw new TypeError("Expected [K, V] tuple: "+j)}function collectionClass(j){return isKeyed(j)?KeyedCollection:isIndexed(j)?IndexedCollection:SetCollection}function makeSequence(j){return Object.create((isKeyed(j)?KeyedSeq:isIndexed(j)?IndexedSeq:SetSeq).prototype)}function cacheResultThrough(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):Seq.prototype.cacheResult.call(this)}function defaultComparator(j,_e){return j===void 0&&_e===void 0?0:j===void 0?1:_e===void 0?-1:j>_e?1:j<_e?-1:0}function arrCopy(j,_e){_e=_e||0;for(var et=Math.max(0,j.length-_e),tt=new Array(et),rt=0;rt0;)_e[et]=arguments[et+1];if(typeof j!="function")throw new TypeError("Invalid merger function: "+j);return mergeIntoKeyedWith(this,_e,j)}function mergeIntoKeyedWith(j,_e,et){for(var tt=[],rt=0;rt<_e.length;rt++){var nt=KeyedCollection(_e[rt]);nt.size!==0&&tt.push(nt)}return tt.length===0?j:j.toSeq().size===0&&!j.__ownerID&&tt.length===1?j.constructor(tt[0]):j.withMutations(function(ot){for(var it=et?function(lt,ut){update$1(ot,ut,NOT_SET,function(ct){return ct===NOT_SET?lt:et(ct,lt,ut)})}:function(lt,ut){ot.set(ut,lt)},st=0;st0;)_e[et]=arguments[et+1];return mergeDeepWithSources(this,_e,j)}function mergeIn(j){for(var _e=[],et=arguments.length-1;et-- >0;)_e[et]=arguments[et+1];return updateIn$1(this,j,emptyMap(),function(tt){return mergeWithSources(tt,_e)})}function mergeDeepIn(j){for(var _e=[],et=arguments.length-1;et-- >0;)_e[et]=arguments[et+1];return updateIn$1(this,j,emptyMap(),function(tt){return mergeDeepWithSources(tt,_e)})}function withMutations(j){var _e=this.asMutable();return j(_e),_e.wasAltered()?_e.__ensureOwner(this.__ownerID):this}function asMutable(){return this.__ownerID?this:this.__ensureOwner(new OwnerID)}function asImmutable(){return this.__ensureOwner()}function wasAltered(){return this.__altered}var Map$1=function(j){function _e(et){return et==null?emptyMap():isMap(et)&&!isOrdered(et)?et:emptyMap().withMutations(function(tt){var rt=j(et);assertNotInfinite(rt.size),rt.forEach(function(nt,ot){return tt.set(ot,nt)})})}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){for(var tt=[],rt=arguments.length;rt--;)tt[rt]=arguments[rt];return emptyMap().withMutations(function(nt){for(var ot=0;ot=tt.length)throw new Error("Missing value for key: "+tt[ot]);nt.set(tt[ot],tt[ot+1])}})},_e.prototype.toString=function(){return this.__toString("Map {","}")},_e.prototype.get=function(tt,rt){return this._root?this._root.get(0,void 0,tt,rt):rt},_e.prototype.set=function(tt,rt){return updateMap(this,tt,rt)},_e.prototype.remove=function(tt){return updateMap(this,tt,NOT_SET)},_e.prototype.deleteAll=function(tt){var rt=Collection$1(tt);return rt.size===0?this:this.withMutations(function(nt){rt.forEach(function(ot){return nt.remove(ot)})})},_e.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):emptyMap()},_e.prototype.sort=function(tt){return OrderedMap(sortFactory(this,tt))},_e.prototype.sortBy=function(tt,rt){return OrderedMap(sortFactory(this,rt,tt))},_e.prototype.map=function(tt,rt){var nt=this;return this.withMutations(function(ot){ot.forEach(function(it,st){ot.set(st,tt.call(rt,it,st,nt))})})},_e.prototype.__iterator=function(tt,rt){return new MapIterator(this,tt,rt)},_e.prototype.__iterate=function(tt,rt){var nt=this,ot=0;return this._root&&this._root.iterate(function(it){return ot++,tt(it[1],it[0],nt)},rt),ot},_e.prototype.__ensureOwner=function(tt){return tt===this.__ownerID?this:tt?makeMap(this.size,this._root,tt,this.__hash):this.size===0?emptyMap():(this.__ownerID=tt,this.__altered=!1,this)},_e}(KeyedCollection);Map$1.isMap=isMap;var MapPrototype=Map$1.prototype;MapPrototype[IS_MAP_SYMBOL]=!0;MapPrototype[DELETE]=MapPrototype.remove;MapPrototype.removeAll=MapPrototype.deleteAll;MapPrototype.setIn=setIn;MapPrototype.removeIn=MapPrototype.deleteIn=deleteIn;MapPrototype.update=update;MapPrototype.updateIn=updateIn;MapPrototype.merge=MapPrototype.concat=merge$1$1;MapPrototype.mergeWith=mergeWith$1;MapPrototype.mergeDeep=mergeDeep;MapPrototype.mergeDeepWith=mergeDeepWith;MapPrototype.mergeIn=mergeIn;MapPrototype.mergeDeepIn=mergeDeepIn;MapPrototype.withMutations=withMutations;MapPrototype.wasAltered=wasAltered;MapPrototype.asImmutable=asImmutable;MapPrototype["@@transducer/init"]=MapPrototype.asMutable=asMutable;MapPrototype["@@transducer/step"]=function(j,_e){return j.set(_e[0],_e[1])};MapPrototype["@@transducer/result"]=function(j){return j.asImmutable()};var ArrayMapNode=function(_e,et){this.ownerID=_e,this.entries=et};ArrayMapNode.prototype.get=function(_e,et,tt,rt){for(var nt=this.entries,ot=0,it=nt.length;ot=MAX_ARRAY_MAP_SIZE)return createNodes(_e,lt,rt,nt);var ft=_e&&_e===this.ownerID,pt=ft?lt:arrCopy(lt);return dt?st?ut===ct-1?pt.pop():pt[ut]=pt.pop():pt[ut]=[rt,nt]:pt.push([rt,nt]),ft?(this.entries=pt,this):new ArrayMapNode(_e,pt)}};var BitmapIndexedNode=function(_e,et,tt){this.ownerID=_e,this.bitmap=et,this.nodes=tt};BitmapIndexedNode.prototype.get=function(_e,et,tt,rt){et===void 0&&(et=hash$1(tt));var nt=1<<((_e===0?et:et>>>_e)&MASK),ot=this.bitmap;return ot&nt?this.nodes[popCount(ot&nt-1)].get(_e+SHIFT,et,tt,rt):rt};BitmapIndexedNode.prototype.update=function(_e,et,tt,rt,nt,ot,it){tt===void 0&&(tt=hash$1(rt));var st=(et===0?tt:tt>>>et)&MASK,lt=1<=MAX_BITMAP_INDEXED_SIZE)return expandNodes(_e,ft,ut,st,gt);if(ct&&!gt&&ft.length===2&&isLeafNode(ft[dt^1]))return ft[dt^1];if(ct&>&&ft.length===1&&isLeafNode(gt))return gt;var vt=_e&&_e===this.ownerID,bt=ct?gt?ut:ut^lt:ut|lt,_t=ct?gt?setAt(ft,dt,gt,vt):spliceOut(ft,dt,vt):spliceIn(ft,dt,gt,vt);return vt?(this.bitmap=bt,this.nodes=_t,this):new BitmapIndexedNode(_e,bt,_t)};var HashArrayMapNode=function(_e,et,tt){this.ownerID=_e,this.count=et,this.nodes=tt};HashArrayMapNode.prototype.get=function(_e,et,tt,rt){et===void 0&&(et=hash$1(tt));var nt=(_e===0?et:et>>>_e)&MASK,ot=this.nodes[nt];return ot?ot.get(_e+SHIFT,et,tt,rt):rt};HashArrayMapNode.prototype.update=function(_e,et,tt,rt,nt,ot,it){tt===void 0&&(tt=hash$1(rt));var st=(et===0?tt:tt>>>et)&MASK,lt=nt===NOT_SET,ut=this.nodes,ct=ut[st];if(lt&&!ct)return this;var dt=updateNode(ct,_e,et+SHIFT,tt,rt,nt,ot,it);if(dt===ct)return this;var ft=this.count;if(!ct)ft++;else if(!dt&&(ft--,ft>>et)&MASK,ot=(et===0?tt:tt>>>et)&MASK,it,st=nt===ot?[mergeIntoNode(j,_e,et+SHIFT,tt,rt)]:(it=new ValueNode(_e,tt,rt),nt>>=1)ot[it]=et&1?_e[nt++]:void 0;return ot[tt]=rt,new HashArrayMapNode(j,nt+1,ot)}function popCount(j){return j-=j>>1&1431655765,j=(j&858993459)+(j>>2&858993459),j=j+(j>>4)&252645135,j+=j>>8,j+=j>>16,j&127}function setAt(j,_e,et,tt){var rt=tt?j:arrCopy(j);return rt[_e]=et,rt}function spliceIn(j,_e,et,tt){var rt=j.length+1;if(tt&&_e+1===rt)return j[_e]=et,j;for(var nt=new Array(rt),ot=0,it=0;it0&&nt=0&&tt>>et&MASK;if(rt>=this.array.length)return new VNode([],_e);var nt=rt===0,ot;if(et>0){var it=this.array[rt];if(ot=it&&it.removeBefore(_e,et-SHIFT,tt),ot===it&&nt)return this}if(nt&&!ot)return this;var st=editableVNode(this,_e);if(!nt)for(var lt=0;lt>>et&MASK;if(rt>=this.array.length)return this;var nt;if(et>0){var ot=this.array[rt];if(nt=ot&&ot.removeAfter(_e,et-SHIFT,tt),nt===ot&&rt===this.array.length-1)return this}var it=editableVNode(this,_e);return it.array.splice(rt+1),nt&&(it.array[rt]=nt),it};var DONE={};function iterateList(j,_e){var et=j._origin,tt=j._capacity,rt=getTailOffset(tt),nt=j._tail;return ot(j._root,j._level,0);function ot(lt,ut,ct){return ut===0?it(lt,ct):st(lt,ut,ct)}function it(lt,ut){var ct=ut===rt?nt&&nt.array:lt&<.array,dt=ut>et?0:et-ut,ft=tt-ut;return ft>SIZE$1&&(ft=SIZE$1),function(){if(dt===ft)return DONE;var pt=_e?--ft:dt++;return ct&&ct[pt]}}function st(lt,ut,ct){var dt,ft=lt&<.array,pt=ct>et?0:et-ct>>ut,gt=(tt-ct>>ut)+1;return gt>SIZE$1&&(gt=SIZE$1),function(){for(;;){if(dt){var vt=dt();if(vt!==DONE)return vt;dt=null}if(pt===gt)return DONE;var bt=_e?--gt:pt++;dt=ot(ft&&ft[bt],ut-SHIFT,ct+(bt<=j.size||_e<0)return j.withMutations(function(ot){_e<0?setListBounds(ot,_e).set(0,et):setListBounds(ot,0,_e+1).set(_e,et)});_e+=j._origin;var tt=j._tail,rt=j._root,nt=MakeRef();return _e>=getTailOffset(j._capacity)?tt=updateVNode(tt,j.__ownerID,0,_e,et,nt):rt=updateVNode(rt,j.__ownerID,j._level,_e,et,nt),nt.value?j.__ownerID?(j._root=rt,j._tail=tt,j.__hash=void 0,j.__altered=!0,j):makeList(j._origin,j._capacity,j._level,rt,tt):j}function updateVNode(j,_e,et,tt,rt,nt){var ot=tt>>>et&MASK,it=j&&ot0){var lt=j&&j.array[ot],ut=updateVNode(lt,_e,et-SHIFT,tt,rt,nt);return ut===lt?j:(st=editableVNode(j,_e),st.array[ot]=ut,st)}return it&&j.array[ot]===rt?j:(nt&&SetRef(nt),st=editableVNode(j,_e),rt===void 0&&ot===st.array.length-1?st.array.pop():st.array[ot]=rt,st)}function editableVNode(j,_e){return _e&&j&&_e===j.ownerID?j:new VNode(j?j.array.slice():[],_e)}function listNodeFor(j,_e){if(_e>=getTailOffset(j._capacity))return j._tail;if(_e<1<0;)et=et.array[_e>>>tt&MASK],tt-=SHIFT;return et}}function setListBounds(j,_e,et){_e!==void 0&&(_e|=0),et!==void 0&&(et|=0);var tt=j.__ownerID||new OwnerID,rt=j._origin,nt=j._capacity,ot=rt+_e,it=et===void 0?nt:et<0?nt+et:rt+et;if(ot===rt&&it===nt)return j;if(ot>=it)return j.clear();for(var st=j._level,lt=j._root,ut=0;ot+ut<0;)lt=new VNode(lt&<.array.length?[void 0,lt]:[],tt),st+=SHIFT,ut+=1<=1<ct?new VNode([],tt):ft;if(ft&&dt>ct&&otSHIFT;vt-=SHIFT){var bt=ct>>>vt&MASK;gt=gt.array[bt]=editableVNode(gt.array[bt],tt)}gt.array[ct>>>SHIFT&MASK]=ft}if(it=dt)ot-=dt,it-=dt,st=SHIFT,lt=null,pt=pt&&pt.removeBefore(tt,0,ot);else if(ot>rt||dt>>st&MASK;if(_t!==dt>>>st&MASK)break;_t&&(ut+=(1<rt&&(lt=lt.removeBefore(tt,st,ot-ut)),lt&&dt>>SHIFT<=SIZE$1&&rt.size>=tt.size*2?(st=rt.filter(function(lt,ut){return lt!==void 0&&nt!==ut}),it=st.toKeyedSeq().map(function(lt){return lt[0]}).flip().toMap(),j.__ownerID&&(it.__ownerID=st.__ownerID=j.__ownerID)):(it=tt.remove(_e),st=nt===rt.size-1?rt.pop():rt.set(nt,void 0))}else if(ot){if(et===rt.get(nt)[1])return j;it=tt,st=rt.set(nt,[_e,et])}else it=tt.set(_e,rt.size),st=rt.set(rt.size,[_e,et]);return j.__ownerID?(j.size=it.size,j._map=it,j._list=st,j.__hash=void 0,j.__altered=!0,j):makeOrderedMap(it,st)}var IS_STACK_SYMBOL="@@__IMMUTABLE_STACK__@@";function isStack(j){return!!(j&&j[IS_STACK_SYMBOL])}var Stack=function(j){function _e(et){return et==null?emptyStack():isStack(et)?et:emptyStack().pushAll(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return this(arguments)},_e.prototype.toString=function(){return this.__toString("Stack [","]")},_e.prototype.get=function(tt,rt){var nt=this._head;for(tt=wrapIndex(this,tt);nt&&tt--;)nt=nt.next;return nt?nt.value:rt},_e.prototype.peek=function(){return this._head&&this._head.value},_e.prototype.push=function(){var tt=arguments;if(arguments.length===0)return this;for(var rt=this.size+arguments.length,nt=this._head,ot=arguments.length-1;ot>=0;ot--)nt={value:tt[ot],next:nt};return this.__ownerID?(this.size=rt,this._head=nt,this.__hash=void 0,this.__altered=!0,this):makeStack(rt,nt)},_e.prototype.pushAll=function(tt){if(tt=j(tt),tt.size===0)return this;if(this.size===0&&isStack(tt))return tt;assertNotInfinite(tt.size);var rt=this.size,nt=this._head;return tt.__iterate(function(ot){rt++,nt={value:ot,next:nt}},!0),this.__ownerID?(this.size=rt,this._head=nt,this.__hash=void 0,this.__altered=!0,this):makeStack(rt,nt)},_e.prototype.pop=function(){return this.slice(1)},_e.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):emptyStack()},_e.prototype.slice=function(tt,rt){if(wholeSlice(tt,rt,this.size))return this;var nt=resolveBegin(tt,this.size),ot=resolveEnd(rt,this.size);if(ot!==this.size)return j.prototype.slice.call(this,tt,rt);for(var it=this.size-nt,st=this._head;nt--;)st=st.next;return this.__ownerID?(this.size=it,this._head=st,this.__hash=void 0,this.__altered=!0,this):makeStack(it,st)},_e.prototype.__ensureOwner=function(tt){return tt===this.__ownerID?this:tt?makeStack(this.size,this._head,tt,this.__hash):this.size===0?emptyStack():(this.__ownerID=tt,this.__altered=!1,this)},_e.prototype.__iterate=function(tt,rt){var nt=this;if(rt)return new ArraySeq(this.toArray()).__iterate(function(st,lt){return tt(st,lt,nt)},rt);for(var ot=0,it=this._head;it&&tt(it.value,ot++,this)!==!1;)it=it.next;return ot},_e.prototype.__iterator=function(tt,rt){if(rt)return new ArraySeq(this.toArray()).__iterator(tt,rt);var nt=0,ot=this._head;return new Iterator(function(){if(ot){var it=ot.value;return ot=ot.next,iteratorValue(tt,nt++,it)}return iteratorDone()})},_e}(IndexedCollection);Stack.isStack=isStack;var StackPrototype=Stack.prototype;StackPrototype[IS_STACK_SYMBOL]=!0;StackPrototype.shift=StackPrototype.pop;StackPrototype.unshift=StackPrototype.push;StackPrototype.unshiftAll=StackPrototype.pushAll;StackPrototype.withMutations=withMutations;StackPrototype.wasAltered=wasAltered;StackPrototype.asImmutable=asImmutable;StackPrototype["@@transducer/init"]=StackPrototype.asMutable=asMutable;StackPrototype["@@transducer/step"]=function(j,_e){return j.unshift(_e)};StackPrototype["@@transducer/result"]=function(j){return j.asImmutable()};function makeStack(j,_e,et,tt){var rt=Object.create(StackPrototype);return rt.size=j,rt._head=_e,rt.__ownerID=et,rt.__hash=tt,rt.__altered=!1,rt}var EMPTY_STACK;function emptyStack(){return EMPTY_STACK||(EMPTY_STACK=makeStack(0))}var IS_SET_SYMBOL="@@__IMMUTABLE_SET__@@";function isSet(j){return!!(j&&j[IS_SET_SYMBOL])}function isOrderedSet(j){return isSet(j)&&isOrdered(j)}function deepEqual$1(j,_e){if(j===_e)return!0;if(!isCollection(_e)||j.size!==void 0&&_e.size!==void 0&&j.size!==_e.size||j.__hash!==void 0&&_e.__hash!==void 0&&j.__hash!==_e.__hash||isKeyed(j)!==isKeyed(_e)||isIndexed(j)!==isIndexed(_e)||isOrdered(j)!==isOrdered(_e))return!1;if(j.size===0&&_e.size===0)return!0;var et=!isAssociative(j);if(isOrdered(j)){var tt=j.entries();return _e.every(function(st,lt){var ut=tt.next().value;return ut&&is(ut[1],st)&&(et||is(ut[0],lt))})&&tt.next().done}var rt=!1;if(j.size===void 0)if(_e.size===void 0)typeof j.cacheResult=="function"&&j.cacheResult();else{rt=!0;var nt=j;j=_e,_e=nt}var ot=!0,it=_e.__iterate(function(st,lt){if(et?!j.has(st):rt?!is(st,j.get(lt,NOT_SET)):!is(j.get(lt,NOT_SET),st))return ot=!1,!1});return ot&&j.size===it}function mixin(j,_e){var et=function(tt){j.prototype[tt]=_e[tt]};return Object.keys(_e).forEach(et),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(_e).forEach(et),j}function toJS(j){if(!j||typeof j!="object")return j;if(!isCollection(j)){if(!isDataStructure(j))return j;j=Seq(j)}if(isKeyed(j)){var _e={};return j.__iterate(function(tt,rt){_e[rt]=toJS(tt)}),_e}var et=[];return j.__iterate(function(tt){et.push(toJS(tt))}),et}var Set$1=function(j){function _e(et){return et==null?emptySet():isSet(et)&&!isOrdered(et)?et:emptySet().withMutations(function(tt){var rt=j(et);assertNotInfinite(rt.size),rt.forEach(function(nt){return tt.add(nt)})})}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return this(arguments)},_e.fromKeys=function(tt){return this(KeyedCollection(tt).keySeq())},_e.intersect=function(tt){return tt=Collection$1(tt).toArray(),tt.length?SetPrototype.intersect.apply(_e(tt.pop()),tt):emptySet()},_e.union=function(tt){return tt=Collection$1(tt).toArray(),tt.length?SetPrototype.union.apply(_e(tt.pop()),tt):emptySet()},_e.prototype.toString=function(){return this.__toString("Set {","}")},_e.prototype.has=function(tt){return this._map.has(tt)},_e.prototype.add=function(tt){return updateSet(this,this._map.set(tt,tt))},_e.prototype.remove=function(tt){return updateSet(this,this._map.remove(tt))},_e.prototype.clear=function(){return updateSet(this,this._map.clear())},_e.prototype.map=function(tt,rt){var nt=this,ot=!1,it=updateSet(this,this._map.mapEntries(function(st){var lt=st[1],ut=tt.call(rt,lt,lt,nt);return ut!==lt&&(ot=!0),[ut,ut]},rt));return ot?it:this},_e.prototype.union=function(){for(var tt=[],rt=arguments.length;rt--;)tt[rt]=arguments[rt];return tt=tt.filter(function(nt){return nt.size!==0}),tt.length===0?this:this.size===0&&!this.__ownerID&&tt.length===1?this.constructor(tt[0]):this.withMutations(function(nt){for(var ot=0;ot=0&&rt=0&&ntthis.size?et:this.find(function(tt,rt){return rt===_e},void 0,et)},has:function(_e){return _e=wrapIndex(this,_e),_e>=0&&(this.size!==void 0?this.size===1/0||_e_e?-1:0}function hashCollection(j){if(j.size===1/0)return 0;var _e=isOrdered(j),et=isKeyed(j),tt=_e?1:0,rt=j.__iterate(et?_e?function(nt,ot){tt=31*tt+hashMerge(hash$1(nt),hash$1(ot))|0}:function(nt,ot){tt=tt+hashMerge(hash$1(nt),hash$1(ot))|0}:_e?function(nt){tt=31*tt+hash$1(nt)|0}:function(nt){tt=tt+hash$1(nt)|0});return murmurHashOfSize(rt,tt)}function murmurHashOfSize(j,_e){return _e=imul(_e,3432918353),_e=imul(_e<<15|_e>>>-15,461845907),_e=imul(_e<<13|_e>>>-13,5),_e=(_e+3864292196|0)^j,_e=imul(_e^_e>>>16,2246822507),_e=imul(_e^_e>>>13,3266489909),_e=smi(_e^_e>>>16),_e}function hashMerge(j,_e){return j^_e+2654435769+(j<<6)+(j>>2)|0}var OrderedSet=function(j){function _e(et){return et==null?emptyOrderedSet():isOrderedSet(et)?et:emptyOrderedSet().withMutations(function(tt){var rt=SetCollection(et);assertNotInfinite(rt.size),rt.forEach(function(nt){return tt.add(nt)})})}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return this(arguments)},_e.fromKeys=function(tt){return this(KeyedCollection(tt).keySeq())},_e.prototype.toString=function(){return this.__toString("OrderedSet {","}")},_e}(Set$1);OrderedSet.isOrderedSet=isOrderedSet;var OrderedSetPrototype=OrderedSet.prototype;OrderedSetPrototype[IS_ORDERED_SYMBOL]=!0;OrderedSetPrototype.zip=IndexedCollectionPrototype.zip;OrderedSetPrototype.zipWith=IndexedCollectionPrototype.zipWith;OrderedSetPrototype.zipAll=IndexedCollectionPrototype.zipAll;OrderedSetPrototype.__empty=emptyOrderedSet;OrderedSetPrototype.__make=makeOrderedSet;function makeOrderedSet(j,_e){var et=Object.create(OrderedSetPrototype);return et.size=j?j.size:0,et._map=j,et.__ownerID=_e,et}var EMPTY_ORDERED_SET;function emptyOrderedSet(){return EMPTY_ORDERED_SET||(EMPTY_ORDERED_SET=makeOrderedSet(emptyOrderedMap()))}function throwOnInvalidDefaultValues(j){if(isRecord(j))throw new Error("Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.");if(isImmutable(j))throw new Error("Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.");if(j===null||typeof j!="object")throw new Error("Can not call `Record` with a non-object as default values. Use a plain javascript object instead.")}var Record=function(_e,et){var tt;throwOnInvalidDefaultValues(_e);var rt=function(it){var st=this;if(it instanceof rt)return it;if(!(this instanceof rt))return new rt(it);if(!tt){tt=!0;var lt=Object.keys(_e),ut=nt._indices={};nt._name=et,nt._keys=lt,nt._defaultValues=_e;for(var ct=0;ct0?this._next(et.shift()):this.active===0&&this.hasCompleted&&this.destination.complete()},_e}(SimpleOuterSubscriber);function mergeAll(j){return j===void 0&&(j=Number.POSITIVE_INFINITY),mergeMap(identity$5,j)}function merge$3(){for(var j=[],_e=0;_e1&&typeof j[j.length-1]=="number"&&(et=j.pop())):typeof rt=="number"&&(et=j.pop()),tt===null&&j.length===1&&j[0]instanceof Observable$2?j[0]:mergeAll(et)(fromArray(j,tt))}function filter$4(j,_e){return function(tt){return tt.lift(new FilterOperator(j,_e))}}var FilterOperator=function(){function j(_e,et){this.predicate=_e,this.thisArg=et}return j.prototype.call=function(_e,et){return et.subscribe(new FilterSubscriber(_e,this.predicate,this.thisArg))},j}(),FilterSubscriber=function(j){__extends$2(_e,j);function _e(et,tt,rt){var nt=j.call(this,et)||this;return nt.predicate=tt,nt.thisArg=rt,nt.count=0,nt}return _e.prototype._next=function(et){var tt;try{tt=this.predicate.call(this.thisArg,et,this.count++)}catch(rt){this.destination.error(rt);return}tt&&this.destination.next(et)},_e}(Subscriber);function debounceTime(j,_e){return _e===void 0&&(_e=async),function(et){return et.lift(new DebounceTimeOperator(j,_e))}}var DebounceTimeOperator=function(){function j(_e,et){this.dueTime=_e,this.scheduler=et}return j.prototype.call=function(_e,et){return et.subscribe(new DebounceTimeSubscriber(_e,this.dueTime,this.scheduler))},j}(),DebounceTimeSubscriber=function(j){__extends$2(_e,j);function _e(et,tt,rt){var nt=j.call(this,et)||this;return nt.dueTime=tt,nt.scheduler=rt,nt.debouncedSubscription=null,nt.lastValue=null,nt.hasValue=!1,nt}return _e.prototype._next=function(et){this.clearDebounce(),this.lastValue=et,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(dispatchNext,this.dueTime,this))},_e.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},_e.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var et=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(et)}},_e.prototype.clearDebounce=function(){var et=this.debouncedSubscription;et!==null&&(this.remove(et),et.unsubscribe(),this.debouncedSubscription=null)},_e}(Subscriber);function dispatchNext(j){j.debouncedNext()}function e$4(){return e$4=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{const it=tt.singletonCache.get(ot)||tt.requestCache.get(ot)||tt.transientCache.get(ot);it&&(nt.proxyTarget.current=it)}),tt.postConstruct.forEach(nt=>{nt.postConstruct()}),this.currentCtx=null,rt}child(){const _e=new this.constructor;return _e.parent=this,_e}getParent(){return this.parent}getInjectable(_e){var et;const tt=this.pool.get(_e);if(tt)return{value:tt,fromParent:!1};const rt=(et=this.parent)==null?void 0:et.getInjectable(_e);return rt?{value:rt.value,fromParent:!0}:void 0}_resolve(_e,et,tt){const rt=this.getInjectable(_e);if((et==null?void 0:et.optional)===!0&&!rt)return;if(!rt)throw new Error(`Key: ${a$1(_e)} not found`);const{value:{value:nt,scope:ot,type:it},fromParent:st}=rt;let lt,ut=!1;if(it===h$9.VALUE)return nt;{const ct=tt.requestedKeys.get(_e);if(ct){if(!ct.constructed){if(!et.lazy&&!st){const dt=Array.from(tt.requestedKeys.entries()).pop(),ft=dt?`[ ${String(dt[0])}: ${dt[1].value.name} ]`:"";throw new Error(`Circular reference detected: ${ft} -> [ ${a$1(_e)}: ${nt.name} ]`)}ut=!0}}else tt.requestedKeys.set(_e,{constructed:!1,value:nt})}return lt=ut?()=>this.createLazy(_e,it,tt):()=>this.create(_e,rt.value,tt),this.run(ot,_e,lt,tt)}resolveDeps(_e,et){const tt=[];for(const rt of _e){const{key:nt,options:ot}=c$7(rt);if(Array.isArray(nt)){const it=[];for(const st of nt){let lt=et.singletonCache.get(st.key);lt===void 0&&(lt=this._resolve(st.key,e$4({},st.options),et)),lt===void 0&&ot.removeUndefined||it.push(lt)}tt.push(it.length?it:ot.setToUndefinedIfEmpty?void 0:it)}else{let it=et.singletonCache.get(nt);it===void 0&&(it=this._resolve(nt,e$4({},ot),et)),tt.push(it)}}return tt}createLazy(_e,et,tt){const rt=tt.delayed.get(_e);if(rt)return rt.proxy;const nt=et===h$9.CLASS?{}:function(){},ot=function(it,st,lt){function ut(){if(!it.current)throw new Error(`Lazy target for key:${String(lt)} not yet set`);return it.current}return new Proxy(it,{apply:function(ct,dt){const ft=ut();return Reflect.apply(ft,st?ft:void 0,dt)},construct:function(ct,dt){return Reflect.construct(ut(),dt)},get:function(ct,dt,ft){return dt===t$8?ct.current:dt===n$9||Reflect.get(ut(),dt,ft)},set:function(ct,dt,ft){return Reflect.set(dt==="current"?ct:ut(),dt,ft)},defineProperty:function(ct,dt,ft){return Reflect.defineProperty(ut(),dt,ft)},deleteProperty:function(ct,dt){return Reflect.deleteProperty(ut(),dt)},getPrototypeOf:function(ct){return Reflect.getPrototypeOf(ut())},setPrototypeOf:function(ct,dt){return Reflect.setPrototypeOf(ut(),dt)},getOwnPropertyDescriptor:function(ct,dt){return Reflect.getOwnPropertyDescriptor(ut(),dt)},has:function(ct,dt){return Reflect.has(ut(),dt)},isExtensible:function(ct){return Reflect.isExtensible(ut())},ownKeys:function(ct){return Reflect.ownKeys(ut())},preventExtensions:function(ct){return Reflect.preventExtensions(ut())}})}(nt,et===h$9.CLASS,_e);return tt.delayed.set(_e,{proxy:ot,proxyTarget:nt}),ot}create(_e,et,tt){const{beforeResolve:rt,afterResolve:nt,value:ot,type:it}=et,st=ot.inject;let lt=[];st&&(lt=Array.isArray(st)?this.resolveDeps(st,tt):st.fn({container:this,ctx:tt.ctx},...this.resolveDeps(st.deps,tt)));const ut=rt?rt({container:this,value:ot.original,ctx:tt.ctx},...lt):ot(...lt);return nt&&nt({container:this,value:ut,ctx:tt.ctx}),tt.requestedKeys.get(_e).constructed=!0,it==="CLASS"&&"postConstruct"in ut&&tt.postConstruct.push(ut),ut}run(_e,et,tt,rt){if(_e===f$6.SINGLETON||_e===f$6.CONTAINER_SINGLETON){var nt;if(!this.pool.has(et)&&_e===f$6.SINGLETON)return(nt=this.parent)==null?void 0:nt.resolve(et);const it=rt.singletonCache.get(et);if(it!==void 0)return it===p$8?void 0:it;{let st=tt();return st===void 0&&(st=p$8),this.singletonCache.set(et,st),st}}if(f$6.REQUEST===_e){const it=rt.requestCache.get(et);if(it!==void 0)return it===p$8?void 0:it;{let st=tt();return st===void 0&&(st=p$8),rt.requestCache.set(et,st),st}}const ot=tt();return rt.transientCache.set(et,ot),ot}};function isClassProvider(j){return hasOwn$l(j,"useClass")}function isFactoryProvider(j){return hasOwn$l(j,"useFactory")}function isValueProvider(j){return hasOwn$l(j,"useValue")}function isTokenProvider(j){return hasOwn$l(j,"useToken")}const SINGLETON=Symbol("singleton");function isConstructor$4(j){return typeof j=="function"&&!!j.inject}function getClassScope(j){return j[SINGLETON]?"SINGLETON":j.scope?j.scope:"TRANSIENT"}class DependencyContainer extends d$2{constructor(){super(...arguments),this.name="DependencyContainer"}bindValue(_e,et){return this.has(_e,!1)&&this.unbind(_e),super.bindValue(_e,et)}bindClass(_e,et,tt){const rt=(tt==null?void 0:tt.scope)??getClassScope(_e);return super.bindClass(_e,et,{...tt,scope:rt})}register(_e,et){if(isValueProvider(et))this.bindValue(_e,et.useValue);else if(isFactoryProvider(et)){const{useFactory:tt}=et;this.bindFactory(_e,{value:tt,inject:[ContainerToken]},{scope:et.scope})}else if(isTokenProvider(et))this.bindFactory(_e,{value:tt=>tt,inject:[et.useToken]});else if(isClassProvider(et)){const tt=et.scope??getClassScope(et.useClass);this.bindClass(_e,et.useClass,{scope:tt})}}_resolve(_e,et,tt){if(!this.getInjectable(_e)&&isConstructor$4(_e)){const rt=getClassScope(_e);this.bindClass(_e,_e,{scope:rt})}return super._resolve(_e,et,tt)}}const getGlobalContainer=()=>{const j=new DependencyContainer;return j.name="global",j},container=getGlobalContainer();function createInjectionToken(j,_e){return container.bindValue(j,_e),j}const ContainerToken=createInjectionToken("DependencyContainer",container),ServicesContext=reactExports.createContext(container),createRegistry=({provide:j,name:_e})=>({containerRef:tt,onInitialize:rt,onDispose:nt,children:ot})=>{const it=reactExports.useContext(ServicesContext),st=reactExports.useMemo(()=>{const lt=it.child();return _e&&(lt.name=_e),j==null||j.forEach(ut=>{lt.register(ut.token,ut)}),lt.bindValue(ContainerToken,lt),rt==null||rt(lt),lt},[rt,it]);return reactExports.useImperativeHandle(tt,()=>st,[st]),reactExports.useEffect(()=>()=>{nt==null||nt(st),st.unbindAll(!0)},[st]),jsxRuntimeExports.jsx(ServicesContext.Provider,{value:st,children:ot})};createInjectionToken("isControlFlowEnabledToken",!1);createInjectionToken("isDoWhileLoopEnabledToken",!1);createInjectionToken("isAnnotationEnabledToken",!1);createInjectionToken("isDesignerUnifiedSubmissionFlowEnabledToken",!1);createInjectionToken("isPipelineComputeDatastoreEnabledToken",!1);createInjectionToken("TransactionalAuthoringEnabled",!1);createInjectionToken("ComponentSettingsEnabled",!1);createInjectionToken("isPipelineOwnerToken",!1);createInjectionToken("isExecutionPhaseEnabledToken",!1);createInjectionToken("isPipelineStreamingEnabledToken",!1);createInjectionToken("useFocusedNodeId",()=>{});createInjectionToken("useIsInSearchResult",()=>!1);createInjectionToken("dismissCompareCheckListPanel",()=>null);const promptFlowGraphReducer=j=>(_e,et)=>j(_e,et),graphReducer=()=>getGraphReducer(promptFlowGraphReducer);let Computed$1=class om extends Observable$2{constructor(_e,et){super(tt=>this.state$.subscribe(tt)),this.getSnapshot=()=>this.state$.getValue(),this.state$=new BehaviorSubject(_e),this.subscription=et.subscribe(this.state$)}static fromStates(_e,et){const tt=et(_e.map(nt=>nt.getSnapshot())),rt=combineLatest(_e).pipe(map$3(et));return new om(tt,rt)}destroy(){this.subscription.unsubscribe()}},State$1=class extends BehaviorSubject{constructor(){super(...arguments),this.getState=()=>this.getValue(),this.setState=_e=>{this.next(_e)},this.updateState=_e=>{this.next(_e(this.getValue()))},this.getSnapshot=()=>this.getValue()}next(_e,et){!et&&this.value===_e||super.next(_e)}copyFrom(_e){this.next(_e.getSnapshot())}};const Kp=class Kp{constructor(){this.nodesIndex$=new State$1(List$1()),this.allNodeNames$=Computed$1.fromStates([],()=>List$1()),this.orientation$=new State$1(Orientation$1.Vertical),this.language$=new State$1(void 0)}tweakFlattenNodeOrder(_e,et){const tt=this.nodesIndex$.getSnapshot(),rt=tt.findIndex(ot=>ot===_e),nt=rt+et;if(rt>=0&&nt>=0&&nt(this.addListener(_e,et),et.next(this.get(_e)),()=>{this.removeListener(_e,et)}))}notify(_e){var et;(et=this.listeners.get(_e))==null||et.forEach(tt=>{tt.next(this.get(_e))})}next(_e){const et=this.getSnapshot();super.next(_e);const tt=new Set;et.forEach((rt,nt)=>{_e.has(nt)||tt.add(nt)}),_e.forEach((rt,nt)=>{et.has(nt)&&Object.is(et.get(nt),rt)||tt.add(nt)}),tt.forEach(rt=>{this.notify(rt)})}addListener(_e,et){let tt=this.listeners.get(_e);tt||(tt=new Set,this.listeners.set(_e,tt)),tt.add(et)}removeListener(_e,et){const tt=this.listeners.get(_e);tt&&(tt.delete(et),tt.size===0&&this.listeners.delete(_e))}}class ObservableMap extends ObservableCollection{constructor(){super(Map$1())}set(_e,et){return this.updateState(tt=>tt.set(_e,et)),this}update(_e,et){return this.updateState(tt=>tt.update(_e,et)),this}delete(_e){return this.updateState(et=>et.delete(_e)),this}deleteAll(_e){return this.updateState(et=>et.deleteAll(_e)),this}clear(){return this.next(Map$1()),this}merge(_e){return this.updateState(et=>et.merge(_e)),this}}class ObservableOrderedMap extends ObservableCollection{constructor(){super(OrderedMap())}set(_e,et){return this.updateState(tt=>tt.set(_e,et)),this}update(_e,et){return this.updateState(tt=>tt.update(_e,et)),this}delete(_e){return this.updateState(et=>et.delete(_e)),this}deleteAll(_e){return this.updateState(et=>et.deleteAll(_e)),this}clear(){return this.next(OrderedMap()),this}merge(_e){return this.updateState(et=>et.merge(_e)),this}insertBefore(_e,et,tt){return this.updateState(rt=>OrderedMap().withMutations(nt=>{for(const[ot,it]of rt.entries())_e===ot&&nt.set(et,tt),nt.set(ot,it)})),this.notify(et),this}insertAfter(_e,et,tt){return this.updateState(rt=>OrderedMap().withMutations(nt=>{for(const[ot,it]of rt.entries())nt.set(ot,it),_e===ot&&nt.set(et,tt)})),this.notify(et),this}sortByValue(_e){return this.updateState(et=>et.sort(_e)),this}}var _a$5;const Vp=class Vp extends FlowViewModelShared{constructor(){super(),this.isWorkspaceReady$=new State$1(!1),this.currentNodeId$=new State$1(void 0),this.graphConfig=GraphConfigBuilder.default().build(),this.graphReducer=graphReducer(),this.isReadonly$=new State$1(!1),this.name$=new State$1(""),this.flowType$=new State$1(FlowType.Default),this.owner$=new State$1(void 0),this.isArchived$=new State$1(!1),this.selectedStepId$=new State$1(void 0),this.tools$=new ObservableOrderedMap,this.toolsStatus$=new ObservableOrderedMap,this.batchInputs$=new State$1([]),this.bulkRunDataReference$=new State$1(void 0),this.chatMessages$=new State$1([]),this.nodeVariants$=new ObservableOrderedMap,this.tuningNodeNames$=new State$1([]),this.inputSpec$=new ObservableOrderedMap,this.selectedBulkIndex$=new State$1(void 0),this.nodeRuns$=new ObservableOrderedMap,this.flowRuns$=new State$1([]),this.rootFlowRunMap$=new ObservableMap,this.flowOutputs$=new ObservableOrderedMap,this.connections$=new ObservableOrderedMap,this.promptToolSetting$=new State$1(void 0),this.userInfo$=new State$1(void 0),this.bulkRunDescription$=new State$1(""),this.bulkRunTags$=new State$1([]),this.nodeParameterTypes$=new ObservableMap,this.theme$=new State$1(void 0),this.selectedRuntimeName$=new State$1(void 0),this.connectionList$=new State$1([]),this.connectionSpecList$=new State$1([]),this.connectionDeployments$=new ObservableOrderedMap,this.connectionDeploymentsLoading$=new ObservableOrderedMap,this.runStatus$=new State$1(void 0),this.flowRunType$=new State$1(void 0),this.packageToolsDictionary$=new ObservableMap,this.codeToolsDictionary$=new ObservableMap,this.isToolsJsonReady$=new State$1(!1),this.flowGraphLayout$=new State$1(void 0),this.flowUIHint$=new State$1(void 0),this.isInitialized$=new State$1(!1),this.flowFeatures$=new State$1(new Set),this.loaded=!1,this._allLlmParameterKeys=[],new Set(dataReadonlyMode).add(GraphFeatures.AutoFit);const et=new Set;et.add(FlowFeatures.OpenCodeFileInNode),this.flowFeatures$.next(et),this.canvasState$=new State$1(createGraphState({settings:{graphConfig:this.graphConfig,canvasBoundaryPadding:{top:800,bottom:800}},data:GraphModel.empty()})),this.allNodeNames$=Computed$1.fromStates([this.nodeVariants$],([tt])=>List$1(Array.from(tt.keys()).filter(rt=>!!rt&&rt!==FLOW_INPUT_NODE_NAME&&rt!==FLOW_OUTPUT_NODE_NAME))),merge$3(this.flowOutputs$,this.batchInputs$,this.inputSpec$,this.selectedRuntimeName$,this.bulkRunTags$,this.nodeVariants$,this.codeToolsDictionary$,this.packageToolsDictionary$).pipe(filter$4(()=>this.loaded),filter$4(()=>this.isInitialized$.getSnapshot()),debounceTime(100)).subscribe(()=>{this.notifyFlowChange()}),merge$3(this.flowGraphLayout$,this.orientation$).pipe(debounceTime(100)).subscribe(()=>{this.notifyLayoutChange()}),merge$3(this.flowUIHint$).pipe(debounceTime(100)).subscribe(()=>{this.notifyUIHintChange()}),this.invalidStepInputs$=Computed$1.fromStates([this.nodeVariants$,this.codeToolsDictionary$,this.packageToolsDictionary$,this.connectionList$,this.inputSpec$,this.nodeParameterTypes$],([tt,rt,nt,ot,it,st])=>this.validateNodeInputs(tt))}attemptToRenameStep(_e,et){if(!checkNodeNameValid(et))return`step name ${et} is not valid`;if(this.nodeVariants$.get(et))return`step with name ${et} already exists`;if(!this.nodeVariants$.get(_e))return`step ${_e} not found`;const rt=(ot,it,st)=>{const lt={...ot};return Object.keys(lt).forEach(ut=>{const ct=lt[ut],dt=getRefValueFromRaw(ct),[ft]=(dt==null?void 0:dt.split("."))??[];ft===it&&(lt[ut]=ct.replace(`${it}`,`${st}`))}),lt},nt=(ot,it,st)=>{if(!ot)return;const lt={};return Object.entries(ot).forEach(([ut,ct])=>{var dt,ft,pt;lt[ut]={...ct,node:{...ct.node,name:((dt=ct.node)==null?void 0:dt.name)===it?st:(ft=ct.node)==null?void 0:ft.name,inputs:rt(((pt=ct.node)==null?void 0:pt.inputs)??{},it,st)}}}),lt};reactDomExports.unstable_batchedUpdates(()=>{this.nodeVariants$.updateState(ot=>ot.mapEntries(([it,st])=>{const lt={...st,variants:nt(st.variants,_e,et)};return[it===_e?et:it,lt]})),this.flowGraphLayout$.updateState(ot=>({...ot,nodeLayouts:renameKeyInObject((ot==null?void 0:ot.nodeLayouts)??{},_e,et)})),this.flowUIHint$.updateState(ot=>({...ot,nodes:renameKeyInObject((ot==null?void 0:ot.nodes)??{},_e,et)})),this.currentNodeId$.getSnapshot()===_e&&this.currentNodeId$.next(et),this.selectedStepId$.getSnapshot()===_e&&this.selectedStepId$.next(et),this.nodeRuns$.getSnapshot().forEach((ot,it)=>{if(ot.node===_e){const[,st,lt,ut]=it.split("#"),ct=parseInt(st,10);this.nodeRuns$.set(this.getNodeRunKey(et,isNaN(ct)?0:ct,lt,ut),{...ot,node:et}),this.nodeRuns$.delete(it)}})})}acceptFlowEdit(_e,et){_e!==this.viewType&&this.loadFlow(et)}loadFlow(_e){this.loaded=!1;try{reactDomExports.unstable_batchedUpdates(()=>{this.baseEntity=_e,this.owner$.next(_e.owner),this.isArchived$.next(_e.isArchived??!1),this.loadFlowDto(_e),_e.flowRunResult&&this.loadStatus(_e.flowRunResult)}),this.loaded=!0}catch(et){throw this.loaded=!0,et}}loadCodeTool(_e,et){this.codeToolsDictionary$.set(_e,et)}loadPackageTool(_e,et){this.packageToolsDictionary$.set(_e,et)}toBatchRequestData(){return{flow:{flowGraph:this.toFlowGraph(),nodeVariants:this.toNodeVariants(),flowGraphLayout:this.flowGraphLayout$.getSnapshot()},flowSubmitRunSettings:{...this.toFlowRunSettings()},flowRunDisplayName:this.name$.getSnapshot()}}toAddOnEvaluationRequestData(){return{flowSubmitRunSettings:{...this.toFlowRunSettings()}}}loadStatus(_e){var nt;this.clearStatus();let et=0;const tt=[],rt=new Map;if((nt=_e.flow_runs)!=null&&nt.length){for(const ot of _e.flow_runs)ot.index===null?rt.set(ot.run_id,ot):(et=ot.index,tt.push(ot));tt.sort((ot,it)=>{var st;return ot.root_run_id===it.root_run_id?(ot.index??0)-(it.index??0):ot.variant_id&&it.variant_id?ot.variant_id.localeCompare(it.variant_id):((st=ot.root_run_id)==null?void 0:st.localeCompare((it==null?void 0:it.root_run_id)??""))??0}),this.flowRuns$.next(tt),this.rootFlowRunMap$.next(Map$1(rt))}_e.flowRunType&&this.flowRunType$.next(_e.flowRunType),_e.runStatus&&this.runStatus$.next(_e.runStatus),this.loadNodesStatus(_e.node_runs||[]),this.selectedBulkIndex$.next(et)}loadNodesStatus(_e){const et=this.tuningNodeNames$.getSnapshot()[0];_e.forEach(tt=>{const rt=tt.node===et,nt=this.getDefaultVariantId(tt.node),ot=tt.variant_id||nt,it=rt?ot:nt,st=this.getNodeRunKey(tt.node,tt.index??0,it,ot);this.nodeRuns$.set(st,tt)})}loadSingleNodeRunStatus(_e,et,tt){this.resetNodesStatus(_e,et),tt.forEach(rt=>{const nt=this.getDefaultVariantId(rt.node),ot=rt.variant_id||nt,it=rt.variant_id||nt,st=this.getNodeRunKey(rt.node,rt.index??0,it,ot);this.nodeRuns$.set(st,rt)})}resetNodesStatus(_e,et){this.nodeRuns$.updateState(tt=>tt.filter(rt=>{if(rt.node!==_e)return!0;const nt=this.getDefaultVariantId(rt.node);return(rt.variant_id||nt)!==et}))}clearStatus(){this.selectedBulkIndex$.next(void 0),this.nodeRuns$.clear(),this.flowRuns$.next([]),this.rootFlowRunMap$.clear()}getDefaultVariantId(_e){var et;return((et=this.nodeVariants$.get(_e))==null?void 0:et.defaultVariantId)||BASELINE_VARIANT_ID}setStepInput(_e,et,tt,rt){const nt=this.getNode(_e,rt);if(!(nt!=null&&nt.name))return;const ot={...nt,inputs:{...nt.inputs,[et]:tt}};this.setNode(_e,rt,ot)}removeStepInputs(_e,et,tt){const rt=this.getNode(_e,tt);if(!(rt!=null&&rt.name))return;const nt={...rt.inputs};et.forEach(it=>{delete nt[it]});const ot={...rt,inputs:nt};this.setNode(_e,tt,ot)}renameStepInput(_e,et,tt){const rt=this.getNode(_e,BASELINE_VARIANT_ID);if(!(rt!=null&&rt.name))return;const nt={...rt,inputs:renameKeyInObject(rt.inputs??{},et,tt)};this.setNode(_e,BASELINE_VARIANT_ID,nt)}setStepActivate(_e,et,tt){const rt=this.getNode(_e,et);if(!(rt!=null&&rt.name))return;const nt={...rt,activate:tt};this.setNode(_e,et,nt)}setStepKeyValue(_e,et,tt,rt){const nt=this.getNode(_e,rt);if(!(nt!=null&&nt.name))return;const ot={...nt,[et]:tt};this.setNode(_e,rt,ot)}setStepSourcePath(_e,et,tt){const rt=this.getNode(_e,tt);if(!(rt!=null&&rt.name))return;const nt={...rt,source:{...rt.source,path:et}};this.setNode(_e,tt,nt)}setBatchInput(_e,et,tt){const rt=this.batchInputs$.getSnapshot();if(!rt[_e])return;const nt=[...rt];nt[_e]={...nt[_e],[et]:tt},this.batchInputs$.setState(nt)}setBulkRunTag(_e,et,tt){const rt=[...this.bulkRunTags$.getSnapshot()];if(!rt[_e])return;const nt={};nt[et]=tt,rt[_e]=nt,this.bulkRunTags$.next(rt)}deleteBulkRunTag(_e){const et=[...this.bulkRunTags$.getSnapshot()];et.splice(_e,1),this.bulkRunTags$.next(et)}addBulkRunTagRow(){const _e=this.bulkRunTags$.getSnapshot(),et={"":""};this.bulkRunTags$.next([..._e,et])}getNodeRunKey(_e,et,tt=BASELINE_VARIANT_ID,rt=BASELINE_VARIANT_ID){return`${_e}#${et}#${tt}#${rt}`}dispatch(_e){var nt;let et="";switch(_e.type){case GraphCanvasEvent.Click:this.currentNodeId$.next(void 0);break;case GraphNodeEvent.Click:this.currentNodeId$.next(_e.node.id,!0);break;case GraphNodeEvent.DragEnd:{et=_e.node.name??"";break}}const tt=this.canvasState$.getSnapshot(),rt=this.graphReducer(tt,_e);if(this.canvasState$.next(rt),et){const ot=rt.data.present.nodes.find(lt=>lt.name===et),it=this.flowGraphLayout$.getSnapshot(),st={...it,nodeLayouts:{...it==null?void 0:it.nodeLayouts,[et]:{...(nt=it==null?void 0:it.nodeLayouts)==null?void 0:nt[et],x:ot==null?void 0:ot.x,y:ot==null?void 0:ot.y}}};this.flowGraphLayout$.next(st)}}setGraphConfig(_e){this.graphConfig=_e;const et=this.canvasState$.getSnapshot();this.canvasState$.next({...et,settings:{...et.settings,graphConfig:_e}})}toFlowGraph(){const _e=this.nodeVariants$.getSnapshot(),et=getDefaultNodeList(List$1.of(..._e.keys()),_e);return{inputs:this.inputSpec$.getSnapshot().toJSON(),outputs:this.flowOutputs$.getSnapshot().toJSON(),nodes:et,tools:void 0}}toFlowGraphSnapshot(_e){const et=lodashExports.mapValues(this.inputSpec$.getSnapshot().toJSON(),st=>{st.default!==void 0&&(st.default=convertValByType(st.default,st.type));const{name:lt,id:ut,...ct}=st;return ct}),tt=lodashExports.mapValues(this.flowOutputs$.getSnapshot().toJSON(),st=>{const{name:lt,id:ut,...ct}=st;return ct}),nt=getNodesThatMoreThanOneVariant(_e).map(st=>st.nodeName),ot=getFlowSnapshotNodeList(List$1.of(...Object.keys(_e)),_e,nt),it=getVariantNodes(_e);return{inputs:et,outputs:tt,nodes:ot,node_variants:it}}toNodeVariants(){const _e=this.nodeVariants$.getSnapshot().toJSON(),et={};return Object.keys(_e).forEach(tt=>{const rt=_e[tt],nt={};Object.keys(rt.variants??{}).forEach(ot=>{const it=(rt.variants??{})[ot];nt[ot]={...it,node:it.node?this.pruneNodeInputs(it.node):void 0}}),et[tt]={...rt,variants:nt}}),et}toFlowRunSettings(){var _e,et;return{tuningNodeNames:this.tuningNodeNames$.getSnapshot(),variants:void 0,runtimeName:(_e=this.selectedRuntimeName$)==null?void 0:_e.getSnapshot(),description:this.bulkRunDescription$.getSnapshot(),tags:Object.assign({},...this.bulkRunTags$.getSnapshot()),...this.bulkRunDataReference$.getSnapshot()!==void 0?{batchDataInput:{dataUri:(et=this.bulkRunDataReference$.getSnapshot())==null?void 0:et.id}}:{batch_inputs:this.batchInputs$.getSnapshot()}}}toJSON(){const _e=this.toNodeVariants();return{...this.baseEntity,flow:{flowGraph:this.toFlowGraphSnapshot(_e)},flowName:this.name$.getSnapshot(),flowRunSettings:this.toFlowRunSettings()}}toFlowGraphLayout(){const _e=this.flowGraphLayout$.getSnapshot()??{},et=Array.from(this.nodeVariants$.getSnapshot().keys()),tt={..._e.nodeLayouts};return Object.keys(tt).forEach(rt=>{tt[rt]={...tt[rt],index:et.indexOf(rt)}}),{..._e,nodeLayouts:tt,orientation:this.orientation$.getSnapshot()}}toFlowUIHint(){return this.flowUIHint$.getSnapshot()??{nodes:{}}}updateToolCode(_e,et){const tt=this.codeToolsDictionary$.get(_e);tt&&this.codeToolsDictionary$.set(_e,{...tt,code:et})}updateToolStatus(_e,et){const tt=this.toolsStatus$.get(_e);this.toolsStatus$.set(_e,{...tt,...et})}updateFlowInput(_e,et){const tt=this.batchInputs$.getSnapshot(),rt=tt==null?void 0:tt[0];let nt=et;try{const ot=JSON.parse(et);nt=JSON.stringify(ot)}catch{nt=et}this.batchInputs$.next([{...rt,[_e]:nt},...tt.slice(1)])}addNewNode(_e,et){if(!_e.name)return;const tt=_e,rt={defaultVariantId:BASELINE_VARIANT_ID,variants:{[BASELINE_VARIANT_ID]:{node:tt}}};et?this.nodeVariants$.insertBefore(et,_e.name,rt):this.nodeVariants$.set(_e.name,rt)}patchEditData(_e){var et,tt,rt,nt;switch(_e.type){case"chatInput":{if(this.flowType$.getSnapshot()!==FlowType.Chat)return;const ot=this.batchInputs$.getSnapshot(),it=((et=this.getChatInputDefinition())==null?void 0:et.name)??DEFAULT_CHAT_INPUT_NAME;this.batchInputs$.next([{...ot[0],[it]:_e.value}]);break}case"chatHistory":{if(this.flowType$.getSnapshot()!==FlowType.Chat)return;const ot=this.batchInputs$.getSnapshot(),it=((tt=this.getChatHistoryDefinition())==null?void 0:tt.name)??DEFAULT_CHAT_HISTORY_NAME,st=((rt=this.getChatInputDefinition())==null?void 0:rt.name)??DEFAULT_CHAT_INPUT_NAME,lt=((nt=this.getChatOutputDefinition())==null?void 0:nt.name)??DEFAULT_CHAT_OUTPUT_NAME;this.batchInputs$.next([{...ot[0],[it]:[...ot[0][it],{inputs:{[st]:_e.value.chatInput},outputs:{[lt]:_e.value.chatOutput}}].slice(-10)}]);break}case"flowGraph":{try{this.loaded=!1,reactDomExports.unstable_batchedUpdates(()=>{this.loadFlorGraph(_e.value)})}finally{this.loaded=!0}break}default:{const ot=_e;throw new Error(`Didn't expect to get here: ${ot}`)}}}getChatInputDefinition(){return this.inputSpec$.getSnapshot().find(isChatInput)}getChatHistoryDefinition(){const _e=this.flowType$.getSnapshot();return this.inputSpec$.getSnapshot().find(et=>isChatHistory(_e,et))}getChatOutputDefinition(){return this.flowOutputs$.getSnapshot().find(isChatOutput)}clearChatMessages(){this.chatMessages$.next([]),this.syncChatMessagesToInputsValues([])}getProviderByConnection(_e){var ot;if(!_e)return;const et=this.connectionList$.getSnapshot(),tt=this.promptToolSetting$.getSnapshot(),rt=et.find(it=>it.connectionName===_e);if(!rt)return;const nt=(ot=tt==null?void 0:tt.providers)==null?void 0:ot.find(it=>{var st;return rt.connectionType&&((st=it.connection_type)==null?void 0:st.includes(rt.connectionType))});if(nt)return nt.provider}addFlowInput(_e,et){this.inputSpec$.set(_e,{...et,name:_e,id:(et==null?void 0:et.id)??getRandomInputDefinitionId()})}addFlowOutput(_e,et){this.flowOutputs$.set(_e,{...et,name:_e,id:(et==null?void 0:et.id)??getRandomOutputDefinitionId()})}loadFlorGraph(_e){var nt;const et=(_e==null?void 0:_e.nodes)||[],tt=(_e==null?void 0:_e.outputs)||{},rt=(_e==null?void 0:_e.inputs)||{};this.nodeVariants$.clear(),et.forEach(ot=>{ot.name&&(this.nodeVariants$.get(ot.name)||this.nodeVariants$.set(ot.name,{defaultVariantId:BASELINE_VARIANT_ID,variants:{[BASELINE_VARIANT_ID]:{node:ot}}}))}),(nt=Object.entries((_e==null?void 0:_e.node_variants)??{}))==null||nt.forEach(([ot,it])=>{const st={...it.variants};Object.entries(st).forEach(([lt,ut])=>{ut.node&&(ut.node.name=ot)}),this.nodeVariants$.set(ot,{defaultVariantId:it.default_variant_id??BASELINE_VARIANT_ID,variants:st})}),this.flowOutputs$.clear(),Object.keys(tt).forEach(ot=>{const it=tt[ot];it&&this.addFlowOutput(ot,it)}),this.inputSpec$.clear(),Object.keys(rt).forEach(ot=>{const it=rt[ot];it&&this.addFlowInput(ot,it)})}loadFlowDto(_e){var et,tt,rt,nt,ot,it,st,lt,ut,ct,dt,ft,pt,gt;if(this.name$.next(_e.flowName??""),this.flowType$.next(_e.flowType??FlowType.Default),this.loadFlorGraph((et=_e.flow)==null?void 0:et.flowGraph),(tt=_e.flow)!=null&&tt.nodeVariants&&((nt=Object.entries(((rt=_e.flow)==null?void 0:rt.nodeVariants)??{}))==null||nt.forEach(([vt,bt])=>{this.nodeVariants$.set(vt,{...bt,defaultVariantId:bt.defaultVariantId??BASELINE_VARIANT_ID})})),(it=(ot=_e.flow)==null?void 0:ot.flowGraphLayout)!=null&&it.nodeLayouts){const vt=(st=_e.flow)==null?void 0:st.flowGraphLayout;this.flowGraphLayout$.next(vt),vt.orientation&&this.orientation$.next(vt.orientation)}if(this.selectedRuntimeName$.setState(((lt=_e.flowRunSettings)==null?void 0:lt.runtimeName)??""),this.batchInputs$.setState(((ut=_e.flowRunSettings)==null?void 0:ut.batch_inputs)??[{}]),this.tuningNodeNames$.setState(((ct=_e.flowRunSettings)==null?void 0:ct.tuningNodeNames)??[]),this.bulkRunDescription$.next(_e.description??""),this.bulkRunTags$.next([]),_e.tags){const vt=[];Object.keys(_e.tags).forEach(bt=>{var _t;vt.push({[bt]:((_t=_e==null?void 0:_e.tags)==null?void 0:_t[bt])??""})}),this.bulkRunTags$.next(vt)}this.initNodeParameterTypes((dt=_e.flow)==null?void 0:dt.flowGraph),_e.flowType===FlowType.Chat&&(this.initChatFlow(_e),this.initChatMessages(((ft=_e.flowRunSettings)==null?void 0:ft.batch_inputs)??[{}])),this.language$.next((gt=(pt=_e.flow)==null?void 0:pt.flowGraph)==null?void 0:gt.language)}initNodeParameterTypes(_e){if(!_e)return;const et=this.nodeVariants$.getSnapshot().toJSON();let tt=Map$1(new Map);Object.keys(et).forEach(rt=>{const nt=et[rt];Object.keys(nt.variants??{}).forEach(ot=>{var st;const it=(nt.variants??{})[ot];if(it.node){const lt={inputs:{},activate:{is:void 0}},ut=this.getToolOfNode(it.node);if((it.node.type??(ut==null?void 0:ut.type))===ToolType.python){const ct=Object.keys((ut==null?void 0:ut.inputs)??{});Object.keys(it.node.inputs??{}).filter(pt=>!ct.includes(pt)).forEach(pt=>{var gt,vt;lt.inputs[pt]=inferTypeByVal((vt=(gt=it.node)==null?void 0:gt.inputs)==null?void 0:vt[pt])??ValueType.string})}lt.activate.is=inferTypeByVal((st=it.node.activate)==null?void 0:st.is)??ValueType.string,tt=tt.set(`${rt}#${ot}`,lt)}})}),this.nodeParameterTypes$.next(tt)}initChatFlow(_e){if(_e.flowType!==FlowType.Chat)return;this.inputSpec$.getSnapshot().some(nt=>isChatHistory(_e.flowType,nt))||(this.addFlowInput(DEFAULT_CHAT_HISTORY_NAME,{name:DEFAULT_CHAT_HISTORY_NAME,type:ValueType.list}),this.batchInputs$.updateState(nt=>[{...nt[0],[DEFAULT_CHAT_HISTORY_NAME]:[]},...nt.slice(1)])),this.inputSpec$.getSnapshot().some(nt=>isChatInput(nt))||this.addFlowInput(DEFAULT_CHAT_INPUT_NAME,{name:DEFAULT_CHAT_INPUT_NAME,type:ValueType.string,is_chat_input:!0}),this.flowOutputs$.getSnapshot().some(nt=>isChatOutput(nt))||this.addFlowOutput(DEFAULT_CHAT_OUTPUT_NAME,{name:DEFAULT_CHAT_OUTPUT_NAME,type:ValueType.string,is_chat_output:!0})}initChatMessages(_e){var it,st,lt;const et=((it=this.getChatHistoryDefinition())==null?void 0:it.name)??DEFAULT_CHAT_HISTORY_NAME,tt=_e[0][et];if(!Array.isArray(tt))return;const rt=((st=this.getChatInputDefinition())==null?void 0:st.name)??DEFAULT_CHAT_INPUT_NAME,nt=((lt=this.getChatOutputDefinition())==null?void 0:lt.name)??DEFAULT_CHAT_OUTPUT_NAME,ot=parseChatMessages(rt,nt,tt);this.chatMessages$.next(ot),this.syncChatMessagesToInputsValues(ot)}syncChatMessagesToInputsValues(_e){var tt,rt,nt;if(this.batchInputs$.getSnapshot().length<=1){const ot=((tt=this.getChatInputDefinition())==null?void 0:tt.name)??DEFAULT_CHAT_INPUT_NAME,it=((rt=this.getChatOutputDefinition())==null?void 0:rt.name)??DEFAULT_CHAT_OUTPUT_NAME,st=((nt=this.getChatHistoryDefinition())==null?void 0:nt.name)??DEFAULT_CHAT_HISTORY_NAME,lt=[];for(let ut=0;ut<_e.length;++ut){for(;ut<_e.length&&_e[ut].from!==ChatMessageFrom.User;++ut);if(ut+1<_e.length){const ct=_e[ut],dt=_e[ut+1];if(dt.from===ChatMessageFrom.Chatbot&&!dt.error){ut+=1;const ft=dt.extraData;lt.push({inputs:{...ft.flowInputs,[ot]:ct.content},outputs:{...ft.flowOutputs,[it]:dt.content}})}}}this.batchInputs$.updateState(ut=>[{...ut[0],[st]:lt}])}}getNode(_e,et){var tt,rt,nt;return(nt=(rt=(tt=this.nodeVariants$.get(_e))==null?void 0:tt.variants)==null?void 0:rt[et])==null?void 0:nt.node}setNode(_e,et,tt){var nt;const rt=this.nodeVariants$.get(_e);this.nodeVariants$.set(_e,{defaultVariantId:(rt==null?void 0:rt.defaultVariantId)??BASELINE_VARIANT_ID,variants:{...rt==null?void 0:rt.variants,[et]:{...(nt=rt==null?void 0:rt.variants)==null?void 0:nt[et],node:tt}}})}getAllLlmParameterKeys(){var _e;if(this._allLlmParameterKeys.length===0){const et=this.promptToolSetting$.getSnapshot();if(!et)return[];const tt=(_e=et.providers)==null?void 0:_e.flatMap(nt=>{var ot;return(ot=nt.apis)==null?void 0:ot.map(it=>it.parameters)}),rt=new Set(tt==null?void 0:tt.flatMap(nt=>Object.keys(nt??{})));this._allLlmParameterKeys=[...rt.values()]}return this._allLlmParameterKeys}pruneNodeInputs(_e){var ct,dt,ft,pt;const et=_e?this.getToolOfNode(_e):void 0,tt=this.promptToolSetting$.getSnapshot(),rt=this.connectionList$.getSnapshot(),nt=this.connectionSpecList$.getSnapshot();if(!et||!tt)return _e;if((_e.type??et.type)===ToolType.python&&et.enable_kwargs){const gt={};return Object.keys(_e.inputs??{}).forEach(vt=>{var bt,_t,xt,yt;if(((bt=_e.inputs)==null?void 0:bt[vt])!==void 0){const Et=(_t=et.inputs)==null?void 0:_t[vt];gt[vt]=convertValByType((xt=_e.inputs)==null?void 0:xt[vt],(yt=Et==null?void 0:Et.type)==null?void 0:yt[0])}}),{..._e,inputs:gt}}const ot=this.getProviderByConnection(_e.connection??"");if((_e.type??et.type)===ToolType.llm&&(!ot||!_e.api))return _e;const it=(_e.type??et.type)===ToolType.llm,st=it?(pt=(ft=(dt=(ct=tt==null?void 0:tt.providers)==null?void 0:ct.find(gt=>gt.provider===ot))==null?void 0:dt.apis)==null?void 0:ft.find(gt=>gt.api===_e.api))==null?void 0:pt.parameters:void 0,lt=new Set(filterNodeInputsKeys(et.inputs,_e.inputs,rt,nt).concat(it?this.getAllLlmParameterKeys():[])),ut={};return Object.keys(_e.inputs??{}).forEach(gt=>{var vt,bt,_t,xt;if(lt.has(gt)&&((vt=_e.inputs)==null?void 0:vt[gt])!==void 0){const yt=((bt=et.inputs)==null?void 0:bt[gt])??(st==null?void 0:st[gt]);ut[gt]=convertValByType((_t=_e.inputs)==null?void 0:_t[gt],(xt=yt==null?void 0:yt.type)==null?void 0:xt[0])}}),{..._e,inputs:ut}}getToolOfNode(_e){var rt,nt;const et=this.codeToolsDictionary$.get(((rt=_e.source)==null?void 0:rt.path)??""),tt=this.packageToolsDictionary$.get(((nt=_e.source)==null?void 0:nt.tool)??"");return resolveTool(_e,et,tt,ot=>this.codeToolsDictionary$.get(ot))}validateNodeInputs(_e){const et=new Map,tt=this.getNodesInCycle(_e),rt=this.connectionList$.getSnapshot(),nt=this.connectionSpecList$.getSnapshot(),ot=[];return this.inputSpec$.getSnapshot().forEach((st,lt)=>{const ut=st.default,ct=st.type;if(ut!==void 0&&ut!==""&&!isTypeValid(ut,ct)){const dt={section:"inputs",parameterName:lt,type:ValidationErrorType.InputInvalidType,message:"Input type is not valid"};ot.push(dt)}}),ot.length>0&&et.set(`${FLOW_INPUT_NODE_NAME}#`,ot),Array.from(_e.values()).forEach(st=>{const{variants:lt={}}=st;Object.keys(lt).forEach(ut=>{var bt,_t,xt;const ct=lt[ut],{node:dt}=ct,ft=dt?this.getToolOfNode(dt):void 0,pt=filterNodeInputsKeys(ft==null?void 0:ft.inputs,dt==null?void 0:dt.inputs,rt,nt);if(!dt||!dt.name)return;if(!ft){const yt=dt;et.set(`${dt.name}#${ut}`,[{type:ValidationErrorType.MissingTool,message:`Can't find tool ${((bt=yt==null?void 0:yt.source)==null?void 0:bt.tool)??((_t=yt==null?void 0:yt.source)==null?void 0:_t.path)}`}]);return}const gt=[],vt=this.validateNodeConfig(dt,ft);if(vt&>.push(vt),pt.forEach(yt=>{const Et=this.validateNodeInputRequired(ft,dt,yt);Et&>.push(Et)}),dt.inputs&>.push(...Object.keys(dt.inputs).map(yt=>{if(!pt.includes(yt)&&!ft.enable_kwargs)return;const{isReference:Et,error:St}=this.validateNodeInputReference(dt,"inputs",yt,_e,tt);if(St)return St;if(!Et)return this.validateNodeInputType(ft,dt,ut,yt)}).filter(Boolean)),dt.activate){const{error:yt}=this.validateNodeInputReference(dt,"activate","when",_e,tt);yt&>.push(yt);const Et=dt.activate.is,St=(xt=this.nodeParameterTypes$.get(`${dt.name}#${ut}`))==null?void 0:xt.activate.is;if(!isTypeValid(Et,St)){const $t={section:"activate",parameterName:"is",type:ValidationErrorType.InputInvalidType,message:"Input type is not valid"};gt.push($t)}}et.set(`${dt.name}#${ut}`,gt)})}),et}getNodesInCycle(_e){const et=getDefaultNodeList(List$1.of(..._e.keys()),_e),tt=new Map;et.forEach(lt=>{var ct;const ut=(dt,ft,pt)=>{const gt=getRefValueFromRaw(pt),[vt]=(gt==null?void 0:gt.split("."))??[];!vt||isFlowInput(vt)||tt.set(`${lt.name}.${dt}.${ft}`,vt)};Object.keys((lt==null?void 0:lt.inputs)??{}).forEach(dt=>{var pt;const ft=(pt=lt.inputs)==null?void 0:pt[dt];ut("inputs",dt,ft)}),ut("activate","when",(ct=lt.activate)==null?void 0:ct.when)});const rt=new Map,nt=new Map,ot=new Map,it=new Map;return et.forEach(lt=>{const ut=lt.name;ut&&(rt.set(ut,0),nt.set(ut,0),ot.set(ut,[]),it.set(ut,[]))}),et.forEach(lt=>{const ut=lt.name;if(!ut)return;const ct=(dt,ft)=>{const pt=tt.get(`${ut}.${dt}.${ft}`);pt&&(rt.set(ut,(rt.get(ut)??0)+1),nt.set(pt,(nt.get(pt)??0)+1),ot.set(pt,[...ot.get(pt)??[],ut]),it.set(ut,[...it.get(ut)??[],pt]))};Object.keys((lt==null?void 0:lt.inputs)??{}).forEach(dt=>{ct("inputs",dt)}),ct("activate","when")}),getCycle(rt,ot,nt,it)}validateNodeConfig(_e,et){var rt,nt,ot,it,st,lt,ut;const tt=this.promptToolSetting$.getSnapshot();if((_e.type??(et==null?void 0:et.type))===ToolType.llm){if(!_e.connection)return{parameterName:"connection",type:ValidationErrorType.NodeConfigInvalid,message:"connection is required"};if(!this.connectionList$.getSnapshot().some(gt=>gt.connectionName===_e.connection))return{parameterName:"connection",type:ValidationErrorType.NodeConfigInvalid,message:"connection is not valid"};if(!_e.api)return{parameterName:"api",type:ValidationErrorType.NodeConfigInvalid,message:"api is required"};const ct=this.getProviderByConnection(_e.connection),dt=(it=(ot=(nt=(rt=tt==null?void 0:tt.providers)==null?void 0:rt.find(gt=>gt.provider===ct))==null?void 0:nt.apis)==null?void 0:ot.find(gt=>gt.api===_e.api))==null?void 0:it.parameters;if((dt==null?void 0:dt.model)&&!((st=_e.inputs)!=null&&st.model))return{parameterName:"model",type:ValidationErrorType.NodeConfigInvalid,message:"model is required"};if((dt==null?void 0:dt.deployment_name)&&!((lt=_e.inputs)!=null&<.deployment_name))return{parameterName:"deployment_name",type:ValidationErrorType.NodeConfigInvalid,message:"deployment_name is required"}}if(et&&((ut=et==null?void 0:et.connection_type)!=null&&ut.length)&&!_e.connection)return{parameterName:"connection",type:ValidationErrorType.NodeConfigInvalid,message:"connection is required"}}validateNodeInputRequired(_e,et,tt){var nt,ot,it;if(((ot=(nt=_e.inputs)==null?void 0:nt[tt])==null?void 0:ot.default)!==void 0)return;const rt=(it=et.inputs)==null?void 0:it[tt];if(rt===void 0||rt==="")return{section:"inputs",parameterName:tt,type:ValidationErrorType.InputEmpty,message:"Input cannot be empty"}}validateNodeInputReference(_e,et,tt,rt,nt){var ct;const ot=(ct=_e==null?void 0:_e[et])==null?void 0:ct[tt],it=getRefValueFromRaw(ot),[st,lt]=(it==null?void 0:it.split("."))??[];return st?isFlowInput(st)?this.inputSpec$.get(lt)?{isReference:!0,error:void 0}:{isReference:!0,error:{section:et,parameterName:tt,type:ValidationErrorType.InputDependencyNotFound,message:`${it} is not a valid flow input`}}:st===_e.name?{isReference:!0,error:{section:et,parameterName:tt,type:ValidationErrorType.InputSelfReference,message:"Input cannot reference itself"}}:rt.get(st)?_e.name&&nt.has(_e.name)&&nt.has(st)?{isReference:!0,error:{section:et,parameterName:tt,type:ValidationErrorType.CircularDependency,message:"Input cannot reference a node in a cycle"}}:{isReference:!0,error:void 0}:{isReference:!0,error:{section:et,parameterName:tt,type:ValidationErrorType.InputDependencyNotFound,message:`${st} is not a valid node name`}}:{isReference:!1,error:void 0}}validateNodeInputType(_e,et,tt,rt){var st,lt,ut,ct,dt;const nt=(st=et.inputs)==null?void 0:st[rt];if(!nt)return;const ot=(lt=_e==null?void 0:_e.inputs)==null?void 0:lt[rt],it=((ut=ot==null?void 0:ot.type)==null?void 0:ut[0])??((dt=(ct=this.nodeParameterTypes$.get(`${et.name}#${tt}`))==null?void 0:ct.inputs)==null?void 0:dt[rt]);if(!(!nt||!_e||!it)&&!isTypeValid(nt,it))return{section:"inputs",parameterName:rt,type:ValidationErrorType.InputInvalidType,message:"Input type is not valid"}}};_a$5=SINGLETON,Vp[_a$5]=!0;let BaseFlowViewModel=Vp;class DefaultFlowViewModel extends BaseFlowViewModel{constructor(){super(...arguments),this.viewType="default"}fetchConnectionList(){}fetchPromptToolSetting(){}openRunListView(){}deployFlow(){}setSelectedStepId(){}notifyFlowChange(){}notifyLayoutChange(){}notifyUIHintChange(){}}createInjectionToken("FlowViewModel",new DefaultFlowViewModel);function useInjected(...j){const _e=reactExports.useContext(ServicesContext);return reactExports.useMemo(()=>j.map(et=>{try{return _e.resolve(et)}catch(tt){throw[et,tt]}}),[_e].concat(j))}var shim$1={exports:{}},useSyncExternalStoreShim_production_min={};/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var e$3=reactExports;function h$8(j,_e){return j===_e&&(j!==0||1/j===1/_e)||j!==j&&_e!==_e}var k$7=typeof Object.is=="function"?Object.is:h$8,l$6=e$3.useState,m$8=e$3.useEffect,n$8=e$3.useLayoutEffect,p$7=e$3.useDebugValue;function q$6(j,_e){var et=_e(),tt=l$6({inst:{value:et,getSnapshot:_e}}),rt=tt[0].inst,nt=tt[1];return n$8(function(){rt.value=et,rt.getSnapshot=_e,r$8(rt)&&nt({inst:rt})},[j,et,_e]),m$8(function(){return r$8(rt)&&nt({inst:rt}),j(function(){r$8(rt)&&nt({inst:rt})})},[j]),p$7(et),et}function r$8(j){var _e=j.getSnapshot;j=j.value;try{var et=_e();return!k$7(j,et)}catch{return!0}}function t$7(j,_e){return _e()}var u$8=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?t$7:q$6;useSyncExternalStoreShim_production_min.useSyncExternalStore=e$3.useSyncExternalStore!==void 0?e$3.useSyncExternalStore:u$8;shim$1.exports=useSyncExternalStoreShim_production_min;var shimExports=shim$1.exports;const useSubscribe=j=>reactExports.useCallback(_e=>{const et=j.subscribe(_e);return()=>{et.unsubscribe()}},[j]);function useState(j){const _e=useSubscribe(j),{getSnapshot:et}=j;return shimExports.useSyncExternalStore(_e,et)}function useSetState(j){return reactExports.useCallback(_e=>{typeof _e!="function"?j.setState(_e):j.setState(_e(j.getSnapshot()))},[j])}of$1(void 0);var _a$4;const qp=class qp{constructor(_e,et){this.isChatBoxBottomTipVisible$=new State$1(_e.isChatBoxBottomTipVisible),this.simpleMode$=new State$1(_e.simpleMode),this.freezeLayout$=new State$1(_e.freezeLayout),this.viewMyOnlyFlow$=new State$1(_e.viewMyOnlyFlow),this.viewOnlyMyRuns$=new State$1(_e.viewOnlyMyRuns),this.viewArchived$=new State$1(_e.viewArchived),this.wrapTextOn$=new State$1(_e.wrapTextOn),this.diffModeOn$=new State$1(_e.diffModeOn),this.isRightTopPaneCollapsed$=new State$1(_e.isRightTopPaneCollapsed),this.isRightBottomPaneCollapsed$=new State$1(_e.isRightBottomPaneCollapsed),this.leftPaneWidth$=new State$1(_e.leftPaneWidth),this.rightTopPaneHeight$=new State$1(_e.rightTopPaneHeight);const tt=(rt,nt)=>{nt.subscribe(ot=>{et({...this.getSettingsSnapshot(),[rt]:ot})})};tt("isChatBoxBottomTipVisible",this.isChatBoxBottomTipVisible$),tt("simpleMode",this.simpleMode$),tt("freezeLayout",this.freezeLayout$),tt("viewMyOnlyFlow",this.viewMyOnlyFlow$),tt("viewOnlyMyRuns",this.viewOnlyMyRuns$),tt("viewArchived",this.viewArchived$),tt("wrapTextOn",this.wrapTextOn$),tt("diffModeOn",this.diffModeOn$),tt("isRightTopPaneCollapsed",this.isRightTopPaneCollapsed$),tt("isRightBottomPaneCollapsed",this.isRightBottomPaneCollapsed$),tt("leftPaneWidth",this.leftPaneWidth$),tt("rightTopPaneHeight",this.rightTopPaneHeight$)}getSettingsSnapshot(){return{isChatBoxBottomTipVisible:this.isChatBoxBottomTipVisible$.getSnapshot(),simpleMode:this.simpleMode$.getSnapshot(),freezeLayout:this.freezeLayout$.getSnapshot(),viewMyOnlyFlow:this.viewMyOnlyFlow$.getSnapshot(),viewOnlyMyRuns:this.viewOnlyMyRuns$.getSnapshot(),viewArchived:this.viewArchived$.getSnapshot(),wrapTextOn:this.wrapTextOn$.getSnapshot(),diffModeOn:this.diffModeOn$.getSnapshot(),isRightTopPaneCollapsed:this.isRightTopPaneCollapsed$.getSnapshot(),isRightBottomPaneCollapsed:this.isRightBottomPaneCollapsed$.getSnapshot(),leftPaneWidth:this.leftPaneWidth$.getSnapshot(),rightTopPaneHeight:this.rightTopPaneHeight$.getSnapshot()}}};_a$4=SINGLETON,qp[_a$4]=!0;let BaseFlowSettingViewModel=qp;class DefaultFlowSettingViewModel extends BaseFlowSettingViewModel{constructor(){super({isChatBoxBottomTipVisible:!0,simpleMode:!0,freezeLayout:!1,viewMyOnlyFlow:!1,viewOnlyMyRuns:!1,viewArchived:!0,wrapTextOn:!1,diffModeOn:!1,isRightTopPaneCollapsed:!0,isRightBottomPaneCollapsed:!1,leftPaneWidth:"66%",rightTopPaneHeight:360},()=>{})}}createInjectionToken("FlowSettingViewModel",new DefaultFlowSettingViewModel);makeStyles({root:{display:"flex",flexWrap:"nowrap"},item:{display:"inline-flex",alignItems:"center",marginRight:"8px",lineHeight:"14px"}});mergeStyleSets({line:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}});const isInVscodeWebview=typeof acquireVsCodeApi<"u";isInVscodeWebview&&acquireVsCodeApi();var _a$3;const Up=class Up{constructor(){this.extensionConfigurations$=new State$1(void 0),this.isPackageInstalled$=new State$1(void 0),this.sdkVersion$=new State$1(void 0),this.sdkFeatureList$=new State$1([]),this.isPackageUpgradeableForNewLlmTools$=new State$1(!1)}};_a$3=SINGLETON,Up[_a$3]=!0;let VSCodeExtensionViewModel=Up;createInjectionToken("VSCodeFlowViewModel",new VSCodeExtensionViewModel);React.createContext({variantName:BASELINE_VARIANT_ID,haveMultipleVariants:!1,showAllVariantsOutputs:!1,isDisableEditing:!1});function createCommonjsModule(j,_e,et){return et={path:_e,exports:{},require:function(tt,rt){return commonjsRequire(tt,rt??et.path)}},j(et,et.exports),et.exports}function commonjsRequire(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var classnames$3=createCommonjsModule(function(j){/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(){var _e={}.hasOwnProperty;function et(){for(var tt=[],rt=0;rt1&&arguments[1]!==void 0?arguments[1]:{},et=[];return React.Children.forEach(j,function(tt){tt==null&&!_e.keepEmpty||(Array.isArray(tt)?et=et.concat(toArray$1(tt)):reactIs.isFragment(tt)&&tt.props?et=et.concat(toArray$1(tt.props.children,_e)):et.push(tt))}),et}function _defineProperty$3$1(j,_e,et){return _e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function ownKeys$2$1(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread2$2(j){for(var _e=1;_e0},j.prototype.connect_=function(){!isBrowser$1||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),mutationObserverSupported?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},j.prototype.disconnect_=function(){!isBrowser$1||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},j.prototype.onTransitionEnd_=function(_e){var et=_e.propertyName,tt=et===void 0?"":et,rt=transitionKeys.some(function(nt){return!!~tt.indexOf(nt)});rt&&this.refresh()},j.getInstance=function(){return this.instance_||(this.instance_=new j),this.instance_},j.instance_=null,j}(),defineConfigurable=function(j,_e){for(var et=0,tt=Object.keys(_e);et"u"||!(Element instanceof Object))){if(!(_e instanceof getWindowOf(_e).Element))throw new TypeError('parameter 1 is not of type "Element".');var et=this.observations_;et.has(_e)||(et.set(_e,new ResizeObservation(_e)),this.controller_.addObserver(this),this.controller_.refresh())}},j.prototype.unobserve=function(_e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(_e instanceof getWindowOf(_e).Element))throw new TypeError('parameter 1 is not of type "Element".');var et=this.observations_;et.has(_e)&&(et.delete(_e),et.size||this.controller_.removeObserver(this))}},j.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},j.prototype.gatherActive=function(){var _e=this;this.clearActive(),this.observations_.forEach(function(et){et.isActive()&&_e.activeObservations_.push(et)})},j.prototype.broadcastActive=function(){if(this.hasActive()){var _e=this.callbackCtx_,et=this.activeObservations_.map(function(tt){return new ResizeObserverEntry(tt.target,tt.broadcastRect())});this.callback_.call(_e,et,_e),this.clearActive()}},j.prototype.clearActive=function(){this.activeObservations_.splice(0)},j.prototype.hasActive=function(){return this.activeObservations_.length>0},j}(),observers=typeof WeakMap<"u"?new WeakMap:new MapShim,ResizeObserver$1=function(){function j(_e){if(!(this instanceof j))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var et=ResizeObserverController.getInstance(),tt=new ResizeObserverSPI(_e,et,this);observers.set(this,tt)}return j}();["observe","unobserve","disconnect"].forEach(function(j){ResizeObserver$1.prototype[j]=function(){var _e;return(_e=observers.get(this))[j].apply(_e,arguments)}});var index$1=function(){return typeof global$1$1.ResizeObserver<"u"?global$1$1.ResizeObserver:ResizeObserver$1}(),elementListeners=new Map;function onResize(j){j.forEach(function(_e){var et,tt=_e.target;(et=elementListeners.get(tt))===null||et===void 0||et.forEach(function(rt){return rt(tt)})})}var resizeObserver=new index$1(onResize);function observe(j,_e){elementListeners.has(j)||(elementListeners.set(j,new Set),resizeObserver.observe(j)),elementListeners.get(j).add(_e)}function unobserve(j,_e){elementListeners.has(j)&&(elementListeners.get(j).delete(_e),elementListeners.get(j).size||(resizeObserver.unobserve(j),elementListeners.delete(j)))}function _classCallCheck$2$1(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$2$1(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,tt.key,tt)}}function _createClass$2$1(j,_e,et){return _e&&_defineProperties$2$1(j.prototype,_e),et&&_defineProperties$2$1(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _setPrototypeOf$1$1(j,_e){return _setPrototypeOf$1$1=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$1$1(j,_e)}function _inherits$1$1(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf$1$1(j,_e)}function _getPrototypeOf$1$1(j){return _getPrototypeOf$1$1=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$1$1(j)}function _isNativeReflectConstruct$1$1(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _typeof$3$1(j){"@babel/helpers - typeof";return _typeof$3$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$3$1(j)}function _assertThisInitialized$1$1(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _possibleConstructorReturn$1$1(j,_e){if(_e&&(_typeof$3$1(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$1$1(j)}function _createSuper$1$1(j){var _e=_isNativeReflectConstruct$1$1();return function(){var tt=_getPrototypeOf$1$1(j),rt;if(_e){var nt=_getPrototypeOf$1$1(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn$1$1(this,rt)}}var DomWrapper=function(j){_inherits$1$1(et,j);var _e=_createSuper$1$1(et);function et(){return _classCallCheck$2$1(this,et),_e.apply(this,arguments)}return _createClass$2$1(et,[{key:"render",value:function(){return this.props.children}}]),et}(reactExports.Component),CollectionContext=reactExports.createContext(null);function Collection(j){var _e=j.children,et=j.onBatchResize,tt=reactExports.useRef(0),rt=reactExports.useRef([]),nt=reactExports.useContext(CollectionContext),ot=reactExports.useCallback(function(it,st,lt){tt.current+=1;var ut=tt.current;rt.current.push({size:it,element:st,data:lt}),Promise.resolve().then(function(){ut===tt.current&&(et==null||et(rt.current),rt.current=[])}),nt==null||nt(it,st,lt)},[et,nt]);return reactExports.createElement(CollectionContext.Provider,{value:ot},_e)}function SingleObserver(j){var _e=j.children,et=j.disabled,tt=reactExports.useRef(null),rt=reactExports.useRef(null),nt=reactExports.useContext(CollectionContext),ot=typeof _e=="function",it=ot?_e(tt):_e,st=reactExports.useRef({width:-1,height:-1,offsetWidth:-1,offsetHeight:-1}),lt=!ot&&reactExports.isValidElement(it)&&supportRef(it),ut=lt?it.ref:null,ct=reactExports.useMemo(function(){return composeRef(ut,tt)},[ut,tt]),dt=reactExports.useRef(j);dt.current=j;var ft=reactExports.useCallback(function(pt){var gt=dt.current,vt=gt.onResize,bt=gt.data,_t=pt.getBoundingClientRect(),xt=_t.width,yt=_t.height,Et=pt.offsetWidth,St=pt.offsetHeight,$t=Math.floor(xt),At=Math.floor(yt);if(st.current.width!==$t||st.current.height!==At||st.current.offsetWidth!==Et||st.current.offsetHeight!==St){var wt={width:$t,height:At,offsetWidth:Et,offsetHeight:St};st.current=wt;var Ct=Et===Math.round(xt)?xt:Et,It=St===Math.round(yt)?yt:St,Ot=_objectSpread2$2(_objectSpread2$2({},wt),{},{offsetWidth:Ct,offsetHeight:It});nt==null||nt(Ot,pt,bt),vt&&Promise.resolve().then(function(){vt(Ot,pt)})}},[]);return reactExports.useEffect(function(){var pt=findDOMNode(tt.current)||findDOMNode(rt.current);return pt&&!et&&observe(pt,ft),function(){return unobserve(pt,ft)}},[tt.current,et]),reactExports.createElement(DomWrapper,{ref:rt},lt?reactExports.cloneElement(it,{ref:ct}):it)}var INTERNAL_PREFIX_KEY="rc-observer-key";function ResizeObserver$2(j){var _e=j.children,et=typeof _e=="function"?[_e]:toArray$1(_e);return et.map(function(tt,rt){var nt=(tt==null?void 0:tt.key)||"".concat(INTERNAL_PREFIX_KEY,"-").concat(rt);return reactExports.createElement(SingleObserver,_extends$1$2({},j,{key:nt}),tt)})}ResizeObserver$2.Collection=Collection;function ownKeys$1$1(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$1$1(j){for(var _e=1;_e1&&arguments[1]!==void 0?arguments[1]:1;rafUUID+=1;var et=rafUUID;function tt(rt){if(rt===0)cleanup(et),j();else{var nt=raf(function(){tt(rt-1)});rafIds.set(et,nt)}}return tt(_e),et}wrapperRaf.cancel=function(j){var _e=rafIds.get(j);return cleanup(_e),caf(_e)};function _typeof$2$1(j){"@babel/helpers - typeof";return _typeof$2$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$2$1(j)}function _defineProperty$1$1(j,_e,et){return _e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _classCallCheck$1$1(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$1$1(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,tt.key,tt)}}function _createClass$1$1(j,_e,et){return _e&&_defineProperties$1$1(j.prototype,_e),et&&_defineProperties$1$1(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits$b(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf$b(j,_e)}function _setPrototypeOf$b(j,_e){return _setPrototypeOf$b=Object.setPrototypeOf||function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$b(j,_e)}function _createSuper$b(j){var _e=_isNativeReflectConstruct$b();return function(){var tt=_getPrototypeOf$b(j),rt;if(_e){var nt=_getPrototypeOf$b(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn$b(this,rt)}}function _possibleConstructorReturn$b(j,_e){if(_e&&(_typeof$2$1(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$b(j)}function _assertThisInitialized$b(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$b(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$b(j){return _getPrototypeOf$b=Object.setPrototypeOf?Object.getPrototypeOf:function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$b(j)}var MIN_SIZE=20;function getPageY(j){return"touches"in j?j.touches[0].pageY:j.pageY}var ScrollBar=function(j){_inherits$b(et,j);var _e=_createSuper$b(et);function et(){var tt;_classCallCheck$1$1(this,et);for(var rt=arguments.length,nt=new Array(rt),ot=0;otst},tt}return _createClass$1$1(et,[{key:"componentDidMount",value:function(){this.scrollbarRef.current.addEventListener("touchstart",this.onScrollbarTouchStart),this.thumbRef.current.addEventListener("touchstart",this.onMouseDown)}},{key:"componentDidUpdate",value:function(rt){rt.scrollTop!==this.props.scrollTop&&this.delayHidden()}},{key:"componentWillUnmount",value:function(){this.removeEvents(),clearTimeout(this.visibleTimeout)}},{key:"render",value:function(){var rt=this.state,nt=rt.dragging,ot=rt.visible,it=this.props.prefixCls,st=this.getSpinHeight(),lt=this.getTop(),ut=this.showScroll(),ct=ut&&ot;return reactExports.createElement("div",{ref:this.scrollbarRef,className:classnames$3("".concat(it,"-scrollbar"),_defineProperty$1$1({},"".concat(it,"-scrollbar-show"),ut)),style:{width:8,top:0,bottom:0,right:0,position:"absolute",display:ct?null:"none"},onMouseDown:this.onContainerMouseDown,onMouseMove:this.delayHidden},reactExports.createElement("div",{ref:this.thumbRef,className:classnames$3("".concat(it,"-scrollbar-thumb"),_defineProperty$1$1({},"".concat(it,"-scrollbar-thumb-moving"),nt)),style:{width:"100%",height:st,top:lt,left:0,position:"absolute",background:"rgba(0, 0, 0, 0.5)",borderRadius:99,cursor:"pointer",userSelect:"none"},onMouseDown:this.onMouseDown}))}}]),et}(reactExports.Component);function Item(j){var _e=j.children,et=j.setRef,tt=reactExports.useCallback(function(rt){et(rt)},[]);return reactExports.cloneElement(_e,{ref:tt})}function useChildren(j,_e,et,tt,rt,nt){var ot=nt.getKey;return j.slice(_e,et+1).map(function(it,st){var lt=_e+st,ut=rt(it,lt,{}),ct=ot(it);return reactExports.createElement(Item,{key:ct,setRef:function(ft){return tt(it,ft)}},ut)})}function _classCallCheck$e(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$e(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,tt.key,tt)}}function _createClass$e(j,_e,et){return _e&&_defineProperties$e(j.prototype,_e),et&&_defineProperties$e(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}var CacheMap=function(){function j(){_classCallCheck$e(this,j),this.maps=void 0,this.maps=Object.create(null)}return _createClass$e(j,[{key:"set",value:function(et,tt){this.maps[et]=tt}},{key:"get",value:function(et){return this.maps[et]}}]),j}();function _slicedToArray$2$1(j,_e){return _arrayWithHoles$2$1(j)||_iterableToArrayLimit$2$1(j,_e)||_unsupportedIterableToArray$2$1(j,_e)||_nonIterableRest$2$1()}function _nonIterableRest$2$1(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$2$1(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$2$1(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$2$1(j,_e)}}function _arrayLikeToArray$2$1(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$2$1(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt=[],rt=!0,nt=!1,ot,it;try{for(et=et.call(j);!(rt=(ot=et.next()).done)&&(tt.push(ot.value),!(_e&&tt.length===_e));rt=!0);}catch(st){nt=!0,it=st}finally{try{!rt&&et.return!=null&&et.return()}finally{if(nt)throw it}}return tt}}function _arrayWithHoles$2$1(j){if(Array.isArray(j))return j}function useHeights(j,_e,et){var tt=reactExports.useState(0),rt=_slicedToArray$2$1(tt,2),nt=rt[0],ot=rt[1],it=reactExports.useRef(new Map),st=reactExports.useRef(new CacheMap),lt=reactExports.useRef();function ut(){wrapperRaf.cancel(lt.current)}function ct(){ut(),lt.current=wrapperRaf(function(){it.current.forEach(function(ft,pt){if(ft&&ft.offsetParent){var gt=findDOMNode(ft),vt=gt.offsetHeight;st.current.get(pt)!==vt&&st.current.set(pt,gt.offsetHeight)}}),ot(function(ft){return ft+1})})}function dt(ft,pt){var gt=j(ft),vt=it.current.get(gt);pt?(it.current.set(gt,pt),ct()):it.current.delete(gt),!vt!=!pt&&(pt?_e==null||_e(ft):et==null||et(ft))}return reactExports.useEffect(function(){return ut},[]),[dt,ct,st.current,nt]}function _typeof$1$1(j){"@babel/helpers - typeof";return _typeof$1$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$1$1(j)}function useScrollTo(j,_e,et,tt,rt,nt,ot,it){var st=reactExports.useRef();return function(lt){if(lt==null){it();return}if(wrapperRaf.cancel(st.current),typeof lt=="number")ot(lt);else if(lt&&_typeof$1$1(lt)==="object"){var ut,ct=lt.align;"index"in lt?ut=lt.index:ut=_e.findIndex(function(gt){return rt(gt)===lt.key});var dt=lt.offset,ft=dt===void 0?0:dt,pt=function gt(vt,bt){if(!(vt<0||!j.current)){var _t=j.current.clientHeight,xt=!1,yt=bt;if(_t){for(var Et=bt||ct,St=0,$t=0,At=0,wt=Math.min(_e.length,ut),Ct=0;Ct<=wt;Ct+=1){var It=rt(_e[Ct]);$t=St;var Ot=et.get(It);At=$t+(Ot===void 0?tt:Ot),St=At,Ct===ut&&Ot===void 0&&(xt=!0)}var Nt=null;switch(Et){case"top":Nt=$t-ft;break;case"bottom":Nt=At-_t+ft;break;default:{var Pt=j.current.scrollTop,Mt=Pt+_t;$tMt&&(yt="bottom")}}Nt!==null&&Nt!==j.current.scrollTop&&ot(Nt)}st.current=wrapperRaf(function(){xt&&nt(),gt(vt-1,yt)})}};pt(3)}}}function findListDiffIndex(j,_e,et){var tt=j.length,rt=_e.length,nt,ot;if(tt===0&&rt===0)return null;ttj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$1$1(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt=[],rt=!0,nt=!1,ot,it;try{for(et=et.call(j);!(rt=(ot=et.next()).done)&&(tt.push(ot.value),!(_e&&tt.length===_e));rt=!0);}catch(st){nt=!0,it=st}finally{try{!rt&&et.return!=null&&et.return()}finally{if(nt)throw it}}return tt}}function _arrayWithHoles$1$1(j){if(Array.isArray(j))return j}function useDiffItem(j,_e,et){var tt=reactExports.useState(j),rt=_slicedToArray$1$1(tt,2),nt=rt[0],ot=rt[1],it=reactExports.useState(null),st=_slicedToArray$1$1(it,2),lt=st[0],ut=st[1];return reactExports.useEffect(function(){var ct=findListDiffIndex(nt||[],j||[],_e);(ct==null?void 0:ct.index)!==void 0&&(et==null||et(ct.index),ut(j[ct.index])),ot(j)},[j]),[lt]}function _typeof$E(j){"@babel/helpers - typeof";return _typeof$E=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$E(j)}var isFF=(typeof navigator>"u"?"undefined":_typeof$E(navigator))==="object"&&/Firefox/i.test(navigator.userAgent),useOriginScroll=function(j,_e){var et=reactExports.useRef(!1),tt=reactExports.useRef(null);function rt(){clearTimeout(tt.current),et.current=!0,tt.current=setTimeout(function(){et.current=!1},50)}var nt=reactExports.useRef({top:j,bottom:_e});return nt.current.top=j,nt.current.bottom=_e,function(ot){var it=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,st=ot<0&&nt.current.top||ot>0&&nt.current.bottom;return it&&st?(clearTimeout(tt.current),et.current=!1):(!st||et.current)&&rt(),!et.current&&st}};function useFrameWheel(j,_e,et,tt){var rt=reactExports.useRef(0),nt=reactExports.useRef(null),ot=reactExports.useRef(null),it=reactExports.useRef(!1),st=useOriginScroll(_e,et);function lt(ct){if(j){wrapperRaf.cancel(nt.current);var dt=ct.deltaY;rt.current+=dt,ot.current=dt,!st(dt)&&(isFF||ct.preventDefault(),nt.current=wrapperRaf(function(){var ft=it.current?10:1;tt(rt.current*ft),rt.current=0}))}}function ut(ct){j&&(it.current=ct.detail===ot.current)}return[lt,ut]}function canUseDom(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var useLayoutEffect$1=canUseDom()?reactExports.useLayoutEffect:reactExports.useEffect,SMOOTH_PTG=14/15;function useMobileTouchMove(j,_e,et){var tt=reactExports.useRef(!1),rt=reactExports.useRef(0),nt=reactExports.useRef(null),ot=reactExports.useRef(null),it,st=function(dt){if(tt.current){var ft=Math.ceil(dt.touches[0].pageY),pt=rt.current-ft;rt.current=ft,et(pt)&&dt.preventDefault(),clearInterval(ot.current),ot.current=setInterval(function(){pt*=SMOOTH_PTG,(!et(pt,!0)||Math.abs(pt)<=.1)&&clearInterval(ot.current)},16)}},lt=function(){tt.current=!1,it()},ut=function(dt){it(),dt.touches.length===1&&!tt.current&&(tt.current=!0,rt.current=Math.ceil(dt.touches[0].pageY),nt.current=dt.target,nt.current.addEventListener("touchmove",st),nt.current.addEventListener("touchend",lt))};it=function(){nt.current&&(nt.current.removeEventListener("touchmove",st),nt.current.removeEventListener("touchend",lt))},useLayoutEffect$1(function(){return j&&_e.current.addEventListener("touchstart",ut),function(){var ct;(ct=_e.current)===null||ct===void 0||ct.removeEventListener("touchstart",ut),it(),clearInterval(ot.current)}},[j])}var _excluded$g=["prefixCls","className","height","itemHeight","fullHeight","style","data","children","itemKey","virtual","component","onScroll","onVisibleChange"];function _extends$p(){return _extends$p=Object.assign||function(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$e(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt=[],rt=!0,nt=!1,ot,it;try{for(et=et.call(j);!(rt=(ot=et.next()).done)&&(tt.push(ot.value),!(_e&&tt.length===_e));rt=!0);}catch(st){nt=!0,it=st}finally{try{!rt&&et.return!=null&&et.return()}finally{if(nt)throw it}}return tt}}function _arrayWithHoles$f(j){if(Array.isArray(j))return j}function _objectWithoutProperties$h(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$h(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$h(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var EMPTY_DATA=[],ScrollStyle={overflowY:"auto",overflowAnchor:"none"};function RawList(j,_e){var et=j.prefixCls,tt=et===void 0?"rc-virtual-list":et,rt=j.className,nt=j.height,ot=j.itemHeight,it=j.fullHeight,st=it===void 0?!0:it,lt=j.style,ut=j.data,ct=j.children,dt=j.itemKey,ft=j.virtual,pt=j.component,gt=pt===void 0?"div":pt,vt=j.onScroll,bt=j.onVisibleChange,_t=_objectWithoutProperties$h(j,_excluded$g),xt=!!(ft!==!1&&nt&&ot),yt=xt&&ut&&ot*ut.length>nt,Et=reactExports.useState(0),St=_slicedToArray$e(Et,2),$t=St[0],At=St[1],wt=reactExports.useState(!1),Ct=_slicedToArray$e(wt,2),It=Ct[0],Ot=Ct[1],Nt=classnames$3(tt,rt),Pt=ut||EMPTY_DATA,Mt=reactExports.useRef(),Rt=reactExports.useRef(),Lt=reactExports.useRef(),jt=reactExports.useCallback(function(Cr){return typeof dt=="function"?dt(Cr):Cr==null?void 0:Cr[dt]},[dt]),Gt={getKey:jt};function Vt(Cr){At(function(Lr){var Xr;typeof Cr=="function"?Xr=Cr(Lr):Xr=Cr;var qr=Vr(Xr);return Mt.current.scrollTop=qr,qr})}var Yt=reactExports.useRef({start:0,end:Pt.length}),Xt=reactExports.useRef(),rr=useDiffItem(Pt,jt),cr=_slicedToArray$e(rr,1),vr=cr[0];Xt.current=vr;var Tr=useHeights(jt,null,null),gr=_slicedToArray$e(Tr,4),Er=gr[0],qt=gr[1],ir=gr[2],hr=gr[3],nr=reactExports.useMemo(function(){if(!xt)return{scrollHeight:void 0,start:0,end:Pt.length-1,offset:void 0};if(!yt){var Cr;return{scrollHeight:((Cr=Rt.current)===null||Cr===void 0?void 0:Cr.offsetHeight)||0,start:0,end:Pt.length-1,offset:void 0}}for(var Lr=0,Xr,qr,Qr,xn=Pt.length,wn=0;wn=$t&&Xr===void 0&&(Xr=wn,qr=Lr),En>$t+nt&&Qr===void 0&&(Qr=wn),Lr=En}return Xr===void 0&&(Xr=0,qr=0),Qr===void 0&&(Qr=Pt.length-1),Qr=Math.min(Qr+1,Pt.length),{scrollHeight:Lr,start:Xr,end:Qr,offset:qr}},[yt,xt,$t,Pt,hr,nt]),mr=nr.scrollHeight,Ar=nr.start,Or=nr.end,wr=nr.offset;Yt.current.start=Ar,Yt.current.end=Or;var Nr=mr-nt,Wr=reactExports.useRef(Nr);Wr.current=Nr;function Vr(Cr){var Lr=Cr;return Number.isNaN(Wr.current)||(Lr=Math.min(Lr,Wr.current)),Lr=Math.max(Lr,0),Lr}var Jr=$t<=0,Yr=$t>=Nr,jr=useOriginScroll(Jr,Yr);function Hr(Cr){var Lr=Cr;Vt(Lr)}function hn(Cr){var Lr=Cr.currentTarget.scrollTop;Lr!==$t&&Vt(Lr),vt==null||vt(Cr)}var pr=useFrameWheel(xt,Jr,Yr,function(Cr){Vt(function(Lr){var Xr=Lr+Cr;return Xr})}),sr=_slicedToArray$e(pr,2),Jt=sr[0],ur=sr[1];useMobileTouchMove(xt,Mt,function(Cr,Lr){return jr(Cr,Lr)?!1:(Jt({preventDefault:function(){},deltaY:Cr}),!0)}),useLayoutEffect$1(function(){function Cr(Lr){xt&&Lr.preventDefault()}return Mt.current.addEventListener("wheel",Jt),Mt.current.addEventListener("DOMMouseScroll",ur),Mt.current.addEventListener("MozMousePixelScroll",Cr),function(){Mt.current&&(Mt.current.removeEventListener("wheel",Jt),Mt.current.removeEventListener("DOMMouseScroll",ur),Mt.current.removeEventListener("MozMousePixelScroll",Cr))}},[xt]);var br=useScrollTo(Mt,Pt,ir,ot,jt,qt,Vt,function(){var Cr;(Cr=Lt.current)===null||Cr===void 0||Cr.delayHidden()});reactExports.useImperativeHandle(_e,function(){return{scrollTo:br}}),useLayoutEffect$1(function(){if(bt){var Cr=Pt.slice(Ar,Or+1);bt(Cr,Pt)}},[Ar,Or,Pt]);var Sr=useChildren(Pt,Ar,Or,Er,ct,Gt),yr=null;return nt&&(yr=_objectSpread$z(_defineProperty$D({},st?"height":"maxHeight",nt),ScrollStyle),xt&&(yr.overflowY="hidden",It&&(yr.pointerEvents="none"))),reactExports.createElement("div",_extends$p({style:_objectSpread$z(_objectSpread$z({},lt),{},{position:"relative"}),className:Nt},_t),reactExports.createElement(gt,{className:"".concat(tt,"-holder"),style:yr,ref:Mt,onScroll:hn},reactExports.createElement(Filler,{prefixCls:tt,height:mr,offset:wr,onInnerResize:qt,ref:Rt},Sr)),xt&&reactExports.createElement(ScrollBar,{ref:Lt,prefixCls:tt,scrollTop:$t,height:nt,scrollHeight:mr,count:Pt.length,onScroll:Hr,onStartMove:function(){Ot(!0)},onStopMove:function(){Ot(!1)}}))}var List=reactExports.forwardRef(RawList);List.displayName="List";var arrDel=function(j,_e){var et=j.slice(),tt=et.indexOf(_e);return tt>=0&&et.splice(tt,1),et},arrAdd=function(j,_e){var et=j.slice();return et.indexOf(_e)===-1&&et.push(_e),et},ROOT_NODE_ID="$root",Node$1=function(){function j(_e){var et=this,tt,rt,nt,ot=_e.node,it=_e.flattenNodes,st=_e.parent,lt=_e.selectedKeySet,ut=lt===void 0?new Set:lt,ct=_e.expandedKeySet,dt=ct===void 0?new Set:ct,ft=_e.loadInfo,pt=ft===void 0?{loadingKeys:[],loadedKeys:[]}:ft;this.internal=ot,this.parent=st,this.level=((rt=(tt=this.parent)===null||tt===void 0?void 0:tt.level)!==null&&rt!==void 0?rt:-1)+1,this.selected=ut.has(ot.id),this.expanded=dt.has(ot.id)||ot.id===ROOT_NODE_ID,this.ancestorExpanded=!!(st!=null&&st.expanded&&(st!=null&&st.ancestorExpanded))||ot.id===ROOT_NODE_ID,this.loading=pt.loadingKeys.includes(ot.id),this.loaded=pt.loadedKeys.includes(ot.id),this.isLeaf=(nt=ot.isLeaf)!==null&&nt!==void 0?nt:!(ot.children.length>0),j.nodesMap.set(ot.id,this),this.level>0&&this.ancestorExpanded&&it.push(this),this.childNodes=ot.children.map(function(gt){return new j({node:gt,parent:et,selectedKeySet:ut,expandedKeySet:dt,loadInfo:pt,flattenNodes:it})})}return Object.defineProperty(j.prototype,"id",{get:function(){return this.internal.id},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"title",{get:function(){return this.internal.title},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"children",{get:function(){return this.childNodes},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"searchKeys",{get:function(){return this.internal.searchKeys},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"isTag",{get:function(){return this.internal.isTag},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"ariaLabel",{get:function(){return this.internal.ariaLabel},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"extra",{get:function(){return this.internal.extra},enumerable:!1,configurable:!0}),j.init=function(_e,et,tt,rt){et===void 0&&(et=[]),tt===void 0&&(tt=[]),j.nodesMap=new Map;var nt=[];return j.root=new j({node:{title:"",children:_e,searchKeys:[],id:ROOT_NODE_ID},selectedKeySet:new Set(et),expandedKeySet:new Set(tt),loadInfo:rt,flattenNodes:nt}),nt},j.nodesMap=new Map,j}();/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */var __assign$2=function(){return __assign$2=Object.assign||function(_e){for(var et,tt=1,rt=arguments.length;tt"u"?InjectionMode.none:InjectionMode.insertNode,defaultPrefix:"css",namespace:void 0,cspSettings:void 0},_e),this._classNameToArgs=(tt=et==null?void 0:et.classNameToArgs)!==null&&tt!==void 0?tt:this._classNameToArgs,this._counter=(rt=et==null?void 0:et.counter)!==null&&rt!==void 0?rt:this._counter,this._keyToClassName=(ot=(nt=this._config.classNameCache)!==null&&nt!==void 0?nt:et==null?void 0:et.keyToClassName)!==null&&ot!==void 0?ot:this._keyToClassName,this._preservedRules=(it=et==null?void 0:et.preservedRules)!==null&&it!==void 0?it:this._preservedRules,this._rules=(st=et==null?void 0:et.rules)!==null&&st!==void 0?st:this._rules}return j.getInstance=function(){if(_stylesheet=_global[STYLESHEET_SETTING],!_stylesheet||_stylesheet._lastStyleElement&&_stylesheet._lastStyleElement.ownerDocument!==document){var _e=(_global==null?void 0:_global.FabricConfig)||{},et=new j(_e.mergeStyles,_e.serializedStylesheet);_stylesheet=et,_global[STYLESHEET_SETTING]=et}return _stylesheet},j.prototype.serialize=function(){return JSON.stringify({classNameToArgs:this._classNameToArgs,counter:this._counter,keyToClassName:this._keyToClassName,preservedRules:this._preservedRules,rules:this._rules})},j.prototype.setConfig=function(_e){this._config=__assign$2(__assign$2({},this._config),_e)},j.prototype.onReset=function(_e){var et=this;return this._onResetCallbacks.push(_e),function(){et._onResetCallbacks=et._onResetCallbacks.filter(function(tt){return tt!==_e})}},j.prototype.onInsertRule=function(_e){var et=this;return this._onInsertRuleCallbacks.push(_e),function(){et._onInsertRuleCallbacks=et._onInsertRuleCallbacks.filter(function(tt){return tt!==_e})}},j.prototype.getClassName=function(_e){var et=this._config.namespace,tt=_e||this._config.defaultPrefix;return(et?et+"-":"")+tt+"-"+this._counter++},j.prototype.cacheClassName=function(_e,et,tt,rt){this._keyToClassName[et]=_e,this._classNameToArgs[_e]={args:tt,rules:rt}},j.prototype.classNameFromKey=function(_e){return this._keyToClassName[_e]},j.prototype.getClassNameCache=function(){return this._keyToClassName},j.prototype.argsFromClassName=function(_e){var et=this._classNameToArgs[_e];return et&&et.args},j.prototype.insertedRulesFromClassName=function(_e){var et=this._classNameToArgs[_e];return et&&et.rules},j.prototype.insertRule=function(_e,et){var tt=this._config.injectionMode,rt=tt!==InjectionMode.none?this._getStyleElement():void 0;if(et&&this._preservedRules.push(_e),rt)switch(tt){case InjectionMode.insertNode:var nt=rt.sheet;try{nt.insertRule(_e,nt.cssRules.length)}catch{}break;case InjectionMode.appendChild:rt.appendChild(document.createTextNode(_e));break}else this._rules.push(_e);this._config.onInsertRule&&this._config.onInsertRule(_e),this._onInsertRuleCallbacks.forEach(function(ot){return ot()})},j.prototype.getRules=function(_e){return(_e?this._preservedRules.join(""):"")+this._rules.join("")},j.prototype.reset=function(){this._rules=[],this._counter=0,this._classNameToArgs={},this._keyToClassName={},this._onResetCallbacks.forEach(function(_e){return _e()})},j.prototype.resetKeys=function(){this._keyToClassName={}},j.prototype._getStyleElement=function(){var _e=this;return!this._styleElement&&typeof document<"u"&&(this._styleElement=this._createStyleElement(),REUSE_STYLE_NODE||window.requestAnimationFrame(function(){_e._styleElement=void 0})),this._styleElement},j.prototype._createStyleElement=function(){var _e=document.head,et=document.createElement("style"),tt=null;et.setAttribute("data-merge-styles","true");var rt=this._config.cspSettings;if(rt&&rt.nonce&&et.setAttribute("nonce",rt.nonce),this._lastStyleElement)tt=this._lastStyleElement.nextElementSibling;else{var nt=this._findPlaceholderStyleTag();nt?tt=nt.nextElementSibling:tt=_e.childNodes[0]}return _e.insertBefore(et,_e.contains(tt)?tt:null),this._lastStyleElement=et,et},j.prototype._findPlaceholderStyleTag=function(){var _e=document.head;return _e?_e.querySelector("style[data-merge-styles]"):null},j}();function extractStyleParts(){for(var j=[],_e=0;_e=0)nt(lt.split(" "));else{var ut=rt.argsFromClassName(lt);ut?nt(ut):et.indexOf(lt)===-1&&et.push(lt)}else Array.isArray(lt)?nt(lt):typeof lt=="object"&&tt.push(lt)}}return nt(j),{classes:et,objects:tt}}function getRTL(){return _rtl===void 0&&(_rtl=typeof document<"u"&&!!document.documentElement&&document.documentElement.getAttribute("dir")==="rtl"),_rtl}var _rtl;_rtl=getRTL();function getStyleOptions(){return{rtl:getRTL()}}var rules={};function kebabRules(j,_e){var et=j[_e];et.charAt(0)!=="-"&&(j[_e]=rules[et]=rules[et]||et.replace(/([A-Z])/g,"-$1").toLowerCase())}var _vendorSettings;function getVendorSettings(){var j;if(!_vendorSettings){var _e=typeof document<"u"?document:void 0,et=typeof navigator<"u"?navigator:void 0,tt=(j=et==null?void 0:et.userAgent)===null||j===void 0?void 0:j.toLowerCase();_e?_vendorSettings={isWebkit:!!(_e&&"WebkitAppearance"in _e.documentElement.style),isMoz:!!(tt&&tt.indexOf("firefox")>-1),isOpera:!!(tt&&tt.indexOf("opera")>-1),isMs:!!(et&&(/rv:11.0/i.test(et.userAgent)||/Edge\/\d./i.test(navigator.userAgent)))}:_vendorSettings={isWebkit:!0,isMoz:!0,isOpera:!0,isMs:!0}}return _vendorSettings}var autoPrefixNames={"user-select":1};function prefixRules(j,_e){var et=getVendorSettings(),tt=j[_e];if(autoPrefixNames[tt]){var rt=j[_e+1];autoPrefixNames[tt]&&(et.isWebkit&&j.push("-webkit-"+tt,rt),et.isMoz&&j.push("-moz-"+tt,rt),et.isMs&&j.push("-ms-"+tt,rt),et.isOpera&&j.push("-o-"+tt,rt))}}var NON_PIXEL_NUMBER_PROPS=["column-count","font-weight","flex","flex-grow","flex-shrink","fill-opacity","opacity","order","z-index","zoom"];function provideUnits(j,_e){var et=j[_e],tt=j[_e+1];if(typeof tt=="number"){var rt=NON_PIXEL_NUMBER_PROPS.indexOf(et)>-1,nt=et.indexOf("--")>-1,ot=rt||nt?"":"px";j[_e+1]=""+tt+ot}}var _a$2,LEFT="left",RIGHT="right",NO_FLIP="@noflip",NAME_REPLACEMENTS=(_a$2={},_a$2[LEFT]=RIGHT,_a$2[RIGHT]=LEFT,_a$2),VALUE_REPLACEMENTS={"w-resize":"e-resize","sw-resize":"se-resize","nw-resize":"ne-resize"};function rtlifyRules(j,_e,et){if(j.rtl){var tt=_e[et];if(!tt)return;var rt=_e[et+1];if(typeof rt=="string"&&rt.indexOf(NO_FLIP)>=0)_e[et+1]=rt.replace(/\s*(?:\/\*\s*)?\@noflip\b(?:\s*\*\/)?\s*?/g,"");else if(tt.indexOf(LEFT)>=0)_e[et]=tt.replace(LEFT,RIGHT);else if(tt.indexOf(RIGHT)>=0)_e[et]=tt.replace(RIGHT,LEFT);else if(String(rt).indexOf(LEFT)>=0)_e[et+1]=rt.replace(LEFT,RIGHT);else if(String(rt).indexOf(RIGHT)>=0)_e[et+1]=rt.replace(RIGHT,LEFT);else if(NAME_REPLACEMENTS[tt])_e[et]=NAME_REPLACEMENTS[tt];else if(VALUE_REPLACEMENTS[rt])_e[et+1]=VALUE_REPLACEMENTS[rt];else switch(tt){case"margin":case"padding":_e[et+1]=flipQuad(rt);break;case"box-shadow":_e[et+1]=negateNum(rt,0);break}}}function negateNum(j,_e){var et=j.split(" "),tt=parseInt(et[_e],10);return et[0]=et[0].replace(String(tt),String(tt*-1)),et.join(" ")}function flipQuad(j){if(typeof j=="string"){var _e=j.split(" ");if(_e.length===4)return _e[0]+" "+_e[3]+" "+_e[2]+" "+_e[1]}return j}function tokenizeWithParentheses(j){for(var _e=[],et=0,tt=0,rt=0;rtet&&_e.push(j.substring(et,rt)),et=rt+1);break}return et-1&&_e.push([tt.index,tt.index+tt[0].length,tt[1].split(",").map(function(rt){return":global("+rt.trim()+")"}).join(", ")]);return _e.reverse().reduce(function(rt,nt){var ot=nt[0],it=nt[1],st=nt[2],lt=rt.slice(0,ot),ut=rt.slice(it);return lt+st+ut},j)}function expandSelector(j,_e){return j.indexOf(":global(")>=0?j.replace(globalSelectorRegExp,"$1"):j.indexOf(":")===0?_e+j:j.indexOf("&")<0?_e+" "+j:j}function extractSelector(j,_e,et,tt){_e===void 0&&(_e={__order:[]}),et.indexOf("@")===0?(et=et+"{"+j,extractRules([tt],_e,et)):et.indexOf(",")>-1?expandCommaSeparatedGlobals(et).split(",").map(function(rt){return rt.trim()}).forEach(function(rt){return extractRules([tt],_e,expandSelector(rt,j))}):extractRules([tt],_e,expandSelector(et,j))}function extractRules(j,_e,et){_e===void 0&&(_e={__order:[]}),et===void 0&&(et="&");var tt=Stylesheet.getInstance(),rt=_e[et];rt||(rt={},_e[et]=rt,_e.__order.push(et));for(var nt=0,ot=j;nt"u")){var tt=document.head||document.getElementsByTagName("head")[0],rt=document.createElement("style");rt.type="text/css",et==="top"&&tt.firstChild?tt.insertBefore(rt,tt.firstChild):tt.appendChild(rt),rt.styleSheet?rt.styleSheet.cssText=j:rt.appendChild(document.createTextNode(j))}}var css_248z=".root_ce9fd48c{margin:0;padding:0}.item_34141342{list-style:none}.content_6abc12be{display:flex;align-items:center}.content_6abc12be:hover{cursor:pointer;background-color:#f3f2f1}.icon_aaa0d589{border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid #8a8886;margin:0 11px 0 3px}.expanded_6233c4e1{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #8a8886;margin:3px 8px 0 0}.leaf_f2922997{border:6px solid transparent;margin:0 8px 0 0}.group_7e2ac704,.inner_683a43d6{padding:0;margin:0}",classes$3={root:"root_ce9fd48c",item:"item_34141342",content:"content_6abc12be",icon:"icon_aaa0d589",expanded:"expanded_6233c4e1",leaf:"leaf_f2922997",group:"group_7e2ac704",inner:"inner_683a43d6"};styleInject(css_248z);var mergeTreeClasses=function(j){return{root:mergeStyles(classes$3.root,j==null?void 0:j.root)}},mergeTreeNodeClasses=function(j,_e){var et,tt,rt;return{item:mergeStyles(classes$3.item,_e==null?void 0:_e.item),icon:mergeStyles(classes$3.icon,j.expanded&&classes$3.expanded,j.isLeaf&&classes$3.leaf),group:mergeStyles(classes$3.group,_e==null?void 0:_e.group),inner:mergeStyles(classes$3.inner,_e==null?void 0:_e.inner),content:mergeStyles(classes$3.content,(et=_e==null?void 0:_e.content)===null||et===void 0?void 0:et.base,j.expanded&&((tt=_e==null?void 0:_e.content)===null||tt===void 0?void 0:tt.expand),j.isLeaf&&((rt=_e==null?void 0:_e.content)===null||rt===void 0?void 0:rt.leaf))}},TreeNode$1=reactExports.forwardRef(function(j,_e){var et,tt,rt,nt,ot,it,st,lt,ut=j.node,ct=j.classes,dt=j.indent,ft=j.calcIndent,pt=j.onNodeClick,gt=j.renderIcon,vt=j.renderContent,bt=j.renderInnerContent,_t=!ut.isLeaf&&ut.expanded,xt=mergeTreeNodeClasses(ut,ct),yt=ft?ft(ut):{item:(ut.level-1)*((et=dt==null?void 0:dt.item)!==null&&et!==void 0?et:20)+((tt=dt==null?void 0:dt.root)!==null&&tt!==void 0?tt:0),innerItem:ut.level*((rt=dt==null?void 0:dt.item)!==null&&rt!==void 0?rt:20)+((nt=dt==null?void 0:dt.root)!==null&&nt!==void 0?nt:0)},Et=reactExports.useCallback(function(St){St.preventDefault(),St.stopPropagation()},[]);return reactExports.createElement("div",{key:ut.id,role:"treeitem","aria-selected":ut.selected,"aria-expanded":ut.expanded,tabIndex:-1,className:xt.item,onClick:pt.bind(null,ut),"data-item-id":ut.id,ref:_e},reactExports.createElement("div",{className:xt.content,style:{paddingLeft:(ot=yt.item)!==null&&ot!==void 0?ot:20}},(it=gt==null?void 0:gt(ut))!==null&&it!==void 0?it:reactExports.createElement("span",{className:xt.icon}),(st=vt==null?void 0:vt(ut))!==null&&st!==void 0?st:reactExports.createElement("span",{role:"button"},ut.title)),_t&&reactExports.createElement(reactExports.Fragment,null,bt&&reactExports.createElement("div",{role:"group",key:"innerContent",className:xt.inner,style:{paddingLeft:(lt=yt.innerItem)!==null&<!==void 0?lt:40},onClick:Et},bt(ut))))});TreeNode$1.displayName="TreeNode";var ReactAccessibleTree=reactExports.forwardRef(function(j,_e){var et=j.selectedKeys,tt=et===void 0?[]:et,rt=j.expandedKeys,nt=rt===void 0?[]:rt,ot=j.treeData,it=j.classes,st=j.indent,lt=j.height,ut=j.itemHeight,ct=j.virtual,dt=j.calcIndent,ft=j.onKeyDown,pt=j.renderIcon,gt=j.renderContent,vt=j.renderInnerContent,bt=j.onSelect,_t=j.multiple,xt=j.onExpand,yt=j.loadData,Et=reactExports.useState({loadedKeys:[],loadingKeys:[]}),St=Et[0],$t=Et[1],At=reactExports.useRef(null),wt=reactExports.useRef(null),Ct=reactExports.useMemo(function(){return Node$1.init(ot,tt,nt,St)},[ot,tt,nt,St]);reactExports.useImperativeHandle(_e,function(){return{scrollTo:function(Vt){var Yt;(Yt=wt.current)===null||Yt===void 0||Yt.scrollTo(Vt)}}}),reactExports.useEffect(function(){Pt(0)},[]);var It=function(Vt,Yt){var Xt=tt,rr=Yt.id,cr=!Yt.selected;cr?_t?Xt=arrAdd(Xt,rr):Xt=[rr]:Xt=arrDel(Xt,rr),bt==null||bt(Xt,{node:Yt,selected:cr,nativeEvent:Vt})},Ot=function(Vt,Yt){var Xt=nt,rr=Yt.id,cr=!Yt.expanded;cr?Xt=arrAdd(Xt,rr):Xt=arrDel(Xt,rr),xt==null||xt(Xt,{node:Yt,expanded:cr,nativeEvent:Vt}),cr&&yt&&Nt(Yt)},Nt=function(Vt){$t(function(Yt){var Xt=Yt.loadedKeys,rr=Yt.loadingKeys,cr=Vt.id;if(!yt||Xt.includes(cr)||rr.includes(cr))return St;var vr=yt(Vt);return vr.then(function(){var Tr=St.loadedKeys,gr=St.loadingKeys,Er=arrAdd(Tr,cr),qt=arrDel(gr,cr);$t({loadedKeys:Er,loadingKeys:qt})}),{loadedKeys:Xt,loadingKeys:arrAdd(rr,cr)}})},Pt=function(Vt){var Yt,Xt,rr=Array.from((Xt=(Yt=At.current)===null||Yt===void 0?void 0:Yt.querySelectorAll("div[role='treeitem']"))!==null&&Xt!==void 0?Xt:[]);rr.forEach(function(cr,vr){vr===Vt?cr.setAttribute("tabindex","0"):cr.setAttribute("tabindex","-1")})},Mt=function(Vt){var Yt,Xt,rr;Vt.stopPropagation();var cr=Vt.target;if(cr.getAttribute("role")!=="treeitem"||Vt.ctrlKey||Vt.metaKey)return-1;var vr=Array.from((Xt=(Yt=At.current)===null||Yt===void 0?void 0:Yt.querySelectorAll("div[role='treeitem']"))!==null&&Xt!==void 0?Xt:[]),Tr=vr.indexOf(cr),gr=Vt.keyCode>=65&&Vt.keyCode<=90;if(gr){var Er=-1,qt=vr.findIndex(function(nr,mr){var Ar=nr.getAttribute("data-item-id"),Or=Node$1.nodesMap.get(Ar??""),wr=Or==null?void 0:Or.searchKeys.some(function(Nr){return Nr.match(new RegExp("^"+Vt.key,"i"))});return wr&&mr>Tr?!0:(wr&&mr<=Tr&&(Er=Er===-1?mr:Er),!1)}),ir=qt===-1?Er:qt;return(rr=vr[ir])===null||rr===void 0||rr.focus(),ir}switch(Vt.key){case"ArrowDown":{var hr=(Tr+1)%vr.length;return vr[hr].focus(),hr}case"ArrowUp":{var hr=(Tr-1+vr.length)%vr.length;return vr[hr].focus(),hr}case"ArrowLeft":case"ArrowRight":return cr.click(),Tr;case"Home":return vr[0].focus(),0;case"End":return vr[vr.length-1].focus(),vr.length-1;default:return ft==null||ft(Vt),Tr}},Rt=function(Vt){var Yt=Mt(Vt);Yt>-1&&Pt(Yt)},Lt=function(Vt,Yt){Yt.stopPropagation(),It(Yt,Vt),!(Vt.loading||Vt.loaded&&Vt.isLeaf)&&Ot(Yt,Vt)},jt=mergeTreeClasses(it),Gt=function(Vt){return Vt.id};return reactExports.createElement("div",{role:"tree",className:jt.root,onKeyDown:Rt,ref:At},reactExports.createElement(List,{data:Ct,itemKey:Gt,height:lt,fullHeight:!1,virtual:ct,itemHeight:ut,ref:wt},function(Vt){return reactExports.createElement(TreeNode$1,{key:Vt.id,node:Vt,classes:it,indent:st,calcIndent:dt,renderIcon:pt,renderContent:gt,renderInnerContent:vt,onNodeClick:Lt})}))});ReactAccessibleTree.displayName="ReactAccessibleTree";var __extends$1=function(){var j=function(_e,et){return j=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(tt,rt){tt.__proto__=rt}||function(tt,rt){for(var nt in rt)Object.prototype.hasOwnProperty.call(rt,nt)&&(tt[nt]=rt[nt])},j(_e,et)};return function(_e,et){j(_e,et);function tt(){this.constructor=_e}_e.prototype=et===null?Object.create(et):(tt.prototype=et.prototype,new tt)}}(),__assign$1=function(){return __assign$1=Object.assign||function(j){for(var _e,et=1,tt=arguments.length;et"u"?void 0:Number(tt),maxHeight:typeof rt>"u"?void 0:Number(rt),minWidth:typeof nt>"u"?void 0:Number(nt),minHeight:typeof ot>"u"?void 0:Number(ot)}},definedProps=["as","style","className","grid","snap","bounds","boundsByDirection","size","defaultSize","minWidth","minHeight","maxWidth","maxHeight","lockAspectRatio","lockAspectRatioExtraWidth","lockAspectRatioExtraHeight","enable","handleStyles","handleClasses","handleWrapperStyle","handleWrapperClass","children","onResizeStart","onResize","onResizeStop","handleComponent","scale","resizeRatio","snapGap"],baseClassName="__resizable_base__",Resizable=function(j){__extends(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt.ratio=1,tt.resizable=null,tt.parentLeft=0,tt.parentTop=0,tt.resizableLeft=0,tt.resizableRight=0,tt.resizableTop=0,tt.resizableBottom=0,tt.targetLeft=0,tt.targetTop=0,tt.appendBase=function(){if(!tt.resizable||!tt.window)return null;var rt=tt.parentNode;if(!rt)return null;var nt=tt.window.document.createElement("div");return nt.style.width="100%",nt.style.height="100%",nt.style.position="absolute",nt.style.transform="scale(0, 0)",nt.style.left="0",nt.style.flex="0 0 100%",nt.classList?nt.classList.add(baseClassName):nt.className+=baseClassName,rt.appendChild(nt),nt},tt.removeBase=function(rt){var nt=tt.parentNode;nt&&nt.removeChild(rt)},tt.ref=function(rt){rt&&(tt.resizable=rt)},tt.state={isResizing:!1,width:typeof(tt.propsSize&&tt.propsSize.width)>"u"?"auto":tt.propsSize&&tt.propsSize.width,height:typeof(tt.propsSize&&tt.propsSize.height)>"u"?"auto":tt.propsSize&&tt.propsSize.height,direction:"right",original:{x:0,y:0,width:0,height:0},backgroundStyle:{height:"100%",width:"100%",backgroundColor:"rgba(0,0,0,0)",cursor:"auto",opacity:0,position:"fixed",zIndex:9999,top:"0",left:"0",bottom:"0",right:"0"},flexBasis:void 0},tt.onResizeStart=tt.onResizeStart.bind(tt),tt.onMouseMove=tt.onMouseMove.bind(tt),tt.onMouseUp=tt.onMouseUp.bind(tt),tt}return Object.defineProperty(_e.prototype,"parentNode",{get:function(){return this.resizable?this.resizable.parentNode:null},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"window",{get:function(){return!this.resizable||!this.resizable.ownerDocument?null:this.resizable.ownerDocument.defaultView},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"propsSize",{get:function(){return this.props.size||this.props.defaultSize||DEFAULT_SIZE},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"size",{get:function(){var et=0,tt=0;if(this.resizable&&this.window){var rt=this.resizable.offsetWidth,nt=this.resizable.offsetHeight,ot=this.resizable.style.position;ot!=="relative"&&(this.resizable.style.position="relative"),et=this.resizable.style.width!=="auto"?this.resizable.offsetWidth:rt,tt=this.resizable.style.height!=="auto"?this.resizable.offsetHeight:nt,this.resizable.style.position=ot}return{width:et,height:tt}},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"sizeStyle",{get:function(){var et=this,tt=this.props.size,rt=function(it){if(typeof et.state[it]>"u"||et.state[it]==="auto")return"auto";if(et.propsSize&&et.propsSize[it]&&et.propsSize[it].toString().endsWith("%")){if(et.state[it].toString().endsWith("%"))return et.state[it].toString();var st=et.getParentSize(),lt=Number(et.state[it].toString().replace("px","")),ut=lt/st[it]*100;return ut+"%"}return getStringSize$1(et.state[it])},nt=tt&&typeof tt.width<"u"&&!this.state.isResizing?getStringSize$1(tt.width):rt("width"),ot=tt&&typeof tt.height<"u"&&!this.state.isResizing?getStringSize$1(tt.height):rt("height");return{width:nt,height:ot}},enumerable:!1,configurable:!0}),_e.prototype.getParentSize=function(){if(!this.parentNode)return this.window?{width:this.window.innerWidth,height:this.window.innerHeight}:{width:0,height:0};var et=this.appendBase();if(!et)return{width:0,height:0};var tt=!1,rt=this.parentNode.style.flexWrap;rt!=="wrap"&&(tt=!0,this.parentNode.style.flexWrap="wrap"),et.style.position="relative",et.style.minWidth="100%",et.style.minHeight="100%";var nt={width:et.offsetWidth,height:et.offsetHeight};return tt&&(this.parentNode.style.flexWrap=rt),this.removeBase(et),nt},_e.prototype.bindEvents=function(){this.window&&(this.window.addEventListener("mouseup",this.onMouseUp),this.window.addEventListener("mousemove",this.onMouseMove),this.window.addEventListener("mouseleave",this.onMouseUp),this.window.addEventListener("touchmove",this.onMouseMove,{capture:!0,passive:!1}),this.window.addEventListener("touchend",this.onMouseUp))},_e.prototype.unbindEvents=function(){this.window&&(this.window.removeEventListener("mouseup",this.onMouseUp),this.window.removeEventListener("mousemove",this.onMouseMove),this.window.removeEventListener("mouseleave",this.onMouseUp),this.window.removeEventListener("touchmove",this.onMouseMove,!0),this.window.removeEventListener("touchend",this.onMouseUp))},_e.prototype.componentDidMount=function(){if(!(!this.resizable||!this.window)){var et=this.window.getComputedStyle(this.resizable);this.setState({width:this.state.width||this.size.width,height:this.state.height||this.size.height,flexBasis:et.flexBasis!=="auto"?et.flexBasis:void 0})}},_e.prototype.componentWillUnmount=function(){this.window&&this.unbindEvents()},_e.prototype.createSizeForCssProperty=function(et,tt){var rt=this.propsSize&&this.propsSize[tt];return this.state[tt]==="auto"&&this.state.original[tt]===et&&(typeof rt>"u"||rt==="auto")?"auto":et},_e.prototype.calculateNewMaxFromBoundary=function(et,tt){var rt=this.props.boundsByDirection,nt=this.state.direction,ot=rt&&hasDirection("left",nt),it=rt&&hasDirection("top",nt),st,lt;if(this.props.bounds==="parent"){var ut=this.parentNode;ut&&(st=ot?this.resizableRight-this.parentLeft:ut.offsetWidth+(this.parentLeft-this.resizableLeft),lt=it?this.resizableBottom-this.parentTop:ut.offsetHeight+(this.parentTop-this.resizableTop))}else this.props.bounds==="window"?this.window&&(st=ot?this.resizableRight:this.window.innerWidth-this.resizableLeft,lt=it?this.resizableBottom:this.window.innerHeight-this.resizableTop):this.props.bounds&&(st=ot?this.resizableRight-this.targetLeft:this.props.bounds.offsetWidth+(this.targetLeft-this.resizableLeft),lt=it?this.resizableBottom-this.targetTop:this.props.bounds.offsetHeight+(this.targetTop-this.resizableTop));return st&&Number.isFinite(st)&&(et=et&&et"u"?10:nt.width,ct=typeof rt.width>"u"||rt.width<0?et:rt.width,dt=typeof nt.height>"u"?10:nt.height,ft=typeof rt.height>"u"||rt.height<0?tt:rt.height,pt=st||0,gt=lt||0;if(it){var vt=(dt-pt)*this.ratio+gt,bt=(ft-pt)*this.ratio+gt,_t=(ut-gt)/this.ratio+pt,xt=(ct-gt)/this.ratio+pt,yt=Math.max(ut,vt),Et=Math.min(ct,bt),St=Math.max(dt,_t),$t=Math.min(ft,xt);et=clamp(et,yt,Et),tt=clamp(tt,St,$t)}else et=clamp(et,ut,ct),tt=clamp(tt,dt,ft);return{newWidth:et,newHeight:tt}},_e.prototype.setBoundingClientRect=function(){if(this.props.bounds==="parent"){var et=this.parentNode;if(et){var tt=et.getBoundingClientRect();this.parentLeft=tt.left,this.parentTop=tt.top}}if(this.props.bounds&&typeof this.props.bounds!="string"){var rt=this.props.bounds.getBoundingClientRect();this.targetLeft=rt.left,this.targetTop=rt.top}if(this.resizable){var nt=this.resizable.getBoundingClientRect(),ot=nt.left,it=nt.top,st=nt.right,lt=nt.bottom;this.resizableLeft=ot,this.resizableRight=st,this.resizableTop=it,this.resizableBottom=lt}},_e.prototype.onResizeStart=function(et,tt){if(!(!this.resizable||!this.window)){var rt=0,nt=0;if(et.nativeEvent&&isMouseEvent(et.nativeEvent)?(rt=et.nativeEvent.clientX,nt=et.nativeEvent.clientY):et.nativeEvent&&isTouchEvent(et.nativeEvent)&&(rt=et.nativeEvent.touches[0].clientX,nt=et.nativeEvent.touches[0].clientY),this.props.onResizeStart&&this.resizable){var ot=this.props.onResizeStart(et,tt,this.resizable);if(ot===!1)return}this.props.size&&(typeof this.props.size.height<"u"&&this.props.size.height!==this.state.height&&this.setState({height:this.props.size.height}),typeof this.props.size.width<"u"&&this.props.size.width!==this.state.width&&this.setState({width:this.props.size.width})),this.ratio=typeof this.props.lockAspectRatio=="number"?this.props.lockAspectRatio:this.size.width/this.size.height;var it,st=this.window.getComputedStyle(this.resizable);if(st.flexBasis!=="auto"){var lt=this.parentNode;if(lt){var ut=this.window.getComputedStyle(lt).flexDirection;this.flexDir=ut.startsWith("row")?"row":"column",it=st.flexBasis}}this.setBoundingClientRect(),this.bindEvents();var ct={original:{x:rt,y:nt,width:this.size.width,height:this.size.height},isResizing:!0,backgroundStyle:__assign(__assign({},this.state.backgroundStyle),{cursor:this.window.getComputedStyle(et.target).cursor||"auto"}),direction:tt,flexBasis:it};this.setState(ct)}},_e.prototype.onMouseMove=function(et){var tt=this;if(!(!this.state.isResizing||!this.resizable||!this.window)){if(this.window.TouchEvent&&isTouchEvent(et))try{et.preventDefault(),et.stopPropagation()}catch{}var rt=this.props,nt=rt.maxWidth,ot=rt.maxHeight,it=rt.minWidth,st=rt.minHeight,lt=isTouchEvent(et)?et.touches[0].clientX:et.clientX,ut=isTouchEvent(et)?et.touches[0].clientY:et.clientY,ct=this.state,dt=ct.direction,ft=ct.original,pt=ct.width,gt=ct.height,vt=this.getParentSize(),bt=calculateNewMax(vt,this.window.innerWidth,this.window.innerHeight,nt,ot,it,st);nt=bt.maxWidth,ot=bt.maxHeight,it=bt.minWidth,st=bt.minHeight;var _t=this.calculateNewSizeFromDirection(lt,ut),xt=_t.newHeight,yt=_t.newWidth,Et=this.calculateNewMaxFromBoundary(nt,ot);this.props.snap&&this.props.snap.x&&(yt=findClosestSnap(yt,this.props.snap.x,this.props.snapGap)),this.props.snap&&this.props.snap.y&&(xt=findClosestSnap(xt,this.props.snap.y,this.props.snapGap));var St=this.calculateNewSizeFromAspectRatio(yt,xt,{width:Et.maxWidth,height:Et.maxHeight},{width:it,height:st});if(yt=St.newWidth,xt=St.newHeight,this.props.grid){var $t=snap(yt,this.props.grid[0]),At=snap(xt,this.props.grid[1]),wt=this.props.snapGap||0;yt=wt===0||Math.abs($t-yt)<=wt?$t:yt,xt=wt===0||Math.abs(At-xt)<=wt?At:xt}var Ct={width:yt-ft.width,height:xt-ft.height};if(pt&&typeof pt=="string"){if(pt.endsWith("%")){var It=yt/vt.width*100;yt=It+"%"}else if(pt.endsWith("vw")){var Ot=yt/this.window.innerWidth*100;yt=Ot+"vw"}else if(pt.endsWith("vh")){var Nt=yt/this.window.innerHeight*100;yt=Nt+"vh"}}if(gt&&typeof gt=="string"){if(gt.endsWith("%")){var It=xt/vt.height*100;xt=It+"%"}else if(gt.endsWith("vw")){var Ot=xt/this.window.innerWidth*100;xt=Ot+"vw"}else if(gt.endsWith("vh")){var Nt=xt/this.window.innerHeight*100;xt=Nt+"vh"}}var Pt={width:this.createSizeForCssProperty(yt,"width"),height:this.createSizeForCssProperty(xt,"height")};this.flexDir==="row"?Pt.flexBasis=Pt.width:this.flexDir==="column"&&(Pt.flexBasis=Pt.height),reactDomExports.flushSync(function(){tt.setState(Pt)}),this.props.onResize&&this.props.onResize(et,dt,this.resizable,Ct)}},_e.prototype.onMouseUp=function(et){var tt=this.state,rt=tt.isResizing,nt=tt.direction,ot=tt.original;if(!(!rt||!this.resizable)){var it={width:this.size.width-ot.width,height:this.size.height-ot.height};this.props.onResizeStop&&this.props.onResizeStop(et,nt,this.resizable,it),this.props.size&&this.setState(this.props.size),this.unbindEvents(),this.setState({isResizing:!1,backgroundStyle:__assign(__assign({},this.state.backgroundStyle),{cursor:"auto"})})}},_e.prototype.updateSize=function(et){this.setState({width:et.width,height:et.height})},_e.prototype.renderResizer=function(){var et=this,tt=this.props,rt=tt.enable,nt=tt.handleStyles,ot=tt.handleClasses,it=tt.handleWrapperStyle,st=tt.handleWrapperClass,lt=tt.handleComponent;if(!rt)return null;var ut=Object.keys(rt).map(function(ct){return rt[ct]!==!1?reactExports.createElement(Resizer,{key:ct,direction:ct,onResizeStart:et.onResizeStart,replaceStyles:nt&&nt[ct],className:ot&&ot[ct]},lt&<[ct]?lt[ct]:null):null});return reactExports.createElement("div",{className:st,style:it},ut)},_e.prototype.render=function(){var et=this,tt=Object.keys(this.props).reduce(function(ot,it){return definedProps.indexOf(it)!==-1||(ot[it]=et.props[it]),ot},{}),rt=__assign(__assign(__assign({position:"relative",userSelect:this.state.isResizing?"none":"auto"},this.props.style),this.sizeStyle),{maxWidth:this.props.maxWidth,maxHeight:this.props.maxHeight,minWidth:this.props.minWidth,minHeight:this.props.minHeight,boxSizing:"border-box",flexShrink:0});this.state.flexBasis&&(rt.flexBasis=this.state.flexBasis);var nt=this.props.as||"div";return reactExports.createElement(nt,__assign({ref:this.ref,style:rt,className:this.props.className},tt),this.state.isResizing&&reactExports.createElement("div",{style:this.state.backgroundStyle}),this.props.children,this.renderResizer())},_e.defaultProps={as:"div",onResizeStart:function(){},onResize:function(){},onResizeStop:function(){},enable:{top:!0,right:!0,bottom:!0,left:!0,topRight:!0,bottomRight:!0,bottomLeft:!0,topLeft:!0},style:{},grid:[1,1],lockAspectRatio:!1,lockAspectRatioExtraWidth:0,lockAspectRatioExtraHeight:0,scale:1,resizeRatio:1,snapGap:0},_e}(reactExports.PureComponent),_a$1;const tasksToTaskRows=(j,_e)=>j.map(et=>({...et,level:_e,children:et.children?tasksToTaskRows(et.children,_e+1):void 0})),Yp=class Yp{constructor(){this.rows$=new State$1(List$1([])),this.selectedRowId$=new State$1(void 0),this.startTime=Number.MAX_SAFE_INTEGER,this.endTime=0}toggleRow(_e){const et=this.rows$.getSnapshot(),tt=et.findIndex(it=>it.id===_e),rt=et.get(tt);if(!rt)return;const{children:nt}=rt;if(!nt)return;const ot=[...et];ot[tt]={...rt,isExpanded:!rt.isExpanded},rt.isExpanded?ot.splice(tt+1,nt.length):ot.splice(tt+1,0,...nt),this.rows$.next(List$1(ot))}setRows(_e){this.rows$.next(List$1(_e))}setTasks(_e){this.startTime=Number.MAX_SAFE_INTEGER,this.endTime=0,this.rows$.next(List$1(tasksToTaskRows(_e,0)));const et=tt=>{tt.forEach(rt=>{rt.startTimethis.endTime&&(this.endTime=rt.endTime),rt.children&&et(rt.children)})};et(_e)}};_a$1=SINGLETON,Yp[_a$1]=!0;let GanttViewModel=Yp;const GanttViewModelToken=createInjectionToken("GanttViewModel",new GanttViewModel);function r$6(j){var _e,et,tt="";if(typeof j=="string"||typeof j=="number")tt+=j;else if(typeof j=="object")if(Array.isArray(j))for(_e=0;_e1&&(!j.frozen||j.idx+tt-1<=_e))return tt}function stopPropagation(j){j.stopPropagation()}function scrollIntoView(j){j==null||j.scrollIntoView({inline:"nearest",block:"nearest"})}function createCellEvent(j){let _e=!1;const et={...j,preventGridDefault(){_e=!0},isGridDefaultPrevented(){return _e}};return Object.setPrototypeOf(et,Object.getPrototypeOf(j)),et}const nonInputKeys=new Set(["Unidentified","Alt","AltGraph","CapsLock","Control","Fn","FnLock","Meta","NumLock","ScrollLock","Shift","Tab","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Home","PageDown","PageUp","Insert","ContextMenu","Escape","Pause","Play","PrintScreen","F1","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]);function isCtrlKeyHeldDown(j){return(j.ctrlKey||j.metaKey)&&j.key!=="Control"}function isDefaultCellInput(j){return!nonInputKeys.has(j.key)}function onEditorNavigation({key:j,target:_e}){var et;return j==="Tab"&&(_e instanceof HTMLInputElement||_e instanceof HTMLTextAreaElement||_e instanceof HTMLSelectElement)?((et=_e.closest(".rdg-editor-container"))==null?void 0:et.querySelectorAll("input, textarea, select").length)===1:!1}const measuringCellClassname="m1l09lto7-0-0-beta-39";function renderMeasuringCells(j){return j.map(({key:_e,idx:et,minWidth:tt,maxWidth:rt})=>jsxRuntimeExports.jsx("div",{className:measuringCellClassname,style:{gridColumnStart:et+1,minWidth:tt,maxWidth:rt},"data-measuring-cell-key":_e},_e))}function isSelectedCellEditable({selectedPosition:j,columns:_e,rows:et}){const tt=_e[j.idx],rt=et[j.rowIdx];return isCellEditable(tt,rt)}function isCellEditable(j,_e){return j.renderEditCell!=null&&(typeof j.editable=="function"?j.editable(_e):j.editable)!==!1}function getSelectedCellColSpan({rows:j,topSummaryRows:_e,bottomSummaryRows:et,rowIdx:tt,mainHeaderRowIdx:rt,lastFrozenColumnIndex:nt,column:ot}){const it=(_e==null?void 0:_e.length)??0;if(tt===rt)return getColSpan(ot,nt,{type:"HEADER"});if(_e&&tt>rt&&tt<=it+rt)return getColSpan(ot,nt,{type:"SUMMARY",row:_e[tt+it]});if(tt>=0&&tt{for(const $t of rt){const At=$t.idx;if(At>vt)break;const wt=getSelectedCellColSpan({rows:nt,topSummaryRows:ot,bottomSummaryRows:it,rowIdx:bt,mainHeaderRowIdx:lt,lastFrozenColumnIndex:pt,column:$t});if(wt&&vt>At&&vtSt.level+lt,Et=()=>{if(_e){let $t=tt[vt].parent;for(;$t!==void 0;){const At=yt($t);if(bt===At){vt=$t.idx+$t.colSpan;break}$t=$t.parent}}else if(j){let $t=tt[vt].parent,At=!1;for(;$t!==void 0;){const wt=yt($t);if(bt>=wt){vt=$t.idx,bt=wt,At=!0;break}$t=$t.parent}At||(vt=ct,bt=dt)}};if(gt(ft)&&(xt(_e),bt=At&&(bt=wt,vt=$t.idx),$t=$t.parent}}return{idx:vt,rowIdx:bt}}function canExitGrid({maxColIdx:j,minRowIdx:_e,maxRowIdx:et,selectedPosition:{rowIdx:tt,idx:rt},shiftKey:nt}){return nt?rt===0&&tt===_e:rt===j&&tt===et}const cell="c1wupbe7-0-0-beta-39",cellClassname=`rdg-cell ${cell}`,cellFrozen="cd0kgiy7-0-0-beta-39",cellFrozenClassname=`rdg-cell-frozen ${cellFrozen}`,cellFrozenLast="c1730fa47-0-0-beta-39",cellFrozenLastClassname=`rdg-cell-frozen-last ${cellFrozenLast}`;function getRowStyle(j,_e){return _e!==void 0?{"--rdg-grid-row-start":j,"--rdg-row-height":`${_e}px`}:{"--rdg-grid-row-start":j}}function getHeaderCellStyle(j,_e,et){const tt=_e+1,rt=`calc(${et-1} * var(--rdg-header-row-height))`;return j.parent===void 0?{insetBlockStart:0,gridRowStart:1,gridRowEnd:tt,paddingBlockStart:rt}:{insetBlockStart:`calc(${_e-et} * var(--rdg-header-row-height))`,gridRowStart:tt-et,gridRowEnd:tt,paddingBlockStart:rt}}function getCellStyle(j,_e=1){const et=j.idx+1;return{gridColumnStart:et,gridColumnEnd:et+_e,insetInlineStart:j.frozen?`var(--rdg-frozen-left-${j.idx})`:void 0}}function getCellClassname(j,..._e){return clsx(cellClassname,..._e,j.frozen&&cellFrozenClassname,j.isLastFrozenColumn&&cellFrozenLastClassname)}const{min:min$7,max:max$6,round:round$1,floor:floor$3,sign:sign$5,abs:abs$1}=Math;function assertIsValidKeyGetter(j){if(typeof j!="function")throw new Error("Please specify the rowKeyGetter prop to use selection")}function clampColumnWidth(j,{minWidth:_e,maxWidth:et}){return j=max$6(j,_e),typeof et=="number"&&et>=_e?min$7(j,et):j}function getHeaderCellRowSpan(j,_e){return j.parent===void 0?_e:j.level-j.parent.level}const checkboxLabel="c1hs68w07-0-0-beta-39",checkboxLabelClassname=`rdg-checkbox-label ${checkboxLabel}`,checkboxInput="cojpd0n7-0-0-beta-39",checkboxInputClassname=`rdg-checkbox-input ${checkboxInput}`,checkbox="cwsfieb7-0-0-beta-39",checkboxClassname=`rdg-checkbox ${checkbox}`,checkboxLabelDisabled="c1fgadbl7-0-0-beta-39",checkboxLabelDisabledClassname=`rdg-checkbox-label-disabled ${checkboxLabelDisabled}`;function renderCheckbox({onChange:j,..._e}){function et(tt){j(tt.target.checked,tt.nativeEvent.shiftKey)}return jsxRuntimeExports.jsxs("label",{className:clsx(checkboxLabelClassname,_e.disabled&&checkboxLabelDisabledClassname),children:[jsxRuntimeExports.jsx("input",{type:"checkbox",..._e,className:checkboxInputClassname,onChange:et}),jsxRuntimeExports.jsx("div",{className:checkboxClassname})]})}function renderValue(j){try{return j.row[j.column.key]}catch{return null}}const DataGridDefaultRenderersContext=reactExports.createContext(void 0),DataGridDefaultRenderersProvider=DataGridDefaultRenderersContext.Provider;function useDefaultRenderers(){return reactExports.useContext(DataGridDefaultRenderersContext)}const RowSelectionContext=reactExports.createContext(void 0),RowSelectionProvider=RowSelectionContext.Provider,RowSelectionChangeContext=reactExports.createContext(void 0),RowSelectionChangeProvider=RowSelectionChangeContext.Provider,SELECT_COLUMN_KEY="select-row",DEFAULT_COLUMN_WIDTH="auto",DEFAULT_COLUMN_MIN_WIDTH=50;function useCalculatedColumns({rawColumns:j,defaultColumnOptions:_e,measuredColumnWidths:et,resizedColumnWidths:tt,viewportWidth:rt,scrollLeft:nt,enableVirtualization:ot}){const it=(_e==null?void 0:_e.width)??DEFAULT_COLUMN_WIDTH,st=(_e==null?void 0:_e.minWidth)??DEFAULT_COLUMN_MIN_WIDTH,lt=(_e==null?void 0:_e.maxWidth)??void 0,ut=(_e==null?void 0:_e.renderCell)??renderValue,ct=(_e==null?void 0:_e.sortable)??!1,dt=(_e==null?void 0:_e.resizable)??!1,ft=(_e==null?void 0:_e.draggable)??!1,{columns:pt,colSpanColumns:gt,lastFrozenColumnIndex:vt,headerRowsCount:bt}=reactExports.useMemo(()=>{let At=-1,wt=1;const Ct=[];It(j,1);function It(Nt,Pt,Mt){for(const Rt of Nt){if("children"in Rt){const Gt={name:Rt.name,parent:Mt,idx:-1,colSpan:0,level:0,headerCellClass:Rt.headerCellClass};It(Rt.children,Pt+1,Gt);continue}const Lt=Rt.frozen??!1,jt={...Rt,parent:Mt,idx:0,level:0,frozen:Lt,isLastFrozenColumn:!1,width:Rt.width??it,minWidth:Rt.minWidth??st,maxWidth:Rt.maxWidth??lt,sortable:Rt.sortable??ct,resizable:Rt.resizable??dt,draggable:Rt.draggable??ft,renderCell:Rt.renderCell??ut};Ct.push(jt),Lt&&At++,Pt>wt&&(wt=Pt)}}Ct.sort(({key:Nt,frozen:Pt},{key:Mt,frozen:Rt})=>Nt===SELECT_COLUMN_KEY?-1:Mt===SELECT_COLUMN_KEY?1:Pt?Rt?0:-1:Rt?1:0);const Ot=[];return Ct.forEach((Nt,Pt)=>{Nt.idx=Pt,updateColumnParent(Nt,Pt,0),Nt.colSpan!=null&&Ot.push(Nt)}),At!==-1&&(Ct[At].isLastFrozenColumn=!0),{columns:Ct,colSpanColumns:Ot,lastFrozenColumnIndex:At,headerRowsCount:wt}},[j,it,st,lt,ut,dt,ct,ft]),{templateColumns:_t,layoutCssVars:xt,totalFrozenColumnWidth:yt,columnMetrics:Et}=reactExports.useMemo(()=>{const At=new Map;let wt=0,Ct=0;const It=[];for(const Nt of pt){let Pt=tt.get(Nt.key)??et.get(Nt.key)??Nt.width;typeof Pt=="number"?Pt=clampColumnWidth(Pt,Nt):Pt=Nt.minWidth,It.push(`${Pt}px`),At.set(Nt,{width:Pt,left:wt}),wt+=Pt}if(vt!==-1){const Nt=At.get(pt[vt]);Ct=Nt.left+Nt.width}const Ot={};for(let Nt=0;Nt<=vt;Nt++){const Pt=pt[Nt];Ot[`--rdg-frozen-left-${Pt.idx}`]=`${At.get(Pt).left}px`}return{templateColumns:It,layoutCssVars:Ot,totalFrozenColumnWidth:Ct,columnMetrics:At}},[et,tt,pt,vt]),[St,$t]=reactExports.useMemo(()=>{if(!ot)return[0,pt.length-1];const At=nt+yt,wt=nt+rt,Ct=pt.length-1,It=min$7(vt+1,Ct);if(At>=wt)return[It,It];let Ot=It;for(;OtAt)break;Ot++}let Nt=Ot;for(;Nt=wt)break;Nt++}const Pt=max$6(It,Ot-1),Mt=min$7(Ct,Nt+1);return[Pt,Mt]},[Et,pt,vt,nt,yt,rt,ot]);return{columns:pt,colSpanColumns:gt,colOverscanStartIdx:St,colOverscanEndIdx:$t,templateColumns:_t,layoutCssVars:xt,headerRowsCount:bt,lastFrozenColumnIndex:vt,totalFrozenColumnWidth:yt}}function updateColumnParent(j,_e,et){if(et"u"?reactExports.useEffect:reactExports.useLayoutEffect;function useColumnWidths(j,_e,et,tt,rt,nt,ot,it,st,lt){const ut=reactExports.useRef(rt),ct=j.length===_e.length,dt=ct&&rt!==ut.current,ft=[...et],pt=[];for(const{key:_t,idx:xt,width:yt}of _e)typeof yt=="string"&&(dt||!ot.has(_t))&&!nt.has(_t)&&(ft[xt]=yt,pt.push(_t));const gt=ft.join(" ");useLayoutEffect(()=>{ut.current=rt,vt(pt)});function vt(_t){_t.length!==0&&st(xt=>{const yt=new Map(xt);let Et=!1;for(const St of _t){const $t=measureColumnWidth(tt,St);Et||(Et=$t!==xt.get(St)),$t===void 0?yt.delete(St):yt.set(St,$t)}return Et?yt:xt})}function bt(_t,xt){const{key:yt}=_t,Et=[...et],St=[];for(const{key:At,idx:wt,width:Ct}of _e)if(yt===At){const It=typeof xt=="number"?`${xt}px`:xt;Et[wt]=It}else ct&&typeof Ct=="string"&&!nt.has(At)&&(Et[wt]=Ct,St.push(At));tt.current.style.gridTemplateColumns=Et.join(" ");const $t=typeof xt=="number"?xt:measureColumnWidth(tt,yt);reactDomExports.flushSync(()=>{it(At=>{const wt=new Map(At);return wt.set(yt,$t),wt}),vt(St)}),lt==null||lt(_t.idx,$t)}return{gridTemplateColumns:gt,handleColumnResize:bt}}function measureColumnWidth(j,_e){const et=`[data-measuring-cell-key="${CSS.escape(_e)}"]`,tt=j.current.querySelector(et);return tt==null?void 0:tt.getBoundingClientRect().width}function useGridDimensions(){const j=reactExports.useRef(null),[_e,et]=reactExports.useState(1),[tt,rt]=reactExports.useState(1);return useLayoutEffect(()=>{const{ResizeObserver:nt}=window;if(nt==null)return;const{clientWidth:ot,clientHeight:it,offsetWidth:st,offsetHeight:lt}=j.current,{width:ut,height:ct}=j.current.getBoundingClientRect(),dt=ut-st+ot,ft=ct-lt+it;et(dt),rt(ft);const pt=new nt(gt=>{const vt=gt[0].contentBoxSize[0];reactDomExports.flushSync(()=>{et(vt.inlineSize),rt(vt.blockSize)})});return pt.observe(j.current),()=>{pt.disconnect()}},[]),[j,_e,tt]}function useLatestFunc(j){const _e=reactExports.useRef(j);reactExports.useEffect(()=>{_e.current=j});const et=reactExports.useCallback((...tt)=>{_e.current(...tt)},[]);return j&&et}function useRovingTabIndex(j){const[_e,et]=reactExports.useState(!1);_e&&!j&&et(!1);function tt(nt){nt.target!==nt.currentTarget&&et(!0)}return{tabIndex:j&&!_e?0:-1,childTabIndex:j?0:-1,onFocus:j?tt:void 0}}function useViewportColumns({columns:j,colSpanColumns:_e,rows:et,topSummaryRows:tt,bottomSummaryRows:rt,colOverscanStartIdx:nt,colOverscanEndIdx:ot,lastFrozenColumnIndex:it,rowOverscanStartIdx:st,rowOverscanEndIdx:lt}){const ut=reactExports.useMemo(()=>{if(nt===0)return 0;let ct=nt;const dt=(ft,pt)=>pt!==void 0&&ft+pt>nt?(ct=ft,!0):!1;for(const ft of _e){const pt=ft.idx;if(pt>=ct||dt(pt,getColSpan(ft,it,{type:"HEADER"})))break;for(let gt=st;gt<=lt;gt++){const vt=et[gt];if(dt(pt,getColSpan(ft,it,{type:"ROW",row:vt})))break}if(tt!=null){for(const gt of tt)if(dt(pt,getColSpan(ft,it,{type:"SUMMARY",row:gt})))break}if(rt!=null){for(const gt of rt)if(dt(pt,getColSpan(ft,it,{type:"SUMMARY",row:gt})))break}}return ct},[st,lt,et,tt,rt,nt,it,_e]);return reactExports.useMemo(()=>{const ct=[];for(let dt=0;dt<=ot;dt++){const ft=j[dt];dt{if(typeof _e=="number")return{totalRowHeight:_e*j.length,gridTemplateRows:` repeat(${j.length}, ${_e}px)`,getRowTop:vt=>vt*_e,getRowHeight:()=>_e,findRowIdx:vt=>floor$3(vt/_e)};let dt=0,ft=" ";const pt=j.map(vt=>{const bt=_e(vt),_t={top:dt,height:bt};return ft+=`${bt}px `,dt+=bt,_t}),gt=vt=>max$6(0,min$7(j.length-1,vt));return{totalRowHeight:dt,gridTemplateRows:ft,getRowTop:vt=>pt[gt(vt)].top,getRowHeight:vt=>pt[gt(vt)].height,findRowIdx(vt){let bt=0,_t=pt.length-1;for(;bt<=_t;){const xt=bt+floor$3((_t-bt)/2),yt=pt[xt].top;if(yt===vt)return xt;if(ytvt&&(_t=xt-1),bt>_t)return _t}return 0}}},[_e,j]);let ut=0,ct=j.length-1;if(rt){const ft=lt(tt),pt=lt(tt+et);ut=max$6(0,ft-4),ct=min$7(j.length-1,pt+4)}return{rowOverscanStartIdx:ut,rowOverscanEndIdx:ct,totalRowHeight:nt,gridTemplateRows:ot,getRowTop:it,getRowHeight:st,findRowIdx:lt}}const cellDragHandle="cadd3bp7-0-0-beta-39",cellDragHandleFrozenClassname="ccmuez27-0-0-beta-39",cellDragHandleClassname=`rdg-cell-drag-handle ${cellDragHandle}`;function DragHandle({gridRowStart:j,rows:_e,columns:et,selectedPosition:tt,latestDraggedOverRowIdx:rt,isCellEditable:nt,onRowsChange:ot,onFill:it,onClick:st,setDragging:lt,setDraggedOverRowIdx:ut}){var yt;const{idx:ct,rowIdx:dt}=tt,ft=et[ct];function pt(Et){if(Et.preventDefault(),Et.buttons!==1)return;lt(!0),window.addEventListener("mouseover",St),window.addEventListener("mouseup",$t);function St(At){At.buttons!==1&&$t()}function $t(){window.removeEventListener("mouseover",St),window.removeEventListener("mouseup",$t),lt(!1),gt()}}function gt(){const Et=rt.current;if(Et===void 0)return;const St=dt0&&(ot==null||ot(wt,{indexes:Ct,column:$t}))}const _t=((yt=ft.colSpan)==null?void 0:yt.call(ft,{type:"ROW",row:_e[dt]}))??1,xt=getCellStyle(ft,_t);return jsxRuntimeExports.jsx("div",{style:{...xt,gridRowStart:j,insetInlineStart:xt.insetInlineStart&&typeof ft.width=="number"?`calc(${xt.insetInlineStart} + ${ft.width}px - var(--rdg-drag-handle-size))`:void 0},className:clsx(cellDragHandleClassname,ft.frozen&&cellDragHandleFrozenClassname),onClick:st,onMouseDown:pt,onDoubleClick:vt})}const cellEditing="c1tngyp17-0-0-beta-39";function EditCell({column:j,colSpan:_e,row:et,rowIdx:tt,onRowChange:rt,closeEditor:nt,onKeyDown:ot,navigate:it}){var bt,_t,xt;const st=reactExports.useRef(),lt=((bt=j.editorOptions)==null?void 0:bt.commitOnOutsideClick)!==!1,ut=useLatestFunc(()=>{ft(!0,!1)});reactExports.useEffect(()=>{if(!lt)return;function yt(){st.current=requestAnimationFrame(ut)}return addEventListener("mousedown",yt,{capture:!0}),()=>{removeEventListener("mousedown",yt,{capture:!0}),ct()}},[lt,ut]);function ct(){cancelAnimationFrame(st.current)}function dt(yt){if(ot){const Et=createCellEvent(yt);if(ot({mode:"EDIT",row:et,column:j,rowIdx:tt,navigate(){it(yt)},onClose:ft},Et),Et.isGridDefaultPrevented())return}yt.key==="Escape"?ft():yt.key==="Enter"?ft(!0):onEditorNavigation(yt)&&it(yt)}function ft(yt=!1,Et=!0){yt?rt(et,!0,Et):nt(Et)}function pt(yt,Et=!1){rt(yt,Et,Et)}const{cellClass:gt}=j,vt=getCellClassname(j,"rdg-editor-container",typeof gt=="function"?gt(et):gt,!((_t=j.editorOptions)!=null&&_t.displayCellContent)&&cellEditing);return jsxRuntimeExports.jsx("div",{role:"gridcell","aria-colindex":j.idx+1,"aria-colspan":_e,"aria-selected":!0,className:vt,style:getCellStyle(j,_e),onKeyDown:dt,onMouseDownCapture:ct,children:j.renderEditCell!=null&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[j.renderEditCell({column:j,row:et,onRowChange:pt,onClose:ft}),((xt=j.editorOptions)==null?void 0:xt.displayCellContent)&&j.renderCell({column:j,row:et,isCellEditable:!0,tabIndex:-1,onRowChange:pt})]})})}function GroupedColumnHeaderCell({column:j,rowIdx:_e,isCellSelected:et,selectCell:tt}){const{tabIndex:rt,onFocus:nt}=useRovingTabIndex(et),{colSpan:ot}=j,it=getHeaderCellRowSpan(j,_e),st=j.idx+1;function lt(){tt({idx:j.idx,rowIdx:_e})}return jsxRuntimeExports.jsx("div",{role:"columnheader","aria-colindex":st,"aria-colspan":ot,"aria-rowspan":it,"aria-selected":et,tabIndex:rt,className:clsx(cellClassname,j.headerCellClass),style:{...getHeaderCellStyle(j,_e,it),gridColumnStart:st,gridColumnEnd:st+ot},onFocus:nt,onClick:lt,children:j.name})}const headerSortCellClassname="hizp7y17-0-0-beta-39",headerSortName="h14cojrm7-0-0-beta-39",headerSortNameClassname=`rdg-header-sort-name ${headerSortName}`;function renderHeaderCell({column:j,sortDirection:_e,priority:et}){return j.sortable?jsxRuntimeExports.jsx(SortableHeaderCell,{sortDirection:_e,priority:et,children:j.name}):j.name}function SortableHeaderCell({sortDirection:j,priority:_e,children:et}){const tt=useDefaultRenderers().renderSortStatus;return jsxRuntimeExports.jsxs("span",{className:headerSortCellClassname,children:[jsxRuntimeExports.jsx("span",{className:headerSortNameClassname,children:et}),jsxRuntimeExports.jsx("span",{children:tt({sortDirection:j,priority:_e})})]})}const cellSortableClassname="celq7o97-0-0-beta-39",cellResizable="ceqw94e7-0-0-beta-39",cellResizableClassname=`rdg-cell-resizable ${cellResizable}`,resizeHandleClassname="r12jy2ca7-0-0-beta-39",cellDragging="c1j3os1p7-0-0-beta-39",cellDraggingClassname=`rdg-cell-dragging ${cellDragging}`,cellOver="c1ui3nad7-0-0-beta-39",cellOverClassname=`rdg-cell-drag-over ${cellOver}`;function HeaderCell({column:j,colSpan:_e,rowIdx:et,isCellSelected:tt,onColumnResize:rt,onColumnsReorder:nt,sortColumns:ot,onSortColumnsChange:it,selectCell:st,shouldFocusGrid:lt,direction:ut}){const[ct,dt]=reactExports.useState(!1),[ft,pt]=reactExports.useState(!1),gt=ut==="rtl",vt=getHeaderCellRowSpan(j,et),{tabIndex:bt,childTabIndex:_t,onFocus:xt}=useRovingTabIndex(tt),yt=ot==null?void 0:ot.findIndex(gr=>gr.columnKey===j.key),Et=yt!==void 0&&yt>-1?ot[yt]:void 0,St=Et==null?void 0:Et.direction,$t=Et!==void 0&&ot.length>1?yt+1:void 0,At=St&&!$t?St==="ASC"?"ascending":"descending":void 0,{sortable:wt,resizable:Ct,draggable:It}=j,Ot=getCellClassname(j,j.headerCellClass,wt&&cellSortableClassname,Ct&&cellResizableClassname,ct&&cellDraggingClassname,ft&&cellOverClassname),Nt=j.renderHeaderCell??renderHeaderCell;function Pt(gr){if(gr.pointerType==="mouse"&&gr.buttons!==1)return;const{currentTarget:Er,pointerId:qt}=gr,ir=Er.parentElement,{right:hr,left:nr}=ir.getBoundingClientRect(),mr=gt?gr.clientX-nr:hr-gr.clientX;function Ar(wr){wr.preventDefault();const{right:Nr,left:Wr}=ir.getBoundingClientRect(),Vr=gt?Nr+mr-wr.clientX:wr.clientX+mr-Wr;Vr>0&&rt(j,clampColumnWidth(Vr,j))}function Or(){Er.removeEventListener("pointermove",Ar),Er.removeEventListener("lostpointercapture",Or)}Er.setPointerCapture(qt),Er.addEventListener("pointermove",Ar),Er.addEventListener("lostpointercapture",Or)}function Mt(gr){if(it==null)return;const{sortDescendingFirst:Er}=j;if(Et===void 0){const qt={columnKey:j.key,direction:Er?"DESC":"ASC"};it(ot&&gr?[...ot,qt]:[qt])}else{let qt;if((Er===!0&&St==="DESC"||Er!==!0&&St==="ASC")&&(qt={columnKey:j.key,direction:St==="ASC"?"DESC":"ASC"}),gr){const ir=[...ot];qt?ir[yt]=qt:ir.splice(yt,1),it(ir)}else it(qt?[qt]:[])}}function Rt(gr){st({idx:j.idx,rowIdx:et}),wt&&Mt(gr.ctrlKey||gr.metaKey)}function Lt(){rt(j,"max-content")}function jt(gr){xt==null||xt(gr),lt&&st({idx:0,rowIdx:et})}function Gt(gr){(gr.key===" "||gr.key==="Enter")&&(gr.preventDefault(),Mt(gr.ctrlKey||gr.metaKey))}function Vt(gr){gr.dataTransfer.setData("text/plain",j.key),gr.dataTransfer.dropEffect="move",dt(!0)}function Yt(){dt(!1)}function Xt(gr){gr.preventDefault(),gr.dataTransfer.dropEffect="move"}function rr(gr){pt(!1);const Er=gr.dataTransfer.getData("text/plain");Er!==j.key&&(gr.preventDefault(),nt==null||nt(Er,j.key))}function cr(gr){isEventPertinent(gr)&&pt(!0)}function vr(gr){isEventPertinent(gr)&&pt(!1)}let Tr;return It&&(Tr={draggable:!0,onDragStart:Vt,onDragEnd:Yt,onDragOver:Xt,onDragEnter:cr,onDragLeave:vr,onDrop:rr}),jsxRuntimeExports.jsxs("div",{role:"columnheader","aria-colindex":j.idx+1,"aria-colspan":_e,"aria-rowspan":vt,"aria-selected":tt,"aria-sort":At,tabIndex:lt?0:bt,className:Ot,style:{...getHeaderCellStyle(j,et,vt),...getCellStyle(j,_e)},onFocus:jt,onClick:Rt,onKeyDown:wt?Gt:void 0,...Tr,children:[Nt({column:j,sortDirection:St,priority:$t,tabIndex:_t}),Ct&&jsxRuntimeExports.jsx("div",{className:resizeHandleClassname,onClick:stopPropagation,onDoubleClick:Lt,onPointerDown:Pt})]})}function isEventPertinent(j){const _e=j.relatedTarget;return!j.currentTarget.contains(_e)}const row="r1otpg647-0-0-beta-39",rowClassname=`rdg-row ${row}`,rowSelected="rel5gk27-0-0-beta-39",rowSelectedClassname="rdg-row-selected",rowSelectedWithFrozenCell="r1qymf1z7-0-0-beta-39",headerRow="h197vzie7-0-0-beta-39",headerRowClassname=`rdg-header-row ${headerRow}`;function HeaderRow({rowIdx:j,columns:_e,onColumnResize:et,onColumnsReorder:tt,sortColumns:rt,onSortColumnsChange:nt,lastFrozenColumnIndex:ot,selectedCellIdx:it,selectCell:st,shouldFocusGrid:lt,direction:ut}){const ct=[];for(let dt=0;dt<_e.length;dt++){const ft=_e[dt],pt=getColSpan(ft,ot,{type:"HEADER"});pt!==void 0&&(dt+=pt-1),ct.push(jsxRuntimeExports.jsx(HeaderCell,{column:ft,colSpan:pt,rowIdx:j,isCellSelected:it===ft.idx,onColumnResize:et,onColumnsReorder:tt,onSortColumnsChange:nt,sortColumns:rt,selectCell:st,shouldFocusGrid:lt&&dt===0,direction:ut},ft.key))}return jsxRuntimeExports.jsx("div",{role:"row","aria-rowindex":j,className:clsx(headerRowClassname,it===-1&&rowSelectedClassname),children:ct})}const HeaderRow$1=reactExports.memo(HeaderRow);function GroupedColumnHeaderRow({rowIdx:j,level:_e,columns:et,selectedCellIdx:tt,selectCell:rt}){const nt=[],ot=new Set;for(const it of et){let{parent:st}=it;if(st!==void 0){for(;st.level>_e&&st.parent!==void 0;)st=st.parent;if(st.level===_e&&!ot.has(st)){ot.add(st);const{idx:lt}=st;nt.push(jsxRuntimeExports.jsx(GroupedColumnHeaderCell,{column:st,rowIdx:j,isCellSelected:tt===lt,selectCell:rt},lt))}}}return jsxRuntimeExports.jsx("div",{role:"row","aria-rowindex":j,className:headerRowClassname,children:nt})}const GroupedColumnHeaderRow$1=reactExports.memo(GroupedColumnHeaderRow),cellCopied="ccpfvsn7-0-0-beta-39",cellCopiedClassname=`rdg-cell-copied ${cellCopied}`,cellDraggedOver="c1bmg16t7-0-0-beta-39",cellDraggedOverClassname=`rdg-cell-dragged-over ${cellDraggedOver}`;function Cell$1({column:j,colSpan:_e,isCellSelected:et,isCopied:tt,isDraggedOver:rt,row:nt,rowIdx:ot,onClick:it,onDoubleClick:st,onContextMenu:lt,onRowChange:ut,selectCell:ct,...dt}){const{tabIndex:ft,childTabIndex:pt,onFocus:gt}=useRovingTabIndex(et),{cellClass:vt}=j,bt=getCellClassname(j,typeof vt=="function"?vt(nt):vt,tt&&cellCopiedClassname,rt&&cellDraggedOverClassname),_t=isCellEditable(j,nt);function xt(At){ct({rowIdx:ot,idx:j.idx},At)}function yt(At){if(it){const wt=createCellEvent(At);if(it({row:nt,column:j,selectCell:xt},wt),wt.isGridDefaultPrevented())return}xt()}function Et(At){if(lt){const wt=createCellEvent(At);if(lt({row:nt,column:j,selectCell:xt},wt),wt.isGridDefaultPrevented())return}xt()}function St(At){if(st){const wt=createCellEvent(At);if(st({row:nt,column:j,selectCell:xt},wt),wt.isGridDefaultPrevented())return}xt(!0)}function $t(At){ut(j,At)}return jsxRuntimeExports.jsx("div",{role:"gridcell","aria-colindex":j.idx+1,"aria-colspan":_e,"aria-selected":et,"aria-readonly":!_t||void 0,tabIndex:ft,className:bt,style:getCellStyle(j,_e),onClick:yt,onDoubleClick:St,onContextMenu:Et,onFocus:gt,...dt,children:j.renderCell({column:j,row:nt,isCellEditable:_t,tabIndex:pt,onRowChange:$t})})}const Cell$1$1=reactExports.memo(Cell$1);function Row({className:j,rowIdx:_e,gridRowStart:et,height:tt,selectedCellIdx:rt,isRowSelected:nt,copiedCellIdx:ot,draggedOverCellIdx:it,lastFrozenColumnIndex:st,row:lt,viewportColumns:ut,selectedCellEditor:ct,onCellClick:dt,onCellDoubleClick:ft,onCellContextMenu:pt,rowClass:gt,setDraggedOverRowIdx:vt,onMouseEnter:bt,onRowChange:_t,selectCell:xt,...yt},Et){const St=useLatestFunc((wt,Ct)=>{_t(wt,_e,Ct)});function $t(wt){vt==null||vt(_e),bt==null||bt(wt)}j=clsx(rowClassname,`rdg-row-${_e%2===0?"even":"odd"}`,gt==null?void 0:gt(lt,_e),j,rt===-1&&rowSelectedClassname);const At=[];for(let wt=0;wt{scrollIntoView(rt.current)}),useLayoutEffect(()=>{function nt(){tt(null)}const ot=new IntersectionObserver(nt,{root:et,threshold:1});return ot.observe(rt.current),()=>{ot.disconnect()}},[et,tt]),jsxRuntimeExports.jsx("div",{ref:rt,style:{gridColumn:j===void 0?"1/-1":j+1,gridRow:_e===void 0?"1/-1":_e+2}})}const arrow="a1mygwml7-0-0-beta-39",arrowClassname=`rdg-sort-arrow ${arrow}`;function renderSortStatus({sortDirection:j,priority:_e}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[renderSortIcon({sortDirection:j}),renderSortPriority({priority:_e})]})}function renderSortIcon({sortDirection:j}){return j===void 0?null:jsxRuntimeExports.jsx("svg",{viewBox:"0 0 12 8",width:"12",height:"8",className:arrowClassname,"aria-hidden":!0,children:jsxRuntimeExports.jsx("path",{d:j==="ASC"?"M0 8 6 0 12 8":"M0 0 6 8 12 0"})})}function renderSortPriority({priority:j}){return j}const root="r104f42s7-0-0-beta-39",rootClassname=`rdg ${root}`,viewportDragging="v7ly7s7-0-0-beta-39",viewportDraggingClassname=`rdg-viewport-dragging ${viewportDragging}`,focusSinkClassname="fc4f4zb7-0-0-beta-39",focusSinkHeaderAndSummaryClassname="fq51q037-0-0-beta-39",summaryCellClassname="s1n3hxke7-0-0-beta-39";function SummaryCell({column:j,colSpan:_e,row:et,rowIdx:tt,isCellSelected:rt,selectCell:nt}){var dt;const{tabIndex:ot,childTabIndex:it,onFocus:st}=useRovingTabIndex(rt),{summaryCellClass:lt}=j,ut=getCellClassname(j,summaryCellClassname,typeof lt=="function"?lt(et):lt);function ct(){nt({rowIdx:tt,idx:j.idx})}return jsxRuntimeExports.jsx("div",{role:"gridcell","aria-colindex":j.idx+1,"aria-colspan":_e,"aria-selected":rt,tabIndex:ot,className:ut,style:getCellStyle(j,_e),onClick:ct,onFocus:st,children:(dt=j.renderSummaryCell)==null?void 0:dt.call(j,{column:j,row:et,tabIndex:it})})}const SummaryCell$1=reactExports.memo(SummaryCell),summaryRow="snfqesz7-0-0-beta-39",topSummaryRow="t1jijrjz7-0-0-beta-39",topSummaryRowBorderClassname="t14bmecc7-0-0-beta-39",bottomSummaryRowBorderClassname="b1odhhml7-0-0-beta-39",summaryRowClassname=`rdg-summary-row ${summaryRow}`,topSummaryRowClassname=`rdg-top-summary-row ${topSummaryRow}`;function SummaryRow({rowIdx:j,gridRowStart:_e,row:et,viewportColumns:tt,top:rt,bottom:nt,lastFrozenColumnIndex:ot,selectedCellIdx:it,isTop:st,showBorder:lt,selectCell:ut,"aria-rowindex":ct}){const dt=[];for(let ft=0;ftnew Map),[Jr,Yr]=reactExports.useState(()=>new Map),[jr,Hr]=reactExports.useState(null),[hn,pr]=reactExports.useState(!1),[sr,Jt]=reactExports.useState(void 0),[ur,br]=reactExports.useState(null),[Sr,yr,Cr]=useGridDimensions(),{columns:Lr,colSpanColumns:Xr,lastFrozenColumnIndex:qr,headerRowsCount:Qr,colOverscanStartIdx:xn,colOverscanEndIdx:wn,templateColumns:nn,layoutCssVars:Ln,totalFrozenColumnWidth:zn}=useCalculatedColumns({rawColumns:et,defaultColumnOptions:gt,measuredColumnWidths:Jr,resizedColumnWidths:Wr,scrollLeft:wr,viewportWidth:yr,enableVirtualization:nr}),En=(rt==null?void 0:rt.length)??0,sn=(nt==null?void 0:nt.length)??0,Dn=En+sn,Mn=Qr+En,In=Qr-1,Cn=-Mn,cn=Cn+In,Ur=tt.length+sn-1,[Fr,Hn]=reactExports.useState(()=>({idx:-1,rowIdx:Cn-1,mode:"SELECT"})),ro=reactExports.useRef(Fr),Pn=reactExports.useRef(sr),jo=reactExports.useRef(-1),vo=reactExports.useRef(null),eo=reactExports.useRef(!1),Co=cr==="treegrid",Mr=Qr*Tr,Ut=Cr-Mr-Dn*gr,Zt=ct!=null&&dt!=null,zt=mr==="rtl",Ht=zt?"ArrowRight":"ArrowLeft",Dt=zt?"ArrowLeft":"ArrowRight",Qt=Yt??Qr+tt.length+Dn,ar=reactExports.useMemo(()=>({renderCheckbox:ir,renderSortStatus:qt}),[ir,qt]),lr=reactExports.useMemo(()=>{const{length:Pr}=tt;return Pr!==0&&ct!=null&&ot!=null&&ct.size>=Pr&&tt.every(Gr=>ct.has(ot(Gr)))},[tt,ct,ot]),{rowOverscanStartIdx:tr,rowOverscanEndIdx:_r,totalRowHeight:Br,gridTemplateRows:un,getRowTop:fn,getRowHeight:an,findRowIdx:tn}=useViewportRows({rows:tt,rowHeight:vr,clientHeight:Ut,scrollTop:Ar,enableVirtualization:nr}),_n=useViewportColumns({columns:Lr,colSpanColumns:Xr,colOverscanStartIdx:xn,colOverscanEndIdx:wn,lastFrozenColumnIndex:qr,rowOverscanStartIdx:tr,rowOverscanEndIdx:_r,rows:tt,topSummaryRows:rt,bottomSummaryRows:nt}),{gridTemplateColumns:jn,handleColumnResize:pn}=useColumnWidths(Lr,_n,nn,Sr,yr,Wr,Jr,Vr,Yr,St),qn=Co?-1:0,to=Lr.length-1,fo=zs(Fr),Fo=Hs(Fr),xo=useLatestFunc(pn),_i=useLatestFunc($t),zo=useLatestFunc(pt),Zn=useLatestFunc(vt),ko=useLatestFunc(bt),na=useLatestFunc(_t),Ho=useLatestFunc(xa),ga=useLatestFunc(Xo),Go=useLatestFunc(gs),ps=useLatestFunc(({idx:Pr,rowIdx:Gr})=>{gs({rowIdx:Cn+Gr-1,idx:Pr})});useLayoutEffect(()=>{if(!fo||isSamePosition(Fr,ro.current)){ro.current=Fr;return}ro.current=Fr,Fr.idx===-1&&(vo.current.focus({preventScroll:!0}),scrollIntoView(vo.current))}),useLayoutEffect(()=>{eo.current&&(eo.current=!1,$l())}),reactExports.useImperativeHandle(_e,()=>({element:Sr.current,scrollToCell({idx:Pr,rowIdx:Gr}){const bn=Pr!==void 0&&Pr>qr&&Pr{Jt(Pr),Pn.current=Pr},[]);function xa(Pr){if(!dt)return;if(assertIsValidKeyGetter(ot),Pr.type==="HEADER"){const Wn=new Set(ct);for(const Kn of tt){const no=ot(Kn);Pr.checked?Wn.add(no):Wn.delete(no)}dt(Wn);return}const{row:Gr,checked:bn,isShiftClick:vn}=Pr,rn=new Set(ct),dn=ot(Gr);if(bn){rn.add(dn);const Wn=jo.current,Kn=tt.indexOf(Gr);if(jo.current=Kn,vn&&Wn!==-1&&Wn!==Kn){const no=sign$5(Kn-Wn);for(let Io=Wn+no;Io!==Kn;Io+=no){const ts=tt[Io];rn.add(ot(ts))}}}else rn.delete(dn),jo.current=-1;dt(rn)}function es(Pr){const{idx:Gr,rowIdx:bn,mode:vn}=Fr;if(vn==="EDIT")return;if(xt&&ws(bn)){const Kn=tt[bn],no=createCellEvent(Pr);if(xt({mode:"SELECT",row:Kn,column:Lr[Gr],rowIdx:bn,selectCell:gs},no),no.isGridDefaultPrevented())return}if(!(Pr.target instanceof Element))return;const rn=Pr.target.closest(".rdg-cell")!==null,dn=Co&&Pr.target===vo.current;if(!rn&&!dn)return;const{keyCode:Wn}=Pr;if(Fo&&(Ct!=null||wt!=null)&&isCtrlKeyHeldDown(Pr)){if(Wn===67){El();return}if(Wn===86){hs();return}}switch(Pr.key){case"Escape":Hr(null);return;case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"Tab":case"Home":case"End":case"PageUp":case"PageDown":Ul(Pr);break;default:Vl(Pr);break}}function Yo(Pr){const{scrollTop:Gr,scrollLeft:bn}=Pr.currentTarget;reactDomExports.flushSync(()=>{Or(Gr),Nr(abs$1(bn))}),Et==null||Et(Pr)}function Xo(Pr,Gr,bn){if(typeof it!="function"||bn===tt[Gr])return;const vn=[...tt];vn[Gr]=bn,it(vn,{indexes:[Gr],column:Pr})}function Fs(){Fr.mode==="EDIT"&&Xo(Lr[Fr.idx],Fr.rowIdx,Fr.row)}function El(){const{idx:Pr,rowIdx:Gr}=Fr,bn=tt[Gr],vn=Lr[Pr].key;Hr({row:bn,columnKey:vn}),wt==null||wt({sourceRow:bn,sourceColumnKey:vn})}function hs(){if(!Ct||!it||jr===null||!Cs(Fr))return;const{idx:Pr,rowIdx:Gr}=Fr,bn=Lr[Pr],vn=tt[Gr],rn=Ct({sourceRow:jr.row,sourceColumnKey:jr.columnKey,targetRow:vn,targetColumnKey:bn.key});Xo(bn,Gr,rn)}function Vl(Pr){if(!Fo)return;const Gr=tt[Fr.rowIdx],{key:bn,shiftKey:vn}=Pr;if(Zt&&vn&&bn===" "){assertIsValidKeyGetter(ot);const rn=ot(Gr);xa({type:"ROW",row:Gr,checked:!ct.has(rn),isShiftClick:!1}),Pr.preventDefault();return}Cs(Fr)&&isDefaultCellInput(Pr)&&Hn(({idx:rn,rowIdx:dn})=>({idx:rn,rowIdx:dn,mode:"EDIT",row:Gr,originalRow:Gr}))}function Sl(Pr){return Pr>=qn&&Pr<=to}function ws(Pr){return Pr>=0&&Pr=Cn&&Gr<=Ur&&Sl(Pr)}function Hs({idx:Pr,rowIdx:Gr}){return ws(Gr)&&Sl(Pr)}function Cs(Pr){return Hs(Pr)&&isSelectedCellEditable({columns:Lr,rows:tt,selectedPosition:Pr})}function gs(Pr,Gr){if(!zs(Pr))return;Fs();const bn=tt[Pr.rowIdx],vn=isSamePosition(Fr,Pr);Gr&&Cs(Pr)?Hn({...Pr,mode:"EDIT",row:bn,originalRow:bn}):vn?scrollIntoView(getCellToScroll(Sr.current)):(eo.current=!0,Hn({...Pr,mode:"SELECT"})),yt&&!vn&&yt({rowIdx:Pr.rowIdx,row:bn,column:Lr[Pr.idx]})}function Lu(Pr,Gr,bn){const{idx:vn,rowIdx:rn}=Fr,dn=fo&&vn===-1;switch(Pr){case"ArrowUp":return{idx:vn,rowIdx:rn-1};case"ArrowDown":return{idx:vn,rowIdx:rn+1};case Ht:return{idx:vn-1,rowIdx:rn};case Dt:return{idx:vn+1,rowIdx:rn};case"Tab":return{idx:vn+(bn?-1:1),rowIdx:rn};case"Home":return dn?{idx:vn,rowIdx:Cn}:{idx:0,rowIdx:Gr?Cn:rn};case"End":return dn?{idx:vn,rowIdx:Ur}:{idx:to,rowIdx:Gr?Ur:rn};case"PageUp":{if(Fr.rowIdx===Cn)return Fr;const Wn=fn(rn)+an(rn)-Ut;return{idx:vn,rowIdx:Wn>0?tn(Wn):0}}case"PageDown":{if(Fr.rowIdx>=tt.length)return Fr;const Wn=fn(rn)+Ut;return{idx:vn,rowIdx:WnPr&&Pr>=sr)?Fr.idx:void 0}function $l(){const Pr=getCellToScroll(Sr.current);if(Pr===null)return;scrollIntoView(Pr),(Pr.querySelector('[tabindex="0"]')??Pr).focus({preventScroll:!0})}function Pu(){if(!(At==null||Fr.mode==="EDIT"||!Hs(Fr)))return jsxRuntimeExports.jsx(DragHandle,{gridRowStart:Mn+Fr.rowIdx+1,rows:tt,columns:Lr,selectedPosition:Fr,isCellEditable:Cs,latestDraggedOverRowIdx:Pn,onRowsChange:it,onClick:$l,onFill:At,setDragging:pr,setDraggedOverRowIdx:Uo})}function ju(Pr){if(Fr.rowIdx!==Pr||Fr.mode==="SELECT")return;const{idx:Gr,row:bn}=Fr,vn=Lr[Gr],rn=getColSpan(vn,qr,{type:"ROW",row:bn}),dn=Kn=>{eo.current=Kn,Hn(({idx:no,rowIdx:Io})=>({idx:no,rowIdx:Io,mode:"SELECT"}))},Wn=(Kn,no,Io)=>{no?reactDomExports.flushSync(()=>{Xo(vn,Fr.rowIdx,Kn),dn(Io)}):Hn(ts=>({...ts,row:Kn}))};return tt[Fr.rowIdx]!==Fr.originalRow&&dn(!1),jsxRuntimeExports.jsx(EditCell,{column:vn,colSpan:rn,row:bn,rowIdx:Pr,onRowChange:Wn,closeEditor:dn,onKeyDown:xt,navigate:Ul},vn.key)}function ks(Pr){const Gr=Fr.idx===-1?void 0:Lr[Fr.idx];return Gr!==void 0&&Fr.rowIdx===Pr&&!_n.includes(Gr)?Fr.idx>wn?[..._n,Gr]:[..._n.slice(0,qr+1),Gr,..._n.slice(qr+1)]:_n}function Fu(){const Pr=[],{idx:Gr,rowIdx:bn}=Fr,vn=Fo&&bn_r?_r+1:_r;for(let dn=vn;dn<=rn;dn++){const Wn=dn===tr-1||dn===_r+1,Kn=Wn?bn:dn;let no=_n;const Io=Gr===-1?void 0:Lr[Gr];Io!==void 0&&(Wn?no=[Io]:no=ks(Kn));const ts=tt[Kn],zu=Mn+Kn+1;let Gs=Kn,Tl=!1;typeof ot=="function"&&(Gs=ot(ts),Tl=(ct==null?void 0:ct.has(Gs))??!1),Pr.push(Er(Gs,{"aria-rowindex":Mn+Kn+1,"aria-selected":Zt?Tl:void 0,rowIdx:Kn,row:ts,viewportColumns:no,isRowSelected:Tl,onCellClick:Zn,onCellDoubleClick:ko,onCellContextMenu:na,rowClass:Mt,gridRowStart:zu,height:an(Kn),copiedCellIdx:jr!==null&&jr.row===ts?Lr.findIndex(oo=>oo.key===jr.columnKey):void 0,selectedCellIdx:bn===Kn?Gr:void 0,draggedOverCellIdx:Bu(Kn),setDraggedOverRowIdx:hn?Uo:void 0,lastFrozenColumnIndex:qr,onRowChange:ga,selectCell:Go,selectedCellEditor:ju(Kn)}))}return Pr}(Fr.idx>to||Fr.rowIdx>Ur)&&(Hn({idx:-1,rowIdx:Cn-1,mode:"SELECT"}),Uo(void 0));let vs=`repeat(${Qr}, ${Tr}px)`;En>0&&(vs+=` repeat(${En}, ${gr}px)`),tt.length>0&&(vs+=un),sn>0&&(vs+=` repeat(${sn}, ${gr}px)`);const Yl=Fr.idx===-1&&Fr.rowIdx!==Cn-1;return jsxRuntimeExports.jsxs("div",{role:cr,"aria-label":jt,"aria-labelledby":Gt,"aria-describedby":Vt,"aria-multiselectable":Zt?!0:void 0,"aria-colcount":Lr.length,"aria-rowcount":Qt,className:clsx(rootClassname,Nt,hn&&viewportDraggingClassname),style:{...Pt,scrollPaddingInlineStart:Fr.idx>qr||(ur==null?void 0:ur.idx)!==void 0?`${zn}px`:void 0,scrollPaddingBlock:ws(Fr.rowIdx)||(ur==null?void 0:ur.rowIdx)!==void 0?`${Mr+En*gr}px ${sn*gr}px`:void 0,gridTemplateColumns:jn,gridTemplateRows:vs,"--rdg-header-row-height":`${Tr}px`,"--rdg-summary-row-height":`${gr}px`,"--rdg-sign":zt?-1:1,...Ln},dir:mr,ref:Sr,onScroll:Yo,onKeyDown:es,"data-testid":Xt,children:[jsxRuntimeExports.jsx(DataGridDefaultRenderersProvider,{value:ar,children:jsxRuntimeExports.jsxs(RowSelectionChangeProvider,{value:Ho,children:[jsxRuntimeExports.jsxs(RowSelectionProvider,{value:lr,children:[Array.from({length:In},(Pr,Gr)=>jsxRuntimeExports.jsx(GroupedColumnHeaderRow$1,{rowIdx:Gr+1,level:-In+Gr,columns:ks(Cn+Gr),selectedCellIdx:Fr.rowIdx===Cn+Gr?Fr.idx:void 0,selectCell:ps},Gr)),jsxRuntimeExports.jsx(HeaderRow$1,{rowIdx:Qr,columns:ks(cn),onColumnResize:xo,onColumnsReorder:_i,sortColumns:ft,onSortColumnsChange:zo,lastFrozenColumnIndex:qr,selectedCellIdx:Fr.rowIdx===cn?Fr.idx:void 0,selectCell:ps,shouldFocusGrid:!fo,direction:mr})]}),tt.length===0&&hr?hr:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[rt==null?void 0:rt.map((Pr,Gr)=>{const bn=Qr+1+Gr,vn=cn+1+Gr,rn=Fr.rowIdx===vn,dn=Mr+gr*Gr;return jsxRuntimeExports.jsx(SummaryRow$1,{"aria-rowindex":bn,rowIdx:vn,gridRowStart:bn,row:Pr,top:dn,bottom:void 0,viewportColumns:ks(vn),lastFrozenColumnIndex:qr,selectedCellIdx:rn?Fr.idx:void 0,isTop:!0,showBorder:Gr===En-1,selectCell:Go},Gr)}),Fu(),nt==null?void 0:nt.map((Pr,Gr)=>{const bn=Mn+tt.length+Gr+1,vn=tt.length+Gr,rn=Fr.rowIdx===vn,dn=Ut>Br?Cr-gr*(nt.length-Gr):void 0,Wn=dn===void 0?gr*(nt.length-1-Gr):void 0;return jsxRuntimeExports.jsx(SummaryRow$1,{"aria-rowindex":Qt-sn+Gr+1,rowIdx:vn,gridRowStart:bn,row:Pr,top:dn,bottom:Wn,viewportColumns:ks(vn),lastFrozenColumnIndex:qr,selectedCellIdx:rn?Fr.idx:void 0,isTop:!1,showBorder:Gr===0,selectCell:Go},Gr)})]})]})}),Pu(),renderMeasuringCells(_n),Co&&jsxRuntimeExports.jsx("div",{ref:vo,tabIndex:Yl?0:-1,className:clsx(focusSinkClassname,Yl&&[rowSelected,qr!==-1&&rowSelectedWithFrozenCell],!ws(Fr.rowIdx)&&focusSinkHeaderAndSummaryClassname),style:{gridRowStart:Fr.rowIdx+Mn+1}}),ur!==null&&jsxRuntimeExports.jsx(ScrollToCell,{scrollToPosition:ur,setScrollToCellPosition:br,gridElement:Sr.current})]})}function getCellToScroll(j){return j.querySelector(':scope > [role="row"] > [tabindex="0"]')}function isSamePosition(j,_e){return j.idx===_e.idx&&j.rowIdx===_e.rowIdx}const DataGrid$1$1=reactExports.forwardRef(DataGrid$2),useGanttViewModel=()=>{const[j]=useInjected(GanttViewModelToken);return j},useGanttViewRows=()=>{const j=useGanttViewModel();return useState(j.rows$).toArray()},useToggleSubRows=()=>{const j=useGanttViewModel();return reactExports.useCallback(_e=>{j.toggleRow(_e)},[j])},useTasksTimeBoundaries=()=>{const j=useGanttViewModel();return[j.startTime,j.endTime]},useSelectedRow=()=>{const j=useGanttViewModel();return useState(j.selectedRowId$)},useSetSelectedRow=()=>{const j=useGanttViewModel();return useSetState(j.selectedRowId$)},GanttChartCell=({row:j})=>{const[_e,et]=useTasksTimeBoundaries(),tt=`${(j.startTime-_e)*100/(et-_e)}%`,rt=`${(et-j.endTime)*100/(et-_e)}%`,nt=j.children&&j.children.length>0,ot=j.isExpanded;return jsxRuntimeExports.jsx("div",{style:{marginLeft:tt,marginRight:rt,height:"100%",marginTop:4,marginBottom:4,display:"flex"},children:nt&&!ot?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:(j.children??[]).map((it,st)=>{const lt=`${(it.endTime-it.startTime)*100/(j.endTime-j.startTime)}%`;return jsxRuntimeExports.jsx("div",{style:{backgroundColor:it.color??`rgba(0, 120, 212, ${1-.2*st})`,width:lt}},it.id)})}):jsxRuntimeExports.jsx("div",{style:{backgroundColor:j.color??"rgba(0, 120, 212, 1)",width:"100%"}})})},NameCell=({row:j})=>{const _e=j.children!==void 0&&j.children.length>0,et=j.isExpanded,tt=useToggleSubRows(),rt=reactExports.useCallback(nt=>{nt.preventDefault(),nt.stopPropagation(),tt(j.id)},[j.id,tt]);return jsxRuntimeExports.jsxs("div",{style:{display:"flex",gap:4,paddingLeft:j.level*24},children:[_e?jsxRuntimeExports.jsx("div",{onClick:rt,role:"button",children:et?"▼":"▶"}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{}),jsxRuntimeExports.jsx("div",{children:j.node_name||j.name})]})},defaultColumns=[{key:"name",name:"node name",resizable:!0,width:320,renderCell({row:j}){return jsxRuntimeExports.jsx(NameCell,{row:j})}},{key:"duration",name:"duration",resizable:!0,width:60,renderHeaderCell(){return jsxRuntimeExports.jsx("div",{style:{textAlign:"right"},children:"duration"})},renderCell({row:j}){return jsxRuntimeExports.jsxs("div",{style:{textAlign:"right"},children:[Math.round((j.endTime-j.startTime)*1e3).toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")," ","ms"]})}},{key:"ganttChart",name:"gantt-chart",renderCell({row:j}){return jsxRuntimeExports.jsx(GanttChartCell,{row:j})},renderHeaderCell:()=>jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}],GanttGridView=({styles:j,getColumns:_e=et=>et})=>{const et=useGanttViewRows(),tt=useSetSelectedRow(),rt=useSelectedRow(),nt=reactExports.useCallback(st=>{const{row:lt}=st;tt(lt.id)},[tt]),ot=mergeStyles$1(j==null?void 0:j.grid,{borderBottom:"none",borderRight:"none"}),it=reactExports.useCallback(st=>mergeStyles$1(rt===st.id?j==null?void 0:j.selectedRow:""),[rt,j==null?void 0:j.selectedRow]);return jsxRuntimeExports.jsx(DataGrid$1$1,{rows:et,columns:_e(defaultColumns),onCellClick:nt,className:ot,rowClass:it})},Wrapper=({viewModel:j,children:_e})=>{const et=createRegistry({name:"gantt-wrapper"}),tt=reactExports.useCallback(rt=>{rt.register(GanttViewModelToken,{useValue:j})},[j]);return jsxRuntimeExports.jsx(et,{onInitialize:tt,children:_e})};var GanttGridTheme=(j=>(j.Light="rdg-light",j.Dark="rdg-dark",j))(GanttGridTheme||{});const Gantt=({viewModel:j,styles:_e,getColumns:et})=>jsxRuntimeExports.jsx(Wrapper,{viewModel:j,children:jsxRuntimeExports.jsx(GanttGridView,{styles:_e,getColumns:et})}),TraceDetailTemplate=({trace:j,JSONView:_e})=>{const et=mergeStyleSets({root:["api-call-detail",{padding:8,width:"100%",height:"100%",display:"flex",flexDirection:"column"}],header:["api-call-detail-header",{fontWeight:600,fontSize:20,lineHeight:28,marginBottom:16}],section:["api-call-detail-section",{display:"flex",flexDirection:"column",width:"85%",height:"auto",boxShadow:"rgba(0, 0, 0, 0.18) 0px 1.6px 3.6px 0px, rgba(0, 0, 0, 0.22) 0px 0.3px 0.9px 0px",marginBottom:16}],sectionTitle:["api-call-detail-section-title",{fontWeight:500,fontSize:16,marginTop:8,marginBottom:8,lineHeight:20,borderBottom:"1px inset #ccc",padding:"9px 12px"}],sectionContent:["api-call-detail-section-content",{padding:16,overflow:"auto",maxHeight:"600px"}],fieldTitle:["api-call-detail-field-title",{fontWeight:500,fontSize:14,lineHeight:20}],overviewContainer:["api-call-detail-overview-container",{display:"flex",flexDirection:"row"}],overviewColumn:["api-call-detail-overview-column",{display:"flex",flexGrow:1,flexDirection:"column"}]}),tt=j.node_name??j.name??"",rt=getTokensUsageByRow(j),nt=j.inputs??{},ot=j.output??{};return jsxRuntimeExports.jsxs("div",{className:et.root,children:[jsxRuntimeExports.jsx("div",{className:et.header,children:tt}),jsxRuntimeExports.jsxs("div",{className:et.section,children:[jsxRuntimeExports.jsx("div",{className:et.sectionTitle,children:"Overview"}),jsxRuntimeExports.jsx("div",{className:et.sectionContent,children:jsxRuntimeExports.jsxs("div",{className:et.overviewContainer,children:[jsxRuntimeExports.jsxs("div",{className:et.overviewColumn,children:[jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"total tokens"}),jsxRuntimeExports.jsx("div",{children:numberToDigitsString(rt.totalTokens)}),jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"prompt tokens"}),jsxRuntimeExports.jsx("div",{children:numberToDigitsString(rt.promptTokens)}),jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"completion tokens"}),jsxRuntimeExports.jsx("div",{children:numberToDigitsString(rt.completionTokens)})]}),jsxRuntimeExports.jsxs("div",{className:et.overviewColumn,children:[jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"duration"}),jsxRuntimeExports.jsx("div",{children:j.end_time&&j.start_time?`${Math.round((j.end_time-j.start_time)*1e3).toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")} ms`:"N/A"}),jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"started at"}),jsxRuntimeExports.jsx("div",{children:j.start_time?timePDTFormatter(j.start_time*1e3):"N/A"}),jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"finished at"}),jsxRuntimeExports.jsx("div",{children:j.end_time?timePDTFormatter(j.end_time*1e3):"N/A"})]})]})})]}),jsxRuntimeExports.jsxs("div",{className:et.section,children:[jsxRuntimeExports.jsx("div",{className:et.sectionTitle,children:"Inputs"}),jsxRuntimeExports.jsx("div",{className:et.sectionContent,children:jsxRuntimeExports.jsx(_e,{src:nt})})]}),jsxRuntimeExports.jsxs("div",{className:et.section,children:[jsxRuntimeExports.jsx("div",{className:et.sectionTitle,children:"Outputs"}),jsxRuntimeExports.jsx("div",{className:et.sectionContent,children:jsxRuntimeExports.jsx(_e,{src:ot})})]})]})},traceMap=new Map,hashTraceName=j=>{let _e=0,et=0;if(j.length===0)return _e;for(let tt=0;ttj.map(_e=>{const et=uuid_1.v4();return traceMap.set(et,_e),{startTime:_e.start_time??performance.now(),endTime:_e.end_time??performance.now(),color:SystemColors[hashTraceName(_e.name??"")%systemColorsLength],id:et,name:_e.name??"",node_name:_e.node_name??"",output:_e.output??[],children:_e.children?parseTrace(_e.children):void 0}}),DefaultGridContainer=({children:j,className:_e})=>jsxRuntimeExports.jsx(Resizable,{enable:{right:!0},className:_e,defaultSize:{width:"50%",height:"100%"},children:j}),DefaultContainer=({children:j,className:_e})=>jsxRuntimeExports.jsx("div",{className:_e,children:j}),ApiLogs=reactExports.forwardRef(({traces:j,styles:_e,isDarkMode:et=!1,classNames:tt,RootContainer:rt=DefaultContainer,GridContainer:nt=DefaultGridContainer,DetailContainer:ot=DefaultContainer,renderDetail:it=ct=>jsxRuntimeExports.jsx(TraceDetailTemplate,{JSONView:dt=>jsxRuntimeExports.jsx("pre",{children:JSON.stringify(dt)}),trace:ct}),onChangeSelectedTrace:st,renderUnselectedHint:lt=()=>jsxRuntimeExports.jsx("div",{children:"Click on a row to see details"})},ut)=>{const ct=reactExports.useMemo(()=>j.reduce((St,$t)=>[...St,...parseTrace($t)],[]),[j]),dt=reactExports.useMemo(()=>new GanttViewModel,[]);reactExports.useEffect(()=>{dt.setTasks(ct)},[ct,dt]);const ft=useState(dt.selectedRowId$),pt=useSetState(dt.selectedRowId$),gt=reactExports.useMemo(()=>ft?traceMap.get(ft):void 0,[ft]),vt=reactExports.useMemo(()=>({..._e,grid:mergeStyles$1(_e==null?void 0:_e.grid,et?GanttGridTheme.Dark:GanttGridTheme.Light)}),[_e,et]),bt=mergeStyles$1({display:"flex",height:"100%",borderTop:"1px solid #ccc"},tt==null?void 0:tt.root),_t=mergeStyles$1({height:"100%",width:"100%",padding:16,borderRight:"1px solid #ccc"},tt==null?void 0:tt.gridContainer),xt=mergeStyles$1({height:"100%",width:"100%",padding:8},tt==null?void 0:tt.detailContainer),yt=reactExports.useCallback(St=>{var At;const $t=(At=ct.find(wt=>wt.node_name===St))==null?void 0:At.id;$t&&pt($t)},[ct,pt]);reactExports.useImperativeHandle(ut,()=>({setSelectedTraceRow:yt})),reactExports.useEffect(()=>{st&&st(gt)},[st,gt]),reactExports.useEffect(()=>{pt(void 0)},[j]);const Et=reactExports.useCallback(St=>{const $t={key:"token",name:"token",resizable:!0,width:60,renderHeaderCell(){return jsxRuntimeExports.jsx("div",{style:{textAlign:"right"},children:"Tokens"})},renderCell({row:Ct}){const It=getTokensUsageByRow(Ct),Ot=`prompt tokens: ${numberToDigitsString(It.promptTokens)}, + completion tokens: ${It.completionTokens}`;return jsxRuntimeExports.jsx("div",{style:{textAlign:"right"},title:Ot,children:numberToDigitsString(It.totalTokens)})}},[At,...wt]=St;return[At,$t,...wt]},[]);return jsxRuntimeExports.jsxs(rt,{className:bt,children:[jsxRuntimeExports.jsx(nt,{className:_t,children:jsxRuntimeExports.jsx(Gantt,{viewModel:dt,styles:vt,getColumns:Et})}),jsxRuntimeExports.jsx(ot,{className:xt,children:gt?it(gt):lt()})]})});ApiLogs.displayName="ApiLogs";const $global=function(){if(typeof globalThis<"u")return globalThis;if(typeof global<"u")return global;if(typeof self<"u")return self;if(typeof window<"u")return window;try{return new Function("return this")()}catch{return{}}}();$global.trustedTypes===void 0&&($global.trustedTypes={createPolicy:(j,_e)=>_e});const propConfig={configurable:!1,enumerable:!1,writable:!1};$global.FAST===void 0&&Reflect.defineProperty($global,"FAST",Object.assign({value:Object.create(null)},propConfig));const FAST=$global.FAST;if(FAST.getById===void 0){const j=Object.create(null);Reflect.defineProperty(FAST,"getById",Object.assign({value(_e,et){let tt=j[_e];return tt===void 0&&(tt=et?j[_e]=et():null),tt}},propConfig))}const emptyArray=Object.freeze([]);function createMetadataLocator(){const j=new WeakMap;return function(_e){let et=j.get(_e);if(et===void 0){let tt=Reflect.getPrototypeOf(_e);for(;et===void 0&&tt!==null;)et=j.get(tt),tt=Reflect.getPrototypeOf(tt);et=et===void 0?[]:et.slice(0),j.set(_e,et)}return et}}const updateQueue=$global.FAST.getById(1,()=>{const j=[],_e=[];function et(){if(_e.length)throw _e.shift()}function tt(ot){try{ot.call()}catch(it){_e.push(it),setTimeout(et,0)}}function rt(){let it=0;for(;it1024){for(let st=0,lt=j.length-it;stj});let htmlPolicy=fastHTMLPolicy;const marker=`fast-${Math.random().toString(36).substring(2,8)}`,_interpolationStart=`${marker}{`,_interpolationEnd=`}${marker}`,DOM=Object.freeze({supportsAdoptedStyleSheets:Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype,setHTMLPolicy(j){if(htmlPolicy!==fastHTMLPolicy)throw new Error("The HTML policy can only be set once.");htmlPolicy=j},createHTML(j){return htmlPolicy.createHTML(j)},isMarker(j){return j&&j.nodeType===8&&j.data.startsWith(marker)},extractDirectiveIndexFromMarker(j){return parseInt(j.data.replace(`${marker}:`,""))},createInterpolationPlaceholder(j){return`${_interpolationStart}${j}${_interpolationEnd}`},createCustomAttributePlaceholder(j,_e){return`${j}="${this.createInterpolationPlaceholder(_e)}"`},createBlockPlaceholder(j){return``},queueUpdate:updateQueue.enqueue,processUpdates:updateQueue.process,nextUpdate(){return new Promise(updateQueue.enqueue)},setAttribute(j,_e,et){et==null?j.removeAttribute(_e):j.setAttribute(_e,et)},setBooleanAttribute(j,_e,et){et?j.setAttribute(_e,""):j.removeAttribute(_e)},removeChildNodes(j){for(let _e=j.firstChild;_e!==null;_e=j.firstChild)j.removeChild(_e)},createTemplateWalker(j){return document.createTreeWalker(j,133,null,!1)}});class SubscriberSet{constructor(_e,et){this.sub1=void 0,this.sub2=void 0,this.spillover=void 0,this.source=_e,this.sub1=et}has(_e){return this.spillover===void 0?this.sub1===_e||this.sub2===_e:this.spillover.indexOf(_e)!==-1}subscribe(_e){const et=this.spillover;if(et===void 0){if(this.has(_e))return;if(this.sub1===void 0){this.sub1=_e;return}if(this.sub2===void 0){this.sub2=_e;return}this.spillover=[this.sub1,this.sub2,_e],this.sub1=void 0,this.sub2=void 0}else et.indexOf(_e)===-1&&et.push(_e)}unsubscribe(_e){const et=this.spillover;if(et===void 0)this.sub1===_e?this.sub1=void 0:this.sub2===_e&&(this.sub2=void 0);else{const tt=et.indexOf(_e);tt!==-1&&et.splice(tt,1)}}notify(_e){const et=this.spillover,tt=this.source;if(et===void 0){const rt=this.sub1,nt=this.sub2;rt!==void 0&&rt.handleChange(tt,_e),nt!==void 0&&nt.handleChange(tt,_e)}else for(let rt=0,nt=et.length;rt{const j=/(:|&&|\|\||if)/,_e=new WeakMap,et=DOM.queueUpdate;let tt,rt=lt=>{throw new Error("Must call enableArrayObservation before observing arrays.")};function nt(lt){let ut=lt.$fastController||_e.get(lt);return ut===void 0&&(Array.isArray(lt)?ut=rt(lt):_e.set(lt,ut=new PropertyChangeNotifier(lt))),ut}const ot=createMetadataLocator();class it{constructor(ut){this.name=ut,this.field=`_${ut}`,this.callback=`${ut}Changed`}getValue(ut){return tt!==void 0&&tt.watch(ut,this.name),ut[this.field]}setValue(ut,ct){const dt=this.field,ft=ut[dt];if(ft!==ct){ut[dt]=ct;const pt=ut[this.callback];typeof pt=="function"&&pt.call(ut,ft,ct),nt(ut).notify(this.name)}}}class st extends SubscriberSet{constructor(ut,ct,dt=!1){super(ut,ct),this.binding=ut,this.isVolatileBinding=dt,this.needsRefresh=!0,this.needsQueue=!0,this.first=this,this.last=null,this.propertySource=void 0,this.propertyName=void 0,this.notifier=void 0,this.next=void 0}observe(ut,ct){this.needsRefresh&&this.last!==null&&this.disconnect();const dt=tt;tt=this.needsRefresh?this:void 0,this.needsRefresh=this.isVolatileBinding;const ft=this.binding(ut,ct);return tt=dt,ft}disconnect(){if(this.last!==null){let ut=this.first;for(;ut!==void 0;)ut.notifier.unsubscribe(this,ut.propertyName),ut=ut.next;this.last=null,this.needsRefresh=this.needsQueue=!0}}watch(ut,ct){const dt=this.last,ft=nt(ut),pt=dt===null?this.first:{};if(pt.propertySource=ut,pt.propertyName=ct,pt.notifier=ft,ft.subscribe(this,ct),dt!==null){if(!this.needsRefresh){let gt;tt=void 0,gt=dt.propertySource[dt.propertyName],tt=this,ut===gt&&(this.needsRefresh=!0)}dt.next=pt}this.last=pt}handleChange(){this.needsQueue&&(this.needsQueue=!1,et(this))}call(){this.last!==null&&(this.needsQueue=!0,this.notify(this))}records(){let ut=this.first;return{next:()=>{const ct=ut;return ct===void 0?{value:void 0,done:!0}:(ut=ut.next,{value:ct,done:!1})},[Symbol.iterator]:function(){return this}}}}return Object.freeze({setArrayObserverFactory(lt){rt=lt},getNotifier:nt,track(lt,ut){tt!==void 0&&tt.watch(lt,ut)},trackVolatile(){tt!==void 0&&(tt.needsRefresh=!0)},notify(lt,ut){nt(lt).notify(ut)},defineProperty(lt,ut){typeof ut=="string"&&(ut=new it(ut)),ot(lt).push(ut),Reflect.defineProperty(lt,ut.name,{enumerable:!0,get:function(){return ut.getValue(this)},set:function(ct){ut.setValue(this,ct)}})},getAccessors:ot,binding(lt,ut,ct=this.isVolatileBinding(lt)){return new st(lt,ut,ct)},isVolatileBinding(lt){return j.test(lt.toString())}})});function observable(j,_e){Observable$1.defineProperty(j,_e)}function volatile(j,_e,et){return Object.assign({},et,{get:function(){return Observable$1.trackVolatile(),et.get.apply(this)}})}const contextEvent=FAST.getById(3,()=>{let j=null;return{get(){return j},set(_e){j=_e}}});class ExecutionContext{constructor(){this.index=0,this.length=0,this.parent=null,this.parentContext=null}get event(){return contextEvent.get()}get isEven(){return this.index%2===0}get isOdd(){return this.index%2!==0}get isFirst(){return this.index===0}get isInMiddle(){return!this.isFirst&&!this.isLast}get isLast(){return this.index===this.length-1}static setEvent(_e){contextEvent.set(_e)}}Observable$1.defineProperty(ExecutionContext.prototype,"index");Observable$1.defineProperty(ExecutionContext.prototype,"length");const defaultExecutionContext=Object.seal(new ExecutionContext);class HTMLDirective{constructor(){this.targetIndex=0}}class TargetedHTMLDirective extends HTMLDirective{constructor(){super(...arguments),this.createPlaceholder=DOM.createInterpolationPlaceholder}}class AttachedBehaviorHTMLDirective extends HTMLDirective{constructor(_e,et,tt){super(),this.name=_e,this.behavior=et,this.options=tt}createPlaceholder(_e){return DOM.createCustomAttributePlaceholder(this.name,_e)}createBehavior(_e){return new this.behavior(_e,this.options)}}function normalBind(j,_e){this.source=j,this.context=_e,this.bindingObserver===null&&(this.bindingObserver=Observable$1.binding(this.binding,this,this.isBindingVolatile)),this.updateTarget(this.bindingObserver.observe(j,_e))}function triggerBind(j,_e){this.source=j,this.context=_e,this.target.addEventListener(this.targetName,this)}function normalUnbind(){this.bindingObserver.disconnect(),this.source=null,this.context=null}function contentUnbind(){this.bindingObserver.disconnect(),this.source=null,this.context=null;const j=this.target.$fastView;j!==void 0&&j.isComposed&&(j.unbind(),j.needsBindOnly=!0)}function triggerUnbind(){this.target.removeEventListener(this.targetName,this),this.source=null,this.context=null}function updateAttributeTarget(j){DOM.setAttribute(this.target,this.targetName,j)}function updateBooleanAttributeTarget(j){DOM.setBooleanAttribute(this.target,this.targetName,j)}function updateContentTarget(j){if(j==null&&(j=""),j.create){this.target.textContent="";let _e=this.target.$fastView;_e===void 0?_e=j.create():this.target.$fastTemplate!==j&&(_e.isComposed&&(_e.remove(),_e.unbind()),_e=j.create()),_e.isComposed?_e.needsBindOnly&&(_e.needsBindOnly=!1,_e.bind(this.source,this.context)):(_e.isComposed=!0,_e.bind(this.source,this.context),_e.insertBefore(this.target),this.target.$fastView=_e,this.target.$fastTemplate=j)}else{const _e=this.target.$fastView;_e!==void 0&&_e.isComposed&&(_e.isComposed=!1,_e.remove(),_e.needsBindOnly?_e.needsBindOnly=!1:_e.unbind()),this.target.textContent=j}}function updatePropertyTarget(j){this.target[this.targetName]=j}function updateClassTarget(j){const _e=this.classVersions||Object.create(null),et=this.target;let tt=this.version||0;if(j!=null&&j.length){const rt=j.split(/\s+/);for(let nt=0,ot=rt.length;ntDOM.createHTML(et(tt,rt))}break;case"?":this.cleanedTargetName=_e.substr(1),this.updateTarget=updateBooleanAttributeTarget;break;case"@":this.cleanedTargetName=_e.substr(1),this.bind=triggerBind,this.unbind=triggerUnbind;break;default:this.cleanedTargetName=_e,_e==="class"&&(this.updateTarget=updateClassTarget);break}}targetAtContent(){this.updateTarget=updateContentTarget,this.unbind=contentUnbind}createBehavior(_e){return new BindingBehavior(_e,this.binding,this.isBindingVolatile,this.bind,this.unbind,this.updateTarget,this.cleanedTargetName)}}class BindingBehavior{constructor(_e,et,tt,rt,nt,ot,it){this.source=null,this.context=null,this.bindingObserver=null,this.target=_e,this.binding=et,this.isBindingVolatile=tt,this.bind=rt,this.unbind=nt,this.updateTarget=ot,this.targetName=it}handleChange(){this.updateTarget(this.bindingObserver.observe(this.source,this.context))}handleEvent(_e){ExecutionContext.setEvent(_e);const et=this.binding(this.source,this.context);ExecutionContext.setEvent(null),et!==!0&&_e.preventDefault()}}let sharedContext=null;class CompilationContext{addFactory(_e){_e.targetIndex=this.targetIndex,this.behaviorFactories.push(_e)}captureContentBinding(_e){_e.targetAtContent(),this.addFactory(_e)}reset(){this.behaviorFactories=[],this.targetIndex=-1}release(){sharedContext=this}static borrow(_e){const et=sharedContext||new CompilationContext;return et.directives=_e,et.reset(),sharedContext=null,et}}function createAggregateBinding(j){if(j.length===1)return j[0];let _e;const et=j.length,tt=j.map(ot=>typeof ot=="string"?()=>ot:(_e=ot.targetName||_e,ot.binding)),rt=(ot,it)=>{let st="";for(let lt=0;ltit),lt.targetName=ot.name):lt=createAggregateBinding(st),lt!==null&&(_e.removeAttributeNode(ot),rt--,nt--,j.addFactory(lt))}}function compileContent(j,_e,et){const tt=parseContent(j,_e.textContent);if(tt!==null){let rt=_e;for(let nt=0,ot=tt.length;nt0}const et=this.fragment.cloneNode(!0),tt=this.viewBehaviorFactories,rt=new Array(this.behaviorCount),nt=DOM.createTemplateWalker(et);let ot=0,it=this.targetOffset,st=nt.nextNode();for(let lt=tt.length;ot=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function html$4(j,..._e){const et=[];let tt="";for(let rt=0,nt=j.length-1;rtst}if(typeof it=="function"&&(it=new HTMLBindingDirective(it)),it instanceof TargetedHTMLDirective){const st=lastAttributeNameRegex.exec(ot);st!==null&&(it.targetName=st[2])}it instanceof HTMLDirective?(tt+=it.createPlaceholder(et.length),et.push(it)):tt+=it}return tt+=j[j.length-1],new ViewTemplate(tt,et)}class ElementStyles{constructor(){this.targets=new WeakSet}addStylesTo(_e){this.targets.add(_e)}removeStylesFrom(_e){this.targets.delete(_e)}isAttachedTo(_e){return this.targets.has(_e)}withBehaviors(..._e){return this.behaviors=this.behaviors===null?_e:this.behaviors.concat(_e),this}}ElementStyles.create=(()=>{if(DOM.supportsAdoptedStyleSheets){const j=new Map;return _e=>new AdoptedStyleSheetsStyles(_e,j)}return j=>new StyleElementStyles(j)})();function reduceStyles(j){return j.map(_e=>_e instanceof ElementStyles?reduceStyles(_e.styles):[_e]).reduce((_e,et)=>_e.concat(et),[])}function reduceBehaviors(j){return j.map(_e=>_e instanceof ElementStyles?_e.behaviors:null).reduce((_e,et)=>et===null?_e:(_e===null&&(_e=[]),_e.concat(et)),null)}let addAdoptedStyleSheets=(j,_e)=>{j.adoptedStyleSheets=[...j.adoptedStyleSheets,..._e]},removeAdoptedStyleSheets=(j,_e)=>{j.adoptedStyleSheets=j.adoptedStyleSheets.filter(et=>_e.indexOf(et)===-1)};if(DOM.supportsAdoptedStyleSheets)try{document.adoptedStyleSheets.push(),document.adoptedStyleSheets.splice(),addAdoptedStyleSheets=(j,_e)=>{j.adoptedStyleSheets.push(..._e)},removeAdoptedStyleSheets=(j,_e)=>{for(const et of _e){const tt=j.adoptedStyleSheets.indexOf(et);tt!==-1&&j.adoptedStyleSheets.splice(tt,1)}}}catch{}class AdoptedStyleSheetsStyles extends ElementStyles{constructor(_e,et){super(),this.styles=_e,this.styleSheetCache=et,this._styleSheets=void 0,this.behaviors=reduceBehaviors(_e)}get styleSheets(){if(this._styleSheets===void 0){const _e=this.styles,et=this.styleSheetCache;this._styleSheets=reduceStyles(_e).map(tt=>{if(tt instanceof CSSStyleSheet)return tt;let rt=et.get(tt);return rt===void 0&&(rt=new CSSStyleSheet,rt.replaceSync(tt),et.set(tt,rt)),rt})}return this._styleSheets}addStylesTo(_e){addAdoptedStyleSheets(_e,this.styleSheets),super.addStylesTo(_e)}removeStylesFrom(_e){removeAdoptedStyleSheets(_e,this.styleSheets),super.removeStylesFrom(_e)}}let styleClassId=0;function getNextStyleClass(){return`fast-style-class-${++styleClassId}`}class StyleElementStyles extends ElementStyles{constructor(_e){super(),this.styles=_e,this.behaviors=null,this.behaviors=reduceBehaviors(_e),this.styleSheets=reduceStyles(_e),this.styleClass=getNextStyleClass()}addStylesTo(_e){const et=this.styleSheets,tt=this.styleClass;_e=this.normalizeTarget(_e);for(let rt=0;rt{tt.add(_e);const rt=_e[this.fieldName];switch(et){case"reflect":const nt=this.converter;DOM.setAttribute(_e,this.attribute,nt!==void 0?nt.toView(rt):rt);break;case"boolean":DOM.setBooleanAttribute(_e,this.attribute,rt);break}tt.delete(_e)})}static collect(_e,...et){const tt=[];et.push(AttributeConfiguration.locate(_e));for(let rt=0,nt=et.length;rt1&&(et.property=nt),AttributeConfiguration.locate(rt.constructor).push(et)}if(arguments.length>1){et={},tt(j,_e);return}return et=j===void 0?{}:j,tt}const defaultShadowOptions={mode:"open"},defaultElementOptions={},fastRegistry=FAST.getById(4,()=>{const j=new Map;return Object.freeze({register(_e){return j.has(_e.type)?!1:(j.set(_e.type,_e),!0)},getByType(_e){return j.get(_e)}})});class FASTElementDefinition{constructor(_e,et=_e.definition){typeof et=="string"&&(et={name:et}),this.type=_e,this.name=et.name,this.template=et.template;const tt=AttributeDefinition.collect(_e,et.attributes),rt=new Array(tt.length),nt={},ot={};for(let it=0,st=tt.length;it0){const nt=this.boundObservables=Object.create(null);for(let ot=0,it=rt.length;ot0||et>0;){if(_e===0){rt.push(EDIT_ADD),et--;continue}if(et===0){rt.push(EDIT_DELETE),_e--;continue}const nt=j[_e-1][et-1],ot=j[_e-1][et],it=j[_e][et-1];let st;ot=0){j.splice(it,1),it--,ot-=st.addedCount-st.removed.length,rt.addedCount+=st.addedCount-lt;const ut=rt.removed.length+st.removed.length-lt;if(!rt.addedCount&&!ut)nt=!0;else{let ct=st.removed;if(rt.indexst.index+st.addedCount){const dt=rt.removed.slice(st.index+st.addedCount-rt.index);$push.apply(ct,dt)}rt.removed=ct,st.indextt?et=tt-j.addedCount:et<0&&(et=tt+j.removed.length+et-j.addedCount),et<0&&(et=0),j.index=et,j}class ArrayObserver extends SubscriberSet{constructor(_e){super(_e),this.oldCollection=void 0,this.splices=void 0,this.needsQueue=!0,this.call=this.flush,Reflect.defineProperty(_e,"$fastController",{value:this,enumerable:!1})}subscribe(_e){this.flush(),super.subscribe(_e)}addSplice(_e){this.splices===void 0?this.splices=[_e]:this.splices.push(_e),this.needsQueue&&(this.needsQueue=!1,DOM.queueUpdate(this))}reset(_e){this.oldCollection=_e,this.needsQueue&&(this.needsQueue=!1,DOM.queueUpdate(this))}flush(){const _e=this.splices,et=this.oldCollection;if(_e===void 0&&et===void 0)return;this.needsQueue=!0,this.splices=void 0,this.oldCollection=void 0;const tt=et===void 0?projectArraySplices(this.source,_e):calcSplices(this.source,0,this.source.length,et,0,et.length);this.notify(tt)}}function enableArrayObservation(){if(arrayObservationEnabled)return;arrayObservationEnabled=!0,Observable$1.setArrayObserverFactory(st=>new ArrayObserver(st));const j=Array.prototype;if(j.$fastPatch)return;Reflect.defineProperty(j,"$fastPatch",{value:1,enumerable:!1});const _e=j.pop,et=j.push,tt=j.reverse,rt=j.shift,nt=j.sort,ot=j.splice,it=j.unshift;j.pop=function(){const st=this.length>0,lt=_e.apply(this,arguments),ut=this.$fastController;return ut!==void 0&&st&&ut.addSplice(newSplice(this.length,[lt],0)),lt},j.push=function(){const st=et.apply(this,arguments),lt=this.$fastController;return lt!==void 0&<.addSplice(adjustIndex(newSplice(this.length-arguments.length,[],arguments.length),this)),st},j.reverse=function(){let st;const lt=this.$fastController;lt!==void 0&&(lt.flush(),st=this.slice());const ut=tt.apply(this,arguments);return lt!==void 0&<.reset(st),ut},j.shift=function(){const st=this.length>0,lt=rt.apply(this,arguments),ut=this.$fastController;return ut!==void 0&&st&&ut.addSplice(newSplice(0,[lt],0)),lt},j.sort=function(){let st;const lt=this.$fastController;lt!==void 0&&(lt.flush(),st=this.slice());const ut=nt.apply(this,arguments);return lt!==void 0&<.reset(st),ut},j.splice=function(){const st=ot.apply(this,arguments),lt=this.$fastController;return lt!==void 0&<.addSplice(adjustIndex(newSplice(+arguments[0],st,arguments.length>2?arguments.length-2:0),this)),st},j.unshift=function(){const st=it.apply(this,arguments),lt=this.$fastController;return lt!==void 0&<.addSplice(adjustIndex(newSplice(0,[],arguments.length),this)),st}}class RefBehavior{constructor(_e,et){this.target=_e,this.propertyName=et}bind(_e){_e[this.propertyName]=this.target}unbind(){}}function ref(j){return new AttachedBehaviorHTMLDirective("fast-ref",RefBehavior,j)}const isFunction$1=j=>typeof j=="function",noTemplate=()=>null;function normalizeBinding(j){return j===void 0?noTemplate:isFunction$1(j)?j:()=>j}function when(j,_e,et){const tt=isFunction$1(j)?j:()=>j,rt=normalizeBinding(_e),nt=normalizeBinding(et);return(ot,it)=>tt(ot,it)?rt(ot,it):nt(ot,it)}function bindWithoutPositioning(j,_e,et,tt){j.bind(_e[et],tt)}function bindWithPositioning(j,_e,et,tt){const rt=Object.create(tt);rt.index=et,rt.length=_e.length,j.bind(_e[et],rt)}class RepeatBehavior{constructor(_e,et,tt,rt,nt,ot){this.location=_e,this.itemsBinding=et,this.templateBinding=rt,this.options=ot,this.source=null,this.views=[],this.items=null,this.itemsObserver=null,this.originalContext=void 0,this.childContext=void 0,this.bindView=bindWithoutPositioning,this.itemsBindingObserver=Observable$1.binding(et,this,tt),this.templateBindingObserver=Observable$1.binding(rt,this,nt),ot.positioning&&(this.bindView=bindWithPositioning)}bind(_e,et){this.source=_e,this.originalContext=et,this.childContext=Object.create(et),this.childContext.parent=_e,this.childContext.parentContext=this.originalContext,this.items=this.itemsBindingObserver.observe(_e,this.originalContext),this.template=this.templateBindingObserver.observe(_e,this.originalContext),this.observeItems(!0),this.refreshAllViews()}unbind(){this.source=null,this.items=null,this.itemsObserver!==null&&this.itemsObserver.unsubscribe(this),this.unbindAllViews(),this.itemsBindingObserver.disconnect(),this.templateBindingObserver.disconnect()}handleChange(_e,et){_e===this.itemsBinding?(this.items=this.itemsBindingObserver.observe(this.source,this.originalContext),this.observeItems(),this.refreshAllViews()):_e===this.templateBinding?(this.template=this.templateBindingObserver.observe(this.source,this.originalContext),this.refreshAllViews(!0)):this.updateViews(et)}observeItems(_e=!1){if(!this.items){this.items=emptyArray;return}const et=this.itemsObserver,tt=this.itemsObserver=Observable$1.getNotifier(this.items),rt=et!==tt;rt&&et!==null&&et.unsubscribe(this),(rt||_e)&&tt.subscribe(this)}updateViews(_e){const et=this.childContext,tt=this.views,rt=this.bindView,nt=this.items,ot=this.template,it=this.options.recycle,st=[];let lt=0,ut=0;for(let ct=0,dt=_e.length;ct0?(gt<=xt&&_t.length>0?(St=_t[gt],gt++):(St=st[lt],lt++),ut--):St=ot.create(),tt.splice(vt,0,St),rt(St,nt,vt,et),St.insertBefore(Et)}_t[gt]&&st.push(..._t.slice(gt))}for(let ct=lt,dt=st.length;cttt.name===et),this.source=_e,this.updateTarget(this.computeNodes()),this.shouldUpdate&&this.observe()}unbind(){this.updateTarget(emptyArray),this.source=null,this.shouldUpdate&&this.disconnect()}handleEvent(){this.updateTarget(this.computeNodes())}computeNodes(){let _e=this.getNodes();return this.options.filter!==void 0&&(_e=_e.filter(this.options.filter)),_e}updateTarget(_e){this.source[this.options.property]=_e}}class SlottedBehavior extends NodeObservationBehavior{constructor(_e,et){super(_e,et)}observe(){this.target.addEventListener("slotchange",this)}disconnect(){this.target.removeEventListener("slotchange",this)}getNodes(){return this.target.assignedNodes(this.options)}}function slotted(j){return typeof j=="string"&&(j={property:j}),new AttachedBehaviorHTMLDirective("fast-slotted",SlottedBehavior,j)}class ChildrenBehavior extends NodeObservationBehavior{constructor(_e,et){super(_e,et),this.observer=null,et.childList=!0}observe(){this.observer===null&&(this.observer=new MutationObserver(this.handleEvent.bind(this))),this.observer.observe(this.target,this.options)}disconnect(){this.observer.disconnect()}getNodes(){return"subtree"in this.options?Array.from(this.target.querySelectorAll(this.options.selector)):Array.from(this.target.childNodes)}}function children(j){return typeof j=="string"&&(j={property:j}),new AttachedBehaviorHTMLDirective("fast-children",ChildrenBehavior,j)}class StartEnd{handleStartContentChange(){this.startContainer.classList.toggle("start",this.start.assignedNodes().length>0)}handleEndContentChange(){this.endContainer.classList.toggle("end",this.end.assignedNodes().length>0)}}const endSlotTemplate=(j,_e)=>html$4` + _e.end?"end":void 0} + > + + ${_e.end||""} + + +`,startSlotTemplate=(j,_e)=>html$4` + + + ${_e.start||""} + + +`;html$4` + + + +`;html$4` + + + +`;/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */function __decorate(j,_e,et,tt){var rt=arguments.length,nt=rt<3?_e:tt===null?tt=Object.getOwnPropertyDescriptor(_e,et):tt,ot;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")nt=Reflect.decorate(j,_e,et,tt);else for(var it=j.length-1;it>=0;it--)(ot=j[it])&&(nt=(rt<3?ot(nt):rt>3?ot(_e,et,nt):ot(_e,et))||nt);return rt>3&&nt&&Object.defineProperty(_e,et,nt),nt}const metadataByTarget=new Map;"metadata"in Reflect||(Reflect.metadata=function(j,_e){return function(et){Reflect.defineMetadata(j,_e,et)}},Reflect.defineMetadata=function(j,_e,et){let tt=metadataByTarget.get(et);tt===void 0&&metadataByTarget.set(et,tt=new Map),tt.set(j,_e)},Reflect.getOwnMetadata=function(j,_e){const et=metadataByTarget.get(_e);if(et!==void 0)return et.get(j)});class ResolverBuilder{constructor(_e,et){this.container=_e,this.key=et}instance(_e){return this.registerResolver(0,_e)}singleton(_e){return this.registerResolver(1,_e)}transient(_e){return this.registerResolver(2,_e)}callback(_e){return this.registerResolver(3,_e)}cachedCallback(_e){return this.registerResolver(3,cacheCallbackResult(_e))}aliasTo(_e){return this.registerResolver(5,_e)}registerResolver(_e,et){const{container:tt,key:rt}=this;return this.container=this.key=void 0,tt.registerResolver(rt,new ResolverImpl(rt,_e,et))}}function cloneArrayWithPossibleProps(j){const _e=j.slice(),et=Object.keys(j),tt=et.length;let rt;for(let nt=0;ntnull,responsibleForOwnerRequests:!1,defaultResolver:DefaultResolver.singleton})}),dependencyLookup=new Map;function getParamTypes(j){return _e=>Reflect.getOwnMetadata(j,_e)}let rootDOMContainer=null;const DI=Object.freeze({createContainer(j){return new ContainerImpl(null,Object.assign({},ContainerConfiguration.default,j))},findResponsibleContainer(j){const _e=j.$$container$$;return _e&&_e.responsibleForOwnerRequests?_e:DI.findParentContainer(j)},findParentContainer(j){const _e=new CustomEvent(DILocateParentEventType,{bubbles:!0,composed:!0,cancelable:!0,detail:{container:void 0}});return j.dispatchEvent(_e),_e.detail.container||DI.getOrCreateDOMContainer()},getOrCreateDOMContainer(j,_e){return j?j.$$container$$||new ContainerImpl(j,Object.assign({},ContainerConfiguration.default,_e,{parentLocator:DI.findParentContainer})):rootDOMContainer||(rootDOMContainer=new ContainerImpl(null,Object.assign({},ContainerConfiguration.default,_e,{parentLocator:()=>null})))},getDesignParamtypes:getParamTypes("design:paramtypes"),getAnnotationParamtypes:getParamTypes("di:paramtypes"),getOrCreateAnnotationParamTypes(j){let _e=this.getAnnotationParamtypes(j);return _e===void 0&&Reflect.defineMetadata("di:paramtypes",_e=[],j),_e},getDependencies(j){let _e=dependencyLookup.get(j);if(_e===void 0){const et=j.inject;if(et===void 0){const tt=DI.getDesignParamtypes(j),rt=DI.getAnnotationParamtypes(j);if(tt===void 0)if(rt===void 0){const nt=Object.getPrototypeOf(j);typeof nt=="function"&&nt!==Function.prototype?_e=cloneArrayWithPossibleProps(DI.getDependencies(nt)):_e=[]}else _e=cloneArrayWithPossibleProps(rt);else if(rt===void 0)_e=cloneArrayWithPossibleProps(tt);else{_e=cloneArrayWithPossibleProps(tt);let nt=rt.length,ot;for(let lt=0;lt{const ut=DI.findResponsibleContainer(this).get(et),ct=this[rt];ut!==ct&&(this[rt]=nt,it.notify(_e))};it.subscribe({handleChange:st},"isConnected")}return nt}})},createInterface(j,_e){const et=typeof j=="function"?j:_e,tt=typeof j=="string"?j:j&&"friendlyName"in j&&j.friendlyName||defaultFriendlyName,rt=typeof j=="string"?!1:j&&"respectConnection"in j&&j.respectConnection||!1,nt=function(ot,it,st){if(ot==null||new.target!==void 0)throw new Error(`No registration for interface: '${nt.friendlyName}'`);if(it)DI.defineProperty(ot,it,nt,rt);else{const lt=DI.getOrCreateAnnotationParamTypes(ot);lt[st]=nt}};return nt.$isInterface=!0,nt.friendlyName=tt??"(anonymous)",et!=null&&(nt.register=function(ot,it){return et(new ResolverBuilder(ot,it??nt))}),nt.toString=function(){return`InterfaceSymbol<${nt.friendlyName}>`},nt},inject(...j){return function(_e,et,tt){if(typeof tt=="number"){const rt=DI.getOrCreateAnnotationParamTypes(_e),nt=j[0];nt!==void 0&&(rt[tt]=nt)}else if(et)DI.defineProperty(_e,et,j[0]);else{const rt=tt?DI.getOrCreateAnnotationParamTypes(tt.value):DI.getOrCreateAnnotationParamTypes(_e);let nt;for(let ot=0;ot{tt.composedPath()[0]!==this.owner&&(tt.detail.container=this,tt.stopImmediatePropagation())})}get parent(){return this._parent===void 0&&(this._parent=this.config.parentLocator(this.owner)),this._parent}get depth(){return this.parent===null?0:this.parent.depth+1}get responsibleForOwnerRequests(){return this.config.responsibleForOwnerRequests}registerWithContext(_e,...et){return this.context=_e,this.register(...et),this.context=null,this}register(..._e){if(++this.registerDepth===100)throw new Error("Unable to autoregister dependency");let et,tt,rt,nt,ot;const it=this.context;for(let st=0,lt=_e.length;stthis}))}jitRegister(_e,et){if(typeof _e!="function")throw new Error(`Attempted to jitRegister something that is not a constructor: '${_e}'. Did you forget to register this dependency?`);if(InstrinsicTypeNames.has(_e.name))throw new Error(`Attempted to jitRegister an intrinsic type: ${_e.name}. Did you forget to add @inject(Key)`);if(isRegistry(_e)){const tt=_e.register(et);if(!(tt instanceof Object)||tt.resolve==null){const rt=et.resolvers.get(_e);if(rt!=null)return rt;throw new Error("A valid resolver was not returned from the static register method")}return tt}else{if(_e.$isInterface)throw new Error(`Attempted to jitRegister an interface: ${_e.friendlyName}`);{const tt=this.config.defaultResolver(_e,et);return et.resolvers.set(_e,tt),tt}}}}const cache=new WeakMap;function cacheCallbackResult(j){return function(_e,et,tt){if(cache.has(tt))return cache.get(tt);const rt=j(_e,et,tt);return cache.set(tt,rt),rt}}const Registration=Object.freeze({instance(j,_e){return new ResolverImpl(j,0,_e)},singleton(j,_e){return new ResolverImpl(j,1,_e)},transient(j,_e){return new ResolverImpl(j,2,_e)},callback(j,_e){return new ResolverImpl(j,3,_e)},cachedCallback(j,_e){return new ResolverImpl(j,3,cacheCallbackResult(_e))},aliasTo(j,_e){return new ResolverImpl(_e,5,j)}});function validateKey(j){if(j==null)throw new Error("key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?")}function buildAllResponse(j,_e,et){if(j instanceof ResolverImpl&&j.strategy===4){const tt=j.state;let rt=tt.length;const nt=new Array(rt);for(;rt--;)nt[rt]=tt[rt].resolve(_e,et);return nt}return[j.resolve(_e,et)]}const defaultFriendlyName="(anonymous)";function isObject$l(j){return typeof j=="object"&&j!==null||typeof j=="function"}const isNativeFunction=function(){const j=new WeakMap;let _e=!1,et="",tt=0;return function(rt){return _e=j.get(rt),_e===void 0&&(et=rt.toString(),tt=et.length,_e=tt>=29&&tt<=100&&et.charCodeAt(tt-1)===125&&et.charCodeAt(tt-2)<=32&&et.charCodeAt(tt-3)===93&&et.charCodeAt(tt-4)===101&&et.charCodeAt(tt-5)===100&&et.charCodeAt(tt-6)===111&&et.charCodeAt(tt-7)===99&&et.charCodeAt(tt-8)===32&&et.charCodeAt(tt-9)===101&&et.charCodeAt(tt-10)===118&&et.charCodeAt(tt-11)===105&&et.charCodeAt(tt-12)===116&&et.charCodeAt(tt-13)===97&&et.charCodeAt(tt-14)===110&&et.charCodeAt(tt-15)===88,j.set(rt,_e)),_e}}(),isNumericLookup={};function isArrayIndex(j){switch(typeof j){case"number":return j>=0&&(j|0)===j;case"string":{const _e=isNumericLookup[j];if(_e!==void 0)return _e;const et=j.length;if(et===0)return isNumericLookup[j]=!1;let tt=0;for(let rt=0;rt1||tt<48||tt>57)return isNumericLookup[j]=!1;return isNumericLookup[j]=!0}default:return!1}}function presentationKeyFromTag(j){return`${j.toLowerCase()}:presentation`}const presentationRegistry=new Map,ComponentPresentation=Object.freeze({define(j,_e,et){const tt=presentationKeyFromTag(j);presentationRegistry.get(tt)===void 0?presentationRegistry.set(tt,_e):presentationRegistry.set(tt,!1),et.register(Registration.instance(tt,_e))},forTag(j,_e){const et=presentationKeyFromTag(j),tt=presentationRegistry.get(et);return tt===!1?DI.findResponsibleContainer(_e).get(et):tt||null}});class DefaultComponentPresentation{constructor(_e,et){this.template=_e||null,this.styles=et===void 0?null:Array.isArray(et)?ElementStyles.create(et):et instanceof ElementStyles?et:ElementStyles.create([et])}applyTo(_e){const et=_e.$fastController;et.template===null&&(et.template=this.template),et.styles===null&&(et.styles=this.styles)}}class FoundationElement extends FASTElement{constructor(){super(...arguments),this._presentation=void 0}get $presentation(){return this._presentation===void 0&&(this._presentation=ComponentPresentation.forTag(this.tagName,this)),this._presentation}templateChanged(){this.template!==void 0&&(this.$fastController.template=this.template)}stylesChanged(){this.styles!==void 0&&(this.$fastController.styles=this.styles)}connectedCallback(){this.$presentation!==null&&this.$presentation.applyTo(this),super.connectedCallback()}static compose(_e){return(et={})=>new FoundationElementRegistry(this===FoundationElement?class extends FoundationElement{}:this,_e,et)}}__decorate([observable],FoundationElement.prototype,"template",void 0);__decorate([observable],FoundationElement.prototype,"styles",void 0);function resolveOption(j,_e,et){return typeof j=="function"?j(_e,et):j}class FoundationElementRegistry{constructor(_e,et,tt){this.type=_e,this.elementDefinition=et,this.overrideDefinition=tt,this.definition=Object.assign(Object.assign({},this.elementDefinition),this.overrideDefinition)}register(_e,et){const tt=this.definition,rt=this.overrideDefinition,ot=`${tt.prefix||et.elementPrefix}-${tt.baseName}`;et.tryDefineElement({name:ot,type:this.type,baseClass:this.elementDefinition.baseClass,callback:it=>{const st=new DefaultComponentPresentation(resolveOption(tt.template,it,tt),resolveOption(tt.styles,it,tt));it.definePresentation(st);let lt=resolveOption(tt.shadowOptions,it,tt);it.shadowRootMode&&(lt?rt.shadowOptions||(lt.mode=it.shadowRootMode):lt!==null&&(lt={mode:it.shadowRootMode})),it.defineElement({elementOptions:resolveOption(tt.elementOptions,it,tt),shadowOptions:lt,attributes:resolveOption(tt.attributes,it,tt)})}})}}function applyMixins(j,..._e){const et=AttributeConfiguration.locate(j);_e.forEach(tt=>{Object.getOwnPropertyNames(tt.prototype).forEach(nt=>{nt!=="constructor"&&Object.defineProperty(j.prototype,nt,Object.getOwnPropertyDescriptor(tt.prototype,nt))}),AttributeConfiguration.locate(tt).forEach(nt=>et.push(nt))})}const Orientation={horizontal:"horizontal",vertical:"vertical"};function findLastIndex(j,_e){let et=j.length;for(;et--;)if(_e(j[et],et,j))return et;return-1}function canUseDOM$1(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}function isHTMLElement$1(...j){return j.every(_e=>_e instanceof HTMLElement)}function getNonce(){const j=document.querySelector('meta[property="csp-nonce"]');return j?j.getAttribute("content"):null}let _canUseFocusVisible;function canUseFocusVisible(){if(typeof _canUseFocusVisible=="boolean")return _canUseFocusVisible;if(!canUseDOM$1())return _canUseFocusVisible=!1,_canUseFocusVisible;const j=document.createElement("style"),_e=getNonce();_e!==null&&j.setAttribute("nonce",_e),document.head.appendChild(j);try{j.sheet.insertRule("foo:focus-visible {color:inherit}",0),_canUseFocusVisible=!0}catch{_canUseFocusVisible=!1}finally{document.head.removeChild(j)}return _canUseFocusVisible}const eventFocus="focus",eventFocusIn="focusin",eventFocusOut="focusout",eventKeyDown="keydown";var KeyCodes;(function(j){j[j.alt=18]="alt",j[j.arrowDown=40]="arrowDown",j[j.arrowLeft=37]="arrowLeft",j[j.arrowRight=39]="arrowRight",j[j.arrowUp=38]="arrowUp",j[j.back=8]="back",j[j.backSlash=220]="backSlash",j[j.break=19]="break",j[j.capsLock=20]="capsLock",j[j.closeBracket=221]="closeBracket",j[j.colon=186]="colon",j[j.colon2=59]="colon2",j[j.comma=188]="comma",j[j.ctrl=17]="ctrl",j[j.delete=46]="delete",j[j.end=35]="end",j[j.enter=13]="enter",j[j.equals=187]="equals",j[j.equals2=61]="equals2",j[j.equals3=107]="equals3",j[j.escape=27]="escape",j[j.forwardSlash=191]="forwardSlash",j[j.function1=112]="function1",j[j.function10=121]="function10",j[j.function11=122]="function11",j[j.function12=123]="function12",j[j.function2=113]="function2",j[j.function3=114]="function3",j[j.function4=115]="function4",j[j.function5=116]="function5",j[j.function6=117]="function6",j[j.function7=118]="function7",j[j.function8=119]="function8",j[j.function9=120]="function9",j[j.home=36]="home",j[j.insert=45]="insert",j[j.menu=93]="menu",j[j.minus=189]="minus",j[j.minus2=109]="minus2",j[j.numLock=144]="numLock",j[j.numPad0=96]="numPad0",j[j.numPad1=97]="numPad1",j[j.numPad2=98]="numPad2",j[j.numPad3=99]="numPad3",j[j.numPad4=100]="numPad4",j[j.numPad5=101]="numPad5",j[j.numPad6=102]="numPad6",j[j.numPad7=103]="numPad7",j[j.numPad8=104]="numPad8",j[j.numPad9=105]="numPad9",j[j.numPadDivide=111]="numPadDivide",j[j.numPadDot=110]="numPadDot",j[j.numPadMinus=109]="numPadMinus",j[j.numPadMultiply=106]="numPadMultiply",j[j.numPadPlus=107]="numPadPlus",j[j.openBracket=219]="openBracket",j[j.pageDown=34]="pageDown",j[j.pageUp=33]="pageUp",j[j.period=190]="period",j[j.print=44]="print",j[j.quote=222]="quote",j[j.scrollLock=145]="scrollLock",j[j.shift=16]="shift",j[j.space=32]="space",j[j.tab=9]="tab",j[j.tilde=192]="tilde",j[j.windowsLeft=91]="windowsLeft",j[j.windowsOpera=219]="windowsOpera",j[j.windowsRight=92]="windowsRight"})(KeyCodes||(KeyCodes={}));const keyArrowDown="ArrowDown",keyArrowLeft="ArrowLeft",keyArrowRight="ArrowRight",keyArrowUp="ArrowUp",keyEnter="Enter",keyEscape="Escape",keyHome="Home",keyEnd="End",keyFunction2="F2",keyPageDown="PageDown",keyPageUp="PageUp",keySpace=" ",keyTab="Tab",ArrowKeys={ArrowDown:keyArrowDown,ArrowLeft:keyArrowLeft,ArrowRight:keyArrowRight,ArrowUp:keyArrowUp};var Direction;(function(j){j.ltr="ltr",j.rtl="rtl"})(Direction||(Direction={}));function limit(j,_e,et){return Math.min(Math.max(et,j),_e)}function inRange(j,_e,et=0){return[_e,et]=[_e,et].sort((tt,rt)=>tt-rt),_e<=j&&jhtml$4` + + ${startSlotTemplate(j,_e)} + + + + ${endSlotTemplate(j,_e)} + +`;class ARIAGlobalStatesAndProperties{}__decorate([attr({attribute:"aria-atomic"})],ARIAGlobalStatesAndProperties.prototype,"ariaAtomic",void 0);__decorate([attr({attribute:"aria-busy"})],ARIAGlobalStatesAndProperties.prototype,"ariaBusy",void 0);__decorate([attr({attribute:"aria-controls"})],ARIAGlobalStatesAndProperties.prototype,"ariaControls",void 0);__decorate([attr({attribute:"aria-current"})],ARIAGlobalStatesAndProperties.prototype,"ariaCurrent",void 0);__decorate([attr({attribute:"aria-describedby"})],ARIAGlobalStatesAndProperties.prototype,"ariaDescribedby",void 0);__decorate([attr({attribute:"aria-details"})],ARIAGlobalStatesAndProperties.prototype,"ariaDetails",void 0);__decorate([attr({attribute:"aria-disabled"})],ARIAGlobalStatesAndProperties.prototype,"ariaDisabled",void 0);__decorate([attr({attribute:"aria-errormessage"})],ARIAGlobalStatesAndProperties.prototype,"ariaErrormessage",void 0);__decorate([attr({attribute:"aria-flowto"})],ARIAGlobalStatesAndProperties.prototype,"ariaFlowto",void 0);__decorate([attr({attribute:"aria-haspopup"})],ARIAGlobalStatesAndProperties.prototype,"ariaHaspopup",void 0);__decorate([attr({attribute:"aria-hidden"})],ARIAGlobalStatesAndProperties.prototype,"ariaHidden",void 0);__decorate([attr({attribute:"aria-invalid"})],ARIAGlobalStatesAndProperties.prototype,"ariaInvalid",void 0);__decorate([attr({attribute:"aria-keyshortcuts"})],ARIAGlobalStatesAndProperties.prototype,"ariaKeyshortcuts",void 0);__decorate([attr({attribute:"aria-label"})],ARIAGlobalStatesAndProperties.prototype,"ariaLabel",void 0);__decorate([attr({attribute:"aria-labelledby"})],ARIAGlobalStatesAndProperties.prototype,"ariaLabelledby",void 0);__decorate([attr({attribute:"aria-live"})],ARIAGlobalStatesAndProperties.prototype,"ariaLive",void 0);__decorate([attr({attribute:"aria-owns"})],ARIAGlobalStatesAndProperties.prototype,"ariaOwns",void 0);__decorate([attr({attribute:"aria-relevant"})],ARIAGlobalStatesAndProperties.prototype,"ariaRelevant",void 0);__decorate([attr({attribute:"aria-roledescription"})],ARIAGlobalStatesAndProperties.prototype,"ariaRoledescription",void 0);class Anchor extends FoundationElement{constructor(){super(...arguments),this.handleUnsupportedDelegatesFocus=()=>{var _e;window.ShadowRoot&&!window.ShadowRoot.prototype.hasOwnProperty("delegatesFocus")&&(!((_e=this.$fastController.definition.shadowOptions)===null||_e===void 0)&&_e.delegatesFocus)&&(this.focus=()=>{var et;(et=this.control)===null||et===void 0||et.focus()})}}connectedCallback(){super.connectedCallback(),this.handleUnsupportedDelegatesFocus()}}__decorate([attr],Anchor.prototype,"download",void 0);__decorate([attr],Anchor.prototype,"href",void 0);__decorate([attr],Anchor.prototype,"hreflang",void 0);__decorate([attr],Anchor.prototype,"ping",void 0);__decorate([attr],Anchor.prototype,"referrerpolicy",void 0);__decorate([attr],Anchor.prototype,"rel",void 0);__decorate([attr],Anchor.prototype,"target",void 0);__decorate([attr],Anchor.prototype,"type",void 0);__decorate([observable],Anchor.prototype,"defaultSlottedContent",void 0);class DelegatesARIALink{}__decorate([attr({attribute:"aria-expanded"})],DelegatesARIALink.prototype,"ariaExpanded",void 0);applyMixins(DelegatesARIALink,ARIAGlobalStatesAndProperties);applyMixins(Anchor,StartEnd,DelegatesARIALink);const getDirection=j=>{const _e=j.closest("[dir]");return _e!==null&&_e.dir==="rtl"?Direction.rtl:Direction.ltr},badgeTemplate=(j,_e)=>html$4` + +`;let Badge$1=class extends FoundationElement{constructor(){super(...arguments),this.generateBadgeStyle=()=>{if(!this.fill&&!this.color)return;const _e=`background-color: var(--badge-fill-${this.fill});`,et=`color: var(--badge-color-${this.color});`;return this.fill&&!this.color?_e:this.color&&!this.fill?et:`${et} ${_e}`}}};__decorate([attr({attribute:"fill"})],Badge$1.prototype,"fill",void 0);__decorate([attr({attribute:"color"})],Badge$1.prototype,"color",void 0);__decorate([attr({mode:"boolean"})],Badge$1.prototype,"circular",void 0);const buttonTemplate=(j,_e)=>html$4` + +`,proxySlotName="form-associated-proxy",ElementInternalsKey="ElementInternals",supportsElementInternals=ElementInternalsKey in window&&"setFormValue"in window[ElementInternalsKey].prototype,InternalsMap=new WeakMap;function FormAssociated(j){const _e=class extends j{constructor(...et){super(...et),this.dirtyValue=!1,this.disabled=!1,this.proxyEventsToBlock=["change","click"],this.proxyInitialized=!1,this.required=!1,this.initialValue=this.initialValue||"",this.elementInternals||(this.formResetCallback=this.formResetCallback.bind(this))}static get formAssociated(){return supportsElementInternals}get validity(){return this.elementInternals?this.elementInternals.validity:this.proxy.validity}get form(){return this.elementInternals?this.elementInternals.form:this.proxy.form}get validationMessage(){return this.elementInternals?this.elementInternals.validationMessage:this.proxy.validationMessage}get willValidate(){return this.elementInternals?this.elementInternals.willValidate:this.proxy.willValidate}get labels(){if(this.elementInternals)return Object.freeze(Array.from(this.elementInternals.labels));if(this.proxy instanceof HTMLElement&&this.proxy.ownerDocument&&this.id){const et=this.proxy.labels,tt=Array.from(this.proxy.getRootNode().querySelectorAll(`[for='${this.id}']`)),rt=et?tt.concat(Array.from(et)):tt;return Object.freeze(rt)}else return emptyArray}valueChanged(et,tt){this.dirtyValue=!0,this.proxy instanceof HTMLElement&&(this.proxy.value=this.value),this.currentValue=this.value,this.setFormValue(this.value),this.validate()}currentValueChanged(){this.value=this.currentValue}initialValueChanged(et,tt){this.dirtyValue||(this.value=this.initialValue,this.dirtyValue=!1)}disabledChanged(et,tt){this.proxy instanceof HTMLElement&&(this.proxy.disabled=this.disabled),DOM.queueUpdate(()=>this.classList.toggle("disabled",this.disabled))}nameChanged(et,tt){this.proxy instanceof HTMLElement&&(this.proxy.name=this.name)}requiredChanged(et,tt){this.proxy instanceof HTMLElement&&(this.proxy.required=this.required),DOM.queueUpdate(()=>this.classList.toggle("required",this.required)),this.validate()}get elementInternals(){if(!supportsElementInternals)return null;let et=InternalsMap.get(this);return et||(et=this.attachInternals(),InternalsMap.set(this,et)),et}connectedCallback(){super.connectedCallback(),this.addEventListener("keypress",this._keypressHandler),this.value||(this.value=this.initialValue,this.dirtyValue=!1),this.elementInternals||(this.attachProxy(),this.form&&this.form.addEventListener("reset",this.formResetCallback))}disconnectedCallback(){super.disconnectedCallback(),this.proxyEventsToBlock.forEach(et=>this.proxy.removeEventListener(et,this.stopPropagation)),!this.elementInternals&&this.form&&this.form.removeEventListener("reset",this.formResetCallback)}checkValidity(){return this.elementInternals?this.elementInternals.checkValidity():this.proxy.checkValidity()}reportValidity(){return this.elementInternals?this.elementInternals.reportValidity():this.proxy.reportValidity()}setValidity(et,tt,rt){this.elementInternals?this.elementInternals.setValidity(et,tt,rt):typeof tt=="string"&&this.proxy.setCustomValidity(tt)}formDisabledCallback(et){this.disabled=et}formResetCallback(){this.value=this.initialValue,this.dirtyValue=!1}attachProxy(){var et;this.proxyInitialized||(this.proxyInitialized=!0,this.proxy.style.display="none",this.proxyEventsToBlock.forEach(tt=>this.proxy.addEventListener(tt,this.stopPropagation)),this.proxy.disabled=this.disabled,this.proxy.required=this.required,typeof this.name=="string"&&(this.proxy.name=this.name),typeof this.value=="string"&&(this.proxy.value=this.value),this.proxy.setAttribute("slot",proxySlotName),this.proxySlot=document.createElement("slot"),this.proxySlot.setAttribute("name",proxySlotName)),(et=this.shadowRoot)===null||et===void 0||et.appendChild(this.proxySlot),this.appendChild(this.proxy)}detachProxy(){var et;this.removeChild(this.proxy),(et=this.shadowRoot)===null||et===void 0||et.removeChild(this.proxySlot)}validate(et){this.proxy instanceof HTMLElement&&this.setValidity(this.proxy.validity,this.proxy.validationMessage,et)}setFormValue(et,tt){this.elementInternals&&this.elementInternals.setFormValue(et,tt||et)}_keypressHandler(et){switch(et.key){case keyEnter:if(this.form instanceof HTMLFormElement){const tt=this.form.querySelector("[type=submit]");tt==null||tt.click()}break}}stopPropagation(et){et.stopPropagation()}};return attr({mode:"boolean"})(_e.prototype,"disabled"),attr({mode:"fromView",attribute:"value"})(_e.prototype,"initialValue"),attr({attribute:"current-value"})(_e.prototype,"currentValue"),attr(_e.prototype,"name"),attr({mode:"boolean"})(_e.prototype,"required"),observable(_e.prototype,"value"),_e}function CheckableFormAssociated(j){class _e extends FormAssociated(j){}class et extends _e{constructor(...rt){super(rt),this.dirtyChecked=!1,this.checkedAttribute=!1,this.checked=!1,this.dirtyChecked=!1}checkedAttributeChanged(){this.defaultChecked=this.checkedAttribute}defaultCheckedChanged(){this.dirtyChecked||(this.checked=this.defaultChecked,this.dirtyChecked=!1)}checkedChanged(rt,nt){this.dirtyChecked||(this.dirtyChecked=!0),this.currentChecked=this.checked,this.updateForm(),this.proxy instanceof HTMLInputElement&&(this.proxy.checked=this.checked),rt!==void 0&&this.$emit("change"),this.validate()}currentCheckedChanged(rt,nt){this.checked=this.currentChecked}updateForm(){const rt=this.checked?this.value:null;this.setFormValue(rt,rt)}connectedCallback(){super.connectedCallback(),this.updateForm()}formResetCallback(){super.formResetCallback(),this.checked=!!this.checkedAttribute,this.dirtyChecked=!1}}return attr({attribute:"checked",mode:"boolean"})(et.prototype,"checkedAttribute"),attr({attribute:"current-checked",converter:booleanConverter})(et.prototype,"currentChecked"),observable(et.prototype,"defaultChecked"),observable(et.prototype,"checked"),et}class _Button extends FoundationElement{}class FormAssociatedButton extends FormAssociated(_Button){constructor(){super(...arguments),this.proxy=document.createElement("input")}}let Button$1=class extends FormAssociatedButton{constructor(){super(...arguments),this.handleClick=_e=>{var et;this.disabled&&((et=this.defaultSlottedContent)===null||et===void 0?void 0:et.length)<=1&&_e.stopPropagation()},this.handleSubmission=()=>{if(!this.form)return;const _e=this.proxy.isConnected;_e||this.attachProxy(),typeof this.form.requestSubmit=="function"?this.form.requestSubmit(this.proxy):this.proxy.click(),_e||this.detachProxy()},this.handleFormReset=()=>{var _e;(_e=this.form)===null||_e===void 0||_e.reset()},this.handleUnsupportedDelegatesFocus=()=>{var _e;window.ShadowRoot&&!window.ShadowRoot.prototype.hasOwnProperty("delegatesFocus")&&(!((_e=this.$fastController.definition.shadowOptions)===null||_e===void 0)&&_e.delegatesFocus)&&(this.focus=()=>{this.control.focus()})}}formactionChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formAction=this.formaction)}formenctypeChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formEnctype=this.formenctype)}formmethodChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formMethod=this.formmethod)}formnovalidateChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formNoValidate=this.formnovalidate)}formtargetChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formTarget=this.formtarget)}typeChanged(_e,et){this.proxy instanceof HTMLInputElement&&(this.proxy.type=this.type),et==="submit"&&this.addEventListener("click",this.handleSubmission),_e==="submit"&&this.removeEventListener("click",this.handleSubmission),et==="reset"&&this.addEventListener("click",this.handleFormReset),_e==="reset"&&this.removeEventListener("click",this.handleFormReset)}validate(){super.validate(this.control)}connectedCallback(){var _e;super.connectedCallback(),this.proxy.setAttribute("type",this.type),this.handleUnsupportedDelegatesFocus();const et=Array.from((_e=this.control)===null||_e===void 0?void 0:_e.children);et&&et.forEach(tt=>{tt.addEventListener("click",this.handleClick)})}disconnectedCallback(){var _e;super.disconnectedCallback();const et=Array.from((_e=this.control)===null||_e===void 0?void 0:_e.children);et&&et.forEach(tt=>{tt.removeEventListener("click",this.handleClick)})}};__decorate([attr({mode:"boolean"})],Button$1.prototype,"autofocus",void 0);__decorate([attr({attribute:"form"})],Button$1.prototype,"formId",void 0);__decorate([attr],Button$1.prototype,"formaction",void 0);__decorate([attr],Button$1.prototype,"formenctype",void 0);__decorate([attr],Button$1.prototype,"formmethod",void 0);__decorate([attr({mode:"boolean"})],Button$1.prototype,"formnovalidate",void 0);__decorate([attr],Button$1.prototype,"formtarget",void 0);__decorate([attr],Button$1.prototype,"type",void 0);__decorate([observable],Button$1.prototype,"defaultSlottedContent",void 0);class DelegatesARIAButton{}__decorate([attr({attribute:"aria-expanded"})],DelegatesARIAButton.prototype,"ariaExpanded",void 0);__decorate([attr({attribute:"aria-pressed"})],DelegatesARIAButton.prototype,"ariaPressed",void 0);applyMixins(DelegatesARIAButton,ARIAGlobalStatesAndProperties);applyMixins(Button$1,StartEnd,DelegatesARIAButton);const GenerateHeaderOptions={none:"none",default:"default",sticky:"sticky"},DataGridCellTypes={default:"default",columnHeader:"columnheader",rowHeader:"rowheader"},DataGridRowTypes={default:"default",header:"header",stickyHeader:"sticky-header"};let DataGridRow$1=class extends FoundationElement{constructor(){super(...arguments),this.rowType=DataGridRowTypes.default,this.rowData=null,this.columnDefinitions=null,this.isActiveRow=!1,this.cellsRepeatBehavior=null,this.cellsPlaceholder=null,this.focusColumnIndex=0,this.refocusOnLoad=!1,this.updateRowStyle=()=>{this.style.gridTemplateColumns=this.gridTemplateColumns}}gridTemplateColumnsChanged(){this.$fastController.isConnected&&this.updateRowStyle()}rowTypeChanged(){this.$fastController.isConnected&&this.updateItemTemplate()}rowDataChanged(){if(this.rowData!==null&&this.isActiveRow){this.refocusOnLoad=!0;return}}cellItemTemplateChanged(){this.updateItemTemplate()}headerCellItemTemplateChanged(){this.updateItemTemplate()}connectedCallback(){super.connectedCallback(),this.cellsRepeatBehavior===null&&(this.cellsPlaceholder=document.createComment(""),this.appendChild(this.cellsPlaceholder),this.updateItemTemplate(),this.cellsRepeatBehavior=new RepeatDirective(_e=>_e.columnDefinitions,_e=>_e.activeCellItemTemplate,{positioning:!0}).createBehavior(this.cellsPlaceholder),this.$fastController.addBehaviors([this.cellsRepeatBehavior])),this.addEventListener("cell-focused",this.handleCellFocus),this.addEventListener(eventFocusOut,this.handleFocusout),this.addEventListener(eventKeyDown,this.handleKeydown),this.updateRowStyle(),this.refocusOnLoad&&(this.refocusOnLoad=!1,this.cellElements.length>this.focusColumnIndex&&this.cellElements[this.focusColumnIndex].focus())}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("cell-focused",this.handleCellFocus),this.removeEventListener(eventFocusOut,this.handleFocusout),this.removeEventListener(eventKeyDown,this.handleKeydown)}handleFocusout(_e){this.contains(_e.target)||(this.isActiveRow=!1,this.focusColumnIndex=0)}handleCellFocus(_e){this.isActiveRow=!0,this.focusColumnIndex=this.cellElements.indexOf(_e.target),this.$emit("row-focused",this)}handleKeydown(_e){if(_e.defaultPrevented)return;let et=0;switch(_e.key){case keyArrowLeft:et=Math.max(0,this.focusColumnIndex-1),this.cellElements[et].focus(),_e.preventDefault();break;case keyArrowRight:et=Math.min(this.cellElements.length-1,this.focusColumnIndex+1),this.cellElements[et].focus(),_e.preventDefault();break;case keyHome:_e.ctrlKey||(this.cellElements[0].focus(),_e.preventDefault());break;case keyEnd:_e.ctrlKey||(this.cellElements[this.cellElements.length-1].focus(),_e.preventDefault());break}}updateItemTemplate(){this.activeCellItemTemplate=this.rowType===DataGridRowTypes.default&&this.cellItemTemplate!==void 0?this.cellItemTemplate:this.rowType===DataGridRowTypes.default&&this.cellItemTemplate===void 0?this.defaultCellItemTemplate:this.headerCellItemTemplate!==void 0?this.headerCellItemTemplate:this.defaultHeaderCellItemTemplate}};__decorate([attr({attribute:"grid-template-columns"})],DataGridRow$1.prototype,"gridTemplateColumns",void 0);__decorate([attr({attribute:"row-type"})],DataGridRow$1.prototype,"rowType",void 0);__decorate([observable],DataGridRow$1.prototype,"rowData",void 0);__decorate([observable],DataGridRow$1.prototype,"columnDefinitions",void 0);__decorate([observable],DataGridRow$1.prototype,"cellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"headerCellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"rowIndex",void 0);__decorate([observable],DataGridRow$1.prototype,"isActiveRow",void 0);__decorate([observable],DataGridRow$1.prototype,"activeCellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"defaultCellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"defaultHeaderCellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"cellElements",void 0);function createRowItemTemplate(j){const _e=j.tagFor(DataGridRow$1);return html$4` + <${_e} + :rowData="${et=>et}" + :cellItemTemplate="${(et,tt)=>tt.parent.cellItemTemplate}" + :headerCellItemTemplate="${(et,tt)=>tt.parent.headerCellItemTemplate}" + > +`}const dataGridTemplate=(j,_e)=>{const et=createRowItemTemplate(j),tt=j.tagFor(DataGridRow$1);return html$4` + + `};let DataGrid$1=class Wp extends FoundationElement{constructor(){super(),this.noTabbing=!1,this.generateHeader=GenerateHeaderOptions.default,this.rowsData=[],this.columnDefinitions=null,this.focusRowIndex=0,this.focusColumnIndex=0,this.rowsPlaceholder=null,this.generatedHeader=null,this.isUpdatingFocus=!1,this.pendingFocusUpdate=!1,this.rowindexUpdateQueued=!1,this.columnDefinitionsStale=!0,this.generatedGridTemplateColumns="",this.focusOnCell=(_e,et,tt)=>{if(this.rowElements.length===0){this.focusRowIndex=0,this.focusColumnIndex=0;return}const rt=Math.max(0,Math.min(this.rowElements.length-1,_e)),ot=this.rowElements[rt].querySelectorAll('[role="cell"], [role="gridcell"], [role="columnheader"], [role="rowheader"]'),it=Math.max(0,Math.min(ot.length-1,et)),st=ot[it];tt&&this.scrollHeight!==this.clientHeight&&(rt0||rt>this.focusRowIndex&&this.scrollTop{_e&&_e.length&&(_e.forEach(tt=>{tt.addedNodes.forEach(rt=>{rt.nodeType===1&&rt.getAttribute("role")==="row"&&(rt.columnDefinitions=this.columnDefinitions)})}),this.queueRowIndexUpdate())},this.queueRowIndexUpdate=()=>{this.rowindexUpdateQueued||(this.rowindexUpdateQueued=!0,DOM.queueUpdate(this.updateRowIndexes))},this.updateRowIndexes=()=>{let _e=this.gridTemplateColumns;if(_e===void 0){if(this.generatedGridTemplateColumns===""&&this.rowElements.length>0){const et=this.rowElements[0];this.generatedGridTemplateColumns=new Array(et.cellElements.length).fill("1fr").join(" ")}_e=this.generatedGridTemplateColumns}this.rowElements.forEach((et,tt)=>{const rt=et;rt.rowIndex=tt,rt.gridTemplateColumns=_e,this.columnDefinitionsStale&&(rt.columnDefinitions=this.columnDefinitions)}),this.rowindexUpdateQueued=!1,this.columnDefinitionsStale=!1}}static generateTemplateColumns(_e){let et="";return _e.forEach(tt=>{et=`${et}${et===""?"":" "}1fr`}),et}noTabbingChanged(){this.$fastController.isConnected&&(this.noTabbing?this.setAttribute("tabIndex","-1"):this.setAttribute("tabIndex",this.contains(document.activeElement)||this===document.activeElement?"-1":"0"))}generateHeaderChanged(){this.$fastController.isConnected&&this.toggleGeneratedHeader()}gridTemplateColumnsChanged(){this.$fastController.isConnected&&this.updateRowIndexes()}rowsDataChanged(){this.columnDefinitions===null&&this.rowsData.length>0&&(this.columnDefinitions=Wp.generateColumns(this.rowsData[0])),this.$fastController.isConnected&&this.toggleGeneratedHeader()}columnDefinitionsChanged(){if(this.columnDefinitions===null){this.generatedGridTemplateColumns="";return}this.generatedGridTemplateColumns=Wp.generateTemplateColumns(this.columnDefinitions),this.$fastController.isConnected&&(this.columnDefinitionsStale=!0,this.queueRowIndexUpdate())}headerCellItemTemplateChanged(){this.$fastController.isConnected&&this.generatedHeader!==null&&(this.generatedHeader.headerCellItemTemplate=this.headerCellItemTemplate)}focusRowIndexChanged(){this.$fastController.isConnected&&this.queueFocusUpdate()}focusColumnIndexChanged(){this.$fastController.isConnected&&this.queueFocusUpdate()}connectedCallback(){super.connectedCallback(),this.rowItemTemplate===void 0&&(this.rowItemTemplate=this.defaultRowItemTemplate),this.rowsPlaceholder=document.createComment(""),this.appendChild(this.rowsPlaceholder),this.toggleGeneratedHeader(),this.rowsRepeatBehavior=new RepeatDirective(_e=>_e.rowsData,_e=>_e.rowItemTemplate,{positioning:!0}).createBehavior(this.rowsPlaceholder),this.$fastController.addBehaviors([this.rowsRepeatBehavior]),this.addEventListener("row-focused",this.handleRowFocus),this.addEventListener(eventFocus,this.handleFocus),this.addEventListener(eventKeyDown,this.handleKeydown),this.addEventListener(eventFocusOut,this.handleFocusOut),this.observer=new MutationObserver(this.onChildListChange),this.observer.observe(this,{childList:!0}),this.noTabbing&&this.setAttribute("tabindex","-1"),DOM.queueUpdate(this.queueRowIndexUpdate)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("row-focused",this.handleRowFocus),this.removeEventListener(eventFocus,this.handleFocus),this.removeEventListener(eventKeyDown,this.handleKeydown),this.removeEventListener(eventFocusOut,this.handleFocusOut),this.observer.disconnect(),this.rowsPlaceholder=null,this.generatedHeader=null}handleRowFocus(_e){this.isUpdatingFocus=!0;const et=_e.target;this.focusRowIndex=this.rowElements.indexOf(et),this.focusColumnIndex=et.focusColumnIndex,this.setAttribute("tabIndex","-1"),this.isUpdatingFocus=!1}handleFocus(_e){this.focusOnCell(this.focusRowIndex,this.focusColumnIndex,!0)}handleFocusOut(_e){(_e.relatedTarget===null||!this.contains(_e.relatedTarget))&&this.setAttribute("tabIndex",this.noTabbing?"-1":"0")}handleKeydown(_e){if(_e.defaultPrevented)return;let et;const tt=this.rowElements.length-1,rt=this.offsetHeight+this.scrollTop,nt=this.rowElements[tt];switch(_e.key){case keyArrowUp:_e.preventDefault(),this.focusOnCell(this.focusRowIndex-1,this.focusColumnIndex,!0);break;case keyArrowDown:_e.preventDefault(),this.focusOnCell(this.focusRowIndex+1,this.focusColumnIndex,!0);break;case keyPageUp:if(_e.preventDefault(),this.rowElements.length===0){this.focusOnCell(0,0,!1);break}if(this.focusRowIndex===0){this.focusOnCell(0,this.focusColumnIndex,!1);return}for(et=this.focusRowIndex-1,et;et>=0;et--){const ot=this.rowElements[et];if(ot.offsetTop=tt||nt.offsetTop+nt.offsetHeight<=rt){this.focusOnCell(tt,this.focusColumnIndex,!1);return}for(et=this.focusRowIndex+1,et;et<=tt;et++){const ot=this.rowElements[et];if(ot.offsetTop+ot.offsetHeight>rt){let it=0;this.generateHeader===GenerateHeaderOptions.sticky&&this.generatedHeader!==null&&(it=this.generatedHeader.clientHeight),this.scrollTop=ot.offsetTop-it;break}}this.focusOnCell(et,this.focusColumnIndex,!1);break;case keyHome:_e.ctrlKey&&(_e.preventDefault(),this.focusOnCell(0,0,!0));break;case keyEnd:_e.ctrlKey&&this.columnDefinitions!==null&&(_e.preventDefault(),this.focusOnCell(this.rowElements.length-1,this.columnDefinitions.length-1,!0));break}}queueFocusUpdate(){this.isUpdatingFocus&&(this.contains(document.activeElement)||this===document.activeElement)||this.pendingFocusUpdate===!1&&(this.pendingFocusUpdate=!0,DOM.queueUpdate(()=>this.updateFocus()))}updateFocus(){this.pendingFocusUpdate=!1,this.focusOnCell(this.focusRowIndex,this.focusColumnIndex,!0)}toggleGeneratedHeader(){if(this.generatedHeader!==null&&(this.removeChild(this.generatedHeader),this.generatedHeader=null),this.generateHeader!==GenerateHeaderOptions.none&&this.rowsData.length>0){const _e=document.createElement(this.rowElementTag);this.generatedHeader=_e,this.generatedHeader.columnDefinitions=this.columnDefinitions,this.generatedHeader.gridTemplateColumns=this.gridTemplateColumns,this.generatedHeader.rowType=this.generateHeader===GenerateHeaderOptions.sticky?DataGridRowTypes.stickyHeader:DataGridRowTypes.header,(this.firstChild!==null||this.rowsPlaceholder!==null)&&this.insertBefore(_e,this.firstChild!==null?this.firstChild:this.rowsPlaceholder);return}}};DataGrid$1.generateColumns=j=>Object.getOwnPropertyNames(j).map((_e,et)=>({columnDataKey:_e,gridColumn:`${et}`}));__decorate([attr({attribute:"no-tabbing",mode:"boolean"})],DataGrid$1.prototype,"noTabbing",void 0);__decorate([attr({attribute:"generate-header"})],DataGrid$1.prototype,"generateHeader",void 0);__decorate([attr({attribute:"grid-template-columns"})],DataGrid$1.prototype,"gridTemplateColumns",void 0);__decorate([observable],DataGrid$1.prototype,"rowsData",void 0);__decorate([observable],DataGrid$1.prototype,"columnDefinitions",void 0);__decorate([observable],DataGrid$1.prototype,"rowItemTemplate",void 0);__decorate([observable],DataGrid$1.prototype,"cellItemTemplate",void 0);__decorate([observable],DataGrid$1.prototype,"headerCellItemTemplate",void 0);__decorate([observable],DataGrid$1.prototype,"focusRowIndex",void 0);__decorate([observable],DataGrid$1.prototype,"focusColumnIndex",void 0);__decorate([observable],DataGrid$1.prototype,"defaultRowItemTemplate",void 0);__decorate([observable],DataGrid$1.prototype,"rowElementTag",void 0);__decorate([observable],DataGrid$1.prototype,"rowElements",void 0);const defaultCellContentsTemplate=html$4` + +`,defaultHeaderCellContentsTemplate=html$4` + +`;let DataGridCell$1=class extends FoundationElement{constructor(){super(...arguments),this.cellType=DataGridCellTypes.default,this.rowData=null,this.columnDefinition=null,this.isActiveCell=!1,this.customCellView=null,this.updateCellStyle=()=>{this.style.gridColumn=this.gridColumn}}cellTypeChanged(){this.$fastController.isConnected&&this.updateCellView()}gridColumnChanged(){this.$fastController.isConnected&&this.updateCellStyle()}columnDefinitionChanged(_e,et){this.$fastController.isConnected&&this.updateCellView()}connectedCallback(){var _e;super.connectedCallback(),this.addEventListener(eventFocusIn,this.handleFocusin),this.addEventListener(eventFocusOut,this.handleFocusout),this.addEventListener(eventKeyDown,this.handleKeydown),this.style.gridColumn=`${((_e=this.columnDefinition)===null||_e===void 0?void 0:_e.gridColumn)===void 0?0:this.columnDefinition.gridColumn}`,this.updateCellView(),this.updateCellStyle()}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(eventFocusIn,this.handleFocusin),this.removeEventListener(eventFocusOut,this.handleFocusout),this.removeEventListener(eventKeyDown,this.handleKeydown),this.disconnectCellView()}handleFocusin(_e){if(!this.isActiveCell){switch(this.isActiveCell=!0,this.cellType){case DataGridCellTypes.columnHeader:if(this.columnDefinition!==null&&this.columnDefinition.headerCellInternalFocusQueue!==!0&&typeof this.columnDefinition.headerCellFocusTargetCallback=="function"){const et=this.columnDefinition.headerCellFocusTargetCallback(this);et!==null&&et.focus()}break;default:if(this.columnDefinition!==null&&this.columnDefinition.cellInternalFocusQueue!==!0&&typeof this.columnDefinition.cellFocusTargetCallback=="function"){const et=this.columnDefinition.cellFocusTargetCallback(this);et!==null&&et.focus()}break}this.$emit("cell-focused",this)}}handleFocusout(_e){this!==document.activeElement&&!this.contains(document.activeElement)&&(this.isActiveCell=!1)}handleKeydown(_e){if(!(_e.defaultPrevented||this.columnDefinition===null||this.cellType===DataGridCellTypes.default&&this.columnDefinition.cellInternalFocusQueue!==!0||this.cellType===DataGridCellTypes.columnHeader&&this.columnDefinition.headerCellInternalFocusQueue!==!0))switch(_e.key){case keyEnter:case keyFunction2:if(this.contains(document.activeElement)&&document.activeElement!==this)return;switch(this.cellType){case DataGridCellTypes.columnHeader:if(this.columnDefinition.headerCellFocusTargetCallback!==void 0){const et=this.columnDefinition.headerCellFocusTargetCallback(this);et!==null&&et.focus(),_e.preventDefault()}break;default:if(this.columnDefinition.cellFocusTargetCallback!==void 0){const et=this.columnDefinition.cellFocusTargetCallback(this);et!==null&&et.focus(),_e.preventDefault()}break}break;case keyEscape:this.contains(document.activeElement)&&document.activeElement!==this&&(this.focus(),_e.preventDefault());break}}updateCellView(){if(this.disconnectCellView(),this.columnDefinition!==null)switch(this.cellType){case DataGridCellTypes.columnHeader:this.columnDefinition.headerCellTemplate!==void 0?this.customCellView=this.columnDefinition.headerCellTemplate.render(this,this):this.customCellView=defaultHeaderCellContentsTemplate.render(this,this);break;case void 0:case DataGridCellTypes.rowHeader:case DataGridCellTypes.default:this.columnDefinition.cellTemplate!==void 0?this.customCellView=this.columnDefinition.cellTemplate.render(this,this):this.customCellView=defaultCellContentsTemplate.render(this,this);break}}disconnectCellView(){this.customCellView!==null&&(this.customCellView.dispose(),this.customCellView=null)}};__decorate([attr({attribute:"cell-type"})],DataGridCell$1.prototype,"cellType",void 0);__decorate([attr({attribute:"grid-column"})],DataGridCell$1.prototype,"gridColumn",void 0);__decorate([observable],DataGridCell$1.prototype,"rowData",void 0);__decorate([observable],DataGridCell$1.prototype,"columnDefinition",void 0);function createCellItemTemplate(j){const _e=j.tagFor(DataGridCell$1);return html$4` + <${_e} + cell-type="${et=>et.isRowHeader?"rowheader":void 0}" + grid-column="${(et,tt)=>tt.index+1}" + :rowData="${(et,tt)=>tt.parent.rowData}" + :columnDefinition="${et=>et}" + > +`}function createHeaderCellItemTemplate(j){const _e=j.tagFor(DataGridCell$1);return html$4` + <${_e} + cell-type="columnheader" + grid-column="${(et,tt)=>tt.index+1}" + :columnDefinition="${et=>et}" + > +`}const dataGridRowTemplate=(j,_e)=>{const et=createCellItemTemplate(j),tt=createHeaderCellItemTemplate(j);return html$4` + + `},dataGridCellTemplate=(j,_e)=>html$4` + + `,checkboxTemplate=(j,_e)=>html$4` + +`;class _Checkbox extends FoundationElement{}class FormAssociatedCheckbox extends CheckableFormAssociated(_Checkbox){constructor(){super(...arguments),this.proxy=document.createElement("input")}}let Checkbox$1=class extends FormAssociatedCheckbox{constructor(){super(),this.initialValue="on",this.indeterminate=!1,this.keypressHandler=_e=>{if(!this.readOnly)switch(_e.key){case keySpace:this.indeterminate&&(this.indeterminate=!1),this.checked=!this.checked;break}},this.clickHandler=_e=>{!this.disabled&&!this.readOnly&&(this.indeterminate&&(this.indeterminate=!1),this.checked=!this.checked)},this.proxy.setAttribute("type","checkbox")}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly)}};__decorate([attr({attribute:"readonly",mode:"boolean"})],Checkbox$1.prototype,"readOnly",void 0);__decorate([observable],Checkbox$1.prototype,"defaultSlottedNodes",void 0);__decorate([observable],Checkbox$1.prototype,"indeterminate",void 0);function isListboxOption(j){return isHTMLElement$1(j)&&(j.getAttribute("role")==="option"||j instanceof HTMLOptionElement)}class ListboxOption extends FoundationElement{constructor(_e,et,tt,rt){super(),this.defaultSelected=!1,this.dirtySelected=!1,this.selected=this.defaultSelected,this.dirtyValue=!1,_e&&(this.textContent=_e),et&&(this.initialValue=et),tt&&(this.defaultSelected=tt),rt&&(this.selected=rt),this.proxy=new Option(`${this.textContent}`,this.initialValue,this.defaultSelected,this.selected),this.proxy.disabled=this.disabled}checkedChanged(_e,et){if(typeof et=="boolean"){this.ariaChecked=et?"true":"false";return}this.ariaChecked=null}contentChanged(_e,et){this.proxy instanceof HTMLOptionElement&&(this.proxy.textContent=this.textContent),this.$emit("contentchange",null,{bubbles:!0})}defaultSelectedChanged(){this.dirtySelected||(this.selected=this.defaultSelected,this.proxy instanceof HTMLOptionElement&&(this.proxy.selected=this.defaultSelected))}disabledChanged(_e,et){this.ariaDisabled=this.disabled?"true":"false",this.proxy instanceof HTMLOptionElement&&(this.proxy.disabled=this.disabled)}selectedAttributeChanged(){this.defaultSelected=this.selectedAttribute,this.proxy instanceof HTMLOptionElement&&(this.proxy.defaultSelected=this.defaultSelected)}selectedChanged(){this.ariaSelected=this.selected?"true":"false",this.dirtySelected||(this.dirtySelected=!0),this.proxy instanceof HTMLOptionElement&&(this.proxy.selected=this.selected)}initialValueChanged(_e,et){this.dirtyValue||(this.value=this.initialValue,this.dirtyValue=!1)}get label(){var _e;return(_e=this.value)!==null&&_e!==void 0?_e:this.text}get text(){var _e,et;return(et=(_e=this.textContent)===null||_e===void 0?void 0:_e.replace(/\s+/g," ").trim())!==null&&et!==void 0?et:""}set value(_e){const et=`${_e??""}`;this._value=et,this.dirtyValue=!0,this.proxy instanceof HTMLOptionElement&&(this.proxy.value=et),Observable$1.notify(this,"value")}get value(){var _e;return Observable$1.track(this,"value"),(_e=this._value)!==null&&_e!==void 0?_e:this.text}get form(){return this.proxy?this.proxy.form:null}}__decorate([observable],ListboxOption.prototype,"checked",void 0);__decorate([observable],ListboxOption.prototype,"content",void 0);__decorate([observable],ListboxOption.prototype,"defaultSelected",void 0);__decorate([attr({mode:"boolean"})],ListboxOption.prototype,"disabled",void 0);__decorate([attr({attribute:"selected",mode:"boolean"})],ListboxOption.prototype,"selectedAttribute",void 0);__decorate([observable],ListboxOption.prototype,"selected",void 0);__decorate([attr({attribute:"value",mode:"fromView"})],ListboxOption.prototype,"initialValue",void 0);class DelegatesARIAListboxOption{}__decorate([observable],DelegatesARIAListboxOption.prototype,"ariaChecked",void 0);__decorate([observable],DelegatesARIAListboxOption.prototype,"ariaPosInSet",void 0);__decorate([observable],DelegatesARIAListboxOption.prototype,"ariaSelected",void 0);__decorate([observable],DelegatesARIAListboxOption.prototype,"ariaSetSize",void 0);applyMixins(DelegatesARIAListboxOption,ARIAGlobalStatesAndProperties);applyMixins(ListboxOption,StartEnd,DelegatesARIAListboxOption);class Listbox extends FoundationElement{constructor(){super(...arguments),this._options=[],this.selectedIndex=-1,this.selectedOptions=[],this.shouldSkipFocus=!1,this.typeaheadBuffer="",this.typeaheadExpired=!0,this.typeaheadTimeout=-1}get firstSelectedOption(){var _e;return(_e=this.selectedOptions[0])!==null&&_e!==void 0?_e:null}get hasSelectableOptions(){return this.options.length>0&&!this.options.every(_e=>_e.disabled)}get length(){var _e,et;return(et=(_e=this.options)===null||_e===void 0?void 0:_e.length)!==null&&et!==void 0?et:0}get options(){return Observable$1.track(this,"options"),this._options}set options(_e){this._options=_e,Observable$1.notify(this,"options")}get typeAheadExpired(){return this.typeaheadExpired}set typeAheadExpired(_e){this.typeaheadExpired=_e}clickHandler(_e){const et=_e.target.closest("option,[role=option]");if(et&&!et.disabled)return this.selectedIndex=this.options.indexOf(et),!0}focusAndScrollOptionIntoView(_e=this.firstSelectedOption){this.contains(document.activeElement)&&_e!==null&&(_e.focus(),requestAnimationFrame(()=>{_e.scrollIntoView({block:"nearest"})}))}focusinHandler(_e){!this.shouldSkipFocus&&_e.target===_e.currentTarget&&(this.setSelectedOptions(),this.focusAndScrollOptionIntoView()),this.shouldSkipFocus=!1}getTypeaheadMatches(){const _e=this.typeaheadBuffer.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&"),et=new RegExp(`^${_e}`,"gi");return this.options.filter(tt=>tt.text.trim().match(et))}getSelectableIndex(_e=this.selectedIndex,et){const tt=_e>et?-1:_e!ot&&!it.disabled&&st!ot&&!it.disabled&&st>rt?it:ot,nt);break}}return this.options.indexOf(nt)}handleChange(_e,et){switch(et){case"selected":{Listbox.slottedOptionFilter(_e)&&(this.selectedIndex=this.options.indexOf(_e)),this.setSelectedOptions();break}}}handleTypeAhead(_e){this.typeaheadTimeout&&window.clearTimeout(this.typeaheadTimeout),this.typeaheadTimeout=window.setTimeout(()=>this.typeaheadExpired=!0,Listbox.TYPE_AHEAD_TIMEOUT_MS),!(_e.length>1)&&(this.typeaheadBuffer=`${this.typeaheadExpired?"":this.typeaheadBuffer}${_e}`)}keydownHandler(_e){if(this.disabled)return!0;this.shouldSkipFocus=!1;const et=_e.key;switch(et){case keyHome:{_e.shiftKey||(_e.preventDefault(),this.selectFirstOption());break}case keyArrowDown:{_e.shiftKey||(_e.preventDefault(),this.selectNextOption());break}case keyArrowUp:{_e.shiftKey||(_e.preventDefault(),this.selectPreviousOption());break}case keyEnd:{_e.preventDefault(),this.selectLastOption();break}case keyTab:return this.focusAndScrollOptionIntoView(),!0;case keyEnter:case keyEscape:return!0;case keySpace:if(this.typeaheadExpired)return!0;default:return et.length===1&&this.handleTypeAhead(`${et}`),!0}}mousedownHandler(_e){return this.shouldSkipFocus=!this.contains(document.activeElement),!0}multipleChanged(_e,et){this.ariaMultiSelectable=et?"true":null}selectedIndexChanged(_e,et){var tt;if(!this.hasSelectableOptions){this.selectedIndex=-1;return}if(!((tt=this.options[this.selectedIndex])===null||tt===void 0)&&tt.disabled&&typeof _e=="number"){const rt=this.getSelectableIndex(_e,et),nt=rt>-1?rt:_e;this.selectedIndex=nt,et===nt&&this.selectedIndexChanged(et,nt);return}this.setSelectedOptions()}selectedOptionsChanged(_e,et){var tt;const rt=et.filter(Listbox.slottedOptionFilter);(tt=this.options)===null||tt===void 0||tt.forEach(nt=>{const ot=Observable$1.getNotifier(nt);ot.unsubscribe(this,"selected"),nt.selected=rt.includes(nt),ot.subscribe(this,"selected")})}selectFirstOption(){var _e,et;this.disabled||(this.selectedIndex=(et=(_e=this.options)===null||_e===void 0?void 0:_e.findIndex(tt=>!tt.disabled))!==null&&et!==void 0?et:-1)}selectLastOption(){this.disabled||(this.selectedIndex=findLastIndex(this.options,_e=>!_e.disabled))}selectNextOption(){!this.disabled&&this.selectedIndex0&&(this.selectedIndex=this.selectedIndex-1)}setDefaultSelectedOption(){var _e,et;this.selectedIndex=(et=(_e=this.options)===null||_e===void 0?void 0:_e.findIndex(tt=>tt.defaultSelected))!==null&&et!==void 0?et:-1}setSelectedOptions(){var _e,et,tt;!((_e=this.options)===null||_e===void 0)&&_e.length&&(this.selectedOptions=[this.options[this.selectedIndex]],this.ariaActiveDescendant=(tt=(et=this.firstSelectedOption)===null||et===void 0?void 0:et.id)!==null&&tt!==void 0?tt:"",this.focusAndScrollOptionIntoView())}slottedOptionsChanged(_e,et){this.options=et.reduce((rt,nt)=>(isListboxOption(nt)&&rt.push(nt),rt),[]);const tt=`${this.options.length}`;this.options.forEach((rt,nt)=>{rt.id||(rt.id=uniqueId$1("option-")),rt.ariaPosInSet=`${nt+1}`,rt.ariaSetSize=tt}),this.$fastController.isConnected&&(this.setSelectedOptions(),this.setDefaultSelectedOption())}typeaheadBufferChanged(_e,et){if(this.$fastController.isConnected){const tt=this.getTypeaheadMatches();if(tt.length){const rt=this.options.indexOf(tt[0]);rt>-1&&(this.selectedIndex=rt)}this.typeaheadExpired=!1}}}Listbox.slottedOptionFilter=j=>isListboxOption(j)&&!j.hidden;Listbox.TYPE_AHEAD_TIMEOUT_MS=1e3;__decorate([attr({mode:"boolean"})],Listbox.prototype,"disabled",void 0);__decorate([observable],Listbox.prototype,"selectedIndex",void 0);__decorate([observable],Listbox.prototype,"selectedOptions",void 0);__decorate([observable],Listbox.prototype,"slottedOptions",void 0);__decorate([observable],Listbox.prototype,"typeaheadBuffer",void 0);class DelegatesARIAListbox{}__decorate([observable],DelegatesARIAListbox.prototype,"ariaActiveDescendant",void 0);__decorate([observable],DelegatesARIAListbox.prototype,"ariaDisabled",void 0);__decorate([observable],DelegatesARIAListbox.prototype,"ariaExpanded",void 0);__decorate([observable],DelegatesARIAListbox.prototype,"ariaMultiSelectable",void 0);applyMixins(DelegatesARIAListbox,ARIAGlobalStatesAndProperties);applyMixins(Listbox,DelegatesARIAListbox);const SelectPosition={above:"above",below:"below"};function composedParent(j){const _e=j.parentElement;if(_e)return _e;{const et=j.getRootNode();if(et.host instanceof HTMLElement)return et.host}return null}function composedContains(j,_e){let et=_e;for(;et!==null;){if(et===j)return!0;et=composedParent(et)}return!1}const defaultElement=document.createElement("div");function isFastElement(j){return j instanceof FASTElement}class QueuedStyleSheetTarget{setProperty(_e,et){DOM.queueUpdate(()=>this.target.setProperty(_e,et))}removeProperty(_e){DOM.queueUpdate(()=>this.target.removeProperty(_e))}}class ConstructableStyleSheetTarget extends QueuedStyleSheetTarget{constructor(_e){super();const et=new CSSStyleSheet;this.target=et.cssRules[et.insertRule(":host{}")].style,_e.$fastController.addStyles(ElementStyles.create([et]))}}class DocumentStyleSheetTarget extends QueuedStyleSheetTarget{constructor(){super();const _e=new CSSStyleSheet;this.target=_e.cssRules[_e.insertRule(":root{}")].style,document.adoptedStyleSheets=[...document.adoptedStyleSheets,_e]}}class HeadStyleElementStyleSheetTarget extends QueuedStyleSheetTarget{constructor(){super(),this.style=document.createElement("style"),document.head.appendChild(this.style);const{sheet:_e}=this.style;if(_e){const et=_e.insertRule(":root{}",_e.cssRules.length);this.target=_e.cssRules[et].style}}}class StyleElementStyleSheetTarget{constructor(_e){this.store=new Map,this.target=null;const et=_e.$fastController;this.style=document.createElement("style"),et.addStyles(this.style),Observable$1.getNotifier(et).subscribe(this,"isConnected"),this.handleChange(et,"isConnected")}targetChanged(){if(this.target!==null)for(const[_e,et]of this.store.entries())this.target.setProperty(_e,et)}setProperty(_e,et){this.store.set(_e,et),DOM.queueUpdate(()=>{this.target!==null&&this.target.setProperty(_e,et)})}removeProperty(_e){this.store.delete(_e),DOM.queueUpdate(()=>{this.target!==null&&this.target.removeProperty(_e)})}handleChange(_e,et){const{sheet:tt}=this.style;if(tt){const rt=tt.insertRule(":host{}",tt.cssRules.length);this.target=tt.cssRules[rt].style}else this.target=null}}__decorate([observable],StyleElementStyleSheetTarget.prototype,"target",void 0);class ElementStyleSheetTarget{constructor(_e){this.target=_e.style}setProperty(_e,et){DOM.queueUpdate(()=>this.target.setProperty(_e,et))}removeProperty(_e){DOM.queueUpdate(()=>this.target.removeProperty(_e))}}class RootStyleSheetTarget{setProperty(_e,et){RootStyleSheetTarget.properties[_e]=et;for(const tt of RootStyleSheetTarget.roots.values())PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(tt)).setProperty(_e,et)}removeProperty(_e){delete RootStyleSheetTarget.properties[_e];for(const et of RootStyleSheetTarget.roots.values())PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(et)).removeProperty(_e)}static registerRoot(_e){const{roots:et}=RootStyleSheetTarget;if(!et.has(_e)){et.add(_e);const tt=PropertyTargetManager.getOrCreate(this.normalizeRoot(_e));for(const rt in RootStyleSheetTarget.properties)tt.setProperty(rt,RootStyleSheetTarget.properties[rt])}}static unregisterRoot(_e){const{roots:et}=RootStyleSheetTarget;if(et.has(_e)){et.delete(_e);const tt=PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(_e));for(const rt in RootStyleSheetTarget.properties)tt.removeProperty(rt)}}static normalizeRoot(_e){return _e===defaultElement?document:_e}}RootStyleSheetTarget.roots=new Set;RootStyleSheetTarget.properties={};const propertyTargetCache=new WeakMap,propertyTargetCtor=DOM.supportsAdoptedStyleSheets?ConstructableStyleSheetTarget:StyleElementStyleSheetTarget,PropertyTargetManager=Object.freeze({getOrCreate(j){if(propertyTargetCache.has(j))return propertyTargetCache.get(j);let _e;return j===defaultElement?_e=new RootStyleSheetTarget:j instanceof Document?_e=DOM.supportsAdoptedStyleSheets?new DocumentStyleSheetTarget:new HeadStyleElementStyleSheetTarget:isFastElement(j)?_e=new propertyTargetCtor(j):_e=new ElementStyleSheetTarget(j),propertyTargetCache.set(j,_e),_e}});class DesignTokenImpl extends CSSDirective{constructor(_e){super(),this.subscribers=new WeakMap,this._appliedTo=new Set,this.name=_e.name,_e.cssCustomPropertyName!==null&&(this.cssCustomProperty=`--${_e.cssCustomPropertyName}`,this.cssVar=`var(${this.cssCustomProperty})`),this.id=DesignTokenImpl.uniqueId(),DesignTokenImpl.tokensById.set(this.id,this)}get appliedTo(){return[...this._appliedTo]}static from(_e){return new DesignTokenImpl({name:typeof _e=="string"?_e:_e.name,cssCustomPropertyName:typeof _e=="string"?_e:_e.cssCustomPropertyName===void 0?_e.name:_e.cssCustomPropertyName})}static isCSSDesignToken(_e){return typeof _e.cssCustomProperty=="string"}static isDerivedDesignTokenValue(_e){return typeof _e=="function"}static getTokenById(_e){return DesignTokenImpl.tokensById.get(_e)}getOrCreateSubscriberSet(_e=this){return this.subscribers.get(_e)||this.subscribers.set(_e,new Set)&&this.subscribers.get(_e)}createCSS(){return this.cssVar||""}getValueFor(_e){const et=DesignTokenNode.getOrCreate(_e).get(this);if(et!==void 0)return et;throw new Error(`Value could not be retrieved for token named "${this.name}". Ensure the value is set for ${_e} or an ancestor of ${_e}.`)}setValueFor(_e,et){return this._appliedTo.add(_e),et instanceof DesignTokenImpl&&(et=this.alias(et)),DesignTokenNode.getOrCreate(_e).set(this,et),this}deleteValueFor(_e){return this._appliedTo.delete(_e),DesignTokenNode.existsFor(_e)&&DesignTokenNode.getOrCreate(_e).delete(this),this}withDefault(_e){return this.setValueFor(defaultElement,_e),this}subscribe(_e,et){const tt=this.getOrCreateSubscriberSet(et);et&&!DesignTokenNode.existsFor(et)&&DesignTokenNode.getOrCreate(et),tt.has(_e)||tt.add(_e)}unsubscribe(_e,et){const tt=this.subscribers.get(et||this);tt&&tt.has(_e)&&tt.delete(_e)}notify(_e){const et=Object.freeze({token:this,target:_e});this.subscribers.has(this)&&this.subscribers.get(this).forEach(tt=>tt.handleChange(et)),this.subscribers.has(_e)&&this.subscribers.get(_e).forEach(tt=>tt.handleChange(et))}alias(_e){return et=>_e.getValueFor(et)}}DesignTokenImpl.uniqueId=(()=>{let j=0;return()=>(j++,j.toString(16))})();DesignTokenImpl.tokensById=new Map;class CustomPropertyReflector{startReflection(_e,et){_e.subscribe(this,et),this.handleChange({token:_e,target:et})}stopReflection(_e,et){_e.unsubscribe(this,et),this.remove(_e,et)}handleChange(_e){const{token:et,target:tt}=_e;this.add(et,tt)}add(_e,et){PropertyTargetManager.getOrCreate(et).setProperty(_e.cssCustomProperty,this.resolveCSSValue(DesignTokenNode.getOrCreate(et).get(_e)))}remove(_e,et){PropertyTargetManager.getOrCreate(et).removeProperty(_e.cssCustomProperty)}resolveCSSValue(_e){return _e&&typeof _e.createCSS=="function"?_e.createCSS():_e}}class DesignTokenBindingObserver{constructor(_e,et,tt){this.source=_e,this.token=et,this.node=tt,this.dependencies=new Set,this.observer=Observable$1.binding(_e,this,!1),this.observer.handleChange=this.observer.call,this.handleChange()}disconnect(){this.observer.disconnect()}handleChange(){this.node.store.set(this.token,this.observer.observe(this.node.target,defaultExecutionContext))}}class Store{constructor(){this.values=new Map}set(_e,et){this.values.get(_e)!==et&&(this.values.set(_e,et),Observable$1.getNotifier(this).notify(_e.id))}get(_e){return Observable$1.track(this,_e.id),this.values.get(_e)}delete(_e){this.values.delete(_e)}all(){return this.values.entries()}}const nodeCache=new WeakMap,childToParent=new WeakMap;class DesignTokenNode{constructor(_e){this.target=_e,this.store=new Store,this.children=[],this.assignedValues=new Map,this.reflecting=new Set,this.bindingObservers=new Map,this.tokenValueChangeHandler={handleChange:(et,tt)=>{const rt=DesignTokenImpl.getTokenById(tt);if(rt&&(rt.notify(this.target),DesignTokenImpl.isCSSDesignToken(rt))){const nt=this.parent,ot=this.isReflecting(rt);if(nt){const it=nt.get(rt),st=et.get(rt);it!==st&&!ot?this.reflectToCSS(rt):it===st&&ot&&this.stopReflectToCSS(rt)}else ot||this.reflectToCSS(rt)}}},nodeCache.set(_e,this),Observable$1.getNotifier(this.store).subscribe(this.tokenValueChangeHandler),_e instanceof FASTElement?_e.$fastController.addBehaviors([this]):_e.isConnected&&this.bind()}static getOrCreate(_e){return nodeCache.get(_e)||new DesignTokenNode(_e)}static existsFor(_e){return nodeCache.has(_e)}static findParent(_e){if(defaultElement!==_e.target){let et=composedParent(_e.target);for(;et!==null;){if(nodeCache.has(et))return nodeCache.get(et);et=composedParent(et)}return DesignTokenNode.getOrCreate(defaultElement)}return null}static findClosestAssignedNode(_e,et){let tt=et;do{if(tt.has(_e))return tt;tt=tt.parent?tt.parent:tt.target!==defaultElement?DesignTokenNode.getOrCreate(defaultElement):null}while(tt!==null);return null}get parent(){return childToParent.get(this)||null}has(_e){return this.assignedValues.has(_e)}get(_e){const et=this.store.get(_e);if(et!==void 0)return et;const tt=this.getRaw(_e);if(tt!==void 0)return this.hydrate(_e,tt),this.get(_e)}getRaw(_e){var et;return this.assignedValues.has(_e)?this.assignedValues.get(_e):(et=DesignTokenNode.findClosestAssignedNode(_e,this))===null||et===void 0?void 0:et.getRaw(_e)}set(_e,et){DesignTokenImpl.isDerivedDesignTokenValue(this.assignedValues.get(_e))&&this.tearDownBindingObserver(_e),this.assignedValues.set(_e,et),DesignTokenImpl.isDerivedDesignTokenValue(et)?this.setupBindingObserver(_e,et):this.store.set(_e,et)}delete(_e){this.assignedValues.delete(_e),this.tearDownBindingObserver(_e);const et=this.getRaw(_e);et?this.hydrate(_e,et):this.store.delete(_e)}bind(){const _e=DesignTokenNode.findParent(this);_e&&_e.appendChild(this);for(const et of this.assignedValues.keys())et.notify(this.target)}unbind(){this.parent&&childToParent.get(this).removeChild(this)}appendChild(_e){_e.parent&&childToParent.get(_e).removeChild(_e);const et=this.children.filter(tt=>_e.contains(tt));childToParent.set(_e,this),this.children.push(_e),et.forEach(tt=>_e.appendChild(tt)),Observable$1.getNotifier(this.store).subscribe(_e);for(const[tt,rt]of this.store.all())_e.hydrate(tt,this.bindingObservers.has(tt)?this.getRaw(tt):rt)}removeChild(_e){const et=this.children.indexOf(_e);return et!==-1&&this.children.splice(et,1),Observable$1.getNotifier(this.store).unsubscribe(_e),_e.parent===this?childToParent.delete(_e):!1}contains(_e){return composedContains(this.target,_e.target)}reflectToCSS(_e){this.isReflecting(_e)||(this.reflecting.add(_e),DesignTokenNode.cssCustomPropertyReflector.startReflection(_e,this.target))}stopReflectToCSS(_e){this.isReflecting(_e)&&(this.reflecting.delete(_e),DesignTokenNode.cssCustomPropertyReflector.stopReflection(_e,this.target))}isReflecting(_e){return this.reflecting.has(_e)}handleChange(_e,et){const tt=DesignTokenImpl.getTokenById(et);tt&&this.hydrate(tt,this.getRaw(tt))}hydrate(_e,et){if(!this.has(_e)){const tt=this.bindingObservers.get(_e);DesignTokenImpl.isDerivedDesignTokenValue(et)?tt?tt.source!==et&&(this.tearDownBindingObserver(_e),this.setupBindingObserver(_e,et)):this.setupBindingObserver(_e,et):(tt&&this.tearDownBindingObserver(_e),this.store.set(_e,et))}}setupBindingObserver(_e,et){const tt=new DesignTokenBindingObserver(et,_e,this);return this.bindingObservers.set(_e,tt),tt}tearDownBindingObserver(_e){return this.bindingObservers.has(_e)?(this.bindingObservers.get(_e).disconnect(),this.bindingObservers.delete(_e),!0):!1}}DesignTokenNode.cssCustomPropertyReflector=new CustomPropertyReflector;__decorate([observable],DesignTokenNode.prototype,"children",void 0);function create$5(j){return DesignTokenImpl.from(j)}const DesignToken=Object.freeze({create:create$5,notifyConnection(j){return!j.isConnected||!DesignTokenNode.existsFor(j)?!1:(DesignTokenNode.getOrCreate(j).bind(),!0)},notifyDisconnection(j){return j.isConnected||!DesignTokenNode.existsFor(j)?!1:(DesignTokenNode.getOrCreate(j).unbind(),!0)},registerRoot(j=defaultElement){RootStyleSheetTarget.registerRoot(j)},unregisterRoot(j=defaultElement){RootStyleSheetTarget.unregisterRoot(j)}}),ElementDisambiguation=Object.freeze({definitionCallbackOnly:null,ignoreDuplicate:Symbol()}),elementTypesByTag=new Map,elementTagsByType=new Map;let rootDesignSystem=null;const designSystemKey=DI.createInterface(j=>j.cachedCallback(_e=>(rootDesignSystem===null&&(rootDesignSystem=new DefaultDesignSystem(null,_e)),rootDesignSystem))),DesignSystem=Object.freeze({tagFor(j){return elementTagsByType.get(j)},responsibleFor(j){const _e=j.$$designSystem$$;return _e||DI.findResponsibleContainer(j).get(designSystemKey)},getOrCreate(j){if(!j)return rootDesignSystem===null&&(rootDesignSystem=DI.getOrCreateDOMContainer().get(designSystemKey)),rootDesignSystem;const _e=j.$$designSystem$$;if(_e)return _e;const et=DI.getOrCreateDOMContainer(j);if(et.has(designSystemKey,!1))return et.get(designSystemKey);{const tt=new DefaultDesignSystem(j,et);return et.register(Registration.instance(designSystemKey,tt)),tt}}});function extractTryDefineElementParams(j,_e,et){return typeof j=="string"?{name:j,type:_e,callback:et}:j}class DefaultDesignSystem{constructor(_e,et){this.owner=_e,this.container=et,this.designTokensInitialized=!1,this.prefix="fast",this.shadowRootMode=void 0,this.disambiguate=()=>ElementDisambiguation.definitionCallbackOnly,_e!==null&&(_e.$$designSystem$$=this)}withPrefix(_e){return this.prefix=_e,this}withShadowRootMode(_e){return this.shadowRootMode=_e,this}withElementDisambiguation(_e){return this.disambiguate=_e,this}withDesignTokenRoot(_e){return this.designTokenRoot=_e,this}register(..._e){const et=this.container,tt=[],rt=this.disambiguate,nt=this.shadowRootMode,ot={elementPrefix:this.prefix,tryDefineElement(it,st,lt){const ut=extractTryDefineElementParams(it,st,lt),{name:ct,callback:dt,baseClass:ft}=ut;let{type:pt}=ut,gt=ct,vt=elementTypesByTag.get(gt),bt=!0;for(;vt;){const _t=rt(gt,pt,vt);switch(_t){case ElementDisambiguation.ignoreDuplicate:return;case ElementDisambiguation.definitionCallbackOnly:bt=!1,vt=void 0;break;default:gt=_t,vt=elementTypesByTag.get(gt);break}}bt&&((elementTagsByType.has(pt)||pt===FoundationElement)&&(pt=class extends pt{}),elementTypesByTag.set(gt,pt),elementTagsByType.set(pt,gt),ft&&elementTagsByType.set(ft,gt)),tt.push(new ElementDefinitionEntry(et,gt,pt,nt,dt,bt))}};this.designTokensInitialized||(this.designTokensInitialized=!0,this.designTokenRoot!==null&&DesignToken.registerRoot(this.designTokenRoot)),et.registerWithContext(ot,..._e);for(const it of tt)it.callback(it),it.willDefine&&it.definition!==null&&it.definition.define();return this}}class ElementDefinitionEntry{constructor(_e,et,tt,rt,nt,ot){this.container=_e,this.name=et,this.type=tt,this.shadowRootMode=rt,this.callback=nt,this.willDefine=ot,this.definition=null}definePresentation(_e){ComponentPresentation.define(this.name,_e,this.container)}defineElement(_e){this.definition=new FASTElementDefinition(this.type,Object.assign(Object.assign({},_e),{name:this.name}))}tagFor(_e){return DesignSystem.tagFor(_e)}}const dividerTemplate=(j,_e)=>html$4` + +`,DividerRole={separator:"separator",presentation:"presentation"};let Divider$1=class extends FoundationElement{constructor(){super(...arguments),this.role=DividerRole.separator,this.orientation=Orientation.horizontal}};__decorate([attr],Divider$1.prototype,"role",void 0);__decorate([attr],Divider$1.prototype,"orientation",void 0);const listboxOptionTemplate=(j,_e)=>html$4` + +`;class ListboxElement extends Listbox{constructor(){super(...arguments),this.activeIndex=-1,this.rangeStartIndex=-1}get activeOption(){return this.options[this.activeIndex]}get checkedOptions(){var _e;return(_e=this.options)===null||_e===void 0?void 0:_e.filter(et=>et.checked)}get firstSelectedOptionIndex(){return this.options.indexOf(this.firstSelectedOption)}activeIndexChanged(_e,et){var tt,rt;this.ariaActiveDescendant=(rt=(tt=this.options[et])===null||tt===void 0?void 0:tt.id)!==null&&rt!==void 0?rt:"",this.focusAndScrollOptionIntoView()}checkActiveIndex(){if(!this.multiple)return;const _e=this.activeOption;_e&&(_e.checked=!0)}checkFirstOption(_e=!1){_e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex+1),this.options.forEach((et,tt)=>{et.checked=inRange(tt,this.rangeStartIndex)})):this.uncheckAllOptions(),this.activeIndex=0,this.checkActiveIndex()}checkLastOption(_e=!1){_e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.options.forEach((et,tt)=>{et.checked=inRange(tt,this.rangeStartIndex,this.options.length)})):this.uncheckAllOptions(),this.activeIndex=this.options.length-1,this.checkActiveIndex()}connectedCallback(){super.connectedCallback(),this.addEventListener("focusout",this.focusoutHandler)}disconnectedCallback(){this.removeEventListener("focusout",this.focusoutHandler),super.disconnectedCallback()}checkNextOption(_e=!1){_e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.options.forEach((et,tt)=>{et.checked=inRange(tt,this.rangeStartIndex,this.activeIndex+1)})):this.uncheckAllOptions(),this.activeIndex+=this.activeIndex{et.checked=inRange(tt,this.activeIndex,this.rangeStartIndex)})):this.uncheckAllOptions(),this.activeIndex-=this.activeIndex>0?1:0,this.checkActiveIndex()}clickHandler(_e){var et;if(!this.multiple)return super.clickHandler(_e);const tt=(et=_e.target)===null||et===void 0?void 0:et.closest("[role=option]");if(!(!tt||tt.disabled))return this.uncheckAllOptions(),this.activeIndex=this.options.indexOf(tt),this.checkActiveIndex(),this.toggleSelectedForAllCheckedOptions(),!0}focusAndScrollOptionIntoView(){super.focusAndScrollOptionIntoView(this.activeOption)}focusinHandler(_e){if(!this.multiple)return super.focusinHandler(_e);!this.shouldSkipFocus&&_e.target===_e.currentTarget&&(this.uncheckAllOptions(),this.activeIndex===-1&&(this.activeIndex=this.firstSelectedOptionIndex!==-1?this.firstSelectedOptionIndex:0),this.checkActiveIndex(),this.setSelectedOptions(),this.focusAndScrollOptionIntoView()),this.shouldSkipFocus=!1}focusoutHandler(_e){this.multiple&&this.uncheckAllOptions()}keydownHandler(_e){if(!this.multiple)return super.keydownHandler(_e);if(this.disabled)return!0;const{key:et,shiftKey:tt}=_e;switch(this.shouldSkipFocus=!1,et){case keyHome:{this.checkFirstOption(tt);return}case keyArrowDown:{this.checkNextOption(tt);return}case keyArrowUp:{this.checkPreviousOption(tt);return}case keyEnd:{this.checkLastOption(tt);return}case keyTab:return this.focusAndScrollOptionIntoView(),!0;case keyEscape:return this.uncheckAllOptions(),this.checkActiveIndex(),!0;case keySpace:if(_e.preventDefault(),this.typeAheadExpired){this.toggleSelectedForAllCheckedOptions();return}default:return et.length===1&&this.handleTypeAhead(`${et}`),!0}}mousedownHandler(_e){if(_e.offsetX>=0&&_e.offsetX<=this.scrollWidth)return super.mousedownHandler(_e)}multipleChanged(_e,et){var tt;this.ariaMultiSelectable=et?"true":null,(tt=this.options)===null||tt===void 0||tt.forEach(rt=>{rt.checked=et?!1:void 0}),this.setSelectedOptions()}setSelectedOptions(){if(!this.multiple){super.setSelectedOptions();return}this.$fastController.isConnected&&this.options&&(this.selectedOptions=this.options.filter(_e=>_e.selected),this.focusAndScrollOptionIntoView())}sizeChanged(_e,et){var tt;const rt=Math.max(0,parseInt((tt=et==null?void 0:et.toFixed())!==null&&tt!==void 0?tt:"",10));rt!==et&&DOM.queueUpdate(()=>{this.size=rt})}toggleSelectedForAllCheckedOptions(){const _e=this.checkedOptions.filter(tt=>!tt.disabled),et=!_e.every(tt=>tt.selected);_e.forEach(tt=>tt.selected=et),this.selectedIndex=this.options.indexOf(_e[_e.length-1]),this.setSelectedOptions()}typeaheadBufferChanged(_e,et){if(!this.multiple){super.typeaheadBufferChanged(_e,et);return}if(this.$fastController.isConnected){const tt=this.getTypeaheadMatches(),rt=this.options.indexOf(tt[0]);rt>-1&&(this.activeIndex=rt,this.uncheckAllOptions(),this.checkActiveIndex()),this.typeAheadExpired=!1}}uncheckAllOptions(_e=!1){this.options.forEach(et=>et.checked=this.multiple?!1:void 0),_e||(this.rangeStartIndex=-1)}}__decorate([observable],ListboxElement.prototype,"activeIndex",void 0);__decorate([attr({mode:"boolean"})],ListboxElement.prototype,"multiple",void 0);__decorate([attr({converter:nullableNumberConverter})],ListboxElement.prototype,"size",void 0);class _TextField extends FoundationElement{}class FormAssociatedTextField extends FormAssociated(_TextField){constructor(){super(...arguments),this.proxy=document.createElement("input")}}const TextFieldType={email:"email",password:"password",tel:"tel",text:"text",url:"url"};let TextField$1=class extends FormAssociatedTextField{constructor(){super(...arguments),this.type=TextFieldType.text}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly,this.validate())}autofocusChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.autofocus=this.autofocus,this.validate())}placeholderChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.placeholder=this.placeholder)}typeChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.type=this.type,this.validate())}listChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.setAttribute("list",this.list),this.validate())}maxlengthChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.maxLength=this.maxlength,this.validate())}minlengthChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.minLength=this.minlength,this.validate())}patternChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.pattern=this.pattern,this.validate())}sizeChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.size=this.size)}spellcheckChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.spellcheck=this.spellcheck)}connectedCallback(){super.connectedCallback(),this.proxy.setAttribute("type",this.type),this.validate(),this.autofocus&&DOM.queueUpdate(()=>{this.focus()})}select(){this.control.select(),this.$emit("select")}handleTextInput(){this.value=this.control.value}handleChange(){this.$emit("change")}validate(){super.validate(this.control)}};__decorate([attr({attribute:"readonly",mode:"boolean"})],TextField$1.prototype,"readOnly",void 0);__decorate([attr({mode:"boolean"})],TextField$1.prototype,"autofocus",void 0);__decorate([attr],TextField$1.prototype,"placeholder",void 0);__decorate([attr],TextField$1.prototype,"type",void 0);__decorate([attr],TextField$1.prototype,"list",void 0);__decorate([attr({converter:nullableNumberConverter})],TextField$1.prototype,"maxlength",void 0);__decorate([attr({converter:nullableNumberConverter})],TextField$1.prototype,"minlength",void 0);__decorate([attr],TextField$1.prototype,"pattern",void 0);__decorate([attr({converter:nullableNumberConverter})],TextField$1.prototype,"size",void 0);__decorate([attr({mode:"boolean"})],TextField$1.prototype,"spellcheck",void 0);__decorate([observable],TextField$1.prototype,"defaultSlottedNodes",void 0);class DelegatesARIATextbox{}applyMixins(DelegatesARIATextbox,ARIAGlobalStatesAndProperties);applyMixins(TextField$1,StartEnd,DelegatesARIATextbox);const progressSegments=44,progressRingTemplate=(j,_e)=>html$4` + +`;class BaseProgress extends FoundationElement{constructor(){super(...arguments),this.percentComplete=0}valueChanged(){this.$fastController.isConnected&&this.updatePercentComplete()}minChanged(){this.$fastController.isConnected&&this.updatePercentComplete()}maxChanged(){this.$fastController.isConnected&&this.updatePercentComplete()}connectedCallback(){super.connectedCallback(),this.updatePercentComplete()}updatePercentComplete(){const _e=typeof this.min=="number"?this.min:0,et=typeof this.max=="number"?this.max:100,tt=typeof this.value=="number"?this.value:0,rt=et-_e;this.percentComplete=rt===0?0:Math.fround((tt-_e)/rt*100)}}__decorate([attr({converter:nullableNumberConverter})],BaseProgress.prototype,"value",void 0);__decorate([attr({converter:nullableNumberConverter})],BaseProgress.prototype,"min",void 0);__decorate([attr({converter:nullableNumberConverter})],BaseProgress.prototype,"max",void 0);__decorate([attr({mode:"boolean"})],BaseProgress.prototype,"paused",void 0);__decorate([observable],BaseProgress.prototype,"percentComplete",void 0);const radioGroupTemplate=(j,_e)=>html$4` + +`;let RadioGroup$1=class extends FoundationElement{constructor(){super(...arguments),this.orientation=Orientation.horizontal,this.radioChangeHandler=_e=>{const et=_e.target;et.checked&&(this.slottedRadioButtons.forEach(tt=>{tt!==et&&(tt.checked=!1,this.isInsideFoundationToolbar||tt.setAttribute("tabindex","-1"))}),this.selectedRadio=et,this.value=et.value,et.setAttribute("tabindex","0"),this.focusedRadio=et),_e.stopPropagation()},this.moveToRadioByIndex=(_e,et)=>{const tt=_e[et];this.isInsideToolbar||(tt.setAttribute("tabindex","0"),tt.readOnly?this.slottedRadioButtons.forEach(rt=>{rt!==tt&&rt.setAttribute("tabindex","-1")}):(tt.checked=!0,this.selectedRadio=tt)),this.focusedRadio=tt,tt.focus()},this.moveRightOffGroup=()=>{var _e;(_e=this.nextElementSibling)===null||_e===void 0||_e.focus()},this.moveLeftOffGroup=()=>{var _e;(_e=this.previousElementSibling)===null||_e===void 0||_e.focus()},this.focusOutHandler=_e=>{const et=this.slottedRadioButtons,tt=_e.target,rt=tt!==null?et.indexOf(tt):0,nt=this.focusedRadio?et.indexOf(this.focusedRadio):-1;return(nt===0&&rt===nt||nt===et.length-1&&nt===rt)&&(this.selectedRadio?(this.focusedRadio=this.selectedRadio,this.isInsideFoundationToolbar||(this.selectedRadio.setAttribute("tabindex","0"),et.forEach(ot=>{ot!==this.selectedRadio&&ot.setAttribute("tabindex","-1")}))):(this.focusedRadio=et[0],this.focusedRadio.setAttribute("tabindex","0"),et.forEach(ot=>{ot!==this.focusedRadio&&ot.setAttribute("tabindex","-1")}))),!0},this.clickHandler=_e=>{const et=_e.target;if(et){const tt=this.slottedRadioButtons;et.checked||tt.indexOf(et)===0?(et.setAttribute("tabindex","0"),this.selectedRadio=et):(et.setAttribute("tabindex","-1"),this.selectedRadio=null),this.focusedRadio=et}_e.preventDefault()},this.shouldMoveOffGroupToTheRight=(_e,et,tt)=>_e===et.length&&this.isInsideToolbar&&tt===keyArrowRight,this.shouldMoveOffGroupToTheLeft=(_e,et)=>(this.focusedRadio?_e.indexOf(this.focusedRadio)-1:0)<0&&this.isInsideToolbar&&et===keyArrowLeft,this.checkFocusedRadio=()=>{this.focusedRadio!==null&&!this.focusedRadio.readOnly&&!this.focusedRadio.checked&&(this.focusedRadio.checked=!0,this.focusedRadio.setAttribute("tabindex","0"),this.focusedRadio.focus(),this.selectedRadio=this.focusedRadio)},this.moveRight=_e=>{const et=this.slottedRadioButtons;let tt=0;if(tt=this.focusedRadio?et.indexOf(this.focusedRadio)+1:1,this.shouldMoveOffGroupToTheRight(tt,et,_e.key)){this.moveRightOffGroup();return}else tt===et.length&&(tt=0);for(;tt1;)if(et[tt].disabled){if(this.focusedRadio&&tt===et.indexOf(this.focusedRadio))break;if(tt+1>=et.length){if(this.isInsideToolbar)break;tt=0}else tt+=1}else{this.moveToRadioByIndex(et,tt);break}},this.moveLeft=_e=>{const et=this.slottedRadioButtons;let tt=0;if(tt=this.focusedRadio?et.indexOf(this.focusedRadio)-1:0,tt=tt<0?et.length-1:tt,this.shouldMoveOffGroupToTheLeft(et,_e.key)){this.moveLeftOffGroup();return}for(;tt>=0&&et.length>1;)if(et[tt].disabled){if(this.focusedRadio&&tt===et.indexOf(this.focusedRadio))break;tt-1<0?tt=et.length-1:tt-=1}else{this.moveToRadioByIndex(et,tt);break}},this.keydownHandler=_e=>{const et=_e.key;if(et in ArrowKeys&&this.isInsideFoundationToolbar)return!0;switch(et){case keyEnter:{this.checkFocusedRadio();break}case keyArrowRight:case keyArrowDown:{this.direction===Direction.ltr?this.moveRight(_e):this.moveLeft(_e);break}case keyArrowLeft:case keyArrowUp:{this.direction===Direction.ltr?this.moveLeft(_e):this.moveRight(_e);break}default:return!0}}}readOnlyChanged(){this.slottedRadioButtons!==void 0&&this.slottedRadioButtons.forEach(_e=>{this.readOnly?_e.readOnly=!0:_e.readOnly=!1})}disabledChanged(){this.slottedRadioButtons!==void 0&&this.slottedRadioButtons.forEach(_e=>{this.disabled?_e.disabled=!0:_e.disabled=!1})}nameChanged(){this.slottedRadioButtons&&this.slottedRadioButtons.forEach(_e=>{_e.setAttribute("name",this.name)})}valueChanged(){this.slottedRadioButtons&&this.slottedRadioButtons.forEach(_e=>{_e.value===this.value&&(_e.checked=!0,this.selectedRadio=_e)}),this.$emit("change")}slottedRadioButtonsChanged(_e,et){this.slottedRadioButtons&&this.slottedRadioButtons.length>0&&this.setupRadioButtons()}get parentToolbar(){return this.closest('[role="toolbar"]')}get isInsideToolbar(){var _e;return(_e=this.parentToolbar)!==null&&_e!==void 0?_e:!1}get isInsideFoundationToolbar(){var _e;return!!(!((_e=this.parentToolbar)===null||_e===void 0)&&_e.$fastController)}connectedCallback(){super.connectedCallback(),this.direction=getDirection(this),this.setupRadioButtons()}disconnectedCallback(){this.slottedRadioButtons.forEach(_e=>{_e.removeEventListener("change",this.radioChangeHandler)})}setupRadioButtons(){const _e=this.slottedRadioButtons.filter(rt=>rt.hasAttribute("checked")),et=_e?_e.length:0;if(et>1){const rt=_e[et-1];rt.checked=!0}let tt=!1;if(this.slottedRadioButtons.forEach(rt=>{this.name!==void 0&&rt.setAttribute("name",this.name),this.disabled&&(rt.disabled=!0),this.readOnly&&(rt.readOnly=!0),this.value&&this.value===rt.value?(this.selectedRadio=rt,this.focusedRadio=rt,rt.checked=!0,rt.setAttribute("tabindex","0"),tt=!0):(this.isInsideFoundationToolbar||rt.setAttribute("tabindex","-1"),rt.checked=!1),rt.addEventListener("change",this.radioChangeHandler)}),this.value===void 0&&this.slottedRadioButtons.length>0){const rt=this.slottedRadioButtons.filter(ot=>ot.hasAttribute("checked")),nt=rt!==null?rt.length:0;if(nt>0&&!tt){const ot=rt[nt-1];ot.checked=!0,this.focusedRadio=ot,ot.setAttribute("tabindex","0")}else this.slottedRadioButtons[0].setAttribute("tabindex","0"),this.focusedRadio=this.slottedRadioButtons[0]}}};__decorate([attr({attribute:"readonly",mode:"boolean"})],RadioGroup$1.prototype,"readOnly",void 0);__decorate([attr({attribute:"disabled",mode:"boolean"})],RadioGroup$1.prototype,"disabled",void 0);__decorate([attr],RadioGroup$1.prototype,"name",void 0);__decorate([attr],RadioGroup$1.prototype,"value",void 0);__decorate([attr],RadioGroup$1.prototype,"orientation",void 0);__decorate([observable],RadioGroup$1.prototype,"childItems",void 0);__decorate([observable],RadioGroup$1.prototype,"slottedRadioButtons",void 0);const radioTemplate=(j,_e)=>html$4` + +`;class _Radio extends FoundationElement{}class FormAssociatedRadio extends CheckableFormAssociated(_Radio){constructor(){super(...arguments),this.proxy=document.createElement("input")}}let Radio$1=class extends FormAssociatedRadio{constructor(){super(),this.initialValue="on",this.keypressHandler=_e=>{switch(_e.key){case keySpace:!this.checked&&!this.readOnly&&(this.checked=!0);return}return!0},this.proxy.setAttribute("type","radio")}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly)}defaultCheckedChanged(){var _e;this.$fastController.isConnected&&!this.dirtyChecked&&(this.isInsideRadioGroup()||(this.checked=(_e=this.defaultChecked)!==null&&_e!==void 0?_e:!1,this.dirtyChecked=!1))}connectedCallback(){var _e,et;super.connectedCallback(),this.validate(),((_e=this.parentElement)===null||_e===void 0?void 0:_e.getAttribute("role"))!=="radiogroup"&&this.getAttribute("tabindex")===null&&(this.disabled||this.setAttribute("tabindex","0")),this.checkedAttribute&&(this.dirtyChecked||this.isInsideRadioGroup()||(this.checked=(et=this.defaultChecked)!==null&&et!==void 0?et:!1,this.dirtyChecked=!1))}isInsideRadioGroup(){return this.closest("[role=radiogroup]")!==null}clickHandler(_e){!this.disabled&&!this.readOnly&&!this.checked&&(this.checked=!0)}};__decorate([attr({attribute:"readonly",mode:"boolean"})],Radio$1.prototype,"readOnly",void 0);__decorate([observable],Radio$1.prototype,"name",void 0);__decorate([observable],Radio$1.prototype,"defaultSlottedNodes",void 0);function whitespaceFilter(j,_e,et){return j.nodeType!==Node.TEXT_NODE?!0:typeof j.nodeValue=="string"&&!!j.nodeValue.trim().length}class _Select extends ListboxElement{}class FormAssociatedSelect extends FormAssociated(_Select){constructor(){super(...arguments),this.proxy=document.createElement("select")}}class Select extends FormAssociatedSelect{constructor(){super(...arguments),this.open=!1,this.forcedPosition=!1,this.listboxId=uniqueId$1("listbox-"),this.maxHeight=0}openChanged(_e,et){if(this.collapsible){if(this.open){this.ariaControls=this.listboxId,this.ariaExpanded="true",this.setPositioning(),this.focusAndScrollOptionIntoView(),this.indexWhenOpened=this.selectedIndex,DOM.queueUpdate(()=>this.focus());return}this.ariaControls="",this.ariaExpanded="false"}}get collapsible(){return!(this.multiple||typeof this.size=="number")}get value(){return Observable$1.track(this,"value"),this._value}set value(_e){var et,tt,rt,nt,ot,it,st;const lt=`${this._value}`;if(!((et=this._options)===null||et===void 0)&&et.length){const ut=this._options.findIndex(ft=>ft.value===_e),ct=(rt=(tt=this._options[this.selectedIndex])===null||tt===void 0?void 0:tt.value)!==null&&rt!==void 0?rt:null,dt=(ot=(nt=this._options[ut])===null||nt===void 0?void 0:nt.value)!==null&&ot!==void 0?ot:null;(ut===-1||ct!==dt)&&(_e="",this.selectedIndex=ut),_e=(st=(it=this.firstSelectedOption)===null||it===void 0?void 0:it.value)!==null&&st!==void 0?st:_e}lt!==_e&&(this._value=_e,super.valueChanged(lt,_e),Observable$1.notify(this,"value"),this.updateDisplayValue())}updateValue(_e){var et,tt;this.$fastController.isConnected&&(this.value=(tt=(et=this.firstSelectedOption)===null||et===void 0?void 0:et.value)!==null&&tt!==void 0?tt:""),_e&&(this.$emit("input"),this.$emit("change",this,{bubbles:!0,composed:void 0}))}selectedIndexChanged(_e,et){super.selectedIndexChanged(_e,et),this.updateValue()}positionChanged(_e,et){this.positionAttribute=et,this.setPositioning()}setPositioning(){const _e=this.getBoundingClientRect(),tt=window.innerHeight-_e.bottom;this.position=this.forcedPosition?this.positionAttribute:_e.top>tt?SelectPosition.above:SelectPosition.below,this.positionAttribute=this.forcedPosition?this.positionAttribute:this.position,this.maxHeight=this.position===SelectPosition.above?~~_e.top:~~tt}get displayValue(){var _e,et;return Observable$1.track(this,"displayValue"),(et=(_e=this.firstSelectedOption)===null||_e===void 0?void 0:_e.text)!==null&&et!==void 0?et:""}disabledChanged(_e,et){super.disabledChanged&&super.disabledChanged(_e,et),this.ariaDisabled=this.disabled?"true":"false"}formResetCallback(){this.setProxyOptions(),super.setDefaultSelectedOption(),this.selectedIndex===-1&&(this.selectedIndex=0)}clickHandler(_e){if(!this.disabled){if(this.open){const et=_e.target.closest("option,[role=option]");if(et&&et.disabled)return}return super.clickHandler(_e),this.open=this.collapsible&&!this.open,!this.open&&this.indexWhenOpened!==this.selectedIndex&&this.updateValue(!0),!0}}focusoutHandler(_e){var et;if(super.focusoutHandler(_e),!this.open)return!0;const tt=_e.relatedTarget;if(this.isSameNode(tt)){this.focus();return}!((et=this.options)===null||et===void 0)&&et.includes(tt)||(this.open=!1,this.indexWhenOpened!==this.selectedIndex&&this.updateValue(!0))}handleChange(_e,et){super.handleChange(_e,et),et==="value"&&this.updateValue()}slottedOptionsChanged(_e,et){this.options.forEach(tt=>{Observable$1.getNotifier(tt).unsubscribe(this,"value")}),super.slottedOptionsChanged(_e,et),this.options.forEach(tt=>{Observable$1.getNotifier(tt).subscribe(this,"value")}),this.setProxyOptions(),this.updateValue()}mousedownHandler(_e){var et;return _e.offsetX>=0&&_e.offsetX<=((et=this.listbox)===null||et===void 0?void 0:et.scrollWidth)?super.mousedownHandler(_e):this.collapsible}multipleChanged(_e,et){super.multipleChanged(_e,et),this.proxy&&(this.proxy.multiple=et)}selectedOptionsChanged(_e,et){var tt;super.selectedOptionsChanged(_e,et),(tt=this.options)===null||tt===void 0||tt.forEach((rt,nt)=>{var ot;const it=(ot=this.proxy)===null||ot===void 0?void 0:ot.options.item(nt);it&&(it.selected=rt.selected)})}setDefaultSelectedOption(){var _e;const et=(_e=this.options)!==null&&_e!==void 0?_e:Array.from(this.children).filter(Listbox.slottedOptionFilter),tt=et==null?void 0:et.findIndex(rt=>rt.hasAttribute("selected")||rt.selected||rt.value===this.value);if(tt!==-1){this.selectedIndex=tt;return}this.selectedIndex=0}setProxyOptions(){this.proxy instanceof HTMLSelectElement&&this.options&&(this.proxy.options.length=0,this.options.forEach(_e=>{const et=_e.proxy||(_e instanceof HTMLOptionElement?_e.cloneNode():null);et&&this.proxy.options.add(et)}))}keydownHandler(_e){super.keydownHandler(_e);const et=_e.key||_e.key.charCodeAt(0);switch(et){case keySpace:{_e.preventDefault(),this.collapsible&&this.typeAheadExpired&&(this.open=!this.open);break}case keyHome:case keyEnd:{_e.preventDefault();break}case keyEnter:{_e.preventDefault(),this.open=!this.open;break}case keyEscape:{this.collapsible&&this.open&&(_e.preventDefault(),this.open=!1);break}case keyTab:return this.collapsible&&this.open&&(_e.preventDefault(),this.open=!1),!0}return!this.open&&this.indexWhenOpened!==this.selectedIndex&&(this.updateValue(!0),this.indexWhenOpened=this.selectedIndex),!(et===keyArrowDown||et===keyArrowUp)}connectedCallback(){super.connectedCallback(),this.forcedPosition=!!this.positionAttribute,this.addEventListener("contentchange",this.updateDisplayValue)}disconnectedCallback(){this.removeEventListener("contentchange",this.updateDisplayValue),super.disconnectedCallback()}sizeChanged(_e,et){super.sizeChanged(_e,et),this.proxy&&(this.proxy.size=et)}updateDisplayValue(){this.collapsible&&Observable$1.notify(this,"displayValue")}}__decorate([attr({attribute:"open",mode:"boolean"})],Select.prototype,"open",void 0);__decorate([volatile],Select.prototype,"collapsible",null);__decorate([observable],Select.prototype,"control",void 0);__decorate([attr({attribute:"position"})],Select.prototype,"positionAttribute",void 0);__decorate([observable],Select.prototype,"position",void 0);__decorate([observable],Select.prototype,"maxHeight",void 0);class DelegatesARIASelect{}__decorate([observable],DelegatesARIASelect.prototype,"ariaControls",void 0);applyMixins(DelegatesARIASelect,DelegatesARIAListbox);applyMixins(Select,StartEnd,DelegatesARIASelect);const selectTemplate=(j,_e)=>html$4` + +`,tabPanelTemplate=(j,_e)=>html$4` + +`;class TabPanel extends FoundationElement{}const tabTemplate=(j,_e)=>html$4` + +`;class Tab extends FoundationElement{}__decorate([attr({mode:"boolean"})],Tab.prototype,"disabled",void 0);const tabsTemplate=(j,_e)=>html$4` + +`,TabsOrientation={vertical:"vertical",horizontal:"horizontal"};class Tabs extends FoundationElement{constructor(){super(...arguments),this.orientation=TabsOrientation.horizontal,this.activeindicator=!0,this.showActiveIndicator=!0,this.prevActiveTabIndex=0,this.activeTabIndex=0,this.ticking=!1,this.change=()=>{this.$emit("change",this.activetab)},this.isDisabledElement=_e=>_e.getAttribute("aria-disabled")==="true",this.isHiddenElement=_e=>_e.hasAttribute("hidden"),this.isFocusableElement=_e=>!this.isDisabledElement(_e)&&!this.isHiddenElement(_e),this.setTabs=()=>{const _e="gridColumn",et="gridRow",tt=this.isHorizontal()?_e:et;this.activeTabIndex=this.getActiveIndex(),this.showActiveIndicator=!1,this.tabs.forEach((rt,nt)=>{if(rt.slot==="tab"){const ot=this.activeTabIndex===nt&&this.isFocusableElement(rt);this.activeindicator&&this.isFocusableElement(rt)&&(this.showActiveIndicator=!0);const it=this.tabIds[nt],st=this.tabpanelIds[nt];rt.setAttribute("id",it),rt.setAttribute("aria-selected",ot?"true":"false"),rt.setAttribute("aria-controls",st),rt.addEventListener("click",this.handleTabClick),rt.addEventListener("keydown",this.handleTabKeyDown),rt.setAttribute("tabindex",ot?"0":"-1"),ot&&(this.activetab=rt,this.activeid=it)}rt.style[_e]="",rt.style[et]="",rt.style[tt]=`${nt+1}`,this.isHorizontal()?rt.classList.remove("vertical"):rt.classList.add("vertical")})},this.setTabPanels=()=>{this.tabpanels.forEach((_e,et)=>{const tt=this.tabIds[et],rt=this.tabpanelIds[et];_e.setAttribute("id",rt),_e.setAttribute("aria-labelledby",tt),this.activeTabIndex!==et?_e.setAttribute("hidden",""):_e.removeAttribute("hidden")})},this.handleTabClick=_e=>{const et=_e.currentTarget;et.nodeType===1&&this.isFocusableElement(et)&&(this.prevActiveTabIndex=this.activeTabIndex,this.activeTabIndex=this.tabs.indexOf(et),this.setComponent())},this.handleTabKeyDown=_e=>{if(this.isHorizontal())switch(_e.key){case keyArrowLeft:_e.preventDefault(),this.adjustBackward(_e);break;case keyArrowRight:_e.preventDefault(),this.adjustForward(_e);break}else switch(_e.key){case keyArrowUp:_e.preventDefault(),this.adjustBackward(_e);break;case keyArrowDown:_e.preventDefault(),this.adjustForward(_e);break}switch(_e.key){case keyHome:_e.preventDefault(),this.adjust(-this.activeTabIndex);break;case keyEnd:_e.preventDefault(),this.adjust(this.tabs.length-this.activeTabIndex-1);break}},this.adjustForward=_e=>{const et=this.tabs;let tt=0;for(tt=this.activetab?et.indexOf(this.activetab)+1:1,tt===et.length&&(tt=0);tt1;)if(this.isFocusableElement(et[tt])){this.moveToTabByIndex(et,tt);break}else{if(this.activetab&&tt===et.indexOf(this.activetab))break;tt+1>=et.length?tt=0:tt+=1}},this.adjustBackward=_e=>{const et=this.tabs;let tt=0;for(tt=this.activetab?et.indexOf(this.activetab)-1:0,tt=tt<0?et.length-1:tt;tt>=0&&et.length>1;)if(this.isFocusableElement(et[tt])){this.moveToTabByIndex(et,tt);break}else tt-1<0?tt=et.length-1:tt-=1},this.moveToTabByIndex=(_e,et)=>{const tt=_e[et];this.activetab=tt,this.prevActiveTabIndex=this.activeTabIndex,this.activeTabIndex=et,tt.focus(),this.setComponent()}}orientationChanged(){this.$fastController.isConnected&&(this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}activeidChanged(_e,et){this.$fastController.isConnected&&this.tabs.length<=this.tabpanels.length&&(this.prevActiveTabIndex=this.tabs.findIndex(tt=>tt.id===_e),this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}tabsChanged(){this.$fastController.isConnected&&this.tabs.length<=this.tabpanels.length&&(this.tabIds=this.getTabIds(),this.tabpanelIds=this.getTabPanelIds(),this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}tabpanelsChanged(){this.$fastController.isConnected&&this.tabpanels.length<=this.tabs.length&&(this.tabIds=this.getTabIds(),this.tabpanelIds=this.getTabPanelIds(),this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}getActiveIndex(){return this.activeid!==void 0?this.tabIds.indexOf(this.activeid)===-1?0:this.tabIds.indexOf(this.activeid):0}getTabIds(){return this.tabs.map(_e=>{var et;return(et=_e.getAttribute("id"))!==null&&et!==void 0?et:`tab-${uniqueId$1()}`})}getTabPanelIds(){return this.tabpanels.map(_e=>{var et;return(et=_e.getAttribute("id"))!==null&&et!==void 0?et:`panel-${uniqueId$1()}`})}setComponent(){this.activeTabIndex!==this.prevActiveTabIndex&&(this.activeid=this.tabIds[this.activeTabIndex],this.focusTab(),this.change())}isHorizontal(){return this.orientation===TabsOrientation.horizontal}handleActiveIndicatorPosition(){this.showActiveIndicator&&this.activeindicator&&this.activeTabIndex!==this.prevActiveTabIndex&&(this.ticking?this.ticking=!1:(this.ticking=!0,this.animateActiveIndicator()))}animateActiveIndicator(){this.ticking=!0;const _e=this.isHorizontal()?"gridColumn":"gridRow",et=this.isHorizontal()?"translateX":"translateY",tt=this.isHorizontal()?"offsetLeft":"offsetTop",rt=this.activeIndicatorRef[tt];this.activeIndicatorRef.style[_e]=`${this.activeTabIndex+1}`;const nt=this.activeIndicatorRef[tt];this.activeIndicatorRef.style[_e]=`${this.prevActiveTabIndex+1}`;const ot=nt-rt;this.activeIndicatorRef.style.transform=`${et}(${ot}px)`,this.activeIndicatorRef.classList.add("activeIndicatorTransition"),this.activeIndicatorRef.addEventListener("transitionend",()=>{this.ticking=!1,this.activeIndicatorRef.style[_e]=`${this.activeTabIndex+1}`,this.activeIndicatorRef.style.transform=`${et}(0px)`,this.activeIndicatorRef.classList.remove("activeIndicatorTransition")})}adjust(_e){const et=this.tabs.filter(ot=>this.isFocusableElement(ot)),tt=et.indexOf(this.activetab),rt=limit(0,et.length-1,tt+_e),nt=this.tabs.indexOf(et[rt]);nt>-1&&this.moveToTabByIndex(this.tabs,nt)}focusTab(){this.tabs[this.activeTabIndex].focus()}connectedCallback(){super.connectedCallback(),this.tabIds=this.getTabIds(),this.tabpanelIds=this.getTabPanelIds(),this.activeTabIndex=this.getActiveIndex()}}__decorate([attr],Tabs.prototype,"orientation",void 0);__decorate([attr],Tabs.prototype,"activeid",void 0);__decorate([observable],Tabs.prototype,"tabs",void 0);__decorate([observable],Tabs.prototype,"tabpanels",void 0);__decorate([attr({mode:"boolean"})],Tabs.prototype,"activeindicator",void 0);__decorate([observable],Tabs.prototype,"activeIndicatorRef",void 0);__decorate([observable],Tabs.prototype,"showActiveIndicator",void 0);applyMixins(Tabs,StartEnd);class _TextArea extends FoundationElement{}class FormAssociatedTextArea extends FormAssociated(_TextArea){constructor(){super(...arguments),this.proxy=document.createElement("textarea")}}const TextAreaResize={none:"none",both:"both",horizontal:"horizontal",vertical:"vertical"};let TextArea$1=class extends FormAssociatedTextArea{constructor(){super(...arguments),this.resize=TextAreaResize.none,this.cols=20,this.handleTextInput=()=>{this.value=this.control.value}}readOnlyChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.readOnly=this.readOnly)}autofocusChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.autofocus=this.autofocus)}listChanged(){this.proxy instanceof HTMLTextAreaElement&&this.proxy.setAttribute("list",this.list)}maxlengthChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.maxLength=this.maxlength)}minlengthChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.minLength=this.minlength)}spellcheckChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.spellcheck=this.spellcheck)}select(){this.control.select(),this.$emit("select")}handleChange(){this.$emit("change")}validate(){super.validate(this.control)}};__decorate([attr({mode:"boolean"})],TextArea$1.prototype,"readOnly",void 0);__decorate([attr],TextArea$1.prototype,"resize",void 0);__decorate([attr({mode:"boolean"})],TextArea$1.prototype,"autofocus",void 0);__decorate([attr({attribute:"form"})],TextArea$1.prototype,"formId",void 0);__decorate([attr],TextArea$1.prototype,"list",void 0);__decorate([attr({converter:nullableNumberConverter})],TextArea$1.prototype,"maxlength",void 0);__decorate([attr({converter:nullableNumberConverter})],TextArea$1.prototype,"minlength",void 0);__decorate([attr],TextArea$1.prototype,"name",void 0);__decorate([attr],TextArea$1.prototype,"placeholder",void 0);__decorate([attr({converter:nullableNumberConverter,mode:"fromView"})],TextArea$1.prototype,"cols",void 0);__decorate([attr({converter:nullableNumberConverter,mode:"fromView"})],TextArea$1.prototype,"rows",void 0);__decorate([attr({mode:"boolean"})],TextArea$1.prototype,"spellcheck",void 0);__decorate([observable],TextArea$1.prototype,"defaultSlottedNodes",void 0);applyMixins(TextArea$1,DelegatesARIATextbox);const textAreaTemplate=(j,_e)=>html$4` + +`,textFieldTemplate=(j,_e)=>html$4` + +`,disabledCursor="not-allowed",hidden=":host([hidden]){display:none}";function display(j){return`${hidden}:host{display:${j}}`}const focusVisible=canUseFocusVisible()?"focus-visible":"focus",reservedReactProperties=new Set(["children","localName","ref","style","className"]),emptyProps=Object.freeze(Object.create(null)),DEFAULT_CACHE_NAME="_default",wrappersCache=new Map;function setRef(j,_e){typeof j=="function"?j(_e):j.current=_e}function getTagName(j,_e){if(!_e.name){const et=FASTElementDefinition.forType(j);if(et)_e.name=et.name;else throw new Error("React wrappers must wrap a FASTElement or be configured with a name.")}return _e.name}function getElementEvents(j){return j.events||(j.events={})}function keyIsValid(j,_e,et){return reservedReactProperties.has(et)?(console.warn(`${getTagName(j,_e)} contains property ${et} which is a React reserved property. It will be used by React and not set on the element.`),!1):!0}function getElementKeys(j,_e){if(!_e.keys)if(_e.properties)_e.keys=new Set(_e.properties.concat(Object.keys(getElementEvents(_e))));else{const et=new Set(Object.keys(getElementEvents(_e))),tt=Observable$1.getAccessors(j.prototype);if(tt.length>0)for(const rt of tt)keyIsValid(j,_e,rt.name)&&et.add(rt.name);else for(const rt in j.prototype)!(rt in HTMLElement.prototype)&&keyIsValid(j,_e,rt)&&et.add(rt);_e.keys=et}return _e.keys}function provideReactWrapper(j,_e){let et=[];const tt={register(nt,...ot){et.forEach(it=>it.register(nt,...ot)),et=[]}};function rt(nt,ot={}){var it,st;nt instanceof FoundationElementRegistry&&(_e?_e.register(nt):et.push(nt),nt=nt.type);const lt=wrappersCache.get(nt);if(lt){const dt=lt.get((it=ot.name)!==null&&it!==void 0?it:DEFAULT_CACHE_NAME);if(dt)return dt}class ut extends j.Component{constructor(){super(...arguments),this._element=null}_updateElement(ft){const pt=this._element;if(pt===null)return;const gt=this.props,vt=ft||emptyProps,bt=getElementEvents(ot);for(const _t in this._elementProps){const xt=gt[_t],yt=bt[_t];if(yt===void 0)pt[_t]=xt;else{const Et=vt[_t];if(xt===Et)continue;Et!==void 0&&pt.removeEventListener(yt,Et),xt!==void 0&&pt.addEventListener(yt,xt)}}}componentDidMount(){this._updateElement()}componentDidUpdate(ft){this._updateElement(ft)}render(){const ft=this.props.__forwardedRef;(this._ref===void 0||this._userRef!==ft)&&(this._ref=_t=>{this._element===null&&(this._element=_t),ft!==null&&setRef(ft,_t),this._userRef=ft});const pt={ref:this._ref},gt=this._elementProps={},vt=getElementKeys(nt,ot),bt=this.props;for(const _t in bt){const xt=bt[_t];vt.has(_t)?gt[_t]=xt:pt[_t==="className"?"class":_t]=xt}return j.createElement(getTagName(nt,ot),pt)}}const ct=j.forwardRef((dt,ft)=>j.createElement(ut,Object.assign(Object.assign({},dt),{__forwardedRef:ft}),dt==null?void 0:dt.children));return wrappersCache.has(nt)||wrappersCache.set(nt,new Map),wrappersCache.get(nt).set((st=ot.name)!==null&&st!==void 0?st:DEFAULT_CACHE_NAME,ct),ct}return{wrap:rt,registry:tt}}function provideVSCodeDesignSystem(j){return DesignSystem.getOrCreate(j).withPrefix("vscode")}function initThemeChangeListener(j){window.addEventListener("load",()=>{new MutationObserver(()=>{applyCurrentTheme(j)}).observe(document.body,{attributes:!0,attributeFilter:["class"]}),applyCurrentTheme(j)})}function applyCurrentTheme(j){const _e=getComputedStyle(document.body),et=document.querySelector("body");if(et){const tt=et.getAttribute("data-vscode-theme-kind");for(const[rt,nt]of j){let ot=_e.getPropertyValue(rt).toString();if(tt==="vscode-high-contrast")ot.length===0&&nt.name.includes("background")&&(ot="transparent"),nt.name==="button-icon-hover-background"&&(ot="transparent");else if(tt==="vscode-high-contrast-light"){if(ot.length===0&&nt.name.includes("background"))switch(nt.name){case"button-primary-hover-background":ot="#0F4A85";break;case"button-secondary-hover-background":ot="transparent";break;case"button-icon-hover-background":ot="transparent";break}}else nt.name==="contrast-active-border"&&(ot="transparent");nt.setValueFor(et,ot)}}}const tokenMappings=new Map;let isThemeListenerInitialized=!1;function create$4(j,_e){const et=DesignToken.create(j);if(_e){if(_e.includes("--fake-vscode-token")){const tt="id"+Math.random().toString(16).slice(2);_e=`${_e}-${tt}`}tokenMappings.set(_e,et)}return isThemeListenerInitialized||(initThemeChangeListener(tokenMappings),isThemeListenerInitialized=!0),et}const background=create$4("background","--vscode-editor-background").withDefault("#1e1e1e"),borderWidth=create$4("border-width").withDefault(1),contrastActiveBorder=create$4("contrast-active-border","--vscode-contrastActiveBorder").withDefault("#f38518");create$4("contrast-border","--vscode-contrastBorder").withDefault("#6fc3df");const cornerRadius=create$4("corner-radius").withDefault(0),cornerRadiusRound=create$4("corner-radius-round").withDefault(2),designUnit=create$4("design-unit").withDefault(4),disabledOpacity=create$4("disabled-opacity").withDefault(.4),focusBorder=create$4("focus-border","--vscode-focusBorder").withDefault("#007fd4"),fontFamily=create$4("font-family","--vscode-font-family").withDefault("-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol");create$4("font-weight","--vscode-font-weight").withDefault("400");const foreground=create$4("foreground","--vscode-foreground").withDefault("#cccccc"),inputHeight=create$4("input-height").withDefault("26"),inputMinWidth=create$4("input-min-width").withDefault("100px"),typeRampBaseFontSize=create$4("type-ramp-base-font-size","--vscode-font-size").withDefault("13px"),typeRampBaseLineHeight=create$4("type-ramp-base-line-height").withDefault("normal"),typeRampMinus1FontSize=create$4("type-ramp-minus1-font-size").withDefault("11px"),typeRampMinus1LineHeight=create$4("type-ramp-minus1-line-height").withDefault("16px");create$4("type-ramp-minus2-font-size").withDefault("9px");create$4("type-ramp-minus2-line-height").withDefault("16px");create$4("type-ramp-plus1-font-size").withDefault("16px");create$4("type-ramp-plus1-line-height").withDefault("24px");const scrollbarWidth=create$4("scrollbarWidth").withDefault("10px"),scrollbarHeight=create$4("scrollbarHeight").withDefault("10px"),scrollbarSliderBackground=create$4("scrollbar-slider-background","--vscode-scrollbarSlider-background").withDefault("#79797966"),scrollbarSliderHoverBackground=create$4("scrollbar-slider-hover-background","--vscode-scrollbarSlider-hoverBackground").withDefault("#646464b3"),scrollbarSliderActiveBackground=create$4("scrollbar-slider-active-background","--vscode-scrollbarSlider-activeBackground").withDefault("#bfbfbf66"),badgeBackground=create$4("badge-background","--vscode-badge-background").withDefault("#4d4d4d"),badgeForeground=create$4("badge-foreground","--vscode-badge-foreground").withDefault("#ffffff"),buttonBorder=create$4("button-border","--vscode-button-border").withDefault("transparent"),buttonIconBackground=create$4("button-icon-background").withDefault("transparent"),buttonIconCornerRadius=create$4("button-icon-corner-radius").withDefault("5px"),buttonIconFocusBorderOffset=create$4("button-icon-outline-offset").withDefault(0),buttonIconHoverBackground=create$4("button-icon-hover-background","--fake-vscode-token").withDefault("rgba(90, 93, 94, 0.31)"),buttonIconPadding=create$4("button-icon-padding").withDefault("3px"),buttonPrimaryBackground=create$4("button-primary-background","--vscode-button-background").withDefault("#0e639c"),buttonPrimaryForeground=create$4("button-primary-foreground","--vscode-button-foreground").withDefault("#ffffff"),buttonPrimaryHoverBackground=create$4("button-primary-hover-background","--vscode-button-hoverBackground").withDefault("#1177bb"),buttonSecondaryBackground=create$4("button-secondary-background","--vscode-button-secondaryBackground").withDefault("#3a3d41"),buttonSecondaryForeground=create$4("button-secondary-foreground","--vscode-button-secondaryForeground").withDefault("#ffffff"),buttonSecondaryHoverBackground=create$4("button-secondary-hover-background","--vscode-button-secondaryHoverBackground").withDefault("#45494e"),buttonPaddingHorizontal=create$4("button-padding-horizontal").withDefault("11px"),buttonPaddingVertical=create$4("button-padding-vertical").withDefault("4px"),checkboxBackground=create$4("checkbox-background","--vscode-checkbox-background").withDefault("#3c3c3c"),checkboxBorder=create$4("checkbox-border","--vscode-checkbox-border").withDefault("#3c3c3c"),checkboxCornerRadius=create$4("checkbox-corner-radius").withDefault(3);create$4("checkbox-foreground","--vscode-checkbox-foreground").withDefault("#f0f0f0");const listActiveSelectionBackground=create$4("list-active-selection-background","--vscode-list-activeSelectionBackground").withDefault("#094771"),listActiveSelectionForeground=create$4("list-active-selection-foreground","--vscode-list-activeSelectionForeground").withDefault("#ffffff"),listHoverBackground=create$4("list-hover-background","--vscode-list-hoverBackground").withDefault("#2a2d2e"),dividerBackground=create$4("divider-background","--vscode-settings-dropdownListBorder").withDefault("#454545"),dropdownBackground=create$4("dropdown-background","--vscode-dropdown-background").withDefault("#3c3c3c"),dropdownBorder=create$4("dropdown-border","--vscode-dropdown-border").withDefault("#3c3c3c");create$4("dropdown-foreground","--vscode-dropdown-foreground").withDefault("#f0f0f0");const dropdownListMaxHeight=create$4("dropdown-list-max-height").withDefault("200px"),inputBackground=create$4("input-background","--vscode-input-background").withDefault("#3c3c3c"),inputForeground=create$4("input-foreground","--vscode-input-foreground").withDefault("#cccccc");create$4("input-placeholder-foreground","--vscode-input-placeholderForeground").withDefault("#cccccc");const linkActiveForeground=create$4("link-active-foreground","--vscode-textLink-activeForeground").withDefault("#3794ff"),linkForeground=create$4("link-foreground","--vscode-textLink-foreground").withDefault("#3794ff"),progressBackground=create$4("progress-background","--vscode-progressBar-background").withDefault("#0e70c0"),panelTabActiveBorder=create$4("panel-tab-active-border","--vscode-panelTitle-activeBorder").withDefault("#e7e7e7"),panelTabActiveForeground=create$4("panel-tab-active-foreground","--vscode-panelTitle-activeForeground").withDefault("#e7e7e7"),panelTabForeground=create$4("panel-tab-foreground","--vscode-panelTitle-inactiveForeground").withDefault("#e7e7e799");create$4("panel-view-background","--vscode-panel-background").withDefault("#1e1e1e");create$4("panel-view-border","--vscode-panel-border").withDefault("#80808059");const tagCornerRadius=create$4("tag-corner-radius").withDefault("2px"),badgeStyles=(j,_e)=>css$1` + ${display("inline-block")} :host { + box-sizing: border-box; + font-family: ${fontFamily}; + font-size: ${typeRampMinus1FontSize}; + line-height: ${typeRampMinus1LineHeight}; + text-align: center; + } + .control { + align-items: center; + background-color: ${badgeBackground}; + border: calc(${borderWidth} * 1px) solid ${buttonBorder}; + border-radius: 11px; + box-sizing: border-box; + color: ${badgeForeground}; + display: flex; + height: calc(${designUnit} * 4px); + justify-content: center; + min-width: calc(${designUnit} * 4px + 2px); + min-height: calc(${designUnit} * 4px + 2px); + padding: 3px 6px; + } +`;class Badge extends Badge$1{connectedCallback(){super.connectedCallback(),this.circular||(this.circular=!0)}}const vsCodeBadge=Badge.compose({baseName:"badge",template:badgeTemplate,styles:badgeStyles}),BaseButtonStyles=css$1` + ${display("inline-flex")} :host { + outline: none; + font-family: ${fontFamily}; + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + color: ${buttonPrimaryForeground}; + background: ${buttonPrimaryBackground}; + border-radius: calc(${cornerRadiusRound} * 1px); + fill: currentColor; + cursor: pointer; + } + .control { + background: transparent; + height: inherit; + flex-grow: 1; + box-sizing: border-box; + display: inline-flex; + justify-content: center; + align-items: center; + padding: ${buttonPaddingVertical} ${buttonPaddingHorizontal}; + white-space: wrap; + outline: none; + text-decoration: none; + border: calc(${borderWidth} * 1px) solid ${buttonBorder}; + color: inherit; + border-radius: inherit; + fill: inherit; + cursor: inherit; + font-family: inherit; + } + :host(:hover) { + background: ${buttonPrimaryHoverBackground}; + } + :host(:active) { + background: ${buttonPrimaryBackground}; + } + .control:${focusVisible} { + outline: calc(${borderWidth} * 1px) solid ${focusBorder}; + outline-offset: calc(${borderWidth} * 2px); + } + .control::-moz-focus-inner { + border: 0; + } + :host([disabled]) { + opacity: ${disabledOpacity}; + background: ${buttonPrimaryBackground}; + cursor: ${disabledCursor}; + } + .content { + display: flex; + } + .start { + display: flex; + } + ::slotted(svg), + ::slotted(span) { + width: calc(${designUnit} * 4px); + height: calc(${designUnit} * 4px); + } + .start { + margin-inline-end: 8px; + } +`,PrimaryButtonStyles=css$1` + :host([appearance='primary']) { + background: ${buttonPrimaryBackground}; + color: ${buttonPrimaryForeground}; + } + :host([appearance='primary']:hover) { + background: ${buttonPrimaryHoverBackground}; + } + :host([appearance='primary']:active) .control:active { + background: ${buttonPrimaryBackground}; + } + :host([appearance='primary']) .control:${focusVisible} { + outline: calc(${borderWidth} * 1px) solid ${focusBorder}; + outline-offset: calc(${borderWidth} * 2px); + } + :host([appearance='primary'][disabled]) { + background: ${buttonPrimaryBackground}; + } +`,SecondaryButtonStyles=css$1` + :host([appearance='secondary']) { + background: ${buttonSecondaryBackground}; + color: ${buttonSecondaryForeground}; + } + :host([appearance='secondary']:hover) { + background: ${buttonSecondaryHoverBackground}; + } + :host([appearance='secondary']:active) .control:active { + background: ${buttonSecondaryBackground}; + } + :host([appearance='secondary']) .control:${focusVisible} { + outline: calc(${borderWidth} * 1px) solid ${focusBorder}; + outline-offset: calc(${borderWidth} * 2px); + } + :host([appearance='secondary'][disabled]) { + background: ${buttonSecondaryBackground}; + } +`,IconButtonStyles=css$1` + :host([appearance='icon']) { + background: ${buttonIconBackground}; + border-radius: ${buttonIconCornerRadius}; + color: ${foreground}; + } + :host([appearance='icon']:hover) { + background: ${buttonIconHoverBackground}; + outline: 1px dotted ${contrastActiveBorder}; + outline-offset: -1px; + } + :host([appearance='icon']) .control { + padding: ${buttonIconPadding}; + border: none; + } + :host([appearance='icon']:active) .control:active { + background: ${buttonIconHoverBackground}; + } + :host([appearance='icon']) .control:${focusVisible} { + outline: calc(${borderWidth} * 1px) solid ${focusBorder}; + outline-offset: ${buttonIconFocusBorderOffset}; + } + :host([appearance='icon'][disabled]) { + background: ${buttonIconBackground}; + } +`,buttonStyles=(j,_e)=>css$1` + ${BaseButtonStyles} + ${PrimaryButtonStyles} + ${SecondaryButtonStyles} + ${IconButtonStyles} +`;class Button extends Button$1{connectedCallback(){if(super.connectedCallback(),!this.appearance){const _e=this.getAttribute("appearance");this.appearance=_e}}attributeChangedCallback(_e,et,tt){_e==="appearance"&&tt==="icon"&&(this.getAttribute("aria-label")||(this.ariaLabel="Icon Button")),_e==="aria-label"&&(this.ariaLabel=tt),_e==="disabled"&&(this.disabled=tt!==null)}}__decorate$1([attr],Button.prototype,"appearance",void 0);const vsCodeButton=Button.compose({baseName:"button",template:buttonTemplate,styles:buttonStyles,shadowOptions:{delegatesFocus:!0}}),checkboxStyles=(j,_e)=>css$1` + ${display("inline-flex")} :host { + align-items: center; + outline: none; + margin: calc(${designUnit} * 1px) 0; + user-select: none; + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + } + .control { + position: relative; + width: calc(${designUnit} * 4px + 2px); + height: calc(${designUnit} * 4px + 2px); + box-sizing: border-box; + border-radius: calc(${checkboxCornerRadius} * 1px); + border: calc(${borderWidth} * 1px) solid ${checkboxBorder}; + background: ${checkboxBackground}; + outline: none; + cursor: pointer; + } + .label { + font-family: ${fontFamily}; + color: ${foreground}; + padding-inline-start: calc(${designUnit} * 2px + 2px); + margin-inline-end: calc(${designUnit} * 2px + 2px); + cursor: pointer; + } + .label__hidden { + display: none; + visibility: hidden; + } + .checked-indicator { + width: 100%; + height: 100%; + display: block; + fill: ${foreground}; + opacity: 0; + pointer-events: none; + } + .indeterminate-indicator { + border-radius: 2px; + background: ${foreground}; + position: absolute; + top: 50%; + left: 50%; + width: 50%; + height: 50%; + transform: translate(-50%, -50%); + opacity: 0; + } + :host(:enabled) .control:hover { + background: ${checkboxBackground}; + border-color: ${checkboxBorder}; + } + :host(:enabled) .control:active { + background: ${checkboxBackground}; + border-color: ${focusBorder}; + } + :host(:${focusVisible}) .control { + border: calc(${borderWidth} * 1px) solid ${focusBorder}; + } + :host(.disabled) .label, + :host(.readonly) .label, + :host(.readonly) .control, + :host(.disabled) .control { + cursor: ${disabledCursor}; + } + :host(.checked:not(.indeterminate)) .checked-indicator, + :host(.indeterminate) .indeterminate-indicator { + opacity: 1; + } + :host(.disabled) { + opacity: ${disabledOpacity}; + } +`;class Checkbox extends Checkbox$1{connectedCallback(){super.connectedCallback(),this.textContent?this.setAttribute("aria-label",this.textContent):this.setAttribute("aria-label","Checkbox")}}const vsCodeCheckbox=Checkbox.compose({baseName:"checkbox",template:checkboxTemplate,styles:checkboxStyles,checkedIndicator:` + + + + `,indeterminateIndicator:` +
+ `}),dataGridStyles=(j,_e)=>css$1` + :host { + display: flex; + position: relative; + flex-direction: column; + width: 100%; + } +`,dataGridRowStyles=(j,_e)=>css$1` + :host { + display: grid; + padding: calc((${designUnit} / 4) * 1px) 0; + box-sizing: border-box; + width: 100%; + background: transparent; + } + :host(.header) { + } + :host(.sticky-header) { + background: ${background}; + position: sticky; + top: 0; + } + :host(:hover) { + background: ${listHoverBackground}; + outline: 1px dotted ${contrastActiveBorder}; + outline-offset: -1px; + } +`,dataGridCellStyles=(j,_e)=>css$1` + :host { + padding: calc(${designUnit} * 1px) calc(${designUnit} * 3px); + color: ${foreground}; + opacity: 1; + box-sizing: border-box; + font-family: ${fontFamily}; + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + font-weight: 400; + border: solid calc(${borderWidth} * 1px) transparent; + border-radius: calc(${cornerRadius} * 1px); + white-space: wrap; + overflow-wrap: anywhere; + } + :host(.column-header) { + font-weight: 600; + } + :host(:${focusVisible}), + :host(:focus), + :host(:active) { + background: ${listActiveSelectionBackground}; + border: solid calc(${borderWidth} * 1px) ${focusBorder}; + color: ${listActiveSelectionForeground}; + outline: none; + } + :host(:${focusVisible}) ::slotted(*), + :host(:focus) ::slotted(*), + :host(:active) ::slotted(*) { + color: ${listActiveSelectionForeground} !important; + } +`;class DataGrid extends DataGrid$1{connectedCallback(){super.connectedCallback(),this.getAttribute("aria-label")||this.setAttribute("aria-label","Data Grid")}}const vsCodeDataGrid=DataGrid.compose({baseName:"data-grid",baseClass:DataGrid$1,template:dataGridTemplate,styles:dataGridStyles});class DataGridRow extends DataGridRow$1{}const vsCodeDataGridRow=DataGridRow.compose({baseName:"data-grid-row",baseClass:DataGridRow$1,template:dataGridRowTemplate,styles:dataGridRowStyles});class DataGridCell extends DataGridCell$1{}const vsCodeDataGridCell=DataGridCell.compose({baseName:"data-grid-cell",baseClass:DataGridCell$1,template:dataGridCellTemplate,styles:dataGridCellStyles}),dividerStyles=(j,_e)=>css$1` + ${display("block")} :host { + border: none; + border-top: calc(${borderWidth} * 1px) solid ${dividerBackground}; + box-sizing: content-box; + height: 0; + margin: calc(${designUnit} * 1px) 0; + width: 100%; + } +`;class Divider extends Divider$1{}const vsCodeDivider=Divider.compose({baseName:"divider",template:dividerTemplate,styles:dividerStyles}),dropdownStyles=(j,_e)=>css$1` + ${display("inline-flex")} :host { + background: ${dropdownBackground}; + border-radius: calc(${cornerRadiusRound} * 1px); + box-sizing: border-box; + color: ${foreground}; + contain: contents; + font-family: ${fontFamily}; + height: calc(${inputHeight} * 1px); + position: relative; + user-select: none; + min-width: ${inputMinWidth}; + outline: none; + vertical-align: top; + } + .control { + align-items: center; + box-sizing: border-box; + border: calc(${borderWidth} * 1px) solid ${dropdownBorder}; + border-radius: calc(${cornerRadiusRound} * 1px); + cursor: pointer; + display: flex; + font-family: inherit; + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + min-height: 100%; + padding: 2px 6px 2px 8px; + width: 100%; + } + .listbox { + background: ${dropdownBackground}; + border: calc(${borderWidth} * 1px) solid ${focusBorder}; + border-radius: calc(${cornerRadiusRound} * 1px); + box-sizing: border-box; + display: inline-flex; + flex-direction: column; + left: 0; + max-height: ${dropdownListMaxHeight}; + padding: 0; + overflow-y: auto; + position: absolute; + width: 100%; + z-index: 1; + } + .listbox[hidden] { + display: none; + } + :host(:${focusVisible}) .control { + border-color: ${focusBorder}; + } + :host(:not([disabled]):hover) { + background: ${dropdownBackground}; + border-color: ${dropdownBorder}; + } + :host(:${focusVisible}) ::slotted([aria-selected="true"][role="option"]:not([disabled])) { + background: ${listActiveSelectionBackground}; + border: calc(${borderWidth} * 1px) solid transparent; + color: ${listActiveSelectionForeground}; + } + :host([disabled]) { + cursor: ${disabledCursor}; + opacity: ${disabledOpacity}; + } + :host([disabled]) .control { + cursor: ${disabledCursor}; + user-select: none; + } + :host([disabled]:hover) { + background: ${dropdownBackground}; + color: ${foreground}; + fill: currentcolor; + } + :host(:not([disabled])) .control:active { + border-color: ${focusBorder}; + } + :host(:empty) .listbox { + display: none; + } + :host([open]) .control { + border-color: ${focusBorder}; + } + :host([open][position='above']) .listbox { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + } + :host([open][position='below']) .listbox { + border-top-left-radius: 0; + border-top-right-radius: 0; + } + :host([open][position='above']) .listbox { + bottom: calc(${inputHeight} * 1px); + } + :host([open][position='below']) .listbox { + top: calc(${inputHeight} * 1px); + } + .selected-value { + flex: 1 1 auto; + font-family: inherit; + overflow: hidden; + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + } + .indicator { + flex: 0 0 auto; + margin-inline-start: 1em; + } + slot[name='listbox'] { + display: none; + width: 100%; + } + :host([open]) slot[name='listbox'] { + display: flex; + position: absolute; + } + .end { + margin-inline-start: auto; + } + .start, + .end, + .indicator, + .select-indicator, + ::slotted(svg), + ::slotted(span) { + fill: currentcolor; + height: 1em; + min-height: calc(${designUnit} * 4px); + min-width: calc(${designUnit} * 4px); + width: 1em; + } + ::slotted([role='option']), + ::slotted(option) { + flex: 0 0 auto; + } +`;class Dropdown extends Select{}const vsCodeDropdown=Dropdown.compose({baseName:"dropdown",template:selectTemplate,styles:dropdownStyles,indicator:` + + + + `}),linkStyles=(j,_e)=>css$1` + ${display("inline-flex")} :host { + background: transparent; + box-sizing: border-box; + color: ${linkForeground}; + cursor: pointer; + fill: currentcolor; + font-family: ${fontFamily}; + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + outline: none; + } + .control { + background: transparent; + border: calc(${borderWidth} * 1px) solid transparent; + border-radius: calc(${cornerRadius} * 1px); + box-sizing: border-box; + color: inherit; + cursor: inherit; + fill: inherit; + font-family: inherit; + height: inherit; + padding: 0; + outline: none; + text-decoration: none; + word-break: break-word; + } + .control::-moz-focus-inner { + border: 0; + } + :host(:hover) { + color: ${linkActiveForeground}; + } + :host(:hover) .content { + text-decoration: underline; + } + :host(:active) { + background: transparent; + color: ${linkActiveForeground}; + } + :host(:${focusVisible}) .control, + :host(:focus) .control { + border: calc(${borderWidth} * 1px) solid ${focusBorder}; + } +`;class Link extends Anchor{}const vsCodeLink=Link.compose({baseName:"link",template:anchorTemplate,styles:linkStyles,shadowOptions:{delegatesFocus:!0}}),optionStyles=(j,_e)=>css$1` + ${display("inline-flex")} :host { + font-family: var(--body-font); + border-radius: ${cornerRadius}; + border: calc(${borderWidth} * 1px) solid transparent; + box-sizing: border-box; + color: ${foreground}; + cursor: pointer; + fill: currentcolor; + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + margin: 0; + outline: none; + overflow: hidden; + padding: 0 calc((${designUnit} / 2) * 1px) + calc((${designUnit} / 4) * 1px); + user-select: none; + white-space: nowrap; + } + :host(:${focusVisible}) { + border-color: ${focusBorder}; + background: ${listActiveSelectionBackground}; + color: ${foreground}; + } + :host([aria-selected='true']) { + background: ${listActiveSelectionBackground}; + border: calc(${borderWidth} * 1px) solid transparent; + color: ${listActiveSelectionForeground}; + } + :host(:active) { + background: ${listActiveSelectionBackground}; + color: ${listActiveSelectionForeground}; + } + :host(:not([aria-selected='true']):hover) { + background: ${listActiveSelectionBackground}; + border: calc(${borderWidth} * 1px) solid transparent; + color: ${listActiveSelectionForeground}; + } + :host(:not([aria-selected='true']):active) { + background: ${listActiveSelectionBackground}; + color: ${foreground}; + } + :host([disabled]) { + cursor: ${disabledCursor}; + opacity: ${disabledOpacity}; + } + :host([disabled]:hover) { + background-color: inherit; + } + .content { + grid-column-start: 2; + justify-self: start; + overflow: hidden; + text-overflow: ellipsis; + } +`;let Option$1=class extends ListboxOption{connectedCallback(){super.connectedCallback(),this.textContent?this.setAttribute("aria-label",this.textContent):this.setAttribute("aria-label","Option")}};const vsCodeOption=Option$1.compose({baseName:"option",template:listboxOptionTemplate,styles:optionStyles}),panelsStyles=(j,_e)=>css$1` + ${display("grid")} :host { + box-sizing: border-box; + font-family: ${fontFamily}; + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + color: ${foreground}; + grid-template-columns: auto 1fr auto; + grid-template-rows: auto 1fr; + overflow-x: auto; + } + .tablist { + display: grid; + grid-template-rows: auto auto; + grid-template-columns: auto; + column-gap: calc(${designUnit} * 8px); + position: relative; + width: max-content; + align-self: end; + padding: calc(${designUnit} * 1px) calc(${designUnit} * 1px) 0; + box-sizing: border-box; + } + .start, + .end { + align-self: center; + } + .activeIndicator { + grid-row: 2; + grid-column: 1; + width: 100%; + height: calc((${designUnit} / 4) * 1px); + justify-self: center; + background: ${panelTabActiveForeground}; + margin: 0; + border-radius: calc(${cornerRadius} * 1px); + } + .activeIndicatorTransition { + transition: transform 0.01s linear; + } + .tabpanel { + grid-row: 2; + grid-column-start: 1; + grid-column-end: 4; + position: relative; + } +`,panelTabStyles=(j,_e)=>css$1` + ${display("inline-flex")} :host { + box-sizing: border-box; + font-family: ${fontFamily}; + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + height: calc(${designUnit} * 7px); + padding: calc(${designUnit} * 1px) 0; + color: ${panelTabForeground}; + fill: currentcolor; + border-radius: calc(${cornerRadius} * 1px); + border: solid calc(${borderWidth} * 1px) transparent; + align-items: center; + justify-content: center; + grid-row: 1; + cursor: pointer; + } + :host(:hover) { + color: ${panelTabActiveForeground}; + fill: currentcolor; + } + :host(:active) { + color: ${panelTabActiveForeground}; + fill: currentcolor; + } + :host([aria-selected='true']) { + background: transparent; + color: ${panelTabActiveForeground}; + fill: currentcolor; + } + :host([aria-selected='true']:hover) { + background: transparent; + color: ${panelTabActiveForeground}; + fill: currentcolor; + } + :host([aria-selected='true']:active) { + background: transparent; + color: ${panelTabActiveForeground}; + fill: currentcolor; + } + :host(:${focusVisible}) { + outline: none; + border: solid calc(${borderWidth} * 1px) ${panelTabActiveBorder}; + } + :host(:focus) { + outline: none; + } + ::slotted(vscode-badge) { + margin-inline-start: calc(${designUnit} * 2px); + } +`,panelViewStyles=(j,_e)=>css$1` + ${display("flex")} :host { + color: inherit; + background-color: transparent; + border: solid calc(${borderWidth} * 1px) transparent; + box-sizing: border-box; + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + padding: 10px calc((${designUnit} + 2) * 1px); + } +`;class Panels extends Tabs{connectedCallback(){super.connectedCallback(),this.orientation&&(this.orientation=TabsOrientation.horizontal),this.getAttribute("aria-label")||this.setAttribute("aria-label","Panels")}}const vsCodePanels=Panels.compose({baseName:"panels",template:tabsTemplate,styles:panelsStyles});class PanelTab extends Tab{connectedCallback(){super.connectedCallback(),this.disabled&&(this.disabled=!1),this.textContent&&this.setAttribute("aria-label",this.textContent)}}const vsCodePanelTab=PanelTab.compose({baseName:"panel-tab",template:tabTemplate,styles:panelTabStyles});class PanelView extends TabPanel{}const vsCodePanelView=PanelView.compose({baseName:"panel-view",template:tabPanelTemplate,styles:panelViewStyles}),progressRingStyles=(j,_e)=>css$1` + ${display("flex")} :host { + align-items: center; + outline: none; + height: calc(${designUnit} * 7px); + width: calc(${designUnit} * 7px); + margin: 0; + } + .progress { + height: 100%; + width: 100%; + } + .background { + fill: none; + stroke: transparent; + stroke-width: calc(${designUnit} / 2 * 1px); + } + .indeterminate-indicator-1 { + fill: none; + stroke: ${progressBackground}; + stroke-width: calc(${designUnit} / 2 * 1px); + stroke-linecap: square; + transform-origin: 50% 50%; + transform: rotate(-90deg); + transition: all 0.2s ease-in-out; + animation: spin-infinite 2s linear infinite; + } + @keyframes spin-infinite { + 0% { + stroke-dasharray: 0.01px 43.97px; + transform: rotate(0deg); + } + 50% { + stroke-dasharray: 21.99px 21.99px; + transform: rotate(450deg); + } + 100% { + stroke-dasharray: 0.01px 43.97px; + transform: rotate(1080deg); + } + } +`;class ProgressRing extends BaseProgress{connectedCallback(){super.connectedCallback(),this.paused&&(this.paused=!1),this.setAttribute("aria-label","Loading"),this.setAttribute("aria-live","assertive"),this.setAttribute("role","alert")}attributeChangedCallback(_e,et,tt){_e==="value"&&this.removeAttribute("value")}}const vsCodeProgressRing=ProgressRing.compose({baseName:"progress-ring",template:progressRingTemplate,styles:progressRingStyles,indeterminateIndicator:` + + + + + `}),radioGroupStyles=(j,_e)=>css$1` + ${display("flex")} :host { + align-items: flex-start; + margin: calc(${designUnit} * 1px) 0; + flex-direction: column; + } + .positioning-region { + display: flex; + flex-wrap: wrap; + } + :host([orientation='vertical']) .positioning-region { + flex-direction: column; + } + :host([orientation='horizontal']) .positioning-region { + flex-direction: row; + } + ::slotted([slot='label']) { + color: ${foreground}; + font-size: ${typeRampBaseFontSize}; + margin: calc(${designUnit} * 1px) 0; + } +`;class RadioGroup extends RadioGroup$1{connectedCallback(){super.connectedCallback();const _e=this.querySelector("label");if(_e){const et="radio-group-"+Math.random().toString(16).slice(2);_e.setAttribute("id",et),this.setAttribute("aria-labelledby",et)}}}const vsCodeRadioGroup=RadioGroup.compose({baseName:"radio-group",template:radioGroupTemplate,styles:radioGroupStyles}),radioStyles=(j,_e)=>css$1` + ${display("inline-flex")} :host { + align-items: center; + flex-direction: row; + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + margin: calc(${designUnit} * 1px) 0; + outline: none; + position: relative; + transition: all 0.2s ease-in-out; + user-select: none; + } + .control { + background: ${checkboxBackground}; + border-radius: 999px; + border: calc(${borderWidth} * 1px) solid ${checkboxBorder}; + box-sizing: border-box; + cursor: pointer; + height: calc(${designUnit} * 4px); + position: relative; + outline: none; + width: calc(${designUnit} * 4px); + } + .label { + color: ${foreground}; + cursor: pointer; + font-family: ${fontFamily}; + margin-inline-end: calc(${designUnit} * 2px + 2px); + padding-inline-start: calc(${designUnit} * 2px + 2px); + } + .label__hidden { + display: none; + visibility: hidden; + } + .control, + .checked-indicator { + flex-shrink: 0; + } + .checked-indicator { + background: ${foreground}; + border-radius: 999px; + display: inline-block; + inset: calc(${designUnit} * 1px); + opacity: 0; + pointer-events: none; + position: absolute; + } + :host(:not([disabled])) .control:hover { + background: ${checkboxBackground}; + border-color: ${checkboxBorder}; + } + :host(:not([disabled])) .control:active { + background: ${checkboxBackground}; + border-color: ${focusBorder}; + } + :host(:${focusVisible}) .control { + border: calc(${borderWidth} * 1px) solid ${focusBorder}; + } + :host([aria-checked='true']) .control { + background: ${checkboxBackground}; + border: calc(${borderWidth} * 1px) solid ${checkboxBorder}; + } + :host([aria-checked='true']:not([disabled])) .control:hover { + background: ${checkboxBackground}; + border: calc(${borderWidth} * 1px) solid ${checkboxBorder}; + } + :host([aria-checked='true']:not([disabled])) .control:active { + background: ${checkboxBackground}; + border: calc(${borderWidth} * 1px) solid ${focusBorder}; + } + :host([aria-checked="true"]:${focusVisible}:not([disabled])) .control { + border: calc(${borderWidth} * 1px) solid ${focusBorder}; + } + :host([disabled]) .label, + :host([readonly]) .label, + :host([readonly]) .control, + :host([disabled]) .control { + cursor: ${disabledCursor}; + } + :host([aria-checked='true']) .checked-indicator { + opacity: 1; + } + :host([disabled]) { + opacity: ${disabledOpacity}; + } +`;class Radio extends Radio$1{connectedCallback(){super.connectedCallback(),this.textContent?this.setAttribute("aria-label",this.textContent):this.setAttribute("aria-label","Radio")}}const vsCodeRadio=Radio.compose({baseName:"radio",template:radioTemplate,styles:radioStyles,checkedIndicator:` +
+ `}),tagStyles=(j,_e)=>css$1` + ${display("inline-block")} :host { + box-sizing: border-box; + font-family: ${fontFamily}; + font-size: ${typeRampMinus1FontSize}; + line-height: ${typeRampMinus1LineHeight}; + } + .control { + background-color: ${badgeBackground}; + border: calc(${borderWidth} * 1px) solid ${buttonBorder}; + border-radius: ${tagCornerRadius}; + color: ${badgeForeground}; + padding: calc(${designUnit} * 0.5px) calc(${designUnit} * 1px); + text-transform: uppercase; + } +`;class Tag extends Badge$1{connectedCallback(){super.connectedCallback(),this.circular&&(this.circular=!1)}}const vsCodeTag=Tag.compose({baseName:"tag",template:badgeTemplate,styles:tagStyles}),textAreaStyles=(j,_e)=>css$1` + ${display("inline-block")} :host { + font-family: ${fontFamily}; + outline: none; + user-select: none; + } + .control { + box-sizing: border-box; + position: relative; + color: ${inputForeground}; + background: ${inputBackground}; + border-radius: calc(${cornerRadiusRound} * 1px); + border: calc(${borderWidth} * 1px) solid ${dropdownBorder}; + font: inherit; + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + padding: calc(${designUnit} * 2px + 1px); + width: 100%; + min-width: ${inputMinWidth}; + resize: none; + } + .control:hover:enabled { + background: ${inputBackground}; + border-color: ${dropdownBorder}; + } + .control:active:enabled { + background: ${inputBackground}; + border-color: ${focusBorder}; + } + .control:hover, + .control:${focusVisible}, + .control:disabled, + .control:active { + outline: none; + } + .control::-webkit-scrollbar { + width: ${scrollbarWidth}; + height: ${scrollbarHeight}; + } + .control::-webkit-scrollbar-corner { + background: ${inputBackground}; + } + .control::-webkit-scrollbar-thumb { + background: ${scrollbarSliderBackground}; + } + .control::-webkit-scrollbar-thumb:hover { + background: ${scrollbarSliderHoverBackground}; + } + .control::-webkit-scrollbar-thumb:active { + background: ${scrollbarSliderActiveBackground}; + } + :host(:focus-within:not([disabled])) .control { + border-color: ${focusBorder}; + } + :host([resize='both']) .control { + resize: both; + } + :host([resize='horizontal']) .control { + resize: horizontal; + } + :host([resize='vertical']) .control { + resize: vertical; + } + .label { + display: block; + color: ${foreground}; + cursor: pointer; + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + margin-bottom: 2px; + } + .label__hidden { + display: none; + visibility: hidden; + } + :host([disabled]) .label, + :host([readonly]) .label, + :host([readonly]) .control, + :host([disabled]) .control { + cursor: ${disabledCursor}; + } + :host([disabled]) { + opacity: ${disabledOpacity}; + } + :host([disabled]) .control { + border-color: ${dropdownBorder}; + } +`;class TextArea extends TextArea$1{connectedCallback(){super.connectedCallback(),this.textContent?this.setAttribute("aria-label",this.textContent):this.setAttribute("aria-label","Text area")}}const vsCodeTextArea=TextArea.compose({baseName:"text-area",template:textAreaTemplate,styles:textAreaStyles,shadowOptions:{delegatesFocus:!0}}),textFieldStyles=(j,_e)=>css$1` + ${display("inline-block")} :host { + font-family: ${fontFamily}; + outline: none; + user-select: none; + } + .root { + box-sizing: border-box; + position: relative; + display: flex; + flex-direction: row; + color: ${inputForeground}; + background: ${inputBackground}; + border-radius: calc(${cornerRadiusRound} * 1px); + border: calc(${borderWidth} * 1px) solid ${dropdownBorder}; + height: calc(${inputHeight} * 1px); + min-width: ${inputMinWidth}; + } + .control { + -webkit-appearance: none; + font: inherit; + background: transparent; + border: 0; + color: inherit; + height: calc(100% - (${designUnit} * 1px)); + width: 100%; + margin-top: auto; + margin-bottom: auto; + border: none; + padding: 0 calc(${designUnit} * 2px + 1px); + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + } + .control:hover, + .control:${focusVisible}, + .control:disabled, + .control:active { + outline: none; + } + .label { + display: block; + color: ${foreground}; + cursor: pointer; + font-size: ${typeRampBaseFontSize}; + line-height: ${typeRampBaseLineHeight}; + margin-bottom: 2px; + } + .label__hidden { + display: none; + visibility: hidden; + } + .start, + .end { + display: flex; + margin: auto; + fill: currentcolor; + } + ::slotted(svg), + ::slotted(span) { + width: calc(${designUnit} * 4px); + height: calc(${designUnit} * 4px); + } + .start { + margin-inline-start: calc(${designUnit} * 2px); + } + .end { + margin-inline-end: calc(${designUnit} * 2px); + } + :host(:hover:not([disabled])) .root { + background: ${inputBackground}; + border-color: ${dropdownBorder}; + } + :host(:active:not([disabled])) .root { + background: ${inputBackground}; + border-color: ${focusBorder}; + } + :host(:focus-within:not([disabled])) .root { + border-color: ${focusBorder}; + } + :host([disabled]) .label, + :host([readonly]) .label, + :host([readonly]) .control, + :host([disabled]) .control { + cursor: ${disabledCursor}; + } + :host([disabled]) { + opacity: ${disabledOpacity}; + } + :host([disabled]) .control { + border-color: ${dropdownBorder}; + } +`;class TextField extends TextField$1{connectedCallback(){super.connectedCallback(),this.textContent?this.setAttribute("aria-label",this.textContent):this.setAttribute("aria-label","Text field")}}const vsCodeTextField=TextField.compose({baseName:"text-field",template:textFieldTemplate,styles:textFieldStyles,shadowOptions:{delegatesFocus:!0}}),{wrap:wrap$1}=provideReactWrapper(React,provideVSCodeDesignSystem());wrap$1(vsCodeBadge(),{name:"vscode-badge"});wrap$1(vsCodeButton(),{name:"vscode-button"});wrap$1(vsCodeCheckbox(),{name:"vscode-checkbox",events:{onChange:"change"}});wrap$1(vsCodeDataGrid(),{name:"vscode-data-grid"});wrap$1(vsCodeDataGridCell(),{name:"vscode-data-grid-cell"});wrap$1(vsCodeDataGridRow(),{name:"vscode-data-grid-row"});wrap$1(vsCodeDivider(),{name:"vscode-divider"});wrap$1(vsCodeDropdown(),{name:"vscode-dropdown",events:{onChange:"change"}});wrap$1(vsCodeLink(),{name:"vscode-link"});wrap$1(vsCodeOption(),{name:"vscode-option"});wrap$1(vsCodePanels(),{name:"vscode-panels",events:{onChange:"change"}});wrap$1(vsCodePanelTab(),{name:"vscode-panel-tab"});wrap$1(vsCodePanelView(),{name:"vscode-panel-view"});const VSCodeProgressRing=wrap$1(vsCodeProgressRing(),{name:"vscode-progress-ring"});wrap$1(vsCodeRadio(),{name:"vscode-radio",events:{onChange:"change"}});wrap$1(vsCodeRadioGroup(),{name:"vscode-radio-group",events:{onChange:"change"}});wrap$1(vsCodeTag(),{name:"vscode-tag"});wrap$1(vsCodeTextArea(),{name:"vscode-text-area",events:{onChange:"change",onInput:"input"}});wrap$1(vsCodeTextField(),{name:"vscode-text-field",events:{onChange:"change",onInput:"input"}});const Loading=({isFullPage:j=!1,style:_e={}})=>{const et=j?{..._e,height:"100vh",width:"100%"}:{..._e};return jsxRuntimeExports.jsx(Stack$1,{horizontalAlign:"center",verticalAlign:"center",verticalFill:!0,style:et,children:jsxRuntimeExports.jsx(VSCodeProgressRing,{})})};memoizeFunction((j,_e)=>mergeStyleSets({root:mergeStyles$1({display:"flex",flexDirection:"row",alignItems:"center",height:"30px",background:"var(--background)",width:"100%",..._e&&{position:"fixed",top:0,zIndex:100}},j),buttonGroup:{display:"flex",flexDirection:"row",height:"30px"},searchField:{marginRight:"100px",selectors:{"div.root":{height:"30px"}}}}));var toggleSelection=function(){var j=document.getSelection();if(!j.rangeCount)return function(){};for(var _e=document.activeElement,et=[],tt=0;tt"u"){et&&console.warn("unable to use e.clipboardData"),et&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var ct=clipboardToIE11Formatting[_e.format]||clipboardToIE11Formatting.default;window.clipboardData.setData(ct,j)}else ut.clipboardData.clearData(),ut.clipboardData.setData(_e.format,j);_e.onCopy&&(ut.preventDefault(),_e.onCopy(ut.clipboardData))}),document.body.appendChild(it),nt.selectNodeContents(it),ot.addRange(nt);var lt=document.execCommand("copy");if(!lt)throw new Error("copy command was unsuccessful");st=!0}catch(ut){et&&console.error("unable to copy using execCommand: ",ut),et&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(_e.format||"text",j),_e.onCopy&&_e.onCopy(window.clipboardData),st=!0}catch(ct){et&&console.error("unable to copy using clipboardData: ",ct),et&&console.error("falling back to prompt"),tt=format$2("message"in _e?_e.message:defaultMessage),window.prompt(tt,j)}}finally{ot&&(typeof ot.removeRange=="function"?ot.removeRange(nt):ot.removeAllRanges()),it&&document.body.removeChild(it),rt()}return st}var copyToClipboard=copy$3;const copy$4=getDefaultExportFromCjs(copyToClipboard);var main={exports:{}};(function(j,_e){(function(et,tt){j.exports=tt(reactExports)})(commonjsGlobal,function(et){return function(tt){var rt={};function nt(ot){if(rt[ot])return rt[ot].exports;var it=rt[ot]={i:ot,l:!1,exports:{}};return tt[ot].call(it.exports,it,it.exports,nt),it.l=!0,it.exports}return nt.m=tt,nt.c=rt,nt.d=function(ot,it,st){nt.o(ot,it)||Object.defineProperty(ot,it,{enumerable:!0,get:st})},nt.r=function(ot){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(ot,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(ot,"__esModule",{value:!0})},nt.t=function(ot,it){if(1&it&&(ot=nt(ot)),8&it||4&it&&typeof ot=="object"&&ot&&ot.__esModule)return ot;var st=Object.create(null);if(nt.r(st),Object.defineProperty(st,"default",{enumerable:!0,value:ot}),2&it&&typeof ot!="string")for(var lt in ot)nt.d(st,lt,(function(ut){return ot[ut]}).bind(null,lt));return st},nt.n=function(ot){var it=ot&&ot.__esModule?function(){return ot.default}:function(){return ot};return nt.d(it,"a",it),it},nt.o=function(ot,it){return Object.prototype.hasOwnProperty.call(ot,it)},nt.p="",nt(nt.s=48)}([function(tt,rt){tt.exports=et},function(tt,rt){var nt=tt.exports={version:"2.6.12"};typeof __e=="number"&&(__e=nt)},function(tt,rt,nt){var ot=nt(26)("wks"),it=nt(17),st=nt(3).Symbol,lt=typeof st=="function";(tt.exports=function(ut){return ot[ut]||(ot[ut]=lt&&st[ut]||(lt?st:it)("Symbol."+ut))}).store=ot},function(tt,rt){var nt=tt.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=nt)},function(tt,rt,nt){tt.exports=!nt(8)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(tt,rt){var nt={}.hasOwnProperty;tt.exports=function(ot,it){return nt.call(ot,it)}},function(tt,rt,nt){var ot=nt(7),it=nt(16);tt.exports=nt(4)?function(st,lt,ut){return ot.f(st,lt,it(1,ut))}:function(st,lt,ut){return st[lt]=ut,st}},function(tt,rt,nt){var ot=nt(10),it=nt(35),st=nt(23),lt=Object.defineProperty;rt.f=nt(4)?Object.defineProperty:function(ut,ct,dt){if(ot(ut),ct=st(ct,!0),ot(dt),it)try{return lt(ut,ct,dt)}catch{}if("get"in dt||"set"in dt)throw TypeError("Accessors not supported!");return"value"in dt&&(ut[ct]=dt.value),ut}},function(tt,rt){tt.exports=function(nt){try{return!!nt()}catch{return!0}}},function(tt,rt,nt){var ot=nt(40),it=nt(22);tt.exports=function(st){return ot(it(st))}},function(tt,rt,nt){var ot=nt(11);tt.exports=function(it){if(!ot(it))throw TypeError(it+" is not an object!");return it}},function(tt,rt){tt.exports=function(nt){return typeof nt=="object"?nt!==null:typeof nt=="function"}},function(tt,rt){tt.exports={}},function(tt,rt,nt){var ot=nt(39),it=nt(27);tt.exports=Object.keys||function(st){return ot(st,it)}},function(tt,rt){tt.exports=!0},function(tt,rt,nt){var ot=nt(3),it=nt(1),st=nt(53),lt=nt(6),ut=nt(5),ct=function(dt,ft,pt){var gt,vt,bt,_t=dt&ct.F,xt=dt&ct.G,yt=dt&ct.S,Et=dt&ct.P,St=dt&ct.B,$t=dt&ct.W,At=xt?it:it[ft]||(it[ft]={}),wt=At.prototype,Ct=xt?ot:yt?ot[ft]:(ot[ft]||{}).prototype;for(gt in xt&&(pt=ft),pt)(vt=!_t&&Ct&&Ct[gt]!==void 0)&&ut(At,gt)||(bt=vt?Ct[gt]:pt[gt],At[gt]=xt&&typeof Ct[gt]!="function"?pt[gt]:St&&vt?st(bt,ot):$t&&Ct[gt]==bt?function(It){var Ot=function(Nt,Pt,Mt){if(this instanceof It){switch(arguments.length){case 0:return new It;case 1:return new It(Nt);case 2:return new It(Nt,Pt)}return new It(Nt,Pt,Mt)}return It.apply(this,arguments)};return Ot.prototype=It.prototype,Ot}(bt):Et&&typeof bt=="function"?st(Function.call,bt):bt,Et&&((At.virtual||(At.virtual={}))[gt]=bt,dt&ct.R&&wt&&!wt[gt]&<(wt,gt,bt)))};ct.F=1,ct.G=2,ct.S=4,ct.P=8,ct.B=16,ct.W=32,ct.U=64,ct.R=128,tt.exports=ct},function(tt,rt){tt.exports=function(nt,ot){return{enumerable:!(1&nt),configurable:!(2&nt),writable:!(4&nt),value:ot}}},function(tt,rt){var nt=0,ot=Math.random();tt.exports=function(it){return"Symbol(".concat(it===void 0?"":it,")_",(++nt+ot).toString(36))}},function(tt,rt,nt){var ot=nt(22);tt.exports=function(it){return Object(ot(it))}},function(tt,rt){rt.f={}.propertyIsEnumerable},function(tt,rt,nt){var ot=nt(52)(!0);nt(34)(String,"String",function(it){this._t=String(it),this._i=0},function(){var it,st=this._t,lt=this._i;return lt>=st.length?{value:void 0,done:!0}:(it=ot(st,lt),this._i+=it.length,{value:it,done:!1})})},function(tt,rt){var nt=Math.ceil,ot=Math.floor;tt.exports=function(it){return isNaN(it=+it)?0:(it>0?ot:nt)(it)}},function(tt,rt){tt.exports=function(nt){if(nt==null)throw TypeError("Can't call method on "+nt);return nt}},function(tt,rt,nt){var ot=nt(11);tt.exports=function(it,st){if(!ot(it))return it;var lt,ut;if(st&&typeof(lt=it.toString)=="function"&&!ot(ut=lt.call(it))||typeof(lt=it.valueOf)=="function"&&!ot(ut=lt.call(it))||!st&&typeof(lt=it.toString)=="function"&&!ot(ut=lt.call(it)))return ut;throw TypeError("Can't convert object to primitive value")}},function(tt,rt){var nt={}.toString;tt.exports=function(ot){return nt.call(ot).slice(8,-1)}},function(tt,rt,nt){var ot=nt(26)("keys"),it=nt(17);tt.exports=function(st){return ot[st]||(ot[st]=it(st))}},function(tt,rt,nt){var ot=nt(1),it=nt(3),st=it["__core-js_shared__"]||(it["__core-js_shared__"]={});(tt.exports=function(lt,ut){return st[lt]||(st[lt]=ut!==void 0?ut:{})})("versions",[]).push({version:ot.version,mode:nt(14)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(tt,rt){tt.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(tt,rt,nt){var ot=nt(7).f,it=nt(5),st=nt(2)("toStringTag");tt.exports=function(lt,ut,ct){lt&&!it(lt=ct?lt:lt.prototype,st)&&ot(lt,st,{configurable:!0,value:ut})}},function(tt,rt,nt){nt(62);for(var ot=nt(3),it=nt(6),st=nt(12),lt=nt(2)("toStringTag"),ut="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),ct=0;ctdocument.F=Object<\/script>"),dt.close(),ct=dt.F;pt--;)delete ct.prototype[st[pt]];return ct()};tt.exports=Object.create||function(dt,ft){var pt;return dt!==null?(ut.prototype=ot(dt),pt=new ut,ut.prototype=null,pt[lt]=dt):pt=ct(),ft===void 0?pt:it(pt,ft)}},function(tt,rt,nt){var ot=nt(5),it=nt(9),st=nt(57)(!1),lt=nt(25)("IE_PROTO");tt.exports=function(ut,ct){var dt,ft=it(ut),pt=0,gt=[];for(dt in ft)dt!=lt&&ot(ft,dt)&>.push(dt);for(;ct.length>pt;)ot(ft,dt=ct[pt++])&&(~st(gt,dt)||gt.push(dt));return gt}},function(tt,rt,nt){var ot=nt(24);tt.exports=Object("z").propertyIsEnumerable(0)?Object:function(it){return ot(it)=="String"?it.split(""):Object(it)}},function(tt,rt,nt){var ot=nt(39),it=nt(27).concat("length","prototype");rt.f=Object.getOwnPropertyNames||function(st){return ot(st,it)}},function(tt,rt,nt){var ot=nt(24),it=nt(2)("toStringTag"),st=ot(function(){return arguments}())=="Arguments";tt.exports=function(lt){var ut,ct,dt;return lt===void 0?"Undefined":lt===null?"Null":typeof(ct=function(ft,pt){try{return ft[pt]}catch{}}(ut=Object(lt),it))=="string"?ct:st?ot(ut):(dt=ot(ut))=="Object"&&typeof ut.callee=="function"?"Arguments":dt}},function(tt,rt){var nt;nt=function(){return this}();try{nt=nt||new Function("return this")()}catch{typeof window=="object"&&(nt=window)}tt.exports=nt},function(tt,rt){var nt=/-?\d+(\.\d+)?%?/g;tt.exports=function(ot){return ot.match(nt)}},function(tt,rt,nt){Object.defineProperty(rt,"__esModule",{value:!0}),rt.getBase16Theme=rt.createStyling=rt.invertTheme=void 0;var ot=vt(nt(49)),it=vt(nt(76)),st=vt(nt(81)),lt=vt(nt(89)),ut=vt(nt(93)),ct=function(wt){if(wt&&wt.__esModule)return wt;var Ct={};if(wt!=null)for(var It in wt)Object.prototype.hasOwnProperty.call(wt,It)&&(Ct[It]=wt[It]);return Ct.default=wt,Ct}(nt(94)),dt=vt(nt(132)),ft=vt(nt(133)),pt=vt(nt(138)),gt=nt(139);function vt(wt){return wt&&wt.__esModule?wt:{default:wt}}var bt=ct.default,_t=(0,lt.default)(bt),xt=(0,pt.default)(ft.default,gt.rgb2yuv,function(wt){var Ct,It=(0,st.default)(wt,3),Ot=It[0],Nt=It[1],Pt=It[2];return[(Ct=Ot,Ct<.25?1:Ct<.5?.9-Ct:1.1-Ct),Nt,Pt]},gt.yuv2rgb,dt.default),yt=function(wt){return function(Ct){return{className:[Ct.className,wt.className].filter(Boolean).join(" "),style:(0,it.default)({},Ct.style||{},wt.style||{})}}},Et=function(wt,Ct){var It=(0,lt.default)(Ct);for(var Ot in wt)It.indexOf(Ot)===-1&&It.push(Ot);return It.reduce(function(Nt,Pt){return Nt[Pt]=function(Mt,Rt){if(Mt===void 0)return Rt;if(Rt===void 0)return Mt;var Lt=Mt===void 0?"undefined":(0,ot.default)(Mt),jt=Rt===void 0?"undefined":(0,ot.default)(Rt);switch(Lt){case"string":switch(jt){case"string":return[Rt,Mt].filter(Boolean).join(" ");case"object":return yt({className:Mt,style:Rt});case"function":return function(Gt){for(var Vt=arguments.length,Yt=Array(Vt>1?Vt-1:0),Xt=1;Xt1?Vt-1:0),Xt=1;Xt1?Vt-1:0),Xt=1;Xt1?Vt-1:0),Xt=1;Xt1?Vt-1:0),Xt=1;Xt2?It-2:0),Nt=2;Nt3?Ct-3:0),Ot=3;Ot1&&arguments[1]!==void 0?arguments[1]:{},Pt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Mt=Nt.defaultBase16,Rt=Mt===void 0?bt:Mt,Lt=Nt.base16Themes,jt=Lt===void 0?null:Lt,Gt=At(Pt,jt);Gt&&(Pt=(0,it.default)({},Gt,Pt));var Vt=_t.reduce(function(cr,vr){return cr[vr]=Pt[vr]||Rt[vr],cr},{}),Yt=(0,lt.default)(Pt).reduce(function(cr,vr){return _t.indexOf(vr)===-1&&(cr[vr]=Pt[vr]),cr},{}),Xt=wt(Vt),rr=Et(Yt,Xt);return(0,ut.default)(St,2).apply(void 0,[rr].concat(It))},3),rt.getBase16Theme=function(wt,Ct){if(wt&&wt.extend&&(wt=wt.extend),typeof wt=="string"){var It=wt.split(":"),Ot=(0,st.default)(It,2),Nt=Ot[0],Pt=Ot[1];wt=(Ct||{})[Nt]||ct[Nt],Pt==="inverted"&&(wt=$t(wt))}return wt&&wt.hasOwnProperty("base00")?wt:void 0})},function(tt,rt,nt){var ot,it=typeof Reflect=="object"?Reflect:null,st=it&&typeof it.apply=="function"?it.apply:function(yt,Et,St){return Function.prototype.apply.call(yt,Et,St)};ot=it&&typeof it.ownKeys=="function"?it.ownKeys:Object.getOwnPropertySymbols?function(yt){return Object.getOwnPropertyNames(yt).concat(Object.getOwnPropertySymbols(yt))}:function(yt){return Object.getOwnPropertyNames(yt)};var lt=Number.isNaN||function(yt){return yt!=yt};function ut(){ut.init.call(this)}tt.exports=ut,tt.exports.once=function(yt,Et){return new Promise(function(St,$t){function At(){wt!==void 0&&yt.removeListener("error",wt),St([].slice.call(arguments))}var wt;Et!=="error"&&(wt=function(Ct){yt.removeListener(Et,At),$t(Ct)},yt.once("error",wt)),yt.once(Et,At)})},ut.EventEmitter=ut,ut.prototype._events=void 0,ut.prototype._eventsCount=0,ut.prototype._maxListeners=void 0;var ct=10;function dt(yt){if(typeof yt!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof yt)}function ft(yt){return yt._maxListeners===void 0?ut.defaultMaxListeners:yt._maxListeners}function pt(yt,Et,St,$t){var At,wt,Ct,It;if(dt(St),(wt=yt._events)===void 0?(wt=yt._events=Object.create(null),yt._eventsCount=0):(wt.newListener!==void 0&&(yt.emit("newListener",Et,St.listener?St.listener:St),wt=yt._events),Ct=wt[Et]),Ct===void 0)Ct=wt[Et]=St,++yt._eventsCount;else if(typeof Ct=="function"?Ct=wt[Et]=$t?[St,Ct]:[Ct,St]:$t?Ct.unshift(St):Ct.push(St),(At=ft(yt))>0&&Ct.length>At&&!Ct.warned){Ct.warned=!0;var Ot=new Error("Possible EventEmitter memory leak detected. "+Ct.length+" "+String(Et)+" listeners added. Use emitter.setMaxListeners() to increase limit");Ot.name="MaxListenersExceededWarning",Ot.emitter=yt,Ot.type=Et,Ot.count=Ct.length,It=Ot,console&&console.warn&&console.warn(It)}return yt}function gt(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function vt(yt,Et,St){var $t={fired:!1,wrapFn:void 0,target:yt,type:Et,listener:St},At=gt.bind($t);return At.listener=St,$t.wrapFn=At,At}function bt(yt,Et,St){var $t=yt._events;if($t===void 0)return[];var At=$t[Et];return At===void 0?[]:typeof At=="function"?St?[At.listener||At]:[At]:St?function(wt){for(var Ct=new Array(wt.length),It=0;It0&&(wt=Et[0]),wt instanceof Error)throw wt;var Ct=new Error("Unhandled error."+(wt?" ("+wt.message+")":""));throw Ct.context=wt,Ct}var It=At[yt];if(It===void 0)return!1;if(typeof It=="function")st(It,this,Et);else{var Ot=It.length,Nt=xt(It,Ot);for(St=0;St=0;wt--)if(St[wt]===Et||St[wt].listener===Et){Ct=St[wt].listener,At=wt;break}if(At<0)return this;At===0?St.shift():function(It,Ot){for(;Ot+1=0;$t--)this.removeListener(yt,Et[$t]);return this},ut.prototype.listeners=function(yt){return bt(this,yt,!0)},ut.prototype.rawListeners=function(yt){return bt(this,yt,!1)},ut.listenerCount=function(yt,Et){return typeof yt.listenerCount=="function"?yt.listenerCount(Et):_t.call(yt,Et)},ut.prototype.listenerCount=_t,ut.prototype.eventNames=function(){return this._eventsCount>0?ot(this._events):[]}},function(tt,rt,nt){tt.exports.Dispatcher=nt(140)},function(tt,rt,nt){tt.exports=nt(142)},function(tt,rt,nt){rt.__esModule=!0;var ot=lt(nt(50)),it=lt(nt(65)),st=typeof it.default=="function"&&typeof ot.default=="symbol"?function(ut){return typeof ut}:function(ut){return ut&&typeof it.default=="function"&&ut.constructor===it.default&&ut!==it.default.prototype?"symbol":typeof ut};function lt(ut){return ut&&ut.__esModule?ut:{default:ut}}rt.default=typeof it.default=="function"&&st(ot.default)==="symbol"?function(ut){return ut===void 0?"undefined":st(ut)}:function(ut){return ut&&typeof it.default=="function"&&ut.constructor===it.default&&ut!==it.default.prototype?"symbol":ut===void 0?"undefined":st(ut)}},function(tt,rt,nt){tt.exports={default:nt(51),__esModule:!0}},function(tt,rt,nt){nt(20),nt(29),tt.exports=nt(30).f("iterator")},function(tt,rt,nt){var ot=nt(21),it=nt(22);tt.exports=function(st){return function(lt,ut){var ct,dt,ft=String(it(lt)),pt=ot(ut),gt=ft.length;return pt<0||pt>=gt?st?"":void 0:(ct=ft.charCodeAt(pt))<55296||ct>56319||pt+1===gt||(dt=ft.charCodeAt(pt+1))<56320||dt>57343?st?ft.charAt(pt):ct:st?ft.slice(pt,pt+2):dt-56320+(ct-55296<<10)+65536}}},function(tt,rt,nt){var ot=nt(54);tt.exports=function(it,st,lt){if(ot(it),st===void 0)return it;switch(lt){case 1:return function(ut){return it.call(st,ut)};case 2:return function(ut,ct){return it.call(st,ut,ct)};case 3:return function(ut,ct,dt){return it.call(st,ut,ct,dt)}}return function(){return it.apply(st,arguments)}}},function(tt,rt){tt.exports=function(nt){if(typeof nt!="function")throw TypeError(nt+" is not a function!");return nt}},function(tt,rt,nt){var ot=nt(38),it=nt(16),st=nt(28),lt={};nt(6)(lt,nt(2)("iterator"),function(){return this}),tt.exports=function(ut,ct,dt){ut.prototype=ot(lt,{next:it(1,dt)}),st(ut,ct+" Iterator")}},function(tt,rt,nt){var ot=nt(7),it=nt(10),st=nt(13);tt.exports=nt(4)?Object.defineProperties:function(lt,ut){it(lt);for(var ct,dt=st(ut),ft=dt.length,pt=0;ft>pt;)ot.f(lt,ct=dt[pt++],ut[ct]);return lt}},function(tt,rt,nt){var ot=nt(9),it=nt(58),st=nt(59);tt.exports=function(lt){return function(ut,ct,dt){var ft,pt=ot(ut),gt=it(pt.length),vt=st(dt,gt);if(lt&&ct!=ct){for(;gt>vt;)if((ft=pt[vt++])!=ft)return!0}else for(;gt>vt;vt++)if((lt||vt in pt)&&pt[vt]===ct)return lt||vt||0;return!lt&&-1}}},function(tt,rt,nt){var ot=nt(21),it=Math.min;tt.exports=function(st){return st>0?it(ot(st),9007199254740991):0}},function(tt,rt,nt){var ot=nt(21),it=Math.max,st=Math.min;tt.exports=function(lt,ut){return(lt=ot(lt))<0?it(lt+ut,0):st(lt,ut)}},function(tt,rt,nt){var ot=nt(3).document;tt.exports=ot&&ot.documentElement},function(tt,rt,nt){var ot=nt(5),it=nt(18),st=nt(25)("IE_PROTO"),lt=Object.prototype;tt.exports=Object.getPrototypeOf||function(ut){return ut=it(ut),ot(ut,st)?ut[st]:typeof ut.constructor=="function"&&ut instanceof ut.constructor?ut.constructor.prototype:ut instanceof Object?lt:null}},function(tt,rt,nt){var ot=nt(63),it=nt(64),st=nt(12),lt=nt(9);tt.exports=nt(34)(Array,"Array",function(ut,ct){this._t=lt(ut),this._i=0,this._k=ct},function(){var ut=this._t,ct=this._k,dt=this._i++;return!ut||dt>=ut.length?(this._t=void 0,it(1)):it(0,ct=="keys"?dt:ct=="values"?ut[dt]:[dt,ut[dt]])},"values"),st.Arguments=st.Array,ot("keys"),ot("values"),ot("entries")},function(tt,rt){tt.exports=function(){}},function(tt,rt){tt.exports=function(nt,ot){return{value:ot,done:!!nt}}},function(tt,rt,nt){tt.exports={default:nt(66),__esModule:!0}},function(tt,rt,nt){nt(67),nt(73),nt(74),nt(75),tt.exports=nt(1).Symbol},function(tt,rt,nt){var ot=nt(3),it=nt(5),st=nt(4),lt=nt(15),ut=nt(37),ct=nt(68).KEY,dt=nt(8),ft=nt(26),pt=nt(28),gt=nt(17),vt=nt(2),bt=nt(30),_t=nt(31),xt=nt(69),yt=nt(70),Et=nt(10),St=nt(11),$t=nt(18),At=nt(9),wt=nt(23),Ct=nt(16),It=nt(38),Ot=nt(71),Nt=nt(72),Pt=nt(32),Mt=nt(7),Rt=nt(13),Lt=Nt.f,jt=Mt.f,Gt=Ot.f,Vt=ot.Symbol,Yt=ot.JSON,Xt=Yt&&Yt.stringify,rr=vt("_hidden"),cr=vt("toPrimitive"),vr={}.propertyIsEnumerable,Tr=ft("symbol-registry"),gr=ft("symbols"),Er=ft("op-symbols"),qt=Object.prototype,ir=typeof Vt=="function"&&!!Pt.f,hr=ot.QObject,nr=!hr||!hr.prototype||!hr.prototype.findChild,mr=st&&dt(function(){return It(jt({},"a",{get:function(){return jt(this,"a",{value:7}).a}})).a!=7})?function(Jt,ur,br){var Sr=Lt(qt,ur);Sr&&delete qt[ur],jt(Jt,ur,br),Sr&&Jt!==qt&&jt(qt,ur,Sr)}:jt,Ar=function(Jt){var ur=gr[Jt]=It(Vt.prototype);return ur._k=Jt,ur},Or=ir&&typeof Vt.iterator=="symbol"?function(Jt){return typeof Jt=="symbol"}:function(Jt){return Jt instanceof Vt},wr=function(Jt,ur,br){return Jt===qt&&wr(Er,ur,br),Et(Jt),ur=wt(ur,!0),Et(br),it(gr,ur)?(br.enumerable?(it(Jt,rr)&&Jt[rr][ur]&&(Jt[rr][ur]=!1),br=It(br,{enumerable:Ct(0,!1)})):(it(Jt,rr)||jt(Jt,rr,Ct(1,{})),Jt[rr][ur]=!0),mr(Jt,ur,br)):jt(Jt,ur,br)},Nr=function(Jt,ur){Et(Jt);for(var br,Sr=xt(ur=At(ur)),yr=0,Cr=Sr.length;Cr>yr;)wr(Jt,br=Sr[yr++],ur[br]);return Jt},Wr=function(Jt){var ur=vr.call(this,Jt=wt(Jt,!0));return!(this===qt&&it(gr,Jt)&&!it(Er,Jt))&&(!(ur||!it(this,Jt)||!it(gr,Jt)||it(this,rr)&&this[rr][Jt])||ur)},Vr=function(Jt,ur){if(Jt=At(Jt),ur=wt(ur,!0),Jt!==qt||!it(gr,ur)||it(Er,ur)){var br=Lt(Jt,ur);return!br||!it(gr,ur)||it(Jt,rr)&&Jt[rr][ur]||(br.enumerable=!0),br}},Jr=function(Jt){for(var ur,br=Gt(At(Jt)),Sr=[],yr=0;br.length>yr;)it(gr,ur=br[yr++])||ur==rr||ur==ct||Sr.push(ur);return Sr},Yr=function(Jt){for(var ur,br=Jt===qt,Sr=Gt(br?Er:At(Jt)),yr=[],Cr=0;Sr.length>Cr;)!it(gr,ur=Sr[Cr++])||br&&!it(qt,ur)||yr.push(gr[ur]);return yr};ir||(ut((Vt=function(){if(this instanceof Vt)throw TypeError("Symbol is not a constructor!");var Jt=gt(arguments.length>0?arguments[0]:void 0),ur=function(br){this===qt&&ur.call(Er,br),it(this,rr)&&it(this[rr],Jt)&&(this[rr][Jt]=!1),mr(this,Jt,Ct(1,br))};return st&&nr&&mr(qt,Jt,{configurable:!0,set:ur}),Ar(Jt)}).prototype,"toString",function(){return this._k}),Nt.f=Vr,Mt.f=wr,nt(41).f=Ot.f=Jr,nt(19).f=Wr,Pt.f=Yr,st&&!nt(14)&&ut(qt,"propertyIsEnumerable",Wr,!0),bt.f=function(Jt){return Ar(vt(Jt))}),lt(lt.G+lt.W+lt.F*!ir,{Symbol:Vt});for(var jr="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),Hr=0;jr.length>Hr;)vt(jr[Hr++]);for(var hn=Rt(vt.store),pr=0;hn.length>pr;)_t(hn[pr++]);lt(lt.S+lt.F*!ir,"Symbol",{for:function(Jt){return it(Tr,Jt+="")?Tr[Jt]:Tr[Jt]=Vt(Jt)},keyFor:function(Jt){if(!Or(Jt))throw TypeError(Jt+" is not a symbol!");for(var ur in Tr)if(Tr[ur]===Jt)return ur},useSetter:function(){nr=!0},useSimple:function(){nr=!1}}),lt(lt.S+lt.F*!ir,"Object",{create:function(Jt,ur){return ur===void 0?It(Jt):Nr(It(Jt),ur)},defineProperty:wr,defineProperties:Nr,getOwnPropertyDescriptor:Vr,getOwnPropertyNames:Jr,getOwnPropertySymbols:Yr});var sr=dt(function(){Pt.f(1)});lt(lt.S+lt.F*sr,"Object",{getOwnPropertySymbols:function(Jt){return Pt.f($t(Jt))}}),Yt&<(lt.S+lt.F*(!ir||dt(function(){var Jt=Vt();return Xt([Jt])!="[null]"||Xt({a:Jt})!="{}"||Xt(Object(Jt))!="{}"})),"JSON",{stringify:function(Jt){for(var ur,br,Sr=[Jt],yr=1;arguments.length>yr;)Sr.push(arguments[yr++]);if(br=ur=Sr[1],(St(ur)||Jt!==void 0)&&!Or(Jt))return yt(ur)||(ur=function(Cr,Lr){if(typeof br=="function"&&(Lr=br.call(this,Cr,Lr)),!Or(Lr))return Lr}),Sr[1]=ur,Xt.apply(Yt,Sr)}}),Vt.prototype[cr]||nt(6)(Vt.prototype,cr,Vt.prototype.valueOf),pt(Vt,"Symbol"),pt(Math,"Math",!0),pt(ot.JSON,"JSON",!0)},function(tt,rt,nt){var ot=nt(17)("meta"),it=nt(11),st=nt(5),lt=nt(7).f,ut=0,ct=Object.isExtensible||function(){return!0},dt=!nt(8)(function(){return ct(Object.preventExtensions({}))}),ft=function(gt){lt(gt,ot,{value:{i:"O"+ ++ut,w:{}}})},pt=tt.exports={KEY:ot,NEED:!1,fastKey:function(gt,vt){if(!it(gt))return typeof gt=="symbol"?gt:(typeof gt=="string"?"S":"P")+gt;if(!st(gt,ot)){if(!ct(gt))return"F";if(!vt)return"E";ft(gt)}return gt[ot].i},getWeak:function(gt,vt){if(!st(gt,ot)){if(!ct(gt))return!0;if(!vt)return!1;ft(gt)}return gt[ot].w},onFreeze:function(gt){return dt&&pt.NEED&&ct(gt)&&!st(gt,ot)&&ft(gt),gt}}},function(tt,rt,nt){var ot=nt(13),it=nt(32),st=nt(19);tt.exports=function(lt){var ut=ot(lt),ct=it.f;if(ct)for(var dt,ft=ct(lt),pt=st.f,gt=0;ft.length>gt;)pt.call(lt,dt=ft[gt++])&&ut.push(dt);return ut}},function(tt,rt,nt){var ot=nt(24);tt.exports=Array.isArray||function(it){return ot(it)=="Array"}},function(tt,rt,nt){var ot=nt(9),it=nt(41).f,st={}.toString,lt=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];tt.exports.f=function(ut){return lt&&st.call(ut)=="[object Window]"?function(ct){try{return it(ct)}catch{return lt.slice()}}(ut):it(ot(ut))}},function(tt,rt,nt){var ot=nt(19),it=nt(16),st=nt(9),lt=nt(23),ut=nt(5),ct=nt(35),dt=Object.getOwnPropertyDescriptor;rt.f=nt(4)?dt:function(ft,pt){if(ft=st(ft),pt=lt(pt,!0),ct)try{return dt(ft,pt)}catch{}if(ut(ft,pt))return it(!ot.f.call(ft,pt),ft[pt])}},function(tt,rt){},function(tt,rt,nt){nt(31)("asyncIterator")},function(tt,rt,nt){nt(31)("observable")},function(tt,rt,nt){rt.__esModule=!0;var ot,it=nt(77),st=(ot=it)&&ot.__esModule?ot:{default:ot};rt.default=st.default||function(lt){for(var ut=1;utbt;)for(var yt,Et=ct(arguments[bt++]),St=_t?it(Et).concat(_t(Et)):it(Et),$t=St.length,At=0;$t>At;)yt=St[At++],ot&&!xt.call(Et,yt)||(gt[yt]=Et[yt]);return gt}:dt},function(tt,rt,nt){rt.__esModule=!0;var ot=st(nt(82)),it=st(nt(85));function st(lt){return lt&<.__esModule?lt:{default:lt}}rt.default=function(lt,ut){if(Array.isArray(lt))return lt;if((0,ot.default)(Object(lt)))return function(ct,dt){var ft=[],pt=!0,gt=!1,vt=void 0;try{for(var bt,_t=(0,it.default)(ct);!(pt=(bt=_t.next()).done)&&(ft.push(bt.value),!dt||ft.length!==dt);pt=!0);}catch(xt){gt=!0,vt=xt}finally{try{!pt&&_t.return&&_t.return()}finally{if(gt)throw vt}}return ft}(lt,ut);throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(tt,rt,nt){tt.exports={default:nt(83),__esModule:!0}},function(tt,rt,nt){nt(29),nt(20),tt.exports=nt(84)},function(tt,rt,nt){var ot=nt(42),it=nt(2)("iterator"),st=nt(12);tt.exports=nt(1).isIterable=function(lt){var ut=Object(lt);return ut[it]!==void 0||"@@iterator"in ut||st.hasOwnProperty(ot(ut))}},function(tt,rt,nt){tt.exports={default:nt(86),__esModule:!0}},function(tt,rt,nt){nt(29),nt(20),tt.exports=nt(87)},function(tt,rt,nt){var ot=nt(10),it=nt(88);tt.exports=nt(1).getIterator=function(st){var lt=it(st);if(typeof lt!="function")throw TypeError(st+" is not iterable!");return ot(lt.call(st))}},function(tt,rt,nt){var ot=nt(42),it=nt(2)("iterator"),st=nt(12);tt.exports=nt(1).getIteratorMethod=function(lt){if(lt!=null)return lt[it]||lt["@@iterator"]||st[ot(lt)]}},function(tt,rt,nt){tt.exports={default:nt(90),__esModule:!0}},function(tt,rt,nt){nt(91),tt.exports=nt(1).Object.keys},function(tt,rt,nt){var ot=nt(18),it=nt(13);nt(92)("keys",function(){return function(st){return it(ot(st))}})},function(tt,rt,nt){var ot=nt(15),it=nt(1),st=nt(8);tt.exports=function(lt,ut){var ct=(it.Object||{})[lt]||Object[lt],dt={};dt[lt]=ut(ct),ot(ot.S+ot.F*st(function(){ct(1)}),"Object",dt)}},function(tt,rt,nt){(function(ot){var it=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],st=/^\s+|\s+$/g,lt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ut=/\{\n\/\* \[wrapped with (.+)\] \*/,ct=/,? & /,dt=/^[-+]0x[0-9a-f]+$/i,ft=/^0b[01]+$/i,pt=/^\[object .+?Constructor\]$/,gt=/^0o[0-7]+$/i,vt=/^(?:0|[1-9]\d*)$/,bt=parseInt,_t=typeof ot=="object"&&ot&&ot.Object===Object&&ot,xt=typeof self=="object"&&self&&self.Object===Object&&self,yt=_t||xt||Function("return this")();function Et(pr,sr,Jt){switch(Jt.length){case 0:return pr.call(sr);case 1:return pr.call(sr,Jt[0]);case 2:return pr.call(sr,Jt[0],Jt[1]);case 3:return pr.call(sr,Jt[0],Jt[1],Jt[2])}return pr.apply(sr,Jt)}function St(pr,sr){return!!(pr&&pr.length)&&function(Jt,ur,br){if(ur!=ur)return function(Cr,Lr,Xr,qr){for(var Qr=Cr.length,xn=Xr+(qr?1:-1);qr?xn--:++xn-1}function $t(pr){return pr!=pr}function At(pr,sr){for(var Jt=pr.length,ur=0;Jt--;)pr[Jt]===sr&&ur++;return ur}function wt(pr,sr){for(var Jt=-1,ur=pr.length,br=0,Sr=[];++Jt2?It:void 0);function vr(pr){return jr(pr)?Yt(pr):{}}function Tr(pr){return!(!jr(pr)||function(sr){return!!Rt&&Rt in sr}(pr))&&(function(sr){var Jt=jr(sr)?Gt.call(sr):"";return Jt=="[object Function]"||Jt=="[object GeneratorFunction]"}(pr)||function(sr){var Jt=!1;if(sr!=null&&typeof sr.toString!="function")try{Jt=!!(sr+"")}catch{}return Jt}(pr)?Vt:pt).test(function(sr){if(sr!=null){try{return Lt.call(sr)}catch{}try{return sr+""}catch{}}return""}(pr))}function gr(pr,sr,Jt,ur){for(var br=-1,Sr=pr.length,yr=Jt.length,Cr=-1,Lr=sr.length,Xr=Xt(Sr-yr,0),qr=Array(Lr+Xr),Qr=!ur;++Cr1&&sn.reverse(),qr&&Lr1?"& ":"")+sr[ur],sr=sr.join(Jt>2?", ":" "),pr.replace(lt,`{ +/* [wrapped with `+sr+`] */ +`)}function Nr(pr,sr){return!!(sr=sr??9007199254740991)&&(typeof pr=="number"||vt.test(pr))&&pr>-1&&pr%1==0&&pr1&&st--,ut=6*st<1?ot+6*(it-ot)*st:2*st<1?it:3*st<2?ot+(it-ot)*(2/3-st)*6:ot,lt[pt]=255*ut;return lt}},function(tt,rt,nt){(function(ot){var it=typeof ot=="object"&&ot&&ot.Object===Object&&ot,st=typeof self=="object"&&self&&self.Object===Object&&self,lt=it||st||Function("return this")();function ut(wt,Ct,It){switch(It.length){case 0:return wt.call(Ct);case 1:return wt.call(Ct,It[0]);case 2:return wt.call(Ct,It[0],It[1]);case 3:return wt.call(Ct,It[0],It[1],It[2])}return wt.apply(Ct,It)}function ct(wt,Ct){for(var It=-1,Ot=Ct.length,Nt=wt.length;++It-1&&Nt%1==0&&Nt<=9007199254740991}(Ot.length)&&!function(Nt){var Pt=function(Mt){var Rt=typeof Mt;return!!Mt&&(Rt=="object"||Rt=="function")}(Nt)?pt.call(Nt):"";return Pt=="[object Function]"||Pt=="[object GeneratorFunction]"}(Ot)}(It)}(Ct)&&ft.call(Ct,"callee")&&(!vt.call(Ct,"callee")||pt.call(Ct)=="[object Arguments]")}(wt)||!!(bt&&wt&&wt[bt])}var yt=Array.isArray,Et,St,$t,At=(St=function(wt){var Ct=(wt=function Ot(Nt,Pt,Mt,Rt,Lt){var jt=-1,Gt=Nt.length;for(Mt||(Mt=xt),Lt||(Lt=[]);++jt0&&Mt(Vt)?Pt>1?Ot(Vt,Pt-1,Mt,Rt,Lt):ct(Lt,Vt):Rt||(Lt[Lt.length]=Vt)}return Lt}(wt,1)).length,It=Ct;for(Et;It--;)if(typeof wt[It]!="function")throw new TypeError("Expected a function");return function(){for(var Ot=0,Nt=Ct?wt[Ot].apply(this,arguments):arguments[0];++Ot2?st-2:0),ut=2;ut"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var zt,Ht=pt(Ut);if(Zt){var Dt=pt(this).constructor;zt=Reflect.construct(Ht,arguments,Dt)}else zt=Ht.apply(this,arguments);return bt(this,zt)}}nt.r(rt);var xt=nt(0),yt=nt.n(xt);function Et(){var Ut=this.constructor.getDerivedStateFromProps(this.props,this.state);Ut!=null&&this.setState(Ut)}function St(Ut){this.setState((function(Zt){var zt=this.constructor.getDerivedStateFromProps(Ut,Zt);return zt??null}).bind(this))}function $t(Ut,Zt){try{var zt=this.props,Ht=this.state;this.props=Ut,this.state=Zt,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(zt,Ht)}finally{this.props=zt,this.state=Ht}}function At(Ut){var Zt=Ut.prototype;if(!Zt||!Zt.isReactComponent)throw new Error("Can only polyfill class components");if(typeof Ut.getDerivedStateFromProps!="function"&&typeof Zt.getSnapshotBeforeUpdate!="function")return Ut;var zt=null,Ht=null,Dt=null;if(typeof Zt.componentWillMount=="function"?zt="componentWillMount":typeof Zt.UNSAFE_componentWillMount=="function"&&(zt="UNSAFE_componentWillMount"),typeof Zt.componentWillReceiveProps=="function"?Ht="componentWillReceiveProps":typeof Zt.UNSAFE_componentWillReceiveProps=="function"&&(Ht="UNSAFE_componentWillReceiveProps"),typeof Zt.componentWillUpdate=="function"?Dt="componentWillUpdate":typeof Zt.UNSAFE_componentWillUpdate=="function"&&(Dt="UNSAFE_componentWillUpdate"),zt!==null||Ht!==null||Dt!==null){var Qt=Ut.displayName||Ut.name,ar=typeof Ut.getDerivedStateFromProps=="function"?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error(`Unsafe legacy lifecycles will not be called for components using new component APIs. + +`+Qt+" uses "+ar+" but also contains the following legacy lifecycles:"+(zt!==null?` + `+zt:"")+(Ht!==null?` + `+Ht:"")+(Dt!==null?` + `+Dt:"")+` + +The above lifecycles should be removed. Learn more about this warning here: +https://fb.me/react-async-component-lifecycle-hooks`)}if(typeof Ut.getDerivedStateFromProps=="function"&&(Zt.componentWillMount=Et,Zt.componentWillReceiveProps=St),typeof Zt.getSnapshotBeforeUpdate=="function"){if(typeof Zt.componentDidUpdate!="function")throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");Zt.componentWillUpdate=$t;var lr=Zt.componentDidUpdate;Zt.componentDidUpdate=function(tr,_r,Br){var un=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:Br;lr.call(this,tr,_r,un)}}return Ut}function wt(Ut,Zt){if(Ut==null)return{};var zt,Ht,Dt=function(ar,lr){if(ar==null)return{};var tr,_r,Br={},un=Object.keys(ar);for(_r=0;_r=0||(Br[tr]=ar[tr]);return Br}(Ut,Zt);if(Object.getOwnPropertySymbols){var Qt=Object.getOwnPropertySymbols(Ut);for(Ht=0;Ht=0||Object.prototype.propertyIsEnumerable.call(Ut,zt)&&(Dt[zt]=Ut[zt])}return Dt}function Ct(Ut){var Zt=function(zt){return{}.toString.call(zt).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}(Ut);return Zt==="number"&&(Zt=isNaN(Ut)?"nan":(0|Ut)!=Ut?"float":"integer"),Zt}Et.__suppressDeprecationWarning=!0,St.__suppressDeprecationWarning=!0,$t.__suppressDeprecationWarning=!0;var It={scheme:"rjv-default",author:"mac gainor",base00:"rgba(0, 0, 0, 0)",base01:"rgb(245, 245, 245)",base02:"rgb(235, 235, 235)",base03:"#93a1a1",base04:"rgba(0, 0, 0, 0.3)",base05:"#586e75",base06:"#073642",base07:"#002b36",base08:"#d33682",base09:"#cb4b16",base0A:"#dc322f",base0B:"#859900",base0C:"#6c71c4",base0D:"#586e75",base0E:"#2aa198",base0F:"#268bd2"},Ot={scheme:"rjv-grey",author:"mac gainor",base00:"rgba(1, 1, 1, 0)",base01:"rgba(1, 1, 1, 0.1)",base02:"rgba(0, 0, 0, 0.2)",base03:"rgba(1, 1, 1, 0.3)",base04:"rgba(0, 0, 0, 0.4)",base05:"rgba(1, 1, 1, 0.5)",base06:"rgba(1, 1, 1, 0.6)",base07:"rgba(1, 1, 1, 0.7)",base08:"rgba(1, 1, 1, 0.8)",base09:"rgba(1, 1, 1, 0.8)",base0A:"rgba(1, 1, 1, 0.8)",base0B:"rgba(1, 1, 1, 0.8)",base0C:"rgba(1, 1, 1, 0.8)",base0D:"rgba(1, 1, 1, 0.8)",base0E:"rgba(1, 1, 1, 0.8)",base0F:"rgba(1, 1, 1, 0.8)"},Nt={white:"#fff",black:"#000",transparent:"rgba(1, 1, 1, 0)",globalFontFamily:"monospace",globalCursor:"default",indentBlockWidth:"5px",braceFontWeight:"bold",braceCursor:"pointer",ellipsisFontSize:"18px",ellipsisLineHeight:"10px",ellipsisCursor:"pointer",keyMargin:"0px 5px",keyLetterSpacing:"0.5px",keyFontStyle:"none",keyBorderRadius:"3px",keyColonWeight:"bold",keyVerticalAlign:"top",keyOpacity:"0.85",keyOpacityHover:"1",keyValPaddingTop:"3px",keyValPaddingBottom:"3px",keyValPaddingRight:"5px",keyValBorderLeft:"1px solid",keyValBorderHover:"2px solid",keyValPaddingHover:"3px 5px 3px 4px",pushedContentMarginLeft:"6px",variableValuePaddingRight:"6px",nullFontSize:"11px",nullFontWeight:"bold",nullPadding:"1px 2px",nullBorderRadius:"3px",nanFontSize:"11px",nanFontWeight:"bold",nanPadding:"1px 2px",nanBorderRadius:"3px",undefinedFontSize:"11px",undefinedFontWeight:"bold",undefinedPadding:"1px 2px",undefinedBorderRadius:"3px",dataTypeFontSize:"11px",dataTypeMarginRight:"4px",datatypeOpacity:"0.8",objectSizeBorderRadius:"3px",objectSizeFontStyle:"italic",objectSizeMargin:"0px 6px 0px 0px",clipboardCursor:"pointer",clipboardCheckMarginLeft:"-12px",metaDataPadding:"0px 0px 0px 10px",arrayGroupMetaPadding:"0px 0px 0px 4px",iconContainerWidth:"17px",tooltipPadding:"4px",editInputMinWidth:"130px",editInputBorderRadius:"2px",editInputPadding:"5px",editInputMarginRight:"4px",editInputFontFamily:"monospace",iconCursor:"pointer",iconFontSize:"15px",iconPaddingRight:"1px",dateValueMarginLeft:"2px",iconMarginRight:"3px",detectedRowPaddingTop:"3px",addKeyCoverBackground:"rgba(255, 255, 255, 0.3)",addKeyCoverPosition:"absolute",addKeyCoverPositionPx:"0px",addKeyModalWidth:"200px",addKeyModalMargin:"auto",addKeyModalPadding:"10px",addKeyModalRadius:"3px"},Pt=nt(45),Mt=function(Ut){var Zt=function(zt){return{backgroundColor:zt.base00,ellipsisColor:zt.base09,braceColor:zt.base07,expandedIcon:zt.base0D,collapsedIcon:zt.base0E,keyColor:zt.base07,arrayKeyColor:zt.base0C,objectSize:zt.base04,copyToClipboard:zt.base0F,copyToClipboardCheck:zt.base0D,objectBorder:zt.base02,dataTypes:{boolean:zt.base0E,date:zt.base0D,float:zt.base0B,function:zt.base0D,integer:zt.base0F,string:zt.base09,nan:zt.base08,null:zt.base0A,undefined:zt.base05,regexp:zt.base0A,background:zt.base02},editVariable:{editIcon:zt.base0E,cancelIcon:zt.base09,removeIcon:zt.base09,addIcon:zt.base0E,checkIcon:zt.base0E,background:zt.base01,color:zt.base0A,border:zt.base07},addKeyModal:{background:zt.base05,border:zt.base04,color:zt.base0A,labelColor:zt.base01},validationFailure:{background:zt.base09,iconColor:zt.base01,fontColor:zt.base01}}}(Ut);return{"app-container":{fontFamily:Nt.globalFontFamily,cursor:Nt.globalCursor,backgroundColor:Zt.backgroundColor,position:"relative"},ellipsis:{display:"inline-block",color:Zt.ellipsisColor,fontSize:Nt.ellipsisFontSize,lineHeight:Nt.ellipsisLineHeight,cursor:Nt.ellipsisCursor},"brace-row":{display:"inline-block",cursor:"pointer"},brace:{display:"inline-block",cursor:Nt.braceCursor,fontWeight:Nt.braceFontWeight,color:Zt.braceColor},"expanded-icon":{color:Zt.expandedIcon},"collapsed-icon":{color:Zt.collapsedIcon},colon:{display:"inline-block",margin:Nt.keyMargin,color:Zt.keyColor,verticalAlign:"top"},objectKeyVal:function(zt,Ht){return{style:st({paddingTop:Nt.keyValPaddingTop,paddingRight:Nt.keyValPaddingRight,paddingBottom:Nt.keyValPaddingBottom,borderLeft:Nt.keyValBorderLeft+" "+Zt.objectBorder,":hover":{paddingLeft:Ht.paddingLeft-1+"px",borderLeft:Nt.keyValBorderHover+" "+Zt.objectBorder}},Ht)}},"object-key-val-no-border":{padding:Nt.keyValPadding},"pushed-content":{marginLeft:Nt.pushedContentMarginLeft},variableValue:function(zt,Ht){return{style:st({display:"inline-block",paddingRight:Nt.variableValuePaddingRight,position:"relative"},Ht)}},"object-name":{display:"inline-block",color:Zt.keyColor,letterSpacing:Nt.keyLetterSpacing,fontStyle:Nt.keyFontStyle,verticalAlign:Nt.keyVerticalAlign,opacity:Nt.keyOpacity,":hover":{opacity:Nt.keyOpacityHover}},"array-key":{display:"inline-block",color:Zt.arrayKeyColor,letterSpacing:Nt.keyLetterSpacing,fontStyle:Nt.keyFontStyle,verticalAlign:Nt.keyVerticalAlign,opacity:Nt.keyOpacity,":hover":{opacity:Nt.keyOpacityHover}},"object-size":{color:Zt.objectSize,borderRadius:Nt.objectSizeBorderRadius,fontStyle:Nt.objectSizeFontStyle,margin:Nt.objectSizeMargin,cursor:"default"},"data-type-label":{fontSize:Nt.dataTypeFontSize,marginRight:Nt.dataTypeMarginRight,opacity:Nt.datatypeOpacity},boolean:{display:"inline-block",color:Zt.dataTypes.boolean},date:{display:"inline-block",color:Zt.dataTypes.date},"date-value":{marginLeft:Nt.dateValueMarginLeft},float:{display:"inline-block",color:Zt.dataTypes.float},function:{display:"inline-block",color:Zt.dataTypes.function,cursor:"pointer",whiteSpace:"pre-line"},"function-value":{fontStyle:"italic"},integer:{display:"inline-block",color:Zt.dataTypes.integer},string:{display:"inline-block",color:Zt.dataTypes.string},nan:{display:"inline-block",color:Zt.dataTypes.nan,fontSize:Nt.nanFontSize,fontWeight:Nt.nanFontWeight,backgroundColor:Zt.dataTypes.background,padding:Nt.nanPadding,borderRadius:Nt.nanBorderRadius},null:{display:"inline-block",color:Zt.dataTypes.null,fontSize:Nt.nullFontSize,fontWeight:Nt.nullFontWeight,backgroundColor:Zt.dataTypes.background,padding:Nt.nullPadding,borderRadius:Nt.nullBorderRadius},undefined:{display:"inline-block",color:Zt.dataTypes.undefined,fontSize:Nt.undefinedFontSize,padding:Nt.undefinedPadding,borderRadius:Nt.undefinedBorderRadius,backgroundColor:Zt.dataTypes.background},regexp:{display:"inline-block",color:Zt.dataTypes.regexp},"copy-to-clipboard":{cursor:Nt.clipboardCursor},"copy-icon":{color:Zt.copyToClipboard,fontSize:Nt.iconFontSize,marginRight:Nt.iconMarginRight,verticalAlign:"top"},"copy-icon-copied":{color:Zt.copyToClipboardCheck,marginLeft:Nt.clipboardCheckMarginLeft},"array-group-meta-data":{display:"inline-block",padding:Nt.arrayGroupMetaPadding},"object-meta-data":{display:"inline-block",padding:Nt.metaDataPadding},"icon-container":{display:"inline-block",width:Nt.iconContainerWidth},tooltip:{padding:Nt.tooltipPadding},removeVarIcon:{verticalAlign:"top",display:"inline-block",color:Zt.editVariable.removeIcon,cursor:Nt.iconCursor,fontSize:Nt.iconFontSize,marginRight:Nt.iconMarginRight},addVarIcon:{verticalAlign:"top",display:"inline-block",color:Zt.editVariable.addIcon,cursor:Nt.iconCursor,fontSize:Nt.iconFontSize,marginRight:Nt.iconMarginRight},editVarIcon:{verticalAlign:"top",display:"inline-block",color:Zt.editVariable.editIcon,cursor:Nt.iconCursor,fontSize:Nt.iconFontSize,marginRight:Nt.iconMarginRight},"edit-icon-container":{display:"inline-block",verticalAlign:"top"},"check-icon":{display:"inline-block",cursor:Nt.iconCursor,color:Zt.editVariable.checkIcon,fontSize:Nt.iconFontSize,paddingRight:Nt.iconPaddingRight},"cancel-icon":{display:"inline-block",cursor:Nt.iconCursor,color:Zt.editVariable.cancelIcon,fontSize:Nt.iconFontSize,paddingRight:Nt.iconPaddingRight},"edit-input":{display:"inline-block",minWidth:Nt.editInputMinWidth,borderRadius:Nt.editInputBorderRadius,backgroundColor:Zt.editVariable.background,color:Zt.editVariable.color,padding:Nt.editInputPadding,marginRight:Nt.editInputMarginRight,fontFamily:Nt.editInputFontFamily},"detected-row":{paddingTop:Nt.detectedRowPaddingTop},"key-modal-request":{position:Nt.addKeyCoverPosition,top:Nt.addKeyCoverPositionPx,left:Nt.addKeyCoverPositionPx,right:Nt.addKeyCoverPositionPx,bottom:Nt.addKeyCoverPositionPx,backgroundColor:Nt.addKeyCoverBackground},"key-modal":{width:Nt.addKeyModalWidth,backgroundColor:Zt.addKeyModal.background,marginLeft:Nt.addKeyModalMargin,marginRight:Nt.addKeyModalMargin,padding:Nt.addKeyModalPadding,borderRadius:Nt.addKeyModalRadius,marginTop:"15px",position:"relative"},"key-modal-label":{color:Zt.addKeyModal.labelColor,marginLeft:"2px",marginBottom:"5px",fontSize:"11px"},"key-modal-input-container":{overflow:"hidden"},"key-modal-input":{width:"100%",padding:"3px 6px",fontFamily:"monospace",color:Zt.addKeyModal.color,border:"none",boxSizing:"border-box",borderRadius:"2px"},"key-modal-cancel":{backgroundColor:Zt.editVariable.removeIcon,position:"absolute",top:"0px",right:"0px",borderRadius:"0px 3px 0px 3px",cursor:"pointer"},"key-modal-cancel-icon":{color:Zt.addKeyModal.labelColor,fontSize:Nt.iconFontSize,transform:"rotate(45deg)"},"key-modal-submit":{color:Zt.editVariable.addIcon,fontSize:Nt.iconFontSize,position:"absolute",right:"2px",top:"3px",cursor:"pointer"},"function-ellipsis":{display:"inline-block",color:Zt.ellipsisColor,fontSize:Nt.ellipsisFontSize,lineHeight:Nt.ellipsisLineHeight,cursor:Nt.ellipsisCursor},"validation-failure":{float:"right",padding:"3px 6px",borderRadius:"2px",cursor:"pointer",color:Zt.validationFailure.fontColor,backgroundColor:Zt.validationFailure.background},"validation-failure-label":{marginRight:"6px"},"validation-failure-clear":{position:"relative",verticalAlign:"top",cursor:"pointer",color:Zt.validationFailure.iconColor,fontSize:Nt.iconFontSize,transform:"rotate(45deg)"}}};function Rt(Ut,Zt,zt){return Ut||console.error("theme has not been set"),function(Ht){var Dt=It;return Ht!==!1&&Ht!=="none"||(Dt=Ot),Object(Pt.createStyling)(Mt,{defaultBase16:Dt})(Ht)}(Ut)(Zt,zt)}var Lt=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=(Ht.rjvId,Ht.type_name),Qt=Ht.displayDataTypes,ar=Ht.theme;return Qt?yt.a.createElement("span",Object.assign({className:"data-type-label"},Rt(ar,"data-type-label")),Dt):null}}]),zt}(yt.a.PureComponent),jt=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props;return yt.a.createElement("div",Rt(Ht.theme,"boolean"),yt.a.createElement(Lt,Object.assign({type_name:"bool"},Ht)),Ht.value?"true":"false")}}]),zt}(yt.a.PureComponent),Gt=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props;return yt.a.createElement("div",Rt(Ht.theme,"date"),yt.a.createElement(Lt,Object.assign({type_name:"date"},Ht)),yt.a.createElement("span",Object.assign({className:"date-value"},Rt(Ht.theme,"date-value")),Ht.value.toLocaleTimeString("en-us",{weekday:"short",year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})))}}]),zt}(yt.a.PureComponent),Vt=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props;return yt.a.createElement("div",Rt(Ht.theme,"float"),yt.a.createElement(Lt,Object.assign({type_name:"float"},Ht)),this.props.value)}}]),zt}(yt.a.PureComponent);function Yt(Ut,Zt){(Zt==null||Zt>Ut.length)&&(Zt=Ut.length);for(var zt=0,Ht=new Array(Zt);zt"u"||Ut[Symbol.iterator]==null){if(Array.isArray(Ut)||(zt=Xt(Ut))||Zt&&Ut&&typeof Ut.length=="number"){zt&&(Ut=zt);var Ht=0,Dt=function(){};return{s:Dt,n:function(){return Ht>=Ut.length?{done:!0}:{done:!1,value:Ut[Ht++]}},e:function(tr){throw tr},f:Dt}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Qt,ar=!0,lr=!1;return{s:function(){zt=Ut[Symbol.iterator]()},n:function(){var tr=zt.next();return ar=tr.done,tr},e:function(tr){lr=!0,Qt=tr},f:function(){try{ar||zt.return==null||zt.return()}finally{if(lr)throw Qt}}}}function cr(Ut){return function(Zt){if(Array.isArray(Zt))return Yt(Zt)}(Ut)||function(Zt){if(typeof Symbol<"u"&&Symbol.iterator in Object(Zt))return Array.from(Zt)}(Ut)||Xt(Ut)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}var vr=nt(46),Tr=new(nt(47)).Dispatcher,gr=new(function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){var Ht;lt(this,zt);for(var Dt=arguments.length,Qt=new Array(Dt),ar=0;arDt&&(lr.style.cursor="pointer",this.state.collapsed&&(ar=yt.a.createElement("span",null,ar.substring(0,Dt),yt.a.createElement("span",Rt(Qt,"ellipsis")," ...")))),yt.a.createElement("div",Rt(Qt,"string"),yt.a.createElement(Lt,Object.assign({type_name:"string"},Ht)),yt.a.createElement("span",Object.assign({className:"string-value"},lr,{onClick:this.toggleCollapsed}),'"',ar,'"'))}}]),zt}(yt.a.PureComponent),Or=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){return yt.a.createElement("div",Rt(this.props.theme,"undefined"),"undefined")}}]),zt}(yt.a.PureComponent);function wr(){return(wr=Object.assign||function(Ut){for(var Zt=1;Zt=0||(Fo[to]=pn[to]);return Fo}(Ut,["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"]),Br,un=_r.value!==void 0,fn=Object(xt.useRef)(null),an=Jr(fn,Zt),tn=Object(xt.useRef)(0),_n=Object(xt.useRef)(),jn=function(){var pn=fn.current,qn=zt&&_n.current?_n.current:function(xo){var _i=window.getComputedStyle(xo);if(_i===null)return null;var zo,Zn=(zo=_i,pr.reduce(function(na,Ho){return na[Ho]=zo[Ho],na},{})),ko=Zn.boxSizing;return ko===""?null:(sr&&ko==="border-box"&&(Zn.width=parseFloat(Zn.width)+parseFloat(Zn.borderRightWidth)+parseFloat(Zn.borderLeftWidth)+parseFloat(Zn.paddingRight)+parseFloat(Zn.paddingLeft)+"px"),{sizingStyle:Zn,paddingSize:parseFloat(Zn.paddingBottom)+parseFloat(Zn.paddingTop),borderSize:parseFloat(Zn.borderBottomWidth)+parseFloat(Zn.borderTopWidth)})}(pn);if(qn){_n.current=qn;var to=function(xo,_i,zo,Zn){zo===void 0&&(zo=1),Zn===void 0&&(Zn=1/0),Hr||((Hr=document.createElement("textarea")).setAttribute("tab-index","-1"),Hr.setAttribute("aria-hidden","true"),jr(Hr)),Hr.parentNode===null&&document.body.appendChild(Hr);var ko=xo.paddingSize,na=xo.borderSize,Ho=xo.sizingStyle,ga=Ho.boxSizing;Object.keys(Ho).forEach(function(es){var Yo=es;Hr.style[Yo]=Ho[Yo]}),jr(Hr),Hr.value=_i;var Go=function(es,Yo){var Xo=es.scrollHeight;return Yo.sizingStyle.boxSizing==="border-box"?Xo+Yo.borderSize:Xo-Yo.paddingSize}(Hr,xo);Hr.value="x";var ps=Hr.scrollHeight-ko,Uo=ps*zo;ga==="border-box"&&(Uo=Uo+ko+na),Go=Math.max(Uo,Go);var xa=ps*Zn;return ga==="border-box"&&(xa=xa+ko+na),[Go=Math.min(xa,Go),ps]}(qn,pn.value||pn.placeholder||"x",Dt,Ht),fo=to[0],Fo=to[1];tn.current!==fo&&(tn.current=fo,pn.style.setProperty("height",fo+"px","important"),tr(fo,{rowHeight:Fo}))}};return Object(xt.useLayoutEffect)(jn),Br=Wr(jn),Object(xt.useLayoutEffect)(function(){var pn=function(qn){Br.current(qn)};return window.addEventListener("resize",pn),function(){window.removeEventListener("resize",pn)}},[]),Object(xt.createElement)("textarea",wr({},_r,{onChange:function(pn){un||jn(),ar(pn)},ref:an}))},ur=Object(xt.forwardRef)(Jt);function br(Ut){Ut=Ut.trim();try{if((Ut=JSON.stringify(JSON.parse(Ut)))[0]==="[")return Sr("array",JSON.parse(Ut));if(Ut[0]==="{")return Sr("object",JSON.parse(Ut));if(Ut.match(/\-?\d+\.\d+/)&&Ut.match(/\-?\d+\.\d+/)[0]===Ut)return Sr("float",parseFloat(Ut));if(Ut.match(/\-?\d+e-\d+/)&&Ut.match(/\-?\d+e-\d+/)[0]===Ut)return Sr("float",Number(Ut));if(Ut.match(/\-?\d+/)&&Ut.match(/\-?\d+/)[0]===Ut)return Sr("integer",parseInt(Ut));if(Ut.match(/\-?\d+e\+\d+/)&&Ut.match(/\-?\d+e\+\d+/)[0]===Ut)return Sr("integer",Number(Ut))}catch{}switch(Ut=Ut.toLowerCase()){case"undefined":return Sr("undefined",void 0);case"nan":return Sr("nan",NaN);case"null":return Sr("null",null);case"true":return Sr("boolean",!0);case"false":return Sr("boolean",!1);default:if(Ut=Date.parse(Ut))return Sr("date",new Date(Ut))}return Sr(!1,null)}function Sr(Ut,Zt){return{type:Ut,value:Zt}}var yr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,13H17V11H7"})))}}]),zt}(yt.a.PureComponent),Cr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M13,7H11V11H7V13H11V17H13V13H17V11H13V7Z"})))}}]),zt}(yt.a.PureComponent),Lr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]),ar=sn(Dt).style;return yt.a.createElement("span",Qt,yt.a.createElement("svg",{fill:ar.color,width:ar.height,height:ar.width,style:ar,viewBox:"0 0 1792 1792"},yt.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-832q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h832q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),zt}(yt.a.PureComponent),Xr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]),ar=sn(Dt).style;return yt.a.createElement("span",Qt,yt.a.createElement("svg",{fill:ar.color,width:ar.height,height:ar.width,style:ar,viewBox:"0 0 1792 1792"},yt.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-352v352q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23v-352h-352q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h352v-352q0-14 9-23t23-9h64q14 0 23 9t9 23v352h352q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),zt}(yt.a.PureComponent),qr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",{style:st(st({},sn(Dt).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},yt.a.createElement("path",{d:"M0 14l6-6-6-6z"})))}}]),zt}(yt.a.PureComponent),Qr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",{style:st(st({},sn(Dt).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},yt.a.createElement("path",{d:"M0 5l6 6 6-6z"})))}}]),zt}(yt.a.PureComponent),xn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m30 35h-25v-22.5h25v7.5h2.5v-12.5c0-1.4-1.1-2.5-2.5-2.5h-7.5c0-2.8-2.2-5-5-5s-5 2.2-5 5h-7.5c-1.4 0-2.5 1.1-2.5 2.5v27.5c0 1.4 1.1 2.5 2.5 2.5h25c1.4 0 2.5-1.1 2.5-2.5v-5h-2.5v5z m-20-27.5h2.5s2.5-1.1 2.5-2.5 1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5 1.3 2.5 2.5 2.5h2.5s2.5 1.1 2.5 2.5h-20c0-1.5 1.1-2.5 2.5-2.5z m-2.5 20h5v-2.5h-5v2.5z m17.5-5v-5l-10 7.5 10 7.5v-5h12.5v-5h-12.5z m-17.5 10h7.5v-2.5h-7.5v2.5z m12.5-17.5h-12.5v2.5h12.5v-2.5z m-7.5 5h-5v2.5h5v-2.5z"}))))}}]),zt}(yt.a.PureComponent),wn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m28.6 25q0-0.5-0.4-1l-4-4 4-4q0.4-0.5 0.4-1 0-0.6-0.4-1.1l-2-2q-0.4-0.4-1-0.4-0.6 0-1 0.4l-4.1 4.1-4-4.1q-0.4-0.4-1-0.4-0.6 0-1 0.4l-2 2q-0.5 0.5-0.5 1.1 0 0.5 0.5 1l4 4-4 4q-0.5 0.5-0.5 1 0 0.7 0.5 1.1l2 2q0.4 0.4 1 0.4 0.6 0 1-0.4l4-4.1 4.1 4.1q0.4 0.4 1 0.4 0.6 0 1-0.4l2-2q0.4-0.4 0.4-1z m8.7-5q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),zt}(yt.a.PureComponent),nn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m30.1 21.4v-2.8q0-0.6-0.4-1t-1-0.5h-5.7v-5.7q0-0.6-0.4-1t-1-0.4h-2.9q-0.6 0-1 0.4t-0.4 1v5.7h-5.7q-0.6 0-1 0.5t-0.5 1v2.8q0 0.6 0.5 1t1 0.5h5.7v5.7q0 0.5 0.4 1t1 0.4h2.9q0.6 0 1-0.4t0.4-1v-5.7h5.7q0.6 0 1-0.5t0.4-1z m7.2-1.4q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),zt}(yt.a.PureComponent),Ln=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m31.6 21.6h-10v10h-3.2v-10h-10v-3.2h10v-10h3.2v10h10v3.2z"}))))}}]),zt}(yt.a.PureComponent),zn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m19.8 26.4l2.6-2.6-3.4-3.4-2.6 2.6v1.3h2.2v2.1h1.2z m9.8-16q-0.3-0.4-0.7 0l-7.8 7.8q-0.4 0.4 0 0.7t0.7 0l7.8-7.8q0.4-0.4 0-0.7z m1.8 13.2v4.3q0 2.6-1.9 4.5t-4.5 1.9h-18.6q-2.6 0-4.5-1.9t-1.9-4.5v-18.6q0-2.7 1.9-4.6t4.5-1.8h18.6q1.4 0 2.6 0.5 0.3 0.2 0.4 0.5 0.1 0.4-0.2 0.7l-1.1 1.1q-0.3 0.3-0.7 0.1-0.5-0.1-1-0.1h-18.6q-1.4 0-2.5 1.1t-1 2.5v18.6q0 1.4 1 2.5t2.5 1h18.6q1.5 0 2.5-1t1.1-2.5v-2.9q0-0.2 0.2-0.4l1.4-1.5q0.3-0.3 0.8-0.1t0.4 0.6z m-2.1-16.5l6.4 6.5-15 15h-6.4v-6.5z m9.9 3l-2.1 2-6.4-6.4 2.1-2q0.6-0.7 1.5-0.7t1.5 0.7l3.4 3.4q0.6 0.6 0.6 1.5t-0.6 1.5z"}))))}}]),zt}(yt.a.PureComponent),En=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m31.7 16.4q0-0.6-0.4-1l-2.1-2.1q-0.4-0.4-1-0.4t-1 0.4l-9.1 9.1-5-5q-0.5-0.4-1-0.4t-1 0.4l-2.1 2q-0.4 0.4-0.4 1 0 0.6 0.4 1l8.1 8.1q0.4 0.4 1 0.4 0.6 0 1-0.4l12.2-12.1q0.4-0.4 0.4-1z m5.6 3.6q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),zt}(yt.a.PureComponent);function sn(Ut){return Ut||(Ut={}),{style:st(st({verticalAlign:"middle"},Ut),{},{color:Ut.color?Ut.color:"#000000",height:"1em",width:"1em"})}}var Dn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(Ht){var Dt;return lt(this,zt),(Dt=Zt.call(this,Ht)).copiedTimer=null,Dt.handleCopy=function(){var Qt=document.createElement("textarea"),ar=Dt.props,lr=ar.clickCallback,tr=ar.src,_r=ar.namespace;Qt.innerHTML=JSON.stringify(Dt.clipboardValue(tr),null," "),document.body.appendChild(Qt),Qt.select(),document.execCommand("copy"),document.body.removeChild(Qt),Dt.copiedTimer=setTimeout(function(){Dt.setState({copied:!1})},5500),Dt.setState({copied:!0},function(){typeof lr=="function"&&lr({src:tr,namespace:_r,name:_r[_r.length-1]})})},Dt.getClippyIcon=function(){var Qt=Dt.props.theme;return Dt.state.copied?yt.a.createElement("span",null,yt.a.createElement(xn,Object.assign({className:"copy-icon"},Rt(Qt,"copy-icon"))),yt.a.createElement("span",Rt(Qt,"copy-icon-copied"),"✔")):yt.a.createElement(xn,Object.assign({className:"copy-icon"},Rt(Qt,"copy-icon")))},Dt.clipboardValue=function(Qt){switch(Ct(Qt)){case"function":case"regexp":return Qt.toString();default:return Qt}},Dt.state={copied:!1},Dt}return ct(zt,[{key:"componentWillUnmount",value:function(){this.copiedTimer&&(clearTimeout(this.copiedTimer),this.copiedTimer=null)}},{key:"render",value:function(){var Ht=this.props,Dt=(Ht.src,Ht.theme),Qt=Ht.hidden,ar=Ht.rowHovered,lr=Rt(Dt,"copy-to-clipboard").style,tr="inline";return Qt&&(tr="none"),yt.a.createElement("span",{className:"copy-to-clipboard-container",title:"Copy to clipboard",style:{verticalAlign:"top",display:ar?"inline-block":"none"}},yt.a.createElement("span",{style:st(st({},lr),{},{display:tr}),onClick:this.handleCopy},this.getClippyIcon()))}}]),zt}(yt.a.PureComponent),Mn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(Ht){var Dt;return lt(this,zt),(Dt=Zt.call(this,Ht)).getEditIcon=function(){var Qt=Dt.props,ar=Qt.variable,lr=Qt.theme;return yt.a.createElement("div",{className:"click-to-edit",style:{verticalAlign:"top",display:Dt.state.hovered?"inline-block":"none"}},yt.a.createElement(zn,Object.assign({className:"click-to-edit-icon"},Rt(lr,"editVarIcon"),{onClick:function(){Dt.prepopInput(ar)}})))},Dt.prepopInput=function(Qt){if(Dt.props.onEdit!==!1){var ar=function(tr){var _r;switch(Ct(tr)){case"undefined":_r="undefined";break;case"nan":_r="NaN";break;case"string":_r=tr;break;case"date":case"function":case"regexp":_r=tr.toString();break;default:try{_r=JSON.stringify(tr,null," ")}catch{_r=""}}return _r}(Qt.value),lr=br(ar);Dt.setState({editMode:!0,editValue:ar,parsedInput:{type:lr.type,value:lr.value}})}},Dt.getRemoveIcon=function(){var Qt=Dt.props,ar=Qt.variable,lr=Qt.namespace,tr=Qt.theme,_r=Qt.rjvId;return yt.a.createElement("div",{className:"click-to-remove",style:{verticalAlign:"top",display:Dt.state.hovered?"inline-block":"none"}},yt.a.createElement(wn,Object.assign({className:"click-to-remove-icon"},Rt(tr,"removeVarIcon"),{onClick:function(){Tr.dispatch({name:"VARIABLE_REMOVED",rjvId:_r,data:{name:ar.name,namespace:lr,existing_value:ar.value,variable_removed:!0}})}})))},Dt.getValue=function(Qt,ar){var lr=!ar&&Qt.type,tr=vt(Dt).props;switch(lr){case!1:return Dt.getEditInput();case"string":return yt.a.createElement(Ar,Object.assign({value:Qt.value},tr));case"integer":return yt.a.createElement(nr,Object.assign({value:Qt.value},tr));case"float":return yt.a.createElement(Vt,Object.assign({value:Qt.value},tr));case"boolean":return yt.a.createElement(jt,Object.assign({value:Qt.value},tr));case"function":return yt.a.createElement(qt,Object.assign({value:Qt.value},tr));case"null":return yt.a.createElement(hr,tr);case"nan":return yt.a.createElement(ir,tr);case"undefined":return yt.a.createElement(Or,tr);case"date":return yt.a.createElement(Gt,Object.assign({value:Qt.value},tr));case"regexp":return yt.a.createElement(mr,Object.assign({value:Qt.value},tr));default:return yt.a.createElement("div",{className:"object-value"},JSON.stringify(Qt.value))}},Dt.getEditInput=function(){var Qt=Dt.props.theme,ar=Dt.state.editValue;return yt.a.createElement("div",null,yt.a.createElement(ur,Object.assign({type:"text",inputRef:function(lr){return lr&&lr.focus()},value:ar,className:"variable-editor",onChange:function(lr){var tr=lr.target.value,_r=br(tr);Dt.setState({editValue:tr,parsedInput:{type:_r.type,value:_r.value}})},onKeyDown:function(lr){switch(lr.key){case"Escape":Dt.setState({editMode:!1,editValue:""});break;case"Enter":(lr.ctrlKey||lr.metaKey)&&Dt.submitEdit(!0)}lr.stopPropagation()},placeholder:"update this value",minRows:2},Rt(Qt,"edit-input"))),yt.a.createElement("div",Rt(Qt,"edit-icon-container"),yt.a.createElement(wn,Object.assign({className:"edit-cancel"},Rt(Qt,"cancel-icon"),{onClick:function(){Dt.setState({editMode:!1,editValue:""})}})),yt.a.createElement(En,Object.assign({className:"edit-check string-value"},Rt(Qt,"check-icon"),{onClick:function(){Dt.submitEdit()}})),yt.a.createElement("div",null,Dt.showDetected())))},Dt.submitEdit=function(Qt){var ar=Dt.props,lr=ar.variable,tr=ar.namespace,_r=ar.rjvId,Br=Dt.state,un=Br.editValue,fn=Br.parsedInput,an=un;Qt&&fn.type&&(an=fn.value),Dt.setState({editMode:!1}),Tr.dispatch({name:"VARIABLE_UPDATED",rjvId:_r,data:{name:lr.name,namespace:tr,existing_value:lr.value,new_value:an,variable_removed:!1}})},Dt.showDetected=function(){var Qt=Dt.props,ar=Qt.theme,lr=(Qt.variable,Qt.namespace,Qt.rjvId,Dt.state.parsedInput),tr=(lr.type,lr.value,Dt.getDetectedInput());if(tr)return yt.a.createElement("div",null,yt.a.createElement("div",Rt(ar,"detected-row"),tr,yt.a.createElement(En,{className:"edit-check detected",style:st({verticalAlign:"top",paddingLeft:"3px"},Rt(ar,"check-icon").style),onClick:function(){Dt.submitEdit(!0)}})))},Dt.getDetectedInput=function(){var Qt=Dt.state.parsedInput,ar=Qt.type,lr=Qt.value,tr=vt(Dt).props,_r=tr.theme;if(ar!==!1)switch(ar.toLowerCase()){case"object":return yt.a.createElement("span",null,yt.a.createElement("span",{style:st(st({},Rt(_r,"brace").style),{},{cursor:"default"})},"{"),yt.a.createElement("span",{style:st(st({},Rt(_r,"ellipsis").style),{},{cursor:"default"})},"..."),yt.a.createElement("span",{style:st(st({},Rt(_r,"brace").style),{},{cursor:"default"})},"}"));case"array":return yt.a.createElement("span",null,yt.a.createElement("span",{style:st(st({},Rt(_r,"brace").style),{},{cursor:"default"})},"["),yt.a.createElement("span",{style:st(st({},Rt(_r,"ellipsis").style),{},{cursor:"default"})},"..."),yt.a.createElement("span",{style:st(st({},Rt(_r,"brace").style),{},{cursor:"default"})},"]"));case"string":return yt.a.createElement(Ar,Object.assign({value:lr},tr));case"integer":return yt.a.createElement(nr,Object.assign({value:lr},tr));case"float":return yt.a.createElement(Vt,Object.assign({value:lr},tr));case"boolean":return yt.a.createElement(jt,Object.assign({value:lr},tr));case"function":return yt.a.createElement(qt,Object.assign({value:lr},tr));case"null":return yt.a.createElement(hr,tr);case"nan":return yt.a.createElement(ir,tr);case"undefined":return yt.a.createElement(Or,tr);case"date":return yt.a.createElement(Gt,Object.assign({value:new Date(lr)},tr))}},Dt.state={editMode:!1,editValue:"",hovered:!1,renameKey:!1,parsedInput:{type:!1,value:null}},Dt}return ct(zt,[{key:"render",value:function(){var Ht=this,Dt=this.props,Qt=Dt.variable,ar=Dt.singleIndent,lr=Dt.type,tr=Dt.theme,_r=Dt.namespace,Br=Dt.indentWidth,un=Dt.enableClipboard,fn=Dt.onEdit,an=Dt.onDelete,tn=Dt.onSelect,_n=Dt.displayArrayKey,jn=Dt.quotesOnKeys,pn=this.state.editMode;return yt.a.createElement("div",Object.assign({},Rt(tr,"objectKeyVal",{paddingLeft:Br*ar}),{onMouseEnter:function(){return Ht.setState(st(st({},Ht.state),{},{hovered:!0}))},onMouseLeave:function(){return Ht.setState(st(st({},Ht.state),{},{hovered:!1}))},className:"variable-row",key:Qt.name}),lr=="array"?_n?yt.a.createElement("span",Object.assign({},Rt(tr,"array-key"),{key:Qt.name+"_"+_r}),Qt.name,yt.a.createElement("div",Rt(tr,"colon"),":")):null:yt.a.createElement("span",null,yt.a.createElement("span",Object.assign({},Rt(tr,"object-name"),{className:"object-key",key:Qt.name+"_"+_r}),!!jn&&yt.a.createElement("span",{style:{verticalAlign:"top"}},'"'),yt.a.createElement("span",{style:{display:"inline-block"}},Qt.name),!!jn&&yt.a.createElement("span",{style:{verticalAlign:"top"}},'"')),yt.a.createElement("span",Rt(tr,"colon"),":")),yt.a.createElement("div",Object.assign({className:"variable-value",onClick:tn===!1&&fn===!1?null:function(qn){var to=cr(_r);(qn.ctrlKey||qn.metaKey)&&fn!==!1?Ht.prepopInput(Qt):tn!==!1&&(to.shift(),tn(st(st({},Qt),{},{namespace:to})))}},Rt(tr,"variableValue",{cursor:tn===!1?"default":"pointer"})),this.getValue(Qt,pn)),un?yt.a.createElement(Dn,{rowHovered:this.state.hovered,hidden:pn,src:Qt.value,clickCallback:un,theme:tr,namespace:[].concat(cr(_r),[Qt.name])}):null,fn!==!1&&pn==0?this.getEditIcon():null,an!==!1&&pn==0?this.getRemoveIcon():null)}}]),zt}(yt.a.PureComponent),In=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){var Ht;lt(this,zt);for(var Dt=arguments.length,Qt=new Array(Dt),ar=0;ar0?un:null,namespace:Br.splice(0,Br.length-1),existing_value:fn,variable_removed:!1,key_name:null};Ct(fn)==="object"?Tr.dispatch({name:"ADD_VARIABLE_KEY_REQUEST",rjvId:an,data:_n}):Tr.dispatch({name:"VARIABLE_ADDED",rjvId:an,data:st(st({},_n),{},{new_value:[].concat(cr(fn),[null])})})}})))},Ht.getRemoveObject=function(lr){var tr=Ht.props,_r=tr.theme,Br=(tr.hover,tr.namespace),un=tr.name,fn=tr.src,an=tr.rjvId;if(Br.length!==1)return yt.a.createElement("span",{className:"click-to-remove",style:{display:lr?"inline-block":"none"}},yt.a.createElement(wn,Object.assign({className:"click-to-remove-icon"},Rt(_r,"removeVarIcon"),{onClick:function(){Tr.dispatch({name:"VARIABLE_REMOVED",rjvId:an,data:{name:un,namespace:Br.splice(0,Br.length-1),existing_value:fn,variable_removed:!0}})}})))},Ht.render=function(){var lr=Ht.props,tr=lr.theme,_r=lr.onDelete,Br=lr.onAdd,un=lr.enableClipboard,fn=lr.src,an=lr.namespace,tn=lr.rowHovered;return yt.a.createElement("div",Object.assign({},Rt(tr,"object-meta-data"),{className:"object-meta-data",onClick:function(_n){_n.stopPropagation()}}),Ht.getObjectSize(),un?yt.a.createElement(Dn,{rowHovered:tn,clickCallback:un,src:fn,theme:tr,namespace:an}):null,Br!==!1?Ht.getAddAttribute(tn):null,_r!==!1?Ht.getRemoveObject(tn):null)},Ht}return zt}(yt.a.PureComponent);function Cn(Ut){var Zt=Ut.parent_type,zt=Ut.namespace,Ht=Ut.quotesOnKeys,Dt=Ut.theme,Qt=Ut.jsvRoot,ar=Ut.name,lr=Ut.displayArrayKey,tr=Ut.name?Ut.name:"";return!Qt||ar!==!1&&ar!==null?Zt=="array"?lr?yt.a.createElement("span",Object.assign({},Rt(Dt,"array-key"),{key:zt}),yt.a.createElement("span",{className:"array-key"},tr),yt.a.createElement("span",Rt(Dt,"colon"),":")):yt.a.createElement("span",null):yt.a.createElement("span",Object.assign({},Rt(Dt,"object-name"),{key:zt}),yt.a.createElement("span",{className:"object-key"},Ht&&yt.a.createElement("span",{style:{verticalAlign:"top"}},'"'),yt.a.createElement("span",null,tr),Ht&&yt.a.createElement("span",{style:{verticalAlign:"top"}},'"')),yt.a.createElement("span",Rt(Dt,"colon"),":")):yt.a.createElement("span",null)}function cn(Ut){var Zt=Ut.theme;switch(Ut.iconStyle){case"triangle":return yt.a.createElement(Qr,Object.assign({},Rt(Zt,"expanded-icon"),{className:"expanded-icon"}));case"square":return yt.a.createElement(Lr,Object.assign({},Rt(Zt,"expanded-icon"),{className:"expanded-icon"}));default:return yt.a.createElement(yr,Object.assign({},Rt(Zt,"expanded-icon"),{className:"expanded-icon"}))}}function Ur(Ut){var Zt=Ut.theme;switch(Ut.iconStyle){case"triangle":return yt.a.createElement(qr,Object.assign({},Rt(Zt,"collapsed-icon"),{className:"collapsed-icon"}));case"square":return yt.a.createElement(Xr,Object.assign({},Rt(Zt,"collapsed-icon"),{className:"collapsed-icon"}));default:return yt.a.createElement(Cr,Object.assign({},Rt(Zt,"collapsed-icon"),{className:"collapsed-icon"}))}}var Fr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(Ht){var Dt;return lt(this,zt),(Dt=Zt.call(this,Ht)).toggleCollapsed=function(Qt){var ar=[];for(var lr in Dt.state.expanded)ar.push(Dt.state.expanded[lr]);ar[Qt]=!ar[Qt],Dt.setState({expanded:ar})},Dt.state={expanded:[]},Dt}return ct(zt,[{key:"getExpandedIcon",value:function(Ht){var Dt=this.props,Qt=Dt.theme,ar=Dt.iconStyle;return this.state.expanded[Ht]?yt.a.createElement(cn,{theme:Qt,iconStyle:ar}):yt.a.createElement(Ur,{theme:Qt,iconStyle:ar})}},{key:"render",value:function(){var Ht=this,Dt=this.props,Qt=Dt.src,ar=Dt.groupArraysAfterLength,lr=(Dt.depth,Dt.name),tr=Dt.theme,_r=Dt.jsvRoot,Br=Dt.namespace,un=(Dt.parent_type,wt(Dt,["src","groupArraysAfterLength","depth","name","theme","jsvRoot","namespace","parent_type"])),fn=0,an=5*this.props.indentWidth;_r||(fn=5*this.props.indentWidth);var tn=ar,_n=Math.ceil(Qt.length/tn);return yt.a.createElement("div",Object.assign({className:"object-key-val"},Rt(tr,_r?"jsv-root":"objectKeyVal",{paddingLeft:fn})),yt.a.createElement(Cn,this.props),yt.a.createElement("span",null,yt.a.createElement(In,Object.assign({size:Qt.length},this.props))),cr(Array(_n)).map(function(jn,pn){return yt.a.createElement("div",Object.assign({key:pn,className:"object-key-val array-group"},Rt(tr,"objectKeyVal",{marginLeft:6,paddingLeft:an})),yt.a.createElement("span",Rt(tr,"brace-row"),yt.a.createElement("div",Object.assign({className:"icon-container"},Rt(tr,"icon-container"),{onClick:function(qn){Ht.toggleCollapsed(pn)}}),Ht.getExpandedIcon(pn)),Ht.state.expanded[pn]?yt.a.createElement(Pn,Object.assign({key:lr+pn,depth:0,name:!1,collapsed:!1,groupArraysAfterLength:tn,index_offset:pn*tn,src:Qt.slice(pn*tn,pn*tn+tn),namespace:Br,type:"array",parent_type:"array_group",theme:tr},un)):yt.a.createElement("span",Object.assign({},Rt(tr,"brace"),{onClick:function(qn){Ht.toggleCollapsed(pn)},className:"array-group-brace"}),"[",yt.a.createElement("div",Object.assign({},Rt(tr,"array-group-meta-data"),{className:"array-group-meta-data"}),yt.a.createElement("span",Object.assign({className:"object-size"},Rt(tr,"object-size")),pn*tn," - ",pn*tn+tn>Qt.length?Qt.length:pn*tn+tn)),"]")))}))}}]),zt}(yt.a.PureComponent),Hn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(Ht){var Dt;lt(this,zt),(Dt=Zt.call(this,Ht)).toggleCollapsed=function(){Dt.setState({expanded:!Dt.state.expanded},function(){Er.set(Dt.props.rjvId,Dt.props.namespace,"expanded",Dt.state.expanded)})},Dt.getObjectContent=function(ar,lr,tr){return yt.a.createElement("div",{className:"pushed-content object-container"},yt.a.createElement("div",Object.assign({className:"object-content"},Rt(Dt.props.theme,"pushed-content")),Dt.renderObjectContents(lr,tr)))},Dt.getEllipsis=function(){return Dt.state.size===0?null:yt.a.createElement("div",Object.assign({},Rt(Dt.props.theme,"ellipsis"),{className:"node-ellipsis",onClick:Dt.toggleCollapsed}),"...")},Dt.getObjectMetaData=function(ar){var lr=Dt.props,tr=(lr.rjvId,lr.theme,Dt.state),_r=tr.size,Br=tr.hovered;return yt.a.createElement(In,Object.assign({rowHovered:Br,size:_r},Dt.props))},Dt.renderObjectContents=function(ar,lr){var tr,_r=Dt.props,Br=_r.depth,un=_r.parent_type,fn=_r.index_offset,an=_r.groupArraysAfterLength,tn=_r.namespace,_n=Dt.state.object_type,jn=[],pn=Object.keys(ar||{});return Dt.props.sortKeys&&_n!=="array"&&(pn=pn.sort()),pn.forEach(function(qn){if(tr=new ro(qn,ar[qn]),un==="array_group"&&fn&&(tr.name=parseInt(tr.name)+fn),ar.hasOwnProperty(qn))if(tr.type==="object")jn.push(yt.a.createElement(Pn,Object.assign({key:tr.name,depth:Br+1,name:tr.name,src:tr.value,namespace:tn.concat(tr.name),parent_type:_n},lr)));else if(tr.type==="array"){var to=Pn;an&&tr.value.length>an&&(to=Fr),jn.push(yt.a.createElement(to,Object.assign({key:tr.name,depth:Br+1,name:tr.name,src:tr.value,namespace:tn.concat(tr.name),type:"array",parent_type:_n},lr)))}else jn.push(yt.a.createElement(Mn,Object.assign({key:tr.name+"_"+tn,variable:tr,singleIndent:5,namespace:tn,type:Dt.props.type},lr)))}),jn};var Qt=zt.getState(Ht);return Dt.state=st(st({},Qt),{},{prevProps:{}}),Dt}return ct(zt,[{key:"getBraceStart",value:function(Ht,Dt){var Qt=this,ar=this.props,lr=ar.src,tr=ar.theme,_r=ar.iconStyle;if(ar.parent_type==="array_group")return yt.a.createElement("span",null,yt.a.createElement("span",Rt(tr,"brace"),Ht==="array"?"[":"{"),Dt?this.getObjectMetaData(lr):null);var Br=Dt?cn:Ur;return yt.a.createElement("span",null,yt.a.createElement("span",Object.assign({onClick:function(un){Qt.toggleCollapsed()}},Rt(tr,"brace-row")),yt.a.createElement("div",Object.assign({className:"icon-container"},Rt(tr,"icon-container")),yt.a.createElement(Br,{theme:tr,iconStyle:_r})),yt.a.createElement(Cn,this.props),yt.a.createElement("span",Rt(tr,"brace"),Ht==="array"?"[":"{")),Dt?this.getObjectMetaData(lr):null)}},{key:"render",value:function(){var Ht=this,Dt=this.props,Qt=Dt.depth,ar=Dt.src,lr=(Dt.namespace,Dt.name,Dt.type,Dt.parent_type),tr=Dt.theme,_r=Dt.jsvRoot,Br=Dt.iconStyle,un=wt(Dt,["depth","src","namespace","name","type","parent_type","theme","jsvRoot","iconStyle"]),fn=this.state,an=fn.object_type,tn=fn.expanded,_n={};return _r||lr==="array_group"?lr==="array_group"&&(_n.borderLeft=0,_n.display="inline"):_n.paddingLeft=5*this.props.indentWidth,yt.a.createElement("div",Object.assign({className:"object-key-val",onMouseEnter:function(){return Ht.setState(st(st({},Ht.state),{},{hovered:!0}))},onMouseLeave:function(){return Ht.setState(st(st({},Ht.state),{},{hovered:!1}))}},Rt(tr,_r?"jsv-root":"objectKeyVal",_n)),this.getBraceStart(an,tn),tn?this.getObjectContent(Qt,ar,st({theme:tr,iconStyle:Br},un)):this.getEllipsis(),yt.a.createElement("span",{className:"brace-row"},yt.a.createElement("span",{style:st(st({},Rt(tr,"brace").style),{},{paddingLeft:tn?"3px":"0px"})},an==="array"?"]":"}"),tn?null:this.getObjectMetaData(ar)))}}],[{key:"getDerivedStateFromProps",value:function(Ht,Dt){var Qt=Dt.prevProps;return Ht.src!==Qt.src||Ht.collapsed!==Qt.collapsed||Ht.name!==Qt.name||Ht.namespace!==Qt.namespace||Ht.rjvId!==Qt.rjvId?st(st({},zt.getState(Ht)),{},{prevProps:Ht}):null}}]),zt}(yt.a.PureComponent);Hn.getState=function(Ut){var Zt=Object.keys(Ut.src).length,zt=(Ut.collapsed===!1||Ut.collapsed!==!0&&Ut.collapsed>Ut.depth)&&(!Ut.shouldCollapse||Ut.shouldCollapse({name:Ut.name,src:Ut.src,type:Ct(Ut.src),namespace:Ut.namespace})===!1)&&Zt!==0;return{expanded:Er.get(Ut.rjvId,Ut.namespace,"expanded",zt),object_type:Ut.type==="array"?"array":"object",parent_type:Ut.type==="array"?"array":"object",size:Zt,hovered:!1}};var ro=function Ut(Zt,zt){lt(this,Ut),this.name=Zt,this.value=zt,this.type=Ct(zt)};At(Hn);var Pn=Hn,jo=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){var Ht;lt(this,zt);for(var Dt=arguments.length,Qt=new Array(Dt),ar=0;arlr.groupArraysAfterLength&&(_r=Fr),yt.a.createElement("div",{className:"pretty-json-container object-container"},yt.a.createElement("div",{className:"object-content"},yt.a.createElement(_r,Object.assign({namespace:tr,depth:0,jsvRoot:!0},lr))))},Ht}return zt}(yt.a.PureComponent),vo=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(Ht){var Dt;return lt(this,zt),(Dt=Zt.call(this,Ht)).closeModal=function(){Tr.dispatch({rjvId:Dt.props.rjvId,name:"RESET"})},Dt.submit=function(){Dt.props.submit(Dt.state.input)},Dt.state={input:Ht.input?Ht.input:""},Dt}return ct(zt,[{key:"render",value:function(){var Ht=this,Dt=this.props,Qt=Dt.theme,ar=Dt.rjvId,lr=Dt.isValid,tr=this.state.input,_r=lr(tr);return yt.a.createElement("div",Object.assign({className:"key-modal-request"},Rt(Qt,"key-modal-request"),{onClick:this.closeModal}),yt.a.createElement("div",Object.assign({},Rt(Qt,"key-modal"),{onClick:function(Br){Br.stopPropagation()}}),yt.a.createElement("div",Rt(Qt,"key-modal-label"),"Key Name:"),yt.a.createElement("div",{style:{position:"relative"}},yt.a.createElement("input",Object.assign({},Rt(Qt,"key-modal-input"),{className:"key-modal-input",ref:function(Br){return Br&&Br.focus()},spellCheck:!1,value:tr,placeholder:"...",onChange:function(Br){Ht.setState({input:Br.target.value})},onKeyPress:function(Br){_r&&Br.key==="Enter"?Ht.submit():Br.key==="Escape"&&Ht.closeModal()}})),_r?yt.a.createElement(En,Object.assign({},Rt(Qt,"key-modal-submit"),{className:"key-modal-submit",onClick:function(Br){return Ht.submit()}})):null),yt.a.createElement("span",Rt(Qt,"key-modal-cancel"),yt.a.createElement(Ln,Object.assign({},Rt(Qt,"key-modal-cancel-icon"),{className:"key-modal-cancel",onClick:function(){Tr.dispatch({rjvId:ar,name:"RESET"})}})))))}}]),zt}(yt.a.PureComponent),eo=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){var Ht;lt(this,zt);for(var Dt=arguments.length,Qt=new Array(Dt),ar=0;ar=0)&&(et[rt]=j[rt]);return et}function _objectWithoutProperties$g(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$g(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _slicedToArray$d(j,_e){return _arrayWithHoles$e(j)||_iterableToArrayLimit$d(j,_e)||_unsupportedIterableToArray$l(j,_e)||_nonIterableRest$e()}function _arrayWithHoles$e(j){if(Array.isArray(j))return j}function _iterableToArrayLimit$d(j,_e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(j)))){var et=[],tt=!0,rt=!1,nt=void 0;try{for(var ot=j[Symbol.iterator](),it;!(tt=(it=ot.next()).done)&&(et.push(it.value),!(_e&&et.length===_e));tt=!0);}catch(st){rt=!0,nt=st}finally{try{!tt&&ot.return!=null&&ot.return()}finally{if(rt)throw nt}}return et}}function _unsupportedIterableToArray$l(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$l(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$l(j,_e)}}function _arrayLikeToArray$l(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _nonIterableRest$e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _defineProperty$B(j,_e,et){return _e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function ownKeys$D(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread2(j){for(var _e=1;_e=j.length?j.apply(this,rt):function(){for(var ot=arguments.length,it=new Array(ot),st=0;st1&&arguments[1]!==void 0?arguments[1]:{};validators$1.initial(j),validators$1.handler(_e);var et={current:j},tt=curry$2(didStateUpdate)(et,_e),rt=curry$2(updateState)(et),nt=curry$2(validators$1.changes)(j),ot=curry$2(extractChanges)(et);function it(){var lt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(ut){return ut};return validators$1.selector(lt),lt(et.current)}function st(lt){compose$2(tt,rt,nt,ot)(lt)}return[it,st]}function extractChanges(j,_e){return isFunction(_e)?_e(j.current):_e}function updateState(j,_e){return j.current=_objectSpread2(_objectSpread2({},j.current),_e),_e}function didStateUpdate(j,_e,et){return isFunction(_e)?_e(j.current):Object.keys(et).forEach(function(tt){var rt;return(rt=_e[tt])===null||rt===void 0?void 0:rt.call(_e,j.current[tt])}),et}var index={create:create$3},config$2={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}};function curry$1(j){return function _e(){for(var et=this,tt=arguments.length,rt=new Array(tt),nt=0;nt=j.length?j.apply(this,rt):function(){for(var ot=arguments.length,it=new Array(ot),st=0;st{tt.current=!1}:j,_e)}var l$4=he$1;function D$3(){}function h$6(j,_e,et,tt){return De(j,tt)||be$1(j,_e,et,tt)}function De(j,_e){return j.editor.getModel(te$1(j,_e))}function be$1(j,_e,et,tt){return j.editor.createModel(_e,et,tt?te$1(j,tt):void 0)}function te$1(j,_e){return j.Uri.parse(_e)}function Oe$1({original:j,modified:_e,language:et,originalLanguage:tt,modifiedLanguage:rt,originalModelPath:nt,modifiedModelPath:ot,keepCurrentOriginalModel:it=!1,keepCurrentModifiedModel:st=!1,theme:lt="light",loading:ut="Loading...",options:ct={},height:dt="100%",width:ft="100%",className:pt,wrapperProps:gt={},beforeMount:vt=D$3,onMount:bt=D$3}){let[_t,xt]=reactExports.useState(!1),[yt,Et]=reactExports.useState(!0),St=reactExports.useRef(null),$t=reactExports.useRef(null),At=reactExports.useRef(null),wt=reactExports.useRef(bt),Ct=reactExports.useRef(vt),It=reactExports.useRef(!1);k$5(()=>{let Mt=loader.init();return Mt.then(Rt=>($t.current=Rt)&&Et(!1)).catch(Rt=>(Rt==null?void 0:Rt.type)!=="cancelation"&&console.error("Monaco initialization: error:",Rt)),()=>St.current?Pt():Mt.cancel()}),l$4(()=>{if(St.current&&$t.current){let Mt=St.current.getOriginalEditor(),Rt=h$6($t.current,j||"",tt||et||"text",nt||"");Rt!==Mt.getModel()&&Mt.setModel(Rt)}},[nt],_t),l$4(()=>{if(St.current&&$t.current){let Mt=St.current.getModifiedEditor(),Rt=h$6($t.current,_e||"",rt||et||"text",ot||"");Rt!==Mt.getModel()&&Mt.setModel(Rt)}},[ot],_t),l$4(()=>{let Mt=St.current.getModifiedEditor();Mt.getOption($t.current.editor.EditorOption.readOnly)?Mt.setValue(_e||""):_e!==Mt.getValue()&&(Mt.executeEdits("",[{range:Mt.getModel().getFullModelRange(),text:_e||"",forceMoveMarkers:!0}]),Mt.pushUndoStop())},[_e],_t),l$4(()=>{var Mt,Rt;(Rt=(Mt=St.current)==null?void 0:Mt.getModel())==null||Rt.original.setValue(j||"")},[j],_t),l$4(()=>{let{original:Mt,modified:Rt}=St.current.getModel();$t.current.editor.setModelLanguage(Mt,tt||et||"text"),$t.current.editor.setModelLanguage(Rt,rt||et||"text")},[et,tt,rt],_t),l$4(()=>{var Mt;(Mt=$t.current)==null||Mt.editor.setTheme(lt)},[lt],_t),l$4(()=>{var Mt;(Mt=St.current)==null||Mt.updateOptions(ct)},[ct],_t);let Ot=reactExports.useCallback(()=>{var Lt;if(!$t.current)return;Ct.current($t.current);let Mt=h$6($t.current,j||"",tt||et||"text",nt||""),Rt=h$6($t.current,_e||"",rt||et||"text",ot||"");(Lt=St.current)==null||Lt.setModel({original:Mt,modified:Rt})},[et,_e,rt,j,tt,nt,ot]),Nt=reactExports.useCallback(()=>{var Mt;!It.current&&At.current&&(St.current=$t.current.editor.createDiffEditor(At.current,{automaticLayout:!0,...ct}),Ot(),(Mt=$t.current)==null||Mt.editor.setTheme(lt),xt(!0),It.current=!0)},[ct,lt,Ot]);reactExports.useEffect(()=>{_t&&wt.current(St.current,$t.current)},[_t]),reactExports.useEffect(()=>{!yt&&!_t&&Nt()},[yt,_t,Nt]);function Pt(){var Rt,Lt,jt,Gt;let Mt=(Rt=St.current)==null?void 0:Rt.getModel();it||((Lt=Mt==null?void 0:Mt.original)==null||Lt.dispose()),st||((jt=Mt==null?void 0:Mt.modified)==null||jt.dispose()),(Gt=St.current)==null||Gt.dispose()}return React.createElement(H$3,{width:ft,height:dt,isEditorReady:_t,loading:ut,_ref:At,className:pt,wrapperProps:gt})}var ie$1=Oe$1;reactExports.memo(ie$1);function He$1(j){let _e=reactExports.useRef();return reactExports.useEffect(()=>{_e.current=j},[j]),_e.current}var se$1=He$1,_=new Map;function Ve$1({defaultValue:j,defaultLanguage:_e,defaultPath:et,value:tt,language:rt,path:nt,theme:ot="light",line:it,loading:st="Loading...",options:lt={},overrideServices:ut={},saveViewState:ct=!0,keepCurrentModel:dt=!1,width:ft="100%",height:pt="100%",className:gt,wrapperProps:vt={},beforeMount:bt=D$3,onMount:_t=D$3,onChange:xt,onValidate:yt=D$3}){let[Et,St]=reactExports.useState(!1),[$t,At]=reactExports.useState(!0),wt=reactExports.useRef(null),Ct=reactExports.useRef(null),It=reactExports.useRef(null),Ot=reactExports.useRef(_t),Nt=reactExports.useRef(bt),Pt=reactExports.useRef(),Mt=reactExports.useRef(tt),Rt=se$1(nt),Lt=reactExports.useRef(!1),jt=reactExports.useRef(!1);k$5(()=>{let Yt=loader.init();return Yt.then(Xt=>(wt.current=Xt)&&At(!1)).catch(Xt=>(Xt==null?void 0:Xt.type)!=="cancelation"&&console.error("Monaco initialization: error:",Xt)),()=>Ct.current?Vt():Yt.cancel()}),l$4(()=>{var Xt,rr,cr,vr;let Yt=h$6(wt.current,j||tt||"",_e||rt||"",nt||et||"");Yt!==((Xt=Ct.current)==null?void 0:Xt.getModel())&&(ct&&_.set(Rt,(rr=Ct.current)==null?void 0:rr.saveViewState()),(cr=Ct.current)==null||cr.setModel(Yt),ct&&((vr=Ct.current)==null||vr.restoreViewState(_.get(nt))))},[nt],Et),l$4(()=>{var Yt;(Yt=Ct.current)==null||Yt.updateOptions(lt)},[lt],Et),l$4(()=>{!Ct.current||tt===void 0||(Ct.current.getOption(wt.current.editor.EditorOption.readOnly)?Ct.current.setValue(tt):tt!==Ct.current.getValue()&&(jt.current=!0,Ct.current.executeEdits("",[{range:Ct.current.getModel().getFullModelRange(),text:tt,forceMoveMarkers:!0}]),Ct.current.pushUndoStop(),jt.current=!1))},[tt],Et),l$4(()=>{var Xt,rr;let Yt=(Xt=Ct.current)==null?void 0:Xt.getModel();Yt&&rt&&((rr=wt.current)==null||rr.editor.setModelLanguage(Yt,rt))},[rt],Et),l$4(()=>{var Yt;it!==void 0&&((Yt=Ct.current)==null||Yt.revealLine(it))},[it],Et),l$4(()=>{var Yt;(Yt=wt.current)==null||Yt.editor.setTheme(ot)},[ot],Et);let Gt=reactExports.useCallback(()=>{var Yt;if(!(!It.current||!wt.current)&&!Lt.current){Nt.current(wt.current);let Xt=nt||et,rr=h$6(wt.current,tt||j||"",_e||rt||"",Xt||"");Ct.current=(Yt=wt.current)==null?void 0:Yt.editor.create(It.current,{model:rr,automaticLayout:!0,...lt},ut),ct&&Ct.current.restoreViewState(_.get(Xt)),wt.current.editor.setTheme(ot),it!==void 0&&Ct.current.revealLine(it),St(!0),Lt.current=!0}},[j,_e,et,tt,rt,nt,lt,ut,ct,ot,it]);reactExports.useEffect(()=>{Et&&Ot.current(Ct.current,wt.current)},[Et]),reactExports.useEffect(()=>{!$t&&!Et&&Gt()},[$t,Et,Gt]),Mt.current=tt,reactExports.useEffect(()=>{var Yt,Xt;Et&&xt&&((Yt=Pt.current)==null||Yt.dispose(),Pt.current=(Xt=Ct.current)==null?void 0:Xt.onDidChangeModelContent(rr=>{jt.current||xt(Ct.current.getValue(),rr)}))},[Et,xt]),reactExports.useEffect(()=>{if(Et){let Yt=wt.current.editor.onDidChangeMarkers(Xt=>{var cr;let rr=(cr=Ct.current.getModel())==null?void 0:cr.uri;if(rr&&Xt.find(vr=>vr.path===rr.path)){let vr=wt.current.editor.getModelMarkers({resource:rr});yt==null||yt(vr)}});return()=>{Yt==null||Yt.dispose()}}return()=>{}},[Et,yt]);function Vt(){var Yt,Xt;(Yt=Pt.current)==null||Yt.dispose(),dt?ct&&_.set(nt,Ct.current.saveViewState()):(Xt=Ct.current.getModel())==null||Xt.dispose(),Ct.current.dispose()}return React.createElement(H$3,{width:ft,height:pt,isEditorReady:Et,loading:st,_ref:It,className:gt,wrapperProps:vt})}var fe$1=Ve$1,de$1=reactExports.memo(fe$1),Ft=de$1;const JinjaSyntaxHighlighter=({value:j,theme:_e})=>jsxRuntimeExports.jsx(Ft,{value:j,theme:_e,options:{readOnly:!0,minimap:{enabled:!1}},defaultLanguage:"jinja2",onMount:(et,tt)=>{tt.languages.register({id:"jinja2"}),tt.languages.setLanguageConfiguration("jinja2",{comments:{blockComment:["{#","#}"]},brackets:[["{#","#}"],["{%","%}"],["{{","}}"],["{","}"]],folding:{markers:{start:/\{%\s*(block|for|if)/,end:/\{%\s*end(block|for|if)/}}}),tt.languages.setMonarchTokensProvider("jinja2",{tokenizer:{root:[[/\{\{/,"delimiter"],[/\}\}/,"delimiter"],[/\{#/,"comment"],[/#\}/,"comment"],[/\{%/,"control"],[/%\}/,"control"],[/\b(if|else|elif|endif|for|endfor|set|extends|include|block|endblock|macro|endmacro)\b/,"keyword"],[/\b(length|list|lower|upper|trim|truncate|replace|round|urlencode|urlize)\b/,"filter"],[/\b(\+|-|\*|\/|%|\*\*|\/\/)\b/,"operator"],[/\b(\d+|\d*\.\d+)\b/,"number"],[/(^user:|^# user:|^system:|^# system:|^assistant:|^# assistant:)/,"keyword"]]}})}}),locStringsInjectionToken=createInjectionToken("locStrings",{}),useLocStrings=()=>{const[j]=useInjected(locStringsInjectionToken);return j},StreamSwitcher=({isStreaming:j,style:_e,onIsStreamingChange:et,labelName:tt})=>{const rt=useLocStrings();return jsxRuntimeExports.jsx(Switch,{label:tt||rt.Streaming,labelPosition:"before",checked:j,onChange:(nt,ot)=>et(ot.checked),style:_e})},safeJSONParse=j=>{try{return JSON.parse(j)}catch{return j}},timeFormat$1=j=>(j&&!j.endsWith("Z")&&(j+="Z"),j?new Date(j).toLocaleString([],{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"--"),parseSpanOutput=j=>{var et;const _e=(et=j==null?void 0:j.attributes)==null?void 0:et.output;if(typeof _e=="string")try{const tt=JSON.parse(_e);if(typeof tt.usage=="string")try{tt.usage=JSON.parse(tt.usage)}catch{tt.usage={}}return tt}catch{return _e}return _e},parseHttpSpanAttributes=j=>{var tt;const _e=j==null?void 0:j.attributes;if(!_e||((tt=_e.span_type)==null?void 0:tt.toLowerCase())!=="http")return;const et={response:{headers:{}},request:{headers:{}}};return Object.entries(_e).forEach(([rt,nt])=>{const ot=rt.toLowerCase();if(ot==="url.full"){et.urlFull=nt;return}const[it,st,lt,...ut]=ot.split(".");if(it==="http")switch(st){case"request":lt==="header"?et.request.headers[ut.join(".")]=nt:et.request[[lt,...ut].join(".")]=nt;break;case"response":lt==="header"?et.response.headers[ut.join(".")]=nt:et.response[[lt,...ut].join(".")]=nt;break;case"status_code":et.status_code=nt;break;case"method":et.method=nt;break;default:et[rt.substring(5)]=nt}}),et},convertToTraceListRow=j=>{var et,tt,rt;const _e=j.end_time&&j.start_time?Date.parse(j.end_time)-Date.parse(j.start_time):0;return{...j,latency:_e,total_tokens:((et=j==null?void 0:j.cumulative_token_count)==null?void 0:et.total)??0,prompt_tokens:(tt=j==null?void 0:j.cumulative_token_count)==null?void 0:tt.prompt,completion_tokens:(rt=j==null?void 0:j.cumulative_token_count)==null?void 0:rt.completion}};var _a;const initialTableColumnNames={normalColumns:[],evaluationColumns:[]};var ViewStatus=(j=>(j.loading="loading",j.loaded="loaded",j.error="error",j.hidden="hidden",j))(ViewStatus||{});const Xp=class Xp{constructor(_e){this.selectedSpanId$=new State$1(void 0),this.selectedTraceId$=new State$1(void 0),this.spans$=new ObservableMap,this.traces$=new ObservableOrderedMap,this.tableColumnNames$=new State$1(initialTableColumnNames),this.tableHiddenColumnKeys$=new State$1([]),this.isTraceDetailOpen$=new State$1(!1),this.isGanttChartOpen$=new State$1(!1),this.traceListStatus$=new State$1("loading"),this.traceDetailStatus$=new State$1("loading"),this.traceListShowMetrics$=new State$1(!0),this.messagesBySpanId$=new ObservableOrderedMap,this.sortColumn$=new State$1(void 0),this.sortableColumns=[];const{traceListConfig:et}=_e||{};et&&(this.traceListColumnModifier=et.columnModifier,et.showMetrics!==void 0&&this.traceListShowMetrics$.setState(et.showMetrics),et.defaultHiddenColumnKeys!==void 0&&this.tableHiddenColumnKeys$.setState(et.defaultHiddenColumnKeys),et.sortableColumns&&(this.sortableColumns=et.sortableColumns)),this.selectedTrace$=Computed$1.fromStates([this.selectedTraceId$,this.traces$],([tt,rt])=>tt&&rt.get(tt)||void 0),this.selectedTraceId$.subscribe(tt=>{var nt;if(!tt)return;const rt=this.traces$.get(tt);(nt=this._traceDetailDidOpenCallback)==null||nt.call(this,tt,rt)}),this.isTraceDetailOpen$.subscribe(tt=>{var ot;const rt=this.selectedTraceId$.getSnapshot(),nt=this.selectedTrace$.getSnapshot();!tt&&rt&&((ot=this._traceDetailDidCloseCallback)==null||ot.call(this,rt,nt),this.traceDetailStatus$.setState("hidden"),this.selectedTraceId$.next(void 0))})}traceDetailDidOpen(_e){this._traceDetailDidOpenCallback=_e}traceDetailDidClose(_e){this._traceDetailDidCloseCallback=_e}traceListSortColumnDidChange(_e){this.sortColumn$.subscribe(et=>{_e(et)})}refreshSpans(){var tt;const _e=this.selectedTraceId$.getSnapshot(),et=this.selectedTrace$.getSnapshot();_e&&((tt=this._refreshSpansCallback)==null||tt.call(this,_e,et))}onRefreshSpans(_e){this._refreshSpansCallback=_e}setOnRefreshTraces(_e){this._refreshTracesCallback=_e}refreshTraces(){var _e;(_e=this._refreshTracesCallback)==null||_e.call(this)}clear(){this.traces$.clear(),this.spans$.clear()}appendTraces(_e,et){_e.forEach(tt=>{tt.trace_id!==void 0&&(et?this.traces$.set(tt.trace_id,tt).sortByValue(et):this.traces$.set(tt.trace_id,tt))})}appendSpans(_e){_e.forEach(et=>{var ot,it;const tt=(ot=et==null?void 0:et.context)==null?void 0:ot.trace_id,rt=(it=et==null?void 0:et.context)==null?void 0:it.span_id;if(!tt||!rt)return;const nt=this.spans$.get(tt)||new ObservableOrderedMap;this.spans$.set(tt,nt.set(rt,et))})}toggleIsGanttChartOpen(){this.isGanttChartOpen$.setState(!this.isGanttChartOpen$.getSnapshot())}getTraceById(_e){return _e?this.traces$.get(_e):void 0}setTraceListStatus(_e){this.traceListStatus$.setState(_e)}setTraceDetailStatus(_e){this.traceDetailStatus$.setState(_e)}setTraceDetailOpen(_e,et){this.isTraceDetailOpen$.setState(_e),this.selectedTraceId$.setState(_e?et:void 0)}sortTraces(_e){this.traces$.sortByValue(_e)}};_a=SINGLETON,Xp[_a]=!0;let TraceViewModel=Xp;const TraceViewModelToken=createInjectionToken("TraceViewModel",new TraceViewModel),useTraceViewModel=()=>{const[j]=useInjected(TraceViewModelToken);return j},useSelectedSpanId=()=>{const j=useTraceViewModel();return useState(j.selectedSpanId$)},useSelectedSpan=()=>{var tt;const j=useTraceViewModel(),_e=useSelectedSpanId(),et=useSelectedTraceId();if(!(!_e||!et))return(tt=j.spans$.get(et))==null?void 0:tt.get(_e)},useParentSpanOfSelectedSpan=()=>{var tt;const j=useTraceViewModel(),_e=useSelectedTraceId(),et=useSelectedSpan();if(!(!et||!_e||!et.parent_id))return(tt=j.spans$.get(_e))==null?void 0:tt.get(et.parent_id)},useSetSelectedSpanId=()=>useSetState(useTraceViewModel().selectedSpanId$),useSelectedTraceId=()=>useState(useTraceViewModel().selectedTraceId$),useSetSelectedTraceId=()=>useSetState(useTraceViewModel().selectedTraceId$),useSelectedTrace=()=>{const j=useTraceViewModel(),_e=useSelectedTraceId();return _e?j.traces$.value.find(et=>et.trace_id===_e):void 0},useSpansOfSelectedTrace=()=>{const j=useTraceViewModel(),_e=useSelectedTraceId(),et=useState(j.spans$.get(_e??"")??new ObservableOrderedMap);return Array.from(et.values())},useTraces=()=>Array.from(useState(useTraceViewModel().traces$).values()),useParseTraceOutput=j=>reactExports.useMemo(()=>parseSpanOutput(j),[j]),useEvaluationSpansOfSelectedSpan=()=>{const j=useTraceViewModel(),_e=[],et=useSelectedTrace();return et?(Object.keys(et.evaluations??[]).forEach(tt=>{var nt,ot;const rt=(nt=et==null?void 0:et.evaluations)==null?void 0:nt[tt];if(rt){const it=Array.from(((ot=j.spans$.get(rt.trace_id??""))==null?void 0:ot.getState().values())??[]);_e.push({evaluationName:rt.display_name??tt,evaluationTraces:it})}}),_e):[]},useRootSpanIdOfSelectedSpans=()=>{const j=useSelectedTrace();return j==null?void 0:j.root_span_id},useTableColumnNames=()=>useState(useTraceViewModel().tableColumnNames$),useSetTableColumnNames=()=>useSetState(useTraceViewModel().tableColumnNames$),useTableHiddenColumnKeys=()=>useState(useTraceViewModel().tableHiddenColumnKeys$),useSetTableHiddenColumnKeys=()=>useSetState(useTraceViewModel().tableHiddenColumnKeys$),useIsTraceDetailOpen=()=>useState(useTraceViewModel().isTraceDetailOpen$),useSetIsTraceDetailOpen=()=>useSetState(useTraceViewModel().isTraceDetailOpen$),useTraceDetailRefreshKey=()=>{const j=useTraceViewModel(),_e=useSelectedTraceId(),et=useState(j.spans$),tt=Array.from(useState(et.get(_e??"")??new ObservableOrderedMap).keys());return`${_e}-${tt.join("-")}`},useIsGanttChartOpen=()=>useState(useTraceViewModel().isGanttChartOpen$),useTraceListColumnModifier=()=>useTraceViewModel().traceListColumnModifier,useTraceListShowMetrics=()=>useState(useTraceViewModel().traceListShowMetrics$),useMessagesBySpanId=j=>{var ut,ct,dt,ft,pt;const _e=useTraceViewModel(),et=useState(_e.selectedTraceId$);if(!et)return{inputMessages:[],outputMessages:[]};const tt=(ut=_e.spans$.get(et))==null?void 0:ut.get(j),rt=safeJSONParse(((ct=tt==null?void 0:tt.attributes)==null?void 0:ct.inputs)??"{}"),nt=safeJSONParse(((dt=tt==null?void 0:tt.attributes)==null?void 0:dt.output)??"{}"),ot=(ft=tt==null?void 0:tt.attributes)==null?void 0:ft["llm.generated_message"],it=ot?safeJSONParse(ot):void 0,st=(rt==null?void 0:rt.messages)??[],lt=((pt=nt==null?void 0:nt.choices)==null?void 0:pt.reduce((gt,vt)=>vt.message?[...gt,vt.message]:vt.text?[...gt,{content:vt.text,role:"assistant"}]:gt,[]))??[];return it&<.push(it),{inputMessages:st,outputMessages:lt}},useMessagesOfSelectedSpan=()=>{const j=useSelectedSpanId();return useMessagesBySpanId(j??"")},useLastInputMessageBySpanId=j=>{const{inputMessages:_e}=useMessagesBySpanId(j);return _e.slice(-1)[0]},useGetAllTraces=()=>{const j=useTraceViewModel();return reactExports.useCallback(()=>Array.from(j.traces$.getState().values()),[j.traces$])},useGetAllSpans=()=>{const j=useTraceViewModel();return reactExports.useCallback(()=>{const _e=[];return j.spans$.getState().forEach(tt=>{tt.getState().forEach(nt=>{_e.push(nt)})}),_e},[j.spans$])},useSortColumn=()=>{const j=useTraceViewModel();return useState(j.sortColumn$)},useSetSortColumn=()=>useSetState(useTraceViewModel().sortColumn$),useSortableColumns=()=>useTraceViewModel().sortableColumns,traceDetailErrorInjectionToken=createInjectionToken("traceDetailErrorInjectionToken",()=>{const j=useLocStrings();return jsxRuntimeExports.jsx(MessageBar,{intent:"error",children:j.Failed_to_load_trace})}),traceDetailLoadingInjectionToken=createInjectionToken("traceDetailLoadingInjectionToken",Loading),traceListErrorInjectionToken=createInjectionToken("traceListErrorInjectionToken",()=>{const j=useLocStrings();return jsxRuntimeExports.jsx(MessageBar,{intent:"error",children:j.Failed_to_load_traces})}),traceListLoadingInjectionToken=createInjectionToken("traceListLoadingInjectionToken",Loading),useTraceListViewStatus=()=>{const j=useTraceViewModel();return useState(j.traceListStatus$)},useTraceDetailViewStatus=()=>{const j=useTraceViewModel();return useState(j.traceDetailStatus$)},useTraceListLoadingComponent=()=>{const[j]=useInjected(traceListLoadingInjectionToken);return j},useTraceListErrorComponent=()=>{const[j]=useInjected(traceListErrorInjectionToken);return j},useTraceDetailLoadingComponent=()=>{const[j]=useInjected(traceDetailLoadingInjectionToken);return j},useTraceDetailErrorComponent=()=>{const[j]=useInjected(traceDetailErrorInjectionToken);return j},TREE_NODE_HEIGHT=58,TREE_NODE_WIDTH=400,TREE_NODE_PADDING=10,TREE_NODE_INDENT=48,sortTraceByStartTime=(j,_e)=>j.start_time&&_e.start_time?Date.parse(_e.start_time)-Date.parse(j.start_time):1,defaultGetNodeX=({level:j})=>j*TREE_NODE_INDENT,defaultGetNodeWidth=()=>TREE_NODE_WIDTH,defaultGetNodeHeight=()=>TREE_NODE_HEIGHT,spansToGraphModel=(j,{isEdgesHidden:_e=!1,getNodeX:et=defaultGetNodeX,getNodeWidth:tt=defaultGetNodeWidth,getNodeHeight:rt=defaultGetNodeHeight})=>{const nt=[],ot=[],it=new Map,st=new Set,lt=new Set(j.map(dt=>{var ft;return(ft=dt.context)==null?void 0:ft.span_id}).filter(dt=>!!dt));j.forEach(dt=>{var ft,pt;(ft=dt.context)!=null&&ft.span_id&&(dt.parent_id&<.has(dt.parent_id)?it.has(dt.parent_id)?it.get(dt.parent_id).push(dt):it.set(dt.parent_id,[dt]):st.add((pt=dt.context)==null?void 0:pt.span_id))});const ut=j.filter(dt=>{var ft,pt;return((ft=dt.context)==null?void 0:ft.span_id)&&st.has((pt=dt.context)==null?void 0:pt.span_id)}).sort((dt,ft)=>Date.parse(dt.start_time??"")??0-Date.parse(ft.start_time??"")??0);let ct=0;return ut.sort(sortTraceByStartTime).forEach(dt=>{var pt,gt;const ft=[{span:dt,level:0}];for(;ft.length>0;){const{span:vt,level:bt}=ft.pop(),_t=rt({span:vt,level:bt,index:ct});nt.push({id:((pt=vt==null?void 0:vt.context)==null?void 0:pt.span_id)??"",width:tt({span:vt,level:bt,index:ct}),height:_t,x:et({span:vt,level:bt,index:ct}),y:ct*(_t+TREE_NODE_PADDING),ports:[{id:"port",name:"port",position:[0,.5]}]}),ct++,(gt=vt==null?void 0:vt.context)!=null&>.span_id&&it.has(vt.context.span_id)&&it.get(vt.context.span_id).sort(sortTraceByStartTime).forEach(xt=>{var yt,Et;!_e&&((yt=vt==null?void 0:vt.context)!=null&&yt.span_id)&&((Et=xt==null?void 0:xt.context)!=null&&Et.span_id)&&ot.push({id:`${vt.context.span_id}-${xt.context.span_id}`,source:vt.context.span_id,sourcePortId:"port",target:xt.context.span_id,targetPortId:"port"}),ft.push({span:xt,level:bt+1})})}}),{graph:GraphModel.fromJSON({nodes:nt,edges:ot}),rootIds:Array.from(st.values())}};class EdgeConfig{render({x1:_e,x2:et,y1:tt,y2:rt,model:nt,data:ot}){if(!ot.nodes.get(nt.source)||!ot.nodes.get(nt.target))return null;const lt=_e+30,ut=et+20,ct=tt+10,dt=`M ${lt} ${ct} L ${lt} ${rt} L ${ut} ${rt}`;return jsxRuntimeExports.jsx("path",{d:dt,stroke:tokens.colorNeutralStrokeAccessible,strokeWidth:1,fill:"none"})}}const GanttTreeNode=({node:j})=>{const _e=bitset.has(GraphNodeStatus.Selected)(j.status),et=bitset.has(GraphNodeStatus.Activated)(j.status);let tt=tokens.colorNeutralStroke1,rt=tokens.colorBrandBackground2,nt=1;return _e&&(tt=tokens.colorBrandStroke2,nt=2,rt=tokens.colorBrandBackground2Pressed),et&&(rt=tokens.colorBrandBackground2Hover),jsxRuntimeExports.jsx("foreignObject",{x:j.x,y:j.y,width:j.width,height:j.height,style:{border:`${nt}px solid ${tt}`,backgroundColor:rt,borderRadius:10,paddingLeft:10},children:jsxRuntimeExports.jsx("div",{style:{height:"100%",width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"nowrap",cursor:"pointer"}})})};class GanttNodeConfig{constructor(_e){this.options=_e}render(_e){const et=this.options.spans.find(tt=>{var rt;return((rt=tt==null?void 0:tt.context)==null?void 0:rt.span_id)===_e.model.id});return et?jsxRuntimeExports.jsx(GanttTreeNode,{node:_e.model,span:et}):null}getMinHeight(){return 0}getMinWidth(){return 0}}const GanttTimeline=({startMs:j,endMs:_e})=>{const et=_e-j,tt=Math.pow(10,Math.floor(Math.log10(et))-1),rt=Math.ceil(et/tt),nt=[],ot=[];for(let it=0;itjsxRuntimeExports.jsx("div",{style:{width:"100%",height:"100%"},children:jsxRuntimeExports.jsx(ReactDagEditor,{state:j,dispatch:_e,style:{height:"100%",flexGrow:1,display:"flex"},children:jsxRuntimeExports.jsx(Graph,{canvasMouseMode:CanvasMouseMode.Pan})})}),GanttView=()=>{var ft;const j=useSpansOfSelectedTrace(),_e=useSetSelectedSpanId(),et=useSelectedSpanId(),tt=pt=>(gt,vt)=>(vt&&vt.type===GraphNodeEvent.Click&&_e(vt.node.id),pt(gt,vt)),rt=GraphConfigBuilder.default().registerNode(()=>new GanttNodeConfig({spans:j})).registerPort(()=>new PortConfig).registerEdge(()=>new EdgeConfig).build();previewMode.add(GraphFeatures.ClickNodeToSelect);const[ot,it]=useGraphReducer({data:GraphModel.empty(),settings:{features:previewMode,graphConfig:rt}},tt),st=((ft=ot.viewport.rect)==null?void 0:ft.width)||1200;let lt=Number.MAX_SAFE_INTEGER,ut=0;j.forEach(pt=>{const gt=Date.parse(pt.start_time??"");gtut&&(ut=vt)});const ct=reactExports.useCallback(({span:pt})=>st/(ut-lt)*(Date.parse(pt.start_time??"")-lt),[ut,st,lt]),dt=reactExports.useCallback(({span:pt})=>st/(ut-lt)*(Date.parse(pt.end_time??"")-Date.parse(pt.start_time??"")),[ut,st,lt]);return reactExports.useEffect(()=>{it({type:GraphCanvasEvent.SetData,data:spansToGraphModel(j,{isEdgesHidden:!0,getNodeX:ct,getNodeWidth:dt,getNodeHeight:()=>24}).graph.selectNodes(pt=>pt.id===et)})},[]),reactExports.useEffect(()=>{et&&it({type:GraphNodeEvent.Select,nodes:[et]})},[et]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(GanttTimeline,{startMs:lt,endMs:ut}),jsxRuntimeExports.jsx(TreeGraph,{state:ot,dispatch:it})]})},useNodeDetailClasses=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%"},headerWrapper:{display:"flex",boxSizing:"border-box",width:"100%",...shorthands.padding("12px","12px",0,"12px"),flexDirection:"row",alignItems:"center",...shorthands.gap("12px")},headerTitle:{flexGrow:1,flexShrink:1,...shorthands.overflow("hidden"),whiteSpace:"nowrap",textOverflow:"ellipsis"},headerItem:{display:"flex",alignItems:"center"},tabDivider:{...shorthands.flex("none"),...shorthands.padding(0,"12px")},content:{...shorthands.flex(1),...shorthands.padding("12px"),...shorthands.overflow("auto")},panels:{...shorthands.padding(0,"10px"),"& th":{textAlign:"left",...shorthands.padding(0,"30px",0,0)}},cardWrapper:{backgroundColor:tokens.colorNeutralBackground3},cardTitle:{fontSize:"16px",fontWeight:600},innerCardWrapper:{...shorthands.padding("16px"),...shorthands.border("1px","solid",tokens.colorNeutralForeground1),...shorthands.borderRadius("8px")}}),useRetrievalNodeDetailClasses=makeStyles({accordionHeader:{"& button":{...shorthands.padding(0),fontWeight:600}}}),getToolTypeFromSpan=j=>{var et;const _e=(et=j==null?void 0:j.attributes)==null?void 0:et.span_type;return _e==null?void 0:_e.split(".").pop()};function isObject$i(j){return Object.prototype.toString.call(j)==="[object Object]"}function objectSize(j){return Array.isArray(j)?j.length:isObject$i(j)?Object.keys(j).length:0}function stringifyForCopying(j,_e){if(typeof j=="string")return j;try{return JSON.stringify(j,(et,tt)=>{switch(typeof tt){case"bigint":return String(tt)+"n";case"number":case"boolean":case"object":case"string":return tt;default:return String(tt)}},_e)}catch(et){return`${et.name}: ${et.message}`||"JSON.stringify failed"}}function isCollapsed(j,_e,et,tt,rt,nt){if(nt&&nt.collapsed!==void 0)return!!nt.collapsed;if(typeof tt=="boolean")return tt;if(typeof tt=="number"&&_e>tt)return!0;const ot=objectSize(j);if(typeof tt=="function"){const it=safeCall(tt,[{node:j,depth:_e,indexOrName:et,size:ot}]);if(typeof it=="boolean")return it}return!!(Array.isArray(j)&&ot>rt||isObject$i(j)&&ot>rt)}function isCollapsed_largeArray(j,_e,et,tt,rt,nt){if(nt&&nt.collapsed!==void 0)return!!nt.collapsed;if(typeof tt=="boolean")return tt;if(typeof tt=="number"&&_e>tt)return!0;const ot=Math.ceil(j.length/100);if(typeof tt=="function"){const it=safeCall(tt,[{node:j,depth:_e,indexOrName:et,size:ot}]);if(typeof it=="boolean")return it}return!!(Array.isArray(j)&&ot>rt||isObject$i(j)&&ot>rt)}function ifDisplay(j,_e,et){return typeof j=="boolean"?j:!!(typeof j=="number"&&_e>j||j==="collapsed"&&et||j==="expanded"&&!et)}function safeCall(j,_e){try{return j(..._e)}catch(et){reportError(et)}}function editableAdd(j){if(j===!0||isObject$i(j)&&j.add===!0)return!0}function editableEdit(j){if(j===!0||isObject$i(j)&&j.edit===!0)return!0}function editableDelete(j){if(j===!0||isObject$i(j)&&j.delete===!0)return!0}function isReactComponent(j){return typeof j=="function"}function customAdd(j){return!j||j.add===void 0||!!j.add}function customEdit(j){return!j||j.edit===void 0||!!j.edit}function customDelete(j){return!j||j.delete===void 0||!!j.delete}function customCopy(j){return!j||j.enableClipboard===void 0||!!j.enableClipboard}function customMatchesURL(j){return!j||j.matchesURL===void 0||!!j.matchesURL}function resolveEvalFailedNewValue(j,_e){return j==="string"?_e.trim().replace(/^\"([\s\S]+?)\"$/,"$1"):_e}var _path$8;function _extends$8$1(){return _extends$8$1=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{rt.stopPropagation();const nt=_e(j);typeof nt=="string"&&nt&&navigator.clipboard.writeText(nt),tt(!0),setTimeout(()=>tt(!1),3e3)},className:"json-view--copy"})}function NameValue({indexOrName:j,value:_e,depth:et,parent:tt,deleteHandle:rt,editHandle:nt}){return jsxRuntimeExports.jsxs("div",Object.assign({className:"json-view--pair"},{children:[jsxRuntimeExports.jsx("span",Object.assign({className:typeof j=="number"?"json-view--index":"json-view--property"},{children:j})),":"," ",jsxRuntimeExports.jsx(JsonNode,{node:_e,depth:et+1,deleteHandle:rt,editHandle:nt,parent:tt,indexOrName:j})]}))}var _path$5,_path2$4;function _extends$5$1(){return _extends$5$1=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{j[_t]=xt,lt&<({newValue:xt,oldValue:yt,depth:et,src:st,indexOrName:_t,parentType:"array"}),ut&&ut({type:"edit",depth:et,src:st,indexOrName:_t,parentType:"array"}),ct()},[_e,lt,ut,ct]),vt=_t=>{j.splice(_t,1),ct()},bt=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!ft&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>pt(!0),className:"jv-size-chevron"},{children:[ifDisplay(dt,et,ft)&&jsxRuntimeExports.jsxs("span",Object.assign({className:"jv-size"},{children:[objectSize(_e)," Items"]})),jsxRuntimeExports.jsx(SvgAngleDown,{className:"jv-chevron"})]})),!ft&&it&&customCopy(nt)&&jsxRuntimeExports.jsx(CopyButton$2,{node:_e})]});return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("span",{children:"["}),bt,ft?jsxRuntimeExports.jsxs("button",Object.assign({onClick:()=>pt(!1),className:"jv-button"},{children:[ot," ... ",ot+_e.length-1]})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:_e.map((_t,xt)=>jsxRuntimeExports.jsx(NameValue,{indexOrName:xt+ot,value:_t,depth:et,parent:_e,deleteHandle:vt,editHandle:gt},String(tt)+String(xt)))})),jsxRuntimeExports.jsx("span",{children:"]"})]})}function LargeArray({node:j,depth:_e,deleteHandle:et,indexOrName:tt,customOptions:rt}){const nt=[];for(let Ot=0;Ot{_t(isCollapsed_largeArray(j,_e,tt,ot,st,rt))},[ot,st]);const[xt,yt]=reactExports.useState(!1),Et=()=>{yt(!1),et&&et(tt),ut&&ut({value:j,depth:_e,src:ct,indexOrName:tt,parentType:"array"}),pt&&pt({type:"delete",depth:_e,src:ct,indexOrName:tt,parentType:"array"})},[St,$t]=reactExports.useState(!1),At=()=>{const Ot=j;Ot.push(null),dt&&dt({indexOrName:Ot.length-1,depth:_e,src:ct,parentType:"array"}),pt&&pt({type:"add",indexOrName:Ot.length-1,depth:_e,src:ct,parentType:"array"}),gt()},wt=xt||St,Ct=()=>{yt(!1),$t(!1)},It=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!bt&&!wt&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!0),className:"jv-size-chevron"},{children:[ifDisplay(vt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({className:"jv-size"},{children:[j.length," Items"]})),jsxRuntimeExports.jsx(SvgAngleDown,{className:"jv-chevron"})]})),wt&&jsxRuntimeExports.jsx(SvgDone,{className:"json-view--edit",style:{display:"inline-block"},onClick:St?At:Et}),wt&&jsxRuntimeExports.jsx(SvgCancel,{className:"json-view--edit",style:{display:"inline-block"},onClick:Ct}),!bt&&!wt&&it&&customCopy(rt)&&jsxRuntimeExports.jsx(CopyButton$2,{node:j}),!bt&&!wt&&editableAdd(lt)&&customAdd(rt)&&jsxRuntimeExports.jsx(SvgAddSquare,{className:"json-view--edit",onClick:()=>{At()}}),!bt&&!wt&&editableDelete(lt)&&customDelete(rt)&&et&&jsxRuntimeExports.jsx(SvgTrash,{className:"json-view--edit",onClick:()=>yt(!0)})]});return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:"["}),It,bt?jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>_t(!1),className:"jv-button"},{children:"..."})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:nt.map((Ot,Nt)=>jsxRuntimeExports.jsx(LargeArrayNode,{originNode:j,node:Ot,depth:_e,index:Nt,startIndex:Nt*100},String(tt)+String(Nt)))})),jsxRuntimeExports.jsx("span",{children:"]"}),bt&&ifDisplay(vt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!1),className:"jv-size"},{children:[j.length," Items"]}))]})}function ObjectNode({node:j,depth:_e,indexOrName:et,deleteHandle:tt,customOptions:rt}){if(Array.isArray(j)&&j.length>100)return jsxRuntimeExports.jsx(LargeArray,{node:j,depth:_e,indexOrName:et,deleteHandle:tt,customOptions:rt});const{collapsed:nt,enableClipboard:ot,collapseObjectsAfterLength:it,editable:st,onDelete:lt,src:ut,onAdd:ct,onEdit:dt,onChange:ft,forceUpdate:pt,displaySize:gt}=reactExports.useContext(JsonViewContext),vt=isObject$i(j),[bt,_t]=reactExports.useState(isCollapsed(j,_e,et,nt,it,rt));reactExports.useEffect(()=>{_t(isCollapsed(j,_e,et,nt,it,rt))},[nt,it]);const xt=reactExports.useCallback((Rt,Lt,jt)=>{Array.isArray(j)?j[+Rt]=Lt:j&&(j[Rt]=Lt),dt&&dt({newValue:Lt,oldValue:jt,depth:_e,src:ut,indexOrName:Rt,parentType:vt?"object":"array"}),ft&&ft({type:"edit",depth:_e,src:ut,indexOrName:Rt,parentType:vt?"object":"array"}),pt()},[j,dt,ft,pt]),yt=Rt=>{Array.isArray(j)?j.splice(+Rt,1):j&&delete j[Rt],pt()},[Et,St]=reactExports.useState(!1),$t=()=>{St(!1),tt&&tt(et),lt&<({value:j,depth:_e,src:ut,indexOrName:et,parentType:vt?"object":"array"}),ft&&ft({type:"delete",depth:_e,src:ut,indexOrName:et,parentType:vt?"object":"array"})},[At,wt]=reactExports.useState(!1),Ct=reactExports.useRef(null),It=()=>{var Rt;if(vt){const Lt=(Rt=Ct.current)===null||Rt===void 0?void 0:Rt.value;Lt&&(j[Lt]=null,Ct.current&&(Ct.current.value=""),wt(!1),ct&&ct({indexOrName:Lt,depth:_e,src:ut,parentType:"object"}),ft&&ft({type:"add",indexOrName:Lt,depth:_e,src:ut,parentType:"object"}))}else if(Array.isArray(j)){const Lt=j;Lt.push(null),ct&&ct({indexOrName:Lt.length-1,depth:_e,src:ut,parentType:"array"}),ft&&ft({type:"add",indexOrName:Lt.length-1,depth:_e,src:ut,parentType:"array"})}pt()},Ot=Rt=>{Rt.key==="Enter"?(Rt.preventDefault(),It()):Rt.key==="Escape"&&Pt()},Nt=Et||At,Pt=()=>{St(!1),wt(!1)},Mt=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!bt&&!Nt&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!0),className:"jv-size-chevron"},{children:[ifDisplay(gt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({className:"jv-size"},{children:[objectSize(j)," Items"]})),jsxRuntimeExports.jsx(SvgAngleDown,{className:"jv-chevron"})]})),At&&vt&&jsxRuntimeExports.jsx("input",{className:"json-view--input",placeholder:"property",ref:Ct,onKeyDown:Ot}),Nt&&jsxRuntimeExports.jsx(SvgDone,{className:"json-view--edit",style:{display:"inline-block"},onClick:At?It:$t}),Nt&&jsxRuntimeExports.jsx(SvgCancel,{className:"json-view--edit",style:{display:"inline-block"},onClick:Pt}),!bt&&!Nt&&ot&&customCopy(rt)&&jsxRuntimeExports.jsx(CopyButton$2,{node:j}),!bt&&!Nt&&editableAdd(st)&&customAdd(rt)&&jsxRuntimeExports.jsx(SvgAddSquare,{className:"json-view--edit",onClick:()=>{vt?(wt(!0),setTimeout(()=>{var Rt;return(Rt=Ct.current)===null||Rt===void 0?void 0:Rt.focus()})):It()}}),!bt&&!Nt&&editableDelete(st)&&customDelete(rt)&&tt&&jsxRuntimeExports.jsx(SvgTrash,{className:"json-view--edit",onClick:()=>St(!0)})]});return Array.isArray(j)?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:"["}),Mt,bt?jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>_t(!1),className:"jv-button"},{children:"..."})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:j.map((Rt,Lt)=>jsxRuntimeExports.jsx(NameValue,{indexOrName:Lt,value:Rt,depth:_e,parent:j,deleteHandle:yt,editHandle:xt},String(et)+String(Lt)))})),jsxRuntimeExports.jsx("span",{children:"]"}),bt&&ifDisplay(gt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!1),className:"jv-size"},{children:[objectSize(j)," Items"]}))]}):vt?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:"{"}),Mt,bt?jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>_t(!1),className:"jv-button"},{children:"..."})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:Object.entries(j).map(([Rt,Lt])=>jsxRuntimeExports.jsx(NameValue,{indexOrName:Rt,value:Lt,depth:_e,parent:j,deleteHandle:yt,editHandle:xt},String(et)+String(Rt)))})),jsxRuntimeExports.jsx("span",{children:"}"}),bt&&ifDisplay(gt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!1),className:"jv-size"},{children:[objectSize(j)," Items"]}))]}):null}const LongString=React.forwardRef(({str:j,className:_e,ctrlClick:et},tt)=>{let{collapseStringMode:rt,collapseStringsAfterLength:nt}=reactExports.useContext(JsonViewContext);const[ot,it]=reactExports.useState(!0);nt=nt>0?nt:0;const st=j.replace(/\s+/g," "),lt=ut=>{(ut.ctrlKey||ut.metaKey)&&et?et(ut):it(!ot)};if(j.length<=nt)return jsxRuntimeExports.jsxs("span",Object.assign({className:_e,onClick:et},{children:['"',j,'"']}));if(rt==="address")return j.length<=10?jsxRuntimeExports.jsxs("span",Object.assign({className:_e,onClick:et},{children:['"',j,'"']})):jsxRuntimeExports.jsxs("span",Object.assign({onClick:lt,className:_e+" cursor-pointer"},{children:['"',ot?st.slice(0,6)+"..."+st.slice(-4):j,'"']}));if(rt==="directly")return jsxRuntimeExports.jsxs("span",Object.assign({onClick:lt,className:_e+" cursor-pointer"},{children:['"',ot?st.slice(0,nt)+"...":j,'"']}));if(rt==="word"){let ut=nt,ct=nt+1,dt=st,ft=1;for(;;){if(/\W/.test(j[ut])){dt=j.slice(0,ut);break}if(/\W/.test(j[ct])){dt=j.slice(0,ct);break}if(ft===6){dt=j.slice(0,nt);break}ft++,ut--,ct++}return jsxRuntimeExports.jsxs("span",Object.assign({onClick:lt,className:_e+" cursor-pointer"},{children:['"',ot?dt+"...":j,'"']}))}return jsxRuntimeExports.jsxs("span",Object.assign({className:_e},{children:['"',j,'"']}))});var _path$1;function _extends$1$1(){return _extends$1$1=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{setEditing(!0),setTimeout(()=>{var j,_e;(j=window.getSelection())===null||j===void 0||j.selectAllChildren(valueRef.current),(_e=valueRef.current)===null||_e===void 0||_e.focus()})},done=reactExports.useCallback(()=>{const newValue=valueRef.current.innerText;try{const evalValue=eval(newValue);editHandle&&editHandle(indexOrName,evalValue,node)}catch(j){const _e=resolveEvalFailedNewValue(type,newValue);editHandle&&editHandle(indexOrName,_e,node)}setEditing(!1)},[editHandle]),cancel=()=>{setEditing(!1),setDeleting(!1)},deleteHandle=()=>{setDeleting(!1),_deleteHandle&&_deleteHandle(indexOrName),onDelete&&onDelete({value:node,depth,src,indexOrName,parentType:Array.isArray(parent)?"array":"object"}),onChange&&onChange({depth,src,indexOrName,parentType:Array.isArray(parent)?"array":"object",type:"delete"})},handleKeyDown=reactExports.useCallback(j=>{j.key==="Enter"?(j.preventDefault(),done()):j.key==="Escape"&&cancel()},[done]),isEditing=editing||deleting,ctrlClick=!isEditing&&editableEdit(editable)&&customEdit(customReturn)&&editHandle?j=>{(j.ctrlKey||j.metaKey)&&edit()}:void 0,Icons=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[isEditing&&jsxRuntimeExports.jsx(SvgDone,{className:"json-view--edit",style:{display:"inline-block"},onClick:deleting?deleteHandle:done}),isEditing&&jsxRuntimeExports.jsx(SvgCancel,{className:"json-view--edit",style:{display:"inline-block"},onClick:cancel}),!isEditing&&enableClipboard&&customCopy(customReturn)&&jsxRuntimeExports.jsx(CopyButton$2,{node}),!isEditing&&matchesURL&&type==="string"&&urlRegExp.test(node)&&customMatchesURL(customReturn)&&jsxRuntimeExports.jsx("a",Object.assign({href:node,target:"_blank",className:"json-view--link"},{children:jsxRuntimeExports.jsx(SvgLink,{})})),!isEditing&&editableEdit(editable)&&customEdit(customReturn)&&editHandle&&jsxRuntimeExports.jsx(SvgEdit,{className:"json-view--edit",onClick:edit}),!isEditing&&editableDelete(editable)&&customDelete(customReturn)&&_deleteHandle&&jsxRuntimeExports.jsx(SvgTrash,{className:"json-view--edit",onClick:()=>setDeleting(!0)})]});let className="json-view--string";switch(typeof(customReturn==null?void 0:customReturn.className)=="string"&&(className+=" "+customReturn.className),type){case"number":case"bigint":className="json-view--number";break;case"boolean":className="json-view--boolean";break;case"object":className="json-view--null";break}deleting&&(className+=" json-view--deleting");let displayValue=String(node);type==="bigint"&&(displayValue+="n");const EditingElement=reactExports.useMemo(()=>jsxRuntimeExports.jsx("span",{contentEditable:!0,className,dangerouslySetInnerHTML:{__html:type==="string"?`"${displayValue}"`:displayValue},ref:valueRef,onKeyDown:handleKeyDown}),[displayValue,type,handleKeyDown]);return type==="string"?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[editing?EditingElement:node.length>collapseStringsAfterLength?jsxRuntimeExports.jsx(LongString,{str:node,ref:valueRef,className,ctrlClick}):jsxRuntimeExports.jsxs("span",Object.assign({className,onClick:ctrlClick},{children:['"',displayValue,'"']})),Icons]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[editing?EditingElement:jsxRuntimeExports.jsx("span",Object.assign({className,onClick:ctrlClick},{children:displayValue})),Icons]})}}const defaultURLRegExp=/^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/,JsonViewContext=reactExports.createContext({src:void 0,collapseStringsAfterLength:99,collapseStringMode:"directly",collapseObjectsAfterLength:20,collapsed:!1,enableClipboard:!0,editable:!1,onEdit:void 0,onDelete:void 0,onAdd:void 0,onChange:void 0,forceUpdate:()=>{},customizeNode:void 0,customizeCopy:()=>{},displaySize:void 0,matchesURL:!1,urlRegExp:defaultURLRegExp});function JsonView({src:j,collapseStringsAfterLength:_e=99,collapseStringMode:et="directly",collapseObjectsAfterLength:tt=99,collapsed:rt,enableClipboard:nt=!0,editable:ot=!1,onEdit:it,onDelete:st,onAdd:lt,onChange:ut,dark:ct=!1,theme:dt="default",customizeNode:ft,customizeCopy:pt=stringifyForCopying,displaySize:gt,style:vt,className:bt,matchesURL:_t=!1,urlRegExp:xt=defaultURLRegExp}){const[yt,Et]=reactExports.useState(0),St=reactExports.useCallback(()=>Et($t=>++$t),[]);return jsxRuntimeExports.jsx(JsonViewContext.Provider,Object.assign({value:{src:j,collapseStringsAfterLength:_e,collapseStringMode:et,collapseObjectsAfterLength:tt,collapsed:rt,enableClipboard:nt,editable:ot,onEdit:it,onDelete:st,onAdd:lt,onChange:ut,forceUpdate:St,customizeNode:ft,customizeCopy:pt,displaySize:gt,matchesURL:_t,urlRegExp:xt}},{children:jsxRuntimeExports.jsx("code",Object.assign({className:"json-view"+(ct?" dark":"")+(dt&&dt!=="default"?" json-view_"+dt:"")+(bt?" "+bt:""),style:vt},{children:jsxRuntimeExports.jsx(JsonNode,{node:j,depth:1})}))}))}const TraceViewThemeContext=reactExports.createContext(!1),useIsDark=()=>reactExports.useContext(TraceViewThemeContext),JsonNodeCard=({title:j,src:_e,wrapperStyle:et={}})=>{let tt="";if(typeof _e=="string")try{tt=JSON.parse(_e)}catch{tt=_e}else typeof _e=="object"&&(tt=_e);const rt=useIsDark();return jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12,...et},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:j})})}),jsxRuntimeExports.jsx(JsonView,{src:tt,theme:"vscode",dark:rt})]})},DefaultNodeInfo=()=>{var _e,et;const j=useSelectedSpan();return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(JsonNodeCard,{title:"Input",src:(_e=j==null?void 0:j.attributes)==null?void 0:_e.inputs}),jsxRuntimeExports.jsx(JsonNodeCard,{title:"Output",src:(et=j==null?void 0:j.attributes)==null?void 0:et.output})]})},BlockquoteType="blockquote",BreakType="break",CodeType="code",DefinitionType="definition",DeleteType="delete",EmphasisType="emphasis",HeadingType="heading",HtmlType="html";var HtmlContentType;(function(j){j.CDATA="cdata",j.Closing="closing",j.Comment="comment",j.Declaration="declaration",j.Instruction="instruction",j.Open="open"})(HtmlContentType||(HtmlContentType={}));const ImageReferenceType="imageReference",ImageType$1="image",InlineCodeType="inlineCode",LinkReferenceType="linkReference",LinkType="link",ListItemType="listItem";var TaskStatus;(function(j){j.TODO="todo",j.DOING="doing",j.DONE="done"})(TaskStatus||(TaskStatus={}));const ListType="list",ParagraphType$1="paragraph",StrongType="strong",TableType="table",TextType$1="text",ThematicBreakType="thematicBreak";var AsciiCodePoint;(function(j){j[j.NUL=0]="NUL",j[j.SOH=1]="SOH",j[j.STX=2]="STX",j[j.ETX=3]="ETX",j[j.EOT=4]="EOT",j[j.ENQ=5]="ENQ",j[j.ACK=6]="ACK",j[j.BEL=7]="BEL",j[j.BS=8]="BS",j[j.HT=9]="HT",j[j.LF=10]="LF",j[j.VT=11]="VT",j[j.FF=12]="FF",j[j.CR=13]="CR",j[j.SO=14]="SO",j[j.SI=15]="SI",j[j.DLE=16]="DLE",j[j.DC1=17]="DC1",j[j.DC2=18]="DC2",j[j.DC3=19]="DC3",j[j.DC4=20]="DC4",j[j.NAK=21]="NAK",j[j.SYN=22]="SYN",j[j.ETB=23]="ETB",j[j.CAN=24]="CAN",j[j.EM=25]="EM",j[j.SUB=26]="SUB",j[j.ESC=27]="ESC",j[j.FS=28]="FS",j[j.GS=29]="GS",j[j.RS=30]="RS",j[j.US=31]="US",j[j.SPACE=32]="SPACE",j[j.EXCLAMATION_MARK=33]="EXCLAMATION_MARK",j[j.DOUBLE_QUOTE=34]="DOUBLE_QUOTE",j[j.NUMBER_SIGN=35]="NUMBER_SIGN",j[j.DOLLAR_SIGN=36]="DOLLAR_SIGN",j[j.PERCENT_SIGN=37]="PERCENT_SIGN",j[j.AMPERSAND=38]="AMPERSAND",j[j.SINGLE_QUOTE=39]="SINGLE_QUOTE",j[j.OPEN_PARENTHESIS=40]="OPEN_PARENTHESIS",j[j.CLOSE_PARENTHESIS=41]="CLOSE_PARENTHESIS",j[j.ASTERISK=42]="ASTERISK",j[j.PLUS_SIGN=43]="PLUS_SIGN",j[j.COMMA=44]="COMMA",j[j.MINUS_SIGN=45]="MINUS_SIGN",j[j.DOT=46]="DOT",j[j.SLASH=47]="SLASH",j[j.DIGIT0=48]="DIGIT0",j[j.DIGIT1=49]="DIGIT1",j[j.DIGIT2=50]="DIGIT2",j[j.DIGIT3=51]="DIGIT3",j[j.DIGIT4=52]="DIGIT4",j[j.DIGIT5=53]="DIGIT5",j[j.DIGIT6=54]="DIGIT6",j[j.DIGIT7=55]="DIGIT7",j[j.DIGIT8=56]="DIGIT8",j[j.DIGIT9=57]="DIGIT9",j[j.COLON=58]="COLON",j[j.SEMICOLON=59]="SEMICOLON",j[j.OPEN_ANGLE=60]="OPEN_ANGLE",j[j.EQUALS_SIGN=61]="EQUALS_SIGN",j[j.CLOSE_ANGLE=62]="CLOSE_ANGLE",j[j.QUESTION_MARK=63]="QUESTION_MARK",j[j.AT_SIGN=64]="AT_SIGN",j[j.UPPERCASE_A=65]="UPPERCASE_A",j[j.UPPERCASE_B=66]="UPPERCASE_B",j[j.UPPERCASE_C=67]="UPPERCASE_C",j[j.UPPERCASE_D=68]="UPPERCASE_D",j[j.UPPERCASE_E=69]="UPPERCASE_E",j[j.UPPERCASE_F=70]="UPPERCASE_F",j[j.UPPERCASE_G=71]="UPPERCASE_G",j[j.UPPERCASE_H=72]="UPPERCASE_H",j[j.UPPERCASE_I=73]="UPPERCASE_I",j[j.UPPERCASE_J=74]="UPPERCASE_J",j[j.UPPERCASE_K=75]="UPPERCASE_K",j[j.UPPERCASE_L=76]="UPPERCASE_L",j[j.UPPERCASE_M=77]="UPPERCASE_M",j[j.UPPERCASE_N=78]="UPPERCASE_N",j[j.UPPERCASE_O=79]="UPPERCASE_O",j[j.UPPERCASE_P=80]="UPPERCASE_P",j[j.UPPERCASE_Q=81]="UPPERCASE_Q",j[j.UPPERCASE_R=82]="UPPERCASE_R",j[j.UPPERCASE_S=83]="UPPERCASE_S",j[j.UPPERCASE_T=84]="UPPERCASE_T",j[j.UPPERCASE_U=85]="UPPERCASE_U",j[j.UPPERCASE_V=86]="UPPERCASE_V",j[j.UPPERCASE_W=87]="UPPERCASE_W",j[j.UPPERCASE_X=88]="UPPERCASE_X",j[j.UPPERCASE_Y=89]="UPPERCASE_Y",j[j.UPPERCASE_Z=90]="UPPERCASE_Z",j[j.OPEN_BRACKET=91]="OPEN_BRACKET",j[j.BACKSLASH=92]="BACKSLASH",j[j.CLOSE_BRACKET=93]="CLOSE_BRACKET",j[j.CARET=94]="CARET",j[j.UNDERSCORE=95]="UNDERSCORE",j[j.BACKTICK=96]="BACKTICK",j[j.LOWERCASE_A=97]="LOWERCASE_A",j[j.LOWERCASE_B=98]="LOWERCASE_B",j[j.LOWERCASE_C=99]="LOWERCASE_C",j[j.LOWERCASE_D=100]="LOWERCASE_D",j[j.LOWERCASE_E=101]="LOWERCASE_E",j[j.LOWERCASE_F=102]="LOWERCASE_F",j[j.LOWERCASE_G=103]="LOWERCASE_G",j[j.LOWERCASE_H=104]="LOWERCASE_H",j[j.LOWERCASE_I=105]="LOWERCASE_I",j[j.LOWERCASE_J=106]="LOWERCASE_J",j[j.LOWERCASE_K=107]="LOWERCASE_K",j[j.LOWERCASE_L=108]="LOWERCASE_L",j[j.LOWERCASE_M=109]="LOWERCASE_M",j[j.LOWERCASE_N=110]="LOWERCASE_N",j[j.LOWERCASE_O=111]="LOWERCASE_O",j[j.LOWERCASE_P=112]="LOWERCASE_P",j[j.LOWERCASE_Q=113]="LOWERCASE_Q",j[j.LOWERCASE_R=114]="LOWERCASE_R",j[j.LOWERCASE_S=115]="LOWERCASE_S",j[j.LOWERCASE_T=116]="LOWERCASE_T",j[j.LOWERCASE_U=117]="LOWERCASE_U",j[j.LOWERCASE_V=118]="LOWERCASE_V",j[j.LOWERCASE_W=119]="LOWERCASE_W",j[j.LOWERCASE_X=120]="LOWERCASE_X",j[j.LOWERCASE_Y=121]="LOWERCASE_Y",j[j.LOWERCASE_Z=122]="LOWERCASE_Z",j[j.OPEN_BRACE=123]="OPEN_BRACE",j[j.VERTICAL_SLASH=124]="VERTICAL_SLASH",j[j.CLOSE_BRACE=125]="CLOSE_BRACE",j[j.TILDE=126]="TILDE",j[j.DELETE=127]="DELETE"})(AsciiCodePoint||(AsciiCodePoint={}));const foldingCaseCodeMap={µ:"μ",À:"à",Á:"á",Â:"â",Ã:"ã",Ä:"ä",Å:"å",Æ:"æ",Ç:"ç",È:"è",É:"é",Ê:"ê",Ë:"ë",Ì:"ì",Í:"í",Î:"î",Ï:"ï",Ð:"ð",Ñ:"ñ",Ò:"ò",Ó:"ó",Ô:"ô",Õ:"õ",Ö:"ö",Ø:"ø",Ù:"ù",Ú:"ú",Û:"û",Ü:"ü",Ý:"ý",Þ:"þ",Ā:"ā",Ă:"ă",Ą:"ą",Ć:"ć",Ĉ:"ĉ",Ċ:"ċ",Č:"č",Ď:"ď",Đ:"đ",Ē:"ē",Ĕ:"ĕ",Ė:"ė",Ę:"ę",Ě:"ě",Ĝ:"ĝ",Ğ:"ğ",Ġ:"ġ",Ģ:"ģ",Ĥ:"ĥ",Ħ:"ħ",Ĩ:"ĩ",Ī:"ī",Ĭ:"ĭ",Į:"į",IJ:"ij",Ĵ:"ĵ",Ķ:"ķ",Ĺ:"ĺ",Ļ:"ļ",Ľ:"ľ",Ŀ:"ŀ",Ł:"ł",Ń:"ń",Ņ:"ņ",Ň:"ň",Ŋ:"ŋ",Ō:"ō",Ŏ:"ŏ",Ő:"ő",Œ:"œ",Ŕ:"ŕ",Ŗ:"ŗ",Ř:"ř",Ś:"ś",Ŝ:"ŝ",Ş:"ş",Š:"š",Ţ:"ţ",Ť:"ť",Ŧ:"ŧ",Ũ:"ũ",Ū:"ū",Ŭ:"ŭ",Ů:"ů",Ű:"ű",Ų:"ų",Ŵ:"ŵ",Ŷ:"ŷ",Ÿ:"ÿ",Ź:"ź",Ż:"ż",Ž:"ž",ſ:"s",Ɓ:"ɓ",Ƃ:"ƃ",Ƅ:"ƅ",Ɔ:"ɔ",Ƈ:"ƈ",Ɖ:"ɖ",Ɗ:"ɗ",Ƌ:"ƌ",Ǝ:"ǝ",Ə:"ə",Ɛ:"ɛ",Ƒ:"ƒ",Ɠ:"ɠ",Ɣ:"ɣ",Ɩ:"ɩ",Ɨ:"ɨ",Ƙ:"ƙ",Ɯ:"ɯ",Ɲ:"ɲ",Ɵ:"ɵ",Ơ:"ơ",Ƣ:"ƣ",Ƥ:"ƥ",Ʀ:"ʀ",Ƨ:"ƨ",Ʃ:"ʃ",Ƭ:"ƭ",Ʈ:"ʈ",Ư:"ư",Ʊ:"ʊ",Ʋ:"ʋ",Ƴ:"ƴ",Ƶ:"ƶ",Ʒ:"ʒ",Ƹ:"ƹ",Ƽ:"ƽ",DŽ:"dž",Dž:"dž",LJ:"lj",Lj:"lj",NJ:"nj",Nj:"nj",Ǎ:"ǎ",Ǐ:"ǐ",Ǒ:"ǒ",Ǔ:"ǔ",Ǖ:"ǖ",Ǘ:"ǘ",Ǚ:"ǚ",Ǜ:"ǜ",Ǟ:"ǟ",Ǡ:"ǡ",Ǣ:"ǣ",Ǥ:"ǥ",Ǧ:"ǧ",Ǩ:"ǩ",Ǫ:"ǫ",Ǭ:"ǭ",Ǯ:"ǯ",DZ:"dz",Dz:"dz",Ǵ:"ǵ",Ƕ:"ƕ",Ƿ:"ƿ",Ǹ:"ǹ",Ǻ:"ǻ",Ǽ:"ǽ",Ǿ:"ǿ",Ȁ:"ȁ",Ȃ:"ȃ",Ȅ:"ȅ",Ȇ:"ȇ",Ȉ:"ȉ",Ȋ:"ȋ",Ȍ:"ȍ",Ȏ:"ȏ",Ȑ:"ȑ",Ȓ:"ȓ",Ȕ:"ȕ",Ȗ:"ȗ",Ș:"ș",Ț:"ț",Ȝ:"ȝ",Ȟ:"ȟ","Ƞ":"ƞ",Ȣ:"ȣ",Ȥ:"ȥ",Ȧ:"ȧ",Ȩ:"ȩ",Ȫ:"ȫ",Ȭ:"ȭ",Ȯ:"ȯ",Ȱ:"ȱ",Ȳ:"ȳ","Ⱥ":"ⱥ","Ȼ":"ȼ","Ƚ":"ƚ","Ⱦ":"ⱦ","Ɂ":"ɂ","Ƀ":"ƀ","Ʉ":"ʉ","Ʌ":"ʌ","Ɇ":"ɇ","Ɉ":"ɉ","Ɋ":"ɋ","Ɍ":"ɍ","Ɏ":"ɏ","ͅ":"ι","Ͱ":"ͱ","Ͳ":"ͳ","Ͷ":"ͷ","Ϳ":"ϳ",Ά:"ά",Έ:"έ",Ή:"ή",Ί:"ί",Ό:"ό",Ύ:"ύ",Ώ:"ώ",Α:"α",Β:"β",Γ:"γ",Δ:"δ",Ε:"ε",Ζ:"ζ",Η:"η",Θ:"θ",Ι:"ι",Κ:"κ",Λ:"λ",Μ:"μ",Ν:"ν",Ξ:"ξ",Ο:"ο",Π:"π",Ρ:"ρ",Σ:"σ",Τ:"τ",Υ:"υ",Φ:"φ",Χ:"χ",Ψ:"ψ",Ω:"ω",Ϊ:"ϊ",Ϋ:"ϋ",ς:"σ","Ϗ":"ϗ",ϐ:"β",ϑ:"θ",ϕ:"φ",ϖ:"π","Ϙ":"ϙ",Ϛ:"ϛ",Ϝ:"ϝ",Ϟ:"ϟ",Ϡ:"ϡ",Ϣ:"ϣ",Ϥ:"ϥ",Ϧ:"ϧ",Ϩ:"ϩ",Ϫ:"ϫ",Ϭ:"ϭ",Ϯ:"ϯ",ϰ:"κ",ϱ:"ρ","ϴ":"θ","ϵ":"ε","Ϸ":"ϸ","Ϲ":"ϲ","Ϻ":"ϻ","Ͻ":"ͻ","Ͼ":"ͼ","Ͽ":"ͽ",Ѐ:"ѐ",Ё:"ё",Ђ:"ђ",Ѓ:"ѓ",Є:"є",Ѕ:"ѕ",І:"і",Ї:"ї",Ј:"ј",Љ:"љ",Њ:"њ",Ћ:"ћ",Ќ:"ќ",Ѝ:"ѝ",Ў:"ў",Џ:"џ",А:"а",Б:"б",В:"в",Г:"г",Д:"д",Е:"е",Ж:"ж",З:"з",И:"и",Й:"й",К:"к",Л:"л",М:"м",Н:"н",О:"о",П:"п",Р:"р",С:"с",Т:"т",У:"у",Ф:"ф",Х:"х",Ц:"ц",Ч:"ч",Ш:"ш",Щ:"щ",Ъ:"ъ",Ы:"ы",Ь:"ь",Э:"э",Ю:"ю",Я:"я",Ѡ:"ѡ",Ѣ:"ѣ",Ѥ:"ѥ",Ѧ:"ѧ",Ѩ:"ѩ",Ѫ:"ѫ",Ѭ:"ѭ",Ѯ:"ѯ",Ѱ:"ѱ",Ѳ:"ѳ",Ѵ:"ѵ",Ѷ:"ѷ",Ѹ:"ѹ",Ѻ:"ѻ",Ѽ:"ѽ",Ѿ:"ѿ",Ҁ:"ҁ","Ҋ":"ҋ",Ҍ:"ҍ",Ҏ:"ҏ",Ґ:"ґ",Ғ:"ғ",Ҕ:"ҕ",Җ:"җ",Ҙ:"ҙ",Қ:"қ",Ҝ:"ҝ",Ҟ:"ҟ",Ҡ:"ҡ",Ң:"ң",Ҥ:"ҥ",Ҧ:"ҧ",Ҩ:"ҩ",Ҫ:"ҫ",Ҭ:"ҭ",Ү:"ү",Ұ:"ұ",Ҳ:"ҳ",Ҵ:"ҵ",Ҷ:"ҷ",Ҹ:"ҹ",Һ:"һ",Ҽ:"ҽ",Ҿ:"ҿ",Ӏ:"ӏ",Ӂ:"ӂ",Ӄ:"ӄ","Ӆ":"ӆ",Ӈ:"ӈ","Ӊ":"ӊ",Ӌ:"ӌ","Ӎ":"ӎ",Ӑ:"ӑ",Ӓ:"ӓ",Ӕ:"ӕ",Ӗ:"ӗ",Ә:"ә",Ӛ:"ӛ",Ӝ:"ӝ",Ӟ:"ӟ",Ӡ:"ӡ",Ӣ:"ӣ",Ӥ:"ӥ",Ӧ:"ӧ",Ө:"ө",Ӫ:"ӫ",Ӭ:"ӭ",Ӯ:"ӯ",Ӱ:"ӱ",Ӳ:"ӳ",Ӵ:"ӵ","Ӷ":"ӷ",Ӹ:"ӹ","Ӻ":"ӻ","Ӽ":"ӽ","Ӿ":"ӿ","Ԁ":"ԁ","Ԃ":"ԃ","Ԅ":"ԅ","Ԇ":"ԇ","Ԉ":"ԉ","Ԋ":"ԋ","Ԍ":"ԍ","Ԏ":"ԏ","Ԑ":"ԑ","Ԓ":"ԓ","Ԕ":"ԕ","Ԗ":"ԗ","Ԙ":"ԙ","Ԛ":"ԛ","Ԝ":"ԝ","Ԟ":"ԟ","Ԡ":"ԡ","Ԣ":"ԣ","Ԥ":"ԥ","Ԧ":"ԧ","Ԩ":"ԩ","Ԫ":"ԫ","Ԭ":"ԭ","Ԯ":"ԯ",Ա:"ա",Բ:"բ",Գ:"գ",Դ:"դ",Ե:"ե",Զ:"զ",Է:"է",Ը:"ը",Թ:"թ",Ժ:"ժ",Ի:"ի",Լ:"լ",Խ:"խ",Ծ:"ծ",Կ:"կ",Հ:"հ",Ձ:"ձ",Ղ:"ղ",Ճ:"ճ",Մ:"մ",Յ:"յ",Ն:"ն",Շ:"շ",Ո:"ո",Չ:"չ",Պ:"պ",Ջ:"ջ",Ռ:"ռ",Ս:"ս",Վ:"վ",Տ:"տ",Ր:"ր",Ց:"ց",Ւ:"ւ",Փ:"փ",Ք:"ք",Օ:"օ",Ֆ:"ֆ",Ⴀ:"ⴀ",Ⴁ:"ⴁ",Ⴂ:"ⴂ",Ⴃ:"ⴃ",Ⴄ:"ⴄ",Ⴅ:"ⴅ",Ⴆ:"ⴆ",Ⴇ:"ⴇ",Ⴈ:"ⴈ",Ⴉ:"ⴉ",Ⴊ:"ⴊ",Ⴋ:"ⴋ",Ⴌ:"ⴌ",Ⴍ:"ⴍ",Ⴎ:"ⴎ",Ⴏ:"ⴏ",Ⴐ:"ⴐ",Ⴑ:"ⴑ",Ⴒ:"ⴒ",Ⴓ:"ⴓ",Ⴔ:"ⴔ",Ⴕ:"ⴕ",Ⴖ:"ⴖ",Ⴗ:"ⴗ",Ⴘ:"ⴘ",Ⴙ:"ⴙ",Ⴚ:"ⴚ",Ⴛ:"ⴛ",Ⴜ:"ⴜ",Ⴝ:"ⴝ",Ⴞ:"ⴞ",Ⴟ:"ⴟ",Ⴠ:"ⴠ",Ⴡ:"ⴡ",Ⴢ:"ⴢ",Ⴣ:"ⴣ",Ⴤ:"ⴤ",Ⴥ:"ⴥ","Ⴧ":"ⴧ","Ⴭ":"ⴭ",Ḁ:"ḁ",Ḃ:"ḃ",Ḅ:"ḅ",Ḇ:"ḇ",Ḉ:"ḉ",Ḋ:"ḋ",Ḍ:"ḍ",Ḏ:"ḏ",Ḑ:"ḑ",Ḓ:"ḓ",Ḕ:"ḕ",Ḗ:"ḗ",Ḙ:"ḙ",Ḛ:"ḛ",Ḝ:"ḝ",Ḟ:"ḟ",Ḡ:"ḡ",Ḣ:"ḣ",Ḥ:"ḥ",Ḧ:"ḧ",Ḩ:"ḩ",Ḫ:"ḫ",Ḭ:"ḭ",Ḯ:"ḯ",Ḱ:"ḱ",Ḳ:"ḳ",Ḵ:"ḵ",Ḷ:"ḷ",Ḹ:"ḹ",Ḻ:"ḻ",Ḽ:"ḽ",Ḿ:"ḿ",Ṁ:"ṁ",Ṃ:"ṃ",Ṅ:"ṅ",Ṇ:"ṇ",Ṉ:"ṉ",Ṋ:"ṋ",Ṍ:"ṍ",Ṏ:"ṏ",Ṑ:"ṑ",Ṓ:"ṓ",Ṕ:"ṕ",Ṗ:"ṗ",Ṙ:"ṙ",Ṛ:"ṛ",Ṝ:"ṝ",Ṟ:"ṟ",Ṡ:"ṡ",Ṣ:"ṣ",Ṥ:"ṥ",Ṧ:"ṧ",Ṩ:"ṩ",Ṫ:"ṫ",Ṭ:"ṭ",Ṯ:"ṯ",Ṱ:"ṱ",Ṳ:"ṳ",Ṵ:"ṵ",Ṷ:"ṷ",Ṹ:"ṹ",Ṻ:"ṻ",Ṽ:"ṽ",Ṿ:"ṿ",Ẁ:"ẁ",Ẃ:"ẃ",Ẅ:"ẅ",Ẇ:"ẇ",Ẉ:"ẉ",Ẋ:"ẋ",Ẍ:"ẍ",Ẏ:"ẏ",Ẑ:"ẑ",Ẓ:"ẓ",Ẕ:"ẕ",ẛ:"ṡ",Ạ:"ạ",Ả:"ả",Ấ:"ấ",Ầ:"ầ",Ẩ:"ẩ",Ẫ:"ẫ",Ậ:"ậ",Ắ:"ắ",Ằ:"ằ",Ẳ:"ẳ",Ẵ:"ẵ",Ặ:"ặ",Ẹ:"ẹ",Ẻ:"ẻ",Ẽ:"ẽ",Ế:"ế",Ề:"ề",Ể:"ể",Ễ:"ễ",Ệ:"ệ",Ỉ:"ỉ",Ị:"ị",Ọ:"ọ",Ỏ:"ỏ",Ố:"ố",Ồ:"ồ",Ổ:"ổ",Ỗ:"ỗ",Ộ:"ộ",Ớ:"ớ",Ờ:"ờ",Ở:"ở",Ỡ:"ỡ",Ợ:"ợ",Ụ:"ụ",Ủ:"ủ",Ứ:"ứ",Ừ:"ừ",Ử:"ử",Ữ:"ữ",Ự:"ự",Ỳ:"ỳ",Ỵ:"ỵ",Ỷ:"ỷ",Ỹ:"ỹ","Ỻ":"ỻ","Ỽ":"ỽ","Ỿ":"ỿ",Ἀ:"ἀ",Ἁ:"ἁ",Ἂ:"ἂ",Ἃ:"ἃ",Ἄ:"ἄ",Ἅ:"ἅ",Ἆ:"ἆ",Ἇ:"ἇ",Ἐ:"ἐ",Ἑ:"ἑ",Ἒ:"ἒ",Ἓ:"ἓ",Ἔ:"ἔ",Ἕ:"ἕ",Ἠ:"ἠ",Ἡ:"ἡ",Ἢ:"ἢ",Ἣ:"ἣ",Ἤ:"ἤ",Ἥ:"ἥ",Ἦ:"ἦ",Ἧ:"ἧ",Ἰ:"ἰ",Ἱ:"ἱ",Ἲ:"ἲ",Ἳ:"ἳ",Ἴ:"ἴ",Ἵ:"ἵ",Ἶ:"ἶ",Ἷ:"ἷ",Ὀ:"ὀ",Ὁ:"ὁ",Ὂ:"ὂ",Ὃ:"ὃ",Ὄ:"ὄ",Ὅ:"ὅ",Ὑ:"ὑ",Ὓ:"ὓ",Ὕ:"ὕ",Ὗ:"ὗ",Ὠ:"ὠ",Ὡ:"ὡ",Ὢ:"ὢ",Ὣ:"ὣ",Ὤ:"ὤ",Ὥ:"ὥ",Ὦ:"ὦ",Ὧ:"ὧ",Ᾰ:"ᾰ",Ᾱ:"ᾱ",Ὰ:"ὰ",Ά:"ά",ι:"ι",Ὲ:"ὲ",Έ:"έ",Ὴ:"ὴ",Ή:"ή",Ῐ:"ῐ",Ῑ:"ῑ",Ὶ:"ὶ",Ί:"ί",Ῠ:"ῠ",Ῡ:"ῡ",Ὺ:"ὺ",Ύ:"ύ",Ῥ:"ῥ",Ὸ:"ὸ",Ό:"ό",Ὼ:"ὼ",Ώ:"ώ",Ω:"ω",K:"k",Å:"å","Ⅎ":"ⅎ","Ⅰ":"ⅰ","Ⅱ":"ⅱ","Ⅲ":"ⅲ","Ⅳ":"ⅳ","Ⅴ":"ⅴ","Ⅵ":"ⅵ","Ⅶ":"ⅶ","Ⅷ":"ⅷ","Ⅸ":"ⅸ","Ⅹ":"ⅹ","Ⅺ":"ⅺ","Ⅻ":"ⅻ","Ⅼ":"ⅼ","Ⅽ":"ⅽ","Ⅾ":"ⅾ","Ⅿ":"ⅿ","Ↄ":"ↄ","Ⓐ":"ⓐ","Ⓑ":"ⓑ","Ⓒ":"ⓒ","Ⓓ":"ⓓ","Ⓔ":"ⓔ","Ⓕ":"ⓕ","Ⓖ":"ⓖ","Ⓗ":"ⓗ","Ⓘ":"ⓘ","Ⓙ":"ⓙ","Ⓚ":"ⓚ","Ⓛ":"ⓛ","Ⓜ":"ⓜ","Ⓝ":"ⓝ","Ⓞ":"ⓞ","Ⓟ":"ⓟ","Ⓠ":"ⓠ","Ⓡ":"ⓡ","Ⓢ":"ⓢ","Ⓣ":"ⓣ","Ⓤ":"ⓤ","Ⓥ":"ⓥ","Ⓦ":"ⓦ","Ⓧ":"ⓧ","Ⓨ":"ⓨ","Ⓩ":"ⓩ","Ⰰ":"ⰰ","Ⰱ":"ⰱ","Ⰲ":"ⰲ","Ⰳ":"ⰳ","Ⰴ":"ⰴ","Ⰵ":"ⰵ","Ⰶ":"ⰶ","Ⰷ":"ⰷ","Ⰸ":"ⰸ","Ⰹ":"ⰹ","Ⰺ":"ⰺ","Ⰻ":"ⰻ","Ⰼ":"ⰼ","Ⰽ":"ⰽ","Ⰾ":"ⰾ","Ⰿ":"ⰿ","Ⱀ":"ⱀ","Ⱁ":"ⱁ","Ⱂ":"ⱂ","Ⱃ":"ⱃ","Ⱄ":"ⱄ","Ⱅ":"ⱅ","Ⱆ":"ⱆ","Ⱇ":"ⱇ","Ⱈ":"ⱈ","Ⱉ":"ⱉ","Ⱊ":"ⱊ","Ⱋ":"ⱋ","Ⱌ":"ⱌ","Ⱍ":"ⱍ","Ⱎ":"ⱎ","Ⱏ":"ⱏ","Ⱐ":"ⱐ","Ⱑ":"ⱑ","Ⱒ":"ⱒ","Ⱓ":"ⱓ","Ⱔ":"ⱔ","Ⱕ":"ⱕ","Ⱖ":"ⱖ","Ⱗ":"ⱗ","Ⱘ":"ⱘ","Ⱙ":"ⱙ","Ⱚ":"ⱚ","Ⱛ":"ⱛ","Ⱜ":"ⱜ","Ⱝ":"ⱝ","Ⱞ":"ⱞ","Ⱡ":"ⱡ","Ɫ":"ɫ","Ᵽ":"ᵽ","Ɽ":"ɽ","Ⱨ":"ⱨ","Ⱪ":"ⱪ","Ⱬ":"ⱬ","Ɑ":"ɑ","Ɱ":"ɱ","Ɐ":"ɐ","Ɒ":"ɒ","Ⱳ":"ⱳ","Ⱶ":"ⱶ","Ȿ":"ȿ","Ɀ":"ɀ","Ⲁ":"ⲁ","Ⲃ":"ⲃ","Ⲅ":"ⲅ","Ⲇ":"ⲇ","Ⲉ":"ⲉ","Ⲋ":"ⲋ","Ⲍ":"ⲍ","Ⲏ":"ⲏ","Ⲑ":"ⲑ","Ⲓ":"ⲓ","Ⲕ":"ⲕ","Ⲗ":"ⲗ","Ⲙ":"ⲙ","Ⲛ":"ⲛ","Ⲝ":"ⲝ","Ⲟ":"ⲟ","Ⲡ":"ⲡ","Ⲣ":"ⲣ","Ⲥ":"ⲥ","Ⲧ":"ⲧ","Ⲩ":"ⲩ","Ⲫ":"ⲫ","Ⲭ":"ⲭ","Ⲯ":"ⲯ","Ⲱ":"ⲱ","Ⲳ":"ⲳ","Ⲵ":"ⲵ","Ⲷ":"ⲷ","Ⲹ":"ⲹ","Ⲻ":"ⲻ","Ⲽ":"ⲽ","Ⲿ":"ⲿ","Ⳁ":"ⳁ","Ⳃ":"ⳃ","Ⳅ":"ⳅ","Ⳇ":"ⳇ","Ⳉ":"ⳉ","Ⳋ":"ⳋ","Ⳍ":"ⳍ","Ⳏ":"ⳏ","Ⳑ":"ⳑ","Ⳓ":"ⳓ","Ⳕ":"ⳕ","Ⳗ":"ⳗ","Ⳙ":"ⳙ","Ⳛ":"ⳛ","Ⳝ":"ⳝ","Ⳟ":"ⳟ","Ⳡ":"ⳡ","Ⳣ":"ⳣ","Ⳬ":"ⳬ","Ⳮ":"ⳮ","Ⳳ":"ⳳ","Ꙁ":"ꙁ","Ꙃ":"ꙃ","Ꙅ":"ꙅ","Ꙇ":"ꙇ","Ꙉ":"ꙉ","Ꙋ":"ꙋ","Ꙍ":"ꙍ","Ꙏ":"ꙏ","Ꙑ":"ꙑ","Ꙓ":"ꙓ","Ꙕ":"ꙕ","Ꙗ":"ꙗ","Ꙙ":"ꙙ","Ꙛ":"ꙛ","Ꙝ":"ꙝ","Ꙟ":"ꙟ","Ꙡ":"ꙡ","Ꙣ":"ꙣ","Ꙥ":"ꙥ","Ꙧ":"ꙧ","Ꙩ":"ꙩ","Ꙫ":"ꙫ","Ꙭ":"ꙭ","Ꚁ":"ꚁ","Ꚃ":"ꚃ","Ꚅ":"ꚅ","Ꚇ":"ꚇ","Ꚉ":"ꚉ","Ꚋ":"ꚋ","Ꚍ":"ꚍ","Ꚏ":"ꚏ","Ꚑ":"ꚑ","Ꚓ":"ꚓ","Ꚕ":"ꚕ","Ꚗ":"ꚗ","Ꚙ":"ꚙ","Ꚛ":"ꚛ","Ꜣ":"ꜣ","Ꜥ":"ꜥ","Ꜧ":"ꜧ","Ꜩ":"ꜩ","Ꜫ":"ꜫ","Ꜭ":"ꜭ","Ꜯ":"ꜯ","Ꜳ":"ꜳ","Ꜵ":"ꜵ","Ꜷ":"ꜷ","Ꜹ":"ꜹ","Ꜻ":"ꜻ","Ꜽ":"ꜽ","Ꜿ":"ꜿ","Ꝁ":"ꝁ","Ꝃ":"ꝃ","Ꝅ":"ꝅ","Ꝇ":"ꝇ","Ꝉ":"ꝉ","Ꝋ":"ꝋ","Ꝍ":"ꝍ","Ꝏ":"ꝏ","Ꝑ":"ꝑ","Ꝓ":"ꝓ","Ꝕ":"ꝕ","Ꝗ":"ꝗ","Ꝙ":"ꝙ","Ꝛ":"ꝛ","Ꝝ":"ꝝ","Ꝟ":"ꝟ","Ꝡ":"ꝡ","Ꝣ":"ꝣ","Ꝥ":"ꝥ","Ꝧ":"ꝧ","Ꝩ":"ꝩ","Ꝫ":"ꝫ","Ꝭ":"ꝭ","Ꝯ":"ꝯ","Ꝺ":"ꝺ","Ꝼ":"ꝼ","Ᵹ":"ᵹ","Ꝿ":"ꝿ","Ꞁ":"ꞁ","Ꞃ":"ꞃ","Ꞅ":"ꞅ","Ꞇ":"ꞇ","Ꞌ":"ꞌ","Ɥ":"ɥ","Ꞑ":"ꞑ","Ꞓ":"ꞓ","Ꞗ":"ꞗ","Ꞙ":"ꞙ","Ꞛ":"ꞛ","Ꞝ":"ꞝ","Ꞟ":"ꞟ","Ꞡ":"ꞡ","Ꞣ":"ꞣ","Ꞥ":"ꞥ","Ꞧ":"ꞧ","Ꞩ":"ꞩ","Ɦ":"ɦ","Ɜ":"ɜ","Ɡ":"ɡ","Ɬ":"ɬ","Ʞ":"ʞ","Ʇ":"ʇ",A:"a",B:"b",C:"c",D:"d",E:"e",F:"f",G:"g",H:"h",I:"i",J:"j",K:"k",L:"l",M:"m",N:"n",O:"o",P:"p",Q:"q",R:"r",S:"s",T:"t",U:"u",V:"v",W:"w",X:"x",Y:"y",Z:"z","𐐀":"𐐨","𐐁":"𐐩","𐐂":"𐐪","𐐃":"𐐫","𐐄":"𐐬","𐐅":"𐐭","𐐆":"𐐮","𐐇":"𐐯","𐐈":"𐐰","𐐉":"𐐱","𐐊":"𐐲","𐐋":"𐐳","𐐌":"𐐴","𐐍":"𐐵","𐐎":"𐐶","𐐏":"𐐷","𐐐":"𐐸","𐐑":"𐐹","𐐒":"𐐺","𐐓":"𐐻","𐐔":"𐐼","𐐕":"𐐽","𐐖":"𐐾","𐐗":"𐐿","𐐘":"𐑀","𐐙":"𐑁","𐐚":"𐑂","𐐛":"𐑃","𐐜":"𐑄","𐐝":"𐑅","𐐞":"𐑆","𐐟":"𐑇","𐐠":"𐑈","𐐡":"𐑉","𐐢":"𐑊","𐐣":"𐑋","𐐤":"𐑌","𐐥":"𐑍","𐐦":"𐑎","𐐧":"𐑏","𑢠":"𑣀","𑢡":"𑣁","𑢢":"𑣂","𑢣":"𑣃","𑢤":"𑣄","𑢥":"𑣅","𑢦":"𑣆","𑢧":"𑣇","𑢨":"𑣈","𑢩":"𑣉","𑢪":"𑣊","𑢫":"𑣋","𑢬":"𑣌","𑢭":"𑣍","𑢮":"𑣎","𑢯":"𑣏","𑢰":"𑣐","𑢱":"𑣑","𑢲":"𑣒","𑢳":"𑣓","𑢴":"𑣔","𑢵":"𑣕","𑢶":"𑣖","𑢷":"𑣗","𑢸":"𑣘","𑢹":"𑣙","𑢺":"𑣚","𑢻":"𑣛","𑢼":"𑣜","𑢽":"𑣝","𑢾":"𑣞","𑢿":"𑣟",ß:"ss",İ:"i̇",ʼn:"ʼn",ǰ:"ǰ",ΐ:"ΐ",ΰ:"ΰ",և:"եւ",ẖ:"ẖ",ẗ:"ẗ",ẘ:"ẘ",ẙ:"ẙ",ẚ:"aʾ","ẞ":"ss",ὐ:"ὐ",ὒ:"ὒ",ὔ:"ὔ",ὖ:"ὖ",ᾀ:"ἀι",ᾁ:"ἁι",ᾂ:"ἂι",ᾃ:"ἃι",ᾄ:"ἄι",ᾅ:"ἅι",ᾆ:"ἆι",ᾇ:"ἇι",ᾈ:"ἀι",ᾉ:"ἁι",ᾊ:"ἂι",ᾋ:"ἃι",ᾌ:"ἄι",ᾍ:"ἅι",ᾎ:"ἆι",ᾏ:"ἇι",ᾐ:"ἠι",ᾑ:"ἡι",ᾒ:"ἢι",ᾓ:"ἣι",ᾔ:"ἤι",ᾕ:"ἥι",ᾖ:"ἦι",ᾗ:"ἧι",ᾘ:"ἠι",ᾙ:"ἡι",ᾚ:"ἢι",ᾛ:"ἣι",ᾜ:"ἤι",ᾝ:"ἥι",ᾞ:"ἦι",ᾟ:"ἧι",ᾠ:"ὠι",ᾡ:"ὡι",ᾢ:"ὢι",ᾣ:"ὣι",ᾤ:"ὤι",ᾥ:"ὥι",ᾦ:"ὦι",ᾧ:"ὧι",ᾨ:"ὠι",ᾩ:"ὡι",ᾪ:"ὢι",ᾫ:"ὣι",ᾬ:"ὤι",ᾭ:"ὥι",ᾮ:"ὦι",ᾯ:"ὧι",ᾲ:"ὰι",ᾳ:"αι",ᾴ:"άι",ᾶ:"ᾶ",ᾷ:"ᾶι",ᾼ:"αι",ῂ:"ὴι",ῃ:"ηι",ῄ:"ήι",ῆ:"ῆ",ῇ:"ῆι",ῌ:"ηι",ῒ:"ῒ",ΐ:"ΐ",ῖ:"ῖ",ῗ:"ῗ",ῢ:"ῢ",ΰ:"ΰ",ῤ:"ῤ",ῦ:"ῦ",ῧ:"ῧ",ῲ:"ὼι",ῳ:"ωι",ῴ:"ώι",ῶ:"ῶ",ῷ:"ῶι",ῼ:"ωι",ff:"ff",fi:"fi",fl:"fl",ffi:"ffi",ffl:"ffl",ſt:"st",st:"st",ﬓ:"մն",ﬔ:"մե",ﬕ:"մի",ﬖ:"վն",ﬗ:"մխ"},entityReferences=[{key:[65,69,108,105,103,59],value:"Æ"},{key:[65,77,80,59],value:"&"},{key:[65,97,99,117,116,101,59],value:"Á"},{key:[65,98,114,101,118,101,59],value:"Ă"},{key:[65,99,105,114,99,59],value:"Â"},{key:[65,99,121,59],value:"А"},{key:[65,102,114,59],value:"𝔄"},{key:[65,103,114,97,118,101,59],value:"À"},{key:[65,108,112,104,97,59],value:"Α"},{key:[65,109,97,99,114,59],value:"Ā"},{key:[65,110,100,59],value:"⩓"},{key:[65,111,103,111,110,59],value:"Ą"},{key:[65,111,112,102,59],value:"𝔸"},{key:[65,112,112,108,121,70,117,110,99,116,105,111,110,59],value:"⁡"},{key:[65,114,105,110,103,59],value:"Å"},{key:[65,115,99,114,59],value:"𝒜"},{key:[65,115,115,105,103,110,59],value:"≔"},{key:[65,116,105,108,100,101,59],value:"Ã"},{key:[65,117,109,108,59],value:"Ä"},{key:[66,97,99,107,115,108,97,115,104,59],value:"∖"},{key:[66,97,114,118,59],value:"⫧"},{key:[66,97,114,119,101,100,59],value:"⌆"},{key:[66,99,121,59],value:"Б"},{key:[66,101,99,97,117,115,101,59],value:"∵"},{key:[66,101,114,110,111,117,108,108,105,115,59],value:"ℬ"},{key:[66,101,116,97,59],value:"Β"},{key:[66,102,114,59],value:"𝔅"},{key:[66,111,112,102,59],value:"𝔹"},{key:[66,114,101,118,101,59],value:"˘"},{key:[66,115,99,114,59],value:"ℬ"},{key:[66,117,109,112,101,113,59],value:"≎"},{key:[67,72,99,121,59],value:"Ч"},{key:[67,79,80,89,59],value:"©"},{key:[67,97,99,117,116,101,59],value:"Ć"},{key:[67,97,112,59],value:"⋒"},{key:[67,97,112,105,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59],value:"ⅅ"},{key:[67,97,121,108,101,121,115,59],value:"ℭ"},{key:[67,99,97,114,111,110,59],value:"Č"},{key:[67,99,101,100,105,108,59],value:"Ç"},{key:[67,99,105,114,99,59],value:"Ĉ"},{key:[67,99,111,110,105,110,116,59],value:"∰"},{key:[67,100,111,116,59],value:"Ċ"},{key:[67,101,100,105,108,108,97,59],value:"¸"},{key:[67,101,110,116,101,114,68,111,116,59],value:"·"},{key:[67,102,114,59],value:"ℭ"},{key:[67,104,105,59],value:"Χ"},{key:[67,105,114,99,108,101,68,111,116,59],value:"⊙"},{key:[67,105,114,99,108,101,77,105,110,117,115,59],value:"⊖"},{key:[67,105,114,99,108,101,80,108,117,115,59],value:"⊕"},{key:[67,105,114,99,108,101,84,105,109,101,115,59],value:"⊗"},{key:[67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∲"},{key:[67,108,111,115,101,67,117,114,108,121,68,111,117,98,108,101,81,117,111,116,101,59],value:"”"},{key:[67,108,111,115,101,67,117,114,108,121,81,117,111,116,101,59],value:"’"},{key:[67,111,108,111,110,59],value:"∷"},{key:[67,111,108,111,110,101,59],value:"⩴"},{key:[67,111,110,103,114,117,101,110,116,59],value:"≡"},{key:[67,111,110,105,110,116,59],value:"∯"},{key:[67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∮"},{key:[67,111,112,102,59],value:"ℂ"},{key:[67,111,112,114,111,100,117,99,116,59],value:"∐"},{key:[67,111,117,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∳"},{key:[67,114,111,115,115,59],value:"⨯"},{key:[67,115,99,114,59],value:"𝒞"},{key:[67,117,112,59],value:"⋓"},{key:[67,117,112,67,97,112,59],value:"≍"},{key:[68,68,59],value:"ⅅ"},{key:[68,68,111,116,114,97,104,100,59],value:"⤑"},{key:[68,74,99,121,59],value:"Ђ"},{key:[68,83,99,121,59],value:"Ѕ"},{key:[68,90,99,121,59],value:"Џ"},{key:[68,97,103,103,101,114,59],value:"‡"},{key:[68,97,114,114,59],value:"↡"},{key:[68,97,115,104,118,59],value:"⫤"},{key:[68,99,97,114,111,110,59],value:"Ď"},{key:[68,99,121,59],value:"Д"},{key:[68,101,108,59],value:"∇"},{key:[68,101,108,116,97,59],value:"Δ"},{key:[68,102,114,59],value:"𝔇"},{key:[68,105,97,99,114,105,116,105,99,97,108,65,99,117,116,101,59],value:"´"},{key:[68,105,97,99,114,105,116,105,99,97,108,68,111,116,59],value:"˙"},{key:[68,105,97,99,114,105,116,105,99,97,108,68,111,117,98,108,101,65,99,117,116,101,59],value:"˝"},{key:[68,105,97,99,114,105,116,105,99,97,108,71,114,97,118,101,59],value:"`"},{key:[68,105,97,99,114,105,116,105,99,97,108,84,105,108,100,101,59],value:"˜"},{key:[68,105,97,109,111,110,100,59],value:"⋄"},{key:[68,105,102,102,101,114,101,110,116,105,97,108,68,59],value:"ⅆ"},{key:[68,111,112,102,59],value:"𝔻"},{key:[68,111,116,59],value:"¨"},{key:[68,111,116,68,111,116,59],value:"⃜"},{key:[68,111,116,69,113,117,97,108,59],value:"≐"},{key:[68,111,117,98,108,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∯"},{key:[68,111,117,98,108,101,68,111,116,59],value:"¨"},{key:[68,111,117,98,108,101,68,111,119,110,65,114,114,111,119,59],value:"⇓"},{key:[68,111,117,98,108,101,76,101,102,116,65,114,114,111,119,59],value:"⇐"},{key:[68,111,117,98,108,101,76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"⇔"},{key:[68,111,117,98,108,101,76,101,102,116,84,101,101,59],value:"⫤"},{key:[68,111,117,98,108,101,76,111,110,103,76,101,102,116,65,114,114,111,119,59],value:"⟸"},{key:[68,111,117,98,108,101,76,111,110,103,76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"⟺"},{key:[68,111,117,98,108,101,76,111,110,103,82,105,103,104,116,65,114,114,111,119,59],value:"⟹"},{key:[68,111,117,98,108,101,82,105,103,104,116,65,114,114,111,119,59],value:"⇒"},{key:[68,111,117,98,108,101,82,105,103,104,116,84,101,101,59],value:"⊨"},{key:[68,111,117,98,108,101,85,112,65,114,114,111,119,59],value:"⇑"},{key:[68,111,117,98,108,101,85,112,68,111,119,110,65,114,114,111,119,59],value:"⇕"},{key:[68,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59],value:"∥"},{key:[68,111,119,110,65,114,114,111,119,59],value:"↓"},{key:[68,111,119,110,65,114,114,111,119,66,97,114,59],value:"⤓"},{key:[68,111,119,110,65,114,114,111,119,85,112,65,114,114,111,119,59],value:"⇵"},{key:[68,111,119,110,66,114,101,118,101,59],value:"̑"},{key:[68,111,119,110,76,101,102,116,82,105,103,104,116,86,101,99,116,111,114,59],value:"⥐"},{key:[68,111,119,110,76,101,102,116,84,101,101,86,101,99,116,111,114,59],value:"⥞"},{key:[68,111,119,110,76,101,102,116,86,101,99,116,111,114,59],value:"↽"},{key:[68,111,119,110,76,101,102,116,86,101,99,116,111,114,66,97,114,59],value:"⥖"},{key:[68,111,119,110,82,105,103,104,116,84,101,101,86,101,99,116,111,114,59],value:"⥟"},{key:[68,111,119,110,82,105,103,104,116,86,101,99,116,111,114,59],value:"⇁"},{key:[68,111,119,110,82,105,103,104,116,86,101,99,116,111,114,66,97,114,59],value:"⥗"},{key:[68,111,119,110,84,101,101,59],value:"⊤"},{key:[68,111,119,110,84,101,101,65,114,114,111,119,59],value:"↧"},{key:[68,111,119,110,97,114,114,111,119,59],value:"⇓"},{key:[68,115,99,114,59],value:"𝒟"},{key:[68,115,116,114,111,107,59],value:"Đ"},{key:[69,78,71,59],value:"Ŋ"},{key:[69,84,72,59],value:"Ð"},{key:[69,97,99,117,116,101,59],value:"É"},{key:[69,99,97,114,111,110,59],value:"Ě"},{key:[69,99,105,114,99,59],value:"Ê"},{key:[69,99,121,59],value:"Э"},{key:[69,100,111,116,59],value:"Ė"},{key:[69,102,114,59],value:"𝔈"},{key:[69,103,114,97,118,101,59],value:"È"},{key:[69,108,101,109,101,110,116,59],value:"∈"},{key:[69,109,97,99,114,59],value:"Ē"},{key:[69,109,112,116,121,83,109,97,108,108,83,113,117,97,114,101,59],value:"◻"},{key:[69,109,112,116,121,86,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59],value:"▫"},{key:[69,111,103,111,110,59],value:"Ę"},{key:[69,111,112,102,59],value:"𝔼"},{key:[69,112,115,105,108,111,110,59],value:"Ε"},{key:[69,113,117,97,108,59],value:"⩵"},{key:[69,113,117,97,108,84,105,108,100,101,59],value:"≂"},{key:[69,113,117,105,108,105,98,114,105,117,109,59],value:"⇌"},{key:[69,115,99,114,59],value:"ℰ"},{key:[69,115,105,109,59],value:"⩳"},{key:[69,116,97,59],value:"Η"},{key:[69,117,109,108,59],value:"Ë"},{key:[69,120,105,115,116,115,59],value:"∃"},{key:[69,120,112,111,110,101,110,116,105,97,108,69,59],value:"ⅇ"},{key:[70,99,121,59],value:"Ф"},{key:[70,102,114,59],value:"𝔉"},{key:[70,105,108,108,101,100,83,109,97,108,108,83,113,117,97,114,101,59],value:"◼"},{key:[70,105,108,108,101,100,86,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59],value:"▪"},{key:[70,111,112,102,59],value:"𝔽"},{key:[70,111,114,65,108,108,59],value:"∀"},{key:[70,111,117,114,105,101,114,116,114,102,59],value:"ℱ"},{key:[70,115,99,114,59],value:"ℱ"},{key:[71,74,99,121,59],value:"Ѓ"},{key:[71,84,59],value:">"},{key:[71,97,109,109,97,59],value:"Γ"},{key:[71,97,109,109,97,100,59],value:"Ϝ"},{key:[71,98,114,101,118,101,59],value:"Ğ"},{key:[71,99,101,100,105,108,59],value:"Ģ"},{key:[71,99,105,114,99,59],value:"Ĝ"},{key:[71,99,121,59],value:"Г"},{key:[71,100,111,116,59],value:"Ġ"},{key:[71,102,114,59],value:"𝔊"},{key:[71,103,59],value:"⋙"},{key:[71,111,112,102,59],value:"𝔾"},{key:[71,114,101,97,116,101,114,69,113,117,97,108,59],value:"≥"},{key:[71,114,101,97,116,101,114,69,113,117,97,108,76,101,115,115,59],value:"⋛"},{key:[71,114,101,97,116,101,114,70,117,108,108,69,113,117,97,108,59],value:"≧"},{key:[71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"⪢"},{key:[71,114,101,97,116,101,114,76,101,115,115,59],value:"≷"},{key:[71,114,101,97,116,101,114,83,108,97,110,116,69,113,117,97,108,59],value:"⩾"},{key:[71,114,101,97,116,101,114,84,105,108,100,101,59],value:"≳"},{key:[71,115,99,114,59],value:"𝒢"},{key:[71,116,59],value:"≫"},{key:[72,65,82,68,99,121,59],value:"Ъ"},{key:[72,97,99,101,107,59],value:"ˇ"},{key:[72,97,116,59],value:"^"},{key:[72,99,105,114,99,59],value:"Ĥ"},{key:[72,102,114,59],value:"ℌ"},{key:[72,105,108,98,101,114,116,83,112,97,99,101,59],value:"ℋ"},{key:[72,111,112,102,59],value:"ℍ"},{key:[72,111,114,105,122,111,110,116,97,108,76,105,110,101,59],value:"─"},{key:[72,115,99,114,59],value:"ℋ"},{key:[72,115,116,114,111,107,59],value:"Ħ"},{key:[72,117,109,112,68,111,119,110,72,117,109,112,59],value:"≎"},{key:[72,117,109,112,69,113,117,97,108,59],value:"≏"},{key:[73,69,99,121,59],value:"Е"},{key:[73,74,108,105,103,59],value:"IJ"},{key:[73,79,99,121,59],value:"Ё"},{key:[73,97,99,117,116,101,59],value:"Í"},{key:[73,99,105,114,99,59],value:"Î"},{key:[73,99,121,59],value:"И"},{key:[73,100,111,116,59],value:"İ"},{key:[73,102,114,59],value:"ℑ"},{key:[73,103,114,97,118,101,59],value:"Ì"},{key:[73,109,59],value:"ℑ"},{key:[73,109,97,99,114,59],value:"Ī"},{key:[73,109,97,103,105,110,97,114,121,73,59],value:"ⅈ"},{key:[73,109,112,108,105,101,115,59],value:"⇒"},{key:[73,110,116,59],value:"∬"},{key:[73,110,116,101,103,114,97,108,59],value:"∫"},{key:[73,110,116,101,114,115,101,99,116,105,111,110,59],value:"⋂"},{key:[73,110,118,105,115,105,98,108,101,67,111,109,109,97,59],value:"⁣"},{key:[73,110,118,105,115,105,98,108,101,84,105,109,101,115,59],value:"⁢"},{key:[73,111,103,111,110,59],value:"Į"},{key:[73,111,112,102,59],value:"𝕀"},{key:[73,111,116,97,59],value:"Ι"},{key:[73,115,99,114,59],value:"ℐ"},{key:[73,116,105,108,100,101,59],value:"Ĩ"},{key:[73,117,107,99,121,59],value:"І"},{key:[73,117,109,108,59],value:"Ï"},{key:[74,99,105,114,99,59],value:"Ĵ"},{key:[74,99,121,59],value:"Й"},{key:[74,102,114,59],value:"𝔍"},{key:[74,111,112,102,59],value:"𝕁"},{key:[74,115,99,114,59],value:"𝒥"},{key:[74,115,101,114,99,121,59],value:"Ј"},{key:[74,117,107,99,121,59],value:"Є"},{key:[75,72,99,121,59],value:"Х"},{key:[75,74,99,121,59],value:"Ќ"},{key:[75,97,112,112,97,59],value:"Κ"},{key:[75,99,101,100,105,108,59],value:"Ķ"},{key:[75,99,121,59],value:"К"},{key:[75,102,114,59],value:"𝔎"},{key:[75,111,112,102,59],value:"𝕂"},{key:[75,115,99,114,59],value:"𝒦"},{key:[76,74,99,121,59],value:"Љ"},{key:[76,84,59],value:"<"},{key:[76,97,99,117,116,101,59],value:"Ĺ"},{key:[76,97,109,98,100,97,59],value:"Λ"},{key:[76,97,110,103,59],value:"⟪"},{key:[76,97,112,108,97,99,101,116,114,102,59],value:"ℒ"},{key:[76,97,114,114,59],value:"↞"},{key:[76,99,97,114,111,110,59],value:"Ľ"},{key:[76,99,101,100,105,108,59],value:"Ļ"},{key:[76,99,121,59],value:"Л"},{key:[76,101,102,116,65,110,103,108,101,66,114,97,99,107,101,116,59],value:"⟨"},{key:[76,101,102,116,65,114,114,111,119,59],value:"←"},{key:[76,101,102,116,65,114,114,111,119,66,97,114,59],value:"⇤"},{key:[76,101,102,116,65,114,114,111,119,82,105,103,104,116,65,114,114,111,119,59],value:"⇆"},{key:[76,101,102,116,67,101,105,108,105,110,103,59],value:"⌈"},{key:[76,101,102,116,68,111,117,98,108,101,66,114,97,99,107,101,116,59],value:"⟦"},{key:[76,101,102,116,68,111,119,110,84,101,101,86,101,99,116,111,114,59],value:"⥡"},{key:[76,101,102,116,68,111,119,110,86,101,99,116,111,114,59],value:"⇃"},{key:[76,101,102,116,68,111,119,110,86,101,99,116,111,114,66,97,114,59],value:"⥙"},{key:[76,101,102,116,70,108,111,111,114,59],value:"⌊"},{key:[76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"↔"},{key:[76,101,102,116,82,105,103,104,116,86,101,99,116,111,114,59],value:"⥎"},{key:[76,101,102,116,84,101,101,59],value:"⊣"},{key:[76,101,102,116,84,101,101,65,114,114,111,119,59],value:"↤"},{key:[76,101,102,116,84,101,101,86,101,99,116,111,114,59],value:"⥚"},{key:[76,101,102,116,84,114,105,97,110,103,108,101,59],value:"⊲"},{key:[76,101,102,116,84,114,105,97,110,103,108,101,66,97,114,59],value:"⧏"},{key:[76,101,102,116,84,114,105,97,110,103,108,101,69,113,117,97,108,59],value:"⊴"},{key:[76,101,102,116,85,112,68,111,119,110,86,101,99,116,111,114,59],value:"⥑"},{key:[76,101,102,116,85,112,84,101,101,86,101,99,116,111,114,59],value:"⥠"},{key:[76,101,102,116,85,112,86,101,99,116,111,114,59],value:"↿"},{key:[76,101,102,116,85,112,86,101,99,116,111,114,66,97,114,59],value:"⥘"},{key:[76,101,102,116,86,101,99,116,111,114,59],value:"↼"},{key:[76,101,102,116,86,101,99,116,111,114,66,97,114,59],value:"⥒"},{key:[76,101,102,116,97,114,114,111,119,59],value:"⇐"},{key:[76,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⇔"},{key:[76,101,115,115,69,113,117,97,108,71,114,101,97,116,101,114,59],value:"⋚"},{key:[76,101,115,115,70,117,108,108,69,113,117,97,108,59],value:"≦"},{key:[76,101,115,115,71,114,101,97,116,101,114,59],value:"≶"},{key:[76,101,115,115,76,101,115,115,59],value:"⪡"},{key:[76,101,115,115,83,108,97,110,116,69,113,117,97,108,59],value:"⩽"},{key:[76,101,115,115,84,105,108,100,101,59],value:"≲"},{key:[76,102,114,59],value:"𝔏"},{key:[76,108,59],value:"⋘"},{key:[76,108,101,102,116,97,114,114,111,119,59],value:"⇚"},{key:[76,109,105,100,111,116,59],value:"Ŀ"},{key:[76,111,110,103,76,101,102,116,65,114,114,111,119,59],value:"⟵"},{key:[76,111,110,103,76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"⟷"},{key:[76,111,110,103,82,105,103,104,116,65,114,114,111,119,59],value:"⟶"},{key:[76,111,110,103,108,101,102,116,97,114,114,111,119,59],value:"⟸"},{key:[76,111,110,103,108,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⟺"},{key:[76,111,110,103,114,105,103,104,116,97,114,114,111,119,59],value:"⟹"},{key:[76,111,112,102,59],value:"𝕃"},{key:[76,111,119,101,114,76,101,102,116,65,114,114,111,119,59],value:"↙"},{key:[76,111,119,101,114,82,105,103,104,116,65,114,114,111,119,59],value:"↘"},{key:[76,115,99,114,59],value:"ℒ"},{key:[76,115,104,59],value:"↰"},{key:[76,115,116,114,111,107,59],value:"Ł"},{key:[76,116,59],value:"≪"},{key:[77,97,112,59],value:"⤅"},{key:[77,99,121,59],value:"М"},{key:[77,101,100,105,117,109,83,112,97,99,101,59],value:" "},{key:[77,101,108,108,105,110,116,114,102,59],value:"ℳ"},{key:[77,102,114,59],value:"𝔐"},{key:[77,105,110,117,115,80,108,117,115,59],value:"∓"},{key:[77,111,112,102,59],value:"𝕄"},{key:[77,115,99,114,59],value:"ℳ"},{key:[77,117,59],value:"Μ"},{key:[78,74,99,121,59],value:"Њ"},{key:[78,97,99,117,116,101,59],value:"Ń"},{key:[78,99,97,114,111,110,59],value:"Ň"},{key:[78,99,101,100,105,108,59],value:"Ņ"},{key:[78,99,121,59],value:"Н"},{key:[78,101,103,97,116,105,118,101,77,101,100,105,117,109,83,112,97,99,101,59],value:"​"},{key:[78,101,103,97,116,105,118,101,84,104,105,99,107,83,112,97,99,101,59],value:"​"},{key:[78,101,103,97,116,105,118,101,84,104,105,110,83,112,97,99,101,59],value:"​"},{key:[78,101,103,97,116,105,118,101,86,101,114,121,84,104,105,110,83,112,97,99,101,59],value:"​"},{key:[78,101,115,116,101,100,71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"≫"},{key:[78,101,115,116,101,100,76,101,115,115,76,101,115,115,59],value:"≪"},{key:[78,101,119,76,105,110,101,59],value:` +`},{key:[78,102,114,59],value:"𝔑"},{key:[78,111,66,114,101,97,107,59],value:"⁠"},{key:[78,111,110,66,114,101,97,107,105,110,103,83,112,97,99,101,59],value:" "},{key:[78,111,112,102,59],value:"ℕ"},{key:[78,111,116,59],value:"⫬"},{key:[78,111,116,67,111,110,103,114,117,101,110,116,59],value:"≢"},{key:[78,111,116,67,117,112,67,97,112,59],value:"≭"},{key:[78,111,116,68,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59],value:"∦"},{key:[78,111,116,69,108,101,109,101,110,116,59],value:"∉"},{key:[78,111,116,69,113,117,97,108,59],value:"≠"},{key:[78,111,116,69,113,117,97,108,84,105,108,100,101,59],value:"≂̸"},{key:[78,111,116,69,120,105,115,116,115,59],value:"∄"},{key:[78,111,116,71,114,101,97,116,101,114,59],value:"≯"},{key:[78,111,116,71,114,101,97,116,101,114,69,113,117,97,108,59],value:"≱"},{key:[78,111,116,71,114,101,97,116,101,114,70,117,108,108,69,113,117,97,108,59],value:"≧̸"},{key:[78,111,116,71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"≫̸"},{key:[78,111,116,71,114,101,97,116,101,114,76,101,115,115,59],value:"≹"},{key:[78,111,116,71,114,101,97,116,101,114,83,108,97,110,116,69,113,117,97,108,59],value:"⩾̸"},{key:[78,111,116,71,114,101,97,116,101,114,84,105,108,100,101,59],value:"≵"},{key:[78,111,116,72,117,109,112,68,111,119,110,72,117,109,112,59],value:"≎̸"},{key:[78,111,116,72,117,109,112,69,113,117,97,108,59],value:"≏̸"},{key:[78,111,116,76,101,102,116,84,114,105,97,110,103,108,101,59],value:"⋪"},{key:[78,111,116,76,101,102,116,84,114,105,97,110,103,108,101,66,97,114,59],value:"⧏̸"},{key:[78,111,116,76,101,102,116,84,114,105,97,110,103,108,101,69,113,117,97,108,59],value:"⋬"},{key:[78,111,116,76,101,115,115,59],value:"≮"},{key:[78,111,116,76,101,115,115,69,113,117,97,108,59],value:"≰"},{key:[78,111,116,76,101,115,115,71,114,101,97,116,101,114,59],value:"≸"},{key:[78,111,116,76,101,115,115,76,101,115,115,59],value:"≪̸"},{key:[78,111,116,76,101,115,115,83,108,97,110,116,69,113,117,97,108,59],value:"⩽̸"},{key:[78,111,116,76,101,115,115,84,105,108,100,101,59],value:"≴"},{key:[78,111,116,78,101,115,116,101,100,71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"⪢̸"},{key:[78,111,116,78,101,115,116,101,100,76,101,115,115,76,101,115,115,59],value:"⪡̸"},{key:[78,111,116,80,114,101,99,101,100,101,115,59],value:"⊀"},{key:[78,111,116,80,114,101,99,101,100,101,115,69,113,117,97,108,59],value:"⪯̸"},{key:[78,111,116,80,114,101,99,101,100,101,115,83,108,97,110,116,69,113,117,97,108,59],value:"⋠"},{key:[78,111,116,82,101,118,101,114,115,101,69,108,101,109,101,110,116,59],value:"∌"},{key:[78,111,116,82,105,103,104,116,84,114,105,97,110,103,108,101,59],value:"⋫"},{key:[78,111,116,82,105,103,104,116,84,114,105,97,110,103,108,101,66,97,114,59],value:"⧐̸"},{key:[78,111,116,82,105,103,104,116,84,114,105,97,110,103,108,101,69,113,117,97,108,59],value:"⋭"},{key:[78,111,116,83,113,117,97,114,101,83,117,98,115,101,116,59],value:"⊏̸"},{key:[78,111,116,83,113,117,97,114,101,83,117,98,115,101,116,69,113,117,97,108,59],value:"⋢"},{key:[78,111,116,83,113,117,97,114,101,83,117,112,101,114,115,101,116,59],value:"⊐̸"},{key:[78,111,116,83,113,117,97,114,101,83,117,112,101,114,115,101,116,69,113,117,97,108,59],value:"⋣"},{key:[78,111,116,83,117,98,115,101,116,59],value:"⊂⃒"},{key:[78,111,116,83,117,98,115,101,116,69,113,117,97,108,59],value:"⊈"},{key:[78,111,116,83,117,99,99,101,101,100,115,59],value:"⊁"},{key:[78,111,116,83,117,99,99,101,101,100,115,69,113,117,97,108,59],value:"⪰̸"},{key:[78,111,116,83,117,99,99,101,101,100,115,83,108,97,110,116,69,113,117,97,108,59],value:"⋡"},{key:[78,111,116,83,117,99,99,101,101,100,115,84,105,108,100,101,59],value:"≿̸"},{key:[78,111,116,83,117,112,101,114,115,101,116,59],value:"⊃⃒"},{key:[78,111,116,83,117,112,101,114,115,101,116,69,113,117,97,108,59],value:"⊉"},{key:[78,111,116,84,105,108,100,101,59],value:"≁"},{key:[78,111,116,84,105,108,100,101,69,113,117,97,108,59],value:"≄"},{key:[78,111,116,84,105,108,100,101,70,117,108,108,69,113,117,97,108,59],value:"≇"},{key:[78,111,116,84,105,108,100,101,84,105,108,100,101,59],value:"≉"},{key:[78,111,116,86,101,114,116,105,99,97,108,66,97,114,59],value:"∤"},{key:[78,115,99,114,59],value:"𝒩"},{key:[78,116,105,108,100,101,59],value:"Ñ"},{key:[78,117,59],value:"Ν"},{key:[79,69,108,105,103,59],value:"Œ"},{key:[79,97,99,117,116,101,59],value:"Ó"},{key:[79,99,105,114,99,59],value:"Ô"},{key:[79,99,121,59],value:"О"},{key:[79,100,98,108,97,99,59],value:"Ő"},{key:[79,102,114,59],value:"𝔒"},{key:[79,103,114,97,118,101,59],value:"Ò"},{key:[79,109,97,99,114,59],value:"Ō"},{key:[79,109,101,103,97,59],value:"Ω"},{key:[79,109,105,99,114,111,110,59],value:"Ο"},{key:[79,111,112,102,59],value:"𝕆"},{key:[79,112,101,110,67,117,114,108,121,68,111,117,98,108,101,81,117,111,116,101,59],value:"“"},{key:[79,112,101,110,67,117,114,108,121,81,117,111,116,101,59],value:"‘"},{key:[79,114,59],value:"⩔"},{key:[79,115,99,114,59],value:"𝒪"},{key:[79,115,108,97,115,104,59],value:"Ø"},{key:[79,116,105,108,100,101,59],value:"Õ"},{key:[79,116,105,109,101,115,59],value:"⨷"},{key:[79,117,109,108,59],value:"Ö"},{key:[79,118,101,114,66,97,114,59],value:"‾"},{key:[79,118,101,114,66,114,97,99,101,59],value:"⏞"},{key:[79,118,101,114,66,114,97,99,107,101,116,59],value:"⎴"},{key:[79,118,101,114,80,97,114,101,110,116,104,101,115,105,115,59],value:"⏜"},{key:[80,97,114,116,105,97,108,68,59],value:"∂"},{key:[80,99,121,59],value:"П"},{key:[80,102,114,59],value:"𝔓"},{key:[80,104,105,59],value:"Φ"},{key:[80,105,59],value:"Π"},{key:[80,108,117,115,77,105,110,117,115,59],value:"±"},{key:[80,111,105,110,99,97,114,101,112,108,97,110,101,59],value:"ℌ"},{key:[80,111,112,102,59],value:"ℙ"},{key:[80,114,59],value:"⪻"},{key:[80,114,101,99,101,100,101,115,59],value:"≺"},{key:[80,114,101,99,101,100,101,115,69,113,117,97,108,59],value:"⪯"},{key:[80,114,101,99,101,100,101,115,83,108,97,110,116,69,113,117,97,108,59],value:"≼"},{key:[80,114,101,99,101,100,101,115,84,105,108,100,101,59],value:"≾"},{key:[80,114,105,109,101,59],value:"″"},{key:[80,114,111,100,117,99,116,59],value:"∏"},{key:[80,114,111,112,111,114,116,105,111,110,59],value:"∷"},{key:[80,114,111,112,111,114,116,105,111,110,97,108,59],value:"∝"},{key:[80,115,99,114,59],value:"𝒫"},{key:[80,115,105,59],value:"Ψ"},{key:[81,85,79,84,59],value:'"'},{key:[81,102,114,59],value:"𝔔"},{key:[81,111,112,102,59],value:"ℚ"},{key:[81,115,99,114,59],value:"𝒬"},{key:[82,66,97,114,114,59],value:"⤐"},{key:[82,69,71,59],value:"®"},{key:[82,97,99,117,116,101,59],value:"Ŕ"},{key:[82,97,110,103,59],value:"⟫"},{key:[82,97,114,114,59],value:"↠"},{key:[82,97,114,114,116,108,59],value:"⤖"},{key:[82,99,97,114,111,110,59],value:"Ř"},{key:[82,99,101,100,105,108,59],value:"Ŗ"},{key:[82,99,121,59],value:"Р"},{key:[82,101,59],value:"ℜ"},{key:[82,101,118,101,114,115,101,69,108,101,109,101,110,116,59],value:"∋"},{key:[82,101,118,101,114,115,101,69,113,117,105,108,105,98,114,105,117,109,59],value:"⇋"},{key:[82,101,118,101,114,115,101,85,112,69,113,117,105,108,105,98,114,105,117,109,59],value:"⥯"},{key:[82,102,114,59],value:"ℜ"},{key:[82,104,111,59],value:"Ρ"},{key:[82,105,103,104,116,65,110,103,108,101,66,114,97,99,107,101,116,59],value:"⟩"},{key:[82,105,103,104,116,65,114,114,111,119,59],value:"→"},{key:[82,105,103,104,116,65,114,114,111,119,66,97,114,59],value:"⇥"},{key:[82,105,103,104,116,65,114,114,111,119,76,101,102,116,65,114,114,111,119,59],value:"⇄"},{key:[82,105,103,104,116,67,101,105,108,105,110,103,59],value:"⌉"},{key:[82,105,103,104,116,68,111,117,98,108,101,66,114,97,99,107,101,116,59],value:"⟧"},{key:[82,105,103,104,116,68,111,119,110,84,101,101,86,101,99,116,111,114,59],value:"⥝"},{key:[82,105,103,104,116,68,111,119,110,86,101,99,116,111,114,59],value:"⇂"},{key:[82,105,103,104,116,68,111,119,110,86,101,99,116,111,114,66,97,114,59],value:"⥕"},{key:[82,105,103,104,116,70,108,111,111,114,59],value:"⌋"},{key:[82,105,103,104,116,84,101,101,59],value:"⊢"},{key:[82,105,103,104,116,84,101,101,65,114,114,111,119,59],value:"↦"},{key:[82,105,103,104,116,84,101,101,86,101,99,116,111,114,59],value:"⥛"},{key:[82,105,103,104,116,84,114,105,97,110,103,108,101,59],value:"⊳"},{key:[82,105,103,104,116,84,114,105,97,110,103,108,101,66,97,114,59],value:"⧐"},{key:[82,105,103,104,116,84,114,105,97,110,103,108,101,69,113,117,97,108,59],value:"⊵"},{key:[82,105,103,104,116,85,112,68,111,119,110,86,101,99,116,111,114,59],value:"⥏"},{key:[82,105,103,104,116,85,112,84,101,101,86,101,99,116,111,114,59],value:"⥜"},{key:[82,105,103,104,116,85,112,86,101,99,116,111,114,59],value:"↾"},{key:[82,105,103,104,116,85,112,86,101,99,116,111,114,66,97,114,59],value:"⥔"},{key:[82,105,103,104,116,86,101,99,116,111,114,59],value:"⇀"},{key:[82,105,103,104,116,86,101,99,116,111,114,66,97,114,59],value:"⥓"},{key:[82,105,103,104,116,97,114,114,111,119,59],value:"⇒"},{key:[82,111,112,102,59],value:"ℝ"},{key:[82,111,117,110,100,73,109,112,108,105,101,115,59],value:"⥰"},{key:[82,114,105,103,104,116,97,114,114,111,119,59],value:"⇛"},{key:[82,115,99,114,59],value:"ℛ"},{key:[82,115,104,59],value:"↱"},{key:[82,117,108,101,68,101,108,97,121,101,100,59],value:"⧴"},{key:[83,72,67,72,99,121,59],value:"Щ"},{key:[83,72,99,121,59],value:"Ш"},{key:[83,79,70,84,99,121,59],value:"Ь"},{key:[83,97,99,117,116,101,59],value:"Ś"},{key:[83,99,59],value:"⪼"},{key:[83,99,97,114,111,110,59],value:"Š"},{key:[83,99,101,100,105,108,59],value:"Ş"},{key:[83,99,105,114,99,59],value:"Ŝ"},{key:[83,99,121,59],value:"С"},{key:[83,102,114,59],value:"𝔖"},{key:[83,104,111,114,116,68,111,119,110,65,114,114,111,119,59],value:"↓"},{key:[83,104,111,114,116,76,101,102,116,65,114,114,111,119,59],value:"←"},{key:[83,104,111,114,116,82,105,103,104,116,65,114,114,111,119,59],value:"→"},{key:[83,104,111,114,116,85,112,65,114,114,111,119,59],value:"↑"},{key:[83,105,103,109,97,59],value:"Σ"},{key:[83,109,97,108,108,67,105,114,99,108,101,59],value:"∘"},{key:[83,111,112,102,59],value:"𝕊"},{key:[83,113,114,116,59],value:"√"},{key:[83,113,117,97,114,101,59],value:"□"},{key:[83,113,117,97,114,101,73,110,116,101,114,115,101,99,116,105,111,110,59],value:"⊓"},{key:[83,113,117,97,114,101,83,117,98,115,101,116,59],value:"⊏"},{key:[83,113,117,97,114,101,83,117,98,115,101,116,69,113,117,97,108,59],value:"⊑"},{key:[83,113,117,97,114,101,83,117,112,101,114,115,101,116,59],value:"⊐"},{key:[83,113,117,97,114,101,83,117,112,101,114,115,101,116,69,113,117,97,108,59],value:"⊒"},{key:[83,113,117,97,114,101,85,110,105,111,110,59],value:"⊔"},{key:[83,115,99,114,59],value:"𝒮"},{key:[83,116,97,114,59],value:"⋆"},{key:[83,117,98,59],value:"⋐"},{key:[83,117,98,115,101,116,59],value:"⋐"},{key:[83,117,98,115,101,116,69,113,117,97,108,59],value:"⊆"},{key:[83,117,99,99,101,101,100,115,59],value:"≻"},{key:[83,117,99,99,101,101,100,115,69,113,117,97,108,59],value:"⪰"},{key:[83,117,99,99,101,101,100,115,83,108,97,110,116,69,113,117,97,108,59],value:"≽"},{key:[83,117,99,99,101,101,100,115,84,105,108,100,101,59],value:"≿"},{key:[83,117,99,104,84,104,97,116,59],value:"∋"},{key:[83,117,109,59],value:"∑"},{key:[83,117,112,59],value:"⋑"},{key:[83,117,112,101,114,115,101,116,59],value:"⊃"},{key:[83,117,112,101,114,115,101,116,69,113,117,97,108,59],value:"⊇"},{key:[83,117,112,115,101,116,59],value:"⋑"},{key:[84,72,79,82,78,59],value:"Þ"},{key:[84,82,65,68,69,59],value:"™"},{key:[84,83,72,99,121,59],value:"Ћ"},{key:[84,83,99,121,59],value:"Ц"},{key:[84,97,98,59],value:" "},{key:[84,97,117,59],value:"Τ"},{key:[84,99,97,114,111,110,59],value:"Ť"},{key:[84,99,101,100,105,108,59],value:"Ţ"},{key:[84,99,121,59],value:"Т"},{key:[84,102,114,59],value:"𝔗"},{key:[84,104,101,114,101,102,111,114,101,59],value:"∴"},{key:[84,104,101,116,97,59],value:"Θ"},{key:[84,104,105,99,107,83,112,97,99,101,59],value:"  "},{key:[84,104,105,110,83,112,97,99,101,59],value:" "},{key:[84,105,108,100,101,59],value:"∼"},{key:[84,105,108,100,101,69,113,117,97,108,59],value:"≃"},{key:[84,105,108,100,101,70,117,108,108,69,113,117,97,108,59],value:"≅"},{key:[84,105,108,100,101,84,105,108,100,101,59],value:"≈"},{key:[84,111,112,102,59],value:"𝕋"},{key:[84,114,105,112,108,101,68,111,116,59],value:"⃛"},{key:[84,115,99,114,59],value:"𝒯"},{key:[84,115,116,114,111,107,59],value:"Ŧ"},{key:[85,97,99,117,116,101,59],value:"Ú"},{key:[85,97,114,114,59],value:"↟"},{key:[85,97,114,114,111,99,105,114,59],value:"⥉"},{key:[85,98,114,99,121,59],value:"Ў"},{key:[85,98,114,101,118,101,59],value:"Ŭ"},{key:[85,99,105,114,99,59],value:"Û"},{key:[85,99,121,59],value:"У"},{key:[85,100,98,108,97,99,59],value:"Ű"},{key:[85,102,114,59],value:"𝔘"},{key:[85,103,114,97,118,101,59],value:"Ù"},{key:[85,109,97,99,114,59],value:"Ū"},{key:[85,110,100,101,114,66,97,114,59],value:"_"},{key:[85,110,100,101,114,66,114,97,99,101,59],value:"⏟"},{key:[85,110,100,101,114,66,114,97,99,107,101,116,59],value:"⎵"},{key:[85,110,100,101,114,80,97,114,101,110,116,104,101,115,105,115,59],value:"⏝"},{key:[85,110,105,111,110,59],value:"⋃"},{key:[85,110,105,111,110,80,108,117,115,59],value:"⊎"},{key:[85,111,103,111,110,59],value:"Ų"},{key:[85,111,112,102,59],value:"𝕌"},{key:[85,112,65,114,114,111,119,59],value:"↑"},{key:[85,112,65,114,114,111,119,66,97,114,59],value:"⤒"},{key:[85,112,65,114,114,111,119,68,111,119,110,65,114,114,111,119,59],value:"⇅"},{key:[85,112,68,111,119,110,65,114,114,111,119,59],value:"↕"},{key:[85,112,69,113,117,105,108,105,98,114,105,117,109,59],value:"⥮"},{key:[85,112,84,101,101,59],value:"⊥"},{key:[85,112,84,101,101,65,114,114,111,119,59],value:"↥"},{key:[85,112,97,114,114,111,119,59],value:"⇑"},{key:[85,112,100,111,119,110,97,114,114,111,119,59],value:"⇕"},{key:[85,112,112,101,114,76,101,102,116,65,114,114,111,119,59],value:"↖"},{key:[85,112,112,101,114,82,105,103,104,116,65,114,114,111,119,59],value:"↗"},{key:[85,112,115,105,59],value:"ϒ"},{key:[85,112,115,105,108,111,110,59],value:"Υ"},{key:[85,114,105,110,103,59],value:"Ů"},{key:[85,115,99,114,59],value:"𝒰"},{key:[85,116,105,108,100,101,59],value:"Ũ"},{key:[85,117,109,108,59],value:"Ü"},{key:[86,68,97,115,104,59],value:"⊫"},{key:[86,98,97,114,59],value:"⫫"},{key:[86,99,121,59],value:"В"},{key:[86,100,97,115,104,59],value:"⊩"},{key:[86,100,97,115,104,108,59],value:"⫦"},{key:[86,101,101,59],value:"⋁"},{key:[86,101,114,98,97,114,59],value:"‖"},{key:[86,101,114,116,59],value:"‖"},{key:[86,101,114,116,105,99,97,108,66,97,114,59],value:"∣"},{key:[86,101,114,116,105,99,97,108,76,105,110,101,59],value:"|"},{key:[86,101,114,116,105,99,97,108,83,101,112,97,114,97,116,111,114,59],value:"❘"},{key:[86,101,114,116,105,99,97,108,84,105,108,100,101,59],value:"≀"},{key:[86,101,114,121,84,104,105,110,83,112,97,99,101,59],value:" "},{key:[86,102,114,59],value:"𝔙"},{key:[86,111,112,102,59],value:"𝕍"},{key:[86,115,99,114,59],value:"𝒱"},{key:[86,118,100,97,115,104,59],value:"⊪"},{key:[87,99,105,114,99,59],value:"Ŵ"},{key:[87,101,100,103,101,59],value:"⋀"},{key:[87,102,114,59],value:"𝔚"},{key:[87,111,112,102,59],value:"𝕎"},{key:[87,115,99,114,59],value:"𝒲"},{key:[88,102,114,59],value:"𝔛"},{key:[88,105,59],value:"Ξ"},{key:[88,111,112,102,59],value:"𝕏"},{key:[88,115,99,114,59],value:"𝒳"},{key:[89,65,99,121,59],value:"Я"},{key:[89,73,99,121,59],value:"Ї"},{key:[89,85,99,121,59],value:"Ю"},{key:[89,97,99,117,116,101,59],value:"Ý"},{key:[89,99,105,114,99,59],value:"Ŷ"},{key:[89,99,121,59],value:"Ы"},{key:[89,102,114,59],value:"𝔜"},{key:[89,111,112,102,59],value:"𝕐"},{key:[89,115,99,114,59],value:"𝒴"},{key:[89,117,109,108,59],value:"Ÿ"},{key:[90,72,99,121,59],value:"Ж"},{key:[90,97,99,117,116,101,59],value:"Ź"},{key:[90,99,97,114,111,110,59],value:"Ž"},{key:[90,99,121,59],value:"З"},{key:[90,100,111,116,59],value:"Ż"},{key:[90,101,114,111,87,105,100,116,104,83,112,97,99,101,59],value:"​"},{key:[90,101,116,97,59],value:"Ζ"},{key:[90,102,114,59],value:"ℨ"},{key:[90,111,112,102,59],value:"ℤ"},{key:[90,115,99,114,59],value:"𝒵"},{key:[97,97,99,117,116,101,59],value:"á"},{key:[97,98,114,101,118,101,59],value:"ă"},{key:[97,99,59],value:"∾"},{key:[97,99,69,59],value:"∾̳"},{key:[97,99,100,59],value:"∿"},{key:[97,99,105,114,99,59],value:"â"},{key:[97,99,117,116,101,59],value:"´"},{key:[97,99,121,59],value:"а"},{key:[97,101,108,105,103,59],value:"æ"},{key:[97,102,59],value:"⁡"},{key:[97,102,114,59],value:"𝔞"},{key:[97,103,114,97,118,101,59],value:"à"},{key:[97,108,101,102,115,121,109,59],value:"ℵ"},{key:[97,108,101,112,104,59],value:"ℵ"},{key:[97,108,112,104,97,59],value:"α"},{key:[97,109,97,99,114,59],value:"ā"},{key:[97,109,97,108,103,59],value:"⨿"},{key:[97,109,112,59],value:"&"},{key:[97,110,100,59],value:"∧"},{key:[97,110,100,97,110,100,59],value:"⩕"},{key:[97,110,100,100,59],value:"⩜"},{key:[97,110,100,115,108,111,112,101,59],value:"⩘"},{key:[97,110,100,118,59],value:"⩚"},{key:[97,110,103,59],value:"∠"},{key:[97,110,103,101,59],value:"⦤"},{key:[97,110,103,108,101,59],value:"∠"},{key:[97,110,103,109,115,100,59],value:"∡"},{key:[97,110,103,109,115,100,97,97,59],value:"⦨"},{key:[97,110,103,109,115,100,97,98,59],value:"⦩"},{key:[97,110,103,109,115,100,97,99,59],value:"⦪"},{key:[97,110,103,109,115,100,97,100,59],value:"⦫"},{key:[97,110,103,109,115,100,97,101,59],value:"⦬"},{key:[97,110,103,109,115,100,97,102,59],value:"⦭"},{key:[97,110,103,109,115,100,97,103,59],value:"⦮"},{key:[97,110,103,109,115,100,97,104,59],value:"⦯"},{key:[97,110,103,114,116,59],value:"∟"},{key:[97,110,103,114,116,118,98,59],value:"⊾"},{key:[97,110,103,114,116,118,98,100,59],value:"⦝"},{key:[97,110,103,115,112,104,59],value:"∢"},{key:[97,110,103,115,116,59],value:"Å"},{key:[97,110,103,122,97,114,114,59],value:"⍼"},{key:[97,111,103,111,110,59],value:"ą"},{key:[97,111,112,102,59],value:"𝕒"},{key:[97,112,59],value:"≈"},{key:[97,112,69,59],value:"⩰"},{key:[97,112,97,99,105,114,59],value:"⩯"},{key:[97,112,101,59],value:"≊"},{key:[97,112,105,100,59],value:"≋"},{key:[97,112,111,115,59],value:"'"},{key:[97,112,112,114,111,120,59],value:"≈"},{key:[97,112,112,114,111,120,101,113,59],value:"≊"},{key:[97,114,105,110,103,59],value:"å"},{key:[97,115,99,114,59],value:"𝒶"},{key:[97,115,116,59],value:"*"},{key:[97,115,121,109,112,59],value:"≈"},{key:[97,115,121,109,112,101,113,59],value:"≍"},{key:[97,116,105,108,100,101,59],value:"ã"},{key:[97,117,109,108,59],value:"ä"},{key:[97,119,99,111,110,105,110,116,59],value:"∳"},{key:[97,119,105,110,116,59],value:"⨑"},{key:[98,78,111,116,59],value:"⫭"},{key:[98,97,99,107,99,111,110,103,59],value:"≌"},{key:[98,97,99,107,101,112,115,105,108,111,110,59],value:"϶"},{key:[98,97,99,107,112,114,105,109,101,59],value:"‵"},{key:[98,97,99,107,115,105,109,59],value:"∽"},{key:[98,97,99,107,115,105,109,101,113,59],value:"⋍"},{key:[98,97,114,118,101,101,59],value:"⊽"},{key:[98,97,114,119,101,100,59],value:"⌅"},{key:[98,97,114,119,101,100,103,101,59],value:"⌅"},{key:[98,98,114,107,59],value:"⎵"},{key:[98,98,114,107,116,98,114,107,59],value:"⎶"},{key:[98,99,111,110,103,59],value:"≌"},{key:[98,99,121,59],value:"б"},{key:[98,100,113,117,111,59],value:"„"},{key:[98,101,99,97,117,115,59],value:"∵"},{key:[98,101,99,97,117,115,101,59],value:"∵"},{key:[98,101,109,112,116,121,118,59],value:"⦰"},{key:[98,101,112,115,105,59],value:"϶"},{key:[98,101,114,110,111,117,59],value:"ℬ"},{key:[98,101,116,97,59],value:"β"},{key:[98,101,116,104,59],value:"ℶ"},{key:[98,101,116,119,101,101,110,59],value:"≬"},{key:[98,102,114,59],value:"𝔟"},{key:[98,105,103,99,97,112,59],value:"⋂"},{key:[98,105,103,99,105,114,99,59],value:"◯"},{key:[98,105,103,99,117,112,59],value:"⋃"},{key:[98,105,103,111,100,111,116,59],value:"⨀"},{key:[98,105,103,111,112,108,117,115,59],value:"⨁"},{key:[98,105,103,111,116,105,109,101,115,59],value:"⨂"},{key:[98,105,103,115,113,99,117,112,59],value:"⨆"},{key:[98,105,103,115,116,97,114,59],value:"★"},{key:[98,105,103,116,114,105,97,110,103,108,101,100,111,119,110,59],value:"▽"},{key:[98,105,103,116,114,105,97,110,103,108,101,117,112,59],value:"△"},{key:[98,105,103,117,112,108,117,115,59],value:"⨄"},{key:[98,105,103,118,101,101,59],value:"⋁"},{key:[98,105,103,119,101,100,103,101,59],value:"⋀"},{key:[98,107,97,114,111,119,59],value:"⤍"},{key:[98,108,97,99,107,108,111,122,101,110,103,101,59],value:"⧫"},{key:[98,108,97,99,107,115,113,117,97,114,101,59],value:"▪"},{key:[98,108,97,99,107,116,114,105,97,110,103,108,101,59],value:"▴"},{key:[98,108,97,99,107,116,114,105,97,110,103,108,101,100,111,119,110,59],value:"▾"},{key:[98,108,97,99,107,116,114,105,97,110,103,108,101,108,101,102,116,59],value:"◂"},{key:[98,108,97,99,107,116,114,105,97,110,103,108,101,114,105,103,104,116,59],value:"▸"},{key:[98,108,97,110,107,59],value:"␣"},{key:[98,108,107,49,50,59],value:"▒"},{key:[98,108,107,49,52,59],value:"░"},{key:[98,108,107,51,52,59],value:"▓"},{key:[98,108,111,99,107,59],value:"█"},{key:[98,110,101,59],value:"=⃥"},{key:[98,110,101,113,117,105,118,59],value:"≡⃥"},{key:[98,110,111,116,59],value:"⌐"},{key:[98,111,112,102,59],value:"𝕓"},{key:[98,111,116,59],value:"⊥"},{key:[98,111,116,116,111,109,59],value:"⊥"},{key:[98,111,119,116,105,101,59],value:"⋈"},{key:[98,111,120,68,76,59],value:"╗"},{key:[98,111,120,68,82,59],value:"╔"},{key:[98,111,120,68,108,59],value:"╖"},{key:[98,111,120,68,114,59],value:"╓"},{key:[98,111,120,72,59],value:"═"},{key:[98,111,120,72,68,59],value:"╦"},{key:[98,111,120,72,85,59],value:"╩"},{key:[98,111,120,72,100,59],value:"╤"},{key:[98,111,120,72,117,59],value:"╧"},{key:[98,111,120,85,76,59],value:"╝"},{key:[98,111,120,85,82,59],value:"╚"},{key:[98,111,120,85,108,59],value:"╜"},{key:[98,111,120,85,114,59],value:"╙"},{key:[98,111,120,86,59],value:"║"},{key:[98,111,120,86,72,59],value:"╬"},{key:[98,111,120,86,76,59],value:"╣"},{key:[98,111,120,86,82,59],value:"╠"},{key:[98,111,120,86,104,59],value:"╫"},{key:[98,111,120,86,108,59],value:"╢"},{key:[98,111,120,86,114,59],value:"╟"},{key:[98,111,120,98,111,120,59],value:"⧉"},{key:[98,111,120,100,76,59],value:"╕"},{key:[98,111,120,100,82,59],value:"╒"},{key:[98,111,120,100,108,59],value:"┐"},{key:[98,111,120,100,114,59],value:"┌"},{key:[98,111,120,104,59],value:"─"},{key:[98,111,120,104,68,59],value:"╥"},{key:[98,111,120,104,85,59],value:"╨"},{key:[98,111,120,104,100,59],value:"┬"},{key:[98,111,120,104,117,59],value:"┴"},{key:[98,111,120,109,105,110,117,115,59],value:"⊟"},{key:[98,111,120,112,108,117,115,59],value:"⊞"},{key:[98,111,120,116,105,109,101,115,59],value:"⊠"},{key:[98,111,120,117,76,59],value:"╛"},{key:[98,111,120,117,82,59],value:"╘"},{key:[98,111,120,117,108,59],value:"┘"},{key:[98,111,120,117,114,59],value:"└"},{key:[98,111,120,118,59],value:"│"},{key:[98,111,120,118,72,59],value:"╪"},{key:[98,111,120,118,76,59],value:"╡"},{key:[98,111,120,118,82,59],value:"╞"},{key:[98,111,120,118,104,59],value:"┼"},{key:[98,111,120,118,108,59],value:"┤"},{key:[98,111,120,118,114,59],value:"├"},{key:[98,112,114,105,109,101,59],value:"‵"},{key:[98,114,101,118,101,59],value:"˘"},{key:[98,114,118,98,97,114,59],value:"¦"},{key:[98,115,99,114,59],value:"𝒷"},{key:[98,115,101,109,105,59],value:"⁏"},{key:[98,115,105,109,59],value:"∽"},{key:[98,115,105,109,101,59],value:"⋍"},{key:[98,115,111,108,59],value:"\\"},{key:[98,115,111,108,98,59],value:"⧅"},{key:[98,115,111,108,104,115,117,98,59],value:"⟈"},{key:[98,117,108,108,59],value:"•"},{key:[98,117,108,108,101,116,59],value:"•"},{key:[98,117,109,112,59],value:"≎"},{key:[98,117,109,112,69,59],value:"⪮"},{key:[98,117,109,112,101,59],value:"≏"},{key:[98,117,109,112,101,113,59],value:"≏"},{key:[99,97,99,117,116,101,59],value:"ć"},{key:[99,97,112,59],value:"∩"},{key:[99,97,112,97,110,100,59],value:"⩄"},{key:[99,97,112,98,114,99,117,112,59],value:"⩉"},{key:[99,97,112,99,97,112,59],value:"⩋"},{key:[99,97,112,99,117,112,59],value:"⩇"},{key:[99,97,112,100,111,116,59],value:"⩀"},{key:[99,97,112,115,59],value:"∩︀"},{key:[99,97,114,101,116,59],value:"⁁"},{key:[99,97,114,111,110,59],value:"ˇ"},{key:[99,99,97,112,115,59],value:"⩍"},{key:[99,99,97,114,111,110,59],value:"č"},{key:[99,99,101,100,105,108,59],value:"ç"},{key:[99,99,105,114,99,59],value:"ĉ"},{key:[99,99,117,112,115,59],value:"⩌"},{key:[99,99,117,112,115,115,109,59],value:"⩐"},{key:[99,100,111,116,59],value:"ċ"},{key:[99,101,100,105,108,59],value:"¸"},{key:[99,101,109,112,116,121,118,59],value:"⦲"},{key:[99,101,110,116,59],value:"¢"},{key:[99,101,110,116,101,114,100,111,116,59],value:"·"},{key:[99,102,114,59],value:"𝔠"},{key:[99,104,99,121,59],value:"ч"},{key:[99,104,101,99,107,59],value:"✓"},{key:[99,104,101,99,107,109,97,114,107,59],value:"✓"},{key:[99,104,105,59],value:"χ"},{key:[99,105,114,59],value:"○"},{key:[99,105,114,69,59],value:"⧃"},{key:[99,105,114,99,59],value:"ˆ"},{key:[99,105,114,99,101,113,59],value:"≗"},{key:[99,105,114,99,108,101,97,114,114,111,119,108,101,102,116,59],value:"↺"},{key:[99,105,114,99,108,101,97,114,114,111,119,114,105,103,104,116,59],value:"↻"},{key:[99,105,114,99,108,101,100,82,59],value:"®"},{key:[99,105,114,99,108,101,100,83,59],value:"Ⓢ"},{key:[99,105,114,99,108,101,100,97,115,116,59],value:"⊛"},{key:[99,105,114,99,108,101,100,99,105,114,99,59],value:"⊚"},{key:[99,105,114,99,108,101,100,100,97,115,104,59],value:"⊝"},{key:[99,105,114,101,59],value:"≗"},{key:[99,105,114,102,110,105,110,116,59],value:"⨐"},{key:[99,105,114,109,105,100,59],value:"⫯"},{key:[99,105,114,115,99,105,114,59],value:"⧂"},{key:[99,108,117,98,115,59],value:"♣"},{key:[99,108,117,98,115,117,105,116,59],value:"♣"},{key:[99,111,108,111,110,59],value:":"},{key:[99,111,108,111,110,101,59],value:"≔"},{key:[99,111,108,111,110,101,113,59],value:"≔"},{key:[99,111,109,109,97,59],value:","},{key:[99,111,109,109,97,116,59],value:"@"},{key:[99,111,109,112,59],value:"∁"},{key:[99,111,109,112,102,110,59],value:"∘"},{key:[99,111,109,112,108,101,109,101,110,116,59],value:"∁"},{key:[99,111,109,112,108,101,120,101,115,59],value:"ℂ"},{key:[99,111,110,103,59],value:"≅"},{key:[99,111,110,103,100,111,116,59],value:"⩭"},{key:[99,111,110,105,110,116,59],value:"∮"},{key:[99,111,112,102,59],value:"𝕔"},{key:[99,111,112,114,111,100,59],value:"∐"},{key:[99,111,112,121,59],value:"©"},{key:[99,111,112,121,115,114,59],value:"℗"},{key:[99,114,97,114,114,59],value:"↵"},{key:[99,114,111,115,115,59],value:"✗"},{key:[99,115,99,114,59],value:"𝒸"},{key:[99,115,117,98,59],value:"⫏"},{key:[99,115,117,98,101,59],value:"⫑"},{key:[99,115,117,112,59],value:"⫐"},{key:[99,115,117,112,101,59],value:"⫒"},{key:[99,116,100,111,116,59],value:"⋯"},{key:[99,117,100,97,114,114,108,59],value:"⤸"},{key:[99,117,100,97,114,114,114,59],value:"⤵"},{key:[99,117,101,112,114,59],value:"⋞"},{key:[99,117,101,115,99,59],value:"⋟"},{key:[99,117,108,97,114,114,59],value:"↶"},{key:[99,117,108,97,114,114,112,59],value:"⤽"},{key:[99,117,112,59],value:"∪"},{key:[99,117,112,98,114,99,97,112,59],value:"⩈"},{key:[99,117,112,99,97,112,59],value:"⩆"},{key:[99,117,112,99,117,112,59],value:"⩊"},{key:[99,117,112,100,111,116,59],value:"⊍"},{key:[99,117,112,111,114,59],value:"⩅"},{key:[99,117,112,115,59],value:"∪︀"},{key:[99,117,114,97,114,114,59],value:"↷"},{key:[99,117,114,97,114,114,109,59],value:"⤼"},{key:[99,117,114,108,121,101,113,112,114,101,99,59],value:"⋞"},{key:[99,117,114,108,121,101,113,115,117,99,99,59],value:"⋟"},{key:[99,117,114,108,121,118,101,101,59],value:"⋎"},{key:[99,117,114,108,121,119,101,100,103,101,59],value:"⋏"},{key:[99,117,114,114,101,110,59],value:"¤"},{key:[99,117,114,118,101,97,114,114,111,119,108,101,102,116,59],value:"↶"},{key:[99,117,114,118,101,97,114,114,111,119,114,105,103,104,116,59],value:"↷"},{key:[99,117,118,101,101,59],value:"⋎"},{key:[99,117,119,101,100,59],value:"⋏"},{key:[99,119,99,111,110,105,110,116,59],value:"∲"},{key:[99,119,105,110,116,59],value:"∱"},{key:[99,121,108,99,116,121,59],value:"⌭"},{key:[100,65,114,114,59],value:"⇓"},{key:[100,72,97,114,59],value:"⥥"},{key:[100,97,103,103,101,114,59],value:"†"},{key:[100,97,108,101,116,104,59],value:"ℸ"},{key:[100,97,114,114,59],value:"↓"},{key:[100,97,115,104,59],value:"‐"},{key:[100,97,115,104,118,59],value:"⊣"},{key:[100,98,107,97,114,111,119,59],value:"⤏"},{key:[100,98,108,97,99,59],value:"˝"},{key:[100,99,97,114,111,110,59],value:"ď"},{key:[100,99,121,59],value:"д"},{key:[100,100,59],value:"ⅆ"},{key:[100,100,97,103,103,101,114,59],value:"‡"},{key:[100,100,97,114,114,59],value:"⇊"},{key:[100,100,111,116,115,101,113,59],value:"⩷"},{key:[100,101,103,59],value:"°"},{key:[100,101,108,116,97,59],value:"δ"},{key:[100,101,109,112,116,121,118,59],value:"⦱"},{key:[100,102,105,115,104,116,59],value:"⥿"},{key:[100,102,114,59],value:"𝔡"},{key:[100,104,97,114,108,59],value:"⇃"},{key:[100,104,97,114,114,59],value:"⇂"},{key:[100,105,97,109,59],value:"⋄"},{key:[100,105,97,109,111,110,100,59],value:"⋄"},{key:[100,105,97,109,111,110,100,115,117,105,116,59],value:"♦"},{key:[100,105,97,109,115,59],value:"♦"},{key:[100,105,101,59],value:"¨"},{key:[100,105,103,97,109,109,97,59],value:"ϝ"},{key:[100,105,115,105,110,59],value:"⋲"},{key:[100,105,118,59],value:"÷"},{key:[100,105,118,105,100,101,59],value:"÷"},{key:[100,105,118,105,100,101,111,110,116,105,109,101,115,59],value:"⋇"},{key:[100,105,118,111,110,120,59],value:"⋇"},{key:[100,106,99,121,59],value:"ђ"},{key:[100,108,99,111,114,110,59],value:"⌞"},{key:[100,108,99,114,111,112,59],value:"⌍"},{key:[100,111,108,108,97,114,59],value:"$"},{key:[100,111,112,102,59],value:"𝕕"},{key:[100,111,116,59],value:"˙"},{key:[100,111,116,101,113,59],value:"≐"},{key:[100,111,116,101,113,100,111,116,59],value:"≑"},{key:[100,111,116,109,105,110,117,115,59],value:"∸"},{key:[100,111,116,112,108,117,115,59],value:"∔"},{key:[100,111,116,115,113,117,97,114,101,59],value:"⊡"},{key:[100,111,117,98,108,101,98,97,114,119,101,100,103,101,59],value:"⌆"},{key:[100,111,119,110,97,114,114,111,119,59],value:"↓"},{key:[100,111,119,110,100,111,119,110,97,114,114,111,119,115,59],value:"⇊"},{key:[100,111,119,110,104,97,114,112,111,111,110,108,101,102,116,59],value:"⇃"},{key:[100,111,119,110,104,97,114,112,111,111,110,114,105,103,104,116,59],value:"⇂"},{key:[100,114,98,107,97,114,111,119,59],value:"⤐"},{key:[100,114,99,111,114,110,59],value:"⌟"},{key:[100,114,99,114,111,112,59],value:"⌌"},{key:[100,115,99,114,59],value:"𝒹"},{key:[100,115,99,121,59],value:"ѕ"},{key:[100,115,111,108,59],value:"⧶"},{key:[100,115,116,114,111,107,59],value:"đ"},{key:[100,116,100,111,116,59],value:"⋱"},{key:[100,116,114,105,59],value:"▿"},{key:[100,116,114,105,102,59],value:"▾"},{key:[100,117,97,114,114,59],value:"⇵"},{key:[100,117,104,97,114,59],value:"⥯"},{key:[100,119,97,110,103,108,101,59],value:"⦦"},{key:[100,122,99,121,59],value:"џ"},{key:[100,122,105,103,114,97,114,114,59],value:"⟿"},{key:[101,68,68,111,116,59],value:"⩷"},{key:[101,68,111,116,59],value:"≑"},{key:[101,97,99,117,116,101,59],value:"é"},{key:[101,97,115,116,101,114,59],value:"⩮"},{key:[101,99,97,114,111,110,59],value:"ě"},{key:[101,99,105,114,59],value:"≖"},{key:[101,99,105,114,99,59],value:"ê"},{key:[101,99,111,108,111,110,59],value:"≕"},{key:[101,99,121,59],value:"э"},{key:[101,100,111,116,59],value:"ė"},{key:[101,101,59],value:"ⅇ"},{key:[101,102,68,111,116,59],value:"≒"},{key:[101,102,114,59],value:"𝔢"},{key:[101,103,59],value:"⪚"},{key:[101,103,114,97,118,101,59],value:"è"},{key:[101,103,115,59],value:"⪖"},{key:[101,103,115,100,111,116,59],value:"⪘"},{key:[101,108,59],value:"⪙"},{key:[101,108,105,110,116,101,114,115,59],value:"⏧"},{key:[101,108,108,59],value:"ℓ"},{key:[101,108,115,59],value:"⪕"},{key:[101,108,115,100,111,116,59],value:"⪗"},{key:[101,109,97,99,114,59],value:"ē"},{key:[101,109,112,116,121,59],value:"∅"},{key:[101,109,112,116,121,115,101,116,59],value:"∅"},{key:[101,109,112,116,121,118,59],value:"∅"},{key:[101,109,115,112,49,51,59],value:" "},{key:[101,109,115,112,49,52,59],value:" "},{key:[101,109,115,112,59],value:" "},{key:[101,110,103,59],value:"ŋ"},{key:[101,110,115,112,59],value:" "},{key:[101,111,103,111,110,59],value:"ę"},{key:[101,111,112,102,59],value:"𝕖"},{key:[101,112,97,114,59],value:"⋕"},{key:[101,112,97,114,115,108,59],value:"⧣"},{key:[101,112,108,117,115,59],value:"⩱"},{key:[101,112,115,105,59],value:"ε"},{key:[101,112,115,105,108,111,110,59],value:"ε"},{key:[101,112,115,105,118,59],value:"ϵ"},{key:[101,113,99,105,114,99,59],value:"≖"},{key:[101,113,99,111,108,111,110,59],value:"≕"},{key:[101,113,115,105,109,59],value:"≂"},{key:[101,113,115,108,97,110,116,103,116,114,59],value:"⪖"},{key:[101,113,115,108,97,110,116,108,101,115,115,59],value:"⪕"},{key:[101,113,117,97,108,115,59],value:"="},{key:[101,113,117,101,115,116,59],value:"≟"},{key:[101,113,117,105,118,59],value:"≡"},{key:[101,113,117,105,118,68,68,59],value:"⩸"},{key:[101,113,118,112,97,114,115,108,59],value:"⧥"},{key:[101,114,68,111,116,59],value:"≓"},{key:[101,114,97,114,114,59],value:"⥱"},{key:[101,115,99,114,59],value:"ℯ"},{key:[101,115,100,111,116,59],value:"≐"},{key:[101,115,105,109,59],value:"≂"},{key:[101,116,97,59],value:"η"},{key:[101,116,104,59],value:"ð"},{key:[101,117,109,108,59],value:"ë"},{key:[101,117,114,111,59],value:"€"},{key:[101,120,99,108,59],value:"!"},{key:[101,120,105,115,116,59],value:"∃"},{key:[101,120,112,101,99,116,97,116,105,111,110,59],value:"ℰ"},{key:[101,120,112,111,110,101,110,116,105,97,108,101,59],value:"ⅇ"},{key:[102,97,108,108,105,110,103,100,111,116,115,101,113,59],value:"≒"},{key:[102,99,121,59],value:"ф"},{key:[102,101,109,97,108,101,59],value:"♀"},{key:[102,102,105,108,105,103,59],value:"ffi"},{key:[102,102,108,105,103,59],value:"ff"},{key:[102,102,108,108,105,103,59],value:"ffl"},{key:[102,102,114,59],value:"𝔣"},{key:[102,105,108,105,103,59],value:"fi"},{key:[102,106,108,105,103,59],value:"fj"},{key:[102,108,97,116,59],value:"♭"},{key:[102,108,108,105,103,59],value:"fl"},{key:[102,108,116,110,115,59],value:"▱"},{key:[102,110,111,102,59],value:"ƒ"},{key:[102,111,112,102,59],value:"𝕗"},{key:[102,111,114,97,108,108,59],value:"∀"},{key:[102,111,114,107,59],value:"⋔"},{key:[102,111,114,107,118,59],value:"⫙"},{key:[102,112,97,114,116,105,110,116,59],value:"⨍"},{key:[102,114,97,99,49,50,59],value:"½"},{key:[102,114,97,99,49,51,59],value:"⅓"},{key:[102,114,97,99,49,52,59],value:"¼"},{key:[102,114,97,99,49,53,59],value:"⅕"},{key:[102,114,97,99,49,54,59],value:"⅙"},{key:[102,114,97,99,49,56,59],value:"⅛"},{key:[102,114,97,99,50,51,59],value:"⅔"},{key:[102,114,97,99,50,53,59],value:"⅖"},{key:[102,114,97,99,51,52,59],value:"¾"},{key:[102,114,97,99,51,53,59],value:"⅗"},{key:[102,114,97,99,51,56,59],value:"⅜"},{key:[102,114,97,99,52,53,59],value:"⅘"},{key:[102,114,97,99,53,54,59],value:"⅚"},{key:[102,114,97,99,53,56,59],value:"⅝"},{key:[102,114,97,99,55,56,59],value:"⅞"},{key:[102,114,97,115,108,59],value:"⁄"},{key:[102,114,111,119,110,59],value:"⌢"},{key:[102,115,99,114,59],value:"𝒻"},{key:[103,69,59],value:"≧"},{key:[103,69,108,59],value:"⪌"},{key:[103,97,99,117,116,101,59],value:"ǵ"},{key:[103,97,109,109,97,59],value:"γ"},{key:[103,97,109,109,97,100,59],value:"ϝ"},{key:[103,97,112,59],value:"⪆"},{key:[103,98,114,101,118,101,59],value:"ğ"},{key:[103,99,105,114,99,59],value:"ĝ"},{key:[103,99,121,59],value:"г"},{key:[103,100,111,116,59],value:"ġ"},{key:[103,101,59],value:"≥"},{key:[103,101,108,59],value:"⋛"},{key:[103,101,113,59],value:"≥"},{key:[103,101,113,113,59],value:"≧"},{key:[103,101,113,115,108,97,110,116,59],value:"⩾"},{key:[103,101,115,59],value:"⩾"},{key:[103,101,115,99,99,59],value:"⪩"},{key:[103,101,115,100,111,116,59],value:"⪀"},{key:[103,101,115,100,111,116,111,59],value:"⪂"},{key:[103,101,115,100,111,116,111,108,59],value:"⪄"},{key:[103,101,115,108,59],value:"⋛︀"},{key:[103,101,115,108,101,115,59],value:"⪔"},{key:[103,102,114,59],value:"𝔤"},{key:[103,103,59],value:"≫"},{key:[103,103,103,59],value:"⋙"},{key:[103,105,109,101,108,59],value:"ℷ"},{key:[103,106,99,121,59],value:"ѓ"},{key:[103,108,59],value:"≷"},{key:[103,108,69,59],value:"⪒"},{key:[103,108,97,59],value:"⪥"},{key:[103,108,106,59],value:"⪤"},{key:[103,110,69,59],value:"≩"},{key:[103,110,97,112,59],value:"⪊"},{key:[103,110,97,112,112,114,111,120,59],value:"⪊"},{key:[103,110,101,59],value:"⪈"},{key:[103,110,101,113,59],value:"⪈"},{key:[103,110,101,113,113,59],value:"≩"},{key:[103,110,115,105,109,59],value:"⋧"},{key:[103,111,112,102,59],value:"𝕘"},{key:[103,114,97,118,101,59],value:"`"},{key:[103,115,99,114,59],value:"ℊ"},{key:[103,115,105,109,59],value:"≳"},{key:[103,115,105,109,101,59],value:"⪎"},{key:[103,115,105,109,108,59],value:"⪐"},{key:[103,116,59],value:">"},{key:[103,116,99,99,59],value:"⪧"},{key:[103,116,99,105,114,59],value:"⩺"},{key:[103,116,100,111,116,59],value:"⋗"},{key:[103,116,108,80,97,114,59],value:"⦕"},{key:[103,116,113,117,101,115,116,59],value:"⩼"},{key:[103,116,114,97,112,112,114,111,120,59],value:"⪆"},{key:[103,116,114,97,114,114,59],value:"⥸"},{key:[103,116,114,100,111,116,59],value:"⋗"},{key:[103,116,114,101,113,108,101,115,115,59],value:"⋛"},{key:[103,116,114,101,113,113,108,101,115,115,59],value:"⪌"},{key:[103,116,114,108,101,115,115,59],value:"≷"},{key:[103,116,114,115,105,109,59],value:"≳"},{key:[103,118,101,114,116,110,101,113,113,59],value:"≩︀"},{key:[103,118,110,69,59],value:"≩︀"},{key:[104,65,114,114,59],value:"⇔"},{key:[104,97,105,114,115,112,59],value:" "},{key:[104,97,108,102,59],value:"½"},{key:[104,97,109,105,108,116,59],value:"ℋ"},{key:[104,97,114,100,99,121,59],value:"ъ"},{key:[104,97,114,114,59],value:"↔"},{key:[104,97,114,114,99,105,114,59],value:"⥈"},{key:[104,97,114,114,119,59],value:"↭"},{key:[104,98,97,114,59],value:"ℏ"},{key:[104,99,105,114,99,59],value:"ĥ"},{key:[104,101,97,114,116,115,59],value:"♥"},{key:[104,101,97,114,116,115,117,105,116,59],value:"♥"},{key:[104,101,108,108,105,112,59],value:"…"},{key:[104,101,114,99,111,110,59],value:"⊹"},{key:[104,102,114,59],value:"𝔥"},{key:[104,107,115,101,97,114,111,119,59],value:"⤥"},{key:[104,107,115,119,97,114,111,119,59],value:"⤦"},{key:[104,111,97,114,114,59],value:"⇿"},{key:[104,111,109,116,104,116,59],value:"∻"},{key:[104,111,111,107,108,101,102,116,97,114,114,111,119,59],value:"↩"},{key:[104,111,111,107,114,105,103,104,116,97,114,114,111,119,59],value:"↪"},{key:[104,111,112,102,59],value:"𝕙"},{key:[104,111,114,98,97,114,59],value:"―"},{key:[104,115,99,114,59],value:"𝒽"},{key:[104,115,108,97,115,104,59],value:"ℏ"},{key:[104,115,116,114,111,107,59],value:"ħ"},{key:[104,121,98,117,108,108,59],value:"⁃"},{key:[104,121,112,104,101,110,59],value:"‐"},{key:[105,97,99,117,116,101,59],value:"í"},{key:[105,99,59],value:"⁣"},{key:[105,99,105,114,99,59],value:"î"},{key:[105,99,121,59],value:"и"},{key:[105,101,99,121,59],value:"е"},{key:[105,101,120,99,108,59],value:"¡"},{key:[105,102,102,59],value:"⇔"},{key:[105,102,114,59],value:"𝔦"},{key:[105,103,114,97,118,101,59],value:"ì"},{key:[105,105,59],value:"ⅈ"},{key:[105,105,105,105,110,116,59],value:"⨌"},{key:[105,105,105,110,116,59],value:"∭"},{key:[105,105,110,102,105,110,59],value:"⧜"},{key:[105,105,111,116,97,59],value:"℩"},{key:[105,106,108,105,103,59],value:"ij"},{key:[105,109,97,99,114,59],value:"ī"},{key:[105,109,97,103,101,59],value:"ℑ"},{key:[105,109,97,103,108,105,110,101,59],value:"ℐ"},{key:[105,109,97,103,112,97,114,116,59],value:"ℑ"},{key:[105,109,97,116,104,59],value:"ı"},{key:[105,109,111,102,59],value:"⊷"},{key:[105,109,112,101,100,59],value:"Ƶ"},{key:[105,110,59],value:"∈"},{key:[105,110,99,97,114,101,59],value:"℅"},{key:[105,110,102,105,110,59],value:"∞"},{key:[105,110,102,105,110,116,105,101,59],value:"⧝"},{key:[105,110,111,100,111,116,59],value:"ı"},{key:[105,110,116,59],value:"∫"},{key:[105,110,116,99,97,108,59],value:"⊺"},{key:[105,110,116,101,103,101,114,115,59],value:"ℤ"},{key:[105,110,116,101,114,99,97,108,59],value:"⊺"},{key:[105,110,116,108,97,114,104,107,59],value:"⨗"},{key:[105,110,116,112,114,111,100,59],value:"⨼"},{key:[105,111,99,121,59],value:"ё"},{key:[105,111,103,111,110,59],value:"į"},{key:[105,111,112,102,59],value:"𝕚"},{key:[105,111,116,97,59],value:"ι"},{key:[105,112,114,111,100,59],value:"⨼"},{key:[105,113,117,101,115,116,59],value:"¿"},{key:[105,115,99,114,59],value:"𝒾"},{key:[105,115,105,110,59],value:"∈"},{key:[105,115,105,110,69,59],value:"⋹"},{key:[105,115,105,110,100,111,116,59],value:"⋵"},{key:[105,115,105,110,115,59],value:"⋴"},{key:[105,115,105,110,115,118,59],value:"⋳"},{key:[105,115,105,110,118,59],value:"∈"},{key:[105,116,59],value:"⁢"},{key:[105,116,105,108,100,101,59],value:"ĩ"},{key:[105,117,107,99,121,59],value:"і"},{key:[105,117,109,108,59],value:"ï"},{key:[106,99,105,114,99,59],value:"ĵ"},{key:[106,99,121,59],value:"й"},{key:[106,102,114,59],value:"𝔧"},{key:[106,109,97,116,104,59],value:"ȷ"},{key:[106,111,112,102,59],value:"𝕛"},{key:[106,115,99,114,59],value:"𝒿"},{key:[106,115,101,114,99,121,59],value:"ј"},{key:[106,117,107,99,121,59],value:"є"},{key:[107,97,112,112,97,59],value:"κ"},{key:[107,97,112,112,97,118,59],value:"ϰ"},{key:[107,99,101,100,105,108,59],value:"ķ"},{key:[107,99,121,59],value:"к"},{key:[107,102,114,59],value:"𝔨"},{key:[107,103,114,101,101,110,59],value:"ĸ"},{key:[107,104,99,121,59],value:"х"},{key:[107,106,99,121,59],value:"ќ"},{key:[107,111,112,102,59],value:"𝕜"},{key:[107,115,99,114,59],value:"𝓀"},{key:[108,65,97,114,114,59],value:"⇚"},{key:[108,65,114,114,59],value:"⇐"},{key:[108,65,116,97,105,108,59],value:"⤛"},{key:[108,66,97,114,114,59],value:"⤎"},{key:[108,69,59],value:"≦"},{key:[108,69,103,59],value:"⪋"},{key:[108,72,97,114,59],value:"⥢"},{key:[108,97,99,117,116,101,59],value:"ĺ"},{key:[108,97,101,109,112,116,121,118,59],value:"⦴"},{key:[108,97,103,114,97,110,59],value:"ℒ"},{key:[108,97,109,98,100,97,59],value:"λ"},{key:[108,97,110,103,59],value:"⟨"},{key:[108,97,110,103,100,59],value:"⦑"},{key:[108,97,110,103,108,101,59],value:"⟨"},{key:[108,97,112,59],value:"⪅"},{key:[108,97,113,117,111,59],value:"«"},{key:[108,97,114,114,59],value:"←"},{key:[108,97,114,114,98,59],value:"⇤"},{key:[108,97,114,114,98,102,115,59],value:"⤟"},{key:[108,97,114,114,102,115,59],value:"⤝"},{key:[108,97,114,114,104,107,59],value:"↩"},{key:[108,97,114,114,108,112,59],value:"↫"},{key:[108,97,114,114,112,108,59],value:"⤹"},{key:[108,97,114,114,115,105,109,59],value:"⥳"},{key:[108,97,114,114,116,108,59],value:"↢"},{key:[108,97,116,59],value:"⪫"},{key:[108,97,116,97,105,108,59],value:"⤙"},{key:[108,97,116,101,59],value:"⪭"},{key:[108,97,116,101,115,59],value:"⪭︀"},{key:[108,98,97,114,114,59],value:"⤌"},{key:[108,98,98,114,107,59],value:"❲"},{key:[108,98,114,97,99,101,59],value:"{ "},{key:[108,98,114,97,99,107,59],value:"["},{key:[108,98,114,107,101,59],value:"⦋"},{key:[108,98,114,107,115,108,100,59],value:"⦏"},{key:[108,98,114,107,115,108,117,59],value:"⦍"},{key:[108,99,97,114,111,110,59],value:"ľ"},{key:[108,99,101,100,105,108,59],value:"ļ"},{key:[108,99,101,105,108,59],value:"⌈"},{key:[108,99,117,98,59],value:"{ "},{key:[108,99,121,59],value:"л"},{key:[108,100,99,97,59],value:"⤶"},{key:[108,100,113,117,111,59],value:"“"},{key:[108,100,113,117,111,114,59],value:"„"},{key:[108,100,114,100,104,97,114,59],value:"⥧"},{key:[108,100,114,117,115,104,97,114,59],value:"⥋"},{key:[108,100,115,104,59],value:"↲"},{key:[108,101,59],value:"≤"},{key:[108,101,102,116,97,114,114,111,119,59],value:"←"},{key:[108,101,102,116,97,114,114,111,119,116,97,105,108,59],value:"↢"},{key:[108,101,102,116,104,97,114,112,111,111,110,100,111,119,110,59],value:"↽"},{key:[108,101,102,116,104,97,114,112,111,111,110,117,112,59],value:"↼"},{key:[108,101,102,116,108,101,102,116,97,114,114,111,119,115,59],value:"⇇"},{key:[108,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"↔"},{key:[108,101,102,116,114,105,103,104,116,97,114,114,111,119,115,59],value:"⇆"},{key:[108,101,102,116,114,105,103,104,116,104,97,114,112,111,111,110,115,59],value:"⇋"},{key:[108,101,102,116,114,105,103,104,116,115,113,117,105,103,97,114,114,111,119,59],value:"↭"},{key:[108,101,102,116,116,104,114,101,101,116,105,109,101,115,59],value:"⋋"},{key:[108,101,103,59],value:"⋚"},{key:[108,101,113,59],value:"≤"},{key:[108,101,113,113,59],value:"≦"},{key:[108,101,113,115,108,97,110,116,59],value:"⩽"},{key:[108,101,115,59],value:"⩽"},{key:[108,101,115,99,99,59],value:"⪨"},{key:[108,101,115,100,111,116,59],value:"⩿"},{key:[108,101,115,100,111,116,111,59],value:"⪁"},{key:[108,101,115,100,111,116,111,114,59],value:"⪃"},{key:[108,101,115,103,59],value:"⋚︀"},{key:[108,101,115,103,101,115,59],value:"⪓"},{key:[108,101,115,115,97,112,112,114,111,120,59],value:"⪅"},{key:[108,101,115,115,100,111,116,59],value:"⋖"},{key:[108,101,115,115,101,113,103,116,114,59],value:"⋚"},{key:[108,101,115,115,101,113,113,103,116,114,59],value:"⪋"},{key:[108,101,115,115,103,116,114,59],value:"≶"},{key:[108,101,115,115,115,105,109,59],value:"≲"},{key:[108,102,105,115,104,116,59],value:"⥼"},{key:[108,102,108,111,111,114,59],value:"⌊"},{key:[108,102,114,59],value:"𝔩"},{key:[108,103,59],value:"≶"},{key:[108,103,69,59],value:"⪑"},{key:[108,104,97,114,100,59],value:"↽"},{key:[108,104,97,114,117,59],value:"↼"},{key:[108,104,97,114,117,108,59],value:"⥪"},{key:[108,104,98,108,107,59],value:"▄"},{key:[108,106,99,121,59],value:"љ"},{key:[108,108,59],value:"≪"},{key:[108,108,97,114,114,59],value:"⇇"},{key:[108,108,99,111,114,110,101,114,59],value:"⌞"},{key:[108,108,104,97,114,100,59],value:"⥫"},{key:[108,108,116,114,105,59],value:"◺"},{key:[108,109,105,100,111,116,59],value:"ŀ"},{key:[108,109,111,117,115,116,59],value:"⎰"},{key:[108,109,111,117,115,116,97,99,104,101,59],value:"⎰"},{key:[108,110,69,59],value:"≨"},{key:[108,110,97,112,59],value:"⪉"},{key:[108,110,97,112,112,114,111,120,59],value:"⪉"},{key:[108,110,101,59],value:"⪇"},{key:[108,110,101,113,59],value:"⪇"},{key:[108,110,101,113,113,59],value:"≨"},{key:[108,110,115,105,109,59],value:"⋦"},{key:[108,111,97,110,103,59],value:"⟬"},{key:[108,111,97,114,114,59],value:"⇽"},{key:[108,111,98,114,107,59],value:"⟦"},{key:[108,111,110,103,108,101,102,116,97,114,114,111,119,59],value:"⟵"},{key:[108,111,110,103,108,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⟷"},{key:[108,111,110,103,109,97,112,115,116,111,59],value:"⟼"},{key:[108,111,110,103,114,105,103,104,116,97,114,114,111,119,59],value:"⟶"},{key:[108,111,111,112,97,114,114,111,119,108,101,102,116,59],value:"↫"},{key:[108,111,111,112,97,114,114,111,119,114,105,103,104,116,59],value:"↬"},{key:[108,111,112,97,114,59],value:"⦅"},{key:[108,111,112,102,59],value:"𝕝"},{key:[108,111,112,108,117,115,59],value:"⨭"},{key:[108,111,116,105,109,101,115,59],value:"⨴"},{key:[108,111,119,97,115,116,59],value:"∗"},{key:[108,111,119,98,97,114,59],value:"_"},{key:[108,111,122,59],value:"◊"},{key:[108,111,122,101,110,103,101,59],value:"◊"},{key:[108,111,122,102,59],value:"⧫"},{key:[108,112,97,114,59],value:"("},{key:[108,112,97,114,108,116,59],value:"⦓"},{key:[108,114,97,114,114,59],value:"⇆"},{key:[108,114,99,111,114,110,101,114,59],value:"⌟"},{key:[108,114,104,97,114,59],value:"⇋"},{key:[108,114,104,97,114,100,59],value:"⥭"},{key:[108,114,109,59],value:"‎"},{key:[108,114,116,114,105,59],value:"⊿"},{key:[108,115,97,113,117,111,59],value:"‹"},{key:[108,115,99,114,59],value:"𝓁"},{key:[108,115,104,59],value:"↰"},{key:[108,115,105,109,59],value:"≲"},{key:[108,115,105,109,101,59],value:"⪍"},{key:[108,115,105,109,103,59],value:"⪏"},{key:[108,115,113,98,59],value:"["},{key:[108,115,113,117,111,59],value:"‘"},{key:[108,115,113,117,111,114,59],value:"‚"},{key:[108,115,116,114,111,107,59],value:"ł"},{key:[108,116,59],value:"<"},{key:[108,116,99,99,59],value:"⪦"},{key:[108,116,99,105,114,59],value:"⩹"},{key:[108,116,100,111,116,59],value:"⋖"},{key:[108,116,104,114,101,101,59],value:"⋋"},{key:[108,116,105,109,101,115,59],value:"⋉"},{key:[108,116,108,97,114,114,59],value:"⥶"},{key:[108,116,113,117,101,115,116,59],value:"⩻"},{key:[108,116,114,80,97,114,59],value:"⦖"},{key:[108,116,114,105,59],value:"◃"},{key:[108,116,114,105,101,59],value:"⊴"},{key:[108,116,114,105,102,59],value:"◂"},{key:[108,117,114,100,115,104,97,114,59],value:"⥊"},{key:[108,117,114,117,104,97,114,59],value:"⥦"},{key:[108,118,101,114,116,110,101,113,113,59],value:"≨︀"},{key:[108,118,110,69,59],value:"≨︀"},{key:[109,68,68,111,116,59],value:"∺"},{key:[109,97,99,114,59],value:"¯"},{key:[109,97,108,101,59],value:"♂"},{key:[109,97,108,116,59],value:"✠"},{key:[109,97,108,116,101,115,101,59],value:"✠"},{key:[109,97,112,59],value:"↦"},{key:[109,97,112,115,116,111,59],value:"↦"},{key:[109,97,112,115,116,111,100,111,119,110,59],value:"↧"},{key:[109,97,112,115,116,111,108,101,102,116,59],value:"↤"},{key:[109,97,112,115,116,111,117,112,59],value:"↥"},{key:[109,97,114,107,101,114,59],value:"▮"},{key:[109,99,111,109,109,97,59],value:"⨩"},{key:[109,99,121,59],value:"м"},{key:[109,100,97,115,104,59],value:"—"},{key:[109,101,97,115,117,114,101,100,97,110,103,108,101,59],value:"∡"},{key:[109,102,114,59],value:"𝔪"},{key:[109,104,111,59],value:"℧"},{key:[109,105,99,114,111,59],value:"µ"},{key:[109,105,100,59],value:"∣"},{key:[109,105,100,97,115,116,59],value:"*"},{key:[109,105,100,99,105,114,59],value:"⫰"},{key:[109,105,100,100,111,116,59],value:"·"},{key:[109,105,110,117,115,59],value:"−"},{key:[109,105,110,117,115,98,59],value:"⊟"},{key:[109,105,110,117,115,100,59],value:"∸"},{key:[109,105,110,117,115,100,117,59],value:"⨪"},{key:[109,108,99,112,59],value:"⫛"},{key:[109,108,100,114,59],value:"…"},{key:[109,110,112,108,117,115,59],value:"∓"},{key:[109,111,100,101,108,115,59],value:"⊧"},{key:[109,111,112,102,59],value:"𝕞"},{key:[109,112,59],value:"∓"},{key:[109,115,99,114,59],value:"𝓂"},{key:[109,115,116,112,111,115,59],value:"∾"},{key:[109,117,59],value:"μ"},{key:[109,117,108,116,105,109,97,112,59],value:"⊸"},{key:[109,117,109,97,112,59],value:"⊸"},{key:[110,71,103,59],value:"⋙̸"},{key:[110,71,116,59],value:"≫⃒"},{key:[110,71,116,118,59],value:"≫̸"},{key:[110,76,101,102,116,97,114,114,111,119,59],value:"⇍"},{key:[110,76,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⇎"},{key:[110,76,108,59],value:"⋘̸"},{key:[110,76,116,59],value:"≪⃒"},{key:[110,76,116,118,59],value:"≪̸"},{key:[110,82,105,103,104,116,97,114,114,111,119,59],value:"⇏"},{key:[110,86,68,97,115,104,59],value:"⊯"},{key:[110,86,100,97,115,104,59],value:"⊮"},{key:[110,97,98,108,97,59],value:"∇"},{key:[110,97,99,117,116,101,59],value:"ń"},{key:[110,97,110,103,59],value:"∠⃒"},{key:[110,97,112,59],value:"≉"},{key:[110,97,112,69,59],value:"⩰̸"},{key:[110,97,112,105,100,59],value:"≋̸"},{key:[110,97,112,111,115,59],value:"ʼn"},{key:[110,97,112,112,114,111,120,59],value:"≉"},{key:[110,97,116,117,114,59],value:"♮"},{key:[110,97,116,117,114,97,108,59],value:"♮"},{key:[110,97,116,117,114,97,108,115,59],value:"ℕ"},{key:[110,98,115,112,59],value:" "},{key:[110,98,117,109,112,59],value:"≎̸"},{key:[110,98,117,109,112,101,59],value:"≏̸"},{key:[110,99,97,112,59],value:"⩃"},{key:[110,99,97,114,111,110,59],value:"ň"},{key:[110,99,101,100,105,108,59],value:"ņ"},{key:[110,99,111,110,103,59],value:"≇"},{key:[110,99,111,110,103,100,111,116,59],value:"⩭̸"},{key:[110,99,117,112,59],value:"⩂"},{key:[110,99,121,59],value:"н"},{key:[110,100,97,115,104,59],value:"–"},{key:[110,101,59],value:"≠"},{key:[110,101,65,114,114,59],value:"⇗"},{key:[110,101,97,114,104,107,59],value:"⤤"},{key:[110,101,97,114,114,59],value:"↗"},{key:[110,101,97,114,114,111,119,59],value:"↗"},{key:[110,101,100,111,116,59],value:"≐̸"},{key:[110,101,113,117,105,118,59],value:"≢"},{key:[110,101,115,101,97,114,59],value:"⤨"},{key:[110,101,115,105,109,59],value:"≂̸"},{key:[110,101,120,105,115,116,59],value:"∄"},{key:[110,101,120,105,115,116,115,59],value:"∄"},{key:[110,102,114,59],value:"𝔫"},{key:[110,103,69,59],value:"≧̸"},{key:[110,103,101,59],value:"≱"},{key:[110,103,101,113,59],value:"≱"},{key:[110,103,101,113,113,59],value:"≧̸"},{key:[110,103,101,113,115,108,97,110,116,59],value:"⩾̸"},{key:[110,103,101,115,59],value:"⩾̸"},{key:[110,103,115,105,109,59],value:"≵"},{key:[110,103,116,59],value:"≯"},{key:[110,103,116,114,59],value:"≯"},{key:[110,104,65,114,114,59],value:"⇎"},{key:[110,104,97,114,114,59],value:"↮"},{key:[110,104,112,97,114,59],value:"⫲"},{key:[110,105,59],value:"∋"},{key:[110,105,115,59],value:"⋼"},{key:[110,105,115,100,59],value:"⋺"},{key:[110,105,118,59],value:"∋"},{key:[110,106,99,121,59],value:"њ"},{key:[110,108,65,114,114,59],value:"⇍"},{key:[110,108,69,59],value:"≦̸"},{key:[110,108,97,114,114,59],value:"↚"},{key:[110,108,100,114,59],value:"‥"},{key:[110,108,101,59],value:"≰"},{key:[110,108,101,102,116,97,114,114,111,119,59],value:"↚"},{key:[110,108,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"↮"},{key:[110,108,101,113,59],value:"≰"},{key:[110,108,101,113,113,59],value:"≦̸"},{key:[110,108,101,113,115,108,97,110,116,59],value:"⩽̸"},{key:[110,108,101,115,59],value:"⩽̸"},{key:[110,108,101,115,115,59],value:"≮"},{key:[110,108,115,105,109,59],value:"≴"},{key:[110,108,116,59],value:"≮"},{key:[110,108,116,114,105,59],value:"⋪"},{key:[110,108,116,114,105,101,59],value:"⋬"},{key:[110,109,105,100,59],value:"∤"},{key:[110,111,112,102,59],value:"𝕟"},{key:[110,111,116,59],value:"¬"},{key:[110,111,116,105,110,59],value:"∉"},{key:[110,111,116,105,110,69,59],value:"⋹̸"},{key:[110,111,116,105,110,100,111,116,59],value:"⋵̸"},{key:[110,111,116,105,110,118,97,59],value:"∉"},{key:[110,111,116,105,110,118,98,59],value:"⋷"},{key:[110,111,116,105,110,118,99,59],value:"⋶"},{key:[110,111,116,110,105,59],value:"∌"},{key:[110,111,116,110,105,118,97,59],value:"∌"},{key:[110,111,116,110,105,118,98,59],value:"⋾"},{key:[110,111,116,110,105,118,99,59],value:"⋽"},{key:[110,112,97,114,59],value:"∦"},{key:[110,112,97,114,97,108,108,101,108,59],value:"∦"},{key:[110,112,97,114,115,108,59],value:"⫽⃥"},{key:[110,112,97,114,116,59],value:"∂̸"},{key:[110,112,111,108,105,110,116,59],value:"⨔"},{key:[110,112,114,59],value:"⊀"},{key:[110,112,114,99,117,101,59],value:"⋠"},{key:[110,112,114,101,59],value:"⪯̸"},{key:[110,112,114,101,99,59],value:"⊀"},{key:[110,112,114,101,99,101,113,59],value:"⪯̸"},{key:[110,114,65,114,114,59],value:"⇏"},{key:[110,114,97,114,114,59],value:"↛"},{key:[110,114,97,114,114,99,59],value:"⤳̸"},{key:[110,114,97,114,114,119,59],value:"↝̸"},{key:[110,114,105,103,104,116,97,114,114,111,119,59],value:"↛"},{key:[110,114,116,114,105,59],value:"⋫"},{key:[110,114,116,114,105,101,59],value:"⋭"},{key:[110,115,99,59],value:"⊁"},{key:[110,115,99,99,117,101,59],value:"⋡"},{key:[110,115,99,101,59],value:"⪰̸"},{key:[110,115,99,114,59],value:"𝓃"},{key:[110,115,104,111,114,116,109,105,100,59],value:"∤"},{key:[110,115,104,111,114,116,112,97,114,97,108,108,101,108,59],value:"∦"},{key:[110,115,105,109,59],value:"≁"},{key:[110,115,105,109,101,59],value:"≄"},{key:[110,115,105,109,101,113,59],value:"≄"},{key:[110,115,109,105,100,59],value:"∤"},{key:[110,115,112,97,114,59],value:"∦"},{key:[110,115,113,115,117,98,101,59],value:"⋢"},{key:[110,115,113,115,117,112,101,59],value:"⋣"},{key:[110,115,117,98,59],value:"⊄"},{key:[110,115,117,98,69,59],value:"⫅̸"},{key:[110,115,117,98,101,59],value:"⊈"},{key:[110,115,117,98,115,101,116,59],value:"⊂⃒"},{key:[110,115,117,98,115,101,116,101,113,59],value:"⊈"},{key:[110,115,117,98,115,101,116,101,113,113,59],value:"⫅̸"},{key:[110,115,117,99,99,59],value:"⊁"},{key:[110,115,117,99,99,101,113,59],value:"⪰̸"},{key:[110,115,117,112,59],value:"⊅"},{key:[110,115,117,112,69,59],value:"⫆̸"},{key:[110,115,117,112,101,59],value:"⊉"},{key:[110,115,117,112,115,101,116,59],value:"⊃⃒"},{key:[110,115,117,112,115,101,116,101,113,59],value:"⊉"},{key:[110,115,117,112,115,101,116,101,113,113,59],value:"⫆̸"},{key:[110,116,103,108,59],value:"≹"},{key:[110,116,105,108,100,101,59],value:"ñ"},{key:[110,116,108,103,59],value:"≸"},{key:[110,116,114,105,97,110,103,108,101,108,101,102,116,59],value:"⋪"},{key:[110,116,114,105,97,110,103,108,101,108,101,102,116,101,113,59],value:"⋬"},{key:[110,116,114,105,97,110,103,108,101,114,105,103,104,116,59],value:"⋫"},{key:[110,116,114,105,97,110,103,108,101,114,105,103,104,116,101,113,59],value:"⋭"},{key:[110,117,59],value:"ν"},{key:[110,117,109,59],value:"#"},{key:[110,117,109,101,114,111,59],value:"№"},{key:[110,117,109,115,112,59],value:" "},{key:[110,118,68,97,115,104,59],value:"⊭"},{key:[110,118,72,97,114,114,59],value:"⤄"},{key:[110,118,97,112,59],value:"≍⃒"},{key:[110,118,100,97,115,104,59],value:"⊬"},{key:[110,118,103,101,59],value:"≥⃒"},{key:[110,118,103,116,59],value:">⃒"},{key:[110,118,105,110,102,105,110,59],value:"⧞"},{key:[110,118,108,65,114,114,59],value:"⤂"},{key:[110,118,108,101,59],value:"≤⃒"},{key:[110,118,108,116,59],value:"<⃒"},{key:[110,118,108,116,114,105,101,59],value:"⊴⃒"},{key:[110,118,114,65,114,114,59],value:"⤃"},{key:[110,118,114,116,114,105,101,59],value:"⊵⃒"},{key:[110,118,115,105,109,59],value:"∼⃒"},{key:[110,119,65,114,114,59],value:"⇖"},{key:[110,119,97,114,104,107,59],value:"⤣"},{key:[110,119,97,114,114,59],value:"↖"},{key:[110,119,97,114,114,111,119,59],value:"↖"},{key:[110,119,110,101,97,114,59],value:"⤧"},{key:[111,83,59],value:"Ⓢ"},{key:[111,97,99,117,116,101,59],value:"ó"},{key:[111,97,115,116,59],value:"⊛"},{key:[111,99,105,114,59],value:"⊚"},{key:[111,99,105,114,99,59],value:"ô"},{key:[111,99,121,59],value:"о"},{key:[111,100,97,115,104,59],value:"⊝"},{key:[111,100,98,108,97,99,59],value:"ő"},{key:[111,100,105,118,59],value:"⨸"},{key:[111,100,111,116,59],value:"⊙"},{key:[111,100,115,111,108,100,59],value:"⦼"},{key:[111,101,108,105,103,59],value:"œ"},{key:[111,102,99,105,114,59],value:"⦿"},{key:[111,102,114,59],value:"𝔬"},{key:[111,103,111,110,59],value:"˛"},{key:[111,103,114,97,118,101,59],value:"ò"},{key:[111,103,116,59],value:"⧁"},{key:[111,104,98,97,114,59],value:"⦵"},{key:[111,104,109,59],value:"Ω"},{key:[111,105,110,116,59],value:"∮"},{key:[111,108,97,114,114,59],value:"↺"},{key:[111,108,99,105,114,59],value:"⦾"},{key:[111,108,99,114,111,115,115,59],value:"⦻"},{key:[111,108,105,110,101,59],value:"‾"},{key:[111,108,116,59],value:"⧀"},{key:[111,109,97,99,114,59],value:"ō"},{key:[111,109,101,103,97,59],value:"ω"},{key:[111,109,105,99,114,111,110,59],value:"ο"},{key:[111,109,105,100,59],value:"⦶"},{key:[111,109,105,110,117,115,59],value:"⊖"},{key:[111,111,112,102,59],value:"𝕠"},{key:[111,112,97,114,59],value:"⦷"},{key:[111,112,101,114,112,59],value:"⦹"},{key:[111,112,108,117,115,59],value:"⊕"},{key:[111,114,59],value:"∨"},{key:[111,114,97,114,114,59],value:"↻"},{key:[111,114,100,59],value:"⩝"},{key:[111,114,100,101,114,59],value:"ℴ"},{key:[111,114,100,101,114,111,102,59],value:"ℴ"},{key:[111,114,100,102,59],value:"ª"},{key:[111,114,100,109,59],value:"º"},{key:[111,114,105,103,111,102,59],value:"⊶"},{key:[111,114,111,114,59],value:"⩖"},{key:[111,114,115,108,111,112,101,59],value:"⩗"},{key:[111,114,118,59],value:"⩛"},{key:[111,115,99,114,59],value:"ℴ"},{key:[111,115,108,97,115,104,59],value:"ø"},{key:[111,115,111,108,59],value:"⊘"},{key:[111,116,105,108,100,101,59],value:"õ"},{key:[111,116,105,109,101,115,59],value:"⊗"},{key:[111,116,105,109,101,115,97,115,59],value:"⨶"},{key:[111,117,109,108,59],value:"ö"},{key:[111,118,98,97,114,59],value:"⌽"},{key:[112,97,114,59],value:"∥"},{key:[112,97,114,97,59],value:"¶"},{key:[112,97,114,97,108,108,101,108,59],value:"∥"},{key:[112,97,114,115,105,109,59],value:"⫳"},{key:[112,97,114,115,108,59],value:"⫽"},{key:[112,97,114,116,59],value:"∂"},{key:[112,99,121,59],value:"п"},{key:[112,101,114,99,110,116,59],value:"%"},{key:[112,101,114,105,111,100,59],value:"."},{key:[112,101,114,109,105,108,59],value:"‰"},{key:[112,101,114,112,59],value:"⊥"},{key:[112,101,114,116,101,110,107,59],value:"‱"},{key:[112,102,114,59],value:"𝔭"},{key:[112,104,105,59],value:"φ"},{key:[112,104,105,118,59],value:"ϕ"},{key:[112,104,109,109,97,116,59],value:"ℳ"},{key:[112,104,111,110,101,59],value:"☎"},{key:[112,105,59],value:"π"},{key:[112,105,116,99,104,102,111,114,107,59],value:"⋔"},{key:[112,105,118,59],value:"ϖ"},{key:[112,108,97,110,99,107,59],value:"ℏ"},{key:[112,108,97,110,99,107,104,59],value:"ℎ"},{key:[112,108,97,110,107,118,59],value:"ℏ"},{key:[112,108,117,115,59],value:"+"},{key:[112,108,117,115,97,99,105,114,59],value:"⨣"},{key:[112,108,117,115,98,59],value:"⊞"},{key:[112,108,117,115,99,105,114,59],value:"⨢"},{key:[112,108,117,115,100,111,59],value:"∔"},{key:[112,108,117,115,100,117,59],value:"⨥"},{key:[112,108,117,115,101,59],value:"⩲"},{key:[112,108,117,115,109,110,59],value:"±"},{key:[112,108,117,115,115,105,109,59],value:"⨦"},{key:[112,108,117,115,116,119,111,59],value:"⨧"},{key:[112,109,59],value:"±"},{key:[112,111,105,110,116,105,110,116,59],value:"⨕"},{key:[112,111,112,102,59],value:"𝕡"},{key:[112,111,117,110,100,59],value:"£"},{key:[112,114,59],value:"≺"},{key:[112,114,69,59],value:"⪳"},{key:[112,114,97,112,59],value:"⪷"},{key:[112,114,99,117,101,59],value:"≼"},{key:[112,114,101,59],value:"⪯"},{key:[112,114,101,99,59],value:"≺"},{key:[112,114,101,99,97,112,112,114,111,120,59],value:"⪷"},{key:[112,114,101,99,99,117,114,108,121,101,113,59],value:"≼"},{key:[112,114,101,99,101,113,59],value:"⪯"},{key:[112,114,101,99,110,97,112,112,114,111,120,59],value:"⪹"},{key:[112,114,101,99,110,101,113,113,59],value:"⪵"},{key:[112,114,101,99,110,115,105,109,59],value:"⋨"},{key:[112,114,101,99,115,105,109,59],value:"≾"},{key:[112,114,105,109,101,59],value:"′"},{key:[112,114,105,109,101,115,59],value:"ℙ"},{key:[112,114,110,69,59],value:"⪵"},{key:[112,114,110,97,112,59],value:"⪹"},{key:[112,114,110,115,105,109,59],value:"⋨"},{key:[112,114,111,100,59],value:"∏"},{key:[112,114,111,102,97,108,97,114,59],value:"⌮"},{key:[112,114,111,102,108,105,110,101,59],value:"⌒"},{key:[112,114,111,102,115,117,114,102,59],value:"⌓"},{key:[112,114,111,112,59],value:"∝"},{key:[112,114,111,112,116,111,59],value:"∝"},{key:[112,114,115,105,109,59],value:"≾"},{key:[112,114,117,114,101,108,59],value:"⊰"},{key:[112,115,99,114,59],value:"𝓅"},{key:[112,115,105,59],value:"ψ"},{key:[112,117,110,99,115,112,59],value:" "},{key:[113,102,114,59],value:"𝔮"},{key:[113,105,110,116,59],value:"⨌"},{key:[113,111,112,102,59],value:"𝕢"},{key:[113,112,114,105,109,101,59],value:"⁗"},{key:[113,115,99,114,59],value:"𝓆"},{key:[113,117,97,116,101,114,110,105,111,110,115,59],value:"ℍ"},{key:[113,117,97,116,105,110,116,59],value:"⨖"},{key:[113,117,101,115,116,59],value:"?"},{key:[113,117,101,115,116,101,113,59],value:"≟"},{key:[113,117,111,116,59],value:'"'},{key:[114,65,97,114,114,59],value:"⇛"},{key:[114,65,114,114,59],value:"⇒"},{key:[114,65,116,97,105,108,59],value:"⤜"},{key:[114,66,97,114,114,59],value:"⤏"},{key:[114,72,97,114,59],value:"⥤"},{key:[114,97,99,101,59],value:"∽̱"},{key:[114,97,99,117,116,101,59],value:"ŕ"},{key:[114,97,100,105,99,59],value:"√"},{key:[114,97,101,109,112,116,121,118,59],value:"⦳"},{key:[114,97,110,103,59],value:"⟩"},{key:[114,97,110,103,100,59],value:"⦒"},{key:[114,97,110,103,101,59],value:"⦥"},{key:[114,97,110,103,108,101,59],value:"⟩"},{key:[114,97,113,117,111,59],value:"»"},{key:[114,97,114,114,59],value:"→"},{key:[114,97,114,114,97,112,59],value:"⥵"},{key:[114,97,114,114,98,59],value:"⇥"},{key:[114,97,114,114,98,102,115,59],value:"⤠"},{key:[114,97,114,114,99,59],value:"⤳"},{key:[114,97,114,114,102,115,59],value:"⤞"},{key:[114,97,114,114,104,107,59],value:"↪"},{key:[114,97,114,114,108,112,59],value:"↬"},{key:[114,97,114,114,112,108,59],value:"⥅"},{key:[114,97,114,114,115,105,109,59],value:"⥴"},{key:[114,97,114,114,116,108,59],value:"↣"},{key:[114,97,114,114,119,59],value:"↝"},{key:[114,97,116,97,105,108,59],value:"⤚"},{key:[114,97,116,105,111,59],value:"∶"},{key:[114,97,116,105,111,110,97,108,115,59],value:"ℚ"},{key:[114,98,97,114,114,59],value:"⤍"},{key:[114,98,98,114,107,59],value:"❳"},{key:[114,98,114,97,99,101,59],value:" }"},{key:[114,98,114,97,99,107,59],value:"]"},{key:[114,98,114,107,101,59],value:"⦌"},{key:[114,98,114,107,115,108,100,59],value:"⦎"},{key:[114,98,114,107,115,108,117,59],value:"⦐"},{key:[114,99,97,114,111,110,59],value:"ř"},{key:[114,99,101,100,105,108,59],value:"ŗ"},{key:[114,99,101,105,108,59],value:"⌉"},{key:[114,99,117,98,59],value:" }"},{key:[114,99,121,59],value:"р"},{key:[114,100,99,97,59],value:"⤷"},{key:[114,100,108,100,104,97,114,59],value:"⥩"},{key:[114,100,113,117,111,59],value:"”"},{key:[114,100,113,117,111,114,59],value:"”"},{key:[114,100,115,104,59],value:"↳"},{key:[114,101,97,108,59],value:"ℜ"},{key:[114,101,97,108,105,110,101,59],value:"ℛ"},{key:[114,101,97,108,112,97,114,116,59],value:"ℜ"},{key:[114,101,97,108,115,59],value:"ℝ"},{key:[114,101,99,116,59],value:"▭"},{key:[114,101,103,59],value:"®"},{key:[114,102,105,115,104,116,59],value:"⥽"},{key:[114,102,108,111,111,114,59],value:"⌋"},{key:[114,102,114,59],value:"𝔯"},{key:[114,104,97,114,100,59],value:"⇁"},{key:[114,104,97,114,117,59],value:"⇀"},{key:[114,104,97,114,117,108,59],value:"⥬"},{key:[114,104,111,59],value:"ρ"},{key:[114,104,111,118,59],value:"ϱ"},{key:[114,105,103,104,116,97,114,114,111,119,59],value:"→"},{key:[114,105,103,104,116,97,114,114,111,119,116,97,105,108,59],value:"↣"},{key:[114,105,103,104,116,104,97,114,112,111,111,110,100,111,119,110,59],value:"⇁"},{key:[114,105,103,104,116,104,97,114,112,111,111,110,117,112,59],value:"⇀"},{key:[114,105,103,104,116,108,101,102,116,97,114,114,111,119,115,59],value:"⇄"},{key:[114,105,103,104,116,108,101,102,116,104,97,114,112,111,111,110,115,59],value:"⇌"},{key:[114,105,103,104,116,114,105,103,104,116,97,114,114,111,119,115,59],value:"⇉"},{key:[114,105,103,104,116,115,113,117,105,103,97,114,114,111,119,59],value:"↝"},{key:[114,105,103,104,116,116,104,114,101,101,116,105,109,101,115,59],value:"⋌"},{key:[114,105,110,103,59],value:"˚"},{key:[114,105,115,105,110,103,100,111,116,115,101,113,59],value:"≓"},{key:[114,108,97,114,114,59],value:"⇄"},{key:[114,108,104,97,114,59],value:"⇌"},{key:[114,108,109,59],value:"‏"},{key:[114,109,111,117,115,116,59],value:"⎱"},{key:[114,109,111,117,115,116,97,99,104,101,59],value:"⎱"},{key:[114,110,109,105,100,59],value:"⫮"},{key:[114,111,97,110,103,59],value:"⟭"},{key:[114,111,97,114,114,59],value:"⇾"},{key:[114,111,98,114,107,59],value:"⟧"},{key:[114,111,112,97,114,59],value:"⦆"},{key:[114,111,112,102,59],value:"𝕣"},{key:[114,111,112,108,117,115,59],value:"⨮"},{key:[114,111,116,105,109,101,115,59],value:"⨵"},{key:[114,112,97,114,59],value:")"},{key:[114,112,97,114,103,116,59],value:"⦔"},{key:[114,112,112,111,108,105,110,116,59],value:"⨒"},{key:[114,114,97,114,114,59],value:"⇉"},{key:[114,115,97,113,117,111,59],value:"›"},{key:[114,115,99,114,59],value:"𝓇"},{key:[114,115,104,59],value:"↱"},{key:[114,115,113,98,59],value:"]"},{key:[114,115,113,117,111,59],value:"’"},{key:[114,115,113,117,111,114,59],value:"’"},{key:[114,116,104,114,101,101,59],value:"⋌"},{key:[114,116,105,109,101,115,59],value:"⋊"},{key:[114,116,114,105,59],value:"▹"},{key:[114,116,114,105,101,59],value:"⊵"},{key:[114,116,114,105,102,59],value:"▸"},{key:[114,116,114,105,108,116,114,105,59],value:"⧎"},{key:[114,117,108,117,104,97,114,59],value:"⥨"},{key:[114,120,59],value:"℞"},{key:[115,97,99,117,116,101,59],value:"ś"},{key:[115,98,113,117,111,59],value:"‚"},{key:[115,99,59],value:"≻"},{key:[115,99,69,59],value:"⪴"},{key:[115,99,97,112,59],value:"⪸"},{key:[115,99,97,114,111,110,59],value:"š"},{key:[115,99,99,117,101,59],value:"≽"},{key:[115,99,101,59],value:"⪰"},{key:[115,99,101,100,105,108,59],value:"ş"},{key:[115,99,105,114,99,59],value:"ŝ"},{key:[115,99,110,69,59],value:"⪶"},{key:[115,99,110,97,112,59],value:"⪺"},{key:[115,99,110,115,105,109,59],value:"⋩"},{key:[115,99,112,111,108,105,110,116,59],value:"⨓"},{key:[115,99,115,105,109,59],value:"≿"},{key:[115,99,121,59],value:"с"},{key:[115,100,111,116,59],value:"⋅"},{key:[115,100,111,116,98,59],value:"⊡"},{key:[115,100,111,116,101,59],value:"⩦"},{key:[115,101,65,114,114,59],value:"⇘"},{key:[115,101,97,114,104,107,59],value:"⤥"},{key:[115,101,97,114,114,59],value:"↘"},{key:[115,101,97,114,114,111,119,59],value:"↘"},{key:[115,101,99,116,59],value:"§"},{key:[115,101,109,105,59],value:";"},{key:[115,101,115,119,97,114,59],value:"⤩"},{key:[115,101,116,109,105,110,117,115,59],value:"∖"},{key:[115,101,116,109,110,59],value:"∖"},{key:[115,101,120,116,59],value:"✶"},{key:[115,102,114,59],value:"𝔰"},{key:[115,102,114,111,119,110,59],value:"⌢"},{key:[115,104,97,114,112,59],value:"♯"},{key:[115,104,99,104,99,121,59],value:"щ"},{key:[115,104,99,121,59],value:"ш"},{key:[115,104,111,114,116,109,105,100,59],value:"∣"},{key:[115,104,111,114,116,112,97,114,97,108,108,101,108,59],value:"∥"},{key:[115,104,121,59],value:"­"},{key:[115,105,103,109,97,59],value:"σ"},{key:[115,105,103,109,97,102,59],value:"ς"},{key:[115,105,103,109,97,118,59],value:"ς"},{key:[115,105,109,59],value:"∼"},{key:[115,105,109,100,111,116,59],value:"⩪"},{key:[115,105,109,101,59],value:"≃"},{key:[115,105,109,101,113,59],value:"≃"},{key:[115,105,109,103,59],value:"⪞"},{key:[115,105,109,103,69,59],value:"⪠"},{key:[115,105,109,108,59],value:"⪝"},{key:[115,105,109,108,69,59],value:"⪟"},{key:[115,105,109,110,101,59],value:"≆"},{key:[115,105,109,112,108,117,115,59],value:"⨤"},{key:[115,105,109,114,97,114,114,59],value:"⥲"},{key:[115,108,97,114,114,59],value:"←"},{key:[115,109,97,108,108,115,101,116,109,105,110,117,115,59],value:"∖"},{key:[115,109,97,115,104,112,59],value:"⨳"},{key:[115,109,101,112,97,114,115,108,59],value:"⧤"},{key:[115,109,105,100,59],value:"∣"},{key:[115,109,105,108,101,59],value:"⌣"},{key:[115,109,116,59],value:"⪪"},{key:[115,109,116,101,59],value:"⪬"},{key:[115,109,116,101,115,59],value:"⪬︀"},{key:[115,111,102,116,99,121,59],value:"ь"},{key:[115,111,108,59],value:"/"},{key:[115,111,108,98,59],value:"⧄"},{key:[115,111,108,98,97,114,59],value:"⌿"},{key:[115,111,112,102,59],value:"𝕤"},{key:[115,112,97,100,101,115,59],value:"♠"},{key:[115,112,97,100,101,115,117,105,116,59],value:"♠"},{key:[115,112,97,114,59],value:"∥"},{key:[115,113,99,97,112,59],value:"⊓"},{key:[115,113,99,97,112,115,59],value:"⊓︀"},{key:[115,113,99,117,112,59],value:"⊔"},{key:[115,113,99,117,112,115,59],value:"⊔︀"},{key:[115,113,115,117,98,59],value:"⊏"},{key:[115,113,115,117,98,101,59],value:"⊑"},{key:[115,113,115,117,98,115,101,116,59],value:"⊏"},{key:[115,113,115,117,98,115,101,116,101,113,59],value:"⊑"},{key:[115,113,115,117,112,59],value:"⊐"},{key:[115,113,115,117,112,101,59],value:"⊒"},{key:[115,113,115,117,112,115,101,116,59],value:"⊐"},{key:[115,113,115,117,112,115,101,116,101,113,59],value:"⊒"},{key:[115,113,117,59],value:"□"},{key:[115,113,117,97,114,101,59],value:"□"},{key:[115,113,117,97,114,102,59],value:"▪"},{key:[115,113,117,102,59],value:"▪"},{key:[115,114,97,114,114,59],value:"→"},{key:[115,115,99,114,59],value:"𝓈"},{key:[115,115,101,116,109,110,59],value:"∖"},{key:[115,115,109,105,108,101,59],value:"⌣"},{key:[115,115,116,97,114,102,59],value:"⋆"},{key:[115,116,97,114,59],value:"☆"},{key:[115,116,97,114,102,59],value:"★"},{key:[115,116,114,97,105,103,104,116,101,112,115,105,108,111,110,59],value:"ϵ"},{key:[115,116,114,97,105,103,104,116,112,104,105,59],value:"ϕ"},{key:[115,116,114,110,115,59],value:"¯"},{key:[115,117,98,59],value:"⊂"},{key:[115,117,98,69,59],value:"⫅"},{key:[115,117,98,100,111,116,59],value:"⪽"},{key:[115,117,98,101,59],value:"⊆"},{key:[115,117,98,101,100,111,116,59],value:"⫃"},{key:[115,117,98,109,117,108,116,59],value:"⫁"},{key:[115,117,98,110,69,59],value:"⫋"},{key:[115,117,98,110,101,59],value:"⊊"},{key:[115,117,98,112,108,117,115,59],value:"⪿"},{key:[115,117,98,114,97,114,114,59],value:"⥹"},{key:[115,117,98,115,101,116,59],value:"⊂"},{key:[115,117,98,115,101,116,101,113,59],value:"⊆"},{key:[115,117,98,115,101,116,101,113,113,59],value:"⫅"},{key:[115,117,98,115,101,116,110,101,113,59],value:"⊊"},{key:[115,117,98,115,101,116,110,101,113,113,59],value:"⫋"},{key:[115,117,98,115,105,109,59],value:"⫇"},{key:[115,117,98,115,117,98,59],value:"⫕"},{key:[115,117,98,115,117,112,59],value:"⫓"},{key:[115,117,99,99,59],value:"≻"},{key:[115,117,99,99,97,112,112,114,111,120,59],value:"⪸"},{key:[115,117,99,99,99,117,114,108,121,101,113,59],value:"≽"},{key:[115,117,99,99,101,113,59],value:"⪰"},{key:[115,117,99,99,110,97,112,112,114,111,120,59],value:"⪺"},{key:[115,117,99,99,110,101,113,113,59],value:"⪶"},{key:[115,117,99,99,110,115,105,109,59],value:"⋩"},{key:[115,117,99,99,115,105,109,59],value:"≿"},{key:[115,117,109,59],value:"∑"},{key:[115,117,110,103,59],value:"♪"},{key:[115,117,112,49,59],value:"¹"},{key:[115,117,112,50,59],value:"²"},{key:[115,117,112,51,59],value:"³"},{key:[115,117,112,59],value:"⊃"},{key:[115,117,112,69,59],value:"⫆"},{key:[115,117,112,100,111,116,59],value:"⪾"},{key:[115,117,112,100,115,117,98,59],value:"⫘"},{key:[115,117,112,101,59],value:"⊇"},{key:[115,117,112,101,100,111,116,59],value:"⫄"},{key:[115,117,112,104,115,111,108,59],value:"⟉"},{key:[115,117,112,104,115,117,98,59],value:"⫗"},{key:[115,117,112,108,97,114,114,59],value:"⥻"},{key:[115,117,112,109,117,108,116,59],value:"⫂"},{key:[115,117,112,110,69,59],value:"⫌"},{key:[115,117,112,110,101,59],value:"⊋"},{key:[115,117,112,112,108,117,115,59],value:"⫀"},{key:[115,117,112,115,101,116,59],value:"⊃"},{key:[115,117,112,115,101,116,101,113,59],value:"⊇"},{key:[115,117,112,115,101,116,101,113,113,59],value:"⫆"},{key:[115,117,112,115,101,116,110,101,113,59],value:"⊋"},{key:[115,117,112,115,101,116,110,101,113,113,59],value:"⫌"},{key:[115,117,112,115,105,109,59],value:"⫈"},{key:[115,117,112,115,117,98,59],value:"⫔"},{key:[115,117,112,115,117,112,59],value:"⫖"},{key:[115,119,65,114,114,59],value:"⇙"},{key:[115,119,97,114,104,107,59],value:"⤦"},{key:[115,119,97,114,114,59],value:"↙"},{key:[115,119,97,114,114,111,119,59],value:"↙"},{key:[115,119,110,119,97,114,59],value:"⤪"},{key:[115,122,108,105,103,59],value:"ß"},{key:[116,97,114,103,101,116,59],value:"⌖"},{key:[116,97,117,59],value:"τ"},{key:[116,98,114,107,59],value:"⎴"},{key:[116,99,97,114,111,110,59],value:"ť"},{key:[116,99,101,100,105,108,59],value:"ţ"},{key:[116,99,121,59],value:"т"},{key:[116,100,111,116,59],value:"⃛"},{key:[116,101,108,114,101,99,59],value:"⌕"},{key:[116,102,114,59],value:"𝔱"},{key:[116,104,101,114,101,52,59],value:"∴"},{key:[116,104,101,114,101,102,111,114,101,59],value:"∴"},{key:[116,104,101,116,97,59],value:"θ"},{key:[116,104,101,116,97,115,121,109,59],value:"ϑ"},{key:[116,104,101,116,97,118,59],value:"ϑ"},{key:[116,104,105,99,107,97,112,112,114,111,120,59],value:"≈"},{key:[116,104,105,99,107,115,105,109,59],value:"∼"},{key:[116,104,105,110,115,112,59],value:" "},{key:[116,104,107,97,112,59],value:"≈"},{key:[116,104,107,115,105,109,59],value:"∼"},{key:[116,104,111,114,110,59],value:"þ"},{key:[116,105,108,100,101,59],value:"˜"},{key:[116,105,109,101,115,59],value:"×"},{key:[116,105,109,101,115,98,59],value:"⊠"},{key:[116,105,109,101,115,98,97,114,59],value:"⨱"},{key:[116,105,109,101,115,100,59],value:"⨰"},{key:[116,105,110,116,59],value:"∭"},{key:[116,111,101,97,59],value:"⤨"},{key:[116,111,112,59],value:"⊤"},{key:[116,111,112,98,111,116,59],value:"⌶"},{key:[116,111,112,99,105,114,59],value:"⫱"},{key:[116,111,112,102,59],value:"𝕥"},{key:[116,111,112,102,111,114,107,59],value:"⫚"},{key:[116,111,115,97,59],value:"⤩"},{key:[116,112,114,105,109,101,59],value:"‴"},{key:[116,114,97,100,101,59],value:"™"},{key:[116,114,105,97,110,103,108,101,59],value:"▵"},{key:[116,114,105,97,110,103,108,101,100,111,119,110,59],value:"▿"},{key:[116,114,105,97,110,103,108,101,108,101,102,116,59],value:"◃"},{key:[116,114,105,97,110,103,108,101,108,101,102,116,101,113,59],value:"⊴"},{key:[116,114,105,97,110,103,108,101,113,59],value:"≜"},{key:[116,114,105,97,110,103,108,101,114,105,103,104,116,59],value:"▹"},{key:[116,114,105,97,110,103,108,101,114,105,103,104,116,101,113,59],value:"⊵"},{key:[116,114,105,100,111,116,59],value:"◬"},{key:[116,114,105,101,59],value:"≜"},{key:[116,114,105,109,105,110,117,115,59],value:"⨺"},{key:[116,114,105,112,108,117,115,59],value:"⨹"},{key:[116,114,105,115,98,59],value:"⧍"},{key:[116,114,105,116,105,109,101,59],value:"⨻"},{key:[116,114,112,101,122,105,117,109,59],value:"⏢"},{key:[116,115,99,114,59],value:"𝓉"},{key:[116,115,99,121,59],value:"ц"},{key:[116,115,104,99,121,59],value:"ћ"},{key:[116,115,116,114,111,107,59],value:"ŧ"},{key:[116,119,105,120,116,59],value:"≬"},{key:[116,119,111,104,101,97,100,108,101,102,116,97,114,114,111,119,59],value:"↞"},{key:[116,119,111,104,101,97,100,114,105,103,104,116,97,114,114,111,119,59],value:"↠"},{key:[117,65,114,114,59],value:"⇑"},{key:[117,72,97,114,59],value:"⥣"},{key:[117,97,99,117,116,101,59],value:"ú"},{key:[117,97,114,114,59],value:"↑"},{key:[117,98,114,99,121,59],value:"ў"},{key:[117,98,114,101,118,101,59],value:"ŭ"},{key:[117,99,105,114,99,59],value:"û"},{key:[117,99,121,59],value:"у"},{key:[117,100,97,114,114,59],value:"⇅"},{key:[117,100,98,108,97,99,59],value:"ű"},{key:[117,100,104,97,114,59],value:"⥮"},{key:[117,102,105,115,104,116,59],value:"⥾"},{key:[117,102,114,59],value:"𝔲"},{key:[117,103,114,97,118,101,59],value:"ù"},{key:[117,104,97,114,108,59],value:"↿"},{key:[117,104,97,114,114,59],value:"↾"},{key:[117,104,98,108,107,59],value:"▀"},{key:[117,108,99,111,114,110,59],value:"⌜"},{key:[117,108,99,111,114,110,101,114,59],value:"⌜"},{key:[117,108,99,114,111,112,59],value:"⌏"},{key:[117,108,116,114,105,59],value:"◸"},{key:[117,109,97,99,114,59],value:"ū"},{key:[117,109,108,59],value:"¨"},{key:[117,111,103,111,110,59],value:"ų"},{key:[117,111,112,102,59],value:"𝕦"},{key:[117,112,97,114,114,111,119,59],value:"↑"},{key:[117,112,100,111,119,110,97,114,114,111,119,59],value:"↕"},{key:[117,112,104,97,114,112,111,111,110,108,101,102,116,59],value:"↿"},{key:[117,112,104,97,114,112,111,111,110,114,105,103,104,116,59],value:"↾"},{key:[117,112,108,117,115,59],value:"⊎"},{key:[117,112,115,105,59],value:"υ"},{key:[117,112,115,105,104,59],value:"ϒ"},{key:[117,112,115,105,108,111,110,59],value:"υ"},{key:[117,112,117,112,97,114,114,111,119,115,59],value:"⇈"},{key:[117,114,99,111,114,110,59],value:"⌝"},{key:[117,114,99,111,114,110,101,114,59],value:"⌝"},{key:[117,114,99,114,111,112,59],value:"⌎"},{key:[117,114,105,110,103,59],value:"ů"},{key:[117,114,116,114,105,59],value:"◹"},{key:[117,115,99,114,59],value:"𝓊"},{key:[117,116,100,111,116,59],value:"⋰"},{key:[117,116,105,108,100,101,59],value:"ũ"},{key:[117,116,114,105,59],value:"▵"},{key:[117,116,114,105,102,59],value:"▴"},{key:[117,117,97,114,114,59],value:"⇈"},{key:[117,117,109,108,59],value:"ü"},{key:[117,119,97,110,103,108,101,59],value:"⦧"},{key:[118,65,114,114,59],value:"⇕"},{key:[118,66,97,114,59],value:"⫨"},{key:[118,66,97,114,118,59],value:"⫩"},{key:[118,68,97,115,104,59],value:"⊨"},{key:[118,97,110,103,114,116,59],value:"⦜"},{key:[118,97,114,101,112,115,105,108,111,110,59],value:"ϵ"},{key:[118,97,114,107,97,112,112,97,59],value:"ϰ"},{key:[118,97,114,110,111,116,104,105,110,103,59],value:"∅"},{key:[118,97,114,112,104,105,59],value:"ϕ"},{key:[118,97,114,112,105,59],value:"ϖ"},{key:[118,97,114,112,114,111,112,116,111,59],value:"∝"},{key:[118,97,114,114,59],value:"↕"},{key:[118,97,114,114,104,111,59],value:"ϱ"},{key:[118,97,114,115,105,103,109,97,59],value:"ς"},{key:[118,97,114,115,117,98,115,101,116,110,101,113,59],value:"⊊︀"},{key:[118,97,114,115,117,98,115,101,116,110,101,113,113,59],value:"⫋︀"},{key:[118,97,114,115,117,112,115,101,116,110,101,113,59],value:"⊋︀"},{key:[118,97,114,115,117,112,115,101,116,110,101,113,113,59],value:"⫌︀"},{key:[118,97,114,116,104,101,116,97,59],value:"ϑ"},{key:[118,97,114,116,114,105,97,110,103,108,101,108,101,102,116,59],value:"⊲"},{key:[118,97,114,116,114,105,97,110,103,108,101,114,105,103,104,116,59],value:"⊳"},{key:[118,99,121,59],value:"в"},{key:[118,100,97,115,104,59],value:"⊢"},{key:[118,101,101,59],value:"∨"},{key:[118,101,101,98,97,114,59],value:"⊻"},{key:[118,101,101,101,113,59],value:"≚"},{key:[118,101,108,108,105,112,59],value:"⋮"},{key:[118,101,114,98,97,114,59],value:"|"},{key:[118,101,114,116,59],value:"|"},{key:[118,102,114,59],value:"𝔳"},{key:[118,108,116,114,105,59],value:"⊲"},{key:[118,110,115,117,98,59],value:"⊂⃒"},{key:[118,110,115,117,112,59],value:"⊃⃒"},{key:[118,111,112,102,59],value:"𝕧"},{key:[118,112,114,111,112,59],value:"∝"},{key:[118,114,116,114,105,59],value:"⊳"},{key:[118,115,99,114,59],value:"𝓋"},{key:[118,115,117,98,110,69,59],value:"⫋︀"},{key:[118,115,117,98,110,101,59],value:"⊊︀"},{key:[118,115,117,112,110,69,59],value:"⫌︀"},{key:[118,115,117,112,110,101,59],value:"⊋︀"},{key:[118,122,105,103,122,97,103,59],value:"⦚"},{key:[119,99,105,114,99,59],value:"ŵ"},{key:[119,101,100,98,97,114,59],value:"⩟"},{key:[119,101,100,103,101,59],value:"∧"},{key:[119,101,100,103,101,113,59],value:"≙"},{key:[119,101,105,101,114,112,59],value:"℘"},{key:[119,102,114,59],value:"𝔴"},{key:[119,111,112,102,59],value:"𝕨"},{key:[119,112,59],value:"℘"},{key:[119,114,59],value:"≀"},{key:[119,114,101,97,116,104,59],value:"≀"},{key:[119,115,99,114,59],value:"𝓌"},{key:[120,99,97,112,59],value:"⋂"},{key:[120,99,105,114,99,59],value:"◯"},{key:[120,99,117,112,59],value:"⋃"},{key:[120,100,116,114,105,59],value:"▽"},{key:[120,102,114,59],value:"𝔵"},{key:[120,104,65,114,114,59],value:"⟺"},{key:[120,104,97,114,114,59],value:"⟷"},{key:[120,105,59],value:"ξ"},{key:[120,108,65,114,114,59],value:"⟸"},{key:[120,108,97,114,114,59],value:"⟵"},{key:[120,109,97,112,59],value:"⟼"},{key:[120,110,105,115,59],value:"⋻"},{key:[120,111,100,111,116,59],value:"⨀"},{key:[120,111,112,102,59],value:"𝕩"},{key:[120,111,112,108,117,115,59],value:"⨁"},{key:[120,111,116,105,109,101,59],value:"⨂"},{key:[120,114,65,114,114,59],value:"⟹"},{key:[120,114,97,114,114,59],value:"⟶"},{key:[120,115,99,114,59],value:"𝓍"},{key:[120,115,113,99,117,112,59],value:"⨆"},{key:[120,117,112,108,117,115,59],value:"⨄"},{key:[120,117,116,114,105,59],value:"△"},{key:[120,118,101,101,59],value:"⋁"},{key:[120,119,101,100,103,101,59],value:"⋀"},{key:[121,97,99,117,116,101,59],value:"ý"},{key:[121,97,99,121,59],value:"я"},{key:[121,99,105,114,99,59],value:"ŷ"},{key:[121,99,121,59],value:"ы"},{key:[121,101,110,59],value:"¥"},{key:[121,102,114,59],value:"𝔶"},{key:[121,105,99,121,59],value:"ї"},{key:[121,111,112,102,59],value:"𝕪"},{key:[121,115,99,114,59],value:"𝓎"},{key:[121,117,99,121,59],value:"ю"},{key:[121,117,109,108,59],value:"ÿ"},{key:[122,97,99,117,116,101,59],value:"ź"},{key:[122,99,97,114,111,110,59],value:"ž"},{key:[122,99,121,59],value:"з"},{key:[122,100,111,116,59],value:"ż"},{key:[122,101,101,116,114,102,59],value:"ℨ"},{key:[122,101,116,97,59],value:"ζ"},{key:[122,102,114,59],value:"𝔷"},{key:[122,104,99,121,59],value:"ж"},{key:[122,105,103,114,97,114,114,59],value:"⇝"},{key:[122,111,112,102,59],value:"𝕫"},{key:[122,115,99,114,59],value:"𝓏"},{key:[122,119,106,59],value:"‍"},{key:[122,119,110,106,59],value:"‌"}];var UnicodePcCodePoint;(function(j){j[j.LOW_LINE=95]="LOW_LINE",j[j.UNDERTIE=8255]="UNDERTIE",j[j.CHARACTER_TIE=8256]="CHARACTER_TIE",j[j.INVERTED_UNDERTIE=8276]="INVERTED_UNDERTIE",j[j.PRESENTATION_FORM_FOR_VERTICAL_LOW_LINE=65075]="PRESENTATION_FORM_FOR_VERTICAL_LOW_LINE",j[j.PRESENTATION_FORM_FOR_VERTICAL_WAVY_LOW_LINE=65076]="PRESENTATION_FORM_FOR_VERTICAL_WAVY_LOW_LINE",j[j.DASHED_LOW_LINE=65101]="DASHED_LOW_LINE",j[j.CENTRELINE_LOW_LINE=65102]="CENTRELINE_LOW_LINE",j[j.WAVY_LOW_LINE=65103]="WAVY_LOW_LINE",j[j.FULLWIDTH_LOW_LINE=65343]="FULLWIDTH_LOW_LINE"})(UnicodePcCodePoint||(UnicodePcCodePoint={}));var UnicodePdCodePoint;(function(j){j[j.HYPHEN_MINUS=45]="HYPHEN_MINUS",j[j.ARMENIAN_HYPHEN=1418]="ARMENIAN_HYPHEN",j[j.HEBREW_PUNCTUATION_MAQAF=1470]="HEBREW_PUNCTUATION_MAQAF",j[j.CANADIAN_SYLLABICS_HYPHEN=5120]="CANADIAN_SYLLABICS_HYPHEN",j[j.MONGOLIAN_TODO_SOFT_HYPHEN=6150]="MONGOLIAN_TODO_SOFT_HYPHEN",j[j.HYPHEN=8208]="HYPHEN",j[j.NON_BREAKING_HYPHEN=8209]="NON_BREAKING_HYPHEN",j[j.FIGURE_DASH=8210]="FIGURE_DASH",j[j.EN_DASH=8211]="EN_DASH",j[j.EM_DASH=8212]="EM_DASH",j[j.HORIZONTAL_BAR=8213]="HORIZONTAL_BAR",j[j.DOUBLE_OBLIQUE_HYPHEN=11799]="DOUBLE_OBLIQUE_HYPHEN",j[j.HYPHEN_WITH_DIAERESIS=11802]="HYPHEN_WITH_DIAERESIS",j[j.TWO_EM_DASH=11834]="TWO_EM_DASH",j[j.THREE_EM_DASH=11835]="THREE_EM_DASH",j[j.DOUBLE_HYPHEN=11840]="DOUBLE_HYPHEN",j[j.WAVE_DASH=12316]="WAVE_DASH",j[j.WAVY_DASH=12336]="WAVY_DASH",j[j.KATAKANA_HIRAGANA_DOUBLE_HYPHEN=12448]="KATAKANA_HIRAGANA_DOUBLE_HYPHEN",j[j.PRESENTATION_FORM_FOR_VERTICAL_EM_DASH=65073]="PRESENTATION_FORM_FOR_VERTICAL_EM_DASH",j[j.PRESENTATION_FORM_FOR_VERTICAL_EN_DASH=65074]="PRESENTATION_FORM_FOR_VERTICAL_EN_DASH",j[j.SMALL_EM_DASH=65112]="SMALL_EM_DASH",j[j.SMALL_HYPHEN_MINUS=65123]="SMALL_HYPHEN_MINUS",j[j.FULLWIDTH_HYPHEN_MINUS=65293]="FULLWIDTH_HYPHEN_MINUS",j[j.YEZIDI_HYPHENATION_MARK=69293]="YEZIDI_HYPHENATION_MARK"})(UnicodePdCodePoint||(UnicodePdCodePoint={}));var UnicodePeCodePoint;(function(j){j[j.RIGHT_PARENTHESIS=41]="RIGHT_PARENTHESIS",j[j.RIGHT_SQUARE_BRACKET=93]="RIGHT_SQUARE_BRACKET",j[j.RIGHT_CURLY_BRACKET=125]="RIGHT_CURLY_BRACKET",j[j.TIBETAN_MARK_GUG_RTAGS_GYAS=3899]="TIBETAN_MARK_GUG_RTAGS_GYAS",j[j.TIBETAN_MARK_ANG_KHANG_GYAS=3901]="TIBETAN_MARK_ANG_KHANG_GYAS",j[j.OGHAM_REVERSED_FEATHER_MARK=5788]="OGHAM_REVERSED_FEATHER_MARK",j[j.RIGHT_SQUARE_BRACKET_WITH_QUILL=8262]="RIGHT_SQUARE_BRACKET_WITH_QUILL",j[j.SUPERSCRIPT_RIGHT_PARENTHESIS=8318]="SUPERSCRIPT_RIGHT_PARENTHESIS",j[j.SUBSCRIPT_RIGHT_PARENTHESIS=8334]="SUBSCRIPT_RIGHT_PARENTHESIS",j[j.RIGHT_CEILING=8969]="RIGHT_CEILING",j[j.RIGHT_FLOOR=8971]="RIGHT_FLOOR",j[j.RIGHT_POINTING_ANGLE_BRACKET=9002]="RIGHT_POINTING_ANGLE_BRACKET",j[j.MEDIUM_RIGHT_PARENTHESIS_ORNAMENT=10089]="MEDIUM_RIGHT_PARENTHESIS_ORNAMENT",j[j.MEDIUM_FLATTENED_RIGHT_PARENTHESIS_ORNAMENT=10091]="MEDIUM_FLATTENED_RIGHT_PARENTHESIS_ORNAMENT",j[j.MEDIUM_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT=10093]="MEDIUM_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT",j[j.HEAVY_RIGHT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT=10095]="HEAVY_RIGHT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT",j[j.HEAVY_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT=10097]="HEAVY_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT",j[j.LIGHT_RIGHT_TORTOISE_SHELL_BRACKET_ORNAMENT=10099]="LIGHT_RIGHT_TORTOISE_SHELL_BRACKET_ORNAMENT",j[j.MEDIUM_RIGHT_CURLY_BRACKET_ORNAMENT=10101]="MEDIUM_RIGHT_CURLY_BRACKET_ORNAMENT",j[j.RIGHT_S_SHAPED_BAG_DELIMITER=10182]="RIGHT_S_SHAPED_BAG_DELIMITER",j[j.MATHEMATICAL_RIGHT_WHITE_SQUARE_BRACKET=10215]="MATHEMATICAL_RIGHT_WHITE_SQUARE_BRACKET",j[j.MATHEMATICAL_RIGHT_ANGLE_BRACKET=10217]="MATHEMATICAL_RIGHT_ANGLE_BRACKET",j[j.MATHEMATICAL_RIGHT_DOUBLE_ANGLE_BRACKET=10219]="MATHEMATICAL_RIGHT_DOUBLE_ANGLE_BRACKET",j[j.MATHEMATICAL_RIGHT_WHITE_TORTOISE_SHELL_BRACKET=10221]="MATHEMATICAL_RIGHT_WHITE_TORTOISE_SHELL_BRACKET",j[j.MATHEMATICAL_RIGHT_FLATTENED_PARENTHESIS=10223]="MATHEMATICAL_RIGHT_FLATTENED_PARENTHESIS",j[j.RIGHT_WHITE_CURLY_BRACKET=10628]="RIGHT_WHITE_CURLY_BRACKET",j[j.RIGHT_WHITE_PARENTHESIS=10630]="RIGHT_WHITE_PARENTHESIS",j[j.Z_NOTATION_RIGHT_IMAGE_BRACKET=10632]="Z_NOTATION_RIGHT_IMAGE_BRACKET",j[j.Z_NOTATION_RIGHT_BINDING_BRACKET=10634]="Z_NOTATION_RIGHT_BINDING_BRACKET",j[j.RIGHT_SQUARE_BRACKET_WITH_UNDERBAR=10636]="RIGHT_SQUARE_BRACKET_WITH_UNDERBAR",j[j.RIGHT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER=10638]="RIGHT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER",j[j.RIGHT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER=10640]="RIGHT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER",j[j.RIGHT_ANGLE_BRACKET_WITH_DOT=10642]="RIGHT_ANGLE_BRACKET_WITH_DOT",j[j.RIGHT_ARC_GREATER_THAN_BRACKET=10644]="RIGHT_ARC_GREATER_THAN_BRACKET",j[j.DOUBLE_RIGHT_ARC_LESS_THAN_BRACKET=10646]="DOUBLE_RIGHT_ARC_LESS_THAN_BRACKET",j[j.RIGHT_BLACK_TORTOISE_SHELL_BRACKET=10648]="RIGHT_BLACK_TORTOISE_SHELL_BRACKET",j[j.RIGHT_WIGGLY_FENCE=10713]="RIGHT_WIGGLY_FENCE",j[j.RIGHT_DOUBLE_WIGGLY_FENCE=10715]="RIGHT_DOUBLE_WIGGLY_FENCE",j[j.RIGHT_POINTING_CURVED_ANGLE_BRACKET=10749]="RIGHT_POINTING_CURVED_ANGLE_BRACKET",j[j.TOP_RIGHT_HALF_BRACKET=11811]="TOP_RIGHT_HALF_BRACKET",j[j.BOTTOM_RIGHT_HALF_BRACKET=11813]="BOTTOM_RIGHT_HALF_BRACKET",j[j.RIGHT_SIDEWAYS_U_BRACKET=11815]="RIGHT_SIDEWAYS_U_BRACKET",j[j.RIGHT_DOUBLE_PARENTHESIS=11817]="RIGHT_DOUBLE_PARENTHESIS",j[j.RIGHT_ANGLE_BRACKET=12297]="RIGHT_ANGLE_BRACKET",j[j.RIGHT_DOUBLE_ANGLE_BRACKET=12299]="RIGHT_DOUBLE_ANGLE_BRACKET",j[j.RIGHT_CORNER_BRACKET=12301]="RIGHT_CORNER_BRACKET",j[j.RIGHT_WHITE_CORNER_BRACKET=12303]="RIGHT_WHITE_CORNER_BRACKET",j[j.RIGHT_BLACK_LENTICULAR_BRACKET=12305]="RIGHT_BLACK_LENTICULAR_BRACKET",j[j.RIGHT_TORTOISE_SHELL_BRACKET=12309]="RIGHT_TORTOISE_SHELL_BRACKET",j[j.RIGHT_WHITE_LENTICULAR_BRACKET=12311]="RIGHT_WHITE_LENTICULAR_BRACKET",j[j.RIGHT_WHITE_TORTOISE_SHELL_BRACKET=12313]="RIGHT_WHITE_TORTOISE_SHELL_BRACKET",j[j.RIGHT_WHITE_SQUARE_BRACKET=12315]="RIGHT_WHITE_SQUARE_BRACKET",j[j.DOUBLE_PRIME_QUOTATION_MARK=12318]="DOUBLE_PRIME_QUOTATION_MARK",j[j.LOW_DOUBLE_PRIME_QUOTATION_MARK=12319]="LOW_DOUBLE_PRIME_QUOTATION_MARK",j[j.ORNATE_LEFT_PARENTHESIS=64830]="ORNATE_LEFT_PARENTHESIS",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_LENTICULAR_BRAKCET=65048]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_LENTICULAR_BRAKCET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_PARENTHESIS=65078]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_PARENTHESIS",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CURLY_BRACKET=65080]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CURLY_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_TORTOISE_SHELL_BRACKET=65082]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_TORTOISE_SHELL_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_BLACK_LENTICULAR_BRACKET=65084]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_BLACK_LENTICULAR_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_DOUBLE_ANGLE_BRACKET=65086]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_DOUBLE_ANGLE_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_ANGLE_BRACKET=65088]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_ANGLE_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CORNER_BRACKET=65090]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CORNER_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_CORNER_BRACKET=65092]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_CORNER_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_SQUARE_BRACKET=65096]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_SQUARE_BRACKET",j[j.SMALL_RIGHT_PARENTHESIS=65114]="SMALL_RIGHT_PARENTHESIS",j[j.SMALL_RIGHT_CURLY_BRACKET=65116]="SMALL_RIGHT_CURLY_BRACKET",j[j.SMALL_RIGHT_TORTOISE_SHELL_BRACKET=65118]="SMALL_RIGHT_TORTOISE_SHELL_BRACKET",j[j.FULLWIDTH_RIGHT_PARENTHESIS=65289]="FULLWIDTH_RIGHT_PARENTHESIS",j[j.FULLWIDTH_RIGHT_SQUARE_BRACKET=65341]="FULLWIDTH_RIGHT_SQUARE_BRACKET",j[j.FULLWIDTH_RIGHT_CURLY_BRACKET=65373]="FULLWIDTH_RIGHT_CURLY_BRACKET",j[j.FULLWIDTH_RIGHT_WHITE_PARENTHESIS=65376]="FULLWIDTH_RIGHT_WHITE_PARENTHESIS",j[j.HALFWIDTH_RIGHT_CORNER_BRACKET=65379]="HALFWIDTH_RIGHT_CORNER_BRACKET"})(UnicodePeCodePoint||(UnicodePeCodePoint={}));var UnicodePfCodePoint;(function(j){j[j.RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK=187]="RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK",j[j.RIGHT_SINGLE_QUOTATION_MARK=8217]="RIGHT_SINGLE_QUOTATION_MARK",j[j.RIGHT_DOUBLE_QUOTATION_MARK=8221]="RIGHT_DOUBLE_QUOTATION_MARK",j[j.SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK=8250]="SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK",j[j.RIGHT_SUBSTITUTION_BRACKET=11779]="RIGHT_SUBSTITUTION_BRACKET",j[j.RIGHT_DOTTED_SUBSTITUTION_BRACKET=11781]="RIGHT_DOTTED_SUBSTITUTION_BRACKET",j[j.RIGHT_TRANSPOSITION_BRACKET=11786]="RIGHT_TRANSPOSITION_BRACKET",j[j.RIGHT_RAISED_OMISSION_BRACKET=11789]="RIGHT_RAISED_OMISSION_BRACKET",j[j.RIGHT_LOW_PARAPHRASE_BRACKET=11805]="RIGHT_LOW_PARAPHRASE_BRACKET",j[j.RIGHT_VERTICAL_BAR_WITH_QUILL=11809]="RIGHT_VERTICAL_BAR_WITH_QUILL"})(UnicodePfCodePoint||(UnicodePfCodePoint={}));var UnicodePiCodePoint;(function(j){j[j.LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK=171]="LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK",j[j.LEFT_SINGLE_QUOTATION_MARK=8216]="LEFT_SINGLE_QUOTATION_MARK",j[j.SINGLE_HIGH_REVERSED_9_QUOTATION_MARK=8219]="SINGLE_HIGH_REVERSED_9_QUOTATION_MARK",j[j.LEFT_DOUBLE_QUOTATION_MARK=8220]="LEFT_DOUBLE_QUOTATION_MARK",j[j.DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK=8223]="DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK",j[j.SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK=8249]="SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK",j[j.LEFT_SUBSTITUTION_BRACKET=11778]="LEFT_SUBSTITUTION_BRACKET",j[j.LEFT_DOTTED_SUBSTITUTION_BRACKET=11780]="LEFT_DOTTED_SUBSTITUTION_BRACKET",j[j.LEFT_TRANSPOSITION_BRACKET=11785]="LEFT_TRANSPOSITION_BRACKET",j[j.LEFT_RAISED_OMISSION_BRACKET=11788]="LEFT_RAISED_OMISSION_BRACKET",j[j.LEFT_LOW_PARAPHRASE_BRACKET=11804]="LEFT_LOW_PARAPHRASE_BRACKET",j[j.LEFT_VERTICAL_BAR_WITH_QUILL=11808]="LEFT_VERTICAL_BAR_WITH_QUILL"})(UnicodePiCodePoint||(UnicodePiCodePoint={}));var UnicodePoCodePoint;(function(j){j[j.EXCLAMATION_MARK=33]="EXCLAMATION_MARK",j[j.QUOTATION_MARK=34]="QUOTATION_MARK",j[j.NUMBER_SIGN=35]="NUMBER_SIGN",j[j.PERCENT_SIGN=37]="PERCENT_SIGN",j[j.AMPERSAND=38]="AMPERSAND",j[j.APOSTROPHE=39]="APOSTROPHE",j[j.ASTERISK=42]="ASTERISK",j[j.COMMA=44]="COMMA",j[j.FULL_STOP=46]="FULL_STOP",j[j.SOLIDUS=47]="SOLIDUS",j[j.COLON=58]="COLON",j[j.SEMICOLON=59]="SEMICOLON",j[j.QUESTION_MARK=63]="QUESTION_MARK",j[j.COMMERCIAL_AT=64]="COMMERCIAL_AT",j[j.REVERSE_SOLIDUS=92]="REVERSE_SOLIDUS",j[j.INVERTED_EXCLAMATION_MARK=161]="INVERTED_EXCLAMATION_MARK",j[j.SECTION_SIGN=167]="SECTION_SIGN",j[j.PILCROW_SIGN=182]="PILCROW_SIGN",j[j.MIDDLE_DOT=183]="MIDDLE_DOT",j[j.INVERTED_QUESTION_MARK=191]="INVERTED_QUESTION_MARK",j[j.GREEK_QUESTION_MARK=894]="GREEK_QUESTION_MARK",j[j.GREEK_ANO_TELEIA=903]="GREEK_ANO_TELEIA",j[j.ARMENIAN_APOSTROPHE=1370]="ARMENIAN_APOSTROPHE",j[j.ARMENIAN_EMPHASIS_MARK=1371]="ARMENIAN_EMPHASIS_MARK",j[j.ARMENIAN_EXCLAMATION_MARK=1372]="ARMENIAN_EXCLAMATION_MARK",j[j.ARMENIAN_COMMA=1373]="ARMENIAN_COMMA",j[j.ARMENIAN_QUESTION_MARK=1374]="ARMENIAN_QUESTION_MARK",j[j.ARMENIAN_ABBREVIATION_MARK=1375]="ARMENIAN_ABBREVIATION_MARK",j[j.ARMENIAN_FULL_STOP=1417]="ARMENIAN_FULL_STOP",j[j.HEBREW_PUNCTUATION_PASEQ=1472]="HEBREW_PUNCTUATION_PASEQ",j[j.HEBREW_PUNCTUATION_SOF_PASUQ=1475]="HEBREW_PUNCTUATION_SOF_PASUQ",j[j.HEBREW_PUNCTUATION_NUN_HAFUKHA=1478]="HEBREW_PUNCTUATION_NUN_HAFUKHA",j[j.HEBREW_PUNCTUATION_GERESH=1523]="HEBREW_PUNCTUATION_GERESH",j[j.HEBREW_PUNCTUATION_GERSHAYIM=1524]="HEBREW_PUNCTUATION_GERSHAYIM",j[j.ARABIC_INDIC_PER_MILLE_SIGN=1545]="ARABIC_INDIC_PER_MILLE_SIGN",j[j.ARABIC_INDIC_PER_TEN_THOUSAND_SIGN=1546]="ARABIC_INDIC_PER_TEN_THOUSAND_SIGN",j[j.ARABIC_COMMA=1548]="ARABIC_COMMA",j[j.ARABIC_DATE_SEPARATOR=1549]="ARABIC_DATE_SEPARATOR",j[j.ARABIC_SEMICOLON=1563]="ARABIC_SEMICOLON",j[j.ARABIC_TRIPLE_DOT_PUNCTUATION_MARK=1566]="ARABIC_TRIPLE_DOT_PUNCTUATION_MARK",j[j.ARABIC_QUESTION_MARK=1567]="ARABIC_QUESTION_MARK",j[j.ARABIC_PERCENT_SIGN=1642]="ARABIC_PERCENT_SIGN",j[j.ARABIC_DECIMAL_SEPARATOR=1643]="ARABIC_DECIMAL_SEPARATOR",j[j.ARABIC_THOUSANDS_SEPARATOR=1644]="ARABIC_THOUSANDS_SEPARATOR",j[j.ARABIC_FIVE_POINTED_STAR=1645]="ARABIC_FIVE_POINTED_STAR",j[j.ARABIC_FULL_STOP=1748]="ARABIC_FULL_STOP",j[j.SYRIAC_END_OF_PARAGRAPH=1792]="SYRIAC_END_OF_PARAGRAPH",j[j.SYRIAC_SUPRALINEAR_FULL_STOP=1793]="SYRIAC_SUPRALINEAR_FULL_STOP",j[j.SYRIAC_SUBLINEAR_FULL_STOP=1794]="SYRIAC_SUBLINEAR_FULL_STOP",j[j.SYRIAC_SUPRALINEAR_COLON=1795]="SYRIAC_SUPRALINEAR_COLON",j[j.SYRIAC_SUBLINEAR_COLON=1796]="SYRIAC_SUBLINEAR_COLON",j[j.SYRIAC_HORIZONTAL_COLON=1797]="SYRIAC_HORIZONTAL_COLON",j[j.SYRIAC_COLON_SKEWED_LEFT=1798]="SYRIAC_COLON_SKEWED_LEFT",j[j.SYRIAC_COLON_SKEWED_RIGHT=1799]="SYRIAC_COLON_SKEWED_RIGHT",j[j.SYRIAC_SUPRALINEAR_COLON_SKEWED_LEFT=1800]="SYRIAC_SUPRALINEAR_COLON_SKEWED_LEFT",j[j.SYRIAC_SUBLINEAR_COLON_SKEWED_RIGHT=1801]="SYRIAC_SUBLINEAR_COLON_SKEWED_RIGHT",j[j.SYRIAC_CONTRACTION=1802]="SYRIAC_CONTRACTION",j[j.SYRIAC_HARKLEAN_OBELUS=1803]="SYRIAC_HARKLEAN_OBELUS",j[j.SYRIAC_HARKLEAN_METOBELUS=1804]="SYRIAC_HARKLEAN_METOBELUS",j[j.SYRIAC_HARKLEAN_ASTERISCUS=1805]="SYRIAC_HARKLEAN_ASTERISCUS",j[j.NKO_SYMBOL_GBAKURUNEN=2039]="NKO_SYMBOL_GBAKURUNEN",j[j.NKO_COMMA=2040]="NKO_COMMA",j[j.NKO_EXCLAMATION_MARK=2041]="NKO_EXCLAMATION_MARK",j[j.SAMARITAN_PUNCTUATION_NEQUDAA=2096]="SAMARITAN_PUNCTUATION_NEQUDAA",j[j.SAMARITAN_PUNCTUATION_AFSAAQ=2097]="SAMARITAN_PUNCTUATION_AFSAAQ",j[j.SAMARITAN_PUNCTUATION_ANGED=2098]="SAMARITAN_PUNCTUATION_ANGED",j[j.SAMARITAN_PUNCTUATION_BAU=2099]="SAMARITAN_PUNCTUATION_BAU",j[j.SAMARITAN_PUNCTUATION_ATMAAU=2100]="SAMARITAN_PUNCTUATION_ATMAAU",j[j.SAMARITAN_PUNCTUATION_SHIYYAALAA=2101]="SAMARITAN_PUNCTUATION_SHIYYAALAA",j[j.SAMARITAN_ABBREVIATION_MARK=2102]="SAMARITAN_ABBREVIATION_MARK",j[j.SAMARITAN_PUNCTUATION_MELODIC_QITSA=2103]="SAMARITAN_PUNCTUATION_MELODIC_QITSA",j[j.SAMARITAN_PUNCTUATION_ZIQAA=2104]="SAMARITAN_PUNCTUATION_ZIQAA",j[j.SAMARITAN_PUNCTUATION_QITSA=2105]="SAMARITAN_PUNCTUATION_QITSA",j[j.SAMARITAN_PUNCTUATION_ZAEF=2106]="SAMARITAN_PUNCTUATION_ZAEF",j[j.SAMARITAN_PUNCTUATION_TURU=2107]="SAMARITAN_PUNCTUATION_TURU",j[j.SAMARITAN_PUNCTUATION_ARKAANU=2108]="SAMARITAN_PUNCTUATION_ARKAANU",j[j.SAMARITAN_PUNCTUATION_SOF_MASHFAAT=2109]="SAMARITAN_PUNCTUATION_SOF_MASHFAAT",j[j.SAMARITAN_PUNCTUATION_ANNAAU=2110]="SAMARITAN_PUNCTUATION_ANNAAU",j[j.MANDAIC_PUNCTUATION=2142]="MANDAIC_PUNCTUATION",j[j.DEVANAGARI_DANDA=2404]="DEVANAGARI_DANDA",j[j.DEVANAGARI_DOUBLE_DANDA=2405]="DEVANAGARI_DOUBLE_DANDA",j[j.DEVANAGARI_ABBREVIATION_SIGN=2416]="DEVANAGARI_ABBREVIATION_SIGN",j[j.BENGALI_ABBREVIATION_SIGN=2557]="BENGALI_ABBREVIATION_SIGN",j[j.GURMUKHI_ABBREVIATION_SIGN=2678]="GURMUKHI_ABBREVIATION_SIGN",j[j.GUJARATI_ABBREVIATION_SIGN=2800]="GUJARATI_ABBREVIATION_SIGN",j[j.TELUGU_SIGN_SIDDHAM=3191]="TELUGU_SIGN_SIDDHAM",j[j.KANNADA_SIGN_SIDDHAM=3204]="KANNADA_SIGN_SIDDHAM",j[j.SINHALA_PUNCTUATION_KUNDDALIYA=3572]="SINHALA_PUNCTUATION_KUNDDALIYA",j[j.THAI_CHARACTER_FONGMAN=3663]="THAI_CHARACTER_FONGMAN",j[j.THAI_CHARACTER_ANGKHANKHU=3674]="THAI_CHARACTER_ANGKHANKHU",j[j.THAI_CHARACTER_KHOMUT=3675]="THAI_CHARACTER_KHOMUT",j[j.TIBETAN_MARK_INITIAL_YIG_MGO_MDUN_MA=3844]="TIBETAN_MARK_INITIAL_YIG_MGO_MDUN_MA",j[j.TIBETAN_MARK_CLOSING_YIG_MGO_SGAB_MA=3845]="TIBETAN_MARK_CLOSING_YIG_MGO_SGAB_MA",j[j.TIBETAN_MARK_CARET_YIG_MGO_PHUR_SHAD_MA=3846]="TIBETAN_MARK_CARET_YIG_MGO_PHUR_SHAD_MA",j[j.TIBETAN_MARK_YIG_MGO_TSHEG_SHAD_MA=3847]="TIBETAN_MARK_YIG_MGO_TSHEG_SHAD_MA",j[j.TIBETAN_MARK_SBRUL_SHAD=3848]="TIBETAN_MARK_SBRUL_SHAD",j[j.TIBETAN_MARK_BSKUR_YIG_MGO=3849]="TIBETAN_MARK_BSKUR_YIG_MGO",j[j.TIBETAN_MARK_BKA__SHOG_YIG_MGO=3850]="TIBETAN_MARK_BKA__SHOG_YIG_MGO",j[j.TIBETAN_MARK_INTERSYLLABIC_TSHEG=3851]="TIBETAN_MARK_INTERSYLLABIC_TSHEG",j[j.TIBETAN_MARK_DELIMITER_TSHEG_BSTAR=3852]="TIBETAN_MARK_DELIMITER_TSHEG_BSTAR",j[j.TIBETAN_MARK_SHAD=3853]="TIBETAN_MARK_SHAD",j[j.TIBETAN_MARK_NYIS_SHAD=3854]="TIBETAN_MARK_NYIS_SHAD",j[j.TIBETAN_MARK_TSHEG_SHAD=3855]="TIBETAN_MARK_TSHEG_SHAD",j[j.TIBETAN_MARK_NYIS_TSHEG_SHAD=3856]="TIBETAN_MARK_NYIS_TSHEG_SHAD",j[j.TIBETAN_MARK_RIN_CHEN_SPUNGS_SHAD=3857]="TIBETAN_MARK_RIN_CHEN_SPUNGS_SHAD",j[j.TIBETAN_MARK_RGYA_GRAM_SHAD=3858]="TIBETAN_MARK_RGYA_GRAM_SHAD",j[j.TIBETAN_MARK_GTER_TSHEG=3860]="TIBETAN_MARK_GTER_TSHEG",j[j.TIBETAN_MARK_PALUTA=3973]="TIBETAN_MARK_PALUTA",j[j.TIBETAN_MARK_BSKA__SHOG_GI_MGO_RGYAN=4048]="TIBETAN_MARK_BSKA__SHOG_GI_MGO_RGYAN",j[j.TIBETAN_MARK_MNYAM_YIG_GI_MGO_RGYAN=4049]="TIBETAN_MARK_MNYAM_YIG_GI_MGO_RGYAN",j[j.TIBETAN_MARK_NYIS_TSHEG=4050]="TIBETAN_MARK_NYIS_TSHEG",j[j.TIBETAN_MARK_INITIAL_BRDA_RNYING_YIG_MGO_MDUN_MA=4051]="TIBETAN_MARK_INITIAL_BRDA_RNYING_YIG_MGO_MDUN_MA",j[j.TIBETAN_MARK_CLOSING_BRDA_RNYING_YIG_MGO_SGAB_MA=4052]="TIBETAN_MARK_CLOSING_BRDA_RNYING_YIG_MGO_SGAB_MA",j[j.TIBETAN_MARK_LEADING_MCHAN_RTAGS=4057]="TIBETAN_MARK_LEADING_MCHAN_RTAGS",j[j.TIBETAN_MARK_TRAILING_MCHAN_RTAGS=4058]="TIBETAN_MARK_TRAILING_MCHAN_RTAGS",j[j.MYANMAR_SIGN_LITTLE_SECTION=4170]="MYANMAR_SIGN_LITTLE_SECTION",j[j.MYANMAR_SIGN_SECTION=4171]="MYANMAR_SIGN_SECTION",j[j.MYANMAR_SYMBOL_LOCATIVE=4172]="MYANMAR_SYMBOL_LOCATIVE",j[j.MYANMAR_SYMBOL_COMPLETED=4173]="MYANMAR_SYMBOL_COMPLETED",j[j.MYANMAR_SYMBOL_AFOREMENTIONED=4174]="MYANMAR_SYMBOL_AFOREMENTIONED",j[j.MYANMAR_SYMBOL_GENITIVE=4175]="MYANMAR_SYMBOL_GENITIVE",j[j.GEORGIAN_PARAGRAPH_SEPARATOR=4347]="GEORGIAN_PARAGRAPH_SEPARATOR",j[j.ETHIOPIC_SECTION_MARK=4960]="ETHIOPIC_SECTION_MARK",j[j.ETHIOPIC_WORDSPACE=4961]="ETHIOPIC_WORDSPACE",j[j.ETHIOPIC_FULL_STOP=4962]="ETHIOPIC_FULL_STOP",j[j.ETHIOPIC_COMMA=4963]="ETHIOPIC_COMMA",j[j.ETHIOPIC_SEMICOLON=4964]="ETHIOPIC_SEMICOLON",j[j.ETHIOPIC_COLON=4965]="ETHIOPIC_COLON",j[j.ETHIOPIC_PREFACE_COLON=4966]="ETHIOPIC_PREFACE_COLON",j[j.ETHIOPIC_QUESTION_MARK=4967]="ETHIOPIC_QUESTION_MARK",j[j.ETHIOPIC_PARAGRAPH_SEPARATOR=4968]="ETHIOPIC_PARAGRAPH_SEPARATOR",j[j.CANADIAN_SYLLABICS_FULL_STOP=5742]="CANADIAN_SYLLABICS_FULL_STOP",j[j.RUNIC_SINGLE_PUNCTUATION=5867]="RUNIC_SINGLE_PUNCTUATION",j[j.RUNIC_MULTIPLE_PUNCTUATION=5868]="RUNIC_MULTIPLE_PUNCTUATION",j[j.RUNIC_CROSS_PUNCTUATION=5869]="RUNIC_CROSS_PUNCTUATION",j[j.PHILIPPINE_SINGLE_PUNCTUATION=5941]="PHILIPPINE_SINGLE_PUNCTUATION",j[j.PHILIPPINE_DOUBLE_PUNCTUATION=5942]="PHILIPPINE_DOUBLE_PUNCTUATION",j[j.KHMER_SIGN_KHAN=6100]="KHMER_SIGN_KHAN",j[j.KHMER_SIGN_BARIYOOSAN=6101]="KHMER_SIGN_BARIYOOSAN",j[j.KHMER_SIGN_CAMNUC_PII_KUUH=6102]="KHMER_SIGN_CAMNUC_PII_KUUH",j[j.KHMER_SIGN_BEYYAL=6104]="KHMER_SIGN_BEYYAL",j[j.KHMER_SIGN_PHNAEK_MUAN=6105]="KHMER_SIGN_PHNAEK_MUAN",j[j.KHMER_SIGN_KOOMUUT=6106]="KHMER_SIGN_KOOMUUT",j[j.MONGOLIAN_BIRGA=6144]="MONGOLIAN_BIRGA",j[j.MONGOLIAN_ELLIPSIS=6145]="MONGOLIAN_ELLIPSIS",j[j.MONGOLIAN_COMMA=6146]="MONGOLIAN_COMMA",j[j.MONGOLIAN_FULL_STOP=6147]="MONGOLIAN_FULL_STOP",j[j.MONGOLIAN_COLON=6148]="MONGOLIAN_COLON",j[j.MONGOLIAN_FOUR_DOTS=6149]="MONGOLIAN_FOUR_DOTS",j[j.MONGOLIAN_SIBE_SYLLABLE_BOUNDARY_MARKER=6151]="MONGOLIAN_SIBE_SYLLABLE_BOUNDARY_MARKER",j[j.MONGOLIAN_MANCHU_COMMA=6152]="MONGOLIAN_MANCHU_COMMA",j[j.MONGOLIAN_MANCHU_FULL_STOP=6153]="MONGOLIAN_MANCHU_FULL_STOP",j[j.MONGOLIAN_NIRUGU=6154]="MONGOLIAN_NIRUGU",j[j.LIMBU_EXCLAMATION_MARK=6468]="LIMBU_EXCLAMATION_MARK",j[j.LIMBU_QUESTION_MARK=6469]="LIMBU_QUESTION_MARK",j[j.BUGINESE_PALLAWA=6686]="BUGINESE_PALLAWA",j[j.BUGINESE_END_OF_SECTION=6687]="BUGINESE_END_OF_SECTION",j[j.TAI_THAM_SIGN_WIANG=6816]="TAI_THAM_SIGN_WIANG",j[j.TAI_THAM_SIGN_WIANGWAAK=6817]="TAI_THAM_SIGN_WIANGWAAK",j[j.TAI_THAM_SIGN_SAWAN=6818]="TAI_THAM_SIGN_SAWAN",j[j.TAI_THAM_SIGN_KEOW=6819]="TAI_THAM_SIGN_KEOW",j[j.TAI_THAM_SIGN_HOY=6820]="TAI_THAM_SIGN_HOY",j[j.TAI_THAM_SIGN_DOKMAI=6821]="TAI_THAM_SIGN_DOKMAI",j[j.TAI_THAM_SIGN_REVERSED_ROTATED_RANA=6822]="TAI_THAM_SIGN_REVERSED_ROTATED_RANA",j[j.TAI_THAM_SIGN_KAAN=6824]="TAI_THAM_SIGN_KAAN",j[j.TAI_THAM_SIGN_KAANKUU=6825]="TAI_THAM_SIGN_KAANKUU",j[j.TAI_THAM_SIGN_SATKAAN=6826]="TAI_THAM_SIGN_SATKAAN",j[j.TAI_THAM_SIGN_SATKAANKUU=6827]="TAI_THAM_SIGN_SATKAANKUU",j[j.TAI_THAM_SIGN_HANG=6828]="TAI_THAM_SIGN_HANG",j[j.TAI_THAM_SIGN_CAANG=6829]="TAI_THAM_SIGN_CAANG",j[j.BALINESE_PANTI=7002]="BALINESE_PANTI",j[j.BALINESE_PAMADA=7003]="BALINESE_PAMADA",j[j.BALINESE_WINDU=7004]="BALINESE_WINDU",j[j.BALINESE_CARIK_PAMUNGKAH=7005]="BALINESE_CARIK_PAMUNGKAH",j[j.BALINESE_CARIK_SIKI=7006]="BALINESE_CARIK_SIKI",j[j.BALINESE_CARIK_PAREREN=7007]="BALINESE_CARIK_PAREREN",j[j.BALINESE_PAMENENG=7008]="BALINESE_PAMENENG",j[j.BATAK_SYMBOL_BINDU_NA_METEK=7164]="BATAK_SYMBOL_BINDU_NA_METEK",j[j.BATAK_SYMBOL_BINDU_PINARBORAS=7165]="BATAK_SYMBOL_BINDU_PINARBORAS",j[j.BATAK_SYMBOL_BINDU_JUDUL=7166]="BATAK_SYMBOL_BINDU_JUDUL",j[j.BATAK_SYMBOL_BINDU_PANGOLAT=7167]="BATAK_SYMBOL_BINDU_PANGOLAT",j[j.LEPCHA_PUNCTUATION_TA_ROL=7227]="LEPCHA_PUNCTUATION_TA_ROL",j[j.LEPCHA_PUNCTUATION_NYET_THYOOM_TA_ROL=7228]="LEPCHA_PUNCTUATION_NYET_THYOOM_TA_ROL",j[j.LEPCHA_PUNCTUATION_CER_WA=7229]="LEPCHA_PUNCTUATION_CER_WA",j[j.LEPCHA_PUNCTUATION_TSHOOK_CER_WA=7230]="LEPCHA_PUNCTUATION_TSHOOK_CER_WA",j[j.LEPCHA_PUNCTUATION_TSHOOK=7231]="LEPCHA_PUNCTUATION_TSHOOK",j[j.OL_CHIKI_PUNCTUATION_MUCAAD=7294]="OL_CHIKI_PUNCTUATION_MUCAAD",j[j.OL_CHIKI_PUNCTUATION_DOUBLE_MUCAAD=7295]="OL_CHIKI_PUNCTUATION_DOUBLE_MUCAAD",j[j.SUNDANESE_PUNCTUATION_BINDU_SURYA=7360]="SUNDANESE_PUNCTUATION_BINDU_SURYA",j[j.SUNDANESE_PUNCTUATION_BINDU_PANGLONG=7361]="SUNDANESE_PUNCTUATION_BINDU_PANGLONG",j[j.SUNDANESE_PUNCTUATION_BINDU_PURNAMA=7362]="SUNDANESE_PUNCTUATION_BINDU_PURNAMA",j[j.SUNDANESE_PUNCTUATION_BINDU_CAKRA=7363]="SUNDANESE_PUNCTUATION_BINDU_CAKRA",j[j.SUNDANESE_PUNCTUATION_BINDU_LEU_SATANGA=7364]="SUNDANESE_PUNCTUATION_BINDU_LEU_SATANGA",j[j.SUNDANESE_PUNCTUATION_BINDU_KA_SATANGA=7365]="SUNDANESE_PUNCTUATION_BINDU_KA_SATANGA",j[j.SUNDANESE_PUNCTUATION_BINDU_DA_SATANGA=7366]="SUNDANESE_PUNCTUATION_BINDU_DA_SATANGA",j[j.SUNDANESE_PUNCTUATION_BINDU_BA_SATANGA=7367]="SUNDANESE_PUNCTUATION_BINDU_BA_SATANGA",j[j.VEDIC_SIGN_NIHSHVASA=7379]="VEDIC_SIGN_NIHSHVASA",j[j.DOUBLE_VERTICAL_LINE=8214]="DOUBLE_VERTICAL_LINE",j[j.DOUBLE_LOW_LINE=8215]="DOUBLE_LOW_LINE",j[j.DAGGER=8224]="DAGGER",j[j.DOUBLE_DAGGER=8225]="DOUBLE_DAGGER",j[j.BULLET=8226]="BULLET",j[j.TRIANGULAR_BULLET=8227]="TRIANGULAR_BULLET",j[j.ONE_DOT_LEADER=8228]="ONE_DOT_LEADER",j[j.TWO_DOT_LEADER=8229]="TWO_DOT_LEADER",j[j.HORIZONTAL_ELLIPSIS=8230]="HORIZONTAL_ELLIPSIS",j[j.HYPHENATION_POINT=8231]="HYPHENATION_POINT",j[j.PER_MILLE_SIGN=8240]="PER_MILLE_SIGN",j[j.PER_TEN_THOUSAND_SIGN=8241]="PER_TEN_THOUSAND_SIGN",j[j.PRIME=8242]="PRIME",j[j.DOUBLE_PRIME=8243]="DOUBLE_PRIME",j[j.TRIPLE_PRIME=8244]="TRIPLE_PRIME",j[j.REVERSED_PRIME=8245]="REVERSED_PRIME",j[j.REVERSED_DOUBLE_PRIME=8246]="REVERSED_DOUBLE_PRIME",j[j.REVERSED_TRIPLE_PRIME=8247]="REVERSED_TRIPLE_PRIME",j[j.CARET=8248]="CARET",j[j.REFERENCE_MARK=8251]="REFERENCE_MARK",j[j.DOUBLE_EXCLAMATION_MARK=8252]="DOUBLE_EXCLAMATION_MARK",j[j.INTERROBANG=8253]="INTERROBANG",j[j.OVERLINE=8254]="OVERLINE",j[j.CARET_INSERTION_POINT=8257]="CARET_INSERTION_POINT",j[j.ASTERISM=8258]="ASTERISM",j[j.HYPHEN_BULLET=8259]="HYPHEN_BULLET",j[j.DOUBLE_QUESTION_MARK=8263]="DOUBLE_QUESTION_MARK",j[j.QUESTION_EXCLAMATION_MARK=8264]="QUESTION_EXCLAMATION_MARK",j[j.EXCLAMATION_QUESTION_MARK=8265]="EXCLAMATION_QUESTION_MARK",j[j.TIRONIAN_SIGN_ET=8266]="TIRONIAN_SIGN_ET",j[j.REVERSED_PILCROW_SIGN=8267]="REVERSED_PILCROW_SIGN",j[j.BLACK_LEFTWARDS_BULLET=8268]="BLACK_LEFTWARDS_BULLET",j[j.BLACK_RIGHTWARDS_BULLET=8269]="BLACK_RIGHTWARDS_BULLET",j[j.LOW_ASTERISK=8270]="LOW_ASTERISK",j[j.REVERSED_SEMICOLON=8271]="REVERSED_SEMICOLON",j[j.CLOSE_UP=8272]="CLOSE_UP",j[j.TWO_ASTERISKS_ALIGNED_VERTICALLY=8273]="TWO_ASTERISKS_ALIGNED_VERTICALLY",j[j.SWUNG_DASH=8275]="SWUNG_DASH",j[j.FLOWER_PUNCTUATION_MARK=8277]="FLOWER_PUNCTUATION_MARK",j[j.THREE_DOT_PUNCTUATION=8278]="THREE_DOT_PUNCTUATION",j[j.QUADRUPLE_PRIME=8279]="QUADRUPLE_PRIME",j[j.FOUR_DOT_PUNCTUATION=8280]="FOUR_DOT_PUNCTUATION",j[j.FIVE_DOT_PUNCTUATION=8281]="FIVE_DOT_PUNCTUATION",j[j.TWO_DOT_PUNCTUATION=8282]="TWO_DOT_PUNCTUATION",j[j.FOUR_DOT_MARK=8283]="FOUR_DOT_MARK",j[j.DOTTED_CROSS=8284]="DOTTED_CROSS",j[j.TRICOLON=8285]="TRICOLON",j[j.VERTICAL_FOUR_DOTS=8286]="VERTICAL_FOUR_DOTS",j[j.COPTIC_OLD_NUBIAN_FULL_STOP=11513]="COPTIC_OLD_NUBIAN_FULL_STOP",j[j.COPTIC_OLD_NUBIAN_DIRECT_QUESTION_MARK=11514]="COPTIC_OLD_NUBIAN_DIRECT_QUESTION_MARK",j[j.COPTIC_OLD_NUBIAN_INDIRECT_QUESTION_MARK=11515]="COPTIC_OLD_NUBIAN_INDIRECT_QUESTION_MARK",j[j.COPTIC_OLD_NUBIAN_VERSE_DIVIDER=11516]="COPTIC_OLD_NUBIAN_VERSE_DIVIDER",j[j.COPTIC_FULL_STOP=11518]="COPTIC_FULL_STOP",j[j.COPTIC_MORPHOLOGICAL_DIVIDER=11519]="COPTIC_MORPHOLOGICAL_DIVIDER",j[j.TIFINAGH_SEPARATOR_MARK=11632]="TIFINAGH_SEPARATOR_MARK",j[j.RIGHT_ANGLE_SUBSTITUTION_MARKER=11776]="RIGHT_ANGLE_SUBSTITUTION_MARKER",j[j.RIGHT_ANGLE_DOTTED_SUBSTITUTION_MARKER=11777]="RIGHT_ANGLE_DOTTED_SUBSTITUTION_MARKER",j[j.RAISED_INTERPOLATION_MARKER=11782]="RAISED_INTERPOLATION_MARKER",j[j.RAISED_DOTTED_INTERPOLATION_MARKER=11783]="RAISED_DOTTED_INTERPOLATION_MARKER",j[j.DOTTED_TRANSPOSITION_MARKER=11784]="DOTTED_TRANSPOSITION_MARKER",j[j.RAISED_SQUARE=11787]="RAISED_SQUARE",j[j.EDITORIAL_CORONIS=11790]="EDITORIAL_CORONIS",j[j.PARAGRAPHOS=11791]="PARAGRAPHOS",j[j.FORKED_PARAGRAPHOS=11792]="FORKED_PARAGRAPHOS",j[j.REVERSED_FORKED_PARAGRAPHOS=11793]="REVERSED_FORKED_PARAGRAPHOS",j[j.HYPODIASTOLE=11794]="HYPODIASTOLE",j[j.DOTTED_OBELOS=11795]="DOTTED_OBELOS",j[j.DOWNWARDS_ANCORA=11796]="DOWNWARDS_ANCORA",j[j.UPWARDS_ANCORA=11797]="UPWARDS_ANCORA",j[j.DOTTED_RIGHT_POINTING_ANGLE=11798]="DOTTED_RIGHT_POINTING_ANGLE",j[j.INVERTED_INTERROBANG=11800]="INVERTED_INTERROBANG",j[j.PALM_BRANCH=11801]="PALM_BRANCH",j[j.TILDE_WITH_RING_ABOVE=11803]="TILDE_WITH_RING_ABOVE",j[j.TILDE_WITH_DOT_ABOVE=11806]="TILDE_WITH_DOT_ABOVE",j[j.TILDE_WITH_DOT_BELOW=11807]="TILDE_WITH_DOT_BELOW",j[j.TWO_DOTS_OVER_ONE_DOT_PUNCTUATION=11818]="TWO_DOTS_OVER_ONE_DOT_PUNCTUATION",j[j.ONE_DOT_OVER_TWO_DOTS_PUNCTUATION=11819]="ONE_DOT_OVER_TWO_DOTS_PUNCTUATION",j[j.SQUARED_FOUR_DOT_PUNCTUATION=11820]="SQUARED_FOUR_DOT_PUNCTUATION",j[j.FIVE_DOT_MARK=11821]="FIVE_DOT_MARK",j[j.REVERSED_QUESTION_MARK=11822]="REVERSED_QUESTION_MARK",j[j.RING_POINT=11824]="RING_POINT",j[j.WORD_SEPARATOR_MIDDLE_DOT=11825]="WORD_SEPARATOR_MIDDLE_DOT",j[j.TURNED_COMMA=11826]="TURNED_COMMA",j[j.RAISED_DOT=11827]="RAISED_DOT",j[j.RAISED_COMMA=11828]="RAISED_COMMA",j[j.TURNED_SEMICOLON=11829]="TURNED_SEMICOLON",j[j.DAGGER_WITH_LEFT_GUARD=11830]="DAGGER_WITH_LEFT_GUARD",j[j.DAGGER_WITH_RIGHT_GUARD=11831]="DAGGER_WITH_RIGHT_GUARD",j[j.TURNED_DAGGER=11832]="TURNED_DAGGER",j[j.TOP_HALF_SECTION_SIGN=11833]="TOP_HALF_SECTION_SIGN",j[j.STENOGRAPHIC_FULL_STOP=11836]="STENOGRAPHIC_FULL_STOP",j[j.VERTICAL_SIX_DOTS=11837]="VERTICAL_SIX_DOTS",j[j.WIGGLY_VERTICAL_LINE=11838]="WIGGLY_VERTICAL_LINE",j[j.CAPITULUM=11839]="CAPITULUM",j[j.REVERSED_COMMA=11841]="REVERSED_COMMA",j[j.DASH_WITH_LEFT_UPTURN=11843]="DASH_WITH_LEFT_UPTURN",j[j.DOUBLE_SUSPENSION_MARK=11844]="DOUBLE_SUSPENSION_MARK",j[j.INVERTED_LOW_KAVYKA=11845]="INVERTED_LOW_KAVYKA",j[j.INVERTED_LOW_KAVYKA_WITH_KAVYKA_ABOVE=11846]="INVERTED_LOW_KAVYKA_WITH_KAVYKA_ABOVE",j[j.LOW_KAVYKA=11847]="LOW_KAVYKA",j[j.LOW_KAVYKA_WITH_DOT=11848]="LOW_KAVYKA_WITH_DOT",j[j.DOUBLE_STACKED_COMMA=11849]="DOUBLE_STACKED_COMMA",j[j.DOTTED_SOLIDUS=11850]="DOTTED_SOLIDUS",j[j.TRIPLE_DAGGER=11851]="TRIPLE_DAGGER",j[j.MEDIEVAL_COMMA=11852]="MEDIEVAL_COMMA",j[j.PARAGRAPHUS_MARK=11853]="PARAGRAPHUS_MARK",j[j.PUNCTUS_ELEVATUS_MARK=11854]="PUNCTUS_ELEVATUS_MARK",j[j.CORNISH_VERSE_DIVIDER=11855]="CORNISH_VERSE_DIVIDER",j[j.TIRONIAN_SIGN_CAPITAL_ET=11858]="TIRONIAN_SIGN_CAPITAL_ET",j[j.IDEOGRAPHIC_COMMA=12289]="IDEOGRAPHIC_COMMA",j[j.IDEOGRAPHIC_FULL_STOP=12290]="IDEOGRAPHIC_FULL_STOP",j[j.DITTO_MARK=12291]="DITTO_MARK",j[j.PART_ALTERNATION_MARK=12349]="PART_ALTERNATION_MARK",j[j.KATAKANA_MIDDLE_DOT=12539]="KATAKANA_MIDDLE_DOT",j[j.LISU_PUNCTUATION_COMMA=42238]="LISU_PUNCTUATION_COMMA",j[j.LISU_PUNCTUATION_FULL_STOP=42239]="LISU_PUNCTUATION_FULL_STOP",j[j.VAI_COMMA=42509]="VAI_COMMA",j[j.VAI_FULL_STOP=42510]="VAI_FULL_STOP",j[j.VAI_QUESTION_MARK=42511]="VAI_QUESTION_MARK",j[j.SLAVONIC_ASTERISK=42611]="SLAVONIC_ASTERISK",j[j.CYRILLIC_KAVYKA=42622]="CYRILLIC_KAVYKA",j[j.BAMUM_NJAEMLI=42738]="BAMUM_NJAEMLI",j[j.BAMUM_FULL_STOP=42739]="BAMUM_FULL_STOP",j[j.BAMUM_COLON=42740]="BAMUM_COLON",j[j.BAMUM_COMMA=42741]="BAMUM_COMMA",j[j.BAMUM_SEMICOLON=42742]="BAMUM_SEMICOLON",j[j.BAMUM_QUESTION_MARK=42743]="BAMUM_QUESTION_MARK",j[j.PHAGS_PA_SINGLE_HEAD_MARK=43124]="PHAGS_PA_SINGLE_HEAD_MARK",j[j.PHAGS_PA_DOUBLE_HEAD_MARK=43125]="PHAGS_PA_DOUBLE_HEAD_MARK",j[j.PHAGS_PA_MARK_SHAD=43126]="PHAGS_PA_MARK_SHAD",j[j.PHAGS_PA_MARK_DOUBLE_SHAD=43127]="PHAGS_PA_MARK_DOUBLE_SHAD",j[j.SAURASHTRA_DANDA=43214]="SAURASHTRA_DANDA",j[j.SAURASHTRA_DOUBLE_DANDA=43215]="SAURASHTRA_DOUBLE_DANDA",j[j.DEVANAGARI_SIGN_PUSHPIKA=43256]="DEVANAGARI_SIGN_PUSHPIKA",j[j.DEVANAGARI_GAP_FILLER=43257]="DEVANAGARI_GAP_FILLER",j[j.DEVANAGARI_CARET=43258]="DEVANAGARI_CARET",j[j.DEVANAGARI_SIGN_SIDDHAM=43260]="DEVANAGARI_SIGN_SIDDHAM",j[j.KAYAH_LI_SIGN_CWI=43310]="KAYAH_LI_SIGN_CWI",j[j.KAYAH_LI_SIGN_SHYA=43311]="KAYAH_LI_SIGN_SHYA",j[j.REJANG_SECTION_MARK=43359]="REJANG_SECTION_MARK",j[j.JAVANESE_LEFT_RERENGGAN=43457]="JAVANESE_LEFT_RERENGGAN",j[j.JAVANESE_RIGHT_RERENGGAN=43458]="JAVANESE_RIGHT_RERENGGAN",j[j.JAVANESE_PADA_ANDAP=43459]="JAVANESE_PADA_ANDAP",j[j.JAVANESE_PADA_MADYA=43460]="JAVANESE_PADA_MADYA",j[j.JAVANESE_PADA_LUHUR=43461]="JAVANESE_PADA_LUHUR",j[j.JAVANESE_PADA_WINDU=43462]="JAVANESE_PADA_WINDU",j[j.JAVANESE_PADA_PANGKAT=43463]="JAVANESE_PADA_PANGKAT",j[j.JAVANESE_PADA_LINGSA=43464]="JAVANESE_PADA_LINGSA",j[j.JAVANESE_PADA_LUNGSI=43465]="JAVANESE_PADA_LUNGSI",j[j.JAVANESE_PADA_ADEG=43466]="JAVANESE_PADA_ADEG",j[j.JAVANESE_PADA_ADEG_ADEG=43467]="JAVANESE_PADA_ADEG_ADEG",j[j.JAVANESE_PADA_PISELEH=43468]="JAVANESE_PADA_PISELEH",j[j.JAVANESE_TURNED_PADA_PISELEH=43469]="JAVANESE_TURNED_PADA_PISELEH",j[j.JAVANESE_PADA_TIRTA_TUMETES=43486]="JAVANESE_PADA_TIRTA_TUMETES",j[j.JAVANESE_PADA_ISEN_ISEN=43487]="JAVANESE_PADA_ISEN_ISEN",j[j.CHAM_PUNCTUATION_SPIRAL=43612]="CHAM_PUNCTUATION_SPIRAL",j[j.CHAM_PUNCTUATION_DANDA=43613]="CHAM_PUNCTUATION_DANDA",j[j.CHAM_PUNCTUATION_DOUBLE_DANDA=43614]="CHAM_PUNCTUATION_DOUBLE_DANDA",j[j.CHAM_PUNCTUATION_TRIPLE_DANDA=43615]="CHAM_PUNCTUATION_TRIPLE_DANDA",j[j.TAI_VIET_SYMBOL_HO_HOI=43742]="TAI_VIET_SYMBOL_HO_HOI",j[j.TAI_VIET_SYMBOL_KOI_KOI=43743]="TAI_VIET_SYMBOL_KOI_KOI",j[j.MEETEI_MAYEK_CHEIKHAN=43760]="MEETEI_MAYEK_CHEIKHAN",j[j.MEETEI_MAYEK_AHANG_KHUDAM=43761]="MEETEI_MAYEK_AHANG_KHUDAM",j[j.MEETEI_MAYEK_CHEIKHEI=44011]="MEETEI_MAYEK_CHEIKHEI",j[j.PRESENTATION_FORM_FOR_VERTICAL_COMMA=65040]="PRESENTATION_FORM_FOR_VERTICAL_COMMA",j[j.PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_COMMA=65041]="PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_COMMA",j[j.PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_FULL_STOP=65042]="PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_FULL_STOP",j[j.PRESENTATION_FORM_FOR_VERTICAL_COLON=65043]="PRESENTATION_FORM_FOR_VERTICAL_COLON",j[j.PRESENTATION_FORM_FOR_VERTICAL_SEMICOLON=65044]="PRESENTATION_FORM_FOR_VERTICAL_SEMICOLON",j[j.PRESENTATION_FORM_FOR_VERTICAL_EXCLAMATION_MARK=65045]="PRESENTATION_FORM_FOR_VERTICAL_EXCLAMATION_MARK",j[j.PRESENTATION_FORM_FOR_VERTICAL_QUESTION_MARK=65046]="PRESENTATION_FORM_FOR_VERTICAL_QUESTION_MARK",j[j.PRESENTATION_FORM_FOR_VERTICAL_HORIZONTAL_ELLIPSIS=65049]="PRESENTATION_FORM_FOR_VERTICAL_HORIZONTAL_ELLIPSIS",j[j.PRESENTATION_FORM_FOR_VERTICAL_TWO_DOT_LEADER=65072]="PRESENTATION_FORM_FOR_VERTICAL_TWO_DOT_LEADER",j[j.SESAME_DOT=65093]="SESAME_DOT",j[j.WHITE_SESAME_DOT=65094]="WHITE_SESAME_DOT",j[j.DASHED_OVERLINE=65097]="DASHED_OVERLINE",j[j.CENTRELINE_OVERLINE=65098]="CENTRELINE_OVERLINE",j[j.WAVY_OVERLINE=65099]="WAVY_OVERLINE",j[j.DOUBLE_WAVY_OVERLINE=65100]="DOUBLE_WAVY_OVERLINE",j[j.SMALL_COMMA=65104]="SMALL_COMMA",j[j.SMALL_IDEOGRAPHIC_COMMA=65105]="SMALL_IDEOGRAPHIC_COMMA",j[j.SMALL_FULL_STOP=65106]="SMALL_FULL_STOP",j[j.SMALL_SEMICOLON=65108]="SMALL_SEMICOLON",j[j.SMALL_COLON=65109]="SMALL_COLON",j[j.SMALL_QUESTION_MARK=65110]="SMALL_QUESTION_MARK",j[j.SMALL_EXCLAMATION_MARK=65111]="SMALL_EXCLAMATION_MARK",j[j.SMALL_NUMBER_SIGN=65119]="SMALL_NUMBER_SIGN",j[j.SMALL_AMPERSAND=65120]="SMALL_AMPERSAND",j[j.SMALL_ASTERISK=65121]="SMALL_ASTERISK",j[j.SMALL_REVERSE_SOLIDUS=65128]="SMALL_REVERSE_SOLIDUS",j[j.SMALL_PERCENT_SIGN=65130]="SMALL_PERCENT_SIGN",j[j.SMALL_COMMERCIAL_AT=65131]="SMALL_COMMERCIAL_AT",j[j.FULLWIDTH_EXCLAMATION_MARK=65281]="FULLWIDTH_EXCLAMATION_MARK",j[j.FULLWIDTH_QUOTATION_MARK=65282]="FULLWIDTH_QUOTATION_MARK",j[j.FULLWIDTH_NUMBER_SIGN=65283]="FULLWIDTH_NUMBER_SIGN",j[j.FULLWIDTH_PERCENT_SIGN=65285]="FULLWIDTH_PERCENT_SIGN",j[j.FULLWIDTH_AMPERSAND=65286]="FULLWIDTH_AMPERSAND",j[j.FULLWIDTH_APOSTROPHE=65287]="FULLWIDTH_APOSTROPHE",j[j.FULLWIDTH_ASTERISK=65290]="FULLWIDTH_ASTERISK",j[j.FULLWIDTH_COMMA=65292]="FULLWIDTH_COMMA",j[j.FULLWIDTH_FULL_STOP=65294]="FULLWIDTH_FULL_STOP",j[j.FULLWIDTH_SOLIDUS=65295]="FULLWIDTH_SOLIDUS",j[j.FULLWIDTH_COLON=65306]="FULLWIDTH_COLON",j[j.FULLWIDTH_SEMICOLON=65307]="FULLWIDTH_SEMICOLON",j[j.FULLWIDTH_QUESTION_MARK=65311]="FULLWIDTH_QUESTION_MARK",j[j.FULLWIDTH_COMMERCIAL_AT=65312]="FULLWIDTH_COMMERCIAL_AT",j[j.FULLWIDTH_REVERSE_SOLIDUS=65340]="FULLWIDTH_REVERSE_SOLIDUS",j[j.HALFWIDTH_IDEOGRAPHIC_FULL_STOP=65377]="HALFWIDTH_IDEOGRAPHIC_FULL_STOP",j[j.HALFWIDTH_IDEOGRAPHIC_COMMA=65380]="HALFWIDTH_IDEOGRAPHIC_COMMA",j[j.HALFWIDTH_KATAKANA_MIDDLE_DOT=65381]="HALFWIDTH_KATAKANA_MIDDLE_DOT",j[j.AEGEAN_WORD_SEPARATOR_LINE=65792]="AEGEAN_WORD_SEPARATOR_LINE",j[j.AEGEAN_WORD_SEPARATOR_DOT=65793]="AEGEAN_WORD_SEPARATOR_DOT",j[j.AEGEAN_CHECK_MARK=65794]="AEGEAN_CHECK_MARK",j[j.UGARITIC_WORD_DIVIDER=66463]="UGARITIC_WORD_DIVIDER",j[j.OLD_PERSIAN_WORD_DIVIDER=66512]="OLD_PERSIAN_WORD_DIVIDER",j[j.CAUCASIAN_ALBANIAN_CITATION_MARK=66927]="CAUCASIAN_ALBANIAN_CITATION_MARK",j[j.IMPERIAL_ARAMAIC_SECTION_SIGN=67671]="IMPERIAL_ARAMAIC_SECTION_SIGN",j[j.PHOENICIAN_WORD_SEPARATOR=67871]="PHOENICIAN_WORD_SEPARATOR",j[j.LYDIAN_TRIANGULAR_MARK=67903]="LYDIAN_TRIANGULAR_MARK",j[j.KHAROSHTHI_PUNCTUATION_DOT=68176]="KHAROSHTHI_PUNCTUATION_DOT",j[j.KHAROSHTHI_PUNCTUATION_SMALL_CIRCLE=68177]="KHAROSHTHI_PUNCTUATION_SMALL_CIRCLE",j[j.KHAROSHTHI_PUNCTUATION_CIRCLE=68178]="KHAROSHTHI_PUNCTUATION_CIRCLE",j[j.KHAROSHTHI_PUNCTUATION_CRESCENT_BAR=68179]="KHAROSHTHI_PUNCTUATION_CRESCENT_BAR",j[j.KHAROSHTHI_PUNCTUATION_MANGALAM=68180]="KHAROSHTHI_PUNCTUATION_MANGALAM",j[j.KHAROSHTHI_PUNCTUATION_LOTUS=68181]="KHAROSHTHI_PUNCTUATION_LOTUS",j[j.KHAROSHTHI_PUNCTUATION_DANDA=68182]="KHAROSHTHI_PUNCTUATION_DANDA",j[j.KHAROSHTHI_PUNCTUATION_DOUBLE_DANDA=68183]="KHAROSHTHI_PUNCTUATION_DOUBLE_DANDA",j[j.KHAROSHTHI_PUNCTUATION_LINES=68184]="KHAROSHTHI_PUNCTUATION_LINES",j[j.OLD_SOUTH_ARABIAN_NUMERIC_INDICATOR=68223]="OLD_SOUTH_ARABIAN_NUMERIC_INDICATOR",j[j.MANICHAEAN_PUNCTUATION_STAR=68336]="MANICHAEAN_PUNCTUATION_STAR",j[j.MANICHAEAN_PUNCTUATION_FLEURON=68337]="MANICHAEAN_PUNCTUATION_FLEURON",j[j.MANICHAEAN_PUNCTUATION_DOUBLE_DOT_WITHIN_DOT=68338]="MANICHAEAN_PUNCTUATION_DOUBLE_DOT_WITHIN_DOT",j[j.MANICHAEAN_PUNCTUATION_DOT_WITHIN_DOT=68339]="MANICHAEAN_PUNCTUATION_DOT_WITHIN_DOT",j[j.MANICHAEAN_PUNCTUATION_DOT=68340]="MANICHAEAN_PUNCTUATION_DOT",j[j.MANICHAEAN_PUNCTUATION_TWO_DOTS=68341]="MANICHAEAN_PUNCTUATION_TWO_DOTS",j[j.MANICHAEAN_PUNCTUATION_LINE_FILLER=68342]="MANICHAEAN_PUNCTUATION_LINE_FILLER",j[j.AVESTAN_ABBREVIATION_MARK=68409]="AVESTAN_ABBREVIATION_MARK",j[j.TINY_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION=68410]="TINY_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION",j[j.SMALL_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION=68411]="SMALL_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION",j[j.LARGE_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION=68412]="LARGE_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION",j[j.LARGE_ONE_DOT_OVER_TWO_DOTS_PUNCTUATION=68413]="LARGE_ONE_DOT_OVER_TWO_DOTS_PUNCTUATION",j[j.LARGE_TWO_RINGS_OVER_ONE_RING_PUNCTUATION=68414]="LARGE_TWO_RINGS_OVER_ONE_RING_PUNCTUATION",j[j.LARGE_ONE_RING_OVER_TWO_RINGS_PUNCTUATION=68415]="LARGE_ONE_RING_OVER_TWO_RINGS_PUNCTUATION",j[j.PSALTER_PAHLAVI_SECTION_MARK=68505]="PSALTER_PAHLAVI_SECTION_MARK",j[j.PSALTER_PAHLAVI_TURNED_SECTION_MARK=68506]="PSALTER_PAHLAVI_TURNED_SECTION_MARK",j[j.PSALTER_PAHLAVI_FOUR_DOTS_WITH_CROSS=68507]="PSALTER_PAHLAVI_FOUR_DOTS_WITH_CROSS",j[j.PSALTER_PAHLAVI_FOUR_DOTS_WITH_DOT=68508]="PSALTER_PAHLAVI_FOUR_DOTS_WITH_DOT",j[j.SOGDIAN_PUNCTUATION_TWO_VERTICAL_BARS=69461]="SOGDIAN_PUNCTUATION_TWO_VERTICAL_BARS",j[j.SOGDIAN_PUNCTUATION_TWO_VERTICAL_BARS_WITH_DOTS=69462]="SOGDIAN_PUNCTUATION_TWO_VERTICAL_BARS_WITH_DOTS",j[j.SOGDIAN_PUNCTUATION_CIRCLE_WITH_DOT=69463]="SOGDIAN_PUNCTUATION_CIRCLE_WITH_DOT",j[j.SOGDIAN_PUNCTUATION_TWO_CIRCLES_WITH_DOTS=69464]="SOGDIAN_PUNCTUATION_TWO_CIRCLES_WITH_DOTS",j[j.SOGDIAN_PUNCTUATION_HALF_CIRCLE_WITH_DOT=69465]="SOGDIAN_PUNCTUATION_HALF_CIRCLE_WITH_DOT",j[j.BRAHMI_DANDA=69703]="BRAHMI_DANDA",j[j.BRAHMI_DOUBLE_DANDA=69704]="BRAHMI_DOUBLE_DANDA",j[j.BRAHMI_PUNCTUATION_DOT=69705]="BRAHMI_PUNCTUATION_DOT",j[j.BRAHMI_PUNCTUATION_DOUBLE_DOT=69706]="BRAHMI_PUNCTUATION_DOUBLE_DOT",j[j.BRAHMI_PUNCTUATION_LINE=69707]="BRAHMI_PUNCTUATION_LINE",j[j.BRAHMI_PUNCTUATION_CRESCENT_BAR=69708]="BRAHMI_PUNCTUATION_CRESCENT_BAR",j[j.BRAHMI_PUNCTUATION_LOTUS=69709]="BRAHMI_PUNCTUATION_LOTUS",j[j.KAITHI_ABBREVIATION_SIGN=69819]="KAITHI_ABBREVIATION_SIGN",j[j.KAITHI_ENUMERATION_SIGN=69820]="KAITHI_ENUMERATION_SIGN",j[j.KAITHI_SECTION_MARK=69822]="KAITHI_SECTION_MARK",j[j.KAITHI_DOUBLE_SECTION_MARK=69823]="KAITHI_DOUBLE_SECTION_MARK",j[j.KAITHI_DANDA=69824]="KAITHI_DANDA",j[j.KAITHI_DOUBLE_DANDA=69825]="KAITHI_DOUBLE_DANDA",j[j.CHAKMA_SECTION_MARK=69952]="CHAKMA_SECTION_MARK",j[j.CHAKMA_DANDA=69953]="CHAKMA_DANDA",j[j.CHAKMA_DOUBLE_DANDA=69954]="CHAKMA_DOUBLE_DANDA",j[j.CHAKMA_QUESTION_MARK=69955]="CHAKMA_QUESTION_MARK",j[j.MAHAJANI_ABBREVIATION_SIGN=70004]="MAHAJANI_ABBREVIATION_SIGN",j[j.MAHAJANI_SECTION_MARK=70005]="MAHAJANI_SECTION_MARK",j[j.SHARADA_DANDA=70085]="SHARADA_DANDA",j[j.SHARADA_DOUBLE_DANDA=70086]="SHARADA_DOUBLE_DANDA",j[j.SHARADA_ABBREVIATION_SIGN=70087]="SHARADA_ABBREVIATION_SIGN",j[j.SHARADA_SEPARATOR=70088]="SHARADA_SEPARATOR",j[j.SHARADA_SUTRA_MARK=70093]="SHARADA_SUTRA_MARK",j[j.SHARADA_SIGN_SIDDHAM=70107]="SHARADA_SIGN_SIDDHAM",j[j.SHARADA_CONTINUATION_SIGN=70109]="SHARADA_CONTINUATION_SIGN",j[j.SHARADA_SECTION_MARK_1=70110]="SHARADA_SECTION_MARK_1",j[j.SHARADA_SECTION_MARK_2=70111]="SHARADA_SECTION_MARK_2",j[j.KHOJKI_DANDA=70200]="KHOJKI_DANDA",j[j.KHOJKI_DOUBLE_DANDA=70201]="KHOJKI_DOUBLE_DANDA",j[j.KHOJKI_WORD_SEPARATOR=70202]="KHOJKI_WORD_SEPARATOR",j[j.KHOJKI_SECTION_MARK=70203]="KHOJKI_SECTION_MARK",j[j.KHOJKI_DOUBLE_SECTION_MARK=70204]="KHOJKI_DOUBLE_SECTION_MARK",j[j.KHOJKI_ABBREVIATION_SIGN=70205]="KHOJKI_ABBREVIATION_SIGN",j[j.MULTANI_SECTION_MARK=70313]="MULTANI_SECTION_MARK",j[j.NEWA_DANDA=70731]="NEWA_DANDA",j[j.NEWA_DOUBLE_DANDA=70732]="NEWA_DOUBLE_DANDA",j[j.NEWA_COMMA=70733]="NEWA_COMMA",j[j.NEWA_GAP_FILLER=70734]="NEWA_GAP_FILLER",j[j.NEWA_ABBREVIATION_SIGN=70735]="NEWA_ABBREVIATION_SIGN",j[j.NEWA_DOUBLE_COMMA=70746]="NEWA_DOUBLE_COMMA",j[j.NEWA_PLACEHOLDER_MARK=70747]="NEWA_PLACEHOLDER_MARK",j[j.NEWA_INSERTION_SIGN=70749]="NEWA_INSERTION_SIGN",j[j.TIRHUTA_ABBREVIATION_SIGN=70854]="TIRHUTA_ABBREVIATION_SIGN",j[j.SIDDHAM_SIGN_SIDDHAM=71105]="SIDDHAM_SIGN_SIDDHAM",j[j.SIDDHAM_DANDA=71106]="SIDDHAM_DANDA",j[j.SIDDHAM_DOUBLE_DANDA=71107]="SIDDHAM_DOUBLE_DANDA",j[j.SIDDHAM_SEPARATOR_DOT=71108]="SIDDHAM_SEPARATOR_DOT",j[j.SIDDHAM_SEPARATOR_BAR=71109]="SIDDHAM_SEPARATOR_BAR",j[j.SIDDHAM_REPETITION_MARK_1=71110]="SIDDHAM_REPETITION_MARK_1",j[j.SIDDHAM_REPETITION_MARK_2=71111]="SIDDHAM_REPETITION_MARK_2",j[j.SIDDHAM_REPETITION_MARK_3=71112]="SIDDHAM_REPETITION_MARK_3",j[j.SIDDHAM_END_OF_TEXT_MARK=71113]="SIDDHAM_END_OF_TEXT_MARK",j[j.SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_U_SHAPED_ORNAMENTS=71114]="SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_U_SHAPED_ORNAMENTS",j[j.SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_DOTTED_CRESCENTS=71115]="SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_DOTTED_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_CRESCENTS=71116]="SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_DOUBLE_CRESCENTS=71117]="SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_DOUBLE_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_TRIPLE_CRESCENTS=71118]="SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_TRIPLE_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_DOUBLE_RING=71119]="SIDDHAM_SECTION_MARK_DOUBLE_RING",j[j.SIDDHAM_SECTION_MARK_DOUBLE_RING_WITH_RAYS=71120]="SIDDHAM_SECTION_MARK_DOUBLE_RING_WITH_RAYS",j[j.SIDDHAM_SECTION_MARK_WITH_DOUBLE_CRESCENTS=71121]="SIDDHAM_SECTION_MARK_WITH_DOUBLE_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_TRIPLE_CRESCENTS=71122]="SIDDHAM_SECTION_MARK_WITH_TRIPLE_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_QUADRUPLE_CRESCENTS=71123]="SIDDHAM_SECTION_MARK_WITH_QUADRUPLE_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_SEPTUPLE_CRESCENTS=71124]="SIDDHAM_SECTION_MARK_WITH_SEPTUPLE_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_RAYS=71125]="SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_RAYS",j[j.SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_TWO_ENCLOSURES=71126]="SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_TWO_ENCLOSURES",j[j.SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_FOUR_ENCLOSURES=71127]="SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_FOUR_ENCLOSURES",j[j.MODI_DANDA=71233]="MODI_DANDA",j[j.MODI_DOUBLE_DANDA=71234]="MODI_DOUBLE_DANDA",j[j.MODI_ABBREVIATION_SIGN=71235]="MODI_ABBREVIATION_SIGN",j[j.MONGOLIAN_BIRGA_WITH_ORNAMENT=71264]="MONGOLIAN_BIRGA_WITH_ORNAMENT",j[j.MONGOLIAN_ROTATED_BIRGA=71265]="MONGOLIAN_ROTATED_BIRGA",j[j.MONGOLIAN_DOUBLE_BIRGA_WITH_ORNAMENT=71266]="MONGOLIAN_DOUBLE_BIRGA_WITH_ORNAMENT",j[j.MONGOLIAN_TRIPLE_BIRGA_WITH_ORNAMENT=71267]="MONGOLIAN_TRIPLE_BIRGA_WITH_ORNAMENT",j[j.MONGOLIAN_BIRGA_WITH_DOUBLE_ORNAMENT=71268]="MONGOLIAN_BIRGA_WITH_DOUBLE_ORNAMENT",j[j.MONGOLIAN_ROTATED_BIRGA_WITH_ORNAMENT=71269]="MONGOLIAN_ROTATED_BIRGA_WITH_ORNAMENT",j[j.MONGOLIAN_ROTATED_BIRGA_WITH_DOUBLE_ORNAMENT=71270]="MONGOLIAN_ROTATED_BIRGA_WITH_DOUBLE_ORNAMENT",j[j.MONGOLIAN_INVERTED_BIRGA=71271]="MONGOLIAN_INVERTED_BIRGA",j[j.MONGOLIAN_INVERTED_BIRGA_WITH_DOUBLE_ORNAMENT=71272]="MONGOLIAN_INVERTED_BIRGA_WITH_DOUBLE_ORNAMENT",j[j.MONGOLIAN_SWIRL_BIRGA=71273]="MONGOLIAN_SWIRL_BIRGA",j[j.MONGOLIAN_SWIRL_BIRGA_WITH_ORNAMENT=71274]="MONGOLIAN_SWIRL_BIRGA_WITH_ORNAMENT",j[j.MONGOLIAN_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT=71275]="MONGOLIAN_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT",j[j.MONGOLIAN_TURNED_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT=71276]="MONGOLIAN_TURNED_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT",j[j.AHOM_SIGN_SMALL_SECTION=71484]="AHOM_SIGN_SMALL_SECTION",j[j.AHOM_SIGN_SECTION=71485]="AHOM_SIGN_SECTION",j[j.AHOM_SIGN_RULAI=71486]="AHOM_SIGN_RULAI",j[j.DOGRA_ABBREVIATION_SIGN=71739]="DOGRA_ABBREVIATION_SIGN",j[j.DIVES_AKURU_DOUBLE_DANDA=72004]="DIVES_AKURU_DOUBLE_DANDA",j[j.DIVES_AKURU_GAP_FILLER=72005]="DIVES_AKURU_GAP_FILLER",j[j.DIVES_AKURU_END_OF_TEXT_MARK=72006]="DIVES_AKURU_END_OF_TEXT_MARK",j[j.NANDINAGARI_SIGN_SIDDHAM=72162]="NANDINAGARI_SIGN_SIDDHAM",j[j.ZANABAZAR_SQUARE_INITIAL_HEAD_MARK=72255]="ZANABAZAR_SQUARE_INITIAL_HEAD_MARK",j[j.ZANABAZAR_SQUARE_CLOSING_HEAD_MARK=72256]="ZANABAZAR_SQUARE_CLOSING_HEAD_MARK",j[j.ZANABAZAR_SQUARE_MARK_TSHEG=72257]="ZANABAZAR_SQUARE_MARK_TSHEG",j[j.ZANABAZAR_SQUARE_MARK_SHAD=72258]="ZANABAZAR_SQUARE_MARK_SHAD",j[j.ZANABAZAR_SQUARE_MARK_DOUBLE_SHAD=72259]="ZANABAZAR_SQUARE_MARK_DOUBLE_SHAD",j[j.ZANABAZAR_SQUARE_MARK_LONG_TSHEG=72260]="ZANABAZAR_SQUARE_MARK_LONG_TSHEG",j[j.ZANABAZAR_SQUARE_INITIAL_DOUBLE_LINED_HEAD_MARK=72261]="ZANABAZAR_SQUARE_INITIAL_DOUBLE_LINED_HEAD_MARK",j[j.ZANABAZAR_SQUARE_CLOSING_DOUBLE_LINED_HEAD_MARK=72262]="ZANABAZAR_SQUARE_CLOSING_DOUBLE_LINED_HEAD_MARK",j[j.SOYOMBO_MARK_TSHEG=72346]="SOYOMBO_MARK_TSHEG",j[j.SOYOMBO_MARK_SHAD=72347]="SOYOMBO_MARK_SHAD",j[j.SOYOMBO_MARK_DOUBLE_SHAD=72348]="SOYOMBO_MARK_DOUBLE_SHAD",j[j.SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_TRIPLE_FLAME=72350]="SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_TRIPLE_FLAME",j[j.SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_FLAME=72351]="SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_FLAME",j[j.SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN=72352]="SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN",j[j.SOYOMBO_TERMINAL_MARK_1=72353]="SOYOMBO_TERMINAL_MARK_1",j[j.SOYOMBO_TERMINAL_MARK_2=72354]="SOYOMBO_TERMINAL_MARK_2",j[j.BHAIKSUKI_DANDA=72769]="BHAIKSUKI_DANDA",j[j.BHAIKSUKI_DOUBLE_DANDA=72770]="BHAIKSUKI_DOUBLE_DANDA",j[j.BHAIKSUKI_WORD_SEPARATOR=72771]="BHAIKSUKI_WORD_SEPARATOR",j[j.BHAIKSUKI_GAP_FILLER_1=72772]="BHAIKSUKI_GAP_FILLER_1",j[j.BHAIKSUKI_GAP_FILLER_2=72773]="BHAIKSUKI_GAP_FILLER_2",j[j.MARCHEN_HEAD_MARK=72816]="MARCHEN_HEAD_MARK",j[j.MARCHEN_MARK_SHAD=72817]="MARCHEN_MARK_SHAD",j[j.MAKASAR_PASSIMBANG=73463]="MAKASAR_PASSIMBANG",j[j.MAKASAR_END_OF_SECTION=73464]="MAKASAR_END_OF_SECTION",j[j.TAMIL_PUNCTUATION_END_OF_TEXT=73727]="TAMIL_PUNCTUATION_END_OF_TEXT",j[j.CUNEIFORM_PUNCTUATION_SIGN_OLD_ASSYRIAN_WORD_DIVIDER=74864]="CUNEIFORM_PUNCTUATION_SIGN_OLD_ASSYRIAN_WORD_DIVIDER",j[j.CUNEIFORM_PUNCTUATION_SIGN_VERTICAL_COLON=74865]="CUNEIFORM_PUNCTUATION_SIGN_VERTICAL_COLON",j[j.CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_COLON=74866]="CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_COLON",j[j.CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_TRICOLON=74867]="CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_TRICOLON",j[j.CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_QUADCOLON=74868]="CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_QUADCOLON",j[j.MRO_DANDA=92782]="MRO_DANDA",j[j.MRO_DOUBLE_DANDA=92783]="MRO_DOUBLE_DANDA",j[j.BASSA_VAH_FULL_STOP=92917]="BASSA_VAH_FULL_STOP",j[j.PAHAWH_HMONG_SIGN_VOS_THOM=92983]="PAHAWH_HMONG_SIGN_VOS_THOM",j[j.PAHAWH_HMONG_SIGN_VOS_TSHAB_CEEB=92984]="PAHAWH_HMONG_SIGN_VOS_TSHAB_CEEB",j[j.PAHAWH_HMONG_SIGN_CIM_CHEEM=92985]="PAHAWH_HMONG_SIGN_CIM_CHEEM",j[j.PAHAWH_HMONG_SIGN_VOS_THIAB=92986]="PAHAWH_HMONG_SIGN_VOS_THIAB",j[j.PAHAWH_HMONG_SIGN_VOS_FEEM=92987]="PAHAWH_HMONG_SIGN_VOS_FEEM",j[j.PAHAWH_HMONG_SIGN_XAUS=92996]="PAHAWH_HMONG_SIGN_XAUS",j[j.MEDEFAIDRIN_COMMA=93847]="MEDEFAIDRIN_COMMA",j[j.MEDEFAIDRIN_FULL_STOP=93848]="MEDEFAIDRIN_FULL_STOP",j[j.MEDEFAIDRIN_SYMBOL_AIVA=93849]="MEDEFAIDRIN_SYMBOL_AIVA",j[j.MEDEFAIDRIN_EXCLAMATION_OH=93850]="MEDEFAIDRIN_EXCLAMATION_OH",j[j.OLD_CHINESE_HOOK_MARK=94178]="OLD_CHINESE_HOOK_MARK",j[j.DUPLOYAN_PUNCTUATION_CHINOOK_FULL_STOP=113823]="DUPLOYAN_PUNCTUATION_CHINOOK_FULL_STOP",j[j.SIGNWRITING_COMMA=121479]="SIGNWRITING_COMMA",j[j.SIGNWRITING_FULL_STOP=121480]="SIGNWRITING_FULL_STOP",j[j.SIGNWRITING_SEMICOLON=121481]="SIGNWRITING_SEMICOLON",j[j.SIGNWRITING_COLON=121482]="SIGNWRITING_COLON",j[j.SIGNWRITING_PARENTHESIS=121483]="SIGNWRITING_PARENTHESIS",j[j.ADLAM_INITIAL_EXCLAMATION_MARK=125278]="ADLAM_INITIAL_EXCLAMATION_MARK",j[j.ADLAM_INITIAL_QUESTION_MARK=125279]="ADLAM_INITIAL_QUESTION_MARK"})(UnicodePoCodePoint||(UnicodePoCodePoint={}));var UnicodePsCodePoint;(function(j){j[j.LEFT_PARENTHESIS=40]="LEFT_PARENTHESIS",j[j.LEFT_SQUARE_BRACKET=91]="LEFT_SQUARE_BRACKET",j[j.LEFT_CURLY_BRACKET=123]="LEFT_CURLY_BRACKET",j[j.TIBETAN_MARK_GUG_RTAGS_GYON=3898]="TIBETAN_MARK_GUG_RTAGS_GYON",j[j.TIBETAN_MARK_ANG_KHANG_GYON=3900]="TIBETAN_MARK_ANG_KHANG_GYON",j[j.OGHAM_FEATHER_MARK=5787]="OGHAM_FEATHER_MARK",j[j.SINGLE_LOW_9_QUOTATION_MARK=8218]="SINGLE_LOW_9_QUOTATION_MARK",j[j.DOUBLE_LOW_9_QUOTATION_MARK=8222]="DOUBLE_LOW_9_QUOTATION_MARK",j[j.LEFT_SQUARE_BRACKET_WITH_QUILL=8261]="LEFT_SQUARE_BRACKET_WITH_QUILL",j[j.SUPERSCRIPT_LEFT_PARENTHESIS=8317]="SUPERSCRIPT_LEFT_PARENTHESIS",j[j.SUBSCRIPT_LEFT_PARENTHESIS=8333]="SUBSCRIPT_LEFT_PARENTHESIS",j[j.LEFT_CEILING=8968]="LEFT_CEILING",j[j.LEFT_FLOOR=8970]="LEFT_FLOOR",j[j.LEFT_POINTING_ANGLE_BRACKET=9001]="LEFT_POINTING_ANGLE_BRACKET",j[j.MEDIUM_LEFT_PARENTHESIS_ORNAMENT=10088]="MEDIUM_LEFT_PARENTHESIS_ORNAMENT",j[j.MEDIUM_FLATTENED_LEFT_PARENTHESIS_ORNAMENT=10090]="MEDIUM_FLATTENED_LEFT_PARENTHESIS_ORNAMENT",j[j.MEDIUM_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT=10092]="MEDIUM_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT",j[j.HEAVY_LEFT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT=10094]="HEAVY_LEFT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT",j[j.HEAVY_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT=10096]="HEAVY_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT",j[j.LIGHT_LEFT_TORTOISE_SHELL_BRACKET_ORNAMENT=10098]="LIGHT_LEFT_TORTOISE_SHELL_BRACKET_ORNAMENT",j[j.MEDIUM_LEFT_CURLY_BRACKET_ORNAMENT=10100]="MEDIUM_LEFT_CURLY_BRACKET_ORNAMENT",j[j.LEFT_S_SHAPED_BAG_DELIMITER=10181]="LEFT_S_SHAPED_BAG_DELIMITER",j[j.MATHEMATICAL_LEFT_WHITE_SQUARE_BRACKET=10214]="MATHEMATICAL_LEFT_WHITE_SQUARE_BRACKET",j[j.MATHEMATICAL_LEFT_ANGLE_BRACKET=10216]="MATHEMATICAL_LEFT_ANGLE_BRACKET",j[j.MATHEMATICAL_LEFT_DOUBLE_ANGLE_BRACKET=10218]="MATHEMATICAL_LEFT_DOUBLE_ANGLE_BRACKET",j[j.MATHEMATICAL_LEFT_WHITE_TORTOISE_SHELL_BRACKET=10220]="MATHEMATICAL_LEFT_WHITE_TORTOISE_SHELL_BRACKET",j[j.MATHEMATICAL_LEFT_FLATTENED_PARENTHESIS=10222]="MATHEMATICAL_LEFT_FLATTENED_PARENTHESIS",j[j.LEFT_WHITE_CURLY_BRACKET=10627]="LEFT_WHITE_CURLY_BRACKET",j[j.LEFT_WHITE_PARENTHESIS=10629]="LEFT_WHITE_PARENTHESIS",j[j.Z_NOTATION_LEFT_IMAGE_BRACKET=10631]="Z_NOTATION_LEFT_IMAGE_BRACKET",j[j.Z_NOTATION_LEFT_BINDING_BRACKET=10633]="Z_NOTATION_LEFT_BINDING_BRACKET",j[j.LEFT_SQUARE_BRACKET_WITH_UNDERBAR=10635]="LEFT_SQUARE_BRACKET_WITH_UNDERBAR",j[j.LEFT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER=10637]="LEFT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER",j[j.LEFT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER=10639]="LEFT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER",j[j.LEFT_ANGLE_BRACKET_WITH_DOT=10641]="LEFT_ANGLE_BRACKET_WITH_DOT",j[j.LEFT_ARC_LESS_THAN_BRACKET=10643]="LEFT_ARC_LESS_THAN_BRACKET",j[j.DOUBLE_LEFT_ARC_GREATER_THAN_BRACKET=10645]="DOUBLE_LEFT_ARC_GREATER_THAN_BRACKET",j[j.LEFT_BLACK_TORTOISE_SHELL_BRACKET=10647]="LEFT_BLACK_TORTOISE_SHELL_BRACKET",j[j.LEFT_WIGGLY_FENCE=10712]="LEFT_WIGGLY_FENCE",j[j.LEFT_DOUBLE_WIGGLY_FENCE=10714]="LEFT_DOUBLE_WIGGLY_FENCE",j[j.LEFT_POINTING_CURVED_ANGLE_BRACKET=10748]="LEFT_POINTING_CURVED_ANGLE_BRACKET",j[j.TOP_LEFT_HALF_BRACKET=11810]="TOP_LEFT_HALF_BRACKET",j[j.BOTTOM_LEFT_HALF_BRACKET=11812]="BOTTOM_LEFT_HALF_BRACKET",j[j.LEFT_SIDEWAYS_U_BRACKET=11814]="LEFT_SIDEWAYS_U_BRACKET",j[j.LEFT_DOUBLE_PARENTHESIS=11816]="LEFT_DOUBLE_PARENTHESIS",j[j.DOUBLE_LOW_REVERSED_9_QUOTATION_MARK=11842]="DOUBLE_LOW_REVERSED_9_QUOTATION_MARK",j[j.LEFT_ANGLE_BRACKET=12296]="LEFT_ANGLE_BRACKET",j[j.LEFT_DOUBLE_ANGLE_BRACKET=12298]="LEFT_DOUBLE_ANGLE_BRACKET",j[j.LEFT_CORNER_BRACKET=12300]="LEFT_CORNER_BRACKET",j[j.LEFT_WHITE_CORNER_BRACKET=12302]="LEFT_WHITE_CORNER_BRACKET",j[j.LEFT_BLACK_LENTICULAR_BRACKET=12304]="LEFT_BLACK_LENTICULAR_BRACKET",j[j.LEFT_TORTOISE_SHELL_BRACKET=12308]="LEFT_TORTOISE_SHELL_BRACKET",j[j.LEFT_WHITE_LENTICULAR_BRACKET=12310]="LEFT_WHITE_LENTICULAR_BRACKET",j[j.LEFT_WHITE_TORTOISE_SHELL_BRACKET=12312]="LEFT_WHITE_TORTOISE_SHELL_BRACKET",j[j.LEFT_WHITE_SQUARE_BRACKET=12314]="LEFT_WHITE_SQUARE_BRACKET",j[j.REVERSED_DOUBLE_PRIME_QUOTATION_MARK=12317]="REVERSED_DOUBLE_PRIME_QUOTATION_MARK",j[j.ORNATE_RIGHT_PARENTHESIS=64831]="ORNATE_RIGHT_PARENTHESIS",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_LENTICULAR_BRACKET=65047]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_LENTICULAR_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_PARENTHESIS=65077]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_PARENTHESIS",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_CURLY_BRACKET=65079]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_CURLY_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_TORTOISE_SHELL_BRACKET=65081]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_TORTOISE_SHELL_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_BLACK_LENTICULAR_BRACKET=65083]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_BLACK_LENTICULAR_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_DOUBLE_ANGLE_BRACKET=65085]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_DOUBLE_ANGLE_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_ANGLE_BRACKET=65087]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_ANGLE_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_CORNER_BRACKET=65089]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_CORNER_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_CORNER_BRACKET=65091]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_CORNER_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_SQUARE_BRACKET=65095]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_SQUARE_BRACKET",j[j.SMALL_LEFT_PARENTHESIS=65113]="SMALL_LEFT_PARENTHESIS",j[j.SMALL_LEFT_CURLY_BRACKET=65115]="SMALL_LEFT_CURLY_BRACKET",j[j.SMALL_LEFT_TORTOISE_SHELL_BRACKET=65117]="SMALL_LEFT_TORTOISE_SHELL_BRACKET",j[j.FULLWIDTH_LEFT_PARENTHESIS=65288]="FULLWIDTH_LEFT_PARENTHESIS",j[j.FULLWIDTH_LEFT_SQUARE_BRACKET=65339]="FULLWIDTH_LEFT_SQUARE_BRACKET",j[j.FULLWIDTH_LEFT_CURLY_BRACKET=65371]="FULLWIDTH_LEFT_CURLY_BRACKET",j[j.FULLWIDTH_LEFT_WHITE_PARENTHESIS=65375]="FULLWIDTH_LEFT_WHITE_PARENTHESIS",j[j.HALFWIDTH_LEFT_CORNER_BRACKET=65378]="HALFWIDTH_LEFT_CORNER_BRACKET"})(UnicodePsCodePoint||(UnicodePsCodePoint={}));var UnicodeZsCodePoint;(function(j){j[j.SPACE=32]="SPACE",j[j.NO_BREAK_SPACE=160]="NO_BREAK_SPACE",j[j.OGHAM_SPACE_MARK=5760]="OGHAM_SPACE_MARK",j[j.EN_QUAD=8192]="EN_QUAD",j[j.EM_QUAD=8193]="EM_QUAD",j[j.EN_SPACE=8194]="EN_SPACE",j[j.EM_SPACE=8195]="EM_SPACE",j[j.THREE_PER_EM_SPACE=8196]="THREE_PER_EM_SPACE",j[j.FOUR_PER_EM_SPACE=8197]="FOUR_PER_EM_SPACE",j[j.SIX_PER_EM_SPACE=8198]="SIX_PER_EM_SPACE",j[j.FIGURE_SPACE=8199]="FIGURE_SPACE",j[j.PUNCTUATION_SPACE=8200]="PUNCTUATION_SPACE",j[j.THIN_SPACE=8201]="THIN_SPACE",j[j.HAIR_SPACE=8202]="HAIR_SPACE",j[j.NARROW_NO_BREAK_SPACE=8239]="NARROW_NO_BREAK_SPACE",j[j.MEDIUM_MATHEMATICAL_SPACE=8287]="MEDIUM_MATHEMATICAL_SPACE",j[j.IDEOGRAPHIC_SPACE=12288]="IDEOGRAPHIC_SPACE"})(UnicodeZsCodePoint||(UnicodeZsCodePoint={}));var VirtualCodePoint;(function(j){j[j.LINE_END=-1]="LINE_END",j[j.SPACE=-2]="SPACE"})(VirtualCodePoint||(VirtualCodePoint={}));function createCodePointSearcher(j){const _e=[...new Set(j)].sort((rt,nt)=>rt-nt),et=_e.length;if(et<8)return[rt=>{for(let nt=0;nt<_e.length;++nt)if(rt===_e[nt])return!0;return!1},[..._e]];const tt=[];for(let rt=0,nt;rtot+nt);++nt);tt.push(ot,ot+nt)}if(tt.length*1.5{for(let ot=0;ot{let ot=0,it=rt;for(;ot>>1;nt{let nt=0,ot=et;for(;nt>>1;rt<_e[it]?ot=it:nt=it+1}return ot<=0?!1:_e[ot-1]===rt},[..._e]]}function collectCodePointsFromEnum(j){return Object.values(j).filter(_e=>typeof _e=="number")}createCodePointSearcher([AsciiCodePoint.HT,AsciiCodePoint.LF,AsciiCodePoint.VT,AsciiCodePoint.FF,AsciiCodePoint.CR,AsciiCodePoint.SPACE]);const[isAsciiPunctuationCharacter,asciiPunctuationCharacters]=createCodePointSearcher([AsciiCodePoint.EXCLAMATION_MARK,AsciiCodePoint.DOUBLE_QUOTE,AsciiCodePoint.NUMBER_SIGN,AsciiCodePoint.DOLLAR_SIGN,AsciiCodePoint.PERCENT_SIGN,AsciiCodePoint.AMPERSAND,AsciiCodePoint.SINGLE_QUOTE,AsciiCodePoint.OPEN_PARENTHESIS,AsciiCodePoint.CLOSE_PARENTHESIS,AsciiCodePoint.ASTERISK,AsciiCodePoint.PLUS_SIGN,AsciiCodePoint.COMMA,AsciiCodePoint.MINUS_SIGN,AsciiCodePoint.DOT,AsciiCodePoint.SLASH,AsciiCodePoint.COLON,AsciiCodePoint.SEMICOLON,AsciiCodePoint.OPEN_ANGLE,AsciiCodePoint.EQUALS_SIGN,AsciiCodePoint.CLOSE_ANGLE,AsciiCodePoint.QUESTION_MARK,AsciiCodePoint.AT_SIGN,AsciiCodePoint.OPEN_BRACKET,AsciiCodePoint.BACKSLASH,AsciiCodePoint.CLOSE_BRACKET,AsciiCodePoint.CARET,AsciiCodePoint.UNDERSCORE,AsciiCodePoint.BACKTICK,AsciiCodePoint.OPEN_BRACE,AsciiCodePoint.VERTICAL_SLASH,AsciiCodePoint.CLOSE_BRACE,AsciiCodePoint.TILDE]),isAsciiDigitCharacter=j=>j>=AsciiCodePoint.DIGIT0&&j<=AsciiCodePoint.DIGIT9,isAsciiLowerLetter=j=>j>=AsciiCodePoint.LOWERCASE_A&&j<=AsciiCodePoint.LOWERCASE_Z,isAsciiUpperLetter=j=>j>=AsciiCodePoint.UPPERCASE_A&&j<=AsciiCodePoint.UPPERCASE_Z,isAsciiLetter=j=>isAsciiLowerLetter(j)||isAsciiUpperLetter(j),isAlphanumeric=j=>isAsciiLowerLetter(j)||isAsciiUpperLetter(j)||isAsciiDigitCharacter(j),isAsciiCharacter=j=>j>=AsciiCodePoint.NUL&&j<=AsciiCodePoint.DELETE,[isAsciiControlCharacter,asciiControlCharacters]=createCodePointSearcher([AsciiCodePoint.NUL,AsciiCodePoint.SOH,AsciiCodePoint.STX,AsciiCodePoint.ETX,AsciiCodePoint.EOT,AsciiCodePoint.ENQ,AsciiCodePoint.ACK,AsciiCodePoint.BEL,AsciiCodePoint.BS,AsciiCodePoint.HT,AsciiCodePoint.LF,AsciiCodePoint.VT,AsciiCodePoint.FF,AsciiCodePoint.CR,AsciiCodePoint.SO,AsciiCodePoint.SI,AsciiCodePoint.DLE,AsciiCodePoint.DC1,AsciiCodePoint.DC2,AsciiCodePoint.DC3,AsciiCodePoint.DC4,AsciiCodePoint.NAK,AsciiCodePoint.SYN,AsciiCodePoint.ETB,AsciiCodePoint.CAN,AsciiCodePoint.EM,AsciiCodePoint.SUB,AsciiCodePoint.ESC,AsciiCodePoint.FS,AsciiCodePoint.GS,AsciiCodePoint.RS,AsciiCodePoint.US,AsciiCodePoint.DELETE]),[isWhitespaceCharacter,whitespaceCharacters]=createCodePointSearcher([AsciiCodePoint.VT,AsciiCodePoint.FF,AsciiCodePoint.SPACE,VirtualCodePoint.SPACE,VirtualCodePoint.LINE_END]);AsciiCodePoint.SPACE,VirtualCodePoint.SPACE;const isSpaceCharacter=j=>j===AsciiCodePoint.SPACE||j===VirtualCodePoint.SPACE,isLineEnding=j=>j===VirtualCodePoint.LINE_END,[isPunctuationCharacter,punctuationCharacters]=createCodePointSearcher([...asciiPunctuationCharacters,...collectCodePointsFromEnum(UnicodePcCodePoint),...collectCodePointsFromEnum(UnicodePdCodePoint),...collectCodePointsFromEnum(UnicodePeCodePoint),...collectCodePointsFromEnum(UnicodePfCodePoint),...collectCodePointsFromEnum(UnicodePiCodePoint),...collectCodePointsFromEnum(UnicodePoCodePoint),...collectCodePointsFromEnum(UnicodePsCodePoint)]),isSpaceLike=j=>isSpaceCharacter(j)||isLineEnding(j),[isUnicodeWhitespaceCharacter,unicodeWhitespaceCharacters]=createCodePointSearcher([AsciiCodePoint.HT,AsciiCodePoint.LF,AsciiCodePoint.FF,AsciiCodePoint.CR,VirtualCodePoint.SPACE,VirtualCodePoint.LINE_END,...collectCodePointsFromEnum(UnicodeZsCodePoint)]);var UnicodeCodePoint;(function(j){j[j.REPLACEMENT_CHARACTER=65533]="REPLACEMENT_CHARACTER"})(UnicodeCodePoint||(UnicodeCodePoint={}));function createEntityReferenceTrie(){const j=(rt,nt)=>{if(rt.length<=4){for(let st=0;st=nt)return st;return rt.length}let ot=0,it=rt.length;for(;ot>>1;rt[st].key{let ot=_e;for(const it of rt){const st=j(ot.children,it);if(st>=ot.children.length){const ut={key:it,children:[]};ot.children.push(ut),ot=ut;continue}let lt=ot.children[st];if(lt.key===it){ot=lt;continue}lt={key:it,children:[]},ot.children.splice(st,0,lt),ot=lt}ot.value=nt},search:(rt,nt,ot)=>{let it=_e;for(let st=nt;st=it.children.length)return null;const ct=it.children[ut];if(ct.key!==lt)return null;if(ct.value!=null)return{nextIndex:st+1,value:ct.value};it=ct}return null}}}const entityReferenceTrie=createEntityReferenceTrie();entityReferences.forEach(j=>entityReferenceTrie.insert(j.key,j.value));function eatEntityReference(j,_e,et){if(_e+1>=et)return null;const tt=entityReferenceTrie.search(j,_e,et);if(tt!=null)return tt;if(j[_e].codePoint!==AsciiCodePoint.NUMBER_SIGN)return null;let rt=0,nt=_e+1;if(j[nt].codePoint===AsciiCodePoint.LOWERCASE_X||j[nt].codePoint===AsciiCodePoint.UPPERCASE_X){nt+=1;for(let it=1;it<=6&&nt=AsciiCodePoint.UPPERCASE_A&&st<=AsciiCodePoint.UPPERCASE_F){rt=(rt<<4)+(st-AsciiCodePoint.UPPERCASE_A+10);continue}if(st>=AsciiCodePoint.LOWERCASE_A&&st<=AsciiCodePoint.LOWERCASE_F){rt=(rt<<4)+(st-AsciiCodePoint.LOWERCASE_A+10);continue}break}}else for(let it=1;it<=7&&nt=et||j[nt].codePoint!==AsciiCodePoint.SEMICOLON)return null;let ot;try{rt===0&&(rt=UnicodeCodePoint.REPLACEMENT_CHARACTER),ot=String.fromCodePoint(rt)}catch{ot=String.fromCodePoint(UnicodeCodePoint.REPLACEMENT_CHARACTER)}return{nextIndex:nt+1,value:ot}}function foldCase(j){return Array.from(j).map(_e=>foldingCaseCodeMap[_e]??_e).join("")}(()=>{try{const j=new RegExp("\\p{Script=Han}|[\\u{3002}\\u{ff1f}\\u{ff01}\\u{ff0c}\\u{3001}\\u{ff1b}\\u{ff1a}\\u{201c}\\u{201d}\\u{2018}\\u{2019}\\u{ff08}\\u{ff09}\\u{300a}\\u{300b}\\u{3008}\\u{3009}\\u{3010}\\u{3011}\\u{300e}\\u{300f}\\u{300c}\\u{300d}\\u{fe43}\\u{fe44}\\u{3014}\\u{3015}\\u{2026}\\u{2014}\\u{ff5e}\\u{fe4f}\\u{ffe5}]","u").source,_e=new RegExp(`(${j})\\n+(${j})`,"gu");return et=>et.replace(_e,"$1$2")}catch{const j=/[\u{4E00}-\u{9FCC}\u{3400}-\u{4DB5}\u{FA0E}\u{FA0F}\u{FA11}\u{FA13}\u{FA14}\u{FA1F}\u{FA21}\u{FA23}\u{FA24}\u{FA27}-\u{FA29}]|[\u{d840}-\u{d868}][\u{dc00}-\u{dfff}]|\u{d869}[\u{dc00}-\u{ded6}\u{df00}-\u{dfff}]|[\u{d86a}-\u{d86c}][\u{dc00}-\u{dfff}]|\u{d86d}[\u{dc00}-\u{df34}\u{df40}-\u{dfff}]|\u{d86e}[\u{dc00}-\u{dc1d}]/u.source,_e=new RegExp(`(${j})\\n+(${j})`,"gu");return et=>et.replace(_e,"$1$2")}})();(()=>{try{const j=new RegExp("\\p{Script=Han}|[\\u{3002}\\u{ff1f}\\u{ff01}\\u{ff0c}\\u{3001}\\u{ff1b}\\u{ff1a}\\u{201c}\\u{201d}\\u{2018}\\u{2019}\\u{ff08}\\u{ff09}\\u{300a}\\u{300b}\\u{3008}\\u{3009}\\u{3010}\\u{3011}\\u{300e}\\u{300f}\\u{300c}\\u{300d}\\u{fe43}\\u{fe44}\\u{3014}\\u{3015}\\u{2026}\\u{2014}\\u{ff5e}\\u{fe4f}\\u{ffe5}]","u").source,_e=new RegExp(`(${j})[\\s\\n]+(${j})`,"gu");return et=>et.replace(_e,"$1$2")}catch{const j=/[\u{4E00}-\u{9FCC}\u{3400}-\u{4DB5}\u{FA0E}\u{FA0F}\u{FA11}\u{FA13}\u{FA14}\u{FA1F}\u{FA21}\u{FA23}\u{FA24}\u{FA27}-\u{FA29}]|[\u{d840}-\u{d868}][\u{dc00}-\u{dfff}]|\u{d869}[\u{dc00}-\u{ded6}\u{df00}-\u{dfff}]|[\u{d86a}-\u{d86c}][\u{dc00}-\u{dfff}]|\u{d86d}[\u{dc00}-\u{df34}\u{df40}-\u{dfff}]|\u{d86e}[\u{dc00}-\u{dc1d}]/u.source,_e=new RegExp(`(${j})[\\s\\n]+(${j})`,"gu");return et=>et.replace(_e,"$1$2")}})();function*createNodePointGenerator(j){let _e=0,et=1,tt=1;const rt=typeof j=="string"?[j]:j;for(const nt of rt){const ot=[];for(const lt of nt){const ut=lt.codePointAt(0);ot.push(ut)}const it=[],st=ot.length;for(let lt=0;lt>2,lt=ot-nt&3;for(let ut=0;ut>2,lt=ot-nt&3;for(let ut=0;ut!0;if(j instanceof Function)return j;if(j.length===0)return()=>!1;if(j.length===1){const _e=j[0];return et=>et.type===_e}if(j.length===2){const[_e,et]=j;return tt=>tt.type===_e||tt.type===et}return _e=>{for(const et of j)if(_e.type===et)return!0;return!1}}function traverseAst(j,_e,et){const tt=createNodeMatcher(_e),rt=nt=>{const{children:ot}=nt;for(let it=0;it{const tt={};traverseAst(j,_e,ot=>{const it=ot;tt[it.identifier]===void 0&&(tt[it.identifier]=it)});const rt=[];for(const ot of et)tt[ot.identifier]===void 0&&(tt[ot.identifier]=ot,rt.push(ot));return{root:rt.length>0?{...j,children:j.children.concat(rt)}:j,definitionMap:tt}},astClasses=mergeStyleSets({root:{"--colorBgBlockquote":"none","--colorBgTableHead":"hsl(0deg, 0%, 94%)","--colorBgTableEvenRow":"hsl(0deg, 0%, 96%)","--colorBgTableOddRow":"hsl(0deg, 0%, 100%)","--colorBorderBlockquote":"hsl(210deg, 13%, 85%)","--colorBorderHeading":"hsl(0deg, 0%, 80%)","--colorBorderImage":"hsl(277deg, 19%, 47%)","--colorBorderTable":"hsl(220deg, 7%, 90%)","--colorBgCode":"#f5f7f9","--colorDelete":"hsl(210deg, 8%, 65%)","--colorHeading":"hsl(0deg, 0%, 25%)","--colorImageTitle":"hsl(0deg, 0%, 50%)","--colorInlineCode":"hsl(348deg, 60%, 47%)","--colorLink":"hsl(206deg, 53%, 47%)","--colorLinkActive":"hsl(206deg, 53%, 52%)","--colorLinkHover":"hsl(206deg, 53%, 52%)","--colorLinkVisited":"hsl(206deg, 53%, 47%)","--fontFamilyCode":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif","--fontFamilyHeading":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif"},rootDarken:{"&&":{"--colorBgBlockquote":"none","--colorBgTableHead":"hsl(200deg, 10%, 16%)","--colorBgTableEvenRow":"hsl(200deg, 10%, 16%)","--colorBgTableOddRow":"hsl(0deg, 0%, 9%)","--colorBorderBlockquote":"hsl(207deg, 7%, 45%)","--colorBorderHeading":"hsla(0deg, 0%, 30%, 0.8)","--colorBorderImage":"hsl(290deg, 15%, 49%)","--colorBorderTable":"hsl(0deg, 0%, 50%)","--colorBgCode":"hsl(0deg, 0%, 12%)","--colorDelete":"hsl(220deg, 5%, 68%)","--colorHeading":"hsl(0deg, 0%, 65%)","--colorImageTitle":"hsl(0deg, 0%, 50%)","--colorInlineCode":"hsl(348deg, 70%, 52%)","--colorLink":"hsl(207deg, 53%, 50%)","--colorLinkActive":"hsl(207deg, 53%, 50%)","--colorLinkHover":"hsl(207deg, 53%, 50%)","--colorLinkVisited":"hsl(207deg, 53%, 50%)","--fontFamilyCode":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif","--fontFamilyHeading":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif"}},blockquote:{},break:{},code:{},delete:{},emphasis:{},heading:{},image:{},imageReference:{},inlineCode:{},link:{},linkReference:{},list:{},listItem:{},paragraph:{},strong:{},table:{},text:{},thematicBreak:{}}),NodeRendererContextType=React.createContext(null);NodeRendererContextType.displayName="NodeRendererContextType";const useNodeRendererContext=()=>React.useContext(NodeRendererContextType);function disposeAll(j){const _e=[];for(const et of j)try{et.dispose()}catch(tt){_e.push(tt)}if(_e.length===1)throw _e[0];if(_e.length>1)throw new AggregateError(_e,"Encountered errors while disposing")}class BatchDisposable{constructor(){zr(this,"_disposed");zr(this,"_disposables");this._disposed=!1,this._disposables=[]}get disposed(){return this._disposed}dispose(){if(!this._disposed){this._disposed=!0;try{disposeAll(this._disposables)}finally{this._disposables.length=0}}}registerDisposable(_e){_e.disposed||(this._disposed?_e.dispose():this._disposables.push(_e))}}class Disposable{constructor(_e){zr(this,"_onDispose");zr(this,"_disposed");this._onDispose=_e,this._disposed=!1}static fromCallback(_e){return new Disposable(_e)}static fromUnsubscribable(_e){return new Disposable(()=>_e.unsubscribe())}get disposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._onDispose())}}function isDisposable(j){return j===null||typeof j!="object"?!1:typeof Reflect.get(j,"dispose")=="function"&&typeof Reflect.get(j,"disposed")=="boolean"}var ScheduleTransactionStatus;(function(j){j[j.NOT_STARTED=0]="NOT_STARTED",j[j.STARTED=1]="STARTED",j[j.COMPLETED=2]="COMPLETED"})(ScheduleTransactionStatus||(ScheduleTransactionStatus={}));function noop$2(...j){}const noopUnsubscribable={unsubscribe:noop$2};class Schedulable{constructor(_e){zr(this,"_scheduled");zr(this,"_run");this._scheduled=!1,this._run=_e}get scheduled(){return this._scheduled}schedule(){this._scheduled||(this._scheduled=!0,this._run())}}class Observable extends BatchDisposable{constructor(et,tt={}){super();zr(this,"equals");zr(this,"_value");zr(this,"_subscribers");this._value=et,this._subscribers=[],this.equals=tt.equals??((rt,nt)=>Object.is(rt,nt))}dispose(){if(!this.disposed){super.dispose();const et=this._subscribers;this._subscribers=[];for(const tt of et)tt.complete()}}getSnapshot(){return this._value}subscribe(et){return this.disposed?(et.complete(),noopUnsubscribable):(this._subscribers.includes(et)||(this._subscribers=[...this._subscribers,et]),{unsubscribe:()=>{this._subscribers.includes(et)&&(this._subscribers=this._subscribers.filter(tt=>tt!==et))}})}next(et,tt){if(this.disposed){console.warn("[Observable] Don't update a disposed observable. value:",et);return}const rt=this._value;this.equals(et,rt)||(this._value=et,this.notify(et,rt,tt))}notify(et,tt,rt){if(rt){rt.step(new Schedulable(()=>this.notifyImmediate(et,tt)));return}this.notifyImmediate(et,tt)}notifyImmediate(et,tt){const rt=this._subscribers;for(const nt of rt)nt.next(et,tt)}}class Ticker extends Observable{constructor(et,tt={}){const rt=new Set,nt=Number(tt.delay||0)||0,ot=Math.max(0,Number(tt.threshold||0)||0);super(et??0,{equals:(it,st)=>it===st});zr(this,"_observes");zr(this,"_delay");zr(this,"_threshold");zr(this,"_caller");this._observes=rt,this._delay=nt>=0?nt:-1,this._threshold=ot,this._caller=void 0}dispose(){this.disposed||(super.dispose(),this.flush(),this._observes.clear())}tick(et){this.next(this._value+1,et)}observe(et){if(this.disposed){console.warn("[Ticker.observe] the ticker has been disposed.");return}if(!this._observes.has(et)){const tt=et.subscribe({next:()=>{rt.disposed||this.tick()},complete:()=>rt.dispose()}),rt=Disposable.fromUnsubscribable(tt);this._observes.add(et),this.registerDisposable(rt)}}notify(et,tt,rt){if(rt){this.flush(),rt.step(new Schedulable(()=>this.notifyImmediate(et,tt)));return}if(this._delay<0){this.notifyImmediate(et,tt);return}const{_delay:nt,_threshold:ot,_caller:it}=this;let st=Date.now();const lt=()=>this.notifyImmediate(et,tt),ut=setTimeout(()=>{this._caller=void 0,lt()},nt);it!==void 0&&(this._caller=void 0,clearTimeout(it.timer),it.createdAt+ot<=st?it.call():st=it.createdAt),this._caller={timer:ut,createdAt:st,call:lt}}flush(){const et=this._caller;et!==void 0&&(this._caller=void 0,clearTimeout(et.timer),et.call())}}class Computed{constructor(_e){zr(this,"_observable");zr(this,"getSnapshot",()=>this._observable.getSnapshot());zr(this,"getServerSnapshot",()=>this._observable.getSnapshot());zr(this,"subscribeStateChange",_e=>{const et={next:()=>_e(),complete:()=>{}},tt=this._observable.subscribe(et),rt=Disposable.fromUnsubscribable(tt);return this._observable.registerDisposable(rt),()=>rt.dispose()});this._observable=_e}static fromObservables(_e,et,tt){const rt=new Ticker;for(const it of _e)rt.observe(it);const nt=()=>{const it=_e.map(st=>st.getSnapshot());return et(it)},ot=new Observable(nt(),tt);return ot.registerDisposable(rt),rt.subscribe({next:()=>{ot.disposed||ot.next(nt())},complete:()=>ot.dispose()}),new Computed(ot)}get disposed(){return this._observable.disposed}dispose(){this._observable.disposed||this._observable.dispose()}registerDisposable(_e){this._observable.registerDisposable(_e)}subscribe(_e){return this._observable.subscribe(_e)}}class State extends Observable{constructor(){super(...arguments);zr(this,"getSnapshot",()=>super.getSnapshot());zr(this,"getServerSnapshot",()=>super.getSnapshot());zr(this,"setState",et=>{const tt=typeof et=="function"?et(this.getSnapshot()):et;super.next(tt)});zr(this,"subscribeStateChange",et=>{const tt={next:()=>et(),complete:()=>{}},rt=super.subscribe(tt),nt=Disposable.fromUnsubscribable(rt);return this.registerDisposable(nt),()=>nt.dispose()})}}function isObservable(j){return j===null||typeof j!="object"?!1:typeof Reflect.get(j,"dispose")=="function"&&typeof Reflect.get(j,"disposed")=="boolean"&&typeof Reflect.get(j,"subscribe")=="function"&&typeof Reflect.get(j,"equals")=="function"&&typeof Reflect.get(j,"getSnapshot")=="function"&&typeof Reflect.get(j,"next")=="function"}class ViewModel extends BatchDisposable{constructor(){super();zr(this,"_tickerMap");this._tickerMap=new Map}dispose(){this.disposed||(super.dispose(),Reflect.ownKeys(this).forEach(et=>{if(typeof et=="string"&&et.endsWith("$")){const tt=this[et];isDisposable(tt)&&tt.dispose()}}))}ticker(et){const tt=Array.from(new Set(et)).sort(),rt=tt.join("|");let nt=this._tickerMap.get(rt);if(nt===void 0){const ot=new Ticker;nt={keys:tt,ticker:ot},this.registerDisposable(ot),this._tickerMap.set(rt,nt);for(const it of tt){const st=this[it];if(!isObservable(st)){console.warn("[ViewModel.ticker] not an observable, key:",it,"val:",st);continue}ot.observe(st)}}return nt}}class ReactMarkdownViewModel extends ViewModel{constructor(_e){super(),this.preferCodeWrap$=new State(!1);const{definitionMap:et,rendererMap:tt,showCodeLineno:rt,themeScheme:nt}=_e;this.definitionMap$=new State(et),this.rendererMap$=new State(tt),this.showCodeLineno$=new State(rt),this.themeScheme$=new State(nt)}}function isEqual$2(j,_e){if(j===null||_e===null||j===void 0||_e===void 0)return j===_e;if(typeof j!=typeof _e)return!1;if(Object.is(j,_e))return!0;if(typeof j=="object"){if(j.constructor!==_e.constructor)return!1;if(Array.isArray(j)){if(j.length!==_e.length)return!1;for(let tt=0;tt{rt.value=tt,rt.getSnapshot=_e,checkIfSnapshotChanged(rt)&&nt({inst:rt})},[j,tt,_e]),reactExports.useEffect(()=>(checkIfSnapshotChanged(rt)&&nt({inst:rt}),j(()=>{checkIfSnapshotChanged(rt)&&nt({inst:rt})})),[j]),reactExports.useDebugValue(tt),tt}function checkIfSnapshotChanged(j){const _e=j.getSnapshot,et=j.value;try{const tt=_e();return!Object.is(et,tt)}catch{return!0}}function useSyncExternalStore$1(j,_e,et){return _e()}const canUseDOM=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",shim=canUseDOM?useSyncExternalStore$2:useSyncExternalStore$1,builtin=reactExports.useSyncExternalStore,useSyncExternalStore=builtin||shim;function useStateValue(j){const{getSnapshot:_e,getServerSnapshot:et,subscribeStateChange:tt}=j;return useSyncExternalStore(tt,_e,et)}const NodesRenderer=j=>{const{nodes:_e}=j,{viewmodel:et}=useNodeRendererContext(),tt=useStateValue(et.rendererMap$);return!Array.isArray(_e)||_e.length<=0?jsxRuntimeExports.jsx(React.Fragment,{}):jsxRuntimeExports.jsx(NodesRendererInner,{nodes:_e,rendererMap:tt})};class NodesRendererInner extends React.Component{shouldComponentUpdate(_e){const et=this.props;return!lodashExports.isEqual(et.nodes,_e.nodes)||et.rendererMap!==_e.rendererMap}render(){const{nodes:_e,rendererMap:et}=this.props;return jsxRuntimeExports.jsx(React.Fragment,{children:_e.map((tt,rt)=>{const nt=`${tt.type}-${rt}`,ot=et[tt.type]??et._fallback;return jsxRuntimeExports.jsx(ot,{...tt},nt)})})}}var TokenizerType;(function(j){j.BLOCK="block",j.INLINE="inline"})(TokenizerType||(TokenizerType={}));var TokenizerPriority;(function(j){j[j.ATOMIC=10]="ATOMIC",j[j.FENCED_BLOCK=10]="FENCED_BLOCK",j[j.CONTAINING_BLOCK=10]="CONTAINING_BLOCK",j[j.INTERRUPTABLE_BLOCK=2]="INTERRUPTABLE_BLOCK",j[j.IMAGES=4]="IMAGES",j[j.LINKS=3]="LINKS",j[j.CONTAINING_INLINE=2]="CONTAINING_INLINE",j[j.SOFT_INLINE=1]="SOFT_INLINE",j[j.FALLBACK=-1]="FALLBACK"})(TokenizerPriority||(TokenizerPriority={}));class BaseInlineTokenizer{constructor(_e){zr(this,"type",TokenizerType.INLINE);zr(this,"name");zr(this,"priority");this.name=_e.name,this.priority=_e.priority}toString(){return this.name}}function*genFindDelimiter(j){let _e=-1,et=null;for(;;){const[tt,rt]=yield et;_e===rt&&(et==null||et.startIndex>=tt)||(_e=rt,et=j(tt,rt))}}class BaseBlockTokenizer{constructor(_e){zr(this,"type",TokenizerType.BLOCK);zr(this,"name");zr(this,"priority");this.name=_e.name,this.priority=_e.priority}extractPhrasingContentLines(_e){return null}buildBlockToken(_e,et){return null}toString(){return this.name}}function calcStartPoint(j,_e){const{line:et,column:tt,offset:rt}=j[_e];return{line:et,column:tt,offset:rt}}function calcEndPoint(j,_e){const{line:et,column:tt,offset:rt}=j[_e];return{line:et,column:tt+1,offset:rt+1}}function calcPositionFromPhrasingContentLines(j){const _e=j[0],et=j[j.length-1];return{start:calcStartPoint(_e.nodePoints,_e.startIndex),end:calcEndPoint(et.nodePoints,et.endIndex-1)}}function mergeContentLinesFaithfully(j,_e=0,et=j.length){if(_e>=et||_e<0||et>j.length)return[];const tt=[];for(let rt=_e;rt=et||_e<0||et>j.length)return[];for(let st=_e;st+1=0;--it){const st=rt[it];if(!isWhitespaceCharacter(st.codePoint))break}for(let st=ot;st<=it;++st)tt.push(rt[st]);return tt}function encodeLinkDestination(j){let _e=j;for(;;)try{const et=decodeURIComponent(_e);if(et===_e)break;_e=et}catch{break}return encodeURI(_e)}function resolveLabelToIdentifier(j){const _e=j.trim().replace(/\s+/gu," ").toLowerCase();return foldCase(_e)}function resolveLinkLabelAndIdentifier(j,_e,et){const tt=calcStringFromNodePoints(j,_e,et,!0);if(tt.length<=0)return null;const rt=resolveLabelToIdentifier(tt);return{label:tt,identifier:rt}}function eatLinkLabel(j,_e,et){let tt=_e+1;const rt=Math.min(tt+1e3,et);for(;tt_e;--et){const tt=j[et];if(tt.firstNonWhitespaceIndexet?[]:j.slice(_e,et+1)}const prefix$2="Invariant failed";function invariant$1(j,_e){if(!j)throw new Error(prefix$2)}const createBlockContentProcessor=(j,_e)=>{const et={_tokenizer:"root",nodeType:"root",position:{start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}},children:[]},tt=[];tt.push({hook:{isContainingBlock:!0},token:et});let rt=0;const nt=ft=>{for(let pt=rt;pt>=0;--pt){const gt=tt[pt];gt.token.position.end={...ft}}},ot=(ft,pt)=>{if(pt.length<=0)return null;const gt=j.filter(bt=>bt!==ft),vt=createBlockContentProcessor(gt,_e);for(const bt of pt)vt.consume(bt);return vt},it=()=>{const ft=tt.pop();if(ft!=null){if(tt.length>0){const pt=tt[tt.length-1];if(ft.hook.onClose!=null){const gt=ft.hook.onClose(ft.token);if(gt!=null)switch(gt.status){case"closingAndRollback":{const vt=ot(ft.hook,gt.lines);if(vt==null)break;const bt=vt.done();pt.token.children.push(...bt.children);break}case"failedAndRollback":{pt.token.children.pop();const vt=ot(ft.hook,gt.lines);if(vt==null)break;const bt=vt.done();pt.token.children.push(...bt.children);break}}}}return rt>=tt.length&&(rt=tt.length-1),ft}},st=ft=>{for(;tt.length>ft;)it()},lt=(ft,pt,gt)=>{st(rt+1),tt[rt].token.children.push(pt),nt(pt.position.end),rt+=1,tt.push({hook:ft,token:pt}),gt&&it()},ut=(ft,pt,gt)=>{const vt=ot(ft,pt);if(vt==null)return!1;const bt=vt.shallowSnapshot(),_t=bt[0];_t.token.children!=null&>.token.children.push(..._t.token.children),nt(_t.token.position.end);for(let xt=1;xt{const{nodePoints:pt,startIndex:gt,endIndex:vt}=ft;let{firstNonWhitespaceIndex:bt,countOfPrecedeSpaces:_t,startIndex:xt}=ft;const yt=()=>({nodePoints:pt,startIndex:xt,endIndex:vt,firstNonWhitespaceIndex:bt,countOfPrecedeSpaces:_t}),Et=(It,Ot)=>{if(invariant$1(xt<=It),Ot){const Nt=calcEndPoint(pt,It-1);nt(Nt)}if(xt!==It)for(xt=It,_t=0,bt=It;bt{const{token:Nt}=tt[rt],Pt=It.eatOpener(Ot,Nt);if(Pt==null)return!1;invariant$1(Pt.nextIndex>xt,`[consumeNewOpener] The marker of the new data node cannot be empty. + tokenizer(${Pt.token._tokenizer})`),Et(Pt.nextIndex,!1);const Mt=Pt.token;return Mt._tokenizer=It.name,lt(It,Mt,!!Pt.saturated),!0},$t=(It,Ot)=>{if(It.eatAndInterruptPreviousSibling==null)return!1;const{hook:Nt,token:Pt}=tt[rt],{token:Mt}=tt[rt-1];if(It.priority<=Nt.priority)return!1;const Rt=It.eatAndInterruptPreviousSibling(Ot,Pt,Mt);if(Rt==null)return!1;st(rt),Mt.children.pop(),Rt.remainingSibling!=null&&(Array.isArray(Rt.remainingSibling)?Mt.children.push(...Rt.remainingSibling):Mt.children.push(Rt.remainingSibling)),Et(Rt.nextIndex,!1);const Lt=Rt.token;return Lt._tokenizer=It.name,lt(It,Lt,!!Rt.saturated),!0},At=()=>{if(rt=1,tt.length<2)return;let{token:It}=tt[rt-1];for(;xtjt!==Nt&&$t(jt,Pt)))break;const Mt=Nt.eatContinuationText==null?{status:"notMatched"}:Nt.eatContinuationText(Pt,Ot.token,It);let Rt=!1,Lt=!1;switch(Mt.status){case"failedAndRollback":{if(It.children.pop(),tt.length=rt,rt-=1,Mt.lines.length>0){const jt=tt[rt];if(ut(Nt,Mt.lines,jt)){Lt=!0;break}}Rt=!0;break}case"closingAndRollback":{if(st(rt),Mt.lines.length>0){const jt=tt[rt];if(ut(Nt,Mt.lines,jt)){Lt=!0;break}}Rt=!0;break}case"notMatched":{rt-=1,Rt=!0;break}case"closing":{Et(Mt.nextIndex,!0),rt-=1,Rt=!0;break}case"opening":{Et(Mt.nextIndex,!0);break}default:throw new TypeError(`[eatContinuationText] unexpected status (${Mt.status}).`)}if(Rt)break;Lt||(rt+=1,It=Ot.token)}},wt=()=>{if(!(xt>=vt)){if(rt=4)return}else rt=tt.length-1;for(;xt{if(xt>=vt||rt+1>=tt.length)return!1;const{hook:It,token:Ot}=tt[tt.length-1];if(It.eatLazyContinuationText==null)return!1;const{token:Nt}=tt[tt.length-2],Pt=yt(),Mt=It.eatLazyContinuationText(Pt,Ot,Nt);switch(Mt.status){case"notMatched":return!1;case"opening":return rt=tt.length-1,Et(Mt.nextIndex,!0),rt=tt.length-1,!0;default:throw new TypeError(`[eatLazyContinuationText] unexpected status (${Mt.status}).`)}};if(At(),wt(),Ct()||st(rt+1),_e!=null&&xt=vt)},done:()=>{for(;tt.length>1;)it();return et},shallowSnapshot:()=>[...tt]}},createSinglePriorityDelimiterProcessor=()=>{let j=0;const _e=[],et=[],tt=[],rt=ct=>{let dt=ct-1;for(;dt>=0&&et[dt].inactive;)dt-=1;et.length=dt+1},nt=(ct,dt)=>{et.push({hook:ct,delimiter:dt,inactive:!1,tokenStackIndex:tt.length})},ot=(ct,dt)=>{if(et.length<=0)return null;let ft=null;for(let pt=et.length-1;pt>=0;--pt){if(ft=et[pt],ft.inactive||ft.hook!==ct)continue;const gt=ft.delimiter,vt=ct.isDelimiterPair(gt,dt,_e);if(vt.paired)return gt;if(!vt.closer)return null}return null},it=(ct,dt)=>{if(et.length<=0)return dt;let ft,pt=dt,gt=[];for(let vt=et.length-1;vt>=0;--vt){const bt=et[vt];if(bt.hook!==ct||bt.inactive)continue;const _t=bt.tokenStackIndex;for(_t0){for(const St of Et)St._tokenizer=ct.name;gt.unshift(...Et)}ft=void 0,bt.inactive=!0}if(!xt.closer){const Et=ct.processSingleDelimiter(pt);if(Et.length>0){for(const St of Et)St._tokenizer=ct.name;gt.push(...Et)}pt=void 0}break}const yt=ct.processDelimiterPair(ft,pt,gt);{for(const Et of yt.tokens)Et._tokenizer==null&&(Et._tokenizer=ct.name);gt=yt.tokens}ft=yt.remainOpenerDelimiter,pt=yt.remainCloserDelimiter,rt(vt),vt=Math.min(vt,et.length),ft!=null&&nt(ct,ft)}if(pt==null||pt.type==="full")break}if(tt.push(...gt),pt==null)return null;if(pt.type==="full"||pt.type==="closer"){const vt=ct.processSingleDelimiter(pt);for(const bt of vt)bt._tokenizer=ct.name,tt.push(bt);return null}return pt};return{process:(ct,dt)=>{for(;j<_e.length;++j){const ft=_e[j];if(ft.startIndex>=dt.endIndex)break;ft.startIndex>=dt.startIndex||tt.push(ft)}switch(dt.type){case"opener":{nt(ct,dt);break}case"both":{const ft=it(ct,dt);ft!=null&&nt(ct,ft);break}case"closer":{it(ct,dt);break}case"full":{const ft=ct.processSingleDelimiter(dt);for(const pt of ft)pt._tokenizer=ct.name,tt.push(pt);break}default:throw new TypeError(`Unexpected delimiter type(${dt.type}) from ${ct.name}.`)}},done:()=>{const ct=[];for(const{delimiter:ft,hook:pt}of et){const gt=pt.processSingleDelimiter(ft);for(const vt of gt)vt._tokenizer=pt.name,ct.push(vt)}if(et.length=0,ct.length>0){const ft=mergeSortedTokenStack(tt,ct);tt.length=0,tt.push(...ft)}return tt.concat(_e.slice(j))},reset:ct=>{_e.length=ct.length;for(let dt=0;dt{if(j.length<=0)return _e;if(_e.length<=0)return j;const et=[];let tt=0,rt=0;for(;tt{const et=(nt,ot,it)=>{let st=[],lt=null;const ut=[nt,ot];for(const dt of it){const ft=dt.findDelimiter(ut);if(ft!=null){if(lt!=null){if(ft.startIndex>lt)continue;ft.startIndex1){let dt=0;for(const ft of st){const pt=ft.delimiter.type;if(pt==="full")return{items:[ft],nextIndex:ft.delimiter.endIndex};(pt==="both"||pt==="closer")&&(dt+=1)}if(dt>1){let ft=-1,pt=-1;for(let vt=0;vt-1?[st[ft]]:st.filter(vt=>vt.delimiter.type!=="closer"),nextIndex:ct}}}return{items:st,nextIndex:ct}},tt=createSinglePriorityDelimiterProcessor();return{process:(nt,ot,it)=>{let st=nt;for(let lt=_e;lt{const tt=[];for(let rt=0;rt{let dt=ot.process(lt,ut,ct);return dt=et(dt,ut,ct),dt}}),st=j[rt].priority;for(;rt{let et;const tt=j.match(_e);return{isDelimiterPair:()=>({paired:!0}),processDelimiterPair:(rt,nt,ot)=>({tokens:ot}),processSingleDelimiter:()=>[],...tt,name:j.name,priority:j.priority,findDelimiter:rt=>et.next(rt).value,reset:()=>{et=tt.findDelimiter(),et.next()}}};function createProcessor(j){const{inlineTokenizers:_e,inlineTokenizerMap:et,blockTokenizers:tt,blockTokenizerMap:rt,blockFallbackTokenizer:nt,inlineFallbackTokenizer:ot,shouldReservePosition:it,presetDefinitions:st,presetFootnoteDefinitions:lt,formatUrl:ut}=j;let ct=!1;const dt=new Set,ft=new Set;let pt=[],gt=-1,vt=-1;const bt=Object.freeze({matchBlockApi:{extractPhrasingLines:wt,rollbackPhrasingLines:Ct,registerDefinitionIdentifier:Lt=>{ct&&dt.add(Lt)},registerFootnoteDefinitionIdentifier:Lt=>{ct&&ft.add(Lt)}},parseBlockApi:{shouldReservePosition:it,formatUrl:ut,processInlines:Pt,parseBlockTokens:Nt},matchInlineApi:{hasDefinition:Lt=>dt.has(Lt),hasFootnoteDefinition:Lt=>ft.has(Lt),getNodePoints:()=>pt,getBlockStartIndex:()=>gt,getBlockEndIndex:()=>vt,resolveFallbackTokens:It},parseInlineApi:{shouldReservePosition:it,calcPosition:Lt=>({start:calcStartPoint(pt,Lt.startIndex),end:calcEndPoint(pt,Lt.endIndex-1)}),formatUrl:ut,getNodePoints:()=>pt,hasDefinition:Lt=>dt.has(Lt),hasFootnoteDefinition:Lt=>ft.has(Lt),parseInlineTokens:Rt}}),_t=tt.map(Lt=>({...Lt.match(bt.matchBlockApi),name:Lt.name,priority:Lt.priority})),xt=new Map(Array.from(rt.entries()).map(Lt=>[Lt[0],Lt[1].parse(bt.parseBlockApi)])),yt=nt?{...nt.match(bt.matchBlockApi),name:nt.name,priority:nt.priority}:null,Et=createProcessorHookGroups(_e,bt.matchInlineApi,It),St=new Map(Array.from(et.entries()).map(Lt=>[Lt[0],Lt[1].parse(bt.parseInlineApi)])),$t=createPhrasingContentProcessor(Et,0);return{process:At};function At(Lt){dt.clear(),ft.clear(),ct=!0;const jt=Ot(Lt);ct=!1;for(const Yt of st)dt.add(Yt.identifier);for(const Yt of lt)ft.add(Yt.identifier);const Gt=Nt(jt.children);return it?{type:"root",position:jt.position,children:Gt}:{type:"root",children:Gt}}function wt(Lt){const jt=rt.get(Lt._tokenizer);return(jt==null?void 0:jt.extractPhrasingContentLines(Lt))??null}function Ct(Lt,jt){if(jt!=null){const Vt=rt.get(jt._tokenizer);if(Vt!==void 0&&Vt.buildBlockToken!=null){const Yt=Vt.buildBlockToken(Lt,jt);if(Yt!==null)return Yt._tokenizer=Vt.name,[Yt]}}return Ot([Lt]).children}function It(Lt,jt,Gt){if(ot==null)return Lt;let Vt=jt;const Yt=[];for(const Xt of Lt){if(Vtot.priority)break}nt<0||nt>=_e.length?_e.push(tt):_e.splice(nt,0,tt)}_unregisterTokenizer(_e,et,tt){var it,st;const rt=typeof tt=="string"?tt:tt.name;if(!et.delete(rt))return;((it=this.blockFallbackTokenizer)==null?void 0:it.name)===rt&&(this.blockFallbackTokenizer=null),((st=this.inlineFallbackTokenizer)==null?void 0:st.name)===rt&&(this.inlineFallbackTokenizer=null);const ot=_e.findIndex(lt=>lt.name===rt);ot>=0&&_e.splice(ot,1)}}function eatEmailAddress(j,_e,et){let tt=_e;for(;tt=et||j[tt].codePoint!==AsciiCodePoint.AT_SIGN||!isAlphanumeric(j[tt+1].codePoint))return{valid:!1,nextIndex:tt+1};for(tt=eatAddressPart0(j,tt+2,et);tt+1=_e?rt+1:_e}function eatAbsoluteUri(j,_e,et){const tt=eatAutolinkSchema(j,_e,et);let{nextIndex:rt}=tt;if(!tt.valid||rt>=et||j[rt].codePoint!==AsciiCodePoint.COLON)return{valid:!1,nextIndex:rt};for(rt+=1;rt32?{valid:!1,nextIndex:tt+1}:{valid:!0,nextIndex:tt}}const helpers=[{contentType:"uri",eat:eatAbsoluteUri},{contentType:"email",eat:eatEmailAddress}],match$n=function(j){return{findDelimiter:()=>genFindDelimiter(_e),processSingleDelimiter:et};function _e(tt,rt){const nt=j.getNodePoints();for(let ot=tt;ot_e.map(et=>{const tt=j.getNodePoints();let rt=calcStringFromNodePoints(tt,et.startIndex+1,et.endIndex-1);et.contentType==="email"&&(rt="mailto:"+rt);const nt=j.formatUrl(rt),ot=j.parseInlineTokens(et.children);return j.shouldReservePosition?{type:LinkType,position:j.calcPosition(et),url:nt,children:ot}:{type:LinkType,url:nt,children:ot}})}},uniqueName$j="@yozora/tokenizer-autolink";class AutolinkTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$j,priority:et.priority??TokenizerPriority.ATOMIC});zr(this,"match",match$n);zr(this,"parse",parse$l)}}const match$m=function(){return{isContainingBlock:!0,eatOpener:j,eatAndInterruptPreviousSibling:_e,eatContinuationText:et};function j(tt){if(tt.countOfPrecedeSpaces>=4)return null;const{nodePoints:rt,startIndex:nt,endIndex:ot,firstNonWhitespaceIndex:it}=tt;if(it>=ot||rt[it].codePoint!==AsciiCodePoint.CLOSE_ANGLE)return null;let st=it+1;return st=4||lt>=st||ot[lt].codePoint!==AsciiCodePoint.CLOSE_ANGLE?nt.nodeType===BlockquoteType?{status:"opening",nextIndex:it}:{status:"notMatched"}:{status:"opening",nextIndex:lt+1_e.map(et=>{const tt=j.parseBlockTokens(et.children);return j.shouldReservePosition?{type:BlockquoteType,position:et.position,children:tt}:{type:BlockquoteType,children:tt}})}},uniqueName$i="@yozora/tokenizer-blockquote";class BlockquoteTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$i,priority:et.priority??TokenizerPriority.CONTAINING_BLOCK});zr(this,"match",match$m);zr(this,"parse",parse$k)}}const uniqueName$h="@yozora/tokenizer-break";var BreakTokenMarkerType;(function(j){j.BACKSLASH="backslash",j.MORE_THAN_TWO_SPACES="more-than-two-spaces"})(BreakTokenMarkerType||(BreakTokenMarkerType={}));const match$l=function(j){return{findDelimiter:()=>genFindDelimiter(_e),processSingleDelimiter:et};function _e(tt,rt){const nt=j.getNodePoints();for(let ot=tt+1;ot=tt&&nt[ut].codePoint===AsciiCodePoint.BACKSLASH;ut-=1);ot-ut&1||(st=ot-1,lt=BreakTokenMarkerType.BACKSLASH);break}case AsciiCodePoint.SPACE:{let ut=ot-2;for(;ut>=tt&&nt[ut].codePoint===AsciiCodePoint.SPACE;ut-=1);ot-ut>2&&(st=ut+1,lt=BreakTokenMarkerType.MORE_THAN_TWO_SPACES);break}}if(!(st==null||lt==null))return{type:"full",markerType:lt,startIndex:st,endIndex:ot}}return null}function et(tt){return[{nodeType:BreakType,startIndex:tt.startIndex,endIndex:tt.endIndex}]}},parse$j=function(j){return{parse:_e=>_e.map(et=>j.shouldReservePosition?{type:BreakType,position:j.calcPosition(et)}:{type:BreakType})}};class BreakTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$h,priority:et.priority??TokenizerPriority.SOFT_INLINE});zr(this,"match",match$l);zr(this,"parse",parse$j)}}function eatAndCollectLinkDestination(j,_e,et,tt){let rt=_e;tt==null&&(tt={saturated:!1,nodePoints:[],hasOpenAngleBracket:!1,openParensCount:0});const nt=eatOptionalWhitespaces(j,rt,et);if(nt>=et)return{nextIndex:-1,state:tt};if(tt.nodePoints.length<=0){rt=nt;const ot=j[rt];ot.codePoint===AsciiCodePoint.OPEN_ANGLE&&(rt+=1,tt.hasOpenAngleBracket=!0,tt.nodePoints.push(ot))}if(tt.hasOpenAngleBracket){for(;rt=et)return{nextIndex:-1,state:tt};if(tt.nodePoints.length<=0){rt=nt;const ot=j[rt];if(ot.codePoint!==AsciiCodePoint.OPEN_BRACKET)return{nextIndex:-1,state:tt};rt+=1,tt.nodePoints.push(ot)}for(;rt=et)return{nextIndex:-1,state:tt};if(tt.nodePoints.length<=0){rt=nt;const ot=j[rt];switch(ot.codePoint){case AsciiCodePoint.DOUBLE_QUOTE:case AsciiCodePoint.SINGLE_QUOTE:case AsciiCodePoint.OPEN_PARENTHESIS:tt.wrapSymbol=ot.codePoint,tt.nodePoints.push(ot),rt+=1;break;default:return{nextIndex:-1,state:tt}}}if(tt.wrapSymbol==null)return{nextIndex:-1,state:tt};switch(tt.wrapSymbol){case AsciiCodePoint.DOUBLE_QUOTE:case AsciiCodePoint.SINGLE_QUOTE:{for(;rt=et||j[rt+1].codePoint===VirtualCodePoint.LINE_END){tt.nodePoints.push(ot),tt.saturated=!0;break}return{nextIndex:-1,state:tt};default:tt.nodePoints.push(ot)}}break}}return{nextIndex:et,state:tt}}const match$k=function(j){return{isContainingBlock:!1,eatOpener:_e,eatContinuationText:et,onClose:tt};function _e(rt){if(rt.countOfPrecedeSpaces>=4)return null;const{nodePoints:nt,startIndex:ot,endIndex:it,firstNonWhitespaceIndex:st}=rt;if(st>=it)return null;let lt=st;const{nextIndex:ut,state:ct}=eatAndCollectLinkLabel(nt,lt,it,null);if(ut<0)return null;const dt=nt[ot].line,ft=()=>({nodeType:DefinitionType,position:{start:calcStartPoint(nt,ot),end:calcEndPoint(nt,it-1)},label:ct,destination:null,title:null,lineNoOfLabel:dt,lineNoOfDestination:-1,lineNoOfTitle:-1,lines:[rt]});if(!ct.saturated)return{token:ft(),nextIndex:it};if(ut<0||ut+1>=it||nt[ut].codePoint!==AsciiCodePoint.COLON)return null;if(lt=eatOptionalWhitespaces(nt,ut+1,it),lt>=it)return{token:ft(),nextIndex:it};const{nextIndex:pt,state:gt}=eatAndCollectLinkDestination(nt,lt,it,null);if(pt<0||!gt.saturated&&pt!==it)return null;if(lt=eatOptionalWhitespaces(nt,pt,it),lt>=it){const xt=ft();return xt.destination=gt,xt.lineNoOfDestination=dt,{token:xt,nextIndex:it}}if(lt===pt)return null;const{nextIndex:vt,state:bt}=eatAndCollectLinkTitle(nt,lt,it,null);if(vt>=0&&(lt=vt),lt=lt||ot[vt].codePoint!==AsciiCodePoint.COLON)return{status:"failedAndRollback",lines:nt.lines};ct=vt+1}if(nt.destination==null){if(ct=eatOptionalWhitespaces(ot,ct,lt),ct>=lt)return{status:"failedAndRollback",lines:nt.lines};const{nextIndex:vt,state:bt}=eatAndCollectLinkDestination(ot,ct,lt,null);if(vt<0||!bt.saturated)return{status:"failedAndRollback",lines:nt.lines};if(ct=eatOptionalWhitespaces(ot,vt,lt),ct>=lt)return nt.destination=bt,nt.lines.push(rt),{status:"opening",nextIndex:lt};nt.lineNoOfDestination=ut,nt.lineNoOfTitle=ut}nt.lineNoOfTitle<0&&(nt.lineNoOfTitle=ut);const{nextIndex:dt,state:ft}=eatAndCollectLinkTitle(ot,ct,lt,nt.title);if(nt.title=ft,dt<0||ft.nodePoints.length<=0||ft.saturated&&eatOptionalWhitespaces(ot,dt,lt)_e.map(et=>{const tt=et._label,rt=et._identifier,nt=et.destination.nodePoints,ot=nt[0].codePoint===AsciiCodePoint.OPEN_ANGLE?calcEscapedStringFromNodePoints(nt,1,nt.length-1,!0):calcEscapedStringFromNodePoints(nt,0,nt.length,!0),it=j.formatUrl(ot),st=et.title==null?void 0:calcEscapedStringFromNodePoints(et.title.nodePoints,1,et.title.nodePoints.length-1);return j.shouldReservePosition?{type:DefinitionType,position:et.position,identifier:rt,label:tt,url:it,title:st}:{type:DefinitionType,identifier:rt,label:tt,url:it,title:st}})}},uniqueName$g="@yozora/tokenizer-definition";class DefinitionTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$g,priority:et.priority??TokenizerPriority.ATOMIC});zr(this,"match",match$k);zr(this,"parse",parse$i)}}const match$j=function(j){return{findDelimiter:()=>genFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt};function _e(rt,nt){const ot=j.getNodePoints(),it=j.getBlockStartIndex(),st=j.getBlockEndIndex(),lt=(ct,dt)=>{if(dt===st)return!1;if(dt===nt)return!0;const ft=ot[dt];if(isUnicodeWhitespaceCharacter(ft.codePoint))return!1;if(!isPunctuationCharacter(ft.codePoint)||ct<=rt)return!0;const pt=ot[ct-1];return isUnicodeWhitespaceCharacter(pt.codePoint)||isPunctuationCharacter(pt.codePoint)},ut=(ct,dt)=>{if(ct===it)return!1;if(ct===rt)return!0;const ft=ot[ct-1];if(isUnicodeWhitespaceCharacter(ft.codePoint))return!1;if(!isPunctuationCharacter(ft.codePoint)||dt>=nt)return!0;const pt=ot[dt];return isUnicodeWhitespaceCharacter(pt.codePoint)||isPunctuationCharacter(pt.codePoint)};for(let ct=rt;ctrt&&!isPunctuationCharacter(ot[ft-1].codePoint)&&(bt=!1);const yt=ot[pt];isPunctuationCharacter(yt.codePoint)||(_t=!1)}if(!bt&&!_t)break;const xt=pt-ft;return{type:bt?_t?"both":"opener":"closer",startIndex:ft,endIndex:pt,thickness:xt,originalThickness:xt}}}}return null}function et(rt,nt){const ot=j.getNodePoints();return ot[rt.startIndex].codePoint!==ot[nt.startIndex].codePoint||(rt.type==="both"||nt.type==="both")&&(rt.originalThickness+nt.originalThickness)%3===0&&rt.originalThickness%3!==0?{paired:!1,opener:!0,closer:!0}:{paired:!0}}function tt(rt,nt,ot){let it=1;rt.thickness>1&&nt.thickness>1&&(it=2),ot=j.resolveInternalTokens(ot,rt.endIndex,nt.startIndex);const st={nodeType:it===1?EmphasisType:StrongType,startIndex:rt.endIndex-it,endIndex:nt.startIndex+it,thickness:it,children:ot},lt=rt.thickness>it?{type:rt.type,startIndex:rt.startIndex,endIndex:rt.endIndex-it,thickness:rt.thickness-it,originalThickness:rt.originalThickness}:void 0,ut=nt.thickness>it?{type:nt.type,startIndex:nt.startIndex+it,endIndex:nt.endIndex,thickness:nt.thickness-it,originalThickness:nt.originalThickness}:void 0;return{tokens:[st],remainOpenerDelimiter:lt,remainCloserDelimiter:ut}}},parse$h=function(j){return{parse:_e=>_e.map(et=>{const tt=j.parseInlineTokens(et.children);return j.shouldReservePosition?{type:et.nodeType,position:j.calcPosition(et),children:tt}:{type:et.nodeType,children:tt}})}},uniqueName$f="@yozora/tokenizer-emphasis";class EmphasisTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$f,priority:et.priority??TokenizerPriority.CONTAINING_INLINE});zr(this,"match",match$j);zr(this,"parse",parse$h)}}function match$i(j){const{nodeType:_e,markers:et,markersRequired:tt,checkInfoString:rt}=this;return{isContainingBlock:!1,eatOpener:nt,eatAndInterruptPreviousSibling:ot,eatContinuationText:it};function nt(st){if(st.countOfPrecedeSpaces>=4)return null;const{endIndex:lt,firstNonWhitespaceIndex:ut}=st;if(ut+tt-1>=lt)return null;const{nodePoints:ct,startIndex:dt}=st,ft=ct[ut].codePoint;if(et.indexOf(ft)<0)return null;const pt=eatOptionalCharacters(ct,ut+1,lt,ft),gt=pt-ut;if(gt=lt.markerCount){for(;vt=dt)return{status:"closing",nextIndex:dt}}}const gt=Math.min(ct+lt.indent,ft,dt-1);return lt.lines.push({nodePoints:ut,startIndex:gt,endIndex:dt,firstNonWhitespaceIndex:ft,countOfPrecedeSpaces:pt}),{status:"opening",nextIndex:dt}}}class FencedBlockTokenizer extends BaseBlockTokenizer{constructor(et){super({name:et.name,priority:et.priority??TokenizerPriority.FENCED_BLOCK});zr(this,"nodeType");zr(this,"markers",[]);zr(this,"markersRequired");zr(this,"checkInfoString");zr(this,"match",match$i);this.nodeType=et.nodeType,this.markers=et.markers,this.markersRequired=et.markersRequired,this.checkInfoString=et.checkInfoString}}const match$h=function(j){return{...match$i.call(this,j),isContainingBlock:!1}},parse$g=function(j){return{parse:_e=>_e.map(et=>{const tt=et.infoString;let rt=0;const nt=[];for(;rt0?ot:null,meta:it.length>0?it:null,value:lt}:{type:CodeType,lang:ot.length>0?ot:null,meta:it.length>0?it:null,value:lt}})}},uniqueName$e="@yozora/tokenizer-fenced-code";class FencedCodeTokenizer extends FencedBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$e,priority:et.priority??TokenizerPriority.FENCED_BLOCK,nodeType:CodeType,markers:[AsciiCodePoint.BACKTICK,AsciiCodePoint.TILDE],markersRequired:3,checkInfoString:(tt,rt)=>{if(rt===AsciiCodePoint.BACKTICK){for(const nt of tt)if(nt.codePoint===AsciiCodePoint.BACKTICK)return!1}return!0}});zr(this,"match",match$h);zr(this,"parse",parse$g)}}const match$g=function(){return{isContainingBlock:!1,eatOpener:j,eatAndInterruptPreviousSibling:_e};function j(et){if(et.countOfPrecedeSpaces>=4)return null;const{nodePoints:tt,startIndex:rt,endIndex:nt,firstNonWhitespaceIndex:ot}=et;if(ot>=nt||tt[ot].codePoint!==AsciiCodePoint.NUMBER_SIGN)return null;const it=eatOptionalCharacters(tt,ot+1,nt,AsciiCodePoint.NUMBER_SIGN),st=it-ot;if(st>6||it+1_e.map(et=>{const{nodePoints:tt,firstNonWhitespaceIndex:rt,endIndex:nt}=et.line;let[ot,it]=calcTrimBoundaryOfCodePoints(tt,rt+et.depth,nt),st=0;for(let ft=it-1;ft>=ot&&tt[ft].codePoint===AsciiCodePoint.NUMBER_SIGN;--ft)st+=1;if(st>0){let ft=0,pt=it-1-st;for(;pt>=ot;--pt){const gt=tt[pt].codePoint;if(!isWhitespaceCharacter(gt))break;ft+=1}(ft>0||pt=et)return null;const rt=tt;let nt=j[tt].codePoint;if(!isAsciiLetter(nt)&&nt!==AsciiCodePoint.UNDERSCORE&&nt!==AsciiCodePoint.COLON)return null;for(tt=rt+1;ttlt&&(it.value={startIndex:lt,endIndex:ut});break}}if(it.value!=null)return{attribute:it,nextIndex:tt}}return{attribute:it,nextIndex:ot}}function eatHTMLTagName(j,_e,et){if(_e>=et||!isAsciiLetter(j[_e].codePoint))return null;let tt=_e;for(;tt=et)return et;const rt=j[_e].codePoint;return isWhitespaceCharacter(rt)||rt===AsciiCodePoint.CLOSE_ANGLE?_e+1:null}function eatEndCondition1(j,_e,et){for(let tt=_e;tt=et||j[nt].codePoint!==AsciiCodePoint.CLOSE_ANGLE){tt+=1;continue}const it=calcStringFromNodePoints(j,rt,nt,!0).toLowerCase();if(includedTags$1.includes(it))return nt}return null}function eatStartCondition2(j,_e,et){const tt=_e;return tt+2=et)return et;const rt=j[_e].codePoint;return isWhitespaceCharacter(rt)||rt===AsciiCodePoint.CLOSE_ANGLE?_e+1:rt===AsciiCodePoint.SLASH&&_e+1=et)return null;let nt=_e;if(rt){for(;nt=et)return null;j[nt].codePoint===AsciiCodePoint.SLASH&&(nt+=1)}else nt=eatOptionalWhitespaces(j,_e,et);if(nt>=et||j[nt].codePoint!==AsciiCodePoint.CLOSE_ANGLE)return null;for(nt+=1;nt=4)return null;const{nodePoints:ot,startIndex:it,endIndex:st,firstNonWhitespaceIndex:lt}=nt;if(lt>=st||ot[lt].codePoint!==AsciiCodePoint.OPEN_ANGLE)return null;const ut=lt+1,ct=tt(ot,ut,st);if(ct==null)return null;const{condition:dt}=ct;let ft=!1;dt!==6&&dt!==7&&rt(ot,ct.nextIndex,st,dt)!=null&&(ft=!0);const pt=st;return{token:{nodeType:HtmlType,position:{start:calcStartPoint(ot,it),end:calcEndPoint(ot,pt-1)},condition:dt,lines:[nt]},nextIndex:pt,saturated:ft}}function _e(nt,ot){const it=j(nt);if(it==null||it.token.condition===7)return null;const{token:st,nextIndex:lt}=it;return{token:st,nextIndex:lt,remainingSibling:ot}}function et(nt,ot){const{nodePoints:it,endIndex:st,firstNonWhitespaceIndex:lt}=nt,ut=rt(it,lt,st,ot.condition);return ut===-1?{status:"notMatched"}:(ot.lines.push(nt),ut!=null?{status:"closing",nextIndex:st}:{status:"opening",nextIndex:st})}function tt(nt,ot,it){let st=null;if(ot>=it)return null;if(st=eatStartCondition2(nt,ot,it),st!=null)return{nextIndex:st,condition:2};if(st=eatStartCondition3(nt,ot,it),st!=null)return{nextIndex:st,condition:3};if(st=eatStartCondition4(nt,ot,it),st!=null)return{nextIndex:st,condition:4};if(st=eatStartCondition5(nt,ot,it),st!=null)return{nextIndex:st,condition:5};if(nt[ot].codePoint!==AsciiCodePoint.SLASH){const pt=ot,gt=eatHTMLTagName(nt,pt,it);if(gt==null)return null;const vt={startIndex:pt,endIndex:gt},_t=calcStringFromNodePoints(nt,vt.startIndex,vt.endIndex).toLowerCase();return st=eatStartCondition1(nt,vt.endIndex,it,_t),st!=null?{nextIndex:st,condition:1}:(st=eatStartCondition6(nt,vt.endIndex,it,_t),st!=null?{nextIndex:st,condition:6}:(st=eatStartCondition7(nt,vt.endIndex,it,_t,!0),st!=null?{nextIndex:st,condition:7}:null))}const lt=ot+1,ut=eatHTMLTagName(nt,lt,it);if(ut==null)return null;const ct={startIndex:lt,endIndex:ut},ft=calcStringFromNodePoints(nt,ct.startIndex,ct.endIndex).toLowerCase();return st=eatStartCondition6(nt,ct.endIndex,it,ft),st!=null?{nextIndex:st,condition:6}:(st=eatStartCondition7(nt,ct.endIndex,it,ft,!1),st!=null?{nextIndex:st,condition:7}:null)}function rt(nt,ot,it,st){switch(st){case 1:return eatEndCondition1(nt,ot,it)==null?null:it;case 2:return eatEndCondition2(nt,ot,it)==null?null:it;case 3:return eatEndCondition3(nt,ot,it)==null?null:it;case 4:return eatEndCondition4(nt,ot,it)==null?null:it;case 5:return eatEndCondition5(nt,ot,it)==null?null:it;case 6:case 7:return eatOptionalWhitespaces(nt,ot,it)>=it?-1:null}}},parse$e=function(j){return{parse:_e=>_e.map(et=>{const tt=mergeContentLinesFaithfully(et.lines);return j.shouldReservePosition?{type:"html",position:et.position,value:calcStringFromNodePoints(tt)}:{type:"html",value:calcStringFromNodePoints(tt)}})}},uniqueName$c="@yozora/tokenizer-html-block";class HtmlBlockTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$c,priority:et.priority??TokenizerPriority.ATOMIC});zr(this,"match",match$f);zr(this,"parse",parse$e)}}function eatHtmlInlineCDataDelimiter(j,_e,et){let tt=_e;if(tt+11>=et||j[tt+1].codePoint!==AsciiCodePoint.EXCLAMATION_MARK||j[tt+2].codePoint!==AsciiCodePoint.OPEN_BRACKET||j[tt+3].codePoint!==AsciiCodePoint.UPPERCASE_C||j[tt+4].codePoint!==AsciiCodePoint.UPPERCASE_D||j[tt+5].codePoint!==AsciiCodePoint.UPPERCASE_A||j[tt+6].codePoint!==AsciiCodePoint.UPPERCASE_T||j[tt+7].codePoint!==AsciiCodePoint.UPPERCASE_A||j[tt+8].codePoint!==AsciiCodePoint.OPEN_BRACKET)return null;const rt=tt+9;for(tt=rt;tt=et)return null;if(j[tt+1].codePoint===AsciiCodePoint.CLOSE_BRACKET&&j[tt+2].codePoint===AsciiCodePoint.CLOSE_ANGLE)return{type:"full",startIndex:_e,endIndex:tt+3,htmlType:"cdata"}}return null}function eatHtmlInlineClosingDelimiter(j,_e,et){let tt=_e;if(tt+3>=et||j[tt+1].codePoint!==AsciiCodePoint.SLASH)return null;const rt=tt+2,nt=eatHTMLTagName(j,rt,et);return nt==null||(tt=eatOptionalWhitespaces(j,nt,et),tt>=et||j[tt].codePoint!==AsciiCodePoint.CLOSE_ANGLE)?null:{type:"full",startIndex:_e,endIndex:tt+1,htmlType:"closing",tagName:{startIndex:rt,endIndex:nt}}}function eatHtmlInlineCommentDelimiter(j,_e,et){let tt=_e;if(tt+6>=et||j[tt+1].codePoint!==AsciiCodePoint.EXCLAMATION_MARK||j[tt+2].codePoint!==AsciiCodePoint.MINUS_SIGN||j[tt+3].codePoint!==AsciiCodePoint.MINUS_SIGN||j[tt+4].codePoint===AsciiCodePoint.CLOSE_ANGLE||j[tt+4].codePoint===AsciiCodePoint.MINUS_SIGN&&j[tt+5].codePoint===AsciiCodePoint.CLOSE_ANGLE)return null;const rt=tt+4;for(tt=rt;tt2||tt+2>=et||j[tt+2].codePoint!==AsciiCodePoint.CLOSE_ANGLE?null:{type:"full",startIndex:_e,endIndex:tt+3,htmlType:"comment"}}return null}function eatHtmlInlineDeclarationDelimiter(j,_e,et){let tt=_e;if(tt+4>=et||j[tt+1].codePoint!==AsciiCodePoint.EXCLAMATION_MARK)return null;const rt=tt+2;for(tt=rt;tt=et||!isWhitespaceCharacter(j[tt].codePoint))return null;const nt=tt,ot=tt+1;for(tt=ot;tt=et||j[tt+1].codePoint!==AsciiCodePoint.QUESTION_MARK)return null;const rt=tt+2;for(tt=rt;tt=et)return null;if(j[tt+1].codePoint===AsciiCodePoint.CLOSE_ANGLE)return{type:"full",startIndex:_e,endIndex:tt+2,htmlType:"instruction"}}return null}function eatHtmlInlineTokenOpenDelimiter(j,_e,et){let tt=_e;if(tt+2>=et)return null;const rt=tt+1,nt=eatHTMLTagName(j,rt,et);if(nt==null)return null;const ot=[];for(tt=nt;tt=et)return null;let it=!1;return j[tt].codePoint===AsciiCodePoint.SLASH&&(tt+=1,it=!0),tt>=et||j[tt].codePoint!==AsciiCodePoint.CLOSE_ANGLE?null:{type:"full",startIndex:_e,endIndex:tt+1,htmlType:"open",tagName:{startIndex:rt,endIndex:nt},attributes:ot,selfClosed:it}}const match$e=function(j){return{findDelimiter:()=>genFindDelimiter(_e),processSingleDelimiter:et};function _e(tt,rt){const nt=j.getNodePoints();for(let ot=tt;ot=rt));++ot)switch(nt[ot].codePoint){case AsciiCodePoint.BACKSLASH:ot+=1;break;case AsciiCodePoint.OPEN_ANGLE:{const st=tryToEatDelimiter(nt,ot,rt);if(st!=null)return st;break}}return null}function et(tt){return[{...tt,nodeType:HtmlType}]}};function tryToEatDelimiter(j,_e,et){let tt=null;return tt=eatHtmlInlineTokenOpenDelimiter(j,_e,et),tt!=null||(tt=eatHtmlInlineClosingDelimiter(j,_e,et),tt!=null)||(tt=eatHtmlInlineCommentDelimiter(j,_e,et),tt!=null)||(tt=eatHtmlInlineInstructionDelimiter(j,_e,et),tt!=null)||(tt=eatHtmlInlineDeclarationDelimiter(j,_e,et),tt!=null)||(tt=eatHtmlInlineCDataDelimiter(j,_e,et)),tt}const parse$d=function(j){return{parse:_e=>_e.map(et=>{const{startIndex:tt,endIndex:rt}=et,nt=j.getNodePoints(),ot=calcStringFromNodePoints(nt,tt,rt);return j.shouldReservePosition?{type:HtmlType,position:j.calcPosition(et),value:ot}:{type:HtmlType,value:ot}})}},uniqueName$b="@yozora/tokenizer-html-inline";class HtmlInlineTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$b,priority:et.priority??TokenizerPriority.ATOMIC});zr(this,"match",match$e);zr(this,"parse",parse$d)}}const checkBalancedBracketsStatus=(j,_e,et,tt)=>{let rt=j,nt=0;const ot=()=>{switch(tt[rt].codePoint){case AsciiCodePoint.BACKSLASH:rt+=1;break;case AsciiCodePoint.OPEN_BRACKET:nt+=1;break;case AsciiCodePoint.CLOSE_BRACKET:nt-=1;break}};for(const it of et)if(!(it.startIndex_e)break;for(;rt0?1:0};function eatLinkDestination(j,_e,et){if(_e>=et)return-1;let tt=_e;switch(j[tt].codePoint){case AsciiCodePoint.OPEN_ANGLE:{for(tt+=1;tt=et)return-1;let tt=_e;const rt=j[tt].codePoint;switch(rt){case AsciiCodePoint.DOUBLE_QUOTE:case AsciiCodePoint.SINGLE_QUOTE:{for(tt+=1;ttnt.line+1)return-1;break}}}break}case AsciiCodePoint.OPEN_PARENTHESIS:{let nt=1;for(tt+=1;ttot.line+1)return-1;break}case AsciiCodePoint.OPEN_PARENTHESIS:nt+=1;break;case AsciiCodePoint.CLOSE_PARENTHESIS:if(nt-=1,nt===0)return tt+1;break}}break}case AsciiCodePoint.CLOSE_PARENTHESIS:return tt;default:return-1}return-1}const match$d=function(j){return{findDelimiter:()=>genFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt};function _e(rt,nt){const ot=j.getNodePoints(),it=j.getBlockEndIndex();for(let st=rt;st=nt||ot[st+1].codePoint!==AsciiCodePoint.OPEN_PARENTHESIS)break;const ut=eatOptionalWhitespaces(ot,st+2,it),ct=eatLinkDestination(ot,ut,it);if(ct<0)break;const dt=eatOptionalWhitespaces(ot,ct,it),ft=eatLinkTitle(ot,dt,it);if(ft<0)break;const pt=st,gt=eatOptionalWhitespaces(ot,ft,it)+1;if(gt>it||ot[gt-1].codePoint!==AsciiCodePoint.CLOSE_PARENTHESIS)break;return{type:"closer",startIndex:pt,endIndex:gt,destinationContent:ut_e.map(et=>{const tt=j.getNodePoints();let rt="";if(et.destinationContent!=null){let{startIndex:st,endIndex:lt}=et.destinationContent;tt[st].codePoint===AsciiCodePoint.OPEN_ANGLE&&(st+=1,lt-=1);const ut=calcEscapedStringFromNodePoints(tt,st,lt,!0);rt=j.formatUrl(ut)}let nt;if(et.titleContent!=null){const{startIndex:st,endIndex:lt}=et.titleContent;nt=calcEscapedStringFromNodePoints(tt,st+1,lt-1)}const ot=j.parseInlineTokens(et.children);return j.shouldReservePosition?{type:LinkType,position:j.calcPosition(et),url:rt,title:nt,children:ot}:{type:LinkType,url:rt,title:nt,children:ot}})}},uniqueName$a="@yozora/tokenizer-link";class LinkTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$a,priority:et.priority??TokenizerPriority.LINKS});zr(this,"match",match$d);zr(this,"parse",parse$c)}}function calcImageAlt(j){return j.map(_e=>_e.value!=null?_e.value:_e.alt!=null?_e.alt:_e.children!=null?calcImageAlt(_e.children):"").join("")}const match$c=function(j){return{findDelimiter:()=>genFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt};function _e(rt,nt){const ot=j.getNodePoints(),it=j.getBlockEndIndex();for(let st=rt;st=nt||ot[st+1].codePoint!==AsciiCodePoint.OPEN_PARENTHESIS)break;const ut=eatOptionalWhitespaces(ot,st+2,it),ct=eatLinkDestination(ot,ut,it);if(ct<0)break;const dt=eatOptionalWhitespaces(ot,ct,it),ft=eatLinkTitle(ot,dt,it);if(ft<0)break;const pt=st,gt=eatOptionalWhitespaces(ot,ft,it)+1;if(gt>it||ot[gt-1].codePoint!==AsciiCodePoint.CLOSE_PARENTHESIS)break;return{type:"closer",startIndex:pt,endIndex:gt,destinationContent:ut_e.map(et=>{const tt=j.getNodePoints();let rt="";if(et.destinationContent!=null){let{startIndex:lt,endIndex:ut}=et.destinationContent;tt[lt].codePoint===AsciiCodePoint.OPEN_ANGLE&&(lt+=1,ut-=1);const ct=calcEscapedStringFromNodePoints(tt,lt,ut,!0);rt=j.formatUrl(ct)}const nt=j.parseInlineTokens(et.children),ot=calcImageAlt(nt);let it;if(et.titleContent!=null){const{startIndex:lt,endIndex:ut}=et.titleContent;it=calcEscapedStringFromNodePoints(tt,lt+1,ut-1)}return j.shouldReservePosition?{type:ImageType$1,position:j.calcPosition(et),url:rt,alt:ot,title:it}:{type:ImageType$1,url:rt,alt:ot,title:it}})}},uniqueName$9="@yozora/tokenizer-image";class ImageTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$9,priority:et.priority??TokenizerPriority.LINKS});zr(this,"match",match$c);zr(this,"parse",parse$b)}}const match$b=function(j){return{findDelimiter:()=>genFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt};function _e(rt,nt){const ot=j.getNodePoints();for(let it=rt;it=nt||ot[it+1].codePoint!==AsciiCodePoint.OPEN_BRACKET)break;return{type:"opener",startIndex:it,endIndex:it+2,brackets:[]}}case AsciiCodePoint.CLOSE_BRACKET:{const lt={type:"closer",startIndex:it,endIndex:it+1,brackets:[]};if(it+1>=nt||ot[it+1].codePoint!==AsciiCodePoint.OPEN_BRACKET)return lt;const ut=eatLinkLabel(ot,it+1,nt);return ut.nextIndex<0?lt:ut.labelAndIdentifier==null?{type:"closer",startIndex:it,endIndex:ut.nextIndex,brackets:[{startIndex:it+1,endIndex:ut.nextIndex}]}:{type:"closer",startIndex:it,endIndex:ut.nextIndex,brackets:[{startIndex:it+1,endIndex:ut.nextIndex,label:ut.labelAndIdentifier.label,identifier:ut.labelAndIdentifier.identifier}]}}}return null}function et(rt,nt,ot){const it=j.getNodePoints();switch(checkBalancedBracketsStatus(rt.endIndex,nt.startIndex,ot,it)){case-1:return{paired:!1,opener:!1,closer:!0};case 0:return{paired:!0};case 1:return{paired:!1,opener:!0,closer:!1}}}function tt(rt,nt,ot){const it=j.getNodePoints(),st=nt.brackets[0];if(st!=null&&st.identifier!=null)return j.hasDefinition(st.identifier)?{tokens:[{nodeType:ImageReferenceType,startIndex:rt.startIndex,endIndex:st.endIndex,referenceType:"full",label:st.label,identifier:st.identifier,children:j.resolveInternalTokens(ot,rt.endIndex,nt.startIndex)}]}:{tokens:ot};const{nextIndex:lt,labelAndIdentifier:ut}=eatLinkLabel(it,rt.endIndex-1,nt.startIndex+1);return lt===nt.startIndex+1&&ut!=null&&j.hasDefinition(ut.identifier)?{tokens:[{nodeType:ImageReferenceType,startIndex:rt.startIndex,endIndex:nt.endIndex,referenceType:st==null?"shortcut":"collapsed",label:ut.label,identifier:ut.identifier,children:j.resolveInternalTokens(ot,rt.endIndex,nt.startIndex)}]}:{tokens:ot}}},parse$a=function(j){return{parse:_e=>_e.map(et=>{const{identifier:tt,label:rt,referenceType:nt}=et,ot=j.parseInlineTokens(et.children),it=calcImageAlt(ot);return j.shouldReservePosition?{type:ImageReferenceType,position:j.calcPosition(et),identifier:tt,label:rt,referenceType:nt,alt:it}:{type:ImageReferenceType,identifier:tt,label:rt,referenceType:nt,alt:it}})}},uniqueName$8="@yozora/tokenizer-image-reference";class ImageReferenceTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$8,priority:et.priority??TokenizerPriority.LINKS});zr(this,"match",match$b);zr(this,"parse",parse$a)}}const match$a=function(){return{isContainingBlock:!1,eatOpener:j,eatContinuationText:_e};function j(et){if(et.countOfPrecedeSpaces<4)return null;const{nodePoints:tt,startIndex:rt,firstNonWhitespaceIndex:nt,endIndex:ot}=et;let it=rt+4;if(tt[rt].codePoint===AsciiCodePoint.SPACE&&tt[rt+3].codePoint===VirtualCodePoint.SPACE){let ut=rt+1;for(;ut_e.map(et=>{const{lines:tt}=et;let rt=0,nt=tt.length;for(;rtut+1&&ot.push({type:"opener",startIndex:ut+1,endIndex:dt}),ut=dt-1}break}case AsciiCodePoint.BACKTICK:{const dt=ut,ft=eatOptionalCharacters(tt,ut+1,nt,ct);ot.push({type:"both",startIndex:dt,endIndex:ft}),ut=ft-1;break}}}let it=0,st=-1,lt=null;for(;it=ut))continue;st=ct;let dt=null,ft=null;for(;it=ut&>.type!=="closer")break}if(it+1>=ot.length)return;dt=ot[it];const pt=dt.endIndex-dt.startIndex;for(let gt=it+1;gt_e.map(et=>{const tt=j.getNodePoints();let rt=et.startIndex+et.thickness,nt=et.endIndex-et.thickness,ot=!0;for(let lt=rt;ltgenFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt,processSingleDelimiter:rt};function _e(nt,ot){const it=j.getNodePoints();for(let st=nt;st=ot||it[st+1].codePoint!==AsciiCodePoint.OPEN_BRACKET)break;const ut=eatLinkLabel(it,st+1,ot);if(ut.nextIndex===-1)return{type:"opener",startIndex:st+1,endIndex:st+2,brackets:[]};if(ut.labelAndIdentifier==null){st=ut.nextIndex-1;break}const ct=[{startIndex:st+1,endIndex:ut.nextIndex,label:ut.labelAndIdentifier.label,identifier:ut.labelAndIdentifier.identifier}],dt={type:"closer",startIndex:st,endIndex:ut.nextIndex,brackets:ct};for(st=ut.nextIndex;st=it.length)break;if(lt+1_e.map(et=>{const{identifier:tt,label:rt,referenceType:nt}=et,ot=j.parseInlineTokens(et.children);return j.shouldReservePosition?{type:LinkReferenceType,position:j.calcPosition(et),identifier:tt,label:rt,referenceType:nt,children:ot}:{type:LinkReferenceType,identifier:tt,label:rt,referenceType:nt,children:ot}})}},uniqueName$5="@yozora/tokenizer-link-reference";class LinkReferenceTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$5,priority:et.priority??TokenizerPriority.LINKS});zr(this,"match",match$8);zr(this,"parse",parse$7)}}const match$7=function(){const{emptyItemCouldNotInterruptedTypes:j,enableTaskListItem:_e}=this;return{isContainingBlock:!0,eatOpener:et,eatAndInterruptPreviousSibling:tt,eatContinuationText:rt};function et(nt){if(nt.countOfPrecedeSpaces>=4)return null;const{nodePoints:ot,startIndex:it,endIndex:st,firstNonWhitespaceIndex:lt}=nt;if(lt>=st)return null;let ut=!1,ct=null,dt,ft,pt=lt,gt=ot[pt].codePoint;if(pt+1lt&&pt-lt<=9&&(gt===AsciiCodePoint.DOT||gt===AsciiCodePoint.CLOSE_PARENTHESIS)&&(pt+=1,ut=!0,ct=gt)}if(ut||(gt===AsciiCodePoint.PLUS_SIGN||gt===AsciiCodePoint.MINUS_SIGN||gt===AsciiCodePoint.ASTERISK)&&(pt+=1,ct=gt),ct==null)return null;let vt=0,bt=pt;for(bt4&&(bt-=vt-1,vt=1),vt===0&&bt=st){if(ot.countOfTopBlankLine>=0&&(ot.countOfTopBlankLine+=1,ot.countOfTopBlankLine>1))return{status:"notMatched"}}else ot.countOfTopBlankLine=-1;return{status:"opening",nextIndex:Math.min(it+ot.indent,st-1)}}};function eatTaskStatus(j,_e,et){let tt=_e;for(;tt=et||j[tt].codePoint!==AsciiCodePoint.OPEN_BRACKET||j[tt+2].codePoint!==AsciiCodePoint.CLOSE_BRACKET||!isWhitespaceCharacter(j[tt+3].codePoint))return{status:null,nextIndex:_e};let rt;switch(j[tt+1].codePoint){case AsciiCodePoint.SPACE:rt=TaskStatus.TODO;break;case AsciiCodePoint.MINUS_SIGN:rt=TaskStatus.DOING;break;case AsciiCodePoint.LOWERCASE_X:case AsciiCodePoint.UPPERCASE_X:rt=TaskStatus.DONE;break;default:return{status:null,nextIndex:_e}}return{status:rt,nextIndex:tt+4}}const parse$6=function(j){return{parse:_e=>{const et=[];let tt=[];for(let nt=0;nt<_e.length;++nt){const ot=_e[nt];if(tt.length<=0||tt[0].ordered!==ot.ordered||tt[0].orderType!==ot.orderType||tt[0].marker!==ot.marker){const it=resolveList(tt,j);it&&et.push(it),tt=[ot];continue}tt.push(ot)}const rt=resolveList(tt,j);return rt&&et.push(rt),et}}},resolveList=(j,_e)=>{if(j.length<=0)return null;let et=j.some(nt=>{if(nt.children==null||nt.children.length<=1)return!1;let ot=nt.children[0].position;for(let it=1;it1){let nt=j[0];for(let ot=1;ot{const ot=_e.parseBlockTokens(nt.children),it=et?ot:ot.map(lt=>lt.type===ParagraphType$1?lt.children:lt).flat();return _e.shouldReservePosition?{type:ListItemType,position:nt.position,status:nt.status,children:it}:{type:ListItemType,status:nt.status,children:it}});return _e.shouldReservePosition?{type:ListType,position:{start:{...j[0].position.start},end:{...j[j.length-1].position.end}},ordered:j[0].ordered,orderType:j[0].orderType,start:j[0].order,marker:j[0].marker,spread:et,children:tt}:{type:ListType,ordered:j[0].ordered,orderType:j[0].orderType,start:j[0].order,marker:j[0].marker,spread:et,children:tt}},uniqueName$4="@yozora/tokenizer-list";class ListTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$4,priority:et.priority??TokenizerPriority.CONTAINING_BLOCK});zr(this,"enableTaskListItem");zr(this,"emptyItemCouldNotInterruptedTypes");zr(this,"match",match$7);zr(this,"parse",parse$6);this.enableTaskListItem=et.enableTaskListItem??!1,this.emptyItemCouldNotInterruptedTypes=et.emptyItemCouldNotInterruptedTypes??[ParagraphType$1]}}const match$6=function(){return{isContainingBlock:!1,eatOpener:j,eatContinuationText:_e,eatLazyContinuationText:et};function j(tt){const{endIndex:rt,firstNonWhitespaceIndex:nt}=tt;if(nt>=rt)return null;const ot=[tt],it=calcPositionFromPhrasingContentLines(ot);return{token:{nodeType:ParagraphType$1,position:it,lines:ot},nextIndex:rt}}function _e(tt,rt){const{endIndex:nt,firstNonWhitespaceIndex:ot}=tt;return ot>=nt?{status:"notMatched"}:(rt.lines.push(tt),{status:"opening",nextIndex:nt})}function et(tt,rt){return _e(tt,rt)}},parse$5=function(j){return{parse:_e=>{const et=[];for(const tt of _e){const rt=mergeAndStripContentLines(tt.lines),nt=j.processInlines(rt);if(nt.length<=0)continue;const ot=j.shouldReservePosition?{type:ParagraphType$1,position:tt.position,children:nt}:{type:ParagraphType$1,children:nt};et.push(ot)}return et}}},uniqueName$3="@yozora/tokenizer-paragraph";class ParagraphTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$3,priority:et.priority??TokenizerPriority.FALLBACK});zr(this,"match",match$6);zr(this,"parse",parse$5)}extractPhrasingContentLines(et){return et.lines}buildBlockToken(et){const tt=trimBlankLines(et);if(tt.length<=0)return null;const rt=calcPositionFromPhrasingContentLines(tt);return{nodeType:ParagraphType$1,lines:tt,position:rt}}}const match$5=function(j){return{isContainingBlock:!1,eatOpener:_e,eatAndInterruptPreviousSibling:et};function _e(){return null}function et(tt,rt){const{nodePoints:nt,endIndex:ot,firstNonWhitespaceIndex:it,countOfPrecedeSpaces:st}=tt;if(st>=4||it>=ot)return null;let lt=null,ut=!1;for(let pt=it;pt_e.map(et=>{let tt=1;switch(et.marker){case AsciiCodePoint.EQUALS_SIGN:tt=1;break;case AsciiCodePoint.MINUS_SIGN:tt=2;break}const rt=mergeAndStripContentLines(et.lines),nt=j.processInlines(rt);return j.shouldReservePosition?{type:HeadingType,position:et.position,depth:tt,children:nt}:{type:HeadingType,depth:tt,children:nt}})}},uniqueName$2="@yozora/tokenizer-setext-heading";class SetextHeadingTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$2,priority:et.priority??TokenizerPriority.ATOMIC});zr(this,"match",match$5);zr(this,"parse",parse$4)}}const match$4=function(){return{findDelimiter:()=>genFindDelimiter((j,_e)=>({type:"full",startIndex:j,endIndex:_e})),processSingleDelimiter:j=>[{nodeType:TextType$1,startIndex:j.startIndex,endIndex:j.endIndex}]}},parse$3=function(j){return{parse:_e=>_e.map(et=>{const tt=j.getNodePoints();let rt=calcEscapedStringFromNodePoints(tt,et.startIndex,et.endIndex);return rt=stripSpaces(rt),j.shouldReservePosition?{type:TextType$1,position:j.calcPosition(et),value:rt}:{type:TextType$1,value:rt}})}},_stripRegex=/[^\S\n]*\n[^\S\n]*/g,stripSpaces=j=>j.replace(_stripRegex,` +`),uniqueName$1="@yozora/tokenizer-text";class TextTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$1,priority:et.priority??TokenizerPriority.FALLBACK});zr(this,"match",match$4);zr(this,"parse",parse$3)}findAndHandleDelimiter(et,tt){return{nodeType:TextType$1,startIndex:et,endIndex:tt}}}const match$3=function(){return{isContainingBlock:!1,eatOpener:j,eatAndInterruptPreviousSibling:_e};function j(et){if(et.countOfPrecedeSpaces>=4)return null;const{nodePoints:tt,startIndex:rt,endIndex:nt,firstNonWhitespaceIndex:ot}=et;if(ot+2>=nt)return null;let it,st=0,lt=!0,ut=!1;for(let dt=ot;dt_e.map(et=>j.shouldReservePosition?{type:ThematicBreakType,position:et.position}:{type:ThematicBreakType})}},uniqueName="@yozora/tokenizer-thematic-break";class ThematicBreakTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName,priority:et.priority??TokenizerPriority.ATOMIC});zr(this,"match",match$3);zr(this,"parse",parse$2)}}class GfmParser extends DefaultParser{constructor(_e={}){super({..._e,blockFallbackTokenizer:_e.blockFallbackTokenizer??new ParagraphTokenizer,inlineFallbackTokenizer:_e.inlineFallbackTokenizer??new TextTokenizer}),this.useTokenizer(new IndentedCodeTokenizer).useTokenizer(new HtmlBlockTokenizer).useTokenizer(new SetextHeadingTokenizer).useTokenizer(new ThematicBreakTokenizer).useTokenizer(new BlockquoteTokenizer).useTokenizer(new ListTokenizer({enableTaskListItem:!1})).useTokenizer(new HeadingTokenizer).useTokenizer(new FencedCodeTokenizer).useTokenizer(new DefinitionTokenizer).useTokenizer(new HtmlInlineTokenizer).useTokenizer(new InlineCodeTokenizer).useTokenizer(new AutolinkTokenizer).useTokenizer(new BreakTokenizer).useTokenizer(new ImageTokenizer).useTokenizer(new ImageReferenceTokenizer).useTokenizer(new LinkTokenizer).useTokenizer(new LinkReferenceTokenizer).useTokenizer(new EmphasisTokenizer)}}const parser=new GfmParser({defaultParseOptions:{shouldReservePosition:!1}});class BlockquoteRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("blockquote",{className:cls$b,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$b=mergeStyles$1(astClasses.blockquote,{boxSizing:"border-box",padding:"0.625em 1em",borderLeft:"0.25em solid var(--colorBorderBlockquote)",margin:"0px 0px 1.25em 0px",background:"var(--colorBgBlockquote)",boxShadow:"0 1px 2px 0 hsla(0deg, 0%, 0%, 0.1)","> :last-child":{marginBottom:0}});class BreakRenderer extends React.Component{shouldComponentUpdate(){return!1}render(){return jsxRuntimeExports.jsx("br",{className:cls$a})}}const cls$a=mergeStyles$1(astClasses.break,{boxSizing:"border-box"});var prism={exports:{}};(function(j){var _e=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + */var et=function(tt){var rt=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,nt=0,ot={},it={manual:tt.Prism&&tt.Prism.manual,disableWorkerMessageHandler:tt.Prism&&tt.Prism.disableWorkerMessageHandler,util:{encode:function _t(xt){return xt instanceof st?new st(xt.type,_t(xt.content),xt.alias):Array.isArray(xt)?xt.map(_t):xt.replace(/&/g,"&").replace(/"u")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(Et){var _t=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(Et.stack)||[])[1];if(_t){var xt=document.getElementsByTagName("script");for(var yt in xt)if(xt[yt].src==_t)return xt[yt]}return null}},isActive:function(_t,xt,yt){for(var Et="no-"+xt;_t;){var St=_t.classList;if(St.contains(xt))return!0;if(St.contains(Et))return!1;_t=_t.parentElement}return!!yt}},languages:{plain:ot,plaintext:ot,text:ot,txt:ot,extend:function(_t,xt){var yt=it.util.clone(it.languages[_t]);for(var Et in xt)yt[Et]=xt[Et];return yt},insertBefore:function(_t,xt,yt,Et){Et=Et||it.languages;var St=Et[_t],$t={};for(var At in St)if(St.hasOwnProperty(At)){if(At==xt)for(var wt in yt)yt.hasOwnProperty(wt)&&($t[wt]=yt[wt]);yt.hasOwnProperty(At)||($t[At]=St[At])}var Ct=Et[_t];return Et[_t]=$t,it.languages.DFS(it.languages,function(It,Ot){Ot===Ct&&It!=_t&&(this[It]=$t)}),$t},DFS:function _t(xt,yt,Et,St){St=St||{};var $t=it.util.objId;for(var At in xt)if(xt.hasOwnProperty(At)){yt.call(xt,At,xt[At],Et||At);var wt=xt[At],Ct=it.util.type(wt);Ct==="Object"&&!St[$t(wt)]?(St[$t(wt)]=!0,_t(wt,yt,null,St)):Ct==="Array"&&!St[$t(wt)]&&(St[$t(wt)]=!0,_t(wt,yt,At,St))}}},plugins:{},highlightAll:function(_t,xt){it.highlightAllUnder(document,_t,xt)},highlightAllUnder:function(_t,xt,yt){var Et={callback:yt,container:_t,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};it.hooks.run("before-highlightall",Et),Et.elements=Array.prototype.slice.apply(Et.container.querySelectorAll(Et.selector)),it.hooks.run("before-all-elements-highlight",Et);for(var St=0,$t;$t=Et.elements[St++];)it.highlightElement($t,xt===!0,Et.callback)},highlightElement:function(_t,xt,yt){var Et=it.util.getLanguage(_t),St=it.languages[Et];it.util.setLanguage(_t,Et);var $t=_t.parentElement;$t&&$t.nodeName.toLowerCase()==="pre"&&it.util.setLanguage($t,Et);var At=_t.textContent,wt={element:_t,language:Et,grammar:St,code:At};function Ct(Ot){wt.highlightedCode=Ot,it.hooks.run("before-insert",wt),wt.element.innerHTML=wt.highlightedCode,it.hooks.run("after-highlight",wt),it.hooks.run("complete",wt),yt&&yt.call(wt.element)}if(it.hooks.run("before-sanity-check",wt),$t=wt.element.parentElement,$t&&$t.nodeName.toLowerCase()==="pre"&&!$t.hasAttribute("tabindex")&&$t.setAttribute("tabindex","0"),!wt.code){it.hooks.run("complete",wt),yt&&yt.call(wt.element);return}if(it.hooks.run("before-highlight",wt),!wt.grammar){Ct(it.util.encode(wt.code));return}if(xt&&tt.Worker){var It=new Worker(it.filename);It.onmessage=function(Ot){Ct(Ot.data)},It.postMessage(JSON.stringify({language:wt.language,code:wt.code,immediateClose:!0}))}else Ct(it.highlight(wt.code,wt.grammar,wt.language))},highlight:function(_t,xt,yt){var Et={code:_t,grammar:xt,language:yt};if(it.hooks.run("before-tokenize",Et),!Et.grammar)throw new Error('The language "'+Et.language+'" has no grammar.');return Et.tokens=it.tokenize(Et.code,Et.grammar),it.hooks.run("after-tokenize",Et),st.stringify(it.util.encode(Et.tokens),Et.language)},tokenize:function(_t,xt){var yt=xt.rest;if(yt){for(var Et in yt)xt[Et]=yt[Et];delete xt.rest}var St=new ct;return dt(St,St.head,_t),ut(_t,St,xt,St.head,0),pt(St)},hooks:{all:{},add:function(_t,xt){var yt=it.hooks.all;yt[_t]=yt[_t]||[],yt[_t].push(xt)},run:function(_t,xt){var yt=it.hooks.all[_t];if(!(!yt||!yt.length))for(var Et=0,St;St=yt[Et++];)St(xt)}},Token:st};tt.Prism=it;function st(_t,xt,yt,Et){this.type=_t,this.content=xt,this.alias=yt,this.length=(Et||"").length|0}st.stringify=function _t(xt,yt){if(typeof xt=="string")return xt;if(Array.isArray(xt)){var Et="";return xt.forEach(function(Ct){Et+=_t(Ct,yt)}),Et}var St={type:xt.type,content:_t(xt.content,yt),tag:"span",classes:["token",xt.type],attributes:{},language:yt},$t=xt.alias;$t&&(Array.isArray($t)?Array.prototype.push.apply(St.classes,$t):St.classes.push($t)),it.hooks.run("wrap",St);var At="";for(var wt in St.attributes)At+=" "+wt+'="'+(St.attributes[wt]||"").replace(/"/g,""")+'"';return"<"+St.tag+' class="'+St.classes.join(" ")+'"'+At+">"+St.content+""};function lt(_t,xt,yt,Et){_t.lastIndex=xt;var St=_t.exec(yt);if(St&&Et&&St[1]){var $t=St[1].length;St.index+=$t,St[0]=St[0].slice($t)}return St}function ut(_t,xt,yt,Et,St,$t){for(var At in yt)if(!(!yt.hasOwnProperty(At)||!yt[At])){var wt=yt[At];wt=Array.isArray(wt)?wt:[wt];for(var Ct=0;Ct=$t.reach);Gt+=jt.value.length,jt=jt.next){var Vt=jt.value;if(xt.length>_t.length)return;if(!(Vt instanceof st)){var Yt=1,Xt;if(Pt){if(Xt=lt(Lt,Gt,_t,Nt),!Xt||Xt.index>=_t.length)break;var Tr=Xt.index,rr=Xt.index+Xt[0].length,cr=Gt;for(cr+=jt.value.length;Tr>=cr;)jt=jt.next,cr+=jt.value.length;if(cr-=jt.value.length,Gt=cr,jt.value instanceof st)continue;for(var vr=jt;vr!==xt.tail&&(cr$t.reach&&($t.reach=ir);var hr=jt.prev;Er&&(hr=dt(xt,hr,Er),Gt+=Er.length),ft(xt,hr,Yt);var nr=new st(At,Ot?it.tokenize(gr,Ot):gr,Mt,gr);if(jt=dt(xt,hr,nr),qt&&dt(xt,jt,qt),Yt>1){var mr={cause:At+","+Ct,reach:ir};ut(_t,xt,yt,jt.prev,Gt,mr),$t&&mr.reach>$t.reach&&($t.reach=mr.reach)}}}}}}function ct(){var _t={value:null,prev:null,next:null},xt={value:null,prev:_t,next:null};_t.next=xt,this.head=_t,this.tail=xt,this.length=0}function dt(_t,xt,yt){var Et=xt.next,St={value:yt,prev:xt,next:Et};return xt.next=St,Et.prev=St,_t.length++,St}function ft(_t,xt,yt){for(var Et=xt.next,St=0;St/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},et.languages.markup.tag.inside["attr-value"].inside.entity=et.languages.markup.entity,et.languages.markup.doctype.inside["internal-subset"].inside=et.languages.markup,et.hooks.add("wrap",function(tt){tt.type==="entity"&&(tt.attributes.title=tt.content.replace(/&/,"&"))}),Object.defineProperty(et.languages.markup.tag,"addInlined",{value:function(rt,nt){var ot={};ot["language-"+nt]={pattern:/(^$)/i,lookbehind:!0,inside:et.languages[nt]},ot.cdata=/^$/i;var it={"included-cdata":{pattern://i,inside:ot}};it["language-"+nt]={pattern:/[\s\S]+/,inside:et.languages[nt]};var st={};st[rt]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return rt}),"i"),lookbehind:!0,greedy:!0,inside:it},et.languages.insertBefore("markup","cdata",st)}}),Object.defineProperty(et.languages.markup.tag,"addAttribute",{value:function(tt,rt){et.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+tt+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[rt,"language-"+rt],inside:et.languages[rt]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),et.languages.html=et.languages.markup,et.languages.mathml=et.languages.markup,et.languages.svg=et.languages.markup,et.languages.xml=et.languages.extend("markup",{}),et.languages.ssml=et.languages.xml,et.languages.atom=et.languages.xml,et.languages.rss=et.languages.xml,function(tt){var rt=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;tt.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+rt.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+rt.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+rt.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+rt.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:rt,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},tt.languages.css.atrule.inside.rest=tt.languages.css;var nt=tt.languages.markup;nt&&(nt.tag.addInlined("style","css"),nt.tag.addAttribute("style","css"))}(et),et.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},et.languages.javascript=et.languages.extend("clike",{"class-name":[et.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),et.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,et.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:et.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:et.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:et.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:et.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:et.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),et.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:et.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),et.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),et.languages.markup&&(et.languages.markup.tag.addInlined("script","javascript"),et.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),et.languages.js=et.languages.javascript,function(){if(typeof et>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var tt="Loading…",rt=function(gt,vt){return"✖ Error "+gt+" while fetching file: "+vt},nt="✖ Error: File does not exist or is empty",ot={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},it="data-src-status",st="loading",lt="loaded",ut="failed",ct="pre[data-src]:not(["+it+'="'+lt+'"]):not(['+it+'="'+st+'"])';function dt(gt,vt,bt){var _t=new XMLHttpRequest;_t.open("GET",gt,!0),_t.onreadystatechange=function(){_t.readyState==4&&(_t.status<400&&_t.responseText?vt(_t.responseText):_t.status>=400?bt(rt(_t.status,_t.statusText)):bt(nt))},_t.send(null)}function ft(gt){var vt=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(gt||"");if(vt){var bt=Number(vt[1]),_t=vt[2],xt=vt[3];return _t?xt?[bt,Number(xt)]:[bt,void 0]:[bt,bt]}}et.hooks.add("before-highlightall",function(gt){gt.selector+=", "+ct}),et.hooks.add("before-sanity-check",function(gt){var vt=gt.element;if(vt.matches(ct)){gt.code="",vt.setAttribute(it,st);var bt=vt.appendChild(document.createElement("CODE"));bt.textContent=tt;var _t=vt.getAttribute("data-src"),xt=gt.language;if(xt==="none"){var yt=(/\.(\w+)$/.exec(_t)||[,"none"])[1];xt=ot[yt]||yt}et.util.setLanguage(bt,xt),et.util.setLanguage(vt,xt);var Et=et.plugins.autoloader;Et&&Et.loadLanguages(xt),dt(_t,function(St){vt.setAttribute(it,lt);var $t=ft(vt.getAttribute("data-range"));if($t){var At=St.split(/\r\n?|\n/g),wt=$t[0],Ct=$t[1]==null?At.length:$t[1];wt<0&&(wt+=At.length),wt=Math.max(0,Math.min(wt-1,At.length)),Ct<0&&(Ct+=At.length),Ct=Math.max(0,Math.min(Ct,At.length)),St=At.slice(wt,Ct).join(` +`),vt.hasAttribute("data-start")||vt.setAttribute("data-start",String(wt+1))}bt.textContent=St,et.highlightElement(bt)},function(St){vt.setAttribute(it,ut),bt.textContent=St})}}),et.plugins.fileHighlight={highlight:function(vt){for(var bt=(vt||document).querySelectorAll(ct),_t=0,xt;xt=bt[_t++];)et.highlightElement(xt)}};var pt=!1;et.fileHighlight=function(){pt||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),pt=!0),et.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(prism);var prismExports=prism.exports;const Prism=getDefaultExportFromCjs(prismExports);function sheetForTag(j){if(j.sheet)return j.sheet;for(var _e=0;_e0?charat(characters,--position):0,column--,character===10&&(column=1,line--),character}function next(){return character=position2||token$1(character)>3?"":" "}function escaping(j,_e){for(;--_e&&next()&&!(character<48||character>102||character>57&&character<65||character>70&&character<97););return slice$6(j,caret()+(_e<6&&peek()==32&&next()==32))}function delimiter(j){for(;next();)switch(character){case j:return position;case 34:case 39:j!==34&&j!==39&&delimiter(character);break;case 40:j===41&&delimiter(j);break;case 92:next();break}return position}function commenter(j,_e){for(;next()&&j+character!==57;)if(j+character===84&&peek()===47)break;return"/*"+slice$6(_e,position-1)+"*"+from$6(j===47?j:next())}function identifier(j){for(;!token$1(peek());)next();return slice$6(j,position)}function compile(j){return dealloc(parse$1("",null,null,null,[""],j=alloc(j),0,[0],j))}function parse$1(j,_e,et,tt,rt,nt,ot,it,st){for(var lt=0,ut=0,ct=ot,dt=0,ft=0,pt=0,gt=1,vt=1,bt=1,_t=0,xt="",yt=rt,Et=nt,St=tt,$t=xt;vt;)switch(pt=_t,_t=next()){case 40:if(pt!=108&&charat($t,ct-1)==58){indexof($t+=replace$2(delimit(_t),"&","&\f"),"&\f")!=-1&&(bt=-1);break}case 34:case 39:case 91:$t+=delimit(_t);break;case 9:case 10:case 13:case 32:$t+=whitespace(pt);break;case 92:$t+=escaping(caret()-1,7);continue;case 47:switch(peek()){case 42:case 47:append$1(comment(commenter(next(),caret()),_e,et),st);break;default:$t+="/"}break;case 123*gt:it[lt++]=strlen($t)*bt;case 125*gt:case 59:case 0:switch(_t){case 0:case 125:vt=0;case 59+ut:bt==-1&&($t=replace$2($t,/\f/g,"")),ft>0&&strlen($t)-ct&&append$1(ft>32?declaration($t+";",tt,et,ct-1):declaration(replace$2($t," ","")+";",tt,et,ct-2),st);break;case 59:$t+=";";default:if(append$1(St=ruleset($t,_e,et,lt,ut,rt,it,xt,yt=[],Et=[],ct),nt),_t===123)if(ut===0)parse$1($t,_e,St,St,yt,nt,ct,it,Et);else switch(dt===99&&charat($t,3)===110?100:dt){case 100:case 108:case 109:case 115:parse$1(j,St,St,tt&&append$1(ruleset(j,St,St,0,0,rt,it,xt,rt,yt=[],ct),Et),rt,Et,ct,it,tt?yt:Et);break;default:parse$1($t,St,St,St,[""],Et,0,it,Et)}}lt=ut=ft=0,gt=bt=1,xt=$t="",ct=ot;break;case 58:ct=1+strlen($t),ft=pt;default:if(gt<1){if(_t==123)--gt;else if(_t==125&>++==0&&prev()==125)continue}switch($t+=from$6(_t),_t*gt){case 38:bt=ut>0?1:($t+="\f",-1);break;case 44:it[lt++]=(strlen($t)-1)*bt,bt=1;break;case 64:peek()===45&&($t+=delimit(next())),dt=peek(),ut=ct=strlen(xt=$t+=identifier(caret())),_t++;break;case 45:pt===45&&strlen($t)==2&&(gt=0)}}return nt}function ruleset(j,_e,et,tt,rt,nt,ot,it,st,lt,ut){for(var ct=rt-1,dt=rt===0?nt:[""],ft=sizeof(dt),pt=0,gt=0,vt=0;pt0?dt[bt]+" "+_t:replace$2(_t,/&\f/g,dt[bt])))&&(st[vt++]=xt);return node(j,_e,et,rt===0?RULESET:it,st,lt,ut)}function comment(j,_e,et){return node(j,_e,et,COMMENT,from$6(char()),substr(j,2,-2),0)}function declaration(j,_e,et,tt){return node(j,_e,et,DECLARATION,substr(j,0,tt),substr(j,tt+1,-1),tt)}function serialize(j,_e){for(var et="",tt=sizeof(j),rt=0;rt6)switch(charat(j,_e+1)){case 109:if(charat(j,_e+4)!==45)break;case 102:return replace$2(j,/(.+:)(.+)-([^]+)/,"$1"+WEBKIT+"$2-$3$1"+MOZ+(charat(j,_e+3)==108?"$3":"$2-$3"))+j;case 115:return~indexof(j,"stretch")?prefix$1(replace$2(j,"stretch","fill-available"),_e)+j:j}break;case 4949:if(charat(j,_e+1)!==115)break;case 6444:switch(charat(j,strlen(j)-3-(~indexof(j,"!important")&&10))){case 107:return replace$2(j,":",":"+WEBKIT)+j;case 101:return replace$2(j,/(.+:)([^;!]+)(;|!.+)?/,"$1"+WEBKIT+(charat(j,14)===45?"inline-":"")+"box$3$1"+WEBKIT+"$2$3$1"+MS+"$2box$3")+j}break;case 5936:switch(charat(j,_e+11)){case 114:return WEBKIT+j+MS+replace$2(j,/[svh]\w+-[tblr]{2}/,"tb")+j;case 108:return WEBKIT+j+MS+replace$2(j,/[svh]\w+-[tblr]{2}/,"tb-rl")+j;case 45:return WEBKIT+j+MS+replace$2(j,/[svh]\w+-[tblr]{2}/,"lr")+j}return WEBKIT+j+MS+j+j}return j}var prefixer=function j(_e,et,tt,rt){if(_e.length>-1&&!_e.return)switch(_e.type){case DECLARATION:_e.return=prefix$1(_e.value,_e.length);break;case KEYFRAMES:return serialize([copy$2(_e,{value:replace$2(_e.value,"@","@"+WEBKIT)})],rt);case RULESET:if(_e.length)return combine(_e.props,function(nt){switch(match$2(nt,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize([copy$2(_e,{props:[replace$2(nt,/:(read-\w+)/,":"+MOZ+"$1")]})],rt);case"::placeholder":return serialize([copy$2(_e,{props:[replace$2(nt,/:(plac\w+)/,":"+WEBKIT+"input-$1")]}),copy$2(_e,{props:[replace$2(nt,/:(plac\w+)/,":"+MOZ+"$1")]}),copy$2(_e,{props:[replace$2(nt,/:(plac\w+)/,MS+"input-$1")]})],rt)}return""})}},defaultStylisPlugins=[prefixer],createCache=function j(_e){var et=_e.key;if(et==="css"){var tt=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(tt,function(gt){var vt=gt.getAttribute("data-emotion");vt.indexOf(" ")!==-1&&(document.head.appendChild(gt),gt.setAttribute("data-s",""))})}var rt=_e.stylisPlugins||defaultStylisPlugins,nt={},ot,it=[];ot=_e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+et+' "]'),function(gt){for(var vt=gt.getAttribute("data-emotion").split(" "),bt=1;btNumber.isNaN(Number(j))).map(([j,_e])=>[j,`var(${_e})`]));Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s(?:\s*[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>/]+/,inside:{namespace:/^[^\s>/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity;Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup;Prism.hooks.add("wrap",function(j){j.type==="entity"&&j.attributes&&(j.attributes.title=j.content.replace(/&/,"&"))});Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function j(_e,et){const tt={};tt["language-"+et]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[et]},tt.cdata=/^$/i;const rt={"included-cdata":{pattern://i,inside:tt}};rt["language-"+et]={pattern:/[\s\S]+/,inside:Prism.languages[et]};const nt={};nt[_e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return _e}),"i"),lookbehind:!0,greedy:!0,inside:rt},Prism.languages.insertBefore("markup","cdata",nt)}});Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(j,_e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+j+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[_e,"language-"+_e],inside:Prism.languages[_e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}});Prism.languages.html=Prism.languages.markup;Prism.languages.mathml=Prism.languages.markup;Prism.languages.svg=Prism.languages.markup;Prism.languages.xml=Prism.languages.extend("markup",{});Prism.languages.ssml=Prism.languages.xml;Prism.languages.atom=Prism.languages.xml;Prism.languages.rss=Prism.languages.xml;const envVars="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",commandAfterHeredoc={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:void 0},insideString={bash:commandAfterHeredoc,environment:{pattern:RegExp("\\$"+envVars),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!/]|##?|%%?|\^\^?|,,?/,punctuation:/[[\]]/,environment:{pattern:RegExp("(\\{)"+envVars),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};Prism.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+envVars),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:insideString},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:commandAfterHeredoc}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:insideString},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:insideString.entity}}],environment:{pattern:RegExp("\\$?"+envVars),alias:"constant"},variable:insideString.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}};commandAfterHeredoc.inside=Prism.languages.bash;const toBeCopied=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],inside$1=insideString.variable[1].inside;for(let j=0;j>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/});Prism.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}});Prism.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},Prism.languages.c.string],char:Prism.languages.c.char,comment:Prism.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:Prism.languages.c}}}});Prism.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/});delete Prism.languages.c.boolean;const string$1=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+string$1.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+string$1.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+string$1.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+string$1.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:string$1,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/};Prism.languages.css.atrule.inside.rest=Prism.languages.css;const markup=Prism.languages.markup;markup&&(markup.tag.addInlined("style","css"),markup.tag.addAttribute("style","css"));const keyword=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,modName=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return keyword.source});Prism.languages.cpp=Prism.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return keyword.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/});Prism.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return modName})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}});Prism.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:Prism.languages.cpp}}}});Prism.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});Prism.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:Prism.languages.extend("cpp",{})}});Prism.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},Prism.languages.cpp["base-clause"]);const ID="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!)*>/.source].join("|")+")",IDInside={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:Prism.languages.markup}};function withID(j,_e){return RegExp(j.replace(//g,function(){return ID}),_e)}Prism.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:withID(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:IDInside},"attr-value":{pattern:withID(/(=[ \t\r\n]*)/.source),lookbehind:!0,greedy:!0,inside:IDInside},"attr-name":{pattern:withID(/([[;, \t\r\n])(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:IDInside},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ewc_]|[ns][ew]?)(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:withID(/(^|[^-.\w\x80-\uFFFF\\])/.source),lookbehind:!0,greedy:!0,inside:IDInside},operator:/[=:]|-[->]/,punctuation:/[[\]{};,]/};Prism.languages.gv=Prism.languages.dot;Prism.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};const PREFIXES={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(PREFIXES).forEach(function(j){const _e=PREFIXES[j],et=[];/^\w+$/.test(j)||et.push(/\w+/.exec(j)[0]),j==="diff"&&et.push("bold"),Prism.languages.diff[j]={pattern:RegExp("^(?:["+_e+`].*(?:\r +?| +|(?![\\s\\S])))+`,"m"),alias:et,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(j)[0]}}}});Object.defineProperty(Prism.languages.diff,"PREFIXES",{value:PREFIXES});Prism.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m};Prism.languages.go=Prism.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/});Prism.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}});delete Prism.languages.go["class-name"];const keywords=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,classNamePrefix=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,className={pattern:RegExp(/(^|[^\w.])/.source+classNamePrefix+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};Prism.languages.java=Prism.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[className,{pattern:RegExp(/(^|[^\w.])/.source+classNamePrefix+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:className.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+classNamePrefix+/[A-Z]\w*\b/.source),lookbehind:!0,inside:className.inside}],keyword:keywords,function:[Prism.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/});Prism.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}});Prism.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":className,keyword:keywords,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+classNamePrefix+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:className.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+classNamePrefix+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:className.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,function(){return keywords.source})),lookbehind:!0,inside:{punctuation:/\./}}});Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});if(Prism.languages.markup){const j=Prism.languages.markup;j.tag.addInlined("script","javascript"),j.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")}Prism.languages.js=Prism.languages.javascript;Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}};Prism.languages.webmanifest=Prism.languages.json;const javascript=Prism.util.clone(Prism.languages.javascript),space=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,braces=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source;let spread=/(?:\{*\.{3}(?:[^{}]|)*\})/.source;function re$2(j,_e){const et=j.replace(//g,()=>space).replace(//g,()=>braces).replace(//g,()=>spread);return RegExp(et,_e)}spread=re$2(spread).source;Prism.languages.jsx=Prism.languages.extend("markup",javascript);const jsx=Prism.languages.jsx;jsx.tag.pattern=re$2(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source);jsx.tag.inside.tag.pattern=/^<\/?[^\s>/]*/;jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/;jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/;jsx.tag.inside.comment=javascript.comment;Prism.languages.insertBefore("inside","attr-name",{spread:{pattern:re$2(//.source),inside:Prism.languages.jsx}},jsx.tag);Prism.languages.insertBefore("inside","special-attr",{script:{pattern:re$2(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:Prism.languages.jsx}}},jsx.tag);const stringifyToken=function(j){return j?typeof j=="string"?j:typeof j.content=="string"?j.content:j.content.map(stringifyToken).join(""):""},walkTokens=function(j){const _e=[];for(let et=0;et0&&_e[_e.length-1].tagName===stringifyToken(nt[0].content[1])&&_e.pop():nt[nt.length-1].content==="/>"||_e.push({tagName:stringifyToken(nt[0].content[1]),openedBraces:0}):_e.length>0&&tt.type==="punctuation"&&tt.content==="{"?_e[_e.length-1].openedBraces+=1:_e.length>0&&_e[_e.length-1].openedBraces>0&&tt.type==="punctuation"&&tt.content==="}"?_e[_e.length-1].openedBraces-=1:rt=!0}if((rt||typeof tt=="string")&&_e.length>0&&_e[_e.length-1].openedBraces===0){let nt=stringifyToken(tt);et0&&(typeof j[et-1]=="string"||j[et-1].type==="plain-text")&&(nt=stringifyToken(j[et-1])+nt,j.splice(et-1,1),et-=1),j[et]=new Prism.Token("plain-text",nt,void 0,nt)}typeof tt!="string"&&tt.content&&typeof tt.content!="string"&&walkTokens(tt.content)}};Prism.hooks.add("after-tokenize",function(j){j.language!=="jsx"&&j.language!=="tsx"||walkTokens(j.tokens)});Prism.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/};const inner=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function createInline(j){const _e=j.replace(//g,function(){return inner});return RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+_e+")")}const tableCell=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,tableRow=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return tableCell}),tableLine=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;Prism.languages.markdown=Prism.languages.extend("markup",{});Prism.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:Prism.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+tableRow+tableLine+"(?:"+tableRow+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+tableRow+tableLine+")(?:"+tableRow+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(tableCell),inside:Prism.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+tableRow+")"+tableLine+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+tableRow+"$"),inside:{"table-header":{pattern:RegExp(tableCell),alias:"important",inside:Prism.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[[\]!:]|[<>]/},alias:"url"},bold:{pattern:createInline(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:createInline(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:createInline(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:createInline(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}});["url","bold","italic","strike"].forEach(function(j){["url","bold","italic","strike","code-snippet"].forEach(function(_e){if(j!==_e){const et=Prism.languages.markdown;et[j].inside.content.inside[_e]=et[_e]}})});Prism.hooks.add("after-tokenize",function(j){if(j.language!=="markdown"&&j.language!=="md")return;function _e(et){if(!(!et||typeof et=="string"))for(let tt=0,rt=et.length;tt",quot:'"'},fromCodePoint=String.fromCodePoint||String.fromCharCode;function textContent(j){let _e=j.replace(tagPattern,"");return _e=_e.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(et,tt){if(tt=tt.toLowerCase(),tt[0]==="#"){let rt;return tt[1]==="x"?rt=parseInt(tt.slice(2),16):rt=Number(tt.slice(1)),fromCodePoint(rt)}else{const rt=KNOWN_ENTITY_NAMES[tt];return rt||et}}),_e}Prism.languages.md=Prism.languages.markdown;Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/};Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python;Prism.languages.py=Prism.languages.python;Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}});Prism.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]});Prism.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/});Prism.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}});Prism.languages.scss.atrule.inside.rest=Prism.languages.scss;Prism.languages.sass=Prism.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}});Prism.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}});delete Prism.languages.sass.atrule;const variable=/\$[-\w]+|#\{\$[-\w]+\}/,operator=[/[+*/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];Prism.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable,operator}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable,operator,important:Prism.languages.sass.important}}});delete Prism.languages.sass.property;delete Prism.languages.sass.important;Prism.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}});Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/};const unit$1={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},number$3={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},inside={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:unit$1,number:number$3,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:unit$1,boolean:/\b(?:false|true)\b/,operator:[/~|[+!/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:number$3,punctuation:/[{}()[\];:,]/};inside.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:inside}};inside.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:inside}};Prism.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:inside}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:inside}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:inside}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:inside.interpolation}},rest:inside}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:inside.interpolation,comment:inside.comment,punctuation:/[{},]/}},func:inside.func,string:inside.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:inside.interpolation,punctuation:/[{}()[\];:.]/};Prism.languages.typescript=Prism.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/});Prism.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[{*]|$))/);delete Prism.languages.typescript.parameter;delete Prism.languages.typescript["literal-property"];const typeInside=Prism.languages.extend("typescript",{});delete typeInside["class-name"];Prism.languages.typescript["class-name"].inside=typeInside;Prism.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:typeInside}}}});Prism.languages.ts=Prism.languages.typescript;const typescript=Prism.util.clone(Prism.languages.typescript);Prism.languages.tsx=Prism.languages.extend("jsx",typescript);delete Prism.languages.tsx.parameter;delete Prism.languages.tsx["literal-property"];const tag$1=Prism.languages.tsx.tag;tag$1.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+tag$1.pattern.source+")",tag$1.pattern.flags);tag$1.lookbehind=!0;Prism.languages["visual-basic"]={comment:{pattern:/(?:['‘’]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\b_[ \t]*(?:\r\n?|\n)|.)+/i,alias:"property",greedy:!0},string:{pattern:/\$?["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,greedy:!0},date:{pattern:/#[ \t]*(?:\d+([/-])\d+\1\d+(?:[ \t]+(?:\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?))?|\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?)[ \t]*#/i,alias:"number"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:[FRD]|U?[ILS])?/i,boolean:/\b(?:False|Nothing|True)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:/[+\-*/\\^<=>&#@$%!]|\b_(?=[ \t]*[\r\n])/,punctuation:/[{}().,:?]/};Prism.languages.vb=Prism.languages["visual-basic"];Prism.languages.vba=Prism.languages["visual-basic"];Prism.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const anchorOrAlias=/[*&][^\s[\]{},]+/,tag=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,properties="(?:"+tag.source+"(?:[ ]+"+anchorOrAlias.source+")?|"+anchorOrAlias.source+"(?:[ ]+"+tag.source+")?)",plainKey=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,()=>/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source),string$2=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function createValuePattern(j,_e){const et=(_e||"").replace(/m/g,"")+"m",tt=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return properties}).replace(/<>/g,function(){return j});return RegExp(tt,et)}Prism.languages.yaml={scalar:{pattern:RegExp(/([-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return properties})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return properties}).replace(/<>/g,function(){return"(?:"+plainKey+"|"+string$2+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:createValuePattern(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:createValuePattern(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:createValuePattern(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:createValuePattern(string$2),lookbehind:!0,greedy:!0},number:{pattern:createValuePattern(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag,important:anchorOrAlias,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./};Prism.languages.yml=Prism.languages.yaml;const vscDarkTheme={plain:{color:"#d4d4d4",backgroundColor:"#1e1e1e"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment","punctuation"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin"],style:{color:"rgb(79, 193, 255)"}},{types:["number","variable","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["operator"],style:{color:"rgb(212, 212, 212)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["tag","changed","function","keyword"],style:{color:"rgb(86, 156, 214)"}},{types:["attr-name"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value"],style:{color:"rgb(206, 145, 120)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}}]},vscLightTheme={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},vars={border:`1px solid var(${TokenNames.colorBorderCodeLineno}, hsla(0deg, 0%, 80%, 0.8))`,highlightBackground:`var(${TokenNames.colorBgCodeHighlight}, hsla(30deg, 90%, 50%, 0.3))`,fontSizeCode:`var(${CommonTokenNames.fontSizeCode}, 14px)`,lineHeightCode:`var(${CommonTokenNames.lineHeightCode}, 1.6)`},classes$2={container:css({MozOsxFontSmoothing:"grayscale",WebkitFontSmoothing:"antialiased",display:"flex",alignItems:"stretch",overflow:"hidden",width:"100%",fontSize:vars.fontSizeCode,lineHeight:vars.lineHeightCode,padding:0,transition:"max-height 0.5s ease-in-out",tabSize:2,fontSmooth:"always",whiteSpace:"pre",wordBreak:"keep-all",wordSpacing:"normal",wordWrap:"normal"}),line:css({boxSizing:"border-box",display:"flex",minWidth:"fit-content",width:"100%",padding:"0 6px",letterSpacing:"inherit",fontSize:vars.fontSizeCode,lineHeight:vars.lineHeightCode,height:vars.lineHeightCode,overflowWrap:"inherit",tabSize:"inherit",textIndent:"inherit",textRendering:"inherit",textTransform:"inherit",whiteSpace:"inherit",wordBreak:"inherit",wordSpacing:"inherit",wordWrap:"inherit"}),linenoLine:css({justifyContent:"flex-end",padding:"0 4px"}),highlightLine:css({background:vars.highlightBackground,borderColor:"transparent"}),lineno:css({flex:"0 0 auto",overflow:"hidden",boxSizing:"border-box",padding:"0.5rem 0",cursor:"default",fontSize:vars.fontSizeCode,lineHeight:vars.lineHeightCode,userSelect:"none",textAlign:"right",borderRight:vars.border}),codes:css({flex:"1 1 auto",overflow:"overlay",boxSizing:"border-box",padding:"0.5rem 0",fontSize:vars.fontSizeCode,lineHeight:vars.lineHeightCode}),codeWrapper:css({minWidth:"100%",width:"fit-content"}),codeLine:css({boxSizing:"border-box",padding:"0 12px"})},languageMap={js:"javascript",ts:"typescript"},themeToDict=(j,_e)=>{j=languageMap[j]??j;const{plain:et}=_e,tt=Object.create(null),rt=_e.styles.reduce((nt,ot)=>{const{types:it,style:st,languages:lt}=ot;if(lt&&!lt.includes(j))return nt;for(const ut of it){const ct={...nt[ut],...st};nt[ut]=ct}return nt},tt);return rt.root=et,rt.plain={...et,backgroundColor:void 0},rt},newlineRegex=/\r\n|\r|\n/,normalizeEmptyLines=j=>{j.length===0?j.push({types:["plain"],content:` +`,empty:!0}):j.length===1&&j[0].content===""&&(j[0].content=` +`,j[0].empty=!0)},appendTypes=(j,_e)=>{const et=j.length;return et>0&&j[et-1]===_e?j:j.concat(_e)},normalizeTokens=j=>{const _e=[[]],et=[j],tt=[0],rt=[j.length];let nt=[];const ot=[nt];for(let it=0;it>-1;--it){for(let st=0;(st=tt[it]++)0?ut:["plain"],lt=dt):(ut=appendTypes(ut,dt.type),dt.alias&&(ut=appendTypes(ut,dt.alias)),lt=dt.content),typeof lt!="string"){it+=1,_e.push(ut),et.push(lt),tt.push(0),rt.push(lt.length);continue}const ft=lt.split(newlineRegex),pt=ft.length;nt.push({types:ut,content:ft[0]});for(let gt=1;gt{var nt,ot;const tt=et.target;if(tt==null)return;const{scrollTop:rt}=tt;(ot=(nt=this.linenoRef.current)==null?void 0:nt.scrollTo)==null||ot.call(nt,0,rt)});const tt=themeToDict(et.language,et.theme),rt=this.tokenize(et.code,et.language),nt=et.showLineno?`${Math.max(2,String(rt.length).length)*1.1}em`:void 0;this.state={linenoWidth:nt,themeDict:tt,tokens:rt},this.linenoRef={current:null}}shouldComponentUpdate(et,tt){const rt=this.props,nt=this.state;return nt.linenoWidth!==tt.linenoWidth||nt.themeDict!==tt.themeDict||nt.tokens!==tt.tokens||rt.code!==et.code||rt.codesRef!==et.codesRef||rt.collapsed!==et.collapsed||rt.language!==et.language||rt.maxLines!==et.maxLines||rt.showLineno!==et.showLineno||!isEqual$2(rt.theme,et.theme)||!isEqual$2(rt.highlightLinenos,et.highlightLinenos)}render(){const{linenoRef:et,onScroll:tt}=this,{codesRef:rt,collapsed:nt,highlightLinenos:ot,language:it,maxLines:st,showLineno:lt=!0}=this.props,{linenoWidth:ut,tokens:ct}=this.state,dt=ct.length,ft=st>0?Math.min(st,dt):dt,pt={...this.state.themeDict.root,backgroundColor:"none",...nt?{maxHeight:0}:{maxHeight:`calc(calc(${vars.lineHeightCode} * ${ft+.8}) + 6px)`,minHeight:"100%"}};return React.createElement("div",{className:cx(classes$2.container,it?`prism-code language-${it}`:"prism-code"),style:pt},lt&&React.createElement("div",{key:"linenos",className:classes$2.lineno,style:{width:ut},ref:et},React.createElement(HighlightLinenos,{countOfLines:dt,highlightLinenos:ot})),React.createElement("div",{key:"codes",ref:rt,className:classes$2.codes,onScroll:tt},React.createElement("div",{className:classes$2.codeWrapper},ct.map((gt,vt)=>{const bt=ot.includes(vt+1),_t=this.getLineProps({line:gt});return React.createElement("div",{..._t,key:vt,className:cx(classes$2.line,classes$2.codeLine,bt&&classes$2.highlightLine,_t.className)},gt.map((xt,yt)=>React.createElement("span",{...this.getTokenProps({token:xt}),key:yt})))}))))}componentDidMount(){var et,tt;(tt=(et=this.props).onLinenoWidthChange)==null||tt.call(et,this.state.linenoWidth)}componentDidUpdate(et,tt){var it,st;const rt=this.props,nt=this.state,ot=rt.language!==et.language||!isEqual$2(rt.theme,et.theme)?themeToDict(rt.language,rt.theme):nt.themeDict;if(rt.code!==et.code||rt.language!==et.language||ot!==tt.themeDict){const lt=this.tokenize(rt.code,rt.language),ut=rt.showLineno?`${Math.max(2,String(lt.length).length)*1.1}em`:void 0;this.setState({linenoWidth:ut,themeDict:ot,tokens:lt})}nt.linenoWidth!==tt.linenoWidth&&((st=(it=this.props).onLinenoWidthChange)==null||st.call(it,nt.linenoWidth))}tokenize(et,tt){const rt=tt?Prism.languages[tt]:void 0;if(rt){const nt={code:et,grammar:rt,language:tt,tokens:[]};return Prism.hooks.run("before-tokenize",nt),nt.tokens=Prism.tokenize(nt.code,nt.grammar),Prism.hooks.run("after-tokenize",nt),normalizeTokens(nt.tokens)}else return normalizeTokens([et])}getLineProps(et){const{themeDict:tt}=this.state,{key:rt,className:nt,style:ot,line:it,...st}=et,lt={...st,className:"token-line",style:void 0,key:void 0};return tt!==void 0&&(lt.style=tt.plain),ot!==void 0&&(lt.style=lt.style!==void 0?{...lt.style,...ot}:ot),rt!==void 0&&(lt.key=rt),nt&&(lt.className+=` ${nt}`),lt}getStyleForToken({types:et,empty:tt}){const{themeDict:rt}=this.state,nt=et.length;if(rt===void 0)return;if(nt===1&&et[0]==="plain")return tt?{display:"inline-block"}:void 0;if(nt===1&&!tt)return rt[et[0]];const ot=tt?{display:"inline-block"}:{};for(const it of et){const st=rt[it];Object.assign(ot,st)}return ot}getTokenProps(et){const{key:tt,className:rt,style:nt,token:ot,...it}=et,st={...it,className:`token ${ot.types.join(" ")}`,children:ot.content,style:this.getStyleForToken(ot),key:void 0};return nt!==void 0&&(st.style=st.style!==void 0?{...st.style,...nt}:nt),tt!==void 0&&(st.key=tt),rt&&(st.className+=` ${rt}`),st}}zr(HighlightContent,"displayName","HighlightContent"),zr(HighlightContent,"propTypes",{code:PropTypes$1.string.isRequired,codesRef:PropTypes$1.any,collapsed:PropTypes$1.bool.isRequired,language:PropTypes$1.string.isRequired,maxLines:PropTypes$1.number.isRequired,showLineno:PropTypes$1.bool.isRequired,theme:PropTypes$1.object.isRequired,highlightLinenos:PropTypes$1.array.isRequired,onLinenoWidthChange:PropTypes$1.func});class CodeHighlighter extends React.PureComponent{render(){const{lang:_e,value:et,darken:tt=!0,highlightLinenos:rt=[],maxLines:nt=-1,collapsed:ot=!1,showLineNo:it=!0,codesRef:st,onLinenoWidthChange:lt}=this.props,ut=this.props.theme??(tt?vscDarkTheme:vscLightTheme);return React.createElement(HighlightContent,{code:et,codesRef:st,collapsed:ot,highlightLinenos:rt,language:_e??"",maxLines:nt,showLineno:it,theme:ut,onLinenoWidthChange:lt})}}zr(CodeHighlighter,"displayName","YozoraCodeHighlighter"),zr(CodeHighlighter,"propTypes",{codesRef:PropTypes$1.any,collapsed:PropTypes$1.bool,darken:PropTypes$1.bool,highlightLinenos:PropTypes$1.arrayOf(PropTypes$1.number),lang:PropTypes$1.string,maxLines:PropTypes$1.number,onLinenoWidthChange:PropTypes$1.func,showLineNo:PropTypes$1.bool,theme:PropTypes$1.any,value:PropTypes$1.string.isRequired});const CopyButton$1=j=>{const{className:_e,delay:et=1500,calcContentForCopy:tt}=j,[rt,nt]=React.useState(0),ot=useStyles$g(),it=rt!==0,st=()=>{if(rt===0){nt(1);try{const lt=tt();copy$4(lt),nt(2)}catch{nt(3)}}};return React.useEffect(()=>{if(rt===2||rt===3){const lt=setTimeout(()=>nt(0),et);return()=>{lt&&clearTimeout(lt)}}},[rt,et]),jsxRuntimeExports.jsx(Button$2,{appearance:"transparent",className:mergeClasses(ot.copyButton,_e),disabled:it,as:"button",icon:rt===0?jsxRuntimeExports.jsx(Copy20Regular,{}):jsxRuntimeExports.jsx(CopyArrowRight20Regular,{}),onClick:st})},useStyles$g=makeStyles({copyButton:{cursor:"pointer"}});class CodeRendererInner extends React.PureComponent{constructor(){super(...arguments),this.calcContentForCopy=()=>this.props.value}render(){const{calcContentForCopy:_e}=this,{darken:et,lang:tt,value:rt,preferCodeWrap:nt,showCodeLineno:ot}=this.props;return jsxRuntimeExports.jsxs("code",{className:codeCls,"data-wrap":nt,children:[jsxRuntimeExports.jsx(CodeHighlighter,{lang:tt,value:rt,collapsed:!1,showLineNo:ot&&!nt,darken:et}),jsxRuntimeExports.jsx("div",{className:copyBtnCls,children:jsxRuntimeExports.jsx(CopyButton$1,{calcContentForCopy:_e})})]})}}const copyBtnCls=mergeStyles$1({position:"absolute",right:"4px",top:"4px",display:"none"}),codeCls=mergeStyles$1(astClasses.code,{position:"relative",display:"block",boxSizing:"border-box",borderRadius:"4px",margin:"0px 0px 1.25em 0px",backgroundColor:"var(--colorBgCode)",[`&:hover > .${copyBtnCls}`]:{display:"inline-block"},'&&[data-wrap="true"] > div':{whiteSpace:"pre-wrap",wordBreak:"keep-all"}}),CodeRenderer=j=>{const{lang:_e}=j,et=j.value.replace(/[\r\n]+$/,""),{viewmodel:tt}=useNodeRendererContext(),rt=useStateValue(tt.preferCodeWrap$),nt=useStateValue(tt.showCodeLineno$),it=useStateValue(tt.themeScheme$)==="darken";return jsxRuntimeExports.jsx(CodeRendererInner,{darken:it,lang:_e??"text",value:et,preferCodeWrap:rt,showCodeLineno:nt})};class DeleteRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("del",{className:cls$9,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$9=mergeStyles$1(astClasses.delete,{marginRight:"4px",color:"var(--colorDelete)",fontStyle:"italic",textDecoration:"line-through"});class EmphasisRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("em",{className:cls$8,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$8=mergeStyles$1(astClasses.emphasis,{fontStyle:"italic",margin:"0 6px 0 2px"});class HeadingRenderer extends React.Component{shouldComponentUpdate(_e){const et=this.props;return et.depth!==_e.depth||et.identifier!==_e.identifier||et.children!==_e.children||et.linkIcon!==_e.linkIcon}render(){const{depth:_e,identifier:et,children:tt,linkIcon:rt="¶"}=this.props,nt=et==null?void 0:encodeURIComponent(et),ot="h"+_e,it=ot,st=mergeStyles$1(astClasses.heading,classes$1.heading,classes$1[ot]);return jsxRuntimeExports.jsxs(it,{id:nt,className:st,children:[jsxRuntimeExports.jsx("p",{className:classes$1.content,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:tt})}),et&&jsxRuntimeExports.jsx("a",{className:classes$1.anchor,href:"#"+nt,children:rt})]})}}const anchorCls=mergeStyles$1({flex:"0 0 3rem",paddingLeft:"0.5rem",color:"var(--colorLink)",opacity:0,transition:"color 0.2s ease-in-out, opacity 0.2s ease-in-out",userSelect:"none",textDecoration:"none","> svg":{overflow:"hidden",display:"inline-block",verticalAlign:"middle",fill:"currentColor"}}),classes$1=mergeStyleSets({heading:{display:"flex",alignItems:"center",justifyContent:"flex-start",padding:"0px",margin:"0px 0px 1.25em 0px",marginBottom:"1em",lineHeight:"1.25",fontFamily:"var(--fontFamilyHeading)",color:"var(--colorHeading)",[`&:active .${anchorCls}`]:{opacity:.8,color:"var(--colorLinkActive)"},[`&&:hover .${anchorCls}`]:{opacity:.8,color:"var(--colorLinkHover)"}},anchor:anchorCls,content:{flex:"0 1 auto",minWidth:0,margin:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"pre-wrap",lineHeight:"1.7"},h1:{padding:"0.3rem 0",borderBottom:"1px solid var(--colorBorderHeading)",fontSize:"2rem",fontStyle:"normal",fontWeight:500},h2:{padding:"0.3rem 0",borderBottom:"1px solid var(--colorBorderHeading)",fontSize:"1.5rem",fontStyle:"normal",fontWeight:500,marginBottom:"0.875rem"},h3:{fontSize:"1.25rem",fontStyle:"normal",fontWeight:500},h4:{fontSize:"1rem",fontStyle:"normal",fontWeight:500},h5:{fontSize:"0.875rem",fontStyle:"normal",fontWeight:500},h6:{fontSize:"0.85rem",fontStyle:"normal",fontWeight:500}});class ImageRendererInner extends React.Component{shouldComponentUpdate(_e){const et=this.props;return et.src!==_e.src||et.alt!==_e.alt||et.title!==_e.title||et.srcSet!==_e.srcSet||et.sizes!==_e.sizes||et.loading!==_e.loading||et.className!==_e.className}render(){const{src:_e,alt:et,title:tt,srcSet:rt,sizes:nt,loading:ot,className:it}=this.props;return jsxRuntimeExports.jsxs("figure",{className:`${it} ${cls$7}`,children:[jsxRuntimeExports.jsx("img",{alt:et,src:_e,title:tt,srcSet:rt,sizes:nt,loading:ot}),tt&&jsxRuntimeExports.jsx("figcaption",{children:tt})]})}}const cls$7=mergeStyles$1({boxSizing:"border-box",maxWidth:"80%",display:"flex",flexDirection:"column",alignItems:"center",margin:0,"> img":{flex:"1 0 auto",boxSizing:"border-box",maxWidth:"100%",border:"1px solid var(--colorBorderImage)",boxShadow:"0 0 20px 1px rgba(126, 125, 150, 0.6)"},"> figcaption":{textAlign:"center",fontStyle:"italic",fontSize:"1em",color:"var(--colorImageTitle)"}}),ImageRenderer=j=>{const{url:_e,alt:et,title:tt,srcSet:rt,sizes:nt,loading:ot}=j;return jsxRuntimeExports.jsx(ImageRendererInner,{alt:et,src:_e,title:tt,srcSet:rt,sizes:nt,loading:ot,className:astClasses.image})},ImageReferenceRenderer=j=>{const{viewmodel:_e}=useNodeRendererContext(),et=useStateValue(_e.definitionMap$),{alt:tt,srcSet:rt,sizes:nt,loading:ot}=j,it=et[j.identifier],st=(it==null?void 0:it.url)??"",lt=it==null?void 0:it.title;return jsxRuntimeExports.jsx(ImageRendererInner,{alt:tt,src:st,title:lt,srcSet:rt,sizes:nt,loading:ot,className:astClasses.imageReference})};class InlineCodeRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.value!==_e.value}render(){return jsxRuntimeExports.jsx("code",{className:cls$6,children:this.props.value})}}const cls$6=mergeStyles$1(astClasses.inlineCode,{padding:"1px 4px",borderRadius:"4px",margin:0,background:"hsla(210deg, 15%, 60%, 0.15)",lineHeight:"1.375",color:"var(--colorInlineCode)",fontFamily:"var(--fontFamilyCode)",fontSize:"min(1rem, 18px)",fontWeight:500});class LinkRendererInner extends React.Component{shouldComponentUpdate(_e){const et=this.props;return et.url!==_e.url||et.title!==_e.title||et.childNodes!==_e.childNodes||et.className!==_e.className}render(){const{url:_e,title:et,childNodes:tt,className:rt}=this.props;return jsxRuntimeExports.jsx("a",{className:mergeStyles$1(cls$5,rt),href:_e,title:et,rel:"noopener, noreferrer",target:"_blank",children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:tt})})}}const cls$5=mergeStyles$1({padding:"0.2rem 0",color:"var(--colorLink)",textDecoration:"none",background:"linear-gradient(90deg, hsla(358deg, 100%, 62%, 0.8), hsla(048deg, 100%, 50%, 0.8), hsla(196deg, 100%, 53%, 0.8))",backgroundSize:"0 3px",backgroundRepeat:"no-repeat",backgroundPosition:"50% 100%",transition:"all 0.3s ease-in-out","&:active":{color:"var(--colorLinkActive)"},"&&:hover":{color:"var(--colorLinkHover)",backgroundSize:"100% 3px",backgroundPositionX:0},"&:visited":{color:"var(--colorLinkVisited)"}}),LinkRenderer=j=>{const{url:_e,title:et,children:tt}=j;return jsxRuntimeExports.jsx(LinkRendererInner,{url:_e,title:et,childNodes:tt,className:astClasses.link})},LinkReferenceRenderer=j=>{const{viewmodel:_e}=useNodeRendererContext(),tt=useStateValue(_e.definitionMap$)[j.identifier],rt=(tt==null?void 0:tt.url)??"",nt=tt==null?void 0:tt.title;return jsxRuntimeExports.jsx(LinkRendererInner,{url:rt,title:nt,childNodes:j.children,className:astClasses.linkReference})};class ListRenderer extends React.Component{shouldComponentUpdate(_e){const et=this.props;return et.ordered!==_e.ordered||et.orderType!==_e.orderType||et.start!==_e.start||et.children!==_e.children}render(){const{ordered:_e,orderType:et,start:tt,children:rt}=this.props;return _e?jsxRuntimeExports.jsx("ol",{className:cls$4,type:et,start:tt,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:rt})}):jsxRuntimeExports.jsx("ul",{className:cls$4,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:rt})})}}const cls$4=mergeStyles$1(astClasses.list,{padding:"0px",margin:"0 0 1em 2em",lineHeight:"2","> :last-child":{marginBottom:"0px"}});class ListItemRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("li",{className:cls$3,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$3=mergeStyles$1(astClasses.listItem,{position:"relative",padding:0,margin:0,"> :last-child":{marginBottom:0}});class ParagraphRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return _e.some(tt=>tt.type===ImageType$1||tt.type===ImageReferenceType)?jsxRuntimeExports.jsx("div",{className:paragraphDisplayCls,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})}):jsxRuntimeExports.jsx("p",{className:paragraphCls,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const paragraphCls=mergeStyles$1(astClasses.paragraph,{overflow:"hidden",padding:0,margin:"0px 0px 1.25em 0px",marginBottom:"1em",lineHeight:"1.8",hyphens:"auto",wordBreak:"normal",letterSpacing:"1px",overflowWrap:"break-word","> :last-child":{marginBottom:0}}),paragraphDisplayCls=mergeStyles$1(paragraphCls,{display:"flex",alignItems:"center",justifyContent:"center",padding:"1rem 0",margin:0});class StrongRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("strong",{className:cls$2,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$2=mergeStyles$1(astClasses.strong,{fontWeight:600});class TableRenderer extends React.Component{shouldComponentUpdate(_e){const et=this.props;return!isEqual$2(et.columns,_e.columns)||!isEqual$2(et.children,_e.children)}render(){const{columns:_e,children:et}=this.props,tt=_e.map(ot=>ot.align??void 0),[rt,...nt]=et.map(ot=>ot.children.map((it,st)=>jsxRuntimeExports.jsx(NodesRenderer,{nodes:it.children},st)));return jsxRuntimeExports.jsxs("table",{className:cls$1,children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsx("tr",{children:rt.map((ot,it)=>jsxRuntimeExports.jsx(Th,{align:tt[it],children:ot},it))})}),jsxRuntimeExports.jsx("tbody",{children:nt.map((ot,it)=>jsxRuntimeExports.jsx("tr",{children:ot.map((st,lt)=>jsxRuntimeExports.jsx("td",{align:tt[lt],children:st},lt))},it))})]})}}class Th extends React.Component{constructor(_e){super(_e),this.ref={current:null}}shouldComponentUpdate(_e){const et=this.props;return et.align!==_e.align||et.children!==_e.children}render(){const{align:_e,children:et}=this.props;return jsxRuntimeExports.jsx("th",{ref:this.ref,align:_e,children:et})}componentDidMount(){const _e=this.ref.current;_e&&_e.setAttribute("title",_e.innerText)}componentDidUpdate(){const _e=this.ref.current;_e&&_e.setAttribute("title",_e.innerText)}}const cls$1=mergeStyles$1(astClasses.table,{display:"block",overflow:"auto",width:"max-content",maxWidth:"100%",padding:0,borderCollapse:"collapse",borderRadius:"6px",borderSpacing:"0px",border:"1px solid var(--colorBorderTable)",margin:"0 auto 1.25em",lineHeight:"1.6","> thead":{backgroundColor:"var(--colorBgTableHead)",borderBottom:"1px solid #f0f0f0",th:{padding:"0.5rem 1rem",borderLeft:"1px solid var(--colorBorderTable)",wordBreak:"normal",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis","&:first-child":{borderLeft:"none"}}},"> tbody":{tr:{borderTop:"1px solid var(--colorBorderTable)",backgroundColor:"var(--colorBgTableOddRow)"},"tr:nth-child(2n)":{backgroundColor:"var(--colorBgTableEvenRow)"},td:{padding:"0.5rem 1rem",borderLeft:"1px solid var(--colorBorderTable)","&:first-child":{borderLeft:"none"}}}});class TextRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.value!==_e.value}render(){return jsxRuntimeExports.jsx(React.Fragment,{children:this.props.value})}}class ThematicBreakRenderer extends React.Component{shouldComponentUpdate(){return!1}render(){return jsxRuntimeExports.jsx("hr",{className:cls})}}const cls=mergeStyles$1(astClasses.thematicBreak,{boxSizing:"content-box",display:"block",height:0,width:"100%",padding:0,border:0,borderBottom:"1px solid #dadada",outline:0,margin:"1.5em 0px"});function buildNodeRendererMap(j){if(j==null)return defaultNodeRendererMap;let _e=!1;const et={};for(const[tt,rt]of Object.entries(j))rt&&rt!==defaultNodeRendererMap[tt]&&(_e=!0,et[tt]=rt);return _e?{...defaultNodeRendererMap,...et}:defaultNodeRendererMap}const defaultNodeRendererMap={[BlockquoteType]:BlockquoteRenderer,[BreakType]:BreakRenderer,[CodeType]:CodeRenderer,[DefinitionType]:()=>null,[DeleteType]:DeleteRenderer,[EmphasisType]:EmphasisRenderer,[HeadingType]:HeadingRenderer,[HtmlType]:()=>null,[ImageType$1]:ImageRenderer,[ImageReferenceType]:ImageReferenceRenderer,[InlineCodeType]:InlineCodeRenderer,[LinkType]:LinkRenderer,[LinkReferenceType]:LinkReferenceRenderer,[ListType]:ListRenderer,[ListItemType]:ListItemRenderer,[ParagraphType$1]:ParagraphRenderer,[StrongType]:StrongRenderer,[TableType]:TableRenderer,[TextType$1]:TextRenderer,[ThematicBreakType]:ThematicBreakRenderer,_fallback:function j(_e,et){return console.warn(`Cannot find render for \`${_e.type}\` type node with key \`${et}\`:`,_e),null}},ReactMarkdown=j=>{const{presetDefinitionMap:_e,customizedRendererMap:et,preferCodeWrap:tt=!1,showCodeLineno:rt=!0,text:nt,themeScheme:ot="lighten",className:it,style:st}=j,lt=React.useMemo(()=>parser.parse(nt),[nt]),ut=React.useMemo(()=>calcDefinitionMap(lt).definitionMap,[lt]),[ct]=React.useState(()=>new ReactMarkdownViewModel({definitionMap:{..._e,...ut},rendererMap:buildNodeRendererMap(et),preferCodeWrap:tt,showCodeLineno:rt,themeScheme:ot})),dt=React.useMemo(()=>({viewmodel:ct}),[ct]),ft=mergeClasses(rootCls,ot==="darken"&&astClasses.rootDarken,it);return React.useEffect(()=>{ct.preferCodeWrap$.next(tt)},[ct,tt]),React.useEffect(()=>{ct.showCodeLineno$.next(rt)},[ct,rt]),React.useEffect(()=>{ct.themeScheme$.next(ot)},[ct,ot]),jsxRuntimeExports.jsx("div",{className:ft,style:st,children:jsxRuntimeExports.jsx(NodeRendererContextType.Provider,{value:dt,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:lt.children})})})},rootCls=mergeStyles$1(astClasses.root,{wordBreak:"break-all",userSelect:"unset",[astClasses.listItem]:{[`> ${astClasses.list}`]:{marginLeft:"1.2em"}},"> :last-child":{marginBottom:0}}),BasicViewer=({styles:j,showEmpty:_e,emptyRender:et,previewRender:tt,rawRender:rt,headerRender:nt})=>{const ot=useClasses$n(),[it,st]=reactExports.useState("preview"),lt=reactExports.useCallback(ct=>{st(ct)},[]),ut=useLocStrings();return _e?et?et():jsxRuntimeExports.jsx(MessageBar,{intent:"info",children:ut["No content"]}):jsxRuntimeExports.jsxs("div",{className:j==null?void 0:j.root,children:[rt&&jsxRuntimeExports.jsxs("div",{className:ot.header,children:[jsxRuntimeExports.jsx("div",{style:{flex:1},children:nt==null?void 0:nt()}),jsxRuntimeExports.jsx("div",{className:ot.groupWrapper,children:jsxRuntimeExports.jsxs("div",{className:ot.buttonGroup,children:[jsxRuntimeExports.jsx(Button$2,{value:"preview",size:"small",appearance:it==="preview"?void 0:"transparent",onClick:()=>lt("preview"),children:ut.Preview}),jsxRuntimeExports.jsx(Button$2,{value:"raw",size:"small",appearance:it==="raw"?void 0:"transparent",onClick:()=>lt("raw"),children:ut.Raw})]})})]}),it==="preview"||!rt?tt():null,it==="raw"&&rt?rt():null]})},useClasses$n=makeStyles({header:{display:"flex",alignItems:"center",marginBottom:"12px"},groupWrapper:{display:"flex",flexDirection:"row-reverse"},buttonGroup:{display:"inline-flex",...shorthands.borderRadius("5px"),backgroundColor:tokens.colorNeutralBackground5}}),MarkdownViewer=({content:j})=>{const _e=useStyles$f();return jsxRuntimeExports.jsx(BasicViewer,{styles:_e,showEmpty:!j,previewRender:()=>jsxRuntimeExports.jsx(ReactMarkdown,{text:`${j}`}),rawRender:()=>jsxRuntimeExports.jsx("div",{style:{marginTop:6},children:`${j}`})})},useStyles$f=makeStyles({root:{wordBreak:"break-all",whiteSpace:"break-spaces",...shorthands.overflow("auto")}}),EmbeddingNodeInfo=()=>{var rt,nt,ot;const j=useSelectedSpan(),_e=((rt=j==null?void 0:j.attributes)==null?void 0:rt["llm.response.model"])??((nt=j==null?void 0:j.attributes)==null?void 0:nt["embedding.model"]),et=JSON.parse(((ot=j==null?void 0:j.attributes)==null?void 0:ot["embedding.embeddings"])??"[]")??[],tt=useLocStrings();return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("span",{children:_e})}),et.map((it,st)=>jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("i",{children:tt.Embedded_text})}),it["embedding.text"]?jsxRuntimeExports.jsx(MarkdownViewer,{content:it["embedding.text"]}):null]},st))]})},CollapsibleTextArea=({children:j})=>{const[_e,et]=reactExports.useState(!0),tt=useClasses$m();return jsxRuntimeExports.jsxs("div",{className:tt.wrapper,children:[jsxRuntimeExports.jsx(Button$2,{icon:_e?jsxRuntimeExports.jsx(TextWrapOff16Regular,{}):jsxRuntimeExports.jsx(TextWrap16Regular,{}),onClick:()=>et(!_e),size:"small"}),jsxRuntimeExports.jsx("pre",{className:`${_e&&tt.wrap} ${tt.pre}`,children:j})]})},useClasses$m=makeStyles({wrapper:{width:"95%",height:"100%",paddingLeft:tokens.spacingHorizontalM,color:tokens.colorNeutralForeground1,display:"flex",flexDirection:"column"},wrap:{wordBreak:"break-all",whiteSpace:"pre-wrap"},pre:{marginTop:0}}),ErrorsTab=()=>{var st;const j=useClasses$l(),_e=useSelectedSpan(),et=(_e==null?void 0:_e.events)??[],[tt,rt]=reactExports.useState((st=et[0])==null?void 0:st.name),nt=et.find(lt=>lt.name===tt),ot=useIsDark(),it=useLocStrings();return jsxRuntimeExports.jsx(Card,{style:{height:"100%"},children:et.length===0?jsxRuntimeExports.jsxs("div",{className:j.emptyWrapper,children:[jsxRuntimeExports.jsx(ShieldCheckmark24Regular,{}),jsxRuntimeExports.jsxs(Text$2,{className:j.emptyText,children:[" ",it.No_Events_found]})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx(TabList,{selectedValue:tt,onTabSelect:(lt,ut)=>{rt(ut.value)},children:et.map(lt=>jsxRuntimeExports.jsx(Tab$1,{value:lt.name,children:lt.name},lt.name))})}),jsxRuntimeExports.jsx("div",{className:j.wrapper,children:nt&&jsxRuntimeExports.jsx(JsonView,{src:nt,collapseStringsAfterLength:1e4,theme:"vscode",dark:ot,customizeNode:({node:lt,indexOrName:ut})=>{if(ut==="exception.message"||ut==="exception.stacktrace")return jsxRuntimeExports.jsx(CollapsibleTextArea,{children:lt})}})})]})})},useClasses$l=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%",...shorthands.overflow("auto"),...shorthands.gap("8px")},grid:{flexGrow:1},emptyWrapper:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"},emptyText:{paddingTop:tokens.spacingVerticalM},exceptionText:{width:"100%",paddingLeft:tokens.spacingHorizontalM,color:tokens.colorNeutralForeground1,...shorthands.margin("0")}}),useEvaluationTracesListRow=j=>{const[_e,et]=reactExports.useState([]),tt=reactExports.useMemo(()=>{const it={};return j.forEach(st=>{var lt;(lt=st==null?void 0:st.context)!=null&<.span_id&&(it[st.context.span_id]={...st,children:[],depth:0})}),j.forEach(st=>{var lt;if(st.parent_id&&((lt=st==null?void 0:st.context)!=null&<.span_id)&&st.parent_id!==""){const ut=it[st.parent_id],ct=it[st.context.span_id];ct.depth=ut.depth+1,ut.children.push(ct)}}),Object.values(it).filter(st=>!st.parent_id)},[j]),rt=reactExports.useCallback(it=>{if(_e.includes(it)){const lt=findRowById(it,tt);if(!lt)return;const ct=(lt.children?findAllDescendants(lt):[]).map(ft=>{var pt;return(pt=ft==null?void 0:ft.context)==null?void 0:pt.span_id}).filter(ft=>ft!==void 0),dt=_e.filter(ft=>ft!==it).filter(ft=>!ct.includes(ft));et(dt)}else et([..._e,it])},[_e,tt]),nt=reactExports.useMemo(()=>{const it=st=>st.reduce((lt,ut)=>{var ft,pt;const dt=((ft=ut==null?void 0:ut.context)!=null&&ft.span_id?_e.includes((pt=ut==null?void 0:ut.context)==null?void 0:pt.span_id):!1)?it(ut.children):[];return[...lt,ut,...dt]},[]);return it(tt)},[_e,tt]),ot=reactExports.useCallback(it=>it?_e.includes(it):!1,[_e]);return{rows:nt,toggleSubRows:rt,isRowExpanded:ot}},findAllDescendants=j=>{let _e=[...j.children];return j.children.forEach(et=>{_e=[..._e,...findAllDescendants(et)]}),_e},findRowById=(j,_e)=>{var et;for(const tt of _e){if(((et=tt==null?void 0:tt.context)==null?void 0:et.span_id)===j)return tt;const rt=findRowById(j,tt.children);if(rt)return rt}return null},CellExpander=({isExpanded:j=!1,onToggle:_e})=>{const et=useClasses$k();return jsxRuntimeExports.jsx("div",{className:et.wrapper,onClick:()=>_e&&_e(!j),children:j?jsxRuntimeExports.jsx(ChevronDown16Filled,{}):jsxRuntimeExports.jsx(ChevronRight16Filled,{})})},useClasses$k=makeStyles({wrapper:{cursor:"pointer",display:"flex"}}),UNDEFINED_VALUE_PLACEHOLDER="N/A",TRACE_POLLING_GAP=6e4,SPAN_POLLING_GAP=3e4,LOCAL_URL_PREFIX="";function KindText({kind:j}){return jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",size:"medium",children:j||UNDEFINED_VALUE_PLACEHOLDER})}function formatDecimal(j){return Math.abs(j=Math.round(j))>=1e21?j.toLocaleString("en").replace(/,/g,""):j.toString(10)}function formatDecimalParts(j,_e){if((et=(j=_e?j.toExponential(_e-1):j.toExponential()).indexOf("e"))<0)return null;var et,tt=j.slice(0,et);return[tt.length>1?tt[0]+tt.slice(2):tt,+j.slice(et+1)]}function exponent(j){return j=formatDecimalParts(Math.abs(j)),j?j[1]:NaN}function formatGroup(j,_e){return function(et,tt){for(var rt=et.length,nt=[],ot=0,it=j[0],st=0;rt>0&&it>0&&(st+it+1>tt&&(it=Math.max(1,tt-st)),nt.push(et.substring(rt-=it,rt+it)),!((st+=it+1)>tt));)it=j[ot=(ot+1)%j.length];return nt.reverse().join(_e)}}function formatNumerals(j){return function(_e){return _e.replace(/[0-9]/g,function(et){return j[+et]})}}var re$1=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function formatSpecifier(j){if(!(_e=re$1.exec(j)))throw new Error("invalid format: "+j);var _e;return new FormatSpecifier({fill:_e[1],align:_e[2],sign:_e[3],symbol:_e[4],zero:_e[5],width:_e[6],comma:_e[7],precision:_e[8]&&_e[8].slice(1),trim:_e[9],type:_e[10]})}formatSpecifier.prototype=FormatSpecifier.prototype;function FormatSpecifier(j){this.fill=j.fill===void 0?" ":j.fill+"",this.align=j.align===void 0?">":j.align+"",this.sign=j.sign===void 0?"-":j.sign+"",this.symbol=j.symbol===void 0?"":j.symbol+"",this.zero=!!j.zero,this.width=j.width===void 0?void 0:+j.width,this.comma=!!j.comma,this.precision=j.precision===void 0?void 0:+j.precision,this.trim=!!j.trim,this.type=j.type===void 0?"":j.type+""}FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function formatTrim(j){e:for(var _e=j.length,et=1,tt=-1,rt;et<_e;++et)switch(j[et]){case".":tt=rt=et;break;case"0":tt===0&&(tt=et),rt=et;break;default:if(!+j[et])break e;tt>0&&(tt=0);break}return tt>0?j.slice(0,tt)+j.slice(rt+1):j}var prefixExponent;function formatPrefixAuto(j,_e){var et=formatDecimalParts(j,_e);if(!et)return j+"";var tt=et[0],rt=et[1],nt=rt-(prefixExponent=Math.max(-8,Math.min(8,Math.floor(rt/3)))*3)+1,ot=tt.length;return nt===ot?tt:nt>ot?tt+new Array(nt-ot+1).join("0"):nt>0?tt.slice(0,nt)+"."+tt.slice(nt):"0."+new Array(1-nt).join("0")+formatDecimalParts(j,Math.max(0,_e+nt-1))[0]}function formatRounded(j,_e){var et=formatDecimalParts(j,_e);if(!et)return j+"";var tt=et[0],rt=et[1];return rt<0?"0."+new Array(-rt).join("0")+tt:tt.length>rt+1?tt.slice(0,rt+1)+"."+tt.slice(rt+1):tt+new Array(rt-tt.length+2).join("0")}const formatTypes={"%":(j,_e)=>(j*100).toFixed(_e),b:j=>Math.round(j).toString(2),c:j=>j+"",d:formatDecimal,e:(j,_e)=>j.toExponential(_e),f:(j,_e)=>j.toFixed(_e),g:(j,_e)=>j.toPrecision(_e),o:j=>Math.round(j).toString(8),p:(j,_e)=>formatRounded(j*100,_e),r:formatRounded,s:formatPrefixAuto,X:j=>Math.round(j).toString(16).toUpperCase(),x:j=>Math.round(j).toString(16)};function identity$4(j){return j}var map$2=Array.prototype.map,prefixes=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function formatLocale$1(j){var _e=j.grouping===void 0||j.thousands===void 0?identity$4:formatGroup(map$2.call(j.grouping,Number),j.thousands+""),et=j.currency===void 0?"":j.currency[0]+"",tt=j.currency===void 0?"":j.currency[1]+"",rt=j.decimal===void 0?".":j.decimal+"",nt=j.numerals===void 0?identity$4:formatNumerals(map$2.call(j.numerals,String)),ot=j.percent===void 0?"%":j.percent+"",it=j.minus===void 0?"−":j.minus+"",st=j.nan===void 0?"NaN":j.nan+"";function lt(ct){ct=formatSpecifier(ct);var dt=ct.fill,ft=ct.align,pt=ct.sign,gt=ct.symbol,vt=ct.zero,bt=ct.width,_t=ct.comma,xt=ct.precision,yt=ct.trim,Et=ct.type;Et==="n"?(_t=!0,Et="g"):formatTypes[Et]||(xt===void 0&&(xt=12),yt=!0,Et="g"),(vt||dt==="0"&&ft==="=")&&(vt=!0,dt="0",ft="=");var St=gt==="$"?et:gt==="#"&&/[boxX]/.test(Et)?"0"+Et.toLowerCase():"",$t=gt==="$"?tt:/[%p]/.test(Et)?ot:"",At=formatTypes[Et],wt=/[defgprs%]/.test(Et);xt=xt===void 0?6:/[gprs]/.test(Et)?Math.max(1,Math.min(21,xt)):Math.max(0,Math.min(20,xt));function Ct(It){var Ot=St,Nt=$t,Pt,Mt,Rt;if(Et==="c")Nt=At(It)+Nt,It="";else{It=+It;var Lt=It<0||1/It<0;if(It=isNaN(It)?st:At(Math.abs(It),xt),yt&&(It=formatTrim(It)),Lt&&+It==0&&pt!=="+"&&(Lt=!1),Ot=(Lt?pt==="("?pt:it:pt==="-"||pt==="("?"":pt)+Ot,Nt=(Et==="s"?prefixes[8+prefixExponent/3]:"")+Nt+(Lt&&pt==="("?")":""),wt){for(Pt=-1,Mt=It.length;++PtRt||Rt>57){Nt=(Rt===46?rt+It.slice(Pt+1):It.slice(Pt))+Nt,It=It.slice(0,Pt);break}}}_t&&!vt&&(It=_e(It,1/0));var jt=Ot.length+It.length+Nt.length,Gt=jt>1)+Ot+It+Nt+Gt.slice(jt);break;default:It=Gt+Ot+It+Nt;break}return nt(It)}return Ct.toString=function(){return ct+""},Ct}function ut(ct,dt){var ft=lt((ct=formatSpecifier(ct),ct.type="f",ct)),pt=Math.max(-8,Math.min(8,Math.floor(exponent(dt)/3)))*3,gt=Math.pow(10,-pt),vt=prefixes[8+pt/3];return function(bt){return ft(gt*bt)+vt}}return{format:lt,formatPrefix:ut}}var locale$1,format$1,formatPrefix;defaultLocale$1({thousands:",",grouping:[3],currency:["$",""]});function defaultLocale$1(j){return locale$1=formatLocale$1(j),format$1=locale$1.format,formatPrefix=locale$1.formatPrefix,locale$1}function precisionFixed(j){return Math.max(0,-exponent(Math.abs(j)))}function precisionPrefix(j,_e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(exponent(_e)/3)))*3-exponent(Math.abs(j)))}function precisionRound(j,_e){return j=Math.abs(j),_e=Math.abs(_e)-j,Math.max(0,exponent(_e)-exponent(j))+1}function formatInt(j){return Math.abs(j)<1e6?format$1(",")(j):format$1("0.2s")(j)}function formatFloat(j){const _e=Math.abs(j);return _e===0?"0.00":_e<.01?format$1(".2e")(j):_e<1e3?format$1("0.2f")(j):format$1("0.2s")(j)}function formatNumber(j){return Number.isInteger(j)?formatInt(j):formatFloat(j)}function createNumberFormatter(j){return _e=>typeof _e!="number"?"--":j(_e)}const intFormatter=createNumberFormatter(formatInt),floatFormatter=createNumberFormatter(formatFloat),numberFormatter=createNumberFormatter(formatNumber),LatencyText=({startTimeISOString:j,endTimeISOString:_e,textSize:et,tipTextSize:tt})=>{const rt=useClasses$j(),nt=j?new Date(j):void 0,ot=_e?new Date(_e):void 0,it=nt&&ot?ot.getTime()-nt.getTime():void 0,st=reactExports.useMemo(()=>it===void 0?"N/A":it===0?"0 ms":it<10?formatFloat(it)+"ms":formatFloat(it/1e3)+"s",[it]);return jsxRuntimeExports.jsx(Tooltip$1,{content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Text$2,{size:tt,weight:"bold",block:!0,children:"Start Time"}),jsxRuntimeExports.jsx(Text$2,{size:tt,block:!0,children:timeFormat$1(j)}),jsxRuntimeExports.jsx(Text$2,{size:tt,weight:"bold",block:!0,children:"End Time"}),jsxRuntimeExports.jsx(Text$2,{size:tt,block:!0,children:timeFormat$1(_e)})]}),relationship:"label",children:jsxRuntimeExports.jsxs("div",{className:rt.wrapper,children:[jsxRuntimeExports.jsx(Clock20Regular,{}),jsxRuntimeExports.jsx(Text$2,{size:et,children:st})]})})},useClasses$j=makeStyles({wrapper:{display:"inline-flex",flexDirection:"row",alignItems:"center","> svg":{marginRight:"5px"}}});function StatusText({statusCode:j,showText:_e=!1,textSize:et,tooltipContent:tt}){const rt=useClasses$i(),nt=useLocStrings();j=j||nt.unknown;const[ot,it]=reactExports.useMemo(()=>{switch(j==null?void 0:j.toLowerCase()){case"ok":case"completed":return[jsxRuntimeExports.jsx(CheckmarkCircle20Regular,{},"ok"),tokens.colorPaletteGreenForeground1];case"error":return[jsxRuntimeExports.jsx(DismissCircle20Regular,{},"error"),tokens.colorPaletteRedForeground1];case"unset":return[jsxRuntimeExports.jsx(ErrorCircle20Regular,{},"unset"),tokens.colorPaletteYellowForeground1];case"running":return[jsxRuntimeExports.jsx(ArrowClockwiseDashes20Regular,{className:rt.rotate},"running"),tokens.colorPaletteYellowForeground1];default:return[jsxRuntimeExports.jsx(QuestionCircle20Regular,{},"unknown"),tokens.colorPaletteYellowForeground1]}},[rt.rotate,j]);return jsxRuntimeExports.jsx(Tooltip$1,{content:tt??j??"",relationship:"label",children:jsxRuntimeExports.jsxs("div",{className:rt.wrapper,style:{color:it},children:[ot,_e&&jsxRuntimeExports.jsx(Text$2,{size:et,children:j})]})})}const useClasses$i=makeStyles({wrapper:{display:"inline-flex",flexDirection:"row",alignItems:"center",justifyContent:"center","> svg":{marginRight:"5px"}},rotate:{animationDuration:"2s",animationTimingFunction:"linear",animationIterationCount:"infinite",animationName:{from:{transform:"rotate(0deg)"},to:{transform:"rotate(360deg)"}}}});function TimeText({time:j}){const _e=timeFormat$1(j);return jsxRuntimeExports.jsx("time",{children:_e})}function TokenText({token:j,info:_e}){const et=useClasses$h(),tt=typeof j=="number"?intFormatter(j):j;return jsxRuntimeExports.jsxs("div",{className:et.wrapper,children:[jsxRuntimeExports.jsx(NumberCircle020Regular,{}),_e?jsxRuntimeExports.jsx(Tooltip$1,{content:_e,relationship:"description",children:jsxRuntimeExports.jsx("div",{style:{lineHeight:"30px",marginLeft:-24,paddingLeft:24},children:tt})}):jsxRuntimeExports.jsx(Text$2,{children:tt})]})}const useClasses$h=makeStyles({wrapper:{display:"inline-flex",flexDirection:"row",alignItems:"center","> svg":{marginRight:"5px"}}}),CellWrapper=({children:j})=>{const _e=useClasses$g();return jsxRuntimeExports.jsx("div",{className:_e.cellWrapper,children:j})},TextCellWrapper=({children:j})=>{const _e=useClasses$g();return jsxRuntimeExports.jsx("div",{className:_e.textCellWrapper,children:jsxRuntimeExports.jsx("p",{className:_e.textCellP,children:j})})},CellSkeleton=({height:j})=>{const _e=useClasses$g();return jsxRuntimeExports.jsx(Skeleton,{className:_e.textCellWrapper,children:jsxRuntimeExports.jsx(SkeletonItem,{style:{height:`${j??20}px`}})})},useClasses$g=makeStyles({cellWrapper:{display:"flex",flexDirection:"row",alignItems:"center",height:"100%"},textCellWrapper:{display:"flex",flexDirection:"row",alignItems:"center",height:"100%",width:"100%"},textCellP:{wordWrap:"break-word",maxWidth:"100%",lineHeight:tokens.lineHeightBase200,fontSize:tokens.fontSizeBase300,maxHeight:"100%",whiteSpace:"normal",...shorthands.padding(tokens.spacingVerticalS,tokens.spacingHorizontalXS)}}),isValidJson=j=>{if(typeof j=="string")return!1;try{return JSON.stringify(j),!0}catch{return!1}},TraceListJsonCell=({jsonObject:j,isViewDetailEnabled:_e=!1})=>{const et=isValidJson(j);return jsxRuntimeExports.jsx(CellWrapper,{children:et?jsxRuntimeExports.jsx(TraceListObjectCell,{object:j,isViewDetailEnabled:_e}):jsxRuntimeExports.jsx(TextCellWrapper,{children:formatText(String(j))})})},TraceListObjectCell=({object:j,isViewDetailEnabled:_e})=>{const et=useIsDark();return _e?jsxRuntimeExports.jsxs(Dialog,{children:[jsxRuntimeExports.jsx(DialogTrigger,{children:jsxRuntimeExports.jsx("div",{style:{overflow:"hidden",height:"100%",width:"100%",marginTop:"12px",lineHeight:"16px"},children:jsxRuntimeExports.jsx(JsonView,{src:j,enableClipboard:!1,collapsed:1,dark:et,theme:"vscode"})})}),jsxRuntimeExports.jsx(DialogSurface,{children:jsxRuntimeExports.jsx("div",{style:{height:"800px",width:"800ppx",marginTop:"12px",lineHeight:"16px",overflow:"auto"},children:jsxRuntimeExports.jsx(JsonView,{src:j,enableClipboard:!0,collapseStringsAfterLength:200,dark:et,theme:"vscode"})})})]}):jsxRuntimeExports.jsx("div",{style:{overflow:"hidden",height:"100%",width:"100%",marginTop:"12px",lineHeight:"16px"},children:jsxRuntimeExports.jsx(JsonView,{src:j,enableClipboard:!1,collapseStringsAfterLength:50,collapsed:1,dark:et,theme:"vscode"})})},MAX_LENGTH=80;function formatText(j){return j.length>MAX_LENGTH?`${j.slice(0,MAX_LENGTH)}...`:j}const useClasses$f=makeStyles({grid:{},row:{cursor:"pointer"},nameCell:{color:tokens.colorBrandForeground1,fontWeight:tokens.fontWeightSemibold,":hover":{...shorthands.textDecoration("underline")}},kindCell:{display:"flex",alignItems:"center",justifyContent:"flex-start",height:"100%",...shorthands.gap("4px")}}),EvaluationTracesList=({evaluationSpans:j,className:_e})=>{const et=useClasses$f(),tt=useIsDark(),{rows:rt,toggleSubRows:nt,isRowExpanded:ot}=useEvaluationTracesListRow(j),it=useLocStrings();return jsxRuntimeExports.jsx(DataGrid$1$1,{className:`${mergeStyles$1(et.grid,_e)} ${tt?"rdg-dark":"rdg-light"}`,rowClass:()=>et.row,columns:[{key:"kind",name:it.Kind,minWidth:150,maxWidth:300,renderCell:({row:st})=>{var ut,ct,dt;const lt=((ut=st==null?void 0:st.children)==null?void 0:ut.length)>0;return jsxRuntimeExports.jsxs("div",{className:et.kindCell,style:{paddingLeft:st.depth*16+(lt?0:20)},children:[lt&&jsxRuntimeExports.jsx(CellExpander,{isExpanded:ot((ct=st==null?void 0:st.context)==null?void 0:ct.span_id),onToggle:()=>{var ft,pt;(ft=st==null?void 0:st.context)!=null&&ft.span_id&&nt((pt=st==null?void 0:st.context)==null?void 0:pt.span_id)}}),jsxRuntimeExports.jsx(KindText,{kind:(dt=st.attributes)==null?void 0:dt.span_type})]})}},{key:"name",name:it.Name,minWidth:150,maxWidth:300,renderCell:({row:st})=>jsxRuntimeExports.jsx(Tooltip$1,{content:st.name??"",relationship:"label",children:jsxRuntimeExports.jsx("span",{className:et.nameCell,title:st.name,children:st.name})})},{key:"input",name:it.Input,minWidth:200,renderCell:({row:st})=>{var lt;return jsxRuntimeExports.jsx(TraceListJsonCell,{isViewDetailEnabled:!0,jsonObject:JSON.parse(((lt=st.attributes)==null?void 0:lt.inputs)??"{}")})}},{key:"output",name:it.Output,minWidth:200,renderCell:({row:st})=>{var lt;return jsxRuntimeExports.jsx(TraceListJsonCell,{isViewDetailEnabled:!0,jsonObject:JSON.parse(((lt=st.attributes)==null?void 0:lt.output)??"{}")})}},{key:"start_time",name:it.Start_time,minWidth:150,renderCell:({row:st})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:st.start_time})})},{key:"end_time",name:it.End_time,minWidth:150,renderCell:({row:st})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:st.end_time})})},{key:"latency",name:it.Latency,minWidth:120,renderCell:({row:st})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:st.start_time,endTimeISOString:st.end_time})})},{key:"total_tokens",name:it.Total_tokens,minWidth:120,renderCell:({row:st})=>{var lt;return jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TokenText,{token:Number.parseInt(((lt=st.attributes)==null?void 0:lt["__computed__.cumulative_token_count.total"])??"0")})})}},{key:"status",name:it.Status,minWidth:120,renderCell:({row:st})=>{var lt;return jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(StatusText,{statusCode:(lt=st.status)==null?void 0:lt.status_code})})}}],rows:rt,headerRowHeight:26,rowHeight:80,defaultColumnOptions:{resizable:!0}})},MetricTag=({tag:j})=>{const _e=useClasses$e(),et=reactExports.useMemo(()=>typeof j.value=="number"?formatNumber(j.value):j.value,[j.value]);return jsxRuntimeExports.jsxs(Badge$2,{className:_e.wrapper,size:"medium",shape:"rounded",appearance:"outline",children:[jsxRuntimeExports.jsxs("span",{className:_e.name,children:[j.name," "]}),jsxRuntimeExports.jsx("span",{className:_e.data,children:et})]})},useClasses$e=makeStyles({wrapper:{display:"inline-flex",fontSize:"12px",...shorthands.padding("0px","8px","1px"),...shorthands.borderColor(tokens.colorPaletteGreenBorder2),...shorthands.gap("0.5rem")},name:{color:tokens.colorPaletteGreenBorder2,fontWeight:tokens.fontWeightRegular},data:{color:tokens.colorNeutralForeground1,fontWeight:tokens.fontWeightRegular}}),EvaluationsTab=()=>{var st,lt,ut;const j=useClasses$d(),_e=useEvaluationSpansOfSelectedSpan(),[et,tt]=reactExports.useState((st=_e[0])==null?void 0:st.evaluationName),rt=((lt=_e.find(ct=>ct.evaluationName===et))==null?void 0:lt.evaluationTraces)??[],nt=useSelectedTrace(),ot=(nt==null?void 0:nt.evaluations)??{},it=((ut=ot[et??""])==null?void 0:ut.outputs)??{};return jsxRuntimeExports.jsxs(Card,{style:{height:"100%"},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx(TabList,{selectedValue:et,onTabSelect:(ct,dt)=>{tt(dt.value)},children:_e.map(ct=>jsxRuntimeExports.jsx(Tab$1,{value:ct.evaluationName,children:ct.evaluationName},ct.evaluationName))})}),jsxRuntimeExports.jsxs("div",{className:j.wrapper,children:[et&&ot[et]&&Object.keys(it).map(ct=>{const dt=it[ct];return dt?jsxRuntimeExports.jsx(MetricTag,{tag:{name:ct,value:dt}},ct):null}),jsxRuntimeExports.jsx(EvaluationTracesList,{evaluationSpans:rt,className:j.grid})]})]})},useClasses$d=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%",...shorthands.gap("8px")},grid:{flexGrow:1}}),useMessageCardClasses=makeStyles({card:{...shorthands.borderRadius("8px"),...shorthands.borderColor(tokens.colorNeutralStroke1),...shorthands.borderWidth("1px"),...shorthands.borderStyle("solid"),...shorthands.padding("16px"),...shorthands.margin("16px")}}),LLMNodeInvocationParametersTab=({invocationParameters:j})=>{const _e=useMessageCardClasses();return jsxRuntimeExports.jsx(Card,{className:_e.card,children:jsxRuntimeExports.jsx(JsonView,{src:j})})};var ChatMessageCategory=(j=>(j.System="system",j.Error="error",j.Chatbot="chatbot",j.User="user",j))(ChatMessageCategory||{}),ChatMessageType=(j=>(j.Message="message",j.SessionSplit="session-split",j))(ChatMessageType||{}),ChatboxLocator=(j=>(j.MessageBubble="chatbox-message-bubble",j.MessageContent="chatbox-message-content",j.MessageList="chatbox-message-list",j))(ChatboxLocator||{});const defaultLocStrings$1={CopyToClipboard:"Copy to clipboard",CopyToClipboard_Copying:"Copying...",CopyToClipboard_Copied:"Copied!",CopyToClipboard_Failed:"Failed!",Header_Clear:"Click to clear all chat histories",Header_Close:"Click to close chat box",Header_EnterFullScreen:"Click to enter full screen mode",Header_ExitFullScreen:"Click to exit full screen mode",Header_Title:"Chat",Input_Placeholder:"Input anything to test...",MessageError_HideDetail:"Hide Detail",MessageError_ShowDetail:"Show Detail",MessageStatus_TimeSpentDesc:"time spent",MessageStatus_TimeSpentDscCapitalized:"Time spent",MessageStatus_TimeSpent_Unit:"sec",MessageStatus_TokensDesc:"Total tokens for generating this",MessageStatus_TokensUint:"tokens",SessionSplit_Desc:"Your session start from here.",Tooltip_Bottom:"Only default variants will be used for chat, if you want to test variants please try bulk test. For chatbot and test app bot, it will only show the chat output.",Tooltip_TotalTokens:"Total tokens",Typing:"Generating chat output for you"};class ChatboxViewModel{constructor(_e){this.calcContentForCopy=ct=>this.calcContentForCopy$.getSnapshot()(ct),this.monitorInputContentChange=ct=>this.inputContentChangeTick$.subscribeStateChange(ct),this.notifyInputContentChange=()=>{this.inputContentChangeTick$.setState(ct=>ct+1)},this.sendMessage=ct=>{const dt=this.editorRef.current;if(!dt){console.log("!!!editorRef is not mounted.");return}const ft=ct??dt.getContent(),pt=this.sendMessage$.getSnapshot(),vt=this.makeUserMessage$.getSnapshot()(ft);this.messages$.setState(bt=>[...bt,vt]),dt.clear(),this.isOthersTyping$.next(!0),pt(ft,this,vt).then(bt=>{bt!==void 0&&this.messages$.setState(_t=>[..._t,bt])}).finally(()=>{this.isOthersTyping$.next(!1)})},this.setCalcContentForCopy=ct=>{this.calcContentForCopy$.next(ct)},this.setMakeUserMessage=ct=>{this.makeUserMessage$.next(ct)},this.setSendMessage=ct=>{this.sendMessage$.next(ct)},this.sessionSplit=ct=>{const dt={id:uuid_1.v4(),type:ChatMessageType.SessionSplit,history:[{category:ChatMessageCategory.System,from:"system",content:ct??"",timestamp:new Date().toISOString()}]};return this.messages$.setState(ft=>[...ft,dt]),dt};const{alias:et="",initialDisabled:tt=!1,initialMessages:rt=[],locStrings:nt=defaultLocStrings$1,calcContentForCopy:ot=ct=>typeof ct.content=="string"?ct.content:JSON.stringify(ct.content),makeUserMessage:it=ct=>({id:uuid_1.v4(),type:ChatMessageType.Message,history:[{category:ChatMessageCategory.User,from:this.alias$.getSnapshot(),timestamp:new Date().toISOString(),content:ct}]}),sendMessage:st=async ct=>({id:uuid_1.v4(),type:ChatMessageType.Message,history:[{category:ChatMessageCategory.Chatbot,from:"chatbot",timestamp:new Date().toISOString(),content:ct}]})}=_e;this.editorRef={current:null};const lt=new State(0),ut=Computed.fromObservables([lt],()=>{var ct;return(ct=this.editorRef.current)==null?void 0:ct.isEmpty()});this.alias$=new State(et),this.disabled$=new State(tt),this.inputContentChangeTick$=lt,this.isEditorEmpty$=ut,this.isOthersTyping$=new State(!1),this.locStrings$=new State(nt),this.messages$=new State(rt),this.calcContentForCopy$=new State(ot),this.makeUserMessage$=new State(it),this.sendMessage$=new State(st)}}const viewmodel=new ChatboxViewModel({sendMessage:()=>Promise.resolve({id:Date.now(),type:ChatMessageType.Message,history:[{category:ChatMessageCategory.System,from:"system",timestamp:new Date().toISOString(),content:"sendMessage not implemented!"}]})});React.createContext({viewmodel});function useEventCallback$1(j){const _e=reactExports.useRef(j);return reactExports.useLayoutEffect(()=>{_e.current=j}),reactExports.useCallback((...et)=>{const tt=_e.current;return tt(...et)},[])}const CopyButton=j=>{const{pendingText:_e,copyingText:et,copiedText:tt,failedText:rt,calcContentForCopy:nt,className:ot,delay:it=1500}=j,[st,lt]=React.useState(0),ut=useStyles$e(),ct=st===0?_e:st===1?et:st===2?tt:st===3?rt:"",dt=st!==0,ft=useEventCallback$1(()=>{if(st===0){lt(1);try{const pt=nt();copy$4(pt),lt(2)}catch{lt(3)}}});return React.useEffect(()=>{if(st===2||st===3){const pt=setTimeout(()=>lt(0),it);return()=>{pt&&clearTimeout(pt)}}},[st,it]),jsxRuntimeExports.jsx(Tooltip$1,{relationship:"label",withArrow:!0,content:ct,children:jsxRuntimeExports.jsx(Button$2,{appearance:"transparent",className:mergeClasses(ut.copyButton,ot),disabled:dt,as:"button",icon:st===0?jsxRuntimeExports.jsx(Copy20Regular,{}):jsxRuntimeExports.jsx(CopyArrowRight20Regular,{}),onClick:ft})})};CopyButton.displayName="CopyButton";const useStyles$e=makeStyles({copyButton:{cursor:"pointer"}}),defaultUploadPopoverLocStrings={Add:"Add",AddAnImage:"Add an image",PasteImageOrLinkHere:"Paste image or link here",UploadFromThisDevice:"Upload from this device"},ImageView=j=>{const{src:_e,alt:et,loading:tt=!1,width:rt,height:nt,styles:ot}=j;return _e?tt?jsxRuntimeExports.jsx("div",{children:"Loading..."}):jsxRuntimeExports.jsx("div",{className:ot==null?void 0:ot.root,children:jsxRuntimeExports.jsx("img",{className:ot==null?void 0:ot.image,src:_e,alt:et,width:rt,height:nt})}):jsxRuntimeExports.jsx("div",{children:"This image can not be previewed."})},ImageViewModal=j=>{const{src:_e,alt:et,visible:tt,loading:rt=!1,width:nt,height:ot,onDismiss:it}=j,st=useStyles$d(),lt=jsxRuntimeExports.jsxs("div",{className:st.container,children:[jsxRuntimeExports.jsxs("div",{className:st.header,children:[jsxRuntimeExports.jsx("h2",{className:st.heading,children:"Preview"}),jsxRuntimeExports.jsx(Button$2,{as:"button",appearance:"transparent",icon:jsxRuntimeExports.jsx(Dismiss24Regular,{}),className:st.dismissBtn,onClick:it})]}),jsxRuntimeExports.jsx("div",{className:st.main,children:jsxRuntimeExports.jsx(ImageView,{src:_e,alt:et,loading:rt,width:nt,height:ot,styles:{image:st.image}})})]});return jsxRuntimeExports.jsx(Modal,{isOpen:tt,isBlocking:!1,onDismiss:it,children:lt})},useStyles$d=makeStyles({container:{display:"flex",flexDirection:"column",flexWrap:"nowrap",...shorthands.padding("16px")},header:{...shorthands.flex(0,0,"auto"),display:"flex",flexDirection:"row",flexWrap:"nowrap",justifyContent:"space-between",marginBottom:"20px"},heading:{...shorthands.margin(0),fontWeight:FontWeights.semibold,fontSize:"inherit"},dismissBtn:{"&&":{fontSize:"16px",lineHeight:"16px",height:"16px",width:"16px",color:tokens.colorNeutralStroke1}},main:{...shorthands.overflow("auto"),display:"flex",justifyContent:"center",alignItems:"center"},image:{width:"auto",height:"auto",maxWidth:"60vw",maxHeight:"60vh"}}),IMAGE_WIDTH="48px",MASK_SELECTOR_CLASS_NAME="__MASK_SELECTOR_CLASS_NAME__",UploadPopoverImagePreview=j=>{const{image:_e,alt:et,isReadonly:tt,onClickDelete:rt}=j,[nt,ot]=React.useState(!1),it=useStyles$c(),st=React.useMemo(()=>{if(_e)return typeof _e=="string"?_e:URL.createObjectURL(_e)},[_e]),lt=React.useCallback(()=>{ot(ct=>!ct)},[]),ut=st||"";return jsxRuntimeExports.jsxs("div",{className:mergeClasses(it.root,tt?it.readonlyRoot:void 0),children:[jsxRuntimeExports.jsxs("div",{className:it.imageContainer,children:[jsxRuntimeExports.jsx("img",{decoding:"async",className:it.image,src:ut,alt:et}),jsxRuntimeExports.jsx("div",{"aria-hidden":!0,className:mergeClasses(it.mask,MASK_SELECTOR_CLASS_NAME),onClick:lt,role:"button",children:jsxRuntimeExports.jsx(ZoomIn20Regular,{})})]}),!tt&&jsxRuntimeExports.jsx(Button$2,{as:"button",className:it.closeButton,icon:jsxRuntimeExports.jsx(Dismiss20Regular,{}),onClick:rt}),jsxRuntimeExports.jsx(ImageViewModal,{src:ut,alt:et||"",visible:nt,onDismiss:lt})]})},useStyles$c=makeStyles({root:{boxSizing:"border-box",display:"flex",height:"32px",width:"80px",...shorthands.border("1px","solid",tokens.colorNeutralStroke2),...shorthands.borderRadius("4px")},readonlyRoot:{width:"48px"},imageContainer:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",width:IMAGE_WIDTH,[`:hover .${MASK_SELECTOR_CLASS_NAME}`]:{visibility:"visible"}},image:{maxWidth:"100%",maxHeight:"100%",width:"auto",height:"auto"},mask:{visibility:"hidden",cursor:"pointer",position:"absolute",top:0,left:0,width:`calc(${IMAGE_WIDTH} - 2px)`,height:"100%",backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",color:tokens.colorNeutralForegroundStaticInverted,...shorthands.borderRadius("4px",0,0,"4px")},closeButton:{width:"32px",...shorthands.border(0)}}),UploadPopoverTrigger=React.forwardRef((j,_e)=>jsxRuntimeExports.jsx(Button$2,{...j,ref:_e,as:"button",appearance:"transparent",size:"medium",icon:jsxRuntimeExports.jsx(Attach16Regular,{})}));UploadPopoverTrigger.displayName="UploadPopoverTrigger";const mergeStyleSlots=(j,..._e)=>{const et={...j};for(const tt of Object.keys(j))et[tt]=mergeClasses(j[tt],..._e.map(rt=>rt==null?void 0:rt[tt]));return et},UploadPopover=React.forwardRef(({isUploading:j,disabled:_e,trigger:et=jsxRuntimeExports.jsx(UploadPopoverTrigger,{}),locStrings:tt=defaultUploadPopoverLocStrings,styles:rt,events:nt,onUpload:ot,onRenderImagePreview:it},st)=>{const lt=mergeStyleSlots(useStyles$b(),rt),{onDelete:ut,onInputBlur:ct,onPaste:dt,onLocalUpload:ft}=nt??{};React.useImperativeHandle(st,()=>({open(){gt(!0)},close(){gt(!1)},reset:()=>{St()},retrieve:()=>_t}));const[pt,gt]=React.useState(!1),[vt,bt]=React.useState(""),[_t,xt]=React.useState(void 0),yt=React.useRef(null),Et=React.useCallback((Ot,Nt)=>{gt(Nt.open||!1)},[]),St=React.useCallback(()=>{bt(""),xt(void 0),yt.current&&(yt.current.value="")},[]),$t=React.useCallback(Ot=>{const Nt=Ot[0];xt(Nt),dt==null||dt(Nt)},[dt]),At=React.useCallback(Ot=>{Ot.clipboardData.files&&$t&&$t(Ot.clipboardData.files)},[$t]),wt=React.useCallback(()=>{ct==null||ct(vt),xt(vt)},[vt,ct]),Ct=React.useCallback(()=>{_t&&ot(_t)},[_t,ot]),It=React.useMemo(()=>it?it({cachedImage:_t,customerInputContent:vt,isReadonly:_e||j||!1}):jsxRuntimeExports.jsx(UploadPopoverImagePreview,{image:_t||vt,alt:vt||"",isReadonly:j,onClickDelete:()=>{St(),ut==null||ut()}}),[vt,_t,St,_e,j,ut,it]);return jsxRuntimeExports.jsxs(Popover,{positioning:"above-end",open:pt,onOpenChange:Et,children:[jsxRuntimeExports.jsx(PopoverTrigger,{disableButtonEnhancement:!0,children:et}),jsxRuntimeExports.jsxs(PopoverSurface,{className:lt.attachUploadPopover,children:[jsxRuntimeExports.jsxs("div",{className:lt.attachUploadHeader,children:[jsxRuntimeExports.jsx("span",{children:tt.AddAnImage}),jsxRuntimeExports.jsx(Button$2,{as:"button",disabled:_e,appearance:"transparent",icon:jsxRuntimeExports.jsx(Dismiss24Regular,{}),onClick:()=>{gt(!1)}})]}),jsxRuntimeExports.jsxs("div",{className:lt.attachUploadInputWrapper,children:[_t?It:jsxRuntimeExports.jsx(Input,{className:lt.attachUploadInput,value:vt,disabled:_e,placeholder:tt.PasteImageOrLinkHere,onChange:(Ot,Nt)=>{xt(void 0),bt(Nt.value)},onPaste:At,onBlur:wt}),jsxRuntimeExports.jsx(Button$2,{as:"button",disabled:_e||j||!_t&&!vt,className:lt.addButton,onClick:Ct,children:j?jsxRuntimeExports.jsx(Spinner,{size:"tiny"}):tt.Add})]}),jsxRuntimeExports.jsx("input",{tabIndex:-1,"aria-hidden":!0,ref:yt,disabled:_e,className:lt.invisibleFileInput,onChange:Ot=>{var Pt;const Nt=(Pt=Ot.target.files)==null?void 0:Pt[0];Nt&&(ft==null||ft(Nt)),xt(Nt)},type:"file",accept:"image/*"}),jsxRuntimeExports.jsx("div",{className:lt.triggerUploadButton,children:jsxRuntimeExports.jsx(Button$2,{as:"button",disabled:_e,appearance:"transparent",icon:jsxRuntimeExports.jsx(ArrowUpload24Regular,{}),onClick:()=>{var Ot;(Ot=yt.current)==null||Ot.click()},children:tt.UploadFromThisDevice})})]})]})});UploadPopover.displayName="UploadPopover";const useStyles$b=makeStyles({attachUploadPopover:{width:"400px",backgroundColor:tokens.colorNeutralBackground1,...shorthands.padding("12px")},attachUploadHeader:{display:"flex",justifyContent:"space-between",alignItems:"center",fontWeight:500,fontSize:"16px",lineHeight:"22px"},attachUploadInputWrapper:{marginTop:"8px",display:"flex",columnGap:"8px",justifyContent:"space-between"},attachUploadInput:{flexGrow:1},addButton:{minWidth:"52px"},invisibleFileInput:{display:"none"},triggerUploadButton:{marginTop:"8px",display:"flex",justifyContent:"space-between"}});function DefaultMessageContentRenderer(j){const{content:_e,className:et}=j,tt=useStyles$a(),rt=mergeClasses(tt.content,et);if(typeof _e=="string")return jsxRuntimeExports.jsx("p",{className:rt,children:_e});const nt=JSON.stringify(_e,null,2);return jsxRuntimeExports.jsx("pre",{className:rt,children:nt})}DefaultMessageContentRenderer.displayName="DefaultMessageContentRenderer";const useStyles$a=makeStyles({content:{...shorthands.overflow("auto"),wordBreak:"break-all",whiteSpace:"break-spaces"}});function DefaultMessageErrorRenderer(j){const{error:_e,locStrings:et,className:tt}=j,[rt,nt]=React.useState(!1),ot=useStyles$9(),it=mergeClasses(ot.errorMessageDetail,!rt&&ot.errorMessageDetailHidden,tt);return jsxRuntimeExports.jsxs(React.Fragment,{children:[jsxRuntimeExports.jsx("p",{children:jsxRuntimeExports.jsx(Link$1,{onClick:()=>nt(st=>!st),children:rt?et.MessageError_HideDetail:et.MessageError_ShowDetail})}),jsxRuntimeExports.jsx("p",{className:it,children:_e})]})}DefaultMessageErrorRenderer.displayName="DefaultMessageErrorRenderer";const useStyles$9=makeStyles({errorMessageDetail:{...shorthands.margin("0","0","0","0"),wordBreak:"break-word",whiteSpace:"break-spaces"},errorMessageDetailHidden:{display:"none"}});function DefaultMessagePaginationRenderer(j){const{message:_e,current:et,className:tt,setCurrent:rt}=j,nt=_e.history.length,ot=()=>{et>0&&rt(et-1)},it=()=>{et=Mt?Pt:""+Array(Mt+1-Lt.length).join(Rt)+Pt},yt={s:xt,z:function(Pt){var Mt=-Pt.utcOffset(),Rt=Math.abs(Mt),Lt=Math.floor(Rt/60),jt=Rt%60;return(Mt<=0?"+":"-")+xt(Lt,2,"0")+":"+xt(jt,2,"0")},m:function Pt(Mt,Rt){if(Mt.date()1)return Pt(Vt[0])}else{var Yt=Mt.name;St[Yt]=Mt,jt=Yt}return!Lt&&jt&&(Et=jt),jt||!Lt&&Et},Ct=function(Pt,Mt){if(At(Pt))return Pt.clone();var Rt=typeof Mt=="object"?Mt:{};return Rt.date=Pt,Rt.args=arguments,new Ot(Rt)},It=yt;It.l=wt,It.i=At,It.w=function(Pt,Mt){return Ct(Pt,{locale:Mt.$L,utc:Mt.$u,x:Mt.$x,$offset:Mt.$offset})};var Ot=function(){function Pt(Rt){this.$L=wt(Rt.locale,null,!0),this.parse(Rt),this.$x=this.$x||Rt.x||{},this[$t]=!0}var Mt=Pt.prototype;return Mt.parse=function(Rt){this.$d=function(Lt){var jt=Lt.date,Gt=Lt.utc;if(jt===null)return new Date(NaN);if(It.u(jt))return new Date;if(jt instanceof Date)return new Date(jt);if(typeof jt=="string"&&!/Z$/i.test(jt)){var Vt=jt.match(vt);if(Vt){var Yt=Vt[2]-1||0,Xt=(Vt[7]||"0").substring(0,3);return Gt?new Date(Date.UTC(Vt[1],Yt,Vt[3]||1,Vt[4]||0,Vt[5]||0,Vt[6]||0,Xt)):new Date(Vt[1],Yt,Vt[3]||1,Vt[4]||0,Vt[5]||0,Vt[6]||0,Xt)}}return new Date(jt)}(Rt),this.init()},Mt.init=function(){var Rt=this.$d;this.$y=Rt.getFullYear(),this.$M=Rt.getMonth(),this.$D=Rt.getDate(),this.$W=Rt.getDay(),this.$H=Rt.getHours(),this.$m=Rt.getMinutes(),this.$s=Rt.getSeconds(),this.$ms=Rt.getMilliseconds()},Mt.$utils=function(){return It},Mt.isValid=function(){return this.$d.toString()!==gt},Mt.isSame=function(Rt,Lt){var jt=Ct(Rt);return this.startOf(Lt)<=jt&&jt<=this.endOf(Lt)},Mt.isAfter=function(Rt,Lt){return Ct(Rt){const{duration:_e,tokens:et,locStrings:tt,className:rt}=j,nt=_e.toFixed(2).replace(/\.?0*$/,"");return jsxRuntimeExports.jsxs("div",{className:rt,children:[et>0&&jsxRuntimeExports.jsxs(React.Fragment,{children:[`${tt.MessageStatus_TokensDesc}: `,jsxRuntimeExports.jsx("b",{children:et}),` ${tt.MessageStatus_TokensUint}, `]}),`${et>0?tt.MessageStatus_TimeSpentDesc:tt.MessageStatus_TimeSpentDscCapitalized}: `,jsxRuntimeExports.jsx("b",{children:nt}),` ${tt.MessageStatus_TimeSpent_Unit}`]})};DefaultMessageStatusRenderer.displayName="DefaultMessageStatusRenderer";const EMPTY_CONTEXTUAL_MENU_ITEMS=[],defaultUseContextualMenuItems=j=>EMPTY_CONTEXTUAL_MENU_ITEMS;function DefaultMessageBubbleRenderer(j){const{MessageAvatarRenderer:_e,MessageContentRenderer:et=DefaultMessageContentRenderer,MessageErrorRenderer:tt=DefaultMessageErrorRenderer,MessagePaginationRenderer:rt=DefaultMessagePaginationRenderer,MessageSenderRenderer:nt=DefaultMessageSenderRenderer,MessageStatusRenderer:ot=DefaultMessageStatusRenderer,useMessageContextualMenuItems:it=defaultUseContextualMenuItems,initialPage:st=-1,locStrings:lt,message:ut,className:ct}=j,dt=useStyles$7(),[ft,pt]=React.useState((st%ut.history.length+ut.history.length)%ut.history.length),[gt,vt]=React.useState(!1),bt=React.useRef(null),_t=React.useRef(null),xt=React.useCallback(()=>{vt(!1)},[]),yt=React.useCallback(Ct=>{const It=bt.current,Ot=_t.current;if(It&&Ot){const Nt=Ct.clientX,Pt=Ct.clientY,Mt=It.getBoundingClientRect(),Rt=Mt.left+window.scrollX,Lt=Mt.top+window.scrollY,jt=Nt-Rt,Gt=Pt-Lt;Ot.style.left=`${jt}px`,Ot.style.top=`${Gt}px`}},[]),Et=React.useCallback(Ct=>{Ct.preventDefault(),yt(Ct),vt(!0)},[]),St=ut.history[ft],$t=St.category===ChatMessageCategory.User?"right":"left",At=it(St),wt=React.useCallback(()=>j.calcContentForCopy(St),[St,j.calcContentForCopy]);return React.useEffect(()=>{const Ct=()=>{vt(!1)};return document.addEventListener("mousedown",Ct),()=>document.removeEventListener("mousedown",Ct)},[]),jsxRuntimeExports.jsx("div",{className:dt.container,"data-chatbox-locator":ChatboxLocator.MessageBubble,"data-position":$t,children:jsxRuntimeExports.jsxs("div",{className:mergeClasses(dt.message,ct),"data-position":$t,children:[jsxRuntimeExports.jsx("div",{className:dt.avatar,children:_e&&jsxRuntimeExports.jsx(_e,{data:St,position:$t})}),jsxRuntimeExports.jsxs("div",{className:dt.main,children:[jsxRuntimeExports.jsx("div",{className:dt.sender,children:jsxRuntimeExports.jsx(nt,{data:St,position:$t})}),jsxRuntimeExports.jsxs("div",{ref:bt,className:dt.content,"data-category":St.category,"data-chatbox-locator":ChatboxLocator.MessageContent,onContextMenu:Et,onClick:yt,children:[jsxRuntimeExports.jsx(et,{content:St.content}),St.error&&jsxRuntimeExports.jsx(tt,{error:St.error,locStrings:lt,className:dt.error}),typeof St.duration=="number"&&typeof St.tokens=="number"&&jsxRuntimeExports.jsx(ot,{duration:St.duration,tokens:St.tokens,locStrings:lt,className:dt.status}),ut.history.length>1&&jsxRuntimeExports.jsx(rt,{className:dt.pagination,message:ut,current:ft,setCurrent:pt}),jsxRuntimeExports.jsx("div",{ref:_t,className:dt.contentMenuAnchor}),At.length>0&&jsxRuntimeExports.jsx(ContextualMenu,{items:At,hidden:!gt,target:_t,onItemClick:xt,onDismiss:xt,className:dt.contextualMenu}),jsxRuntimeExports.jsx("div",{className:mergeClasses(anchors.actions,dt.actions),children:jsxRuntimeExports.jsx(CopyButton,{calcContentForCopy:wt,pendingText:lt.CopyToClipboard,copyingText:lt.CopyToClipboard_Copying,copiedText:lt.CopyToClipboard_Copied,failedText:lt.CopyToClipboard_Failed,className:mergeClasses(anchors.actionButton,dt.actionButton)})})]})]})]})})}DefaultMessageBubbleRenderer.displayName="DefaultMessageBubbleRenderer";const anchors={actions:"chatbox-message-bubble-actions",actionButton:"chatbox-message-bubble-action-button"},useStyles$7=makeStyles({container:{...shorthands.margin("16px","0"),display:"flex",justifyContent:"flex-start",'&&[data-position="right"]':{justifyContent:"flex-end"},width:"100%"},message:{display:"flex",flexDirection:"row",'&&[data-position="right"]':{flexDirection:"row-reverse"},maxWidth:"calc(100% - 80px)"},avatar:{...shorthands.flex(0,0,"auto")},main:{...shorthands.flex(1,1,"auto"),display:"flex",flexDirection:"column",width:"100%"},sender:{...shorthands.flex(0,0,"auto")},content:{...shorthands.flex(1,1,"auto"),...shorthands.padding("12px","20px","12px","12px"),...shorthands.borderRadius("4px"),position:"relative",boxSizing:"border-box",minWidth:"48px",wordBreak:"break-word",lineHeight:"22px","> p":{...shorthands.margin(0)},[`&:hover > .${anchors.actions}`]:{display:"flex",visibility:"visible"},[`&&[data-category="${ChatMessageCategory.System}"]`]:{color:tokens.colorNeutralForeground4},[`&&[data-category="${ChatMessageCategory.Error}"]`]:{backgroundColor:tokens.colorPaletteRedBackground2,color:tokens.colorNeutralForeground1},[`&&[data-category="${ChatMessageCategory.Chatbot}"]`]:{backgroundColor:tokens.colorNeutralBackground4,color:tokens.colorNeutralForeground1},[`&&[data-category="${ChatMessageCategory.User}"]`]:{backgroundColor:tokens.colorBrandBackground2,color:tokens.colorNeutralForeground1}},contextualMenu:{width:"auto",minWidth:"180px"},contentMenuAnchor:{position:"absolute",top:"0px",left:"0px"},error:{...shorthands.borderTop("1px","solid",tokens.colorPaletteDarkRedBorderActive),marginTop:"8px !important",paddingTop:"8px"},status:{...shorthands.margin("10px","0","0","0"),...shorthands.borderTop("1px","solid",tokens.colorPaletteAnchorBackground2),fontSize:"12px",fontStyle:"italic"},pagination:{marginTop:"14px"},actions:{position:"absolute",right:"-5px",top:"0",display:"none",width:"32px",justifyContent:"space-between"},actionButton:{cursor:"pointer",width:"32px"}});function DefaultSessionSplitRenderer(j){const{locStrings:_e,className:et}=j,tt=useStyles$6();return jsxRuntimeExports.jsx("div",{className:mergeClasses(tt.sessionSplit,et),children:jsxRuntimeExports.jsxs("span",{children:["--- ",_e.SessionSplit_Desc," ---"]})})}DefaultSessionSplitRenderer.displayName="DefaultSessionSplitRenderer";const useStyles$6=makeStyles({sessionSplit:{display:"flex",justifyContent:"center",height:"24px",color:tokens.colorNeutralForeground4}});makeStyles({hintTyping:{...shorthands.overflow("hidden"),width:"1px",height:"1px"},typingDots:{...shorthands.transition("opacity","0.1s"),display:"flex",alignItems:"center",height:"22.5px"},typingDot:{...shorthands.borderRadius("50%"),...shorthands.margin("0","0","0","6px"),display:"inline-block",width:"6px",height:"6px",backgroundColor:tokens.colorNeutralStroke1,animationDuration:"1.5s",animationTimingFunction:"linear",animationIterationCount:"infinite",animationName:{"0%":{transform:"scale(1)"},"16.67%":{transform:"scale(0)"},"33.33%":{transform:"scale(0)"},"50%":{transform:"scale(0)"},"66.67%":{transform:"scale(1)"},"83.33%":{transform:"scale(1)"},"100%":{transform:"scale(1)"}},"&:nth-child(1)":{...shorthands.margin("0px")},"&:nth-child(2)":{animationDelay:"0.18s"},"&:nth-child(3)":{animationDelay:"0.36s"}}});makeStyles({toolbar:{display:"flex",justifyContent:"flex-end"}});makeStyles({input:{...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),boxSizing:"border-box",display:"grid",gridTemplateRows:"1fr auto"},editor:{boxSizing:"border-box"},editorInner:{...shorthands.border("0px"),boxSizing:"border-box"},editorToolbar:{boxSizing:"border-box",display:"flex",alignItems:"flex-end",justifyContent:"flex-end",height:"100%"}});function MessageListRenderer(j){const{MessageAvatarRenderer:_e,MessageContentRenderer:et,MessageErrorRenderer:tt,MessageSenderRenderer:rt,MessageBubbleRenderer:nt=DefaultMessageBubbleRenderer,SessionSplitRenderer:ot=DefaultSessionSplitRenderer,className:it,bubbleClassName:st,sessionSplitClassName:lt,locStrings:ut,messages:ct,calcContentForCopy:dt,useMessageContextualMenuItems:ft}=j,pt=useStyles$5();return jsxRuntimeExports.jsx("div",{className:mergeClasses(pt.container,it),"data-chatbox-locator":ChatboxLocator.MessageList,children:ct.map(gt=>{switch(gt.type){case ChatMessageType.Message:return jsxRuntimeExports.jsx(nt,{MessageAvatarRenderer:_e,MessageContentRenderer:et,MessageErrorRenderer:tt,MessageSenderRenderer:rt,calcContentForCopy:dt,locStrings:ut,message:gt,className:st,useMessageContextualMenuItems:ft},gt.id);case ChatMessageType.SessionSplit:return jsxRuntimeExports.jsx(ot,{locStrings:ut,className:lt},gt.id);default:return jsxRuntimeExports.jsx(React.Fragment,{},gt.id)}})})}MessageListRenderer.displayName="MessageListRenderer";const useStyles$5=makeStyles({container:{boxSizing:"border-box"}}),Zp=class Zp extends React.PureComponent{render(){const{elements:_e,deltaH:et,deltaW:tt,scaleH:rt,scaleW:nt,className:ot,elementClassName:it}=this.props;return jsxRuntimeExports.jsx("div",{className:ot,children:_e.map((st,lt)=>{const ut=(st.top-et)*rt,ct=(st.left-tt)*nt,dt=st.height*rt,ft=st.width*nt,pt={top:ut,left:ct,height:dt,width:ft};return st.backgroundColor&&(pt.backgroundColor=st.backgroundColor),jsxRuntimeExports.jsx("div",{className:it,style:pt},lt)})})}};Zp.displayName="MinimapOverview";let MinimapOverview=Zp;const MinimapViewport=j=>{const{scaleH:_e,sourceRootRef:et,sourceQuerySelector:tt,className:rt}=j,[nt,ot]=React.useState(0),[it,st]=React.useState(0),lt=useStyles$4();return React.useLayoutEffect(()=>{var ft,pt;const ut=(pt=(ft=et.current)==null?void 0:ft.querySelector(tt))==null?void 0:pt.parentElement;if(!ut)return()=>{};const{height:ct}=ut.getBoundingClientRect();st(ct);const dt=()=>{ot(ut.scrollTop||0)};return ut.addEventListener("scroll",dt),()=>ut.removeEventListener("scroll",dt)},[et.current]),jsxRuntimeExports.jsx("div",{className:mergeClasses(lt.viewport,rt),style:{position:"absolute",top:nt*_e,height:`${it*_e}px`}})};MinimapViewport.displayName="MinimapViewport";const useStyles$4=makeStyles({viewport:{display:"block",width:"100%",left:0,right:0,backgroundColor:"rgba(0, 0, 0, 0.15)"}}),Minimap=j=>{const{SCROLL_DELTA_THRESHOLD:_e=5,sourceRootRef:et,sourceQuerySelector:tt,sourceElementQuerySelector:rt,className:nt,overviewClassName:ot,overviewElementClassName:it,viewportClassName:st,style:lt}=j,[ut,ct]=React.useState([]),[dt,ft]=React.useState(0),[pt,gt]=React.useState(0),[vt,bt]=React.useState(0),[_t,xt]=React.useState(0),[yt,Et]=React.useState(0),[St,$t]=React.useState(0),[At,wt]=React.useState(0),[Ct,It]=React.useState(0),Ot=_t<=0?0:pt/_t||.1,Nt=vt<=0?0:Math.max(1/vt,Math.min(Ot,(dt-10)/vt||.1)),Pt=React.useRef(null),Mt=React.useRef(null),Rt=React.useRef(!1),Lt=useEventCallback$1(rr=>{var vr,Tr;if(rr.preventDefault(),rr.stopPropagation(),Rt.current=!0,!Mt.current)return;const cr=(Tr=(vr=et.current)==null?void 0:vr.querySelector(tt))==null?void 0:Tr.parentElement;if(cr){const Er=(rr.clientY-Mt.current.getBoundingClientRect().top)/Nt;Math.abs(cr.scrollTop-Er)>_e&&(cr.scrollTop=Er)}}),jt=useEventCallback$1(rr=>{var vr,Tr;if(rr.preventDefault(),rr.stopPropagation(),!Rt.current||!Mt.current)return;const cr=(Tr=(vr=et.current)==null?void 0:vr.querySelector(tt))==null?void 0:Tr.parentElement;if(cr){const Er=(rr.clientY-Mt.current.getBoundingClientRect().top)/Nt;Math.abs(cr.scrollTop-Er)>_e&&(cr.scrollTop=Er)}}),Gt=React.useCallback(rr=>{const cr=rr.querySelector(tt);if(!cr)return;const vr=cr.querySelectorAll(rt),Tr=[];for(let Er=0;Er{const rr=()=>{Rt.current=!1};return document.addEventListener("mouseup",rr),()=>document.removeEventListener("mouseup",rr)},[]),React.useLayoutEffect(()=>{const rr=Pt.current;if(!rr)return;const{height:cr,width:vr}=rr.getBoundingClientRect();ft(cr),gt(vr)},[]),React.useLayoutEffect(()=>{const rr=et.current;if(!rr)return()=>{};Gt(rr);const cr=new MutationObserver(vr=>{for(const Tr of vr)Tr.type==="childList"&&Gt(rr)});return cr.observe(rr,{childList:!0,subtree:!0}),()=>{cr.disconnect()}},[et.current,Gt]);const Vt=useStyles$3(),Yt=vt+yt-At,Xt=_t+St-Ct;return jsxRuntimeExports.jsx("div",{ref:Pt,className:mergeClasses(Vt.container,nt),style:lt,children:jsxRuntimeExports.jsxs("div",{ref:Mt,className:Vt.minimap,onMouseDown:Lt,onMouseMove:jt,children:[jsxRuntimeExports.jsx(MinimapOverview,{elements:ut,deltaH:Yt,deltaW:Xt,scaleH:Nt,scaleW:Ot,className:mergeClasses(Vt.overview,ot),elementClassName:mergeClasses(Vt.minimapElement,it)}),jsxRuntimeExports.jsx(MinimapViewport,{scaleH:Nt,sourceRootRef:et,sourceQuerySelector:tt,className:st})]})})};Minimap.displayName="Minimap";const useStyles$3=makeStyles({container:{height:"100%",width:"100%",...shorthands.overflow("hidden")},minimap:{position:"relative",width:"100%",height:"100%"},overview:{},minimapElement:{position:"absolute",backgroundColor:"#c292f9"}});makeStyles({editor:{...shorthands.padding("8px"),...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),boxSizing:"border-box",display:"block",width:"100%",userSelect:"none",position:"relative",'&[data-disabled="true"]':{backgroundColor:tokens.colorNeutralBackgroundDisabled}},textarea:{...shorthands.padding("0px"),...shorthands.overflow("hidden","auto"),...shorthands.borderWidth(0),...shorthands.outline(0,"solid","transparent"),backgroundColor:"transparent",boxSizing:"border-box",resize:"none",appearance:"none",overflowWrap:"break-word",lineHeight:"24px",height:"24px",width:"100%",wordBreak:"break-all",color:tokens.colorNeutralForeground1,userSelect:"text"}});var LexicalLink_prod={},LexicalUtils_prod={},LexicalSelection_prod={},Lexical_prod={};let ba={},ca={},da={},ea={},fa={},ka$1={},la={},ma={},oa={},pa={},qa={},ra={},sa={},ta={},ua={},va={},wa={},ya={},za={},Aa={},Ba={},Ca={},Da={},Ga={},Ha={},Ia={},Ja={},Ka={},La={},Ma={},Na={},Oa={},Pa={},Qa={},Ra={},Sa={};function n$6(j){let _e=new URLSearchParams;_e.append("code",j);for(let et=1;et{let _e=u$7();return _e!==null?_e.clone():null})}function ub(j,_e,et){pb=!0;let tt=100{let rt=u$7()||tb(j);var nt=new Map,ot=j.getRootElement(),it=j._editorState,st=j._blockCursorElement;let lt=!1,ut="";for(var ct=0;ct<_e.length;ct++){var dt=_e[ct],ft=dt.type,pt=dt.target,gt=vb(pt,it);if(!(gt===null&&pt!==ot||y$7(gt))){if(ft==="characterData"){if(dt=tt&&B$5(gt))e:{dt=rt,ft=pt;var vt=gt;if(C$5(dt)){var bt=dt.anchor.getNode();if(bt.is(vt)&&dt.format!==bt.getFormat()){dt=!1;break e}}dt=ft.nodeType===3&&vt.isAttached()}dt&&(vt=wb(j._window),ft=dt=null,vt!==null&&vt.anchorNode===pt&&(dt=vt.anchorOffset,ft=vt.focusOffset),pt=pt.nodeValue,pt!==null&&xb(gt,pt,dt,ft,!1))}else if(ft==="childList"){for(lt=!0,ft=dt.addedNodes,vt=0;vt{ub(j,_e,et)})}function Eb(j,_e){let et=j.__mode,tt=j.__format;j=j.__style;let rt=_e.__mode,nt=_e.__format;return _e=_e.__style,(et===null||et===rt)&&(tt===null||tt===nt)&&(j===null||j===_e)}function Fb(j,_e){let et=j.mergeWithSibling(_e),tt=F$3()._normalizedNodes;return tt.add(j.__key),tt.add(_e.__key),et}function Gb(j){if(j.__text===""&&j.isSimpleText()&&!j.isUnmergeable())j.remove();else{for(var _e;(_e=j.getPreviousSibling())!==null&&B$5(_e)&&_e.isSimpleText()&&!_e.isUnmergeable();)if(_e.__text==="")_e.remove();else{Eb(_e,j)&&(j=Fb(_e,j));break}for(var et;(et=j.getNextSibling())!==null&&B$5(et)&&et.isSimpleText()&&!et.isUnmergeable();)if(et.__text==="")et.remove();else{Eb(j,et)&&Fb(j,et);break}}}function Hb(j){return Ib(j.anchor),Ib(j.focus),j}function Ib(j){for(;j.type==="element";){var _e=j.getNode(),et=j.offset;if(et===_e.getChildrenSize()?(_e=_e.getChildAtIndex(et-1),et=!0):(_e=_e.getChildAtIndex(et),et=!1),B$5(_e)){j.set(_e.__key,et?_e.getTextContentSize():0,"text");break}else if(!E$3(_e))break;j.set(_e.__key,et?_e.getChildrenSize():0,"element")}}let Jb=1,Kb=typeof queueMicrotask=="function"?queueMicrotask:j=>{Promise.resolve().then(j)};function Rb(j){let _e=document.activeElement;if(_e===null)return!1;let et=_e.nodeName;return y$7(vb(j))&&(et==="INPUT"||et==="TEXTAREA"||_e.contentEditable==="true"&&_e.__lexicalEditor==null)}function Sb(j,_e,et){let tt=j.getRootElement();try{return tt!==null&&tt.contains(_e)&&tt.contains(et)&&_e!==null&&!Rb(_e)&&Tb(_e)===j}catch{return!1}}function Tb(j){for(;j!=null;){let _e=j.__lexicalEditor;if(_e!=null)return _e;j=Ub(j)}return null}function Vb(j){return j.isToken()||j.isSegmented()}function Wb(j){for(;j!=null;){if(j.nodeType===3)return j;j=j.firstChild}return null}function Xb(j,_e,et){let tt=gb[_e];return et!==null&&(j&tt)===(et&tt)||(j^=tt,_e==="subscript"?j&=~gb.superscript:_e==="superscript"&&(j&=~gb.subscript)),j}function Yb(j,_e){if(_e!=null)j.__key=_e;else{G$3(),99J$1().getTextContent())}function gc(j,_e){v$6(j,()=>{var et=$b();if(!et.isEmpty())if(_e==="root")J$1().markDirty();else{et=et._nodeMap;for(let[,tt]of et)tt.markDirty()}},j._pendingEditorState===null?{tag:"history-merge"}:void 0)}function J$1(){return $b()._nodeMap.get("root")}function zb(j){G$3();let _e=$b();j!==null&&(j.dirty=!0,j.setCachedNodes(null)),_e._selection=j}function hc(j){var _e=F$3(),et;e:{for(et=j;et!=null;){let tt=et[`__lexicalKey_${_e._key}`];if(tt!==void 0){et=tt;break e}et=Ub(et)}et=null}return et===null?(_e=_e.getRootElement(),j===_e?I$1("root"):null):I$1(et)}function ic(j){return/[\uD800-\uDBFF][\uDC00-\uDFFF]/g.test(j)}function jc(j){let _e=[];for(;j!==null;)_e.push(j),j=j._parentEditor;return _e}function kc(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function lc(j,_e,et){if(_e=wb(_e._window),_e!==null){var tt=_e.anchorNode,{anchorOffset:rt,focusOffset:nt}=_e;if(tt!==null&&(_e=tt.nodeType===3?tt.nodeValue:null,tt=vb(tt),_e!==null&&B$5(tt))){if(_e===cb&&et){let ot=et.length;_e=et,nt=rt=ot}_e!==null&&xb(tt,_e,rt,nt,j)}}}function xb(j,_e,et,tt,rt){let nt=j;if(nt.isAttached()&&(rt||!nt.isDirty())){let lt=nt.isComposing(),ut=_e;if((lt||rt)&&_e[_e.length-1]===cb&&(ut=_e.slice(0,-1)),_e=nt.getTextContent(),rt||ut!==_e)if(ut==="")if(H$2(null),Ya||Za||bb)nt.remove();else{let ct=F$3();setTimeout(()=>{ct.update(()=>{nt.isAttached()&&nt.remove()})},20)}else{rt=nt.getParent(),_e=mc();var ot=nt.getTextContentSize(),it=cc(),st=nt.getKey();nt.isToken()||it!==null&&st===it&&!lt||C$5(_e)&&(rt!==null&&!rt.canInsertTextBefore()&&_e.anchor.offset===0||_e.anchor.key===j.__key&&_e.anchor.offset===0&&!nt.canInsertTextBefore()&&!lt||_e.focus.key===j.__key&&_e.focus.offset===ot&&!nt.canInsertTextAfter()&&!lt)?nt.markDirty():(j=u$7(),C$5(j)&&et!==null&&tt!==null&&(j.setTextNodeRange(nt,et,nt,tt),nt.isSegmented()&&(et=nt.getTextContent(),et=K(et),nt.replace(et),nt=et)),nt.setTextContent(ut))}}}function nc(j,_e){if(_e.isSegmented())return!0;if(!j.isCollapsed())return!1;j=j.anchor.offset;let et=_e.getParentOrThrow(),tt=_e.isToken();return j===0?((j=!_e.canInsertTextBefore()||!et.canInsertTextBefore()||tt)||(_e=_e.getPreviousSibling(),j=(B$5(_e)||E$3(_e)&&_e.isInline())&&!_e.canInsertTextAfter()),j):j===_e.getTextContentSize()?!_e.canInsertTextAfter()||!et.canInsertTextAfter()||tt:!1}function oc(j,_e){j.__lexicalClassNameCache===void 0&&(j.__lexicalClassNameCache={});let et=j.__lexicalClassNameCache,tt=et[_e];return tt!==void 0?tt:(j=j[_e],typeof j=="string"?(j=j.split(" "),et[_e]=j):j)}function pc(j,_e,et,tt,rt){et.size!==0&&(et=tt.__type,tt=tt.__key,_e=_e.get(et),_e===void 0&&n$6(33,et),et=_e.klass,_e=j.get(et),_e===void 0&&(_e=new Map,j.set(et,_e)),j=_e.get(tt),et=j==="destroyed"&&rt==="created",(j===void 0||et)&&_e.set(tt,et?"updated":rt))}function qc(j,_e,et){let tt=j.getParent(),rt=et;return tt!==null&&(_e&&et===0?(rt=j.getIndexWithinParent(),j=tt):_e||et!==j.getChildrenSize()||(rt=j.getIndexWithinParent()+1,j=tt)),j.getChildAtIndex(_e?rt-1:rt)}function rc(j,_e){var et=j.offset;return j.type==="element"?(j=j.getNode(),qc(j,_e,et)):(j=j.getNode(),_e&&et===0||!_e&&et===j.getTextContentSize()?(et=_e?j.getPreviousSibling():j.getNextSibling(),et===null?qc(j.getParentOrThrow(),_e,j.getIndexWithinParent()+(_e?0:1)):et):null)}function Ab(j){return j=(j=Db(j).event)&&j.inputType,j==="insertFromPaste"||j==="insertFromPasteAsQuotation"}function sc(j){return!L(j)&&!j.isLastChild()&&!j.isInline()}function tc(j,_e){return j=j._keyToDOMMap.get(_e),j===void 0&&n$6(75,_e),j}function Ub(j){return j=j.assignedSlot||j.parentElement,j!==null&&j.nodeType===11?j.host:j}function uc(j,_e){for(j=j.getParent();j!==null;){if(j.is(_e))return!0;j=j.getParent()}return!1}function Db(j){return j=j._window,j===null&&n$6(78),j}function vc(j){for(j=j.getParentOrThrow();j!==null&&!wc(j);)j=j.getParentOrThrow();return j}function wc(j){return L(j)||E$3(j)&&j.isShadowRoot()}function xc(j){return j=j.constructor.clone(j),Yb(j,null),j}function yc(j){var _e=F$3();let et=j.constructor.getType();return _e=_e._nodes.get(et),_e===void 0&&n$6(97),_e=_e.replace,_e!==null?(_e=_e(j),_e instanceof j.constructor||n$6(98),_e):j}function zc(j,_e){j=j.getParent(),!L(j)||E$3(_e)||y$7(_e)||n$6(99)}function Ac(j){return(y$7(j)||E$3(j)&&!j.canBeEmpty())&&!j.isInline()}function Bc(j,_e,et){et.style.removeProperty("caret-color"),_e._blockCursorElement=null,_e=j.parentElement,_e!==null&&_e.removeChild(j)}function wb(j){return Ta?(j||window).getSelection():null}function Cc(j){return j.nodeType===1}function Dc(j){if(y$7(j)&&!j.isInline())return!0;if(!E$3(j)||wc(j))return!1;var _e=j.getFirstChild();return _e=_e===null||Ec(_e)||B$5(_e)||_e.isInline(),!j.isInline()&&j.canBeEmpty()!==!1&&_e}function Fc(j,_e){for(;j!==null&&j.getParent()!==null&&!_e(j);)j=j.getParentOrThrow();return _e(j)?j:null}function Gc(j,_e,et,tt,rt,nt){for(j=j.getFirstChild();j!==null;){let ot=j.__key;j.__parent===_e&&(E$3(j)&&Gc(j,ot,et,tt,rt,nt),et.has(ot)||nt.delete(ot),rt.push(ot)),j=j.getNextSibling()}}function Hc(j,_e,et,tt){j=j._nodeMap,_e=_e._nodeMap;let rt=[];for(let[nt]of tt){let ot=_e.get(nt);ot===void 0||ot.isAttached()||(E$3(ot)&&Gc(ot,nt,j,_e,rt,tt),j.has(nt)||tt.delete(nt),rt.push(nt))}for(let nt of rt)_e.delete(nt);for(let nt of et)tt=_e.get(nt),tt===void 0||tt.isAttached()||(j.has(nt)||et.delete(nt),_e.delete(nt))}let M="",N="",Ic="",Jc,O,Kc,Lc=!1,Mc=!1,Nc,Oc=null,Pc,Zc,$c,ad,bd,cd;function dd(j,_e){let et=$c.get(j);if(_e!==null){let tt=ed(j);tt.parentNode===_e&&_e.removeChild(tt)}ad.has(j)||O._keyToDOMMap.delete(j),E$3(et)&&(j=fd(et,$c),gd(j,0,j.length-1,null)),et!==void 0&&pc(cd,Kc,Nc,et,"destroyed")}function gd(j,_e,et,tt){for(;_e<=et;++_e){let rt=j[_e];rt!==void 0&&dd(rt,tt)}}function hd(j,_e){j.setProperty("text-align",_e)}function id$2(j,_e){var et=Jc.theme.indent;if(typeof et=="string"){let tt=j.classList.contains(et);0<_e&&!tt?j.classList.add(et):1>_e&&tt&&j.classList.remove(et)}et=getComputedStyle(j).getPropertyValue("--lexical-indent-base-value")||"40px",j.style.setProperty("padding-inline-start",_e===0?"":`calc(${_e} * ${et})`)}function jd(j,_e){j=j.style,_e===0?hd(j,""):_e===1?hd(j,"left"):_e===2?hd(j,"center"):_e===3?hd(j,"right"):_e===4?hd(j,"justify"):_e===5?hd(j,"start"):_e===6&&hd(j,"end")}function kd(j,_e,et){let tt=ad.get(j);tt===void 0&&n$6(60);let rt=tt.createDOM(Jc,O);var nt=O._keyToDOMMap;if(rt["__lexicalKey_"+O._key]=j,nt.set(j,rt),B$5(tt)?rt.setAttribute("data-lexical-text","true"):y$7(tt)&&rt.setAttribute("data-lexical-decorator","true"),E$3(tt)){if(j=tt.__indent,nt=tt.__size,j!==0&&id$2(rt,j),nt!==0){--nt,j=fd(tt,ad);var ot=N;N="",ld(j,tt,0,nt,rt,null),md(tt,rt),N=ot}j=tt.__format,j!==0&&jd(rt,j),tt.isInline()||nd(null,tt,rt),sc(tt)&&(M+=` + +`,Ic+=` + +`)}else nt=tt.getTextContent(),y$7(tt)?(ot=tt.decorate(O,Jc),ot!==null&&od(j,ot),rt.contentEditable="false"):B$5(tt)&&(tt.isDirectionless()||(N+=nt)),M+=nt,Ic+=nt;return _e!==null&&(et!=null?_e.insertBefore(rt,et):(et=_e.__lexicalLineBreak,et!=null?_e.insertBefore(rt,et):_e.appendChild(rt))),pc(cd,Kc,Nc,tt,"created"),rt}function ld(j,_e,et,tt,rt,nt){let ot=M;for(M="";et<=tt;++et)kd(j[et],rt,nt);sc(_e)&&(M+=` + +`),rt.__lexicalTextContent=M,M=ot+M}function pd(j,_e){return j=_e.get(j),Ec(j)||y$7(j)&&j.isInline()}function nd(j,_e,et){j=j!==null&&(j.__size===0||pd(j.__last,$c)),_e=_e.__size===0||pd(_e.__last,ad),j?_e||(_e=et.__lexicalLineBreak,_e!=null&&et.removeChild(_e),et.__lexicalLineBreak=null):_e&&(_e=document.createElement("br"),et.__lexicalLineBreak=_e,et.appendChild(_e))}function md(j,_e){var et=_e.__lexicalDir;if(_e.__lexicalDirTextContent!==N||et!==Oc){let nt=N==="";if(nt)var tt=Oc;else tt=N,tt=eb.test(tt)?"rtl":fb.test(tt)?"ltr":null;if(tt!==et){let ot=_e.classList,it=Jc.theme;var rt=et!==null?it[et]:void 0;let st=tt!==null?it[tt]:void 0;rt!==void 0&&(typeof rt=="string"&&(rt=rt.split(" "),rt=it[et]=rt),ot.remove(...rt)),tt===null||nt&&tt==="ltr"?_e.removeAttribute("dir"):(st!==void 0&&(typeof st=="string"&&(et=st.split(" "),st=it[tt]=et),st!==void 0&&ot.add(...st)),_e.dir=tt),Mc||(j.getWritable().__dir=tt)}Oc=tt,_e.__lexicalDirTextContent=N,_e.__lexicalDir=tt}}function fd(j,_e){let et=[];for(j=j.__first;j!==null;){let tt=_e.get(j);tt===void 0&&n$6(101),et.push(j),j=tt.__next}return et}function qd(j,_e){var et=$c.get(j),tt=ad.get(j);et!==void 0&&tt!==void 0||n$6(61);var rt=Lc||Zc.has(j)||Pc.has(j);let nt=tc(O,j);if(et===tt&&!rt)return E$3(et)?(tt=nt.__lexicalTextContent,tt!==void 0&&(M+=tt,Ic+=tt),tt=nt.__lexicalDirTextContent,tt!==void 0&&(N+=tt)):(tt=et.getTextContent(),B$5(et)&&!et.isDirectionless()&&(N+=tt),Ic+=tt,M+=tt),nt;if(et!==tt&&rt&&pc(cd,Kc,Nc,tt,"updated"),tt.updateDOM(et,nt,Jc))return tt=kd(j,null,null),_e===null&&n$6(62),_e.replaceChild(tt,nt),dd(j,null),tt;if(E$3(et)&&E$3(tt)){if(j=tt.__indent,j!==et.__indent&&id$2(nt,j),j=tt.__format,j!==et.__format&&jd(nt,j),rt){j=N,N="",rt=M;var ot=et.__size,it=tt.__size;if(M="",ot===1&&it===1){var st=et.__first;if(_e=tt.__first,st===_e)qd(st,nt);else{var lt=ed(st);_e=kd(_e,null,null),nt.replaceChild(_e,lt),dd(st,null)}}else{_e=fd(et,$c);var ut=fd(tt,ad);if(ot===0)it!==0&&ld(ut,tt,0,it-1,nt,null);else if(it===0)ot!==0&&(st=nt.__lexicalLineBreak==null,gd(_e,0,ot-1,st?null:nt),st&&(nt.textContent=""));else{var ct=_e;_e=ut,ut=ot-1,ot=it-1;let ft=nt.firstChild,pt=0;for(it=0;pt<=ut&&it<=ot;){var dt=ct[pt];let gt=_e[it];if(dt===gt)ft=rd(qd(gt,nt)),pt++,it++;else{st===void 0&&(st=new Set(ct)),lt===void 0&&(lt=new Set(_e));let vt=lt.has(dt),bt=st.has(gt);vt?(bt?(dt=tc(O,gt),dt===ft?ft=rd(qd(gt,nt)):(ft!=null?nt.insertBefore(dt,ft):nt.appendChild(dt),qd(gt,nt)),pt++):kd(gt,nt,ft),it++):(ft=rd(ed(dt)),dd(dt,nt),pt++)}}st=pt>ut,lt=it>ot,st&&!lt?(st=_e[ot+1],st=st===void 0?null:O.getElementByKey(st),ld(_e,tt,it,ot,nt,st)):lt&&!st&&gd(ct,pt,ut,nt)}}sc(tt)&&(M+=` + +`),nt.__lexicalTextContent=M,M=rt+M,md(tt,nt),N=j,L(tt)||tt.isInline()||nd(et,tt,nt)}sc(tt)&&(M+=` + +`,Ic+=` + +`)}else et=tt.getTextContent(),y$7(tt)?(rt=tt.decorate(O,Jc),rt!==null&&od(j,rt)):B$5(tt)&&!tt.isDirectionless()&&(N+=et),M+=et,Ic+=et;return!Mc&&L(tt)&&tt.__cachedText!==Ic&&(tt.getWritable().__cachedText=Ic),nt}function od(j,_e){let et=O._pendingDecorators,tt=O._decorators;if(et===null){if(tt[j]===_e)return;et=ec(O)}et[j]=_e}function rd(j){return j=j.nextSibling,j!==null&&j===O._blockCursorElement&&(j=j.nextSibling),j}function ed(j){let _e=bd.get(j);return _e===void 0&&n$6(75,j),_e}let sd=Object.freeze({}),zd=[["keydown",td],["pointerdown",ud],["compositionstart",vd],["compositionend",wd],["input",xd],["click",yd],["cut",sd],["copy",sd],["dragstart",sd],["dragover",sd],["dragend",sd],["paste",sd],["focus",sd],["blur",sd],["drop",sd]];Xa&&zd.push(["beforeinput",(j,_e)=>Ad(j,_e)]);let Bd=0,Cd=0,Dd=0,Ed=null,Fd=0,Gd=!1,Hd=!1,Id=!1,Jd=!1,Kd=[0,"",0,"root",0];function Ld(j,_e,et,tt,rt){let nt=j.anchor,ot=j.focus,it=nt.getNode();var st=F$3();let lt=wb(st._window),ut=lt!==null?lt.anchorNode:null,ct=nt.key;st=st.getElementByKey(ct);let dt=et.length;return ct!==ot.key||!B$5(it)||(!rt&&(!Xa||Dddt||ic(et))&&nt.offset!==ot.offset&&!it.isComposing()||Vb(it)||it.isDirty()&&1{if(!et)zb(null);else if(Sb(_e,tt,nt)){var it=u$7();if(C$5(it)){var st=it.anchor,lt=st.getNode();if(it.isCollapsed()){j.type==="Range"&&j.anchorNode===j.focusNode&&(it.dirty=!0);var ut=Db(_e).event;ut=ut?ut.timeStamp:performance.now();let[gt,vt,bt,_t,xt]=Kd;var ct=J$1();ct=_e.isComposing()===!1&&ct.getTextContent()==="",ut{let et=u$7();var tt=wb(_e._window);let rt=mc();if(tt)if(C$5(et)){let ot=et.anchor;var nt=ot.getNode();ot.type==="element"&&ot.offset===0&&et.isCollapsed()&&!L(nt)&&J$1().getChildrenSize()===1&&nt.getTopLevelElementOrThrow().isEmpty()&&rt!==null&&et.is(rt)?(tt.removeAllRanges(),et.dirty=!0):j.detail!==3||et.isCollapsed()||(tt=et.focus.getNode(),nt!==tt&&(E$3(nt)?nt.select(0):nt.getParentOrThrow().select(0)))}else j.pointerType==="touch"&&(nt=tt.anchorNode,nt!==null&&(nt=nt.nodeType,nt===1||nt===3))&&(tt=Od(rt,tt,_e,j),zb(tt));R(_e,ca,j)})}function ud(j,_e){let et=j.target;j=j.pointerType,et instanceof Node&&j!=="touch"&&v$6(_e,()=>{y$7(vb(et))||(Hd=!0)})}function Pd(j){return j.getTargetRanges?(j=j.getTargetRanges(),j.length===0?null:j[0]):null}function Qd(j,_e){return j!==_e||E$3(j)||E$3(_e)||!j.isToken()||!_e.isToken()}function Ad(j,_e){let et=j.inputType,tt=Pd(j);et==="deleteCompositionText"||Wa&&Ab(_e)||et!=="insertCompositionText"&&v$6(_e,()=>{let rt=u$7();if(et==="deleteContentBackward"){if(rt===null){var nt=mc();if(!C$5(nt))return;zb(nt.clone())}if(C$5(rt)){$a&&H$2(rt.anchor.key),Cd===229&&j.timeStamp{v$6(_e,()=>{H$2(null)})},30),C$5(rt)&&(nt=rt.anchor.getNode(),nt.markDirty(),rt.format=nt.getFormat(),B$5(nt)||n$6(142),rt.style=nt.getStyle()),1>=rt.anchor.getNode().getTextContent().length&&(j.preventDefault(),R(_e,da,!0))):(H$2(null),j.preventDefault(),R(_e,da,!0));return}}if(C$5(rt)){nt=j.data,Ed!==null&&lc(!1,_e,Ed),rt.dirty&&Ed===null||!rt.isCollapsed()||L(rt.anchor.getNode())||tt===null||rt.applyDOMRange(tt),Ed=null;var ot=rt.focus,it=rt.anchor.getNode();if(ot=ot.getNode(),et==="insertText"||et==="insertTranspose")nt===` +`?(j.preventDefault(),R(_e,ea,!1)):nt===` + +`?(j.preventDefault(),R(_e,fa,void 0)):nt==null&&j.dataTransfer?(nt=j.dataTransfer.getData("text/plain"),j.preventDefault(),rt.insertRawText(nt)):nt!=null&&Ld(rt,tt,nt,j.timeStamp,!0)?(j.preventDefault(),R(_e,ka$1,nt)):Ed=nt,Dd=j.timeStamp;else switch(j.preventDefault(),et){case"insertFromYank":case"insertFromDrop":case"insertReplacementText":R(_e,ka$1,j);break;case"insertFromComposition":H$2(null),R(_e,ka$1,j);break;case"insertLineBreak":H$2(null),R(_e,ea,!1);break;case"insertParagraph":H$2(null),Id&&!Za?(Id=!1,R(_e,ea,!1)):R(_e,fa,void 0);break;case"insertFromPaste":case"insertFromPasteAsQuotation":R(_e,la,j);break;case"deleteByComposition":Qd(it,ot)&&R(_e,ma,j);break;case"deleteByDrag":case"deleteByCut":R(_e,ma,j);break;case"deleteContent":R(_e,da,!1);break;case"deleteWordBackward":R(_e,oa,!0);break;case"deleteWordForward":R(_e,oa,!1);break;case"deleteHardLineBackward":case"deleteSoftLineBackward":R(_e,pa,!0);break;case"deleteContentForward":case"deleteHardLineForward":case"deleteSoftLineForward":R(_e,pa,!1);break;case"formatStrikeThrough":R(_e,qa,"strikethrough");break;case"formatBold":R(_e,qa,"bold");break;case"formatItalic":R(_e,qa,"italic");break;case"formatUnderline":R(_e,qa,"underline");break;case"historyUndo":R(_e,ra,void 0);break;case"historyRedo":R(_e,sa,void 0)}}})}function xd(j,_e){j.stopPropagation(),v$6(_e,()=>{var et=u$7(),tt=j.data,rt=Pd(j);if(tt!=null&&C$5(et)&&Ld(et,rt,tt,j.timeStamp,!1)){Jd&&(Rd(_e,tt),Jd=!1);var nt=et.anchor,ot=nt.getNode();if(rt=wb(_e._window),rt===null)return;let it=nt.offset;(nt=Xa&&!et.isCollapsed()&&B$5(ot)&&rt.anchorNode!==null)&&(ot=ot.getTextContent().slice(0,it)+tt+ot.getTextContent().slice(it+et.focus.offset),rt=rt.anchorNode,nt=ot===(rt.nodeType===3?rt.nodeValue:null)),nt||R(_e,ka$1,tt),tt=tt.length,Wa&&1{let et=u$7();if(C$5(et)&&!_e.isComposing()){let tt=et.anchor,rt=et.anchor.getNode();H$2(tt.key),(j.timeStamp{Rd(_e,j.data)})}function td(j,_e){if(Bd=j.timeStamp,Cd=j.keyCode,!_e.isComposing()){var{keyCode:et,shiftKey:tt,ctrlKey:rt,metaKey:nt,altKey:ot}=j;if(!R(_e,ta,j)){if(et!==39||rt||nt||ot)if(et!==39||ot||tt||!rt&&!nt)if(et!==37||rt||nt||ot)if(et!==37||ot||tt||!rt&&!nt)if(et!==38||rt||nt)if(et!==40||rt||nt)if(et===13&&tt)Id=!0,R(_e,Ba,j);else if(et===32)R(_e,Ca,j);else if(t$5&&rt&&et===79)j.preventDefault(),Id=!0,R(_e,ea,!0);else if(et!==13||tt){var it=t$5?ot||nt?!1:et===8||et===72&&rt:rt||ot||nt?!1:et===8;it?et===8?R(_e,Da,j):(j.preventDefault(),R(_e,da,!0)):et===27?R(_e,Ga,j):(it=t$5?tt||ot||nt?!1:et===46||et===68&&rt:rt||ot||nt?!1:et===46,it?et===46?R(_e,Ha,j):(j.preventDefault(),R(_e,da,!1)):et===8&&(t$5?ot:rt)?(j.preventDefault(),R(_e,oa,!0)):et===46&&(t$5?ot:rt)?(j.preventDefault(),R(_e,oa,!1)):t$5&&nt&&et===8?(j.preventDefault(),R(_e,pa,!0)):t$5&&nt&&et===46?(j.preventDefault(),R(_e,pa,!1)):et===66&&!ot&&(t$5?nt:rt)?(j.preventDefault(),R(_e,qa,"bold")):et===85&&!ot&&(t$5?nt:rt)?(j.preventDefault(),R(_e,qa,"underline")):et===73&&!ot&&(t$5?nt:rt)?(j.preventDefault(),R(_e,qa,"italic")):et!==9||ot||rt||nt?et===90&&!tt&&(t$5?nt:rt)?(j.preventDefault(),R(_e,ra,void 0)):(it=t$5?et===90&&nt&&tt:et===89&&rt||et===90&&rt&&tt,it?(j.preventDefault(),R(_e,sa,void 0)):Sd(_e._editorState._selection)?(it=tt?!1:et===67?t$5?nt:rt:!1,it?(j.preventDefault(),R(_e,Na,j)):(it=tt?!1:et===88?t$5?nt:rt:!1,it?(j.preventDefault(),R(_e,Oa,j)):et===65&&(t$5?nt:rt)&&(j.preventDefault(),R(_e,Pa,j)))):!Wa&&et===65&&(t$5?nt:rt)&&(j.preventDefault(),R(_e,Pa,j))):R(_e,Ia,j))}else Id=!1,R(_e,Ba,j);else R(_e,Aa,j);else R(_e,za,j);else R(_e,ya,j);else R(_e,wa,j);else R(_e,va,j);else R(_e,ua,j);(rt||tt||ot||nt)&&R(_e,Sa,j)}}}function Td(j){let _e=j.__lexicalEventHandles;return _e===void 0&&(_e=[],j.__lexicalEventHandles=_e),_e}let Ud=new Map;function Vd(j){var _e=j.target;let et=wb(_e==null?null:_e.nodeType===9?_e.defaultView:_e.ownerDocument.defaultView);if(et!==null){var tt=Tb(et.anchorNode);if(tt!==null){Hd&&(Hd=!1,v$6(tt,()=>{var it=mc(),st=et.anchorNode;st!==null&&(st=st.nodeType,st===1||st===3)&&(it=Od(it,et,tt,j),zb(it))})),_e=jc(tt),_e=_e[_e.length-1];var rt=_e._key,nt=Ud.get(rt),ot=nt||_e;ot!==tt&&Nd(et,ot,!1),Nd(et,tt,!0),tt!==_e?Ud.set(rt,tt):nt&&Ud.delete(rt)}}}function Wd(j,_e){Fd===0&&j.ownerDocument.addEventListener("selectionchange",Vd),Fd++,j.__lexicalEditor=_e;let et=Td(j);for(let tt=0;tt{it._lexicalHandled!==!0&&(it._lexicalHandled=!0,_e.isEditable()&&nt(it,_e))}:it=>{if(it._lexicalHandled!==!0&&(it._lexicalHandled=!0,_e.isEditable()))switch(rt){case"cut":return R(_e,Oa,it);case"copy":return R(_e,Na,it);case"paste":return R(_e,la,it);case"dragstart":return R(_e,Ka,it);case"dragover":return R(_e,La,it);case"dragend":return R(_e,Ma,it);case"focus":return R(_e,Qa,it);case"blur":return R(_e,Ra,it);case"drop":return R(_e,Ja,it)}};j.addEventListener(rt,ot),et.push(()=>{j.removeEventListener(rt,ot)})}}function Xd(j,_e,et){G$3();var tt=j.__key;let rt=j.getParent();if(rt!==null){var nt=u$7();if(C$5(nt)&&E$3(j)){var{anchor:ot,focus:it}=nt,st=ot.getNode(),lt=it.getNode();uc(st,j)&&ot.set(j.__key,0,"element"),uc(lt,j)&&it.set(j.__key,0,"element")}if(st=nt,lt=!1,C$5(st)&&_e){nt=st.anchor;let ut=st.focus;nt.key===tt&&(Yd(nt,j,rt,j.getPreviousSibling(),j.getNextSibling()),lt=!0),ut.key===tt&&(Yd(ut,j,rt,j.getPreviousSibling(),j.getNextSibling()),lt=!0)}else Sd(st)&&_e&&j.isSelected()&&j.selectPrevious();C$5(st)&&_e&&!lt?(tt=j.getIndexWithinParent(),ac(j),Zd(st,rt,tt,-1)):ac(j),et||wc(rt)||rt.canBeEmpty()||!rt.isEmpty()||Xd(rt,_e),_e&&L(rt)&&rt.isEmpty()&&rt.selectEnd()}}class $d{static getType(){n$6(64,this.name)}static clone(){n$6(65,this.name)}constructor(_e){this.__type=this.constructor.getType(),this.__next=this.__prev=this.__parent=null,Yb(this,_e)}getType(){return this.__type}isInline(){n$6(137,this.constructor.name)}isAttached(){for(var _e=this.__key;_e!==null;){if(_e==="root")return!0;if(_e=I$1(_e),_e===null)break;_e=_e.__parent}return!1}isSelected(_e){if(_e=_e||u$7(),_e==null)return!1;let et=_e.getNodes().some(tt=>tt.__key===this.__key);return B$5(this)?et:C$5(_e)&&_e.anchor.type==="element"&&_e.focus.type==="element"&&_e.anchor.key===_e.focus.key&&_e.anchor.offset===_e.focus.offset?!1:et}getKey(){return this.__key}getIndexWithinParent(){var _e=this.getParent();if(_e===null)return-1;_e=_e.getFirstChild();let et=0;for(;_e!==null;){if(this.is(_e))return et;et++,_e=_e.getNextSibling()}return-1}getParent(){let _e=this.getLatest().__parent;return _e===null?null:I$1(_e)}getParentOrThrow(){let _e=this.getParent();return _e===null&&n$6(66,this.__key),_e}getTopLevelElement(){let _e=this;for(;_e!==null;){let et=_e.getParent();if(wc(et))return E$3(_e)||n$6(138),_e;_e=et}return null}getTopLevelElementOrThrow(){let _e=this.getTopLevelElement();return _e===null&&n$6(67,this.__key),_e}getParents(){let _e=[],et=this.getParent();for(;et!==null;)_e.push(et),et=et.getParent();return _e}getParentKeys(){let _e=[],et=this.getParent();for(;et!==null;)_e.push(et.__key),et=et.getParent();return _e}getPreviousSibling(){let _e=this.getLatest().__prev;return _e===null?null:I$1(_e)}getPreviousSiblings(){let _e=[];var et=this.getParent();if(et===null)return _e;for(et=et.getFirstChild();et!==null&&!et.is(this);)_e.push(et),et=et.getNextSibling();return _e}getNextSibling(){let _e=this.getLatest().__next;return _e===null?null:I$1(_e)}getNextSiblings(){let _e=[],et=this.getNextSibling();for(;et!==null;)_e.push(et),et=et.getNextSibling();return _e}getCommonAncestor(_e){let et=this.getParents();var tt=_e.getParents();E$3(this)&&et.unshift(this),E$3(_e)&&tt.unshift(_e),_e=et.length;var rt=tt.length;if(_e===0||rt===0||et[_e-1]!==tt[rt-1])return null;for(tt=new Set(tt),rt=0;rt<_e;rt++){let nt=et[rt];if(tt.has(nt))return nt}return null}is(_e){return _e==null?!1:this.__key===_e.__key}isBefore(_e){if(this===_e)return!1;if(_e.isParentOf(this))return!0;if(this.isParentOf(_e))return!1;var et=this.getCommonAncestor(_e);let tt=this;for(;;){var rt=tt.getParentOrThrow();if(rt===et){rt=tt.getIndexWithinParent();break}tt=rt}for(tt=_e;;){if(_e=tt.getParentOrThrow(),_e===et){et=tt.getIndexWithinParent();break}tt=_e}return rt{it.append(pt)})),C$5(tt)&&(zb(tt),et=tt.anchor,tt=tt.focus,et.key===nt&&ae(et,it),tt.key===nt&&ae(tt,it)),cc()===nt&&H$2(ot),it}insertAfter(_e,et=!0){G$3(),zc(this,_e);var tt=this.getWritable();let rt=_e.getWritable();var nt=rt.getParent();let ot=u$7();var it=!1,st=!1;if(nt!==null){var lt=_e.getIndexWithinParent();ac(rt),C$5(ot)&&(st=nt.__key,it=ot.anchor,nt=ot.focus,it=it.type==="element"&&it.key===st&&it.offset===lt+1,st=nt.type==="element"&&nt.key===st&&nt.offset===lt+1)}nt=this.getNextSibling(),lt=this.getParentOrThrow().getWritable();let ut=rt.__key,ct=tt.__next;return nt===null?lt.__last=ut:nt.getWritable().__prev=ut,lt.__size++,tt.__next=ut,rt.__next=ct,rt.__prev=tt.__key,rt.__parent=tt.__parent,et&&C$5(ot)&&(et=this.getIndexWithinParent(),Zd(ot,lt,et+1),tt=lt.__key,it&&ot.anchor.set(tt,et+2,"element"),st&&ot.focus.set(tt,et+2,"element")),_e}insertBefore(_e,et=!0){G$3(),zc(this,_e);var tt=this.getWritable();let rt=_e.getWritable(),nt=rt.__key;ac(rt);let ot=this.getPreviousSibling(),it=this.getParentOrThrow().getWritable(),st=tt.__prev,lt=this.getIndexWithinParent();return ot===null?it.__first=nt:ot.getWritable().__next=nt,it.__size++,tt.__prev=nt,rt.__prev=st,rt.__next=tt.__key,rt.__parent=tt.__parent,tt=u$7(),et&&C$5(tt)&&(et=this.getParentOrThrow(),Zd(tt,et,lt)),_e}isParentRequired(){return!1}createParentElementNode(){return be()}selectStart(){return this.selectPrevious()}selectEnd(){return this.selectNext(0,0)}selectPrevious(_e,et){G$3();let tt=this.getPreviousSibling(),rt=this.getParentOrThrow();return tt===null?rt.select(0,0):E$3(tt)?tt.select():B$5(tt)?tt.select(_e,et):(_e=tt.getIndexWithinParent()+1,rt.select(_e,_e))}selectNext(_e,et){G$3();let tt=this.getNextSibling(),rt=this.getParentOrThrow();return tt===null?rt.select():E$3(tt)?tt.select(0,0):B$5(tt)?tt.select(_e,et):(_e=tt.getIndexWithinParent(),rt.select(_e,_e))}markDirty(){this.getWritable()}}function ce(j,_e,et){et=et||_e.getParentOrThrow().getLastChild();let tt=_e;for(_e=[_e];tt!==et;)tt.getNextSibling()||n$6(140),tt=tt.getNextSibling(),_e.push(tt);for(let rt of _e)j=j.insertAfter(rt)}class de extends $d{static getType(){return"linebreak"}static clone(_e){return new de(_e.__key)}constructor(_e){super(_e)}getTextContent(){return` +`}createDOM(){return document.createElement("br")}updateDOM(){return!1}static importDOM(){return{br:_e=>{e:{var et=_e.parentElement;if(et!==null){let tt=et.firstChild;if((tt===_e||tt.nextSibling===_e&&ee(tt))&&(et=et.lastChild,et===_e||et.previousSibling===_e&&ee(et))){_e=!0;break e}}_e=!1}return _e?null:{conversion:fe,priority:0}}}}static importJSON(){return ge()}exportJSON(){return{type:"linebreak",version:1}}}function fe(){return{node:ge()}}function ge(){return yc(new de)}function Ec(j){return j instanceof de}function ee(j){return j.nodeType===3&&/^( |\t|\r?\n)+$/.test(j.textContent||"")}function he(j,_e){return _e&16?"code":_e&128?"mark":_e&32?"sub":_e&64?"sup":null}function ie(j,_e){return _e&1?"strong":_e&2?"em":"span"}function je(j,_e,et,tt,rt){j=tt.classList,tt=oc(rt,"base"),tt!==void 0&&j.add(...tt),tt=oc(rt,"underlineStrikethrough");let nt=!1,ot=_e&8&&_e&4;var it=et&8&&et&4;tt!==void 0&&(it?(nt=!0,ot||j.add(...tt)):ot&&j.remove(...tt));for(let st in gb)it=gb[st],tt=oc(rt,st),tt!==void 0&&(et&it?!nt||st!=="underline"&&st!=="strikethrough"?(!(_e&it)||ot&&st==="underline"||st==="strikethrough")&&j.add(...tt):_e&it&&j.remove(...tt):_e&it&&j.remove(...tt))}function ke(j,_e,et){let tt=_e.firstChild;if(et=et.isComposing(),j+=et?cb:"",tt==null)_e.textContent=j;else if(_e=tt.nodeValue,_e!==j)if(et||Wa){et=_e.length;let rt=j.length,nt=0,ot=0;for(;nt({conversion:ne,priority:0}),b:()=>({conversion:oe,priority:0}),code:()=>({conversion:pe,priority:0}),em:()=>({conversion:pe,priority:0}),i:()=>({conversion:pe,priority:0}),s:()=>({conversion:pe,priority:0}),span:()=>({conversion:qe,priority:0}),strong:()=>({conversion:pe,priority:0}),sub:()=>({conversion:pe,priority:0}),sup:()=>({conversion:pe,priority:0}),u:()=>({conversion:pe,priority:0})}}static importJSON(_e){let et=K(_e.text);return et.setFormat(_e.format),et.setDetail(_e.detail),et.setMode(_e.mode),et.setStyle(_e.style),et}exportDOM(_e){return{element:_e}=super.exportDOM(_e),_e!==null&&Cc(_e)||n$6(132),_e.style.whiteSpace="pre-wrap",this.hasFormat("bold")&&(_e=le(_e,"b")),this.hasFormat("italic")&&(_e=le(_e,"i")),this.hasFormat("strikethrough")&&(_e=le(_e,"s")),this.hasFormat("underline")&&(_e=le(_e,"u")),{element:_e}}exportJSON(){return{detail:this.getDetail(),format:this.getFormat(),mode:this.getMode(),style:this.getStyle(),text:this.getTextContent(),type:"text",version:1}}selectionTransform(){}setFormat(_e){let et=this.getWritable();return et.__format=typeof _e=="string"?gb[_e]:_e,et}setDetail(_e){let et=this.getWritable();return et.__detail=typeof _e=="string"?hb[_e]:_e,et}setStyle(_e){let et=this.getWritable();return et.__style=_e,et}toggleFormat(_e){let et=this.getFormat();return _e=Xb(et,_e,null),this.setFormat(_e)}toggleDirectionless(){let _e=this.getWritable();return _e.__detail^=1,_e}toggleUnmergeable(){let _e=this.getWritable();return _e.__detail^=2,_e}setMode(_e){if(_e=nb[_e],this.__mode===_e)return this;let et=this.getWritable();return et.__mode=_e,et}setTextContent(_e){if(this.__text===_e)return this;let et=this.getWritable();return et.__text=_e,et}select(_e,et){G$3();let tt=u$7();var rt=this.getTextContent();let nt=this.__key;if(typeof rt=="string"?(rt=rt.length,_e===void 0&&(_e=rt),et===void 0&&(et=rt)):et=_e=0,C$5(tt))rt=cc(),rt!==tt.anchor.key&&rt!==tt.focus.key||H$2(nt),tt.setTextNodeRange(this,_e,this,et);else return re(nt,_e,nt,et,"text","text");return tt}selectStart(){return this.select(0,0)}selectEnd(){let _e=this.getTextContentSize();return this.select(_e,_e)}spliceText(_e,et,tt,rt){let nt=this.getWritable(),ot=nt.__text,it=tt.length,st=_e;0>st&&(st=it+st,0>st&&(st=0));let lt=u$7();return rt&&C$5(lt)&&(_e+=it,lt.setTextNodeRange(nt,_e,nt,_e)),et=ot.slice(0,st)+tt+ot.slice(st+et),nt.__text=et,nt}canInsertTextBefore(){return!0}canInsertTextAfter(){return!0}splitText(..._e){G$3();var et=this.getLatest(),tt=et.getTextContent(),rt=et.__key,nt=cc(),ot=new Set(_e);_e=[];for(var it=tt.length,st="",lt=0;ltut&&bt.offset<=pt&&(bt.key=vt,bt.offset-=ut,et.dirty=!0),_t.key===rt&&_t.type==="text"&&_t.offset>ut&&_t.offset<=pt&&(_t.key=vt,_t.offset-=ut,et.dirty=!0)}nt===rt&&H$2(vt),ut=pt,st.push(ft)}return rt=this.getPreviousSibling(),nt=this.getNextSibling(),rt!==null&&bc(rt),nt!==null&&bc(nt),rt=tt.getWritable(),nt=this.getIndexWithinParent(),it?(rt.splice(nt,0,st),this.remove()):rt.splice(nt,1,st),C$5(et)&&Zd(et,tt,nt,ot-1),st}mergeWithSibling(_e){var et=_e===this.getPreviousSibling();et||_e===this.getNextSibling()||n$6(50);var tt=this.__key;let rt=_e.__key,nt=this.__text,ot=nt.length;cc()===rt&&H$2(tt);let it=u$7();if(C$5(it)){let st=it.anchor,lt=it.focus;st!==null&&st.key===rt&&(se(st,et,tt,_e,ot),it.dirty=!0),lt!==null&<.key===rt&&(se(lt,et,tt,_e,ot),it.dirty=!0)}return tt=_e.__text,this.setTextContent(et?tt+nt:nt+tt),et=this.getWritable(),_e.remove(),et}isTextEntity(){return!1}}function qe(j){let _e=j.style.fontWeight==="700",et=j.style.textDecoration==="line-through",tt=j.style.fontStyle==="italic",rt=j.style.textDecoration==="underline",nt=j.style.verticalAlign;return{forChild:ot=>(B$5(ot)&&(_e&&ot.toggleFormat("bold"),et&&ot.toggleFormat("strikethrough"),tt&&ot.toggleFormat("italic"),rt&&ot.toggleFormat("underline"),nt==="sub"&&ot.toggleFormat("subscript"),nt==="super"&&ot.toggleFormat("superscript")),ot),node:null}}function oe(j){let _e=j.style.fontWeight==="normal";return{forChild:et=>(B$5(et)&&!_e&&et.toggleFormat("bold"),et),node:null}}let te=new WeakMap;function ne(j){j.parentElement===null&&n$6(129);for(var _e=j.textContent||"",et,tt=j.parentNode,rt=[j];tt!==null&&(et=te.get(tt))===void 0&&!(tt.nodeName==="PRE"||tt.nodeType===1&&tt.style!==void 0&&tt.style.whiteSpace!==void 0&&tt.style.whiteSpace.startsWith("pre"));)rt.push(tt),tt=tt.parentNode;for(et=et===void 0?tt:et,tt=0;tt(B$5(et)&&!et.hasFormat(_e)&&et.toggleFormat(_e),et),node:null}}function K(j=""){return yc(new me(j))}function B$5(j){return j instanceof me}class He extends me{static getType(){return"tab"}static clone(_e){let et=new He(_e.__key);return et.__text=_e.__text,et.__format=_e.__format,et.__style=_e.__style,et}constructor(_e){super(" ",_e),this.__detail=2}static importDOM(){return null}static importJSON(_e){let et=ue();return et.setFormat(_e.format),et.setStyle(_e.style),et}exportJSON(){return{...super.exportJSON(),type:"tab",version:1}}setTextContent(){n$6(126)}setDetail(){n$6(127)}setMode(){n$6(128)}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}}function ue(){return yc(new He)}function Ie(j){return j instanceof He}class Je{constructor(_e,et,tt){this._selection=null,this.key=_e,this.offset=et,this.type=tt}is(_e){return this.key===_e.key&&this.offset===_e.offset&&this.type===_e.type}isBefore(_e){let et=this.getNode(),tt=_e.getNode(),rt=this.offset;if(_e=_e.offset,E$3(et)){var nt=et.getDescendantByIndex(rt);et=nt??et}return E$3(tt)&&(nt=tt.getDescendantByIndex(_e),tt=nt??tt),et===tt?rt<_e:et.isBefore(tt)}getNode(){let _e=I$1(this.key);return _e===null&&n$6(20),_e}set(_e,et,tt){let rt=this._selection,nt=this.key;this.key=_e,this.offset=et,this.type=tt,dc()||(cc()===nt&&H$2(_e),rt!==null&&(rt.setCachedNodes(null),rt.dirty=!0))}}function Ke(j,_e,et){return new Je(j,_e,et)}function Le(j,_e){let et=_e.__key,tt=j.offset,rt="element";if(B$5(_e))rt="text",_e=_e.getTextContentSize(),tt>_e&&(tt=_e);else if(!E$3(_e)){var nt=_e.getNextSibling();B$5(nt)?(et=nt.__key,tt=0,rt="text"):(nt=_e.getParent())&&(et=nt.__key,tt=_e.getIndexWithinParent()+1)}j.set(et,tt,rt)}function ae(j,_e){if(E$3(_e)){let et=_e.getLastDescendant();E$3(et)||B$5(et)?Le(j,et):Le(j,_e)}else Le(j,_e)}function Me(j,_e,et,tt){let rt=j.getNode(),nt=rt.getChildAtIndex(j.offset),ot=K(),it=L(rt)?be().append(ot):ot;ot.setFormat(et),ot.setStyle(tt),nt===null?rt.append(it):nt.insertBefore(it),j.is(_e)&&_e.set(ot.__key,0,"text"),j.set(ot.__key,0,"text")}function Ne(j,_e,et,tt){j.key=_e,j.offset=et,j.type=tt}class Oe{constructor(_e){this._cachedNodes=null,this._nodes=_e,this.dirty=!1}getCachedNodes(){return this._cachedNodes}setCachedNodes(_e){this._cachedNodes=_e}is(_e){if(!Sd(_e))return!1;let et=this._nodes,tt=_e._nodes;return et.size===tt.size&&Array.from(et).every(rt=>tt.has(rt))}isCollapsed(){return!1}isBackward(){return!1}getStartEndPoints(){return null}add(_e){this.dirty=!0,this._nodes.add(_e),this._cachedNodes=null}delete(_e){this.dirty=!0,this._nodes.delete(_e),this._cachedNodes=null}clear(){this.dirty=!0,this._nodes.clear(),this._cachedNodes=null}has(_e){return this._nodes.has(_e)}clone(){return new Oe(new Set(this._nodes))}extract(){return this.getNodes()}insertRawText(){}insertText(){}insertNodes(_e){let et=this.getNodes(),tt=et.length;var rt=et[tt-1];if(B$5(rt))rt=rt.select();else{let nt=rt.getIndexWithinParent()+1;rt=rt.getParentOrThrow().select(nt,nt)}for(rt.insertNodes(_e),_e=0;_e(E$3(it)||y$7(it))&&!it.isInline())){et=Ue(_e),_e=et.getLastDescendant();var nt=et.getChildren();et=E$3(tt)&&tt.isEmpty()?null:this.insertParagraph(),rt=nt[nt.length-1];var ot=nt[0];(it=>E$3(it)&&Dc(it)&&!it.isEmpty()&&E$3(tt)&&(!tt.isEmpty()||"__value"in tt&&"__checked"in tt))(ot)&&(E$3(tt)||n$6(135),tt.append(...ot.getChildren()),ot=nt[1]),ot&&ce(tt,ot),nt=Fc(_e,Dc),et&&E$3(nt)&&("__value"in et&&"__checked"in et||Dc(rt))&&(nt.append(...et.getChildren()),et.remove()),E$3(tt)&&tt.isEmpty()&&tt.remove(),_e.selectEnd(),_e=E$3(tt)?tt.getLastChild():null,Ec(_e)&&nt!==tt&&_e.remove()}else E$3(tt)||n$6(135),rt=Te(this),tt.splice(rt,0,_e),et.selectEnd()}}insertParagraph(){if(this.anchor.key==="root"){var _e=be();return J$1().splice(this.anchor.offset,0,[_e]),_e.select(),_e}var et=Te(this);return _e=Fc(this.anchor.getNode(),Dc),E$3(_e)||n$6(136),et=(et=_e.getChildAtIndex(et))?[et,...et.getNextSiblings()]:[],(_e=_e.insertNewAfter(this,!1))?(_e.append(...et),_e.selectStart(),_e):null}insertLineBreak(_e){var et=ge();this.insertNodes([et]),_e&&(_e=et.getParentOrThrow(),et=et.getIndexWithinParent(),_e.select(et,et))}extract(){var _e=this.getNodes(),et=_e.length,tt=et-1,rt=this.anchor;let nt=this.focus;var ot=_e[0];let it=_e[tt],[st,lt]=Qe(this);return et===0?[]:et===1?B$5(ot)&&!this.isCollapsed()?(_e=st>lt?lt:st,tt=ot.splitText(_e,st>lt?st:lt),_e=_e===0?tt[0]:tt[1],_e!=null?[_e]:[]):[ot]:(et=rt.isBefore(nt),B$5(ot)&&(rt=et?st:lt,rt===ot.getTextContentSize()?_e.shift():rt!==0&&([,ot]=ot.splitText(rt),_e[0]=ot)),B$5(it)&&(ot=it.getTextContent().length,et=et?lt:st,et===0?_e.pop():et!==ot&&([it]=it.splitText(et),_e[tt]=it)),_e)}modify(_e,et,tt){var rt=this.focus,nt=this.anchor,ot=_e==="move",it=rc(rt,et);if(y$7(it)&&!it.isIsolated())ot&&it.isKeyboardSelectable()?(et=Ve(),et.add(it.__key),zb(et)):(_e=et?it.getPreviousSibling():it.getNextSibling(),B$5(_e)?(it=_e.__key,et=et?_e.getTextContent().length:0,rt.set(it,et,"text"),ot&&nt.set(it,et,"text")):(tt=it.getParentOrThrow(),E$3(_e)?(tt=_e.__key,it=et?_e.getChildrenSize():0):(it=it.getIndexWithinParent(),tt=tt.__key,et||it++),rt.set(tt,it,"element"),ot&&nt.set(tt,it,"element")));else if(nt=F$3(),rt=wb(nt._window)){var st=nt._blockCursorElement,lt=nt._rootElement;if(lt===null||st===null||!E$3(it)||it.isInline()||it.canBeEmpty()||Bc(st,nt,lt),rt.modify(_e,et?"backward":"forward",tt),0et||lt){tt.splice(it,1),lt&&(ot=void 0);break}}_e=tt.join("").trim(),_e===""?j.remove():(j.setTextContent(_e),j.select(ot,ot))}function Ye(j,_e,et,tt){var rt=_e;if(j.nodeType===1){let it=!1;var nt=j.childNodes,ot=nt.length;rt===ot&&(it=!0,rt=ot-1);let st=nt[rt];if(ot=!1,st===tt._blockCursorElement?(st=nt[rt+1],ot=!0):tt._blockCursorElement!==null&&rt--,tt=hc(st),B$5(tt))rt=it?tt.getTextContentSize():0;else{if(nt=hc(j),nt===null)return null;if(E$3(nt)?(j=nt.getChildAtIndex(rt),(_e=E$3(j))&&(_e=j.getParent(),_e=et===null||_e===null||!_e.canBeEmpty()||_e!==et.getNode()),_e&&(et=it?j.getLastDescendant():j.getFirstDescendant(),et===null?(nt=j,rt=0):(j=et,nt=E$3(j)?j:j.getParentOrThrow())),B$5(j)?(tt=j,nt=null,rt=it?j.getTextContentSize():0):j!==nt&&it&&!ot&&rt++):(rt=nt.getIndexWithinParent(),rt=_e===0&&y$7(nt)&&hc(j)===nt?rt:rt+1,nt=nt.getParentOrThrow()),E$3(nt))return Ke(nt.__key,rt,"element")}}else tt=hc(j);return B$5(tt)?Ke(tt.__key,rt,"text"):null}function Ze(j,_e,et){var tt=j.offset,rt=j.getNode();tt===0?(tt=rt.getPreviousSibling(),rt=rt.getParent(),_e?(et||!_e)&&tt===null&&E$3(rt)&&rt.isInline()&&(_e=rt.getPreviousSibling(),B$5(_e)&&(j.key=_e.__key,j.offset=_e.getTextContent().length)):E$3(tt)&&!et&&tt.isInline()?(j.key=tt.__key,j.offset=tt.getChildrenSize(),j.type="element"):B$5(tt)&&(j.key=tt.__key,j.offset=tt.getTextContent().length)):tt===rt.getTextContent().length&&(tt=rt.getNextSibling(),rt=rt.getParent(),_e&&E$3(tt)&&tt.isInline()?(j.key=tt.__key,j.offset=0,j.type="element"):(et||_e)&&tt===null&&E$3(rt)&&rt.isInline()&&!rt.canInsertTextAfter()&&(_e=rt.getNextSibling(),B$5(_e)&&(j.key=_e.__key,j.offset=0)))}function Se(j,_e,et){if(j.type==="text"&&_e.type==="text"){var tt=j.isBefore(_e);let rt=j.is(_e);Ze(j,tt,rt),Ze(_e,!tt,rt),rt&&(_e.key=j.key,_e.offset=j.offset,_e.type=j.type),tt=F$3(),tt.isComposing()&&tt._compositionKey!==j.key&&C$5(et)&&(tt=et.anchor,et=et.focus,Ne(j,tt.key,tt.offset,tt.type),Ne(_e,et.key,et.offset,et.type))}}function Re(j,_e,et,tt,rt,nt){return j===null||et===null||!Sb(rt,j,et)||(_e=Ye(j,_e,C$5(nt)?nt.anchor:null,rt),_e===null)||(tt=Ye(et,tt,C$5(nt)?nt.focus:null,rt),tt===null||_e.type==="element"&&tt.type==="element"&&(j=hc(j),et=hc(et),y$7(j)&&y$7(et)))?null:(Se(_e,tt,nt),[_e,tt])}function re(j,_e,et,tt,rt,nt){let ot=$b();return j=new Pe(Ke(j,_e,rt),Ke(et,tt,nt),0,""),j.dirty=!0,ot._selection=j}function Ve(){return new Oe(new Set)}function $e(j){let _e=j.getEditorState()._selection,et=wb(j._window);return C$5(_e)||_e==null?Od(_e,et,j,null):_e.clone()}function Od(j,_e,et,tt){var rt=et._window;if(rt===null)return null;var nt=(rt=tt||rt.event)?rt.type:void 0;tt=nt==="selectionchange",rt=!pb&&(tt||nt==="beforeinput"||nt==="compositionstart"||nt==="compositionend"||nt==="click"&&rt&&rt.detail===3||nt==="drop"||nt===void 0);let ot;if(!C$5(j)||rt){if(_e===null)return null;if(rt=_e.anchorNode,nt=_e.focusNode,ot=_e.anchorOffset,_e=_e.focusOffset,tt&&C$5(j)&&!Sb(et,rt,nt))return j.clone()}else return j.clone();if(et=Re(rt,ot,nt,_e,et,j),et===null)return null;let[it,st]=et;return new Pe(it,st,C$5(j)?j.format:0,C$5(j)?j.style:"")}function u$7(){return $b()._selection}function mc(){return F$3()._editorState._selection}function Zd(j,_e,et,tt=1){var rt=j.anchor,nt=j.focus,ot=rt.getNode(),it=nt.getNode();if(_e.is(ot)||_e.is(it)){if(ot=_e.__key,j.isCollapsed())_e=rt.offset,(et<=_e&&0tt)&&(et=Math.max(0,_e+tt),rt.set(ot,et,"element"),nt.set(ot,et,"element"),af(j));else{let lt=j.isBackward();it=lt?nt:rt;var st=it.getNode();rt=lt?rt:nt,nt=rt.getNode(),_e.is(st)&&(st=it.offset,(et<=st&&0tt)&&it.set(ot,Math.max(0,st+tt),"element")),_e.is(nt)&&(_e=rt.offset,(et<=_e&&0tt)&&rt.set(ot,Math.max(0,_e+tt),"element"))}af(j)}}function af(j){var _e=j.anchor,et=_e.offset;let tt=j.focus;var rt=tt.offset,nt=_e.getNode(),ot=tt.getNode();if(j.isCollapsed())E$3(nt)&&(ot=nt.getChildrenSize(),ot=(rt=et>=ot)?nt.getChildAtIndex(ot-1):nt.getChildAtIndex(et),B$5(ot)&&(et=0,rt&&(et=ot.getTextContentSize()),_e.set(ot.__key,et,"text"),tt.set(ot.__key,et,"text")));else{if(E$3(nt)){let it=nt.getChildrenSize();et=(j=et>=it)?nt.getChildAtIndex(it-1):nt.getChildAtIndex(et),B$5(et)&&(nt=0,j&&(nt=et.getTextContentSize()),_e.set(et.__key,nt,"text"))}E$3(ot)&&(et=ot.getChildrenSize(),rt=(_e=rt>=et)?ot.getChildAtIndex(et-1):ot.getChildAtIndex(rt),B$5(rt)&&(ot=0,_e&&(ot=rt.getTextContentSize()),tt.set(rt.__key,ot,"text")))}}function bf(j,_e){if(_e=_e.getEditorState()._selection,j=j._selection,C$5(j)){var et=j.anchor;let tt=j.focus,rt;et.type==="text"&&(rt=et.getNode(),rt.selectionTransform(_e,j)),tt.type==="text"&&(et=tt.getNode(),rt!==et&&et.selectionTransform(_e,j))}}function Yd(j,_e,et,tt,rt){let nt=null,ot=0,it=null;tt!==null?(nt=tt.__key,B$5(tt)?(ot=tt.getTextContentSize(),it="text"):E$3(tt)&&(ot=tt.getChildrenSize(),it="element")):rt!==null&&(nt=rt.__key,B$5(rt)?it="text":E$3(rt)&&(it="element")),nt!==null&&it!==null?j.set(nt,ot,it):(ot=_e.getIndexWithinParent(),ot===-1&&(ot=et.getChildrenSize()),j.set(et.__key,ot,"element"))}function se(j,_e,et,tt,rt){j.type==="text"?(j.key=et,_e||(j.offset+=rt)):j.offset>tt.getIndexWithinParent()&&--j.offset}function Te(j){j.isCollapsed()||j.removeText();var _e=j.anchor;for(j=_e.getNode(),_e=_e.offset;!Dc(j);)[j,_e]=cf(j,_e);return _e}function cf(j,_e){var et=j.getParent();if(!et)return et=be(),J$1().append(et),et.select(),[J$1(),0];if(B$5(j)){var tt=j.splitText(_e);return tt.length===0?[et,j.getIndexWithinParent()]:(j=_e===0?0:1,j=tt[0].getIndexWithinParent()+j,[et,j])}return!E$3(j)||_e===0?[et,j.getIndexWithinParent()]:((tt=j.getChildAtIndex(_e))&&(_e=new Pe(Ke(j.__key,_e,"element"),Ke(j.__key,_e,"element"),0,""),(_e=j.insertNewAfter(_e))&&_e.append(tt,...tt.getNextSiblings())),[et,j.getIndexWithinParent()+1])}function Ue(j){let _e=be(),et=null;for(let tt=0;ttir&&(ur=Er-ir),ur!==0)if(Jt)sr.scrollBy(0,ur);else{let br=hr.scrollTop;hr.scrollTop+=ur;let Sr=hr.scrollTop-br;gr-=Sr,Er-=Sr}if(Jt)break;hr=Ub(hr)}}}Gd=!0}}else ot!==null&&Sb(j,Wr,Vr)&&It.removeAllRanges()}}e:{let Nr=j._blockCursorElement;if(C$5(it)&&it.isCollapsed()&&it.anchor.type==="element"&&tt.contains(document.activeElement)){let Wr=it.anchor,Vr=Wr.getNode(),Jr=Wr.offset,Yr=Vr.getChildrenSize(),jr=!1,Hr=null;if(Jr===Yr){let hn=Vr.getChildAtIndex(Jr-1);Ac(hn)&&(jr=!0)}else{let hn=Vr.getChildAtIndex(Jr);if(Ac(hn)){let pr=hn.getPreviousSibling();(pr===null||Ac(pr))&&(jr=!0,Hr=j.getElementByKey(hn.__key))}}if(jr){let hn=j.getElementByKey(Vr.__key);if(Nr===null){let pr=j._config.theme,sr=document.createElement("div");sr.contentEditable="false",sr.setAttribute("data-lexical-cursor","true");let Jt=pr.blockCursor;if(Jt!==void 0){if(typeof Jt=="string"){let ur=Jt.split(" ");Jt=pr.blockCursor=ur}Jt!==void 0&&sr.classList.add(...Jt)}j._blockCursorElement=Nr=sr}tt.style.caretColor="transparent",Hr===null?hn.appendChild(Nr):hn.insertBefore(Nr,Hr);break e}}Nr!==null&&Bc(Nr,j,tt)}ft!==null&&ft.observe(tt,ef)}finally{T=ct,S=lt}}if(pt!==null){var nr=pt;let Nr=Array.from(j._listeners.mutation),Wr=Nr.length;for(let Vr=0;Vr{nt=R(j,_e,et)}),nt}let tt=jc(j);for(let nt=4;0<=nt;nt--)for(let ot=0;ot{lf(j)}):(ot._flushSync=!1,it&&(tt.clear(),j._deferred=[],j._pendingEditorState=null))}function v$6(j,_e,et){j._updating?j._updates.push([_e,et]):of(j,_e,et)}class sf extends $d{constructor(_e){super(_e)}decorate(){n$6(47)}isIsolated(){return!1}isInline(){return!0}isKeyboardSelectable(){return!0}}function y$7(j){return j instanceof sf}class tf extends $d{constructor(_e){super(_e),this.__last=this.__first=null,this.__indent=this.__format=this.__size=0,this.__dir=null}getFormat(){return this.getLatest().__format}getFormatType(){let _e=this.getFormat();return mb[_e]||""}getIndent(){return this.getLatest().__indent}getChildren(){let _e=[],et=this.getFirstChild();for(;et!==null;)_e.push(et),et=et.getNextSibling();return _e}getChildrenKeys(){let _e=[],et=this.getFirstChild();for(;et!==null;)_e.push(et.__key),et=et.getNextSibling();return _e}getChildrenSize(){return this.getLatest().__size}isEmpty(){return this.getChildrenSize()===0}isDirty(){let _e=F$3()._dirtyElements;return _e!==null&&_e.has(this.__key)}isLastChild(){let _e=this.getLatest(),et=this.getParentOrThrow().getLastChild();return et!==null&&et.is(_e)}getAllTextNodes(){let _e=[],et=this.getFirstChild();for(;et!==null;){if(B$5(et)&&_e.push(et),E$3(et)){let tt=et.getAllTextNodes();_e.push(...tt)}et=et.getNextSibling()}return _e}getFirstDescendant(){let _e=this.getFirstChild();for(;_e!==null;){if(E$3(_e)){let et=_e.getFirstChild();if(et!==null){_e=et;continue}}break}return _e}getLastDescendant(){let _e=this.getLastChild();for(;_e!==null;){if(E$3(_e)){let et=_e.getLastChild();if(et!==null){_e=et;continue}}break}return _e}getDescendantByIndex(_e){let et=this.getChildren(),tt=et.length;return _e>=tt?(_e=et[tt-1],E$3(_e)&&_e.getLastDescendant()||_e||null):(_e=et[_e],E$3(_e)&&_e.getFirstDescendant()||_e||null)}getFirstChild(){let _e=this.getLatest().__first;return _e===null?null:I$1(_e)}getFirstChildOrThrow(){let _e=this.getFirstChild();return _e===null&&n$6(45,this.__key),_e}getLastChild(){let _e=this.getLatest().__last;return _e===null?null:I$1(_e)}getLastChildOrThrow(){let _e=this.getLastChild();return _e===null&&n$6(96,this.__key),_e}getChildAtIndex(_e){var et=this.getChildrenSize();let tt;if(_e=_e;){if(et===_e)return tt;tt=tt.getPreviousSibling(),et--}return null}getTextContent(){let _e="",et=this.getChildren(),tt=et.length;for(let rt=0;rtet.remove()),_e}append(..._e){return this.splice(this.getChildrenSize(),0,_e)}setDirection(_e){let et=this.getWritable();return et.__dir=_e,et}setFormat(_e){return this.getWritable().__format=_e!==""?lb[_e]:0,this}setIndent(_e){return this.getWritable().__indent=_e,this}splice(_e,et,tt){let rt=tt.length,nt=this.getChildrenSize(),ot=this.getWritable(),it=ot.__key;var st=[],lt=[];let ut=this.getChildAtIndex(_e+et),ct=null,dt=nt-et+rt;if(_e!==0)if(_e===nt)ct=this.getLastChild();else{var ft=this.getChildAtIndex(_e);ft!==null&&(ct=ft.getPreviousSibling())}if(0({root:xf(J$1())}))}}class Df extends tf{static getType(){return"paragraph"}static clone(_e){return new Df(_e.__key)}createDOM(_e){let et=document.createElement("p");return _e=oc(_e.theme,"paragraph"),_e!==void 0&&et.classList.add(..._e),et}updateDOM(){return!1}static importDOM(){return{p:()=>({conversion:Ef,priority:0})}}exportDOM(_e){if({element:_e}=super.exportDOM(_e),_e&&Cc(_e)){this.isEmpty()&&_e.append(document.createElement("br"));var et=this.getFormatType();_e.style.textAlign=et,(et=this.getDirection())&&(_e.dir=et),et=this.getIndent(),0{Object.keys(nt).forEach(ot=>{let it=et.get(ot);it===void 0&&(it=[],et.set(ot,it)),it.push(nt[ot])})};return j.forEach(nt=>{nt=nt.klass.importDOM!=null?nt.klass.importDOM.bind(nt.klass):null,nt==null||tt.has(nt)||(tt.add(nt),nt=nt(),nt!==null&&rt(nt))}),_e&&rt(_e),et}class Gf{constructor(_e,et,tt,rt,nt,ot,it){this._parentEditor=et,this._rootElement=null,this._editorState=_e,this._compositionKey=this._pendingEditorState=null,this._deferred=[],this._keyToDOMMap=new Map,this._updates=[],this._updating=!1,this._listeners={decorator:new Set,editable:new Set,mutation:new Map,root:new Set,textcontent:new Set,update:new Set},this._commands=new Map,this._config=rt,this._nodes=tt,this._decorators={},this._pendingDecorators=null,this._dirtyType=0,this._cloneNotNeeded=new Set,this._dirtyLeaves=new Set,this._dirtyElements=new Map,this._normalizedNodes=new Set,this._updateTags=new Set,this._observer=null,this._key=kc(),this._onError=nt,this._htmlConversions=ot,this._editable=it,this._headless=et!==null&&et._headless,this._blockCursorElement=this._window=null}isComposing(){return this._compositionKey!=null}registerUpdateListener(_e){let et=this._listeners.update;return et.add(_e),()=>{et.delete(_e)}}registerEditableListener(_e){let et=this._listeners.editable;return et.add(_e),()=>{et.delete(_e)}}registerDecoratorListener(_e){let et=this._listeners.decorator;return et.add(_e),()=>{et.delete(_e)}}registerTextContentListener(_e){let et=this._listeners.textcontent;return et.add(_e),()=>{et.delete(_e)}}registerRootListener(_e){let et=this._listeners.root;return _e(this._rootElement,null),et.add(_e),()=>{_e(null,this._rootElement),et.delete(_e)}}registerCommand(_e,et,tt){tt===void 0&&n$6(35);let rt=this._commands;rt.has(_e)||rt.set(_e,[new Set,new Set,new Set,new Set,new Set]);let nt=rt.get(_e);nt===void 0&&n$6(36,String(_e));let ot=nt[tt];return ot.add(et),()=>{ot.delete(et),nt.every(it=>it.size===0)&&rt.delete(_e)}}registerMutationListener(_e,et){this._nodes.get(_e.getType())===void 0&&n$6(37,_e.name);let tt=this._listeners.mutation;return tt.set(et,_e),()=>{tt.delete(et)}}registerNodeTransformToKlass(_e,et){var tt=_e.getType();return tt=this._nodes.get(tt),tt===void 0&&n$6(37,_e.name),tt.transforms.add(et),tt}registerNodeTransform(_e,et){var tt=this.registerNodeTransformToKlass(_e,et);let rt=[tt];return tt=tt.replaceWithKlass,tt!=null&&(tt=this.registerNodeTransformToKlass(tt,et),rt.push(tt)),gc(this,_e.getType()),()=>{rt.forEach(nt=>nt.transforms.delete(et))}}hasNode(_e){return this._nodes.has(_e.getType())}hasNodes(_e){return _e.every(this.hasNode.bind(this))}dispatchCommand(_e,et){return R(this,_e,et)}getDecorators(){return this._decorators}getRootElement(){return this._rootElement}getKey(){return this._key}setRootElement(_e){let et=this._rootElement;if(_e!==et){let ot=oc(this._config.theme,"root");var tt=this._pendingEditorState||this._editorState;if(this._rootElement=_e,mf(this,et,_e,tt),et!==null){if(!this._config.disableEvents){Fd!==0&&(Fd--,Fd===0&&et.ownerDocument.removeEventListener("selectionchange",Vd));var rt=et.__lexicalEditor;if(rt!=null){if(rt._parentEditor!==null){var nt=jc(rt);nt=nt[nt.length-1]._key,Ud.get(nt)===rt&&Ud.delete(nt)}else Ud.delete(rt._key);et.__lexicalEditor=null}for(rt=Td(et),nt=0;nt{let rt=u$7(),nt=J$1();rt!==null?rt.dirty=!0:nt.getChildrenSize()!==0&&(et.defaultSelection==="rootStart"?nt.selectStart():nt.selectEnd())},{onUpdate:()=>{tt.removeAttribute("autocapitalize"),_e&&_e()},tag:"focus"}),this._pendingEditorState===null&&tt.removeAttribute("autocapitalize"))}blur(){var _e=this._rootElement;_e!==null&&_e.blur(),_e=wb(this._window),_e!==null&&_e.removeAllRanges()}isEditable(){return this._editable}setEditable(_e){this._editable!==_e&&(this._editable=_e,nf("editable",this,!0,_e))}toJSON(){return{editorState:this._editorState.toJSON()}}}Lexical_prod.$addUpdateTag=function(j){G$3(),F$3()._updateTags.add(j)};Lexical_prod.$applyNodeReplacement=yc;Lexical_prod.$copyNode=xc;Lexical_prod.$createLineBreakNode=ge;Lexical_prod.$createNodeSelection=Ve;Lexical_prod.$createParagraphNode=be;Lexical_prod.$createPoint=Ke;Lexical_prod.$createRangeSelection=function(){let j=Ke("root",0,"element"),_e=Ke("root",0,"element");return new Pe(j,_e,0,"")};Lexical_prod.$createTabNode=ue;Lexical_prod.$createTextNode=K;Lexical_prod.$getAdjacentNode=rc;Lexical_prod.$getCharacterOffsets=Qe;Lexical_prod.$getEditor=function(){return F$3()};Lexical_prod.$getNearestNodeFromDOMNode=vb;Lexical_prod.$getNearestRootOrShadowRoot=vc;Lexical_prod.$getNodeByKey=I$1;Lexical_prod.$getPreviousSelection=mc;Lexical_prod.$getRoot=J$1;Lexical_prod.$getSelection=u$7;Lexical_prod.$getTextContent=function(){let j=u$7();return j===null?"":j.getTextContent()};Lexical_prod.$hasAncestor=uc;Lexical_prod.$hasUpdateTag=function(j){return F$3()._updateTags.has(j)};Lexical_prod.$insertNodes=function(j){let _e=u$7()||mc();_e===null&&(_e=J$1().selectEnd()),_e.insertNodes(j)};Lexical_prod.$isBlockElementNode=function(j){return E$3(j)&&!j.isInline()};Lexical_prod.$isDecoratorNode=y$7;Lexical_prod.$isElementNode=E$3;Lexical_prod.$isInlineElementOrDecoratorNode=function(j){return E$3(j)&&j.isInline()||y$7(j)&&j.isInline()};Lexical_prod.$isLeafNode=function(j){return B$5(j)||Ec(j)||y$7(j)};Lexical_prod.$isLineBreakNode=Ec;Lexical_prod.$isNodeSelection=Sd;Lexical_prod.$isParagraphNode=function(j){return j instanceof Df};Lexical_prod.$isRangeSelection=C$5;Lexical_prod.$isRootNode=L;Lexical_prod.$isRootOrShadowRoot=wc;Lexical_prod.$isTabNode=Ie;Lexical_prod.$isTextNode=B$5;Lexical_prod.$nodesOfType=function(j){var _e=$b();let et=_e._readOnly,tt=j.getType();_e=_e._nodeMap;let rt=[];for(let[,nt]of _e)nt instanceof j&&nt.__type===tt&&(et||nt.isAttached())&&rt.push(nt);return rt};Lexical_prod.$normalizeSelection__EXPERIMENTAL=Hb;Lexical_prod.$parseSerializedNode=function(j){return jf(j,F$3()._nodes)};Lexical_prod.$selectAll=function(){var j=J$1();j=j.select(0,j.getChildrenSize()),zb(Hb(j))};Lexical_prod.$setCompositionKey=H$2;Lexical_prod.$setSelection=zb;Lexical_prod.$splitNode=function(j,_e){let et=j.getChildAtIndex(_e);et==null&&(et=j),wc(j)&&n$6(102);let tt=ot=>{const it=ot.getParentOrThrow(),st=wc(it),lt=ot!==et||st?xc(ot):ot;if(st)return E$3(ot)&&E$3(lt)||n$6(133),ot.insertAfter(lt),[ot,lt,lt];const[ut,ct,dt]=tt(it);return ot=ot.getNextSiblings(),dt.append(lt,...ot),[ut,ct,lt]},[rt,nt]=tt(et);return[rt,nt]};Lexical_prod.BLUR_COMMAND=Ra;Lexical_prod.CAN_REDO_COMMAND={};Lexical_prod.CAN_UNDO_COMMAND={};Lexical_prod.CLEAR_EDITOR_COMMAND={};Lexical_prod.CLEAR_HISTORY_COMMAND={};Lexical_prod.CLICK_COMMAND=ca;Lexical_prod.COMMAND_PRIORITY_CRITICAL=4;Lexical_prod.COMMAND_PRIORITY_EDITOR=0;Lexical_prod.COMMAND_PRIORITY_HIGH=3;Lexical_prod.COMMAND_PRIORITY_LOW=1;Lexical_prod.COMMAND_PRIORITY_NORMAL=2;Lexical_prod.CONTROLLED_TEXT_INSERTION_COMMAND=ka$1;Lexical_prod.COPY_COMMAND=Na;Lexical_prod.CUT_COMMAND=Oa;Lexical_prod.DELETE_CHARACTER_COMMAND=da;Lexical_prod.DELETE_LINE_COMMAND=pa;Lexical_prod.DELETE_WORD_COMMAND=oa;Lexical_prod.DRAGEND_COMMAND=Ma;Lexical_prod.DRAGOVER_COMMAND=La;Lexical_prod.DRAGSTART_COMMAND=Ka;Lexical_prod.DROP_COMMAND=Ja;Lexical_prod.DecoratorNode=sf;Lexical_prod.ElementNode=tf;Lexical_prod.FOCUS_COMMAND=Qa;Lexical_prod.FORMAT_ELEMENT_COMMAND={};Lexical_prod.FORMAT_TEXT_COMMAND=qa;Lexical_prod.INDENT_CONTENT_COMMAND={};Lexical_prod.INSERT_LINE_BREAK_COMMAND=ea;Lexical_prod.INSERT_PARAGRAPH_COMMAND=fa;Lexical_prod.INSERT_TAB_COMMAND={};Lexical_prod.KEY_ARROW_DOWN_COMMAND=Aa;Lexical_prod.KEY_ARROW_LEFT_COMMAND=wa;Lexical_prod.KEY_ARROW_RIGHT_COMMAND=ua;Lexical_prod.KEY_ARROW_UP_COMMAND=za;Lexical_prod.KEY_BACKSPACE_COMMAND=Da;Lexical_prod.KEY_DELETE_COMMAND=Ha;Lexical_prod.KEY_DOWN_COMMAND=ta;Lexical_prod.KEY_ENTER_COMMAND=Ba;Lexical_prod.KEY_ESCAPE_COMMAND=Ga;Lexical_prod.KEY_MODIFIER_COMMAND=Sa;Lexical_prod.KEY_SPACE_COMMAND=Ca;Lexical_prod.KEY_TAB_COMMAND=Ia;Lexical_prod.LineBreakNode=de;Lexical_prod.MOVE_TO_END=va;Lexical_prod.MOVE_TO_START=ya;Lexical_prod.OUTDENT_CONTENT_COMMAND={};Lexical_prod.PASTE_COMMAND=la;Lexical_prod.ParagraphNode=Df;Lexical_prod.REDO_COMMAND=sa;Lexical_prod.REMOVE_TEXT_COMMAND=ma;Lexical_prod.RootNode=vf;Lexical_prod.SELECTION_CHANGE_COMMAND=ba;Lexical_prod.SELECTION_INSERT_CLIPBOARD_NODES_COMMAND={};Lexical_prod.SELECT_ALL_COMMAND=Pa;Lexical_prod.TabNode=He;Lexical_prod.TextNode=me;Lexical_prod.UNDO_COMMAND=ra;Lexical_prod.createCommand=function(){return{}};Lexical_prod.createEditor=function(j){var _e=j||{},et=T,tt=_e.theme||{};let rt=j===void 0?et:_e.parentEditor||null,nt=_e.disableEvents||!1,ot=wf(),it=_e.namespace||(rt!==null?rt._config.namespace:kc()),st=_e.editorState,lt=[vf,me,de,He,Df,..._e.nodes||[]],{onError:ut,html:ct}=_e;if(_e=_e.editable!==void 0?_e.editable:!0,j===void 0&&et!==null)j=et._nodes;else for(j=new Map,et=0;et(ot instanceof Function?rt[nt]=ot(et[nt]):ot===null?delete rt[nt]:rt[nt]=ot,rt),{...et});let tt=A$1(_e);j.setStyle(tt),v$5.set(tt,_e)}function C$4(j){for(;j!==null&&!k$4.$isRootOrShadowRoot(j);){let _e=j.getLatest(),et=j.getParent();_e.getChildrenSize()===0&&j.remove(!0),j=et}}function D$2(j,_e,et,tt,rt=null){if(_e.length!==0){var nt=_e[0],ot=new Map,it=[];nt=k$4.$isElementNode(nt)?nt:nt.getParentOrThrow(),nt.isInline()&&(nt=nt.getParentOrThrow());for(var st=!1;nt!==null;){var lt=nt.getPreviousSibling();if(lt!==null){nt=lt,st=!0;break}if(nt=nt.getParentOrThrow(),k$4.$isRootOrShadowRoot(nt))break}lt=new Set;for(var ut=0;ut{pt.append(gt),dt.add(gt.getKey()),k$4.$isElementNode(gt)&>.getChildrenKeys().forEach(vt=>dt.add(vt))}),C$4(ft)}}else if(lt.has(ct.getKey())){if(!k$4.$isElementNode(ct))throw Error("Expected node in emptyElements to be an ElementNode");ft=tt(),ft.setFormat(ct.getFormatType()),ft.setIndent(ct.getIndent()),it.push(ft),ct.remove(!0)}}if(rt!==null)for(_e=0;_elt?lt:ut,j=pt==="element"?st:ut>lt?ut:lt,dt!==j&&(dt===0&&j===st?(B$4(rt,_e),rt.select(dt,j)):(et=rt.splitText(dt,j),et=dt===0?et[0]:et[1],B$4(et,_e),et.select(0,j-dt))));else for(k$4.$isTextNode(rt)&&dtut?ut:lt,ot=lt>ut?lt:ut):nt?(tt=et?ut:lt,ot=void 0):rt&&(et=et?lt:ut,tt=0,ot=et),_e.__text=_e.__text.slice(tt,ot)}}return _e};LexicalSelection_prod.$wrapNodes=function(j,_e,et=null){var tt=j.getStartEndPoints(),rt=tt?tt[0]:null;tt=j.getNodes();let nt=tt.length;if(rt!==null&&(nt===0||nt===1&&rt.type==="element"&&rt.getNode().getChildrenSize()===0)){j=rt.type==="text"?rt.getNode().getParentOrThrow():rt.getNode(),tt=j.getChildren();let it=_e();it.setFormat(j.getFormatType()),it.setIndent(j.getIndent()),tt.forEach(st=>it.append(st)),et&&(it=et.append(it)),j.replace(it)}else{rt=null;var ot=[];for(let it=0;it{let it=nt.top-ot.top;return 3>=Math.abs(it)?nt.left-ot.left:it});let rt;for(let nt=0;ntot.top&&rt.left+rt.width>ot.left||it?(_e.splice(nt--,1),tt--):rt=ot}return _e};LexicalSelection_prod.getStyleObjectFromCSS=z$3;LexicalSelection_prod.trimTextContentFromAnchor=function(j,_e,et){let tt=_e.getNode();if(k$4.$isElementNode(tt)){var rt=tt.getDescendantByIndex(_e.offset);rt!==null&&(tt=rt)}for(;0=rt)it=tt.getParent(),tt.remove(),it==null||it.getChildrenSize()!==0||k$4.$isRootNode(it)||it.remove(),et-=rt+ot,tt=nt;else{let st=tt.getKey();ot=j.getEditorState().read(()=>{const ut=k$4.$getNodeByKey(st);return k$4.$isTextNode(ut)&&ut.isSimpleText()?ut.getTextContent():null}),nt=rt-et;let lt=it.slice(0,nt);ot!==null&&ot!==it?(et=k$4.$getPreviousSelection(),rt=tt,tt.isSimpleText()?tt.setTextContent(ot):(rt=k$4.$createTextNode(ot),tt.replace(rt)),k$4.$isRangeSelection(et)&&et.isCollapsed()&&(et=et.anchor.offset,rt.select(et,et))):tt.isSimpleText()?(ot=_e.key===st,it=_e.offset,it{j.forEach(_e=>_e())}}let E$1={attributes:!0,characterData:!0,childList:!0,subtree:!0};function F$1(j,_e,et){function tt(){if(ot===null)throw Error("Unexpected null rootDOMNode");if(it===null)throw Error("Unexpected null parentDOMNode");let{left:dt,top:ft}=ot.getBoundingClientRect();var pt=it;let gt=h$5.createRectsFromDOMRange(j,_e);ut.isConnected||pt.append(ut),pt=!1;for(let _t=0;_tgt.length;)lt.pop();pt&&et(lt)}function rt(){ot=it=null,st!==null&&st.disconnect(),st=null,ut.remove();for(let dt of lt)dt.remove();lt=[]}function nt(){let dt=j.getRootElement();if(dt===null)return rt();let ft=dt.parentElement;if(!(ft instanceof HTMLElement))return rt();rt(),ot=dt,it=ft,st=new MutationObserver(pt=>{let gt=j.getRootElement(),vt=gt&>.parentElement;if(gt!==ot||vt!==it)return nt();for(let bt of pt)if(!ut.contains(bt.target))return tt()}),st.observe(ft,E$1),tt()}let ot=null,it=null,st=null,lt=[],ut=document.createElement("div"),ct=j.registerRootListener(nt);return()=>{ct(),rt()}}function G$1(j,_e){for(let et of _e)if(j.type.startsWith(et))return!0;return!1}let H$1=(j,_e)=>{for(;j!==B$3.$getRoot()&&j!=null;){if(_e(j))return j;j=j.getParent()}return null};LexicalUtils_prod.$splitNode=B$3.$splitNode;LexicalUtils_prod.isHTMLAnchorElement=B$3.isHTMLAnchorElement;LexicalUtils_prod.isHTMLElement=B$3.isHTMLElement;LexicalUtils_prod.$dfs=function(j,_e){let et=[];j=(j||B$3.$getRoot()).getLatest(),_e=_e||(B$3.$isElementNode(j)?j.getLastDescendant():j);for(var tt=j,rt=0;(tt=tt.getParent())!==null;)rt++;for(tt=rt;j!==null&&!j.is(_e);)if(et.push({depth:tt,node:j}),B$3.$isElementNode(j)&&0B$3.$isElementNode(et)&&!et.isInline());return B$3.$isElementNode(_e)||C$3(4,j.__key),_e};LexicalUtils_prod.$getNearestNodeOfType=function(j,_e){for(;j!=null;){if(j instanceof _e)return j;j=j.getParent()}return null};LexicalUtils_prod.$insertFirst=function(j,_e){let et=j.getFirstChild();et!==null?et.insertBefore(_e):j.append(_e)};LexicalUtils_prod.$insertNodeToNearestRoot=function(j){var _e=B$3.$getSelection()||B$3.$getPreviousSelection();if(B$3.$isRangeSelection(_e)){var{focus:et}=_e;if(_e=et.getNode(),et=et.offset,B$3.$isRootOrShadowRoot(_e))et=_e.getChildAtIndex(et),et==null?_e.append(j):et.insertBefore(j),j.selectNext();else{let tt,rt;B$3.$isTextNode(_e)?(tt=_e.getParentOrThrow(),rt=_e.getIndexWithinParent(),0{typeof et=="string"&&(et=et.split(" ").filter(tt=>tt!==""),j.classList.add(...et))})};LexicalUtils_prod.isMimeType=G$1;LexicalUtils_prod.markSelection=function(j,_e){function et(st){st.read(()=>{var lt=B$3.$getSelection();if(B$3.$isRangeSelection(lt)){var{anchor:ut,focus:ct}=lt;lt=ut.getNode();var dt=lt.getKey(),ft=ut.offset,pt=ct.getNode(),gt=pt.getKey(),vt=ct.offset,bt=j.getElementByKey(dt),_t=j.getElementByKey(gt);if(dt=tt===null||bt===null||ft!==rt||dt!==tt.getKey()||lt!==tt&&(!(tt instanceof B$3.TextNode)||lt.updateDOM(tt,bt,j._config)),gt=nt===null||_t===null||vt!==ot||gt!==nt.getKey()||pt!==nt&&(!(nt instanceof B$3.TextNode)||pt.updateDOM(nt,_t,j._config)),dt||gt){bt=j.getElementByKey(ut.getNode().getKey());var xt=j.getElementByKey(ct.getNode().getKey());if(bt!==null&&xt!==null&&bt.tagName==="SPAN"&&xt.tagName==="SPAN"){if(gt=document.createRange(),ct.isBefore(ut)?(dt=xt,_t=ct.offset,xt=bt,bt=ut.offset):(dt=bt,_t=ut.offset,bt=ct.offset),dt=dt.firstChild,dt===null||(xt=xt.firstChild,xt===null))throw Error("Expected text node to be first child of span");gt.setStart(dt,_t),gt.setEnd(xt,bt),it(),it=F$1(j,gt,yt=>{for(let Et of yt){let St=Et.style;St.background!=="Highlight"&&(St.background="Highlight"),St.color!=="HighlightText"&&(St.color="HighlightText"),St.zIndex!=="-1"&&(St.zIndex="-1"),St.pointerEvents!=="none"&&(St.pointerEvents="none"),St.marginTop!=="-1.5px"&&(St.marginTop="-1.5px"),St.paddingTop!=="4px"&&(St.paddingTop="4px"),St.paddingBottom!=="0px"&&(St.paddingBottom="0px")}_e!==void 0&&_e(yt)})}}tt=lt,rt=ft,nt=pt,ot=vt}else ot=nt=rt=tt=null,it(),it=()=>{}})}let tt=null,rt=null,nt=null,ot=null,it=()=>{};return et(j.getEditorState()),D$1(j.registerUpdateListener(({editorState:st})=>et(st)),it,()=>{it()})};LexicalUtils_prod.mediaFileReader=function(j,_e){let et=j[Symbol.iterator]();return new Promise((tt,rt)=>{let nt=[],ot=()=>{const{done:it,value:st}=et.next();if(it)return tt(nt);const lt=new FileReader;lt.addEventListener("error",rt),lt.addEventListener("load",()=>{const ut=lt.result;typeof ut=="string"&&nt.push({file:st,result:ut}),ot()}),G$1(st,_e)?lt.readAsDataURL(st):ot()};ot()})};LexicalUtils_prod.mergeRegister=D$1;LexicalUtils_prod.objectKlassEquals=function(j,_e){return j!==null?Object.getPrototypeOf(j).constructor.name===_e.name:!1};LexicalUtils_prod.positionNodeOnRange=F$1;LexicalUtils_prod.registerNestedElementResolver=function(j,_e,et,tt){return j.registerNodeTransform(_e,rt=>{e:{for(var nt=rt.getChildren(),ot=0;ot{typeof et=="string"&&j.classList.remove(...et.split(" "))})};const LexicalUtils=LexicalUtils_prod;var LexicalUtils_1=LexicalUtils,l$3=LexicalUtils_1,m$6=Lexical_1;let n$5=new Set(["http:","https:","mailto:","sms:","tel:"]),p$5=class im extends m$6.ElementNode{static getType(){return"link"}static clone(_e){return new im(_e.__url,{rel:_e.__rel,target:_e.__target,title:_e.__title},_e.__key)}constructor(_e,et={},tt){super(tt);let{target:rt=null,rel:nt=null,title:ot=null}=et;this.__url=_e,this.__target=rt,this.__rel=nt,this.__title=ot}createDOM(_e){let et=document.createElement("a");return et.href=this.sanitizeUrl(this.__url),this.__target!==null&&(et.target=this.__target),this.__rel!==null&&(et.rel=this.__rel),this.__title!==null&&(et.title=this.__title),l$3.addClassNamesToElement(et,_e.theme.link),et}updateDOM(_e,et){let tt=this.__url,rt=this.__target,nt=this.__rel,ot=this.__title;return tt!==_e.__url&&(et.href=tt),rt!==_e.__target&&(rt?et.target=rt:et.removeAttribute("target")),nt!==_e.__rel&&(nt?et.rel=nt:et.removeAttribute("rel")),ot!==_e.__title&&(ot?et.title=ot:et.removeAttribute("title")),!1}static importDOM(){return{a:()=>({conversion:q$4,priority:1})}}static importJSON(_e){let et=r$5(_e.url,{rel:_e.rel,target:_e.target,title:_e.title});return et.setFormat(_e.format),et.setIndent(_e.indent),et.setDirection(_e.direction),et}sanitizeUrl(_e){try{let et=new URL(_e);if(!n$5.has(et.protocol))return"about:blank"}catch{}return _e}exportJSON(){return{...super.exportJSON(),rel:this.getRel(),target:this.getTarget(),title:this.getTitle(),type:"link",url:this.getURL(),version:1}}getURL(){return this.getLatest().__url}setURL(_e){this.getWritable().__url=_e}getTarget(){return this.getLatest().__target}setTarget(_e){this.getWritable().__target=_e}getRel(){return this.getLatest().__rel}setRel(_e){this.getWritable().__rel=_e}getTitle(){return this.getLatest().__title}setTitle(_e){this.getWritable().__title=_e}insertNewAfter(_e,et=!0){return _e=r$5(this.__url,{rel:this.__rel,target:this.__target,title:this.__title}),this.insertAfter(_e,et),_e}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}canBeEmpty(){return!1}isInline(){return!0}extractWithChild(_e,et){if(!m$6.$isRangeSelection(et))return!1;_e=et.anchor.getNode();let tt=et.focus.getNode();return this.isParentOf(_e)&&this.isParentOf(tt)&&0{if(nt=nt.getParent(),u$6(nt)){let ot=nt.getChildren();for(let it=0;it{var st=it.getParent();if(st!==ot&&st!==null&&(!m$6.$isElementNode(it)||it.isInline()))if(u$6(st))ot=st,st.setURL(j),et!==void 0&&st.setTarget(et),rt!==null&&ot.setRel(rt),tt!==void 0&&ot.setTitle(tt);else if(st.is(nt)||(nt=st,ot=r$5(j,{rel:rt,target:et,title:tt}),u$6(st)?it.getPreviousSibling()===null?st.insertBefore(ot):st.insertAfter(ot):it.insertBefore(ot)),u$6(it)){if(!it.is(ot)){if(ot!==null){st=it.getChildren();for(let lt=0;lt{var et=f$3.$getRoot();if(et.isEmpty()){let tt=f$3.$createParagraphNode();et.append(tt),et=m$5?document.activeElement:null,(f$3.$getSelection()!==null||et!==null&&et===j.getRootElement())&&tt.select()}},p$4);else if(_e!==null)switch(typeof _e){case"string":let et=j.parseEditorState(_e);j.setEditorState(et,p$4);break;case"object":j.setEditorState(_e,p$4);break;case"function":j.update(()=>{f$3.$getRoot().isEmpty()&&_e(j)},p$4)}}}LexicalComposer_prod.LexicalComposer=function({initialConfig:j,children:_e}){let et=g$6.useMemo(()=>{const{theme:tt,namespace:rt,editor__DEPRECATED:nt,nodes:ot,onError:it,editorState:st,html:lt}=j,ut=e.createLexicalComposerContext(null,tt);let ct=nt||null;if(ct===null){const dt=f$3.createEditor({editable:j.editable,html:lt,namespace:rt,nodes:ot,onError:ft=>it(ft,dt),theme:tt});q$3(dt,st),ct=dt}return[ct,ut]},[]);return n$4(()=>{let tt=j.editable,[rt]=et;rt.setEditable(tt!==void 0?tt:!0)},[]),g$6.createElement(e.LexicalComposerContext.Provider,{value:et},_e)};const LexicalComposer=LexicalComposer_prod;var LexicalComposer_1=LexicalComposer,LexicalContentEditable_prod={},c$5=LexicalComposerContext_1,h$4=reactExports;function n$3(){return n$3=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{xt.setRootElement($t)},[xt]);return p$3(()=>(Et(xt.isEditable()),xt.registerEditableListener($t=>{Et($t)})),[xt]),h$4.createElement("div",n$3({},_t,{"aria-activedescendant":yt?j:void 0,"aria-autocomplete":yt?_e:"none","aria-controls":yt?et:void 0,"aria-describedby":tt,"aria-expanded":yt&&ft==="combobox"?!!rt:void 0,"aria-label":nt,"aria-labelledby":ot,"aria-multiline":it,"aria-owns":yt?st:void 0,"aria-readonly":yt?void 0:!0,"aria-required":lt,autoCapitalize:ut,className:ct,contentEditable:yt,"data-testid":bt,id:dt,ref:St,role:ft,spellCheck:pt,style:gt,tabIndex:vt}))};const LexicalContentEditable=LexicalContentEditable_prod;var LexicalContentEditable_1=LexicalContentEditable,h$3=reactExports;function m$4(j,_e){return m$4=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(et,tt){return et.__proto__=tt,et},m$4(j,_e)}function n$2(j,_e){j.prototype=Object.create(_e.prototype),j.prototype.constructor=j,m$4(j,_e)}function r$4(j,_e){return j===void 0&&(j=[]),_e===void 0&&(_e=[]),j.length!==_e.length||j.some(function(et,tt){return!Object.is(et,_e[tt])})}var t$4={error:null},u$5=function(j){function _e(){for(var tt,rt=arguments.length,nt=Array(rt),ot=0;ot{let ut=Date.now();if(lt.has("historic"))return tt=0,et=ut,2;let ct=y$4(rt,nt,it,st,j.isComposing()),dt=(()=>{var ft=ot===null||ot.editor===j,pt=lt.has("history-push");if(!pt&&ft&<.has("history-merge"))return 0;if(rt===null)return 1;var gt=nt._selection;if(!(0{const ct=_e.current,dt=_e.redoStack,ft=_e.undoStack,pt=ct===null?null:ct.editorState;if(ct===null||ot!==pt){if(it=tt(it,ot,ct,st,lt,ut),it===1)dt.length!==0&&(_e.redoStack=[],j.dispatchCommand(x$4.CAN_REDO_COMMAND,!1)),ct!==null&&(ft.push({...ct}),j.dispatchCommand(x$4.CAN_UNDO_COMMAND,!0));else if(it===2)return;_e.current={editor:j,editorState:ot}}};let rt=c$4.mergeRegister(j.registerCommand(x$4.UNDO_COMMAND,()=>{let ot=_e.redoStack,it=_e.undoStack;if(it.length!==0){let st=_e.current,lt=it.pop();st!==null&&(ot.push(st),j.dispatchCommand(x$4.CAN_REDO_COMMAND,!0)),it.length===0&&j.dispatchCommand(x$4.CAN_UNDO_COMMAND,!1),_e.current=lt||null,lt&<.editor.setEditorState(lt.editorState,{tag:"historic"})}return!0},x$4.COMMAND_PRIORITY_EDITOR),j.registerCommand(x$4.REDO_COMMAND,()=>{let ot=_e.redoStack;var it=_e.undoStack;if(ot.length!==0){let st=_e.current;st!==null&&(it.push(st),j.dispatchCommand(x$4.CAN_UNDO_COMMAND,!0)),it=ot.pop(),ot.length===0&&j.dispatchCommand(x$4.CAN_REDO_COMMAND,!1),_e.current=it||null,it&&it.editor.setEditorState(it.editorState,{tag:"historic"})}return!0},x$4.COMMAND_PRIORITY_EDITOR),j.registerCommand(x$4.CLEAR_EDITOR_COMMAND,()=>(_e.undoStack=[],_e.redoStack=[],_e.current=null,!1),x$4.COMMAND_PRIORITY_EDITOR),j.registerCommand(x$4.CLEAR_HISTORY_COMMAND,()=>(_e.undoStack=[],_e.redoStack=[],_e.current=null,j.dispatchCommand(x$4.CAN_REDO_COMMAND,!1),j.dispatchCommand(x$4.CAN_UNDO_COMMAND,!1),!0),x$4.COMMAND_PRIORITY_EDITOR),j.registerUpdateListener(et)),nt=j.registerUpdateListener(et);return()=>{rt(),nt()}};const LexicalHistory=LexicalHistory_prod;var LexicalHistory_1=LexicalHistory,c$3=LexicalComposerContext_1,history=LexicalHistory_1,f$2=reactExports;function g$5(j,_e,et=1e3){let tt=f$2.useMemo(()=>_e||history.createEmptyHistoryState(),[_e]);f$2.useEffect(()=>history.registerHistory(j,tt,et),[et,j,tt])}LexicalHistoryPlugin_prod.createEmptyHistoryState=history.createEmptyHistoryState;LexicalHistoryPlugin_prod.HistoryPlugin=function({externalHistoryState:j}){let[_e]=c$3.useLexicalComposerContext();return g$5(_e,j),null};const LexicalHistoryPlugin=LexicalHistoryPlugin_prod;var LexicalHistoryPlugin_1=LexicalHistoryPlugin,LexicalOnChangePlugin_prod={},c$2=LexicalComposerContext_1,g$4=reactExports,h$2=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?g$4.useLayoutEffect:g$4.useEffect;LexicalOnChangePlugin_prod.OnChangePlugin=function({ignoreHistoryMergeTagChange:j=!0,ignoreSelectionChange:_e=!1,onChange:et}){let[tt]=c$2.useLexicalComposerContext();return h$2(()=>{if(et)return tt.registerUpdateListener(({editorState:rt,dirtyElements:nt,dirtyLeaves:ot,prevEditorState:it,tags:st})=>{_e&&nt.size===0&&ot.size===0||j&&st.has("history-merge")||it.isEmpty()||et(rt,tt,st)})},[tt,j,_e,et]),null};const LexicalOnChangePlugin=LexicalOnChangePlugin_prod;var LexicalOnChangePlugin_1=LexicalOnChangePlugin,LexicalRichTextPlugin_prod={},b$2=LexicalComposerContext_1,k$3=reactExports,l$2=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?k$3.useLayoutEffect:k$3.useEffect;function m$3(j){let[_e]=b$2.useLexicalComposerContext(),et=k$3.useMemo(()=>j(_e),[_e,j]),tt=k$3.useRef(et.initialValueFn()),[rt,nt]=k$3.useState(tt.current);return l$2(()=>{let{initialValueFn:ot,subscribe:it}=et,st=ot();return tt.current!==st&&(tt.current=st,nt(st)),it(lt=>{tt.current=lt,nt(lt)})},[et,j]),rt}function r$3(j){return{initialValueFn:()=>j.isEditable(),subscribe:_e=>j.registerEditableListener(_e)}}var useLexicalEditable_prod=function(){return m$3(r$3)};const useLexicalEditable=useLexicalEditable_prod;var useLexicalEditable_1=useLexicalEditable,LexicalText_prod={},g$3=Lexical_1;function r$2(j,_e=!0){return j?!1:(j=t$3(),_e&&(j=j.trim()),j==="")}function t$3(){return g$3.$getRoot().getTextContent()}function u$4(j){if(!r$2(j,!1))return!1;j=g$3.$getRoot().getChildren();let _e=j.length;if(1<_e)return!1;for(let tt=0;tt<_e;tt++){var et=j[tt];if(g$3.$isDecoratorNode(et))return!1;if(g$3.$isElementNode(et)){if(!g$3.$isParagraphNode(et)||et.__indent!==0)return!1;et=et.getChildren();let rt=et.length;for(let nt=0;ntu$4(j)};LexicalText_prod.$findTextIntersectionFromCharacters=function(j,_e){var et=j.getFirstChild();j=0;e:for(;et!==null;){if(g$3.$isElementNode(et)){var tt=et.getFirstChild();if(tt!==null){et=tt;continue}}else if(g$3.$isTextNode(et)){if(tt=et.getTextContentSize(),j+tt>_e)return{node:et,offset:_e-j};j+=tt}if(tt=et.getNextSibling(),tt!==null)et=tt;else{for(et=et.getParent();et!==null;){if(tt=et.getNextSibling(),tt!==null){et=tt;continue e}et=et.getParent()}break}}return null};LexicalText_prod.$isRootTextContentEmpty=r$2;LexicalText_prod.$isRootTextContentEmptyCurry=function(j,_e){return()=>r$2(j,_e)};LexicalText_prod.$rootTextContent=t$3;LexicalText_prod.registerLexicalTextEntity=function(j,_e,et,tt){let rt=ot=>{const it=g$3.$createTextNode(ot.getTextContent());it.setFormat(ot.getFormat()),ot.replace(it)},nt=j.registerNodeTransform(g$3.TextNode,ot=>{if(ot.isSimpleText()){var it=ot.getPreviousSibling(),st=ot.getTextContent(),lt=ot;if(g$3.$isTextNode(it)){var ut=it.getTextContent(),ct=_e(ut+st);if(it instanceof et){if(ct===null||it.getLatest().__mode!==0){rt(it);return}if(ct=ct.end-ut.length,0{var it=ot.getTextContent();const st=_e(it);st===null||st.start!==0?rt(ot):it.length>st.end?ot.splitText(st.end):(it=ot.getPreviousSibling(),g$3.$isTextNode(it)&&it.isTextEntity()&&(rt(it),rt(ot)),it=ot.getNextSibling(),g$3.$isTextNode(it)&&it.isTextEntity()&&(rt(it),ot instanceof et&&rt(ot)))}),[nt,j]};const LexicalText=LexicalText_prod;var LexicalText_1=LexicalText,LexicalDragon_prod={},g$2=Lexical_1;LexicalDragon_prod.registerDragonSupport=function(j){let _e=window.location.origin,et=tt=>{if(tt.origin===_e){var rt=j.getRootElement();if(document.activeElement===rt&&(rt=tt.data,typeof rt=="string")){try{var nt=JSON.parse(rt)}catch{return}if(nt&&nt.protocol==="nuanria_messaging"&&nt.type==="request"&&(nt=nt.payload)&&nt.functionId==="makeChanges"&&(nt=nt.args)){const[ot,it,st,lt,ut]=nt;j.update(()=>{const ct=g$2.$getSelection();if(g$2.$isRangeSelection(ct)){var dt=ct.anchor;let ft=dt.getNode(),pt=0,gt=0;g$2.$isTextNode(ft)&&0<=ot&&0<=it&&(pt=ot,gt=ot+it,ct.setTextNodeRange(ft,pt,ft,gt)),(pt!==gt||st!=="")&&(ct.insertRawText(st),ft=dt.getNode()),g$2.$isTextNode(ft)&&(pt=lt,gt=lt+ut,dt=ft.getTextContentSize(),pt=pt>dt?dt:pt,gt=gt>dt?dt:gt,ct.setTextNodeRange(ft,pt,ft,gt)),tt.stopImmediatePropagation()}})}}}};return window.addEventListener("message",et,!0),()=>{window.removeEventListener("message",et,!0)}};const LexicalDragon=LexicalDragon_prod;var LexicalDragon_1=LexicalDragon,LexicalRichText_prod={},LexicalClipboard_prod={},LexicalHtml_prod={},m$2=LexicalSelection_1,p$2=LexicalUtils_1,q$2=Lexical_1;function u$3(j,_e,et,tt=null){let rt=tt!==null?_e.isSelected(tt):!0,nt=q$2.$isElementNode(_e)&&_e.excludeFromCopy("html");var ot=_e;tt!==null&&(ot=m$2.$cloneWithProperties(_e),ot=q$2.$isTextNode(ot)&&tt!==null?m$2.$sliceSelectedTextNodeContent(tt,ot):ot);let it=q$2.$isElementNode(ot)?ot.getChildren():[];var st=j._nodes.get(ot.getType());st=st&&st.exportDOM!==void 0?st.exportDOM(j,ot):ot.exportDOM(j);let{element:lt,after:ut}=st;if(!lt)return!1;st=document.createDocumentFragment();for(let ct=0;ct"u"||typeof window>"u"&&typeof commonjsGlobal.window>"u")throw Error("To use $generateHtmlFromNodes in headless mode please initialize a headless browser implementation such as JSDom before calling this function.");let et=document.createElement("div"),tt=q$2.$getRoot().getChildren();for(let rt=0;rt{j.update(()=>{ot(C$2(j,_e))})});var et=j.getRootElement();let tt=j._window==null?window.document:j._window.document,rt=u$2?(j._window||window).getSelection():null;if(et===null||rt===null)return!1;let nt=tt.createElement("span");return nt.style.cssText="position: fixed; top: -1000px;",nt.append(tt.createTextNode("#")),et.append(nt),et=new Range,et.setStart(nt,0),et.setEnd(nt,1),rt.removeAllRanges(),rt.addRange(et),new Promise(ot=>{let it=j.registerCommand(r$1.COPY_COMMAND,st=>(q$1.objectKlassEquals(st,ClipboardEvent)&&(it(),B$2!==null&&(window.clearTimeout(B$2),B$2=null),ot(C$2(j,st))),!0),r$1.COMMAND_PRIORITY_CRITICAL);B$2=window.setTimeout(()=>{it(),B$2=null,ot(!1)},50),tt.execCommand("copy"),nt.remove()})};const LexicalClipboard=LexicalClipboard_prod;var LexicalClipboard_1=LexicalClipboard,c$1=LexicalClipboard_1,g$1=LexicalSelection_1,h$1=LexicalUtils_1,k$2=Lexical_1;function l$1(j,_e){return typeof document.caretRangeFromPoint<"u"?(j=document.caretRangeFromPoint(j,_e),j===null?null:{node:j.startContainer,offset:j.startOffset}):document.caretPositionFromPoint!=="undefined"?(j=document.caretPositionFromPoint(j,_e),j===null?null:{node:j.offsetNode,offset:j.offset}):null}let n$1=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",p$1=n$1&&"documentMode"in document?document.documentMode:null,q=n$1&&"InputEvent"in window&&!p$1?"getTargetRanges"in new window.InputEvent("input"):!1,r=n$1&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),t$1=n$1&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,u$1=n$1&&/^(?=.*Chrome).*/i.test(navigator.userAgent),v$1=n$1&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!u$1,w$1=k$2.createCommand("DRAG_DROP_PASTE_FILE"),x$2=class sm extends k$2.ElementNode{static getType(){return"quote"}static clone(_e){return new sm(_e.__key)}constructor(_e){super(_e)}createDOM(_e){let et=document.createElement("blockquote");return h$1.addClassNamesToElement(et,_e.theme.quote),et}updateDOM(){return!1}static importDOM(){return{blockquote:()=>({conversion:y$2,priority:0})}}exportDOM(_e){if({element:_e}=super.exportDOM(_e),_e&&h$1.isHTMLElement(_e)){this.isEmpty()&&_e.append(document.createElement("br"));var et=this.getFormatType();_e.style.textAlign=et,(et=this.getDirection())&&(_e.dir=et)}return{element:_e}}static importJSON(_e){let et=z();return et.setFormat(_e.format),et.setIndent(_e.indent),et.setDirection(_e.direction),et}exportJSON(){return{...super.exportJSON(),type:"quote"}}insertNewAfter(_e,et){_e=k$2.$createParagraphNode();let tt=this.getDirection();return _e.setDirection(tt),this.insertAfter(_e,et),_e}collapseAtStart(){let _e=k$2.$createParagraphNode();return this.getChildren().forEach(et=>_e.append(et)),this.replace(_e),!0}};function z(){return k$2.$applyNodeReplacement(new x$2)}let B$1=class lm extends k$2.ElementNode{static getType(){return"heading"}static clone(_e){return new lm(_e.__tag,_e.__key)}constructor(_e,et){super(et),this.__tag=_e}getTag(){return this.__tag}createDOM(_e){let et=this.__tag,tt=document.createElement(et);return _e=_e.theme.heading,_e!==void 0&&h$1.addClassNamesToElement(tt,_e[et]),tt}updateDOM(){return!1}static importDOM(){return{h1:()=>({conversion:C$1,priority:0}),h2:()=>({conversion:C$1,priority:0}),h3:()=>({conversion:C$1,priority:0}),h4:()=>({conversion:C$1,priority:0}),h5:()=>({conversion:C$1,priority:0}),h6:()=>({conversion:C$1,priority:0}),p:_e=>(_e=_e.firstChild,_e!==null&&D(_e)?{conversion:()=>({node:null}),priority:3}:null),span:_e=>D(_e)?{conversion:()=>({node:E("h1")}),priority:3}:null}}exportDOM(_e){if({element:_e}=super.exportDOM(_e),_e&&h$1.isHTMLElement(_e)){this.isEmpty()&&_e.append(document.createElement("br"));var et=this.getFormatType();_e.style.textAlign=et,(et=this.getDirection())&&(_e.dir=et)}return{element:_e}}static importJSON(_e){let et=E(_e.tag);return et.setFormat(_e.format),et.setIndent(_e.indent),et.setDirection(_e.direction),et}exportJSON(){return{...super.exportJSON(),tag:this.getTag(),type:"heading",version:1}}insertNewAfter(_e,et=!0){let tt=_e?_e.anchor.offset:0,rt=tt!==this.getTextContentSize()&&_e?E(this.getTag()):k$2.$createParagraphNode(),nt=this.getDirection();return rt.setDirection(nt),this.insertAfter(rt,et),tt===0&&!this.isEmpty()&&_e&&(_e=k$2.$createParagraphNode(),_e.select(),this.replace(_e,!0)),rt}collapseAtStart(){let _e=this.isEmpty()?k$2.$createParagraphNode():E(this.getTag());return this.getChildren().forEach(et=>_e.append(et)),this.replace(_e),!0}extractWithChild(){return!0}};function D(j){return j.nodeName.toLowerCase()==="span"?j.style.fontSize==="26pt":!1}function C$1(j){let _e=j.nodeName.toLowerCase(),et=null;return(_e==="h1"||_e==="h2"||_e==="h3"||_e==="h4"||_e==="h5"||_e==="h6")&&(et=E(_e),j.style!==null&&et.setFormat(j.style.textAlign)),{node:et}}function y$2(j){let _e=z();return j.style!==null&&_e.setFormat(j.style.textAlign),{node:_e}}function E(j){return k$2.$applyNodeReplacement(new B$1(j))}function F(j,_e){j.preventDefault(),_e.update(()=>{let et=k$2.$getSelection(),tt=j instanceof InputEvent||j instanceof KeyboardEvent?null:j.clipboardData;tt!=null&&et!==null&&c$1.$insertDataTransferForRichText(tt,et,_e)},{tag:"paste"})}async function G(j,_e){await c$1.copyToClipboard(_e,h$1.objectKlassEquals(j,ClipboardEvent)?j:null),_e.update(()=>{let et=k$2.$getSelection();k$2.$isRangeSelection(et)?et.removeText():k$2.$isNodeSelection(et)&&et.getNodes().forEach(tt=>tt.remove())})}function H(j){let _e=null;if(j instanceof DragEvent?_e=j.dataTransfer:j instanceof ClipboardEvent&&(_e=j.clipboardData),_e===null)return[!1,[],!1];var et=_e.types;return j=et.includes("Files"),et=et.includes("text/html")||et.includes("text/plain"),[j,Array.from(_e.files),et]}function I(j){var _e=k$2.$getSelection();if(!k$2.$isRangeSelection(_e))return!1;let et=new Set;_e=_e.getNodes();for(let nt=0;nt<_e.length;nt++){var tt=_e[nt],rt=tt.getKey();et.has(rt)||(tt=h$1.$getNearestBlockElementAncestorOrThrow(tt),rt=tt.getKey(),tt.canIndent()&&!et.has(rt)&&(et.add(rt),j(tt)))}return 0{const _e=k$2.$getSelection();return k$2.$isNodeSelection(_e)?(_e.clear(),!0):!1},0),j.registerCommand(k$2.DELETE_CHARACTER_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.deleteCharacter(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.DELETE_WORD_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.deleteWord(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.DELETE_LINE_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.deleteLine(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.CONTROLLED_TEXT_INSERTION_COMMAND,_e=>{const et=k$2.$getSelection();if(typeof _e=="string")et!==null&&et.insertText(_e);else{if(et===null)return!1;const tt=_e.dataTransfer;tt!=null?c$1.$insertDataTransferForRichText(tt,et,j):k$2.$isRangeSelection(et)&&(_e=_e.data)&&et.insertText(_e)}return!0},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.REMOVE_TEXT_COMMAND,()=>{const _e=k$2.$getSelection();return k$2.$isRangeSelection(_e)?(_e.removeText(),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.FORMAT_TEXT_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.formatText(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.FORMAT_ELEMENT_COMMAND,_e=>{var et=k$2.$getSelection();if(!k$2.$isRangeSelection(et)&&!k$2.$isNodeSelection(et))return!1;et=et.getNodes();for(const tt of et)et=h$1.$findMatchingParent(tt,rt=>k$2.$isElementNode(rt)&&!rt.isInline()),et!==null&&et.setFormat(_e);return!0},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.INSERT_LINE_BREAK_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.insertLineBreak(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.INSERT_PARAGRAPH_COMMAND,()=>{const _e=k$2.$getSelection();return k$2.$isRangeSelection(_e)?(_e.insertParagraph(),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.INSERT_TAB_COMMAND,()=>(k$2.$insertNodes([k$2.$createTabNode()]),!0),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.INDENT_CONTENT_COMMAND,()=>I(_e=>{const et=_e.getIndent();_e.setIndent(et+1)}),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.OUTDENT_CONTENT_COMMAND,()=>I(_e=>{const et=_e.getIndent();0{var et=k$2.$getSelection();if(k$2.$isNodeSelection(et)&&!J(_e.target)){if(_e=et.getNodes(),0<_e.length)return _e[0].selectPrevious(),!0}else if(k$2.$isRangeSelection(et)&&(et=k$2.$getAdjacentNode(et.focus,!0),!_e.shiftKey&&k$2.$isDecoratorNode(et)&&!et.isIsolated()&&!et.isInline()))return et.selectPrevious(),_e.preventDefault(),!0;return!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.KEY_ARROW_DOWN_COMMAND,_e=>{var et=k$2.$getSelection();if(k$2.$isNodeSelection(et)){if(_e=et.getNodes(),0<_e.length)return _e[0].selectNext(0,0),!0}else if(k$2.$isRangeSelection(et)){let tt=et.focus;if(tt.key==="root"&&tt.offset===k$2.$getRoot().getChildrenSize())return _e.preventDefault(),!0;if(et=k$2.$getAdjacentNode(et.focus,!1),!_e.shiftKey&&k$2.$isDecoratorNode(et)&&!et.isIsolated()&&!et.isInline())return et.selectNext(),_e.preventDefault(),!0}return!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.KEY_ARROW_LEFT_COMMAND,_e=>{const et=k$2.$getSelection();if(k$2.$isNodeSelection(et)){var tt=et.getNodes();if(0{const et=k$2.$getSelection();if(k$2.$isNodeSelection(et)&&!J(_e.target)){var tt=et.getNodes();if(0{if(J(_e.target))return!1;const et=k$2.$getSelection();if(!k$2.$isRangeSelection(et))return!1;_e.preventDefault(),{anchor:_e}=et;const tt=_e.getNode();return et.isCollapsed()&&_e.offset===0&&!k$2.$isRootNode(tt)&&0{if(J(_e.target))return!1;const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(_e.preventDefault(),j.dispatchCommand(k$2.DELETE_CHARACTER_COMMAND,!1)):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.KEY_ENTER_COMMAND,_e=>{const et=k$2.$getSelection();if(!k$2.$isRangeSelection(et))return!1;if(_e!==null){if((t$1||r||v$1)&&q)return!1;if(_e.preventDefault(),_e.shiftKey)return j.dispatchCommand(k$2.INSERT_LINE_BREAK_COMMAND,!1)}return j.dispatchCommand(k$2.INSERT_PARAGRAPH_COMMAND,void 0)},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.KEY_ESCAPE_COMMAND,()=>{const _e=k$2.$getSelection();return k$2.$isRangeSelection(_e)?(j.blur(),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.DROP_COMMAND,_e=>{const[,et]=H(_e);if(0{[_e]=H(_e);const et=k$2.$getSelection();return!(_e&&!k$2.$isRangeSelection(et))},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.DRAGOVER_COMMAND,_e=>{var[et]=H(_e);const tt=k$2.$getSelection();return et&&!k$2.$isRangeSelection(tt)?!1:(et=l$1(_e.clientX,_e.clientY),et!==null&&(et=k$2.$getNearestNodeFromDOMNode(et.node),k$2.$isDecoratorNode(et)&&_e.preventDefault()),!0)},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.SELECT_ALL_COMMAND,()=>(k$2.$selectAll(),!0),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.COPY_COMMAND,_e=>(c$1.copyToClipboard(j,h$1.objectKlassEquals(_e,ClipboardEvent)?_e:null),!0),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.CUT_COMMAND,_e=>(G(_e,j),!0),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.PASTE_COMMAND,_e=>{const[,et,tt]=H(_e);return 0w(j));return v(()=>{function tt(){let rt=w(j);et(rt)}return tt(),n.mergeRegister(j.registerUpdateListener(()=>{tt()}),j.registerEditableListener(()=>{tt()}))},[j]),_e}function y$1(j,_e){let[et,tt]=l.useState(()=>j.getDecorators());return v(()=>j.registerDecoratorListener(rt=>{p.flushSync(()=>{tt(rt)})}),[j]),l.useEffect(()=>{tt(j.getDecorators())},[j]),l.useMemo(()=>{let rt=[],nt=Object.keys(et);for(let ot=0;otj._onError(ut)},l.createElement(l.Suspense,{fallback:null},et[it])),lt=j.getElementByKey(it);lt!==null&&rt.push(p.createPortal(st,lt,it))}return rt},[_e,et,j])}function B(j){v(()=>n.mergeRegister(u.registerRichText(j),t.registerDragonSupport(j)),[j])}function C({content:j}){var[_e]=b$1.useLexicalComposerContext();_e=x$1(_e);let et=g();return _e?typeof j=="function"?j(et):j:null}LexicalRichTextPlugin_prod.RichTextPlugin=function({contentEditable:j,placeholder:_e,ErrorBoundary:et}){let[tt]=b$1.useLexicalComposerContext();return et=y$1(tt,et),B(tt),l.createElement(l.Fragment,null,j,l.createElement(C,{content:_e}),et)};const LexicalRichTextPlugin=LexicalRichTextPlugin_prod;var LexicalRichTextPlugin_1=LexicalRichTextPlugin,RichEditorContentType=(j=>(j.IMAGE="image",j.TEXT="text",j))(RichEditorContentType||{});const FAKE_PROTOCOL="fake:",CAN_USE_DOM=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";var useLexicalNodeSelection_prod={},b=LexicalComposerContext_1,f=Lexical_1,h=reactExports;function k$1(j,_e){return j.getEditorState().read(()=>{let et=f.$getNodeByKey(_e);return et===null?!1:et.isSelected()})}useLexicalNodeSelection_prod.useLexicalNodeSelection=function(j){let[_e]=b.useLexicalComposerContext(),[et,tt]=h.useState(()=>k$1(_e,j));h.useEffect(()=>{let ot=!0,it=_e.registerUpdateListener(()=>{ot&&tt(k$1(_e,j))});return()=>{ot=!1,it()}},[_e,j]);let rt=h.useCallback(ot=>{_e.update(()=>{let it=f.$getSelection();f.$isNodeSelection(it)||(it=f.$createNodeSelection(),f.$setSelection(it)),f.$isNodeSelection(it)&&(ot?it.add(j):it.delete(j))})},[_e,j]),nt=h.useCallback(()=>{_e.update(()=>{const ot=f.$getSelection();f.$isNodeSelection(ot)&&ot.clear()})},[_e]);return[et,rt,nt]};const useLexicalNodeSelection=useLexicalNodeSelection_prod;var useLexicalNodeSelection_1=useLexicalNodeSelection;function useEventCallback(j){const _e=reactExports.useRef(j);return reactExports.useLayoutEffect(()=>{_e.current=j}),reactExports.useCallback((...et)=>{const tt=_e.current;return tt(...et)},[])}const INSERT_IMAGE_COMMAND=Lexical_1.createCommand("INSERT_IMAGE_COMMAND"),INSERT_MULTIPLE_NODES_COMMAND=Lexical_1.createCommand("INSERT_MULTIPLE_NODES_COMMAND"),RIGHT_CLICK_IMAGE_COMMAND=Lexical_1.createCommand("RIGHT_CLICK_IMAGE_COMMAND");class RichEditorViewModel extends ViewModel{constructor(_e){super(),this.editor$=new State(void 0),this.maxHeight$=new State(void 0),this.resolveUrlByPath$=new State(void 0),this.resolveUrlByFile$=new State(void 0),this._resetEditorState=_e.resetEditorState,this._replaceImageSrc=_e.replaceImageSrc,this._extractEditorData=_e.extractEditorData}get requiredEditor(){const _e=this.editor$.getSnapshot();if(!_e)throw new Error("[RichEditor] editor is not prepared.");return _e}focus(){this.requiredEditor.focus()}getContent(){const et=this.requiredEditor.getEditorState();return this._extractEditorData(et)}insert(_e){this.requiredEditor.dispatchCommand(INSERT_MULTIPLE_NODES_COMMAND,{nodes:_e})}isEmpty(){return this.requiredEditor.getEditorState().read(()=>{const rt=Lexical_1.$getRoot(),nt=rt.getFirstChild();return nt?rt.getChildrenSize()===1&&nt instanceof Lexical_1.ElementNode?nt.isEmpty():!1:!0})}replaceImageSrc(_e,et){const tt=this.editor$.getSnapshot();if(!tt)throw new Error("[RichEditor] editor is not prepared.");this._replaceImageSrc(tt,_e,et)}reset(_e){const et=this.requiredEditor;this._resetEditorState(_e)(et)}async resolveUrlByFile(_e){const et=this.resolveUrlByFile$.getSnapshot();return et?et(_e):""}async resolveUrlByPath(_e){if(_e.startsWith(FAKE_PROTOCOL))return _e;const et=this.resolveUrlByPath$.getSnapshot();return(et==null?void 0:et(_e))??_e}}const RichEditorContextType=reactExports.createContext({viewmodel:new RichEditorViewModel({extractEditorData:()=>[],resetEditorState:()=>()=>{},replaceImageSrc:()=>{}})}),useRichEditorContext=()=>{const j=reactExports.useContext(RichEditorContextType),_e=reactExports.useContext(LexicalComposerContext_1.LexicalComposerContext),et=(_e==null?void 0:_e[0])??void 0;return et&&j.viewmodel.editor$.next(et),j},useAutoResize=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext(),{viewmodel:_e}=useRichEditorContext(),et=useStateValue(_e.maxHeight$);return useEventCallback(()=>{if(et===void 0)return;const rt=j==null?void 0:j.getRootElement();if(rt){rt.style.height="24px";const nt=Math.min(et,rt.scrollHeight);rt.style.height=`${nt}px`}})},imageCache=new Set;function useSuspenseImage(j){imageCache.has(j)||new Promise(_e=>{const et=new Image;et.src=j,et.onload=()=>{imageCache.add(j),_e(null)}})}function LazyImage({alt:j,className:_e,imageRef:et,src:tt,width:rt,height:nt,maxWidth:ot,onLoad:it}){return useSuspenseImage(tt),jsxRuntimeExports.jsx("img",{className:_e||void 0,src:tt,alt:j,ref:et,style:{height:nt,maxWidth:ot,width:rt,border:"1px solid #E5E5E5"},draggable:!1,onLoad:it})}const ImageComponent=j=>{const{viewmodel:_e}=useRichEditorContext(),et=useAutoResize(),{src:tt,alt:rt,nodeKey:nt,width:ot,height:it,maxWidth:st,isImageNode:lt}=j,[ut,ct]=reactExports.useState(tt),dt=reactExports.useRef(null),ft=reactExports.useRef(null),[pt,gt,vt]=useLexicalNodeSelection_1.useLexicalNodeSelection(nt),[bt]=LexicalComposerContext_1.useLexicalComposerContext(),[_t,xt]=reactExports.useState(null),yt=reactExports.useRef(null),Et=reactExports.useCallback(Mt=>{if(pt&&Lexical_1.$isNodeSelection(Lexical_1.$getSelection())){Mt.preventDefault();const Lt=Lexical_1.$getNodeByKey(nt);lt(Lt)&&Lt.remove()}return!1},[pt,nt,lt]),St=reactExports.useCallback(Mt=>{const Rt=Lexical_1.$getSelection(),Lt=ft.current;return pt&&Lexical_1.$isNodeSelection(Rt)&&Rt.getNodes().length===1&&Lt!==null&&Lt!==document.activeElement?(Mt.preventDefault(),Lt.focus(),!0):!1},[pt]),$t=reactExports.useCallback(Mt=>Mt.target===dt.current?(Mt.preventDefault(),!0):!1,[]),At=reactExports.useCallback(Mt=>ft.current===Mt.target?(Lexical_1.$setSelection(null),bt.update(()=>{gt(!0);const Rt=bt.getRootElement();Rt!==null&&Rt.focus()}),!0):!1,[bt,gt]),wt=reactExports.useCallback(Mt=>{const Rt=Mt;return Rt.target===dt.current?(Rt.shiftKey?gt(!pt):(vt(),gt(!0)),!0):!1},[pt,gt,vt]),Ct=reactExports.useCallback(Mt=>{bt.getEditorState().read(()=>{const Rt=Lexical_1.$getSelection();Mt.target.tagName==="IMG"&&Lexical_1.$isRangeSelection(Rt)&&Rt.getNodes().length===1&&bt.dispatchCommand(RIGHT_CLICK_IMAGE_COMMAND,Mt)})},[bt]);reactExports.useEffect(()=>{let Mt=!1;return _e.resolveUrlByPath(tt).then(Rt=>{Mt||ct(Rt)}),()=>{Mt=!0}},[_e,tt]),reactExports.useEffect(()=>{let Mt=!0;const Rt=bt.getRootElement(),Lt=LexicalUtils_1.mergeRegister(bt.registerUpdateListener(({editorState:jt})=>{Mt&&xt(jt.read(Lexical_1.$getSelection))}),bt.registerCommand(Lexical_1.SELECTION_CHANGE_COMMAND,(jt,Gt)=>(yt.current=Gt,!1),Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.CLICK_COMMAND,wt,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(RIGHT_CLICK_IMAGE_COMMAND,wt,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.DRAGSTART_COMMAND,$t,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.KEY_DELETE_COMMAND,Et,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.KEY_BACKSPACE_COMMAND,Et,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.KEY_ENTER_COMMAND,St,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.KEY_ESCAPE_COMMAND,At,Lexical_1.COMMAND_PRIORITY_LOW));return Rt==null||Rt.addEventListener("contextmenu",Ct),()=>{Mt=!1,Lt(),Rt==null||Rt.removeEventListener("contextmenu",Ct)}},[bt,pt,nt,vt,Et,$t,St,At,wt,Ct,gt]);const It=pt&&Lexical_1.$isNodeSelection(_t),Nt=pt?`focused ${Lexical_1.$isNodeSelection(_t)?"draggable":""}`:void 0,Pt=(ut.startsWith(FAKE_PROTOCOL)?ut.slice(FAKE_PROTOCOL.length):ut).replace(/#[\s\S]*$/,"");return jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:null,children:jsxRuntimeExports.jsx("div",{draggable:It,children:jsxRuntimeExports.jsx(LazyImage,{className:Nt,src:Pt,alt:rt,imageRef:dt,width:ot,height:it,maxWidth:st,onLoad:et})})})};class ImageNode extends Lexical_1.DecoratorNode{constructor(_e,et,tt,rt,nt,ot){super(ot),this.src=_e,this.alt=et,this.maxWidth=tt,this.width=rt||"inherit",this.height=nt||"inherit"}static getType(){return RichEditorContentType.IMAGE}static clone(_e){return new ImageNode(_e.src,_e.alt,_e.maxWidth,_e.width,_e.height,_e.__key)}static importDOM(){return{img:_e=>({conversion:convertImageElement,priority:0})}}static importJSON(_e){const{alt:et,height:tt,width:rt,maxWidth:nt,src:ot}=_e;return $createImageNode({alt:et,height:tt,maxWidth:nt,src:ot,width:rt})}exportDOM(){const _e=document.createElement("img");return _e.setAttribute("src",this.src),_e.setAttribute("alt",this.alt),_e.setAttribute("width",this.width.toString()),_e.setAttribute("height",this.height.toString()),{element:_e}}exportJSON(){return{alt:this.getAltText(),height:this.height==="inherit"?0:this.height,maxWidth:this.maxWidth,src:this.getSrc(),type:RichEditorContentType.IMAGE,version:1,width:this.width==="inherit"?0:this.width}}setWidthAndHeight(_e,et){const tt=this.getWritable();tt.width=_e,tt.height=et}createDOM(_e){const et=document.createElement("span"),rt=_e.theme.image;return rt!==void 0&&(et.className=rt),et}updateDOM(){return!1}getSrc(){return this.src}getAltText(){return this.alt}decorate(){return jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:null,children:jsxRuntimeExports.jsx(ImageComponent,{src:this.src,alt:this.alt,width:this.width,height:this.height,maxWidth:this.maxWidth,nodeKey:this.getKey(),isImageNode:$isImageNode})})}}function $createImageNode({alt:j,height:_e,maxWidth:et=240,src:tt,width:rt,key:nt}){return Lexical_1.$applyNodeReplacement(new ImageNode(tt,j,et,rt,_e,nt))}function $isImageNode(j){return j instanceof ImageNode}function convertImageElement(j){if(j instanceof HTMLImageElement){const{alt:_e,src:et,width:tt,height:rt}=j;return et.startsWith("blob:")?null:{node:$createImageNode({alt:_e,height:rt,src:et,width:tt})}}return null}const CommandPlugin=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext();return React.useLayoutEffect(()=>LexicalUtils_1.mergeRegister(j.registerCommand(INSERT_MULTIPLE_NODES_COMMAND,_e=>{const{nodes:et}=_e;if(et.length===1&&et[0].type===RichEditorContentType.TEXT){const nt=et[0];return j.update(()=>{const ot=Lexical_1.$getSelection();ot&&ot.insertRawText(nt.value)}),!0}let tt;const rt=[];for(const nt of et)switch(nt.type){case RichEditorContentType.TEXT:{const ot=Lexical_1.$createTextNode(nt.value),it=Lexical_1.$createParagraphNode();tt=ot,it.append(ot),rt.push(it);break}case RichEditorContentType.IMAGE:{const ot=$createImageNode(nt),it=Lexical_1.$createParagraphNode();tt=ot,it.append(ot),rt.push(it);break}}return rt.length<=0||(Lexical_1.$insertNodes(rt),tt&&Lexical_1.$isRootOrShadowRoot(tt.getParentOrThrow())&&tt.selectEnd()),!0},Lexical_1.COMMAND_PRIORITY_EDITOR)),[j]),jsxRuntimeExports.jsx(React.Fragment,{})},ACCEPTABLE_IMAGE_TYPES=["image/","image/heic","image/heif","image/gif","image/webp"],DragDropPastePlugin=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext(),{viewmodel:_e}=useRichEditorContext();return reactExports.useLayoutEffect(()=>j.registerCommand(LexicalRichText_1.DRAG_DROP_PASTE,et=>{return tt(),!0;async function tt(){for(const rt of et)if(LexicalUtils_1.isMimeType(rt,ACCEPTABLE_IMAGE_TYPES)){const nt=rt.name,ot=await _e.resolveUrlByFile(rt);j.dispatchCommand(INSERT_IMAGE_COMMAND,{alt:nt,src:ot})}}},Lexical_1.COMMAND_PRIORITY_LOW),[j,_e]),jsxRuntimeExports.jsx(reactExports.Fragment,{})};class Point{constructor(_e,et){this._x=_e,this._y=et}get x(){return this._x}get y(){return this._y}equals(_e){return this.x===_e.x&&this.y===_e.y}calcDeltaXTo(_e){return this.x-_e.x}calcDeltaYTo(_e){return this.y-_e.y}calcHorizontalDistanceTo(_e){return Math.abs(this.calcDeltaXTo(_e))}calcVerticalDistance(_e){return Math.abs(this.calcDeltaYTo(_e))}calcDistanceTo(_e){const et=this.calcDeltaXTo(_e)**2,tt=this.calcDeltaYTo(_e)**2;return Math.sqrt(et+tt)}}function isPoint(j){return j instanceof Point}class Rect{constructor(_e,et,tt,rt){const[nt,ot]=et<=rt?[et,rt]:[rt,et],[it,st]=_e<=tt?[_e,tt]:[tt,_e];this._top=nt,this._right=st,this._left=it,this._bottom=ot}get top(){return this._top}get right(){return this._right}get bottom(){return this._bottom}get left(){return this._left}get width(){return Math.abs(this._left-this._right)}get height(){return Math.abs(this._bottom-this._top)}static fromLTRB(_e,et,tt,rt){return new Rect(_e,et,tt,rt)}static fromLWTH(_e,et,tt,rt){return new Rect(_e,tt,_e+et,tt+rt)}static fromPoints(_e,et){const{y:tt,x:rt}=_e,{y:nt,x:ot}=et;return Rect.fromLTRB(rt,tt,ot,nt)}static fromDOM(_e){const{top:et,width:tt,left:rt,height:nt}=_e.getBoundingClientRect();return Rect.fromLWTH(rt,tt,et,nt)}equals(_e){return _e.top===this._top&&_e.bottom===this._bottom&&_e.left===this._left&&_e.right===this._right}contains(_e){if(isPoint(_e)){const{x:et,y:tt}=_e,rt=ttthis._bottom,ot=etthis._right;return{reason:{isOnBottomSide:nt,isOnLeftSide:ot,isOnRightSide:it,isOnTopSide:rt},result:!rt&&!nt&&!ot&&!it}}else{const{top:et,left:tt,bottom:rt,right:nt}=_e;return et>=this._top&&et<=this._bottom&&rt>=this._top&&rt<=this._bottom&&tt>=this._left&&tt<=this._right&&nt>=this._left&&nt<=this._right}}intersectsWith(_e){const{left:et,top:tt,width:rt,height:nt}=_e,{left:ot,top:it,width:st,height:lt}=this,ut=et+rt>=ot+st?et+rt:ot+st,ct=tt+nt>=it+lt?tt+nt:it+lt,dt=et<=ot?et:ot,ft=tt<=it?tt:it;return ut-dt<=rt+st&&ct-ft<=nt+lt}generateNewRect({left:_e=this.left,top:et=this.top,right:tt=this.right,bottom:rt=this.bottom}){return new Rect(_e,et,tt,rt)}}const SPACE=4,TARGET_LINE_HALF_HEIGHT=2,DRAGGABLE_BLOCK_MENU_CLASSNAME="draggable-block-menu",DRAG_DATA_FORMAT="application/x-lexical-drag-block",TEXT_BOX_HORIZONTAL_PADDING=28,Downward=1,Upward=-1,Indeterminate=0,DraggableBlockPlugin=j=>{const{anchorElem:_e=document.body}=j,[et]=LexicalComposerContext_1.useLexicalComposerContext();return useDraggableBlockMenu(et,_e,et._editable)};let prevIndex=1/0;function getCurrentIndex(j){return j===0?1/0:prevIndex>=0&&prevIndexLexical_1.$getRoot().getChildrenKeys())}function getCollapsedMargins(j){const _e=(st,lt)=>st?parseFloat(window.getComputedStyle(st)[lt]):0,{marginTop:et,marginBottom:tt}=window.getComputedStyle(j),rt=_e(j.previousElementSibling,"marginBottom"),nt=_e(j.nextElementSibling,"marginTop"),ot=Math.max(parseFloat(et),rt);return{marginBottom:Math.max(parseFloat(tt),nt),marginTop:ot}}function getBlockElement(j,_e,et,tt=!1){const rt=j.getBoundingClientRect(),nt=getTopLevelNodeKeys(_e);let ot=null;return _e.getEditorState().read(()=>{if(tt){const lt=_e.getElementByKey(nt[0]),ut=_e.getElementByKey(nt[nt.length-1]),ct=lt==null?void 0:lt.getBoundingClientRect(),dt=ut==null?void 0:ut.getBoundingClientRect();if(ct&&dt&&(et.ydt.bottom&&(ot=ut),ot))return}let it=getCurrentIndex(nt.length),st=Indeterminate;for(;it>=0&&it{tt.transform=et})}function setTargetLine(j,_e,et,tt){const{top:rt,height:nt}=_e.getBoundingClientRect(),{top:ot,width:it}=tt.getBoundingClientRect(),{marginTop:st,marginBottom:lt}=getCollapsedMargins(_e);let ut=rt;et>=rt?ut+=nt+lt/2:ut-=st/2;const ct=ut-ot-TARGET_LINE_HALF_HEIGHT,dt=TEXT_BOX_HORIZONTAL_PADDING-SPACE,ft=j.style;ft.transform=`translate(${dt}px, ${ct}px)`,ft.width=`${it-(TEXT_BOX_HORIZONTAL_PADDING-SPACE)*2}px`,ft.opacity=".4"}function hideTargetLine(j){const _e=j==null?void 0:j.style;_e&&(_e.opacity="0",_e.transform="translate(-10000px, -10000px)")}function useDraggableBlockMenu(j,_e,et){const tt=_e.parentElement,rt=reactExports.useRef(null),nt=reactExports.useRef(null),ot=reactExports.useRef(!1),[it,st]=reactExports.useState(null);reactExports.useLayoutEffect(()=>{function ct(ft){const pt=ft.target;if(!isHTMLElement(pt)){st(null);return}if(isOnMenu(pt))return;const gt=getBlockElement(_e,j,ft);st(gt)}function dt(){st(null)}return tt==null||tt.addEventListener("mousemove",ct),tt==null||tt.addEventListener("mouseleave",dt),()=>{tt==null||tt.removeEventListener("mousemove",ct),tt==null||tt.removeEventListener("mouseleave",dt)}},[tt,_e,j]),reactExports.useEffect(()=>{rt.current&&setMenuPosition(it,rt.current,_e)},[_e,it]),reactExports.useEffect(()=>{function ct(ft){if(!ot.current)return!1;const[pt]=LexicalRichText_1.eventFiles(ft);if(pt)return!1;const{pageY:gt,target:vt}=ft;if(!isHTMLElement(vt))return!1;const bt=getBlockElement(_e,j,ft,!0),_t=nt.current;return bt===null||_t===null?!1:(setTargetLine(_t,bt,gt,_e),ft.preventDefault(),!0)}function dt(ft){if(!ot.current)return!1;const[pt]=LexicalRichText_1.eventFiles(ft);if(pt)return!1;const{target:gt,dataTransfer:vt,pageY:bt}=ft,_t=(vt==null?void 0:vt.getData(DRAG_DATA_FORMAT))||"",xt=Lexical_1.$getNodeByKey(_t);if(!xt||!isHTMLElement(gt))return!1;const yt=getBlockElement(_e,j,ft,!0);if(!yt)return!1;const Et=Lexical_1.$getNearestNodeFromDOMNode(yt);if(!Et)return!1;if(Et===xt)return!0;const St=yt.getBoundingClientRect().top;return bt>=St?Et.insertAfter(xt):Et.insertBefore(xt),st(null),!0}return LexicalUtils_1.mergeRegister(j.registerCommand(Lexical_1.DRAGOVER_COMMAND,ft=>ct(ft),Lexical_1.COMMAND_PRIORITY_LOW),j.registerCommand(Lexical_1.DROP_COMMAND,ft=>dt(ft),Lexical_1.COMMAND_PRIORITY_HIGH))},[_e,j]);const lt=ct=>{const dt=ct.dataTransfer;if(!dt||!it)return;setDragImage(dt,it);let ft="";j.update(()=>{const pt=Lexical_1.$getNearestNodeFromDOMNode(it);pt&&(ft=pt.getKey())}),ot.current=!0,dt.setData(DRAG_DATA_FORMAT,ft)},ut=()=>{ot.current=!1,hideTargetLine(nt.current)};return reactDomExports.createPortal(jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"icon draggable-block-menu",role:"button",ref:rt,draggable:!0,onDragStart:lt,onDragEnd:ut,children:jsxRuntimeExports.jsx("div",{className:et?"icon":""})}),jsxRuntimeExports.jsx("div",{className:"draggable-block-target-line",ref:nt})]}),_e)}const EditablePlugin=j=>{const{editable:_e}=j,[et]=LexicalComposerContext_1.useLexicalComposerContext();return reactExports.useEffect(()=>{et.setEditable(_e)},[et,_e]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},ImagesPlugin=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext();return reactExports.useLayoutEffect(()=>{if(!j.hasNodes([ImageNode]))throw new Error("[RichEditor] ImagesPlugin: ImageNode not registered on editor");return LexicalUtils_1.mergeRegister(j.registerCommand(INSERT_IMAGE_COMMAND,onInsertImage,Lexical_1.COMMAND_PRIORITY_EDITOR),j.registerCommand(Lexical_1.DRAGSTART_COMMAND,onDragStart,Lexical_1.COMMAND_PRIORITY_HIGH),j.registerCommand(Lexical_1.DRAGOVER_COMMAND,onDragover,Lexical_1.COMMAND_PRIORITY_LOW),j.registerCommand(Lexical_1.DROP_COMMAND,_e=>onDrop(_e,j),Lexical_1.COMMAND_PRIORITY_HIGH))},[j]),jsxRuntimeExports.jsx(reactExports.Fragment,{})};let _transparentImage;const getTransparentImage=()=>{if(_transparentImage===void 0){const j="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";_transparentImage=document.createElement("img"),_transparentImage.src=j}return _transparentImage};function onInsertImage(j){const _e=$createImageNode(j);return Lexical_1.$insertNodes([_e]),Lexical_1.$isRootOrShadowRoot(_e.getParentOrThrow())&&LexicalUtils_1.$wrapNodeInElement(_e,Lexical_1.$createParagraphNode).selectEnd(),!0}function onDragStart(j){const _e=getImageNodeInSelection();if(!_e)return!1;const et=j.dataTransfer;if(!et)return!1;const tt=getTransparentImage();return et.setData("text/plain","_"),et.setDragImage(tt,0,0),et.setData("application/x-lexical-drag",JSON.stringify({type:RichEditorContentType.IMAGE,data:{alt:_e.alt,height:_e.height,key:_e.getKey(),maxWidth:_e.maxWidth,src:_e.src,width:_e.width}})),!0}function onDragover(j){return getImageNodeInSelection()?(canDropImage(j)||j.preventDefault(),!0):!1}function onDrop(j,_e){const et=getImageNodeInSelection();if(!et)return!1;const tt=getDragImageData(j);if(!tt)return!1;if(j.preventDefault(),canDropImage(j)){const rt=getDragSelection(j);et.remove();const nt=Lexical_1.$createRangeSelection();rt!=null&&nt.applyDOMRange(rt),Lexical_1.$setSelection(nt),_e.dispatchCommand(INSERT_IMAGE_COMMAND,tt)}return!0}function getImageNodeInSelection(){const j=Lexical_1.$getSelection();if(!Lexical_1.$isNodeSelection(j))return null;const et=j.getNodes()[0];return $isImageNode(et)?et:null}function getDragImageData(j){var et;const _e=(et=j.dataTransfer)==null?void 0:et.getData("application/x-lexical-drag");if(!_e)return null;try{const{type:tt,data:rt}=JSON.parse(_e);return tt===RichEditorContentType.IMAGE?rt:null}catch{return null}}function canDropImage(j){const _e=j.target;return!!(_e&&_e instanceof HTMLElement&&!_e.closest("code, span.editor-image")&&_e.parentElement&&_e.parentElement.closest("div.ContentEditable__root"))}const getDOMSelection=j=>CAN_USE_DOM?(j||window).getSelection():null;function getDragSelection(j){const _e=j,et=_e.target,tt=et==null?null:et.nodeType===9?et.defaultView:et.ownerDocument.defaultView,rt=getDOMSelection(tt);let nt;if(document.caretRangeFromPoint)nt=document.caretRangeFromPoint(_e.clientX,_e.clientY);else if(_e.rangeParent&&rt!==null)rt.collapse(_e.rangeParent,_e.rangeOffset||0),nt=rt.getRangeAt(0);else throw Error("[RichEditor] ImagesPlugin: Cannot get the selection when dragging");return nt}const OnKeyDownPlugin=j=>{const[_e]=LexicalComposerContext_1.useLexicalComposerContext(),et=reactExports.useRef(j.onKeyDown);return reactExports.useLayoutEffect(()=>{const tt=rt=>{var nt;(nt=et.current)==null||nt.call(et,rt)};return _e.registerRootListener((rt,nt)=>{nt!==null&&nt.removeEventListener("keydown",tt),rt!==null&&rt.addEventListener("keydown",tt)})},[_e]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},PlainContentPastePlugin=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext();return reactExports.useLayoutEffect(()=>LexicalUtils_1.mergeRegister(j.registerUpdateListener(_e=>{_e.tags.has("paste")&&j.update(()=>{_e.dirtyLeaves.forEach(et=>{const tt=Lexical_1.$getNodeByKey(et);if(Lexical_1.$isTextNode(tt)){const rt=Lexical_1.$copyNode(tt);rt.setFormat(0),rt.setStyle(""),tt.replace(rt)}})})}),j.registerNodeTransform(Lexical_1.TextNode,_e=>{const et=_e.getParentOrThrow();if(LexicalLink_1.$isLinkNode(et)){const tt=Lexical_1.$createTextNode(et.__url);et.insertBefore(tt),et.remove()}})),[j]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},resetEditorState=j=>_e=>{_e.update(()=>{const et=Lexical_1.$getRoot();et.clear();for(const tt of j)if(tt!=null){if(typeof tt=="string"){const rt=Lexical_1.$createTextNode(tt),nt=Lexical_1.$createParagraphNode();nt.append(rt),et.append(nt);continue}if(typeof tt=="object"){switch(tt.type){case RichEditorContentType.IMAGE:{const rt=$createImageNode({alt:tt.alt,src:tt.src}),nt=Lexical_1.$createParagraphNode();nt.append(rt),et.append(nt);break}case RichEditorContentType.TEXT:{const rt=Lexical_1.$createTextNode(tt.value),nt=Lexical_1.$createParagraphNode();nt.append(rt),et.append(nt);break}default:throw console.log("item:",tt),new TypeError(`[resetEditorState] unknown rich-editor content type: ${tt.type}`)}continue}console.error("[resetEditorState] unknown rich-editor data:",tt)}})},RootType=Lexical_1.RootNode.getType(),ParagraphType=Lexical_1.ParagraphNode.getType(),TextType=Lexical_1.TextNode.getType(),ImageType=ImageNode.getType(),LineBreakType=Lexical_1.LineBreakNode.getType(),extractEditorData=j=>{const _e=j.toJSON(),et=[];for(const rt of _e.root.children)tt(rt);return et;function tt(rt){switch(rt.type){case ImageType:{const{src:nt,alt:ot}=rt;if(nt.startsWith(FAKE_PROTOCOL)){const it=et[et.length-1];(it==null?void 0:it.type)===RichEditorContentType.TEXT&&(it.value+=` +`);break}et.push({type:RichEditorContentType.IMAGE,src:nt,alt:ot});break}case LineBreakType:{const nt=et[et.length-1];(nt==null?void 0:nt.type)===RichEditorContentType.TEXT&&(nt.value+=` +`);break}case ParagraphType:{const nt=rt.children;for(const ot of nt)tt(ot);break}case TextType:{const nt=rt.text,ot=et[et.length-1];(ot==null?void 0:ot.type)===RichEditorContentType.TEXT?ot.value+=nt:et.push({type:RichEditorContentType.TEXT,value:nt});break}default:throw new TypeError(`[RichEditor] [extractEditorData] Unknown node.type: (${rt.type})`)}}},replaceImageSrc=(j,_e,et)=>{j.update(()=>{const tt=Lexical_1.$getRoot();rt(tt);function rt(nt){switch(nt.getType()){case RootType:case ParagraphType:for(const ot of nt.getChildren())rt(ot);break;case ImageType:{const ot=nt;if(ot.getSrc()===_e){const it=$createImageNode({alt:ot.getAltText(),src:et});ot.replace(it)}break}}}})};class RichEditor extends reactExports.Component{constructor(_e){super(_e),this.state={floatingAnchorElem:null};const{editable:et=!0,initialContent:tt}=this.props;this.initialConfig={namespace:"react-simple-rich-editor",theme:{ltr:"ltr",rtl:"rtl",placeholder:classes.editorPlaceholder,paragraph:classes.editorParagraph},nodes:[ImageNode,LexicalLink_1.LinkNode],editable:et,editorState:tt?resetEditorState(tt):null,onError:rt=>{console.error(rt)}},this.onKeyDown=this.onKeyDown.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),this.onChange=this.onChange.bind(this),this.onEditorInputWrapperRef=this.onEditorInputWrapperRef.bind(this)}render(){const{initialConfig:_e,onKeyDown:et,onFocus:tt,onBlur:rt,onChange:nt,onEditorInputWrapperRef:ot}=this,{editable:it=!0,placeholder:st="Enter some text...",pluginsBeforeRichEditors:lt=[],pluginsAfterRichEditors:ut=[]}=this.props,{floatingAnchorElem:ct}=this.state,dt=mergeStyles$1(classes.editorContainer,this.props.editorContainerCls),ft=mergeStyles$1(classes.editorInput,this.props.editorInputCls),pt=mergeStyles$1(classes.editorInputBox,this.props.editorInputBoxCls),gt=mergeStyles$1(classes.editorPlaceholder,this.props.editorPlaceholderCls),vt=jsxRuntimeExports.jsx("div",{ref:ot,className:pt,children:jsxRuntimeExports.jsx(LexicalContentEditable_1.ContentEditable,{onFocus:tt,onBlur:rt,className:ft})});return jsxRuntimeExports.jsxs(LexicalComposer_1.LexicalComposer,{initialConfig:_e,children:[jsxRuntimeExports.jsx(EditablePlugin,{editable:it}),jsxRuntimeExports.jsx(CommandPlugin,{}),jsxRuntimeExports.jsxs("div",{className:dt,children:[lt,jsxRuntimeExports.jsx(LexicalRichTextPlugin_1.RichTextPlugin,{contentEditable:vt,placeholder:jsxRuntimeExports.jsx("div",{className:gt,children:st}),ErrorBoundary:LexicalErrorBoundary$1}),ut,jsxRuntimeExports.jsx(OnKeyDownPlugin,{onKeyDown:et}),jsxRuntimeExports.jsx(LexicalOnChangePlugin_1.OnChangePlugin,{onChange:nt}),jsxRuntimeExports.jsx(DragDropPastePlugin,{}),jsxRuntimeExports.jsx(PlainContentPastePlugin,{}),jsxRuntimeExports.jsx(ImagesPlugin,{}),jsxRuntimeExports.jsx(LexicalHistoryPlugin_1.HistoryPlugin,{}),ct&&jsxRuntimeExports.jsx(DraggableBlockPlugin,{anchorElem:ct})]})]})}onKeyDown(_e){var et,tt;(tt=(et=this.props).onKeyDown)==null||tt.call(et,_e)}onFocus(_e){var et,tt;(tt=(et=this.props).onFocus)==null||tt.call(et,_e)}onBlur(_e){var et,tt;(tt=(et=this.props).onBlur)==null||tt.call(et,_e)}onChange(_e){var et,tt;(tt=(et=this.props).onChange)==null||tt.call(et,_e)}onEditorInputWrapperRef(_e){_e!==null&&this.setState({floatingAnchorElem:_e})}}const classes=mergeStyleSets({editorContainer:{boxSizing:"border-box",position:"relative"},editorInputBox:{boxSizing:"border-box",overflow:"auto",border:"none",position:"relative",fontWeight:"400",textAlign:"left"},editorInput:{overflow:"auto",boxSizing:"border-box",resize:"none",fontSize:"15px",position:"relative",tabSize:"1",outline:"0","> :last-child":{marginBottom:0}},editorPlaceholder:{boxSizing:"border-box",color:"#999",overflow:"hidden",position:"absolute",textOverflow:"ellipsis",top:"0px",left:"0px",fontSize:"15px",userSelect:"none",display:"inline-block",pointerEvents:"none",width:"100%"},editorParagraph:{margin:"0 0 15px 0",position:"relative"}}),ReactRichEditor=reactExports.forwardRef((j,_e)=>{const[et]=reactExports.useState(()=>new RichEditorViewModel({extractEditorData,replaceImageSrc,resetEditorState})),tt=reactExports.useMemo(()=>({viewmodel:et}),[et]);return et.resolveUrlByFile$.next(j.resolveUrlByFile),et.resolveUrlByPath$.next(j.resolveUrlByPath),reactExports.useImperativeHandle(_e,()=>({focus:()=>{tt.viewmodel.focus()},getContent:()=>tt.viewmodel.getContent(),insert:rt=>{tt.viewmodel.insert(rt)},isEmpty:()=>tt.viewmodel.isEmpty(),replaceImageSrc:(rt,nt)=>{tt.viewmodel.replaceImageSrc(rt,nt)},reset:rt=>{tt.viewmodel.reset(rt)}})),jsxRuntimeExports.jsx(RichEditorContextType.Provider,{value:tt,children:jsxRuntimeExports.jsx(RichEditor,{...j})})});ReactRichEditor.displayName="ReactRichEditor";makeStyles({editor:{...shorthands.padding("8px"),...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),boxSizing:"border-box",display:"block",width:"100%",userSelect:"none",position:"relative"}});makeStyles({chatbox:{...shorthands.borderRadius("8px"),display:"flex",flexDirection:"column",alignItems:"stretch",backgroundColor:tokens.colorNeutralBackground1,width:"100%",height:"100%",boxShadow:"0px 6.4px 14.4px rgba(0, 0, 0, 0.132), 0px 1.2px 3.6px rgba(0, 0, 0, 0.108)","::-webkit-scrollbar":{width:"4px",backgroundColor:tokens.colorNeutralBackground1Hover},"::-webkit-scrollbar-thumb":{backgroundColor:tokens.colorScrollbarOverlay,...shorthands.border("1px","solid",tokens.colorNeutralBackground1),...shorthands.borderRadius("9999px")},"::-webkit-scrollbar-thumb:hover":{backgroundColor:tokens.colorNeutralForeground1Static},"::-webkit-scrollbar-track":{...shorthands.borderRadius("9999px"),backgroundColor:"transparent"}},header:{...shorthands.flex(0,0,"auto")},main:{...shorthands.flex(1,1,"auto"),...shorthands.overflow("hidden","auto")},footer:{...shorthands.flex(0,0,"auto")}});makeStyles({header:{},topbar:{...shorthands.padding("0px","16px"),...shorthands.borderBottom("1px","solid",tokens.colorNeutralBackground5),boxSizing:"border-box",display:"flex",justifyContent:"space-between",alignItems:"center",height:"48px"},toolbarTitle:{display:"flex",alignItems:"center",columnGap:"2px"},toolbarActionButton:{color:tokens.colorNeutralForeground2}});makeStyles({main:{...shorthands.padding("0","16px"),...shorthands.overflow("hidden","auto"),height:"100%"}});makeStyles({footer:{...shorthands.padding("16px"),boxSizing:"border-box"},footerContainer:{display:"flex"},leftToolbar:{...shorthands.flex(0,0,"auto")},editor:{...shorthands.flex(1),boxSizing:"border-box"},validation:{boxSizing:"border-box"},validationInner:{...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),...shorthands.margin("8px","0px"),...shorthands.padding("2px","8px"),backgroundColor:tokens.colorStatusWarningBackground1,color:tokens.colorStatusWarningForeground1}});function setMetaTag(j,_e){try{var et=global,tt=et.document;if(typeof tt<"u"&&tt.createElement&&tt.head&&tt.head.appendChild){var rt=tt.querySelector('html meta[name="'.concat(encodeURI(j),'"]'))||tt.createElement("meta");rt.setAttribute("name",j),rt.setAttribute("content",_e),tt.head.appendChild(rt)}}catch{}}function addVersionToMetaTag(){setMetaTag("react-scroll-to-bottom:version","4.2.0")}var check$1=function(j){return j&&j.Math===Math&&j},global$x=check$1(typeof globalThis=="object"&&globalThis)||check$1(typeof window=="object"&&window)||check$1(typeof self=="object"&&self)||check$1(typeof commonjsGlobal=="object"&&commonjsGlobal)||check$1(typeof commonjsGlobal=="object"&&commonjsGlobal)||function(){return this}()||Function("return this")(),fails$v=function(j){try{return!!j()}catch{return!0}},fails$u=fails$v,functionBindNative=!fails$u(function(){var j=(function(){}).bind();return typeof j!="function"||j.hasOwnProperty("prototype")}),NATIVE_BIND$3=functionBindNative,FunctionPrototype$5=Function.prototype,apply$3=FunctionPrototype$5.apply,call$c=FunctionPrototype$5.call,functionApply=typeof Reflect=="object"&&Reflect.apply||(NATIVE_BIND$3?call$c.bind(apply$3):function(){return call$c.apply(apply$3,arguments)}),NATIVE_BIND$2=functionBindNative,FunctionPrototype$4=Function.prototype,call$b=FunctionPrototype$4.call,uncurryThisWithBind=NATIVE_BIND$2&&FunctionPrototype$4.bind.bind(call$b,call$b),functionUncurryThis=NATIVE_BIND$2?uncurryThisWithBind:function(j){return function(){return call$b.apply(j,arguments)}},uncurryThis$l=functionUncurryThis,toString$f=uncurryThis$l({}.toString),stringSlice$1=uncurryThis$l("".slice),classofRaw$4=function(j){return stringSlice$1(toString$f(j),8,-1)},classofRaw$3=classofRaw$4,uncurryThis$k=functionUncurryThis,functionUncurryThisClause=function(j){if(classofRaw$3(j)==="Function")return uncurryThis$k(j)},documentAll=typeof document=="object"&&document.all,isCallable$t=typeof documentAll>"u"&&documentAll!==void 0?function(j){return typeof j=="function"||j===documentAll}:function(j){return typeof j=="function"},objectGetOwnPropertyDescriptor$1={},fails$t=fails$v,descriptors$1=!fails$t(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),NATIVE_BIND$1=functionBindNative,call$a=Function.prototype.call,functionCall=NATIVE_BIND$1?call$a.bind(call$a):function(){return call$a.apply(call$a,arguments)},objectPropertyIsEnumerable$1={},$propertyIsEnumerable$2={}.propertyIsEnumerable,getOwnPropertyDescriptor$9=Object.getOwnPropertyDescriptor,NASHORN_BUG$1=getOwnPropertyDescriptor$9&&!$propertyIsEnumerable$2.call({1:2},1);objectPropertyIsEnumerable$1.f=NASHORN_BUG$1?function j(_e){var et=getOwnPropertyDescriptor$9(this,_e);return!!et&&et.enumerable}:$propertyIsEnumerable$2;var createPropertyDescriptor$8=function(j,_e){return{enumerable:!(j&1),configurable:!(j&2),writable:!(j&4),value:_e}},uncurryThis$j=functionUncurryThis,fails$s=fails$v,classof$e=classofRaw$4,$Object$4=Object,split$1=uncurryThis$j("".split),indexedObject$1=fails$s(function(){return!$Object$4("z").propertyIsEnumerable(0)})?function(j){return classof$e(j)==="String"?split$1(j,""):$Object$4(j)}:$Object$4,isNullOrUndefined$4=function(j){return j==null},isNullOrUndefined$3=isNullOrUndefined$4,$TypeError$a=TypeError,requireObjectCoercible$8=function(j){if(isNullOrUndefined$3(j))throw new $TypeError$a("Can't call method on "+j);return j},IndexedObject$2=indexedObject$1,requireObjectCoercible$7=requireObjectCoercible$8,toIndexedObject$e=function(j){return IndexedObject$2(requireObjectCoercible$7(j))},isCallable$s=isCallable$t,isObject$h=function(j){return typeof j=="object"?j!==null:isCallable$s(j)},path$h={},path$g=path$h,global$w=global$x,isCallable$r=isCallable$t,aFunction$1=function(j){return isCallable$r(j)?j:void 0},getBuiltIn$f=function(j,_e){return arguments.length<2?aFunction$1(path$g[j])||aFunction$1(global$w[j]):path$g[j]&&path$g[j][_e]||global$w[j]&&global$w[j][_e]},uncurryThis$i=functionUncurryThis,objectIsPrototypeOf=uncurryThis$i({}.isPrototypeOf),engineUserAgent$1=typeof navigator<"u"&&String(navigator.userAgent)||"",global$v=global$x,userAgent$1=engineUserAgent$1,process$2=global$v.process,Deno$1=global$v.Deno,versions$1=process$2&&process$2.versions||Deno$1&&Deno$1.version,v8$1=versions$1&&versions$1.v8,match$1,version$1;v8$1&&(match$1=v8$1.split("."),version$1=match$1[0]>0&&match$1[0]<4?1:+(match$1[0]+match$1[1]));!version$1&&userAgent$1&&(match$1=userAgent$1.match(/Edge\/(\d+)/),(!match$1||match$1[1]>=74)&&(match$1=userAgent$1.match(/Chrome\/(\d+)/),match$1&&(version$1=+match$1[1])));var engineV8Version$1=version$1,V8_VERSION$3=engineV8Version$1,fails$r=fails$v,global$u=global$x,$String$4=global$u.String,symbolConstructorDetection=!!Object.getOwnPropertySymbols&&!fails$r(function(){var j=Symbol("symbol detection");return!$String$4(j)||!(Object(j)instanceof Symbol)||!Symbol.sham&&V8_VERSION$3&&V8_VERSION$3<41}),NATIVE_SYMBOL$7=symbolConstructorDetection,useSymbolAsUid$1=NATIVE_SYMBOL$7&&!Symbol.sham&&typeof Symbol.iterator=="symbol",getBuiltIn$e=getBuiltIn$f,isCallable$q=isCallable$t,isPrototypeOf$8=objectIsPrototypeOf,USE_SYMBOL_AS_UID$3=useSymbolAsUid$1,$Object$3=Object,isSymbol$8=USE_SYMBOL_AS_UID$3?function(j){return typeof j=="symbol"}:function(j){var _e=getBuiltIn$e("Symbol");return isCallable$q(_e)&&isPrototypeOf$8(_e.prototype,$Object$3(j))},$String$3=String,tryToString$6=function(j){try{return $String$3(j)}catch{return"Object"}},isCallable$p=isCallable$t,tryToString$5=tryToString$6,$TypeError$9=TypeError,aCallable$5=function(j){if(isCallable$p(j))return j;throw new $TypeError$9(tryToString$5(j)+" is not a function")},aCallable$4=aCallable$5,isNullOrUndefined$2=isNullOrUndefined$4,getMethod$6=function(j,_e){var et=j[_e];return isNullOrUndefined$2(et)?void 0:aCallable$4(et)},call$9=functionCall,isCallable$o=isCallable$t,isObject$g=isObject$h,$TypeError$8=TypeError,ordinaryToPrimitive$3=function(j,_e){var et,tt;if(_e==="string"&&isCallable$o(et=j.toString)&&!isObject$g(tt=call$9(et,j))||isCallable$o(et=j.valueOf)&&!isObject$g(tt=call$9(et,j))||_e!=="string"&&isCallable$o(et=j.toString)&&!isObject$g(tt=call$9(et,j)))return tt;throw new $TypeError$8("Can't convert object to primitive value")},shared$c={exports:{}},global$t=global$x,defineProperty$d=Object.defineProperty,defineGlobalProperty$1=function(j,_e){try{defineProperty$d(global$t,j,{value:_e,configurable:!0,writable:!0})}catch{global$t[j]=_e}return _e},global$s=global$x,defineGlobalProperty=defineGlobalProperty$1,SHARED$1="__core-js_shared__",store$7=global$s[SHARED$1]||defineGlobalProperty(SHARED$1,{}),sharedStore$1=store$7,store$6=sharedStore$1;(shared$c.exports=function(j,_e){return store$6[j]||(store$6[j]=_e!==void 0?_e:{})})("versions",[]).push({version:"3.35.1",mode:"pure",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE",source:"https://github.com/zloirock/core-js"});var sharedExports$1=shared$c.exports,requireObjectCoercible$6=requireObjectCoercible$8,$Object$2=Object,toObject$c=function(j){return $Object$2(requireObjectCoercible$6(j))},uncurryThis$h=functionUncurryThis,toObject$b=toObject$c,hasOwnProperty$2=uncurryThis$h({}.hasOwnProperty),hasOwnProperty_1$1=Object.hasOwn||function j(_e,et){return hasOwnProperty$2(toObject$b(_e),et)},uncurryThis$g=functionUncurryThis,id$1=0,postfix$1=Math.random(),toString$e=uncurryThis$g(1 .toString),uid$6=function(j){return"Symbol("+(j===void 0?"":j)+")_"+toString$e(++id$1+postfix$1,36)},global$r=global$x,shared$b=sharedExports$1,hasOwn$k=hasOwnProperty_1$1,uid$5=uid$6,NATIVE_SYMBOL$6=symbolConstructorDetection,USE_SYMBOL_AS_UID$2=useSymbolAsUid$1,Symbol$5=global$r.Symbol,WellKnownSymbolsStore$3=shared$b("wks"),createWellKnownSymbol$1=USE_SYMBOL_AS_UID$2?Symbol$5.for||Symbol$5:Symbol$5&&Symbol$5.withoutSetter||uid$5,wellKnownSymbol$o=function(j){return hasOwn$k(WellKnownSymbolsStore$3,j)||(WellKnownSymbolsStore$3[j]=NATIVE_SYMBOL$6&&hasOwn$k(Symbol$5,j)?Symbol$5[j]:createWellKnownSymbol$1("Symbol."+j)),WellKnownSymbolsStore$3[j]},call$8=functionCall,isObject$f=isObject$h,isSymbol$7=isSymbol$8,getMethod$5=getMethod$6,ordinaryToPrimitive$2=ordinaryToPrimitive$3,wellKnownSymbol$n=wellKnownSymbol$o,$TypeError$7=TypeError,TO_PRIMITIVE$1=wellKnownSymbol$n("toPrimitive"),toPrimitive$9=function(j,_e){if(!isObject$f(j)||isSymbol$7(j))return j;var et=getMethod$5(j,TO_PRIMITIVE$1),tt;if(et){if(_e===void 0&&(_e="default"),tt=call$8(et,j,_e),!isObject$f(tt)||isSymbol$7(tt))return tt;throw new $TypeError$7("Can't convert object to primitive value")}return _e===void 0&&(_e="number"),ordinaryToPrimitive$2(j,_e)},toPrimitive$8=toPrimitive$9,isSymbol$6=isSymbol$8,toPropertyKey$8=function(j){var _e=toPrimitive$8(j,"string");return isSymbol$6(_e)?_e:_e+""},global$q=global$x,isObject$e=isObject$h,document$2=global$q.document,EXISTS$3=isObject$e(document$2)&&isObject$e(document$2.createElement),documentCreateElement$3=function(j){return EXISTS$3?document$2.createElement(j):{}},DESCRIPTORS$j=descriptors$1,fails$q=fails$v,createElement$1=documentCreateElement$3,ie8DomDefine$1=!DESCRIPTORS$j&&!fails$q(function(){return Object.defineProperty(createElement$1("div"),"a",{get:function(){return 7}}).a!==7}),DESCRIPTORS$i=descriptors$1,call$7=functionCall,propertyIsEnumerableModule$2=objectPropertyIsEnumerable$1,createPropertyDescriptor$7=createPropertyDescriptor$8,toIndexedObject$d=toIndexedObject$e,toPropertyKey$7=toPropertyKey$8,hasOwn$j=hasOwnProperty_1$1,IE8_DOM_DEFINE$3=ie8DomDefine$1,$getOwnPropertyDescriptor$3=Object.getOwnPropertyDescriptor;objectGetOwnPropertyDescriptor$1.f=DESCRIPTORS$i?$getOwnPropertyDescriptor$3:function j(_e,et){if(_e=toIndexedObject$d(_e),et=toPropertyKey$7(et),IE8_DOM_DEFINE$3)try{return $getOwnPropertyDescriptor$3(_e,et)}catch{}if(hasOwn$j(_e,et))return createPropertyDescriptor$7(!call$7(propertyIsEnumerableModule$2.f,_e,et),_e[et])};var fails$p=fails$v,isCallable$n=isCallable$t,replacement$1=/#|\.prototype\./,isForced$3=function(j,_e){var et=data$1[normalize$2(j)];return et===POLYFILL$1?!0:et===NATIVE$1?!1:isCallable$n(_e)?fails$p(_e):!!_e},normalize$2=isForced$3.normalize=function(j){return String(j).replace(replacement$1,".").toLowerCase()},data$1=isForced$3.data={},NATIVE$1=isForced$3.NATIVE="N",POLYFILL$1=isForced$3.POLYFILL="P",isForced_1$1=isForced$3,uncurryThis$f=functionUncurryThisClause,aCallable$3=aCallable$5,NATIVE_BIND=functionBindNative,bind$3=uncurryThis$f(uncurryThis$f.bind),functionBindContext=function(j,_e){return aCallable$3(j),_e===void 0?j:NATIVE_BIND?bind$3(j,_e):function(){return j.apply(_e,arguments)}},objectDefineProperty$1={},DESCRIPTORS$h=descriptors$1,fails$o=fails$v,v8PrototypeDefineBug=DESCRIPTORS$h&&fails$o(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),isObject$d=isObject$h,$String$2=String,$TypeError$6=TypeError,anObject$h=function(j){if(isObject$d(j))return j;throw new $TypeError$6($String$2(j)+" is not an object")},DESCRIPTORS$g=descriptors$1,IE8_DOM_DEFINE$2=ie8DomDefine$1,V8_PROTOTYPE_DEFINE_BUG$1=v8PrototypeDefineBug,anObject$g=anObject$h,toPropertyKey$6=toPropertyKey$8,$TypeError$5=TypeError,$defineProperty$2=Object.defineProperty,$getOwnPropertyDescriptor$2=Object.getOwnPropertyDescriptor,ENUMERABLE="enumerable",CONFIGURABLE$2="configurable",WRITABLE="writable";objectDefineProperty$1.f=DESCRIPTORS$g?V8_PROTOTYPE_DEFINE_BUG$1?function j(_e,et,tt){if(anObject$g(_e),et=toPropertyKey$6(et),anObject$g(tt),typeof _e=="function"&&et==="prototype"&&"value"in tt&&WRITABLE in tt&&!tt[WRITABLE]){var rt=$getOwnPropertyDescriptor$2(_e,et);rt&&rt[WRITABLE]&&(_e[et]=tt.value,tt={configurable:CONFIGURABLE$2 in tt?tt[CONFIGURABLE$2]:rt[CONFIGURABLE$2],enumerable:ENUMERABLE in tt?tt[ENUMERABLE]:rt[ENUMERABLE],writable:!1})}return $defineProperty$2(_e,et,tt)}:$defineProperty$2:function j(_e,et,tt){if(anObject$g(_e),et=toPropertyKey$6(et),anObject$g(tt),IE8_DOM_DEFINE$2)try{return $defineProperty$2(_e,et,tt)}catch{}if("get"in tt||"set"in tt)throw new $TypeError$5("Accessors not supported");return"value"in tt&&(_e[et]=tt.value),_e};var DESCRIPTORS$f=descriptors$1,definePropertyModule$6=objectDefineProperty$1,createPropertyDescriptor$6=createPropertyDescriptor$8,createNonEnumerableProperty$9=DESCRIPTORS$f?function(j,_e,et){return definePropertyModule$6.f(j,_e,createPropertyDescriptor$6(1,et))}:function(j,_e,et){return j[_e]=et,j},global$p=global$x,apply$2=functionApply,uncurryThis$e=functionUncurryThisClause,isCallable$m=isCallable$t,getOwnPropertyDescriptor$8=objectGetOwnPropertyDescriptor$1.f,isForced$2=isForced_1$1,path$f=path$h,bind$2=functionBindContext,createNonEnumerableProperty$8=createNonEnumerableProperty$9,hasOwn$i=hasOwnProperty_1$1,wrapConstructor=function(j){var _e=function(et,tt,rt){if(this instanceof _e){switch(arguments.length){case 0:return new j;case 1:return new j(et);case 2:return new j(et,tt)}return new j(et,tt,rt)}return apply$2(j,this,arguments)};return _e.prototype=j.prototype,_e},_export$1=function(j,_e){var et=j.target,tt=j.global,rt=j.stat,nt=j.proto,ot=tt?global$p:rt?global$p[et]:global$p[et]&&global$p[et].prototype,it=tt?path$f:path$f[et]||createNonEnumerableProperty$8(path$f,et,{})[et],st=it.prototype,lt,ut,ct,dt,ft,pt,gt,vt,bt;for(dt in _e)lt=isForced$2(tt?dt:et+(rt?".":"#")+dt,j.forced),ut=!lt&&ot&&hasOwn$i(ot,dt),pt=it[dt],ut&&(j.dontCallGetSet?(bt=getOwnPropertyDescriptor$8(ot,dt),gt=bt&&bt.value):gt=ot[dt]),ft=ut&>?gt:_e[dt],!(!lt&&!nt&&typeof pt==typeof ft)&&(j.bind&&ut?vt=bind$2(ft,global$p):j.wrap&&ut?vt=wrapConstructor(ft):nt&&isCallable$m(ft)?vt=uncurryThis$e(ft):vt=ft,(j.sham||ft&&ft.sham||pt&&pt.sham)&&createNonEnumerableProperty$8(vt,"sham",!0),createNonEnumerableProperty$8(it,dt,vt),nt&&(ct=et+"Prototype",hasOwn$i(path$f,ct)||createNonEnumerableProperty$8(path$f,ct,{}),createNonEnumerableProperty$8(path$f[ct],dt,ft),j.real&&st&&(lt||!st[dt])&&createNonEnumerableProperty$8(st,dt,ft)))},classof$d=classofRaw$4,isArray$f=Array.isArray||function j(_e){return classof$d(_e)==="Array"},$$s=_export$1,isArray$e=isArray$f;$$s({target:"Array",stat:!0},{isArray:isArray$e});var path$e=path$h,isArray$d=path$e.Array.isArray,parent$C=isArray$d,isArray$c=parent$C,parent$B=isArray$c,isArray$b=parent$B,parent$A=isArray$b,isArray$a=parent$A,isArray$9=isArray$a;const _Array$isArray$1=getDefaultExportFromCjs(isArray$9);function _arrayWithHoles$d(j){if(_Array$isArray$1(j))return j}var ceil$1=Math.ceil,floor$2=Math.floor,mathTrunc=Math.trunc||function j(_e){var et=+_e;return(et>0?floor$2:ceil$1)(et)},trunc=mathTrunc,toIntegerOrInfinity$9=function(j){var _e=+j;return _e!==_e||_e===0?0:trunc(_e)},toIntegerOrInfinity$8=toIntegerOrInfinity$9,min$6=Math.min,toLength$4=function(j){var _e=toIntegerOrInfinity$8(j);return _e>0?min$6(_e,9007199254740991):0},toLength$3=toLength$4,lengthOfArrayLike$9=function(j){return toLength$3(j.length)},$TypeError$4=TypeError,MAX_SAFE_INTEGER$1=9007199254740991,doesNotExceedSafeInteger$3=function(j){if(j>MAX_SAFE_INTEGER$1)throw $TypeError$4("Maximum allowed index exceeded");return j},toPropertyKey$5=toPropertyKey$8,definePropertyModule$5=objectDefineProperty$1,createPropertyDescriptor$5=createPropertyDescriptor$8,createProperty$5=function(j,_e,et){var tt=toPropertyKey$5(_e);tt in j?definePropertyModule$5.f(j,tt,createPropertyDescriptor$5(0,et)):j[tt]=et},wellKnownSymbol$m=wellKnownSymbol$o,TO_STRING_TAG$4=wellKnownSymbol$m("toStringTag"),test$1={};test$1[TO_STRING_TAG$4]="z";var toStringTagSupport$1=String(test$1)==="[object z]",TO_STRING_TAG_SUPPORT$5=toStringTagSupport$1,isCallable$l=isCallable$t,classofRaw$2=classofRaw$4,wellKnownSymbol$l=wellKnownSymbol$o,TO_STRING_TAG$3=wellKnownSymbol$l("toStringTag"),$Object$1=Object,CORRECT_ARGUMENTS$1=classofRaw$2(function(){return arguments}())==="Arguments",tryGet$1=function(j,_e){try{return j[_e]}catch{}},classof$c=TO_STRING_TAG_SUPPORT$5?classofRaw$2:function(j){var _e,et,tt;return j===void 0?"Undefined":j===null?"Null":typeof(et=tryGet$1(_e=$Object$1(j),TO_STRING_TAG$3))=="string"?et:CORRECT_ARGUMENTS$1?classofRaw$2(_e):(tt=classofRaw$2(_e))==="Object"&&isCallable$l(_e.callee)?"Arguments":tt},uncurryThis$d=functionUncurryThis,isCallable$k=isCallable$t,store$5=sharedStore$1,functionToString$1=uncurryThis$d(Function.toString);isCallable$k(store$5.inspectSource)||(store$5.inspectSource=function(j){return functionToString$1(j)});var inspectSource$4=store$5.inspectSource,uncurryThis$c=functionUncurryThis,fails$n=fails$v,isCallable$j=isCallable$t,classof$b=classof$c,getBuiltIn$d=getBuiltIn$f,inspectSource$3=inspectSource$4,noop$1=function(){},construct=getBuiltIn$d("Reflect","construct"),constructorRegExp=/^\s*(?:class|function)\b/,exec$2=uncurryThis$c(constructorRegExp.exec),INCORRECT_TO_STRING=!constructorRegExp.test(noop$1),isConstructorModern=function j(_e){if(!isCallable$j(_e))return!1;try{return construct(noop$1,[],_e),!0}catch{return!1}},isConstructorLegacy=function j(_e){if(!isCallable$j(_e))return!1;switch(classof$b(_e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return INCORRECT_TO_STRING||!!exec$2(constructorRegExp,inspectSource$3(_e))}catch{return!0}};isConstructorLegacy.sham=!0;var isConstructor$3=!construct||fails$n(function(){var j;return isConstructorModern(isConstructorModern.call)||!isConstructorModern(Object)||!isConstructorModern(function(){j=!0})||j})?isConstructorLegacy:isConstructorModern,isArray$8=isArray$f,isConstructor$2=isConstructor$3,isObject$c=isObject$h,wellKnownSymbol$k=wellKnownSymbol$o,SPECIES$3=wellKnownSymbol$k("species"),$Array$2=Array,arraySpeciesConstructor$1=function(j){var _e;return isArray$8(j)&&(_e=j.constructor,isConstructor$2(_e)&&(_e===$Array$2||isArray$8(_e.prototype))?_e=void 0:isObject$c(_e)&&(_e=_e[SPECIES$3],_e===null&&(_e=void 0))),_e===void 0?$Array$2:_e},arraySpeciesConstructor=arraySpeciesConstructor$1,arraySpeciesCreate$3=function(j,_e){return new(arraySpeciesConstructor(j))(_e===0?0:_e)},fails$m=fails$v,wellKnownSymbol$j=wellKnownSymbol$o,V8_VERSION$2=engineV8Version$1,SPECIES$2=wellKnownSymbol$j("species"),arrayMethodHasSpeciesSupport$4=function(j){return V8_VERSION$2>=51||!fails$m(function(){var _e=[],et=_e.constructor={};return et[SPECIES$2]=function(){return{foo:1}},_e[j](Boolean).foo!==1})},$$r=_export$1,fails$l=fails$v,isArray$7=isArray$f,isObject$b=isObject$h,toObject$a=toObject$c,lengthOfArrayLike$8=lengthOfArrayLike$9,doesNotExceedSafeInteger$2=doesNotExceedSafeInteger$3,createProperty$4=createProperty$5,arraySpeciesCreate$2=arraySpeciesCreate$3,arrayMethodHasSpeciesSupport$3=arrayMethodHasSpeciesSupport$4,wellKnownSymbol$i=wellKnownSymbol$o,V8_VERSION$1=engineV8Version$1,IS_CONCAT_SPREADABLE=wellKnownSymbol$i("isConcatSpreadable"),IS_CONCAT_SPREADABLE_SUPPORT=V8_VERSION$1>=51||!fails$l(function(){var j=[];return j[IS_CONCAT_SPREADABLE]=!1,j.concat()[0]!==j}),isConcatSpreadable=function(j){if(!isObject$b(j))return!1;var _e=j[IS_CONCAT_SPREADABLE];return _e!==void 0?!!_e:isArray$7(j)},FORCED$4=!IS_CONCAT_SPREADABLE_SUPPORT||!arrayMethodHasSpeciesSupport$3("concat");$$r({target:"Array",proto:!0,arity:1,forced:FORCED$4},{concat:function j(_e){var et=toObject$a(this),tt=arraySpeciesCreate$2(et,0),rt=0,nt,ot,it,st,lt;for(nt=-1,it=arguments.length;ntot;)if(it=rt[ot++],it!==it)return!0}else for(;nt>ot;ot++)if((j||ot in rt)&&rt[ot]===et)return j||ot||0;return!j&&-1}},arrayIncludes$1={includes:createMethod$4(!0),indexOf:createMethod$4(!1)},hiddenKeys$a={},uncurryThis$b=functionUncurryThis,hasOwn$h=hasOwnProperty_1$1,toIndexedObject$b=toIndexedObject$e,indexOf$5=arrayIncludes$1.indexOf,hiddenKeys$9=hiddenKeys$a,push$9=uncurryThis$b([].push),objectKeysInternal$1=function(j,_e){var et=toIndexedObject$b(j),tt=0,rt=[],nt;for(nt in et)!hasOwn$h(hiddenKeys$9,nt)&&hasOwn$h(et,nt)&&push$9(rt,nt);for(;_e.length>tt;)hasOwn$h(et,nt=_e[tt++])&&(~indexOf$5(rt,nt)||push$9(rt,nt));return rt},enumBugKeys$7=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],internalObjectKeys$3=objectKeysInternal$1,enumBugKeys$6=enumBugKeys$7,objectKeys$4=Object.keys||function j(_e){return internalObjectKeys$3(_e,enumBugKeys$6)},DESCRIPTORS$e=descriptors$1,V8_PROTOTYPE_DEFINE_BUG=v8PrototypeDefineBug,definePropertyModule$4=objectDefineProperty$1,anObject$f=anObject$h,toIndexedObject$a=toIndexedObject$e,objectKeys$3=objectKeys$4;objectDefineProperties$1.f=DESCRIPTORS$e&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function j(_e,et){anObject$f(_e);for(var tt=toIndexedObject$a(et),rt=objectKeys$3(et),nt=rt.length,ot=0,it;nt>ot;)definePropertyModule$4.f(_e,it=rt[ot++],tt[it]);return _e};var getBuiltIn$c=getBuiltIn$f,html$3=getBuiltIn$c("document","documentElement"),shared$a=sharedExports$1,uid$4=uid$6,keys$5=shared$a("keys"),sharedKey$7=function(j){return keys$5[j]||(keys$5[j]=uid$4(j))},anObject$e=anObject$h,definePropertiesModule$1=objectDefineProperties$1,enumBugKeys$5=enumBugKeys$7,hiddenKeys$8=hiddenKeys$a,html$2=html$3,documentCreateElement$2=documentCreateElement$3,sharedKey$6=sharedKey$7,GT$1=">",LT$1="<",PROTOTYPE$2="prototype",SCRIPT$1="script",IE_PROTO$2=sharedKey$6("IE_PROTO"),EmptyConstructor$1=function(){},scriptTag$1=function(j){return LT$1+SCRIPT$1+GT$1+j+LT$1+"/"+SCRIPT$1+GT$1},NullProtoObjectViaActiveX$1=function(j){j.write(scriptTag$1("")),j.close();var _e=j.parentWindow.Object;return j=null,_e},NullProtoObjectViaIFrame$1=function(){var j=documentCreateElement$2("iframe"),_e="java"+SCRIPT$1+":",et;return j.style.display="none",html$2.appendChild(j),j.src=String(_e),et=j.contentWindow.document,et.open(),et.write(scriptTag$1("document.F=Object")),et.close(),et.F},activeXDocument$1,NullProtoObject$1=function(){try{activeXDocument$1=new ActiveXObject("htmlfile")}catch{}NullProtoObject$1=typeof document<"u"?document.domain&&activeXDocument$1?NullProtoObjectViaActiveX$1(activeXDocument$1):NullProtoObjectViaIFrame$1():NullProtoObjectViaActiveX$1(activeXDocument$1);for(var j=enumBugKeys$5.length;j--;)delete NullProtoObject$1[PROTOTYPE$2][enumBugKeys$5[j]];return NullProtoObject$1()};hiddenKeys$8[IE_PROTO$2]=!0;var objectCreate$1=Object.create||function j(_e,et){var tt;return _e!==null?(EmptyConstructor$1[PROTOTYPE$2]=anObject$e(_e),tt=new EmptyConstructor$1,EmptyConstructor$1[PROTOTYPE$2]=null,tt[IE_PROTO$2]=_e):tt=NullProtoObject$1(),et===void 0?tt:definePropertiesModule$1.f(tt,et)},objectGetOwnPropertyNames$1={},internalObjectKeys$2=objectKeysInternal$1,enumBugKeys$4=enumBugKeys$7,hiddenKeys$7=enumBugKeys$4.concat("length","prototype");objectGetOwnPropertyNames$1.f=Object.getOwnPropertyNames||function j(_e){return internalObjectKeys$2(_e,hiddenKeys$7)};var objectGetOwnPropertyNamesExternal={},uncurryThis$a=functionUncurryThis,arraySlice$3=uncurryThis$a([].slice),classof$9=classofRaw$4,toIndexedObject$9=toIndexedObject$e,$getOwnPropertyNames$1=objectGetOwnPropertyNames$1.f,arraySlice$2=arraySlice$3,windowNames=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],getWindowNames=function(j){try{return $getOwnPropertyNames$1(j)}catch{return arraySlice$2(windowNames)}};objectGetOwnPropertyNamesExternal.f=function j(_e){return windowNames&&classof$9(_e)==="Window"?getWindowNames(_e):$getOwnPropertyNames$1(toIndexedObject$9(_e))};var objectGetOwnPropertySymbols$1={};objectGetOwnPropertySymbols$1.f=Object.getOwnPropertySymbols;var createNonEnumerableProperty$7=createNonEnumerableProperty$9,defineBuiltIn$4=function(j,_e,et,tt){return tt&&tt.enumerable?j[_e]=et:createNonEnumerableProperty$7(j,_e,et),j},defineProperty$c=objectDefineProperty$1,defineBuiltInAccessor$1=function(j,_e,et){return defineProperty$c.f(j,_e,et)},wellKnownSymbolWrapped={},wellKnownSymbol$h=wellKnownSymbol$o;wellKnownSymbolWrapped.f=wellKnownSymbol$h;var path$d=path$h,hasOwn$g=hasOwnProperty_1$1,wrappedWellKnownSymbolModule$1=wellKnownSymbolWrapped,defineProperty$b=objectDefineProperty$1.f,wellKnownSymbolDefine=function(j){var _e=path$d.Symbol||(path$d.Symbol={});hasOwn$g(_e,j)||defineProperty$b(_e,j,{value:wrappedWellKnownSymbolModule$1.f(j)})},call$6=functionCall,getBuiltIn$b=getBuiltIn$f,wellKnownSymbol$g=wellKnownSymbol$o,defineBuiltIn$3=defineBuiltIn$4,symbolDefineToPrimitive=function(){var j=getBuiltIn$b("Symbol"),_e=j&&j.prototype,et=_e&&_e.valueOf,tt=wellKnownSymbol$g("toPrimitive");_e&&!_e[tt]&&defineBuiltIn$3(_e,tt,function(rt){return call$6(et,this)},{arity:1})},TO_STRING_TAG_SUPPORT$4=toStringTagSupport$1,classof$8=classof$c,objectToString$1=TO_STRING_TAG_SUPPORT$4?{}.toString:function j(){return"[object "+classof$8(this)+"]"},TO_STRING_TAG_SUPPORT$3=toStringTagSupport$1,defineProperty$a=objectDefineProperty$1.f,createNonEnumerableProperty$6=createNonEnumerableProperty$9,hasOwn$f=hasOwnProperty_1$1,toString$c=objectToString$1,wellKnownSymbol$f=wellKnownSymbol$o,TO_STRING_TAG$2=wellKnownSymbol$f("toStringTag"),setToStringTag$6=function(j,_e,et,tt){var rt=et?j:j&&j.prototype;rt&&(hasOwn$f(rt,TO_STRING_TAG$2)||defineProperty$a(rt,TO_STRING_TAG$2,{configurable:!0,value:_e}),tt&&!TO_STRING_TAG_SUPPORT$3&&createNonEnumerableProperty$6(rt,"toString",toString$c))},global$o=global$x,isCallable$i=isCallable$t,WeakMap$4=global$o.WeakMap,weakMapBasicDetection=isCallable$i(WeakMap$4)&&/native code/.test(String(WeakMap$4)),NATIVE_WEAK_MAP$1=weakMapBasicDetection,global$n=global$x,isObject$a=isObject$h,createNonEnumerableProperty$5=createNonEnumerableProperty$9,hasOwn$e=hasOwnProperty_1$1,shared$9=sharedStore$1,sharedKey$5=sharedKey$7,hiddenKeys$6=hiddenKeys$a,OBJECT_ALREADY_INITIALIZED$1="Object already initialized",TypeError$2=global$n.TypeError,WeakMap$3=global$n.WeakMap,set$1,get$1,has$1,enforce$1=function(j){return has$1(j)?get$1(j):set$1(j,{})},getterFor$1=function(j){return function(_e){var et;if(!isObject$a(_e)||(et=get$1(_e)).type!==j)throw new TypeError$2("Incompatible receiver, "+j+" required");return et}};if(NATIVE_WEAK_MAP$1||shared$9.state){var store$4=shared$9.state||(shared$9.state=new WeakMap$3);store$4.get=store$4.get,store$4.has=store$4.has,store$4.set=store$4.set,set$1=function(j,_e){if(store$4.has(j))throw new TypeError$2(OBJECT_ALREADY_INITIALIZED$1);return _e.facade=j,store$4.set(j,_e),_e},get$1=function(j){return store$4.get(j)||{}},has$1=function(j){return store$4.has(j)}}else{var STATE$1=sharedKey$5("state");hiddenKeys$6[STATE$1]=!0,set$1=function(j,_e){if(hasOwn$e(j,STATE$1))throw new TypeError$2(OBJECT_ALREADY_INITIALIZED$1);return _e.facade=j,createNonEnumerableProperty$5(j,STATE$1,_e),_e},get$1=function(j){return hasOwn$e(j,STATE$1)?j[STATE$1]:{}},has$1=function(j){return hasOwn$e(j,STATE$1)}}var internalState$1={set:set$1,get:get$1,has:has$1,enforce:enforce$1,getterFor:getterFor$1},bind$1=functionBindContext,uncurryThis$9=functionUncurryThis,IndexedObject$1=indexedObject$1,toObject$9=toObject$c,lengthOfArrayLike$6=lengthOfArrayLike$9,arraySpeciesCreate$1=arraySpeciesCreate$3,push$8=uncurryThis$9([].push),createMethod$3=function(j){var _e=j===1,et=j===2,tt=j===3,rt=j===4,nt=j===6,ot=j===7,it=j===5||nt;return function(st,lt,ut,ct){for(var dt=toObject$9(st),ft=IndexedObject$1(dt),pt=lengthOfArrayLike$6(ft),gt=bind$1(lt,ut),vt=0,bt=ct||arraySpeciesCreate$1,_t=_e?bt(st,pt):et||ot?bt(st,0):void 0,xt,yt;pt>vt;vt++)if((it||vt in ft)&&(xt=ft[vt],yt=gt(xt,vt,dt),j))if(_e)_t[vt]=yt;else if(yt)switch(j){case 3:return!0;case 5:return xt;case 6:return vt;case 2:push$8(_t,xt)}else switch(j){case 4:return!1;case 7:push$8(_t,xt)}return nt?-1:tt||rt?rt:_t}},arrayIteration={forEach:createMethod$3(0),map:createMethod$3(1),filter:createMethod$3(2),some:createMethod$3(3),every:createMethod$3(4),find:createMethod$3(5),findIndex:createMethod$3(6),filterReject:createMethod$3(7)},$$q=_export$1,global$m=global$x,call$5=functionCall,uncurryThis$8=functionUncurryThis,DESCRIPTORS$d=descriptors$1,NATIVE_SYMBOL$5=symbolConstructorDetection,fails$k=fails$v,hasOwn$d=hasOwnProperty_1$1,isPrototypeOf$7=objectIsPrototypeOf,anObject$d=anObject$h,toIndexedObject$8=toIndexedObject$e,toPropertyKey$4=toPropertyKey$8,$toString$1=toString$d,createPropertyDescriptor$4=createPropertyDescriptor$8,nativeObjectCreate=objectCreate$1,objectKeys$2=objectKeys$4,getOwnPropertyNamesModule$2=objectGetOwnPropertyNames$1,getOwnPropertyNamesExternal=objectGetOwnPropertyNamesExternal,getOwnPropertySymbolsModule$3=objectGetOwnPropertySymbols$1,getOwnPropertyDescriptorModule$2=objectGetOwnPropertyDescriptor$1,definePropertyModule$3=objectDefineProperty$1,definePropertiesModule=objectDefineProperties$1,propertyIsEnumerableModule$1=objectPropertyIsEnumerable$1,defineBuiltIn$2=defineBuiltIn$4,defineBuiltInAccessor=defineBuiltInAccessor$1,shared$8=sharedExports$1,sharedKey$4=sharedKey$7,hiddenKeys$5=hiddenKeys$a,uid$3=uid$6,wellKnownSymbol$e=wellKnownSymbol$o,wrappedWellKnownSymbolModule=wellKnownSymbolWrapped,defineWellKnownSymbol$l=wellKnownSymbolDefine,defineSymbolToPrimitive$1=symbolDefineToPrimitive,setToStringTag$5=setToStringTag$6,InternalStateModule$3=internalState$1,$forEach$1=arrayIteration.forEach,HIDDEN=sharedKey$4("hidden"),SYMBOL="Symbol",PROTOTYPE$1="prototype",setInternalState$2=InternalStateModule$3.set,getInternalState$4=InternalStateModule$3.getterFor(SYMBOL),ObjectPrototype$1=Object[PROTOTYPE$1],$Symbol=global$m.Symbol,SymbolPrototype=$Symbol&&$Symbol[PROTOTYPE$1],RangeError$1=global$m.RangeError,TypeError$1=global$m.TypeError,QObject=global$m.QObject,nativeGetOwnPropertyDescriptor$1=getOwnPropertyDescriptorModule$2.f,nativeDefineProperty=definePropertyModule$3.f,nativeGetOwnPropertyNames=getOwnPropertyNamesExternal.f,nativePropertyIsEnumerable=propertyIsEnumerableModule$1.f,push$7=uncurryThis$8([].push),AllSymbols=shared$8("symbols"),ObjectPrototypeSymbols=shared$8("op-symbols"),WellKnownSymbolsStore$2=shared$8("wks"),USE_SETTER=!QObject||!QObject[PROTOTYPE$1]||!QObject[PROTOTYPE$1].findChild,fallbackDefineProperty=function(j,_e,et){var tt=nativeGetOwnPropertyDescriptor$1(ObjectPrototype$1,_e);tt&&delete ObjectPrototype$1[_e],nativeDefineProperty(j,_e,et),tt&&j!==ObjectPrototype$1&&nativeDefineProperty(ObjectPrototype$1,_e,tt)},setSymbolDescriptor=DESCRIPTORS$d&&fails$k(function(){return nativeObjectCreate(nativeDefineProperty({},"a",{get:function(){return nativeDefineProperty(this,"a",{value:7}).a}})).a!==7})?fallbackDefineProperty:nativeDefineProperty,wrap=function(j,_e){var et=AllSymbols[j]=nativeObjectCreate(SymbolPrototype);return setInternalState$2(et,{type:SYMBOL,tag:j,description:_e}),DESCRIPTORS$d||(et.description=_e),et},$defineProperty$1=function j(_e,et,tt){_e===ObjectPrototype$1&&$defineProperty$1(ObjectPrototypeSymbols,et,tt),anObject$d(_e);var rt=toPropertyKey$4(et);return anObject$d(tt),hasOwn$d(AllSymbols,rt)?(tt.enumerable?(hasOwn$d(_e,HIDDEN)&&_e[HIDDEN][rt]&&(_e[HIDDEN][rt]=!1),tt=nativeObjectCreate(tt,{enumerable:createPropertyDescriptor$4(0,!1)})):(hasOwn$d(_e,HIDDEN)||nativeDefineProperty(_e,HIDDEN,createPropertyDescriptor$4(1,nativeObjectCreate(null))),_e[HIDDEN][rt]=!0),setSymbolDescriptor(_e,rt,tt)):nativeDefineProperty(_e,rt,tt)},$defineProperties=function j(_e,et){anObject$d(_e);var tt=toIndexedObject$8(et),rt=objectKeys$2(tt).concat($getOwnPropertySymbols(tt));return $forEach$1(rt,function(nt){(!DESCRIPTORS$d||call$5($propertyIsEnumerable$1,tt,nt))&&$defineProperty$1(_e,nt,tt[nt])}),_e},$create=function j(_e,et){return et===void 0?nativeObjectCreate(_e):$defineProperties(nativeObjectCreate(_e),et)},$propertyIsEnumerable$1=function j(_e){var et=toPropertyKey$4(_e),tt=call$5(nativePropertyIsEnumerable,this,et);return this===ObjectPrototype$1&&hasOwn$d(AllSymbols,et)&&!hasOwn$d(ObjectPrototypeSymbols,et)?!1:tt||!hasOwn$d(this,et)||!hasOwn$d(AllSymbols,et)||hasOwn$d(this,HIDDEN)&&this[HIDDEN][et]?tt:!0},$getOwnPropertyDescriptor$1=function j(_e,et){var tt=toIndexedObject$8(_e),rt=toPropertyKey$4(et);if(!(tt===ObjectPrototype$1&&hasOwn$d(AllSymbols,rt)&&!hasOwn$d(ObjectPrototypeSymbols,rt))){var nt=nativeGetOwnPropertyDescriptor$1(tt,rt);return nt&&hasOwn$d(AllSymbols,rt)&&!(hasOwn$d(tt,HIDDEN)&&tt[HIDDEN][rt])&&(nt.enumerable=!0),nt}},$getOwnPropertyNames=function j(_e){var et=nativeGetOwnPropertyNames(toIndexedObject$8(_e)),tt=[];return $forEach$1(et,function(rt){!hasOwn$d(AllSymbols,rt)&&!hasOwn$d(hiddenKeys$5,rt)&&push$7(tt,rt)}),tt},$getOwnPropertySymbols=function(j){var _e=j===ObjectPrototype$1,et=nativeGetOwnPropertyNames(_e?ObjectPrototypeSymbols:toIndexedObject$8(j)),tt=[];return $forEach$1(et,function(rt){hasOwn$d(AllSymbols,rt)&&(!_e||hasOwn$d(ObjectPrototype$1,rt))&&push$7(tt,AllSymbols[rt])}),tt};NATIVE_SYMBOL$5||($Symbol=function(){if(isPrototypeOf$7(SymbolPrototype,this))throw new TypeError$1("Symbol is not a constructor");var _e=!arguments.length||arguments[0]===void 0?void 0:$toString$1(arguments[0]),et=uid$3(_e),tt=function(rt){var nt=this===void 0?global$m:this;nt===ObjectPrototype$1&&call$5(tt,ObjectPrototypeSymbols,rt),hasOwn$d(nt,HIDDEN)&&hasOwn$d(nt[HIDDEN],et)&&(nt[HIDDEN][et]=!1);var ot=createPropertyDescriptor$4(1,rt);try{setSymbolDescriptor(nt,et,ot)}catch(it){if(!(it instanceof RangeError$1))throw it;fallbackDefineProperty(nt,et,ot)}};return DESCRIPTORS$d&&USE_SETTER&&setSymbolDescriptor(ObjectPrototype$1,et,{configurable:!0,set:tt}),wrap(et,_e)},SymbolPrototype=$Symbol[PROTOTYPE$1],defineBuiltIn$2(SymbolPrototype,"toString",function(){return getInternalState$4(this).tag}),defineBuiltIn$2($Symbol,"withoutSetter",function(j){return wrap(uid$3(j),j)}),propertyIsEnumerableModule$1.f=$propertyIsEnumerable$1,definePropertyModule$3.f=$defineProperty$1,definePropertiesModule.f=$defineProperties,getOwnPropertyDescriptorModule$2.f=$getOwnPropertyDescriptor$1,getOwnPropertyNamesModule$2.f=getOwnPropertyNamesExternal.f=$getOwnPropertyNames,getOwnPropertySymbolsModule$3.f=$getOwnPropertySymbols,wrappedWellKnownSymbolModule.f=function(j){return wrap(wellKnownSymbol$e(j),j)},DESCRIPTORS$d&&defineBuiltInAccessor(SymbolPrototype,"description",{configurable:!0,get:function(){return getInternalState$4(this).description}}));$$q({global:!0,constructor:!0,wrap:!0,forced:!NATIVE_SYMBOL$5,sham:!NATIVE_SYMBOL$5},{Symbol:$Symbol});$forEach$1(objectKeys$2(WellKnownSymbolsStore$2),function(j){defineWellKnownSymbol$l(j)});$$q({target:SYMBOL,stat:!0,forced:!NATIVE_SYMBOL$5},{useSetter:function(){USE_SETTER=!0},useSimple:function(){USE_SETTER=!1}});$$q({target:"Object",stat:!0,forced:!NATIVE_SYMBOL$5,sham:!DESCRIPTORS$d},{create:$create,defineProperty:$defineProperty$1,defineProperties:$defineProperties,getOwnPropertyDescriptor:$getOwnPropertyDescriptor$1});$$q({target:"Object",stat:!0,forced:!NATIVE_SYMBOL$5},{getOwnPropertyNames:$getOwnPropertyNames});defineSymbolToPrimitive$1();setToStringTag$5($Symbol,SYMBOL);hiddenKeys$5[HIDDEN]=!0;var NATIVE_SYMBOL$4=symbolConstructorDetection,symbolRegistryDetection=NATIVE_SYMBOL$4&&!!Symbol.for&&!!Symbol.keyFor,$$p=_export$1,getBuiltIn$a=getBuiltIn$f,hasOwn$c=hasOwnProperty_1$1,toString$b=toString$d,shared$7=sharedExports$1,NATIVE_SYMBOL_REGISTRY$1=symbolRegistryDetection,StringToSymbolRegistry=shared$7("string-to-symbol-registry"),SymbolToStringRegistry$1=shared$7("symbol-to-string-registry");$$p({target:"Symbol",stat:!0,forced:!NATIVE_SYMBOL_REGISTRY$1},{for:function(j){var _e=toString$b(j);if(hasOwn$c(StringToSymbolRegistry,_e))return StringToSymbolRegistry[_e];var et=getBuiltIn$a("Symbol")(_e);return StringToSymbolRegistry[_e]=et,SymbolToStringRegistry$1[et]=_e,et}});var $$o=_export$1,hasOwn$b=hasOwnProperty_1$1,isSymbol$5=isSymbol$8,tryToString$4=tryToString$6,shared$6=sharedExports$1,NATIVE_SYMBOL_REGISTRY=symbolRegistryDetection,SymbolToStringRegistry=shared$6("symbol-to-string-registry");$$o({target:"Symbol",stat:!0,forced:!NATIVE_SYMBOL_REGISTRY},{keyFor:function j(_e){if(!isSymbol$5(_e))throw new TypeError(tryToString$4(_e)+" is not a symbol");if(hasOwn$b(SymbolToStringRegistry,_e))return SymbolToStringRegistry[_e]}});var uncurryThis$7=functionUncurryThis,isArray$6=isArray$f,isCallable$h=isCallable$t,classof$7=classofRaw$4,toString$a=toString$d,push$6=uncurryThis$7([].push),getJsonReplacerFunction=function(j){if(isCallable$h(j))return j;if(isArray$6(j)){for(var _e=j.length,et=[],tt=0;tt<_e;tt++){var rt=j[tt];typeof rt=="string"?push$6(et,rt):(typeof rt=="number"||classof$7(rt)==="Number"||classof$7(rt)==="String")&&push$6(et,toString$a(rt))}var nt=et.length,ot=!0;return function(it,st){if(ot)return ot=!1,st;if(isArray$6(this))return st;for(var lt=0;lt=_e.length)return j.target=void 0,createIterResultObject$1(void 0,!0);switch(j.kind){case"keys":return createIterResultObject$1(et,!1);case"values":return createIterResultObject$1(_e[et],!1)}return createIterResultObject$1([et,_e[et]],!1)},"values");Iterators$3.Arguments=Iterators$3.Array;var domIterables={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},DOMIterables$1=domIterables,global$k=global$x,setToStringTag=setToStringTag$6,Iterators$2=iterators;for(var COLLECTION_NAME in DOMIterables$1)setToStringTag(global$k[COLLECTION_NAME],COLLECTION_NAME),Iterators$2[COLLECTION_NAME]=Iterators$2.Array;var parent$z=symbol$4,symbol$3=parent$z,wellKnownSymbol$b=wellKnownSymbol$o,defineProperty$9=objectDefineProperty$1.f,METADATA=wellKnownSymbol$b("metadata"),FunctionPrototype$2=Function.prototype;FunctionPrototype$2[METADATA]===void 0&&defineProperty$9(FunctionPrototype$2,METADATA,{value:null});var defineWellKnownSymbol$7=wellKnownSymbolDefine;defineWellKnownSymbol$7("asyncDispose");var defineWellKnownSymbol$6=wellKnownSymbolDefine;defineWellKnownSymbol$6("dispose");var defineWellKnownSymbol$5=wellKnownSymbolDefine;defineWellKnownSymbol$5("metadata");var parent$y=symbol$3,symbol$2=parent$y,getBuiltIn$7=getBuiltIn$f,uncurryThis$5=functionUncurryThis,Symbol$4=getBuiltIn$7("Symbol"),keyFor=Symbol$4.keyFor,thisSymbolValue$1=uncurryThis$5(Symbol$4.prototype.valueOf),symbolIsRegistered=Symbol$4.isRegisteredSymbol||function j(_e){try{return keyFor(thisSymbolValue$1(_e))!==void 0}catch{return!1}},$$k=_export$1,isRegisteredSymbol$1=symbolIsRegistered;$$k({target:"Symbol",stat:!0},{isRegisteredSymbol:isRegisteredSymbol$1});var shared$5=sharedExports$1,getBuiltIn$6=getBuiltIn$f,uncurryThis$4=functionUncurryThis,isSymbol$3=isSymbol$8,wellKnownSymbol$a=wellKnownSymbol$o,Symbol$3=getBuiltIn$6("Symbol"),$isWellKnownSymbol=Symbol$3.isWellKnownSymbol,getOwnPropertyNames$1=getBuiltIn$6("Object","getOwnPropertyNames"),thisSymbolValue=uncurryThis$4(Symbol$3.prototype.valueOf),WellKnownSymbolsStore$1=shared$5("wks");for(var i=0,symbolKeys=getOwnPropertyNames$1(Symbol$3),symbolKeysLength=symbolKeys.length;i=nt?j?"":void 0:(ot=charCodeAt(tt,rt),ot<55296||ot>56319||rt+1===nt||(it=charCodeAt(tt,rt+1))<56320||it>57343?j?charAt$2(tt,rt):ot:j?stringSlice(tt,rt,rt+2):(ot-55296<<10)+(it-56320)+65536)}},stringMultibyte$1={codeAt:createMethod$2(!1),charAt:createMethod$2(!0)},charAt$1=stringMultibyte$1.charAt,toString$8=toString$d,InternalStateModule$1=internalState$1,defineIterator=iteratorDefine,createIterResultObject=createIterResultObject$2,STRING_ITERATOR="String Iterator",setInternalState=InternalStateModule$1.set,getInternalState$2=InternalStateModule$1.getterFor(STRING_ITERATOR);defineIterator(String,"String",function(j){setInternalState(this,{type:STRING_ITERATOR,string:toString$8(j),index:0})},function j(){var _e=getInternalState$2(this),et=_e.string,tt=_e.index,rt;return tt>=et.length?createIterResultObject(void 0,!0):(rt=charAt$1(et,tt),_e.index+=rt.length,createIterResultObject(rt,!1))});var classof$6=classof$c,getMethod$4=getMethod$6,isNullOrUndefined$1=isNullOrUndefined$4,Iterators$1=iterators,wellKnownSymbol$9=wellKnownSymbol$o,ITERATOR$2=wellKnownSymbol$9("iterator"),getIteratorMethod$7=function(j){if(!isNullOrUndefined$1(j))return getMethod$4(j,ITERATOR$2)||getMethod$4(j,"@@iterator")||Iterators$1[classof$6(j)]},getIteratorMethod$6=getIteratorMethod$7,getIteratorMethod_1=getIteratorMethod$6,parent$w=getIteratorMethod_1,getIteratorMethod$5=parent$w,parent$v=getIteratorMethod$5,getIteratorMethod$4=parent$v,parent$u=getIteratorMethod$4,getIteratorMethod$3=parent$u,getIteratorMethod$2=getIteratorMethod$3;const _getIteratorMethod=getDefaultExportFromCjs(getIteratorMethod$2);var DESCRIPTORS$b=descriptors$1,isArray$5=isArray$f,$TypeError$3=TypeError,getOwnPropertyDescriptor$7=Object.getOwnPropertyDescriptor,SILENT_ON_NON_WRITABLE_LENGTH_SET=DESCRIPTORS$b&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(j){return j instanceof TypeError}}(),arraySetLength=SILENT_ON_NON_WRITABLE_LENGTH_SET?function(j,_e){if(isArray$5(j)&&!getOwnPropertyDescriptor$7(j,"length").writable)throw new $TypeError$3("Cannot set read only .length");return j.length=_e}:function(j,_e){return j.length=_e},$$g=_export$1,toObject$6=toObject$c,lengthOfArrayLike$5=lengthOfArrayLike$9,setArrayLength$1=arraySetLength,doesNotExceedSafeInteger$1=doesNotExceedSafeInteger$3,fails$f=fails$v,INCORRECT_TO_LENGTH=fails$f(function(){return[].push.call({length:4294967296},1)!==4294967297}),properErrorOnNonWritableLength=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(j){return j instanceof TypeError}},FORCED$2=INCORRECT_TO_LENGTH||!properErrorOnNonWritableLength();$$g({target:"Array",proto:!0,arity:1,forced:FORCED$2},{push:function j(_e){var et=toObject$6(this),tt=lengthOfArrayLike$5(et),rt=arguments.length;doesNotExceedSafeInteger$1(tt+rt);for(var nt=0;nt1?arguments[1]:void 0,ot=nt!==void 0;ot&&(nt=bind(nt,rt>2?arguments[2]:void 0));var it=getIteratorMethod(et),st=0,lt,ut,ct,dt,ft,pt;if(it&&!(this===$Array&&isArrayIteratorMethod(it)))for(dt=getIterator(et,it),ft=dt.next,ut=tt?new this:[];!(ct=call(ft,dt)).done;st++)pt=ot?callWithSafeIterationClosing(dt,nt,[ct.value,st],!0):ct.value,createProperty$2(ut,st,pt);else for(lt=lengthOfArrayLike$3(et),ut=tt?new this(lt):$Array(lt);lt>st;st++)pt=ot?nt(et[st],st):et[st],createProperty$2(ut,st,pt);return ut.length=st,ut},wellKnownSymbol$6=wellKnownSymbol$o,ITERATOR=wellKnownSymbol$6("iterator"),SAFE_CLOSING=!1;try{var called=0,iteratorWithReturn={next:function(){return{done:!!called++}},return:function(){SAFE_CLOSING=!0}};iteratorWithReturn[ITERATOR]=function(){return this},Array.from(iteratorWithReturn,function(){throw 2})}catch(j){}var checkCorrectnessOfIteration$1=function(j,_e){try{if(!_e&&!SAFE_CLOSING)return!1}catch{return!1}var et=!1;try{var tt={};tt[ITERATOR]=function(){return{next:function(){return{done:et=!0}}}},j(tt)}catch{}return et},$$e=_export$1,from$5=arrayFrom,checkCorrectnessOfIteration=checkCorrectnessOfIteration$1,INCORRECT_ITERATION=!checkCorrectnessOfIteration(function(j){Array.from(j)});$$e({target:"Array",stat:!0,forced:INCORRECT_ITERATION},{from:from$5});var path$a=path$h,from$4=path$a.Array.from,parent$n=from$4,from$3=parent$n,parent$m=from$3,from$2=parent$m,parent$l=from$2,from$1=parent$l,from=from$1;const _Array$from=getDefaultExportFromCjs(from);function _arrayLikeToArray$k(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _unsupportedIterableToArray$k(j,_e){var et;if(j){if(typeof j=="string")return _arrayLikeToArray$k(j,_e);var tt=_sliceInstanceProperty(et=Object.prototype.toString.call(j)).call(et,8,-1);if(tt==="Object"&&j.constructor&&(tt=j.constructor.name),tt==="Map"||tt==="Set")return _Array$from(j);if(tt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(tt))return _arrayLikeToArray$k(j,_e)}}function _nonIterableRest$d(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _slicedToArray$c(j,_e){return _arrayWithHoles$d(j)||_iterableToArrayLimit$c(j,_e)||_unsupportedIterableToArray$k(j,_e)||_nonIterableRest$d()}var classnames$1={exports:{}};/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(j){(function(){var _e={}.hasOwnProperty;function et(){for(var tt=[],rt=0;rt=74)&&(match=userAgent.match(/Chrome\/(\d+)/),match&&(version=match[1])));var engineV8Version=version&&+version,V8_VERSION=engineV8Version,fails$b=fails$e,nativeSymbol=!!Object.getOwnPropertySymbols&&!fails$b(function(){var j=Symbol();return!String(j)||!(Object(j)instanceof Symbol)||!Symbol.sham&&V8_VERSION&&V8_VERSION<41}),NATIVE_SYMBOL$1=nativeSymbol,useSymbolAsUid=NATIVE_SYMBOL$1&&!Symbol.sham&&typeof Symbol.iterator=="symbol",isCallable$a=isCallable$d,getBuiltIn$3=getBuiltIn$5,USE_SYMBOL_AS_UID$1=useSymbolAsUid,isSymbol$2=USE_SYMBOL_AS_UID$1?function(j){return typeof j=="symbol"}:function(j){var _e=getBuiltIn$3("Symbol");return isCallable$a(_e)&&Object(j)instanceof _e},tryToString$2=function(j){try{return String(j)}catch{return"Object"}},isCallable$9=isCallable$d,tryToString$1=tryToString$2,aCallable$1=function(j){if(isCallable$9(j))return j;throw TypeError(tryToString$1(j)+" is not a function")},aCallable=aCallable$1,getMethod$2=function(j,_e){var et=j[_e];return et==null?void 0:aCallable(et)},isCallable$8=isCallable$d,isObject$6=isObject$7,ordinaryToPrimitive$1=function(j,_e){var et,tt;if(_e==="string"&&isCallable$8(et=j.toString)&&!isObject$6(tt=et.call(j))||isCallable$8(et=j.valueOf)&&!isObject$6(tt=et.call(j))||_e!=="string"&&isCallable$8(et=j.toString)&&!isObject$6(tt=et.call(j)))return tt;throw TypeError("Can't convert object to primitive value")},shared$4={exports:{}},global$f=global$i,setGlobal$3=function(j,_e){try{Object.defineProperty(global$f,j,{value:_e,configurable:!0,writable:!0})}catch{global$f[j]=_e}return _e},global$e=global$i,setGlobal$2=setGlobal$3,SHARED="__core-js_shared__",store$3=global$e[SHARED]||setGlobal$2(SHARED,{}),sharedStore=store$3,store$2=sharedStore;(shared$4.exports=function(j,_e){return store$2[j]||(store$2[j]=_e!==void 0?_e:{})})("versions",[]).push({version:"3.18.3",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var sharedExports=shared$4.exports,requireObjectCoercible$2=requireObjectCoercible$4,toObject$4=function(j){return Object(requireObjectCoercible$2(j))},toObject$3=toObject$4,hasOwnProperty$1={}.hasOwnProperty,hasOwnProperty_1=Object.hasOwn||function j(_e,et){return hasOwnProperty$1.call(toObject$3(_e),et)},id=0,postfix=Math.random(),uid$2=function(j){return"Symbol("+String(j===void 0?"":j)+")_"+(++id+postfix).toString(36)},global$d=global$i,shared$3=sharedExports,hasOwn$8=hasOwnProperty_1,uid$1=uid$2,NATIVE_SYMBOL=nativeSymbol,USE_SYMBOL_AS_UID=useSymbolAsUid,WellKnownSymbolsStore=shared$3("wks"),Symbol$2=global$d.Symbol,createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol$2:Symbol$2&&Symbol$2.withoutSetter||uid$1,wellKnownSymbol$5=function(j){return(!hasOwn$8(WellKnownSymbolsStore,j)||!(NATIVE_SYMBOL||typeof WellKnownSymbolsStore[j]=="string"))&&(NATIVE_SYMBOL&&hasOwn$8(Symbol$2,j)?WellKnownSymbolsStore[j]=Symbol$2[j]:WellKnownSymbolsStore[j]=createWellKnownSymbol("Symbol."+j)),WellKnownSymbolsStore[j]},isObject$5=isObject$7,isSymbol$1=isSymbol$2,getMethod$1=getMethod$2,ordinaryToPrimitive=ordinaryToPrimitive$1,wellKnownSymbol$4=wellKnownSymbol$5,TO_PRIMITIVE=wellKnownSymbol$4("toPrimitive"),toPrimitive$1=function(j,_e){if(!isObject$5(j)||isSymbol$1(j))return j;var et=getMethod$1(j,TO_PRIMITIVE),tt;if(et){if(_e===void 0&&(_e="default"),tt=et.call(j,_e),!isObject$5(tt)||isSymbol$1(tt))return tt;throw TypeError("Can't convert object to primitive value")}return _e===void 0&&(_e="number"),ordinaryToPrimitive(j,_e)},toPrimitive=toPrimitive$1,isSymbol=isSymbol$2,toPropertyKey$2=function(j){var _e=toPrimitive(j,"string");return isSymbol(_e)?_e:String(_e)},global$c=global$i,isObject$4=isObject$7,document$1=global$c.document,EXISTS$1=isObject$4(document$1)&&isObject$4(document$1.createElement),documentCreateElement$1=function(j){return EXISTS$1?document$1.createElement(j):{}},DESCRIPTORS$9=descriptors,fails$a=fails$e,createElement=documentCreateElement$1,ie8DomDefine=!DESCRIPTORS$9&&!fails$a(function(){return Object.defineProperty(createElement("div"),"a",{get:function(){return 7}}).a!=7}),DESCRIPTORS$8=descriptors,propertyIsEnumerableModule=objectPropertyIsEnumerable,createPropertyDescriptor$1=createPropertyDescriptor$2,toIndexedObject$4=toIndexedObject$5,toPropertyKey$1=toPropertyKey$2,hasOwn$7=hasOwnProperty_1,IE8_DOM_DEFINE$1=ie8DomDefine,$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;objectGetOwnPropertyDescriptor.f=DESCRIPTORS$8?$getOwnPropertyDescriptor:function j(_e,et){if(_e=toIndexedObject$4(_e),et=toPropertyKey$1(et),IE8_DOM_DEFINE$1)try{return $getOwnPropertyDescriptor(_e,et)}catch{}if(hasOwn$7(_e,et))return createPropertyDescriptor$1(!propertyIsEnumerableModule.f.call(_e,et),_e[et])};var objectDefineProperty={},isObject$3=isObject$7,anObject$9=function(j){if(isObject$3(j))return j;throw TypeError(String(j)+" is not an object")},DESCRIPTORS$7=descriptors,IE8_DOM_DEFINE=ie8DomDefine,anObject$8=anObject$9,toPropertyKey=toPropertyKey$2,$defineProperty=Object.defineProperty;objectDefineProperty.f=DESCRIPTORS$7?$defineProperty:function j(_e,et,tt){if(anObject$8(_e),et=toPropertyKey(et),anObject$8(tt),IE8_DOM_DEFINE)try{return $defineProperty(_e,et,tt)}catch{}if("get"in tt||"set"in tt)throw TypeError("Accessors not supported");return"value"in tt&&(_e[et]=tt.value),_e};var DESCRIPTORS$6=descriptors,definePropertyModule$2=objectDefineProperty,createPropertyDescriptor=createPropertyDescriptor$2,createNonEnumerableProperty$4=DESCRIPTORS$6?function(j,_e,et){return definePropertyModule$2.f(j,_e,createPropertyDescriptor(1,et))}:function(j,_e,et){return j[_e]=et,j},redefine$5={exports:{}},isCallable$7=isCallable$d,store$1=sharedStore,functionToString=Function.toString;isCallable$7(store$1.inspectSource)||(store$1.inspectSource=function(j){return functionToString.call(j)});var inspectSource$2=store$1.inspectSource,global$b=global$i,isCallable$6=isCallable$d,inspectSource$1=inspectSource$2,WeakMap$2=global$b.WeakMap,nativeWeakMap=isCallable$6(WeakMap$2)&&/native code/.test(inspectSource$1(WeakMap$2)),shared$2=sharedExports,uid=uid$2,keys$4=shared$2("keys"),sharedKey$2=function(j){return keys$4[j]||(keys$4[j]=uid(j))},hiddenKeys$4={},NATIVE_WEAK_MAP=nativeWeakMap,global$a=global$i,isObject$2=isObject$7,createNonEnumerableProperty$3=createNonEnumerableProperty$4,hasOwn$6=hasOwnProperty_1,shared$1=sharedStore,sharedKey$1=sharedKey$2,hiddenKeys$3=hiddenKeys$4,OBJECT_ALREADY_INITIALIZED="Object already initialized",WeakMap$1=global$a.WeakMap,set,get,has,enforce=function(j){return has(j)?get(j):set(j,{})},getterFor=function(j){return function(_e){var et;if(!isObject$2(_e)||(et=get(_e)).type!==j)throw TypeError("Incompatible receiver, "+j+" required");return et}};if(NATIVE_WEAK_MAP||shared$1.state){var store=shared$1.state||(shared$1.state=new WeakMap$1),wmget=store.get,wmhas=store.has,wmset=store.set;set=function(j,_e){if(wmhas.call(store,j))throw new TypeError(OBJECT_ALREADY_INITIALIZED);return _e.facade=j,wmset.call(store,j,_e),_e},get=function(j){return wmget.call(store,j)||{}},has=function(j){return wmhas.call(store,j)}}else{var STATE=sharedKey$1("state");hiddenKeys$3[STATE]=!0,set=function(j,_e){if(hasOwn$6(j,STATE))throw new TypeError(OBJECT_ALREADY_INITIALIZED);return _e.facade=j,createNonEnumerableProperty$3(j,STATE,_e),_e},get=function(j){return hasOwn$6(j,STATE)?j[STATE]:{}},has=function(j){return hasOwn$6(j,STATE)}}var internalState={set,get,has,enforce,getterFor},DESCRIPTORS$5=descriptors,hasOwn$5=hasOwnProperty_1,FunctionPrototype$1=Function.prototype,getDescriptor=DESCRIPTORS$5&&Object.getOwnPropertyDescriptor,EXISTS=hasOwn$5(FunctionPrototype$1,"name"),PROPER=EXISTS&&(function j(){}).name==="something",CONFIGURABLE=EXISTS&&(!DESCRIPTORS$5||DESCRIPTORS$5&&getDescriptor(FunctionPrototype$1,"name").configurable),functionName={EXISTS,PROPER,CONFIGURABLE},global$9=global$i,isCallable$5=isCallable$d,hasOwn$4=hasOwnProperty_1,createNonEnumerableProperty$2=createNonEnumerableProperty$4,setGlobal$1=setGlobal$3,inspectSource=inspectSource$2,InternalStateModule=internalState,CONFIGURABLE_FUNCTION_NAME=functionName.CONFIGURABLE,getInternalState$1=InternalStateModule.get,enforceInternalState=InternalStateModule.enforce,TEMPLATE=String(String).split("String");(redefine$5.exports=function(j,_e,et,tt){var rt=tt?!!tt.unsafe:!1,nt=tt?!!tt.enumerable:!1,ot=tt?!!tt.noTargetGet:!1,it=tt&&tt.name!==void 0?tt.name:_e,st;if(isCallable$5(et)&&(String(it).slice(0,7)==="Symbol("&&(it="["+String(it).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!hasOwn$4(et,"name")||CONFIGURABLE_FUNCTION_NAME&&et.name!==it)&&createNonEnumerableProperty$2(et,"name",it),st=enforceInternalState(et),st.source||(st.source=TEMPLATE.join(typeof it=="string"?it:""))),j===global$9){nt?j[_e]=et:setGlobal$1(_e,et);return}else rt?!ot&&j[_e]&&(nt=!0):delete j[_e];nt?j[_e]=et:createNonEnumerableProperty$2(j,_e,et)})(Function.prototype,"toString",function j(){return isCallable$5(this)&&getInternalState$1(this).source||inspectSource(this)});var redefineExports=redefine$5.exports,objectGetOwnPropertyNames={},ceil=Math.ceil,floor$1=Math.floor,toIntegerOrInfinity$5=function(j){var _e=+j;return _e!==_e||_e===0?0:(_e>0?floor$1:ceil)(_e)},toIntegerOrInfinity$4=toIntegerOrInfinity$5,max$3=Math.max,min$4=Math.min,toAbsoluteIndex$2=function(j,_e){var et=toIntegerOrInfinity$4(j);return et<0?max$3(et+_e,0):min$4(et,_e)},toIntegerOrInfinity$3=toIntegerOrInfinity$5,min$3=Math.min,toLength$2=function(j){return j>0?min$3(toIntegerOrInfinity$3(j),9007199254740991):0},toLength$1=toLength$2,lengthOfArrayLike$2=function(j){return toLength$1(j.length)},toIndexedObject$3=toIndexedObject$5,toAbsoluteIndex$1=toAbsoluteIndex$2,lengthOfArrayLike$1=lengthOfArrayLike$2,createMethod$1=function(j){return function(_e,et,tt){var rt=toIndexedObject$3(_e),nt=lengthOfArrayLike$1(rt),ot=toAbsoluteIndex$1(tt,nt),it;if(j&&et!=et){for(;nt>ot;)if(it=rt[ot++],it!=it)return!0}else for(;nt>ot;ot++)if((j||ot in rt)&&rt[ot]===et)return j||ot||0;return!j&&-1}},arrayIncludes={includes:createMethod$1(!0),indexOf:createMethod$1(!1)},hasOwn$3=hasOwnProperty_1,toIndexedObject$2=toIndexedObject$5,indexOf$4=arrayIncludes.indexOf,hiddenKeys$2=hiddenKeys$4,objectKeysInternal=function(j,_e){var et=toIndexedObject$2(j),tt=0,rt=[],nt;for(nt in et)!hasOwn$3(hiddenKeys$2,nt)&&hasOwn$3(et,nt)&&rt.push(nt);for(;_e.length>tt;)hasOwn$3(et,nt=_e[tt++])&&(~indexOf$4(rt,nt)||rt.push(nt));return rt},enumBugKeys$3=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],internalObjectKeys$1=objectKeysInternal,enumBugKeys$2=enumBugKeys$3,hiddenKeys$1=enumBugKeys$2.concat("length","prototype");objectGetOwnPropertyNames.f=Object.getOwnPropertyNames||function j(_e){return internalObjectKeys$1(_e,hiddenKeys$1)};var objectGetOwnPropertySymbols={};objectGetOwnPropertySymbols.f=Object.getOwnPropertySymbols;var getBuiltIn$2=getBuiltIn$5,getOwnPropertyNamesModule$1=objectGetOwnPropertyNames,getOwnPropertySymbolsModule$1=objectGetOwnPropertySymbols,anObject$7=anObject$9,ownKeys$C=getBuiltIn$2("Reflect","ownKeys")||function j(_e){var et=getOwnPropertyNamesModule$1.f(anObject$7(_e)),tt=getOwnPropertySymbolsModule$1.f;return tt?et.concat(tt(_e)):et},hasOwn$2=hasOwnProperty_1,ownKeys$B=ownKeys$C,getOwnPropertyDescriptorModule$1=objectGetOwnPropertyDescriptor,definePropertyModule$1=objectDefineProperty,copyConstructorProperties$1=function(j,_e){for(var et=ownKeys$B(_e),tt=definePropertyModule$1.f,rt=getOwnPropertyDescriptorModule$1.f,nt=0;ntnt;)definePropertyModule.f(_e,ot=tt[nt++],et[ot]);return _e},getBuiltIn$1=getBuiltIn$5,html$1=getBuiltIn$1("document","documentElement"),anObject$4=anObject$9,defineProperties$5=objectDefineProperties,enumBugKeys=enumBugKeys$3,hiddenKeys=hiddenKeys$4,html=html$1,documentCreateElement=documentCreateElement$1,sharedKey=sharedKey$2,GT=">",LT="<",PROTOTYPE="prototype",SCRIPT="script",IE_PROTO=sharedKey("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(j){return LT+SCRIPT+GT+j+LT+"/"+SCRIPT+GT},NullProtoObjectViaActiveX=function(j){j.write(scriptTag("")),j.close();var _e=j.parentWindow.Object;return j=null,_e},NullProtoObjectViaIFrame=function(){var j=documentCreateElement("iframe"),_e="java"+SCRIPT+":",et;return j.style.display="none",html.appendChild(j),j.src=String(_e),et=j.contentWindow.document,et.open(),et.write(scriptTag("document.F=Object")),et.close(),et.F},activeXDocument,NullProtoObject=function(){try{activeXDocument=new ActiveXObject("htmlfile")}catch{}NullProtoObject=typeof document<"u"?document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame():NullProtoObjectViaActiveX(activeXDocument);for(var j=enumBugKeys.length;j--;)delete NullProtoObject[PROTOTYPE][enumBugKeys[j]];return NullProtoObject()};hiddenKeys[IE_PROTO]=!0;var objectCreate=Object.create||function j(_e,et){var tt;return _e!==null?(EmptyConstructor[PROTOTYPE]=anObject$4(_e),tt=new EmptyConstructor,EmptyConstructor[PROTOTYPE]=null,tt[IE_PROTO]=_e):tt=NullProtoObject(),et===void 0?tt:defineProperties$5(tt,et)},fails$7=fails$e,global$6=global$i,$RegExp$1=global$6.RegExp,regexpUnsupportedDotAll=fails$7(function(){var j=$RegExp$1(".","s");return!(j.dotAll&&j.exec(` +`)&&j.flags==="s")}),fails$6=fails$e,global$5=global$i,$RegExp=global$5.RegExp,regexpUnsupportedNcg=fails$6(function(){var j=$RegExp("(?b)","g");return j.exec("b").groups.a!=="b"||"b".replace(j,"$c")!=="bc"}),toString$5=toString$6,regexpFlags=regexpFlags$1,stickyHelpers=regexpStickyHelpers,shared=sharedExports,create=objectCreate,getInternalState=internalState.get,UNSUPPORTED_DOT_ALL=regexpUnsupportedDotAll,UNSUPPORTED_NCG=regexpUnsupportedNcg,nativeExec=RegExp.prototype.exec,nativeReplace=shared("native-string-replace",String.prototype.replace),patchedExec=nativeExec,UPDATES_LAST_INDEX_WRONG=function(){var j=/a/,_e=/b*/g;return nativeExec.call(j,"a"),nativeExec.call(_e,"a"),j.lastIndex!==0||_e.lastIndex!==0}(),UNSUPPORTED_Y=stickyHelpers.UNSUPPORTED_Y||stickyHelpers.BROKEN_CARET,NPCG_INCLUDED=/()??/.exec("")[1]!==void 0,PATCH=UPDATES_LAST_INDEX_WRONG||NPCG_INCLUDED||UNSUPPORTED_Y||UNSUPPORTED_DOT_ALL||UNSUPPORTED_NCG;PATCH&&(patchedExec=function(_e){var et=this,tt=getInternalState(et),rt=toString$5(_e),nt=tt.raw,ot,it,st,lt,ut,ct,dt;if(nt)return nt.lastIndex=et.lastIndex,ot=patchedExec.call(nt,rt),et.lastIndex=nt.lastIndex,ot;var ft=tt.groups,pt=UNSUPPORTED_Y&&et.sticky,gt=regexpFlags.call(et),vt=et.source,bt=0,_t=rt;if(pt&&(gt=gt.replace("y",""),gt.indexOf("g")===-1&&(gt+="g"),_t=rt.slice(et.lastIndex),et.lastIndex>0&&(!et.multiline||et.multiline&&rt.charAt(et.lastIndex-1)!==` +`)&&(vt="(?: "+vt+")",_t=" "+_t,bt++),it=new RegExp("^(?:"+vt+")",gt)),NPCG_INCLUDED&&(it=new RegExp("^"+vt+"$(?!\\s)",gt)),UPDATES_LAST_INDEX_WRONG&&(st=et.lastIndex),lt=nativeExec.call(pt?it:et,_t),pt?lt?(lt.input=lt.input.slice(bt),lt[0]=lt[0].slice(bt),lt.index=et.lastIndex,et.lastIndex+=lt[0].length):et.lastIndex=0:UPDATES_LAST_INDEX_WRONG&<&&(et.lastIndex=et.global?lt.index+lt[0].length:st),NPCG_INCLUDED&<&<.length>1&&nativeReplace.call(lt[0],it,function(){for(ut=1;ut=nt?j?"":void 0:(ot=tt.charCodeAt(rt),ot<55296||ot>56319||rt+1===nt||(it=tt.charCodeAt(rt+1))<56320||it>57343?j?tt.charAt(rt):ot:j?tt.slice(rt,rt+2):(ot-55296<<10)+(it-56320)+65536)}},stringMultibyte={codeAt:createMethod(!1),charAt:createMethod(!0)},charAt=stringMultibyte.charAt,advanceStringIndex$1=function(j,_e,et){return _e+(et?charAt(j,_e).length:1)},toObject$2=toObject$4,floor=Math.floor,replace="".replace,SUBSTITUTION_SYMBOLS=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,SUBSTITUTION_SYMBOLS_NO_NAMED=/\$([$&'`]|\d{1,2})/g,getSubstitution$1=function(j,_e,et,tt,rt,nt){var ot=et+j.length,it=tt.length,st=SUBSTITUTION_SYMBOLS_NO_NAMED;return rt!==void 0&&(rt=toObject$2(rt),st=SUBSTITUTION_SYMBOLS),replace.call(nt,st,function(lt,ut){var ct;switch(ut.charAt(0)){case"$":return"$";case"&":return j;case"`":return _e.slice(0,et);case"'":return _e.slice(ot);case"<":ct=rt[ut.slice(1,-1)];break;default:var dt=+ut;if(dt===0)return lt;if(dt>it){var ft=floor(dt/10);return ft===0?lt:ft<=it?tt[ft-1]===void 0?ut.charAt(1):tt[ft-1]+ut.charAt(1):lt}ct=tt[dt-1]}return ct===void 0?"":ct})},anObject$3=anObject$9,isCallable$2=isCallable$d,classof$2=classofRaw$1,regexpExec=regexpExec$2,regexpExecAbstract=function(j,_e){var et=j.exec;if(isCallable$2(et)){var tt=et.call(j,_e);return tt!==null&&anObject$3(tt),tt}if(classof$2(j)==="RegExp")return regexpExec.call(j,_e);throw TypeError("RegExp#exec called on incompatible receiver")},fixRegExpWellKnownSymbolLogic=fixRegexpWellKnownSymbolLogic,fails$4=fails$e,anObject$2=anObject$9,isCallable$1=isCallable$d,toIntegerOrInfinity$1=toIntegerOrInfinity$5,toLength=toLength$2,toString$3=toString$6,requireObjectCoercible=requireObjectCoercible$4,advanceStringIndex=advanceStringIndex$1,getMethod=getMethod$2,getSubstitution=getSubstitution$1,regExpExec=regexpExecAbstract,wellKnownSymbol=wellKnownSymbol$5,REPLACE=wellKnownSymbol("replace"),max$2=Math.max,min$2=Math.min,maybeToString=function(j){return j===void 0?j:String(j)},REPLACE_KEEPS_$0=function(){return"a".replace(/./,"$0")==="$0"}(),REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE=function(){return/./[REPLACE]?/./[REPLACE]("a","$0")==="":!1}(),REPLACE_SUPPORTS_NAMED_GROUPS=!fails$4(function(){var j=/./;return j.exec=function(){var _e=[];return _e.groups={a:"7"},_e},"".replace(j,"$")!=="7"});fixRegExpWellKnownSymbolLogic("replace",function(j,_e,et){var tt=REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE?"$":"$0";return[function(nt,ot){var it=requireObjectCoercible(this),st=nt==null?void 0:getMethod(nt,REPLACE);return st?st.call(nt,it,ot):_e.call(toString$3(it),nt,ot)},function(rt,nt){var ot=anObject$2(this),it=toString$3(rt);if(typeof nt=="string"&&nt.indexOf(tt)===-1&&nt.indexOf("$<")===-1){var st=et(_e,ot,it,nt);if(st.done)return st.value}var lt=isCallable$1(nt);lt||(nt=toString$3(nt));var ut=ot.global;if(ut){var ct=ot.unicode;ot.lastIndex=0}for(var dt=[];;){var ft=regExpExec(ot,it);if(ft===null||(dt.push(ft),!ut))break;var pt=toString$3(ft[0]);pt===""&&(ot.lastIndex=advanceStringIndex(it,toLength(ot.lastIndex),ct))}for(var gt="",vt=0,bt=0;bt=vt&&(gt+=it.slice(vt,xt)+At,vt=xt+_t.length)}return gt+it.slice(vt)}]},!REPLACE_SUPPORTS_NAMED_GROUPS||!REPLACE_KEEPS_$0||REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);var engineIsBun=typeof Bun=="function"&&Bun&&typeof Bun.version=="string",$TypeError$1=TypeError,validateArgumentsLength$1=function(j,_e){if(j<_e)throw new $TypeError$1("Not enough arguments");return j},global$4=global$x,apply=functionApply,isCallable=isCallable$t,ENGINE_IS_BUN=engineIsBun,USER_AGENT=engineUserAgent$1,arraySlice=arraySlice$3,validateArgumentsLength=validateArgumentsLength$1,Function$1=global$4.Function,WRAP=/MSIE .\./.test(USER_AGENT)||ENGINE_IS_BUN&&function(){var j=global$4.Bun.version.split(".");return j.length<3||j[0]==="0"&&(j[1]<3||j[1]==="3"&&j[2]==="0")}(),schedulersFix$2=function(j,_e){var et=_e?2:1;return WRAP?function(tt,rt){var nt=validateArgumentsLength(arguments.length,1)>et,ot=isCallable(tt)?tt:Function$1(tt),it=nt?arraySlice(arguments,et):[],st=nt?function(){apply(ot,this,it)}:ot;return _e?j(st,rt):j(st)}:j},$$b=_export$1,global$3=global$x,schedulersFix$1=schedulersFix$2,setInterval$3=schedulersFix$1(global$3.setInterval,!0);$$b({global:!0,bind:!0,forced:global$3.setInterval!==setInterval$3},{setInterval:setInterval$3});var $$a=_export$1,global$2=global$x,schedulersFix=schedulersFix$2,setTimeout$3=schedulersFix(global$2.setTimeout,!0);$$a({global:!0,bind:!0,forced:global$2.setTimeout!==setTimeout$3},{setTimeout:setTimeout$3});var path$8=path$h,setInterval$2=path$8.setInterval,setInterval$1=setInterval$2;const _setInterval=getDefaultExportFromCjs(setInterval$1);var fails$3=fails$v,arrayMethodIsStrict$2=function(j,_e){var et=[][j];return!!et&&fails$3(function(){et.call(null,_e||function(){return 1},1)})},$$9=_export$1,uncurryThis$2=functionUncurryThisClause,$indexOf=arrayIncludes$1.indexOf,arrayMethodIsStrict$1=arrayMethodIsStrict$2,nativeIndexOf=uncurryThis$2([].indexOf),NEGATIVE_ZERO=!!nativeIndexOf&&1/nativeIndexOf([1],1,-0)<0,FORCED$1=NEGATIVE_ZERO||!arrayMethodIsStrict$1("indexOf");$$9({target:"Array",proto:!0,forced:FORCED$1},{indexOf:function j(_e){var et=arguments.length>1?arguments[1]:void 0;return NEGATIVE_ZERO?nativeIndexOf(this,_e,et)||0:$indexOf(this,_e,et)}});var getBuiltInPrototypeMethod$4=getBuiltInPrototypeMethod$7,indexOf$3=getBuiltInPrototypeMethod$4("Array","indexOf"),isPrototypeOf$4=objectIsPrototypeOf,method$4=indexOf$3,ArrayPrototype$4=Array.prototype,indexOf$2=function(j){var _e=j.indexOf;return j===ArrayPrototype$4||isPrototypeOf$4(ArrayPrototype$4,j)&&_e===ArrayPrototype$4.indexOf?method$4:_e},parent$b=indexOf$2,indexOf$1=parent$b,indexOf=indexOf$1;const _indexOfInstanceProperty=getDefaultExportFromCjs(indexOf);var tryToString=tryToString$6,$TypeError=TypeError,deletePropertyOrThrow$1=function(j,_e){if(!delete j[_e])throw new $TypeError("Cannot delete property "+tryToString(_e)+" of "+tryToString(j))},$$8=_export$1,toObject$1=toObject$c,toAbsoluteIndex=toAbsoluteIndex$5,toIntegerOrInfinity=toIntegerOrInfinity$9,lengthOfArrayLike=lengthOfArrayLike$9,setArrayLength=arraySetLength,doesNotExceedSafeInteger=doesNotExceedSafeInteger$3,arraySpeciesCreate=arraySpeciesCreate$3,createProperty$1=createProperty$5,deletePropertyOrThrow=deletePropertyOrThrow$1,arrayMethodHasSpeciesSupport$1=arrayMethodHasSpeciesSupport$4,HAS_SPECIES_SUPPORT$1=arrayMethodHasSpeciesSupport$1("splice"),max$1=Math.max,min$1=Math.min;$$8({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT$1},{splice:function j(_e,et){var tt=toObject$1(this),rt=lengthOfArrayLike(tt),nt=toAbsoluteIndex(_e,rt),ot=arguments.length,it,st,lt,ut,ct,dt;for(ot===0?it=st=0:ot===1?(it=0,st=rt-nt):(it=ot-2,st=min$1(max$1(toIntegerOrInfinity(et),0),rt-nt)),doesNotExceedSafeInteger(rt+it-st),lt=arraySpeciesCreate(tt,st),ut=0;utrt-st+it;ut--)deletePropertyOrThrow(tt,ut-1)}else if(it>st)for(ut=rt-st;ut>nt;ut--)ct=ut+st-1,dt=ut+it-1,ct in tt?tt[dt]=tt[ct]:deletePropertyOrThrow(tt,dt);for(ut=0;ut1?arguments[1]:void 0)},$$6=_export$1,forEach$4=arrayForEach;$$6({target:"Array",proto:!0,forced:[].forEach!==forEach$4},{forEach:forEach$4});var getBuiltInPrototypeMethod$1=getBuiltInPrototypeMethod$7,forEach$3=getBuiltInPrototypeMethod$1("Array","forEach"),parent$7=forEach$3,forEach$2=parent$7,classof$1=classof$c,hasOwn$1=hasOwnProperty_1$1,isPrototypeOf$1=objectIsPrototypeOf,method$1=forEach$2,ArrayPrototype$1=Array.prototype,DOMIterables={DOMTokenList:!0,NodeList:!0},forEach$1=function(j){var _e=j.forEach;return j===ArrayPrototype$1||isPrototypeOf$1(ArrayPrototype$1,j)&&_e===ArrayPrototype$1.forEach||hasOwn$1(DOMIterables,classof$1(j))?method$1:_e},forEach=forEach$1;const _forEachInstanceProperty=getDefaultExportFromCjs(forEach);var $$5=_export$1,toObject=toObject$c,nativeKeys=objectKeys$4,fails$2=fails$v,FAILS_ON_PRIMITIVES=fails$2(function(){nativeKeys(1)});$$5({target:"Object",stat:!0,forced:FAILS_ON_PRIMITIVES},{keys:function j(_e){return nativeKeys(toObject(_e))}});var path$6=path$h,keys$3=path$6.Object.keys,parent$6=keys$3,keys$2=parent$6,keys$1=keys$2;const _Object$keys=getDefaultExportFromCjs(keys$1);var path$5=path$h,getOwnPropertySymbols$3=path$5.Object.getOwnPropertySymbols,parent$5=getOwnPropertySymbols$3,getOwnPropertySymbols$2=parent$5,getOwnPropertySymbols$1=getOwnPropertySymbols$2;const _Object$getOwnPropertySymbols=getDefaultExportFromCjs(getOwnPropertySymbols$1);var $$4=_export$1,$filter=arrayIteration.filter,arrayMethodHasSpeciesSupport=arrayMethodHasSpeciesSupport$4,HAS_SPECIES_SUPPORT=arrayMethodHasSpeciesSupport("filter");$$4({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT},{filter:function j(_e){return $filter(this,_e,arguments.length>1?arguments[1]:void 0)}});var getBuiltInPrototypeMethod=getBuiltInPrototypeMethod$7,filter$3=getBuiltInPrototypeMethod("Array","filter"),isPrototypeOf=objectIsPrototypeOf,method=filter$3,ArrayPrototype=Array.prototype,filter$2=function(j){var _e=j.filter;return j===ArrayPrototype||isPrototypeOf(ArrayPrototype,j)&&_e===ArrayPrototype.filter?method:_e},parent$4=filter$2,filter$1=parent$4,filter=filter$1;const _filterInstanceProperty=getDefaultExportFromCjs(filter);var getOwnPropertyDescriptor$4={exports:{}},$$3=_export$1,fails$1=fails$v,toIndexedObject$1=toIndexedObject$e,nativeGetOwnPropertyDescriptor=objectGetOwnPropertyDescriptor$1.f,DESCRIPTORS$3=descriptors$1,FORCED=!DESCRIPTORS$3||fails$1(function(){nativeGetOwnPropertyDescriptor(1)});$$3({target:"Object",stat:!0,forced:FORCED,sham:!DESCRIPTORS$3},{getOwnPropertyDescriptor:function j(_e,et){return nativeGetOwnPropertyDescriptor(toIndexedObject$1(_e),et)}});var path$4=path$h,Object$2=path$4.Object,getOwnPropertyDescriptor$3=getOwnPropertyDescriptor$4.exports=function j(_e,et){return Object$2.getOwnPropertyDescriptor(_e,et)};Object$2.getOwnPropertyDescriptor.sham&&(getOwnPropertyDescriptor$3.sham=!0);var getOwnPropertyDescriptorExports=getOwnPropertyDescriptor$4.exports,parent$3=getOwnPropertyDescriptorExports,getOwnPropertyDescriptor$2=parent$3,getOwnPropertyDescriptor$1=getOwnPropertyDescriptor$2;const _Object$getOwnPropertyDescriptor=getDefaultExportFromCjs(getOwnPropertyDescriptor$1);var getBuiltIn=getBuiltIn$f,uncurryThis=functionUncurryThis,getOwnPropertyNamesModule=objectGetOwnPropertyNames$1,getOwnPropertySymbolsModule=objectGetOwnPropertySymbols$1,anObject$1=anObject$h,concat=uncurryThis([].concat),ownKeys$A=getBuiltIn("Reflect","ownKeys")||function j(_e){var et=getOwnPropertyNamesModule.f(anObject$1(_e)),tt=getOwnPropertySymbolsModule.f;return tt?concat(et,tt(_e)):et},$$2=_export$1,DESCRIPTORS$2=descriptors$1,ownKeys$z=ownKeys$A,toIndexedObject=toIndexedObject$e,getOwnPropertyDescriptorModule=objectGetOwnPropertyDescriptor$1,createProperty=createProperty$5;$$2({target:"Object",stat:!0,sham:!DESCRIPTORS$2},{getOwnPropertyDescriptors:function j(_e){for(var et=toIndexedObject(_e),tt=getOwnPropertyDescriptorModule.f,rt=ownKeys$z(et),nt={},ot=0,it,st;rt.length>ot;)st=tt(et,it=rt[ot++]),st!==void 0&&createProperty(nt,it,st);return nt}});var path$3=path$h,getOwnPropertyDescriptors$2=path$3.Object.getOwnPropertyDescriptors,parent$2=getOwnPropertyDescriptors$2,getOwnPropertyDescriptors$1=parent$2,getOwnPropertyDescriptors=getOwnPropertyDescriptors$1;const _Object$getOwnPropertyDescriptors=getDefaultExportFromCjs(getOwnPropertyDescriptors);var defineProperties$4={exports:{}},$$1=_export$1,DESCRIPTORS$1=descriptors$1,defineProperties$3=objectDefineProperties$1.f;$$1({target:"Object",stat:!0,forced:Object.defineProperties!==defineProperties$3,sham:!DESCRIPTORS$1},{defineProperties:defineProperties$3});var path$2=path$h,Object$1=path$2.Object,defineProperties$2=defineProperties$4.exports=function j(_e,et){return Object$1.defineProperties(_e,et)};Object$1.defineProperties.sham&&(defineProperties$2.sham=!0);var definePropertiesExports=defineProperties$4.exports,parent$1=definePropertiesExports,defineProperties$1=parent$1,defineProperties=defineProperties$1;const _Object$defineProperties=getDefaultExportFromCjs(defineProperties);var defineProperty$1=defineProperty$5;const _Object$defineProperty=getDefaultExportFromCjs(defineProperty$1);function insertWithoutScoping(j,_e){if(j.inserted[_e.name]===void 0)return j.insert("",_e,j.sheet,!0)}function merge(j,_e,et){var tt=[],rt=getRegisteredStyles(j,tt,et);return tt.length<2?et:rt+_e(tt)}var createEmotion=function j(_e){var et=createCache(_e);et.sheet.speedy=function(it){this.isSpeedy=it},et.compat=!0;var tt=function(){for(var st=arguments.length,lt=new Array(st),ut=0;ut1&&arguments[1]!==void 0?arguments[1]:"white",et="background-color: ".concat(j,"; border-radius: 4px; padding: 2px 4px;");return _e&&(et+=" color: ".concat(_e,";")),[et,""]}function format(j,_e){for(var et,tt,rt=arguments.length,nt=new Array(rt>2?rt-2:0),ot=2;ot1&&arguments[1]!==void 0?arguments[1]:{},et=_e.force,tt=et===void 0?!1:et;return tt?function(){for(var rt=arguments.length,nt=new Array(rt),ot=0;ot_e?(j.apply(void 0,nt),et=it):(clearTimeout(tt),tt=_setTimeout(function(){j.apply(void 0,nt),et=_Date$now()},Math.max(0,_e-it+et)))}}var EventSpy=function j(_e){var et=_e.debounce,tt=_e.name,rt=_e.onEvent,nt=_e.target,ot=reactExports.useRef();ot.current=rt;var it=reactExports.useMemo(function(){return debounceFn(function(lt){var ut=ot.current;ut&&ut(lt)},et)},[et,ot]),st=reactExports.useCallback(function(lt){lt.timeStampLow=_Date$now(),it(lt)},[it]);return reactExports.useLayoutEffect(function(){return nt.addEventListener(tt,st,{passive:!0}),st({target:nt,type:tt}),function(){return nt.removeEventListener(tt,st)}},[tt,st,nt]),!1};EventSpy.defaultProps={debounce:200};var mathSign$1=Math.sign||function j(_e){var et=+_e;return et===0||et!==et?et:et<0?-1:1},$=_export$1,sign$4=mathSign$1;$({target:"Math",stat:!0},{sign:sign$4});var path=path$h,sign$3=path.Math.sign,parent=sign$3,sign$2=parent,sign$1=sign$2;const _Math$sign=getDefaultExportFromCjs(sign$1);function squareStepper(j,_e){var et=_Math$sign(_e-j),tt=Math.sqrt(Math.abs(_e-j)),rt=j+tt*et;return et>0?Math.min(_e,rt):Math.max(_e,rt)}function step(j,_e,et,tt){for(var rt=j,nt=0;nt4&&arguments[4]!==void 0?arguments[4]:_Date$now();(ct==="100%"||typeof ct=="number")&&(cancelAnimationFrame(ot.current),ot.current=requestAnimationFrame(function(){if(rt){var pt=ct==="100%"?rt.scrollHeight-rt.offsetHeight:ct,gt=step(ut,pt,squareStepper,(_Date$now()-ft)/5);Math.abs(pt-gt)<1.5&&(gt=pt),rt[lt]=gt,pt===gt?tt&&tt(!0):it(lt,ut,ct,dt+1,ft)}}))},[ot,tt,rt]),st=reactExports.useCallback(function(){cancelAnimationFrame(ot.current),tt&&tt(!1)},[tt]);return reactExports.useLayoutEffect(function(){return it(et,rt[et],nt,1),rt?(rt.addEventListener("pointerdown",st,{passive:!0}),rt.addEventListener("wheel",st,{passive:!0}),function(){rt.removeEventListener("pointerdown",st),rt.removeEventListener("wheel",st),cancelAnimationFrame(ot.current)}):function(){return cancelAnimationFrame(ot.current)}},[it,ot,st,et,rt,nt]),!1};SpineTo.propTypes={name:PropTypes.string.isRequired,onEnd:PropTypes.func,target:PropTypes.any.isRequired,value:PropTypes.oneOfType([PropTypes.number,PropTypes.oneOf(["100%"])]).isRequired};function useStateRef(j){var _e=reactExports.useState(j),et=_slicedToArray$c(_e,2),tt=et[0],rt=et[1],nt=reactExports.useRef(),ot=reactExports.useCallback(function(it){typeof it=="function"?ot(function(st){return it=it(st),nt.current=it,it}):(nt.current=it,ot(it))},[nt]);return nt.current=tt,[tt,rt,nt]}function ownKeys$y(j,_e){var et=_Object$keys(j);if(_Object$getOwnPropertySymbols){var tt=_Object$getOwnPropertySymbols(j);_e&&(tt=_filterInstanceProperty(tt).call(tt,function(rt){return _Object$getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$y(j){for(var _e=1;_e",{force:nt})},[nt]);it=it===MODE_TOP?MODE_TOP:MODE_BOTTOM;var ct=reactExports.useRef(0),dt=reactExports.useRef(ot),ft=useStateRef(it===MODE_TOP?0:"100%"),pt=_slicedToArray$c(ft,3),gt=pt[0],vt=pt[1],bt=pt[2],_t=useStateRef(null),xt=_slicedToArray$c(_t,3),yt=xt[0],Et=xt[1],St=xt[2],$t=reactExports.useRef(0),At=reactExports.useRef(0),wt=reactExports.useRef(0),Ct=reactExports.useState(!0),It=_slicedToArray$c(Ct,2),Ot=It[0],Nt=It[1],Pt=reactExports.useState(!0),Mt=_slicedToArray$c(Pt,2),Rt=Mt[0],Lt=Mt[1],jt=reactExports.useState(!0),Gt=_slicedToArray$c(jt,2),Vt=Gt[0],Yt=Gt[1],Xt=reactExports.useState(!1),rr=_slicedToArray$c(Xt,2),cr=rr[0],vr=rr[1],Tr=useStateRef(!0),gr=_slicedToArray$c(Tr,3),Er=gr[0],qt=gr[1],ir=gr[2],hr=reactExports.useRef([]),nr=reactExports.useCallback(function(Jt){var ur=St.current;return hr.current.push(Jt),ur&&Jt({scrollTop:ur.scrollTop}),function(){var br=hr.current,Sr=_indexOfInstanceProperty(br).call(br,Jt);~Sr&&_spliceInstanceProperty(br).call(br,Sr,1)}},[hr,St]),mr=reactExports.useCallback(function(){var Jt=bt.current;ut(function(){var ur;return _concatInstanceProperty(ur=["%cSpineTo%c: %conEnd%c is fired."]).call(ur,_toConsumableArray$b(styleConsole("magenta")),_toConsumableArray$b(styleConsole("orange")),[{animateTo:Jt}])}),ct.current=_Date$now(),isEnd(Jt,it)||qt(!1),vt(null)},[bt,ut,ct,it,vt,qt]),Ar=reactExports.useCallback(function(Jt){var ur=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},br=ur.behavior,Sr=St.current;if(typeof Jt!="number"&&Jt!=="100%")return console.warn('react-scroll-to-bottom: Arguments passed to scrollTo() must be either number or "100%".');ut(function(){var yr;return[_concatInstanceProperty(yr=["%cscrollTo%c: Will scroll to %c".concat(typeof Jt=="number"?Jt+"px":Jt.replace(/%/g,"%%"),"%c")]).call(yr,_toConsumableArray$b(styleConsole("lime","")),_toConsumableArray$b(styleConsole("purple"))),{behavior:br,nextAnimateTo:Jt,target:Sr}]}),br==="auto"?(mr(),Sr&&(Sr.scrollTop=Jt==="100%"?Sr.scrollHeight-Sr.offsetHeight:Jt)):(br!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollTo". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.'),vt(Jt)),isEnd(Jt,it)&&(ut(function(){var yr;return[_concatInstanceProperty(yr=["%cscrollTo%c: Scrolling to end, will set sticky to %ctrue%c."]).call(yr,_toConsumableArray$b(styleConsole("lime","")),_toConsumableArray$b(styleConsole("purple"))),[{mode:it,nextAnimateTo:Jt}]]}),qt(!0))},[ut,mr,it,vt,qt,St]),Or=reactExports.useCallback(function(){var Jt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ur=Jt.behavior;ut(function(){var br;return _concatInstanceProperty(br=["%cscrollToBottom%c: Called"]).call(br,_toConsumableArray$b(styleConsole("yellow","")))}),ur!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToBottom". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.'),Ar("100%",{behavior:ur||"smooth"})},[ut,Ar]),wr=reactExports.useCallback(function(){var Jt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ur=Jt.behavior;ut(function(){var br;return _concatInstanceProperty(br=["%cscrollToTop%c: Called"]).call(br,_toConsumableArray$b(styleConsole("yellow","")))}),ur!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToTop". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.'),Ar(0,{behavior:ur||"smooth"})},[ut,Ar]),Nr=reactExports.useCallback(function(){var Jt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ur=Jt.behavior;ut(function(){var Sr;return _concatInstanceProperty(Sr=["%cscrollToEnd%c: Called"]).call(Sr,_toConsumableArray$b(styleConsole("yellow","")))}),ur!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToEnd". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.');var br={behavior:ur||"smooth"};it===MODE_TOP?wr(br):Or(br)},[ut,it,Or,wr]),Wr=reactExports.useCallback(function(){var Jt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ur=Jt.behavior;ut(function(){var Sr;return _concatInstanceProperty(Sr=["%cscrollToStart%c: Called"]).call(Sr,_toConsumableArray$b(styleConsole("yellow","")))}),ur!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToStart". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.');var br={behavior:ur||"smooth"};it===MODE_TOP?Or(br):wr(br)},[ut,it,Or,wr]),Vr=reactExports.useCallback(function(){var Jt=St.current;if(Jt){if(dt.current==="auto"){ut(function(){var xn;return _concatInstanceProperty(xn=["%ctarget changed%c: Initial scroll"]).call(xn,_toConsumableArray$b(styleConsole("blue")))}),Jt.scrollTop=it===MODE_TOP?0:Jt.scrollHeight-Jt.offsetHeight,dt.current=!1;return}var ur=$t.current,br=Jt.offsetHeight,Sr=Jt.scrollHeight,yr=Jt.scrollTop,Cr=it===MODE_TOP?0:Math.max(0,Sr-br-yr),Lr=Math.max(0,ur-yr),Xr=lt({maxValue:Cr,minValue:Lr,offsetHeight:br,scrollHeight:Sr,scrollTop:yr}),qr=Math.max(0,Math.min(Cr,Xr)),Qr;it===MODE_TOP||qr!==Cr?Qr=yr+qr:Qr="100%",ut(function(){var xn,wn,nn;return[_concatInstanceProperty(xn=[_concatInstanceProperty(wn=_concatInstanceProperty(nn="%cscrollToSticky%c: Will animate from %c".concat(ur,"px%c to %c")).call(nn,typeof Qr=="number"?Qr+"px":Qr.replace(/%/g,"%%"),"%c (%c")).call(wn,(Qr==="100%"?Cr:Qr)+ur,"px%c)")]).call(xn,_toConsumableArray$b(styleConsole("orange")),_toConsumableArray$b(styleConsole("purple")),_toConsumableArray$b(styleConsole("purple")),_toConsumableArray$b(styleConsole("purple"))),{animateFrom:ur,maxValue:Cr,minValue:Lr,nextAnimateTo:Qr,nextValue:qr,offsetHeight:br,rawNextValue:Xr,scrollHeight:Sr,scrollTop:yr}]}),Ar(Qr,{behavior:"smooth"})}},[$t,ut,it,lt,Ar,St]),Jr=reactExports.useCallback(function(Jt){var ur,br=Jt.timeStampLow,Sr=bt.current,yr=St.current,Cr=Sr!==null;if(!(br<=ct.current||!yr)){var Lr=computeViewState({mode:it,target:yr}),Xr=Lr.atBottom,qr=Lr.atEnd,Qr=Lr.atStart,xn=Lr.atTop;Nt(Xr),Lt(qr),vr(Qr),Yt(xn);var wn=yr.offsetHeight,nn=yr.scrollHeight,Ln=At.current,zn=wt.current,En=wn!==Ln,sn=nn!==zn;if(En&&(At.current=wn),sn&&(wt.current=nn),!En&&!sn){var Dn=Cr&&isEnd(Sr,it)||qr;ir.current!==Dn&&(ut(function(){var In,Cn,cn,Ur;return[_concatInstanceProperty(In=["%conScroll%c: %csetSticky%c(%c".concat(Dn,"%c)")]).call(In,_toConsumableArray$b(styleConsole("red")),_toConsumableArray$b(styleConsole("red")),_toConsumableArray$b(styleConsole("purple"))),_concatInstanceProperty(Cn=[_concatInstanceProperty(cn=_concatInstanceProperty(Ur="(animating = %c".concat(Cr,"%c && isEnd = %c")).call(Ur,isEnd(Sr,it),"%c) || atEnd = %c")).call(cn,qr,"%c")]).call(Cn,_toConsumableArray$b(styleConsole("purple")),_toConsumableArray$b(styleConsole("purple")),_toConsumableArray$b(styleConsole("purple")),[{animating:Cr,animateTo:Sr,atEnd:qr,mode:it,offsetHeight:yr.offsetHeight,scrollHeight:yr.scrollHeight,sticky:ir.current,nextSticky:Dn}])]}),qt(Dn))}else ir.current&&(ut(function(){var In;return[_concatInstanceProperty(In=["%conScroll%c: Size changed while sticky, calling %cscrollToSticky()%c"]).call(In,_toConsumableArray$b(styleConsole("red")),_toConsumableArray$b(styleConsole("orange")),[{offsetHeightChanged:En,scrollHeightChanged:sn}]),{nextOffsetHeight:wn,prevOffsetHeight:Ln,nextScrollHeight:nn,prevScrollHeight:zn}]}),Vr());var Mn=yr.scrollTop;_forEachInstanceProperty(ur=hr.current).call(ur,function(In){return In({scrollTop:Mn})})}},[bt,ut,ct,it,At,wt,hr,Vr,Nt,Lt,vr,Yt,qt,ir,St]);reactExports.useEffect(function(){if(yt){var Jt=!1,ur=setImmediateInterval(function(){var br=St.current,Sr=bt.current!==null;ir.current?computeViewState({mode:it,target:br}).atEnd?Jt=!1:Jt?_Date$now()-Jt>SCROLL_DECISION_DURATION&&(Sr||($t.current=br.scrollTop,ut(function(){var yr;return _concatInstanceProperty(yr=["%cInterval check%c: Should sticky but not at end, calling %cscrollToSticky()%c to scroll"]).call(yr,_toConsumableArray$b(styleConsole("navy")),_toConsumableArray$b(styleConsole("orange")))}),Vr()),Jt=!1):Jt=_Date$now():br.scrollHeight<=br.offsetHeight&&!ir.current&&(ut(function(){var yr;return[_concatInstanceProperty(yr=["%cInterval check%c: Container is emptied, setting sticky back to %ctrue%c"]).call(yr,_toConsumableArray$b(styleConsole("navy")),_toConsumableArray$b(styleConsole("purple"))),[{offsetHeight:br.offsetHeight,scrollHeight:br.scrollHeight,sticky:ir.current}]]}),qt(!0))},Math.max(MIN_CHECK_INTERVAL,et)||MIN_CHECK_INTERVAL);return function(){return clearInterval(ur)}}},[bt,et,ut,it,Vr,qt,ir,yt,St]);var Yr=reactExports.useMemo(function(){var Jt=emotionPool[st]||(emotionPool[st]=createEmotion({key:"react-scroll-to-bottom--css-"+useCSSKey(),nonce:st}));return function(ur){return Jt.css(ur)+""}},[st]),jr=reactExports.useMemo(function(){return{observeScrollPosition:nr,setTarget:Et,styleToClassName:Yr}},[nr,Et,Yr]),Hr=reactExports.useMemo(function(){return{atBottom:Ot,atEnd:Rt,atStart:cr,atTop:Vt,mode:it}},[Ot,Rt,cr,Vt,it]),hn=reactExports.useMemo(function(){var Jt=gt!==null;return{animating:Jt,animatingToEnd:Jt&&isEnd(gt,it),sticky:Er}},[gt,it,Er]),pr=reactExports.useMemo(function(){return _objectSpread$y(_objectSpread$y({},Hr),hn)},[Hr,hn]),sr=reactExports.useMemo(function(){return{scrollTo:Ar,scrollToBottom:Or,scrollToEnd:Nr,scrollToStart:Wr,scrollToTop:wr}},[Ar,Or,Nr,Wr,wr]);return reactExports.useEffect(function(){if(yt){var Jt=function(){wt.current=yt.scrollHeight};return yt.addEventListener("focus",Jt,{capture:!0,passive:!0}),function(){return yt.removeEventListener("focus",Jt)}}},[yt]),ut(function(){var Jt;return[_concatInstanceProperty(Jt=["%cRender%c: Render"]).call(Jt,_toConsumableArray$b(styleConsole("cyan",""))),{animateTo:gt,animating:gt!==null,sticky:Er,target:yt}]}),React.createElement(context.Provider,{value:jr},React.createElement(context$4.Provider,{value:sr},React.createElement(context$1.Provider,{value:pr},React.createElement(context$3.Provider,{value:Hr},React.createElement(context$2.Provider,{value:hn},tt,yt&&React.createElement(EventSpy,{debounce:rt,name:"scroll",onEvent:Jr,target:yt}),yt&>!==null&&React.createElement(SpineTo,{name:"scrollTop",onEnd:mr,target:yt,value:gt}))))))};Composer.defaultProps={checkInterval:100,children:void 0,debounce:17,debug:void 0,initialScrollBehavior:"smooth",mode:void 0,nonce:void 0,scroller:DEFAULT_SCROLLER};Composer.propTypes={checkInterval:PropTypes.number,children:PropTypes.any,debounce:PropTypes.number,debug:PropTypes.bool,initialScrollBehavior:PropTypes.oneOf(["auto","smooth"]),mode:PropTypes.oneOf(["bottom","top"]),nonce:PropTypes.string,scroller:PropTypes.func};var ROOT_STYLE$1={height:"100%",overflowY:"auto",width:"100%"},Panel=function j(_e){var et=_e.children,tt=_e.className,rt=reactExports.useContext(context),nt=rt.setTarget,ot=useStyleToClassName()(ROOT_STYLE$1);return React.createElement("div",{className:classNames(ot,(tt||"")+""),ref:nt},et)};Panel.defaultProps={children:void 0,className:void 0};Panel.propTypes={children:PropTypes.any,className:PropTypes.string};var ROOT_STYLE={position:"relative"},BasicScrollToBottomCore=function j(_e){var et=_e.children,tt=_e.className,rt=_e.followButtonClassName,nt=_e.scrollViewClassName,ot=useStyleToClassName()(ROOT_STYLE);return React.createElement("div",{className:classNames(ot,(tt||"")+"")},React.createElement(Panel,{className:(nt||"")+""},et),React.createElement(AutoHideFollowButton,{className:(rt||"")+""}))};BasicScrollToBottomCore.defaultProps={children:void 0,className:void 0,followButtonClassName:void 0,scrollViewClassName:void 0};BasicScrollToBottomCore.propTypes={children:PropTypes.any,className:PropTypes.string,followButtonClassName:PropTypes.string,scrollViewClassName:PropTypes.string};var BasicScrollToBottom=function j(_e){var et=_e.checkInterval,tt=_e.children,rt=_e.className,nt=_e.debounce,ot=_e.debug,it=_e.followButtonClassName,st=_e.initialScrollBehavior,lt=_e.mode,ut=_e.nonce,ct=_e.scroller,dt=_e.scrollViewClassName;return React.createElement(Composer,{checkInterval:et,debounce:nt,debug:ot,initialScrollBehavior:st,mode:lt,nonce:ut,scroller:ct},React.createElement(BasicScrollToBottomCore,{className:rt,followButtonClassName:it,scrollViewClassName:dt},tt))};BasicScrollToBottom.defaultProps={checkInterval:void 0,children:void 0,className:void 0,debounce:void 0,debug:void 0,followButtonClassName:void 0,initialScrollBehavior:"smooth",mode:void 0,nonce:void 0,scroller:void 0,scrollViewClassName:void 0};BasicScrollToBottom.propTypes={checkInterval:PropTypes.number,children:PropTypes.any,className:PropTypes.string,debounce:PropTypes.number,debug:PropTypes.bool,followButtonClassName:PropTypes.string,initialScrollBehavior:PropTypes.oneOf(["auto","smooth"]),mode:PropTypes.oneOf(["bottom","top"]),nonce:PropTypes.string,scroller:PropTypes.func,scrollViewClassName:PropTypes.string};addVersionToMetaTag();const capitalizeFirstLetter=j=>j.charAt(0).toUpperCase()+j.slice(1),getSenderNameByLLMMessage=j=>j.role&&j.name?`${j.role}: ${j.name}`:j.role?j.role:j.name?j.name:"user",defaultCalcContentForCopy=j=>JSON.stringify(j.content),messageRoleToCategory=j=>{switch(j){case"system":return ChatMessageCategory.System;case"user":return ChatMessageCategory.User;default:return ChatMessageCategory.Chatbot}};function MessageSenderRenderer(j){const{data:_e,position:et,className:tt}=j,rt=useStyles$2(),nt=_e.timestamp?dayjs(_e.timestamp).format("h:mm A"):null,[ot,it]=_e.from.split(": ");return jsxRuntimeExports.jsxs("div",{className:mergeClasses(rt.container,tt),"data-position":et,children:[jsxRuntimeExports.jsxs("span",{className:rt.name,"data-position":et,"data-category":_e.category,children:[ot,it&&jsxRuntimeExports.jsxs("span",{children:[": ",jsxRuntimeExports.jsx("strong",{children:it})]})]}),nt&&jsxRuntimeExports.jsx("span",{className:rt.time,children:nt})]})}MessageSenderRenderer.displayName="MessageSenderRenderer";const useStyles$2=makeStyles({container:{display:"flex",flexWrap:"nowrap",alignItems:"center",justifyContent:"flex-start",fontSize:"0.75rem",'&&[data-position="right"]':{justifyContent:"flex-end"},color:tokens.colorNeutralForeground3},name:{...shorthands.margin("0px","6px","0px","0px"),fontSize:tokens.fontSizeBase200,lineHeight:tokens.lineHeightBase200,[`&&[data-category="${ChatMessageCategory.System}"]`]:{...shorthands.margin("0px","6px","0px","12px")}},time:{}}),OpenAIIcon=()=>jsxRuntimeExports.jsxs("svg",{fill:"currentColor",width:"20px",height:"20px",viewBox:"0 0 2048 2048",role:"img",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("title",{children:"OpenAI icon"}),jsxRuntimeExports.jsx("path",{d:"M832 676l575 288v760l-575 288-575-288V964l575-288zm0 144l-368 184 368 183 368-183-368-184zm-447 825l383 191v-538l-383-191v538zm894 0v-538l-383 191v538l383-191zm577-733q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9zM704 496q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9zm1206-48q0 23-15 38t-39 16q-27 0-57 11t-58 28-54 37-45 40q-19 19-39 44t-38 54-28 59-11 57q0 23-15 38t-39 16q-23 0-38-15t-16-39q0-27-11-57t-28-58-37-54-40-45q-19-19-44-39t-54-38-59-28-57-11q-23 0-38-15t-16-39q0-23 15-38t39-16q27 0 57-11t58-28 54-37 45-40q19-19 39-44t38-54 28-59 11-57q0-23 15-38t39-16q23 0 38 15t16 39q0 27 11 57t28 58 37 54 40 45q19 19 44 39t54 38 59 28 57 11q23 0 38 15t16 39zm-438 212q38-65 92-119t120-93q-65-38-119-92t-93-120q-38 65-92 119t-120 93q65 38 119 92t93 120z"})]});var RichContentType=(j=>(j.TEXT="text",j.IMAGE_URL="image_url",j.IMAGE_FILE="image_file",j))(RichContentType||{});const ErrorMessage=({error:j})=>{const _e=useLocStrings();return jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[jsxRuntimeExports.jsx(ErrorCircle16Filled,{style:{color:tokens.colorStatusDangerForeground1}}),jsxRuntimeExports.jsxs("div",{children:[_e.Error,": ",j.message]})]})},RichTextChatboxMessageContent=j=>{const{content:_e,className:et}=j,tt=_e.map(lt=>lt.function_call).filter(Boolean),rt=reactExports.useMemo(()=>_e.map(lt=>weaveRichNodesIntoMarkup(lt.content??"")).join(` + +`),[_e]),nt=useStyles$1(),ot=mergeClasses(nt.content,et),it=rt.length===0&&tt.length>0,st=useLocStrings();return jsxRuntimeExports.jsxs("div",{className:ot,children:[!it&&(typeof rt=="string"?jsxRuntimeExports.jsx(MarkdownViewer,{content:rt}):jsxRuntimeExports.jsx(ErrorMessage,{error:rt})),tt.length>0&&jsxRuntimeExports.jsx("h3",{children:st.Function_Calls}),tt.map(lt=>jsxRuntimeExports.jsx(JsonNodeCard,{title:(lt==null?void 0:lt.name)??"Function call",src:lt==null?void 0:lt.arguments},lt==null?void 0:lt.name))]})},useStyles$1=makeStyles({content:{...shorthands.overflow("auto"),wordBreak:"break-all",whiteSpace:"break-spaces"}});function weaveRichNodesIntoMarkup(j){if(typeof j=="string")return j;return Array.isArray(j)?j.map(_e).filter(Boolean).join(` + +`):new Error("content type is not supported");function _e(et){var tt,rt,nt,ot;switch(et.type){case RichContentType.TEXT:return et.text??"";case RichContentType.IMAGE_URL:return`![${(tt=et.image_url)==null?void 0:tt.url}](${(rt=et.image_url)==null?void 0:rt.url})`;case RichContentType.IMAGE_FILE:return`![${(nt=et.image_file)==null?void 0:nt.path}](${(ot=et.image_file)==null?void 0:ot.path})`;default:return""}}}const useAvatarStyles=makeStyles({avatar:{...shorthands.margin("16px","4px","4px","4px")}}),useMessagesContainerStyles=makeStyles({messagesContainer:{display:"flex",height:"100%"},minimap:{boxSizing:"border-box",...shorthands.flex("0 0 auto"),height:"100%",width:"64px"},minimapInner:{boxSizing:"border-box",...shorthands.border("1px","solid","rgba(0, 0, 128, 0.15)")}}),LLMNodeMessagesList=j=>{const _e=useSelectedSpan(),et=useMessagesContainerStyles(),tt=reactExports.useRef(null),rt=`[data-chatbox-locator="${ChatboxLocator.MessageList}"]`,nt=`[data-chatbox-locator="${ChatboxLocator.MessageContent}"]`,ot=j.messages.map((it,st)=>({id:st,type:ChatMessageType.Message,history:[{content:[{content:it.content??"",name:it.name,role:it.role,timestamp:it.timestamp,function_call:it.function_call}],category:messageRoleToCategory(it.role),from:capitalizeFirstLetter(getSenderNameByLLMMessage(it)),timestamp:it.role==="assistant"?_e==null?void 0:_e.start_time:_e==null?void 0:_e.end_time}]}));return jsxRuntimeExports.jsxs("div",{className:et.messagesContainer,children:[jsxRuntimeExports.jsx("div",{ref:tt,children:jsxRuntimeExports.jsx(ChatboxMessageList,{locStrings:defaultLocStrings$1,messages:ot,calcContentForCopy:defaultCalcContentForCopy})}),jsxRuntimeExports.jsx("div",{className:et.minimap,children:jsxRuntimeExports.jsx(Minimap,{className:et.minimapInner,sourceRootRef:tt,sourceQuerySelector:rt,sourceElementQuerySelector:nt})})]})},MessageAvatarRenderer=({data:j,className:_e})=>{const et=useAvatarStyles();return j.category===ChatMessageCategory.System?jsxRuntimeExports.jsx("div",{className:mergeClasses(et.avatar,_e),children:jsxRuntimeExports.jsx(Alert20Regular,{})}):j.category===ChatMessageCategory.User?jsxRuntimeExports.jsx("div",{className:mergeClasses(et.avatar,_e),children:jsxRuntimeExports.jsx(Person20Regular,{})}):j.category===ChatMessageCategory.Chatbot?jsxRuntimeExports.jsx("div",{className:mergeClasses(et.avatar,_e),children:jsxRuntimeExports.jsx(OpenAIIcon,{})}):null};function ChatboxMessageList(j){const{locStrings:_e,messages:et,calcContentForCopy:tt}=j,rt=useStyles();return jsxRuntimeExports.jsx(BasicScrollToBottom,{className:rt.main,initialScrollBehavior:"auto",children:jsxRuntimeExports.jsx(MessageListRenderer,{calcContentForCopy:tt,locStrings:_e,messages:et,MessageAvatarRenderer,MessageContentRenderer:RichTextChatboxMessageContent,MessageSenderRenderer})})}ChatboxMessageList.displayName="ChatboxMessageList";const useStyles=makeStyles({main:{...shorthands.padding("0","16px"),...shorthands.overflow("auto"),height:"100%"}}),useClasses$c=makeStyles({root:{height:"100%",display:"flex",flexDirection:"column",...shorthands.overflow("auto")},title:{fontSize:"14px",lineHeight:"20px",fontStyle:"italic",fontWeight:400,color:tokens.colorNeutralForeground1},card:{flexGrow:1}}),LLMNodePromptTemplateTab=({promptTemplate:j,templateVariables:_e})=>{const et=useClasses$c(),tt=useMessageCardClasses(),nt=useIsDark()?"vs-dark":"light",ot=useLocStrings();return jsxRuntimeExports.jsxs("div",{className:et.root,children:[jsxRuntimeExports.jsxs(Card,{className:mergeClasses(tt.card,et.card),children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{className:et.title,children:ot.prompt_template})}),jsxRuntimeExports.jsx(JinjaSyntaxHighlighter,{value:j,theme:nt})]}),jsxRuntimeExports.jsxs(Card,{className:tt.card,children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{className:et.title,children:ot.template_variables})}),jsxRuntimeExports.jsx(JsonView,{src:_e})]})]})},LLMNodeRaw=({inputs:j,outputs:_e})=>{const et=useLocStrings();return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[j&&jsxRuntimeExports.jsx(JsonNodeCard,{title:et.Input,src:j}),_e&&jsxRuntimeExports.jsx(JsonNodeCard,{title:et.Output,src:_e})]})},useLLMNodeClasses=makeStyles({root:{height:"100%",display:"flex"},content:{...shorthands.overflow("auto")}}),LLMNodeInfo=()=>{var vt,bt,_t,xt,yt;const j=useSelectedSpan(),_e=(vt=useParentSpanOfSelectedSpan())==null?void 0:vt.attributes,et=useNodeDetailClasses(),tt=JSON.parse(((bt=j==null?void 0:j.attributes)==null?void 0:bt.inputs)??"{}"),rt=(_t=j==null?void 0:j.attributes)==null?void 0:_t["llm.generated_message"],nt=_e==null?void 0:_e["prompt.template"],ot=JSON.parse((_e==null?void 0:_e["prompt.variables"])??"{}"),it=Object.keys(ot??{}),st={},{inputMessages:lt,outputMessages:ut}=useMessagesOfSelectedSpan();Object.keys(tt).forEach(Et=>{Et!=="messages"&&(it.includes(Et)||(st[Et]=tt[Et]))});const ct=[...lt,...ut],[dt,ft]=reactExports.useState("messages"),pt=useLLMNodeClasses(),gt=useLocStrings();return jsxRuntimeExports.jsxs(Card,{className:pt.root,children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:et.headerWrapper,children:[jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",children:gt.llm}),jsxRuntimeExports.jsx("div",{className:et.headerTitle,children:tt.model})]}),jsxRuntimeExports.jsxs(TabList,{selectedValue:dt,onTabSelect:(Et,{value:St})=>ft(St),children:[jsxRuntimeExports.jsx(Tab$1,{value:"messages",children:gt.Conversations}),jsxRuntimeExports.jsx(Tab$1,{value:"raw",children:gt["Input/Output_(JSON)"]}),nt&&jsxRuntimeExports.jsx(Tab$1,{value:"promptTemplate",children:gt.Prompt_Template}),jsxRuntimeExports.jsx(Tab$1,{value:"llmParameters",children:gt.LLM_Parameters})]})]})}),jsxRuntimeExports.jsxs("div",{className:pt.content,children:[dt==="messages"&&jsxRuntimeExports.jsx(LLMNodeMessagesList,{messages:ct}),dt==="promptTemplate"&&nt&&jsxRuntimeExports.jsx(LLMNodePromptTemplateTab,{promptTemplate:nt,templateVariables:ot}),dt==="llmParameters"&&jsxRuntimeExports.jsx(LLMNodeInvocationParametersTab,{invocationParameters:st}),dt==="raw"&&jsxRuntimeExports.jsx(LLMNodeRaw,{inputs:(xt=j==null?void 0:j.attributes)==null?void 0:xt.inputs,outputs:((yt=j==null?void 0:j.attributes)==null?void 0:yt.output)??rt})]})]})},getMimeTypeFromContentType=j=>{var et;return(et=/^\s*([^;\s]*)(?:;|\s|$)/.exec(j))==null?void 0:et[1].toLowerCase()},NodeHttpCard=({type:j})=>{const _e=useLocStrings(),et=useSelectedSpan(),tt=React.useMemo(()=>parseHttpSpanAttributes(et),[et]);if(!tt)return null;const{urlFull:rt}=tt,nt=parseInt(tt.status_code);let ot;nt>=200&&nt<300?ot="success":nt>=400?ot="danger":ot="warning";const it=jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[tt.status_code!==void 0?jsxRuntimeExports.jsxs(Badge$2,{appearance:"outline",color:ot,children:[_e.Status," ",jsxRuntimeExports.jsx("span",{style:{marginLeft:4},children:tt.status_code})]}):null,jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:tt.method}),jsxRuntimeExports.jsx("span",{children:rt})]}),st=j==="response"?tt.response:tt.request;return jsxRuntimeExports.jsx(Card,{style:{marginBottom:12},children:jsxRuntimeExports.jsx(NodeHttpItem,{type:j,header:it,data:st})})},NodeHttpItem=({type:j,header:_e,data:et})=>{const tt=useLocStrings(),{headers:rt,body:nt}=et,ot=JSON.stringify(et),it=j==="response",st=it?"Response":"Request";let lt;if(nt)if(it){const ut=getMimeTypeFromContentType(rt["content-type"]);lt=jsxRuntimeExports.jsx(HttpResponseContent,{mimeType:ut,body:nt})}else lt=jsxRuntimeExports.jsx(JsonNodeCard,{wrapperStyle:{background:tokens.colorNeutralBackground2},src:nt,title:tt[`${st} Body`]});return jsxRuntimeExports.jsx(BasicViewer,{showEmpty:!1,previewRender:()=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(JsonNodeCard,{wrapperStyle:{background:tokens.colorNeutralBackground2},src:rt,title:tt[`${st} Headers`]}),lt]}),rawRender:()=>jsxRuntimeExports.jsx(Card,{style:{wordBreak:"break-all"},children:ot}),headerRender:_e?()=>_e:void 0})},HttpResponseContent=({mimeType:j,body:_e=""})=>{const et=useLocStrings();return j!=null&&j.includes("json")?jsxRuntimeExports.jsx(JsonNodeCard,{wrapperStyle:{background:tokens.colorNeutralBackground2},src:_e,title:et["Response Body"]}):j==="text/event-stream"?jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12,background:tokens.colorNeutralBackground2},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:et["Response Body"]})})}),_e.split("data:").filter(tt=>!!tt).map((tt,rt)=>jsxRuntimeExports.jsxs("div",{children:["data: ",tt]},`${tt}-${rt}`))]}):jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12,background:tokens.colorNeutralBackground2},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:et["Response Body"]})})}),jsxRuntimeExports.jsx("div",{style:{wordBreak:"break-all"},children:_e})]})},NodeToken=({span:j,showDetail:_e=!0})=>{const et=useParseTraceOutput(j);if(!et||typeof et=="string")return null;const tt=et.usage;return!tt||typeof tt=="string"||!tt.total_tokens?null:jsxRuntimeExports.jsx(TokenText,{token:tt.total_tokens,info:_e?jsxRuntimeExports.jsxs("div",{style:{display:"flex",flexDirection:"column",rowGap:6},children:[jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Total tokens",value:tt.total_tokens??0}}),jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Prompt tokens",value:tt.prompt_tokens??0}}),jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Completion tokens",value:tt.completion_tokens??0}})]}):void 0})},SummaryToken=({trace:j,showDetail:_e=!0})=>{const{total_tokens:et,prompt_tokens:tt,completion_tokens:rt}=j;return jsxRuntimeExports.jsx(TokenText,{token:et,info:_e?jsxRuntimeExports.jsxs("div",{style:{display:"flex",flexDirection:"column",rowGap:6},children:[jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Total tokens",value:et}}),tt&&jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Prompt tokens",value:tt}}),rt&&jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Completion tokens",value:rt}})]}):void 0})},RetrievalNodeInfo=()=>{const j=useSelectedSpan(),_e=useLocStrings();if(!(j!=null&&j.attributes))return null;const et=j==null?void 0:j.attributes;let tt=[];if(typeof et["retrieval.documents"]=="string")try{tt=JSON.parse(et["retrieval.documents"])}catch{tt=[]}return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:_e.Query})})}),et["retrieval.query"]??""]}),jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:_e.Documents})})}),tt.map(rt=>jsxRuntimeExports.jsx(Document$1,{document:rt},rt["document.id"]))]})]})},Document$1=({document:j})=>{const _e=useRetrievalNodeDetailClasses(),[et,tt]=reactExports.useState(["content"]),rt=reactExports.useCallback((ot,it)=>{tt(it.openItems)},[]),nt=useLocStrings();return jsxRuntimeExports.jsxs(Card,{style:{background:tokens.colorNeutralBackground2},children:[jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",columnGap:6},children:[jsxRuntimeExports.jsx(Document16Regular,{}),jsxRuntimeExports.jsx("div",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:jsxRuntimeExports.jsx(Tooltip$1,{content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:"id"})," ",j["document.id"]]}),relationship:"description",children:jsxRuntimeExports.jsxs("span",{children:[nt.document," ",j["document.id"]]})})}),jsxRuntimeExports.jsx(Tooltip$1,{content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:nt.score})," ",j["document.score"]]}),relationship:"description",children:jsxRuntimeExports.jsxs(Badge$2,{appearance:"outline",children:["score ",floatFormatter(j["document.score"])]})})]}),jsxRuntimeExports.jsx(Divider$2,{}),jsxRuntimeExports.jsx(Card,{style:{background:tokens.colorNeutralBackground3},children:jsxRuntimeExports.jsx(Accordion,{openItems:et,onToggle:rt,collapsible:!0,multiple:!0,children:jsxRuntimeExports.jsxs(AccordionItem,{value:"content",children:[jsxRuntimeExports.jsx(AccordionHeader,{className:_e.accordionHeader,children:nt.content}),jsxRuntimeExports.jsx(AccordionPanel,{children:jsxRuntimeExports.jsx(MarkdownViewer,{content:j["document.content"]})})]})})}),jsxRuntimeExports.jsx(JsonNodeCard,{title:"metadata",src:j["document.metadata"],wrapperStyle:{background:tokens.colorNeutralBackground3}})]})},NodeDetail=({emptyTip:j=jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:"No Data"})})=>{var pt,gt,vt;const _e=useNodeDetailClasses(),et=useSelectedSpan(),tt=useEvaluationSpansOfSelectedSpan(),rt=useRootSpanIdOfSelectedSpans(),nt=useLocStrings(),ot=getToolTypeFromSpan(et),it=reactExports.useMemo(()=>{var bt;return rt===((bt=et==null?void 0:et.context)==null?void 0:bt.span_id)},[rt,et]),st=reactExports.useMemo(()=>(ot==null?void 0:ot.toLowerCase())==="http",[ot]),lt=st?"response":"info",[ut,ct]=reactExports.useState(lt),dt=((pt=et==null?void 0:et.events)==null?void 0:pt.length)??0,ft=tt.length??0;return et?jsxRuntimeExports.jsxs("div",{className:_e.wrapper,children:[((vt=(gt=et==null?void 0:et.status)==null?void 0:gt.status_code)==null?void 0:vt.toLowerCase())==="error"&&jsxRuntimeExports.jsx(MessageBar,{intent:"error",onClick:()=>{ct("error")},style:{cursor:"pointer"},children:jsxRuntimeExports.jsxs(MessageBarBody,{children:[jsxRuntimeExports.jsxs(MessageBarTitle,{children:[" ",nt.Error]}),et.status.message]})}),jsxRuntimeExports.jsxs("div",{className:_e.headerWrapper,children:[ot&&jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",children:`${ot}`}),jsxRuntimeExports.jsx("div",{className:_e.headerTitle,children:jsxRuntimeExports.jsx(Tooltip$1,{content:(et==null?void 0:et.name)||"",relationship:"description",children:jsxRuntimeExports.jsx("span",{children:et.name})})}),jsxRuntimeExports.jsx("div",{className:_e.headerItem,children:jsxRuntimeExports.jsx(NodeToken,{span:et,showDetail:!0})}),jsxRuntimeExports.jsx("div",{className:_e.headerItem,children:jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:et.start_time,endTimeISOString:et.end_time})})]}),jsxRuntimeExports.jsxs(TabList,{selectedValue:ut,onTabSelect:(bt,_t)=>{ct(_t.value)},children:[!st&&jsxRuntimeExports.jsx(Tab$1,{value:"info",children:nt.Detail}),st&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Tab$1,{value:"response",children:nt.Response}),jsxRuntimeExports.jsx(Tab$1,{value:"request",children:nt.Request})]}),jsxRuntimeExports.jsx(Tab$1,{value:"attr",children:nt.Raw_JSON}),it&&jsxRuntimeExports.jsxs(Tab$1,{value:"evaluations",children:[nt.Metrics," ",jsxRuntimeExports.jsx(CounterBadge,{appearance:"filled",color:"informative",count:ft,size:"small",showZero:!0})]}),jsxRuntimeExports.jsxs(Tab$1,{value:"error",children:[nt.Events," ",jsxRuntimeExports.jsx(CounterBadge,{appearance:"filled",color:dt>0?"danger":"informative",count:dt,size:"small",showZero:!0})]})]}),jsxRuntimeExports.jsx(Divider$2,{className:_e.tabDivider}),jsxRuntimeExports.jsxs("div",{className:_e.content,children:[!st&&ut==="info"&&jsxRuntimeExports.jsx(NodeInfoCard,{}),st&&ut==="response"&&jsxRuntimeExports.jsx(NodeHttpCard,{type:"response"}),st&&ut==="request"&&jsxRuntimeExports.jsx(NodeHttpCard,{type:"request"}),ut==="attr"&&jsxRuntimeExports.jsx(NodeAttrCard,{}),it&&ut==="evaluations"&&jsxRuntimeExports.jsx(EvaluationsTab,{}),ut==="error"&&jsxRuntimeExports.jsx(ErrorsTab,{})]})]}):j},NodeInfoCard=()=>{var et,tt,rt;const j=useSelectedSpan(),_e=(et=j==null?void 0:j.attributes)==null?void 0:et.function;switch((rt=(tt=j==null?void 0:j.attributes)==null?void 0:tt.span_type)==null?void 0:rt.toLowerCase()){case"llm":return _e!=null&&_e.startsWith("openai.resources.chat")||_e!=null&&_e.startsWith("openai.api_resources.chat")?jsxRuntimeExports.jsx(LLMNodeInfo,{}):jsxRuntimeExports.jsx(DefaultNodeInfo,{});case"retrieval":return jsxRuntimeExports.jsx(RetrievalNodeInfo,{});case"embedding":return jsxRuntimeExports.jsx(EmbeddingNodeInfo,{});default:return jsxRuntimeExports.jsx(DefaultNodeInfo,{})}},NodeAttrCard=()=>{const j=useSelectedSpan(),_e=useLocStrings();return j!=null&&j.attributes?jsxRuntimeExports.jsx(JsonNodeCard,{title:_e.Raw_JSON,src:j}):null};function isNil(j){return j==null}var isNil_1=isNil;const isNil$1=getDefaultExportFromCjs(isNil_1);var baseGetTag$1=_baseGetTag,isObjectLike$1=isObjectLike_1,numberTag="[object Number]";function isNumber$2(j){return typeof j=="number"||isObjectLike$1(j)&&baseGetTag$1(j)==numberTag}var isNumber_1=isNumber$2;const isNumber$3=getDefaultExportFromCjs(isNumber_1);var isNumber$1=isNumber_1;function isNaN$1(j){return isNumber$1(j)&&j!=+j}var _isNaN=isNaN$1;const isNan=getDefaultExportFromCjs(_isNaN);var mathSign=function j(_e){return _e===0?0:_e>0?1:-1},isPercent=function j(_e){return isString$1(_e)&&_e.indexOf("%")===_e.length-1},isNumber=function j(_e){return isNumber$3(_e)&&!isNan(_e)},isNumOrStr=function j(_e){return isNumber(_e)||isString$1(_e)},idCounter=0,uniqueId=function j(_e){var et=++idCounter;return"".concat(_e||"").concat(et)},getPercentValue=function j(_e,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,rt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!isNumber(_e)&&!isString$1(_e))return tt;var nt;if(isPercent(_e)){var ot=_e.indexOf("%");nt=et*parseFloat(_e.slice(0,ot))/100}else nt=+_e;return isNan(nt)&&(nt=tt),rt&&nt>et&&(nt=et),nt},getAnyElementOfObject=function j(_e){if(!_e)return null;var et=Object.keys(_e);return et&&et.length?_e[et[0]]:null},hasDuplicate=function j(_e){if(!Array.isArray(_e))return!1;for(var et=_e.length,tt={},rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$f(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var REACT_BROWSER_EVENT_MAP={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart"},getDisplayName=function j(_e){return typeof _e=="string"?_e:_e?_e.displayName||_e.name||"Component":""},lastChildren=null,lastResult=null,toArray=function j(_e){if(_e===lastChildren&&Array.isArray(lastResult))return lastResult;var et=[];return reactExports.Children.forEach(_e,function(tt){isNil$1(tt)||(reactIsExports.isFragment(tt)?et=et.concat(j(tt.props.children)):et.push(tt))}),lastResult=et,lastChildren=_e,et};function findAllByType(j,_e){var et=[],tt=[];return Array.isArray(_e)?tt=_e.map(function(rt){return getDisplayName(rt)}):tt=[getDisplayName(_e)],toArray(j).forEach(function(rt){var nt=get$5(rt,"type.displayName")||get$5(rt,"type.name");tt.indexOf(nt)!==-1&&et.push(rt)}),et}function findChildByType(j,_e){var et=findAllByType(j,_e);return et&&et[0]}var validateWidthHeight=function j(_e){if(!_e||!_e.props)return!1;var et=_e.props,tt=et.width,rt=et.height;return!(!isNumber(tt)||tt<=0||!isNumber(rt)||rt<=0)},SVG_TAGS=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],isSvgElement=function j(_e){return _e&&_e.type&&isString$1(_e.type)&&SVG_TAGS.indexOf(_e.type)>=0},isValidSpreadableProp=function j(_e,et,tt,rt){var nt,ot=(nt=FilteredElementKeyMap==null?void 0:FilteredElementKeyMap[rt])!==null&&nt!==void 0?nt:[];return!isFunction$6(_e)&&(rt&&ot.includes(et)||SVGElementPropKeys.includes(et))||tt&&EventKeys.includes(et)},filterProps=function j(_e,et,tt){if(!_e||typeof _e=="function"||typeof _e=="boolean")return null;var rt=_e;if(reactExports.isValidElement(_e)&&(rt=_e.props),!isObject$x(rt))return null;var nt={};return Object.keys(rt).forEach(function(ot){var it;isValidSpreadableProp((it=rt)===null||it===void 0?void 0:it[ot],ot,et,tt)&&(nt[ot]=rt[ot])}),nt},isChildrenEqual=function j(_e,et){if(_e===et)return!0;var tt=reactExports.Children.count(_e);if(tt!==reactExports.Children.count(et))return!1;if(tt===0)return!0;if(tt===1)return isSingleChildEqual(Array.isArray(_e)?_e[0]:_e,Array.isArray(et)?et[0]:et);for(var rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$e(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function Surface(j){var _e=j.children,et=j.width,tt=j.height,rt=j.viewBox,nt=j.className,ot=j.style,it=j.title,st=j.desc,lt=_objectWithoutProperties$e(j,_excluded$e),ut=rt||{width:et,height:tt,x:0,y:0},ct=clsx("recharts-surface",nt);return React.createElement("svg",_extends$n({},filterProps(lt,!0,"svg"),{className:ct,width:et,height:tt,style:ot,viewBox:"".concat(ut.x," ").concat(ut.y," ").concat(ut.width," ").concat(ut.height)}),React.createElement("title",null,it),React.createElement("desc",null,st),_e)}var _excluded$d=["children","className"];function _extends$m(){return _extends$m=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$d(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var Layer=React.forwardRef(function(j,_e){var et=j.children,tt=j.className,rt=_objectWithoutProperties$d(j,_excluded$d),nt=clsx("recharts-layer",tt);return React.createElement("g",_extends$m({className:nt},filterProps(rt,!0),{ref:_e}),et)}),warn=function j(_e,et){for(var tt=arguments.length,rt=new Array(tt>2?tt-2:0),nt=2;ntrt?0:rt+_e),et=et>rt?rt:et,et<0&&(et+=rt),rt=_e>et?0:et-_e>>>0,_e>>>=0;for(var nt=Array(rt);++tt=tt?j:baseSlice(j,_e,et)}var _castSlice=castSlice$1;function asciiToArray$1(j){return j.split("")}var _asciiToArray=asciiToArray$1,rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsVarRange="\\ufe0e\\ufe0f",rsAstral="["+rsAstralRange+"]",rsCombo="["+rsComboRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ="\\u200d",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");function unicodeToArray$1(j){return j.match(reUnicode)||[]}var _unicodeToArray=unicodeToArray$1,asciiToArray=_asciiToArray,hasUnicode$1=_hasUnicode,unicodeToArray=_unicodeToArray;function stringToArray$1(j){return hasUnicode$1(j)?unicodeToArray(j):asciiToArray(j)}var _stringToArray=stringToArray$1,castSlice=_castSlice,hasUnicode=_hasUnicode,stringToArray=_stringToArray,toString$1=toString_1;function createCaseFirst$1(j){return function(_e){_e=toString$1(_e);var et=hasUnicode(_e)?stringToArray(_e):void 0,tt=et?et[0]:_e.charAt(0),rt=et?castSlice(et,1).join(""):_e.slice(1);return tt[j]()+rt}}var _createCaseFirst=createCaseFirst$1,createCaseFirst=_createCaseFirst,upperFirst=createCaseFirst("toUpperCase"),upperFirst_1=upperFirst;const upperFirst$1=getDefaultExportFromCjs(upperFirst_1);function constant$1(j){return function(){return j}}const cos=Math.cos,sin=Math.sin,sqrt$1=Math.sqrt,pi$1=Math.PI,tau$1=2*pi$1,pi=Math.PI,tau=2*pi,epsilon=1e-6,tauEpsilon=tau-epsilon;function append(j){this._+=j[0];for(let _e=1,et=j.length;_e=0))throw new Error(`invalid digits: ${j}`);if(_e>15)return append;const et=10**_e;return function(tt){this._+=tt[0];for(let rt=1,nt=tt.length;rtepsilon)if(!(Math.abs(ct*st-lt*ut)>epsilon)||!nt)this._append`L${this._x1=_e},${this._y1=et}`;else{let ft=tt-ot,pt=rt-it,gt=st*st+lt*lt,vt=ft*ft+pt*pt,bt=Math.sqrt(gt),_t=Math.sqrt(dt),xt=nt*Math.tan((pi-Math.acos((gt+dt-vt)/(2*bt*_t)))/2),yt=xt/_t,Et=xt/bt;Math.abs(yt-1)>epsilon&&this._append`L${_e+yt*ut},${et+yt*ct}`,this._append`A${nt},${nt},0,0,${+(ct*ft>ut*pt)},${this._x1=_e+Et*st},${this._y1=et+Et*lt}`}}arc(_e,et,tt,rt,nt,ot){if(_e=+_e,et=+et,tt=+tt,ot=!!ot,tt<0)throw new Error(`negative radius: ${tt}`);let it=tt*Math.cos(rt),st=tt*Math.sin(rt),lt=_e+it,ut=et+st,ct=1^ot,dt=ot?rt-nt:nt-rt;this._x1===null?this._append`M${lt},${ut}`:(Math.abs(this._x1-lt)>epsilon||Math.abs(this._y1-ut)>epsilon)&&this._append`L${lt},${ut}`,tt&&(dt<0&&(dt=dt%tau+tau),dt>tauEpsilon?this._append`A${tt},${tt},0,1,${ct},${_e-it},${et-st}A${tt},${tt},0,1,${ct},${this._x1=lt},${this._y1=ut}`:dt>epsilon&&this._append`A${tt},${tt},0,${+(dt>=pi)},${ct},${this._x1=_e+tt*Math.cos(nt)},${this._y1=et+tt*Math.sin(nt)}`)}rect(_e,et,tt,rt){this._append`M${this._x0=this._x1=+_e},${this._y0=this._y1=+et}h${tt=+tt}v${+rt}h${-tt}Z`}toString(){return this._}}function withPath(j){let _e=3;return j.digits=function(et){if(!arguments.length)return _e;if(et==null)_e=null;else{const tt=Math.floor(et);if(!(tt>=0))throw new RangeError(`invalid digits: ${et}`);_e=tt}return j},()=>new Path(_e)}function array(j){return typeof j=="object"&&"length"in j?j:Array.from(j)}function Linear(j){this._context=j}Linear.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1,this._line?this._context.lineTo(j,_e):this._context.moveTo(j,_e);break;case 1:this._point=2;default:this._context.lineTo(j,_e);break}}};function curveLinear(j){return new Linear(j)}function x(j){return j[0]}function y(j){return j[1]}function shapeLine(j,_e){var et=constant$1(!0),tt=null,rt=curveLinear,nt=null,ot=withPath(it);j=typeof j=="function"?j:j===void 0?x:constant$1(j),_e=typeof _e=="function"?_e:_e===void 0?y:constant$1(_e);function it(st){var lt,ut=(st=array(st)).length,ct,dt=!1,ft;for(tt==null&&(nt=rt(ft=ot())),lt=0;lt<=ut;++lt)!(lt=ft;--pt)it.point(xt[pt],yt[pt]);it.lineEnd(),it.areaEnd()}bt&&(xt[dt]=+j(vt,dt,ct),yt[dt]=+_e(vt,dt,ct),it.point(tt?+tt(vt,dt,ct):xt[dt],et?+et(vt,dt,ct):yt[dt]))}if(_t)return it=null,_t+""||null}function ut(){return shapeLine().defined(rt).curve(ot).context(nt)}return lt.x=function(ct){return arguments.length?(j=typeof ct=="function"?ct:constant$1(+ct),tt=null,lt):j},lt.x0=function(ct){return arguments.length?(j=typeof ct=="function"?ct:constant$1(+ct),lt):j},lt.x1=function(ct){return arguments.length?(tt=ct==null?null:typeof ct=="function"?ct:constant$1(+ct),lt):tt},lt.y=function(ct){return arguments.length?(_e=typeof ct=="function"?ct:constant$1(+ct),et=null,lt):_e},lt.y0=function(ct){return arguments.length?(_e=typeof ct=="function"?ct:constant$1(+ct),lt):_e},lt.y1=function(ct){return arguments.length?(et=ct==null?null:typeof ct=="function"?ct:constant$1(+ct),lt):et},lt.lineX0=lt.lineY0=function(){return ut().x(j).y(_e)},lt.lineY1=function(){return ut().x(j).y(et)},lt.lineX1=function(){return ut().x(tt).y(_e)},lt.defined=function(ct){return arguments.length?(rt=typeof ct=="function"?ct:constant$1(!!ct),lt):rt},lt.curve=function(ct){return arguments.length?(ot=ct,nt!=null&&(it=ot(nt)),lt):ot},lt.context=function(ct){return arguments.length?(ct==null?nt=it=null:it=ot(nt=ct),lt):nt},lt}class Bump{constructor(_e,et){this._context=_e,this._x=et}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(_e,et){switch(_e=+_e,et=+et,this._point){case 0:{this._point=1,this._line?this._context.lineTo(_e,et):this._context.moveTo(_e,et);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+_e)/2,this._y0,this._x0,et,_e,et):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+et)/2,_e,this._y0,_e,et);break}}this._x0=_e,this._y0=et}}function bumpX(j){return new Bump(j,!0)}function bumpY(j){return new Bump(j,!1)}const symbolCircle={draw(j,_e){const et=sqrt$1(_e/pi$1);j.moveTo(et,0),j.arc(0,0,et,0,tau$1)}},symbolCross={draw(j,_e){const et=sqrt$1(_e/5)/2;j.moveTo(-3*et,-et),j.lineTo(-et,-et),j.lineTo(-et,-3*et),j.lineTo(et,-3*et),j.lineTo(et,-et),j.lineTo(3*et,-et),j.lineTo(3*et,et),j.lineTo(et,et),j.lineTo(et,3*et),j.lineTo(-et,3*et),j.lineTo(-et,et),j.lineTo(-3*et,et),j.closePath()}},tan30=sqrt$1(1/3),tan30_2=tan30*2,symbolDiamond={draw(j,_e){const et=sqrt$1(_e/tan30_2),tt=et*tan30;j.moveTo(0,-et),j.lineTo(tt,0),j.lineTo(0,et),j.lineTo(-tt,0),j.closePath()}},symbolSquare={draw(j,_e){const et=sqrt$1(_e),tt=-et/2;j.rect(tt,tt,et,et)}},ka=.8908130915292852,kr=sin(pi$1/10)/sin(7*pi$1/10),kx=sin(tau$1/10)*kr,ky=-cos(tau$1/10)*kr,symbolStar={draw(j,_e){const et=sqrt$1(_e*ka),tt=kx*et,rt=ky*et;j.moveTo(0,-et),j.lineTo(tt,rt);for(let nt=1;nt<5;++nt){const ot=tau$1*nt/5,it=cos(ot),st=sin(ot);j.lineTo(st*et,-it*et),j.lineTo(it*tt-st*rt,st*tt+it*rt)}j.closePath()}},sqrt3=sqrt$1(3),symbolTriangle={draw(j,_e){const et=-sqrt$1(_e/(sqrt3*3));j.moveTo(0,et*2),j.lineTo(-sqrt3*et,-et),j.lineTo(sqrt3*et,-et),j.closePath()}},c=-.5,s=sqrt$1(3)/2,k=1/sqrt$1(12),a=(k/2+1)*3,symbolWye={draw(j,_e){const et=sqrt$1(_e/a),tt=et/2,rt=et*k,nt=tt,ot=et*k+et,it=-nt,st=ot;j.moveTo(tt,rt),j.lineTo(nt,ot),j.lineTo(it,st),j.lineTo(c*tt-s*rt,s*tt+c*rt),j.lineTo(c*nt-s*ot,s*nt+c*ot),j.lineTo(c*it-s*st,s*it+c*st),j.lineTo(c*tt+s*rt,c*rt-s*tt),j.lineTo(c*nt+s*ot,c*ot-s*nt),j.lineTo(c*it+s*st,c*st-s*it),j.closePath()}};function Symbol$1(j,_e){let et=null,tt=withPath(rt);j=typeof j=="function"?j:constant$1(j||symbolCircle),_e=typeof _e=="function"?_e:constant$1(_e===void 0?64:+_e);function rt(){let nt;if(et||(et=nt=tt()),j.apply(this,arguments).draw(et,+_e.apply(this,arguments)),nt)return et=null,nt+""||null}return rt.type=function(nt){return arguments.length?(j=typeof nt=="function"?nt:constant$1(nt),rt):j},rt.size=function(nt){return arguments.length?(_e=typeof nt=="function"?nt:constant$1(+nt),rt):_e},rt.context=function(nt){return arguments.length?(et=nt??null,rt):et},rt}function noop(){}function point$2(j,_e,et){j._context.bezierCurveTo((2*j._x0+j._x1)/3,(2*j._y0+j._y1)/3,(j._x0+2*j._x1)/3,(j._y0+2*j._y1)/3,(j._x0+4*j._x1+_e)/6,(j._y0+4*j._y1+et)/6)}function Basis(j){this._context=j}Basis.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:point$2(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1,this._line?this._context.lineTo(j,_e):this._context.moveTo(j,_e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:point$2(this,j,_e);break}this._x0=this._x1,this._x1=j,this._y0=this._y1,this._y1=_e}};function curveBasis(j){return new Basis(j)}function BasisClosed(j){this._context=j}BasisClosed.prototype={areaStart:noop,areaEnd:noop,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1,this._x2=j,this._y2=_e;break;case 1:this._point=2,this._x3=j,this._y3=_e;break;case 2:this._point=3,this._x4=j,this._y4=_e,this._context.moveTo((this._x0+4*this._x1+j)/6,(this._y0+4*this._y1+_e)/6);break;default:point$2(this,j,_e);break}this._x0=this._x1,this._x1=j,this._y0=this._y1,this._y1=_e}};function curveBasisClosed(j){return new BasisClosed(j)}function BasisOpen(j){this._context=j}BasisOpen.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var et=(this._x0+4*this._x1+j)/6,tt=(this._y0+4*this._y1+_e)/6;this._line?this._context.lineTo(et,tt):this._context.moveTo(et,tt);break;case 3:this._point=4;default:point$2(this,j,_e);break}this._x0=this._x1,this._x1=j,this._y0=this._y1,this._y1=_e}};function curveBasisOpen(j){return new BasisOpen(j)}function LinearClosed(j){this._context=j}LinearClosed.prototype={areaStart:noop,areaEnd:noop,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(j,_e){j=+j,_e=+_e,this._point?this._context.lineTo(j,_e):(this._point=1,this._context.moveTo(j,_e))}};function curveLinearClosed(j){return new LinearClosed(j)}function sign(j){return j<0?-1:1}function slope3(j,_e,et){var tt=j._x1-j._x0,rt=_e-j._x1,nt=(j._y1-j._y0)/(tt||rt<0&&-0),ot=(et-j._y1)/(rt||tt<0&&-0),it=(nt*rt+ot*tt)/(tt+rt);return(sign(nt)+sign(ot))*Math.min(Math.abs(nt),Math.abs(ot),.5*Math.abs(it))||0}function slope2(j,_e){var et=j._x1-j._x0;return et?(3*(j._y1-j._y0)/et-_e)/2:_e}function point$1(j,_e,et){var tt=j._x0,rt=j._y0,nt=j._x1,ot=j._y1,it=(nt-tt)/3;j._context.bezierCurveTo(tt+it,rt+it*_e,nt-it,ot-it*et,nt,ot)}function MonotoneX(j){this._context=j}MonotoneX.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:point$1(this,this._t0,slope2(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(j,_e){var et=NaN;if(j=+j,_e=+_e,!(j===this._x1&&_e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(j,_e):this._context.moveTo(j,_e);break;case 1:this._point=2;break;case 2:this._point=3,point$1(this,slope2(this,et=slope3(this,j,_e)),et);break;default:point$1(this,this._t0,et=slope3(this,j,_e));break}this._x0=this._x1,this._x1=j,this._y0=this._y1,this._y1=_e,this._t0=et}}};function MonotoneY(j){this._context=new ReflectContext(j)}(MonotoneY.prototype=Object.create(MonotoneX.prototype)).point=function(j,_e){MonotoneX.prototype.point.call(this,_e,j)};function ReflectContext(j){this._context=j}ReflectContext.prototype={moveTo:function(j,_e){this._context.moveTo(_e,j)},closePath:function(){this._context.closePath()},lineTo:function(j,_e){this._context.lineTo(_e,j)},bezierCurveTo:function(j,_e,et,tt,rt,nt){this._context.bezierCurveTo(_e,j,tt,et,nt,rt)}};function monotoneX(j){return new MonotoneX(j)}function monotoneY(j){return new MonotoneY(j)}function Natural(j){this._context=j}Natural.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var j=this._x,_e=this._y,et=j.length;if(et)if(this._line?this._context.lineTo(j[0],_e[0]):this._context.moveTo(j[0],_e[0]),et===2)this._context.lineTo(j[1],_e[1]);else for(var tt=controlPoints(j),rt=controlPoints(_e),nt=0,ot=1;ot=0;--_e)rt[_e]=(ot[_e]-rt[_e+1])/nt[_e];for(nt[et-1]=(j[et]+rt[et-1])/2,_e=0;_e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1,this._line?this._context.lineTo(j,_e):this._context.moveTo(j,_e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,_e),this._context.lineTo(j,_e);else{var et=this._x*(1-this._t)+j*this._t;this._context.lineTo(et,this._y),this._context.lineTo(et,_e)}break}}this._x=j,this._y=_e}};function curveStep(j){return new Step(j,.5)}function stepBefore(j){return new Step(j,0)}function stepAfter(j){return new Step(j,1)}function stackOffsetNone(j,_e){if((ot=j.length)>1)for(var et=1,tt,rt,nt=j[_e[0]],ot,it=nt.length;et=0;)et[_e]=_e;return et}function stackValue(j,_e){return j[_e]}function stackSeries(j){const _e=[];return _e.key=j,_e}function shapeStack(){var j=constant$1([]),_e=stackOrderNone,et=stackOffsetNone,tt=stackValue;function rt(nt){var ot=Array.from(j.apply(this,arguments),stackSeries),it,st=ot.length,lt=-1,ut;for(const ct of nt)for(it=0,++lt;it0){for(var et,tt,rt=0,nt=j[0].length,ot;rt0){for(var et=0,tt=j[_e[0]],rt,nt=tt.length;et0)||!((nt=(rt=j[_e[0]]).length)>0))){for(var et=0,tt=1,rt,nt,ot;tt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$c(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var symbolFactories={symbolCircle,symbolCross,symbolDiamond,symbolSquare,symbolStar,symbolTriangle,symbolWye},RADIAN$2=Math.PI/180,getSymbolFactory=function j(_e){var et="symbol".concat(upperFirst$1(_e));return symbolFactories[et]||symbolCircle},calculateAreaSize=function j(_e,et,tt){if(et==="area")return _e;switch(tt){case"cross":return 5*_e*_e/9;case"diamond":return .5*_e*_e/Math.sqrt(3);case"square":return _e*_e;case"star":{var rt=18*RADIAN$2;return 1.25*_e*_e*(Math.tan(rt)-Math.tan(rt*2)*Math.pow(Math.tan(rt),2))}case"triangle":return Math.sqrt(3)*_e*_e/4;case"wye":return(21-10*Math.sqrt(3))*_e*_e/8;default:return Math.PI*_e*_e/4}},registerSymbol=function j(_e,et){symbolFactories["symbol".concat(upperFirst$1(_e))]=et},Symbols=function j(_e){var et=_e.type,tt=et===void 0?"circle":et,rt=_e.size,nt=rt===void 0?64:rt,ot=_e.sizeType,it=ot===void 0?"area":ot,st=_objectWithoutProperties$c(_e,_excluded$c),lt=_objectSpread$x(_objectSpread$x({},st),{},{type:tt,size:nt,sizeType:it}),ut=function(){var vt=getSymbolFactory(tt),bt=Symbol$1().type(vt).size(calculateAreaSize(nt,it,tt));return bt()},ct=lt.className,dt=lt.cx,ft=lt.cy,pt=filterProps(lt,!0);return dt===+dt&&ft===+ft&&nt===+nt?React.createElement("path",_extends$l({},pt,{className:clsx("recharts-symbols",ct),transform:"translate(".concat(dt,", ").concat(ft,")"),d:ut()})):null};Symbols.registerSymbol=registerSymbol;function _typeof$A(j){"@babel/helpers - typeof";return _typeof$A=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$A(j)}function _extends$k(){return _extends$k=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$a(j){return _getPrototypeOf$a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$a(j)}function _defineProperty$y(j,_e,et){return _e=_toPropertyKey$z(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$z(j){var _e=_toPrimitive$z(j,"string");return _typeof$A(_e)==="symbol"?_e:String(_e)}function _toPrimitive$z(j,_e){if(_typeof$A(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$A(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var SIZE=32,DefaultLegendContent=function(j){_inherits$a(et,j);var _e=_createSuper$a(et);function et(){return _classCallCheck$d(this,et),_e.apply(this,arguments)}return _createClass$d(et,[{key:"renderIcon",value:function(rt){var nt=this.props.inactiveColor,ot=SIZE/2,it=SIZE/6,st=SIZE/3,lt=rt.inactive?nt:rt.color;if(rt.type==="plainline")return React.createElement("line",{strokeWidth:4,fill:"none",stroke:lt,strokeDasharray:rt.payload.strokeDasharray,x1:0,y1:ot,x2:SIZE,y2:ot,className:"recharts-legend-icon"});if(rt.type==="line")return React.createElement("path",{strokeWidth:4,fill:"none",stroke:lt,d:"M0,".concat(ot,"h").concat(st,` + A`).concat(it,",").concat(it,",0,1,1,").concat(2*st,",").concat(ot,` + H`).concat(SIZE,"M").concat(2*st,",").concat(ot,` + A`).concat(it,",").concat(it,",0,1,1,").concat(st,",").concat(ot),className:"recharts-legend-icon"});if(rt.type==="rect")return React.createElement("path",{stroke:"none",fill:lt,d:"M0,".concat(SIZE/8,"h").concat(SIZE,"v").concat(SIZE*3/4,"h").concat(-SIZE,"z"),className:"recharts-legend-icon"});if(React.isValidElement(rt.legendIcon)){var ut=_objectSpread$w({},rt);return delete ut.legendIcon,React.cloneElement(rt.legendIcon,ut)}return React.createElement(Symbols,{fill:lt,cx:ot,cy:ot,size:SIZE,sizeType:"diameter",type:rt.type})}},{key:"renderItems",value:function(){var rt=this,nt=this.props,ot=nt.payload,it=nt.iconSize,st=nt.layout,lt=nt.formatter,ut=nt.inactiveColor,ct={x:0,y:0,width:SIZE,height:SIZE},dt={display:st==="horizontal"?"inline-block":"block",marginRight:10},ft={display:"inline-block",verticalAlign:"middle",marginRight:4};return ot.map(function(pt,gt){var vt,bt=pt.formatter||lt,_t=clsx((vt={"recharts-legend-item":!0},_defineProperty$y(vt,"legend-item-".concat(gt),!0),_defineProperty$y(vt,"inactive",pt.inactive),vt));if(pt.type==="none")return null;var xt=isFunction$6(pt.value)?null:pt.value;warn(!isFunction$6(pt.value),`The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: `);var yt=pt.inactive?ut:pt.color;return React.createElement("li",_extends$k({className:_t,style:dt,key:"legend-item-".concat(gt)},adaptEventsOfChild(rt.props,pt,gt)),React.createElement(Surface,{width:it,height:it,viewBox:ct,style:ft},rt.renderIcon(pt)),React.createElement("span",{className:"recharts-legend-item-text",style:{color:yt}},bt?bt(xt,pt,gt):xt))})}},{key:"render",value:function(){var rt=this.props,nt=rt.payload,ot=rt.layout,it=rt.align;if(!nt||!nt.length)return null;var st={padding:0,margin:0,textAlign:ot==="horizontal"?it:"left"};return React.createElement("ul",{className:"recharts-default-legend",style:st},this.renderItems())}}]),et}(reactExports.PureComponent);_defineProperty$y(DefaultLegendContent,"displayName","Legend");_defineProperty$y(DefaultLegendContent,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var baseIteratee$3=_baseIteratee,baseUniq=_baseUniq;function uniqBy(j,_e){return j&&j.length?baseUniq(j,baseIteratee$3(_e)):[]}var uniqBy_1=uniqBy;const uniqBy$1=getDefaultExportFromCjs(uniqBy_1);function getUniqPayload(j,_e,et){return _e===!0?uniqBy$1(j,et):isFunction$6(_e)?uniqBy$1(j,_e):j}function _typeof$z(j){"@babel/helpers - typeof";return _typeof$z=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$z(j)}var _excluded$b=["ref"];function ownKeys$v(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$v(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$9(j){return _getPrototypeOf$9=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$9(j)}function _defineProperty$x(j,_e,et){return _e=_toPropertyKey$y(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$y(j){var _e=_toPrimitive$y(j,"string");return _typeof$z(_e)==="symbol"?_e:String(_e)}function _toPrimitive$y(j,_e){if(_typeof$z(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$z(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}function _objectWithoutProperties$b(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$b(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$b(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function defaultUniqBy$1(j){return j.value}function renderContent$1(j,_e){if(React.isValidElement(j))return React.cloneElement(j,_e);if(typeof j=="function")return React.createElement(j,_e);_e.ref;var et=_objectWithoutProperties$b(_e,_excluded$b);return React.createElement(DefaultLegendContent,et)}var EPS$1=1,Legend=function(j){_inherits$9(et,j);var _e=_createSuper$9(et);function et(){var tt;_classCallCheck$c(this,et);for(var rt=arguments.length,nt=new Array(rt),ot=0;otEPS$1||Math.abs(nt.height-this.lastBoundingBox.height)>EPS$1)&&(this.lastBoundingBox.width=nt.width,this.lastBoundingBox.height=nt.height,rt&&rt(nt))}else(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,rt&&rt(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?_objectSpread$v({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(rt){var nt=this.props,ot=nt.layout,it=nt.align,st=nt.verticalAlign,lt=nt.margin,ut=nt.chartWidth,ct=nt.chartHeight,dt,ft;if(!rt||(rt.left===void 0||rt.left===null)&&(rt.right===void 0||rt.right===null))if(it==="center"&&ot==="vertical"){var pt=this.getBBoxSnapshot();dt={left:((ut||0)-pt.width)/2}}else dt=it==="right"?{right:lt&<.right||0}:{left:lt&<.left||0};if(!rt||(rt.top===void 0||rt.top===null)&&(rt.bottom===void 0||rt.bottom===null))if(st==="middle"){var gt=this.getBBoxSnapshot();ft={top:((ct||0)-gt.height)/2}}else ft=st==="bottom"?{bottom:lt&<.bottom||0}:{top:lt&<.top||0};return _objectSpread$v(_objectSpread$v({},dt),ft)}},{key:"render",value:function(){var rt=this,nt=this.props,ot=nt.content,it=nt.width,st=nt.height,lt=nt.wrapperStyle,ut=nt.payloadUniqBy,ct=nt.payload,dt=_objectSpread$v(_objectSpread$v({position:"absolute",width:it||"auto",height:st||"auto"},this.getDefaultPosition(lt)),lt);return React.createElement("div",{className:"recharts-legend-wrapper",style:dt,ref:function(pt){rt.wrapperNode=pt}},renderContent$1(ot,_objectSpread$v(_objectSpread$v({},this.props),{},{payload:getUniqPayload(ct,ut,defaultUniqBy$1)})))}}],[{key:"getWithHeight",value:function(rt,nt){var ot=rt.props.layout;return ot==="vertical"&&isNumber(rt.props.height)?{height:rt.props.height}:ot==="horizontal"?{width:rt.props.width||nt}:null}}]),et}(reactExports.PureComponent);_defineProperty$x(Legend,"displayName","Legend");_defineProperty$x(Legend,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});function _typeof$y(j){"@babel/helpers - typeof";return _typeof$y=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$y(j)}function _slicedToArray$b(j,_e){return _arrayWithHoles$c(j)||_iterableToArrayLimit$b(j,_e)||_unsupportedIterableToArray$j(j,_e)||_nonIterableRest$c()}function _nonIterableRest$c(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$j(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$j(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$j(j,_e)}}function _arrayLikeToArray$j(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$b(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$c(j){if(Array.isArray(j))return j}function ownKeys$u(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$u(j){for(var _e=1;_e0;)if(!et.equals(j[tt],_e[tt],tt,tt,j,_e,et))return!1;return!0}function areDatesEqual(j,_e){return sameValueZeroEqual(j.getTime(),_e.getTime())}function areMapsEqual(j,_e,et){if(j.size!==_e.size)return!1;for(var tt={},rt=j.entries(),nt=0,ot,it;(ot=rt.next())&&!ot.done;){for(var st=_e.entries(),lt=!1,ut=0;(it=st.next())&&!it.done;){var ct=ot.value,dt=ct[0],ft=ct[1],pt=it.value,gt=pt[0],vt=pt[1];!lt&&!tt[ut]&&(lt=et.equals(dt,gt,nt,ut,j,_e,et)&&et.equals(ft,vt,dt,gt,j,_e,et))&&(tt[ut]=!0),ut++}if(!lt)return!1;nt++}return!0}function areObjectsEqual(j,_e,et){var tt=keys(j),rt=tt.length;if(keys(_e).length!==rt)return!1;for(var nt;rt-- >0;)if(nt=tt[rt],nt===OWNER&&(j.$$typeof||_e.$$typeof)&&j.$$typeof!==_e.$$typeof||!hasOwn(_e,nt)||!et.equals(j[nt],_e[nt],nt,nt,j,_e,et))return!1;return!0}function areObjectsEqualStrict(j,_e,et){var tt=getStrictProperties(j),rt=tt.length;if(getStrictProperties(_e).length!==rt)return!1;for(var nt,ot,it;rt-- >0;)if(nt=tt[rt],nt===OWNER&&(j.$$typeof||_e.$$typeof)&&j.$$typeof!==_e.$$typeof||!hasOwn(_e,nt)||!et.equals(j[nt],_e[nt],nt,nt,j,_e,et)||(ot=getOwnPropertyDescriptor(j,nt),it=getOwnPropertyDescriptor(_e,nt),(ot||it)&&(!ot||!it||ot.configurable!==it.configurable||ot.enumerable!==it.enumerable||ot.writable!==it.writable)))return!1;return!0}function arePrimitiveWrappersEqual(j,_e){return sameValueZeroEqual(j.valueOf(),_e.valueOf())}function areRegExpsEqual(j,_e){return j.source===_e.source&&j.flags===_e.flags}function areSetsEqual(j,_e,et){if(j.size!==_e.size)return!1;for(var tt={},rt=j.values(),nt,ot;(nt=rt.next())&&!nt.done;){for(var it=_e.values(),st=!1,lt=0;(ot=it.next())&&!ot.done;)!st&&!tt[lt]&&(st=et.equals(nt.value,ot.value,nt.value,ot.value,j,_e,et))&&(tt[lt]=!0),lt++;if(!st)return!1}return!0}function areTypedArraysEqual(j,_e){var et=j.length;if(_e.length!==et)return!1;for(;et-- >0;)if(j[et]!==_e[et])return!1;return!0}var ARGUMENTS_TAG="[object Arguments]",BOOLEAN_TAG="[object Boolean]",DATE_TAG="[object Date]",MAP_TAG="[object Map]",NUMBER_TAG="[object Number]",OBJECT_TAG="[object Object]",REG_EXP_TAG="[object RegExp]",SET_TAG="[object Set]",STRING_TAG="[object String]",isArray$2=Array.isArray,isTypedArray=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,assign=Object.assign,getTag=Object.prototype.toString.call.bind(Object.prototype.toString);function createEqualityComparator(j){var _e=j.areArraysEqual,et=j.areDatesEqual,tt=j.areMapsEqual,rt=j.areObjectsEqual,nt=j.arePrimitiveWrappersEqual,ot=j.areRegExpsEqual,it=j.areSetsEqual,st=j.areTypedArraysEqual;return function(ut,ct,dt){if(ut===ct)return!0;if(ut==null||ct==null||typeof ut!="object"||typeof ct!="object")return ut!==ut&&ct!==ct;var ft=ut.constructor;if(ft!==ct.constructor)return!1;if(ft===Object)return rt(ut,ct,dt);if(isArray$2(ut))return _e(ut,ct,dt);if(isTypedArray!=null&&isTypedArray(ut))return st(ut,ct,dt);if(ft===Date)return et(ut,ct,dt);if(ft===RegExp)return ot(ut,ct,dt);if(ft===Map)return tt(ut,ct,dt);if(ft===Set)return it(ut,ct,dt);var pt=getTag(ut);return pt===DATE_TAG?et(ut,ct,dt):pt===REG_EXP_TAG?ot(ut,ct,dt):pt===MAP_TAG?tt(ut,ct,dt):pt===SET_TAG?it(ut,ct,dt):pt===OBJECT_TAG?typeof ut.then!="function"&&typeof ct.then!="function"&&rt(ut,ct,dt):pt===ARGUMENTS_TAG?rt(ut,ct,dt):pt===BOOLEAN_TAG||pt===NUMBER_TAG||pt===STRING_TAG?nt(ut,ct,dt):!1}}function createEqualityComparatorConfig(j){var _e=j.circular,et=j.createCustomConfig,tt=j.strict,rt={areArraysEqual:tt?areObjectsEqualStrict:areArraysEqual,areDatesEqual,areMapsEqual:tt?combineComparators(areMapsEqual,areObjectsEqualStrict):areMapsEqual,areObjectsEqual:tt?areObjectsEqualStrict:areObjectsEqual,arePrimitiveWrappersEqual,areRegExpsEqual,areSetsEqual:tt?combineComparators(areSetsEqual,areObjectsEqualStrict):areSetsEqual,areTypedArraysEqual:tt?areObjectsEqualStrict:areTypedArraysEqual};if(et&&(rt=assign({},rt,et(rt))),_e){var nt=createIsCircular(rt.areArraysEqual),ot=createIsCircular(rt.areMapsEqual),it=createIsCircular(rt.areObjectsEqual),st=createIsCircular(rt.areSetsEqual);rt=assign({},rt,{areArraysEqual:nt,areMapsEqual:ot,areObjectsEqual:it,areSetsEqual:st})}return rt}function createInternalEqualityComparator(j){return function(_e,et,tt,rt,nt,ot,it){return j(_e,et,it)}}function createIsEqual(j){var _e=j.circular,et=j.comparator,tt=j.createState,rt=j.equals,nt=j.strict;if(tt)return function(st,lt){var ut=tt(),ct=ut.cache,dt=ct===void 0?_e?new WeakMap:void 0:ct,ft=ut.meta;return et(st,lt,{cache:dt,equals:rt,meta:ft,strict:nt})};if(_e)return function(st,lt){return et(st,lt,{cache:new WeakMap,equals:rt,meta:void 0,strict:nt})};var ot={cache:void 0,equals:rt,meta:void 0,strict:nt};return function(st,lt){return et(st,lt,ot)}}var deepEqual=createCustomEqual();createCustomEqual({strict:!0});createCustomEqual({circular:!0});createCustomEqual({circular:!0,strict:!0});createCustomEqual({createInternalComparator:function(){return sameValueZeroEqual}});createCustomEqual({strict:!0,createInternalComparator:function(){return sameValueZeroEqual}});createCustomEqual({circular:!0,createInternalComparator:function(){return sameValueZeroEqual}});createCustomEqual({circular:!0,createInternalComparator:function(){return sameValueZeroEqual},strict:!0});function createCustomEqual(j){j===void 0&&(j={});var _e=j.circular,et=_e===void 0?!1:_e,tt=j.createInternalComparator,rt=j.createState,nt=j.strict,ot=nt===void 0?!1:nt,it=createEqualityComparatorConfig(j),st=createEqualityComparator(it),lt=tt?tt(st):createInternalEqualityComparator(st);return createIsEqual({circular:et,comparator:st,createState:rt,equals:lt,strict:ot})}function safeRequestAnimationFrame(j){typeof requestAnimationFrame<"u"&&requestAnimationFrame(j)}function setRafTimeout(j){var _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,et=-1,tt=function rt(nt){et<0&&(et=nt),nt-et>_e?(j(nt),et=-1):safeRequestAnimationFrame(rt)};requestAnimationFrame(tt)}function _typeof$x(j){"@babel/helpers - typeof";return _typeof$x=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$x(j)}function _toArray(j){return _arrayWithHoles$b(j)||_iterableToArray$b(j)||_unsupportedIterableToArray$i(j)||_nonIterableRest$b()}function _nonIterableRest$b(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$i(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$i(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$i(j,_e)}}function _arrayLikeToArray$i(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArray$b(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithHoles$b(j){if(Array.isArray(j))return j}function createAnimateManager(){var j={},_e=function(){return null},et=!1,tt=function rt(nt){if(!et){if(Array.isArray(nt)){if(!nt.length)return;var ot=nt,it=_toArray(ot),st=it[0],lt=it.slice(1);if(typeof st=="number"){setRafTimeout(rt.bind(null,lt),st);return}rt(st),setRafTimeout(rt.bind(null,lt));return}_typeof$x(nt)==="object"&&(j=nt,_e(j)),typeof nt=="function"&&nt()}};return{stop:function(){et=!0},start:function(nt){et=!1,tt(nt)},subscribe:function(nt){return _e=nt,function(){_e=function(){return null}}}}}function _typeof$w(j){"@babel/helpers - typeof";return _typeof$w=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$w(j)}function ownKeys$t(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$t(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}var ACCURACY=1e-4,cubicBezierFactor=function j(_e,et){return[0,3*_e,3*et-6*_e,3*_e-3*et+1]},multyTime=function j(_e,et){return _e.map(function(tt,rt){return tt*Math.pow(et,rt)}).reduce(function(tt,rt){return tt+rt})},cubicBezier=function j(_e,et){return function(tt){var rt=cubicBezierFactor(_e,et);return multyTime(rt,tt)}},derivativeCubicBezier=function j(_e,et){return function(tt){var rt=cubicBezierFactor(_e,et),nt=[].concat(_toConsumableArray$a(rt.map(function(ot,it){return ot*it}).slice(1)),[0]);return multyTime(nt,tt)}},configBezier=function j(){for(var _e=arguments.length,et=new Array(_e),tt=0;tt<_e;tt++)et[tt]=arguments[tt];var rt=et[0],nt=et[1],ot=et[2],it=et[3];if(et.length===1)switch(et[0]){case"linear":rt=0,nt=0,ot=1,it=1;break;case"ease":rt=.25,nt=.1,ot=.25,it=1;break;case"ease-in":rt=.42,nt=0,ot=1,it=1;break;case"ease-out":rt=.42,nt=0,ot=.58,it=1;break;case"ease-in-out":rt=0,nt=0,ot=.58,it=1;break;default:{var st=et[0].split("(");if(st[0]==="cubic-bezier"&&st[1].split(")")[0].split(",").length===4){var lt=st[1].split(")")[0].split(",").map(function(vt){return parseFloat(vt)}),ut=_slicedToArray$a(lt,4);rt=ut[0],nt=ut[1],ot=ut[2],it=ut[3]}}}var ct=cubicBezier(rt,ot),dt=cubicBezier(nt,it),ft=derivativeCubicBezier(rt,ot),pt=function(bt){return bt>1?1:bt<0?0:bt},gt=function(bt){for(var _t=bt>1?1:bt,xt=_t,yt=0;yt<8;++yt){var Et=ct(xt)-_t,St=ft(xt);if(Math.abs(Et-_t)0&&arguments[0]!==void 0?arguments[0]:{},et=_e.stiff,tt=et===void 0?100:et,rt=_e.damping,nt=rt===void 0?8:rt,ot=_e.dt,it=ot===void 0?17:ot,st=function(ut,ct,dt){var ft=-(ut-ct)*tt,pt=dt*nt,gt=dt+(ft-pt)*it/1e3,vt=dt*it/1e3+ut;return Math.abs(vt-ct)j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$9(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$9(j){if(Array.isArray(j))return j}var alpha=function j(_e,et,tt){return _e+(et-_e)*tt},needContinue=function j(_e){var et=_e.from,tt=_e.to;return et!==tt},calStepperVals=function j(_e,et,tt){var rt=mapObject(function(nt,ot){if(needContinue(ot)){var it=_e(ot.from,ot.to,ot.velocity),st=_slicedToArray$9(it,2),lt=st[0],ut=st[1];return _objectSpread$s(_objectSpread$s({},ot),{},{from:lt,velocity:ut})}return ot},et);return tt<1?mapObject(function(nt,ot){return needContinue(ot)?_objectSpread$s(_objectSpread$s({},ot),{},{velocity:alpha(ot.velocity,rt[nt].velocity,tt),from:alpha(ot.from,rt[nt].from,tt)}):ot},et):j(_e,rt,tt-1)};const configUpdate=function(j,_e,et,tt,rt){var nt=getIntersectionKeys(j,_e),ot=nt.reduce(function(vt,bt){return _objectSpread$s(_objectSpread$s({},vt),{},_defineProperty$u({},bt,[j[bt],_e[bt]]))},{}),it=nt.reduce(function(vt,bt){return _objectSpread$s(_objectSpread$s({},vt),{},_defineProperty$u({},bt,{from:j[bt],velocity:0,to:_e[bt]}))},{}),st=-1,lt,ut,ct=function(){return null},dt=function(){return mapObject(function(bt,_t){return _t.from},it)},ft=function(){return!Object.values(it).filter(needContinue).length},pt=function(bt){lt||(lt=bt);var _t=bt-lt,xt=_t/et.dt;it=calStepperVals(et,it,xt),rt(_objectSpread$s(_objectSpread$s(_objectSpread$s({},j),_e),dt())),lt=bt,ft()||(st=requestAnimationFrame(ct))},gt=function(bt){ut||(ut=bt);var _t=(bt-ut)/tt,xt=mapObject(function(Et,St){return alpha.apply(void 0,_toConsumableArray$9(St).concat([et(_t)]))},ot);if(rt(_objectSpread$s(_objectSpread$s(_objectSpread$s({},j),_e),xt)),_t<1)st=requestAnimationFrame(ct);else{var yt=mapObject(function(Et,St){return alpha.apply(void 0,_toConsumableArray$9(St).concat([et(1)]))},ot);rt(_objectSpread$s(_objectSpread$s(_objectSpread$s({},j),_e),yt))}};return ct=et.isStepper?pt:gt,function(){return requestAnimationFrame(ct),function(){cancelAnimationFrame(st)}}};function _typeof$u(j){"@babel/helpers - typeof";return _typeof$u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$u(j)}var _excluded$a=["children","begin","duration","attributeName","easing","isActive","steps","from","to","canBegin","onAnimationEnd","shouldReAnimate","onAnimationReStart"];function _objectWithoutProperties$a(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$a(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$a(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _toConsumableArray$8(j){return _arrayWithoutHoles$8(j)||_iterableToArray$8(j)||_unsupportedIterableToArray$f(j)||_nonIterableSpread$8()}function _nonIterableSpread$8(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$f(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$f(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$f(j,_e)}}function _iterableToArray$8(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$8(j){if(Array.isArray(j))return _arrayLikeToArray$f(j)}function _arrayLikeToArray$f(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function ownKeys$r(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$r(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$8(j){return _getPrototypeOf$8=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$8(j)}var Animate=function(j){_inherits$8(et,j);var _e=_createSuper$8(et);function et(tt,rt){var nt;_classCallCheck$b(this,et),nt=_e.call(this,tt,rt);var ot=nt.props,it=ot.isActive,st=ot.attributeName,lt=ot.from,ut=ot.to,ct=ot.steps,dt=ot.children,ft=ot.duration;if(nt.handleStyleChange=nt.handleStyleChange.bind(_assertThisInitialized$8(nt)),nt.changeStyle=nt.changeStyle.bind(_assertThisInitialized$8(nt)),!it||ft<=0)return nt.state={style:{}},typeof dt=="function"&&(nt.state={style:ut}),_possibleConstructorReturn$8(nt);if(ct&&ct.length)nt.state={style:ct[0].style};else if(lt){if(typeof dt=="function")return nt.state={style:lt},_possibleConstructorReturn$8(nt);nt.state={style:st?_defineProperty$t({},st,lt):lt}}else nt.state={style:{}};return nt}return _createClass$b(et,[{key:"componentDidMount",value:function(){var rt=this.props,nt=rt.isActive,ot=rt.canBegin;this.mounted=!0,!(!nt||!ot)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(rt){var nt=this.props,ot=nt.isActive,it=nt.canBegin,st=nt.attributeName,lt=nt.shouldReAnimate,ut=nt.to,ct=nt.from,dt=this.state.style;if(it){if(!ot){var ft={style:st?_defineProperty$t({},st,ut):ut};this.state&&dt&&(st&&dt[st]!==ut||!st&&dt!==ut)&&this.setState(ft);return}if(!(deepEqual(rt.to,ut)&&rt.canBegin&&rt.isActive)){var pt=!rt.canBegin||!rt.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var gt=pt||lt?ct:rt.to;if(this.state&&dt){var vt={style:st?_defineProperty$t({},st,gt):gt};(st&&[st]!==gt||!st&&dt!==gt)&&this.setState(vt)}this.runAnimation(_objectSpread$r(_objectSpread$r({},this.props),{},{from:gt,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var rt=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),rt&&rt()}},{key:"handleStyleChange",value:function(rt){this.changeStyle(rt)}},{key:"changeStyle",value:function(rt){this.mounted&&this.setState({style:rt})}},{key:"runJSAnimation",value:function(rt){var nt=this,ot=rt.from,it=rt.to,st=rt.duration,lt=rt.easing,ut=rt.begin,ct=rt.onAnimationEnd,dt=rt.onAnimationStart,ft=configUpdate(ot,it,configEasing(lt),st,this.changeStyle),pt=function(){nt.stopJSAnimation=ft()};this.manager.start([dt,ut,pt,st,ct])}},{key:"runStepAnimation",value:function(rt){var nt=this,ot=rt.steps,it=rt.begin,st=rt.onAnimationStart,lt=ot[0],ut=lt.style,ct=lt.duration,dt=ct===void 0?0:ct,ft=function(gt,vt,bt){if(bt===0)return gt;var _t=vt.duration,xt=vt.easing,yt=xt===void 0?"ease":xt,Et=vt.style,St=vt.properties,$t=vt.onAnimationEnd,At=bt>0?ot[bt-1]:vt,wt=St||Object.keys(Et);if(typeof yt=="function"||yt==="spring")return[].concat(_toConsumableArray$8(gt),[nt.runJSAnimation.bind(nt,{from:At.style,to:Et,duration:_t,easing:yt}),_t]);var Ct=getTransitionVal(wt,_t,yt),It=_objectSpread$r(_objectSpread$r(_objectSpread$r({},At.style),Et),{},{transition:Ct});return[].concat(_toConsumableArray$8(gt),[It,_t,$t]).filter(identity$3)};return this.manager.start([st].concat(_toConsumableArray$8(ot.reduce(ft,[ut,Math.max(dt,it)])),[rt.onAnimationEnd]))}},{key:"runAnimation",value:function(rt){this.manager||(this.manager=createAnimateManager());var nt=rt.begin,ot=rt.duration,it=rt.attributeName,st=rt.to,lt=rt.easing,ut=rt.onAnimationStart,ct=rt.onAnimationEnd,dt=rt.steps,ft=rt.children,pt=this.manager;if(this.unSubscribe=pt.subscribe(this.handleStyleChange),typeof lt=="function"||typeof ft=="function"||lt==="spring"){this.runJSAnimation(rt);return}if(dt.length>1){this.runStepAnimation(rt);return}var gt=it?_defineProperty$t({},it,st):st,vt=getTransitionVal(Object.keys(gt),ot,lt);pt.start([ut,nt,_objectSpread$r(_objectSpread$r({},gt),{},{transition:vt}),ot,ct])}},{key:"render",value:function(){var rt=this.props,nt=rt.children;rt.begin;var ot=rt.duration;rt.attributeName,rt.easing;var it=rt.isActive;rt.steps,rt.from,rt.to,rt.canBegin,rt.onAnimationEnd,rt.shouldReAnimate,rt.onAnimationReStart;var st=_objectWithoutProperties$a(rt,_excluded$a),lt=reactExports.Children.count(nt),ut=translateStyle(this.state.style);if(typeof nt=="function")return nt(ut);if(!it||lt===0||ot<=0)return nt;var ct=function(ft){var pt=ft.props,gt=pt.style,vt=gt===void 0?{}:gt,bt=pt.className,_t=reactExports.cloneElement(ft,_objectSpread$r(_objectSpread$r({},st),{},{style:_objectSpread$r(_objectSpread$r({},vt),ut),className:bt}));return _t};return lt===1?ct(reactExports.Children.only(nt)):React.createElement("div",null,reactExports.Children.map(nt,function(dt){return ct(dt)}))}}]),et}(reactExports.PureComponent);Animate.displayName="Animate";Animate.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function j(){},onAnimationStart:function j(){}};Animate.propTypes={from:PropTypes$1.oneOfType([PropTypes$1.object,PropTypes$1.string]),to:PropTypes$1.oneOfType([PropTypes$1.object,PropTypes$1.string]),attributeName:PropTypes$1.string,duration:PropTypes$1.number,begin:PropTypes$1.number,easing:PropTypes$1.oneOfType([PropTypes$1.string,PropTypes$1.func]),steps:PropTypes$1.arrayOf(PropTypes$1.shape({duration:PropTypes$1.number.isRequired,style:PropTypes$1.object.isRequired,easing:PropTypes$1.oneOfType([PropTypes$1.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),PropTypes$1.func]),properties:PropTypes$1.arrayOf("string"),onAnimationEnd:PropTypes$1.func})),children:PropTypes$1.oneOfType([PropTypes$1.node,PropTypes$1.func]),isActive:PropTypes$1.bool,canBegin:PropTypes$1.bool,onAnimationEnd:PropTypes$1.func,shouldReAnimate:PropTypes$1.bool,onAnimationStart:PropTypes$1.func,onAnimationReStart:PropTypes$1.func};Number.isFinite===void 0&&(Number.isFinite=function(j){return typeof j=="number"&&isFinite(j)});PropTypes$1.object,PropTypes$1.object,PropTypes$1.object,PropTypes$1.element;PropTypes$1.object,PropTypes$1.object,PropTypes$1.object,PropTypes$1.oneOfType([PropTypes$1.array,PropTypes$1.element]),PropTypes$1.any;function _typeof$t(j){"@babel/helpers - typeof";return _typeof$t=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$t(j)}function _defineProperty$s(j,_e,et){return _e=_toPropertyKey$t(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$t(j){var _e=_toPrimitive$t(j,"string");return _typeof$t(_e)==="symbol"?_e:String(_e)}function _toPrimitive$t(j,_e){if(_typeof$t(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$t(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var CSS_CLASS_PREFIX="recharts-tooltip-wrapper",TOOLTIP_HIDDEN={visibility:"hidden"};function getTooltipCSSClassName(j){var _e,et=j.coordinate,tt=j.translateX,rt=j.translateY;return clsx(CSS_CLASS_PREFIX,(_e={},_defineProperty$s(_e,"".concat(CSS_CLASS_PREFIX,"-right"),isNumber(tt)&&et&&isNumber(et.x)&&tt>=et.x),_defineProperty$s(_e,"".concat(CSS_CLASS_PREFIX,"-left"),isNumber(tt)&&et&&isNumber(et.x)&&tt=et.y),_defineProperty$s(_e,"".concat(CSS_CLASS_PREFIX,"-top"),isNumber(rt)&&et&&isNumber(et.y)&&rtgt?Math.max(ut,st[tt]):Math.max(ct,st[tt])}function getTransformStyle(j){var _e=j.translateX,et=j.translateY,tt=j.useTranslate3d;return translateStyle({transform:tt?"translate3d(".concat(_e,"px, ").concat(et,"px, 0)"):"translate(".concat(_e,"px, ").concat(et,"px)")})}function getTooltipTranslate(j){var _e=j.allowEscapeViewBox,et=j.coordinate,tt=j.offsetTopLeft,rt=j.position,nt=j.reverseDirection,ot=j.tooltipBox,it=j.useTranslate3d,st=j.viewBox,lt,ut,ct;return ot.height>0&&ot.width>0&&et?(ut=getTooltipTranslateXY({allowEscapeViewBox:_e,coordinate:et,key:"x",offsetTopLeft:tt,position:rt,reverseDirection:nt,tooltipDimension:ot.width,viewBox:st,viewBoxDimension:st.width}),ct=getTooltipTranslateXY({allowEscapeViewBox:_e,coordinate:et,key:"y",offsetTopLeft:tt,position:rt,reverseDirection:nt,tooltipDimension:ot.height,viewBox:st,viewBoxDimension:st.height}),lt=getTransformStyle({translateX:ut,translateY:ct,useTranslate3d:it})):lt=TOOLTIP_HIDDEN,{cssProperties:lt,cssClasses:getTooltipCSSClassName({translateX:ut,translateY:ct,coordinate:et})}}function _typeof$s(j){"@babel/helpers - typeof";return _typeof$s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$s(j)}function ownKeys$q(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$q(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$7(j){return _getPrototypeOf$7=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$7(j)}function _defineProperty$r(j,_e,et){return _e=_toPropertyKey$s(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$s(j){var _e=_toPrimitive$s(j,"string");return _typeof$s(_e)==="symbol"?_e:String(_e)}function _toPrimitive$s(j,_e){if(_typeof$s(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$s(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var EPSILON=1,TooltipBoundingBox=function(j){_inherits$7(et,j);var _e=_createSuper$7(et);function et(){var tt;_classCallCheck$a(this,et);for(var rt=arguments.length,nt=new Array(rt),ot=0;otEPSILON||Math.abs(rt.height-this.lastBoundingBox.height)>EPSILON)&&(this.lastBoundingBox.width=rt.width,this.lastBoundingBox.height=rt.height)}else(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1)}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var rt,nt;this.props.active&&this.updateBBox(),this.state.dismissed&&(((rt=this.props.coordinate)===null||rt===void 0?void 0:rt.x)!==this.state.dismissedAtCoordinate.x||((nt=this.props.coordinate)===null||nt===void 0?void 0:nt.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var rt=this,nt=this.props,ot=nt.active,it=nt.allowEscapeViewBox,st=nt.animationDuration,lt=nt.animationEasing,ut=nt.children,ct=nt.coordinate,dt=nt.hasPayload,ft=nt.isAnimationActive,pt=nt.offset,gt=nt.position,vt=nt.reverseDirection,bt=nt.useTranslate3d,_t=nt.viewBox,xt=nt.wrapperStyle,yt=getTooltipTranslate({allowEscapeViewBox:it,coordinate:ct,offsetTopLeft:pt,position:gt,reverseDirection:vt,tooltipBox:{height:this.lastBoundingBox.height,width:this.lastBoundingBox.width},useTranslate3d:bt,viewBox:_t}),Et=yt.cssClasses,St=yt.cssProperties,$t=_objectSpread$q(_objectSpread$q(_objectSpread$q({},ft&&ot&&translateStyle({transition:"transform ".concat(st,"ms ").concat(lt)})),St),{},{pointerEvents:"none",visibility:!this.state.dismissed&&ot&&dt?"visible":"hidden",position:"absolute",top:0,left:0},xt);return React.createElement("div",{tabIndex:-1,role:"dialog",className:Et,style:$t,ref:function(wt){rt.wrapperNode=wt}},ut)}}]),et}(reactExports.PureComponent),parseIsSsrByDefault=function j(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Global={isSsr:parseIsSsrByDefault(),get:function j(_e){return Global[_e]},set:function j(_e,et){if(typeof _e=="string")Global[_e]=et;else{var tt=Object.keys(_e);tt&&tt.length&&tt.forEach(function(rt){Global[rt]=_e[rt]})}}};function _typeof$r(j){"@babel/helpers - typeof";return _typeof$r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$r(j)}function ownKeys$p(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$p(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$6(j){return _getPrototypeOf$6=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$6(j)}function _defineProperty$q(j,_e,et){return _e=_toPropertyKey$r(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$r(j){var _e=_toPrimitive$r(j,"string");return _typeof$r(_e)==="symbol"?_e:String(_e)}function _toPrimitive$r(j,_e){if(_typeof$r(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$r(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}function defaultUniqBy(j){return j.dataKey}function renderContent(j,_e){return React.isValidElement(j)?React.cloneElement(j,_e):typeof j=="function"?React.createElement(j,_e):React.createElement(DefaultTooltipContent,_e)}var Tooltip=function(j){_inherits$6(et,j);var _e=_createSuper$6(et);function et(){return _classCallCheck$9(this,et),_e.apply(this,arguments)}return _createClass$9(et,[{key:"render",value:function(){var rt=this.props,nt=rt.active,ot=rt.allowEscapeViewBox,it=rt.animationDuration,st=rt.animationEasing,lt=rt.content,ut=rt.coordinate,ct=rt.filterNull,dt=rt.isAnimationActive,ft=rt.offset,pt=rt.payload,gt=rt.payloadUniqBy,vt=rt.position,bt=rt.reverseDirection,_t=rt.useTranslate3d,xt=rt.viewBox,yt=rt.wrapperStyle,Et=pt??[];ct&&Et.length&&(Et=getUniqPayload(pt.filter(function($t){return $t.value!=null}),gt,defaultUniqBy));var St=Et.length>0;return React.createElement(TooltipBoundingBox,{allowEscapeViewBox:ot,animationDuration:it,animationEasing:st,isAnimationActive:dt,active:nt,coordinate:ut,hasPayload:St,offset:ft,position:vt,reverseDirection:bt,useTranslate3d:_t,viewBox:xt,wrapperStyle:yt},renderContent(lt,_objectSpread$p(_objectSpread$p({},this.props),{},{payload:Et})))}}]),et}(reactExports.PureComponent);_defineProperty$q(Tooltip,"displayName","Tooltip");_defineProperty$q(Tooltip,"defaultProps",{allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Global.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var isObject$1=isObject_1,now=now_1,toNumber=toNumber_1,FUNC_ERROR_TEXT$1="Expected a function",nativeMax=Math.max,nativeMin=Math.min;function debounce$1(j,_e,et){var tt,rt,nt,ot,it,st,lt=0,ut=!1,ct=!1,dt=!0;if(typeof j!="function")throw new TypeError(FUNC_ERROR_TEXT$1);_e=toNumber(_e)||0,isObject$1(et)&&(ut=!!et.leading,ct="maxWait"in et,nt=ct?nativeMax(toNumber(et.maxWait)||0,_e):nt,dt="trailing"in et?!!et.trailing:dt);function ft(St){var $t=tt,At=rt;return tt=rt=void 0,lt=St,ot=j.apply(At,$t),ot}function pt(St){return lt=St,it=setTimeout(bt,_e),ut?ft(St):ot}function gt(St){var $t=St-st,At=St-lt,wt=_e-$t;return ct?nativeMin(wt,nt-At):wt}function vt(St){var $t=St-st,At=St-lt;return st===void 0||$t>=_e||$t<0||ct&&At>=nt}function bt(){var St=now();if(vt(St))return _t(St);it=setTimeout(bt,gt(St))}function _t(St){return it=void 0,dt&&tt?ft(St):(tt=rt=void 0,ot)}function xt(){it!==void 0&&clearTimeout(it),lt=0,tt=st=rt=it=void 0}function yt(){return it===void 0?ot:_t(now())}function Et(){var St=now(),$t=vt(St);if(tt=arguments,rt=this,st=St,$t){if(it===void 0)return pt(st);if(ct)return clearTimeout(it),it=setTimeout(bt,_e),ft(st)}return it===void 0&&(it=setTimeout(bt,_e)),ot}return Et.cancel=xt,Et.flush=yt,Et}var debounce_1=debounce$1,debounce=debounce_1,isObject=isObject_1,FUNC_ERROR_TEXT="Expected a function";function throttle(j,_e,et){var tt=!0,rt=!0;if(typeof j!="function")throw new TypeError(FUNC_ERROR_TEXT);return isObject(et)&&(tt="leading"in et?!!et.leading:tt,rt="trailing"in et?!!et.trailing:rt),debounce(j,_e,{leading:tt,maxWait:_e,trailing:rt})}var throttle_1=throttle;const throttle$1=getDefaultExportFromCjs(throttle_1);var Cell=function j(_e){return null};Cell.displayName="Cell";function _typeof$q(j){"@babel/helpers - typeof";return _typeof$q=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$q(j)}function ownKeys$o(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$o(j){for(var _e=1;_e1&&arguments[1]!==void 0?arguments[1]:{};if(_e==null||Global.isSsr)return{width:0,height:0};var tt=removeInvalidKeys(et),rt=JSON.stringify({text:_e,copyStyle:tt});if(stringCache.widthCache[rt])return stringCache.widthCache[rt];try{var nt=document.getElementById(MEASUREMENT_SPAN_ID);nt||(nt=document.createElement("span"),nt.setAttribute("id",MEASUREMENT_SPAN_ID),nt.setAttribute("aria-hidden","true"),document.body.appendChild(nt));var ot=_objectSpread$o(_objectSpread$o({},SPAN_STYLE),tt);Object.assign(nt.style,ot),nt.textContent="".concat(_e);var it=nt.getBoundingClientRect(),st={width:it.width,height:it.height};return stringCache.widthCache[rt]=st,++stringCache.cacheCount>MAX_CACHE_NUM&&(stringCache.cacheCount=0,stringCache.widthCache={}),st}catch{return{width:0,height:0}}},getOffset=function j(_e){return{top:_e.top+window.scrollY-document.documentElement.clientTop,left:_e.left+window.scrollX-document.documentElement.clientLeft}};function _typeof$p(j){"@babel/helpers - typeof";return _typeof$p=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$p(j)}function _slicedToArray$8(j,_e){return _arrayWithHoles$8(j)||_iterableToArrayLimit$8(j,_e)||_unsupportedIterableToArray$e(j,_e)||_nonIterableRest$8()}function _nonIterableRest$8(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$e(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$e(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$e(j,_e)}}function _arrayLikeToArray$e(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$8(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$8(j){if(Array.isArray(j))return j}function _classCallCheck$8(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$8(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey$p(tt.key),tt)}}function _createClass$8(j,_e,et){return _e&&_defineProperties$8(j.prototype,_e),et&&_defineProperties$8(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _toPropertyKey$p(j){var _e=_toPrimitive$p(j,"string");return _typeof$p(_e)==="symbol"?_e:String(_e)}function _toPrimitive$p(j,_e){if(_typeof$p(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$p(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var MULTIPLY_OR_DIVIDE_REGEX=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,ADD_OR_SUBTRACT_REGEX=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,CSS_LENGTH_UNIT_REGEX=/^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/,NUM_SPLIT_REGEX=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,CONVERSION_RATES={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},FIXED_CSS_LENGTH_UNITS=Object.keys(CONVERSION_RATES),STR_NAN="NaN";function convertToPx(j,_e){return j*CONVERSION_RATES[_e]}var DecimalCSS=function(){function j(_e,et){_classCallCheck$8(this,j),this.num=_e,this.unit=et,this.num=_e,this.unit=et,Number.isNaN(_e)&&(this.unit=""),et!==""&&!CSS_LENGTH_UNIT_REGEX.test(et)&&(this.num=NaN,this.unit=""),FIXED_CSS_LENGTH_UNITS.includes(et)&&(this.num=convertToPx(_e,et),this.unit="px")}return _createClass$8(j,[{key:"add",value:function(et){return this.unit!==et.unit?new j(NaN,""):new j(this.num+et.num,this.unit)}},{key:"subtract",value:function(et){return this.unit!==et.unit?new j(NaN,""):new j(this.num-et.num,this.unit)}},{key:"multiply",value:function(et){return this.unit!==""&&et.unit!==""&&this.unit!==et.unit?new j(NaN,""):new j(this.num*et.num,this.unit||et.unit)}},{key:"divide",value:function(et){return this.unit!==""&&et.unit!==""&&this.unit!==et.unit?new j(NaN,""):new j(this.num/et.num,this.unit||et.unit)}},{key:"toString",value:function(){return"".concat(this.num).concat(this.unit)}},{key:"isNaN",value:function(){return Number.isNaN(this.num)}}],[{key:"parse",value:function(et){var tt,rt=(tt=NUM_SPLIT_REGEX.exec(et))!==null&&tt!==void 0?tt:[],nt=_slicedToArray$8(rt,3),ot=nt[1],it=nt[2];return new j(parseFloat(ot),it??"")}}]),j}();function calculateArithmetic(j){if(j.includes(STR_NAN))return STR_NAN;for(var _e=j;_e.includes("*")||_e.includes("/");){var et,tt=(et=MULTIPLY_OR_DIVIDE_REGEX.exec(_e))!==null&&et!==void 0?et:[],rt=_slicedToArray$8(tt,4),nt=rt[1],ot=rt[2],it=rt[3],st=DecimalCSS.parse(nt??""),lt=DecimalCSS.parse(it??""),ut=ot==="*"?st.multiply(lt):st.divide(lt);if(ut.isNaN())return STR_NAN;_e=_e.replace(MULTIPLY_OR_DIVIDE_REGEX,ut.toString())}for(;_e.includes("+")||/.-\d+(?:\.\d+)?/.test(_e);){var ct,dt=(ct=ADD_OR_SUBTRACT_REGEX.exec(_e))!==null&&ct!==void 0?ct:[],ft=_slicedToArray$8(dt,4),pt=ft[1],gt=ft[2],vt=ft[3],bt=DecimalCSS.parse(pt??""),_t=DecimalCSS.parse(vt??""),xt=gt==="+"?bt.add(_t):bt.subtract(_t);if(xt.isNaN())return STR_NAN;_e=_e.replace(ADD_OR_SUBTRACT_REGEX,xt.toString())}return _e}var PARENTHESES_REGEX=/\(([^()]*)\)/;function calculateParentheses(j){for(var _e=j;_e.includes("(");){var et=PARENTHESES_REGEX.exec(_e),tt=_slicedToArray$8(et,2),rt=tt[1];_e=_e.replace(PARENTHESES_REGEX,calculateArithmetic(rt))}return _e}function evaluateExpression(j){var _e=j.replace(/\s+/g,"");return _e=calculateParentheses(_e),_e=calculateArithmetic(_e),_e}function safeEvaluateExpression(j){try{return evaluateExpression(j)}catch{return STR_NAN}}function reduceCSSCalc(j){var _e=safeEvaluateExpression(j.slice(5,-1));return _e===STR_NAN?"":_e}var _excluded$9=["x","y","lineHeight","capHeight","scaleToFit","textAnchor","verticalAnchor","fill"],_excluded2$4=["dx","dy","angle","className","breakAll"];function _extends$j(){return _extends$j=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$9(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _slicedToArray$7(j,_e){return _arrayWithHoles$7(j)||_iterableToArrayLimit$7(j,_e)||_unsupportedIterableToArray$d(j,_e)||_nonIterableRest$7()}function _nonIterableRest$7(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$d(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$d(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$d(j,_e)}}function _arrayLikeToArray$d(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$7(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$7(j){if(Array.isArray(j))return j}var BREAKING_SPACES=/[ \f\n\r\t\v\u2028\u2029]+/,calculateWordWidths=function j(_e){var et=_e.children,tt=_e.breakAll,rt=_e.style;try{var nt=[];isNil$1(et)||(tt?nt=et.toString().split(""):nt=et.toString().split(BREAKING_SPACES));var ot=nt.map(function(st){return{word:st,width:getStringSize(st,rt).width}}),it=tt?0:getStringSize(" ",rt).width;return{wordsWithComputedWidth:ot,spaceWidth:it}}catch{return null}},calculateWordsByLines=function j(_e,et,tt,rt,nt){var ot=_e.maxLines,it=_e.children,st=_e.style,lt=_e.breakAll,ut=isNumber(ot),ct=it,dt=function(){var Mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return Mt.reduce(function(Rt,Lt){var jt=Lt.word,Gt=Lt.width,Vt=Rt[Rt.length-1];if(Vt&&(rt==null||nt||Vt.width+Gt+ttLt.width?Rt:Lt})};if(!ut)return ft;for(var gt="…",vt=function(Mt){var Rt=ct.slice(0,Mt),Lt=calculateWordWidths({breakAll:lt,style:st,children:Rt+gt}).wordsWithComputedWidth,jt=dt(Lt),Gt=jt.length>ot||pt(jt).width>Number(rt);return[Gt,jt]},bt=0,_t=ct.length-1,xt=0,yt;bt<=_t&&xt<=ct.length-1;){var Et=Math.floor((bt+_t)/2),St=Et-1,$t=vt(St),At=_slicedToArray$7($t,2),wt=At[0],Ct=At[1],It=vt(Et),Ot=_slicedToArray$7(It,1),Nt=Ot[0];if(!wt&&!Nt&&(bt=Et+1),wt&&Nt&&(_t=Et-1),!wt&&Nt){yt=Ct;break}xt++}return yt||ft},getWordsWithoutCalculate=function j(_e){var et=isNil$1(_e)?[]:_e.toString().split(BREAKING_SPACES);return[{words:et}]},getWordsByLines=function j(_e){var et=_e.width,tt=_e.scaleToFit,rt=_e.children,nt=_e.style,ot=_e.breakAll,it=_e.maxLines;if((et||tt)&&!Global.isSsr){var st,lt,ut=calculateWordWidths({breakAll:ot,children:rt,style:nt});if(ut){var ct=ut.wordsWithComputedWidth,dt=ut.spaceWidth;st=ct,lt=dt}else return getWordsWithoutCalculate(rt);return calculateWordsByLines({breakAll:ot,children:rt,maxLines:it,style:nt},st,lt,et,tt)}return getWordsWithoutCalculate(rt)},DEFAULT_FILL="#808080",Text$1=function j(_e){var et=_e.x,tt=et===void 0?0:et,rt=_e.y,nt=rt===void 0?0:rt,ot=_e.lineHeight,it=ot===void 0?"1em":ot,st=_e.capHeight,lt=st===void 0?"0.71em":st,ut=_e.scaleToFit,ct=ut===void 0?!1:ut,dt=_e.textAnchor,ft=dt===void 0?"start":dt,pt=_e.verticalAnchor,gt=pt===void 0?"end":pt,vt=_e.fill,bt=vt===void 0?DEFAULT_FILL:vt,_t=_objectWithoutProperties$9(_e,_excluded$9),xt=reactExports.useMemo(function(){return getWordsByLines({breakAll:_t.breakAll,children:_t.children,maxLines:_t.maxLines,scaleToFit:ct,style:_t.style,width:_t.width})},[_t.breakAll,_t.children,_t.maxLines,ct,_t.style,_t.width]),yt=_t.dx,Et=_t.dy,St=_t.angle,$t=_t.className,At=_t.breakAll,wt=_objectWithoutProperties$9(_t,_excluded2$4);if(!isNumOrStr(tt)||!isNumOrStr(nt))return null;var Ct=tt+(isNumber(yt)?yt:0),It=nt+(isNumber(Et)?Et:0),Ot;switch(gt){case"start":Ot=reduceCSSCalc("calc(".concat(lt,")"));break;case"middle":Ot=reduceCSSCalc("calc(".concat((xt.length-1)/2," * -").concat(it," + (").concat(lt," / 2))"));break;default:Ot=reduceCSSCalc("calc(".concat(xt.length-1," * -").concat(it,")"));break}var Nt=[];if(ct){var Pt=xt[0].width,Mt=_t.width;Nt.push("scale(".concat((isNumber(Mt)?Mt/Pt:1)/Pt,")"))}return St&&Nt.push("rotate(".concat(St,", ").concat(Ct,", ").concat(It,")")),Nt.length&&(wt.transform=Nt.join(" ")),React.createElement("text",_extends$j({},filterProps(wt,!0),{x:Ct,y:It,className:clsx("recharts-text",$t),textAnchor:ft,fill:bt.includes("url")?DEFAULT_FILL:bt}),xt.map(function(Rt,Lt){var jt=Rt.words.join(At?"":" ");return React.createElement("tspan",{x:Ct,dy:Lt===0?Ot:it,key:jt},jt)}))};function ascending(j,_e){return j==null||_e==null?NaN:j<_e?-1:j>_e?1:j>=_e?0:NaN}function descending(j,_e){return j==null||_e==null?NaN:_ej?1:_e>=j?0:NaN}function bisector(j){let _e,et,tt;j.length!==2?(_e=ascending,et=(it,st)=>ascending(j(it),st),tt=(it,st)=>j(it)-st):(_e=j===ascending||j===descending?j:zero$1,et=j,tt=j);function rt(it,st,lt=0,ut=it.length){if(lt>>1;et(it[ct],st)<0?lt=ct+1:ut=ct}while(lt>>1;et(it[ct],st)<=0?lt=ct+1:ut=ct}while(ltlt&&tt(it[ct-1],st)>-tt(it[ct],st)?ct-1:ct}return{left:rt,center:ot,right:nt}}function zero$1(){return 0}function number$2(j){return j===null?NaN:+j}function*numbers(j,_e){if(_e===void 0)for(let et of j)et!=null&&(et=+et)>=et&&(yield et);else{let et=-1;for(let tt of j)(tt=_e(tt,++et,j))!=null&&(tt=+tt)>=tt&&(yield tt)}}const ascendingBisect=bisector(ascending),bisectRight=ascendingBisect.right;bisector(number$2).center;const bisect=bisectRight;class InternMap extends Map{constructor(_e,et=keyof){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:et}}),_e!=null)for(const[tt,rt]of _e)this.set(tt,rt)}get(_e){return super.get(intern_get(this,_e))}has(_e){return super.has(intern_get(this,_e))}set(_e,et){return super.set(intern_set(this,_e),et)}delete(_e){return super.delete(intern_delete(this,_e))}}function intern_get({_intern:j,_key:_e},et){const tt=_e(et);return j.has(tt)?j.get(tt):et}function intern_set({_intern:j,_key:_e},et){const tt=_e(et);return j.has(tt)?j.get(tt):(j.set(tt,et),et)}function intern_delete({_intern:j,_key:_e},et){const tt=_e(et);return j.has(tt)&&(et=j.get(tt),j.delete(tt)),et}function keyof(j){return j!==null&&typeof j=="object"?j.valueOf():j}function compareDefined(j=ascending){if(j===ascending)return ascendingDefined;if(typeof j!="function")throw new TypeError("compare is not a function");return(_e,et)=>{const tt=j(_e,et);return tt||tt===0?tt:(j(et,et)===0)-(j(_e,_e)===0)}}function ascendingDefined(j,_e){return(j==null||!(j>=j))-(_e==null||!(_e>=_e))||(j<_e?-1:j>_e?1:0)}const e10=Math.sqrt(50),e5=Math.sqrt(10),e2=Math.sqrt(2);function tickSpec(j,_e,et){const tt=(_e-j)/Math.max(0,et),rt=Math.floor(Math.log10(tt)),nt=tt/Math.pow(10,rt),ot=nt>=e10?10:nt>=e5?5:nt>=e2?2:1;let it,st,lt;return rt<0?(lt=Math.pow(10,-rt)/ot,it=Math.round(j*lt),st=Math.round(_e*lt),it/lt_e&&--st,lt=-lt):(lt=Math.pow(10,rt)*ot,it=Math.round(j/lt),st=Math.round(_e/lt),it*lt_e&&--st),st0))return[];if(j===_e)return[j];const tt=_e=rt))return[];const it=nt-rt+1,st=new Array(it);if(tt)if(ot<0)for(let lt=0;lt=tt)&&(et=tt);else{let tt=-1;for(let rt of j)(rt=_e(rt,++tt,j))!=null&&(et=rt)&&(et=rt)}return et}function min(j,_e){let et;if(_e===void 0)for(const tt of j)tt!=null&&(et>tt||et===void 0&&tt>=tt)&&(et=tt);else{let tt=-1;for(let rt of j)(rt=_e(rt,++tt,j))!=null&&(et>rt||et===void 0&&rt>=rt)&&(et=rt)}return et}function quickselect(j,_e,et=0,tt=1/0,rt){if(_e=Math.floor(_e),et=Math.floor(Math.max(0,et)),tt=Math.floor(Math.min(j.length-1,tt)),!(et<=_e&&_e<=tt))return j;for(rt=rt===void 0?ascendingDefined:compareDefined(rt);tt>et;){if(tt-et>600){const st=tt-et+1,lt=_e-et+1,ut=Math.log(st),ct=.5*Math.exp(2*ut/3),dt=.5*Math.sqrt(ut*ct*(st-ct)/st)*(lt-st/2<0?-1:1),ft=Math.max(et,Math.floor(_e-lt*ct/st+dt)),pt=Math.min(tt,Math.floor(_e+(st-lt)*ct/st+dt));quickselect(j,_e,ft,pt,rt)}const nt=j[_e];let ot=et,it=tt;for(swap(j,et,_e),rt(j[tt],nt)>0&&swap(j,et,tt);ot0;)--it}rt(j[et],nt)===0?swap(j,et,it):(++it,swap(j,it,tt)),it<=_e&&(et=it+1),_e<=it&&(tt=it-1)}return j}function swap(j,_e,et){const tt=j[_e];j[_e]=j[et],j[et]=tt}function quantile$1(j,_e,et){if(j=Float64Array.from(numbers(j,et)),!(!(tt=j.length)||isNaN(_e=+_e))){if(_e<=0||tt<2)return min(j);if(_e>=1)return max(j);var tt,rt=(tt-1)*_e,nt=Math.floor(rt),ot=max(quickselect(j,nt).subarray(0,nt+1)),it=min(j.subarray(nt+1));return ot+(it-ot)*(rt-nt)}}function quantileSorted(j,_e,et=number$2){if(!(!(tt=j.length)||isNaN(_e=+_e))){if(_e<=0||tt<2)return+et(j[0],0,j);if(_e>=1)return+et(j[tt-1],tt-1,j);var tt,rt=(tt-1)*_e,nt=Math.floor(rt),ot=+et(j[nt],nt,j),it=+et(j[nt+1],nt+1,j);return ot+(it-ot)*(rt-nt)}}function range$1(j,_e,et){j=+j,_e=+_e,et=(rt=arguments.length)<2?(_e=j,j=0,1):rt<3?1:+et;for(var tt=-1,rt=Math.max(0,Math.ceil((_e-j)/et))|0,nt=new Array(rt);++tt>8&15|_e>>4&240,_e>>4&15|_e&240,(_e&15)<<4|_e&15,1):et===8?rgba(_e>>24&255,_e>>16&255,_e>>8&255,(_e&255)/255):et===4?rgba(_e>>12&15|_e>>8&240,_e>>8&15|_e>>4&240,_e>>4&15|_e&240,((_e&15)<<4|_e&15)/255):null):(_e=reRgbInteger.exec(j))?new Rgb(_e[1],_e[2],_e[3],1):(_e=reRgbPercent.exec(j))?new Rgb(_e[1]*255/100,_e[2]*255/100,_e[3]*255/100,1):(_e=reRgbaInteger.exec(j))?rgba(_e[1],_e[2],_e[3],_e[4]):(_e=reRgbaPercent.exec(j))?rgba(_e[1]*255/100,_e[2]*255/100,_e[3]*255/100,_e[4]):(_e=reHslPercent.exec(j))?hsla(_e[1],_e[2]/100,_e[3]/100,1):(_e=reHslaPercent.exec(j))?hsla(_e[1],_e[2]/100,_e[3]/100,_e[4]):named.hasOwnProperty(j)?rgbn(named[j]):j==="transparent"?new Rgb(NaN,NaN,NaN,0):null}function rgbn(j){return new Rgb(j>>16&255,j>>8&255,j&255,1)}function rgba(j,_e,et,tt){return tt<=0&&(j=_e=et=NaN),new Rgb(j,_e,et,tt)}function rgbConvert(j){return j instanceof Color||(j=color(j)),j?(j=j.rgb(),new Rgb(j.r,j.g,j.b,j.opacity)):new Rgb}function rgb$1(j,_e,et,tt){return arguments.length===1?rgbConvert(j):new Rgb(j,_e,et,tt??1)}function Rgb(j,_e,et,tt){this.r=+j,this.g=+_e,this.b=+et,this.opacity=+tt}define(Rgb,rgb$1,extend(Color,{brighter(j){return j=j==null?brighter:Math.pow(brighter,j),new Rgb(this.r*j,this.g*j,this.b*j,this.opacity)},darker(j){return j=j==null?darker:Math.pow(darker,j),new Rgb(this.r*j,this.g*j,this.b*j,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb}));function rgb_formatHex(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}`}function rgb_formatHex8(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb(){const j=clampa(this.opacity);return`${j===1?"rgb(":"rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${j===1?")":`, ${j})`}`}function clampa(j){return isNaN(j)?1:Math.max(0,Math.min(1,j))}function clampi(j){return Math.max(0,Math.min(255,Math.round(j)||0))}function hex(j){return j=clampi(j),(j<16?"0":"")+j.toString(16)}function hsla(j,_e,et,tt){return tt<=0?j=_e=et=NaN:et<=0||et>=1?j=_e=NaN:_e<=0&&(j=NaN),new Hsl(j,_e,et,tt)}function hslConvert(j){if(j instanceof Hsl)return new Hsl(j.h,j.s,j.l,j.opacity);if(j instanceof Color||(j=color(j)),!j)return new Hsl;if(j instanceof Hsl)return j;j=j.rgb();var _e=j.r/255,et=j.g/255,tt=j.b/255,rt=Math.min(_e,et,tt),nt=Math.max(_e,et,tt),ot=NaN,it=nt-rt,st=(nt+rt)/2;return it?(_e===nt?ot=(et-tt)/it+(et0&&st<1?0:ot,new Hsl(ot,it,st,j.opacity)}function hsl(j,_e,et,tt){return arguments.length===1?hslConvert(j):new Hsl(j,_e,et,tt??1)}function Hsl(j,_e,et,tt){this.h=+j,this.s=+_e,this.l=+et,this.opacity=+tt}define(Hsl,hsl,extend(Color,{brighter(j){return j=j==null?brighter:Math.pow(brighter,j),new Hsl(this.h,this.s,this.l*j,this.opacity)},darker(j){return j=j==null?darker:Math.pow(darker,j),new Hsl(this.h,this.s,this.l*j,this.opacity)},rgb(){var j=this.h%360+(this.h<0)*360,_e=isNaN(j)||isNaN(this.s)?0:this.s,et=this.l,tt=et+(et<.5?et:1-et)*_e,rt=2*et-tt;return new Rgb(hsl2rgb(j>=240?j-240:j+120,rt,tt),hsl2rgb(j,rt,tt),hsl2rgb(j<120?j+240:j-120,rt,tt),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const j=clampa(this.opacity);return`${j===1?"hsl(":"hsla("}${clamph(this.h)}, ${clampt(this.s)*100}%, ${clampt(this.l)*100}%${j===1?")":`, ${j})`}`}}));function clamph(j){return j=(j||0)%360,j<0?j+360:j}function clampt(j){return Math.max(0,Math.min(1,j||0))}function hsl2rgb(j,_e,et){return(j<60?_e+(et-_e)*j/60:j<180?et:j<240?_e+(et-_e)*(240-j)/60:_e)*255}const constant=j=>()=>j;function linear$1(j,_e){return function(et){return j+et*_e}}function exponential(j,_e,et){return j=Math.pow(j,et),_e=Math.pow(_e,et)-j,et=1/et,function(tt){return Math.pow(j+tt*_e,et)}}function gamma(j){return(j=+j)==1?nogamma:function(_e,et){return et-_e?exponential(_e,et,j):constant(isNaN(_e)?et:_e)}}function nogamma(j,_e){var et=_e-j;return et?linear$1(j,et):constant(isNaN(j)?_e:j)}const rgb=function j(_e){var et=gamma(_e);function tt(rt,nt){var ot=et((rt=rgb$1(rt)).r,(nt=rgb$1(nt)).r),it=et(rt.g,nt.g),st=et(rt.b,nt.b),lt=nogamma(rt.opacity,nt.opacity);return function(ut){return rt.r=ot(ut),rt.g=it(ut),rt.b=st(ut),rt.opacity=lt(ut),rt+""}}return tt.gamma=j,tt}(1);function numberArray(j,_e){_e||(_e=[]);var et=j?Math.min(_e.length,j.length):0,tt=_e.slice(),rt;return function(nt){for(rt=0;rtet&&(nt=_e.slice(et,nt),it[ot]?it[ot]+=nt:it[++ot]=nt),(tt=tt[0])===(rt=rt[0])?it[ot]?it[ot]+=rt:it[++ot]=rt:(it[++ot]=null,st.push({i:ot,x:interpolateNumber$1(tt,rt)})),et=reB.lastIndex;return et<_e.length&&(nt=_e.slice(et),it[ot]?it[ot]+=nt:it[++ot]=nt),it.length<2?st[0]?one(st[0].x):zero(_e):(_e=st.length,function(lt){for(var ut=0,ct;ut<_e;++ut)it[(ct=st[ut]).i]=ct.x(lt);return it.join("")})}function interpolate(j,_e){var et=typeof _e,tt;return _e==null||et==="boolean"?constant(_e):(et==="number"?interpolateNumber$1:et==="string"?(tt=color(_e))?(_e=tt,rgb):string:_e instanceof color?rgb:_e instanceof Date?date$1:isNumberArray(_e)?numberArray:Array.isArray(_e)?genericArray:typeof _e.valueOf!="function"&&typeof _e.toString!="function"||isNaN(_e)?object:interpolateNumber$1)(j,_e)}function interpolateRound(j,_e){return j=+j,_e=+_e,function(et){return Math.round(j*(1-et)+_e*et)}}function piecewise(j,_e){_e===void 0&&(_e=j,j=interpolate);for(var et=0,tt=_e.length-1,rt=_e[0],nt=new Array(tt<0?0:tt);et_e&&(et=j,j=_e,_e=et),function(tt){return Math.max(j,Math.min(_e,tt))}}function bimap(j,_e,et){var tt=j[0],rt=j[1],nt=_e[0],ot=_e[1];return rt2?polymap:bimap,st=lt=null,ct}function ct(dt){return dt==null||isNaN(dt=+dt)?nt:(st||(st=it(j.map(tt),_e,et)))(tt(ot(dt)))}return ct.invert=function(dt){return ot(rt((lt||(lt=it(_e,j.map(tt),interpolateNumber$1)))(dt)))},ct.domain=function(dt){return arguments.length?(j=Array.from(dt,number$1),ut()):j.slice()},ct.range=function(dt){return arguments.length?(_e=Array.from(dt),ut()):_e.slice()},ct.rangeRound=function(dt){return _e=Array.from(dt),et=interpolateRound,ut()},ct.clamp=function(dt){return arguments.length?(ot=dt?!0:identity$2,ut()):ot!==identity$2},ct.interpolate=function(dt){return arguments.length?(et=dt,ut()):et},ct.unknown=function(dt){return arguments.length?(nt=dt,ct):nt},function(dt,ft){return tt=dt,rt=ft,ut()}}function continuous(){return transformer$2()(identity$2,identity$2)}function tickFormat(j,_e,et,tt){var rt=tickStep(j,_e,et),nt;switch(tt=formatSpecifier(tt??",f"),tt.type){case"s":{var ot=Math.max(Math.abs(j),Math.abs(_e));return tt.precision==null&&!isNaN(nt=precisionPrefix(rt,ot))&&(tt.precision=nt),formatPrefix(tt,ot)}case"":case"e":case"g":case"p":case"r":{tt.precision==null&&!isNaN(nt=precisionRound(rt,Math.max(Math.abs(j),Math.abs(_e))))&&(tt.precision=nt-(tt.type==="e"));break}case"f":case"%":{tt.precision==null&&!isNaN(nt=precisionFixed(rt))&&(tt.precision=nt-(tt.type==="%")*2);break}}return format$1(tt)}function linearish(j){var _e=j.domain;return j.ticks=function(et){var tt=_e();return ticks(tt[0],tt[tt.length-1],et??10)},j.tickFormat=function(et,tt){var rt=_e();return tickFormat(rt[0],rt[rt.length-1],et??10,tt)},j.nice=function(et){et==null&&(et=10);var tt=_e(),rt=0,nt=tt.length-1,ot=tt[rt],it=tt[nt],st,lt,ut=10;for(it0;){if(lt=tickIncrement(ot,it,et),lt===st)return tt[rt]=ot,tt[nt]=it,_e(tt);if(lt>0)ot=Math.floor(ot/lt)*lt,it=Math.ceil(it/lt)*lt;else if(lt<0)ot=Math.ceil(ot*lt)/lt,it=Math.floor(it*lt)/lt;else break;st=lt}return j},j}function linear(){var j=continuous();return j.copy=function(){return copy$1(j,linear())},initRange.apply(j,arguments),linearish(j)}function identity$1(j){var _e;function et(tt){return tt==null||isNaN(tt=+tt)?_e:tt}return et.invert=et,et.domain=et.range=function(tt){return arguments.length?(j=Array.from(tt,number$1),et):j.slice()},et.unknown=function(tt){return arguments.length?(_e=tt,et):_e},et.copy=function(){return identity$1(j).unknown(_e)},j=arguments.length?Array.from(j,number$1):[0,1],linearish(et)}function nice(j,_e){j=j.slice();var et=0,tt=j.length-1,rt=j[et],nt=j[tt],ot;return ntMath.pow(j,_e)}function logp(j){return j===Math.E?Math.log:j===10&&Math.log10||j===2&&Math.log2||(j=Math.log(j),_e=>Math.log(_e)/j)}function reflect(j){return(_e,et)=>-j(-_e,et)}function loggish(j){const _e=j(transformLog,transformExp),et=_e.domain;let tt=10,rt,nt;function ot(){return rt=logp(tt),nt=powp(tt),et()[0]<0?(rt=reflect(rt),nt=reflect(nt),j(transformLogn,transformExpn)):j(transformLog,transformExp),_e}return _e.base=function(it){return arguments.length?(tt=+it,ot()):tt},_e.domain=function(it){return arguments.length?(et(it),ot()):et()},_e.ticks=it=>{const st=et();let lt=st[0],ut=st[st.length-1];const ct=ut0){for(;dt<=ft;++dt)for(pt=1;ptut)break;bt.push(gt)}}else for(;dt<=ft;++dt)for(pt=tt-1;pt>=1;--pt)if(gt=dt>0?pt/nt(-dt):pt*nt(dt),!(gtut)break;bt.push(gt)}bt.length*2{if(it==null&&(it=10),st==null&&(st=tt===10?"s":","),typeof st!="function"&&(!(tt%1)&&(st=formatSpecifier(st)).precision==null&&(st.trim=!0),st=format$1(st)),it===1/0)return st;const lt=Math.max(1,tt*it/_e.ticks().length);return ut=>{let ct=ut/nt(Math.round(rt(ut)));return ct*ttet(nice(et(),{floor:it=>nt(Math.floor(rt(it))),ceil:it=>nt(Math.ceil(rt(it)))})),_e}function log(){const j=loggish(transformer$2()).domain([1,10]);return j.copy=()=>copy$1(j,log()).base(j.base()),initRange.apply(j,arguments),j}function transformSymlog(j){return function(_e){return Math.sign(_e)*Math.log1p(Math.abs(_e/j))}}function transformSymexp(j){return function(_e){return Math.sign(_e)*Math.expm1(Math.abs(_e))*j}}function symlogish(j){var _e=1,et=j(transformSymlog(_e),transformSymexp(_e));return et.constant=function(tt){return arguments.length?j(transformSymlog(_e=+tt),transformSymexp(_e)):_e},linearish(et)}function symlog(){var j=symlogish(transformer$2());return j.copy=function(){return copy$1(j,symlog()).constant(j.constant())},initRange.apply(j,arguments)}function transformPow(j){return function(_e){return _e<0?-Math.pow(-_e,j):Math.pow(_e,j)}}function transformSqrt(j){return j<0?-Math.sqrt(-j):Math.sqrt(j)}function transformSquare(j){return j<0?-j*j:j*j}function powish(j){var _e=j(identity$2,identity$2),et=1;function tt(){return et===1?j(identity$2,identity$2):et===.5?j(transformSqrt,transformSquare):j(transformPow(et),transformPow(1/et))}return _e.exponent=function(rt){return arguments.length?(et=+rt,tt()):et},linearish(_e)}function pow(){var j=powish(transformer$2());return j.copy=function(){return copy$1(j,pow()).exponent(j.exponent())},initRange.apply(j,arguments),j}function sqrt(){return pow.apply(null,arguments).exponent(.5)}function square(j){return Math.sign(j)*j*j}function unsquare(j){return Math.sign(j)*Math.sqrt(Math.abs(j))}function radial(){var j=continuous(),_e=[0,1],et=!1,tt;function rt(nt){var ot=unsquare(j(nt));return isNaN(ot)?tt:et?Math.round(ot):ot}return rt.invert=function(nt){return j.invert(square(nt))},rt.domain=function(nt){return arguments.length?(j.domain(nt),rt):j.domain()},rt.range=function(nt){return arguments.length?(j.range((_e=Array.from(nt,number$1)).map(square)),rt):_e.slice()},rt.rangeRound=function(nt){return rt.range(nt).round(!0)},rt.round=function(nt){return arguments.length?(et=!!nt,rt):et},rt.clamp=function(nt){return arguments.length?(j.clamp(nt),rt):j.clamp()},rt.unknown=function(nt){return arguments.length?(tt=nt,rt):tt},rt.copy=function(){return radial(j.domain(),_e).round(et).clamp(j.clamp()).unknown(tt)},initRange.apply(rt,arguments),linearish(rt)}function quantile(){var j=[],_e=[],et=[],tt;function rt(){var ot=0,it=Math.max(1,_e.length);for(et=new Array(it-1);++ot0?et[it-1]:j[0],it=et?[tt[et-1],_e]:[tt[lt-1],tt[lt]]},ot.unknown=function(st){return arguments.length&&(nt=st),ot},ot.thresholds=function(){return tt.slice()},ot.copy=function(){return quantize().domain([j,_e]).range(rt).unknown(nt)},initRange.apply(linearish(ot),arguments)}function threshold(){var j=[.5],_e=[0,1],et,tt=1;function rt(nt){return nt!=null&&nt<=nt?_e[bisect(j,nt,0,tt)]:et}return rt.domain=function(nt){return arguments.length?(j=Array.from(nt),tt=Math.min(j.length,_e.length-1),rt):j.slice()},rt.range=function(nt){return arguments.length?(_e=Array.from(nt),tt=Math.min(j.length,_e.length-1),rt):_e.slice()},rt.invertExtent=function(nt){var ot=_e.indexOf(nt);return[j[ot-1],j[ot]]},rt.unknown=function(nt){return arguments.length?(et=nt,rt):et},rt.copy=function(){return threshold().domain(j).range(_e).unknown(et)},initRange.apply(rt,arguments)}const t0=new Date,t1=new Date;function timeInterval(j,_e,et,tt){function rt(nt){return j(nt=arguments.length===0?new Date:new Date(+nt)),nt}return rt.floor=nt=>(j(nt=new Date(+nt)),nt),rt.ceil=nt=>(j(nt=new Date(nt-1)),_e(nt,1),j(nt),nt),rt.round=nt=>{const ot=rt(nt),it=rt.ceil(nt);return nt-ot(_e(nt=new Date(+nt),ot==null?1:Math.floor(ot)),nt),rt.range=(nt,ot,it)=>{const st=[];if(nt=rt.ceil(nt),it=it==null?1:Math.floor(it),!(nt0))return st;let lt;do st.push(lt=new Date(+nt)),_e(nt,it),j(nt);while(lttimeInterval(ot=>{if(ot>=ot)for(;j(ot),!nt(ot);)ot.setTime(ot-1)},(ot,it)=>{if(ot>=ot)if(it<0)for(;++it<=0;)for(;_e(ot,-1),!nt(ot););else for(;--it>=0;)for(;_e(ot,1),!nt(ot););}),et&&(rt.count=(nt,ot)=>(t0.setTime(+nt),t1.setTime(+ot),j(t0),j(t1),Math.floor(et(t0,t1))),rt.every=nt=>(nt=Math.floor(nt),!isFinite(nt)||!(nt>0)?null:nt>1?rt.filter(tt?ot=>tt(ot)%nt===0:ot=>rt.count(0,ot)%nt===0):rt)),rt}const millisecond=timeInterval(()=>{},(j,_e)=>{j.setTime(+j+_e)},(j,_e)=>_e-j);millisecond.every=j=>(j=Math.floor(j),!isFinite(j)||!(j>0)?null:j>1?timeInterval(_e=>{_e.setTime(Math.floor(_e/j)*j)},(_e,et)=>{_e.setTime(+_e+et*j)},(_e,et)=>(et-_e)/j):millisecond);millisecond.range;const durationSecond=1e3,durationMinute=durationSecond*60,durationHour=durationMinute*60,durationDay=durationHour*24,durationWeek=durationDay*7,durationMonth=durationDay*30,durationYear=durationDay*365,second=timeInterval(j=>{j.setTime(j-j.getMilliseconds())},(j,_e)=>{j.setTime(+j+_e*durationSecond)},(j,_e)=>(_e-j)/durationSecond,j=>j.getUTCSeconds());second.range;const timeMinute=timeInterval(j=>{j.setTime(j-j.getMilliseconds()-j.getSeconds()*durationSecond)},(j,_e)=>{j.setTime(+j+_e*durationMinute)},(j,_e)=>(_e-j)/durationMinute,j=>j.getMinutes());timeMinute.range;const utcMinute=timeInterval(j=>{j.setUTCSeconds(0,0)},(j,_e)=>{j.setTime(+j+_e*durationMinute)},(j,_e)=>(_e-j)/durationMinute,j=>j.getUTCMinutes());utcMinute.range;const timeHour=timeInterval(j=>{j.setTime(j-j.getMilliseconds()-j.getSeconds()*durationSecond-j.getMinutes()*durationMinute)},(j,_e)=>{j.setTime(+j+_e*durationHour)},(j,_e)=>(_e-j)/durationHour,j=>j.getHours());timeHour.range;const utcHour=timeInterval(j=>{j.setUTCMinutes(0,0,0)},(j,_e)=>{j.setTime(+j+_e*durationHour)},(j,_e)=>(_e-j)/durationHour,j=>j.getUTCHours());utcHour.range;const timeDay=timeInterval(j=>j.setHours(0,0,0,0),(j,_e)=>j.setDate(j.getDate()+_e),(j,_e)=>(_e-j-(_e.getTimezoneOffset()-j.getTimezoneOffset())*durationMinute)/durationDay,j=>j.getDate()-1);timeDay.range;const utcDay=timeInterval(j=>{j.setUTCHours(0,0,0,0)},(j,_e)=>{j.setUTCDate(j.getUTCDate()+_e)},(j,_e)=>(_e-j)/durationDay,j=>j.getUTCDate()-1);utcDay.range;const unixDay=timeInterval(j=>{j.setUTCHours(0,0,0,0)},(j,_e)=>{j.setUTCDate(j.getUTCDate()+_e)},(j,_e)=>(_e-j)/durationDay,j=>Math.floor(j/durationDay));unixDay.range;function timeWeekday(j){return timeInterval(_e=>{_e.setDate(_e.getDate()-(_e.getDay()+7-j)%7),_e.setHours(0,0,0,0)},(_e,et)=>{_e.setDate(_e.getDate()+et*7)},(_e,et)=>(et-_e-(et.getTimezoneOffset()-_e.getTimezoneOffset())*durationMinute)/durationWeek)}const timeSunday=timeWeekday(0),timeMonday=timeWeekday(1),timeTuesday=timeWeekday(2),timeWednesday=timeWeekday(3),timeThursday=timeWeekday(4),timeFriday=timeWeekday(5),timeSaturday=timeWeekday(6);timeSunday.range;timeMonday.range;timeTuesday.range;timeWednesday.range;timeThursday.range;timeFriday.range;timeSaturday.range;function utcWeekday(j){return timeInterval(_e=>{_e.setUTCDate(_e.getUTCDate()-(_e.getUTCDay()+7-j)%7),_e.setUTCHours(0,0,0,0)},(_e,et)=>{_e.setUTCDate(_e.getUTCDate()+et*7)},(_e,et)=>(et-_e)/durationWeek)}const utcSunday=utcWeekday(0),utcMonday=utcWeekday(1),utcTuesday=utcWeekday(2),utcWednesday=utcWeekday(3),utcThursday=utcWeekday(4),utcFriday=utcWeekday(5),utcSaturday=utcWeekday(6);utcSunday.range;utcMonday.range;utcTuesday.range;utcWednesday.range;utcThursday.range;utcFriday.range;utcSaturday.range;const timeMonth=timeInterval(j=>{j.setDate(1),j.setHours(0,0,0,0)},(j,_e)=>{j.setMonth(j.getMonth()+_e)},(j,_e)=>_e.getMonth()-j.getMonth()+(_e.getFullYear()-j.getFullYear())*12,j=>j.getMonth());timeMonth.range;const utcMonth=timeInterval(j=>{j.setUTCDate(1),j.setUTCHours(0,0,0,0)},(j,_e)=>{j.setUTCMonth(j.getUTCMonth()+_e)},(j,_e)=>_e.getUTCMonth()-j.getUTCMonth()+(_e.getUTCFullYear()-j.getUTCFullYear())*12,j=>j.getUTCMonth());utcMonth.range;const timeYear=timeInterval(j=>{j.setMonth(0,1),j.setHours(0,0,0,0)},(j,_e)=>{j.setFullYear(j.getFullYear()+_e)},(j,_e)=>_e.getFullYear()-j.getFullYear(),j=>j.getFullYear());timeYear.every=j=>!isFinite(j=Math.floor(j))||!(j>0)?null:timeInterval(_e=>{_e.setFullYear(Math.floor(_e.getFullYear()/j)*j),_e.setMonth(0,1),_e.setHours(0,0,0,0)},(_e,et)=>{_e.setFullYear(_e.getFullYear()+et*j)});timeYear.range;const utcYear=timeInterval(j=>{j.setUTCMonth(0,1),j.setUTCHours(0,0,0,0)},(j,_e)=>{j.setUTCFullYear(j.getUTCFullYear()+_e)},(j,_e)=>_e.getUTCFullYear()-j.getUTCFullYear(),j=>j.getUTCFullYear());utcYear.every=j=>!isFinite(j=Math.floor(j))||!(j>0)?null:timeInterval(_e=>{_e.setUTCFullYear(Math.floor(_e.getUTCFullYear()/j)*j),_e.setUTCMonth(0,1),_e.setUTCHours(0,0,0,0)},(_e,et)=>{_e.setUTCFullYear(_e.getUTCFullYear()+et*j)});utcYear.range;function ticker(j,_e,et,tt,rt,nt){const ot=[[second,1,durationSecond],[second,5,5*durationSecond],[second,15,15*durationSecond],[second,30,30*durationSecond],[nt,1,durationMinute],[nt,5,5*durationMinute],[nt,15,15*durationMinute],[nt,30,30*durationMinute],[rt,1,durationHour],[rt,3,3*durationHour],[rt,6,6*durationHour],[rt,12,12*durationHour],[tt,1,durationDay],[tt,2,2*durationDay],[et,1,durationWeek],[_e,1,durationMonth],[_e,3,3*durationMonth],[j,1,durationYear]];function it(lt,ut,ct){const dt=utvt).right(ot,dt);if(ft===ot.length)return j.every(tickStep(lt/durationYear,ut/durationYear,ct));if(ft===0)return millisecond.every(Math.max(tickStep(lt,ut,ct),1));const[pt,gt]=ot[dt/ot[ft-1][2]53)return null;"w"in nr||(nr.w=1),"Z"in nr?(Ar=utcDate(newDate(nr.y,0,1)),Or=Ar.getUTCDay(),Ar=Or>4||Or===0?utcMonday.ceil(Ar):utcMonday(Ar),Ar=utcDay.offset(Ar,(nr.V-1)*7),nr.y=Ar.getUTCFullYear(),nr.m=Ar.getUTCMonth(),nr.d=Ar.getUTCDate()+(nr.w+6)%7):(Ar=localDate(newDate(nr.y,0,1)),Or=Ar.getDay(),Ar=Or>4||Or===0?timeMonday.ceil(Ar):timeMonday(Ar),Ar=timeDay.offset(Ar,(nr.V-1)*7),nr.y=Ar.getFullYear(),nr.m=Ar.getMonth(),nr.d=Ar.getDate()+(nr.w+6)%7)}else("W"in nr||"U"in nr)&&("w"in nr||(nr.w="u"in nr?nr.u%7:"W"in nr?1:0),Or="Z"in nr?utcDate(newDate(nr.y,0,1)).getUTCDay():localDate(newDate(nr.y,0,1)).getDay(),nr.m=0,nr.d="W"in nr?(nr.w+6)%7+nr.W*7-(Or+5)%7:nr.w+nr.U*7-(Or+6)%7);return"Z"in nr?(nr.H+=nr.Z/100|0,nr.M+=nr.Z%100,utcDate(nr)):localDate(nr)}}function At(qt,ir,hr,nr){for(var mr=0,Ar=ir.length,Or=hr.length,wr,Nr;mr=Or)return-1;if(wr=ir.charCodeAt(mr++),wr===37){if(wr=ir.charAt(mr++),Nr=Et[wr in pads?ir.charAt(mr++):wr],!Nr||(nr=Nr(qt,hr,nr))<0)return-1}else if(wr!=hr.charCodeAt(nr++))return-1}return nr}function wt(qt,ir,hr){var nr=lt.exec(ir.slice(hr));return nr?(qt.p=ut.get(nr[0].toLowerCase()),hr+nr[0].length):-1}function Ct(qt,ir,hr){var nr=ft.exec(ir.slice(hr));return nr?(qt.w=pt.get(nr[0].toLowerCase()),hr+nr[0].length):-1}function It(qt,ir,hr){var nr=ct.exec(ir.slice(hr));return nr?(qt.w=dt.get(nr[0].toLowerCase()),hr+nr[0].length):-1}function Ot(qt,ir,hr){var nr=bt.exec(ir.slice(hr));return nr?(qt.m=_t.get(nr[0].toLowerCase()),hr+nr[0].length):-1}function Nt(qt,ir,hr){var nr=gt.exec(ir.slice(hr));return nr?(qt.m=vt.get(nr[0].toLowerCase()),hr+nr[0].length):-1}function Pt(qt,ir,hr){return At(qt,_e,ir,hr)}function Mt(qt,ir,hr){return At(qt,et,ir,hr)}function Rt(qt,ir,hr){return At(qt,tt,ir,hr)}function Lt(qt){return ot[qt.getDay()]}function jt(qt){return nt[qt.getDay()]}function Gt(qt){return st[qt.getMonth()]}function Vt(qt){return it[qt.getMonth()]}function Yt(qt){return rt[+(qt.getHours()>=12)]}function Xt(qt){return 1+~~(qt.getMonth()/3)}function rr(qt){return ot[qt.getUTCDay()]}function cr(qt){return nt[qt.getUTCDay()]}function vr(qt){return st[qt.getUTCMonth()]}function Tr(qt){return it[qt.getUTCMonth()]}function gr(qt){return rt[+(qt.getUTCHours()>=12)]}function Er(qt){return 1+~~(qt.getUTCMonth()/3)}return{format:function(qt){var ir=St(qt+="",xt);return ir.toString=function(){return qt},ir},parse:function(qt){var ir=$t(qt+="",!1);return ir.toString=function(){return qt},ir},utcFormat:function(qt){var ir=St(qt+="",yt);return ir.toString=function(){return qt},ir},utcParse:function(qt){var ir=$t(qt+="",!0);return ir.toString=function(){return qt},ir}}}var pads={"-":"",_:" ",0:"0"},numberRe=/^\s*\d+/,percentRe=/^%/,requoteRe=/[\\^$*+?|[\]().{}]/g;function pad(j,_e,et){var tt=j<0?"-":"",rt=(tt?-j:j)+"",nt=rt.length;return tt+(nt[_e.toLowerCase(),et]))}function parseWeekdayNumberSunday(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+1));return tt?(j.w=+tt[0],et+tt[0].length):-1}function parseWeekdayNumberMonday(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+1));return tt?(j.u=+tt[0],et+tt[0].length):-1}function parseWeekNumberSunday(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.U=+tt[0],et+tt[0].length):-1}function parseWeekNumberISO(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.V=+tt[0],et+tt[0].length):-1}function parseWeekNumberMonday(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.W=+tt[0],et+tt[0].length):-1}function parseFullYear(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+4));return tt?(j.y=+tt[0],et+tt[0].length):-1}function parseYear(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.y=+tt[0]+(+tt[0]>68?1900:2e3),et+tt[0].length):-1}function parseZone(j,_e,et){var tt=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(_e.slice(et,et+6));return tt?(j.Z=tt[1]?0:-(tt[2]+(tt[3]||"00")),et+tt[0].length):-1}function parseQuarter(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+1));return tt?(j.q=tt[0]*3-3,et+tt[0].length):-1}function parseMonthNumber(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.m=tt[0]-1,et+tt[0].length):-1}function parseDayOfMonth(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.d=+tt[0],et+tt[0].length):-1}function parseDayOfYear(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+3));return tt?(j.m=0,j.d=+tt[0],et+tt[0].length):-1}function parseHour24(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.H=+tt[0],et+tt[0].length):-1}function parseMinutes(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.M=+tt[0],et+tt[0].length):-1}function parseSeconds(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.S=+tt[0],et+tt[0].length):-1}function parseMilliseconds(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+3));return tt?(j.L=+tt[0],et+tt[0].length):-1}function parseMicroseconds(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+6));return tt?(j.L=Math.floor(tt[0]/1e3),et+tt[0].length):-1}function parseLiteralPercent(j,_e,et){var tt=percentRe.exec(_e.slice(et,et+1));return tt?et+tt[0].length:-1}function parseUnixTimestamp(j,_e,et){var tt=numberRe.exec(_e.slice(et));return tt?(j.Q=+tt[0],et+tt[0].length):-1}function parseUnixTimestampSeconds(j,_e,et){var tt=numberRe.exec(_e.slice(et));return tt?(j.s=+tt[0],et+tt[0].length):-1}function formatDayOfMonth(j,_e){return pad(j.getDate(),_e,2)}function formatHour24(j,_e){return pad(j.getHours(),_e,2)}function formatHour12(j,_e){return pad(j.getHours()%12||12,_e,2)}function formatDayOfYear(j,_e){return pad(1+timeDay.count(timeYear(j),j),_e,3)}function formatMilliseconds(j,_e){return pad(j.getMilliseconds(),_e,3)}function formatMicroseconds(j,_e){return formatMilliseconds(j,_e)+"000"}function formatMonthNumber(j,_e){return pad(j.getMonth()+1,_e,2)}function formatMinutes(j,_e){return pad(j.getMinutes(),_e,2)}function formatSeconds(j,_e){return pad(j.getSeconds(),_e,2)}function formatWeekdayNumberMonday(j){var _e=j.getDay();return _e===0?7:_e}function formatWeekNumberSunday(j,_e){return pad(timeSunday.count(timeYear(j)-1,j),_e,2)}function dISO(j){var _e=j.getDay();return _e>=4||_e===0?timeThursday(j):timeThursday.ceil(j)}function formatWeekNumberISO(j,_e){return j=dISO(j),pad(timeThursday.count(timeYear(j),j)+(timeYear(j).getDay()===4),_e,2)}function formatWeekdayNumberSunday(j){return j.getDay()}function formatWeekNumberMonday(j,_e){return pad(timeMonday.count(timeYear(j)-1,j),_e,2)}function formatYear(j,_e){return pad(j.getFullYear()%100,_e,2)}function formatYearISO(j,_e){return j=dISO(j),pad(j.getFullYear()%100,_e,2)}function formatFullYear(j,_e){return pad(j.getFullYear()%1e4,_e,4)}function formatFullYearISO(j,_e){var et=j.getDay();return j=et>=4||et===0?timeThursday(j):timeThursday.ceil(j),pad(j.getFullYear()%1e4,_e,4)}function formatZone(j){var _e=j.getTimezoneOffset();return(_e>0?"-":(_e*=-1,"+"))+pad(_e/60|0,"0",2)+pad(_e%60,"0",2)}function formatUTCDayOfMonth(j,_e){return pad(j.getUTCDate(),_e,2)}function formatUTCHour24(j,_e){return pad(j.getUTCHours(),_e,2)}function formatUTCHour12(j,_e){return pad(j.getUTCHours()%12||12,_e,2)}function formatUTCDayOfYear(j,_e){return pad(1+utcDay.count(utcYear(j),j),_e,3)}function formatUTCMilliseconds(j,_e){return pad(j.getUTCMilliseconds(),_e,3)}function formatUTCMicroseconds(j,_e){return formatUTCMilliseconds(j,_e)+"000"}function formatUTCMonthNumber(j,_e){return pad(j.getUTCMonth()+1,_e,2)}function formatUTCMinutes(j,_e){return pad(j.getUTCMinutes(),_e,2)}function formatUTCSeconds(j,_e){return pad(j.getUTCSeconds(),_e,2)}function formatUTCWeekdayNumberMonday(j){var _e=j.getUTCDay();return _e===0?7:_e}function formatUTCWeekNumberSunday(j,_e){return pad(utcSunday.count(utcYear(j)-1,j),_e,2)}function UTCdISO(j){var _e=j.getUTCDay();return _e>=4||_e===0?utcThursday(j):utcThursday.ceil(j)}function formatUTCWeekNumberISO(j,_e){return j=UTCdISO(j),pad(utcThursday.count(utcYear(j),j)+(utcYear(j).getUTCDay()===4),_e,2)}function formatUTCWeekdayNumberSunday(j){return j.getUTCDay()}function formatUTCWeekNumberMonday(j,_e){return pad(utcMonday.count(utcYear(j)-1,j),_e,2)}function formatUTCYear(j,_e){return pad(j.getUTCFullYear()%100,_e,2)}function formatUTCYearISO(j,_e){return j=UTCdISO(j),pad(j.getUTCFullYear()%100,_e,2)}function formatUTCFullYear(j,_e){return pad(j.getUTCFullYear()%1e4,_e,4)}function formatUTCFullYearISO(j,_e){var et=j.getUTCDay();return j=et>=4||et===0?utcThursday(j):utcThursday.ceil(j),pad(j.getUTCFullYear()%1e4,_e,4)}function formatUTCZone(){return"+0000"}function formatLiteralPercent(){return"%"}function formatUnixTimestamp(j){return+j}function formatUnixTimestampSeconds(j){return Math.floor(+j/1e3)}var locale,timeFormat,utcFormat;defaultLocale({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function defaultLocale(j){return locale=formatLocale(j),timeFormat=locale.format,locale.parse,utcFormat=locale.utcFormat,locale.utcParse,locale}function date(j){return new Date(j)}function number(j){return j instanceof Date?+j:+new Date(+j)}function calendar(j,_e,et,tt,rt,nt,ot,it,st,lt){var ut=continuous(),ct=ut.invert,dt=ut.domain,ft=lt(".%L"),pt=lt(":%S"),gt=lt("%I:%M"),vt=lt("%I %p"),bt=lt("%a %d"),_t=lt("%b %d"),xt=lt("%B"),yt=lt("%Y");function Et(St){return(st(St)_e(rt/(j.length-1)))},et.quantiles=function(tt){return Array.from({length:tt+1},(rt,nt)=>quantile$1(j,nt/tt))},et.copy=function(){return sequentialQuantile(_e).domain(j)},initInterpolator.apply(et,arguments)}function transformer(){var j=0,_e=.5,et=1,tt=1,rt,nt,ot,it,st,lt=identity$2,ut,ct=!1,dt;function ft(gt){return isNaN(gt=+gt)?dt:(gt=.5+((gt=+ut(gt))-nt)*(tt*gtj.e^nt.s<0?1:-1;for(tt=nt.d.length,rt=j.d.length,_e=0,et=ttj.d[_e]^nt.s<0?1:-1;return tt===rt?0:tt>rt^nt.s<0?1:-1};P.decimalPlaces=P.dp=function(){var j=this,_e=j.d.length-1,et=(_e-j.e)*LOG_BASE;if(_e=j.d[_e],_e)for(;_e%10==0;_e/=10)et--;return et<0?0:et};P.dividedBy=P.div=function(j){return divide(this,new this.constructor(j))};P.dividedToIntegerBy=P.idiv=function(j){var _e=this,et=_e.constructor;return round(divide(_e,new et(j),0,1),et.precision)};P.equals=P.eq=function(j){return!this.cmp(j)};P.exponent=function(){return getBase10Exponent(this)};P.greaterThan=P.gt=function(j){return this.cmp(j)>0};P.greaterThanOrEqualTo=P.gte=function(j){return this.cmp(j)>=0};P.isInteger=P.isint=function(){return this.e>this.d.length-2};P.isNegative=P.isneg=function(){return this.s<0};P.isPositive=P.ispos=function(){return this.s>0};P.isZero=function(){return this.s===0};P.lessThan=P.lt=function(j){return this.cmp(j)<0};P.lessThanOrEqualTo=P.lte=function(j){return this.cmp(j)<1};P.logarithm=P.log=function(j){var _e,et=this,tt=et.constructor,rt=tt.precision,nt=rt+5;if(j===void 0)j=new tt(10);else if(j=new tt(j),j.s<1||j.eq(ONE))throw Error(decimalError+"NaN");if(et.s<1)throw Error(decimalError+(et.s?"NaN":"-Infinity"));return et.eq(ONE)?new tt(0):(external=!1,_e=divide(ln(et,nt),ln(j,nt),nt),external=!0,round(_e,rt))};P.minus=P.sub=function(j){var _e=this;return j=new _e.constructor(j),_e.s==j.s?subtract(_e,j):add(_e,(j.s=-j.s,j))};P.modulo=P.mod=function(j){var _e,et=this,tt=et.constructor,rt=tt.precision;if(j=new tt(j),!j.s)throw Error(decimalError+"NaN");return et.s?(external=!1,_e=divide(et,j,0,1).times(j),external=!0,et.minus(_e)):round(new tt(et),rt)};P.naturalExponential=P.exp=function(){return exp(this)};P.naturalLogarithm=P.ln=function(){return ln(this)};P.negated=P.neg=function(){var j=new this.constructor(this);return j.s=-j.s||0,j};P.plus=P.add=function(j){var _e=this;return j=new _e.constructor(j),_e.s==j.s?add(_e,j):subtract(_e,(j.s=-j.s,j))};P.precision=P.sd=function(j){var _e,et,tt,rt=this;if(j!==void 0&&j!==!!j&&j!==1&&j!==0)throw Error(invalidArgument+j);if(_e=getBase10Exponent(rt)+1,tt=rt.d.length-1,et=tt*LOG_BASE+1,tt=rt.d[tt],tt){for(;tt%10==0;tt/=10)et--;for(tt=rt.d[0];tt>=10;tt/=10)et++}return j&&_e>et?_e:et};P.squareRoot=P.sqrt=function(){var j,_e,et,tt,rt,nt,ot,it=this,st=it.constructor;if(it.s<1){if(!it.s)return new st(0);throw Error(decimalError+"NaN")}for(j=getBase10Exponent(it),external=!1,rt=Math.sqrt(+it),rt==0||rt==1/0?(_e=digitsToString(it.d),(_e.length+j)%2==0&&(_e+="0"),rt=Math.sqrt(_e),j=mathfloor((j+1)/2)-(j<0||j%2),rt==1/0?_e="5e"+j:(_e=rt.toExponential(),_e=_e.slice(0,_e.indexOf("e")+1)+j),tt=new st(_e)):tt=new st(rt.toString()),et=st.precision,rt=ot=et+3;;)if(nt=tt,tt=nt.plus(divide(it,nt,ot+2)).times(.5),digitsToString(nt.d).slice(0,ot)===(_e=digitsToString(tt.d)).slice(0,ot)){if(_e=_e.slice(ot-3,ot+1),rt==ot&&_e=="4999"){if(round(nt,et+1,0),nt.times(nt).eq(it)){tt=nt;break}}else if(_e!="9999")break;ot+=4}return external=!0,round(tt,et)};P.times=P.mul=function(j){var _e,et,tt,rt,nt,ot,it,st,lt,ut=this,ct=ut.constructor,dt=ut.d,ft=(j=new ct(j)).d;if(!ut.s||!j.s)return new ct(0);for(j.s*=ut.s,et=ut.e+j.e,st=dt.length,lt=ft.length,st=0;){for(_e=0,rt=st+tt;rt>tt;)it=nt[rt]+ft[tt]*dt[rt-tt-1]+_e,nt[rt--]=it%BASE|0,_e=it/BASE|0;nt[rt]=(nt[rt]+_e)%BASE|0}for(;!nt[--ot];)nt.pop();return _e?++et:nt.shift(),j.d=nt,j.e=et,external?round(j,ct.precision):j};P.toDecimalPlaces=P.todp=function(j,_e){var et=this,tt=et.constructor;return et=new tt(et),j===void 0?et:(checkInt32(j,0,MAX_DIGITS),_e===void 0?_e=tt.rounding:checkInt32(_e,0,8),round(et,j+getBase10Exponent(et)+1,_e))};P.toExponential=function(j,_e){var et,tt=this,rt=tt.constructor;return j===void 0?et=toString(tt,!0):(checkInt32(j,0,MAX_DIGITS),_e===void 0?_e=rt.rounding:checkInt32(_e,0,8),tt=round(new rt(tt),j+1,_e),et=toString(tt,!0,j+1)),et};P.toFixed=function(j,_e){var et,tt,rt=this,nt=rt.constructor;return j===void 0?toString(rt):(checkInt32(j,0,MAX_DIGITS),_e===void 0?_e=nt.rounding:checkInt32(_e,0,8),tt=round(new nt(rt),j+getBase10Exponent(rt)+1,_e),et=toString(tt.abs(),!1,j+getBase10Exponent(tt)+1),rt.isneg()&&!rt.isZero()?"-"+et:et)};P.toInteger=P.toint=function(){var j=this,_e=j.constructor;return round(new _e(j),getBase10Exponent(j)+1,_e.rounding)};P.toNumber=function(){return+this};P.toPower=P.pow=function(j){var _e,et,tt,rt,nt,ot,it=this,st=it.constructor,lt=12,ut=+(j=new st(j));if(!j.s)return new st(ONE);if(it=new st(it),!it.s){if(j.s<1)throw Error(decimalError+"Infinity");return it}if(it.eq(ONE))return it;if(tt=st.precision,j.eq(ONE))return round(it,tt);if(_e=j.e,et=j.d.length-1,ot=_e>=et,nt=it.s,ot){if((et=ut<0?-ut:ut)<=MAX_SAFE_INTEGER){for(rt=new st(ONE),_e=Math.ceil(tt/LOG_BASE+4),external=!1;et%2&&(rt=rt.times(it),truncate(rt.d,_e)),et=mathfloor(et/2),et!==0;)it=it.times(it),truncate(it.d,_e);return external=!0,j.s<0?new st(ONE).div(rt):round(rt,tt)}}else if(nt<0)throw Error(decimalError+"NaN");return nt=nt<0&&j.d[Math.max(_e,et)]&1?-1:1,it.s=1,external=!1,rt=j.times(ln(it,tt+lt)),external=!0,rt=exp(rt),rt.s=nt,rt};P.toPrecision=function(j,_e){var et,tt,rt=this,nt=rt.constructor;return j===void 0?(et=getBase10Exponent(rt),tt=toString(rt,et<=nt.toExpNeg||et>=nt.toExpPos)):(checkInt32(j,1,MAX_DIGITS),_e===void 0?_e=nt.rounding:checkInt32(_e,0,8),rt=round(new nt(rt),j,_e),et=getBase10Exponent(rt),tt=toString(rt,j<=et||et<=nt.toExpNeg,j)),tt};P.toSignificantDigits=P.tosd=function(j,_e){var et=this,tt=et.constructor;return j===void 0?(j=tt.precision,_e=tt.rounding):(checkInt32(j,1,MAX_DIGITS),_e===void 0?_e=tt.rounding:checkInt32(_e,0,8)),round(new tt(et),j,_e)};P.toString=P.valueOf=P.val=P.toJSON=P[Symbol.for("nodejs.util.inspect.custom")]=function(){var j=this,_e=getBase10Exponent(j),et=j.constructor;return toString(j,_e<=et.toExpNeg||_e>=et.toExpPos)};function add(j,_e){var et,tt,rt,nt,ot,it,st,lt,ut=j.constructor,ct=ut.precision;if(!j.s||!_e.s)return _e.s||(_e=new ut(j)),external?round(_e,ct):_e;if(st=j.d,lt=_e.d,ot=j.e,rt=_e.e,st=st.slice(),nt=ot-rt,nt){for(nt<0?(tt=st,nt=-nt,it=lt.length):(tt=lt,rt=ot,it=st.length),ot=Math.ceil(ct/LOG_BASE),it=ot>it?ot+1:it+1,nt>it&&(nt=it,tt.length=1),tt.reverse();nt--;)tt.push(0);tt.reverse()}for(it=st.length,nt=lt.length,it-nt<0&&(nt=it,tt=lt,lt=st,st=tt),et=0;nt;)et=(st[--nt]=st[nt]+lt[nt]+et)/BASE|0,st[nt]%=BASE;for(et&&(st.unshift(et),++rt),it=st.length;st[--it]==0;)st.pop();return _e.d=st,_e.e=rt,external?round(_e,ct):_e}function checkInt32(j,_e,et){if(j!==~~j||j<_e||j>et)throw Error(invalidArgument+j)}function digitsToString(j){var _e,et,tt,rt=j.length-1,nt="",ot=j[0];if(rt>0){for(nt+=ot,_e=1;_eot?1:-1;else for(it=st=0;itrt[it]?1:-1;break}return st}function et(tt,rt,nt){for(var ot=0;nt--;)tt[nt]-=ot,ot=tt[nt]1;)tt.shift()}return function(tt,rt,nt,ot){var it,st,lt,ut,ct,dt,ft,pt,gt,vt,bt,_t,xt,yt,Et,St,$t,At,wt=tt.constructor,Ct=tt.s==rt.s?1:-1,It=tt.d,Ot=rt.d;if(!tt.s)return new wt(tt);if(!rt.s)throw Error(decimalError+"Division by zero");for(st=tt.e-rt.e,$t=Ot.length,Et=It.length,ft=new wt(Ct),pt=ft.d=[],lt=0;Ot[lt]==(It[lt]||0);)++lt;if(Ot[lt]>(It[lt]||0)&&--st,nt==null?_t=nt=wt.precision:ot?_t=nt+(getBase10Exponent(tt)-getBase10Exponent(rt))+1:_t=nt,_t<0)return new wt(0);if(_t=_t/LOG_BASE+2|0,lt=0,$t==1)for(ut=0,Ot=Ot[0],_t++;(lt1&&(Ot=j(Ot,ut),It=j(It,ut),$t=Ot.length,Et=It.length),yt=$t,gt=It.slice(0,$t),vt=gt.length;vt<$t;)gt[vt++]=0;At=Ot.slice(),At.unshift(0),St=Ot[0],Ot[1]>=BASE/2&&++St;do ut=0,it=_e(Ot,gt,$t,vt),it<0?(bt=gt[0],$t!=vt&&(bt=bt*BASE+(gt[1]||0)),ut=bt/St|0,ut>1?(ut>=BASE&&(ut=BASE-1),ct=j(Ot,ut),dt=ct.length,vt=gt.length,it=_e(ct,gt,dt,vt),it==1&&(ut--,et(ct,$t16)throw Error(exponentOutOfRange+getBase10Exponent(j));if(!j.s)return new ut(ONE);for(_e==null?(external=!1,it=ct):it=_e,ot=new ut(.03125);j.abs().gte(.1);)j=j.times(ot),lt+=5;for(tt=Math.log(mathpow(2,lt))/Math.LN10*2+5|0,it+=tt,et=rt=nt=new ut(ONE),ut.precision=it;;){if(rt=round(rt.times(j),it),et=et.times(++st),ot=nt.plus(divide(rt,et,it)),digitsToString(ot.d).slice(0,it)===digitsToString(nt.d).slice(0,it)){for(;lt--;)nt=round(nt.times(nt),it);return ut.precision=ct,_e==null?(external=!0,round(nt,ct)):nt}nt=ot}}function getBase10Exponent(j){for(var _e=j.e*LOG_BASE,et=j.d[0];et>=10;et/=10)_e++;return _e}function getLn10(j,_e,et){if(_e>j.LN10.sd())throw external=!0,et&&(j.precision=et),Error(decimalError+"LN10 precision limit exceeded");return round(new j(j.LN10),_e)}function getZeroString(j){for(var _e="";j--;)_e+="0";return _e}function ln(j,_e){var et,tt,rt,nt,ot,it,st,lt,ut,ct=1,dt=10,ft=j,pt=ft.d,gt=ft.constructor,vt=gt.precision;if(ft.s<1)throw Error(decimalError+(ft.s?"NaN":"-Infinity"));if(ft.eq(ONE))return new gt(0);if(_e==null?(external=!1,lt=vt):lt=_e,ft.eq(10))return _e==null&&(external=!0),getLn10(gt,lt);if(lt+=dt,gt.precision=lt,et=digitsToString(pt),tt=et.charAt(0),nt=getBase10Exponent(ft),Math.abs(nt)<15e14){for(;tt<7&&tt!=1||tt==1&&et.charAt(1)>3;)ft=ft.times(j),et=digitsToString(ft.d),tt=et.charAt(0),ct++;nt=getBase10Exponent(ft),tt>1?(ft=new gt("0."+et),nt++):ft=new gt(tt+"."+et.slice(1))}else return st=getLn10(gt,lt+2,vt).times(nt+""),ft=ln(new gt(tt+"."+et.slice(1)),lt-dt).plus(st),gt.precision=vt,_e==null?(external=!0,round(ft,vt)):ft;for(it=ot=ft=divide(ft.minus(ONE),ft.plus(ONE),lt),ut=round(ft.times(ft),lt),rt=3;;){if(ot=round(ot.times(ut),lt),st=it.plus(divide(ot,new gt(rt),lt)),digitsToString(st.d).slice(0,lt)===digitsToString(it.d).slice(0,lt))return it=it.times(2),nt!==0&&(it=it.plus(getLn10(gt,lt+2,vt).times(nt+""))),it=divide(it,new gt(ct),lt),gt.precision=vt,_e==null?(external=!0,round(it,vt)):it;it=st,rt+=2}}function parseDecimal(j,_e){var et,tt,rt;for((et=_e.indexOf("."))>-1&&(_e=_e.replace(".","")),(tt=_e.search(/e/i))>0?(et<0&&(et=tt),et+=+_e.slice(tt+1),_e=_e.substring(0,tt)):et<0&&(et=_e.length),tt=0;_e.charCodeAt(tt)===48;)++tt;for(rt=_e.length;_e.charCodeAt(rt-1)===48;)--rt;if(_e=_e.slice(tt,rt),_e){if(rt-=tt,et=et-tt-1,j.e=mathfloor(et/LOG_BASE),j.d=[],tt=(et+1)%LOG_BASE,et<0&&(tt+=LOG_BASE),ttMAX_E||j.e<-MAX_E))throw Error(exponentOutOfRange+et)}else j.s=0,j.e=0,j.d=[0];return j}function round(j,_e,et){var tt,rt,nt,ot,it,st,lt,ut,ct=j.d;for(ot=1,nt=ct[0];nt>=10;nt/=10)ot++;if(tt=_e-ot,tt<0)tt+=LOG_BASE,rt=_e,lt=ct[ut=0];else{if(ut=Math.ceil((tt+1)/LOG_BASE),nt=ct.length,ut>=nt)return j;for(lt=nt=ct[ut],ot=1;nt>=10;nt/=10)ot++;tt%=LOG_BASE,rt=tt-LOG_BASE+ot}if(et!==void 0&&(nt=mathpow(10,ot-rt-1),it=lt/nt%10|0,st=_e<0||ct[ut+1]!==void 0||lt%nt,st=et<4?(it||st)&&(et==0||et==(j.s<0?3:2)):it>5||it==5&&(et==4||st||et==6&&(tt>0?rt>0?lt/mathpow(10,ot-rt):0:ct[ut-1])%10&1||et==(j.s<0?8:7))),_e<1||!ct[0])return st?(nt=getBase10Exponent(j),ct.length=1,_e=_e-nt-1,ct[0]=mathpow(10,(LOG_BASE-_e%LOG_BASE)%LOG_BASE),j.e=mathfloor(-_e/LOG_BASE)||0):(ct.length=1,ct[0]=j.e=j.s=0),j;if(tt==0?(ct.length=ut,nt=1,ut--):(ct.length=ut+1,nt=mathpow(10,LOG_BASE-tt),ct[ut]=rt>0?(lt/mathpow(10,ot-rt)%mathpow(10,rt)|0)*nt:0),st)for(;;)if(ut==0){(ct[0]+=nt)==BASE&&(ct[0]=1,++j.e);break}else{if(ct[ut]+=nt,ct[ut]!=BASE)break;ct[ut--]=0,nt=1}for(tt=ct.length;ct[--tt]===0;)ct.pop();if(external&&(j.e>MAX_E||j.e<-MAX_E))throw Error(exponentOutOfRange+getBase10Exponent(j));return j}function subtract(j,_e){var et,tt,rt,nt,ot,it,st,lt,ut,ct,dt=j.constructor,ft=dt.precision;if(!j.s||!_e.s)return _e.s?_e.s=-_e.s:_e=new dt(j),external?round(_e,ft):_e;if(st=j.d,ct=_e.d,tt=_e.e,lt=j.e,st=st.slice(),ot=lt-tt,ot){for(ut=ot<0,ut?(et=st,ot=-ot,it=ct.length):(et=ct,tt=lt,it=st.length),rt=Math.max(Math.ceil(ft/LOG_BASE),it)+2,ot>rt&&(ot=rt,et.length=1),et.reverse(),rt=ot;rt--;)et.push(0);et.reverse()}else{for(rt=st.length,it=ct.length,ut=rt0;--rt)st[it++]=0;for(rt=ct.length;rt>ot;){if(st[--rt]0?nt=nt.charAt(0)+"."+nt.slice(1)+getZeroString(tt):ot>1&&(nt=nt.charAt(0)+"."+nt.slice(1)),nt=nt+(rt<0?"e":"e+")+rt):rt<0?(nt="0."+getZeroString(-rt-1)+nt,et&&(tt=et-ot)>0&&(nt+=getZeroString(tt))):rt>=ot?(nt+=getZeroString(rt+1-ot),et&&(tt=et-rt-1)>0&&(nt=nt+"."+getZeroString(tt))):((tt=rt+1)0&&(rt+1===ot&&(nt+="."),nt+=getZeroString(tt))),j.s<0?"-"+nt:nt}function truncate(j,_e){if(j.length>_e)return j.length=_e,!0}function clone(j){var _e,et,tt;function rt(nt){var ot=this;if(!(ot instanceof rt))return new rt(nt);if(ot.constructor=rt,nt instanceof rt){ot.s=nt.s,ot.e=nt.e,ot.d=(nt=nt.d)?nt.slice():nt;return}if(typeof nt=="number"){if(nt*0!==0)throw Error(invalidArgument+nt);if(nt>0)ot.s=1;else if(nt<0)nt=-nt,ot.s=-1;else{ot.s=0,ot.e=0,ot.d=[0];return}if(nt===~~nt&&nt<1e7){ot.e=0,ot.d=[nt];return}return parseDecimal(ot,nt.toString())}else if(typeof nt!="string")throw Error(invalidArgument+nt);if(nt.charCodeAt(0)===45?(nt=nt.slice(1),ot.s=-1):ot.s=1,isDecimal.test(nt))parseDecimal(ot,nt);else throw Error(invalidArgument+nt)}if(rt.prototype=P,rt.ROUND_UP=0,rt.ROUND_DOWN=1,rt.ROUND_CEIL=2,rt.ROUND_FLOOR=3,rt.ROUND_HALF_UP=4,rt.ROUND_HALF_DOWN=5,rt.ROUND_HALF_EVEN=6,rt.ROUND_HALF_CEIL=7,rt.ROUND_HALF_FLOOR=8,rt.clone=clone,rt.config=rt.set=config,j===void 0&&(j={}),j)for(tt=["precision","rounding","toExpNeg","toExpPos","LN10"],_e=0;_e=rt[_e+1]&&tt<=rt[_e+2])this[et]=tt;else throw Error(invalidArgument+et+": "+tt);if((tt=j[et="LN10"])!==void 0)if(tt==Math.LN10)this[et]=new this(tt);else throw Error(invalidArgument+et+": "+tt);return this}var Decimal=clone(defaults);ONE=new Decimal(1);const Decimal$1=Decimal;function _toConsumableArray$7(j){return _arrayWithoutHoles$7(j)||_iterableToArray$7(j)||_unsupportedIterableToArray$c(j)||_nonIterableSpread$7()}function _nonIterableSpread$7(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$c(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$c(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$c(j,_e)}}function _iterableToArray$7(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$7(j){if(Array.isArray(j))return _arrayLikeToArray$c(j)}function _arrayLikeToArray$c(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}var identity=function j(_e){return _e},PLACE_HOLDER={"@@functional/placeholder":!0},isPlaceHolder=function j(_e){return _e===PLACE_HOLDER},curry0=function j(_e){return function et(){return arguments.length===0||arguments.length===1&&isPlaceHolder(arguments.length<=0?void 0:arguments[0])?et:_e.apply(void 0,arguments)}},curryN=function j(_e,et){return _e===1?et:curry0(function(){for(var tt=arguments.length,rt=new Array(tt),nt=0;nt=_e?et.apply(void 0,rt):j(_e-ot,curry0(function(){for(var it=arguments.length,st=new Array(it),lt=0;ltj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$6(j,_e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(j)))){var et=[],tt=!0,rt=!1,nt=void 0;try{for(var ot=j[Symbol.iterator](),it;!(tt=(it=ot.next()).done)&&(et.push(it.value),!(_e&&et.length===_e));tt=!0);}catch(st){rt=!0,nt=st}finally{try{!tt&&ot.return!=null&&ot.return()}finally{if(rt)throw nt}}return et}}function _arrayWithHoles$6(j){if(Array.isArray(j))return j}function getValidInterval(j){var _e=_slicedToArray$6(j,2),et=_e[0],tt=_e[1],rt=et,nt=tt;return et>tt&&(rt=tt,nt=et),[rt,nt]}function getFormatStep(j,_e,et){if(j.lte(0))return new Decimal$1(0);var tt=Arithmetic.getDigitCount(j.toNumber()),rt=new Decimal$1(10).pow(tt),nt=j.div(rt),ot=tt!==1?.05:.1,it=new Decimal$1(Math.ceil(nt.div(ot).toNumber())).add(et).mul(ot),st=it.mul(rt);return _e?st:new Decimal$1(Math.ceil(st))}function getTickOfSingleValue(j,_e,et){var tt=1,rt=new Decimal$1(j);if(!rt.isint()&&et){var nt=Math.abs(j);nt<1?(tt=new Decimal$1(10).pow(Arithmetic.getDigitCount(j)-1),rt=new Decimal$1(Math.floor(rt.div(tt).toNumber())).mul(tt)):nt>1&&(rt=new Decimal$1(Math.floor(j)))}else j===0?rt=new Decimal$1(Math.floor((_e-1)/2)):et||(rt=new Decimal$1(Math.floor(j)));var ot=Math.floor((_e-1)/2),it=compose(map(function(st){return rt.add(new Decimal$1(st-ot).mul(tt)).toNumber()}),range);return it(0,_e)}function calculateStep(j,_e,et,tt){var rt=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((_e-j)/(et-1)))return{step:new Decimal$1(0),tickMin:new Decimal$1(0),tickMax:new Decimal$1(0)};var nt=getFormatStep(new Decimal$1(_e).sub(j).div(et-1),tt,rt),ot;j<=0&&_e>=0?ot=new Decimal$1(0):(ot=new Decimal$1(j).add(_e).div(2),ot=ot.sub(new Decimal$1(ot).mod(nt)));var it=Math.ceil(ot.sub(j).div(nt).toNumber()),st=Math.ceil(new Decimal$1(_e).sub(ot).div(nt).toNumber()),lt=it+st+1;return lt>et?calculateStep(j,_e,et,tt,rt+1):(lt0?st+(et-lt):st,it=_e>0?it:it+(et-lt)),{step:nt,tickMin:ot.sub(new Decimal$1(it).mul(nt)),tickMax:ot.add(new Decimal$1(st).mul(nt))})}function getNiceTickValuesFn(j){var _e=_slicedToArray$6(j,2),et=_e[0],tt=_e[1],rt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,nt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,ot=Math.max(rt,2),it=getValidInterval([et,tt]),st=_slicedToArray$6(it,2),lt=st[0],ut=st[1];if(lt===-1/0||ut===1/0){var ct=ut===1/0?[lt].concat(_toConsumableArray$6(range(0,rt-1).map(function(){return 1/0}))):[].concat(_toConsumableArray$6(range(0,rt-1).map(function(){return-1/0})),[ut]);return et>tt?reverse(ct):ct}if(lt===ut)return getTickOfSingleValue(lt,rt,nt);var dt=calculateStep(lt,ut,ot,nt),ft=dt.step,pt=dt.tickMin,gt=dt.tickMax,vt=Arithmetic.rangeStep(pt,gt.add(new Decimal$1(.1).mul(ft)),ft);return et>tt?reverse(vt):vt}function getTickValuesFixedDomainFn(j,_e){var et=_slicedToArray$6(j,2),tt=et[0],rt=et[1],nt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,ot=getValidInterval([tt,rt]),it=_slicedToArray$6(ot,2),st=it[0],lt=it[1];if(st===-1/0||lt===1/0)return[tt,rt];if(st===lt)return[st];var ut=Math.max(_e,2),ct=getFormatStep(new Decimal$1(lt).sub(st).div(ut-1),nt,0),dt=[].concat(_toConsumableArray$6(Arithmetic.rangeStep(new Decimal$1(st),new Decimal$1(lt).sub(new Decimal$1(.99).mul(ct)),ct)),[lt]);return tt>rt?reverse(dt):dt}var getNiceTickValues=memoize(getNiceTickValuesFn),getTickValuesFixedDomain=memoize(getTickValuesFixedDomainFn),_excluded$8=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function _extends$i(){return _extends$i=Object.assign?Object.assign.bind():function(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$5(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$5(j){if(Array.isArray(j))return j}function _objectWithoutProperties$8(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$8(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$8(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function ErrorBar(j){var _e=j.offset,et=j.layout,tt=j.width,rt=j.dataKey,nt=j.data,ot=j.dataPointFormatter,it=j.xAxis,st=j.yAxis,lt=_objectWithoutProperties$8(j,_excluded$8),ut=filterProps(lt),ct=nt.map(function(dt){var ft=ot(dt,rt),pt=ft.x,gt=ft.y,vt=ft.value,bt=ft.errorVal;if(!bt)return null;var _t=[],xt,yt;if(Array.isArray(bt)){var Et=_slicedToArray$5(bt,2);xt=Et[0],yt=Et[1]}else xt=yt=bt;if(et==="vertical"){var St=it.scale,$t=gt+_e,At=$t+tt,wt=$t-tt,Ct=St(vt-xt),It=St(vt+yt);_t.push({x1:It,y1:At,x2:It,y2:wt}),_t.push({x1:Ct,y1:$t,x2:It,y2:$t}),_t.push({x1:Ct,y1:At,x2:Ct,y2:wt})}else if(et==="horizontal"){var Ot=st.scale,Nt=pt+_e,Pt=Nt-tt,Mt=Nt+tt,Rt=Ot(vt-xt),Lt=Ot(vt+yt);_t.push({x1:Pt,y1:Lt,x2:Mt,y2:Lt}),_t.push({x1:Nt,y1:Rt,x2:Nt,y2:Lt}),_t.push({x1:Pt,y1:Rt,x2:Mt,y2:Rt})}return React.createElement(Layer,_extends$i({className:"recharts-errorBar",key:"bar-".concat(_t.map(function(jt){return"".concat(jt.x1,"-").concat(jt.x2,"-").concat(jt.y1,"-").concat(jt.y2)}))},ut),_t.map(function(jt){return React.createElement("line",_extends$i({},jt,{key:"line-".concat(jt.x1,"-").concat(jt.x2,"-").concat(jt.y1,"-").concat(jt.y2)}))}))});return React.createElement(Layer,{className:"recharts-errorBars"},ct)}ErrorBar.defaultProps={stroke:"black",strokeWidth:1.5,width:5,offset:0,layout:"horizontal"};ErrorBar.displayName="ErrorBar";function _typeof$o(j){"@babel/helpers - typeof";return _typeof$o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$o(j)}function ownKeys$n(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$n(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function getValueByDataKey(j,_e,et){return isNil$1(j)||isNil$1(_e)?et:isNumOrStr(_e)?get$5(j,_e,et):isFunction$6(_e)?_e(j):et}function getDomainOfDataByKey(j,_e,et,tt){var rt=flatMap$1(j,function(it){return getValueByDataKey(it,_e)});if(et==="number"){var nt=rt.filter(function(it){return isNumber(it)||parseFloat(it)});return nt.length?[min$9(nt),max$8(nt)]:[1/0,-1/0]}var ot=tt?rt.filter(function(it){return!isNil$1(it)}):rt;return ot.map(function(it){return isNumOrStr(it)||it instanceof Date?it:""})}var calculateActiveTickIndex=function j(_e){var et,tt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],rt=arguments.length>2?arguments[2]:void 0,nt=arguments.length>3?arguments[3]:void 0,ot=-1,it=(et=tt==null?void 0:tt.length)!==null&&et!==void 0?et:0;if(it<=1)return 0;if(nt&&nt.axisType==="angleAxis"&&Math.abs(Math.abs(nt.range[1]-nt.range[0])-360)<=1e-6)for(var st=nt.range,lt=0;lt0?rt[lt-1].coordinate:rt[it-1].coordinate,ct=rt[lt].coordinate,dt=lt>=it-1?rt[0].coordinate:rt[lt+1].coordinate,ft=void 0;if(mathSign(ct-ut)!==mathSign(dt-ct)){var pt=[];if(mathSign(dt-ct)===mathSign(st[1]-st[0])){ft=dt;var gt=ct+st[1]-st[0];pt[0]=Math.min(gt,(gt+ut)/2),pt[1]=Math.max(gt,(gt+ut)/2)}else{ft=ut;var vt=dt+st[1]-st[0];pt[0]=Math.min(ct,(vt+ct)/2),pt[1]=Math.max(ct,(vt+ct)/2)}var bt=[Math.min(ct,(ft+ct)/2),Math.max(ct,(ft+ct)/2)];if(_e>bt[0]&&_e<=bt[1]||_e>=pt[0]&&_e<=pt[1]){ot=rt[lt].index;break}}else{var _t=Math.min(ut,dt),xt=Math.max(ut,dt);if(_e>(_t+ct)/2&&_e<=(xt+ct)/2){ot=rt[lt].index;break}}}else for(var yt=0;yt0&&yt(tt[yt].coordinate+tt[yt-1].coordinate)/2&&_e<=(tt[yt].coordinate+tt[yt+1].coordinate)/2||yt===it-1&&_e>(tt[yt].coordinate+tt[yt-1].coordinate)/2){ot=tt[yt].index;break}return ot},getMainColorOfGraphicItem=function j(_e){var et=_e,tt=et.type.displayName,rt=_e.props,nt=rt.stroke,ot=rt.fill,it;switch(tt){case"Line":it=nt;break;case"Area":case"Radar":it=nt&&nt!=="none"?nt:ot;break;default:it=ot;break}return it},getBarSizeList=function j(_e){var et=_e.barSize,tt=_e.stackGroups,rt=tt===void 0?{}:tt;if(!rt)return{};for(var nt={},ot=Object.keys(rt),it=0,st=ot.length;it=0});if(vt&&vt.length){var bt=vt[0].props.barSize,_t=vt[0].props[gt];nt[_t]||(nt[_t]=[]),nt[_t].push({item:vt[0],stackList:vt.slice(1),barSize:isNil$1(bt)?et:bt})}}return nt},getBarPosition=function j(_e){var et=_e.barGap,tt=_e.barCategoryGap,rt=_e.bandSize,nt=_e.sizeList,ot=nt===void 0?[]:nt,it=_e.maxBarSize,st=ot.length;if(st<1)return null;var lt=getPercentValue(et,rt,0,!0),ut,ct=[];if(ot[0].barSize===+ot[0].barSize){var dt=!1,ft=rt/st,pt=ot.reduce(function(yt,Et){return yt+Et.barSize||0},0);pt+=(st-1)*lt,pt>=rt&&(pt-=(st-1)*lt,lt=0),pt>=rt&&ft>0&&(dt=!0,ft*=.9,pt=st*ft);var gt=(rt-pt)/2>>0,vt={offset:gt-lt,size:0};ut=ot.reduce(function(yt,Et){var St={item:Et.item,position:{offset:vt.offset+vt.size+lt,size:dt?ft:Et.barSize}},$t=[].concat(_toConsumableArray$5(yt),[St]);return vt=$t[$t.length-1].position,Et.stackList&&Et.stackList.length&&Et.stackList.forEach(function(At){$t.push({item:At,position:vt})}),$t},ct)}else{var bt=getPercentValue(tt,rt,0,!0);rt-2*bt-(st-1)*lt<=0&&(lt=0);var _t=(rt-2*bt-(st-1)*lt)/st;_t>1&&(_t>>=0);var xt=it===+it?Math.min(_t,it):_t;ut=ot.reduce(function(yt,Et,St){var $t=[].concat(_toConsumableArray$5(yt),[{item:Et.item,position:{offset:bt+(_t+lt)*St+(_t-xt)/2,size:xt}}]);return Et.stackList&&Et.stackList.length&&Et.stackList.forEach(function(At){$t.push({item:At,position:$t[$t.length-1].position})}),$t},ct)}return ut},appendOffsetOfLegend=function j(_e,et,tt,rt){var nt=tt.children,ot=tt.width,it=tt.margin,st=ot-(it.left||0)-(it.right||0),lt=getLegendProps({children:nt,legendWidth:st});if(lt){var ut=rt||{},ct=ut.width,dt=ut.height,ft=lt.align,pt=lt.verticalAlign,gt=lt.layout;if((gt==="vertical"||gt==="horizontal"&&pt==="middle")&&ft!=="center"&&isNumber(_e[ft]))return _objectSpread$m(_objectSpread$m({},_e),{},_defineProperty$n({},ft,_e[ft]+(ct||0)));if((gt==="horizontal"||gt==="vertical"&&ft==="center")&&pt!=="middle"&&isNumber(_e[pt]))return _objectSpread$m(_objectSpread$m({},_e),{},_defineProperty$n({},pt,_e[pt]+(dt||0)))}return _e},isErrorBarRelevantForAxis=function j(_e,et,tt){return isNil$1(et)?!0:_e==="horizontal"?et==="yAxis":_e==="vertical"||tt==="x"?et==="xAxis":tt==="y"?et==="yAxis":!0},getDomainOfErrorBars=function j(_e,et,tt,rt,nt){var ot=et.props.children,it=findAllByType(ot,ErrorBar).filter(function(lt){return isErrorBarRelevantForAxis(rt,nt,lt.props.direction)});if(it&&it.length){var st=it.map(function(lt){return lt.props.dataKey});return _e.reduce(function(lt,ut){var ct=getValueByDataKey(ut,tt,0),dt=Array.isArray(ct)?[min$9(ct),max$8(ct)]:[ct,ct],ft=st.reduce(function(pt,gt){var vt=getValueByDataKey(ut,gt,0),bt=dt[0]-Math.abs(Array.isArray(vt)?vt[0]:vt),_t=dt[1]+Math.abs(Array.isArray(vt)?vt[1]:vt);return[Math.min(bt,pt[0]),Math.max(_t,pt[1])]},[1/0,-1/0]);return[Math.min(ft[0],lt[0]),Math.max(ft[1],lt[1])]},[1/0,-1/0])}return null},parseErrorBarsOfAxis=function j(_e,et,tt,rt,nt){var ot=et.map(function(it){return getDomainOfErrorBars(_e,it,tt,nt,rt)}).filter(function(it){return!isNil$1(it)});return ot&&ot.length?ot.reduce(function(it,st){return[Math.min(it[0],st[0]),Math.max(it[1],st[1])]},[1/0,-1/0]):null},getDomainOfItemsWithSameAxis=function j(_e,et,tt,rt,nt){var ot=et.map(function(st){var lt=st.props.dataKey;return tt==="number"&<&&getDomainOfErrorBars(_e,st,lt,rt)||getDomainOfDataByKey(_e,lt,tt,nt)});if(tt==="number")return ot.reduce(function(st,lt){return[Math.min(st[0],lt[0]),Math.max(st[1],lt[1])]},[1/0,-1/0]);var it={};return ot.reduce(function(st,lt){for(var ut=0,ct=lt.length;ut=2?mathSign(it[0]-it[1])*2*lt:lt,et&&(_e.ticks||_e.niceTicks)){var ut=(_e.ticks||_e.niceTicks).map(function(ct){var dt=nt?nt.indexOf(ct):ct;return{coordinate:rt(dt)+lt,value:ct,offset:lt}});return ut.filter(function(ct){return!isNan(ct.coordinate)})}return _e.isCategorical&&_e.categoricalDomain?_e.categoricalDomain.map(function(ct,dt){return{coordinate:rt(ct)+lt,value:ct,index:dt,offset:lt}}):rt.ticks&&!tt?rt.ticks(_e.tickCount).map(function(ct){return{coordinate:rt(ct)+lt,value:ct,offset:lt}}):rt.domain().map(function(ct,dt){return{coordinate:rt(ct)+lt,value:nt?nt[ct]:ct,index:dt,offset:lt}})},handlerWeakMap=new WeakMap,combineEventHandlers=function j(_e,et){if(typeof et!="function")return _e;handlerWeakMap.has(_e)||handlerWeakMap.set(_e,new WeakMap);var tt=handlerWeakMap.get(_e);if(tt.has(et))return tt.get(et);var rt=function(){_e.apply(void 0,arguments),et.apply(void 0,arguments)};return tt.set(et,rt),rt},parseScale=function j(_e,et,tt){var rt=_e.scale,nt=_e.type,ot=_e.layout,it=_e.axisType;if(rt==="auto")return ot==="radial"&&it==="radiusAxis"?{scale:band(),realScaleType:"band"}:ot==="radial"&&it==="angleAxis"?{scale:linear(),realScaleType:"linear"}:nt==="category"&&et&&(et.indexOf("LineChart")>=0||et.indexOf("AreaChart")>=0||et.indexOf("ComposedChart")>=0&&!tt)?{scale:point(),realScaleType:"point"}:nt==="category"?{scale:band(),realScaleType:"band"}:{scale:linear(),realScaleType:"linear"};if(isString$1(rt)){var st="scale".concat(upperFirst$1(rt));return{scale:(d3Scales[st]||point)(),realScaleType:d3Scales[st]?st:"point"}}return isFunction$6(rt)?{scale:rt}:{scale:point(),realScaleType:"point"}},EPS=1e-4,checkDomainOfScale=function j(_e){var et=_e.domain();if(!(!et||et.length<=2)){var tt=et.length,rt=_e.range(),nt=Math.min(rt[0],rt[1])-EPS,ot=Math.max(rt[0],rt[1])+EPS,it=_e(et[0]),st=_e(et[tt-1]);(itot||stot)&&_e.domain([et[0],et[tt-1]])}},offsetSign=function j(_e){var et=_e.length;if(!(et<=0))for(var tt=0,rt=_e[0].length;tt=0?(_e[it][tt][0]=nt,_e[it][tt][1]=nt+st,nt=_e[it][tt][1]):(_e[it][tt][0]=ot,_e[it][tt][1]=ot+st,ot=_e[it][tt][1])}},offsetPositive=function j(_e){var et=_e.length;if(!(et<=0))for(var tt=0,rt=_e[0].length;tt=0?(_e[ot][tt][0]=nt,_e[ot][tt][1]=nt+it,nt=_e[ot][tt][1]):(_e[ot][tt][0]=0,_e[ot][tt][1]=0)}},STACK_OFFSET_MAP={sign:offsetSign,expand:stackOffsetExpand,none:stackOffsetNone,silhouette:stackOffsetSilhouette,wiggle:stackOffsetWiggle,positive:offsetPositive},getStackedData=function j(_e,et,tt){var rt=et.map(function(it){return it.props.dataKey}),nt=STACK_OFFSET_MAP[tt],ot=shapeStack().keys(rt).value(function(it,st){return+getValueByDataKey(it,st,0)}).order(stackOrderNone).offset(nt);return ot(_e)},getStackGroupsByAxisId=function j(_e,et,tt,rt,nt,ot){if(!_e)return null;var it=ot?et.reverse():et,st={},lt=it.reduce(function(ct,dt){var ft=dt.props,pt=ft.stackId,gt=ft.hide;if(gt)return ct;var vt=dt.props[tt],bt=ct[vt]||{hasStack:!1,stackGroups:{}};if(isNumOrStr(pt)){var _t=bt.stackGroups[pt]||{numericAxisId:tt,cateAxisId:rt,items:[]};_t.items.push(dt),bt.hasStack=!0,bt.stackGroups[pt]=_t}else bt.stackGroups[uniqueId("_stackId_")]={numericAxisId:tt,cateAxisId:rt,items:[dt]};return _objectSpread$m(_objectSpread$m({},ct),{},_defineProperty$n({},vt,bt))},st),ut={};return Object.keys(lt).reduce(function(ct,dt){var ft=lt[dt];if(ft.hasStack){var pt={};ft.stackGroups=Object.keys(ft.stackGroups).reduce(function(gt,vt){var bt=ft.stackGroups[vt];return _objectSpread$m(_objectSpread$m({},gt),{},_defineProperty$n({},vt,{numericAxisId:tt,cateAxisId:rt,items:bt.items,stackedData:getStackedData(_e,bt.items,nt)}))},pt)}return _objectSpread$m(_objectSpread$m({},ct),{},_defineProperty$n({},dt,ft))},ut)},getTicksOfScale=function j(_e,et){var tt=et.realScaleType,rt=et.type,nt=et.tickCount,ot=et.originalDomain,it=et.allowDecimals,st=tt||et.scale;if(st!=="auto"&&st!=="linear")return null;if(nt&&rt==="number"&&ot&&(ot[0]==="auto"||ot[1]==="auto")){var lt=_e.domain();if(!lt.length)return null;var ut=getNiceTickValues(lt,nt,it);return _e.domain([min$9(ut),max$8(ut)]),{niceTicks:ut}}if(nt&&rt==="number"){var ct=_e.domain(),dt=getTickValuesFixedDomain(ct,nt,it);return{niceTicks:dt}}return null},getStackedDataOfItem=function j(_e,et){var tt=_e.props.stackId;if(isNumOrStr(tt)){var rt=et[tt];if(rt){var nt=rt.items.indexOf(_e);return nt>=0?rt.stackedData[nt]:null}}return null},getDomainOfSingle=function j(_e){return _e.reduce(function(et,tt){return[min$9(tt.concat([et[0]]).filter(isNumber)),max$8(tt.concat([et[1]]).filter(isNumber))]},[1/0,-1/0])},getDomainOfStackGroups=function j(_e,et,tt){return Object.keys(_e).reduce(function(rt,nt){var ot=_e[nt],it=ot.stackedData,st=it.reduce(function(lt,ut){var ct=getDomainOfSingle(ut.slice(et,tt+1));return[Math.min(lt[0],ct[0]),Math.max(lt[1],ct[1])]},[1/0,-1/0]);return[Math.min(st[0],rt[0]),Math.max(st[1],rt[1])]},[1/0,-1/0]).map(function(rt){return rt===1/0||rt===-1/0?0:rt})},MIN_VALUE_REG=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,MAX_VALUE_REG=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,parseSpecifiedDomain=function j(_e,et,tt){if(isFunction$6(_e))return _e(et,tt);if(!Array.isArray(_e))return et;var rt=[];if(isNumber(_e[0]))rt[0]=tt?_e[0]:Math.min(_e[0],et[0]);else if(MIN_VALUE_REG.test(_e[0])){var nt=+MIN_VALUE_REG.exec(_e[0])[1];rt[0]=et[0]-nt}else isFunction$6(_e[0])?rt[0]=_e[0](et[0]):rt[0]=et[0];if(isNumber(_e[1]))rt[1]=tt?_e[1]:Math.max(_e[1],et[1]);else if(MAX_VALUE_REG.test(_e[1])){var ot=+MAX_VALUE_REG.exec(_e[1])[1];rt[1]=et[1]+ot}else isFunction$6(_e[1])?rt[1]=_e[1](et[1]):rt[1]=et[1];return rt},getBandSizeOfAxis=function j(_e,et,tt){if(_e&&_e.scale&&_e.scale.bandwidth){var rt=_e.scale.bandwidth();if(!tt||rt>0)return rt}if(_e&&et&&et.length>=2){for(var nt=sortBy$1(et,function(ct){return ct.coordinate}),ot=1/0,it=1,st=nt.length;itj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$4(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$4(j){if(Array.isArray(j))return j}var RADIAN$1=Math.PI/180,radianToDegree=function j(_e){return _e*180/Math.PI},polarToCartesian=function j(_e,et,tt,rt){return{x:_e+Math.cos(-RADIAN$1*rt)*tt,y:et+Math.sin(-RADIAN$1*rt)*tt}},getMaxRadius=function j(_e,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(_e-(tt.left||0)-(tt.right||0)),Math.abs(et-(tt.top||0)-(tt.bottom||0)))/2},formatAxisMap=function j(_e,et,tt,rt,nt){var ot=_e.width,it=_e.height,st=_e.startAngle,lt=_e.endAngle,ut=getPercentValue(_e.cx,ot,ot/2),ct=getPercentValue(_e.cy,it,it/2),dt=getMaxRadius(ot,it,tt),ft=getPercentValue(_e.innerRadius,dt,0),pt=getPercentValue(_e.outerRadius,dt,dt*.8),gt=Object.keys(et);return gt.reduce(function(vt,bt){var _t=et[bt],xt=_t.domain,yt=_t.reversed,Et;if(isNil$1(_t.range))rt==="angleAxis"?Et=[st,lt]:rt==="radiusAxis"&&(Et=[ft,pt]),yt&&(Et=[Et[1],Et[0]]);else{Et=_t.range;var St=Et,$t=_slicedToArray$4(St,2);st=$t[0],lt=$t[1]}var At=parseScale(_t,nt),wt=At.realScaleType,Ct=At.scale;Ct.domain(xt).range(Et),checkDomainOfScale(Ct);var It=getTicksOfScale(Ct,_objectSpread$l(_objectSpread$l({},_t),{},{realScaleType:wt})),Ot=_objectSpread$l(_objectSpread$l(_objectSpread$l({},_t),It),{},{range:Et,radius:pt,realScaleType:wt,scale:Ct,cx:ut,cy:ct,innerRadius:ft,outerRadius:pt,startAngle:st,endAngle:lt});return _objectSpread$l(_objectSpread$l({},vt),{},_defineProperty$m({},bt,Ot))},{})},distanceBetweenPoints=function j(_e,et){var tt=_e.x,rt=_e.y,nt=et.x,ot=et.y;return Math.sqrt(Math.pow(tt-nt,2)+Math.pow(rt-ot,2))},getAngleOfPoint=function j(_e,et){var tt=_e.x,rt=_e.y,nt=et.cx,ot=et.cy,it=distanceBetweenPoints({x:tt,y:rt},{x:nt,y:ot});if(it<=0)return{radius:it};var st=(tt-nt)/it,lt=Math.acos(st);return rt>ot&&(lt=2*Math.PI-lt),{radius:it,angle:radianToDegree(lt),angleInRadian:lt}},formatAngleOfSector=function j(_e){var et=_e.startAngle,tt=_e.endAngle,rt=Math.floor(et/360),nt=Math.floor(tt/360),ot=Math.min(rt,nt);return{startAngle:et-ot*360,endAngle:tt-ot*360}},reverseFormatAngleOfSetor=function j(_e,et){var tt=et.startAngle,rt=et.endAngle,nt=Math.floor(tt/360),ot=Math.floor(rt/360),it=Math.min(nt,ot);return _e+it*360},inRangeOfSector=function j(_e,et){var tt=_e.x,rt=_e.y,nt=getAngleOfPoint({x:tt,y:rt},et),ot=nt.radius,it=nt.angle,st=et.innerRadius,lt=et.outerRadius;if(otlt)return!1;if(ot===0)return!0;var ut=formatAngleOfSector(et),ct=ut.startAngle,dt=ut.endAngle,ft=it,pt;if(ct<=dt){for(;ft>dt;)ft-=360;for(;ft=ct&&ft<=dt}else{for(;ft>ct;)ft-=360;for(;ft=dt&&ft<=ct}return pt?_objectSpread$l(_objectSpread$l({},et),{},{radius:ot,angle:reverseFormatAngleOfSetor(ft,et)}):null};function _typeof$l(j){"@babel/helpers - typeof";return _typeof$l=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$l(j)}var _excluded$7=["offset"];function _toConsumableArray$4(j){return _arrayWithoutHoles$4(j)||_iterableToArray$4(j)||_unsupportedIterableToArray$7(j)||_nonIterableSpread$4()}function _nonIterableSpread$4(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$7(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$7(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$7(j,_e)}}function _iterableToArray$4(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$4(j){if(Array.isArray(j))return _arrayLikeToArray$7(j)}function _arrayLikeToArray$7(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _objectWithoutProperties$7(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$7(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$7(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function ownKeys$k(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$k(j){for(var _e=1;_e=0?1:-1,xt,yt;rt==="insideStart"?(xt=ft+_t*ot,yt=gt):rt==="insideEnd"?(xt=pt-_t*ot,yt=!gt):rt==="end"&&(xt=pt+_t*ot,yt=gt),yt=bt<=0?yt:!yt;var Et=polarToCartesian(lt,ut,vt,xt),St=polarToCartesian(lt,ut,vt,xt+(yt?1:-1)*359),$t="M".concat(Et.x,",").concat(Et.y,` + A`).concat(vt,",").concat(vt,",0,1,").concat(yt?0:1,`, + `).concat(St.x,",").concat(St.y),At=isNil$1(_e.id)?uniqueId("recharts-radial-line-"):_e.id;return React.createElement("text",_extends$h({},tt,{dominantBaseline:"central",className:clsx("recharts-radial-bar-label",it)}),React.createElement("defs",null,React.createElement("path",{id:At,d:$t})),React.createElement("textPath",{xlinkHref:"#".concat(At)},et))},getAttrsOfPolarLabel=function j(_e){var et=_e.viewBox,tt=_e.offset,rt=_e.position,nt=et,ot=nt.cx,it=nt.cy,st=nt.innerRadius,lt=nt.outerRadius,ut=nt.startAngle,ct=nt.endAngle,dt=(ut+ct)/2;if(rt==="outside"){var ft=polarToCartesian(ot,it,lt+tt,dt),pt=ft.x,gt=ft.y;return{x:pt,y:gt,textAnchor:pt>=ot?"start":"end",verticalAnchor:"middle"}}if(rt==="center")return{x:ot,y:it,textAnchor:"middle",verticalAnchor:"middle"};if(rt==="centerTop")return{x:ot,y:it,textAnchor:"middle",verticalAnchor:"start"};if(rt==="centerBottom")return{x:ot,y:it,textAnchor:"middle",verticalAnchor:"end"};var vt=(st+lt)/2,bt=polarToCartesian(ot,it,vt,dt),_t=bt.x,xt=bt.y;return{x:_t,y:xt,textAnchor:"middle",verticalAnchor:"middle"}},getAttrsOfCartesianLabel=function j(_e){var et=_e.viewBox,tt=_e.parentViewBox,rt=_e.offset,nt=_e.position,ot=et,it=ot.x,st=ot.y,lt=ot.width,ut=ot.height,ct=ut>=0?1:-1,dt=ct*rt,ft=ct>0?"end":"start",pt=ct>0?"start":"end",gt=lt>=0?1:-1,vt=gt*rt,bt=gt>0?"end":"start",_t=gt>0?"start":"end";if(nt==="top"){var xt={x:it+lt/2,y:st-ct*rt,textAnchor:"middle",verticalAnchor:ft};return _objectSpread$k(_objectSpread$k({},xt),tt?{height:Math.max(st-tt.y,0),width:lt}:{})}if(nt==="bottom"){var yt={x:it+lt/2,y:st+ut+dt,textAnchor:"middle",verticalAnchor:pt};return _objectSpread$k(_objectSpread$k({},yt),tt?{height:Math.max(tt.y+tt.height-(st+ut),0),width:lt}:{})}if(nt==="left"){var Et={x:it-vt,y:st+ut/2,textAnchor:bt,verticalAnchor:"middle"};return _objectSpread$k(_objectSpread$k({},Et),tt?{width:Math.max(Et.x-tt.x,0),height:ut}:{})}if(nt==="right"){var St={x:it+lt+vt,y:st+ut/2,textAnchor:_t,verticalAnchor:"middle"};return _objectSpread$k(_objectSpread$k({},St),tt?{width:Math.max(tt.x+tt.width-St.x,0),height:ut}:{})}var $t=tt?{width:lt,height:ut}:{};return nt==="insideLeft"?_objectSpread$k({x:it+vt,y:st+ut/2,textAnchor:_t,verticalAnchor:"middle"},$t):nt==="insideRight"?_objectSpread$k({x:it+lt-vt,y:st+ut/2,textAnchor:bt,verticalAnchor:"middle"},$t):nt==="insideTop"?_objectSpread$k({x:it+lt/2,y:st+dt,textAnchor:"middle",verticalAnchor:pt},$t):nt==="insideBottom"?_objectSpread$k({x:it+lt/2,y:st+ut-dt,textAnchor:"middle",verticalAnchor:ft},$t):nt==="insideTopLeft"?_objectSpread$k({x:it+vt,y:st+dt,textAnchor:_t,verticalAnchor:pt},$t):nt==="insideTopRight"?_objectSpread$k({x:it+lt-vt,y:st+dt,textAnchor:bt,verticalAnchor:pt},$t):nt==="insideBottomLeft"?_objectSpread$k({x:it+vt,y:st+ut-dt,textAnchor:_t,verticalAnchor:ft},$t):nt==="insideBottomRight"?_objectSpread$k({x:it+lt-vt,y:st+ut-dt,textAnchor:bt,verticalAnchor:ft},$t):isObject$x(nt)&&(isNumber(nt.x)||isPercent(nt.x))&&(isNumber(nt.y)||isPercent(nt.y))?_objectSpread$k({x:it+getPercentValue(nt.x,lt),y:st+getPercentValue(nt.y,ut),textAnchor:"end",verticalAnchor:"end"},$t):_objectSpread$k({x:it+lt/2,y:st+ut/2,textAnchor:"middle",verticalAnchor:"middle"},$t)},isPolar=function j(_e){return"cx"in _e&&isNumber(_e.cx)};function Label(j){var _e=j.offset,et=_e===void 0?5:_e,tt=_objectWithoutProperties$7(j,_excluded$7),rt=_objectSpread$k({offset:et},tt),nt=rt.viewBox,ot=rt.position,it=rt.value,st=rt.children,lt=rt.content,ut=rt.className,ct=ut===void 0?"":ut,dt=rt.textBreakAll;if(!nt||isNil$1(it)&&isNil$1(st)&&!reactExports.isValidElement(lt)&&!isFunction$6(lt))return null;if(reactExports.isValidElement(lt))return reactExports.cloneElement(lt,rt);var ft;if(isFunction$6(lt)){if(ft=reactExports.createElement(lt,rt),reactExports.isValidElement(ft))return ft}else ft=getLabel(rt);var pt=isPolar(nt),gt=filterProps(rt,!0);if(pt&&(ot==="insideStart"||ot==="insideEnd"||ot==="end"))return renderRadialLabel(rt,ft,gt);var vt=pt?getAttrsOfPolarLabel(rt):getAttrsOfCartesianLabel(rt);return React.createElement(Text$1,_extends$h({className:clsx("recharts-label",ct)},gt,vt,{breakAll:dt}),ft)}Label.displayName="Label";var parseViewBox=function j(_e){var et=_e.cx,tt=_e.cy,rt=_e.angle,nt=_e.startAngle,ot=_e.endAngle,it=_e.r,st=_e.radius,lt=_e.innerRadius,ut=_e.outerRadius,ct=_e.x,dt=_e.y,ft=_e.top,pt=_e.left,gt=_e.width,vt=_e.height,bt=_e.clockWise,_t=_e.labelViewBox;if(_t)return _t;if(isNumber(gt)&&isNumber(vt)){if(isNumber(ct)&&isNumber(dt))return{x:ct,y:dt,width:gt,height:vt};if(isNumber(ft)&&isNumber(pt))return{x:ft,y:pt,width:gt,height:vt}}return isNumber(ct)&&isNumber(dt)?{x:ct,y:dt,width:0,height:0}:isNumber(et)&&isNumber(tt)?{cx:et,cy:tt,startAngle:nt||rt||0,endAngle:ot||rt||0,innerRadius:lt||0,outerRadius:ut||st||it||0,clockWise:bt}:_e.viewBox?_e.viewBox:{}},parseLabel=function j(_e,et){return _e?_e===!0?React.createElement(Label,{key:"label-implicit",viewBox:et}):isNumOrStr(_e)?React.createElement(Label,{key:"label-implicit",viewBox:et,value:_e}):reactExports.isValidElement(_e)?_e.type===Label?reactExports.cloneElement(_e,{key:"label-implicit",viewBox:et}):React.createElement(Label,{key:"label-implicit",content:_e,viewBox:et}):isFunction$6(_e)?React.createElement(Label,{key:"label-implicit",content:_e,viewBox:et}):isObject$x(_e)?React.createElement(Label,_extends$h({viewBox:et},_e,{key:"label-implicit"})):null:null},renderCallByParent$1=function j(_e,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!_e||!_e.children&&tt&&!_e.label)return null;var rt=_e.children,nt=parseViewBox(_e),ot=findAllByType(rt,Label).map(function(st,lt){return reactExports.cloneElement(st,{viewBox:et||nt,key:"label-".concat(lt)})});if(!tt)return ot;var it=parseLabel(_e.label,et||nt);return[it].concat(_toConsumableArray$4(ot))};Label.parseViewBox=parseViewBox;Label.renderCallByParent=renderCallByParent$1;function _typeof$k(j){"@babel/helpers - typeof";return _typeof$k=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$k(j)}var _excluded$6=["valueAccessor"],_excluded2$3=["data","dataKey","clockWise","id","textBreakAll"];function _toConsumableArray$3(j){return _arrayWithoutHoles$3(j)||_iterableToArray$3(j)||_unsupportedIterableToArray$6(j)||_nonIterableSpread$3()}function _nonIterableSpread$3(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$6(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$6(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$6(j,_e)}}function _iterableToArray$3(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$3(j){if(Array.isArray(j))return _arrayLikeToArray$6(j)}function _arrayLikeToArray$6(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _extends$g(){return _extends$g=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$6(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var defaultAccessor=function j(_e){return Array.isArray(_e.value)?last$1(_e.value):_e.value};function LabelList(j){var _e=j.valueAccessor,et=_e===void 0?defaultAccessor:_e,tt=_objectWithoutProperties$6(j,_excluded$6),rt=tt.data,nt=tt.dataKey,ot=tt.clockWise,it=tt.id,st=tt.textBreakAll,lt=_objectWithoutProperties$6(tt,_excluded2$3);return!rt||!rt.length?null:React.createElement(Layer,{className:"recharts-label-list"},rt.map(function(ut,ct){var dt=isNil$1(nt)?et(ut,ct):getValueByDataKey(ut&&ut.payload,nt),ft=isNil$1(it)?{}:{id:"".concat(it,"-").concat(ct)};return React.createElement(Label,_extends$g({},filterProps(ut,!0),lt,ft,{parentViewBox:ut.parentViewBox,value:dt,textBreakAll:st,viewBox:Label.parseViewBox(isNil$1(ot)?ut:_objectSpread$j(_objectSpread$j({},ut),{},{clockWise:ot})),key:"label-".concat(ct),index:ct}))}))}LabelList.displayName="LabelList";function parseLabelList(j,_e){return j?j===!0?React.createElement(LabelList,{key:"labelList-implicit",data:_e}):React.isValidElement(j)||isFunction$6(j)?React.createElement(LabelList,{key:"labelList-implicit",data:_e,content:j}):isObject$x(j)?React.createElement(LabelList,_extends$g({data:_e},j,{key:"labelList-implicit"})):null:null}function renderCallByParent(j,_e){var et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!j||!j.children&&et&&!j.label)return null;var tt=j.children,rt=findAllByType(tt,LabelList).map(function(ot,it){return reactExports.cloneElement(ot,{data:_e,key:"labelList-".concat(it)})});if(!et)return rt;var nt=parseLabelList(j.label,_e);return[nt].concat(_toConsumableArray$3(rt))}LabelList.renderCallByParent=renderCallByParent;function _typeof$j(j){"@babel/helpers - typeof";return _typeof$j=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$j(j)}function _extends$f(){return _extends$f=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e180),",").concat(+(ot>lt),`, + `).concat(ct.x,",").concat(ct.y,` + `);if(rt>0){var ft=polarToCartesian(et,tt,rt,ot),pt=polarToCartesian(et,tt,rt,lt);dt+="L ".concat(pt.x,",").concat(pt.y,` + A `).concat(rt,",").concat(rt,`,0, + `).concat(+(Math.abs(st)>180),",").concat(+(ot<=lt),`, + `).concat(ft.x,",").concat(ft.y," Z")}else dt+="L ".concat(et,",").concat(tt," Z");return dt},getSectorWithCorner=function j(_e){var et=_e.cx,tt=_e.cy,rt=_e.innerRadius,nt=_e.outerRadius,ot=_e.cornerRadius,it=_e.forceCornerRadius,st=_e.cornerIsExternal,lt=_e.startAngle,ut=_e.endAngle,ct=mathSign(ut-lt),dt=getTangentCircle({cx:et,cy:tt,radius:nt,angle:lt,sign:ct,cornerRadius:ot,cornerIsExternal:st}),ft=dt.circleTangency,pt=dt.lineTangency,gt=dt.theta,vt=getTangentCircle({cx:et,cy:tt,radius:nt,angle:ut,sign:-ct,cornerRadius:ot,cornerIsExternal:st}),bt=vt.circleTangency,_t=vt.lineTangency,xt=vt.theta,yt=st?Math.abs(lt-ut):Math.abs(lt-ut)-gt-xt;if(yt<0)return it?"M ".concat(pt.x,",").concat(pt.y,` + a`).concat(ot,",").concat(ot,",0,0,1,").concat(ot*2,`,0 + a`).concat(ot,",").concat(ot,",0,0,1,").concat(-ot*2,`,0 + `):getSectorPath({cx:et,cy:tt,innerRadius:rt,outerRadius:nt,startAngle:lt,endAngle:ut});var Et="M ".concat(pt.x,",").concat(pt.y,` + A`).concat(ot,",").concat(ot,",0,0,").concat(+(ct<0),",").concat(ft.x,",").concat(ft.y,` + A`).concat(nt,",").concat(nt,",0,").concat(+(yt>180),",").concat(+(ct<0),",").concat(bt.x,",").concat(bt.y,` + A`).concat(ot,",").concat(ot,",0,0,").concat(+(ct<0),",").concat(_t.x,",").concat(_t.y,` + `);if(rt>0){var St=getTangentCircle({cx:et,cy:tt,radius:rt,angle:lt,sign:ct,isExternal:!0,cornerRadius:ot,cornerIsExternal:st}),$t=St.circleTangency,At=St.lineTangency,wt=St.theta,Ct=getTangentCircle({cx:et,cy:tt,radius:rt,angle:ut,sign:-ct,isExternal:!0,cornerRadius:ot,cornerIsExternal:st}),It=Ct.circleTangency,Ot=Ct.lineTangency,Nt=Ct.theta,Pt=st?Math.abs(lt-ut):Math.abs(lt-ut)-wt-Nt;if(Pt<0&&ot===0)return"".concat(Et,"L").concat(et,",").concat(tt,"Z");Et+="L".concat(Ot.x,",").concat(Ot.y,` + A`).concat(ot,",").concat(ot,",0,0,").concat(+(ct<0),",").concat(It.x,",").concat(It.y,` + A`).concat(rt,",").concat(rt,",0,").concat(+(Pt>180),",").concat(+(ct>0),",").concat($t.x,",").concat($t.y,` + A`).concat(ot,",").concat(ot,",0,0,").concat(+(ct<0),",").concat(At.x,",").concat(At.y,"Z")}else Et+="L".concat(et,",").concat(tt,"Z");return Et},defaultProps$2={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},Sector=function j(_e){var et=_objectSpread$i(_objectSpread$i({},defaultProps$2),_e),tt=et.cx,rt=et.cy,nt=et.innerRadius,ot=et.outerRadius,it=et.cornerRadius,st=et.forceCornerRadius,lt=et.cornerIsExternal,ut=et.startAngle,ct=et.endAngle,dt=et.className;if(ot0&&Math.abs(ut-ct)<360?vt=getSectorWithCorner({cx:tt,cy:rt,innerRadius:nt,outerRadius:ot,cornerRadius:Math.min(gt,pt/2),forceCornerRadius:st,cornerIsExternal:lt,startAngle:ut,endAngle:ct}):vt=getSectorPath({cx:tt,cy:rt,innerRadius:nt,outerRadius:ot,startAngle:ut,endAngle:ct}),React.createElement("path",_extends$f({},filterProps(et,!0),{className:ft,d:vt,role:"img"}))};function _typeof$i(j){"@babel/helpers - typeof";return _typeof$i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$i(j)}function _extends$e(){return _extends$e=Object.assign?Object.assign.bind():function(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$3(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$3(j){if(Array.isArray(j))return j}function ownKeys$g(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$g(j){for(var _e=1;_e=0?1:-1,st=tt>=0?1:-1,lt=rt>=0&&tt>=0||rt<0&&tt<0?1:0,ut;if(ot>0&&nt instanceof Array){for(var ct=[0,0,0,0],dt=0,ft=4;dtot?ot:nt[dt];ut="M".concat(_e,",").concat(et+it*ct[0]),ct[0]>0&&(ut+="A ".concat(ct[0],",").concat(ct[0],",0,0,").concat(lt,",").concat(_e+st*ct[0],",").concat(et)),ut+="L ".concat(_e+tt-st*ct[1],",").concat(et),ct[1]>0&&(ut+="A ".concat(ct[1],",").concat(ct[1],",0,0,").concat(lt,`, + `).concat(_e+tt,",").concat(et+it*ct[1])),ut+="L ".concat(_e+tt,",").concat(et+rt-it*ct[2]),ct[2]>0&&(ut+="A ".concat(ct[2],",").concat(ct[2],",0,0,").concat(lt,`, + `).concat(_e+tt-st*ct[2],",").concat(et+rt)),ut+="L ".concat(_e+st*ct[3],",").concat(et+rt),ct[3]>0&&(ut+="A ".concat(ct[3],",").concat(ct[3],",0,0,").concat(lt,`, + `).concat(_e,",").concat(et+rt-it*ct[3])),ut+="Z"}else if(ot>0&&nt===+nt&&nt>0){var pt=Math.min(ot,nt);ut="M ".concat(_e,",").concat(et+it*pt,` + A `).concat(pt,",").concat(pt,",0,0,").concat(lt,",").concat(_e+st*pt,",").concat(et,` + L `).concat(_e+tt-st*pt,",").concat(et,` + A `).concat(pt,",").concat(pt,",0,0,").concat(lt,",").concat(_e+tt,",").concat(et+it*pt,` + L `).concat(_e+tt,",").concat(et+rt-it*pt,` + A `).concat(pt,",").concat(pt,",0,0,").concat(lt,",").concat(_e+tt-st*pt,",").concat(et+rt,` + L `).concat(_e+st*pt,",").concat(et+rt,` + A `).concat(pt,",").concat(pt,",0,0,").concat(lt,",").concat(_e,",").concat(et+rt-it*pt," Z")}else ut="M ".concat(_e,",").concat(et," h ").concat(tt," v ").concat(rt," h ").concat(-tt," Z");return ut},isInRectangle=function j(_e,et){if(!_e||!et)return!1;var tt=_e.x,rt=_e.y,nt=et.x,ot=et.y,it=et.width,st=et.height;if(Math.abs(it)>0&&Math.abs(st)>0){var lt=Math.min(nt,nt+it),ut=Math.max(nt,nt+it),ct=Math.min(ot,ot+st),dt=Math.max(ot,ot+st);return tt>=lt&&tt<=ut&&rt>=ct&&rt<=dt}return!1},defaultProps$1={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Rectangle=function j(_e){var et=_objectSpread$g(_objectSpread$g({},defaultProps$1),_e),tt=reactExports.useRef(),rt=reactExports.useState(-1),nt=_slicedToArray$3(rt,2),ot=nt[0],it=nt[1];reactExports.useEffect(function(){if(tt.current&&tt.current.getTotalLength)try{var yt=tt.current.getTotalLength();yt&&it(yt)}catch{}},[]);var st=et.x,lt=et.y,ut=et.width,ct=et.height,dt=et.radius,ft=et.className,pt=et.animationEasing,gt=et.animationDuration,vt=et.animationBegin,bt=et.isAnimationActive,_t=et.isUpdateAnimationActive;if(st!==+st||lt!==+lt||ut!==+ut||ct!==+ct||ut===0||ct===0)return null;var xt=clsx("recharts-rectangle",ft);return _t?React.createElement(Animate,{canBegin:ot>0,from:{width:ut,height:ct,x:st,y:lt},to:{width:ut,height:ct,x:st,y:lt},duration:gt,animationEasing:pt,isActive:_t},function(yt){var Et=yt.width,St=yt.height,$t=yt.x,At=yt.y;return React.createElement(Animate,{canBegin:ot>0,from:"0px ".concat(ot===-1?1:ot,"px"),to:"".concat(ot,"px 0px"),attributeName:"strokeDasharray",begin:vt,duration:gt,isActive:bt,easing:pt},React.createElement("path",_extends$d({},filterProps(et,!0),{className:xt,d:getRectanglePath($t,At,Et,St,dt),ref:tt})))}):React.createElement("path",_extends$d({},filterProps(et,!0),{className:xt,d:getRectanglePath(st,lt,ut,ct,dt)}))},_excluded$5=["points","className","baseLinePoints","connectNulls"];function _extends$c(){return _extends$c=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$5(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _toConsumableArray$2(j){return _arrayWithoutHoles$2(j)||_iterableToArray$2(j)||_unsupportedIterableToArray$4(j)||_nonIterableSpread$2()}function _nonIterableSpread$2(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$4(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$4(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$4(j,_e)}}function _iterableToArray$2(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$2(j){if(Array.isArray(j))return _arrayLikeToArray$4(j)}function _arrayLikeToArray$4(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}var isValidatePoint=function j(_e){return _e&&_e.x===+_e.x&&_e.y===+_e.y},getParsedPoints=function j(){var _e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],et=[[]];return _e.forEach(function(tt){isValidatePoint(tt)?et[et.length-1].push(tt):et[et.length-1].length>0&&et.push([])}),isValidatePoint(_e[0])&&et[et.length-1].push(_e[0]),et[et.length-1].length<=0&&(et=et.slice(0,-1)),et},getSinglePolygonPath=function j(_e,et){var tt=getParsedPoints(_e);et&&(tt=[tt.reduce(function(nt,ot){return[].concat(_toConsumableArray$2(nt),_toConsumableArray$2(ot))},[])]);var rt=tt.map(function(nt){return nt.reduce(function(ot,it,st){return"".concat(ot).concat(st===0?"M":"L").concat(it.x,",").concat(it.y)},"")}).join("");return tt.length===1?"".concat(rt,"Z"):rt},getRanglePath=function j(_e,et,tt){var rt=getSinglePolygonPath(_e,tt);return"".concat(rt.slice(-1)==="Z"?rt.slice(0,-1):rt,"L").concat(getSinglePolygonPath(et.reverse(),tt).slice(1))},Polygon=function j(_e){var et=_e.points,tt=_e.className,rt=_e.baseLinePoints,nt=_e.connectNulls,ot=_objectWithoutProperties$5(_e,_excluded$5);if(!et||!et.length)return null;var it=clsx("recharts-polygon",tt);if(rt&&rt.length){var st=ot.stroke&&ot.stroke!=="none",lt=getRanglePath(et,rt,nt);return React.createElement("g",{className:it},React.createElement("path",_extends$c({},filterProps(ot,!0),{fill:lt.slice(-1)==="Z"?ot.fill:"none",stroke:"none",d:lt})),st?React.createElement("path",_extends$c({},filterProps(ot,!0),{fill:"none",d:getSinglePolygonPath(et,nt)})):null,st?React.createElement("path",_extends$c({},filterProps(ot,!0),{fill:"none",d:getSinglePolygonPath(rt,nt)})):null)}var ut=getSinglePolygonPath(et,nt);return React.createElement("path",_extends$c({},filterProps(ot,!0),{fill:ut.slice(-1)==="Z"?ot.fill:"none",className:it,d:ut}))};function _extends$b(){return _extends$b=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$4(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var getPath=function j(_e,et,tt,rt,nt,ot){return"M".concat(_e,",").concat(nt,"v").concat(rt,"M").concat(ot,",").concat(et,"h").concat(tt)},Cross=function j(_e){var et=_e.x,tt=et===void 0?0:et,rt=_e.y,nt=rt===void 0?0:rt,ot=_e.top,it=ot===void 0?0:ot,st=_e.left,lt=st===void 0?0:st,ut=_e.width,ct=ut===void 0?0:ut,dt=_e.height,ft=dt===void 0?0:dt,pt=_e.className,gt=_objectWithoutProperties$4(_e,_excluded$4),vt=_objectSpread$f({x:tt,y:nt,top:it,left:lt,width:ct,height:ft},gt);return!isNumber(tt)||!isNumber(nt)||!isNumber(ct)||!isNumber(ft)||!isNumber(it)||!isNumber(lt)?null:React.createElement("path",_extends$a({},filterProps(vt,!0),{className:clsx("recharts-cross",pt),d:getPath(tt,nt,ct,ft,it,lt)}))},baseExtremum=_baseExtremum,baseGt=_baseGt,baseIteratee$2=_baseIteratee;function maxBy(j,_e){return j&&j.length?baseExtremum(j,baseIteratee$2(_e),baseGt):void 0}var maxBy_1=maxBy;const maxBy$1=getDefaultExportFromCjs(maxBy_1);var _excluded$3=["cx","cy","angle","ticks","axisLine"],_excluded2$2=["ticks","tick","angle","tickFormatter","stroke"];function _typeof$f(j){"@babel/helpers - typeof";return _typeof$f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$f(j)}function _extends$9(){return _extends$9=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$3(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _classCallCheck$7(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$7(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey$f(tt.key),tt)}}function _createClass$7(j,_e,et){return _e&&_defineProperties$7(j.prototype,_e),et&&_defineProperties$7(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits$5(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf$5(j,_e)}function _setPrototypeOf$5(j,_e){return _setPrototypeOf$5=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$5(j,_e)}function _createSuper$5(j){var _e=_isNativeReflectConstruct$5();return function(){var tt=_getPrototypeOf$5(j),rt;if(_e){var nt=_getPrototypeOf$5(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn$5(this,rt)}}function _possibleConstructorReturn$5(j,_e){if(_e&&(_typeof$f(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$5(j)}function _assertThisInitialized$5(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$5(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$5(j){return _getPrototypeOf$5=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$5(j)}function _defineProperty$f(j,_e,et){return _e=_toPropertyKey$f(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$f(j){var _e=_toPrimitive$f(j,"string");return _typeof$f(_e)==="symbol"?_e:String(_e)}function _toPrimitive$f(j,_e){if(_typeof$f(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$f(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var PolarRadiusAxis=function(j){_inherits$5(et,j);var _e=_createSuper$5(et);function et(){return _classCallCheck$7(this,et),_e.apply(this,arguments)}return _createClass$7(et,[{key:"getTickValueCoord",value:function(rt){var nt=rt.coordinate,ot=this.props,it=ot.angle,st=ot.cx,lt=ot.cy;return polarToCartesian(st,lt,nt,it)}},{key:"getTickTextAnchor",value:function(){var rt=this.props.orientation,nt;switch(rt){case"left":nt="end";break;case"right":nt="start";break;default:nt="middle";break}return nt}},{key:"getViewBox",value:function(){var rt=this.props,nt=rt.cx,ot=rt.cy,it=rt.angle,st=rt.ticks,lt=maxBy$1(st,function(ct){return ct.coordinate||0}),ut=minBy$1(st,function(ct){return ct.coordinate||0});return{cx:nt,cy:ot,startAngle:it,endAngle:it,innerRadius:ut.coordinate||0,outerRadius:lt.coordinate||0}}},{key:"renderAxisLine",value:function(){var rt=this.props,nt=rt.cx,ot=rt.cy,it=rt.angle,st=rt.ticks,lt=rt.axisLine,ut=_objectWithoutProperties$3(rt,_excluded$3),ct=st.reduce(function(gt,vt){return[Math.min(gt[0],vt.coordinate),Math.max(gt[1],vt.coordinate)]},[1/0,-1/0]),dt=polarToCartesian(nt,ot,ct[0],it),ft=polarToCartesian(nt,ot,ct[1],it),pt=_objectSpread$e(_objectSpread$e(_objectSpread$e({},filterProps(ut)),{},{fill:"none"},filterProps(lt)),{},{x1:dt.x,y1:dt.y,x2:ft.x,y2:ft.y});return React.createElement("line",_extends$9({className:"recharts-polar-radius-axis-line"},pt))}},{key:"renderTicks",value:function(){var rt=this,nt=this.props,ot=nt.ticks,it=nt.tick,st=nt.angle,lt=nt.tickFormatter,ut=nt.stroke,ct=_objectWithoutProperties$3(nt,_excluded2$2),dt=this.getTickTextAnchor(),ft=filterProps(ct),pt=filterProps(it),gt=ot.map(function(vt,bt){var _t=rt.getTickValueCoord(vt),xt=_objectSpread$e(_objectSpread$e(_objectSpread$e(_objectSpread$e({textAnchor:dt,transform:"rotate(".concat(90-st,", ").concat(_t.x,", ").concat(_t.y,")")},ft),{},{stroke:"none",fill:ut},pt),{},{index:bt},_t),{},{payload:vt});return React.createElement(Layer,_extends$9({className:"recharts-polar-radius-axis-tick",key:"tick-".concat(vt.coordinate)},adaptEventsOfChild(rt.props,vt,bt)),et.renderTickItem(it,xt,lt?lt(vt.value,bt):vt.value))});return React.createElement(Layer,{className:"recharts-polar-radius-axis-ticks"},gt)}},{key:"render",value:function(){var rt=this.props,nt=rt.ticks,ot=rt.axisLine,it=rt.tick;return!nt||!nt.length?null:React.createElement(Layer,{className:"recharts-polar-radius-axis"},ot&&this.renderAxisLine(),it&&this.renderTicks(),Label.renderCallByParent(this.props,this.getViewBox()))}}],[{key:"renderTickItem",value:function(rt,nt,ot){var it;return React.isValidElement(rt)?it=React.cloneElement(rt,nt):isFunction$6(rt)?it=rt(nt):it=React.createElement(Text$1,_extends$9({},nt,{className:"recharts-polar-radius-axis-tick-value"}),ot),it}}]),et}(reactExports.PureComponent);_defineProperty$f(PolarRadiusAxis,"displayName","PolarRadiusAxis");_defineProperty$f(PolarRadiusAxis,"axisType","radiusAxis");_defineProperty$f(PolarRadiusAxis,"defaultProps",{type:"number",radiusAxisId:0,cx:0,cy:0,angle:0,orientation:"right",stroke:"#ccc",axisLine:!0,tick:!0,tickCount:5,allowDataOverflow:!1,scale:"auto",allowDuplicatedCategory:!0});function _typeof$e(j){"@babel/helpers - typeof";return _typeof$e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$e(j)}function _extends$8(){return _extends$8=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$4(j){return _getPrototypeOf$4=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$4(j)}function _defineProperty$e(j,_e,et){return _e=_toPropertyKey$e(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$e(j){var _e=_toPrimitive$e(j,"string");return _typeof$e(_e)==="symbol"?_e:String(_e)}function _toPrimitive$e(j,_e){if(_typeof$e(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$e(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var RADIAN=Math.PI/180,eps=1e-5,PolarAngleAxis=function(j){_inherits$4(et,j);var _e=_createSuper$4(et);function et(){return _classCallCheck$6(this,et),_e.apply(this,arguments)}return _createClass$6(et,[{key:"getTickLineCoord",value:function(rt){var nt=this.props,ot=nt.cx,it=nt.cy,st=nt.radius,lt=nt.orientation,ut=nt.tickSize,ct=ut||8,dt=polarToCartesian(ot,it,st,rt.coordinate),ft=polarToCartesian(ot,it,st+(lt==="inner"?-1:1)*ct,rt.coordinate);return{x1:dt.x,y1:dt.y,x2:ft.x,y2:ft.y}}},{key:"getTickTextAnchor",value:function(rt){var nt=this.props.orientation,ot=Math.cos(-rt.coordinate*RADIAN),it;return ot>eps?it=nt==="outer"?"start":"end":ot<-eps?it=nt==="outer"?"end":"start":it="middle",it}},{key:"renderAxisLine",value:function(){var rt=this.props,nt=rt.cx,ot=rt.cy,it=rt.radius,st=rt.axisLine,lt=rt.axisLineType,ut=_objectSpread$d(_objectSpread$d({},filterProps(this.props)),{},{fill:"none"},filterProps(st));if(lt==="circle")return React.createElement(Dot,_extends$8({className:"recharts-polar-angle-axis-line"},ut,{cx:nt,cy:ot,r:it}));var ct=this.props.ticks,dt=ct.map(function(ft){return polarToCartesian(nt,ot,it,ft.coordinate)});return React.createElement(Polygon,_extends$8({className:"recharts-polar-angle-axis-line"},ut,{points:dt}))}},{key:"renderTicks",value:function(){var rt=this,nt=this.props,ot=nt.ticks,it=nt.tick,st=nt.tickLine,lt=nt.tickFormatter,ut=nt.stroke,ct=filterProps(this.props),dt=filterProps(it),ft=_objectSpread$d(_objectSpread$d({},ct),{},{fill:"none"},filterProps(st)),pt=ot.map(function(gt,vt){var bt=rt.getTickLineCoord(gt),_t=rt.getTickTextAnchor(gt),xt=_objectSpread$d(_objectSpread$d(_objectSpread$d({textAnchor:_t},ct),{},{stroke:"none",fill:ut},dt),{},{index:vt,payload:gt,x:bt.x2,y:bt.y2});return React.createElement(Layer,_extends$8({className:"recharts-polar-angle-axis-tick",key:"tick-".concat(gt.coordinate)},adaptEventsOfChild(rt.props,gt,vt)),st&&React.createElement("line",_extends$8({className:"recharts-polar-angle-axis-tick-line"},ft,bt)),it&&et.renderTickItem(it,xt,lt?lt(gt.value,vt):gt.value))});return React.createElement(Layer,{className:"recharts-polar-angle-axis-ticks"},pt)}},{key:"render",value:function(){var rt=this.props,nt=rt.ticks,ot=rt.radius,it=rt.axisLine;return ot<=0||!nt||!nt.length?null:React.createElement(Layer,{className:"recharts-polar-angle-axis"},it&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(rt,nt,ot){var it;return React.isValidElement(rt)?it=React.cloneElement(rt,nt):isFunction$6(rt)?it=rt(nt):it=React.createElement(Text$1,_extends$8({},nt,{className:"recharts-polar-angle-axis-tick-value"}),ot),it}}]),et}(reactExports.PureComponent);_defineProperty$e(PolarAngleAxis,"displayName","PolarAngleAxis");_defineProperty$e(PolarAngleAxis,"axisType","angleAxis");_defineProperty$e(PolarAngleAxis,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var baseGetTag=_baseGetTag,isObjectLike=isObjectLike_1,boolTag="[object Boolean]";function isBoolean(j){return j===!0||j===!1||isObjectLike(j)&&baseGetTag(j)==boolTag}var isBoolean_1=isBoolean;const isBoolean$1=getDefaultExportFromCjs(isBoolean_1);function _typeof$d(j){"@babel/helpers - typeof";return _typeof$d=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$d(j)}function _extends$7(){return _extends$7=Object.assign?Object.assign.bind():function(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$2(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$2(j){if(Array.isArray(j))return j}function ownKeys$c(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$c(j){for(var _e=1;_e0,from:{upperWidth:0,lowerWidth:0,height:dt,x:st,y:lt},to:{upperWidth:ut,lowerWidth:ct,height:dt,x:st,y:lt},duration:gt,animationEasing:pt,isActive:bt},function(xt){var yt=xt.upperWidth,Et=xt.lowerWidth,St=xt.height,$t=xt.x,At=xt.y;return React.createElement(Animate,{canBegin:ot>0,from:"0px ".concat(ot===-1?1:ot,"px"),to:"".concat(ot,"px 0px"),attributeName:"strokeDasharray",begin:vt,duration:gt,easing:pt},React.createElement("path",_extends$7({},filterProps(et,!0),{className:_t,d:getTrapezoidPath($t,At,yt,Et,St),ref:tt})))}):React.createElement("g",null,React.createElement("path",_extends$7({},filterProps(et,!0),{className:_t,d:getTrapezoidPath(st,lt,ut,ct,dt)})))},_excluded$2=["option","shapeType","propTransformer","activeClassName","isActive"];function _typeof$c(j){"@babel/helpers - typeof";return _typeof$c=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$c(j)}function _objectWithoutProperties$2(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$2(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$2(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function ownKeys$b(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$b(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$3(j){return _getPrototypeOf$3=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$3(j)}function _defineProperty$b(j,_e,et){return _e=_toPropertyKey$b(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$b(j){var _e=_toPrimitive$b(j,"string");return _typeof$b(_e)==="symbol"?_e:String(_e)}function _toPrimitive$b(j,_e){if(_typeof$b(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$b(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var Pie=function(j){_inherits$3(et,j);var _e=_createSuper$3(et);function et(tt){var rt;return _classCallCheck$5(this,et),rt=_e.call(this,tt),_defineProperty$b(_assertThisInitialized$3(rt),"pieRef",null),_defineProperty$b(_assertThisInitialized$3(rt),"sectorRefs",[]),_defineProperty$b(_assertThisInitialized$3(rt),"id",uniqueId("recharts-pie-")),_defineProperty$b(_assertThisInitialized$3(rt),"handleAnimationEnd",function(){var nt=rt.props.onAnimationEnd;rt.setState({isAnimationFinished:!0}),isFunction$6(nt)&&nt()}),_defineProperty$b(_assertThisInitialized$3(rt),"handleAnimationStart",function(){var nt=rt.props.onAnimationStart;rt.setState({isAnimationFinished:!1}),isFunction$6(nt)&&nt()}),rt.state={isAnimationFinished:!tt.isAnimationActive,prevIsAnimationActive:tt.isAnimationActive,prevAnimationId:tt.animationId,sectorToFocus:0},rt}return _createClass$5(et,[{key:"isActiveIndex",value:function(rt){var nt=this.props.activeIndex;return Array.isArray(nt)?nt.indexOf(rt)!==-1:rt===nt}},{key:"hasActiveIndex",value:function(){var rt=this.props.activeIndex;return Array.isArray(rt)?rt.length!==0:rt||rt===0}},{key:"renderLabels",value:function(rt){var nt=this.props.isAnimationActive;if(nt&&!this.state.isAnimationFinished)return null;var ot=this.props,it=ot.label,st=ot.labelLine,lt=ot.dataKey,ut=ot.valueKey,ct=filterProps(this.props),dt=filterProps(it),ft=filterProps(st),pt=it&&it.offsetRadius||20,gt=rt.map(function(vt,bt){var _t=(vt.startAngle+vt.endAngle)/2,xt=polarToCartesian(vt.cx,vt.cy,vt.outerRadius+pt,_t),yt=_objectSpread$a(_objectSpread$a(_objectSpread$a(_objectSpread$a({},ct),vt),{},{stroke:"none"},dt),{},{index:bt,textAnchor:et.getTextAnchor(xt.x,vt.cx)},xt),Et=_objectSpread$a(_objectSpread$a(_objectSpread$a(_objectSpread$a({},ct),vt),{},{fill:"none",stroke:vt.fill},ft),{},{index:bt,points:[polarToCartesian(vt.cx,vt.cy,vt.outerRadius,_t),xt],key:"line"}),St=lt;return isNil$1(lt)&&isNil$1(ut)?St="value":isNil$1(lt)&&(St=ut),React.createElement(Layer,{key:"label-".concat(vt.startAngle,"-").concat(vt.endAngle)},st&&et.renderLabelLineItem(st,Et),et.renderLabelItem(it,yt,getValueByDataKey(vt,St)))});return React.createElement(Layer,{className:"recharts-pie-labels"},gt)}},{key:"renderSectorsStatically",value:function(rt){var nt=this,ot=this.props,it=ot.activeShape,st=ot.blendStroke,lt=ot.inactiveShape;return rt.map(function(ut,ct){if((ut==null?void 0:ut.startAngle)===0&&(ut==null?void 0:ut.endAngle)===0&&rt.length!==1)return null;var dt=nt.isActiveIndex(ct),ft=lt&&nt.hasActiveIndex()?lt:null,pt=dt?it:ft,gt=_objectSpread$a(_objectSpread$a({},ut),{},{stroke:st?ut.fill:ut.stroke,tabIndex:-1});return React.createElement(Layer,_extends$6({ref:function(bt){bt&&!nt.sectorRefs.includes(bt)&&nt.sectorRefs.push(bt)},tabIndex:-1,className:"recharts-pie-sector"},adaptEventsOfChild(nt.props,ut,ct),{key:"sector-".concat(ut==null?void 0:ut.startAngle,"-").concat(ut==null?void 0:ut.endAngle,"-").concat(ut.midAngle)}),React.createElement(Shape,_extends$6({option:pt,isActive:dt,shapeType:"sector"},gt)))})}},{key:"renderSectorsWithAnimation",value:function(){var rt=this,nt=this.props,ot=nt.sectors,it=nt.isAnimationActive,st=nt.animationBegin,lt=nt.animationDuration,ut=nt.animationEasing,ct=nt.animationId,dt=this.state,ft=dt.prevSectors,pt=dt.prevIsAnimationActive;return React.createElement(Animate,{begin:st,duration:lt,isActive:it,easing:ut,from:{t:0},to:{t:1},key:"pie-".concat(ct,"-").concat(pt),onAnimationStart:this.handleAnimationStart,onAnimationEnd:this.handleAnimationEnd},function(gt){var vt=gt.t,bt=[],_t=ot&&ot[0],xt=_t.startAngle;return ot.forEach(function(yt,Et){var St=ft&&ft[Et],$t=Et>0?get$5(yt,"paddingAngle",0):0;if(St){var At=interpolateNumber$2(St.endAngle-St.startAngle,yt.endAngle-yt.startAngle),wt=_objectSpread$a(_objectSpread$a({},yt),{},{startAngle:xt+$t,endAngle:xt+At(vt)+$t});bt.push(wt),xt=wt.endAngle}else{var Ct=yt.endAngle,It=yt.startAngle,Ot=interpolateNumber$2(0,Ct-It),Nt=Ot(vt),Pt=_objectSpread$a(_objectSpread$a({},yt),{},{startAngle:xt+$t,endAngle:xt+Nt+$t});bt.push(Pt),xt=Pt.endAngle}}),React.createElement(Layer,null,rt.renderSectorsStatically(bt))})}},{key:"attachKeyboardHandlers",value:function(rt){var nt=this;rt.onkeydown=function(ot){if(!ot.altKey)switch(ot.key){case"ArrowLeft":{var it=++nt.state.sectorToFocus%nt.sectorRefs.length;nt.sectorRefs[it].focus(),nt.setState({sectorToFocus:it});break}case"ArrowRight":{var st=--nt.state.sectorToFocus<0?nt.sectorRefs.length-1:nt.state.sectorToFocus%nt.sectorRefs.length;nt.sectorRefs[st].focus(),nt.setState({sectorToFocus:st});break}case"Escape":{nt.sectorRefs[nt.state.sectorToFocus].blur(),nt.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var rt=this.props,nt=rt.sectors,ot=rt.isAnimationActive,it=this.state.prevSectors;return ot&&nt&&nt.length&&(!it||!isEqual$1(it,nt))?this.renderSectorsWithAnimation():this.renderSectorsStatically(nt)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var rt=this,nt=this.props,ot=nt.hide,it=nt.sectors,st=nt.className,lt=nt.label,ut=nt.cx,ct=nt.cy,dt=nt.innerRadius,ft=nt.outerRadius,pt=nt.isAnimationActive,gt=this.state.isAnimationFinished;if(ot||!it||!it.length||!isNumber(ut)||!isNumber(ct)||!isNumber(dt)||!isNumber(ft))return null;var vt=clsx("recharts-pie",st);return React.createElement(Layer,{tabIndex:this.props.rootTabIndex,className:vt,ref:function(_t){rt.pieRef=_t}},this.renderSectors(),lt&&this.renderLabels(it),Label.renderCallByParent(this.props,null,!1),(!pt||gt)&&LabelList.renderCallByParent(this.props,it,!1))}}],[{key:"getDerivedStateFromProps",value:function(rt,nt){return nt.prevIsAnimationActive!==rt.isAnimationActive?{prevIsAnimationActive:rt.isAnimationActive,prevAnimationId:rt.animationId,curSectors:rt.sectors,prevSectors:[],isAnimationFinished:!0}:rt.isAnimationActive&&rt.animationId!==nt.prevAnimationId?{prevAnimationId:rt.animationId,curSectors:rt.sectors,prevSectors:nt.curSectors,isAnimationFinished:!0}:rt.sectors!==nt.curSectors?{curSectors:rt.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(rt,nt){return rt>nt?"start":rt=360?_t:_t-1)*st,yt=vt-_t*ft-xt,Et=tt.reduce(function(At,wt){var Ct=getValueByDataKey(wt,bt,0);return At+(isNumber(Ct)?Ct:0)},0),St;if(Et>0){var $t;St=tt.map(function(At,wt){var Ct=getValueByDataKey(At,bt,0),It=getValueByDataKey(At,ut,wt),Ot=(isNumber(Ct)?Ct:0)/Et,Nt;wt?Nt=$t.endAngle+mathSign(gt)*st*(Ct!==0?1:0):Nt=ot;var Pt=Nt+mathSign(gt)*((Ct!==0?ft:0)+Ot*yt),Mt=(Nt+Pt)/2,Rt=(pt.innerRadius+pt.outerRadius)/2,Lt=[{name:It,value:Ct,payload:At,dataKey:bt,type:dt}],jt=polarToCartesian(pt.cx,pt.cy,Rt,Mt);return $t=_objectSpread$a(_objectSpread$a(_objectSpread$a({percent:Ot,cornerRadius:nt,name:It,tooltipPayload:Lt,midAngle:Mt,middleRadius:Rt,tooltipPosition:jt},At),pt),{},{value:getValueByDataKey(At,bt),startAngle:Nt,endAngle:Pt,payload:At,paddingAngle:mathSign(gt)*st}),$t})}return _objectSpread$a(_objectSpread$a({},pt),{},{sectors:St,data:tt})});function _typeof$a(j){"@babel/helpers - typeof";return _typeof$a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$a(j)}function ownKeys$9(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$9(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$2(j){return _getPrototypeOf$2=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$2(j)}function _defineProperty$9(j,_e,et){return _e=_toPropertyKey$9(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$9(j){var _e=_toPrimitive$9(j,"string");return _typeof$9(_e)==="symbol"?_e:String(_e)}function _toPrimitive$9(j,_e){if(_typeof$9(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$9(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var createScale=function j(_e){var et=_e.data,tt=_e.startIndex,rt=_e.endIndex,nt=_e.x,ot=_e.width,it=_e.travellerWidth;if(!et||!et.length)return{};var st=et.length,lt=point().domain(range$4(0,st)).range([nt,nt+ot-it]),ut=lt.domain().map(function(ct){return lt(ct)});return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,isTravellerFocused:!1,startX:lt(tt),endX:lt(rt),scale:lt,scaleValues:ut}},isTouch=function j(_e){return _e.changedTouches&&!!_e.changedTouches.length},Brush=function(j){_inherits$2(et,j);var _e=_createSuper$2(et);function et(tt){var rt;return _classCallCheck$4(this,et),rt=_e.call(this,tt),_defineProperty$9(_assertThisInitialized$2(rt),"handleDrag",function(nt){rt.leaveTimer&&(clearTimeout(rt.leaveTimer),rt.leaveTimer=null),rt.state.isTravellerMoving?rt.handleTravellerMove(nt):rt.state.isSlideMoving&&rt.handleSlideDrag(nt)}),_defineProperty$9(_assertThisInitialized$2(rt),"handleTouchMove",function(nt){nt.changedTouches!=null&&nt.changedTouches.length>0&&rt.handleDrag(nt.changedTouches[0])}),_defineProperty$9(_assertThisInitialized$2(rt),"handleDragEnd",function(){rt.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var nt=rt.props,ot=nt.endIndex,it=nt.onDragEnd,st=nt.startIndex;it==null||it({endIndex:ot,startIndex:st})}),rt.detachDragEndListener()}),_defineProperty$9(_assertThisInitialized$2(rt),"handleLeaveWrapper",function(){(rt.state.isTravellerMoving||rt.state.isSlideMoving)&&(rt.leaveTimer=window.setTimeout(rt.handleDragEnd,rt.props.leaveTimeOut))}),_defineProperty$9(_assertThisInitialized$2(rt),"handleEnterSlideOrTraveller",function(){rt.setState({isTextActive:!0})}),_defineProperty$9(_assertThisInitialized$2(rt),"handleLeaveSlideOrTraveller",function(){rt.setState({isTextActive:!1})}),_defineProperty$9(_assertThisInitialized$2(rt),"handleSlideDragStart",function(nt){var ot=isTouch(nt)?nt.changedTouches[0]:nt;rt.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:ot.pageX}),rt.attachDragEndListener()}),rt.travellerDragStartHandlers={startX:rt.handleTravellerDragStart.bind(_assertThisInitialized$2(rt),"startX"),endX:rt.handleTravellerDragStart.bind(_assertThisInitialized$2(rt),"endX")},rt.state={},rt}return _createClass$4(et,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(rt){var nt=rt.startX,ot=rt.endX,it=this.state.scaleValues,st=this.props,lt=st.gap,ut=st.data,ct=ut.length-1,dt=Math.min(nt,ot),ft=Math.max(nt,ot),pt=et.getIndexInRange(it,dt),gt=et.getIndexInRange(it,ft);return{startIndex:pt-pt%lt,endIndex:gt===ct?ct:gt-gt%lt}}},{key:"getTextOfTick",value:function(rt){var nt=this.props,ot=nt.data,it=nt.tickFormatter,st=nt.dataKey,lt=getValueByDataKey(ot[rt],st,rt);return isFunction$6(it)?it(lt,rt):lt}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(rt){var nt=this.state,ot=nt.slideMoveStartX,it=nt.startX,st=nt.endX,lt=this.props,ut=lt.x,ct=lt.width,dt=lt.travellerWidth,ft=lt.startIndex,pt=lt.endIndex,gt=lt.onChange,vt=rt.pageX-ot;vt>0?vt=Math.min(vt,ut+ct-dt-st,ut+ct-dt-it):vt<0&&(vt=Math.max(vt,ut-it,ut-st));var bt=this.getIndex({startX:it+vt,endX:st+vt});(bt.startIndex!==ft||bt.endIndex!==pt)&>&>(bt),this.setState({startX:it+vt,endX:st+vt,slideMoveStartX:rt.pageX})}},{key:"handleTravellerDragStart",value:function(rt,nt){var ot=isTouch(nt)?nt.changedTouches[0]:nt;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:rt,brushMoveStartX:ot.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(rt){var nt,ot=this.state,it=ot.brushMoveStartX,st=ot.movingTravellerId,lt=ot.endX,ut=ot.startX,ct=this.state[st],dt=this.props,ft=dt.x,pt=dt.width,gt=dt.travellerWidth,vt=dt.onChange,bt=dt.gap,_t=dt.data,xt={startX:this.state.startX,endX:this.state.endX},yt=rt.pageX-it;yt>0?yt=Math.min(yt,ft+pt-gt-ct):yt<0&&(yt=Math.max(yt,ft-ct)),xt[st]=ct+yt;var Et=this.getIndex(xt),St=Et.startIndex,$t=Et.endIndex,At=function(){var Ct=_t.length-1;return st==="startX"&&(lt>ut?St%bt===0:$t%bt===0)||ltut?$t%bt===0:St%bt===0)||lt>ut&&$t===Ct};this.setState((nt={},_defineProperty$9(nt,st,ct+yt),_defineProperty$9(nt,"brushMoveStartX",rt.pageX),nt),function(){vt&&At()&&vt(Et)})}},{key:"handleTravellerMoveKeyboard",value:function(rt,nt){var ot=this,it=this.state,st=it.scaleValues,lt=it.startX,ut=it.endX,ct=this.state[nt],dt=st.indexOf(ct);if(dt!==-1){var ft=dt+rt;if(!(ft===-1||ft>=st.length)){var pt=st[ft];nt==="startX"&&pt>=ut||nt==="endX"&&pt<=lt||this.setState(_defineProperty$9({},nt,pt),function(){ot.props.onChange(ot.getIndex({startX:ot.state.startX,endX:ot.state.endX}))})}}}},{key:"renderBackground",value:function(){var rt=this.props,nt=rt.x,ot=rt.y,it=rt.width,st=rt.height,lt=rt.fill,ut=rt.stroke;return React.createElement("rect",{stroke:ut,fill:lt,x:nt,y:ot,width:it,height:st})}},{key:"renderPanorama",value:function(){var rt=this.props,nt=rt.x,ot=rt.y,it=rt.width,st=rt.height,lt=rt.data,ut=rt.children,ct=rt.padding,dt=reactExports.Children.only(ut);return dt?React.cloneElement(dt,{x:nt,y:ot,width:it,height:st,margin:ct,compact:!0,data:lt}):null}},{key:"renderTravellerLayer",value:function(rt,nt){var ot=this,it=this.props,st=it.y,lt=it.travellerWidth,ut=it.height,ct=it.traveller,dt=it.ariaLabel,ft=it.data,pt=it.startIndex,gt=it.endIndex,vt=Math.max(rt,this.props.x),bt=_objectSpread$8(_objectSpread$8({},filterProps(this.props)),{},{x:vt,y:st,width:lt,height:ut}),_t=dt||"Min value: ".concat(ft[pt].name,", Max value: ").concat(ft[gt].name);return React.createElement(Layer,{tabIndex:0,role:"slider","aria-label":_t,"aria-valuenow":rt,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[nt],onTouchStart:this.travellerDragStartHandlers[nt],onKeyDown:function(yt){["ArrowLeft","ArrowRight"].includes(yt.key)&&(yt.preventDefault(),yt.stopPropagation(),ot.handleTravellerMoveKeyboard(yt.key==="ArrowRight"?1:-1,nt))},onFocus:function(){ot.setState({isTravellerFocused:!0})},onBlur:function(){ot.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},et.renderTraveller(ct,bt))}},{key:"renderSlide",value:function(rt,nt){var ot=this.props,it=ot.y,st=ot.height,lt=ot.stroke,ut=ot.travellerWidth,ct=Math.min(rt,nt)+ut,dt=Math.max(Math.abs(nt-rt)-ut,0);return React.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:lt,fillOpacity:.2,x:ct,y:it,width:dt,height:st})}},{key:"renderText",value:function(){var rt=this.props,nt=rt.startIndex,ot=rt.endIndex,it=rt.y,st=rt.height,lt=rt.travellerWidth,ut=rt.stroke,ct=this.state,dt=ct.startX,ft=ct.endX,pt=5,gt={pointerEvents:"none",fill:ut};return React.createElement(Layer,{className:"recharts-brush-texts"},React.createElement(Text$1,_extends$5({textAnchor:"end",verticalAnchor:"middle",x:Math.min(dt,ft)-pt,y:it+st/2},gt),this.getTextOfTick(nt)),React.createElement(Text$1,_extends$5({textAnchor:"start",verticalAnchor:"middle",x:Math.max(dt,ft)+lt+pt,y:it+st/2},gt),this.getTextOfTick(ot)))}},{key:"render",value:function(){var rt=this.props,nt=rt.data,ot=rt.className,it=rt.children,st=rt.x,lt=rt.y,ut=rt.width,ct=rt.height,dt=rt.alwaysShowText,ft=this.state,pt=ft.startX,gt=ft.endX,vt=ft.isTextActive,bt=ft.isSlideMoving,_t=ft.isTravellerMoving,xt=ft.isTravellerFocused;if(!nt||!nt.length||!isNumber(st)||!isNumber(lt)||!isNumber(ut)||!isNumber(ct)||ut<=0||ct<=0)return null;var yt=clsx("recharts-brush",ot),Et=React.Children.count(it)===1,St=generatePrefixStyle("userSelect","none");return React.createElement(Layer,{className:yt,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:St},this.renderBackground(),Et&&this.renderPanorama(),this.renderSlide(pt,gt),this.renderTravellerLayer(pt,"startX"),this.renderTravellerLayer(gt,"endX"),(vt||bt||_t||xt||dt)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(rt){var nt=rt.x,ot=rt.y,it=rt.width,st=rt.height,lt=rt.stroke,ut=Math.floor(ot+st/2)-1;return React.createElement(React.Fragment,null,React.createElement("rect",{x:nt,y:ot,width:it,height:st,fill:lt,stroke:"none"}),React.createElement("line",{x1:nt+1,y1:ut,x2:nt+it-1,y2:ut,fill:"none",stroke:"#fff"}),React.createElement("line",{x1:nt+1,y1:ut+2,x2:nt+it-1,y2:ut+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(rt,nt){var ot;return React.isValidElement(rt)?ot=React.cloneElement(rt,nt):isFunction$6(rt)?ot=rt(nt):ot=et.renderDefaultTraveller(nt),ot}},{key:"getDerivedStateFromProps",value:function(rt,nt){var ot=rt.data,it=rt.width,st=rt.x,lt=rt.travellerWidth,ut=rt.updateId,ct=rt.startIndex,dt=rt.endIndex;if(ot!==nt.prevData||ut!==nt.prevUpdateId)return _objectSpread$8({prevData:ot,prevTravellerWidth:lt,prevUpdateId:ut,prevX:st,prevWidth:it},ot&&ot.length?createScale({data:ot,width:it,x:st,travellerWidth:lt,startIndex:ct,endIndex:dt}):{scale:null,scaleValues:null});if(nt.scale&&(it!==nt.prevWidth||st!==nt.prevX||lt!==nt.prevTravellerWidth)){nt.scale.range([st,st+it-lt]);var ft=nt.scale.domain().map(function(pt){return nt.scale(pt)});return{prevData:ot,prevTravellerWidth:lt,prevUpdateId:ut,prevX:st,prevWidth:it,startX:nt.scale(rt.startIndex),endX:nt.scale(rt.endIndex),scaleValues:ft}}return null}},{key:"getIndexInRange",value:function(rt,nt){for(var ot=rt.length,it=0,st=ot-1;st-it>1;){var lt=Math.floor((it+st)/2);rt[lt]>nt?st=lt:it=lt}return nt>=rt[st]?st:it}}]),et}(reactExports.PureComponent);_defineProperty$9(Brush,"displayName","Brush");_defineProperty$9(Brush,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var baseEach$1=_baseEach;function baseSome$1(j,_e){var et;return baseEach$1(j,function(tt,rt,nt){return et=_e(tt,rt,nt),!et}),!!et}var _baseSome=baseSome$1,arraySome=_arraySome,baseIteratee$1=_baseIteratee,baseSome=_baseSome,isArray$1=isArray_1,isIterateeCall$1=_isIterateeCall;function some(j,_e,et){var tt=isArray$1(j)?arraySome:baseSome;return et&&isIterateeCall$1(j,_e,et)&&(_e=void 0),tt(j,baseIteratee$1(_e))}var some_1=some;const some$1=getDefaultExportFromCjs(some_1);var ifOverflowMatches=function j(_e,et){var tt=_e.alwaysShow,rt=_e.ifOverflow;return tt&&(rt="extendDomain"),rt===et};function arrayEvery$1(j,_e){for(var et=-1,tt=j==null?0:j.length;++et1&&arguments[1]!==void 0?arguments[1]:{},rt=tt.bandAware,nt=tt.position;if(et!==void 0){if(nt)switch(nt){case"start":return this.scale(et);case"middle":{var ot=this.bandwidth?this.bandwidth()/2:0;return this.scale(et)+ot}case"end":{var it=this.bandwidth?this.bandwidth():0;return this.scale(et)+it}default:return this.scale(et)}if(rt){var st=this.bandwidth?this.bandwidth()/2:0;return this.scale(et)+st}return this.scale(et)}}},{key:"isInRange",value:function(et){var tt=this.range(),rt=tt[0],nt=tt[tt.length-1];return rt<=nt?et>=rt&&et<=nt:et>=nt&&et<=rt}}],[{key:"create",value:function(et){return new j(et)}}]),j}();_defineProperty$8(ScaleHelper,"EPS",1e-4);var createLabeledScales=function j(_e){var et=Object.keys(_e).reduce(function(tt,rt){return _objectSpread$7(_objectSpread$7({},tt),{},_defineProperty$8({},rt,ScaleHelper.create(_e[rt])))},{});return _objectSpread$7(_objectSpread$7({},et),{},{apply:function(rt){var nt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ot=nt.bandAware,it=nt.position;return mapValues$1(rt,function(st,lt){return et[lt].apply(st,{bandAware:ot,position:it})})},isInRange:function(rt){return every$1(rt,function(nt,ot){return et[ot].isInRange(nt)})}})};function normalizeAngle(j){return(j%180+180)%180}var getAngledRectangleWidth=function j(_e){var et=_e.width,tt=_e.height,rt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,nt=normalizeAngle(rt),ot=nt*Math.PI/180,it=Math.atan(tt/et),st=ot>it&&otj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$1(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$1(j){if(Array.isArray(j))return j}function _extends$4(){return _extends$4=Object.assign?Object.assign.bind():function(j){for(var _e=1;_ej*rt)return!1;var nt=et();return j*(_e-j*nt/2-tt)>=0&&j*(_e+j*nt/2-rt)<=0}function getNumberIntervalTicks(j,_e){return getEveryNthWithCondition(j,_e+1)}function getEquidistantTicks(j,_e,et,tt,rt){for(var nt=(tt||[]).slice(),ot=_e.start,it=_e.end,st=0,lt=1,ut=ot,ct=function(){var pt=tt==null?void 0:tt[st];if(pt===void 0)return{v:getEveryNthWithCondition(tt,lt)};var gt=st,vt,bt=function(){return vt===void 0&&(vt=et(pt,gt)),vt},_t=pt.coordinate,xt=st===0||isVisible(j,_t,bt,ut,it);xt||(st=0,ut=ot,lt+=1),xt&&(ut=_t+j*(bt()/2+rt),st+=lt)},dt;lt<=nt.length;)if(dt=ct(),dt)return dt.v;return[]}function _typeof$4(j){"@babel/helpers - typeof";return _typeof$4=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$4(j)}function ownKeys$3(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$3(j){for(var _e=1;_e0?ft.coordinate-vt*j:ft.coordinate})}else nt[dt]=ft=_objectSpread$3(_objectSpread$3({},ft),{},{tickCoord:ft.coordinate});var bt=isVisible(j,ft.tickCoord,gt,it,st);bt&&(st=ft.tickCoord-j*(gt()/2+rt),nt[dt]=_objectSpread$3(_objectSpread$3({},ft),{},{isShow:!0}))},ut=ot-1;ut>=0;ut--)lt(ut);return nt}function getTicksStart(j,_e,et,tt,rt,nt){var ot=(tt||[]).slice(),it=ot.length,st=_e.start,lt=_e.end;if(nt){var ut=tt[it-1],ct=et(ut,it-1),dt=j*(ut.coordinate+j*ct/2-lt);ot[it-1]=ut=_objectSpread$3(_objectSpread$3({},ut),{},{tickCoord:dt>0?ut.coordinate-dt*j:ut.coordinate});var ft=isVisible(j,ut.tickCoord,function(){return ct},st,lt);ft&&(lt=ut.tickCoord-j*(ct/2+rt),ot[it-1]=_objectSpread$3(_objectSpread$3({},ut),{},{isShow:!0}))}for(var pt=nt?it-1:it,gt=function(_t){var xt=ot[_t],yt,Et=function(){return yt===void 0&&(yt=et(xt,_t)),yt};if(_t===0){var St=j*(xt.coordinate-j*Et()/2-st);ot[_t]=xt=_objectSpread$3(_objectSpread$3({},xt),{},{tickCoord:St<0?xt.coordinate-St*j:xt.coordinate})}else ot[_t]=xt=_objectSpread$3(_objectSpread$3({},xt),{},{tickCoord:xt.coordinate});var $t=isVisible(j,xt.tickCoord,Et,st,lt);$t&&(st=xt.tickCoord+j*(Et()/2+rt),ot[_t]=_objectSpread$3(_objectSpread$3({},xt),{},{isShow:!0}))},vt=0;vt=2?mathSign(rt[1].coordinate-rt[0].coordinate):1,bt=getTickBoundaries(nt,vt,ft);return st==="equidistantPreserveStart"?getEquidistantTicks(vt,bt,gt,rt,ot):(st==="preserveStart"||st==="preserveStartEnd"?dt=getTicksStart(vt,bt,gt,rt,ot,st==="preserveStartEnd"):dt=getTicksEnd(vt,bt,gt,rt,ot),dt.filter(function(_t){return _t.isShow}))}var _excluded$1=["viewBox"],_excluded2$1=["viewBox"],_excluded3=["ticks"];function _typeof$3(j){"@babel/helpers - typeof";return _typeof$3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$3(j)}function _extends$1(){return _extends$1=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$1(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _classCallCheck$2(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$2(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey$3(tt.key),tt)}}function _createClass$2(j,_e,et){return _e&&_defineProperties$2(j.prototype,_e),et&&_defineProperties$2(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits$1(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf$1(j,_e)}function _setPrototypeOf$1(j,_e){return _setPrototypeOf$1=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$1(j,_e)}function _createSuper$1(j){var _e=_isNativeReflectConstruct$1();return function(){var tt=_getPrototypeOf$1(j),rt;if(_e){var nt=_getPrototypeOf$1(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn$1(this,rt)}}function _possibleConstructorReturn$1(j,_e){if(_e&&(_typeof$3(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$1(j)}function _assertThisInitialized$1(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$1(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$1(j){return _getPrototypeOf$1=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$1(j)}function _defineProperty$3(j,_e,et){return _e=_toPropertyKey$3(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$3(j){var _e=_toPrimitive$3(j,"string");return _typeof$3(_e)==="symbol"?_e:String(_e)}function _toPrimitive$3(j,_e){if(_typeof$3(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$3(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var CartesianAxis=function(j){_inherits$1(et,j);var _e=_createSuper$1(et);function et(tt){var rt;return _classCallCheck$2(this,et),rt=_e.call(this,tt),rt.state={fontSize:"",letterSpacing:""},rt}return _createClass$2(et,[{key:"shouldComponentUpdate",value:function(rt,nt){var ot=rt.viewBox,it=_objectWithoutProperties$1(rt,_excluded$1),st=this.props,lt=st.viewBox,ut=_objectWithoutProperties$1(st,_excluded2$1);return!shallowEqual(ot,lt)||!shallowEqual(it,ut)||!shallowEqual(nt,this.state)}},{key:"componentDidMount",value:function(){var rt=this.layerReference;if(rt){var nt=rt.getElementsByClassName("recharts-cartesian-axis-tick-value")[0];nt&&this.setState({fontSize:window.getComputedStyle(nt).fontSize,letterSpacing:window.getComputedStyle(nt).letterSpacing})}}},{key:"getTickLineCoord",value:function(rt){var nt=this.props,ot=nt.x,it=nt.y,st=nt.width,lt=nt.height,ut=nt.orientation,ct=nt.tickSize,dt=nt.mirror,ft=nt.tickMargin,pt,gt,vt,bt,_t,xt,yt=dt?-1:1,Et=rt.tickSize||ct,St=isNumber(rt.tickCoord)?rt.tickCoord:rt.coordinate;switch(ut){case"top":pt=gt=rt.coordinate,bt=it+ +!dt*lt,vt=bt-yt*Et,xt=vt-yt*ft,_t=St;break;case"left":vt=bt=rt.coordinate,gt=ot+ +!dt*st,pt=gt-yt*Et,_t=pt-yt*ft,xt=St;break;case"right":vt=bt=rt.coordinate,gt=ot+ +dt*st,pt=gt+yt*Et,_t=pt+yt*ft,xt=St;break;default:pt=gt=rt.coordinate,bt=it+ +dt*lt,vt=bt+yt*Et,xt=vt+yt*ft,_t=St;break}return{line:{x1:pt,y1:vt,x2:gt,y2:bt},tick:{x:_t,y:xt}}}},{key:"getTickTextAnchor",value:function(){var rt=this.props,nt=rt.orientation,ot=rt.mirror,it;switch(nt){case"left":it=ot?"start":"end";break;case"right":it=ot?"end":"start";break;default:it="middle";break}return it}},{key:"getTickVerticalAnchor",value:function(){var rt=this.props,nt=rt.orientation,ot=rt.mirror,it="end";switch(nt){case"left":case"right":it="middle";break;case"top":it=ot?"start":"end";break;default:it=ot?"end":"start";break}return it}},{key:"renderAxisLine",value:function(){var rt=this.props,nt=rt.x,ot=rt.y,it=rt.width,st=rt.height,lt=rt.orientation,ut=rt.mirror,ct=rt.axisLine,dt=_objectSpread$2(_objectSpread$2(_objectSpread$2({},filterProps(this.props)),filterProps(ct)),{},{fill:"none"});if(lt==="top"||lt==="bottom"){var ft=+(lt==="top"&&!ut||lt==="bottom"&&ut);dt=_objectSpread$2(_objectSpread$2({},dt),{},{x1:nt,y1:ot+ft*st,x2:nt+it,y2:ot+ft*st})}else{var pt=+(lt==="left"&&!ut||lt==="right"&&ut);dt=_objectSpread$2(_objectSpread$2({},dt),{},{x1:nt+pt*it,y1:ot,x2:nt+pt*it,y2:ot+st})}return React.createElement("line",_extends$1({},dt,{className:clsx("recharts-cartesian-axis-line",get$5(ct,"className"))}))}},{key:"renderTicks",value:function(rt,nt,ot){var it=this,st=this.props,lt=st.tickLine,ut=st.stroke,ct=st.tick,dt=st.tickFormatter,ft=st.unit,pt=getTicks(_objectSpread$2(_objectSpread$2({},this.props),{},{ticks:rt}),nt,ot),gt=this.getTickTextAnchor(),vt=this.getTickVerticalAnchor(),bt=filterProps(this.props),_t=filterProps(ct),xt=_objectSpread$2(_objectSpread$2({},bt),{},{fill:"none"},filterProps(lt)),yt=pt.map(function(Et,St){var $t=it.getTickLineCoord(Et),At=$t.line,wt=$t.tick,Ct=_objectSpread$2(_objectSpread$2(_objectSpread$2(_objectSpread$2({textAnchor:gt,verticalAnchor:vt},bt),{},{stroke:"none",fill:ut},_t),wt),{},{index:St,payload:Et,visibleTicksCount:pt.length,tickFormatter:dt});return React.createElement(Layer,_extends$1({className:"recharts-cartesian-axis-tick",key:"tick-".concat(Et.value,"-").concat(Et.coordinate,"-").concat(Et.tickCoord)},adaptEventsOfChild(it.props,Et,St)),lt&&React.createElement("line",_extends$1({},xt,At,{className:clsx("recharts-cartesian-axis-tick-line",get$5(lt,"className"))})),ct&&et.renderTickItem(ct,Ct,"".concat(isFunction$6(dt)?dt(Et.value,St):Et.value).concat(ft||"")))});return React.createElement("g",{className:"recharts-cartesian-axis-ticks"},yt)}},{key:"render",value:function(){var rt=this,nt=this.props,ot=nt.axisLine,it=nt.width,st=nt.height,lt=nt.ticksGenerator,ut=nt.className,ct=nt.hide;if(ct)return null;var dt=this.props,ft=dt.ticks,pt=_objectWithoutProperties$1(dt,_excluded3),gt=ft;return isFunction$6(lt)&&(gt=ft&&ft.length>0?lt(this.props):lt(pt)),it<=0||st<=0||!gt||!gt.length?null:React.createElement(Layer,{className:clsx("recharts-cartesian-axis",ut),ref:function(bt){rt.layerReference=bt}},ot&&this.renderAxisLine(),this.renderTicks(gt,this.state.fontSize,this.state.letterSpacing),Label.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(rt,nt,ot){var it;return React.isValidElement(rt)?it=React.cloneElement(rt,nt):isFunction$6(rt)?it=rt(nt):it=React.createElement(Text$1,_extends$1({},nt,{className:"recharts-cartesian-axis-tick-value"}),ot),it}}]),et}(reactExports.Component);_defineProperty$3(CartesianAxis,"displayName","CartesianAxis");_defineProperty$3(CartesianAxis,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var prefix="Invariant failed";function invariant(j,_e){if(!j)throw new Error(prefix)}function _toConsumableArray$1(j){return _arrayWithoutHoles$1(j)||_iterableToArray$1(j)||_unsupportedIterableToArray$1(j)||_nonIterableSpread$1()}function _nonIterableSpread$1(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$1(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$1(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$1(j,_e)}}function _iterableToArray$1(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$1(j){if(Array.isArray(j))return _arrayLikeToArray$1(j)}function _arrayLikeToArray$1(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}var detectReferenceElementsDomain=function j(_e,et,tt,rt,nt){var ot=findAllByType(_e,ReferenceLine),it=findAllByType(_e,ReferenceDot),st=[].concat(_toConsumableArray$1(ot),_toConsumableArray$1(it)),lt=findAllByType(_e,ReferenceArea),ut="".concat(rt,"Id"),ct=rt[0],dt=et;if(st.length&&(dt=st.reduce(function(gt,vt){if(vt.props[ut]===tt&&ifOverflowMatches(vt.props,"extendDomain")&&isNumber(vt.props[ct])){var bt=vt.props[ct];return[Math.min(gt[0],bt),Math.max(gt[1],bt)]}return gt},dt)),lt.length){var ft="".concat(ct,"1"),pt="".concat(ct,"2");dt=lt.reduce(function(gt,vt){if(vt.props[ut]===tt&&ifOverflowMatches(vt.props,"extendDomain")&&isNumber(vt.props[ft])&&isNumber(vt.props[pt])){var bt=vt.props[ft],_t=vt.props[pt];return[Math.min(gt[0],bt,_t),Math.max(gt[1],bt,_t)]}return gt},dt)}return nt&&nt.length&&(dt=nt.reduce(function(gt,vt){return isNumber(vt)?[Math.min(gt[0],vt),Math.max(gt[1],vt)]:gt},dt)),dt},eventCenter=new EventEmitter,SYNC_EVENT="recharts.syncMouseEvents";function _typeof$2(j){"@babel/helpers - typeof";return _typeof$2=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$2(j)}function _classCallCheck$1(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$1(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey$2(tt.key),tt)}}function _createClass$1(j,_e,et){return _e&&_defineProperties$1(j.prototype,_e),et&&_defineProperties$1(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _defineProperty$2(j,_e,et){return _e=_toPropertyKey$2(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$2(j){var _e=_toPrimitive$2(j,"string");return _typeof$2(_e)==="symbol"?_e:String(_e)}function _toPrimitive$2(j,_e){if(_typeof$2(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$2(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var AccessibilityManager=function(){function j(){_classCallCheck$1(this,j),_defineProperty$2(this,"activeIndex",0),_defineProperty$2(this,"coordinateList",[]),_defineProperty$2(this,"layout","horizontal")}return _createClass$1(j,[{key:"setDetails",value:function(et){var tt=et.coordinateList,rt=tt===void 0?[]:tt,nt=et.container,ot=nt===void 0?null:nt,it=et.layout,st=it===void 0?null:it,lt=et.offset,ut=lt===void 0?null:lt,ct=et.mouseHandlerCallback,dt=ct===void 0?null:ct;this.coordinateList=rt??this.coordinateList,this.container=ot??this.container,this.layout=st??this.layout,this.offset=ut??this.offset,this.mouseHandlerCallback=dt??this.mouseHandlerCallback,this.activeIndex=Math.min(Math.max(this.activeIndex,0),this.coordinateList.length-1)}},{key:"focus",value:function(){this.spoofMouse()}},{key:"keyboardEvent",value:function(et){if(this.coordinateList.length!==0)switch(et.key){case"ArrowRight":{if(this.layout!=="horizontal")return;this.activeIndex=Math.min(this.activeIndex+1,this.coordinateList.length-1),this.spoofMouse();break}case"ArrowLeft":{if(this.layout!=="horizontal")return;this.activeIndex=Math.max(this.activeIndex-1,0),this.spoofMouse();break}}}},{key:"spoofMouse",value:function(){var et,tt;if(this.layout==="horizontal"&&this.coordinateList.length!==0){var rt=this.container.getBoundingClientRect(),nt=rt.x,ot=rt.y,it=rt.height,st=this.coordinateList[this.activeIndex].coordinate,lt=((et=window)===null||et===void 0?void 0:et.scrollX)||0,ut=((tt=window)===null||tt===void 0?void 0:tt.scrollY)||0,ct=nt+st+lt,dt=ot+this.offset.top+it/2+ut;this.mouseHandlerCallback({pageX:ct,pageY:dt})}}}]),j}();function isDomainSpecifiedByUser(j,_e,et){if(et==="number"&&_e===!0&&Array.isArray(j)){var tt=j==null?void 0:j[0],rt=j==null?void 0:j[1];if(tt&&rt&&isNumber(tt)&&isNumber(rt))return!0}return!1}function getCursorRectangle(j,_e,et,tt){var rt=tt/2;return{stroke:"none",fill:"#ccc",x:j==="horizontal"?_e.x-rt:et.left+.5,y:j==="horizontal"?et.top+.5:_e.y-rt,width:j==="horizontal"?tt:et.width-1,height:j==="horizontal"?et.height-1:tt}}function getRadialCursorPoints(j){var _e=j.cx,et=j.cy,tt=j.radius,rt=j.startAngle,nt=j.endAngle,ot=polarToCartesian(_e,et,tt,rt),it=polarToCartesian(_e,et,tt,nt);return{points:[ot,it],cx:_e,cy:et,radius:tt,startAngle:rt,endAngle:nt}}function getCursorPoints(j,_e,et){var tt,rt,nt,ot;if(j==="horizontal")tt=_e.x,nt=tt,rt=et.top,ot=et.top+et.height;else if(j==="vertical")rt=_e.y,ot=rt,tt=et.left,nt=et.left+et.width;else if(_e.cx!=null&&_e.cy!=null)if(j==="centric"){var it=_e.cx,st=_e.cy,lt=_e.innerRadius,ut=_e.outerRadius,ct=_e.angle,dt=polarToCartesian(it,st,lt,ct),ft=polarToCartesian(it,st,ut,ct);tt=dt.x,rt=dt.y,nt=ft.x,ot=ft.y}else return getRadialCursorPoints(_e);return[{x:tt,y:rt},{x:nt,y:ot}]}function _typeof$1(j){"@babel/helpers - typeof";return _typeof$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$1(j)}function ownKeys$1(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$1(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _classCallCheck(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey(tt.key),tt)}}function _createClass(j,_e,et){return _e&&_defineProperties(j.prototype,_e),et&&_defineProperties(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf(j,_e)}function _setPrototypeOf(j,_e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf(j,_e)}function _createSuper(j){var _e=_isNativeReflectConstruct();return function(){var tt=_getPrototypeOf(j),rt;if(_e){var nt=_getPrototypeOf(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn(this,rt)}}function _possibleConstructorReturn(j,_e){if(_e&&(_typeof(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(j)}function _assertThisInitialized(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf(j){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf(j)}function _toConsumableArray(j){return _arrayWithoutHoles(j)||_iterableToArray(j)||_unsupportedIterableToArray(j)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray(j,_e)}}function _iterableToArray(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles(j){if(Array.isArray(j))return _arrayLikeToArray(j)}function _arrayLikeToArray(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function ownKeys(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread(j){for(var _e=1;_e0?ot:_e&&_e.length&&isNumber(rt)&&isNumber(nt)?_e.slice(rt,nt+1):[]};function getDefaultDomainByAxisType(j){return j==="number"?[0,"auto"]:void 0}var getTooltipContent=function j(_e,et,tt,rt){var nt=_e.graphicalItems,ot=_e.tooltipAxis,it=getDisplayedData(et,_e);return tt<0||!nt||!nt.length||tt>=it.length?null:nt.reduce(function(st,lt){var ut,ct=lt.props.hide;if(ct)return st;var dt=(ut=lt.props.data)!==null&&ut!==void 0?ut:et;dt&&_e.dataStartIndex+_e.dataEndIndex!==0&&(dt=dt.slice(_e.dataStartIndex,_e.dataEndIndex+1));var ft;if(ot.dataKey&&!ot.allowDuplicatedCategory){var pt=dt===void 0?it:dt;ft=findEntryInArray(pt,ot.dataKey,rt)}else ft=dt&&dt[tt]||it[tt];return ft?[].concat(_toConsumableArray(st),[getTooltipItem(lt,ft)]):st},[])},getTooltipData=function j(_e,et,tt,rt){var nt=rt||{x:_e.chartX,y:_e.chartY},ot=calculateTooltipPos(nt,tt),it=_e.orderedTooltipTicks,st=_e.tooltipAxis,lt=_e.tooltipTicks,ut=calculateActiveTickIndex(ot,it,lt,st);if(ut>=0&<){var ct=lt[ut]&<[ut].value,dt=getTooltipContent(_e,et,ut,ct),ft=getActiveCoordinate(tt,it,ut,nt);return{activeTooltipIndex:ut,activeLabel:ct,activePayload:dt,activeCoordinate:ft}}return null},getAxisMapByAxes=function j(_e,et){var tt=et.axes,rt=et.graphicalItems,nt=et.axisType,ot=et.axisIdKey,it=et.stackGroups,st=et.dataStartIndex,lt=et.dataEndIndex,ut=_e.layout,ct=_e.children,dt=_e.stackOffset,ft=isCategoricalAxis(ut,nt);return tt.reduce(function(pt,gt){var vt,bt=gt.props,_t=bt.type,xt=bt.dataKey,yt=bt.allowDataOverflow,Et=bt.allowDuplicatedCategory,St=bt.scale,$t=bt.ticks,At=bt.includeHidden,wt=gt.props[ot];if(pt[wt])return pt;var Ct=getDisplayedData(_e.data,{graphicalItems:rt.filter(function(Xt){return Xt.props[ot]===wt}),dataStartIndex:st,dataEndIndex:lt}),It=Ct.length,Ot,Nt,Pt;isDomainSpecifiedByUser(gt.props.domain,yt,_t)&&(Ot=parseSpecifiedDomain(gt.props.domain,null,yt),ft&&(_t==="number"||St!=="auto")&&(Pt=getDomainOfDataByKey(Ct,xt,"category")));var Mt=getDefaultDomainByAxisType(_t);if(!Ot||Ot.length===0){var Rt,Lt=(Rt=gt.props.domain)!==null&&Rt!==void 0?Rt:Mt;if(xt){if(Ot=getDomainOfDataByKey(Ct,xt,_t),_t==="category"&&ft){var jt=hasDuplicate(Ot);Et&&jt?(Nt=Ot,Ot=range$4(0,It)):Et||(Ot=parseDomainOfCategoryAxis(Lt,Ot,gt).reduce(function(Xt,rr){return Xt.indexOf(rr)>=0?Xt:[].concat(_toConsumableArray(Xt),[rr])},[]))}else if(_t==="category")Et?Ot=Ot.filter(function(Xt){return Xt!==""&&!isNil$1(Xt)}):Ot=parseDomainOfCategoryAxis(Lt,Ot,gt).reduce(function(Xt,rr){return Xt.indexOf(rr)>=0||rr===""||isNil$1(rr)?Xt:[].concat(_toConsumableArray(Xt),[rr])},[]);else if(_t==="number"){var Gt=parseErrorBarsOfAxis(Ct,rt.filter(function(Xt){return Xt.props[ot]===wt&&(At||!Xt.props.hide)}),xt,nt,ut);Gt&&(Ot=Gt)}ft&&(_t==="number"||St!=="auto")&&(Pt=getDomainOfDataByKey(Ct,xt,"category"))}else ft?Ot=range$4(0,It):it&&it[wt]&&it[wt].hasStack&&_t==="number"?Ot=dt==="expand"?[0,1]:getDomainOfStackGroups(it[wt].stackGroups,st,lt):Ot=getDomainOfItemsWithSameAxis(Ct,rt.filter(function(Xt){return Xt.props[ot]===wt&&(At||!Xt.props.hide)}),_t,ut,!0);if(_t==="number")Ot=detectReferenceElementsDomain(ct,Ot,wt,nt,$t),Lt&&(Ot=parseSpecifiedDomain(Lt,Ot,yt));else if(_t==="category"&&Lt){var Vt=Lt,Yt=Ot.every(function(Xt){return Vt.indexOf(Xt)>=0});Yt&&(Ot=Vt)}}return _objectSpread(_objectSpread({},pt),{},_defineProperty({},wt,_objectSpread(_objectSpread({},gt.props),{},{axisType:nt,domain:Ot,categoricalDomain:Pt,duplicateDomain:Nt,originalDomain:(vt=gt.props.domain)!==null&&vt!==void 0?vt:Mt,isCategorical:ft,layout:ut})))},{})},getAxisMapByItems=function j(_e,et){var tt=et.graphicalItems,rt=et.Axis,nt=et.axisType,ot=et.axisIdKey,it=et.stackGroups,st=et.dataStartIndex,lt=et.dataEndIndex,ut=_e.layout,ct=_e.children,dt=getDisplayedData(_e.data,{graphicalItems:tt,dataStartIndex:st,dataEndIndex:lt}),ft=dt.length,pt=isCategoricalAxis(ut,nt),gt=-1;return tt.reduce(function(vt,bt){var _t=bt.props[ot],xt=getDefaultDomainByAxisType("number");if(!vt[_t]){gt++;var yt;return pt?yt=range$4(0,ft):it&&it[_t]&&it[_t].hasStack?(yt=getDomainOfStackGroups(it[_t].stackGroups,st,lt),yt=detectReferenceElementsDomain(ct,yt,_t,nt)):(yt=parseSpecifiedDomain(xt,getDomainOfItemsWithSameAxis(dt,tt.filter(function(Et){return Et.props[ot]===_t&&!Et.props.hide}),"number",ut),rt.defaultProps.allowDataOverflow),yt=detectReferenceElementsDomain(ct,yt,_t,nt)),_objectSpread(_objectSpread({},vt),{},_defineProperty({},_t,_objectSpread(_objectSpread({axisType:nt},rt.defaultProps),{},{hide:!0,orientation:get$5(ORIENT_MAP,"".concat(nt,".").concat(gt%2),null),domain:yt,originalDomain:xt,isCategorical:pt,layout:ut})))}return vt},{})},getAxisMap=function j(_e,et){var tt=et.axisType,rt=tt===void 0?"xAxis":tt,nt=et.AxisComp,ot=et.graphicalItems,it=et.stackGroups,st=et.dataStartIndex,lt=et.dataEndIndex,ut=_e.children,ct="".concat(rt,"Id"),dt=findAllByType(ut,nt),ft={};return dt&&dt.length?ft=getAxisMapByAxes(_e,{axes:dt,graphicalItems:ot,axisType:rt,axisIdKey:ct,stackGroups:it,dataStartIndex:st,dataEndIndex:lt}):ot&&ot.length&&(ft=getAxisMapByItems(_e,{Axis:nt,graphicalItems:ot,axisType:rt,axisIdKey:ct,stackGroups:it,dataStartIndex:st,dataEndIndex:lt})),ft},tooltipTicksGenerator=function j(_e){var et=getAnyElementOfObject(_e),tt=getTicksOfAxis(et,!1,!0);return{tooltipTicks:tt,orderedTooltipTicks:sortBy$1(tt,function(rt){return rt.coordinate}),tooltipAxis:et,tooltipAxisBandSize:getBandSizeOfAxis(et,tt)}},createDefaultState=function j(_e){var et=_e.children,tt=_e.defaultShowTooltip,rt=findChildByType(et,Brush),nt=0,ot=0;return _e.data&&_e.data.length!==0&&(ot=_e.data.length-1),rt&&rt.props&&(rt.props.startIndex>=0&&(nt=rt.props.startIndex),rt.props.endIndex>=0&&(ot=rt.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:nt,dataEndIndex:ot,activeTooltipIndex:-1,isTooltipActive:!!tt}},hasGraphicalBarItem=function j(_e){return!_e||!_e.length?!1:_e.some(function(et){var tt=getDisplayName(et&&et.type);return tt&&tt.indexOf("Bar")>=0})},getAxisNameByLayout=function j(_e){return _e==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:_e==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:_e==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},calculateOffset=function j(_e,et){var tt=_e.props,rt=_e.graphicalItems,nt=_e.xAxisMap,ot=nt===void 0?{}:nt,it=_e.yAxisMap,st=it===void 0?{}:it,lt=tt.width,ut=tt.height,ct=tt.children,dt=tt.margin||{},ft=findChildByType(ct,Brush),pt=findChildByType(ct,Legend),gt=Object.keys(st).reduce(function(Et,St){var $t=st[St],At=$t.orientation;return!$t.mirror&&!$t.hide?_objectSpread(_objectSpread({},Et),{},_defineProperty({},At,Et[At]+$t.width)):Et},{left:dt.left||0,right:dt.right||0}),vt=Object.keys(ot).reduce(function(Et,St){var $t=ot[St],At=$t.orientation;return!$t.mirror&&!$t.hide?_objectSpread(_objectSpread({},Et),{},_defineProperty({},At,get$5(Et,"".concat(At))+$t.height)):Et},{top:dt.top||0,bottom:dt.bottom||0}),bt=_objectSpread(_objectSpread({},vt),gt),_t=bt.bottom;ft&&(bt.bottom+=ft.props.height||Brush.defaultProps.height),pt&&et&&(bt=appendOffsetOfLegend(bt,rt,tt,et));var xt=lt-bt.left-bt.right,yt=ut-bt.top-bt.bottom;return _objectSpread(_objectSpread({brushBottom:_t},bt),{},{width:Math.max(xt,0),height:Math.max(yt,0)})},generateCategoricalChart=function j(_e){var et,tt=_e.chartName,rt=_e.GraphicalChild,nt=_e.defaultTooltipEventType,ot=nt===void 0?"axis":nt,it=_e.validateTooltipEventTypes,st=it===void 0?["axis"]:it,lt=_e.axisComponents,ut=_e.legendContent,ct=_e.formatAxisMap,dt=_e.defaultProps,ft=function(vt,bt){var _t=bt.graphicalItems,xt=bt.stackGroups,yt=bt.offset,Et=bt.updateId,St=bt.dataStartIndex,$t=bt.dataEndIndex,At=vt.barSize,wt=vt.layout,Ct=vt.barGap,It=vt.barCategoryGap,Ot=vt.maxBarSize,Nt=getAxisNameByLayout(wt),Pt=Nt.numericAxisName,Mt=Nt.cateAxisName,Rt=hasGraphicalBarItem(_t),Lt=Rt&&getBarSizeList({barSize:At,stackGroups:xt}),jt=[];return _t.forEach(function(Gt,Vt){var Yt=getDisplayedData(vt.data,{graphicalItems:[Gt],dataStartIndex:St,dataEndIndex:$t}),Xt=Gt.props,rr=Xt.dataKey,cr=Xt.maxBarSize,vr=Gt.props["".concat(Pt,"Id")],Tr=Gt.props["".concat(Mt,"Id")],gr={},Er=lt.reduce(function(Yr,jr){var Hr,hn=bt["".concat(jr.axisType,"Map")],pr=Gt.props["".concat(jr.axisType,"Id")];hn&&hn[pr]||jr.axisType==="zAxis"||invariant(!1);var sr=hn[pr];return _objectSpread(_objectSpread({},Yr),{},(Hr={},_defineProperty(Hr,jr.axisType,sr),_defineProperty(Hr,"".concat(jr.axisType,"Ticks"),getTicksOfAxis(sr)),Hr))},gr),qt=Er[Mt],ir=Er["".concat(Mt,"Ticks")],hr=xt&&xt[vr]&&xt[vr].hasStack&&getStackedDataOfItem(Gt,xt[vr].stackGroups),nr=getDisplayName(Gt.type).indexOf("Bar")>=0,mr=getBandSizeOfAxis(qt,ir),Ar=[];if(nr){var Or,wr,Nr=isNil$1(cr)?Ot:cr,Wr=(Or=(wr=getBandSizeOfAxis(qt,ir,!0))!==null&&wr!==void 0?wr:Nr)!==null&&Or!==void 0?Or:0;Ar=getBarPosition({barGap:Ct,barCategoryGap:It,bandSize:Wr!==mr?Wr:mr,sizeList:Lt[Tr],maxBarSize:Nr}),Wr!==mr&&(Ar=Ar.map(function(Yr){return _objectSpread(_objectSpread({},Yr),{},{position:_objectSpread(_objectSpread({},Yr.position),{},{offset:Yr.position.offset-Wr/2})})}))}var Vr=Gt&&Gt.type&&Gt.type.getComposedData;if(Vr){var Jr;jt.push({props:_objectSpread(_objectSpread({},Vr(_objectSpread(_objectSpread({},Er),{},{displayedData:Yt,props:vt,dataKey:rr,item:Gt,bandSize:mr,barPosition:Ar,offset:yt,stackedData:hr,layout:wt,dataStartIndex:St,dataEndIndex:$t}))),{},(Jr={key:Gt.key||"item-".concat(Vt)},_defineProperty(Jr,Pt,Er[Pt]),_defineProperty(Jr,Mt,Er[Mt]),_defineProperty(Jr,"animationId",Et),Jr)),childIndex:parseChildIndex(Gt,vt.children),item:Gt})}}),jt},pt=function(vt,bt){var _t=vt.props,xt=vt.dataStartIndex,yt=vt.dataEndIndex,Et=vt.updateId;if(!validateWidthHeight({props:_t}))return null;var St=_t.children,$t=_t.layout,At=_t.stackOffset,wt=_t.data,Ct=_t.reverseStackOrder,It=getAxisNameByLayout($t),Ot=It.numericAxisName,Nt=It.cateAxisName,Pt=findAllByType(St,rt),Mt=getStackGroupsByAxisId(wt,Pt,"".concat(Ot,"Id"),"".concat(Nt,"Id"),At,Ct),Rt=lt.reduce(function(Yt,Xt){var rr="".concat(Xt.axisType,"Map");return _objectSpread(_objectSpread({},Yt),{},_defineProperty({},rr,getAxisMap(_t,_objectSpread(_objectSpread({},Xt),{},{graphicalItems:Pt,stackGroups:Xt.axisType===Ot&&Mt,dataStartIndex:xt,dataEndIndex:yt}))))},{}),Lt=calculateOffset(_objectSpread(_objectSpread({},Rt),{},{props:_t,graphicalItems:Pt}),bt==null?void 0:bt.legendBBox);Object.keys(Rt).forEach(function(Yt){Rt[Yt]=ct(_t,Rt[Yt],Lt,Yt.replace("Map",""),tt)});var jt=Rt["".concat(Nt,"Map")],Gt=tooltipTicksGenerator(jt),Vt=ft(_t,_objectSpread(_objectSpread({},Rt),{},{dataStartIndex:xt,dataEndIndex:yt,updateId:Et,graphicalItems:Pt,stackGroups:Mt,offset:Lt}));return _objectSpread(_objectSpread({formattedGraphicalItems:Vt,graphicalItems:Pt,offset:Lt,stackGroups:Mt},Gt),Rt)};return et=function(gt){_inherits(bt,gt);var vt=_createSuper(bt);function bt(_t){var xt,yt,Et;return _classCallCheck(this,bt),Et=vt.call(this,_t),_defineProperty(_assertThisInitialized(Et),"eventEmitterSymbol",Symbol("rechartsEventEmitter")),_defineProperty(_assertThisInitialized(Et),"accessibilityManager",new AccessibilityManager),_defineProperty(_assertThisInitialized(Et),"handleLegendBBoxUpdate",function(St){if(St){var $t=Et.state,At=$t.dataStartIndex,wt=$t.dataEndIndex,Ct=$t.updateId;Et.setState(_objectSpread({legendBBox:St},pt({props:Et.props,dataStartIndex:At,dataEndIndex:wt,updateId:Ct},_objectSpread(_objectSpread({},Et.state),{},{legendBBox:St}))))}}),_defineProperty(_assertThisInitialized(Et),"handleReceiveSyncEvent",function(St,$t,At){if(Et.props.syncId===St){if(At===Et.eventEmitterSymbol&&typeof Et.props.syncMethod!="function")return;Et.applySyncEvent($t)}}),_defineProperty(_assertThisInitialized(Et),"handleBrushChange",function(St){var $t=St.startIndex,At=St.endIndex;if($t!==Et.state.dataStartIndex||At!==Et.state.dataEndIndex){var wt=Et.state.updateId;Et.setState(function(){return _objectSpread({dataStartIndex:$t,dataEndIndex:At},pt({props:Et.props,dataStartIndex:$t,dataEndIndex:At,updateId:wt},Et.state))}),Et.triggerSyncEvent({dataStartIndex:$t,dataEndIndex:At})}}),_defineProperty(_assertThisInitialized(Et),"handleMouseEnter",function(St){var $t=Et.getMouseInfo(St);if($t){var At=_objectSpread(_objectSpread({},$t),{},{isTooltipActive:!0});Et.setState(At),Et.triggerSyncEvent(At);var wt=Et.props.onMouseEnter;isFunction$6(wt)&&wt(At,St)}}),_defineProperty(_assertThisInitialized(Et),"triggeredAfterMouseMove",function(St){var $t=Et.getMouseInfo(St),At=$t?_objectSpread(_objectSpread({},$t),{},{isTooltipActive:!0}):{isTooltipActive:!1};Et.setState(At),Et.triggerSyncEvent(At);var wt=Et.props.onMouseMove;isFunction$6(wt)&&wt(At,St)}),_defineProperty(_assertThisInitialized(Et),"handleItemMouseEnter",function(St){Et.setState(function(){return{isTooltipActive:!0,activeItem:St,activePayload:St.tooltipPayload,activeCoordinate:St.tooltipPosition||{x:St.cx,y:St.cy}}})}),_defineProperty(_assertThisInitialized(Et),"handleItemMouseLeave",function(){Et.setState(function(){return{isTooltipActive:!1}})}),_defineProperty(_assertThisInitialized(Et),"handleMouseMove",function(St){St.persist(),Et.throttleTriggeredAfterMouseMove(St)}),_defineProperty(_assertThisInitialized(Et),"handleMouseLeave",function(St){var $t={isTooltipActive:!1};Et.setState($t),Et.triggerSyncEvent($t);var At=Et.props.onMouseLeave;isFunction$6(At)&&At($t,St)}),_defineProperty(_assertThisInitialized(Et),"handleOuterEvent",function(St){var $t=getReactEventByType(St),At=get$5(Et.props,"".concat($t));if($t&&isFunction$6(At)){var wt,Ct;/.*touch.*/i.test($t)?Ct=Et.getMouseInfo(St.changedTouches[0]):Ct=Et.getMouseInfo(St),At((wt=Ct)!==null&&wt!==void 0?wt:{},St)}}),_defineProperty(_assertThisInitialized(Et),"handleClick",function(St){var $t=Et.getMouseInfo(St);if($t){var At=_objectSpread(_objectSpread({},$t),{},{isTooltipActive:!0});Et.setState(At),Et.triggerSyncEvent(At);var wt=Et.props.onClick;isFunction$6(wt)&&wt(At,St)}}),_defineProperty(_assertThisInitialized(Et),"handleMouseDown",function(St){var $t=Et.props.onMouseDown;if(isFunction$6($t)){var At=Et.getMouseInfo(St);$t(At,St)}}),_defineProperty(_assertThisInitialized(Et),"handleMouseUp",function(St){var $t=Et.props.onMouseUp;if(isFunction$6($t)){var At=Et.getMouseInfo(St);$t(At,St)}}),_defineProperty(_assertThisInitialized(Et),"handleTouchMove",function(St){St.changedTouches!=null&&St.changedTouches.length>0&&Et.throttleTriggeredAfterMouseMove(St.changedTouches[0])}),_defineProperty(_assertThisInitialized(Et),"handleTouchStart",function(St){St.changedTouches!=null&&St.changedTouches.length>0&&Et.handleMouseDown(St.changedTouches[0])}),_defineProperty(_assertThisInitialized(Et),"handleTouchEnd",function(St){St.changedTouches!=null&&St.changedTouches.length>0&&Et.handleMouseUp(St.changedTouches[0])}),_defineProperty(_assertThisInitialized(Et),"triggerSyncEvent",function(St){Et.props.syncId!==void 0&&eventCenter.emit(SYNC_EVENT,Et.props.syncId,St,Et.eventEmitterSymbol)}),_defineProperty(_assertThisInitialized(Et),"applySyncEvent",function(St){var $t=Et.props,At=$t.layout,wt=$t.syncMethod,Ct=Et.state.updateId,It=St.dataStartIndex,Ot=St.dataEndIndex;if(St.dataStartIndex!==void 0||St.dataEndIndex!==void 0)Et.setState(_objectSpread({dataStartIndex:It,dataEndIndex:Ot},pt({props:Et.props,dataStartIndex:It,dataEndIndex:Ot,updateId:Ct},Et.state)));else if(St.activeTooltipIndex!==void 0){var Nt=St.chartX,Pt=St.chartY,Mt=St.activeTooltipIndex,Rt=Et.state,Lt=Rt.offset,jt=Rt.tooltipTicks;if(!Lt)return;if(typeof wt=="function")Mt=wt(jt,St);else if(wt==="value"){Mt=-1;for(var Gt=0;Gt=0){var hr,nr;if(Nt.dataKey&&!Nt.allowDuplicatedCategory){var mr=typeof Nt.dataKey=="function"?ir:"payload.".concat(Nt.dataKey.toString());hr=findEntryInArray(Gt,mr,Mt),nr=Vt&&Yt&&findEntryInArray(Yt,mr,Mt)}else hr=Gt==null?void 0:Gt[Pt],nr=Vt&&Yt&&Yt[Pt];if(Tr||vr){var Ar=St.props.activeIndex!==void 0?St.props.activeIndex:Pt;return[reactExports.cloneElement(St,_objectSpread(_objectSpread(_objectSpread({},wt.props),Er),{},{activeIndex:Ar})),null,null]}if(!isNil$1(hr))return[qt].concat(_toConsumableArray(Et.renderActivePoints({item:wt,activePoint:hr,basePoint:nr,childIndex:Pt,isRange:Vt})))}else{var Or,wr=(Or=Et.getItemByXY(Et.state.activeCoordinate))!==null&&Or!==void 0?Or:{graphicalItem:qt},Nr=wr.graphicalItem,Wr=Nr.item,Vr=Wr===void 0?St:Wr,Jr=Nr.childIndex,Yr=_objectSpread(_objectSpread(_objectSpread({},wt.props),Er),{},{activeIndex:Jr});return[reactExports.cloneElement(Vr,Yr),null,null]}return Vt?[qt,null,null]:[qt,null]}),_defineProperty(_assertThisInitialized(Et),"renderCustomized",function(St,$t,At){return reactExports.cloneElement(St,_objectSpread(_objectSpread({key:"recharts-customized-".concat(At)},Et.props),Et.state))}),_defineProperty(_assertThisInitialized(Et),"renderMap",{CartesianGrid:{handler:Et.renderGrid,once:!0},ReferenceArea:{handler:Et.renderReferenceElement},ReferenceLine:{handler:Et.renderReferenceElement},ReferenceDot:{handler:Et.renderReferenceElement},XAxis:{handler:Et.renderXAxis},YAxis:{handler:Et.renderYAxis},Brush:{handler:Et.renderBrush,once:!0},Bar:{handler:Et.renderGraphicChild},Line:{handler:Et.renderGraphicChild},Area:{handler:Et.renderGraphicChild},Radar:{handler:Et.renderGraphicChild},RadialBar:{handler:Et.renderGraphicChild},Scatter:{handler:Et.renderGraphicChild},Pie:{handler:Et.renderGraphicChild},Funnel:{handler:Et.renderGraphicChild},Tooltip:{handler:Et.renderCursor,once:!0},PolarGrid:{handler:Et.renderPolarGrid,once:!0},PolarAngleAxis:{handler:Et.renderPolarAxis},PolarRadiusAxis:{handler:Et.renderPolarAxis},Customized:{handler:Et.renderCustomized}}),Et.clipPathId="".concat((xt=_t.id)!==null&&xt!==void 0?xt:uniqueId("recharts"),"-clip"),Et.throttleTriggeredAfterMouseMove=throttle$1(Et.triggeredAfterMouseMove,(yt=_t.throttleDelay)!==null&&yt!==void 0?yt:1e3/60),Et.state={},Et}return _createClass(bt,[{key:"componentDidMount",value:function(){var xt,yt;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(xt=this.props.margin.left)!==null&&xt!==void 0?xt:0,top:(yt=this.props.margin.top)!==null&&yt!==void 0?yt:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout})}},{key:"getSnapshotBeforeUpdate",value:function(xt,yt){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==yt.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==xt.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==xt.margin){var Et,St;this.accessibilityManager.setDetails({offset:{left:(Et=this.props.margin.left)!==null&&Et!==void 0?Et:0,top:(St=this.props.margin.top)!==null&&St!==void 0?St:0}})}return null}},{key:"componentDidUpdate",value:function(){}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var xt=findChildByType(this.props.children,Tooltip);if(xt&&typeof xt.props.shared=="boolean"){var yt=xt.props.shared?"axis":"item";return st.indexOf(yt)>=0?yt:ot}return ot}},{key:"getMouseInfo",value:function(xt){if(!this.container)return null;var yt=this.container,Et=yt.getBoundingClientRect(),St=getOffset(Et),$t={chartX:Math.round(xt.pageX-St.left),chartY:Math.round(xt.pageY-St.top)},At=Et.width/yt.offsetWidth||1,wt=this.inRange($t.chartX,$t.chartY,At);if(!wt)return null;var Ct=this.state,It=Ct.xAxisMap,Ot=Ct.yAxisMap,Nt=this.getTooltipEventType();if(Nt!=="axis"&&It&&Ot){var Pt=getAnyElementOfObject(It).scale,Mt=getAnyElementOfObject(Ot).scale,Rt=Pt&&Pt.invert?Pt.invert($t.chartX):null,Lt=Mt&&Mt.invert?Mt.invert($t.chartY):null;return _objectSpread(_objectSpread({},$t),{},{xValue:Rt,yValue:Lt})}var jt=getTooltipData(this.state,this.props.data,this.props.layout,wt);return jt?_objectSpread(_objectSpread({},$t),jt):null}},{key:"inRange",value:function(xt,yt){var Et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,St=this.props.layout,$t=xt/Et,At=yt/Et;if(St==="horizontal"||St==="vertical"){var wt=this.state.offset,Ct=$t>=wt.left&&$t<=wt.left+wt.width&&At>=wt.top&&At<=wt.top+wt.height;return Ct?{x:$t,y:At}:null}var It=this.state,Ot=It.angleAxisMap,Nt=It.radiusAxisMap;if(Ot&&Nt){var Pt=getAnyElementOfObject(Ot);return inRangeOfSector({x:$t,y:At},Pt)}return null}},{key:"parseEventsOfWrapper",value:function(){var xt=this.props.children,yt=this.getTooltipEventType(),Et=findChildByType(xt,Tooltip),St={};Et&&yt==="axis"&&(Et.props.trigger==="click"?St={onClick:this.handleClick}:St={onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd});var $t=adaptEventHandlers(this.props,this.handleOuterEvent);return _objectSpread(_objectSpread({},$t),St)}},{key:"addListener",value:function(){eventCenter.on(SYNC_EVENT,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){eventCenter.removeListener(SYNC_EVENT,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(xt,yt,Et){for(var St=this.state.formattedGraphicalItems,$t=0,At=St.length;$t{const et=useClasses$b(),tt=reactExports.useMemo(()=>mergeClasses(et.wrapper,_e&&et.horizontal),[et,_e]),rt=reactExports.useMemo(()=>mergeClasses(et.tagsWrapper,_e&&et.tagsWrapperHorizontal),[et,_e]),nt=reactExports.useMemo(()=>{let ot;switch(j.type){case"custom":ot=j.content;break;case"text":ot=jsxRuntimeExports.jsx(Text$2,{size:500,children:j.data});break;case"number":ot=jsxRuntimeExports.jsx(Text$2,{size:500,children:numberFormatter(j.data)});break;case"status":ot=jsxRuntimeExports.jsx(StatusText,{statusCode:j.status,textSize:500,showText:!0});break;case"time":{ot=jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:j.startTimeISOStr,endTimeISOString:j.endTimeISOStr,textSize:500});break}case"score":{const it=[{data:j.score,color:tokens.colorNeutralForeground3},{data:1-j.score,color:tokens.colorNeutralBackground4}];ot=jsxRuntimeExports.jsxs("div",{className:et.scoreWrapper,children:[jsxRuntimeExports.jsx(PieChart,{width:24,height:24,children:jsxRuntimeExports.jsx(Pie,{data:it,dataKey:"data",cx:"50%",cy:"50%",innerRadius:8,outerRadius:11,strokeWidth:0,stroke:"transparent",children:it.map((st,lt)=>jsxRuntimeExports.jsx(Cell,{fill:st.color},`cell-${lt}`))})}),jsxRuntimeExports.jsx(Text$2,{size:500,children:j.score})]});break}case"tags":ot=jsxRuntimeExports.jsx("div",{className:rt,children:j.tags.map((it,st)=>jsxRuntimeExports.jsx(MetricTag,{tag:it},st))});break;default:ot=null}return ot},[j,et,rt]);return jsxRuntimeExports.jsxs("div",{className:tt,children:[jsxRuntimeExports.jsx(Text$2,{size:400,className:et.title,children:j.title}),jsxRuntimeExports.jsx("div",{className:et.data,children:nt})]})},useClasses$b=makeStyles({wrapper:{display:"flex",flexDirection:"column",justifyContent:"space-between",...shorthands.flex(0,0,"auto")},horizontal:{flexDirection:"row",alignItems:"center",...shorthands.flex(0,0,"auto")},title:{color:tokens.colorNeutralForeground2,marginBottom:tokens.spacingVerticalXS},data:{color:tokens.colorNeutralForeground1},tagsWrapper:{display:"flex",flexDirection:"row",...shorthands.gap("0.5rem")},tagsWrapperHorizontal:{flexDirection:"column"},timeWrapper:{display:"flex",flexDirection:"row",alignItems:"center",justifyItems:"center","> svg":{marginRight:"5px"}},scoreWrapper:{display:"flex",flexDirection:"row",alignItems:"center","> :first-child":{marginRight:"8px"}}}),TraceDetailMetrics=()=>{const j=useClasses$a(),_e=useSelectedTrace(),et=useLocStrings(),tt=reactExports.useMemo(()=>{const rt=_e;if(!rt)return[];const nt=convertToTraceListRow(rt),ot=[{title:et.Status,type:"status",status:rt.status??UNDEFINED_VALUE_PLACEHOLDER},{title:et.Total_Tokens,type:"custom",content:jsxRuntimeExports.jsx("div",{className:j.token,children:jsxRuntimeExports.jsx(SummaryToken,{trace:nt})})},{title:et.Latency,type:"time",startTimeISOStr:rt.start_time,endTimeISOStr:rt.end_time}];return rt.evaluations&&Object.entries(rt.evaluations).forEach(([it,st])=>{const lt=[],ut=st.outputs;ut&&(Object.keys(ut).forEach(ct=>{const dt=ut[ct];dt!=null&<.push({name:ct,value:ut[ct]})}),ot.push({title:it,type:"tags",tags:lt}))}),ot},[_e,j.token]);return jsxRuntimeExports.jsx("div",{className:j.wrapper,children:tt.map((rt,nt)=>jsxRuntimeExports.jsx(MetricItem,{data:rt},nt))})},useClasses$a=makeStyles({wrapper:{display:"flex",alignItems:"stretch",height:"48px",width:"100%",...shorthands.margin("16px"),...shorthands.gap("1rem")},token:{"& div":{fontSize:"20px",fontWeight:400}}}),useClasses$9=makeStyles({root:{height:"100%",width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"nowrap",cursor:"pointer"},left:{display:"flex",flexWrap:"nowrap",maxWidth:"{(TREE_NODE_WIDTH * 2) / 3}px",...shorthands.overflow("hidden"),textOverflow:"ellipsis",whiteSpace:"nowrap",...shorthands.margin("0px","10px","0px","0px"),alignItems:"center"},spanName:shorthands.margin("0px","0px","0px","4px"),lastInputMessage:{...shorthands.margin("0px","0px","0px","4px"),fontSize:"12px",color:tokens.colorNeutralForeground2},lastInputMessageLabel:shorthands.margin("0px","4px","0px","0px"),right:{display:"flex",flexWrap:"nowrap",...shorthands.padding("0px","10px","0px","0px"),...shorthands.gap(tokens.spacingHorizontalS)}}),TreeNode=({node:j,span:_e})=>{var ct,dt,ft,pt;const et=getToolTypeFromSpan(_e),tt=bitset.has(GraphNodeStatus.Selected)(j.status),rt=bitset.has(GraphNodeStatus.Activated)(j.status),nt=useLastInputMessageBySpanId(((ct=_e.context)==null?void 0:ct.span_id)??""),ot=useLocStrings(),it=useClasses$9();let st=tokens.colorNeutralStroke1,lt=tokens.colorNeutralBackground4,ut=1;return tt&&(st=tokens.colorBrandStroke2,ut=2,lt=tokens.colorNeutralBackground4Selected),rt&&(lt=tokens.colorNeutralBackground4Hover),jsxRuntimeExports.jsx("foreignObject",{x:j.x,y:j.y,width:TREE_NODE_WIDTH,height:TREE_NODE_HEIGHT,style:{border:`${ut}px solid ${st}`,backgroundColor:lt,borderRadius:10,paddingLeft:10},children:jsxRuntimeExports.jsxs("div",{className:it.root,children:[jsxRuntimeExports.jsxs("div",{className:it.left,children:[et&&jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",children:`${et}`}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(Tooltip$1,{content:_e.name??"",relationship:"label",children:jsxRuntimeExports.jsx("div",{className:it.spanName,children:`${_e.name}`})}),nt&&jsxRuntimeExports.jsxs("div",{className:it.lastInputMessage,children:[jsxRuntimeExports.jsx("span",{className:it.lastInputMessageLabel,children:ot["Last input:"]}),getSenderNameByLLMMessage(nt)]})]})]}),jsxRuntimeExports.jsxs("div",{className:it.right,children:[((ft=(dt=_e==null?void 0:_e.status)==null?void 0:dt.status_code)==null?void 0:ft.toLowerCase())==="error"&&jsxRuntimeExports.jsx(StatusText,{statusCode:(pt=_e.status)==null?void 0:pt.status_code,tooltipContent:_e.status.message}),jsxRuntimeExports.jsx(NodeToken,{span:_e}),jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:_e.start_time,endTimeISOString:_e.end_time})]})]})})};class NodeConfig{constructor(_e){this.options=_e}render(_e){const et=this.options.spans.find(tt=>{var rt;return((rt=tt==null?void 0:tt.context)==null?void 0:rt.span_id)===_e.model.id});return et?jsxRuntimeExports.jsx(TreeNode,{node:_e.model,span:et}):null}getMinHeight(){return 0}getMinWidth(){return 0}}const TreeView=()=>{const j=useSpansOfSelectedTrace(),_e=useSetSelectedSpanId(),et=useSelectedSpanId(),tt=st=>(lt,ut)=>(ut&&ut.type===GraphNodeEvent.Click&&_e(ut.node.id),st(lt,ut)),rt=GraphConfigBuilder.default().registerNode(()=>new NodeConfig({spans:j})).registerPort(()=>new PortConfig).registerEdge(()=>new EdgeConfig).build(),nt=new Set;nt.add(GraphFeatures.ClickNodeToSelect),nt.add(GraphFeatures.CanvasVerticalScrollable),nt.add(GraphFeatures.LimitBoundary),nt.add(GraphFeatures.InvisibleScrollbar);const[ot,it]=useGraphReducer({data:GraphModel.empty(),settings:{features:nt,graphConfig:rt,canvasBoundaryPadding:{top:0,bottom:TREE_NODE_HEIGHT}}},tt);return reactExports.useEffect(()=>{const{graph:st,rootIds:lt}=spansToGraphModel(j,{});it({type:GraphCanvasEvent.SetData,data:st.selectNodes(ut=>ut.id===lt[0])}),_e(lt[0])},[]),reactExports.useEffect(()=>{et&&it({type:GraphNodeEvent.Select,nodes:[et]})},[et]),jsxRuntimeExports.jsx(TreeGraph,{state:ot,dispatch:it})},TraceDetail=()=>{const j=useClasses$8(),_e=useSelectedSpanId(),et=reactExports.useRef(null),tt=useTraceDetailRefreshKey(),rt=useIsGanttChartOpen(),nt=useTraceDetailViewStatus(),ot=useTraceDetailLoadingComponent(),it=useTraceDetailErrorComponent(),st=useLocStrings();return reactExports.useEffect(()=>{var lt;rt&&((lt=et.current)==null||lt.updateSize({height:400,width:"100%"}))},[rt]),nt===ViewStatus.error?jsxRuntimeExports.jsx(it,{}):nt===ViewStatus.loading?jsxRuntimeExports.jsx(ot,{}):nt===ViewStatus.hidden?null:jsxRuntimeExports.jsxs("div",{className:j.root,children:[jsxRuntimeExports.jsxs("div",{className:j.container,children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(TraceDetailMetrics,{},tt),jsxRuntimeExports.jsx(Divider$2,{})]}),jsxRuntimeExports.jsxs("div",{className:j.content,children:[jsxRuntimeExports.jsx(Resizable,{enable:{right:!0},minWidth:100,maxWidth:"60%",defaultSize:{width:TREE_NODE_WIDTH+2*TREE_NODE_INDENT+32,height:"100%"},handleComponent:{right:jsxRuntimeExports.jsx("div",{className:j.resizeBar})},children:jsxRuntimeExports.jsx("div",{className:j.leftPane,children:jsxRuntimeExports.jsx(TreeView,{},tt)})}),jsxRuntimeExports.jsx("div",{className:j.rightPane,children:jsxRuntimeExports.jsx(NodeDetail,{emptyTip:jsxRuntimeExports.jsx(MessageBar,{intent:"error",children:st.No_span_data})},tt)},`${_e}`)]})]}),rt&&jsxRuntimeExports.jsx("div",{className:j.bottomPane,children:jsxRuntimeExports.jsx(Resizable,{ref:et,className:j.ganttContainer,defaultSize:{height:0,width:"100%"},enable:{top:!0},handleComponent:{top:jsxRuntimeExports.jsx("div",{className:j.resizeBarBottom})},children:jsxRuntimeExports.jsx(GanttView,{},tt)})})]})},useClasses$8=makeStyles({root:{width:"100%",height:"100%"},container:{display:"flex",flexDirection:"column",height:"100%",width:"100%"},summary:{display:"flex",alignItems:"stretch",height:"48px",width:"100%",...shorthands.margin("16px"),...shorthands.gap("1rem")},content:{...shorthands.flex(1),display:"flex"},leftPane:{height:"100%",...shorthands.margin("16px",0,0,"16px")},rightPane:{position:"relative",width:"100%",height:"100%",...shorthands.flex(1),...shorthands.overflow("hidden")},bottomPane:{position:"absolute",backgroundColor:tokens.colorNeutralBackground1,bottom:0,width:"100%"},ganttContainer:{...shorthands.padding("16px")},resizeBar:{position:"absolute",top:0,bottom:0,right:"5px",width:"6px",backgroundColor:tokens.colorNeutralBackground3,"::before":{content:"''",position:"absolute",top:"50%",right:"1px",marginTop:"-12px",height:"24px",width:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed},"::after":{content:"''",position:"absolute",top:"50%",left:"1px",marginTop:"-12px",height:"24px",width:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed}},resizeBarBottom:{position:"absolute",left:0,right:0,bottom:"5px",height:"6px",backgroundColor:tokens.colorNeutralBackground3,"::before":{content:"''",position:"absolute",left:"50%",bottom:"1px",marginLeft:"-12px",width:"24px",height:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed},"::after":{content:"''",position:"absolute",left:"50%",top:"1px",marginLeft:"-12px",width:"24px",height:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed}}}),useClasses$7=makeStyles({title:{...shorthands.flex(1),...shorthands.padding("8px","16px"),lineHeight:"28px",fontSize:"18px",fontWeight:600}}),TraceDetailTitle=()=>{const j=useClasses$7(),_e=useLocStrings(),et=useSelectedTrace();return jsxRuntimeExports.jsx("div",{className:j.title,children:(et==null?void 0:et.name)??_e.Trace_Detail})},TraceFilter=()=>{const j=useClasses$6(),_e=useTableColumnNames(),[et,tt]=[useTableHiddenColumnKeys(),useSetTableHiddenColumnKeys()],rt=useTraceListShowMetrics(),nt=reactExports.useMemo(()=>[..._e.normalColumns,..._e.evaluationColumns].filter(st=>!et.includes(st.key)).map(st=>st.key),[et,_e]),ot=(it,st)=>{const{optionValue:lt}=st;lt&&tt(et.includes(lt)?et.filter(ut=>ut!==lt):[...et,lt])};return jsxRuntimeExports.jsxs("div",{className:j.wrapper,children:[jsxRuntimeExports.jsx(Input,{className:j.filter,disabled:!0,placeholder:"NOT implement yet"}),jsxRuntimeExports.jsxs(Combobox,{className:j.chooser,multiselect:!0,placeholder:"Columns Filter",selectedOptions:nt,onOptionSelect:ot,children:[jsxRuntimeExports.jsx(OptionGroup,{label:"Trace Info",children:_e.normalColumns.map(it=>jsxRuntimeExports.jsx(Option$2,{value:it.key,children:it.name},it.key))}),rt&&jsxRuntimeExports.jsx(OptionGroup,{label:"Metrics",children:_e.evaluationColumns.map(it=>jsxRuntimeExports.jsx(Option$2,{value:it.key,children:it.name},it.key))})]})]})},useClasses$6=makeStyles({wrapper:{display:"flex",...shorthands.gap("1rem"),...shorthands.margin(tokens.spacingVerticalM)},filter:{flexGrow:1},chooser:{width:"100px"}}),useDebugFunctions=()=>{const j=useGetAllTraces(),_e=useGetAllSpans(),et=useSelectedTrace(),tt=useSpansOfSelectedTrace();reactExports.useEffect(()=>{window.printTracesAndSpans=()=>{const rt=j();console.log("traces",rt);const nt=_e();console.log("spans",nt)},window.printSelectedTrace=()=>{console.log("selectedTrace",et)},window.printSpansOfSelectedTrace=()=>{console.log("spansOfSelectedTrace",tt)}},[j,_e,et,tt])},useOnClickTraceRow=()=>{const j=useSetSelectedTraceId();return(_e,et)=>{j(_e==null?void 0:_e.trace_id)}};function useResolvedElement(j,_e){var et=reactExports.useRef(null),tt=reactExports.useRef(null);tt.current=_e;var rt=reactExports.useRef(null);reactExports.useEffect(function(){nt()});var nt=reactExports.useCallback(function(){var ot=rt.current,it=tt.current,st=ot||(it?it instanceof Element?it:it.current:null);et.current&&et.current.element===st&&et.current.subscriber===j||(et.current&&et.current.cleanup&&et.current.cleanup(),et.current={element:st,subscriber:j,cleanup:st?j(st):void 0})},[j]);return reactExports.useEffect(function(){return function(){et.current&&et.current.cleanup&&(et.current.cleanup(),et.current=null)}},[]),reactExports.useCallback(function(ot){rt.current=ot,nt()},[nt])}function extractSize(j,_e,et){return j[_e]?j[_e][0]?j[_e][0][et]:j[_e][et]:_e==="contentBoxSize"?j.contentRect[et==="inlineSize"?"width":"height"]:void 0}function useResizeObserver(j){j===void 0&&(j={});var _e=j.onResize,et=reactExports.useRef(void 0);et.current=_e;var tt=j.round||Math.round,rt=reactExports.useRef(),nt=reactExports.useState({width:void 0,height:void 0}),ot=nt[0],it=nt[1],st=reactExports.useRef(!1);reactExports.useEffect(function(){return st.current=!1,function(){st.current=!0}},[]);var lt=reactExports.useRef({width:void 0,height:void 0}),ut=useResolvedElement(reactExports.useCallback(function(ct){return(!rt.current||rt.current.box!==j.box||rt.current.round!==tt)&&(rt.current={box:j.box,round:tt,instance:new ResizeObserver(function(dt){var ft=dt[0],pt=j.box==="border-box"?"borderBoxSize":j.box==="device-pixel-content-box"?"devicePixelContentBoxSize":"contentBoxSize",gt=extractSize(ft,pt,"inlineSize"),vt=extractSize(ft,pt,"blockSize"),bt=gt?tt(gt):void 0,_t=vt?tt(vt):void 0;if(lt.current.width!==bt||lt.current.height!==_t){var xt={width:bt,height:_t};lt.current.width=bt,lt.current.height=_t,et.current?et.current(xt):st.current||it(xt)}})}),rt.current.instance.observe(ct,{box:j.box}),function(){rt.current&&rt.current.instance.unobserve(ct)}},[j.box,tt]),j.ref);return reactExports.useMemo(function(){return{ref:ut,width:ot.width,height:ot.height}},[ut,ot.width,ot.height])}const genStatusChecker=j=>_e=>_e===void 0?!1:_e.toLowerCase()===j.toLowerCase(),checkStatus=(j,_e)=>j===void 0?!1:j.toLowerCase()===_e.toLowerCase(),useTraceListRows=()=>useTraces().map(_e=>convertToTraceListRow(_e)),BASIC_WIDTH=200,getColumnChildrenCount=j=>j.children?j==null?void 0:j.children.reduce((_e,et)=>_e+getColumnChildrenCount(et),0):j.minWidth??BASIC_WIDTH,useTraceListColumns=()=>{const{ref:j,width:_e}=useResizeObserver(),et=useClasses$5(),tt=useTraceListRows(),rt=useOnClickTraceRow(),nt=useSetTableColumnNames(),ot=useTableHiddenColumnKeys(),it=useLocStrings(),st=useTraceListColumnModifier(),lt=genStatusChecker("running"),ut=useSortableColumns(),ct=reactExports.useMemo(()=>{const gt=[];return tt.forEach(vt=>{Object.entries(vt.evaluations??{}).forEach(([bt,_t])=>{!gt.includes(bt)&&_t.display_name&>.push(_t.display_name)})}),gt.map(vt=>{const bt=[],_t=[];return tt.forEach(xt=>{var St;const yt=(St=xt.evaluations)==null?void 0:St[vt];if(!yt||!yt.outputs)return;const Et=yt.outputs;Object.keys(Et).forEach($t=>{const At=Et[$t];!bt.includes($t)&&At!==null&&(bt.push($t),_t.push({key:`evaluation-${vt}-${$t}-value`,name:$t,renderCell:({row:wt})=>{var Ot,Nt,Pt;if(lt(wt.status))return jsxRuntimeExports.jsx(CellSkeleton,{});let Ct;const It=(Pt=(Nt=(Ot=wt==null?void 0:wt.evaluations)==null?void 0:Ot[vt])==null?void 0:Nt.outputs)==null?void 0:Pt[$t];return It===void 0?Ct="N/A":typeof It=="number"?Ct=formatNumber(It):Ct=`${It}`,Ct}}))})}),{name:vt,key:`evaluation-${vt}`,children:_t}})},[tt]),dt=reactExports.useMemo(()=>{let vt=[...[{key:"kind",name:it.Kind,minWidth:120,maxWidth:200,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{}):jsxRuntimeExports.jsx(KindText,{kind:Et.kind})},{key:"name",name:it.Name,minWidth:150,maxWidth:300,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{}):jsxRuntimeExports.jsx(Tooltip$1,{content:Et.name??"",relationship:"label",children:jsxRuntimeExports.jsx("span",{className:et.nameCell,title:Et.name,onClick:()=>{rt(Et,"name")},children:Et.name})})},{key:"input",name:it.Input,minWidth:300,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{height:40}):jsxRuntimeExports.jsx(TraceListJsonCell,{jsonObject:Et.inputs})},{key:"output",name:it.Output,minWidth:300,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{height:40}):jsxRuntimeExports.jsx(TraceListJsonCell,{jsonObject:Et.outputs})},{key:"start_time",name:it.Start_time,minWidth:150,maxWidth:300,renderCell:({row:Et})=>jsxRuntimeExports.jsx(TextCellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:Et.start_time})})},{key:"end_time",name:it.End_time,minWidth:150,maxWidth:300,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{height:40}):jsxRuntimeExports.jsx(TextCellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:Et.end_time})})},{key:"latency",name:it.Latency,minWidth:120,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{}):jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:Et.start_time,endTimeISOString:Et.end_time})})},{key:"total_tokens",name:it.Total_tokens,minWidth:120,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{}):jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(SummaryToken,{trace:Et})})},{key:"status",name:it.Status,minWidth:120,renderCell:({row:Et})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(StatusText,{statusCode:Et.status})})}],{key:"evaluations",name:"Metrics",minWidth:450,children:ct}];vt=st?st(vt,tt):vt;const bt=vt.filter(Et=>Et.key!=="evaluations"),_t=vt.find(Et=>Et.key==="evaluations");nt({normalColumns:bt.map(Et=>({name:Et.name,key:Et.key})).filter(Et=>!UN_FILTERABLE_COLUMNS.includes(Et.name)),evaluationColumns:_t.children.map(Et=>({name:Et.name,key:Et.key}))});const xt=bt.filter(Et=>!ot.includes(Et.key)),yt={..._t,children:_t.children.filter(Et=>!ot.includes(Et.key))};return[...xt,yt]},[et.nameCell,ct,ot,rt,nt,tt]),ft=dt.reduce((gt,vt)=>gt+getColumnChildrenCount(vt),0),pt=gt=>{if(gt.children)return{...gt,children:gt.children.map(pt)};const vt=gt.minWidth??BASIC_WIDTH,bt=_e?(_e-24)/ft*vt:200;return{...gt,width:bt,minWidth:bt}};return{columns:dt.map(pt).map(gt=>{const vt=gt.key;return vt?{...gt,key:gt.key,sortable:!!(vt&&ut.includes(vt))}:gt}),ref:j}},useClasses$5=makeStyles({typeBadge:{...shorthands.padding(tokens.spacingVerticalXXS,tokens.spacingHorizontalS)},latencyWrapper:{display:"flex",flexDirection:"row",alignItems:"center",justifyItems:"center","> svg":{marginRight:"5px"}},nameCell:{color:tokens.colorBrandForeground1,fontWeight:tokens.fontWeightSemibold,":hover":{...shorthands.textDecoration("underline")}}}),UN_FILTERABLE_COLUMNS=["Kind","Name"];function TraceList({onRowClick:j,className:_e}){const et=useClasses$4(),tt=useTraceListRows(),{columns:rt,ref:nt}=useTraceListColumns(),ot=useTraceListViewStatus(),it=useTraceListLoadingComponent(),st=useTraceListErrorComponent(),lt=useIsDark();useDebugFunctions();const ut=useSortColumn(),ct=useSetSortColumn(),dt=ut?[ut]:[],ft=useOnClickTraceRow(),pt=reactExports.useCallback(gt=>{const{row:vt,column:bt}=gt;ft(vt,bt.key),j==null||j(vt)},[ft,j]);return ot===ViewStatus.error?jsxRuntimeExports.jsx(st,{}):ot===ViewStatus.loading?jsxRuntimeExports.jsx(it,{}):jsxRuntimeExports.jsx("div",{ref:nt,className:et.root,children:jsxRuntimeExports.jsx(DataGrid$1$1,{className:`${et.grid} ${_e??""} ${lt?"rdg-dark":"rdg-light"}`,renderers:{noRowsFallback:jsxRuntimeExports.jsxs("div",{style:{textAlign:"center",gridColumn:"1/-1",display:"flex",alignItems:"center",justifyContent:"center"},children:[jsxRuntimeExports.jsx(TextBulletListSquareWarning24Regular,{}),jsxRuntimeExports.jsx(Text$2,{style:{paddingLeft:"1rem"},children:"No traces found."})]})},rowClass:()=>et.row,columns:rt,rows:tt,headerRowHeight:26,rowHeight:80,onCellClick:pt,defaultColumnOptions:{resizable:!0},sortColumns:dt,onSortColumnsChange:gt=>{var vt;ct((vt=gt.slice(-1))==null?void 0:vt[0])}})})}const useClasses$4=makeStyles({root:{display:"flex",flexDirection:"column",flexGrow:1},grid:{},row:{cursor:"pointer"}}),defaultLocStrings=new Proxy({},{get:(j,_e)=>_e.replace(/_/g," ")}),RegistryWrapper=createRegistry({name:"TraceView"}),TraceViewWrapper=({isDark:j=!1,viewModel:_e,children:et,locStrings:tt=defaultLocStrings,TraceListLoading:rt,TraceListError:nt,TraceDetailLoading:ot,TraceDetailError:it})=>{const st=React.useCallback(lt=>{lt.register(TraceViewModelToken,{useValue:_e}),rt&<.register(traceListLoadingInjectionToken,{useValue:rt}),nt&<.register(traceListErrorInjectionToken,{useValue:nt}),ot&<.register(traceDetailLoadingInjectionToken,{useValue:ot}),it&<.register(traceDetailErrorInjectionToken,{useValue:it}),tt&<.register(locStringsInjectionToken,{useValue:tt})},[]);return jsxRuntimeExports.jsx(TraceViewThemeContext.Provider,{value:j,children:jsxRuntimeExports.jsx(RegistryWrapper,{onInitialize:st,children:et})})},DefaultDetailContainer=({isOpen:j,setIsOpen:_e,header:et=null,content:tt})=>jsxRuntimeExports.jsxs(OverlayDrawer,{position:"end",style:{width:"calc(100% - 160px)"},open:j,onOpenChange:(rt,nt)=>_e(nt.open),children:[et,jsxRuntimeExports.jsx("div",{style:{width:"100%",height:"calc(100vh - 40px)"},children:tt})]}),DefaultDetailHeader=({setIsTraceDetailOpen:j,viewModel:_e,showRefresh:et=!0,showGantt:tt=!0,showCopyUrl:rt=!1,showStreamSwitch:nt=!1,isStreaming:ot,onIsStreamingChange:it})=>{const st=useClasses$3(),lt=useLocStrings(),ut=useIsGanttChartOpen();return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:st.header,children:[jsxRuntimeExports.jsx(TraceDetailTitle,{}),nt&&ot!==void 0&&it!==void 0&&jsxRuntimeExports.jsx(StreamSwitcher,{style:{marginRight:"16px",marginTop:"4px"},isStreaming:ot,onIsStreamingChange:it}),rt?jsxRuntimeExports.jsx(Tooltip$1,{content:lt["Copy URL"],relationship:"description",children:jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Copy URL",icon:jsxRuntimeExports.jsx(SendCopy20Regular,{}),onClick:()=>navigator.clipboard.writeText(window.location.href)})}):null,et?jsxRuntimeExports.jsx(Tooltip$1,{content:lt["Refresh Data"],relationship:"description",children:jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Refresh",icon:jsxRuntimeExports.jsx(ArrowClockwise16Regular,{}),onClick:()=>_e.refreshSpans()})}):null,tt?jsxRuntimeExports.jsx(Tooltip$1,{content:lt[ut?"Hide Gantt":"Show Gantt"],relationship:"description",children:jsxRuntimeExports.jsx(Button$2,{style:{color:ut?tokens.colorBrandForeground1:""},appearance:"subtle","aria-label":"Close",icon:jsxRuntimeExports.jsx(GanttChart20Regular,{}),onClick:()=>_e.toggleIsGanttChartOpen()})}):null,jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Close",icon:jsxRuntimeExports.jsx(Dismiss24Regular,{}),onClick:()=>j(!1)})]}),jsxRuntimeExports.jsx(Divider$2,{})]})},useClasses$3=makeStyles({header:{display:"flex",width:"100%"},wrapper:{display:"flex",flexDirection:"column",height:"100%"},divider:{flexGrow:0,...shorthands.margin("16px",0)},grid:{flexGrow:1}});function useDarkMode(){const[j,_e]=reactExports.useState(!1);return reactExports.useEffect(()=>{const et=window.matchMedia("(prefers-color-scheme: dark)");_e(et.matches);const tt=rt=>{_e(rt.matches)};return et.addEventListener("change",tt),()=>{et.removeEventListener("change",tt)}},[]),j}const token="%[a-f0-9]{2}",singleMatcher=new RegExp("("+token+")|([^%]+?)","gi"),multiMatcher=new RegExp("("+token+")+","gi");function decodeComponents(j,_e){try{return[decodeURIComponent(j.join(""))]}catch{}if(j.length===1)return j;_e=_e||1;const et=j.slice(0,_e),tt=j.slice(_e);return Array.prototype.concat.call([],decodeComponents(et),decodeComponents(tt))}function decode$1(j){try{return decodeURIComponent(j)}catch{let _e=j.match(singleMatcher)||[];for(let et=1;et<_e.length;et++)j=decodeComponents(_e,et).join(""),_e=j.match(singleMatcher)||[];return j}}function customDecodeURIComponent(j){const _e={"%FE%FF":"��","%FF%FE":"��"};let et=multiMatcher.exec(j);for(;et;){try{_e[et[0]]=decodeURIComponent(et[0])}catch{const rt=decode$1(et[0]);rt!==et[0]&&(_e[et[0]]=rt)}et=multiMatcher.exec(j)}_e["%C2"]="�";const tt=Object.keys(_e);for(const rt of tt)j=j.replace(new RegExp(rt,"g"),_e[rt]);return j}function decodeUriComponent(j){if(typeof j!="string")throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof j+"`");try{return decodeURIComponent(j)}catch{return customDecodeURIComponent(j)}}function splitOnFirst(j,_e){if(!(typeof j=="string"&&typeof _e=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(j===""||_e==="")return[];const et=j.indexOf(_e);return et===-1?[]:[j.slice(0,et),j.slice(et+_e.length)]}function includeKeys(j,_e){const et={};if(Array.isArray(_e))for(const tt of _e){const rt=Object.getOwnPropertyDescriptor(j,tt);rt!=null&&rt.enumerable&&Object.defineProperty(et,tt,rt)}else for(const tt of Reflect.ownKeys(j)){const rt=Object.getOwnPropertyDescriptor(j,tt);if(rt.enumerable){const nt=j[tt];_e(tt,nt,j)&&Object.defineProperty(et,tt,rt)}}return et}const isNullOrUndefined=j=>j==null,strictUriEncode=j=>encodeURIComponent(j).replaceAll(/[!'()*]/g,_e=>`%${_e.charCodeAt(0).toString(16).toUpperCase()}`),encodeFragmentIdentifier=Symbol("encodeFragmentIdentifier");function encoderForArrayFormat(j){switch(j.arrayFormat){case"index":return _e=>(et,tt)=>{const rt=et.length;return tt===void 0||j.skipNull&&tt===null||j.skipEmptyString&&tt===""?et:tt===null?[...et,[encode(_e,j),"[",rt,"]"].join("")]:[...et,[encode(_e,j),"[",encode(rt,j),"]=",encode(tt,j)].join("")]};case"bracket":return _e=>(et,tt)=>tt===void 0||j.skipNull&&tt===null||j.skipEmptyString&&tt===""?et:tt===null?[...et,[encode(_e,j),"[]"].join("")]:[...et,[encode(_e,j),"[]=",encode(tt,j)].join("")];case"colon-list-separator":return _e=>(et,tt)=>tt===void 0||j.skipNull&&tt===null||j.skipEmptyString&&tt===""?et:tt===null?[...et,[encode(_e,j),":list="].join("")]:[...et,[encode(_e,j),":list=",encode(tt,j)].join("")];case"comma":case"separator":case"bracket-separator":{const _e=j.arrayFormat==="bracket-separator"?"[]=":"=";return et=>(tt,rt)=>rt===void 0||j.skipNull&&rt===null||j.skipEmptyString&&rt===""?tt:(rt=rt===null?"":rt,tt.length===0?[[encode(et,j),_e,encode(rt,j)].join("")]:[[tt,encode(rt,j)].join(j.arrayFormatSeparator)])}default:return _e=>(et,tt)=>tt===void 0||j.skipNull&&tt===null||j.skipEmptyString&&tt===""?et:tt===null?[...et,encode(_e,j)]:[...et,[encode(_e,j),"=",encode(tt,j)].join("")]}}function parserForArrayFormat(j){let _e;switch(j.arrayFormat){case"index":return(et,tt,rt)=>{if(_e=/\[(\d*)]$/.exec(et),et=et.replace(/\[\d*]$/,""),!_e){rt[et]=tt;return}rt[et]===void 0&&(rt[et]={}),rt[et][_e[1]]=tt};case"bracket":return(et,tt,rt)=>{if(_e=/(\[])$/.exec(et),et=et.replace(/\[]$/,""),!_e){rt[et]=tt;return}if(rt[et]===void 0){rt[et]=[tt];return}rt[et]=[...rt[et],tt]};case"colon-list-separator":return(et,tt,rt)=>{if(_e=/(:list)$/.exec(et),et=et.replace(/:list$/,""),!_e){rt[et]=tt;return}if(rt[et]===void 0){rt[et]=[tt];return}rt[et]=[...rt[et],tt]};case"comma":case"separator":return(et,tt,rt)=>{const nt=typeof tt=="string"&&tt.includes(j.arrayFormatSeparator),ot=typeof tt=="string"&&!nt&&decode(tt,j).includes(j.arrayFormatSeparator);tt=ot?decode(tt,j):tt;const it=nt||ot?tt.split(j.arrayFormatSeparator).map(st=>decode(st,j)):tt===null?tt:decode(tt,j);rt[et]=it};case"bracket-separator":return(et,tt,rt)=>{const nt=/(\[])$/.test(et);if(et=et.replace(/\[]$/,""),!nt){rt[et]=tt&&decode(tt,j);return}const ot=tt===null?[]:tt.split(j.arrayFormatSeparator).map(it=>decode(it,j));if(rt[et]===void 0){rt[et]=ot;return}rt[et]=[...rt[et],...ot]};default:return(et,tt,rt)=>{if(rt[et]===void 0){rt[et]=tt;return}rt[et]=[...[rt[et]].flat(),tt]}}}function validateArrayFormatSeparator(j){if(typeof j!="string"||j.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function encode(j,_e){return _e.encode?_e.strict?strictUriEncode(j):encodeURIComponent(j):j}function decode(j,_e){return _e.decode?decodeUriComponent(j):j}function keysSorter(j){return Array.isArray(j)?j.sort():typeof j=="object"?keysSorter(Object.keys(j)).sort((_e,et)=>Number(_e)-Number(et)).map(_e=>j[_e]):j}function removeHash(j){const _e=j.indexOf("#");return _e!==-1&&(j=j.slice(0,_e)),j}function getHash(j){let _e="";const et=j.indexOf("#");return et!==-1&&(_e=j.slice(et)),_e}function parseValue(j,_e){return _e.parseNumbers&&!Number.isNaN(Number(j))&&typeof j=="string"&&j.trim()!==""?j=Number(j):_e.parseBooleans&&j!==null&&(j.toLowerCase()==="true"||j.toLowerCase()==="false")&&(j=j.toLowerCase()==="true"),j}function extract(j){j=removeHash(j);const _e=j.indexOf("?");return _e===-1?"":j.slice(_e+1)}function parse(j,_e){_e={decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1,..._e},validateArrayFormatSeparator(_e.arrayFormatSeparator);const et=parserForArrayFormat(_e),tt=Object.create(null);if(typeof j!="string"||(j=j.trim().replace(/^[?#&]/,""),!j))return tt;for(const rt of j.split("&")){if(rt==="")continue;const nt=_e.decode?rt.replaceAll("+"," "):rt;let[ot,it]=splitOnFirst(nt,"=");ot===void 0&&(ot=nt),it=it===void 0?null:["comma","separator","bracket-separator"].includes(_e.arrayFormat)?it:decode(it,_e),et(decode(ot,_e),it,tt)}for(const[rt,nt]of Object.entries(tt))if(typeof nt=="object"&&nt!==null)for(const[ot,it]of Object.entries(nt))nt[ot]=parseValue(it,_e);else tt[rt]=parseValue(nt,_e);return _e.sort===!1?tt:(_e.sort===!0?Object.keys(tt).sort():Object.keys(tt).sort(_e.sort)).reduce((rt,nt)=>{const ot=tt[nt];return rt[nt]=ot&&typeof ot=="object"&&!Array.isArray(ot)?keysSorter(ot):ot,rt},Object.create(null))}function stringify(j,_e){if(!j)return"";_e={encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:",",..._e},validateArrayFormatSeparator(_e.arrayFormatSeparator);const et=ot=>_e.skipNull&&isNullOrUndefined(j[ot])||_e.skipEmptyString&&j[ot]==="",tt=encoderForArrayFormat(_e),rt={};for(const[ot,it]of Object.entries(j))et(ot)||(rt[ot]=it);const nt=Object.keys(rt);return _e.sort!==!1&&nt.sort(_e.sort),nt.map(ot=>{const it=j[ot];return it===void 0?"":it===null?encode(ot,_e):Array.isArray(it)?it.length===0&&_e.arrayFormat==="bracket-separator"?encode(ot,_e)+"[]":it.reduce(tt(ot),[]).join("&"):encode(ot,_e)+"="+encode(it,_e)}).filter(ot=>ot.length>0).join("&")}function parseUrl(j,_e){var rt;_e={decode:!0,..._e};let[et,tt]=splitOnFirst(j,"#");return et===void 0&&(et=j),{url:((rt=et==null?void 0:et.split("?"))==null?void 0:rt[0])??"",query:parse(extract(j),_e),..._e&&_e.parseFragmentIdentifier&&tt?{fragmentIdentifier:decode(tt,_e)}:{}}}function stringifyUrl(j,_e){_e={encode:!0,strict:!0,[encodeFragmentIdentifier]:!0,..._e};const et=removeHash(j.url).split("?")[0]||"",tt=extract(j.url),rt={...parse(tt,{sort:!1}),...j.query};let nt=stringify(rt,_e);nt&&(nt=`?${nt}`);let ot=getHash(j.url);if(typeof j.fragmentIdentifier=="string"){const it=new URL(et);it.hash=j.fragmentIdentifier,ot=_e[encodeFragmentIdentifier]?it.hash:`#${j.fragmentIdentifier}`}return`${et}${nt}${ot}`}function pick(j,_e,et){et={parseFragmentIdentifier:!0,[encodeFragmentIdentifier]:!1,...et};const{url:tt,query:rt,fragmentIdentifier:nt}=parseUrl(j,et);return stringifyUrl({url:tt,query:includeKeys(rt,_e),fragmentIdentifier:nt},et)}function exclude(j,_e,et){const tt=Array.isArray(_e)?rt=>!_e.includes(rt):(rt,nt)=>!_e(rt,nt);return pick(j,tt,et)}const queryString=Object.freeze(Object.defineProperty({__proto__:null,exclude,extract,parse,parseUrl,pick,stringify,stringifyUrl},Symbol.toStringTag,{value:"Module"}));function useHashObject(){const[j,_e]=reactExports.useState(()=>queryString.parse(window.location.hash.substring(1))),et=reactExports.useCallback(tt=>{_e(rt=>{const nt={...rt,...tt},ot=queryString.stringify(nt);return window.location.hash=ot,nt})},[]);return reactExports.useEffect(()=>{const tt=()=>{_e(queryString.parse(window.location.hash.substring(1)))};return window.addEventListener("hashchange",tt),()=>window.removeEventListener("hashchange",tt)},[]),[j,et]}function genLocalUrlParamsWithHash(j){return isNotNullOrUndefined(j)?isNotNullOrUndefined(j.session)?`session=${j.session}`:isNotNullOrUndefined(j.experiment)?`experiment=${j.experiment}`:isNotNullOrUndefined(j.run)?`run=${j.run}`:"":""}function isNotNullOrUndefined(j){return j!=null}const getSummariesSignature=j=>j.flatMap(tt=>[`${tt.line_run_id}_${tt.status}`,...Object.values(tt.evaluations??[]).map(rt=>`${rt.trace_id}_${rt.status}`)]).sort().join(","),useLocalFetchSummaries=(j,_e,et)=>{const[tt,rt]=reactExports.useState(!0),nt=useLocalFetchSummariesFunc(j,_e);reactExports.useEffect(()=>{tt&&j.setTraceListStatus(ViewStatus.loading),nt().finally(()=>{tt&&(rt(!1),j.setTraceListStatus(ViewStatus.loaded))});let ot;return et&&(ot=setInterval(nt,TRACE_POLLING_GAP)),()=>{ot&&clearInterval(ot)}},[_e,et])},useLocalFetchSummary=j=>reactExports.useCallback(async et=>fetch(`${LOCAL_URL_PREFIX}/v1.0/LineRuns/${et}`).then(tt=>tt.json()).then(tt=>{tt&&(j.appendTraces([tt]),j.setTraceListStatus(ViewStatus.loaded))}).catch(tt=>{j.setTraceListStatus(ViewStatus.error),j.appendTraces([]),console.error("Error:",tt)}),[j]),useLocalFetchSummariesFunc=(j,_e)=>{const[et,tt]=reactExports.useState(void 0);return async()=>{const nt=genLocalUrlParamsWithHash(_e),ot=nt!==""?`?${nt}`:"";return fetch(`${LOCAL_URL_PREFIX}/v1.0/LineRuns/list${ot}`).then(it=>it.json()).then(it=>{if(!it&&Array.isArray(it))throw new Error("No new traces");const st=getSummariesSignature(it);(et===void 0||st!==et)&&(tt(st),j.traces$.clear(),j.appendTraces(it))}).catch(it=>{j.setTraceListStatus(ViewStatus.error),j.appendTraces([]),console.error("Error:",it)})}},useLocalRefreshTraces=(j,_e)=>{const et=useLocalFetchSummariesFunc(j,_e);return reactExports.useCallback(()=>{j.setTraceListStatus(ViewStatus.loading),et().then(()=>{j.setTraceListStatus(ViewStatus.loaded)})},[et,j])},useLocalTraceDetailDidOpen=(j,_e)=>{const et=useLocalFetchSummary(j);return reactExports.useCallback(async rt=>{if(!rt)return;let nt=j.getTraceById(rt);nt||(await et(rt),nt=j.getTraceById(rt));const ot=[rt,...Object.values((nt==null?void 0:nt.evaluations)??[]).map(it=>it.trace_id)].filter(it=>it!==void 0);_e({uiTraceId:rt}),j.setTraceDetailStatus(ViewStatus.loading),fetchLocalSpans(ot,j)},[j])},useLocalOnTraceDetailClose=j=>reactExports.useCallback(()=>{j({uiTraceId:void 0})},[j]),fetchLocalSpans=(j,_e)=>{fetch(`${LOCAL_URL_PREFIX}/v1.0/Spans/list?trace_ids=${j.join(",")}`).then(et=>et.json()).then(et=>{_e.appendSpans(et),_e.setTraceDetailStatus(ViewStatus.loaded)}).catch(et=>{console.error("Error:",et),_e.setTraceDetailStatus(ViewStatus.error)})},useLocalOnRefreshSpans=j=>{const _e=useLocalFetchSummary(j);return reactExports.useCallback((tt,rt)=>{const nt=[tt,...Object.values((rt==null?void 0:rt.evaluations)??[]).map(ot=>ot.trace_id)].filter(ot=>ot!==void 0);_e(tt),fetchLocalSpans(nt,j)},[_e,j])},LocalCommonHeader=({isStreaming:j,onIsStreamingChange:_e,streamLabelName:et,showRefresh:tt=!1})=>{const rt=useClasses$2(),nt=useLocStrings(),ot=useTraceViewModel();return jsxRuntimeExports.jsxs("div",{className:rt.wrapper,children:[jsxRuntimeExports.jsx("div",{className:rt.main}),tt&&jsxRuntimeExports.jsx(Tooltip$1,{content:nt["Refresh Data"],relationship:"description",children:jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Refresh",icon:jsxRuntimeExports.jsx(ArrowClockwise16Regular,{}),onClick:()=>ot.refreshTraces()})}),jsxRuntimeExports.jsx(StreamSwitcher,{isStreaming:j,onIsStreamingChange:_e,labelName:et})]})},useClasses$2=makeStyles({wrapper:{display:"flex",...shorthands.padding(tokens.spacingVerticalXXS,tokens.spacingHorizontalL)},main:{...shorthands.flex(1)}}),LocalTraceView=j=>{const{viewModel:_e,isDark:et}=j;return jsxRuntimeExports.jsx(TraceViewWrapper,{viewModel:_e,isDark:et,children:jsxRuntimeExports.jsx(TraceViewContent,{...j})})},TraceViewContent=({viewModel:j,isStreaming:_e,onIsStreamingChange:et})=>{const tt=useClasses$1(),rt=useIsTraceDetailOpen(),nt=useSetIsTraceDetailOpen(),[ot,it]=React.useState(!1),[st,lt]=React.useState(!1),ut=useSelectedTrace(),ct=useLocalFetchSummary(j);return reactExports.useEffect(()=>{let dt;return ot&&rt&&ut&&st&&(dt=setInterval(()=>{const ft=[ut==null?void 0:ut.trace_id,...Object.values((ut==null?void 0:ut.evaluations)??[]).map(pt=>pt.trace_id)].filter(pt=>pt!==void 0);fetchLocalSpans(ft,j),ut.trace_id&&ct(ut.trace_id)},SPAN_POLLING_GAP)),()=>{dt&&clearInterval(dt)}},[st,ut,rt,j,ot,ct]),reactExports.useEffect(()=>{rt&&ut&&(checkStatus(ut.status,"Running")?it(!0):it(!1))},[ct,rt,ut]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:tt.wrapper,children:[jsxRuntimeExports.jsx(LocalCommonHeader,{isStreaming:_e,onIsStreamingChange:et,showRefresh:!0}),jsxRuntimeExports.jsx(TraceFilter,{}),jsxRuntimeExports.jsx(TraceList,{className:tt.grid,onRowClick:()=>{nt(!0)}})]}),jsxRuntimeExports.jsx(DefaultDetailContainer,{isOpen:rt,setIsOpen:nt,header:jsxRuntimeExports.jsx(DefaultDetailHeader,{setIsTraceDetailOpen:nt,viewModel:j,showStreamSwitch:ot,isStreaming:st,onIsStreamingChange:lt}),content:jsxRuntimeExports.jsx(TraceDetail,{})})]})},useClasses$1=makeStyles({header:{display:"flex",width:"100%"},wrapper:{display:"flex",flexDirection:"column",height:"100%"},divider:{flexGrow:0,...shorthands.margin("16px",0)},grid:{flexGrow:1}});var define_import_meta_env_default={BASE_URL:"/v1.0/ui/traces/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};window.TraceView_Version=define_import_meta_env_default.VITE_TRACE_VIEW_BUILD_VERSION;const TraceViewApp=()=>{const[j,_e]=useHashObject(),[et,tt]=reactExports.useState(!1),rt=useClasses(),nt=useDarkMode(),ot=React.useMemo(()=>new TraceViewModel,[]),it=useLocalTraceDetailDidOpen(ot,_e),st=useLocalOnTraceDetailClose(_e),lt=useLocalRefreshTraces(ot,j),ut=useLocalOnRefreshSpans(ot);return useLocalFetchSummaries(ot,j,et),reactExports.useEffect(()=>{ot.traceDetailDidOpen(it),ot.traceDetailDidClose(st),ot.setOnRefreshTraces(lt),ot.onRefreshSpans(ut),isNotNullOrUndefined(j.uiTraceId)&&ot.setTraceDetailOpen(!0,j.uiTraceId)},[ot,j.uiTraceId]),jsxRuntimeExports.jsxs(FluentProvider,{theme:nt?webDarkTheme:webLightTheme,style:{height:"100%",width:"100%"},children:[jsxRuntimeExports.jsx("style",{dangerouslySetInnerHTML:{__html:` + html, + body { + height: 100%; + width: 100%; + padding: 0; + margin: 0; + box-sizing: border-box; + overflow: hidden; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", + "Droid Sans", "Helvetica Neue", sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + #root { + height: 100%; + width: 100%; + display: flex; + } + `}}),jsxRuntimeExports.jsx("div",{className:rt.wrapper,children:jsxRuntimeExports.jsx(LocalTraceView,{viewModel:ot,isDark:nt,isStreaming:et,onIsStreamingChange:ct=>{tt(ct)}})})]})},useClasses=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%"}});client.createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(TraceViewApp,{}))});export default US(); diff --git a/src/promptflow/promptflow/_sdk/_service/templates/index.html b/src/promptflow/promptflow/_sdk/_service/static/index.html similarity index 51% rename from src/promptflow/promptflow/_sdk/_service/templates/index.html rename to src/promptflow/promptflow/_sdk/_service/static/index.html index 3e1c435c41c..1aa14f0e7c3 100644 --- a/src/promptflow/promptflow/_sdk/_service/templates/index.html +++ b/src/promptflow/promptflow/_sdk/_service/static/index.html @@ -3,11 +3,12 @@ - - Promptflow traces + + Trace View + +
- diff --git a/src/promptflow/promptflow/_sdk/_tracing.py b/src/promptflow/promptflow/_sdk/_tracing.py index c34a0935bb3..3c389fe71cd 100644 --- a/src/promptflow/promptflow/_sdk/_tracing.py +++ b/src/promptflow/promptflow/_sdk/_tracing.py @@ -86,13 +86,13 @@ def _print_tracing_url_from_local( exp: typing.Optional[str] = None, run: typing.Optional[str] = None, ) -> None: - url = f"http://localhost:{pfs_port}/v1.0/ui/traces" + url = f"http://localhost:{pfs_port}/v1.0/ui/traces/" if run is not None: - url += f"?run={run}" + url += f"?#run={run}" elif exp is not None: - url += f"?experiment={exp}" + url += f"?#experiment={exp}" elif session_id is not None: - url += f"?session={session_id}" + url += f"?#session={session_id}" print(f"You can view the traces from local: {url}") diff --git a/src/promptflow/promptflow/_sdk/entities/_trace.py b/src/promptflow/promptflow/_sdk/entities/_trace.py index ad881827ddc..953827cf38c 100644 --- a/src/promptflow/promptflow/_sdk/entities/_trace.py +++ b/src/promptflow/promptflow/_sdk/entities/_trace.py @@ -4,6 +4,7 @@ import copy import datetime +import heapq import json import typing from dataclasses import dataclass @@ -13,6 +14,7 @@ from promptflow._constants import ( DEFAULT_SPAN_TYPE, + RUNNING_LINE_RUN_STATUS, SpanAttributeFieldName, SpanContextFieldName, SpanEventFieldName, @@ -283,27 +285,63 @@ class LineRun: evaluations: typing.Optional[typing.Dict[str, _LineRunData]] = None @staticmethod - def _from_spans(spans: typing.List[Span]) -> typing.Optional["LineRun"]: + def _generate_line_run_placeholder(spans: typing.List[Span]) -> "LineRun": + # placeholder for traces whose root spans are absent + # this placeholder will have trace id collected from other children spans + # so that we can know more querying spans with trace id + trace_id = spans[0].trace_id + # leverage heap sort to get the earliest start time + start_times = [datetime.datetime.fromisoformat(span._content[SpanFieldName.START_TIME]) for span in spans] + earliest_start_time = heapq.nsmallest(1, start_times)[0] + return LineRun( + line_run_id=trace_id, + trace_id=trace_id, + root_span_id=None, + inputs=None, + outputs=None, + start_time=earliest_start_time.isoformat(), + end_time=None, + status=RUNNING_LINE_RUN_STATUS, + latency=None, + name=None, + kind=None, + cumulative_token_count=None, + evaluations=None, + ) + + @staticmethod + def _from_spans(spans: typing.List[Span], run: typing.Optional[str] = None) -> typing.Optional["LineRun"]: main_line_run_data: _LineRunData = None evaluations = dict() for span in spans: if span.parent_span_id: continue attributes = span._content[SpanFieldName.ATTRIBUTES] - if ( - SpanAttributeFieldName.REFERENCED_LINE_RUN_ID in attributes # test scenario - or SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID in attributes # batch run scenario - ): - evaluations[span.name] = _LineRunData._from_root_span(span) - elif SpanAttributeFieldName.LINE_RUN_ID in attributes: - main_line_run_data = _LineRunData._from_root_span(span) + line_run_data = _LineRunData._from_root_span(span) + # determine this line run data is the main or the eval + if run is not None: + # `run` is specified, this line run comes from a batch run + batch_run_id = attributes[SpanAttributeFieldName.BATCH_RUN_ID] + if batch_run_id == run: + main_line_run_data = line_run_data + else: + evaluations[span.name] = line_run_data else: - # eager flow/arbitrary script - main_line_run_data = _LineRunData._from_root_span(span) - # main line run span is absent, ignore this line run - # this may happen when the line is still executing, or terminated; - # or the line run is killed before the traces exported + if ( + SpanAttributeFieldName.REFERENCED_LINE_RUN_ID in attributes + or SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID in attributes + ): + evaluations[span.name] = line_run_data + else: + main_line_run_data = line_run_data + + # main line run span is absent if main_line_run_data is None: + if len(evaluations) == 0: + # no eval traces, indicates the line is still executing + # generate a placeholder line run for this WIP line + return LineRun._generate_line_run_placeholder(spans) + # otherwise, silently ignore return None return LineRun( @@ -321,30 +359,3 @@ def _from_spans(spans: typing.List[Span]) -> typing.Optional["LineRun"]: cumulative_token_count=main_line_run_data.cumulative_token_count, evaluations=evaluations, ) - - @staticmethod - def _from_run_and_spans(run: str, spans: typing.List[Span]) -> typing.Optional["LineRun"]: - main_line_run_data: _LineRunData = None - evaluations = dict() - for span in spans: - attributes = span._content[SpanFieldName.ATTRIBUTES] - batch_run_id = attributes[SpanAttributeFieldName.BATCH_RUN_ID] - if batch_run_id == run: - main_line_run_data = _LineRunData._from_root_span(span) - else: - evaluations[span.name] = _LineRunData._from_root_span(span) - return LineRun( - line_run_id=main_line_run_data.line_run_id, - trace_id=main_line_run_data.trace_id, - root_span_id=main_line_run_data.root_span_id, - inputs=main_line_run_data.inputs, - outputs=main_line_run_data.outputs, - start_time=main_line_run_data.start_time, - end_time=main_line_run_data.end_time, - status=main_line_run_data.status, - latency=main_line_run_data.latency, - name=main_line_run_data.display_name, - kind=main_line_run_data.kind, - cumulative_token_count=main_line_run_data.cumulative_token_count, - evaluations=evaluations, - ) diff --git a/src/promptflow/promptflow/_sdk/operations/_trace_operations.py b/src/promptflow/promptflow/_sdk/operations/_trace_operations.py index 304a91ab15f..c94b9b41bba 100644 --- a/src/promptflow/promptflow/_sdk/operations/_trace_operations.py +++ b/src/promptflow/promptflow/_sdk/operations/_trace_operations.py @@ -3,13 +3,16 @@ # --------------------------------------------------------- import copy -import json import typing +from collections import defaultdict from promptflow._constants import SpanAttributeFieldName, SpanFieldName from promptflow._sdk._orm.trace import LineRun as ORMLineRun from promptflow._sdk._orm.trace import Span as ORMSpan from promptflow._sdk.entities._trace import LineRun, Span +from promptflow._utils.logger_utils import get_cli_sdk_logger + +_logger = get_cli_sdk_logger() class TraceOperations: @@ -24,109 +27,128 @@ def list_spans( ) return [Span._from_orm_object(orm_span) for orm_span in orm_spans] + def get_line_run(self, line_run_id: str) -> LineRun: + orm_spans = ORMLineRun.get_line_run(line_run_id=line_run_id) + line_run = LineRun._from_spans([Span._from_orm_object(orm_span) for orm_span in orm_spans]) + return line_run + def list_line_runs( self, session_id: typing.Optional[str] = None, runs: typing.Optional[typing.List[str]] = None, experiments: typing.Optional[typing.List[str]] = None, + trace_ids: typing.Optional[typing.List[str]] = None, ) -> typing.List[LineRun]: - # separate query with runs if runs is not None: return self._list_line_runs_with_runs(runs) + if trace_ids is not None: + line_runs = list() + for trace_id in trace_ids: + line_run = self.get_line_run(trace_id) + if line_run is not None: + line_runs.append(line_run) + return line_runs - line_runs = [] orm_spans_group_by_trace_id = ORMLineRun.list( session_id=session_id, experiments=experiments, ) - # merge spans with same `line_run_id` or `referenced.line_run_id` (if exists) - grouped_orm_spans = {} + # ORM entities to SDK entities + spans_group_by_trace_id = list() for orm_spans in orm_spans_group_by_trace_id: - first_orm_span = orm_spans[0] - attributes = json.loads(first_orm_span.content)[SpanFieldName.ATTRIBUTES] + spans_group_by_trace_id.append([Span._from_orm_object(orm_span) for orm_span in orm_spans]) + aggregated_spans = self._aggregate_spans(spans_group_by_trace_id) + line_runs = list() + for line_run_spans in aggregated_spans: + line_run = LineRun._from_spans(line_run_spans) + if line_run is not None: + line_runs.append(line_run) + return line_runs + + @staticmethod + def _aggregate_spans(spans: typing.List[typing.List[Span]]) -> typing.List[typing.List[Span]]: + # the input of this function is a list of span lists, each shares the same trace id + # this function targets to aggregate those with lineage relationship + # so that the output is still a list of span lists, but each represents a line run + aggregated_spans = defaultdict(list) + for trace_id_spans in spans: + # as spans with same trace id also have same key attributes to group + # select the first span on behalf of the list + obo_span = trace_id_spans[0] + obo_attrs = obo_span._content[SpanFieldName.ATTRIBUTES] + if ( - SpanAttributeFieldName.LINE_RUN_ID not in attributes - and SpanAttributeFieldName.BATCH_RUN_ID not in attributes + SpanAttributeFieldName.LINE_RUN_ID not in obo_attrs + and SpanAttributeFieldName.BATCH_RUN_ID not in obo_attrs + ): + # standard OpenTelemetry traces + # or simply traces without prompt flow attributes (e.g., aggregation node in batch run) + aggregated_spans[obo_span.trace_id] = copy.deepcopy(trace_id_spans) + elif ( + SpanAttributeFieldName.LINE_RUN_ID in obo_attrs and SpanAttributeFieldName.BATCH_RUN_ID not in obo_attrs ): - # standard OpenTelemetry trace, regard as a line run - grouped_orm_spans[first_orm_span.trace_id] = copy.deepcopy(orm_spans) - elif SpanAttributeFieldName.LINE_RUN_ID in attributes: # test scenario - if SpanAttributeFieldName.REFERENCED_LINE_RUN_ID not in attributes: - # main flow - line_run_id = attributes[SpanAttributeFieldName.LINE_RUN_ID] - if line_run_id not in grouped_orm_spans: - grouped_orm_spans[line_run_id] = [] - grouped_orm_spans[line_run_id].extend(copy.deepcopy(orm_spans)) - else: - # evaluation flow - referenced_line_run_id = attributes[SpanAttributeFieldName.REFERENCED_LINE_RUN_ID] - if referenced_line_run_id not in grouped_orm_spans: - grouped_orm_spans[referenced_line_run_id] = [] - grouped_orm_spans[referenced_line_run_id].extend(copy.deepcopy(orm_spans)) - elif SpanAttributeFieldName.BATCH_RUN_ID in attributes: + line_run_key = obo_attrs[SpanAttributeFieldName.LINE_RUN_ID] + # if traces come from eval flow, use `referenced.line_run_id` as the line run key + if SpanAttributeFieldName.REFERENCED_LINE_RUN_ID in obo_attrs: + line_run_key = obo_attrs[SpanAttributeFieldName.REFERENCED_LINE_RUN_ID] + aggregated_spans[line_run_key].extend(copy.deepcopy(trace_id_spans)) + elif ( + SpanAttributeFieldName.LINE_RUN_ID not in obo_attrs and SpanAttributeFieldName.BATCH_RUN_ID in obo_attrs + ): # batch run scenario - if SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID not in attributes: - # main flow - line_run_id = ( - attributes[SpanAttributeFieldName.BATCH_RUN_ID] - + "_" - + attributes[SpanAttributeFieldName.LINE_NUMBER] - ) - if line_run_id not in grouped_orm_spans: - grouped_orm_spans[line_run_id] = [] - grouped_orm_spans[line_run_id].extend(copy.deepcopy(orm_spans)) - else: - # evaluation flow - referenced_line_run_id = ( - attributes[SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID] - + "_" - + attributes[SpanAttributeFieldName.LINE_NUMBER] - ) - if referenced_line_run_id not in grouped_orm_spans: - grouped_orm_spans[referenced_line_run_id] = [] - grouped_orm_spans[referenced_line_run_id].extend(copy.deepcopy(orm_spans)) + batch_run_id = obo_attrs[SpanAttributeFieldName.BATCH_RUN_ID] + line_number = obo_attrs[SpanAttributeFieldName.LINE_NUMBER] + # if traces come from eval flow, use `referenced.batch_run_id` as the batch run id + if SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID in obo_attrs: + batch_run_id = obo_attrs[SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID] + # batch run line run should consider both batch run id and line number + line_run_key = f"{batch_run_id}.{line_number}" + aggregated_spans[line_run_key].extend(copy.deepcopy(trace_id_spans)) else: - # others, ignore for now - pass - for orm_spans in grouped_orm_spans.values(): - spans = [Span._from_orm_object(orm_span) for orm_span in orm_spans] - line_run = LineRun._from_spans(spans) - if line_run is not None: - line_runs.append(line_run) - return line_runs + # invalid traces, `LINE_RUN_ID` and `BATCH_RUN_ID` should not appear at the same time + warning_message = ( + f"Invalid traces found, trace id: {obo_span.trace_id}, " + "`LINE_RUN_ID` and `BATCH_RUN_ID` should not appear at the same time." + ) + _logger.warning(warning_message) + # convert dict to list + return list(aggregated_spans.values()) def _list_line_runs_with_runs(self, runs: typing.List[str]) -> typing.List[LineRun]: - orm_spans = ORMSpan.list_with_runs(runs) - # group root spans by lineage: - # 1. main + eval - # 2. eval - grouped_spans = {run: dict() for run in runs} - for span in map(Span._from_orm_object, orm_spans): - attributes = span._content[SpanFieldName.ATTRIBUTES] + orm_spans_group_by_trace_id = ORMLineRun.list_with_runs(runs) + # ORM entities to SDK entities + spans_group_by_trace_id = list() + for orm_spans in orm_spans_group_by_trace_id: + spans_group_by_trace_id.append([Span._from_orm_object(orm_span) for orm_span in orm_spans]) + # aggregation logic is different when runs are specified + # so will not call `_aggregate_spans` here + grouped_spans = {run: defaultdict(list) for run in runs} + for trace_id_spans in spans_group_by_trace_id: + # as spans with same trace id also have same key attributes to group + # select the first span on behalf of the list + obo_span: Span = trace_id_spans[0] + obo_attrs = obo_span._content[SpanFieldName.ATTRIBUTES] # aggregation node will not have `batch_run_id`, ignore - if SpanAttributeFieldName.BATCH_RUN_ID not in attributes: + if SpanAttributeFieldName.BATCH_RUN_ID not in obo_attrs: continue - batch_run_id = attributes[SpanAttributeFieldName.BATCH_RUN_ID] - line_number = attributes[SpanAttributeFieldName.LINE_NUMBER] + batch_run_id = obo_attrs[SpanAttributeFieldName.BATCH_RUN_ID] + line_number = obo_attrs[SpanAttributeFieldName.LINE_NUMBER] # check if it is an evaluation root span - if SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID in attributes: - referenced_batch_run_id = attributes[SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID] + if SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID in obo_attrs: + referenced_batch_run_id = obo_attrs[SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID] if referenced_batch_run_id in runs: - if line_number not in grouped_spans[referenced_batch_run_id]: - grouped_spans[referenced_batch_run_id][line_number] = [] - grouped_spans[referenced_batch_run_id][line_number].append(span) + grouped_spans[referenced_batch_run_id][line_number].extend(copy.deepcopy(trace_id_spans)) continue - if line_number not in grouped_spans[batch_run_id]: - grouped_spans[batch_run_id][line_number] = [] - grouped_spans[batch_run_id][line_number].append(span) - line_runs = [] + grouped_spans[batch_run_id][line_number].extend(copy.deepcopy(trace_id_spans)) + line_runs = list() for run in grouped_spans: run_spans = grouped_spans[run] if len(run_spans) == 0: continue for line_number in run_spans: line_spans = run_spans[line_number] - line_run = LineRun._from_run_and_spans(run, line_spans) - line_runs.append(line_run) + line_run = LineRun._from_spans(line_spans, run=run) + if line_run is not None: + line_runs.append(line_run) return line_runs diff --git a/src/promptflow/tests/sdk_pfs_test/e2etests/test_trace.py b/src/promptflow/tests/sdk_pfs_test/e2etests/test_trace.py index af66b180aa1..47c0ab6d897 100644 --- a/src/promptflow/tests/sdk_pfs_test/e2etests/test_trace.py +++ b/src/promptflow/tests/sdk_pfs_test/e2etests/test_trace.py @@ -9,7 +9,12 @@ import pytest -from promptflow._constants import SpanAttributeFieldName, SpanContextFieldName, SpanStatusFieldName +from promptflow._constants import ( + RUNNING_LINE_RUN_STATUS, + SpanAttributeFieldName, + SpanContextFieldName, + SpanStatusFieldName, +) from promptflow._sdk._constants import CumulativeTokenCountFieldName, LineRunFieldName from promptflow._sdk.entities._trace import Span @@ -22,7 +27,11 @@ def mock_session_id() -> str: return str(uuid.uuid4()) -def persist_a_span(session_id: str, custom_attributes: typing.Optional[typing.Dict] = None) -> None: +def persist_a_span( + session_id: str, + custom_attributes: typing.Optional[typing.Dict] = None, + parent_span_id: typing.Optional[str] = None, +) -> None: if custom_attributes is None: custom_attributes = {} span = Span( @@ -53,6 +62,8 @@ def persist_a_span(session_id: str, custom_attributes: typing.Optional[typing.Di span_type="Flow", session_id=session_id, ) + if parent_span_id is not None: + span.parent_span_id = parent_span_id span._persist() return @@ -134,3 +145,52 @@ def test_list_evaluation_line_runs(self, pfs_op: PFSOperations, mock_session_id: persist_a_span(session_id=mock_session_id, custom_attributes=batch_run_attributes) line_runs = pfs_op.list_line_runs(runs=[mock_batch_run_id]).json assert len(line_runs) == 1 + + def test_list_running_line_run(self, pfs_op: PFSOperations, mock_session_id: str) -> None: + mock_batch_run_id = str(uuid.uuid4()) + mock_parent_span_id = str(uuid.uuid4()) + batch_run_attributes = { + SpanAttributeFieldName.BATCH_RUN_ID: mock_batch_run_id, + SpanAttributeFieldName.LINE_NUMBER: "0", + } + persist_a_span( + session_id=mock_session_id, + custom_attributes=batch_run_attributes, + parent_span_id=mock_parent_span_id, + ) + line_runs = pfs_op.list_line_runs(runs=[mock_batch_run_id]).json + assert len(line_runs) == 1 + running_line_run = line_runs[0] + assert running_line_run[LineRunFieldName.STATUS] == RUNNING_LINE_RUN_STATUS + + def test_list_line_runs_with_both_status(self, pfs_op: PFSOperations, mock_session_id: str) -> None: + mock_batch_run_id = str(uuid.uuid4()) + # running line run + mock_parent_span_id = str(uuid.uuid4()) + batch_run_attributes = { + SpanAttributeFieldName.BATCH_RUN_ID: mock_batch_run_id, + SpanAttributeFieldName.LINE_NUMBER: "0", + } + persist_a_span( + session_id=mock_session_id, + custom_attributes=batch_run_attributes, + parent_span_id=mock_parent_span_id, + ) + # completed line run + batch_run_attributes = { + SpanAttributeFieldName.BATCH_RUN_ID: mock_batch_run_id, + SpanAttributeFieldName.LINE_NUMBER: "1", + } + persist_a_span( + session_id=mock_session_id, + custom_attributes=batch_run_attributes, + ) + # we have slightly different code path for query w/o runs and w/ runs + for line_runs in [ + pfs_op.list_line_runs(session_id=mock_session_id).json, + pfs_op.list_line_runs(runs=[mock_batch_run_id]).json, + ]: + assert len(line_runs) == 2 + # according to order by logic, the first line run is line 1, the completed + assert line_runs[0][LineRunFieldName.STATUS] == "Ok" + assert line_runs[1][LineRunFieldName.STATUS] == RUNNING_LINE_RUN_STATUS From 821e4254af8b597f9772c9bb60a0e238f1b373c2 Mon Sep 17 00:00:00 2001 From: melionel Date: Wed, 13 Mar 2024 15:01:51 +0800 Subject: [PATCH 038/204] Revert "[Internal] add hyper link to pf chatbot in pf docsite (#2324)" (#2330) This reverts commit b6e180e6f7f25e268f66dc6e980cc1027fa4636b. # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. Co-authored-by: Meng Lan --- scripts/docs/conf.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/scripts/docs/conf.py b/scripts/docs/conf.py index 17531c64bae..a34262a1d00 100644 --- a/scripts/docs/conf.py +++ b/scripts/docs/conf.py @@ -86,11 +86,6 @@ "url": "https://pypi.org/project/promptflow/", "icon": "fa-solid fa-box", }, - { - "name": "Chat with copilot", - "url": "https://pfcopilot.azurewebsites.net/chat", - "icon": "fa-solid fa-message", - }, ], "logo": { "text": "Prompt flow", From 43e386735ab26ace899475a518d96c2b0596969b Mon Sep 17 00:00:00 2001 From: Lina Tang Date: Wed, 13 Mar 2024 17:21:27 +0800 Subject: [PATCH 039/204] Include default value in flow meta (#2283) # Description Include default value in flow meta. Example: ``` { "function": "my_flow", "entry": "flow_with_trace:my_flow", "inputs": { "text": { "type": "string", "default": "default_text" } "models": { "type": "list", "default": "['default_model']" } }, "outputs": { "output": { "type": "string" } }, "source": "flow_with_trace.py" } ``` # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --------- Co-authored-by: Lina Tang --- src/promptflow/promptflow/_core/tool_meta_generator.py | 2 ++ .../tests/sdk_cli_test/e2etests/test_flow_serve.py | 4 ++-- .../tests/sdk_cli_test/e2etests/test_flow_test.py | 6 +++--- .../dummy_flow_with_trace/flow_with_trace.meta.json | 6 ++++-- .../eager_flows/dummy_flow_with_trace/flow_with_trace.py | 2 +- .../flow_with_dataclass.meta.json | 6 ++++-- 6 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/promptflow/promptflow/_core/tool_meta_generator.py b/src/promptflow/promptflow/_core/tool_meta_generator.py index 138c11ed465..cf2d0258cf2 100644 --- a/src/promptflow/promptflow/_core/tool_meta_generator.py +++ b/src/promptflow/promptflow/_core/tool_meta_generator.py @@ -511,6 +511,8 @@ def generate_flow_meta_dict_by_file(entry: str, source: str = None, path: str = for k, v in tool.inputs.items(): # We didn't support specifying multiple types for inputs, so we only take the first one. flow_meta["inputs"][k] = {"type": v.type[0].value} + if v.default is not None: + flow_meta["inputs"][k]["default"] = v.default if tool.outputs: flow_meta["outputs"] = {} for k, v in tool.outputs.items(): diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py index 9c3a8658a67..e418091dd1b 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py @@ -384,7 +384,7 @@ def test_eager_flow_swagger(simple_eager_flow): "application/json": { "example": {}, "schema": { - "properties": {"input_val": {"type": "string"}}, + "properties": {"input_val": {"default": "gpt", "type": "string"}}, "required": ["input_val"], "type": "object", }, @@ -442,7 +442,7 @@ def test_eager_flow_primitive_output_swagger(simple_eager_flow_primitive_output) "application/json": { "example": {}, "schema": { - "properties": {"input_val": {"type": "string"}}, + "properties": {"input_val": {"default": "gpt", "type": "string"}}, "required": ["input_val"], "type": "object", }, diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_test.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_test.py index f9e06a9c1ce..22c882db893 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_test.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_test.py @@ -320,7 +320,7 @@ def test_eager_flow_with_evc(self): { "entry": "entry:my_flow", "function": "my_flow", - "inputs": {"input_val": {"type": "string"}}, + "inputs": {"input_val": {"default": "gpt", "type": "string"}}, "outputs": {"output": {"type": "string"}}, }, ), @@ -329,7 +329,7 @@ def test_eager_flow_with_evc(self): { "entry": "my_module.entry:my_flow", "function": "my_flow", - "inputs": {"input_val": {"type": "string"}}, + "inputs": {"input_val": {"default": "gpt", "type": "string"}}, "outputs": {"output": {"type": "string"}}, }, ), @@ -338,7 +338,7 @@ def test_eager_flow_with_evc(self): { "entry": "flow:my_flow_entry", "function": "my_flow_entry", - "inputs": {"input_val": {"type": "string"}}, + "inputs": {"input_val": {"default": "gpt", "type": "string"}}, "outputs": {"output": {"type": "string"}}, }, ), diff --git a/src/promptflow/tests/test_configs/eager_flows/dummy_flow_with_trace/flow_with_trace.meta.json b/src/promptflow/tests/test_configs/eager_flows/dummy_flow_with_trace/flow_with_trace.meta.json index 03a9423d9cf..cbedb9d394a 100644 --- a/src/promptflow/tests/test_configs/eager_flows/dummy_flow_with_trace/flow_with_trace.meta.json +++ b/src/promptflow/tests/test_configs/eager_flows/dummy_flow_with_trace/flow_with_trace.meta.json @@ -3,10 +3,12 @@ "entry": "flow_with_trace:my_flow", "inputs": { "text": { - "type": "string" + "type": "string", + "default": "default_text" }, "models": { - "type": "list" + "type": "list", + "default": "['default_model']" } }, "outputs": { diff --git a/src/promptflow/tests/test_configs/eager_flows/dummy_flow_with_trace/flow_with_trace.py b/src/promptflow/tests/test_configs/eager_flows/dummy_flow_with_trace/flow_with_trace.py index 00bc2c4144b..5e185aec61c 100644 --- a/src/promptflow/tests/test_configs/eager_flows/dummy_flow_with_trace/flow_with_trace.py +++ b/src/promptflow/tests/test_configs/eager_flows/dummy_flow_with_trace/flow_with_trace.py @@ -14,7 +14,7 @@ async def dummy_llm(prompt: str, model: str, wait_seconds: int): return prompt -async def my_flow(text: str, models: list = []) -> str: +async def my_flow(text: str = "default_text", models: list = ["default_model"]) -> str: tasks = [] for i, model in enumerate(models): tasks.append(asyncio.create_task(dummy_llm(text, model, i + 1))) diff --git a/src/promptflow/tests/test_configs/eager_flows/flow_with_dataclass_output/flow_with_dataclass.meta.json b/src/promptflow/tests/test_configs/eager_flows/flow_with_dataclass_output/flow_with_dataclass.meta.json index beccff65862..81031b8f020 100644 --- a/src/promptflow/tests/test_configs/eager_flows/flow_with_dataclass_output/flow_with_dataclass.meta.json +++ b/src/promptflow/tests/test_configs/eager_flows/flow_with_dataclass_output/flow_with_dataclass.meta.json @@ -3,10 +3,12 @@ "entry": "flow_with_dataclass:my_flow", "inputs": { "text": { - "type": "string" + "type": "string", + "default": "default_text" }, "models": { - "type": "list" + "type": "list", + "default": "['default_model']" } }, "outputs": { From 955c8ba9c0d4769e775beec510bfe27aee37d8f6 Mon Sep 17 00:00:00 2001 From: Ming Gu Date: Wed, 13 Mar 2024 17:24:48 +0800 Subject: [PATCH 040/204] [Internal] Copy previous run output from debug_info when resume (#2331) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Copy previous run output from debug_info instead of previous run output, so that we can support resuming canceled run which does not have run output created yet. # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [X] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [X] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [X] Title of the pull request is clear and informative. - [X] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [X] Pull request includes test coverage for the included changes. Co-authored-by: Ming Gu 🙂 --- .../promptflow/batch/_batch_engine.py | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/src/promptflow/promptflow/batch/_batch_engine.py b/src/promptflow/promptflow/batch/_batch_engine.py index f154d4e16b4..439ffc52c0e 100644 --- a/src/promptflow/promptflow/batch/_batch_engine.py +++ b/src/promptflow/promptflow/batch/_batch_engine.py @@ -5,6 +5,7 @@ import signal import threading import uuid +from copy import deepcopy from datetime import datetime from pathlib import Path from typing import Any, Dict, List, Mapping, Optional @@ -22,11 +23,10 @@ handle_line_failures, ) from promptflow._utils.logger_utils import bulk_logger +from promptflow._utils.multimedia_utils import persist_multimedia_data from promptflow._utils.utils import ( - copy_file_except, dump_list_to_jsonl, get_int_env_var, - load_list_from_jsonl, log_progress, resolve_dir_to_absolute, transpose, @@ -39,7 +39,7 @@ from promptflow.batch._python_executor_proxy import PythonExecutorProxy from promptflow.batch._result import BatchResult from promptflow.contracts.flow import Flow -from promptflow.contracts.run_info import Status +from promptflow.contracts.run_info import FlowRunInfo, Status from promptflow.exceptions import ErrorTarget, PromptflowException from promptflow.executor._line_execution_process_pool import signal_handler from promptflow.executor._result import AggregationResult, LineResult @@ -237,19 +237,10 @@ def _copy_previous_run_result( to the storage of new run, return the list of previous line results for the usage of aggregation and summarization. """ - # Load the previous flow run output from output.jsonl - previous_run_output = load_list_from_jsonl(resume_from_run_output_dir / OUTPUT_FILE_NAME) - previous_run_output_dict = { - each_line_output[LINE_NUMBER_KEY]: each_line_output for each_line_output in previous_run_output - } - - # Copy other files from resume_from_run_output_dir to output_dir in case there are images - copy_file_except(resume_from_run_output_dir, output_dir, OUTPUT_FILE_NAME) - try: previous_run_results = [] for i in range(len(batch_inputs)): - previous_run_info = resume_from_run_storage.load_flow_run_info(i) + previous_run_info: FlowRunInfo = resume_from_run_storage.load_flow_run_info(i) if previous_run_info and previous_run_info.status == Status.Completed: # Load previous node run info @@ -262,6 +253,10 @@ def _copy_previous_run_result( # Extract aggregation inputs for flow with aggregation node aggregation_inputs = extract_aggregation_inputs(self._flow, previous_node_run_outputs) + # Deepcopy to avoid modifying the original object when serializing image + previous_run_output = deepcopy(previous_run_info.output) + previous_run_output_in_line_result = persist_multimedia_data(previous_run_output, output_dir) + # Persist previous run info and node run info self._storage.persist_flow_run(previous_run_info) for node_run_info in previous_node_run_infos: @@ -269,7 +264,7 @@ def _copy_previous_run_result( # Create LineResult object for previous line result previous_line_result = LineResult( - output=previous_run_output_dict[i], + output=previous_run_output_in_line_result, aggregation_inputs=aggregation_inputs, run_info=previous_run_info, node_run_infos=previous_node_run_infos_dict, From c74237d7c64190b4e20d16241c2673628edc34df Mon Sep 17 00:00:00 2001 From: Brynn Yin <24237253+brynn-code@users.noreply.github.com> Date: Wed, 13 Mar 2024 17:49:59 +0800 Subject: [PATCH 041/204] [SDK] Fix flow as func not honor global connection provider (#2332) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Signed-off-by: Brynn Yin --- src/promptflow/CHANGELOG.md | 1 + .../promptflow/_sdk/_serving/flow_invoker.py | 8 ++++---- .../e2etests/test_global_config.py | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/promptflow/CHANGELOG.md b/src/promptflow/CHANGELOG.md index a9774635f75..d5c1a3c7680 100644 --- a/src/promptflow/CHANGELOG.md +++ b/src/promptflow/CHANGELOG.md @@ -16,6 +16,7 @@ ### Bugs Fixed - [SDK/CLI] environment variable `PF_HOME_DIRECTORY` doesn't work for run details & logs. +- [SDK] `connection.provider` config doesn't work when calling flow as a function. ## 1.6.0 (2024.03.01) diff --git a/src/promptflow/promptflow/_sdk/_serving/flow_invoker.py b/src/promptflow/promptflow/_sdk/_serving/flow_invoker.py index 22d855c7b66..5174f93a990 100644 --- a/src/promptflow/promptflow/_sdk/_serving/flow_invoker.py +++ b/src/promptflow/promptflow/_sdk/_serving/flow_invoker.py @@ -77,15 +77,15 @@ def __init__( def _init_connections(self, connection_provider): self._is_chat_flow, _, _ = FlowOperations._is_chat_flow(self.flow) - connection_provider = "local" if connection_provider is None else connection_provider - if isinstance(connection_provider, str): - self.logger.info(f"Getting connections from pf client with provider {connection_provider}...") + if connection_provider is None or isinstance(connection_provider, str): + config = {"connection.provider": connection_provider} if connection_provider else None + self.logger.info(f"Getting connections from pf client with provider from args: {connection_provider}...") connections_to_ignore = list(self.connections.keys()) connections_to_ignore.extend(self.connections_name_overrides.keys()) # Note: The connection here could be local or workspace, depends on the connection.provider in pf.yaml. connections = get_local_connections_from_executable( executable=self.flow, - client=PFClient(config={"connection.provider": connection_provider}, credential=self._credential), + client=PFClient(config=config, credential=self._credential), connections_to_ignore=connections_to_ignore, # fetch connections with name override connections_to_add=list(self.connections_name_overrides.values()), diff --git a/src/promptflow/tests/sdk_cli_global_config_test/e2etests/test_global_config.py b/src/promptflow/tests/sdk_cli_global_config_test/e2etests/test_global_config.py index ee2dc6d372e..4388430dac3 100644 --- a/src/promptflow/tests/sdk_cli_global_config_test/e2etests/test_global_config.py +++ b/src/promptflow/tests/sdk_cli_global_config_test/e2etests/test_global_config.py @@ -1,7 +1,13 @@ from pathlib import Path +import mock import pytest +from promptflow._sdk._load_functions import load_flow +from promptflow._sdk._utils import get_local_connections_from_executable +from promptflow._sdk.operations._flow_context_resolver import FlowContextResolver +from promptflow._sdk.operations._local_azure_connection_operations import LocalAzureConnectionOperations + FLOWS_DIR = Path(__file__).parent.parent.parent / "test_configs" / "flows" DATAS_DIR = Path(__file__).parent.parent.parent / "test_configs" / "datas" @@ -27,3 +33,13 @@ def test_connection_operations(self, pf) -> None: with pytest.raises(NotImplementedError): pf.connections.delete(name="test_connection") + + def test_flow_as_func(self): + # Assert flow as func use azure provider, honor global connection config + def assert_client(client, **kwargs): + assert isinstance(client.connections, LocalAzureConnectionOperations) + return get_local_connections_from_executable(client=client, **kwargs) + + flow = load_flow(source=f"{FLOWS_DIR}/web_classification") + with mock.patch("promptflow._sdk._serving.flow_invoker.get_local_connections_from_executable", assert_client): + FlowContextResolver.resolve(flow=flow) From 30a76f2a13c83bf74486278b69f78ff5425f2685 Mon Sep 17 00:00:00 2001 From: Zhengfei Wang <38847871+zhengfeiwang@users.noreply.github.com> Date: Wed, 13 Mar 2024 18:16:44 +0800 Subject: [PATCH 042/204] [tracing][bugfix] Update MANIFEST to include UX assets (#2338) # Description This PR updates `MANIFEST.in` to include `static/assets` # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- src/promptflow/MANIFEST.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/promptflow/MANIFEST.in b/src/promptflow/MANIFEST.in index 298b1e48280..1ffc2cbaad3 100644 --- a/src/promptflow/MANIFEST.in +++ b/src/promptflow/MANIFEST.in @@ -1,6 +1,6 @@ include promptflow/azure/resources/* include promptflow/_sdk/_serving/static/* include promptflow/_sdk/_service/static/* -include promptflow/_sdk/_service/templates/* +include promptflow/_sdk/_service/static/assets/* recursive-include promptflow/_cli/data * recursive-include promptflow/_sdk/data * From 05bc368a49eb9608679f7dfec78d9a24536d8d80 Mon Sep 17 00:00:00 2001 From: Xiaopeng Wang Date: Wed, 13 Mar 2024 18:20:14 +0800 Subject: [PATCH 043/204] pf serving support distributed tracing and feedback api (#2319) # Description changes include: - support distributed trace context/baggage propagation - add new feedback colleciton API - refine code for metrics/trace exporter and add app insight trace support # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --------- Co-authored-by: xiaopwan --- .../promptflow/_sdk/_serving/app.py | 71 +++++++---- .../promptflow/_sdk/_serving/constants.py | 6 + .../_serving/extension/azureml_extension.py | 48 +------ .../_serving/extension/default_extension.py | 22 ++-- .../_serving/extension/extension_factory.py | 15 +-- .../_sdk/_serving/extension/extension_type.py | 12 ++ .../otel_exporter_provider_factory.py | 120 ++++++++++++++++++ .../_sdk/_serving/monitor/flow_monitor.py | 50 +++++++- .../_sdk/_serving/monitor/metrics.py | 16 +-- .../_serving/resources/feedback_swagger.json | 47 +++++++ .../promptflow/_sdk/_serving/utils.py | 42 +++++- src/promptflow/setup.py | 1 - .../sdk_cli_test/e2etests/test_flow_serve.py | 80 +++++++++++- 13 files changed, 425 insertions(+), 105 deletions(-) create mode 100644 src/promptflow/promptflow/_sdk/_serving/constants.py create mode 100644 src/promptflow/promptflow/_sdk/_serving/extension/extension_type.py create mode 100644 src/promptflow/promptflow/_sdk/_serving/extension/otel_exporter_provider_factory.py create mode 100644 src/promptflow/promptflow/_sdk/_serving/resources/feedback_swagger.json diff --git a/src/promptflow/promptflow/_sdk/_serving/app.py b/src/promptflow/promptflow/_sdk/_serving/app.py index f1f7be24071..8335ad8dc95 100644 --- a/src/promptflow/promptflow/_sdk/_serving/app.py +++ b/src/promptflow/promptflow/_sdk/_serving/app.py @@ -6,7 +6,6 @@ import logging import mimetypes import os -from pathlib import Path from typing import Dict from flask import Flask, g, jsonify, request @@ -15,6 +14,7 @@ from promptflow._sdk._serving.extension.extension_factory import ExtensionFactory from promptflow._sdk._serving.flow_invoker import FlowInvoker from promptflow._sdk._serving.response_creator import ResponseCreator +from promptflow._sdk._serving.constants import FEEDBACK_TRACE_FIELD_NAME, FEEDBACK_TRACE_SPAN_NAME from promptflow._sdk._serving.utils import ( enable_monitoring, get_output_fields_to_remove, @@ -22,6 +22,9 @@ handle_error_to_response, load_request_data, streaming_response_required, + try_extract_trace_context, + serialize_attribute_value, + load_feedback_swagger, ) from promptflow._sdk._utils import setup_user_agent_to_operation_context from promptflow._utils.exception_utils import ErrorResponse @@ -30,11 +33,11 @@ from promptflow.contracts.run_info import Status from promptflow.exceptions import SystemErrorException from promptflow.storage._run_storage import DummyRunStorage +from opentelemetry import context, baggage from .swagger import generate_swagger logger = LoggerFactory.get_logger("pfserving-app", target_stdout=True) -DEFAULT_STATIC_PATH = Path(__file__).parent / "static" USER_AGENT = f"promptflow-local-serving/{VERSION}" @@ -57,25 +60,6 @@ def init(self, **kwargs): default_environment_variables = self.flow.get_environment_variables_with_overrides() self.set_default_environment_variables(default_environment_variables) - # load trace exporters - trace_exporters = self.extension.get_trace_exporters(self.project_path) - if trace_exporters: - logger.info(f"Enable {len(trace_exporters)} trace exporters.") - from opentelemetry import trace - from opentelemetry.sdk.resources import SERVICE_NAME, Resource - from opentelemetry.sdk.trace import TracerProvider - from opentelemetry.sdk.trace.export import BatchSpanProcessor - - resource = Resource( - attributes={ - SERVICE_NAME: "promptflow", - } - ) - trace.set_tracer_provider(TracerProvider(resource=resource)) - provider = trace.get_tracer_provider() - for exporter in trace_exporters: - provider.add_span_processor(BatchSpanProcessor(exporter)) - self.flow_name = self.extension.get_flow_name() self.flow.name = self.flow_name conn_data_override, conn_name_override = self.extension.get_override_connections(self.flow) @@ -129,6 +113,8 @@ def init_invoker_if_not_exist(self): def init_swagger(self): self.response_fields_to_remove = get_output_fields_to_remove(self.flow, logger) self.swagger = generate_swagger(self.flow, self.sample, self.response_fields_to_remove) + data = load_feedback_swagger() + self.swagger['paths']['/feedback'] = data def set_default_environment_variables(self, default_environment_variables: Dict[str, str] = None): if default_environment_variables is None: @@ -164,8 +150,16 @@ def score(): run_id = g.get("req_id", None) # TODO: refine this once we can directly set the input/output log level to DEBUG in flow_invoker. disable_data_logging = logger.level >= logging.INFO - flow_result = app.flow_invoker.invoke(data, run_id=run_id, disable_input_output_logging=disable_data_logging) - g.flow_result = flow_result + # try parse trace context and attach it as current context if exist + ctx = try_extract_trace_context(logger) + token = context.attach(ctx) if ctx else None + try: + flow_result = app.flow_invoker.invoke(data, run_id=run_id, disable_input_output_logging=disable_data_logging) # noqa + g.flow_result = flow_result + finally: + # detach trace context if exist + if token: + context.detach(token) # check flow result, if failed, return error response if flow_result.run_info.status != Status.Completed: @@ -211,6 +205,37 @@ def version(): version = VERSION return {"status": "Healthy", "build_info": build_info, "version": version} + @app.route("/feedback", methods=["POST"]) + def feedback(): + ctx = try_extract_trace_context(logger) + from opentelemetry import trace + open_telemetry_tracer = trace.get_tracer_provider().get_tracer("promptflow") + token = context.attach(ctx) if ctx else None + try: + with open_telemetry_tracer.start_as_current_span(FEEDBACK_TRACE_SPAN_NAME) as span: + data = request.get_data(as_text=True) + should_flatten = request.args.get('flatten', 'false').lower() == 'true' + if should_flatten: + try: + # try flatten the data to avoid data too big issue (especially for app insights scenario) + data = json.loads(data) + for k in data: + span.set_attribute(k, serialize_attribute_value(data[k])) + except Exception as e: + logger.warning(f"Failed to flatten the feedback, fall back to non-flattern mode. Error: {e}.") + span.set_attribute(FEEDBACK_TRACE_FIELD_NAME, data) + else: + span.set_attribute(FEEDBACK_TRACE_FIELD_NAME, data) + # add baggage data if exist + data = baggage.get_all() + if data: + for k, v in data.items(): + span.set_attribute(k, v) + finally: + if token: + context.detach(token) + return {"status": "Feedback received."} + def create_app(**kwargs): app = PromptflowServingApp(__name__) diff --git a/src/promptflow/promptflow/_sdk/_serving/constants.py b/src/promptflow/promptflow/_sdk/_serving/constants.py new file mode 100644 index 00000000000..296239f0e77 --- /dev/null +++ b/src/promptflow/promptflow/_sdk/_serving/constants.py @@ -0,0 +1,6 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +FEEDBACK_TRACE_FIELD_NAME = "feedback" +FEEDBACK_TRACE_SPAN_NAME = "promptflow-feedback" diff --git a/src/promptflow/promptflow/_sdk/_serving/extension/azureml_extension.py b/src/promptflow/promptflow/_sdk/_serving/extension/azureml_extension.py index e5aee077805..ed212905a79 100644 --- a/src/promptflow/promptflow/_sdk/_serving/extension/azureml_extension.py +++ b/src/promptflow/promptflow/_sdk/_serving/extension/azureml_extension.py @@ -10,9 +10,7 @@ from promptflow._sdk._serving._errors import InvalidConnectionData, MissingConnectionProvider from promptflow._sdk._serving.extension.default_extension import AppExtension from promptflow._sdk._serving.monitor.data_collector import FlowDataCollector -from promptflow._sdk._serving.monitor.flow_monitor import FlowMonitor -from promptflow._sdk._serving.monitor.metrics import MetricsRecorder -from promptflow._sdk._serving.monitor.mdc_exporter import MdcExporter +from promptflow._sdk._serving.extension.extension_type import ExtensionType from promptflow._sdk._serving.utils import decode_dict, get_pf_serving_env, normalize_connection_name from promptflow._utils.retry_utils import retry from promptflow._version import VERSION @@ -20,15 +18,14 @@ USER_AGENT = f"promptflow-cloud-serving/{VERSION}" AML_DEPLOYMENT_RESOURCE_ID_REGEX = "/subscriptions/(.*)/resourceGroups/(.*)/providers/Microsoft.MachineLearningServices/workspaces/(.*)/onlineEndpoints/(.*)/deployments/(.*)" # noqa: E501 -AML_CONNECTION_PROVIDER_TEMPLATE = "azureml:/subscriptions/{}/resourceGroups/{}/providers/Microsoft.MachineLearningServices/workspaces/{}" # noqa: E501 +AML_CONNECTION_PROVIDER_TEMPLATE = "azureml://subscriptions/{}/resourceGroups/{}/providers/Microsoft.MachineLearningServices/workspaces/{}" # noqa: E501 class AzureMLExtension(AppExtension): """AzureMLExtension is used to create extension for azureml serving.""" def __init__(self, logger, **kwargs): - super().__init__(logger=logger, **kwargs) - self.logger = logger + super().__init__(logger=logger, extension_type=ExtensionType.AZUREML, collector=FlowDataCollector(logger), **kwargs) # noqa: E501 # parse promptflow project path project_path: str = get_pf_serving_env("PROMPTFLOW_PROJECT_PATH") if not project_path: @@ -56,18 +53,6 @@ def __init__(self, logger, **kwargs): self.common_dimensions["deployment"] = self.deployment_name env_dimensions = self._get_common_dimensions_from_env() self.common_dimensions.update(env_dimensions) - # initialize flow monitor - data_collector = FlowDataCollector(self.logger) - metrics_recorder = self._get_metrics_recorder() - self.flow_monitor = FlowMonitor( - self.logger, self.get_flow_name(), data_collector, metrics_recorder=metrics_recorder - ) - # initialize MDC trace exporter by default for azureml-serving - mdc_exporter = MdcExporter(self.logger) - self.trace_exporters = [mdc_exporter] - customized_exporters = super().get_trace_exporters(self.project_path) - if customized_exporters: - self.trace_exporters.extend(customized_exporters) def get_flow_project_path(self) -> str: return self.project_path @@ -81,12 +66,6 @@ def get_connection_provider(self) -> str: def get_blueprints(self): return self._get_default_blueprints() - def get_flow_monitor(self) -> FlowMonitor: - return self.flow_monitor - - def get_trace_exporters(self, flow_dir: str): - return self.trace_exporters - def get_override_connections(self, flow: Flow) -> Tuple[dict, dict]: connection_names = flow.get_connection_names() connections = {} @@ -146,27 +125,6 @@ def _get_env_connections_if_exist(self): connections = decode_dict(env_connections) return connections - def _get_metrics_recorder(self): - # currently only support exporting it to azure monitor(application insights) - # TODO: add support for dynamic loading thus user can customize their own exporter. - custom_dimensions = self.get_metrics_common_dimensions() - try: - from azure.monitor.opentelemetry.exporter import AzureMonitorMetricExporter - from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader - - # check whether azure monitor instrumentation key is set - instrumentation_key = os.getenv("AML_APP_INSIGHTS_KEY") or os.getenv("APPINSIGHTS_INSTRUMENTATIONKEY") - if instrumentation_key: - self.logger.info("Initialize metrics recorder with azure monitor metrics exporter...") - exporter = AzureMonitorMetricExporter(connection_string=f"InstrumentationKey={instrumentation_key}") - reader = PeriodicExportingMetricReader(exporter=exporter, export_interval_millis=60000) - return MetricsRecorder(self.logger, reader=reader, common_dimensions=custom_dimensions) - else: - self.logger.info("Azure monitor metrics exporter is not enabled, metrics will not be collected.") - except ImportError: - self.logger.warning("No metrics exporter module found, metrics will not be collected.") - return None - def _initialize_connection_provider(self): # parse connection provider self.connection_provider = get_pf_serving_env("PROMPTFLOW_CONNECTION_PROVIDER") diff --git a/src/promptflow/promptflow/_sdk/_serving/extension/default_extension.py b/src/promptflow/promptflow/_sdk/_serving/extension/default_extension.py index 1bb258628cf..d519dd5b558 100644 --- a/src/promptflow/promptflow/_sdk/_serving/extension/default_extension.py +++ b/src/promptflow/promptflow/_sdk/_serving/extension/default_extension.py @@ -13,6 +13,8 @@ from promptflow._sdk._serving.blueprint.monitor_blueprint import construct_monitor_blueprint from promptflow._sdk._serving.blueprint.static_web_blueprint import construct_staticweb_blueprint from promptflow._sdk._serving.monitor.flow_monitor import FlowMonitor +from promptflow._sdk._serving.extension.extension_type import ExtensionType +from promptflow._sdk._serving.extension.otel_exporter_provider_factory import OTelExporterProviderFactory from promptflow._utils.yaml_utils import load_yaml from promptflow._version import VERSION from promptflow.contracts.flow import Flow @@ -22,8 +24,11 @@ class AppExtension(ABC): - def __init__(self, logger, **kwargs): + def __init__(self, logger, extension_type: ExtensionType, collector=None, **kwargs): self.logger = logger + self.extension_type = extension_type + self.data_collector = collector + self.flow_monitor = None @abstractmethod def get_flow_project_path(self) -> str: @@ -45,10 +50,6 @@ def get_blueprints(self): """Get blueprints for current extension.""" pass - def get_trace_exporters(self, flow_dir: str): - """Get customized trace exporters for current extension.""" - return None - def get_override_connections(self, flow: Flow) -> Tuple[dict, dict]: """ Get override connections for current extension. @@ -84,8 +85,13 @@ def get_metrics_common_dimensions(self): def get_flow_monitor(self) -> FlowMonitor: """Get flow monitor for current extension.""" - # default no data collector, no app insights metric exporter - return FlowMonitor(self.logger, self.get_flow_name(), None, metrics_recorder=None) + if self.flow_monitor: + return self.flow_monitor + custom_dimensions = self.get_metrics_common_dimensions() + metric_exporters = OTelExporterProviderFactory.get_metrics_exporters(self.logger, self.extension_type) + trace_exporters = OTelExporterProviderFactory.get_trace_exporters(self.logger, self.extension_type) + self.flow_monitor = FlowMonitor(self.logger, self.get_flow_name(), self.data_collector, custom_dimensions, metric_exporters, trace_exporters) # noqa: E501 + return self.flow_monitor def _get_mlflow_project_path(self, project_path: str): # check whether it's mlflow model @@ -119,7 +125,7 @@ class DefaultAppExtension(AppExtension): """default app extension for local serve.""" def __init__(self, logger, **kwargs): - self.logger = logger + super().__init__(logger=logger, extension_type=ExtensionType.DEFAULT, **kwargs) static_folder = kwargs.get("static_folder", None) self.static_folder = static_folder if static_folder else DEFAULT_STATIC_PATH logger.info(f"Static_folder: {self.static_folder}") diff --git a/src/promptflow/promptflow/_sdk/_serving/extension/extension_factory.py b/src/promptflow/promptflow/_sdk/_serving/extension/extension_factory.py index 69f8a5f3511..c65a3362a1e 100644 --- a/src/promptflow/promptflow/_sdk/_serving/extension/extension_factory.py +++ b/src/promptflow/promptflow/_sdk/_serving/extension/extension_factory.py @@ -2,15 +2,8 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -from enum import Enum from promptflow._sdk._serving.extension.default_extension import AppExtension - - -class ExtensionType(Enum): - """Extension type used to identify which extension to load in serving app.""" - - Default = "local" - AzureML = "azureml" +from promptflow._sdk._serving.extension.extension_type import ExtensionType class ExtensionFactory: @@ -19,12 +12,12 @@ class ExtensionFactory: @staticmethod def create_extension(logger, **kwargs) -> AppExtension: """Create extension based on extension type.""" - extension_type_str = kwargs.get("extension_type", ExtensionType.Default.value) + extension_type_str = kwargs.pop("extension_type", ExtensionType.DEFAULT.value) if not extension_type_str: - extension_type_str = ExtensionType.Default.value + extension_type_str = ExtensionType.DEFAULT.value extension_type = ExtensionType(extension_type_str.lower()) - if extension_type == ExtensionType.AzureML: + if extension_type == ExtensionType.AZUREML: logger.info("Enable AzureML extension.") from promptflow._sdk._serving.extension.azureml_extension import AzureMLExtension diff --git a/src/promptflow/promptflow/_sdk/_serving/extension/extension_type.py b/src/promptflow/promptflow/_sdk/_serving/extension/extension_type.py new file mode 100644 index 00000000000..c16e76c41af --- /dev/null +++ b/src/promptflow/promptflow/_sdk/_serving/extension/extension_type.py @@ -0,0 +1,12 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +from enum import Enum + + +class ExtensionType(Enum): + """Extension type used to identify which extension to load in serving app.""" + + DEFAULT = "local" + AZUREML = "azureml" diff --git a/src/promptflow/promptflow/_sdk/_serving/extension/otel_exporter_provider_factory.py b/src/promptflow/promptflow/_sdk/_serving/extension/otel_exporter_provider_factory.py new file mode 100644 index 00000000000..48e586a2ab6 --- /dev/null +++ b/src/promptflow/promptflow/_sdk/_serving/extension/otel_exporter_provider_factory.py @@ -0,0 +1,120 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import os +from abc import abstractmethod +from enum import Enum +from promptflow._sdk._serving.extension.extension_type import ExtensionType +from promptflow._sdk._serving.monitor.mdc_exporter import MdcExporter + + +class ExporterType(Enum): + METRIC = "metric" + TRACE = "trace" + + +class OTelExporterProvider: + def __init__(self, logger, exporter_type: ExporterType) -> None: + self.logger = logger + self._exporter_type = exporter_type + + @abstractmethod + def is_enabled(self, extension: ExtensionType): + """check whether the exporter is enabled for given extension.""" + pass + + @abstractmethod + def get_exporter(self, **kwargs): + """get exporter instance.""" + pass + + @property + def exporter_type(self) -> ExporterType: + return self._exporter_type + + +class AppInsightExporterProvider(OTelExporterProvider): + def __init__(self, logger, exporter_type: ExporterType) -> None: + super().__init__(logger, exporter_type) + self.app_insight_connection_string = try_get_app_insight_connection_string() + if not self.app_insight_connection_string: + self.logger.info(f"No connection string detected, app insight {exporter_type.value} exporter is disabled.") + + def is_enabled(self, extension: ExtensionType): + return self.app_insight_connection_string is not None + + +class AppInsightTraceExporterProvider(AppInsightExporterProvider): + def __init__(self, logger) -> None: + super().__init__(logger, ExporterType.TRACE) + + def get_exporter(self, **kwargs): + try: + from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter + return AzureMonitorTraceExporter.from_connection_string(self.app_insight_connection_string) + except ImportError: + return None + + +class MdcTraceExporterProvider(OTelExporterProvider): + def __init__(self, logger) -> None: + super().__init__(logger, ExporterType.TRACE) + + def is_enabled(self, extension: ExtensionType): + return extension == ExtensionType.AZUREML + + def get_exporter(self, **kwargs): + return MdcExporter(self.logger) + + +class AppInsightMetricsExporterProvider(AppInsightExporterProvider): + def __init__(self, logger) -> None: + super().__init__(logger, ExporterType.METRIC) + + def get_exporter(self, **kwargs): + try: + from azure.monitor.opentelemetry.exporter import AzureMonitorMetricExporter + return AzureMonitorMetricExporter.from_connection_string(self.app_insight_connection_string) + except ImportError: + return None + + +class OTelExporterProviderFactory: + """Factory to create OTel trace and metric exporters based on extension type.""" + + @staticmethod + def get_trace_exporters(logger, extension: ExtensionType, **kwargs): + trace_providers = [AppInsightTraceExporterProvider(logger), MdcTraceExporterProvider(logger)] + exporters = [] + for provider in trace_providers: + if provider.is_enabled(extension): + exporter = provider.get_exporter(**kwargs) + if exporter: + exporters.append(exporter) + return exporters + + @staticmethod + def get_metrics_exporters(logger, extension: ExtensionType, **kwargs): + metric_providers = [AppInsightMetricsExporterProvider(logger)] + exporters = [] + for provider in metric_providers: + if provider.is_enabled(extension): + exporter = provider.get_exporter(**kwargs) + if exporter: + exporters.append(exporter) + return exporters + + +def try_get_app_insight_connection_string(): + """ + Try to get application insight connection string from environment variable. + app insight base exporter support these environment variables: + - "APPINSIGHTS_INSTRUMENTATIONKEY" + - "APPLICATIONINSIGHTS_CONNECTION_STRING" + """ + instrumentation_key = os.getenv("AML_APP_INSIGHTS_KEY") or os.getenv("APPINSIGHTS_INSTRUMENTATIONKEY") + if instrumentation_key: + return f"InstrumentationKey={instrumentation_key}" + connection_str = os.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING") + return connection_str diff --git a/src/promptflow/promptflow/_sdk/_serving/monitor/flow_monitor.py b/src/promptflow/promptflow/_sdk/_serving/monitor/flow_monitor.py index 1617cc6fe86..b647bcd5e5f 100644 --- a/src/promptflow/promptflow/_sdk/_serving/monitor/flow_monitor.py +++ b/src/promptflow/promptflow/_sdk/_serving/monitor/flow_monitor.py @@ -3,6 +3,7 @@ # --------------------------------------------------------- import time +from typing import Dict from promptflow._sdk._serving.monitor.data_collector import FlowDataCollector from promptflow._sdk._serving.monitor.streaming_monitor import StreamingMonitor from promptflow._sdk._serving.monitor.metrics import MetricsRecorder, ResponseType @@ -15,11 +16,56 @@ class FlowMonitor: """FlowMonitor is used to collect metrics & data for promptflow serving.""" - def __init__(self, logger, default_flow_name, data_collector: FlowDataCollector, metrics_recorder: MetricsRecorder): + def __init__(self, + logger, + default_flow_name, + data_collector: FlowDataCollector, + custom_dimensions: Dict[str, str], + metric_exporters=None, + trace_exporters=None): self.data_collector = data_collector - self.metrics_recorder = metrics_recorder self.logger = logger + self.metrics_recorder = self.setup_metrics_recorder(custom_dimensions, metric_exporters) self.flow_name = default_flow_name + self.setup_trace_exporters(trace_exporters) + + def setup_metrics_recorder(self, custom_dimensions, metric_exporters): + if metric_exporters: + from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader + exporter_names = [n.__class__.__name__ for n in metric_exporters] + self.logger.info(f"Enable {len(metric_exporters)} metric exporters: {exporter_names}.") + readers = [] + for exporter in metric_exporters: + reader = PeriodicExportingMetricReader(exporter=exporter, export_interval_millis=60000) + readers.append(reader) + return MetricsRecorder(self.logger, readers=readers, common_dimensions=custom_dimensions) + else: + self.logger.warning("No metric exporter enabled.") + return None + + def setup_trace_exporters(self, trace_exporters): + if not trace_exporters: + self.logger.warning("No trace exporter enabled.") + return + try: + exporter_names = [n.__class__.__name__ for n in trace_exporters] + self.logger.info(f"Enable {len(trace_exporters)} trace exporters: {exporter_names}.") + from opentelemetry import trace + from opentelemetry.sdk.resources import SERVICE_NAME, Resource + from opentelemetry.sdk.trace import TracerProvider + from opentelemetry.sdk.trace.export import BatchSpanProcessor + + resource = Resource( + attributes={ + SERVICE_NAME: "promptflow", + } + ) + trace.set_tracer_provider(TracerProvider(resource=resource)) + provider = trace.get_tracer_provider() + for exporter in trace_exporters: + provider.add_span_processor(BatchSpanProcessor(exporter)) + except Exception as e: + self.logger.error(f"Setup trace exporters failed: {e}") def setup_streaming_monitor_if_needed(self, response_creator, data, output): g.streaming = response_creator.has_stream_field and response_creator.text_stream_specified_explicitly diff --git a/src/promptflow/promptflow/_sdk/_serving/monitor/metrics.py b/src/promptflow/promptflow/_sdk/_serving/monitor/metrics.py index 00b82948e72..365f91c0136 100644 --- a/src/promptflow/promptflow/_sdk/_serving/monitor/metrics.py +++ b/src/promptflow/promptflow/_sdk/_serving/monitor/metrics.py @@ -140,13 +140,13 @@ class LLMTokenType(Enum): class MetricsRecorder(object): """OpenTelemetry Metrics Recorder""" - def __init__(self, logger, reader=None, common_dimensions: Dict[str, str] = None) -> None: + def __init__(self, logger, readers=None, common_dimensions: Dict[str, str] = None) -> None: """initialize metrics recorder :param logger: logger :type logger: Logger - :param reader: metric reader - :type reader: opentelemetry.sdk.metrics.export.MetricReader + :param readers: metric reader list + :type readers: List[opentelemetry.sdk.metrics.export.MetricReader] :param common_dimensions: common dimensions for all metrics :type common_dimensions: Dict[str, str] """ @@ -159,9 +159,9 @@ def __init__(self, logger, reader=None, common_dimensions: Dict[str, str] = None ) return self.common_dimensions = common_dimensions or {} - self.reader = reader + self.readers = readers dimension_keys = {key for key in common_dimensions} - self._config_common_monitor(dimension_keys, reader) + self._config_common_monitor(dimension_keys, readers) logger.info("OpenTelemetry metric is enabled, metrics will be recorded.") def record_flow_request(self, flow_id: str, response_code: int, exception: str, streaming: bool): @@ -318,7 +318,7 @@ def _get_exact_error(self, err: Dict): return error_response.innermost_error_code # configure monitor, by default only expose prometheus metrics - def _config_common_monitor(self, common_keys: Set[str] = {}, reader=None): + def _config_common_monitor(self, common_keys: Set[str] = {}, readers=[]): metrics_views = [ token_view, flow_latency_view, @@ -330,10 +330,6 @@ def _config_common_monitor(self, common_keys: Set[str] = {}, reader=None): for view in metrics_views: view._attribute_keys.update(common_keys) - readers = [] - if reader: - readers.append(reader) - meter_provider = MeterProvider( metric_readers=readers, views=metrics_views, diff --git a/src/promptflow/promptflow/_sdk/_serving/resources/feedback_swagger.json b/src/promptflow/promptflow/_sdk/_serving/resources/feedback_swagger.json new file mode 100644 index 00000000000..da07f19b1f3 --- /dev/null +++ b/src/promptflow/promptflow/_sdk/_serving/resources/feedback_swagger.json @@ -0,0 +1,47 @@ +{ + "post": { + "summary": "collect promptflow feedback", + "requestBody": { + "description": "promptflow feedback data", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": {} + } + } + } + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": {} + } + } + } + }, + "400": { + "description": "Invalid input" + }, + "default": { + "description": "unexpected error" + } + } + }, + "parameters": [ + { + "name": "flatten", + "in": "query", + "description": "flatten the feedback data into traced data", + "required": false, + "schema": { + "type": "boolean" + } + } + ] +} \ No newline at end of file diff --git a/src/promptflow/promptflow/_sdk/_serving/utils.py b/src/promptflow/promptflow/_sdk/_serving/utils.py index 91d681e6c4a..910647dfac8 100644 --- a/src/promptflow/promptflow/_sdk/_serving/utils.py +++ b/src/promptflow/promptflow/_sdk/_serving/utils.py @@ -6,7 +6,7 @@ import time import base64 import zlib - +from pathlib import Path from flask import jsonify, request from promptflow._sdk._serving._errors import ( @@ -17,6 +17,15 @@ from promptflow._utils.exception_utils import ErrorResponse, ExceptionPresenter from promptflow.contracts.flow import Flow as FlowContract from promptflow.exceptions import ErrorTarget +from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator +from opentelemetry.baggage.propagation import W3CBaggagePropagator +from opentelemetry.context import Context +from opentelemetry.propagate import set_global_textmap, extract +from opentelemetry.propagators.composite import CompositePropagator + +DEFAULT_RESOURCE_PATH = Path(__file__).parent / "resources" +# configure global propagator +set_global_textmap(CompositePropagator([TraceContextTextMapPropagator(), W3CBaggagePropagator()])) def load_request_data(flow, raw_data, logger): @@ -137,3 +146,34 @@ def encode_dict(data: dict) -> str: b64_data = base64.b64encode(zipped_data) # bytes -> str return b64_data.decode() + + +def try_extract_trace_context(logger) -> Context: + """Try to extract trace context from request headers.""" + # reference: https://www.w3.org/TR/trace-context/ + context = extract(request.headers) + if context: + logger.info(f"Received trace context: {context}") + return context + + +def serialize_attribute_value(v): + if isinstance(v, (str, int, float, bool)): + return v + elif isinstance(v, list): + return [serialize_attribute_value(x) for x in v] + else: + try: + v_str = json.dumps(v) + except Exception: + v_str = str(v) + return v_str + + +def load_feedback_swagger(): + feedback_swagger_path = DEFAULT_RESOURCE_PATH / "feedback_swagger.json" + # Open the JSON file + with open(feedback_swagger_path, 'r') as file: + # Load JSON data from the file + data = json.load(file) + return data diff --git a/src/promptflow/setup.py b/src/promptflow/setup.py index 41d305db479..6a71f3c2060 100644 --- a/src/promptflow/setup.py +++ b/src/promptflow/setup.py @@ -92,7 +92,6 @@ # AzureML connection dependencies "azure-identity>=1.12.0,<2.0.0", "azure-ai-ml>=1.11.0,<2.0.0", - "azure-monitor-opentelemetry-exporter>=1.0.0b21,<2.0.0", # MDC dependencies for monitoring "azureml-ai-monitoring>=0.1.0b3,<1.0.0", ], diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py index e418091dd1b..45119633de2 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py @@ -5,13 +5,20 @@ import pytest from promptflow._core.operation_context import OperationContext +from promptflow._sdk._serving.utils import load_feedback_swagger +from promptflow._sdk._serving.constants import FEEDBACK_TRACE_FIELD_NAME +from opentelemetry import trace +from opentelemetry.sdk.resources import SERVICE_NAME, Resource +from opentelemetry.sdk.trace import TracerProvider +from opentelemetry.sdk.trace.export import SimpleSpanProcessor +from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter @pytest.mark.usefixtures("recording_injection", "setup_local_connection") @pytest.mark.e2etest def test_swagger(flow_serving_client): swagger_dict = json.loads(flow_serving_client.get("/swagger.json").data.decode()) - assert swagger_dict == { + expected_swagger = { "components": {"securitySchemes": {"bearerAuth": {"scheme": "bearer", "type": "http"}}}, "info": { "title": "Promptflow[basic-with-connection] API", @@ -54,13 +61,69 @@ def test_swagger(flow_serving_client): }, "security": [{"bearerAuth": []}], } + feedback_swagger = load_feedback_swagger() + expected_swagger["paths"]["/feedback"] = feedback_swagger + assert swagger_dict == expected_swagger + + +@pytest.mark.usefixtures("recording_injection", "setup_local_connection") +@pytest.mark.e2etest +def test_feedback_flatten(flow_serving_client): + resource = Resource( + attributes={ + SERVICE_NAME: "promptflow", + } + ) + trace.set_tracer_provider(TracerProvider(resource=resource)) + provider = trace.get_tracer_provider() + exporter = InMemorySpanExporter() + provider.add_span_processor(SimpleSpanProcessor(exporter)) + data_field_name = "comment" + feedback_data = {data_field_name: "positive"} + response = flow_serving_client.post("/feedback?flatten=true", data=json.dumps(feedback_data)) + assert response.status_code == 200 + spans = exporter.get_finished_spans() + assert len(spans) == 1 + assert spans[0].attributes[data_field_name] == feedback_data[data_field_name] + + +@pytest.mark.usefixtures("recording_injection", "setup_local_connection") +@pytest.mark.e2etest +def test_feedback_with_trace_context(flow_serving_client): + resource = Resource( + attributes={ + SERVICE_NAME: "promptflow", + } + ) + trace.set_tracer_provider(TracerProvider(resource=resource)) + provider = trace.get_tracer_provider() + exporter = InMemorySpanExporter() + provider.add_span_processor(SimpleSpanProcessor(exporter)) + feedback_data = json.dumps({"feedback": "positive"}) + trace_ctx_version = "00" + trace_ctx_trace_id = "8a3c60f7d6e2f3b4a4f2f7f3f3f3f3f3" + trace_ctx_parent_id = "f3f3f3f3f3f3f3f3" + trace_ctx_flags = "01" + trace_parent = f"{trace_ctx_version}-{trace_ctx_trace_id}-{trace_ctx_parent_id}-{trace_ctx_flags}" + response = flow_serving_client.post("/feedback", + headers={"traceparent": trace_parent, "baggage": "userId=alice"}, + data=feedback_data) + assert response.status_code == 200 + spans = exporter.get_finished_spans() + assert len(spans) == 1 + # validate trace context + assert spans[0].context.trace_id == int(trace_ctx_trace_id, 16) + assert spans[0].parent.span_id == int(trace_ctx_parent_id, 16) + # validate feedback data + assert feedback_data == spans[0].attributes[FEEDBACK_TRACE_FIELD_NAME] + assert spans[0].attributes["userId"] == "alice" @pytest.mark.usefixtures("recording_injection", "setup_local_connection") @pytest.mark.e2etest def test_chat_swagger(serving_client_llm_chat): swagger_dict = json.loads(serving_client_llm_chat.get("/swagger.json").data.decode()) - assert swagger_dict == { + expected_swagger = { "components": {"securitySchemes": {"bearerAuth": {"scheme": "bearer", "type": "http"}}}, "info": { "title": "Promptflow[chat_flow_with_stream_output] API", @@ -113,6 +176,9 @@ def test_chat_swagger(serving_client_llm_chat): }, "security": [{"bearerAuth": []}], } + feedback_swagger = load_feedback_swagger() + expected_swagger["paths"]["/feedback"] = feedback_swagger + assert swagger_dict == expected_swagger @pytest.mark.usefixtures("recording_injection", "setup_local_connection") @@ -368,7 +434,7 @@ def test_eager_flow_serve(simple_eager_flow): @pytest.mark.e2etest def test_eager_flow_swagger(simple_eager_flow): swagger_dict = json.loads(simple_eager_flow.get("/swagger.json").data.decode()) - assert swagger_dict == { + expected_swagger = { "components": {"securitySchemes": {"bearerAuth": {"scheme": "bearer", "type": "http"}}}, "info": { "title": "Promptflow[simple_with_dict_output] API", @@ -414,6 +480,9 @@ def test_eager_flow_swagger(simple_eager_flow): }, "security": [{"bearerAuth": []}], } + feedback_swagger = load_feedback_swagger() + expected_swagger["paths"]["/feedback"] = feedback_swagger + assert swagger_dict == expected_swagger @pytest.mark.e2etest @@ -430,7 +499,7 @@ def test_eager_flow_serve_primitive_output(simple_eager_flow_primitive_output): @pytest.mark.e2etest def test_eager_flow_primitive_output_swagger(simple_eager_flow_primitive_output): swagger_dict = json.loads(simple_eager_flow_primitive_output.get("/swagger.json").data.decode()) - assert swagger_dict == { + expected_swagger = { "components": {"securitySchemes": {"bearerAuth": {"scheme": "bearer", "type": "http"}}}, "info": {"title": "Promptflow[primitive_output] API", "version": "1.0.0", "x-flow-name": "primitive_output"}, "openapi": "3.0.0", @@ -469,6 +538,9 @@ def test_eager_flow_primitive_output_swagger(simple_eager_flow_primitive_output) }, "security": [{"bearerAuth": []}], } + feedback_swagger = load_feedback_swagger() + expected_swagger["paths"]["/feedback"] = feedback_swagger + assert swagger_dict == expected_swagger @pytest.mark.e2etest From 00d77f2fb01ed41d97ac629c04a97f5552552d18 Mon Sep 17 00:00:00 2001 From: Han Wang Date: Wed, 13 Mar 2024 19:30:04 +0800 Subject: [PATCH 044/204] [SDK] Support streaming in eager mode (#2248) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. This pull request involves changes across multiple files in the `src/promptflow` directory, primarily focusing on improving generator output handling and testing. The main changes include the introduction of generator output handling in `test_submitter.py` and `_script_executor.py`, addition of new test cases for generator outputs, and modification of existing methods to support generator outputs. Generator output handling: * [`src/promptflow/promptflow/_sdk/_submitter/test_submitter.py`](diffhunk://#diff-d9dd2c09a149b11eb54626edf065287eeb7b1a28e39719b8dd95377770f64138L474-R474): The `flow_test` method has been simplified to always call `_get_generator_outputs` on `line_result.output` [[1]](diffhunk://#diff-d9dd2c09a149b11eb54626edf065287eeb7b1a28e39719b8dd95377770f64138L474-R474). The `_get_generator_outputs` method has been expanded to handle both dictionary and generator type outputs [[2]](diffhunk://#diff-d9dd2c09a149b11eb54626edf065287eeb7b1a28e39719b8dd95377770f64138L588-R591). * [`src/promptflow/promptflow/executor/_script_executor.py`](diffhunk://#diff-3294a0ccdf18c47385db91932bd860940cc3df5df10d206138fbcd48075530d5R6): Imported `GeneratorType` from the `types` module [[1]](diffhunk://#diff-3294a0ccdf18c47385db91932bd860940cc3df5df10d206138fbcd48075530d5R6). Updated the `exec_line` and `_exec_line` methods to accept a new `allow_generator_output` parameter [[2]](diffhunk://#diff-3294a0ccdf18c47385db91932bd860940cc3df5df10d206138fbcd48075530d5R50-R66). Depending on the value of `allow_generator_output`, the output is either stringified or left as is [[3]](diffhunk://#diff-3294a0ccdf18c47385db91932bd860940cc3df5df10d206138fbcd48075530d5R86). Added a new `_stringify_generator_output` method to convert generator output to a string [[4]](diffhunk://#diff-3294a0ccdf18c47385db91932bd860940cc3df5df10d206138fbcd48075530d5R104-R110). Test case additions and modifications: * [`src/promptflow/tests/sdk_cli_test/conftest.py`](diffhunk://#diff-9dced3762e0027d9b6b131576702c5290a82d72c20b2a828c67aa682d31d8e40R234-R238): Added a new fixture `stream_output` for testing generator outputs. * [`src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py`](diffhunk://#diff-8f175978a83627600049f94831e06a3c9e3307cbde190fe5fbb187571ac514baR502-R547): Added a new test case `test_eager_flow_stream_output` to test different response types for generator outputs. * [`src/promptflow/tests/sdk_cli_test/e2etests/test_flow_test.py`](diffhunk://#diff-acf3c2285ac2a7051d59e3a69abe02224e2d6d5d69e3a0aabd2afd9311f87657R371-R391): Added two new test cases `test_eager_flow_stream_output` and `test_stream_output_with_builtin_llm` to test generator outputs in eager flows and with built-in language models respectively. Additional changes: * [`src/promptflow/promptflow/_sdk/operations/_flow_operations.py`](diffhunk://#diff-afdd40a5d0519512dcf9be48bd46c4caaa2291b808687de77896989af63f47e4R183): A comment has been added in the `_test` method to indicate that `is_chat_flow` is set to True to allow generator output. * [`src/promptflow/tests/test_configs/eager_flows/builtin_llm/builtin_call.py`](diffhunk://#diff-eef3589cf12002451966c15d6d2073d10505d4f4e1baa52076b3d114949f0355R1-R54): The `flow_entry` function has been updated to pass a `stream` parameter to the `chat` function. * [`src/promptflow/tests/test_configs/eager_flows/stream_output/stream_output.py`](diffhunk://#diff-e5c1c37d4206be7c0ccc24a92f53b3bc605dad4660f46ba10a301fcd8579c0f3R1-R8): A new Python file has been added that defines a generator function `my_flow`. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .../_sdk/_submitter/test_submitter.py | 14 +++-- .../_sdk/operations/_flow_operations.py | 1 + .../promptflow/executor/_script_executor.py | 30 +++++++++- src/promptflow/tests/sdk_cli_test/conftest.py | 10 ++++ .../sdk_cli_test/e2etests/test_flow_serve.py | 60 +++++++++++++++++++ .../sdk_cli_test/e2etests/test_flow_test.py | 38 ++++++++++++ .../eager_flows/builtin_llm/builtin_call.py | 50 ++++++++++++++++ .../eager_flows/builtin_llm/chat.jinja2 | 12 ++++ .../eager_flows/builtin_llm/flow.dag.yaml | 1 + .../multiple_stream_outputs/flow.dag.yaml | 1 + .../multiple_stream_outputs.py | 10 ++++ .../flow.dag.yaml | 1 + .../multiple_stream_outputs_dataclass.py | 18 ++++++ .../eager_flows/stream_output/flow.dag.yaml | 1 + .../stream_output/stream_output.py | 8 +++ 15 files changed, 246 insertions(+), 9 deletions(-) create mode 100644 src/promptflow/tests/test_configs/eager_flows/builtin_llm/builtin_call.py create mode 100644 src/promptflow/tests/test_configs/eager_flows/builtin_llm/chat.jinja2 create mode 100644 src/promptflow/tests/test_configs/eager_flows/builtin_llm/flow.dag.yaml create mode 100644 src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs/flow.dag.yaml create mode 100644 src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs/multiple_stream_outputs.py create mode 100644 src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs_dataclass/flow.dag.yaml create mode 100644 src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs_dataclass/multiple_stream_outputs_dataclass.py create mode 100644 src/promptflow/tests/test_configs/eager_flows/stream_output/flow.dag.yaml create mode 100644 src/promptflow/tests/test_configs/eager_flows/stream_output/stream_output.py diff --git a/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py b/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py index 375b0787eeb..50a9da179a6 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py +++ b/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py @@ -26,6 +26,7 @@ from ..._constants import LINE_NUMBER_KEY, FlowLanguage from ..._core._errors import NotSupported from ..._utils.async_utils import async_run_allowing_running_loop +from ..._utils.dataclass_serializer import convert_eager_flow_output_to_dict from ..._utils.logger_utils import get_cli_sdk_logger from ...batch import APIBasedExecutorProxy, CSharpExecutorProxy from .._configuration import Configuration @@ -471,10 +472,7 @@ def flow_test( # remove line_number from output line_result.output.pop(LINE_NUMBER_KEY, None) - if isinstance(line_result.output, dict): - generator_outputs = self._get_generator_outputs(line_result.output) - if generator_outputs: - logger.info(f"Some streaming outputs in the result, {generator_outputs.keys()}") + self._get_generator_outputs(line_result.output) return line_result def node_test( @@ -584,5 +582,9 @@ def _raise_error_when_test_failed(test_result, show_trace=False): @staticmethod def _get_generator_outputs(outputs): - outputs = outputs or {} - return {key: outputs for key, output in outputs.items() if isinstance(output, GeneratorType)} + # covert output to dict to unify the log + outputs = convert_eager_flow_output_to_dict(outputs) + if isinstance(outputs, dict): + generator_outputs = {key: output for key, output in outputs.items() if isinstance(output, GeneratorType)} + if generator_outputs: + logger.info(f"Some streaming outputs in the result, {generator_outputs.keys()}") diff --git a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py index d816cf945af..f8cbd22c7b4 100644 --- a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py +++ b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py @@ -180,6 +180,7 @@ def _test( ) as submitter: if isinstance(flow, EagerFlow): # TODO(2897153): support chat eager flow + # set is chat flow to True to allow generator output is_chat_flow, chat_history_input_name = False, None flow_inputs, dependency_nodes_outputs = inputs, None else: diff --git a/src/promptflow/promptflow/executor/_script_executor.py b/src/promptflow/promptflow/executor/_script_executor.py index 191ceac995b..dfc3444a899 100644 --- a/src/promptflow/promptflow/executor/_script_executor.py +++ b/src/promptflow/promptflow/executor/_script_executor.py @@ -1,8 +1,11 @@ import asyncio +import dataclasses import importlib import inspect import uuid +from dataclasses import is_dataclass from pathlib import Path +from types import GeneratorType from typing import Any, Callable, Mapping, Optional from promptflow._constants import LINE_NUMBER_KEY @@ -47,17 +50,23 @@ def exec_line( inputs: Mapping[str, Any], index: Optional[int] = None, run_id: Optional[str] = None, + allow_generator_output: bool = False, **kwargs, ) -> LineResult: run_id = run_id or str(uuid.uuid4()) with self._update_operation_context(run_id, index): - return self._exec_line(inputs, index, run_id) + return self._exec_line(inputs, index, run_id, allow_generator_output=allow_generator_output) def _exec_line( - self, inputs: Mapping[str, Any], index: Optional[int] = None, run_id: Optional[str] = None + self, + inputs: Mapping[str, Any], + index: Optional[int] = None, + run_id: Optional[str] = None, + allow_generator_output: bool = False, ) -> LineResult: line_run_id = run_id if index is None else f"{run_id}_{index}" run_tracker = RunTracker(self._storage) + run_tracker.allow_generator_types = allow_generator_output run_info = run_tracker.start_flow_run( flow_id=self._flow_id, root_run_id=run_id, @@ -77,6 +86,7 @@ def _exec_line( output = asyncio.run(self._func(**inputs)) else: output = self._func(**inputs) + output = self._stringify_generator_output(output) if not allow_generator_output else output traces = Tracer.end_tracing(line_run_id) # Should convert output to dict before storing it to run info, since we will add key 'line_number' to it, # so it must be a dict. @@ -94,8 +104,22 @@ def _exec_line( line_result.output[LINE_NUMBER_KEY] = index return line_result + def _stringify_generator_output(self, output): + if isinstance(output, dict): + return super()._stringify_generator_output(output) + elif is_dataclass(output): + fields = dataclasses.fields(output) + for field in fields: + if isinstance(getattr(output, field.name), GeneratorType): + consumed_values = "".join(str(chuck) for chuck in getattr(output, field.name)) + setattr(output, field.name, consumed_values) + else: + if isinstance(output, GeneratorType): + output = "".join(str(chuck) for chuck in output) + return output + def enable_streaming_for_llm_flow(self, stream_required: Callable[[], bool]): - # TODO(2901157): check if eager mode should have streaming + # no need to inject streaming here, user can directly pass the param to the function return def get_inputs_definition(self): diff --git a/src/promptflow/tests/sdk_cli_test/conftest.py b/src/promptflow/tests/sdk_cli_test/conftest.py index ae5dabd94b0..249e71d6f1f 100644 --- a/src/promptflow/tests/sdk_cli_test/conftest.py +++ b/src/promptflow/tests/sdk_cli_test/conftest.py @@ -231,6 +231,16 @@ def non_json_serializable_output(mocker: MockerFixture): return create_client_by_model("non_json_serializable_output", mocker, model_root=EAGER_FLOW_ROOT) +@pytest.fixture +def stream_output(mocker: MockerFixture): + return create_client_by_model("stream_output", mocker, model_root=EAGER_FLOW_ROOT) + + +@pytest.fixture +def multiple_stream_outputs(mocker: MockerFixture): + return create_client_by_model("multiple_stream_outputs", mocker, model_root=EAGER_FLOW_ROOT) + + # ==================== Recording injection ==================== # To inject patches in subprocesses, add new mock method in setup_recording_injection_if_enabled # in fork mode, this is automatically enabled. diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py index 45119633de2..e5119957933 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py @@ -571,3 +571,63 @@ def test_eager_flow_serve_non_json_serializable_output(non_json_serializable_out "Please verify your flow output and make sure the value serializable.", } } + + +@pytest.mark.e2etest +@pytest.mark.parametrize( + "accept, expected_status_code, expected_content_type", + [ + ("text/event-stream", 200, "text/event-stream; charset=utf-8"), + ("text/html", 406, "application/json"), + ("application/json", 200, "application/json"), + ("*/*", 200, "application/json"), + ("text/event-stream, application/json", 200, "text/event-stream; charset=utf-8"), + ("application/json, */*", 200, "application/json"), + ("", 200, "application/json"), + ], +) +def test_eager_flow_stream_output( + stream_output, + accept, + expected_status_code, + expected_content_type, +): + payload = { + "input_val": "val", + } + headers = { + "Content-Type": "application/json", + "Accept": accept, + } + response = stream_output.post("/score", json=payload, headers=headers) + error_msg = f"Response code indicates error {response.status_code} - {response.data.decode()}" + assert response.status_code == expected_status_code, error_msg + assert response.content_type == expected_content_type + + if response.status_code == 406: + assert response.json["error"]["code"] == "UserError" + assert ( + f"Media type {accept} in Accept header is not acceptable. Supported media type(s) -" + in response.json["error"]["message"] + ) + + if "text/event-stream" in response.content_type: + for line in response.data.decode().split("\n"): + print(line) + else: + result = response.json + print(result) + + +@pytest.mark.e2etest +def test_eager_flow_multiple_stream_output(multiple_stream_outputs): + headers = { + "Content-Type": "application/json", + "Accept": "text/event-stream", + } + response = multiple_stream_outputs.post("/score", data=json.dumps({"input_val": 1}), headers=headers) + assert ( + response.status_code == 400 + ), f"Response code indicates error {response.status_code} - {response.data.decode()}" + response = json.loads(response.data.decode()) + assert response == {"error": {"code": "UserError", "message": "Multiple stream output fields not supported."}} diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_test.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_test.py index 22c882db893..ee7b20d9fae 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_test.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_test.py @@ -1,6 +1,7 @@ import logging import sys import tempfile +from dataclasses import is_dataclass from pathlib import Path from types import GeneratorType @@ -368,3 +369,40 @@ def test_init_executable(self): assert all([isinstance(value, FlowInputDefinition) for value in executable.inputs.values()]) # call values in executable.outputs are FlowOutputDefinitions assert all([isinstance(value, FlowOutputDefinition) for value in executable.outputs.values()]) + + def test_eager_flow_stream_output(self): + flow_path = Path(f"{EAGER_FLOWS_DIR}/stream_output/").absolute() + result = _client._flows._test(flow=flow_path, inputs={}) + assert result.run_info.status.value == "Completed", result.run_info.error + # directly return the consumed generator to align with the behavior of DAG flow test + assert result.output == "Hello world! " + + def test_stream_output_with_builtin_llm(self): + flow_path = Path(f"{EAGER_FLOWS_DIR}/builtin_llm/").absolute() + result = _client._flows._test( + flow=flow_path, + inputs={"stream": True}, + environment_variables={ + "OPENAI_API_KEY": "${azure_open_ai_connection.api_key}", + "AZURE_OPENAI_ENDPOINT": "${azure_open_ai_connection.api_base}", + }, + ) + assert result.run_info.status.value == "Completed", result.run_info.error + # directly return the consumed generator to align with the behavior of DAG flow test + assert isinstance(result.output, str) + + def test_eager_flow_multiple_stream_outputs(self): + flow_path = Path(f"{EAGER_FLOWS_DIR}/multiple_stream_outputs/").absolute() + result = _client._flows._test(flow=flow_path, inputs={}) + assert result.run_info.status.value == "Completed", result.run_info.error + # directly return the consumed generator to align with the behavior of DAG flow test + assert result.output == {"output1": "0123456789", "output2": "0123456789"} + + def test_eager_flow_multiple_stream_outputs_dataclass(self): + flow_path = Path(f"{EAGER_FLOWS_DIR}/multiple_stream_outputs_dataclass/").absolute() + result = _client._flows._test(flow=flow_path, inputs={}) + assert result.run_info.status.value == "Completed", result.run_info.error + # directly return the consumed generator to align with the behavior of DAG flow test + assert is_dataclass(result.output) + assert result.output.output1 == "0123456789" + assert result.output.output2 == "0123456789" diff --git a/src/promptflow/tests/test_configs/eager_flows/builtin_llm/builtin_call.py b/src/promptflow/tests/test_configs/eager_flows/builtin_llm/builtin_call.py new file mode 100644 index 00000000000..5be3c0207d0 --- /dev/null +++ b/src/promptflow/tests/test_configs/eager_flows/builtin_llm/builtin_call.py @@ -0,0 +1,50 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import os +from pathlib import Path + +from dotenv import load_dotenv +from jinja2 import Template + +from promptflow._sdk.entities import AzureOpenAIConnection +from promptflow.tools.aoai import chat + +BASE_DIR = Path(__file__).absolute().parent + + +def load_prompt(jinja2_template: str, question: str, chat_history: list) -> str: + """Load prompt function.""" + with open(BASE_DIR / jinja2_template, "r", encoding="utf-8") as f: + tmpl = Template(f.read(), trim_blocks=True, keep_trailing_newline=True) + prompt = tmpl.render(question=question, chat_history=chat_history) + return prompt + + +def flow_entry(question: str = "What is ChatGPT?", chat_history: list = [], stream: bool = False) -> str: + """Flow entry function.""" + + prompt = load_prompt("chat.jinja2", question, chat_history) + if "OPENAI_API_KEY" not in os.environ: + # load environment variables from .env file + load_dotenv() + + if "OPENAI_API_KEY" not in os.environ: + raise Exception("Please specify environment variables: OPENAI_API_KEY") + + connection = AzureOpenAIConnection( + api_key=os.environ["OPENAI_API_KEY"], + api_base=os.environ["AZURE_OPENAI_ENDPOINT"], + api_version=os.environ.get("OPENAI_API_VERSION", "2023-07-01-preview"), + ) + + output = chat( + connection=connection, + prompt=prompt, + deployment_name="gpt-35-turbo", + max_tokens=256, + temperature=0.7, + stream=stream + ) + return output diff --git a/src/promptflow/tests/test_configs/eager_flows/builtin_llm/chat.jinja2 b/src/promptflow/tests/test_configs/eager_flows/builtin_llm/chat.jinja2 new file mode 100644 index 00000000000..c5e811e1969 --- /dev/null +++ b/src/promptflow/tests/test_configs/eager_flows/builtin_llm/chat.jinja2 @@ -0,0 +1,12 @@ +system: +You are a helpful assistant. + +{% for item in chat_history %} +user: +{{item.inputs.question}} +assistant: +{{item.outputs.answer}} +{% endfor %} + +user: +{{question}} \ No newline at end of file diff --git a/src/promptflow/tests/test_configs/eager_flows/builtin_llm/flow.dag.yaml b/src/promptflow/tests/test_configs/eager_flows/builtin_llm/flow.dag.yaml new file mode 100644 index 00000000000..384d179afb1 --- /dev/null +++ b/src/promptflow/tests/test_configs/eager_flows/builtin_llm/flow.dag.yaml @@ -0,0 +1 @@ +entry: builtin_call:flow_entry \ No newline at end of file diff --git a/src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs/flow.dag.yaml b/src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs/flow.dag.yaml new file mode 100644 index 00000000000..0754adaae0d --- /dev/null +++ b/src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs/flow.dag.yaml @@ -0,0 +1 @@ +entry: multiple_stream_outputs:my_flow \ No newline at end of file diff --git a/src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs/multiple_stream_outputs.py b/src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs/multiple_stream_outputs.py new file mode 100644 index 00000000000..6cb1200f5e8 --- /dev/null +++ b/src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs/multiple_stream_outputs.py @@ -0,0 +1,10 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +def my_flow(input_val: str = "gpt") -> dict: + generator1 = (i for i in range(10)) + generator2 = (i for i in range(10)) + return { + "output1": generator1, + "output2": generator2, + } \ No newline at end of file diff --git a/src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs_dataclass/flow.dag.yaml b/src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs_dataclass/flow.dag.yaml new file mode 100644 index 00000000000..a07536bde52 --- /dev/null +++ b/src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs_dataclass/flow.dag.yaml @@ -0,0 +1 @@ +entry: multiple_stream_outputs_dataclass:my_flow \ No newline at end of file diff --git a/src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs_dataclass/multiple_stream_outputs_dataclass.py b/src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs_dataclass/multiple_stream_outputs_dataclass.py new file mode 100644 index 00000000000..544ce40b667 --- /dev/null +++ b/src/promptflow/tests/test_configs/eager_flows/multiple_stream_outputs_dataclass/multiple_stream_outputs_dataclass.py @@ -0,0 +1,18 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +from dataclasses import dataclass + +@dataclass +class MyOutput: + output1: str + output2: str + + +def my_flow(input_val: str = "gpt") -> MyOutput: + generator1 = (i for i in range(10)) + generator2 = (i for i in range(10)) + return MyOutput( + output1=generator1, + output2=generator2, + ) diff --git a/src/promptflow/tests/test_configs/eager_flows/stream_output/flow.dag.yaml b/src/promptflow/tests/test_configs/eager_flows/stream_output/flow.dag.yaml new file mode 100644 index 00000000000..c46b32fdc30 --- /dev/null +++ b/src/promptflow/tests/test_configs/eager_flows/stream_output/flow.dag.yaml @@ -0,0 +1 @@ +entry: stream_output:my_flow \ No newline at end of file diff --git a/src/promptflow/tests/test_configs/eager_flows/stream_output/stream_output.py b/src/promptflow/tests/test_configs/eager_flows/stream_output/stream_output.py new file mode 100644 index 00000000000..b2cfaae40b6 --- /dev/null +++ b/src/promptflow/tests/test_configs/eager_flows/stream_output/stream_output.py @@ -0,0 +1,8 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +import time +def my_flow(input_val: str = "gpt") -> str: + for c in "Hello world! ": + time.sleep(1) + yield c From 53dbf433861bf8acad61d744e72344f0d438b8e4 Mon Sep 17 00:00:00 2001 From: Zhengfei Wang <38847871+zhengfeiwang@users.noreply.github.com> Date: Wed, 13 Mar 2024 22:16:34 +0800 Subject: [PATCH 045/204] [tracing][bugfix] Empty eval line run when query with trace id (#2333) # Description This PR targets to fix the bug that when query with trace id, eval line run will be empty; add a test to guard and avoid regression. Also updates the UX bundle to support jump to eval run: **clickable in run tree view** ![image](https://github.com/microsoft/promptflow/assets/38847871/0eff8edf-d72d-446f-8c53-b5fbac29fe98) **jump to corresponding eval line run** ![image](https://github.com/microsoft/promptflow/assets/38847871/baa89da4-9f23-4c96-8a1e-47b657eaed43) # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --- .../{index-4cTGdARK.js => index-Rg6Z62xy.js} | 284 +++++++++--------- .../_sdk/_service/static/index.html | 2 +- .../promptflow/_sdk/entities/_trace.py | 12 +- .../_sdk/operations/_trace_operations.py | 5 +- .../tests/sdk_pfs_test/e2etests/test_trace.py | 16 +- src/promptflow/tests/sdk_pfs_test/utils.py | 10 +- 6 files changed, 177 insertions(+), 152 deletions(-) rename src/promptflow/promptflow/_sdk/_service/static/assets/{index-4cTGdARK.js => index-Rg6Z62xy.js} (62%) diff --git a/src/promptflow/promptflow/_sdk/_service/static/assets/index-4cTGdARK.js b/src/promptflow/promptflow/_sdk/_service/static/assets/index-Rg6Z62xy.js similarity index 62% rename from src/promptflow/promptflow/_sdk/_service/static/assets/index-4cTGdARK.js rename to src/promptflow/promptflow/_sdk/_service/static/assets/index-Rg6Z62xy.js index 3e1ef984ed0..eb8eae610b2 100644 --- a/src/promptflow/promptflow/_sdk/_service/static/assets/index-4cTGdARK.js +++ b/src/promptflow/promptflow/_sdk/_service/static/assets/index-Rg6Z62xy.js @@ -1,5 +1,5 @@ (function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode('@layer rdg.MeasuringCell{.m1l09lto7-0-0-beta-39{contain:strict;grid-row:1;visibility:hidden}}@layer rdg.Cell{.c1wupbe7-0-0-beta-39{position:relative;padding-block:0;padding-inline:8px;border-inline-end:1px solid var(--rdg-border-color);border-block-end:1px solid var(--rdg-border-color);grid-row-start:var(--rdg-grid-row-start);background-color:inherit;white-space:nowrap;overflow:clip;text-overflow:ellipsis;outline:none}.c1wupbe7-0-0-beta-39[aria-selected=true]{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.Cell{.cd0kgiy7-0-0-beta-39{position:sticky;z-index:1}}@layer rdg.Cell{.c1730fa47-0-0-beta-39{box-shadow:calc(2px * var(--rdg-sign)) 0 5px -2px #8888884d}}@layer rdg.CheckboxLabel{.c1hs68w07-0-0-beta-39{cursor:pointer;display:flex;align-items:center;justify-content:center;position:absolute;top:0;right:0;bottom:0;left:0;margin-inline-end:1px}}@layer rdg.CheckboxInput{.cojpd0n7-0-0-beta-39{all:unset}}@layer rdg.CheckboxIcon{.cwsfieb7-0-0-beta-39{content:"";inline-size:20px;block-size:20px;border:2px solid var(--rdg-border-color);background-color:var(--rdg-background-color)}.cojpd0n7-0-0-beta-39:checked+.cwsfieb7-0-0-beta-39{background-color:var(--rdg-checkbox-color);outline:4px solid var(--rdg-background-color);outline-offset:-6px}.cojpd0n7-0-0-beta-39:focus+.cwsfieb7-0-0-beta-39{border-color:var(--rdg-checkbox-focus-color)}}@layer rdg.CheckboxLabel{.c1fgadbl7-0-0-beta-39{cursor:default}.c1fgadbl7-0-0-beta-39 .cwsfieb7-0-0-beta-39{border-color:var(--rdg-checkbox-disabled-border-color);background-color:var(--rdg-checkbox-disabled-background-color)}}@layer rdg.GroupCellContent{.g1w3c5217-0-0-beta-39{outline:none}}@layer rdg.GroupCellCaret{.cm5tyhw7-0-0-beta-39{margin-inline-start:4px;stroke:currentColor;stroke-width:1.5px;fill:transparent;vertical-align:middle}.cm5tyhw7-0-0-beta-39>path{transition:d .1s}}@layer rdg.DragHandle{.cadd3bp7-0-0-beta-39{--rdg-drag-handle-size: 8px;z-index:0;cursor:move;inline-size:var(--rdg-drag-handle-size);block-size:var(--rdg-drag-handle-size);background-color:var(--rdg-selection-color);place-self:end}.cadd3bp7-0-0-beta-39:hover{--rdg-drag-handle-size: 16px;border:2px solid var(--rdg-selection-color);background-color:var(--rdg-background-color)}}@layer rdg.DragHandle{.ccmuez27-0-0-beta-39{z-index:1;position:sticky}}@layer rdg.EditCell{.c1tngyp17-0-0-beta-39{padding:0}}@layer rdg.SortableHeaderCell{.hizp7y17-0-0-beta-39{display:flex}}@layer rdg.SortableHeaderCellName{.h14cojrm7-0-0-beta-39{flex-grow:1;overflow:clip;text-overflow:ellipsis}}@layer rdg.HeaderCell{.celq7o97-0-0-beta-39{cursor:pointer}}@layer rdg.HeaderCell{.ceqw94e7-0-0-beta-39{touch-action:none}}@layer rdg.HeaderCell{.r12jy2ca7-0-0-beta-39{cursor:col-resize;position:absolute;inset-block-start:0;inset-inline-end:0;inset-block-end:0;inline-size:10px}}.c1j3os1p7-0-0-beta-39{opacity:.5}.c1ui3nad7-0-0-beta-39{background-color:var(--rdg-header-draggable-background-color)}@layer rdg.Row{.r1otpg647-0-0-beta-39{display:contents;line-height:var(--rdg-row-height);background-color:var(--rdg-background-color)}.r1otpg647-0-0-beta-39:hover{background-color:var(--rdg-row-hover-background-color)}.r1otpg647-0-0-beta-39[aria-selected=true]{background-color:var(--rdg-row-selected-background-color)}.r1otpg647-0-0-beta-39[aria-selected=true]:hover{background-color:var(--rdg-row-selected-hover-background-color)}}@layer rdg.FocusSink{.rel5gk27-0-0-beta-39{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.FocusSink{.r1qymf1z7-0-0-beta-39:before{content:"";display:inline-block;height:100%;position:sticky;inset-inline-start:0;border-inline-start:2px solid var(--rdg-selection-color)}}@layer rdg.HeaderRow{.h197vzie7-0-0-beta-39{display:contents;line-height:var(--rdg-header-row-height);background-color:var(--rdg-header-background-color);font-weight:700}.h197vzie7-0-0-beta-39>.c1wupbe7-0-0-beta-39{z-index:2;position:sticky}.h197vzie7-0-0-beta-39>.cd0kgiy7-0-0-beta-39{z-index:3}}@layer rdg.Cell{.ccpfvsn7-0-0-beta-39{background-color:#ccf}}@layer rdg.Cell{.c1bmg16t7-0-0-beta-39{background-color:#ccf}.c1bmg16t7-0-0-beta-39.ccpfvsn7-0-0-beta-39{background-color:#99f}}@layer rdg.SortIcon{.a1mygwml7-0-0-beta-39{fill:currentColor}.a1mygwml7-0-0-beta-39>path{transition:d .1s}}@layer rdg{@layer Defaults,FocusSink,CheckboxInput,CheckboxIcon,CheckboxLabel,Cell,HeaderCell,SummaryCell,EditCell,Row,HeaderRow,SummaryRow,GroupedRow,Root;@layer Defaults{.r104f42s7-0-0-beta-39 *,.r104f42s7-0-0-beta-39 *:before,.r104f42s7-0-0-beta-39 *:after{box-sizing:inherit}}@layer Root{.r104f42s7-0-0-beta-39{--rdg-color: #000;--rdg-border-color: #ddd;--rdg-summary-border-color: #aaa;--rdg-background-color: hsl(0deg 0% 100%);--rdg-header-background-color: hsl(0deg 0% 97.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 90.5%);--rdg-row-hover-background-color: hsl(0deg 0% 96%);--rdg-row-selected-background-color: hsl(207deg 76% 92%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 88%);--rdg-checkbox-color: hsl(207deg 100% 29%);--rdg-checkbox-focus-color: hsl(207deg 100% 69%);--rdg-checkbox-disabled-border-color: #ccc;--rdg-checkbox-disabled-background-color: #ddd;--rdg-selection-color: #66afe9;--rdg-font-size: 14px;display:grid;color-scheme:var(--rdg-color-scheme, light dark);contain:content;content-visibility:auto;block-size:350px;border:1px solid var(--rdg-border-color);box-sizing:border-box;overflow:auto;background-color:var(--rdg-background-color);color:var(--rdg-color);font-size:var(--rdg-font-size)}.r104f42s7-0-0-beta-39:before{content:"";grid-column:1/-1;grid-row:1/-1}.r104f42s7-0-0-beta-39.rdg-dark{--rdg-color-scheme: dark;--rdg-color: #ddd;--rdg-border-color: #444;--rdg-summary-border-color: #555;--rdg-background-color: hsl(0deg 0% 13%);--rdg-header-background-color: hsl(0deg 0% 10.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 17.5%);--rdg-row-hover-background-color: hsl(0deg 0% 9%);--rdg-row-selected-background-color: hsl(207deg 76% 42%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 38%);--rdg-checkbox-color: hsl(207deg 100% 79%);--rdg-checkbox-focus-color: hsl(207deg 100% 89%);--rdg-checkbox-disabled-border-color: #000;--rdg-checkbox-disabled-background-color: #333}.r104f42s7-0-0-beta-39.rdg-light{--rdg-color-scheme: light}@media (prefers-color-scheme: dark){.r104f42s7-0-0-beta-39:not(.rdg-light){--rdg-color: #ddd;--rdg-border-color: #444;--rdg-summary-border-color: #555;--rdg-background-color: hsl(0deg 0% 13%);--rdg-header-background-color: hsl(0deg 0% 10.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 17.5%);--rdg-row-hover-background-color: hsl(0deg 0% 9%);--rdg-row-selected-background-color: hsl(207deg 76% 42%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 38%);--rdg-checkbox-color: hsl(207deg 100% 79%);--rdg-checkbox-focus-color: hsl(207deg 100% 89%);--rdg-checkbox-disabled-border-color: #000;--rdg-checkbox-disabled-background-color: #333}}}}@layer rdg.Root{.v7ly7s7-0-0-beta-39{-webkit-user-select:none;user-select:none}.v7ly7s7-0-0-beta-39 .r1otpg647-0-0-beta-39{cursor:move}}@layer rdg.FocusSink{.fc4f4zb7-0-0-beta-39{grid-column:1/-1;pointer-events:none;z-index:1}}@layer rdg.FocusSink{.fq51q037-0-0-beta-39{z-index:3}}@layer rdg.SummaryCell{.s1n3hxke7-0-0-beta-39{inset-block-start:var(--rdg-summary-row-top);inset-block-end:var(--rdg-summary-row-bottom)}}@layer rdg.SummaryRow{.snfqesz7-0-0-beta-39{line-height:var(--rdg-summary-row-height)}.snfqesz7-0-0-beta-39>.c1wupbe7-0-0-beta-39{position:sticky}}@layer rdg.SummaryRow{.t1jijrjz7-0-0-beta-39>.c1wupbe7-0-0-beta-39{z-index:2}.t1jijrjz7-0-0-beta-39>.cd0kgiy7-0-0-beta-39{z-index:3}}@layer rdg.SummaryRow{.t14bmecc7-0-0-beta-39>.c1wupbe7-0-0-beta-39{border-block-end:2px solid var(--rdg-summary-border-color)}}@layer rdg.SummaryRow{.b1odhhml7-0-0-beta-39>.c1wupbe7-0-0-beta-39{border-block-start:2px solid var(--rdg-summary-border-color)}}@layer rdg.GroupedRow{.gyxx7e97-0-0-beta-39:not([aria-selected=true]){background-color:var(--rdg-header-background-color)}.gyxx7e97-0-0-beta-39>.c1wupbe7-0-0-beta-39:not(:last-child):not(.c1730fa47-0-0-beta-39){border-inline-end:none}}@layer rdg.TextEditor{.tlmcuo07-0-0-beta-39{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;inline-size:100%;block-size:100%;padding-block:0;padding-inline:6px;border:2px solid #ccc;vertical-align:top;color:var(--rdg-color);background-color:var(--rdg-background-color);font-family:inherit;font-size:var(--rdg-font-size)}.tlmcuo07-0-0-beta-39:focus{border-color:var(--rdg-selection-color);outline:none}.tlmcuo07-0-0-beta-39::placeholder{color:#999;opacity:1}}.json-view{display:block;color:#4d4d4d;text-align:left;--json-property: #009033;--json-index: #676dff;--json-number: #676dff;--json-string: #b2762e;--json-boolean: #dc155e;--json-null: #dc155e}.json-view .json-view--property{color:var(--json-property)}.json-view .json-view--index{color:var(--json-index)}.json-view .json-view--number{color:var(--json-number)}.json-view .json-view--string{color:var(--json-string)}.json-view .json-view--boolean{color:var(--json-boolean)}.json-view .json-view--null{color:var(--json-null)}.json-view .jv-indent{padding-left:1em}.json-view .jv-chevron{display:inline-block;vertical-align:-20%;cursor:pointer;opacity:.4;width:1em;height:1em}:is(.json-view .jv-chevron:hover,.json-view .jv-size:hover+.jv-chevron){opacity:.8}.json-view .jv-size{cursor:pointer;opacity:.4;font-size:.875em;font-style:italic;margin-left:.5em;vertical-align:-5%;line-height:1}.json-view :is(.json-view--copy,.json-view--edit),.json-view .json-view--link svg{display:none;width:1em;height:1em;margin-left:.25em;cursor:pointer}.json-view .json-view--input{width:120px;margin-left:.25em;border-radius:4px;border:1px solid currentColor;padding:0 4px;font-size:87.5%;line-height:1.25;background:transparent}.json-view .json-view--deleting{outline:1px solid #da0000;background-color:#da000011;text-decoration-line:line-through}:is(.json-view:hover,.json-view--pair:hover)>:is(.json-view--copy,.json-view--edit),:is(.json-view:hover,.json-view--pair:hover)>.json-view--link svg{display:inline-block}.json-view .jv-button{background:transparent;outline:none;border:none;cursor:pointer}.json-view .cursor-pointer{cursor:pointer}.json-view svg{vertical-align:-10%}.jv-size-chevron~svg{vertical-align:-16%}.json-view_a11y{color:#545454;--json-property: #aa5d00;--json-index: #007299;--json-number: #007299;--json-string: #008000;--json-boolean: #d91e18;--json-null: #d91e18}.json-view_github{color:#005cc5;--json-property: #005cc5;--json-index: #005cc5;--json-number: #005cc5;--json-string: #032f62;--json-boolean: #005cc5;--json-null: #005cc5}.json-view_vscode{color:#005cc5;--json-property: #0451a5;--json-index: #0000ff;--json-number: #0000ff;--json-string: #a31515;--json-boolean: #0000ff;--json-null: #0000ff}.json-view_atom{color:#383a42;--json-property: #e45649;--json-index: #986801;--json-number: #986801;--json-string: #50a14f;--json-boolean: #0184bc;--json-null: #0184bc}.json-view_winter-is-coming{color:#0431fa;--json-property: #3a9685;--json-index: #ae408b;--json-number: #ae408b;--json-string: #8123a9;--json-boolean: #0184bc;--json-null: #0184bc}:is(.dark .json-view,.dark.json-view){color:#d1d1d1;--json-property: #009033;--json-index: #5d75f2;--json-number: #5d75f2;--json-string: #c57e29;--json-boolean: #e4407b;--json-null: #e4407b}:is(.dark .json-view_a11y,.dark.json-view_a11y){color:#d1d1d1;--json-property: #ffd700;--json-index: #00e0e0;--json-number: #00e0e0;--json-string: #abe338;--json-boolean: #ffa07a;--json-null: #ffa07a}:is(.dark .json-view_github,.dark.json-view_github){color:#79b8ff;--json-property: #79b8ff;--json-index: #79b8ff;--json-number: #79b8ff;--json-string: #9ecbff;--json-boolean: #79b8ff;--json-null: #79b8ff}:is(.dark .json-view_vscode,.dark.json-view_vscode){color:orchid;--json-property: #9cdcfe;--json-index: #b5cea8;--json-number: #b5cea8;--json-string: #ce9178;--json-boolean: #569cd6;--json-null: #569cd6}:is(.dark .json-view_atom,.dark.json-view_atom){color:#abb2bf;--json-property: #e06c75;--json-index: #d19a66;--json-number: #d19a66;--json-string: #98c379;--json-boolean: #56b6c2;--json-null: #56b6c2}:is(.dark .json-view_winter-is-coming,.dark.json-view_winter-is-coming){color:#a7dbf7;--json-property: #91dacd;--json-index: #8dec95;--json-number: #8dec95;--json-string: #e0aff5;--json-boolean: #f29fd8;--json-null: #f29fd8}.json-view .json-view--string{word-break:break-all}')),document.head.appendChild(o)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); -var KS=Object.defineProperty;var VS=(j,_e,et)=>_e in j?KS(j,_e,{enumerable:!0,configurable:!0,writable:!0,value:et}):j[_e]=et;var qS=(j,_e)=>()=>(_e||j((_e={exports:{}}).exports,_e),_e.exports);var zr=(j,_e,et)=>(VS(j,typeof _e!="symbol"?_e+"":_e,et),et);var US=qS((exports,module)=>{function _mergeNamespaces(j,_e){for(var et=0;et<_e.length;et++){const tt=_e[et];if(typeof tt!="string"&&!Array.isArray(tt)){for(const rt in tt)if(rt!=="default"&&!(rt in j)){const nt=Object.getOwnPropertyDescriptor(tt,rt);nt&&Object.defineProperty(j,rt,nt.get?nt:{enumerable:!0,get:()=>tt[rt]})}}}return Object.freeze(Object.defineProperty(j,Symbol.toStringTag,{value:"Module"}))}(function(){const _e=document.createElement("link").relList;if(_e&&_e.supports&&_e.supports("modulepreload"))return;for(const rt of document.querySelectorAll('link[rel="modulepreload"]'))tt(rt);new MutationObserver(rt=>{for(const nt of rt)if(nt.type==="childList")for(const ot of nt.addedNodes)ot.tagName==="LINK"&&ot.rel==="modulepreload"&&tt(ot)}).observe(document,{childList:!0,subtree:!0});function et(rt){const nt={};return rt.integrity&&(nt.integrity=rt.integrity),rt.referrerPolicy&&(nt.referrerPolicy=rt.referrerPolicy),rt.crossOrigin==="use-credentials"?nt.credentials="include":rt.crossOrigin==="anonymous"?nt.credentials="omit":nt.credentials="same-origin",nt}function tt(rt){if(rt.ep)return;rt.ep=!0;const nt=et(rt);fetch(rt.href,nt)}})();var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(j){return j&&j.__esModule&&Object.prototype.hasOwnProperty.call(j,"default")?j.default:j}var jsxRuntime$1={exports:{}},reactJsxRuntime_production_min={},react={exports:{}},react_production_min={};/** +var WS=Object.defineProperty;var qS=(j,_e,et)=>_e in j?WS(j,_e,{enumerable:!0,configurable:!0,writable:!0,value:et}):j[_e]=et;var KS=(j,_e)=>()=>(_e||j((_e={exports:{}}).exports,_e),_e.exports);var Fr=(j,_e,et)=>(qS(j,typeof _e!="symbol"?_e+"":_e,et),et);var US=KS((exports,module)=>{function _mergeNamespaces(j,_e){for(var et=0;et<_e.length;et++){const tt=_e[et];if(typeof tt!="string"&&!Array.isArray(tt)){for(const rt in tt)if(rt!=="default"&&!(rt in j)){const nt=Object.getOwnPropertyDescriptor(tt,rt);nt&&Object.defineProperty(j,rt,nt.get?nt:{enumerable:!0,get:()=>tt[rt]})}}}return Object.freeze(Object.defineProperty(j,Symbol.toStringTag,{value:"Module"}))}(function(){const _e=document.createElement("link").relList;if(_e&&_e.supports&&_e.supports("modulepreload"))return;for(const rt of document.querySelectorAll('link[rel="modulepreload"]'))tt(rt);new MutationObserver(rt=>{for(const nt of rt)if(nt.type==="childList")for(const ot of nt.addedNodes)ot.tagName==="LINK"&&ot.rel==="modulepreload"&&tt(ot)}).observe(document,{childList:!0,subtree:!0});function et(rt){const nt={};return rt.integrity&&(nt.integrity=rt.integrity),rt.referrerPolicy&&(nt.referrerPolicy=rt.referrerPolicy),rt.crossOrigin==="use-credentials"?nt.credentials="include":rt.crossOrigin==="anonymous"?nt.credentials="omit":nt.credentials="same-origin",nt}function tt(rt){if(rt.ep)return;rt.ep=!0;const nt=et(rt);fetch(rt.href,nt)}})();var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(j){return j&&j.__esModule&&Object.prototype.hasOwnProperty.call(j,"default")?j.default:j}var jsxRuntime$1={exports:{}},reactJsxRuntime_production_min={},react={exports:{}},react_production_min={};/** * @license React * react.production.min.js * @@ -23,7 +23,7 @@ var KS=Object.defineProperty;var VS=(j,_e,et)=>_e in j?KS(j,_e,{enumerable:!0,co * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(j){function _e(jt,Gt){var Vt=jt.length;jt.push(Gt);e:for(;0>>1,Xt=jt[Yt];if(0>>1;Ytrt(vr,Vt))Trrt(gr,vr)?(jt[Yt]=gr,jt[Tr]=Vt,Yt=Tr):(jt[Yt]=vr,jt[cr]=Vt,Yt=cr);else if(Trrt(gr,Vt))jt[Yt]=gr,jt[Tr]=Vt,Yt=Tr;else break e}}return Gt}function rt(jt,Gt){var Vt=jt.sortIndex-Gt.sortIndex;return Vt!==0?Vt:jt.id-Gt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var nt=performance;j.unstable_now=function(){return nt.now()}}else{var ot=Date,it=ot.now();j.unstable_now=function(){return ot.now()-it}}var st=[],lt=[],ut=1,ct=null,dt=3,ft=!1,pt=!1,gt=!1,vt=typeof setTimeout=="function"?setTimeout:null,bt=typeof clearTimeout=="function"?clearTimeout:null,_t=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function xt(jt){for(var Gt=et(lt);Gt!==null;){if(Gt.callback===null)tt(lt);else if(Gt.startTime<=jt)tt(lt),Gt.sortIndex=Gt.expirationTime,_e(st,Gt);else break;Gt=et(lt)}}function yt(jt){if(gt=!1,xt(jt),!pt)if(et(st)!==null)pt=!0,Rt(Et);else{var Gt=et(lt);Gt!==null&&Lt(yt,Gt.startTime-jt)}}function Et(jt,Gt){pt=!1,gt&&(gt=!1,bt(At),At=-1),ft=!0;var Vt=dt;try{for(xt(Gt),ct=et(st);ct!==null&&(!(ct.expirationTime>Gt)||jt&&!It());){var Yt=ct.callback;if(typeof Yt=="function"){ct.callback=null,dt=ct.priorityLevel;var Xt=Yt(ct.expirationTime<=Gt);Gt=j.unstable_now(),typeof Xt=="function"?ct.callback=Xt:ct===et(st)&&tt(st),xt(Gt)}else tt(st);ct=et(st)}if(ct!==null)var rr=!0;else{var cr=et(lt);cr!==null&&Lt(yt,cr.startTime-Gt),rr=!1}return rr}finally{ct=null,dt=Vt,ft=!1}}var St=!1,$t=null,At=-1,wt=5,Ct=-1;function It(){return!(j.unstable_now()-Ctjt||125Yt?(jt.sortIndex=Vt,_e(lt,jt),et(st)===null&&jt===et(lt)&&(gt?(bt(At),At=-1):gt=!0,Lt(yt,Vt-Yt))):(jt.sortIndex=Xt,_e(st,jt),pt||ft||(pt=!0,Rt(Et))),jt},j.unstable_shouldYield=It,j.unstable_wrapCallback=function(jt){var Gt=dt;return function(){var Vt=dt;dt=Gt;try{return jt.apply(this,arguments)}finally{dt=Vt}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;var schedulerExports=scheduler.exports;/** + */(function(j){function _e(Pt,Gt){var qt=Pt.length;Pt.push(Gt);e:for(;0>>1,Xt=Pt[Yt];if(0>>1;Ytrt(mr,qt))Errt(hr,mr)?(Pt[Yt]=hr,Pt[Er]=qt,Yt=Er):(Pt[Yt]=mr,Pt[cr]=qt,Yt=cr);else if(Errt(hr,qt))Pt[Yt]=hr,Pt[Er]=qt,Yt=Er;else break e}}return Gt}function rt(Pt,Gt){var qt=Pt.sortIndex-Gt.sortIndex;return qt!==0?qt:Pt.id-Gt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var nt=performance;j.unstable_now=function(){return nt.now()}}else{var ot=Date,it=ot.now();j.unstable_now=function(){return ot.now()-it}}var st=[],lt=[],ut=1,ct=null,dt=3,ft=!1,pt=!1,gt=!1,mt=typeof setTimeout=="function"?setTimeout:null,bt=typeof clearTimeout=="function"?clearTimeout:null,_t=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function xt(Pt){for(var Gt=et(lt);Gt!==null;){if(Gt.callback===null)tt(lt);else if(Gt.startTime<=Pt)tt(lt),Gt.sortIndex=Gt.expirationTime,_e(st,Gt);else break;Gt=et(lt)}}function yt(Pt){if(gt=!1,xt(Pt),!pt)if(et(st)!==null)pt=!0,Rt(Et);else{var Gt=et(lt);Gt!==null&&Lt(yt,Gt.startTime-Pt)}}function Et(Pt,Gt){pt=!1,gt&&(gt=!1,bt(kt),kt=-1),ft=!0;var qt=dt;try{for(xt(Gt),ct=et(st);ct!==null&&(!(ct.expirationTime>Gt)||Pt&&!It());){var Yt=ct.callback;if(typeof Yt=="function"){ct.callback=null,dt=ct.priorityLevel;var Xt=Yt(ct.expirationTime<=Gt);Gt=j.unstable_now(),typeof Xt=="function"?ct.callback=Xt:ct===et(st)&&tt(st),xt(Gt)}else tt(st);ct=et(st)}if(ct!==null)var tr=!0;else{var cr=et(lt);cr!==null&&Lt(yt,cr.startTime-Gt),tr=!1}return tr}finally{ct=null,dt=qt,ft=!1}}var St=!1,Tt=null,kt=-1,$t=5,Ct=-1;function It(){return!(j.unstable_now()-Ct<$t)}function Nt(){if(Tt!==null){var Pt=j.unstable_now();Ct=Pt;var Gt=!0;try{Gt=Tt(!0,Pt)}finally{Gt?Ot():(St=!1,Tt=null)}}else St=!1}var Ot;if(typeof _t=="function")Ot=function(){_t(Nt)};else if(typeof MessageChannel<"u"){var jt=new MessageChannel,Mt=jt.port2;jt.port1.onmessage=Nt,Ot=function(){Mt.postMessage(null)}}else Ot=function(){mt(Nt,0)};function Rt(Pt){Tt=Pt,St||(St=!0,Ot())}function Lt(Pt,Gt){kt=mt(function(){Pt(j.unstable_now())},Gt)}j.unstable_IdlePriority=5,j.unstable_ImmediatePriority=1,j.unstable_LowPriority=4,j.unstable_NormalPriority=3,j.unstable_Profiling=null,j.unstable_UserBlockingPriority=2,j.unstable_cancelCallback=function(Pt){Pt.callback=null},j.unstable_continueExecution=function(){pt||ft||(pt=!0,Rt(Et))},j.unstable_forceFrameRate=function(Pt){0>Pt||125Yt?(Pt.sortIndex=qt,_e(lt,Pt),et(st)===null&&Pt===et(lt)&&(gt?(bt(kt),kt=-1):gt=!0,Lt(yt,qt-Yt))):(Pt.sortIndex=Xt,_e(st,Pt),pt||ft||(pt=!0,Rt(Et))),Pt},j.unstable_shouldYield=It,j.unstable_wrapCallback=function(Pt){var Gt=dt;return function(){var qt=dt;dt=Gt;try{return Pt.apply(this,arguments)}finally{dt=qt}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;var schedulerExports=scheduler.exports;/** * @license React * react-dom.production.min.js * @@ -35,12 +35,12 @@ var KS=Object.defineProperty;var VS=(j,_e,et)=>_e in j?KS(j,_e,{enumerable:!0,co `+La$1+j}var Na$1=!1;function Oa$1(j,_e){if(!j||Na$1)return"";Na$1=!0;var et=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(_e)if(_e=function(){throw Error()},Object.defineProperty(_e.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(_e,[])}catch(lt){var tt=lt}Reflect.construct(j,[],_e)}else{try{_e.call()}catch(lt){tt=lt}j.call(_e.prototype)}else{try{throw Error()}catch(lt){tt=lt}j()}}catch(lt){if(lt&&tt&&typeof lt.stack=="string"){for(var rt=lt.stack.split(` `),nt=tt.stack.split(` `),ot=rt.length-1,it=nt.length-1;1<=ot&&0<=it&&rt[ot]!==nt[it];)it--;for(;1<=ot&&0<=it;ot--,it--)if(rt[ot]!==nt[it]){if(ot!==1||it!==1)do if(ot--,it--,0>it||rt[ot]!==nt[it]){var st=` -`+rt[ot].replace(" at new "," at ");return j.displayName&&st.includes("")&&(st=st.replace("",j.displayName)),st}while(1<=ot&&0<=it);break}}}finally{Na$1=!1,Error.prepareStackTrace=et}return(j=j?j.displayName||j.name:"")?Ma$1(j):""}function Pa$1(j){switch(j.tag){case 5:return Ma$1(j.type);case 16:return Ma$1("Lazy");case 13:return Ma$1("Suspense");case 19:return Ma$1("SuspenseList");case 0:case 2:case 15:return j=Oa$1(j.type,!1),j;case 11:return j=Oa$1(j.type.render,!1),j;case 1:return j=Oa$1(j.type,!0),j;default:return""}}function Qa$1(j){if(j==null)return null;if(typeof j=="function")return j.displayName||j.name||null;if(typeof j=="string")return j;switch(j){case ya$1:return"Fragment";case wa$1:return"Portal";case Aa$1:return"Profiler";case za$1:return"StrictMode";case Ea:return"Suspense";case Fa:return"SuspenseList"}if(typeof j=="object")switch(j.$$typeof){case Ca$1:return(j.displayName||"Context")+".Consumer";case Ba$1:return(j._context.displayName||"Context")+".Provider";case Da$1:var _e=j.render;return j=j.displayName,j||(j=_e.displayName||_e.name||"",j=j!==""?"ForwardRef("+j+")":"ForwardRef"),j;case Ga$1:return _e=j.displayName||null,_e!==null?_e:Qa$1(j.type)||"Memo";case Ha$1:_e=j._payload,j=j._init;try{return Qa$1(j(_e))}catch{}}return null}function Ra$1(j){var _e=j.type;switch(j.tag){case 24:return"Cache";case 9:return(_e.displayName||"Context")+".Consumer";case 10:return(_e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return j=_e.render,j=j.displayName||j.name||"",_e.displayName||(j!==""?"ForwardRef("+j+")":"ForwardRef");case 7:return"Fragment";case 5:return _e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Qa$1(_e);case 8:return _e===za$1?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof _e=="function")return _e.displayName||_e.name||null;if(typeof _e=="string")return _e}return null}function Sa$1(j){switch(typeof j){case"boolean":case"number":case"string":case"undefined":return j;case"object":return j;default:return""}}function Ta$1(j){var _e=j.type;return(j=j.nodeName)&&j.toLowerCase()==="input"&&(_e==="checkbox"||_e==="radio")}function Ua(j){var _e=Ta$1(j)?"checked":"value",et=Object.getOwnPropertyDescriptor(j.constructor.prototype,_e),tt=""+j[_e];if(!j.hasOwnProperty(_e)&&typeof et<"u"&&typeof et.get=="function"&&typeof et.set=="function"){var rt=et.get,nt=et.set;return Object.defineProperty(j,_e,{configurable:!0,get:function(){return rt.call(this)},set:function(ot){tt=""+ot,nt.call(this,ot)}}),Object.defineProperty(j,_e,{enumerable:et.enumerable}),{getValue:function(){return tt},setValue:function(ot){tt=""+ot},stopTracking:function(){j._valueTracker=null,delete j[_e]}}}}function Va$1(j){j._valueTracker||(j._valueTracker=Ua(j))}function Wa$1(j){if(!j)return!1;var _e=j._valueTracker;if(!_e)return!0;var et=_e.getValue(),tt="";return j&&(tt=Ta$1(j)?j.checked?"true":"false":j.value),j=tt,j!==et?(_e.setValue(j),!0):!1}function Xa$1(j){if(j=j||(typeof document<"u"?document:void 0),typeof j>"u")return null;try{return j.activeElement||j.body}catch{return j.body}}function Ya$1(j,_e){var et=_e.checked;return A$4({},_e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:et??j._wrapperState.initialChecked})}function Za$1(j,_e){var et=_e.defaultValue==null?"":_e.defaultValue,tt=_e.checked!=null?_e.checked:_e.defaultChecked;et=Sa$1(_e.value!=null?_e.value:et),j._wrapperState={initialChecked:tt,initialValue:et,controlled:_e.type==="checkbox"||_e.type==="radio"?_e.checked!=null:_e.value!=null}}function ab$1(j,_e){_e=_e.checked,_e!=null&&ta$1(j,"checked",_e,!1)}function bb$1(j,_e){ab$1(j,_e);var et=Sa$1(_e.value),tt=_e.type;if(et!=null)tt==="number"?(et===0&&j.value===""||j.value!=et)&&(j.value=""+et):j.value!==""+et&&(j.value=""+et);else if(tt==="submit"||tt==="reset"){j.removeAttribute("value");return}_e.hasOwnProperty("value")?cb$1(j,_e.type,et):_e.hasOwnProperty("defaultValue")&&cb$1(j,_e.type,Sa$1(_e.defaultValue)),_e.checked==null&&_e.defaultChecked!=null&&(j.defaultChecked=!!_e.defaultChecked)}function db$1(j,_e,et){if(_e.hasOwnProperty("value")||_e.hasOwnProperty("defaultValue")){var tt=_e.type;if(!(tt!=="submit"&&tt!=="reset"||_e.value!==void 0&&_e.value!==null))return;_e=""+j._wrapperState.initialValue,et||_e===j.value||(j.value=_e),j.defaultValue=_e}et=j.name,et!==""&&(j.name=""),j.defaultChecked=!!j._wrapperState.initialChecked,et!==""&&(j.name=et)}function cb$1(j,_e,et){(_e!=="number"||Xa$1(j.ownerDocument)!==j)&&(et==null?j.defaultValue=""+j._wrapperState.initialValue:j.defaultValue!==""+et&&(j.defaultValue=""+et))}var eb$1=Array.isArray;function fb$1(j,_e,et,tt){if(j=j.options,_e){_e={};for(var rt=0;rt"+_e.valueOf().toString()+"",_e=mb$1.firstChild;j.firstChild;)j.removeChild(j.firstChild);for(;_e.firstChild;)j.appendChild(_e.firstChild)}});function ob$1(j,_e){if(_e){var et=j.firstChild;if(et&&et===j.lastChild&&et.nodeType===3){et.nodeValue=_e;return}}j.textContent=_e}var pb$1={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb$1=["Webkit","ms","Moz","O"];Object.keys(pb$1).forEach(function(j){qb$1.forEach(function(_e){_e=_e+j.charAt(0).toUpperCase()+j.substring(1),pb$1[_e]=pb$1[j]})});function rb$1(j,_e,et){return _e==null||typeof _e=="boolean"||_e===""?"":et||typeof _e!="number"||_e===0||pb$1.hasOwnProperty(j)&&pb$1[j]?(""+_e).trim():_e+"px"}function sb$1(j,_e){j=j.style;for(var et in _e)if(_e.hasOwnProperty(et)){var tt=et.indexOf("--")===0,rt=rb$1(et,_e[et],tt);et==="float"&&(et="cssFloat"),tt?j.setProperty(et,rt):j[et]=rt}}var tb$1=A$4({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ub$1(j,_e){if(_e){if(tb$1[j]&&(_e.children!=null||_e.dangerouslySetInnerHTML!=null))throw Error(p$a(137,j));if(_e.dangerouslySetInnerHTML!=null){if(_e.children!=null)throw Error(p$a(60));if(typeof _e.dangerouslySetInnerHTML!="object"||!("__html"in _e.dangerouslySetInnerHTML))throw Error(p$a(61))}if(_e.style!=null&&typeof _e.style!="object")throw Error(p$a(62))}}function vb$1(j,_e){if(j.indexOf("-")===-1)return typeof _e.is=="string";switch(j){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wb$1=null;function xb$1(j){return j=j.target||j.srcElement||window,j.correspondingUseElement&&(j=j.correspondingUseElement),j.nodeType===3?j.parentNode:j}var yb$1=null,zb$1=null,Ab$1=null;function Bb$1(j){if(j=Cb$1(j)){if(typeof yb$1!="function")throw Error(p$a(280));var _e=j.stateNode;_e&&(_e=Db$1(_e),yb$1(j.stateNode,j.type,_e))}}function Eb$1(j){zb$1?Ab$1?Ab$1.push(j):Ab$1=[j]:zb$1=j}function Fb$1(){if(zb$1){var j=zb$1,_e=Ab$1;if(Ab$1=zb$1=null,Bb$1(j),_e)for(j=0;j<_e.length;j++)Bb$1(_e[j])}}function Gb$1(j,_e){return j(_e)}function Hb$1(){}var Ib$1=!1;function Jb$1(j,_e,et){if(Ib$1)return j(_e,et);Ib$1=!0;try{return Gb$1(j,_e,et)}finally{Ib$1=!1,(zb$1!==null||Ab$1!==null)&&(Hb$1(),Fb$1())}}function Kb$1(j,_e){var et=j.stateNode;if(et===null)return null;var tt=Db$1(et);if(tt===null)return null;et=tt[_e];e:switch(_e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(tt=!tt.disabled)||(j=j.type,tt=!(j==="button"||j==="input"||j==="select"||j==="textarea")),j=!tt;break e;default:j=!1}if(j)return null;if(et&&typeof et!="function")throw Error(p$a(231,_e,typeof et));return et}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,"passive",{get:function(){Lb=!0}}),window.addEventListener("test",Mb,Mb),window.removeEventListener("test",Mb,Mb)}catch{Lb=!1}function Nb(j,_e,et,tt,rt,nt,ot,it,st){var lt=Array.prototype.slice.call(arguments,3);try{_e.apply(et,lt)}catch(ut){this.onError(ut)}}var Ob=!1,Pb=null,Qb=!1,Rb$1=null,Sb$1={onError:function(j){Ob=!0,Pb=j}};function Tb$1(j,_e,et,tt,rt,nt,ot,it,st){Ob=!1,Pb=null,Nb.apply(Sb$1,arguments)}function Ub$1(j,_e,et,tt,rt,nt,ot,it,st){if(Tb$1.apply(this,arguments),Ob){if(Ob){var lt=Pb;Ob=!1,Pb=null}else throw Error(p$a(198));Qb||(Qb=!0,Rb$1=lt)}}function Vb$1(j){var _e=j,et=j;if(j.alternate)for(;_e.return;)_e=_e.return;else{j=_e;do _e=j,_e.flags&4098&&(et=_e.return),j=_e.return;while(j)}return _e.tag===3?et:null}function Wb$1(j){if(j.tag===13){var _e=j.memoizedState;if(_e===null&&(j=j.alternate,j!==null&&(_e=j.memoizedState)),_e!==null)return _e.dehydrated}return null}function Xb$1(j){if(Vb$1(j)!==j)throw Error(p$a(188))}function Yb$1(j){var _e=j.alternate;if(!_e){if(_e=Vb$1(j),_e===null)throw Error(p$a(188));return _e!==j?null:j}for(var et=j,tt=_e;;){var rt=et.return;if(rt===null)break;var nt=rt.alternate;if(nt===null){if(tt=rt.return,tt!==null){et=tt;continue}break}if(rt.child===nt.child){for(nt=rt.child;nt;){if(nt===et)return Xb$1(rt),j;if(nt===tt)return Xb$1(rt),_e;nt=nt.sibling}throw Error(p$a(188))}if(et.return!==tt.return)et=rt,tt=nt;else{for(var ot=!1,it=rt.child;it;){if(it===et){ot=!0,et=rt,tt=nt;break}if(it===tt){ot=!0,tt=rt,et=nt;break}it=it.sibling}if(!ot){for(it=nt.child;it;){if(it===et){ot=!0,et=nt,tt=rt;break}if(it===tt){ot=!0,tt=nt,et=rt;break}it=it.sibling}if(!ot)throw Error(p$a(189))}}if(et.alternate!==tt)throw Error(p$a(190))}if(et.tag!==3)throw Error(p$a(188));return et.stateNode.current===et?j:_e}function Zb$1(j){return j=Yb$1(j),j!==null?$b$1(j):null}function $b$1(j){if(j.tag===5||j.tag===6)return j;for(j=j.child;j!==null;){var _e=$b$1(j);if(_e!==null)return _e;j=j.sibling}return null}var ac$1=ca$1.unstable_scheduleCallback,bc$1=ca$1.unstable_cancelCallback,cc$1=ca$1.unstable_shouldYield,dc$1=ca$1.unstable_requestPaint,B$6=ca$1.unstable_now,ec$1=ca$1.unstable_getCurrentPriorityLevel,fc$1=ca$1.unstable_ImmediatePriority,gc$1=ca$1.unstable_UserBlockingPriority,hc$1=ca$1.unstable_NormalPriority,ic$1=ca$1.unstable_LowPriority,jc$1=ca$1.unstable_IdlePriority,kc$1=null,lc$1=null;function mc$1(j){if(lc$1&&typeof lc$1.onCommitFiberRoot=="function")try{lc$1.onCommitFiberRoot(kc$1,j,void 0,(j.current.flags&128)===128)}catch{}}var oc$1=Math.clz32?Math.clz32:nc$1,pc$1=Math.log,qc$1=Math.LN2;function nc$1(j){return j>>>=0,j===0?32:31-(pc$1(j)/qc$1|0)|0}var rc$1=64,sc$1=4194304;function tc$1(j){switch(j&-j){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return j&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return j&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return j}}function uc$1(j,_e){var et=j.pendingLanes;if(et===0)return 0;var tt=0,rt=j.suspendedLanes,nt=j.pingedLanes,ot=et&268435455;if(ot!==0){var it=ot&~rt;it!==0?tt=tc$1(it):(nt&=ot,nt!==0&&(tt=tc$1(nt)))}else ot=et&~rt,ot!==0?tt=tc$1(ot):nt!==0&&(tt=tc$1(nt));if(tt===0)return 0;if(_e!==0&&_e!==tt&&!(_e&rt)&&(rt=tt&-tt,nt=_e&-_e,rt>=nt||rt===16&&(nt&4194240)!==0))return _e;if(tt&4&&(tt|=et&16),_e=j.entangledLanes,_e!==0)for(j=j.entanglements,_e&=tt;0<_e;)et=31-oc$1(_e),rt=1<et;et++)_e.push(j);return _e}function Ac$1(j,_e,et){j.pendingLanes|=_e,_e!==536870912&&(j.suspendedLanes=0,j.pingedLanes=0),j=j.eventTimes,_e=31-oc$1(_e),j[_e]=et}function Bc$1(j,_e){var et=j.pendingLanes&~_e;j.pendingLanes=_e,j.suspendedLanes=0,j.pingedLanes=0,j.expiredLanes&=_e,j.mutableReadLanes&=_e,j.entangledLanes&=_e,_e=j.entanglements;var tt=j.eventTimes;for(j=j.expirationTimes;0=be$2),ee$2=" ",fe$2=!1;function ge$1(j,_e){switch(j){case"keyup":return $d$1.indexOf(_e.keyCode)!==-1;case"keydown":return _e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function he$2(j){return j=j.detail,typeof j=="object"&&"data"in j?j.data:null}var ie$2=!1;function je$1(j,_e){switch(j){case"compositionend":return he$2(_e);case"keypress":return _e.which!==32?null:(fe$2=!0,ee$2);case"textInput":return j=_e.data,j===ee$2&&fe$2?null:j;default:return null}}function ke$1(j,_e){if(ie$2)return j==="compositionend"||!ae$2&&ge$1(j,_e)?(j=nd$1(),md$1=ld$1=kd$1=null,ie$2=!1,j):null;switch(j){case"paste":return null;case"keypress":if(!(_e.ctrlKey||_e.altKey||_e.metaKey)||_e.ctrlKey&&_e.altKey){if(_e.char&&1<_e.char.length)return _e.char;if(_e.which)return String.fromCharCode(_e.which)}return null;case"compositionend":return de$2&&_e.locale!=="ko"?null:_e.data;default:return null}}var le$2={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me$1(j){var _e=j&&j.nodeName&&j.nodeName.toLowerCase();return _e==="input"?!!le$2[j.type]:_e==="textarea"}function ne$1(j,_e,et,tt){Eb$1(tt),_e=oe$1(_e,"onChange"),0<_e.length&&(et=new td$1("onChange","change",null,et,tt),j.push({event:et,listeners:_e}))}var pe$1=null,qe$1=null;function re$3(j){se$2(j,0)}function te$2(j){var _e=ue$1(j);if(Wa$1(_e))return j}function ve$1(j,_e){if(j==="change")return _e}var we=!1;if(ia){var xe;if(ia){var ye="oninput"in document;if(!ye){var ze=document.createElement("div");ze.setAttribute("oninput","return;"),ye=typeof ze.oninput=="function"}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9=_e)return{node:et,offset:_e-j};j=tt}e:{for(;et;){if(et.nextSibling){et=et.nextSibling;break e}et=et.parentNode}et=void 0}et=Je$1(et)}}function Le$1(j,_e){return j&&_e?j===_e?!0:j&&j.nodeType===3?!1:_e&&_e.nodeType===3?Le$1(j,_e.parentNode):"contains"in j?j.contains(_e):j.compareDocumentPosition?!!(j.compareDocumentPosition(_e)&16):!1:!1}function Me$2(){for(var j=window,_e=Xa$1();_e instanceof j.HTMLIFrameElement;){try{var et=typeof _e.contentWindow.location.href=="string"}catch{et=!1}if(et)j=_e.contentWindow;else break;_e=Xa$1(j.document)}return _e}function Ne$1(j){var _e=j&&j.nodeName&&j.nodeName.toLowerCase();return _e&&(_e==="input"&&(j.type==="text"||j.type==="search"||j.type==="tel"||j.type==="url"||j.type==="password")||_e==="textarea"||j.contentEditable==="true")}function Oe$2(j){var _e=Me$2(),et=j.focusedElem,tt=j.selectionRange;if(_e!==et&&et&&et.ownerDocument&&Le$1(et.ownerDocument.documentElement,et)){if(tt!==null&&Ne$1(et)){if(_e=tt.start,j=tt.end,j===void 0&&(j=_e),"selectionStart"in et)et.selectionStart=_e,et.selectionEnd=Math.min(j,et.value.length);else if(j=(_e=et.ownerDocument||document)&&_e.defaultView||window,j.getSelection){j=j.getSelection();var rt=et.textContent.length,nt=Math.min(tt.start,rt);tt=tt.end===void 0?nt:Math.min(tt.end,rt),!j.extend&&nt>tt&&(rt=tt,tt=nt,nt=rt),rt=Ke$1(et,nt);var ot=Ke$1(et,tt);rt&&ot&&(j.rangeCount!==1||j.anchorNode!==rt.node||j.anchorOffset!==rt.offset||j.focusNode!==ot.node||j.focusOffset!==ot.offset)&&(_e=_e.createRange(),_e.setStart(rt.node,rt.offset),j.removeAllRanges(),nt>tt?(j.addRange(_e),j.extend(ot.node,ot.offset)):(_e.setEnd(ot.node,ot.offset),j.addRange(_e)))}}for(_e=[],j=et;j=j.parentNode;)j.nodeType===1&&_e.push({element:j,left:j.scrollLeft,top:j.scrollTop});for(typeof et.focus=="function"&&et.focus(),et=0;et<_e.length;et++)j=_e[et],j.element.scrollLeft=j.left,j.element.scrollTop=j.top}}var Pe$1=ia&&"documentMode"in document&&11>=document.documentMode,Qe$1=null,Re$1=null,Se$1=null,Te$1=!1;function Ue$1(j,_e,et){var tt=et.window===et?et.document:et.nodeType===9?et:et.ownerDocument;Te$1||Qe$1==null||Qe$1!==Xa$1(tt)||(tt=Qe$1,"selectionStart"in tt&&Ne$1(tt)?tt={start:tt.selectionStart,end:tt.selectionEnd}:(tt=(tt.ownerDocument&&tt.ownerDocument.defaultView||window).getSelection(),tt={anchorNode:tt.anchorNode,anchorOffset:tt.anchorOffset,focusNode:tt.focusNode,focusOffset:tt.focusOffset}),Se$1&&Ie$1(Se$1,tt)||(Se$1=tt,tt=oe$1(Re$1,"onSelect"),0Tf||(j.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G$4(j,_e){Tf++,Sf[Tf]=j.current,j.current=_e}var Vf={},H$4=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(j,_e){var et=j.type.contextTypes;if(!et)return Vf;var tt=j.stateNode;if(tt&&tt.__reactInternalMemoizedUnmaskedChildContext===_e)return tt.__reactInternalMemoizedMaskedChildContext;var rt={},nt;for(nt in et)rt[nt]=_e[nt];return tt&&(j=j.stateNode,j.__reactInternalMemoizedUnmaskedChildContext=_e,j.__reactInternalMemoizedMaskedChildContext=rt),rt}function Zf(j){return j=j.childContextTypes,j!=null}function $f(){E$4(Wf),E$4(H$4)}function ag(j,_e,et){if(H$4.current!==Vf)throw Error(p$a(168));G$4(H$4,_e),G$4(Wf,et)}function bg(j,_e,et){var tt=j.stateNode;if(_e=_e.childContextTypes,typeof tt.getChildContext!="function")return et;tt=tt.getChildContext();for(var rt in tt)if(!(rt in _e))throw Error(p$a(108,Ra$1(j)||"Unknown",rt));return A$4({},et,tt)}function cg(j){return j=(j=j.stateNode)&&j.__reactInternalMemoizedMergedChildContext||Vf,Xf=H$4.current,G$4(H$4,j),G$4(Wf,Wf.current),!0}function dg(j,_e,et){var tt=j.stateNode;if(!tt)throw Error(p$a(169));et?(j=bg(j,_e,Xf),tt.__reactInternalMemoizedMergedChildContext=j,E$4(Wf),E$4(H$4),G$4(H$4,j)):E$4(Wf),G$4(Wf,et)}var eg=null,fg=!1,gg=!1;function hg(j){eg===null?eg=[j]:eg.push(j)}function ig(j){fg=!0,hg(j)}function jg(){if(!gg&&eg!==null){gg=!0;var j=0,_e=C$6;try{var et=eg;for(C$6=1;j>=ot,rt-=ot,rg=1<<32-oc$1(_e)+rt|et<At?(wt=$t,$t=null):wt=$t.sibling;var Ct=dt(bt,$t,xt[At],yt);if(Ct===null){$t===null&&($t=wt);break}j&&$t&&Ct.alternate===null&&_e(bt,$t),_t=nt(Ct,_t,At),St===null?Et=Ct:St.sibling=Ct,St=Ct,$t=wt}if(At===xt.length)return et(bt,$t),I$2&&tg(bt,At),Et;if($t===null){for(;AtAt?(wt=$t,$t=null):wt=$t.sibling;var It=dt(bt,$t,Ct.value,yt);if(It===null){$t===null&&($t=wt);break}j&&$t&&It.alternate===null&&_e(bt,$t),_t=nt(It,_t,At),St===null?Et=It:St.sibling=It,St=It,$t=wt}if(Ct.done)return et(bt,$t),I$2&&tg(bt,At),Et;if($t===null){for(;!Ct.done;At++,Ct=xt.next())Ct=ct(bt,Ct.value,yt),Ct!==null&&(_t=nt(Ct,_t,At),St===null?Et=Ct:St.sibling=Ct,St=Ct);return I$2&&tg(bt,At),Et}for($t=tt(bt,$t);!Ct.done;At++,Ct=xt.next())Ct=ft($t,bt,At,Ct.value,yt),Ct!==null&&(j&&Ct.alternate!==null&&$t.delete(Ct.key===null?At:Ct.key),_t=nt(Ct,_t,At),St===null?Et=Ct:St.sibling=Ct,St=Ct);return j&&$t.forEach(function(Ot){return _e(bt,Ot)}),I$2&&tg(bt,At),Et}function vt(bt,_t,xt,yt){if(typeof xt=="object"&&xt!==null&&xt.type===ya$1&&xt.key===null&&(xt=xt.props.children),typeof xt=="object"&&xt!==null){switch(xt.$$typeof){case va$1:e:{for(var Et=xt.key,St=_t;St!==null;){if(St.key===Et){if(Et=xt.type,Et===ya$1){if(St.tag===7){et(bt,St.sibling),_t=rt(St,xt.props.children),_t.return=bt,bt=_t;break e}}else if(St.elementType===Et||typeof Et=="object"&&Et!==null&&Et.$$typeof===Ha$1&&uh(Et)===St.type){et(bt,St.sibling),_t=rt(St,xt.props),_t.ref=sh(bt,St,xt),_t.return=bt,bt=_t;break e}et(bt,St);break}else _e(bt,St);St=St.sibling}xt.type===ya$1?(_t=Ah(xt.props.children,bt.mode,yt,xt.key),_t.return=bt,bt=_t):(yt=yh(xt.type,xt.key,xt.props,null,bt.mode,yt),yt.ref=sh(bt,_t,xt),yt.return=bt,bt=yt)}return ot(bt);case wa$1:e:{for(St=xt.key;_t!==null;){if(_t.key===St)if(_t.tag===4&&_t.stateNode.containerInfo===xt.containerInfo&&_t.stateNode.implementation===xt.implementation){et(bt,_t.sibling),_t=rt(_t,xt.children||[]),_t.return=bt,bt=_t;break e}else{et(bt,_t);break}else _e(bt,_t);_t=_t.sibling}_t=zh(xt,bt.mode,yt),_t.return=bt,bt=_t}return ot(bt);case Ha$1:return St=xt._init,vt(bt,_t,St(xt._payload),yt)}if(eb$1(xt))return pt(bt,_t,xt,yt);if(Ka$1(xt))return gt(bt,_t,xt,yt);th(bt,xt)}return typeof xt=="string"&&xt!==""||typeof xt=="number"?(xt=""+xt,_t!==null&&_t.tag===6?(et(bt,_t.sibling),_t=rt(_t,xt),_t.return=bt,bt=_t):(et(bt,_t),_t=xh(xt,bt.mode,yt),_t.return=bt,bt=_t),ot(bt)):et(bt,_t)}return vt}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(j){if(j===Dh)throw Error(p$a(174));return j}function Ih(j,_e){switch(G$4(Gh,_e),G$4(Fh,j),G$4(Eh,Dh),j=_e.nodeType,j){case 9:case 11:_e=(_e=_e.documentElement)?_e.namespaceURI:lb$1(null,"");break;default:j=j===8?_e.parentNode:_e,_e=j.namespaceURI||null,j=j.tagName,_e=lb$1(_e,j)}E$4(Eh),G$4(Eh,_e)}function Jh(){E$4(Eh),E$4(Fh),E$4(Gh)}function Kh(j){Hh(Gh.current);var _e=Hh(Eh.current),et=lb$1(_e,j.type);_e!==et&&(G$4(Fh,j),G$4(Eh,et))}function Lh(j){Fh.current===j&&(E$4(Eh),E$4(Fh))}var M$1=Uf(0);function Mh(j){for(var _e=j;_e!==null;){if(_e.tag===13){var et=_e.memoizedState;if(et!==null&&(et=et.dehydrated,et===null||et.data==="$?"||et.data==="$!"))return _e}else if(_e.tag===19&&_e.memoizedProps.revealOrder!==void 0){if(_e.flags&128)return _e}else if(_e.child!==null){_e.child.return=_e,_e=_e.child;continue}if(_e===j)break;for(;_e.sibling===null;){if(_e.return===null||_e.return===j)return null;_e=_e.return}_e.sibling.return=_e.return,_e=_e.sibling}return null}var Nh=[];function Oh(){for(var j=0;jet?et:4,j(!0);var tt=Qh.transition;Qh.transition={};try{j(!1),_e()}finally{C$6=et,Qh.transition=tt}}function Fi(){return di().memoizedState}function Gi(j,_e,et){var tt=lh(j);if(et={lane:tt,action:et,hasEagerState:!1,eagerState:null,next:null},Hi(j))Ii(_e,et);else if(et=Yg(j,_e,et,tt),et!==null){var rt=L$1();mh(et,j,tt,rt),Ji(et,_e,tt)}}function ri(j,_e,et){var tt=lh(j),rt={lane:tt,action:et,hasEagerState:!1,eagerState:null,next:null};if(Hi(j))Ii(_e,rt);else{var nt=j.alternate;if(j.lanes===0&&(nt===null||nt.lanes===0)&&(nt=_e.lastRenderedReducer,nt!==null))try{var ot=_e.lastRenderedState,it=nt(ot,et);if(rt.hasEagerState=!0,rt.eagerState=it,He$2(it,ot)){var st=_e.interleaved;st===null?(rt.next=rt,Xg(_e)):(rt.next=st.next,st.next=rt),_e.interleaved=rt;return}}catch{}finally{}et=Yg(j,_e,rt,tt),et!==null&&(rt=L$1(),mh(et,j,tt,rt),Ji(et,_e,tt))}}function Hi(j){var _e=j.alternate;return j===N$1||_e!==null&&_e===N$1}function Ii(j,_e){Th$1=Sh=!0;var et=j.pending;et===null?_e.next=_e:(_e.next=et.next,et.next=_e),j.pending=_e}function Ji(j,_e,et){if(et&4194240){var tt=_e.lanes;tt&=j.pendingLanes,et|=tt,_e.lanes=et,Cc$1(j,et)}}var ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(j,_e){return ci().memoizedState=[j,_e===void 0?null:_e],j},useContext:Vg,useEffect:vi,useImperativeHandle:function(j,_e,et){return et=et!=null?et.concat([j]):null,ti(4194308,4,yi.bind(null,_e,j),et)},useLayoutEffect:function(j,_e){return ti(4194308,4,j,_e)},useInsertionEffect:function(j,_e){return ti(4,2,j,_e)},useMemo:function(j,_e){var et=ci();return _e=_e===void 0?null:_e,j=j(),et.memoizedState=[j,_e],j},useReducer:function(j,_e,et){var tt=ci();return _e=et!==void 0?et(_e):_e,tt.memoizedState=tt.baseState=_e,j={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:j,lastRenderedState:_e},tt.queue=j,j=j.dispatch=Gi.bind(null,N$1,j),[tt.memoizedState,j]},useRef:function(j){var _e=ci();return j={current:j},_e.memoizedState=j},useState:qi,useDebugValue:Ai,useDeferredValue:function(j){return ci().memoizedState=j},useTransition:function(){var j=qi(!1),_e=j[0];return j=Ei.bind(null,j[1]),ci().memoizedState=j,[_e,j]},useMutableSource:function(){},useSyncExternalStore:function(j,_e,et){var tt=N$1,rt=ci();if(I$2){if(et===void 0)throw Error(p$a(407));et=et()}else{if(et=_e(),R$1===null)throw Error(p$a(349));Rh&30||ni(tt,_e,et)}rt.memoizedState=et;var nt={value:et,getSnapshot:_e};return rt.queue=nt,vi(ki.bind(null,tt,nt,j),[j]),tt.flags|=2048,li(9,mi.bind(null,tt,nt,et,_e),void 0,null),et},useId:function(){var j=ci(),_e=R$1.identifierPrefix;if(I$2){var et=sg,tt=rg;et=(tt&~(1<<32-oc$1(tt)-1)).toString(32)+et,_e=":"+_e+"R"+et,et=Uh++,0")&&(st=st.replace("",j.displayName)),st}while(1<=ot&&0<=it);break}}}finally{Na$1=!1,Error.prepareStackTrace=et}return(j=j?j.displayName||j.name:"")?Ma$1(j):""}function Pa$1(j){switch(j.tag){case 5:return Ma$1(j.type);case 16:return Ma$1("Lazy");case 13:return Ma$1("Suspense");case 19:return Ma$1("SuspenseList");case 0:case 2:case 15:return j=Oa$1(j.type,!1),j;case 11:return j=Oa$1(j.type.render,!1),j;case 1:return j=Oa$1(j.type,!0),j;default:return""}}function Qa$1(j){if(j==null)return null;if(typeof j=="function")return j.displayName||j.name||null;if(typeof j=="string")return j;switch(j){case ya$1:return"Fragment";case wa$1:return"Portal";case Aa$1:return"Profiler";case za$1:return"StrictMode";case Ea:return"Suspense";case Fa:return"SuspenseList"}if(typeof j=="object")switch(j.$$typeof){case Ca$1:return(j.displayName||"Context")+".Consumer";case Ba$1:return(j._context.displayName||"Context")+".Provider";case Da$1:var _e=j.render;return j=j.displayName,j||(j=_e.displayName||_e.name||"",j=j!==""?"ForwardRef("+j+")":"ForwardRef"),j;case Ga$1:return _e=j.displayName||null,_e!==null?_e:Qa$1(j.type)||"Memo";case Ha$1:_e=j._payload,j=j._init;try{return Qa$1(j(_e))}catch{}}return null}function Ra$1(j){var _e=j.type;switch(j.tag){case 24:return"Cache";case 9:return(_e.displayName||"Context")+".Consumer";case 10:return(_e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return j=_e.render,j=j.displayName||j.name||"",_e.displayName||(j!==""?"ForwardRef("+j+")":"ForwardRef");case 7:return"Fragment";case 5:return _e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Qa$1(_e);case 8:return _e===za$1?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof _e=="function")return _e.displayName||_e.name||null;if(typeof _e=="string")return _e}return null}function Sa$1(j){switch(typeof j){case"boolean":case"number":case"string":case"undefined":return j;case"object":return j;default:return""}}function Ta$1(j){var _e=j.type;return(j=j.nodeName)&&j.toLowerCase()==="input"&&(_e==="checkbox"||_e==="radio")}function Ua(j){var _e=Ta$1(j)?"checked":"value",et=Object.getOwnPropertyDescriptor(j.constructor.prototype,_e),tt=""+j[_e];if(!j.hasOwnProperty(_e)&&typeof et<"u"&&typeof et.get=="function"&&typeof et.set=="function"){var rt=et.get,nt=et.set;return Object.defineProperty(j,_e,{configurable:!0,get:function(){return rt.call(this)},set:function(ot){tt=""+ot,nt.call(this,ot)}}),Object.defineProperty(j,_e,{enumerable:et.enumerable}),{getValue:function(){return tt},setValue:function(ot){tt=""+ot},stopTracking:function(){j._valueTracker=null,delete j[_e]}}}}function Va$1(j){j._valueTracker||(j._valueTracker=Ua(j))}function Wa$1(j){if(!j)return!1;var _e=j._valueTracker;if(!_e)return!0;var et=_e.getValue(),tt="";return j&&(tt=Ta$1(j)?j.checked?"true":"false":j.value),j=tt,j!==et?(_e.setValue(j),!0):!1}function Xa$1(j){if(j=j||(typeof document<"u"?document:void 0),typeof j>"u")return null;try{return j.activeElement||j.body}catch{return j.body}}function Ya$1(j,_e){var et=_e.checked;return A$4({},_e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:et??j._wrapperState.initialChecked})}function Za$1(j,_e){var et=_e.defaultValue==null?"":_e.defaultValue,tt=_e.checked!=null?_e.checked:_e.defaultChecked;et=Sa$1(_e.value!=null?_e.value:et),j._wrapperState={initialChecked:tt,initialValue:et,controlled:_e.type==="checkbox"||_e.type==="radio"?_e.checked!=null:_e.value!=null}}function ab$1(j,_e){_e=_e.checked,_e!=null&&ta$1(j,"checked",_e,!1)}function bb$1(j,_e){ab$1(j,_e);var et=Sa$1(_e.value),tt=_e.type;if(et!=null)tt==="number"?(et===0&&j.value===""||j.value!=et)&&(j.value=""+et):j.value!==""+et&&(j.value=""+et);else if(tt==="submit"||tt==="reset"){j.removeAttribute("value");return}_e.hasOwnProperty("value")?cb$1(j,_e.type,et):_e.hasOwnProperty("defaultValue")&&cb$1(j,_e.type,Sa$1(_e.defaultValue)),_e.checked==null&&_e.defaultChecked!=null&&(j.defaultChecked=!!_e.defaultChecked)}function db$1(j,_e,et){if(_e.hasOwnProperty("value")||_e.hasOwnProperty("defaultValue")){var tt=_e.type;if(!(tt!=="submit"&&tt!=="reset"||_e.value!==void 0&&_e.value!==null))return;_e=""+j._wrapperState.initialValue,et||_e===j.value||(j.value=_e),j.defaultValue=_e}et=j.name,et!==""&&(j.name=""),j.defaultChecked=!!j._wrapperState.initialChecked,et!==""&&(j.name=et)}function cb$1(j,_e,et){(_e!=="number"||Xa$1(j.ownerDocument)!==j)&&(et==null?j.defaultValue=""+j._wrapperState.initialValue:j.defaultValue!==""+et&&(j.defaultValue=""+et))}var eb$1=Array.isArray;function fb$1(j,_e,et,tt){if(j=j.options,_e){_e={};for(var rt=0;rt"+_e.valueOf().toString()+"",_e=mb$1.firstChild;j.firstChild;)j.removeChild(j.firstChild);for(;_e.firstChild;)j.appendChild(_e.firstChild)}});function ob$1(j,_e){if(_e){var et=j.firstChild;if(et&&et===j.lastChild&&et.nodeType===3){et.nodeValue=_e;return}}j.textContent=_e}var pb$1={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb$1=["Webkit","ms","Moz","O"];Object.keys(pb$1).forEach(function(j){qb$1.forEach(function(_e){_e=_e+j.charAt(0).toUpperCase()+j.substring(1),pb$1[_e]=pb$1[j]})});function rb$1(j,_e,et){return _e==null||typeof _e=="boolean"||_e===""?"":et||typeof _e!="number"||_e===0||pb$1.hasOwnProperty(j)&&pb$1[j]?(""+_e).trim():_e+"px"}function sb$1(j,_e){j=j.style;for(var et in _e)if(_e.hasOwnProperty(et)){var tt=et.indexOf("--")===0,rt=rb$1(et,_e[et],tt);et==="float"&&(et="cssFloat"),tt?j.setProperty(et,rt):j[et]=rt}}var tb$1=A$4({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ub$1(j,_e){if(_e){if(tb$1[j]&&(_e.children!=null||_e.dangerouslySetInnerHTML!=null))throw Error(p$a(137,j));if(_e.dangerouslySetInnerHTML!=null){if(_e.children!=null)throw Error(p$a(60));if(typeof _e.dangerouslySetInnerHTML!="object"||!("__html"in _e.dangerouslySetInnerHTML))throw Error(p$a(61))}if(_e.style!=null&&typeof _e.style!="object")throw Error(p$a(62))}}function vb$1(j,_e){if(j.indexOf("-")===-1)return typeof _e.is=="string";switch(j){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wb$1=null;function xb$1(j){return j=j.target||j.srcElement||window,j.correspondingUseElement&&(j=j.correspondingUseElement),j.nodeType===3?j.parentNode:j}var yb$1=null,zb$1=null,Ab$1=null;function Bb$1(j){if(j=Cb$1(j)){if(typeof yb$1!="function")throw Error(p$a(280));var _e=j.stateNode;_e&&(_e=Db$1(_e),yb$1(j.stateNode,j.type,_e))}}function Eb$1(j){zb$1?Ab$1?Ab$1.push(j):Ab$1=[j]:zb$1=j}function Fb$1(){if(zb$1){var j=zb$1,_e=Ab$1;if(Ab$1=zb$1=null,Bb$1(j),_e)for(j=0;j<_e.length;j++)Bb$1(_e[j])}}function Gb$1(j,_e){return j(_e)}function Hb$1(){}var Ib$1=!1;function Jb$1(j,_e,et){if(Ib$1)return j(_e,et);Ib$1=!0;try{return Gb$1(j,_e,et)}finally{Ib$1=!1,(zb$1!==null||Ab$1!==null)&&(Hb$1(),Fb$1())}}function Kb$1(j,_e){var et=j.stateNode;if(et===null)return null;var tt=Db$1(et);if(tt===null)return null;et=tt[_e];e:switch(_e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(tt=!tt.disabled)||(j=j.type,tt=!(j==="button"||j==="input"||j==="select"||j==="textarea")),j=!tt;break e;default:j=!1}if(j)return null;if(et&&typeof et!="function")throw Error(p$a(231,_e,typeof et));return et}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,"passive",{get:function(){Lb=!0}}),window.addEventListener("test",Mb,Mb),window.removeEventListener("test",Mb,Mb)}catch{Lb=!1}function Nb(j,_e,et,tt,rt,nt,ot,it,st){var lt=Array.prototype.slice.call(arguments,3);try{_e.apply(et,lt)}catch(ut){this.onError(ut)}}var Ob=!1,Pb=null,Qb=!1,Rb$1=null,Sb$1={onError:function(j){Ob=!0,Pb=j}};function Tb$1(j,_e,et,tt,rt,nt,ot,it,st){Ob=!1,Pb=null,Nb.apply(Sb$1,arguments)}function Ub$1(j,_e,et,tt,rt,nt,ot,it,st){if(Tb$1.apply(this,arguments),Ob){if(Ob){var lt=Pb;Ob=!1,Pb=null}else throw Error(p$a(198));Qb||(Qb=!0,Rb$1=lt)}}function Vb$1(j){var _e=j,et=j;if(j.alternate)for(;_e.return;)_e=_e.return;else{j=_e;do _e=j,_e.flags&4098&&(et=_e.return),j=_e.return;while(j)}return _e.tag===3?et:null}function Wb$1(j){if(j.tag===13){var _e=j.memoizedState;if(_e===null&&(j=j.alternate,j!==null&&(_e=j.memoizedState)),_e!==null)return _e.dehydrated}return null}function Xb$1(j){if(Vb$1(j)!==j)throw Error(p$a(188))}function Yb$1(j){var _e=j.alternate;if(!_e){if(_e=Vb$1(j),_e===null)throw Error(p$a(188));return _e!==j?null:j}for(var et=j,tt=_e;;){var rt=et.return;if(rt===null)break;var nt=rt.alternate;if(nt===null){if(tt=rt.return,tt!==null){et=tt;continue}break}if(rt.child===nt.child){for(nt=rt.child;nt;){if(nt===et)return Xb$1(rt),j;if(nt===tt)return Xb$1(rt),_e;nt=nt.sibling}throw Error(p$a(188))}if(et.return!==tt.return)et=rt,tt=nt;else{for(var ot=!1,it=rt.child;it;){if(it===et){ot=!0,et=rt,tt=nt;break}if(it===tt){ot=!0,tt=rt,et=nt;break}it=it.sibling}if(!ot){for(it=nt.child;it;){if(it===et){ot=!0,et=nt,tt=rt;break}if(it===tt){ot=!0,tt=nt,et=rt;break}it=it.sibling}if(!ot)throw Error(p$a(189))}}if(et.alternate!==tt)throw Error(p$a(190))}if(et.tag!==3)throw Error(p$a(188));return et.stateNode.current===et?j:_e}function Zb$1(j){return j=Yb$1(j),j!==null?$b$1(j):null}function $b$1(j){if(j.tag===5||j.tag===6)return j;for(j=j.child;j!==null;){var _e=$b$1(j);if(_e!==null)return _e;j=j.sibling}return null}var ac$1=ca$1.unstable_scheduleCallback,bc$1=ca$1.unstable_cancelCallback,cc$1=ca$1.unstable_shouldYield,dc$1=ca$1.unstable_requestPaint,B$6=ca$1.unstable_now,ec$1=ca$1.unstable_getCurrentPriorityLevel,fc$1=ca$1.unstable_ImmediatePriority,gc$1=ca$1.unstable_UserBlockingPriority,hc$1=ca$1.unstable_NormalPriority,ic$1=ca$1.unstable_LowPriority,jc$1=ca$1.unstable_IdlePriority,kc$1=null,lc$1=null;function mc$1(j){if(lc$1&&typeof lc$1.onCommitFiberRoot=="function")try{lc$1.onCommitFiberRoot(kc$1,j,void 0,(j.current.flags&128)===128)}catch{}}var oc$1=Math.clz32?Math.clz32:nc$1,pc$1=Math.log,qc$1=Math.LN2;function nc$1(j){return j>>>=0,j===0?32:31-(pc$1(j)/qc$1|0)|0}var rc$1=64,sc$1=4194304;function tc$1(j){switch(j&-j){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return j&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return j&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return j}}function uc$1(j,_e){var et=j.pendingLanes;if(et===0)return 0;var tt=0,rt=j.suspendedLanes,nt=j.pingedLanes,ot=et&268435455;if(ot!==0){var it=ot&~rt;it!==0?tt=tc$1(it):(nt&=ot,nt!==0&&(tt=tc$1(nt)))}else ot=et&~rt,ot!==0?tt=tc$1(ot):nt!==0&&(tt=tc$1(nt));if(tt===0)return 0;if(_e!==0&&_e!==tt&&!(_e&rt)&&(rt=tt&-tt,nt=_e&-_e,rt>=nt||rt===16&&(nt&4194240)!==0))return _e;if(tt&4&&(tt|=et&16),_e=j.entangledLanes,_e!==0)for(j=j.entanglements,_e&=tt;0<_e;)et=31-oc$1(_e),rt=1<et;et++)_e.push(j);return _e}function Ac$1(j,_e,et){j.pendingLanes|=_e,_e!==536870912&&(j.suspendedLanes=0,j.pingedLanes=0),j=j.eventTimes,_e=31-oc$1(_e),j[_e]=et}function Bc$1(j,_e){var et=j.pendingLanes&~_e;j.pendingLanes=_e,j.suspendedLanes=0,j.pingedLanes=0,j.expiredLanes&=_e,j.mutableReadLanes&=_e,j.entangledLanes&=_e,_e=j.entanglements;var tt=j.eventTimes;for(j=j.expirationTimes;0=be$2),ee$2=" ",fe$2=!1;function ge$1(j,_e){switch(j){case"keyup":return $d$1.indexOf(_e.keyCode)!==-1;case"keydown":return _e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function he$2(j){return j=j.detail,typeof j=="object"&&"data"in j?j.data:null}var ie$2=!1;function je$1(j,_e){switch(j){case"compositionend":return he$2(_e);case"keypress":return _e.which!==32?null:(fe$2=!0,ee$2);case"textInput":return j=_e.data,j===ee$2&&fe$2?null:j;default:return null}}function ke$1(j,_e){if(ie$2)return j==="compositionend"||!ae$2&&ge$1(j,_e)?(j=nd$1(),md$1=ld$1=kd$1=null,ie$2=!1,j):null;switch(j){case"paste":return null;case"keypress":if(!(_e.ctrlKey||_e.altKey||_e.metaKey)||_e.ctrlKey&&_e.altKey){if(_e.char&&1<_e.char.length)return _e.char;if(_e.which)return String.fromCharCode(_e.which)}return null;case"compositionend":return de$2&&_e.locale!=="ko"?null:_e.data;default:return null}}var le$2={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me$1(j){var _e=j&&j.nodeName&&j.nodeName.toLowerCase();return _e==="input"?!!le$2[j.type]:_e==="textarea"}function ne$1(j,_e,et,tt){Eb$1(tt),_e=oe$1(_e,"onChange"),0<_e.length&&(et=new td$1("onChange","change",null,et,tt),j.push({event:et,listeners:_e}))}var pe$1=null,qe$1=null;function re$3(j){se$2(j,0)}function te$2(j){var _e=ue$1(j);if(Wa$1(_e))return j}function ve$1(j,_e){if(j==="change")return _e}var we=!1;if(ia){var xe;if(ia){var ye="oninput"in document;if(!ye){var ze=document.createElement("div");ze.setAttribute("oninput","return;"),ye=typeof ze.oninput=="function"}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9=_e)return{node:et,offset:_e-j};j=tt}e:{for(;et;){if(et.nextSibling){et=et.nextSibling;break e}et=et.parentNode}et=void 0}et=Je$1(et)}}function Le$1(j,_e){return j&&_e?j===_e?!0:j&&j.nodeType===3?!1:_e&&_e.nodeType===3?Le$1(j,_e.parentNode):"contains"in j?j.contains(_e):j.compareDocumentPosition?!!(j.compareDocumentPosition(_e)&16):!1:!1}function Me$2(){for(var j=window,_e=Xa$1();_e instanceof j.HTMLIFrameElement;){try{var et=typeof _e.contentWindow.location.href=="string"}catch{et=!1}if(et)j=_e.contentWindow;else break;_e=Xa$1(j.document)}return _e}function Ne$1(j){var _e=j&&j.nodeName&&j.nodeName.toLowerCase();return _e&&(_e==="input"&&(j.type==="text"||j.type==="search"||j.type==="tel"||j.type==="url"||j.type==="password")||_e==="textarea"||j.contentEditable==="true")}function Oe$2(j){var _e=Me$2(),et=j.focusedElem,tt=j.selectionRange;if(_e!==et&&et&&et.ownerDocument&&Le$1(et.ownerDocument.documentElement,et)){if(tt!==null&&Ne$1(et)){if(_e=tt.start,j=tt.end,j===void 0&&(j=_e),"selectionStart"in et)et.selectionStart=_e,et.selectionEnd=Math.min(j,et.value.length);else if(j=(_e=et.ownerDocument||document)&&_e.defaultView||window,j.getSelection){j=j.getSelection();var rt=et.textContent.length,nt=Math.min(tt.start,rt);tt=tt.end===void 0?nt:Math.min(tt.end,rt),!j.extend&&nt>tt&&(rt=tt,tt=nt,nt=rt),rt=Ke$1(et,nt);var ot=Ke$1(et,tt);rt&&ot&&(j.rangeCount!==1||j.anchorNode!==rt.node||j.anchorOffset!==rt.offset||j.focusNode!==ot.node||j.focusOffset!==ot.offset)&&(_e=_e.createRange(),_e.setStart(rt.node,rt.offset),j.removeAllRanges(),nt>tt?(j.addRange(_e),j.extend(ot.node,ot.offset)):(_e.setEnd(ot.node,ot.offset),j.addRange(_e)))}}for(_e=[],j=et;j=j.parentNode;)j.nodeType===1&&_e.push({element:j,left:j.scrollLeft,top:j.scrollTop});for(typeof et.focus=="function"&&et.focus(),et=0;et<_e.length;et++)j=_e[et],j.element.scrollLeft=j.left,j.element.scrollTop=j.top}}var Pe$1=ia&&"documentMode"in document&&11>=document.documentMode,Qe$1=null,Re$1=null,Se$1=null,Te$1=!1;function Ue$1(j,_e,et){var tt=et.window===et?et.document:et.nodeType===9?et:et.ownerDocument;Te$1||Qe$1==null||Qe$1!==Xa$1(tt)||(tt=Qe$1,"selectionStart"in tt&&Ne$1(tt)?tt={start:tt.selectionStart,end:tt.selectionEnd}:(tt=(tt.ownerDocument&&tt.ownerDocument.defaultView||window).getSelection(),tt={anchorNode:tt.anchorNode,anchorOffset:tt.anchorOffset,focusNode:tt.focusNode,focusOffset:tt.focusOffset}),Se$1&&Ie$1(Se$1,tt)||(Se$1=tt,tt=oe$1(Re$1,"onSelect"),0Tf||(j.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G$4(j,_e){Tf++,Sf[Tf]=j.current,j.current=_e}var Vf={},H$4=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(j,_e){var et=j.type.contextTypes;if(!et)return Vf;var tt=j.stateNode;if(tt&&tt.__reactInternalMemoizedUnmaskedChildContext===_e)return tt.__reactInternalMemoizedMaskedChildContext;var rt={},nt;for(nt in et)rt[nt]=_e[nt];return tt&&(j=j.stateNode,j.__reactInternalMemoizedUnmaskedChildContext=_e,j.__reactInternalMemoizedMaskedChildContext=rt),rt}function Zf(j){return j=j.childContextTypes,j!=null}function $f(){E$4(Wf),E$4(H$4)}function ag(j,_e,et){if(H$4.current!==Vf)throw Error(p$a(168));G$4(H$4,_e),G$4(Wf,et)}function bg(j,_e,et){var tt=j.stateNode;if(_e=_e.childContextTypes,typeof tt.getChildContext!="function")return et;tt=tt.getChildContext();for(var rt in tt)if(!(rt in _e))throw Error(p$a(108,Ra$1(j)||"Unknown",rt));return A$4({},et,tt)}function cg(j){return j=(j=j.stateNode)&&j.__reactInternalMemoizedMergedChildContext||Vf,Xf=H$4.current,G$4(H$4,j),G$4(Wf,Wf.current),!0}function dg(j,_e,et){var tt=j.stateNode;if(!tt)throw Error(p$a(169));et?(j=bg(j,_e,Xf),tt.__reactInternalMemoizedMergedChildContext=j,E$4(Wf),E$4(H$4),G$4(H$4,j)):E$4(Wf),G$4(Wf,et)}var eg=null,fg=!1,gg=!1;function hg(j){eg===null?eg=[j]:eg.push(j)}function ig(j){fg=!0,hg(j)}function jg(){if(!gg&&eg!==null){gg=!0;var j=0,_e=C$6;try{var et=eg;for(C$6=1;j>=ot,rt-=ot,rg=1<<32-oc$1(_e)+rt|et<kt?($t=Tt,Tt=null):$t=Tt.sibling;var Ct=dt(bt,Tt,xt[kt],yt);if(Ct===null){Tt===null&&(Tt=$t);break}j&&Tt&&Ct.alternate===null&&_e(bt,Tt),_t=nt(Ct,_t,kt),St===null?Et=Ct:St.sibling=Ct,St=Ct,Tt=$t}if(kt===xt.length)return et(bt,Tt),I$2&&tg(bt,kt),Et;if(Tt===null){for(;ktkt?($t=Tt,Tt=null):$t=Tt.sibling;var It=dt(bt,Tt,Ct.value,yt);if(It===null){Tt===null&&(Tt=$t);break}j&&Tt&&It.alternate===null&&_e(bt,Tt),_t=nt(It,_t,kt),St===null?Et=It:St.sibling=It,St=It,Tt=$t}if(Ct.done)return et(bt,Tt),I$2&&tg(bt,kt),Et;if(Tt===null){for(;!Ct.done;kt++,Ct=xt.next())Ct=ct(bt,Ct.value,yt),Ct!==null&&(_t=nt(Ct,_t,kt),St===null?Et=Ct:St.sibling=Ct,St=Ct);return I$2&&tg(bt,kt),Et}for(Tt=tt(bt,Tt);!Ct.done;kt++,Ct=xt.next())Ct=ft(Tt,bt,kt,Ct.value,yt),Ct!==null&&(j&&Ct.alternate!==null&&Tt.delete(Ct.key===null?kt:Ct.key),_t=nt(Ct,_t,kt),St===null?Et=Ct:St.sibling=Ct,St=Ct);return j&&Tt.forEach(function(Nt){return _e(bt,Nt)}),I$2&&tg(bt,kt),Et}function mt(bt,_t,xt,yt){if(typeof xt=="object"&&xt!==null&&xt.type===ya$1&&xt.key===null&&(xt=xt.props.children),typeof xt=="object"&&xt!==null){switch(xt.$$typeof){case va$1:e:{for(var Et=xt.key,St=_t;St!==null;){if(St.key===Et){if(Et=xt.type,Et===ya$1){if(St.tag===7){et(bt,St.sibling),_t=rt(St,xt.props.children),_t.return=bt,bt=_t;break e}}else if(St.elementType===Et||typeof Et=="object"&&Et!==null&&Et.$$typeof===Ha$1&&uh(Et)===St.type){et(bt,St.sibling),_t=rt(St,xt.props),_t.ref=sh(bt,St,xt),_t.return=bt,bt=_t;break e}et(bt,St);break}else _e(bt,St);St=St.sibling}xt.type===ya$1?(_t=Ah(xt.props.children,bt.mode,yt,xt.key),_t.return=bt,bt=_t):(yt=yh(xt.type,xt.key,xt.props,null,bt.mode,yt),yt.ref=sh(bt,_t,xt),yt.return=bt,bt=yt)}return ot(bt);case wa$1:e:{for(St=xt.key;_t!==null;){if(_t.key===St)if(_t.tag===4&&_t.stateNode.containerInfo===xt.containerInfo&&_t.stateNode.implementation===xt.implementation){et(bt,_t.sibling),_t=rt(_t,xt.children||[]),_t.return=bt,bt=_t;break e}else{et(bt,_t);break}else _e(bt,_t);_t=_t.sibling}_t=zh(xt,bt.mode,yt),_t.return=bt,bt=_t}return ot(bt);case Ha$1:return St=xt._init,mt(bt,_t,St(xt._payload),yt)}if(eb$1(xt))return pt(bt,_t,xt,yt);if(Ka$1(xt))return gt(bt,_t,xt,yt);th(bt,xt)}return typeof xt=="string"&&xt!==""||typeof xt=="number"?(xt=""+xt,_t!==null&&_t.tag===6?(et(bt,_t.sibling),_t=rt(_t,xt),_t.return=bt,bt=_t):(et(bt,_t),_t=xh(xt,bt.mode,yt),_t.return=bt,bt=_t),ot(bt)):et(bt,_t)}return mt}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(j){if(j===Dh)throw Error(p$a(174));return j}function Ih(j,_e){switch(G$4(Gh,_e),G$4(Fh,j),G$4(Eh,Dh),j=_e.nodeType,j){case 9:case 11:_e=(_e=_e.documentElement)?_e.namespaceURI:lb$1(null,"");break;default:j=j===8?_e.parentNode:_e,_e=j.namespaceURI||null,j=j.tagName,_e=lb$1(_e,j)}E$4(Eh),G$4(Eh,_e)}function Jh(){E$4(Eh),E$4(Fh),E$4(Gh)}function Kh(j){Hh(Gh.current);var _e=Hh(Eh.current),et=lb$1(_e,j.type);_e!==et&&(G$4(Fh,j),G$4(Eh,et))}function Lh(j){Fh.current===j&&(E$4(Eh),E$4(Fh))}var M$1=Uf(0);function Mh(j){for(var _e=j;_e!==null;){if(_e.tag===13){var et=_e.memoizedState;if(et!==null&&(et=et.dehydrated,et===null||et.data==="$?"||et.data==="$!"))return _e}else if(_e.tag===19&&_e.memoizedProps.revealOrder!==void 0){if(_e.flags&128)return _e}else if(_e.child!==null){_e.child.return=_e,_e=_e.child;continue}if(_e===j)break;for(;_e.sibling===null;){if(_e.return===null||_e.return===j)return null;_e=_e.return}_e.sibling.return=_e.return,_e=_e.sibling}return null}var Nh=[];function Oh(){for(var j=0;jet?et:4,j(!0);var tt=Qh.transition;Qh.transition={};try{j(!1),_e()}finally{C$6=et,Qh.transition=tt}}function Fi(){return di().memoizedState}function Gi(j,_e,et){var tt=lh(j);if(et={lane:tt,action:et,hasEagerState:!1,eagerState:null,next:null},Hi(j))Ii(_e,et);else if(et=Yg(j,_e,et,tt),et!==null){var rt=L$1();mh(et,j,tt,rt),Ji(et,_e,tt)}}function ri(j,_e,et){var tt=lh(j),rt={lane:tt,action:et,hasEagerState:!1,eagerState:null,next:null};if(Hi(j))Ii(_e,rt);else{var nt=j.alternate;if(j.lanes===0&&(nt===null||nt.lanes===0)&&(nt=_e.lastRenderedReducer,nt!==null))try{var ot=_e.lastRenderedState,it=nt(ot,et);if(rt.hasEagerState=!0,rt.eagerState=it,He$2(it,ot)){var st=_e.interleaved;st===null?(rt.next=rt,Xg(_e)):(rt.next=st.next,st.next=rt),_e.interleaved=rt;return}}catch{}finally{}et=Yg(j,_e,rt,tt),et!==null&&(rt=L$1(),mh(et,j,tt,rt),Ji(et,_e,tt))}}function Hi(j){var _e=j.alternate;return j===N$1||_e!==null&&_e===N$1}function Ii(j,_e){Th$1=Sh=!0;var et=j.pending;et===null?_e.next=_e:(_e.next=et.next,et.next=_e),j.pending=_e}function Ji(j,_e,et){if(et&4194240){var tt=_e.lanes;tt&=j.pendingLanes,et|=tt,_e.lanes=et,Cc$1(j,et)}}var ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(j,_e){return ci().memoizedState=[j,_e===void 0?null:_e],j},useContext:Vg,useEffect:vi,useImperativeHandle:function(j,_e,et){return et=et!=null?et.concat([j]):null,ti(4194308,4,yi.bind(null,_e,j),et)},useLayoutEffect:function(j,_e){return ti(4194308,4,j,_e)},useInsertionEffect:function(j,_e){return ti(4,2,j,_e)},useMemo:function(j,_e){var et=ci();return _e=_e===void 0?null:_e,j=j(),et.memoizedState=[j,_e],j},useReducer:function(j,_e,et){var tt=ci();return _e=et!==void 0?et(_e):_e,tt.memoizedState=tt.baseState=_e,j={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:j,lastRenderedState:_e},tt.queue=j,j=j.dispatch=Gi.bind(null,N$1,j),[tt.memoizedState,j]},useRef:function(j){var _e=ci();return j={current:j},_e.memoizedState=j},useState:qi,useDebugValue:Ai,useDeferredValue:function(j){return ci().memoizedState=j},useTransition:function(){var j=qi(!1),_e=j[0];return j=Ei.bind(null,j[1]),ci().memoizedState=j,[_e,j]},useMutableSource:function(){},useSyncExternalStore:function(j,_e,et){var tt=N$1,rt=ci();if(I$2){if(et===void 0)throw Error(p$a(407));et=et()}else{if(et=_e(),R$1===null)throw Error(p$a(349));Rh&30||ni(tt,_e,et)}rt.memoizedState=et;var nt={value:et,getSnapshot:_e};return rt.queue=nt,vi(ki.bind(null,tt,nt,j),[j]),tt.flags|=2048,li(9,mi.bind(null,tt,nt,et,_e),void 0,null),et},useId:function(){var j=ci(),_e=R$1.identifierPrefix;if(I$2){var et=sg,tt=rg;et=(tt&~(1<<32-oc$1(tt)-1)).toString(32)+et,_e=":"+_e+"R"+et,et=Uh++,0<\/script>",j=j.removeChild(j.firstChild)):typeof tt.is=="string"?j=ot.createElement(et,{is:tt.is}):(j=ot.createElement(et),et==="select"&&(ot=j,tt.multiple?ot.multiple=!0:tt.size&&(ot.size=tt.size))):j=ot.createElementNS(j,et),j[Of]=_e,j[Pf]=tt,Aj(j,_e,!1,!1),_e.stateNode=j;e:{switch(ot=vb$1(et,tt),et){case"dialog":D$4("cancel",j),D$4("close",j),rt=tt;break;case"iframe":case"object":case"embed":D$4("load",j),rt=tt;break;case"video":case"audio":for(rt=0;rtHj&&(_e.flags|=128,tt=!0,Ej(nt,!1),_e.lanes=4194304)}else{if(!tt)if(j=Mh(ot),j!==null){if(_e.flags|=128,tt=!0,et=j.updateQueue,et!==null&&(_e.updateQueue=et,_e.flags|=4),Ej(nt,!0),nt.tail===null&&nt.tailMode==="hidden"&&!ot.alternate&&!I$2)return S$1(_e),null}else 2*B$6()-nt.renderingStartTime>Hj&&et!==1073741824&&(_e.flags|=128,tt=!0,Ej(nt,!1),_e.lanes=4194304);nt.isBackwards?(ot.sibling=_e.child,_e.child=ot):(et=nt.last,et!==null?et.sibling=ot:_e.child=ot,nt.last=ot)}return nt.tail!==null?(_e=nt.tail,nt.rendering=_e,nt.tail=_e.sibling,nt.renderingStartTime=B$6(),_e.sibling=null,et=M$1.current,G$4(M$1,tt?et&1|2:et&1),_e):(S$1(_e),null);case 22:case 23:return Ij(),tt=_e.memoizedState!==null,j!==null&&j.memoizedState!==null!==tt&&(_e.flags|=8192),tt&&_e.mode&1?gj&1073741824&&(S$1(_e),_e.subtreeFlags&6&&(_e.flags|=8192)):S$1(_e),null;case 24:return null;case 25:return null}throw Error(p$a(156,_e.tag))}function Jj(j,_e){switch(wg(_e),_e.tag){case 1:return Zf(_e.type)&&$f(),j=_e.flags,j&65536?(_e.flags=j&-65537|128,_e):null;case 3:return Jh(),E$4(Wf),E$4(H$4),Oh(),j=_e.flags,j&65536&&!(j&128)?(_e.flags=j&-65537|128,_e):null;case 5:return Lh(_e),null;case 13:if(E$4(M$1),j=_e.memoizedState,j!==null&&j.dehydrated!==null){if(_e.alternate===null)throw Error(p$a(340));Ig()}return j=_e.flags,j&65536?(_e.flags=j&-65537|128,_e):null;case 19:return E$4(M$1),null;case 4:return Jh(),null;case 10:return Rg(_e.type._context),null;case 22:case 23:return Ij(),null;case 24:return null;default:return null}}var Kj=!1,U$1=!1,Lj=typeof WeakSet=="function"?WeakSet:Set,V=null;function Mj(j,_e){var et=j.ref;if(et!==null)if(typeof et=="function")try{et(null)}catch(tt){W(j,_e,tt)}else et.current=null}function Nj(j,_e,et){try{et()}catch(tt){W(j,_e,tt)}}var Oj=!1;function Pj(j,_e){if(Cf=dd$1,j=Me$2(),Ne$1(j)){if("selectionStart"in j)var et={start:j.selectionStart,end:j.selectionEnd};else e:{et=(et=j.ownerDocument)&&et.defaultView||window;var tt=et.getSelection&&et.getSelection();if(tt&&tt.rangeCount!==0){et=tt.anchorNode;var rt=tt.anchorOffset,nt=tt.focusNode;tt=tt.focusOffset;try{et.nodeType,nt.nodeType}catch{et=null;break e}var ot=0,it=-1,st=-1,lt=0,ut=0,ct=j,dt=null;t:for(;;){for(var ft;ct!==et||rt!==0&&ct.nodeType!==3||(it=ot+rt),ct!==nt||tt!==0&&ct.nodeType!==3||(st=ot+tt),ct.nodeType===3&&(ot+=ct.nodeValue.length),(ft=ct.firstChild)!==null;)dt=ct,ct=ft;for(;;){if(ct===j)break t;if(dt===et&&++lt===rt&&(it=ot),dt===nt&&++ut===tt&&(st=ot),(ft=ct.nextSibling)!==null)break;ct=dt,dt=ct.parentNode}ct=ft}et=it===-1||st===-1?null:{start:it,end:st}}else et=null}et=et||{start:0,end:0}}else et=null;for(Df$1={focusedElem:j,selectionRange:et},dd$1=!1,V=_e;V!==null;)if(_e=V,j=_e.child,(_e.subtreeFlags&1028)!==0&&j!==null)j.return=_e,V=j;else for(;V!==null;){_e=V;try{var pt=_e.alternate;if(_e.flags&1024)switch(_e.tag){case 0:case 11:case 15:break;case 1:if(pt!==null){var gt=pt.memoizedProps,vt=pt.memoizedState,bt=_e.stateNode,_t=bt.getSnapshotBeforeUpdate(_e.elementType===_e.type?gt:Lg(_e.type,gt),vt);bt.__reactInternalSnapshotBeforeUpdate=_t}break;case 3:var xt=_e.stateNode.containerInfo;xt.nodeType===1?xt.textContent="":xt.nodeType===9&&xt.documentElement&&xt.removeChild(xt.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p$a(163))}}catch(yt){W(_e,_e.return,yt)}if(j=_e.sibling,j!==null){j.return=_e.return,V=j;break}V=_e.return}return pt=Oj,Oj=!1,pt}function Qj(j,_e,et){var tt=_e.updateQueue;if(tt=tt!==null?tt.lastEffect:null,tt!==null){var rt=tt=tt.next;do{if((rt.tag&j)===j){var nt=rt.destroy;rt.destroy=void 0,nt!==void 0&&Nj(_e,et,nt)}rt=rt.next}while(rt!==tt)}}function Rj(j,_e){if(_e=_e.updateQueue,_e=_e!==null?_e.lastEffect:null,_e!==null){var et=_e=_e.next;do{if((et.tag&j)===j){var tt=et.create;et.destroy=tt()}et=et.next}while(et!==_e)}}function Sj(j){var _e=j.ref;if(_e!==null){var et=j.stateNode;switch(j.tag){case 5:j=et;break;default:j=et}typeof _e=="function"?_e(j):_e.current=j}}function Tj(j){var _e=j.alternate;_e!==null&&(j.alternate=null,Tj(_e)),j.child=null,j.deletions=null,j.sibling=null,j.tag===5&&(_e=j.stateNode,_e!==null&&(delete _e[Of],delete _e[Pf],delete _e[of$2],delete _e[Qf],delete _e[Rf])),j.stateNode=null,j.return=null,j.dependencies=null,j.memoizedProps=null,j.memoizedState=null,j.pendingProps=null,j.stateNode=null,j.updateQueue=null}function Uj(j){return j.tag===5||j.tag===3||j.tag===4}function Vj(j){e:for(;;){for(;j.sibling===null;){if(j.return===null||Uj(j.return))return null;j=j.return}for(j.sibling.return=j.return,j=j.sibling;j.tag!==5&&j.tag!==6&&j.tag!==18;){if(j.flags&2||j.child===null||j.tag===4)continue e;j.child.return=j,j=j.child}if(!(j.flags&2))return j.stateNode}}function Wj(j,_e,et){var tt=j.tag;if(tt===5||tt===6)j=j.stateNode,_e?et.nodeType===8?et.parentNode.insertBefore(j,_e):et.insertBefore(j,_e):(et.nodeType===8?(_e=et.parentNode,_e.insertBefore(j,et)):(_e=et,_e.appendChild(j)),et=et._reactRootContainer,et!=null||_e.onclick!==null||(_e.onclick=Bf));else if(tt!==4&&(j=j.child,j!==null))for(Wj(j,_e,et),j=j.sibling;j!==null;)Wj(j,_e,et),j=j.sibling}function Xj(j,_e,et){var tt=j.tag;if(tt===5||tt===6)j=j.stateNode,_e?et.insertBefore(j,_e):et.appendChild(j);else if(tt!==4&&(j=j.child,j!==null))for(Xj(j,_e,et),j=j.sibling;j!==null;)Xj(j,_e,et),j=j.sibling}var X=null,Yj=!1;function Zj(j,_e,et){for(et=et.child;et!==null;)ak(j,_e,et),et=et.sibling}function ak(j,_e,et){if(lc$1&&typeof lc$1.onCommitFiberUnmount=="function")try{lc$1.onCommitFiberUnmount(kc$1,et)}catch{}switch(et.tag){case 5:U$1||Mj(et,_e);case 6:var tt=X,rt=Yj;X=null,Zj(j,_e,et),X=tt,Yj=rt,X!==null&&(Yj?(j=X,et=et.stateNode,j.nodeType===8?j.parentNode.removeChild(et):j.removeChild(et)):X.removeChild(et.stateNode));break;case 18:X!==null&&(Yj?(j=X,et=et.stateNode,j.nodeType===8?Kf(j.parentNode,et):j.nodeType===1&&Kf(j,et),bd$1(j)):Kf(X,et.stateNode));break;case 4:tt=X,rt=Yj,X=et.stateNode.containerInfo,Yj=!0,Zj(j,_e,et),X=tt,Yj=rt;break;case 0:case 11:case 14:case 15:if(!U$1&&(tt=et.updateQueue,tt!==null&&(tt=tt.lastEffect,tt!==null))){rt=tt=tt.next;do{var nt=rt,ot=nt.destroy;nt=nt.tag,ot!==void 0&&(nt&2||nt&4)&&Nj(et,_e,ot),rt=rt.next}while(rt!==tt)}Zj(j,_e,et);break;case 1:if(!U$1&&(Mj(et,_e),tt=et.stateNode,typeof tt.componentWillUnmount=="function"))try{tt.props=et.memoizedProps,tt.state=et.memoizedState,tt.componentWillUnmount()}catch(it){W(et,_e,it)}Zj(j,_e,et);break;case 21:Zj(j,_e,et);break;case 22:et.mode&1?(U$1=(tt=U$1)||et.memoizedState!==null,Zj(j,_e,et),U$1=tt):Zj(j,_e,et);break;default:Zj(j,_e,et)}}function bk$1(j){var _e=j.updateQueue;if(_e!==null){j.updateQueue=null;var et=j.stateNode;et===null&&(et=j.stateNode=new Lj),_e.forEach(function(tt){var rt=ck.bind(null,j,tt);et.has(tt)||(et.add(tt),tt.then(rt,rt))})}}function dk(j,_e){var et=_e.deletions;if(et!==null)for(var tt=0;ttrt&&(rt=ot),tt&=~nt}if(tt=rt,tt=B$6()-tt,tt=(120>tt?120:480>tt?480:1080>tt?1080:1920>tt?1920:3e3>tt?3e3:4320>tt?4320:1960*mk(tt/1960))-tt,10j?16:j,xk===null)var tt=!1;else{if(j=xk,xk=null,yk=0,K$1&6)throw Error(p$a(331));var rt=K$1;for(K$1|=4,V=j.current;V!==null;){var nt=V,ot=nt.child;if(V.flags&16){var it=nt.deletions;if(it!==null){for(var st=0;stB$6()-gk?Lk(j,0):sk|=et),Ek(j,_e)}function Zk(j,_e){_e===0&&(j.mode&1?(_e=sc$1,sc$1<<=1,!(sc$1&130023424)&&(sc$1=4194304)):_e=1);var et=L$1();j=Zg(j,_e),j!==null&&(Ac$1(j,_e,et),Ek(j,et))}function vj(j){var _e=j.memoizedState,et=0;_e!==null&&(et=_e.retryLane),Zk(j,et)}function ck(j,_e){var et=0;switch(j.tag){case 13:var tt=j.stateNode,rt=j.memoizedState;rt!==null&&(et=rt.retryLane);break;case 19:tt=j.stateNode;break;default:throw Error(p$a(314))}tt!==null&&tt.delete(_e),Zk(j,et)}var Wk;Wk=function(j,_e,et){if(j!==null)if(j.memoizedProps!==_e.pendingProps||Wf.current)Ug=!0;else{if(!(j.lanes&et)&&!(_e.flags&128))return Ug=!1,zj(j,_e,et);Ug=!!(j.flags&131072)}else Ug=!1,I$2&&_e.flags&1048576&&ug(_e,ng,_e.index);switch(_e.lanes=0,_e.tag){case 2:var tt=_e.type;jj(j,_e),j=_e.pendingProps;var rt=Yf(_e,H$4.current);Tg(_e,et),rt=Xh(null,_e,tt,j,rt,et);var nt=bi();return _e.flags|=1,typeof rt=="object"&&rt!==null&&typeof rt.render=="function"&&rt.$$typeof===void 0?(_e.tag=1,_e.memoizedState=null,_e.updateQueue=null,Zf(tt)?(nt=!0,cg(_e)):nt=!1,_e.memoizedState=rt.state!==null&&rt.state!==void 0?rt.state:null,ah(_e),rt.updater=nh,_e.stateNode=rt,rt._reactInternals=_e,rh(_e,tt,j,et),_e=kj(null,_e,tt,!0,nt,et)):(_e.tag=0,I$2&&nt&&vg(_e),Yi(null,_e,rt,et),_e=_e.child),_e;case 16:tt=_e.elementType;e:{switch(jj(j,_e),j=_e.pendingProps,rt=tt._init,tt=rt(tt._payload),_e.type=tt,rt=_e.tag=$k(tt),j=Lg(tt,j),rt){case 0:_e=dj(null,_e,tt,j,et);break e;case 1:_e=ij(null,_e,tt,j,et);break e;case 11:_e=Zi(null,_e,tt,j,et);break e;case 14:_e=aj(null,_e,tt,Lg(tt.type,j),et);break e}throw Error(p$a(306,tt,""))}return _e;case 0:return tt=_e.type,rt=_e.pendingProps,rt=_e.elementType===tt?rt:Lg(tt,rt),dj(j,_e,tt,rt,et);case 1:return tt=_e.type,rt=_e.pendingProps,rt=_e.elementType===tt?rt:Lg(tt,rt),ij(j,_e,tt,rt,et);case 3:e:{if(lj(_e),j===null)throw Error(p$a(387));tt=_e.pendingProps,nt=_e.memoizedState,rt=nt.element,bh(j,_e),gh(_e,tt,null,et);var ot=_e.memoizedState;if(tt=ot.element,nt.isDehydrated)if(nt={element:tt,isDehydrated:!1,cache:ot.cache,pendingSuspenseBoundaries:ot.pendingSuspenseBoundaries,transitions:ot.transitions},_e.updateQueue.baseState=nt,_e.memoizedState=nt,_e.flags&256){rt=Ki(Error(p$a(423)),_e),_e=mj(j,_e,tt,et,rt);break e}else if(tt!==rt){rt=Ki(Error(p$a(424)),_e),_e=mj(j,_e,tt,et,rt);break e}else for(yg=Lf(_e.stateNode.containerInfo.firstChild),xg=_e,I$2=!0,zg=null,et=Ch(_e,null,tt,et),_e.child=et;et;)et.flags=et.flags&-3|4096,et=et.sibling;else{if(Ig(),tt===rt){_e=$i(j,_e,et);break e}Yi(j,_e,tt,et)}_e=_e.child}return _e;case 5:return Kh(_e),j===null&&Eg(_e),tt=_e.type,rt=_e.pendingProps,nt=j!==null?j.memoizedProps:null,ot=rt.children,Ef$1(tt,rt)?ot=null:nt!==null&&Ef$1(tt,nt)&&(_e.flags|=32),hj(j,_e),Yi(j,_e,ot,et),_e.child;case 6:return j===null&&Eg(_e),null;case 13:return pj(j,_e,et);case 4:return Ih(_e,_e.stateNode.containerInfo),tt=_e.pendingProps,j===null?_e.child=Bh(_e,null,tt,et):Yi(j,_e,tt,et),_e.child;case 11:return tt=_e.type,rt=_e.pendingProps,rt=_e.elementType===tt?rt:Lg(tt,rt),Zi(j,_e,tt,rt,et);case 7:return Yi(j,_e,_e.pendingProps,et),_e.child;case 8:return Yi(j,_e,_e.pendingProps.children,et),_e.child;case 12:return Yi(j,_e,_e.pendingProps.children,et),_e.child;case 10:e:{if(tt=_e.type._context,rt=_e.pendingProps,nt=_e.memoizedProps,ot=rt.value,G$4(Mg,tt._currentValue),tt._currentValue=ot,nt!==null)if(He$2(nt.value,ot)){if(nt.children===rt.children&&!Wf.current){_e=$i(j,_e,et);break e}}else for(nt=_e.child,nt!==null&&(nt.return=_e);nt!==null;){var it=nt.dependencies;if(it!==null){ot=nt.child;for(var st=it.firstContext;st!==null;){if(st.context===tt){if(nt.tag===1){st=ch(-1,et&-et),st.tag=2;var lt=nt.updateQueue;if(lt!==null){lt=lt.shared;var ut=lt.pending;ut===null?st.next=st:(st.next=ut.next,ut.next=st),lt.pending=st}}nt.lanes|=et,st=nt.alternate,st!==null&&(st.lanes|=et),Sg(nt.return,et,_e),it.lanes|=et;break}st=st.next}}else if(nt.tag===10)ot=nt.type===_e.type?null:nt.child;else if(nt.tag===18){if(ot=nt.return,ot===null)throw Error(p$a(341));ot.lanes|=et,it=ot.alternate,it!==null&&(it.lanes|=et),Sg(ot,et,_e),ot=nt.sibling}else ot=nt.child;if(ot!==null)ot.return=nt;else for(ot=nt;ot!==null;){if(ot===_e){ot=null;break}if(nt=ot.sibling,nt!==null){nt.return=ot.return,ot=nt;break}ot=ot.return}nt=ot}Yi(j,_e,rt.children,et),_e=_e.child}return _e;case 9:return rt=_e.type,tt=_e.pendingProps.children,Tg(_e,et),rt=Vg(rt),tt=tt(rt),_e.flags|=1,Yi(j,_e,tt,et),_e.child;case 14:return tt=_e.type,rt=Lg(tt,_e.pendingProps),rt=Lg(tt.type,rt),aj(j,_e,tt,rt,et);case 15:return cj(j,_e,_e.type,_e.pendingProps,et);case 17:return tt=_e.type,rt=_e.pendingProps,rt=_e.elementType===tt?rt:Lg(tt,rt),jj(j,_e),_e.tag=1,Zf(tt)?(j=!0,cg(_e)):j=!1,Tg(_e,et),ph(_e,tt,rt),rh(_e,tt,rt,et),kj(null,_e,tt,!0,j,et);case 19:return yj(j,_e,et);case 22:return ej(j,_e,et)}throw Error(p$a(156,_e.tag))};function Gk(j,_e){return ac$1(j,_e)}function al(j,_e,et,tt){this.tag=j,this.key=et,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=_e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=tt,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Bg(j,_e,et,tt){return new al(j,_e,et,tt)}function bj(j){return j=j.prototype,!(!j||!j.isReactComponent)}function $k(j){if(typeof j=="function")return bj(j)?1:0;if(j!=null){if(j=j.$$typeof,j===Da$1)return 11;if(j===Ga$1)return 14}return 2}function wh(j,_e){var et=j.alternate;return et===null?(et=Bg(j.tag,_e,j.key,j.mode),et.elementType=j.elementType,et.type=j.type,et.stateNode=j.stateNode,et.alternate=j,j.alternate=et):(et.pendingProps=_e,et.type=j.type,et.flags=0,et.subtreeFlags=0,et.deletions=null),et.flags=j.flags&14680064,et.childLanes=j.childLanes,et.lanes=j.lanes,et.child=j.child,et.memoizedProps=j.memoizedProps,et.memoizedState=j.memoizedState,et.updateQueue=j.updateQueue,_e=j.dependencies,et.dependencies=_e===null?null:{lanes:_e.lanes,firstContext:_e.firstContext},et.sibling=j.sibling,et.index=j.index,et.ref=j.ref,et}function yh(j,_e,et,tt,rt,nt){var ot=2;if(tt=j,typeof j=="function")bj(j)&&(ot=1);else if(typeof j=="string")ot=5;else e:switch(j){case ya$1:return Ah(et.children,rt,nt,_e);case za$1:ot=8,rt|=8;break;case Aa$1:return j=Bg(12,et,_e,rt|2),j.elementType=Aa$1,j.lanes=nt,j;case Ea:return j=Bg(13,et,_e,rt),j.elementType=Ea,j.lanes=nt,j;case Fa:return j=Bg(19,et,_e,rt),j.elementType=Fa,j.lanes=nt,j;case Ia$1:return qj(et,rt,nt,_e);default:if(typeof j=="object"&&j!==null)switch(j.$$typeof){case Ba$1:ot=10;break e;case Ca$1:ot=9;break e;case Da$1:ot=11;break e;case Ga$1:ot=14;break e;case Ha$1:ot=16,tt=null;break e}throw Error(p$a(130,j==null?j:typeof j,""))}return _e=Bg(ot,et,_e,rt),_e.elementType=j,_e.type=tt,_e.lanes=nt,_e}function Ah(j,_e,et,tt){return j=Bg(7,j,tt,_e),j.lanes=et,j}function qj(j,_e,et,tt){return j=Bg(22,j,tt,_e),j.elementType=Ia$1,j.lanes=et,j.stateNode={isHidden:!1},j}function xh(j,_e,et){return j=Bg(6,j,null,_e),j.lanes=et,j}function zh(j,_e,et){return _e=Bg(4,j.children!==null?j.children:[],j.key,_e),_e.lanes=et,_e.stateNode={containerInfo:j.containerInfo,pendingChildren:null,implementation:j.implementation},_e}function bl(j,_e,et,tt,rt){this.tag=_e,this.containerInfo=j,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zc$1(0),this.expirationTimes=zc$1(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zc$1(0),this.identifierPrefix=tt,this.onRecoverableError=rt,this.mutableSourceEagerHydrationData=null}function cl(j,_e,et,tt,rt,nt,ot,it,st){return j=new bl(j,_e,et,it,st),_e===1?(_e=1,nt===!0&&(_e|=8)):_e=0,nt=Bg(3,null,null,_e),j.current=nt,nt.stateNode=j,nt.memoizedState={element:tt,isDehydrated:et,cache:null,transitions:null,pendingSuspenseBoundaries:null},ah(nt),j}function dl(j,_e,et){var tt=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(j){console.error(j)}}checkDCE(),reactDom.exports=reactDom_production_min;var reactDomExports=reactDom.exports;const ReactDOM=getDefaultExportFromCjs(reactDomExports);var m$a=reactDomExports;client.createRoot=m$a.createRoot,client.hydrateRoot=m$a.hydrateRoot;const positionMap=["Top","Right","Bottom","Left"];function generateStyles(j,_e,...et){const[tt,rt=tt,nt=tt,ot=rt]=et,it=[tt,rt,nt,ot],st={};for(let lt=0;lttypeof j=="string"&&/(\d+(\w+|%))/.test(j),isUnitless=j=>typeof j=="number"&&!Number.isNaN(j),isInitial=j=>j==="initial",isAuto=j=>j==="auto",isNone=j=>j==="none",widthReservedKeys=["content","fit-content","max-content","min-content"],isWidth=j=>widthReservedKeys.some(_e=>j===_e)||isUnit(j);function flex(...j){const _e=j.length===1,et=j.length===2,tt=j.length===3;if(_e){const[rt]=j;if(isInitial(rt))return{flexGrow:0,flexShrink:1,flexBasis:"auto"};if(isAuto(rt))return{flexGrow:1,flexShrink:1,flexBasis:"auto"};if(isNone(rt))return{flexGrow:0,flexShrink:0,flexBasis:"auto"};if(isUnitless(rt))return{flexGrow:rt,flexShrink:1,flexBasis:0};if(isWidth(rt))return{flexGrow:1,flexShrink:1,flexBasis:rt}}if(et){const[rt,nt]=j;if(isUnitless(nt))return{flexGrow:rt,flexShrink:nt,flexBasis:0};if(isWidth(nt))return{flexGrow:rt,flexShrink:1,flexBasis:nt}}if(tt){const[rt,nt,ot]=j;if(isUnitless(rt)&&isUnitless(nt)&&(isAuto(ot)||isWidth(ot)))return{flexGrow:rt,flexShrink:nt,flexBasis:ot}}return{}}function gap(j,_e=j){return{columnGap:j,rowGap:_e}}const cssVarRegEx=/var\(.*\)/gi;function isValidGridAreaInput(j){return j===void 0||typeof j=="number"||typeof j=="string"&&!cssVarRegEx.test(j)}const customIdentRegEx=/^[a-zA-Z0-9\-_\\#;]+$/,nonCustomIdentRegEx=/^-moz-initial$|^auto$|^initial$|^inherit$|^revert$|^unset$|^span \d+$|^\d.*/;function isCustomIdent(j){return j!==void 0&&typeof j=="string"&&customIdentRegEx.test(j)&&!nonCustomIdentRegEx.test(j)}function gridArea(...j){if(j.some(nt=>!isValidGridAreaInput(nt)))return{};const _e=j[0]!==void 0?j[0]:"auto",et=j[1]!==void 0?j[1]:isCustomIdent(_e)?_e:"auto",tt=j[2]!==void 0?j[2]:isCustomIdent(_e)?_e:"auto",rt=j[3]!==void 0?j[3]:isCustomIdent(et)?et:"auto";return{gridRowStart:_e,gridColumnStart:et,gridRowEnd:tt,gridColumnEnd:rt}}function margin(...j){return generateStyles("margin","",...j)}function marginBlock(j,_e=j){return{marginBlockStart:j,marginBlockEnd:_e}}function marginInline(j,_e=j){return{marginInlineStart:j,marginInlineEnd:_e}}function padding(...j){return generateStyles("padding","",...j)}function paddingBlock(j,_e=j){return{paddingBlockStart:j,paddingBlockEnd:_e}}function paddingInline(j,_e=j){return{paddingInlineStart:j,paddingInlineEnd:_e}}function overflow(j,_e=j){return{overflowX:j,overflowY:_e}}function inset(...j){const[_e,et=_e,tt=_e,rt=et]=j;return{top:_e,right:et,bottom:tt,left:rt}}function outline(j,_e,et){return{outlineWidth:j,..._e&&{outlineStyle:_e},...et&&{outlineColor:et}}}function transition$1(...j){return isTransitionGlobalInputs(j)?{transitionDelay:j[0],transitionDuration:j[0],transitionProperty:j[0],transitionTimingFunction:j[0]}:normalizeTransitionInputs(j).reduce((et,[tt,rt="0s",nt="0s",ot="ease"],it)=>(it===0?(et.transitionProperty=tt,et.transitionDuration=rt,et.transitionDelay=nt,et.transitionTimingFunction=ot):(et.transitionProperty+=`, ${tt}`,et.transitionDuration+=`, ${rt}`,et.transitionDelay+=`, ${nt}`,et.transitionTimingFunction+=`, ${ot}`),et),{})}const transitionGlobalInputs=["-moz-initial","inherit","initial","revert","unset"];function isTransitionGlobalInputs(j){return j.length===1&&transitionGlobalInputs.includes(j[0])}function normalizeTransitionInputs(j){return j.length===1&&Array.isArray(j[0])?j[0]:[j]}function textDecoration(j,..._e){if(_e.length===0)return isTextDecorationStyleInput(j)?{textDecorationStyle:j}:{textDecorationLine:j};const[et,tt,rt]=_e;return{textDecorationLine:j,...et&&{textDecorationStyle:et},...tt&&{textDecorationColor:tt},...rt&&{textDecorationThickness:rt}}}const textDecorationStyleInputs=["dashed","dotted","double","solid","wavy"];function isTextDecorationStyleInput(j){return textDecorationStyleInputs.includes(j)}const __GLOBAL__=typeof window>"u"?global:window,__NAMESPACE_PREFIX__="@griffel/";function getGlobalVar(j,_e){return __GLOBAL__[Symbol.for(__NAMESPACE_PREFIX__+j)]||(__GLOBAL__[Symbol.for(__NAMESPACE_PREFIX__+j)]=_e),__GLOBAL__[Symbol.for(__NAMESPACE_PREFIX__+j)]}const DEFINITION_LOOKUP_TABLE=getGlobalVar("DEFINITION_LOOKUP_TABLE",{}),DATA_BUCKET_ATTR="data-make-styles-bucket",HASH_PREFIX="f",SEQUENCE_HASH_LENGTH=7,SEQUENCE_PREFIX="___",SEQUENCE_SIZE=SEQUENCE_PREFIX.length+SEQUENCE_HASH_LENGTH,LOOKUP_DEFINITIONS_INDEX=0,LOOKUP_DIR_INDEX=1,UNSUPPORTED_CSS_PROPERTIES={all:1,animation:1,background:1,backgroundPosition:1,border:1,borderBlock:1,borderBlockEnd:1,borderBlockStart:1,borderBottom:1,borderColor:1,borderImage:1,borderInline:1,borderInlineEnd:1,borderInlineStart:1,borderLeft:1,borderRadius:1,borderRight:1,borderStyle:1,borderTop:1,borderWidth:1,caret:1,columns:1,columnRule:1,containIntrinsicSize:1,container:1,flex:1,flexFlow:1,font:1,gap:1,grid:1,gridArea:1,gridColumn:1,gridRow:1,gridTemplate:1,inset:1,insetBlock:1,insetInline:1,lineClamp:1,listStyle:1,margin:1,marginBlock:1,marginInline:1,mask:1,maskBorder:1,motion:1,offset:1,outline:1,overflow:1,overscrollBehavior:1,padding:1,paddingBlock:1,paddingInline:1,placeItems:1,placeContent:1,placeSelf:1,scrollMargin:1,scrollMarginBlock:1,scrollMarginInline:1,scrollPadding:1,scrollPaddingBlock:1,scrollPaddingInline:1,scrollSnapMargin:1,scrollTimeline:1,textDecoration:1,textEmphasis:1,transition:1};function murmur2(j){for(var _e=0,et,tt=0,rt=j.length;rt>=4;++tt,rt-=4)et=j.charCodeAt(tt)&255|(j.charCodeAt(++tt)&255)<<8|(j.charCodeAt(++tt)&255)<<16|(j.charCodeAt(++tt)&255)<<24,et=(et&65535)*1540483477+((et>>>16)*59797<<16),et^=et>>>24,_e=(et&65535)*1540483477+((et>>>16)*59797<<16)^(_e&65535)*1540483477+((_e>>>16)*59797<<16);switch(rt){case 3:_e^=(j.charCodeAt(tt+2)&255)<<16;case 2:_e^=(j.charCodeAt(tt+1)&255)<<8;case 1:_e^=j.charCodeAt(tt)&255,_e=(_e&65535)*1540483477+((_e>>>16)*59797<<16)}return _e^=_e>>>13,_e=(_e&65535)*1540483477+((_e>>>16)*59797<<16),((_e^_e>>>15)>>>0).toString(36)}function padEndHash(j){const _e=j.length;if(_e===SEQUENCE_HASH_LENGTH)return j;for(let et=_e;et0&&(_e+=ut.slice(0,ct)),et+=dt,tt[lt]=dt}}}if(et==="")return _e.slice(0,-1);const rt=mergeClassesCachedResults[et];if(rt!==void 0)return _e+rt;const nt=[];for(let lt=0;lt{const _e=Object.keys(mergeClassesCachedResults).find(et=>mergeClassesCachedResults[et].startsWith(j));return _e?_e.split(SEQUENCE_PREFIX).filter(et=>et.length).map(et=>SEQUENCE_PREFIX+et):[]},addCSSRule:j=>{cssRules.add(j)},addSequenceDetails:(j,_e)=>{Object.entries(j).forEach(([et,tt])=>{sequenceDetails[tt.substring(0,SEQUENCE_SIZE)]={slotName:et,sourceURL:_e}})},getCSSRules:()=>Array.from(cssRules),getSequenceDetails:j=>sequenceDetails[j]};function getDirectionalClassName(j,_e){return Array.isArray(j)?_e==="rtl"?j[1]:j[0]:j}function getDebugClassNames(j,_e,et,tt){const rt=j[0],nt=j[1];return Object.entries(rt).map(([ot,it])=>{const st=getDirectionalClassName(it,nt);let lt;if(et&&_e){const ut=et.find(({className:ct})=>ct===st);!ut&&_e[0][ot]?lt=getDirectionalClassName(_e[0][ot],_e[1]):ut&&_e[0][ot]?lt=(tt?tt.filter(({debugClassNames:dt})=>dt.filter(({className:ft})=>ft===st).length>0).length>0:!1)?ut.className:ut.overriddenBy:(!ut&&!_e[0][ot]||ut&&!_e[0][ot])&&(lt=void 0)}return{className:st,overriddenBy:lt}})}function getDebugTree(j,_e){const et=DEFINITION_LOOKUP_TABLE[j];if(et===void 0)return;const tt=_e?DEFINITION_LOOKUP_TABLE[_e.sequenceHash]:void 0,rt=getDebugClassNames(et,tt,_e==null?void 0:_e.debugClassNames,_e==null?void 0:_e.children),nt={sequenceHash:j,direction:et[1],children:[],debugClassNames:rt};return debugData.getChildrenSequences(nt.sequenceHash).reverse().forEach(it=>{const st=getDebugTree(it,nt);st&&nt.children.push(st)}),nt.children.length||(nt.rules={},nt.debugClassNames.forEach(({className:it})=>{const st=debugData.getSequenceDetails(j);st&&(nt.slot=st.slotName,nt.sourceURL=st.sourceURL);const lt=debugData.getCSSRules().find(ut=>ut.includes(it));nt.rules[it]=lt})),nt}function injectDevTools(j){const _e=j.defaultView;if(!_e||_e.__GRIFFEL_DEVTOOLS__)return;const et={getInfo:tt=>{const rt=Array.from(tt.classList).find(nt=>nt.startsWith(SEQUENCE_PREFIX));if(rt!==void 0)return getDebugTree(rt)}};Object.defineProperty(_e,"__GRIFFEL_DEVTOOLS__",{configurable:!1,enumerable:!1,get(){return et}})}function normalizeCSSBucketEntry(j){return Array.isArray(j)?j:[j]}function createIsomorphicStyleSheet(j,_e,et){const tt=[];if(et[DATA_BUCKET_ATTR]=_e,j)for(const nt in et)j.setAttribute(nt,et[nt]);function rt(nt){return j!=null&&j.sheet?j.sheet.insertRule(nt,j.sheet.cssRules.length):tt.push(nt)}return{elementAttributes:et,insertRule:rt,element:j,bucketName:_e,cssRules(){return j!=null&&j.sheet?Array.from(j.sheet.cssRules).map(nt=>nt.cssText):tt}}}const styleBucketOrdering=["r","d","l","v","w","f","i","h","a","s","k","t","m","c"],styleBucketOrderingMap=styleBucketOrdering.reduce((j,_e,et)=>(j[_e]=et,j),{});function getStyleSheetForBucket(j,_e,et,tt,rt={}){const nt=j==="m",ot=nt?j+rt.m:j;if(!tt.stylesheets[ot]){const it=_e&&_e.createElement("style"),st=createIsomorphicStyleSheet(it,j,{...tt.styleElementAttributes,...nt&&{media:rt.m}});tt.stylesheets[ot]=st,_e&&it&&_e.head.insertBefore(it,findInsertionPoint(_e,et,j,tt,rt))}return tt.stylesheets[ot]}function findInsertionPoint(j,_e,et,tt,rt){const nt=styleBucketOrderingMap[et];let ot=ut=>nt-styleBucketOrderingMap[ut.getAttribute(DATA_BUCKET_ATTR)],it=j.head.querySelectorAll(`[${DATA_BUCKET_ATTR}]`);if(et==="m"&&rt){const ut=j.head.querySelectorAll(`[${DATA_BUCKET_ATTR}="${et}"]`);ut.length&&(it=ut,ot=ct=>tt.compareMediaQueries(rt.m,ct.media))}const st=it.length;let lt=st-1;for(;lt>=0;){const ut=it.item(lt);if(ot(ut)>0)return ut.nextSibling;lt--}return st>0?it.item(0):_e?_e.nextSibling:null}function safeInsertRule(j,_e){try{j.insertRule(_e)}catch{}}let lastIndex=0;const defaultCompareMediaQueries=(j,_e)=>j<_e?-1:j>_e?1:0;function createDOMRenderer(j=typeof document>"u"?void 0:document,_e={}){const{unstable_filterCSSRule:et,insertionPoint:tt,styleElementAttributes:rt,compareMediaQueries:nt=defaultCompareMediaQueries}=_e,ot={insertionCache:{},stylesheets:{},styleElementAttributes:Object.freeze(rt),compareMediaQueries:nt,id:`d${lastIndex++}`,insertCSSRules(it){for(const st in it){const lt=it[st];for(let ut=0,ct=lt.length;ut{const j={};return function(et,tt){j[et.id]===void 0&&(et.insertCSSRules(tt),j[et.id]=!0)}};function arrayToObject(j){return j.reduce(function(_e,et){var tt=et[0],rt=et[1];return _e[tt]=rt,_e[rt]=tt,_e},{})}function isBoolean$2(j){return typeof j=="boolean"}function isFunction$8(j){return typeof j=="function"}function isNumber$6(j){return typeof j=="number"}function isNullOrUndefined$5(j){return j===null||typeof j>"u"}function isObject$B(j){return j&&typeof j=="object"}function isString$3(j){return typeof j=="string"}function includes(j,_e){return j.indexOf(_e)!==-1}function flipSign(j){return parseFloat(j)===0?j:j[0]==="-"?j.slice(1):"-"+j}function flipTransformSign(j,_e,et,tt){return _e+flipSign(et)+tt}function calculateNewBackgroundPosition(j){var _e=j.indexOf(".");if(_e===-1)j=100-parseFloat(j)+"%";else{var et=j.length-_e-2;j=100-parseFloat(j),j=j.toFixed(et)+"%"}return j}function getValuesAsList(j){return j.replace(/ +/g," ").split(" ").map(function(_e){return _e.trim()}).filter(Boolean).reduce(function(_e,et){var tt=_e.list,rt=_e.state,nt=(et.match(/\(/g)||[]).length,ot=(et.match(/\)/g)||[]).length;return rt.parensDepth>0?tt[tt.length-1]=tt[tt.length-1]+" "+et:tt.push(et),rt.parensDepth+=nt-ot,{list:tt,state:rt}},{list:[],state:{parensDepth:0}}).list}function handleQuartetValues(j){var _e=getValuesAsList(j);if(_e.length<=3||_e.length>4)return j;var et=_e[0],tt=_e[1],rt=_e[2],nt=_e[3];return[et,nt,rt,tt].join(" ")}function canConvertValue(j){return!isBoolean$2(j)&&!isNullOrUndefined$5(j)}function splitShadow(j){for(var _e=[],et=0,tt=0,rt=!1;tt0?charat$1(characters$1,--position$3):0,column$1--,character$1===10&&(column$1=1,line$2--),character$1}function next$1(){return character$1=position$32||token$2(character$1)>3?"":" "}function tokenizer(j){for(;next$1();)switch(token$2(character$1)){case 0:append$2(identifier$1(position$3-1),j);break;case 2:append$2(delimit$1(character$1),j);break;default:append$2(from$8(character$1),j)}return j}function escaping$1(j,_e){for(;--_e&&next$1()&&!(character$1<48||character$1>102||character$1>57&&character$1<65||character$1>70&&character$1<97););return slice$7(j,caret$1()+(_e<6&&peek$1()==32&&next$1()==32))}function delimiter$1(j){for(;next$1();)switch(character$1){case j:return position$3;case 34:case 39:j!==34&&j!==39&&delimiter$1(character$1);break;case 40:j===41&&delimiter$1(j);break;case 92:next$1();break}return position$3}function commenter$1(j,_e){for(;next$1()&&j+character$1!==57;)if(j+character$1===84&&peek$1()===47)break;return"/*"+slice$7(_e,position$3-1)+"*"+from$8(j===47?j:next$1())}function identifier$1(j){for(;!token$2(peek$1());)next$1();return slice$7(j,position$3)}function compile$1(j){return dealloc$1(parse$n("",null,null,null,[""],j=alloc$1(j),0,[0],j))}function parse$n(j,_e,et,tt,rt,nt,ot,it,st){for(var lt=0,ut=0,ct=ot,dt=0,ft=0,pt=0,gt=1,vt=1,bt=1,_t=0,xt="",yt=rt,Et=nt,St=tt,$t=xt;vt;)switch(pt=_t,_t=next$1()){case 40:if(pt!=108&&charat$1($t,ct-1)==58){indexof$1($t+=replace$4(delimit$1(_t),"&","&\f"),"&\f")!=-1&&(bt=-1);break}case 34:case 39:case 91:$t+=delimit$1(_t);break;case 9:case 10:case 13:case 32:$t+=whitespace$1(pt);break;case 92:$t+=escaping$1(caret$1()-1,7);continue;case 47:switch(peek$1()){case 42:case 47:append$2(comment$1(commenter$1(next$1(),caret$1()),_e,et,st),st);break;default:$t+="/"}break;case 123*gt:it[lt++]=strlen$1($t)*bt;case 125*gt:case 59:case 0:switch(_t){case 0:case 125:vt=0;case 59+ut:bt==-1&&($t=replace$4($t,/\f/g,"")),ft>0&&strlen$1($t)-ct&&append$2(ft>32?declaration$1($t+";",tt,et,ct-1,st):declaration$1(replace$4($t," ","")+";",tt,et,ct-2,st),st);break;case 59:$t+=";";default:if(append$2(St=ruleset$1($t,_e,et,lt,ut,rt,it,xt,yt=[],Et=[],ct,nt),nt),_t===123)if(ut===0)parse$n($t,_e,St,St,yt,nt,ct,it,Et);else switch(dt===99&&charat$1($t,3)===110?100:dt){case 100:case 108:case 109:case 115:parse$n(j,St,St,tt&&append$2(ruleset$1(j,St,St,0,0,rt,it,xt,rt,yt=[],ct,Et),Et),rt,Et,ct,it,tt?yt:Et);break;default:parse$n($t,St,St,St,[""],Et,0,it,Et)}}lt=ut=ft=0,gt=bt=1,xt=$t="",ct=ot;break;case 58:ct=1+strlen$1($t),ft=pt;default:if(gt<1){if(_t==123)--gt;else if(_t==125&>++==0&&prev$1()==125)continue}switch($t+=from$8(_t),_t*gt){case 38:bt=ut>0?1:($t+="\f",-1);break;case 44:it[lt++]=(strlen$1($t)-1)*bt,bt=1;break;case 64:peek$1()===45&&($t+=delimit$1(next$1())),dt=peek$1(),ut=ct=strlen$1(xt=$t+=identifier$1(caret$1())),_t++;break;case 45:pt===45&&strlen$1($t)==2&&(gt=0)}}return nt}function ruleset$1(j,_e,et,tt,rt,nt,ot,it,st,lt,ut,ct){for(var dt=rt-1,ft=rt===0?nt:[""],pt=sizeof$1(ft),gt=0,vt=0,bt=0;gt0?ft[_t]+" "+xt:replace$4(xt,/&\f/g,ft[_t])))&&(st[bt++]=yt);return node$1(j,_e,et,rt===0?RULESET$1:it,st,lt,ut,ct)}function comment$1(j,_e,et,tt){return node$1(j,_e,et,COMMENT$1,from$8(char$1()),substr$1(j,2,-2),0,tt)}function declaration$1(j,_e,et,tt,rt){return node$1(j,_e,et,DECLARATION$1,substr$1(j,0,tt),substr$1(j,tt+1,-1),tt,rt)}function serialize$1(j,_e){for(var et="",tt=0;tt{switch(j.type){case RULESET$1:if(typeof j.props=="string")return;j.props=j.props.map(_e=>_e.indexOf(":global(")===-1?_e:tokenize(_e).reduce((et,tt,rt,nt)=>{if(tt==="")return et;if(tt===":"&&nt[rt+1]==="global"){const ot=nt[rt+2].slice(1,-1)+" ";return et.unshift(ot),nt[rt+1]="",nt[rt+2]="",et}return et.push(tt),et},[]).join(""))}};function prefix$4(j,_e,et){switch(hash$2(j,_e)){case 5103:return WEBKIT$1+"print-"+j+j;case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:return WEBKIT$1+j+j;case 4215:if(charat$1(j,9)===102||charat$1(j,_e+1)===116)return WEBKIT$1+j+j;break;case 4789:return MOZ$1+j+j;case 5349:case 4246:case 6968:return WEBKIT$1+j+MOZ$1+j+j;case 6187:if(!match$o(j,/grab/))return replace$4(replace$4(replace$4(j,/(zoom-|grab)/,WEBKIT$1+"$1"),/(image-set)/,WEBKIT$1+"$1"),j,"")+j;case 5495:case 3959:return replace$4(j,/(image-set\([^]*)/,WEBKIT$1+"$1$`$1");case 4095:case 3583:case 4068:case 2532:return replace$4(j,/(.+)-inline(.+)/,WEBKIT$1+"$1$2")+j;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(strlen$1(j)-1-_e>6)switch(charat$1(j,_e+1)){case 102:if(charat$1(j,_e+3)===108)return replace$4(j,/(.+:)(.+)-([^]+)/,"$1"+WEBKIT$1+"$2-$3$1"+MOZ$1+(charat$1(j,_e+3)==108?"$3":"$2-$3"))+j;case 115:return~indexof$1(j,"stretch")?prefix$4(replace$4(j,"stretch","fill-available"),_e)+j:j}break}return j}function prefixerPlugin(j,_e,et,tt){if(j.length>-1&&!j.return)switch(j.type){case DECLARATION$1:j.return=prefix$4(j.value,j.length);return;case RULESET$1:if(j.length)return combine$1(j.props,function(rt){switch(match$o(rt,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize$1([copy$5(j,{props:[replace$4(rt,/:(read-\w+)/,":"+MOZ$1+"$1")]})],tt);case"::placeholder":return serialize$1([copy$5(j,{props:[replace$4(rt,/:(plac\w+)/,":"+WEBKIT$1+"input-$1")]}),copy$5(j,{props:[replace$4(rt,/:(plac\w+)/,":"+MOZ$1+"$1")]})],tt)}return""})}}function isAtRuleElement(j){switch(j.type){case"@container":case MEDIA:case SUPPORTS:case LAYER$1:return!0}return!1}const sortClassesInAtRulesPlugin=j=>{isAtRuleElement(j)&&Array.isArray(j.children)&&j.children.sort((_e,et)=>_e.props[0]>et.props[0]?1:-1)};function noop$8(){}function compileCSSRules(j,_e){const et=[];return serialize$1(compile$1(j),middleware$1([globalPlugin,_e?sortClassesInAtRulesPlugin:noop$8,prefixerPlugin,stringify$2,rulesheet$1(tt=>et.push(tt))])),et}const PSEUDO_SELECTOR_REGEX=/,( *[^ &])/g;function normalizePseudoSelector(j){return"&"+normalizeNestedProperty(j.replace(PSEUDO_SELECTOR_REGEX,",&$1"))}function createCSSRule(j,_e,et){let tt=_e;return et.length>0&&(tt=et.reduceRight((rt,nt)=>`${normalizePseudoSelector(nt)} { ${rt} }`,_e)),`${j}{${tt}}`}function compileAtomicCSSRule(j){const{className:_e,media:et,layer:tt,selectors:rt,support:nt,property:ot,rtlClassName:it,rtlProperty:st,rtlValue:lt,value:ut,container:ct}=j,dt=`.${_e}`,ft=Array.isArray(ut)?`${ut.map(gt=>`${hyphenateProperty(ot)}: ${gt}`).join(";")};`:`${hyphenateProperty(ot)}: ${ut};`;let pt=createCSSRule(dt,ft,rt);if(st&&it){const gt=`.${it}`,vt=Array.isArray(lt)?`${lt.map(bt=>`${hyphenateProperty(st)}: ${bt}`).join(";")};`:`${hyphenateProperty(st)}: ${lt};`;pt+=createCSSRule(gt,vt,rt)}return et&&(pt=`@media ${et} { ${pt} }`),tt&&(pt=`@layer ${tt} { ${pt} }`),nt&&(pt=`@supports ${nt} { ${pt} }`),ct&&(pt=`@container ${ct} { ${pt} }`),compileCSSRules(pt,!0)}function cssifyObject(j){let _e="";for(const et in j){const tt=j[et];typeof tt!="string"&&typeof tt!="number"||(_e+=hyphenateProperty(et)+":"+tt+";")}return _e}function compileKeyframeRule(j){let _e="";for(const et in j)_e+=`${et}{${cssifyObject(j[et])}}`;return _e}function compileKeyframesCSS(j,_e){const et=`@keyframes ${j} {${_e}}`,tt=[];return serialize$1(compile$1(et),middleware$1([stringify$2,prefixerPlugin,rulesheet$1(rt=>tt.push(rt))])),tt}function generateCombinedQuery(j,_e){return j.length===0?_e:`${j} and ${_e}`}function isMediaQuerySelector(j){return j.substr(0,6)==="@media"}function isLayerSelector(j){return j.substr(0,6)==="@layer"}const regex=/^(:|\[|>|&)/;function isNestedSelector(j){return regex.test(j)}function isSupportQuerySelector(j){return j.substr(0,9)==="@supports"}function isContainerQuerySelector(j){return j.substring(0,10)==="@container"}function isObject$A(j){return j!=null&&typeof j=="object"&&Array.isArray(j)===!1}const pseudosMap={"us-w":"w","us-v":"i",nk:"l",si:"v",cu:"f",ve:"h",ti:"a"};function getStyleBucketName(j,_e,et,tt,rt){if(et)return"m";if(_e||tt)return"t";if(rt)return"c";if(j.length>0){const nt=j[0].trim();if(nt.charCodeAt(0)===58)return pseudosMap[nt.slice(4,8)]||pseudosMap[nt.slice(3,5)]||"d"}return"d"}function hashClassName({container:j,media:_e,layer:et,property:tt,selector:rt,support:nt,value:ot}){const it=murmur2(rt+j+_e+et+nt+tt+ot.trim());return HASH_PREFIX+it}function hashPropertyKey(j,_e,et,tt,rt){const nt=j+_e+et+tt+rt,ot=murmur2(nt),it=ot.charCodeAt(0);return it>=48&&it<=57?String.fromCharCode(it+17)+ot.slice(1):ot}function trimSelector(j){return j.replace(/>\s+/g,">")}function warnAboutUnresolvedRule(j,_e){const et=JSON.stringify(_e,null,2);" ".repeat(2)+""," ".repeat(4)+""," ".repeat(6)+`"${j}": ${et.split(` +`+nt.stack}return{value:j,source:_e,stack:rt,digest:null}}function Li(j,_e,et){return{value:j,source:null,stack:et??null,digest:_e??null}}function Mi(j,_e){try{console.error(_e.value)}catch(et){setTimeout(function(){throw et})}}var Ni=typeof WeakMap=="function"?WeakMap:Map;function Oi(j,_e,et){et=ch(-1,et),et.tag=3,et.payload={element:null};var tt=_e.value;return et.callback=function(){Pi||(Pi=!0,Qi=tt),Mi(j,_e)},et}function Ri(j,_e,et){et=ch(-1,et),et.tag=3;var tt=j.type.getDerivedStateFromError;if(typeof tt=="function"){var rt=_e.value;et.payload=function(){return tt(rt)},et.callback=function(){Mi(j,_e)}}var nt=j.stateNode;return nt!==null&&typeof nt.componentDidCatch=="function"&&(et.callback=function(){Mi(j,_e),typeof tt!="function"&&(Si===null?Si=new Set([this]):Si.add(this));var ot=_e.stack;this.componentDidCatch(_e.value,{componentStack:ot!==null?ot:""})}),et}function Ti(j,_e,et){var tt=j.pingCache;if(tt===null){tt=j.pingCache=new Ni;var rt=new Set;tt.set(_e,rt)}else rt=tt.get(_e),rt===void 0&&(rt=new Set,tt.set(_e,rt));rt.has(et)||(rt.add(et),j=Ui.bind(null,j,_e,et),_e.then(j,j))}function Vi(j){do{var _e;if((_e=j.tag===13)&&(_e=j.memoizedState,_e=_e!==null?_e.dehydrated!==null:!0),_e)return j;j=j.return}while(j!==null);return null}function Wi(j,_e,et,tt,rt){return j.mode&1?(j.flags|=65536,j.lanes=rt,j):(j===_e?j.flags|=65536:(j.flags|=128,et.flags|=131072,et.flags&=-52805,et.tag===1&&(et.alternate===null?et.tag=17:(_e=ch(-1,1),_e.tag=2,dh(et,_e,1))),et.lanes|=1),j)}var Xi=ua$1.ReactCurrentOwner,Ug=!1;function Yi(j,_e,et,tt){_e.child=j===null?Ch(_e,null,et,tt):Bh(_e,j.child,et,tt)}function Zi(j,_e,et,tt,rt){et=et.render;var nt=_e.ref;return Tg(_e,rt),tt=Xh(j,_e,et,tt,nt,rt),et=bi(),j!==null&&!Ug?(_e.updateQueue=j.updateQueue,_e.flags&=-2053,j.lanes&=~rt,$i(j,_e,rt)):(I$2&&et&&vg(_e),_e.flags|=1,Yi(j,_e,tt,rt),_e.child)}function aj(j,_e,et,tt,rt){if(j===null){var nt=et.type;return typeof nt=="function"&&!bj(nt)&&nt.defaultProps===void 0&&et.compare===null&&et.defaultProps===void 0?(_e.tag=15,_e.type=nt,cj(j,_e,nt,tt,rt)):(j=yh(et.type,null,tt,_e,_e.mode,rt),j.ref=_e.ref,j.return=_e,_e.child=j)}if(nt=j.child,!(j.lanes&rt)){var ot=nt.memoizedProps;if(et=et.compare,et=et!==null?et:Ie$1,et(ot,tt)&&j.ref===_e.ref)return $i(j,_e,rt)}return _e.flags|=1,j=wh(nt,tt),j.ref=_e.ref,j.return=_e,_e.child=j}function cj(j,_e,et,tt,rt){if(j!==null){var nt=j.memoizedProps;if(Ie$1(nt,tt)&&j.ref===_e.ref)if(Ug=!1,_e.pendingProps=tt=nt,(j.lanes&rt)!==0)j.flags&131072&&(Ug=!0);else return _e.lanes=j.lanes,$i(j,_e,rt)}return dj(j,_e,et,tt,rt)}function ej(j,_e,et){var tt=_e.pendingProps,rt=tt.children,nt=j!==null?j.memoizedState:null;if(tt.mode==="hidden")if(!(_e.mode&1))_e.memoizedState={baseLanes:0,cachePool:null,transitions:null},G$4(fj,gj),gj|=et;else{if(!(et&1073741824))return j=nt!==null?nt.baseLanes|et:et,_e.lanes=_e.childLanes=1073741824,_e.memoizedState={baseLanes:j,cachePool:null,transitions:null},_e.updateQueue=null,G$4(fj,gj),gj|=j,null;_e.memoizedState={baseLanes:0,cachePool:null,transitions:null},tt=nt!==null?nt.baseLanes:et,G$4(fj,gj),gj|=tt}else nt!==null?(tt=nt.baseLanes|et,_e.memoizedState=null):tt=et,G$4(fj,gj),gj|=tt;return Yi(j,_e,rt,et),_e.child}function hj(j,_e){var et=_e.ref;(j===null&&et!==null||j!==null&&j.ref!==et)&&(_e.flags|=512,_e.flags|=2097152)}function dj(j,_e,et,tt,rt){var nt=Zf(et)?Xf:H$4.current;return nt=Yf(_e,nt),Tg(_e,rt),et=Xh(j,_e,et,tt,nt,rt),tt=bi(),j!==null&&!Ug?(_e.updateQueue=j.updateQueue,_e.flags&=-2053,j.lanes&=~rt,$i(j,_e,rt)):(I$2&&tt&&vg(_e),_e.flags|=1,Yi(j,_e,et,rt),_e.child)}function ij(j,_e,et,tt,rt){if(Zf(et)){var nt=!0;cg(_e)}else nt=!1;if(Tg(_e,rt),_e.stateNode===null)jj(j,_e),ph(_e,et,tt),rh(_e,et,tt,rt),tt=!0;else if(j===null){var ot=_e.stateNode,it=_e.memoizedProps;ot.props=it;var st=ot.context,lt=et.contextType;typeof lt=="object"&<!==null?lt=Vg(lt):(lt=Zf(et)?Xf:H$4.current,lt=Yf(_e,lt));var ut=et.getDerivedStateFromProps,ct=typeof ut=="function"||typeof ot.getSnapshotBeforeUpdate=="function";ct||typeof ot.UNSAFE_componentWillReceiveProps!="function"&&typeof ot.componentWillReceiveProps!="function"||(it!==tt||st!==lt)&&qh(_e,ot,tt,lt),$g=!1;var dt=_e.memoizedState;ot.state=dt,gh(_e,tt,ot,rt),st=_e.memoizedState,it!==tt||dt!==st||Wf.current||$g?(typeof ut=="function"&&(kh(_e,et,ut,tt),st=_e.memoizedState),(it=$g||oh(_e,et,it,tt,dt,st,lt))?(ct||typeof ot.UNSAFE_componentWillMount!="function"&&typeof ot.componentWillMount!="function"||(typeof ot.componentWillMount=="function"&&ot.componentWillMount(),typeof ot.UNSAFE_componentWillMount=="function"&&ot.UNSAFE_componentWillMount()),typeof ot.componentDidMount=="function"&&(_e.flags|=4194308)):(typeof ot.componentDidMount=="function"&&(_e.flags|=4194308),_e.memoizedProps=tt,_e.memoizedState=st),ot.props=tt,ot.state=st,ot.context=lt,tt=it):(typeof ot.componentDidMount=="function"&&(_e.flags|=4194308),tt=!1)}else{ot=_e.stateNode,bh(j,_e),it=_e.memoizedProps,lt=_e.type===_e.elementType?it:Lg(_e.type,it),ot.props=lt,ct=_e.pendingProps,dt=ot.context,st=et.contextType,typeof st=="object"&&st!==null?st=Vg(st):(st=Zf(et)?Xf:H$4.current,st=Yf(_e,st));var ft=et.getDerivedStateFromProps;(ut=typeof ft=="function"||typeof ot.getSnapshotBeforeUpdate=="function")||typeof ot.UNSAFE_componentWillReceiveProps!="function"&&typeof ot.componentWillReceiveProps!="function"||(it!==ct||dt!==st)&&qh(_e,ot,tt,st),$g=!1,dt=_e.memoizedState,ot.state=dt,gh(_e,tt,ot,rt);var pt=_e.memoizedState;it!==ct||dt!==pt||Wf.current||$g?(typeof ft=="function"&&(kh(_e,et,ft,tt),pt=_e.memoizedState),(lt=$g||oh(_e,et,lt,tt,dt,pt,st)||!1)?(ut||typeof ot.UNSAFE_componentWillUpdate!="function"&&typeof ot.componentWillUpdate!="function"||(typeof ot.componentWillUpdate=="function"&&ot.componentWillUpdate(tt,pt,st),typeof ot.UNSAFE_componentWillUpdate=="function"&&ot.UNSAFE_componentWillUpdate(tt,pt,st)),typeof ot.componentDidUpdate=="function"&&(_e.flags|=4),typeof ot.getSnapshotBeforeUpdate=="function"&&(_e.flags|=1024)):(typeof ot.componentDidUpdate!="function"||it===j.memoizedProps&&dt===j.memoizedState||(_e.flags|=4),typeof ot.getSnapshotBeforeUpdate!="function"||it===j.memoizedProps&&dt===j.memoizedState||(_e.flags|=1024),_e.memoizedProps=tt,_e.memoizedState=pt),ot.props=tt,ot.state=pt,ot.context=st,tt=lt):(typeof ot.componentDidUpdate!="function"||it===j.memoizedProps&&dt===j.memoizedState||(_e.flags|=4),typeof ot.getSnapshotBeforeUpdate!="function"||it===j.memoizedProps&&dt===j.memoizedState||(_e.flags|=1024),tt=!1)}return kj(j,_e,et,tt,nt,rt)}function kj(j,_e,et,tt,rt,nt){hj(j,_e);var ot=(_e.flags&128)!==0;if(!tt&&!ot)return rt&&dg(_e,et,!1),$i(j,_e,nt);tt=_e.stateNode,Xi.current=_e;var it=ot&&typeof et.getDerivedStateFromError!="function"?null:tt.render();return _e.flags|=1,j!==null&&ot?(_e.child=Bh(_e,j.child,null,nt),_e.child=Bh(_e,null,it,nt)):Yi(j,_e,it,nt),_e.memoizedState=tt.state,rt&&dg(_e,et,!0),_e.child}function lj(j){var _e=j.stateNode;_e.pendingContext?ag(j,_e.pendingContext,_e.pendingContext!==_e.context):_e.context&&ag(j,_e.context,!1),Ih(j,_e.containerInfo)}function mj(j,_e,et,tt,rt){return Ig(),Jg(rt),_e.flags|=256,Yi(j,_e,et,tt),_e.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(j){return{baseLanes:j,cachePool:null,transitions:null}}function pj(j,_e,et){var tt=_e.pendingProps,rt=M$1.current,nt=!1,ot=(_e.flags&128)!==0,it;if((it=ot)||(it=j!==null&&j.memoizedState===null?!1:(rt&2)!==0),it?(nt=!0,_e.flags&=-129):(j===null||j.memoizedState!==null)&&(rt|=1),G$4(M$1,rt&1),j===null)return Eg(_e),j=_e.memoizedState,j!==null&&(j=j.dehydrated,j!==null)?(_e.mode&1?j.data==="$!"?_e.lanes=8:_e.lanes=1073741824:_e.lanes=1,null):(ot=tt.children,j=tt.fallback,nt?(tt=_e.mode,nt=_e.child,ot={mode:"hidden",children:ot},!(tt&1)&&nt!==null?(nt.childLanes=0,nt.pendingProps=ot):nt=qj(ot,tt,0,null),j=Ah(j,tt,et,null),nt.return=_e,j.return=_e,nt.sibling=j,_e.child=nt,_e.child.memoizedState=oj(et),_e.memoizedState=nj,j):rj(_e,ot));if(rt=j.memoizedState,rt!==null&&(it=rt.dehydrated,it!==null))return sj(j,_e,ot,tt,it,rt,et);if(nt){nt=tt.fallback,ot=_e.mode,rt=j.child,it=rt.sibling;var st={mode:"hidden",children:tt.children};return!(ot&1)&&_e.child!==rt?(tt=_e.child,tt.childLanes=0,tt.pendingProps=st,_e.deletions=null):(tt=wh(rt,st),tt.subtreeFlags=rt.subtreeFlags&14680064),it!==null?nt=wh(it,nt):(nt=Ah(nt,ot,et,null),nt.flags|=2),nt.return=_e,tt.return=_e,tt.sibling=nt,_e.child=tt,tt=nt,nt=_e.child,ot=j.child.memoizedState,ot=ot===null?oj(et):{baseLanes:ot.baseLanes|et,cachePool:null,transitions:ot.transitions},nt.memoizedState=ot,nt.childLanes=j.childLanes&~et,_e.memoizedState=nj,tt}return nt=j.child,j=nt.sibling,tt=wh(nt,{mode:"visible",children:tt.children}),!(_e.mode&1)&&(tt.lanes=et),tt.return=_e,tt.sibling=null,j!==null&&(et=_e.deletions,et===null?(_e.deletions=[j],_e.flags|=16):et.push(j)),_e.child=tt,_e.memoizedState=null,tt}function rj(j,_e){return _e=qj({mode:"visible",children:_e},j.mode,0,null),_e.return=j,j.child=_e}function tj(j,_e,et,tt){return tt!==null&&Jg(tt),Bh(_e,j.child,null,et),j=rj(_e,_e.pendingProps.children),j.flags|=2,_e.memoizedState=null,j}function sj(j,_e,et,tt,rt,nt,ot){if(et)return _e.flags&256?(_e.flags&=-257,tt=Li(Error(p$a(422))),tj(j,_e,ot,tt)):_e.memoizedState!==null?(_e.child=j.child,_e.flags|=128,null):(nt=tt.fallback,rt=_e.mode,tt=qj({mode:"visible",children:tt.children},rt,0,null),nt=Ah(nt,rt,ot,null),nt.flags|=2,tt.return=_e,nt.return=_e,tt.sibling=nt,_e.child=tt,_e.mode&1&&Bh(_e,j.child,null,ot),_e.child.memoizedState=oj(ot),_e.memoizedState=nj,nt);if(!(_e.mode&1))return tj(j,_e,ot,null);if(rt.data==="$!"){if(tt=rt.nextSibling&&rt.nextSibling.dataset,tt)var it=tt.dgst;return tt=it,nt=Error(p$a(419)),tt=Li(nt,tt,void 0),tj(j,_e,ot,tt)}if(it=(ot&j.childLanes)!==0,Ug||it){if(tt=R$1,tt!==null){switch(ot&-ot){case 4:rt=2;break;case 16:rt=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:rt=32;break;case 536870912:rt=268435456;break;default:rt=0}rt=rt&(tt.suspendedLanes|ot)?0:rt,rt!==0&&rt!==nt.retryLane&&(nt.retryLane=rt,Zg(j,rt),mh(tt,j,rt,-1))}return uj(),tt=Li(Error(p$a(421))),tj(j,_e,ot,tt)}return rt.data==="$?"?(_e.flags|=128,_e.child=j.child,_e=vj.bind(null,j),rt._reactRetry=_e,null):(j=nt.treeContext,yg=Lf(rt.nextSibling),xg=_e,I$2=!0,zg=null,j!==null&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=j.id,sg=j.overflow,qg=_e),_e=rj(_e,tt.children),_e.flags|=4096,_e)}function wj(j,_e,et){j.lanes|=_e;var tt=j.alternate;tt!==null&&(tt.lanes|=_e),Sg(j.return,_e,et)}function xj(j,_e,et,tt,rt){var nt=j.memoizedState;nt===null?j.memoizedState={isBackwards:_e,rendering:null,renderingStartTime:0,last:tt,tail:et,tailMode:rt}:(nt.isBackwards=_e,nt.rendering=null,nt.renderingStartTime=0,nt.last=tt,nt.tail=et,nt.tailMode=rt)}function yj(j,_e,et){var tt=_e.pendingProps,rt=tt.revealOrder,nt=tt.tail;if(Yi(j,_e,tt.children,et),tt=M$1.current,tt&2)tt=tt&1|2,_e.flags|=128;else{if(j!==null&&j.flags&128)e:for(j=_e.child;j!==null;){if(j.tag===13)j.memoizedState!==null&&wj(j,et,_e);else if(j.tag===19)wj(j,et,_e);else if(j.child!==null){j.child.return=j,j=j.child;continue}if(j===_e)break e;for(;j.sibling===null;){if(j.return===null||j.return===_e)break e;j=j.return}j.sibling.return=j.return,j=j.sibling}tt&=1}if(G$4(M$1,tt),!(_e.mode&1))_e.memoizedState=null;else switch(rt){case"forwards":for(et=_e.child,rt=null;et!==null;)j=et.alternate,j!==null&&Mh(j)===null&&(rt=et),et=et.sibling;et=rt,et===null?(rt=_e.child,_e.child=null):(rt=et.sibling,et.sibling=null),xj(_e,!1,rt,et,nt);break;case"backwards":for(et=null,rt=_e.child,_e.child=null;rt!==null;){if(j=rt.alternate,j!==null&&Mh(j)===null){_e.child=rt;break}j=rt.sibling,rt.sibling=et,et=rt,rt=j}xj(_e,!0,et,null,nt);break;case"together":xj(_e,!1,null,null,void 0);break;default:_e.memoizedState=null}return _e.child}function jj(j,_e){!(_e.mode&1)&&j!==null&&(j.alternate=null,_e.alternate=null,_e.flags|=2)}function $i(j,_e,et){if(j!==null&&(_e.dependencies=j.dependencies),hh|=_e.lanes,!(et&_e.childLanes))return null;if(j!==null&&_e.child!==j.child)throw Error(p$a(153));if(_e.child!==null){for(j=_e.child,et=wh(j,j.pendingProps),_e.child=et,et.return=_e;j.sibling!==null;)j=j.sibling,et=et.sibling=wh(j,j.pendingProps),et.return=_e;et.sibling=null}return _e.child}function zj(j,_e,et){switch(_e.tag){case 3:lj(_e),Ig();break;case 5:Kh(_e);break;case 1:Zf(_e.type)&&cg(_e);break;case 4:Ih(_e,_e.stateNode.containerInfo);break;case 10:var tt=_e.type._context,rt=_e.memoizedProps.value;G$4(Mg,tt._currentValue),tt._currentValue=rt;break;case 13:if(tt=_e.memoizedState,tt!==null)return tt.dehydrated!==null?(G$4(M$1,M$1.current&1),_e.flags|=128,null):et&_e.child.childLanes?pj(j,_e,et):(G$4(M$1,M$1.current&1),j=$i(j,_e,et),j!==null?j.sibling:null);G$4(M$1,M$1.current&1);break;case 19:if(tt=(et&_e.childLanes)!==0,j.flags&128){if(tt)return yj(j,_e,et);_e.flags|=128}if(rt=_e.memoizedState,rt!==null&&(rt.rendering=null,rt.tail=null,rt.lastEffect=null),G$4(M$1,M$1.current),tt)break;return null;case 22:case 23:return _e.lanes=0,ej(j,_e,et)}return $i(j,_e,et)}var Aj,Bj,Cj,Dj;Aj=function(j,_e){for(var et=_e.child;et!==null;){if(et.tag===5||et.tag===6)j.appendChild(et.stateNode);else if(et.tag!==4&&et.child!==null){et.child.return=et,et=et.child;continue}if(et===_e)break;for(;et.sibling===null;){if(et.return===null||et.return===_e)return;et=et.return}et.sibling.return=et.return,et=et.sibling}};Bj=function(){};Cj=function(j,_e,et,tt){var rt=j.memoizedProps;if(rt!==tt){j=_e.stateNode,Hh(Eh.current);var nt=null;switch(et){case"input":rt=Ya$1(j,rt),tt=Ya$1(j,tt),nt=[];break;case"select":rt=A$4({},rt,{value:void 0}),tt=A$4({},tt,{value:void 0}),nt=[];break;case"textarea":rt=gb$1(j,rt),tt=gb$1(j,tt),nt=[];break;default:typeof rt.onClick!="function"&&typeof tt.onClick=="function"&&(j.onclick=Bf)}ub$1(et,tt);var ot;et=null;for(lt in rt)if(!tt.hasOwnProperty(lt)&&rt.hasOwnProperty(lt)&&rt[lt]!=null)if(lt==="style"){var it=rt[lt];for(ot in it)it.hasOwnProperty(ot)&&(et||(et={}),et[ot]="")}else lt!=="dangerouslySetInnerHTML"&<!=="children"&<!=="suppressContentEditableWarning"&<!=="suppressHydrationWarning"&<!=="autoFocus"&&(ea$1.hasOwnProperty(lt)?nt||(nt=[]):(nt=nt||[]).push(lt,null));for(lt in tt){var st=tt[lt];if(it=rt!=null?rt[lt]:void 0,tt.hasOwnProperty(lt)&&st!==it&&(st!=null||it!=null))if(lt==="style")if(it){for(ot in it)!it.hasOwnProperty(ot)||st&&st.hasOwnProperty(ot)||(et||(et={}),et[ot]="");for(ot in st)st.hasOwnProperty(ot)&&it[ot]!==st[ot]&&(et||(et={}),et[ot]=st[ot])}else et||(nt||(nt=[]),nt.push(lt,et)),et=st;else lt==="dangerouslySetInnerHTML"?(st=st?st.__html:void 0,it=it?it.__html:void 0,st!=null&&it!==st&&(nt=nt||[]).push(lt,st)):lt==="children"?typeof st!="string"&&typeof st!="number"||(nt=nt||[]).push(lt,""+st):lt!=="suppressContentEditableWarning"&<!=="suppressHydrationWarning"&&(ea$1.hasOwnProperty(lt)?(st!=null&<==="onScroll"&&D$4("scroll",j),nt||it===st||(nt=[])):(nt=nt||[]).push(lt,st))}et&&(nt=nt||[]).push("style",et);var lt=nt;(_e.updateQueue=lt)&&(_e.flags|=4)}};Dj=function(j,_e,et,tt){et!==tt&&(_e.flags|=4)};function Ej(j,_e){if(!I$2)switch(j.tailMode){case"hidden":_e=j.tail;for(var et=null;_e!==null;)_e.alternate!==null&&(et=_e),_e=_e.sibling;et===null?j.tail=null:et.sibling=null;break;case"collapsed":et=j.tail;for(var tt=null;et!==null;)et.alternate!==null&&(tt=et),et=et.sibling;tt===null?_e||j.tail===null?j.tail=null:j.tail.sibling=null:tt.sibling=null}}function S$1(j){var _e=j.alternate!==null&&j.alternate.child===j.child,et=0,tt=0;if(_e)for(var rt=j.child;rt!==null;)et|=rt.lanes|rt.childLanes,tt|=rt.subtreeFlags&14680064,tt|=rt.flags&14680064,rt.return=j,rt=rt.sibling;else for(rt=j.child;rt!==null;)et|=rt.lanes|rt.childLanes,tt|=rt.subtreeFlags,tt|=rt.flags,rt.return=j,rt=rt.sibling;return j.subtreeFlags|=tt,j.childLanes=et,_e}function Fj(j,_e,et){var tt=_e.pendingProps;switch(wg(_e),_e.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S$1(_e),null;case 1:return Zf(_e.type)&&$f(),S$1(_e),null;case 3:return tt=_e.stateNode,Jh(),E$4(Wf),E$4(H$4),Oh(),tt.pendingContext&&(tt.context=tt.pendingContext,tt.pendingContext=null),(j===null||j.child===null)&&(Gg(_e)?_e.flags|=4:j===null||j.memoizedState.isDehydrated&&!(_e.flags&256)||(_e.flags|=1024,zg!==null&&(Gj(zg),zg=null))),Bj(j,_e),S$1(_e),null;case 5:Lh(_e);var rt=Hh(Gh.current);if(et=_e.type,j!==null&&_e.stateNode!=null)Cj(j,_e,et,tt,rt),j.ref!==_e.ref&&(_e.flags|=512,_e.flags|=2097152);else{if(!tt){if(_e.stateNode===null)throw Error(p$a(166));return S$1(_e),null}if(j=Hh(Eh.current),Gg(_e)){tt=_e.stateNode,et=_e.type;var nt=_e.memoizedProps;switch(tt[Of]=_e,tt[Pf]=nt,j=(_e.mode&1)!==0,et){case"dialog":D$4("cancel",tt),D$4("close",tt);break;case"iframe":case"object":case"embed":D$4("load",tt);break;case"video":case"audio":for(rt=0;rt<\/script>",j=j.removeChild(j.firstChild)):typeof tt.is=="string"?j=ot.createElement(et,{is:tt.is}):(j=ot.createElement(et),et==="select"&&(ot=j,tt.multiple?ot.multiple=!0:tt.size&&(ot.size=tt.size))):j=ot.createElementNS(j,et),j[Of]=_e,j[Pf]=tt,Aj(j,_e,!1,!1),_e.stateNode=j;e:{switch(ot=vb$1(et,tt),et){case"dialog":D$4("cancel",j),D$4("close",j),rt=tt;break;case"iframe":case"object":case"embed":D$4("load",j),rt=tt;break;case"video":case"audio":for(rt=0;rtHj&&(_e.flags|=128,tt=!0,Ej(nt,!1),_e.lanes=4194304)}else{if(!tt)if(j=Mh(ot),j!==null){if(_e.flags|=128,tt=!0,et=j.updateQueue,et!==null&&(_e.updateQueue=et,_e.flags|=4),Ej(nt,!0),nt.tail===null&&nt.tailMode==="hidden"&&!ot.alternate&&!I$2)return S$1(_e),null}else 2*B$6()-nt.renderingStartTime>Hj&&et!==1073741824&&(_e.flags|=128,tt=!0,Ej(nt,!1),_e.lanes=4194304);nt.isBackwards?(ot.sibling=_e.child,_e.child=ot):(et=nt.last,et!==null?et.sibling=ot:_e.child=ot,nt.last=ot)}return nt.tail!==null?(_e=nt.tail,nt.rendering=_e,nt.tail=_e.sibling,nt.renderingStartTime=B$6(),_e.sibling=null,et=M$1.current,G$4(M$1,tt?et&1|2:et&1),_e):(S$1(_e),null);case 22:case 23:return Ij(),tt=_e.memoizedState!==null,j!==null&&j.memoizedState!==null!==tt&&(_e.flags|=8192),tt&&_e.mode&1?gj&1073741824&&(S$1(_e),_e.subtreeFlags&6&&(_e.flags|=8192)):S$1(_e),null;case 24:return null;case 25:return null}throw Error(p$a(156,_e.tag))}function Jj(j,_e){switch(wg(_e),_e.tag){case 1:return Zf(_e.type)&&$f(),j=_e.flags,j&65536?(_e.flags=j&-65537|128,_e):null;case 3:return Jh(),E$4(Wf),E$4(H$4),Oh(),j=_e.flags,j&65536&&!(j&128)?(_e.flags=j&-65537|128,_e):null;case 5:return Lh(_e),null;case 13:if(E$4(M$1),j=_e.memoizedState,j!==null&&j.dehydrated!==null){if(_e.alternate===null)throw Error(p$a(340));Ig()}return j=_e.flags,j&65536?(_e.flags=j&-65537|128,_e):null;case 19:return E$4(M$1),null;case 4:return Jh(),null;case 10:return Rg(_e.type._context),null;case 22:case 23:return Ij(),null;case 24:return null;default:return null}}var Kj=!1,U$1=!1,Lj=typeof WeakSet=="function"?WeakSet:Set,V=null;function Mj(j,_e){var et=j.ref;if(et!==null)if(typeof et=="function")try{et(null)}catch(tt){W(j,_e,tt)}else et.current=null}function Nj(j,_e,et){try{et()}catch(tt){W(j,_e,tt)}}var Oj=!1;function Pj(j,_e){if(Cf=dd$1,j=Me$2(),Ne$1(j)){if("selectionStart"in j)var et={start:j.selectionStart,end:j.selectionEnd};else e:{et=(et=j.ownerDocument)&&et.defaultView||window;var tt=et.getSelection&&et.getSelection();if(tt&&tt.rangeCount!==0){et=tt.anchorNode;var rt=tt.anchorOffset,nt=tt.focusNode;tt=tt.focusOffset;try{et.nodeType,nt.nodeType}catch{et=null;break e}var ot=0,it=-1,st=-1,lt=0,ut=0,ct=j,dt=null;t:for(;;){for(var ft;ct!==et||rt!==0&&ct.nodeType!==3||(it=ot+rt),ct!==nt||tt!==0&&ct.nodeType!==3||(st=ot+tt),ct.nodeType===3&&(ot+=ct.nodeValue.length),(ft=ct.firstChild)!==null;)dt=ct,ct=ft;for(;;){if(ct===j)break t;if(dt===et&&++lt===rt&&(it=ot),dt===nt&&++ut===tt&&(st=ot),(ft=ct.nextSibling)!==null)break;ct=dt,dt=ct.parentNode}ct=ft}et=it===-1||st===-1?null:{start:it,end:st}}else et=null}et=et||{start:0,end:0}}else et=null;for(Df$1={focusedElem:j,selectionRange:et},dd$1=!1,V=_e;V!==null;)if(_e=V,j=_e.child,(_e.subtreeFlags&1028)!==0&&j!==null)j.return=_e,V=j;else for(;V!==null;){_e=V;try{var pt=_e.alternate;if(_e.flags&1024)switch(_e.tag){case 0:case 11:case 15:break;case 1:if(pt!==null){var gt=pt.memoizedProps,mt=pt.memoizedState,bt=_e.stateNode,_t=bt.getSnapshotBeforeUpdate(_e.elementType===_e.type?gt:Lg(_e.type,gt),mt);bt.__reactInternalSnapshotBeforeUpdate=_t}break;case 3:var xt=_e.stateNode.containerInfo;xt.nodeType===1?xt.textContent="":xt.nodeType===9&&xt.documentElement&&xt.removeChild(xt.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p$a(163))}}catch(yt){W(_e,_e.return,yt)}if(j=_e.sibling,j!==null){j.return=_e.return,V=j;break}V=_e.return}return pt=Oj,Oj=!1,pt}function Qj(j,_e,et){var tt=_e.updateQueue;if(tt=tt!==null?tt.lastEffect:null,tt!==null){var rt=tt=tt.next;do{if((rt.tag&j)===j){var nt=rt.destroy;rt.destroy=void 0,nt!==void 0&&Nj(_e,et,nt)}rt=rt.next}while(rt!==tt)}}function Rj(j,_e){if(_e=_e.updateQueue,_e=_e!==null?_e.lastEffect:null,_e!==null){var et=_e=_e.next;do{if((et.tag&j)===j){var tt=et.create;et.destroy=tt()}et=et.next}while(et!==_e)}}function Sj(j){var _e=j.ref;if(_e!==null){var et=j.stateNode;switch(j.tag){case 5:j=et;break;default:j=et}typeof _e=="function"?_e(j):_e.current=j}}function Tj(j){var _e=j.alternate;_e!==null&&(j.alternate=null,Tj(_e)),j.child=null,j.deletions=null,j.sibling=null,j.tag===5&&(_e=j.stateNode,_e!==null&&(delete _e[Of],delete _e[Pf],delete _e[of$2],delete _e[Qf],delete _e[Rf])),j.stateNode=null,j.return=null,j.dependencies=null,j.memoizedProps=null,j.memoizedState=null,j.pendingProps=null,j.stateNode=null,j.updateQueue=null}function Uj(j){return j.tag===5||j.tag===3||j.tag===4}function Vj(j){e:for(;;){for(;j.sibling===null;){if(j.return===null||Uj(j.return))return null;j=j.return}for(j.sibling.return=j.return,j=j.sibling;j.tag!==5&&j.tag!==6&&j.tag!==18;){if(j.flags&2||j.child===null||j.tag===4)continue e;j.child.return=j,j=j.child}if(!(j.flags&2))return j.stateNode}}function Wj(j,_e,et){var tt=j.tag;if(tt===5||tt===6)j=j.stateNode,_e?et.nodeType===8?et.parentNode.insertBefore(j,_e):et.insertBefore(j,_e):(et.nodeType===8?(_e=et.parentNode,_e.insertBefore(j,et)):(_e=et,_e.appendChild(j)),et=et._reactRootContainer,et!=null||_e.onclick!==null||(_e.onclick=Bf));else if(tt!==4&&(j=j.child,j!==null))for(Wj(j,_e,et),j=j.sibling;j!==null;)Wj(j,_e,et),j=j.sibling}function Xj(j,_e,et){var tt=j.tag;if(tt===5||tt===6)j=j.stateNode,_e?et.insertBefore(j,_e):et.appendChild(j);else if(tt!==4&&(j=j.child,j!==null))for(Xj(j,_e,et),j=j.sibling;j!==null;)Xj(j,_e,et),j=j.sibling}var X=null,Yj=!1;function Zj(j,_e,et){for(et=et.child;et!==null;)ak(j,_e,et),et=et.sibling}function ak(j,_e,et){if(lc$1&&typeof lc$1.onCommitFiberUnmount=="function")try{lc$1.onCommitFiberUnmount(kc$1,et)}catch{}switch(et.tag){case 5:U$1||Mj(et,_e);case 6:var tt=X,rt=Yj;X=null,Zj(j,_e,et),X=tt,Yj=rt,X!==null&&(Yj?(j=X,et=et.stateNode,j.nodeType===8?j.parentNode.removeChild(et):j.removeChild(et)):X.removeChild(et.stateNode));break;case 18:X!==null&&(Yj?(j=X,et=et.stateNode,j.nodeType===8?Kf(j.parentNode,et):j.nodeType===1&&Kf(j,et),bd$1(j)):Kf(X,et.stateNode));break;case 4:tt=X,rt=Yj,X=et.stateNode.containerInfo,Yj=!0,Zj(j,_e,et),X=tt,Yj=rt;break;case 0:case 11:case 14:case 15:if(!U$1&&(tt=et.updateQueue,tt!==null&&(tt=tt.lastEffect,tt!==null))){rt=tt=tt.next;do{var nt=rt,ot=nt.destroy;nt=nt.tag,ot!==void 0&&(nt&2||nt&4)&&Nj(et,_e,ot),rt=rt.next}while(rt!==tt)}Zj(j,_e,et);break;case 1:if(!U$1&&(Mj(et,_e),tt=et.stateNode,typeof tt.componentWillUnmount=="function"))try{tt.props=et.memoizedProps,tt.state=et.memoizedState,tt.componentWillUnmount()}catch(it){W(et,_e,it)}Zj(j,_e,et);break;case 21:Zj(j,_e,et);break;case 22:et.mode&1?(U$1=(tt=U$1)||et.memoizedState!==null,Zj(j,_e,et),U$1=tt):Zj(j,_e,et);break;default:Zj(j,_e,et)}}function bk$1(j){var _e=j.updateQueue;if(_e!==null){j.updateQueue=null;var et=j.stateNode;et===null&&(et=j.stateNode=new Lj),_e.forEach(function(tt){var rt=ck.bind(null,j,tt);et.has(tt)||(et.add(tt),tt.then(rt,rt))})}}function dk(j,_e){var et=_e.deletions;if(et!==null)for(var tt=0;ttrt&&(rt=ot),tt&=~nt}if(tt=rt,tt=B$6()-tt,tt=(120>tt?120:480>tt?480:1080>tt?1080:1920>tt?1920:3e3>tt?3e3:4320>tt?4320:1960*mk(tt/1960))-tt,10j?16:j,xk===null)var tt=!1;else{if(j=xk,xk=null,yk=0,K$1&6)throw Error(p$a(331));var rt=K$1;for(K$1|=4,V=j.current;V!==null;){var nt=V,ot=nt.child;if(V.flags&16){var it=nt.deletions;if(it!==null){for(var st=0;stB$6()-gk?Lk(j,0):sk|=et),Ek(j,_e)}function Zk(j,_e){_e===0&&(j.mode&1?(_e=sc$1,sc$1<<=1,!(sc$1&130023424)&&(sc$1=4194304)):_e=1);var et=L$1();j=Zg(j,_e),j!==null&&(Ac$1(j,_e,et),Ek(j,et))}function vj(j){var _e=j.memoizedState,et=0;_e!==null&&(et=_e.retryLane),Zk(j,et)}function ck(j,_e){var et=0;switch(j.tag){case 13:var tt=j.stateNode,rt=j.memoizedState;rt!==null&&(et=rt.retryLane);break;case 19:tt=j.stateNode;break;default:throw Error(p$a(314))}tt!==null&&tt.delete(_e),Zk(j,et)}var Wk;Wk=function(j,_e,et){if(j!==null)if(j.memoizedProps!==_e.pendingProps||Wf.current)Ug=!0;else{if(!(j.lanes&et)&&!(_e.flags&128))return Ug=!1,zj(j,_e,et);Ug=!!(j.flags&131072)}else Ug=!1,I$2&&_e.flags&1048576&&ug(_e,ng,_e.index);switch(_e.lanes=0,_e.tag){case 2:var tt=_e.type;jj(j,_e),j=_e.pendingProps;var rt=Yf(_e,H$4.current);Tg(_e,et),rt=Xh(null,_e,tt,j,rt,et);var nt=bi();return _e.flags|=1,typeof rt=="object"&&rt!==null&&typeof rt.render=="function"&&rt.$$typeof===void 0?(_e.tag=1,_e.memoizedState=null,_e.updateQueue=null,Zf(tt)?(nt=!0,cg(_e)):nt=!1,_e.memoizedState=rt.state!==null&&rt.state!==void 0?rt.state:null,ah(_e),rt.updater=nh,_e.stateNode=rt,rt._reactInternals=_e,rh(_e,tt,j,et),_e=kj(null,_e,tt,!0,nt,et)):(_e.tag=0,I$2&&nt&&vg(_e),Yi(null,_e,rt,et),_e=_e.child),_e;case 16:tt=_e.elementType;e:{switch(jj(j,_e),j=_e.pendingProps,rt=tt._init,tt=rt(tt._payload),_e.type=tt,rt=_e.tag=$k(tt),j=Lg(tt,j),rt){case 0:_e=dj(null,_e,tt,j,et);break e;case 1:_e=ij(null,_e,tt,j,et);break e;case 11:_e=Zi(null,_e,tt,j,et);break e;case 14:_e=aj(null,_e,tt,Lg(tt.type,j),et);break e}throw Error(p$a(306,tt,""))}return _e;case 0:return tt=_e.type,rt=_e.pendingProps,rt=_e.elementType===tt?rt:Lg(tt,rt),dj(j,_e,tt,rt,et);case 1:return tt=_e.type,rt=_e.pendingProps,rt=_e.elementType===tt?rt:Lg(tt,rt),ij(j,_e,tt,rt,et);case 3:e:{if(lj(_e),j===null)throw Error(p$a(387));tt=_e.pendingProps,nt=_e.memoizedState,rt=nt.element,bh(j,_e),gh(_e,tt,null,et);var ot=_e.memoizedState;if(tt=ot.element,nt.isDehydrated)if(nt={element:tt,isDehydrated:!1,cache:ot.cache,pendingSuspenseBoundaries:ot.pendingSuspenseBoundaries,transitions:ot.transitions},_e.updateQueue.baseState=nt,_e.memoizedState=nt,_e.flags&256){rt=Ki(Error(p$a(423)),_e),_e=mj(j,_e,tt,et,rt);break e}else if(tt!==rt){rt=Ki(Error(p$a(424)),_e),_e=mj(j,_e,tt,et,rt);break e}else for(yg=Lf(_e.stateNode.containerInfo.firstChild),xg=_e,I$2=!0,zg=null,et=Ch(_e,null,tt,et),_e.child=et;et;)et.flags=et.flags&-3|4096,et=et.sibling;else{if(Ig(),tt===rt){_e=$i(j,_e,et);break e}Yi(j,_e,tt,et)}_e=_e.child}return _e;case 5:return Kh(_e),j===null&&Eg(_e),tt=_e.type,rt=_e.pendingProps,nt=j!==null?j.memoizedProps:null,ot=rt.children,Ef$1(tt,rt)?ot=null:nt!==null&&Ef$1(tt,nt)&&(_e.flags|=32),hj(j,_e),Yi(j,_e,ot,et),_e.child;case 6:return j===null&&Eg(_e),null;case 13:return pj(j,_e,et);case 4:return Ih(_e,_e.stateNode.containerInfo),tt=_e.pendingProps,j===null?_e.child=Bh(_e,null,tt,et):Yi(j,_e,tt,et),_e.child;case 11:return tt=_e.type,rt=_e.pendingProps,rt=_e.elementType===tt?rt:Lg(tt,rt),Zi(j,_e,tt,rt,et);case 7:return Yi(j,_e,_e.pendingProps,et),_e.child;case 8:return Yi(j,_e,_e.pendingProps.children,et),_e.child;case 12:return Yi(j,_e,_e.pendingProps.children,et),_e.child;case 10:e:{if(tt=_e.type._context,rt=_e.pendingProps,nt=_e.memoizedProps,ot=rt.value,G$4(Mg,tt._currentValue),tt._currentValue=ot,nt!==null)if(He$2(nt.value,ot)){if(nt.children===rt.children&&!Wf.current){_e=$i(j,_e,et);break e}}else for(nt=_e.child,nt!==null&&(nt.return=_e);nt!==null;){var it=nt.dependencies;if(it!==null){ot=nt.child;for(var st=it.firstContext;st!==null;){if(st.context===tt){if(nt.tag===1){st=ch(-1,et&-et),st.tag=2;var lt=nt.updateQueue;if(lt!==null){lt=lt.shared;var ut=lt.pending;ut===null?st.next=st:(st.next=ut.next,ut.next=st),lt.pending=st}}nt.lanes|=et,st=nt.alternate,st!==null&&(st.lanes|=et),Sg(nt.return,et,_e),it.lanes|=et;break}st=st.next}}else if(nt.tag===10)ot=nt.type===_e.type?null:nt.child;else if(nt.tag===18){if(ot=nt.return,ot===null)throw Error(p$a(341));ot.lanes|=et,it=ot.alternate,it!==null&&(it.lanes|=et),Sg(ot,et,_e),ot=nt.sibling}else ot=nt.child;if(ot!==null)ot.return=nt;else for(ot=nt;ot!==null;){if(ot===_e){ot=null;break}if(nt=ot.sibling,nt!==null){nt.return=ot.return,ot=nt;break}ot=ot.return}nt=ot}Yi(j,_e,rt.children,et),_e=_e.child}return _e;case 9:return rt=_e.type,tt=_e.pendingProps.children,Tg(_e,et),rt=Vg(rt),tt=tt(rt),_e.flags|=1,Yi(j,_e,tt,et),_e.child;case 14:return tt=_e.type,rt=Lg(tt,_e.pendingProps),rt=Lg(tt.type,rt),aj(j,_e,tt,rt,et);case 15:return cj(j,_e,_e.type,_e.pendingProps,et);case 17:return tt=_e.type,rt=_e.pendingProps,rt=_e.elementType===tt?rt:Lg(tt,rt),jj(j,_e),_e.tag=1,Zf(tt)?(j=!0,cg(_e)):j=!1,Tg(_e,et),ph(_e,tt,rt),rh(_e,tt,rt,et),kj(null,_e,tt,!0,j,et);case 19:return yj(j,_e,et);case 22:return ej(j,_e,et)}throw Error(p$a(156,_e.tag))};function Gk(j,_e){return ac$1(j,_e)}function al(j,_e,et,tt){this.tag=j,this.key=et,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=_e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=tt,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Bg(j,_e,et,tt){return new al(j,_e,et,tt)}function bj(j){return j=j.prototype,!(!j||!j.isReactComponent)}function $k(j){if(typeof j=="function")return bj(j)?1:0;if(j!=null){if(j=j.$$typeof,j===Da$1)return 11;if(j===Ga$1)return 14}return 2}function wh(j,_e){var et=j.alternate;return et===null?(et=Bg(j.tag,_e,j.key,j.mode),et.elementType=j.elementType,et.type=j.type,et.stateNode=j.stateNode,et.alternate=j,j.alternate=et):(et.pendingProps=_e,et.type=j.type,et.flags=0,et.subtreeFlags=0,et.deletions=null),et.flags=j.flags&14680064,et.childLanes=j.childLanes,et.lanes=j.lanes,et.child=j.child,et.memoizedProps=j.memoizedProps,et.memoizedState=j.memoizedState,et.updateQueue=j.updateQueue,_e=j.dependencies,et.dependencies=_e===null?null:{lanes:_e.lanes,firstContext:_e.firstContext},et.sibling=j.sibling,et.index=j.index,et.ref=j.ref,et}function yh(j,_e,et,tt,rt,nt){var ot=2;if(tt=j,typeof j=="function")bj(j)&&(ot=1);else if(typeof j=="string")ot=5;else e:switch(j){case ya$1:return Ah(et.children,rt,nt,_e);case za$1:ot=8,rt|=8;break;case Aa$1:return j=Bg(12,et,_e,rt|2),j.elementType=Aa$1,j.lanes=nt,j;case Ea:return j=Bg(13,et,_e,rt),j.elementType=Ea,j.lanes=nt,j;case Fa:return j=Bg(19,et,_e,rt),j.elementType=Fa,j.lanes=nt,j;case Ia$1:return qj(et,rt,nt,_e);default:if(typeof j=="object"&&j!==null)switch(j.$$typeof){case Ba$1:ot=10;break e;case Ca$1:ot=9;break e;case Da$1:ot=11;break e;case Ga$1:ot=14;break e;case Ha$1:ot=16,tt=null;break e}throw Error(p$a(130,j==null?j:typeof j,""))}return _e=Bg(ot,et,_e,rt),_e.elementType=j,_e.type=tt,_e.lanes=nt,_e}function Ah(j,_e,et,tt){return j=Bg(7,j,tt,_e),j.lanes=et,j}function qj(j,_e,et,tt){return j=Bg(22,j,tt,_e),j.elementType=Ia$1,j.lanes=et,j.stateNode={isHidden:!1},j}function xh(j,_e,et){return j=Bg(6,j,null,_e),j.lanes=et,j}function zh(j,_e,et){return _e=Bg(4,j.children!==null?j.children:[],j.key,_e),_e.lanes=et,_e.stateNode={containerInfo:j.containerInfo,pendingChildren:null,implementation:j.implementation},_e}function bl(j,_e,et,tt,rt){this.tag=_e,this.containerInfo=j,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zc$1(0),this.expirationTimes=zc$1(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zc$1(0),this.identifierPrefix=tt,this.onRecoverableError=rt,this.mutableSourceEagerHydrationData=null}function cl(j,_e,et,tt,rt,nt,ot,it,st){return j=new bl(j,_e,et,it,st),_e===1?(_e=1,nt===!0&&(_e|=8)):_e=0,nt=Bg(3,null,null,_e),j.current=nt,nt.stateNode=j,nt.memoizedState={element:tt,isDehydrated:et,cache:null,transitions:null,pendingSuspenseBoundaries:null},ah(nt),j}function dl(j,_e,et){var tt=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(j){console.error(j)}}checkDCE(),reactDom.exports=reactDom_production_min;var reactDomExports=reactDom.exports;const ReactDOM=getDefaultExportFromCjs(reactDomExports);var m$a=reactDomExports;client.createRoot=m$a.createRoot,client.hydrateRoot=m$a.hydrateRoot;const positionMap=["Top","Right","Bottom","Left"];function generateStyles(j,_e,...et){const[tt,rt=tt,nt=tt,ot=rt]=et,it=[tt,rt,nt,ot],st={};for(let lt=0;lttypeof j=="string"&&/(\d+(\w+|%))/.test(j),isUnitless=j=>typeof j=="number"&&!Number.isNaN(j),isInitial=j=>j==="initial",isAuto=j=>j==="auto",isNone=j=>j==="none",widthReservedKeys=["content","fit-content","max-content","min-content"],isWidth=j=>widthReservedKeys.some(_e=>j===_e)||isUnit(j);function flex(...j){const _e=j.length===1,et=j.length===2,tt=j.length===3;if(_e){const[rt]=j;if(isInitial(rt))return{flexGrow:0,flexShrink:1,flexBasis:"auto"};if(isAuto(rt))return{flexGrow:1,flexShrink:1,flexBasis:"auto"};if(isNone(rt))return{flexGrow:0,flexShrink:0,flexBasis:"auto"};if(isUnitless(rt))return{flexGrow:rt,flexShrink:1,flexBasis:0};if(isWidth(rt))return{flexGrow:1,flexShrink:1,flexBasis:rt}}if(et){const[rt,nt]=j;if(isUnitless(nt))return{flexGrow:rt,flexShrink:nt,flexBasis:0};if(isWidth(nt))return{flexGrow:rt,flexShrink:1,flexBasis:nt}}if(tt){const[rt,nt,ot]=j;if(isUnitless(rt)&&isUnitless(nt)&&(isAuto(ot)||isWidth(ot)))return{flexGrow:rt,flexShrink:nt,flexBasis:ot}}return{}}function gap(j,_e=j){return{columnGap:j,rowGap:_e}}const cssVarRegEx=/var\(.*\)/gi;function isValidGridAreaInput(j){return j===void 0||typeof j=="number"||typeof j=="string"&&!cssVarRegEx.test(j)}const customIdentRegEx=/^[a-zA-Z0-9\-_\\#;]+$/,nonCustomIdentRegEx=/^-moz-initial$|^auto$|^initial$|^inherit$|^revert$|^unset$|^span \d+$|^\d.*/;function isCustomIdent(j){return j!==void 0&&typeof j=="string"&&customIdentRegEx.test(j)&&!nonCustomIdentRegEx.test(j)}function gridArea(...j){if(j.some(nt=>!isValidGridAreaInput(nt)))return{};const _e=j[0]!==void 0?j[0]:"auto",et=j[1]!==void 0?j[1]:isCustomIdent(_e)?_e:"auto",tt=j[2]!==void 0?j[2]:isCustomIdent(_e)?_e:"auto",rt=j[3]!==void 0?j[3]:isCustomIdent(et)?et:"auto";return{gridRowStart:_e,gridColumnStart:et,gridRowEnd:tt,gridColumnEnd:rt}}function margin(...j){return generateStyles("margin","",...j)}function marginBlock(j,_e=j){return{marginBlockStart:j,marginBlockEnd:_e}}function marginInline(j,_e=j){return{marginInlineStart:j,marginInlineEnd:_e}}function padding(...j){return generateStyles("padding","",...j)}function paddingBlock(j,_e=j){return{paddingBlockStart:j,paddingBlockEnd:_e}}function paddingInline(j,_e=j){return{paddingInlineStart:j,paddingInlineEnd:_e}}function overflow(j,_e=j){return{overflowX:j,overflowY:_e}}function inset(...j){const[_e,et=_e,tt=_e,rt=et]=j;return{top:_e,right:et,bottom:tt,left:rt}}function outline(j,_e,et){return{outlineWidth:j,..._e&&{outlineStyle:_e},...et&&{outlineColor:et}}}function transition$1(...j){return isTransitionGlobalInputs(j)?{transitionDelay:j[0],transitionDuration:j[0],transitionProperty:j[0],transitionTimingFunction:j[0]}:normalizeTransitionInputs(j).reduce((et,[tt,rt="0s",nt="0s",ot="ease"],it)=>(it===0?(et.transitionProperty=tt,et.transitionDuration=rt,et.transitionDelay=nt,et.transitionTimingFunction=ot):(et.transitionProperty+=`, ${tt}`,et.transitionDuration+=`, ${rt}`,et.transitionDelay+=`, ${nt}`,et.transitionTimingFunction+=`, ${ot}`),et),{})}const transitionGlobalInputs=["-moz-initial","inherit","initial","revert","unset"];function isTransitionGlobalInputs(j){return j.length===1&&transitionGlobalInputs.includes(j[0])}function normalizeTransitionInputs(j){return j.length===1&&Array.isArray(j[0])?j[0]:[j]}function textDecoration(j,..._e){if(_e.length===0)return isTextDecorationStyleInput(j)?{textDecorationStyle:j}:{textDecorationLine:j};const[et,tt,rt]=_e;return{textDecorationLine:j,...et&&{textDecorationStyle:et},...tt&&{textDecorationColor:tt},...rt&&{textDecorationThickness:rt}}}const textDecorationStyleInputs=["dashed","dotted","double","solid","wavy"];function isTextDecorationStyleInput(j){return textDecorationStyleInputs.includes(j)}const __GLOBAL__=typeof window>"u"?global:window,__NAMESPACE_PREFIX__="@griffel/";function getGlobalVar(j,_e){return __GLOBAL__[Symbol.for(__NAMESPACE_PREFIX__+j)]||(__GLOBAL__[Symbol.for(__NAMESPACE_PREFIX__+j)]=_e),__GLOBAL__[Symbol.for(__NAMESPACE_PREFIX__+j)]}const DEFINITION_LOOKUP_TABLE=getGlobalVar("DEFINITION_LOOKUP_TABLE",{}),DATA_BUCKET_ATTR="data-make-styles-bucket",HASH_PREFIX="f",SEQUENCE_HASH_LENGTH=7,SEQUENCE_PREFIX="___",SEQUENCE_SIZE=SEQUENCE_PREFIX.length+SEQUENCE_HASH_LENGTH,LOOKUP_DEFINITIONS_INDEX=0,LOOKUP_DIR_INDEX=1,UNSUPPORTED_CSS_PROPERTIES={all:1,animation:1,background:1,backgroundPosition:1,border:1,borderBlock:1,borderBlockEnd:1,borderBlockStart:1,borderBottom:1,borderColor:1,borderImage:1,borderInline:1,borderInlineEnd:1,borderInlineStart:1,borderLeft:1,borderRadius:1,borderRight:1,borderStyle:1,borderTop:1,borderWidth:1,caret:1,columns:1,columnRule:1,containIntrinsicSize:1,container:1,flex:1,flexFlow:1,font:1,gap:1,grid:1,gridArea:1,gridColumn:1,gridRow:1,gridTemplate:1,inset:1,insetBlock:1,insetInline:1,lineClamp:1,listStyle:1,margin:1,marginBlock:1,marginInline:1,mask:1,maskBorder:1,motion:1,offset:1,outline:1,overflow:1,overscrollBehavior:1,padding:1,paddingBlock:1,paddingInline:1,placeItems:1,placeContent:1,placeSelf:1,scrollMargin:1,scrollMarginBlock:1,scrollMarginInline:1,scrollPadding:1,scrollPaddingBlock:1,scrollPaddingInline:1,scrollSnapMargin:1,scrollTimeline:1,textDecoration:1,textEmphasis:1,transition:1};function murmur2(j){for(var _e=0,et,tt=0,rt=j.length;rt>=4;++tt,rt-=4)et=j.charCodeAt(tt)&255|(j.charCodeAt(++tt)&255)<<8|(j.charCodeAt(++tt)&255)<<16|(j.charCodeAt(++tt)&255)<<24,et=(et&65535)*1540483477+((et>>>16)*59797<<16),et^=et>>>24,_e=(et&65535)*1540483477+((et>>>16)*59797<<16)^(_e&65535)*1540483477+((_e>>>16)*59797<<16);switch(rt){case 3:_e^=(j.charCodeAt(tt+2)&255)<<16;case 2:_e^=(j.charCodeAt(tt+1)&255)<<8;case 1:_e^=j.charCodeAt(tt)&255,_e=(_e&65535)*1540483477+((_e>>>16)*59797<<16)}return _e^=_e>>>13,_e=(_e&65535)*1540483477+((_e>>>16)*59797<<16),((_e^_e>>>15)>>>0).toString(36)}function padEndHash(j){const _e=j.length;if(_e===SEQUENCE_HASH_LENGTH)return j;for(let et=_e;et0&&(_e+=ut.slice(0,ct)),et+=dt,tt[lt]=dt}}}if(et==="")return _e.slice(0,-1);const rt=mergeClassesCachedResults[et];if(rt!==void 0)return _e+rt;const nt=[];for(let lt=0;lt{const _e=Object.keys(mergeClassesCachedResults).find(et=>mergeClassesCachedResults[et].startsWith(j));return _e?_e.split(SEQUENCE_PREFIX).filter(et=>et.length).map(et=>SEQUENCE_PREFIX+et):[]},addCSSRule:j=>{cssRules.add(j)},addSequenceDetails:(j,_e)=>{Object.entries(j).forEach(([et,tt])=>{sequenceDetails[tt.substring(0,SEQUENCE_SIZE)]={slotName:et,sourceURL:_e}})},getCSSRules:()=>Array.from(cssRules),getSequenceDetails:j=>sequenceDetails[j]};function getDirectionalClassName(j,_e){return Array.isArray(j)?_e==="rtl"?j[1]:j[0]:j}function getDebugClassNames(j,_e,et,tt){const rt=j[0],nt=j[1];return Object.entries(rt).map(([ot,it])=>{const st=getDirectionalClassName(it,nt);let lt;if(et&&_e){const ut=et.find(({className:ct})=>ct===st);!ut&&_e[0][ot]?lt=getDirectionalClassName(_e[0][ot],_e[1]):ut&&_e[0][ot]?lt=(tt?tt.filter(({debugClassNames:dt})=>dt.filter(({className:ft})=>ft===st).length>0).length>0:!1)?ut.className:ut.overriddenBy:(!ut&&!_e[0][ot]||ut&&!_e[0][ot])&&(lt=void 0)}return{className:st,overriddenBy:lt}})}function getDebugTree(j,_e){const et=DEFINITION_LOOKUP_TABLE[j];if(et===void 0)return;const tt=_e?DEFINITION_LOOKUP_TABLE[_e.sequenceHash]:void 0,rt=getDebugClassNames(et,tt,_e==null?void 0:_e.debugClassNames,_e==null?void 0:_e.children),nt={sequenceHash:j,direction:et[1],children:[],debugClassNames:rt};return debugData.getChildrenSequences(nt.sequenceHash).reverse().forEach(it=>{const st=getDebugTree(it,nt);st&&nt.children.push(st)}),nt.children.length||(nt.rules={},nt.debugClassNames.forEach(({className:it})=>{const st=debugData.getSequenceDetails(j);st&&(nt.slot=st.slotName,nt.sourceURL=st.sourceURL);const lt=debugData.getCSSRules().find(ut=>ut.includes(it));nt.rules[it]=lt})),nt}function injectDevTools(j){const _e=j.defaultView;if(!_e||_e.__GRIFFEL_DEVTOOLS__)return;const et={getInfo:tt=>{const rt=Array.from(tt.classList).find(nt=>nt.startsWith(SEQUENCE_PREFIX));if(rt!==void 0)return getDebugTree(rt)}};Object.defineProperty(_e,"__GRIFFEL_DEVTOOLS__",{configurable:!1,enumerable:!1,get(){return et}})}function normalizeCSSBucketEntry(j){return Array.isArray(j)?j:[j]}function createIsomorphicStyleSheet(j,_e,et){const tt=[];if(et[DATA_BUCKET_ATTR]=_e,j)for(const nt in et)j.setAttribute(nt,et[nt]);function rt(nt){return j!=null&&j.sheet?j.sheet.insertRule(nt,j.sheet.cssRules.length):tt.push(nt)}return{elementAttributes:et,insertRule:rt,element:j,bucketName:_e,cssRules(){return j!=null&&j.sheet?Array.from(j.sheet.cssRules).map(nt=>nt.cssText):tt}}}const styleBucketOrdering=["r","d","l","v","w","f","i","h","a","s","k","t","m","c"],styleBucketOrderingMap=styleBucketOrdering.reduce((j,_e,et)=>(j[_e]=et,j),{});function getStyleSheetForBucket(j,_e,et,tt,rt={}){const nt=j==="m",ot=nt?j+rt.m:j;if(!tt.stylesheets[ot]){const it=_e&&_e.createElement("style"),st=createIsomorphicStyleSheet(it,j,{...tt.styleElementAttributes,...nt&&{media:rt.m}});tt.stylesheets[ot]=st,_e&&it&&_e.head.insertBefore(it,findInsertionPoint(_e,et,j,tt,rt))}return tt.stylesheets[ot]}function findInsertionPoint(j,_e,et,tt,rt){const nt=styleBucketOrderingMap[et];let ot=ut=>nt-styleBucketOrderingMap[ut.getAttribute(DATA_BUCKET_ATTR)],it=j.head.querySelectorAll(`[${DATA_BUCKET_ATTR}]`);if(et==="m"&&rt){const ut=j.head.querySelectorAll(`[${DATA_BUCKET_ATTR}="${et}"]`);ut.length&&(it=ut,ot=ct=>tt.compareMediaQueries(rt.m,ct.media))}const st=it.length;let lt=st-1;for(;lt>=0;){const ut=it.item(lt);if(ot(ut)>0)return ut.nextSibling;lt--}return st>0?it.item(0):_e?_e.nextSibling:null}function safeInsertRule(j,_e){try{j.insertRule(_e)}catch{}}let lastIndex=0;const defaultCompareMediaQueries=(j,_e)=>j<_e?-1:j>_e?1:0;function createDOMRenderer(j=typeof document>"u"?void 0:document,_e={}){const{unstable_filterCSSRule:et,insertionPoint:tt,styleElementAttributes:rt,compareMediaQueries:nt=defaultCompareMediaQueries}=_e,ot={insertionCache:{},stylesheets:{},styleElementAttributes:Object.freeze(rt),compareMediaQueries:nt,id:`d${lastIndex++}`,insertCSSRules(it){for(const st in it){const lt=it[st];for(let ut=0,ct=lt.length;ut{const j={};return function(et,tt){j[et.id]===void 0&&(et.insertCSSRules(tt),j[et.id]=!0)}};function arrayToObject(j){return j.reduce(function(_e,et){var tt=et[0],rt=et[1];return _e[tt]=rt,_e[rt]=tt,_e},{})}function isBoolean$2(j){return typeof j=="boolean"}function isFunction$8(j){return typeof j=="function"}function isNumber$6(j){return typeof j=="number"}function isNullOrUndefined$1(j){return j===null||typeof j>"u"}function isObject$l(j){return j&&typeof j=="object"}function isString$3(j){return typeof j=="string"}function includes(j,_e){return j.indexOf(_e)!==-1}function flipSign(j){return parseFloat(j)===0?j:j[0]==="-"?j.slice(1):"-"+j}function flipTransformSign(j,_e,et,tt){return _e+flipSign(et)+tt}function calculateNewBackgroundPosition(j){var _e=j.indexOf(".");if(_e===-1)j=100-parseFloat(j)+"%";else{var et=j.length-_e-2;j=100-parseFloat(j),j=j.toFixed(et)+"%"}return j}function getValuesAsList(j){return j.replace(/ +/g," ").split(" ").map(function(_e){return _e.trim()}).filter(Boolean).reduce(function(_e,et){var tt=_e.list,rt=_e.state,nt=(et.match(/\(/g)||[]).length,ot=(et.match(/\)/g)||[]).length;return rt.parensDepth>0?tt[tt.length-1]=tt[tt.length-1]+" "+et:tt.push(et),rt.parensDepth+=nt-ot,{list:tt,state:rt}},{list:[],state:{parensDepth:0}}).list}function handleQuartetValues(j){var _e=getValuesAsList(j);if(_e.length<=3||_e.length>4)return j;var et=_e[0],tt=_e[1],rt=_e[2],nt=_e[3];return[et,nt,rt,tt].join(" ")}function canConvertValue(j){return!isBoolean$2(j)&&!isNullOrUndefined$1(j)}function splitShadow(j){for(var _e=[],et=0,tt=0,rt=!1;tt0?charat$1(characters$1,--position$3):0,column$1--,character$1===10&&(column$1=1,line$2--),character$1}function next$1(){return character$1=position$32||token$2(character$1)>3?"":" "}function tokenizer(j){for(;next$1();)switch(token$2(character$1)){case 0:append$2(identifier$1(position$3-1),j);break;case 2:append$2(delimit$1(character$1),j);break;default:append$2(from$2(character$1),j)}return j}function escaping$1(j,_e){for(;--_e&&next$1()&&!(character$1<48||character$1>102||character$1>57&&character$1<65||character$1>70&&character$1<97););return slice$1(j,caret$1()+(_e<6&&peek$1()==32&&next$1()==32))}function delimiter$1(j){for(;next$1();)switch(character$1){case j:return position$3;case 34:case 39:j!==34&&j!==39&&delimiter$1(character$1);break;case 40:j===41&&delimiter$1(j);break;case 92:next$1();break}return position$3}function commenter$1(j,_e){for(;next$1()&&j+character$1!==57;)if(j+character$1===84&&peek$1()===47)break;return"/*"+slice$1(_e,position$3-1)+"*"+from$2(j===47?j:next$1())}function identifier$1(j){for(;!token$2(peek$1());)next$1();return slice$1(j,position$3)}function compile$1(j){return dealloc$1(parse$n("",null,null,null,[""],j=alloc$1(j),0,[0],j))}function parse$n(j,_e,et,tt,rt,nt,ot,it,st){for(var lt=0,ut=0,ct=ot,dt=0,ft=0,pt=0,gt=1,mt=1,bt=1,_t=0,xt="",yt=rt,Et=nt,St=tt,Tt=xt;mt;)switch(pt=_t,_t=next$1()){case 40:if(pt!=108&&charat$1(Tt,ct-1)==58){indexof$1(Tt+=replace$2(delimit$1(_t),"&","&\f"),"&\f")!=-1&&(bt=-1);break}case 34:case 39:case 91:Tt+=delimit$1(_t);break;case 9:case 10:case 13:case 32:Tt+=whitespace$1(pt);break;case 92:Tt+=escaping$1(caret$1()-1,7);continue;case 47:switch(peek$1()){case 42:case 47:append$2(comment$1(commenter$1(next$1(),caret$1()),_e,et,st),st);break;default:Tt+="/"}break;case 123*gt:it[lt++]=strlen$1(Tt)*bt;case 125*gt:case 59:case 0:switch(_t){case 0:case 125:mt=0;case 59+ut:bt==-1&&(Tt=replace$2(Tt,/\f/g,"")),ft>0&&strlen$1(Tt)-ct&&append$2(ft>32?declaration$1(Tt+";",tt,et,ct-1,st):declaration$1(replace$2(Tt," ","")+";",tt,et,ct-2,st),st);break;case 59:Tt+=";";default:if(append$2(St=ruleset$1(Tt,_e,et,lt,ut,rt,it,xt,yt=[],Et=[],ct,nt),nt),_t===123)if(ut===0)parse$n(Tt,_e,St,St,yt,nt,ct,it,Et);else switch(dt===99&&charat$1(Tt,3)===110?100:dt){case 100:case 108:case 109:case 115:parse$n(j,St,St,tt&&append$2(ruleset$1(j,St,St,0,0,rt,it,xt,rt,yt=[],ct,Et),Et),rt,Et,ct,it,tt?yt:Et);break;default:parse$n(Tt,St,St,St,[""],Et,0,it,Et)}}lt=ut=ft=0,gt=bt=1,xt=Tt="",ct=ot;break;case 58:ct=1+strlen$1(Tt),ft=pt;default:if(gt<1){if(_t==123)--gt;else if(_t==125&>++==0&&prev$1()==125)continue}switch(Tt+=from$2(_t),_t*gt){case 38:bt=ut>0?1:(Tt+="\f",-1);break;case 44:it[lt++]=(strlen$1(Tt)-1)*bt,bt=1;break;case 64:peek$1()===45&&(Tt+=delimit$1(next$1())),dt=peek$1(),ut=ct=strlen$1(xt=Tt+=identifier$1(caret$1())),_t++;break;case 45:pt===45&&strlen$1(Tt)==2&&(gt=0)}}return nt}function ruleset$1(j,_e,et,tt,rt,nt,ot,it,st,lt,ut,ct){for(var dt=rt-1,ft=rt===0?nt:[""],pt=sizeof$1(ft),gt=0,mt=0,bt=0;gt0?ft[_t]+" "+xt:replace$2(xt,/&\f/g,ft[_t])))&&(st[bt++]=yt);return node$1(j,_e,et,rt===0?RULESET$1:it,st,lt,ut,ct)}function comment$1(j,_e,et,tt){return node$1(j,_e,et,COMMENT$1,from$2(char$1()),substr$1(j,2,-2),0,tt)}function declaration$1(j,_e,et,tt,rt){return node$1(j,_e,et,DECLARATION$1,substr$1(j,0,tt),substr$1(j,tt+1,-1),tt,rt)}function serialize$1(j,_e){for(var et="",tt=0;tt{switch(j.type){case RULESET$1:if(typeof j.props=="string")return;j.props=j.props.map(_e=>_e.indexOf(":global(")===-1?_e:tokenize(_e).reduce((et,tt,rt,nt)=>{if(tt==="")return et;if(tt===":"&&nt[rt+1]==="global"){const ot=nt[rt+2].slice(1,-1)+" ";return et.unshift(ot),nt[rt+1]="",nt[rt+2]="",et}return et.push(tt),et},[]).join(""))}};function prefix$4(j,_e,et){switch(hash$2(j,_e)){case 5103:return WEBKIT$1+"print-"+j+j;case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:return WEBKIT$1+j+j;case 4215:if(charat$1(j,9)===102||charat$1(j,_e+1)===116)return WEBKIT$1+j+j;break;case 4789:return MOZ$1+j+j;case 5349:case 4246:case 6968:return WEBKIT$1+j+MOZ$1+j+j;case 6187:if(!match$m(j,/grab/))return replace$2(replace$2(replace$2(j,/(zoom-|grab)/,WEBKIT$1+"$1"),/(image-set)/,WEBKIT$1+"$1"),j,"")+j;case 5495:case 3959:return replace$2(j,/(image-set\([^]*)/,WEBKIT$1+"$1$`$1");case 4095:case 3583:case 4068:case 2532:return replace$2(j,/(.+)-inline(.+)/,WEBKIT$1+"$1$2")+j;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(strlen$1(j)-1-_e>6)switch(charat$1(j,_e+1)){case 102:if(charat$1(j,_e+3)===108)return replace$2(j,/(.+:)(.+)-([^]+)/,"$1"+WEBKIT$1+"$2-$3$1"+MOZ$1+(charat$1(j,_e+3)==108?"$3":"$2-$3"))+j;case 115:return~indexof$1(j,"stretch")?prefix$4(replace$2(j,"stretch","fill-available"),_e)+j:j}break}return j}function prefixerPlugin(j,_e,et,tt){if(j.length>-1&&!j.return)switch(j.type){case DECLARATION$1:j.return=prefix$4(j.value,j.length);return;case RULESET$1:if(j.length)return combine$1(j.props,function(rt){switch(match$m(rt,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize$1([copy$5(j,{props:[replace$2(rt,/:(read-\w+)/,":"+MOZ$1+"$1")]})],tt);case"::placeholder":return serialize$1([copy$5(j,{props:[replace$2(rt,/:(plac\w+)/,":"+WEBKIT$1+"input-$1")]}),copy$5(j,{props:[replace$2(rt,/:(plac\w+)/,":"+MOZ$1+"$1")]})],tt)}return""})}}function isAtRuleElement(j){switch(j.type){case"@container":case MEDIA:case SUPPORTS:case LAYER$1:return!0}return!1}const sortClassesInAtRulesPlugin=j=>{isAtRuleElement(j)&&Array.isArray(j.children)&&j.children.sort((_e,et)=>_e.props[0]>et.props[0]?1:-1)};function noop$7(){}function compileCSSRules(j,_e){const et=[];return serialize$1(compile$1(j),middleware$1([globalPlugin,_e?sortClassesInAtRulesPlugin:noop$7,prefixerPlugin,stringify$2,rulesheet$1(tt=>et.push(tt))])),et}const PSEUDO_SELECTOR_REGEX=/,( *[^ &])/g;function normalizePseudoSelector(j){return"&"+normalizeNestedProperty(j.replace(PSEUDO_SELECTOR_REGEX,",&$1"))}function createCSSRule(j,_e,et){let tt=_e;return et.length>0&&(tt=et.reduceRight((rt,nt)=>`${normalizePseudoSelector(nt)} { ${rt} }`,_e)),`${j}{${tt}}`}function compileAtomicCSSRule(j){const{className:_e,media:et,layer:tt,selectors:rt,support:nt,property:ot,rtlClassName:it,rtlProperty:st,rtlValue:lt,value:ut,container:ct}=j,dt=`.${_e}`,ft=Array.isArray(ut)?`${ut.map(gt=>`${hyphenateProperty(ot)}: ${gt}`).join(";")};`:`${hyphenateProperty(ot)}: ${ut};`;let pt=createCSSRule(dt,ft,rt);if(st&&it){const gt=`.${it}`,mt=Array.isArray(lt)?`${lt.map(bt=>`${hyphenateProperty(st)}: ${bt}`).join(";")};`:`${hyphenateProperty(st)}: ${lt};`;pt+=createCSSRule(gt,mt,rt)}return et&&(pt=`@media ${et} { ${pt} }`),tt&&(pt=`@layer ${tt} { ${pt} }`),nt&&(pt=`@supports ${nt} { ${pt} }`),ct&&(pt=`@container ${ct} { ${pt} }`),compileCSSRules(pt,!0)}function cssifyObject(j){let _e="";for(const et in j){const tt=j[et];typeof tt!="string"&&typeof tt!="number"||(_e+=hyphenateProperty(et)+":"+tt+";")}return _e}function compileKeyframeRule(j){let _e="";for(const et in j)_e+=`${et}{${cssifyObject(j[et])}}`;return _e}function compileKeyframesCSS(j,_e){const et=`@keyframes ${j} {${_e}}`,tt=[];return serialize$1(compile$1(et),middleware$1([stringify$2,prefixerPlugin,rulesheet$1(rt=>tt.push(rt))])),tt}function generateCombinedQuery(j,_e){return j.length===0?_e:`${j} and ${_e}`}function isMediaQuerySelector(j){return j.substr(0,6)==="@media"}function isLayerSelector(j){return j.substr(0,6)==="@layer"}const regex=/^(:|\[|>|&)/;function isNestedSelector(j){return regex.test(j)}function isSupportQuerySelector(j){return j.substr(0,9)==="@supports"}function isContainerQuerySelector(j){return j.substring(0,10)==="@container"}function isObject$k(j){return j!=null&&typeof j=="object"&&Array.isArray(j)===!1}const pseudosMap={"us-w":"w","us-v":"i",nk:"l",si:"v",cu:"f",ve:"h",ti:"a"};function getStyleBucketName(j,_e,et,tt,rt){if(et)return"m";if(_e||tt)return"t";if(rt)return"c";if(j.length>0){const nt=j[0].trim();if(nt.charCodeAt(0)===58)return pseudosMap[nt.slice(4,8)]||pseudosMap[nt.slice(3,5)]||"d"}return"d"}function hashClassName({container:j,media:_e,layer:et,property:tt,selector:rt,support:nt,value:ot}){const it=murmur2(rt+j+_e+et+nt+tt+ot.trim());return HASH_PREFIX+it}function hashPropertyKey(j,_e,et,tt,rt){const nt=j+_e+et+tt+rt,ot=murmur2(nt),it=ot.charCodeAt(0);return it>=48&&it<=57?String.fromCharCode(it+17)+ot.slice(1):ot}function trimSelector(j){return j.replace(/>\s+/g,">")}function warnAboutUnresolvedRule(j,_e){const et=JSON.stringify(_e,null,2);" ".repeat(2)+""," ".repeat(4)+""," ".repeat(6)+`"${j}": ${et.split(` `).map((tt,rt)=>" ".repeat(rt===0?0:6)+tt).join(` -`)}`," ".repeat(4)+""," ".repeat(2)+"",j.indexOf("&")}function warnAboutUnsupportedProperties(j,_e){}function pushToClassesMap(j,_e,et,tt){j[_e]=tt?[et,tt]:et}function createBucketEntry(j,_e){return _e?[j,_e]:j}function pushToCSSRules(j,_e,et,tt,rt){var nt;let ot;_e==="m"&&rt&&(ot={m:rt}),(nt=j[_e])!==null&&nt!==void 0||(j[_e]=[]),et&&j[_e].push(createBucketEntry(et,ot)),tt&&j[_e].push(createBucketEntry(tt,ot))}function resolveStyleRules(j,_e=[],et="",tt="",rt="",nt="",ot={},it={},st){for(const lt in j){if(UNSUPPORTED_CSS_PROPERTIES.hasOwnProperty(lt)){j[lt];continue}const ut=j[lt];if(ut!=null){if(typeof ut=="string"||typeof ut=="number"){const ct=trimSelector(_e.join("")),dt=hashPropertyKey(ct,nt,et,rt,lt),ft=hashClassName({container:nt,media:et,layer:tt,value:ut.toString(),support:rt,selector:ct,property:lt}),pt=st&&{key:lt,value:st}||convertProperty(lt,ut),gt=pt.key!==lt||pt.value!==ut,vt=gt?hashClassName({container:nt,value:pt.value.toString(),property:pt.key,selector:ct,media:et,layer:tt,support:rt}):void 0,bt=gt?{rtlClassName:vt,rtlProperty:pt.key,rtlValue:pt.value}:void 0,_t=getStyleBucketName(_e,tt,et,rt,nt),[xt,yt]=compileAtomicCSSRule({className:ft,media:et,layer:tt,selectors:_e,property:lt,support:rt,container:nt,value:ut,...bt});pushToClassesMap(ot,dt,ft,vt),pushToCSSRules(it,_t,xt,yt,et)}else if(lt==="animationName"){const ct=Array.isArray(ut)?ut:[ut],dt=[],ft=[];for(const pt of ct){const gt=compileKeyframeRule(pt),vt=compileKeyframeRule(convert(pt)),bt=HASH_PREFIX+murmur2(gt);let _t;const xt=compileKeyframesCSS(bt,gt);let yt=[];gt===vt?_t=bt:(_t=HASH_PREFIX+murmur2(vt),yt=compileKeyframesCSS(_t,vt));for(let Et=0;Et(St??"").toString()).join(";"),support:rt,selector:ct,property:lt}),pt=ut.map(St=>convertProperty(lt,St));if(!!pt.some(St=>St.key!==pt[0].key))continue;const vt=pt[0].key!==lt||pt.some((St,$t)=>St.value!==ut[$t]),bt=vt?hashClassName({container:nt,value:pt.map(St=>{var $t;return(($t=St==null?void 0:St.value)!==null&&$t!==void 0?$t:"").toString()}).join(";"),property:pt[0].key,selector:ct,layer:tt,media:et,support:rt}):void 0,_t=vt?{rtlClassName:bt,rtlProperty:pt[0].key,rtlValue:pt.map(St=>St.value)}:void 0,xt=getStyleBucketName(_e,tt,et,rt,nt),[yt,Et]=compileAtomicCSSRule({className:ft,media:et,layer:tt,selectors:_e,property:lt,support:rt,container:nt,value:ut,..._t});pushToClassesMap(ot,dt,ft,bt),pushToCSSRules(it,xt,yt,Et,et)}else if(isObject$A(ut))if(isNestedSelector(lt))resolveStyleRules(ut,_e.concat(normalizeNestedProperty(lt)),et,tt,rt,nt,ot,it);else if(isMediaQuerySelector(lt)){const ct=generateCombinedQuery(et,lt.slice(6).trim());resolveStyleRules(ut,_e,ct,tt,rt,nt,ot,it)}else if(isLayerSelector(lt)){const ct=(tt?`${tt}.`:"")+lt.slice(6).trim();resolveStyleRules(ut,_e,et,ct,rt,nt,ot,it)}else if(isSupportQuerySelector(lt)){const ct=generateCombinedQuery(rt,lt.slice(9).trim());resolveStyleRules(ut,_e,et,tt,ct,nt,ot,it)}else if(isContainerQuerySelector(lt)){const ct=lt.slice(10).trim();resolveStyleRules(ut,_e,et,tt,rt,ct,ot,it)}else warnAboutUnresolvedRule(lt,ut)}}return[ot,it]}function resolveStyleRulesForSlots(j){const _e={},et={};for(const tt in j){const rt=j[tt],[nt,ot]=resolveStyleRules(rt);_e[tt]=nt,Object.keys(ot).forEach(it=>{et[it]=(et[it]||[]).concat(ot[it])})}return[_e,et]}function makeStyles$1(j,_e=insertionFactory$1){const et=_e();let tt=null,rt=null,nt=null,ot=null;function it(st){const{dir:lt,renderer:ut}=st;tt===null&&([tt,rt]=resolveStyleRulesForSlots(j));const ct=lt==="ltr";return ct?nt===null&&(nt=reduceToClassNameForSlots(tt,lt)):ot===null&&(ot=reduceToClassNameForSlots(tt,lt)),et(ut,rt),ct?nt:ot}return it}function __styles$1(j,_e,et=insertionFactory$1){const tt=et();let rt=null,nt=null;function ot(it){const{dir:st,renderer:lt}=it,ut=st==="ltr";return ut?rt===null&&(rt=reduceToClassNameForSlots(j,st)):nt===null&&(nt=reduceToClassNameForSlots(j,st)),tt(lt,_e),ut?rt:nt}return ot}function __resetStyles$1(j,_e,et,tt=insertionFactory$1){const rt=tt();function nt(ot){const{dir:it,renderer:st}=ot,lt=it==="ltr"?j:_e||j;return rt(st,Array.isArray(et)?{r:et}:et),lt}return nt}const shorthands={border,borderLeft,borderBottom,borderRight,borderTop,borderColor,borderStyle,borderRadius:borderRadius$1,borderWidth:borderWidth$1,flex,gap,gridArea,margin,marginBlock,marginInline,padding,paddingBlock,paddingInline,overflow,inset,outline,transition:transition$1,textDecoration};function canUseDOM$4(){return typeof window<"u"&&!!(window.document&&window.document.createElement)}const useInsertionEffect$2=React$1.useInsertionEffect?React$1.useInsertionEffect:void 0,insertionFactory=()=>{const j={};return function(et,tt){if(useInsertionEffect$2&&canUseDOM$4()){useInsertionEffect$2(()=>{et.insertCSSRules(tt)},[et,tt]);return}j[et.id]===void 0&&(et.insertCSSRules(tt),j[et.id]=!0)}},RendererContext=reactExports.createContext(createDOMRenderer());function useRenderer(){return reactExports.useContext(RendererContext)}const TextDirectionContext=reactExports.createContext("ltr"),TextDirectionProvider=({children:j,dir:_e})=>reactExports.createElement(TextDirectionContext.Provider,{value:_e},j);function useTextDirection(){return reactExports.useContext(TextDirectionContext)}function makeStyles(j){const _e=makeStyles$1(j,insertionFactory);return function(){const tt=useTextDirection(),rt=useRenderer();return _e({dir:tt,renderer:rt})}}function __styles(j,_e){const et=__styles$1(j,_e,insertionFactory);return function(){const rt=useTextDirection(),nt=useRenderer();return et({dir:rt,renderer:nt})}}function __resetStyles(j,_e,et){const tt=__resetStyles$1(j,_e,et,insertionFactory);return function(){const nt=useTextDirection(),ot=useRenderer();return tt({dir:nt,renderer:ot})}}function createCSSRuleFromTheme(j,_e){if(_e){const et=Object.keys(_e).reduce((tt,rt)=>`${tt}--${rt}: ${_e[rt]}; `,"");return`${j} { ${et} }`}return`${j} {}`}const SLOT_RENDER_FUNCTION_SYMBOL=Symbol("fui.slotRenderFunction"),SLOT_ELEMENT_TYPE_SYMBOL=Symbol("fui.slotElementType");function always(j,_e){const{defaultProps:et,elementType:tt}=_e,rt=resolveShorthand(j),nt={...et,...rt,[SLOT_ELEMENT_TYPE_SYMBOL]:tt};return rt&&typeof rt.children=="function"&&(nt[SLOT_RENDER_FUNCTION_SYMBOL]=rt.children,nt.children=et==null?void 0:et.children),nt}function optional(j,_e){if(!(j===null||j===void 0&&!_e.renderByDefault))return always(j,_e)}function resolveShorthand(j){return typeof j=="string"||typeof j=="number"||Array.isArray(j)||reactExports.isValidElement(j)?{children:j}:j}function isSlot(j){return!!(j!=null&&j.hasOwnProperty(SLOT_ELEMENT_TYPE_SYMBOL))}function isResolvedShorthand(j){return j!==null&&typeof j=="object"&&!Array.isArray(j)&&!reactExports.isValidElement(j)}const toObjectMap$1=(...j)=>{const _e={};for(const et of j){const tt=Array.isArray(et)?et:Object.keys(et);for(const rt of tt)_e[rt]=1}return _e},baseElementEvents$1=toObjectMap$1(["onAuxClick","onAnimationEnd","onAnimationStart","onCopy","onCut","onPaste","onCompositionEnd","onCompositionStart","onCompositionUpdate","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onInput","onSubmit","onLoad","onError","onKeyDown","onKeyDownCapture","onKeyPress","onKeyUp","onAbort","onCanPlay","onCanPlayThrough","onDurationChange","onEmptied","onEncrypted","onEnded","onLoadedData","onLoadedMetadata","onLoadStart","onPause","onPlay","onPlaying","onProgress","onRateChange","onSeeked","onSeeking","onStalled","onSuspend","onTimeUpdate","onVolumeChange","onWaiting","onClick","onClickCapture","onContextMenu","onDoubleClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onMouseUpCapture","onSelect","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onScroll","onWheel","onPointerCancel","onPointerDown","onPointerEnter","onPointerLeave","onPointerMove","onPointerOut","onPointerOver","onPointerUp","onGotPointerCapture","onLostPointerCapture"]),baseElementProperties$1=toObjectMap$1(["accessKey","children","className","contentEditable","dir","draggable","hidden","htmlFor","id","lang","ref","role","style","tabIndex","title","translate","spellCheck","name"]),microdataProperties=toObjectMap$1(["itemID","itemProp","itemRef","itemScope","itemType"]),htmlElementProperties$1=toObjectMap$1(baseElementProperties$1,baseElementEvents$1,microdataProperties),labelProperties=toObjectMap$1(htmlElementProperties$1,["form"]),audioProperties$1=toObjectMap$1(htmlElementProperties$1,["height","loop","muted","preload","src","width"]),videoProperties=toObjectMap$1(audioProperties$1,["poster"]),olProperties=toObjectMap$1(htmlElementProperties$1,["start"]),liProperties=toObjectMap$1(htmlElementProperties$1,["value"]),anchorProperties$1=toObjectMap$1(htmlElementProperties$1,["download","href","hrefLang","media","rel","target","type"]),timeProperties=toObjectMap$1(htmlElementProperties$1,["dateTime"]),buttonProperties$1=toObjectMap$1(htmlElementProperties$1,["autoFocus","disabled","form","formAction","formEncType","formMethod","formNoValidate","formTarget","type","value"]),inputProperties=toObjectMap$1(buttonProperties$1,["accept","alt","autoCapitalize","autoComplete","checked","dirname","form","height","inputMode","list","max","maxLength","min","multiple","pattern","placeholder","readOnly","required","src","step","size","type","value","width"]),textAreaProperties=toObjectMap$1(buttonProperties$1,["autoCapitalize","cols","dirname","form","maxLength","placeholder","readOnly","required","rows","wrap"]),selectProperties=toObjectMap$1(buttonProperties$1,["form","multiple","required"]),optionProperties=toObjectMap$1(htmlElementProperties$1,["selected","value"]),tableProperties=toObjectMap$1(htmlElementProperties$1,["cellPadding","cellSpacing"]),trProperties=htmlElementProperties$1,thProperties=toObjectMap$1(htmlElementProperties$1,["colSpan","rowSpan","scope"]),tdProperties=toObjectMap$1(htmlElementProperties$1,["colSpan","headers","rowSpan","scope"]),colGroupProperties=toObjectMap$1(htmlElementProperties$1,["span"]),colProperties=toObjectMap$1(htmlElementProperties$1,["span"]),fieldsetProperties=toObjectMap$1(htmlElementProperties$1,["disabled","form"]),formProperties=toObjectMap$1(htmlElementProperties$1,["acceptCharset","action","encType","encType","method","noValidate","target"]),iframeProperties=toObjectMap$1(htmlElementProperties$1,["allow","allowFullScreen","allowPaymentRequest","allowTransparency","csp","height","importance","referrerPolicy","sandbox","src","srcDoc","width"]),imgProperties$1=toObjectMap$1(htmlElementProperties$1,["alt","crossOrigin","height","src","srcSet","useMap","width"]),dialogProperties=toObjectMap$1(htmlElementProperties$1,["open","onCancel","onClose"]);function getNativeProps$1(j,_e,et){const tt=Array.isArray(_e),rt={},nt=Object.keys(j);for(const ot of nt)(!tt&&_e[ot]||tt&&_e.indexOf(ot)>=0||ot.indexOf("data-")===0||ot.indexOf("aria-")===0)&&(!et||(et==null?void 0:et.indexOf(ot))===-1)&&(rt[ot]=j[ot]);return rt}const nativeElementMap={label:labelProperties,audio:audioProperties$1,video:videoProperties,ol:olProperties,li:liProperties,a:anchorProperties$1,button:buttonProperties$1,input:inputProperties,textarea:textAreaProperties,select:selectProperties,option:optionProperties,table:tableProperties,tr:trProperties,th:thProperties,td:tdProperties,colGroup:colGroupProperties,col:colProperties,fieldset:fieldsetProperties,form:formProperties,iframe:iframeProperties,img:imgProperties$1,time:timeProperties,dialog:dialogProperties};function getNativeElementProps(j,_e,et){const tt=j&&nativeElementMap[j]||htmlElementProperties$1;return tt.as=1,getNativeProps$1(_e,tt,et)}const getPartitionedNativeProps=({primarySlotTagName:j,props:_e,excludedPropNames:et})=>({root:{style:_e.style,className:_e.className},primary:getNativeElementProps(j,_e,[...et||[],"style","className"])}),getIntrinsicElementProps=(j,_e,et)=>{var tt;return getNativeElementProps((tt=_e.as)!==null&&tt!==void 0?tt:j,_e,et)};function canUseDOM$3(){return typeof window<"u"&&!!(window.document&&window.document.createElement)}function useBrowserTimer(j,_e){const et=reactExports.useRef(void 0),tt=reactExports.useCallback((nt,ot)=>(et.current!==void 0&&_e(et.current),et.current=j(nt,ot),et.current),[_e,j]),rt=reactExports.useCallback(()=>{et.current!==void 0&&(_e(et.current),et.current=void 0)},[_e]);return reactExports.useEffect(()=>rt,[rt]),[tt,rt]}const setAnimationFrameNoop=j=>(j(0),0),cancelAnimationFrameNoop=j=>j;function useAnimationFrame(){const j=canUseDOM$3();return useBrowserTimer(j?requestAnimationFrame:setAnimationFrameNoop,j?cancelAnimationFrame:cancelAnimationFrameNoop)}function isFactoryDispatch(j){return typeof j=="function"}const useControllableState=j=>{const[_e,et]=reactExports.useState(()=>j.defaultState===void 0?j.initialState:isInitializer(j.defaultState)?j.defaultState():j.defaultState),tt=reactExports.useRef(j.state);reactExports.useEffect(()=>{tt.current=j.state},[j.state]);const rt=reactExports.useCallback(nt=>{isFactoryDispatch(nt)&&nt(tt.current)},[]);return useIsControlled(j.state)?[j.state,rt]:[_e,et]};function isInitializer(j){return typeof j=="function"}const useIsControlled=j=>{const[_e]=reactExports.useState(()=>j!==void 0);return _e},defaultSSRContextValue={current:0},SSRContext=reactExports.createContext(void 0);function useSSRContext(){var j;return(j=reactExports.useContext(SSRContext))!==null&&j!==void 0?j:defaultSSRContextValue}function useIsSSR(){const j=useSSRContext()!==defaultSSRContextValue,[_e,et]=reactExports.useState(j);return canUseDOM$3()&&j&&reactExports.useLayoutEffect(()=>{et(!1)},[]),_e}const useIsomorphicLayoutEffect$1=canUseDOM$3()?reactExports.useLayoutEffect:reactExports.useEffect,useEventCallback$3=j=>{const _e=reactExports.useRef(()=>{throw new Error("Cannot call an event handler while rendering")});return useIsomorphicLayoutEffect$1(()=>{_e.current=j},[j]),reactExports.useCallback((...et)=>{const tt=_e.current;return tt(...et)},[_e])};function useFirstMount(){const j=reactExports.useRef(!0);return j.current?(j.current=!1,!0):j.current}const IdPrefixContext=reactExports.createContext(void 0);IdPrefixContext.Provider;function useIdPrefix(){return reactExports.useContext(IdPrefixContext)||""}function useId$1(j="fui-",_e){const et=useSSRContext(),tt=useIdPrefix(),rt=React$1.useId;if(rt){const nt=rt(),ot=reactExports.useMemo(()=>nt.replace(/:/g,""),[nt]);return _e||`${tt}${j}${ot}`}return reactExports.useMemo(()=>_e||`${tt}${j}${++et.current}`,[tt,j,_e,et])}function useMergedRefs$1(...j){const _e=reactExports.useCallback(et=>{_e.current=et;for(const tt of j)typeof tt=="function"?tt(et):tt&&(tt.current=et)},[...j]);return _e}const ThemeContext$1=reactExports.createContext(void 0),ThemeProvider=ThemeContext$1.Provider,ThemeClassNameContext=reactExports.createContext(void 0),themeClassNameContextDefaultVaue="",ThemeClassNameProvider=ThemeClassNameContext.Provider;function useThemeClassName(){var j;return(j=reactExports.useContext(ThemeClassNameContext))!==null&&j!==void 0?j:themeClassNameContextDefaultVaue}const TooltipVisibilityContext=reactExports.createContext(void 0),tooltipVisibilityContextDefaultValue={},TooltipVisibilityProvider=TooltipVisibilityContext.Provider;function useTooltipVisibility(){var j;return(j=reactExports.useContext(TooltipVisibilityContext))!==null&&j!==void 0?j:tooltipVisibilityContextDefaultValue}const ProviderContext=reactExports.createContext(void 0),providerContextDefaultValue={targetDocument:typeof document=="object"?document:void 0,dir:"ltr"},Provider=ProviderContext.Provider;function useFluent(){var j;return(j=reactExports.useContext(ProviderContext))!==null&&j!==void 0?j:providerContextDefaultValue}const OverridesContext=reactExports.createContext(void 0),OverridesProvider=OverridesContext.Provider;function useOverrides(){var j;return(j=reactExports.useContext(OverridesContext))!==null&&j!==void 0?j:{}}const CustomStyleHooksContext=reactExports.createContext(void 0),noop$7=()=>{},CustomStyleHooksProvider=CustomStyleHooksContext.Provider,useCustomStyleHook=j=>{var _e,et;return(et=(_e=reactExports.useContext(CustomStyleHooksContext))===null||_e===void 0?void 0:_e[j])!==null&&et!==void 0?et:noop$7},BackgroundAppearanceContext=reactExports.createContext(void 0);BackgroundAppearanceContext.Provider;function useBackgroundAppearance(){return reactExports.useContext(BackgroundAppearanceContext)}const PortalMountNodeContext=reactExports.createContext(void 0);PortalMountNodeContext.Provider;function usePortalMountNode$1(){return reactExports.useContext(PortalMountNodeContext)}const AnnounceContext=reactExports.createContext(void 0);AnnounceContext.Provider;function useAnnounce(){var j;return(j=reactExports.useContext(AnnounceContext))!==null&&j!==void 0?j:{announce:()=>{}}}const DEFAULT_CONTAINS=(j,_e)=>!!(j!=null&&j.contains(_e)),useOnClickOutside=j=>{const{targetDocument:_e}=useFluent(),et=_e==null?void 0:_e.defaultView,{refs:tt,callback:rt,element:nt,disabled:ot,disabledFocusOnIframe:it,contains:st=DEFAULT_CONTAINS}=j,lt=reactExports.useRef(void 0);useIFrameFocus({element:nt,disabled:it||ot,callback:rt,refs:tt,contains:st});const ut=reactExports.useRef(!1),ct=useEventCallback$3(ft=>{if(ut.current){ut.current=!1;return}const pt=ft.composedPath()[0];tt.every(vt=>!st(vt.current||null,pt))&&!ot&&rt(ft)}),dt=useEventCallback$3(ft=>{ut.current=tt.some(pt=>st(pt.current||null,ft.target))});reactExports.useEffect(()=>{if(ot)return;let ft=getWindowEvent(et);const pt=gt=>{if(gt===ft){ft=void 0;return}ct(gt)};return nt==null||nt.addEventListener("click",pt,!0),nt==null||nt.addEventListener("touchstart",pt,!0),nt==null||nt.addEventListener("contextmenu",pt,!0),nt==null||nt.addEventListener("mousedown",dt,!0),lt.current=et==null?void 0:et.setTimeout(()=>{ft=void 0},1),()=>{nt==null||nt.removeEventListener("click",pt,!0),nt==null||nt.removeEventListener("touchstart",pt,!0),nt==null||nt.removeEventListener("contextmenu",pt,!0),nt==null||nt.removeEventListener("mousedown",dt,!0),et==null||et.clearTimeout(lt.current),ft=void 0}},[ct,nt,ot,dt,et])},getWindowEvent=j=>{if(j){var _e,et;if(typeof j.window=="object"&&j.window===j)return j.event;var tt;return(tt=(et=j.ownerDocument)===null||et===void 0||(_e=et.defaultView)===null||_e===void 0?void 0:_e.event)!==null&&tt!==void 0?tt:void 0}},FUI_FRAME_EVENT="fuiframefocus",useIFrameFocus=j=>{const{disabled:_e,element:et,callback:tt,contains:rt=DEFAULT_CONTAINS,pollDuration:nt=1e3,refs:ot}=j,it=reactExports.useRef(),st=useEventCallback$3(lt=>{ot.every(ct=>!rt(ct.current||null,lt.target))&&!_e&&tt(lt)});reactExports.useEffect(()=>{if(!_e)return et==null||et.addEventListener(FUI_FRAME_EVENT,st,!0),()=>{et==null||et.removeEventListener(FUI_FRAME_EVENT,st,!0)}},[et,_e,st]),reactExports.useEffect(()=>{var lt;if(!_e)return it.current=et==null||(lt=et.defaultView)===null||lt===void 0?void 0:lt.setInterval(()=>{const ut=et==null?void 0:et.activeElement;if((ut==null?void 0:ut.tagName)==="IFRAME"||(ut==null?void 0:ut.tagName)==="WEBVIEW"){const ct=new CustomEvent(FUI_FRAME_EVENT,{bubbles:!0});ut.dispatchEvent(ct)}},nt),()=>{var ut;et==null||(ut=et.defaultView)===null||ut===void 0||ut.clearTimeout(it.current)}},[et,_e,nt])},useOnScrollOutside=j=>{const{refs:_e,callback:et,element:tt,disabled:rt,contains:nt}=j,ot=useEventCallback$3(it=>{const st=nt||((ct,dt)=>!!(ct!=null&&ct.contains(dt))),lt=it.composedPath()[0];_e.every(ct=>!st(ct.current||null,lt))&&!rt&&et(it)});reactExports.useEffect(()=>{if(!rt)return tt==null||tt.addEventListener("wheel",ot),tt==null||tt.addEventListener("touchmove",ot),()=>{tt==null||tt.removeEventListener("wheel",ot),tt==null||tt.removeEventListener("touchmove",ot)}},[ot,tt,rt])};function useTimeout(){return useBrowserTimer(setTimeout,clearTimeout)}function mergeCallbacks(j,_e){return(...et)=>{j==null||j(...et),_e==null||_e(...et)}}function isHTMLElement$4(j,_e){var et;const tt=j;var rt;return!!(!(tt==null||(et=tt.ownerDocument)===null||et===void 0)&&et.defaultView&&tt instanceof tt.ownerDocument.defaultView[(rt=_e==null?void 0:_e.constructorName)!==null&&rt!==void 0?rt:"HTMLElement"])}function isFluentTrigger(j){return!!j.type.isFluentTriggerComponent}function applyTriggerPropsToChildren(j,_e){return typeof j=="function"?j(_e):j?cloneTriggerTree(j,_e):j||null}function cloneTriggerTree(j,_e){if(!reactExports.isValidElement(j)||j.type===reactExports.Fragment)throw new Error("A trigger element must be a single element for this component. Please ensure that you're not using React Fragments.");if(isFluentTrigger(j)){const et=cloneTriggerTree(j.props.children,_e);return reactExports.cloneElement(j,void 0,et)}else return reactExports.cloneElement(j,_e)}function getTriggerChild(j){return reactExports.isValidElement(j)?isFluentTrigger(j)?getTriggerChild(j.props.children):j:null}function isVirtualElement$1(j){return j&&!!j._virtual}function getVirtualParent$1(j){return isVirtualElement$1(j)&&j._virtual.parent||null}function getParent$1(j,_e={}){if(!j)return null;if(!_e.skipVirtual){const et=getVirtualParent$1(j);if(et)return et}return(j==null?void 0:j.parentNode)||null}function elementContains$1(j,_e){if(!j||!_e)return!1;if(j===_e)return!0;{const et=new WeakSet;for(;_e;){const tt=getParent$1(_e,{skipVirtual:et.has(_e)});if(et.add(_e),tt===j)return!0;_e=tt}}return!1}function setVirtualParent$1(j,_e){if(!j)return;const et=j;et._virtual||(et._virtual={}),et._virtual.parent=_e}function createCompatSlotComponent(j,_e){return{..._e,[SLOT_ELEMENT_TYPE_SYMBOL]:j}}function createJSX(j,_e){return function(tt,rt,nt,ot,it){return isSlot(rt)?_e(createCompatSlotComponent(tt,rt),null,nt,ot,it):isSlot(tt)?_e(tt,rt,nt,ot,it):j(tt,rt,nt,ot,it)}}function getMetadataFromSlotComponent(j){const{as:_e,[SLOT_ELEMENT_TYPE_SYMBOL]:et,[SLOT_RENDER_FUNCTION_SYMBOL]:tt,...rt}=j,nt=rt,ot=typeof et=="string"?_e??et:et;return typeof ot!="string"&&_e&&(nt.as=_e),{elementType:ot,props:nt,renderFunction:tt}}const Runtime=ReactRuntime,jsxSlot=(j,_e,et)=>{const{elementType:tt,renderFunction:rt,props:nt}=getMetadataFromSlotComponent(j),ot={...nt,..._e};return rt?Runtime.jsx(reactExports.Fragment,{children:rt(tt,ot)},et):Runtime.jsx(tt,ot,et)},jsxsSlot=(j,_e,et)=>{const{elementType:tt,renderFunction:rt,props:nt}=getMetadataFromSlotComponent(j),ot={...nt,..._e};return rt?Runtime.jsx(reactExports.Fragment,{children:rt(tt,{...ot,children:Runtime.jsxs(reactExports.Fragment,{children:ot.children},void 0)})},et):Runtime.jsxs(tt,ot,et)},jsx$1=createJSX(Runtime.jsx,jsxSlot),jsxs=createJSX(Runtime.jsxs,jsxsSlot),IconDirectionContext=reactExports.createContext(void 0),IconDirectionContextDefaultValue={},IconDirectionContextProvider=IconDirectionContext.Provider,useIconContext=()=>reactExports.useContext(IconDirectionContext)?reactExports.useContext(IconDirectionContext):IconDirectionContextDefaultValue,useRootStyles$7=__styles({root:{mc9l5x:"f1w7gpdv",Bg96gwp:"fez10in",ycbfsm:"fg4l7m0"},rtl:{Bz10aip:"f13rod7r"}},{d:[".f1w7gpdv{display:inline;}",".fez10in{line-height:0;}",".f13rod7r{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);}"],t:["@media (forced-colors: active){.fg4l7m0{forced-color-adjust:auto;}}"]}),useIconState=(j,_e)=>{const{title:et,primaryFill:tt="currentColor",...rt}=j,nt={...rt,title:void 0,fill:tt},ot=useRootStyles$7(),it=useIconContext();return nt.className=mergeClasses(ot.root,(_e==null?void 0:_e.flipInRtl)&&(it==null?void 0:it.textDirection)==="rtl"&&ot.rtl,nt.className),et&&(nt["aria-label"]=et),!nt["aria-label"]&&!nt["aria-labelledby"]?nt["aria-hidden"]=!0:nt.role="img",nt},createFluentIcon=(j,_e,et,tt)=>{const rt=_e==="1em"?"20":_e,nt=reactExports.forwardRef((ot,it)=>{const st={...useIconState(ot,{flipInRtl:tt==null?void 0:tt.flipInRtl}),ref:it,width:_e,height:_e,viewBox:`0 0 ${rt} ${rt}`,xmlns:"http://www.w3.org/2000/svg"};return reactExports.createElement("svg",st,...et.map(lt=>reactExports.createElement("path",{d:lt,fill:st.fill})))});return nt.displayName=j,nt},CheckmarkFilled=createFluentIcon("CheckmarkFilled","1em",["M7.03 13.9 3.56 10a.75.75 0 0 0-1.12 1l4 4.5c.29.32.79.34 1.09.03l10.5-10.5a.75.75 0 0 0-1.06-1.06l-9.94 9.94Z"]),CheckmarkCircleFilled=createFluentIcon("CheckmarkCircleFilled","1em",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm3.36 5.65a.5.5 0 0 0-.64-.06l-.07.06L9 11.3 7.35 9.65l-.07-.06a.5.5 0 0 0-.7.7l.07.07 2 2 .07.06c.17.11.4.11.56 0l.07-.06 4-4 .07-.08a.5.5 0 0 0-.06-.63Z"]),ChevronDownRegular=createFluentIcon("ChevronDownRegular","1em",["M15.85 7.65c.2.2.2.5 0 .7l-5.46 5.49a.55.55 0 0 1-.78 0L4.15 8.35a.5.5 0 1 1 .7-.7L10 12.8l5.15-5.16c.2-.2.5-.2.7 0Z"]),ChevronRightRegular=createFluentIcon("ChevronRightRegular","1em",["M7.65 4.15c.2-.2.5-.2.7 0l5.49 5.46c.21.22.21.57 0 .78l-5.49 5.46a.5.5 0 0 1-.7-.7L12.8 10 7.65 4.85a.5.5 0 0 1 0-.7Z"]),CircleFilled=createFluentIcon("CircleFilled","1em",["M10 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Z"]),ErrorCircleFilled=createFluentIcon("ErrorCircleFilled","1em",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 10.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM10 6a.5.5 0 0 0-.5.41v4.68a.5.5 0 0 0 1 0V6.41A.5.5 0 0 0 10 6Z"]),InfoFilled=createFluentIcon("InfoFilled","1em",["M18 10a8 8 0 1 0-16 0 8 8 0 0 0 16 0ZM9.5 8.91a.5.5 0 0 1 1 0V13.6a.5.5 0 0 1-1 0V8.9Zm-.25-2.16a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0Z"]),WarningFilled=createFluentIcon("WarningFilled","1em",["M8.68 2.79a1.5 1.5 0 0 1 2.64 0l6.5 12A1.5 1.5 0 0 1 16.5 17h-13a1.5 1.5 0 0 1-1.32-2.21l6.5-12ZM10.5 7.5a.5.5 0 0 0-1 0v4a.5.5 0 0 0 1 0v-4Zm.25 6.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"]),Alert20Regular=createFluentIcon("Alert20Regular","20",["M10 2a5.92 5.92 0 0 1 5.98 5.36l.02.22V11.4l.92 2.22a1 1 0 0 1 .06.17l.01.08.01.13a1 1 0 0 1-.75.97l-.11.02L16 15h-3.5v.17a2.5 2.5 0 0 1-5 0V15H4a1 1 0 0 1-.26-.03l-.13-.04a1 1 0 0 1-.6-1.05l.02-.13.05-.13L4 11.4V7.57A5.9 5.9 0 0 1 10 2Zm1.5 13h-3v.15a1.5 1.5 0 0 0 1.36 1.34l.14.01c.78 0 1.42-.6 1.5-1.36V15ZM10 3a4.9 4.9 0 0 0-4.98 4.38L5 7.6V11.5l-.04.2L4 14h12l-.96-2.3-.04-.2V7.61A4.9 4.9 0 0 0 10 3Z"]),ArrowClockwise16Regular=createFluentIcon("ArrowClockwise16Regular","16",["M3 8a5 5 0 0 1 9-3H9.5a.5.5 0 0 0 0 1h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-1 0v1.03A6 6 0 1 0 14 8a.5.5 0 0 0-1 0A5 5 0 0 1 3 8Z"]),ArrowClockwiseDashes20Regular=createFluentIcon("ArrowClockwiseDashes20Regular","20",["M8.13 2.22a8.02 8.02 0 0 1 3.74 0 .5.5 0 0 1-.23.97 7.02 7.02 0 0 0-3.28 0 .5.5 0 1 1-.23-.97ZM6.51 3.34a.5.5 0 0 1-.17.69 7.04 7.04 0 0 0-2.31 2.31.5.5 0 0 1-.85-.52 8.04 8.04 0 0 1 2.64-2.64.5.5 0 0 1 .69.16Zm7.67-.16a.5.5 0 1 0-.52.85c.82.5 1.53 1.18 2.09 1.97H12.5a.5.5 0 0 0 0 1h4a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-1 0v2.2a8.04 8.04 0 0 0-1.82-1.52ZM2.82 7.76a.5.5 0 0 1 .37.6 7.02 7.02 0 0 0 0 3.28.5.5 0 0 1-.97.23 8.02 8.02 0 0 1 0-3.74.5.5 0 0 1 .6-.37ZM18 10v-.5a.5.5 0 0 0-1 0v.5c0 .56-.07 1.11-.2 1.64a.5.5 0 1 0 .98.23c.14-.6.22-1.23.22-1.87ZM3.34 13.5a.5.5 0 0 1 .69.16 7.04 7.04 0 0 0 2.31 2.31.5.5 0 1 1-.52.85 8.04 8.04 0 0 1-2.64-2.64.5.5 0 0 1 .16-.69Zm13.48.68a.5.5 0 0 0-.85-.52 7.04 7.04 0 0 1-2.31 2.31.5.5 0 0 0 .52.85 8.04 8.04 0 0 0 2.64-2.64Zm-9.06 3a.5.5 0 0 1 .6-.37 7.02 7.02 0 0 0 3.28 0 .5.5 0 1 1 .23.97 8.02 8.02 0 0 1-3.74 0 .5.5 0 0 1-.37-.6Z"]),ArrowUpload24Regular=createFluentIcon("ArrowUpload24Regular","24",["M18.25 3.51a.75.75 0 1 0 0-1.5h-13a.75.75 0 1 0 0 1.5h13ZM11.65 22h.1c.38 0 .7-.28.74-.64l.01-.1V7.56l3.72 3.72c.27.27.68.29.98.07l.08-.07a.75.75 0 0 0 .07-.98l-.07-.08-5-5a.75.75 0 0 0-.97-.07l-.09.07-5 5a.75.75 0 0 0 .98 1.13l.08-.07L11 7.58v13.67c0 .38.28.7.65.75Z"]),Attach16Regular=createFluentIcon("Attach16Regular","16",["M2.28 7.97a.5.5 0 0 0 .86.36l4.6-4.6A2.5 2.5 0 0 1 12 5.5a2.5 2.5 0 0 1-.73 1.77l-5.3 5.3a1 1 0 0 1-1.71-.7 1 1 0 0 1 .3-.71l5.3-5.3a.5.5 0 0 0-.7-.7l-5.32 5.29a2 2 0 1 0 2.83 2.83l5.3-5.3A3.49 3.49 0 0 0 9.5 2c-.9 0-1.8.34-2.48 1.02l-4.6 4.6a.5.5 0 0 0-.14.35Z"]),Checkmark12Filled=createFluentIcon("Checkmark12Filled","12",["M9.76 3.2c.3.29.32.76.04 1.06l-4.25 4.5a.75.75 0 0 1-1.08.02L2.22 6.53a.75.75 0 0 1 1.06-1.06l1.7 1.7L8.7 3.24a.75.75 0 0 1 1.06-.04Z"]),CheckmarkCircle20Regular=createFluentIcon("CheckmarkCircle20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm3.36 4.65c.17.17.2.44.06.63l-.06.07-4 4a.5.5 0 0 1-.64.07l-.07-.06-2-2a.5.5 0 0 1 .63-.77l.07.06L9 11.3l3.65-3.65c.2-.2.51-.2.7 0Z"]),ChevronDown16Filled=createFluentIcon("ChevronDown16Filled","16",["M3.2 5.74a.75.75 0 0 1 1.06-.04L8 9.23l3.74-3.53a.75.75 0 1 1 1.02 1.1l-4.25 4a.75.75 0 0 1-1.02 0l-4.25-4a.75.75 0 0 1-.04-1.06Z"]),ChevronLeft16Regular=createFluentIcon("ChevronLeft16Regular","16",["M10.35 3.15c.2.2.2.5 0 .7L6.21 8l4.14 4.15a.5.5 0 0 1-.7.7l-4.5-4.5a.5.5 0 0 1 0-.7l4.5-4.5c.2-.2.5-.2.7 0Z"]),ChevronRight16Filled=createFluentIcon("ChevronRight16Filled","16",["M5.74 3.2a.75.75 0 0 0-.04 1.06L9.23 8 5.7 11.74a.75.75 0 1 0 1.1 1.02l4-4.25a.75.75 0 0 0 0-1.02l-4-4.25a.75.75 0 0 0-1.06-.04Z"]),ChevronRight16Regular=createFluentIcon("ChevronRight16Regular","16",["M5.65 3.15a.5.5 0 0 0 0 .7L9.79 8l-4.14 4.15a.5.5 0 0 0 .7.7l4.5-4.5a.5.5 0 0 0 0-.7l-4.5-4.5a.5.5 0 0 0-.7 0Z"]),Clock20Regular=createFluentIcon("Clock20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-.5 2a.5.5 0 0 1 .5.41V10h2.5a.5.5 0 0 1 .09 1H9.5a.5.5 0 0 1-.5-.41V5.5c0-.28.22-.5.5-.5Z"]),Copy20Regular=createFluentIcon("Copy20Regular","20",["M8 2a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h6a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8ZM7 4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1V4ZM4 6a2 2 0 0 1 1-1.73V14.5A2.5 2.5 0 0 0 7.5 17h6.23A2 2 0 0 1 12 18H7.5A3.5 3.5 0 0 1 4 14.5V6Z"]),CopyArrowRight20Regular=createFluentIcon("CopyArrowRight20Regular","20",["M8 2a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h1.2c-.08-.32-.15-.66-.18-1H8a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v5.02c.34.03.68.1 1 .19V4a2 2 0 0 0-2-2H8Zm-.5 15h2.1c.18.36.4.7.66 1H7.5A3.5 3.5 0 0 1 4 14.5V6a2 2 0 0 1 1-1.73V14.5A2.5 2.5 0 0 0 7.5 17Zm7-7a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9Zm2.35 4.85a.5.5 0 0 0 .15-.35.5.5 0 0 0-.15-.35l-2-2a.5.5 0 0 0-.7.7L15.29 14H12.5a.5.5 0 0 0 0 1h2.8l-1.15 1.15a.5.5 0 0 0 .7.7l2-2Z"]),Dismiss20Regular=createFluentIcon("Dismiss20Regular","20",["m4.09 4.22.06-.07a.5.5 0 0 1 .63-.06l.07.06L10 9.29l5.15-5.14a.5.5 0 0 1 .63-.06l.07.06c.18.17.2.44.06.63l-.06.07L10.71 10l5.14 5.15c.18.17.2.44.06.63l-.06.07a.5.5 0 0 1-.63.06l-.07-.06L10 10.71l-5.15 5.14a.5.5 0 0 1-.63.06l-.07-.06a.5.5 0 0 1-.06-.63l.06-.07L9.29 10 4.15 4.85a.5.5 0 0 1-.06-.63l.06-.07-.06.07Z"]),Dismiss24Regular=createFluentIcon("Dismiss24Regular","24",["m4.4 4.55.07-.08a.75.75 0 0 1 .98-.07l.08.07L12 10.94l6.47-6.47a.75.75 0 1 1 1.06 1.06L13.06 12l6.47 6.47c.27.27.3.68.07.98l-.07.08a.75.75 0 0 1-.98.07l-.08-.07L12 13.06l-6.47 6.47a.75.75 0 0 1-1.06-1.06L10.94 12 4.47 5.53a.75.75 0 0 1-.07-.98l.07-.08-.07.08Z"]),DismissCircle20Regular=createFluentIcon("DismissCircle20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14ZM7.8 7.11l.08.06L10 9.3l2.12-2.12a.5.5 0 0 1 .64-.06l.07.06c.17.18.2.44.06.64l-.06.07L10.7 10l2.12 2.12c.17.17.2.44.06.64l-.06.07a.5.5 0 0 1-.64.06l-.07-.06L10 10.7l-2.12 2.12a.5.5 0 0 1-.64.06l-.07-.06a.5.5 0 0 1-.06-.64l.06-.07L9.3 10 7.17 7.88a.5.5 0 0 1-.06-.64l.06-.07a.5.5 0 0 1 .64-.06Z"]),Document16Regular=createFluentIcon("Document16Regular","16",["M5 1a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h6a2 2 0 0 0 2-2V5.41c0-.4-.16-.78-.44-1.06L9.65 1.44A1.5 1.5 0 0 0 8.59 1H5ZM4 3a1 1 0 0 1 1-1h3v2.5C8 5.33 8.67 6 9.5 6H12v7a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3Zm7.8 2H9.5a.5.5 0 0 1-.5-.5V2.2L11.8 5Z"]),ErrorCircle16Filled=createFluentIcon("ErrorCircle16Filled","16",["M8 2a6 6 0 1 1 0 12A6 6 0 0 1 8 2Zm0 8a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0-5.5a.5.5 0 0 0-.5.41V8.59a.5.5 0 0 0 1 0V4.91A.5.5 0 0 0 8 4.5Z"]),ErrorCircle20Regular=createFluentIcon("ErrorCircle20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm0 9.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5ZM10 6a.5.5 0 0 1 .5.41V11a.5.5 0 0 1-1 .09V6.5c0-.28.22-.5.5-.5Z"]),GanttChart20Regular=createFluentIcon("GanttChart20Regular","20",["M4.5 7a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1h-4ZM9 9.5c0-.28.22-.5.5-.5h4a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5Zm3.5 1.5a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3Zm-8-7A2.5 2.5 0 0 0 2 6.5v7A2.5 2.5 0 0 0 4.5 16h11a2.5 2.5 0 0 0 2.5-2.5v-7A2.5 2.5 0 0 0 15.5 4h-11ZM3 6.5C3 5.67 3.67 5 4.5 5H7v1h1V5h4v3h1V5h2.5c.83 0 1.5.67 1.5 1.5v7c0 .83-.67 1.5-1.5 1.5H13v-2h-1v2H8V9H7v6H4.5A1.5 1.5 0 0 1 3 13.5v-7Z"]),NumberCircle020Regular=createFluentIcon("NumberCircle020Regular","20",["M17 10a7 7 0 1 1-14 0 7 7 0 0 1 14 0Zm-7 8a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm-2-8c0-1.07.15-1.97.49-2.6.16-.3.36-.51.6-.66.23-.15.52-.24.91-.24s.68.1.92.24c.23.15.43.37.6.67.33.62.48 1.52.48 2.59 0 1.07-.15 1.97-.49 2.6-.16.3-.36.51-.6.66-.23.15-.52.24-.91.24s-.68-.1-.92-.24a1.74 1.74 0 0 1-.6-.67A5.65 5.65 0 0 1 8 10Zm2-4.5c-.55 0-1.04.13-1.45.4-.4.25-.72.61-.94 1.03A6.6 6.6 0 0 0 7 10c0 1.14.16 2.23.6 3.07.23.42.54.78.95 1.04.41.26.9.39 1.45.39.55 0 1.04-.13 1.45-.4.4-.25.72-.61.94-1.03.45-.84.61-1.93.61-3.07a6.6 6.6 0 0 0-.6-3.07 2.74 2.74 0 0 0-.95-1.04c-.41-.26-.9-.39-1.45-.39Z"]),Person20Regular=createFluentIcon("Person20Regular","20",["M10 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8ZM7 6a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm-2 5a2 2 0 0 0-2 2c0 1.7.83 2.97 2.13 3.8A9.14 9.14 0 0 0 10 18c1.85 0 3.58-.39 4.87-1.2A4.35 4.35 0 0 0 17 13a2 2 0 0 0-2-2H5Zm-1 2a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1c0 1.3-.62 2.28-1.67 2.95A8.16 8.16 0 0 1 10 17a8.16 8.16 0 0 1-4.33-1.05A3.36 3.36 0 0 1 4 13Z"]),QuestionCircle20Regular=createFluentIcon("QuestionCircle20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm0 10.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5Zm0-8a2.5 2.5 0 0 1 1.65 4.38l-.15.12-.22.17-.09.07-.16.15c-.33.36-.53.85-.53 1.61a.5.5 0 0 1-1 0 3.2 3.2 0 0 1 1.16-2.62l.25-.19.12-.1A1.5 1.5 0 0 0 10 6.5c-.83 0-1.5.67-1.5 1.5a.5.5 0 0 1-1 0A2.5 2.5 0 0 1 10 5.5Z"]),SendCopy20Regular=createFluentIcon("SendCopy20Regular","20",["M8.65 2.15c.2-.2.5-.2.7 0l3 3a.5.5 0 0 1-.7.7L9.5 3.71v7.79a.5.5 0 0 1-1 0V3.7L6.35 5.86a.5.5 0 1 1-.7-.7l3-3ZM5.27 17c.34.6.99 1 1.73 1h6a4 4 0 0 0 4-4v-3.5a.5.5 0 1 0-1 0V14a3 3 0 0 1-3 3H5.27ZM4 8.5a.5.5 0 0 0-1 0V14c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-1 0V14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8.5Z"]),ShieldCheckmark24Regular=createFluentIcon("ShieldCheckmark24Regular","24",["M3 5.75c0-.41.34-.75.75-.75 2.66 0 5.26-.94 7.8-2.85.27-.2.63-.2.9 0C14.99 4.05 17.59 5 20.25 5c.41 0 .75.34.75.75V11c0 .34-.01.67-.04 1a6.47 6.47 0 0 0-1.46-.69V6.48a14.36 14.36 0 0 1-7.5-2.8 14.36 14.36 0 0 1-7.5 2.8V11c0 4.15 2.33 7.22 7.13 9.28.26.56.6 1.07 1 1.52l-.36.15a.75.75 0 0 1-.54 0C5.96 19.68 3 16 3 11V5.75ZM23 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0Zm-2.15-2.35a.5.5 0 0 0-.7 0l-3.65 3.64-1.65-1.64a.5.5 0 0 0-.7.7l2 2c.2.2.5.2.7 0l4-4a.5.5 0 0 0 0-.7Z"]),TextBulletListSquareWarning24Regular=createFluentIcon("TextBulletListSquareWarning24Regular","24",["M7.75 9.25a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm3.5-1.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5h-5.5Zm0 3.75a.75.75 0 1 0 0 1.5h3.83l.19-.37c.26-.53.67-.9 1.13-1.13h-5.15Zm0 3.75h2.7l-.74 1.5h-1.96a.75.75 0 1 1 0-1.5Zm-5 4.5h5.46l-.44.88c-.1.2-.17.41-.22.62h-4.8A3.25 3.25 0 0 1 3 17.75V6.25C3 4.45 4.46 3 6.25 3h11.5C19.55 3 21 4.46 21 6.25v8.65l-1.26-2.52a2.6 2.6 0 0 0-.24-.39V6.25c0-.97-.78-1.75-1.75-1.75H6.25c-.97 0-1.75.78-1.75 1.75v11.5c0 .97.78 1.75 1.75 1.75Zm2.5-7.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm-1 4.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm8.41-3.92a1.5 1.5 0 0 1 2.69 0l4 8c.5 1-.23 2.17-1.35 2.17h-8a1.5 1.5 0 0 1-1.34-2.17l4-8ZM18 15.5a.5.5 0 0 0-1 0v3a.5.5 0 0 0 1 0v-3Zm-.5 5.5a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z"]),TextWrap16Regular=createFluentIcon("TextWrap16Regular","16",["M2 3.5c0-.28.22-.5.5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5Zm0 4c0-.28.22-.5.5-.5h10a2.5 2.5 0 0 1 0 5H9.7l.65.65a.5.5 0 0 1-.7.7l-1.5-1.5a.5.5 0 0 1 0-.7l1.5-1.5a.5.5 0 0 1 .7.7l-.64.65h2.79a1.5 1.5 0 0 0 0-3h-10a.5.5 0 0 1-.5-.5ZM6 11a.5.5 0 0 1 0 1H2.5a.5.5 0 0 1 0-1H6Z"]),TextWrapOff16Regular=createFluentIcon("TextWrapOff16Regular","16",["M14.15 14.85 11.29 12H9.71l.64.65a.5.5 0 0 1-.7.7l-1.5-1.5a.5.5 0 0 1 0-.7L9.29 10l-2-2H2.5a.5.5 0 0 1 0-1h3.8l-3-3h-.8a.5.5 0 0 1-.18-.97L1.15 1.85a.5.5 0 1 1 .7-.7l13 13a.5.5 0 0 1-.7.7ZM10.12 8l-1-1h3.38a2.5 2.5 0 0 1 1.27 4.65l-.74-.74A1.5 1.5 0 0 0 12.5 8h-2.38Zm-4-4-1-1h8.38a.5.5 0 0 1 0 1H6.12ZM6 11a.5.5 0 0 1 0 1H2.5a.5.5 0 0 1 0-1H6Z"]),ZoomIn20Regular=createFluentIcon("ZoomIn20Regular","20",["M11.5 8.5A.5.5 0 0 0 11 8H9V6a.5.5 0 0 0-1 0v2H6a.5.5 0 0 0 0 1h2v2a.5.5 0 0 0 1 0V9h2a.5.5 0 0 0 .5-.5ZM8.5 3a5.5 5.5 0 0 1 4.23 9.02l4.12 4.13a.5.5 0 0 1-.63.76l-.07-.06-4.13-4.12A5.5 5.5 0 1 1 8.5 3Zm0 1a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9Z"]),renderFluentProvider_unstable=(j,_e)=>jsx$1(Provider,{value:_e.provider,children:jsx$1(ThemeProvider,{value:_e.theme,children:jsx$1(ThemeClassNameProvider,{value:_e.themeClassName,children:jsx$1(CustomStyleHooksProvider,{value:_e.customStyleHooks_unstable,children:jsx$1(TooltipVisibilityProvider,{value:_e.tooltip,children:jsx$1(TextDirectionProvider,{dir:_e.textDirection,children:jsx$1(IconDirectionContextProvider,{value:_e.iconDirection,children:jsx$1(OverridesProvider,{value:_e.overrides_unstable,children:jsxs(j.root,{children:[canUseDOM$3()?null:jsx$1("style",{dangerouslySetInnerHTML:{__html:j.serverStyleProps.cssRule},...j.serverStyleProps.attributes}),j.root.children]})})})})})})})})});/*! +`)}`," ".repeat(4)+""," ".repeat(2)+"",j.indexOf("&")}function warnAboutUnsupportedProperties(j,_e){}function pushToClassesMap(j,_e,et,tt){j[_e]=tt?[et,tt]:et}function createBucketEntry(j,_e){return _e?[j,_e]:j}function pushToCSSRules(j,_e,et,tt,rt){var nt;let ot;_e==="m"&&rt&&(ot={m:rt}),(nt=j[_e])!==null&&nt!==void 0||(j[_e]=[]),et&&j[_e].push(createBucketEntry(et,ot)),tt&&j[_e].push(createBucketEntry(tt,ot))}function resolveStyleRules(j,_e=[],et="",tt="",rt="",nt="",ot={},it={},st){for(const lt in j){if(UNSUPPORTED_CSS_PROPERTIES.hasOwnProperty(lt)){j[lt];continue}const ut=j[lt];if(ut!=null){if(typeof ut=="string"||typeof ut=="number"){const ct=trimSelector(_e.join("")),dt=hashPropertyKey(ct,nt,et,rt,lt),ft=hashClassName({container:nt,media:et,layer:tt,value:ut.toString(),support:rt,selector:ct,property:lt}),pt=st&&{key:lt,value:st}||convertProperty(lt,ut),gt=pt.key!==lt||pt.value!==ut,mt=gt?hashClassName({container:nt,value:pt.value.toString(),property:pt.key,selector:ct,media:et,layer:tt,support:rt}):void 0,bt=gt?{rtlClassName:mt,rtlProperty:pt.key,rtlValue:pt.value}:void 0,_t=getStyleBucketName(_e,tt,et,rt,nt),[xt,yt]=compileAtomicCSSRule({className:ft,media:et,layer:tt,selectors:_e,property:lt,support:rt,container:nt,value:ut,...bt});pushToClassesMap(ot,dt,ft,mt),pushToCSSRules(it,_t,xt,yt,et)}else if(lt==="animationName"){const ct=Array.isArray(ut)?ut:[ut],dt=[],ft=[];for(const pt of ct){const gt=compileKeyframeRule(pt),mt=compileKeyframeRule(convert(pt)),bt=HASH_PREFIX+murmur2(gt);let _t;const xt=compileKeyframesCSS(bt,gt);let yt=[];gt===mt?_t=bt:(_t=HASH_PREFIX+murmur2(mt),yt=compileKeyframesCSS(_t,mt));for(let Et=0;Et(St??"").toString()).join(";"),support:rt,selector:ct,property:lt}),pt=ut.map(St=>convertProperty(lt,St));if(!!pt.some(St=>St.key!==pt[0].key))continue;const mt=pt[0].key!==lt||pt.some((St,Tt)=>St.value!==ut[Tt]),bt=mt?hashClassName({container:nt,value:pt.map(St=>{var Tt;return((Tt=St==null?void 0:St.value)!==null&&Tt!==void 0?Tt:"").toString()}).join(";"),property:pt[0].key,selector:ct,layer:tt,media:et,support:rt}):void 0,_t=mt?{rtlClassName:bt,rtlProperty:pt[0].key,rtlValue:pt.map(St=>St.value)}:void 0,xt=getStyleBucketName(_e,tt,et,rt,nt),[yt,Et]=compileAtomicCSSRule({className:ft,media:et,layer:tt,selectors:_e,property:lt,support:rt,container:nt,value:ut,..._t});pushToClassesMap(ot,dt,ft,bt),pushToCSSRules(it,xt,yt,Et,et)}else if(isObject$k(ut))if(isNestedSelector(lt))resolveStyleRules(ut,_e.concat(normalizeNestedProperty(lt)),et,tt,rt,nt,ot,it);else if(isMediaQuerySelector(lt)){const ct=generateCombinedQuery(et,lt.slice(6).trim());resolveStyleRules(ut,_e,ct,tt,rt,nt,ot,it)}else if(isLayerSelector(lt)){const ct=(tt?`${tt}.`:"")+lt.slice(6).trim();resolveStyleRules(ut,_e,et,ct,rt,nt,ot,it)}else if(isSupportQuerySelector(lt)){const ct=generateCombinedQuery(rt,lt.slice(9).trim());resolveStyleRules(ut,_e,et,tt,ct,nt,ot,it)}else if(isContainerQuerySelector(lt)){const ct=lt.slice(10).trim();resolveStyleRules(ut,_e,et,tt,rt,ct,ot,it)}else warnAboutUnresolvedRule(lt,ut)}}return[ot,it]}function resolveStyleRulesForSlots(j){const _e={},et={};for(const tt in j){const rt=j[tt],[nt,ot]=resolveStyleRules(rt);_e[tt]=nt,Object.keys(ot).forEach(it=>{et[it]=(et[it]||[]).concat(ot[it])})}return[_e,et]}function makeStyles$1(j,_e=insertionFactory$1){const et=_e();let tt=null,rt=null,nt=null,ot=null;function it(st){const{dir:lt,renderer:ut}=st;tt===null&&([tt,rt]=resolveStyleRulesForSlots(j));const ct=lt==="ltr";return ct?nt===null&&(nt=reduceToClassNameForSlots(tt,lt)):ot===null&&(ot=reduceToClassNameForSlots(tt,lt)),et(ut,rt),ct?nt:ot}return it}function __styles$1(j,_e,et=insertionFactory$1){const tt=et();let rt=null,nt=null;function ot(it){const{dir:st,renderer:lt}=it,ut=st==="ltr";return ut?rt===null&&(rt=reduceToClassNameForSlots(j,st)):nt===null&&(nt=reduceToClassNameForSlots(j,st)),tt(lt,_e),ut?rt:nt}return ot}function __resetStyles$1(j,_e,et,tt=insertionFactory$1){const rt=tt();function nt(ot){const{dir:it,renderer:st}=ot,lt=it==="ltr"?j:_e||j;return rt(st,Array.isArray(et)?{r:et}:et),lt}return nt}const shorthands={border,borderLeft,borderBottom,borderRight,borderTop,borderColor,borderStyle,borderRadius:borderRadius$1,borderWidth:borderWidth$1,flex,gap,gridArea,margin,marginBlock,marginInline,padding,paddingBlock,paddingInline,overflow,inset,outline,transition:transition$1,textDecoration};function canUseDOM$4(){return typeof window<"u"&&!!(window.document&&window.document.createElement)}const useInsertionEffect$2=React$1.useInsertionEffect?React$1.useInsertionEffect:void 0,insertionFactory=()=>{const j={};return function(et,tt){if(useInsertionEffect$2&&canUseDOM$4()){useInsertionEffect$2(()=>{et.insertCSSRules(tt)},[et,tt]);return}j[et.id]===void 0&&(et.insertCSSRules(tt),j[et.id]=!0)}},RendererContext=reactExports.createContext(createDOMRenderer());function useRenderer(){return reactExports.useContext(RendererContext)}const TextDirectionContext=reactExports.createContext("ltr"),TextDirectionProvider=({children:j,dir:_e})=>reactExports.createElement(TextDirectionContext.Provider,{value:_e},j);function useTextDirection(){return reactExports.useContext(TextDirectionContext)}function makeStyles(j){const _e=makeStyles$1(j,insertionFactory);return function(){const tt=useTextDirection(),rt=useRenderer();return _e({dir:tt,renderer:rt})}}function __styles(j,_e){const et=__styles$1(j,_e,insertionFactory);return function(){const rt=useTextDirection(),nt=useRenderer();return et({dir:rt,renderer:nt})}}function __resetStyles(j,_e,et){const tt=__resetStyles$1(j,_e,et,insertionFactory);return function(){const nt=useTextDirection(),ot=useRenderer();return tt({dir:nt,renderer:ot})}}function createCSSRuleFromTheme(j,_e){if(_e){const et=Object.keys(_e).reduce((tt,rt)=>`${tt}--${rt}: ${_e[rt]}; `,"");return`${j} { ${et} }`}return`${j} {}`}const SLOT_RENDER_FUNCTION_SYMBOL=Symbol("fui.slotRenderFunction"),SLOT_ELEMENT_TYPE_SYMBOL=Symbol("fui.slotElementType");function always(j,_e){const{defaultProps:et,elementType:tt}=_e,rt=resolveShorthand(j),nt={...et,...rt,[SLOT_ELEMENT_TYPE_SYMBOL]:tt};return rt&&typeof rt.children=="function"&&(nt[SLOT_RENDER_FUNCTION_SYMBOL]=rt.children,nt.children=et==null?void 0:et.children),nt}function optional(j,_e){if(!(j===null||j===void 0&&!_e.renderByDefault))return always(j,_e)}function resolveShorthand(j){return typeof j=="string"||typeof j=="number"||Array.isArray(j)||reactExports.isValidElement(j)?{children:j}:j}function isSlot(j){return!!(j!=null&&j.hasOwnProperty(SLOT_ELEMENT_TYPE_SYMBOL))}function isResolvedShorthand(j){return j!==null&&typeof j=="object"&&!Array.isArray(j)&&!reactExports.isValidElement(j)}const toObjectMap$1=(...j)=>{const _e={};for(const et of j){const tt=Array.isArray(et)?et:Object.keys(et);for(const rt of tt)_e[rt]=1}return _e},baseElementEvents$1=toObjectMap$1(["onAuxClick","onAnimationEnd","onAnimationStart","onCopy","onCut","onPaste","onCompositionEnd","onCompositionStart","onCompositionUpdate","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onInput","onSubmit","onLoad","onError","onKeyDown","onKeyDownCapture","onKeyPress","onKeyUp","onAbort","onCanPlay","onCanPlayThrough","onDurationChange","onEmptied","onEncrypted","onEnded","onLoadedData","onLoadedMetadata","onLoadStart","onPause","onPlay","onPlaying","onProgress","onRateChange","onSeeked","onSeeking","onStalled","onSuspend","onTimeUpdate","onVolumeChange","onWaiting","onClick","onClickCapture","onContextMenu","onDoubleClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onMouseUpCapture","onSelect","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onScroll","onWheel","onPointerCancel","onPointerDown","onPointerEnter","onPointerLeave","onPointerMove","onPointerOut","onPointerOver","onPointerUp","onGotPointerCapture","onLostPointerCapture"]),baseElementProperties$1=toObjectMap$1(["accessKey","children","className","contentEditable","dir","draggable","hidden","htmlFor","id","lang","ref","role","style","tabIndex","title","translate","spellCheck","name"]),microdataProperties=toObjectMap$1(["itemID","itemProp","itemRef","itemScope","itemType"]),htmlElementProperties$1=toObjectMap$1(baseElementProperties$1,baseElementEvents$1,microdataProperties),labelProperties=toObjectMap$1(htmlElementProperties$1,["form"]),audioProperties$1=toObjectMap$1(htmlElementProperties$1,["height","loop","muted","preload","src","width"]),videoProperties=toObjectMap$1(audioProperties$1,["poster"]),olProperties=toObjectMap$1(htmlElementProperties$1,["start"]),liProperties=toObjectMap$1(htmlElementProperties$1,["value"]),anchorProperties$1=toObjectMap$1(htmlElementProperties$1,["download","href","hrefLang","media","rel","target","type"]),timeProperties=toObjectMap$1(htmlElementProperties$1,["dateTime"]),buttonProperties$1=toObjectMap$1(htmlElementProperties$1,["autoFocus","disabled","form","formAction","formEncType","formMethod","formNoValidate","formTarget","type","value"]),inputProperties=toObjectMap$1(buttonProperties$1,["accept","alt","autoCapitalize","autoComplete","checked","dirname","form","height","inputMode","list","max","maxLength","min","multiple","pattern","placeholder","readOnly","required","src","step","size","type","value","width"]),textAreaProperties=toObjectMap$1(buttonProperties$1,["autoCapitalize","cols","dirname","form","maxLength","placeholder","readOnly","required","rows","wrap"]),selectProperties=toObjectMap$1(buttonProperties$1,["form","multiple","required"]),optionProperties=toObjectMap$1(htmlElementProperties$1,["selected","value"]),tableProperties=toObjectMap$1(htmlElementProperties$1,["cellPadding","cellSpacing"]),trProperties=htmlElementProperties$1,thProperties=toObjectMap$1(htmlElementProperties$1,["colSpan","rowSpan","scope"]),tdProperties=toObjectMap$1(htmlElementProperties$1,["colSpan","headers","rowSpan","scope"]),colGroupProperties=toObjectMap$1(htmlElementProperties$1,["span"]),colProperties=toObjectMap$1(htmlElementProperties$1,["span"]),fieldsetProperties=toObjectMap$1(htmlElementProperties$1,["disabled","form"]),formProperties=toObjectMap$1(htmlElementProperties$1,["acceptCharset","action","encType","encType","method","noValidate","target"]),iframeProperties=toObjectMap$1(htmlElementProperties$1,["allow","allowFullScreen","allowPaymentRequest","allowTransparency","csp","height","importance","referrerPolicy","sandbox","src","srcDoc","width"]),imgProperties$1=toObjectMap$1(htmlElementProperties$1,["alt","crossOrigin","height","src","srcSet","useMap","width"]),dialogProperties=toObjectMap$1(htmlElementProperties$1,["open","onCancel","onClose"]);function getNativeProps$1(j,_e,et){const tt=Array.isArray(_e),rt={},nt=Object.keys(j);for(const ot of nt)(!tt&&_e[ot]||tt&&_e.indexOf(ot)>=0||ot.indexOf("data-")===0||ot.indexOf("aria-")===0)&&(!et||(et==null?void 0:et.indexOf(ot))===-1)&&(rt[ot]=j[ot]);return rt}const nativeElementMap={label:labelProperties,audio:audioProperties$1,video:videoProperties,ol:olProperties,li:liProperties,a:anchorProperties$1,button:buttonProperties$1,input:inputProperties,textarea:textAreaProperties,select:selectProperties,option:optionProperties,table:tableProperties,tr:trProperties,th:thProperties,td:tdProperties,colGroup:colGroupProperties,col:colProperties,fieldset:fieldsetProperties,form:formProperties,iframe:iframeProperties,img:imgProperties$1,time:timeProperties,dialog:dialogProperties};function getNativeElementProps(j,_e,et){const tt=j&&nativeElementMap[j]||htmlElementProperties$1;return tt.as=1,getNativeProps$1(_e,tt,et)}const getPartitionedNativeProps=({primarySlotTagName:j,props:_e,excludedPropNames:et})=>({root:{style:_e.style,className:_e.className},primary:getNativeElementProps(j,_e,[...et||[],"style","className"])}),getIntrinsicElementProps=(j,_e,et)=>{var tt;return getNativeElementProps((tt=_e.as)!==null&&tt!==void 0?tt:j,_e,et)};function canUseDOM$3(){return typeof window<"u"&&!!(window.document&&window.document.createElement)}function useBrowserTimer(j,_e){const et=reactExports.useRef(void 0),tt=reactExports.useCallback((nt,ot)=>(et.current!==void 0&&_e(et.current),et.current=j(nt,ot),et.current),[_e,j]),rt=reactExports.useCallback(()=>{et.current!==void 0&&(_e(et.current),et.current=void 0)},[_e]);return reactExports.useEffect(()=>rt,[rt]),[tt,rt]}const setAnimationFrameNoop=j=>(j(0),0),cancelAnimationFrameNoop=j=>j;function useAnimationFrame(){const j=canUseDOM$3();return useBrowserTimer(j?requestAnimationFrame:setAnimationFrameNoop,j?cancelAnimationFrame:cancelAnimationFrameNoop)}function isFactoryDispatch(j){return typeof j=="function"}const useControllableState=j=>{const[_e,et]=reactExports.useState(()=>j.defaultState===void 0?j.initialState:isInitializer(j.defaultState)?j.defaultState():j.defaultState),tt=reactExports.useRef(j.state);reactExports.useEffect(()=>{tt.current=j.state},[j.state]);const rt=reactExports.useCallback(nt=>{isFactoryDispatch(nt)&&nt(tt.current)},[]);return useIsControlled(j.state)?[j.state,rt]:[_e,et]};function isInitializer(j){return typeof j=="function"}const useIsControlled=j=>{const[_e]=reactExports.useState(()=>j!==void 0);return _e},defaultSSRContextValue={current:0},SSRContext=reactExports.createContext(void 0);function useSSRContext(){var j;return(j=reactExports.useContext(SSRContext))!==null&&j!==void 0?j:defaultSSRContextValue}function useIsSSR(){const j=useSSRContext()!==defaultSSRContextValue,[_e,et]=reactExports.useState(j);return canUseDOM$3()&&j&&reactExports.useLayoutEffect(()=>{et(!1)},[]),_e}const useIsomorphicLayoutEffect$1=canUseDOM$3()?reactExports.useLayoutEffect:reactExports.useEffect,useEventCallback$3=j=>{const _e=reactExports.useRef(()=>{throw new Error("Cannot call an event handler while rendering")});return useIsomorphicLayoutEffect$1(()=>{_e.current=j},[j]),reactExports.useCallback((...et)=>{const tt=_e.current;return tt(...et)},[_e])};function useFirstMount(){const j=reactExports.useRef(!0);return j.current?(j.current=!1,!0):j.current}const IdPrefixContext=reactExports.createContext(void 0);IdPrefixContext.Provider;function useIdPrefix(){return reactExports.useContext(IdPrefixContext)||""}function useId$1(j="fui-",_e){const et=useSSRContext(),tt=useIdPrefix(),rt=React$1.useId;if(rt){const nt=rt(),ot=reactExports.useMemo(()=>nt.replace(/:/g,""),[nt]);return _e||`${tt}${j}${ot}`}return reactExports.useMemo(()=>_e||`${tt}${j}${++et.current}`,[tt,j,_e,et])}function useMergedRefs$1(...j){const _e=reactExports.useCallback(et=>{_e.current=et;for(const tt of j)typeof tt=="function"?tt(et):tt&&(tt.current=et)},[...j]);return _e}const ThemeContext$1=reactExports.createContext(void 0),ThemeProvider=ThemeContext$1.Provider,ThemeClassNameContext=reactExports.createContext(void 0),themeClassNameContextDefaultVaue="",ThemeClassNameProvider=ThemeClassNameContext.Provider;function useThemeClassName(){var j;return(j=reactExports.useContext(ThemeClassNameContext))!==null&&j!==void 0?j:themeClassNameContextDefaultVaue}const TooltipVisibilityContext=reactExports.createContext(void 0),tooltipVisibilityContextDefaultValue={},TooltipVisibilityProvider=TooltipVisibilityContext.Provider;function useTooltipVisibility(){var j;return(j=reactExports.useContext(TooltipVisibilityContext))!==null&&j!==void 0?j:tooltipVisibilityContextDefaultValue}const ProviderContext=reactExports.createContext(void 0),providerContextDefaultValue={targetDocument:typeof document=="object"?document:void 0,dir:"ltr"},Provider=ProviderContext.Provider;function useFluent(){var j;return(j=reactExports.useContext(ProviderContext))!==null&&j!==void 0?j:providerContextDefaultValue}const OverridesContext=reactExports.createContext(void 0),OverridesProvider=OverridesContext.Provider;function useOverrides(){var j;return(j=reactExports.useContext(OverridesContext))!==null&&j!==void 0?j:{}}const CustomStyleHooksContext=reactExports.createContext(void 0),noop$6=()=>{},CustomStyleHooksProvider=CustomStyleHooksContext.Provider,useCustomStyleHook=j=>{var _e,et;return(et=(_e=reactExports.useContext(CustomStyleHooksContext))===null||_e===void 0?void 0:_e[j])!==null&&et!==void 0?et:noop$6},BackgroundAppearanceContext=reactExports.createContext(void 0);BackgroundAppearanceContext.Provider;function useBackgroundAppearance(){return reactExports.useContext(BackgroundAppearanceContext)}const PortalMountNodeContext=reactExports.createContext(void 0);PortalMountNodeContext.Provider;function usePortalMountNode$1(){return reactExports.useContext(PortalMountNodeContext)}const AnnounceContext=reactExports.createContext(void 0);AnnounceContext.Provider;function useAnnounce(){var j;return(j=reactExports.useContext(AnnounceContext))!==null&&j!==void 0?j:{announce:()=>{}}}const DEFAULT_CONTAINS=(j,_e)=>!!(j!=null&&j.contains(_e)),useOnClickOutside=j=>{const{targetDocument:_e}=useFluent(),et=_e==null?void 0:_e.defaultView,{refs:tt,callback:rt,element:nt,disabled:ot,disabledFocusOnIframe:it,contains:st=DEFAULT_CONTAINS}=j,lt=reactExports.useRef(void 0);useIFrameFocus({element:nt,disabled:it||ot,callback:rt,refs:tt,contains:st});const ut=reactExports.useRef(!1),ct=useEventCallback$3(ft=>{if(ut.current){ut.current=!1;return}const pt=ft.composedPath()[0];tt.every(mt=>!st(mt.current||null,pt))&&!ot&&rt(ft)}),dt=useEventCallback$3(ft=>{ut.current=tt.some(pt=>st(pt.current||null,ft.target))});reactExports.useEffect(()=>{if(ot)return;let ft=getWindowEvent(et);const pt=gt=>{if(gt===ft){ft=void 0;return}ct(gt)};return nt==null||nt.addEventListener("click",pt,!0),nt==null||nt.addEventListener("touchstart",pt,!0),nt==null||nt.addEventListener("contextmenu",pt,!0),nt==null||nt.addEventListener("mousedown",dt,!0),lt.current=et==null?void 0:et.setTimeout(()=>{ft=void 0},1),()=>{nt==null||nt.removeEventListener("click",pt,!0),nt==null||nt.removeEventListener("touchstart",pt,!0),nt==null||nt.removeEventListener("contextmenu",pt,!0),nt==null||nt.removeEventListener("mousedown",dt,!0),et==null||et.clearTimeout(lt.current),ft=void 0}},[ct,nt,ot,dt,et])},getWindowEvent=j=>{if(j){var _e,et;if(typeof j.window=="object"&&j.window===j)return j.event;var tt;return(tt=(et=j.ownerDocument)===null||et===void 0||(_e=et.defaultView)===null||_e===void 0?void 0:_e.event)!==null&&tt!==void 0?tt:void 0}},FUI_FRAME_EVENT="fuiframefocus",useIFrameFocus=j=>{const{disabled:_e,element:et,callback:tt,contains:rt=DEFAULT_CONTAINS,pollDuration:nt=1e3,refs:ot}=j,it=reactExports.useRef(),st=useEventCallback$3(lt=>{ot.every(ct=>!rt(ct.current||null,lt.target))&&!_e&&tt(lt)});reactExports.useEffect(()=>{if(!_e)return et==null||et.addEventListener(FUI_FRAME_EVENT,st,!0),()=>{et==null||et.removeEventListener(FUI_FRAME_EVENT,st,!0)}},[et,_e,st]),reactExports.useEffect(()=>{var lt;if(!_e)return it.current=et==null||(lt=et.defaultView)===null||lt===void 0?void 0:lt.setInterval(()=>{const ut=et==null?void 0:et.activeElement;if((ut==null?void 0:ut.tagName)==="IFRAME"||(ut==null?void 0:ut.tagName)==="WEBVIEW"){const ct=new CustomEvent(FUI_FRAME_EVENT,{bubbles:!0});ut.dispatchEvent(ct)}},nt),()=>{var ut;et==null||(ut=et.defaultView)===null||ut===void 0||ut.clearTimeout(it.current)}},[et,_e,nt])},useOnScrollOutside=j=>{const{refs:_e,callback:et,element:tt,disabled:rt,contains:nt}=j,ot=useEventCallback$3(it=>{const st=nt||((ct,dt)=>!!(ct!=null&&ct.contains(dt))),lt=it.composedPath()[0];_e.every(ct=>!st(ct.current||null,lt))&&!rt&&et(it)});reactExports.useEffect(()=>{if(!rt)return tt==null||tt.addEventListener("wheel",ot),tt==null||tt.addEventListener("touchmove",ot),()=>{tt==null||tt.removeEventListener("wheel",ot),tt==null||tt.removeEventListener("touchmove",ot)}},[ot,tt,rt])};function useTimeout(){return useBrowserTimer(setTimeout,clearTimeout)}function mergeCallbacks(j,_e){return(...et)=>{j==null||j(...et),_e==null||_e(...et)}}function isHTMLElement$4(j,_e){var et;const tt=j;var rt;return!!(!(tt==null||(et=tt.ownerDocument)===null||et===void 0)&&et.defaultView&&tt instanceof tt.ownerDocument.defaultView[(rt=_e==null?void 0:_e.constructorName)!==null&&rt!==void 0?rt:"HTMLElement"])}function isFluentTrigger(j){return!!j.type.isFluentTriggerComponent}function applyTriggerPropsToChildren(j,_e){return typeof j=="function"?j(_e):j?cloneTriggerTree(j,_e):j||null}function cloneTriggerTree(j,_e){if(!reactExports.isValidElement(j)||j.type===reactExports.Fragment)throw new Error("A trigger element must be a single element for this component. Please ensure that you're not using React Fragments.");if(isFluentTrigger(j)){const et=cloneTriggerTree(j.props.children,_e);return reactExports.cloneElement(j,void 0,et)}else return reactExports.cloneElement(j,_e)}function getTriggerChild(j){return reactExports.isValidElement(j)?isFluentTrigger(j)?getTriggerChild(j.props.children):j:null}function isVirtualElement$1(j){return j&&!!j._virtual}function getVirtualParent$1(j){return isVirtualElement$1(j)&&j._virtual.parent||null}function getParent$1(j,_e={}){if(!j)return null;if(!_e.skipVirtual){const et=getVirtualParent$1(j);if(et)return et}return(j==null?void 0:j.parentNode)||null}function elementContains$1(j,_e){if(!j||!_e)return!1;if(j===_e)return!0;{const et=new WeakSet;for(;_e;){const tt=getParent$1(_e,{skipVirtual:et.has(_e)});if(et.add(_e),tt===j)return!0;_e=tt}}return!1}function setVirtualParent$1(j,_e){if(!j)return;const et=j;et._virtual||(et._virtual={}),et._virtual.parent=_e}function createCompatSlotComponent(j,_e){return{..._e,[SLOT_ELEMENT_TYPE_SYMBOL]:j}}function createJSX(j,_e){return function(tt,rt,nt,ot,it){return isSlot(rt)?_e(createCompatSlotComponent(tt,rt),null,nt,ot,it):isSlot(tt)?_e(tt,rt,nt,ot,it):j(tt,rt,nt,ot,it)}}function getMetadataFromSlotComponent(j){const{as:_e,[SLOT_ELEMENT_TYPE_SYMBOL]:et,[SLOT_RENDER_FUNCTION_SYMBOL]:tt,...rt}=j,nt=rt,ot=typeof et=="string"?_e??et:et;return typeof ot!="string"&&_e&&(nt.as=_e),{elementType:ot,props:nt,renderFunction:tt}}const Runtime=ReactRuntime,jsxSlot=(j,_e,et)=>{const{elementType:tt,renderFunction:rt,props:nt}=getMetadataFromSlotComponent(j),ot={...nt,..._e};return rt?Runtime.jsx(reactExports.Fragment,{children:rt(tt,ot)},et):Runtime.jsx(tt,ot,et)},jsxsSlot=(j,_e,et)=>{const{elementType:tt,renderFunction:rt,props:nt}=getMetadataFromSlotComponent(j),ot={...nt,..._e};return rt?Runtime.jsx(reactExports.Fragment,{children:rt(tt,{...ot,children:Runtime.jsxs(reactExports.Fragment,{children:ot.children},void 0)})},et):Runtime.jsxs(tt,ot,et)},jsx$1=createJSX(Runtime.jsx,jsxSlot),jsxs=createJSX(Runtime.jsxs,jsxsSlot),IconDirectionContext=reactExports.createContext(void 0),IconDirectionContextDefaultValue={},IconDirectionContextProvider=IconDirectionContext.Provider,useIconContext=()=>reactExports.useContext(IconDirectionContext)?reactExports.useContext(IconDirectionContext):IconDirectionContextDefaultValue,useRootStyles$7=__styles({root:{mc9l5x:"f1w7gpdv",Bg96gwp:"fez10in",ycbfsm:"fg4l7m0"},rtl:{Bz10aip:"f13rod7r"}},{d:[".f1w7gpdv{display:inline;}",".fez10in{line-height:0;}",".f13rod7r{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);}"],t:["@media (forced-colors: active){.fg4l7m0{forced-color-adjust:auto;}}"]}),useIconState=(j,_e)=>{const{title:et,primaryFill:tt="currentColor",...rt}=j,nt={...rt,title:void 0,fill:tt},ot=useRootStyles$7(),it=useIconContext();return nt.className=mergeClasses(ot.root,(_e==null?void 0:_e.flipInRtl)&&(it==null?void 0:it.textDirection)==="rtl"&&ot.rtl,nt.className),et&&(nt["aria-label"]=et),!nt["aria-label"]&&!nt["aria-labelledby"]?nt["aria-hidden"]=!0:nt.role="img",nt},createFluentIcon=(j,_e,et,tt)=>{const rt=_e==="1em"?"20":_e,nt=reactExports.forwardRef((ot,it)=>{const st={...useIconState(ot,{flipInRtl:tt==null?void 0:tt.flipInRtl}),ref:it,width:_e,height:_e,viewBox:`0 0 ${rt} ${rt}`,xmlns:"http://www.w3.org/2000/svg"};return reactExports.createElement("svg",st,...et.map(lt=>reactExports.createElement("path",{d:lt,fill:st.fill})))});return nt.displayName=j,nt},CheckmarkFilled=createFluentIcon("CheckmarkFilled","1em",["M7.03 13.9 3.56 10a.75.75 0 0 0-1.12 1l4 4.5c.29.32.79.34 1.09.03l10.5-10.5a.75.75 0 0 0-1.06-1.06l-9.94 9.94Z"]),CheckmarkCircleFilled=createFluentIcon("CheckmarkCircleFilled","1em",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm3.36 5.65a.5.5 0 0 0-.64-.06l-.07.06L9 11.3 7.35 9.65l-.07-.06a.5.5 0 0 0-.7.7l.07.07 2 2 .07.06c.17.11.4.11.56 0l.07-.06 4-4 .07-.08a.5.5 0 0 0-.06-.63Z"]),ChevronDownRegular=createFluentIcon("ChevronDownRegular","1em",["M15.85 7.65c.2.2.2.5 0 .7l-5.46 5.49a.55.55 0 0 1-.78 0L4.15 8.35a.5.5 0 1 1 .7-.7L10 12.8l5.15-5.16c.2-.2.5-.2.7 0Z"]),ChevronRightRegular=createFluentIcon("ChevronRightRegular","1em",["M7.65 4.15c.2-.2.5-.2.7 0l5.49 5.46c.21.22.21.57 0 .78l-5.49 5.46a.5.5 0 0 1-.7-.7L12.8 10 7.65 4.85a.5.5 0 0 1 0-.7Z"]),CircleFilled=createFluentIcon("CircleFilled","1em",["M10 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Z"]),ErrorCircleFilled=createFluentIcon("ErrorCircleFilled","1em",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 10.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM10 6a.5.5 0 0 0-.5.41v4.68a.5.5 0 0 0 1 0V6.41A.5.5 0 0 0 10 6Z"]),InfoFilled=createFluentIcon("InfoFilled","1em",["M18 10a8 8 0 1 0-16 0 8 8 0 0 0 16 0ZM9.5 8.91a.5.5 0 0 1 1 0V13.6a.5.5 0 0 1-1 0V8.9Zm-.25-2.16a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0Z"]),WarningFilled=createFluentIcon("WarningFilled","1em",["M8.68 2.79a1.5 1.5 0 0 1 2.64 0l6.5 12A1.5 1.5 0 0 1 16.5 17h-13a1.5 1.5 0 0 1-1.32-2.21l6.5-12ZM10.5 7.5a.5.5 0 0 0-1 0v4a.5.5 0 0 0 1 0v-4Zm.25 6.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"]),Alert20Regular=createFluentIcon("Alert20Regular","20",["M10 2a5.92 5.92 0 0 1 5.98 5.36l.02.22V11.4l.92 2.22a1 1 0 0 1 .06.17l.01.08.01.13a1 1 0 0 1-.75.97l-.11.02L16 15h-3.5v.17a2.5 2.5 0 0 1-5 0V15H4a1 1 0 0 1-.26-.03l-.13-.04a1 1 0 0 1-.6-1.05l.02-.13.05-.13L4 11.4V7.57A5.9 5.9 0 0 1 10 2Zm1.5 13h-3v.15a1.5 1.5 0 0 0 1.36 1.34l.14.01c.78 0 1.42-.6 1.5-1.36V15ZM10 3a4.9 4.9 0 0 0-4.98 4.38L5 7.6V11.5l-.04.2L4 14h12l-.96-2.3-.04-.2V7.61A4.9 4.9 0 0 0 10 3Z"]),ArrowClockwise16Regular=createFluentIcon("ArrowClockwise16Regular","16",["M3 8a5 5 0 0 1 9-3H9.5a.5.5 0 0 0 0 1h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-1 0v1.03A6 6 0 1 0 14 8a.5.5 0 0 0-1 0A5 5 0 0 1 3 8Z"]),ArrowClockwiseDashes20Regular=createFluentIcon("ArrowClockwiseDashes20Regular","20",["M8.13 2.22a8.02 8.02 0 0 1 3.74 0 .5.5 0 0 1-.23.97 7.02 7.02 0 0 0-3.28 0 .5.5 0 1 1-.23-.97ZM6.51 3.34a.5.5 0 0 1-.17.69 7.04 7.04 0 0 0-2.31 2.31.5.5 0 0 1-.85-.52 8.04 8.04 0 0 1 2.64-2.64.5.5 0 0 1 .69.16Zm7.67-.16a.5.5 0 1 0-.52.85c.82.5 1.53 1.18 2.09 1.97H12.5a.5.5 0 0 0 0 1h4a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 0-1 0v2.2a8.04 8.04 0 0 0-1.82-1.52ZM2.82 7.76a.5.5 0 0 1 .37.6 7.02 7.02 0 0 0 0 3.28.5.5 0 0 1-.97.23 8.02 8.02 0 0 1 0-3.74.5.5 0 0 1 .6-.37ZM18 10v-.5a.5.5 0 0 0-1 0v.5c0 .56-.07 1.11-.2 1.64a.5.5 0 1 0 .98.23c.14-.6.22-1.23.22-1.87ZM3.34 13.5a.5.5 0 0 1 .69.16 7.04 7.04 0 0 0 2.31 2.31.5.5 0 1 1-.52.85 8.04 8.04 0 0 1-2.64-2.64.5.5 0 0 1 .16-.69Zm13.48.68a.5.5 0 0 0-.85-.52 7.04 7.04 0 0 1-2.31 2.31.5.5 0 0 0 .52.85 8.04 8.04 0 0 0 2.64-2.64Zm-9.06 3a.5.5 0 0 1 .6-.37 7.02 7.02 0 0 0 3.28 0 .5.5 0 1 1 .23.97 8.02 8.02 0 0 1-3.74 0 .5.5 0 0 1-.37-.6Z"]),ArrowUpload24Regular=createFluentIcon("ArrowUpload24Regular","24",["M18.25 3.51a.75.75 0 1 0 0-1.5h-13a.75.75 0 1 0 0 1.5h13ZM11.65 22h.1c.38 0 .7-.28.74-.64l.01-.1V7.56l3.72 3.72c.27.27.68.29.98.07l.08-.07a.75.75 0 0 0 .07-.98l-.07-.08-5-5a.75.75 0 0 0-.97-.07l-.09.07-5 5a.75.75 0 0 0 .98 1.13l.08-.07L11 7.58v13.67c0 .38.28.7.65.75Z"]),Attach16Regular=createFluentIcon("Attach16Regular","16",["M2.28 7.97a.5.5 0 0 0 .86.36l4.6-4.6A2.5 2.5 0 0 1 12 5.5a2.5 2.5 0 0 1-.73 1.77l-5.3 5.3a1 1 0 0 1-1.71-.7 1 1 0 0 1 .3-.71l5.3-5.3a.5.5 0 0 0-.7-.7l-5.32 5.29a2 2 0 1 0 2.83 2.83l5.3-5.3A3.49 3.49 0 0 0 9.5 2c-.9 0-1.8.34-2.48 1.02l-4.6 4.6a.5.5 0 0 0-.14.35Z"]),Checkmark12Filled=createFluentIcon("Checkmark12Filled","12",["M9.76 3.2c.3.29.32.76.04 1.06l-4.25 4.5a.75.75 0 0 1-1.08.02L2.22 6.53a.75.75 0 0 1 1.06-1.06l1.7 1.7L8.7 3.24a.75.75 0 0 1 1.06-.04Z"]),CheckmarkCircle20Regular=createFluentIcon("CheckmarkCircle20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm3.36 4.65c.17.17.2.44.06.63l-.06.07-4 4a.5.5 0 0 1-.64.07l-.07-.06-2-2a.5.5 0 0 1 .63-.77l.07.06L9 11.3l3.65-3.65c.2-.2.51-.2.7 0Z"]),ChevronDown16Filled=createFluentIcon("ChevronDown16Filled","16",["M3.2 5.74a.75.75 0 0 1 1.06-.04L8 9.23l3.74-3.53a.75.75 0 1 1 1.02 1.1l-4.25 4a.75.75 0 0 1-1.02 0l-4.25-4a.75.75 0 0 1-.04-1.06Z"]),ChevronLeft16Regular=createFluentIcon("ChevronLeft16Regular","16",["M10.35 3.15c.2.2.2.5 0 .7L6.21 8l4.14 4.15a.5.5 0 0 1-.7.7l-4.5-4.5a.5.5 0 0 1 0-.7l4.5-4.5c.2-.2.5-.2.7 0Z"]),ChevronRight16Filled=createFluentIcon("ChevronRight16Filled","16",["M5.74 3.2a.75.75 0 0 0-.04 1.06L9.23 8 5.7 11.74a.75.75 0 1 0 1.1 1.02l4-4.25a.75.75 0 0 0 0-1.02l-4-4.25a.75.75 0 0 0-1.06-.04Z"]),ChevronRight16Regular=createFluentIcon("ChevronRight16Regular","16",["M5.65 3.15a.5.5 0 0 0 0 .7L9.79 8l-4.14 4.15a.5.5 0 0 0 .7.7l4.5-4.5a.5.5 0 0 0 0-.7l-4.5-4.5a.5.5 0 0 0-.7 0Z"]),Clock20Regular=createFluentIcon("Clock20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-.5 2a.5.5 0 0 1 .5.41V10h2.5a.5.5 0 0 1 .09 1H9.5a.5.5 0 0 1-.5-.41V5.5c0-.28.22-.5.5-.5Z"]),Copy20Regular=createFluentIcon("Copy20Regular","20",["M8 2a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h6a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8ZM7 4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1V4ZM4 6a2 2 0 0 1 1-1.73V14.5A2.5 2.5 0 0 0 7.5 17h6.23A2 2 0 0 1 12 18H7.5A3.5 3.5 0 0 1 4 14.5V6Z"]),CopyArrowRight20Regular=createFluentIcon("CopyArrowRight20Regular","20",["M8 2a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h1.2c-.08-.32-.15-.66-.18-1H8a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v5.02c.34.03.68.1 1 .19V4a2 2 0 0 0-2-2H8Zm-.5 15h2.1c.18.36.4.7.66 1H7.5A3.5 3.5 0 0 1 4 14.5V6a2 2 0 0 1 1-1.73V14.5A2.5 2.5 0 0 0 7.5 17Zm7-7a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9Zm2.35 4.85a.5.5 0 0 0 .15-.35.5.5 0 0 0-.15-.35l-2-2a.5.5 0 0 0-.7.7L15.29 14H12.5a.5.5 0 0 0 0 1h2.8l-1.15 1.15a.5.5 0 0 0 .7.7l2-2Z"]),Dismiss20Regular=createFluentIcon("Dismiss20Regular","20",["m4.09 4.22.06-.07a.5.5 0 0 1 .63-.06l.07.06L10 9.29l5.15-5.14a.5.5 0 0 1 .63-.06l.07.06c.18.17.2.44.06.63l-.06.07L10.71 10l5.14 5.15c.18.17.2.44.06.63l-.06.07a.5.5 0 0 1-.63.06l-.07-.06L10 10.71l-5.15 5.14a.5.5 0 0 1-.63.06l-.07-.06a.5.5 0 0 1-.06-.63l.06-.07L9.29 10 4.15 4.85a.5.5 0 0 1-.06-.63l.06-.07-.06.07Z"]),Dismiss24Regular=createFluentIcon("Dismiss24Regular","24",["m4.4 4.55.07-.08a.75.75 0 0 1 .98-.07l.08.07L12 10.94l6.47-6.47a.75.75 0 1 1 1.06 1.06L13.06 12l6.47 6.47c.27.27.3.68.07.98l-.07.08a.75.75 0 0 1-.98.07l-.08-.07L12 13.06l-6.47 6.47a.75.75 0 0 1-1.06-1.06L10.94 12 4.47 5.53a.75.75 0 0 1-.07-.98l.07-.08-.07.08Z"]),DismissCircle20Regular=createFluentIcon("DismissCircle20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14ZM7.8 7.11l.08.06L10 9.3l2.12-2.12a.5.5 0 0 1 .64-.06l.07.06c.17.18.2.44.06.64l-.06.07L10.7 10l2.12 2.12c.17.17.2.44.06.64l-.06.07a.5.5 0 0 1-.64.06l-.07-.06L10 10.7l-2.12 2.12a.5.5 0 0 1-.64.06l-.07-.06a.5.5 0 0 1-.06-.64l.06-.07L9.3 10 7.17 7.88a.5.5 0 0 1-.06-.64l.06-.07a.5.5 0 0 1 .64-.06Z"]),Document16Regular=createFluentIcon("Document16Regular","16",["M5 1a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h6a2 2 0 0 0 2-2V5.41c0-.4-.16-.78-.44-1.06L9.65 1.44A1.5 1.5 0 0 0 8.59 1H5ZM4 3a1 1 0 0 1 1-1h3v2.5C8 5.33 8.67 6 9.5 6H12v7a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3Zm7.8 2H9.5a.5.5 0 0 1-.5-.5V2.2L11.8 5Z"]),ErrorCircle16Filled=createFluentIcon("ErrorCircle16Filled","16",["M8 2a6 6 0 1 1 0 12A6 6 0 0 1 8 2Zm0 8a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0-5.5a.5.5 0 0 0-.5.41V8.59a.5.5 0 0 0 1 0V4.91A.5.5 0 0 0 8 4.5Z"]),ErrorCircle20Regular=createFluentIcon("ErrorCircle20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm0 9.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5ZM10 6a.5.5 0 0 1 .5.41V11a.5.5 0 0 1-1 .09V6.5c0-.28.22-.5.5-.5Z"]),GanttChart20Regular=createFluentIcon("GanttChart20Regular","20",["M4.5 7a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1h-4ZM9 9.5c0-.28.22-.5.5-.5h4a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5Zm3.5 1.5a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3Zm-8-7A2.5 2.5 0 0 0 2 6.5v7A2.5 2.5 0 0 0 4.5 16h11a2.5 2.5 0 0 0 2.5-2.5v-7A2.5 2.5 0 0 0 15.5 4h-11ZM3 6.5C3 5.67 3.67 5 4.5 5H7v1h1V5h4v3h1V5h2.5c.83 0 1.5.67 1.5 1.5v7c0 .83-.67 1.5-1.5 1.5H13v-2h-1v2H8V9H7v6H4.5A1.5 1.5 0 0 1 3 13.5v-7Z"]),LinkMultiple16Regular=createFluentIcon("LinkMultiple16Regular","16",["M12 6.5A3.5 3.5 0 0 0 8.5 3H4.3A3.5 3.5 0 0 0 3 9.67a4.57 4.57 0 0 1 .1-1.1A2.5 2.5 0 0 1 4.5 4h4.16a2.5 2.5 0 0 1-.16 5h-1l-.1.01a.5.5 0 0 0 .1 1l1-.01h.2A3.5 3.5 0 0 0 12 6.5Zm2 3a2.5 2.5 0 0 0-1.1-2.07 4.52 4.52 0 0 0 .1-1.1A3.5 3.5 0 0 1 11.7 13l-.2.01h-4a3.5 3.5 0 0 1-.2-7h1.2a.5.5 0 0 1 .09 1H7.5a2.5 2.5 0 0 0-.16 5h4.16A2.5 2.5 0 0 0 14 9.5Z"]),NumberCircle020Regular=createFluentIcon("NumberCircle020Regular","20",["M17 10a7 7 0 1 1-14 0 7 7 0 0 1 14 0Zm-7 8a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm-2-8c0-1.07.15-1.97.49-2.6.16-.3.36-.51.6-.66.23-.15.52-.24.91-.24s.68.1.92.24c.23.15.43.37.6.67.33.62.48 1.52.48 2.59 0 1.07-.15 1.97-.49 2.6-.16.3-.36.51-.6.66-.23.15-.52.24-.91.24s-.68-.1-.92-.24a1.74 1.74 0 0 1-.6-.67A5.65 5.65 0 0 1 8 10Zm2-4.5c-.55 0-1.04.13-1.45.4-.4.25-.72.61-.94 1.03A6.6 6.6 0 0 0 7 10c0 1.14.16 2.23.6 3.07.23.42.54.78.95 1.04.41.26.9.39 1.45.39.55 0 1.04-.13 1.45-.4.4-.25.72-.61.94-1.03.45-.84.61-1.93.61-3.07a6.6 6.6 0 0 0-.6-3.07 2.74 2.74 0 0 0-.95-1.04c-.41-.26-.9-.39-1.45-.39Z"]),Person20Regular=createFluentIcon("Person20Regular","20",["M10 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8ZM7 6a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm-2 5a2 2 0 0 0-2 2c0 1.7.83 2.97 2.13 3.8A9.14 9.14 0 0 0 10 18c1.85 0 3.58-.39 4.87-1.2A4.35 4.35 0 0 0 17 13a2 2 0 0 0-2-2H5Zm-1 2a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1c0 1.3-.62 2.28-1.67 2.95A8.16 8.16 0 0 1 10 17a8.16 8.16 0 0 1-4.33-1.05A3.36 3.36 0 0 1 4 13Z"]),QuestionCircle20Regular=createFluentIcon("QuestionCircle20Regular","20",["M10 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 1a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm0 10.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5Zm0-8a2.5 2.5 0 0 1 1.65 4.38l-.15.12-.22.17-.09.07-.16.15c-.33.36-.53.85-.53 1.61a.5.5 0 0 1-1 0 3.2 3.2 0 0 1 1.16-2.62l.25-.19.12-.1A1.5 1.5 0 0 0 10 6.5c-.83 0-1.5.67-1.5 1.5a.5.5 0 0 1-1 0A2.5 2.5 0 0 1 10 5.5Z"]),SendCopy20Regular=createFluentIcon("SendCopy20Regular","20",["M8.65 2.15c.2-.2.5-.2.7 0l3 3a.5.5 0 0 1-.7.7L9.5 3.71v7.79a.5.5 0 0 1-1 0V3.7L6.35 5.86a.5.5 0 1 1-.7-.7l3-3ZM5.27 17c.34.6.99 1 1.73 1h6a4 4 0 0 0 4-4v-3.5a.5.5 0 1 0-1 0V14a3 3 0 0 1-3 3H5.27ZM4 8.5a.5.5 0 0 0-1 0V14c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-1 0V14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8.5Z"]),ShieldCheckmark24Regular=createFluentIcon("ShieldCheckmark24Regular","24",["M3 5.75c0-.41.34-.75.75-.75 2.66 0 5.26-.94 7.8-2.85.27-.2.63-.2.9 0C14.99 4.05 17.59 5 20.25 5c.41 0 .75.34.75.75V11c0 .34-.01.67-.04 1a6.47 6.47 0 0 0-1.46-.69V6.48a14.36 14.36 0 0 1-7.5-2.8 14.36 14.36 0 0 1-7.5 2.8V11c0 4.15 2.33 7.22 7.13 9.28.26.56.6 1.07 1 1.52l-.36.15a.75.75 0 0 1-.54 0C5.96 19.68 3 16 3 11V5.75ZM23 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0Zm-2.15-2.35a.5.5 0 0 0-.7 0l-3.65 3.64-1.65-1.64a.5.5 0 0 0-.7.7l2 2c.2.2.5.2.7 0l4-4a.5.5 0 0 0 0-.7Z"]),TextBulletListSquareWarning24Regular=createFluentIcon("TextBulletListSquareWarning24Regular","24",["M7.75 9.25a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm3.5-1.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5h-5.5Zm0 3.75a.75.75 0 1 0 0 1.5h3.83l.19-.37c.26-.53.67-.9 1.13-1.13h-5.15Zm0 3.75h2.7l-.74 1.5h-1.96a.75.75 0 1 1 0-1.5Zm-5 4.5h5.46l-.44.88c-.1.2-.17.41-.22.62h-4.8A3.25 3.25 0 0 1 3 17.75V6.25C3 4.45 4.46 3 6.25 3h11.5C19.55 3 21 4.46 21 6.25v8.65l-1.26-2.52a2.6 2.6 0 0 0-.24-.39V6.25c0-.97-.78-1.75-1.75-1.75H6.25c-.97 0-1.75.78-1.75 1.75v11.5c0 .97.78 1.75 1.75 1.75Zm2.5-7.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm-1 4.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm8.41-3.92a1.5 1.5 0 0 1 2.69 0l4 8c.5 1-.23 2.17-1.35 2.17h-8a1.5 1.5 0 0 1-1.34-2.17l4-8ZM18 15.5a.5.5 0 0 0-1 0v3a.5.5 0 0 0 1 0v-3Zm-.5 5.5a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z"]),TextWrap16Regular=createFluentIcon("TextWrap16Regular","16",["M2 3.5c0-.28.22-.5.5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5Zm0 4c0-.28.22-.5.5-.5h10a2.5 2.5 0 0 1 0 5H9.7l.65.65a.5.5 0 0 1-.7.7l-1.5-1.5a.5.5 0 0 1 0-.7l1.5-1.5a.5.5 0 0 1 .7.7l-.64.65h2.79a1.5 1.5 0 0 0 0-3h-10a.5.5 0 0 1-.5-.5ZM6 11a.5.5 0 0 1 0 1H2.5a.5.5 0 0 1 0-1H6Z"]),TextWrapOff16Regular=createFluentIcon("TextWrapOff16Regular","16",["M14.15 14.85 11.29 12H9.71l.64.65a.5.5 0 0 1-.7.7l-1.5-1.5a.5.5 0 0 1 0-.7L9.29 10l-2-2H2.5a.5.5 0 0 1 0-1h3.8l-3-3h-.8a.5.5 0 0 1-.18-.97L1.15 1.85a.5.5 0 1 1 .7-.7l13 13a.5.5 0 0 1-.7.7ZM10.12 8l-1-1h3.38a2.5 2.5 0 0 1 1.27 4.65l-.74-.74A1.5 1.5 0 0 0 12.5 8h-2.38Zm-4-4-1-1h8.38a.5.5 0 0 1 0 1H6.12ZM6 11a.5.5 0 0 1 0 1H2.5a.5.5 0 0 1 0-1H6Z"]),ZoomIn20Regular=createFluentIcon("ZoomIn20Regular","20",["M11.5 8.5A.5.5 0 0 0 11 8H9V6a.5.5 0 0 0-1 0v2H6a.5.5 0 0 0 0 1h2v2a.5.5 0 0 0 1 0V9h2a.5.5 0 0 0 .5-.5ZM8.5 3a5.5 5.5 0 0 1 4.23 9.02l4.12 4.13a.5.5 0 0 1-.63.76l-.07-.06-4.13-4.12A5.5 5.5 0 1 1 8.5 3Zm0 1a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9Z"]),renderFluentProvider_unstable=(j,_e)=>jsx$1(Provider,{value:_e.provider,children:jsx$1(ThemeProvider,{value:_e.theme,children:jsx$1(ThemeClassNameProvider,{value:_e.themeClassName,children:jsx$1(CustomStyleHooksProvider,{value:_e.customStyleHooks_unstable,children:jsx$1(TooltipVisibilityProvider,{value:_e.tooltip,children:jsx$1(TextDirectionProvider,{dir:_e.textDirection,children:jsx$1(IconDirectionContextProvider,{value:_e.iconDirection,children:jsx$1(OverridesProvider,{value:_e.overrides_unstable,children:jsxs(j.root,{children:[canUseDOM$3()?null:jsx$1("style",{dangerouslySetInnerHTML:{__html:j.serverStyleProps.cssRule},...j.serverStyleProps.attributes}),j.root.children]})})})})})})})})});/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */const _canUseWeakRef=typeof WeakRef<"u";class WeakRefInstance{constructor(_e){_canUseWeakRef&&typeof _e=="object"?this._weakRef=new WeakRef(_e):this._instance=_e}deref(){var _e,et,tt;let rt;return this._weakRef?(rt=(_e=this._weakRef)===null||_e===void 0?void 0:_e.deref(),rt||delete this._weakRef):(rt=this._instance,!((tt=(et=rt)===null||et===void 0?void 0:et.isDisposed)===null||tt===void 0)&&tt.call(et)&&delete this._instance),rt}}/*! @@ -61,22 +61,22 @@ Error generating stack: `+nt.message+` */function createEventTarget(j){const _e=j();try{if(_e.EventTarget)return new _e.EventTarget}catch(et){if(!(et instanceof TypeError))throw et}return _e.document.createElement("div")}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. - */let _isBrokenIE11;const _DOMRect=typeof DOMRect<"u"?DOMRect:class{constructor(j,_e,et,tt){this.left=j||0,this.top=_e||0,this.right=(j||0)+(et||0),this.bottom=(_e||0)+(tt||0)}};let _uidCounter=0;try{document.createTreeWalker(document,NodeFilter.SHOW_ELEMENT),_isBrokenIE11=!1}catch{_isBrokenIE11=!0}const _updateDummyInputsTimeout=100;function getInstanceContext(j){const _e=j();let et=_e.__tabsterInstanceContext;return et||(et={elementByUId:{},basics:{Promise:_e.Promise||void 0,WeakRef:_e.WeakRef||void 0},containerBoundingRectCache:{},lastContainerBoundingRectCacheId:0,fakeWeakRefs:[],fakeWeakRefsStarted:!1},_e.__tabsterInstanceContext=et),et}function disposeInstanceContext(j){const _e=j.__tabsterInstanceContext;_e&&(_e.elementByUId={},delete _e.WeakRef,_e.containerBoundingRectCache={},_e.containerBoundingRectCacheTimer&&j.clearTimeout(_e.containerBoundingRectCacheTimer),_e.fakeWeakRefsTimer&&j.clearTimeout(_e.fakeWeakRefsTimer),_e.fakeWeakRefs=[],delete j.__tabsterInstanceContext)}function createWeakMap(j){const _e=j.__tabsterInstanceContext;return new((_e==null?void 0:_e.basics.WeakMap)||WeakMap)}function hasSubFocusable(j){return!!j.querySelector(FocusableSelector)}class FakeWeakRef{constructor(_e){this._target=_e}deref(){return this._target}static cleanup(_e,et){return _e._target?et||!documentContains(_e._target.ownerDocument,_e._target)?(delete _e._target,!0):!1:!0}}class WeakHTMLElement{constructor(_e,et,tt){const rt=getInstanceContext(_e);let nt;rt.WeakRef?nt=new rt.WeakRef(et):(nt=new FakeWeakRef(et),rt.fakeWeakRefs.push(nt)),this._ref=nt,this._data=tt}get(){const _e=this._ref;let et;return _e&&(et=_e.deref(),et||delete this._ref),et}getData(){return this._data}}function cleanupFakeWeakRefs(j,_e){const et=getInstanceContext(j);et.fakeWeakRefs=et.fakeWeakRefs.filter(tt=>!FakeWeakRef.cleanup(tt,_e))}function startFakeWeakRefsCleanup(j){const _e=getInstanceContext(j);_e.fakeWeakRefsStarted||(_e.fakeWeakRefsStarted=!0,_e.WeakRef=getWeakRef(_e)),_e.fakeWeakRefsTimer||(_e.fakeWeakRefsTimer=j().setTimeout(()=>{_e.fakeWeakRefsTimer=void 0,cleanupFakeWeakRefs(j),startFakeWeakRefsCleanup(j)},2*60*1e3))}function stopFakeWeakRefsCleanupAndClearStorage(j){const _e=getInstanceContext(j);_e.fakeWeakRefsStarted=!1,_e.fakeWeakRefsTimer&&(j().clearTimeout(_e.fakeWeakRefsTimer),_e.fakeWeakRefsTimer=void 0,_e.fakeWeakRefs=[])}function createElementTreeWalker(j,_e,et){if(_e.nodeType!==Node.ELEMENT_NODE)return;const tt=_isBrokenIE11?et:{acceptNode:et};return j.createTreeWalker(_e,NodeFilter.SHOW_ELEMENT,tt,!1)}function getBoundingRect(j,_e){let et=_e.__tabsterCacheId;const tt=getInstanceContext(j),rt=et?tt.containerBoundingRectCache[et]:void 0;if(rt)return rt.rect;const nt=_e.ownerDocument&&_e.ownerDocument.documentElement;if(!nt)return new _DOMRect;let ot=0,it=0,st=nt.clientWidth,lt=nt.clientHeight;if(_e!==nt){const ct=_e.getBoundingClientRect();ot=Math.max(ot,ct.left),it=Math.max(it,ct.top),st=Math.min(st,ct.right),lt=Math.min(lt,ct.bottom)}const ut=new _DOMRect(ot{tt.containerBoundingRectCacheTimer=void 0;for(const ct of Object.keys(tt.containerBoundingRectCache))delete tt.containerBoundingRectCache[ct].element.__tabsterCacheId;tt.containerBoundingRectCache={}},50)),ut}function isElementVerticallyVisibleInContainer(j,_e,et){const tt=getScrollableContainer(_e);if(!tt)return!1;const rt=getBoundingRect(j,tt),nt=_e.getBoundingClientRect(),ot=nt.height*(1-et),it=Math.max(0,rt.top-nt.top),st=Math.max(0,nt.bottom-rt.bottom),lt=it+st;return lt===0||lt<=ot}function scrollIntoView$2(j,_e,et){const tt=getScrollableContainer(_e);if(tt){const rt=getBoundingRect(j,tt),nt=_e.getBoundingClientRect();et?tt.scrollTop+=nt.top-rt.top:tt.scrollTop+=nt.bottom-rt.bottom}}function getScrollableContainer(j){const _e=j.ownerDocument;if(_e){for(let et=j.parentElement;et;et=et.parentElement)if(et.scrollWidth>et.clientWidth||et.scrollHeight>et.clientHeight)return et;return _e.documentElement}return null}function makeFocusIgnored(j){j.__shouldIgnoreFocus=!0}function shouldIgnoreFocus(j){return!!j.__shouldIgnoreFocus}function getUId(j){const _e=new Uint32Array(4);if(j.crypto&&j.crypto.getRandomValues)j.crypto.getRandomValues(_e);else if(j.msCrypto&&j.msCrypto.getRandomValues)j.msCrypto.getRandomValues(_e);else for(let tt=0;tt<_e.length;tt++)_e[tt]=4294967295*Math.random();const et=[];for(let tt=0;tt<_e.length;tt++)et.push(_e[tt].toString(36));return et.push("|"),et.push((++_uidCounter).toString(36)),et.push("|"),et.push(Date.now().toString(36)),et.join("")}function getElementUId(j,_e){const et=getInstanceContext(j);let tt=_e.__tabsterElementUID;return tt||(tt=_e.__tabsterElementUID=getUId(j())),!et.elementByUId[tt]&&documentContains(_e.ownerDocument,_e)&&(et.elementByUId[tt]=new WeakHTMLElement(j,_e)),tt}function clearElementCache(j,_e){const et=getInstanceContext(j);for(const tt of Object.keys(et.elementByUId)){const rt=et.elementByUId[tt],nt=rt&&rt.get();nt&&_e&&!_e.contains(nt)||delete et.elementByUId[tt]}}function documentContains(j,_e){var et;return!!(!((et=j==null?void 0:j.body)===null||et===void 0)&&et.contains(_e))}function matchesSelector(j,_e){const et=j.matches||j.matchesSelector||j.msMatchesSelector||j.webkitMatchesSelector;return et&&et.call(j,_e)}function getPromise(j){const _e=getInstanceContext(j);if(_e.basics.Promise)return _e.basics.Promise;throw new Error("No Promise defined.")}function getWeakRef(j){return j.basics.WeakRef}let _lastTabsterPartId=0;class TabsterPart{constructor(_e,et,tt){const rt=_e.getWindow;this._tabster=_e,this._element=new WeakHTMLElement(rt,et),this._props={...tt},this.id="i"+ ++_lastTabsterPartId}getElement(){return this._element.get()}getProps(){return this._props}setProps(_e){this._props={..._e}}}class DummyInput{constructor(_e,et,tt,rt,nt){var ot;this._focusIn=ut=>{if(this._fixedTarget){const dt=this._fixedTarget.get();dt&&nativeFocus(dt);return}const ct=this.input;if(this.onFocusIn&&ct){const dt=ut.relatedTarget;this.onFocusIn(this,this._isBackward(!0,ct,dt),dt)}},this._focusOut=ut=>{if(this._fixedTarget)return;this.useDefaultAction=!1;const ct=this.input;if(this.onFocusOut&&ct){const dt=ut.relatedTarget;this.onFocusOut(this,this._isBackward(!1,ct,dt),dt)}};const it=_e(),st=it.document.createElement("i");st.tabIndex=0,st.setAttribute("role","none"),st.setAttribute(TabsterDummyInputAttributeName,""),st.setAttribute("aria-hidden","true");const lt=st.style;lt.position="fixed",lt.width=lt.height="1px",lt.opacity="0.001",lt.zIndex="-1",lt.setProperty("content-visibility","hidden"),makeFocusIgnored(st),this.input=st,this.isFirst=tt.isFirst,this.isOutside=et,this._isPhantom=(ot=tt.isPhantom)!==null&&ot!==void 0?ot:!1,this._fixedTarget=nt,st.addEventListener("focusin",this._focusIn),st.addEventListener("focusout",this._focusOut),st.__tabsterDummyContainer=rt,this._isPhantom&&(this._disposeTimer=it.setTimeout(()=>{delete this._disposeTimer,this.dispose()},0),this._clearDisposeTimeout=()=>{this._disposeTimer&&(it.clearTimeout(this._disposeTimer),delete this._disposeTimer),delete this._clearDisposeTimeout})}dispose(){var _e;this._clearDisposeTimeout&&this._clearDisposeTimeout();const et=this.input;et&&(delete this._fixedTarget,delete this.onFocusIn,delete this.onFocusOut,delete this.input,et.removeEventListener("focusin",this._focusIn),et.removeEventListener("focusout",this._focusOut),delete et.__tabsterDummyContainer,(_e=et.parentElement)===null||_e===void 0||_e.removeChild(et))}setTopLeft(_e,et){var tt;const rt=(tt=this.input)===null||tt===void 0?void 0:tt.style;rt&&(rt.top=`${_e}px`,rt.left=`${et}px`)}_isBackward(_e,et,tt){return _e&&!tt?!this.isFirst:!!(tt&&et.compareDocumentPosition(tt)&Node.DOCUMENT_POSITION_FOLLOWING)}}const DummyInputManagerPriorities={Root:1,Modalizer:2,Mover:3,Groupper:4};class DummyInputManager{constructor(_e,et,tt,rt,nt,ot){this._element=et,this._instance=new DummyInputManagerCore(_e,et,this,tt,rt,nt,ot)}_setHandlers(_e,et){this._onFocusIn=_e,this._onFocusOut=et}moveOut(_e){var et;(et=this._instance)===null||et===void 0||et.moveOut(_e)}moveOutWithDefaultAction(_e,et){var tt;(tt=this._instance)===null||tt===void 0||tt.moveOutWithDefaultAction(_e,et)}getHandler(_e){return _e?this._onFocusIn:this._onFocusOut}setTabbable(_e){var et;(et=this._instance)===null||et===void 0||et.setTabbable(this,_e)}dispose(){this._instance&&(this._instance.dispose(this),delete this._instance),delete this._onFocusIn,delete this._onFocusOut}static moveWithPhantomDummy(_e,et,tt,rt,nt){var ot;const st=new DummyInput(_e.getWindow,!0,{isPhantom:!0,isFirst:!0}).input;if(st){let lt,ut;if(et.tagName==="BODY")lt=et,ut=tt&&rt||!tt&&!rt?et.firstElementChild:null;else{tt&&(!rt||rt&&!_e.focusable.isFocusable(et,!1,!0,!0))?(lt=et,ut=rt?et.firstElementChild:null):(lt=et.parentElement,ut=tt&&rt||!tt&&!rt?et:et.nextElementSibling);let ct,dt;do ct=tt&&rt||!tt&&!rt?ut==null?void 0:ut.previousElementSibling:ut,dt=(ot=ct==null?void 0:ct.__tabsterDummyContainer)===null||ot===void 0?void 0:ot.get(),dt===et?ut=tt&&rt||!tt&&!rt?ct:ct==null?void 0:ct.nextElementSibling:dt=void 0;while(dt)}lt&&triggerMoveFocusEvent({by:"root",owner:lt,next:null,relatedEvent:nt})&&(lt.insertBefore(st,ut),nativeFocus(st))}}static addPhantomDummyWithTarget(_e,et,tt,rt){const ot=new DummyInput(_e.getWindow,!0,{isPhantom:!0,isFirst:!0},void 0,new WeakHTMLElement(_e.getWindow,rt)).input;if(ot){let it,st;hasSubFocusable(et)&&!tt?(it=et,st=et.firstElementChild):(it=et.parentElement,st=tt?et:et.nextElementSibling),it==null||it.insertBefore(ot,st)}}}class DummyInputObserver{constructor(_e){this._updateQueue=new Set,this._lastUpdateQueueTime=0,this._changedParents=new WeakSet,this._dummyElements=[],this._dummyCallbacks=new WeakMap,this._domChanged=et=>{var tt;this._changedParents.has(et)||(this._changedParents.add(et),!this._updateDummyInputsTimer&&(this._updateDummyInputsTimer=(tt=this._win)===null||tt===void 0?void 0:tt.call(this).setTimeout(()=>{delete this._updateDummyInputsTimer;for(const rt of this._dummyElements){const nt=rt.get();if(nt){const ot=this._dummyCallbacks.get(nt);if(ot){const it=nt.parentElement;(!it||this._changedParents.has(it))&&ot()}}}this._changedParents=new WeakSet},_updateDummyInputsTimeout)))},this._win=_e}add(_e,et){!this._dummyCallbacks.has(_e)&&this._win&&(this._dummyElements.push(new WeakHTMLElement(this._win,_e)),this._dummyCallbacks.set(_e,et),this.domChanged=this._domChanged)}remove(_e){this._dummyElements=this._dummyElements.filter(et=>{const tt=et.get();return tt&&tt!==_e}),this._dummyCallbacks.delete(_e),this._dummyElements.length===0&&delete this.domChanged}dispose(){var _e;const et=(_e=this._win)===null||_e===void 0?void 0:_e.call(this);this._updateTimer&&(et==null||et.clearTimeout(this._updateTimer),delete this._updateTimer),this._updateDummyInputsTimer&&(et==null||et.clearTimeout(this._updateDummyInputsTimer),delete this._updateDummyInputsTimer),this._changedParents=new WeakSet,this._dummyCallbacks=new WeakMap,this._dummyElements=[],this._updateQueue.clear(),delete this.domChanged,delete this._win}updatePositions(_e){this._win&&(this._updateQueue.add(_e),this._lastUpdateQueueTime=Date.now(),this._scheduledUpdatePositions())}_scheduledUpdatePositions(){var _e;this._updateTimer||(this._updateTimer=(_e=this._win)===null||_e===void 0?void 0:_e.call(this).setTimeout(()=>{if(delete this._updateTimer,this._lastUpdateQueueTime+_updateDummyInputsTimeout<=Date.now()){const et=new Map,tt=[];for(const rt of this._updateQueue)tt.push(rt(et));this._updateQueue.clear();for(const rt of tt)rt();et.clear()}else this._scheduledUpdatePositions()},_updateDummyInputsTimeout))}}class DummyInputManagerCore{constructor(_e,et,tt,rt,nt,ot,it){this._wrappers=[],this._isOutside=!1,this._transformElements=new Set,this._onFocusIn=(ft,pt,gt)=>{this._onFocus(!0,ft,pt,gt)},this._onFocusOut=(ft,pt,gt)=>{this._onFocus(!1,ft,pt,gt)},this.moveOut=ft=>{var pt;const gt=this._firstDummy,vt=this._lastDummy;if(gt&&vt){this._ensurePosition();const bt=gt.input,_t=vt.input,xt=(pt=this._element)===null||pt===void 0?void 0:pt.get();if(bt&&_t&&xt){let yt;ft?(bt.tabIndex=0,yt=bt):(_t.tabIndex=0,yt=_t),yt&&nativeFocus(yt)}}},this.moveOutWithDefaultAction=(ft,pt)=>{var gt;const vt=this._firstDummy,bt=this._lastDummy;if(vt&&bt){this._ensurePosition();const _t=vt.input,xt=bt.input,yt=(gt=this._element)===null||gt===void 0?void 0:gt.get();if(_t&&xt&&yt){let Et;ft?!vt.isOutside&&this._tabster.focusable.isFocusable(yt,!0,!0,!0)?Et=yt:(vt.useDefaultAction=!0,_t.tabIndex=0,Et=_t):(bt.useDefaultAction=!0,xt.tabIndex=0,Et=xt),Et&&triggerMoveFocusEvent({by:"root",owner:yt,next:null,relatedEvent:pt})&&nativeFocus(Et)}}},this.setTabbable=(ft,pt)=>{var gt,vt;for(const _t of this._wrappers)if(_t.manager===ft){_t.tabbable=pt;break}const bt=this._getCurrent();if(bt){const _t=bt.tabbable?0:-1;let xt=(gt=this._firstDummy)===null||gt===void 0?void 0:gt.input;xt&&(xt.tabIndex=_t),xt=(vt=this._lastDummy)===null||vt===void 0?void 0:vt.input,xt&&(xt.tabIndex=_t)}},this._addDummyInputs=()=>{this._addTimer||(this._addTimer=this._getWindow().setTimeout(()=>{delete this._addTimer,this._ensurePosition(),this._addTransformOffsets()},0))},this._addTransformOffsets=()=>{this._tabster._dummyObserver.updatePositions(this._computeTransformOffsets)},this._computeTransformOffsets=ft=>{var pt,gt;const vt=((pt=this._firstDummy)===null||pt===void 0?void 0:pt.input)||((gt=this._lastDummy)===null||gt===void 0?void 0:gt.input),bt=this._transformElements,_t=new Set;let xt=0,yt=0;const Et=this._getWindow();for(let St=vt;St&&St.nodeType===Node.ELEMENT_NODE;St=St.parentElement){let $t=ft.get(St);if($t===void 0){const At=Et.getComputedStyle(St).transform;At&&At!=="none"&&($t={scrollTop:St.scrollTop,scrollLeft:St.scrollLeft}),ft.set(St,$t||null)}$t&&(_t.add(St),bt.has(St)||St.addEventListener("scroll",this._addTransformOffsets),xt+=$t.scrollTop,yt+=$t.scrollLeft)}for(const St of bt)_t.has(St)||St.removeEventListener("scroll",this._addTransformOffsets);return this._transformElements=_t,()=>{var St,$t;(St=this._firstDummy)===null||St===void 0||St.setTopLeft(xt,yt),($t=this._lastDummy)===null||$t===void 0||$t.setTopLeft(xt,yt)}};const st=et.get();if(!st)throw new Error("No element");this._tabster=_e,this._getWindow=_e.getWindow,this._callForDefaultAction=it;const lt=st.__tabsterDummy;if((lt||this)._wrappers.push({manager:tt,priority:rt,tabbable:!0}),lt)return lt;st.__tabsterDummy=this;const ut=nt==null?void 0:nt.dummyInputsPosition,ct=st.tagName;this._isOutside=ut?ut===SysDummyInputsPositions.Outside:(ot||ct==="UL"||ct==="OL"||ct==="TABLE")&&!(ct==="LI"||ct==="TD"||ct==="TH"),this._firstDummy=new DummyInput(this._getWindow,this._isOutside,{isFirst:!0},et),this._lastDummy=new DummyInput(this._getWindow,this._isOutside,{isFirst:!1},et);const dt=this._firstDummy.input;dt&&_e._dummyObserver.add(dt,this._addDummyInputs),this._firstDummy.onFocusIn=this._onFocusIn,this._firstDummy.onFocusOut=this._onFocusOut,this._lastDummy.onFocusIn=this._onFocusIn,this._lastDummy.onFocusOut=this._onFocusOut,this._element=et,this._addDummyInputs()}dispose(_e,et){var tt,rt,nt,ot;if((this._wrappers=this._wrappers.filter(st=>st.manager!==_e&&!et)).length===0){delete((tt=this._element)===null||tt===void 0?void 0:tt.get()).__tabsterDummy;for(const ut of this._transformElements)ut.removeEventListener("scroll",this._addTransformOffsets);this._transformElements.clear();const st=this._getWindow();this._addTimer&&(st.clearTimeout(this._addTimer),delete this._addTimer);const lt=(rt=this._firstDummy)===null||rt===void 0?void 0:rt.input;lt&&this._tabster._dummyObserver.remove(lt),(nt=this._firstDummy)===null||nt===void 0||nt.dispose(),(ot=this._lastDummy)===null||ot===void 0||ot.dispose()}}_onFocus(_e,et,tt,rt){var nt;const ot=this._getCurrent();ot&&(!et.useDefaultAction||this._callForDefaultAction)&&((nt=ot.manager.getHandler(_e))===null||nt===void 0||nt(et,tt,rt))}_getCurrent(){return this._wrappers.sort((_e,et)=>_e.tabbable!==et.tabbable?_e.tabbable?-1:1:_e.priority-et.priority),this._wrappers[0]}_ensurePosition(){var _e,et,tt;const rt=(_e=this._element)===null||_e===void 0?void 0:_e.get(),nt=(et=this._firstDummy)===null||et===void 0?void 0:et.input,ot=(tt=this._lastDummy)===null||tt===void 0?void 0:tt.input;if(!(!rt||!nt||!ot))if(this._isOutside){const it=rt.parentElement;if(it){const st=rt.nextElementSibling;st!==ot&&it.insertBefore(ot,st),rt.previousElementSibling!==nt&&it.insertBefore(nt,rt)}}else{rt.lastElementChild!==ot&&rt.appendChild(ot);const it=rt.firstElementChild;it&&it!==nt&&rt.insertBefore(nt,it)}}}function getLastChild(j){let _e=null;for(let et=j.lastElementChild;et;et=et.lastElementChild)_e=et;return _e||void 0}function getAdjacentElement(j,_e){let et=j,tt=null;for(;et&&!tt;)tt=_e?et.previousElementSibling:et.nextElementSibling,et=et.parentElement;return tt||void 0}function triggerEvent(j,_e,et){const tt=document.createEvent("HTMLEvents");return tt.initEvent(_e,!0,!0),tt.details=et,j.dispatchEvent(tt),!tt.defaultPrevented}function triggerMoveFocusEvent(j){return triggerEvent(j.owner,MoveFocusEventName,j)}function augmentAttribute(j,_e,et,tt){const rt=j.storageEntry(_e,!0);let nt=!1;if(!rt.aug){if(tt===void 0)return nt;rt.aug={}}if(tt===void 0){if(et in rt.aug){const ot=rt.aug[et];delete rt.aug[et],ot===null?_e.removeAttribute(et):_e.setAttribute(et,ot),nt=!0}}else{let ot;et in rt.aug||(ot=_e.getAttribute(et)),ot!==void 0&&ot!==tt&&(rt.aug[et]=ot,tt===null?_e.removeAttribute(et):_e.setAttribute(et,tt),nt=!0)}return tt===void 0&&Object.keys(rt.aug).length===0&&(delete rt.aug,j.storageEntry(_e,!1)),nt}/*! + */let _isBrokenIE11;const _DOMRect=typeof DOMRect<"u"?DOMRect:class{constructor(j,_e,et,tt){this.left=j||0,this.top=_e||0,this.right=(j||0)+(et||0),this.bottom=(_e||0)+(tt||0)}};let _uidCounter=0;try{document.createTreeWalker(document,NodeFilter.SHOW_ELEMENT),_isBrokenIE11=!1}catch{_isBrokenIE11=!0}const _updateDummyInputsTimeout=100;function getInstanceContext(j){const _e=j();let et=_e.__tabsterInstanceContext;return et||(et={elementByUId:{},basics:{Promise:_e.Promise||void 0,WeakRef:_e.WeakRef||void 0},containerBoundingRectCache:{},lastContainerBoundingRectCacheId:0,fakeWeakRefs:[],fakeWeakRefsStarted:!1},_e.__tabsterInstanceContext=et),et}function disposeInstanceContext(j){const _e=j.__tabsterInstanceContext;_e&&(_e.elementByUId={},delete _e.WeakRef,_e.containerBoundingRectCache={},_e.containerBoundingRectCacheTimer&&j.clearTimeout(_e.containerBoundingRectCacheTimer),_e.fakeWeakRefsTimer&&j.clearTimeout(_e.fakeWeakRefsTimer),_e.fakeWeakRefs=[],delete j.__tabsterInstanceContext)}function createWeakMap(j){const _e=j.__tabsterInstanceContext;return new((_e==null?void 0:_e.basics.WeakMap)||WeakMap)}function hasSubFocusable(j){return!!j.querySelector(FocusableSelector)}class FakeWeakRef{constructor(_e){this._target=_e}deref(){return this._target}static cleanup(_e,et){return _e._target?et||!documentContains(_e._target.ownerDocument,_e._target)?(delete _e._target,!0):!1:!0}}class WeakHTMLElement{constructor(_e,et,tt){const rt=getInstanceContext(_e);let nt;rt.WeakRef?nt=new rt.WeakRef(et):(nt=new FakeWeakRef(et),rt.fakeWeakRefs.push(nt)),this._ref=nt,this._data=tt}get(){const _e=this._ref;let et;return _e&&(et=_e.deref(),et||delete this._ref),et}getData(){return this._data}}function cleanupFakeWeakRefs(j,_e){const et=getInstanceContext(j);et.fakeWeakRefs=et.fakeWeakRefs.filter(tt=>!FakeWeakRef.cleanup(tt,_e))}function startFakeWeakRefsCleanup(j){const _e=getInstanceContext(j);_e.fakeWeakRefsStarted||(_e.fakeWeakRefsStarted=!0,_e.WeakRef=getWeakRef(_e)),_e.fakeWeakRefsTimer||(_e.fakeWeakRefsTimer=j().setTimeout(()=>{_e.fakeWeakRefsTimer=void 0,cleanupFakeWeakRefs(j),startFakeWeakRefsCleanup(j)},2*60*1e3))}function stopFakeWeakRefsCleanupAndClearStorage(j){const _e=getInstanceContext(j);_e.fakeWeakRefsStarted=!1,_e.fakeWeakRefsTimer&&(j().clearTimeout(_e.fakeWeakRefsTimer),_e.fakeWeakRefsTimer=void 0,_e.fakeWeakRefs=[])}function createElementTreeWalker(j,_e,et){if(_e.nodeType!==Node.ELEMENT_NODE)return;const tt=_isBrokenIE11?et:{acceptNode:et};return j.createTreeWalker(_e,NodeFilter.SHOW_ELEMENT,tt,!1)}function getBoundingRect(j,_e){let et=_e.__tabsterCacheId;const tt=getInstanceContext(j),rt=et?tt.containerBoundingRectCache[et]:void 0;if(rt)return rt.rect;const nt=_e.ownerDocument&&_e.ownerDocument.documentElement;if(!nt)return new _DOMRect;let ot=0,it=0,st=nt.clientWidth,lt=nt.clientHeight;if(_e!==nt){const ct=_e.getBoundingClientRect();ot=Math.max(ot,ct.left),it=Math.max(it,ct.top),st=Math.min(st,ct.right),lt=Math.min(lt,ct.bottom)}const ut=new _DOMRect(ot{tt.containerBoundingRectCacheTimer=void 0;for(const ct of Object.keys(tt.containerBoundingRectCache))delete tt.containerBoundingRectCache[ct].element.__tabsterCacheId;tt.containerBoundingRectCache={}},50)),ut}function isElementVerticallyVisibleInContainer(j,_e,et){const tt=getScrollableContainer(_e);if(!tt)return!1;const rt=getBoundingRect(j,tt),nt=_e.getBoundingClientRect(),ot=nt.height*(1-et),it=Math.max(0,rt.top-nt.top),st=Math.max(0,nt.bottom-rt.bottom),lt=it+st;return lt===0||lt<=ot}function scrollIntoView$2(j,_e,et){const tt=getScrollableContainer(_e);if(tt){const rt=getBoundingRect(j,tt),nt=_e.getBoundingClientRect();et?tt.scrollTop+=nt.top-rt.top:tt.scrollTop+=nt.bottom-rt.bottom}}function getScrollableContainer(j){const _e=j.ownerDocument;if(_e){for(let et=j.parentElement;et;et=et.parentElement)if(et.scrollWidth>et.clientWidth||et.scrollHeight>et.clientHeight)return et;return _e.documentElement}return null}function makeFocusIgnored(j){j.__shouldIgnoreFocus=!0}function shouldIgnoreFocus(j){return!!j.__shouldIgnoreFocus}function getUId(j){const _e=new Uint32Array(4);if(j.crypto&&j.crypto.getRandomValues)j.crypto.getRandomValues(_e);else if(j.msCrypto&&j.msCrypto.getRandomValues)j.msCrypto.getRandomValues(_e);else for(let tt=0;tt<_e.length;tt++)_e[tt]=4294967295*Math.random();const et=[];for(let tt=0;tt<_e.length;tt++)et.push(_e[tt].toString(36));return et.push("|"),et.push((++_uidCounter).toString(36)),et.push("|"),et.push(Date.now().toString(36)),et.join("")}function getElementUId(j,_e){const et=getInstanceContext(j);let tt=_e.__tabsterElementUID;return tt||(tt=_e.__tabsterElementUID=getUId(j())),!et.elementByUId[tt]&&documentContains(_e.ownerDocument,_e)&&(et.elementByUId[tt]=new WeakHTMLElement(j,_e)),tt}function clearElementCache(j,_e){const et=getInstanceContext(j);for(const tt of Object.keys(et.elementByUId)){const rt=et.elementByUId[tt],nt=rt&&rt.get();nt&&_e&&!_e.contains(nt)||delete et.elementByUId[tt]}}function documentContains(j,_e){var et;return!!(!((et=j==null?void 0:j.body)===null||et===void 0)&&et.contains(_e))}function matchesSelector(j,_e){const et=j.matches||j.matchesSelector||j.msMatchesSelector||j.webkitMatchesSelector;return et&&et.call(j,_e)}function getPromise(j){const _e=getInstanceContext(j);if(_e.basics.Promise)return _e.basics.Promise;throw new Error("No Promise defined.")}function getWeakRef(j){return j.basics.WeakRef}let _lastTabsterPartId=0;class TabsterPart{constructor(_e,et,tt){const rt=_e.getWindow;this._tabster=_e,this._element=new WeakHTMLElement(rt,et),this._props={...tt},this.id="i"+ ++_lastTabsterPartId}getElement(){return this._element.get()}getProps(){return this._props}setProps(_e){this._props={..._e}}}class DummyInput{constructor(_e,et,tt,rt,nt){var ot;this._focusIn=ut=>{if(this._fixedTarget){const dt=this._fixedTarget.get();dt&&nativeFocus(dt);return}const ct=this.input;if(this.onFocusIn&&ct){const dt=ut.relatedTarget;this.onFocusIn(this,this._isBackward(!0,ct,dt),dt)}},this._focusOut=ut=>{if(this._fixedTarget)return;this.useDefaultAction=!1;const ct=this.input;if(this.onFocusOut&&ct){const dt=ut.relatedTarget;this.onFocusOut(this,this._isBackward(!1,ct,dt),dt)}};const it=_e(),st=it.document.createElement("i");st.tabIndex=0,st.setAttribute("role","none"),st.setAttribute(TabsterDummyInputAttributeName,""),st.setAttribute("aria-hidden","true");const lt=st.style;lt.position="fixed",lt.width=lt.height="1px",lt.opacity="0.001",lt.zIndex="-1",lt.setProperty("content-visibility","hidden"),makeFocusIgnored(st),this.input=st,this.isFirst=tt.isFirst,this.isOutside=et,this._isPhantom=(ot=tt.isPhantom)!==null&&ot!==void 0?ot:!1,this._fixedTarget=nt,st.addEventListener("focusin",this._focusIn),st.addEventListener("focusout",this._focusOut),st.__tabsterDummyContainer=rt,this._isPhantom&&(this._disposeTimer=it.setTimeout(()=>{delete this._disposeTimer,this.dispose()},0),this._clearDisposeTimeout=()=>{this._disposeTimer&&(it.clearTimeout(this._disposeTimer),delete this._disposeTimer),delete this._clearDisposeTimeout})}dispose(){var _e;this._clearDisposeTimeout&&this._clearDisposeTimeout();const et=this.input;et&&(delete this._fixedTarget,delete this.onFocusIn,delete this.onFocusOut,delete this.input,et.removeEventListener("focusin",this._focusIn),et.removeEventListener("focusout",this._focusOut),delete et.__tabsterDummyContainer,(_e=et.parentElement)===null||_e===void 0||_e.removeChild(et))}setTopLeft(_e,et){var tt;const rt=(tt=this.input)===null||tt===void 0?void 0:tt.style;rt&&(rt.top=`${_e}px`,rt.left=`${et}px`)}_isBackward(_e,et,tt){return _e&&!tt?!this.isFirst:!!(tt&&et.compareDocumentPosition(tt)&Node.DOCUMENT_POSITION_FOLLOWING)}}const DummyInputManagerPriorities={Root:1,Modalizer:2,Mover:3,Groupper:4};class DummyInputManager{constructor(_e,et,tt,rt,nt,ot){this._element=et,this._instance=new DummyInputManagerCore(_e,et,this,tt,rt,nt,ot)}_setHandlers(_e,et){this._onFocusIn=_e,this._onFocusOut=et}moveOut(_e){var et;(et=this._instance)===null||et===void 0||et.moveOut(_e)}moveOutWithDefaultAction(_e,et){var tt;(tt=this._instance)===null||tt===void 0||tt.moveOutWithDefaultAction(_e,et)}getHandler(_e){return _e?this._onFocusIn:this._onFocusOut}setTabbable(_e){var et;(et=this._instance)===null||et===void 0||et.setTabbable(this,_e)}dispose(){this._instance&&(this._instance.dispose(this),delete this._instance),delete this._onFocusIn,delete this._onFocusOut}static moveWithPhantomDummy(_e,et,tt,rt,nt){var ot;const st=new DummyInput(_e.getWindow,!0,{isPhantom:!0,isFirst:!0}).input;if(st){let lt,ut;if(et.tagName==="BODY")lt=et,ut=tt&&rt||!tt&&!rt?et.firstElementChild:null;else{tt&&(!rt||rt&&!_e.focusable.isFocusable(et,!1,!0,!0))?(lt=et,ut=rt?et.firstElementChild:null):(lt=et.parentElement,ut=tt&&rt||!tt&&!rt?et:et.nextElementSibling);let ct,dt;do ct=tt&&rt||!tt&&!rt?ut==null?void 0:ut.previousElementSibling:ut,dt=(ot=ct==null?void 0:ct.__tabsterDummyContainer)===null||ot===void 0?void 0:ot.get(),dt===et?ut=tt&&rt||!tt&&!rt?ct:ct==null?void 0:ct.nextElementSibling:dt=void 0;while(dt)}lt&&triggerMoveFocusEvent({by:"root",owner:lt,next:null,relatedEvent:nt})&&(lt.insertBefore(st,ut),nativeFocus(st))}}static addPhantomDummyWithTarget(_e,et,tt,rt){const ot=new DummyInput(_e.getWindow,!0,{isPhantom:!0,isFirst:!0},void 0,new WeakHTMLElement(_e.getWindow,rt)).input;if(ot){let it,st;hasSubFocusable(et)&&!tt?(it=et,st=et.firstElementChild):(it=et.parentElement,st=tt?et:et.nextElementSibling),it==null||it.insertBefore(ot,st)}}}class DummyInputObserver{constructor(_e){this._updateQueue=new Set,this._lastUpdateQueueTime=0,this._changedParents=new WeakSet,this._dummyElements=[],this._dummyCallbacks=new WeakMap,this._domChanged=et=>{var tt;this._changedParents.has(et)||(this._changedParents.add(et),!this._updateDummyInputsTimer&&(this._updateDummyInputsTimer=(tt=this._win)===null||tt===void 0?void 0:tt.call(this).setTimeout(()=>{delete this._updateDummyInputsTimer;for(const rt of this._dummyElements){const nt=rt.get();if(nt){const ot=this._dummyCallbacks.get(nt);if(ot){const it=nt.parentElement;(!it||this._changedParents.has(it))&&ot()}}}this._changedParents=new WeakSet},_updateDummyInputsTimeout)))},this._win=_e}add(_e,et){!this._dummyCallbacks.has(_e)&&this._win&&(this._dummyElements.push(new WeakHTMLElement(this._win,_e)),this._dummyCallbacks.set(_e,et),this.domChanged=this._domChanged)}remove(_e){this._dummyElements=this._dummyElements.filter(et=>{const tt=et.get();return tt&&tt!==_e}),this._dummyCallbacks.delete(_e),this._dummyElements.length===0&&delete this.domChanged}dispose(){var _e;const et=(_e=this._win)===null||_e===void 0?void 0:_e.call(this);this._updateTimer&&(et==null||et.clearTimeout(this._updateTimer),delete this._updateTimer),this._updateDummyInputsTimer&&(et==null||et.clearTimeout(this._updateDummyInputsTimer),delete this._updateDummyInputsTimer),this._changedParents=new WeakSet,this._dummyCallbacks=new WeakMap,this._dummyElements=[],this._updateQueue.clear(),delete this.domChanged,delete this._win}updatePositions(_e){this._win&&(this._updateQueue.add(_e),this._lastUpdateQueueTime=Date.now(),this._scheduledUpdatePositions())}_scheduledUpdatePositions(){var _e;this._updateTimer||(this._updateTimer=(_e=this._win)===null||_e===void 0?void 0:_e.call(this).setTimeout(()=>{if(delete this._updateTimer,this._lastUpdateQueueTime+_updateDummyInputsTimeout<=Date.now()){const et=new Map,tt=[];for(const rt of this._updateQueue)tt.push(rt(et));this._updateQueue.clear();for(const rt of tt)rt();et.clear()}else this._scheduledUpdatePositions()},_updateDummyInputsTimeout))}}class DummyInputManagerCore{constructor(_e,et,tt,rt,nt,ot,it){this._wrappers=[],this._isOutside=!1,this._transformElements=new Set,this._onFocusIn=(ft,pt,gt)=>{this._onFocus(!0,ft,pt,gt)},this._onFocusOut=(ft,pt,gt)=>{this._onFocus(!1,ft,pt,gt)},this.moveOut=ft=>{var pt;const gt=this._firstDummy,mt=this._lastDummy;if(gt&&mt){this._ensurePosition();const bt=gt.input,_t=mt.input,xt=(pt=this._element)===null||pt===void 0?void 0:pt.get();if(bt&&_t&&xt){let yt;ft?(bt.tabIndex=0,yt=bt):(_t.tabIndex=0,yt=_t),yt&&nativeFocus(yt)}}},this.moveOutWithDefaultAction=(ft,pt)=>{var gt;const mt=this._firstDummy,bt=this._lastDummy;if(mt&&bt){this._ensurePosition();const _t=mt.input,xt=bt.input,yt=(gt=this._element)===null||gt===void 0?void 0:gt.get();if(_t&&xt&&yt){let Et;ft?!mt.isOutside&&this._tabster.focusable.isFocusable(yt,!0,!0,!0)?Et=yt:(mt.useDefaultAction=!0,_t.tabIndex=0,Et=_t):(bt.useDefaultAction=!0,xt.tabIndex=0,Et=xt),Et&&triggerMoveFocusEvent({by:"root",owner:yt,next:null,relatedEvent:pt})&&nativeFocus(Et)}}},this.setTabbable=(ft,pt)=>{var gt,mt;for(const _t of this._wrappers)if(_t.manager===ft){_t.tabbable=pt;break}const bt=this._getCurrent();if(bt){const _t=bt.tabbable?0:-1;let xt=(gt=this._firstDummy)===null||gt===void 0?void 0:gt.input;xt&&(xt.tabIndex=_t),xt=(mt=this._lastDummy)===null||mt===void 0?void 0:mt.input,xt&&(xt.tabIndex=_t)}},this._addDummyInputs=()=>{this._addTimer||(this._addTimer=this._getWindow().setTimeout(()=>{delete this._addTimer,this._ensurePosition(),this._addTransformOffsets()},0))},this._addTransformOffsets=()=>{this._tabster._dummyObserver.updatePositions(this._computeTransformOffsets)},this._computeTransformOffsets=ft=>{var pt,gt;const mt=((pt=this._firstDummy)===null||pt===void 0?void 0:pt.input)||((gt=this._lastDummy)===null||gt===void 0?void 0:gt.input),bt=this._transformElements,_t=new Set;let xt=0,yt=0;const Et=this._getWindow();for(let St=mt;St&&St.nodeType===Node.ELEMENT_NODE;St=St.parentElement){let Tt=ft.get(St);if(Tt===void 0){const kt=Et.getComputedStyle(St).transform;kt&&kt!=="none"&&(Tt={scrollTop:St.scrollTop,scrollLeft:St.scrollLeft}),ft.set(St,Tt||null)}Tt&&(_t.add(St),bt.has(St)||St.addEventListener("scroll",this._addTransformOffsets),xt+=Tt.scrollTop,yt+=Tt.scrollLeft)}for(const St of bt)_t.has(St)||St.removeEventListener("scroll",this._addTransformOffsets);return this._transformElements=_t,()=>{var St,Tt;(St=this._firstDummy)===null||St===void 0||St.setTopLeft(xt,yt),(Tt=this._lastDummy)===null||Tt===void 0||Tt.setTopLeft(xt,yt)}};const st=et.get();if(!st)throw new Error("No element");this._tabster=_e,this._getWindow=_e.getWindow,this._callForDefaultAction=it;const lt=st.__tabsterDummy;if((lt||this)._wrappers.push({manager:tt,priority:rt,tabbable:!0}),lt)return lt;st.__tabsterDummy=this;const ut=nt==null?void 0:nt.dummyInputsPosition,ct=st.tagName;this._isOutside=ut?ut===SysDummyInputsPositions.Outside:(ot||ct==="UL"||ct==="OL"||ct==="TABLE")&&!(ct==="LI"||ct==="TD"||ct==="TH"),this._firstDummy=new DummyInput(this._getWindow,this._isOutside,{isFirst:!0},et),this._lastDummy=new DummyInput(this._getWindow,this._isOutside,{isFirst:!1},et);const dt=this._firstDummy.input;dt&&_e._dummyObserver.add(dt,this._addDummyInputs),this._firstDummy.onFocusIn=this._onFocusIn,this._firstDummy.onFocusOut=this._onFocusOut,this._lastDummy.onFocusIn=this._onFocusIn,this._lastDummy.onFocusOut=this._onFocusOut,this._element=et,this._addDummyInputs()}dispose(_e,et){var tt,rt,nt,ot;if((this._wrappers=this._wrappers.filter(st=>st.manager!==_e&&!et)).length===0){delete((tt=this._element)===null||tt===void 0?void 0:tt.get()).__tabsterDummy;for(const ut of this._transformElements)ut.removeEventListener("scroll",this._addTransformOffsets);this._transformElements.clear();const st=this._getWindow();this._addTimer&&(st.clearTimeout(this._addTimer),delete this._addTimer);const lt=(rt=this._firstDummy)===null||rt===void 0?void 0:rt.input;lt&&this._tabster._dummyObserver.remove(lt),(nt=this._firstDummy)===null||nt===void 0||nt.dispose(),(ot=this._lastDummy)===null||ot===void 0||ot.dispose()}}_onFocus(_e,et,tt,rt){var nt;const ot=this._getCurrent();ot&&(!et.useDefaultAction||this._callForDefaultAction)&&((nt=ot.manager.getHandler(_e))===null||nt===void 0||nt(et,tt,rt))}_getCurrent(){return this._wrappers.sort((_e,et)=>_e.tabbable!==et.tabbable?_e.tabbable?-1:1:_e.priority-et.priority),this._wrappers[0]}_ensurePosition(){var _e,et,tt;const rt=(_e=this._element)===null||_e===void 0?void 0:_e.get(),nt=(et=this._firstDummy)===null||et===void 0?void 0:et.input,ot=(tt=this._lastDummy)===null||tt===void 0?void 0:tt.input;if(!(!rt||!nt||!ot))if(this._isOutside){const it=rt.parentElement;if(it){const st=rt.nextElementSibling;st!==ot&&it.insertBefore(ot,st),rt.previousElementSibling!==nt&&it.insertBefore(nt,rt)}}else{rt.lastElementChild!==ot&&rt.appendChild(ot);const it=rt.firstElementChild;it&&it!==nt&&rt.insertBefore(nt,it)}}}function getLastChild(j){let _e=null;for(let et=j.lastElementChild;et;et=et.lastElementChild)_e=et;return _e||void 0}function getAdjacentElement(j,_e){let et=j,tt=null;for(;et&&!tt;)tt=_e?et.previousElementSibling:et.nextElementSibling,et=et.parentElement;return tt||void 0}function triggerEvent(j,_e,et){const tt=document.createEvent("HTMLEvents");return tt.initEvent(_e,!0,!0),tt.details=et,j.dispatchEvent(tt),!tt.defaultPrevented}function triggerMoveFocusEvent(j){return triggerEvent(j.owner,MoveFocusEventName,j)}function augmentAttribute(j,_e,et,tt){const rt=j.storageEntry(_e,!0);let nt=!1;if(!rt.aug){if(tt===void 0)return nt;rt.aug={}}if(tt===void 0){if(et in rt.aug){const ot=rt.aug[et];delete rt.aug[et],ot===null?_e.removeAttribute(et):_e.setAttribute(et,ot),nt=!0}}else{let ot;et in rt.aug||(ot=_e.getAttribute(et)),ot!==void 0&&ot!==tt&&(rt.aug[et]=ot,tt===null?_e.removeAttribute(et):_e.setAttribute(et,tt),nt=!0)}return tt===void 0&&Object.keys(rt.aug).length===0&&(delete rt.aug,j.storageEntry(_e,!1)),nt}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. - */function getTabsterAttribute(j,_e){const et=JSON.stringify(j);return _e===!0?et:{[TabsterAttributeName]:et}}function mergeTabsterProps(j,_e){for(const et of Object.keys(_e)){const tt=_e[et];tt?j[et]=tt:delete j[et]}}function setTabsterAttribute(j,_e,et){let tt;if(et){const rt=j.getAttribute(TabsterAttributeName);if(rt)try{tt=JSON.parse(rt)}catch{}}tt||(tt={}),mergeTabsterProps(tt,_e),Object.keys(tt).length>0?j.setAttribute(TabsterAttributeName,getTabsterAttribute(tt,!0)):j.removeAttribute(TabsterAttributeName)}class RootDummyManager extends DummyInputManager{constructor(_e,et,tt,rt){super(_e,et,DummyInputManagerPriorities.Root,rt,void 0,!0),this._onDummyInputFocus=nt=>{var ot;if(nt.useDefaultAction)this._setFocused(!1);else{this._tabster.keyboardNavigation.setNavigatingWithKeyboard(!0);const it=this._element.get();if(it){this._setFocused(!0);const st=this._tabster.focusedElement.getFirstOrLastTabbable(nt.isFirst,{container:it,ignoreAccessibility:!0});if(st){nativeFocus(st);return}}(ot=nt.input)===null||ot===void 0||ot.blur()}},this._setHandlers(this._onDummyInputFocus),this._tabster=_e,this._setFocused=tt}}class Root extends TabsterPart{constructor(_e,et,tt,rt,nt){super(_e,et,rt),this._isFocused=!1,this._setFocused=st=>{var lt;if(this._setFocusedTimer&&(this._tabster.getWindow().clearTimeout(this._setFocusedTimer),delete this._setFocusedTimer),this._isFocused===st)return;const ut=this._element.get();ut&&(st?(this._isFocused=!0,(lt=this._dummyManager)===null||lt===void 0||lt.setTabbable(!1),triggerEvent(this._tabster.root.eventTarget,"focus",{element:ut})):this._setFocusedTimer=this._tabster.getWindow().setTimeout(()=>{var ct;delete this._setFocusedTimer,this._isFocused=!1,(ct=this._dummyManager)===null||ct===void 0||ct.setTabbable(!0),triggerEvent(this._tabster.root.eventTarget,"blur",{element:ut})},0))},this._onFocusIn=st=>{const lt=this._tabster.getParent,ut=this._element.get();let ct=st.target;do{if(ct===ut){this._setFocused(!0);return}ct=ct&<(ct)}while(ct)},this._onFocusOut=()=>{this._setFocused(!1)},this._onDispose=tt;const ot=_e.getWindow;this.uid=getElementUId(ot,et),this._sys=nt,(_e.controlTab||_e.rootDummyInputs)&&this.addDummyInputs();const it=ot();it.document.addEventListener("focusin",this._onFocusIn),it.document.addEventListener("focusout",this._onFocusOut),this._add()}addDummyInputs(){this._dummyManager||(this._dummyManager=new RootDummyManager(this._tabster,this._element,this._setFocused,this._sys))}dispose(){var _e;this._onDispose(this);const et=this._tabster.getWindow();et.document.removeEventListener("focusin",this._onFocusIn),et.document.removeEventListener("focusout",this._onFocusOut),this._setFocusedTimer&&(et.clearTimeout(this._setFocusedTimer),delete this._setFocusedTimer),(_e=this._dummyManager)===null||_e===void 0||_e.dispose(),this._remove()}moveOutWithDefaultAction(_e,et){const tt=this._dummyManager;if(tt)tt.moveOutWithDefaultAction(_e,et);else{const rt=this.getElement();rt&&RootDummyManager.moveWithPhantomDummy(this._tabster,rt,!0,_e,et)}}_add(){}_remove(){}}class RootAPI{constructor(_e,et){this._autoRootWaiting=!1,this._roots={},this._forceDummy=!1,this.rootById={},this._autoRootCreate=()=>{var tt;const rt=this._win().document,nt=rt.body;if(nt){this._autoRootUnwait(rt);const ot=this._autoRoot;if(ot)return setTabsterAttribute(nt,{root:ot},!0),updateTabsterByAttribute(this._tabster,nt),(tt=getTabsterOnElement(this._tabster,nt))===null||tt===void 0?void 0:tt.root}else this._autoRootWaiting||(this._autoRootWaiting=!0,rt.addEventListener("readystatechange",this._autoRootCreate))},this._onRootDispose=tt=>{delete this._roots[tt.id]},this._tabster=_e,this._win=_e.getWindow,this._autoRoot=et,this.eventTarget=createEventTarget(this._win),_e.queueInit(()=>{this._autoRoot&&this._autoRootCreate()})}_autoRootUnwait(_e){_e.removeEventListener("readystatechange",this._autoRootCreate),this._autoRootWaiting=!1}dispose(){const _e=this._win();this._autoRootUnwait(_e.document),delete this._autoRoot,Object.keys(this._roots).forEach(et=>{this._roots[et]&&(this._roots[et].dispose(),delete this._roots[et])}),this.rootById={}}createRoot(_e,et,tt){const rt=new Root(this._tabster,_e,this._onRootDispose,et,tt);return this._roots[rt.id]=rt,this._forceDummy&&rt.addDummyInputs(),rt}addDummyInputs(){this._forceDummy=!0;const _e=this._roots;for(const et of Object.keys(_e))_e[et].addDummyInputs()}static getRootByUId(_e,et){const tt=_e().__tabsterInstance;return tt&&tt.root.rootById[et]}static getTabsterContext(_e,et,tt){tt===void 0&&(tt={});var rt,nt,ot,it;if(!et.ownerDocument)return;const{checkRtl:st,referenceElement:lt}=tt,ut=_e.getParent;_e.drainInitQueue();let ct,dt,ft,pt,gt=!1,vt,bt,_t,xt,yt=lt||et;const Et={};for(;yt&&(!ct||st);){const $t=getTabsterOnElement(_e,yt);if(st&&_t===void 0){const Ot=yt.dir;Ot&&(_t=Ot.toLowerCase()==="rtl")}if(!$t){yt=ut(yt);continue}const At=yt.tagName;($t.uncontrolled||At==="IFRAME"||At==="WEBVIEW")&&(xt=yt),!pt&&(!((rt=$t.focusable)===null||rt===void 0)&&rt.excludeFromMover)&&!ft&&(gt=!0);const wt=$t.modalizer,Ct=$t.groupper,It=$t.mover;!dt&&wt&&(dt=wt),!ft&&Ct&&(!dt||wt)&&(dt?(!Ct.isActive()&&Ct.getProps().tabbability&&dt.userId!==((nt=_e.modalizer)===null||nt===void 0?void 0:nt.activeId)&&(dt=void 0,ft=Ct),bt=Ct):ft=Ct),!pt&&It&&(!dt||wt)&&(!Ct||yt!==et)&&(pt=It,vt=!!ft&&ft!==Ct),$t.root&&(ct=$t.root),!((ot=$t.focusable)===null||ot===void 0)&&ot.ignoreKeydown&&Object.assign(Et,$t.focusable.ignoreKeydown),yt=ut(yt)}if(!ct){const $t=_e.root;$t._autoRoot&&!((it=et.ownerDocument)===null||it===void 0)&&it.body&&(ct=$t._autoRootCreate())}return ft&&!pt&&(vt=!0),ct?{root:ct,modalizer:dt,groupper:ft,mover:pt,groupperBeforeMover:vt,modalizerInGroupper:bt,rtl:st?!!_t:void 0,uncontrolled:xt,excludedFromMover:gt,ignoreKeydown:$t=>!!Et[$t.key]}:void 0}static getRoot(_e,et){var tt;const rt=_e.getParent;for(let nt=et;nt;nt=rt(nt)){const ot=(tt=getTabsterOnElement(_e,nt))===null||tt===void 0?void 0:tt.root;if(ot)return ot}}onRoot(_e,et){et?delete this.rootById[_e.uid]:this.rootById[_e.uid]=_e}}/*! + */function getTabsterAttribute(j,_e){const et=JSON.stringify(j);return _e===!0?et:{[TabsterAttributeName]:et}}function mergeTabsterProps(j,_e){for(const et of Object.keys(_e)){const tt=_e[et];tt?j[et]=tt:delete j[et]}}function setTabsterAttribute(j,_e,et){let tt;if(et){const rt=j.getAttribute(TabsterAttributeName);if(rt)try{tt=JSON.parse(rt)}catch{}}tt||(tt={}),mergeTabsterProps(tt,_e),Object.keys(tt).length>0?j.setAttribute(TabsterAttributeName,getTabsterAttribute(tt,!0)):j.removeAttribute(TabsterAttributeName)}class RootDummyManager extends DummyInputManager{constructor(_e,et,tt,rt){super(_e,et,DummyInputManagerPriorities.Root,rt,void 0,!0),this._onDummyInputFocus=nt=>{var ot;if(nt.useDefaultAction)this._setFocused(!1);else{this._tabster.keyboardNavigation.setNavigatingWithKeyboard(!0);const it=this._element.get();if(it){this._setFocused(!0);const st=this._tabster.focusedElement.getFirstOrLastTabbable(nt.isFirst,{container:it,ignoreAccessibility:!0});if(st){nativeFocus(st);return}}(ot=nt.input)===null||ot===void 0||ot.blur()}},this._setHandlers(this._onDummyInputFocus),this._tabster=_e,this._setFocused=tt}}class Root extends TabsterPart{constructor(_e,et,tt,rt,nt){super(_e,et,rt),this._isFocused=!1,this._setFocused=st=>{var lt;if(this._setFocusedTimer&&(this._tabster.getWindow().clearTimeout(this._setFocusedTimer),delete this._setFocusedTimer),this._isFocused===st)return;const ut=this._element.get();ut&&(st?(this._isFocused=!0,(lt=this._dummyManager)===null||lt===void 0||lt.setTabbable(!1),triggerEvent(this._tabster.root.eventTarget,"focus",{element:ut})):this._setFocusedTimer=this._tabster.getWindow().setTimeout(()=>{var ct;delete this._setFocusedTimer,this._isFocused=!1,(ct=this._dummyManager)===null||ct===void 0||ct.setTabbable(!0),triggerEvent(this._tabster.root.eventTarget,"blur",{element:ut})},0))},this._onFocusIn=st=>{const lt=this._tabster.getParent,ut=this._element.get();let ct=st.target;do{if(ct===ut){this._setFocused(!0);return}ct=ct&<(ct)}while(ct)},this._onFocusOut=()=>{this._setFocused(!1)},this._onDispose=tt;const ot=_e.getWindow;this.uid=getElementUId(ot,et),this._sys=nt,(_e.controlTab||_e.rootDummyInputs)&&this.addDummyInputs();const it=ot();it.document.addEventListener("focusin",this._onFocusIn),it.document.addEventListener("focusout",this._onFocusOut),this._add()}addDummyInputs(){this._dummyManager||(this._dummyManager=new RootDummyManager(this._tabster,this._element,this._setFocused,this._sys))}dispose(){var _e;this._onDispose(this);const et=this._tabster.getWindow();et.document.removeEventListener("focusin",this._onFocusIn),et.document.removeEventListener("focusout",this._onFocusOut),this._setFocusedTimer&&(et.clearTimeout(this._setFocusedTimer),delete this._setFocusedTimer),(_e=this._dummyManager)===null||_e===void 0||_e.dispose(),this._remove()}moveOutWithDefaultAction(_e,et){const tt=this._dummyManager;if(tt)tt.moveOutWithDefaultAction(_e,et);else{const rt=this.getElement();rt&&RootDummyManager.moveWithPhantomDummy(this._tabster,rt,!0,_e,et)}}_add(){}_remove(){}}class RootAPI{constructor(_e,et){this._autoRootWaiting=!1,this._roots={},this._forceDummy=!1,this.rootById={},this._autoRootCreate=()=>{var tt;const rt=this._win().document,nt=rt.body;if(nt){this._autoRootUnwait(rt);const ot=this._autoRoot;if(ot)return setTabsterAttribute(nt,{root:ot},!0),updateTabsterByAttribute(this._tabster,nt),(tt=getTabsterOnElement(this._tabster,nt))===null||tt===void 0?void 0:tt.root}else this._autoRootWaiting||(this._autoRootWaiting=!0,rt.addEventListener("readystatechange",this._autoRootCreate))},this._onRootDispose=tt=>{delete this._roots[tt.id]},this._tabster=_e,this._win=_e.getWindow,this._autoRoot=et,this.eventTarget=createEventTarget(this._win),_e.queueInit(()=>{this._autoRoot&&this._autoRootCreate()})}_autoRootUnwait(_e){_e.removeEventListener("readystatechange",this._autoRootCreate),this._autoRootWaiting=!1}dispose(){const _e=this._win();this._autoRootUnwait(_e.document),delete this._autoRoot,Object.keys(this._roots).forEach(et=>{this._roots[et]&&(this._roots[et].dispose(),delete this._roots[et])}),this.rootById={}}createRoot(_e,et,tt){const rt=new Root(this._tabster,_e,this._onRootDispose,et,tt);return this._roots[rt.id]=rt,this._forceDummy&&rt.addDummyInputs(),rt}addDummyInputs(){this._forceDummy=!0;const _e=this._roots;for(const et of Object.keys(_e))_e[et].addDummyInputs()}static getRootByUId(_e,et){const tt=_e().__tabsterInstance;return tt&&tt.root.rootById[et]}static getTabsterContext(_e,et,tt){tt===void 0&&(tt={});var rt,nt,ot,it;if(!et.ownerDocument)return;const{checkRtl:st,referenceElement:lt}=tt,ut=_e.getParent;_e.drainInitQueue();let ct,dt,ft,pt,gt=!1,mt,bt,_t,xt,yt=lt||et;const Et={};for(;yt&&(!ct||st);){const Tt=getTabsterOnElement(_e,yt);if(st&&_t===void 0){const Nt=yt.dir;Nt&&(_t=Nt.toLowerCase()==="rtl")}if(!Tt){yt=ut(yt);continue}const kt=yt.tagName;(Tt.uncontrolled||kt==="IFRAME"||kt==="WEBVIEW")&&(xt=yt),!pt&&(!((rt=Tt.focusable)===null||rt===void 0)&&rt.excludeFromMover)&&!ft&&(gt=!0);const $t=Tt.modalizer,Ct=Tt.groupper,It=Tt.mover;!dt&&$t&&(dt=$t),!ft&&Ct&&(!dt||$t)&&(dt?(!Ct.isActive()&&Ct.getProps().tabbability&&dt.userId!==((nt=_e.modalizer)===null||nt===void 0?void 0:nt.activeId)&&(dt=void 0,ft=Ct),bt=Ct):ft=Ct),!pt&&It&&(!dt||$t)&&(!Ct||yt!==et)&&(pt=It,mt=!!ft&&ft!==Ct),Tt.root&&(ct=Tt.root),!((ot=Tt.focusable)===null||ot===void 0)&&ot.ignoreKeydown&&Object.assign(Et,Tt.focusable.ignoreKeydown),yt=ut(yt)}if(!ct){const Tt=_e.root;Tt._autoRoot&&!((it=et.ownerDocument)===null||it===void 0)&&it.body&&(ct=Tt._autoRootCreate())}return ft&&!pt&&(mt=!0),ct?{root:ct,modalizer:dt,groupper:ft,mover:pt,groupperBeforeMover:mt,modalizerInGroupper:bt,rtl:st?!!_t:void 0,uncontrolled:xt,excludedFromMover:gt,ignoreKeydown:Tt=>!!Et[Tt.key]}:void 0}static getRoot(_e,et){var tt;const rt=_e.getParent;for(let nt=et;nt;nt=rt(nt)){const ot=(tt=getTabsterOnElement(_e,nt))===null||tt===void 0?void 0:tt.root;if(ot)return ot}}onRoot(_e,et){et?delete this.rootById[_e.uid]:this.rootById[_e.uid]=_e}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */class Subscribable{constructor(){this._callbacks=[]}dispose(){this._callbacks=[],delete this._val}subscribe(_e){const et=this._callbacks;et.indexOf(_e)<0&&et.push(_e)}subscribeFirst(_e){const et=this._callbacks,tt=et.indexOf(_e);tt>=0&&et.splice(tt,1),et.unshift(_e)}unsubscribe(_e){const et=this._callbacks.indexOf(_e);et>=0&&this._callbacks.splice(et,1)}setVal(_e,et){this._val!==_e&&(this._val=_e,this._callCallbacks(_e,et))}getVal(){return this._val}trigger(_e,et){this._callCallbacks(_e,et)}_callCallbacks(_e,et){this._callbacks.forEach(tt=>tt(_e,et))}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. - */class FocusableAPI{constructor(_e){this._tabster=_e}dispose(){}getProps(_e){const et=getTabsterOnElement(this._tabster,_e);return et&&et.focusable||{}}isFocusable(_e,et,tt,rt){return matchesSelector(_e,FocusableSelector)&&(et||_e.tabIndex!==-1)?(tt||this.isVisible(_e))&&(rt||this.isAccessible(_e)):!1}isVisible(_e){if(!_e.ownerDocument||_e.nodeType!==Node.ELEMENT_NODE||_e.offsetParent===null&&_e.ownerDocument.body!==_e)return!1;const et=_e.ownerDocument.defaultView;if(!et)return!1;const tt=_e.ownerDocument.body.getBoundingClientRect();return!(tt.width===0&&tt.height===0||et.getComputedStyle(_e).visibility==="hidden")}isAccessible(_e){var et;for(let tt=_e;tt;tt=tt.parentElement){const rt=getTabsterOnElement(this._tabster,tt);if(this._isHidden(tt)||!((et=rt==null?void 0:rt.focusable)===null||et===void 0?void 0:et.ignoreAriaDisabled)&&this._isDisabled(tt))return!1}return!0}_isDisabled(_e){return _e.hasAttribute("disabled")}_isHidden(_e){var et;const tt=_e.getAttribute("aria-hidden");return!!(tt&&tt.toLowerCase()==="true"&&!(!((et=this._tabster.modalizer)===null||et===void 0)&&et.isAugmented(_e)))}findFirst(_e,et){return this.findElement({..._e},et)}findLast(_e,et){return this.findElement({isBackward:!0,..._e},et)}findNext(_e,et){return this.findElement({..._e},et)}findPrev(_e,et){return this.findElement({..._e,isBackward:!0},et)}findDefault(_e,et){return this.findElement({..._e,acceptCondition:tt=>this.isFocusable(tt,_e.includeProgrammaticallyFocusable)&&!!this.getProps(tt).isDefault},et)||null}findAll(_e){return this._findElements(!0,_e)||[]}findElement(_e,et){const tt=this._findElements(!1,_e,et);return tt&&tt[0]}_findElements(_e,et,tt){var rt,nt,ot;const{container:it,currentElement:st=null,includeProgrammaticallyFocusable:lt,useActiveModalizer:ut,ignoreAccessibility:ct,modalizerId:dt,isBackward:ft,onElement:pt}=et;tt||(tt={});const gt=[];let{acceptCondition:vt}=et;const bt=!!vt;if(!it)return null;vt||(vt=Et=>this.isFocusable(Et,lt,!1,ct));const _t={container:it,modalizerUserId:dt===void 0&&ut?(rt=this._tabster.modalizer)===null||rt===void 0?void 0:rt.activeId:dt||((ot=(nt=RootAPI.getTabsterContext(this._tabster,it))===null||nt===void 0?void 0:nt.modalizer)===null||ot===void 0?void 0:ot.userId),from:st||it,isBackward:ft,acceptCondition:vt,hasCustomCondition:bt,includeProgrammaticallyFocusable:lt,ignoreAccessibility:ct,cachedGrouppers:{}},xt=createElementTreeWalker(it.ownerDocument,it,Et=>this._acceptElement(Et,_t));if(!xt)return null;const yt=Et=>{var St,$t;const At=(St=_t.foundElement)!==null&&St!==void 0?St:_t.foundBackward;return At&>.push(At),_e?At&&(_t.found=!1,delete _t.foundElement,delete _t.foundBackward,delete _t.fromCtx,_t.from=At,pt&&!pt(At))?!1:!!(At||Et):(At&&tt&&(tt.uncontrolled=($t=RootAPI.getTabsterContext(this._tabster,At))===null||$t===void 0?void 0:$t.uncontrolled),!!(Et&&!At))};if(st||(tt.outOfDOMOrder=!0),st)xt.currentNode=st;else if(ft){const Et=getLastChild(it);if(!Et)return null;if(this._acceptElement(Et,_t)===NodeFilter.FILTER_ACCEPT&&!yt(!0))return _t.skippedFocusable&&(tt.outOfDOMOrder=!0),gt;xt.currentNode=Et}do ft?xt.previousNode():xt.nextNode();while(yt());return _t.skippedFocusable&&(tt.outOfDOMOrder=!0),gt.length?gt:null}_acceptElement(_e,et){var tt,rt,nt,ot;if(et.found)return NodeFilter.FILTER_ACCEPT;const it=et.foundBackward;if(it&&(_e===it||!it.contains(_e)))return et.found=!0,et.foundElement=it,NodeFilter.FILTER_ACCEPT;const st=et.container;if(_e===st)return NodeFilter.FILTER_SKIP;if(!st.contains(_e)||_e.__tabsterDummyContainer||!((tt=et.rejectElementsFrom)===null||tt===void 0)&&tt.contains(_e))return NodeFilter.FILTER_REJECT;const lt=et.currentCtx=RootAPI.getTabsterContext(this._tabster,_e);if(!lt)return NodeFilter.FILTER_SKIP;if(shouldIgnoreFocus(_e))return this.isFocusable(_e,void 0,!0,!0)&&(et.skippedFocusable=!0),NodeFilter.FILTER_SKIP;if(!et.hasCustomCondition&&(_e.tagName==="IFRAME"||_e.tagName==="WEBVIEW"))return((rt=lt.modalizer)===null||rt===void 0?void 0:rt.userId)===((nt=this._tabster.modalizer)===null||nt===void 0?void 0:nt.activeId)?(et.found=!0,et.rejectElementsFrom=et.foundElement=_e,NodeFilter.FILTER_ACCEPT):NodeFilter.FILTER_REJECT;if(!et.ignoreAccessibility&&!this.isAccessible(_e))return this.isFocusable(_e,!1,!0,!0)&&(et.skippedFocusable=!0),NodeFilter.FILTER_REJECT;let ut,ct=et.fromCtx;ct||(ct=et.fromCtx=RootAPI.getTabsterContext(this._tabster,et.from));const dt=ct==null?void 0:ct.mover;let ft=lt.groupper,pt=lt.mover;if(ut=(ot=this._tabster.modalizer)===null||ot===void 0?void 0:ot.acceptElement(_e,et),ut!==void 0&&(et.skippedFocusable=!0),ut===void 0&&(ft||pt||dt)){const gt=ft==null?void 0:ft.getElement(),vt=dt==null?void 0:dt.getElement();let bt=pt==null?void 0:pt.getElement();bt&&(vt!=null&&vt.contains(bt))&&st.contains(vt)&&(!gt||!pt||vt.contains(gt))&&(pt=dt,bt=vt),gt&&(gt===st||!st.contains(gt))&&(ft=void 0),bt&&!st.contains(bt)&&(pt=void 0),ft&&pt&&(bt&>&&!gt.contains(bt)?pt=void 0:ft=void 0),ft&&(ut=ft.acceptElement(_e,et)),pt&&(ut=pt.acceptElement(_e,et))}return ut===void 0&&(ut=et.acceptCondition(_e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP,ut===NodeFilter.FILTER_SKIP&&this.isFocusable(_e,!1,!0,!0)&&(et.skippedFocusable=!0)),ut===NodeFilter.FILTER_ACCEPT&&!et.found&&(et.isBackward?(et.foundBackward=_e,ut=NodeFilter.FILTER_SKIP):(et.found=!0,et.foundElement=_e)),ut}}/*! + */class FocusableAPI{constructor(_e){this._tabster=_e}dispose(){}getProps(_e){const et=getTabsterOnElement(this._tabster,_e);return et&&et.focusable||{}}isFocusable(_e,et,tt,rt){return matchesSelector(_e,FocusableSelector)&&(et||_e.tabIndex!==-1)?(tt||this.isVisible(_e))&&(rt||this.isAccessible(_e)):!1}isVisible(_e){if(!_e.ownerDocument||_e.nodeType!==Node.ELEMENT_NODE||_e.offsetParent===null&&_e.ownerDocument.body!==_e)return!1;const et=_e.ownerDocument.defaultView;if(!et)return!1;const tt=_e.ownerDocument.body.getBoundingClientRect();return!(tt.width===0&&tt.height===0||et.getComputedStyle(_e).visibility==="hidden")}isAccessible(_e){var et;for(let tt=_e;tt;tt=tt.parentElement){const rt=getTabsterOnElement(this._tabster,tt);if(this._isHidden(tt)||!((et=rt==null?void 0:rt.focusable)===null||et===void 0?void 0:et.ignoreAriaDisabled)&&this._isDisabled(tt))return!1}return!0}_isDisabled(_e){return _e.hasAttribute("disabled")}_isHidden(_e){var et;const tt=_e.getAttribute("aria-hidden");return!!(tt&&tt.toLowerCase()==="true"&&!(!((et=this._tabster.modalizer)===null||et===void 0)&&et.isAugmented(_e)))}findFirst(_e,et){return this.findElement({..._e},et)}findLast(_e,et){return this.findElement({isBackward:!0,..._e},et)}findNext(_e,et){return this.findElement({..._e},et)}findPrev(_e,et){return this.findElement({..._e,isBackward:!0},et)}findDefault(_e,et){return this.findElement({..._e,acceptCondition:tt=>this.isFocusable(tt,_e.includeProgrammaticallyFocusable)&&!!this.getProps(tt).isDefault},et)||null}findAll(_e){return this._findElements(!0,_e)||[]}findElement(_e,et){const tt=this._findElements(!1,_e,et);return tt&&tt[0]}_findElements(_e,et,tt){var rt,nt,ot;const{container:it,currentElement:st=null,includeProgrammaticallyFocusable:lt,useActiveModalizer:ut,ignoreAccessibility:ct,modalizerId:dt,isBackward:ft,onElement:pt}=et;tt||(tt={});const gt=[];let{acceptCondition:mt}=et;const bt=!!mt;if(!it)return null;mt||(mt=Et=>this.isFocusable(Et,lt,!1,ct));const _t={container:it,modalizerUserId:dt===void 0&&ut?(rt=this._tabster.modalizer)===null||rt===void 0?void 0:rt.activeId:dt||((ot=(nt=RootAPI.getTabsterContext(this._tabster,it))===null||nt===void 0?void 0:nt.modalizer)===null||ot===void 0?void 0:ot.userId),from:st||it,isBackward:ft,acceptCondition:mt,hasCustomCondition:bt,includeProgrammaticallyFocusable:lt,ignoreAccessibility:ct,cachedGrouppers:{}},xt=createElementTreeWalker(it.ownerDocument,it,Et=>this._acceptElement(Et,_t));if(!xt)return null;const yt=Et=>{var St,Tt;const kt=(St=_t.foundElement)!==null&&St!==void 0?St:_t.foundBackward;return kt&>.push(kt),_e?kt&&(_t.found=!1,delete _t.foundElement,delete _t.foundBackward,delete _t.fromCtx,_t.from=kt,pt&&!pt(kt))?!1:!!(kt||Et):(kt&&tt&&(tt.uncontrolled=(Tt=RootAPI.getTabsterContext(this._tabster,kt))===null||Tt===void 0?void 0:Tt.uncontrolled),!!(Et&&!kt))};if(st||(tt.outOfDOMOrder=!0),st)xt.currentNode=st;else if(ft){const Et=getLastChild(it);if(!Et)return null;if(this._acceptElement(Et,_t)===NodeFilter.FILTER_ACCEPT&&!yt(!0))return _t.skippedFocusable&&(tt.outOfDOMOrder=!0),gt;xt.currentNode=Et}do ft?xt.previousNode():xt.nextNode();while(yt());return _t.skippedFocusable&&(tt.outOfDOMOrder=!0),gt.length?gt:null}_acceptElement(_e,et){var tt,rt,nt,ot;if(et.found)return NodeFilter.FILTER_ACCEPT;const it=et.foundBackward;if(it&&(_e===it||!it.contains(_e)))return et.found=!0,et.foundElement=it,NodeFilter.FILTER_ACCEPT;const st=et.container;if(_e===st)return NodeFilter.FILTER_SKIP;if(!st.contains(_e)||_e.__tabsterDummyContainer||!((tt=et.rejectElementsFrom)===null||tt===void 0)&&tt.contains(_e))return NodeFilter.FILTER_REJECT;const lt=et.currentCtx=RootAPI.getTabsterContext(this._tabster,_e);if(!lt)return NodeFilter.FILTER_SKIP;if(shouldIgnoreFocus(_e))return this.isFocusable(_e,void 0,!0,!0)&&(et.skippedFocusable=!0),NodeFilter.FILTER_SKIP;if(!et.hasCustomCondition&&(_e.tagName==="IFRAME"||_e.tagName==="WEBVIEW"))return((rt=lt.modalizer)===null||rt===void 0?void 0:rt.userId)===((nt=this._tabster.modalizer)===null||nt===void 0?void 0:nt.activeId)?(et.found=!0,et.rejectElementsFrom=et.foundElement=_e,NodeFilter.FILTER_ACCEPT):NodeFilter.FILTER_REJECT;if(!et.ignoreAccessibility&&!this.isAccessible(_e))return this.isFocusable(_e,!1,!0,!0)&&(et.skippedFocusable=!0),NodeFilter.FILTER_REJECT;let ut,ct=et.fromCtx;ct||(ct=et.fromCtx=RootAPI.getTabsterContext(this._tabster,et.from));const dt=ct==null?void 0:ct.mover;let ft=lt.groupper,pt=lt.mover;if(ut=(ot=this._tabster.modalizer)===null||ot===void 0?void 0:ot.acceptElement(_e,et),ut!==void 0&&(et.skippedFocusable=!0),ut===void 0&&(ft||pt||dt)){const gt=ft==null?void 0:ft.getElement(),mt=dt==null?void 0:dt.getElement();let bt=pt==null?void 0:pt.getElement();bt&&(mt!=null&&mt.contains(bt))&&st.contains(mt)&&(!gt||!pt||mt.contains(gt))&&(pt=dt,bt=mt),gt&&(gt===st||!st.contains(gt))&&(ft=void 0),bt&&!st.contains(bt)&&(pt=void 0),ft&&pt&&(bt&>&&!gt.contains(bt)?pt=void 0:ft=void 0),ft&&(ut=ft.acceptElement(_e,et)),pt&&(ut=pt.acceptElement(_e,et))}return ut===void 0&&(ut=et.acceptCondition(_e)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP,ut===NodeFilter.FILTER_SKIP&&this.isFocusable(_e,!1,!0,!0)&&(et.skippedFocusable=!0)),ut===NodeFilter.FILTER_ACCEPT&&!et.found&&(et.isBackward?(et.foundBackward=_e,ut=NodeFilter.FILTER_SKIP):(et.found=!0,et.foundElement=_e)),ut}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */const Keys={Tab:9,Enter:13,Esc:27,Space:32,PageUp:33,PageDown:34,End:35,Home:36,Left:37,Up:38,Right:39,Down:40};/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. - */function getUncontrolledCompletelyContainer(j,_e){var et;const tt=j.getParent;let rt=_e;do{const nt=(et=getTabsterOnElement(j,rt))===null||et===void 0?void 0:et.uncontrolled;if(nt&&j.uncontrolled.isUncontrolledCompletely(rt,!!nt.completely))return rt;rt=tt(rt)}while(rt)}class FocusedElementState extends Subscribable{constructor(_e,et){super(),this._init=()=>{const tt=this._win(),rt=tt.document;rt.addEventListener(KEYBORG_FOCUSIN,this._onFocusIn,!0),rt.addEventListener("focusout",this._onFocusOut,!0),tt.addEventListener("keydown",this._onKeyDown,!0);const nt=rt.activeElement;nt&&nt!==rt.body&&this._setFocusedElement(nt),this.subscribe(this._onChanged)},this._onFocusIn=tt=>{this._setFocusedElement(tt.target,tt.details.relatedTarget,tt.details.isFocusedProgrammatically)},this._onFocusOut=tt=>{this._setFocusedElement(void 0,tt.relatedTarget)},this._validateFocusedElement=tt=>{},this._onKeyDown=tt=>{if(tt.keyCode!==Keys.Tab||tt.ctrlKey)return;const rt=this.getVal();if(!rt||!rt.ownerDocument||rt.contentEditable==="true")return;const nt=this._tabster,ot=nt.controlTab,it=RootAPI.getTabsterContext(nt,rt);if(!it||it.ignoreKeydown(tt))return;const st=tt.shiftKey,lt=FocusedElementState.findNextTabbable(nt,it,void 0,rt,void 0,st,!0),ut=it.root.getElement();if(!ut)return;const ct=lt==null?void 0:lt.element,dt=getUncontrolledCompletelyContainer(nt,rt);if(ct){const ft=lt.uncontrolled;if(it.uncontrolled||ft!=null&&ft.contains(rt)){if(!lt.outOfDOMOrder&&ft===it.uncontrolled||dt&&!dt.contains(ct))return;DummyInputManager.addPhantomDummyWithTarget(nt,rt,st,ct);return}if(ft||ct.tagName==="IFRAME"){triggerMoveFocusEvent({by:"root",owner:ut,next:ct,relatedEvent:tt})&&DummyInputManager.moveWithPhantomDummy(this._tabster,ft??ct,!1,st,tt);return}(ot||lt!=null&<.outOfDOMOrder)&&triggerMoveFocusEvent({by:"root",owner:ut,next:ct,relatedEvent:tt})&&(tt.preventDefault(),tt.stopImmediatePropagation(),nativeFocus(ct))}else!dt&&triggerMoveFocusEvent({by:"root",owner:ut,next:null,relatedEvent:tt})&&it.root.moveOutWithDefaultAction(st,tt)},this._onChanged=(tt,rt)=>{var nt,ot;if(tt)triggerEvent(tt,FocusInEventName,rt);else{const it=(nt=this._lastVal)===null||nt===void 0?void 0:nt.get();if(it){const st={...rt},lt=RootAPI.getTabsterContext(this._tabster,it),ut=(ot=lt==null?void 0:lt.modalizer)===null||ot===void 0?void 0:ot.userId;ut&&(st.modalizerId=ut),triggerEvent(it,FocusOutEventName,st)}}},this._tabster=_e,this._win=et,_e.queueInit(this._init)}dispose(){super.dispose();const _e=this._win();_e.document.removeEventListener(KEYBORG_FOCUSIN,this._onFocusIn,!0),_e.document.removeEventListener("focusout",this._onFocusOut,!0),_e.removeEventListener("keydown",this._onKeyDown,!0),this.unsubscribe(this._onChanged),delete FocusedElementState._lastResetElement,delete this._nextVal,delete this._lastVal}static forgetMemorized(_e,et){var tt,rt;let nt=FocusedElementState._lastResetElement,ot=nt&&nt.get();ot&&et.contains(ot)&&delete FocusedElementState._lastResetElement,ot=(rt=(tt=_e._nextVal)===null||tt===void 0?void 0:tt.element)===null||rt===void 0?void 0:rt.get(),ot&&et.contains(ot)&&delete _e._nextVal,nt=_e._lastVal,ot=nt&&nt.get(),ot&&et.contains(ot)&&delete _e._lastVal}getFocusedElement(){return this.getVal()}getLastFocusedElement(){var _e;let et=(_e=this._lastVal)===null||_e===void 0?void 0:_e.get();return(!et||et&&!documentContains(et.ownerDocument,et))&&(this._lastVal=et=void 0),et}focus(_e,et,tt){return this._tabster.focusable.isFocusable(_e,et,!1,tt)?(_e.focus(),!0):!1}focusDefault(_e){const et=this._tabster.focusable.findDefault({container:_e});return et?(this._tabster.focusedElement.focus(et),!0):!1}getFirstOrLastTabbable(_e,et){var tt;const{container:rt,ignoreAccessibility:nt}=et;let ot;if(rt){const it=RootAPI.getTabsterContext(this._tabster,rt);it&&(ot=(tt=FocusedElementState.findNextTabbable(this._tabster,it,rt,void 0,void 0,!_e,nt))===null||tt===void 0?void 0:tt.element)}return ot&&!(rt!=null&&rt.contains(ot))&&(ot=void 0),ot||void 0}_focusFirstOrLast(_e,et){const tt=this.getFirstOrLastTabbable(_e,et);return tt?(this.focus(tt,!1,!0),!0):!1}focusFirst(_e){return this._focusFirstOrLast(!0,_e)}focusLast(_e){return this._focusFirstOrLast(!1,_e)}resetFocus(_e){if(!this._tabster.focusable.isVisible(_e))return!1;if(this._tabster.focusable.isFocusable(_e,!0,!0,!0))this.focus(_e);else{const et=_e.getAttribute("tabindex"),tt=_e.getAttribute("aria-hidden");_e.tabIndex=-1,_e.setAttribute("aria-hidden","true"),FocusedElementState._lastResetElement=new WeakHTMLElement(this._win,_e),this.focus(_e,!0,!0),this._setOrRemoveAttribute(_e,"tabindex",et),this._setOrRemoveAttribute(_e,"aria-hidden",tt)}return!0}_setOrRemoveAttribute(_e,et,tt){tt===null?_e.removeAttribute(et):_e.setAttribute(et,tt)}_setFocusedElement(_e,et,tt){var rt,nt;if(this._tabster._noop)return;const ot={relatedTarget:et};if(_e){const st=(rt=FocusedElementState._lastResetElement)===null||rt===void 0?void 0:rt.get();if(FocusedElementState._lastResetElement=void 0,st===_e||shouldIgnoreFocus(_e))return;ot.isFocusedProgrammatically=tt;const lt=RootAPI.getTabsterContext(this._tabster,_e),ut=(nt=lt==null?void 0:lt.modalizer)===null||nt===void 0?void 0:nt.userId;ut&&(ot.modalizerId=ut)}const it=this._nextVal={element:_e?new WeakHTMLElement(this._win,_e):void 0,details:ot};_e&&_e!==this._val&&this._validateFocusedElement(_e),this._nextVal===it&&this.setVal(_e,ot),this._nextVal=void 0}setVal(_e,et){super.setVal(_e,et),_e&&(this._lastVal=new WeakHTMLElement(this._win,_e))}static findNextTabbable(_e,et,tt,rt,nt,ot,it){const st=tt||et.root.getElement();if(!st)return null;let lt=null;const ut=FocusedElementState._isTabbingTimer,ct=_e.getWindow();ut&&ct.clearTimeout(ut),FocusedElementState.isTabbing=!0,FocusedElementState._isTabbingTimer=ct.setTimeout(()=>{delete FocusedElementState._isTabbingTimer,FocusedElementState.isTabbing=!1},0);const dt=et.modalizer,ft=et.groupper,pt=et.mover,gt=vt=>{var bt;if(lt=vt.findNextTabbable(rt,nt,ot,it),rt&&!(lt!=null&<.element)){const _t=vt!==dt&&((bt=vt.getElement())===null||bt===void 0?void 0:bt.parentElement);if(_t){const xt=RootAPI.getTabsterContext(_e,rt,{referenceElement:_t});if(xt){const yt=vt.getElement(),Et=ot?yt:yt&&getLastChild(yt)||yt;Et&&(lt=FocusedElementState.findNextTabbable(_e,xt,tt,Et,_t,ot,it),lt&&(lt.outOfDOMOrder=!0))}}}};if(ft&&pt)gt(et.groupperBeforeMover?ft:pt);else if(ft)gt(ft);else if(pt)gt(pt);else if(dt)gt(dt);else{const vt={container:st,currentElement:rt,referenceElement:nt,ignoreAccessibility:it,useActiveModalizer:!0},bt={};lt={element:_e.focusable[ot?"findPrev":"findNext"](vt,bt),outOfDOMOrder:bt.outOfDOMOrder,uncontrolled:bt.uncontrolled}}return lt}}FocusedElementState.isTabbing=!1;/*! + */function getUncontrolledCompletelyContainer(j,_e){var et;const tt=j.getParent;let rt=_e;do{const nt=(et=getTabsterOnElement(j,rt))===null||et===void 0?void 0:et.uncontrolled;if(nt&&j.uncontrolled.isUncontrolledCompletely(rt,!!nt.completely))return rt;rt=tt(rt)}while(rt)}class FocusedElementState extends Subscribable{constructor(_e,et){super(),this._init=()=>{const tt=this._win(),rt=tt.document;rt.addEventListener(KEYBORG_FOCUSIN,this._onFocusIn,!0),rt.addEventListener("focusout",this._onFocusOut,!0),tt.addEventListener("keydown",this._onKeyDown,!0);const nt=rt.activeElement;nt&&nt!==rt.body&&this._setFocusedElement(nt),this.subscribe(this._onChanged)},this._onFocusIn=tt=>{this._setFocusedElement(tt.target,tt.details.relatedTarget,tt.details.isFocusedProgrammatically)},this._onFocusOut=tt=>{this._setFocusedElement(void 0,tt.relatedTarget)},this._validateFocusedElement=tt=>{},this._onKeyDown=tt=>{if(tt.keyCode!==Keys.Tab||tt.ctrlKey)return;const rt=this.getVal();if(!rt||!rt.ownerDocument||rt.contentEditable==="true")return;const nt=this._tabster,ot=nt.controlTab,it=RootAPI.getTabsterContext(nt,rt);if(!it||it.ignoreKeydown(tt))return;const st=tt.shiftKey,lt=FocusedElementState.findNextTabbable(nt,it,void 0,rt,void 0,st,!0),ut=it.root.getElement();if(!ut)return;const ct=lt==null?void 0:lt.element,dt=getUncontrolledCompletelyContainer(nt,rt);if(ct){const ft=lt.uncontrolled;if(it.uncontrolled||ft!=null&&ft.contains(rt)){if(!lt.outOfDOMOrder&&ft===it.uncontrolled||dt&&!dt.contains(ct))return;DummyInputManager.addPhantomDummyWithTarget(nt,rt,st,ct);return}if(ft||ct.tagName==="IFRAME"){triggerMoveFocusEvent({by:"root",owner:ut,next:ct,relatedEvent:tt})&&DummyInputManager.moveWithPhantomDummy(this._tabster,ft??ct,!1,st,tt);return}(ot||lt!=null&<.outOfDOMOrder)&&triggerMoveFocusEvent({by:"root",owner:ut,next:ct,relatedEvent:tt})&&(tt.preventDefault(),tt.stopImmediatePropagation(),nativeFocus(ct))}else!dt&&triggerMoveFocusEvent({by:"root",owner:ut,next:null,relatedEvent:tt})&&it.root.moveOutWithDefaultAction(st,tt)},this._onChanged=(tt,rt)=>{var nt,ot;if(tt)triggerEvent(tt,FocusInEventName,rt);else{const it=(nt=this._lastVal)===null||nt===void 0?void 0:nt.get();if(it){const st={...rt},lt=RootAPI.getTabsterContext(this._tabster,it),ut=(ot=lt==null?void 0:lt.modalizer)===null||ot===void 0?void 0:ot.userId;ut&&(st.modalizerId=ut),triggerEvent(it,FocusOutEventName,st)}}},this._tabster=_e,this._win=et,_e.queueInit(this._init)}dispose(){super.dispose();const _e=this._win();_e.document.removeEventListener(KEYBORG_FOCUSIN,this._onFocusIn,!0),_e.document.removeEventListener("focusout",this._onFocusOut,!0),_e.removeEventListener("keydown",this._onKeyDown,!0),this.unsubscribe(this._onChanged),delete FocusedElementState._lastResetElement,delete this._nextVal,delete this._lastVal}static forgetMemorized(_e,et){var tt,rt;let nt=FocusedElementState._lastResetElement,ot=nt&&nt.get();ot&&et.contains(ot)&&delete FocusedElementState._lastResetElement,ot=(rt=(tt=_e._nextVal)===null||tt===void 0?void 0:tt.element)===null||rt===void 0?void 0:rt.get(),ot&&et.contains(ot)&&delete _e._nextVal,nt=_e._lastVal,ot=nt&&nt.get(),ot&&et.contains(ot)&&delete _e._lastVal}getFocusedElement(){return this.getVal()}getLastFocusedElement(){var _e;let et=(_e=this._lastVal)===null||_e===void 0?void 0:_e.get();return(!et||et&&!documentContains(et.ownerDocument,et))&&(this._lastVal=et=void 0),et}focus(_e,et,tt){return this._tabster.focusable.isFocusable(_e,et,!1,tt)?(_e.focus(),!0):!1}focusDefault(_e){const et=this._tabster.focusable.findDefault({container:_e});return et?(this._tabster.focusedElement.focus(et),!0):!1}getFirstOrLastTabbable(_e,et){var tt;const{container:rt,ignoreAccessibility:nt}=et;let ot;if(rt){const it=RootAPI.getTabsterContext(this._tabster,rt);it&&(ot=(tt=FocusedElementState.findNextTabbable(this._tabster,it,rt,void 0,void 0,!_e,nt))===null||tt===void 0?void 0:tt.element)}return ot&&!(rt!=null&&rt.contains(ot))&&(ot=void 0),ot||void 0}_focusFirstOrLast(_e,et){const tt=this.getFirstOrLastTabbable(_e,et);return tt?(this.focus(tt,!1,!0),!0):!1}focusFirst(_e){return this._focusFirstOrLast(!0,_e)}focusLast(_e){return this._focusFirstOrLast(!1,_e)}resetFocus(_e){if(!this._tabster.focusable.isVisible(_e))return!1;if(this._tabster.focusable.isFocusable(_e,!0,!0,!0))this.focus(_e);else{const et=_e.getAttribute("tabindex"),tt=_e.getAttribute("aria-hidden");_e.tabIndex=-1,_e.setAttribute("aria-hidden","true"),FocusedElementState._lastResetElement=new WeakHTMLElement(this._win,_e),this.focus(_e,!0,!0),this._setOrRemoveAttribute(_e,"tabindex",et),this._setOrRemoveAttribute(_e,"aria-hidden",tt)}return!0}_setOrRemoveAttribute(_e,et,tt){tt===null?_e.removeAttribute(et):_e.setAttribute(et,tt)}_setFocusedElement(_e,et,tt){var rt,nt;if(this._tabster._noop)return;const ot={relatedTarget:et};if(_e){const st=(rt=FocusedElementState._lastResetElement)===null||rt===void 0?void 0:rt.get();if(FocusedElementState._lastResetElement=void 0,st===_e||shouldIgnoreFocus(_e))return;ot.isFocusedProgrammatically=tt;const lt=RootAPI.getTabsterContext(this._tabster,_e),ut=(nt=lt==null?void 0:lt.modalizer)===null||nt===void 0?void 0:nt.userId;ut&&(ot.modalizerId=ut)}const it=this._nextVal={element:_e?new WeakHTMLElement(this._win,_e):void 0,details:ot};_e&&_e!==this._val&&this._validateFocusedElement(_e),this._nextVal===it&&this.setVal(_e,ot),this._nextVal=void 0}setVal(_e,et){super.setVal(_e,et),_e&&(this._lastVal=new WeakHTMLElement(this._win,_e))}static findNextTabbable(_e,et,tt,rt,nt,ot,it){const st=tt||et.root.getElement();if(!st)return null;let lt=null;const ut=FocusedElementState._isTabbingTimer,ct=_e.getWindow();ut&&ct.clearTimeout(ut),FocusedElementState.isTabbing=!0,FocusedElementState._isTabbingTimer=ct.setTimeout(()=>{delete FocusedElementState._isTabbingTimer,FocusedElementState.isTabbing=!1},0);const dt=et.modalizer,ft=et.groupper,pt=et.mover,gt=mt=>{var bt;if(lt=mt.findNextTabbable(rt,nt,ot,it),rt&&!(lt!=null&<.element)){const _t=mt!==dt&&((bt=mt.getElement())===null||bt===void 0?void 0:bt.parentElement);if(_t){const xt=RootAPI.getTabsterContext(_e,rt,{referenceElement:_t});if(xt){const yt=mt.getElement(),Et=ot?yt:yt&&getLastChild(yt)||yt;Et&&(lt=FocusedElementState.findNextTabbable(_e,xt,tt,Et,_t,ot,it),lt&&(lt.outOfDOMOrder=!0))}}}};if(ft&&pt)gt(et.groupperBeforeMover?ft:pt);else if(ft)gt(ft);else if(pt)gt(pt);else if(dt)gt(dt);else{const mt={container:st,currentElement:rt,referenceElement:nt,ignoreAccessibility:it,useActiveModalizer:!0},bt={};lt={element:_e.focusable[ot?"findPrev":"findNext"](mt,bt),outOfDOMOrder:bt.outOfDOMOrder,uncontrolled:bt.uncontrolled}}return lt}}FocusedElementState.isTabbing=!1;/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */class GroupperDummyManager extends DummyInputManager{constructor(_e,et,tt,rt){super(tt,_e,DummyInputManagerPriorities.Groupper,rt,!0),this._setHandlers((nt,ot,it)=>{var st,lt;const ut=_e.get(),ct=nt.input;if(ut&&ct){const dt=RootAPI.getTabsterContext(tt,ct);if(dt){let ft;ft=(st=et.findNextTabbable(it||void 0,void 0,ot,!0))===null||st===void 0?void 0:st.element,ft||(ft=(lt=FocusedElementState.findNextTabbable(tt,dt,void 0,nt.isOutside?ct:getAdjacentElement(ut,!ot),void 0,ot,!0))===null||lt===void 0?void 0:lt.element),ft&&nativeFocus(ft)}}})}}class Groupper extends TabsterPart{constructor(_e,et,tt,rt,nt){super(_e,et,rt),this._shouldTabInside=!1,this.makeTabbable(!1),this._onDispose=tt,_e.controlTab||(this.dummyManager=new GroupperDummyManager(this._element,this,_e,nt))}dispose(){var _e;this._onDispose(this),this._element.get(),(_e=this.dummyManager)===null||_e===void 0||_e.dispose(),delete this.dummyManager,delete this._first}findNextTabbable(_e,et,tt,rt){var nt;const ot=this.getElement();if(!ot)return null;const it=((nt=_e==null?void 0:_e.__tabsterDummyContainer)===null||nt===void 0?void 0:nt.get())===ot;if(!this._shouldTabInside&&_e&&ot.contains(_e)&&!it)return{element:void 0,outOfDOMOrder:!0};const st=this.getFirst(!0);if(!_e||!ot.contains(_e)||it)return{element:st,outOfDOMOrder:!0};const lt=this._tabster;let ut=null,ct=!1,dt;if(this._shouldTabInside&&st){const ft={container:ot,currentElement:_e,referenceElement:et,ignoreAccessibility:rt,useActiveModalizer:!0},pt={};ut=lt.focusable[tt?"findPrev":"findNext"](ft,pt),ct=!!pt.outOfDOMOrder,!ut&&this._props.tabbability===GroupperTabbabilities.LimitedTrapFocus&&(ut=lt.focusable[tt?"findLast":"findFirst"]({container:ot,ignoreAccessibility:rt,useActiveModalizer:!0},pt),ct=!0),dt=pt.uncontrolled}return{element:ut,uncontrolled:dt,outOfDOMOrder:ct}}makeTabbable(_e){this._shouldTabInside=_e||!this._props.tabbability}isActive(_e){var et;const tt=this.getElement()||null;let rt=!0;for(let ot=tt==null?void 0:tt.parentElement;ot;ot=ot.parentElement){const it=(et=getTabsterOnElement(this._tabster,ot))===null||et===void 0?void 0:et.groupper;it&&(it._shouldTabInside||(rt=!1))}let nt=rt?this._props.tabbability?this._shouldTabInside:!1:void 0;if(nt&&_e){const ot=this._tabster.focusedElement.getFocusedElement();ot&&(nt=ot!==this.getFirst(!0))}return nt}getFirst(_e){var et;const tt=this.getElement();let rt;if(tt){if(_e&&this._tabster.focusable.isFocusable(tt))return tt;rt=(et=this._first)===null||et===void 0?void 0:et.get(),rt||(rt=this._tabster.focusable.findFirst({container:tt,useActiveModalizer:!0})||void 0,rt&&this.setFirst(rt))}return rt}setFirst(_e){_e?this._first=new WeakHTMLElement(this._tabster.getWindow,_e):delete this._first}acceptElement(_e,et){var tt;const rt=et.cachedGrouppers,nt=(tt=this.getElement())===null||tt===void 0?void 0:tt.parentElement,ot=nt&&RootAPI.getTabsterContext(this._tabster,nt),it=ot==null?void 0:ot.groupper,st=ot!=null&&ot.groupperBeforeMover?it:void 0;let lt;const ut=ft=>{let pt=rt[ft.id],gt;return pt?gt=pt.isActive:(gt=this.isActive(!0),pt=rt[ft.id]={isActive:gt}),gt};if(st&&(lt=st.getElement(),!ut(st)&<&&et.container!==lt&&et.container.contains(lt)))return et.skippedFocusable=!0,NodeFilter.FILTER_REJECT;const ct=ut(this),dt=this.getElement();if(dt&&ct!==!0){if(dt===_e&&it&&(lt||(lt=it.getElement()),lt&&!ut(it)&&et.container.contains(lt)&<!==et.container)||dt!==_e&&dt.contains(_e))return et.skippedFocusable=!0,NodeFilter.FILTER_REJECT;const ft=rt[this.id];let pt;if("first"in ft?pt=ft.first:pt=ft.first=this.getFirst(!0),pt&&et.acceptCondition(pt))return et.rejectElementsFrom=dt,et.skippedFocusable=!0,pt!==et.from?(et.found=!0,et.foundElement=pt,NodeFilter.FILTER_ACCEPT):NodeFilter.FILTER_REJECT}}}class GroupperAPI{constructor(_e,et){this._current={},this._grouppers={},this._init=()=>{const tt=this._win();this._tabster.focusedElement.subscribeFirst(this._onFocus),tt.document.addEventListener("mousedown",this._onMouseDown,!0),tt.addEventListener("keydown",this._onKeyDown,!0)},this._onGroupperDispose=tt=>{delete this._grouppers[tt.id]},this._onFocus=tt=>{tt&&this._updateCurrent(tt,!0,!0)},this._onMouseDown=tt=>{tt.target&&this._updateCurrent(tt.target,!0)},this._onKeyDown=tt=>{if(tt.keyCode!==Keys.Enter&&tt.keyCode!==Keys.Esc||tt.ctrlKey||tt.altKey||tt.shiftKey||tt.metaKey)return;const rt=this._tabster.focusedElement.getFocusedElement();rt&&this.handleKeyPress(rt,tt)},this._tabster=_e,this._win=et,_e.queueInit(this._init)}dispose(){const _e=this._win();this._handleKeyPressTimer&&(_e.clearTimeout(this._handleKeyPressTimer),delete this._handleKeyPressTimer),this._current={},this._updateTimer&&(_e.clearTimeout(this._updateTimer),delete this._updateTimer),this._tabster.focusedElement.unsubscribe(this._onFocus),_e.document.removeEventListener("mousedown",this._onMouseDown,!0),_e.removeEventListener("keydown",this._onKeyDown,!0),Object.keys(this._grouppers).forEach(et=>{this._grouppers[et]&&(this._grouppers[et].dispose(),delete this._grouppers[et])})}createGroupper(_e,et,tt){const rt=new Groupper(this._tabster,_e,this._onGroupperDispose,et,tt);this._grouppers[rt.id]=rt;const nt=this._tabster.focusedElement.getFocusedElement();return nt&&_e.contains(nt)&&!this._updateTimer&&(this._updateTimer=this._win().setTimeout(()=>{delete this._updateTimer,nt===this._tabster.focusedElement.getFocusedElement()&&this._updateCurrent(nt,!0,!0)},0)),rt}forgetCurrentGrouppers(){this._current={}}_updateCurrent(_e,et,tt){var rt;this._updateTimer&&(this._win().clearTimeout(this._updateTimer),delete this._updateTimer);const nt={};let ot=!0;for(let it=_e;it;it=it.parentElement){const st=(rt=getTabsterOnElement(this._tabster,it))===null||rt===void 0?void 0:rt.groupper;if(st){if(nt[st.id]=!0,ot&&tt&&it!==_e&&(ot=!1),et||!ot){this._current[st.id]=st;const lt=st.isActive()||_e!==it&&(!st.getProps().delegated||st.getFirst(!1)!==_e);st.makeTabbable(lt)}ot=!1}}for(const it of Object.keys(this._current)){const st=this._current[it];st.id in nt||(st.makeTabbable(!1),st.setFirst(void 0),delete this._current[it])}}handleKeyPress(_e,et,tt){const rt=this._tabster,nt=RootAPI.getTabsterContext(rt,_e),ot=nt==null?void 0:nt.modalizerInGroupper;let it=(nt==null?void 0:nt.groupper)||ot;if(nt&&it){const st=this._win();if(this._handleKeyPressTimer&&(st.clearTimeout(this._handleKeyPressTimer),delete this._handleKeyPressTimer),nt.ignoreKeydown(et))return;let lt;const ut=it.getElement();if(et.keyCode===Keys.Enter)ut&&(_e===ut||it.getProps().delegated&&_e===it.getFirst(!1))&&(lt=rt.focusable.findNext({container:ut,currentElement:_e,useActiveModalizer:!0})),lt&&ut&&triggerMoveFocusEvent({by:"groupper",owner:ut,next:lt,relatedEvent:et})&&(et.preventDefault(),et.stopImmediatePropagation(),lt.focus());else if(et.keyCode===Keys.Esc){const ct=rt.focusedElement.getFocusedElement();this._handleKeyPressTimer=st.setTimeout(()=>{var dt;if(delete this._handleKeyPressTimer,ct===rt.focusedElement.getFocusedElement()&&it&&ut&&ut.contains(_e)){if(_e!==ut||tt)lt=it.getFirst(!0);else{const ft=ut.parentElement,pt=ft?RootAPI.getTabsterContext(rt,ft):void 0;it=pt==null?void 0:pt.groupper,lt=it==null?void 0:it.getFirst(!0)}lt&&triggerMoveFocusEvent({by:"groupper",owner:ut,next:lt,relatedEvent:et})&&(it&&(it.makeTabbable(!1),ot&&((dt=rt.modalizer)===null||dt===void 0||dt.setActive(void 0))),lt.focus())}},0)}}}}/*! @@ -85,13 +85,13 @@ Error generating stack: `+nt.message+` */class KeyboardNavigationState extends Subscribable{constructor(_e){super(),this._onChange=et=>{this.setVal(et,void 0)},this._keyborg=createKeyborg(_e()),this._keyborg.subscribe(this._onChange)}dispose(){super.dispose(),this._keyborg&&(this._keyborg.unsubscribe(this._onChange),disposeKeyborg(this._keyborg),delete this._keyborg)}setNavigatingWithKeyboard(_e){var et;(et=this._keyborg)===null||et===void 0||et.setVal(_e)}isNavigatingWithKeyboard(){var _e;return!!(!((_e=this._keyborg)===null||_e===void 0)&&_e.isNavigatingWithKeyboard())}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. - */let _wasFocusedCounter=0;const _ariaHidden="aria-hidden";class ModalizerDummyManager extends DummyInputManager{constructor(_e,et,tt){super(et,_e,DummyInputManagerPriorities.Modalizer,tt),this._setHandlers((rt,nt)=>{var ot,it,st;const lt=_e.get(),ut=lt&&((ot=RootAPI.getRoot(et,lt))===null||ot===void 0?void 0:ot.getElement()),ct=rt.input;let dt;if(ut&&ct){const ft=(it=ct.__tabsterDummyContainer)===null||it===void 0?void 0:it.get(),pt=RootAPI.getTabsterContext(et,ft||ct);pt&&(dt=(st=FocusedElementState.findNextTabbable(et,pt,ut,ct,void 0,nt,!0))===null||st===void 0?void 0:st.element),dt&&nativeFocus(dt)}})}}class Modalizer extends TabsterPart{constructor(_e,et,tt,rt,nt,ot){super(_e,et,rt),this._wasFocused=0,this.userId=rt.id,this._onDispose=tt,this._activeElements=ot,_e.controlTab||(this.dummyManager=new ModalizerDummyManager(this._element,_e,nt))}makeActive(_e){if(this._isActive!==_e){this._isActive=_e;const et=this.getElement();if(et){const tt=this._activeElements,rt=tt.map(nt=>nt.get()).indexOf(et);_e?rt<0&&tt.push(new WeakHTMLElement(this._tabster.getWindow,et)):rt>=0&&tt.splice(rt,1)}this.triggerFocusEvent(_e?ModalizerActiveEventName:ModalizerInactiveEventName)}}focused(_e){return _e||(this._wasFocused=++_wasFocusedCounter),this._wasFocused}setProps(_e){_e.id&&(this.userId=_e.id),this._props={..._e}}dispose(){var _e;this.makeActive(!1),this._onDispose(this),(_e=this.dummyManager)===null||_e===void 0||_e.dispose(),delete this.dummyManager,this._activeElements=[],this._remove()}isActive(){return!!this._isActive}contains(_e){var et;return!!(!((et=this.getElement())===null||et===void 0)&&et.contains(_e))}findNextTabbable(_e,et,tt,rt){var nt,ot;if(!this.getElement())return null;const st=this._tabster;let lt=null,ut=!1,ct;const dt=_e&&((nt=RootAPI.getRoot(st,_e))===null||nt===void 0?void 0:nt.getElement());if(dt){const ft={container:dt,currentElement:_e,referenceElement:et,ignoreAccessibility:rt,useActiveModalizer:!0},pt={};lt=st.focusable[tt?"findPrev":"findNext"](ft,pt),!lt&&this._props.isTrapped&&(!((ot=st.modalizer)===null||ot===void 0)&&ot.activeId)?(lt=st.focusable[tt?"findLast":"findFirst"]({container:dt,ignoreAccessibility:rt,useActiveModalizer:!0},pt),ut=!0):ut=!!pt.outOfDOMOrder,ct=pt.uncontrolled}return{element:lt,uncontrolled:ct,outOfDOMOrder:ut}}triggerFocusEvent(_e,et){const tt=this.getElement();let rt=!1;if(tt){const nt=et?this._activeElements.map(ot=>ot.get()):[tt];for(const ot of nt)ot&&!triggerEvent(ot,_e,{id:this.userId,element:tt,eventName:_e})&&(rt=!0)}return rt}_remove(){}}class ModalizerAPI{constructor(_e,et,tt){this._onModalizerDispose=nt=>{const ot=nt.id,it=nt.userId,st=this._parts[it];delete this._modalizers[ot],st&&(delete st[ot],Object.keys(st).length===0&&(delete this._parts[it],this.activeId===it&&this.setActive(void 0)))},this._onKeyDown=nt=>{var ot;if(nt.keyCode!==Keys.Esc)return;const it=this._tabster,st=it.focusedElement.getFocusedElement();if(st){const lt=RootAPI.getTabsterContext(it,st),ut=lt==null?void 0:lt.modalizer;if(lt&&!lt.groupper&&(ut!=null&&ut.isActive())&&!lt.ignoreKeydown(nt)){const ct=ut.userId;if(ct){const dt=this._parts[ct];if(dt){const ft=Object.keys(dt).map(pt=>{var gt;const vt=dt[pt],bt=vt.getElement();let _t;return bt&&(_t=(gt=getTabsterOnElement(this._tabster,bt))===null||gt===void 0?void 0:gt.groupper),vt&&bt&&_t?{el:bt,focusedSince:vt.focused(!0)}:{focusedSince:0}}).filter(pt=>pt.focusedSince>0).sort((pt,gt)=>pt.focusedSince>gt.focusedSince?-1:pt.focusedSince{var it,st;const lt=nt&&RootAPI.getTabsterContext(this._tabster,nt);if(!lt||!nt)return;const ut=this._augMap;for(let dt=nt;dt;dt=dt.parentElement)ut.has(dt)&&(ut.delete(dt),augmentAttribute(this._tabster,dt,_ariaHidden));const ct=lt.modalizer;if((st=ct||((it=getTabsterOnElement(this._tabster,nt))===null||it===void 0?void 0:it.modalizer))===null||st===void 0||st.focused(),(ct==null?void 0:ct.userId)===this.activeId){this.currentIsOthersAccessible=ct==null?void 0:ct.getProps().isOthersAccessible;return}if(ot.isFocusedProgrammatically||this.currentIsOthersAccessible||ct!=null&&ct.getProps().isAlwaysAccessible)this.setActive(ct);else{const dt=this._win();dt.clearTimeout(this._restoreModalizerFocusTimer),this._restoreModalizerFocusTimer=dt.setTimeout(()=>this._restoreModalizerFocus(nt),100)}},this._tabster=_e,this._win=_e.getWindow,this._modalizers={},this._parts={},this._augMap=new WeakMap,this._aug=[],this._alwaysAccessibleSelector=et,this._accessibleCheck=tt,this.activeElements=[],_e.controlTab||_e.root.addDummyInputs(),this._win().addEventListener("keydown",this._onKeyDown,!0),_e.queueInit(()=>{this._tabster.focusedElement.subscribe(this._onFocus)})}dispose(){const _e=this._win();_e.removeEventListener("keydown",this._onKeyDown,!0),Object.keys(this._modalizers).forEach(et=>{this._modalizers[et]&&(this._modalizers[et].dispose(),delete this._modalizers[et])}),_e.clearTimeout(this._restoreModalizerFocusTimer),_e.clearTimeout(this._hiddenUpdateTimer),this._parts={},delete this.activeId,this.activeElements=[],this._augMap=new WeakMap,this._aug=[],this._tabster.focusedElement.unsubscribe(this._onFocus)}createModalizer(_e,et,tt){var rt;const nt=new Modalizer(this._tabster,_e,this._onModalizerDispose,et,tt,this.activeElements),ot=nt.id,it=et.id;this._modalizers[ot]=nt;let st=this._parts[it];return st||(st=this._parts[it]={}),st[ot]=nt,_e.contains((rt=this._tabster.focusedElement.getFocusedElement())!==null&&rt!==void 0?rt:null)&&(it!==this.activeId?this.setActive(nt):nt.makeActive(!0)),nt}isAugmented(_e){return this._augMap.has(_e)}hiddenUpdate(){this._hiddenUpdateTimer||(this._hiddenUpdateTimer=this._win().setTimeout(()=>{delete this._hiddenUpdateTimer,this._hiddenUpdate()},250))}setActive(_e){const et=_e==null?void 0:_e.userId,tt=this.activeId;if(tt!==et){if(this.activeId=et,tt){const rt=this._parts[tt];if(rt)for(const nt of Object.keys(rt))rt[nt].makeActive(!1)}if(et){const rt=this._parts[et];if(rt)for(const nt of Object.keys(rt))rt[nt].makeActive(!0)}this.currentIsOthersAccessible=_e==null?void 0:_e.getProps().isOthersAccessible,this.hiddenUpdate()}}focus(_e,et,tt){const rt=RootAPI.getTabsterContext(this._tabster,_e),nt=rt==null?void 0:rt.modalizer;if(nt){this.setActive(nt);const ot=nt.getProps(),it=nt.getElement();if(it){if(et===void 0&&(et=ot.isNoFocusFirst),!et&&this._tabster.keyboardNavigation.isNavigatingWithKeyboard()&&this._tabster.focusedElement.focusFirst({container:it})||(tt===void 0&&(tt=ot.isNoFocusDefault),!tt&&this._tabster.focusedElement.focusDefault(it)))return!0;this._tabster.focusedElement.resetFocus(it)}}return!1}acceptElement(_e,et){var tt;const rt=et.modalizerUserId,nt=(tt=et.currentCtx)===null||tt===void 0?void 0:tt.modalizer;if(rt)for(const it of this.activeElements){const st=it.get();if(st&&(_e.contains(st)||st===_e))return NodeFilter.FILTER_SKIP}const ot=rt===(nt==null?void 0:nt.userId)||!rt&&(nt!=null&&nt.getProps().isAlwaysAccessible)?void 0:NodeFilter.FILTER_SKIP;return ot!==void 0&&(et.skippedFocusable=!0),ot}_hiddenUpdate(){var _e;const et=this._tabster,tt=et.getWindow().document.body,rt=this.activeId,nt=this._parts,ot=[],it=[],st=this._alwaysAccessibleSelector,lt=st?Array.from(tt.querySelectorAll(st)):[],ut=[];for(const bt of Object.keys(nt)){const _t=nt[bt];for(const xt of Object.keys(_t)){const yt=_t[xt],Et=yt.getElement(),$t=yt.getProps().isAlwaysAccessible;Et&&(bt===rt?(ut.push(Et),this.currentIsOthersAccessible||ot.push(Et)):$t?lt.push(Et):it.push(Et))}}const ct=this._augMap,dt=ot.length>0?[...ot,...lt]:void 0,ft=[],pt=new WeakMap,gt=(bt,_t)=>{var xt;const yt=bt.tagName;if(yt==="SCRIPT"||yt==="STYLE")return;let Et=!1;ct.has(bt)?_t?Et=!0:(ct.delete(bt),augmentAttribute(et,bt,_ariaHidden)):_t&&!(!((xt=this._accessibleCheck)===null||xt===void 0)&&xt.call(this,bt,ut))&&augmentAttribute(et,bt,_ariaHidden,"true")&&(ct.set(bt,!0),Et=!0),Et&&(ft.push(new WeakHTMLElement(et.getWindow,bt)),pt.set(bt,!0))},vt=bt=>{for(let _t=bt.firstElementChild;_t;_t=_t.nextElementSibling){let xt=!1,yt=!1;if(dt){for(const Et of dt){if(_t===Et){xt=!0;break}if(_t.contains(Et)){yt=!0;break}}yt?vt(_t):xt||gt(_t,!0)}else gt(_t,!1)}};dt||lt.forEach(bt=>gt(bt,!1)),it.forEach(bt=>gt(bt,!0)),tt&&vt(tt),(_e=this._aug)===null||_e===void 0||_e.map(bt=>bt.get()).forEach(bt=>{bt&&!pt.get(bt)&>(bt,!1)}),this._aug=ft,this._augMap=pt}_restoreModalizerFocus(_e){const et=_e==null?void 0:_e.ownerDocument;if(!_e||!et)return;const tt=RootAPI.getTabsterContext(this._tabster,_e),rt=tt==null?void 0:tt.modalizer,nt=this.activeId;if(!rt&&!nt||rt&&nt===rt.userId)return;const ot=tt==null?void 0:tt.root.getElement();if(ot){let it=this._tabster.focusable.findFirst({container:ot,useActiveModalizer:!0});if(it){if(_e.compareDocumentPosition(it)&document.DOCUMENT_POSITION_PRECEDING&&(it=this._tabster.focusable.findLast({container:ot,useActiveModalizer:!0}),!it))throw new Error("Something went wrong.");this._tabster.focusedElement.focus(it);return}}_e.blur()}}/*! + */let _wasFocusedCounter=0;const _ariaHidden="aria-hidden";class ModalizerDummyManager extends DummyInputManager{constructor(_e,et,tt){super(et,_e,DummyInputManagerPriorities.Modalizer,tt),this._setHandlers((rt,nt)=>{var ot,it,st;const lt=_e.get(),ut=lt&&((ot=RootAPI.getRoot(et,lt))===null||ot===void 0?void 0:ot.getElement()),ct=rt.input;let dt;if(ut&&ct){const ft=(it=ct.__tabsterDummyContainer)===null||it===void 0?void 0:it.get(),pt=RootAPI.getTabsterContext(et,ft||ct);pt&&(dt=(st=FocusedElementState.findNextTabbable(et,pt,ut,ct,void 0,nt,!0))===null||st===void 0?void 0:st.element),dt&&nativeFocus(dt)}})}}class Modalizer extends TabsterPart{constructor(_e,et,tt,rt,nt,ot){super(_e,et,rt),this._wasFocused=0,this.userId=rt.id,this._onDispose=tt,this._activeElements=ot,_e.controlTab||(this.dummyManager=new ModalizerDummyManager(this._element,_e,nt))}makeActive(_e){if(this._isActive!==_e){this._isActive=_e;const et=this.getElement();if(et){const tt=this._activeElements,rt=tt.map(nt=>nt.get()).indexOf(et);_e?rt<0&&tt.push(new WeakHTMLElement(this._tabster.getWindow,et)):rt>=0&&tt.splice(rt,1)}this.triggerFocusEvent(_e?ModalizerActiveEventName:ModalizerInactiveEventName)}}focused(_e){return _e||(this._wasFocused=++_wasFocusedCounter),this._wasFocused}setProps(_e){_e.id&&(this.userId=_e.id),this._props={..._e}}dispose(){var _e;this.makeActive(!1),this._onDispose(this),(_e=this.dummyManager)===null||_e===void 0||_e.dispose(),delete this.dummyManager,this._activeElements=[],this._remove()}isActive(){return!!this._isActive}contains(_e){var et;return!!(!((et=this.getElement())===null||et===void 0)&&et.contains(_e))}findNextTabbable(_e,et,tt,rt){var nt,ot;if(!this.getElement())return null;const st=this._tabster;let lt=null,ut=!1,ct;const dt=_e&&((nt=RootAPI.getRoot(st,_e))===null||nt===void 0?void 0:nt.getElement());if(dt){const ft={container:dt,currentElement:_e,referenceElement:et,ignoreAccessibility:rt,useActiveModalizer:!0},pt={};lt=st.focusable[tt?"findPrev":"findNext"](ft,pt),!lt&&this._props.isTrapped&&(!((ot=st.modalizer)===null||ot===void 0)&&ot.activeId)?(lt=st.focusable[tt?"findLast":"findFirst"]({container:dt,ignoreAccessibility:rt,useActiveModalizer:!0},pt),ut=!0):ut=!!pt.outOfDOMOrder,ct=pt.uncontrolled}return{element:lt,uncontrolled:ct,outOfDOMOrder:ut}}triggerFocusEvent(_e,et){const tt=this.getElement();let rt=!1;if(tt){const nt=et?this._activeElements.map(ot=>ot.get()):[tt];for(const ot of nt)ot&&!triggerEvent(ot,_e,{id:this.userId,element:tt,eventName:_e})&&(rt=!0)}return rt}_remove(){}}class ModalizerAPI{constructor(_e,et,tt){this._onModalizerDispose=nt=>{const ot=nt.id,it=nt.userId,st=this._parts[it];delete this._modalizers[ot],st&&(delete st[ot],Object.keys(st).length===0&&(delete this._parts[it],this.activeId===it&&this.setActive(void 0)))},this._onKeyDown=nt=>{var ot;if(nt.keyCode!==Keys.Esc)return;const it=this._tabster,st=it.focusedElement.getFocusedElement();if(st){const lt=RootAPI.getTabsterContext(it,st),ut=lt==null?void 0:lt.modalizer;if(lt&&!lt.groupper&&(ut!=null&&ut.isActive())&&!lt.ignoreKeydown(nt)){const ct=ut.userId;if(ct){const dt=this._parts[ct];if(dt){const ft=Object.keys(dt).map(pt=>{var gt;const mt=dt[pt],bt=mt.getElement();let _t;return bt&&(_t=(gt=getTabsterOnElement(this._tabster,bt))===null||gt===void 0?void 0:gt.groupper),mt&&bt&&_t?{el:bt,focusedSince:mt.focused(!0)}:{focusedSince:0}}).filter(pt=>pt.focusedSince>0).sort((pt,gt)=>pt.focusedSince>gt.focusedSince?-1:pt.focusedSince{var it,st;const lt=nt&&RootAPI.getTabsterContext(this._tabster,nt);if(!lt||!nt)return;const ut=this._augMap;for(let dt=nt;dt;dt=dt.parentElement)ut.has(dt)&&(ut.delete(dt),augmentAttribute(this._tabster,dt,_ariaHidden));const ct=lt.modalizer;if((st=ct||((it=getTabsterOnElement(this._tabster,nt))===null||it===void 0?void 0:it.modalizer))===null||st===void 0||st.focused(),(ct==null?void 0:ct.userId)===this.activeId){this.currentIsOthersAccessible=ct==null?void 0:ct.getProps().isOthersAccessible;return}if(ot.isFocusedProgrammatically||this.currentIsOthersAccessible||ct!=null&&ct.getProps().isAlwaysAccessible)this.setActive(ct);else{const dt=this._win();dt.clearTimeout(this._restoreModalizerFocusTimer),this._restoreModalizerFocusTimer=dt.setTimeout(()=>this._restoreModalizerFocus(nt),100)}},this._tabster=_e,this._win=_e.getWindow,this._modalizers={},this._parts={},this._augMap=new WeakMap,this._aug=[],this._alwaysAccessibleSelector=et,this._accessibleCheck=tt,this.activeElements=[],_e.controlTab||_e.root.addDummyInputs(),this._win().addEventListener("keydown",this._onKeyDown,!0),_e.queueInit(()=>{this._tabster.focusedElement.subscribe(this._onFocus)})}dispose(){const _e=this._win();_e.removeEventListener("keydown",this._onKeyDown,!0),Object.keys(this._modalizers).forEach(et=>{this._modalizers[et]&&(this._modalizers[et].dispose(),delete this._modalizers[et])}),_e.clearTimeout(this._restoreModalizerFocusTimer),_e.clearTimeout(this._hiddenUpdateTimer),this._parts={},delete this.activeId,this.activeElements=[],this._augMap=new WeakMap,this._aug=[],this._tabster.focusedElement.unsubscribe(this._onFocus)}createModalizer(_e,et,tt){var rt;const nt=new Modalizer(this._tabster,_e,this._onModalizerDispose,et,tt,this.activeElements),ot=nt.id,it=et.id;this._modalizers[ot]=nt;let st=this._parts[it];return st||(st=this._parts[it]={}),st[ot]=nt,_e.contains((rt=this._tabster.focusedElement.getFocusedElement())!==null&&rt!==void 0?rt:null)&&(it!==this.activeId?this.setActive(nt):nt.makeActive(!0)),nt}isAugmented(_e){return this._augMap.has(_e)}hiddenUpdate(){this._hiddenUpdateTimer||(this._hiddenUpdateTimer=this._win().setTimeout(()=>{delete this._hiddenUpdateTimer,this._hiddenUpdate()},250))}setActive(_e){const et=_e==null?void 0:_e.userId,tt=this.activeId;if(tt!==et){if(this.activeId=et,tt){const rt=this._parts[tt];if(rt)for(const nt of Object.keys(rt))rt[nt].makeActive(!1)}if(et){const rt=this._parts[et];if(rt)for(const nt of Object.keys(rt))rt[nt].makeActive(!0)}this.currentIsOthersAccessible=_e==null?void 0:_e.getProps().isOthersAccessible,this.hiddenUpdate()}}focus(_e,et,tt){const rt=RootAPI.getTabsterContext(this._tabster,_e),nt=rt==null?void 0:rt.modalizer;if(nt){this.setActive(nt);const ot=nt.getProps(),it=nt.getElement();if(it){if(et===void 0&&(et=ot.isNoFocusFirst),!et&&this._tabster.keyboardNavigation.isNavigatingWithKeyboard()&&this._tabster.focusedElement.focusFirst({container:it})||(tt===void 0&&(tt=ot.isNoFocusDefault),!tt&&this._tabster.focusedElement.focusDefault(it)))return!0;this._tabster.focusedElement.resetFocus(it)}}return!1}acceptElement(_e,et){var tt;const rt=et.modalizerUserId,nt=(tt=et.currentCtx)===null||tt===void 0?void 0:tt.modalizer;if(rt)for(const it of this.activeElements){const st=it.get();if(st&&(_e.contains(st)||st===_e))return NodeFilter.FILTER_SKIP}const ot=rt===(nt==null?void 0:nt.userId)||!rt&&(nt!=null&&nt.getProps().isAlwaysAccessible)?void 0:NodeFilter.FILTER_SKIP;return ot!==void 0&&(et.skippedFocusable=!0),ot}_hiddenUpdate(){var _e;const et=this._tabster,tt=et.getWindow().document.body,rt=this.activeId,nt=this._parts,ot=[],it=[],st=this._alwaysAccessibleSelector,lt=st?Array.from(tt.querySelectorAll(st)):[],ut=[];for(const bt of Object.keys(nt)){const _t=nt[bt];for(const xt of Object.keys(_t)){const yt=_t[xt],Et=yt.getElement(),Tt=yt.getProps().isAlwaysAccessible;Et&&(bt===rt?(ut.push(Et),this.currentIsOthersAccessible||ot.push(Et)):Tt?lt.push(Et):it.push(Et))}}const ct=this._augMap,dt=ot.length>0?[...ot,...lt]:void 0,ft=[],pt=new WeakMap,gt=(bt,_t)=>{var xt;const yt=bt.tagName;if(yt==="SCRIPT"||yt==="STYLE")return;let Et=!1;ct.has(bt)?_t?Et=!0:(ct.delete(bt),augmentAttribute(et,bt,_ariaHidden)):_t&&!(!((xt=this._accessibleCheck)===null||xt===void 0)&&xt.call(this,bt,ut))&&augmentAttribute(et,bt,_ariaHidden,"true")&&(ct.set(bt,!0),Et=!0),Et&&(ft.push(new WeakHTMLElement(et.getWindow,bt)),pt.set(bt,!0))},mt=bt=>{for(let _t=bt.firstElementChild;_t;_t=_t.nextElementSibling){let xt=!1,yt=!1;if(dt){for(const Et of dt){if(_t===Et){xt=!0;break}if(_t.contains(Et)){yt=!0;break}}yt?mt(_t):xt||gt(_t,!0)}else gt(_t,!1)}};dt||lt.forEach(bt=>gt(bt,!1)),it.forEach(bt=>gt(bt,!0)),tt&&mt(tt),(_e=this._aug)===null||_e===void 0||_e.map(bt=>bt.get()).forEach(bt=>{bt&&!pt.get(bt)&>(bt,!1)}),this._aug=ft,this._augMap=pt}_restoreModalizerFocus(_e){const et=_e==null?void 0:_e.ownerDocument;if(!_e||!et)return;const tt=RootAPI.getTabsterContext(this._tabster,_e),rt=tt==null?void 0:tt.modalizer,nt=this.activeId;if(!rt&&!nt||rt&&nt===rt.userId)return;const ot=tt==null?void 0:tt.root.getElement();if(ot){let it=this._tabster.focusable.findFirst({container:ot,useActiveModalizer:!0});if(it){if(_e.compareDocumentPosition(it)&document.DOCUMENT_POSITION_PRECEDING&&(it=this._tabster.focusable.findLast({container:ot,useActiveModalizer:!0}),!it))throw new Error("Something went wrong.");this._tabster.focusedElement.focus(it);return}}_e.blur()}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. - */const _inputSelector=["input","textarea","*[contenteditable]"].join(", ");class MoverDummyManager extends DummyInputManager{constructor(_e,et,tt,rt){super(et,_e,DummyInputManagerPriorities.Mover,rt),this._onFocusDummyInput=nt=>{var ot,it;const st=this._element.get(),lt=nt.input;if(st&<){const ut=RootAPI.getTabsterContext(this._tabster,st);let ct;ut&&(ct=(ot=FocusedElementState.findNextTabbable(this._tabster,ut,void 0,lt,void 0,!nt.isFirst,!0))===null||ot===void 0?void 0:ot.element);const dt=(it=this._getMemorized())===null||it===void 0?void 0:it.get();dt&&(ct=dt),ct&&nativeFocus(ct)}},this._tabster=et,this._getMemorized=tt,this._setHandlers(this._onFocusDummyInput)}}const _moverUpdateAdd=1,_moverUpdateAttr=2,_moverUpdateRemove=3;class Mover extends TabsterPart{constructor(_e,et,tt,rt,nt){var ot;super(_e,et,rt),this._visible={},this._onIntersection=st=>{for(const lt of st){const ut=lt.target,ct=getElementUId(this._win,ut);let dt,ft=this._fullyVisible;if(lt.intersectionRatio>=.25?(dt=lt.intersectionRatio>=.75?Visibilities.Visible:Visibilities.PartiallyVisible,dt===Visibilities.Visible&&(ft=ct)):dt=Visibilities.Invisible,this._visible[ct]!==dt){dt===void 0?(delete this._visible[ct],ft===ct&&delete this._fullyVisible):(this._visible[ct]=dt,this._fullyVisible=ft);const pt=this.getState(ut);pt&&triggerEvent(ut,MoverEventName,pt)}}},this._win=_e.getWindow,this.visibilityTolerance=(ot=rt.visibilityTolerance)!==null&&ot!==void 0?ot:.8,(this._props.trackState||this._props.visibilityAware)&&(this._intersectionObserver=new IntersectionObserver(this._onIntersection,{threshold:[0,.25,.5,.75,1]}),this._observeState()),this._onDispose=tt;const it=()=>rt.memorizeCurrent?this._current:void 0;_e.controlTab||(this.dummyManager=new MoverDummyManager(this._element,_e,it,nt))}dispose(){var _e;this._onDispose(this),this._intersectionObserver&&(this._intersectionObserver.disconnect(),delete this._intersectionObserver),delete this._current,delete this._fullyVisible,delete this._allElements,delete this._updateQueue,this._unobserve&&(this._unobserve(),delete this._unobserve);const et=this._win();this._setCurrentTimer&&(et.clearTimeout(this._setCurrentTimer),delete this._setCurrentTimer),this._updateTimer&&(et.clearTimeout(this._updateTimer),delete this._updateTimer),(_e=this.dummyManager)===null||_e===void 0||_e.dispose(),delete this.dummyManager}setCurrent(_e){_e?this._current=new WeakHTMLElement(this._win,_e):this._current=void 0,(this._props.trackState||this._props.visibilityAware)&&!this._setCurrentTimer&&(this._setCurrentTimer=this._win().setTimeout(()=>{var et;delete this._setCurrentTimer;const tt=[];this._current!==this._prevCurrent&&(tt.push(this._current),tt.push(this._prevCurrent),this._prevCurrent=this._current);for(const rt of tt){const nt=rt==null?void 0:rt.get();if(nt&&((et=this._allElements)===null||et===void 0?void 0:et.get(nt))===this){const ot=this._props;if(nt&&(ot.visibilityAware!==void 0||ot.trackState)){const it=this.getState(nt);it&&triggerEvent(nt,MoverEventName,it)}}}}))}getCurrent(){var _e;return((_e=this._current)===null||_e===void 0?void 0:_e.get())||null}findNextTabbable(_e,et,tt,rt){var nt;const ot=this.getElement(),it=ot&&((nt=_e==null?void 0:_e.__tabsterDummyContainer)===null||nt===void 0?void 0:nt.get())===ot;if(!ot)return null;let st=null,lt=!1,ut;if(this._props.tabbable||it||_e&&!ot.contains(_e)){const ct={currentElement:_e,referenceElement:et,container:ot,ignoreAccessibility:rt,useActiveModalizer:!0},dt={};st=this._tabster.focusable[tt?"findPrev":"findNext"](ct,dt),lt=!!dt.outOfDOMOrder,ut=dt.uncontrolled}return{element:st,uncontrolled:ut,outOfDOMOrder:lt}}acceptElement(_e,et){var tt,rt,nt;if(!FocusedElementState.isTabbing)return!((tt=et.currentCtx)===null||tt===void 0)&&tt.excludedFromMover?NodeFilter.FILTER_REJECT:void 0;const{memorizeCurrent:ot,visibilityAware:it,hasDefault:st=!0}=this._props,lt=this.getElement();if(lt&&(ot||it||st)&&(!lt.contains(et.from)||((rt=et.from.__tabsterDummyContainer)===null||rt===void 0?void 0:rt.get())===lt)){let ut;if(ot){const ct=(nt=this._current)===null||nt===void 0?void 0:nt.get();ct&&et.acceptCondition(ct)&&(ut=ct)}if(!ut&&st&&(ut=this._tabster.focusable.findDefault({container:lt,useActiveModalizer:!0})),!ut&&it&&(ut=this._tabster.focusable.findElement({container:lt,useActiveModalizer:!0,isBackward:et.isBackward,acceptCondition:ct=>{var dt;const ft=getElementUId(this._win,ct),pt=this._visible[ft];return lt!==ct&&!!(!((dt=this._allElements)===null||dt===void 0)&&dt.get(ct))&&et.acceptCondition(ct)&&(pt===Visibilities.Visible||pt===Visibilities.PartiallyVisible&&(it===Visibilities.PartiallyVisible||!this._fullyVisible))}})),ut)return et.found=!0,et.foundElement=ut,et.rejectElementsFrom=lt,et.skippedFocusable=!0,NodeFilter.FILTER_ACCEPT}}_observeState(){const _e=this.getElement();if(this._unobserve||!_e||typeof MutationObserver>"u")return;const et=this._win(),tt=this._allElements=new WeakMap,rt=this._tabster.focusable;let nt=this._updateQueue=[];const ot=new MutationObserver(ft=>{for(const pt of ft){const gt=pt.target,vt=pt.removedNodes,bt=pt.addedNodes;if(pt.type==="attributes")pt.attributeName==="tabindex"&&nt.push({element:gt,type:_moverUpdateAttr});else{for(let _t=0;_t{var gt,vt;const bt=tt.get(ft);bt&&pt&&((gt=this._intersectionObserver)===null||gt===void 0||gt.unobserve(ft),tt.delete(ft)),!bt&&!pt&&(tt.set(ft,this),(vt=this._intersectionObserver)===null||vt===void 0||vt.observe(ft))},st=ft=>{const pt=rt.isFocusable(ft);tt.get(ft)?pt||it(ft,!0):pt&&it(ft)},lt=ft=>{const{mover:pt}=dt(ft);if(pt&&pt!==this)if(pt.getElement()===ft&&rt.isFocusable(ft))it(ft);else return;const gt=createElementTreeWalker(et.document,ft,vt=>{const{mover:bt,groupper:_t}=dt(vt);if(bt&&bt!==this)return NodeFilter.FILTER_REJECT;const xt=_t==null?void 0:_t.getFirst(!0);return _t&&_t.getElement()!==vt&&xt&&xt!==vt?NodeFilter.FILTER_REJECT:(rt.isFocusable(vt)&&it(vt),NodeFilter.FILTER_SKIP)});if(gt)for(gt.currentNode=ft;gt.nextNode(););},ut=ft=>{tt.get(ft)&&it(ft,!0);for(let gt=ft.firstElementChild;gt;gt=gt.nextElementSibling)ut(gt)},ct=()=>{!this._updateTimer&&nt.length&&(this._updateTimer=et.setTimeout(()=>{delete this._updateTimer;for(const{element:ft,type:pt}of nt)switch(pt){case _moverUpdateAttr:st(ft);break;case _moverUpdateAdd:lt(ft);break;case _moverUpdateRemove:ut(ft);break}nt=this._updateQueue=[]},0))},dt=ft=>{const pt={};for(let gt=ft;gt;gt=gt.parentElement){const vt=getTabsterOnElement(this._tabster,gt);if(vt&&(vt.groupper&&!pt.groupper&&(pt.groupper=vt.groupper),vt.mover)){pt.mover=vt.mover;break}}return pt};nt.push({element:_e,type:_moverUpdateAdd}),ct(),ot.observe(_e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["tabindex"]}),this._unobserve=()=>{ot.disconnect()}}getState(_e){const et=getElementUId(this._win,_e);if(et in this._visible){const tt=this._visible[et]||Visibilities.Invisible;return{isCurrent:this._current?this._current.get()===_e:void 0,visibility:tt}}}}function getDistance(j,_e,et,tt,rt,nt,ot,it){const st=et{this._win().addEventListener("keydown",this._onKeyDown,!0),this._tabster.focusedElement.subscribe(this._onFocus)},this._onMoverDispose=tt=>{delete this._movers[tt.id]},this._onFocus=tt=>{var rt;let nt=tt,ot=tt;for(let it=tt==null?void 0:tt.parentElement;it;it=it.parentElement){const st=(rt=getTabsterOnElement(this._tabster,it))===null||rt===void 0?void 0:rt.mover;st&&(st.setCurrent(ot),nt=void 0),!nt&&this._tabster.focusable.isFocusable(it)&&(nt=ot=it)}},this._onKeyDown=async tt=>{var rt,nt,ot,it;this._ignoredInputTimer&&(this._win().clearTimeout(this._ignoredInputTimer),delete this._ignoredInputTimer),(rt=this._ignoredInputResolve)===null||rt===void 0||rt.call(this,!1);let st=tt.keyCode;if(tt.ctrlKey||tt.altKey||tt.shiftKey||tt.metaKey)return;switch(st){case Keys.Down:case Keys.Right:case Keys.Up:case Keys.Left:case Keys.PageDown:case Keys.PageUp:case Keys.Home:case Keys.End:break;default:return}const lt=this._tabster,ut=lt.focusedElement.getFocusedElement();if(!ut||await this._isIgnoredInput(ut,st))return;const ct=RootAPI.getTabsterContext(lt,ut,{checkRtl:!0});if(!ct||!ct.mover||ct.excludedFromMover||ct.ignoreKeydown(tt))return;const dt=ct.mover,ft=dt.getElement();if(ct.groupperBeforeMover){const Ot=ct.groupper;if(Ot&&!Ot.isActive(!0)){for(let Nt=(nt=Ot.getElement())===null||nt===void 0?void 0:nt.parentElement;Nt&&Nt!==ft;Nt=Nt.parentElement)if(!((it=(ot=getTabsterOnElement(lt,Nt))===null||ot===void 0?void 0:ot.groupper)===null||it===void 0)&&it.isActive(!0))return}else return}if(!ft)return;const pt=lt.focusable,gt=dt.getProps(),vt=gt.direction||MoverDirections.Both,bt=vt===MoverDirections.Both,_t=bt||vt===MoverDirections.Vertical,xt=bt||vt===MoverDirections.Horizontal,yt=vt===MoverDirections.GridLinear,Et=yt||vt===MoverDirections.Grid,St=gt.cyclic;let $t,At,wt,Ct=0,It=0;if(Et&&(wt=ut.getBoundingClientRect(),Ct=Math.ceil(wt.left),It=Math.floor(wt.right)),ct.rtl&&(st===Keys.Right?st=Keys.Left:st===Keys.Left&&(st=Keys.Right)),st===Keys.Down&&_t||st===Keys.Right&&(xt||Et))if($t=pt.findNext({currentElement:ut,container:ft,useActiveModalizer:!0}),$t&&Et){const Ot=Math.ceil($t.getBoundingClientRect().left);!yt&&It>Ot&&($t=void 0)}else!$t&&St&&($t=pt.findFirst({container:ft,useActiveModalizer:!0}));else if(st===Keys.Up&&_t||st===Keys.Left&&(xt||Et))if($t=pt.findPrev({currentElement:ut,container:ft,useActiveModalizer:!0}),$t&&Et){const Ot=Math.floor($t.getBoundingClientRect().right);!yt&&Ot>Ct&&($t=void 0)}else!$t&&St&&($t=pt.findLast({container:ft,useActiveModalizer:!0}));else if(st===Keys.Home)Et?pt.findElement({container:ft,currentElement:ut,useActiveModalizer:!0,isBackward:!0,acceptCondition:Ot=>{var Nt;if(!pt.isFocusable(Ot))return!1;const Pt=Math.ceil((Nt=Ot.getBoundingClientRect().left)!==null&&Nt!==void 0?Nt:0);return Ot!==ut&&Ct<=Pt?!0:($t=Ot,!1)}}):$t=pt.findFirst({container:ft,useActiveModalizer:!0});else if(st===Keys.End)Et?pt.findElement({container:ft,currentElement:ut,useActiveModalizer:!0,acceptCondition:Ot=>{var Nt;if(!pt.isFocusable(Ot))return!1;const Pt=Math.ceil((Nt=Ot.getBoundingClientRect().left)!==null&&Nt!==void 0?Nt:0);return Ot!==ut&&Ct>=Pt?!0:($t=Ot,!1)}}):$t=pt.findLast({container:ft,useActiveModalizer:!0});else if(st===Keys.PageUp){if(pt.findElement({currentElement:ut,container:ft,useActiveModalizer:!0,isBackward:!0,acceptCondition:Ot=>pt.isFocusable(Ot)?isElementVerticallyVisibleInContainer(this._win,Ot,dt.visibilityTolerance)?($t=Ot,!1):!0:!1}),Et&&$t){const Ot=Math.ceil($t.getBoundingClientRect().left);pt.findElement({currentElement:$t,container:ft,useActiveModalizer:!0,acceptCondition:Nt=>{if(!pt.isFocusable(Nt))return!1;const Pt=Math.ceil(Nt.getBoundingClientRect().left);return Ct=Pt?!0:($t=Nt,!1)}})}At=!1}else if(st===Keys.PageDown){if(pt.findElement({currentElement:ut,container:ft,useActiveModalizer:!0,acceptCondition:Ot=>pt.isFocusable(Ot)?isElementVerticallyVisibleInContainer(this._win,Ot,dt.visibilityTolerance)?($t=Ot,!1):!0:!1}),Et&&$t){const Ot=Math.ceil($t.getBoundingClientRect().left);pt.findElement({currentElement:$t,container:ft,useActiveModalizer:!0,isBackward:!0,acceptCondition:Nt=>{if(!pt.isFocusable(Nt))return!1;const Pt=Math.ceil(Nt.getBoundingClientRect().left);return Ct>Pt||Ot<=Pt?!0:($t=Nt,!1)}})}At=!0}else if(Et){const Ot=st===Keys.Up,Nt=Ct,Pt=Math.ceil(wt.top),Mt=It,Rt=Math.floor(wt.bottom);let Lt,jt,Gt=0;pt.findAll({container:ft,currentElement:ut,isBackward:Ot,onElement:Vt=>{const Yt=Vt.getBoundingClientRect(),Xt=Math.ceil(Yt.left),rr=Math.ceil(Yt.top),cr=Math.floor(Yt.right),vr=Math.floor(Yt.bottom);if(Ot&&Ptrr)return!0;const Tr=Math.ceil(Math.min(Mt,cr))-Math.floor(Math.max(Nt,Xt)),gr=Math.ceil(Math.min(Mt-Nt,cr-Xt));if(Tr>0&&gr>=Tr){const Er=Tr/gr;Er>Gt&&(Lt=Vt,Gt=Er)}else if(Gt===0){const Er=getDistance(Nt,Pt,Mt,Rt,Xt,rr,cr,vr);(jt===void 0||Er0)return!1;return!0}}),$t=Lt}$t&&triggerMoveFocusEvent({by:"mover",owner:ft,next:$t,relatedEvent:tt})&&(At!==void 0&&scrollIntoView$2(this._win,$t,At),tt.preventDefault(),tt.stopImmediatePropagation(),nativeFocus($t))},this._tabster=_e,this._win=et,this._movers={},_e.queueInit(this._init)}dispose(){var _e;const et=this._win();this._tabster.focusedElement.unsubscribe(this._onFocus),(_e=this._ignoredInputResolve)===null||_e===void 0||_e.call(this,!1),this._ignoredInputTimer&&(et.clearTimeout(this._ignoredInputTimer),delete this._ignoredInputTimer),et.removeEventListener("keydown",this._onKeyDown,!0),Object.keys(this._movers).forEach(tt=>{this._movers[tt]&&(this._movers[tt].dispose(),delete this._movers[tt])})}createMover(_e,et,tt){const rt=new Mover(this._tabster,_e,this._onMoverDispose,et,tt);return this._movers[rt.id]=rt,rt}async _isIgnoredInput(_e,et){var tt;if(_e.getAttribute("aria-expanded")==="true"&&_e.hasAttribute("aria-activedescendant"))return!0;if(matchesSelector(_e,_inputSelector)){let rt=0,nt=0,ot=0,it;if(_e.tagName==="INPUT"||_e.tagName==="TEXTAREA"){const st=_e.type;if(ot=(_e.value||"").length,st==="email"||st==="number"){if(ot){const ut=(tt=_e.ownerDocument.defaultView)===null||tt===void 0?void 0:tt.getSelection();if(ut){const ct=ut.toString().length,dt=et===Keys.Left||et===Keys.Up;if(ut.modify("extend",dt?"backward":"forward","character"),ct!==ut.toString().length)return ut.modify("extend",dt?"forward":"backward","character"),!0;ot=0}}}else{const ut=_e.selectionStart;if(ut===null)return st==="hidden";rt=ut||0,nt=_e.selectionEnd||0}}else _e.contentEditable==="true"&&(it=new(getPromise(this._win))(st=>{this._ignoredInputResolve=pt=>{delete this._ignoredInputResolve,st(pt)};const lt=this._win();this._ignoredInputTimer&<.clearTimeout(this._ignoredInputTimer);const{anchorNode:ut,focusNode:ct,anchorOffset:dt,focusOffset:ft}=lt.getSelection()||{};this._ignoredInputTimer=lt.setTimeout(()=>{var pt,gt,vt;delete this._ignoredInputTimer;const{anchorNode:bt,focusNode:_t,anchorOffset:xt,focusOffset:yt}=lt.getSelection()||{};if(bt!==ut||_t!==ct||xt!==dt||yt!==ft){(pt=this._ignoredInputResolve)===null||pt===void 0||pt.call(this,!1);return}if(rt=xt||0,nt=yt||0,ot=((gt=_e.textContent)===null||gt===void 0?void 0:gt.length)||0,bt&&_t&&_e.contains(bt)&&_e.contains(_t)&&bt!==_e){let Et=!1;const St=$t=>{if($t===bt)Et=!0;else if($t===_t)return!0;const At=$t.textContent;if(At&&!$t.firstChild){const Ct=At.length;Et?_t!==bt&&(nt+=Ct):(rt+=Ct,nt+=Ct)}let wt=!1;for(let Ct=$t.firstChild;Ct&&!wt;Ct=Ct.nextSibling)wt=St(Ct);return wt};St(_e)}(vt=this._ignoredInputResolve)===null||vt===void 0||vt.call(this,!0)},0)}));if(it&&!await it||rt!==nt||rt>0&&(et===Keys.Left||et===Keys.Up||et===Keys.Home)||rt{var ot,it;const st=this._element.get(),lt=nt.input;if(st&<){const ut=RootAPI.getTabsterContext(this._tabster,st);let ct;ut&&(ct=(ot=FocusedElementState.findNextTabbable(this._tabster,ut,void 0,lt,void 0,!nt.isFirst,!0))===null||ot===void 0?void 0:ot.element);const dt=(it=this._getMemorized())===null||it===void 0?void 0:it.get();dt&&(ct=dt),ct&&nativeFocus(ct)}},this._tabster=et,this._getMemorized=tt,this._setHandlers(this._onFocusDummyInput)}}const _moverUpdateAdd=1,_moverUpdateAttr=2,_moverUpdateRemove=3;class Mover extends TabsterPart{constructor(_e,et,tt,rt,nt){var ot;super(_e,et,rt),this._visible={},this._onIntersection=st=>{for(const lt of st){const ut=lt.target,ct=getElementUId(this._win,ut);let dt,ft=this._fullyVisible;if(lt.intersectionRatio>=.25?(dt=lt.intersectionRatio>=.75?Visibilities.Visible:Visibilities.PartiallyVisible,dt===Visibilities.Visible&&(ft=ct)):dt=Visibilities.Invisible,this._visible[ct]!==dt){dt===void 0?(delete this._visible[ct],ft===ct&&delete this._fullyVisible):(this._visible[ct]=dt,this._fullyVisible=ft);const pt=this.getState(ut);pt&&triggerEvent(ut,MoverEventName,pt)}}},this._win=_e.getWindow,this.visibilityTolerance=(ot=rt.visibilityTolerance)!==null&&ot!==void 0?ot:.8,(this._props.trackState||this._props.visibilityAware)&&(this._intersectionObserver=new IntersectionObserver(this._onIntersection,{threshold:[0,.25,.5,.75,1]}),this._observeState()),this._onDispose=tt;const it=()=>rt.memorizeCurrent?this._current:void 0;_e.controlTab||(this.dummyManager=new MoverDummyManager(this._element,_e,it,nt))}dispose(){var _e;this._onDispose(this),this._intersectionObserver&&(this._intersectionObserver.disconnect(),delete this._intersectionObserver),delete this._current,delete this._fullyVisible,delete this._allElements,delete this._updateQueue,this._unobserve&&(this._unobserve(),delete this._unobserve);const et=this._win();this._setCurrentTimer&&(et.clearTimeout(this._setCurrentTimer),delete this._setCurrentTimer),this._updateTimer&&(et.clearTimeout(this._updateTimer),delete this._updateTimer),(_e=this.dummyManager)===null||_e===void 0||_e.dispose(),delete this.dummyManager}setCurrent(_e){_e?this._current=new WeakHTMLElement(this._win,_e):this._current=void 0,(this._props.trackState||this._props.visibilityAware)&&!this._setCurrentTimer&&(this._setCurrentTimer=this._win().setTimeout(()=>{var et;delete this._setCurrentTimer;const tt=[];this._current!==this._prevCurrent&&(tt.push(this._current),tt.push(this._prevCurrent),this._prevCurrent=this._current);for(const rt of tt){const nt=rt==null?void 0:rt.get();if(nt&&((et=this._allElements)===null||et===void 0?void 0:et.get(nt))===this){const ot=this._props;if(nt&&(ot.visibilityAware!==void 0||ot.trackState)){const it=this.getState(nt);it&&triggerEvent(nt,MoverEventName,it)}}}}))}getCurrent(){var _e;return((_e=this._current)===null||_e===void 0?void 0:_e.get())||null}findNextTabbable(_e,et,tt,rt){var nt;const ot=this.getElement(),it=ot&&((nt=_e==null?void 0:_e.__tabsterDummyContainer)===null||nt===void 0?void 0:nt.get())===ot;if(!ot)return null;let st=null,lt=!1,ut;if(this._props.tabbable||it||_e&&!ot.contains(_e)){const ct={currentElement:_e,referenceElement:et,container:ot,ignoreAccessibility:rt,useActiveModalizer:!0},dt={};st=this._tabster.focusable[tt?"findPrev":"findNext"](ct,dt),lt=!!dt.outOfDOMOrder,ut=dt.uncontrolled}return{element:st,uncontrolled:ut,outOfDOMOrder:lt}}acceptElement(_e,et){var tt,rt,nt;if(!FocusedElementState.isTabbing)return!((tt=et.currentCtx)===null||tt===void 0)&&tt.excludedFromMover?NodeFilter.FILTER_REJECT:void 0;const{memorizeCurrent:ot,visibilityAware:it,hasDefault:st=!0}=this._props,lt=this.getElement();if(lt&&(ot||it||st)&&(!lt.contains(et.from)||((rt=et.from.__tabsterDummyContainer)===null||rt===void 0?void 0:rt.get())===lt)){let ut;if(ot){const ct=(nt=this._current)===null||nt===void 0?void 0:nt.get();ct&&et.acceptCondition(ct)&&(ut=ct)}if(!ut&&st&&(ut=this._tabster.focusable.findDefault({container:lt,useActiveModalizer:!0})),!ut&&it&&(ut=this._tabster.focusable.findElement({container:lt,useActiveModalizer:!0,isBackward:et.isBackward,acceptCondition:ct=>{var dt;const ft=getElementUId(this._win,ct),pt=this._visible[ft];return lt!==ct&&!!(!((dt=this._allElements)===null||dt===void 0)&&dt.get(ct))&&et.acceptCondition(ct)&&(pt===Visibilities.Visible||pt===Visibilities.PartiallyVisible&&(it===Visibilities.PartiallyVisible||!this._fullyVisible))}})),ut)return et.found=!0,et.foundElement=ut,et.rejectElementsFrom=lt,et.skippedFocusable=!0,NodeFilter.FILTER_ACCEPT}}_observeState(){const _e=this.getElement();if(this._unobserve||!_e||typeof MutationObserver>"u")return;const et=this._win(),tt=this._allElements=new WeakMap,rt=this._tabster.focusable;let nt=this._updateQueue=[];const ot=new MutationObserver(ft=>{for(const pt of ft){const gt=pt.target,mt=pt.removedNodes,bt=pt.addedNodes;if(pt.type==="attributes")pt.attributeName==="tabindex"&&nt.push({element:gt,type:_moverUpdateAttr});else{for(let _t=0;_t{var gt,mt;const bt=tt.get(ft);bt&&pt&&((gt=this._intersectionObserver)===null||gt===void 0||gt.unobserve(ft),tt.delete(ft)),!bt&&!pt&&(tt.set(ft,this),(mt=this._intersectionObserver)===null||mt===void 0||mt.observe(ft))},st=ft=>{const pt=rt.isFocusable(ft);tt.get(ft)?pt||it(ft,!0):pt&&it(ft)},lt=ft=>{const{mover:pt}=dt(ft);if(pt&&pt!==this)if(pt.getElement()===ft&&rt.isFocusable(ft))it(ft);else return;const gt=createElementTreeWalker(et.document,ft,mt=>{const{mover:bt,groupper:_t}=dt(mt);if(bt&&bt!==this)return NodeFilter.FILTER_REJECT;const xt=_t==null?void 0:_t.getFirst(!0);return _t&&_t.getElement()!==mt&&xt&&xt!==mt?NodeFilter.FILTER_REJECT:(rt.isFocusable(mt)&&it(mt),NodeFilter.FILTER_SKIP)});if(gt)for(gt.currentNode=ft;gt.nextNode(););},ut=ft=>{tt.get(ft)&&it(ft,!0);for(let gt=ft.firstElementChild;gt;gt=gt.nextElementSibling)ut(gt)},ct=()=>{!this._updateTimer&&nt.length&&(this._updateTimer=et.setTimeout(()=>{delete this._updateTimer;for(const{element:ft,type:pt}of nt)switch(pt){case _moverUpdateAttr:st(ft);break;case _moverUpdateAdd:lt(ft);break;case _moverUpdateRemove:ut(ft);break}nt=this._updateQueue=[]},0))},dt=ft=>{const pt={};for(let gt=ft;gt;gt=gt.parentElement){const mt=getTabsterOnElement(this._tabster,gt);if(mt&&(mt.groupper&&!pt.groupper&&(pt.groupper=mt.groupper),mt.mover)){pt.mover=mt.mover;break}}return pt};nt.push({element:_e,type:_moverUpdateAdd}),ct(),ot.observe(_e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["tabindex"]}),this._unobserve=()=>{ot.disconnect()}}getState(_e){const et=getElementUId(this._win,_e);if(et in this._visible){const tt=this._visible[et]||Visibilities.Invisible;return{isCurrent:this._current?this._current.get()===_e:void 0,visibility:tt}}}}function getDistance(j,_e,et,tt,rt,nt,ot,it){const st=et{this._win().addEventListener("keydown",this._onKeyDown,!0),this._tabster.focusedElement.subscribe(this._onFocus)},this._onMoverDispose=tt=>{delete this._movers[tt.id]},this._onFocus=tt=>{var rt;let nt=tt,ot=tt;for(let it=tt==null?void 0:tt.parentElement;it;it=it.parentElement){const st=(rt=getTabsterOnElement(this._tabster,it))===null||rt===void 0?void 0:rt.mover;st&&(st.setCurrent(ot),nt=void 0),!nt&&this._tabster.focusable.isFocusable(it)&&(nt=ot=it)}},this._onKeyDown=async tt=>{var rt,nt,ot,it;this._ignoredInputTimer&&(this._win().clearTimeout(this._ignoredInputTimer),delete this._ignoredInputTimer),(rt=this._ignoredInputResolve)===null||rt===void 0||rt.call(this,!1);let st=tt.keyCode;if(tt.ctrlKey||tt.altKey||tt.shiftKey||tt.metaKey)return;switch(st){case Keys.Down:case Keys.Right:case Keys.Up:case Keys.Left:case Keys.PageDown:case Keys.PageUp:case Keys.Home:case Keys.End:break;default:return}const lt=this._tabster,ut=lt.focusedElement.getFocusedElement();if(!ut||await this._isIgnoredInput(ut,st))return;const ct=RootAPI.getTabsterContext(lt,ut,{checkRtl:!0});if(!ct||!ct.mover||ct.excludedFromMover||ct.ignoreKeydown(tt))return;const dt=ct.mover,ft=dt.getElement();if(ct.groupperBeforeMover){const Nt=ct.groupper;if(Nt&&!Nt.isActive(!0)){for(let Ot=(nt=Nt.getElement())===null||nt===void 0?void 0:nt.parentElement;Ot&&Ot!==ft;Ot=Ot.parentElement)if(!((it=(ot=getTabsterOnElement(lt,Ot))===null||ot===void 0?void 0:ot.groupper)===null||it===void 0)&&it.isActive(!0))return}else return}if(!ft)return;const pt=lt.focusable,gt=dt.getProps(),mt=gt.direction||MoverDirections.Both,bt=mt===MoverDirections.Both,_t=bt||mt===MoverDirections.Vertical,xt=bt||mt===MoverDirections.Horizontal,yt=mt===MoverDirections.GridLinear,Et=yt||mt===MoverDirections.Grid,St=gt.cyclic;let Tt,kt,$t,Ct=0,It=0;if(Et&&($t=ut.getBoundingClientRect(),Ct=Math.ceil($t.left),It=Math.floor($t.right)),ct.rtl&&(st===Keys.Right?st=Keys.Left:st===Keys.Left&&(st=Keys.Right)),st===Keys.Down&&_t||st===Keys.Right&&(xt||Et))if(Tt=pt.findNext({currentElement:ut,container:ft,useActiveModalizer:!0}),Tt&&Et){const Nt=Math.ceil(Tt.getBoundingClientRect().left);!yt&&It>Nt&&(Tt=void 0)}else!Tt&&St&&(Tt=pt.findFirst({container:ft,useActiveModalizer:!0}));else if(st===Keys.Up&&_t||st===Keys.Left&&(xt||Et))if(Tt=pt.findPrev({currentElement:ut,container:ft,useActiveModalizer:!0}),Tt&&Et){const Nt=Math.floor(Tt.getBoundingClientRect().right);!yt&&Nt>Ct&&(Tt=void 0)}else!Tt&&St&&(Tt=pt.findLast({container:ft,useActiveModalizer:!0}));else if(st===Keys.Home)Et?pt.findElement({container:ft,currentElement:ut,useActiveModalizer:!0,isBackward:!0,acceptCondition:Nt=>{var Ot;if(!pt.isFocusable(Nt))return!1;const jt=Math.ceil((Ot=Nt.getBoundingClientRect().left)!==null&&Ot!==void 0?Ot:0);return Nt!==ut&&Ct<=jt?!0:(Tt=Nt,!1)}}):Tt=pt.findFirst({container:ft,useActiveModalizer:!0});else if(st===Keys.End)Et?pt.findElement({container:ft,currentElement:ut,useActiveModalizer:!0,acceptCondition:Nt=>{var Ot;if(!pt.isFocusable(Nt))return!1;const jt=Math.ceil((Ot=Nt.getBoundingClientRect().left)!==null&&Ot!==void 0?Ot:0);return Nt!==ut&&Ct>=jt?!0:(Tt=Nt,!1)}}):Tt=pt.findLast({container:ft,useActiveModalizer:!0});else if(st===Keys.PageUp){if(pt.findElement({currentElement:ut,container:ft,useActiveModalizer:!0,isBackward:!0,acceptCondition:Nt=>pt.isFocusable(Nt)?isElementVerticallyVisibleInContainer(this._win,Nt,dt.visibilityTolerance)?(Tt=Nt,!1):!0:!1}),Et&&Tt){const Nt=Math.ceil(Tt.getBoundingClientRect().left);pt.findElement({currentElement:Tt,container:ft,useActiveModalizer:!0,acceptCondition:Ot=>{if(!pt.isFocusable(Ot))return!1;const jt=Math.ceil(Ot.getBoundingClientRect().left);return Ct=jt?!0:(Tt=Ot,!1)}})}kt=!1}else if(st===Keys.PageDown){if(pt.findElement({currentElement:ut,container:ft,useActiveModalizer:!0,acceptCondition:Nt=>pt.isFocusable(Nt)?isElementVerticallyVisibleInContainer(this._win,Nt,dt.visibilityTolerance)?(Tt=Nt,!1):!0:!1}),Et&&Tt){const Nt=Math.ceil(Tt.getBoundingClientRect().left);pt.findElement({currentElement:Tt,container:ft,useActiveModalizer:!0,isBackward:!0,acceptCondition:Ot=>{if(!pt.isFocusable(Ot))return!1;const jt=Math.ceil(Ot.getBoundingClientRect().left);return Ct>jt||Nt<=jt?!0:(Tt=Ot,!1)}})}kt=!0}else if(Et){const Nt=st===Keys.Up,Ot=Ct,jt=Math.ceil($t.top),Mt=It,Rt=Math.floor($t.bottom);let Lt,Pt,Gt=0;pt.findAll({container:ft,currentElement:ut,isBackward:Nt,onElement:qt=>{const Yt=qt.getBoundingClientRect(),Xt=Math.ceil(Yt.left),tr=Math.ceil(Yt.top),cr=Math.floor(Yt.right),mr=Math.floor(Yt.bottom);if(Nt&&jttr)return!0;const Er=Math.ceil(Math.min(Mt,cr))-Math.floor(Math.max(Ot,Xt)),hr=Math.ceil(Math.min(Mt-Ot,cr-Xt));if(Er>0&&hr>=Er){const _r=Er/hr;_r>Gt&&(Lt=qt,Gt=_r)}else if(Gt===0){const _r=getDistance(Ot,jt,Mt,Rt,Xt,tr,cr,mr);(Pt===void 0||_r0)return!1;return!0}}),Tt=Lt}Tt&&triggerMoveFocusEvent({by:"mover",owner:ft,next:Tt,relatedEvent:tt})&&(kt!==void 0&&scrollIntoView$2(this._win,Tt,kt),tt.preventDefault(),tt.stopImmediatePropagation(),nativeFocus(Tt))},this._tabster=_e,this._win=et,this._movers={},_e.queueInit(this._init)}dispose(){var _e;const et=this._win();this._tabster.focusedElement.unsubscribe(this._onFocus),(_e=this._ignoredInputResolve)===null||_e===void 0||_e.call(this,!1),this._ignoredInputTimer&&(et.clearTimeout(this._ignoredInputTimer),delete this._ignoredInputTimer),et.removeEventListener("keydown",this._onKeyDown,!0),Object.keys(this._movers).forEach(tt=>{this._movers[tt]&&(this._movers[tt].dispose(),delete this._movers[tt])})}createMover(_e,et,tt){const rt=new Mover(this._tabster,_e,this._onMoverDispose,et,tt);return this._movers[rt.id]=rt,rt}async _isIgnoredInput(_e,et){var tt;if(_e.getAttribute("aria-expanded")==="true"&&_e.hasAttribute("aria-activedescendant"))return!0;if(matchesSelector(_e,_inputSelector)){let rt=0,nt=0,ot=0,it;if(_e.tagName==="INPUT"||_e.tagName==="TEXTAREA"){const st=_e.type;if(ot=(_e.value||"").length,st==="email"||st==="number"){if(ot){const ut=(tt=_e.ownerDocument.defaultView)===null||tt===void 0?void 0:tt.getSelection();if(ut){const ct=ut.toString().length,dt=et===Keys.Left||et===Keys.Up;if(ut.modify("extend",dt?"backward":"forward","character"),ct!==ut.toString().length)return ut.modify("extend",dt?"forward":"backward","character"),!0;ot=0}}}else{const ut=_e.selectionStart;if(ut===null)return st==="hidden";rt=ut||0,nt=_e.selectionEnd||0}}else _e.contentEditable==="true"&&(it=new(getPromise(this._win))(st=>{this._ignoredInputResolve=pt=>{delete this._ignoredInputResolve,st(pt)};const lt=this._win();this._ignoredInputTimer&<.clearTimeout(this._ignoredInputTimer);const{anchorNode:ut,focusNode:ct,anchorOffset:dt,focusOffset:ft}=lt.getSelection()||{};this._ignoredInputTimer=lt.setTimeout(()=>{var pt,gt,mt;delete this._ignoredInputTimer;const{anchorNode:bt,focusNode:_t,anchorOffset:xt,focusOffset:yt}=lt.getSelection()||{};if(bt!==ut||_t!==ct||xt!==dt||yt!==ft){(pt=this._ignoredInputResolve)===null||pt===void 0||pt.call(this,!1);return}if(rt=xt||0,nt=yt||0,ot=((gt=_e.textContent)===null||gt===void 0?void 0:gt.length)||0,bt&&_t&&_e.contains(bt)&&_e.contains(_t)&&bt!==_e){let Et=!1;const St=Tt=>{if(Tt===bt)Et=!0;else if(Tt===_t)return!0;const kt=Tt.textContent;if(kt&&!Tt.firstChild){const Ct=kt.length;Et?_t!==bt&&(nt+=Ct):(rt+=Ct,nt+=Ct)}let $t=!1;for(let Ct=Tt.firstChild;Ct&&!$t;Ct=Ct.nextSibling)$t=St(Ct);return $t};St(_e)}(mt=this._ignoredInputResolve)===null||mt===void 0||mt.call(this,!0)},0)}));if(it&&!await it||rt!==nt||rt>0&&(et===Keys.Left||et===Keys.Up||et===Keys.Home)||rt"u")return()=>{};const rt=_e.getWindow;let nt;const ot=ut=>{var ct,dt,ft,pt,gt;for(const vt of ut){const bt=vt.target,_t=vt.removedNodes,xt=vt.addedNodes;if(vt.type==="attributes")vt.attributeName===TabsterAttributeName&&et(_e,bt);else{for(let yt=0;yt<_t.length;yt++)it(_t[yt],!0),(dt=(ct=_e._dummyObserver).domChanged)===null||dt===void 0||dt.call(ct,bt);for(let yt=0;ytst(ft,ct));if(dt)for(;dt.nextNode(););}function st(ut,ct){var dt;if(!ut.getAttribute)return NodeFilter.FILTER_SKIP;const ft=ut.__tabsterElementUID;return ft&&nt&&(ct?delete nt[ft]:(dt=nt[ft])!==null&&dt!==void 0||(nt[ft]=new WeakHTMLElement(rt,ut))),(getTabsterOnElement(_e,ut)||ut.hasAttribute(TabsterAttributeName))&&et(_e,ut,ct),NodeFilter.FILTER_SKIP}const lt=new MutationObserver(ot);return tt&&it(rt().document.body),lt.observe(j,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[TabsterAttributeName]}),()=>{lt.disconnect()}}/*! + */function observeMutations(j,_e,et,tt){if(typeof MutationObserver>"u")return()=>{};const rt=_e.getWindow;let nt;const ot=ut=>{var ct,dt,ft,pt,gt;for(const mt of ut){const bt=mt.target,_t=mt.removedNodes,xt=mt.addedNodes;if(mt.type==="attributes")mt.attributeName===TabsterAttributeName&&et(_e,bt);else{for(let yt=0;yt<_t.length;yt++)it(_t[yt],!0),(dt=(ct=_e._dummyObserver).domChanged)===null||dt===void 0||dt.call(ct,bt);for(let yt=0;ytst(ft,ct));if(dt)for(;dt.nextNode(););}function st(ut,ct){var dt;if(!ut.getAttribute)return NodeFilter.FILTER_SKIP;const ft=ut.__tabsterElementUID;return ft&&nt&&(ct?delete nt[ft]:(dt=nt[ft])!==null&&dt!==void 0||(nt[ft]=new WeakHTMLElement(rt,ut))),(getTabsterOnElement(_e,ut)||ut.hasAttribute(TabsterAttributeName))&&et(_e,ut,ct),NodeFilter.FILTER_SKIP}const lt=new MutationObserver(ot);return tt&&it(rt().document.body),lt.observe(j,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[TabsterAttributeName]}),()=>{lt.disconnect()}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */class UncontrolledAPI{constructor(_e){this._isUncontrolledCompletely=_e}isUncontrolledCompletely(_e,et){var tt;const rt=(tt=this._isUncontrolledCompletely)===null||tt===void 0?void 0:tt.call(this,_e,et);return rt===void 0?et:rt}}/*! @@ -100,7 +100,7 @@ Error generating stack: `+nt.message+` */const EVENT_NAME="restorer:restorefocus",HISOTRY_DEPTH=10;class Restorer extends TabsterPart{constructor(_e,et,tt){var rt;if(super(_e,et,tt),this._hasFocus=!1,this._onFocusOut=nt=>{var ot;const it=(ot=this._element)===null||ot===void 0?void 0:ot.get();it&&nt.relatedTarget===null&&it.dispatchEvent(new Event(EVENT_NAME,{bubbles:!0})),it&&!it.contains(nt.relatedTarget)&&(this._hasFocus=!1)},this._onFocusIn=()=>{this._hasFocus=!0},this._props.type===RestorerTypes.Source){const nt=(rt=this._element)===null||rt===void 0?void 0:rt.get();nt==null||nt.addEventListener("focusout",this._onFocusOut),nt==null||nt.addEventListener("focusin",this._onFocusIn)}}dispose(){var _e,et;if(this._props.type===RestorerTypes.Source){const tt=(_e=this._element)===null||_e===void 0?void 0:_e.get();tt==null||tt.removeEventListener("focusout",this._onFocusOut),tt==null||tt.removeEventListener("focusin",this._onFocusIn),this._hasFocus&&((et=this._tabster.getWindow().document.body)===null||et===void 0||et.dispatchEvent(new Event(EVENT_NAME,{bubbles:!0})))}}}class RestorerAPI{constructor(_e){this._history=[],this._restoreFocusTimeout=0,this._onRestoreFocus=et=>{const tt=this._getWindow();this._restoreFocusTimeout&&tt.clearTimeout(this._restoreFocusTimeout),this._restoreFocusTimeout=tt.setTimeout(()=>this._restoreFocus(et.target))},this._onFocusIn=et=>{var tt;if(!et)return;const rt=getTabsterOnElement(this._tabster,et);((tt=rt==null?void 0:rt.restorer)===null||tt===void 0?void 0:tt.getProps().type)===RestorerTypes.Target&&this._addToHistory(et)},this._restoreFocus=et=>{var tt,rt,nt;const ot=this._getWindow().document;if(ot.activeElement!==ot.body||!this._keyboardNavState.isNavigatingWithKeyboard()&&ot.body.contains(et))return;let it=this._history.pop();for(;it&&!ot.body.contains((rt=(tt=it.get())===null||tt===void 0?void 0:tt.parentElement)!==null&&rt!==void 0?rt:null);)it=this._history.pop();(nt=it==null?void 0:it.get())===null||nt===void 0||nt.focus()},this._tabster=_e,this._getWindow=_e.getWindow,this._getWindow().addEventListener(EVENT_NAME,this._onRestoreFocus),this._keyboardNavState=_e.keyboardNavigation,this._focusedElementState=_e.focusedElement,this._focusedElementState.subscribe(this._onFocusIn)}dispose(){const _e=this._getWindow();this._focusedElementState.unsubscribe(this._onFocusIn),_e.removeEventListener(EVENT_NAME,this._onRestoreFocus),this._restoreFocusTimeout&&_e.clearTimeout(this._restoreFocusTimeout)}_addToHistory(_e){var et;((et=this._history[this._history.length-1])===null||et===void 0?void 0:et.get())!==_e&&(this._history.length>HISOTRY_DEPTH&&this._history.shift(),this._history.push(new WeakHTMLElement(this._getWindow,_e)))}createRestorer(_e,et){const tt=new Restorer(this._tabster,_e,et);return et.type===RestorerTypes.Target&&_e.ownerDocument.activeElement===_e&&this._addToHistory(_e),tt}}/*! * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. - */class Tabster{constructor(_e){this.keyboardNavigation=_e.keyboardNavigation,this.focusedElement=_e.focusedElement,this.focusable=_e.focusable,this.root=_e.root,this.uncontrolled=_e.uncontrolled,this.core=_e}}class TabsterCore{constructor(_e,et){var tt,rt;this._forgetMemorizedElements=[],this._wrappers=new Set,this._initQueue=[],this._version="5.2.0",this._noop=!1,this.getWindow=()=>{if(!this._win)throw new Error("Using disposed Tabster.");return this._win},this._storage=createWeakMap(_e),this._win=_e;const nt=this.getWindow;this.keyboardNavigation=new KeyboardNavigationState(nt),this.focusedElement=new FocusedElementState(this,nt),this.focusable=new FocusableAPI(this),this.root=new RootAPI(this,et==null?void 0:et.autoRoot),this.uncontrolled=new UncontrolledAPI((et==null?void 0:et.checkUncontrolledCompletely)||(et==null?void 0:et.checkUncontrolledTrappingFocus)),this.controlTab=(tt=et==null?void 0:et.controlTab)!==null&&tt!==void 0?tt:!0,this.rootDummyInputs=!!(et!=null&&et.rootDummyInputs),this._dummyObserver=new DummyInputObserver(nt),this.getParent=(rt=et==null?void 0:et.getParent)!==null&&rt!==void 0?rt:ot=>ot.parentElement,this.internal={stopObserver:()=>{this._unobserve&&(this._unobserve(),delete this._unobserve)},resumeObserver:ot=>{if(!this._unobserve){const it=nt().document;this._unobserve=observeMutations(it,this,updateTabsterByAttribute,ot)}}},startFakeWeakRefsCleanup(nt),this.queueInit(()=>{this.internal.resumeObserver(!0)})}_mergeProps(_e){var et;_e&&(this.getParent=(et=_e.getParent)!==null&&et!==void 0?et:this.getParent)}createTabster(_e,et){const tt=new Tabster(this);return _e||this._wrappers.add(tt),this._mergeProps(et),tt}disposeTabster(_e,et){et?this._wrappers.clear():this._wrappers.delete(_e),this._wrappers.size===0&&this.dispose()}dispose(){var _e,et,tt,rt,nt,ot,it,st;this.internal.stopObserver();const lt=this._win;lt==null||lt.clearTimeout(this._initTimer),delete this._initTimer,this._initQueue=[],this._forgetMemorizedElements=[],lt&&this._forgetMemorizedTimer&&(lt.clearTimeout(this._forgetMemorizedTimer),delete this._forgetMemorizedTimer),(_e=this.outline)===null||_e===void 0||_e.dispose(),(et=this.crossOrigin)===null||et===void 0||et.dispose(),(tt=this.deloser)===null||tt===void 0||tt.dispose(),(rt=this.groupper)===null||rt===void 0||rt.dispose(),(nt=this.mover)===null||nt===void 0||nt.dispose(),(ot=this.modalizer)===null||ot===void 0||ot.dispose(),(it=this.observedElement)===null||it===void 0||it.dispose(),(st=this.restorer)===null||st===void 0||st.dispose(),this.keyboardNavigation.dispose(),this.focusable.dispose(),this.focusedElement.dispose(),this.root.dispose(),this._dummyObserver.dispose(),stopFakeWeakRefsCleanupAndClearStorage(this.getWindow),clearElementCache(this.getWindow),this._storage=new WeakMap,this._wrappers.clear(),lt&&(disposeInstanceContext(lt),delete lt.__tabsterInstance,delete this._win)}storageEntry(_e,et){const tt=this._storage;let rt=tt.get(_e);return rt?et===!1&&Object.keys(rt).length===0&&tt.delete(_e):et===!0&&(rt={},tt.set(_e,rt)),rt}forceCleanup(){this._win&&(this._forgetMemorizedElements.push(this._win.document.body),!this._forgetMemorizedTimer&&(this._forgetMemorizedTimer=this._win.setTimeout(()=>{delete this._forgetMemorizedTimer;for(let _e=this._forgetMemorizedElements.shift();_e;_e=this._forgetMemorizedElements.shift())clearElementCache(this.getWindow,_e),FocusedElementState.forgetMemorized(this.focusedElement,_e)},0),cleanupFakeWeakRefs(this.getWindow,!0)))}queueInit(_e){var et;this._win&&(this._initQueue.push(_e),this._initTimer||(this._initTimer=(et=this._win)===null||et===void 0?void 0:et.setTimeout(()=>{delete this._initTimer,this.drainInitQueue()},0)))}drainInitQueue(){if(!this._win)return;const _e=this._initQueue;this._initQueue=[],_e.forEach(et=>et())}}function createTabster(j,_e){let et=getCurrentTabster(j);return et?et.createTabster(!1,_e):(et=new TabsterCore(j,_e),j.__tabsterInstance=et,et.createTabster())}function getGroupper(j){const _e=j.core;return _e.groupper||(_e.groupper=new GroupperAPI(_e,_e.getWindow)),_e.groupper}function getMover(j){const _e=j.core;return _e.mover||(_e.mover=new MoverAPI(_e,_e.getWindow)),_e.mover}function getModalizer(j,_e,et){const tt=j.core;return tt.modalizer||(tt.modalizer=new ModalizerAPI(tt,_e,et)),tt.modalizer}function getRestorer(j){const _e=j.core;return _e.restorer||(_e.restorer=new RestorerAPI(_e)),_e.restorer}function disposeTabster(j,_e){j.core.disposeTabster(j,_e)}function getCurrentTabster(j){return j.__tabsterInstance}const useTabster=()=>{const{targetDocument:j}=useFluent(),_e=(j==null?void 0:j.defaultView)||void 0,et=reactExports.useMemo(()=>_e?createTabster(_e,{autoRoot:{},controlTab:!1,getParent:getParent$1,checkUncontrolledTrappingFocus:tt=>{var rt;return!!(!((rt=tt.firstElementChild)===null||rt===void 0)&&rt.hasAttribute("data-is-focus-trap-zone-bumper"))}}):null,[_e]);return useIsomorphicLayoutEffect$1(()=>()=>{et&&disposeTabster(et)},[et]),et},useTabsterAttributes=j=>(useTabster(),getTabsterAttribute(j)),useArrowNavigationGroup=(j={})=>{const{circular:_e,axis:et,memorizeCurrent:tt,tabbable:rt,ignoreDefaultKeydown:nt,unstable_hasDefault:ot}=j,it=useTabster();return it&&getMover(it),useTabsterAttributes({mover:{cyclic:!!_e,direction:axisToMoverDirection(et??"vertical"),memorizeCurrent:tt,tabbable:rt,hasDefault:ot},...nt&&{focusable:{ignoreKeydown:nt}}})};function axisToMoverDirection(j){switch(j){case"horizontal":return Types.MoverDirections.Horizontal;case"grid":return Types.MoverDirections.Grid;case"grid-linear":return Types.MoverDirections.GridLinear;case"both":return Types.MoverDirections.Both;case"vertical":default:return Types.MoverDirections.Vertical}}const useFocusableGroup=j=>{const _e=useTabster();return _e&&getGroupper(_e),useTabsterAttributes({groupper:{tabbability:getTabbability(j==null?void 0:j.tabBehavior)},focusable:{ignoreKeydown:j==null?void 0:j.ignoreDefaultKeydown}})},getTabbability=j=>{switch(j){case"unlimited":return Types.GroupperTabbabilities.Unlimited;case"limited":return Types.GroupperTabbabilities.Limited;case"limited-trap-focus":return Types.GroupperTabbabilities.LimitedTrapFocus;default:return}},useFocusFinders=()=>{const j=useTabster(),{targetDocument:_e}=useFluent(),et=reactExports.useCallback((it,st)=>(j==null?void 0:j.focusable.findAll({container:it,acceptCondition:st}))||[],[j]),tt=reactExports.useCallback(it=>j==null?void 0:j.focusable.findFirst({container:it}),[j]),rt=reactExports.useCallback(it=>j==null?void 0:j.focusable.findLast({container:it}),[j]),nt=reactExports.useCallback((it,st={})=>{if(!j||!_e)return null;const{container:lt=_e.body}=st;return j.focusable.findNext({currentElement:it,container:lt})},[j,_e]),ot=reactExports.useCallback((it,st={})=>{if(!j||!_e)return null;const{container:lt=_e.body}=st;return j.focusable.findPrev({currentElement:it,container:lt})},[j,_e]);return{findAllFocusable:et,findFirstFocusable:tt,findLastFocusable:rt,findNextFocusable:nt,findPrevFocusable:ot}},FOCUS_VISIBLE_ATTR="data-fui-focus-visible",FOCUS_WITHIN_ATTR="data-fui-focus-within";function applyFocusVisiblePolyfill(j,_e){if(alreadyInScope(j))return()=>{};const et={current:void 0},tt=createKeyborg(_e);function rt(st){tt.isNavigatingWithKeyboard()&&isHTMLElement$4(st)&&(et.current=st,st.setAttribute(FOCUS_VISIBLE_ATTR,""))}function nt(){et.current&&(et.current.removeAttribute(FOCUS_VISIBLE_ATTR),et.current=void 0)}tt.subscribe(st=>{st||nt()});const ot=st=>{nt();const lt=st.composedPath()[0];rt(lt)},it=st=>{(!st.relatedTarget||isHTMLElement$4(st.relatedTarget)&&!j.contains(st.relatedTarget))&&nt()};return j.addEventListener(KEYBORG_FOCUSIN,ot),j.addEventListener("focusout",it),j.focusVisible=!0,rt(_e.document.activeElement),()=>{nt(),j.removeEventListener(KEYBORG_FOCUSIN,ot),j.removeEventListener("focusout",it),delete j.focusVisible,disposeKeyborg(tt)}}function alreadyInScope(j){return j?j.focusVisible?!0:alreadyInScope(j==null?void 0:j.parentElement):!1}function useFocusVisible(j={}){const _e=useFluent(),et=reactExports.useRef(null);var tt;const rt=(tt=j.targetDocument)!==null&&tt!==void 0?tt:_e.targetDocument;return reactExports.useEffect(()=>{if(rt!=null&&rt.defaultView&&et.current)return applyFocusVisiblePolyfill(et.current,rt.defaultView)},[et,rt]),et}function applyFocusWithinPolyfill(j,_e){const et=createKeyborg(_e);et.subscribe(nt=>{nt||removeFocusWithinClass(j)});const tt=nt=>{et.isNavigatingWithKeyboard()&&isHTMLElement$3(nt.target)&&applyFocusWithinClass(j)},rt=nt=>{(!nt.relatedTarget||isHTMLElement$3(nt.relatedTarget)&&!j.contains(nt.relatedTarget))&&removeFocusWithinClass(j)};return j.addEventListener(KEYBORG_FOCUSIN,tt),j.addEventListener("focusout",rt),()=>{j.removeEventListener(KEYBORG_FOCUSIN,tt),j.removeEventListener("focusout",rt),disposeKeyborg(et)}}function applyFocusWithinClass(j){j.setAttribute(FOCUS_WITHIN_ATTR,"")}function removeFocusWithinClass(j){j.removeAttribute(FOCUS_WITHIN_ATTR)}function isHTMLElement$3(j){return j?!!(j&&typeof j=="object"&&"classList"in j&&"contains"in j):!1}function useFocusWithin(){const{targetDocument:j}=useFluent(),_e=reactExports.useRef(null);return reactExports.useEffect(()=>{if(j!=null&&j.defaultView&&_e.current)return applyFocusWithinPolyfill(_e.current,j.defaultView)},[_e,j]),_e}const useModalAttributes=(j={})=>{const{trapFocus:_e,alwaysFocusable:et,legacyTrapFocus:tt}=j,rt=useTabster();rt&&(getModalizer(rt),getRestorer(rt));const nt=useId$1("modal-",j.id),ot=useTabsterAttributes({restorer:{type:Types.RestorerTypes.Source},..._e&&{modalizer:{id:nt,isOthersAccessible:!_e,isAlwaysAccessible:et,isTrapped:tt&&_e}}}),it=useTabsterAttributes({restorer:{type:Types.RestorerTypes.Target}});return{modalAttributes:ot,triggerAttributes:it}},grey={2:"#050505",4:"#0a0a0a",6:"#0f0f0f",8:"#141414",10:"#1a1a1a",12:"#1f1f1f",14:"#242424",16:"#292929",18:"#2e2e2e",20:"#333333",22:"#383838",24:"#3d3d3d",26:"#424242",28:"#474747",30:"#4d4d4d",32:"#525252",34:"#575757",36:"#5c5c5c",38:"#616161",40:"#666666",42:"#6b6b6b",44:"#707070",46:"#757575",48:"#7a7a7a",50:"#808080",52:"#858585",54:"#8a8a8a",56:"#8f8f8f",58:"#949494",60:"#999999",62:"#9e9e9e",64:"#a3a3a3",66:"#a8a8a8",68:"#adadad",70:"#b3b3b3",72:"#b8b8b8",74:"#bdbdbd",76:"#c2c2c2",78:"#c7c7c7",80:"#cccccc",82:"#d1d1d1",84:"#d6d6d6",86:"#dbdbdb",88:"#e0e0e0",90:"#e6e6e6",92:"#ebebeb",94:"#f0f0f0",96:"#f5f5f5",98:"#fafafa"},whiteAlpha={5:"rgba(255, 255, 255, 0.05)",10:"rgba(255, 255, 255, 0.1)",20:"rgba(255, 255, 255, 0.2)",30:"rgba(255, 255, 255, 0.3)",40:"rgba(255, 255, 255, 0.4)",50:"rgba(255, 255, 255, 0.5)",60:"rgba(255, 255, 255, 0.6)",70:"rgba(255, 255, 255, 0.7)",80:"rgba(255, 255, 255, 0.8)",90:"rgba(255, 255, 255, 0.9)"},blackAlpha={5:"rgba(0, 0, 0, 0.05)",10:"rgba(0, 0, 0, 0.1)",20:"rgba(0, 0, 0, 0.2)",30:"rgba(0, 0, 0, 0.3)",40:"rgba(0, 0, 0, 0.4)",50:"rgba(0, 0, 0, 0.5)",60:"rgba(0, 0, 0, 0.6)",70:"rgba(0, 0, 0, 0.7)",80:"rgba(0, 0, 0, 0.8)",90:"rgba(0, 0, 0, 0.9)"},grey10Alpha={5:"rgba(26, 26, 26, 0.05)",10:"rgba(26, 26, 26, 0.1)",20:"rgba(26, 26, 26, 0.2)",30:"rgba(26, 26, 26, 0.3)",40:"rgba(26, 26, 26, 0.4)",50:"rgba(26, 26, 26, 0.5)",60:"rgba(26, 26, 26, 0.6)",70:"rgba(26, 26, 26, 0.7)",80:"rgba(26, 26, 26, 0.8)",90:"rgba(26, 26, 26, 0.9)"},grey12Alpha={5:"rgba(31, 31, 31, 0.05)",10:"rgba(31, 31, 31, 0.1)",20:"rgba(31, 31, 31, 0.2)",30:"rgba(31, 31, 31, 0.3)",40:"rgba(31, 31, 31, 0.4)",50:"rgba(31, 31, 31, 0.5)",60:"rgba(31, 31, 31, 0.6)",70:"rgba(31, 31, 31, 0.7)",80:"rgba(31, 31, 31, 0.8)",90:"rgba(31, 31, 31, 0.9)"},grey14Alpha={5:"rgba(36, 36, 36, 0.05)",10:"rgba(36, 36, 36, 0.1)",20:"rgba(36, 36, 36, 0.2)",30:"rgba(36, 36, 36, 0.3)",40:"rgba(36, 36, 36, 0.4)",50:"rgba(36, 36, 36, 0.5)",60:"rgba(36, 36, 36, 0.6)",70:"rgba(36, 36, 36, 0.7)",80:"rgba(36, 36, 36, 0.8)",90:"rgba(36, 36, 36, 0.9)"},white="#ffffff",black="#000000",darkRed={shade50:"#130204",shade40:"#230308",shade30:"#420610",shade20:"#590815",shade10:"#690a19",primary:"#750b1c",tint10:"#861b2c",tint20:"#962f3f",tint30:"#ac4f5e",tint40:"#d69ca5",tint50:"#e9c7cd",tint60:"#f9f0f2"},cranberry={shade50:"#200205",shade40:"#3b0509",shade30:"#6e0811",shade20:"#960b18",shade10:"#b10e1c",primary:"#c50f1f",tint10:"#cc2635",tint20:"#d33f4c",tint30:"#dc626d",tint40:"#eeacb2",tint50:"#f6d1d5",tint60:"#fdf3f4"},red={shade50:"#210809",shade40:"#3f1011",shade30:"#751d1f",shade20:"#9f282b",shade10:"#bc2f32",primary:"#d13438",tint10:"#d7494c",tint20:"#dc5e62",tint30:"#e37d80",tint40:"#f1bbbc",tint50:"#f8dadb",tint60:"#fdf6f6"},darkOrange={shade50:"#230900",shade40:"#411200",shade30:"#7a2101",shade20:"#a62d01",shade10:"#c43501",primary:"#da3b01",tint10:"#de501c",tint20:"#e36537",tint30:"#e9835e",tint40:"#f4bfab",tint50:"#f9dcd1",tint60:"#fdf6f3"},pumpkin={shade50:"#200d03",shade40:"#3d1805",shade30:"#712d09",shade20:"#9a3d0c",shade10:"#b6480e",primary:"#ca5010",tint10:"#d06228",tint20:"#d77440",tint30:"#df8e64",tint40:"#efc4ad",tint50:"#f7dfd2",tint60:"#fdf7f4"},orange={shade50:"#271002",shade40:"#4a1e04",shade30:"#8a3707",shade20:"#bc4b09",shade10:"#de590b",primary:"#f7630c",tint10:"#f87528",tint20:"#f98845",tint30:"#faa06b",tint40:"#fdcfb4",tint50:"#fee5d7",tint60:"#fff9f5"},peach={shade50:"#291600",shade40:"#4d2a00",shade30:"#8f4e00",shade20:"#c26a00",shade10:"#e67e00",primary:"#ff8c00",tint10:"#ff9a1f",tint20:"#ffa83d",tint30:"#ffba66",tint40:"#ffddb3",tint50:"#ffedd6",tint60:"#fffaf5"},marigold={shade50:"#251a00",shade40:"#463100",shade30:"#835b00",shade20:"#b27c00",shade10:"#d39300",primary:"#eaa300",tint10:"#edad1c",tint20:"#efb839",tint30:"#f2c661",tint40:"#f9e2ae",tint50:"#fcefd3",tint60:"#fefbf4"},yellow={primary:"#fde300",shade10:"#e4cc00",shade20:"#c0ad00",shade30:"#817400",shade40:"#4c4400",shade50:"#282400",tint10:"#fde61e",tint20:"#fdea3d",tint30:"#feee66",tint40:"#fef7b2",tint50:"#fffad6",tint60:"#fffef5"},gold={shade50:"#1f1900",shade40:"#3a2f00",shade30:"#6c5700",shade20:"#937700",shade10:"#ae8c00",primary:"#c19c00",tint10:"#c8a718",tint20:"#d0b232",tint30:"#dac157",tint40:"#ecdfa5",tint50:"#f5eece",tint60:"#fdfbf2"},brass={shade50:"#181202",shade40:"#2e2103",shade30:"#553e06",shade20:"#745408",shade10:"#89640a",primary:"#986f0b",tint10:"#a47d1e",tint20:"#b18c34",tint30:"#c1a256",tint40:"#e0cea2",tint50:"#efe4cb",tint60:"#fbf8f2"},brown={shade50:"#170e07",shade40:"#2b1a0e",shade30:"#50301a",shade20:"#6c4123",shade10:"#804d29",primary:"#8e562e",tint10:"#9c663f",tint20:"#a97652",tint30:"#bb8f6f",tint40:"#ddc3b0",tint50:"#edded3",tint60:"#faf7f4"},forest={shade50:"#0c1501",shade40:"#162702",shade30:"#294903",shade20:"#376304",shade10:"#427505",primary:"#498205",tint10:"#599116",tint20:"#6ba02b",tint30:"#85b44c",tint40:"#bdd99b",tint50:"#dbebc7",tint60:"#f6faf0"},seafoam={shade50:"#002111",shade40:"#003d20",shade30:"#00723b",shade20:"#009b51",shade10:"#00b85f",primary:"#00cc6a",tint10:"#19d279",tint20:"#34d889",tint30:"#5ae0a0",tint40:"#a8f0cd",tint50:"#cff7e4",tint60:"#f3fdf8"},lightGreen={shade50:"#031a02",shade40:"#063004",shade30:"#0b5a08",shade20:"#0e7a0b",shade10:"#11910d",primary:"#13a10e",tint10:"#27ac22",tint20:"#3db838",tint30:"#5ec75a",tint40:"#a7e3a5",tint50:"#cef0cd",tint60:"#f2fbf2"},green={shade50:"#031403",shade40:"#052505",shade30:"#094509",shade20:"#0c5e0c",shade10:"#0e700e",primary:"#107c10",tint10:"#218c21",tint20:"#359b35",tint30:"#54b054",tint40:"#9fd89f",tint50:"#c9eac9",tint60:"#f1faf1"},darkGreen={shade50:"#021102",shade40:"#032003",shade30:"#063b06",shade20:"#085108",shade10:"#0a5f0a",primary:"#0b6a0b",tint10:"#1a7c1a",tint20:"#2d8e2d",tint30:"#4da64d",tint40:"#9ad29a",tint50:"#c6e7c6",tint60:"#f0f9f0"},lightTeal={shade50:"#001d1f",shade40:"#00373a",shade30:"#00666d",shade20:"#008b94",shade10:"#00a5af",primary:"#00b7c3",tint10:"#18bfca",tint20:"#32c8d1",tint30:"#58d3db",tint40:"#a6e9ed",tint50:"#cef3f5",tint60:"#f2fcfd"},teal={shade50:"#001516",shade40:"#012728",shade30:"#02494c",shade20:"#026467",shade10:"#037679",primary:"#038387",tint10:"#159195",tint20:"#2aa0a4",tint30:"#4cb4b7",tint40:"#9bd9db",tint50:"#c7ebec",tint60:"#f0fafa"},steel={shade50:"#000f12",shade40:"#001b22",shade30:"#00333f",shade20:"#004555",shade10:"#005265",primary:"#005b70",tint10:"#0f6c81",tint20:"#237d92",tint30:"#4496a9",tint40:"#94c8d4",tint50:"#c3e1e8",tint60:"#eff7f9"},blue={shade50:"#001322",shade40:"#002440",shade30:"#004377",shade20:"#005ba1",shade10:"#006cbf",primary:"#0078d4",tint10:"#1a86d9",tint20:"#3595de",tint30:"#5caae5",tint40:"#a9d3f2",tint50:"#d0e7f8",tint60:"#f3f9fd"},royalBlue={shade50:"#000c16",shade40:"#00172a",shade30:"#002c4e",shade20:"#003b6a",shade10:"#00467e",primary:"#004e8c",tint10:"#125e9a",tint20:"#286fa8",tint30:"#4a89ba",tint40:"#9abfdc",tint50:"#c7dced",tint60:"#f0f6fa"},cornflower={shade50:"#0d1126",shade40:"#182047",shade30:"#2c3c85",shade20:"#3c51b4",shade10:"#4760d5",primary:"#4f6bed",tint10:"#637cef",tint20:"#778df1",tint30:"#93a4f4",tint40:"#c8d1fa",tint50:"#e1e6fc",tint60:"#f7f9fe"},navy={shade50:"#00061d",shade40:"#000c36",shade30:"#001665",shade20:"#001e89",shade10:"#0023a2",primary:"#0027b4",tint10:"#173bbd",tint20:"#3050c6",tint30:"#546fd2",tint40:"#a3b2e8",tint50:"#ccd5f3",tint60:"#f2f4fc"},lavender={shade50:"#120f25",shade40:"#221d46",shade30:"#3f3682",shade20:"#5649b0",shade10:"#6656d1",primary:"#7160e8",tint10:"#8172eb",tint20:"#9184ee",tint30:"#a79cf1",tint40:"#d2ccf8",tint50:"#e7e4fb",tint60:"#f9f8fe"},purple={shade50:"#0f0717",shade40:"#1c0e2b",shade30:"#341a51",shade20:"#46236e",shade10:"#532982",primary:"#5c2e91",tint10:"#6b3f9e",tint20:"#7c52ab",tint30:"#9470bd",tint40:"#c6b1de",tint50:"#e0d3ed",tint60:"#f7f4fb"},grape={shade50:"#160418",shade40:"#29072e",shade30:"#4c0d55",shade20:"#671174",shade10:"#7a1589",primary:"#881798",tint10:"#952aa4",tint20:"#a33fb1",tint30:"#b55fc1",tint40:"#d9a7e0",tint50:"#eaceef",tint60:"#faf2fb"},berry={shade50:"#1f091d",shade40:"#3a1136",shade30:"#6d2064",shade20:"#932b88",shade10:"#af33a1",primary:"#c239b3",tint10:"#c94cbc",tint20:"#d161c4",tint30:"#da7ed0",tint40:"#edbbe7",tint50:"#f5daf2",tint60:"#fdf5fc"},lilac={shade50:"#1c0b1f",shade40:"#35153a",shade30:"#63276d",shade20:"#863593",shade10:"#9f3faf",primary:"#b146c2",tint10:"#ba58c9",tint20:"#c36bd1",tint30:"#cf87da",tint40:"#e6bfed",tint50:"#f2dcf5",tint60:"#fcf6fd"},pink={shade50:"#24091b",shade40:"#441232",shade30:"#80215d",shade20:"#ad2d7e",shade10:"#cd3595",primary:"#e43ba6",tint10:"#e750b0",tint20:"#ea66ba",tint30:"#ef85c8",tint40:"#f7c0e3",tint50:"#fbddf0",tint60:"#fef6fb"},magenta={shade50:"#1f0013",shade40:"#390024",shade30:"#6b0043",shade20:"#91005a",shade10:"#ac006b",primary:"#bf0077",tint10:"#c71885",tint20:"#ce3293",tint30:"#d957a8",tint40:"#eca5d1",tint50:"#f5cee6",tint60:"#fcf2f9"},plum={shade50:"#13000c",shade40:"#240017",shade30:"#43002b",shade20:"#5a003b",shade10:"#6b0045",primary:"#77004d",tint10:"#87105d",tint20:"#98246f",tint30:"#ad4589",tint40:"#d696c0",tint50:"#e9c4dc",tint60:"#faf0f6"},beige={shade50:"#141313",shade40:"#252323",shade30:"#444241",shade20:"#5d5958",shade10:"#6e6968",primary:"#7a7574",tint10:"#8a8584",tint20:"#9a9594",tint30:"#afabaa",tint40:"#d7d4d4",tint50:"#eae8e8",tint60:"#faf9f9"},mink={shade50:"#0f0e0e",shade40:"#1c1b1a",shade30:"#343231",shade20:"#474443",shade10:"#54514f",primary:"#5d5a58",tint10:"#706d6b",tint20:"#84817e",tint30:"#9e9b99",tint40:"#cecccb",tint50:"#e5e4e3",tint60:"#f8f8f8"},platinum={shade50:"#111314",shade40:"#1f2426",shade30:"#3b4447",shade20:"#505c60",shade10:"#5f6d71",primary:"#69797e",tint10:"#79898d",tint20:"#89989d",tint30:"#a0adb2",tint40:"#cdd6d8",tint50:"#e4e9ea",tint60:"#f8f9fa"},anchor={shade50:"#090a0b",shade40:"#111315",shade30:"#202427",shade20:"#2b3135",shade10:"#333a3f",primary:"#394146",tint10:"#4d565c",tint20:"#626c72",tint30:"#808a90",tint40:"#bcc3c7",tint50:"#dbdfe1",tint60:"#f6f7f8"},statusSharedColors={red,green,darkOrange,yellow,berry,lightGreen,marigold},personaSharedColors={darkRed,cranberry,pumpkin,peach,gold,brass,brown,forest,seafoam,darkGreen,lightTeal,teal,steel,blue,royalBlue,cornflower,navy,lavender,purple,grape,lilac,pink,magenta,plum,beige,mink,platinum,anchor},mappedStatusColors={cranberry,green,orange},statusSharedColorNames=["red","green","darkOrange","yellow","berry","lightGreen","marigold"],personaSharedColorNames=["darkRed","cranberry","pumpkin","peach","gold","brass","brown","forest","seafoam","darkGreen","lightTeal","teal","steel","blue","royalBlue","cornflower","navy","lavender","purple","grape","lilac","pink","magenta","plum","beige","mink","platinum","anchor"],statusColorMapping={success:"green",warning:"orange",danger:"cranberry"},statusColorPaletteTokens$1=statusSharedColorNames.reduce((j,_e)=>{const et=_e.slice(0,1).toUpperCase()+_e.slice(1),tt={[`colorPalette${et}Background1`]:statusSharedColors[_e].tint60,[`colorPalette${et}Background2`]:statusSharedColors[_e].tint40,[`colorPalette${et}Background3`]:statusSharedColors[_e].primary,[`colorPalette${et}Foreground1`]:statusSharedColors[_e].shade10,[`colorPalette${et}Foreground2`]:statusSharedColors[_e].shade30,[`colorPalette${et}Foreground3`]:statusSharedColors[_e].primary,[`colorPalette${et}BorderActive`]:statusSharedColors[_e].primary,[`colorPalette${et}Border1`]:statusSharedColors[_e].tint40,[`colorPalette${et}Border2`]:statusSharedColors[_e].primary};return Object.assign(j,tt)},{});statusColorPaletteTokens$1.colorPaletteYellowForeground1=statusSharedColors.yellow.shade30;statusColorPaletteTokens$1.colorPaletteRedForegroundInverted=statusSharedColors.red.tint20;statusColorPaletteTokens$1.colorPaletteGreenForegroundInverted=statusSharedColors.green.tint20;statusColorPaletteTokens$1.colorPaletteYellowForegroundInverted=statusSharedColors.yellow.tint40;const personaColorPaletteTokens$1=personaSharedColorNames.reduce((j,_e)=>{const et=_e.slice(0,1).toUpperCase()+_e.slice(1),tt={[`colorPalette${et}Background2`]:personaSharedColors[_e].tint40,[`colorPalette${et}Foreground2`]:personaSharedColors[_e].shade30,[`colorPalette${et}BorderActive`]:personaSharedColors[_e].primary};return Object.assign(j,tt)},{}),colorPaletteTokens$1={...statusColorPaletteTokens$1,...personaColorPaletteTokens$1},colorStatusTokens$1=Object.entries(statusColorMapping).reduce((j,[_e,et])=>{const tt=_e.slice(0,1).toUpperCase()+_e.slice(1),rt={[`colorStatus${tt}Background1`]:mappedStatusColors[et].tint60,[`colorStatus${tt}Background2`]:mappedStatusColors[et].tint40,[`colorStatus${tt}Background3`]:mappedStatusColors[et].primary,[`colorStatus${tt}Foreground1`]:mappedStatusColors[et].shade10,[`colorStatus${tt}Foreground2`]:mappedStatusColors[et].shade30,[`colorStatus${tt}Foreground3`]:mappedStatusColors[et].primary,[`colorStatus${tt}ForegroundInverted`]:mappedStatusColors[et].tint30,[`colorStatus${tt}BorderActive`]:mappedStatusColors[et].primary,[`colorStatus${tt}Border1`]:mappedStatusColors[et].tint40,[`colorStatus${tt}Border2`]:mappedStatusColors[et].primary};return Object.assign(j,rt)},{});colorStatusTokens$1.colorStatusWarningForeground1=mappedStatusColors[statusColorMapping.warning].shade20;colorStatusTokens$1.colorStatusWarningForeground3=mappedStatusColors[statusColorMapping.warning].shade20;colorStatusTokens$1.colorStatusWarningBorder2=mappedStatusColors[statusColorMapping.warning].shade20;const generateColorTokens$1=j=>({colorNeutralForeground1:grey[14],colorNeutralForeground1Hover:grey[14],colorNeutralForeground1Pressed:grey[14],colorNeutralForeground1Selected:grey[14],colorNeutralForeground2:grey[26],colorNeutralForeground2Hover:grey[14],colorNeutralForeground2Pressed:grey[14],colorNeutralForeground2Selected:grey[14],colorNeutralForeground2BrandHover:j[80],colorNeutralForeground2BrandPressed:j[70],colorNeutralForeground2BrandSelected:j[80],colorNeutralForeground3:grey[38],colorNeutralForeground3Hover:grey[26],colorNeutralForeground3Pressed:grey[26],colorNeutralForeground3Selected:grey[26],colorNeutralForeground3BrandHover:j[80],colorNeutralForeground3BrandPressed:j[70],colorNeutralForeground3BrandSelected:j[80],colorNeutralForeground4:grey[44],colorNeutralForegroundDisabled:grey[74],colorNeutralForegroundInvertedDisabled:whiteAlpha[40],colorBrandForegroundLink:j[70],colorBrandForegroundLinkHover:j[60],colorBrandForegroundLinkPressed:j[40],colorBrandForegroundLinkSelected:j[70],colorNeutralForeground2Link:grey[26],colorNeutralForeground2LinkHover:grey[14],colorNeutralForeground2LinkPressed:grey[14],colorNeutralForeground2LinkSelected:grey[14],colorCompoundBrandForeground1:j[80],colorCompoundBrandForeground1Hover:j[70],colorCompoundBrandForeground1Pressed:j[60],colorBrandForeground1:j[80],colorBrandForeground2:j[70],colorBrandForeground2Hover:j[60],colorBrandForeground2Pressed:j[30],colorNeutralForeground1Static:grey[14],colorNeutralForegroundStaticInverted:white,colorNeutralForegroundInverted:white,colorNeutralForegroundInvertedHover:white,colorNeutralForegroundInvertedPressed:white,colorNeutralForegroundInvertedSelected:white,colorNeutralForegroundInverted2:white,colorNeutralForegroundOnBrand:white,colorNeutralForegroundInvertedLink:white,colorNeutralForegroundInvertedLinkHover:white,colorNeutralForegroundInvertedLinkPressed:white,colorNeutralForegroundInvertedLinkSelected:white,colorBrandForegroundInverted:j[100],colorBrandForegroundInvertedHover:j[110],colorBrandForegroundInvertedPressed:j[100],colorBrandForegroundOnLight:j[80],colorBrandForegroundOnLightHover:j[70],colorBrandForegroundOnLightPressed:j[50],colorBrandForegroundOnLightSelected:j[60],colorNeutralBackground1:white,colorNeutralBackground1Hover:grey[96],colorNeutralBackground1Pressed:grey[88],colorNeutralBackground1Selected:grey[92],colorNeutralBackground2:grey[98],colorNeutralBackground2Hover:grey[94],colorNeutralBackground2Pressed:grey[86],colorNeutralBackground2Selected:grey[90],colorNeutralBackground3:grey[96],colorNeutralBackground3Hover:grey[92],colorNeutralBackground3Pressed:grey[84],colorNeutralBackground3Selected:grey[88],colorNeutralBackground4:grey[94],colorNeutralBackground4Hover:grey[98],colorNeutralBackground4Pressed:grey[96],colorNeutralBackground4Selected:white,colorNeutralBackground5:grey[92],colorNeutralBackground5Hover:grey[96],colorNeutralBackground5Pressed:grey[94],colorNeutralBackground5Selected:grey[98],colorNeutralBackground6:grey[90],colorNeutralBackgroundInverted:grey[16],colorNeutralBackgroundStatic:grey[20],colorNeutralBackgroundAlpha:whiteAlpha[50],colorNeutralBackgroundAlpha2:whiteAlpha[80],colorSubtleBackground:"transparent",colorSubtleBackgroundHover:grey[96],colorSubtleBackgroundPressed:grey[88],colorSubtleBackgroundSelected:grey[92],colorSubtleBackgroundLightAlphaHover:whiteAlpha[70],colorSubtleBackgroundLightAlphaPressed:whiteAlpha[50],colorSubtleBackgroundLightAlphaSelected:"transparent",colorSubtleBackgroundInverted:"transparent",colorSubtleBackgroundInvertedHover:blackAlpha[10],colorSubtleBackgroundInvertedPressed:blackAlpha[30],colorSubtleBackgroundInvertedSelected:blackAlpha[20],colorTransparentBackground:"transparent",colorTransparentBackgroundHover:"transparent",colorTransparentBackgroundPressed:"transparent",colorTransparentBackgroundSelected:"transparent",colorNeutralBackgroundDisabled:grey[94],colorNeutralBackgroundInvertedDisabled:whiteAlpha[10],colorNeutralStencil1:grey[90],colorNeutralStencil2:grey[98],colorNeutralStencil1Alpha:blackAlpha[10],colorNeutralStencil2Alpha:blackAlpha[5],colorBackgroundOverlay:blackAlpha[40],colorScrollbarOverlay:blackAlpha[50],colorBrandBackground:j[80],colorBrandBackgroundHover:j[70],colorBrandBackgroundPressed:j[40],colorBrandBackgroundSelected:j[60],colorCompoundBrandBackground:j[80],colorCompoundBrandBackgroundHover:j[70],colorCompoundBrandBackgroundPressed:j[60],colorBrandBackgroundStatic:j[80],colorBrandBackground2:j[160],colorBrandBackground2Hover:j[150],colorBrandBackground2Pressed:j[130],colorBrandBackgroundInverted:white,colorBrandBackgroundInvertedHover:j[160],colorBrandBackgroundInvertedPressed:j[140],colorBrandBackgroundInvertedSelected:j[150],colorNeutralStrokeAccessible:grey[38],colorNeutralStrokeAccessibleHover:grey[34],colorNeutralStrokeAccessiblePressed:grey[30],colorNeutralStrokeAccessibleSelected:j[80],colorNeutralStroke1:grey[82],colorNeutralStroke1Hover:grey[78],colorNeutralStroke1Pressed:grey[70],colorNeutralStroke1Selected:grey[74],colorNeutralStroke2:grey[88],colorNeutralStroke3:grey[94],colorNeutralStrokeSubtle:grey[88],colorNeutralStrokeOnBrand:white,colorNeutralStrokeOnBrand2:white,colorNeutralStrokeOnBrand2Hover:white,colorNeutralStrokeOnBrand2Pressed:white,colorNeutralStrokeOnBrand2Selected:white,colorBrandStroke1:j[80],colorBrandStroke2:j[140],colorBrandStroke2Hover:j[120],colorBrandStroke2Pressed:j[80],colorBrandStroke2Contrast:j[140],colorCompoundBrandStroke:j[80],colorCompoundBrandStrokeHover:j[70],colorCompoundBrandStrokePressed:j[60],colorNeutralStrokeDisabled:grey[88],colorNeutralStrokeInvertedDisabled:whiteAlpha[40],colorTransparentStroke:"transparent",colorTransparentStrokeInteractive:"transparent",colorTransparentStrokeDisabled:"transparent",colorNeutralStrokeAlpha:blackAlpha[5],colorNeutralStrokeAlpha2:whiteAlpha[20],colorStrokeFocus1:white,colorStrokeFocus2:black,colorNeutralShadowAmbient:"rgba(0,0,0,0.12)",colorNeutralShadowKey:"rgba(0,0,0,0.14)",colorNeutralShadowAmbientLighter:"rgba(0,0,0,0.06)",colorNeutralShadowKeyLighter:"rgba(0,0,0,0.07)",colorNeutralShadowAmbientDarker:"rgba(0,0,0,0.20)",colorNeutralShadowKeyDarker:"rgba(0,0,0,0.24)",colorBrandShadowAmbient:"rgba(0,0,0,0.30)",colorBrandShadowKey:"rgba(0,0,0,0.25)"}),borderRadius={borderRadiusNone:"0",borderRadiusSmall:"2px",borderRadiusMedium:"4px",borderRadiusLarge:"6px",borderRadiusXLarge:"8px",borderRadiusCircular:"10000px"},curves={curveAccelerateMax:"cubic-bezier(0.9,0.1,1,0.2)",curveAccelerateMid:"cubic-bezier(1,0,1,1)",curveAccelerateMin:"cubic-bezier(0.8,0,0.78,1)",curveDecelerateMax:"cubic-bezier(0.1,0.9,0.2,1)",curveDecelerateMid:"cubic-bezier(0,0,0,1)",curveDecelerateMin:"cubic-bezier(0.33,0,0.1,1)",curveEasyEaseMax:"cubic-bezier(0.8,0,0.2,1)",curveEasyEase:"cubic-bezier(0.33,0,0.67,1)",curveLinear:"cubic-bezier(0,0,1,1)"},durations={durationUltraFast:"50ms",durationFaster:"100ms",durationFast:"150ms",durationNormal:"200ms",durationGentle:"250ms",durationSlow:"300ms",durationSlower:"400ms",durationUltraSlow:"500ms"},fontSizes={fontSizeBase100:"10px",fontSizeBase200:"12px",fontSizeBase300:"14px",fontSizeBase400:"16px",fontSizeBase500:"20px",fontSizeBase600:"24px",fontSizeHero700:"28px",fontSizeHero800:"32px",fontSizeHero900:"40px",fontSizeHero1000:"68px"},lineHeights={lineHeightBase100:"14px",lineHeightBase200:"16px",lineHeightBase300:"20px",lineHeightBase400:"22px",lineHeightBase500:"28px",lineHeightBase600:"32px",lineHeightHero700:"36px",lineHeightHero800:"40px",lineHeightHero900:"52px",lineHeightHero1000:"92px"},fontWeights={fontWeightRegular:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},fontFamilies={fontFamilyBase:"'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif",fontFamilyMonospace:"Consolas, 'Courier New', Courier, monospace",fontFamilyNumeric:"Bahnschrift, 'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif"},spacings={none:"0",xxs:"2px",xs:"4px",sNudge:"6px",s:"8px",mNudge:"10px",m:"12px",l:"16px",xl:"20px",xxl:"24px",xxxl:"32px"},horizontalSpacings={spacingHorizontalNone:spacings.none,spacingHorizontalXXS:spacings.xxs,spacingHorizontalXS:spacings.xs,spacingHorizontalSNudge:spacings.sNudge,spacingHorizontalS:spacings.s,spacingHorizontalMNudge:spacings.mNudge,spacingHorizontalM:spacings.m,spacingHorizontalL:spacings.l,spacingHorizontalXL:spacings.xl,spacingHorizontalXXL:spacings.xxl,spacingHorizontalXXXL:spacings.xxxl},verticalSpacings={spacingVerticalNone:spacings.none,spacingVerticalXXS:spacings.xxs,spacingVerticalXS:spacings.xs,spacingVerticalSNudge:spacings.sNudge,spacingVerticalS:spacings.s,spacingVerticalMNudge:spacings.mNudge,spacingVerticalM:spacings.m,spacingVerticalL:spacings.l,spacingVerticalXL:spacings.xl,spacingVerticalXXL:spacings.xxl,spacingVerticalXXXL:spacings.xxxl},strokeWidths={strokeWidthThin:"1px",strokeWidthThick:"2px",strokeWidthThicker:"3px",strokeWidthThickest:"4px"},tokens={colorNeutralForeground1:"var(--colorNeutralForeground1)",colorNeutralForeground1Hover:"var(--colorNeutralForeground1Hover)",colorNeutralForeground1Pressed:"var(--colorNeutralForeground1Pressed)",colorNeutralForeground1Selected:"var(--colorNeutralForeground1Selected)",colorNeutralForeground2:"var(--colorNeutralForeground2)",colorNeutralForeground2Hover:"var(--colorNeutralForeground2Hover)",colorNeutralForeground2Pressed:"var(--colorNeutralForeground2Pressed)",colorNeutralForeground2Selected:"var(--colorNeutralForeground2Selected)",colorNeutralForeground2BrandHover:"var(--colorNeutralForeground2BrandHover)",colorNeutralForeground2BrandPressed:"var(--colorNeutralForeground2BrandPressed)",colorNeutralForeground2BrandSelected:"var(--colorNeutralForeground2BrandSelected)",colorNeutralForeground3:"var(--colorNeutralForeground3)",colorNeutralForeground3Hover:"var(--colorNeutralForeground3Hover)",colorNeutralForeground3Pressed:"var(--colorNeutralForeground3Pressed)",colorNeutralForeground3Selected:"var(--colorNeutralForeground3Selected)",colorNeutralForeground3BrandHover:"var(--colorNeutralForeground3BrandHover)",colorNeutralForeground3BrandPressed:"var(--colorNeutralForeground3BrandPressed)",colorNeutralForeground3BrandSelected:"var(--colorNeutralForeground3BrandSelected)",colorNeutralForeground4:"var(--colorNeutralForeground4)",colorNeutralForegroundDisabled:"var(--colorNeutralForegroundDisabled)",colorBrandForegroundLink:"var(--colorBrandForegroundLink)",colorBrandForegroundLinkHover:"var(--colorBrandForegroundLinkHover)",colorBrandForegroundLinkPressed:"var(--colorBrandForegroundLinkPressed)",colorBrandForegroundLinkSelected:"var(--colorBrandForegroundLinkSelected)",colorNeutralForeground2Link:"var(--colorNeutralForeground2Link)",colorNeutralForeground2LinkHover:"var(--colorNeutralForeground2LinkHover)",colorNeutralForeground2LinkPressed:"var(--colorNeutralForeground2LinkPressed)",colorNeutralForeground2LinkSelected:"var(--colorNeutralForeground2LinkSelected)",colorCompoundBrandForeground1:"var(--colorCompoundBrandForeground1)",colorCompoundBrandForeground1Hover:"var(--colorCompoundBrandForeground1Hover)",colorCompoundBrandForeground1Pressed:"var(--colorCompoundBrandForeground1Pressed)",colorNeutralForegroundOnBrand:"var(--colorNeutralForegroundOnBrand)",colorNeutralForegroundInverted:"var(--colorNeutralForegroundInverted)",colorNeutralForegroundInvertedHover:"var(--colorNeutralForegroundInvertedHover)",colorNeutralForegroundInvertedPressed:"var(--colorNeutralForegroundInvertedPressed)",colorNeutralForegroundInvertedSelected:"var(--colorNeutralForegroundInvertedSelected)",colorNeutralForegroundInverted2:"var(--colorNeutralForegroundInverted2)",colorNeutralForegroundStaticInverted:"var(--colorNeutralForegroundStaticInverted)",colorNeutralForegroundInvertedLink:"var(--colorNeutralForegroundInvertedLink)",colorNeutralForegroundInvertedLinkHover:"var(--colorNeutralForegroundInvertedLinkHover)",colorNeutralForegroundInvertedLinkPressed:"var(--colorNeutralForegroundInvertedLinkPressed)",colorNeutralForegroundInvertedLinkSelected:"var(--colorNeutralForegroundInvertedLinkSelected)",colorNeutralForegroundInvertedDisabled:"var(--colorNeutralForegroundInvertedDisabled)",colorBrandForeground1:"var(--colorBrandForeground1)",colorBrandForeground2:"var(--colorBrandForeground2)",colorBrandForeground2Hover:"var(--colorBrandForeground2Hover)",colorBrandForeground2Pressed:"var(--colorBrandForeground2Pressed)",colorNeutralForeground1Static:"var(--colorNeutralForeground1Static)",colorBrandForegroundInverted:"var(--colorBrandForegroundInverted)",colorBrandForegroundInvertedHover:"var(--colorBrandForegroundInvertedHover)",colorBrandForegroundInvertedPressed:"var(--colorBrandForegroundInvertedPressed)",colorBrandForegroundOnLight:"var(--colorBrandForegroundOnLight)",colorBrandForegroundOnLightHover:"var(--colorBrandForegroundOnLightHover)",colorBrandForegroundOnLightPressed:"var(--colorBrandForegroundOnLightPressed)",colorBrandForegroundOnLightSelected:"var(--colorBrandForegroundOnLightSelected)",colorNeutralBackground1:"var(--colorNeutralBackground1)",colorNeutralBackground1Hover:"var(--colorNeutralBackground1Hover)",colorNeutralBackground1Pressed:"var(--colorNeutralBackground1Pressed)",colorNeutralBackground1Selected:"var(--colorNeutralBackground1Selected)",colorNeutralBackground2:"var(--colorNeutralBackground2)",colorNeutralBackground2Hover:"var(--colorNeutralBackground2Hover)",colorNeutralBackground2Pressed:"var(--colorNeutralBackground2Pressed)",colorNeutralBackground2Selected:"var(--colorNeutralBackground2Selected)",colorNeutralBackground3:"var(--colorNeutralBackground3)",colorNeutralBackground3Hover:"var(--colorNeutralBackground3Hover)",colorNeutralBackground3Pressed:"var(--colorNeutralBackground3Pressed)",colorNeutralBackground3Selected:"var(--colorNeutralBackground3Selected)",colorNeutralBackground4:"var(--colorNeutralBackground4)",colorNeutralBackground4Hover:"var(--colorNeutralBackground4Hover)",colorNeutralBackground4Pressed:"var(--colorNeutralBackground4Pressed)",colorNeutralBackground4Selected:"var(--colorNeutralBackground4Selected)",colorNeutralBackground5:"var(--colorNeutralBackground5)",colorNeutralBackground5Hover:"var(--colorNeutralBackground5Hover)",colorNeutralBackground5Pressed:"var(--colorNeutralBackground5Pressed)",colorNeutralBackground5Selected:"var(--colorNeutralBackground5Selected)",colorNeutralBackground6:"var(--colorNeutralBackground6)",colorNeutralBackgroundInverted:"var(--colorNeutralBackgroundInverted)",colorNeutralBackgroundStatic:"var(--colorNeutralBackgroundStatic)",colorNeutralBackgroundAlpha:"var(--colorNeutralBackgroundAlpha)",colorNeutralBackgroundAlpha2:"var(--colorNeutralBackgroundAlpha2)",colorSubtleBackground:"var(--colorSubtleBackground)",colorSubtleBackgroundHover:"var(--colorSubtleBackgroundHover)",colorSubtleBackgroundPressed:"var(--colorSubtleBackgroundPressed)",colorSubtleBackgroundSelected:"var(--colorSubtleBackgroundSelected)",colorSubtleBackgroundLightAlphaHover:"var(--colorSubtleBackgroundLightAlphaHover)",colorSubtleBackgroundLightAlphaPressed:"var(--colorSubtleBackgroundLightAlphaPressed)",colorSubtleBackgroundLightAlphaSelected:"var(--colorSubtleBackgroundLightAlphaSelected)",colorSubtleBackgroundInverted:"var(--colorSubtleBackgroundInverted)",colorSubtleBackgroundInvertedHover:"var(--colorSubtleBackgroundInvertedHover)",colorSubtleBackgroundInvertedPressed:"var(--colorSubtleBackgroundInvertedPressed)",colorSubtleBackgroundInvertedSelected:"var(--colorSubtleBackgroundInvertedSelected)",colorTransparentBackground:"var(--colorTransparentBackground)",colorTransparentBackgroundHover:"var(--colorTransparentBackgroundHover)",colorTransparentBackgroundPressed:"var(--colorTransparentBackgroundPressed)",colorTransparentBackgroundSelected:"var(--colorTransparentBackgroundSelected)",colorNeutralBackgroundDisabled:"var(--colorNeutralBackgroundDisabled)",colorNeutralBackgroundInvertedDisabled:"var(--colorNeutralBackgroundInvertedDisabled)",colorNeutralStencil1:"var(--colorNeutralStencil1)",colorNeutralStencil2:"var(--colorNeutralStencil2)",colorNeutralStencil1Alpha:"var(--colorNeutralStencil1Alpha)",colorNeutralStencil2Alpha:"var(--colorNeutralStencil2Alpha)",colorBackgroundOverlay:"var(--colorBackgroundOverlay)",colorScrollbarOverlay:"var(--colorScrollbarOverlay)",colorBrandBackground:"var(--colorBrandBackground)",colorBrandBackgroundHover:"var(--colorBrandBackgroundHover)",colorBrandBackgroundPressed:"var(--colorBrandBackgroundPressed)",colorBrandBackgroundSelected:"var(--colorBrandBackgroundSelected)",colorCompoundBrandBackground:"var(--colorCompoundBrandBackground)",colorCompoundBrandBackgroundHover:"var(--colorCompoundBrandBackgroundHover)",colorCompoundBrandBackgroundPressed:"var(--colorCompoundBrandBackgroundPressed)",colorBrandBackgroundStatic:"var(--colorBrandBackgroundStatic)",colorBrandBackground2:"var(--colorBrandBackground2)",colorBrandBackground2Hover:"var(--colorBrandBackground2Hover)",colorBrandBackground2Pressed:"var(--colorBrandBackground2Pressed)",colorBrandBackgroundInverted:"var(--colorBrandBackgroundInverted)",colorBrandBackgroundInvertedHover:"var(--colorBrandBackgroundInvertedHover)",colorBrandBackgroundInvertedPressed:"var(--colorBrandBackgroundInvertedPressed)",colorBrandBackgroundInvertedSelected:"var(--colorBrandBackgroundInvertedSelected)",colorNeutralStrokeAccessible:"var(--colorNeutralStrokeAccessible)",colorNeutralStrokeAccessibleHover:"var(--colorNeutralStrokeAccessibleHover)",colorNeutralStrokeAccessiblePressed:"var(--colorNeutralStrokeAccessiblePressed)",colorNeutralStrokeAccessibleSelected:"var(--colorNeutralStrokeAccessibleSelected)",colorNeutralStroke1:"var(--colorNeutralStroke1)",colorNeutralStroke1Hover:"var(--colorNeutralStroke1Hover)",colorNeutralStroke1Pressed:"var(--colorNeutralStroke1Pressed)",colorNeutralStroke1Selected:"var(--colorNeutralStroke1Selected)",colorNeutralStroke2:"var(--colorNeutralStroke2)",colorNeutralStroke3:"var(--colorNeutralStroke3)",colorNeutralStrokeSubtle:"var(--colorNeutralStrokeSubtle)",colorNeutralStrokeOnBrand:"var(--colorNeutralStrokeOnBrand)",colorNeutralStrokeOnBrand2:"var(--colorNeutralStrokeOnBrand2)",colorNeutralStrokeOnBrand2Hover:"var(--colorNeutralStrokeOnBrand2Hover)",colorNeutralStrokeOnBrand2Pressed:"var(--colorNeutralStrokeOnBrand2Pressed)",colorNeutralStrokeOnBrand2Selected:"var(--colorNeutralStrokeOnBrand2Selected)",colorBrandStroke1:"var(--colorBrandStroke1)",colorBrandStroke2:"var(--colorBrandStroke2)",colorBrandStroke2Hover:"var(--colorBrandStroke2Hover)",colorBrandStroke2Pressed:"var(--colorBrandStroke2Pressed)",colorBrandStroke2Contrast:"var(--colorBrandStroke2Contrast)",colorCompoundBrandStroke:"var(--colorCompoundBrandStroke)",colorCompoundBrandStrokeHover:"var(--colorCompoundBrandStrokeHover)",colorCompoundBrandStrokePressed:"var(--colorCompoundBrandStrokePressed)",colorNeutralStrokeDisabled:"var(--colorNeutralStrokeDisabled)",colorNeutralStrokeInvertedDisabled:"var(--colorNeutralStrokeInvertedDisabled)",colorTransparentStroke:"var(--colorTransparentStroke)",colorTransparentStrokeInteractive:"var(--colorTransparentStrokeInteractive)",colorTransparentStrokeDisabled:"var(--colorTransparentStrokeDisabled)",colorNeutralStrokeAlpha:"var(--colorNeutralStrokeAlpha)",colorNeutralStrokeAlpha2:"var(--colorNeutralStrokeAlpha2)",colorStrokeFocus1:"var(--colorStrokeFocus1)",colorStrokeFocus2:"var(--colorStrokeFocus2)",colorNeutralShadowAmbient:"var(--colorNeutralShadowAmbient)",colorNeutralShadowKey:"var(--colorNeutralShadowKey)",colorNeutralShadowAmbientLighter:"var(--colorNeutralShadowAmbientLighter)",colorNeutralShadowKeyLighter:"var(--colorNeutralShadowKeyLighter)",colorNeutralShadowAmbientDarker:"var(--colorNeutralShadowAmbientDarker)",colorNeutralShadowKeyDarker:"var(--colorNeutralShadowKeyDarker)",colorBrandShadowAmbient:"var(--colorBrandShadowAmbient)",colorBrandShadowKey:"var(--colorBrandShadowKey)",colorPaletteRedBackground1:"var(--colorPaletteRedBackground1)",colorPaletteRedBackground2:"var(--colorPaletteRedBackground2)",colorPaletteRedBackground3:"var(--colorPaletteRedBackground3)",colorPaletteRedBorderActive:"var(--colorPaletteRedBorderActive)",colorPaletteRedBorder1:"var(--colorPaletteRedBorder1)",colorPaletteRedBorder2:"var(--colorPaletteRedBorder2)",colorPaletteRedForeground1:"var(--colorPaletteRedForeground1)",colorPaletteRedForeground2:"var(--colorPaletteRedForeground2)",colorPaletteRedForeground3:"var(--colorPaletteRedForeground3)",colorPaletteRedForegroundInverted:"var(--colorPaletteRedForegroundInverted)",colorPaletteGreenBackground1:"var(--colorPaletteGreenBackground1)",colorPaletteGreenBackground2:"var(--colorPaletteGreenBackground2)",colorPaletteGreenBackground3:"var(--colorPaletteGreenBackground3)",colorPaletteGreenBorderActive:"var(--colorPaletteGreenBorderActive)",colorPaletteGreenBorder1:"var(--colorPaletteGreenBorder1)",colorPaletteGreenBorder2:"var(--colorPaletteGreenBorder2)",colorPaletteGreenForeground1:"var(--colorPaletteGreenForeground1)",colorPaletteGreenForeground2:"var(--colorPaletteGreenForeground2)",colorPaletteGreenForeground3:"var(--colorPaletteGreenForeground3)",colorPaletteGreenForegroundInverted:"var(--colorPaletteGreenForegroundInverted)",colorPaletteDarkOrangeBackground1:"var(--colorPaletteDarkOrangeBackground1)",colorPaletteDarkOrangeBackground2:"var(--colorPaletteDarkOrangeBackground2)",colorPaletteDarkOrangeBackground3:"var(--colorPaletteDarkOrangeBackground3)",colorPaletteDarkOrangeBorderActive:"var(--colorPaletteDarkOrangeBorderActive)",colorPaletteDarkOrangeBorder1:"var(--colorPaletteDarkOrangeBorder1)",colorPaletteDarkOrangeBorder2:"var(--colorPaletteDarkOrangeBorder2)",colorPaletteDarkOrangeForeground1:"var(--colorPaletteDarkOrangeForeground1)",colorPaletteDarkOrangeForeground2:"var(--colorPaletteDarkOrangeForeground2)",colorPaletteDarkOrangeForeground3:"var(--colorPaletteDarkOrangeForeground3)",colorPaletteYellowBackground1:"var(--colorPaletteYellowBackground1)",colorPaletteYellowBackground2:"var(--colorPaletteYellowBackground2)",colorPaletteYellowBackground3:"var(--colorPaletteYellowBackground3)",colorPaletteYellowBorderActive:"var(--colorPaletteYellowBorderActive)",colorPaletteYellowBorder1:"var(--colorPaletteYellowBorder1)",colorPaletteYellowBorder2:"var(--colorPaletteYellowBorder2)",colorPaletteYellowForeground1:"var(--colorPaletteYellowForeground1)",colorPaletteYellowForeground2:"var(--colorPaletteYellowForeground2)",colorPaletteYellowForeground3:"var(--colorPaletteYellowForeground3)",colorPaletteYellowForegroundInverted:"var(--colorPaletteYellowForegroundInverted)",colorPaletteBerryBackground1:"var(--colorPaletteBerryBackground1)",colorPaletteBerryBackground2:"var(--colorPaletteBerryBackground2)",colorPaletteBerryBackground3:"var(--colorPaletteBerryBackground3)",colorPaletteBerryBorderActive:"var(--colorPaletteBerryBorderActive)",colorPaletteBerryBorder1:"var(--colorPaletteBerryBorder1)",colorPaletteBerryBorder2:"var(--colorPaletteBerryBorder2)",colorPaletteBerryForeground1:"var(--colorPaletteBerryForeground1)",colorPaletteBerryForeground2:"var(--colorPaletteBerryForeground2)",colorPaletteBerryForeground3:"var(--colorPaletteBerryForeground3)",colorPaletteMarigoldBackground1:"var(--colorPaletteMarigoldBackground1)",colorPaletteMarigoldBackground2:"var(--colorPaletteMarigoldBackground2)",colorPaletteMarigoldBackground3:"var(--colorPaletteMarigoldBackground3)",colorPaletteMarigoldBorderActive:"var(--colorPaletteMarigoldBorderActive)",colorPaletteMarigoldBorder1:"var(--colorPaletteMarigoldBorder1)",colorPaletteMarigoldBorder2:"var(--colorPaletteMarigoldBorder2)",colorPaletteMarigoldForeground1:"var(--colorPaletteMarigoldForeground1)",colorPaletteMarigoldForeground2:"var(--colorPaletteMarigoldForeground2)",colorPaletteMarigoldForeground3:"var(--colorPaletteMarigoldForeground3)",colorPaletteLightGreenBackground1:"var(--colorPaletteLightGreenBackground1)",colorPaletteLightGreenBackground2:"var(--colorPaletteLightGreenBackground2)",colorPaletteLightGreenBackground3:"var(--colorPaletteLightGreenBackground3)",colorPaletteLightGreenBorderActive:"var(--colorPaletteLightGreenBorderActive)",colorPaletteLightGreenBorder1:"var(--colorPaletteLightGreenBorder1)",colorPaletteLightGreenBorder2:"var(--colorPaletteLightGreenBorder2)",colorPaletteLightGreenForeground1:"var(--colorPaletteLightGreenForeground1)",colorPaletteLightGreenForeground2:"var(--colorPaletteLightGreenForeground2)",colorPaletteLightGreenForeground3:"var(--colorPaletteLightGreenForeground3)",colorPaletteAnchorBackground2:"var(--colorPaletteAnchorBackground2)",colorPaletteAnchorBorderActive:"var(--colorPaletteAnchorBorderActive)",colorPaletteAnchorForeground2:"var(--colorPaletteAnchorForeground2)",colorPaletteBeigeBackground2:"var(--colorPaletteBeigeBackground2)",colorPaletteBeigeBorderActive:"var(--colorPaletteBeigeBorderActive)",colorPaletteBeigeForeground2:"var(--colorPaletteBeigeForeground2)",colorPaletteBlueBackground2:"var(--colorPaletteBlueBackground2)",colorPaletteBlueBorderActive:"var(--colorPaletteBlueBorderActive)",colorPaletteBlueForeground2:"var(--colorPaletteBlueForeground2)",colorPaletteBrassBackground2:"var(--colorPaletteBrassBackground2)",colorPaletteBrassBorderActive:"var(--colorPaletteBrassBorderActive)",colorPaletteBrassForeground2:"var(--colorPaletteBrassForeground2)",colorPaletteBrownBackground2:"var(--colorPaletteBrownBackground2)",colorPaletteBrownBorderActive:"var(--colorPaletteBrownBorderActive)",colorPaletteBrownForeground2:"var(--colorPaletteBrownForeground2)",colorPaletteCornflowerBackground2:"var(--colorPaletteCornflowerBackground2)",colorPaletteCornflowerBorderActive:"var(--colorPaletteCornflowerBorderActive)",colorPaletteCornflowerForeground2:"var(--colorPaletteCornflowerForeground2)",colorPaletteCranberryBackground2:"var(--colorPaletteCranberryBackground2)",colorPaletteCranberryBorderActive:"var(--colorPaletteCranberryBorderActive)",colorPaletteCranberryForeground2:"var(--colorPaletteCranberryForeground2)",colorPaletteDarkGreenBackground2:"var(--colorPaletteDarkGreenBackground2)",colorPaletteDarkGreenBorderActive:"var(--colorPaletteDarkGreenBorderActive)",colorPaletteDarkGreenForeground2:"var(--colorPaletteDarkGreenForeground2)",colorPaletteDarkRedBackground2:"var(--colorPaletteDarkRedBackground2)",colorPaletteDarkRedBorderActive:"var(--colorPaletteDarkRedBorderActive)",colorPaletteDarkRedForeground2:"var(--colorPaletteDarkRedForeground2)",colorPaletteForestBackground2:"var(--colorPaletteForestBackground2)",colorPaletteForestBorderActive:"var(--colorPaletteForestBorderActive)",colorPaletteForestForeground2:"var(--colorPaletteForestForeground2)",colorPaletteGoldBackground2:"var(--colorPaletteGoldBackground2)",colorPaletteGoldBorderActive:"var(--colorPaletteGoldBorderActive)",colorPaletteGoldForeground2:"var(--colorPaletteGoldForeground2)",colorPaletteGrapeBackground2:"var(--colorPaletteGrapeBackground2)",colorPaletteGrapeBorderActive:"var(--colorPaletteGrapeBorderActive)",colorPaletteGrapeForeground2:"var(--colorPaletteGrapeForeground2)",colorPaletteLavenderBackground2:"var(--colorPaletteLavenderBackground2)",colorPaletteLavenderBorderActive:"var(--colorPaletteLavenderBorderActive)",colorPaletteLavenderForeground2:"var(--colorPaletteLavenderForeground2)",colorPaletteLightTealBackground2:"var(--colorPaletteLightTealBackground2)",colorPaletteLightTealBorderActive:"var(--colorPaletteLightTealBorderActive)",colorPaletteLightTealForeground2:"var(--colorPaletteLightTealForeground2)",colorPaletteLilacBackground2:"var(--colorPaletteLilacBackground2)",colorPaletteLilacBorderActive:"var(--colorPaletteLilacBorderActive)",colorPaletteLilacForeground2:"var(--colorPaletteLilacForeground2)",colorPaletteMagentaBackground2:"var(--colorPaletteMagentaBackground2)",colorPaletteMagentaBorderActive:"var(--colorPaletteMagentaBorderActive)",colorPaletteMagentaForeground2:"var(--colorPaletteMagentaForeground2)",colorPaletteMinkBackground2:"var(--colorPaletteMinkBackground2)",colorPaletteMinkBorderActive:"var(--colorPaletteMinkBorderActive)",colorPaletteMinkForeground2:"var(--colorPaletteMinkForeground2)",colorPaletteNavyBackground2:"var(--colorPaletteNavyBackground2)",colorPaletteNavyBorderActive:"var(--colorPaletteNavyBorderActive)",colorPaletteNavyForeground2:"var(--colorPaletteNavyForeground2)",colorPalettePeachBackground2:"var(--colorPalettePeachBackground2)",colorPalettePeachBorderActive:"var(--colorPalettePeachBorderActive)",colorPalettePeachForeground2:"var(--colorPalettePeachForeground2)",colorPalettePinkBackground2:"var(--colorPalettePinkBackground2)",colorPalettePinkBorderActive:"var(--colorPalettePinkBorderActive)",colorPalettePinkForeground2:"var(--colorPalettePinkForeground2)",colorPalettePlatinumBackground2:"var(--colorPalettePlatinumBackground2)",colorPalettePlatinumBorderActive:"var(--colorPalettePlatinumBorderActive)",colorPalettePlatinumForeground2:"var(--colorPalettePlatinumForeground2)",colorPalettePlumBackground2:"var(--colorPalettePlumBackground2)",colorPalettePlumBorderActive:"var(--colorPalettePlumBorderActive)",colorPalettePlumForeground2:"var(--colorPalettePlumForeground2)",colorPalettePumpkinBackground2:"var(--colorPalettePumpkinBackground2)",colorPalettePumpkinBorderActive:"var(--colorPalettePumpkinBorderActive)",colorPalettePumpkinForeground2:"var(--colorPalettePumpkinForeground2)",colorPalettePurpleBackground2:"var(--colorPalettePurpleBackground2)",colorPalettePurpleBorderActive:"var(--colorPalettePurpleBorderActive)",colorPalettePurpleForeground2:"var(--colorPalettePurpleForeground2)",colorPaletteRoyalBlueBackground2:"var(--colorPaletteRoyalBlueBackground2)",colorPaletteRoyalBlueBorderActive:"var(--colorPaletteRoyalBlueBorderActive)",colorPaletteRoyalBlueForeground2:"var(--colorPaletteRoyalBlueForeground2)",colorPaletteSeafoamBackground2:"var(--colorPaletteSeafoamBackground2)",colorPaletteSeafoamBorderActive:"var(--colorPaletteSeafoamBorderActive)",colorPaletteSeafoamForeground2:"var(--colorPaletteSeafoamForeground2)",colorPaletteSteelBackground2:"var(--colorPaletteSteelBackground2)",colorPaletteSteelBorderActive:"var(--colorPaletteSteelBorderActive)",colorPaletteSteelForeground2:"var(--colorPaletteSteelForeground2)",colorPaletteTealBackground2:"var(--colorPaletteTealBackground2)",colorPaletteTealBorderActive:"var(--colorPaletteTealBorderActive)",colorPaletteTealForeground2:"var(--colorPaletteTealForeground2)",colorStatusSuccessBackground1:"var(--colorStatusSuccessBackground1)",colorStatusSuccessBackground2:"var(--colorStatusSuccessBackground2)",colorStatusSuccessBackground3:"var(--colorStatusSuccessBackground3)",colorStatusSuccessForeground1:"var(--colorStatusSuccessForeground1)",colorStatusSuccessForeground2:"var(--colorStatusSuccessForeground2)",colorStatusSuccessForeground3:"var(--colorStatusSuccessForeground3)",colorStatusSuccessForegroundInverted:"var(--colorStatusSuccessForegroundInverted)",colorStatusSuccessBorderActive:"var(--colorStatusSuccessBorderActive)",colorStatusSuccessBorder1:"var(--colorStatusSuccessBorder1)",colorStatusSuccessBorder2:"var(--colorStatusSuccessBorder2)",colorStatusWarningBackground1:"var(--colorStatusWarningBackground1)",colorStatusWarningBackground2:"var(--colorStatusWarningBackground2)",colorStatusWarningBackground3:"var(--colorStatusWarningBackground3)",colorStatusWarningForeground1:"var(--colorStatusWarningForeground1)",colorStatusWarningForeground2:"var(--colorStatusWarningForeground2)",colorStatusWarningForeground3:"var(--colorStatusWarningForeground3)",colorStatusWarningForegroundInverted:"var(--colorStatusWarningForegroundInverted)",colorStatusWarningBorderActive:"var(--colorStatusWarningBorderActive)",colorStatusWarningBorder1:"var(--colorStatusWarningBorder1)",colorStatusWarningBorder2:"var(--colorStatusWarningBorder2)",colorStatusDangerBackground1:"var(--colorStatusDangerBackground1)",colorStatusDangerBackground2:"var(--colorStatusDangerBackground2)",colorStatusDangerBackground3:"var(--colorStatusDangerBackground3)",colorStatusDangerForeground1:"var(--colorStatusDangerForeground1)",colorStatusDangerForeground2:"var(--colorStatusDangerForeground2)",colorStatusDangerForeground3:"var(--colorStatusDangerForeground3)",colorStatusDangerForegroundInverted:"var(--colorStatusDangerForegroundInverted)",colorStatusDangerBorderActive:"var(--colorStatusDangerBorderActive)",colorStatusDangerBorder1:"var(--colorStatusDangerBorder1)",colorStatusDangerBorder2:"var(--colorStatusDangerBorder2)",borderRadiusNone:"var(--borderRadiusNone)",borderRadiusSmall:"var(--borderRadiusSmall)",borderRadiusMedium:"var(--borderRadiusMedium)",borderRadiusLarge:"var(--borderRadiusLarge)",borderRadiusXLarge:"var(--borderRadiusXLarge)",borderRadiusCircular:"var(--borderRadiusCircular)",fontFamilyBase:"var(--fontFamilyBase)",fontFamilyMonospace:"var(--fontFamilyMonospace)",fontFamilyNumeric:"var(--fontFamilyNumeric)",fontSizeBase100:"var(--fontSizeBase100)",fontSizeBase200:"var(--fontSizeBase200)",fontSizeBase300:"var(--fontSizeBase300)",fontSizeBase400:"var(--fontSizeBase400)",fontSizeBase500:"var(--fontSizeBase500)",fontSizeBase600:"var(--fontSizeBase600)",fontSizeHero700:"var(--fontSizeHero700)",fontSizeHero800:"var(--fontSizeHero800)",fontSizeHero900:"var(--fontSizeHero900)",fontSizeHero1000:"var(--fontSizeHero1000)",fontWeightRegular:"var(--fontWeightRegular)",fontWeightMedium:"var(--fontWeightMedium)",fontWeightSemibold:"var(--fontWeightSemibold)",fontWeightBold:"var(--fontWeightBold)",lineHeightBase100:"var(--lineHeightBase100)",lineHeightBase200:"var(--lineHeightBase200)",lineHeightBase300:"var(--lineHeightBase300)",lineHeightBase400:"var(--lineHeightBase400)",lineHeightBase500:"var(--lineHeightBase500)",lineHeightBase600:"var(--lineHeightBase600)",lineHeightHero700:"var(--lineHeightHero700)",lineHeightHero800:"var(--lineHeightHero800)",lineHeightHero900:"var(--lineHeightHero900)",lineHeightHero1000:"var(--lineHeightHero1000)",shadow2:"var(--shadow2)",shadow4:"var(--shadow4)",shadow8:"var(--shadow8)",shadow16:"var(--shadow16)",shadow28:"var(--shadow28)",shadow64:"var(--shadow64)",shadow2Brand:"var(--shadow2Brand)",shadow4Brand:"var(--shadow4Brand)",shadow8Brand:"var(--shadow8Brand)",shadow16Brand:"var(--shadow16Brand)",shadow28Brand:"var(--shadow28Brand)",shadow64Brand:"var(--shadow64Brand)",strokeWidthThin:"var(--strokeWidthThin)",strokeWidthThick:"var(--strokeWidthThick)",strokeWidthThicker:"var(--strokeWidthThicker)",strokeWidthThickest:"var(--strokeWidthThickest)",spacingHorizontalNone:"var(--spacingHorizontalNone)",spacingHorizontalXXS:"var(--spacingHorizontalXXS)",spacingHorizontalXS:"var(--spacingHorizontalXS)",spacingHorizontalSNudge:"var(--spacingHorizontalSNudge)",spacingHorizontalS:"var(--spacingHorizontalS)",spacingHorizontalMNudge:"var(--spacingHorizontalMNudge)",spacingHorizontalM:"var(--spacingHorizontalM)",spacingHorizontalL:"var(--spacingHorizontalL)",spacingHorizontalXL:"var(--spacingHorizontalXL)",spacingHorizontalXXL:"var(--spacingHorizontalXXL)",spacingHorizontalXXXL:"var(--spacingHorizontalXXXL)",spacingVerticalNone:"var(--spacingVerticalNone)",spacingVerticalXXS:"var(--spacingVerticalXXS)",spacingVerticalXS:"var(--spacingVerticalXS)",spacingVerticalSNudge:"var(--spacingVerticalSNudge)",spacingVerticalS:"var(--spacingVerticalS)",spacingVerticalMNudge:"var(--spacingVerticalMNudge)",spacingVerticalM:"var(--spacingVerticalM)",spacingVerticalL:"var(--spacingVerticalL)",spacingVerticalXL:"var(--spacingVerticalXL)",spacingVerticalXXL:"var(--spacingVerticalXXL)",spacingVerticalXXXL:"var(--spacingVerticalXXXL)",durationUltraFast:"var(--durationUltraFast)",durationFaster:"var(--durationFaster)",durationFast:"var(--durationFast)",durationNormal:"var(--durationNormal)",durationGentle:"var(--durationGentle)",durationSlow:"var(--durationSlow)",durationSlower:"var(--durationSlower)",durationUltraSlow:"var(--durationUltraSlow)",curveAccelerateMax:"var(--curveAccelerateMax)",curveAccelerateMid:"var(--curveAccelerateMid)",curveAccelerateMin:"var(--curveAccelerateMin)",curveDecelerateMax:"var(--curveDecelerateMax)",curveDecelerateMid:"var(--curveDecelerateMid)",curveDecelerateMin:"var(--curveDecelerateMin)",curveEasyEaseMax:"var(--curveEasyEaseMax)",curveEasyEase:"var(--curveEasyEase)",curveLinear:"var(--curveLinear)"};function createShadowTokens(j,_e,et=""){return{[`shadow2${et}`]:`0 0 2px ${j}, 0 1px 2px ${_e}`,[`shadow4${et}`]:`0 0 2px ${j}, 0 2px 4px ${_e}`,[`shadow8${et}`]:`0 0 2px ${j}, 0 4px 8px ${_e}`,[`shadow16${et}`]:`0 0 2px ${j}, 0 8px 16px ${_e}`,[`shadow28${et}`]:`0 0 8px ${j}, 0 14px 28px ${_e}`,[`shadow64${et}`]:`0 0 8px ${j}, 0 32px 64px ${_e}`}}const createLightTheme=j=>{const _e=generateColorTokens$1(j);return{...borderRadius,...fontSizes,...lineHeights,...fontFamilies,...fontWeights,...strokeWidths,...horizontalSpacings,...verticalSpacings,...durations,...curves,..._e,...colorPaletteTokens$1,...colorStatusTokens$1,...createShadowTokens(_e.colorNeutralShadowAmbient,_e.colorNeutralShadowKey),...createShadowTokens(_e.colorBrandShadowAmbient,_e.colorBrandShadowKey,"Brand")}},brandWeb={10:"#061724",20:"#082338",30:"#0a2e4a",40:"#0c3b5e",50:"#0e4775",60:"#0f548c",70:"#115ea3",80:"#0f6cbd",90:"#2886de",100:"#479ef5",110:"#62abf5",120:"#77b7f7",130:"#96c6fa",140:"#b4d6fa",150:"#cfe4fa",160:"#ebf3fc"},statusColorPaletteTokens=statusSharedColorNames.reduce((j,_e)=>{const et=_e.slice(0,1).toUpperCase()+_e.slice(1),tt={[`colorPalette${et}Background1`]:statusSharedColors[_e].shade40,[`colorPalette${et}Background2`]:statusSharedColors[_e].shade30,[`colorPalette${et}Background3`]:statusSharedColors[_e].primary,[`colorPalette${et}Foreground1`]:statusSharedColors[_e].tint30,[`colorPalette${et}Foreground2`]:statusSharedColors[_e].tint40,[`colorPalette${et}Foreground3`]:statusSharedColors[_e].tint20,[`colorPalette${et}BorderActive`]:statusSharedColors[_e].tint30,[`colorPalette${et}Border1`]:statusSharedColors[_e].primary,[`colorPalette${et}Border2`]:statusSharedColors[_e].tint20};return Object.assign(j,tt)},{});statusColorPaletteTokens.colorPaletteRedForeground3=statusSharedColors.red.tint30;statusColorPaletteTokens.colorPaletteRedBorder2=statusSharedColors.red.tint30;statusColorPaletteTokens.colorPaletteGreenForeground3=statusSharedColors.green.tint40;statusColorPaletteTokens.colorPaletteGreenBorder2=statusSharedColors.green.tint40;statusColorPaletteTokens.colorPaletteDarkOrangeForeground3=statusSharedColors.darkOrange.tint30;statusColorPaletteTokens.colorPaletteDarkOrangeBorder2=statusSharedColors.darkOrange.tint30;statusColorPaletteTokens.colorPaletteRedForegroundInverted=statusSharedColors.red.primary;statusColorPaletteTokens.colorPaletteGreenForegroundInverted=statusSharedColors.green.primary;statusColorPaletteTokens.colorPaletteYellowForegroundInverted=statusSharedColors.yellow.shade30;const personaColorPaletteTokens=personaSharedColorNames.reduce((j,_e)=>{const et=_e.slice(0,1).toUpperCase()+_e.slice(1),tt={[`colorPalette${et}Background2`]:personaSharedColors[_e].shade30,[`colorPalette${et}Foreground2`]:personaSharedColors[_e].tint40,[`colorPalette${et}BorderActive`]:personaSharedColors[_e].tint30};return Object.assign(j,tt)},{});personaColorPaletteTokens.colorPaletteDarkRedBackground2=personaSharedColors.darkRed.shade20;personaColorPaletteTokens.colorPalettePlumBackground2=personaSharedColors.plum.shade20;const colorPaletteTokens={...statusColorPaletteTokens,...personaColorPaletteTokens},colorStatusTokens=Object.entries(statusColorMapping).reduce((j,[_e,et])=>{const tt=_e.slice(0,1).toUpperCase()+_e.slice(1),rt={[`colorStatus${tt}Background1`]:mappedStatusColors[et].shade40,[`colorStatus${tt}Background2`]:mappedStatusColors[et].shade30,[`colorStatus${tt}Background3`]:mappedStatusColors[et].primary,[`colorStatus${tt}Foreground1`]:mappedStatusColors[et].tint30,[`colorStatus${tt}Foreground2`]:mappedStatusColors[et].tint40,[`colorStatus${tt}Foreground3`]:mappedStatusColors[et].tint20,[`colorStatus${tt}BorderActive`]:mappedStatusColors[et].tint30,[`colorStatus${tt}ForegroundInverted`]:mappedStatusColors[et].shade10,[`colorStatus${tt}Border1`]:mappedStatusColors[et].primary,[`colorStatus${tt}Border2`]:mappedStatusColors[et].tint20};return Object.assign(j,rt)},{});colorStatusTokens.colorStatusDangerForeground3=mappedStatusColors[statusColorMapping.danger].tint30;colorStatusTokens.colorStatusDangerBorder2=mappedStatusColors[statusColorMapping.danger].tint30;colorStatusTokens.colorStatusSuccessForeground3=mappedStatusColors[statusColorMapping.success].tint40;colorStatusTokens.colorStatusSuccessBorder2=mappedStatusColors[statusColorMapping.success].tint40;colorStatusTokens.colorStatusWarningForegroundInverted=mappedStatusColors[statusColorMapping.warning].shade20;const webLightTheme=createLightTheme(brandWeb),generateColorTokens=j=>({colorNeutralForeground1:white,colorNeutralForeground1Hover:white,colorNeutralForeground1Pressed:white,colorNeutralForeground1Selected:white,colorNeutralForeground2:grey[84],colorNeutralForeground2Hover:white,colorNeutralForeground2Pressed:white,colorNeutralForeground2Selected:white,colorNeutralForeground2BrandHover:j[100],colorNeutralForeground2BrandPressed:j[90],colorNeutralForeground2BrandSelected:j[100],colorNeutralForeground3:grey[68],colorNeutralForeground3Hover:grey[84],colorNeutralForeground3Pressed:grey[84],colorNeutralForeground3Selected:grey[84],colorNeutralForeground3BrandHover:j[100],colorNeutralForeground3BrandPressed:j[90],colorNeutralForeground3BrandSelected:j[100],colorNeutralForeground4:grey[60],colorNeutralForegroundDisabled:grey[36],colorNeutralForegroundInvertedDisabled:whiteAlpha[40],colorBrandForegroundLink:j[100],colorBrandForegroundLinkHover:j[110],colorBrandForegroundLinkPressed:j[90],colorBrandForegroundLinkSelected:j[100],colorNeutralForeground2Link:grey[84],colorNeutralForeground2LinkHover:white,colorNeutralForeground2LinkPressed:white,colorNeutralForeground2LinkSelected:white,colorCompoundBrandForeground1:j[100],colorCompoundBrandForeground1Hover:j[110],colorCompoundBrandForeground1Pressed:j[90],colorBrandForeground1:j[100],colorBrandForeground2:j[110],colorBrandForeground2Hover:j[130],colorBrandForeground2Pressed:j[160],colorNeutralForeground1Static:grey[14],colorNeutralForegroundStaticInverted:white,colorNeutralForegroundInverted:grey[14],colorNeutralForegroundInvertedHover:grey[14],colorNeutralForegroundInvertedPressed:grey[14],colorNeutralForegroundInvertedSelected:grey[14],colorNeutralForegroundInverted2:grey[14],colorNeutralForegroundOnBrand:white,colorNeutralForegroundInvertedLink:white,colorNeutralForegroundInvertedLinkHover:white,colorNeutralForegroundInvertedLinkPressed:white,colorNeutralForegroundInvertedLinkSelected:white,colorBrandForegroundInverted:j[80],colorBrandForegroundInvertedHover:j[70],colorBrandForegroundInvertedPressed:j[60],colorBrandForegroundOnLight:j[80],colorBrandForegroundOnLightHover:j[70],colorBrandForegroundOnLightPressed:j[50],colorBrandForegroundOnLightSelected:j[60],colorNeutralBackground1:grey[16],colorNeutralBackground1Hover:grey[24],colorNeutralBackground1Pressed:grey[12],colorNeutralBackground1Selected:grey[22],colorNeutralBackground2:grey[12],colorNeutralBackground2Hover:grey[20],colorNeutralBackground2Pressed:grey[8],colorNeutralBackground2Selected:grey[18],colorNeutralBackground3:grey[8],colorNeutralBackground3Hover:grey[16],colorNeutralBackground3Pressed:grey[4],colorNeutralBackground3Selected:grey[14],colorNeutralBackground4:grey[4],colorNeutralBackground4Hover:grey[12],colorNeutralBackground4Pressed:black,colorNeutralBackground4Selected:grey[10],colorNeutralBackground5:black,colorNeutralBackground5Hover:grey[8],colorNeutralBackground5Pressed:grey[2],colorNeutralBackground5Selected:grey[6],colorNeutralBackground6:grey[20],colorNeutralBackgroundInverted:white,colorNeutralBackgroundStatic:grey[24],colorNeutralBackgroundAlpha:grey10Alpha[50],colorNeutralBackgroundAlpha2:grey12Alpha[70],colorSubtleBackground:"transparent",colorSubtleBackgroundHover:grey[22],colorSubtleBackgroundPressed:grey[18],colorSubtleBackgroundSelected:grey[20],colorSubtleBackgroundLightAlphaHover:grey14Alpha[80],colorSubtleBackgroundLightAlphaPressed:grey14Alpha[50],colorSubtleBackgroundLightAlphaSelected:"transparent",colorSubtleBackgroundInverted:"transparent",colorSubtleBackgroundInvertedHover:blackAlpha[10],colorSubtleBackgroundInvertedPressed:blackAlpha[30],colorSubtleBackgroundInvertedSelected:blackAlpha[20],colorTransparentBackground:"transparent",colorTransparentBackgroundHover:"transparent",colorTransparentBackgroundPressed:"transparent",colorTransparentBackgroundSelected:"transparent",colorNeutralBackgroundDisabled:grey[8],colorNeutralBackgroundInvertedDisabled:whiteAlpha[10],colorNeutralStencil1:grey[34],colorNeutralStencil2:grey[20],colorNeutralStencil1Alpha:whiteAlpha[10],colorNeutralStencil2Alpha:whiteAlpha[5],colorBackgroundOverlay:blackAlpha[50],colorScrollbarOverlay:whiteAlpha[60],colorBrandBackground:j[70],colorBrandBackgroundHover:j[80],colorBrandBackgroundPressed:j[40],colorBrandBackgroundSelected:j[60],colorCompoundBrandBackground:j[100],colorCompoundBrandBackgroundHover:j[110],colorCompoundBrandBackgroundPressed:j[90],colorBrandBackgroundStatic:j[80],colorBrandBackground2:j[20],colorBrandBackground2Hover:j[40],colorBrandBackground2Pressed:j[10],colorBrandBackgroundInverted:white,colorBrandBackgroundInvertedHover:j[160],colorBrandBackgroundInvertedPressed:j[140],colorBrandBackgroundInvertedSelected:j[150],colorNeutralStrokeAccessible:grey[68],colorNeutralStrokeAccessibleHover:grey[74],colorNeutralStrokeAccessiblePressed:grey[70],colorNeutralStrokeAccessibleSelected:j[100],colorNeutralStroke1:grey[40],colorNeutralStroke1Hover:grey[46],colorNeutralStroke1Pressed:grey[42],colorNeutralStroke1Selected:grey[44],colorNeutralStroke2:grey[32],colorNeutralStroke3:grey[24],colorNeutralStrokeSubtle:grey[4],colorNeutralStrokeOnBrand:grey[16],colorNeutralStrokeOnBrand2:white,colorNeutralStrokeOnBrand2Hover:white,colorNeutralStrokeOnBrand2Pressed:white,colorNeutralStrokeOnBrand2Selected:white,colorBrandStroke1:j[100],colorBrandStroke2:j[50],colorBrandStroke2Hover:j[50],colorBrandStroke2Pressed:j[30],colorBrandStroke2Contrast:j[50],colorCompoundBrandStroke:j[100],colorCompoundBrandStrokeHover:j[110],colorCompoundBrandStrokePressed:j[90],colorNeutralStrokeDisabled:grey[26],colorNeutralStrokeInvertedDisabled:whiteAlpha[40],colorTransparentStroke:"transparent",colorTransparentStrokeInteractive:"transparent",colorTransparentStrokeDisabled:"transparent",colorNeutralStrokeAlpha:whiteAlpha[10],colorNeutralStrokeAlpha2:whiteAlpha[20],colorStrokeFocus1:black,colorStrokeFocus2:white,colorNeutralShadowAmbient:"rgba(0,0,0,0.24)",colorNeutralShadowKey:"rgba(0,0,0,0.28)",colorNeutralShadowAmbientLighter:"rgba(0,0,0,0.12)",colorNeutralShadowKeyLighter:"rgba(0,0,0,0.14)",colorNeutralShadowAmbientDarker:"rgba(0,0,0,0.40)",colorNeutralShadowKeyDarker:"rgba(0,0,0,0.48)",colorBrandShadowAmbient:"rgba(0,0,0,0.30)",colorBrandShadowKey:"rgba(0,0,0,0.25)"}),createDarkTheme=j=>{const _e=generateColorTokens(j);return{...borderRadius,...fontSizes,...lineHeights,...fontFamilies,...fontWeights,...strokeWidths,...horizontalSpacings,...verticalSpacings,...durations,...curves,..._e,...colorPaletteTokens,...colorStatusTokens,...createShadowTokens(_e.colorNeutralShadowAmbient,_e.colorNeutralShadowKey),...createShadowTokens(_e.colorBrandShadowAmbient,_e.colorBrandShadowKey,"Brand")}},webDarkTheme=createDarkTheme(brandWeb),fluentProviderClassNames={root:"fui-FluentProvider"},useStyles$z=__styles$1({root:{sj55zd:"f19n0e5",De3pzq:"fxugw4r",fsow6f:["f1o700av","fes3tcz"],Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"}},{d:[".f19n0e5{color:var(--colorNeutralForeground1);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1o700av{text-align:left;}",".fes3tcz{text-align:right;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}"]}),useFluentProviderStyles_unstable=j=>{const _e=useRenderer(),et=useStyles$z({dir:j.dir,renderer:_e});return j.root.className=mergeClasses(fluentProviderClassNames.root,j.themeClassName,et.root,j.root.className),j},useInsertionEffect$1=reactExports.useInsertionEffect?reactExports.useInsertionEffect:useIsomorphicLayoutEffect$1,createStyleTag=(j,_e)=>{if(!j)return;const et=j.createElement("style");return Object.keys(_e).forEach(tt=>{et.setAttribute(tt,_e[tt])}),j.head.appendChild(et),et},insertSheet=(j,_e)=>{const et=j.sheet;et&&(et.cssRules.length>0&&et.deleteRule(0),et.insertRule(_e,0))},useFluentProviderThemeStyleTag=j=>{const{targetDocument:_e,theme:et,rendererAttributes:tt}=j,rt=reactExports.useRef(),nt=useId$1(fluentProviderClassNames.root),ot=tt,it=reactExports.useMemo(()=>createCSSRuleFromTheme(`.${nt}`,et),[et,nt]);return useHandleSSRStyleElements(_e,nt),useInsertionEffect$1(()=>{const st=_e==null?void 0:_e.getElementById(nt);return st?rt.current=st:(rt.current=createStyleTag(_e,{...ot,id:nt}),rt.current&&insertSheet(rt.current,it)),()=>{var lt;(lt=rt.current)===null||lt===void 0||lt.remove()}},[nt,_e,it,ot]),{styleTagId:nt,rule:it}};function useHandleSSRStyleElements(j,_e){reactExports.useState(()=>{if(!j)return;const et=j.getElementById(_e);et&&j.head.append(et)})}const EMPTY_OBJECT={},useFluentProvider_unstable=(j,_e)=>{const et=useFluent(),tt=useTheme(),rt=useOverrides(),nt=reactExports.useContext(CustomStyleHooksContext)||EMPTY_OBJECT,{applyStylesToPortals:ot=!0,customStyleHooks_unstable:it,dir:st=et.dir,targetDocument:lt=et.targetDocument,theme:ut,overrides_unstable:ct={}}=j,dt=shallowMerge(tt,ut),ft=shallowMerge(rt,ct),pt=shallowMerge(nt,it),gt=useRenderer();var vt;const{styleTagId:bt,rule:_t}=useFluentProviderThemeStyleTag({theme:dt,targetDocument:lt,rendererAttributes:(vt=gt.styleElementAttributes)!==null&&vt!==void 0?vt:{}});return{applyStylesToPortals:ot,customStyleHooks_unstable:pt,dir:st,targetDocument:lt,theme:dt,overrides_unstable:ft,themeClassName:bt,components:{root:"div"},root:always(getIntrinsicElementProps("div",{...j,dir:st,ref:useMergedRefs$1(_e,useFocusVisible({targetDocument:lt}))}),{elementType:"div"}),serverStyleProps:{cssRule:_t,attributes:{...gt.styleElementAttributes,id:bt}}}};function shallowMerge(j,_e){return j&&_e?{...j,..._e}:j||_e}function useTheme(){return reactExports.useContext(ThemeContext$1)}function useFluentProviderContextValues_unstable(j){const{applyStylesToPortals:_e,customStyleHooks_unstable:et,dir:tt,root:rt,targetDocument:nt,theme:ot,themeClassName:it,overrides_unstable:st}=j,lt=reactExports.useMemo(()=>({dir:tt,targetDocument:nt}),[tt,nt]),[ut]=reactExports.useState(()=>({})),ct=reactExports.useMemo(()=>({textDirection:tt}),[tt]);return{customStyleHooks_unstable:et,overrides_unstable:st,provider:lt,textDirection:tt,iconDirection:ct,tooltip:ut,theme:ot,themeClassName:_e?rt.className:it}}const FluentProvider=reactExports.forwardRef((j,_e)=>{const et=useFluentProvider_unstable(j,_e);useFluentProviderStyles_unstable(et);const tt=useFluentProviderContextValues_unstable(et);return renderFluentProvider_unstable(et,tt)});FluentProvider.displayName="FluentProvider";const createProvider=j=>et=>{const tt=reactExports.useRef(et.value),rt=reactExports.useRef(0),nt=reactExports.useRef();return nt.current||(nt.current={value:tt,version:rt,listeners:[]}),useIsomorphicLayoutEffect$1(()=>{tt.current=et.value,rt.current+=1,schedulerExports.unstable_runWithPriority(schedulerExports.unstable_NormalPriority,()=>{nt.current.listeners.forEach(ot=>{ot([rt.current,et.value])})})},[et.value]),reactExports.createElement(j,{value:nt.current},et.children)},createContext=j=>{const _e=reactExports.createContext({value:{current:j},version:{current:-1},listeners:[]});return _e.Provider=createProvider(_e.Provider),delete _e.Consumer,_e},useContextSelector=(j,_e)=>{const et=reactExports.useContext(j),{value:{current:tt},version:{current:rt},listeners:nt}=et,ot=_e(tt),[it,st]=reactExports.useReducer((lt,ut)=>{if(!ut)return[tt,ot];if(ut[0]<=rt)return objectIs(lt[1],ot)?lt:[tt,ot];try{if(objectIs(lt[0],ut[1]))return lt;const ct=_e(ut[1]);return objectIs(lt[1],ct)?lt:[ut[1],ct]}catch{}return[lt[0],lt[1]]},[tt,ot]);return objectIs(it[1],ot)||st(void 0),useIsomorphicLayoutEffect$1(()=>(nt.push(st),()=>{const lt=nt.indexOf(st);nt.splice(lt,1)}),[nt]),it[1]};function is$3(j,_e){return j===_e&&(j!==0||1/j===1/_e)||j!==j&&_e!==_e}const objectIs=typeof Object.is=="function"?Object.is:is$3;function useHasParentContext(j){const _e=reactExports.useContext(j);return _e.version?_e.version.current!==-1:!1}const AccordionContext=createContext(void 0),accordionContextDefaultValue={openItems:[],collapsible:!1,multiple:!1,navigation:void 0,requestToggle(){}},{Provider:AccordionProvider}=AccordionContext,useAccordionContext_unstable=j=>useContextSelector(AccordionContext,(_e=accordionContextDefaultValue)=>j(_e)),renderAccordion_unstable=(j,_e)=>jsx$1(j.root,{children:jsx$1(AccordionProvider,{value:_e.accordion,children:j.root.children})}),useAccordion_unstable=(j,_e)=>{const{openItems:et,defaultOpenItems:tt,multiple:rt=!1,collapsible:nt=!1,onToggle:ot,navigation:it}=j,[st,lt]=useControllableState({state:reactExports.useMemo(()=>normalizeValues(et),[et]),defaultState:()=>initializeUncontrolledOpenItems({defaultOpenItems:tt,multiple:rt}),initialState:[]}),ut=useArrowNavigationGroup({circular:it==="circular",tabbable:!0}),ct=useEventCallback$3(dt=>{const ft=updateOpenItems(dt.value,st,rt,nt);ot==null||ot(dt.event,{value:dt.value,openItems:ft}),lt(ft)});return{collapsible:nt,multiple:rt,navigation:it,openItems:st,requestToggle:ct,components:{root:"div"},root:always(getIntrinsicElementProps("div",{...j,...it?ut:void 0,ref:_e}),{elementType:"div"})}};function initializeUncontrolledOpenItems({defaultOpenItems:j,multiple:_e}){return j!==void 0?Array.isArray(j)?_e?j:[j[0]]:[j]:[]}function updateOpenItems(j,_e,et,tt){if(et)if(_e.includes(j)){if(_e.length>1||tt)return _e.filter(rt=>rt!==j)}else return[..._e,j].sort();else return _e[0]===j&&tt?[]:[j];return _e}function normalizeValues(j){if(j!==void 0)return Array.isArray(j)?j:[j]}function useAccordionContextValues_unstable(j){const{navigation:_e,openItems:et,requestToggle:tt,multiple:rt,collapsible:nt}=j;return{accordion:{navigation:_e,openItems:et,requestToggle:tt,collapsible:nt,multiple:rt}}}const accordionClassNames={root:"fui-Accordion"},useAccordionStyles_unstable=j=>(j.root.className=mergeClasses(accordionClassNames.root,j.root.className),j),Accordion=reactExports.forwardRef((j,_e)=>{const et=useAccordion_unstable(j,_e),tt=useAccordionContextValues_unstable(et);return useAccordionStyles_unstable(et),useCustomStyleHook("useAccordionStyles_unstable")(et),renderAccordion_unstable(et,tt)});Accordion.displayName="Accordion";const useAccordionItem_unstable=(j,_e)=>{const{value:et,disabled:tt=!1}=j,rt=useAccordionContext_unstable(it=>it.requestToggle),nt=useAccordionContext_unstable(it=>it.openItems.includes(et)),ot=useEventCallback$3(it=>rt({event:it,value:et}));return{open:nt,value:et,disabled:tt,onHeaderClick:ot,components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"})}};function useAccordionItemContextValues_unstable(j){const{disabled:_e,open:et,value:tt,onHeaderClick:rt}=j;return{accordionItem:reactExports.useMemo(()=>({disabled:_e,open:et,value:tt,onHeaderClick:rt}),[_e,et,tt,rt])}}const AccordionItemContext=reactExports.createContext(void 0),accordionItemContextDefaultValue={open:!1,disabled:!1,value:void 0,onHeaderClick(){}},{Provider:AccordionItemProvider}=AccordionItemContext,useAccordionItemContext_unstable=()=>{var j;return(j=reactExports.useContext(AccordionItemContext))!==null&&j!==void 0?j:accordionItemContextDefaultValue},renderAccordionItem_unstable=(j,_e)=>jsx$1(j.root,{children:jsx$1(AccordionItemProvider,{value:_e.accordionItem,children:j.root.children})}),accordionItemClassNames={root:"fui-AccordionItem"},useAccordionItemStyles_unstable=j=>(j.root.className=mergeClasses(accordionItemClassNames.root,j.root.className),j),AccordionItem=reactExports.forwardRef((j,_e)=>{const et=useAccordionItem_unstable(j,_e),tt=useAccordionItemContextValues_unstable(et);return useAccordionItemStyles_unstable(et),useCustomStyleHook("useAccordionItemStyles_unstable")(et),renderAccordionItem_unstable(et,tt)});AccordionItem.displayName="AccordionItem";const Enter="Enter",Space=" ",Tab$2="Tab",ArrowDown="ArrowDown",ArrowLeft="ArrowLeft",ArrowRight="ArrowRight",ArrowUp="ArrowUp",End="End",Home="Home",PageDown="PageDown",PageUp="PageUp",Escape="Escape";function useARIAButtonProps(j,_e){const{disabled:et,disabledFocusable:tt=!1,["aria-disabled"]:rt,onClick:nt,onKeyDown:ot,onKeyUp:it,...st}=_e??{},lt=typeof rt=="string"?rt==="true":rt,ut=et||tt||lt,ct=useEventCallback$3(pt=>{ut?(pt.preventDefault(),pt.stopPropagation()):nt==null||nt(pt)}),dt=useEventCallback$3(pt=>{if(ot==null||ot(pt),pt.isDefaultPrevented())return;const gt=pt.key;if(ut&&(gt===Enter||gt===Space)){pt.preventDefault(),pt.stopPropagation();return}if(gt===Space){pt.preventDefault();return}else gt===Enter&&(pt.preventDefault(),pt.currentTarget.click())}),ft=useEventCallback$3(pt=>{if(it==null||it(pt),pt.isDefaultPrevented())return;const gt=pt.key;if(ut&&(gt===Enter||gt===Space)){pt.preventDefault(),pt.stopPropagation();return}gt===Space&&(pt.preventDefault(),pt.currentTarget.click())});if(j==="button"||j===void 0)return{...st,disabled:et&&!tt,"aria-disabled":tt?!0:lt,onClick:tt?void 0:ct,onKeyUp:tt?void 0:it,onKeyDown:tt?void 0:ot};{const pt={role:"button",tabIndex:et&&!tt?void 0:0,...st,onClick:ct,onKeyUp:ft,onKeyDown:dt,"aria-disabled":et||tt||lt};return j==="a"&&ut&&(pt.href=void 0),pt}}const useAccordionHeader_unstable=(j,_e)=>{const{icon:et,button:tt,expandIcon:rt,inline:nt=!1,size:ot="medium",expandIconPosition:it="start"}=j,{value:st,disabled:lt,open:ut}=useAccordionItemContext_unstable(),ct=useAccordionContext_unstable(vt=>vt.requestToggle),dt=useAccordionContext_unstable(vt=>!vt.collapsible&&vt.openItems.length===1&&ut),{dir:ft}=useFluent();let pt;it==="end"?pt=ut?-90:90:pt=ut?90:ft!=="rtl"?0:180;const gt=always(tt,{elementType:"button",defaultProps:{disabled:lt,disabledFocusable:dt,"aria-expanded":ut,type:"button"}});return gt.onClick=useEventCallback$3(vt=>{if(isResolvedShorthand(tt)){var bt;(bt=tt.onClick)===null||bt===void 0||bt.call(tt,vt)}vt.defaultPrevented||ct({value:st,event:vt})}),{disabled:lt,open:ut,size:ot,inline:nt,expandIconPosition:it,components:{root:"div",button:"button",expandIcon:"span",icon:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"}),icon:optional(et,{elementType:"div"}),expandIcon:optional(rt,{renderByDefault:!0,defaultProps:{children:reactExports.createElement(ChevronRightRegular,{style:{transform:`rotate(${pt}deg)`}}),"aria-hidden":!0},elementType:"span"}),button:useARIAButtonProps(gt.as,gt)}},AccordionHeaderContext=reactExports.createContext(void 0),{Provider:AccordionHeaderProvider}=AccordionHeaderContext,renderAccordionHeader_unstable=(j,_e)=>jsx$1(AccordionHeaderProvider,{value:_e.accordionHeader,children:jsx$1(j.root,{children:jsxs(j.button,{children:[j.expandIconPosition==="start"&&j.expandIcon&&jsx$1(j.expandIcon,{}),j.icon&&jsx$1(j.icon,{}),j.root.children,j.expandIconPosition==="end"&&j.expandIcon&&jsx$1(j.expandIcon,{})]})})}),accordionHeaderClassNames={root:"fui-AccordionHeader",button:"fui-AccordionHeader__button",expandIcon:"fui-AccordionHeader__expandIcon",icon:"fui-AccordionHeader__icon"},useStyles$y=__styles({resetButton:{B7ck84d:"f1e4lqlz",De3pzq:"f1u2r49w",sj55zd:"f1ym3bx4",Bahqtrf:"f1mo0ibp",Be2twd7:"fjoy568",Bg96gwp:"fytdu2e",B68tc82:"f1mtd64y",Bmxbyg5:"f1y7q3j9",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1cnd47f","fhxju0i"],Bv0vk6g:"f37px4s",fsow6f:"fgusgyc"},focusIndicator:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bb7d1vk:"f226i61",zhwhgb:["f13kzufm","fsx75g8"],dhy2o1:"flujwa2",Gfyso:["fsx75g8","f13kzufm"],Bm4h7ae:"f15bsgw9",B7ys5i9:"f14e48fq",Busjfv9:"f18yb2kv",Bhk32uz:"fd6o370",Bf4ptjt:"fh1cnn4",kclons:["fy7oxxb","f184ne2d"],Bhdgwq3:"fpukqih",Blkhhs4:["f184ne2d","fy7oxxb"],Bqtpl0w:"frrh606",clg4pj:["f1v5zibi","fo2hd23"],hgwjuy:"ful5kiu",Bonggc9:["fo2hd23","f1v5zibi"],B1tsrr9:["f1jqcqds","ftffrms"],Dah5zi:["ftffrms","f1jqcqds"],Bkh64rk:["f2e7qr6","fsr1zz6"],qqdqy8:["fsr1zz6","f2e7qr6"],B6dhp37:"f1dvezut",i03rao:["fd0oaoj","f1cwg4i8"],Boxcth7:"fjvm52t",Bsom6fd:["f1cwg4i8","fd0oaoj"],J0r882:"f57olzd",Bule8hv:["f4stah7","fs1por5"],Bjwuhne:"f480a47",Ghsupd:["fs1por5","f4stah7"]},root:{sj55zd:"f19n0e5",De3pzq:"f1c21dwh",B6of3ja:"f1hu3pq6",t21cq0:["f11qmguv","f1tyq0we"],jrapky:"f19f4twv",Frg6f3:["f1tyq0we","f11qmguv"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"]},rootDisabled:{Bcmaq0h:"fwrgwhw",sj55zd:"f1s2aq7o"},rootInline:{mc9l5x:"f14t3ns0"},button:{qhf8xq:"f10pi13n",a9b677:"fly5x3f",B4j52fo:"f5ogflp",Bekrc4i:["f1hqa2wf","finvdd3"],Bn0qgzm:"f1f09k3d",ibv6hh:["finvdd3","f1hqa2wf"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],z8tnut:"f1g0x7ka",z189sj:["fw5db7e","f1uw59to"],Byoj8tv:"f1qch9an",uwmqm3:["f1ng84yb","f11gcy0p"],sshi5w:"f5pgtk9",mc9l5x:"f22iagw",Bt984gj:"f122n59",Bceei9c:"f1k6fduh",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B7ck84d:"f1ewtqcl"},buttonSmall:{sshi5w:"f1nxs5xn",Be2twd7:"fy9rknc"},buttonLarge:{Bg96gwp:"faaz57k",Be2twd7:"fod5ikn"},buttonExtraLarge:{Bg96gwp:"f106mvju",Be2twd7:"f1pp30po"},buttonInline:{mc9l5x:"ftuwxu6"},buttonExpandIconEndNoIcon:{uwmqm3:["f1uw59to","fw5db7e"]},buttonExpandIconEnd:{z189sj:["f11gcy0p","f1ng84yb"]},buttonDisabled:{Bceei9c:"fdrzuqr"},expandIcon:{Bqenvij:"f1l02sjl",mc9l5x:"f22iagw",Bt984gj:"f122n59",Bg96gwp:"f106mvju",Be2twd7:"f1pp30po"},expandIconStart:{z189sj:["f1vdfbxk","f1f5gg8d"]},expandIconEnd:{Bh6795r:"fqerorx",Bnnss6s:"f1neuvcm",xawz:"flqd7gy",mc9l5x:"f22iagw",Brf1p80:"f9c4gz4",uwmqm3:["f1f5gg8d","f1vdfbxk"]},icon:{Bqenvij:"f1l02sjl",mc9l5x:"f22iagw",Bt984gj:"f122n59",z189sj:["f1vdfbxk","f1f5gg8d"],Bg96gwp:"f106mvju",Be2twd7:"f1pp30po"}},{d:[".f1e4lqlz{box-sizing:content-box;}",".f1u2r49w{background-color:inherit;}",".f1ym3bx4{color:inherit;}",".f1mo0ibp{font-family:inherit;}",".fjoy568{font-size:inherit;}",".fytdu2e{line-height:normal;}",".f1mtd64y{overflow-x:visible;}",".f1y7q3j9{overflow-y:visible;}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1qch9an{padding-bottom:0;}",".f37px4s{-webkit-appearance:button;}",".fgusgyc{text-align:unset;}",".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",'.f15bsgw9[data-fui-focus-visible]::after{content:"";}',".f14e48fq[data-fui-focus-visible]::after{position:absolute;}",".f18yb2kv[data-fui-focus-visible]::after{pointer-events:none;}",".fd6o370[data-fui-focus-visible]::after{z-index:1;}",".fh1cnn4[data-fui-focus-visible]::after{border-top-style:solid;}",".fy7oxxb[data-fui-focus-visible]::after{border-right-style:solid;}",".f184ne2d[data-fui-focus-visible]::after{border-left-style:solid;}",".fpukqih[data-fui-focus-visible]::after{border-bottom-style:solid;}",".frrh606[data-fui-focus-visible]::after{border-top-width:2px;}",".f1v5zibi[data-fui-focus-visible]::after{border-right-width:2px;}",".fo2hd23[data-fui-focus-visible]::after{border-left-width:2px;}",".ful5kiu[data-fui-focus-visible]::after{border-bottom-width:2px;}",".f1jqcqds[data-fui-focus-visible]::after{border-bottom-right-radius:var(--borderRadiusMedium);}",".ftffrms[data-fui-focus-visible]::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f2e7qr6[data-fui-focus-visible]::after{border-top-right-radius:var(--borderRadiusMedium);}",".fsr1zz6[data-fui-focus-visible]::after{border-top-left-radius:var(--borderRadiusMedium);}",".f1dvezut[data-fui-focus-visible]::after{border-top-color:var(--colorStrokeFocus2);}",".fd0oaoj[data-fui-focus-visible]::after{border-right-color:var(--colorStrokeFocus2);}",".f1cwg4i8[data-fui-focus-visible]::after{border-left-color:var(--colorStrokeFocus2);}",".fjvm52t[data-fui-focus-visible]::after{border-bottom-color:var(--colorStrokeFocus2);}",".f57olzd[data-fui-focus-visible]::after{top:calc(2px * -1);}",".f4stah7[data-fui-focus-visible]::after{right:calc(2px * -1);}",".fs1por5[data-fui-focus-visible]::after{left:calc(2px * -1);}",".f480a47[data-fui-focus-visible]::after{bottom:calc(2px * -1);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1hu3pq6{margin-top:0;}",".f11qmguv{margin-right:0;}",".f1tyq0we{margin-left:0;}",".f19f4twv{margin-bottom:0;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".fwrgwhw{background-image:none;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f14t3ns0{display:inline-block;}",".f10pi13n{position:relative;}",".fly5x3f{width:100%;}",".f5ogflp{border-top-width:1px;}",".f1hqa2wf{border-right-width:1px;}",".finvdd3{border-left-width:1px;}",".f1f09k3d{border-bottom-width:1px;}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}",".fw5db7e{padding-right:var(--spacingHorizontalM);}",".f1uw59to{padding-left:var(--spacingHorizontalM);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f5pgtk9{min-height:44px;}",".f22iagw{display:flex;}",".f122n59{align-items:center;}",".f1k6fduh{cursor:pointer;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1ewtqcl{box-sizing:border-box;}",".f1nxs5xn{min-height:32px;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".f106mvju{line-height:var(--lineHeightBase500);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".ftuwxu6{display:inline-flex;}",".fdrzuqr{cursor:not-allowed;}",".f1l02sjl{height:100%;}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".fqerorx{flex-grow:1;}",".f1neuvcm{flex-shrink:1;}",".flqd7gy{flex-basis:0%;}",".f9c4gz4{justify-content:flex-end;}"],f:[".ftqa4ok:focus{outline-style:none;}"],i:[".f2hkw1w:focus-visible{outline-style:none;}"],m:[["@media (forced-colors: active){.f226i61[data-fui-focus-visible]::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f13kzufm[data-fui-focus-visible]::after{border-right-color:Highlight;}.fsx75g8[data-fui-focus-visible]::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.flujwa2[data-fui-focus-visible]::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}]]}),useAccordionHeaderStyles_unstable=j=>{const _e=useStyles$y();return j.root.className=mergeClasses(accordionHeaderClassNames.root,_e.root,j.inline&&_e.rootInline,j.disabled&&_e.rootDisabled,j.root.className),j.button.className=mergeClasses(accordionHeaderClassNames.button,_e.resetButton,_e.button,_e.focusIndicator,j.expandIconPosition==="end"&&!j.icon&&_e.buttonExpandIconEndNoIcon,j.expandIconPosition==="end"&&_e.buttonExpandIconEnd,j.inline&&_e.buttonInline,j.size==="small"&&_e.buttonSmall,j.size==="large"&&_e.buttonLarge,j.size==="extra-large"&&_e.buttonExtraLarge,j.disabled&&_e.buttonDisabled,j.button.className),j.expandIcon&&(j.expandIcon.className=mergeClasses(accordionHeaderClassNames.expandIcon,_e.expandIcon,j.expandIconPosition==="start"&&_e.expandIconStart,j.expandIconPosition==="end"&&_e.expandIconEnd,j.expandIcon.className)),j.icon&&(j.icon.className=mergeClasses(accordionHeaderClassNames.icon,_e.icon,j.icon.className)),j};function useAccordionHeaderContextValues_unstable(j){const{disabled:_e,expandIconPosition:et,open:tt,size:rt}=j;return{accordionHeader:reactExports.useMemo(()=>({disabled:_e,expandIconPosition:et,open:tt,size:rt}),[_e,et,tt,rt])}}const AccordionHeader=reactExports.forwardRef((j,_e)=>{const et=useAccordionHeader_unstable(j,_e),tt=useAccordionHeaderContextValues_unstable(et);return useAccordionHeaderStyles_unstable(et),useCustomStyleHook("useAccordionHeaderStyles_unstable")(et),renderAccordionHeader_unstable(et,tt)});AccordionHeader.displayName="AccordionHeader";const useAccordionPanel_unstable=(j,_e)=>{const{open:et}=useAccordionItemContext_unstable(),tt=useTabsterAttributes({focusable:{excludeFromMover:!0}}),rt=useAccordionContext_unstable(nt=>nt.navigation);return{open:et,components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,...j,...rt&&tt}),{elementType:"div"})}},renderAccordionPanel_unstable=j=>j.open?jsx$1(j.root,{children:j.root.children}):null,accordionPanelClassNames={root:"fui-AccordionPanel"},useStyles$x=__styles({root:{B6of3ja:"f1hu3pq6",t21cq0:["fkujibs","f199hnxi"],jrapky:"f19f4twv",Frg6f3:["f199hnxi","fkujibs"]}},{d:[".f1hu3pq6{margin-top:0;}",".fkujibs{margin-right:var(--spacingHorizontalM);}",".f199hnxi{margin-left:var(--spacingHorizontalM);}",".f19f4twv{margin-bottom:0;}"]}),useAccordionPanelStyles_unstable=j=>{const _e=useStyles$x();return j.root.className=mergeClasses(accordionPanelClassNames.root,_e.root,j.root.className),j},AccordionPanel=reactExports.forwardRef((j,_e)=>{const et=useAccordionPanel_unstable(j,_e);return useAccordionPanelStyles_unstable(et),useCustomStyleHook("useAccordionPanelStyles_unstable")(et),renderAccordionPanel_unstable(et)});AccordionPanel.displayName="AccordionPanel";const useBadge_unstable=(j,_e)=>{const{shape:et="circular",size:tt="medium",iconPosition:rt="before",appearance:nt="filled",color:ot="brand"}=j;return{shape:et,size:tt,iconPosition:rt,appearance:nt,color:ot,components:{root:"div",icon:"span"},root:always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"}),icon:optional(j.icon,{elementType:"span"})}},badgeClassNames={root:"fui-Badge",icon:"fui-Badge__icon"},useRootClassName$1=__resetStyles("r1l7mb74","rntuq2r",[".r1l7mb74{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;position:relative;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase200);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase200);height:20px;width:20px;min-width:max-content;padding:0 calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));border-radius:var(--borderRadiusCircular);border-color:var(--colorTransparentStroke);}",'.r1l7mb74::after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;border-style:solid;border-color:inherit;border-width:var(--strokeWidthThin);border-radius:inherit;}',".rntuq2r{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;position:relative;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase200);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase200);height:20px;width:20px;min-width:max-content;padding:0 calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));border-radius:var(--borderRadiusCircular);border-color:var(--colorTransparentStroke);}",'.rntuq2r::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-style:solid;border-color:inherit;border-width:var(--strokeWidthThin);border-radius:inherit;}']),useRootStyles$6=__styles({fontSmallToTiny:{Bahqtrf:"fk6fouc",Be2twd7:"f13mqy1h",Bhrd7zp:"fl43uef",Bg96gwp:"fcpl73t"},tiny:{a9b677:"f16dn6v3",Bqenvij:"f3mu39s",Be2twd7:"f130uwy9",Bg96gwp:"fod1mrr",Bf4jedk:"f18p0k4z",z8tnut:"f1q8r6hh",z189sj:["fio2s09","fkiw60q"],Byoj8tv:"f9yu9nh",uwmqm3:["fkiw60q","fio2s09"]},"extra-small":{a9b677:"fpd43o0",Bqenvij:"f30q22z",Be2twd7:"f1tccstq",Bg96gwp:"f1y3arg5",Bf4jedk:"f18p0k4z",z8tnut:"f1q8r6hh",z189sj:["fio2s09","fkiw60q"],Byoj8tv:"f9yu9nh",uwmqm3:["fkiw60q","fio2s09"]},small:{a9b677:"fjw5fx7",Bqenvij:"fd461yt",z8tnut:"f1g0x7ka",z189sj:["fps1v9c","f17ae1jz"],Byoj8tv:"f1qch9an",uwmqm3:["f17ae1jz","fps1v9c"]},medium:{},large:{a9b677:"fq4mcun",Bqenvij:"frvgh55",z8tnut:"f1g0x7ka",z189sj:["f17a92cs","f1pe0i86"],Byoj8tv:"f1qch9an",uwmqm3:["f1pe0i86","f17a92cs"]},"extra-large":{a9b677:"f1szoe96",Bqenvij:"f1d2rq10",z8tnut:"f1g0x7ka",z189sj:["fqznh8f","f1xile11"],Byoj8tv:"f1qch9an",uwmqm3:["f1xile11","fqznh8f"]},square:{Bbmb7ep:["fzi6hpg","fyowgf4"],Beyfa6y:["fyowgf4","fzi6hpg"],B7oj6ja:["f3fg2lr","f13av6d4"],Btl43ni:["f13av6d4","f3fg2lr"]},rounded:{Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"]},roundedSmallToTiny:{Bbmb7ep:["f1g3puop","fi2rrw2"],Beyfa6y:["fi2rrw2","f1g3puop"],B7oj6ja:["f1rstyi9","f1s4nn1u"],Btl43ni:["f1s4nn1u","f1rstyi9"]},circular:{},borderGhost:{ap17g6:"f10ludwy"},filled:{},"filled-brand":{De3pzq:"ffp7eso",sj55zd:"f1phragk"},"filled-danger":{De3pzq:"fdl5y0r",sj55zd:"f1phragk"},"filled-important":{De3pzq:"f1c73kur",sj55zd:"fr0bkrk"},"filled-informative":{De3pzq:"f3vzo32",sj55zd:"f11d4kpn"},"filled-severe":{De3pzq:"f1s438gw",sj55zd:"f1phragk"},"filled-subtle":{De3pzq:"fxugw4r",sj55zd:"f19n0e5"},"filled-success":{De3pzq:"flxk52p",sj55zd:"f1phragk"},"filled-warning":{De3pzq:"ffq97bm",sj55zd:"ff5vbop"},ghost:{},"ghost-brand":{sj55zd:"f16muhyy"},"ghost-danger":{sj55zd:"f1whyuy6"},"ghost-important":{sj55zd:"f19n0e5"},"ghost-informative":{sj55zd:"f11d4kpn"},"ghost-severe":{sj55zd:"f1l8vj45"},"ghost-subtle":{sj55zd:"fonrgv7"},"ghost-success":{sj55zd:"f1m7fhi8"},"ghost-warning":{sj55zd:"fpti2h4"},outline:{g2u3we:"f23ftbb",h3c5rm:["f1gkuv52","f1p1bl80"],B9xav0g:"fioka3i",zhjwy3:["f1p1bl80","f1gkuv52"]},"outline-brand":{sj55zd:"f16muhyy"},"outline-danger":{sj55zd:"f1whyuy6",g2u3we:"fyqpifd",h3c5rm:["f3ukxca","f1k7dugc"],B9xav0g:"f1njxb2b",zhjwy3:["f1k7dugc","f3ukxca"]},"outline-important":{sj55zd:"f11d4kpn",g2u3we:"fq0vr37",h3c5rm:["f1byw159","f11cr0be"],B9xav0g:"f1c1zstj",zhjwy3:["f11cr0be","f1byw159"]},"outline-informative":{sj55zd:"f11d4kpn",g2u3we:"f68mrw8",h3c5rm:["f7pw515","fw35ms5"],B9xav0g:"frpde29",zhjwy3:["fw35ms5","f7pw515"]},"outline-severe":{sj55zd:"f1l8vj45"},"outline-subtle":{sj55zd:"fonrgv7"},"outline-success":{sj55zd:"f1m7fhi8",g2u3we:"f1mmhl11",h3c5rm:["f1tjpp2f","f1ocn5n7"],B9xav0g:"f1gjv25d",zhjwy3:["f1ocn5n7","f1tjpp2f"]},"outline-warning":{sj55zd:"fpti2h4"},tint:{},"tint-brand":{De3pzq:"f16xkysk",sj55zd:"faj9fo0",g2u3we:"f161y7kd",h3c5rm:["f1c8dzaj","f1sl6hi9"],B9xav0g:"f1619yhw",zhjwy3:["f1sl6hi9","f1c8dzaj"]},"tint-danger":{De3pzq:"ff0poqj",sj55zd:"f1hcrxcs",g2u3we:"f1oqjm8o",h3c5rm:["fkgrb8g","frb5wm0"],B9xav0g:"f1iai1ph",zhjwy3:["frb5wm0","fkgrb8g"]},"tint-important":{De3pzq:"f945g0u",sj55zd:"fr0bkrk",g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},"tint-informative":{De3pzq:"f1ctqxl6",sj55zd:"f11d4kpn",g2u3we:"f68mrw8",h3c5rm:["f7pw515","fw35ms5"],B9xav0g:"frpde29",zhjwy3:["fw35ms5","f7pw515"]},"tint-severe":{De3pzq:"f1xzsg4",sj55zd:"f1k5f75o",g2u3we:"fxy9dsj",h3c5rm:["f54u6j2","fcm23ze"],B9xav0g:"f4vf0uq",zhjwy3:["fcm23ze","f54u6j2"]},"tint-subtle":{De3pzq:"fxugw4r",sj55zd:"f11d4kpn",g2u3we:"f68mrw8",h3c5rm:["f7pw515","fw35ms5"],B9xav0g:"frpde29",zhjwy3:["fw35ms5","f7pw515"]},"tint-success":{De3pzq:"f2vsrz6",sj55zd:"ffmvakt",g2u3we:"fdmic9h",h3c5rm:["f196y6m","fetptd8"],B9xav0g:"f1pev5xq",zhjwy3:["fetptd8","f196y6m"]},"tint-warning":{De3pzq:"f10s6hli",sj55zd:"f42v8de",g2u3we:"fn9i3n",h3c5rm:["f1aw8cx4","f51if14"],B9xav0g:"fvq8iai",zhjwy3:["f51if14","f1aw8cx4"]}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".f13mqy1h{font-size:var(--fontSizeBase100);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fcpl73t{line-height:var(--lineHeightBase100);}",".f16dn6v3{width:6px;}",".f3mu39s{height:6px;}",".f130uwy9{font-size:4px;}",".fod1mrr{line-height:4px;}",".f18p0k4z{min-width:unset;}",".f1q8r6hh{padding-top:unset;}",".fio2s09{padding-right:unset;}",".fkiw60q{padding-left:unset;}",".f9yu9nh{padding-bottom:unset;}",".fpd43o0{width:10px;}",".f30q22z{height:10px;}",".f1tccstq{font-size:6px;}",".f1y3arg5{line-height:6px;}",".fjw5fx7{width:16px;}",".fd461yt{height:16px;}",".f1g0x7ka{padding-top:0;}",".fps1v9c{padding-right:calc(var(--spacingHorizontalXXS) + var(--spacingHorizontalXXS));}",".f17ae1jz{padding-left:calc(var(--spacingHorizontalXXS) + var(--spacingHorizontalXXS));}",".f1qch9an{padding-bottom:0;}",".fq4mcun{width:24px;}",".frvgh55{height:24px;}",".f17a92cs{padding-right:calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));}",".f1pe0i86{padding-left:calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));}",".f1szoe96{width:32px;}",".f1d2rq10{height:32px;}",".fqznh8f{padding-right:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".f1xile11{padding-left:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".fzi6hpg{border-bottom-right-radius:var(--borderRadiusNone);}",".fyowgf4{border-bottom-left-radius:var(--borderRadiusNone);}",".f3fg2lr{border-top-right-radius:var(--borderRadiusNone);}",".f13av6d4{border-top-left-radius:var(--borderRadiusNone);}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f1g3puop{border-bottom-right-radius:var(--borderRadiusSmall);}",".fi2rrw2{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1rstyi9{border-top-right-radius:var(--borderRadiusSmall);}",".f1s4nn1u{border-top-left-radius:var(--borderRadiusSmall);}",".f10ludwy::after{display:none;}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".fdl5y0r{background-color:var(--colorPaletteRedBackground3);}",".f1c73kur{background-color:var(--colorNeutralForeground1);}",".fr0bkrk{color:var(--colorNeutralBackground1);}",".f3vzo32{background-color:var(--colorNeutralBackground5);}",".f11d4kpn{color:var(--colorNeutralForeground3);}",".f1s438gw{background-color:var(--colorPaletteDarkOrangeBackground3);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".flxk52p{background-color:var(--colorPaletteGreenBackground3);}",".ffq97bm{background-color:var(--colorPaletteYellowBackground3);}",".ff5vbop{color:var(--colorNeutralForeground1Static);}",".f16muhyy{color:var(--colorBrandForeground1);}",".f1whyuy6{color:var(--colorPaletteRedForeground3);}",".f1l8vj45{color:var(--colorPaletteDarkOrangeForeground3);}",".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".f1m7fhi8{color:var(--colorPaletteGreenForeground3);}",".fpti2h4{color:var(--colorPaletteYellowForeground2);}",".f23ftbb{border-top-color:currentColor;}",".f1gkuv52{border-right-color:currentColor;}",".f1p1bl80{border-left-color:currentColor;}",".fioka3i{border-bottom-color:currentColor;}",".fyqpifd{border-top-color:var(--colorPaletteRedBorder2);}",".f3ukxca{border-right-color:var(--colorPaletteRedBorder2);}",".f1k7dugc{border-left-color:var(--colorPaletteRedBorder2);}",".f1njxb2b{border-bottom-color:var(--colorPaletteRedBorder2);}",".fq0vr37{border-top-color:var(--colorNeutralStrokeAccessible);}",".f1byw159{border-right-color:var(--colorNeutralStrokeAccessible);}",".f11cr0be{border-left-color:var(--colorNeutralStrokeAccessible);}",".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}",".f68mrw8{border-top-color:var(--colorNeutralStroke2);}",".f7pw515{border-right-color:var(--colorNeutralStroke2);}",".fw35ms5{border-left-color:var(--colorNeutralStroke2);}",".frpde29{border-bottom-color:var(--colorNeutralStroke2);}",".f1mmhl11{border-top-color:var(--colorPaletteGreenBorder2);}",".f1tjpp2f{border-right-color:var(--colorPaletteGreenBorder2);}",".f1ocn5n7{border-left-color:var(--colorPaletteGreenBorder2);}",".f1gjv25d{border-bottom-color:var(--colorPaletteGreenBorder2);}",".f16xkysk{background-color:var(--colorBrandBackground2);}",".faj9fo0{color:var(--colorBrandForeground2);}",".f161y7kd{border-top-color:var(--colorBrandStroke2);}",".f1c8dzaj{border-right-color:var(--colorBrandStroke2);}",".f1sl6hi9{border-left-color:var(--colorBrandStroke2);}",".f1619yhw{border-bottom-color:var(--colorBrandStroke2);}",".ff0poqj{background-color:var(--colorPaletteRedBackground1);}",".f1hcrxcs{color:var(--colorPaletteRedForeground1);}",".f1oqjm8o{border-top-color:var(--colorPaletteRedBorder1);}",".fkgrb8g{border-right-color:var(--colorPaletteRedBorder1);}",".frb5wm0{border-left-color:var(--colorPaletteRedBorder1);}",".f1iai1ph{border-bottom-color:var(--colorPaletteRedBorder1);}",".f945g0u{background-color:var(--colorNeutralForeground3);}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".f1ctqxl6{background-color:var(--colorNeutralBackground4);}",".f1xzsg4{background-color:var(--colorPaletteDarkOrangeBackground1);}",".f1k5f75o{color:var(--colorPaletteDarkOrangeForeground1);}",".fxy9dsj{border-top-color:var(--colorPaletteDarkOrangeBorder1);}",".f54u6j2{border-right-color:var(--colorPaletteDarkOrangeBorder1);}",".fcm23ze{border-left-color:var(--colorPaletteDarkOrangeBorder1);}",".f4vf0uq{border-bottom-color:var(--colorPaletteDarkOrangeBorder1);}",".f2vsrz6{background-color:var(--colorPaletteGreenBackground1);}",".ffmvakt{color:var(--colorPaletteGreenForeground1);}",".fdmic9h{border-top-color:var(--colorPaletteGreenBorder1);}",".f196y6m{border-right-color:var(--colorPaletteGreenBorder1);}",".fetptd8{border-left-color:var(--colorPaletteGreenBorder1);}",".f1pev5xq{border-bottom-color:var(--colorPaletteGreenBorder1);}",".f10s6hli{background-color:var(--colorPaletteYellowBackground1);}",".f42v8de{color:var(--colorPaletteYellowForeground1);}",".fn9i3n{border-top-color:var(--colorPaletteYellowBorder1);}",".f1aw8cx4{border-right-color:var(--colorPaletteYellowBorder1);}",".f51if14{border-left-color:var(--colorPaletteYellowBorder1);}",".fvq8iai{border-bottom-color:var(--colorPaletteYellowBorder1);}"]}),useIconRootClassName=__resetStyles("rttl5z0",null,[".rttl5z0{display:flex;line-height:1;margin:0 calc(-1 * var(--spacingHorizontalXXS));font-size:12px;}"]),useIconStyles$3=__styles({beforeText:{t21cq0:["f1t8l4o1","f11juvx6"]},afterText:{Frg6f3:["f11juvx6","f1t8l4o1"]},beforeTextXL:{t21cq0:["f1rs9grm","f1kwmkpi"]},afterTextXL:{Frg6f3:["f1kwmkpi","f1rs9grm"]},tiny:{Be2twd7:"f1tccstq"},"extra-small":{Be2twd7:"fnmn6fi"},small:{Be2twd7:"f1ugzwwg"},medium:{},large:{Be2twd7:"f4ybsrx"},"extra-large":{Be2twd7:"fe5j1ua"}},{d:[".f1t8l4o1{margin-right:calc(var(--spacingHorizontalXXS) + var(--spacingHorizontalXXS));}",".f11juvx6{margin-left:calc(var(--spacingHorizontalXXS) + var(--spacingHorizontalXXS));}",".f1rs9grm{margin-right:calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));}",".f1kwmkpi{margin-left:calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));}",".f1tccstq{font-size:6px;}",".fnmn6fi{font-size:10px;}",".f1ugzwwg{font-size:12px;}",".f4ybsrx{font-size:16px;}",".fe5j1ua{font-size:20px;}"]}),useBadgeStyles_unstable=j=>{const _e=useRootClassName$1(),et=useRootStyles$6(),tt=j.size==="small"||j.size==="extra-small"||j.size==="tiny";j.root.className=mergeClasses(badgeClassNames.root,_e,tt&&et.fontSmallToTiny,et[j.size],et[j.shape],j.shape==="rounded"&&tt&&et.roundedSmallToTiny,j.appearance==="ghost"&&et.borderGhost,et[j.appearance],et[`${j.appearance}-${j.color}`],j.root.className);const rt=useIconRootClassName(),nt=useIconStyles$3();if(j.icon){let ot;j.root.children&&(j.size==="extra-large"?ot=j.iconPosition==="after"?nt.afterTextXL:nt.beforeTextXL:ot=j.iconPosition==="after"?nt.afterText:nt.beforeText),j.icon.className=mergeClasses(badgeClassNames.icon,rt,ot,nt[j.size],j.icon.className)}return j},renderBadge_unstable=j=>jsxs(j.root,{children:[j.iconPosition==="before"&&j.icon&&jsx$1(j.icon,{}),j.root.children,j.iconPosition==="after"&&j.icon&&jsx$1(j.icon,{})]}),Badge$2=reactExports.forwardRef((j,_e)=>{const et=useBadge_unstable(j,_e);return useBadgeStyles_unstable(et),useCustomStyleHook("useBadgeStyles_unstable")(et),renderBadge_unstable(et)});Badge$2.displayName="Badge";const useCounterBadge_unstable=(j,_e)=>{const{shape:et="circular",appearance:tt="filled",showZero:rt=!1,overflowCount:nt=99,count:ot=0,dot:it=!1}=j,st={...useBadge_unstable(j,_e),shape:et,appearance:tt,showZero:rt,count:ot,dot:it};return(ot!==0||rt)&&!it&&!st.root.children&&(st.root.children=ot>nt?`${nt}+`:`${ot}`),st},counterBadgeClassNames={root:"fui-CounterBadge",icon:"fui-CounterBadge__icon"},useStyles$w=__styles({dot:{Bf4jedk:"fgfkb25",a9b677:"f16dn6v3",Bqenvij:"f3mu39s",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1cnd47f","fhxju0i"]},hide:{mc9l5x:"fjseox"}},{d:[".fgfkb25{min-width:auto;}",".f16dn6v3{width:6px;}",".f3mu39s{height:6px;}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1qch9an{padding-bottom:0;}",".fjseox{display:none;}"]}),useCounterBadgeStyles_unstable=j=>{const _e=useStyles$w();return j.root.className=mergeClasses(counterBadgeClassNames.root,j.dot&&_e.dot,!j.root.children&&!j.dot&&_e.hide,j.root.className),j.icon&&(j.icon.className=mergeClasses(counterBadgeClassNames.icon,j.icon.className)),useBadgeStyles_unstable(j)},CounterBadge=reactExports.forwardRef((j,_e)=>{const et=useCounterBadge_unstable(j,_e);return useCounterBadgeStyles_unstable(et),useCustomStyleHook("useCounterBadgeStyles_unstable")(et),renderBadge_unstable(et)});CounterBadge.displayName="CounterBadge";function createVirtualElementFromClick(j){const _e=j.clientX,et=j.clientY,tt=_e+1,rt=et+1;function nt(){return{left:_e,top:et,right:tt,bottom:rt,x:_e,y:et,height:1,width:1}}return{getBoundingClientRect:nt}}const DATA_POSITIONING_INTERSECTING="data-popper-is-intersecting",DATA_POSITIONING_ESCAPED="data-popper-escaped",DATA_POSITIONING_HIDDEN="data-popper-reference-hidden",DATA_POSITIONING_PLACEMENT="data-popper-placement",sides=["top","right","bottom","left"],min$a=Math.min,max$9=Math.max,round$2=Math.round,createCoords=j=>({x:j,y:j}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"},oppositeAlignmentMap={start:"end",end:"start"};function clamp$2(j,_e,et){return max$9(j,min$a(_e,et))}function evaluate(j,_e){return typeof j=="function"?j(_e):j}function getSide(j){return j.split("-")[0]}function getAlignment(j){return j.split("-")[1]}function getOppositeAxis(j){return j==="x"?"y":"x"}function getAxisLength(j){return j==="y"?"height":"width"}function getSideAxis(j){return["top","bottom"].includes(getSide(j))?"y":"x"}function getAlignmentAxis(j){return getOppositeAxis(getSideAxis(j))}function getAlignmentSides(j,_e,et){et===void 0&&(et=!1);const tt=getAlignment(j),rt=getAlignmentAxis(j),nt=getAxisLength(rt);let ot=rt==="x"?tt===(et?"end":"start")?"right":"left":tt==="start"?"bottom":"top";return _e.reference[nt]>_e.floating[nt]&&(ot=getOppositePlacement(ot)),[ot,getOppositePlacement(ot)]}function getExpandedPlacements(j){const _e=getOppositePlacement(j);return[getOppositeAlignmentPlacement(j),_e,getOppositeAlignmentPlacement(_e)]}function getOppositeAlignmentPlacement(j){return j.replace(/start|end/g,_e=>oppositeAlignmentMap[_e])}function getSideList(j,_e,et){const tt=["left","right"],rt=["right","left"],nt=["top","bottom"],ot=["bottom","top"];switch(j){case"top":case"bottom":return et?_e?rt:tt:_e?tt:rt;case"left":case"right":return _e?nt:ot;default:return[]}}function getOppositeAxisPlacements(j,_e,et,tt){const rt=getAlignment(j);let nt=getSideList(getSide(j),et==="start",tt);return rt&&(nt=nt.map(ot=>ot+"-"+rt),_e&&(nt=nt.concat(nt.map(getOppositeAlignmentPlacement)))),nt}function getOppositePlacement(j){return j.replace(/left|right|bottom|top/g,_e=>oppositeSideMap[_e])}function expandPaddingObject(j){return{top:0,right:0,bottom:0,left:0,...j}}function getPaddingObject(j){return typeof j!="number"?expandPaddingObject(j):{top:j,right:j,bottom:j,left:j}}function rectToClientRect(j){return{...j,top:j.y,left:j.x,right:j.x+j.width,bottom:j.y+j.height}}function computeCoordsFromPlacement(j,_e,et){let{reference:tt,floating:rt}=j;const nt=getSideAxis(_e),ot=getAlignmentAxis(_e),it=getAxisLength(ot),st=getSide(_e),lt=nt==="y",ut=tt.x+tt.width/2-rt.width/2,ct=tt.y+tt.height/2-rt.height/2,dt=tt[it]/2-rt[it]/2;let ft;switch(st){case"top":ft={x:ut,y:tt.y-rt.height};break;case"bottom":ft={x:ut,y:tt.y+tt.height};break;case"right":ft={x:tt.x+tt.width,y:ct};break;case"left":ft={x:tt.x-rt.width,y:ct};break;default:ft={x:tt.x,y:tt.y}}switch(getAlignment(_e)){case"start":ft[ot]-=dt*(et&<?-1:1);break;case"end":ft[ot]+=dt*(et&<?-1:1);break}return ft}const computePosition$1=async(j,_e,et)=>{const{placement:tt="bottom",strategy:rt="absolute",middleware:nt=[],platform:ot}=et,it=nt.filter(Boolean),st=await(ot.isRTL==null?void 0:ot.isRTL(_e));let lt=await ot.getElementRects({reference:j,floating:_e,strategy:rt}),{x:ut,y:ct}=computeCoordsFromPlacement(lt,tt,st),dt=tt,ft={},pt=0;for(let gt=0;gt({name:"arrow",options:j,async fn(_e){const{x:et,y:tt,placement:rt,rects:nt,platform:ot,elements:it,middlewareData:st}=_e,{element:lt,padding:ut=0}=evaluate(j,_e)||{};if(lt==null)return{};const ct=getPaddingObject(ut),dt={x:et,y:tt},ft=getAlignmentAxis(rt),pt=getAxisLength(ft),gt=await ot.getDimensions(lt),vt=ft==="y",bt=vt?"top":"left",_t=vt?"bottom":"right",xt=vt?"clientHeight":"clientWidth",yt=nt.reference[pt]+nt.reference[ft]-dt[ft]-nt.floating[pt],Et=dt[ft]-nt.reference[ft],St=await(ot.getOffsetParent==null?void 0:ot.getOffsetParent(lt));let $t=St?St[xt]:0;(!$t||!await(ot.isElement==null?void 0:ot.isElement(St)))&&($t=it.floating[xt]||nt.floating[pt]);const At=yt/2-Et/2,wt=$t/2-gt[pt]/2-1,Ct=min$a(ct[bt],wt),It=min$a(ct[_t],wt),Ot=Ct,Nt=$t-gt[pt]-It,Pt=$t/2-gt[pt]/2+At,Mt=clamp$2(Ot,Pt,Nt),Rt=!st.arrow&&getAlignment(rt)!=null&&Pt!=Mt&&nt.reference[pt]/2-(PtOt<=0)){var wt,Ct;const Ot=(((wt=nt.flip)==null?void 0:wt.index)||0)+1,Nt=Et[Ot];if(Nt)return{data:{index:Ot,overflows:At},reset:{placement:Nt}};let Pt=(Ct=At.filter(Mt=>Mt.overflows[0]<=0).sort((Mt,Rt)=>Mt.overflows[1]-Rt.overflows[1])[0])==null?void 0:Ct.placement;if(!Pt)switch(ft){case"bestFit":{var It;const Mt=(It=At.map(Rt=>[Rt.placement,Rt.overflows.filter(Lt=>Lt>0).reduce((Lt,jt)=>Lt+jt,0)]).sort((Rt,Lt)=>Rt[1]-Lt[1])[0])==null?void 0:It[0];Mt&&(Pt=Mt);break}case"initialPlacement":Pt=it;break}if(rt!==Pt)return{reset:{placement:Pt}}}return{}}}};function getSideOffsets(j,_e){return{top:j.top-_e.height,right:j.right-_e.width,bottom:j.bottom-_e.height,left:j.left-_e.width}}function isAnySideFullyClipped(j){return sides.some(_e=>j[_e]>=0)}const hide=function(j){return j===void 0&&(j={}),{name:"hide",options:j,async fn(_e){const{rects:et}=_e,{strategy:tt="referenceHidden",...rt}=evaluate(j,_e);switch(tt){case"referenceHidden":{const nt=await detectOverflow(_e,{...rt,elementContext:"reference"}),ot=getSideOffsets(nt,et.reference);return{data:{referenceHiddenOffsets:ot,referenceHidden:isAnySideFullyClipped(ot)}}}case"escaped":{const nt=await detectOverflow(_e,{...rt,altBoundary:!0}),ot=getSideOffsets(nt,et.floating);return{data:{escapedOffsets:ot,escaped:isAnySideFullyClipped(ot)}}}default:return{}}}}};async function convertValueToCoords(j,_e){const{placement:et,platform:tt,elements:rt}=j,nt=await(tt.isRTL==null?void 0:tt.isRTL(rt.floating)),ot=getSide(et),it=getAlignment(et),st=getSideAxis(et)==="y",lt=["left","top"].includes(ot)?-1:1,ut=nt&&st?-1:1,ct=evaluate(_e,j);let{mainAxis:dt,crossAxis:ft,alignmentAxis:pt}=typeof ct=="number"?{mainAxis:ct,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...ct};return it&&typeof pt=="number"&&(ft=it==="end"?pt*-1:pt),st?{x:ft*ut,y:dt*lt}:{x:dt*lt,y:ft*ut}}const offset$1=function(j){return j===void 0&&(j=0),{name:"offset",options:j,async fn(_e){var et,tt;const{x:rt,y:nt,placement:ot,middlewareData:it}=_e,st=await convertValueToCoords(_e,j);return ot===((et=it.offset)==null?void 0:et.placement)&&(tt=it.arrow)!=null&&tt.alignmentOffset?{}:{x:rt+st.x,y:nt+st.y,data:{...st,placement:ot}}}}},shift$1=function(j){return j===void 0&&(j={}),{name:"shift",options:j,async fn(_e){const{x:et,y:tt,placement:rt}=_e,{mainAxis:nt=!0,crossAxis:ot=!1,limiter:it={fn:vt=>{let{x:bt,y:_t}=vt;return{x:bt,y:_t}}},...st}=evaluate(j,_e),lt={x:et,y:tt},ut=await detectOverflow(_e,st),ct=getSideAxis(getSide(rt)),dt=getOppositeAxis(ct);let ft=lt[dt],pt=lt[ct];if(nt){const vt=dt==="y"?"top":"left",bt=dt==="y"?"bottom":"right",_t=ft+ut[vt],xt=ft-ut[bt];ft=clamp$2(_t,ft,xt)}if(ot){const vt=ct==="y"?"top":"left",bt=ct==="y"?"bottom":"right",_t=pt+ut[vt],xt=pt-ut[bt];pt=clamp$2(_t,pt,xt)}const gt=it.fn({..._e,[dt]:ft,[ct]:pt});return{...gt,data:{x:gt.x-et,y:gt.y-tt}}}}},limitShift=function(j){return j===void 0&&(j={}),{options:j,fn(_e){const{x:et,y:tt,placement:rt,rects:nt,middlewareData:ot}=_e,{offset:it=0,mainAxis:st=!0,crossAxis:lt=!0}=evaluate(j,_e),ut={x:et,y:tt},ct=getSideAxis(rt),dt=getOppositeAxis(ct);let ft=ut[dt],pt=ut[ct];const gt=evaluate(it,_e),vt=typeof gt=="number"?{mainAxis:gt,crossAxis:0}:{mainAxis:0,crossAxis:0,...gt};if(st){const xt=dt==="y"?"height":"width",yt=nt.reference[dt]-nt.floating[xt]+vt.mainAxis,Et=nt.reference[dt]+nt.reference[xt]-vt.mainAxis;ftEt&&(ft=Et)}if(lt){var bt,_t;const xt=dt==="y"?"width":"height",yt=["top","left"].includes(getSide(rt)),Et=nt.reference[ct]-nt.floating[xt]+(yt&&((bt=ot.offset)==null?void 0:bt[ct])||0)+(yt?0:vt.crossAxis),St=nt.reference[ct]+nt.reference[xt]+(yt?0:((_t=ot.offset)==null?void 0:_t[ct])||0)-(yt?vt.crossAxis:0);ptSt&&(pt=St)}return{[dt]:ft,[ct]:pt}}}},size=function(j){return j===void 0&&(j={}),{name:"size",options:j,async fn(_e){const{placement:et,rects:tt,platform:rt,elements:nt}=_e,{apply:ot=()=>{},...it}=evaluate(j,_e),st=await detectOverflow(_e,it),lt=getSide(et),ut=getAlignment(et),ct=getSideAxis(et)==="y",{width:dt,height:ft}=tt.floating;let pt,gt;lt==="top"||lt==="bottom"?(pt=lt,gt=ut===(await(rt.isRTL==null?void 0:rt.isRTL(nt.floating))?"start":"end")?"left":"right"):(gt=lt,pt=ut==="end"?"top":"bottom");const vt=ft-st[pt],bt=dt-st[gt],_t=!_e.middlewareData.shift;let xt=vt,yt=bt;if(ct){const St=dt-st.left-st.right;yt=ut||_t?min$a(bt,St):St}else{const St=ft-st.top-st.bottom;xt=ut||_t?min$a(vt,St):St}if(_t&&!ut){const St=max$9(st.left,0),$t=max$9(st.right,0),At=max$9(st.top,0),wt=max$9(st.bottom,0);ct?yt=dt-2*(St!==0||$t!==0?St+$t:max$9(st.left,st.right)):xt=ft-2*(At!==0||wt!==0?At+wt:max$9(st.top,st.bottom))}await ot({..._e,availableWidth:yt,availableHeight:xt});const Et=await rt.getDimensions(nt.floating);return dt!==Et.width||ft!==Et.height?{reset:{rects:!0}}:{}}}};function getNodeName(j){return isNode(j)?(j.nodeName||"").toLowerCase():"#document"}function getWindow$1(j){var _e;return(j==null||(_e=j.ownerDocument)==null?void 0:_e.defaultView)||window}function getDocumentElement(j){var _e;return(_e=(isNode(j)?j.ownerDocument:j.document)||window.document)==null?void 0:_e.documentElement}function isNode(j){return j instanceof Node||j instanceof getWindow$1(j).Node}function isElement$1(j){return j instanceof Element||j instanceof getWindow$1(j).Element}function isHTMLElement$2(j){return j instanceof HTMLElement||j instanceof getWindow$1(j).HTMLElement}function isShadowRoot(j){return typeof ShadowRoot>"u"?!1:j instanceof ShadowRoot||j instanceof getWindow$1(j).ShadowRoot}function isOverflowElement(j){const{overflow:_e,overflowX:et,overflowY:tt,display:rt}=getComputedStyle$1(j);return/auto|scroll|overlay|hidden|clip/.test(_e+tt+et)&&!["inline","contents"].includes(rt)}function isTableElement(j){return["table","td","th"].includes(getNodeName(j))}function isContainingBlock(j){const _e=isWebKit(),et=getComputedStyle$1(j);return et.transform!=="none"||et.perspective!=="none"||(et.containerType?et.containerType!=="normal":!1)||!_e&&(et.backdropFilter?et.backdropFilter!=="none":!1)||!_e&&(et.filter?et.filter!=="none":!1)||["transform","perspective","filter"].some(tt=>(et.willChange||"").includes(tt))||["paint","layout","strict","content"].some(tt=>(et.contain||"").includes(tt))}function getContainingBlock(j){let _e=getParentNode$1(j);for(;isHTMLElement$2(_e)&&!isLastTraversableNode(_e);){if(isContainingBlock(_e))return _e;_e=getParentNode$1(_e)}return null}function isWebKit(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function isLastTraversableNode(j){return["html","body","#document"].includes(getNodeName(j))}function getComputedStyle$1(j){return getWindow$1(j).getComputedStyle(j)}function getNodeScroll(j){return isElement$1(j)?{scrollLeft:j.scrollLeft,scrollTop:j.scrollTop}:{scrollLeft:j.pageXOffset,scrollTop:j.pageYOffset}}function getParentNode$1(j){if(getNodeName(j)==="html")return j;const _e=j.assignedSlot||j.parentNode||isShadowRoot(j)&&j.host||getDocumentElement(j);return isShadowRoot(_e)?_e.host:_e}function getNearestOverflowAncestor(j){const _e=getParentNode$1(j);return isLastTraversableNode(_e)?j.ownerDocument?j.ownerDocument.body:j.body:isHTMLElement$2(_e)&&isOverflowElement(_e)?_e:getNearestOverflowAncestor(_e)}function getOverflowAncestors(j,_e,et){var tt;_e===void 0&&(_e=[]),et===void 0&&(et=!0);const rt=getNearestOverflowAncestor(j),nt=rt===((tt=j.ownerDocument)==null?void 0:tt.body),ot=getWindow$1(rt);return nt?_e.concat(ot,ot.visualViewport||[],isOverflowElement(rt)?rt:[],ot.frameElement&&et?getOverflowAncestors(ot.frameElement):[]):_e.concat(rt,getOverflowAncestors(rt,[],et))}function getCssDimensions(j){const _e=getComputedStyle$1(j);let et=parseFloat(_e.width)||0,tt=parseFloat(_e.height)||0;const rt=isHTMLElement$2(j),nt=rt?j.offsetWidth:et,ot=rt?j.offsetHeight:tt,it=round$2(et)!==nt||round$2(tt)!==ot;return it&&(et=nt,tt=ot),{width:et,height:tt,$:it}}function unwrapElement(j){return isElement$1(j)?j:j.contextElement}function getScale(j){const _e=unwrapElement(j);if(!isHTMLElement$2(_e))return createCoords(1);const et=_e.getBoundingClientRect(),{width:tt,height:rt,$:nt}=getCssDimensions(_e);let ot=(nt?round$2(et.width):et.width)/tt,it=(nt?round$2(et.height):et.height)/rt;return(!ot||!Number.isFinite(ot))&&(ot=1),(!it||!Number.isFinite(it))&&(it=1),{x:ot,y:it}}const noOffsets=createCoords(0);function getVisualOffsets(j){const _e=getWindow$1(j);return!isWebKit()||!_e.visualViewport?noOffsets:{x:_e.visualViewport.offsetLeft,y:_e.visualViewport.offsetTop}}function shouldAddVisualOffsets(j,_e,et){return _e===void 0&&(_e=!1),!et||_e&&et!==getWindow$1(j)?!1:_e}function getBoundingClientRect(j,_e,et,tt){_e===void 0&&(_e=!1),et===void 0&&(et=!1);const rt=j.getBoundingClientRect(),nt=unwrapElement(j);let ot=createCoords(1);_e&&(tt?isElement$1(tt)&&(ot=getScale(tt)):ot=getScale(j));const it=shouldAddVisualOffsets(nt,et,tt)?getVisualOffsets(nt):createCoords(0);let st=(rt.left+it.x)/ot.x,lt=(rt.top+it.y)/ot.y,ut=rt.width/ot.x,ct=rt.height/ot.y;if(nt){const dt=getWindow$1(nt),ft=tt&&isElement$1(tt)?getWindow$1(tt):tt;let pt=dt.frameElement;for(;pt&&tt&&ft!==dt;){const gt=getScale(pt),vt=pt.getBoundingClientRect(),bt=getComputedStyle$1(pt),_t=vt.left+(pt.clientLeft+parseFloat(bt.paddingLeft))*gt.x,xt=vt.top+(pt.clientTop+parseFloat(bt.paddingTop))*gt.y;st*=gt.x,lt*=gt.y,ut*=gt.x,ct*=gt.y,st+=_t,lt+=xt,pt=getWindow$1(pt).frameElement}}return rectToClientRect({width:ut,height:ct,x:st,y:lt})}function convertOffsetParentRelativeRectToViewportRelativeRect(j){let{rect:_e,offsetParent:et,strategy:tt}=j;const rt=isHTMLElement$2(et),nt=getDocumentElement(et);if(et===nt)return _e;let ot={scrollLeft:0,scrollTop:0},it=createCoords(1);const st=createCoords(0);if((rt||!rt&&tt!=="fixed")&&((getNodeName(et)!=="body"||isOverflowElement(nt))&&(ot=getNodeScroll(et)),isHTMLElement$2(et))){const lt=getBoundingClientRect(et);it=getScale(et),st.x=lt.x+et.clientLeft,st.y=lt.y+et.clientTop}return{width:_e.width*it.x,height:_e.height*it.y,x:_e.x*it.x-ot.scrollLeft*it.x+st.x,y:_e.y*it.y-ot.scrollTop*it.y+st.y}}function getClientRects(j){return Array.from(j.getClientRects())}function getWindowScrollBarX(j){return getBoundingClientRect(getDocumentElement(j)).left+getNodeScroll(j).scrollLeft}function getDocumentRect(j){const _e=getDocumentElement(j),et=getNodeScroll(j),tt=j.ownerDocument.body,rt=max$9(_e.scrollWidth,_e.clientWidth,tt.scrollWidth,tt.clientWidth),nt=max$9(_e.scrollHeight,_e.clientHeight,tt.scrollHeight,tt.clientHeight);let ot=-et.scrollLeft+getWindowScrollBarX(j);const it=-et.scrollTop;return getComputedStyle$1(tt).direction==="rtl"&&(ot+=max$9(_e.clientWidth,tt.clientWidth)-rt),{width:rt,height:nt,x:ot,y:it}}function getViewportRect(j,_e){const et=getWindow$1(j),tt=getDocumentElement(j),rt=et.visualViewport;let nt=tt.clientWidth,ot=tt.clientHeight,it=0,st=0;if(rt){nt=rt.width,ot=rt.height;const lt=isWebKit();(!lt||lt&&_e==="fixed")&&(it=rt.offsetLeft,st=rt.offsetTop)}return{width:nt,height:ot,x:it,y:st}}function getInnerBoundingClientRect(j,_e){const et=getBoundingClientRect(j,!0,_e==="fixed"),tt=et.top+j.clientTop,rt=et.left+j.clientLeft,nt=isHTMLElement$2(j)?getScale(j):createCoords(1),ot=j.clientWidth*nt.x,it=j.clientHeight*nt.y,st=rt*nt.x,lt=tt*nt.y;return{width:ot,height:it,x:st,y:lt}}function getClientRectFromClippingAncestor(j,_e,et){let tt;if(_e==="viewport")tt=getViewportRect(j,et);else if(_e==="document")tt=getDocumentRect(getDocumentElement(j));else if(isElement$1(_e))tt=getInnerBoundingClientRect(_e,et);else{const rt=getVisualOffsets(j);tt={..._e,x:_e.x-rt.x,y:_e.y-rt.y}}return rectToClientRect(tt)}function hasFixedPositionAncestor(j,_e){const et=getParentNode$1(j);return et===_e||!isElement$1(et)||isLastTraversableNode(et)?!1:getComputedStyle$1(et).position==="fixed"||hasFixedPositionAncestor(et,_e)}function getClippingElementAncestors(j,_e){const et=_e.get(j);if(et)return et;let tt=getOverflowAncestors(j,[],!1).filter(it=>isElement$1(it)&&getNodeName(it)!=="body"),rt=null;const nt=getComputedStyle$1(j).position==="fixed";let ot=nt?getParentNode$1(j):j;for(;isElement$1(ot)&&!isLastTraversableNode(ot);){const it=getComputedStyle$1(ot),st=isContainingBlock(ot);!st&&it.position==="fixed"&&(rt=null),(nt?!st&&!rt:!st&&it.position==="static"&&!!rt&&["absolute","fixed"].includes(rt.position)||isOverflowElement(ot)&&!st&&hasFixedPositionAncestor(j,ot))?tt=tt.filter(ut=>ut!==ot):rt=it,ot=getParentNode$1(ot)}return _e.set(j,tt),tt}function getClippingRect(j){let{element:_e,boundary:et,rootBoundary:tt,strategy:rt}=j;const ot=[...et==="clippingAncestors"?getClippingElementAncestors(_e,this._c):[].concat(et),tt],it=ot[0],st=ot.reduce((lt,ut)=>{const ct=getClientRectFromClippingAncestor(_e,ut,rt);return lt.top=max$9(ct.top,lt.top),lt.right=min$a(ct.right,lt.right),lt.bottom=min$a(ct.bottom,lt.bottom),lt.left=max$9(ct.left,lt.left),lt},getClientRectFromClippingAncestor(_e,it,rt));return{width:st.right-st.left,height:st.bottom-st.top,x:st.left,y:st.top}}function getDimensions(j){return getCssDimensions(j)}function getRectRelativeToOffsetParent(j,_e,et){const tt=isHTMLElement$2(_e),rt=getDocumentElement(_e),nt=et==="fixed",ot=getBoundingClientRect(j,!0,nt,_e);let it={scrollLeft:0,scrollTop:0};const st=createCoords(0);if(tt||!tt&&!nt)if((getNodeName(_e)!=="body"||isOverflowElement(rt))&&(it=getNodeScroll(_e)),tt){const lt=getBoundingClientRect(_e,!0,nt,_e);st.x=lt.x+_e.clientLeft,st.y=lt.y+_e.clientTop}else rt&&(st.x=getWindowScrollBarX(rt));return{x:ot.left+it.scrollLeft-st.x,y:ot.top+it.scrollTop-st.y,width:ot.width,height:ot.height}}function getTrueOffsetParent(j,_e){return!isHTMLElement$2(j)||getComputedStyle$1(j).position==="fixed"?null:_e?_e(j):j.offsetParent}function getOffsetParent(j,_e){const et=getWindow$1(j);if(!isHTMLElement$2(j))return et;let tt=getTrueOffsetParent(j,_e);for(;tt&&isTableElement(tt)&&getComputedStyle$1(tt).position==="static";)tt=getTrueOffsetParent(tt,_e);return tt&&(getNodeName(tt)==="html"||getNodeName(tt)==="body"&&getComputedStyle$1(tt).position==="static"&&!isContainingBlock(tt))?et:tt||getContainingBlock(j)||et}const getElementRects=async function(j){let{reference:_e,floating:et,strategy:tt}=j;const rt=this.getOffsetParent||getOffsetParent,nt=this.getDimensions;return{reference:getRectRelativeToOffsetParent(_e,await rt(et),tt),floating:{x:0,y:0,...await nt(et)}}};function isRTL(j){return getComputedStyle$1(j).direction==="rtl"}const platform={convertOffsetParentRelativeRectToViewportRelativeRect,getDocumentElement,getClippingRect,getOffsetParent,getElementRects,getClientRects,getDimensions,getScale,isElement:isElement$1,isRTL},computePosition=(j,_e,et)=>{const tt=new Map,rt={platform,...et},nt={...rt.platform,_c:tt};return computePosition$1(j,_e,{...rt,platform:nt})};function parseFloatingUIPlacement(j){const _e=j.split("-");return{side:_e[0],alignment:_e[1]}}const getParentNode=j=>j.nodeName==="HTML"?j:j.parentNode||j.host,getStyleComputedProperty=j=>{var _e;return j.nodeType!==1?{}:((_e=j.ownerDocument)===null||_e===void 0?void 0:_e.defaultView).getComputedStyle(j,null)},getScrollParent=j=>{const _e=j&&getParentNode(j);if(!_e)return document.body;switch(_e.nodeName){case"HTML":case"BODY":return _e.ownerDocument.body;case"#document":return _e.body}const{overflow:et,overflowX:tt,overflowY:rt}=getStyleComputedProperty(_e);return/(auto|scroll|overlay)/.test(et+rt+tt)?_e:getScrollParent(_e)},hasScrollParent=j=>{var _e;const et=getScrollParent(j);return et?et!==((_e=et.ownerDocument)===null||_e===void 0?void 0:_e.body):!1};function getBoundary(j,_e){if(_e==="window")return j==null?void 0:j.ownerDocument.documentElement;if(_e==="clippingParents")return"clippingAncestors";if(_e==="scrollParent"){let et=getScrollParent(j);return et.nodeName==="BODY"&&(et=j==null?void 0:j.ownerDocument.documentElement),et}return _e}function mergeArrowOffset(j,_e){return typeof j=="number"||typeof j=="object"&&j!==null?addArrowOffset(j,_e):typeof j=="function"?et=>{const tt=j(et);return addArrowOffset(tt,_e)}:{mainAxis:_e}}const addArrowOffset=(j,_e)=>{if(typeof j=="number")return{mainAxis:j+_e};var et;return{...j,mainAxis:((et=j.mainAxis)!==null&&et!==void 0?et:0)+_e}};function toFloatingUIPadding(j,_e){if(typeof j=="number")return j;const{start:et,end:tt,...rt}=j,nt=rt,ot=_e?"end":"start",it=_e?"start":"end";return j[ot]&&(nt.left=j[ot]),j[it]&&(nt.right=j[it]),nt}const getPositionMap$1=j=>({above:"top",below:"bottom",before:j?"right":"left",after:j?"left":"right"}),getAlignmentMap$1=()=>({start:"start",end:"end",top:"start",bottom:"end",center:void 0}),shouldAlignToCenter=(j,_e)=>{const et=j==="above"||j==="below",tt=_e==="top"||_e==="bottom";return et&&tt||!et&&!tt},toFloatingUIPlacement=(j,_e,et)=>{const tt=shouldAlignToCenter(_e,j)?"center":j,rt=_e&&getPositionMap$1(et)[_e],nt=tt&&getAlignmentMap$1()[tt];return rt&&nt?`${rt}-${nt}`:rt},getPositionMap=()=>({top:"above",bottom:"below",right:"after",left:"before"}),getAlignmentMap=j=>j==="above"||j==="below"?{start:"start",end:"end"}:{start:"top",end:"bottom"},fromFloatingUIPlacement=j=>{const{side:_e,alignment:et}=parseFloatingUIPlacement(j),tt=getPositionMap()[_e],rt=et&&getAlignmentMap(tt)[et];return{position:tt,alignment:rt}},shorthandLookup={above:{position:"above",align:"center"},"above-start":{position:"above",align:"start"},"above-end":{position:"above",align:"end"},below:{position:"below",align:"center"},"below-start":{position:"below",align:"start"},"below-end":{position:"below",align:"end"},before:{position:"before",align:"center"},"before-top":{position:"before",align:"top"},"before-bottom":{position:"before",align:"bottom"},after:{position:"after",align:"center"},"after-top":{position:"after",align:"top"},"after-bottom":{position:"after",align:"bottom"}};function resolvePositioningShorthand(j){return j==null?{}:typeof j=="string"?shorthandLookup[j]:j}function useCallbackRef(j,_e,et){const tt=reactExports.useRef(!0),[rt]=reactExports.useState(()=>({value:j,callback:_e,facade:{get current(){return rt.value},set current(nt){const ot=rt.value;if(ot!==nt){if(rt.value=nt,et&&tt.current)return;rt.callback(nt,ot)}}}}));return useIsomorphicLayoutEffect$1(()=>{tt.current=!1},[]),rt.callback=_e,rt.facade}function debounce$3(j){let _e;return()=>(_e||(_e=new Promise(et=>{Promise.resolve().then(()=>{_e=void 0,et(j())})})),_e)}function writeArrowUpdates(j){const{arrow:_e,middlewareData:et}=j;if(!et.arrow||!_e)return;const{x:tt,y:rt}=et.arrow;Object.assign(_e.style,{left:`${tt}px`,top:`${rt}px`})}function writeContainerUpdates(j){var _e,et,tt;const{container:rt,placement:nt,middlewareData:ot,strategy:it,lowPPI:st,coordinates:lt,useTransform:ut=!0}=j;if(!rt)return;rt.setAttribute(DATA_POSITIONING_PLACEMENT,nt),rt.removeAttribute(DATA_POSITIONING_INTERSECTING),ot.intersectionObserver.intersecting&&rt.setAttribute(DATA_POSITIONING_INTERSECTING,""),rt.removeAttribute(DATA_POSITIONING_ESCAPED),!((_e=ot.hide)===null||_e===void 0)&&_e.escaped&&rt.setAttribute(DATA_POSITIONING_ESCAPED,""),rt.removeAttribute(DATA_POSITIONING_HIDDEN),!((et=ot.hide)===null||et===void 0)&&et.referenceHidden&&rt.setAttribute(DATA_POSITIONING_HIDDEN,"");const ct=((tt=rt.ownerDocument.defaultView)===null||tt===void 0?void 0:tt.devicePixelRatio)||1,dt=Math.round(lt.x*ct)/ct,ft=Math.round(lt.y*ct)/ct;if(Object.assign(rt.style,{position:it}),ut){Object.assign(rt.style,{transform:st?`translate(${dt}px, ${ft}px)`:`translate3d(${dt}px, ${ft}px, 0)`});return}Object.assign(rt.style,{left:`${dt}px`,top:`${ft}px`})}const normalizeAutoSize=j=>{switch(j){case"always":case!0:return{applyMaxWidth:!0,applyMaxHeight:!0};case"width-always":case"width":return{applyMaxWidth:!0,applyMaxHeight:!1};case"height-always":case"height":return{applyMaxWidth:!1,applyMaxHeight:!0};default:return!1}};function coverTarget(){return{name:"coverTarget",fn:j=>{const{placement:_e,rects:et,x:tt,y:rt}=j,nt=parseFloatingUIPlacement(_e).side,ot={x:tt,y:rt};switch(nt){case"bottom":ot.y-=et.reference.height;break;case"top":ot.y+=et.reference.height;break;case"left":ot.x+=et.reference.width;break;case"right":ot.x-=et.reference.width;break}return ot}}}function flip(j){const{hasScrollableElement:_e,flipBoundary:et,container:tt,fallbackPositions:rt=[],isRtl:nt}=j,ot=rt.reduce((it,st)=>{const{position:lt,align:ut}=resolvePositioningShorthand(st),ct=toFloatingUIPlacement(ut,lt,nt);return ct&&it.push(ct),it},[]);return flip$1({..._e&&{boundary:"clippingAncestors"},...et&&{altBoundary:!0,boundary:getBoundary(tt,et)},fallbackStrategy:"bestFit",...ot.length&&{fallbackPlacements:ot}})}function intersecting(){return{name:"intersectionObserver",fn:async j=>{const _e=j.rects.floating,et=await detectOverflow(j,{altBoundary:!0}),tt=et.top<_e.height&&et.top>0,rt=et.bottom<_e.height&&et.bottom>0;return{data:{intersecting:tt||rt}}}}}const resetMaxSize=j=>({name:"resetMaxSize",fn({middlewareData:_e,elements:et}){var tt;if(!((tt=_e.resetMaxSize)===null||tt===void 0)&&tt.maxSizeAlreadyReset)return{};const{applyMaxWidth:rt,applyMaxHeight:nt}=j;return rt&&(et.floating.style.removeProperty("box-sizing"),et.floating.style.removeProperty("max-width"),et.floating.style.removeProperty("width")),nt&&(et.floating.style.removeProperty("box-sizing"),et.floating.style.removeProperty("max-height"),et.floating.style.removeProperty("height")),{data:{maxSizeAlreadyReset:!0},reset:{rects:!0}}}});function maxSize(j,_e){const{container:et,overflowBoundary:tt}=_e;return size({...tt&&{altBoundary:!0,boundary:getBoundary(et,tt)},apply({availableHeight:rt,availableWidth:nt,elements:ot,rects:it}){const st=(ct,dt,ft)=>{if(ct&&(ot.floating.style.setProperty("box-sizing","border-box"),ot.floating.style.setProperty(`max-${dt}`,`${ft}px`),it.floating[dt]>ft)){ot.floating.style.setProperty(dt,`${ft}px`);const pt=dt==="width"?"x":"y";ot.floating.style.getPropertyValue(`overflow-${pt}`)||ot.floating.style.setProperty(`overflow-${pt}`,"auto")}},{applyMaxWidth:lt,applyMaxHeight:ut}=j;st(lt,"width",nt),st(ut,"height",rt)}})}function getFloatingUIOffset(j){return!j||typeof j=="number"||typeof j=="object"?j:({rects:{floating:_e,reference:et},placement:tt})=>{const{position:rt,alignment:nt}=fromFloatingUIPlacement(tt);return j({positionedRect:_e,targetRect:et,position:rt,alignment:nt})}}function offset(j){const _e=getFloatingUIOffset(j);return offset$1(_e)}function shift(j){const{hasScrollableElement:_e,disableTether:et,overflowBoundary:tt,container:rt,overflowBoundaryPadding:nt,isRtl:ot}=j;return shift$1({..._e&&{boundary:"clippingAncestors"},...et&&{crossAxis:et==="all",limiter:limitShift({crossAxis:et!=="all",mainAxis:!1})},...nt&&{padding:toFloatingUIPadding(nt,ot)},...tt&&{altBoundary:!0,boundary:getBoundary(rt,tt)}})}const matchTargetSizeCssVar="--fui-match-target-size";function matchTargetSize(){return{name:"matchTargetSize",fn:async j=>{const{rects:{reference:_e,floating:et},elements:{floating:tt},middlewareData:{matchTargetSize:{matchTargetSizeAttempt:rt=!1}={}}}=j;if(_e.width===et.width||rt)return{};const{width:nt}=_e;return tt.style.setProperty(matchTargetSizeCssVar,`${nt}px`),tt.style.width||(tt.style.width=`var(${matchTargetSizeCssVar})`),{data:{matchTargetSizeAttempt:!0},reset:{rects:!0}}}}}function listScrollParents(j){const _e=[];let et=j;for(;et;){const tt=getScrollParent(et);if(j.ownerDocument.body===tt){_e.push(tt);break}_e.push(tt),et=tt}return _e}function createPositionManager(j){const{container:_e,target:et,arrow:tt,strategy:rt,middleware:nt,placement:ot,useTransform:it=!0}=j;let st=!1;if(!et||!_e)return{updatePosition:()=>{},dispose:()=>{}};let lt=!0;const ut=new Set,ct=_e.ownerDocument.defaultView;Object.assign(_e.style,{position:"fixed",left:0,top:0,margin:0});const dt=()=>{st||(lt&&(listScrollParents(_e).forEach(gt=>ut.add(gt)),isHTMLElement$4(et)&&listScrollParents(et).forEach(gt=>ut.add(gt)),ut.forEach(gt=>{gt.addEventListener("scroll",ft,{passive:!0})}),lt=!1),Object.assign(_e.style,{position:rt}),computePosition(et,_e,{placement:ot,middleware:nt,strategy:rt}).then(({x:gt,y:vt,middlewareData:bt,placement:_t})=>{st||(writeArrowUpdates({arrow:tt,middlewareData:bt}),writeContainerUpdates({container:_e,middlewareData:bt,placement:_t,coordinates:{x:gt,y:vt},lowPPI:((ct==null?void 0:ct.devicePixelRatio)||1)<=1,strategy:rt,useTransform:it}))}).catch(gt=>{}))},ft=debounce$3(()=>dt()),pt=()=>{st=!0,ct&&(ct.removeEventListener("scroll",ft),ct.removeEventListener("resize",ft)),ut.forEach(gt=>{gt.removeEventListener("scroll",ft)}),ut.clear()};return ct&&(ct.addEventListener("scroll",ft,{passive:!0}),ct.addEventListener("resize",ft)),ft(),{updatePosition:ft,dispose:pt}}function usePositioning(j){const _e=reactExports.useRef(null),et=reactExports.useRef(null),tt=reactExports.useRef(null),rt=reactExports.useRef(null),nt=reactExports.useRef(null),{enabled:ot=!0}=j,it=usePositioningOptions(j),st=reactExports.useCallback(()=>{_e.current&&_e.current.dispose(),_e.current=null;var ft;const pt=(ft=tt.current)!==null&&ft!==void 0?ft:et.current;ot&&canUseDOM$3()&&pt&&rt.current&&(_e.current=createPositionManager({container:rt.current,target:pt,arrow:nt.current,...it(rt.current,nt.current)}))},[ot,it]),lt=useEventCallback$3(ft=>{tt.current=ft,st()});reactExports.useImperativeHandle(j.positioningRef,()=>({updatePosition:()=>{var ft;return(ft=_e.current)===null||ft===void 0?void 0:ft.updatePosition()},setTarget:ft=>{j.target,lt(ft)}}),[j.target,lt]),useIsomorphicLayoutEffect$1(()=>{var ft;lt((ft=j.target)!==null&&ft!==void 0?ft:null)},[j.target,lt]),useIsomorphicLayoutEffect$1(()=>{st()},[st]);const ut=useCallbackRef(null,ft=>{et.current!==ft&&(et.current=ft,st())}),ct=useCallbackRef(null,ft=>{rt.current!==ft&&(rt.current=ft,st())}),dt=useCallbackRef(null,ft=>{nt.current!==ft&&(nt.current=ft,st())});return{targetRef:ut,containerRef:ct,arrowRef:dt}}function usePositioningOptions(j){const{align:_e,arrowPadding:et,autoSize:tt,coverTarget:rt,flipBoundary:nt,offset:ot,overflowBoundary:it,pinned:st,position:lt,unstable_disableTether:ut,positionFixed:ct,strategy:dt,overflowBoundaryPadding:ft,fallbackPositions:pt,useTransform:gt,matchTargetSize:vt}=j,{dir:bt,targetDocument:_t}=useFluent(),xt=bt==="rtl",yt=dt??ct?"fixed":"absolute",Et=normalizeAutoSize(tt);return reactExports.useCallback((St,$t)=>{const At=hasScrollParent(St),wt=[Et&&resetMaxSize(Et),vt&&matchTargetSize(),ot&&offset(ot),rt&&coverTarget(),!st&&flip({container:St,flipBoundary:nt,hasScrollableElement:At,isRtl:xt,fallbackPositions:pt}),shift({container:St,hasScrollableElement:At,overflowBoundary:it,disableTether:ut,overflowBoundaryPadding:ft,isRtl:xt}),Et&&maxSize(Et,{container:St,overflowBoundary:it}),intersecting(),$t&&arrow$1({element:$t,padding:et}),hide({strategy:"referenceHidden"}),hide({strategy:"escaped"}),!1].filter(Boolean);return{placement:toFloatingUIPlacement(_e,lt,xt),middleware:wt,strategy:yt,useTransform:gt}},[_e,et,Et,rt,ut,nt,xt,ot,it,st,lt,yt,ft,pt,gt,vt,_t])}const usePositioningMouseTarget=j=>{const[_e,et]=reactExports.useState(j);return[_e,rt=>{if(rt==null){et(void 0);return}let nt;rt instanceof MouseEvent?nt=rt:nt=rt.nativeEvent,nt instanceof MouseEvent;const ot=createVirtualElementFromClick(nt);et(ot)}]},PopoverContext=createContext(void 0),popoverContextDefaultValue={open:!1,setOpen:()=>null,toggleOpen:()=>null,triggerRef:{current:null},contentRef:{current:null},arrowRef:{current:null},openOnContext:!1,openOnHover:!1,size:"medium",trapFocus:!1,inline:!1};PopoverContext.Provider;const usePopoverContext_unstable=j=>useContextSelector(PopoverContext,(_e=popoverContextDefaultValue)=>j(_e)),usePopoverSurface_unstable=(j,_e)=>{const et=usePopoverContext_unstable(_t=>_t.contentRef),tt=usePopoverContext_unstable(_t=>_t.openOnHover),rt=usePopoverContext_unstable(_t=>_t.setOpen),nt=usePopoverContext_unstable(_t=>_t.mountNode),ot=usePopoverContext_unstable(_t=>_t.arrowRef),it=usePopoverContext_unstable(_t=>_t.size),st=usePopoverContext_unstable(_t=>_t.withArrow),lt=usePopoverContext_unstable(_t=>_t.appearance),ut=usePopoverContext_unstable(_t=>_t.trapFocus),ct=usePopoverContext_unstable(_t=>_t.inertTrapFocus),dt=usePopoverContext_unstable(_t=>_t.inline),{modalAttributes:ft}=useModalAttributes({trapFocus:ut,legacyTrapFocus:!ct,alwaysFocusable:!ut}),pt={inline:dt,appearance:lt,withArrow:st,size:it,arrowRef:ot,mountNode:nt,components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,et),role:ut?"dialog":"group","aria-modal":ut?!0:void 0,...ft,...j}),{elementType:"div"})},{onMouseEnter:gt,onMouseLeave:vt,onKeyDown:bt}=pt.root;return pt.root.onMouseEnter=_t=>{tt&&rt(_t,!0),gt==null||gt(_t)},pt.root.onMouseLeave=_t=>{tt&&rt(_t,!1),vt==null||vt(_t)},pt.root.onKeyDown=_t=>{var xt;_t.key==="Escape"&&(!((xt=et.current)===null||xt===void 0)&&xt.contains(_t.target))&&(_t.preventDefault(),rt(_t,!1)),bt==null||bt(_t)},pt};function toMountNodeProps(j){return isHTMLElement$4(j)?{element:j}:typeof j=="object"?j===null?{element:null}:j:{}}var getCurrentOwner=()=>reactExports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner.current,useIsStrictMode=()=>!1,effectSet=new WeakSet;function useStrictEffect(j,_e){const et=getCurrentOwner();reactExports.useEffect(()=>{if(!effectSet.has(et)){effectSet.add(et),j();return}return j()},_e)}var memoSet=new WeakSet;function useStrictMemo(j,_e){return reactExports.useMemo(()=>{const et=getCurrentOwner();return memoSet.has(et)?j():(memoSet.add(et),null)},_e)}function useDisposable(j,_e){var et;const tt=useIsStrictMode()&&!1,rt=tt?useStrictMemo:reactExports.useMemo,nt=tt?useStrictEffect:reactExports.useEffect,[ot,it]=(et=rt(()=>j(),_e))!=null?et:[null,()=>null];return nt(()=>it,_e),ot}const usePortalMountNodeStylesStyles=__styles({root:{qhf8xq:"f1euv43f",Bhzewxz:"f15twtuk",oyh7mz:["f1vgc2s3","f1e31b4d"],j35jbq:["f1e31b4d","f1vgc2s3"],Bj3rh1h:"f494woh"}},{d:[".f1euv43f{position:absolute;}",".f15twtuk{top:0;}",".f1vgc2s3{left:0;}",".f1e31b4d{right:0;}",".f494woh{z-index:1000000;}"]}),useInsertionEffect=React$1.useInsertionEffect,usePortalMountNode=j=>{const{targetDocument:_e,dir:et}=useFluent(),tt=usePortalMountNode$1(),rt=useFocusVisible(),nt=usePortalMountNodeStylesStyles(),ot=useThemeClassName(),it=mergeClasses(ot,nt.root,j.className),st=tt??(_e==null?void 0:_e.body),lt=useDisposable(()=>{if(st===void 0||j.disabled)return[null,()=>null];const ut=st.ownerDocument.createElement("div");return st.appendChild(ut),[ut,()=>ut.remove()]},[st]);return useInsertionEffect?useInsertionEffect(()=>{if(!lt)return;const ut=it.split(" ").filter(Boolean);return lt.classList.add(...ut),lt.setAttribute("dir",et),rt.current=lt,()=>{lt.classList.remove(...ut),lt.removeAttribute("dir")}},[it,et,lt,rt]):reactExports.useMemo(()=>{lt&&(lt.className=it,lt.setAttribute("dir",et),rt.current=lt)},[it,et,lt,rt]),lt},usePortal_unstable=j=>{const{element:_e,className:et}=toMountNodeProps(j.mountNode),tt=reactExports.useRef(null),rt=usePortalMountNode({disabled:!!_e,className:et}),nt=_e??rt,ot={children:j.children,mountNode:nt,virtualParentRootRef:tt};return reactExports.useEffect(()=>{if(!nt)return;const it=tt.current,st=nt.contains(it);if(it&&!st)return setVirtualParent$1(nt,it),()=>{setVirtualParent$1(nt,void 0)}},[tt,nt]),ot},renderPortal_unstable=j=>reactExports.createElement("span",{hidden:!0,ref:j.virtualParentRootRef},j.mountNode&&reactDomExports.createPortal(j.children,j.mountNode)),Portal$1=j=>{const _e=usePortal_unstable(j);return renderPortal_unstable(_e)};Portal$1.displayName="Portal";const renderPopoverSurface_unstable=j=>{const _e=jsxs(j.root,{children:[j.withArrow&&jsx$1("div",{ref:j.arrowRef,className:j.arrowClassName}),j.root.children]});return j.inline?_e:jsx$1(Portal$1,{mountNode:j.mountNode,children:_e})},popoverSurfaceClassNames={root:"fui-PopoverSurface"},arrowHeights={small:6,medium:8,large:8},useStyles$v=__styles({root:{sj55zd:"f19n0e5",De3pzq:"fxugw4r",E5pizo:"f1hg901r",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B4j52fo:"f5ogflp",Bekrc4i:["f1hqa2wf","finvdd3"],Bn0qgzm:"f1f09k3d",ibv6hh:["finvdd3","f1hqa2wf"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"],Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B93otf3:"f18k4bn6",vin17d:"fo1kyvf",Ezkn3b:"fetxo7e",nyiy2g:"f8x1vz1",swvrvq:"f8g0anz",Bkovbt3:"fezwn9i",hgjdhn:"fz5efge",fsy9dk:"f1ydixl4",B3ogreh:"f8dgqj5",jv49x5:"fnyfnr8",Bk7o48c:"fgw77r4",Bv12yb3:"ftje0s4",z0t1cu:"fi19xcv",Bks05zx:"f1mzajhk",Bvtglag:"fjp4h9y"},inline:{Bj3rh1h:"f19g0ac"},inverted:{De3pzq:"fg3r6xk",sj55zd:"fonrgv7"},brand:{De3pzq:"ffp7eso",sj55zd:"f1phragk"},smallPadding:{z8tnut:"f1kcqot9",z189sj:["f11qrl6u","fjlbh76"],Byoj8tv:"fpe6lb7",uwmqm3:["fjlbh76","f11qrl6u"]},mediumPadding:{z8tnut:"fqag9an",z189sj:["f1gbmcue","f1rh9g5y"],Byoj8tv:"fp67ikv",uwmqm3:["f1rh9g5y","f1gbmcue"]},largePadding:{z8tnut:"fc7z3ec",z189sj:["fat0sn4","fekwl8i"],Byoj8tv:"fe2my4m",uwmqm3:["fekwl8i","fat0sn4"]},smallArrow:{a9b677:"f1ekdpwm",Bqenvij:"f83vc9z"},mediumLargeArrow:{a9b677:"f1kmc0fn",Bqenvij:"fb6lvc5"},arrow:{qhf8xq:"f1euv43f",De3pzq:"f1u2r49w",Bcdw1i0:"fd7fpy0",Bj3rh1h:"f1bsuimh",Ftih45:"f1wl9k8s",B1puzpu:"f1wkw4r9",Brfgrao:"f1j7ml58",Bcvre1j:"fyl8oag",Ccq8qp:"frdoeuz",Baz25je:"fb81m9q",cmx5o7:"f1ljr5q2",B4f6apu:"fyfemzf",m598lv:"focyt6c",Bk5zm6e:"fnhxbxj",y0oebl:"fdw6hkg",qa3bma:"f11yjt3y",Bqjgrrk:"f1172wan",Budzafs:["f9e5op9","f112wvtl"],Hv9wc6:["f1500xdc","f1it0ps5"],hl6cv3:"f1773hnp",c8svkw:"fw7o64x",yayu3t:"f1v7783n",nr3p0k:"f1f0d6v",rhl9o9:"fh2hsk5",wiz9v7:"f1gj3y7g",B6q6orb:"f11yvu4",ndpsmx:"f17lejdj"}},{d:[".f19n0e5{color:var(--colorNeutralForeground1);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1hg901r{box-shadow:var(--shadow16);}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f5ogflp{border-top-width:1px;}",".f1hqa2wf{border-right-width:1px;}",".finvdd3{border-left-width:1px;}",".f1f09k3d{border-bottom-width:1px;}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f18k4bn6{animation-composition:accumulate;}",".fo1kyvf{animation-duration:var(--durationSlower);}",".fetxo7e{animation-timing-function:var(--curveDecelerateMid);}",".f8x1vz1{--fui-positioning-slide-distance-x:0px;}",".f8g0anz{--fui-positioning-slide-distance-y:10px;}",".fezwn9i[data-popper-placement^=right]{--fui-positioning-slide-distance-x:-10px;}",".fz5efge[data-popper-placement^=right]{--fui-positioning-slide-distance-y:0px;}",".f1ydixl4[data-popper-placement^=bottom]{--fui-positioning-slide-distance-x:0px;}",".f8dgqj5[data-popper-placement^=bottom]{--fui-positioning-slide-distance-y:-10px;}",".fnyfnr8[data-popper-placement^=left]{--fui-positioning-slide-distance-x:10px;}",".fgw77r4[data-popper-placement^=left]{--fui-positioning-slide-distance-y:0px;}",".ftje0s4{animation-name:f5j8bii,f79suad;}",".f19g0ac{z-index:1;}",".fg3r6xk{background-color:var(--colorNeutralBackgroundStatic);}",".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".f1kcqot9{padding-top:12px;}",".f11qrl6u{padding-right:12px;}",".fjlbh76{padding-left:12px;}",".fpe6lb7{padding-bottom:12px;}",".fqag9an{padding-top:16px;}",".f1gbmcue{padding-right:16px;}",".f1rh9g5y{padding-left:16px;}",".fp67ikv{padding-bottom:16px;}",".fc7z3ec{padding-top:20px;}",".fat0sn4{padding-right:20px;}",".fekwl8i{padding-left:20px;}",".fe2my4m{padding-bottom:20px;}",".f1ekdpwm{width:8.484px;}",".f83vc9z{height:8.484px;}",".f1kmc0fn{width:11.312px;}",".fb6lvc5{height:11.312px;}",".f1euv43f{position:absolute;}",".f1u2r49w{background-color:inherit;}",".fd7fpy0{visibility:hidden;}",".f1bsuimh{z-index:-1;}",'.f1wl9k8s::before{content:"";}',".f1wkw4r9::before{visibility:visible;}",".f1j7ml58::before{position:absolute;}",".fyl8oag::before{box-sizing:border-box;}",".frdoeuz::before{width:inherit;}",".fb81m9q::before{height:inherit;}",".f1ljr5q2::before{background-color:inherit;}",".fyfemzf::before{border-right-width:1px;}",".focyt6c::before{border-right-style:solid;}",".fnhxbxj::before{border-right-color:var(--colorTransparentStroke);}",".fdw6hkg::before{border-bottom-width:1px;}",".f11yjt3y::before{border-bottom-style:solid;}",".f1172wan::before{border-bottom-color:var(--colorTransparentStroke);}",".f9e5op9::before{border-bottom-right-radius:var(--borderRadiusSmall);}",".f112wvtl::before{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1500xdc::before{transform:rotate(var(--fui-positioning-angle)) translate(0, 50%) rotate(45deg);}",".f1it0ps5::before{transform:rotate(var(--fui-positioning-angle)) translate(0, 50%) rotate(-45deg);}",'[data-popper-placement^="top"] .f1773hnp{bottom:-1px;}','[data-popper-placement^="top"] .fw7o64x{--fui-positioning-angle:0;}','[data-popper-placement^="right"] .f1v7783n{left:-1px;}','[data-popper-placement^="right"] .f1f0d6v{--fui-positioning-angle:90deg;}','[data-popper-placement^="bottom"] .fh2hsk5{top:-1px;}','[data-popper-placement^="bottom"] .f1gj3y7g{--fui-positioning-angle:180deg;}','[data-popper-placement^="left"] .f11yvu4{right:-1px;}','[data-popper-placement^="left"] .f17lejdj{--fui-positioning-angle:270deg;}'],k:["@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}","@keyframes f79suad{from{transform:translate(var(--fui-positioning-slide-distance-x), var(--fui-positioning-slide-distance-y));}}"],m:[["@media (prefers-reduced-motion){.fi19xcv[data-popper-placement]{animation-duration:1ms;}}",{m:"(prefers-reduced-motion)"}],["@media (prefers-reduced-motion){.f1mzajhk[data-popper-placement]{animation-name:f5j8bii;}}",{m:"(prefers-reduced-motion)"}]],t:["@supports not (animation-composition: accumulate){.fjp4h9y[data-popper-placement]{animation-name:f5j8bii;}}"]}),usePopoverSurfaceStyles_unstable=j=>{const _e=useStyles$v();return j.root.className=mergeClasses(popoverSurfaceClassNames.root,_e.root,j.inline&&_e.inline,j.size==="small"&&_e.smallPadding,j.size==="medium"&&_e.mediumPadding,j.size==="large"&&_e.largePadding,j.appearance==="inverted"&&_e.inverted,j.appearance==="brand"&&_e.brand,j.root.className),j.arrowClassName=mergeClasses(_e.arrow,j.size==="small"?_e.smallArrow:_e.mediumLargeArrow),j},PopoverSurface=reactExports.forwardRef((j,_e)=>{const et=usePopoverSurface_unstable(j,_e);return usePopoverSurfaceStyles_unstable(et),useCustomStyleHook("usePopoverSurfaceStyles_unstable")(et),renderPopoverSurface_unstable(et)});PopoverSurface.displayName="PopoverSurface";const popoverSurfaceBorderRadius=4,usePopover_unstable=j=>{const[_e,et]=usePositioningMouseTarget(),tt={size:"medium",contextTarget:_e,setContextTarget:et,...j},rt=reactExports.Children.toArray(j.children);let nt,ot;rt.length===2?(nt=rt[0],ot=rt[1]):rt.length===1&&(ot=rt[0]);const[it,st]=useOpenState(tt),lt=reactExports.useRef(0),ut=useEventCallback$3((xt,yt)=>{if(clearTimeout(lt.current),!(xt instanceof Event)&&xt.persist&&xt.persist(),xt.type==="mouseleave"){var Et;lt.current=setTimeout(()=>{st(xt,yt)},(Et=j.mouseLeaveDelay)!==null&&Et!==void 0?Et:500)}else st(xt,yt)});reactExports.useEffect(()=>()=>{clearTimeout(lt.current)},[]);const ct=reactExports.useCallback(xt=>{ut(xt,!it)},[ut,it]),dt=usePopoverRefs(tt),{targetDocument:ft}=useFluent();var pt;useOnClickOutside({contains:elementContains$1,element:ft,callback:xt=>ut(xt,!1),refs:[dt.triggerRef,dt.contentRef],disabled:!it,disabledFocusOnIframe:!(!((pt=j.closeOnIframeFocus)!==null&&pt!==void 0)||pt)});const gt=tt.openOnContext||tt.closeOnScroll;useOnScrollOutside({contains:elementContains$1,element:ft,callback:xt=>ut(xt,!1),refs:[dt.triggerRef,dt.contentRef],disabled:!it||!gt});const{findFirstFocusable:vt}=useFocusFinders();reactExports.useEffect(()=>{if(!j.unstable_disableAutoFocus&&it&&dt.contentRef.current){var xt;const yt=(xt=dt.contentRef.current.getAttribute("tabIndex"))!==null&&xt!==void 0?xt:void 0,Et=isNaN(yt)?vt(dt.contentRef.current):dt.contentRef.current;Et==null||Et.focus()}},[vt,it,dt.contentRef,j.unstable_disableAutoFocus]);var bt,_t;return{...tt,...dt,inertTrapFocus:(bt=j.inertTrapFocus)!==null&&bt!==void 0?bt:j.legacyTrapFocus===void 0?!1:!j.legacyTrapFocus,popoverTrigger:nt,popoverSurface:ot,open:it,setOpen:ut,toggleOpen:ct,setContextTarget:et,contextTarget:_e,inline:(_t=j.inline)!==null&&_t!==void 0?_t:!1}};function useOpenState(j){const _e=useEventCallback$3((ot,it)=>{var st;return(st=j.onOpenChange)===null||st===void 0?void 0:st.call(j,ot,it)}),[et,tt]=useControllableState({state:j.open,defaultState:j.defaultOpen,initialState:!1});j.open=et!==void 0?et:j.open;const rt=j.setContextTarget,nt=reactExports.useCallback((ot,it)=>{it&&ot.type==="contextmenu"&&rt(ot),it||rt(void 0),tt(it),_e==null||_e(ot,{open:it})},[tt,_e,rt]);return[et,nt]}function usePopoverRefs(j){const _e={position:"above",align:"center",arrowPadding:2*popoverSurfaceBorderRadius,target:j.openOnContext?j.contextTarget:void 0,...resolvePositioningShorthand(j.positioning)};_e.coverTarget&&(j.withArrow=!1),j.withArrow&&(_e.offset=mergeArrowOffset(_e.offset,arrowHeights[j.size]));const{targetRef:et,containerRef:tt,arrowRef:rt}=usePositioning(_e);return{triggerRef:et,contentRef:tt,arrowRef:rt}}const renderPopover_unstable=j=>{const{appearance:_e,arrowRef:et,contentRef:tt,inline:rt,mountNode:nt,open:ot,openOnContext:it,openOnHover:st,setOpen:lt,size:ut,toggleOpen:ct,trapFocus:dt,triggerRef:ft,withArrow:pt,inertTrapFocus:gt}=j;return reactExports.createElement(PopoverContext.Provider,{value:{appearance:_e,arrowRef:et,contentRef:tt,inline:rt,mountNode:nt,open:ot,openOnContext:it,openOnHover:st,setOpen:lt,toggleOpen:ct,triggerRef:ft,size:ut,trapFocus:dt,inertTrapFocus:gt,withArrow:pt}},j.popoverTrigger,j.open&&j.popoverSurface)},Popover=j=>{const _e=usePopover_unstable(j);return renderPopover_unstable(_e)};Popover.displayName="Popover";const usePopoverTrigger_unstable=j=>{const{children:_e,disableButtonEnhancement:et=!1}=j,tt=getTriggerChild(_e),rt=usePopoverContext_unstable(xt=>xt.open),nt=usePopoverContext_unstable(xt=>xt.setOpen),ot=usePopoverContext_unstable(xt=>xt.toggleOpen),it=usePopoverContext_unstable(xt=>xt.triggerRef),st=usePopoverContext_unstable(xt=>xt.openOnHover),lt=usePopoverContext_unstable(xt=>xt.openOnContext),{triggerAttributes:ut}=useModalAttributes(),ct=xt=>{lt&&(xt.preventDefault(),nt(xt,!0))},dt=xt=>{lt||ot(xt)},ft=xt=>{xt.key===Escape&&rt&&!xt.isDefaultPrevented()&&(nt(xt,!1),xt.preventDefault())},pt=xt=>{st&&nt(xt,!0)},gt=xt=>{st&&nt(xt,!1)},vt={...ut,"aria-expanded":`${rt}`,...tt==null?void 0:tt.props,onMouseEnter:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onMouseEnter,pt)),onMouseLeave:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onMouseLeave,gt)),onContextMenu:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onContextMenu,ct)),ref:useMergedRefs$1(it,tt==null?void 0:tt.ref)},bt={...vt,onClick:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onClick,dt)),onKeyDown:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onKeyDown,ft))},_t=useARIAButtonProps((tt==null?void 0:tt.type)==="button"||(tt==null?void 0:tt.type)==="a"?tt.type:"div",bt);return{children:applyTriggerPropsToChildren(j.children,useARIAButtonProps((tt==null?void 0:tt.type)==="button"||(tt==null?void 0:tt.type)==="a"?tt.type:"div",lt?vt:et?bt:_t))}},renderPopoverTrigger_unstable=j=>j.children,PopoverTrigger=j=>{const _e=usePopoverTrigger_unstable(j);return renderPopoverTrigger_unstable(_e)};PopoverTrigger.displayName="PopoverTrigger";PopoverTrigger.isFluentTriggerComponent=!0;const arrowHeight=6,tooltipBorderRadius=4,useTooltip_unstable=j=>{var _e,et,tt,rt;const nt=useTooltipVisibility(),ot=useIsSSR(),{targetDocument:it}=useFluent(),[st,lt]=useTimeout(),{appearance:ut="normal",children:ct,content:dt,withArrow:ft=!1,positioning:pt="above",onVisibleChange:gt,relationship:vt,showDelay:bt=250,hideDelay:_t=250,mountNode:xt}=j,[yt,Et]=useControllableState({state:j.visible,initialState:!1}),St=reactExports.useCallback((jt,Gt)=>{lt(),Et(Vt=>(Gt.visible!==Vt&&(gt==null||gt(jt,Gt)),Gt.visible))},[lt,Et,gt]),$t={withArrow:ft,positioning:pt,showDelay:bt,hideDelay:_t,relationship:vt,visible:yt,shouldRenderTooltip:yt,appearance:ut,mountNode:xt,components:{content:"div"},content:always(dt,{defaultProps:{role:"tooltip"},elementType:"div"})};$t.content.id=useId$1("tooltip-",$t.content.id);const At={enabled:$t.visible,arrowPadding:2*tooltipBorderRadius,position:"above",align:"center",offset:4,...resolvePositioningShorthand($t.positioning)};$t.withArrow&&(At.offset=mergeArrowOffset(At.offset,arrowHeight));const{targetRef:wt,containerRef:Ct,arrowRef:It}=usePositioning(At);$t.content.ref=useMergedRefs$1($t.content.ref,Ct),$t.arrowRef=It,useIsomorphicLayoutEffect$1(()=>{if(yt){var jt;const Gt={hide:Yt=>St(void 0,{visible:!1,documentKeyboardEvent:Yt})};(jt=nt.visibleTooltip)===null||jt===void 0||jt.hide(),nt.visibleTooltip=Gt;const Vt=Yt=>{Yt.key===Escape&&!Yt.defaultPrevented&&(Gt.hide(Yt),Yt.preventDefault())};return it==null||it.addEventListener("keydown",Vt,{capture:!0}),()=>{nt.visibleTooltip===Gt&&(nt.visibleTooltip=void 0),it==null||it.removeEventListener("keydown",Vt,{capture:!0})}}},[nt,it,yt,St]);const Ot=reactExports.useRef(!1),Nt=reactExports.useCallback(jt=>{if(jt.type==="focus"&&Ot.current){Ot.current=!1;return}const Gt=nt.visibleTooltip?0:$t.showDelay;st(()=>{St(jt,{visible:!0})},Gt),jt.persist()},[st,St,$t.showDelay,nt]),[Pt]=reactExports.useState(()=>{const jt=Vt=>{var Yt;!((Yt=Vt.detail)===null||Yt===void 0)&&Yt.isFocusedProgrammatically&&(Ot.current=!0)};let Gt=null;return Vt=>{Gt==null||Gt.removeEventListener(KEYBORG_FOCUSIN,jt),Vt==null||Vt.addEventListener(KEYBORG_FOCUSIN,jt),Gt=Vt}}),Mt=reactExports.useCallback(jt=>{let Gt=$t.hideDelay;jt.type==="blur"&&(Gt=0,Ot.current=(it==null?void 0:it.activeElement)===jt.target),st(()=>{St(jt,{visible:!1})},Gt),jt.persist()},[st,St,$t.hideDelay,it]);$t.content.onPointerEnter=mergeCallbacks($t.content.onPointerEnter,lt),$t.content.onPointerLeave=mergeCallbacks($t.content.onPointerLeave,Mt),$t.content.onFocus=mergeCallbacks($t.content.onFocus,lt),$t.content.onBlur=mergeCallbacks($t.content.onBlur,Mt);const Rt=getTriggerChild(ct),Lt={};return vt==="label"?typeof $t.content.children=="string"?Lt["aria-label"]=$t.content.children:(Lt["aria-labelledby"]=$t.content.id,$t.shouldRenderTooltip=!0):vt==="description"&&(Lt["aria-describedby"]=$t.content.id,$t.shouldRenderTooltip=!0),ot&&($t.shouldRenderTooltip=!1),$t.children=applyTriggerPropsToChildren(ct,{...Lt,...Rt==null?void 0:Rt.props,ref:useMergedRefs$1(Rt==null?void 0:Rt.ref,Pt,At.target===void 0?wt:void 0),onPointerEnter:useEventCallback$3(mergeCallbacks(Rt==null||(_e=Rt.props)===null||_e===void 0?void 0:_e.onPointerEnter,Nt)),onPointerLeave:useEventCallback$3(mergeCallbacks(Rt==null||(et=Rt.props)===null||et===void 0?void 0:et.onPointerLeave,Mt)),onFocus:useEventCallback$3(mergeCallbacks(Rt==null||(tt=Rt.props)===null||tt===void 0?void 0:tt.onFocus,Nt)),onBlur:useEventCallback$3(mergeCallbacks(Rt==null||(rt=Rt.props)===null||rt===void 0?void 0:rt.onBlur,Mt))}),$t},renderTooltip_unstable=j=>jsxs(reactExports.Fragment,{children:[j.children,j.shouldRenderTooltip&&jsx$1(Portal$1,{mountNode:j.mountNode,children:jsxs(j.content,{children:[j.withArrow&&jsx$1("div",{ref:j.arrowRef,className:j.arrowClassName}),j.content.children]})})]}),tooltipClassNames={content:"fui-Tooltip__content"},useStyles$u=__styles({root:{mc9l5x:"fjseox",B7ck84d:"f1ewtqcl",B2u0y6b:"f132xexn",Bceei9c:"f158kwzp",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bg96gwp:"fwrc4pm",Btd35i7:"fokg9q4",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B4j52fo:"f5ogflp",Bekrc4i:["f1hqa2wf","finvdd3"],Bn0qgzm:"f1f09k3d",ibv6hh:["finvdd3","f1hqa2wf"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"],z8tnut:"f10ra9hq",z189sj:["fd9xhir","f1jlaasf"],Byoj8tv:"f1d7kygh",uwmqm3:["f1jlaasf","fd9xhir"],De3pzq:"fxugw4r",sj55zd:"f19n0e5",Bhu2qc9:"fxeb0a7"},visible:{mc9l5x:"ftgm304"},inverted:{De3pzq:"fg3r6xk",sj55zd:"fonrgv7"},arrow:{qhf8xq:"f1euv43f",De3pzq:"f1u2r49w",Bcdw1i0:"fd7fpy0",Bj3rh1h:"f1bsuimh",a9b677:"f1ekdpwm",Bqenvij:"f83vc9z",Ftih45:"f1wl9k8s",B1puzpu:"f1wkw4r9",Brfgrao:"f1j7ml58",Bcvre1j:"fyl8oag",Ccq8qp:"frdoeuz",Baz25je:"fb81m9q",cmx5o7:"f1ljr5q2",B4f6apu:"fyfemzf",m598lv:"focyt6c",Bk5zm6e:"fnhxbxj",y0oebl:"fdw6hkg",qa3bma:"f11yjt3y",Bqjgrrk:"f1172wan",Budzafs:["f9e5op9","f112wvtl"],Hv9wc6:["f1500xdc","f1it0ps5"],hl6cv3:"f1773hnp",c8svkw:"fw7o64x",yayu3t:"f1v7783n",nr3p0k:"f1f0d6v",rhl9o9:"fh2hsk5",wiz9v7:"f1gj3y7g",B6q6orb:"f11yvu4",ndpsmx:"f17lejdj"}},{d:[".fjseox{display:none;}",".f1ewtqcl{box-sizing:border-box;}",".f132xexn{max-width:240px;}",".f158kwzp{cursor:default;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fokg9q4{overflow-wrap:break-word;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f5ogflp{border-top-width:1px;}",".f1hqa2wf{border-right-width:1px;}",".finvdd3{border-left-width:1px;}",".f1f09k3d{border-bottom-width:1px;}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".f10ra9hq{padding-top:4px;}",".fd9xhir{padding-right:11px;}",".f1jlaasf{padding-left:11px;}",".f1d7kygh{padding-bottom:6px;}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".fxeb0a7{filter:drop-shadow(0 0 2px var(--colorNeutralShadowAmbient)) drop-shadow(0 4px 8px var(--colorNeutralShadowKey));}",".ftgm304{display:block;}",".fg3r6xk{background-color:var(--colorNeutralBackgroundStatic);}",".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".f1euv43f{position:absolute;}",".f1u2r49w{background-color:inherit;}",".fd7fpy0{visibility:hidden;}",".f1bsuimh{z-index:-1;}",".f1ekdpwm{width:8.484px;}",".f83vc9z{height:8.484px;}",'.f1wl9k8s::before{content:"";}',".f1wkw4r9::before{visibility:visible;}",".f1j7ml58::before{position:absolute;}",".fyl8oag::before{box-sizing:border-box;}",".frdoeuz::before{width:inherit;}",".fb81m9q::before{height:inherit;}",".f1ljr5q2::before{background-color:inherit;}",".fyfemzf::before{border-right-width:1px;}",".focyt6c::before{border-right-style:solid;}",".fnhxbxj::before{border-right-color:var(--colorTransparentStroke);}",".fdw6hkg::before{border-bottom-width:1px;}",".f11yjt3y::before{border-bottom-style:solid;}",".f1172wan::before{border-bottom-color:var(--colorTransparentStroke);}",".f9e5op9::before{border-bottom-right-radius:var(--borderRadiusSmall);}",".f112wvtl::before{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1500xdc::before{transform:rotate(var(--fui-positioning-angle)) translate(0, 50%) rotate(45deg);}",".f1it0ps5::before{transform:rotate(var(--fui-positioning-angle)) translate(0, 50%) rotate(-45deg);}",'[data-popper-placement^="top"] .f1773hnp{bottom:-1px;}','[data-popper-placement^="top"] .fw7o64x{--fui-positioning-angle:0;}','[data-popper-placement^="right"] .f1v7783n{left:-1px;}','[data-popper-placement^="right"] .f1f0d6v{--fui-positioning-angle:90deg;}','[data-popper-placement^="bottom"] .fh2hsk5{top:-1px;}','[data-popper-placement^="bottom"] .f1gj3y7g{--fui-positioning-angle:180deg;}','[data-popper-placement^="left"] .f11yvu4{right:-1px;}','[data-popper-placement^="left"] .f17lejdj{--fui-positioning-angle:270deg;}']}),useTooltipStyles_unstable=j=>{const _e=useStyles$u();return j.content.className=mergeClasses(tooltipClassNames.content,_e.root,j.appearance==="inverted"&&_e.inverted,j.visible&&_e.visible,j.content.className),j.arrowClassName=_e.arrow,j},Tooltip$1=j=>{const _e=useTooltip_unstable(j);return useTooltipStyles_unstable(_e),useCustomStyleHook("useTooltipStyles_unstable")(_e),renderTooltip_unstable(_e)};Tooltip$1.displayName="Tooltip";Tooltip$1.isFluentTriggerComponent=!0;const renderButton_unstable=j=>{const{iconOnly:_e,iconPosition:et}=j;return jsxs(j.root,{children:[et!=="after"&&j.icon&&jsx$1(j.icon,{}),!_e&&j.root.children,et==="after"&&j.icon&&jsx$1(j.icon,{})]})},buttonContext=reactExports.createContext(void 0),buttonContextDefaultValue={};buttonContext.Provider;const useButtonContext=()=>{var j;return(j=reactExports.useContext(buttonContext))!==null&&j!==void 0?j:buttonContextDefaultValue},useButton_unstable=(j,_e)=>{const{size:et}=useButtonContext(),{appearance:tt="secondary",as:rt="button",disabled:nt=!1,disabledFocusable:ot=!1,icon:it,iconPosition:st="before",shape:lt="rounded",size:ut=et??"medium"}=j,ct=optional(it,{elementType:"span"});return{appearance:tt,disabled:nt,disabledFocusable:ot,iconPosition:st,shape:lt,size:ut,iconOnly:!!(ct!=null&&ct.children&&!j.children),components:{root:"button",icon:"span"},root:always(getIntrinsicElementProps(rt,useARIAButtonProps(j.as,j)),{elementType:"button",defaultProps:{ref:_e,type:"button"}}),icon:ct}},buttonClassNames={root:"fui-Button",icon:"fui-Button__icon"},useRootBaseClassName$1=__resetStyles("r1alrhcs",null,{r:[".r1alrhcs{align-items:center;box-sizing:border-box;display:inline-flex;justify-content:center;text-decoration-line:none;vertical-align:middle;margin:0;overflow:hidden;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);font-family:var(--fontFamilyBase);outline-style:none;padding:5px var(--spacingHorizontalM);min-width:96px;border-radius:var(--borderRadiusMedium);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase300);transition-duration:var(--durationFaster);transition-property:background,border,color;transition-timing-function:var(--curveEasyEase);}",".r1alrhcs:hover{background-color:var(--colorNeutralBackground1Hover);border-color:var(--colorNeutralStroke1Hover);color:var(--colorNeutralForeground1Hover);cursor:pointer;}",".r1alrhcs:hover:active{background-color:var(--colorNeutralBackground1Pressed);border-color:var(--colorNeutralStroke1Pressed);color:var(--colorNeutralForeground1Pressed);outline-style:none;}",".r1alrhcs[data-fui-focus-visible]{border-color:var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);border-width:1px;outline:var(--strokeWidthThick) solid var(--colorTransparentStroke);box-shadow:0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset;z-index:1;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r1alrhcs{transition-duration:0.01ms;}}","@media (forced-colors: active){.r1alrhcs:focus{border-color:ButtonText;}.r1alrhcs:hover{background-color:HighlightText;border-color:Highlight;color:Highlight;forced-color-adjust:none;}.r1alrhcs:hover:active{background-color:HighlightText;border-color:Highlight;color:Highlight;forced-color-adjust:none;}}","@supports (-moz-appearance:button){.r1alrhcs[data-fui-focus-visible]{box-shadow:0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset;}}"]}),useIconBaseClassName=__resetStyles("rywnvv2",null,[".rywnvv2{align-items:center;display:inline-flex;justify-content:center;font-size:20px;height:20px;width:20px;--fui-Button__icon--spacing:var(--spacingHorizontalSNudge);}"]),useRootStyles$5=__styles({outline:{De3pzq:"f1c21dwh",Jwef8y:"fjxutwb",iro3zm:"fwiml72"},primary:{De3pzq:"ffp7eso",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"f1phragk",Jwef8y:"f15wkkf3",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"f1rq72xc",iro3zm:"fnp9lpt",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1d6v5y2",Bsw6fvg:"f1rirnrt",Bjwas2f:"f1uu00uk",Bn1d65q:["fkvaka8","f9a0qzu"],Bxeuatn:"f1ux7til",n51gp8:["f9a0qzu","fkvaka8"],Bbusuzp:"f1lkg8j3",ycbfsm:"fkc42ay",Bqrx1nm:"fq7113v",pgvf35:"ff1wgvm",Bh7lczh:["fiob0tu","f1x4h75k"],dpv3f4:"f1j6scgf",Bpnjhaq:["f1x4h75k","fiob0tu"],ze5xyy:"f4xjyn1",g2kj27:"fbgcvur",Bf756sw:"f1ks1yx8",Bow2dr7:["f1o6qegi","fmxjhhp"],Bvhedfk:"fcnxywj",Gye4lf:["fmxjhhp","f1o6qegi"],pc6evw:"f9ddjv3"},secondary:{},subtle:{De3pzq:"fhovq9v",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"fkfq4zb",Jwef8y:"f1t94bn6",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"fnwyq0v",Bk3fhr4:"ft1hn21",Bmfj8id:"fuxngvv",Bbdnnc7:"fy5bs14",iro3zm:"fsv2rcd",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1omzyqd",em6i61:"f1dfjoow",vm6p8p:"f1j98vj9",x3br3k:"fj8yq94",ze5xyy:"f4xjyn1",Bx3q9su:"f1et0tmh",pc6evw:"f9ddjv3",xd2cci:"f1wi8ngl"},transparent:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"fkfq4zb",Jwef8y:"fjxutwb",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"f139oj5f",Bk3fhr4:"ft1hn21",Bmfj8id:"fuxngvv",iro3zm:"fwiml72",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1fg1p5m",em6i61:"f1dfjoow",vm6p8p:"f1j98vj9",Bqrx1nm:"f1tme0vf",ze5xyy:"f4xjyn1",g2kj27:"f18onu3q",pc6evw:"f9ddjv3"},circular:{Bbmb7ep:["f8fbkgy","f1nfllo7"],Beyfa6y:["f1nfllo7","f8fbkgy"],B7oj6ja:["f1djnp8u","f1s8kh49"],Btl43ni:["f1s8kh49","f1djnp8u"]},rounded:{},square:{Bbmb7ep:["fzi6hpg","fyowgf4"],Beyfa6y:["fyowgf4","fzi6hpg"],B7oj6ja:["f3fg2lr","f13av6d4"],Btl43ni:["f13av6d4","f3fg2lr"]},small:{Bf4jedk:"fh7ncta",z8tnut:"f1khb0e9",z189sj:["f1vdfbxk","f1f5gg8d"],Byoj8tv:"f1jnq6q7",uwmqm3:["f1f5gg8d","f1vdfbxk"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},smallWithIcon:{Byoj8tv:"f1brlhvm",z8tnut:"f1sl3k7w"},medium:{},large:{Bf4jedk:"f14es27b",z8tnut:"fp9bwmr",z189sj:["fjodcmx","fhx4nu"],Byoj8tv:"f150uoa4",uwmqm3:["fhx4nu","fjodcmx"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},largeWithIcon:{Byoj8tv:"fy7v416",z8tnut:"f1a1bwwz"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fkfq4zb{color:var(--colorNeutralForeground2);}",".f8fbkgy{border-bottom-right-radius:var(--borderRadiusCircular);}",".f1nfllo7{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1djnp8u{border-top-right-radius:var(--borderRadiusCircular);}",".f1s8kh49{border-top-left-radius:var(--borderRadiusCircular);}",".fzi6hpg{border-bottom-right-radius:var(--borderRadiusNone);}",".fyowgf4{border-bottom-left-radius:var(--borderRadiusNone);}",".f3fg2lr{border-top-right-radius:var(--borderRadiusNone);}",".f13av6d4{border-top-left-radius:var(--borderRadiusNone);}",".fh7ncta{min-width:64px;}",".f1khb0e9{padding-top:3px;}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".f1jnq6q7{padding-bottom:3px;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1brlhvm{padding-bottom:1px;}",".f1sl3k7w{padding-top:1px;}",".f14es27b{min-width:96px;}",".fp9bwmr{padding-top:8px;}",".fjodcmx{padding-right:var(--spacingHorizontalL);}",".fhx4nu{padding-left:var(--spacingHorizontalL);}",".f150uoa4{padding-bottom:8px;}",".fod5ikn{font-size:var(--fontSizeBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fy7v416{padding-bottom:7px;}",".f1a1bwwz{padding-top:7px;}"],h:[".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".fwiml72:hover:active{background-color:var(--colorTransparentBackgroundPressed);}",".f15wkkf3:hover{background-color:var(--colorBrandBackgroundHover);}",".f1s2uweq:hover{border-top-color:transparent;}",".fr80ssc:hover{border-right-color:transparent;}",".fecsdlb:hover{border-left-color:transparent;}",".f1ukrpxl:hover{border-bottom-color:transparent;}",".f1rq72xc:hover{color:var(--colorNeutralForegroundOnBrand);}",".fnp9lpt:hover:active{background-color:var(--colorBrandBackgroundPressed);}",".f1h0usnq:hover:active{border-top-color:transparent;}",".fs4ktlq:hover:active{border-right-color:transparent;}",".fx2bmrt:hover:active{border-left-color:transparent;}",".f16h9ulv:hover:active{border-bottom-color:transparent;}",".f1d6v5y2:hover:active{color:var(--colorNeutralForegroundOnBrand);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".fnwyq0v:hover{color:var(--colorNeutralForeground2Hover);}",".ft1hn21:hover .fui-Icon-filled{display:inline;}",".fuxngvv:hover .fui-Icon-regular{display:none;}",".fy5bs14:hover .fui-Button__icon{color:var(--colorNeutralForeground2BrandHover);}",".fsv2rcd:hover:active{background-color:var(--colorSubtleBackgroundPressed);}",".f1omzyqd:hover:active{color:var(--colorNeutralForeground2Pressed);}",".f1dfjoow:hover:active .fui-Icon-filled{display:inline;}",".f1j98vj9:hover:active .fui-Icon-regular{display:none;}",".fj8yq94:hover:active .fui-Button__icon{color:var(--colorNeutralForeground2BrandPressed);}",".f139oj5f:hover{color:var(--colorNeutralForeground2BrandHover);}",".f1fg1p5m:hover:active{color:var(--colorNeutralForeground2BrandPressed);}"],m:[["@media (forced-colors: active){.f1rirnrt{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1uu00uk{border-top-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f9a0qzu{border-left-color:HighlightText;}.fkvaka8{border-right-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ux7til{border-bottom-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lkg8j3{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fq7113v:hover{background-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.ff1wgvm:hover{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1x4h75k:hover{border-left-color:Highlight;}.fiob0tu:hover{border-right-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1j6scgf:hover{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f4xjyn1:hover{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fbgcvur:hover:active{background-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ks1yx8:hover:active{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1o6qegi:hover:active{border-right-color:Highlight;}.fmxjhhp:hover:active{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fcnxywj:hover:active{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f9ddjv3:hover:active{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1et0tmh:hover .fui-Button__icon{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1wi8ngl:hover:active .fui-Button__icon{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1tme0vf:hover{background-color:var(--colorTransparentBackground);}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f18onu3q:hover:active{background-color:var(--colorTransparentBackground);}}",{m:"(forced-colors: active)"}]]}),useRootDisabledStyles=__styles({base:{De3pzq:"f1bg9a2p",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr",Bfinmwp:"f15x8b5r",Jwef8y:"f1falr9n",Bgoe8wy:"f12mpcsy",Bwzppfd:["f1gwvigk","f18rmfxp"],oetu4i:"f1jnshp0",gg5e9n:["f18rmfxp","f1gwvigk"],Bi91k9c:"fvgxktp",eoavqd:"fphbwmw",Bk3fhr4:"f19vpps7",Bmfj8id:"fv5swzo",Bbdnnc7:"f1al02dq",iro3zm:"f1t6o4dc",b661bw:"f10ztigi",Bk6r4ia:["f1ft5sdu","f1gzf82w"],B9zn80p:"f12zbtn2",Bpld233:["f1gzf82w","f1ft5sdu"],B2d53fq:"fcvwxyo",c3iz72:"f8w4c43",em6i61:"f1ol4fw6",vm6p8p:"f1q1lw4e",x3br3k:"f1dwjv2g"},highContrast:{Bsw6fvg:"f4lkoma",Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"],Bbusuzp:"f1dcs8yz",G867l3:"fjwq6ea",gdbnj:["f1lr3nhc","f1mbxvi6"],mxns5l:"fn5gmvv",o3nasb:["f1mbxvi6","f1lr3nhc"],Bqrx1nm:"f1vmkb5g",pgvf35:"f53ppgq",Bh7lczh:["f1663y11","f80fkiy"],dpv3f4:"f18v5270",Bpnjhaq:["f80fkiy","f1663y11"],ze5xyy:"f1kc2mi9",g2kj27:"f1y0svfh",Bf756sw:"fihuait",Bow2dr7:["fnxhupq","fyd6l6x"],Bvhedfk:"fx507ft",Gye4lf:["fyd6l6x","fnxhupq"],pc6evw:"fb3rf2x"},outline:{De3pzq:"f1c21dwh",Jwef8y:"f9ql6rf",iro3zm:"f3h1zc4"},primary:{g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]},secondary:{},subtle:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Jwef8y:"f9ql6rf",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],iro3zm:"f3h1zc4",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]},transparent:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Jwef8y:"f9ql6rf",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],iro3zm:"f3h1zc4",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]}},{d:[".f1bg9a2p{background-color:var(--colorNeutralBackgroundDisabled);}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f15x8b5r .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}"],h:[".f1falr9n:hover{background-color:var(--colorNeutralBackgroundDisabled);}",".f12mpcsy:hover{border-top-color:var(--colorNeutralStrokeDisabled);}",".f1gwvigk:hover{border-right-color:var(--colorNeutralStrokeDisabled);}",".f18rmfxp:hover{border-left-color:var(--colorNeutralStrokeDisabled);}",".f1jnshp0:hover{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}",".fphbwmw:hover{cursor:not-allowed;}",".f19vpps7:hover .fui-Icon-filled{display:none;}",".fv5swzo:hover .fui-Icon-regular{display:inline;}",".f1al02dq:hover .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f1t6o4dc:hover:active{background-color:var(--colorNeutralBackgroundDisabled);}",".f10ztigi:hover:active{border-top-color:var(--colorNeutralStrokeDisabled);}",".f1ft5sdu:hover:active{border-right-color:var(--colorNeutralStrokeDisabled);}",".f1gzf82w:hover:active{border-left-color:var(--colorNeutralStrokeDisabled);}",".f12zbtn2:hover:active{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fcvwxyo:hover:active{color:var(--colorNeutralForegroundDisabled);}",".f8w4c43:hover:active{cursor:not-allowed;}",".f1ol4fw6:hover:active .fui-Icon-filled{display:none;}",".f1q1lw4e:hover:active .fui-Icon-regular{display:inline;}",".f1dwjv2g:hover:active .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}",".f3h1zc4:hover:active{background-color:var(--colorTransparentBackground);}",".f1s2uweq:hover{border-top-color:transparent;}",".fr80ssc:hover{border-right-color:transparent;}",".fecsdlb:hover{border-left-color:transparent;}",".f1ukrpxl:hover{border-bottom-color:transparent;}",".f1h0usnq:hover:active{border-top-color:transparent;}",".fs4ktlq:hover:active{border-right-color:transparent;}",".fx2bmrt:hover:active{border-left-color:transparent;}",".f16h9ulv:hover:active{border-bottom-color:transparent;}"],m:[["@media (forced-colors: active){.f4lkoma{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fjwq6ea:focus{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lr3nhc:focus{border-right-color:GrayText;}.f1mbxvi6:focus{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fn5gmvv:focus{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1vmkb5g:hover{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f53ppgq:hover{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1663y11:hover{border-right-color:GrayText;}.f80fkiy:hover{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f18v5270:hover{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1kc2mi9:hover{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1y0svfh:hover:active{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fihuait:hover:active{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fnxhupq:hover:active{border-right-color:GrayText;}.fyd6l6x:hover:active{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fx507ft:hover:active{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fb3rf2x:hover:active{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),useRootFocusStyles=__styles({circular:{kdpuga:["fanj13w","f1gou5sz"],Bw81rd7:["f1gou5sz","fanj13w"],B6xbmo0:["fulf6x3","foeb2x"],dm238s:["foeb2x","fulf6x3"]},rounded:{},square:{kdpuga:["f1ndz5i7","f1co4qro"],Bw81rd7:["f1co4qro","f1ndz5i7"],B6xbmo0:["f146y5a9","f1k2ftg"],dm238s:["f1k2ftg","f146y5a9"]},primary:{B8q5s1w:"f17t0x8g",Bci5o5g:["f194v5ow","fk7jm04"],n8qw10:"f1qgg65p",Bdrgwmp:["fk7jm04","f194v5ow"],j6ew2k:["fhgccpy","fjo7pq6"],he4mth:"f32wu9k",Byr4aka:"fu5nqqq",lks7q5:["f13prjl2","f1nl83rv"],Bnan3qt:"f1czftr5",k1dn9:["f1nl83rv","f13prjl2"],Boium3a:["f12k37oa","fdnykm2"],tm8e47:"fr96u23"},small:{kdpuga:["fg3gtdo","fwii5mg"],Bw81rd7:["fwii5mg","fg3gtdo"],B6xbmo0:["f1palphq","f12nxie7"],dm238s:["f12nxie7","f1palphq"]},medium:{},large:{kdpuga:["ft3lys4","f1la4x2g"],Bw81rd7:["f1la4x2g","ft3lys4"],B6xbmo0:["f156y0zm","fakimq4"],dm238s:["fakimq4","f156y0zm"]}},{d:[".fanj13w[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusCircular);}",".f1gou5sz[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusCircular);}",".fulf6x3[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusCircular);}",".foeb2x[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusCircular);}",".f1ndz5i7[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusNone);}",".f1co4qro[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusNone);}",".f146y5a9[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusNone);}",".f1k2ftg[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusNone);}",".f17t0x8g[data-fui-focus-visible]{border-top-color:var(--colorStrokeFocus2);}",".f194v5ow[data-fui-focus-visible]{border-right-color:var(--colorStrokeFocus2);}",".fk7jm04[data-fui-focus-visible]{border-left-color:var(--colorStrokeFocus2);}",".f1qgg65p[data-fui-focus-visible]{border-bottom-color:var(--colorStrokeFocus2);}",".fhgccpy[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}",".fjo7pq6[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}",".f32wu9k[data-fui-focus-visible]:hover{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset;}",".fu5nqqq[data-fui-focus-visible]:hover{border-top-color:var(--colorStrokeFocus2);}",".f13prjl2[data-fui-focus-visible]:hover{border-right-color:var(--colorStrokeFocus2);}",".f1nl83rv[data-fui-focus-visible]:hover{border-left-color:var(--colorStrokeFocus2);}",".f1czftr5[data-fui-focus-visible]:hover{border-bottom-color:var(--colorStrokeFocus2);}",".fg3gtdo[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusSmall);}",".fwii5mg[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1palphq[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusSmall);}",".f12nxie7[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusSmall);}",".ft3lys4[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusLarge);}",".f1la4x2g[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusLarge);}",".f156y0zm[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusLarge);}",".fakimq4[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusLarge);}"],t:["@supports (-moz-appearance:button){.f12k37oa[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}.fdnykm2[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}}","@supports (-moz-appearance:button){.fr96u23[data-fui-focus-visible]:hover{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset;}}"]}),useRootIconOnlyStyles=__styles({small:{z8tnut:"f1sl3k7w",z189sj:["f136y8j8","f10xn8zz"],Byoj8tv:"f1brlhvm",uwmqm3:["f10xn8zz","f136y8j8"],Bf4jedk:"f17fgpbq",B2u0y6b:"f1jt17bm"},medium:{z8tnut:"f1sbtcvk",z189sj:["fwiuce9","f15vdbe4"],Byoj8tv:"fdghr9",uwmqm3:["f15vdbe4","fwiuce9"],Bf4jedk:"fwbmr0d",B2u0y6b:"f44c6la"},large:{z8tnut:"f1a1bwwz",z189sj:["f18k1jr3","f1rtp3s9"],Byoj8tv:"fy7v416",uwmqm3:["f1rtp3s9","f18k1jr3"],Bf4jedk:"f12clzc2",B2u0y6b:"fjy1crr"}},{d:[".f1sl3k7w{padding-top:1px;}",".f136y8j8{padding-right:1px;}",".f10xn8zz{padding-left:1px;}",".f1brlhvm{padding-bottom:1px;}",".f17fgpbq{min-width:24px;}",".f1jt17bm{max-width:24px;}",".f1sbtcvk{padding-top:5px;}",".fwiuce9{padding-right:5px;}",".f15vdbe4{padding-left:5px;}",".fdghr9{padding-bottom:5px;}",".fwbmr0d{min-width:32px;}",".f44c6la{max-width:32px;}",".f1a1bwwz{padding-top:7px;}",".f18k1jr3{padding-right:7px;}",".f1rtp3s9{padding-left:7px;}",".fy7v416{padding-bottom:7px;}",".f12clzc2{min-width:40px;}",".fjy1crr{max-width:40px;}"]}),useIconStyles$2=__styles({small:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3",Bqrlyyl:"fbaiahx"},medium:{},large:{Be2twd7:"f1rt2boy",Bqenvij:"frvgh55",a9b677:"fq4mcun",Bqrlyyl:"f1exjqw5"},before:{t21cq0:["f1nizpg2","f1a695kz"]},after:{Frg6f3:["f1a695kz","f1nizpg2"]}},{d:[".fe5j1ua{font-size:20px;}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",".fbaiahx{--fui-Button__icon--spacing:var(--spacingHorizontalXS);}",".f1rt2boy{font-size:24px;}",".frvgh55{height:24px;}",".fq4mcun{width:24px;}",".f1exjqw5{--fui-Button__icon--spacing:var(--spacingHorizontalSNudge);}",".f1nizpg2{margin-right:var(--fui-Button__icon--spacing);}",".f1a695kz{margin-left:var(--fui-Button__icon--spacing);}"]}),useButtonStyles_unstable=j=>{const _e=useRootBaseClassName$1(),et=useIconBaseClassName(),tt=useRootStyles$5(),rt=useRootDisabledStyles(),nt=useRootFocusStyles(),ot=useRootIconOnlyStyles(),it=useIconStyles$2(),{appearance:st,disabled:lt,disabledFocusable:ut,icon:ct,iconOnly:dt,iconPosition:ft,shape:pt,size:gt}=j;return j.root.className=mergeClasses(buttonClassNames.root,_e,st&&tt[st],tt[gt],ct&>==="small"&&tt.smallWithIcon,ct&>==="large"&&tt.largeWithIcon,tt[pt],(lt||ut)&&rt.base,(lt||ut)&&rt.highContrast,st&&(lt||ut)&&rt[st],st==="primary"&&nt.primary,nt[gt],nt[pt],dt&&ot[gt],j.root.className),j.icon&&(j.icon.className=mergeClasses(buttonClassNames.icon,et,!!j.root.children&&it[ft],it[gt],j.icon.className)),j},Button$2=reactExports.forwardRef((j,_e)=>{const et=useButton_unstable(j,_e);return useButtonStyles_unstable(et),useCustomStyleHook("useButtonStyles_unstable")(et),renderButton_unstable(et)});Button$2.displayName="Button";const FieldContext=reactExports.createContext(void 0);FieldContext.Provider;const useFieldContext_unstable=()=>reactExports.useContext(FieldContext);function useFieldControlProps_unstable(j,_e){return getFieldControlProps(useFieldContext_unstable(),j,_e)}function getFieldControlProps(j,_e,et){if(!j)return _e;_e={..._e};const{generatedControlId:tt,hintId:rt,labelFor:nt,labelId:ot,required:it,validationMessageId:st,validationState:lt}=j;if(tt){var ut,ct;(ct=(ut=_e).id)!==null&&ct!==void 0||(ut.id=tt)}if(ot&&(!(et!=null&&et.supportsLabelFor)||nt!==_e.id)){var dt,ft,pt;(pt=(dt=_e)[ft="aria-labelledby"])!==null&&pt!==void 0||(dt[ft]=ot)}if((st||rt)&&(_e["aria-describedby"]=[st,rt,_e==null?void 0:_e["aria-describedby"]].filter(Boolean).join(" ")),lt==="error"){var gt,vt,bt;(bt=(gt=_e)[vt="aria-invalid"])!==null&&bt!==void 0||(gt[vt]=!0)}if(it)if(et!=null&&et.supportsRequired){var _t,xt;(xt=(_t=_e).required)!==null&&xt!==void 0||(_t.required=!0)}else{var yt,Et,St;(St=(yt=_e)[Et="aria-required"])!==null&&St!==void 0||(yt[Et]=!0)}if(et!=null&&et.supportsSize){var $t,At;(At=($t=_e).size)!==null&&At!==void 0||($t.size=j.size)}return _e}const useLabel_unstable=(j,_e)=>{const{disabled:et=!1,required:tt=!1,weight:rt="regular",size:nt="medium"}=j;return{disabled:et,required:optional(tt===!0?"*":tt||void 0,{defaultProps:{"aria-hidden":"true"},elementType:"span"}),weight:rt,size:nt,components:{root:"label",required:"span"},root:always(getIntrinsicElementProps("label",{ref:_e,...j}),{elementType:"label"})}},renderLabel_unstable=j=>jsxs(j.root,{children:[j.root.children,j.required&&jsx$1(j.required,{})]}),labelClassNames={root:"fui-Label",required:"fui-Label__required"},useStyles$t=__styles({root:{Bahqtrf:"fk6fouc",sj55zd:"f19n0e5"},disabled:{sj55zd:"f1s2aq7o"},required:{sj55zd:"f1whyuy6",uwmqm3:["fycuoez","f8wuabp"]},requiredDisabled:{sj55zd:"f1s2aq7o"},small:{Be2twd7:"fy9rknc",Bg96gwp:"fwrc4pm"},medium:{Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi"},large:{Be2twd7:"fod5ikn",Bg96gwp:"faaz57k",Bhrd7zp:"fl43uef"},semibold:{Bhrd7zp:"fl43uef"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f1whyuy6{color:var(--colorPaletteRedForeground3);}",".fycuoez{padding-left:4px;}",".f8wuabp{padding-right:4px;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}"]}),useLabelStyles_unstable=j=>{const _e=useStyles$t();return j.root.className=mergeClasses(labelClassNames.root,_e.root,j.disabled&&_e.disabled,_e[j.size],j.weight==="semibold"&&_e.semibold,j.root.className),j.required&&(j.required.className=mergeClasses(labelClassNames.required,_e.required,j.disabled&&_e.requiredDisabled,j.required.className)),j},Label$1=reactExports.forwardRef((j,_e)=>{const et=useLabel_unstable(j,_e);return useLabelStyles_unstable(et),useCustomStyleHook("useLabelStyles_unstable")(et),renderLabel_unstable(et)});Label$1.displayName="Label";const ComboboxContext=createContext({activeOption:void 0,appearance:"outline",focusVisible:!1,open:!1,registerOption(){return()=>{}},selectedOptions:[],selectOption(){},setActiveOption(){},setOpen(){},size:"medium"});ComboboxContext.Provider;const ListboxContext=createContext({activeOption:void 0,focusVisible:!1,multiselect:!1,registerOption(){return()=>{}},selectedOptions:[],selectOption(){},setActiveOption(){}});ListboxContext.Provider;function useComboboxContextValues(j){const{activeOption:_e,appearance:et,focusVisible:tt,open:rt,registerOption:nt,selectedOptions:ot,selectOption:it,setActiveOption:st,setOpen:lt,size:ut}=j;return{combobox:{activeOption:_e,appearance:et,focusVisible:tt,open:rt,registerOption:nt,selectedOptions:ot,selectOption:it,setActiveOption:st,setOpen:lt,size:ut}}}function useListboxContextValues(j){const _e=useHasParentContext(ComboboxContext),{activeOption:et,focusVisible:tt,multiselect:rt,registerOption:nt,selectedOptions:ot,selectOption:it,setActiveOption:st}=j,lt=useContextSelector(ComboboxContext,dt=>dt.registerOption);return{listbox:{activeOption:et,focusVisible:tt,multiselect:rt,registerOption:_e?lt:nt,selectedOptions:ot,selectOption:it,setActiveOption:st}}}function getDropdownActionFromKey(j,_e={}){const{open:et=!0,multiselect:tt=!1}=_e,rt=j.key,{altKey:nt,ctrlKey:ot,key:it,metaKey:st}=j;return it.length===1&&rt!==Space&&!nt&&!ot&&!st?"Type":et?rt===ArrowUp&&nt||rt===Enter||!tt&&rt===Space?"CloseSelect":tt&&rt===Space?"Select":rt===Escape?"Close":rt===ArrowDown?"Next":rt===ArrowUp?"Previous":rt===Home?"First":rt===End?"Last":rt===PageUp?"PageUp":rt===PageDown?"PageDown":rt===Tab$2?"Tab":"None":rt===ArrowDown||rt===ArrowUp||rt===Enter||rt===Space?"Open":"None"}function getIndexFromAction(j,_e,et){switch(j){case"Next":return Math.min(et,_e+1);case"Previous":return Math.max(0,_e-1);case"First":return 0;case"Last":return et;case"PageDown":return Math.min(et,_e+10);case"PageUp":return Math.max(0,_e-10);default:return _e}}const useOptionCollection=()=>{const j=reactExports.useRef([]),_e=reactExports.useMemo(()=>({getCount:()=>j.current.length,getOptionAtIndex:lt=>{var ut;return(ut=j.current[lt])===null||ut===void 0?void 0:ut.option},getIndexOfId:lt=>j.current.findIndex(ut=>ut.option.id===lt),getOptionById:lt=>{const ut=j.current.find(ct=>ct.option.id===lt);return ut==null?void 0:ut.option},getOptionsMatchingText:lt=>j.current.filter(ut=>lt(ut.option.text)).map(ut=>ut.option),getOptionsMatchingValue:lt=>j.current.filter(ut=>lt(ut.option.value)).map(ut=>ut.option)}),[]),et=reactExports.useCallback((tt,rt)=>{var nt;const ot=j.current.findIndex(it=>!it.element||!rt?!1:it.option.id===tt.id?!0:it.element.compareDocumentPosition(rt)&Node.DOCUMENT_POSITION_PRECEDING);if(((nt=j.current[ot])===null||nt===void 0?void 0:nt.option.id)!==tt.id){const it={element:rt,option:tt};ot===-1?j.current=[...j.current,it]:j.current.splice(ot,0,it)}return()=>{j.current=j.current.filter(it=>it.option.id!==tt.id)}},[]);return{..._e,options:j.current.map(tt=>tt.option),registerOption:et}};function useScrollOptionsIntoView(j){const{activeOption:_e}=j,et=reactExports.useRef(null);return reactExports.useEffect(()=>{if(et.current&&_e&&canUseDOM$3()){const tt=et.current.querySelector(`#${_e.id}`);if(!tt)return;const{offsetHeight:rt,offsetTop:nt}=tt,{offsetHeight:ot,scrollTop:it}=et.current,st=ntit+ot,ut=2;st?et.current.scrollTo(0,nt-ut):lt&&et.current.scrollTo(0,nt-ot+rt+ut)}},[_e]),et}const useSelection=j=>{const{defaultSelectedOptions:_e,multiselect:et,onOptionSelect:tt}=j,[rt,nt]=useControllableState({state:j.selectedOptions,defaultState:_e,initialState:[]}),ot=reactExports.useCallback((st,lt)=>{if(lt.disabled)return;let ut=[lt.value];if(et){const ct=rt.findIndex(dt=>dt===lt.value);ct>-1?ut=[...rt.slice(0,ct),...rt.slice(ct+1)]:ut=[...rt,lt.value]}nt(ut),tt==null||tt(st,{optionValue:lt.value,optionText:lt.text,selectedOptions:ut})},[tt,et,rt,nt]);return{clearSelection:st=>{nt([]),tt==null||tt(st,{optionValue:void 0,optionText:void 0,selectedOptions:[]})},selectOption:ot,selectedOptions:rt}},useListbox_unstable=(j,_e)=>{const{multiselect:et}=j,tt=useOptionCollection(),{getCount:rt,getOptionAtIndex:nt,getIndexOfId:ot}=tt,{clearSelection:it,selectedOptions:st,selectOption:lt}=useSelection(j),[ut,ct]=reactExports.useState(),[dt,ft]=reactExports.useState(!1),pt=wt=>{const Ct=getDropdownActionFromKey(wt,{open:!0}),It=rt()-1,Ot=ut?ot(ut.id):-1;let Nt=Ot;switch(Ct){case"Select":case"CloseSelect":ut&<(wt,ut);break;default:Nt=getIndexFromAction(Ct,Ot,It)}Nt!==Ot&&(wt.preventDefault(),ct(nt(Nt)),ft(!0))},gt=wt=>{ft(!1)},vt=useHasParentContext(ComboboxContext),bt=useContextSelector(ComboboxContext,wt=>wt.activeOption),_t=useContextSelector(ComboboxContext,wt=>wt.focusVisible),xt=useContextSelector(ComboboxContext,wt=>wt.selectedOptions),yt=useContextSelector(ComboboxContext,wt=>wt.selectOption),Et=useContextSelector(ComboboxContext,wt=>wt.setActiveOption),St=vt?{activeOption:bt,focusVisible:_t,selectedOptions:xt,selectOption:yt,setActiveOption:Et}:{activeOption:ut,focusVisible:dt,selectedOptions:st,selectOption:lt,setActiveOption:ct},$t={components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,role:et?"menu":"listbox","aria-activedescendant":vt||ut==null?void 0:ut.id,"aria-multiselectable":et,tabIndex:0,...j}),{elementType:"div"}),multiselect:et,clearSelection:it,...tt,...St},At=useScrollOptionsIntoView($t);return $t.root.ref=useMergedRefs$1($t.root.ref,At),$t.root.onKeyDown=useEventCallback$3(mergeCallbacks($t.root.onKeyDown,pt)),$t.root.onMouseOver=useEventCallback$3(mergeCallbacks($t.root.onMouseOver,gt)),$t},renderListbox_unstable=(j,_e)=>jsx$1(ListboxContext.Provider,{value:_e.listbox,children:jsx$1(j.root,{})}),listboxClassNames={root:"fui-Listbox"},useStyles$s=__styles({root:{De3pzq:"fxugw4r",B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Beiy3e4:"f1vx9l62",Bf4jedk:"f3hsy1e",Bmxbyg5:"f5zp4f",Bpd4iqm:"fpvhumw",oeaueh:"f1yog68k",Bw0xxkn:"f13sgyd8",z8tnut:"f1x4af0m",z189sj:["f7x41pl","fruq291"],Byoj8tv:"fd55psn",uwmqm3:["fruq291","f7x41pl"],Belr9w4:"fiut8dr"}},{d:[".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1ewtqcl{box-sizing:border-box;}",".f22iagw{display:flex;}",".f1vx9l62{flex-direction:column;}",".f3hsy1e{min-width:160px;}",".f5zp4f{overflow-y:auto;}",".fpvhumw{outline-width:1px;}",".f1yog68k{outline-style:solid;}",".f13sgyd8{outline-color:var(--colorTransparentStroke);}",".f1x4af0m{padding-top:var(--spacingHorizontalXS);}",".f7x41pl{padding-right:var(--spacingHorizontalXS);}",".fruq291{padding-left:var(--spacingHorizontalXS);}",".fd55psn{padding-bottom:var(--spacingHorizontalXS);}",".fiut8dr{row-gap:var(--spacingHorizontalXXS);}"]}),useListboxStyles_unstable=j=>{const _e=useStyles$s();return j.root.className=mergeClasses(listboxClassNames.root,_e.root,j.root.className),j},Listbox$1=reactExports.forwardRef((j,_e)=>{const et=useListbox_unstable(j,_e),tt=useListboxContextValues(et);return useListboxStyles_unstable(et),useCustomStyleHook("useListboxStyles_unstable")(et),renderListbox_unstable(et,tt)});Listbox$1.displayName="Listbox";function getTextString(j,_e){if(j!==void 0)return j;let et="",tt=!1;return reactExports.Children.forEach(_e,rt=>{typeof rt=="string"?et+=rt:tt=!0}),tt&&console.warn("Provide a `text` prop to Option components when they contain non-string children."),et}const useOption_unstable=(j,_e)=>{const{children:et,disabled:tt,text:rt,value:nt}=j,ot=reactExports.useRef(null),it=getTextString(rt,et),st=nt??it,lt=useId$1("fluent-option",j.id),ut=reactExports.useMemo(()=>({id:lt,disabled:tt,text:it,value:st}),[lt,tt,it,st]),ct=useContextSelector(ListboxContext,St=>St.focusVisible),dt=useContextSelector(ListboxContext,St=>St.multiselect),ft=useContextSelector(ListboxContext,St=>St.registerOption),pt=useContextSelector(ListboxContext,St=>{const $t=St.selectedOptions;return!!st&&!!$t.find(At=>At===st)}),gt=useContextSelector(ListboxContext,St=>St.selectOption),vt=useContextSelector(ListboxContext,St=>St.setActiveOption),bt=useContextSelector(ComboboxContext,St=>St.setOpen),_t=useContextSelector(ListboxContext,St=>{var $t,At;return(($t=St.activeOption)===null||$t===void 0?void 0:$t.id)!==void 0&&((At=St.activeOption)===null||At===void 0?void 0:At.id)===lt});let xt=reactExports.createElement(CheckmarkFilled,null);dt&&(xt=pt?reactExports.createElement(Checkmark12Filled,null):"");const yt=St=>{var $t;if(tt){St.preventDefault();return}vt(ut),dt||bt==null||bt(St,!1),gt(St,ut),($t=j.onClick)===null||$t===void 0||$t.call(j,St)};reactExports.useEffect(()=>{if(lt&&ot.current)return ft(ut,ot.current)},[lt,ut,ft]);const Et=dt?{role:"menuitemcheckbox","aria-checked":pt}:{role:"option","aria-selected":pt};return{components:{root:"div",checkIcon:"span"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,ot),"aria-disabled":tt?"true":void 0,id:lt,...Et,...j,onClick:yt}),{elementType:"div"}),checkIcon:optional(j.checkIcon,{renderByDefault:!0,defaultProps:{"aria-hidden":"true",children:xt},elementType:"span"}),active:_t,disabled:tt,focusVisible:ct,multiselect:dt,selected:pt}},renderOption_unstable=j=>jsxs(j.root,{children:[j.checkIcon&&jsx$1(j.checkIcon,{}),j.root.children]}),optionClassNames={root:"fui-Option",checkIcon:"fui-Option__checkIcon"},useStyles$r=__styles({root:{Bt984gj:"f122n59",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],sj55zd:"f19n0e5",i8kkvl:"f1ufnopg",Bceei9c:"f1k6fduh",mc9l5x:"f22iagw",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi",z8tnut:"fp2oml8",z189sj:["f1vdfbxk","f1f5gg8d"],Byoj8tv:"f1tdddsa",uwmqm3:["f1f5gg8d","f1vdfbxk"],qhf8xq:"f10pi13n",Jwef8y:"f1knas48",ecr2s2:"fb40n2d"},active:{Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9",B80jsxd:"f1nwj1ja",t2ki1e:"ffmd2fr",Bm2nyyq:"f8rth92",Barhvk9:["flthirb","ftkbnf5"],Bw17bha:"f1lh990p",vfts7:["ftkbnf5","flthirb"],xrcqlc:"fc9v8v1",Ihftqj:["f1mwfetb","f18mat8f"],Bcgy8vk:"f1cb6c3",Bhxzhr1:["f18mat8f","f1mwfetb"],B3778ie:["f1ibwz09","f1kp91vd"],d9w3h3:["f1kp91vd","f1ibwz09"],Bl18szs:["f1pix4dl","f13nd1z4"],B4j8arr:["f13nd1z4","f1pix4dl"],B0n5ga8:"f1qw5sz7",s924m2:["f19va7ni","f1a9v3mw"],B1q35kw:"fkkziue",Gp14am:["f1a9v3mw","f19va7ni"],bn5sak:"f1a97anr",By385i5:"f5226zp",Eqx8gd:["fa2bdqt","fei6g0k"],B1piin3:["fei6g0k","fa2bdqt"]},disabled:{sj55zd:"f1s2aq7o",Jwef8y:"f9ql6rf",ecr2s2:"fgj9um3",Bbusuzp:"f1dcs8yz"},selected:{},checkIcon:{Be2twd7:"fod5ikn",Frg6f3:["f18b9hdq","fn6qj8t"],t21cq0:["f1xk557c","f1h9en5y"],Bcdw1i0:"fd7fpy0",Bo70h7d:"fvc9v3g"},selectedCheck:{Bcdw1i0:"f1022m68"},multiselectCheck:{B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fq0vr37",h3c5rm:["f1byw159","f11cr0be"],B9xav0g:"f1c1zstj",zhjwy3:["f11cr0be","f1byw159"],Bbmb7ep:["f1g3puop","fi2rrw2"],Beyfa6y:["fi2rrw2","f1g3puop"],B7oj6ja:["f1rstyi9","f1s4nn1u"],Btl43ni:["f1s4nn1u","f1rstyi9"],B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Bt984gj:"f122n59",Brf1p80:"f4d9j23",Bkfmm31:"f1w9h62z",Be2twd7:"f1ugzwwg",Bqenvij:"fd461yt",a9b677:"fjw5fx7",Bcdw1i0:"f1022m68"},selectedMultiselectCheck:{De3pzq:"ftywsgz",sj55zd:"fqpbvvt",g2u3we:"f3xi7mh",h3c5rm:["ftovhe4","f1wczvin"],B9xav0g:"f68vbr6",zhjwy3:["f1wczvin","ftovhe4"]},checkDisabled:{sj55zd:"f1s2aq7o",Bbusuzp:"f1dcs8yz"}},{d:[".f122n59{align-items:center;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1ufnopg{column-gap:var(--spacingHorizontalXS);}",".f1k6fduh{cursor:pointer;}",".f22iagw{display:flex;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fp2oml8{padding-top:var(--spacingVerticalSNudge);}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".f1tdddsa{padding-bottom:var(--spacingVerticalSNudge);}",".f10pi13n{position:relative;}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".f1nwj1ja::after{pointer-events:none;}",".ffmd2fr::after{z-index:1;}",".f8rth92::after{border-top-style:solid;}",".flthirb::after{border-right-style:solid;}",".ftkbnf5::after{border-left-style:solid;}",".f1lh990p::after{border-bottom-style:solid;}",".fc9v8v1::after{border-top-width:2px;}",".f1mwfetb::after{border-right-width:2px;}",".f18mat8f::after{border-left-width:2px;}",".f1cb6c3::after{border-bottom-width:2px;}",".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}",".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1pix4dl::after{border-top-right-radius:var(--borderRadiusMedium);}",".f13nd1z4::after{border-top-left-radius:var(--borderRadiusMedium);}",".f1qw5sz7::after{border-top-color:var(--colorStrokeFocus2);}",".f19va7ni::after{border-right-color:var(--colorStrokeFocus2);}",".f1a9v3mw::after{border-left-color:var(--colorStrokeFocus2);}",".fkkziue::after{border-bottom-color:var(--colorStrokeFocus2);}",".f1a97anr::after{top:-2px;}",".f5226zp::after{bottom:-2px;}",".fa2bdqt::after{left:-2px;}",".fei6g0k::after{right:-2px;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".f18b9hdq{margin-left:calc(var(--spacingHorizontalXXS) * -1);}",".fn6qj8t{margin-right:calc(var(--spacingHorizontalXXS) * -1);}",".f1xk557c{margin-right:var(--spacingHorizontalXXS);}",".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}",".fd7fpy0{visibility:hidden;}",".fvc9v3g svg{display:block;}",".f1022m68{visibility:visible;}",".f192inf7{border-top-width:var(--strokeWidthThin);}",".f5tn483{border-right-width:var(--strokeWidthThin);}",".f1ojsxk5{border-left-width:var(--strokeWidthThin);}",".f1vxd6vx{border-bottom-width:var(--strokeWidthThin);}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fq0vr37{border-top-color:var(--colorNeutralStrokeAccessible);}",".f1byw159{border-right-color:var(--colorNeutralStrokeAccessible);}",".f11cr0be{border-left-color:var(--colorNeutralStrokeAccessible);}",".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}",".f1g3puop{border-bottom-right-radius:var(--borderRadiusSmall);}",".fi2rrw2{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1rstyi9{border-top-right-radius:var(--borderRadiusSmall);}",".f1s4nn1u{border-top-left-radius:var(--borderRadiusSmall);}",".f1ewtqcl{box-sizing:border-box;}",".f4d9j23{justify-content:center;}",".f1w9h62z{fill:currentColor;}",".f1ugzwwg{font-size:12px;}",".fd461yt{height:16px;}",".fjw5fx7{width:16px;}",".ftywsgz{background-color:var(--colorCompoundBrandBackground);}",".fqpbvvt{color:var(--colorNeutralForegroundInverted);}",".f3xi7mh{border-top-color:var(--colorCompoundBrandBackground);}",".ftovhe4{border-right-color:var(--colorCompoundBrandBackground);}",".f1wczvin{border-left-color:var(--colorCompoundBrandBackground);}",".f68vbr6{border-bottom-color:var(--colorCompoundBrandBackground);}"],h:[".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}",".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}"],a:[".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}",".fgj9um3:active{background-color:var(--colorTransparentBackground);}"],m:[["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),useOptionStyles_unstable=j=>{const{active:_e,disabled:et,focusVisible:tt,multiselect:rt,selected:nt}=j,ot=useStyles$r();return j.root.className=mergeClasses(optionClassNames.root,ot.root,_e&&tt&&ot.active,et&&ot.disabled,nt&&ot.selected,j.root.className),j.checkIcon&&(j.checkIcon.className=mergeClasses(optionClassNames.checkIcon,ot.checkIcon,rt&&ot.multiselectCheck,nt&&ot.selectedCheck,nt&&rt&&ot.selectedMultiselectCheck,et&&ot.checkDisabled,j.checkIcon.className)),j},Option$2=reactExports.forwardRef((j,_e)=>{const et=useOption_unstable(j,_e);return useOptionStyles_unstable(et),useCustomStyleHook("useOptionStyles_unstable")(et),renderOption_unstable(et)});Option$2.displayName="Option";const useComboboxBaseState=j=>{const{appearance:_e="outline",children:et,editable:tt=!1,inlinePopup:rt=!1,mountNode:nt=void 0,multiselect:ot,onOpenChange:it,size:st="medium"}=j,lt=useOptionCollection(),{getOptionAtIndex:ut,getOptionsMatchingValue:ct}=lt,[dt,ft]=reactExports.useState(),[pt,gt]=reactExports.useState(!1),[vt,bt]=reactExports.useState(!1),_t=reactExports.useRef(!1),xt=useSelection(j),{selectedOptions:yt}=xt,Et=useFirstMount(),[St,$t]=useControllableState({state:j.value,initialState:void 0}),At=reactExports.useMemo(()=>{if(St!==void 0)return St;if(Et&&j.defaultValue!==void 0)return j.defaultValue;const Ot=ct(Nt=>yt.includes(Nt)).map(Nt=>Nt.text);return ot?tt?"":Ot.join(", "):Ot[0]},[St,tt,ct,ot,j.defaultValue,yt]),[wt,Ct]=useControllableState({state:j.open,defaultState:j.defaultOpen,initialState:!1}),It=reactExports.useCallback((Ot,Nt)=>{it==null||it(Ot,{open:Nt}),Ct(Nt)},[it,Ct]);return reactExports.useEffect(()=>{if(wt&&!dt)if(!ot&&yt.length>0){const Ot=ct(Nt=>Nt===yt[0]).pop();Ot&&ft(Ot)}else ft(ut(0));else wt||ft(void 0)},[wt,et]),{...lt,...xt,activeOption:dt,appearance:_e,focusVisible:pt,hasFocus:vt,ignoreNextBlur:_t,inlinePopup:rt,mountNode:nt,open:wt,setActiveOption:ft,setFocusVisible:gt,setHasFocus:bt,setOpen:It,setValue:$t,size:st,value:At,multiselect:ot}};function useComboboxPositioning(j){const{positioning:_e}=j,tt={position:"below",align:"start",offset:{crossAxis:0,mainAxis:2},fallbackPositions:["above","after","after-top","before","before-top"],matchTargetSize:"width",...resolvePositioningShorthand(_e)},{targetRef:rt,containerRef:nt}=usePositioning(tt);return[nt,rt]}function useListboxSlot(j,_e,et){const{state:{multiselect:tt},triggerRef:rt,defaultProps:nt}=et,ot=useId$1("fluent-listbox",isResolvedShorthand(j)?j.id:void 0),it=optional(j,{renderByDefault:!0,elementType:Listbox$1,defaultProps:{id:ot,multiselect:tt,tabIndex:void 0,...nt}}),st=useEventCallback$3(mergeCallbacks(ct=>{ct.preventDefault()},it==null?void 0:it.onMouseDown)),lt=useEventCallback$3(mergeCallbacks(ct=>{var dt;ct.preventDefault(),(dt=rt.current)===null||dt===void 0||dt.focus()},it==null?void 0:it.onClick)),ut=useMergedRefs$1(it==null?void 0:it.ref,_e);return it&&(it.ref=ut,it.onMouseDown=st,it.onClick=lt),it}function useTriggerSlot(j,_e,et){const{state:{activeOption:tt,getCount:rt,getIndexOfId:nt,getOptionAtIndex:ot,open:it,selectOption:st,setActiveOption:lt,setFocusVisible:ut,setOpen:ct,multiselect:dt},defaultProps:ft,elementType:pt}=et,gt=always(j,{defaultProps:{type:"text","aria-expanded":it,"aria-activedescendant":it?tt==null?void 0:tt.id:void 0,role:"combobox",...typeof ft=="object"&&ft},elementType:pt}),vt=reactExports.useRef(null);return gt.ref=useMergedRefs$1(vt,gt.ref,_e),gt.onBlur=mergeCallbacks(bt=>{ct(bt,!1)},gt.onBlur),gt.onClick=mergeCallbacks(bt=>{ct(bt,!it)},gt.onClick),gt.onKeyDown=mergeCallbacks(bt=>{const _t=getDropdownActionFromKey(bt,{open:it,multiselect:dt}),xt=rt()-1,yt=tt?nt(tt.id):-1;let Et=yt;switch(_t){case"Open":bt.preventDefault(),ut(!0),ct(bt,!0);break;case"Close":bt.stopPropagation(),bt.preventDefault(),ct(bt,!1);break;case"CloseSelect":!dt&&!(tt!=null&&tt.disabled)&&ct(bt,!1);case"Select":tt&&st(bt,tt),bt.preventDefault();break;case"Tab":!dt&&tt&&st(bt,tt);break;default:Et=getIndexFromAction(_t,yt,xt)}Et!==yt&&(bt.preventDefault(),lt(ot(Et)),ut(!0))},gt.onKeyDown),gt.onMouseOver=mergeCallbacks(bt=>{ut(!1)},gt.onMouseOver),gt}function useInputTriggerSlot(j,_e,et){const{state:{open:tt,value:rt,activeOption:nt,selectOption:ot,setValue:it,setActiveOption:st,setFocusVisible:lt,multiselect:ut,selectedOptions:ct,clearSelection:dt,getOptionsMatchingText:ft,getIndexOfId:pt,setOpen:gt},freeform:vt,defaultProps:bt}=et,_t=It=>{!tt&&!vt&&(rt&&nt&&rt.trim().toLowerCase()===(nt==null?void 0:nt.text.toLowerCase())&&ot(It,nt),it(void 0))},xt=It=>{const Ot=It==null?void 0:It.trim().toLowerCase();if(!Ot||Ot.length===0)return;const Pt=ft(Rt=>Rt.toLowerCase().indexOf(Ot)===0);if(Pt.length>1&&nt){const Rt=pt(nt.id),Lt=Pt.find(jt=>pt(jt.id)>=Rt);return Lt??Pt[0]}var Mt;return(Mt=Pt[0])!==null&&Mt!==void 0?Mt:void 0},yt=It=>{const Ot=It.target.value;it(Ot);const Nt=xt(Ot);st(Nt),lt(!0),!ut&&ct.length===1&&(Ot.length<1||!Nt)&&dt(It)},Et=useTriggerSlot(j,_e,{state:et.state,defaultProps:bt,elementType:"input"});Et.onChange=mergeCallbacks(Et.onChange,yt),Et.onBlur=mergeCallbacks(Et.onBlur,_t);const[St,$t]=reactExports.useState(!1),At=reactExports.useRef(!1),wt=Et.onKeyDown,Ct=useEventCallback$3(It=>{!tt&&getDropdownActionFromKey(It)==="Type"&>(It,!0),It.key===ArrowLeft||It.key===ArrowRight?$t(!0):$t(!1);const Ot=getDropdownActionFromKey(It,{open:tt,multiselect:ut});if(Ot==="Type"?At.current=!0:(Ot==="Open"&&It.key!==" "||Ot==="Next"||Ot==="Previous"||Ot==="First"||Ot==="Last"||Ot==="PageUp"||Ot==="PageDown")&&(At.current=!1),vt&&(At.current||!tt)&&It.key===" "){var Nt;j==null||(Nt=j.onKeyDown)===null||Nt===void 0||Nt.call(j,It);return}wt==null||wt(It)});return Et.onKeyDown=Ct,St&&(Et["aria-activedescendant"]=void 0),Et}const useCombobox_unstable=(j,_e)=>{j=useFieldControlProps_unstable(j,{supportsLabelFor:!0,supportsRequired:!0,supportsSize:!0});const et=useComboboxBaseState({...j,editable:!0}),{open:tt,selectOption:rt,setOpen:nt,setValue:ot,value:it}=et,[st,lt]=useComboboxPositioning(j),{disabled:ut,freeform:ct,inlinePopup:dt}=j,ft=useId$1("combobox-"),{primary:pt,root:gt}=getPartitionedNativeProps({props:j,primarySlotTagName:"input",excludedPropNames:["children","size"]});et.selectOption=(wt,Ct)=>{ot(void 0),rt(wt,Ct)},et.setOpen=(wt,Ct)=>{ut||(!Ct&&!ct&&ot(void 0),nt(wt,Ct))};const vt=reactExports.useRef(null),bt=useListboxSlot(j.listbox,st,{state:et,triggerRef:vt,defaultProps:{children:j.children}});var _t;const xt=useInputTriggerSlot((_t=j.input)!==null&&_t!==void 0?_t:{},useMergedRefs$1(vt,_e),{state:et,freeform:ct,defaultProps:{type:"text",value:it??"",...pt}}),yt=always(j.root,{defaultProps:{"aria-owns":!dt&&tt?bt==null?void 0:bt.id:void 0,...gt},elementType:"div"});yt.ref=useMergedRefs$1(yt.ref,lt);const Et={components:{root:"div",input:"input",expandIcon:"span",listbox:Listbox$1},root:yt,input:xt,listbox:tt?bt:void 0,expandIcon:optional(j.expandIcon,{renderByDefault:!0,defaultProps:{"aria-expanded":tt,children:reactExports.createElement(ChevronDownRegular,null),role:"button"},elementType:"span"}),...et},{onMouseDown:St}=Et.expandIcon||{},$t=useEventCallback$3(mergeCallbacks(St,wt=>{var Ct;wt.preventDefault(),Et.setOpen(wt,!Et.open),(Ct=vt.current)===null||Ct===void 0||Ct.focus()}));if(Et.expandIcon){Et.expandIcon.onMouseDown=$t;const wt=Et.expandIcon["aria-label"]||Et.expandIcon["aria-labelledby"],Ct="Open";if(!wt)if(j["aria-labelledby"]){var At;const It=(At=Et.expandIcon.id)!==null&&At!==void 0?At:`${ft}-chevron`,Ot=`${It} ${Et.input["aria-labelledby"]}`;Et.expandIcon["aria-label"]=Ct,Et.expandIcon.id=It,Et.expandIcon["aria-labelledby"]=Ot}else j["aria-label"]?Et.expandIcon["aria-label"]=`${Ct} ${j["aria-label"]}`:Et.expandIcon["aria-label"]=Ct}return Et},renderCombobox_unstable=(j,_e)=>jsx$1(j.root,{children:jsxs(ComboboxContext.Provider,{value:_e.combobox,children:[jsx$1(j.input,{}),j.expandIcon&&jsx$1(j.expandIcon,{}),j.listbox&&(j.inlinePopup?jsx$1(j.listbox,{}):jsx$1(Portal$1,{mountNode:j.mountNode,children:jsx$1(j.listbox,{})}))]})}),comboboxClassNames={root:"fui-Combobox",input:"fui-Combobox__input",expandIcon:"fui-Combobox__expandIcon",listbox:"fui-Combobox__listbox"},useStyles$q=__styles({root:{Bt984gj:"f122n59",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B7ck84d:"f1ewtqcl",i8kkvl:"f14mj54c",mc9l5x:"fwk3njj",Budl1dq:"fz17x9o",Brf1p80:"f1869bpl",Bf4jedk:"f1exfvgq",qhf8xq:"f10pi13n",Bbr2w1p:"f14a1fxs",Bduesf4:"f3e99gv",Bpq79vn:"fhljsf7",li1rpt:"f1gw3sf2",Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9",Eqx8gd:["f1a7op3","f1cjjd47"],By385i5:"f1gboi2j",B1piin3:["f1cjjd47","f1a7op3"],Dlnsje:"f145g4dw",d9w3h3:["f1kp91vd","f1ibwz09"],B3778ie:["f1ibwz09","f1kp91vd"],Bcgy8vk:"f14pi962",Bw17bha:"f1lh990p",B1q35kw:"f1jc6hxc",Gjdm7m:"f13evtba",b1kco5:"f1yk9hq",Ba2ppi3:"fhwpy7i",F2fol1:"f14ee0xe",lck23g:"f1xhbsuh",df92cz:"fv8e3ye",I188md:"ftb5wc6",umuwi5:"fjw5xc1",Blcqepd:"f1xdyd5c",nplu4u:"fatpbeo",Bioka5o:"fb7uyps",H713fs:"f1cmft4k",B9ooomg:"f1x58t8o",Bercvud:"f1ibeo51"},listbox:{E5pizo:"f1hg901r",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],Bxyxcbc:"fmmk62d",B7ck84d:"f1ewtqcl"},listboxCollapsed:{mc9l5x:"fjseox"},small:{z189sj:["fdw0yi8","fk8j09s"]},medium:{z189sj:["f11gcy0p","f1ng84yb"]},large:{i8kkvl:"f1rjii52",z189sj:["fw5db7e","f1uw59to"]},outline:{De3pzq:"fxugw4r",B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fj3muxo",h3c5rm:["f1akhkt","f1lxtadh"],B9xav0g:"f1c1zstj",zhjwy3:["f1lxtadh","f1akhkt"]},outlineInteractive:{Bgoe8wy:"fvcxoqz",Bwzppfd:["f1ub3y4t","f1m52nbi"],oetu4i:"flmw63s",gg5e9n:["f1m52nbi","f1ub3y4t"],B6oc9vd:"fvs00aa",ak43y8:["f1assf6x","f4ruux4"],wmxk5l:"fqhmt4z",B50zh58:["f4ruux4","f1assf6x"]},underline:{De3pzq:"f1c21dwh",Bn0qgzm:"f1vxd6vx",oivjwe:"fg706s2",B9xav0g:"f1c1zstj",Bbmb7ep:["f1krrbdw","f1deotkl"],Beyfa6y:["f1deotkl","f1krrbdw"],B7oj6ja:["f10ostut","f1ozlkrg"],Btl43ni:["f1ozlkrg","f10ostut"]},"filled-lighter":{De3pzq:"fxugw4r",B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},"filled-darker":{De3pzq:"f16xq7d1",B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},invalid:{tvckwq:"fs4k3qj",gk2u95:["fcee079","fmyw78r"],hhx65j:"f1fgmyf4",Bxowmz0:["fmyw78r","fcee079"]},invalidUnderline:{hhx65j:"f1fgmyf4"},disabled:{Bceei9c:"fdrzuqr",De3pzq:"f1c21dwh",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"]}},{d:[".f122n59{align-items:center;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f1ewtqcl{box-sizing:border-box;}",".f14mj54c{column-gap:var(--spacingHorizontalXXS);}",".fwk3njj{display:inline-grid;}",".fz17x9o{grid-template-columns:1fr auto;}",".f1869bpl{justify-content:space-between;}",".f1exfvgq{min-width:250px;}",".f10pi13n{position:relative;}",".f1gw3sf2::after{box-sizing:border-box;}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".f1a7op3::after{left:-1px;}",".f1cjjd47::after{right:-1px;}",".f1gboi2j::after{bottom:-1px;}",".f145g4dw::after{height:max(2px, var(--borderRadiusMedium));}",".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}",".f14pi962::after{border-bottom-width:var(--strokeWidthThick);}",".f1lh990p::after{border-bottom-style:solid;}",".f1jc6hxc::after{border-bottom-color:var(--colorCompoundBrandStroke);}",".f13evtba::after{clip-path:inset(calc(100% - 2px) 0 0 0);}",".f1yk9hq::after{transform:scaleX(0);}",".fhwpy7i::after{transition-property:transform;}",".f14ee0xe::after{transition-duration:var(--durationUltraFast);}",".f1xhbsuh::after{transition-delay:var(--curveAccelerateMid);}",".f1hg901r{box-shadow:var(--shadow16);}",".fmmk62d{max-height:80vh;}",".fjseox{display:none;}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",".fw5db7e{padding-right:var(--spacingHorizontalM);}",".f1uw59to{padding-left:var(--spacingHorizontalM);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f192inf7{border-top-width:var(--strokeWidthThin);}",".f5tn483{border-right-width:var(--strokeWidthThin);}",".f1ojsxk5{border-left-width:var(--strokeWidthThin);}",".f1vxd6vx{border-bottom-width:var(--strokeWidthThin);}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fj3muxo{border-top-color:var(--colorNeutralStroke1);}",".f1akhkt{border-right-color:var(--colorNeutralStroke1);}",".f1lxtadh{border-left-color:var(--colorNeutralStroke1);}",".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1krrbdw{border-bottom-right-radius:0;}",".f1deotkl{border-bottom-left-radius:0;}",".f10ostut{border-top-right-radius:0;}",".f1ozlkrg{border-top-left-radius:0;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".f16xq7d1{background-color:var(--colorNeutralBackground3);}",".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}",".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}",".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}",".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}",".fdrzuqr{cursor:not-allowed;}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}"],w:[".f14a1fxs:focus-within{outline-width:2px;}",".f3e99gv:focus-within{outline-style:solid;}",".fhljsf7:focus-within{outline-color:transparent;}",".fjw5xc1:focus-within::after{transform:scaleX(1);}",".f1xdyd5c:focus-within::after{transition-property:transform;}",".fatpbeo:focus-within::after{transition-duration:var(--durationNormal);}",".fb7uyps:focus-within::after{transition-delay:var(--curveDecelerateMid);}",".f1ibeo51:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}"],m:[["@media screen and (prefers-reduced-motion: reduce){.fv8e3ye::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.ftb5wc6::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1cmft4k:focus-within::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1x58t8o:focus-within::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}]],h:[".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}",".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}",".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}",".flmw63s:hover{border-bottom-color:var(--colorNeutralStrokeAccessible);}"],a:[".fvs00aa:active{border-top-color:var(--colorNeutralStroke1Pressed);}",".f1assf6x:active{border-right-color:var(--colorNeutralStroke1Pressed);}",".f4ruux4:active{border-left-color:var(--colorNeutralStroke1Pressed);}",".fqhmt4z:active{border-bottom-color:var(--colorNeutralStrokeAccessible);}"]}),useInputStyles$1=__styles({input:{De3pzq:"f1c21dwh",B4j52fo:"fre7gi1",Bekrc4i:["f1358rze","f1rvrf73"],Bn0qgzm:"fqdk4by",ibv6hh:["f1rvrf73","f1358rze"],sj55zd:"f19n0e5",Bahqtrf:"fk6fouc",Brovlpu:"ftqa4ok",yvdlaj:"fwyc1cq",B3o7kgh:"f13ta7ih"},small:{Bqenvij:"f50nw0v",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1xile11","fqznh8f"]},medium:{Bqenvij:"f1tvdnth",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1e60jzv","f135dnwl"]},large:{Bqenvij:"f1ihhdec",Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["fnphzt9","flt1dlf"]},disabled:{sj55zd:"f1s2aq7o",De3pzq:"f1c21dwh",Bceei9c:"fdrzuqr",yvdlaj:"fahhnxm"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",".fre7gi1{border-top-width:0;}",".f1358rze{border-right-width:0;}",".f1rvrf73{border-left-width:0;}",".fqdk4by{border-bottom-width:0;}",".f19n0e5{color:var(--colorNeutralForeground1);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fwyc1cq::-webkit-input-placeholder{color:var(--colorNeutralForeground4);}",".fwyc1cq::-moz-placeholder{color:var(--colorNeutralForeground4);}",".f13ta7ih::-webkit-input-placeholder{opacity:1;}",".f13ta7ih::-moz-placeholder{opacity:1;}",".f50nw0v{height:22px;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1qch9an{padding-bottom:0;}",".f1xile11{padding-left:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".fqznh8f{padding-right:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".f1tvdnth{height:30px;}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1e60jzv{padding-left:calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS));}",".f135dnwl{padding-right:calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS));}",".f1ihhdec{height:38px;}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fnphzt9{padding-left:calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}",".flt1dlf{padding-right:calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}",".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}"],f:[".ftqa4ok:focus{outline-style:none;}"]}),useIconStyles$1=__styles({icon:{B7ck84d:"f1ewtqcl",sj55zd:"fxkbij4",Bceei9c:"f1k6fduh",mc9l5x:"ftgm304",Be2twd7:"f1pp30po",Bo70h7d:"fvc9v3g"},small:{Be2twd7:"f4ybsrx",Frg6f3:["f1h9en5y","f1xk557c"]},medium:{Be2twd7:"fe5j1ua",Frg6f3:["f1h9en5y","f1xk557c"]},large:{Be2twd7:"f1rt2boy",Frg6f3:["f1t5qyk5","f1ikr372"]},disabled:{sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr"}},{d:[".f1ewtqcl{box-sizing:border-box;}",".fxkbij4{color:var(--colorNeutralStrokeAccessible);}",".f1k6fduh{cursor:pointer;}",".ftgm304{display:block;}",".f1pp30po{font-size:var(--fontSizeBase500);}",".fvc9v3g svg{display:block;}",".f4ybsrx{font-size:16px;}",".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}",".f1xk557c{margin-right:var(--spacingHorizontalXXS);}",".fe5j1ua{font-size:20px;}",".f1rt2boy{font-size:24px;}",".f1t5qyk5{margin-left:var(--spacingHorizontalSNudge);}",".f1ikr372{margin-right:var(--spacingHorizontalSNudge);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}"]}),useComboboxStyles_unstable=j=>{const{appearance:_e,open:et,size:tt}=j,rt=`${j.input["aria-invalid"]}`=="true",nt=j.input.disabled,ot=useStyles$q(),it=useIconStyles$1(),st=useInputStyles$1();return j.root.className=mergeClasses(comboboxClassNames.root,ot.root,ot[_e],ot[tt],!nt&&_e==="outline"&&ot.outlineInteractive,rt&&_e!=="underline"&&ot.invalid,rt&&_e==="underline"&&ot.invalidUnderline,nt&&ot.disabled,j.root.className),j.input.className=mergeClasses(comboboxClassNames.input,st.input,st[tt],nt&&st.disabled,j.input.className),j.listbox&&(j.listbox.className=mergeClasses(comboboxClassNames.listbox,ot.listbox,!et&&ot.listboxCollapsed,j.listbox.className)),j.expandIcon&&(j.expandIcon.className=mergeClasses(comboboxClassNames.expandIcon,it.icon,it[tt],nt&&it.disabled,j.expandIcon.className)),j},Combobox=reactExports.forwardRef((j,_e)=>{const et=useCombobox_unstable(j,_e),tt=useComboboxContextValues(et);return useComboboxStyles_unstable(et),useCustomStyleHook("useComboboxStyles_unstable")(et),renderCombobox_unstable(et,tt)});Combobox.displayName="Combobox";const useOptionGroup_unstable=(j,_e)=>{const et=useId$1("group-label"),{label:tt}=j;return{components:{root:"div",label:"span"},root:always(getIntrinsicElementProps("div",{ref:_e,role:"group","aria-labelledby":tt?et:void 0,...j}),{elementType:"div"}),label:optional(tt,{defaultProps:{id:et,role:"presentation"},elementType:"span"})}},renderOptionGroup_unstable=j=>jsxs(j.root,{children:[j.label&&jsx$1(j.label,{children:j.label.children}),j.root.children]}),optionGroupClassNames={root:"fui-OptionGroup",label:"fui-OptionGroup__label"},useStyles$p=__styles({root:{mc9l5x:"f22iagw",Beiy3e4:"f1vx9l62",Belr9w4:"fiut8dr",B8lkq7l:"f1xxzjds",Gwp8xu:"fu19d3i",H93o2g:"flylvvz",eii1in:"f1ug5m11",om0q45:"f5642y",Hl9o3s:"ffdf81h",Bi9x0x4:"flgyru6",B0i58d9:["f1fjgumo","f1sgo0dv"],sl1c2c:"fwsdxdw",z4hxbw:["f1sgo0dv","f1fjgumo"]},label:{Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],sj55zd:"f11d4kpn",mc9l5x:"ftgm304",Be2twd7:"fy9rknc",Bhrd7zp:"fl43uef",Bg96gwp:"fwrc4pm",z8tnut:"f17mpqex",z189sj:["fdw0yi8","fk8j09s"],Byoj8tv:"fdvome7",uwmqm3:["fk8j09s","fdw0yi8"]}},{d:[".f22iagw{display:flex;}",".f1vx9l62{flex-direction:column;}",".fiut8dr{row-gap:var(--spacingHorizontalXXS);}",'.f1xxzjds:not(:last-child)::after{content:"";}',".fu19d3i:not(:last-child)::after{border-bottom-width:var(--strokeWidthThin);}",".flylvvz:not(:last-child)::after{border-bottom-style:solid;}",".f1ug5m11:not(:last-child)::after{border-bottom-color:var(--colorNeutralStroke2);}",".f5642y:not(:last-child)::after{display:block;}",".ffdf81h:not(:last-child)::after{padding-bottom:var(--spacingHorizontalXS);}",".flgyru6:not(:last-child)::after{margin-top:0;}",".f1fjgumo:not(:last-child)::after{margin-right:calc(var(--spacingHorizontalXS) * -1);}",".f1sgo0dv:not(:last-child)::after{margin-left:calc(var(--spacingHorizontalXS) * -1);}",".fwsdxdw:not(:last-child)::after{margin-bottom:var(--spacingVerticalXS);}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f11d4kpn{color:var(--colorNeutralForeground3);}",".ftgm304{display:block;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f17mpqex{padding-top:var(--spacingHorizontalS);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".fdvome7{padding-bottom:var(--spacingHorizontalS);}"]}),useOptionGroupStyles_unstable=j=>{const _e=useStyles$p();return j.root.className=mergeClasses(optionGroupClassNames.root,_e.root,j.root.className),j.label&&(j.label.className=mergeClasses(optionGroupClassNames.label,_e.label,j.label.className)),j},OptionGroup=reactExports.forwardRef((j,_e)=>{const et=useOptionGroup_unstable(j,_e);return useOptionGroupStyles_unstable(et),useCustomStyleHook("useOptionGroupStyles_unstable")(et),renderOptionGroup_unstable(et)});OptionGroup.displayName="OptionGroup";const renderDivider_unstable=j=>jsx$1(j.root,{children:j.root.children!==void 0&&jsx$1(j.wrapper,{children:j.root.children})}),useDivider_unstable=(j,_e)=>{const{alignContent:et="center",appearance:tt="default",inset:rt=!1,vertical:nt=!1,wrapper:ot}=j,it=useId$1("divider-");return{alignContent:et,appearance:tt,inset:rt,vertical:nt,components:{root:"div",wrapper:"div"},root:always(getIntrinsicElementProps("div",{role:"separator","aria-orientation":nt?"vertical":"horizontal","aria-labelledby":j.children?it:void 0,...j,ref:_e}),{elementType:"div"}),wrapper:always(ot,{defaultProps:{id:it,children:j.children},elementType:"div"})}},dividerClassNames={root:"fui-Divider",wrapper:"fui-Divider__wrapper"},useBaseStyles=__styles({base:{Bt984gj:"f122n59",B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Beiy3e4:"f1063pyq",Bh6795r:"fqerorx",qhf8xq:"f10pi13n",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm",fsow6f:"f17mccla",Bcvre1j:"fyl8oag",Br0sdwz:"f16vkdww",Bn78ew0:"fhsnbul",li1rpt:"f1gw3sf2",ap17g6:"f1ly5f7u",B771hl4:"f1s3tz6t"},childless:{susq4k:"f1kyqvp9",Bicfajf:["fzynn9s","f1z0ukd1"],jwcpgy:["fekrn8e","ftdg338"],B4rk6o:"fesgyo"},start:{Bsft5z2:"f13zj6fq"},center:{Ftih45:"f1wl9k8s",Bsft5z2:"f13zj6fq"},end:{Ftih45:"f1wl9k8s"},brand:{sj55zd:"f16muhyy",Bq4z7u6:"fcbuu2a",Bk5zm6e:["f1wdw2dr","f1ttio3w"],Bqjgrrk:"f1582fpk",Bm6vgfq:["f1ttio3w","f1wdw2dr"],B0n5ga8:"f1ahrvm8",s924m2:["f1cd3wbc","f17hbk9y"],B1q35kw:"fvrapl0",Gp14am:["f17hbk9y","f1cd3wbc"]},default:{sj55zd:"fkfq4zb",Bq4z7u6:"f1vccso1",Bk5zm6e:["f1geml7w","fjml6kk"],Bqjgrrk:"f1r7kh1m",Bm6vgfq:["fjml6kk","f1geml7w"],B0n5ga8:"f16j7guv",s924m2:["fx01ahm","fj1a37q"],B1q35kw:"fl8d8yv",Gp14am:["fj1a37q","fx01ahm"]},subtle:{sj55zd:"fkfq4zb",Bq4z7u6:"f5g06un",Bk5zm6e:["f13sxdku","f1n015lb"],Bqjgrrk:"f1x6bl8t",Bm6vgfq:["f1n015lb","f13sxdku"],B0n5ga8:"fvod1wy",s924m2:["fwslg65","flk0e17"],B1q35kw:"f103fvts",Gp14am:["flk0e17","fwslg65"]},strong:{sj55zd:"fkfq4zb",Bq4z7u6:"f10tv6oz",Bk5zm6e:["f16xp3sf","f1seuxxq"],Bqjgrrk:"fwrmqbx",Bm6vgfq:["f1seuxxq","f16xp3sf"],B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"]}},{d:[".f122n59{align-items:center;}",".f1ewtqcl{box-sizing:border-box;}",".f22iagw{display:flex;}",".f1063pyq{flex-direction:row;}",".fqerorx{flex-grow:1;}",".f10pi13n{position:relative;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f17mccla{text-align:center;}",".fyl8oag::before{box-sizing:border-box;}",".f16vkdww::before{display:flex;}",".fhsnbul::before{flex-grow:1;}",".f1gw3sf2::after{box-sizing:border-box;}",".f1ly5f7u::after{display:flex;}",".f1s3tz6t::after{flex-grow:1;}",".f1kyqvp9::before{margin-bottom:0;}",".fzynn9s::before{margin-right:0;}",".f1z0ukd1::before{margin-left:0;}",".fekrn8e::after{margin-left:0;}",".ftdg338::after{margin-right:0;}",".fesgyo::after{margin-top:0;}",'.f13zj6fq::after{content:"";}','.f1wl9k8s::before{content:"";}',".f16muhyy{color:var(--colorBrandForeground1);}",".fcbuu2a::before{border-top-color:var(--colorBrandStroke1);}",".f1wdw2dr::before{border-right-color:var(--colorBrandStroke1);}",".f1ttio3w::before{border-left-color:var(--colorBrandStroke1);}",".f1582fpk::before{border-bottom-color:var(--colorBrandStroke1);}",".f1ahrvm8::after{border-top-color:var(--colorBrandStroke1);}",".f1cd3wbc::after{border-right-color:var(--colorBrandStroke1);}",".f17hbk9y::after{border-left-color:var(--colorBrandStroke1);}",".fvrapl0::after{border-bottom-color:var(--colorBrandStroke1);}",".fkfq4zb{color:var(--colorNeutralForeground2);}",".f1vccso1::before{border-top-color:var(--colorNeutralStroke2);}",".f1geml7w::before{border-right-color:var(--colorNeutralStroke2);}",".fjml6kk::before{border-left-color:var(--colorNeutralStroke2);}",".f1r7kh1m::before{border-bottom-color:var(--colorNeutralStroke2);}",".f16j7guv::after{border-top-color:var(--colorNeutralStroke2);}",".fx01ahm::after{border-right-color:var(--colorNeutralStroke2);}",".fj1a37q::after{border-left-color:var(--colorNeutralStroke2);}",".fl8d8yv::after{border-bottom-color:var(--colorNeutralStroke2);}",".f5g06un::before{border-top-color:var(--colorNeutralStroke3);}",".f13sxdku::before{border-right-color:var(--colorNeutralStroke3);}",".f1n015lb::before{border-left-color:var(--colorNeutralStroke3);}",".f1x6bl8t::before{border-bottom-color:var(--colorNeutralStroke3);}",".fvod1wy::after{border-top-color:var(--colorNeutralStroke3);}",".fwslg65::after{border-right-color:var(--colorNeutralStroke3);}",".flk0e17::after{border-left-color:var(--colorNeutralStroke3);}",".f103fvts::after{border-bottom-color:var(--colorNeutralStroke3);}",".f10tv6oz::before{border-top-color:var(--colorNeutralStroke1);}",".f16xp3sf::before{border-right-color:var(--colorNeutralStroke1);}",".f1seuxxq::before{border-left-color:var(--colorNeutralStroke1);}",".fwrmqbx::before{border-bottom-color:var(--colorNeutralStroke1);}",".ft83z1f::after{border-top-color:var(--colorNeutralStroke1);}",".f1g4150c::after{border-right-color:var(--colorNeutralStroke1);}",".f192dr6e::after{border-left-color:var(--colorNeutralStroke1);}",".f1qnawh6::after{border-bottom-color:var(--colorNeutralStroke1);}"]}),useHorizontalStyles=__styles({base:{a9b677:"fly5x3f",Bdkvgpv:"f163fonl",B0qfbqy:"f51yk4v",pbipgd:"f13rof3u",Bm2nyyq:"f8rth92",xrcqlc:"f6czdpx",i5u598:"f1iyka9k"},inset:{uwmqm3:["fjlbh76","f11qrl6u"],z189sj:["f11qrl6u","fjlbh76"]},start:{Ftih45:"f1wl9k8s",Bicfajf:["f1ojjlep","fk1kexq"],Bxwl2t9:"f1he2m4d",jwcpgy:["f12w1bnb","f1558wlj"]},center:{Bicfajf:["f1ojjlep","fk1kexq"],jwcpgy:["f12w1bnb","f1558wlj"]},end:{Bicfajf:["f1ojjlep","fk1kexq"],Bsft5z2:"f13zj6fq",jwcpgy:["f12w1bnb","f1558wlj"],Iy66sp:"f1ayce8x"}},{d:[".fly5x3f{width:100%;}",".f163fonl::before{border-top-style:solid;}",".f51yk4v::before{border-top-width:var(--strokeWidthThin);}",".f13rof3u::before{min-width:8px;}",".f8rth92::after{border-top-style:solid;}",".f6czdpx::after{border-top-width:var(--strokeWidthThin);}",".f1iyka9k::after{min-width:8px;}",".fjlbh76{padding-left:12px;}",".f11qrl6u{padding-right:12px;}",'.f1wl9k8s::before{content:"";}',".f1ojjlep::before{margin-right:12px;}",".fk1kexq::before{margin-left:12px;}",".f1he2m4d::before{max-width:8px;}",".f12w1bnb::after{margin-left:12px;}",".f1558wlj::after{margin-right:12px;}",'.f13zj6fq::after{content:"";}',".f1ayce8x::after{max-width:8px;}"]}),useVerticalStyles=__styles({base:{Beiy3e4:"f1vx9l62",sshi5w:"f16gbxbe",m598lv:["f1yq6w5o","f1jpmc5p"],B4f6apu:["f9sc749","f1x8pvcy"],zkzzav:"fhkwbjy",Barhvk9:["flthirb","ftkbnf5"],Ihftqj:["f13hvwk3","f1en4csx"],Bde111x:"f19onpk6"},inset:{B6of3ja:"f1xdg43u",jrapky:"f1jlhsmd"},withChildren:{sshi5w:"f1tjaq3g"},start:{Ftih45:"f1wl9k8s",susq4k:"fg2pwug",Bbdr6tz:"fkjtzyi",B4rk6o:"f8vk40g"},center:{susq4k:"fg2pwug",B4rk6o:"f8vk40g"},end:{susq4k:"fg2pwug",Bsft5z2:"f13zj6fq",B4rk6o:"f8vk40g",gn64ia:"fqg5mu5"}},{d:[".f1vx9l62{flex-direction:column;}",".f16gbxbe{min-height:20px;}",".f1yq6w5o::before{border-right-style:solid;}",".f1jpmc5p::before{border-left-style:solid;}",".f9sc749::before{border-right-width:var(--strokeWidthThin);}",".f1x8pvcy::before{border-left-width:var(--strokeWidthThin);}",".fhkwbjy::before{min-height:8px;}",".flthirb::after{border-right-style:solid;}",".ftkbnf5::after{border-left-style:solid;}",".f13hvwk3::after{border-right-width:var(--strokeWidthThin);}",".f1en4csx::after{border-left-width:var(--strokeWidthThin);}",".f19onpk6::after{min-height:8px;}",".f1xdg43u{margin-top:12px;}",".f1jlhsmd{margin-bottom:12px;}",".f1tjaq3g{min-height:84px;}",'.f1wl9k8s::before{content:"";}',".fg2pwug::before{margin-bottom:12px;}",".fkjtzyi::before{max-height:8px;}",".f8vk40g::after{margin-top:12px;}",'.f13zj6fq::after{content:"";}',".fqg5mu5::after{max-height:8px;}"]}),useDividerStyles_unstable=j=>{const _e=useBaseStyles(),et=useHorizontalStyles(),tt=useVerticalStyles(),{alignContent:rt,appearance:nt,inset:ot,vertical:it}=j;return j.root.className=mergeClasses(dividerClassNames.root,_e.base,_e[rt],nt&&_e[nt],!it&&et.base,!it&&ot&&et.inset,!it&&et[rt],it&&tt.base,it&&ot&&tt.inset,it&&tt[rt],it&&j.root.children!==void 0&&tt.withChildren,j.root.children===void 0&&_e.childless,j.root.className),j.wrapper&&(j.wrapper.className=mergeClasses(dividerClassNames.wrapper,j.wrapper.className)),j},Divider$2=reactExports.forwardRef((j,_e)=>{const et=useDivider_unstable(j,_e);return useDividerStyles_unstable(et),useCustomStyleHook("useDividerStyles_unstable")(et),renderDivider_unstable(et)});Divider$2.displayName="Divider";const useInput_unstable=(j,_e)=>{j=useFieldControlProps_unstable(j,{supportsLabelFor:!0,supportsRequired:!0,supportsSize:!0});const et=useOverrides();var tt;const{size:rt="medium",appearance:nt=(tt=et.inputDefaultAppearance)!==null&&tt!==void 0?tt:"outline",onChange:ot}=j,[it,st]=useControllableState({state:j.value,defaultState:j.defaultValue,initialState:""}),lt=getPartitionedNativeProps({props:j,primarySlotTagName:"input",excludedPropNames:["size","onChange","value","defaultValue"]}),ut={size:rt,appearance:nt,components:{root:"span",input:"input",contentBefore:"span",contentAfter:"span"},input:always(j.input,{defaultProps:{type:"text",ref:_e,...lt.primary},elementType:"input"}),contentAfter:optional(j.contentAfter,{elementType:"span"}),contentBefore:optional(j.contentBefore,{elementType:"span"}),root:always(j.root,{defaultProps:lt.root,elementType:"span"})};return ut.input.value=it,ut.input.onChange=useEventCallback$3(ct=>{const dt=ct.target.value;ot==null||ot(ct,{value:dt}),st(dt)}),ut},renderInput_unstable=j=>jsxs(j.root,{children:[j.contentBefore&&jsx$1(j.contentBefore,{}),jsx$1(j.input,{}),j.contentAfter&&jsx$1(j.contentAfter,{})]}),inputClassNames={root:"fui-Input",input:"fui-Input__input",contentBefore:"fui-Input__contentBefore",contentAfter:"fui-Input__contentAfter"},useRootClassName=__resetStyles("r1jtohuq","rl1z2p5",{r:[".r1jtohuq{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:var(--spacingHorizontalXXS);border-radius:var(--borderRadiusMedium);position:relative;box-sizing:border-box;min-height:32px;padding:0 var(--spacingHorizontalMNudge);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);background-color:var(--colorNeutralBackground1);border:1px solid var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStrokeAccessible);}",'.r1jtohuq::after{box-sizing:border-box;content:"";position:absolute;left:-1px;bottom:-1px;right:-1px;height:max(2px, var(--borderRadiusMedium));border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-bottom:2px solid var(--colorCompoundBrandStroke);clip-path:inset(calc(100% - 2px) 0 0 0);transform:scaleX(0);transition-property:transform;transition-duration:var(--durationUltraFast);transition-delay:var(--curveAccelerateMid);}',".r1jtohuq:focus-within::after{transform:scaleX(1);transition-property:transform;transition-duration:var(--durationNormal);transition-delay:var(--curveDecelerateMid);}",".r1jtohuq:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}",".r1jtohuq:focus-within{outline:2px solid transparent;}",".rl1z2p5{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:var(--spacingHorizontalXXS);border-radius:var(--borderRadiusMedium);position:relative;box-sizing:border-box;min-height:32px;padding:0 var(--spacingHorizontalMNudge);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);background-color:var(--colorNeutralBackground1);border:1px solid var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStrokeAccessible);}",'.rl1z2p5::after{box-sizing:border-box;content:"";position:absolute;right:-1px;bottom:-1px;left:-1px;height:max(2px, var(--borderRadiusMedium));border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-bottom:2px solid var(--colorCompoundBrandStroke);clip-path:inset(calc(100% - 2px) 0 0 0);transform:scaleX(0);transition-property:transform;transition-duration:var(--durationUltraFast);transition-delay:var(--curveAccelerateMid);}',".rl1z2p5:focus-within::after{transform:scaleX(1);transition-property:transform;transition-duration:var(--durationNormal);transition-delay:var(--curveDecelerateMid);}",".rl1z2p5:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}",".rl1z2p5:focus-within{outline:2px solid transparent;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r1jtohuq::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r1jtohuq:focus-within::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.rl1z2p5::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.rl1z2p5:focus-within::after{transition-duration:0.01ms;transition-delay:0.01ms;}}"]}),useRootStyles$4=__styles({small:{sshi5w:"f1pha7fy",uwmqm3:["fk8j09s","fdw0yi8"],z189sj:["fdw0yi8","fk8j09s"],Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},medium:{},large:{sshi5w:"f1w5jphr",uwmqm3:["f1uw59to","fw5db7e"],z189sj:["fw5db7e","f1uw59to"],Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k",i8kkvl:"f1rjii52",Belr9w4:"f1r7g2jn"},outline:{},outlineInteractive:{Bgoe8wy:"fvcxoqz",Bwzppfd:["f1ub3y4t","f1m52nbi"],oetu4i:"f1l4zc64",gg5e9n:["f1m52nbi","f1ub3y4t"],Drbcw7:"f8vnjqi",udz0bu:["fz1etlk","f1hc16gm"],Be8ivqh:"f1klwx88",ofdepl:["f1hc16gm","fz1etlk"]},underline:{De3pzq:"f1c21dwh",Bbmb7ep:["f1krrbdw","f1deotkl"],Beyfa6y:["f1deotkl","f1krrbdw"],B7oj6ja:["f10ostut","f1ozlkrg"],Btl43ni:["f1ozlkrg","f10ostut"],icvyot:"f1ern45e",vrafjx:["f1n71otn","f1deefiw"],wvpqe5:["f1deefiw","f1n71otn"],Eqx8gd:["f1n6gb5g","f15yvnhg"],B1piin3:["f15yvnhg","f1n6gb5g"]},underlineInteractive:{oetu4i:"f1l4zc64",Be8ivqh:"f1klwx88",B3778ie:["f1nf3wye","feulmo5"],d9w3h3:["feulmo5","f1nf3wye"],Bl18szs:["f18vqdqu","f53nyzz"],B4j8arr:["f53nyzz","f18vqdqu"]},filled:{g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},filledInteractive:{q7v0qe:"ftmjh5b",kmh5ft:["f17blpuu","fsrcdbj"],nagaa4:"f1tpwn32",B1yhkcb:["fsrcdbj","f17blpuu"]},invalid:{tvckwq:"fs4k3qj",gk2u95:["fcee079","fmyw78r"],hhx65j:"f1fgmyf4",Bxowmz0:["fmyw78r","fcee079"]},"filled-darker":{De3pzq:"f16xq7d1"},"filled-lighter":{De3pzq:"fxugw4r"},"filled-darker-shadow":{De3pzq:"f16xq7d1",E5pizo:"fyed02w"},"filled-lighter-shadow":{De3pzq:"fxugw4r",E5pizo:"fyed02w"},disabled:{Bceei9c:"fdrzuqr",De3pzq:"f1c21dwh",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"],Bsft5z2:"fhr9occ",Bduesf4:"f99w1ws"}},{d:[".f1pha7fy{min-height:24px;}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1w5jphr{min-height:40px;}",".f1uw59to{padding-left:var(--spacingHorizontalM);}",".fw5db7e{padding-right:var(--spacingHorizontalM);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",".f1r7g2jn{row-gap:var(--spacingHorizontalSNudge);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1krrbdw{border-bottom-right-radius:0;}",".f1deotkl{border-bottom-left-radius:0;}",".f10ostut{border-top-right-radius:0;}",".f1ozlkrg{border-top-left-radius:0;}",".f1ern45e{border-top-style:none;}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",".f1nf3wye::after{border-bottom-right-radius:0;}",".feulmo5::after{border-bottom-left-radius:0;}",".f18vqdqu::after{border-top-right-radius:0;}",".f53nyzz::after{border-top-left-radius:0;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}",".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}",".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}",".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}",".f16xq7d1{background-color:var(--colorNeutralBackground3);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".fyed02w{box-shadow:var(--shadow2);}",".fdrzuqr{cursor:not-allowed;}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fhr9occ::after{content:unset;}"],h:[".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}",".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}",".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}",".f1l4zc64:hover{border-bottom-color:var(--colorNeutralStrokeAccessibleHover);}",".ftmjh5b:hover,.ftmjh5b:focus-within{border-top-color:var(--colorTransparentStrokeInteractive);}",".f17blpuu:hover,.f17blpuu:focus-within{border-right-color:var(--colorTransparentStrokeInteractive);}",".fsrcdbj:hover,.fsrcdbj:focus-within{border-left-color:var(--colorTransparentStrokeInteractive);}",".f1tpwn32:hover,.f1tpwn32:focus-within{border-bottom-color:var(--colorTransparentStrokeInteractive);}"],a:[".f8vnjqi:active,.f8vnjqi:focus-within{border-top-color:var(--colorNeutralStroke1Pressed);}",".fz1etlk:active,.fz1etlk:focus-within{border-right-color:var(--colorNeutralStroke1Pressed);}",".f1hc16gm:active,.f1hc16gm:focus-within{border-left-color:var(--colorNeutralStroke1Pressed);}",".f1klwx88:active,.f1klwx88:focus-within{border-bottom-color:var(--colorNeutralStrokeAccessiblePressed);}"],m:[["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}]],w:[".f99w1ws:focus-within{outline-style:none;}"]}),useInputClassName=__resetStyles("rvp2gzh",null,[".rvp2gzh{box-sizing:border-box;flex-grow:1;min-width:0;border-style:none;padding:0 var(--spacingHorizontalXXS);color:var(--colorNeutralForeground1);background-color:transparent;outline-style:none;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;}",".rvp2gzh::-webkit-input-placeholder{color:var(--colorNeutralForeground4);opacity:1;}",".rvp2gzh::-moz-placeholder{color:var(--colorNeutralForeground4);opacity:1;}",".rvp2gzh:-ms-input-placeholder{color:var(--colorNeutralForeground4);opacity:1;}",".rvp2gzh::placeholder{color:var(--colorNeutralForeground4);opacity:1;}"]),useInputElementStyles=__styles({large:{uwmqm3:["fk8j09s","fdw0yi8"],z189sj:["fdw0yi8","fk8j09s"]},disabled:{sj55zd:"f1s2aq7o",De3pzq:"f1c21dwh",Bceei9c:"fdrzuqr",yvdlaj:"fahhnxm"}},{d:[".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".fdrzuqr{cursor:not-allowed;}",".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}",".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}"]}),useContentClassName=__resetStyles("r1572tok",null,[".r1572tok{box-sizing:border-box;color:var(--colorNeutralForeground3);display:flex;}",".r1572tok>svg{font-size:20px;}"]),useContentStyles$1=__styles({disabled:{sj55zd:"f1s2aq7o"},small:{kwki1k:"f3u2cy0"},medium:{},large:{kwki1k:"fa420co"}},{d:[".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f3u2cy0>svg{font-size:16px;}",".fa420co>svg{font-size:24px;}"]}),useInputStyles_unstable=j=>{const{size:_e,appearance:et}=j,tt=j.input.disabled,rt=`${j.input["aria-invalid"]}`=="true",nt=et.startsWith("filled"),ot=useRootStyles$4(),it=useInputElementStyles(),st=useContentStyles$1();j.root.className=mergeClasses(inputClassNames.root,useRootClassName(),ot[_e],ot[et],!tt&&et==="outline"&&ot.outlineInteractive,!tt&&et==="underline"&&ot.underlineInteractive,!tt&&nt&&ot.filledInteractive,nt&&ot.filled,!tt&&rt&&ot.invalid,tt&&ot.disabled,j.root.className),j.input.className=mergeClasses(inputClassNames.input,useInputClassName(),_e==="large"&&it.large,tt&&it.disabled,j.input.className);const lt=[useContentClassName(),tt&&st.disabled,st[_e]];return j.contentBefore&&(j.contentBefore.className=mergeClasses(inputClassNames.contentBefore,...lt,j.contentBefore.className)),j.contentAfter&&(j.contentAfter.className=mergeClasses(inputClassNames.contentAfter,...lt,j.contentAfter.className)),j},Input=reactExports.forwardRef((j,_e)=>{const et=useInput_unstable(j,_e);return useInputStyles_unstable(et),useCustomStyleHook("useInputStyles_unstable")(et),renderInput_unstable(et)});Input.displayName="Input";const useLinkState_unstable=j=>{const{disabled:_e,disabledFocusable:et}=j,{onClick:tt,onKeyDown:rt,role:nt,tabIndex:ot}=j.root;return j.root.as==="a"&&(j.root.href=_e?void 0:j.root.href,(_e||et)&&(j.root.role=nt||"link")),(j.root.as==="a"||j.root.as==="span")&&(j.root.tabIndex=ot??(_e&&!et?void 0:0)),j.root.onClick=it=>{_e||et?it.preventDefault():tt==null||tt(it)},j.root.onKeyDown=it=>{(_e||et)&&(it.key===Enter||it.key===Space)?(it.preventDefault(),it.stopPropagation()):rt==null||rt(it)},j.disabled=_e||et,j.root["aria-disabled"]=_e||et||void 0,j.root.as==="button"&&(j.root.disabled=_e&&!et),j},useLink_unstable=(j,_e)=>{const et=useBackgroundAppearance(),{appearance:tt="default",disabled:rt=!1,disabledFocusable:nt=!1,inline:ot=!1}=j,it=j.as||(j.href?"a":"button"),st={role:it==="span"?"button":void 0,type:it==="button"?"button":void 0,...j,as:it},lt={appearance:tt,disabled:rt,disabledFocusable:nt,inline:ot,components:{root:it},root:always(getIntrinsicElementProps(it,{ref:_e,...st}),{elementType:it}),backgroundAppearance:et};return useLinkState_unstable(lt),lt},linkClassNames={root:"fui-Link"},useStyles$o=__styles({focusIndicator:{Bttzg6e:"fhgqx19",B3uz8dt:"f1olyrje",B6ihwck:"f1p93eir",g9k6zt:"f1nev41a"},root:{B486eqv:"f2hkw1w",De3pzq:"f3rmtva",B7ck84d:"f1ewtqcl",sj55zd:"fyind8e",Bceei9c:"f1k6fduh",mc9l5x:"f1w7gpdv",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",B6of3ja:"f1hu3pq6",t21cq0:["f11qmguv","f1tyq0we"],jrapky:"f19f4twv",Frg6f3:["f1tyq0we","f11qmguv"],z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1cnd47f","fhxju0i"],B68tc82:"fqv5qza",Bmxbyg5:"f1vmzxwi",fsow6f:["f1o700av","fes3tcz"],w71qe1:"f1iuv45f",Bkioxbp:"f1cmlufx",ygn44y:"f9n3di6",famaaq:"f1ids18y",Bde5pd6:"f1tx3yz7",Bi91k9c:"f1deo86v",i089h6:"f1eh06m1",lj723h:"f1iescvh"},button:{icvyot:"f1ern45e",vrafjx:["f1n71otn","f1deefiw"],oivjwe:"f1h8hb77",wvpqe5:["f1deefiw","f1n71otn"]},href:{Be2twd7:"fjoy568"},subtle:{sj55zd:"fkfq4zb",Bde5pd6:"f1tx3yz7",Bi91k9c:"fnwyq0v",i089h6:"f1eh06m1",lj723h:"flvvhsy"},inline:{w71qe1:"f13mvf36"},disabled:{w71qe1:"f1iuv45f",sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr",Bde5pd6:"fbnuktb",Bi91k9c:"fvgxktp",i089h6:"fljg2da",lj723h:"f19wldhg"},inverted:{sj55zd:"f1qz2gb0",Bi91k9c:"f1mlt8il",lj723h:"f1hsd4st"}},{d:[".fhgqx19[data-fui-focus-visible]{text-decoration-color:var(--colorStrokeFocus2);}",".f1olyrje[data-fui-focus-visible]{text-decoration-line:underline;}",".f1p93eir[data-fui-focus-visible]{text-decoration-style:double;}",".f1nev41a[data-fui-focus-visible]{outline-style:none;}",".f3rmtva{background-color:transparent;}",".f1ewtqcl{box-sizing:border-box;}",".fyind8e{color:var(--colorBrandForegroundLink);}",".f1k6fduh{cursor:pointer;}",".f1w7gpdv{display:inline;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1hu3pq6{margin-top:0;}",".f11qmguv{margin-right:0;}",".f1tyq0we{margin-left:0;}",".f19f4twv{margin-bottom:0;}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1qch9an{padding-bottom:0;}",".fqv5qza{overflow-x:inherit;}",".f1vmzxwi{overflow-y:inherit;}",".f1o700av{text-align:left;}",".fes3tcz{text-align:right;}",".f1iuv45f{text-decoration-line:none;}",".f1cmlufx{text-decoration-thickness:var(--strokeWidthThin);}",".f9n3di6{text-overflow:inherit;}",".f1ids18y{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;}",".f1ern45e{border-top-style:none;}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",".f1h8hb77{border-bottom-style:none;}",".fjoy568{font-size:inherit;}",".fkfq4zb{color:var(--colorNeutralForeground2);}",".f13mvf36{text-decoration-line:underline;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f1qz2gb0{color:var(--colorBrandForegroundInverted);}"],i:[".f2hkw1w:focus-visible{outline-style:none;}"],h:[".f1tx3yz7:hover{text-decoration-line:underline;}",".f1deo86v:hover{color:var(--colorBrandForegroundLinkHover);}",".fnwyq0v:hover{color:var(--colorNeutralForeground2Hover);}",".fbnuktb:hover{text-decoration-line:none;}",".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}",".f1mlt8il:hover{color:var(--colorBrandForegroundInvertedHover);}"],a:[".f1eh06m1:active{text-decoration-line:underline;}",".f1iescvh:active{color:var(--colorBrandForegroundLinkPressed);}",".flvvhsy:active{color:var(--colorNeutralForeground2Pressed);}",".fljg2da:active{text-decoration-line:none;}",".f19wldhg:active{color:var(--colorNeutralForegroundDisabled);}",".f1hsd4st:active{color:var(--colorBrandForegroundInvertedPressed);}"]}),useLinkStyles_unstable=j=>{const _e=useStyles$o(),{appearance:et,disabled:tt,inline:rt,root:nt,backgroundAppearance:ot}=j;return j.root.className=mergeClasses(linkClassNames.root,_e.root,_e.focusIndicator,nt.as==="a"&&nt.href&&_e.href,nt.as==="button"&&_e.button,et==="subtle"&&_e.subtle,ot==="inverted"&&_e.inverted,rt&&_e.inline,tt&&_e.disabled,j.root.className),j},renderLink_unstable=j=>jsx$1(j.root,{}),Link$1=reactExports.forwardRef((j,_e)=>{const et=useLink_unstable(j,_e);return useLinkStyles_unstable(et),renderLink_unstable(et)});Link$1.displayName="Link";const SkeletonContext=reactExports.createContext(void 0),skeletonContextDefaultValue={},SkeletonContextProvider=SkeletonContext.Provider,useSkeletonContext=()=>{var j;return(j=reactExports.useContext(SkeletonContext))!==null&&j!==void 0?j:skeletonContextDefaultValue},useSkeleton_unstable=(j,_e)=>{const{animation:et,appearance:tt}=useSkeletonContext(),{animation:rt=et??"wave",appearance:nt=tt??"opaque"}=j,ot=always(getIntrinsicElementProps("div",{ref:_e,role:"progressbar","aria-busy":!0,"aria-label":"Loading Content",...j}),{elementType:"div"});return{animation:rt,appearance:nt,components:{root:"div"},root:ot}},renderSkeleton_unstable=(j,_e)=>jsx$1(SkeletonContextProvider,{value:_e.skeletonGroup,children:jsx$1(j.root,{})}),skeletonClassNames={root:"fui-Skeleton"},useSkeletonStyles_unstable=j=>(j.root.className=mergeClasses(skeletonClassNames.root,j.root.className),j),useSkeletonContextValues=j=>{const{animation:_e,appearance:et}=j;return{skeletonGroup:reactExports.useMemo(()=>({animation:_e,appearance:et}),[_e,et])}},Skeleton=reactExports.forwardRef((j,_e)=>{const et=useSkeleton_unstable(j,_e),tt=useSkeletonContextValues(et);return useSkeletonStyles_unstable(et),renderSkeleton_unstable(et,tt)});Skeleton.displayName="Skeleton";const useSkeletonItem_unstable=(j,_e)=>{const{animation:et,appearance:tt}=useSkeletonContext(),{animation:rt=et??"wave",appearance:nt=tt??"opaque",size:ot=16,shape:it="rectangle"}=j,st=always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"});return{appearance:nt,animation:rt,size:ot,shape:it,components:{root:"div"},root:st}},renderSkeletonItem_unstable=j=>jsx$1(j.root,{}),skeletonItemClassNames={root:"fui-SkeletonItem"},useStyles$n=__styles({root:{qhf8xq:"f10pi13n",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",Bkjc3bi:"f1qx3921",B8a6bjv:"fj9j8l8",Bpptf2m:"f1b6djjb",Bgh53k4:"f1dsdmen",w3vfg9:"f1cpbl36",vin17d:"f1a27w2r",Ezkn3b:"f452v7t",Gqtpxc:"f4akx1t",B3vm3ge:"f18p5put"},wave:{Bv12yb3:"fj20wtk",Bcmaq0h:["f101ziu5","f152emvt"],Bpep1pd:"f9jxvrw"},waveRtl:{Bv12yb3:"f105t0nc",Bcmaq0h:["f101ziu5","f152emvt"],Bpep1pd:"f9jxvrw"},pulse:{Bv12yb3:"fnm2mpv",vin17d:"f1iuewzk",De3pzq:"f1gjxg63"},translucent:{Bcmaq0h:["fss7axp","f4160cw"]},translucentPulse:{De3pzq:"f162mh4z"}},{d:[".f10pi13n{position:relative;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f1qx3921{background-size:300% 100%;}",".fj9j8l8{background-position-x:center;}",".f1b6djjb{background-position-y:center;}",".f1dsdmen{background-attachment:fixed;}",".f1cpbl36{animation-iteration-count:infinite;}",".f1a27w2r{animation-duration:3s;}",".f452v7t{animation-timing-function:linear;}",".fj20wtk{animation-name:fma800j;}",`.f101ziu5{background-image:linear-gradient( + */class Tabster{constructor(_e){this.keyboardNavigation=_e.keyboardNavigation,this.focusedElement=_e.focusedElement,this.focusable=_e.focusable,this.root=_e.root,this.uncontrolled=_e.uncontrolled,this.core=_e}}class TabsterCore{constructor(_e,et){var tt,rt;this._forgetMemorizedElements=[],this._wrappers=new Set,this._initQueue=[],this._version="5.2.0",this._noop=!1,this.getWindow=()=>{if(!this._win)throw new Error("Using disposed Tabster.");return this._win},this._storage=createWeakMap(_e),this._win=_e;const nt=this.getWindow;this.keyboardNavigation=new KeyboardNavigationState(nt),this.focusedElement=new FocusedElementState(this,nt),this.focusable=new FocusableAPI(this),this.root=new RootAPI(this,et==null?void 0:et.autoRoot),this.uncontrolled=new UncontrolledAPI((et==null?void 0:et.checkUncontrolledCompletely)||(et==null?void 0:et.checkUncontrolledTrappingFocus)),this.controlTab=(tt=et==null?void 0:et.controlTab)!==null&&tt!==void 0?tt:!0,this.rootDummyInputs=!!(et!=null&&et.rootDummyInputs),this._dummyObserver=new DummyInputObserver(nt),this.getParent=(rt=et==null?void 0:et.getParent)!==null&&rt!==void 0?rt:ot=>ot.parentElement,this.internal={stopObserver:()=>{this._unobserve&&(this._unobserve(),delete this._unobserve)},resumeObserver:ot=>{if(!this._unobserve){const it=nt().document;this._unobserve=observeMutations(it,this,updateTabsterByAttribute,ot)}}},startFakeWeakRefsCleanup(nt),this.queueInit(()=>{this.internal.resumeObserver(!0)})}_mergeProps(_e){var et;_e&&(this.getParent=(et=_e.getParent)!==null&&et!==void 0?et:this.getParent)}createTabster(_e,et){const tt=new Tabster(this);return _e||this._wrappers.add(tt),this._mergeProps(et),tt}disposeTabster(_e,et){et?this._wrappers.clear():this._wrappers.delete(_e),this._wrappers.size===0&&this.dispose()}dispose(){var _e,et,tt,rt,nt,ot,it,st;this.internal.stopObserver();const lt=this._win;lt==null||lt.clearTimeout(this._initTimer),delete this._initTimer,this._initQueue=[],this._forgetMemorizedElements=[],lt&&this._forgetMemorizedTimer&&(lt.clearTimeout(this._forgetMemorizedTimer),delete this._forgetMemorizedTimer),(_e=this.outline)===null||_e===void 0||_e.dispose(),(et=this.crossOrigin)===null||et===void 0||et.dispose(),(tt=this.deloser)===null||tt===void 0||tt.dispose(),(rt=this.groupper)===null||rt===void 0||rt.dispose(),(nt=this.mover)===null||nt===void 0||nt.dispose(),(ot=this.modalizer)===null||ot===void 0||ot.dispose(),(it=this.observedElement)===null||it===void 0||it.dispose(),(st=this.restorer)===null||st===void 0||st.dispose(),this.keyboardNavigation.dispose(),this.focusable.dispose(),this.focusedElement.dispose(),this.root.dispose(),this._dummyObserver.dispose(),stopFakeWeakRefsCleanupAndClearStorage(this.getWindow),clearElementCache(this.getWindow),this._storage=new WeakMap,this._wrappers.clear(),lt&&(disposeInstanceContext(lt),delete lt.__tabsterInstance,delete this._win)}storageEntry(_e,et){const tt=this._storage;let rt=tt.get(_e);return rt?et===!1&&Object.keys(rt).length===0&&tt.delete(_e):et===!0&&(rt={},tt.set(_e,rt)),rt}forceCleanup(){this._win&&(this._forgetMemorizedElements.push(this._win.document.body),!this._forgetMemorizedTimer&&(this._forgetMemorizedTimer=this._win.setTimeout(()=>{delete this._forgetMemorizedTimer;for(let _e=this._forgetMemorizedElements.shift();_e;_e=this._forgetMemorizedElements.shift())clearElementCache(this.getWindow,_e),FocusedElementState.forgetMemorized(this.focusedElement,_e)},0),cleanupFakeWeakRefs(this.getWindow,!0)))}queueInit(_e){var et;this._win&&(this._initQueue.push(_e),this._initTimer||(this._initTimer=(et=this._win)===null||et===void 0?void 0:et.setTimeout(()=>{delete this._initTimer,this.drainInitQueue()},0)))}drainInitQueue(){if(!this._win)return;const _e=this._initQueue;this._initQueue=[],_e.forEach(et=>et())}}function createTabster(j,_e){let et=getCurrentTabster(j);return et?et.createTabster(!1,_e):(et=new TabsterCore(j,_e),j.__tabsterInstance=et,et.createTabster())}function getGroupper(j){const _e=j.core;return _e.groupper||(_e.groupper=new GroupperAPI(_e,_e.getWindow)),_e.groupper}function getMover(j){const _e=j.core;return _e.mover||(_e.mover=new MoverAPI(_e,_e.getWindow)),_e.mover}function getModalizer(j,_e,et){const tt=j.core;return tt.modalizer||(tt.modalizer=new ModalizerAPI(tt,_e,et)),tt.modalizer}function getRestorer(j){const _e=j.core;return _e.restorer||(_e.restorer=new RestorerAPI(_e)),_e.restorer}function disposeTabster(j,_e){j.core.disposeTabster(j,_e)}function getCurrentTabster(j){return j.__tabsterInstance}const useTabster=()=>{const{targetDocument:j}=useFluent(),_e=(j==null?void 0:j.defaultView)||void 0,et=reactExports.useMemo(()=>_e?createTabster(_e,{autoRoot:{},controlTab:!1,getParent:getParent$1,checkUncontrolledTrappingFocus:tt=>{var rt;return!!(!((rt=tt.firstElementChild)===null||rt===void 0)&&rt.hasAttribute("data-is-focus-trap-zone-bumper"))}}):null,[_e]);return useIsomorphicLayoutEffect$1(()=>()=>{et&&disposeTabster(et)},[et]),et},useTabsterAttributes=j=>(useTabster(),getTabsterAttribute(j)),useArrowNavigationGroup=(j={})=>{const{circular:_e,axis:et,memorizeCurrent:tt,tabbable:rt,ignoreDefaultKeydown:nt,unstable_hasDefault:ot}=j,it=useTabster();return it&&getMover(it),useTabsterAttributes({mover:{cyclic:!!_e,direction:axisToMoverDirection(et??"vertical"),memorizeCurrent:tt,tabbable:rt,hasDefault:ot},...nt&&{focusable:{ignoreKeydown:nt}}})};function axisToMoverDirection(j){switch(j){case"horizontal":return Types.MoverDirections.Horizontal;case"grid":return Types.MoverDirections.Grid;case"grid-linear":return Types.MoverDirections.GridLinear;case"both":return Types.MoverDirections.Both;case"vertical":default:return Types.MoverDirections.Vertical}}const useFocusableGroup=j=>{const _e=useTabster();return _e&&getGroupper(_e),useTabsterAttributes({groupper:{tabbability:getTabbability(j==null?void 0:j.tabBehavior)},focusable:{ignoreKeydown:j==null?void 0:j.ignoreDefaultKeydown}})},getTabbability=j=>{switch(j){case"unlimited":return Types.GroupperTabbabilities.Unlimited;case"limited":return Types.GroupperTabbabilities.Limited;case"limited-trap-focus":return Types.GroupperTabbabilities.LimitedTrapFocus;default:return}},useFocusFinders=()=>{const j=useTabster(),{targetDocument:_e}=useFluent(),et=reactExports.useCallback((it,st)=>(j==null?void 0:j.focusable.findAll({container:it,acceptCondition:st}))||[],[j]),tt=reactExports.useCallback(it=>j==null?void 0:j.focusable.findFirst({container:it}),[j]),rt=reactExports.useCallback(it=>j==null?void 0:j.focusable.findLast({container:it}),[j]),nt=reactExports.useCallback((it,st={})=>{if(!j||!_e)return null;const{container:lt=_e.body}=st;return j.focusable.findNext({currentElement:it,container:lt})},[j,_e]),ot=reactExports.useCallback((it,st={})=>{if(!j||!_e)return null;const{container:lt=_e.body}=st;return j.focusable.findPrev({currentElement:it,container:lt})},[j,_e]);return{findAllFocusable:et,findFirstFocusable:tt,findLastFocusable:rt,findNextFocusable:nt,findPrevFocusable:ot}},FOCUS_VISIBLE_ATTR="data-fui-focus-visible",FOCUS_WITHIN_ATTR="data-fui-focus-within";function applyFocusVisiblePolyfill(j,_e){if(alreadyInScope(j))return()=>{};const et={current:void 0},tt=createKeyborg(_e);function rt(st){tt.isNavigatingWithKeyboard()&&isHTMLElement$4(st)&&(et.current=st,st.setAttribute(FOCUS_VISIBLE_ATTR,""))}function nt(){et.current&&(et.current.removeAttribute(FOCUS_VISIBLE_ATTR),et.current=void 0)}tt.subscribe(st=>{st||nt()});const ot=st=>{nt();const lt=st.composedPath()[0];rt(lt)},it=st=>{(!st.relatedTarget||isHTMLElement$4(st.relatedTarget)&&!j.contains(st.relatedTarget))&&nt()};return j.addEventListener(KEYBORG_FOCUSIN,ot),j.addEventListener("focusout",it),j.focusVisible=!0,rt(_e.document.activeElement),()=>{nt(),j.removeEventListener(KEYBORG_FOCUSIN,ot),j.removeEventListener("focusout",it),delete j.focusVisible,disposeKeyborg(tt)}}function alreadyInScope(j){return j?j.focusVisible?!0:alreadyInScope(j==null?void 0:j.parentElement):!1}function useFocusVisible(j={}){const _e=useFluent(),et=reactExports.useRef(null);var tt;const rt=(tt=j.targetDocument)!==null&&tt!==void 0?tt:_e.targetDocument;return reactExports.useEffect(()=>{if(rt!=null&&rt.defaultView&&et.current)return applyFocusVisiblePolyfill(et.current,rt.defaultView)},[et,rt]),et}function applyFocusWithinPolyfill(j,_e){const et=createKeyborg(_e);et.subscribe(nt=>{nt||removeFocusWithinClass(j)});const tt=nt=>{et.isNavigatingWithKeyboard()&&isHTMLElement$3(nt.target)&&applyFocusWithinClass(j)},rt=nt=>{(!nt.relatedTarget||isHTMLElement$3(nt.relatedTarget)&&!j.contains(nt.relatedTarget))&&removeFocusWithinClass(j)};return j.addEventListener(KEYBORG_FOCUSIN,tt),j.addEventListener("focusout",rt),()=>{j.removeEventListener(KEYBORG_FOCUSIN,tt),j.removeEventListener("focusout",rt),disposeKeyborg(et)}}function applyFocusWithinClass(j){j.setAttribute(FOCUS_WITHIN_ATTR,"")}function removeFocusWithinClass(j){j.removeAttribute(FOCUS_WITHIN_ATTR)}function isHTMLElement$3(j){return j?!!(j&&typeof j=="object"&&"classList"in j&&"contains"in j):!1}function useFocusWithin(){const{targetDocument:j}=useFluent(),_e=reactExports.useRef(null);return reactExports.useEffect(()=>{if(j!=null&&j.defaultView&&_e.current)return applyFocusWithinPolyfill(_e.current,j.defaultView)},[_e,j]),_e}const useModalAttributes=(j={})=>{const{trapFocus:_e,alwaysFocusable:et,legacyTrapFocus:tt}=j,rt=useTabster();rt&&(getModalizer(rt),getRestorer(rt));const nt=useId$1("modal-",j.id),ot=useTabsterAttributes({restorer:{type:Types.RestorerTypes.Source},..._e&&{modalizer:{id:nt,isOthersAccessible:!_e,isAlwaysAccessible:et,isTrapped:tt&&_e}}}),it=useTabsterAttributes({restorer:{type:Types.RestorerTypes.Target}});return{modalAttributes:ot,triggerAttributes:it}},grey={2:"#050505",4:"#0a0a0a",6:"#0f0f0f",8:"#141414",10:"#1a1a1a",12:"#1f1f1f",14:"#242424",16:"#292929",18:"#2e2e2e",20:"#333333",22:"#383838",24:"#3d3d3d",26:"#424242",28:"#474747",30:"#4d4d4d",32:"#525252",34:"#575757",36:"#5c5c5c",38:"#616161",40:"#666666",42:"#6b6b6b",44:"#707070",46:"#757575",48:"#7a7a7a",50:"#808080",52:"#858585",54:"#8a8a8a",56:"#8f8f8f",58:"#949494",60:"#999999",62:"#9e9e9e",64:"#a3a3a3",66:"#a8a8a8",68:"#adadad",70:"#b3b3b3",72:"#b8b8b8",74:"#bdbdbd",76:"#c2c2c2",78:"#c7c7c7",80:"#cccccc",82:"#d1d1d1",84:"#d6d6d6",86:"#dbdbdb",88:"#e0e0e0",90:"#e6e6e6",92:"#ebebeb",94:"#f0f0f0",96:"#f5f5f5",98:"#fafafa"},whiteAlpha={5:"rgba(255, 255, 255, 0.05)",10:"rgba(255, 255, 255, 0.1)",20:"rgba(255, 255, 255, 0.2)",30:"rgba(255, 255, 255, 0.3)",40:"rgba(255, 255, 255, 0.4)",50:"rgba(255, 255, 255, 0.5)",60:"rgba(255, 255, 255, 0.6)",70:"rgba(255, 255, 255, 0.7)",80:"rgba(255, 255, 255, 0.8)",90:"rgba(255, 255, 255, 0.9)"},blackAlpha={5:"rgba(0, 0, 0, 0.05)",10:"rgba(0, 0, 0, 0.1)",20:"rgba(0, 0, 0, 0.2)",30:"rgba(0, 0, 0, 0.3)",40:"rgba(0, 0, 0, 0.4)",50:"rgba(0, 0, 0, 0.5)",60:"rgba(0, 0, 0, 0.6)",70:"rgba(0, 0, 0, 0.7)",80:"rgba(0, 0, 0, 0.8)",90:"rgba(0, 0, 0, 0.9)"},grey10Alpha={5:"rgba(26, 26, 26, 0.05)",10:"rgba(26, 26, 26, 0.1)",20:"rgba(26, 26, 26, 0.2)",30:"rgba(26, 26, 26, 0.3)",40:"rgba(26, 26, 26, 0.4)",50:"rgba(26, 26, 26, 0.5)",60:"rgba(26, 26, 26, 0.6)",70:"rgba(26, 26, 26, 0.7)",80:"rgba(26, 26, 26, 0.8)",90:"rgba(26, 26, 26, 0.9)"},grey12Alpha={5:"rgba(31, 31, 31, 0.05)",10:"rgba(31, 31, 31, 0.1)",20:"rgba(31, 31, 31, 0.2)",30:"rgba(31, 31, 31, 0.3)",40:"rgba(31, 31, 31, 0.4)",50:"rgba(31, 31, 31, 0.5)",60:"rgba(31, 31, 31, 0.6)",70:"rgba(31, 31, 31, 0.7)",80:"rgba(31, 31, 31, 0.8)",90:"rgba(31, 31, 31, 0.9)"},grey14Alpha={5:"rgba(36, 36, 36, 0.05)",10:"rgba(36, 36, 36, 0.1)",20:"rgba(36, 36, 36, 0.2)",30:"rgba(36, 36, 36, 0.3)",40:"rgba(36, 36, 36, 0.4)",50:"rgba(36, 36, 36, 0.5)",60:"rgba(36, 36, 36, 0.6)",70:"rgba(36, 36, 36, 0.7)",80:"rgba(36, 36, 36, 0.8)",90:"rgba(36, 36, 36, 0.9)"},white="#ffffff",black="#000000",darkRed={shade50:"#130204",shade40:"#230308",shade30:"#420610",shade20:"#590815",shade10:"#690a19",primary:"#750b1c",tint10:"#861b2c",tint20:"#962f3f",tint30:"#ac4f5e",tint40:"#d69ca5",tint50:"#e9c7cd",tint60:"#f9f0f2"},cranberry={shade50:"#200205",shade40:"#3b0509",shade30:"#6e0811",shade20:"#960b18",shade10:"#b10e1c",primary:"#c50f1f",tint10:"#cc2635",tint20:"#d33f4c",tint30:"#dc626d",tint40:"#eeacb2",tint50:"#f6d1d5",tint60:"#fdf3f4"},red={shade50:"#210809",shade40:"#3f1011",shade30:"#751d1f",shade20:"#9f282b",shade10:"#bc2f32",primary:"#d13438",tint10:"#d7494c",tint20:"#dc5e62",tint30:"#e37d80",tint40:"#f1bbbc",tint50:"#f8dadb",tint60:"#fdf6f6"},darkOrange={shade50:"#230900",shade40:"#411200",shade30:"#7a2101",shade20:"#a62d01",shade10:"#c43501",primary:"#da3b01",tint10:"#de501c",tint20:"#e36537",tint30:"#e9835e",tint40:"#f4bfab",tint50:"#f9dcd1",tint60:"#fdf6f3"},pumpkin={shade50:"#200d03",shade40:"#3d1805",shade30:"#712d09",shade20:"#9a3d0c",shade10:"#b6480e",primary:"#ca5010",tint10:"#d06228",tint20:"#d77440",tint30:"#df8e64",tint40:"#efc4ad",tint50:"#f7dfd2",tint60:"#fdf7f4"},orange={shade50:"#271002",shade40:"#4a1e04",shade30:"#8a3707",shade20:"#bc4b09",shade10:"#de590b",primary:"#f7630c",tint10:"#f87528",tint20:"#f98845",tint30:"#faa06b",tint40:"#fdcfb4",tint50:"#fee5d7",tint60:"#fff9f5"},peach={shade50:"#291600",shade40:"#4d2a00",shade30:"#8f4e00",shade20:"#c26a00",shade10:"#e67e00",primary:"#ff8c00",tint10:"#ff9a1f",tint20:"#ffa83d",tint30:"#ffba66",tint40:"#ffddb3",tint50:"#ffedd6",tint60:"#fffaf5"},marigold={shade50:"#251a00",shade40:"#463100",shade30:"#835b00",shade20:"#b27c00",shade10:"#d39300",primary:"#eaa300",tint10:"#edad1c",tint20:"#efb839",tint30:"#f2c661",tint40:"#f9e2ae",tint50:"#fcefd3",tint60:"#fefbf4"},yellow={primary:"#fde300",shade10:"#e4cc00",shade20:"#c0ad00",shade30:"#817400",shade40:"#4c4400",shade50:"#282400",tint10:"#fde61e",tint20:"#fdea3d",tint30:"#feee66",tint40:"#fef7b2",tint50:"#fffad6",tint60:"#fffef5"},gold={shade50:"#1f1900",shade40:"#3a2f00",shade30:"#6c5700",shade20:"#937700",shade10:"#ae8c00",primary:"#c19c00",tint10:"#c8a718",tint20:"#d0b232",tint30:"#dac157",tint40:"#ecdfa5",tint50:"#f5eece",tint60:"#fdfbf2"},brass={shade50:"#181202",shade40:"#2e2103",shade30:"#553e06",shade20:"#745408",shade10:"#89640a",primary:"#986f0b",tint10:"#a47d1e",tint20:"#b18c34",tint30:"#c1a256",tint40:"#e0cea2",tint50:"#efe4cb",tint60:"#fbf8f2"},brown={shade50:"#170e07",shade40:"#2b1a0e",shade30:"#50301a",shade20:"#6c4123",shade10:"#804d29",primary:"#8e562e",tint10:"#9c663f",tint20:"#a97652",tint30:"#bb8f6f",tint40:"#ddc3b0",tint50:"#edded3",tint60:"#faf7f4"},forest={shade50:"#0c1501",shade40:"#162702",shade30:"#294903",shade20:"#376304",shade10:"#427505",primary:"#498205",tint10:"#599116",tint20:"#6ba02b",tint30:"#85b44c",tint40:"#bdd99b",tint50:"#dbebc7",tint60:"#f6faf0"},seafoam={shade50:"#002111",shade40:"#003d20",shade30:"#00723b",shade20:"#009b51",shade10:"#00b85f",primary:"#00cc6a",tint10:"#19d279",tint20:"#34d889",tint30:"#5ae0a0",tint40:"#a8f0cd",tint50:"#cff7e4",tint60:"#f3fdf8"},lightGreen={shade50:"#031a02",shade40:"#063004",shade30:"#0b5a08",shade20:"#0e7a0b",shade10:"#11910d",primary:"#13a10e",tint10:"#27ac22",tint20:"#3db838",tint30:"#5ec75a",tint40:"#a7e3a5",tint50:"#cef0cd",tint60:"#f2fbf2"},green={shade50:"#031403",shade40:"#052505",shade30:"#094509",shade20:"#0c5e0c",shade10:"#0e700e",primary:"#107c10",tint10:"#218c21",tint20:"#359b35",tint30:"#54b054",tint40:"#9fd89f",tint50:"#c9eac9",tint60:"#f1faf1"},darkGreen={shade50:"#021102",shade40:"#032003",shade30:"#063b06",shade20:"#085108",shade10:"#0a5f0a",primary:"#0b6a0b",tint10:"#1a7c1a",tint20:"#2d8e2d",tint30:"#4da64d",tint40:"#9ad29a",tint50:"#c6e7c6",tint60:"#f0f9f0"},lightTeal={shade50:"#001d1f",shade40:"#00373a",shade30:"#00666d",shade20:"#008b94",shade10:"#00a5af",primary:"#00b7c3",tint10:"#18bfca",tint20:"#32c8d1",tint30:"#58d3db",tint40:"#a6e9ed",tint50:"#cef3f5",tint60:"#f2fcfd"},teal={shade50:"#001516",shade40:"#012728",shade30:"#02494c",shade20:"#026467",shade10:"#037679",primary:"#038387",tint10:"#159195",tint20:"#2aa0a4",tint30:"#4cb4b7",tint40:"#9bd9db",tint50:"#c7ebec",tint60:"#f0fafa"},steel={shade50:"#000f12",shade40:"#001b22",shade30:"#00333f",shade20:"#004555",shade10:"#005265",primary:"#005b70",tint10:"#0f6c81",tint20:"#237d92",tint30:"#4496a9",tint40:"#94c8d4",tint50:"#c3e1e8",tint60:"#eff7f9"},blue={shade50:"#001322",shade40:"#002440",shade30:"#004377",shade20:"#005ba1",shade10:"#006cbf",primary:"#0078d4",tint10:"#1a86d9",tint20:"#3595de",tint30:"#5caae5",tint40:"#a9d3f2",tint50:"#d0e7f8",tint60:"#f3f9fd"},royalBlue={shade50:"#000c16",shade40:"#00172a",shade30:"#002c4e",shade20:"#003b6a",shade10:"#00467e",primary:"#004e8c",tint10:"#125e9a",tint20:"#286fa8",tint30:"#4a89ba",tint40:"#9abfdc",tint50:"#c7dced",tint60:"#f0f6fa"},cornflower={shade50:"#0d1126",shade40:"#182047",shade30:"#2c3c85",shade20:"#3c51b4",shade10:"#4760d5",primary:"#4f6bed",tint10:"#637cef",tint20:"#778df1",tint30:"#93a4f4",tint40:"#c8d1fa",tint50:"#e1e6fc",tint60:"#f7f9fe"},navy={shade50:"#00061d",shade40:"#000c36",shade30:"#001665",shade20:"#001e89",shade10:"#0023a2",primary:"#0027b4",tint10:"#173bbd",tint20:"#3050c6",tint30:"#546fd2",tint40:"#a3b2e8",tint50:"#ccd5f3",tint60:"#f2f4fc"},lavender={shade50:"#120f25",shade40:"#221d46",shade30:"#3f3682",shade20:"#5649b0",shade10:"#6656d1",primary:"#7160e8",tint10:"#8172eb",tint20:"#9184ee",tint30:"#a79cf1",tint40:"#d2ccf8",tint50:"#e7e4fb",tint60:"#f9f8fe"},purple={shade50:"#0f0717",shade40:"#1c0e2b",shade30:"#341a51",shade20:"#46236e",shade10:"#532982",primary:"#5c2e91",tint10:"#6b3f9e",tint20:"#7c52ab",tint30:"#9470bd",tint40:"#c6b1de",tint50:"#e0d3ed",tint60:"#f7f4fb"},grape={shade50:"#160418",shade40:"#29072e",shade30:"#4c0d55",shade20:"#671174",shade10:"#7a1589",primary:"#881798",tint10:"#952aa4",tint20:"#a33fb1",tint30:"#b55fc1",tint40:"#d9a7e0",tint50:"#eaceef",tint60:"#faf2fb"},berry={shade50:"#1f091d",shade40:"#3a1136",shade30:"#6d2064",shade20:"#932b88",shade10:"#af33a1",primary:"#c239b3",tint10:"#c94cbc",tint20:"#d161c4",tint30:"#da7ed0",tint40:"#edbbe7",tint50:"#f5daf2",tint60:"#fdf5fc"},lilac={shade50:"#1c0b1f",shade40:"#35153a",shade30:"#63276d",shade20:"#863593",shade10:"#9f3faf",primary:"#b146c2",tint10:"#ba58c9",tint20:"#c36bd1",tint30:"#cf87da",tint40:"#e6bfed",tint50:"#f2dcf5",tint60:"#fcf6fd"},pink={shade50:"#24091b",shade40:"#441232",shade30:"#80215d",shade20:"#ad2d7e",shade10:"#cd3595",primary:"#e43ba6",tint10:"#e750b0",tint20:"#ea66ba",tint30:"#ef85c8",tint40:"#f7c0e3",tint50:"#fbddf0",tint60:"#fef6fb"},magenta={shade50:"#1f0013",shade40:"#390024",shade30:"#6b0043",shade20:"#91005a",shade10:"#ac006b",primary:"#bf0077",tint10:"#c71885",tint20:"#ce3293",tint30:"#d957a8",tint40:"#eca5d1",tint50:"#f5cee6",tint60:"#fcf2f9"},plum={shade50:"#13000c",shade40:"#240017",shade30:"#43002b",shade20:"#5a003b",shade10:"#6b0045",primary:"#77004d",tint10:"#87105d",tint20:"#98246f",tint30:"#ad4589",tint40:"#d696c0",tint50:"#e9c4dc",tint60:"#faf0f6"},beige={shade50:"#141313",shade40:"#252323",shade30:"#444241",shade20:"#5d5958",shade10:"#6e6968",primary:"#7a7574",tint10:"#8a8584",tint20:"#9a9594",tint30:"#afabaa",tint40:"#d7d4d4",tint50:"#eae8e8",tint60:"#faf9f9"},mink={shade50:"#0f0e0e",shade40:"#1c1b1a",shade30:"#343231",shade20:"#474443",shade10:"#54514f",primary:"#5d5a58",tint10:"#706d6b",tint20:"#84817e",tint30:"#9e9b99",tint40:"#cecccb",tint50:"#e5e4e3",tint60:"#f8f8f8"},platinum={shade50:"#111314",shade40:"#1f2426",shade30:"#3b4447",shade20:"#505c60",shade10:"#5f6d71",primary:"#69797e",tint10:"#79898d",tint20:"#89989d",tint30:"#a0adb2",tint40:"#cdd6d8",tint50:"#e4e9ea",tint60:"#f8f9fa"},anchor={shade50:"#090a0b",shade40:"#111315",shade30:"#202427",shade20:"#2b3135",shade10:"#333a3f",primary:"#394146",tint10:"#4d565c",tint20:"#626c72",tint30:"#808a90",tint40:"#bcc3c7",tint50:"#dbdfe1",tint60:"#f6f7f8"},statusSharedColors={red,green,darkOrange,yellow,berry,lightGreen,marigold},personaSharedColors={darkRed,cranberry,pumpkin,peach,gold,brass,brown,forest,seafoam,darkGreen,lightTeal,teal,steel,blue,royalBlue,cornflower,navy,lavender,purple,grape,lilac,pink,magenta,plum,beige,mink,platinum,anchor},mappedStatusColors={cranberry,green,orange},statusSharedColorNames=["red","green","darkOrange","yellow","berry","lightGreen","marigold"],personaSharedColorNames=["darkRed","cranberry","pumpkin","peach","gold","brass","brown","forest","seafoam","darkGreen","lightTeal","teal","steel","blue","royalBlue","cornflower","navy","lavender","purple","grape","lilac","pink","magenta","plum","beige","mink","platinum","anchor"],statusColorMapping={success:"green",warning:"orange",danger:"cranberry"},statusColorPaletteTokens$1=statusSharedColorNames.reduce((j,_e)=>{const et=_e.slice(0,1).toUpperCase()+_e.slice(1),tt={[`colorPalette${et}Background1`]:statusSharedColors[_e].tint60,[`colorPalette${et}Background2`]:statusSharedColors[_e].tint40,[`colorPalette${et}Background3`]:statusSharedColors[_e].primary,[`colorPalette${et}Foreground1`]:statusSharedColors[_e].shade10,[`colorPalette${et}Foreground2`]:statusSharedColors[_e].shade30,[`colorPalette${et}Foreground3`]:statusSharedColors[_e].primary,[`colorPalette${et}BorderActive`]:statusSharedColors[_e].primary,[`colorPalette${et}Border1`]:statusSharedColors[_e].tint40,[`colorPalette${et}Border2`]:statusSharedColors[_e].primary};return Object.assign(j,tt)},{});statusColorPaletteTokens$1.colorPaletteYellowForeground1=statusSharedColors.yellow.shade30;statusColorPaletteTokens$1.colorPaletteRedForegroundInverted=statusSharedColors.red.tint20;statusColorPaletteTokens$1.colorPaletteGreenForegroundInverted=statusSharedColors.green.tint20;statusColorPaletteTokens$1.colorPaletteYellowForegroundInverted=statusSharedColors.yellow.tint40;const personaColorPaletteTokens$1=personaSharedColorNames.reduce((j,_e)=>{const et=_e.slice(0,1).toUpperCase()+_e.slice(1),tt={[`colorPalette${et}Background2`]:personaSharedColors[_e].tint40,[`colorPalette${et}Foreground2`]:personaSharedColors[_e].shade30,[`colorPalette${et}BorderActive`]:personaSharedColors[_e].primary};return Object.assign(j,tt)},{}),colorPaletteTokens$1={...statusColorPaletteTokens$1,...personaColorPaletteTokens$1},colorStatusTokens$1=Object.entries(statusColorMapping).reduce((j,[_e,et])=>{const tt=_e.slice(0,1).toUpperCase()+_e.slice(1),rt={[`colorStatus${tt}Background1`]:mappedStatusColors[et].tint60,[`colorStatus${tt}Background2`]:mappedStatusColors[et].tint40,[`colorStatus${tt}Background3`]:mappedStatusColors[et].primary,[`colorStatus${tt}Foreground1`]:mappedStatusColors[et].shade10,[`colorStatus${tt}Foreground2`]:mappedStatusColors[et].shade30,[`colorStatus${tt}Foreground3`]:mappedStatusColors[et].primary,[`colorStatus${tt}ForegroundInverted`]:mappedStatusColors[et].tint30,[`colorStatus${tt}BorderActive`]:mappedStatusColors[et].primary,[`colorStatus${tt}Border1`]:mappedStatusColors[et].tint40,[`colorStatus${tt}Border2`]:mappedStatusColors[et].primary};return Object.assign(j,rt)},{});colorStatusTokens$1.colorStatusWarningForeground1=mappedStatusColors[statusColorMapping.warning].shade20;colorStatusTokens$1.colorStatusWarningForeground3=mappedStatusColors[statusColorMapping.warning].shade20;colorStatusTokens$1.colorStatusWarningBorder2=mappedStatusColors[statusColorMapping.warning].shade20;const generateColorTokens$1=j=>({colorNeutralForeground1:grey[14],colorNeutralForeground1Hover:grey[14],colorNeutralForeground1Pressed:grey[14],colorNeutralForeground1Selected:grey[14],colorNeutralForeground2:grey[26],colorNeutralForeground2Hover:grey[14],colorNeutralForeground2Pressed:grey[14],colorNeutralForeground2Selected:grey[14],colorNeutralForeground2BrandHover:j[80],colorNeutralForeground2BrandPressed:j[70],colorNeutralForeground2BrandSelected:j[80],colorNeutralForeground3:grey[38],colorNeutralForeground3Hover:grey[26],colorNeutralForeground3Pressed:grey[26],colorNeutralForeground3Selected:grey[26],colorNeutralForeground3BrandHover:j[80],colorNeutralForeground3BrandPressed:j[70],colorNeutralForeground3BrandSelected:j[80],colorNeutralForeground4:grey[44],colorNeutralForegroundDisabled:grey[74],colorNeutralForegroundInvertedDisabled:whiteAlpha[40],colorBrandForegroundLink:j[70],colorBrandForegroundLinkHover:j[60],colorBrandForegroundLinkPressed:j[40],colorBrandForegroundLinkSelected:j[70],colorNeutralForeground2Link:grey[26],colorNeutralForeground2LinkHover:grey[14],colorNeutralForeground2LinkPressed:grey[14],colorNeutralForeground2LinkSelected:grey[14],colorCompoundBrandForeground1:j[80],colorCompoundBrandForeground1Hover:j[70],colorCompoundBrandForeground1Pressed:j[60],colorBrandForeground1:j[80],colorBrandForeground2:j[70],colorBrandForeground2Hover:j[60],colorBrandForeground2Pressed:j[30],colorNeutralForeground1Static:grey[14],colorNeutralForegroundStaticInverted:white,colorNeutralForegroundInverted:white,colorNeutralForegroundInvertedHover:white,colorNeutralForegroundInvertedPressed:white,colorNeutralForegroundInvertedSelected:white,colorNeutralForegroundInverted2:white,colorNeutralForegroundOnBrand:white,colorNeutralForegroundInvertedLink:white,colorNeutralForegroundInvertedLinkHover:white,colorNeutralForegroundInvertedLinkPressed:white,colorNeutralForegroundInvertedLinkSelected:white,colorBrandForegroundInverted:j[100],colorBrandForegroundInvertedHover:j[110],colorBrandForegroundInvertedPressed:j[100],colorBrandForegroundOnLight:j[80],colorBrandForegroundOnLightHover:j[70],colorBrandForegroundOnLightPressed:j[50],colorBrandForegroundOnLightSelected:j[60],colorNeutralBackground1:white,colorNeutralBackground1Hover:grey[96],colorNeutralBackground1Pressed:grey[88],colorNeutralBackground1Selected:grey[92],colorNeutralBackground2:grey[98],colorNeutralBackground2Hover:grey[94],colorNeutralBackground2Pressed:grey[86],colorNeutralBackground2Selected:grey[90],colorNeutralBackground3:grey[96],colorNeutralBackground3Hover:grey[92],colorNeutralBackground3Pressed:grey[84],colorNeutralBackground3Selected:grey[88],colorNeutralBackground4:grey[94],colorNeutralBackground4Hover:grey[98],colorNeutralBackground4Pressed:grey[96],colorNeutralBackground4Selected:white,colorNeutralBackground5:grey[92],colorNeutralBackground5Hover:grey[96],colorNeutralBackground5Pressed:grey[94],colorNeutralBackground5Selected:grey[98],colorNeutralBackground6:grey[90],colorNeutralBackgroundInverted:grey[16],colorNeutralBackgroundStatic:grey[20],colorNeutralBackgroundAlpha:whiteAlpha[50],colorNeutralBackgroundAlpha2:whiteAlpha[80],colorSubtleBackground:"transparent",colorSubtleBackgroundHover:grey[96],colorSubtleBackgroundPressed:grey[88],colorSubtleBackgroundSelected:grey[92],colorSubtleBackgroundLightAlphaHover:whiteAlpha[70],colorSubtleBackgroundLightAlphaPressed:whiteAlpha[50],colorSubtleBackgroundLightAlphaSelected:"transparent",colorSubtleBackgroundInverted:"transparent",colorSubtleBackgroundInvertedHover:blackAlpha[10],colorSubtleBackgroundInvertedPressed:blackAlpha[30],colorSubtleBackgroundInvertedSelected:blackAlpha[20],colorTransparentBackground:"transparent",colorTransparentBackgroundHover:"transparent",colorTransparentBackgroundPressed:"transparent",colorTransparentBackgroundSelected:"transparent",colorNeutralBackgroundDisabled:grey[94],colorNeutralBackgroundInvertedDisabled:whiteAlpha[10],colorNeutralStencil1:grey[90],colorNeutralStencil2:grey[98],colorNeutralStencil1Alpha:blackAlpha[10],colorNeutralStencil2Alpha:blackAlpha[5],colorBackgroundOverlay:blackAlpha[40],colorScrollbarOverlay:blackAlpha[50],colorBrandBackground:j[80],colorBrandBackgroundHover:j[70],colorBrandBackgroundPressed:j[40],colorBrandBackgroundSelected:j[60],colorCompoundBrandBackground:j[80],colorCompoundBrandBackgroundHover:j[70],colorCompoundBrandBackgroundPressed:j[60],colorBrandBackgroundStatic:j[80],colorBrandBackground2:j[160],colorBrandBackground2Hover:j[150],colorBrandBackground2Pressed:j[130],colorBrandBackgroundInverted:white,colorBrandBackgroundInvertedHover:j[160],colorBrandBackgroundInvertedPressed:j[140],colorBrandBackgroundInvertedSelected:j[150],colorNeutralStrokeAccessible:grey[38],colorNeutralStrokeAccessibleHover:grey[34],colorNeutralStrokeAccessiblePressed:grey[30],colorNeutralStrokeAccessibleSelected:j[80],colorNeutralStroke1:grey[82],colorNeutralStroke1Hover:grey[78],colorNeutralStroke1Pressed:grey[70],colorNeutralStroke1Selected:grey[74],colorNeutralStroke2:grey[88],colorNeutralStroke3:grey[94],colorNeutralStrokeSubtle:grey[88],colorNeutralStrokeOnBrand:white,colorNeutralStrokeOnBrand2:white,colorNeutralStrokeOnBrand2Hover:white,colorNeutralStrokeOnBrand2Pressed:white,colorNeutralStrokeOnBrand2Selected:white,colorBrandStroke1:j[80],colorBrandStroke2:j[140],colorBrandStroke2Hover:j[120],colorBrandStroke2Pressed:j[80],colorBrandStroke2Contrast:j[140],colorCompoundBrandStroke:j[80],colorCompoundBrandStrokeHover:j[70],colorCompoundBrandStrokePressed:j[60],colorNeutralStrokeDisabled:grey[88],colorNeutralStrokeInvertedDisabled:whiteAlpha[40],colorTransparentStroke:"transparent",colorTransparentStrokeInteractive:"transparent",colorTransparentStrokeDisabled:"transparent",colorNeutralStrokeAlpha:blackAlpha[5],colorNeutralStrokeAlpha2:whiteAlpha[20],colorStrokeFocus1:white,colorStrokeFocus2:black,colorNeutralShadowAmbient:"rgba(0,0,0,0.12)",colorNeutralShadowKey:"rgba(0,0,0,0.14)",colorNeutralShadowAmbientLighter:"rgba(0,0,0,0.06)",colorNeutralShadowKeyLighter:"rgba(0,0,0,0.07)",colorNeutralShadowAmbientDarker:"rgba(0,0,0,0.20)",colorNeutralShadowKeyDarker:"rgba(0,0,0,0.24)",colorBrandShadowAmbient:"rgba(0,0,0,0.30)",colorBrandShadowKey:"rgba(0,0,0,0.25)"}),borderRadius={borderRadiusNone:"0",borderRadiusSmall:"2px",borderRadiusMedium:"4px",borderRadiusLarge:"6px",borderRadiusXLarge:"8px",borderRadiusCircular:"10000px"},curves={curveAccelerateMax:"cubic-bezier(0.9,0.1,1,0.2)",curveAccelerateMid:"cubic-bezier(1,0,1,1)",curveAccelerateMin:"cubic-bezier(0.8,0,0.78,1)",curveDecelerateMax:"cubic-bezier(0.1,0.9,0.2,1)",curveDecelerateMid:"cubic-bezier(0,0,0,1)",curveDecelerateMin:"cubic-bezier(0.33,0,0.1,1)",curveEasyEaseMax:"cubic-bezier(0.8,0,0.2,1)",curveEasyEase:"cubic-bezier(0.33,0,0.67,1)",curveLinear:"cubic-bezier(0,0,1,1)"},durations={durationUltraFast:"50ms",durationFaster:"100ms",durationFast:"150ms",durationNormal:"200ms",durationGentle:"250ms",durationSlow:"300ms",durationSlower:"400ms",durationUltraSlow:"500ms"},fontSizes={fontSizeBase100:"10px",fontSizeBase200:"12px",fontSizeBase300:"14px",fontSizeBase400:"16px",fontSizeBase500:"20px",fontSizeBase600:"24px",fontSizeHero700:"28px",fontSizeHero800:"32px",fontSizeHero900:"40px",fontSizeHero1000:"68px"},lineHeights={lineHeightBase100:"14px",lineHeightBase200:"16px",lineHeightBase300:"20px",lineHeightBase400:"22px",lineHeightBase500:"28px",lineHeightBase600:"32px",lineHeightHero700:"36px",lineHeightHero800:"40px",lineHeightHero900:"52px",lineHeightHero1000:"92px"},fontWeights={fontWeightRegular:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},fontFamilies={fontFamilyBase:"'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif",fontFamilyMonospace:"Consolas, 'Courier New', Courier, monospace",fontFamilyNumeric:"Bahnschrift, 'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif"},spacings={none:"0",xxs:"2px",xs:"4px",sNudge:"6px",s:"8px",mNudge:"10px",m:"12px",l:"16px",xl:"20px",xxl:"24px",xxxl:"32px"},horizontalSpacings={spacingHorizontalNone:spacings.none,spacingHorizontalXXS:spacings.xxs,spacingHorizontalXS:spacings.xs,spacingHorizontalSNudge:spacings.sNudge,spacingHorizontalS:spacings.s,spacingHorizontalMNudge:spacings.mNudge,spacingHorizontalM:spacings.m,spacingHorizontalL:spacings.l,spacingHorizontalXL:spacings.xl,spacingHorizontalXXL:spacings.xxl,spacingHorizontalXXXL:spacings.xxxl},verticalSpacings={spacingVerticalNone:spacings.none,spacingVerticalXXS:spacings.xxs,spacingVerticalXS:spacings.xs,spacingVerticalSNudge:spacings.sNudge,spacingVerticalS:spacings.s,spacingVerticalMNudge:spacings.mNudge,spacingVerticalM:spacings.m,spacingVerticalL:spacings.l,spacingVerticalXL:spacings.xl,spacingVerticalXXL:spacings.xxl,spacingVerticalXXXL:spacings.xxxl},strokeWidths={strokeWidthThin:"1px",strokeWidthThick:"2px",strokeWidthThicker:"3px",strokeWidthThickest:"4px"},tokens={colorNeutralForeground1:"var(--colorNeutralForeground1)",colorNeutralForeground1Hover:"var(--colorNeutralForeground1Hover)",colorNeutralForeground1Pressed:"var(--colorNeutralForeground1Pressed)",colorNeutralForeground1Selected:"var(--colorNeutralForeground1Selected)",colorNeutralForeground2:"var(--colorNeutralForeground2)",colorNeutralForeground2Hover:"var(--colorNeutralForeground2Hover)",colorNeutralForeground2Pressed:"var(--colorNeutralForeground2Pressed)",colorNeutralForeground2Selected:"var(--colorNeutralForeground2Selected)",colorNeutralForeground2BrandHover:"var(--colorNeutralForeground2BrandHover)",colorNeutralForeground2BrandPressed:"var(--colorNeutralForeground2BrandPressed)",colorNeutralForeground2BrandSelected:"var(--colorNeutralForeground2BrandSelected)",colorNeutralForeground3:"var(--colorNeutralForeground3)",colorNeutralForeground3Hover:"var(--colorNeutralForeground3Hover)",colorNeutralForeground3Pressed:"var(--colorNeutralForeground3Pressed)",colorNeutralForeground3Selected:"var(--colorNeutralForeground3Selected)",colorNeutralForeground3BrandHover:"var(--colorNeutralForeground3BrandHover)",colorNeutralForeground3BrandPressed:"var(--colorNeutralForeground3BrandPressed)",colorNeutralForeground3BrandSelected:"var(--colorNeutralForeground3BrandSelected)",colorNeutralForeground4:"var(--colorNeutralForeground4)",colorNeutralForegroundDisabled:"var(--colorNeutralForegroundDisabled)",colorBrandForegroundLink:"var(--colorBrandForegroundLink)",colorBrandForegroundLinkHover:"var(--colorBrandForegroundLinkHover)",colorBrandForegroundLinkPressed:"var(--colorBrandForegroundLinkPressed)",colorBrandForegroundLinkSelected:"var(--colorBrandForegroundLinkSelected)",colorNeutralForeground2Link:"var(--colorNeutralForeground2Link)",colorNeutralForeground2LinkHover:"var(--colorNeutralForeground2LinkHover)",colorNeutralForeground2LinkPressed:"var(--colorNeutralForeground2LinkPressed)",colorNeutralForeground2LinkSelected:"var(--colorNeutralForeground2LinkSelected)",colorCompoundBrandForeground1:"var(--colorCompoundBrandForeground1)",colorCompoundBrandForeground1Hover:"var(--colorCompoundBrandForeground1Hover)",colorCompoundBrandForeground1Pressed:"var(--colorCompoundBrandForeground1Pressed)",colorNeutralForegroundOnBrand:"var(--colorNeutralForegroundOnBrand)",colorNeutralForegroundInverted:"var(--colorNeutralForegroundInverted)",colorNeutralForegroundInvertedHover:"var(--colorNeutralForegroundInvertedHover)",colorNeutralForegroundInvertedPressed:"var(--colorNeutralForegroundInvertedPressed)",colorNeutralForegroundInvertedSelected:"var(--colorNeutralForegroundInvertedSelected)",colorNeutralForegroundInverted2:"var(--colorNeutralForegroundInverted2)",colorNeutralForegroundStaticInverted:"var(--colorNeutralForegroundStaticInverted)",colorNeutralForegroundInvertedLink:"var(--colorNeutralForegroundInvertedLink)",colorNeutralForegroundInvertedLinkHover:"var(--colorNeutralForegroundInvertedLinkHover)",colorNeutralForegroundInvertedLinkPressed:"var(--colorNeutralForegroundInvertedLinkPressed)",colorNeutralForegroundInvertedLinkSelected:"var(--colorNeutralForegroundInvertedLinkSelected)",colorNeutralForegroundInvertedDisabled:"var(--colorNeutralForegroundInvertedDisabled)",colorBrandForeground1:"var(--colorBrandForeground1)",colorBrandForeground2:"var(--colorBrandForeground2)",colorBrandForeground2Hover:"var(--colorBrandForeground2Hover)",colorBrandForeground2Pressed:"var(--colorBrandForeground2Pressed)",colorNeutralForeground1Static:"var(--colorNeutralForeground1Static)",colorBrandForegroundInverted:"var(--colorBrandForegroundInverted)",colorBrandForegroundInvertedHover:"var(--colorBrandForegroundInvertedHover)",colorBrandForegroundInvertedPressed:"var(--colorBrandForegroundInvertedPressed)",colorBrandForegroundOnLight:"var(--colorBrandForegroundOnLight)",colorBrandForegroundOnLightHover:"var(--colorBrandForegroundOnLightHover)",colorBrandForegroundOnLightPressed:"var(--colorBrandForegroundOnLightPressed)",colorBrandForegroundOnLightSelected:"var(--colorBrandForegroundOnLightSelected)",colorNeutralBackground1:"var(--colorNeutralBackground1)",colorNeutralBackground1Hover:"var(--colorNeutralBackground1Hover)",colorNeutralBackground1Pressed:"var(--colorNeutralBackground1Pressed)",colorNeutralBackground1Selected:"var(--colorNeutralBackground1Selected)",colorNeutralBackground2:"var(--colorNeutralBackground2)",colorNeutralBackground2Hover:"var(--colorNeutralBackground2Hover)",colorNeutralBackground2Pressed:"var(--colorNeutralBackground2Pressed)",colorNeutralBackground2Selected:"var(--colorNeutralBackground2Selected)",colorNeutralBackground3:"var(--colorNeutralBackground3)",colorNeutralBackground3Hover:"var(--colorNeutralBackground3Hover)",colorNeutralBackground3Pressed:"var(--colorNeutralBackground3Pressed)",colorNeutralBackground3Selected:"var(--colorNeutralBackground3Selected)",colorNeutralBackground4:"var(--colorNeutralBackground4)",colorNeutralBackground4Hover:"var(--colorNeutralBackground4Hover)",colorNeutralBackground4Pressed:"var(--colorNeutralBackground4Pressed)",colorNeutralBackground4Selected:"var(--colorNeutralBackground4Selected)",colorNeutralBackground5:"var(--colorNeutralBackground5)",colorNeutralBackground5Hover:"var(--colorNeutralBackground5Hover)",colorNeutralBackground5Pressed:"var(--colorNeutralBackground5Pressed)",colorNeutralBackground5Selected:"var(--colorNeutralBackground5Selected)",colorNeutralBackground6:"var(--colorNeutralBackground6)",colorNeutralBackgroundInverted:"var(--colorNeutralBackgroundInverted)",colorNeutralBackgroundStatic:"var(--colorNeutralBackgroundStatic)",colorNeutralBackgroundAlpha:"var(--colorNeutralBackgroundAlpha)",colorNeutralBackgroundAlpha2:"var(--colorNeutralBackgroundAlpha2)",colorSubtleBackground:"var(--colorSubtleBackground)",colorSubtleBackgroundHover:"var(--colorSubtleBackgroundHover)",colorSubtleBackgroundPressed:"var(--colorSubtleBackgroundPressed)",colorSubtleBackgroundSelected:"var(--colorSubtleBackgroundSelected)",colorSubtleBackgroundLightAlphaHover:"var(--colorSubtleBackgroundLightAlphaHover)",colorSubtleBackgroundLightAlphaPressed:"var(--colorSubtleBackgroundLightAlphaPressed)",colorSubtleBackgroundLightAlphaSelected:"var(--colorSubtleBackgroundLightAlphaSelected)",colorSubtleBackgroundInverted:"var(--colorSubtleBackgroundInverted)",colorSubtleBackgroundInvertedHover:"var(--colorSubtleBackgroundInvertedHover)",colorSubtleBackgroundInvertedPressed:"var(--colorSubtleBackgroundInvertedPressed)",colorSubtleBackgroundInvertedSelected:"var(--colorSubtleBackgroundInvertedSelected)",colorTransparentBackground:"var(--colorTransparentBackground)",colorTransparentBackgroundHover:"var(--colorTransparentBackgroundHover)",colorTransparentBackgroundPressed:"var(--colorTransparentBackgroundPressed)",colorTransparentBackgroundSelected:"var(--colorTransparentBackgroundSelected)",colorNeutralBackgroundDisabled:"var(--colorNeutralBackgroundDisabled)",colorNeutralBackgroundInvertedDisabled:"var(--colorNeutralBackgroundInvertedDisabled)",colorNeutralStencil1:"var(--colorNeutralStencil1)",colorNeutralStencil2:"var(--colorNeutralStencil2)",colorNeutralStencil1Alpha:"var(--colorNeutralStencil1Alpha)",colorNeutralStencil2Alpha:"var(--colorNeutralStencil2Alpha)",colorBackgroundOverlay:"var(--colorBackgroundOverlay)",colorScrollbarOverlay:"var(--colorScrollbarOverlay)",colorBrandBackground:"var(--colorBrandBackground)",colorBrandBackgroundHover:"var(--colorBrandBackgroundHover)",colorBrandBackgroundPressed:"var(--colorBrandBackgroundPressed)",colorBrandBackgroundSelected:"var(--colorBrandBackgroundSelected)",colorCompoundBrandBackground:"var(--colorCompoundBrandBackground)",colorCompoundBrandBackgroundHover:"var(--colorCompoundBrandBackgroundHover)",colorCompoundBrandBackgroundPressed:"var(--colorCompoundBrandBackgroundPressed)",colorBrandBackgroundStatic:"var(--colorBrandBackgroundStatic)",colorBrandBackground2:"var(--colorBrandBackground2)",colorBrandBackground2Hover:"var(--colorBrandBackground2Hover)",colorBrandBackground2Pressed:"var(--colorBrandBackground2Pressed)",colorBrandBackgroundInverted:"var(--colorBrandBackgroundInverted)",colorBrandBackgroundInvertedHover:"var(--colorBrandBackgroundInvertedHover)",colorBrandBackgroundInvertedPressed:"var(--colorBrandBackgroundInvertedPressed)",colorBrandBackgroundInvertedSelected:"var(--colorBrandBackgroundInvertedSelected)",colorNeutralStrokeAccessible:"var(--colorNeutralStrokeAccessible)",colorNeutralStrokeAccessibleHover:"var(--colorNeutralStrokeAccessibleHover)",colorNeutralStrokeAccessiblePressed:"var(--colorNeutralStrokeAccessiblePressed)",colorNeutralStrokeAccessibleSelected:"var(--colorNeutralStrokeAccessibleSelected)",colorNeutralStroke1:"var(--colorNeutralStroke1)",colorNeutralStroke1Hover:"var(--colorNeutralStroke1Hover)",colorNeutralStroke1Pressed:"var(--colorNeutralStroke1Pressed)",colorNeutralStroke1Selected:"var(--colorNeutralStroke1Selected)",colorNeutralStroke2:"var(--colorNeutralStroke2)",colorNeutralStroke3:"var(--colorNeutralStroke3)",colorNeutralStrokeSubtle:"var(--colorNeutralStrokeSubtle)",colorNeutralStrokeOnBrand:"var(--colorNeutralStrokeOnBrand)",colorNeutralStrokeOnBrand2:"var(--colorNeutralStrokeOnBrand2)",colorNeutralStrokeOnBrand2Hover:"var(--colorNeutralStrokeOnBrand2Hover)",colorNeutralStrokeOnBrand2Pressed:"var(--colorNeutralStrokeOnBrand2Pressed)",colorNeutralStrokeOnBrand2Selected:"var(--colorNeutralStrokeOnBrand2Selected)",colorBrandStroke1:"var(--colorBrandStroke1)",colorBrandStroke2:"var(--colorBrandStroke2)",colorBrandStroke2Hover:"var(--colorBrandStroke2Hover)",colorBrandStroke2Pressed:"var(--colorBrandStroke2Pressed)",colorBrandStroke2Contrast:"var(--colorBrandStroke2Contrast)",colorCompoundBrandStroke:"var(--colorCompoundBrandStroke)",colorCompoundBrandStrokeHover:"var(--colorCompoundBrandStrokeHover)",colorCompoundBrandStrokePressed:"var(--colorCompoundBrandStrokePressed)",colorNeutralStrokeDisabled:"var(--colorNeutralStrokeDisabled)",colorNeutralStrokeInvertedDisabled:"var(--colorNeutralStrokeInvertedDisabled)",colorTransparentStroke:"var(--colorTransparentStroke)",colorTransparentStrokeInteractive:"var(--colorTransparentStrokeInteractive)",colorTransparentStrokeDisabled:"var(--colorTransparentStrokeDisabled)",colorNeutralStrokeAlpha:"var(--colorNeutralStrokeAlpha)",colorNeutralStrokeAlpha2:"var(--colorNeutralStrokeAlpha2)",colorStrokeFocus1:"var(--colorStrokeFocus1)",colorStrokeFocus2:"var(--colorStrokeFocus2)",colorNeutralShadowAmbient:"var(--colorNeutralShadowAmbient)",colorNeutralShadowKey:"var(--colorNeutralShadowKey)",colorNeutralShadowAmbientLighter:"var(--colorNeutralShadowAmbientLighter)",colorNeutralShadowKeyLighter:"var(--colorNeutralShadowKeyLighter)",colorNeutralShadowAmbientDarker:"var(--colorNeutralShadowAmbientDarker)",colorNeutralShadowKeyDarker:"var(--colorNeutralShadowKeyDarker)",colorBrandShadowAmbient:"var(--colorBrandShadowAmbient)",colorBrandShadowKey:"var(--colorBrandShadowKey)",colorPaletteRedBackground1:"var(--colorPaletteRedBackground1)",colorPaletteRedBackground2:"var(--colorPaletteRedBackground2)",colorPaletteRedBackground3:"var(--colorPaletteRedBackground3)",colorPaletteRedBorderActive:"var(--colorPaletteRedBorderActive)",colorPaletteRedBorder1:"var(--colorPaletteRedBorder1)",colorPaletteRedBorder2:"var(--colorPaletteRedBorder2)",colorPaletteRedForeground1:"var(--colorPaletteRedForeground1)",colorPaletteRedForeground2:"var(--colorPaletteRedForeground2)",colorPaletteRedForeground3:"var(--colorPaletteRedForeground3)",colorPaletteRedForegroundInverted:"var(--colorPaletteRedForegroundInverted)",colorPaletteGreenBackground1:"var(--colorPaletteGreenBackground1)",colorPaletteGreenBackground2:"var(--colorPaletteGreenBackground2)",colorPaletteGreenBackground3:"var(--colorPaletteGreenBackground3)",colorPaletteGreenBorderActive:"var(--colorPaletteGreenBorderActive)",colorPaletteGreenBorder1:"var(--colorPaletteGreenBorder1)",colorPaletteGreenBorder2:"var(--colorPaletteGreenBorder2)",colorPaletteGreenForeground1:"var(--colorPaletteGreenForeground1)",colorPaletteGreenForeground2:"var(--colorPaletteGreenForeground2)",colorPaletteGreenForeground3:"var(--colorPaletteGreenForeground3)",colorPaletteGreenForegroundInverted:"var(--colorPaletteGreenForegroundInverted)",colorPaletteDarkOrangeBackground1:"var(--colorPaletteDarkOrangeBackground1)",colorPaletteDarkOrangeBackground2:"var(--colorPaletteDarkOrangeBackground2)",colorPaletteDarkOrangeBackground3:"var(--colorPaletteDarkOrangeBackground3)",colorPaletteDarkOrangeBorderActive:"var(--colorPaletteDarkOrangeBorderActive)",colorPaletteDarkOrangeBorder1:"var(--colorPaletteDarkOrangeBorder1)",colorPaletteDarkOrangeBorder2:"var(--colorPaletteDarkOrangeBorder2)",colorPaletteDarkOrangeForeground1:"var(--colorPaletteDarkOrangeForeground1)",colorPaletteDarkOrangeForeground2:"var(--colorPaletteDarkOrangeForeground2)",colorPaletteDarkOrangeForeground3:"var(--colorPaletteDarkOrangeForeground3)",colorPaletteYellowBackground1:"var(--colorPaletteYellowBackground1)",colorPaletteYellowBackground2:"var(--colorPaletteYellowBackground2)",colorPaletteYellowBackground3:"var(--colorPaletteYellowBackground3)",colorPaletteYellowBorderActive:"var(--colorPaletteYellowBorderActive)",colorPaletteYellowBorder1:"var(--colorPaletteYellowBorder1)",colorPaletteYellowBorder2:"var(--colorPaletteYellowBorder2)",colorPaletteYellowForeground1:"var(--colorPaletteYellowForeground1)",colorPaletteYellowForeground2:"var(--colorPaletteYellowForeground2)",colorPaletteYellowForeground3:"var(--colorPaletteYellowForeground3)",colorPaletteYellowForegroundInverted:"var(--colorPaletteYellowForegroundInverted)",colorPaletteBerryBackground1:"var(--colorPaletteBerryBackground1)",colorPaletteBerryBackground2:"var(--colorPaletteBerryBackground2)",colorPaletteBerryBackground3:"var(--colorPaletteBerryBackground3)",colorPaletteBerryBorderActive:"var(--colorPaletteBerryBorderActive)",colorPaletteBerryBorder1:"var(--colorPaletteBerryBorder1)",colorPaletteBerryBorder2:"var(--colorPaletteBerryBorder2)",colorPaletteBerryForeground1:"var(--colorPaletteBerryForeground1)",colorPaletteBerryForeground2:"var(--colorPaletteBerryForeground2)",colorPaletteBerryForeground3:"var(--colorPaletteBerryForeground3)",colorPaletteMarigoldBackground1:"var(--colorPaletteMarigoldBackground1)",colorPaletteMarigoldBackground2:"var(--colorPaletteMarigoldBackground2)",colorPaletteMarigoldBackground3:"var(--colorPaletteMarigoldBackground3)",colorPaletteMarigoldBorderActive:"var(--colorPaletteMarigoldBorderActive)",colorPaletteMarigoldBorder1:"var(--colorPaletteMarigoldBorder1)",colorPaletteMarigoldBorder2:"var(--colorPaletteMarigoldBorder2)",colorPaletteMarigoldForeground1:"var(--colorPaletteMarigoldForeground1)",colorPaletteMarigoldForeground2:"var(--colorPaletteMarigoldForeground2)",colorPaletteMarigoldForeground3:"var(--colorPaletteMarigoldForeground3)",colorPaletteLightGreenBackground1:"var(--colorPaletteLightGreenBackground1)",colorPaletteLightGreenBackground2:"var(--colorPaletteLightGreenBackground2)",colorPaletteLightGreenBackground3:"var(--colorPaletteLightGreenBackground3)",colorPaletteLightGreenBorderActive:"var(--colorPaletteLightGreenBorderActive)",colorPaletteLightGreenBorder1:"var(--colorPaletteLightGreenBorder1)",colorPaletteLightGreenBorder2:"var(--colorPaletteLightGreenBorder2)",colorPaletteLightGreenForeground1:"var(--colorPaletteLightGreenForeground1)",colorPaletteLightGreenForeground2:"var(--colorPaletteLightGreenForeground2)",colorPaletteLightGreenForeground3:"var(--colorPaletteLightGreenForeground3)",colorPaletteAnchorBackground2:"var(--colorPaletteAnchorBackground2)",colorPaletteAnchorBorderActive:"var(--colorPaletteAnchorBorderActive)",colorPaletteAnchorForeground2:"var(--colorPaletteAnchorForeground2)",colorPaletteBeigeBackground2:"var(--colorPaletteBeigeBackground2)",colorPaletteBeigeBorderActive:"var(--colorPaletteBeigeBorderActive)",colorPaletteBeigeForeground2:"var(--colorPaletteBeigeForeground2)",colorPaletteBlueBackground2:"var(--colorPaletteBlueBackground2)",colorPaletteBlueBorderActive:"var(--colorPaletteBlueBorderActive)",colorPaletteBlueForeground2:"var(--colorPaletteBlueForeground2)",colorPaletteBrassBackground2:"var(--colorPaletteBrassBackground2)",colorPaletteBrassBorderActive:"var(--colorPaletteBrassBorderActive)",colorPaletteBrassForeground2:"var(--colorPaletteBrassForeground2)",colorPaletteBrownBackground2:"var(--colorPaletteBrownBackground2)",colorPaletteBrownBorderActive:"var(--colorPaletteBrownBorderActive)",colorPaletteBrownForeground2:"var(--colorPaletteBrownForeground2)",colorPaletteCornflowerBackground2:"var(--colorPaletteCornflowerBackground2)",colorPaletteCornflowerBorderActive:"var(--colorPaletteCornflowerBorderActive)",colorPaletteCornflowerForeground2:"var(--colorPaletteCornflowerForeground2)",colorPaletteCranberryBackground2:"var(--colorPaletteCranberryBackground2)",colorPaletteCranberryBorderActive:"var(--colorPaletteCranberryBorderActive)",colorPaletteCranberryForeground2:"var(--colorPaletteCranberryForeground2)",colorPaletteDarkGreenBackground2:"var(--colorPaletteDarkGreenBackground2)",colorPaletteDarkGreenBorderActive:"var(--colorPaletteDarkGreenBorderActive)",colorPaletteDarkGreenForeground2:"var(--colorPaletteDarkGreenForeground2)",colorPaletteDarkRedBackground2:"var(--colorPaletteDarkRedBackground2)",colorPaletteDarkRedBorderActive:"var(--colorPaletteDarkRedBorderActive)",colorPaletteDarkRedForeground2:"var(--colorPaletteDarkRedForeground2)",colorPaletteForestBackground2:"var(--colorPaletteForestBackground2)",colorPaletteForestBorderActive:"var(--colorPaletteForestBorderActive)",colorPaletteForestForeground2:"var(--colorPaletteForestForeground2)",colorPaletteGoldBackground2:"var(--colorPaletteGoldBackground2)",colorPaletteGoldBorderActive:"var(--colorPaletteGoldBorderActive)",colorPaletteGoldForeground2:"var(--colorPaletteGoldForeground2)",colorPaletteGrapeBackground2:"var(--colorPaletteGrapeBackground2)",colorPaletteGrapeBorderActive:"var(--colorPaletteGrapeBorderActive)",colorPaletteGrapeForeground2:"var(--colorPaletteGrapeForeground2)",colorPaletteLavenderBackground2:"var(--colorPaletteLavenderBackground2)",colorPaletteLavenderBorderActive:"var(--colorPaletteLavenderBorderActive)",colorPaletteLavenderForeground2:"var(--colorPaletteLavenderForeground2)",colorPaletteLightTealBackground2:"var(--colorPaletteLightTealBackground2)",colorPaletteLightTealBorderActive:"var(--colorPaletteLightTealBorderActive)",colorPaletteLightTealForeground2:"var(--colorPaletteLightTealForeground2)",colorPaletteLilacBackground2:"var(--colorPaletteLilacBackground2)",colorPaletteLilacBorderActive:"var(--colorPaletteLilacBorderActive)",colorPaletteLilacForeground2:"var(--colorPaletteLilacForeground2)",colorPaletteMagentaBackground2:"var(--colorPaletteMagentaBackground2)",colorPaletteMagentaBorderActive:"var(--colorPaletteMagentaBorderActive)",colorPaletteMagentaForeground2:"var(--colorPaletteMagentaForeground2)",colorPaletteMinkBackground2:"var(--colorPaletteMinkBackground2)",colorPaletteMinkBorderActive:"var(--colorPaletteMinkBorderActive)",colorPaletteMinkForeground2:"var(--colorPaletteMinkForeground2)",colorPaletteNavyBackground2:"var(--colorPaletteNavyBackground2)",colorPaletteNavyBorderActive:"var(--colorPaletteNavyBorderActive)",colorPaletteNavyForeground2:"var(--colorPaletteNavyForeground2)",colorPalettePeachBackground2:"var(--colorPalettePeachBackground2)",colorPalettePeachBorderActive:"var(--colorPalettePeachBorderActive)",colorPalettePeachForeground2:"var(--colorPalettePeachForeground2)",colorPalettePinkBackground2:"var(--colorPalettePinkBackground2)",colorPalettePinkBorderActive:"var(--colorPalettePinkBorderActive)",colorPalettePinkForeground2:"var(--colorPalettePinkForeground2)",colorPalettePlatinumBackground2:"var(--colorPalettePlatinumBackground2)",colorPalettePlatinumBorderActive:"var(--colorPalettePlatinumBorderActive)",colorPalettePlatinumForeground2:"var(--colorPalettePlatinumForeground2)",colorPalettePlumBackground2:"var(--colorPalettePlumBackground2)",colorPalettePlumBorderActive:"var(--colorPalettePlumBorderActive)",colorPalettePlumForeground2:"var(--colorPalettePlumForeground2)",colorPalettePumpkinBackground2:"var(--colorPalettePumpkinBackground2)",colorPalettePumpkinBorderActive:"var(--colorPalettePumpkinBorderActive)",colorPalettePumpkinForeground2:"var(--colorPalettePumpkinForeground2)",colorPalettePurpleBackground2:"var(--colorPalettePurpleBackground2)",colorPalettePurpleBorderActive:"var(--colorPalettePurpleBorderActive)",colorPalettePurpleForeground2:"var(--colorPalettePurpleForeground2)",colorPaletteRoyalBlueBackground2:"var(--colorPaletteRoyalBlueBackground2)",colorPaletteRoyalBlueBorderActive:"var(--colorPaletteRoyalBlueBorderActive)",colorPaletteRoyalBlueForeground2:"var(--colorPaletteRoyalBlueForeground2)",colorPaletteSeafoamBackground2:"var(--colorPaletteSeafoamBackground2)",colorPaletteSeafoamBorderActive:"var(--colorPaletteSeafoamBorderActive)",colorPaletteSeafoamForeground2:"var(--colorPaletteSeafoamForeground2)",colorPaletteSteelBackground2:"var(--colorPaletteSteelBackground2)",colorPaletteSteelBorderActive:"var(--colorPaletteSteelBorderActive)",colorPaletteSteelForeground2:"var(--colorPaletteSteelForeground2)",colorPaletteTealBackground2:"var(--colorPaletteTealBackground2)",colorPaletteTealBorderActive:"var(--colorPaletteTealBorderActive)",colorPaletteTealForeground2:"var(--colorPaletteTealForeground2)",colorStatusSuccessBackground1:"var(--colorStatusSuccessBackground1)",colorStatusSuccessBackground2:"var(--colorStatusSuccessBackground2)",colorStatusSuccessBackground3:"var(--colorStatusSuccessBackground3)",colorStatusSuccessForeground1:"var(--colorStatusSuccessForeground1)",colorStatusSuccessForeground2:"var(--colorStatusSuccessForeground2)",colorStatusSuccessForeground3:"var(--colorStatusSuccessForeground3)",colorStatusSuccessForegroundInverted:"var(--colorStatusSuccessForegroundInverted)",colorStatusSuccessBorderActive:"var(--colorStatusSuccessBorderActive)",colorStatusSuccessBorder1:"var(--colorStatusSuccessBorder1)",colorStatusSuccessBorder2:"var(--colorStatusSuccessBorder2)",colorStatusWarningBackground1:"var(--colorStatusWarningBackground1)",colorStatusWarningBackground2:"var(--colorStatusWarningBackground2)",colorStatusWarningBackground3:"var(--colorStatusWarningBackground3)",colorStatusWarningForeground1:"var(--colorStatusWarningForeground1)",colorStatusWarningForeground2:"var(--colorStatusWarningForeground2)",colorStatusWarningForeground3:"var(--colorStatusWarningForeground3)",colorStatusWarningForegroundInverted:"var(--colorStatusWarningForegroundInverted)",colorStatusWarningBorderActive:"var(--colorStatusWarningBorderActive)",colorStatusWarningBorder1:"var(--colorStatusWarningBorder1)",colorStatusWarningBorder2:"var(--colorStatusWarningBorder2)",colorStatusDangerBackground1:"var(--colorStatusDangerBackground1)",colorStatusDangerBackground2:"var(--colorStatusDangerBackground2)",colorStatusDangerBackground3:"var(--colorStatusDangerBackground3)",colorStatusDangerForeground1:"var(--colorStatusDangerForeground1)",colorStatusDangerForeground2:"var(--colorStatusDangerForeground2)",colorStatusDangerForeground3:"var(--colorStatusDangerForeground3)",colorStatusDangerForegroundInverted:"var(--colorStatusDangerForegroundInverted)",colorStatusDangerBorderActive:"var(--colorStatusDangerBorderActive)",colorStatusDangerBorder1:"var(--colorStatusDangerBorder1)",colorStatusDangerBorder2:"var(--colorStatusDangerBorder2)",borderRadiusNone:"var(--borderRadiusNone)",borderRadiusSmall:"var(--borderRadiusSmall)",borderRadiusMedium:"var(--borderRadiusMedium)",borderRadiusLarge:"var(--borderRadiusLarge)",borderRadiusXLarge:"var(--borderRadiusXLarge)",borderRadiusCircular:"var(--borderRadiusCircular)",fontFamilyBase:"var(--fontFamilyBase)",fontFamilyMonospace:"var(--fontFamilyMonospace)",fontFamilyNumeric:"var(--fontFamilyNumeric)",fontSizeBase100:"var(--fontSizeBase100)",fontSizeBase200:"var(--fontSizeBase200)",fontSizeBase300:"var(--fontSizeBase300)",fontSizeBase400:"var(--fontSizeBase400)",fontSizeBase500:"var(--fontSizeBase500)",fontSizeBase600:"var(--fontSizeBase600)",fontSizeHero700:"var(--fontSizeHero700)",fontSizeHero800:"var(--fontSizeHero800)",fontSizeHero900:"var(--fontSizeHero900)",fontSizeHero1000:"var(--fontSizeHero1000)",fontWeightRegular:"var(--fontWeightRegular)",fontWeightMedium:"var(--fontWeightMedium)",fontWeightSemibold:"var(--fontWeightSemibold)",fontWeightBold:"var(--fontWeightBold)",lineHeightBase100:"var(--lineHeightBase100)",lineHeightBase200:"var(--lineHeightBase200)",lineHeightBase300:"var(--lineHeightBase300)",lineHeightBase400:"var(--lineHeightBase400)",lineHeightBase500:"var(--lineHeightBase500)",lineHeightBase600:"var(--lineHeightBase600)",lineHeightHero700:"var(--lineHeightHero700)",lineHeightHero800:"var(--lineHeightHero800)",lineHeightHero900:"var(--lineHeightHero900)",lineHeightHero1000:"var(--lineHeightHero1000)",shadow2:"var(--shadow2)",shadow4:"var(--shadow4)",shadow8:"var(--shadow8)",shadow16:"var(--shadow16)",shadow28:"var(--shadow28)",shadow64:"var(--shadow64)",shadow2Brand:"var(--shadow2Brand)",shadow4Brand:"var(--shadow4Brand)",shadow8Brand:"var(--shadow8Brand)",shadow16Brand:"var(--shadow16Brand)",shadow28Brand:"var(--shadow28Brand)",shadow64Brand:"var(--shadow64Brand)",strokeWidthThin:"var(--strokeWidthThin)",strokeWidthThick:"var(--strokeWidthThick)",strokeWidthThicker:"var(--strokeWidthThicker)",strokeWidthThickest:"var(--strokeWidthThickest)",spacingHorizontalNone:"var(--spacingHorizontalNone)",spacingHorizontalXXS:"var(--spacingHorizontalXXS)",spacingHorizontalXS:"var(--spacingHorizontalXS)",spacingHorizontalSNudge:"var(--spacingHorizontalSNudge)",spacingHorizontalS:"var(--spacingHorizontalS)",spacingHorizontalMNudge:"var(--spacingHorizontalMNudge)",spacingHorizontalM:"var(--spacingHorizontalM)",spacingHorizontalL:"var(--spacingHorizontalL)",spacingHorizontalXL:"var(--spacingHorizontalXL)",spacingHorizontalXXL:"var(--spacingHorizontalXXL)",spacingHorizontalXXXL:"var(--spacingHorizontalXXXL)",spacingVerticalNone:"var(--spacingVerticalNone)",spacingVerticalXXS:"var(--spacingVerticalXXS)",spacingVerticalXS:"var(--spacingVerticalXS)",spacingVerticalSNudge:"var(--spacingVerticalSNudge)",spacingVerticalS:"var(--spacingVerticalS)",spacingVerticalMNudge:"var(--spacingVerticalMNudge)",spacingVerticalM:"var(--spacingVerticalM)",spacingVerticalL:"var(--spacingVerticalL)",spacingVerticalXL:"var(--spacingVerticalXL)",spacingVerticalXXL:"var(--spacingVerticalXXL)",spacingVerticalXXXL:"var(--spacingVerticalXXXL)",durationUltraFast:"var(--durationUltraFast)",durationFaster:"var(--durationFaster)",durationFast:"var(--durationFast)",durationNormal:"var(--durationNormal)",durationGentle:"var(--durationGentle)",durationSlow:"var(--durationSlow)",durationSlower:"var(--durationSlower)",durationUltraSlow:"var(--durationUltraSlow)",curveAccelerateMax:"var(--curveAccelerateMax)",curveAccelerateMid:"var(--curveAccelerateMid)",curveAccelerateMin:"var(--curveAccelerateMin)",curveDecelerateMax:"var(--curveDecelerateMax)",curveDecelerateMid:"var(--curveDecelerateMid)",curveDecelerateMin:"var(--curveDecelerateMin)",curveEasyEaseMax:"var(--curveEasyEaseMax)",curveEasyEase:"var(--curveEasyEase)",curveLinear:"var(--curveLinear)"};function createShadowTokens(j,_e,et=""){return{[`shadow2${et}`]:`0 0 2px ${j}, 0 1px 2px ${_e}`,[`shadow4${et}`]:`0 0 2px ${j}, 0 2px 4px ${_e}`,[`shadow8${et}`]:`0 0 2px ${j}, 0 4px 8px ${_e}`,[`shadow16${et}`]:`0 0 2px ${j}, 0 8px 16px ${_e}`,[`shadow28${et}`]:`0 0 8px ${j}, 0 14px 28px ${_e}`,[`shadow64${et}`]:`0 0 8px ${j}, 0 32px 64px ${_e}`}}const createLightTheme=j=>{const _e=generateColorTokens$1(j);return{...borderRadius,...fontSizes,...lineHeights,...fontFamilies,...fontWeights,...strokeWidths,...horizontalSpacings,...verticalSpacings,...durations,...curves,..._e,...colorPaletteTokens$1,...colorStatusTokens$1,...createShadowTokens(_e.colorNeutralShadowAmbient,_e.colorNeutralShadowKey),...createShadowTokens(_e.colorBrandShadowAmbient,_e.colorBrandShadowKey,"Brand")}},brandWeb={10:"#061724",20:"#082338",30:"#0a2e4a",40:"#0c3b5e",50:"#0e4775",60:"#0f548c",70:"#115ea3",80:"#0f6cbd",90:"#2886de",100:"#479ef5",110:"#62abf5",120:"#77b7f7",130:"#96c6fa",140:"#b4d6fa",150:"#cfe4fa",160:"#ebf3fc"},statusColorPaletteTokens=statusSharedColorNames.reduce((j,_e)=>{const et=_e.slice(0,1).toUpperCase()+_e.slice(1),tt={[`colorPalette${et}Background1`]:statusSharedColors[_e].shade40,[`colorPalette${et}Background2`]:statusSharedColors[_e].shade30,[`colorPalette${et}Background3`]:statusSharedColors[_e].primary,[`colorPalette${et}Foreground1`]:statusSharedColors[_e].tint30,[`colorPalette${et}Foreground2`]:statusSharedColors[_e].tint40,[`colorPalette${et}Foreground3`]:statusSharedColors[_e].tint20,[`colorPalette${et}BorderActive`]:statusSharedColors[_e].tint30,[`colorPalette${et}Border1`]:statusSharedColors[_e].primary,[`colorPalette${et}Border2`]:statusSharedColors[_e].tint20};return Object.assign(j,tt)},{});statusColorPaletteTokens.colorPaletteRedForeground3=statusSharedColors.red.tint30;statusColorPaletteTokens.colorPaletteRedBorder2=statusSharedColors.red.tint30;statusColorPaletteTokens.colorPaletteGreenForeground3=statusSharedColors.green.tint40;statusColorPaletteTokens.colorPaletteGreenBorder2=statusSharedColors.green.tint40;statusColorPaletteTokens.colorPaletteDarkOrangeForeground3=statusSharedColors.darkOrange.tint30;statusColorPaletteTokens.colorPaletteDarkOrangeBorder2=statusSharedColors.darkOrange.tint30;statusColorPaletteTokens.colorPaletteRedForegroundInverted=statusSharedColors.red.primary;statusColorPaletteTokens.colorPaletteGreenForegroundInverted=statusSharedColors.green.primary;statusColorPaletteTokens.colorPaletteYellowForegroundInverted=statusSharedColors.yellow.shade30;const personaColorPaletteTokens=personaSharedColorNames.reduce((j,_e)=>{const et=_e.slice(0,1).toUpperCase()+_e.slice(1),tt={[`colorPalette${et}Background2`]:personaSharedColors[_e].shade30,[`colorPalette${et}Foreground2`]:personaSharedColors[_e].tint40,[`colorPalette${et}BorderActive`]:personaSharedColors[_e].tint30};return Object.assign(j,tt)},{});personaColorPaletteTokens.colorPaletteDarkRedBackground2=personaSharedColors.darkRed.shade20;personaColorPaletteTokens.colorPalettePlumBackground2=personaSharedColors.plum.shade20;const colorPaletteTokens={...statusColorPaletteTokens,...personaColorPaletteTokens},colorStatusTokens=Object.entries(statusColorMapping).reduce((j,[_e,et])=>{const tt=_e.slice(0,1).toUpperCase()+_e.slice(1),rt={[`colorStatus${tt}Background1`]:mappedStatusColors[et].shade40,[`colorStatus${tt}Background2`]:mappedStatusColors[et].shade30,[`colorStatus${tt}Background3`]:mappedStatusColors[et].primary,[`colorStatus${tt}Foreground1`]:mappedStatusColors[et].tint30,[`colorStatus${tt}Foreground2`]:mappedStatusColors[et].tint40,[`colorStatus${tt}Foreground3`]:mappedStatusColors[et].tint20,[`colorStatus${tt}BorderActive`]:mappedStatusColors[et].tint30,[`colorStatus${tt}ForegroundInverted`]:mappedStatusColors[et].shade10,[`colorStatus${tt}Border1`]:mappedStatusColors[et].primary,[`colorStatus${tt}Border2`]:mappedStatusColors[et].tint20};return Object.assign(j,rt)},{});colorStatusTokens.colorStatusDangerForeground3=mappedStatusColors[statusColorMapping.danger].tint30;colorStatusTokens.colorStatusDangerBorder2=mappedStatusColors[statusColorMapping.danger].tint30;colorStatusTokens.colorStatusSuccessForeground3=mappedStatusColors[statusColorMapping.success].tint40;colorStatusTokens.colorStatusSuccessBorder2=mappedStatusColors[statusColorMapping.success].tint40;colorStatusTokens.colorStatusWarningForegroundInverted=mappedStatusColors[statusColorMapping.warning].shade20;const webLightTheme=createLightTheme(brandWeb),generateColorTokens=j=>({colorNeutralForeground1:white,colorNeutralForeground1Hover:white,colorNeutralForeground1Pressed:white,colorNeutralForeground1Selected:white,colorNeutralForeground2:grey[84],colorNeutralForeground2Hover:white,colorNeutralForeground2Pressed:white,colorNeutralForeground2Selected:white,colorNeutralForeground2BrandHover:j[100],colorNeutralForeground2BrandPressed:j[90],colorNeutralForeground2BrandSelected:j[100],colorNeutralForeground3:grey[68],colorNeutralForeground3Hover:grey[84],colorNeutralForeground3Pressed:grey[84],colorNeutralForeground3Selected:grey[84],colorNeutralForeground3BrandHover:j[100],colorNeutralForeground3BrandPressed:j[90],colorNeutralForeground3BrandSelected:j[100],colorNeutralForeground4:grey[60],colorNeutralForegroundDisabled:grey[36],colorNeutralForegroundInvertedDisabled:whiteAlpha[40],colorBrandForegroundLink:j[100],colorBrandForegroundLinkHover:j[110],colorBrandForegroundLinkPressed:j[90],colorBrandForegroundLinkSelected:j[100],colorNeutralForeground2Link:grey[84],colorNeutralForeground2LinkHover:white,colorNeutralForeground2LinkPressed:white,colorNeutralForeground2LinkSelected:white,colorCompoundBrandForeground1:j[100],colorCompoundBrandForeground1Hover:j[110],colorCompoundBrandForeground1Pressed:j[90],colorBrandForeground1:j[100],colorBrandForeground2:j[110],colorBrandForeground2Hover:j[130],colorBrandForeground2Pressed:j[160],colorNeutralForeground1Static:grey[14],colorNeutralForegroundStaticInverted:white,colorNeutralForegroundInverted:grey[14],colorNeutralForegroundInvertedHover:grey[14],colorNeutralForegroundInvertedPressed:grey[14],colorNeutralForegroundInvertedSelected:grey[14],colorNeutralForegroundInverted2:grey[14],colorNeutralForegroundOnBrand:white,colorNeutralForegroundInvertedLink:white,colorNeutralForegroundInvertedLinkHover:white,colorNeutralForegroundInvertedLinkPressed:white,colorNeutralForegroundInvertedLinkSelected:white,colorBrandForegroundInverted:j[80],colorBrandForegroundInvertedHover:j[70],colorBrandForegroundInvertedPressed:j[60],colorBrandForegroundOnLight:j[80],colorBrandForegroundOnLightHover:j[70],colorBrandForegroundOnLightPressed:j[50],colorBrandForegroundOnLightSelected:j[60],colorNeutralBackground1:grey[16],colorNeutralBackground1Hover:grey[24],colorNeutralBackground1Pressed:grey[12],colorNeutralBackground1Selected:grey[22],colorNeutralBackground2:grey[12],colorNeutralBackground2Hover:grey[20],colorNeutralBackground2Pressed:grey[8],colorNeutralBackground2Selected:grey[18],colorNeutralBackground3:grey[8],colorNeutralBackground3Hover:grey[16],colorNeutralBackground3Pressed:grey[4],colorNeutralBackground3Selected:grey[14],colorNeutralBackground4:grey[4],colorNeutralBackground4Hover:grey[12],colorNeutralBackground4Pressed:black,colorNeutralBackground4Selected:grey[10],colorNeutralBackground5:black,colorNeutralBackground5Hover:grey[8],colorNeutralBackground5Pressed:grey[2],colorNeutralBackground5Selected:grey[6],colorNeutralBackground6:grey[20],colorNeutralBackgroundInverted:white,colorNeutralBackgroundStatic:grey[24],colorNeutralBackgroundAlpha:grey10Alpha[50],colorNeutralBackgroundAlpha2:grey12Alpha[70],colorSubtleBackground:"transparent",colorSubtleBackgroundHover:grey[22],colorSubtleBackgroundPressed:grey[18],colorSubtleBackgroundSelected:grey[20],colorSubtleBackgroundLightAlphaHover:grey14Alpha[80],colorSubtleBackgroundLightAlphaPressed:grey14Alpha[50],colorSubtleBackgroundLightAlphaSelected:"transparent",colorSubtleBackgroundInverted:"transparent",colorSubtleBackgroundInvertedHover:blackAlpha[10],colorSubtleBackgroundInvertedPressed:blackAlpha[30],colorSubtleBackgroundInvertedSelected:blackAlpha[20],colorTransparentBackground:"transparent",colorTransparentBackgroundHover:"transparent",colorTransparentBackgroundPressed:"transparent",colorTransparentBackgroundSelected:"transparent",colorNeutralBackgroundDisabled:grey[8],colorNeutralBackgroundInvertedDisabled:whiteAlpha[10],colorNeutralStencil1:grey[34],colorNeutralStencil2:grey[20],colorNeutralStencil1Alpha:whiteAlpha[10],colorNeutralStencil2Alpha:whiteAlpha[5],colorBackgroundOverlay:blackAlpha[50],colorScrollbarOverlay:whiteAlpha[60],colorBrandBackground:j[70],colorBrandBackgroundHover:j[80],colorBrandBackgroundPressed:j[40],colorBrandBackgroundSelected:j[60],colorCompoundBrandBackground:j[100],colorCompoundBrandBackgroundHover:j[110],colorCompoundBrandBackgroundPressed:j[90],colorBrandBackgroundStatic:j[80],colorBrandBackground2:j[20],colorBrandBackground2Hover:j[40],colorBrandBackground2Pressed:j[10],colorBrandBackgroundInverted:white,colorBrandBackgroundInvertedHover:j[160],colorBrandBackgroundInvertedPressed:j[140],colorBrandBackgroundInvertedSelected:j[150],colorNeutralStrokeAccessible:grey[68],colorNeutralStrokeAccessibleHover:grey[74],colorNeutralStrokeAccessiblePressed:grey[70],colorNeutralStrokeAccessibleSelected:j[100],colorNeutralStroke1:grey[40],colorNeutralStroke1Hover:grey[46],colorNeutralStroke1Pressed:grey[42],colorNeutralStroke1Selected:grey[44],colorNeutralStroke2:grey[32],colorNeutralStroke3:grey[24],colorNeutralStrokeSubtle:grey[4],colorNeutralStrokeOnBrand:grey[16],colorNeutralStrokeOnBrand2:white,colorNeutralStrokeOnBrand2Hover:white,colorNeutralStrokeOnBrand2Pressed:white,colorNeutralStrokeOnBrand2Selected:white,colorBrandStroke1:j[100],colorBrandStroke2:j[50],colorBrandStroke2Hover:j[50],colorBrandStroke2Pressed:j[30],colorBrandStroke2Contrast:j[50],colorCompoundBrandStroke:j[100],colorCompoundBrandStrokeHover:j[110],colorCompoundBrandStrokePressed:j[90],colorNeutralStrokeDisabled:grey[26],colorNeutralStrokeInvertedDisabled:whiteAlpha[40],colorTransparentStroke:"transparent",colorTransparentStrokeInteractive:"transparent",colorTransparentStrokeDisabled:"transparent",colorNeutralStrokeAlpha:whiteAlpha[10],colorNeutralStrokeAlpha2:whiteAlpha[20],colorStrokeFocus1:black,colorStrokeFocus2:white,colorNeutralShadowAmbient:"rgba(0,0,0,0.24)",colorNeutralShadowKey:"rgba(0,0,0,0.28)",colorNeutralShadowAmbientLighter:"rgba(0,0,0,0.12)",colorNeutralShadowKeyLighter:"rgba(0,0,0,0.14)",colorNeutralShadowAmbientDarker:"rgba(0,0,0,0.40)",colorNeutralShadowKeyDarker:"rgba(0,0,0,0.48)",colorBrandShadowAmbient:"rgba(0,0,0,0.30)",colorBrandShadowKey:"rgba(0,0,0,0.25)"}),createDarkTheme=j=>{const _e=generateColorTokens(j);return{...borderRadius,...fontSizes,...lineHeights,...fontFamilies,...fontWeights,...strokeWidths,...horizontalSpacings,...verticalSpacings,...durations,...curves,..._e,...colorPaletteTokens,...colorStatusTokens,...createShadowTokens(_e.colorNeutralShadowAmbient,_e.colorNeutralShadowKey),...createShadowTokens(_e.colorBrandShadowAmbient,_e.colorBrandShadowKey,"Brand")}},webDarkTheme=createDarkTheme(brandWeb),fluentProviderClassNames={root:"fui-FluentProvider"},useStyles$z=__styles$1({root:{sj55zd:"f19n0e5",De3pzq:"fxugw4r",fsow6f:["f1o700av","fes3tcz"],Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"}},{d:[".f19n0e5{color:var(--colorNeutralForeground1);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1o700av{text-align:left;}",".fes3tcz{text-align:right;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}"]}),useFluentProviderStyles_unstable=j=>{const _e=useRenderer(),et=useStyles$z({dir:j.dir,renderer:_e});return j.root.className=mergeClasses(fluentProviderClassNames.root,j.themeClassName,et.root,j.root.className),j},useInsertionEffect$1=reactExports.useInsertionEffect?reactExports.useInsertionEffect:useIsomorphicLayoutEffect$1,createStyleTag=(j,_e)=>{if(!j)return;const et=j.createElement("style");return Object.keys(_e).forEach(tt=>{et.setAttribute(tt,_e[tt])}),j.head.appendChild(et),et},insertSheet=(j,_e)=>{const et=j.sheet;et&&(et.cssRules.length>0&&et.deleteRule(0),et.insertRule(_e,0))},useFluentProviderThemeStyleTag=j=>{const{targetDocument:_e,theme:et,rendererAttributes:tt}=j,rt=reactExports.useRef(),nt=useId$1(fluentProviderClassNames.root),ot=tt,it=reactExports.useMemo(()=>createCSSRuleFromTheme(`.${nt}`,et),[et,nt]);return useHandleSSRStyleElements(_e,nt),useInsertionEffect$1(()=>{const st=_e==null?void 0:_e.getElementById(nt);return st?rt.current=st:(rt.current=createStyleTag(_e,{...ot,id:nt}),rt.current&&insertSheet(rt.current,it)),()=>{var lt;(lt=rt.current)===null||lt===void 0||lt.remove()}},[nt,_e,it,ot]),{styleTagId:nt,rule:it}};function useHandleSSRStyleElements(j,_e){reactExports.useState(()=>{if(!j)return;const et=j.getElementById(_e);et&&j.head.append(et)})}const EMPTY_OBJECT={},useFluentProvider_unstable=(j,_e)=>{const et=useFluent(),tt=useTheme(),rt=useOverrides(),nt=reactExports.useContext(CustomStyleHooksContext)||EMPTY_OBJECT,{applyStylesToPortals:ot=!0,customStyleHooks_unstable:it,dir:st=et.dir,targetDocument:lt=et.targetDocument,theme:ut,overrides_unstable:ct={}}=j,dt=shallowMerge(tt,ut),ft=shallowMerge(rt,ct),pt=shallowMerge(nt,it),gt=useRenderer();var mt;const{styleTagId:bt,rule:_t}=useFluentProviderThemeStyleTag({theme:dt,targetDocument:lt,rendererAttributes:(mt=gt.styleElementAttributes)!==null&&mt!==void 0?mt:{}});return{applyStylesToPortals:ot,customStyleHooks_unstable:pt,dir:st,targetDocument:lt,theme:dt,overrides_unstable:ft,themeClassName:bt,components:{root:"div"},root:always(getIntrinsicElementProps("div",{...j,dir:st,ref:useMergedRefs$1(_e,useFocusVisible({targetDocument:lt}))}),{elementType:"div"}),serverStyleProps:{cssRule:_t,attributes:{...gt.styleElementAttributes,id:bt}}}};function shallowMerge(j,_e){return j&&_e?{...j,..._e}:j||_e}function useTheme(){return reactExports.useContext(ThemeContext$1)}function useFluentProviderContextValues_unstable(j){const{applyStylesToPortals:_e,customStyleHooks_unstable:et,dir:tt,root:rt,targetDocument:nt,theme:ot,themeClassName:it,overrides_unstable:st}=j,lt=reactExports.useMemo(()=>({dir:tt,targetDocument:nt}),[tt,nt]),[ut]=reactExports.useState(()=>({})),ct=reactExports.useMemo(()=>({textDirection:tt}),[tt]);return{customStyleHooks_unstable:et,overrides_unstable:st,provider:lt,textDirection:tt,iconDirection:ct,tooltip:ut,theme:ot,themeClassName:_e?rt.className:it}}const FluentProvider=reactExports.forwardRef((j,_e)=>{const et=useFluentProvider_unstable(j,_e);useFluentProviderStyles_unstable(et);const tt=useFluentProviderContextValues_unstable(et);return renderFluentProvider_unstable(et,tt)});FluentProvider.displayName="FluentProvider";const createProvider=j=>et=>{const tt=reactExports.useRef(et.value),rt=reactExports.useRef(0),nt=reactExports.useRef();return nt.current||(nt.current={value:tt,version:rt,listeners:[]}),useIsomorphicLayoutEffect$1(()=>{tt.current=et.value,rt.current+=1,schedulerExports.unstable_runWithPriority(schedulerExports.unstable_NormalPriority,()=>{nt.current.listeners.forEach(ot=>{ot([rt.current,et.value])})})},[et.value]),reactExports.createElement(j,{value:nt.current},et.children)},createContext=j=>{const _e=reactExports.createContext({value:{current:j},version:{current:-1},listeners:[]});return _e.Provider=createProvider(_e.Provider),delete _e.Consumer,_e},useContextSelector=(j,_e)=>{const et=reactExports.useContext(j),{value:{current:tt},version:{current:rt},listeners:nt}=et,ot=_e(tt),[it,st]=reactExports.useReducer((lt,ut)=>{if(!ut)return[tt,ot];if(ut[0]<=rt)return objectIs(lt[1],ot)?lt:[tt,ot];try{if(objectIs(lt[0],ut[1]))return lt;const ct=_e(ut[1]);return objectIs(lt[1],ct)?lt:[ut[1],ct]}catch{}return[lt[0],lt[1]]},[tt,ot]);return objectIs(it[1],ot)||st(void 0),useIsomorphicLayoutEffect$1(()=>(nt.push(st),()=>{const lt=nt.indexOf(st);nt.splice(lt,1)}),[nt]),it[1]};function is$3(j,_e){return j===_e&&(j!==0||1/j===1/_e)||j!==j&&_e!==_e}const objectIs=typeof Object.is=="function"?Object.is:is$3;function useHasParentContext(j){const _e=reactExports.useContext(j);return _e.version?_e.version.current!==-1:!1}const AccordionContext=createContext(void 0),accordionContextDefaultValue={openItems:[],collapsible:!1,multiple:!1,navigation:void 0,requestToggle(){}},{Provider:AccordionProvider}=AccordionContext,useAccordionContext_unstable=j=>useContextSelector(AccordionContext,(_e=accordionContextDefaultValue)=>j(_e)),renderAccordion_unstable=(j,_e)=>jsx$1(j.root,{children:jsx$1(AccordionProvider,{value:_e.accordion,children:j.root.children})}),useAccordion_unstable=(j,_e)=>{const{openItems:et,defaultOpenItems:tt,multiple:rt=!1,collapsible:nt=!1,onToggle:ot,navigation:it}=j,[st,lt]=useControllableState({state:reactExports.useMemo(()=>normalizeValues(et),[et]),defaultState:()=>initializeUncontrolledOpenItems({defaultOpenItems:tt,multiple:rt}),initialState:[]}),ut=useArrowNavigationGroup({circular:it==="circular",tabbable:!0}),ct=useEventCallback$3(dt=>{const ft=updateOpenItems(dt.value,st,rt,nt);ot==null||ot(dt.event,{value:dt.value,openItems:ft}),lt(ft)});return{collapsible:nt,multiple:rt,navigation:it,openItems:st,requestToggle:ct,components:{root:"div"},root:always(getIntrinsicElementProps("div",{...j,...it?ut:void 0,ref:_e}),{elementType:"div"})}};function initializeUncontrolledOpenItems({defaultOpenItems:j,multiple:_e}){return j!==void 0?Array.isArray(j)?_e?j:[j[0]]:[j]:[]}function updateOpenItems(j,_e,et,tt){if(et)if(_e.includes(j)){if(_e.length>1||tt)return _e.filter(rt=>rt!==j)}else return[..._e,j].sort();else return _e[0]===j&&tt?[]:[j];return _e}function normalizeValues(j){if(j!==void 0)return Array.isArray(j)?j:[j]}function useAccordionContextValues_unstable(j){const{navigation:_e,openItems:et,requestToggle:tt,multiple:rt,collapsible:nt}=j;return{accordion:{navigation:_e,openItems:et,requestToggle:tt,collapsible:nt,multiple:rt}}}const accordionClassNames={root:"fui-Accordion"},useAccordionStyles_unstable=j=>(j.root.className=mergeClasses(accordionClassNames.root,j.root.className),j),Accordion=reactExports.forwardRef((j,_e)=>{const et=useAccordion_unstable(j,_e),tt=useAccordionContextValues_unstable(et);return useAccordionStyles_unstable(et),useCustomStyleHook("useAccordionStyles_unstable")(et),renderAccordion_unstable(et,tt)});Accordion.displayName="Accordion";const useAccordionItem_unstable=(j,_e)=>{const{value:et,disabled:tt=!1}=j,rt=useAccordionContext_unstable(it=>it.requestToggle),nt=useAccordionContext_unstable(it=>it.openItems.includes(et)),ot=useEventCallback$3(it=>rt({event:it,value:et}));return{open:nt,value:et,disabled:tt,onHeaderClick:ot,components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"})}};function useAccordionItemContextValues_unstable(j){const{disabled:_e,open:et,value:tt,onHeaderClick:rt}=j;return{accordionItem:reactExports.useMemo(()=>({disabled:_e,open:et,value:tt,onHeaderClick:rt}),[_e,et,tt,rt])}}const AccordionItemContext=reactExports.createContext(void 0),accordionItemContextDefaultValue={open:!1,disabled:!1,value:void 0,onHeaderClick(){}},{Provider:AccordionItemProvider}=AccordionItemContext,useAccordionItemContext_unstable=()=>{var j;return(j=reactExports.useContext(AccordionItemContext))!==null&&j!==void 0?j:accordionItemContextDefaultValue},renderAccordionItem_unstable=(j,_e)=>jsx$1(j.root,{children:jsx$1(AccordionItemProvider,{value:_e.accordionItem,children:j.root.children})}),accordionItemClassNames={root:"fui-AccordionItem"},useAccordionItemStyles_unstable=j=>(j.root.className=mergeClasses(accordionItemClassNames.root,j.root.className),j),AccordionItem=reactExports.forwardRef((j,_e)=>{const et=useAccordionItem_unstable(j,_e),tt=useAccordionItemContextValues_unstable(et);return useAccordionItemStyles_unstable(et),useCustomStyleHook("useAccordionItemStyles_unstable")(et),renderAccordionItem_unstable(et,tt)});AccordionItem.displayName="AccordionItem";const Enter="Enter",Space=" ",Tab$2="Tab",ArrowDown="ArrowDown",ArrowLeft="ArrowLeft",ArrowRight="ArrowRight",ArrowUp="ArrowUp",End="End",Home="Home",PageDown="PageDown",PageUp="PageUp",Escape="Escape";function useARIAButtonProps(j,_e){const{disabled:et,disabledFocusable:tt=!1,["aria-disabled"]:rt,onClick:nt,onKeyDown:ot,onKeyUp:it,...st}=_e??{},lt=typeof rt=="string"?rt==="true":rt,ut=et||tt||lt,ct=useEventCallback$3(pt=>{ut?(pt.preventDefault(),pt.stopPropagation()):nt==null||nt(pt)}),dt=useEventCallback$3(pt=>{if(ot==null||ot(pt),pt.isDefaultPrevented())return;const gt=pt.key;if(ut&&(gt===Enter||gt===Space)){pt.preventDefault(),pt.stopPropagation();return}if(gt===Space){pt.preventDefault();return}else gt===Enter&&(pt.preventDefault(),pt.currentTarget.click())}),ft=useEventCallback$3(pt=>{if(it==null||it(pt),pt.isDefaultPrevented())return;const gt=pt.key;if(ut&&(gt===Enter||gt===Space)){pt.preventDefault(),pt.stopPropagation();return}gt===Space&&(pt.preventDefault(),pt.currentTarget.click())});if(j==="button"||j===void 0)return{...st,disabled:et&&!tt,"aria-disabled":tt?!0:lt,onClick:tt?void 0:ct,onKeyUp:tt?void 0:it,onKeyDown:tt?void 0:ot};{const pt={role:"button",tabIndex:et&&!tt?void 0:0,...st,onClick:ct,onKeyUp:ft,onKeyDown:dt,"aria-disabled":et||tt||lt};return j==="a"&&ut&&(pt.href=void 0),pt}}const useAccordionHeader_unstable=(j,_e)=>{const{icon:et,button:tt,expandIcon:rt,inline:nt=!1,size:ot="medium",expandIconPosition:it="start"}=j,{value:st,disabled:lt,open:ut}=useAccordionItemContext_unstable(),ct=useAccordionContext_unstable(mt=>mt.requestToggle),dt=useAccordionContext_unstable(mt=>!mt.collapsible&&mt.openItems.length===1&&ut),{dir:ft}=useFluent();let pt;it==="end"?pt=ut?-90:90:pt=ut?90:ft!=="rtl"?0:180;const gt=always(tt,{elementType:"button",defaultProps:{disabled:lt,disabledFocusable:dt,"aria-expanded":ut,type:"button"}});return gt.onClick=useEventCallback$3(mt=>{if(isResolvedShorthand(tt)){var bt;(bt=tt.onClick)===null||bt===void 0||bt.call(tt,mt)}mt.defaultPrevented||ct({value:st,event:mt})}),{disabled:lt,open:ut,size:ot,inline:nt,expandIconPosition:it,components:{root:"div",button:"button",expandIcon:"span",icon:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"}),icon:optional(et,{elementType:"div"}),expandIcon:optional(rt,{renderByDefault:!0,defaultProps:{children:reactExports.createElement(ChevronRightRegular,{style:{transform:`rotate(${pt}deg)`}}),"aria-hidden":!0},elementType:"span"}),button:useARIAButtonProps(gt.as,gt)}},AccordionHeaderContext=reactExports.createContext(void 0),{Provider:AccordionHeaderProvider}=AccordionHeaderContext,renderAccordionHeader_unstable=(j,_e)=>jsx$1(AccordionHeaderProvider,{value:_e.accordionHeader,children:jsx$1(j.root,{children:jsxs(j.button,{children:[j.expandIconPosition==="start"&&j.expandIcon&&jsx$1(j.expandIcon,{}),j.icon&&jsx$1(j.icon,{}),j.root.children,j.expandIconPosition==="end"&&j.expandIcon&&jsx$1(j.expandIcon,{})]})})}),accordionHeaderClassNames={root:"fui-AccordionHeader",button:"fui-AccordionHeader__button",expandIcon:"fui-AccordionHeader__expandIcon",icon:"fui-AccordionHeader__icon"},useStyles$y=__styles({resetButton:{B7ck84d:"f1e4lqlz",De3pzq:"f1u2r49w",sj55zd:"f1ym3bx4",Bahqtrf:"f1mo0ibp",Be2twd7:"fjoy568",Bg96gwp:"fytdu2e",B68tc82:"f1mtd64y",Bmxbyg5:"f1y7q3j9",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1cnd47f","fhxju0i"],Bv0vk6g:"f37px4s",fsow6f:"fgusgyc"},focusIndicator:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bb7d1vk:"f226i61",zhwhgb:["f13kzufm","fsx75g8"],dhy2o1:"flujwa2",Gfyso:["fsx75g8","f13kzufm"],Bm4h7ae:"f15bsgw9",B7ys5i9:"f14e48fq",Busjfv9:"f18yb2kv",Bhk32uz:"fd6o370",Bf4ptjt:"fh1cnn4",kclons:["fy7oxxb","f184ne2d"],Bhdgwq3:"fpukqih",Blkhhs4:["f184ne2d","fy7oxxb"],Bqtpl0w:"frrh606",clg4pj:["f1v5zibi","fo2hd23"],hgwjuy:"ful5kiu",Bonggc9:["fo2hd23","f1v5zibi"],B1tsrr9:["f1jqcqds","ftffrms"],Dah5zi:["ftffrms","f1jqcqds"],Bkh64rk:["f2e7qr6","fsr1zz6"],qqdqy8:["fsr1zz6","f2e7qr6"],B6dhp37:"f1dvezut",i03rao:["fd0oaoj","f1cwg4i8"],Boxcth7:"fjvm52t",Bsom6fd:["f1cwg4i8","fd0oaoj"],J0r882:"f57olzd",Bule8hv:["f4stah7","fs1por5"],Bjwuhne:"f480a47",Ghsupd:["fs1por5","f4stah7"]},root:{sj55zd:"f19n0e5",De3pzq:"f1c21dwh",B6of3ja:"f1hu3pq6",t21cq0:["f11qmguv","f1tyq0we"],jrapky:"f19f4twv",Frg6f3:["f1tyq0we","f11qmguv"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"]},rootDisabled:{Bcmaq0h:"fwrgwhw",sj55zd:"f1s2aq7o"},rootInline:{mc9l5x:"f14t3ns0"},button:{qhf8xq:"f10pi13n",a9b677:"fly5x3f",B4j52fo:"f5ogflp",Bekrc4i:["f1hqa2wf","finvdd3"],Bn0qgzm:"f1f09k3d",ibv6hh:["finvdd3","f1hqa2wf"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],z8tnut:"f1g0x7ka",z189sj:["fw5db7e","f1uw59to"],Byoj8tv:"f1qch9an",uwmqm3:["f1ng84yb","f11gcy0p"],sshi5w:"f5pgtk9",mc9l5x:"f22iagw",Bt984gj:"f122n59",Bceei9c:"f1k6fduh",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B7ck84d:"f1ewtqcl"},buttonSmall:{sshi5w:"f1nxs5xn",Be2twd7:"fy9rknc"},buttonLarge:{Bg96gwp:"faaz57k",Be2twd7:"fod5ikn"},buttonExtraLarge:{Bg96gwp:"f106mvju",Be2twd7:"f1pp30po"},buttonInline:{mc9l5x:"ftuwxu6"},buttonExpandIconEndNoIcon:{uwmqm3:["f1uw59to","fw5db7e"]},buttonExpandIconEnd:{z189sj:["f11gcy0p","f1ng84yb"]},buttonDisabled:{Bceei9c:"fdrzuqr"},expandIcon:{Bqenvij:"f1l02sjl",mc9l5x:"f22iagw",Bt984gj:"f122n59",Bg96gwp:"f106mvju",Be2twd7:"f1pp30po"},expandIconStart:{z189sj:["f1vdfbxk","f1f5gg8d"]},expandIconEnd:{Bh6795r:"fqerorx",Bnnss6s:"f1neuvcm",xawz:"flqd7gy",mc9l5x:"f22iagw",Brf1p80:"f9c4gz4",uwmqm3:["f1f5gg8d","f1vdfbxk"]},icon:{Bqenvij:"f1l02sjl",mc9l5x:"f22iagw",Bt984gj:"f122n59",z189sj:["f1vdfbxk","f1f5gg8d"],Bg96gwp:"f106mvju",Be2twd7:"f1pp30po"}},{d:[".f1e4lqlz{box-sizing:content-box;}",".f1u2r49w{background-color:inherit;}",".f1ym3bx4{color:inherit;}",".f1mo0ibp{font-family:inherit;}",".fjoy568{font-size:inherit;}",".fytdu2e{line-height:normal;}",".f1mtd64y{overflow-x:visible;}",".f1y7q3j9{overflow-y:visible;}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1qch9an{padding-bottom:0;}",".f37px4s{-webkit-appearance:button;}",".fgusgyc{text-align:unset;}",".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",'.f15bsgw9[data-fui-focus-visible]::after{content:"";}',".f14e48fq[data-fui-focus-visible]::after{position:absolute;}",".f18yb2kv[data-fui-focus-visible]::after{pointer-events:none;}",".fd6o370[data-fui-focus-visible]::after{z-index:1;}",".fh1cnn4[data-fui-focus-visible]::after{border-top-style:solid;}",".fy7oxxb[data-fui-focus-visible]::after{border-right-style:solid;}",".f184ne2d[data-fui-focus-visible]::after{border-left-style:solid;}",".fpukqih[data-fui-focus-visible]::after{border-bottom-style:solid;}",".frrh606[data-fui-focus-visible]::after{border-top-width:2px;}",".f1v5zibi[data-fui-focus-visible]::after{border-right-width:2px;}",".fo2hd23[data-fui-focus-visible]::after{border-left-width:2px;}",".ful5kiu[data-fui-focus-visible]::after{border-bottom-width:2px;}",".f1jqcqds[data-fui-focus-visible]::after{border-bottom-right-radius:var(--borderRadiusMedium);}",".ftffrms[data-fui-focus-visible]::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f2e7qr6[data-fui-focus-visible]::after{border-top-right-radius:var(--borderRadiusMedium);}",".fsr1zz6[data-fui-focus-visible]::after{border-top-left-radius:var(--borderRadiusMedium);}",".f1dvezut[data-fui-focus-visible]::after{border-top-color:var(--colorStrokeFocus2);}",".fd0oaoj[data-fui-focus-visible]::after{border-right-color:var(--colorStrokeFocus2);}",".f1cwg4i8[data-fui-focus-visible]::after{border-left-color:var(--colorStrokeFocus2);}",".fjvm52t[data-fui-focus-visible]::after{border-bottom-color:var(--colorStrokeFocus2);}",".f57olzd[data-fui-focus-visible]::after{top:calc(2px * -1);}",".f4stah7[data-fui-focus-visible]::after{right:calc(2px * -1);}",".fs1por5[data-fui-focus-visible]::after{left:calc(2px * -1);}",".f480a47[data-fui-focus-visible]::after{bottom:calc(2px * -1);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1hu3pq6{margin-top:0;}",".f11qmguv{margin-right:0;}",".f1tyq0we{margin-left:0;}",".f19f4twv{margin-bottom:0;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".fwrgwhw{background-image:none;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f14t3ns0{display:inline-block;}",".f10pi13n{position:relative;}",".fly5x3f{width:100%;}",".f5ogflp{border-top-width:1px;}",".f1hqa2wf{border-right-width:1px;}",".finvdd3{border-left-width:1px;}",".f1f09k3d{border-bottom-width:1px;}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}",".fw5db7e{padding-right:var(--spacingHorizontalM);}",".f1uw59to{padding-left:var(--spacingHorizontalM);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f5pgtk9{min-height:44px;}",".f22iagw{display:flex;}",".f122n59{align-items:center;}",".f1k6fduh{cursor:pointer;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1ewtqcl{box-sizing:border-box;}",".f1nxs5xn{min-height:32px;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".f106mvju{line-height:var(--lineHeightBase500);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".ftuwxu6{display:inline-flex;}",".fdrzuqr{cursor:not-allowed;}",".f1l02sjl{height:100%;}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".fqerorx{flex-grow:1;}",".f1neuvcm{flex-shrink:1;}",".flqd7gy{flex-basis:0%;}",".f9c4gz4{justify-content:flex-end;}"],f:[".ftqa4ok:focus{outline-style:none;}"],i:[".f2hkw1w:focus-visible{outline-style:none;}"],m:[["@media (forced-colors: active){.f226i61[data-fui-focus-visible]::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f13kzufm[data-fui-focus-visible]::after{border-right-color:Highlight;}.fsx75g8[data-fui-focus-visible]::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.flujwa2[data-fui-focus-visible]::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}]]}),useAccordionHeaderStyles_unstable=j=>{const _e=useStyles$y();return j.root.className=mergeClasses(accordionHeaderClassNames.root,_e.root,j.inline&&_e.rootInline,j.disabled&&_e.rootDisabled,j.root.className),j.button.className=mergeClasses(accordionHeaderClassNames.button,_e.resetButton,_e.button,_e.focusIndicator,j.expandIconPosition==="end"&&!j.icon&&_e.buttonExpandIconEndNoIcon,j.expandIconPosition==="end"&&_e.buttonExpandIconEnd,j.inline&&_e.buttonInline,j.size==="small"&&_e.buttonSmall,j.size==="large"&&_e.buttonLarge,j.size==="extra-large"&&_e.buttonExtraLarge,j.disabled&&_e.buttonDisabled,j.button.className),j.expandIcon&&(j.expandIcon.className=mergeClasses(accordionHeaderClassNames.expandIcon,_e.expandIcon,j.expandIconPosition==="start"&&_e.expandIconStart,j.expandIconPosition==="end"&&_e.expandIconEnd,j.expandIcon.className)),j.icon&&(j.icon.className=mergeClasses(accordionHeaderClassNames.icon,_e.icon,j.icon.className)),j};function useAccordionHeaderContextValues_unstable(j){const{disabled:_e,expandIconPosition:et,open:tt,size:rt}=j;return{accordionHeader:reactExports.useMemo(()=>({disabled:_e,expandIconPosition:et,open:tt,size:rt}),[_e,et,tt,rt])}}const AccordionHeader=reactExports.forwardRef((j,_e)=>{const et=useAccordionHeader_unstable(j,_e),tt=useAccordionHeaderContextValues_unstable(et);return useAccordionHeaderStyles_unstable(et),useCustomStyleHook("useAccordionHeaderStyles_unstable")(et),renderAccordionHeader_unstable(et,tt)});AccordionHeader.displayName="AccordionHeader";const useAccordionPanel_unstable=(j,_e)=>{const{open:et}=useAccordionItemContext_unstable(),tt=useTabsterAttributes({focusable:{excludeFromMover:!0}}),rt=useAccordionContext_unstable(nt=>nt.navigation);return{open:et,components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,...j,...rt&&tt}),{elementType:"div"})}},renderAccordionPanel_unstable=j=>j.open?jsx$1(j.root,{children:j.root.children}):null,accordionPanelClassNames={root:"fui-AccordionPanel"},useStyles$x=__styles({root:{B6of3ja:"f1hu3pq6",t21cq0:["fkujibs","f199hnxi"],jrapky:"f19f4twv",Frg6f3:["f199hnxi","fkujibs"]}},{d:[".f1hu3pq6{margin-top:0;}",".fkujibs{margin-right:var(--spacingHorizontalM);}",".f199hnxi{margin-left:var(--spacingHorizontalM);}",".f19f4twv{margin-bottom:0;}"]}),useAccordionPanelStyles_unstable=j=>{const _e=useStyles$x();return j.root.className=mergeClasses(accordionPanelClassNames.root,_e.root,j.root.className),j},AccordionPanel=reactExports.forwardRef((j,_e)=>{const et=useAccordionPanel_unstable(j,_e);return useAccordionPanelStyles_unstable(et),useCustomStyleHook("useAccordionPanelStyles_unstable")(et),renderAccordionPanel_unstable(et)});AccordionPanel.displayName="AccordionPanel";const useBadge_unstable=(j,_e)=>{const{shape:et="circular",size:tt="medium",iconPosition:rt="before",appearance:nt="filled",color:ot="brand"}=j;return{shape:et,size:tt,iconPosition:rt,appearance:nt,color:ot,components:{root:"div",icon:"span"},root:always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"}),icon:optional(j.icon,{elementType:"span"})}},badgeClassNames={root:"fui-Badge",icon:"fui-Badge__icon"},useRootClassName$1=__resetStyles("r1l7mb74","rntuq2r",[".r1l7mb74{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;position:relative;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase200);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase200);height:20px;width:20px;min-width:max-content;padding:0 calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));border-radius:var(--borderRadiusCircular);border-color:var(--colorTransparentStroke);}",'.r1l7mb74::after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;border-style:solid;border-color:inherit;border-width:var(--strokeWidthThin);border-radius:inherit;}',".rntuq2r{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;position:relative;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase200);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase200);height:20px;width:20px;min-width:max-content;padding:0 calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));border-radius:var(--borderRadiusCircular);border-color:var(--colorTransparentStroke);}",'.rntuq2r::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-style:solid;border-color:inherit;border-width:var(--strokeWidthThin);border-radius:inherit;}']),useRootStyles$6=__styles({fontSmallToTiny:{Bahqtrf:"fk6fouc",Be2twd7:"f13mqy1h",Bhrd7zp:"fl43uef",Bg96gwp:"fcpl73t"},tiny:{a9b677:"f16dn6v3",Bqenvij:"f3mu39s",Be2twd7:"f130uwy9",Bg96gwp:"fod1mrr",Bf4jedk:"f18p0k4z",z8tnut:"f1q8r6hh",z189sj:["fio2s09","fkiw60q"],Byoj8tv:"f9yu9nh",uwmqm3:["fkiw60q","fio2s09"]},"extra-small":{a9b677:"fpd43o0",Bqenvij:"f30q22z",Be2twd7:"f1tccstq",Bg96gwp:"f1y3arg5",Bf4jedk:"f18p0k4z",z8tnut:"f1q8r6hh",z189sj:["fio2s09","fkiw60q"],Byoj8tv:"f9yu9nh",uwmqm3:["fkiw60q","fio2s09"]},small:{a9b677:"fjw5fx7",Bqenvij:"fd461yt",z8tnut:"f1g0x7ka",z189sj:["fps1v9c","f17ae1jz"],Byoj8tv:"f1qch9an",uwmqm3:["f17ae1jz","fps1v9c"]},medium:{},large:{a9b677:"fq4mcun",Bqenvij:"frvgh55",z8tnut:"f1g0x7ka",z189sj:["f17a92cs","f1pe0i86"],Byoj8tv:"f1qch9an",uwmqm3:["f1pe0i86","f17a92cs"]},"extra-large":{a9b677:"f1szoe96",Bqenvij:"f1d2rq10",z8tnut:"f1g0x7ka",z189sj:["fqznh8f","f1xile11"],Byoj8tv:"f1qch9an",uwmqm3:["f1xile11","fqznh8f"]},square:{Bbmb7ep:["fzi6hpg","fyowgf4"],Beyfa6y:["fyowgf4","fzi6hpg"],B7oj6ja:["f3fg2lr","f13av6d4"],Btl43ni:["f13av6d4","f3fg2lr"]},rounded:{Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"]},roundedSmallToTiny:{Bbmb7ep:["f1g3puop","fi2rrw2"],Beyfa6y:["fi2rrw2","f1g3puop"],B7oj6ja:["f1rstyi9","f1s4nn1u"],Btl43ni:["f1s4nn1u","f1rstyi9"]},circular:{},borderGhost:{ap17g6:"f10ludwy"},filled:{},"filled-brand":{De3pzq:"ffp7eso",sj55zd:"f1phragk"},"filled-danger":{De3pzq:"fdl5y0r",sj55zd:"f1phragk"},"filled-important":{De3pzq:"f1c73kur",sj55zd:"fr0bkrk"},"filled-informative":{De3pzq:"f3vzo32",sj55zd:"f11d4kpn"},"filled-severe":{De3pzq:"f1s438gw",sj55zd:"f1phragk"},"filled-subtle":{De3pzq:"fxugw4r",sj55zd:"f19n0e5"},"filled-success":{De3pzq:"flxk52p",sj55zd:"f1phragk"},"filled-warning":{De3pzq:"ffq97bm",sj55zd:"ff5vbop"},ghost:{},"ghost-brand":{sj55zd:"f16muhyy"},"ghost-danger":{sj55zd:"f1whyuy6"},"ghost-important":{sj55zd:"f19n0e5"},"ghost-informative":{sj55zd:"f11d4kpn"},"ghost-severe":{sj55zd:"f1l8vj45"},"ghost-subtle":{sj55zd:"fonrgv7"},"ghost-success":{sj55zd:"f1m7fhi8"},"ghost-warning":{sj55zd:"fpti2h4"},outline:{g2u3we:"f23ftbb",h3c5rm:["f1gkuv52","f1p1bl80"],B9xav0g:"fioka3i",zhjwy3:["f1p1bl80","f1gkuv52"]},"outline-brand":{sj55zd:"f16muhyy"},"outline-danger":{sj55zd:"f1whyuy6",g2u3we:"fyqpifd",h3c5rm:["f3ukxca","f1k7dugc"],B9xav0g:"f1njxb2b",zhjwy3:["f1k7dugc","f3ukxca"]},"outline-important":{sj55zd:"f11d4kpn",g2u3we:"fq0vr37",h3c5rm:["f1byw159","f11cr0be"],B9xav0g:"f1c1zstj",zhjwy3:["f11cr0be","f1byw159"]},"outline-informative":{sj55zd:"f11d4kpn",g2u3we:"f68mrw8",h3c5rm:["f7pw515","fw35ms5"],B9xav0g:"frpde29",zhjwy3:["fw35ms5","f7pw515"]},"outline-severe":{sj55zd:"f1l8vj45"},"outline-subtle":{sj55zd:"fonrgv7"},"outline-success":{sj55zd:"f1m7fhi8",g2u3we:"f1mmhl11",h3c5rm:["f1tjpp2f","f1ocn5n7"],B9xav0g:"f1gjv25d",zhjwy3:["f1ocn5n7","f1tjpp2f"]},"outline-warning":{sj55zd:"fpti2h4"},tint:{},"tint-brand":{De3pzq:"f16xkysk",sj55zd:"faj9fo0",g2u3we:"f161y7kd",h3c5rm:["f1c8dzaj","f1sl6hi9"],B9xav0g:"f1619yhw",zhjwy3:["f1sl6hi9","f1c8dzaj"]},"tint-danger":{De3pzq:"ff0poqj",sj55zd:"f1hcrxcs",g2u3we:"f1oqjm8o",h3c5rm:["fkgrb8g","frb5wm0"],B9xav0g:"f1iai1ph",zhjwy3:["frb5wm0","fkgrb8g"]},"tint-important":{De3pzq:"f945g0u",sj55zd:"fr0bkrk",g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},"tint-informative":{De3pzq:"f1ctqxl6",sj55zd:"f11d4kpn",g2u3we:"f68mrw8",h3c5rm:["f7pw515","fw35ms5"],B9xav0g:"frpde29",zhjwy3:["fw35ms5","f7pw515"]},"tint-severe":{De3pzq:"f1xzsg4",sj55zd:"f1k5f75o",g2u3we:"fxy9dsj",h3c5rm:["f54u6j2","fcm23ze"],B9xav0g:"f4vf0uq",zhjwy3:["fcm23ze","f54u6j2"]},"tint-subtle":{De3pzq:"fxugw4r",sj55zd:"f11d4kpn",g2u3we:"f68mrw8",h3c5rm:["f7pw515","fw35ms5"],B9xav0g:"frpde29",zhjwy3:["fw35ms5","f7pw515"]},"tint-success":{De3pzq:"f2vsrz6",sj55zd:"ffmvakt",g2u3we:"fdmic9h",h3c5rm:["f196y6m","fetptd8"],B9xav0g:"f1pev5xq",zhjwy3:["fetptd8","f196y6m"]},"tint-warning":{De3pzq:"f10s6hli",sj55zd:"f42v8de",g2u3we:"fn9i3n",h3c5rm:["f1aw8cx4","f51if14"],B9xav0g:"fvq8iai",zhjwy3:["f51if14","f1aw8cx4"]}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".f13mqy1h{font-size:var(--fontSizeBase100);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fcpl73t{line-height:var(--lineHeightBase100);}",".f16dn6v3{width:6px;}",".f3mu39s{height:6px;}",".f130uwy9{font-size:4px;}",".fod1mrr{line-height:4px;}",".f18p0k4z{min-width:unset;}",".f1q8r6hh{padding-top:unset;}",".fio2s09{padding-right:unset;}",".fkiw60q{padding-left:unset;}",".f9yu9nh{padding-bottom:unset;}",".fpd43o0{width:10px;}",".f30q22z{height:10px;}",".f1tccstq{font-size:6px;}",".f1y3arg5{line-height:6px;}",".fjw5fx7{width:16px;}",".fd461yt{height:16px;}",".f1g0x7ka{padding-top:0;}",".fps1v9c{padding-right:calc(var(--spacingHorizontalXXS) + var(--spacingHorizontalXXS));}",".f17ae1jz{padding-left:calc(var(--spacingHorizontalXXS) + var(--spacingHorizontalXXS));}",".f1qch9an{padding-bottom:0;}",".fq4mcun{width:24px;}",".frvgh55{height:24px;}",".f17a92cs{padding-right:calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));}",".f1pe0i86{padding-left:calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));}",".f1szoe96{width:32px;}",".f1d2rq10{height:32px;}",".fqznh8f{padding-right:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".f1xile11{padding-left:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".fzi6hpg{border-bottom-right-radius:var(--borderRadiusNone);}",".fyowgf4{border-bottom-left-radius:var(--borderRadiusNone);}",".f3fg2lr{border-top-right-radius:var(--borderRadiusNone);}",".f13av6d4{border-top-left-radius:var(--borderRadiusNone);}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f1g3puop{border-bottom-right-radius:var(--borderRadiusSmall);}",".fi2rrw2{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1rstyi9{border-top-right-radius:var(--borderRadiusSmall);}",".f1s4nn1u{border-top-left-radius:var(--borderRadiusSmall);}",".f10ludwy::after{display:none;}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".fdl5y0r{background-color:var(--colorPaletteRedBackground3);}",".f1c73kur{background-color:var(--colorNeutralForeground1);}",".fr0bkrk{color:var(--colorNeutralBackground1);}",".f3vzo32{background-color:var(--colorNeutralBackground5);}",".f11d4kpn{color:var(--colorNeutralForeground3);}",".f1s438gw{background-color:var(--colorPaletteDarkOrangeBackground3);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".flxk52p{background-color:var(--colorPaletteGreenBackground3);}",".ffq97bm{background-color:var(--colorPaletteYellowBackground3);}",".ff5vbop{color:var(--colorNeutralForeground1Static);}",".f16muhyy{color:var(--colorBrandForeground1);}",".f1whyuy6{color:var(--colorPaletteRedForeground3);}",".f1l8vj45{color:var(--colorPaletteDarkOrangeForeground3);}",".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".f1m7fhi8{color:var(--colorPaletteGreenForeground3);}",".fpti2h4{color:var(--colorPaletteYellowForeground2);}",".f23ftbb{border-top-color:currentColor;}",".f1gkuv52{border-right-color:currentColor;}",".f1p1bl80{border-left-color:currentColor;}",".fioka3i{border-bottom-color:currentColor;}",".fyqpifd{border-top-color:var(--colorPaletteRedBorder2);}",".f3ukxca{border-right-color:var(--colorPaletteRedBorder2);}",".f1k7dugc{border-left-color:var(--colorPaletteRedBorder2);}",".f1njxb2b{border-bottom-color:var(--colorPaletteRedBorder2);}",".fq0vr37{border-top-color:var(--colorNeutralStrokeAccessible);}",".f1byw159{border-right-color:var(--colorNeutralStrokeAccessible);}",".f11cr0be{border-left-color:var(--colorNeutralStrokeAccessible);}",".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}",".f68mrw8{border-top-color:var(--colorNeutralStroke2);}",".f7pw515{border-right-color:var(--colorNeutralStroke2);}",".fw35ms5{border-left-color:var(--colorNeutralStroke2);}",".frpde29{border-bottom-color:var(--colorNeutralStroke2);}",".f1mmhl11{border-top-color:var(--colorPaletteGreenBorder2);}",".f1tjpp2f{border-right-color:var(--colorPaletteGreenBorder2);}",".f1ocn5n7{border-left-color:var(--colorPaletteGreenBorder2);}",".f1gjv25d{border-bottom-color:var(--colorPaletteGreenBorder2);}",".f16xkysk{background-color:var(--colorBrandBackground2);}",".faj9fo0{color:var(--colorBrandForeground2);}",".f161y7kd{border-top-color:var(--colorBrandStroke2);}",".f1c8dzaj{border-right-color:var(--colorBrandStroke2);}",".f1sl6hi9{border-left-color:var(--colorBrandStroke2);}",".f1619yhw{border-bottom-color:var(--colorBrandStroke2);}",".ff0poqj{background-color:var(--colorPaletteRedBackground1);}",".f1hcrxcs{color:var(--colorPaletteRedForeground1);}",".f1oqjm8o{border-top-color:var(--colorPaletteRedBorder1);}",".fkgrb8g{border-right-color:var(--colorPaletteRedBorder1);}",".frb5wm0{border-left-color:var(--colorPaletteRedBorder1);}",".f1iai1ph{border-bottom-color:var(--colorPaletteRedBorder1);}",".f945g0u{background-color:var(--colorNeutralForeground3);}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".f1ctqxl6{background-color:var(--colorNeutralBackground4);}",".f1xzsg4{background-color:var(--colorPaletteDarkOrangeBackground1);}",".f1k5f75o{color:var(--colorPaletteDarkOrangeForeground1);}",".fxy9dsj{border-top-color:var(--colorPaletteDarkOrangeBorder1);}",".f54u6j2{border-right-color:var(--colorPaletteDarkOrangeBorder1);}",".fcm23ze{border-left-color:var(--colorPaletteDarkOrangeBorder1);}",".f4vf0uq{border-bottom-color:var(--colorPaletteDarkOrangeBorder1);}",".f2vsrz6{background-color:var(--colorPaletteGreenBackground1);}",".ffmvakt{color:var(--colorPaletteGreenForeground1);}",".fdmic9h{border-top-color:var(--colorPaletteGreenBorder1);}",".f196y6m{border-right-color:var(--colorPaletteGreenBorder1);}",".fetptd8{border-left-color:var(--colorPaletteGreenBorder1);}",".f1pev5xq{border-bottom-color:var(--colorPaletteGreenBorder1);}",".f10s6hli{background-color:var(--colorPaletteYellowBackground1);}",".f42v8de{color:var(--colorPaletteYellowForeground1);}",".fn9i3n{border-top-color:var(--colorPaletteYellowBorder1);}",".f1aw8cx4{border-right-color:var(--colorPaletteYellowBorder1);}",".f51if14{border-left-color:var(--colorPaletteYellowBorder1);}",".fvq8iai{border-bottom-color:var(--colorPaletteYellowBorder1);}"]}),useIconRootClassName=__resetStyles("rttl5z0",null,[".rttl5z0{display:flex;line-height:1;margin:0 calc(-1 * var(--spacingHorizontalXXS));font-size:12px;}"]),useIconStyles$3=__styles({beforeText:{t21cq0:["f1t8l4o1","f11juvx6"]},afterText:{Frg6f3:["f11juvx6","f1t8l4o1"]},beforeTextXL:{t21cq0:["f1rs9grm","f1kwmkpi"]},afterTextXL:{Frg6f3:["f1kwmkpi","f1rs9grm"]},tiny:{Be2twd7:"f1tccstq"},"extra-small":{Be2twd7:"fnmn6fi"},small:{Be2twd7:"f1ugzwwg"},medium:{},large:{Be2twd7:"f4ybsrx"},"extra-large":{Be2twd7:"fe5j1ua"}},{d:[".f1t8l4o1{margin-right:calc(var(--spacingHorizontalXXS) + var(--spacingHorizontalXXS));}",".f11juvx6{margin-left:calc(var(--spacingHorizontalXXS) + var(--spacingHorizontalXXS));}",".f1rs9grm{margin-right:calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));}",".f1kwmkpi{margin-left:calc(var(--spacingHorizontalXS) + var(--spacingHorizontalXXS));}",".f1tccstq{font-size:6px;}",".fnmn6fi{font-size:10px;}",".f1ugzwwg{font-size:12px;}",".f4ybsrx{font-size:16px;}",".fe5j1ua{font-size:20px;}"]}),useBadgeStyles_unstable=j=>{const _e=useRootClassName$1(),et=useRootStyles$6(),tt=j.size==="small"||j.size==="extra-small"||j.size==="tiny";j.root.className=mergeClasses(badgeClassNames.root,_e,tt&&et.fontSmallToTiny,et[j.size],et[j.shape],j.shape==="rounded"&&tt&&et.roundedSmallToTiny,j.appearance==="ghost"&&et.borderGhost,et[j.appearance],et[`${j.appearance}-${j.color}`],j.root.className);const rt=useIconRootClassName(),nt=useIconStyles$3();if(j.icon){let ot;j.root.children&&(j.size==="extra-large"?ot=j.iconPosition==="after"?nt.afterTextXL:nt.beforeTextXL:ot=j.iconPosition==="after"?nt.afterText:nt.beforeText),j.icon.className=mergeClasses(badgeClassNames.icon,rt,ot,nt[j.size],j.icon.className)}return j},renderBadge_unstable=j=>jsxs(j.root,{children:[j.iconPosition==="before"&&j.icon&&jsx$1(j.icon,{}),j.root.children,j.iconPosition==="after"&&j.icon&&jsx$1(j.icon,{})]}),Badge$2=reactExports.forwardRef((j,_e)=>{const et=useBadge_unstable(j,_e);return useBadgeStyles_unstable(et),useCustomStyleHook("useBadgeStyles_unstable")(et),renderBadge_unstable(et)});Badge$2.displayName="Badge";const useCounterBadge_unstable=(j,_e)=>{const{shape:et="circular",appearance:tt="filled",showZero:rt=!1,overflowCount:nt=99,count:ot=0,dot:it=!1}=j,st={...useBadge_unstable(j,_e),shape:et,appearance:tt,showZero:rt,count:ot,dot:it};return(ot!==0||rt)&&!it&&!st.root.children&&(st.root.children=ot>nt?`${nt}+`:`${ot}`),st},counterBadgeClassNames={root:"fui-CounterBadge",icon:"fui-CounterBadge__icon"},useStyles$w=__styles({dot:{Bf4jedk:"fgfkb25",a9b677:"f16dn6v3",Bqenvij:"f3mu39s",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1cnd47f","fhxju0i"]},hide:{mc9l5x:"fjseox"}},{d:[".fgfkb25{min-width:auto;}",".f16dn6v3{width:6px;}",".f3mu39s{height:6px;}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1qch9an{padding-bottom:0;}",".fjseox{display:none;}"]}),useCounterBadgeStyles_unstable=j=>{const _e=useStyles$w();return j.root.className=mergeClasses(counterBadgeClassNames.root,j.dot&&_e.dot,!j.root.children&&!j.dot&&_e.hide,j.root.className),j.icon&&(j.icon.className=mergeClasses(counterBadgeClassNames.icon,j.icon.className)),useBadgeStyles_unstable(j)},CounterBadge=reactExports.forwardRef((j,_e)=>{const et=useCounterBadge_unstable(j,_e);return useCounterBadgeStyles_unstable(et),useCustomStyleHook("useCounterBadgeStyles_unstable")(et),renderBadge_unstable(et)});CounterBadge.displayName="CounterBadge";function createVirtualElementFromClick(j){const _e=j.clientX,et=j.clientY,tt=_e+1,rt=et+1;function nt(){return{left:_e,top:et,right:tt,bottom:rt,x:_e,y:et,height:1,width:1}}return{getBoundingClientRect:nt}}const DATA_POSITIONING_INTERSECTING="data-popper-is-intersecting",DATA_POSITIONING_ESCAPED="data-popper-escaped",DATA_POSITIONING_HIDDEN="data-popper-reference-hidden",DATA_POSITIONING_PLACEMENT="data-popper-placement",sides=["top","right","bottom","left"],min$4=Math.min,max$4=Math.max,round$2=Math.round,createCoords=j=>({x:j,y:j}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"},oppositeAlignmentMap={start:"end",end:"start"};function clamp$2(j,_e,et){return max$4(j,min$4(_e,et))}function evaluate(j,_e){return typeof j=="function"?j(_e):j}function getSide(j){return j.split("-")[0]}function getAlignment(j){return j.split("-")[1]}function getOppositeAxis(j){return j==="x"?"y":"x"}function getAxisLength(j){return j==="y"?"height":"width"}function getSideAxis(j){return["top","bottom"].includes(getSide(j))?"y":"x"}function getAlignmentAxis(j){return getOppositeAxis(getSideAxis(j))}function getAlignmentSides(j,_e,et){et===void 0&&(et=!1);const tt=getAlignment(j),rt=getAlignmentAxis(j),nt=getAxisLength(rt);let ot=rt==="x"?tt===(et?"end":"start")?"right":"left":tt==="start"?"bottom":"top";return _e.reference[nt]>_e.floating[nt]&&(ot=getOppositePlacement(ot)),[ot,getOppositePlacement(ot)]}function getExpandedPlacements(j){const _e=getOppositePlacement(j);return[getOppositeAlignmentPlacement(j),_e,getOppositeAlignmentPlacement(_e)]}function getOppositeAlignmentPlacement(j){return j.replace(/start|end/g,_e=>oppositeAlignmentMap[_e])}function getSideList(j,_e,et){const tt=["left","right"],rt=["right","left"],nt=["top","bottom"],ot=["bottom","top"];switch(j){case"top":case"bottom":return et?_e?rt:tt:_e?tt:rt;case"left":case"right":return _e?nt:ot;default:return[]}}function getOppositeAxisPlacements(j,_e,et,tt){const rt=getAlignment(j);let nt=getSideList(getSide(j),et==="start",tt);return rt&&(nt=nt.map(ot=>ot+"-"+rt),_e&&(nt=nt.concat(nt.map(getOppositeAlignmentPlacement)))),nt}function getOppositePlacement(j){return j.replace(/left|right|bottom|top/g,_e=>oppositeSideMap[_e])}function expandPaddingObject(j){return{top:0,right:0,bottom:0,left:0,...j}}function getPaddingObject(j){return typeof j!="number"?expandPaddingObject(j):{top:j,right:j,bottom:j,left:j}}function rectToClientRect(j){return{...j,top:j.y,left:j.x,right:j.x+j.width,bottom:j.y+j.height}}function computeCoordsFromPlacement(j,_e,et){let{reference:tt,floating:rt}=j;const nt=getSideAxis(_e),ot=getAlignmentAxis(_e),it=getAxisLength(ot),st=getSide(_e),lt=nt==="y",ut=tt.x+tt.width/2-rt.width/2,ct=tt.y+tt.height/2-rt.height/2,dt=tt[it]/2-rt[it]/2;let ft;switch(st){case"top":ft={x:ut,y:tt.y-rt.height};break;case"bottom":ft={x:ut,y:tt.y+tt.height};break;case"right":ft={x:tt.x+tt.width,y:ct};break;case"left":ft={x:tt.x-rt.width,y:ct};break;default:ft={x:tt.x,y:tt.y}}switch(getAlignment(_e)){case"start":ft[ot]-=dt*(et&<?-1:1);break;case"end":ft[ot]+=dt*(et&<?-1:1);break}return ft}const computePosition$1=async(j,_e,et)=>{const{placement:tt="bottom",strategy:rt="absolute",middleware:nt=[],platform:ot}=et,it=nt.filter(Boolean),st=await(ot.isRTL==null?void 0:ot.isRTL(_e));let lt=await ot.getElementRects({reference:j,floating:_e,strategy:rt}),{x:ut,y:ct}=computeCoordsFromPlacement(lt,tt,st),dt=tt,ft={},pt=0;for(let gt=0;gt({name:"arrow",options:j,async fn(_e){const{x:et,y:tt,placement:rt,rects:nt,platform:ot,elements:it,middlewareData:st}=_e,{element:lt,padding:ut=0}=evaluate(j,_e)||{};if(lt==null)return{};const ct=getPaddingObject(ut),dt={x:et,y:tt},ft=getAlignmentAxis(rt),pt=getAxisLength(ft),gt=await ot.getDimensions(lt),mt=ft==="y",bt=mt?"top":"left",_t=mt?"bottom":"right",xt=mt?"clientHeight":"clientWidth",yt=nt.reference[pt]+nt.reference[ft]-dt[ft]-nt.floating[pt],Et=dt[ft]-nt.reference[ft],St=await(ot.getOffsetParent==null?void 0:ot.getOffsetParent(lt));let Tt=St?St[xt]:0;(!Tt||!await(ot.isElement==null?void 0:ot.isElement(St)))&&(Tt=it.floating[xt]||nt.floating[pt]);const kt=yt/2-Et/2,$t=Tt/2-gt[pt]/2-1,Ct=min$4(ct[bt],$t),It=min$4(ct[_t],$t),Nt=Ct,Ot=Tt-gt[pt]-It,jt=Tt/2-gt[pt]/2+kt,Mt=clamp$2(Nt,jt,Ot),Rt=!st.arrow&&getAlignment(rt)!=null&&jt!=Mt&&nt.reference[pt]/2-(jtNt<=0)){var $t,Ct;const Nt=((($t=nt.flip)==null?void 0:$t.index)||0)+1,Ot=Et[Nt];if(Ot)return{data:{index:Nt,overflows:kt},reset:{placement:Ot}};let jt=(Ct=kt.filter(Mt=>Mt.overflows[0]<=0).sort((Mt,Rt)=>Mt.overflows[1]-Rt.overflows[1])[0])==null?void 0:Ct.placement;if(!jt)switch(ft){case"bestFit":{var It;const Mt=(It=kt.map(Rt=>[Rt.placement,Rt.overflows.filter(Lt=>Lt>0).reduce((Lt,Pt)=>Lt+Pt,0)]).sort((Rt,Lt)=>Rt[1]-Lt[1])[0])==null?void 0:It[0];Mt&&(jt=Mt);break}case"initialPlacement":jt=it;break}if(rt!==jt)return{reset:{placement:jt}}}return{}}}};function getSideOffsets(j,_e){return{top:j.top-_e.height,right:j.right-_e.width,bottom:j.bottom-_e.height,left:j.left-_e.width}}function isAnySideFullyClipped(j){return sides.some(_e=>j[_e]>=0)}const hide=function(j){return j===void 0&&(j={}),{name:"hide",options:j,async fn(_e){const{rects:et}=_e,{strategy:tt="referenceHidden",...rt}=evaluate(j,_e);switch(tt){case"referenceHidden":{const nt=await detectOverflow(_e,{...rt,elementContext:"reference"}),ot=getSideOffsets(nt,et.reference);return{data:{referenceHiddenOffsets:ot,referenceHidden:isAnySideFullyClipped(ot)}}}case"escaped":{const nt=await detectOverflow(_e,{...rt,altBoundary:!0}),ot=getSideOffsets(nt,et.floating);return{data:{escapedOffsets:ot,escaped:isAnySideFullyClipped(ot)}}}default:return{}}}}};async function convertValueToCoords(j,_e){const{placement:et,platform:tt,elements:rt}=j,nt=await(tt.isRTL==null?void 0:tt.isRTL(rt.floating)),ot=getSide(et),it=getAlignment(et),st=getSideAxis(et)==="y",lt=["left","top"].includes(ot)?-1:1,ut=nt&&st?-1:1,ct=evaluate(_e,j);let{mainAxis:dt,crossAxis:ft,alignmentAxis:pt}=typeof ct=="number"?{mainAxis:ct,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...ct};return it&&typeof pt=="number"&&(ft=it==="end"?pt*-1:pt),st?{x:ft*ut,y:dt*lt}:{x:dt*lt,y:ft*ut}}const offset$1=function(j){return j===void 0&&(j=0),{name:"offset",options:j,async fn(_e){var et,tt;const{x:rt,y:nt,placement:ot,middlewareData:it}=_e,st=await convertValueToCoords(_e,j);return ot===((et=it.offset)==null?void 0:et.placement)&&(tt=it.arrow)!=null&&tt.alignmentOffset?{}:{x:rt+st.x,y:nt+st.y,data:{...st,placement:ot}}}}},shift$1=function(j){return j===void 0&&(j={}),{name:"shift",options:j,async fn(_e){const{x:et,y:tt,placement:rt}=_e,{mainAxis:nt=!0,crossAxis:ot=!1,limiter:it={fn:mt=>{let{x:bt,y:_t}=mt;return{x:bt,y:_t}}},...st}=evaluate(j,_e),lt={x:et,y:tt},ut=await detectOverflow(_e,st),ct=getSideAxis(getSide(rt)),dt=getOppositeAxis(ct);let ft=lt[dt],pt=lt[ct];if(nt){const mt=dt==="y"?"top":"left",bt=dt==="y"?"bottom":"right",_t=ft+ut[mt],xt=ft-ut[bt];ft=clamp$2(_t,ft,xt)}if(ot){const mt=ct==="y"?"top":"left",bt=ct==="y"?"bottom":"right",_t=pt+ut[mt],xt=pt-ut[bt];pt=clamp$2(_t,pt,xt)}const gt=it.fn({..._e,[dt]:ft,[ct]:pt});return{...gt,data:{x:gt.x-et,y:gt.y-tt}}}}},limitShift=function(j){return j===void 0&&(j={}),{options:j,fn(_e){const{x:et,y:tt,placement:rt,rects:nt,middlewareData:ot}=_e,{offset:it=0,mainAxis:st=!0,crossAxis:lt=!0}=evaluate(j,_e),ut={x:et,y:tt},ct=getSideAxis(rt),dt=getOppositeAxis(ct);let ft=ut[dt],pt=ut[ct];const gt=evaluate(it,_e),mt=typeof gt=="number"?{mainAxis:gt,crossAxis:0}:{mainAxis:0,crossAxis:0,...gt};if(st){const xt=dt==="y"?"height":"width",yt=nt.reference[dt]-nt.floating[xt]+mt.mainAxis,Et=nt.reference[dt]+nt.reference[xt]-mt.mainAxis;ftEt&&(ft=Et)}if(lt){var bt,_t;const xt=dt==="y"?"width":"height",yt=["top","left"].includes(getSide(rt)),Et=nt.reference[ct]-nt.floating[xt]+(yt&&((bt=ot.offset)==null?void 0:bt[ct])||0)+(yt?0:mt.crossAxis),St=nt.reference[ct]+nt.reference[xt]+(yt?0:((_t=ot.offset)==null?void 0:_t[ct])||0)-(yt?mt.crossAxis:0);ptSt&&(pt=St)}return{[dt]:ft,[ct]:pt}}}},size=function(j){return j===void 0&&(j={}),{name:"size",options:j,async fn(_e){const{placement:et,rects:tt,platform:rt,elements:nt}=_e,{apply:ot=()=>{},...it}=evaluate(j,_e),st=await detectOverflow(_e,it),lt=getSide(et),ut=getAlignment(et),ct=getSideAxis(et)==="y",{width:dt,height:ft}=tt.floating;let pt,gt;lt==="top"||lt==="bottom"?(pt=lt,gt=ut===(await(rt.isRTL==null?void 0:rt.isRTL(nt.floating))?"start":"end")?"left":"right"):(gt=lt,pt=ut==="end"?"top":"bottom");const mt=ft-st[pt],bt=dt-st[gt],_t=!_e.middlewareData.shift;let xt=mt,yt=bt;if(ct){const St=dt-st.left-st.right;yt=ut||_t?min$4(bt,St):St}else{const St=ft-st.top-st.bottom;xt=ut||_t?min$4(mt,St):St}if(_t&&!ut){const St=max$4(st.left,0),Tt=max$4(st.right,0),kt=max$4(st.top,0),$t=max$4(st.bottom,0);ct?yt=dt-2*(St!==0||Tt!==0?St+Tt:max$4(st.left,st.right)):xt=ft-2*(kt!==0||$t!==0?kt+$t:max$4(st.top,st.bottom))}await ot({..._e,availableWidth:yt,availableHeight:xt});const Et=await rt.getDimensions(nt.floating);return dt!==Et.width||ft!==Et.height?{reset:{rects:!0}}:{}}}};function getNodeName(j){return isNode(j)?(j.nodeName||"").toLowerCase():"#document"}function getWindow$1(j){var _e;return(j==null||(_e=j.ownerDocument)==null?void 0:_e.defaultView)||window}function getDocumentElement(j){var _e;return(_e=(isNode(j)?j.ownerDocument:j.document)||window.document)==null?void 0:_e.documentElement}function isNode(j){return j instanceof Node||j instanceof getWindow$1(j).Node}function isElement$1(j){return j instanceof Element||j instanceof getWindow$1(j).Element}function isHTMLElement$2(j){return j instanceof HTMLElement||j instanceof getWindow$1(j).HTMLElement}function isShadowRoot(j){return typeof ShadowRoot>"u"?!1:j instanceof ShadowRoot||j instanceof getWindow$1(j).ShadowRoot}function isOverflowElement(j){const{overflow:_e,overflowX:et,overflowY:tt,display:rt}=getComputedStyle$1(j);return/auto|scroll|overlay|hidden|clip/.test(_e+tt+et)&&!["inline","contents"].includes(rt)}function isTableElement(j){return["table","td","th"].includes(getNodeName(j))}function isContainingBlock(j){const _e=isWebKit(),et=getComputedStyle$1(j);return et.transform!=="none"||et.perspective!=="none"||(et.containerType?et.containerType!=="normal":!1)||!_e&&(et.backdropFilter?et.backdropFilter!=="none":!1)||!_e&&(et.filter?et.filter!=="none":!1)||["transform","perspective","filter"].some(tt=>(et.willChange||"").includes(tt))||["paint","layout","strict","content"].some(tt=>(et.contain||"").includes(tt))}function getContainingBlock(j){let _e=getParentNode$1(j);for(;isHTMLElement$2(_e)&&!isLastTraversableNode(_e);){if(isContainingBlock(_e))return _e;_e=getParentNode$1(_e)}return null}function isWebKit(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function isLastTraversableNode(j){return["html","body","#document"].includes(getNodeName(j))}function getComputedStyle$1(j){return getWindow$1(j).getComputedStyle(j)}function getNodeScroll(j){return isElement$1(j)?{scrollLeft:j.scrollLeft,scrollTop:j.scrollTop}:{scrollLeft:j.pageXOffset,scrollTop:j.pageYOffset}}function getParentNode$1(j){if(getNodeName(j)==="html")return j;const _e=j.assignedSlot||j.parentNode||isShadowRoot(j)&&j.host||getDocumentElement(j);return isShadowRoot(_e)?_e.host:_e}function getNearestOverflowAncestor(j){const _e=getParentNode$1(j);return isLastTraversableNode(_e)?j.ownerDocument?j.ownerDocument.body:j.body:isHTMLElement$2(_e)&&isOverflowElement(_e)?_e:getNearestOverflowAncestor(_e)}function getOverflowAncestors(j,_e,et){var tt;_e===void 0&&(_e=[]),et===void 0&&(et=!0);const rt=getNearestOverflowAncestor(j),nt=rt===((tt=j.ownerDocument)==null?void 0:tt.body),ot=getWindow$1(rt);return nt?_e.concat(ot,ot.visualViewport||[],isOverflowElement(rt)?rt:[],ot.frameElement&&et?getOverflowAncestors(ot.frameElement):[]):_e.concat(rt,getOverflowAncestors(rt,[],et))}function getCssDimensions(j){const _e=getComputedStyle$1(j);let et=parseFloat(_e.width)||0,tt=parseFloat(_e.height)||0;const rt=isHTMLElement$2(j),nt=rt?j.offsetWidth:et,ot=rt?j.offsetHeight:tt,it=round$2(et)!==nt||round$2(tt)!==ot;return it&&(et=nt,tt=ot),{width:et,height:tt,$:it}}function unwrapElement(j){return isElement$1(j)?j:j.contextElement}function getScale(j){const _e=unwrapElement(j);if(!isHTMLElement$2(_e))return createCoords(1);const et=_e.getBoundingClientRect(),{width:tt,height:rt,$:nt}=getCssDimensions(_e);let ot=(nt?round$2(et.width):et.width)/tt,it=(nt?round$2(et.height):et.height)/rt;return(!ot||!Number.isFinite(ot))&&(ot=1),(!it||!Number.isFinite(it))&&(it=1),{x:ot,y:it}}const noOffsets=createCoords(0);function getVisualOffsets(j){const _e=getWindow$1(j);return!isWebKit()||!_e.visualViewport?noOffsets:{x:_e.visualViewport.offsetLeft,y:_e.visualViewport.offsetTop}}function shouldAddVisualOffsets(j,_e,et){return _e===void 0&&(_e=!1),!et||_e&&et!==getWindow$1(j)?!1:_e}function getBoundingClientRect(j,_e,et,tt){_e===void 0&&(_e=!1),et===void 0&&(et=!1);const rt=j.getBoundingClientRect(),nt=unwrapElement(j);let ot=createCoords(1);_e&&(tt?isElement$1(tt)&&(ot=getScale(tt)):ot=getScale(j));const it=shouldAddVisualOffsets(nt,et,tt)?getVisualOffsets(nt):createCoords(0);let st=(rt.left+it.x)/ot.x,lt=(rt.top+it.y)/ot.y,ut=rt.width/ot.x,ct=rt.height/ot.y;if(nt){const dt=getWindow$1(nt),ft=tt&&isElement$1(tt)?getWindow$1(tt):tt;let pt=dt.frameElement;for(;pt&&tt&&ft!==dt;){const gt=getScale(pt),mt=pt.getBoundingClientRect(),bt=getComputedStyle$1(pt),_t=mt.left+(pt.clientLeft+parseFloat(bt.paddingLeft))*gt.x,xt=mt.top+(pt.clientTop+parseFloat(bt.paddingTop))*gt.y;st*=gt.x,lt*=gt.y,ut*=gt.x,ct*=gt.y,st+=_t,lt+=xt,pt=getWindow$1(pt).frameElement}}return rectToClientRect({width:ut,height:ct,x:st,y:lt})}function convertOffsetParentRelativeRectToViewportRelativeRect(j){let{rect:_e,offsetParent:et,strategy:tt}=j;const rt=isHTMLElement$2(et),nt=getDocumentElement(et);if(et===nt)return _e;let ot={scrollLeft:0,scrollTop:0},it=createCoords(1);const st=createCoords(0);if((rt||!rt&&tt!=="fixed")&&((getNodeName(et)!=="body"||isOverflowElement(nt))&&(ot=getNodeScroll(et)),isHTMLElement$2(et))){const lt=getBoundingClientRect(et);it=getScale(et),st.x=lt.x+et.clientLeft,st.y=lt.y+et.clientTop}return{width:_e.width*it.x,height:_e.height*it.y,x:_e.x*it.x-ot.scrollLeft*it.x+st.x,y:_e.y*it.y-ot.scrollTop*it.y+st.y}}function getClientRects(j){return Array.from(j.getClientRects())}function getWindowScrollBarX(j){return getBoundingClientRect(getDocumentElement(j)).left+getNodeScroll(j).scrollLeft}function getDocumentRect(j){const _e=getDocumentElement(j),et=getNodeScroll(j),tt=j.ownerDocument.body,rt=max$4(_e.scrollWidth,_e.clientWidth,tt.scrollWidth,tt.clientWidth),nt=max$4(_e.scrollHeight,_e.clientHeight,tt.scrollHeight,tt.clientHeight);let ot=-et.scrollLeft+getWindowScrollBarX(j);const it=-et.scrollTop;return getComputedStyle$1(tt).direction==="rtl"&&(ot+=max$4(_e.clientWidth,tt.clientWidth)-rt),{width:rt,height:nt,x:ot,y:it}}function getViewportRect(j,_e){const et=getWindow$1(j),tt=getDocumentElement(j),rt=et.visualViewport;let nt=tt.clientWidth,ot=tt.clientHeight,it=0,st=0;if(rt){nt=rt.width,ot=rt.height;const lt=isWebKit();(!lt||lt&&_e==="fixed")&&(it=rt.offsetLeft,st=rt.offsetTop)}return{width:nt,height:ot,x:it,y:st}}function getInnerBoundingClientRect(j,_e){const et=getBoundingClientRect(j,!0,_e==="fixed"),tt=et.top+j.clientTop,rt=et.left+j.clientLeft,nt=isHTMLElement$2(j)?getScale(j):createCoords(1),ot=j.clientWidth*nt.x,it=j.clientHeight*nt.y,st=rt*nt.x,lt=tt*nt.y;return{width:ot,height:it,x:st,y:lt}}function getClientRectFromClippingAncestor(j,_e,et){let tt;if(_e==="viewport")tt=getViewportRect(j,et);else if(_e==="document")tt=getDocumentRect(getDocumentElement(j));else if(isElement$1(_e))tt=getInnerBoundingClientRect(_e,et);else{const rt=getVisualOffsets(j);tt={..._e,x:_e.x-rt.x,y:_e.y-rt.y}}return rectToClientRect(tt)}function hasFixedPositionAncestor(j,_e){const et=getParentNode$1(j);return et===_e||!isElement$1(et)||isLastTraversableNode(et)?!1:getComputedStyle$1(et).position==="fixed"||hasFixedPositionAncestor(et,_e)}function getClippingElementAncestors(j,_e){const et=_e.get(j);if(et)return et;let tt=getOverflowAncestors(j,[],!1).filter(it=>isElement$1(it)&&getNodeName(it)!=="body"),rt=null;const nt=getComputedStyle$1(j).position==="fixed";let ot=nt?getParentNode$1(j):j;for(;isElement$1(ot)&&!isLastTraversableNode(ot);){const it=getComputedStyle$1(ot),st=isContainingBlock(ot);!st&&it.position==="fixed"&&(rt=null),(nt?!st&&!rt:!st&&it.position==="static"&&!!rt&&["absolute","fixed"].includes(rt.position)||isOverflowElement(ot)&&!st&&hasFixedPositionAncestor(j,ot))?tt=tt.filter(ut=>ut!==ot):rt=it,ot=getParentNode$1(ot)}return _e.set(j,tt),tt}function getClippingRect(j){let{element:_e,boundary:et,rootBoundary:tt,strategy:rt}=j;const ot=[...et==="clippingAncestors"?getClippingElementAncestors(_e,this._c):[].concat(et),tt],it=ot[0],st=ot.reduce((lt,ut)=>{const ct=getClientRectFromClippingAncestor(_e,ut,rt);return lt.top=max$4(ct.top,lt.top),lt.right=min$4(ct.right,lt.right),lt.bottom=min$4(ct.bottom,lt.bottom),lt.left=max$4(ct.left,lt.left),lt},getClientRectFromClippingAncestor(_e,it,rt));return{width:st.right-st.left,height:st.bottom-st.top,x:st.left,y:st.top}}function getDimensions(j){return getCssDimensions(j)}function getRectRelativeToOffsetParent(j,_e,et){const tt=isHTMLElement$2(_e),rt=getDocumentElement(_e),nt=et==="fixed",ot=getBoundingClientRect(j,!0,nt,_e);let it={scrollLeft:0,scrollTop:0};const st=createCoords(0);if(tt||!tt&&!nt)if((getNodeName(_e)!=="body"||isOverflowElement(rt))&&(it=getNodeScroll(_e)),tt){const lt=getBoundingClientRect(_e,!0,nt,_e);st.x=lt.x+_e.clientLeft,st.y=lt.y+_e.clientTop}else rt&&(st.x=getWindowScrollBarX(rt));return{x:ot.left+it.scrollLeft-st.x,y:ot.top+it.scrollTop-st.y,width:ot.width,height:ot.height}}function getTrueOffsetParent(j,_e){return!isHTMLElement$2(j)||getComputedStyle$1(j).position==="fixed"?null:_e?_e(j):j.offsetParent}function getOffsetParent(j,_e){const et=getWindow$1(j);if(!isHTMLElement$2(j))return et;let tt=getTrueOffsetParent(j,_e);for(;tt&&isTableElement(tt)&&getComputedStyle$1(tt).position==="static";)tt=getTrueOffsetParent(tt,_e);return tt&&(getNodeName(tt)==="html"||getNodeName(tt)==="body"&&getComputedStyle$1(tt).position==="static"&&!isContainingBlock(tt))?et:tt||getContainingBlock(j)||et}const getElementRects=async function(j){let{reference:_e,floating:et,strategy:tt}=j;const rt=this.getOffsetParent||getOffsetParent,nt=this.getDimensions;return{reference:getRectRelativeToOffsetParent(_e,await rt(et),tt),floating:{x:0,y:0,...await nt(et)}}};function isRTL(j){return getComputedStyle$1(j).direction==="rtl"}const platform={convertOffsetParentRelativeRectToViewportRelativeRect,getDocumentElement,getClippingRect,getOffsetParent,getElementRects,getClientRects,getDimensions,getScale,isElement:isElement$1,isRTL},computePosition=(j,_e,et)=>{const tt=new Map,rt={platform,...et},nt={...rt.platform,_c:tt};return computePosition$1(j,_e,{...rt,platform:nt})};function parseFloatingUIPlacement(j){const _e=j.split("-");return{side:_e[0],alignment:_e[1]}}const getParentNode=j=>j.nodeName==="HTML"?j:j.parentNode||j.host,getStyleComputedProperty=j=>{var _e;return j.nodeType!==1?{}:((_e=j.ownerDocument)===null||_e===void 0?void 0:_e.defaultView).getComputedStyle(j,null)},getScrollParent=j=>{const _e=j&&getParentNode(j);if(!_e)return document.body;switch(_e.nodeName){case"HTML":case"BODY":return _e.ownerDocument.body;case"#document":return _e.body}const{overflow:et,overflowX:tt,overflowY:rt}=getStyleComputedProperty(_e);return/(auto|scroll|overlay)/.test(et+rt+tt)?_e:getScrollParent(_e)},hasScrollParent=j=>{var _e;const et=getScrollParent(j);return et?et!==((_e=et.ownerDocument)===null||_e===void 0?void 0:_e.body):!1};function getBoundary(j,_e){if(_e==="window")return j==null?void 0:j.ownerDocument.documentElement;if(_e==="clippingParents")return"clippingAncestors";if(_e==="scrollParent"){let et=getScrollParent(j);return et.nodeName==="BODY"&&(et=j==null?void 0:j.ownerDocument.documentElement),et}return _e}function mergeArrowOffset(j,_e){return typeof j=="number"||typeof j=="object"&&j!==null?addArrowOffset(j,_e):typeof j=="function"?et=>{const tt=j(et);return addArrowOffset(tt,_e)}:{mainAxis:_e}}const addArrowOffset=(j,_e)=>{if(typeof j=="number")return{mainAxis:j+_e};var et;return{...j,mainAxis:((et=j.mainAxis)!==null&&et!==void 0?et:0)+_e}};function toFloatingUIPadding(j,_e){if(typeof j=="number")return j;const{start:et,end:tt,...rt}=j,nt=rt,ot=_e?"end":"start",it=_e?"start":"end";return j[ot]&&(nt.left=j[ot]),j[it]&&(nt.right=j[it]),nt}const getPositionMap$1=j=>({above:"top",below:"bottom",before:j?"right":"left",after:j?"left":"right"}),getAlignmentMap$1=()=>({start:"start",end:"end",top:"start",bottom:"end",center:void 0}),shouldAlignToCenter=(j,_e)=>{const et=j==="above"||j==="below",tt=_e==="top"||_e==="bottom";return et&&tt||!et&&!tt},toFloatingUIPlacement=(j,_e,et)=>{const tt=shouldAlignToCenter(_e,j)?"center":j,rt=_e&&getPositionMap$1(et)[_e],nt=tt&&getAlignmentMap$1()[tt];return rt&&nt?`${rt}-${nt}`:rt},getPositionMap=()=>({top:"above",bottom:"below",right:"after",left:"before"}),getAlignmentMap=j=>j==="above"||j==="below"?{start:"start",end:"end"}:{start:"top",end:"bottom"},fromFloatingUIPlacement=j=>{const{side:_e,alignment:et}=parseFloatingUIPlacement(j),tt=getPositionMap()[_e],rt=et&&getAlignmentMap(tt)[et];return{position:tt,alignment:rt}},shorthandLookup={above:{position:"above",align:"center"},"above-start":{position:"above",align:"start"},"above-end":{position:"above",align:"end"},below:{position:"below",align:"center"},"below-start":{position:"below",align:"start"},"below-end":{position:"below",align:"end"},before:{position:"before",align:"center"},"before-top":{position:"before",align:"top"},"before-bottom":{position:"before",align:"bottom"},after:{position:"after",align:"center"},"after-top":{position:"after",align:"top"},"after-bottom":{position:"after",align:"bottom"}};function resolvePositioningShorthand(j){return j==null?{}:typeof j=="string"?shorthandLookup[j]:j}function useCallbackRef(j,_e,et){const tt=reactExports.useRef(!0),[rt]=reactExports.useState(()=>({value:j,callback:_e,facade:{get current(){return rt.value},set current(nt){const ot=rt.value;if(ot!==nt){if(rt.value=nt,et&&tt.current)return;rt.callback(nt,ot)}}}}));return useIsomorphicLayoutEffect$1(()=>{tt.current=!1},[]),rt.callback=_e,rt.facade}function debounce$3(j){let _e;return()=>(_e||(_e=new Promise(et=>{Promise.resolve().then(()=>{_e=void 0,et(j())})})),_e)}function writeArrowUpdates(j){const{arrow:_e,middlewareData:et}=j;if(!et.arrow||!_e)return;const{x:tt,y:rt}=et.arrow;Object.assign(_e.style,{left:`${tt}px`,top:`${rt}px`})}function writeContainerUpdates(j){var _e,et,tt;const{container:rt,placement:nt,middlewareData:ot,strategy:it,lowPPI:st,coordinates:lt,useTransform:ut=!0}=j;if(!rt)return;rt.setAttribute(DATA_POSITIONING_PLACEMENT,nt),rt.removeAttribute(DATA_POSITIONING_INTERSECTING),ot.intersectionObserver.intersecting&&rt.setAttribute(DATA_POSITIONING_INTERSECTING,""),rt.removeAttribute(DATA_POSITIONING_ESCAPED),!((_e=ot.hide)===null||_e===void 0)&&_e.escaped&&rt.setAttribute(DATA_POSITIONING_ESCAPED,""),rt.removeAttribute(DATA_POSITIONING_HIDDEN),!((et=ot.hide)===null||et===void 0)&&et.referenceHidden&&rt.setAttribute(DATA_POSITIONING_HIDDEN,"");const ct=((tt=rt.ownerDocument.defaultView)===null||tt===void 0?void 0:tt.devicePixelRatio)||1,dt=Math.round(lt.x*ct)/ct,ft=Math.round(lt.y*ct)/ct;if(Object.assign(rt.style,{position:it}),ut){Object.assign(rt.style,{transform:st?`translate(${dt}px, ${ft}px)`:`translate3d(${dt}px, ${ft}px, 0)`});return}Object.assign(rt.style,{left:`${dt}px`,top:`${ft}px`})}const normalizeAutoSize=j=>{switch(j){case"always":case!0:return{applyMaxWidth:!0,applyMaxHeight:!0};case"width-always":case"width":return{applyMaxWidth:!0,applyMaxHeight:!1};case"height-always":case"height":return{applyMaxWidth:!1,applyMaxHeight:!0};default:return!1}};function coverTarget(){return{name:"coverTarget",fn:j=>{const{placement:_e,rects:et,x:tt,y:rt}=j,nt=parseFloatingUIPlacement(_e).side,ot={x:tt,y:rt};switch(nt){case"bottom":ot.y-=et.reference.height;break;case"top":ot.y+=et.reference.height;break;case"left":ot.x+=et.reference.width;break;case"right":ot.x-=et.reference.width;break}return ot}}}function flip(j){const{hasScrollableElement:_e,flipBoundary:et,container:tt,fallbackPositions:rt=[],isRtl:nt}=j,ot=rt.reduce((it,st)=>{const{position:lt,align:ut}=resolvePositioningShorthand(st),ct=toFloatingUIPlacement(ut,lt,nt);return ct&&it.push(ct),it},[]);return flip$1({..._e&&{boundary:"clippingAncestors"},...et&&{altBoundary:!0,boundary:getBoundary(tt,et)},fallbackStrategy:"bestFit",...ot.length&&{fallbackPlacements:ot}})}function intersecting(){return{name:"intersectionObserver",fn:async j=>{const _e=j.rects.floating,et=await detectOverflow(j,{altBoundary:!0}),tt=et.top<_e.height&&et.top>0,rt=et.bottom<_e.height&&et.bottom>0;return{data:{intersecting:tt||rt}}}}}const resetMaxSize=j=>({name:"resetMaxSize",fn({middlewareData:_e,elements:et}){var tt;if(!((tt=_e.resetMaxSize)===null||tt===void 0)&&tt.maxSizeAlreadyReset)return{};const{applyMaxWidth:rt,applyMaxHeight:nt}=j;return rt&&(et.floating.style.removeProperty("box-sizing"),et.floating.style.removeProperty("max-width"),et.floating.style.removeProperty("width")),nt&&(et.floating.style.removeProperty("box-sizing"),et.floating.style.removeProperty("max-height"),et.floating.style.removeProperty("height")),{data:{maxSizeAlreadyReset:!0},reset:{rects:!0}}}});function maxSize(j,_e){const{container:et,overflowBoundary:tt}=_e;return size({...tt&&{altBoundary:!0,boundary:getBoundary(et,tt)},apply({availableHeight:rt,availableWidth:nt,elements:ot,rects:it}){const st=(ct,dt,ft)=>{if(ct&&(ot.floating.style.setProperty("box-sizing","border-box"),ot.floating.style.setProperty(`max-${dt}`,`${ft}px`),it.floating[dt]>ft)){ot.floating.style.setProperty(dt,`${ft}px`);const pt=dt==="width"?"x":"y";ot.floating.style.getPropertyValue(`overflow-${pt}`)||ot.floating.style.setProperty(`overflow-${pt}`,"auto")}},{applyMaxWidth:lt,applyMaxHeight:ut}=j;st(lt,"width",nt),st(ut,"height",rt)}})}function getFloatingUIOffset(j){return!j||typeof j=="number"||typeof j=="object"?j:({rects:{floating:_e,reference:et},placement:tt})=>{const{position:rt,alignment:nt}=fromFloatingUIPlacement(tt);return j({positionedRect:_e,targetRect:et,position:rt,alignment:nt})}}function offset(j){const _e=getFloatingUIOffset(j);return offset$1(_e)}function shift(j){const{hasScrollableElement:_e,disableTether:et,overflowBoundary:tt,container:rt,overflowBoundaryPadding:nt,isRtl:ot}=j;return shift$1({..._e&&{boundary:"clippingAncestors"},...et&&{crossAxis:et==="all",limiter:limitShift({crossAxis:et!=="all",mainAxis:!1})},...nt&&{padding:toFloatingUIPadding(nt,ot)},...tt&&{altBoundary:!0,boundary:getBoundary(rt,tt)}})}const matchTargetSizeCssVar="--fui-match-target-size";function matchTargetSize(){return{name:"matchTargetSize",fn:async j=>{const{rects:{reference:_e,floating:et},elements:{floating:tt},middlewareData:{matchTargetSize:{matchTargetSizeAttempt:rt=!1}={}}}=j;if(_e.width===et.width||rt)return{};const{width:nt}=_e;return tt.style.setProperty(matchTargetSizeCssVar,`${nt}px`),tt.style.width||(tt.style.width=`var(${matchTargetSizeCssVar})`),{data:{matchTargetSizeAttempt:!0},reset:{rects:!0}}}}}function listScrollParents(j){const _e=[];let et=j;for(;et;){const tt=getScrollParent(et);if(j.ownerDocument.body===tt){_e.push(tt);break}_e.push(tt),et=tt}return _e}function createPositionManager(j){const{container:_e,target:et,arrow:tt,strategy:rt,middleware:nt,placement:ot,useTransform:it=!0}=j;let st=!1;if(!et||!_e)return{updatePosition:()=>{},dispose:()=>{}};let lt=!0;const ut=new Set,ct=_e.ownerDocument.defaultView;Object.assign(_e.style,{position:"fixed",left:0,top:0,margin:0});const dt=()=>{st||(lt&&(listScrollParents(_e).forEach(gt=>ut.add(gt)),isHTMLElement$4(et)&&listScrollParents(et).forEach(gt=>ut.add(gt)),ut.forEach(gt=>{gt.addEventListener("scroll",ft,{passive:!0})}),lt=!1),Object.assign(_e.style,{position:rt}),computePosition(et,_e,{placement:ot,middleware:nt,strategy:rt}).then(({x:gt,y:mt,middlewareData:bt,placement:_t})=>{st||(writeArrowUpdates({arrow:tt,middlewareData:bt}),writeContainerUpdates({container:_e,middlewareData:bt,placement:_t,coordinates:{x:gt,y:mt},lowPPI:((ct==null?void 0:ct.devicePixelRatio)||1)<=1,strategy:rt,useTransform:it}))}).catch(gt=>{}))},ft=debounce$3(()=>dt()),pt=()=>{st=!0,ct&&(ct.removeEventListener("scroll",ft),ct.removeEventListener("resize",ft)),ut.forEach(gt=>{gt.removeEventListener("scroll",ft)}),ut.clear()};return ct&&(ct.addEventListener("scroll",ft,{passive:!0}),ct.addEventListener("resize",ft)),ft(),{updatePosition:ft,dispose:pt}}function usePositioning(j){const _e=reactExports.useRef(null),et=reactExports.useRef(null),tt=reactExports.useRef(null),rt=reactExports.useRef(null),nt=reactExports.useRef(null),{enabled:ot=!0}=j,it=usePositioningOptions(j),st=reactExports.useCallback(()=>{_e.current&&_e.current.dispose(),_e.current=null;var ft;const pt=(ft=tt.current)!==null&&ft!==void 0?ft:et.current;ot&&canUseDOM$3()&&pt&&rt.current&&(_e.current=createPositionManager({container:rt.current,target:pt,arrow:nt.current,...it(rt.current,nt.current)}))},[ot,it]),lt=useEventCallback$3(ft=>{tt.current=ft,st()});reactExports.useImperativeHandle(j.positioningRef,()=>({updatePosition:()=>{var ft;return(ft=_e.current)===null||ft===void 0?void 0:ft.updatePosition()},setTarget:ft=>{j.target,lt(ft)}}),[j.target,lt]),useIsomorphicLayoutEffect$1(()=>{var ft;lt((ft=j.target)!==null&&ft!==void 0?ft:null)},[j.target,lt]),useIsomorphicLayoutEffect$1(()=>{st()},[st]);const ut=useCallbackRef(null,ft=>{et.current!==ft&&(et.current=ft,st())}),ct=useCallbackRef(null,ft=>{rt.current!==ft&&(rt.current=ft,st())}),dt=useCallbackRef(null,ft=>{nt.current!==ft&&(nt.current=ft,st())});return{targetRef:ut,containerRef:ct,arrowRef:dt}}function usePositioningOptions(j){const{align:_e,arrowPadding:et,autoSize:tt,coverTarget:rt,flipBoundary:nt,offset:ot,overflowBoundary:it,pinned:st,position:lt,unstable_disableTether:ut,positionFixed:ct,strategy:dt,overflowBoundaryPadding:ft,fallbackPositions:pt,useTransform:gt,matchTargetSize:mt}=j,{dir:bt,targetDocument:_t}=useFluent(),xt=bt==="rtl",yt=dt??ct?"fixed":"absolute",Et=normalizeAutoSize(tt);return reactExports.useCallback((St,Tt)=>{const kt=hasScrollParent(St),$t=[Et&&resetMaxSize(Et),mt&&matchTargetSize(),ot&&offset(ot),rt&&coverTarget(),!st&&flip({container:St,flipBoundary:nt,hasScrollableElement:kt,isRtl:xt,fallbackPositions:pt}),shift({container:St,hasScrollableElement:kt,overflowBoundary:it,disableTether:ut,overflowBoundaryPadding:ft,isRtl:xt}),Et&&maxSize(Et,{container:St,overflowBoundary:it}),intersecting(),Tt&&arrow$1({element:Tt,padding:et}),hide({strategy:"referenceHidden"}),hide({strategy:"escaped"}),!1].filter(Boolean);return{placement:toFloatingUIPlacement(_e,lt,xt),middleware:$t,strategy:yt,useTransform:gt}},[_e,et,Et,rt,ut,nt,xt,ot,it,st,lt,yt,ft,pt,gt,mt,_t])}const usePositioningMouseTarget=j=>{const[_e,et]=reactExports.useState(j);return[_e,rt=>{if(rt==null){et(void 0);return}let nt;rt instanceof MouseEvent?nt=rt:nt=rt.nativeEvent,nt instanceof MouseEvent;const ot=createVirtualElementFromClick(nt);et(ot)}]},PopoverContext=createContext(void 0),popoverContextDefaultValue={open:!1,setOpen:()=>null,toggleOpen:()=>null,triggerRef:{current:null},contentRef:{current:null},arrowRef:{current:null},openOnContext:!1,openOnHover:!1,size:"medium",trapFocus:!1,inline:!1};PopoverContext.Provider;const usePopoverContext_unstable=j=>useContextSelector(PopoverContext,(_e=popoverContextDefaultValue)=>j(_e)),usePopoverSurface_unstable=(j,_e)=>{const et=usePopoverContext_unstable(_t=>_t.contentRef),tt=usePopoverContext_unstable(_t=>_t.openOnHover),rt=usePopoverContext_unstable(_t=>_t.setOpen),nt=usePopoverContext_unstable(_t=>_t.mountNode),ot=usePopoverContext_unstable(_t=>_t.arrowRef),it=usePopoverContext_unstable(_t=>_t.size),st=usePopoverContext_unstable(_t=>_t.withArrow),lt=usePopoverContext_unstable(_t=>_t.appearance),ut=usePopoverContext_unstable(_t=>_t.trapFocus),ct=usePopoverContext_unstable(_t=>_t.inertTrapFocus),dt=usePopoverContext_unstable(_t=>_t.inline),{modalAttributes:ft}=useModalAttributes({trapFocus:ut,legacyTrapFocus:!ct,alwaysFocusable:!ut}),pt={inline:dt,appearance:lt,withArrow:st,size:it,arrowRef:ot,mountNode:nt,components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,et),role:ut?"dialog":"group","aria-modal":ut?!0:void 0,...ft,...j}),{elementType:"div"})},{onMouseEnter:gt,onMouseLeave:mt,onKeyDown:bt}=pt.root;return pt.root.onMouseEnter=_t=>{tt&&rt(_t,!0),gt==null||gt(_t)},pt.root.onMouseLeave=_t=>{tt&&rt(_t,!1),mt==null||mt(_t)},pt.root.onKeyDown=_t=>{var xt;_t.key==="Escape"&&(!((xt=et.current)===null||xt===void 0)&&xt.contains(_t.target))&&(_t.preventDefault(),rt(_t,!1)),bt==null||bt(_t)},pt};function toMountNodeProps(j){return isHTMLElement$4(j)?{element:j}:typeof j=="object"?j===null?{element:null}:j:{}}var getCurrentOwner=()=>reactExports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner.current,useIsStrictMode=()=>!1,effectSet=new WeakSet;function useStrictEffect(j,_e){const et=getCurrentOwner();reactExports.useEffect(()=>{if(!effectSet.has(et)){effectSet.add(et),j();return}return j()},_e)}var memoSet=new WeakSet;function useStrictMemo(j,_e){return reactExports.useMemo(()=>{const et=getCurrentOwner();return memoSet.has(et)?j():(memoSet.add(et),null)},_e)}function useDisposable(j,_e){var et;const tt=useIsStrictMode()&&!1,rt=tt?useStrictMemo:reactExports.useMemo,nt=tt?useStrictEffect:reactExports.useEffect,[ot,it]=(et=rt(()=>j(),_e))!=null?et:[null,()=>null];return nt(()=>it,_e),ot}const usePortalMountNodeStylesStyles=__styles({root:{qhf8xq:"f1euv43f",Bhzewxz:"f15twtuk",oyh7mz:["f1vgc2s3","f1e31b4d"],j35jbq:["f1e31b4d","f1vgc2s3"],Bj3rh1h:"f494woh"}},{d:[".f1euv43f{position:absolute;}",".f15twtuk{top:0;}",".f1vgc2s3{left:0;}",".f1e31b4d{right:0;}",".f494woh{z-index:1000000;}"]}),useInsertionEffect=React$1.useInsertionEffect,usePortalMountNode=j=>{const{targetDocument:_e,dir:et}=useFluent(),tt=usePortalMountNode$1(),rt=useFocusVisible(),nt=usePortalMountNodeStylesStyles(),ot=useThemeClassName(),it=mergeClasses(ot,nt.root,j.className),st=tt??(_e==null?void 0:_e.body),lt=useDisposable(()=>{if(st===void 0||j.disabled)return[null,()=>null];const ut=st.ownerDocument.createElement("div");return st.appendChild(ut),[ut,()=>ut.remove()]},[st]);return useInsertionEffect?useInsertionEffect(()=>{if(!lt)return;const ut=it.split(" ").filter(Boolean);return lt.classList.add(...ut),lt.setAttribute("dir",et),rt.current=lt,()=>{lt.classList.remove(...ut),lt.removeAttribute("dir")}},[it,et,lt,rt]):reactExports.useMemo(()=>{lt&&(lt.className=it,lt.setAttribute("dir",et),rt.current=lt)},[it,et,lt,rt]),lt},usePortal_unstable=j=>{const{element:_e,className:et}=toMountNodeProps(j.mountNode),tt=reactExports.useRef(null),rt=usePortalMountNode({disabled:!!_e,className:et}),nt=_e??rt,ot={children:j.children,mountNode:nt,virtualParentRootRef:tt};return reactExports.useEffect(()=>{if(!nt)return;const it=tt.current,st=nt.contains(it);if(it&&!st)return setVirtualParent$1(nt,it),()=>{setVirtualParent$1(nt,void 0)}},[tt,nt]),ot},renderPortal_unstable=j=>reactExports.createElement("span",{hidden:!0,ref:j.virtualParentRootRef},j.mountNode&&reactDomExports.createPortal(j.children,j.mountNode)),Portal$1=j=>{const _e=usePortal_unstable(j);return renderPortal_unstable(_e)};Portal$1.displayName="Portal";const renderPopoverSurface_unstable=j=>{const _e=jsxs(j.root,{children:[j.withArrow&&jsx$1("div",{ref:j.arrowRef,className:j.arrowClassName}),j.root.children]});return j.inline?_e:jsx$1(Portal$1,{mountNode:j.mountNode,children:_e})},popoverSurfaceClassNames={root:"fui-PopoverSurface"},arrowHeights={small:6,medium:8,large:8},useStyles$v=__styles({root:{sj55zd:"f19n0e5",De3pzq:"fxugw4r",E5pizo:"f1hg901r",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B4j52fo:"f5ogflp",Bekrc4i:["f1hqa2wf","finvdd3"],Bn0qgzm:"f1f09k3d",ibv6hh:["finvdd3","f1hqa2wf"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"],Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B93otf3:"f18k4bn6",vin17d:"fo1kyvf",Ezkn3b:"fetxo7e",nyiy2g:"f8x1vz1",swvrvq:"f8g0anz",Bkovbt3:"fezwn9i",hgjdhn:"fz5efge",fsy9dk:"f1ydixl4",B3ogreh:"f8dgqj5",jv49x5:"fnyfnr8",Bk7o48c:"fgw77r4",Bv12yb3:"ftje0s4",z0t1cu:"fi19xcv",Bks05zx:"f1mzajhk",Bvtglag:"fjp4h9y"},inline:{Bj3rh1h:"f19g0ac"},inverted:{De3pzq:"fg3r6xk",sj55zd:"fonrgv7"},brand:{De3pzq:"ffp7eso",sj55zd:"f1phragk"},smallPadding:{z8tnut:"f1kcqot9",z189sj:["f11qrl6u","fjlbh76"],Byoj8tv:"fpe6lb7",uwmqm3:["fjlbh76","f11qrl6u"]},mediumPadding:{z8tnut:"fqag9an",z189sj:["f1gbmcue","f1rh9g5y"],Byoj8tv:"fp67ikv",uwmqm3:["f1rh9g5y","f1gbmcue"]},largePadding:{z8tnut:"fc7z3ec",z189sj:["fat0sn4","fekwl8i"],Byoj8tv:"fe2my4m",uwmqm3:["fekwl8i","fat0sn4"]},smallArrow:{a9b677:"f1ekdpwm",Bqenvij:"f83vc9z"},mediumLargeArrow:{a9b677:"f1kmc0fn",Bqenvij:"fb6lvc5"},arrow:{qhf8xq:"f1euv43f",De3pzq:"f1u2r49w",Bcdw1i0:"fd7fpy0",Bj3rh1h:"f1bsuimh",Ftih45:"f1wl9k8s",B1puzpu:"f1wkw4r9",Brfgrao:"f1j7ml58",Bcvre1j:"fyl8oag",Ccq8qp:"frdoeuz",Baz25je:"fb81m9q",cmx5o7:"f1ljr5q2",B4f6apu:"fyfemzf",m598lv:"focyt6c",Bk5zm6e:"fnhxbxj",y0oebl:"fdw6hkg",qa3bma:"f11yjt3y",Bqjgrrk:"f1172wan",Budzafs:["f9e5op9","f112wvtl"],Hv9wc6:["f1500xdc","f1it0ps5"],hl6cv3:"f1773hnp",c8svkw:"fw7o64x",yayu3t:"f1v7783n",nr3p0k:"f1f0d6v",rhl9o9:"fh2hsk5",wiz9v7:"f1gj3y7g",B6q6orb:"f11yvu4",ndpsmx:"f17lejdj"}},{d:[".f19n0e5{color:var(--colorNeutralForeground1);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1hg901r{box-shadow:var(--shadow16);}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f5ogflp{border-top-width:1px;}",".f1hqa2wf{border-right-width:1px;}",".finvdd3{border-left-width:1px;}",".f1f09k3d{border-bottom-width:1px;}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f18k4bn6{animation-composition:accumulate;}",".fo1kyvf{animation-duration:var(--durationSlower);}",".fetxo7e{animation-timing-function:var(--curveDecelerateMid);}",".f8x1vz1{--fui-positioning-slide-distance-x:0px;}",".f8g0anz{--fui-positioning-slide-distance-y:10px;}",".fezwn9i[data-popper-placement^=right]{--fui-positioning-slide-distance-x:-10px;}",".fz5efge[data-popper-placement^=right]{--fui-positioning-slide-distance-y:0px;}",".f1ydixl4[data-popper-placement^=bottom]{--fui-positioning-slide-distance-x:0px;}",".f8dgqj5[data-popper-placement^=bottom]{--fui-positioning-slide-distance-y:-10px;}",".fnyfnr8[data-popper-placement^=left]{--fui-positioning-slide-distance-x:10px;}",".fgw77r4[data-popper-placement^=left]{--fui-positioning-slide-distance-y:0px;}",".ftje0s4{animation-name:f5j8bii,f79suad;}",".f19g0ac{z-index:1;}",".fg3r6xk{background-color:var(--colorNeutralBackgroundStatic);}",".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".f1kcqot9{padding-top:12px;}",".f11qrl6u{padding-right:12px;}",".fjlbh76{padding-left:12px;}",".fpe6lb7{padding-bottom:12px;}",".fqag9an{padding-top:16px;}",".f1gbmcue{padding-right:16px;}",".f1rh9g5y{padding-left:16px;}",".fp67ikv{padding-bottom:16px;}",".fc7z3ec{padding-top:20px;}",".fat0sn4{padding-right:20px;}",".fekwl8i{padding-left:20px;}",".fe2my4m{padding-bottom:20px;}",".f1ekdpwm{width:8.484px;}",".f83vc9z{height:8.484px;}",".f1kmc0fn{width:11.312px;}",".fb6lvc5{height:11.312px;}",".f1euv43f{position:absolute;}",".f1u2r49w{background-color:inherit;}",".fd7fpy0{visibility:hidden;}",".f1bsuimh{z-index:-1;}",'.f1wl9k8s::before{content:"";}',".f1wkw4r9::before{visibility:visible;}",".f1j7ml58::before{position:absolute;}",".fyl8oag::before{box-sizing:border-box;}",".frdoeuz::before{width:inherit;}",".fb81m9q::before{height:inherit;}",".f1ljr5q2::before{background-color:inherit;}",".fyfemzf::before{border-right-width:1px;}",".focyt6c::before{border-right-style:solid;}",".fnhxbxj::before{border-right-color:var(--colorTransparentStroke);}",".fdw6hkg::before{border-bottom-width:1px;}",".f11yjt3y::before{border-bottom-style:solid;}",".f1172wan::before{border-bottom-color:var(--colorTransparentStroke);}",".f9e5op9::before{border-bottom-right-radius:var(--borderRadiusSmall);}",".f112wvtl::before{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1500xdc::before{transform:rotate(var(--fui-positioning-angle)) translate(0, 50%) rotate(45deg);}",".f1it0ps5::before{transform:rotate(var(--fui-positioning-angle)) translate(0, 50%) rotate(-45deg);}",'[data-popper-placement^="top"] .f1773hnp{bottom:-1px;}','[data-popper-placement^="top"] .fw7o64x{--fui-positioning-angle:0;}','[data-popper-placement^="right"] .f1v7783n{left:-1px;}','[data-popper-placement^="right"] .f1f0d6v{--fui-positioning-angle:90deg;}','[data-popper-placement^="bottom"] .fh2hsk5{top:-1px;}','[data-popper-placement^="bottom"] .f1gj3y7g{--fui-positioning-angle:180deg;}','[data-popper-placement^="left"] .f11yvu4{right:-1px;}','[data-popper-placement^="left"] .f17lejdj{--fui-positioning-angle:270deg;}'],k:["@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}","@keyframes f79suad{from{transform:translate(var(--fui-positioning-slide-distance-x), var(--fui-positioning-slide-distance-y));}}"],m:[["@media (prefers-reduced-motion){.fi19xcv[data-popper-placement]{animation-duration:1ms;}}",{m:"(prefers-reduced-motion)"}],["@media (prefers-reduced-motion){.f1mzajhk[data-popper-placement]{animation-name:f5j8bii;}}",{m:"(prefers-reduced-motion)"}]],t:["@supports not (animation-composition: accumulate){.fjp4h9y[data-popper-placement]{animation-name:f5j8bii;}}"]}),usePopoverSurfaceStyles_unstable=j=>{const _e=useStyles$v();return j.root.className=mergeClasses(popoverSurfaceClassNames.root,_e.root,j.inline&&_e.inline,j.size==="small"&&_e.smallPadding,j.size==="medium"&&_e.mediumPadding,j.size==="large"&&_e.largePadding,j.appearance==="inverted"&&_e.inverted,j.appearance==="brand"&&_e.brand,j.root.className),j.arrowClassName=mergeClasses(_e.arrow,j.size==="small"?_e.smallArrow:_e.mediumLargeArrow),j},PopoverSurface=reactExports.forwardRef((j,_e)=>{const et=usePopoverSurface_unstable(j,_e);return usePopoverSurfaceStyles_unstable(et),useCustomStyleHook("usePopoverSurfaceStyles_unstable")(et),renderPopoverSurface_unstable(et)});PopoverSurface.displayName="PopoverSurface";const popoverSurfaceBorderRadius=4,usePopover_unstable=j=>{const[_e,et]=usePositioningMouseTarget(),tt={size:"medium",contextTarget:_e,setContextTarget:et,...j},rt=reactExports.Children.toArray(j.children);let nt,ot;rt.length===2?(nt=rt[0],ot=rt[1]):rt.length===1&&(ot=rt[0]);const[it,st]=useOpenState(tt),lt=reactExports.useRef(0),ut=useEventCallback$3((xt,yt)=>{if(clearTimeout(lt.current),!(xt instanceof Event)&&xt.persist&&xt.persist(),xt.type==="mouseleave"){var Et;lt.current=setTimeout(()=>{st(xt,yt)},(Et=j.mouseLeaveDelay)!==null&&Et!==void 0?Et:500)}else st(xt,yt)});reactExports.useEffect(()=>()=>{clearTimeout(lt.current)},[]);const ct=reactExports.useCallback(xt=>{ut(xt,!it)},[ut,it]),dt=usePopoverRefs(tt),{targetDocument:ft}=useFluent();var pt;useOnClickOutside({contains:elementContains$1,element:ft,callback:xt=>ut(xt,!1),refs:[dt.triggerRef,dt.contentRef],disabled:!it,disabledFocusOnIframe:!(!((pt=j.closeOnIframeFocus)!==null&&pt!==void 0)||pt)});const gt=tt.openOnContext||tt.closeOnScroll;useOnScrollOutside({contains:elementContains$1,element:ft,callback:xt=>ut(xt,!1),refs:[dt.triggerRef,dt.contentRef],disabled:!it||!gt});const{findFirstFocusable:mt}=useFocusFinders();reactExports.useEffect(()=>{if(!j.unstable_disableAutoFocus&&it&&dt.contentRef.current){var xt;const yt=(xt=dt.contentRef.current.getAttribute("tabIndex"))!==null&&xt!==void 0?xt:void 0,Et=isNaN(yt)?mt(dt.contentRef.current):dt.contentRef.current;Et==null||Et.focus()}},[mt,it,dt.contentRef,j.unstable_disableAutoFocus]);var bt,_t;return{...tt,...dt,inertTrapFocus:(bt=j.inertTrapFocus)!==null&&bt!==void 0?bt:j.legacyTrapFocus===void 0?!1:!j.legacyTrapFocus,popoverTrigger:nt,popoverSurface:ot,open:it,setOpen:ut,toggleOpen:ct,setContextTarget:et,contextTarget:_e,inline:(_t=j.inline)!==null&&_t!==void 0?_t:!1}};function useOpenState(j){const _e=useEventCallback$3((ot,it)=>{var st;return(st=j.onOpenChange)===null||st===void 0?void 0:st.call(j,ot,it)}),[et,tt]=useControllableState({state:j.open,defaultState:j.defaultOpen,initialState:!1});j.open=et!==void 0?et:j.open;const rt=j.setContextTarget,nt=reactExports.useCallback((ot,it)=>{it&&ot.type==="contextmenu"&&rt(ot),it||rt(void 0),tt(it),_e==null||_e(ot,{open:it})},[tt,_e,rt]);return[et,nt]}function usePopoverRefs(j){const _e={position:"above",align:"center",arrowPadding:2*popoverSurfaceBorderRadius,target:j.openOnContext?j.contextTarget:void 0,...resolvePositioningShorthand(j.positioning)};_e.coverTarget&&(j.withArrow=!1),j.withArrow&&(_e.offset=mergeArrowOffset(_e.offset,arrowHeights[j.size]));const{targetRef:et,containerRef:tt,arrowRef:rt}=usePositioning(_e);return{triggerRef:et,contentRef:tt,arrowRef:rt}}const renderPopover_unstable=j=>{const{appearance:_e,arrowRef:et,contentRef:tt,inline:rt,mountNode:nt,open:ot,openOnContext:it,openOnHover:st,setOpen:lt,size:ut,toggleOpen:ct,trapFocus:dt,triggerRef:ft,withArrow:pt,inertTrapFocus:gt}=j;return reactExports.createElement(PopoverContext.Provider,{value:{appearance:_e,arrowRef:et,contentRef:tt,inline:rt,mountNode:nt,open:ot,openOnContext:it,openOnHover:st,setOpen:lt,toggleOpen:ct,triggerRef:ft,size:ut,trapFocus:dt,inertTrapFocus:gt,withArrow:pt}},j.popoverTrigger,j.open&&j.popoverSurface)},Popover=j=>{const _e=usePopover_unstable(j);return renderPopover_unstable(_e)};Popover.displayName="Popover";const usePopoverTrigger_unstable=j=>{const{children:_e,disableButtonEnhancement:et=!1}=j,tt=getTriggerChild(_e),rt=usePopoverContext_unstable(xt=>xt.open),nt=usePopoverContext_unstable(xt=>xt.setOpen),ot=usePopoverContext_unstable(xt=>xt.toggleOpen),it=usePopoverContext_unstable(xt=>xt.triggerRef),st=usePopoverContext_unstable(xt=>xt.openOnHover),lt=usePopoverContext_unstable(xt=>xt.openOnContext),{triggerAttributes:ut}=useModalAttributes(),ct=xt=>{lt&&(xt.preventDefault(),nt(xt,!0))},dt=xt=>{lt||ot(xt)},ft=xt=>{xt.key===Escape&&rt&&!xt.isDefaultPrevented()&&(nt(xt,!1),xt.preventDefault())},pt=xt=>{st&&nt(xt,!0)},gt=xt=>{st&&nt(xt,!1)},mt={...ut,"aria-expanded":`${rt}`,...tt==null?void 0:tt.props,onMouseEnter:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onMouseEnter,pt)),onMouseLeave:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onMouseLeave,gt)),onContextMenu:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onContextMenu,ct)),ref:useMergedRefs$1(it,tt==null?void 0:tt.ref)},bt={...mt,onClick:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onClick,dt)),onKeyDown:useEventCallback$3(mergeCallbacks(tt==null?void 0:tt.props.onKeyDown,ft))},_t=useARIAButtonProps((tt==null?void 0:tt.type)==="button"||(tt==null?void 0:tt.type)==="a"?tt.type:"div",bt);return{children:applyTriggerPropsToChildren(j.children,useARIAButtonProps((tt==null?void 0:tt.type)==="button"||(tt==null?void 0:tt.type)==="a"?tt.type:"div",lt?mt:et?bt:_t))}},renderPopoverTrigger_unstable=j=>j.children,PopoverTrigger=j=>{const _e=usePopoverTrigger_unstable(j);return renderPopoverTrigger_unstable(_e)};PopoverTrigger.displayName="PopoverTrigger";PopoverTrigger.isFluentTriggerComponent=!0;const arrowHeight=6,tooltipBorderRadius=4,useTooltip_unstable=j=>{var _e,et,tt,rt;const nt=useTooltipVisibility(),ot=useIsSSR(),{targetDocument:it}=useFluent(),[st,lt]=useTimeout(),{appearance:ut="normal",children:ct,content:dt,withArrow:ft=!1,positioning:pt="above",onVisibleChange:gt,relationship:mt,showDelay:bt=250,hideDelay:_t=250,mountNode:xt}=j,[yt,Et]=useControllableState({state:j.visible,initialState:!1}),St=reactExports.useCallback((Pt,Gt)=>{lt(),Et(qt=>(Gt.visible!==qt&&(gt==null||gt(Pt,Gt)),Gt.visible))},[lt,Et,gt]),Tt={withArrow:ft,positioning:pt,showDelay:bt,hideDelay:_t,relationship:mt,visible:yt,shouldRenderTooltip:yt,appearance:ut,mountNode:xt,components:{content:"div"},content:always(dt,{defaultProps:{role:"tooltip"},elementType:"div"})};Tt.content.id=useId$1("tooltip-",Tt.content.id);const kt={enabled:Tt.visible,arrowPadding:2*tooltipBorderRadius,position:"above",align:"center",offset:4,...resolvePositioningShorthand(Tt.positioning)};Tt.withArrow&&(kt.offset=mergeArrowOffset(kt.offset,arrowHeight));const{targetRef:$t,containerRef:Ct,arrowRef:It}=usePositioning(kt);Tt.content.ref=useMergedRefs$1(Tt.content.ref,Ct),Tt.arrowRef=It,useIsomorphicLayoutEffect$1(()=>{if(yt){var Pt;const Gt={hide:Yt=>St(void 0,{visible:!1,documentKeyboardEvent:Yt})};(Pt=nt.visibleTooltip)===null||Pt===void 0||Pt.hide(),nt.visibleTooltip=Gt;const qt=Yt=>{Yt.key===Escape&&!Yt.defaultPrevented&&(Gt.hide(Yt),Yt.preventDefault())};return it==null||it.addEventListener("keydown",qt,{capture:!0}),()=>{nt.visibleTooltip===Gt&&(nt.visibleTooltip=void 0),it==null||it.removeEventListener("keydown",qt,{capture:!0})}}},[nt,it,yt,St]);const Nt=reactExports.useRef(!1),Ot=reactExports.useCallback(Pt=>{if(Pt.type==="focus"&&Nt.current){Nt.current=!1;return}const Gt=nt.visibleTooltip?0:Tt.showDelay;st(()=>{St(Pt,{visible:!0})},Gt),Pt.persist()},[st,St,Tt.showDelay,nt]),[jt]=reactExports.useState(()=>{const Pt=qt=>{var Yt;!((Yt=qt.detail)===null||Yt===void 0)&&Yt.isFocusedProgrammatically&&(Nt.current=!0)};let Gt=null;return qt=>{Gt==null||Gt.removeEventListener(KEYBORG_FOCUSIN,Pt),qt==null||qt.addEventListener(KEYBORG_FOCUSIN,Pt),Gt=qt}}),Mt=reactExports.useCallback(Pt=>{let Gt=Tt.hideDelay;Pt.type==="blur"&&(Gt=0,Nt.current=(it==null?void 0:it.activeElement)===Pt.target),st(()=>{St(Pt,{visible:!1})},Gt),Pt.persist()},[st,St,Tt.hideDelay,it]);Tt.content.onPointerEnter=mergeCallbacks(Tt.content.onPointerEnter,lt),Tt.content.onPointerLeave=mergeCallbacks(Tt.content.onPointerLeave,Mt),Tt.content.onFocus=mergeCallbacks(Tt.content.onFocus,lt),Tt.content.onBlur=mergeCallbacks(Tt.content.onBlur,Mt);const Rt=getTriggerChild(ct),Lt={};return mt==="label"?typeof Tt.content.children=="string"?Lt["aria-label"]=Tt.content.children:(Lt["aria-labelledby"]=Tt.content.id,Tt.shouldRenderTooltip=!0):mt==="description"&&(Lt["aria-describedby"]=Tt.content.id,Tt.shouldRenderTooltip=!0),ot&&(Tt.shouldRenderTooltip=!1),Tt.children=applyTriggerPropsToChildren(ct,{...Lt,...Rt==null?void 0:Rt.props,ref:useMergedRefs$1(Rt==null?void 0:Rt.ref,jt,kt.target===void 0?$t:void 0),onPointerEnter:useEventCallback$3(mergeCallbacks(Rt==null||(_e=Rt.props)===null||_e===void 0?void 0:_e.onPointerEnter,Ot)),onPointerLeave:useEventCallback$3(mergeCallbacks(Rt==null||(et=Rt.props)===null||et===void 0?void 0:et.onPointerLeave,Mt)),onFocus:useEventCallback$3(mergeCallbacks(Rt==null||(tt=Rt.props)===null||tt===void 0?void 0:tt.onFocus,Ot)),onBlur:useEventCallback$3(mergeCallbacks(Rt==null||(rt=Rt.props)===null||rt===void 0?void 0:rt.onBlur,Mt))}),Tt},renderTooltip_unstable=j=>jsxs(reactExports.Fragment,{children:[j.children,j.shouldRenderTooltip&&jsx$1(Portal$1,{mountNode:j.mountNode,children:jsxs(j.content,{children:[j.withArrow&&jsx$1("div",{ref:j.arrowRef,className:j.arrowClassName}),j.content.children]})})]}),tooltipClassNames={content:"fui-Tooltip__content"},useStyles$u=__styles({root:{mc9l5x:"fjseox",B7ck84d:"f1ewtqcl",B2u0y6b:"f132xexn",Bceei9c:"f158kwzp",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bg96gwp:"fwrc4pm",Btd35i7:"fokg9q4",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B4j52fo:"f5ogflp",Bekrc4i:["f1hqa2wf","finvdd3"],Bn0qgzm:"f1f09k3d",ibv6hh:["finvdd3","f1hqa2wf"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"],z8tnut:"f10ra9hq",z189sj:["fd9xhir","f1jlaasf"],Byoj8tv:"f1d7kygh",uwmqm3:["f1jlaasf","fd9xhir"],De3pzq:"fxugw4r",sj55zd:"f19n0e5",Bhu2qc9:"fxeb0a7"},visible:{mc9l5x:"ftgm304"},inverted:{De3pzq:"fg3r6xk",sj55zd:"fonrgv7"},arrow:{qhf8xq:"f1euv43f",De3pzq:"f1u2r49w",Bcdw1i0:"fd7fpy0",Bj3rh1h:"f1bsuimh",a9b677:"f1ekdpwm",Bqenvij:"f83vc9z",Ftih45:"f1wl9k8s",B1puzpu:"f1wkw4r9",Brfgrao:"f1j7ml58",Bcvre1j:"fyl8oag",Ccq8qp:"frdoeuz",Baz25je:"fb81m9q",cmx5o7:"f1ljr5q2",B4f6apu:"fyfemzf",m598lv:"focyt6c",Bk5zm6e:"fnhxbxj",y0oebl:"fdw6hkg",qa3bma:"f11yjt3y",Bqjgrrk:"f1172wan",Budzafs:["f9e5op9","f112wvtl"],Hv9wc6:["f1500xdc","f1it0ps5"],hl6cv3:"f1773hnp",c8svkw:"fw7o64x",yayu3t:"f1v7783n",nr3p0k:"f1f0d6v",rhl9o9:"fh2hsk5",wiz9v7:"f1gj3y7g",B6q6orb:"f11yvu4",ndpsmx:"f17lejdj"}},{d:[".fjseox{display:none;}",".f1ewtqcl{box-sizing:border-box;}",".f132xexn{max-width:240px;}",".f158kwzp{cursor:default;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fokg9q4{overflow-wrap:break-word;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f5ogflp{border-top-width:1px;}",".f1hqa2wf{border-right-width:1px;}",".finvdd3{border-left-width:1px;}",".f1f09k3d{border-bottom-width:1px;}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".f10ra9hq{padding-top:4px;}",".fd9xhir{padding-right:11px;}",".f1jlaasf{padding-left:11px;}",".f1d7kygh{padding-bottom:6px;}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".fxeb0a7{filter:drop-shadow(0 0 2px var(--colorNeutralShadowAmbient)) drop-shadow(0 4px 8px var(--colorNeutralShadowKey));}",".ftgm304{display:block;}",".fg3r6xk{background-color:var(--colorNeutralBackgroundStatic);}",".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".f1euv43f{position:absolute;}",".f1u2r49w{background-color:inherit;}",".fd7fpy0{visibility:hidden;}",".f1bsuimh{z-index:-1;}",".f1ekdpwm{width:8.484px;}",".f83vc9z{height:8.484px;}",'.f1wl9k8s::before{content:"";}',".f1wkw4r9::before{visibility:visible;}",".f1j7ml58::before{position:absolute;}",".fyl8oag::before{box-sizing:border-box;}",".frdoeuz::before{width:inherit;}",".fb81m9q::before{height:inherit;}",".f1ljr5q2::before{background-color:inherit;}",".fyfemzf::before{border-right-width:1px;}",".focyt6c::before{border-right-style:solid;}",".fnhxbxj::before{border-right-color:var(--colorTransparentStroke);}",".fdw6hkg::before{border-bottom-width:1px;}",".f11yjt3y::before{border-bottom-style:solid;}",".f1172wan::before{border-bottom-color:var(--colorTransparentStroke);}",".f9e5op9::before{border-bottom-right-radius:var(--borderRadiusSmall);}",".f112wvtl::before{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1500xdc::before{transform:rotate(var(--fui-positioning-angle)) translate(0, 50%) rotate(45deg);}",".f1it0ps5::before{transform:rotate(var(--fui-positioning-angle)) translate(0, 50%) rotate(-45deg);}",'[data-popper-placement^="top"] .f1773hnp{bottom:-1px;}','[data-popper-placement^="top"] .fw7o64x{--fui-positioning-angle:0;}','[data-popper-placement^="right"] .f1v7783n{left:-1px;}','[data-popper-placement^="right"] .f1f0d6v{--fui-positioning-angle:90deg;}','[data-popper-placement^="bottom"] .fh2hsk5{top:-1px;}','[data-popper-placement^="bottom"] .f1gj3y7g{--fui-positioning-angle:180deg;}','[data-popper-placement^="left"] .f11yvu4{right:-1px;}','[data-popper-placement^="left"] .f17lejdj{--fui-positioning-angle:270deg;}']}),useTooltipStyles_unstable=j=>{const _e=useStyles$u();return j.content.className=mergeClasses(tooltipClassNames.content,_e.root,j.appearance==="inverted"&&_e.inverted,j.visible&&_e.visible,j.content.className),j.arrowClassName=_e.arrow,j},Tooltip$1=j=>{const _e=useTooltip_unstable(j);return useTooltipStyles_unstable(_e),useCustomStyleHook("useTooltipStyles_unstable")(_e),renderTooltip_unstable(_e)};Tooltip$1.displayName="Tooltip";Tooltip$1.isFluentTriggerComponent=!0;const renderButton_unstable=j=>{const{iconOnly:_e,iconPosition:et}=j;return jsxs(j.root,{children:[et!=="after"&&j.icon&&jsx$1(j.icon,{}),!_e&&j.root.children,et==="after"&&j.icon&&jsx$1(j.icon,{})]})},buttonContext=reactExports.createContext(void 0),buttonContextDefaultValue={};buttonContext.Provider;const useButtonContext=()=>{var j;return(j=reactExports.useContext(buttonContext))!==null&&j!==void 0?j:buttonContextDefaultValue},useButton_unstable=(j,_e)=>{const{size:et}=useButtonContext(),{appearance:tt="secondary",as:rt="button",disabled:nt=!1,disabledFocusable:ot=!1,icon:it,iconPosition:st="before",shape:lt="rounded",size:ut=et??"medium"}=j,ct=optional(it,{elementType:"span"});return{appearance:tt,disabled:nt,disabledFocusable:ot,iconPosition:st,shape:lt,size:ut,iconOnly:!!(ct!=null&&ct.children&&!j.children),components:{root:"button",icon:"span"},root:always(getIntrinsicElementProps(rt,useARIAButtonProps(j.as,j)),{elementType:"button",defaultProps:{ref:_e,type:"button"}}),icon:ct}},buttonClassNames={root:"fui-Button",icon:"fui-Button__icon"},useRootBaseClassName$1=__resetStyles("r1alrhcs",null,{r:[".r1alrhcs{align-items:center;box-sizing:border-box;display:inline-flex;justify-content:center;text-decoration-line:none;vertical-align:middle;margin:0;overflow:hidden;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);font-family:var(--fontFamilyBase);outline-style:none;padding:5px var(--spacingHorizontalM);min-width:96px;border-radius:var(--borderRadiusMedium);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase300);transition-duration:var(--durationFaster);transition-property:background,border,color;transition-timing-function:var(--curveEasyEase);}",".r1alrhcs:hover{background-color:var(--colorNeutralBackground1Hover);border-color:var(--colorNeutralStroke1Hover);color:var(--colorNeutralForeground1Hover);cursor:pointer;}",".r1alrhcs:hover:active{background-color:var(--colorNeutralBackground1Pressed);border-color:var(--colorNeutralStroke1Pressed);color:var(--colorNeutralForeground1Pressed);outline-style:none;}",".r1alrhcs[data-fui-focus-visible]{border-color:var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);border-width:1px;outline:var(--strokeWidthThick) solid var(--colorTransparentStroke);box-shadow:0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset;z-index:1;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r1alrhcs{transition-duration:0.01ms;}}","@media (forced-colors: active){.r1alrhcs:focus{border-color:ButtonText;}.r1alrhcs:hover{background-color:HighlightText;border-color:Highlight;color:Highlight;forced-color-adjust:none;}.r1alrhcs:hover:active{background-color:HighlightText;border-color:Highlight;color:Highlight;forced-color-adjust:none;}}","@supports (-moz-appearance:button){.r1alrhcs[data-fui-focus-visible]{box-shadow:0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset;}}"]}),useIconBaseClassName=__resetStyles("rywnvv2",null,[".rywnvv2{align-items:center;display:inline-flex;justify-content:center;font-size:20px;height:20px;width:20px;--fui-Button__icon--spacing:var(--spacingHorizontalSNudge);}"]),useRootStyles$5=__styles({outline:{De3pzq:"f1c21dwh",Jwef8y:"fjxutwb",iro3zm:"fwiml72"},primary:{De3pzq:"ffp7eso",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"f1phragk",Jwef8y:"f15wkkf3",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"f1rq72xc",iro3zm:"fnp9lpt",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1d6v5y2",Bsw6fvg:"f1rirnrt",Bjwas2f:"f1uu00uk",Bn1d65q:["fkvaka8","f9a0qzu"],Bxeuatn:"f1ux7til",n51gp8:["f9a0qzu","fkvaka8"],Bbusuzp:"f1lkg8j3",ycbfsm:"fkc42ay",Bqrx1nm:"fq7113v",pgvf35:"ff1wgvm",Bh7lczh:["fiob0tu","f1x4h75k"],dpv3f4:"f1j6scgf",Bpnjhaq:["f1x4h75k","fiob0tu"],ze5xyy:"f4xjyn1",g2kj27:"fbgcvur",Bf756sw:"f1ks1yx8",Bow2dr7:["f1o6qegi","fmxjhhp"],Bvhedfk:"fcnxywj",Gye4lf:["fmxjhhp","f1o6qegi"],pc6evw:"f9ddjv3"},secondary:{},subtle:{De3pzq:"fhovq9v",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"fkfq4zb",Jwef8y:"f1t94bn6",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"fnwyq0v",Bk3fhr4:"ft1hn21",Bmfj8id:"fuxngvv",Bbdnnc7:"fy5bs14",iro3zm:"fsv2rcd",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1omzyqd",em6i61:"f1dfjoow",vm6p8p:"f1j98vj9",x3br3k:"fj8yq94",ze5xyy:"f4xjyn1",Bx3q9su:"f1et0tmh",pc6evw:"f9ddjv3",xd2cci:"f1wi8ngl"},transparent:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"fkfq4zb",Jwef8y:"fjxutwb",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"f139oj5f",Bk3fhr4:"ft1hn21",Bmfj8id:"fuxngvv",iro3zm:"fwiml72",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1fg1p5m",em6i61:"f1dfjoow",vm6p8p:"f1j98vj9",Bqrx1nm:"f1tme0vf",ze5xyy:"f4xjyn1",g2kj27:"f18onu3q",pc6evw:"f9ddjv3"},circular:{Bbmb7ep:["f8fbkgy","f1nfllo7"],Beyfa6y:["f1nfllo7","f8fbkgy"],B7oj6ja:["f1djnp8u","f1s8kh49"],Btl43ni:["f1s8kh49","f1djnp8u"]},rounded:{},square:{Bbmb7ep:["fzi6hpg","fyowgf4"],Beyfa6y:["fyowgf4","fzi6hpg"],B7oj6ja:["f3fg2lr","f13av6d4"],Btl43ni:["f13av6d4","f3fg2lr"]},small:{Bf4jedk:"fh7ncta",z8tnut:"f1khb0e9",z189sj:["f1vdfbxk","f1f5gg8d"],Byoj8tv:"f1jnq6q7",uwmqm3:["f1f5gg8d","f1vdfbxk"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},smallWithIcon:{Byoj8tv:"f1brlhvm",z8tnut:"f1sl3k7w"},medium:{},large:{Bf4jedk:"f14es27b",z8tnut:"fp9bwmr",z189sj:["fjodcmx","fhx4nu"],Byoj8tv:"f150uoa4",uwmqm3:["fhx4nu","fjodcmx"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},largeWithIcon:{Byoj8tv:"fy7v416",z8tnut:"f1a1bwwz"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fkfq4zb{color:var(--colorNeutralForeground2);}",".f8fbkgy{border-bottom-right-radius:var(--borderRadiusCircular);}",".f1nfllo7{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1djnp8u{border-top-right-radius:var(--borderRadiusCircular);}",".f1s8kh49{border-top-left-radius:var(--borderRadiusCircular);}",".fzi6hpg{border-bottom-right-radius:var(--borderRadiusNone);}",".fyowgf4{border-bottom-left-radius:var(--borderRadiusNone);}",".f3fg2lr{border-top-right-radius:var(--borderRadiusNone);}",".f13av6d4{border-top-left-radius:var(--borderRadiusNone);}",".fh7ncta{min-width:64px;}",".f1khb0e9{padding-top:3px;}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".f1jnq6q7{padding-bottom:3px;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1brlhvm{padding-bottom:1px;}",".f1sl3k7w{padding-top:1px;}",".f14es27b{min-width:96px;}",".fp9bwmr{padding-top:8px;}",".fjodcmx{padding-right:var(--spacingHorizontalL);}",".fhx4nu{padding-left:var(--spacingHorizontalL);}",".f150uoa4{padding-bottom:8px;}",".fod5ikn{font-size:var(--fontSizeBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fy7v416{padding-bottom:7px;}",".f1a1bwwz{padding-top:7px;}"],h:[".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".fwiml72:hover:active{background-color:var(--colorTransparentBackgroundPressed);}",".f15wkkf3:hover{background-color:var(--colorBrandBackgroundHover);}",".f1s2uweq:hover{border-top-color:transparent;}",".fr80ssc:hover{border-right-color:transparent;}",".fecsdlb:hover{border-left-color:transparent;}",".f1ukrpxl:hover{border-bottom-color:transparent;}",".f1rq72xc:hover{color:var(--colorNeutralForegroundOnBrand);}",".fnp9lpt:hover:active{background-color:var(--colorBrandBackgroundPressed);}",".f1h0usnq:hover:active{border-top-color:transparent;}",".fs4ktlq:hover:active{border-right-color:transparent;}",".fx2bmrt:hover:active{border-left-color:transparent;}",".f16h9ulv:hover:active{border-bottom-color:transparent;}",".f1d6v5y2:hover:active{color:var(--colorNeutralForegroundOnBrand);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".fnwyq0v:hover{color:var(--colorNeutralForeground2Hover);}",".ft1hn21:hover .fui-Icon-filled{display:inline;}",".fuxngvv:hover .fui-Icon-regular{display:none;}",".fy5bs14:hover .fui-Button__icon{color:var(--colorNeutralForeground2BrandHover);}",".fsv2rcd:hover:active{background-color:var(--colorSubtleBackgroundPressed);}",".f1omzyqd:hover:active{color:var(--colorNeutralForeground2Pressed);}",".f1dfjoow:hover:active .fui-Icon-filled{display:inline;}",".f1j98vj9:hover:active .fui-Icon-regular{display:none;}",".fj8yq94:hover:active .fui-Button__icon{color:var(--colorNeutralForeground2BrandPressed);}",".f139oj5f:hover{color:var(--colorNeutralForeground2BrandHover);}",".f1fg1p5m:hover:active{color:var(--colorNeutralForeground2BrandPressed);}"],m:[["@media (forced-colors: active){.f1rirnrt{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1uu00uk{border-top-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f9a0qzu{border-left-color:HighlightText;}.fkvaka8{border-right-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ux7til{border-bottom-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lkg8j3{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fq7113v:hover{background-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.ff1wgvm:hover{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1x4h75k:hover{border-left-color:Highlight;}.fiob0tu:hover{border-right-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1j6scgf:hover{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f4xjyn1:hover{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fbgcvur:hover:active{background-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ks1yx8:hover:active{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1o6qegi:hover:active{border-right-color:Highlight;}.fmxjhhp:hover:active{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fcnxywj:hover:active{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f9ddjv3:hover:active{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1et0tmh:hover .fui-Button__icon{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1wi8ngl:hover:active .fui-Button__icon{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1tme0vf:hover{background-color:var(--colorTransparentBackground);}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f18onu3q:hover:active{background-color:var(--colorTransparentBackground);}}",{m:"(forced-colors: active)"}]]}),useRootDisabledStyles=__styles({base:{De3pzq:"f1bg9a2p",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr",Bfinmwp:"f15x8b5r",Jwef8y:"f1falr9n",Bgoe8wy:"f12mpcsy",Bwzppfd:["f1gwvigk","f18rmfxp"],oetu4i:"f1jnshp0",gg5e9n:["f18rmfxp","f1gwvigk"],Bi91k9c:"fvgxktp",eoavqd:"fphbwmw",Bk3fhr4:"f19vpps7",Bmfj8id:"fv5swzo",Bbdnnc7:"f1al02dq",iro3zm:"f1t6o4dc",b661bw:"f10ztigi",Bk6r4ia:["f1ft5sdu","f1gzf82w"],B9zn80p:"f12zbtn2",Bpld233:["f1gzf82w","f1ft5sdu"],B2d53fq:"fcvwxyo",c3iz72:"f8w4c43",em6i61:"f1ol4fw6",vm6p8p:"f1q1lw4e",x3br3k:"f1dwjv2g"},highContrast:{Bsw6fvg:"f4lkoma",Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"],Bbusuzp:"f1dcs8yz",G867l3:"fjwq6ea",gdbnj:["f1lr3nhc","f1mbxvi6"],mxns5l:"fn5gmvv",o3nasb:["f1mbxvi6","f1lr3nhc"],Bqrx1nm:"f1vmkb5g",pgvf35:"f53ppgq",Bh7lczh:["f1663y11","f80fkiy"],dpv3f4:"f18v5270",Bpnjhaq:["f80fkiy","f1663y11"],ze5xyy:"f1kc2mi9",g2kj27:"f1y0svfh",Bf756sw:"fihuait",Bow2dr7:["fnxhupq","fyd6l6x"],Bvhedfk:"fx507ft",Gye4lf:["fyd6l6x","fnxhupq"],pc6evw:"fb3rf2x"},outline:{De3pzq:"f1c21dwh",Jwef8y:"f9ql6rf",iro3zm:"f3h1zc4"},primary:{g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]},secondary:{},subtle:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Jwef8y:"f9ql6rf",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],iro3zm:"f3h1zc4",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]},transparent:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Jwef8y:"f9ql6rf",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],iro3zm:"f3h1zc4",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]}},{d:[".f1bg9a2p{background-color:var(--colorNeutralBackgroundDisabled);}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f15x8b5r .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}"],h:[".f1falr9n:hover{background-color:var(--colorNeutralBackgroundDisabled);}",".f12mpcsy:hover{border-top-color:var(--colorNeutralStrokeDisabled);}",".f1gwvigk:hover{border-right-color:var(--colorNeutralStrokeDisabled);}",".f18rmfxp:hover{border-left-color:var(--colorNeutralStrokeDisabled);}",".f1jnshp0:hover{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}",".fphbwmw:hover{cursor:not-allowed;}",".f19vpps7:hover .fui-Icon-filled{display:none;}",".fv5swzo:hover .fui-Icon-regular{display:inline;}",".f1al02dq:hover .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f1t6o4dc:hover:active{background-color:var(--colorNeutralBackgroundDisabled);}",".f10ztigi:hover:active{border-top-color:var(--colorNeutralStrokeDisabled);}",".f1ft5sdu:hover:active{border-right-color:var(--colorNeutralStrokeDisabled);}",".f1gzf82w:hover:active{border-left-color:var(--colorNeutralStrokeDisabled);}",".f12zbtn2:hover:active{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fcvwxyo:hover:active{color:var(--colorNeutralForegroundDisabled);}",".f8w4c43:hover:active{cursor:not-allowed;}",".f1ol4fw6:hover:active .fui-Icon-filled{display:none;}",".f1q1lw4e:hover:active .fui-Icon-regular{display:inline;}",".f1dwjv2g:hover:active .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}",".f3h1zc4:hover:active{background-color:var(--colorTransparentBackground);}",".f1s2uweq:hover{border-top-color:transparent;}",".fr80ssc:hover{border-right-color:transparent;}",".fecsdlb:hover{border-left-color:transparent;}",".f1ukrpxl:hover{border-bottom-color:transparent;}",".f1h0usnq:hover:active{border-top-color:transparent;}",".fs4ktlq:hover:active{border-right-color:transparent;}",".fx2bmrt:hover:active{border-left-color:transparent;}",".f16h9ulv:hover:active{border-bottom-color:transparent;}"],m:[["@media (forced-colors: active){.f4lkoma{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fjwq6ea:focus{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lr3nhc:focus{border-right-color:GrayText;}.f1mbxvi6:focus{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fn5gmvv:focus{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1vmkb5g:hover{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f53ppgq:hover{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1663y11:hover{border-right-color:GrayText;}.f80fkiy:hover{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f18v5270:hover{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1kc2mi9:hover{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1y0svfh:hover:active{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fihuait:hover:active{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fnxhupq:hover:active{border-right-color:GrayText;}.fyd6l6x:hover:active{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fx507ft:hover:active{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fb3rf2x:hover:active{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),useRootFocusStyles=__styles({circular:{kdpuga:["fanj13w","f1gou5sz"],Bw81rd7:["f1gou5sz","fanj13w"],B6xbmo0:["fulf6x3","foeb2x"],dm238s:["foeb2x","fulf6x3"]},rounded:{},square:{kdpuga:["f1ndz5i7","f1co4qro"],Bw81rd7:["f1co4qro","f1ndz5i7"],B6xbmo0:["f146y5a9","f1k2ftg"],dm238s:["f1k2ftg","f146y5a9"]},primary:{B8q5s1w:"f17t0x8g",Bci5o5g:["f194v5ow","fk7jm04"],n8qw10:"f1qgg65p",Bdrgwmp:["fk7jm04","f194v5ow"],j6ew2k:["fhgccpy","fjo7pq6"],he4mth:"f32wu9k",Byr4aka:"fu5nqqq",lks7q5:["f13prjl2","f1nl83rv"],Bnan3qt:"f1czftr5",k1dn9:["f1nl83rv","f13prjl2"],Boium3a:["f12k37oa","fdnykm2"],tm8e47:"fr96u23"},small:{kdpuga:["fg3gtdo","fwii5mg"],Bw81rd7:["fwii5mg","fg3gtdo"],B6xbmo0:["f1palphq","f12nxie7"],dm238s:["f12nxie7","f1palphq"]},medium:{},large:{kdpuga:["ft3lys4","f1la4x2g"],Bw81rd7:["f1la4x2g","ft3lys4"],B6xbmo0:["f156y0zm","fakimq4"],dm238s:["fakimq4","f156y0zm"]}},{d:[".fanj13w[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusCircular);}",".f1gou5sz[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusCircular);}",".fulf6x3[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusCircular);}",".foeb2x[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusCircular);}",".f1ndz5i7[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusNone);}",".f1co4qro[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusNone);}",".f146y5a9[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusNone);}",".f1k2ftg[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusNone);}",".f17t0x8g[data-fui-focus-visible]{border-top-color:var(--colorStrokeFocus2);}",".f194v5ow[data-fui-focus-visible]{border-right-color:var(--colorStrokeFocus2);}",".fk7jm04[data-fui-focus-visible]{border-left-color:var(--colorStrokeFocus2);}",".f1qgg65p[data-fui-focus-visible]{border-bottom-color:var(--colorStrokeFocus2);}",".fhgccpy[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}",".fjo7pq6[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}",".f32wu9k[data-fui-focus-visible]:hover{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset;}",".fu5nqqq[data-fui-focus-visible]:hover{border-top-color:var(--colorStrokeFocus2);}",".f13prjl2[data-fui-focus-visible]:hover{border-right-color:var(--colorStrokeFocus2);}",".f1nl83rv[data-fui-focus-visible]:hover{border-left-color:var(--colorStrokeFocus2);}",".f1czftr5[data-fui-focus-visible]:hover{border-bottom-color:var(--colorStrokeFocus2);}",".fg3gtdo[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusSmall);}",".fwii5mg[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1palphq[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusSmall);}",".f12nxie7[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusSmall);}",".ft3lys4[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusLarge);}",".f1la4x2g[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusLarge);}",".f156y0zm[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusLarge);}",".fakimq4[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusLarge);}"],t:["@supports (-moz-appearance:button){.f12k37oa[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}.fdnykm2[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}}","@supports (-moz-appearance:button){.fr96u23[data-fui-focus-visible]:hover{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset;}}"]}),useRootIconOnlyStyles=__styles({small:{z8tnut:"f1sl3k7w",z189sj:["f136y8j8","f10xn8zz"],Byoj8tv:"f1brlhvm",uwmqm3:["f10xn8zz","f136y8j8"],Bf4jedk:"f17fgpbq",B2u0y6b:"f1jt17bm"},medium:{z8tnut:"f1sbtcvk",z189sj:["fwiuce9","f15vdbe4"],Byoj8tv:"fdghr9",uwmqm3:["f15vdbe4","fwiuce9"],Bf4jedk:"fwbmr0d",B2u0y6b:"f44c6la"},large:{z8tnut:"f1a1bwwz",z189sj:["f18k1jr3","f1rtp3s9"],Byoj8tv:"fy7v416",uwmqm3:["f1rtp3s9","f18k1jr3"],Bf4jedk:"f12clzc2",B2u0y6b:"fjy1crr"}},{d:[".f1sl3k7w{padding-top:1px;}",".f136y8j8{padding-right:1px;}",".f10xn8zz{padding-left:1px;}",".f1brlhvm{padding-bottom:1px;}",".f17fgpbq{min-width:24px;}",".f1jt17bm{max-width:24px;}",".f1sbtcvk{padding-top:5px;}",".fwiuce9{padding-right:5px;}",".f15vdbe4{padding-left:5px;}",".fdghr9{padding-bottom:5px;}",".fwbmr0d{min-width:32px;}",".f44c6la{max-width:32px;}",".f1a1bwwz{padding-top:7px;}",".f18k1jr3{padding-right:7px;}",".f1rtp3s9{padding-left:7px;}",".fy7v416{padding-bottom:7px;}",".f12clzc2{min-width:40px;}",".fjy1crr{max-width:40px;}"]}),useIconStyles$2=__styles({small:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3",Bqrlyyl:"fbaiahx"},medium:{},large:{Be2twd7:"f1rt2boy",Bqenvij:"frvgh55",a9b677:"fq4mcun",Bqrlyyl:"f1exjqw5"},before:{t21cq0:["f1nizpg2","f1a695kz"]},after:{Frg6f3:["f1a695kz","f1nizpg2"]}},{d:[".fe5j1ua{font-size:20px;}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",".fbaiahx{--fui-Button__icon--spacing:var(--spacingHorizontalXS);}",".f1rt2boy{font-size:24px;}",".frvgh55{height:24px;}",".fq4mcun{width:24px;}",".f1exjqw5{--fui-Button__icon--spacing:var(--spacingHorizontalSNudge);}",".f1nizpg2{margin-right:var(--fui-Button__icon--spacing);}",".f1a695kz{margin-left:var(--fui-Button__icon--spacing);}"]}),useButtonStyles_unstable=j=>{const _e=useRootBaseClassName$1(),et=useIconBaseClassName(),tt=useRootStyles$5(),rt=useRootDisabledStyles(),nt=useRootFocusStyles(),ot=useRootIconOnlyStyles(),it=useIconStyles$2(),{appearance:st,disabled:lt,disabledFocusable:ut,icon:ct,iconOnly:dt,iconPosition:ft,shape:pt,size:gt}=j;return j.root.className=mergeClasses(buttonClassNames.root,_e,st&&tt[st],tt[gt],ct&>==="small"&&tt.smallWithIcon,ct&>==="large"&&tt.largeWithIcon,tt[pt],(lt||ut)&&rt.base,(lt||ut)&&rt.highContrast,st&&(lt||ut)&&rt[st],st==="primary"&&nt.primary,nt[gt],nt[pt],dt&&ot[gt],j.root.className),j.icon&&(j.icon.className=mergeClasses(buttonClassNames.icon,et,!!j.root.children&&it[ft],it[gt],j.icon.className)),j},Button$2=reactExports.forwardRef((j,_e)=>{const et=useButton_unstable(j,_e);return useButtonStyles_unstable(et),useCustomStyleHook("useButtonStyles_unstable")(et),renderButton_unstable(et)});Button$2.displayName="Button";const FieldContext=reactExports.createContext(void 0);FieldContext.Provider;const useFieldContext_unstable=()=>reactExports.useContext(FieldContext);function useFieldControlProps_unstable(j,_e){return getFieldControlProps(useFieldContext_unstable(),j,_e)}function getFieldControlProps(j,_e,et){if(!j)return _e;_e={..._e};const{generatedControlId:tt,hintId:rt,labelFor:nt,labelId:ot,required:it,validationMessageId:st,validationState:lt}=j;if(tt){var ut,ct;(ct=(ut=_e).id)!==null&&ct!==void 0||(ut.id=tt)}if(ot&&(!(et!=null&&et.supportsLabelFor)||nt!==_e.id)){var dt,ft,pt;(pt=(dt=_e)[ft="aria-labelledby"])!==null&&pt!==void 0||(dt[ft]=ot)}if((st||rt)&&(_e["aria-describedby"]=[st,rt,_e==null?void 0:_e["aria-describedby"]].filter(Boolean).join(" ")),lt==="error"){var gt,mt,bt;(bt=(gt=_e)[mt="aria-invalid"])!==null&&bt!==void 0||(gt[mt]=!0)}if(it)if(et!=null&&et.supportsRequired){var _t,xt;(xt=(_t=_e).required)!==null&&xt!==void 0||(_t.required=!0)}else{var yt,Et,St;(St=(yt=_e)[Et="aria-required"])!==null&&St!==void 0||(yt[Et]=!0)}if(et!=null&&et.supportsSize){var Tt,kt;(kt=(Tt=_e).size)!==null&&kt!==void 0||(Tt.size=j.size)}return _e}const useLabel_unstable=(j,_e)=>{const{disabled:et=!1,required:tt=!1,weight:rt="regular",size:nt="medium"}=j;return{disabled:et,required:optional(tt===!0?"*":tt||void 0,{defaultProps:{"aria-hidden":"true"},elementType:"span"}),weight:rt,size:nt,components:{root:"label",required:"span"},root:always(getIntrinsicElementProps("label",{ref:_e,...j}),{elementType:"label"})}},renderLabel_unstable=j=>jsxs(j.root,{children:[j.root.children,j.required&&jsx$1(j.required,{})]}),labelClassNames={root:"fui-Label",required:"fui-Label__required"},useStyles$t=__styles({root:{Bahqtrf:"fk6fouc",sj55zd:"f19n0e5"},disabled:{sj55zd:"f1s2aq7o"},required:{sj55zd:"f1whyuy6",uwmqm3:["fycuoez","f8wuabp"]},requiredDisabled:{sj55zd:"f1s2aq7o"},small:{Be2twd7:"fy9rknc",Bg96gwp:"fwrc4pm"},medium:{Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi"},large:{Be2twd7:"fod5ikn",Bg96gwp:"faaz57k",Bhrd7zp:"fl43uef"},semibold:{Bhrd7zp:"fl43uef"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f1whyuy6{color:var(--colorPaletteRedForeground3);}",".fycuoez{padding-left:4px;}",".f8wuabp{padding-right:4px;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}"]}),useLabelStyles_unstable=j=>{const _e=useStyles$t();return j.root.className=mergeClasses(labelClassNames.root,_e.root,j.disabled&&_e.disabled,_e[j.size],j.weight==="semibold"&&_e.semibold,j.root.className),j.required&&(j.required.className=mergeClasses(labelClassNames.required,_e.required,j.disabled&&_e.requiredDisabled,j.required.className)),j},Label$1=reactExports.forwardRef((j,_e)=>{const et=useLabel_unstable(j,_e);return useLabelStyles_unstable(et),useCustomStyleHook("useLabelStyles_unstable")(et),renderLabel_unstable(et)});Label$1.displayName="Label";const ComboboxContext=createContext({activeOption:void 0,appearance:"outline",focusVisible:!1,open:!1,registerOption(){return()=>{}},selectedOptions:[],selectOption(){},setActiveOption(){},setOpen(){},size:"medium"});ComboboxContext.Provider;const ListboxContext=createContext({activeOption:void 0,focusVisible:!1,multiselect:!1,registerOption(){return()=>{}},selectedOptions:[],selectOption(){},setActiveOption(){}});ListboxContext.Provider;function useComboboxContextValues(j){const{activeOption:_e,appearance:et,focusVisible:tt,open:rt,registerOption:nt,selectedOptions:ot,selectOption:it,setActiveOption:st,setOpen:lt,size:ut}=j;return{combobox:{activeOption:_e,appearance:et,focusVisible:tt,open:rt,registerOption:nt,selectedOptions:ot,selectOption:it,setActiveOption:st,setOpen:lt,size:ut}}}function useListboxContextValues(j){const _e=useHasParentContext(ComboboxContext),{activeOption:et,focusVisible:tt,multiselect:rt,registerOption:nt,selectedOptions:ot,selectOption:it,setActiveOption:st}=j,lt=useContextSelector(ComboboxContext,dt=>dt.registerOption);return{listbox:{activeOption:et,focusVisible:tt,multiselect:rt,registerOption:_e?lt:nt,selectedOptions:ot,selectOption:it,setActiveOption:st}}}function getDropdownActionFromKey(j,_e={}){const{open:et=!0,multiselect:tt=!1}=_e,rt=j.key,{altKey:nt,ctrlKey:ot,key:it,metaKey:st}=j;return it.length===1&&rt!==Space&&!nt&&!ot&&!st?"Type":et?rt===ArrowUp&&nt||rt===Enter||!tt&&rt===Space?"CloseSelect":tt&&rt===Space?"Select":rt===Escape?"Close":rt===ArrowDown?"Next":rt===ArrowUp?"Previous":rt===Home?"First":rt===End?"Last":rt===PageUp?"PageUp":rt===PageDown?"PageDown":rt===Tab$2?"Tab":"None":rt===ArrowDown||rt===ArrowUp||rt===Enter||rt===Space?"Open":"None"}function getIndexFromAction(j,_e,et){switch(j){case"Next":return Math.min(et,_e+1);case"Previous":return Math.max(0,_e-1);case"First":return 0;case"Last":return et;case"PageDown":return Math.min(et,_e+10);case"PageUp":return Math.max(0,_e-10);default:return _e}}const useOptionCollection=()=>{const j=reactExports.useRef([]),_e=reactExports.useMemo(()=>({getCount:()=>j.current.length,getOptionAtIndex:lt=>{var ut;return(ut=j.current[lt])===null||ut===void 0?void 0:ut.option},getIndexOfId:lt=>j.current.findIndex(ut=>ut.option.id===lt),getOptionById:lt=>{const ut=j.current.find(ct=>ct.option.id===lt);return ut==null?void 0:ut.option},getOptionsMatchingText:lt=>j.current.filter(ut=>lt(ut.option.text)).map(ut=>ut.option),getOptionsMatchingValue:lt=>j.current.filter(ut=>lt(ut.option.value)).map(ut=>ut.option)}),[]),et=reactExports.useCallback((tt,rt)=>{var nt;const ot=j.current.findIndex(it=>!it.element||!rt?!1:it.option.id===tt.id?!0:it.element.compareDocumentPosition(rt)&Node.DOCUMENT_POSITION_PRECEDING);if(((nt=j.current[ot])===null||nt===void 0?void 0:nt.option.id)!==tt.id){const it={element:rt,option:tt};ot===-1?j.current=[...j.current,it]:j.current.splice(ot,0,it)}return()=>{j.current=j.current.filter(it=>it.option.id!==tt.id)}},[]);return{..._e,options:j.current.map(tt=>tt.option),registerOption:et}};function useScrollOptionsIntoView(j){const{activeOption:_e}=j,et=reactExports.useRef(null);return reactExports.useEffect(()=>{if(et.current&&_e&&canUseDOM$3()){const tt=et.current.querySelector(`#${_e.id}`);if(!tt)return;const{offsetHeight:rt,offsetTop:nt}=tt,{offsetHeight:ot,scrollTop:it}=et.current,st=ntit+ot,ut=2;st?et.current.scrollTo(0,nt-ut):lt&&et.current.scrollTo(0,nt-ot+rt+ut)}},[_e]),et}const useSelection=j=>{const{defaultSelectedOptions:_e,multiselect:et,onOptionSelect:tt}=j,[rt,nt]=useControllableState({state:j.selectedOptions,defaultState:_e,initialState:[]}),ot=reactExports.useCallback((st,lt)=>{if(lt.disabled)return;let ut=[lt.value];if(et){const ct=rt.findIndex(dt=>dt===lt.value);ct>-1?ut=[...rt.slice(0,ct),...rt.slice(ct+1)]:ut=[...rt,lt.value]}nt(ut),tt==null||tt(st,{optionValue:lt.value,optionText:lt.text,selectedOptions:ut})},[tt,et,rt,nt]);return{clearSelection:st=>{nt([]),tt==null||tt(st,{optionValue:void 0,optionText:void 0,selectedOptions:[]})},selectOption:ot,selectedOptions:rt}},useListbox_unstable=(j,_e)=>{const{multiselect:et}=j,tt=useOptionCollection(),{getCount:rt,getOptionAtIndex:nt,getIndexOfId:ot}=tt,{clearSelection:it,selectedOptions:st,selectOption:lt}=useSelection(j),[ut,ct]=reactExports.useState(),[dt,ft]=reactExports.useState(!1),pt=$t=>{const Ct=getDropdownActionFromKey($t,{open:!0}),It=rt()-1,Nt=ut?ot(ut.id):-1;let Ot=Nt;switch(Ct){case"Select":case"CloseSelect":ut&<($t,ut);break;default:Ot=getIndexFromAction(Ct,Nt,It)}Ot!==Nt&&($t.preventDefault(),ct(nt(Ot)),ft(!0))},gt=$t=>{ft(!1)},mt=useHasParentContext(ComboboxContext),bt=useContextSelector(ComboboxContext,$t=>$t.activeOption),_t=useContextSelector(ComboboxContext,$t=>$t.focusVisible),xt=useContextSelector(ComboboxContext,$t=>$t.selectedOptions),yt=useContextSelector(ComboboxContext,$t=>$t.selectOption),Et=useContextSelector(ComboboxContext,$t=>$t.setActiveOption),St=mt?{activeOption:bt,focusVisible:_t,selectedOptions:xt,selectOption:yt,setActiveOption:Et}:{activeOption:ut,focusVisible:dt,selectedOptions:st,selectOption:lt,setActiveOption:ct},Tt={components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,role:et?"menu":"listbox","aria-activedescendant":mt||ut==null?void 0:ut.id,"aria-multiselectable":et,tabIndex:0,...j}),{elementType:"div"}),multiselect:et,clearSelection:it,...tt,...St},kt=useScrollOptionsIntoView(Tt);return Tt.root.ref=useMergedRefs$1(Tt.root.ref,kt),Tt.root.onKeyDown=useEventCallback$3(mergeCallbacks(Tt.root.onKeyDown,pt)),Tt.root.onMouseOver=useEventCallback$3(mergeCallbacks(Tt.root.onMouseOver,gt)),Tt},renderListbox_unstable=(j,_e)=>jsx$1(ListboxContext.Provider,{value:_e.listbox,children:jsx$1(j.root,{})}),listboxClassNames={root:"fui-Listbox"},useStyles$s=__styles({root:{De3pzq:"fxugw4r",B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Beiy3e4:"f1vx9l62",Bf4jedk:"f3hsy1e",Bmxbyg5:"f5zp4f",Bpd4iqm:"fpvhumw",oeaueh:"f1yog68k",Bw0xxkn:"f13sgyd8",z8tnut:"f1x4af0m",z189sj:["f7x41pl","fruq291"],Byoj8tv:"fd55psn",uwmqm3:["fruq291","f7x41pl"],Belr9w4:"fiut8dr"}},{d:[".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1ewtqcl{box-sizing:border-box;}",".f22iagw{display:flex;}",".f1vx9l62{flex-direction:column;}",".f3hsy1e{min-width:160px;}",".f5zp4f{overflow-y:auto;}",".fpvhumw{outline-width:1px;}",".f1yog68k{outline-style:solid;}",".f13sgyd8{outline-color:var(--colorTransparentStroke);}",".f1x4af0m{padding-top:var(--spacingHorizontalXS);}",".f7x41pl{padding-right:var(--spacingHorizontalXS);}",".fruq291{padding-left:var(--spacingHorizontalXS);}",".fd55psn{padding-bottom:var(--spacingHorizontalXS);}",".fiut8dr{row-gap:var(--spacingHorizontalXXS);}"]}),useListboxStyles_unstable=j=>{const _e=useStyles$s();return j.root.className=mergeClasses(listboxClassNames.root,_e.root,j.root.className),j},Listbox$1=reactExports.forwardRef((j,_e)=>{const et=useListbox_unstable(j,_e),tt=useListboxContextValues(et);return useListboxStyles_unstable(et),useCustomStyleHook("useListboxStyles_unstable")(et),renderListbox_unstable(et,tt)});Listbox$1.displayName="Listbox";function getTextString(j,_e){if(j!==void 0)return j;let et="",tt=!1;return reactExports.Children.forEach(_e,rt=>{typeof rt=="string"?et+=rt:tt=!0}),tt&&console.warn("Provide a `text` prop to Option components when they contain non-string children."),et}const useOption_unstable=(j,_e)=>{const{children:et,disabled:tt,text:rt,value:nt}=j,ot=reactExports.useRef(null),it=getTextString(rt,et),st=nt??it,lt=useId$1("fluent-option",j.id),ut=reactExports.useMemo(()=>({id:lt,disabled:tt,text:it,value:st}),[lt,tt,it,st]),ct=useContextSelector(ListboxContext,St=>St.focusVisible),dt=useContextSelector(ListboxContext,St=>St.multiselect),ft=useContextSelector(ListboxContext,St=>St.registerOption),pt=useContextSelector(ListboxContext,St=>{const Tt=St.selectedOptions;return!!st&&!!Tt.find(kt=>kt===st)}),gt=useContextSelector(ListboxContext,St=>St.selectOption),mt=useContextSelector(ListboxContext,St=>St.setActiveOption),bt=useContextSelector(ComboboxContext,St=>St.setOpen),_t=useContextSelector(ListboxContext,St=>{var Tt,kt;return((Tt=St.activeOption)===null||Tt===void 0?void 0:Tt.id)!==void 0&&((kt=St.activeOption)===null||kt===void 0?void 0:kt.id)===lt});let xt=reactExports.createElement(CheckmarkFilled,null);dt&&(xt=pt?reactExports.createElement(Checkmark12Filled,null):"");const yt=St=>{var Tt;if(tt){St.preventDefault();return}mt(ut),dt||bt==null||bt(St,!1),gt(St,ut),(Tt=j.onClick)===null||Tt===void 0||Tt.call(j,St)};reactExports.useEffect(()=>{if(lt&&ot.current)return ft(ut,ot.current)},[lt,ut,ft]);const Et=dt?{role:"menuitemcheckbox","aria-checked":pt}:{role:"option","aria-selected":pt};return{components:{root:"div",checkIcon:"span"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,ot),"aria-disabled":tt?"true":void 0,id:lt,...Et,...j,onClick:yt}),{elementType:"div"}),checkIcon:optional(j.checkIcon,{renderByDefault:!0,defaultProps:{"aria-hidden":"true",children:xt},elementType:"span"}),active:_t,disabled:tt,focusVisible:ct,multiselect:dt,selected:pt}},renderOption_unstable=j=>jsxs(j.root,{children:[j.checkIcon&&jsx$1(j.checkIcon,{}),j.root.children]}),optionClassNames={root:"fui-Option",checkIcon:"fui-Option__checkIcon"},useStyles$r=__styles({root:{Bt984gj:"f122n59",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],sj55zd:"f19n0e5",i8kkvl:"f1ufnopg",Bceei9c:"f1k6fduh",mc9l5x:"f22iagw",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi",z8tnut:"fp2oml8",z189sj:["f1vdfbxk","f1f5gg8d"],Byoj8tv:"f1tdddsa",uwmqm3:["f1f5gg8d","f1vdfbxk"],qhf8xq:"f10pi13n",Jwef8y:"f1knas48",ecr2s2:"fb40n2d"},active:{Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9",B80jsxd:"f1nwj1ja",t2ki1e:"ffmd2fr",Bm2nyyq:"f8rth92",Barhvk9:["flthirb","ftkbnf5"],Bw17bha:"f1lh990p",vfts7:["ftkbnf5","flthirb"],xrcqlc:"fc9v8v1",Ihftqj:["f1mwfetb","f18mat8f"],Bcgy8vk:"f1cb6c3",Bhxzhr1:["f18mat8f","f1mwfetb"],B3778ie:["f1ibwz09","f1kp91vd"],d9w3h3:["f1kp91vd","f1ibwz09"],Bl18szs:["f1pix4dl","f13nd1z4"],B4j8arr:["f13nd1z4","f1pix4dl"],B0n5ga8:"f1qw5sz7",s924m2:["f19va7ni","f1a9v3mw"],B1q35kw:"fkkziue",Gp14am:["f1a9v3mw","f19va7ni"],bn5sak:"f1a97anr",By385i5:"f5226zp",Eqx8gd:["fa2bdqt","fei6g0k"],B1piin3:["fei6g0k","fa2bdqt"]},disabled:{sj55zd:"f1s2aq7o",Jwef8y:"f9ql6rf",ecr2s2:"fgj9um3",Bbusuzp:"f1dcs8yz"},selected:{},checkIcon:{Be2twd7:"fod5ikn",Frg6f3:["f18b9hdq","fn6qj8t"],t21cq0:["f1xk557c","f1h9en5y"],Bcdw1i0:"fd7fpy0",Bo70h7d:"fvc9v3g"},selectedCheck:{Bcdw1i0:"f1022m68"},multiselectCheck:{B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fq0vr37",h3c5rm:["f1byw159","f11cr0be"],B9xav0g:"f1c1zstj",zhjwy3:["f11cr0be","f1byw159"],Bbmb7ep:["f1g3puop","fi2rrw2"],Beyfa6y:["fi2rrw2","f1g3puop"],B7oj6ja:["f1rstyi9","f1s4nn1u"],Btl43ni:["f1s4nn1u","f1rstyi9"],B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Bt984gj:"f122n59",Brf1p80:"f4d9j23",Bkfmm31:"f1w9h62z",Be2twd7:"f1ugzwwg",Bqenvij:"fd461yt",a9b677:"fjw5fx7",Bcdw1i0:"f1022m68"},selectedMultiselectCheck:{De3pzq:"ftywsgz",sj55zd:"fqpbvvt",g2u3we:"f3xi7mh",h3c5rm:["ftovhe4","f1wczvin"],B9xav0g:"f68vbr6",zhjwy3:["f1wczvin","ftovhe4"]},checkDisabled:{sj55zd:"f1s2aq7o",Bbusuzp:"f1dcs8yz"}},{d:[".f122n59{align-items:center;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1ufnopg{column-gap:var(--spacingHorizontalXS);}",".f1k6fduh{cursor:pointer;}",".f22iagw{display:flex;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fp2oml8{padding-top:var(--spacingVerticalSNudge);}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".f1tdddsa{padding-bottom:var(--spacingVerticalSNudge);}",".f10pi13n{position:relative;}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".f1nwj1ja::after{pointer-events:none;}",".ffmd2fr::after{z-index:1;}",".f8rth92::after{border-top-style:solid;}",".flthirb::after{border-right-style:solid;}",".ftkbnf5::after{border-left-style:solid;}",".f1lh990p::after{border-bottom-style:solid;}",".fc9v8v1::after{border-top-width:2px;}",".f1mwfetb::after{border-right-width:2px;}",".f18mat8f::after{border-left-width:2px;}",".f1cb6c3::after{border-bottom-width:2px;}",".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}",".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1pix4dl::after{border-top-right-radius:var(--borderRadiusMedium);}",".f13nd1z4::after{border-top-left-radius:var(--borderRadiusMedium);}",".f1qw5sz7::after{border-top-color:var(--colorStrokeFocus2);}",".f19va7ni::after{border-right-color:var(--colorStrokeFocus2);}",".f1a9v3mw::after{border-left-color:var(--colorStrokeFocus2);}",".fkkziue::after{border-bottom-color:var(--colorStrokeFocus2);}",".f1a97anr::after{top:-2px;}",".f5226zp::after{bottom:-2px;}",".fa2bdqt::after{left:-2px;}",".fei6g0k::after{right:-2px;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".f18b9hdq{margin-left:calc(var(--spacingHorizontalXXS) * -1);}",".fn6qj8t{margin-right:calc(var(--spacingHorizontalXXS) * -1);}",".f1xk557c{margin-right:var(--spacingHorizontalXXS);}",".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}",".fd7fpy0{visibility:hidden;}",".fvc9v3g svg{display:block;}",".f1022m68{visibility:visible;}",".f192inf7{border-top-width:var(--strokeWidthThin);}",".f5tn483{border-right-width:var(--strokeWidthThin);}",".f1ojsxk5{border-left-width:var(--strokeWidthThin);}",".f1vxd6vx{border-bottom-width:var(--strokeWidthThin);}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fq0vr37{border-top-color:var(--colorNeutralStrokeAccessible);}",".f1byw159{border-right-color:var(--colorNeutralStrokeAccessible);}",".f11cr0be{border-left-color:var(--colorNeutralStrokeAccessible);}",".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}",".f1g3puop{border-bottom-right-radius:var(--borderRadiusSmall);}",".fi2rrw2{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1rstyi9{border-top-right-radius:var(--borderRadiusSmall);}",".f1s4nn1u{border-top-left-radius:var(--borderRadiusSmall);}",".f1ewtqcl{box-sizing:border-box;}",".f4d9j23{justify-content:center;}",".f1w9h62z{fill:currentColor;}",".f1ugzwwg{font-size:12px;}",".fd461yt{height:16px;}",".fjw5fx7{width:16px;}",".ftywsgz{background-color:var(--colorCompoundBrandBackground);}",".fqpbvvt{color:var(--colorNeutralForegroundInverted);}",".f3xi7mh{border-top-color:var(--colorCompoundBrandBackground);}",".ftovhe4{border-right-color:var(--colorCompoundBrandBackground);}",".f1wczvin{border-left-color:var(--colorCompoundBrandBackground);}",".f68vbr6{border-bottom-color:var(--colorCompoundBrandBackground);}"],h:[".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}",".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}"],a:[".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}",".fgj9um3:active{background-color:var(--colorTransparentBackground);}"],m:[["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),useOptionStyles_unstable=j=>{const{active:_e,disabled:et,focusVisible:tt,multiselect:rt,selected:nt}=j,ot=useStyles$r();return j.root.className=mergeClasses(optionClassNames.root,ot.root,_e&&tt&&ot.active,et&&ot.disabled,nt&&ot.selected,j.root.className),j.checkIcon&&(j.checkIcon.className=mergeClasses(optionClassNames.checkIcon,ot.checkIcon,rt&&ot.multiselectCheck,nt&&ot.selectedCheck,nt&&rt&&ot.selectedMultiselectCheck,et&&ot.checkDisabled,j.checkIcon.className)),j},Option$2=reactExports.forwardRef((j,_e)=>{const et=useOption_unstable(j,_e);return useOptionStyles_unstable(et),useCustomStyleHook("useOptionStyles_unstable")(et),renderOption_unstable(et)});Option$2.displayName="Option";const useComboboxBaseState=j=>{const{appearance:_e="outline",children:et,editable:tt=!1,inlinePopup:rt=!1,mountNode:nt=void 0,multiselect:ot,onOpenChange:it,size:st="medium"}=j,lt=useOptionCollection(),{getOptionAtIndex:ut,getOptionsMatchingValue:ct}=lt,[dt,ft]=reactExports.useState(),[pt,gt]=reactExports.useState(!1),[mt,bt]=reactExports.useState(!1),_t=reactExports.useRef(!1),xt=useSelection(j),{selectedOptions:yt}=xt,Et=useFirstMount(),[St,Tt]=useControllableState({state:j.value,initialState:void 0}),kt=reactExports.useMemo(()=>{if(St!==void 0)return St;if(Et&&j.defaultValue!==void 0)return j.defaultValue;const Nt=ct(Ot=>yt.includes(Ot)).map(Ot=>Ot.text);return ot?tt?"":Nt.join(", "):Nt[0]},[St,tt,ct,ot,j.defaultValue,yt]),[$t,Ct]=useControllableState({state:j.open,defaultState:j.defaultOpen,initialState:!1}),It=reactExports.useCallback((Nt,Ot)=>{it==null||it(Nt,{open:Ot}),Ct(Ot)},[it,Ct]);return reactExports.useEffect(()=>{if($t&&!dt)if(!ot&&yt.length>0){const Nt=ct(Ot=>Ot===yt[0]).pop();Nt&&ft(Nt)}else ft(ut(0));else $t||ft(void 0)},[$t,et]),{...lt,...xt,activeOption:dt,appearance:_e,focusVisible:pt,hasFocus:mt,ignoreNextBlur:_t,inlinePopup:rt,mountNode:nt,open:$t,setActiveOption:ft,setFocusVisible:gt,setHasFocus:bt,setOpen:It,setValue:Tt,size:st,value:kt,multiselect:ot}};function useComboboxPositioning(j){const{positioning:_e}=j,tt={position:"below",align:"start",offset:{crossAxis:0,mainAxis:2},fallbackPositions:["above","after","after-top","before","before-top"],matchTargetSize:"width",...resolvePositioningShorthand(_e)},{targetRef:rt,containerRef:nt}=usePositioning(tt);return[nt,rt]}function useListboxSlot(j,_e,et){const{state:{multiselect:tt},triggerRef:rt,defaultProps:nt}=et,ot=useId$1("fluent-listbox",isResolvedShorthand(j)?j.id:void 0),it=optional(j,{renderByDefault:!0,elementType:Listbox$1,defaultProps:{id:ot,multiselect:tt,tabIndex:void 0,...nt}}),st=useEventCallback$3(mergeCallbacks(ct=>{ct.preventDefault()},it==null?void 0:it.onMouseDown)),lt=useEventCallback$3(mergeCallbacks(ct=>{var dt;ct.preventDefault(),(dt=rt.current)===null||dt===void 0||dt.focus()},it==null?void 0:it.onClick)),ut=useMergedRefs$1(it==null?void 0:it.ref,_e);return it&&(it.ref=ut,it.onMouseDown=st,it.onClick=lt),it}function useTriggerSlot(j,_e,et){const{state:{activeOption:tt,getCount:rt,getIndexOfId:nt,getOptionAtIndex:ot,open:it,selectOption:st,setActiveOption:lt,setFocusVisible:ut,setOpen:ct,multiselect:dt},defaultProps:ft,elementType:pt}=et,gt=always(j,{defaultProps:{type:"text","aria-expanded":it,"aria-activedescendant":it?tt==null?void 0:tt.id:void 0,role:"combobox",...typeof ft=="object"&&ft},elementType:pt}),mt=reactExports.useRef(null);return gt.ref=useMergedRefs$1(mt,gt.ref,_e),gt.onBlur=mergeCallbacks(bt=>{ct(bt,!1)},gt.onBlur),gt.onClick=mergeCallbacks(bt=>{ct(bt,!it)},gt.onClick),gt.onKeyDown=mergeCallbacks(bt=>{const _t=getDropdownActionFromKey(bt,{open:it,multiselect:dt}),xt=rt()-1,yt=tt?nt(tt.id):-1;let Et=yt;switch(_t){case"Open":bt.preventDefault(),ut(!0),ct(bt,!0);break;case"Close":bt.stopPropagation(),bt.preventDefault(),ct(bt,!1);break;case"CloseSelect":!dt&&!(tt!=null&&tt.disabled)&&ct(bt,!1);case"Select":tt&&st(bt,tt),bt.preventDefault();break;case"Tab":!dt&&tt&&st(bt,tt);break;default:Et=getIndexFromAction(_t,yt,xt)}Et!==yt&&(bt.preventDefault(),lt(ot(Et)),ut(!0))},gt.onKeyDown),gt.onMouseOver=mergeCallbacks(bt=>{ut(!1)},gt.onMouseOver),gt}function useInputTriggerSlot(j,_e,et){const{state:{open:tt,value:rt,activeOption:nt,selectOption:ot,setValue:it,setActiveOption:st,setFocusVisible:lt,multiselect:ut,selectedOptions:ct,clearSelection:dt,getOptionsMatchingText:ft,getIndexOfId:pt,setOpen:gt},freeform:mt,defaultProps:bt}=et,_t=It=>{!tt&&!mt&&(rt&&nt&&rt.trim().toLowerCase()===(nt==null?void 0:nt.text.toLowerCase())&&ot(It,nt),it(void 0))},xt=It=>{const Nt=It==null?void 0:It.trim().toLowerCase();if(!Nt||Nt.length===0)return;const jt=ft(Rt=>Rt.toLowerCase().indexOf(Nt)===0);if(jt.length>1&&nt){const Rt=pt(nt.id),Lt=jt.find(Pt=>pt(Pt.id)>=Rt);return Lt??jt[0]}var Mt;return(Mt=jt[0])!==null&&Mt!==void 0?Mt:void 0},yt=It=>{const Nt=It.target.value;it(Nt);const Ot=xt(Nt);st(Ot),lt(!0),!ut&&ct.length===1&&(Nt.length<1||!Ot)&&dt(It)},Et=useTriggerSlot(j,_e,{state:et.state,defaultProps:bt,elementType:"input"});Et.onChange=mergeCallbacks(Et.onChange,yt),Et.onBlur=mergeCallbacks(Et.onBlur,_t);const[St,Tt]=reactExports.useState(!1),kt=reactExports.useRef(!1),$t=Et.onKeyDown,Ct=useEventCallback$3(It=>{!tt&&getDropdownActionFromKey(It)==="Type"&>(It,!0),It.key===ArrowLeft||It.key===ArrowRight?Tt(!0):Tt(!1);const Nt=getDropdownActionFromKey(It,{open:tt,multiselect:ut});if(Nt==="Type"?kt.current=!0:(Nt==="Open"&&It.key!==" "||Nt==="Next"||Nt==="Previous"||Nt==="First"||Nt==="Last"||Nt==="PageUp"||Nt==="PageDown")&&(kt.current=!1),mt&&(kt.current||!tt)&&It.key===" "){var Ot;j==null||(Ot=j.onKeyDown)===null||Ot===void 0||Ot.call(j,It);return}$t==null||$t(It)});return Et.onKeyDown=Ct,St&&(Et["aria-activedescendant"]=void 0),Et}const useCombobox_unstable=(j,_e)=>{j=useFieldControlProps_unstable(j,{supportsLabelFor:!0,supportsRequired:!0,supportsSize:!0});const et=useComboboxBaseState({...j,editable:!0}),{open:tt,selectOption:rt,setOpen:nt,setValue:ot,value:it}=et,[st,lt]=useComboboxPositioning(j),{disabled:ut,freeform:ct,inlinePopup:dt}=j,ft=useId$1("combobox-"),{primary:pt,root:gt}=getPartitionedNativeProps({props:j,primarySlotTagName:"input",excludedPropNames:["children","size"]});et.selectOption=($t,Ct)=>{ot(void 0),rt($t,Ct)},et.setOpen=($t,Ct)=>{ut||(!Ct&&!ct&&ot(void 0),nt($t,Ct))};const mt=reactExports.useRef(null),bt=useListboxSlot(j.listbox,st,{state:et,triggerRef:mt,defaultProps:{children:j.children}});var _t;const xt=useInputTriggerSlot((_t=j.input)!==null&&_t!==void 0?_t:{},useMergedRefs$1(mt,_e),{state:et,freeform:ct,defaultProps:{type:"text",value:it??"",...pt}}),yt=always(j.root,{defaultProps:{"aria-owns":!dt&&tt?bt==null?void 0:bt.id:void 0,...gt},elementType:"div"});yt.ref=useMergedRefs$1(yt.ref,lt);const Et={components:{root:"div",input:"input",expandIcon:"span",listbox:Listbox$1},root:yt,input:xt,listbox:tt?bt:void 0,expandIcon:optional(j.expandIcon,{renderByDefault:!0,defaultProps:{"aria-expanded":tt,children:reactExports.createElement(ChevronDownRegular,null),role:"button"},elementType:"span"}),...et},{onMouseDown:St}=Et.expandIcon||{},Tt=useEventCallback$3(mergeCallbacks(St,$t=>{var Ct;$t.preventDefault(),Et.setOpen($t,!Et.open),(Ct=mt.current)===null||Ct===void 0||Ct.focus()}));if(Et.expandIcon){Et.expandIcon.onMouseDown=Tt;const $t=Et.expandIcon["aria-label"]||Et.expandIcon["aria-labelledby"],Ct="Open";if(!$t)if(j["aria-labelledby"]){var kt;const It=(kt=Et.expandIcon.id)!==null&&kt!==void 0?kt:`${ft}-chevron`,Nt=`${It} ${Et.input["aria-labelledby"]}`;Et.expandIcon["aria-label"]=Ct,Et.expandIcon.id=It,Et.expandIcon["aria-labelledby"]=Nt}else j["aria-label"]?Et.expandIcon["aria-label"]=`${Ct} ${j["aria-label"]}`:Et.expandIcon["aria-label"]=Ct}return Et},renderCombobox_unstable=(j,_e)=>jsx$1(j.root,{children:jsxs(ComboboxContext.Provider,{value:_e.combobox,children:[jsx$1(j.input,{}),j.expandIcon&&jsx$1(j.expandIcon,{}),j.listbox&&(j.inlinePopup?jsx$1(j.listbox,{}):jsx$1(Portal$1,{mountNode:j.mountNode,children:jsx$1(j.listbox,{})}))]})}),comboboxClassNames={root:"fui-Combobox",input:"fui-Combobox__input",expandIcon:"fui-Combobox__expandIcon",listbox:"fui-Combobox__listbox"},useStyles$q=__styles({root:{Bt984gj:"f122n59",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B7ck84d:"f1ewtqcl",i8kkvl:"f14mj54c",mc9l5x:"fwk3njj",Budl1dq:"fz17x9o",Brf1p80:"f1869bpl",Bf4jedk:"f1exfvgq",qhf8xq:"f10pi13n",Bbr2w1p:"f14a1fxs",Bduesf4:"f3e99gv",Bpq79vn:"fhljsf7",li1rpt:"f1gw3sf2",Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9",Eqx8gd:["f1a7op3","f1cjjd47"],By385i5:"f1gboi2j",B1piin3:["f1cjjd47","f1a7op3"],Dlnsje:"f145g4dw",d9w3h3:["f1kp91vd","f1ibwz09"],B3778ie:["f1ibwz09","f1kp91vd"],Bcgy8vk:"f14pi962",Bw17bha:"f1lh990p",B1q35kw:"f1jc6hxc",Gjdm7m:"f13evtba",b1kco5:"f1yk9hq",Ba2ppi3:"fhwpy7i",F2fol1:"f14ee0xe",lck23g:"f1xhbsuh",df92cz:"fv8e3ye",I188md:"ftb5wc6",umuwi5:"fjw5xc1",Blcqepd:"f1xdyd5c",nplu4u:"fatpbeo",Bioka5o:"fb7uyps",H713fs:"f1cmft4k",B9ooomg:"f1x58t8o",Bercvud:"f1ibeo51"},listbox:{E5pizo:"f1hg901r",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],Bxyxcbc:"fmmk62d",B7ck84d:"f1ewtqcl"},listboxCollapsed:{mc9l5x:"fjseox"},small:{z189sj:["fdw0yi8","fk8j09s"]},medium:{z189sj:["f11gcy0p","f1ng84yb"]},large:{i8kkvl:"f1rjii52",z189sj:["fw5db7e","f1uw59to"]},outline:{De3pzq:"fxugw4r",B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fj3muxo",h3c5rm:["f1akhkt","f1lxtadh"],B9xav0g:"f1c1zstj",zhjwy3:["f1lxtadh","f1akhkt"]},outlineInteractive:{Bgoe8wy:"fvcxoqz",Bwzppfd:["f1ub3y4t","f1m52nbi"],oetu4i:"flmw63s",gg5e9n:["f1m52nbi","f1ub3y4t"],B6oc9vd:"fvs00aa",ak43y8:["f1assf6x","f4ruux4"],wmxk5l:"fqhmt4z",B50zh58:["f4ruux4","f1assf6x"]},underline:{De3pzq:"f1c21dwh",Bn0qgzm:"f1vxd6vx",oivjwe:"fg706s2",B9xav0g:"f1c1zstj",Bbmb7ep:["f1krrbdw","f1deotkl"],Beyfa6y:["f1deotkl","f1krrbdw"],B7oj6ja:["f10ostut","f1ozlkrg"],Btl43ni:["f1ozlkrg","f10ostut"]},"filled-lighter":{De3pzq:"fxugw4r",B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},"filled-darker":{De3pzq:"f16xq7d1",B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},invalid:{tvckwq:"fs4k3qj",gk2u95:["fcee079","fmyw78r"],hhx65j:"f1fgmyf4",Bxowmz0:["fmyw78r","fcee079"]},invalidUnderline:{hhx65j:"f1fgmyf4"},disabled:{Bceei9c:"fdrzuqr",De3pzq:"f1c21dwh",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"]}},{d:[".f122n59{align-items:center;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f1ewtqcl{box-sizing:border-box;}",".f14mj54c{column-gap:var(--spacingHorizontalXXS);}",".fwk3njj{display:inline-grid;}",".fz17x9o{grid-template-columns:1fr auto;}",".f1869bpl{justify-content:space-between;}",".f1exfvgq{min-width:250px;}",".f10pi13n{position:relative;}",".f1gw3sf2::after{box-sizing:border-box;}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".f1a7op3::after{left:-1px;}",".f1cjjd47::after{right:-1px;}",".f1gboi2j::after{bottom:-1px;}",".f145g4dw::after{height:max(2px, var(--borderRadiusMedium));}",".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}",".f14pi962::after{border-bottom-width:var(--strokeWidthThick);}",".f1lh990p::after{border-bottom-style:solid;}",".f1jc6hxc::after{border-bottom-color:var(--colorCompoundBrandStroke);}",".f13evtba::after{clip-path:inset(calc(100% - 2px) 0 0 0);}",".f1yk9hq::after{transform:scaleX(0);}",".fhwpy7i::after{transition-property:transform;}",".f14ee0xe::after{transition-duration:var(--durationUltraFast);}",".f1xhbsuh::after{transition-delay:var(--curveAccelerateMid);}",".f1hg901r{box-shadow:var(--shadow16);}",".fmmk62d{max-height:80vh;}",".fjseox{display:none;}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",".fw5db7e{padding-right:var(--spacingHorizontalM);}",".f1uw59to{padding-left:var(--spacingHorizontalM);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f192inf7{border-top-width:var(--strokeWidthThin);}",".f5tn483{border-right-width:var(--strokeWidthThin);}",".f1ojsxk5{border-left-width:var(--strokeWidthThin);}",".f1vxd6vx{border-bottom-width:var(--strokeWidthThin);}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fj3muxo{border-top-color:var(--colorNeutralStroke1);}",".f1akhkt{border-right-color:var(--colorNeutralStroke1);}",".f1lxtadh{border-left-color:var(--colorNeutralStroke1);}",".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1krrbdw{border-bottom-right-radius:0;}",".f1deotkl{border-bottom-left-radius:0;}",".f10ostut{border-top-right-radius:0;}",".f1ozlkrg{border-top-left-radius:0;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".f16xq7d1{background-color:var(--colorNeutralBackground3);}",".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}",".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}",".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}",".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}",".fdrzuqr{cursor:not-allowed;}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}"],w:[".f14a1fxs:focus-within{outline-width:2px;}",".f3e99gv:focus-within{outline-style:solid;}",".fhljsf7:focus-within{outline-color:transparent;}",".fjw5xc1:focus-within::after{transform:scaleX(1);}",".f1xdyd5c:focus-within::after{transition-property:transform;}",".fatpbeo:focus-within::after{transition-duration:var(--durationNormal);}",".fb7uyps:focus-within::after{transition-delay:var(--curveDecelerateMid);}",".f1ibeo51:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}"],m:[["@media screen and (prefers-reduced-motion: reduce){.fv8e3ye::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.ftb5wc6::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1cmft4k:focus-within::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1x58t8o:focus-within::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}]],h:[".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}",".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}",".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}",".flmw63s:hover{border-bottom-color:var(--colorNeutralStrokeAccessible);}"],a:[".fvs00aa:active{border-top-color:var(--colorNeutralStroke1Pressed);}",".f1assf6x:active{border-right-color:var(--colorNeutralStroke1Pressed);}",".f4ruux4:active{border-left-color:var(--colorNeutralStroke1Pressed);}",".fqhmt4z:active{border-bottom-color:var(--colorNeutralStrokeAccessible);}"]}),useInputStyles$1=__styles({input:{De3pzq:"f1c21dwh",B4j52fo:"fre7gi1",Bekrc4i:["f1358rze","f1rvrf73"],Bn0qgzm:"fqdk4by",ibv6hh:["f1rvrf73","f1358rze"],sj55zd:"f19n0e5",Bahqtrf:"fk6fouc",Brovlpu:"ftqa4ok",yvdlaj:"fwyc1cq",B3o7kgh:"f13ta7ih"},small:{Bqenvij:"f50nw0v",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1xile11","fqznh8f"]},medium:{Bqenvij:"f1tvdnth",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1e60jzv","f135dnwl"]},large:{Bqenvij:"f1ihhdec",Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["fnphzt9","flt1dlf"]},disabled:{sj55zd:"f1s2aq7o",De3pzq:"f1c21dwh",Bceei9c:"fdrzuqr",yvdlaj:"fahhnxm"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",".fre7gi1{border-top-width:0;}",".f1358rze{border-right-width:0;}",".f1rvrf73{border-left-width:0;}",".fqdk4by{border-bottom-width:0;}",".f19n0e5{color:var(--colorNeutralForeground1);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fwyc1cq::-webkit-input-placeholder{color:var(--colorNeutralForeground4);}",".fwyc1cq::-moz-placeholder{color:var(--colorNeutralForeground4);}",".f13ta7ih::-webkit-input-placeholder{opacity:1;}",".f13ta7ih::-moz-placeholder{opacity:1;}",".f50nw0v{height:22px;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1qch9an{padding-bottom:0;}",".f1xile11{padding-left:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".fqznh8f{padding-right:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".f1tvdnth{height:30px;}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1e60jzv{padding-left:calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS));}",".f135dnwl{padding-right:calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS));}",".f1ihhdec{height:38px;}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fnphzt9{padding-left:calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}",".flt1dlf{padding-right:calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}",".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}"],f:[".ftqa4ok:focus{outline-style:none;}"]}),useIconStyles$1=__styles({icon:{B7ck84d:"f1ewtqcl",sj55zd:"fxkbij4",Bceei9c:"f1k6fduh",mc9l5x:"ftgm304",Be2twd7:"f1pp30po",Bo70h7d:"fvc9v3g"},small:{Be2twd7:"f4ybsrx",Frg6f3:["f1h9en5y","f1xk557c"]},medium:{Be2twd7:"fe5j1ua",Frg6f3:["f1h9en5y","f1xk557c"]},large:{Be2twd7:"f1rt2boy",Frg6f3:["f1t5qyk5","f1ikr372"]},disabled:{sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr"}},{d:[".f1ewtqcl{box-sizing:border-box;}",".fxkbij4{color:var(--colorNeutralStrokeAccessible);}",".f1k6fduh{cursor:pointer;}",".ftgm304{display:block;}",".f1pp30po{font-size:var(--fontSizeBase500);}",".fvc9v3g svg{display:block;}",".f4ybsrx{font-size:16px;}",".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}",".f1xk557c{margin-right:var(--spacingHorizontalXXS);}",".fe5j1ua{font-size:20px;}",".f1rt2boy{font-size:24px;}",".f1t5qyk5{margin-left:var(--spacingHorizontalSNudge);}",".f1ikr372{margin-right:var(--spacingHorizontalSNudge);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}"]}),useComboboxStyles_unstable=j=>{const{appearance:_e,open:et,size:tt}=j,rt=`${j.input["aria-invalid"]}`=="true",nt=j.input.disabled,ot=useStyles$q(),it=useIconStyles$1(),st=useInputStyles$1();return j.root.className=mergeClasses(comboboxClassNames.root,ot.root,ot[_e],ot[tt],!nt&&_e==="outline"&&ot.outlineInteractive,rt&&_e!=="underline"&&ot.invalid,rt&&_e==="underline"&&ot.invalidUnderline,nt&&ot.disabled,j.root.className),j.input.className=mergeClasses(comboboxClassNames.input,st.input,st[tt],nt&&st.disabled,j.input.className),j.listbox&&(j.listbox.className=mergeClasses(comboboxClassNames.listbox,ot.listbox,!et&&ot.listboxCollapsed,j.listbox.className)),j.expandIcon&&(j.expandIcon.className=mergeClasses(comboboxClassNames.expandIcon,it.icon,it[tt],nt&&it.disabled,j.expandIcon.className)),j},Combobox=reactExports.forwardRef((j,_e)=>{const et=useCombobox_unstable(j,_e),tt=useComboboxContextValues(et);return useComboboxStyles_unstable(et),useCustomStyleHook("useComboboxStyles_unstable")(et),renderCombobox_unstable(et,tt)});Combobox.displayName="Combobox";const useOptionGroup_unstable=(j,_e)=>{const et=useId$1("group-label"),{label:tt}=j;return{components:{root:"div",label:"span"},root:always(getIntrinsicElementProps("div",{ref:_e,role:"group","aria-labelledby":tt?et:void 0,...j}),{elementType:"div"}),label:optional(tt,{defaultProps:{id:et,role:"presentation"},elementType:"span"})}},renderOptionGroup_unstable=j=>jsxs(j.root,{children:[j.label&&jsx$1(j.label,{children:j.label.children}),j.root.children]}),optionGroupClassNames={root:"fui-OptionGroup",label:"fui-OptionGroup__label"},useStyles$p=__styles({root:{mc9l5x:"f22iagw",Beiy3e4:"f1vx9l62",Belr9w4:"fiut8dr",B8lkq7l:"f1xxzjds",Gwp8xu:"fu19d3i",H93o2g:"flylvvz",eii1in:"f1ug5m11",om0q45:"f5642y",Hl9o3s:"ffdf81h",Bi9x0x4:"flgyru6",B0i58d9:["f1fjgumo","f1sgo0dv"],sl1c2c:"fwsdxdw",z4hxbw:["f1sgo0dv","f1fjgumo"]},label:{Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],sj55zd:"f11d4kpn",mc9l5x:"ftgm304",Be2twd7:"fy9rknc",Bhrd7zp:"fl43uef",Bg96gwp:"fwrc4pm",z8tnut:"f17mpqex",z189sj:["fdw0yi8","fk8j09s"],Byoj8tv:"fdvome7",uwmqm3:["fk8j09s","fdw0yi8"]}},{d:[".f22iagw{display:flex;}",".f1vx9l62{flex-direction:column;}",".fiut8dr{row-gap:var(--spacingHorizontalXXS);}",'.f1xxzjds:not(:last-child)::after{content:"";}',".fu19d3i:not(:last-child)::after{border-bottom-width:var(--strokeWidthThin);}",".flylvvz:not(:last-child)::after{border-bottom-style:solid;}",".f1ug5m11:not(:last-child)::after{border-bottom-color:var(--colorNeutralStroke2);}",".f5642y:not(:last-child)::after{display:block;}",".ffdf81h:not(:last-child)::after{padding-bottom:var(--spacingHorizontalXS);}",".flgyru6:not(:last-child)::after{margin-top:0;}",".f1fjgumo:not(:last-child)::after{margin-right:calc(var(--spacingHorizontalXS) * -1);}",".f1sgo0dv:not(:last-child)::after{margin-left:calc(var(--spacingHorizontalXS) * -1);}",".fwsdxdw:not(:last-child)::after{margin-bottom:var(--spacingVerticalXS);}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f11d4kpn{color:var(--colorNeutralForeground3);}",".ftgm304{display:block;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f17mpqex{padding-top:var(--spacingHorizontalS);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".fdvome7{padding-bottom:var(--spacingHorizontalS);}"]}),useOptionGroupStyles_unstable=j=>{const _e=useStyles$p();return j.root.className=mergeClasses(optionGroupClassNames.root,_e.root,j.root.className),j.label&&(j.label.className=mergeClasses(optionGroupClassNames.label,_e.label,j.label.className)),j},OptionGroup=reactExports.forwardRef((j,_e)=>{const et=useOptionGroup_unstable(j,_e);return useOptionGroupStyles_unstable(et),useCustomStyleHook("useOptionGroupStyles_unstable")(et),renderOptionGroup_unstable(et)});OptionGroup.displayName="OptionGroup";const renderDivider_unstable=j=>jsx$1(j.root,{children:j.root.children!==void 0&&jsx$1(j.wrapper,{children:j.root.children})}),useDivider_unstable=(j,_e)=>{const{alignContent:et="center",appearance:tt="default",inset:rt=!1,vertical:nt=!1,wrapper:ot}=j,it=useId$1("divider-");return{alignContent:et,appearance:tt,inset:rt,vertical:nt,components:{root:"div",wrapper:"div"},root:always(getIntrinsicElementProps("div",{role:"separator","aria-orientation":nt?"vertical":"horizontal","aria-labelledby":j.children?it:void 0,...j,ref:_e}),{elementType:"div"}),wrapper:always(ot,{defaultProps:{id:it,children:j.children},elementType:"div"})}},dividerClassNames={root:"fui-Divider",wrapper:"fui-Divider__wrapper"},useBaseStyles=__styles({base:{Bt984gj:"f122n59",B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Beiy3e4:"f1063pyq",Bh6795r:"fqerorx",qhf8xq:"f10pi13n",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm",fsow6f:"f17mccla",Bcvre1j:"fyl8oag",Br0sdwz:"f16vkdww",Bn78ew0:"fhsnbul",li1rpt:"f1gw3sf2",ap17g6:"f1ly5f7u",B771hl4:"f1s3tz6t"},childless:{susq4k:"f1kyqvp9",Bicfajf:["fzynn9s","f1z0ukd1"],jwcpgy:["fekrn8e","ftdg338"],B4rk6o:"fesgyo"},start:{Bsft5z2:"f13zj6fq"},center:{Ftih45:"f1wl9k8s",Bsft5z2:"f13zj6fq"},end:{Ftih45:"f1wl9k8s"},brand:{sj55zd:"f16muhyy",Bq4z7u6:"fcbuu2a",Bk5zm6e:["f1wdw2dr","f1ttio3w"],Bqjgrrk:"f1582fpk",Bm6vgfq:["f1ttio3w","f1wdw2dr"],B0n5ga8:"f1ahrvm8",s924m2:["f1cd3wbc","f17hbk9y"],B1q35kw:"fvrapl0",Gp14am:["f17hbk9y","f1cd3wbc"]},default:{sj55zd:"fkfq4zb",Bq4z7u6:"f1vccso1",Bk5zm6e:["f1geml7w","fjml6kk"],Bqjgrrk:"f1r7kh1m",Bm6vgfq:["fjml6kk","f1geml7w"],B0n5ga8:"f16j7guv",s924m2:["fx01ahm","fj1a37q"],B1q35kw:"fl8d8yv",Gp14am:["fj1a37q","fx01ahm"]},subtle:{sj55zd:"fkfq4zb",Bq4z7u6:"f5g06un",Bk5zm6e:["f13sxdku","f1n015lb"],Bqjgrrk:"f1x6bl8t",Bm6vgfq:["f1n015lb","f13sxdku"],B0n5ga8:"fvod1wy",s924m2:["fwslg65","flk0e17"],B1q35kw:"f103fvts",Gp14am:["flk0e17","fwslg65"]},strong:{sj55zd:"fkfq4zb",Bq4z7u6:"f10tv6oz",Bk5zm6e:["f16xp3sf","f1seuxxq"],Bqjgrrk:"fwrmqbx",Bm6vgfq:["f1seuxxq","f16xp3sf"],B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"]}},{d:[".f122n59{align-items:center;}",".f1ewtqcl{box-sizing:border-box;}",".f22iagw{display:flex;}",".f1063pyq{flex-direction:row;}",".fqerorx{flex-grow:1;}",".f10pi13n{position:relative;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f17mccla{text-align:center;}",".fyl8oag::before{box-sizing:border-box;}",".f16vkdww::before{display:flex;}",".fhsnbul::before{flex-grow:1;}",".f1gw3sf2::after{box-sizing:border-box;}",".f1ly5f7u::after{display:flex;}",".f1s3tz6t::after{flex-grow:1;}",".f1kyqvp9::before{margin-bottom:0;}",".fzynn9s::before{margin-right:0;}",".f1z0ukd1::before{margin-left:0;}",".fekrn8e::after{margin-left:0;}",".ftdg338::after{margin-right:0;}",".fesgyo::after{margin-top:0;}",'.f13zj6fq::after{content:"";}','.f1wl9k8s::before{content:"";}',".f16muhyy{color:var(--colorBrandForeground1);}",".fcbuu2a::before{border-top-color:var(--colorBrandStroke1);}",".f1wdw2dr::before{border-right-color:var(--colorBrandStroke1);}",".f1ttio3w::before{border-left-color:var(--colorBrandStroke1);}",".f1582fpk::before{border-bottom-color:var(--colorBrandStroke1);}",".f1ahrvm8::after{border-top-color:var(--colorBrandStroke1);}",".f1cd3wbc::after{border-right-color:var(--colorBrandStroke1);}",".f17hbk9y::after{border-left-color:var(--colorBrandStroke1);}",".fvrapl0::after{border-bottom-color:var(--colorBrandStroke1);}",".fkfq4zb{color:var(--colorNeutralForeground2);}",".f1vccso1::before{border-top-color:var(--colorNeutralStroke2);}",".f1geml7w::before{border-right-color:var(--colorNeutralStroke2);}",".fjml6kk::before{border-left-color:var(--colorNeutralStroke2);}",".f1r7kh1m::before{border-bottom-color:var(--colorNeutralStroke2);}",".f16j7guv::after{border-top-color:var(--colorNeutralStroke2);}",".fx01ahm::after{border-right-color:var(--colorNeutralStroke2);}",".fj1a37q::after{border-left-color:var(--colorNeutralStroke2);}",".fl8d8yv::after{border-bottom-color:var(--colorNeutralStroke2);}",".f5g06un::before{border-top-color:var(--colorNeutralStroke3);}",".f13sxdku::before{border-right-color:var(--colorNeutralStroke3);}",".f1n015lb::before{border-left-color:var(--colorNeutralStroke3);}",".f1x6bl8t::before{border-bottom-color:var(--colorNeutralStroke3);}",".fvod1wy::after{border-top-color:var(--colorNeutralStroke3);}",".fwslg65::after{border-right-color:var(--colorNeutralStroke3);}",".flk0e17::after{border-left-color:var(--colorNeutralStroke3);}",".f103fvts::after{border-bottom-color:var(--colorNeutralStroke3);}",".f10tv6oz::before{border-top-color:var(--colorNeutralStroke1);}",".f16xp3sf::before{border-right-color:var(--colorNeutralStroke1);}",".f1seuxxq::before{border-left-color:var(--colorNeutralStroke1);}",".fwrmqbx::before{border-bottom-color:var(--colorNeutralStroke1);}",".ft83z1f::after{border-top-color:var(--colorNeutralStroke1);}",".f1g4150c::after{border-right-color:var(--colorNeutralStroke1);}",".f192dr6e::after{border-left-color:var(--colorNeutralStroke1);}",".f1qnawh6::after{border-bottom-color:var(--colorNeutralStroke1);}"]}),useHorizontalStyles=__styles({base:{a9b677:"fly5x3f",Bdkvgpv:"f163fonl",B0qfbqy:"f51yk4v",pbipgd:"f13rof3u",Bm2nyyq:"f8rth92",xrcqlc:"f6czdpx",i5u598:"f1iyka9k"},inset:{uwmqm3:["fjlbh76","f11qrl6u"],z189sj:["f11qrl6u","fjlbh76"]},start:{Ftih45:"f1wl9k8s",Bicfajf:["f1ojjlep","fk1kexq"],Bxwl2t9:"f1he2m4d",jwcpgy:["f12w1bnb","f1558wlj"]},center:{Bicfajf:["f1ojjlep","fk1kexq"],jwcpgy:["f12w1bnb","f1558wlj"]},end:{Bicfajf:["f1ojjlep","fk1kexq"],Bsft5z2:"f13zj6fq",jwcpgy:["f12w1bnb","f1558wlj"],Iy66sp:"f1ayce8x"}},{d:[".fly5x3f{width:100%;}",".f163fonl::before{border-top-style:solid;}",".f51yk4v::before{border-top-width:var(--strokeWidthThin);}",".f13rof3u::before{min-width:8px;}",".f8rth92::after{border-top-style:solid;}",".f6czdpx::after{border-top-width:var(--strokeWidthThin);}",".f1iyka9k::after{min-width:8px;}",".fjlbh76{padding-left:12px;}",".f11qrl6u{padding-right:12px;}",'.f1wl9k8s::before{content:"";}',".f1ojjlep::before{margin-right:12px;}",".fk1kexq::before{margin-left:12px;}",".f1he2m4d::before{max-width:8px;}",".f12w1bnb::after{margin-left:12px;}",".f1558wlj::after{margin-right:12px;}",'.f13zj6fq::after{content:"";}',".f1ayce8x::after{max-width:8px;}"]}),useVerticalStyles=__styles({base:{Beiy3e4:"f1vx9l62",sshi5w:"f16gbxbe",m598lv:["f1yq6w5o","f1jpmc5p"],B4f6apu:["f9sc749","f1x8pvcy"],zkzzav:"fhkwbjy",Barhvk9:["flthirb","ftkbnf5"],Ihftqj:["f13hvwk3","f1en4csx"],Bde111x:"f19onpk6"},inset:{B6of3ja:"f1xdg43u",jrapky:"f1jlhsmd"},withChildren:{sshi5w:"f1tjaq3g"},start:{Ftih45:"f1wl9k8s",susq4k:"fg2pwug",Bbdr6tz:"fkjtzyi",B4rk6o:"f8vk40g"},center:{susq4k:"fg2pwug",B4rk6o:"f8vk40g"},end:{susq4k:"fg2pwug",Bsft5z2:"f13zj6fq",B4rk6o:"f8vk40g",gn64ia:"fqg5mu5"}},{d:[".f1vx9l62{flex-direction:column;}",".f16gbxbe{min-height:20px;}",".f1yq6w5o::before{border-right-style:solid;}",".f1jpmc5p::before{border-left-style:solid;}",".f9sc749::before{border-right-width:var(--strokeWidthThin);}",".f1x8pvcy::before{border-left-width:var(--strokeWidthThin);}",".fhkwbjy::before{min-height:8px;}",".flthirb::after{border-right-style:solid;}",".ftkbnf5::after{border-left-style:solid;}",".f13hvwk3::after{border-right-width:var(--strokeWidthThin);}",".f1en4csx::after{border-left-width:var(--strokeWidthThin);}",".f19onpk6::after{min-height:8px;}",".f1xdg43u{margin-top:12px;}",".f1jlhsmd{margin-bottom:12px;}",".f1tjaq3g{min-height:84px;}",'.f1wl9k8s::before{content:"";}',".fg2pwug::before{margin-bottom:12px;}",".fkjtzyi::before{max-height:8px;}",".f8vk40g::after{margin-top:12px;}",'.f13zj6fq::after{content:"";}',".fqg5mu5::after{max-height:8px;}"]}),useDividerStyles_unstable=j=>{const _e=useBaseStyles(),et=useHorizontalStyles(),tt=useVerticalStyles(),{alignContent:rt,appearance:nt,inset:ot,vertical:it}=j;return j.root.className=mergeClasses(dividerClassNames.root,_e.base,_e[rt],nt&&_e[nt],!it&&et.base,!it&&ot&&et.inset,!it&&et[rt],it&&tt.base,it&&ot&&tt.inset,it&&tt[rt],it&&j.root.children!==void 0&&tt.withChildren,j.root.children===void 0&&_e.childless,j.root.className),j.wrapper&&(j.wrapper.className=mergeClasses(dividerClassNames.wrapper,j.wrapper.className)),j},Divider$2=reactExports.forwardRef((j,_e)=>{const et=useDivider_unstable(j,_e);return useDividerStyles_unstable(et),useCustomStyleHook("useDividerStyles_unstable")(et),renderDivider_unstable(et)});Divider$2.displayName="Divider";const useInput_unstable=(j,_e)=>{j=useFieldControlProps_unstable(j,{supportsLabelFor:!0,supportsRequired:!0,supportsSize:!0});const et=useOverrides();var tt;const{size:rt="medium",appearance:nt=(tt=et.inputDefaultAppearance)!==null&&tt!==void 0?tt:"outline",onChange:ot}=j,[it,st]=useControllableState({state:j.value,defaultState:j.defaultValue,initialState:""}),lt=getPartitionedNativeProps({props:j,primarySlotTagName:"input",excludedPropNames:["size","onChange","value","defaultValue"]}),ut={size:rt,appearance:nt,components:{root:"span",input:"input",contentBefore:"span",contentAfter:"span"},input:always(j.input,{defaultProps:{type:"text",ref:_e,...lt.primary},elementType:"input"}),contentAfter:optional(j.contentAfter,{elementType:"span"}),contentBefore:optional(j.contentBefore,{elementType:"span"}),root:always(j.root,{defaultProps:lt.root,elementType:"span"})};return ut.input.value=it,ut.input.onChange=useEventCallback$3(ct=>{const dt=ct.target.value;ot==null||ot(ct,{value:dt}),st(dt)}),ut},renderInput_unstable=j=>jsxs(j.root,{children:[j.contentBefore&&jsx$1(j.contentBefore,{}),jsx$1(j.input,{}),j.contentAfter&&jsx$1(j.contentAfter,{})]}),inputClassNames={root:"fui-Input",input:"fui-Input__input",contentBefore:"fui-Input__contentBefore",contentAfter:"fui-Input__contentAfter"},useRootClassName=__resetStyles("r1jtohuq","rl1z2p5",{r:[".r1jtohuq{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:var(--spacingHorizontalXXS);border-radius:var(--borderRadiusMedium);position:relative;box-sizing:border-box;min-height:32px;padding:0 var(--spacingHorizontalMNudge);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);background-color:var(--colorNeutralBackground1);border:1px solid var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStrokeAccessible);}",'.r1jtohuq::after{box-sizing:border-box;content:"";position:absolute;left:-1px;bottom:-1px;right:-1px;height:max(2px, var(--borderRadiusMedium));border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-bottom:2px solid var(--colorCompoundBrandStroke);clip-path:inset(calc(100% - 2px) 0 0 0);transform:scaleX(0);transition-property:transform;transition-duration:var(--durationUltraFast);transition-delay:var(--curveAccelerateMid);}',".r1jtohuq:focus-within::after{transform:scaleX(1);transition-property:transform;transition-duration:var(--durationNormal);transition-delay:var(--curveDecelerateMid);}",".r1jtohuq:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}",".r1jtohuq:focus-within{outline:2px solid transparent;}",".rl1z2p5{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:var(--spacingHorizontalXXS);border-radius:var(--borderRadiusMedium);position:relative;box-sizing:border-box;min-height:32px;padding:0 var(--spacingHorizontalMNudge);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);background-color:var(--colorNeutralBackground1);border:1px solid var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStrokeAccessible);}",'.rl1z2p5::after{box-sizing:border-box;content:"";position:absolute;right:-1px;bottom:-1px;left:-1px;height:max(2px, var(--borderRadiusMedium));border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-bottom:2px solid var(--colorCompoundBrandStroke);clip-path:inset(calc(100% - 2px) 0 0 0);transform:scaleX(0);transition-property:transform;transition-duration:var(--durationUltraFast);transition-delay:var(--curveAccelerateMid);}',".rl1z2p5:focus-within::after{transform:scaleX(1);transition-property:transform;transition-duration:var(--durationNormal);transition-delay:var(--curveDecelerateMid);}",".rl1z2p5:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}",".rl1z2p5:focus-within{outline:2px solid transparent;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r1jtohuq::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r1jtohuq:focus-within::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.rl1z2p5::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.rl1z2p5:focus-within::after{transition-duration:0.01ms;transition-delay:0.01ms;}}"]}),useRootStyles$4=__styles({small:{sshi5w:"f1pha7fy",uwmqm3:["fk8j09s","fdw0yi8"],z189sj:["fdw0yi8","fk8j09s"],Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},medium:{},large:{sshi5w:"f1w5jphr",uwmqm3:["f1uw59to","fw5db7e"],z189sj:["fw5db7e","f1uw59to"],Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k",i8kkvl:"f1rjii52",Belr9w4:"f1r7g2jn"},outline:{},outlineInteractive:{Bgoe8wy:"fvcxoqz",Bwzppfd:["f1ub3y4t","f1m52nbi"],oetu4i:"f1l4zc64",gg5e9n:["f1m52nbi","f1ub3y4t"],Drbcw7:"f8vnjqi",udz0bu:["fz1etlk","f1hc16gm"],Be8ivqh:"f1klwx88",ofdepl:["f1hc16gm","fz1etlk"]},underline:{De3pzq:"f1c21dwh",Bbmb7ep:["f1krrbdw","f1deotkl"],Beyfa6y:["f1deotkl","f1krrbdw"],B7oj6ja:["f10ostut","f1ozlkrg"],Btl43ni:["f1ozlkrg","f10ostut"],icvyot:"f1ern45e",vrafjx:["f1n71otn","f1deefiw"],wvpqe5:["f1deefiw","f1n71otn"],Eqx8gd:["f1n6gb5g","f15yvnhg"],B1piin3:["f15yvnhg","f1n6gb5g"]},underlineInteractive:{oetu4i:"f1l4zc64",Be8ivqh:"f1klwx88",B3778ie:["f1nf3wye","feulmo5"],d9w3h3:["feulmo5","f1nf3wye"],Bl18szs:["f18vqdqu","f53nyzz"],B4j8arr:["f53nyzz","f18vqdqu"]},filled:{g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},filledInteractive:{q7v0qe:"ftmjh5b",kmh5ft:["f17blpuu","fsrcdbj"],nagaa4:"f1tpwn32",B1yhkcb:["fsrcdbj","f17blpuu"]},invalid:{tvckwq:"fs4k3qj",gk2u95:["fcee079","fmyw78r"],hhx65j:"f1fgmyf4",Bxowmz0:["fmyw78r","fcee079"]},"filled-darker":{De3pzq:"f16xq7d1"},"filled-lighter":{De3pzq:"fxugw4r"},"filled-darker-shadow":{De3pzq:"f16xq7d1",E5pizo:"fyed02w"},"filled-lighter-shadow":{De3pzq:"fxugw4r",E5pizo:"fyed02w"},disabled:{Bceei9c:"fdrzuqr",De3pzq:"f1c21dwh",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"],Bsft5z2:"fhr9occ",Bduesf4:"f99w1ws"}},{d:[".f1pha7fy{min-height:24px;}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1w5jphr{min-height:40px;}",".f1uw59to{padding-left:var(--spacingHorizontalM);}",".fw5db7e{padding-right:var(--spacingHorizontalM);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",".f1r7g2jn{row-gap:var(--spacingHorizontalSNudge);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1krrbdw{border-bottom-right-radius:0;}",".f1deotkl{border-bottom-left-radius:0;}",".f10ostut{border-top-right-radius:0;}",".f1ozlkrg{border-top-left-radius:0;}",".f1ern45e{border-top-style:none;}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",".f1nf3wye::after{border-bottom-right-radius:0;}",".feulmo5::after{border-bottom-left-radius:0;}",".f18vqdqu::after{border-top-right-radius:0;}",".f53nyzz::after{border-top-left-radius:0;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}",".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}",".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}",".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}",".f16xq7d1{background-color:var(--colorNeutralBackground3);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".fyed02w{box-shadow:var(--shadow2);}",".fdrzuqr{cursor:not-allowed;}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fhr9occ::after{content:unset;}"],h:[".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}",".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}",".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}",".f1l4zc64:hover{border-bottom-color:var(--colorNeutralStrokeAccessibleHover);}",".ftmjh5b:hover,.ftmjh5b:focus-within{border-top-color:var(--colorTransparentStrokeInteractive);}",".f17blpuu:hover,.f17blpuu:focus-within{border-right-color:var(--colorTransparentStrokeInteractive);}",".fsrcdbj:hover,.fsrcdbj:focus-within{border-left-color:var(--colorTransparentStrokeInteractive);}",".f1tpwn32:hover,.f1tpwn32:focus-within{border-bottom-color:var(--colorTransparentStrokeInteractive);}"],a:[".f8vnjqi:active,.f8vnjqi:focus-within{border-top-color:var(--colorNeutralStroke1Pressed);}",".fz1etlk:active,.fz1etlk:focus-within{border-right-color:var(--colorNeutralStroke1Pressed);}",".f1hc16gm:active,.f1hc16gm:focus-within{border-left-color:var(--colorNeutralStroke1Pressed);}",".f1klwx88:active,.f1klwx88:focus-within{border-bottom-color:var(--colorNeutralStrokeAccessiblePressed);}"],m:[["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}]],w:[".f99w1ws:focus-within{outline-style:none;}"]}),useInputClassName=__resetStyles("rvp2gzh",null,[".rvp2gzh{box-sizing:border-box;flex-grow:1;min-width:0;border-style:none;padding:0 var(--spacingHorizontalXXS);color:var(--colorNeutralForeground1);background-color:transparent;outline-style:none;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;}",".rvp2gzh::-webkit-input-placeholder{color:var(--colorNeutralForeground4);opacity:1;}",".rvp2gzh::-moz-placeholder{color:var(--colorNeutralForeground4);opacity:1;}",".rvp2gzh:-ms-input-placeholder{color:var(--colorNeutralForeground4);opacity:1;}",".rvp2gzh::placeholder{color:var(--colorNeutralForeground4);opacity:1;}"]),useInputElementStyles=__styles({large:{uwmqm3:["fk8j09s","fdw0yi8"],z189sj:["fdw0yi8","fk8j09s"]},disabled:{sj55zd:"f1s2aq7o",De3pzq:"f1c21dwh",Bceei9c:"fdrzuqr",yvdlaj:"fahhnxm"}},{d:[".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".fdrzuqr{cursor:not-allowed;}",".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}",".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}"]}),useContentClassName=__resetStyles("r1572tok",null,[".r1572tok{box-sizing:border-box;color:var(--colorNeutralForeground3);display:flex;}",".r1572tok>svg{font-size:20px;}"]),useContentStyles$1=__styles({disabled:{sj55zd:"f1s2aq7o"},small:{kwki1k:"f3u2cy0"},medium:{},large:{kwki1k:"fa420co"}},{d:[".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f3u2cy0>svg{font-size:16px;}",".fa420co>svg{font-size:24px;}"]}),useInputStyles_unstable=j=>{const{size:_e,appearance:et}=j,tt=j.input.disabled,rt=`${j.input["aria-invalid"]}`=="true",nt=et.startsWith("filled"),ot=useRootStyles$4(),it=useInputElementStyles(),st=useContentStyles$1();j.root.className=mergeClasses(inputClassNames.root,useRootClassName(),ot[_e],ot[et],!tt&&et==="outline"&&ot.outlineInteractive,!tt&&et==="underline"&&ot.underlineInteractive,!tt&&nt&&ot.filledInteractive,nt&&ot.filled,!tt&&rt&&ot.invalid,tt&&ot.disabled,j.root.className),j.input.className=mergeClasses(inputClassNames.input,useInputClassName(),_e==="large"&&it.large,tt&&it.disabled,j.input.className);const lt=[useContentClassName(),tt&&st.disabled,st[_e]];return j.contentBefore&&(j.contentBefore.className=mergeClasses(inputClassNames.contentBefore,...lt,j.contentBefore.className)),j.contentAfter&&(j.contentAfter.className=mergeClasses(inputClassNames.contentAfter,...lt,j.contentAfter.className)),j},Input=reactExports.forwardRef((j,_e)=>{const et=useInput_unstable(j,_e);return useInputStyles_unstable(et),useCustomStyleHook("useInputStyles_unstable")(et),renderInput_unstable(et)});Input.displayName="Input";const useLinkState_unstable=j=>{const{disabled:_e,disabledFocusable:et}=j,{onClick:tt,onKeyDown:rt,role:nt,tabIndex:ot}=j.root;return j.root.as==="a"&&(j.root.href=_e?void 0:j.root.href,(_e||et)&&(j.root.role=nt||"link")),(j.root.as==="a"||j.root.as==="span")&&(j.root.tabIndex=ot??(_e&&!et?void 0:0)),j.root.onClick=it=>{_e||et?it.preventDefault():tt==null||tt(it)},j.root.onKeyDown=it=>{(_e||et)&&(it.key===Enter||it.key===Space)?(it.preventDefault(),it.stopPropagation()):rt==null||rt(it)},j.disabled=_e||et,j.root["aria-disabled"]=_e||et||void 0,j.root.as==="button"&&(j.root.disabled=_e&&!et),j},useLink_unstable=(j,_e)=>{const et=useBackgroundAppearance(),{appearance:tt="default",disabled:rt=!1,disabledFocusable:nt=!1,inline:ot=!1}=j,it=j.as||(j.href?"a":"button"),st={role:it==="span"?"button":void 0,type:it==="button"?"button":void 0,...j,as:it},lt={appearance:tt,disabled:rt,disabledFocusable:nt,inline:ot,components:{root:it},root:always(getIntrinsicElementProps(it,{ref:_e,...st}),{elementType:it}),backgroundAppearance:et};return useLinkState_unstable(lt),lt},linkClassNames={root:"fui-Link"},useStyles$o=__styles({focusIndicator:{Bttzg6e:"fhgqx19",B3uz8dt:"f1olyrje",B6ihwck:"f1p93eir",g9k6zt:"f1nev41a"},root:{B486eqv:"f2hkw1w",De3pzq:"f3rmtva",B7ck84d:"f1ewtqcl",sj55zd:"fyind8e",Bceei9c:"f1k6fduh",mc9l5x:"f1w7gpdv",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",B6of3ja:"f1hu3pq6",t21cq0:["f11qmguv","f1tyq0we"],jrapky:"f19f4twv",Frg6f3:["f1tyq0we","f11qmguv"],z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1cnd47f","fhxju0i"],B68tc82:"fqv5qza",Bmxbyg5:"f1vmzxwi",fsow6f:["f1o700av","fes3tcz"],w71qe1:"f1iuv45f",Bkioxbp:"f1cmlufx",ygn44y:"f9n3di6",famaaq:"f1ids18y",Bde5pd6:"f1tx3yz7",Bi91k9c:"f1deo86v",i089h6:"f1eh06m1",lj723h:"f1iescvh"},button:{icvyot:"f1ern45e",vrafjx:["f1n71otn","f1deefiw"],oivjwe:"f1h8hb77",wvpqe5:["f1deefiw","f1n71otn"]},href:{Be2twd7:"fjoy568"},subtle:{sj55zd:"fkfq4zb",Bde5pd6:"f1tx3yz7",Bi91k9c:"fnwyq0v",i089h6:"f1eh06m1",lj723h:"flvvhsy"},inline:{w71qe1:"f13mvf36"},disabled:{w71qe1:"f1iuv45f",sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr",Bde5pd6:"fbnuktb",Bi91k9c:"fvgxktp",i089h6:"fljg2da",lj723h:"f19wldhg"},inverted:{sj55zd:"f1qz2gb0",Bi91k9c:"f1mlt8il",lj723h:"f1hsd4st"}},{d:[".fhgqx19[data-fui-focus-visible]{text-decoration-color:var(--colorStrokeFocus2);}",".f1olyrje[data-fui-focus-visible]{text-decoration-line:underline;}",".f1p93eir[data-fui-focus-visible]{text-decoration-style:double;}",".f1nev41a[data-fui-focus-visible]{outline-style:none;}",".f3rmtva{background-color:transparent;}",".f1ewtqcl{box-sizing:border-box;}",".fyind8e{color:var(--colorBrandForegroundLink);}",".f1k6fduh{cursor:pointer;}",".f1w7gpdv{display:inline;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1hu3pq6{margin-top:0;}",".f11qmguv{margin-right:0;}",".f1tyq0we{margin-left:0;}",".f19f4twv{margin-bottom:0;}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1qch9an{padding-bottom:0;}",".fqv5qza{overflow-x:inherit;}",".f1vmzxwi{overflow-y:inherit;}",".f1o700av{text-align:left;}",".fes3tcz{text-align:right;}",".f1iuv45f{text-decoration-line:none;}",".f1cmlufx{text-decoration-thickness:var(--strokeWidthThin);}",".f9n3di6{text-overflow:inherit;}",".f1ids18y{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;}",".f1ern45e{border-top-style:none;}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",".f1h8hb77{border-bottom-style:none;}",".fjoy568{font-size:inherit;}",".fkfq4zb{color:var(--colorNeutralForeground2);}",".f13mvf36{text-decoration-line:underline;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f1qz2gb0{color:var(--colorBrandForegroundInverted);}"],i:[".f2hkw1w:focus-visible{outline-style:none;}"],h:[".f1tx3yz7:hover{text-decoration-line:underline;}",".f1deo86v:hover{color:var(--colorBrandForegroundLinkHover);}",".fnwyq0v:hover{color:var(--colorNeutralForeground2Hover);}",".fbnuktb:hover{text-decoration-line:none;}",".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}",".f1mlt8il:hover{color:var(--colorBrandForegroundInvertedHover);}"],a:[".f1eh06m1:active{text-decoration-line:underline;}",".f1iescvh:active{color:var(--colorBrandForegroundLinkPressed);}",".flvvhsy:active{color:var(--colorNeutralForeground2Pressed);}",".fljg2da:active{text-decoration-line:none;}",".f19wldhg:active{color:var(--colorNeutralForegroundDisabled);}",".f1hsd4st:active{color:var(--colorBrandForegroundInvertedPressed);}"]}),useLinkStyles_unstable=j=>{const _e=useStyles$o(),{appearance:et,disabled:tt,inline:rt,root:nt,backgroundAppearance:ot}=j;return j.root.className=mergeClasses(linkClassNames.root,_e.root,_e.focusIndicator,nt.as==="a"&&nt.href&&_e.href,nt.as==="button"&&_e.button,et==="subtle"&&_e.subtle,ot==="inverted"&&_e.inverted,rt&&_e.inline,tt&&_e.disabled,j.root.className),j},renderLink_unstable=j=>jsx$1(j.root,{}),Link$1=reactExports.forwardRef((j,_e)=>{const et=useLink_unstable(j,_e);return useLinkStyles_unstable(et),renderLink_unstable(et)});Link$1.displayName="Link";const SkeletonContext=reactExports.createContext(void 0),skeletonContextDefaultValue={},SkeletonContextProvider=SkeletonContext.Provider,useSkeletonContext=()=>{var j;return(j=reactExports.useContext(SkeletonContext))!==null&&j!==void 0?j:skeletonContextDefaultValue},useSkeleton_unstable=(j,_e)=>{const{animation:et,appearance:tt}=useSkeletonContext(),{animation:rt=et??"wave",appearance:nt=tt??"opaque"}=j,ot=always(getIntrinsicElementProps("div",{ref:_e,role:"progressbar","aria-busy":!0,"aria-label":"Loading Content",...j}),{elementType:"div"});return{animation:rt,appearance:nt,components:{root:"div"},root:ot}},renderSkeleton_unstable=(j,_e)=>jsx$1(SkeletonContextProvider,{value:_e.skeletonGroup,children:jsx$1(j.root,{})}),skeletonClassNames={root:"fui-Skeleton"},useSkeletonStyles_unstable=j=>(j.root.className=mergeClasses(skeletonClassNames.root,j.root.className),j),useSkeletonContextValues=j=>{const{animation:_e,appearance:et}=j;return{skeletonGroup:reactExports.useMemo(()=>({animation:_e,appearance:et}),[_e,et])}},Skeleton=reactExports.forwardRef((j,_e)=>{const et=useSkeleton_unstable(j,_e),tt=useSkeletonContextValues(et);return useSkeletonStyles_unstable(et),renderSkeleton_unstable(et,tt)});Skeleton.displayName="Skeleton";const useSkeletonItem_unstable=(j,_e)=>{const{animation:et,appearance:tt}=useSkeletonContext(),{animation:rt=et??"wave",appearance:nt=tt??"opaque",size:ot=16,shape:it="rectangle"}=j,st=always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"});return{appearance:nt,animation:rt,size:ot,shape:it,components:{root:"div"},root:st}},renderSkeletonItem_unstable=j=>jsx$1(j.root,{}),skeletonItemClassNames={root:"fui-SkeletonItem"},useStyles$n=__styles({root:{qhf8xq:"f10pi13n",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",Bkjc3bi:"f1qx3921",B8a6bjv:"fj9j8l8",Bpptf2m:"f1b6djjb",Bgh53k4:"f1dsdmen",w3vfg9:"f1cpbl36",vin17d:"f1a27w2r",Ezkn3b:"f452v7t",Gqtpxc:"f4akx1t",B3vm3ge:"f18p5put"},wave:{Bv12yb3:"fj20wtk",Bcmaq0h:["f101ziu5","f152emvt"],Bpep1pd:"f9jxvrw"},waveRtl:{Bv12yb3:"f105t0nc",Bcmaq0h:["f101ziu5","f152emvt"],Bpep1pd:"f9jxvrw"},pulse:{Bv12yb3:"fnm2mpv",vin17d:"f1iuewzk",De3pzq:"f1gjxg63"},translucent:{Bcmaq0h:["fss7axp","f4160cw"]},translucentPulse:{De3pzq:"f162mh4z"}},{d:[".f10pi13n{position:relative;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f1qx3921{background-size:300% 100%;}",".fj9j8l8{background-position-x:center;}",".f1b6djjb{background-position-y:center;}",".f1dsdmen{background-attachment:fixed;}",".f1cpbl36{animation-iteration-count:infinite;}",".f1a27w2r{animation-duration:3s;}",".f452v7t{animation-timing-function:linear;}",".fj20wtk{animation-name:fma800j;}",`.f101ziu5{background-image:linear-gradient( to right, var(--colorNeutralStencil1) 0%, var(--colorNeutralStencil2) 50%, @@ -116,59 +116,59 @@ Error generating stack: `+nt.message+` to left, var(--colorNeutralStencil1Alpha) 0%, var(--colorNeutralStencil2Alpha) 50%, - var(--colorNeutralStencil1Alpha) 100%);}`,".f162mh4z{background-color:var(--colorNeutralStencil1Alpha);}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f4akx1t{animation-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f18p5put{animation-iteration-count:1;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (forced-colors: active){.f9jxvrw{background-color:WindowText;}}",{m:"screen and (forced-colors: active)"}]],k:["@keyframes fma800j{from{background-position-x:300%;}to{background-position-x:0%;}}","@keyframes fj9wi3p{from{background-position-x:0%;}to{background-position-x:300%;}}","@keyframes f12o7gg6{0%{opacity:1;}50%{opacity:0.4;}100%{opacity:1;}}"]}),useRectangleStyles=__styles({8:{Bqenvij:"f1x82gua"},12:{Bqenvij:"fvblgha"},16:{Bqenvij:"fd461yt"},20:{Bqenvij:"fjamq6b"},24:{Bqenvij:"frvgh55"},28:{Bqenvij:"fxldao9"},32:{Bqenvij:"f1d2rq10"},36:{Bqenvij:"f8ljn23"},40:{Bqenvij:"fbhnoac"},48:{Bqenvij:"ff2sm71"},56:{Bqenvij:"fzki0ko"},64:{Bqenvij:"f16k9i2m"},72:{Bqenvij:"f1shusfg"},96:{Bqenvij:"fypu0ge"},120:{Bqenvij:"fjr5b71"},128:{Bqenvij:"fele2au"},root:{a9b677:"fly5x3f",Bbmb7ep:["fff7au0","f1bjk9e1"],Beyfa6y:["f1bjk9e1","fff7au0"],B7oj6ja:["fwsfkhu","f8wkphi"],Btl43ni:["f8wkphi","fwsfkhu"]}},{d:[".f1x82gua{height:8px;}",".fvblgha{height:12px;}",".fd461yt{height:16px;}",".fjamq6b{height:20px;}",".frvgh55{height:24px;}",".fxldao9{height:28px;}",".f1d2rq10{height:32px;}",".f8ljn23{height:36px;}",".fbhnoac{height:40px;}",".ff2sm71{height:48px;}",".fzki0ko{height:56px;}",".f16k9i2m{height:64px;}",".f1shusfg{height:72px;}",".fypu0ge{height:96px;}",".fjr5b71{height:120px;}",".fele2au{height:128px;}",".fly5x3f{width:100%;}",".fff7au0{border-bottom-right-radius:4px;}",".f1bjk9e1{border-bottom-left-radius:4px;}",".fwsfkhu{border-top-right-radius:4px;}",".f8wkphi{border-top-left-radius:4px;}"]}),useSizeStyles=__styles({8:{a9b677:"f1o3cbw4",Bqenvij:"f1x82gua"},12:{a9b677:"frx94fk",Bqenvij:"fvblgha"},16:{a9b677:"fjw5fx7",Bqenvij:"fd461yt"},20:{a9b677:"f64fuq3",Bqenvij:"fjamq6b"},24:{a9b677:"fq4mcun",Bqenvij:"frvgh55"},28:{a9b677:"f1w9dchk",Bqenvij:"fxldao9"},32:{a9b677:"f1szoe96",Bqenvij:"f1d2rq10"},36:{a9b677:"fpdz1er",Bqenvij:"f8ljn23"},40:{a9b677:"feqmc2u",Bqenvij:"fbhnoac"},48:{a9b677:"f124akge",Bqenvij:"ff2sm71"},56:{a9b677:"f1u66zr1",Bqenvij:"fzki0ko"},64:{a9b677:"fa9ln6p",Bqenvij:"f16k9i2m"},72:{a9b677:"fhcae8x",Bqenvij:"f1shusfg"},96:{a9b677:"f1kyr2gn",Bqenvij:"fypu0ge"},120:{a9b677:"fwfqyga",Bqenvij:"fjr5b71"},128:{a9b677:"f1iksgmy",Bqenvij:"fele2au"}},{d:[".f1o3cbw4{width:8px;}",".f1x82gua{height:8px;}",".frx94fk{width:12px;}",".fvblgha{height:12px;}",".fjw5fx7{width:16px;}",".fd461yt{height:16px;}",".f64fuq3{width:20px;}",".fjamq6b{height:20px;}",".fq4mcun{width:24px;}",".frvgh55{height:24px;}",".f1w9dchk{width:28px;}",".fxldao9{height:28px;}",".f1szoe96{width:32px;}",".f1d2rq10{height:32px;}",".fpdz1er{width:36px;}",".f8ljn23{height:36px;}",".feqmc2u{width:40px;}",".fbhnoac{height:40px;}",".f124akge{width:48px;}",".ff2sm71{height:48px;}",".f1u66zr1{width:56px;}",".fzki0ko{height:56px;}",".fa9ln6p{width:64px;}",".f16k9i2m{height:64px;}",".fhcae8x{width:72px;}",".f1shusfg{height:72px;}",".f1kyr2gn{width:96px;}",".fypu0ge{height:96px;}",".fwfqyga{width:120px;}",".fjr5b71{height:120px;}",".f1iksgmy{width:128px;}",".fele2au{height:128px;}"]}),useCircleSizeStyles=__styles({root:{Bbmb7ep:["fqgqgel","fchfifz"],Beyfa6y:["fchfifz","fqgqgel"],B7oj6ja:["fc7b1hi","f1dpx5h9"],Btl43ni:["f1dpx5h9","fc7b1hi"]}},{d:[".fqgqgel{border-bottom-right-radius:50%;}",".fchfifz{border-bottom-left-radius:50%;}",".fc7b1hi{border-top-right-radius:50%;}",".f1dpx5h9{border-top-left-radius:50%;}"]}),useSkeletonItemStyles_unstable=j=>{const{animation:_e,appearance:et,size:tt,shape:rt}=j,{dir:nt}=useFluent(),ot=useStyles$n(),it=useRectangleStyles(),st=useSizeStyles(),lt=useCircleSizeStyles();return j.root.className=mergeClasses(skeletonItemClassNames.root,ot.root,_e==="wave"&&ot.wave,_e==="wave"&&nt==="rtl"&&ot.waveRtl,_e==="pulse"&&ot.pulse,et==="translucent"&&ot.translucent,_e==="pulse"&&et==="translucent"&&ot.translucentPulse,rt==="rectangle"&&it.root,rt==="rectangle"&&it[tt],rt==="square"&&st[tt],rt==="circle"&<.root,rt==="circle"&&st[tt],j.root.className),j},SkeletonItem=reactExports.forwardRef((j,_e)=>{const et=useSkeletonItem_unstable(j,_e);return useSkeletonItemStyles_unstable(et),renderSkeletonItem_unstable(et)});SkeletonItem.displayName="SkeletonItem";const DefaultSvg=()=>reactExports.createElement("svg",{className:"fui-Spinner__Progressbar"},reactExports.createElement("circle",{className:"fui-Spinner__Track"}),reactExports.createElement("circle",{className:"fui-Spinner__Tail"})),SpinnerContext=reactExports.createContext(void 0),SpinnerContextDefaultValue={};SpinnerContext.Provider;const useSpinnerContext=()=>{var j;return(j=reactExports.useContext(SpinnerContext))!==null&&j!==void 0?j:SpinnerContextDefaultValue},useSpinner_unstable=(j,_e)=>{const{size:et}=useSpinnerContext(),{appearance:tt="primary",labelPosition:rt="after",size:nt=et??"medium",delay:ot=0}=j,it=useId$1("spinner"),{role:st="progressbar",tabIndex:lt,...ut}=j,ct=always(getIntrinsicElementProps("div",{ref:_e,role:st,...ut},["size"]),{elementType:"div"}),[dt,ft]=reactExports.useState(!0),[pt,gt]=useTimeout();reactExports.useEffect(()=>{if(!(ot<=0))return ft(!1),pt(()=>{ft(!0)},ot),()=>{gt()}},[pt,gt,ot]);const vt=optional(j.label,{defaultProps:{id:it},renderByDefault:!1,elementType:Label$1}),bt=optional(j.spinner,{renderByDefault:!0,defaultProps:{children:reactExports.createElement(DefaultSvg,null),tabIndex:lt},elementType:"span"});return vt&&ct&&!ct["aria-labelledby"]&&(ct["aria-labelledby"]=vt.id),{appearance:tt,delay:ot,labelPosition:rt,size:nt,shouldRenderSpinner:dt,components:{root:"div",spinner:"span",label:Label$1},root:ct,spinner:bt,label:vt}},renderSpinner_unstable=j=>{const{labelPosition:_e,shouldRenderSpinner:et}=j;return jsxs(j.root,{children:[j.label&&et&&(_e==="above"||_e==="before")&&jsx$1(j.label,{}),j.spinner&&et&&jsx$1(j.spinner,{}),j.label&&et&&(_e==="below"||_e==="after")&&jsx$1(j.label,{})]})},spinnerClassNames={root:"fui-Spinner",spinner:"fui-Spinner__spinner",label:"fui-Spinner__label"},useRootStyles$3=__styles({root:{mc9l5x:"f22iagw",Bt984gj:"f122n59",Brf1p80:"f4d9j23",Bg96gwp:"fez10in",i8kkvl:"f4px1ci",Belr9w4:"fn67r4l"},horizontal:{Beiy3e4:"f1063pyq"},vertical:{Beiy3e4:"f1vx9l62"}},{d:[".f22iagw{display:flex;}",".f122n59{align-items:center;}",".f4d9j23{justify-content:center;}",".fez10in{line-height:0;}",".f4px1ci{column-gap:8px;}",".fn67r4l{row-gap:8px;}",".f1063pyq{flex-direction:row;}",".f1vx9l62{flex-direction:column;}"]}),useLoaderStyles=__styles({spinnerSVG:{B3aqqti:"f1or16p5",Brovlpu:"f1grzc83",Bxa1mx5:"f19shzzi",Bwaue66:["f5tbecn","f15qb8s7"],fyp1ls:"fn4mtlg",ag6ruv:"f1y80fxs",osj692:"f1r2crtq",aq5vjd:"f1wsi8sr",tlu9e1:"f1bkm2qd",J3u96z:"f1urqz7h",d32isg:"f1da2vov",Bsvqbuc:"f11rfva0",b3s3i5:"f1exc66"},"extra-tiny":{Bah9ito:"f1x2gjcb",ut6tcf:"f1vjiaua",B7p06xz:"fv1u54w",B807ibg:"f1oebb0s"},tiny:{Bah9ito:"f1j4wmu2",ut6tcf:"f1vppzuq",B7p06xz:"fv1u54w",B807ibg:"fngtx1d"},"extra-small":{Bah9ito:"fmpqlna",ut6tcf:"f15z5jzu",B7p06xz:"fv1u54w",B807ibg:"fadawes"},small:{Bah9ito:"fo52gbo",ut6tcf:"f1b41i3v",B7p06xz:"fv1u54w",B807ibg:"f1xqyyrl"},medium:{Bah9ito:"f1aiqagr",ut6tcf:"f1wtx80b",B7p06xz:"f1flujpd",B807ibg:"f1u06hy7"},large:{Bah9ito:"f1trdq7b",ut6tcf:"f9e0mc5",B7p06xz:"f1flujpd",B807ibg:"f13pmvhl"},"extra-large":{Bah9ito:"f89rf2a",ut6tcf:"f1w2xg3q",B7p06xz:"f1flujpd",B807ibg:"fmn74v6"},huge:{Bah9ito:"f1rx7k5y",ut6tcf:"f1vtyt49",B7p06xz:"f1owbg48",B807ibg:"f1fr1izd"}},{f:[".f1or16p5:focus{outline-width:3px;}",".f1grzc83:focus{outline-style:solid;}",".f19shzzi:focus{outline-color:transparent;}"],k:["@keyframes fb7n1on{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}","@keyframes f1gx3jof{0%{transform:rotate(0deg);}100%{transform:rotate(-360deg);}}"],d:[".f5tbecn>svg{animation-name:fb7n1on;}",".f15qb8s7>svg{animation-name:f1gx3jof;}",".fn4mtlg>svg{animation-duration:3s;}",".f1y80fxs>svg{animation-iteration-count:infinite;}",".f1r2crtq>svg{animation-timing-function:linear;}",".f1wsi8sr>svg{background-color:transparent;}",".f1da2vov>svg>circle{cx:50%;}",".f11rfva0>svg>circle{cy:50%;}",".f1exc66>svg>circle{fill:none;}",".f1x2gjcb>svg{height:16px;}",".f1vjiaua>svg{width:16px;}",".fv1u54w>svg>circle{stroke-width:var(--strokeWidthThick);}",".f1oebb0s>svg>circle{r:7px;}",".f1j4wmu2>svg{height:20px;}",".f1vppzuq>svg{width:20px;}",".fngtx1d>svg>circle{r:9px;}",".fmpqlna>svg{height:24px;}",".f15z5jzu>svg{width:24px;}",".fadawes>svg>circle{r:11px;}",".fo52gbo>svg{height:28px;}",".f1b41i3v>svg{width:28px;}",".f1xqyyrl>svg>circle{r:13px;}",".f1aiqagr>svg{height:32px;}",".f1wtx80b>svg{width:32px;}",".f1flujpd>svg>circle{stroke-width:var(--strokeWidthThicker);}",".f1u06hy7>svg>circle{r:14.5px;}",".f1trdq7b>svg{height:36px;}",".f9e0mc5>svg{width:36px;}",".f13pmvhl>svg>circle{r:16.5px;}",".f89rf2a>svg{height:40px;}",".f1w2xg3q>svg{width:40px;}",".fmn74v6>svg>circle{r:18.5px;}",".f1rx7k5y>svg{height:44px;}",".f1vtyt49>svg{width:44px;}",".f1owbg48>svg>circle{stroke-width:var(--strokeWidthThickest);}",".f1fr1izd>svg>circle{r:20px;}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f1bkm2qd>svg{animation-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1urqz7h>svg{animation-iteration-count:1;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]}),useTrackStyles=__styles({inverted:{gwg7kz:"f1jvpmnu",Bvrehnu:"fq8a5sv",Bidp6o:"f1b4lwqj",cq3kgi:"f1najlst",Btwiser:"fjxod4",B8001xd:"fu3xdw0",Bdordwa:["f1ttdh6v","fmyjox0"],Bo2mdfu:"f1eseayc",E10nrc:"folzdkc",Bwl7w15:"fhlfkde",Bksq7rz:"f1esql28"},primary:{gwg7kz:"f11ditju",B8k2rxp:"f1m9nikz",Bvrehnu:"fq8a5sv",Bidp6o:"f1b4lwqj",cq3kgi:"f1najlst",Btwiser:"fjxod4",B8001xd:"fu3xdw0",Bdordwa:["f1ttdh6v","fmyjox0"],Bo2mdfu:"f1eseayc",E10nrc:"folzdkc",Bwl7w15:"fhlfkde",Bksq7rz:"f13qeqtg",y14cdu:"flglbw1"}},{d:[".f1jvpmnu>svg>circle.fui-Spinner__Tail{stroke:var(--colorNeutralStrokeOnBrand2);}",".fq8a5sv>svg>circle.fui-Spinner__Tail{animation-name:f1v1ql0f;}",".f1b4lwqj>svg>circle.fui-Spinner__Tail{animation-duration:1.5s;}",".f1najlst>svg>circle.fui-Spinner__Tail{animation-iteration-count:infinite;}",".fjxod4>svg>circle.fui-Spinner__Tail{animation-timing-function:var(--curveEasyEase);}",".fu3xdw0>svg>circle.fui-Spinner__Tail{stroke-linecap:round;}",".f1ttdh6v>svg>circle.fui-Spinner__Tail{transform:rotate(-90deg);}",".fmyjox0>svg>circle.fui-Spinner__Tail{transform:rotate(90deg);}",".f1eseayc>svg>circle.fui-Spinner__Tail{transform-origin:50% 50%;}",".f1esql28>svg>circle.fui-Spinner__Track{stroke:rgba(255, 255, 255, 0.2);}",".f11ditju>svg>circle.fui-Spinner__Tail{stroke:var(--colorBrandStroke1);}",".f13qeqtg>svg>circle.fui-Spinner__Track{stroke:var(--colorBrandStroke2Contrast);}"],k:["@keyframes f1v1ql0f{0%{stroke-dasharray:1,150;stroke-dashoffset:0;}50%{stroke-dasharray:90,150;stroke-dashoffset:-35;}100%{stroke-dasharray:90,150;stroke-dashoffset:-124;}}"],m:[["@media screen and (prefers-reduced-motion: reduce){.folzdkc>svg>circle.fui-Spinner__Tail{animation-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.fhlfkde>svg>circle.fui-Spinner__Tail{animation-iteration-count:1;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (forced-colors: active){.f1m9nikz>svg>circle.fui-Spinner__Tail{stroke:var(--colorNeutralStrokeOnBrand2);}}",{m:"screen and (forced-colors: active)"}],["@media screen and (forced-colors: active){.flglbw1>svg>circle.fui-Spinner__Track{stroke:var(--colorNeutralBackgroundInverted);}}",{m:"screen and (forced-colors: active)"}]]}),useLabelStyles$1=__styles({inverted:{sj55zd:"f15aqcq"},primary:{},"extra-tiny":{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},tiny:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},"extra-small":{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},small:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},medium:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},large:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},"extra-large":{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},huge:{Bahqtrf:"fk6fouc",Be2twd7:"f1pp30po",Bhrd7zp:"fl43uef",Bg96gwp:"f106mvju"}},{d:[".f15aqcq{color:rgba(255, 255, 255, 1);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".f106mvju{line-height:var(--lineHeightBase500);}"]}),useSpinnerStyles_unstable=j=>{const{labelPosition:_e,size:et,appearance:tt="primary"}=j,rt=useRootStyles$3(),nt=useLoaderStyles(),ot=useLabelStyles$1(),it=useTrackStyles();return j.root.className=mergeClasses(spinnerClassNames.root,rt.root,(_e==="above"||_e==="below")&&rt.vertical,(_e==="before"||_e==="after")&&rt.horizontal,j.root.className),j.spinner&&(j.spinner.className=mergeClasses(spinnerClassNames.spinner,nt.spinnerSVG,nt[et],it[tt],j.spinner.className)),j.label&&(j.label.className=mergeClasses(spinnerClassNames.label,ot[et],ot[tt],j.label.className)),j},Spinner=reactExports.forwardRef((j,_e)=>{const et=useSpinner_unstable(j,_e);return useSpinnerStyles_unstable(et),useCustomStyleHook("useSpinnerStyles_unstable")(et),renderSpinner_unstable(et)});Spinner.displayName="Spinner";const useSwitch_unstable=(j,_e)=>{j=useFieldControlProps_unstable(j,{supportsLabelFor:!0,supportsRequired:!0});const{checked:et,defaultChecked:tt,disabled:rt,labelPosition:nt="after",onChange:ot,required:it}=j,st=getPartitionedNativeProps({props:j,primarySlotTagName:"input",excludedPropNames:["checked","defaultChecked","onChange"]}),lt=useId$1("switch-",st.primary.id),ut=always(j.root,{defaultProps:{ref:useFocusWithin(),...st.root},elementType:"div"}),ct=always(j.indicator,{defaultProps:{"aria-hidden":!0,children:reactExports.createElement(CircleFilled,null)},elementType:"div"}),dt=always(j.input,{defaultProps:{checked:et,defaultChecked:tt,id:lt,ref:_e,role:"switch",type:"checkbox",...st.primary},elementType:"input"});dt.onChange=mergeCallbacks(dt.onChange,pt=>ot==null?void 0:ot(pt,{checked:pt.currentTarget.checked}));const ft=optional(j.label,{defaultProps:{disabled:rt,htmlFor:lt,required:it,size:"medium"},elementType:Label$1});return{labelPosition:nt,components:{root:"div",indicator:"div",input:"input",label:Label$1},root:ut,indicator:ct,input:dt,label:ft}},renderSwitch_unstable=j=>{const{labelPosition:_e}=j;return jsxs(j.root,{children:[jsx$1(j.input,{}),_e!=="after"&&j.label&&jsx$1(j.label,{}),jsx$1(j.indicator,{}),_e==="after"&&j.label&&jsx$1(j.label,{})]})},switchClassNames={root:"fui-Switch",indicator:"fui-Switch__indicator",input:"fui-Switch__input",label:"fui-Switch__label"},useRootBaseClassName=__resetStyles("r1i56xw0","rk4yt03",{r:[".r1i56xw0{align-items:flex-start;box-sizing:border-box;display:inline-flex;position:relative;}",".r1i56xw0:focus{outline-style:none;}",".r1i56xw0:focus-visible{outline-style:none;}",".r1i56xw0[data-fui-focus-within]:focus-within{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.r1i56xw0[data-fui-focus-within]:focus-within::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:2px;border-right-width:2px;border-bottom-width:2px;border-left-width:2px;border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".rk4yt03{align-items:flex-start;box-sizing:border-box;display:inline-flex;position:relative;}",".rk4yt03:focus{outline-style:none;}",".rk4yt03:focus-visible{outline-style:none;}",".rk4yt03[data-fui-focus-within]:focus-within{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.rk4yt03[data-fui-focus-within]:focus-within::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:2px;border-left-width:2px;border-bottom-width:2px;border-right-width:2px;border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.r1i56xw0[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media (forced-colors: active){.rk4yt03[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}"]}),useRootStyles$2=__styles({vertical:{Beiy3e4:"f1vx9l62"}},{d:[".f1vx9l62{flex-direction:column;}"]}),useIndicatorBaseClassName=__resetStyles("r13wlxb8",null,{r:[".r13wlxb8{border-radius:var(--borderRadiusCircular);border:1px solid;line-height:0;box-sizing:border-box;fill:currentColor;flex-shrink:0;font-size:18px;height:20px;margin:var(--spacingVerticalS) var(--spacingHorizontalS);pointer-events:none;transition-duration:var(--durationNormal);transition-timing-function:var(--curveEasyEase);transition-property:background,border,color;width:40px;}",".r13wlxb8>*{transition-duration:var(--durationNormal);transition-timing-function:var(--curveEasyEase);transition-property:transform;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r13wlxb8{transition-duration:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r13wlxb8>*{transition-duration:0.01ms;}}"]}),useIndicatorStyles=__styles({labelAbove:{B6of3ja:"f1hu3pq6"}},{d:[".f1hu3pq6{margin-top:0;}"]}),useInputBaseClassName=__resetStyles("rw4brat","r1f4bxyr",{r:[".rw4brat{box-sizing:border-box;cursor:pointer;height:100%;margin:0;opacity:0;position:absolute;width:calc(40px + 2 * var(--spacingHorizontalS));}",".rw4brat:checked~.fui-Switch__indicator>*{transform:translateX(20px);}",".rw4brat:disabled{cursor:default;}",".rw4brat:disabled~.fui-Switch__indicator{color:var(--colorNeutralForegroundDisabled);}",".rw4brat:disabled~.fui-Switch__label{cursor:default;color:var(--colorNeutralForegroundDisabled);}",".rw4brat:enabled:not(:checked)~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessible);border-color:var(--colorNeutralStrokeAccessible);}",".rw4brat:enabled:not(:checked)~.fui-Switch__label{color:var(--colorNeutralForeground1);}",".rw4brat:enabled:not(:checked):hover~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessibleHover);border-color:var(--colorNeutralStrokeAccessibleHover);}",".rw4brat:enabled:not(:checked):hover:active~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessiblePressed);border-color:var(--colorNeutralStrokeAccessiblePressed);}",".rw4brat:enabled:checked~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackground);color:var(--colorNeutralForegroundInverted);border-color:var(--colorTransparentStroke);}",".rw4brat:enabled:checked:hover~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackgroundHover);border-color:var(--colorTransparentStrokeInteractive);}",".rw4brat:enabled:checked:hover:active~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackgroundPressed);border-color:var(--colorTransparentStrokeInteractive);}",".rw4brat:disabled:not(:checked)~.fui-Switch__indicator{border-color:var(--colorNeutralStrokeDisabled);}",".rw4brat:disabled:checked~.fui-Switch__indicator{background-color:var(--colorNeutralBackgroundDisabled);border-color:var(--colorTransparentStrokeDisabled);}",".r1f4bxyr{box-sizing:border-box;cursor:pointer;height:100%;margin:0;opacity:0;position:absolute;width:calc(40px + 2 * var(--spacingHorizontalS));}",".r1f4bxyr:checked~.fui-Switch__indicator>*{transform:translateX(-20px);}",".r1f4bxyr:disabled{cursor:default;}",".r1f4bxyr:disabled~.fui-Switch__indicator{color:var(--colorNeutralForegroundDisabled);}",".r1f4bxyr:disabled~.fui-Switch__label{cursor:default;color:var(--colorNeutralForegroundDisabled);}",".r1f4bxyr:enabled:not(:checked)~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessible);border-color:var(--colorNeutralStrokeAccessible);}",".r1f4bxyr:enabled:not(:checked)~.fui-Switch__label{color:var(--colorNeutralForeground1);}",".r1f4bxyr:enabled:not(:checked):hover~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessibleHover);border-color:var(--colorNeutralStrokeAccessibleHover);}",".r1f4bxyr:enabled:not(:checked):hover:active~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessiblePressed);border-color:var(--colorNeutralStrokeAccessiblePressed);}",".r1f4bxyr:enabled:checked~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackground);color:var(--colorNeutralForegroundInverted);border-color:var(--colorTransparentStroke);}",".r1f4bxyr:enabled:checked:hover~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackgroundHover);border-color:var(--colorTransparentStrokeInteractive);}",".r1f4bxyr:enabled:checked:hover:active~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackgroundPressed);border-color:var(--colorTransparentStrokeInteractive);}",".r1f4bxyr:disabled:not(:checked)~.fui-Switch__indicator{border-color:var(--colorNeutralStrokeDisabled);}",".r1f4bxyr:disabled:checked~.fui-Switch__indicator{background-color:var(--colorNeutralBackgroundDisabled);border-color:var(--colorTransparentStrokeDisabled);}"],s:["@media (forced-colors: active){.rw4brat:disabled~.fui-Switch__indicator{color:GrayText;border-color:GrayText;}.rw4brat:disabled~.fui-Switch__label{color:GrayText;}.rw4brat:enabled:checked:hover~.fui-Switch__indicator{background-color:Highlight;color:Canvas;}.rw4brat:enabled:checked~.fui-Switch__indicator{background-color:Highlight;color:Canvas;}}","@media (forced-colors: active){.r1f4bxyr:disabled~.fui-Switch__indicator{color:GrayText;border-color:GrayText;}.r1f4bxyr:disabled~.fui-Switch__label{color:GrayText;}.r1f4bxyr:enabled:checked:hover~.fui-Switch__indicator{background-color:Highlight;color:Canvas;}.r1f4bxyr:enabled:checked~.fui-Switch__indicator{background-color:Highlight;color:Canvas;}}"]}),useInputStyles=__styles({before:{j35jbq:["f1e31b4d","f1vgc2s3"],Bhzewxz:"f15twtuk"},after:{oyh7mz:["f1vgc2s3","f1e31b4d"],Bhzewxz:"f15twtuk"},above:{B5kzvoi:"f1yab3r1",Bqenvij:"f1aar7gd",a9b677:"fly5x3f"}},{d:[".f1e31b4d{right:0;}",".f1vgc2s3{left:0;}",".f15twtuk{top:0;}",".f1yab3r1{bottom:0;}",".f1aar7gd{height:calc(20px + var(--spacingVerticalS));}",".fly5x3f{width:100%;}"]}),useLabelStyles=__styles({base:{Bceei9c:"f1k6fduh",jrapky:"f49ad5g",B6of3ja:"f1xlvstr",z8tnut:"f1kwiid1",z189sj:["f1vdfbxk","f1f5gg8d"],Byoj8tv:"f5b47ha",uwmqm3:["f1f5gg8d","f1vdfbxk"]},above:{z8tnut:"f1ywm7hm",Byoj8tv:"f14wxoun",a9b677:"fly5x3f"},after:{uwmqm3:["fruq291","f7x41pl"]},before:{z189sj:["f7x41pl","fruq291"]}},{d:[".f1k6fduh{cursor:pointer;}",".f49ad5g{margin-bottom:calc((20px - var(--lineHeightBase300)) / 2);}",".f1xlvstr{margin-top:calc((20px - var(--lineHeightBase300)) / 2);}",".f1kwiid1{padding-top:var(--spacingVerticalS);}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".f5b47ha{padding-bottom:var(--spacingVerticalS);}",".f1ywm7hm{padding-top:var(--spacingVerticalXS);}",".f14wxoun{padding-bottom:var(--spacingVerticalXS);}",".fly5x3f{width:100%;}",".fruq291{padding-left:var(--spacingHorizontalXS);}",".f7x41pl{padding-right:var(--spacingHorizontalXS);}"]}),useSwitchStyles_unstable=j=>{const _e=useRootBaseClassName(),et=useRootStyles$2(),tt=useIndicatorBaseClassName(),rt=useIndicatorStyles(),nt=useInputBaseClassName(),ot=useInputStyles(),it=useLabelStyles(),{label:st,labelPosition:lt}=j;return j.root.className=mergeClasses(switchClassNames.root,_e,lt==="above"&&et.vertical,j.root.className),j.indicator.className=mergeClasses(switchClassNames.indicator,tt,st&<==="above"&&rt.labelAbove,j.indicator.className),j.input.className=mergeClasses(switchClassNames.input,nt,st&&ot[lt],j.input.className),j.label&&(j.label.className=mergeClasses(switchClassNames.label,it.base,it[lt],j.label.className)),j},Switch=reactExports.forwardRef((j,_e)=>{const et=useSwitch_unstable(j,_e);return useSwitchStyles_unstable(et),useCustomStyleHook("useSwitchStyles_unstable")(et),renderSwitch_unstable(et)});Switch.displayName="Switch";const tabListContextDefaultValue={appearance:"transparent",reserveSelectedTabSpace:!0,selectTabOnFocus:!1,disabled:!1,selectedValue:void 0,onRegister:()=>{},onUnregister:()=>{},onSelect:()=>{},getRegisteredTabs:()=>({registeredTabs:{}}),size:"medium",vertical:!1},TabListContext=createContext(void 0),TabListProvider=TabListContext.Provider,useTabListContext_unstable=j=>useContextSelector(TabListContext,(_e=tabListContextDefaultValue)=>j(_e)),useTab_unstable=(j,_e)=>{const{content:et,disabled:tt=!1,icon:rt,onClick:nt,onFocus:ot,value:it}=j,st=useTabListContext_unstable(Ct=>Ct.appearance),lt=useTabListContext_unstable(Ct=>Ct.reserveSelectedTabSpace),ut=useTabListContext_unstable(Ct=>Ct.selectTabOnFocus),ct=useTabListContext_unstable(Ct=>Ct.disabled),dt=useTabListContext_unstable(Ct=>Ct.selectedValue===it),ft=useTabListContext_unstable(Ct=>Ct.onRegister),pt=useTabListContext_unstable(Ct=>Ct.onUnregister),gt=useTabListContext_unstable(Ct=>Ct.onSelect),vt=useTabListContext_unstable(Ct=>Ct.size),bt=useTabListContext_unstable(Ct=>!!Ct.vertical),_t=ct||tt,xt=reactExports.useRef(null),yt=Ct=>gt(Ct,{value:it}),Et=useEventCallback$3(mergeCallbacks(nt,yt)),St=useEventCallback$3(mergeCallbacks(ot,yt));reactExports.useEffect(()=>(ft({value:it,ref:xt}),()=>{pt({value:it,ref:xt})}),[ft,pt,xt,it]);const $t=optional(rt,{elementType:"span"}),At=always(et,{defaultProps:{children:j.children},elementType:"span"}),wt=!!($t!=null&&$t.children&&!At.children);return{components:{root:"button",icon:"span",content:"span",contentReservedSpace:"span"},root:always(getIntrinsicElementProps("button",{ref:useMergedRefs$1(_e,xt),role:"tab",type:"button","aria-selected":_t?void 0:`${dt}`,...j,disabled:_t,onClick:Et,onFocus:ut?St:ot}),{elementType:"button"}),icon:$t,iconOnly:wt,content:At,contentReservedSpace:optional(et,{renderByDefault:!dt&&!wt&<,defaultProps:{children:j.children},elementType:"span"}),appearance:st,disabled:_t,selected:dt,size:vt,value:it,vertical:bt}},renderTab_unstable=j=>jsxs(j.root,{children:[j.icon&&jsx$1(j.icon,{}),!j.iconOnly&&jsx$1(j.content,{}),j.contentReservedSpace&&jsx$1(j.contentReservedSpace,{})]}),tabIndicatorCssVars_unstable={offsetVar:"--fui-Tab__indicator--offset",scaleVar:"--fui-Tab__indicator--scale"},useActiveIndicatorStyles$1=__styles({base:{B68tc82:"f1mtd64y",Bmxbyg5:"f1y7q3j9"},animated:{Ba2ppi3:"fhwpy7i",F2fol1:"f6zz20j",B1dyfl9:"f1ai4sc1",B0vmy72:"f9qxlq5",u9bimw:"f1aql376"},horizontal:{sjv3b2:["fug4aj8","f1i5xzg7"],b1kco5:"f1q7ujh"},vertical:{sjv3b2:"f1hqboyk",b1kco5:"f1dxupa6"}},{d:[".f1mtd64y{overflow-x:visible;}",".f1y7q3j9{overflow-y:visible;}",".fhwpy7i::after{transition-property:transform;}",".f6zz20j::after{transition-duration:var(--durationSlow);}",".f1ai4sc1::after{transition-timing-function:var(--curveDecelerateMax);}",".fug4aj8::after{transform-origin:left;}",".f1i5xzg7::after{transform-origin:right;}",".f1q7ujh::after{transform:translateX(var(--fui-Tab__indicator--offset)) scaleX(var(--fui-Tab__indicator--scale));}",".f1hqboyk::after{transform-origin:top;}",".f1dxupa6::after{transform:translateY(var(--fui-Tab__indicator--offset)) scaleY(var(--fui-Tab__indicator--scale));}"],m:[["@media (prefers-reduced-motion: reduce){.f9qxlq5::after{transition-property:none;}}",{m:"(prefers-reduced-motion: reduce)"}],["@media (prefers-reduced-motion: reduce){.f1aql376::after{transition-duration:0.01ms;}}",{m:"(prefers-reduced-motion: reduce)"}]]}),calculateTabRect=j=>{if(j){var _e;const et=((_e=j.parentElement)===null||_e===void 0?void 0:_e.getBoundingClientRect())||{x:0,y:0,width:0,height:0},tt=j.getBoundingClientRect();return{x:tt.x-et.x,y:tt.y-et.y,width:tt.width,height:tt.height}}},getRegisteredTabRect=(j,_e)=>{var et;const tt=_e!=null?(et=j[JSON.stringify(_e)])===null||et===void 0?void 0:et.ref.current:void 0;return tt?calculateTabRect(tt):void 0},useTabAnimatedIndicatorStyles_unstable=j=>{const{disabled:_e,selected:et,vertical:tt}=j,rt=useActiveIndicatorStyles$1(),[nt,ot]=reactExports.useState(),[it,st]=reactExports.useState({offset:0,scale:1}),lt=useTabListContext_unstable(dt=>dt.getRegisteredTabs);if(reactExports.useEffect(()=>{nt&&st({offset:0,scale:1})},[nt]),et){const{previousSelectedValue:dt,selectedValue:ft,registeredTabs:pt}=lt();if(dt&&nt!==dt){const gt=getRegisteredTabRect(pt,dt),vt=getRegisteredTabRect(pt,ft);if(vt&>){const bt=tt?gt.y-vt.y:gt.x-vt.x,_t=tt?gt.height/vt.height:gt.width/vt.width;st({offset:bt,scale:_t}),ot(dt)}}}else nt&&ot(void 0);if(_e)return j;const ut=it.offset===0&&it.scale===1;j.root.className=mergeClasses(j.root.className,et&&rt.base,et&&ut&&rt.animated,et&&(tt?rt.vertical:rt.horizontal));const ct={[tabIndicatorCssVars_unstable.offsetVar]:`${it.offset}px`,[tabIndicatorCssVars_unstable.scaleVar]:`${it.scale}`};return j.root.style={...ct,...j.root.style},j},tabClassNames={root:"fui-Tab",icon:"fui-Tab__icon",content:"fui-Tab__content"},reservedSpaceClassNames={content:"fui-Tab__content--reserved-space"},useRootStyles$1=__styles({base:{Bt984gj:"f122n59",g2u3we:"fwhevhj",h3c5rm:["f61n433","f1q8l70w"],B9xav0g:"fv1dfc8",zhjwy3:["f1q8l70w","f61n433"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B4j52fo:"fre7gi1",Bekrc4i:["f1358rze","f1rvrf73"],Bn0qgzm:"fqdk4by",ibv6hh:["f1rvrf73","f1358rze"],Bceei9c:"f1k6fduh",mc9l5x:"f13qh94s",Bnnss6s:"fi64zpg",Bxotwcr:"f1u07yai",Budl1dq:"frn2hmy",wkccdc:"f1olsevy",Bahqtrf:"fk6fouc",Bg96gwp:"f1i3iumi",oeaueh:"f1s6fcnf",qhf8xq:"f10pi13n",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",B9bfxx9:"f1cxpek8"},horizontal:{Brf1p80:"f4d9j23"},vertical:{Brf1p80:"f1s9ku6b"},smallHorizontal:{i8kkvl:"f14mj54c",z8tnut:"fp2oml8",z189sj:["fdw0yi8","fk8j09s"],Byoj8tv:"f1tdddsa",uwmqm3:["fk8j09s","fdw0yi8"]},smallVertical:{i8kkvl:"f14mj54c",z8tnut:"fclwglc",z189sj:["fdw0yi8","fk8j09s"],Byoj8tv:"fywfov9",uwmqm3:["fk8j09s","fdw0yi8"]},mediumHorizontal:{i8kkvl:"f1rjii52",z8tnut:"f5yzyt",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"fx3omr",uwmqm3:["f1ng84yb","f11gcy0p"]},mediumVertical:{i8kkvl:"f1rjii52",z8tnut:"fp2oml8",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"f1tdddsa",uwmqm3:["f1ng84yb","f11gcy0p"]},largeHorizontal:{i8kkvl:"f1rjii52",z8tnut:"fikn0iw",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"fdxej3c",uwmqm3:["f1ng84yb","f11gcy0p"]},largeVertical:{i8kkvl:"f1rjii52",z8tnut:"f1kwiid1",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"f5b47ha",uwmqm3:["f1ng84yb","f11gcy0p"]},transparent:{De3pzq:"f1c21dwh",Jwef8y:"fjxutwb",ecr2s2:"fophhak",Bptxc3x:"fmmjozx",B076xvk:"f1mfqf41",q9r9w5:"f10aiid4",cl4aha:"fpkze5g",Bk452zc:"f149wc3x",a4hkcw:"fjioou7"},subtle:{De3pzq:"fhovq9v",Jwef8y:"f1t94bn6",ecr2s2:"f1wfn5kd",Bptxc3x:"fmmjozx",B076xvk:"f1mfqf41",q9r9w5:"f10aiid4",cl4aha:"fpkze5g",Bk452zc:"f149wc3x",a4hkcw:"fjioou7"},disabled:{De3pzq:"f1c21dwh",Bptxc3x:"fato7r6",cl4aha:"fao1bnu",Bceei9c:"fdrzuqr"},selected:{Bptxc3x:"f1cadz5z",B076xvk:"f1ck17l",q9r9w5:"f42ak0g",cl4aha:"ffplhdr",Bk452zc:"ffth601",a4hkcw:"fhklyu5"}},{d:[".f122n59{align-items:center;}",".fwhevhj{border-top-color:none;}",".f61n433{border-right-color:none;}",".f1q8l70w{border-left-color:none;}",".fv1dfc8{border-bottom-color:none;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".fre7gi1{border-top-width:0;}",".f1358rze{border-right-width:0;}",".f1rvrf73{border-left-width:0;}",".fqdk4by{border-bottom-width:0;}",".f1k6fduh{cursor:pointer;}",".f13qh94s{display:grid;}",".fi64zpg{flex-shrink:0;}",".f1u07yai{grid-auto-flow:column;}",".frn2hmy{grid-template-columns:auto;}",".f1olsevy{grid-template-rows:auto;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1s6fcnf{outline-style:none;}",".f10pi13n{position:relative;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f1cxpek8{text-transform:none;}",".f4d9j23{justify-content:center;}",".f1s9ku6b{justify-content:start;}",".f14mj54c{column-gap:var(--spacingHorizontalXXS);}",".fp2oml8{padding-top:var(--spacingVerticalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".f1tdddsa{padding-bottom:var(--spacingVerticalSNudge);}",".fclwglc{padding-top:var(--spacingVerticalXXS);}",".fywfov9{padding-bottom:var(--spacingVerticalXXS);}",".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",".f5yzyt{padding-top:var(--spacingVerticalM);}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".fx3omr{padding-bottom:var(--spacingVerticalM);}",".fikn0iw{padding-top:var(--spacingVerticalL);}",".fdxej3c{padding-bottom:var(--spacingVerticalL);}",".f1kwiid1{padding-top:var(--spacingVerticalS);}",".f5b47ha{padding-bottom:var(--spacingVerticalS);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".fmmjozx .fui-Tab__icon{color:var(--colorNeutralForeground2);}",".fpkze5g .fui-Tab__content{color:var(--colorNeutralForeground2);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fato7r6 .fui-Tab__icon{color:var(--colorNeutralForegroundDisabled);}",".fao1bnu .fui-Tab__content{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f1cadz5z .fui-Tab__icon{color:var(--colorCompoundBrandForeground1);}",".ffplhdr .fui-Tab__content{color:var(--colorNeutralForeground1);}"],h:[".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".f1mfqf41:hover .fui-Tab__icon{color:var(--colorNeutralForeground2Hover);}",".f149wc3x:hover .fui-Tab__content{color:var(--colorNeutralForeground2Hover);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".f1ck17l:hover .fui-Tab__icon{color:var(--colorCompoundBrandForeground1Hover);}",".ffth601:hover .fui-Tab__content{color:var(--colorNeutralForeground1Hover);}"],a:[".fophhak:active{background-color:var(--colorTransparentBackgroundPressed);}",".f10aiid4:active .fui-Tab__icon{color:var(--colorNeutralForeground2Pressed);}",".fjioou7:active .fui-Tab__content{color:var(--colorNeutralForeground2Pressed);}",".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}",".f42ak0g:active .fui-Tab__icon{color:var(--colorCompoundBrandForeground1Pressed);}",".fhklyu5:active .fui-Tab__content{color:var(--colorNeutralForeground1Pressed);}"]}),useFocusStyles=__styles({base:{B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bn4voq9:"f1p7hgxw",Bfpq7zp:"f1way5bb",g9k6zt:"f9znhxp",j6ew2k:["fqa318h","fqa318h"],Bhxq17a:"f1vjpng2"}},{d:[".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",".f1p7hgxw[data-fui-focus-visible]{outline-width:var(--strokeWidthThick);}",".f1way5bb[data-fui-focus-visible]{outline-color:transparent;}",".f9znhxp[data-fui-focus-visible]{outline-style:solid;}",".fqa318h[data-fui-focus-visible]{box-shadow:var(--shadow4),0 0 0 var(--strokeWidthThick) var(--colorStrokeFocus2);}",".f1vjpng2[data-fui-focus-visible]{z-index:1;}"]}),usePendingIndicatorStyles=__styles({base:{az7l2e:"fhw179n",Bv4n3vi:["f10y1uxy","f6aiuy0"],vqofr:["f6aiuy0","f10y1uxy"],B0uxbk8:["f1kfpfnu","f1dx5wco"],Bgqb9hq:["f1dx5wco","f1kfpfnu"],amg5m6:"f1kmhr4c",zkfqfm:"fl1ydde",Bkydozb:"f1y7maxz",vzq8l0:["f105swax","fscdmel"],Bka2azo:["fscdmel","f105swax"],Br4ovkg:["f1tkcw1w","f1u11x8o"],csmgbd:["f1u11x8o","f1tkcw1w"],y36c18:"f16cxu0",B1ctymy:"f1nwgacf",Bgvrrv0:"f15ovonk",ddr6p5:"fvje46l"},disabled:{az7l2e:"f1ut20fw",Bkydozb:"fhrzcfn"},smallHorizontal:{lawp4y:"fchca7p",Baz25je:"f1r53b5e",Fbdkly:["f1s6rxz5","fo35v8s"],mdwyqc:["fo35v8s","f1s6rxz5"]},smallVertical:{lawp4y:"fze4zud",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"fdp32p8",Ccq8qp:"f1aij3q"},mediumHorizontal:{lawp4y:"fchca7p",Baz25je:"f1s2r9ax",Fbdkly:["f1o0nnkk","fxb7rol"],mdwyqc:["fxb7rol","f1o0nnkk"]},mediumVertical:{lawp4y:"f17jracn",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"f117lcb2",Ccq8qp:"f1aij3q"},largeHorizontal:{lawp4y:"fchca7p",Baz25je:"f1s2r9ax",Fbdkly:["f1o0nnkk","fxb7rol"],mdwyqc:["fxb7rol","f1o0nnkk"]},largeVertical:{lawp4y:"fel9d3z",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"f6vqlre",Ccq8qp:"f1aij3q"}},{h:[".fhw179n:hover::before{background-color:var(--colorNeutralStroke1Hover);}",".f10y1uxy:hover::before{border-bottom-right-radius:var(--borderRadiusCircular);}",".f6aiuy0:hover::before{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1kfpfnu:hover::before{border-top-right-radius:var(--borderRadiusCircular);}",".f1dx5wco:hover::before{border-top-left-radius:var(--borderRadiusCircular);}",'.f1kmhr4c:hover::before{content:"";}',".fl1ydde:hover::before{position:absolute;}",".f1ut20fw:hover::before{background-color:var(--colorTransparentStroke);}"],a:[".f1y7maxz:active::before{background-color:var(--colorNeutralStroke1Pressed);}",".f105swax:active::before{border-bottom-right-radius:var(--borderRadiusCircular);}",".fscdmel:active::before{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1tkcw1w:active::before{border-top-right-radius:var(--borderRadiusCircular);}",".f1u11x8o:active::before{border-top-left-radius:var(--borderRadiusCircular);}",'.f16cxu0:active::before{content:"";}',".f1nwgacf:active::before{position:absolute;}",".fhrzcfn:active::before{background-color:var(--colorTransparentStroke);}"],m:[["@media (forced-colors: active){.f15ovonk:hover::before{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fvje46l:active::before{background-color:Highlight;}}",{m:"(forced-colors: active)"}]],d:[".fchca7p::before{bottom:0;}",".f1r53b5e::before{height:var(--strokeWidthThick);}",".f1s6rxz5::before{left:var(--spacingHorizontalSNudge);}",".fo35v8s::before{right:var(--spacingHorizontalSNudge);}",".fze4zud::before{bottom:var(--spacingVerticalXS);}",".f1fzr1x6::before{left:0;}",".f1f351id::before{right:0;}",".fdp32p8::before{top:var(--spacingVerticalXS);}",".f1aij3q::before{width:var(--strokeWidthThicker);}",".f1s2r9ax::before{height:var(--strokeWidthThicker);}",".f1o0nnkk::before{left:var(--spacingHorizontalM);}",".fxb7rol::before{right:var(--spacingHorizontalM);}",".f17jracn::before{bottom:var(--spacingVerticalS);}",".f117lcb2::before{top:var(--spacingVerticalS);}",".fel9d3z::before{bottom:var(--spacingVerticalMNudge);}",".f6vqlre::before{top:var(--spacingVerticalMNudge);}"]}),useActiveIndicatorStyles=__styles({base:{Bjyk6c5:"f1rp0jgh",B3778ie:["fprarqb","f14vs0nd"],d9w3h3:["f14vs0nd","fprarqb"],Bl18szs:["f1gtfqs9","f18zvfd9"],B4j8arr:["f18zvfd9","f1gtfqs9"],Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9",t2ki1e:"ffmd2fr"},selected:{Bjyk6c5:"f1ksivud",Glksuk:"f1eytvvh",Blzl0y7:"fuaa9s",f7digc:"fy7ktjt",Biqphg1:"f16tp0gf",Bntoloa:"fj0yp7j"},disabled:{Bjyk6c5:"f13lkzet"},smallHorizontal:{By385i5:"fo72kxq",Dlnsje:"f9bb2ob",Eqx8gd:["f1q70ajw","f18rbzdx"],B1piin3:["f18rbzdx","f1q70ajw"]},smallVertical:{By385i5:"fqbue9b",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"fk1klkt",a2br6o:"f1o25lip"},mediumHorizontal:{By385i5:"fo72kxq",Dlnsje:"f1vx7lu8",Eqx8gd:["fna7m5n","f1oxpfwv"],B1piin3:["f1oxpfwv","fna7m5n"]},mediumVertical:{By385i5:"fipylg0",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"fqchiol",a2br6o:"f1o25lip"},largeHorizontal:{By385i5:"fo72kxq",Dlnsje:"f1vx7lu8",Eqx8gd:["fna7m5n","f1oxpfwv"],B1piin3:["f1oxpfwv","fna7m5n"]},largeVertical:{By385i5:"f1w7dm5g",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"f1p6em4m",a2br6o:"f1o25lip"}},{d:[".f1rp0jgh::after{background-color:var(--colorTransparentStroke);}",".fprarqb::after{border-bottom-right-radius:var(--borderRadiusCircular);}",".f14vs0nd::after{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1gtfqs9::after{border-top-right-radius:var(--borderRadiusCircular);}",".f18zvfd9::after{border-top-left-radius:var(--borderRadiusCircular);}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".ffmd2fr::after{z-index:1;}",".f1ksivud::after{background-color:var(--colorCompoundBrandStroke);}",".f13lkzet::after{background-color:var(--colorNeutralForegroundDisabled);}",".fo72kxq::after{bottom:0;}",".f9bb2ob::after{height:var(--strokeWidthThick);}",".f1q70ajw::after{left:var(--spacingHorizontalSNudge);}",".f18rbzdx::after{right:var(--spacingHorizontalSNudge);}",".fqbue9b::after{bottom:var(--spacingVerticalXS);}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",".fk1klkt::after{top:var(--spacingVerticalXS);}",".f1o25lip::after{width:var(--strokeWidthThicker);}",".f1vx7lu8::after{height:var(--strokeWidthThicker);}",".fna7m5n::after{left:var(--spacingHorizontalM);}",".f1oxpfwv::after{right:var(--spacingHorizontalM);}",".fipylg0::after{bottom:var(--spacingVerticalS);}",".fqchiol::after{top:var(--spacingVerticalS);}",".f1w7dm5g::after{bottom:var(--spacingVerticalMNudge);}",".f1p6em4m::after{top:var(--spacingVerticalMNudge);}"],h:[".f1eytvvh:hover::after{background-color:var(--colorCompoundBrandStrokeHover);}"],a:[".fuaa9s:active::after{background-color:var(--colorCompoundBrandStrokePressed);}"],m:[["@media (forced-colors: active){.fy7ktjt::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f16tp0gf:hover::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fj0yp7j:active::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}]]}),useIconStyles=__styles({base:{Br312pm:"fwpfdsa",Ijaq50:"f16hsg94",Bt984gj:"f122n59",mc9l5x:"ftuwxu6",Brf1p80:"f4d9j23",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",D0sxk3:"f16u1re",t6yez3:"f8bsbmo"},small:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3"},medium:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3"},large:{Be2twd7:"f1rt2boy",Bqenvij:"frvgh55",a9b677:"fq4mcun"},selected:{D0sxk3:"fxoiby5",t6yez3:"f15q0o9g"}},{d:[".fwpfdsa{grid-column-start:1;}",".f16hsg94{grid-row-start:1;}",".f122n59{align-items:center;}",".ftuwxu6{display:inline-flex;}",".f4d9j23{justify-content:center;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f16u1re .fui-Icon-filled{display:none;}",".f8bsbmo .fui-Icon-regular{display:inline;}",".fe5j1ua{font-size:20px;}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",".f1rt2boy{font-size:24px;}",".frvgh55{height:24px;}",".fq4mcun{width:24px;}",".fxoiby5 .fui-Icon-filled{display:inline;}",".f15q0o9g .fui-Icon-regular{display:none;}"]}),useContentStyles=__styles({base:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",z8tnut:"fztplxc",z189sj:["ffczdla","fgiv446"],Byoj8tv:"f9g1xly",uwmqm3:["fgiv446","ffczdla"]},selected:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"fl43uef",Bg96gwp:"f1i3iumi"},large:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k"},largeSelected:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},noIconBefore:{Br312pm:"fwpfdsa",Ijaq50:"f16hsg94"},iconBefore:{Br312pm:"fd46tj4",Ijaq50:"f16hsg94"},placeholder:{Bcdw1i0:"fd7fpy0"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".fztplxc{padding-top:var(--spacingVerticalNone);}",".ffczdla{padding-right:var(--spacingHorizontalXXS);}",".fgiv446{padding-left:var(--spacingHorizontalXXS);}",".f9g1xly{padding-bottom:var(--spacingVerticalNone);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fwpfdsa{grid-column-start:1;}",".f16hsg94{grid-row-start:1;}",".fd46tj4{grid-column-start:2;}",".fd7fpy0{visibility:hidden;}"]}),useTabStyles_unstable=j=>{const _e=useRootStyles$1(),et=useFocusStyles(),tt=usePendingIndicatorStyles(),rt=useActiveIndicatorStyles(),nt=useIconStyles(),ot=useContentStyles(),{appearance:it,disabled:st,selected:lt,size:ut,vertical:ct}=j;return j.root.className=mergeClasses(tabClassNames.root,_e.base,ct?_e.vertical:_e.horizontal,ut==="small"&&(ct?_e.smallVertical:_e.smallHorizontal),ut==="medium"&&(ct?_e.mediumVertical:_e.mediumHorizontal),ut==="large"&&(ct?_e.largeVertical:_e.largeHorizontal),et.base,!st&&it==="subtle"&&_e.subtle,!st&&it==="transparent"&&_e.transparent,!st&<&&_e.selected,st&&_e.disabled,tt.base,ut==="small"&&(ct?tt.smallVertical:tt.smallHorizontal),ut==="medium"&&(ct?tt.mediumVertical:tt.mediumHorizontal),ut==="large"&&(ct?tt.largeVertical:tt.largeHorizontal),st&&tt.disabled,lt&&rt.base,lt&&!st&&rt.selected,lt&&ut==="small"&&(ct?rt.smallVertical:rt.smallHorizontal),lt&&ut==="medium"&&(ct?rt.mediumVertical:rt.mediumHorizontal),lt&&ut==="large"&&(ct?rt.largeVertical:rt.largeHorizontal),lt&&st&&rt.disabled,j.root.className),j.icon&&(j.icon.className=mergeClasses(tabClassNames.icon,nt.base,nt[ut],lt&&nt.selected,j.icon.className)),j.contentReservedSpace&&(j.contentReservedSpace.className=mergeClasses(reservedSpaceClassNames.content,ot.base,ut==="large"?ot.largeSelected:ot.selected,j.icon?ot.iconBefore:ot.noIconBefore,ot.placeholder,j.content.className),j.contentReservedSpaceClassName=j.contentReservedSpace.className),j.content.className=mergeClasses(tabClassNames.content,ot.base,ut==="large"&&ot.large,lt&&(ut==="large"?ot.largeSelected:ot.selected),j.icon?ot.iconBefore:ot.noIconBefore,j.content.className),useTabAnimatedIndicatorStyles_unstable(j),j},Tab$1=reactExports.forwardRef((j,_e)=>{const et=useTab_unstable(j,_e);return useTabStyles_unstable(et),useCustomStyleHook("useTabStyles_unstable")(et),renderTab_unstable(et)});Tab$1.displayName="Tab";const useTabList_unstable=(j,_e)=>{const{appearance:et="transparent",reserveSelectedTabSpace:tt=!0,disabled:rt=!1,onTabSelect:nt,selectTabOnFocus:ot=!1,size:it="medium",vertical:st=!1}=j,lt=reactExports.useRef(null),ut=useArrowNavigationGroup({circular:!0,axis:st?"vertical":"horizontal",memorizeCurrent:!0}),[ct,dt]=useControllableState({state:j.selectedValue,defaultState:j.defaultSelectedValue,initialState:void 0}),ft=reactExports.useRef(void 0),pt=reactExports.useRef(void 0);reactExports.useEffect(()=>{pt.current=ft.current,ft.current=ct},[ct]);const gt=useEventCallback$3((yt,Et)=>{dt(Et.value),nt==null||nt(yt,Et)}),vt=reactExports.useRef({}),bt=useEventCallback$3(yt=>{vt.current[JSON.stringify(yt.value)]=yt}),_t=useEventCallback$3(yt=>{delete vt.current[JSON.stringify(yt.value)]}),xt=reactExports.useCallback(()=>({selectedValue:ft.current,previousSelectedValue:pt.current,registeredTabs:vt.current}),[]);return{components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,lt),role:"tablist","aria-orientation":st?"vertical":"horizontal",...ut,...j}),{elementType:"div"}),appearance:et,reserveSelectedTabSpace:tt,disabled:rt,selectTabOnFocus:ot,selectedValue:ct,size:it,vertical:st,onRegister:bt,onUnregister:_t,onSelect:gt,getRegisteredTabs:xt}},renderTabList_unstable=(j,_e)=>jsx$1(j.root,{children:jsx$1(TabListProvider,{value:_e.tabList,children:j.root.children})}),tabListClassNames={root:"fui-TabList"},useStyles$m=__styles({root:{mc9l5x:"f22iagw",Beiy3e4:"f1063pyq",Bnnss6s:"fi64zpg",Eh141a:"flvyvdh",qhf8xq:"f10pi13n"},horizontal:{Bt984gj:"f1q9h2pe",Beiy3e4:"f1063pyq"},vertical:{Bt984gj:"f1q9h2pe",Beiy3e4:"f1vx9l62"}},{d:[".f22iagw{display:flex;}",".f1063pyq{flex-direction:row;}",".fi64zpg{flex-shrink:0;}",".flvyvdh{flex-wrap:nowrap;}",".f10pi13n{position:relative;}",".f1q9h2pe{align-items:stretch;}",".f1vx9l62{flex-direction:column;}"]}),useTabListStyles_unstable=j=>{const{vertical:_e}=j,et=useStyles$m();return j.root.className=mergeClasses(tabListClassNames.root,et.root,_e?et.vertical:et.horizontal,j.root.className),j};function useTabListContextValues_unstable(j){const{appearance:_e,reserveSelectedTabSpace:et,disabled:tt,selectTabOnFocus:rt,selectedValue:nt,onRegister:ot,onUnregister:it,onSelect:st,getRegisteredTabs:lt,size:ut,vertical:ct}=j;return{tabList:{appearance:_e,reserveSelectedTabSpace:et,disabled:tt,selectTabOnFocus:rt,selectedValue:nt,onSelect:st,onRegister:ot,onUnregister:it,getRegisteredTabs:lt,size:ut,vertical:ct}}}const TabList=reactExports.forwardRef((j,_e)=>{const et=useTabList_unstable(j,_e),tt=useTabListContextValues_unstable(et);return useTabListStyles_unstable(et),useCustomStyleHook("useTabListStyles_unstable")(et),renderTabList_unstable(et,tt)});TabList.displayName="TabList";const useText_unstable=(j,_e)=>{const{wrap:et,truncate:tt,block:rt,italic:nt,underline:ot,strikethrough:it,size:st,font:lt,weight:ut,align:ct}=j;return{align:ct??"start",block:rt??!1,font:lt??"base",italic:nt??!1,size:st??300,strikethrough:it??!1,truncate:tt??!1,underline:ot??!1,weight:ut??"regular",wrap:et??!0,components:{root:"span"},root:always(getIntrinsicElementProps("span",{ref:_e,...j}),{elementType:"span"})}},renderText_unstable=j=>jsx$1(j.root,{}),textClassNames={root:"fui-Text"},useStyles$l=__styles({root:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi",Bhrd7zp:"figsok6",fsow6f:"fpgzoln",mc9l5x:"f1w7gpdv",Huce71:"f6juhto",B68tc82:"f1mtd64y",Bmxbyg5:"f1y7q3j9",ygn44y:"f2jf649"},nowrap:{Huce71:"fz5stix",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw"},truncate:{ygn44y:"f1cmbuwj"},block:{mc9l5x:"ftgm304"},italic:{B80ckks:"f1j4dglz"},underline:{w71qe1:"f13mvf36"},strikethrough:{w71qe1:"fv5q2k7"},strikethroughUnderline:{w71qe1:"f1drk4o6"},base100:{Be2twd7:"f13mqy1h",Bg96gwp:"fcpl73t"},base200:{Be2twd7:"fy9rknc",Bg96gwp:"fwrc4pm"},base400:{Be2twd7:"fod5ikn",Bg96gwp:"faaz57k"},base500:{Be2twd7:"f1pp30po",Bg96gwp:"f106mvju"},base600:{Be2twd7:"f1x0m3f5",Bg96gwp:"fb86gi6"},hero700:{Be2twd7:"fojgt09",Bg96gwp:"fcen8rp"},hero800:{Be2twd7:"fccw675",Bg96gwp:"f1ebx5kk"},hero900:{Be2twd7:"f15afnhw",Bg96gwp:"fr3w3wp"},hero1000:{Be2twd7:"fpyltcb",Bg96gwp:"f1ivgwrt"},monospace:{Bahqtrf:"f1fedwem"},numeric:{Bahqtrf:"f1uq0ln5"},weightMedium:{Bhrd7zp:"fdj6btp"},weightSemibold:{Bhrd7zp:"fl43uef"},weightBold:{Bhrd7zp:"flh3ekv"},alignCenter:{fsow6f:"f17mccla"},alignEnd:{fsow6f:"f12ymhq5"},alignJustify:{fsow6f:"f1j59e10"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fpgzoln{text-align:start;}",".f1w7gpdv{display:inline;}",".f6juhto{white-space:normal;}",".f1mtd64y{overflow-x:visible;}",".f1y7q3j9{overflow-y:visible;}",".f2jf649{text-overflow:clip;}",".fz5stix{white-space:nowrap;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f1cmbuwj{text-overflow:ellipsis;}",".ftgm304{display:block;}",".f1j4dglz{font-style:italic;}",".f13mvf36{text-decoration-line:underline;}",".fv5q2k7{text-decoration-line:line-through;}",".f1drk4o6{text-decoration-line:line-through underline;}",".f13mqy1h{font-size:var(--fontSizeBase100);}",".fcpl73t{line-height:var(--lineHeightBase100);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".f106mvju{line-height:var(--lineHeightBase500);}",".f1x0m3f5{font-size:var(--fontSizeBase600);}",".fb86gi6{line-height:var(--lineHeightBase600);}",".fojgt09{font-size:var(--fontSizeHero700);}",".fcen8rp{line-height:var(--lineHeightHero700);}",".fccw675{font-size:var(--fontSizeHero800);}",".f1ebx5kk{line-height:var(--lineHeightHero800);}",".f15afnhw{font-size:var(--fontSizeHero900);}",".fr3w3wp{line-height:var(--lineHeightHero900);}",".fpyltcb{font-size:var(--fontSizeHero1000);}",".f1ivgwrt{line-height:var(--lineHeightHero1000);}",".f1fedwem{font-family:var(--fontFamilyMonospace);}",".f1uq0ln5{font-family:var(--fontFamilyNumeric);}",".fdj6btp{font-weight:var(--fontWeightMedium);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".flh3ekv{font-weight:var(--fontWeightBold);}",".f17mccla{text-align:center;}",".f12ymhq5{text-align:end;}",".f1j59e10{text-align:justify;}"]}),useTextStyles_unstable=j=>{const _e=useStyles$l();return j.root.className=mergeClasses(textClassNames.root,_e.root,j.wrap===!1&&_e.nowrap,j.truncate&&_e.truncate,j.block&&_e.block,j.italic&&_e.italic,j.underline&&_e.underline,j.strikethrough&&_e.strikethrough,j.underline&&j.strikethrough&&_e.strikethroughUnderline,j.size===100&&_e.base100,j.size===200&&_e.base200,j.size===400&&_e.base400,j.size===500&&_e.base500,j.size===600&&_e.base600,j.size===700&&_e.hero700,j.size===800&&_e.hero800,j.size===900&&_e.hero900,j.size===1e3&&_e.hero1000,j.font==="monospace"&&_e.monospace,j.font==="numeric"&&_e.numeric,j.weight==="medium"&&_e.weightMedium,j.weight==="semibold"&&_e.weightSemibold,j.weight==="bold"&&_e.weightBold,j.align==="center"&&_e.alignCenter,j.align==="end"&&_e.alignEnd,j.align==="justify"&&_e.alignJustify,j.root.className),j},Text$2=reactExports.forwardRef((j,_e)=>{const et=useText_unstable(j,_e);return useTextStyles_unstable(et),useCustomStyleHook("useTextStyles_unstable")(et),renderText_unstable(et)});Text$2.displayName="Text";const disableScrollElementProp="__fluentDisableScrollElement";function useDisableBodyScroll(){const{targetDocument:j}=useFluent();return reactExports.useCallback(()=>{if(j)return disableScroll(j.body)},[j])}function disableScroll(j){var _e;const{clientWidth:et}=j.ownerDocument.documentElement;var tt;const rt=(tt=(_e=j.ownerDocument.defaultView)===null||_e===void 0?void 0:_e.innerWidth)!==null&&tt!==void 0?tt:0;return assertIsDisableScrollElement(j),j[disableScrollElementProp].count===0&&(j.style.overflow="hidden",j.style.paddingRight=`${rt-et}px`),j[disableScrollElementProp].count++,()=>{j[disableScrollElementProp].count--,j[disableScrollElementProp].count===0&&(j.style.overflow=j[disableScrollElementProp].previousOverflowStyle,j.style.paddingRight=j[disableScrollElementProp].previousPaddingRightStyle)}}function assertIsDisableScrollElement(j){var _e,et,tt;(tt=(_e=j)[et=disableScrollElementProp])!==null&&tt!==void 0||(_e[et]={count:0,previousOverflowStyle:j.style.overflow,previousPaddingRightStyle:j.style.paddingRight})}function useFocusFirstElement(j,_e){const{findFirstFocusable:et}=useFocusFinders(),{targetDocument:tt}=useFluent(),rt=reactExports.useRef(null);return reactExports.useEffect(()=>{if(!j)return;const nt=rt.current&&et(rt.current);if(nt)nt.focus();else{var ot;(ot=rt.current)===null||ot===void 0||ot.focus()}},[et,j,_e,tt]),rt}const defaultContextValue$2={open:!1,inertTrapFocus:!1,modalType:"modal",isNestedDialog:!1,dialogRef:{current:null},requestOpenChange(){}},DialogContext=createContext(void 0),DialogProvider=DialogContext.Provider,useDialogContext_unstable=j=>useContextSelector(DialogContext,(_e=defaultContextValue$2)=>j(_e)),defaultContextValue$1=!1,DialogSurfaceContext=reactExports.createContext(void 0),DialogSurfaceProvider=DialogSurfaceContext.Provider,useDialogSurfaceContext_unstable=()=>{var j;return(j=reactExports.useContext(DialogSurfaceContext))!==null&&j!==void 0?j:defaultContextValue$1},useDialog_unstable=j=>{const{children:_e,modalType:et="modal",onOpenChange:tt,inertTrapFocus:rt=!1}=j,[nt,ot]=childrenToTriggerAndContent(_e),[it,st]=useControllableState({state:j.open,defaultState:j.defaultOpen,initialState:!1}),lt=useEventCallback$3(gt=>{tt==null||tt(gt.event,gt),gt.event.isDefaultPrevented()||st(gt.open)}),ut=useFocusFirstElement(it,et),ct=useDisableBodyScroll(),dt=!!(it&&et!=="non-modal");useIsomorphicLayoutEffect$1(()=>{if(dt)return ct()},[ct,dt]);const{modalAttributes:ft,triggerAttributes:pt}=useModalAttributes({trapFocus:et!=="non-modal",legacyTrapFocus:!rt});return{components:{backdrop:"div"},inertTrapFocus:rt,open:it,modalType:et,content:ot,trigger:nt,requestOpenChange:lt,dialogTitleId:useId$1("dialog-title-"),isNestedDialog:useHasParentContext(DialogContext),dialogRef:ut,modalAttributes:et!=="non-modal"?ft:void 0,triggerAttributes:pt}};function childrenToTriggerAndContent(j){const _e=reactExports.Children.toArray(j);switch(_e.length){case 2:return _e;case 1:return[void 0,_e[0]];default:return[void 0,void 0]}}function _extends$r(){return _extends$r=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&(et[rt]=j[rt]);return et}function _setPrototypeOf$c(j,_e){return _setPrototypeOf$c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$c(j,_e)}function _inheritsLoose$1(j,_e){j.prototype=Object.create(_e.prototype),j.prototype.constructor=j,_setPrototypeOf$c(j,_e)}var propTypes$1={exports:{}},ReactPropTypesSecret$3="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",ReactPropTypesSecret_1$1=ReactPropTypesSecret$3,ReactPropTypesSecret$2=ReactPropTypesSecret_1$1;function emptyFunction$1(){}function emptyFunctionWithReset$1(){}emptyFunctionWithReset$1.resetWarningCache=emptyFunction$1;var factoryWithThrowingShims$1=function(){function j(tt,rt,nt,ot,it,st){if(st!==ReactPropTypesSecret$2){var lt=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw lt.name="Invariant Violation",lt}}j.isRequired=j;function _e(){return j}var et={array:j,bigint:j,bool:j,func:j,number:j,object:j,string:j,symbol:j,any:j,arrayOf:_e,element:j,elementType:j,instanceOf:_e,node:j,objectOf:_e,oneOf:_e,oneOfType:_e,shape:_e,exact:_e,checkPropTypes:emptyFunctionWithReset$1,resetWarningCache:emptyFunction$1};return et.PropTypes=et,et};propTypes$1.exports=factoryWithThrowingShims$1();var propTypesExports$1=propTypes$1.exports;const PropTypes$1=getDefaultExportFromCjs(propTypesExports$1),config$4={disabled:!1},TransitionGroupContext=React.createContext(null);var forceReflow=function(_e){return _e.scrollTop},UNMOUNTED="unmounted",EXITED="exited",ENTERING="entering",ENTERED="entered",EXITING="exiting",Transition=function(j){_inheritsLoose$1(_e,j);function _e(tt,rt){var nt;nt=j.call(this,tt,rt)||this;var ot=rt,it=ot&&!ot.isMounting?tt.enter:tt.appear,st;return nt.appearStatus=null,tt.in?it?(st=EXITED,nt.appearStatus=ENTERING):st=ENTERED:tt.unmountOnExit||tt.mountOnEnter?st=UNMOUNTED:st=EXITED,nt.state={status:st},nt.nextCallback=null,nt}_e.getDerivedStateFromProps=function(rt,nt){var ot=rt.in;return ot&&nt.status===UNMOUNTED?{status:EXITED}:null};var et=_e.prototype;return et.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},et.componentDidUpdate=function(rt){var nt=null;if(rt!==this.props){var ot=this.state.status;this.props.in?ot!==ENTERING&&ot!==ENTERED&&(nt=ENTERING):(ot===ENTERING||ot===ENTERED)&&(nt=EXITING)}this.updateStatus(!1,nt)},et.componentWillUnmount=function(){this.cancelNextCallback()},et.getTimeouts=function(){var rt=this.props.timeout,nt,ot,it;return nt=ot=it=rt,rt!=null&&typeof rt!="number"&&(nt=rt.exit,ot=rt.enter,it=rt.appear!==void 0?rt.appear:ot),{exit:nt,enter:ot,appear:it}},et.updateStatus=function(rt,nt){if(rt===void 0&&(rt=!1),nt!==null)if(this.cancelNextCallback(),nt===ENTERING){if(this.props.unmountOnExit||this.props.mountOnEnter){var ot=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this);ot&&forceReflow(ot)}this.performEnter(rt)}else this.performExit();else this.props.unmountOnExit&&this.state.status===EXITED&&this.setState({status:UNMOUNTED})},et.performEnter=function(rt){var nt=this,ot=this.props.enter,it=this.context?this.context.isMounting:rt,st=this.props.nodeRef?[it]:[ReactDOM.findDOMNode(this),it],lt=st[0],ut=st[1],ct=this.getTimeouts(),dt=it?ct.appear:ct.enter;if(!rt&&!ot||config$4.disabled){this.safeSetState({status:ENTERED},function(){nt.props.onEntered(lt)});return}this.props.onEnter(lt,ut),this.safeSetState({status:ENTERING},function(){nt.props.onEntering(lt,ut),nt.onTransitionEnd(dt,function(){nt.safeSetState({status:ENTERED},function(){nt.props.onEntered(lt,ut)})})})},et.performExit=function(){var rt=this,nt=this.props.exit,ot=this.getTimeouts(),it=this.props.nodeRef?void 0:ReactDOM.findDOMNode(this);if(!nt||config$4.disabled){this.safeSetState({status:EXITED},function(){rt.props.onExited(it)});return}this.props.onExit(it),this.safeSetState({status:EXITING},function(){rt.props.onExiting(it),rt.onTransitionEnd(ot.exit,function(){rt.safeSetState({status:EXITED},function(){rt.props.onExited(it)})})})},et.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},et.safeSetState=function(rt,nt){nt=this.setNextCallback(nt),this.setState(rt,nt)},et.setNextCallback=function(rt){var nt=this,ot=!0;return this.nextCallback=function(it){ot&&(ot=!1,nt.nextCallback=null,rt(it))},this.nextCallback.cancel=function(){ot=!1},this.nextCallback},et.onTransitionEnd=function(rt,nt){this.setNextCallback(nt);var ot=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this),it=rt==null&&!this.props.addEndListener;if(!ot||it){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var st=this.props.nodeRef?[this.nextCallback]:[ot,this.nextCallback],lt=st[0],ut=st[1];this.props.addEndListener(lt,ut)}rt!=null&&setTimeout(this.nextCallback,rt)},et.render=function(){var rt=this.state.status;if(rt===UNMOUNTED)return null;var nt=this.props,ot=nt.children;nt.in,nt.mountOnEnter,nt.unmountOnExit,nt.appear,nt.enter,nt.exit,nt.timeout,nt.addEndListener,nt.onEnter,nt.onEntering,nt.onEntered,nt.onExit,nt.onExiting,nt.onExited,nt.nodeRef;var it=_objectWithoutPropertiesLoose$i(nt,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return React.createElement(TransitionGroupContext.Provider,{value:null},typeof ot=="function"?ot(rt,it):React.cloneElement(React.Children.only(ot),it))},_e}(React.Component);Transition.contextType=TransitionGroupContext;Transition.propTypes={};function noop$6(){}Transition.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:noop$6,onEntering:noop$6,onEntered:noop$6,onExit:noop$6,onExiting:noop$6,onExited:noop$6};Transition.UNMOUNTED=UNMOUNTED;Transition.EXITED=EXITED;Transition.ENTERING=ENTERING;Transition.ENTERED=ENTERED;Transition.EXITING=EXITING;const Transition$1=Transition;function _assertThisInitialized$d(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}const defaultContextValue=void 0,DialogTransitionContext=reactExports.createContext(void 0),DialogTransitionProvider=DialogTransitionContext.Provider,useDialogTransitionContext_unstable=()=>{var j;return(j=reactExports.useContext(DialogTransitionContext))!==null&&j!==void 0?j:defaultContextValue},renderDialog_unstable=(j,_e)=>{const{content:et,trigger:tt}=j;return jsx$1(DialogProvider,{value:_e.dialog,children:jsxs(DialogSurfaceProvider,{value:_e.dialogSurface,children:[tt,jsx$1(Transition$1,{mountOnEnter:!0,unmountOnExit:!0,in:j.open,nodeRef:j.dialogRef,appear:!0,timeout:250,children:rt=>jsx$1(DialogTransitionProvider,{value:rt,children:et})})]})})};function useDialogContextValues_unstable(j){const{modalType:_e,open:et,dialogRef:tt,dialogTitleId:rt,isNestedDialog:nt,inertTrapFocus:ot,requestOpenChange:it,modalAttributes:st,triggerAttributes:lt}=j;return{dialog:{open:et,modalType:_e,dialogRef:tt,dialogTitleId:rt,isNestedDialog:nt,inertTrapFocus:ot,modalAttributes:st,triggerAttributes:lt,requestOpenChange:it},dialogSurface:!1}}const Dialog=reactExports.memo(j=>{const _e=useDialog_unstable(j),et=useDialogContextValues_unstable(_e);return renderDialog_unstable(_e,et)});Dialog.displayName="Dialog";const useDialogTrigger_unstable=j=>{const _e=useDialogSurfaceContext_unstable(),{children:et,disableButtonEnhancement:tt=!1,action:rt=_e?"close":"open"}=j,nt=getTriggerChild(et),ot=useDialogContext_unstable(ct=>ct.requestOpenChange),{triggerAttributes:it}=useModalAttributes(),st=useEventCallback$3(ct=>{var dt,ft;nt==null||(dt=(ft=nt.props).onClick)===null||dt===void 0||dt.call(ft,ct),ct.isDefaultPrevented()||ot({event:ct,type:"triggerClick",open:rt==="open"})}),lt={...nt==null?void 0:nt.props,ref:nt==null?void 0:nt.ref,onClick:st,...it},ut=useARIAButtonProps((nt==null?void 0:nt.type)==="button"||(nt==null?void 0:nt.type)==="a"?nt.type:"div",{...lt,type:"button"});return{children:applyTriggerPropsToChildren(et,tt?lt:ut)}},renderDialogTrigger_unstable=j=>j.children,DialogTrigger=j=>{const _e=useDialogTrigger_unstable(j);return renderDialogTrigger_unstable(_e)};DialogTrigger.displayName="DialogTrigger";DialogTrigger.isFluentTriggerComponent=!0;const useDialogSurface_unstable=(j,_e)=>{const et=useDialogContext_unstable(dt=>dt.modalType),tt=useDialogContext_unstable(dt=>dt.isNestedDialog),rt=useDialogTransitionContext_unstable(),nt=useDialogContext_unstable(dt=>dt.modalAttributes),ot=useDialogContext_unstable(dt=>dt.dialogRef),it=useDialogContext_unstable(dt=>dt.requestOpenChange),st=useDialogContext_unstable(dt=>dt.dialogTitleId),lt=useEventCallback$3(dt=>{if(isResolvedShorthand(j.backdrop)){var ft,pt;(ft=(pt=j.backdrop).onClick)===null||ft===void 0||ft.call(pt,dt)}et==="modal"&&!dt.isDefaultPrevented()&&it({event:dt,open:!1,type:"backdropClick"})}),ut=useEventCallback$3(dt=>{var ft;(ft=j.onKeyDown)===null||ft===void 0||ft.call(j,dt),dt.key===Escape&&!dt.isDefaultPrevented()&&(it({event:dt,open:!1,type:"escapeKeyDown"}),dt.preventDefault())}),ct=optional(j.backdrop,{renderByDefault:et!=="non-modal",defaultProps:{"aria-hidden":"true"},elementType:"div"});return ct&&(ct.onClick=lt),{components:{backdrop:"div",root:"div"},backdrop:ct,isNestedDialog:tt,transitionStatus:rt,mountNode:j.mountNode,root:always(getIntrinsicElementProps("div",{tabIndex:-1,"aria-modal":et!=="non-modal",role:et==="alert"?"alertdialog":"dialog","aria-labelledby":j["aria-label"]?void 0:st,...j,...nt,onKeyDown:ut,ref:useMergedRefs$1(_e,ot)}),{elementType:"div"})}},renderDialogSurface_unstable=(j,_e)=>jsxs(Portal$1,{mountNode:j.mountNode,children:[j.backdrop&&jsx$1(j.backdrop,{}),jsx$1(DialogSurfaceProvider,{value:_e.dialogSurface,children:jsx$1(j.root,{})})]}),dialogSurfaceClassNames={root:"fui-DialogSurface",backdrop:"fui-DialogSurface__backdrop"},useRootBaseStyle=__resetStyles("rhhzfde","r1n1tr5u",{r:[".rhhzfde{top:0;right:0;bottom:0;left:0;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px;margin-top:auto;margin-right:auto;margin-bottom:auto;margin-left:auto;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;overflow-x:unset;overflow-y:unset;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-color:var(--colorTransparentStroke);border-right-color:var(--colorTransparentStroke);border-bottom-color:var(--colorTransparentStroke);border-left-color:var(--colorTransparentStroke);border-bottom-right-radius:var(--borderRadiusXLarge);border-bottom-left-radius:var(--borderRadiusXLarge);border-top-right-radius:var(--borderRadiusXLarge);border-top-left-radius:var(--borderRadiusXLarge);display:block;-webkit-user-select:unset;-moz-user-select:unset;-ms-user-select:unset;user-select:unset;visibility:unset;position:fixed;height:fit-content;max-width:600px;max-height:100vh;box-sizing:border-box;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);}",".rhhzfde:focus{outline-style:none;}",".rhhzfde:focus-visible{outline-style:none;}",".rhhzfde[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.rhhzfde[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:2px;border-right-width:2px;border-bottom-width:2px;border-left-width:2px;border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".r1n1tr5u{top:0;left:0;bottom:0;right:0;padding-top:24px;padding-left:24px;padding-bottom:24px;padding-right:24px;margin-top:auto;margin-left:auto;margin-bottom:auto;margin-right:auto;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;overflow-x:unset;overflow-y:unset;border-top-width:1px;border-left-width:1px;border-bottom-width:1px;border-right-width:1px;border-top-color:var(--colorTransparentStroke);border-left-color:var(--colorTransparentStroke);border-bottom-color:var(--colorTransparentStroke);border-right-color:var(--colorTransparentStroke);border-bottom-left-radius:var(--borderRadiusXLarge);border-bottom-right-radius:var(--borderRadiusXLarge);border-top-left-radius:var(--borderRadiusXLarge);border-top-right-radius:var(--borderRadiusXLarge);display:block;-webkit-user-select:unset;-moz-user-select:unset;-ms-user-select:unset;user-select:unset;visibility:unset;position:fixed;height:fit-content;max-width:600px;max-height:100vh;box-sizing:border-box;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);}",".r1n1tr5u:focus{outline-style:none;}",".r1n1tr5u:focus-visible{outline-style:none;}",".r1n1tr5u[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.r1n1tr5u[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:2px;border-left-width:2px;border-bottom-width:2px;border-right-width:2px;border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.rhhzfde[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media screen and (max-width: 480px){.rhhzfde{max-width:100vw;}}","@media (forced-colors: active){.r1n1tr5u[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}","@media screen and (max-width: 480px){.r1n1tr5u{max-width:100vw;}}"]}),useRootStyles=__styles({animated:{abs64n:"fk73vx1",B3o57yi:"fc397y7",Bmy1vo4:"f1b86uth",Bkqvd7p:"f18ad807",E5pizo:"f1yzz98r",Bz10aip:"f15ofi6c"},unmounted:{},entering:{},entered:{E5pizo:"f10nrhrw",Bz10aip:"f186d0ee",abs64n:"f5p0z4x"},idle:{},exiting:{Bkqvd7p:"f1mfizis"},exited:{}},{d:[".fk73vx1{opacity:0;}",".fc397y7{transition-duration:var(--durationGentle);}",".f1b86uth{transition-property:opacity,transform,box-shadow;}",".f18ad807{transition-timing-function:var(--curveDecelerateMid);}",".f1yzz98r{box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.1);}",".f15ofi6c{transform:scale(0.85) translateZ(0);}",".f10nrhrw{box-shadow:var(--shadow64);}",".f186d0ee{transform:scale(1) translateZ(0);}",".f5p0z4x{opacity:1;}",".f1mfizis{transition-timing-function:var(--curveAccelerateMin);}"]}),useBackdropBaseStyle=__resetStyles("raidwwn","r17vltcu",[".raidwwn{top:0px;right:0px;bottom:0px;left:0px;background-color:rgba(0, 0, 0, 0.4);position:fixed;transition-duration:var(--durationGentle);transition-timing-function:var(--curveLinear);transition-property:opacity;will-change:opacity;opacity:0;}",".r17vltcu{top:0px;left:0px;bottom:0px;right:0px;background-color:rgba(0, 0, 0, 0.4);position:fixed;transition-duration:var(--durationGentle);transition-timing-function:var(--curveLinear);transition-property:opacity;will-change:opacity;opacity:0;}"]),useBackdropStyles$1=__styles({nestedDialogBackdrop:{De3pzq:"f1c21dwh"},unmounted:{},entering:{},entered:{abs64n:"f5p0z4x"},idle:{},exiting:{Bkqvd7p:"f1mfizis"},exited:{}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f5p0z4x{opacity:1;}",".f1mfizis{transition-timing-function:var(--curveAccelerateMin);}"]}),useDialogSurfaceStyles_unstable=j=>{const{isNestedDialog:_e,root:et,backdrop:tt,transitionStatus:rt}=j,nt=useRootBaseStyle(),ot=useRootStyles(),it=useBackdropBaseStyle(),st=useBackdropStyles$1();return et.className=mergeClasses(dialogSurfaceClassNames.root,nt,rt&&ot.animated,rt&&ot[rt],et.className),tt&&(tt.className=mergeClasses(dialogSurfaceClassNames.backdrop,it,_e&&st.nestedDialogBackdrop,rt&&st[rt],tt.className)),j};function useDialogSurfaceContextValues_unstable(j){return{dialogSurface:!0}}const DialogSurface=reactExports.forwardRef((j,_e)=>{const et=useDialogSurface_unstable(j,_e),tt=useDialogSurfaceContextValues_unstable();return useDialogSurfaceStyles_unstable(et),useCustomStyleHook("useDialogSurfaceStyles_unstable")(et),renderDialogSurface_unstable(et,tt)});DialogSurface.displayName="DialogSurface";const useCardSelectable=(j,{referenceLabel:_e,referenceId:et},tt)=>{const{checkbox:rt={},onSelectionChange:nt,floatingAction:ot,onClick:it,onKeyDown:st}=j,{findAllFocusable:lt}=useFocusFinders(),ut=reactExports.useRef(null),[ct,dt]=useControllableState({state:j.selected,defaultState:j.defaultSelected,initialState:!1}),ft=[j.selected,j.defaultSelected,nt].some(St=>typeof St<"u"),[pt,gt]=reactExports.useState(!1),vt=reactExports.useCallback(St=>{if(!tt.current)return!1;const $t=lt(tt.current),At=St.target,wt=$t.some(It=>It.contains(At)),Ct=(ut==null?void 0:ut.current)===At;return wt&&!Ct},[tt,lt]),bt=reactExports.useCallback(St=>{if(vt(St))return;const $t=!ct;dt($t),nt&&nt(St,{selected:$t})},[nt,ct,dt,vt]),_t=reactExports.useCallback(St=>{[Enter].includes(St.key)&&(St.preventDefault(),bt(St))},[bt]),xt=reactExports.useMemo(()=>{if(!ft||ot)return;const St={};return et?St["aria-labelledby"]=et:_e&&(St["aria-label"]=_e),optional(rt,{defaultProps:{ref:ut,type:"checkbox",checked:ct,onChange:$t=>bt($t),onFocus:()=>gt(!0),onBlur:()=>gt(!1),...St},elementType:"input"})},[rt,ot,ct,ft,bt,et,_e]),yt=reactExports.useMemo(()=>{if(ot)return optional(ot,{defaultProps:{ref:ut},elementType:"div"})},[ot]),Et=reactExports.useMemo(()=>ft?{onClick:mergeCallbacks(it,bt),onKeyDown:mergeCallbacks(st,_t)}:null,[ft,bt,it,st,_t]);return{selected:ct,selectable:ft,selectFocused:pt,selectableCardProps:Et,checkboxSlot:xt,floatingActionSlot:yt}},cardContext=reactExports.createContext(void 0),cardContextDefaultValue={selectableA11yProps:{referenceId:void 0,setReferenceId(){},referenceLabel:void 0,setReferenceLabel(){}}},CardProvider=cardContext.Provider,useCardContext_unstable=()=>{var j;return(j=reactExports.useContext(cardContext))!==null&&j!==void 0?j:cardContextDefaultValue},focusMap={off:void 0,"no-tab":"limited-trap-focus","tab-exit":"limited","tab-only":"unlimited"},useCardInteractive=({focusMode:j="off",..._e})=>{const et=["onClick","onDoubleClick","onMouseUp","onMouseDown","onPointerUp","onPointerDown","onTouchStart","onTouchEnd","onDragStart","onDragEnd"].some(nt=>_e[nt]),rt={...useFocusableGroup({tabBehavior:focusMap[et?"no-tab":j]}),tabIndex:0};return{interactive:et,focusAttributes:!et&&j==="off"?null:rt}},useCard_unstable=(j,_e)=>{const{appearance:et="filled",orientation:tt="vertical",size:rt="medium"}=j,[nt,ot]=reactExports.useState(cardContextDefaultValue.selectableA11yProps.referenceId),[it,st]=reactExports.useState(cardContextDefaultValue.selectableA11yProps.referenceId),lt=useFocusWithin(),{selectable:ut,selected:ct,selectableCardProps:dt,selectFocused:ft,checkboxSlot:pt,floatingActionSlot:gt}=useCardSelectable(j,{referenceId:nt,referenceLabel:it},lt),vt=useMergedRefs$1(lt,_e),{interactive:bt,focusAttributes:_t}=useCardInteractive(j);return{appearance:et,orientation:tt,size:rt,interactive:bt,selectable:ut,selectFocused:ft,selected:ct,selectableA11yProps:{setReferenceId:ot,referenceId:nt,referenceLabel:it,setReferenceLabel:st},components:{root:"div",floatingAction:"div",checkbox:"input"},root:always(getIntrinsicElementProps("div",{ref:vt,role:"group",..._t,...j,...dt}),{elementType:"div"}),floatingAction:gt,checkbox:pt}},renderCard_unstable=(j,_e)=>jsx$1(j.root,{children:jsxs(CardProvider,{value:_e,children:[j.checkbox?jsx$1(j.checkbox,{}):null,j.floatingAction?jsx$1(j.floatingAction,{}):null,j.root.children]})}),cardHeaderClassNames={root:"fui-CardHeader",image:"fui-CardHeader__image",header:"fui-CardHeader__header",description:"fui-CardHeader__description",action:"fui-CardHeader__action"},useStyles$k=__styles({root:{Bkc6ea2:"fkufhic",mc9l5x:"f13qh94s",t4k1zu:"f8a668j",Bt984gj:"f122n59"},image:{mc9l5x:"ftuwxu6",t21cq0:["fql5097","f6yss9k"],Br312pm:"fwpfdsa",Ijaq50:"fldnz9j"},header:{Br312pm:"fd46tj4",Ijaq50:"f16hsg94",mc9l5x:"f22iagw"},description:{Br312pm:"fd46tj4",Ijaq50:"faunodf",mc9l5x:"f22iagw"},action:{Frg6f3:["f6yss9k","fql5097"],Br312pm:"fis13di",Ijaq50:"fldnz9j"}},{d:[".fkufhic{--fui-CardHeader--gap:12px;}",".f13qh94s{display:grid;}",".f8a668j{grid-auto-columns:min-content 1fr min-content;}",".f122n59{align-items:center;}",".ftuwxu6{display:inline-flex;}",".fql5097{margin-right:var(--fui-CardHeader--gap);}",".f6yss9k{margin-left:var(--fui-CardHeader--gap);}",".fwpfdsa{grid-column-start:1;}",".fldnz9j{grid-row-start:span 2;}",".fd46tj4{grid-column-start:2;}",".f16hsg94{grid-row-start:1;}",".f22iagw{display:flex;}",".faunodf{grid-row-start:2;}",".fis13di{grid-column-start:3;}"]}),useCardHeaderStyles_unstable=j=>{const _e=useStyles$k();return j.root.className=mergeClasses(cardHeaderClassNames.root,_e.root,j.root.className),j.image&&(j.image.className=mergeClasses(cardHeaderClassNames.image,_e.image,j.image.className)),j.header&&(j.header.className=mergeClasses(cardHeaderClassNames.header,_e.header,j.header.className)),j.description&&(j.description.className=mergeClasses(cardHeaderClassNames.description,_e.description,j.description.className)),j.action&&(j.action.className=mergeClasses(cardHeaderClassNames.action,_e.action,j.action.className)),j},cardClassNames={root:"fui-Card",floatingAction:"fui-Card__floatingAction",checkbox:"fui-Card__checkbox"},useStyles$j=__styles({root:{B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",Bbmb7ep:["fifeqxg","f899z7z"],Beyfa6y:["f899z7z","fifeqxg"],B7oj6ja:["f4h3tyx","f18ur2pz"],Btl43ni:["f18ur2pz","f4h3tyx"],z8tnut:"f1lplnzb",z189sj:["f10m5gbb","f1k04kkk"],Byoj8tv:"fhftqfp",uwmqm3:["f1k04kkk","f10m5gbb"],i8kkvl:"fxsr4vj",Belr9w4:"fcvsdzp",mc9l5x:"f22iagw",qhf8xq:"f10pi13n",B7ck84d:"f1ewtqcl",sj55zd:"f19n0e5",E3zdtr:"f1mdlcz9",bn5sak:"frwkxtg",Eqx8gd:["f1n6gb5g","f15yvnhg"],B1piin3:["f15yvnhg","f1n6gb5g"],By385i5:"fo72kxq",Bsft5z2:"f13zj6fq",B80jsxd:"f1nwj1ja",Bm2nyyq:"f8rth92",Barhvk9:["flthirb","ftkbnf5"],Bw17bha:"f1lh990p",vfts7:["ftkbnf5","flthirb"],xrcqlc:"f6czdpx",Ihftqj:["f13hvwk3","f1en4csx"],Bcgy8vk:"f1i1u9k0",Bhxzhr1:["f1en4csx","f13hvwk3"],B3778ie:["f1qnomq5","f2fl922"],d9w3h3:["f2fl922","f1qnomq5"],Bl18szs:["f1anhtl","f1n2zcl3"],B4j8arr:["f1n2zcl3","f1anhtl"],B2jhnfs:"f16v3d5c",wiictr:"f1su8t2g"},focused:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bb7d1vk:"f226i61",zhwhgb:["f13kzufm","fsx75g8"],dhy2o1:"flujwa2",Gfyso:["fsx75g8","f13kzufm"],Bm4h7ae:"f15bsgw9",B7ys5i9:"f14e48fq",Busjfv9:"f18yb2kv",Bhk32uz:"fd6o370",Bf4ptjt:"fh1cnn4",kclons:["fy7oxxb","f184ne2d"],Bhdgwq3:"fpukqih",Blkhhs4:["f184ne2d","fy7oxxb"],Bqtpl0w:"f99gebs",clg4pj:["f13b0oaq","f8t2bz6"],hgwjuy:"f1jvq617",Bonggc9:["f8t2bz6","f13b0oaq"],B1tsrr9:["f11unbnk","fbd201q"],Dah5zi:["fbd201q","f11unbnk"],Bkh64rk:["f12nqxso","f1uguk4w"],qqdqy8:["f1uguk4w","f12nqxso"],B6dhp37:"f1dvezut",i03rao:["fd0oaoj","f1cwg4i8"],Boxcth7:"fjvm52t",Bsom6fd:["f1cwg4i8","fd0oaoj"],J0r882:"f15fr7a0",Bule8hv:["fwsq40z","fy0y4wt"],Bjwuhne:"f34ld9f",Ghsupd:["fy0y4wt","fwsq40z"]},selectableFocused:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",Bssx7fj:"f1b1k54r",uh7if5:["f4ne723","fqqcjud"],clntm0:"fh7aioi",Dlk2r6:["fqqcjud","f4ne723"],Bm3wd5j:"f1k55ka9",Bbrhkcr:["fgclinu","f16pcs8n"],f1oku:"fycbxed",aywvf2:["f16pcs8n","fgclinu"],B2j2mmj:"ffht0p2",wigs8:"f1p0ul1q",pbfy6t:"f1c901ms",B0v4ure:"f1alokd7",ghq09:"f78i1la",B24cy0v:["f1kvsw7t","f1bw8brt"],Bwckmig:"f8k7e5g",Bvwlmkc:["f1bw8brt","f1kvsw7t"],Bbgo44z:"f125hn41",Bil7v7r:["fgxkx34","f1v56tyl"],skfxo0:"fdxas6f",jo1ztg:["f1v56tyl","fgxkx34"],Ba3ybja:["fxwickw","f1ia5cve"],az1dzo:["f1ia5cve","fxwickw"],vppk2z:["f194aguw","fqicc6c"],B6352mv:["fqicc6c","f194aguw"],nr063g:"fq4eyks",Blmvk6g:["f1ya6x16","ftuszwa"],Bsiemmq:"f1e2iu44",B98u21t:["ftuszwa","f1ya6x16"],B2pnrqr:"f1amxum7",B29w5g4:["f1cec8w7","f554mv0"],Bhhzhcn:"f1sj6kbr",Bec0n69:["f554mv0","f1cec8w7"]},orientationHorizontal:{Beiy3e4:"f1063pyq",Bt984gj:"f122n59",Bnoktp0:"fpfyeui",Idhjb2:"fwi74qw",ihgzqh:["ffcmwrh","f6ppoih"],Bgp6ld0:["f1dc9p14","fd933vt"],Bbucpmy:"f18esqgw"},orientationVertical:{Beiy3e4:"f1vx9l62",Bt4kzjz:["fobhde4","fx5r7kn"],B1ou843:["fx5r7kn","fobhde4"],y1433z:"f19chtn8",B7egwnw:"fuvs6re",B49b4xf:"fy4glsf"},sizeSmall:{B7balbw:"f1pi9uxy",B1h88n7:"f1h1zgly"},sizeMedium:{B7balbw:"frsmuga",B1h88n7:"fuldkky"},sizeLarge:{B7balbw:"f1qua4xo",B1h88n7:"fimkt6v"},filled:{De3pzq:"fxugw4r",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},filledInteractive:{Bceei9c:"f1k6fduh",De3pzq:"fxugw4r",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Jwef8y:"f1knas48",Bvxd0ez:"f1m145df",ecr2s2:"fb40n2d"},filledInteractiveSelected:{De3pzq:"f1nfm20t",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"f1kz6goq"},filledAlternative:{De3pzq:"f1dmdbja",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},filledAlternativeInteractive:{Bceei9c:"f1k6fduh",De3pzq:"f1dmdbja",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Jwef8y:"f1uvynv3",Bvxd0ez:"f1m145df",ecr2s2:"f1yhgkbh"},filledAlternativeInteractiveSelected:{De3pzq:"fjxa0vh",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"fehi0vp"},outline:{De3pzq:"f1c21dwh",E5pizo:"f1couhl3",B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"]},outlineInteractive:{Bceei9c:"f1k6fduh",De3pzq:"f1c21dwh",E5pizo:"f1couhl3",B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"],Jwef8y:"fjxutwb",Be0v6ae:"f1llr77y",B5kxglz:["fzk0khw","fjj8tog"],B3pwyw6:"fb1u8ub",Bymgtzf:["fjj8tog","fzk0khw"],ecr2s2:"fophhak",dmfk:"f1uohb70",B4ofi8:["f1jm7v1n","f1bus3rq"],jgq6uv:"f1fbu7rr",Baxewws:["f1bus3rq","f1jm7v1n"]},outlineInteractiveSelected:{De3pzq:"f1q9pm1r",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"fg59vm4"},subtle:{De3pzq:"fhovq9v",E5pizo:"f1couhl3",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},subtleInteractive:{Bceei9c:"f1k6fduh",De3pzq:"fhovq9v",E5pizo:"f1couhl3",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Jwef8y:"f1t94bn6",ecr2s2:"f1wfn5kd"},subtleInteractiveSelected:{De3pzq:"fq5gl1p",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"f1uqaxdt"},highContrastSelected:{ycbfsm:"fkc42ay",Bsw6fvg:"f1rirnrt",Bbusuzp:"f1lkg8j3",xgfqdd:"f1nkj0oa",Bmmdzwq:"fey3rwa",zkpvhj:["f5jhx11","fff9uym"],B20bydw:"fm7n0jy",Bwwwggl:["fff9uym","f5jhx11"]},highContrastInteractive:{h1vhog:"fpfvv3l",kslmdy:"f1oamsm6",Baaf6ca:"f1il21bs",x9zz3d:"fnn5dk0",Bmmdzwq:"fey3rwa",zkpvhj:["f5jhx11","fff9uym"],B20bydw:"fm7n0jy",Bwwwggl:["fff9uym","f5jhx11"]},select:{qhf8xq:"f1euv43f",Bhzewxz:"fqclxi7",j35jbq:["fiv86kb","f36uhnt"],Bj3rh1h:"f19g0ac"},hiddenCheckbox:{B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",a9b677:"frkrog8",Bqenvij:"f1mpe4l3",qhf8xq:"f1euv43f",Bh84pgu:"fmf1zke",Bgl5zvf:"f1wch0ki",Huce71:"fz5stix"}},{d:[".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".fifeqxg{border-bottom-right-radius:var(--fui-Card--border-radius);}",".f899z7z{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f4h3tyx{border-top-right-radius:var(--fui-Card--border-radius);}",".f18ur2pz{border-top-left-radius:var(--fui-Card--border-radius);}",".f1lplnzb{padding-top:var(--fui-Card--size);}",".f10m5gbb{padding-right:var(--fui-Card--size);}",".f1k04kkk{padding-left:var(--fui-Card--size);}",".fhftqfp{padding-bottom:var(--fui-Card--size);}",".fxsr4vj{column-gap:var(--fui-Card--size);}",".fcvsdzp{row-gap:var(--fui-Card--size);}",".f22iagw{display:flex;}",".f10pi13n{position:relative;}",".f1ewtqcl{box-sizing:border-box;}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1mdlcz9::after{position:absolute;}",".frwkxtg::after{top:0;}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",".fo72kxq::after{bottom:0;}",'.f13zj6fq::after{content:"";}',".f1nwj1ja::after{pointer-events:none;}",".f8rth92::after{border-top-style:solid;}",".flthirb::after{border-right-style:solid;}",".ftkbnf5::after{border-left-style:solid;}",".f1lh990p::after{border-bottom-style:solid;}",".f6czdpx::after{border-top-width:var(--strokeWidthThin);}",".f13hvwk3::after{border-right-width:var(--strokeWidthThin);}",".f1en4csx::after{border-left-width:var(--strokeWidthThin);}",".f1i1u9k0::after{border-bottom-width:var(--strokeWidthThin);}",".f1qnomq5::after{border-bottom-right-radius:var(--fui-Card--border-radius);}",".f2fl922::after{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f1anhtl::after{border-top-right-radius:var(--fui-Card--border-radius);}",".f1n2zcl3::after{border-top-left-radius:var(--fui-Card--border-radius);}",".f16v3d5c>.fui-CardHeader,.f16v3d5c>.fui-CardFooter{flex-shrink:0;}",".f1su8t2g>:not(.fui-CardPreview):not(.fui-CardHeader):not(.fui-CardFooter){flex-grow:1;}",".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",'.f15bsgw9[data-fui-focus-visible]::after{content:"";}',".f14e48fq[data-fui-focus-visible]::after{position:absolute;}",".f18yb2kv[data-fui-focus-visible]::after{pointer-events:none;}",".fd6o370[data-fui-focus-visible]::after{z-index:1;}",".fh1cnn4[data-fui-focus-visible]::after{border-top-style:solid;}",".fy7oxxb[data-fui-focus-visible]::after{border-right-style:solid;}",".f184ne2d[data-fui-focus-visible]::after{border-left-style:solid;}",".fpukqih[data-fui-focus-visible]::after{border-bottom-style:solid;}",".f99gebs[data-fui-focus-visible]::after{border-top-width:var(--strokeWidthThick);}",".f13b0oaq[data-fui-focus-visible]::after{border-right-width:var(--strokeWidthThick);}",".f8t2bz6[data-fui-focus-visible]::after{border-left-width:var(--strokeWidthThick);}",".f1jvq617[data-fui-focus-visible]::after{border-bottom-width:var(--strokeWidthThick);}",".f11unbnk[data-fui-focus-visible]::after{border-bottom-right-radius:var(--fui-Card--border-radius);}",".fbd201q[data-fui-focus-visible]::after{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f12nqxso[data-fui-focus-visible]::after{border-top-right-radius:var(--fui-Card--border-radius);}",".f1uguk4w[data-fui-focus-visible]::after{border-top-left-radius:var(--fui-Card--border-radius);}",".f1dvezut[data-fui-focus-visible]::after{border-top-color:var(--colorStrokeFocus2);}",".fd0oaoj[data-fui-focus-visible]::after{border-right-color:var(--colorStrokeFocus2);}",".f1cwg4i8[data-fui-focus-visible]::after{border-left-color:var(--colorStrokeFocus2);}",".fjvm52t[data-fui-focus-visible]::after{border-bottom-color:var(--colorStrokeFocus2);}",".f15fr7a0[data-fui-focus-visible]::after{top:calc(0px - var(--strokeWidthThick) - -2px);}",".fwsq40z[data-fui-focus-visible]::after{right:calc(0px - var(--strokeWidthThick) - -2px);}",".fy0y4wt[data-fui-focus-visible]::after{left:calc(0px - var(--strokeWidthThick) - -2px);}",".f34ld9f[data-fui-focus-visible]::after{bottom:calc(0px - var(--strokeWidthThick) - -2px);}",".f1b1k54r[data-fui-focus-within]:focus-within{border-top-color:transparent;}",".f4ne723[data-fui-focus-within]:focus-within{border-right-color:transparent;}",".fqqcjud[data-fui-focus-within]:focus-within{border-left-color:transparent;}",".fh7aioi[data-fui-focus-within]:focus-within{border-bottom-color:transparent;}",'.ffht0p2[data-fui-focus-within]:focus-within::after{content:"";}',".f1p0ul1q[data-fui-focus-within]:focus-within::after{position:absolute;}",".f1c901ms[data-fui-focus-within]:focus-within::after{pointer-events:none;}",".f1alokd7[data-fui-focus-within]:focus-within::after{z-index:1;}",".f78i1la[data-fui-focus-within]:focus-within::after{border-top-style:solid;}",".f1kvsw7t[data-fui-focus-within]:focus-within::after{border-right-style:solid;}",".f1bw8brt[data-fui-focus-within]:focus-within::after{border-left-style:solid;}",".f8k7e5g[data-fui-focus-within]:focus-within::after{border-bottom-style:solid;}",".f125hn41[data-fui-focus-within]:focus-within::after{border-top-width:var(--strokeWidthThick);}",".fgxkx34[data-fui-focus-within]:focus-within::after{border-right-width:var(--strokeWidthThick);}",".f1v56tyl[data-fui-focus-within]:focus-within::after{border-left-width:var(--strokeWidthThick);}",".fdxas6f[data-fui-focus-within]:focus-within::after{border-bottom-width:var(--strokeWidthThick);}",".fxwickw[data-fui-focus-within]:focus-within::after{border-bottom-right-radius:var(--fui-Card--border-radius);}",".f1ia5cve[data-fui-focus-within]:focus-within::after{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f194aguw[data-fui-focus-within]:focus-within::after{border-top-right-radius:var(--fui-Card--border-radius);}",".fqicc6c[data-fui-focus-within]:focus-within::after{border-top-left-radius:var(--fui-Card--border-radius);}",".fq4eyks[data-fui-focus-within]:focus-within::after{border-top-color:var(--colorStrokeFocus2);}",".f1ya6x16[data-fui-focus-within]:focus-within::after{border-right-color:var(--colorStrokeFocus2);}",".ftuszwa[data-fui-focus-within]:focus-within::after{border-left-color:var(--colorStrokeFocus2);}",".f1e2iu44[data-fui-focus-within]:focus-within::after{border-bottom-color:var(--colorStrokeFocus2);}",".f1amxum7[data-fui-focus-within]:focus-within::after{top:calc(0px - var(--strokeWidthThick) - -2px);}",".f1cec8w7[data-fui-focus-within]:focus-within::after{right:calc(0px - var(--strokeWidthThick) - -2px);}",".f554mv0[data-fui-focus-within]:focus-within::after{left:calc(0px - var(--strokeWidthThick) - -2px);}",".f1sj6kbr[data-fui-focus-within]:focus-within::after{bottom:calc(0px - var(--strokeWidthThick) - -2px);}",".f1063pyq{flex-direction:row;}",".f122n59{align-items:center;}",".fpfyeui>.fui-CardPreview{margin-top:calc(var(--fui-Card--size) * -1);}",".fwi74qw>.fui-CardPreview{margin-bottom:calc(var(--fui-Card--size) * -1);}",'.ffcmwrh>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-left:calc(var(--fui-Card--size) * -1);}','.f6ppoih>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-right:calc(var(--fui-Card--size) * -1);}','.f1dc9p14>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-right:calc(var(--fui-Card--size) * -1);}','.fd933vt>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-left:calc(var(--fui-Card--size) * -1);}',".f18esqgw>.fui-CardHeader:last-of-type,.f18esqgw>.fui-CardFooter:last-of-type{flex-grow:1;}",".f1vx9l62{flex-direction:column;}",".fobhde4>.fui-CardPreview{margin-left:calc(var(--fui-Card--size) * -1);}",".fx5r7kn>.fui-CardPreview{margin-right:calc(var(--fui-Card--size) * -1);}",'.f19chtn8>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-top:calc(var(--fui-Card--size) * -1);}',".fuvs6re>.fui-Card__floatingAction+.fui-CardPreview{margin-top:calc(var(--fui-Card--size) * -1);}",'.fy4glsf>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-bottom:calc(var(--fui-Card--size) * -1);}',".f1pi9uxy{--fui-Card--size:8px;}",".f1h1zgly{--fui-Card--border-radius:var(--borderRadiusSmall);}",".frsmuga{--fui-Card--size:12px;}",".fuldkky{--fui-Card--border-radius:var(--borderRadiusMedium);}",".f1qua4xo{--fui-Card--size:16px;}",".fimkt6v{--fui-Card--border-radius:var(--borderRadiusLarge);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1whvlc6{box-shadow:var(--shadow4);}",".f16gxe2i::after{border-top-color:var(--colorTransparentStroke);}",".fpgykix::after{border-right-color:var(--colorTransparentStroke);}",".fzybk4o::after{border-left-color:var(--colorTransparentStroke);}",".f1osi826::after{border-bottom-color:var(--colorTransparentStroke);}",".f1k6fduh{cursor:pointer;}",".f1nfm20t{background-color:var(--colorNeutralBackground1Selected);}",".f16eln5f::after{border-top-color:var(--colorNeutralStroke1Selected);}",".fa2okxs::after{border-right-color:var(--colorNeutralStroke1Selected);}",".fg4zq3l::after{border-left-color:var(--colorNeutralStroke1Selected);}",".ff6932p::after{border-bottom-color:var(--colorNeutralStroke1Selected);}",".f1dmdbja{background-color:var(--colorNeutralBackground2);}",".fjxa0vh{background-color:var(--colorNeutralBackground2Selected);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1couhl3{box-shadow:none;}",".ft83z1f::after{border-top-color:var(--colorNeutralStroke1);}",".f1g4150c::after{border-right-color:var(--colorNeutralStroke1);}",".f192dr6e::after{border-left-color:var(--colorNeutralStroke1);}",".f1qnawh6::after{border-bottom-color:var(--colorNeutralStroke1);}",".f1q9pm1r{background-color:var(--colorTransparentBackgroundSelected);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fq5gl1p{background-color:var(--colorSubtleBackgroundSelected);}",".f1euv43f{position:absolute;}",".fqclxi7{top:4px;}",".fiv86kb{right:4px;}",".f36uhnt{left:4px;}",".f19g0ac{z-index:1;}",".frkrog8{width:1px;}",".f1mpe4l3{height:1px;}",".fmf1zke{clip:rect(0 0 0 0);}",".f1wch0ki{clip-path:inset(50%);}",".fz5stix{white-space:nowrap;}"],f:[".ftqa4ok:focus{outline-style:none;}"],i:[".f2hkw1w:focus-visible{outline-style:none;}"],m:[["@media (forced-colors: active){.f226i61[data-fui-focus-visible]::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f13kzufm[data-fui-focus-visible]::after{border-right-color:Highlight;}.fsx75g8[data-fui-focus-visible]::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.flujwa2[data-fui-focus-visible]::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1k55ka9[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f16pcs8n[data-fui-focus-within]:focus-within::after{border-left-color:Highlight;}.fgclinu[data-fui-focus-within]:focus-within::after{border-right-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fycbxed[data-fui-focus-within]:focus-within::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1rirnrt{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lkg8j3{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1nkj0oa .fui-CardPreview,.f1nkj0oa .fui-CardFooter{forced-color-adjust:auto;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fey3rwa::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f5jhx11::after{border-right-color:Highlight;}.fff9uym::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fm7n0jy::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fpfvv3l:hover,.fpfvv3l :active{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1oamsm6:hover,.f1oamsm6 :active{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1il21bs:hover,.f1il21bs :active{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fnn5dk0:hover .fui-CardPreview,.fnn5dk0 :active .fui-CardPreview,.fnn5dk0:hover .fui-CardFooter,.fnn5dk0 :active .fui-CardFooter{forced-color-adjust:auto;}}",{m:"(forced-colors: active)"}]],h:[".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}",".f1m145df:hover{box-shadow:var(--shadow8);}",".f1kz6goq:hover{background-color:var(--colorNeutralBackground1Selected);}",".f1uvynv3:hover{background-color:var(--colorNeutralBackground2Hover);}",".fehi0vp:hover{background-color:var(--colorNeutralBackground2Selected);}",".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".f1llr77y:hover::after{border-top-color:var(--colorNeutralStroke1Hover);}",".fzk0khw:hover::after{border-right-color:var(--colorNeutralStroke1Hover);}",".fjj8tog:hover::after{border-left-color:var(--colorNeutralStroke1Hover);}",".fb1u8ub:hover::after{border-bottom-color:var(--colorNeutralStroke1Hover);}",".fg59vm4:hover{background-color:var(--colorTransparentBackgroundSelected);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".f1uqaxdt:hover{background-color:var(--colorSubtleBackgroundSelected);}"],a:[".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}",".f1yhgkbh:active{background-color:var(--colorNeutralBackground2Pressed);}",".fophhak:active{background-color:var(--colorTransparentBackgroundPressed);}",".f1uohb70:active::after{border-top-color:var(--colorNeutralStroke1Pressed);}",".f1jm7v1n:active::after{border-right-color:var(--colorNeutralStroke1Pressed);}",".f1bus3rq:active::after{border-left-color:var(--colorNeutralStroke1Pressed);}",".f1fbu7rr:active::after{border-bottom-color:var(--colorNeutralStroke1Pressed);}",".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}"]}),useCardStyles_unstable=j=>{const _e=useStyles$j(),et={horizontal:_e.orientationHorizontal,vertical:_e.orientationVertical},tt={small:_e.sizeSmall,medium:_e.sizeMedium,large:_e.sizeLarge},rt={filled:_e.filled,"filled-alternative":_e.filledAlternative,outline:_e.outline,subtle:_e.subtle},nt={filled:_e.filledInteractiveSelected,"filled-alternative":_e.filledAlternativeInteractiveSelected,outline:_e.outlineInteractiveSelected,subtle:_e.subtleInteractiveSelected},ot={filled:_e.filledInteractive,"filled-alternative":_e.filledAlternativeInteractive,outline:_e.outlineInteractive,subtle:_e.subtleInteractive},it=j.interactive||j.selectable,st=reactExports.useMemo(()=>j.selectable?j.selectFocused?_e.selectableFocused:"":_e.focused,[j.selectFocused,j.selectable,_e.focused,_e.selectableFocused]);return j.root.className=mergeClasses(cardClassNames.root,_e.root,et[j.orientation],tt[j.size],rt[j.appearance],it&&ot[j.appearance],j.selected&&nt[j.appearance],st,it&&_e.highContrastInteractive,j.selected&&_e.highContrastSelected,j.root.className),j.floatingAction&&(j.floatingAction.className=mergeClasses(cardClassNames.floatingAction,_e.select,j.floatingAction.className)),j.checkbox&&(j.checkbox.className=mergeClasses(cardClassNames.checkbox,_e.hiddenCheckbox,j.checkbox.className)),j};function useCardContextValue({selectableA11yProps:j}){return{selectableA11yProps:j}}const Card=reactExports.forwardRef((j,_e)=>{const et=useCard_unstable(j,_e),tt=useCardContextValue(et);return useCardStyles_unstable(et),renderCard_unstable(et,tt)});Card.displayName="Card";function getChildWithId(j){function _e(et){return reactExports.isValidElement(et)&&!!et.props.id}return reactExports.Children.toArray(j).find(_e)}function getReferenceId(j,_e,et){return j||(_e!=null&&_e.props.id?_e.props.id:et)}const useCardHeader_unstable=(j,_e)=>{const{image:et,header:tt,description:rt,action:nt}=j,{selectableA11yProps:{referenceId:ot,setReferenceId:it}}=useCardContext_unstable(),st=reactExports.useRef(null),lt=reactExports.useRef(!1),ut=useId$1(cardHeaderClassNames.header,ot),ct=optional(tt,{renderByDefault:!0,defaultProps:{ref:st,id:lt.current?void 0:ot},elementType:"div"});return reactExports.useEffect(()=>{var dt;const ft=lt.current||(dt=st.current)===null||dt===void 0?void 0:dt.id,pt=getChildWithId(ct==null?void 0:ct.children);lt.current=!!pt,it(getReferenceId(ft,pt,ut))},[ut,tt,ct,it]),{components:{root:"div",image:"div",header:"div",description:"div",action:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"}),image:optional(et,{elementType:"div"}),header:ct,description:optional(rt,{elementType:"div"}),action:optional(nt,{elementType:"div"})}},renderCardHeader_unstable=j=>jsxs(j.root,{children:[j.image&&jsx$1(j.image,{}),jsx$1(j.header,{}),j.description&&jsx$1(j.description,{}),j.action&&jsx$1(j.action,{})]}),CardHeader=reactExports.forwardRef((j,_e)=>{const et=useCardHeader_unstable(j,_e);return useCardHeaderStyles_unstable(et),renderCardHeader_unstable(et)});CardHeader.displayName="CardHeader";function getIntentIcon(j){switch(j){case"info":return reactExports.createElement(InfoFilled,null);case"warning":return reactExports.createElement(WarningFilled,null);case"error":return reactExports.createElement(ErrorCircleFilled,null);case"success":return reactExports.createElement(CheckmarkCircleFilled,null);default:return null}}function useMessageBarReflow(j=!1){const{targetDocument:_e}=useFluent(),et=reactExports.useReducer(()=>({}),{})[1],tt=reactExports.useRef(!1),rt=reactExports.useRef(null),nt=reactExports.useRef(-1),ot=reactExports.useCallback(st=>{const lt=st[0],ut=lt==null?void 0:lt.borderBoxSize[0];if(!ut||!lt)return;const{inlineSize:ct}=ut,{target:dt}=lt;if(!isHTMLElement$4(dt))return;let ft;if(tt.current)nt.current{var lt;if(!j||!st||!(_e!=null&&_e.defaultView))return;(lt=rt.current)===null||lt===void 0||lt.disconnect();const ut=_e.defaultView,ct=new ut.ResizeObserver(ot);rt.current=ct,ct.observe(st,{box:"border-box"})},[_e,ot,j]);return reactExports.useEffect(()=>()=>{var st;(st=rt.current)===null||st===void 0||st.disconnect()},[]),{ref:it,reflowing:tt.current}}const messageBarTransitionContext=reactExports.createContext(void 0),messageBarTransitionContextDefaultValue={className:"",nodeRef:reactExports.createRef()};messageBarTransitionContext.Provider;const useMessageBarTransitionContext=()=>{var j;return(j=reactExports.useContext(messageBarTransitionContext))!==null&&j!==void 0?j:messageBarTransitionContextDefaultValue},useMessageBar_unstable=(j,_e)=>{const{layout:et="auto",intent:tt="info",politeness:rt,shape:nt="rounded"}=j,ot=rt??tt==="info"?"polite":"assertive",it=et==="auto",{ref:st,reflowing:lt}=useMessageBarReflow(it),ut=it?lt?"multiline":"singleline":et,{className:ct,nodeRef:dt}=useMessageBarTransitionContext(),ft=reactExports.useRef(null),pt=reactExports.useRef(null),{announce:gt}=useAnnounce(),vt=useId$1();return reactExports.useEffect(()=>{var bt,_t;const xt=(bt=pt.current)===null||bt===void 0?void 0:bt.textContent,yt=(_t=ft.current)===null||_t===void 0?void 0:_t.textContent,Et=[xt,yt].filter(Boolean).join(",");gt(Et,{polite:ot==="polite",alert:ot==="assertive"})},[pt,ft,gt,ot]),{components:{root:"div",icon:"div"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,st,dt),role:"group","aria-labelledby":vt,...j}),{elementType:"div"}),icon:optional(j.icon,{renderByDefault:!0,elementType:"div",defaultProps:{children:getIntentIcon(tt)}}),layout:ut,intent:tt,transitionClassName:ct,actionsRef:ft,bodyRef:pt,titleId:vt,shape:nt}},messageBarContext=reactExports.createContext(void 0),messageBarContextDefaultValue={titleId:"",layout:"singleline",actionsRef:reactExports.createRef(),bodyRef:reactExports.createRef()},MessageBarContextProvider=messageBarContext.Provider,useMessageBarContext=()=>{var j;return(j=reactExports.useContext(messageBarContext))!==null&&j!==void 0?j:messageBarContextDefaultValue},renderMessageBar_unstable=(j,_e)=>jsx$1(MessageBarContextProvider,{value:_e.messageBar,children:jsxs(j.root,{children:[j.icon&&jsx$1(j.icon,{}),j.root.children]})}),messageBarClassNames={root:"fui-MessageBar",icon:"fui-MessageBar__icon"},useRootBaseStyles$2=__resetStyles("rashqx","ri1c0vc",['.rashqx{white-space:nowrap;display:grid;grid-template-columns:auto 1fr auto auto;grid-template-rows:1fr;grid-template-areas:"icon body secondaryActions actions";padding-left:var(--spacingHorizontalM);border-top-width:var(--strokeWidthThin);border-right-width:var(--strokeWidthThin);border-bottom-width:var(--strokeWidthThin);border-left-width:var(--strokeWidthThin);border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:var(--colorNeutralStroke1);border-right-color:var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStroke1);border-left-color:var(--colorNeutralStroke1);border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);align-items:center;min-height:36px;box-sizing:border-box;background-color:var(--colorNeutralBackground3);}','.ri1c0vc{white-space:nowrap;display:grid;grid-template-columns:auto 1fr auto auto;grid-template-rows:1fr;grid-template-areas:"icon body secondaryActions actions";padding-right:var(--spacingHorizontalM);border-top-width:var(--strokeWidthThin);border-left-width:var(--strokeWidthThin);border-bottom-width:var(--strokeWidthThin);border-right-width:var(--strokeWidthThin);border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-color:var(--colorNeutralStroke1);border-left-color:var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStroke1);border-right-color:var(--colorNeutralStroke1);border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);align-items:center;min-height:36px;box-sizing:border-box;background-color:var(--colorNeutralBackground3);}']),useIconBaseStyles=__resetStyles("r1bxgyar","rv8i6h8",[".r1bxgyar{grid-row-start:icon;grid-column-start:icon;grid-row-end:icon;grid-column-end:icon;font-size:var(--fontSizeBase500);margin-right:var(--spacingHorizontalS);color:var(--colorNeutralForeground3);display:flex;align-items:center;}",".rv8i6h8{grid-row-start:icon;grid-column-start:icon;grid-row-end:icon;grid-column-end:icon;font-size:var(--fontSizeBase500);margin-left:var(--spacingHorizontalS);color:var(--colorNeutralForeground3);display:flex;align-items:center;}"]),useStyles$i=__styles({rootMultiline:{Huce71:"f6juhto",Bt984gj:"f1s2louj",z8tnut:"f1ngh7ph",Budl1dq:"f17g0uqy",zoa1oz:"f1w7oly7"},secondaryActionsMultiline:{Brf1p80:"f1e8xxv9",B6of3ja:"f1gaxbfw",jrapky:"fqcjy3b",t21cq0:["fibjyge","f9yszdx"]},square:{Bbmb7ep:["f1krrbdw","f1deotkl"],Beyfa6y:["f1deotkl","f1krrbdw"],B7oj6ja:["f10ostut","f1ozlkrg"],Btl43ni:["f1ozlkrg","f10ostut"]}},{d:[".f6juhto{white-space:normal;}",".f1s2louj{align-items:start;}",".f1ngh7ph{padding-top:var(--spacingVerticalMNudge);}",".f17g0uqy{grid-template-columns:auto 1fr auto;}",'.f1w7oly7{grid-template-areas:"icon body actions" "secondaryActions secondaryActions secondaryActions";}',".f1e8xxv9{justify-content:end;}",".f1gaxbfw{margin-top:var(--spacingVerticalMNudge);}",".fqcjy3b{margin-bottom:var(--spacingVerticalS);}",".fibjyge{margin-right:0px;}",".f9yszdx{margin-left:0px;}",".f1krrbdw{border-bottom-right-radius:0;}",".f1deotkl{border-bottom-left-radius:0;}",".f10ostut{border-top-right-radius:0;}",".f1ozlkrg{border-top-left-radius:0;}"]}),useIconIntentStyles=__styles({info:{},error:{sj55zd:"f1ca9wz"},warning:{sj55zd:"f14a4cve"},success:{sj55zd:"f36rra6"}},{d:[".f1ca9wz{color:var(--colorStatusDangerForeground1);}",".f14a4cve{color:var(--colorStatusWarningForeground3);}",".f36rra6{color:var(--colorStatusSuccessForeground1);}"]}),useRootIntentStyles=__styles({info:{},error:{De3pzq:"f1eon7jj",g2u3we:"f1f8dvr7",h3c5rm:["f1g1ijmo","f1nxacbt"],B9xav0g:"fo25q1j",zhjwy3:["f1nxacbt","f1g1ijmo"]},warning:{De3pzq:"f13ftzij",g2u3we:"frd1ypx",h3c5rm:["f1gyjrma","f18qd5xz"],B9xav0g:"fqyqtrt",zhjwy3:["f18qd5xz","f1gyjrma"]},success:{De3pzq:"f64thcm",g2u3we:"f1b4u7v",h3c5rm:["f1nyd2b1","f70v3om"],B9xav0g:"fk173vo",zhjwy3:["f70v3om","f1nyd2b1"]}},{d:[".f1eon7jj{background-color:var(--colorStatusDangerBackground1);}",".f1f8dvr7{border-top-color:var(--colorStatusDangerBorder1);}",".f1g1ijmo{border-right-color:var(--colorStatusDangerBorder1);}",".f1nxacbt{border-left-color:var(--colorStatusDangerBorder1);}",".fo25q1j{border-bottom-color:var(--colorStatusDangerBorder1);}",".f13ftzij{background-color:var(--colorStatusWarningBackground1);}",".frd1ypx{border-top-color:var(--colorStatusWarningBorder1);}",".f1gyjrma{border-right-color:var(--colorStatusWarningBorder1);}",".f18qd5xz{border-left-color:var(--colorStatusWarningBorder1);}",".fqyqtrt{border-bottom-color:var(--colorStatusWarningBorder1);}",".f64thcm{background-color:var(--colorStatusSuccessBackground1);}",".f1b4u7v{border-top-color:var(--colorStatusSuccessBorder1);}",".f1nyd2b1{border-right-color:var(--colorStatusSuccessBorder1);}",".f70v3om{border-left-color:var(--colorStatusSuccessBorder1);}",".fk173vo{border-bottom-color:var(--colorStatusSuccessBorder1);}"]}),useMessageBarStyles_unstable=j=>{const _e=useRootBaseStyles$2(),et=useIconBaseStyles(),tt=useIconIntentStyles(),rt=useRootIntentStyles(),nt=useStyles$i();return j.root.className=mergeClasses(messageBarClassNames.root,_e,j.layout==="multiline"&&nt.rootMultiline,j.shape==="square"&&nt.square,rt[j.intent],j.transitionClassName,j.root.className),j.icon&&(j.icon.className=mergeClasses(messageBarClassNames.icon,et,tt[j.intent],j.icon.className)),j};function useMessageBarContextValue_unstable(j){const{layout:_e,actionsRef:et,bodyRef:tt,titleId:rt}=j;return{messageBar:reactExports.useMemo(()=>({layout:_e,actionsRef:et,bodyRef:tt,titleId:rt}),[_e,et,tt,rt])}}const MessageBar=reactExports.forwardRef((j,_e)=>{const et=useMessageBar_unstable(j,_e);return useMessageBarStyles_unstable(et),useCustomStyleHook("useMessageBarStyles_unstable")(et),renderMessageBar_unstable(et,useMessageBarContextValue_unstable(et))});MessageBar.displayName="MessageBar";const useMessageBarTitle_unstable=(j,_e)=>{const{titleId:et}=useMessageBarContext();return{components:{root:"span"},root:always(getIntrinsicElementProps("span",{ref:_e,id:et,...j}),{elementType:"span"})}},renderMessageBarTitle_unstable=j=>jsx$1(j.root,{}),messageBarTitleClassNames={root:"fui-MessageBarTitle"},useRootBaseStyles$1=__resetStyles("r168xkm9",null,[".r168xkm9{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase300);}",'.r168xkm9::after{content:" ";}']),useMessageBarTitleStyles_unstable=j=>{const _e=useRootBaseStyles$1();return j.root.className=mergeClasses(messageBarTitleClassNames.root,_e,j.root.className),j},MessageBarTitle=reactExports.forwardRef((j,_e)=>{const et=useMessageBarTitle_unstable(j,_e);return useMessageBarTitleStyles_unstable(et),useCustomStyleHook("useMessageBarTitleStyles_unstable")(et),renderMessageBarTitle_unstable(et)});MessageBarTitle.displayName="MessageBarTitle";const useMessageBarBody_unstable=(j,_e)=>{const{bodyRef:et}=useMessageBarContext();return{components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,et),...j}),{elementType:"div"})}},renderMessageBarBody_unstable=j=>jsx$1(j.root,{}),messageBarBodyClassNames={root:"fui-MessageBarBody"},useRootBaseStyles=__resetStyles("rnv3mfe","r1ixc1x8",[".rnv3mfe{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);grid-row-start:body;grid-column-start:body;grid-row-end:body;grid-column-end:body;padding-right:var(--spacingHorizontalM);}",".r1ixc1x8{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);grid-row-start:body;grid-column-start:body;grid-row-end:body;grid-column-end:body;padding-left:var(--spacingHorizontalM);}"]),useMessageBarBodyStyles_unstable=j=>{const _e=useRootBaseStyles();return j.root.className=mergeClasses(messageBarBodyClassNames.root,_e,j.root.className),j},MessageBarBody=reactExports.forwardRef((j,_e)=>{const et=useMessageBarBody_unstable(j,_e);return useMessageBarBodyStyles_unstable(et),useCustomStyleHook("useMessageBarBodyStyles_unstable")(et),renderMessageBarBody_unstable(et)});MessageBarBody.displayName="MessageBarBody";const useReducedMotion=()=>{var j;const _e=useFluent(),et=reactExports.useRef(!1),tt=canUseDOM$3()&&((j=_e.targetDocument)===null||j===void 0?void 0:j.defaultView),rt=reactExports.useCallback(nt=>{et.current=nt.matches},[]);return useIsomorphicLayoutEffect$1(()=>{if(!tt||!tt.matchMedia)return;const nt=tt.matchMedia("screen and (prefers-reduced-motion: reduce)");return nt.matches&&(et.current=!0),nt.addEventListener("change",rt),()=>nt.removeEventListener("change",rt)},[rt,tt]),et.current},getCSSStyle=j=>hasCSSOMSupport(j)?j.computedStyleMap():getElementComputedStyle(j),hasCSSOMSupport=j=>!!(typeof CSS<"u"&&CSS.number&&j.computedStyleMap),getElementComputedStyle=j=>{var _e,et;const tt=canUseDOM$3()&&((et=(_e=j.ownerDocument)===null||_e===void 0?void 0:_e.defaultView)!==null&&et!==void 0?et:window);return tt?tt.getComputedStyle(j,null):{getPropertyValue:rt=>""}};function toMs(j){const _e=j.trim();if(_e.includes("auto"))return 0;if(_e.endsWith("ms")){const et=Number(_e.replace("ms",""));return isNaN(et)?0:et}return Number(_e.slice(0,-1).replace(",","."))*1e3}const getComputedMapProp=(j,_e)=>{const et=j.getAll(_e);return et.length>0?et.map(({value:tt,unit:rt})=>`${tt}${rt}`):["0"]},getComputedStyleProp=(j,_e)=>{const et=j.getPropertyValue(_e);return et?et.split(","):["0"]},getMaxCSSDuration=(j,_e)=>{const et=Math.max(j.length,_e.length),tt=[];if(et===0)return 0;for(let rt=0;rt{const _e=hasCSSOMSupport(j),et=getCSSStyle(j),tt=ot=>_e?getComputedMapProp(et,ot):getComputedStyleProp(et,ot),rt=getMaxCSSDuration(tt("transition-duration"),tt("transition-delay")),nt=getMaxCSSDuration(tt("animation-duration"),tt("animation-delay"));return Math.max(rt,nt)},useFirstMountCondition=j=>{const _e=reactExports.useRef(!0);return _e.current&&j?(_e.current=!1,!0):_e.current};function useMotionPresence(j,_e={}){const{animateOnFirstMount:et,duration:tt}={animateOnFirstMount:!1,..._e},[rt,nt]=reactExports.useState(j&&et?"entering":j?"idle":"unmounted"),[ot,it]=reactExports.useState(!et&&j),[st,lt]=useTimeout(),[ut,ct]=useTimeout(),[dt,ft]=useAnimationFrame(),[pt,gt]=reactExports.useState(null),vt=useReducedMotion(),bt=useFirstMount(),_t=useFirstMountCondition(!!pt),xt=reactExports.useRef(j).current,yt=vt||_t&&xt&&!et,Et=reactExports.useCallback(At=>{At&>(At)},[]),St=reactExports.useCallback(At=>(ut(()=>dt(At),0),()=>{ct(),ft()}),[ft,ct,dt,ut]),$t=reactExports.useCallback(()=>{nt(j?"entered":"exited"),St(()=>nt(j?"idle":"unmounted"))},[St,j]);return reactExports.useEffect(()=>{if(!bt){if(yt){nt(j?"idle":"unmounted"),it(j);return}if(nt(j?"entering":"exiting"),!!pt)return St(()=>{it(j),St(()=>{const At=tt||getMotionDuration(pt);if(At===0){$t();return}st(()=>$t(),At)})}),()=>lt()}},[pt,yt,$t,j]),reactExports.useMemo(()=>({ref:Et,type:rt,active:ot,canRender:j||rt!=="unmounted"}),[ot,rt,j])}function useMotion(j,_e){const et=typeof j=="object",tt=useMotionPresence(et?!1:j,_e);return et?j:tt}const useReducedMotionStyles=__styles({reduced:{Hwfdqs:"f1bggi9a"}},{m:[["@media screen and (prefers-reduced-motion: reduce){.f1bggi9a{transition-duration:0.01ms!important;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]});function assertMotionStyles(j){}const useMotionClassNames=(j,_e)=>{const{reduced:et}=useReducedMotionStyles(),tt=reactExports.useMemo(()=>!_e.enter&&!_e.exit?"":j.active||j.type==="idle"?_e.enter:j.active?"":_e.exit,[j.active,j.type,_e.enter,_e.exit]);return reactExports.useEffect(()=>void 0,[_e]),mergeClasses(_e.default,tt,_e[j.type],et)};function useDrawerDefaultProps(j){const{open:_e=!1,size:et="small",position:tt="start"}=j;return{size:et,position:tt,open:_e}}const useBackdropResetStyles=__resetStyles("rivxbo","r1trjn1z",[".rivxbo{top:0px;right:0px;bottom:0px;left:0px;position:fixed;background-color:rgba(0, 0, 0, 0.4);}",".r1trjn1z{top:0px;left:0px;bottom:0px;right:0px;position:fixed;background-color:rgba(0, 0, 0, 0.4);}"]),useBackdropStyles=__styles({nested:{De3pzq:"f1c21dwh"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}"]}),useOverlayDrawerSurfaceStyles_unstable=j=>{const _e=useBackdropResetStyles(),et=useBackdropStyles();return j.backdrop&&(j.backdrop.className=mergeClasses(_e,j.isNestedDialog&&et.nested,j.backdrop.className)),j},OverlayDrawerSurface=reactExports.forwardRef((j,_e)=>{const et=useDialogSurface_unstable(j,_e),tt=useDialogSurfaceContextValues_unstable();return useOverlayDrawerSurfaceStyles_unstable(et),renderDialogSurface_unstable(et,tt)});OverlayDrawerSurface.displayName="OverlayDrawerSurface";const useOverlayDrawer_unstable=(j,_e)=>{const{open:et,size:tt,position:rt}=useDrawerDefaultProps(j),{modalType:nt="modal",inertTrapFocus:ot,defaultOpen:it=!1,onOpenChange:st}=j,lt=useMotion(et),ut=resolveShorthand(j.backdrop),dt=always({...j,backdrop:nt!=="non-modal"&&ut!==null?{...ut}:null},{elementType:OverlayDrawerSurface,defaultProps:{ref:useMergedRefs$1(_e,lt.ref)}}),ft=always({open:!0,defaultOpen:it,onOpenChange:st,inertTrapFocus:ot,modalType:nt,children:null},{elementType:Dialog});return{components:{root:OverlayDrawerSurface,dialog:Dialog},root:dt,dialog:ft,size:tt,position:rt,motion:lt}},renderOverlayDrawer_unstable=j=>j.motion.canRender?jsx$1(j.dialog,{children:jsx$1(j.root,{})}):null,useDrawerStyles=__styles({entering:{Bkqvd7p:"f18ad807"},exiting:{Bkqvd7p:"f1mfizis"},reducedMotion:{Hwfdqs:"f5e8c63"},start:{Bekrc4i:["f5tn483","f1ojsxk5"],vrafjx:["fcdblym","fjik90z"],h3c5rm:["f1gn591s","fjscplz"],oyh7mz:["f1vgc2s3","f1e31b4d"],j35jbq:["fvfyk4","frppm18"]},end:{ibv6hh:["f1ojsxk5","f5tn483"],wvpqe5:["fjik90z","fcdblym"],zhjwy3:["fjscplz","f1gn591s"],j35jbq:["f1e31b4d","f1vgc2s3"],oyh7mz:["frppm18","fvfyk4"]},small:{Bjr0ffy:"f1exhnwo"},medium:{Bjr0ffy:"fqofjzu"},large:{Bjr0ffy:"fce6y3m"},full:{Bjr0ffy:"fsdmzs6"}},{d:[".f18ad807{transition-timing-function:var(--curveDecelerateMid);}",".f1mfizis{transition-timing-function:var(--curveAccelerateMin);}",".f5tn483{border-right-width:var(--strokeWidthThin);}",".f1ojsxk5{border-left-width:var(--strokeWidthThin);}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".f1vgc2s3{left:0;}",".f1e31b4d{right:0;}",".fvfyk4{right:auto;}",".frppm18{left:auto;}",".f1exhnwo{--fui-Drawer--size:320px;}",".fqofjzu{--fui-Drawer--size:592px;}",".fce6y3m{--fui-Drawer--size:940px;}",".fsdmzs6{--fui-Drawer--size:100vw;}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f5e8c63{transition-duration:0.001ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]}),useDrawerDurationStyles=__styles({small:{B3o57yi:"fc397y7"},medium:{B3o57yi:"f78771"},large:{B3o57yi:"f9ymmep"},full:{B3o57yi:"f1loko9l"}},{d:[".fc397y7{transition-duration:var(--durationGentle);}",".f78771{transition-duration:var(--durationSlow);}",".f9ymmep{transition-duration:var(--durationSlower);}",".f1loko9l{transition-duration:var(--durationUltraSlow);}"]}),useDrawerBaseClassNames=({position:j,size:_e,motion:et})=>{const tt=useDrawerStyles(),rt=useDrawerDurationStyles();return mergeClasses(tt[j],rt[_e],tt[_e],tt.reducedMotion,et.type==="entering"&&tt.entering,et.type==="exiting"&&tt.exiting)},overlayDrawerClassNames={root:"fui-OverlayDrawer",backdrop:"fui-OverlayDrawer__backdrop"},useDrawerResetStyles=__resetStyles("r1vxc6jp","r1uky7bi",{r:[".r1vxc6jp{overflow-x:hidden;overflow-y:hidden;width:var(--fui-Drawer--size);max-width:100vw;height:auto;max-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);position:fixed;top:0;bottom:0;}",".r1vxc6jp:focus{outline-style:none;}",".r1vxc6jp:focus-visible{outline-style:none;}",".r1vxc6jp[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.r1vxc6jp[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:2px;border-right-width:2px;border-bottom-width:2px;border-left-width:2px;border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".r1uky7bi{overflow-x:hidden;overflow-y:hidden;width:var(--fui-Drawer--size);max-width:100vw;height:auto;max-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);position:fixed;top:0;bottom:0;}",".r1uky7bi:focus{outline-style:none;}",".r1uky7bi:focus-visible{outline-style:none;}",".r1uky7bi[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.r1uky7bi[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:2px;border-left-width:2px;border-bottom-width:2px;border-right-width:2px;border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.r1vxc6jp[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media (forced-colors: active){.r1uky7bi[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}"]}),useDrawerRootStyles=__styles({start:{Bz10aip:"f1d8gkik"},end:{Bz10aip:"f1g0pcr8"}},{d:[".f1d8gkik{transform:translate3D(calc(var(--fui-Drawer--size) * -1), 0, 0);}",".f1g0pcr8{transform:translate3D(calc(var(--fui-Drawer--size) * 1), 0, 0);}"]}),useDrawerMotionStyles=__styles({default:{abs64n:"fk73vx1",E5pizo:"ff88big",Bmy1vo4:"f1neo61",Es3by:"f1ytgekk"},enter:{abs64n:"f5p0z4x",Bz10aip:"f87uvqx",E5pizo:"f10nrhrw"}},{d:[".fk73vx1{opacity:0;}",".ff88big{box-shadow:0px var(--colorTransparentBackground);}",".f1neo61{transition-property:transform,box-shadow,opacity;}",".f1ytgekk{will-change:transform,box-shadow,opacity;}",".f5p0z4x{opacity:1;}",".f87uvqx{transform:translate3D(0, 0, 0);}",".f10nrhrw{box-shadow:var(--shadow64);}"]}),useBackdropMotionStyles=__styles({default:{abs64n:"fk73vx1",Bmy1vo4:"f13u1uyl",Bkqvd7p:"f17wnm97",Es3by:"f1gqqdtu"},enter:{abs64n:"f5p0z4x"}},{d:[".fk73vx1{opacity:0;}",".f13u1uyl{transition-property:opacity;}",".f17wnm97{transition-timing-function:var(--curveEasyEase);}",".f1gqqdtu{will-change:opacity;}",".f5p0z4x{opacity:1;}"]}),useOverlayDrawerStyles_unstable=j=>{const _e=useDrawerBaseClassNames(j),et=useDrawerResetStyles(),tt=useDrawerRootStyles(),rt=useDrawerDurationStyles(),nt=useMotionClassNames(j.motion,useDrawerMotionStyles()),ot=useMotionClassNames(j.motion,useBackdropMotionStyles()),it=j.root.backdrop;return j.root.className=mergeClasses(overlayDrawerClassNames.root,_e,et,tt[j.position],nt,j.root.className),it&&(it.className=mergeClasses(overlayDrawerClassNames.backdrop,ot,rt[j.size],it.className)),j},OverlayDrawer=reactExports.forwardRef((j,_e)=>{const et=useOverlayDrawer_unstable(j,_e);return useOverlayDrawerStyles_unstable(et),useCustomStyleHook("useDrawerOverlayStyles_unstable")(et),useCustomStyleHook("useOverlayDrawerStyles_unstable")(et),renderOverlayDrawer_unstable(et)});OverlayDrawer.displayName="OverlayDrawer";var axios$1={exports:{}},bind$6=function(_e,et){return function(){for(var rt=new Array(arguments.length),nt=0;nt"u"}function isBuffer$4(j){return j!==null&&!isUndefined(j)&&j.constructor!==null&&!isUndefined(j.constructor)&&typeof j.constructor.isBuffer=="function"&&j.constructor.isBuffer(j)}function isArrayBuffer(j){return toString$j.call(j)==="[object ArrayBuffer]"}function isFormData(j){return typeof FormData<"u"&&j instanceof FormData}function isArrayBufferView(j){var _e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?_e=ArrayBuffer.isView(j):_e=j&&j.buffer&&j.buffer instanceof ArrayBuffer,_e}function isString$2(j){return typeof j=="string"}function isNumber$5(j){return typeof j=="number"}function isObject$z(j){return j!==null&&typeof j=="object"}function isPlainObject$3(j){if(toString$j.call(j)!=="[object Object]")return!1;var _e=Object.getPrototypeOf(j);return _e===null||_e===Object.prototype}function isDate(j){return toString$j.call(j)==="[object Date]"}function isFile(j){return toString$j.call(j)==="[object File]"}function isBlob(j){return toString$j.call(j)==="[object Blob]"}function isFunction$7(j){return toString$j.call(j)==="[object Function]"}function isStream(j){return isObject$z(j)&&isFunction$7(j.pipe)}function isURLSearchParams(j){return typeof URLSearchParams<"u"&&j instanceof URLSearchParams}function trim$1(j){return j.trim?j.trim():j.replace(/^\s+|\s+$/g,"")}function isStandardBrowserEnv(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function forEach$5(j,_e){if(!(j===null||typeof j>"u"))if(typeof j!="object"&&(j=[j]),isArray$v(j))for(var et=0,tt=j.length;et"u"||(utils$8.isArray(st)?lt=lt+"[]":st=[st],utils$8.forEach(st,function(ct){utils$8.isDate(ct)?ct=ct.toISOString():utils$8.isObject(ct)&&(ct=JSON.stringify(ct)),nt.push(encode$1(lt)+"="+encode$1(ct))}))}),rt=nt.join("&")}if(rt){var ot=_e.indexOf("#");ot!==-1&&(_e=_e.slice(0,ot)),_e+=(_e.indexOf("?")===-1?"?":"&")+rt}return _e},utils$7=utils$9;function InterceptorManager$1(){this.handlers=[]}InterceptorManager$1.prototype.use=function(_e,et,tt){return this.handlers.push({fulfilled:_e,rejected:et,synchronous:tt?tt.synchronous:!1,runWhen:tt?tt.runWhen:null}),this.handlers.length-1};InterceptorManager$1.prototype.eject=function(_e){this.handlers[_e]&&(this.handlers[_e]=null)};InterceptorManager$1.prototype.forEach=function(_e){utils$7.forEach(this.handlers,function(tt){tt!==null&&_e(tt)})};var InterceptorManager_1=InterceptorManager$1,utils$6=utils$9,normalizeHeaderName$1=function(_e,et){utils$6.forEach(_e,function(rt,nt){nt!==et&&nt.toUpperCase()===et.toUpperCase()&&(_e[et]=rt,delete _e[nt])})},enhanceError$1=function(_e,et,tt,rt,nt){return _e.config=et,tt&&(_e.code=tt),_e.request=rt,_e.response=nt,_e.isAxiosError=!0,_e.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:this.config,code:this.code}},_e},createError,hasRequiredCreateError;function requireCreateError(){if(hasRequiredCreateError)return createError;hasRequiredCreateError=1;var j=enhanceError$1;return createError=function(et,tt,rt,nt,ot){var it=new Error(et);return j(it,tt,rt,nt,ot)},createError}var settle,hasRequiredSettle;function requireSettle(){if(hasRequiredSettle)return settle;hasRequiredSettle=1;var j=requireCreateError();return settle=function(et,tt,rt){var nt=rt.config.validateStatus;!rt.status||!nt||nt(rt.status)?et(rt):tt(j("Request failed with status code "+rt.status,rt.config,null,rt.request,rt))},settle}var cookies,hasRequiredCookies;function requireCookies(){if(hasRequiredCookies)return cookies;hasRequiredCookies=1;var j=utils$9;return cookies=j.isStandardBrowserEnv()?function(){return{write:function(tt,rt,nt,ot,it,st){var lt=[];lt.push(tt+"="+encodeURIComponent(rt)),j.isNumber(nt)&<.push("expires="+new Date(nt).toGMTString()),j.isString(ot)&<.push("path="+ot),j.isString(it)&<.push("domain="+it),st===!0&<.push("secure"),document.cookie=lt.join("; ")},read:function(tt){var rt=document.cookie.match(new RegExp("(^|;\\s*)("+tt+")=([^;]*)"));return rt?decodeURIComponent(rt[3]):null},remove:function(tt){this.write(tt,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}(),cookies}var isAbsoluteURL,hasRequiredIsAbsoluteURL;function requireIsAbsoluteURL(){return hasRequiredIsAbsoluteURL||(hasRequiredIsAbsoluteURL=1,isAbsoluteURL=function(_e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(_e)}),isAbsoluteURL}var combineURLs,hasRequiredCombineURLs;function requireCombineURLs(){return hasRequiredCombineURLs||(hasRequiredCombineURLs=1,combineURLs=function(_e,et){return et?_e.replace(/\/+$/,"")+"/"+et.replace(/^\/+/,""):_e}),combineURLs}var buildFullPath,hasRequiredBuildFullPath;function requireBuildFullPath(){if(hasRequiredBuildFullPath)return buildFullPath;hasRequiredBuildFullPath=1;var j=requireIsAbsoluteURL(),_e=requireCombineURLs();return buildFullPath=function(tt,rt){return tt&&!j(rt)?_e(tt,rt):rt},buildFullPath}var parseHeaders,hasRequiredParseHeaders;function requireParseHeaders(){if(hasRequiredParseHeaders)return parseHeaders;hasRequiredParseHeaders=1;var j=utils$9,_e=["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"];return parseHeaders=function(tt){var rt={},nt,ot,it;return tt&&j.forEach(tt.split(` -`),function(lt){if(it=lt.indexOf(":"),nt=j.trim(lt.substr(0,it)).toLowerCase(),ot=j.trim(lt.substr(it+1)),nt){if(rt[nt]&&_e.indexOf(nt)>=0)return;nt==="set-cookie"?rt[nt]=(rt[nt]?rt[nt]:[]).concat([ot]):rt[nt]=rt[nt]?rt[nt]+", "+ot:ot}}),rt},parseHeaders}var isURLSameOrigin,hasRequiredIsURLSameOrigin;function requireIsURLSameOrigin(){if(hasRequiredIsURLSameOrigin)return isURLSameOrigin;hasRequiredIsURLSameOrigin=1;var j=utils$9;return isURLSameOrigin=j.isStandardBrowserEnv()?function(){var et=/(msie|trident)/i.test(navigator.userAgent),tt=document.createElement("a"),rt;function nt(ot){var it=ot;return et&&(tt.setAttribute("href",it),it=tt.href),tt.setAttribute("href",it),{href:tt.href,protocol:tt.protocol?tt.protocol.replace(/:$/,""):"",host:tt.host,search:tt.search?tt.search.replace(/^\?/,""):"",hash:tt.hash?tt.hash.replace(/^#/,""):"",hostname:tt.hostname,port:tt.port,pathname:tt.pathname.charAt(0)==="/"?tt.pathname:"/"+tt.pathname}}return rt=nt(window.location.href),function(it){var st=j.isString(it)?nt(it):it;return st.protocol===rt.protocol&&st.host===rt.host}}():function(){return function(){return!0}}(),isURLSameOrigin}var xhr,hasRequiredXhr;function requireXhr(){if(hasRequiredXhr)return xhr;hasRequiredXhr=1;var j=utils$9,_e=requireSettle(),et=requireCookies(),tt=buildURL$1,rt=requireBuildFullPath(),nt=requireParseHeaders(),ot=requireIsURLSameOrigin(),it=requireCreateError();return xhr=function(lt){return new Promise(function(ct,dt){var ft=lt.data,pt=lt.headers,gt=lt.responseType;j.isFormData(ft)&&delete pt["Content-Type"];var vt=new XMLHttpRequest;if(lt.auth){var bt=lt.auth.username||"",_t=lt.auth.password?unescape(encodeURIComponent(lt.auth.password)):"";pt.Authorization="Basic "+btoa(bt+":"+_t)}var xt=rt(lt.baseURL,lt.url);vt.open(lt.method.toUpperCase(),tt(xt,lt.params,lt.paramsSerializer),!0),vt.timeout=lt.timeout;function yt(){if(vt){var St="getAllResponseHeaders"in vt?nt(vt.getAllResponseHeaders()):null,$t=!gt||gt==="text"||gt==="json"?vt.responseText:vt.response,At={data:$t,status:vt.status,statusText:vt.statusText,headers:St,config:lt,request:vt};_e(ct,dt,At),vt=null}}if("onloadend"in vt?vt.onloadend=yt:vt.onreadystatechange=function(){!vt||vt.readyState!==4||vt.status===0&&!(vt.responseURL&&vt.responseURL.indexOf("file:")===0)||setTimeout(yt)},vt.onabort=function(){vt&&(dt(it("Request aborted",lt,"ECONNABORTED",vt)),vt=null)},vt.onerror=function(){dt(it("Network Error",lt,null,vt)),vt=null},vt.ontimeout=function(){var $t="timeout of "+lt.timeout+"ms exceeded";lt.timeoutErrorMessage&&($t=lt.timeoutErrorMessage),dt(it($t,lt,lt.transitional&<.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",vt)),vt=null},j.isStandardBrowserEnv()){var Et=(lt.withCredentials||ot(xt))&<.xsrfCookieName?et.read(lt.xsrfCookieName):void 0;Et&&(pt[lt.xsrfHeaderName]=Et)}"setRequestHeader"in vt&&j.forEach(pt,function($t,At){typeof ft>"u"&&At.toLowerCase()==="content-type"?delete pt[At]:vt.setRequestHeader(At,$t)}),j.isUndefined(lt.withCredentials)||(vt.withCredentials=!!lt.withCredentials),gt&>!=="json"&&(vt.responseType=lt.responseType),typeof lt.onDownloadProgress=="function"&&vt.addEventListener("progress",lt.onDownloadProgress),typeof lt.onUploadProgress=="function"&&vt.upload&&vt.upload.addEventListener("progress",lt.onUploadProgress),lt.cancelToken&<.cancelToken.promise.then(function($t){vt&&(vt.abort(),dt($t),vt=null)}),ft||(ft=null),vt.send(ft)})},xhr}var utils$5=utils$9,normalizeHeaderName=normalizeHeaderName$1,enhanceError=enhanceError$1,DEFAULT_CONTENT_TYPE={"Content-Type":"application/x-www-form-urlencoded"};function setContentTypeIfUnset(j,_e){!utils$5.isUndefined(j)&&utils$5.isUndefined(j["Content-Type"])&&(j["Content-Type"]=_e)}function getDefaultAdapter(){var j;return(typeof XMLHttpRequest<"u"||typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]")&&(j=requireXhr()),j}function stringifySafely(j,_e,et){if(utils$5.isString(j))try{return(_e||JSON.parse)(j),utils$5.trim(j)}catch(tt){if(tt.name!=="SyntaxError")throw tt}return(et||JSON.stringify)(j)}var defaults$4={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:getDefaultAdapter(),transformRequest:[function(_e,et){return normalizeHeaderName(et,"Accept"),normalizeHeaderName(et,"Content-Type"),utils$5.isFormData(_e)||utils$5.isArrayBuffer(_e)||utils$5.isBuffer(_e)||utils$5.isStream(_e)||utils$5.isFile(_e)||utils$5.isBlob(_e)?_e:utils$5.isArrayBufferView(_e)?_e.buffer:utils$5.isURLSearchParams(_e)?(setContentTypeIfUnset(et,"application/x-www-form-urlencoded;charset=utf-8"),_e.toString()):utils$5.isObject(_e)||et&&et["Content-Type"]==="application/json"?(setContentTypeIfUnset(et,"application/json"),stringifySafely(_e)):_e}],transformResponse:[function(_e){var et=this.transitional,tt=et&&et.silentJSONParsing,rt=et&&et.forcedJSONParsing,nt=!tt&&this.responseType==="json";if(nt||rt&&utils$5.isString(_e)&&_e.length)try{return JSON.parse(_e)}catch(ot){if(nt)throw ot.name==="SyntaxError"?enhanceError(ot,this,"E_JSON_PARSE"):ot}return _e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(_e){return _e>=200&&_e<300}};defaults$4.headers={common:{Accept:"application/json, text/plain, */*"}};utils$5.forEach(["delete","get","head"],function(_e){defaults$4.headers[_e]={}});utils$5.forEach(["post","put","patch"],function(_e){defaults$4.headers[_e]=utils$5.merge(DEFAULT_CONTENT_TYPE)});var defaults_1$1=defaults$4,utils$4=utils$9,defaults$3=defaults_1$1,transformData$1=function(_e,et,tt){var rt=this||defaults$3;return utils$4.forEach(tt,function(ot){_e=ot.call(rt,_e,et)}),_e},isCancel$1,hasRequiredIsCancel;function requireIsCancel(){return hasRequiredIsCancel||(hasRequiredIsCancel=1,isCancel$1=function(_e){return!!(_e&&_e.__CANCEL__)}),isCancel$1}var utils$3=utils$9,transformData=transformData$1,isCancel=requireIsCancel(),defaults$2=defaults_1$1;function throwIfCancellationRequested(j){j.cancelToken&&j.cancelToken.throwIfRequested()}var dispatchRequest$1=function(_e){throwIfCancellationRequested(_e),_e.headers=_e.headers||{},_e.data=transformData.call(_e,_e.data,_e.headers,_e.transformRequest),_e.headers=utils$3.merge(_e.headers.common||{},_e.headers[_e.method]||{},_e.headers),utils$3.forEach(["delete","get","head","post","put","patch","common"],function(rt){delete _e.headers[rt]});var et=_e.adapter||defaults$2.adapter;return et(_e).then(function(rt){return throwIfCancellationRequested(_e),rt.data=transformData.call(_e,rt.data,rt.headers,_e.transformResponse),rt},function(rt){return isCancel(rt)||(throwIfCancellationRequested(_e),rt&&rt.response&&(rt.response.data=transformData.call(_e,rt.response.data,rt.response.headers,_e.transformResponse))),Promise.reject(rt)})},utils$2=utils$9,mergeConfig$2=function(_e,et){et=et||{};var tt={},rt=["url","method","data"],nt=["headers","auth","proxy","params"],ot=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],it=["validateStatus"];function st(dt,ft){return utils$2.isPlainObject(dt)&&utils$2.isPlainObject(ft)?utils$2.merge(dt,ft):utils$2.isPlainObject(ft)?utils$2.merge({},ft):utils$2.isArray(ft)?ft.slice():ft}function lt(dt){utils$2.isUndefined(et[dt])?utils$2.isUndefined(_e[dt])||(tt[dt]=st(void 0,_e[dt])):tt[dt]=st(_e[dt],et[dt])}utils$2.forEach(rt,function(ft){utils$2.isUndefined(et[ft])||(tt[ft]=st(void 0,et[ft]))}),utils$2.forEach(nt,lt),utils$2.forEach(ot,function(ft){utils$2.isUndefined(et[ft])?utils$2.isUndefined(_e[ft])||(tt[ft]=st(void 0,_e[ft])):tt[ft]=st(void 0,et[ft])}),utils$2.forEach(it,function(ft){ft in et?tt[ft]=st(_e[ft],et[ft]):ft in _e&&(tt[ft]=st(void 0,_e[ft]))});var ut=rt.concat(nt).concat(ot).concat(it),ct=Object.keys(_e).concat(Object.keys(et)).filter(function(ft){return ut.indexOf(ft)===-1});return utils$2.forEach(ct,lt),tt};const name="axios",version$4="0.21.4",description="Promise based HTTP client for the browser and node.js",main$1="index.js",scripts={test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository={type:"git",url:"https://github.com/axios/axios.git"},keywords$1=["xhr","http","ajax","promise","node"],author="Matt Zabriskie",license="MIT",bugs={url:"https://github.com/axios/axios/issues"},homepage="https://axios-http.com",devDependencies={coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser$2={"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr="dist/axios.min.js",unpkg="dist/axios.min.js",typings="./index.d.ts",dependencies={"follow-redirects":"^1.14.0"},bundlesize=[{path:"./dist/axios.min.js",threshold:"5kB"}],require$$0={name,version:version$4,description,main:main$1,scripts,repository,keywords:keywords$1,author,license,bugs,homepage,devDependencies,browser:browser$2,jsdelivr,unpkg,typings,dependencies,bundlesize};var pkg=require$$0,validators$3={};["object","boolean","number","function","string","symbol"].forEach(function(j,_e){validators$3[j]=function(tt){return typeof tt===j||"a"+(_e<1?"n ":" ")+j}});var deprecatedWarnings={},currentVerArr=pkg.version.split(".");function isOlderVersion(j,_e){for(var et=_e?_e.split("."):currentVerArr,tt=j.split("."),rt=0;rt<3;rt++){if(et[rt]>tt[rt])return!0;if(et[rt]0;){var nt=tt[rt],ot=_e[nt];if(ot){var it=j[nt],st=it===void 0||ot(it,nt,j);if(st!==!0)throw new TypeError("option "+nt+" must be "+st);continue}if(et!==!0)throw Error("Unknown option "+nt)}}var validator$1={isOlderVersion,assertOptions,validators:validators$3},utils$1=utils$9,buildURL=buildURL$1,InterceptorManager=InterceptorManager_1,dispatchRequest=dispatchRequest$1,mergeConfig$1=mergeConfig$2,validator=validator$1,validators$2=validator.validators;function Axios$1(j){this.defaults=j,this.interceptors={request:new InterceptorManager,response:new InterceptorManager}}Axios$1.prototype.request=function(_e){typeof _e=="string"?(_e=arguments[1]||{},_e.url=arguments[0]):_e=_e||{},_e=mergeConfig$1(this.defaults,_e),_e.method?_e.method=_e.method.toLowerCase():this.defaults.method?_e.method=this.defaults.method.toLowerCase():_e.method="get";var et=_e.transitional;et!==void 0&&validator.assertOptions(et,{silentJSONParsing:validators$2.transitional(validators$2.boolean,"1.0.0"),forcedJSONParsing:validators$2.transitional(validators$2.boolean,"1.0.0"),clarifyTimeoutError:validators$2.transitional(validators$2.boolean,"1.0.0")},!1);var tt=[],rt=!0;this.interceptors.request.forEach(function(dt){typeof dt.runWhen=="function"&&dt.runWhen(_e)===!1||(rt=rt&&dt.synchronous,tt.unshift(dt.fulfilled,dt.rejected))});var nt=[];this.interceptors.response.forEach(function(dt){nt.push(dt.fulfilled,dt.rejected)});var ot;if(!rt){var it=[dispatchRequest,void 0];for(Array.prototype.unshift.apply(it,tt),it=it.concat(nt),ot=Promise.resolve(_e);it.length;)ot=ot.then(it.shift(),it.shift());return ot}for(var st=_e;tt.length;){var lt=tt.shift(),ut=tt.shift();try{st=lt(st)}catch(ct){ut(ct);break}}try{ot=dispatchRequest(st)}catch(ct){return Promise.reject(ct)}for(;nt.length;)ot=ot.then(nt.shift(),nt.shift());return ot};Axios$1.prototype.getUri=function(_e){return _e=mergeConfig$1(this.defaults,_e),buildURL(_e.url,_e.params,_e.paramsSerializer).replace(/^\?/,"")};utils$1.forEach(["delete","get","head","options"],function(_e){Axios$1.prototype[_e]=function(et,tt){return this.request(mergeConfig$1(tt||{},{method:_e,url:et,data:(tt||{}).data}))}});utils$1.forEach(["post","put","patch"],function(_e){Axios$1.prototype[_e]=function(et,tt,rt){return this.request(mergeConfig$1(rt||{},{method:_e,url:et,data:tt}))}});var Axios_1=Axios$1,Cancel_1,hasRequiredCancel;function requireCancel(){if(hasRequiredCancel)return Cancel_1;hasRequiredCancel=1;function j(_e){this.message=_e}return j.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},j.prototype.__CANCEL__=!0,Cancel_1=j,Cancel_1}var CancelToken_1,hasRequiredCancelToken;function requireCancelToken(){if(hasRequiredCancelToken)return CancelToken_1;hasRequiredCancelToken=1;var j=requireCancel();function _e(et){if(typeof et!="function")throw new TypeError("executor must be a function.");var tt;this.promise=new Promise(function(ot){tt=ot});var rt=this;et(function(ot){rt.reason||(rt.reason=new j(ot),tt(rt.reason))})}return _e.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},_e.source=function(){var tt,rt=new _e(function(ot){tt=ot});return{token:rt,cancel:tt}},CancelToken_1=_e,CancelToken_1}var spread$1,hasRequiredSpread;function requireSpread(){return hasRequiredSpread||(hasRequiredSpread=1,spread$1=function(_e){return function(tt){return _e.apply(null,tt)}}),spread$1}var isAxiosError,hasRequiredIsAxiosError;function requireIsAxiosError(){return hasRequiredIsAxiosError||(hasRequiredIsAxiosError=1,isAxiosError=function(_e){return typeof _e=="object"&&_e.isAxiosError===!0}),isAxiosError}var utils=utils$9,bind$4=bind$6,Axios=Axios_1,mergeConfig=mergeConfig$2,defaults$1=defaults_1$1;function createInstance(j){var _e=new Axios(j),et=bind$4(Axios.prototype.request,_e);return utils.extend(et,Axios.prototype,_e),utils.extend(et,_e),et}var axios=createInstance(defaults$1);axios.Axios=Axios;axios.create=function(_e){return createInstance(mergeConfig(axios.defaults,_e))};axios.Cancel=requireCancel();axios.CancelToken=requireCancelToken();axios.isCancel=requireIsCancel();axios.all=function(_e){return Promise.all(_e)};axios.spread=requireSpread();axios.isAxiosError=requireIsAxiosError();axios$1.exports=axios;axios$1.exports.default=axios;var rngBrowser={exports:{}},getRandomValues$1=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof window.msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto);if(getRandomValues$1){var rnds8$1=new Uint8Array(16);rngBrowser.exports=function(){return getRandomValues$1(rnds8$1),rnds8$1}}else{var rnds=new Array(16);rngBrowser.exports=function(){for(var _e=0,et;_e<16;_e++)_e&3||(et=Math.random()*4294967296),rnds[_e]=et>>>((_e&3)<<3)&255;return rnds}}var rngBrowserExports=rngBrowser.exports,byteToHex$1=[];for(var i$2=0;i$2<256;++i$2)byteToHex$1[i$2]=(i$2+256).toString(16).substr(1);function bytesToUuid$3(j,_e){var et=_e||0,tt=byteToHex$1;return[tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]]].join("")}var bytesToUuid_1=bytesToUuid$3,rng$2=rngBrowserExports,bytesToUuid$2=bytesToUuid_1,_nodeId,_clockseq,_lastMSecs=0,_lastNSecs=0;function v1$1(j,_e,et){var tt=_e&&et||0,rt=_e||[];j=j||{};var nt=j.node||_nodeId,ot=j.clockseq!==void 0?j.clockseq:_clockseq;if(nt==null||ot==null){var it=rng$2();nt==null&&(nt=_nodeId=[it[0]|1,it[1],it[2],it[3],it[4],it[5]]),ot==null&&(ot=_clockseq=(it[6]<<8|it[7])&16383)}var st=j.msecs!==void 0?j.msecs:new Date().getTime(),lt=j.nsecs!==void 0?j.nsecs:_lastNSecs+1,ut=st-_lastMSecs+(lt-_lastNSecs)/1e4;if(ut<0&&j.clockseq===void 0&&(ot=ot+1&16383),(ut<0||st>_lastMSecs)&&j.nsecs===void 0&&(lt=0),lt>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=st,_lastNSecs=lt,_clockseq=ot,st+=122192928e5;var ct=((st&268435455)*1e4+lt)%4294967296;rt[tt++]=ct>>>24&255,rt[tt++]=ct>>>16&255,rt[tt++]=ct>>>8&255,rt[tt++]=ct&255;var dt=st/4294967296*1e4&268435455;rt[tt++]=dt>>>8&255,rt[tt++]=dt&255,rt[tt++]=dt>>>24&15|16,rt[tt++]=dt>>>16&255,rt[tt++]=ot>>>8|128,rt[tt++]=ot&255;for(var ft=0;ft<6;++ft)rt[tt+ft]=nt[ft];return _e||bytesToUuid$2(rt)}var v1_1=v1$1,rng$1=rngBrowserExports,bytesToUuid$1=bytesToUuid_1;function v4$2(j,_e,et){var tt=_e&&et||0;typeof j=="string"&&(_e=j==="binary"?new Array(16):null,j=null),j=j||{};var rt=j.random||(j.rng||rng$1)();if(rt[6]=rt[6]&15|64,rt[8]=rt[8]&63|128,_e)for(var nt=0;nt<16;++nt)_e[tt+nt]=rt[nt];return _e||bytesToUuid$1(rt)}var v4_1=v4$2,v1=v1_1,v4$1=v4_1,uuid=v4$1;uuid.v1=v1;uuid.v4=v4$1;var uuid_1=uuid;const BASELINE_VARIANT_ID="variant_0",DEFAULT_CHAT_INPUT_NAME="chat_input",DEFAULT_CHAT_HISTORY_NAME="chat_history",DEFAULT_CHAT_OUTPUT_NAME="chat_output";var FlowFeatures=(j=>(j.OpenCodeFileInNode="OpenCodeFileInNode",j.ShowWarningIconOnNode="ShowWarningIconOnNode",j))(FlowFeatures||{}),ConnectionType=(j=>(j.OpenAI="OpenAI",j.AzureOpenAI="AzureOpenAI",j.Serp="Serp",j.Bing="Bing",j.AzureContentModerator="AzureContentModerator",j.Custom="Custom",j.AzureContentSafety="AzureContentSafety",j.CognitiveSearch="CognitiveSearch",j.SubstrateLLM="SubstrateLLM",j.Pinecone="Pinecone",j.Qdrant="Qdrant",j.Weaviate="Weaviate",j.FormRecognizer="FormRecognizer",j.Serverless="Serverless",j))(ConnectionType||{}),FlowType=(j=>(j.Default="Default",j.Evaluation="Evaluation",j.Chat="Chat",j.Rag="Rag",j))(FlowType||{}),InputType=(j=>(j.default="default",j.uionly_hidden="uionly_hidden",j))(InputType||{}),Orientation$1=(j=>(j.Horizontal="Horizontal",j.Vertical="Vertical",j))(Orientation$1||{}),ToolType=(j=>(j.llm="llm",j.python="python",j.action="action",j.prompt="prompt",j.custom_llm="custom_llm",j.csharp="csharp",j.typescript="typescript",j))(ToolType||{}),ValueType=(j=>(j.int="int",j.double="double",j.bool="bool",j.string="string",j.secret="secret",j.prompt_template="prompt_template",j.object="object",j.list="list",j.BingConnection="BingConnection",j.OpenAIConnection="OpenAIConnection",j.AzureOpenAIConnection="AzureOpenAIConnection",j.AzureContentModeratorConnection="AzureContentModeratorConnection",j.CustomConnection="CustomConnection",j.AzureContentSafetyConnection="AzureContentSafetyConnection",j.SerpConnection="SerpConnection",j.CognitiveSearchConnection="CognitiveSearchConnection",j.SubstrateLLMConnection="SubstrateLLMConnection",j.PineconeConnection="PineconeConnection",j.QdrantConnection="QdrantConnection",j.WeaviateConnection="WeaviateConnection",j.function_list="function_list",j.function_str="function_str",j.FormRecognizerConnection="FormRecognizerConnection",j.file_path="file_path",j.image="image",j.assistant_definition="assistant_definition",j.ServerlessConnection="ServerlessConnection",j))(ValueType||{});const FLOW_INPUT_REF_NAME_FLOW="flow",FLOW_INPUT_REF_NAME_INPUT="inputs",FLOW_INPUT_NODE_NAME="inputs",FLOW_OUTPUT_NODE_NAME="outputs",isFlowInput=j=>[FLOW_INPUT_REF_NAME_FLOW,FLOW_INPUT_REF_NAME_INPUT].includes(j),SystemColors=["#637CEF","#E61C99","#00A5AF","#9470BD","#689920","#3487C7","#CA5010","#009B51","#B27C00","#B146C2","#4F6BED","#EE5FB7","#008B94","#D77440","#BA58C9","#3A96DD","#E3008C","#57811B","#C36BD1","#D06228","#6E0811","#C50F1F","#F7630C","#107C10","#094509"];var ValidationErrorType=(j=>(j.CircularDependency="CircularDependency",j.InputDependencyNotFound="InputDependencyNotFound",j.InputGenerateError="InputGenerateError",j.InputSelfReference="InputSelfReference",j.InputEmpty="InputEmpty",j.InputInvalidType="InputInvalidType",j.NodeConfigInvalid="NodeConfigInvalid",j.UnparsedCode="UnparsedCode",j.EmptyCode="EmptyCode",j.MissingTool="MissingTool",j.AutoParseInputError="AutoParseInputError",j.RuntimeNameEmpty="RuntimeNameEmpty",j.RuntimeStatusInvalid="RuntimeStatusInvalid",j))(ValidationErrorType||{}),ChatMessageFrom=(j=>(j.System="system",j.ErrorHandler="error",j.Chatbot="chatbot",j.User="user",j))(ChatMessageFrom||{}),ChatMessageType$1=(j=>(j.Text="text",j.Typing="typing",j.SessionSplit="session-split",j))(ChatMessageType$1||{});const convertToBool=j=>j==="true"||j==="True"||j===!0,basicValueTypeDetector=j=>Array.isArray(j)?ValueType.list:typeof j=="boolean"?ValueType.bool:typeof j=="string"?ValueType.string:typeof j=="number"?Number.isInteger(j)?ValueType.int:ValueType.double:ValueType.object;function valueStringify(j){if(j==null)return;switch(basicValueTypeDetector(j)){case ValueType.string:return j;case ValueType.int:case ValueType.double:return j.toString();case ValueType.bool:return j?"True":"False";case ValueType.object:case ValueType.list:return JSON.stringify(j);default:return String(j)}}var lodash$1={exports:{}};/** + var(--colorNeutralStencil1Alpha) 100%);}`,".f162mh4z{background-color:var(--colorNeutralStencil1Alpha);}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f4akx1t{animation-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f18p5put{animation-iteration-count:1;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (forced-colors: active){.f9jxvrw{background-color:WindowText;}}",{m:"screen and (forced-colors: active)"}]],k:["@keyframes fma800j{from{background-position-x:300%;}to{background-position-x:0%;}}","@keyframes fj9wi3p{from{background-position-x:0%;}to{background-position-x:300%;}}","@keyframes f12o7gg6{0%{opacity:1;}50%{opacity:0.4;}100%{opacity:1;}}"]}),useRectangleStyles=__styles({8:{Bqenvij:"f1x82gua"},12:{Bqenvij:"fvblgha"},16:{Bqenvij:"fd461yt"},20:{Bqenvij:"fjamq6b"},24:{Bqenvij:"frvgh55"},28:{Bqenvij:"fxldao9"},32:{Bqenvij:"f1d2rq10"},36:{Bqenvij:"f8ljn23"},40:{Bqenvij:"fbhnoac"},48:{Bqenvij:"ff2sm71"},56:{Bqenvij:"fzki0ko"},64:{Bqenvij:"f16k9i2m"},72:{Bqenvij:"f1shusfg"},96:{Bqenvij:"fypu0ge"},120:{Bqenvij:"fjr5b71"},128:{Bqenvij:"fele2au"},root:{a9b677:"fly5x3f",Bbmb7ep:["fff7au0","f1bjk9e1"],Beyfa6y:["f1bjk9e1","fff7au0"],B7oj6ja:["fwsfkhu","f8wkphi"],Btl43ni:["f8wkphi","fwsfkhu"]}},{d:[".f1x82gua{height:8px;}",".fvblgha{height:12px;}",".fd461yt{height:16px;}",".fjamq6b{height:20px;}",".frvgh55{height:24px;}",".fxldao9{height:28px;}",".f1d2rq10{height:32px;}",".f8ljn23{height:36px;}",".fbhnoac{height:40px;}",".ff2sm71{height:48px;}",".fzki0ko{height:56px;}",".f16k9i2m{height:64px;}",".f1shusfg{height:72px;}",".fypu0ge{height:96px;}",".fjr5b71{height:120px;}",".fele2au{height:128px;}",".fly5x3f{width:100%;}",".fff7au0{border-bottom-right-radius:4px;}",".f1bjk9e1{border-bottom-left-radius:4px;}",".fwsfkhu{border-top-right-radius:4px;}",".f8wkphi{border-top-left-radius:4px;}"]}),useSizeStyles=__styles({8:{a9b677:"f1o3cbw4",Bqenvij:"f1x82gua"},12:{a9b677:"frx94fk",Bqenvij:"fvblgha"},16:{a9b677:"fjw5fx7",Bqenvij:"fd461yt"},20:{a9b677:"f64fuq3",Bqenvij:"fjamq6b"},24:{a9b677:"fq4mcun",Bqenvij:"frvgh55"},28:{a9b677:"f1w9dchk",Bqenvij:"fxldao9"},32:{a9b677:"f1szoe96",Bqenvij:"f1d2rq10"},36:{a9b677:"fpdz1er",Bqenvij:"f8ljn23"},40:{a9b677:"feqmc2u",Bqenvij:"fbhnoac"},48:{a9b677:"f124akge",Bqenvij:"ff2sm71"},56:{a9b677:"f1u66zr1",Bqenvij:"fzki0ko"},64:{a9b677:"fa9ln6p",Bqenvij:"f16k9i2m"},72:{a9b677:"fhcae8x",Bqenvij:"f1shusfg"},96:{a9b677:"f1kyr2gn",Bqenvij:"fypu0ge"},120:{a9b677:"fwfqyga",Bqenvij:"fjr5b71"},128:{a9b677:"f1iksgmy",Bqenvij:"fele2au"}},{d:[".f1o3cbw4{width:8px;}",".f1x82gua{height:8px;}",".frx94fk{width:12px;}",".fvblgha{height:12px;}",".fjw5fx7{width:16px;}",".fd461yt{height:16px;}",".f64fuq3{width:20px;}",".fjamq6b{height:20px;}",".fq4mcun{width:24px;}",".frvgh55{height:24px;}",".f1w9dchk{width:28px;}",".fxldao9{height:28px;}",".f1szoe96{width:32px;}",".f1d2rq10{height:32px;}",".fpdz1er{width:36px;}",".f8ljn23{height:36px;}",".feqmc2u{width:40px;}",".fbhnoac{height:40px;}",".f124akge{width:48px;}",".ff2sm71{height:48px;}",".f1u66zr1{width:56px;}",".fzki0ko{height:56px;}",".fa9ln6p{width:64px;}",".f16k9i2m{height:64px;}",".fhcae8x{width:72px;}",".f1shusfg{height:72px;}",".f1kyr2gn{width:96px;}",".fypu0ge{height:96px;}",".fwfqyga{width:120px;}",".fjr5b71{height:120px;}",".f1iksgmy{width:128px;}",".fele2au{height:128px;}"]}),useCircleSizeStyles=__styles({root:{Bbmb7ep:["fqgqgel","fchfifz"],Beyfa6y:["fchfifz","fqgqgel"],B7oj6ja:["fc7b1hi","f1dpx5h9"],Btl43ni:["f1dpx5h9","fc7b1hi"]}},{d:[".fqgqgel{border-bottom-right-radius:50%;}",".fchfifz{border-bottom-left-radius:50%;}",".fc7b1hi{border-top-right-radius:50%;}",".f1dpx5h9{border-top-left-radius:50%;}"]}),useSkeletonItemStyles_unstable=j=>{const{animation:_e,appearance:et,size:tt,shape:rt}=j,{dir:nt}=useFluent(),ot=useStyles$n(),it=useRectangleStyles(),st=useSizeStyles(),lt=useCircleSizeStyles();return j.root.className=mergeClasses(skeletonItemClassNames.root,ot.root,_e==="wave"&&ot.wave,_e==="wave"&&nt==="rtl"&&ot.waveRtl,_e==="pulse"&&ot.pulse,et==="translucent"&&ot.translucent,_e==="pulse"&&et==="translucent"&&ot.translucentPulse,rt==="rectangle"&&it.root,rt==="rectangle"&&it[tt],rt==="square"&&st[tt],rt==="circle"&<.root,rt==="circle"&&st[tt],j.root.className),j},SkeletonItem=reactExports.forwardRef((j,_e)=>{const et=useSkeletonItem_unstable(j,_e);return useSkeletonItemStyles_unstable(et),renderSkeletonItem_unstable(et)});SkeletonItem.displayName="SkeletonItem";const DefaultSvg=()=>reactExports.createElement("svg",{className:"fui-Spinner__Progressbar"},reactExports.createElement("circle",{className:"fui-Spinner__Track"}),reactExports.createElement("circle",{className:"fui-Spinner__Tail"})),SpinnerContext=reactExports.createContext(void 0),SpinnerContextDefaultValue={};SpinnerContext.Provider;const useSpinnerContext=()=>{var j;return(j=reactExports.useContext(SpinnerContext))!==null&&j!==void 0?j:SpinnerContextDefaultValue},useSpinner_unstable=(j,_e)=>{const{size:et}=useSpinnerContext(),{appearance:tt="primary",labelPosition:rt="after",size:nt=et??"medium",delay:ot=0}=j,it=useId$1("spinner"),{role:st="progressbar",tabIndex:lt,...ut}=j,ct=always(getIntrinsicElementProps("div",{ref:_e,role:st,...ut},["size"]),{elementType:"div"}),[dt,ft]=reactExports.useState(!0),[pt,gt]=useTimeout();reactExports.useEffect(()=>{if(!(ot<=0))return ft(!1),pt(()=>{ft(!0)},ot),()=>{gt()}},[pt,gt,ot]);const mt=optional(j.label,{defaultProps:{id:it},renderByDefault:!1,elementType:Label$1}),bt=optional(j.spinner,{renderByDefault:!0,defaultProps:{children:reactExports.createElement(DefaultSvg,null),tabIndex:lt},elementType:"span"});return mt&&ct&&!ct["aria-labelledby"]&&(ct["aria-labelledby"]=mt.id),{appearance:tt,delay:ot,labelPosition:rt,size:nt,shouldRenderSpinner:dt,components:{root:"div",spinner:"span",label:Label$1},root:ct,spinner:bt,label:mt}},renderSpinner_unstable=j=>{const{labelPosition:_e,shouldRenderSpinner:et}=j;return jsxs(j.root,{children:[j.label&&et&&(_e==="above"||_e==="before")&&jsx$1(j.label,{}),j.spinner&&et&&jsx$1(j.spinner,{}),j.label&&et&&(_e==="below"||_e==="after")&&jsx$1(j.label,{})]})},spinnerClassNames={root:"fui-Spinner",spinner:"fui-Spinner__spinner",label:"fui-Spinner__label"},useRootStyles$3=__styles({root:{mc9l5x:"f22iagw",Bt984gj:"f122n59",Brf1p80:"f4d9j23",Bg96gwp:"fez10in",i8kkvl:"f4px1ci",Belr9w4:"fn67r4l"},horizontal:{Beiy3e4:"f1063pyq"},vertical:{Beiy3e4:"f1vx9l62"}},{d:[".f22iagw{display:flex;}",".f122n59{align-items:center;}",".f4d9j23{justify-content:center;}",".fez10in{line-height:0;}",".f4px1ci{column-gap:8px;}",".fn67r4l{row-gap:8px;}",".f1063pyq{flex-direction:row;}",".f1vx9l62{flex-direction:column;}"]}),useLoaderStyles=__styles({spinnerSVG:{B3aqqti:"f1or16p5",Brovlpu:"f1grzc83",Bxa1mx5:"f19shzzi",Bwaue66:["f5tbecn","f15qb8s7"],fyp1ls:"fn4mtlg",ag6ruv:"f1y80fxs",osj692:"f1r2crtq",aq5vjd:"f1wsi8sr",tlu9e1:"f1bkm2qd",J3u96z:"f1urqz7h",d32isg:"f1da2vov",Bsvqbuc:"f11rfva0",b3s3i5:"f1exc66"},"extra-tiny":{Bah9ito:"f1x2gjcb",ut6tcf:"f1vjiaua",B7p06xz:"fv1u54w",B807ibg:"f1oebb0s"},tiny:{Bah9ito:"f1j4wmu2",ut6tcf:"f1vppzuq",B7p06xz:"fv1u54w",B807ibg:"fngtx1d"},"extra-small":{Bah9ito:"fmpqlna",ut6tcf:"f15z5jzu",B7p06xz:"fv1u54w",B807ibg:"fadawes"},small:{Bah9ito:"fo52gbo",ut6tcf:"f1b41i3v",B7p06xz:"fv1u54w",B807ibg:"f1xqyyrl"},medium:{Bah9ito:"f1aiqagr",ut6tcf:"f1wtx80b",B7p06xz:"f1flujpd",B807ibg:"f1u06hy7"},large:{Bah9ito:"f1trdq7b",ut6tcf:"f9e0mc5",B7p06xz:"f1flujpd",B807ibg:"f13pmvhl"},"extra-large":{Bah9ito:"f89rf2a",ut6tcf:"f1w2xg3q",B7p06xz:"f1flujpd",B807ibg:"fmn74v6"},huge:{Bah9ito:"f1rx7k5y",ut6tcf:"f1vtyt49",B7p06xz:"f1owbg48",B807ibg:"f1fr1izd"}},{f:[".f1or16p5:focus{outline-width:3px;}",".f1grzc83:focus{outline-style:solid;}",".f19shzzi:focus{outline-color:transparent;}"],k:["@keyframes fb7n1on{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}","@keyframes f1gx3jof{0%{transform:rotate(0deg);}100%{transform:rotate(-360deg);}}"],d:[".f5tbecn>svg{animation-name:fb7n1on;}",".f15qb8s7>svg{animation-name:f1gx3jof;}",".fn4mtlg>svg{animation-duration:3s;}",".f1y80fxs>svg{animation-iteration-count:infinite;}",".f1r2crtq>svg{animation-timing-function:linear;}",".f1wsi8sr>svg{background-color:transparent;}",".f1da2vov>svg>circle{cx:50%;}",".f11rfva0>svg>circle{cy:50%;}",".f1exc66>svg>circle{fill:none;}",".f1x2gjcb>svg{height:16px;}",".f1vjiaua>svg{width:16px;}",".fv1u54w>svg>circle{stroke-width:var(--strokeWidthThick);}",".f1oebb0s>svg>circle{r:7px;}",".f1j4wmu2>svg{height:20px;}",".f1vppzuq>svg{width:20px;}",".fngtx1d>svg>circle{r:9px;}",".fmpqlna>svg{height:24px;}",".f15z5jzu>svg{width:24px;}",".fadawes>svg>circle{r:11px;}",".fo52gbo>svg{height:28px;}",".f1b41i3v>svg{width:28px;}",".f1xqyyrl>svg>circle{r:13px;}",".f1aiqagr>svg{height:32px;}",".f1wtx80b>svg{width:32px;}",".f1flujpd>svg>circle{stroke-width:var(--strokeWidthThicker);}",".f1u06hy7>svg>circle{r:14.5px;}",".f1trdq7b>svg{height:36px;}",".f9e0mc5>svg{width:36px;}",".f13pmvhl>svg>circle{r:16.5px;}",".f89rf2a>svg{height:40px;}",".f1w2xg3q>svg{width:40px;}",".fmn74v6>svg>circle{r:18.5px;}",".f1rx7k5y>svg{height:44px;}",".f1vtyt49>svg{width:44px;}",".f1owbg48>svg>circle{stroke-width:var(--strokeWidthThickest);}",".f1fr1izd>svg>circle{r:20px;}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f1bkm2qd>svg{animation-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1urqz7h>svg{animation-iteration-count:1;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]}),useTrackStyles=__styles({inverted:{gwg7kz:"f1jvpmnu",Bvrehnu:"fq8a5sv",Bidp6o:"f1b4lwqj",cq3kgi:"f1najlst",Btwiser:"fjxod4",B8001xd:"fu3xdw0",Bdordwa:["f1ttdh6v","fmyjox0"],Bo2mdfu:"f1eseayc",E10nrc:"folzdkc",Bwl7w15:"fhlfkde",Bksq7rz:"f1esql28"},primary:{gwg7kz:"f11ditju",B8k2rxp:"f1m9nikz",Bvrehnu:"fq8a5sv",Bidp6o:"f1b4lwqj",cq3kgi:"f1najlst",Btwiser:"fjxod4",B8001xd:"fu3xdw0",Bdordwa:["f1ttdh6v","fmyjox0"],Bo2mdfu:"f1eseayc",E10nrc:"folzdkc",Bwl7w15:"fhlfkde",Bksq7rz:"f13qeqtg",y14cdu:"flglbw1"}},{d:[".f1jvpmnu>svg>circle.fui-Spinner__Tail{stroke:var(--colorNeutralStrokeOnBrand2);}",".fq8a5sv>svg>circle.fui-Spinner__Tail{animation-name:f1v1ql0f;}",".f1b4lwqj>svg>circle.fui-Spinner__Tail{animation-duration:1.5s;}",".f1najlst>svg>circle.fui-Spinner__Tail{animation-iteration-count:infinite;}",".fjxod4>svg>circle.fui-Spinner__Tail{animation-timing-function:var(--curveEasyEase);}",".fu3xdw0>svg>circle.fui-Spinner__Tail{stroke-linecap:round;}",".f1ttdh6v>svg>circle.fui-Spinner__Tail{transform:rotate(-90deg);}",".fmyjox0>svg>circle.fui-Spinner__Tail{transform:rotate(90deg);}",".f1eseayc>svg>circle.fui-Spinner__Tail{transform-origin:50% 50%;}",".f1esql28>svg>circle.fui-Spinner__Track{stroke:rgba(255, 255, 255, 0.2);}",".f11ditju>svg>circle.fui-Spinner__Tail{stroke:var(--colorBrandStroke1);}",".f13qeqtg>svg>circle.fui-Spinner__Track{stroke:var(--colorBrandStroke2Contrast);}"],k:["@keyframes f1v1ql0f{0%{stroke-dasharray:1,150;stroke-dashoffset:0;}50%{stroke-dasharray:90,150;stroke-dashoffset:-35;}100%{stroke-dasharray:90,150;stroke-dashoffset:-124;}}"],m:[["@media screen and (prefers-reduced-motion: reduce){.folzdkc>svg>circle.fui-Spinner__Tail{animation-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.fhlfkde>svg>circle.fui-Spinner__Tail{animation-iteration-count:1;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (forced-colors: active){.f1m9nikz>svg>circle.fui-Spinner__Tail{stroke:var(--colorNeutralStrokeOnBrand2);}}",{m:"screen and (forced-colors: active)"}],["@media screen and (forced-colors: active){.flglbw1>svg>circle.fui-Spinner__Track{stroke:var(--colorNeutralBackgroundInverted);}}",{m:"screen and (forced-colors: active)"}]]}),useLabelStyles$1=__styles({inverted:{sj55zd:"f15aqcq"},primary:{},"extra-tiny":{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},tiny:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},"extra-small":{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},small:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},medium:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},large:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},"extra-large":{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},huge:{Bahqtrf:"fk6fouc",Be2twd7:"f1pp30po",Bhrd7zp:"fl43uef",Bg96gwp:"f106mvju"}},{d:[".f15aqcq{color:rgba(255, 255, 255, 1);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".f106mvju{line-height:var(--lineHeightBase500);}"]}),useSpinnerStyles_unstable=j=>{const{labelPosition:_e,size:et,appearance:tt="primary"}=j,rt=useRootStyles$3(),nt=useLoaderStyles(),ot=useLabelStyles$1(),it=useTrackStyles();return j.root.className=mergeClasses(spinnerClassNames.root,rt.root,(_e==="above"||_e==="below")&&rt.vertical,(_e==="before"||_e==="after")&&rt.horizontal,j.root.className),j.spinner&&(j.spinner.className=mergeClasses(spinnerClassNames.spinner,nt.spinnerSVG,nt[et],it[tt],j.spinner.className)),j.label&&(j.label.className=mergeClasses(spinnerClassNames.label,ot[et],ot[tt],j.label.className)),j},Spinner=reactExports.forwardRef((j,_e)=>{const et=useSpinner_unstable(j,_e);return useSpinnerStyles_unstable(et),useCustomStyleHook("useSpinnerStyles_unstable")(et),renderSpinner_unstable(et)});Spinner.displayName="Spinner";const useSwitch_unstable=(j,_e)=>{j=useFieldControlProps_unstable(j,{supportsLabelFor:!0,supportsRequired:!0});const{checked:et,defaultChecked:tt,disabled:rt,labelPosition:nt="after",onChange:ot,required:it}=j,st=getPartitionedNativeProps({props:j,primarySlotTagName:"input",excludedPropNames:["checked","defaultChecked","onChange"]}),lt=useId$1("switch-",st.primary.id),ut=always(j.root,{defaultProps:{ref:useFocusWithin(),...st.root},elementType:"div"}),ct=always(j.indicator,{defaultProps:{"aria-hidden":!0,children:reactExports.createElement(CircleFilled,null)},elementType:"div"}),dt=always(j.input,{defaultProps:{checked:et,defaultChecked:tt,id:lt,ref:_e,role:"switch",type:"checkbox",...st.primary},elementType:"input"});dt.onChange=mergeCallbacks(dt.onChange,pt=>ot==null?void 0:ot(pt,{checked:pt.currentTarget.checked}));const ft=optional(j.label,{defaultProps:{disabled:rt,htmlFor:lt,required:it,size:"medium"},elementType:Label$1});return{labelPosition:nt,components:{root:"div",indicator:"div",input:"input",label:Label$1},root:ut,indicator:ct,input:dt,label:ft}},renderSwitch_unstable=j=>{const{labelPosition:_e}=j;return jsxs(j.root,{children:[jsx$1(j.input,{}),_e!=="after"&&j.label&&jsx$1(j.label,{}),jsx$1(j.indicator,{}),_e==="after"&&j.label&&jsx$1(j.label,{})]})},switchClassNames={root:"fui-Switch",indicator:"fui-Switch__indicator",input:"fui-Switch__input",label:"fui-Switch__label"},useRootBaseClassName=__resetStyles("r1i56xw0","rk4yt03",{r:[".r1i56xw0{align-items:flex-start;box-sizing:border-box;display:inline-flex;position:relative;}",".r1i56xw0:focus{outline-style:none;}",".r1i56xw0:focus-visible{outline-style:none;}",".r1i56xw0[data-fui-focus-within]:focus-within{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.r1i56xw0[data-fui-focus-within]:focus-within::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:2px;border-right-width:2px;border-bottom-width:2px;border-left-width:2px;border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".rk4yt03{align-items:flex-start;box-sizing:border-box;display:inline-flex;position:relative;}",".rk4yt03:focus{outline-style:none;}",".rk4yt03:focus-visible{outline-style:none;}",".rk4yt03[data-fui-focus-within]:focus-within{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.rk4yt03[data-fui-focus-within]:focus-within::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:2px;border-left-width:2px;border-bottom-width:2px;border-right-width:2px;border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.r1i56xw0[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media (forced-colors: active){.rk4yt03[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}"]}),useRootStyles$2=__styles({vertical:{Beiy3e4:"f1vx9l62"}},{d:[".f1vx9l62{flex-direction:column;}"]}),useIndicatorBaseClassName=__resetStyles("r13wlxb8",null,{r:[".r13wlxb8{border-radius:var(--borderRadiusCircular);border:1px solid;line-height:0;box-sizing:border-box;fill:currentColor;flex-shrink:0;font-size:18px;height:20px;margin:var(--spacingVerticalS) var(--spacingHorizontalS);pointer-events:none;transition-duration:var(--durationNormal);transition-timing-function:var(--curveEasyEase);transition-property:background,border,color;width:40px;}",".r13wlxb8>*{transition-duration:var(--durationNormal);transition-timing-function:var(--curveEasyEase);transition-property:transform;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r13wlxb8{transition-duration:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r13wlxb8>*{transition-duration:0.01ms;}}"]}),useIndicatorStyles=__styles({labelAbove:{B6of3ja:"f1hu3pq6"}},{d:[".f1hu3pq6{margin-top:0;}"]}),useInputBaseClassName=__resetStyles("rw4brat","r1f4bxyr",{r:[".rw4brat{box-sizing:border-box;cursor:pointer;height:100%;margin:0;opacity:0;position:absolute;width:calc(40px + 2 * var(--spacingHorizontalS));}",".rw4brat:checked~.fui-Switch__indicator>*{transform:translateX(20px);}",".rw4brat:disabled{cursor:default;}",".rw4brat:disabled~.fui-Switch__indicator{color:var(--colorNeutralForegroundDisabled);}",".rw4brat:disabled~.fui-Switch__label{cursor:default;color:var(--colorNeutralForegroundDisabled);}",".rw4brat:enabled:not(:checked)~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessible);border-color:var(--colorNeutralStrokeAccessible);}",".rw4brat:enabled:not(:checked)~.fui-Switch__label{color:var(--colorNeutralForeground1);}",".rw4brat:enabled:not(:checked):hover~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessibleHover);border-color:var(--colorNeutralStrokeAccessibleHover);}",".rw4brat:enabled:not(:checked):hover:active~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessiblePressed);border-color:var(--colorNeutralStrokeAccessiblePressed);}",".rw4brat:enabled:checked~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackground);color:var(--colorNeutralForegroundInverted);border-color:var(--colorTransparentStroke);}",".rw4brat:enabled:checked:hover~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackgroundHover);border-color:var(--colorTransparentStrokeInteractive);}",".rw4brat:enabled:checked:hover:active~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackgroundPressed);border-color:var(--colorTransparentStrokeInteractive);}",".rw4brat:disabled:not(:checked)~.fui-Switch__indicator{border-color:var(--colorNeutralStrokeDisabled);}",".rw4brat:disabled:checked~.fui-Switch__indicator{background-color:var(--colorNeutralBackgroundDisabled);border-color:var(--colorTransparentStrokeDisabled);}",".r1f4bxyr{box-sizing:border-box;cursor:pointer;height:100%;margin:0;opacity:0;position:absolute;width:calc(40px + 2 * var(--spacingHorizontalS));}",".r1f4bxyr:checked~.fui-Switch__indicator>*{transform:translateX(-20px);}",".r1f4bxyr:disabled{cursor:default;}",".r1f4bxyr:disabled~.fui-Switch__indicator{color:var(--colorNeutralForegroundDisabled);}",".r1f4bxyr:disabled~.fui-Switch__label{cursor:default;color:var(--colorNeutralForegroundDisabled);}",".r1f4bxyr:enabled:not(:checked)~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessible);border-color:var(--colorNeutralStrokeAccessible);}",".r1f4bxyr:enabled:not(:checked)~.fui-Switch__label{color:var(--colorNeutralForeground1);}",".r1f4bxyr:enabled:not(:checked):hover~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessibleHover);border-color:var(--colorNeutralStrokeAccessibleHover);}",".r1f4bxyr:enabled:not(:checked):hover:active~.fui-Switch__indicator{color:var(--colorNeutralStrokeAccessiblePressed);border-color:var(--colorNeutralStrokeAccessiblePressed);}",".r1f4bxyr:enabled:checked~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackground);color:var(--colorNeutralForegroundInverted);border-color:var(--colorTransparentStroke);}",".r1f4bxyr:enabled:checked:hover~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackgroundHover);border-color:var(--colorTransparentStrokeInteractive);}",".r1f4bxyr:enabled:checked:hover:active~.fui-Switch__indicator{background-color:var(--colorCompoundBrandBackgroundPressed);border-color:var(--colorTransparentStrokeInteractive);}",".r1f4bxyr:disabled:not(:checked)~.fui-Switch__indicator{border-color:var(--colorNeutralStrokeDisabled);}",".r1f4bxyr:disabled:checked~.fui-Switch__indicator{background-color:var(--colorNeutralBackgroundDisabled);border-color:var(--colorTransparentStrokeDisabled);}"],s:["@media (forced-colors: active){.rw4brat:disabled~.fui-Switch__indicator{color:GrayText;border-color:GrayText;}.rw4brat:disabled~.fui-Switch__label{color:GrayText;}.rw4brat:enabled:checked:hover~.fui-Switch__indicator{background-color:Highlight;color:Canvas;}.rw4brat:enabled:checked~.fui-Switch__indicator{background-color:Highlight;color:Canvas;}}","@media (forced-colors: active){.r1f4bxyr:disabled~.fui-Switch__indicator{color:GrayText;border-color:GrayText;}.r1f4bxyr:disabled~.fui-Switch__label{color:GrayText;}.r1f4bxyr:enabled:checked:hover~.fui-Switch__indicator{background-color:Highlight;color:Canvas;}.r1f4bxyr:enabled:checked~.fui-Switch__indicator{background-color:Highlight;color:Canvas;}}"]}),useInputStyles=__styles({before:{j35jbq:["f1e31b4d","f1vgc2s3"],Bhzewxz:"f15twtuk"},after:{oyh7mz:["f1vgc2s3","f1e31b4d"],Bhzewxz:"f15twtuk"},above:{B5kzvoi:"f1yab3r1",Bqenvij:"f1aar7gd",a9b677:"fly5x3f"}},{d:[".f1e31b4d{right:0;}",".f1vgc2s3{left:0;}",".f15twtuk{top:0;}",".f1yab3r1{bottom:0;}",".f1aar7gd{height:calc(20px + var(--spacingVerticalS));}",".fly5x3f{width:100%;}"]}),useLabelStyles=__styles({base:{Bceei9c:"f1k6fduh",jrapky:"f49ad5g",B6of3ja:"f1xlvstr",z8tnut:"f1kwiid1",z189sj:["f1vdfbxk","f1f5gg8d"],Byoj8tv:"f5b47ha",uwmqm3:["f1f5gg8d","f1vdfbxk"]},above:{z8tnut:"f1ywm7hm",Byoj8tv:"f14wxoun",a9b677:"fly5x3f"},after:{uwmqm3:["fruq291","f7x41pl"]},before:{z189sj:["f7x41pl","fruq291"]}},{d:[".f1k6fduh{cursor:pointer;}",".f49ad5g{margin-bottom:calc((20px - var(--lineHeightBase300)) / 2);}",".f1xlvstr{margin-top:calc((20px - var(--lineHeightBase300)) / 2);}",".f1kwiid1{padding-top:var(--spacingVerticalS);}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".f5b47ha{padding-bottom:var(--spacingVerticalS);}",".f1ywm7hm{padding-top:var(--spacingVerticalXS);}",".f14wxoun{padding-bottom:var(--spacingVerticalXS);}",".fly5x3f{width:100%;}",".fruq291{padding-left:var(--spacingHorizontalXS);}",".f7x41pl{padding-right:var(--spacingHorizontalXS);}"]}),useSwitchStyles_unstable=j=>{const _e=useRootBaseClassName(),et=useRootStyles$2(),tt=useIndicatorBaseClassName(),rt=useIndicatorStyles(),nt=useInputBaseClassName(),ot=useInputStyles(),it=useLabelStyles(),{label:st,labelPosition:lt}=j;return j.root.className=mergeClasses(switchClassNames.root,_e,lt==="above"&&et.vertical,j.root.className),j.indicator.className=mergeClasses(switchClassNames.indicator,tt,st&<==="above"&&rt.labelAbove,j.indicator.className),j.input.className=mergeClasses(switchClassNames.input,nt,st&&ot[lt],j.input.className),j.label&&(j.label.className=mergeClasses(switchClassNames.label,it.base,it[lt],j.label.className)),j},Switch=reactExports.forwardRef((j,_e)=>{const et=useSwitch_unstable(j,_e);return useSwitchStyles_unstable(et),useCustomStyleHook("useSwitchStyles_unstable")(et),renderSwitch_unstable(et)});Switch.displayName="Switch";const tabListContextDefaultValue={appearance:"transparent",reserveSelectedTabSpace:!0,selectTabOnFocus:!1,disabled:!1,selectedValue:void 0,onRegister:()=>{},onUnregister:()=>{},onSelect:()=>{},getRegisteredTabs:()=>({registeredTabs:{}}),size:"medium",vertical:!1},TabListContext=createContext(void 0),TabListProvider=TabListContext.Provider,useTabListContext_unstable=j=>useContextSelector(TabListContext,(_e=tabListContextDefaultValue)=>j(_e)),useTab_unstable=(j,_e)=>{const{content:et,disabled:tt=!1,icon:rt,onClick:nt,onFocus:ot,value:it}=j,st=useTabListContext_unstable(Ct=>Ct.appearance),lt=useTabListContext_unstable(Ct=>Ct.reserveSelectedTabSpace),ut=useTabListContext_unstable(Ct=>Ct.selectTabOnFocus),ct=useTabListContext_unstable(Ct=>Ct.disabled),dt=useTabListContext_unstable(Ct=>Ct.selectedValue===it),ft=useTabListContext_unstable(Ct=>Ct.onRegister),pt=useTabListContext_unstable(Ct=>Ct.onUnregister),gt=useTabListContext_unstable(Ct=>Ct.onSelect),mt=useTabListContext_unstable(Ct=>Ct.size),bt=useTabListContext_unstable(Ct=>!!Ct.vertical),_t=ct||tt,xt=reactExports.useRef(null),yt=Ct=>gt(Ct,{value:it}),Et=useEventCallback$3(mergeCallbacks(nt,yt)),St=useEventCallback$3(mergeCallbacks(ot,yt));reactExports.useEffect(()=>(ft({value:it,ref:xt}),()=>{pt({value:it,ref:xt})}),[ft,pt,xt,it]);const Tt=optional(rt,{elementType:"span"}),kt=always(et,{defaultProps:{children:j.children},elementType:"span"}),$t=!!(Tt!=null&&Tt.children&&!kt.children);return{components:{root:"button",icon:"span",content:"span",contentReservedSpace:"span"},root:always(getIntrinsicElementProps("button",{ref:useMergedRefs$1(_e,xt),role:"tab",type:"button","aria-selected":_t?void 0:`${dt}`,...j,disabled:_t,onClick:Et,onFocus:ut?St:ot}),{elementType:"button"}),icon:Tt,iconOnly:$t,content:kt,contentReservedSpace:optional(et,{renderByDefault:!dt&&!$t&<,defaultProps:{children:j.children},elementType:"span"}),appearance:st,disabled:_t,selected:dt,size:mt,value:it,vertical:bt}},renderTab_unstable=j=>jsxs(j.root,{children:[j.icon&&jsx$1(j.icon,{}),!j.iconOnly&&jsx$1(j.content,{}),j.contentReservedSpace&&jsx$1(j.contentReservedSpace,{})]}),tabIndicatorCssVars_unstable={offsetVar:"--fui-Tab__indicator--offset",scaleVar:"--fui-Tab__indicator--scale"},useActiveIndicatorStyles$1=__styles({base:{B68tc82:"f1mtd64y",Bmxbyg5:"f1y7q3j9"},animated:{Ba2ppi3:"fhwpy7i",F2fol1:"f6zz20j",B1dyfl9:"f1ai4sc1",B0vmy72:"f9qxlq5",u9bimw:"f1aql376"},horizontal:{sjv3b2:["fug4aj8","f1i5xzg7"],b1kco5:"f1q7ujh"},vertical:{sjv3b2:"f1hqboyk",b1kco5:"f1dxupa6"}},{d:[".f1mtd64y{overflow-x:visible;}",".f1y7q3j9{overflow-y:visible;}",".fhwpy7i::after{transition-property:transform;}",".f6zz20j::after{transition-duration:var(--durationSlow);}",".f1ai4sc1::after{transition-timing-function:var(--curveDecelerateMax);}",".fug4aj8::after{transform-origin:left;}",".f1i5xzg7::after{transform-origin:right;}",".f1q7ujh::after{transform:translateX(var(--fui-Tab__indicator--offset)) scaleX(var(--fui-Tab__indicator--scale));}",".f1hqboyk::after{transform-origin:top;}",".f1dxupa6::after{transform:translateY(var(--fui-Tab__indicator--offset)) scaleY(var(--fui-Tab__indicator--scale));}"],m:[["@media (prefers-reduced-motion: reduce){.f9qxlq5::after{transition-property:none;}}",{m:"(prefers-reduced-motion: reduce)"}],["@media (prefers-reduced-motion: reduce){.f1aql376::after{transition-duration:0.01ms;}}",{m:"(prefers-reduced-motion: reduce)"}]]}),calculateTabRect=j=>{if(j){var _e;const et=((_e=j.parentElement)===null||_e===void 0?void 0:_e.getBoundingClientRect())||{x:0,y:0,width:0,height:0},tt=j.getBoundingClientRect();return{x:tt.x-et.x,y:tt.y-et.y,width:tt.width,height:tt.height}}},getRegisteredTabRect=(j,_e)=>{var et;const tt=_e!=null?(et=j[JSON.stringify(_e)])===null||et===void 0?void 0:et.ref.current:void 0;return tt?calculateTabRect(tt):void 0},useTabAnimatedIndicatorStyles_unstable=j=>{const{disabled:_e,selected:et,vertical:tt}=j,rt=useActiveIndicatorStyles$1(),[nt,ot]=reactExports.useState(),[it,st]=reactExports.useState({offset:0,scale:1}),lt=useTabListContext_unstable(dt=>dt.getRegisteredTabs);if(reactExports.useEffect(()=>{nt&&st({offset:0,scale:1})},[nt]),et){const{previousSelectedValue:dt,selectedValue:ft,registeredTabs:pt}=lt();if(dt&&nt!==dt){const gt=getRegisteredTabRect(pt,dt),mt=getRegisteredTabRect(pt,ft);if(mt&>){const bt=tt?gt.y-mt.y:gt.x-mt.x,_t=tt?gt.height/mt.height:gt.width/mt.width;st({offset:bt,scale:_t}),ot(dt)}}}else nt&&ot(void 0);if(_e)return j;const ut=it.offset===0&&it.scale===1;j.root.className=mergeClasses(j.root.className,et&&rt.base,et&&ut&&rt.animated,et&&(tt?rt.vertical:rt.horizontal));const ct={[tabIndicatorCssVars_unstable.offsetVar]:`${it.offset}px`,[tabIndicatorCssVars_unstable.scaleVar]:`${it.scale}`};return j.root.style={...ct,...j.root.style},j},tabClassNames={root:"fui-Tab",icon:"fui-Tab__icon",content:"fui-Tab__content"},reservedSpaceClassNames={content:"fui-Tab__content--reserved-space"},useRootStyles$1=__styles({base:{Bt984gj:"f122n59",g2u3we:"fwhevhj",h3c5rm:["f61n433","f1q8l70w"],B9xav0g:"fv1dfc8",zhjwy3:["f1q8l70w","f61n433"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B4j52fo:"fre7gi1",Bekrc4i:["f1358rze","f1rvrf73"],Bn0qgzm:"fqdk4by",ibv6hh:["f1rvrf73","f1358rze"],Bceei9c:"f1k6fduh",mc9l5x:"f13qh94s",Bnnss6s:"fi64zpg",Bxotwcr:"f1u07yai",Budl1dq:"frn2hmy",wkccdc:"f1olsevy",Bahqtrf:"fk6fouc",Bg96gwp:"f1i3iumi",oeaueh:"f1s6fcnf",qhf8xq:"f10pi13n",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",B9bfxx9:"f1cxpek8"},horizontal:{Brf1p80:"f4d9j23"},vertical:{Brf1p80:"f1s9ku6b"},smallHorizontal:{i8kkvl:"f14mj54c",z8tnut:"fp2oml8",z189sj:["fdw0yi8","fk8j09s"],Byoj8tv:"f1tdddsa",uwmqm3:["fk8j09s","fdw0yi8"]},smallVertical:{i8kkvl:"f14mj54c",z8tnut:"fclwglc",z189sj:["fdw0yi8","fk8j09s"],Byoj8tv:"fywfov9",uwmqm3:["fk8j09s","fdw0yi8"]},mediumHorizontal:{i8kkvl:"f1rjii52",z8tnut:"f5yzyt",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"fx3omr",uwmqm3:["f1ng84yb","f11gcy0p"]},mediumVertical:{i8kkvl:"f1rjii52",z8tnut:"fp2oml8",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"f1tdddsa",uwmqm3:["f1ng84yb","f11gcy0p"]},largeHorizontal:{i8kkvl:"f1rjii52",z8tnut:"fikn0iw",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"fdxej3c",uwmqm3:["f1ng84yb","f11gcy0p"]},largeVertical:{i8kkvl:"f1rjii52",z8tnut:"f1kwiid1",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"f5b47ha",uwmqm3:["f1ng84yb","f11gcy0p"]},transparent:{De3pzq:"f1c21dwh",Jwef8y:"fjxutwb",ecr2s2:"fophhak",Bptxc3x:"fmmjozx",B076xvk:"f1mfqf41",q9r9w5:"f10aiid4",cl4aha:"fpkze5g",Bk452zc:"f149wc3x",a4hkcw:"fjioou7"},subtle:{De3pzq:"fhovq9v",Jwef8y:"f1t94bn6",ecr2s2:"f1wfn5kd",Bptxc3x:"fmmjozx",B076xvk:"f1mfqf41",q9r9w5:"f10aiid4",cl4aha:"fpkze5g",Bk452zc:"f149wc3x",a4hkcw:"fjioou7"},disabled:{De3pzq:"f1c21dwh",Bptxc3x:"fato7r6",cl4aha:"fao1bnu",Bceei9c:"fdrzuqr"},selected:{Bptxc3x:"f1cadz5z",B076xvk:"f1ck17l",q9r9w5:"f42ak0g",cl4aha:"ffplhdr",Bk452zc:"ffth601",a4hkcw:"fhklyu5"}},{d:[".f122n59{align-items:center;}",".fwhevhj{border-top-color:none;}",".f61n433{border-right-color:none;}",".f1q8l70w{border-left-color:none;}",".fv1dfc8{border-bottom-color:none;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".fre7gi1{border-top-width:0;}",".f1358rze{border-right-width:0;}",".f1rvrf73{border-left-width:0;}",".fqdk4by{border-bottom-width:0;}",".f1k6fduh{cursor:pointer;}",".f13qh94s{display:grid;}",".fi64zpg{flex-shrink:0;}",".f1u07yai{grid-auto-flow:column;}",".frn2hmy{grid-template-columns:auto;}",".f1olsevy{grid-template-rows:auto;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1s6fcnf{outline-style:none;}",".f10pi13n{position:relative;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f1cxpek8{text-transform:none;}",".f4d9j23{justify-content:center;}",".f1s9ku6b{justify-content:start;}",".f14mj54c{column-gap:var(--spacingHorizontalXXS);}",".fp2oml8{padding-top:var(--spacingVerticalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".f1tdddsa{padding-bottom:var(--spacingVerticalSNudge);}",".fclwglc{padding-top:var(--spacingVerticalXXS);}",".fywfov9{padding-bottom:var(--spacingVerticalXXS);}",".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",".f5yzyt{padding-top:var(--spacingVerticalM);}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".fx3omr{padding-bottom:var(--spacingVerticalM);}",".fikn0iw{padding-top:var(--spacingVerticalL);}",".fdxej3c{padding-bottom:var(--spacingVerticalL);}",".f1kwiid1{padding-top:var(--spacingVerticalS);}",".f5b47ha{padding-bottom:var(--spacingVerticalS);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".fmmjozx .fui-Tab__icon{color:var(--colorNeutralForeground2);}",".fpkze5g .fui-Tab__content{color:var(--colorNeutralForeground2);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fato7r6 .fui-Tab__icon{color:var(--colorNeutralForegroundDisabled);}",".fao1bnu .fui-Tab__content{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f1cadz5z .fui-Tab__icon{color:var(--colorCompoundBrandForeground1);}",".ffplhdr .fui-Tab__content{color:var(--colorNeutralForeground1);}"],h:[".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".f1mfqf41:hover .fui-Tab__icon{color:var(--colorNeutralForeground2Hover);}",".f149wc3x:hover .fui-Tab__content{color:var(--colorNeutralForeground2Hover);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".f1ck17l:hover .fui-Tab__icon{color:var(--colorCompoundBrandForeground1Hover);}",".ffth601:hover .fui-Tab__content{color:var(--colorNeutralForeground1Hover);}"],a:[".fophhak:active{background-color:var(--colorTransparentBackgroundPressed);}",".f10aiid4:active .fui-Tab__icon{color:var(--colorNeutralForeground2Pressed);}",".fjioou7:active .fui-Tab__content{color:var(--colorNeutralForeground2Pressed);}",".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}",".f42ak0g:active .fui-Tab__icon{color:var(--colorCompoundBrandForeground1Pressed);}",".fhklyu5:active .fui-Tab__content{color:var(--colorNeutralForeground1Pressed);}"]}),useFocusStyles=__styles({base:{B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bn4voq9:"f1p7hgxw",Bfpq7zp:"f1way5bb",g9k6zt:"f9znhxp",j6ew2k:["fqa318h","fqa318h"],Bhxq17a:"f1vjpng2"}},{d:[".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",".f1p7hgxw[data-fui-focus-visible]{outline-width:var(--strokeWidthThick);}",".f1way5bb[data-fui-focus-visible]{outline-color:transparent;}",".f9znhxp[data-fui-focus-visible]{outline-style:solid;}",".fqa318h[data-fui-focus-visible]{box-shadow:var(--shadow4),0 0 0 var(--strokeWidthThick) var(--colorStrokeFocus2);}",".f1vjpng2[data-fui-focus-visible]{z-index:1;}"]}),usePendingIndicatorStyles=__styles({base:{az7l2e:"fhw179n",Bv4n3vi:["f10y1uxy","f6aiuy0"],vqofr:["f6aiuy0","f10y1uxy"],B0uxbk8:["f1kfpfnu","f1dx5wco"],Bgqb9hq:["f1dx5wco","f1kfpfnu"],amg5m6:"f1kmhr4c",zkfqfm:"fl1ydde",Bkydozb:"f1y7maxz",vzq8l0:["f105swax","fscdmel"],Bka2azo:["fscdmel","f105swax"],Br4ovkg:["f1tkcw1w","f1u11x8o"],csmgbd:["f1u11x8o","f1tkcw1w"],y36c18:"f16cxu0",B1ctymy:"f1nwgacf",Bgvrrv0:"f15ovonk",ddr6p5:"fvje46l"},disabled:{az7l2e:"f1ut20fw",Bkydozb:"fhrzcfn"},smallHorizontal:{lawp4y:"fchca7p",Baz25je:"f1r53b5e",Fbdkly:["f1s6rxz5","fo35v8s"],mdwyqc:["fo35v8s","f1s6rxz5"]},smallVertical:{lawp4y:"fze4zud",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"fdp32p8",Ccq8qp:"f1aij3q"},mediumHorizontal:{lawp4y:"fchca7p",Baz25je:"f1s2r9ax",Fbdkly:["f1o0nnkk","fxb7rol"],mdwyqc:["fxb7rol","f1o0nnkk"]},mediumVertical:{lawp4y:"f17jracn",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"f117lcb2",Ccq8qp:"f1aij3q"},largeHorizontal:{lawp4y:"fchca7p",Baz25je:"f1s2r9ax",Fbdkly:["f1o0nnkk","fxb7rol"],mdwyqc:["fxb7rol","f1o0nnkk"]},largeVertical:{lawp4y:"fel9d3z",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"f6vqlre",Ccq8qp:"f1aij3q"}},{h:[".fhw179n:hover::before{background-color:var(--colorNeutralStroke1Hover);}",".f10y1uxy:hover::before{border-bottom-right-radius:var(--borderRadiusCircular);}",".f6aiuy0:hover::before{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1kfpfnu:hover::before{border-top-right-radius:var(--borderRadiusCircular);}",".f1dx5wco:hover::before{border-top-left-radius:var(--borderRadiusCircular);}",'.f1kmhr4c:hover::before{content:"";}',".fl1ydde:hover::before{position:absolute;}",".f1ut20fw:hover::before{background-color:var(--colorTransparentStroke);}"],a:[".f1y7maxz:active::before{background-color:var(--colorNeutralStroke1Pressed);}",".f105swax:active::before{border-bottom-right-radius:var(--borderRadiusCircular);}",".fscdmel:active::before{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1tkcw1w:active::before{border-top-right-radius:var(--borderRadiusCircular);}",".f1u11x8o:active::before{border-top-left-radius:var(--borderRadiusCircular);}",'.f16cxu0:active::before{content:"";}',".f1nwgacf:active::before{position:absolute;}",".fhrzcfn:active::before{background-color:var(--colorTransparentStroke);}"],m:[["@media (forced-colors: active){.f15ovonk:hover::before{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fvje46l:active::before{background-color:Highlight;}}",{m:"(forced-colors: active)"}]],d:[".fchca7p::before{bottom:0;}",".f1r53b5e::before{height:var(--strokeWidthThick);}",".f1s6rxz5::before{left:var(--spacingHorizontalSNudge);}",".fo35v8s::before{right:var(--spacingHorizontalSNudge);}",".fze4zud::before{bottom:var(--spacingVerticalXS);}",".f1fzr1x6::before{left:0;}",".f1f351id::before{right:0;}",".fdp32p8::before{top:var(--spacingVerticalXS);}",".f1aij3q::before{width:var(--strokeWidthThicker);}",".f1s2r9ax::before{height:var(--strokeWidthThicker);}",".f1o0nnkk::before{left:var(--spacingHorizontalM);}",".fxb7rol::before{right:var(--spacingHorizontalM);}",".f17jracn::before{bottom:var(--spacingVerticalS);}",".f117lcb2::before{top:var(--spacingVerticalS);}",".fel9d3z::before{bottom:var(--spacingVerticalMNudge);}",".f6vqlre::before{top:var(--spacingVerticalMNudge);}"]}),useActiveIndicatorStyles=__styles({base:{Bjyk6c5:"f1rp0jgh",B3778ie:["fprarqb","f14vs0nd"],d9w3h3:["f14vs0nd","fprarqb"],Bl18szs:["f1gtfqs9","f18zvfd9"],B4j8arr:["f18zvfd9","f1gtfqs9"],Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9",t2ki1e:"ffmd2fr"},selected:{Bjyk6c5:"f1ksivud",Glksuk:"f1eytvvh",Blzl0y7:"fuaa9s",f7digc:"fy7ktjt",Biqphg1:"f16tp0gf",Bntoloa:"fj0yp7j"},disabled:{Bjyk6c5:"f13lkzet"},smallHorizontal:{By385i5:"fo72kxq",Dlnsje:"f9bb2ob",Eqx8gd:["f1q70ajw","f18rbzdx"],B1piin3:["f18rbzdx","f1q70ajw"]},smallVertical:{By385i5:"fqbue9b",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"fk1klkt",a2br6o:"f1o25lip"},mediumHorizontal:{By385i5:"fo72kxq",Dlnsje:"f1vx7lu8",Eqx8gd:["fna7m5n","f1oxpfwv"],B1piin3:["f1oxpfwv","fna7m5n"]},mediumVertical:{By385i5:"fipylg0",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"fqchiol",a2br6o:"f1o25lip"},largeHorizontal:{By385i5:"fo72kxq",Dlnsje:"f1vx7lu8",Eqx8gd:["fna7m5n","f1oxpfwv"],B1piin3:["f1oxpfwv","fna7m5n"]},largeVertical:{By385i5:"f1w7dm5g",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"f1p6em4m",a2br6o:"f1o25lip"}},{d:[".f1rp0jgh::after{background-color:var(--colorTransparentStroke);}",".fprarqb::after{border-bottom-right-radius:var(--borderRadiusCircular);}",".f14vs0nd::after{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1gtfqs9::after{border-top-right-radius:var(--borderRadiusCircular);}",".f18zvfd9::after{border-top-left-radius:var(--borderRadiusCircular);}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".ffmd2fr::after{z-index:1;}",".f1ksivud::after{background-color:var(--colorCompoundBrandStroke);}",".f13lkzet::after{background-color:var(--colorNeutralForegroundDisabled);}",".fo72kxq::after{bottom:0;}",".f9bb2ob::after{height:var(--strokeWidthThick);}",".f1q70ajw::after{left:var(--spacingHorizontalSNudge);}",".f18rbzdx::after{right:var(--spacingHorizontalSNudge);}",".fqbue9b::after{bottom:var(--spacingVerticalXS);}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",".fk1klkt::after{top:var(--spacingVerticalXS);}",".f1o25lip::after{width:var(--strokeWidthThicker);}",".f1vx7lu8::after{height:var(--strokeWidthThicker);}",".fna7m5n::after{left:var(--spacingHorizontalM);}",".f1oxpfwv::after{right:var(--spacingHorizontalM);}",".fipylg0::after{bottom:var(--spacingVerticalS);}",".fqchiol::after{top:var(--spacingVerticalS);}",".f1w7dm5g::after{bottom:var(--spacingVerticalMNudge);}",".f1p6em4m::after{top:var(--spacingVerticalMNudge);}"],h:[".f1eytvvh:hover::after{background-color:var(--colorCompoundBrandStrokeHover);}"],a:[".fuaa9s:active::after{background-color:var(--colorCompoundBrandStrokePressed);}"],m:[["@media (forced-colors: active){.fy7ktjt::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f16tp0gf:hover::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fj0yp7j:active::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}]]}),useIconStyles=__styles({base:{Br312pm:"fwpfdsa",Ijaq50:"f16hsg94",Bt984gj:"f122n59",mc9l5x:"ftuwxu6",Brf1p80:"f4d9j23",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",D0sxk3:"f16u1re",t6yez3:"f8bsbmo"},small:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3"},medium:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3"},large:{Be2twd7:"f1rt2boy",Bqenvij:"frvgh55",a9b677:"fq4mcun"},selected:{D0sxk3:"fxoiby5",t6yez3:"f15q0o9g"}},{d:[".fwpfdsa{grid-column-start:1;}",".f16hsg94{grid-row-start:1;}",".f122n59{align-items:center;}",".ftuwxu6{display:inline-flex;}",".f4d9j23{justify-content:center;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f16u1re .fui-Icon-filled{display:none;}",".f8bsbmo .fui-Icon-regular{display:inline;}",".fe5j1ua{font-size:20px;}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",".f1rt2boy{font-size:24px;}",".frvgh55{height:24px;}",".fq4mcun{width:24px;}",".fxoiby5 .fui-Icon-filled{display:inline;}",".f15q0o9g .fui-Icon-regular{display:none;}"]}),useContentStyles=__styles({base:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",z8tnut:"fztplxc",z189sj:["ffczdla","fgiv446"],Byoj8tv:"f9g1xly",uwmqm3:["fgiv446","ffczdla"]},selected:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"fl43uef",Bg96gwp:"f1i3iumi"},large:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k"},largeSelected:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},noIconBefore:{Br312pm:"fwpfdsa",Ijaq50:"f16hsg94"},iconBefore:{Br312pm:"fd46tj4",Ijaq50:"f16hsg94"},placeholder:{Bcdw1i0:"fd7fpy0"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".fztplxc{padding-top:var(--spacingVerticalNone);}",".ffczdla{padding-right:var(--spacingHorizontalXXS);}",".fgiv446{padding-left:var(--spacingHorizontalXXS);}",".f9g1xly{padding-bottom:var(--spacingVerticalNone);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fwpfdsa{grid-column-start:1;}",".f16hsg94{grid-row-start:1;}",".fd46tj4{grid-column-start:2;}",".fd7fpy0{visibility:hidden;}"]}),useTabStyles_unstable=j=>{const _e=useRootStyles$1(),et=useFocusStyles(),tt=usePendingIndicatorStyles(),rt=useActiveIndicatorStyles(),nt=useIconStyles(),ot=useContentStyles(),{appearance:it,disabled:st,selected:lt,size:ut,vertical:ct}=j;return j.root.className=mergeClasses(tabClassNames.root,_e.base,ct?_e.vertical:_e.horizontal,ut==="small"&&(ct?_e.smallVertical:_e.smallHorizontal),ut==="medium"&&(ct?_e.mediumVertical:_e.mediumHorizontal),ut==="large"&&(ct?_e.largeVertical:_e.largeHorizontal),et.base,!st&&it==="subtle"&&_e.subtle,!st&&it==="transparent"&&_e.transparent,!st&<&&_e.selected,st&&_e.disabled,tt.base,ut==="small"&&(ct?tt.smallVertical:tt.smallHorizontal),ut==="medium"&&(ct?tt.mediumVertical:tt.mediumHorizontal),ut==="large"&&(ct?tt.largeVertical:tt.largeHorizontal),st&&tt.disabled,lt&&rt.base,lt&&!st&&rt.selected,lt&&ut==="small"&&(ct?rt.smallVertical:rt.smallHorizontal),lt&&ut==="medium"&&(ct?rt.mediumVertical:rt.mediumHorizontal),lt&&ut==="large"&&(ct?rt.largeVertical:rt.largeHorizontal),lt&&st&&rt.disabled,j.root.className),j.icon&&(j.icon.className=mergeClasses(tabClassNames.icon,nt.base,nt[ut],lt&&nt.selected,j.icon.className)),j.contentReservedSpace&&(j.contentReservedSpace.className=mergeClasses(reservedSpaceClassNames.content,ot.base,ut==="large"?ot.largeSelected:ot.selected,j.icon?ot.iconBefore:ot.noIconBefore,ot.placeholder,j.content.className),j.contentReservedSpaceClassName=j.contentReservedSpace.className),j.content.className=mergeClasses(tabClassNames.content,ot.base,ut==="large"&&ot.large,lt&&(ut==="large"?ot.largeSelected:ot.selected),j.icon?ot.iconBefore:ot.noIconBefore,j.content.className),useTabAnimatedIndicatorStyles_unstable(j),j},Tab$1=reactExports.forwardRef((j,_e)=>{const et=useTab_unstable(j,_e);return useTabStyles_unstable(et),useCustomStyleHook("useTabStyles_unstable")(et),renderTab_unstable(et)});Tab$1.displayName="Tab";const useTabList_unstable=(j,_e)=>{const{appearance:et="transparent",reserveSelectedTabSpace:tt=!0,disabled:rt=!1,onTabSelect:nt,selectTabOnFocus:ot=!1,size:it="medium",vertical:st=!1}=j,lt=reactExports.useRef(null),ut=useArrowNavigationGroup({circular:!0,axis:st?"vertical":"horizontal",memorizeCurrent:!0}),[ct,dt]=useControllableState({state:j.selectedValue,defaultState:j.defaultSelectedValue,initialState:void 0}),ft=reactExports.useRef(void 0),pt=reactExports.useRef(void 0);reactExports.useEffect(()=>{pt.current=ft.current,ft.current=ct},[ct]);const gt=useEventCallback$3((yt,Et)=>{dt(Et.value),nt==null||nt(yt,Et)}),mt=reactExports.useRef({}),bt=useEventCallback$3(yt=>{mt.current[JSON.stringify(yt.value)]=yt}),_t=useEventCallback$3(yt=>{delete mt.current[JSON.stringify(yt.value)]}),xt=reactExports.useCallback(()=>({selectedValue:ft.current,previousSelectedValue:pt.current,registeredTabs:mt.current}),[]);return{components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,lt),role:"tablist","aria-orientation":st?"vertical":"horizontal",...ut,...j}),{elementType:"div"}),appearance:et,reserveSelectedTabSpace:tt,disabled:rt,selectTabOnFocus:ot,selectedValue:ct,size:it,vertical:st,onRegister:bt,onUnregister:_t,onSelect:gt,getRegisteredTabs:xt}},renderTabList_unstable=(j,_e)=>jsx$1(j.root,{children:jsx$1(TabListProvider,{value:_e.tabList,children:j.root.children})}),tabListClassNames={root:"fui-TabList"},useStyles$m=__styles({root:{mc9l5x:"f22iagw",Beiy3e4:"f1063pyq",Bnnss6s:"fi64zpg",Eh141a:"flvyvdh",qhf8xq:"f10pi13n"},horizontal:{Bt984gj:"f1q9h2pe",Beiy3e4:"f1063pyq"},vertical:{Bt984gj:"f1q9h2pe",Beiy3e4:"f1vx9l62"}},{d:[".f22iagw{display:flex;}",".f1063pyq{flex-direction:row;}",".fi64zpg{flex-shrink:0;}",".flvyvdh{flex-wrap:nowrap;}",".f10pi13n{position:relative;}",".f1q9h2pe{align-items:stretch;}",".f1vx9l62{flex-direction:column;}"]}),useTabListStyles_unstable=j=>{const{vertical:_e}=j,et=useStyles$m();return j.root.className=mergeClasses(tabListClassNames.root,et.root,_e?et.vertical:et.horizontal,j.root.className),j};function useTabListContextValues_unstable(j){const{appearance:_e,reserveSelectedTabSpace:et,disabled:tt,selectTabOnFocus:rt,selectedValue:nt,onRegister:ot,onUnregister:it,onSelect:st,getRegisteredTabs:lt,size:ut,vertical:ct}=j;return{tabList:{appearance:_e,reserveSelectedTabSpace:et,disabled:tt,selectTabOnFocus:rt,selectedValue:nt,onSelect:st,onRegister:ot,onUnregister:it,getRegisteredTabs:lt,size:ut,vertical:ct}}}const TabList=reactExports.forwardRef((j,_e)=>{const et=useTabList_unstable(j,_e),tt=useTabListContextValues_unstable(et);return useTabListStyles_unstable(et),useCustomStyleHook("useTabListStyles_unstable")(et),renderTabList_unstable(et,tt)});TabList.displayName="TabList";const useText_unstable=(j,_e)=>{const{wrap:et,truncate:tt,block:rt,italic:nt,underline:ot,strikethrough:it,size:st,font:lt,weight:ut,align:ct}=j;return{align:ct??"start",block:rt??!1,font:lt??"base",italic:nt??!1,size:st??300,strikethrough:it??!1,truncate:tt??!1,underline:ot??!1,weight:ut??"regular",wrap:et??!0,components:{root:"span"},root:always(getIntrinsicElementProps("span",{ref:_e,...j}),{elementType:"span"})}},renderText_unstable=j=>jsx$1(j.root,{}),textClassNames={root:"fui-Text"},useStyles$l=__styles({root:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi",Bhrd7zp:"figsok6",fsow6f:"fpgzoln",mc9l5x:"f1w7gpdv",Huce71:"f6juhto",B68tc82:"f1mtd64y",Bmxbyg5:"f1y7q3j9",ygn44y:"f2jf649"},nowrap:{Huce71:"fz5stix",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw"},truncate:{ygn44y:"f1cmbuwj"},block:{mc9l5x:"ftgm304"},italic:{B80ckks:"f1j4dglz"},underline:{w71qe1:"f13mvf36"},strikethrough:{w71qe1:"fv5q2k7"},strikethroughUnderline:{w71qe1:"f1drk4o6"},base100:{Be2twd7:"f13mqy1h",Bg96gwp:"fcpl73t"},base200:{Be2twd7:"fy9rknc",Bg96gwp:"fwrc4pm"},base400:{Be2twd7:"fod5ikn",Bg96gwp:"faaz57k"},base500:{Be2twd7:"f1pp30po",Bg96gwp:"f106mvju"},base600:{Be2twd7:"f1x0m3f5",Bg96gwp:"fb86gi6"},hero700:{Be2twd7:"fojgt09",Bg96gwp:"fcen8rp"},hero800:{Be2twd7:"fccw675",Bg96gwp:"f1ebx5kk"},hero900:{Be2twd7:"f15afnhw",Bg96gwp:"fr3w3wp"},hero1000:{Be2twd7:"fpyltcb",Bg96gwp:"f1ivgwrt"},monospace:{Bahqtrf:"f1fedwem"},numeric:{Bahqtrf:"f1uq0ln5"},weightMedium:{Bhrd7zp:"fdj6btp"},weightSemibold:{Bhrd7zp:"fl43uef"},weightBold:{Bhrd7zp:"flh3ekv"},alignCenter:{fsow6f:"f17mccla"},alignEnd:{fsow6f:"f12ymhq5"},alignJustify:{fsow6f:"f1j59e10"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fpgzoln{text-align:start;}",".f1w7gpdv{display:inline;}",".f6juhto{white-space:normal;}",".f1mtd64y{overflow-x:visible;}",".f1y7q3j9{overflow-y:visible;}",".f2jf649{text-overflow:clip;}",".fz5stix{white-space:nowrap;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f1cmbuwj{text-overflow:ellipsis;}",".ftgm304{display:block;}",".f1j4dglz{font-style:italic;}",".f13mvf36{text-decoration-line:underline;}",".fv5q2k7{text-decoration-line:line-through;}",".f1drk4o6{text-decoration-line:line-through underline;}",".f13mqy1h{font-size:var(--fontSizeBase100);}",".fcpl73t{line-height:var(--lineHeightBase100);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".f106mvju{line-height:var(--lineHeightBase500);}",".f1x0m3f5{font-size:var(--fontSizeBase600);}",".fb86gi6{line-height:var(--lineHeightBase600);}",".fojgt09{font-size:var(--fontSizeHero700);}",".fcen8rp{line-height:var(--lineHeightHero700);}",".fccw675{font-size:var(--fontSizeHero800);}",".f1ebx5kk{line-height:var(--lineHeightHero800);}",".f15afnhw{font-size:var(--fontSizeHero900);}",".fr3w3wp{line-height:var(--lineHeightHero900);}",".fpyltcb{font-size:var(--fontSizeHero1000);}",".f1ivgwrt{line-height:var(--lineHeightHero1000);}",".f1fedwem{font-family:var(--fontFamilyMonospace);}",".f1uq0ln5{font-family:var(--fontFamilyNumeric);}",".fdj6btp{font-weight:var(--fontWeightMedium);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".flh3ekv{font-weight:var(--fontWeightBold);}",".f17mccla{text-align:center;}",".f12ymhq5{text-align:end;}",".f1j59e10{text-align:justify;}"]}),useTextStyles_unstable=j=>{const _e=useStyles$l();return j.root.className=mergeClasses(textClassNames.root,_e.root,j.wrap===!1&&_e.nowrap,j.truncate&&_e.truncate,j.block&&_e.block,j.italic&&_e.italic,j.underline&&_e.underline,j.strikethrough&&_e.strikethrough,j.underline&&j.strikethrough&&_e.strikethroughUnderline,j.size===100&&_e.base100,j.size===200&&_e.base200,j.size===400&&_e.base400,j.size===500&&_e.base500,j.size===600&&_e.base600,j.size===700&&_e.hero700,j.size===800&&_e.hero800,j.size===900&&_e.hero900,j.size===1e3&&_e.hero1000,j.font==="monospace"&&_e.monospace,j.font==="numeric"&&_e.numeric,j.weight==="medium"&&_e.weightMedium,j.weight==="semibold"&&_e.weightSemibold,j.weight==="bold"&&_e.weightBold,j.align==="center"&&_e.alignCenter,j.align==="end"&&_e.alignEnd,j.align==="justify"&&_e.alignJustify,j.root.className),j},Text$2=reactExports.forwardRef((j,_e)=>{const et=useText_unstable(j,_e);return useTextStyles_unstable(et),useCustomStyleHook("useTextStyles_unstable")(et),renderText_unstable(et)});Text$2.displayName="Text";const disableScrollElementProp="__fluentDisableScrollElement";function useDisableBodyScroll(){const{targetDocument:j}=useFluent();return reactExports.useCallback(()=>{if(j)return disableScroll(j.body)},[j])}function disableScroll(j){var _e;const{clientWidth:et}=j.ownerDocument.documentElement;var tt;const rt=(tt=(_e=j.ownerDocument.defaultView)===null||_e===void 0?void 0:_e.innerWidth)!==null&&tt!==void 0?tt:0;return assertIsDisableScrollElement(j),j[disableScrollElementProp].count===0&&(j.style.overflow="hidden",j.style.paddingRight=`${rt-et}px`),j[disableScrollElementProp].count++,()=>{j[disableScrollElementProp].count--,j[disableScrollElementProp].count===0&&(j.style.overflow=j[disableScrollElementProp].previousOverflowStyle,j.style.paddingRight=j[disableScrollElementProp].previousPaddingRightStyle)}}function assertIsDisableScrollElement(j){var _e,et,tt;(tt=(_e=j)[et=disableScrollElementProp])!==null&&tt!==void 0||(_e[et]={count:0,previousOverflowStyle:j.style.overflow,previousPaddingRightStyle:j.style.paddingRight})}function useFocusFirstElement(j,_e){const{findFirstFocusable:et}=useFocusFinders(),{targetDocument:tt}=useFluent(),rt=reactExports.useRef(null);return reactExports.useEffect(()=>{if(!j)return;const nt=rt.current&&et(rt.current);if(nt)nt.focus();else{var ot;(ot=rt.current)===null||ot===void 0||ot.focus()}},[et,j,_e,tt]),rt}const defaultContextValue$2={open:!1,inertTrapFocus:!1,modalType:"modal",isNestedDialog:!1,dialogRef:{current:null},requestOpenChange(){}},DialogContext=createContext(void 0),DialogProvider=DialogContext.Provider,useDialogContext_unstable=j=>useContextSelector(DialogContext,(_e=defaultContextValue$2)=>j(_e)),defaultContextValue$1=!1,DialogSurfaceContext=reactExports.createContext(void 0),DialogSurfaceProvider=DialogSurfaceContext.Provider,useDialogSurfaceContext_unstable=()=>{var j;return(j=reactExports.useContext(DialogSurfaceContext))!==null&&j!==void 0?j:defaultContextValue$1},useDialog_unstable=j=>{const{children:_e,modalType:et="modal",onOpenChange:tt,inertTrapFocus:rt=!1}=j,[nt,ot]=childrenToTriggerAndContent(_e),[it,st]=useControllableState({state:j.open,defaultState:j.defaultOpen,initialState:!1}),lt=useEventCallback$3(gt=>{tt==null||tt(gt.event,gt),gt.event.isDefaultPrevented()||st(gt.open)}),ut=useFocusFirstElement(it,et),ct=useDisableBodyScroll(),dt=!!(it&&et!=="non-modal");useIsomorphicLayoutEffect$1(()=>{if(dt)return ct()},[ct,dt]);const{modalAttributes:ft,triggerAttributes:pt}=useModalAttributes({trapFocus:et!=="non-modal",legacyTrapFocus:!rt});return{components:{backdrop:"div"},inertTrapFocus:rt,open:it,modalType:et,content:ot,trigger:nt,requestOpenChange:lt,dialogTitleId:useId$1("dialog-title-"),isNestedDialog:useHasParentContext(DialogContext),dialogRef:ut,modalAttributes:et!=="non-modal"?ft:void 0,triggerAttributes:pt}};function childrenToTriggerAndContent(j){const _e=reactExports.Children.toArray(j);switch(_e.length){case 2:return _e;case 1:return[void 0,_e[0]];default:return[void 0,void 0]}}function _extends$r(){return _extends$r=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&(et[rt]=j[rt]);return et}function _setPrototypeOf$c(j,_e){return _setPrototypeOf$c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$c(j,_e)}function _inheritsLoose$1(j,_e){j.prototype=Object.create(_e.prototype),j.prototype.constructor=j,_setPrototypeOf$c(j,_e)}var propTypes={exports:{}},ReactPropTypesSecret$1="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",ReactPropTypesSecret_1=ReactPropTypesSecret$1,ReactPropTypesSecret=ReactPropTypesSecret_1;function emptyFunction(){}function emptyFunctionWithReset(){}emptyFunctionWithReset.resetWarningCache=emptyFunction;var factoryWithThrowingShims=function(){function j(tt,rt,nt,ot,it,st){if(st!==ReactPropTypesSecret){var lt=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw lt.name="Invariant Violation",lt}}j.isRequired=j;function _e(){return j}var et={array:j,bigint:j,bool:j,func:j,number:j,object:j,string:j,symbol:j,any:j,arrayOf:_e,element:j,elementType:j,instanceOf:_e,node:j,objectOf:_e,oneOf:_e,oneOfType:_e,shape:_e,exact:_e,checkPropTypes:emptyFunctionWithReset,resetWarningCache:emptyFunction};return et.PropTypes=et,et};propTypes.exports=factoryWithThrowingShims();var propTypesExports=propTypes.exports;const PropTypes=getDefaultExportFromCjs(propTypesExports),config$4={disabled:!1},TransitionGroupContext=React.createContext(null);var forceReflow=function(_e){return _e.scrollTop},UNMOUNTED="unmounted",EXITED="exited",ENTERING="entering",ENTERED="entered",EXITING="exiting",Transition=function(j){_inheritsLoose$1(_e,j);function _e(tt,rt){var nt;nt=j.call(this,tt,rt)||this;var ot=rt,it=ot&&!ot.isMounting?tt.enter:tt.appear,st;return nt.appearStatus=null,tt.in?it?(st=EXITED,nt.appearStatus=ENTERING):st=ENTERED:tt.unmountOnExit||tt.mountOnEnter?st=UNMOUNTED:st=EXITED,nt.state={status:st},nt.nextCallback=null,nt}_e.getDerivedStateFromProps=function(rt,nt){var ot=rt.in;return ot&&nt.status===UNMOUNTED?{status:EXITED}:null};var et=_e.prototype;return et.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},et.componentDidUpdate=function(rt){var nt=null;if(rt!==this.props){var ot=this.state.status;this.props.in?ot!==ENTERING&&ot!==ENTERED&&(nt=ENTERING):(ot===ENTERING||ot===ENTERED)&&(nt=EXITING)}this.updateStatus(!1,nt)},et.componentWillUnmount=function(){this.cancelNextCallback()},et.getTimeouts=function(){var rt=this.props.timeout,nt,ot,it;return nt=ot=it=rt,rt!=null&&typeof rt!="number"&&(nt=rt.exit,ot=rt.enter,it=rt.appear!==void 0?rt.appear:ot),{exit:nt,enter:ot,appear:it}},et.updateStatus=function(rt,nt){if(rt===void 0&&(rt=!1),nt!==null)if(this.cancelNextCallback(),nt===ENTERING){if(this.props.unmountOnExit||this.props.mountOnEnter){var ot=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this);ot&&forceReflow(ot)}this.performEnter(rt)}else this.performExit();else this.props.unmountOnExit&&this.state.status===EXITED&&this.setState({status:UNMOUNTED})},et.performEnter=function(rt){var nt=this,ot=this.props.enter,it=this.context?this.context.isMounting:rt,st=this.props.nodeRef?[it]:[ReactDOM.findDOMNode(this),it],lt=st[0],ut=st[1],ct=this.getTimeouts(),dt=it?ct.appear:ct.enter;if(!rt&&!ot||config$4.disabled){this.safeSetState({status:ENTERED},function(){nt.props.onEntered(lt)});return}this.props.onEnter(lt,ut),this.safeSetState({status:ENTERING},function(){nt.props.onEntering(lt,ut),nt.onTransitionEnd(dt,function(){nt.safeSetState({status:ENTERED},function(){nt.props.onEntered(lt,ut)})})})},et.performExit=function(){var rt=this,nt=this.props.exit,ot=this.getTimeouts(),it=this.props.nodeRef?void 0:ReactDOM.findDOMNode(this);if(!nt||config$4.disabled){this.safeSetState({status:EXITED},function(){rt.props.onExited(it)});return}this.props.onExit(it),this.safeSetState({status:EXITING},function(){rt.props.onExiting(it),rt.onTransitionEnd(ot.exit,function(){rt.safeSetState({status:EXITED},function(){rt.props.onExited(it)})})})},et.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},et.safeSetState=function(rt,nt){nt=this.setNextCallback(nt),this.setState(rt,nt)},et.setNextCallback=function(rt){var nt=this,ot=!0;return this.nextCallback=function(it){ot&&(ot=!1,nt.nextCallback=null,rt(it))},this.nextCallback.cancel=function(){ot=!1},this.nextCallback},et.onTransitionEnd=function(rt,nt){this.setNextCallback(nt);var ot=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this),it=rt==null&&!this.props.addEndListener;if(!ot||it){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var st=this.props.nodeRef?[this.nextCallback]:[ot,this.nextCallback],lt=st[0],ut=st[1];this.props.addEndListener(lt,ut)}rt!=null&&setTimeout(this.nextCallback,rt)},et.render=function(){var rt=this.state.status;if(rt===UNMOUNTED)return null;var nt=this.props,ot=nt.children;nt.in,nt.mountOnEnter,nt.unmountOnExit,nt.appear,nt.enter,nt.exit,nt.timeout,nt.addEndListener,nt.onEnter,nt.onEntering,nt.onEntered,nt.onExit,nt.onExiting,nt.onExited,nt.nodeRef;var it=_objectWithoutPropertiesLoose$i(nt,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return React.createElement(TransitionGroupContext.Provider,{value:null},typeof ot=="function"?ot(rt,it):React.cloneElement(React.Children.only(ot),it))},_e}(React.Component);Transition.contextType=TransitionGroupContext;Transition.propTypes={};function noop$5(){}Transition.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:noop$5,onEntering:noop$5,onEntered:noop$5,onExit:noop$5,onExiting:noop$5,onExited:noop$5};Transition.UNMOUNTED=UNMOUNTED;Transition.EXITED=EXITED;Transition.ENTERING=ENTERING;Transition.ENTERED=ENTERED;Transition.EXITING=EXITING;const Transition$1=Transition;function _assertThisInitialized$d(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}const defaultContextValue=void 0,DialogTransitionContext=reactExports.createContext(void 0),DialogTransitionProvider=DialogTransitionContext.Provider,useDialogTransitionContext_unstable=()=>{var j;return(j=reactExports.useContext(DialogTransitionContext))!==null&&j!==void 0?j:defaultContextValue},renderDialog_unstable=(j,_e)=>{const{content:et,trigger:tt}=j;return jsx$1(DialogProvider,{value:_e.dialog,children:jsxs(DialogSurfaceProvider,{value:_e.dialogSurface,children:[tt,jsx$1(Transition$1,{mountOnEnter:!0,unmountOnExit:!0,in:j.open,nodeRef:j.dialogRef,appear:!0,timeout:250,children:rt=>jsx$1(DialogTransitionProvider,{value:rt,children:et})})]})})};function useDialogContextValues_unstable(j){const{modalType:_e,open:et,dialogRef:tt,dialogTitleId:rt,isNestedDialog:nt,inertTrapFocus:ot,requestOpenChange:it,modalAttributes:st,triggerAttributes:lt}=j;return{dialog:{open:et,modalType:_e,dialogRef:tt,dialogTitleId:rt,isNestedDialog:nt,inertTrapFocus:ot,modalAttributes:st,triggerAttributes:lt,requestOpenChange:it},dialogSurface:!1}}const Dialog=reactExports.memo(j=>{const _e=useDialog_unstable(j),et=useDialogContextValues_unstable(_e);return renderDialog_unstable(_e,et)});Dialog.displayName="Dialog";const useDialogTrigger_unstable=j=>{const _e=useDialogSurfaceContext_unstable(),{children:et,disableButtonEnhancement:tt=!1,action:rt=_e?"close":"open"}=j,nt=getTriggerChild(et),ot=useDialogContext_unstable(ct=>ct.requestOpenChange),{triggerAttributes:it}=useModalAttributes(),st=useEventCallback$3(ct=>{var dt,ft;nt==null||(dt=(ft=nt.props).onClick)===null||dt===void 0||dt.call(ft,ct),ct.isDefaultPrevented()||ot({event:ct,type:"triggerClick",open:rt==="open"})}),lt={...nt==null?void 0:nt.props,ref:nt==null?void 0:nt.ref,onClick:st,...it},ut=useARIAButtonProps((nt==null?void 0:nt.type)==="button"||(nt==null?void 0:nt.type)==="a"?nt.type:"div",{...lt,type:"button"});return{children:applyTriggerPropsToChildren(et,tt?lt:ut)}},renderDialogTrigger_unstable=j=>j.children,DialogTrigger=j=>{const _e=useDialogTrigger_unstable(j);return renderDialogTrigger_unstable(_e)};DialogTrigger.displayName="DialogTrigger";DialogTrigger.isFluentTriggerComponent=!0;const useDialogSurface_unstable=(j,_e)=>{const et=useDialogContext_unstable(dt=>dt.modalType),tt=useDialogContext_unstable(dt=>dt.isNestedDialog),rt=useDialogTransitionContext_unstable(),nt=useDialogContext_unstable(dt=>dt.modalAttributes),ot=useDialogContext_unstable(dt=>dt.dialogRef),it=useDialogContext_unstable(dt=>dt.requestOpenChange),st=useDialogContext_unstable(dt=>dt.dialogTitleId),lt=useEventCallback$3(dt=>{if(isResolvedShorthand(j.backdrop)){var ft,pt;(ft=(pt=j.backdrop).onClick)===null||ft===void 0||ft.call(pt,dt)}et==="modal"&&!dt.isDefaultPrevented()&&it({event:dt,open:!1,type:"backdropClick"})}),ut=useEventCallback$3(dt=>{var ft;(ft=j.onKeyDown)===null||ft===void 0||ft.call(j,dt),dt.key===Escape&&!dt.isDefaultPrevented()&&(it({event:dt,open:!1,type:"escapeKeyDown"}),dt.preventDefault())}),ct=optional(j.backdrop,{renderByDefault:et!=="non-modal",defaultProps:{"aria-hidden":"true"},elementType:"div"});return ct&&(ct.onClick=lt),{components:{backdrop:"div",root:"div"},backdrop:ct,isNestedDialog:tt,transitionStatus:rt,mountNode:j.mountNode,root:always(getIntrinsicElementProps("div",{tabIndex:-1,"aria-modal":et!=="non-modal",role:et==="alert"?"alertdialog":"dialog","aria-labelledby":j["aria-label"]?void 0:st,...j,...nt,onKeyDown:ut,ref:useMergedRefs$1(_e,ot)}),{elementType:"div"})}},renderDialogSurface_unstable=(j,_e)=>jsxs(Portal$1,{mountNode:j.mountNode,children:[j.backdrop&&jsx$1(j.backdrop,{}),jsx$1(DialogSurfaceProvider,{value:_e.dialogSurface,children:jsx$1(j.root,{})})]}),dialogSurfaceClassNames={root:"fui-DialogSurface",backdrop:"fui-DialogSurface__backdrop"},useRootBaseStyle=__resetStyles("rhhzfde","r1n1tr5u",{r:[".rhhzfde{top:0;right:0;bottom:0;left:0;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px;margin-top:auto;margin-right:auto;margin-bottom:auto;margin-left:auto;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;overflow-x:unset;overflow-y:unset;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-color:var(--colorTransparentStroke);border-right-color:var(--colorTransparentStroke);border-bottom-color:var(--colorTransparentStroke);border-left-color:var(--colorTransparentStroke);border-bottom-right-radius:var(--borderRadiusXLarge);border-bottom-left-radius:var(--borderRadiusXLarge);border-top-right-radius:var(--borderRadiusXLarge);border-top-left-radius:var(--borderRadiusXLarge);display:block;-webkit-user-select:unset;-moz-user-select:unset;-ms-user-select:unset;user-select:unset;visibility:unset;position:fixed;height:fit-content;max-width:600px;max-height:100vh;box-sizing:border-box;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);}",".rhhzfde:focus{outline-style:none;}",".rhhzfde:focus-visible{outline-style:none;}",".rhhzfde[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.rhhzfde[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:2px;border-right-width:2px;border-bottom-width:2px;border-left-width:2px;border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".r1n1tr5u{top:0;left:0;bottom:0;right:0;padding-top:24px;padding-left:24px;padding-bottom:24px;padding-right:24px;margin-top:auto;margin-left:auto;margin-bottom:auto;margin-right:auto;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;overflow-x:unset;overflow-y:unset;border-top-width:1px;border-left-width:1px;border-bottom-width:1px;border-right-width:1px;border-top-color:var(--colorTransparentStroke);border-left-color:var(--colorTransparentStroke);border-bottom-color:var(--colorTransparentStroke);border-right-color:var(--colorTransparentStroke);border-bottom-left-radius:var(--borderRadiusXLarge);border-bottom-right-radius:var(--borderRadiusXLarge);border-top-left-radius:var(--borderRadiusXLarge);border-top-right-radius:var(--borderRadiusXLarge);display:block;-webkit-user-select:unset;-moz-user-select:unset;-ms-user-select:unset;user-select:unset;visibility:unset;position:fixed;height:fit-content;max-width:600px;max-height:100vh;box-sizing:border-box;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);}",".r1n1tr5u:focus{outline-style:none;}",".r1n1tr5u:focus-visible{outline-style:none;}",".r1n1tr5u[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.r1n1tr5u[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:2px;border-left-width:2px;border-bottom-width:2px;border-right-width:2px;border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.rhhzfde[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media screen and (max-width: 480px){.rhhzfde{max-width:100vw;}}","@media (forced-colors: active){.r1n1tr5u[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}","@media screen and (max-width: 480px){.r1n1tr5u{max-width:100vw;}}"]}),useRootStyles=__styles({animated:{abs64n:"fk73vx1",B3o57yi:"fc397y7",Bmy1vo4:"f1b86uth",Bkqvd7p:"f18ad807",E5pizo:"f1yzz98r",Bz10aip:"f15ofi6c"},unmounted:{},entering:{},entered:{E5pizo:"f10nrhrw",Bz10aip:"f186d0ee",abs64n:"f5p0z4x"},idle:{},exiting:{Bkqvd7p:"f1mfizis"},exited:{}},{d:[".fk73vx1{opacity:0;}",".fc397y7{transition-duration:var(--durationGentle);}",".f1b86uth{transition-property:opacity,transform,box-shadow;}",".f18ad807{transition-timing-function:var(--curveDecelerateMid);}",".f1yzz98r{box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.1);}",".f15ofi6c{transform:scale(0.85) translateZ(0);}",".f10nrhrw{box-shadow:var(--shadow64);}",".f186d0ee{transform:scale(1) translateZ(0);}",".f5p0z4x{opacity:1;}",".f1mfizis{transition-timing-function:var(--curveAccelerateMin);}"]}),useBackdropBaseStyle=__resetStyles("raidwwn","r17vltcu",[".raidwwn{top:0px;right:0px;bottom:0px;left:0px;background-color:rgba(0, 0, 0, 0.4);position:fixed;transition-duration:var(--durationGentle);transition-timing-function:var(--curveLinear);transition-property:opacity;will-change:opacity;opacity:0;}",".r17vltcu{top:0px;left:0px;bottom:0px;right:0px;background-color:rgba(0, 0, 0, 0.4);position:fixed;transition-duration:var(--durationGentle);transition-timing-function:var(--curveLinear);transition-property:opacity;will-change:opacity;opacity:0;}"]),useBackdropStyles$1=__styles({nestedDialogBackdrop:{De3pzq:"f1c21dwh"},unmounted:{},entering:{},entered:{abs64n:"f5p0z4x"},idle:{},exiting:{Bkqvd7p:"f1mfizis"},exited:{}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f5p0z4x{opacity:1;}",".f1mfizis{transition-timing-function:var(--curveAccelerateMin);}"]}),useDialogSurfaceStyles_unstable=j=>{const{isNestedDialog:_e,root:et,backdrop:tt,transitionStatus:rt}=j,nt=useRootBaseStyle(),ot=useRootStyles(),it=useBackdropBaseStyle(),st=useBackdropStyles$1();return et.className=mergeClasses(dialogSurfaceClassNames.root,nt,rt&&ot.animated,rt&&ot[rt],et.className),tt&&(tt.className=mergeClasses(dialogSurfaceClassNames.backdrop,it,_e&&st.nestedDialogBackdrop,rt&&st[rt],tt.className)),j};function useDialogSurfaceContextValues_unstable(j){return{dialogSurface:!0}}const DialogSurface=reactExports.forwardRef((j,_e)=>{const et=useDialogSurface_unstable(j,_e),tt=useDialogSurfaceContextValues_unstable();return useDialogSurfaceStyles_unstable(et),useCustomStyleHook("useDialogSurfaceStyles_unstable")(et),renderDialogSurface_unstable(et,tt)});DialogSurface.displayName="DialogSurface";const useCardSelectable=(j,{referenceLabel:_e,referenceId:et},tt)=>{const{checkbox:rt={},onSelectionChange:nt,floatingAction:ot,onClick:it,onKeyDown:st}=j,{findAllFocusable:lt}=useFocusFinders(),ut=reactExports.useRef(null),[ct,dt]=useControllableState({state:j.selected,defaultState:j.defaultSelected,initialState:!1}),ft=[j.selected,j.defaultSelected,nt].some(St=>typeof St<"u"),[pt,gt]=reactExports.useState(!1),mt=reactExports.useCallback(St=>{if(!tt.current)return!1;const Tt=lt(tt.current),kt=St.target,$t=Tt.some(It=>It.contains(kt)),Ct=(ut==null?void 0:ut.current)===kt;return $t&&!Ct},[tt,lt]),bt=reactExports.useCallback(St=>{if(mt(St))return;const Tt=!ct;dt(Tt),nt&&nt(St,{selected:Tt})},[nt,ct,dt,mt]),_t=reactExports.useCallback(St=>{[Enter].includes(St.key)&&(St.preventDefault(),bt(St))},[bt]),xt=reactExports.useMemo(()=>{if(!ft||ot)return;const St={};return et?St["aria-labelledby"]=et:_e&&(St["aria-label"]=_e),optional(rt,{defaultProps:{ref:ut,type:"checkbox",checked:ct,onChange:Tt=>bt(Tt),onFocus:()=>gt(!0),onBlur:()=>gt(!1),...St},elementType:"input"})},[rt,ot,ct,ft,bt,et,_e]),yt=reactExports.useMemo(()=>{if(ot)return optional(ot,{defaultProps:{ref:ut},elementType:"div"})},[ot]),Et=reactExports.useMemo(()=>ft?{onClick:mergeCallbacks(it,bt),onKeyDown:mergeCallbacks(st,_t)}:null,[ft,bt,it,st,_t]);return{selected:ct,selectable:ft,selectFocused:pt,selectableCardProps:Et,checkboxSlot:xt,floatingActionSlot:yt}},cardContext=reactExports.createContext(void 0),cardContextDefaultValue={selectableA11yProps:{referenceId:void 0,setReferenceId(){},referenceLabel:void 0,setReferenceLabel(){}}},CardProvider=cardContext.Provider,useCardContext_unstable=()=>{var j;return(j=reactExports.useContext(cardContext))!==null&&j!==void 0?j:cardContextDefaultValue},focusMap={off:void 0,"no-tab":"limited-trap-focus","tab-exit":"limited","tab-only":"unlimited"},useCardInteractive=({focusMode:j="off",..._e})=>{const et=["onClick","onDoubleClick","onMouseUp","onMouseDown","onPointerUp","onPointerDown","onTouchStart","onTouchEnd","onDragStart","onDragEnd"].some(nt=>_e[nt]),rt={...useFocusableGroup({tabBehavior:focusMap[et?"no-tab":j]}),tabIndex:0};return{interactive:et,focusAttributes:!et&&j==="off"?null:rt}},useCard_unstable=(j,_e)=>{const{appearance:et="filled",orientation:tt="vertical",size:rt="medium"}=j,[nt,ot]=reactExports.useState(cardContextDefaultValue.selectableA11yProps.referenceId),[it,st]=reactExports.useState(cardContextDefaultValue.selectableA11yProps.referenceId),lt=useFocusWithin(),{selectable:ut,selected:ct,selectableCardProps:dt,selectFocused:ft,checkboxSlot:pt,floatingActionSlot:gt}=useCardSelectable(j,{referenceId:nt,referenceLabel:it},lt),mt=useMergedRefs$1(lt,_e),{interactive:bt,focusAttributes:_t}=useCardInteractive(j);return{appearance:et,orientation:tt,size:rt,interactive:bt,selectable:ut,selectFocused:ft,selected:ct,selectableA11yProps:{setReferenceId:ot,referenceId:nt,referenceLabel:it,setReferenceLabel:st},components:{root:"div",floatingAction:"div",checkbox:"input"},root:always(getIntrinsicElementProps("div",{ref:mt,role:"group",..._t,...j,...dt}),{elementType:"div"}),floatingAction:gt,checkbox:pt}},renderCard_unstable=(j,_e)=>jsx$1(j.root,{children:jsxs(CardProvider,{value:_e,children:[j.checkbox?jsx$1(j.checkbox,{}):null,j.floatingAction?jsx$1(j.floatingAction,{}):null,j.root.children]})}),cardHeaderClassNames={root:"fui-CardHeader",image:"fui-CardHeader__image",header:"fui-CardHeader__header",description:"fui-CardHeader__description",action:"fui-CardHeader__action"},useStyles$k=__styles({root:{Bkc6ea2:"fkufhic",mc9l5x:"f13qh94s",t4k1zu:"f8a668j",Bt984gj:"f122n59"},image:{mc9l5x:"ftuwxu6",t21cq0:["fql5097","f6yss9k"],Br312pm:"fwpfdsa",Ijaq50:"fldnz9j"},header:{Br312pm:"fd46tj4",Ijaq50:"f16hsg94",mc9l5x:"f22iagw"},description:{Br312pm:"fd46tj4",Ijaq50:"faunodf",mc9l5x:"f22iagw"},action:{Frg6f3:["f6yss9k","fql5097"],Br312pm:"fis13di",Ijaq50:"fldnz9j"}},{d:[".fkufhic{--fui-CardHeader--gap:12px;}",".f13qh94s{display:grid;}",".f8a668j{grid-auto-columns:min-content 1fr min-content;}",".f122n59{align-items:center;}",".ftuwxu6{display:inline-flex;}",".fql5097{margin-right:var(--fui-CardHeader--gap);}",".f6yss9k{margin-left:var(--fui-CardHeader--gap);}",".fwpfdsa{grid-column-start:1;}",".fldnz9j{grid-row-start:span 2;}",".fd46tj4{grid-column-start:2;}",".f16hsg94{grid-row-start:1;}",".f22iagw{display:flex;}",".faunodf{grid-row-start:2;}",".fis13di{grid-column-start:3;}"]}),useCardHeaderStyles_unstable=j=>{const _e=useStyles$k();return j.root.className=mergeClasses(cardHeaderClassNames.root,_e.root,j.root.className),j.image&&(j.image.className=mergeClasses(cardHeaderClassNames.image,_e.image,j.image.className)),j.header&&(j.header.className=mergeClasses(cardHeaderClassNames.header,_e.header,j.header.className)),j.description&&(j.description.className=mergeClasses(cardHeaderClassNames.description,_e.description,j.description.className)),j.action&&(j.action.className=mergeClasses(cardHeaderClassNames.action,_e.action,j.action.className)),j},cardClassNames={root:"fui-Card",floatingAction:"fui-Card__floatingAction",checkbox:"fui-Card__checkbox"},useStyles$j=__styles({root:{B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",Bbmb7ep:["fifeqxg","f899z7z"],Beyfa6y:["f899z7z","fifeqxg"],B7oj6ja:["f4h3tyx","f18ur2pz"],Btl43ni:["f18ur2pz","f4h3tyx"],z8tnut:"f1lplnzb",z189sj:["f10m5gbb","f1k04kkk"],Byoj8tv:"fhftqfp",uwmqm3:["f1k04kkk","f10m5gbb"],i8kkvl:"fxsr4vj",Belr9w4:"fcvsdzp",mc9l5x:"f22iagw",qhf8xq:"f10pi13n",B7ck84d:"f1ewtqcl",sj55zd:"f19n0e5",E3zdtr:"f1mdlcz9",bn5sak:"frwkxtg",Eqx8gd:["f1n6gb5g","f15yvnhg"],B1piin3:["f15yvnhg","f1n6gb5g"],By385i5:"fo72kxq",Bsft5z2:"f13zj6fq",B80jsxd:"f1nwj1ja",Bm2nyyq:"f8rth92",Barhvk9:["flthirb","ftkbnf5"],Bw17bha:"f1lh990p",vfts7:["ftkbnf5","flthirb"],xrcqlc:"f6czdpx",Ihftqj:["f13hvwk3","f1en4csx"],Bcgy8vk:"f1i1u9k0",Bhxzhr1:["f1en4csx","f13hvwk3"],B3778ie:["f1qnomq5","f2fl922"],d9w3h3:["f2fl922","f1qnomq5"],Bl18szs:["f1anhtl","f1n2zcl3"],B4j8arr:["f1n2zcl3","f1anhtl"],B2jhnfs:"f16v3d5c",wiictr:"f1su8t2g"},focused:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bb7d1vk:"f226i61",zhwhgb:["f13kzufm","fsx75g8"],dhy2o1:"flujwa2",Gfyso:["fsx75g8","f13kzufm"],Bm4h7ae:"f15bsgw9",B7ys5i9:"f14e48fq",Busjfv9:"f18yb2kv",Bhk32uz:"fd6o370",Bf4ptjt:"fh1cnn4",kclons:["fy7oxxb","f184ne2d"],Bhdgwq3:"fpukqih",Blkhhs4:["f184ne2d","fy7oxxb"],Bqtpl0w:"f99gebs",clg4pj:["f13b0oaq","f8t2bz6"],hgwjuy:"f1jvq617",Bonggc9:["f8t2bz6","f13b0oaq"],B1tsrr9:["f11unbnk","fbd201q"],Dah5zi:["fbd201q","f11unbnk"],Bkh64rk:["f12nqxso","f1uguk4w"],qqdqy8:["f1uguk4w","f12nqxso"],B6dhp37:"f1dvezut",i03rao:["fd0oaoj","f1cwg4i8"],Boxcth7:"fjvm52t",Bsom6fd:["f1cwg4i8","fd0oaoj"],J0r882:"f15fr7a0",Bule8hv:["fwsq40z","fy0y4wt"],Bjwuhne:"f34ld9f",Ghsupd:["fy0y4wt","fwsq40z"]},selectableFocused:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",Bssx7fj:"f1b1k54r",uh7if5:["f4ne723","fqqcjud"],clntm0:"fh7aioi",Dlk2r6:["fqqcjud","f4ne723"],Bm3wd5j:"f1k55ka9",Bbrhkcr:["fgclinu","f16pcs8n"],f1oku:"fycbxed",aywvf2:["f16pcs8n","fgclinu"],B2j2mmj:"ffht0p2",wigs8:"f1p0ul1q",pbfy6t:"f1c901ms",B0v4ure:"f1alokd7",ghq09:"f78i1la",B24cy0v:["f1kvsw7t","f1bw8brt"],Bwckmig:"f8k7e5g",Bvwlmkc:["f1bw8brt","f1kvsw7t"],Bbgo44z:"f125hn41",Bil7v7r:["fgxkx34","f1v56tyl"],skfxo0:"fdxas6f",jo1ztg:["f1v56tyl","fgxkx34"],Ba3ybja:["fxwickw","f1ia5cve"],az1dzo:["f1ia5cve","fxwickw"],vppk2z:["f194aguw","fqicc6c"],B6352mv:["fqicc6c","f194aguw"],nr063g:"fq4eyks",Blmvk6g:["f1ya6x16","ftuszwa"],Bsiemmq:"f1e2iu44",B98u21t:["ftuszwa","f1ya6x16"],B2pnrqr:"f1amxum7",B29w5g4:["f1cec8w7","f554mv0"],Bhhzhcn:"f1sj6kbr",Bec0n69:["f554mv0","f1cec8w7"]},orientationHorizontal:{Beiy3e4:"f1063pyq",Bt984gj:"f122n59",Bnoktp0:"fpfyeui",Idhjb2:"fwi74qw",ihgzqh:["ffcmwrh","f6ppoih"],Bgp6ld0:["f1dc9p14","fd933vt"],Bbucpmy:"f18esqgw"},orientationVertical:{Beiy3e4:"f1vx9l62",Bt4kzjz:["fobhde4","fx5r7kn"],B1ou843:["fx5r7kn","fobhde4"],y1433z:"f19chtn8",B7egwnw:"fuvs6re",B49b4xf:"fy4glsf"},sizeSmall:{B7balbw:"f1pi9uxy",B1h88n7:"f1h1zgly"},sizeMedium:{B7balbw:"frsmuga",B1h88n7:"fuldkky"},sizeLarge:{B7balbw:"f1qua4xo",B1h88n7:"fimkt6v"},filled:{De3pzq:"fxugw4r",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},filledInteractive:{Bceei9c:"f1k6fduh",De3pzq:"fxugw4r",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Jwef8y:"f1knas48",Bvxd0ez:"f1m145df",ecr2s2:"fb40n2d"},filledInteractiveSelected:{De3pzq:"f1nfm20t",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"f1kz6goq"},filledAlternative:{De3pzq:"f1dmdbja",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},filledAlternativeInteractive:{Bceei9c:"f1k6fduh",De3pzq:"f1dmdbja",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Jwef8y:"f1uvynv3",Bvxd0ez:"f1m145df",ecr2s2:"f1yhgkbh"},filledAlternativeInteractiveSelected:{De3pzq:"fjxa0vh",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"fehi0vp"},outline:{De3pzq:"f1c21dwh",E5pizo:"f1couhl3",B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"]},outlineInteractive:{Bceei9c:"f1k6fduh",De3pzq:"f1c21dwh",E5pizo:"f1couhl3",B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"],Jwef8y:"fjxutwb",Be0v6ae:"f1llr77y",B5kxglz:["fzk0khw","fjj8tog"],B3pwyw6:"fb1u8ub",Bymgtzf:["fjj8tog","fzk0khw"],ecr2s2:"fophhak",dmfk:"f1uohb70",B4ofi8:["f1jm7v1n","f1bus3rq"],jgq6uv:"f1fbu7rr",Baxewws:["f1bus3rq","f1jm7v1n"]},outlineInteractiveSelected:{De3pzq:"f1q9pm1r",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"fg59vm4"},subtle:{De3pzq:"fhovq9v",E5pizo:"f1couhl3",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},subtleInteractive:{Bceei9c:"f1k6fduh",De3pzq:"fhovq9v",E5pizo:"f1couhl3",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Jwef8y:"f1t94bn6",ecr2s2:"f1wfn5kd"},subtleInteractiveSelected:{De3pzq:"fq5gl1p",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"f1uqaxdt"},highContrastSelected:{ycbfsm:"fkc42ay",Bsw6fvg:"f1rirnrt",Bbusuzp:"f1lkg8j3",xgfqdd:"f1nkj0oa",Bmmdzwq:"fey3rwa",zkpvhj:["f5jhx11","fff9uym"],B20bydw:"fm7n0jy",Bwwwggl:["fff9uym","f5jhx11"]},highContrastInteractive:{h1vhog:"fpfvv3l",kslmdy:"f1oamsm6",Baaf6ca:"f1il21bs",x9zz3d:"fnn5dk0",Bmmdzwq:"fey3rwa",zkpvhj:["f5jhx11","fff9uym"],B20bydw:"fm7n0jy",Bwwwggl:["fff9uym","f5jhx11"]},select:{qhf8xq:"f1euv43f",Bhzewxz:"fqclxi7",j35jbq:["fiv86kb","f36uhnt"],Bj3rh1h:"f19g0ac"},hiddenCheckbox:{B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",a9b677:"frkrog8",Bqenvij:"f1mpe4l3",qhf8xq:"f1euv43f",Bh84pgu:"fmf1zke",Bgl5zvf:"f1wch0ki",Huce71:"fz5stix"}},{d:[".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".fifeqxg{border-bottom-right-radius:var(--fui-Card--border-radius);}",".f899z7z{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f4h3tyx{border-top-right-radius:var(--fui-Card--border-radius);}",".f18ur2pz{border-top-left-radius:var(--fui-Card--border-radius);}",".f1lplnzb{padding-top:var(--fui-Card--size);}",".f10m5gbb{padding-right:var(--fui-Card--size);}",".f1k04kkk{padding-left:var(--fui-Card--size);}",".fhftqfp{padding-bottom:var(--fui-Card--size);}",".fxsr4vj{column-gap:var(--fui-Card--size);}",".fcvsdzp{row-gap:var(--fui-Card--size);}",".f22iagw{display:flex;}",".f10pi13n{position:relative;}",".f1ewtqcl{box-sizing:border-box;}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1mdlcz9::after{position:absolute;}",".frwkxtg::after{top:0;}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",".fo72kxq::after{bottom:0;}",'.f13zj6fq::after{content:"";}',".f1nwj1ja::after{pointer-events:none;}",".f8rth92::after{border-top-style:solid;}",".flthirb::after{border-right-style:solid;}",".ftkbnf5::after{border-left-style:solid;}",".f1lh990p::after{border-bottom-style:solid;}",".f6czdpx::after{border-top-width:var(--strokeWidthThin);}",".f13hvwk3::after{border-right-width:var(--strokeWidthThin);}",".f1en4csx::after{border-left-width:var(--strokeWidthThin);}",".f1i1u9k0::after{border-bottom-width:var(--strokeWidthThin);}",".f1qnomq5::after{border-bottom-right-radius:var(--fui-Card--border-radius);}",".f2fl922::after{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f1anhtl::after{border-top-right-radius:var(--fui-Card--border-radius);}",".f1n2zcl3::after{border-top-left-radius:var(--fui-Card--border-radius);}",".f16v3d5c>.fui-CardHeader,.f16v3d5c>.fui-CardFooter{flex-shrink:0;}",".f1su8t2g>:not(.fui-CardPreview):not(.fui-CardHeader):not(.fui-CardFooter){flex-grow:1;}",".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",'.f15bsgw9[data-fui-focus-visible]::after{content:"";}',".f14e48fq[data-fui-focus-visible]::after{position:absolute;}",".f18yb2kv[data-fui-focus-visible]::after{pointer-events:none;}",".fd6o370[data-fui-focus-visible]::after{z-index:1;}",".fh1cnn4[data-fui-focus-visible]::after{border-top-style:solid;}",".fy7oxxb[data-fui-focus-visible]::after{border-right-style:solid;}",".f184ne2d[data-fui-focus-visible]::after{border-left-style:solid;}",".fpukqih[data-fui-focus-visible]::after{border-bottom-style:solid;}",".f99gebs[data-fui-focus-visible]::after{border-top-width:var(--strokeWidthThick);}",".f13b0oaq[data-fui-focus-visible]::after{border-right-width:var(--strokeWidthThick);}",".f8t2bz6[data-fui-focus-visible]::after{border-left-width:var(--strokeWidthThick);}",".f1jvq617[data-fui-focus-visible]::after{border-bottom-width:var(--strokeWidthThick);}",".f11unbnk[data-fui-focus-visible]::after{border-bottom-right-radius:var(--fui-Card--border-radius);}",".fbd201q[data-fui-focus-visible]::after{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f12nqxso[data-fui-focus-visible]::after{border-top-right-radius:var(--fui-Card--border-radius);}",".f1uguk4w[data-fui-focus-visible]::after{border-top-left-radius:var(--fui-Card--border-radius);}",".f1dvezut[data-fui-focus-visible]::after{border-top-color:var(--colorStrokeFocus2);}",".fd0oaoj[data-fui-focus-visible]::after{border-right-color:var(--colorStrokeFocus2);}",".f1cwg4i8[data-fui-focus-visible]::after{border-left-color:var(--colorStrokeFocus2);}",".fjvm52t[data-fui-focus-visible]::after{border-bottom-color:var(--colorStrokeFocus2);}",".f15fr7a0[data-fui-focus-visible]::after{top:calc(0px - var(--strokeWidthThick) - -2px);}",".fwsq40z[data-fui-focus-visible]::after{right:calc(0px - var(--strokeWidthThick) - -2px);}",".fy0y4wt[data-fui-focus-visible]::after{left:calc(0px - var(--strokeWidthThick) - -2px);}",".f34ld9f[data-fui-focus-visible]::after{bottom:calc(0px - var(--strokeWidthThick) - -2px);}",".f1b1k54r[data-fui-focus-within]:focus-within{border-top-color:transparent;}",".f4ne723[data-fui-focus-within]:focus-within{border-right-color:transparent;}",".fqqcjud[data-fui-focus-within]:focus-within{border-left-color:transparent;}",".fh7aioi[data-fui-focus-within]:focus-within{border-bottom-color:transparent;}",'.ffht0p2[data-fui-focus-within]:focus-within::after{content:"";}',".f1p0ul1q[data-fui-focus-within]:focus-within::after{position:absolute;}",".f1c901ms[data-fui-focus-within]:focus-within::after{pointer-events:none;}",".f1alokd7[data-fui-focus-within]:focus-within::after{z-index:1;}",".f78i1la[data-fui-focus-within]:focus-within::after{border-top-style:solid;}",".f1kvsw7t[data-fui-focus-within]:focus-within::after{border-right-style:solid;}",".f1bw8brt[data-fui-focus-within]:focus-within::after{border-left-style:solid;}",".f8k7e5g[data-fui-focus-within]:focus-within::after{border-bottom-style:solid;}",".f125hn41[data-fui-focus-within]:focus-within::after{border-top-width:var(--strokeWidthThick);}",".fgxkx34[data-fui-focus-within]:focus-within::after{border-right-width:var(--strokeWidthThick);}",".f1v56tyl[data-fui-focus-within]:focus-within::after{border-left-width:var(--strokeWidthThick);}",".fdxas6f[data-fui-focus-within]:focus-within::after{border-bottom-width:var(--strokeWidthThick);}",".fxwickw[data-fui-focus-within]:focus-within::after{border-bottom-right-radius:var(--fui-Card--border-radius);}",".f1ia5cve[data-fui-focus-within]:focus-within::after{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f194aguw[data-fui-focus-within]:focus-within::after{border-top-right-radius:var(--fui-Card--border-radius);}",".fqicc6c[data-fui-focus-within]:focus-within::after{border-top-left-radius:var(--fui-Card--border-radius);}",".fq4eyks[data-fui-focus-within]:focus-within::after{border-top-color:var(--colorStrokeFocus2);}",".f1ya6x16[data-fui-focus-within]:focus-within::after{border-right-color:var(--colorStrokeFocus2);}",".ftuszwa[data-fui-focus-within]:focus-within::after{border-left-color:var(--colorStrokeFocus2);}",".f1e2iu44[data-fui-focus-within]:focus-within::after{border-bottom-color:var(--colorStrokeFocus2);}",".f1amxum7[data-fui-focus-within]:focus-within::after{top:calc(0px - var(--strokeWidthThick) - -2px);}",".f1cec8w7[data-fui-focus-within]:focus-within::after{right:calc(0px - var(--strokeWidthThick) - -2px);}",".f554mv0[data-fui-focus-within]:focus-within::after{left:calc(0px - var(--strokeWidthThick) - -2px);}",".f1sj6kbr[data-fui-focus-within]:focus-within::after{bottom:calc(0px - var(--strokeWidthThick) - -2px);}",".f1063pyq{flex-direction:row;}",".f122n59{align-items:center;}",".fpfyeui>.fui-CardPreview{margin-top:calc(var(--fui-Card--size) * -1);}",".fwi74qw>.fui-CardPreview{margin-bottom:calc(var(--fui-Card--size) * -1);}",'.ffcmwrh>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-left:calc(var(--fui-Card--size) * -1);}','.f6ppoih>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-right:calc(var(--fui-Card--size) * -1);}','.f1dc9p14>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-right:calc(var(--fui-Card--size) * -1);}','.fd933vt>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-left:calc(var(--fui-Card--size) * -1);}',".f18esqgw>.fui-CardHeader:last-of-type,.f18esqgw>.fui-CardFooter:last-of-type{flex-grow:1;}",".f1vx9l62{flex-direction:column;}",".fobhde4>.fui-CardPreview{margin-left:calc(var(--fui-Card--size) * -1);}",".fx5r7kn>.fui-CardPreview{margin-right:calc(var(--fui-Card--size) * -1);}",'.f19chtn8>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-top:calc(var(--fui-Card--size) * -1);}',".fuvs6re>.fui-Card__floatingAction+.fui-CardPreview{margin-top:calc(var(--fui-Card--size) * -1);}",'.fy4glsf>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-bottom:calc(var(--fui-Card--size) * -1);}',".f1pi9uxy{--fui-Card--size:8px;}",".f1h1zgly{--fui-Card--border-radius:var(--borderRadiusSmall);}",".frsmuga{--fui-Card--size:12px;}",".fuldkky{--fui-Card--border-radius:var(--borderRadiusMedium);}",".f1qua4xo{--fui-Card--size:16px;}",".fimkt6v{--fui-Card--border-radius:var(--borderRadiusLarge);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1whvlc6{box-shadow:var(--shadow4);}",".f16gxe2i::after{border-top-color:var(--colorTransparentStroke);}",".fpgykix::after{border-right-color:var(--colorTransparentStroke);}",".fzybk4o::after{border-left-color:var(--colorTransparentStroke);}",".f1osi826::after{border-bottom-color:var(--colorTransparentStroke);}",".f1k6fduh{cursor:pointer;}",".f1nfm20t{background-color:var(--colorNeutralBackground1Selected);}",".f16eln5f::after{border-top-color:var(--colorNeutralStroke1Selected);}",".fa2okxs::after{border-right-color:var(--colorNeutralStroke1Selected);}",".fg4zq3l::after{border-left-color:var(--colorNeutralStroke1Selected);}",".ff6932p::after{border-bottom-color:var(--colorNeutralStroke1Selected);}",".f1dmdbja{background-color:var(--colorNeutralBackground2);}",".fjxa0vh{background-color:var(--colorNeutralBackground2Selected);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1couhl3{box-shadow:none;}",".ft83z1f::after{border-top-color:var(--colorNeutralStroke1);}",".f1g4150c::after{border-right-color:var(--colorNeutralStroke1);}",".f192dr6e::after{border-left-color:var(--colorNeutralStroke1);}",".f1qnawh6::after{border-bottom-color:var(--colorNeutralStroke1);}",".f1q9pm1r{background-color:var(--colorTransparentBackgroundSelected);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fq5gl1p{background-color:var(--colorSubtleBackgroundSelected);}",".f1euv43f{position:absolute;}",".fqclxi7{top:4px;}",".fiv86kb{right:4px;}",".f36uhnt{left:4px;}",".f19g0ac{z-index:1;}",".frkrog8{width:1px;}",".f1mpe4l3{height:1px;}",".fmf1zke{clip:rect(0 0 0 0);}",".f1wch0ki{clip-path:inset(50%);}",".fz5stix{white-space:nowrap;}"],f:[".ftqa4ok:focus{outline-style:none;}"],i:[".f2hkw1w:focus-visible{outline-style:none;}"],m:[["@media (forced-colors: active){.f226i61[data-fui-focus-visible]::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f13kzufm[data-fui-focus-visible]::after{border-right-color:Highlight;}.fsx75g8[data-fui-focus-visible]::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.flujwa2[data-fui-focus-visible]::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1k55ka9[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f16pcs8n[data-fui-focus-within]:focus-within::after{border-left-color:Highlight;}.fgclinu[data-fui-focus-within]:focus-within::after{border-right-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fycbxed[data-fui-focus-within]:focus-within::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1rirnrt{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lkg8j3{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1nkj0oa .fui-CardPreview,.f1nkj0oa .fui-CardFooter{forced-color-adjust:auto;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fey3rwa::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f5jhx11::after{border-right-color:Highlight;}.fff9uym::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fm7n0jy::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fpfvv3l:hover,.fpfvv3l :active{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1oamsm6:hover,.f1oamsm6 :active{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1il21bs:hover,.f1il21bs :active{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fnn5dk0:hover .fui-CardPreview,.fnn5dk0 :active .fui-CardPreview,.fnn5dk0:hover .fui-CardFooter,.fnn5dk0 :active .fui-CardFooter{forced-color-adjust:auto;}}",{m:"(forced-colors: active)"}]],h:[".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}",".f1m145df:hover{box-shadow:var(--shadow8);}",".f1kz6goq:hover{background-color:var(--colorNeutralBackground1Selected);}",".f1uvynv3:hover{background-color:var(--colorNeutralBackground2Hover);}",".fehi0vp:hover{background-color:var(--colorNeutralBackground2Selected);}",".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".f1llr77y:hover::after{border-top-color:var(--colorNeutralStroke1Hover);}",".fzk0khw:hover::after{border-right-color:var(--colorNeutralStroke1Hover);}",".fjj8tog:hover::after{border-left-color:var(--colorNeutralStroke1Hover);}",".fb1u8ub:hover::after{border-bottom-color:var(--colorNeutralStroke1Hover);}",".fg59vm4:hover{background-color:var(--colorTransparentBackgroundSelected);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".f1uqaxdt:hover{background-color:var(--colorSubtleBackgroundSelected);}"],a:[".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}",".f1yhgkbh:active{background-color:var(--colorNeutralBackground2Pressed);}",".fophhak:active{background-color:var(--colorTransparentBackgroundPressed);}",".f1uohb70:active::after{border-top-color:var(--colorNeutralStroke1Pressed);}",".f1jm7v1n:active::after{border-right-color:var(--colorNeutralStroke1Pressed);}",".f1bus3rq:active::after{border-left-color:var(--colorNeutralStroke1Pressed);}",".f1fbu7rr:active::after{border-bottom-color:var(--colorNeutralStroke1Pressed);}",".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}"]}),useCardStyles_unstable=j=>{const _e=useStyles$j(),et={horizontal:_e.orientationHorizontal,vertical:_e.orientationVertical},tt={small:_e.sizeSmall,medium:_e.sizeMedium,large:_e.sizeLarge},rt={filled:_e.filled,"filled-alternative":_e.filledAlternative,outline:_e.outline,subtle:_e.subtle},nt={filled:_e.filledInteractiveSelected,"filled-alternative":_e.filledAlternativeInteractiveSelected,outline:_e.outlineInteractiveSelected,subtle:_e.subtleInteractiveSelected},ot={filled:_e.filledInteractive,"filled-alternative":_e.filledAlternativeInteractive,outline:_e.outlineInteractive,subtle:_e.subtleInteractive},it=j.interactive||j.selectable,st=reactExports.useMemo(()=>j.selectable?j.selectFocused?_e.selectableFocused:"":_e.focused,[j.selectFocused,j.selectable,_e.focused,_e.selectableFocused]);return j.root.className=mergeClasses(cardClassNames.root,_e.root,et[j.orientation],tt[j.size],rt[j.appearance],it&&ot[j.appearance],j.selected&&nt[j.appearance],st,it&&_e.highContrastInteractive,j.selected&&_e.highContrastSelected,j.root.className),j.floatingAction&&(j.floatingAction.className=mergeClasses(cardClassNames.floatingAction,_e.select,j.floatingAction.className)),j.checkbox&&(j.checkbox.className=mergeClasses(cardClassNames.checkbox,_e.hiddenCheckbox,j.checkbox.className)),j};function useCardContextValue({selectableA11yProps:j}){return{selectableA11yProps:j}}const Card=reactExports.forwardRef((j,_e)=>{const et=useCard_unstable(j,_e),tt=useCardContextValue(et);return useCardStyles_unstable(et),renderCard_unstable(et,tt)});Card.displayName="Card";function getChildWithId(j){function _e(et){return reactExports.isValidElement(et)&&!!et.props.id}return reactExports.Children.toArray(j).find(_e)}function getReferenceId(j,_e,et){return j||(_e!=null&&_e.props.id?_e.props.id:et)}const useCardHeader_unstable=(j,_e)=>{const{image:et,header:tt,description:rt,action:nt}=j,{selectableA11yProps:{referenceId:ot,setReferenceId:it}}=useCardContext_unstable(),st=reactExports.useRef(null),lt=reactExports.useRef(!1),ut=useId$1(cardHeaderClassNames.header,ot),ct=optional(tt,{renderByDefault:!0,defaultProps:{ref:st,id:lt.current?void 0:ot},elementType:"div"});return reactExports.useEffect(()=>{var dt;const ft=lt.current||(dt=st.current)===null||dt===void 0?void 0:dt.id,pt=getChildWithId(ct==null?void 0:ct.children);lt.current=!!pt,it(getReferenceId(ft,pt,ut))},[ut,tt,ct,it]),{components:{root:"div",image:"div",header:"div",description:"div",action:"div"},root:always(getIntrinsicElementProps("div",{ref:_e,...j}),{elementType:"div"}),image:optional(et,{elementType:"div"}),header:ct,description:optional(rt,{elementType:"div"}),action:optional(nt,{elementType:"div"})}},renderCardHeader_unstable=j=>jsxs(j.root,{children:[j.image&&jsx$1(j.image,{}),jsx$1(j.header,{}),j.description&&jsx$1(j.description,{}),j.action&&jsx$1(j.action,{})]}),CardHeader=reactExports.forwardRef((j,_e)=>{const et=useCardHeader_unstable(j,_e);return useCardHeaderStyles_unstable(et),renderCardHeader_unstable(et)});CardHeader.displayName="CardHeader";function getIntentIcon(j){switch(j){case"info":return reactExports.createElement(InfoFilled,null);case"warning":return reactExports.createElement(WarningFilled,null);case"error":return reactExports.createElement(ErrorCircleFilled,null);case"success":return reactExports.createElement(CheckmarkCircleFilled,null);default:return null}}function useMessageBarReflow(j=!1){const{targetDocument:_e}=useFluent(),et=reactExports.useReducer(()=>({}),{})[1],tt=reactExports.useRef(!1),rt=reactExports.useRef(null),nt=reactExports.useRef(-1),ot=reactExports.useCallback(st=>{const lt=st[0],ut=lt==null?void 0:lt.borderBoxSize[0];if(!ut||!lt)return;const{inlineSize:ct}=ut,{target:dt}=lt;if(!isHTMLElement$4(dt))return;let ft;if(tt.current)nt.current{var lt;if(!j||!st||!(_e!=null&&_e.defaultView))return;(lt=rt.current)===null||lt===void 0||lt.disconnect();const ut=_e.defaultView,ct=new ut.ResizeObserver(ot);rt.current=ct,ct.observe(st,{box:"border-box"})},[_e,ot,j]);return reactExports.useEffect(()=>()=>{var st;(st=rt.current)===null||st===void 0||st.disconnect()},[]),{ref:it,reflowing:tt.current}}const messageBarTransitionContext=reactExports.createContext(void 0),messageBarTransitionContextDefaultValue={className:"",nodeRef:reactExports.createRef()};messageBarTransitionContext.Provider;const useMessageBarTransitionContext=()=>{var j;return(j=reactExports.useContext(messageBarTransitionContext))!==null&&j!==void 0?j:messageBarTransitionContextDefaultValue},useMessageBar_unstable=(j,_e)=>{const{layout:et="auto",intent:tt="info",politeness:rt,shape:nt="rounded"}=j,ot=rt??tt==="info"?"polite":"assertive",it=et==="auto",{ref:st,reflowing:lt}=useMessageBarReflow(it),ut=it?lt?"multiline":"singleline":et,{className:ct,nodeRef:dt}=useMessageBarTransitionContext(),ft=reactExports.useRef(null),pt=reactExports.useRef(null),{announce:gt}=useAnnounce(),mt=useId$1();return reactExports.useEffect(()=>{var bt,_t;const xt=(bt=pt.current)===null||bt===void 0?void 0:bt.textContent,yt=(_t=ft.current)===null||_t===void 0?void 0:_t.textContent,Et=[xt,yt].filter(Boolean).join(",");gt(Et,{polite:ot==="polite",alert:ot==="assertive"})},[pt,ft,gt,ot]),{components:{root:"div",icon:"div"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,st,dt),role:"group","aria-labelledby":mt,...j}),{elementType:"div"}),icon:optional(j.icon,{renderByDefault:!0,elementType:"div",defaultProps:{children:getIntentIcon(tt)}}),layout:ut,intent:tt,transitionClassName:ct,actionsRef:ft,bodyRef:pt,titleId:mt,shape:nt}},messageBarContext=reactExports.createContext(void 0),messageBarContextDefaultValue={titleId:"",layout:"singleline",actionsRef:reactExports.createRef(),bodyRef:reactExports.createRef()},MessageBarContextProvider=messageBarContext.Provider,useMessageBarContext=()=>{var j;return(j=reactExports.useContext(messageBarContext))!==null&&j!==void 0?j:messageBarContextDefaultValue},renderMessageBar_unstable=(j,_e)=>jsx$1(MessageBarContextProvider,{value:_e.messageBar,children:jsxs(j.root,{children:[j.icon&&jsx$1(j.icon,{}),j.root.children]})}),messageBarClassNames={root:"fui-MessageBar",icon:"fui-MessageBar__icon"},useRootBaseStyles$2=__resetStyles("rashqx","ri1c0vc",['.rashqx{white-space:nowrap;display:grid;grid-template-columns:auto 1fr auto auto;grid-template-rows:1fr;grid-template-areas:"icon body secondaryActions actions";padding-left:var(--spacingHorizontalM);border-top-width:var(--strokeWidthThin);border-right-width:var(--strokeWidthThin);border-bottom-width:var(--strokeWidthThin);border-left-width:var(--strokeWidthThin);border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:var(--colorNeutralStroke1);border-right-color:var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStroke1);border-left-color:var(--colorNeutralStroke1);border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);align-items:center;min-height:36px;box-sizing:border-box;background-color:var(--colorNeutralBackground3);}','.ri1c0vc{white-space:nowrap;display:grid;grid-template-columns:auto 1fr auto auto;grid-template-rows:1fr;grid-template-areas:"icon body secondaryActions actions";padding-right:var(--spacingHorizontalM);border-top-width:var(--strokeWidthThin);border-left-width:var(--strokeWidthThin);border-bottom-width:var(--strokeWidthThin);border-right-width:var(--strokeWidthThin);border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-color:var(--colorNeutralStroke1);border-left-color:var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStroke1);border-right-color:var(--colorNeutralStroke1);border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);align-items:center;min-height:36px;box-sizing:border-box;background-color:var(--colorNeutralBackground3);}']),useIconBaseStyles=__resetStyles("r1bxgyar","rv8i6h8",[".r1bxgyar{grid-row-start:icon;grid-column-start:icon;grid-row-end:icon;grid-column-end:icon;font-size:var(--fontSizeBase500);margin-right:var(--spacingHorizontalS);color:var(--colorNeutralForeground3);display:flex;align-items:center;}",".rv8i6h8{grid-row-start:icon;grid-column-start:icon;grid-row-end:icon;grid-column-end:icon;font-size:var(--fontSizeBase500);margin-left:var(--spacingHorizontalS);color:var(--colorNeutralForeground3);display:flex;align-items:center;}"]),useStyles$i=__styles({rootMultiline:{Huce71:"f6juhto",Bt984gj:"f1s2louj",z8tnut:"f1ngh7ph",Budl1dq:"f17g0uqy",zoa1oz:"f1w7oly7"},secondaryActionsMultiline:{Brf1p80:"f1e8xxv9",B6of3ja:"f1gaxbfw",jrapky:"fqcjy3b",t21cq0:["fibjyge","f9yszdx"]},square:{Bbmb7ep:["f1krrbdw","f1deotkl"],Beyfa6y:["f1deotkl","f1krrbdw"],B7oj6ja:["f10ostut","f1ozlkrg"],Btl43ni:["f1ozlkrg","f10ostut"]}},{d:[".f6juhto{white-space:normal;}",".f1s2louj{align-items:start;}",".f1ngh7ph{padding-top:var(--spacingVerticalMNudge);}",".f17g0uqy{grid-template-columns:auto 1fr auto;}",'.f1w7oly7{grid-template-areas:"icon body actions" "secondaryActions secondaryActions secondaryActions";}',".f1e8xxv9{justify-content:end;}",".f1gaxbfw{margin-top:var(--spacingVerticalMNudge);}",".fqcjy3b{margin-bottom:var(--spacingVerticalS);}",".fibjyge{margin-right:0px;}",".f9yszdx{margin-left:0px;}",".f1krrbdw{border-bottom-right-radius:0;}",".f1deotkl{border-bottom-left-radius:0;}",".f10ostut{border-top-right-radius:0;}",".f1ozlkrg{border-top-left-radius:0;}"]}),useIconIntentStyles=__styles({info:{},error:{sj55zd:"f1ca9wz"},warning:{sj55zd:"f14a4cve"},success:{sj55zd:"f36rra6"}},{d:[".f1ca9wz{color:var(--colorStatusDangerForeground1);}",".f14a4cve{color:var(--colorStatusWarningForeground3);}",".f36rra6{color:var(--colorStatusSuccessForeground1);}"]}),useRootIntentStyles=__styles({info:{},error:{De3pzq:"f1eon7jj",g2u3we:"f1f8dvr7",h3c5rm:["f1g1ijmo","f1nxacbt"],B9xav0g:"fo25q1j",zhjwy3:["f1nxacbt","f1g1ijmo"]},warning:{De3pzq:"f13ftzij",g2u3we:"frd1ypx",h3c5rm:["f1gyjrma","f18qd5xz"],B9xav0g:"fqyqtrt",zhjwy3:["f18qd5xz","f1gyjrma"]},success:{De3pzq:"f64thcm",g2u3we:"f1b4u7v",h3c5rm:["f1nyd2b1","f70v3om"],B9xav0g:"fk173vo",zhjwy3:["f70v3om","f1nyd2b1"]}},{d:[".f1eon7jj{background-color:var(--colorStatusDangerBackground1);}",".f1f8dvr7{border-top-color:var(--colorStatusDangerBorder1);}",".f1g1ijmo{border-right-color:var(--colorStatusDangerBorder1);}",".f1nxacbt{border-left-color:var(--colorStatusDangerBorder1);}",".fo25q1j{border-bottom-color:var(--colorStatusDangerBorder1);}",".f13ftzij{background-color:var(--colorStatusWarningBackground1);}",".frd1ypx{border-top-color:var(--colorStatusWarningBorder1);}",".f1gyjrma{border-right-color:var(--colorStatusWarningBorder1);}",".f18qd5xz{border-left-color:var(--colorStatusWarningBorder1);}",".fqyqtrt{border-bottom-color:var(--colorStatusWarningBorder1);}",".f64thcm{background-color:var(--colorStatusSuccessBackground1);}",".f1b4u7v{border-top-color:var(--colorStatusSuccessBorder1);}",".f1nyd2b1{border-right-color:var(--colorStatusSuccessBorder1);}",".f70v3om{border-left-color:var(--colorStatusSuccessBorder1);}",".fk173vo{border-bottom-color:var(--colorStatusSuccessBorder1);}"]}),useMessageBarStyles_unstable=j=>{const _e=useRootBaseStyles$2(),et=useIconBaseStyles(),tt=useIconIntentStyles(),rt=useRootIntentStyles(),nt=useStyles$i();return j.root.className=mergeClasses(messageBarClassNames.root,_e,j.layout==="multiline"&&nt.rootMultiline,j.shape==="square"&&nt.square,rt[j.intent],j.transitionClassName,j.root.className),j.icon&&(j.icon.className=mergeClasses(messageBarClassNames.icon,et,tt[j.intent],j.icon.className)),j};function useMessageBarContextValue_unstable(j){const{layout:_e,actionsRef:et,bodyRef:tt,titleId:rt}=j;return{messageBar:reactExports.useMemo(()=>({layout:_e,actionsRef:et,bodyRef:tt,titleId:rt}),[_e,et,tt,rt])}}const MessageBar=reactExports.forwardRef((j,_e)=>{const et=useMessageBar_unstable(j,_e);return useMessageBarStyles_unstable(et),useCustomStyleHook("useMessageBarStyles_unstable")(et),renderMessageBar_unstable(et,useMessageBarContextValue_unstable(et))});MessageBar.displayName="MessageBar";const useMessageBarTitle_unstable=(j,_e)=>{const{titleId:et}=useMessageBarContext();return{components:{root:"span"},root:always(getIntrinsicElementProps("span",{ref:_e,id:et,...j}),{elementType:"span"})}},renderMessageBarTitle_unstable=j=>jsx$1(j.root,{}),messageBarTitleClassNames={root:"fui-MessageBarTitle"},useRootBaseStyles$1=__resetStyles("r168xkm9",null,[".r168xkm9{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase300);}",'.r168xkm9::after{content:" ";}']),useMessageBarTitleStyles_unstable=j=>{const _e=useRootBaseStyles$1();return j.root.className=mergeClasses(messageBarTitleClassNames.root,_e,j.root.className),j},MessageBarTitle=reactExports.forwardRef((j,_e)=>{const et=useMessageBarTitle_unstable(j,_e);return useMessageBarTitleStyles_unstable(et),useCustomStyleHook("useMessageBarTitleStyles_unstable")(et),renderMessageBarTitle_unstable(et)});MessageBarTitle.displayName="MessageBarTitle";const useMessageBarBody_unstable=(j,_e)=>{const{bodyRef:et}=useMessageBarContext();return{components:{root:"div"},root:always(getIntrinsicElementProps("div",{ref:useMergedRefs$1(_e,et),...j}),{elementType:"div"})}},renderMessageBarBody_unstable=j=>jsx$1(j.root,{}),messageBarBodyClassNames={root:"fui-MessageBarBody"},useRootBaseStyles=__resetStyles("rnv3mfe","r1ixc1x8",[".rnv3mfe{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);grid-row-start:body;grid-column-start:body;grid-row-end:body;grid-column-end:body;padding-right:var(--spacingHorizontalM);}",".r1ixc1x8{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);grid-row-start:body;grid-column-start:body;grid-row-end:body;grid-column-end:body;padding-left:var(--spacingHorizontalM);}"]),useMessageBarBodyStyles_unstable=j=>{const _e=useRootBaseStyles();return j.root.className=mergeClasses(messageBarBodyClassNames.root,_e,j.root.className),j},MessageBarBody=reactExports.forwardRef((j,_e)=>{const et=useMessageBarBody_unstable(j,_e);return useMessageBarBodyStyles_unstable(et),useCustomStyleHook("useMessageBarBodyStyles_unstable")(et),renderMessageBarBody_unstable(et)});MessageBarBody.displayName="MessageBarBody";const useReducedMotion=()=>{var j;const _e=useFluent(),et=reactExports.useRef(!1),tt=canUseDOM$3()&&((j=_e.targetDocument)===null||j===void 0?void 0:j.defaultView),rt=reactExports.useCallback(nt=>{et.current=nt.matches},[]);return useIsomorphicLayoutEffect$1(()=>{if(!tt||!tt.matchMedia)return;const nt=tt.matchMedia("screen and (prefers-reduced-motion: reduce)");return nt.matches&&(et.current=!0),nt.addEventListener("change",rt),()=>nt.removeEventListener("change",rt)},[rt,tt]),et.current},getCSSStyle=j=>hasCSSOMSupport(j)?j.computedStyleMap():getElementComputedStyle(j),hasCSSOMSupport=j=>!!(typeof CSS<"u"&&CSS.number&&j.computedStyleMap),getElementComputedStyle=j=>{var _e,et;const tt=canUseDOM$3()&&((et=(_e=j.ownerDocument)===null||_e===void 0?void 0:_e.defaultView)!==null&&et!==void 0?et:window);return tt?tt.getComputedStyle(j,null):{getPropertyValue:rt=>""}};function toMs(j){const _e=j.trim();if(_e.includes("auto"))return 0;if(_e.endsWith("ms")){const et=Number(_e.replace("ms",""));return isNaN(et)?0:et}return Number(_e.slice(0,-1).replace(",","."))*1e3}const getComputedMapProp=(j,_e)=>{const et=j.getAll(_e);return et.length>0?et.map(({value:tt,unit:rt})=>`${tt}${rt}`):["0"]},getComputedStyleProp=(j,_e)=>{const et=j.getPropertyValue(_e);return et?et.split(","):["0"]},getMaxCSSDuration=(j,_e)=>{const et=Math.max(j.length,_e.length),tt=[];if(et===0)return 0;for(let rt=0;rt{const _e=hasCSSOMSupport(j),et=getCSSStyle(j),tt=ot=>_e?getComputedMapProp(et,ot):getComputedStyleProp(et,ot),rt=getMaxCSSDuration(tt("transition-duration"),tt("transition-delay")),nt=getMaxCSSDuration(tt("animation-duration"),tt("animation-delay"));return Math.max(rt,nt)},useFirstMountCondition=j=>{const _e=reactExports.useRef(!0);return _e.current&&j?(_e.current=!1,!0):_e.current};function useMotionPresence(j,_e={}){const{animateOnFirstMount:et,duration:tt}={animateOnFirstMount:!1,..._e},[rt,nt]=reactExports.useState(j&&et?"entering":j?"idle":"unmounted"),[ot,it]=reactExports.useState(!et&&j),[st,lt]=useTimeout(),[ut,ct]=useTimeout(),[dt,ft]=useAnimationFrame(),[pt,gt]=reactExports.useState(null),mt=useReducedMotion(),bt=useFirstMount(),_t=useFirstMountCondition(!!pt),xt=reactExports.useRef(j).current,yt=mt||_t&&xt&&!et,Et=reactExports.useCallback(kt=>{kt&>(kt)},[]),St=reactExports.useCallback(kt=>(ut(()=>dt(kt),0),()=>{ct(),ft()}),[ft,ct,dt,ut]),Tt=reactExports.useCallback(()=>{nt(j?"entered":"exited"),St(()=>nt(j?"idle":"unmounted"))},[St,j]);return reactExports.useEffect(()=>{if(!bt){if(yt){nt(j?"idle":"unmounted"),it(j);return}if(nt(j?"entering":"exiting"),!!pt)return St(()=>{it(j),St(()=>{const kt=tt||getMotionDuration(pt);if(kt===0){Tt();return}st(()=>Tt(),kt)})}),()=>lt()}},[pt,yt,Tt,j]),reactExports.useMemo(()=>({ref:Et,type:rt,active:ot,canRender:j||rt!=="unmounted"}),[ot,rt,j])}function useMotion(j,_e){const et=typeof j=="object",tt=useMotionPresence(et?!1:j,_e);return et?j:tt}const useReducedMotionStyles=__styles({reduced:{Hwfdqs:"f1bggi9a"}},{m:[["@media screen and (prefers-reduced-motion: reduce){.f1bggi9a{transition-duration:0.01ms!important;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]});function assertMotionStyles(j){}const useMotionClassNames=(j,_e)=>{const{reduced:et}=useReducedMotionStyles(),tt=reactExports.useMemo(()=>!_e.enter&&!_e.exit?"":j.active||j.type==="idle"?_e.enter:j.active?"":_e.exit,[j.active,j.type,_e.enter,_e.exit]);return reactExports.useEffect(()=>void 0,[_e]),mergeClasses(_e.default,tt,_e[j.type],et)};function useDrawerDefaultProps(j){const{open:_e=!1,size:et="small",position:tt="start"}=j;return{size:et,position:tt,open:_e}}const useBackdropResetStyles=__resetStyles("rivxbo","r1trjn1z",[".rivxbo{top:0px;right:0px;bottom:0px;left:0px;position:fixed;background-color:rgba(0, 0, 0, 0.4);}",".r1trjn1z{top:0px;left:0px;bottom:0px;right:0px;position:fixed;background-color:rgba(0, 0, 0, 0.4);}"]),useBackdropStyles=__styles({nested:{De3pzq:"f1c21dwh"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}"]}),useOverlayDrawerSurfaceStyles_unstable=j=>{const _e=useBackdropResetStyles(),et=useBackdropStyles();return j.backdrop&&(j.backdrop.className=mergeClasses(_e,j.isNestedDialog&&et.nested,j.backdrop.className)),j},OverlayDrawerSurface=reactExports.forwardRef((j,_e)=>{const et=useDialogSurface_unstable(j,_e),tt=useDialogSurfaceContextValues_unstable();return useOverlayDrawerSurfaceStyles_unstable(et),renderDialogSurface_unstable(et,tt)});OverlayDrawerSurface.displayName="OverlayDrawerSurface";const useOverlayDrawer_unstable=(j,_e)=>{const{open:et,size:tt,position:rt}=useDrawerDefaultProps(j),{modalType:nt="modal",inertTrapFocus:ot,defaultOpen:it=!1,onOpenChange:st}=j,lt=useMotion(et),ut=resolveShorthand(j.backdrop),dt=always({...j,backdrop:nt!=="non-modal"&&ut!==null?{...ut}:null},{elementType:OverlayDrawerSurface,defaultProps:{ref:useMergedRefs$1(_e,lt.ref)}}),ft=always({open:!0,defaultOpen:it,onOpenChange:st,inertTrapFocus:ot,modalType:nt,children:null},{elementType:Dialog});return{components:{root:OverlayDrawerSurface,dialog:Dialog},root:dt,dialog:ft,size:tt,position:rt,motion:lt}},renderOverlayDrawer_unstable=j=>j.motion.canRender?jsx$1(j.dialog,{children:jsx$1(j.root,{})}):null,useDrawerStyles=__styles({entering:{Bkqvd7p:"f18ad807"},exiting:{Bkqvd7p:"f1mfizis"},reducedMotion:{Hwfdqs:"f5e8c63"},start:{Bekrc4i:["f5tn483","f1ojsxk5"],vrafjx:["fcdblym","fjik90z"],h3c5rm:["f1gn591s","fjscplz"],oyh7mz:["f1vgc2s3","f1e31b4d"],j35jbq:["fvfyk4","frppm18"]},end:{ibv6hh:["f1ojsxk5","f5tn483"],wvpqe5:["fjik90z","fcdblym"],zhjwy3:["fjscplz","f1gn591s"],j35jbq:["f1e31b4d","f1vgc2s3"],oyh7mz:["frppm18","fvfyk4"]},small:{Bjr0ffy:"f1exhnwo"},medium:{Bjr0ffy:"fqofjzu"},large:{Bjr0ffy:"fce6y3m"},full:{Bjr0ffy:"fsdmzs6"}},{d:[".f18ad807{transition-timing-function:var(--curveDecelerateMid);}",".f1mfizis{transition-timing-function:var(--curveAccelerateMin);}",".f5tn483{border-right-width:var(--strokeWidthThin);}",".f1ojsxk5{border-left-width:var(--strokeWidthThin);}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".f1vgc2s3{left:0;}",".f1e31b4d{right:0;}",".fvfyk4{right:auto;}",".frppm18{left:auto;}",".f1exhnwo{--fui-Drawer--size:320px;}",".fqofjzu{--fui-Drawer--size:592px;}",".fce6y3m{--fui-Drawer--size:940px;}",".fsdmzs6{--fui-Drawer--size:100vw;}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f5e8c63{transition-duration:0.001ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]}),useDrawerDurationStyles=__styles({small:{B3o57yi:"fc397y7"},medium:{B3o57yi:"f78771"},large:{B3o57yi:"f9ymmep"},full:{B3o57yi:"f1loko9l"}},{d:[".fc397y7{transition-duration:var(--durationGentle);}",".f78771{transition-duration:var(--durationSlow);}",".f9ymmep{transition-duration:var(--durationSlower);}",".f1loko9l{transition-duration:var(--durationUltraSlow);}"]}),useDrawerBaseClassNames=({position:j,size:_e,motion:et})=>{const tt=useDrawerStyles(),rt=useDrawerDurationStyles();return mergeClasses(tt[j],rt[_e],tt[_e],tt.reducedMotion,et.type==="entering"&&tt.entering,et.type==="exiting"&&tt.exiting)},overlayDrawerClassNames={root:"fui-OverlayDrawer",backdrop:"fui-OverlayDrawer__backdrop"},useDrawerResetStyles=__resetStyles("r1vxc6jp","r1uky7bi",{r:[".r1vxc6jp{overflow-x:hidden;overflow-y:hidden;width:var(--fui-Drawer--size);max-width:100vw;height:auto;max-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);position:fixed;top:0;bottom:0;}",".r1vxc6jp:focus{outline-style:none;}",".r1vxc6jp:focus-visible{outline-style:none;}",".r1vxc6jp[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.r1vxc6jp[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:2px;border-right-width:2px;border-bottom-width:2px;border-left-width:2px;border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".r1uky7bi{overflow-x:hidden;overflow-y:hidden;width:var(--fui-Drawer--size);max-width:100vw;height:auto;max-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);position:fixed;top:0;bottom:0;}",".r1uky7bi:focus{outline-style:none;}",".r1uky7bi:focus-visible{outline-style:none;}",".r1uky7bi[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.r1uky7bi[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:2px;border-left-width:2px;border-bottom-width:2px;border-right-width:2px;border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.r1vxc6jp[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media (forced-colors: active){.r1uky7bi[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}"]}),useDrawerRootStyles=__styles({start:{Bz10aip:"f1d8gkik"},end:{Bz10aip:"f1g0pcr8"}},{d:[".f1d8gkik{transform:translate3D(calc(var(--fui-Drawer--size) * -1), 0, 0);}",".f1g0pcr8{transform:translate3D(calc(var(--fui-Drawer--size) * 1), 0, 0);}"]}),useDrawerMotionStyles=__styles({default:{abs64n:"fk73vx1",E5pizo:"ff88big",Bmy1vo4:"f1neo61",Es3by:"f1ytgekk"},enter:{abs64n:"f5p0z4x",Bz10aip:"f87uvqx",E5pizo:"f10nrhrw"}},{d:[".fk73vx1{opacity:0;}",".ff88big{box-shadow:0px var(--colorTransparentBackground);}",".f1neo61{transition-property:transform,box-shadow,opacity;}",".f1ytgekk{will-change:transform,box-shadow,opacity;}",".f5p0z4x{opacity:1;}",".f87uvqx{transform:translate3D(0, 0, 0);}",".f10nrhrw{box-shadow:var(--shadow64);}"]}),useBackdropMotionStyles=__styles({default:{abs64n:"fk73vx1",Bmy1vo4:"f13u1uyl",Bkqvd7p:"f17wnm97",Es3by:"f1gqqdtu"},enter:{abs64n:"f5p0z4x"}},{d:[".fk73vx1{opacity:0;}",".f13u1uyl{transition-property:opacity;}",".f17wnm97{transition-timing-function:var(--curveEasyEase);}",".f1gqqdtu{will-change:opacity;}",".f5p0z4x{opacity:1;}"]}),useOverlayDrawerStyles_unstable=j=>{const _e=useDrawerBaseClassNames(j),et=useDrawerResetStyles(),tt=useDrawerRootStyles(),rt=useDrawerDurationStyles(),nt=useMotionClassNames(j.motion,useDrawerMotionStyles()),ot=useMotionClassNames(j.motion,useBackdropMotionStyles()),it=j.root.backdrop;return j.root.className=mergeClasses(overlayDrawerClassNames.root,_e,et,tt[j.position],nt,j.root.className),it&&(it.className=mergeClasses(overlayDrawerClassNames.backdrop,ot,rt[j.size],it.className)),j},OverlayDrawer=reactExports.forwardRef((j,_e)=>{const et=useOverlayDrawer_unstable(j,_e);return useOverlayDrawerStyles_unstable(et),useCustomStyleHook("useDrawerOverlayStyles_unstable")(et),useCustomStyleHook("useOverlayDrawerStyles_unstable")(et),renderOverlayDrawer_unstable(et)});OverlayDrawer.displayName="OverlayDrawer";var axios$1={exports:{}},bind$2=function(_e,et){return function(){for(var rt=new Array(arguments.length),nt=0;nt"u"}function isBuffer$4(j){return j!==null&&!isUndefined(j)&&j.constructor!==null&&!isUndefined(j.constructor)&&typeof j.constructor.isBuffer=="function"&&j.constructor.isBuffer(j)}function isArrayBuffer(j){return toString$5.call(j)==="[object ArrayBuffer]"}function isFormData(j){return typeof FormData<"u"&&j instanceof FormData}function isArrayBufferView(j){var _e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?_e=ArrayBuffer.isView(j):_e=j&&j.buffer&&j.buffer instanceof ArrayBuffer,_e}function isString$2(j){return typeof j=="string"}function isNumber$5(j){return typeof j=="number"}function isObject$j(j){return j!==null&&typeof j=="object"}function isPlainObject$3(j){if(toString$5.call(j)!=="[object Object]")return!1;var _e=Object.getPrototypeOf(j);return _e===null||_e===Object.prototype}function isDate(j){return toString$5.call(j)==="[object Date]"}function isFile(j){return toString$5.call(j)==="[object File]"}function isBlob(j){return toString$5.call(j)==="[object Blob]"}function isFunction$7(j){return toString$5.call(j)==="[object Function]"}function isStream(j){return isObject$j(j)&&isFunction$7(j.pipe)}function isURLSearchParams(j){return typeof URLSearchParams<"u"&&j instanceof URLSearchParams}function trim$1(j){return j.trim?j.trim():j.replace(/^\s+|\s+$/g,"")}function isStandardBrowserEnv(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function forEach(j,_e){if(!(j===null||typeof j>"u"))if(typeof j!="object"&&(j=[j]),isArray$i(j))for(var et=0,tt=j.length;et"u"||(utils$8.isArray(st)?lt=lt+"[]":st=[st],utils$8.forEach(st,function(ct){utils$8.isDate(ct)?ct=ct.toISOString():utils$8.isObject(ct)&&(ct=JSON.stringify(ct)),nt.push(encode$1(lt)+"="+encode$1(ct))}))}),rt=nt.join("&")}if(rt){var ot=_e.indexOf("#");ot!==-1&&(_e=_e.slice(0,ot)),_e+=(_e.indexOf("?")===-1?"?":"&")+rt}return _e},utils$7=utils$9;function InterceptorManager$1(){this.handlers=[]}InterceptorManager$1.prototype.use=function(_e,et,tt){return this.handlers.push({fulfilled:_e,rejected:et,synchronous:tt?tt.synchronous:!1,runWhen:tt?tt.runWhen:null}),this.handlers.length-1};InterceptorManager$1.prototype.eject=function(_e){this.handlers[_e]&&(this.handlers[_e]=null)};InterceptorManager$1.prototype.forEach=function(_e){utils$7.forEach(this.handlers,function(tt){tt!==null&&_e(tt)})};var InterceptorManager_1=InterceptorManager$1,utils$6=utils$9,normalizeHeaderName$1=function(_e,et){utils$6.forEach(_e,function(rt,nt){nt!==et&&nt.toUpperCase()===et.toUpperCase()&&(_e[et]=rt,delete _e[nt])})},enhanceError$1=function(_e,et,tt,rt,nt){return _e.config=et,tt&&(_e.code=tt),_e.request=rt,_e.response=nt,_e.isAxiosError=!0,_e.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:this.config,code:this.code}},_e},createError,hasRequiredCreateError;function requireCreateError(){if(hasRequiredCreateError)return createError;hasRequiredCreateError=1;var j=enhanceError$1;return createError=function(et,tt,rt,nt,ot){var it=new Error(et);return j(it,tt,rt,nt,ot)},createError}var settle,hasRequiredSettle;function requireSettle(){if(hasRequiredSettle)return settle;hasRequiredSettle=1;var j=requireCreateError();return settle=function(et,tt,rt){var nt=rt.config.validateStatus;!rt.status||!nt||nt(rt.status)?et(rt):tt(j("Request failed with status code "+rt.status,rt.config,null,rt.request,rt))},settle}var cookies,hasRequiredCookies;function requireCookies(){if(hasRequiredCookies)return cookies;hasRequiredCookies=1;var j=utils$9;return cookies=j.isStandardBrowserEnv()?function(){return{write:function(tt,rt,nt,ot,it,st){var lt=[];lt.push(tt+"="+encodeURIComponent(rt)),j.isNumber(nt)&<.push("expires="+new Date(nt).toGMTString()),j.isString(ot)&<.push("path="+ot),j.isString(it)&<.push("domain="+it),st===!0&<.push("secure"),document.cookie=lt.join("; ")},read:function(tt){var rt=document.cookie.match(new RegExp("(^|;\\s*)("+tt+")=([^;]*)"));return rt?decodeURIComponent(rt[3]):null},remove:function(tt){this.write(tt,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}(),cookies}var isAbsoluteURL,hasRequiredIsAbsoluteURL;function requireIsAbsoluteURL(){return hasRequiredIsAbsoluteURL||(hasRequiredIsAbsoluteURL=1,isAbsoluteURL=function(_e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(_e)}),isAbsoluteURL}var combineURLs,hasRequiredCombineURLs;function requireCombineURLs(){return hasRequiredCombineURLs||(hasRequiredCombineURLs=1,combineURLs=function(_e,et){return et?_e.replace(/\/+$/,"")+"/"+et.replace(/^\/+/,""):_e}),combineURLs}var buildFullPath,hasRequiredBuildFullPath;function requireBuildFullPath(){if(hasRequiredBuildFullPath)return buildFullPath;hasRequiredBuildFullPath=1;var j=requireIsAbsoluteURL(),_e=requireCombineURLs();return buildFullPath=function(tt,rt){return tt&&!j(rt)?_e(tt,rt):rt},buildFullPath}var parseHeaders,hasRequiredParseHeaders;function requireParseHeaders(){if(hasRequiredParseHeaders)return parseHeaders;hasRequiredParseHeaders=1;var j=utils$9,_e=["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"];return parseHeaders=function(tt){var rt={},nt,ot,it;return tt&&j.forEach(tt.split(` +`),function(lt){if(it=lt.indexOf(":"),nt=j.trim(lt.substr(0,it)).toLowerCase(),ot=j.trim(lt.substr(it+1)),nt){if(rt[nt]&&_e.indexOf(nt)>=0)return;nt==="set-cookie"?rt[nt]=(rt[nt]?rt[nt]:[]).concat([ot]):rt[nt]=rt[nt]?rt[nt]+", "+ot:ot}}),rt},parseHeaders}var isURLSameOrigin,hasRequiredIsURLSameOrigin;function requireIsURLSameOrigin(){if(hasRequiredIsURLSameOrigin)return isURLSameOrigin;hasRequiredIsURLSameOrigin=1;var j=utils$9;return isURLSameOrigin=j.isStandardBrowserEnv()?function(){var et=/(msie|trident)/i.test(navigator.userAgent),tt=document.createElement("a"),rt;function nt(ot){var it=ot;return et&&(tt.setAttribute("href",it),it=tt.href),tt.setAttribute("href",it),{href:tt.href,protocol:tt.protocol?tt.protocol.replace(/:$/,""):"",host:tt.host,search:tt.search?tt.search.replace(/^\?/,""):"",hash:tt.hash?tt.hash.replace(/^#/,""):"",hostname:tt.hostname,port:tt.port,pathname:tt.pathname.charAt(0)==="/"?tt.pathname:"/"+tt.pathname}}return rt=nt(window.location.href),function(it){var st=j.isString(it)?nt(it):it;return st.protocol===rt.protocol&&st.host===rt.host}}():function(){return function(){return!0}}(),isURLSameOrigin}var xhr,hasRequiredXhr;function requireXhr(){if(hasRequiredXhr)return xhr;hasRequiredXhr=1;var j=utils$9,_e=requireSettle(),et=requireCookies(),tt=buildURL$1,rt=requireBuildFullPath(),nt=requireParseHeaders(),ot=requireIsURLSameOrigin(),it=requireCreateError();return xhr=function(lt){return new Promise(function(ct,dt){var ft=lt.data,pt=lt.headers,gt=lt.responseType;j.isFormData(ft)&&delete pt["Content-Type"];var mt=new XMLHttpRequest;if(lt.auth){var bt=lt.auth.username||"",_t=lt.auth.password?unescape(encodeURIComponent(lt.auth.password)):"";pt.Authorization="Basic "+btoa(bt+":"+_t)}var xt=rt(lt.baseURL,lt.url);mt.open(lt.method.toUpperCase(),tt(xt,lt.params,lt.paramsSerializer),!0),mt.timeout=lt.timeout;function yt(){if(mt){var St="getAllResponseHeaders"in mt?nt(mt.getAllResponseHeaders()):null,Tt=!gt||gt==="text"||gt==="json"?mt.responseText:mt.response,kt={data:Tt,status:mt.status,statusText:mt.statusText,headers:St,config:lt,request:mt};_e(ct,dt,kt),mt=null}}if("onloadend"in mt?mt.onloadend=yt:mt.onreadystatechange=function(){!mt||mt.readyState!==4||mt.status===0&&!(mt.responseURL&&mt.responseURL.indexOf("file:")===0)||setTimeout(yt)},mt.onabort=function(){mt&&(dt(it("Request aborted",lt,"ECONNABORTED",mt)),mt=null)},mt.onerror=function(){dt(it("Network Error",lt,null,mt)),mt=null},mt.ontimeout=function(){var Tt="timeout of "+lt.timeout+"ms exceeded";lt.timeoutErrorMessage&&(Tt=lt.timeoutErrorMessage),dt(it(Tt,lt,lt.transitional&<.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",mt)),mt=null},j.isStandardBrowserEnv()){var Et=(lt.withCredentials||ot(xt))&<.xsrfCookieName?et.read(lt.xsrfCookieName):void 0;Et&&(pt[lt.xsrfHeaderName]=Et)}"setRequestHeader"in mt&&j.forEach(pt,function(Tt,kt){typeof ft>"u"&&kt.toLowerCase()==="content-type"?delete pt[kt]:mt.setRequestHeader(kt,Tt)}),j.isUndefined(lt.withCredentials)||(mt.withCredentials=!!lt.withCredentials),gt&>!=="json"&&(mt.responseType=lt.responseType),typeof lt.onDownloadProgress=="function"&&mt.addEventListener("progress",lt.onDownloadProgress),typeof lt.onUploadProgress=="function"&&mt.upload&&mt.upload.addEventListener("progress",lt.onUploadProgress),lt.cancelToken&<.cancelToken.promise.then(function(Tt){mt&&(mt.abort(),dt(Tt),mt=null)}),ft||(ft=null),mt.send(ft)})},xhr}var utils$5=utils$9,normalizeHeaderName=normalizeHeaderName$1,enhanceError=enhanceError$1,DEFAULT_CONTENT_TYPE={"Content-Type":"application/x-www-form-urlencoded"};function setContentTypeIfUnset(j,_e){!utils$5.isUndefined(j)&&utils$5.isUndefined(j["Content-Type"])&&(j["Content-Type"]=_e)}function getDefaultAdapter(){var j;return(typeof XMLHttpRequest<"u"||typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]")&&(j=requireXhr()),j}function stringifySafely(j,_e,et){if(utils$5.isString(j))try{return(_e||JSON.parse)(j),utils$5.trim(j)}catch(tt){if(tt.name!=="SyntaxError")throw tt}return(et||JSON.stringify)(j)}var defaults$4={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:getDefaultAdapter(),transformRequest:[function(_e,et){return normalizeHeaderName(et,"Accept"),normalizeHeaderName(et,"Content-Type"),utils$5.isFormData(_e)||utils$5.isArrayBuffer(_e)||utils$5.isBuffer(_e)||utils$5.isStream(_e)||utils$5.isFile(_e)||utils$5.isBlob(_e)?_e:utils$5.isArrayBufferView(_e)?_e.buffer:utils$5.isURLSearchParams(_e)?(setContentTypeIfUnset(et,"application/x-www-form-urlencoded;charset=utf-8"),_e.toString()):utils$5.isObject(_e)||et&&et["Content-Type"]==="application/json"?(setContentTypeIfUnset(et,"application/json"),stringifySafely(_e)):_e}],transformResponse:[function(_e){var et=this.transitional,tt=et&&et.silentJSONParsing,rt=et&&et.forcedJSONParsing,nt=!tt&&this.responseType==="json";if(nt||rt&&utils$5.isString(_e)&&_e.length)try{return JSON.parse(_e)}catch(ot){if(nt)throw ot.name==="SyntaxError"?enhanceError(ot,this,"E_JSON_PARSE"):ot}return _e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(_e){return _e>=200&&_e<300}};defaults$4.headers={common:{Accept:"application/json, text/plain, */*"}};utils$5.forEach(["delete","get","head"],function(_e){defaults$4.headers[_e]={}});utils$5.forEach(["post","put","patch"],function(_e){defaults$4.headers[_e]=utils$5.merge(DEFAULT_CONTENT_TYPE)});var defaults_1$1=defaults$4,utils$4=utils$9,defaults$3=defaults_1$1,transformData$1=function(_e,et,tt){var rt=this||defaults$3;return utils$4.forEach(tt,function(ot){_e=ot.call(rt,_e,et)}),_e},isCancel$1,hasRequiredIsCancel;function requireIsCancel(){return hasRequiredIsCancel||(hasRequiredIsCancel=1,isCancel$1=function(_e){return!!(_e&&_e.__CANCEL__)}),isCancel$1}var utils$3=utils$9,transformData=transformData$1,isCancel=requireIsCancel(),defaults$2=defaults_1$1;function throwIfCancellationRequested(j){j.cancelToken&&j.cancelToken.throwIfRequested()}var dispatchRequest$1=function(_e){throwIfCancellationRequested(_e),_e.headers=_e.headers||{},_e.data=transformData.call(_e,_e.data,_e.headers,_e.transformRequest),_e.headers=utils$3.merge(_e.headers.common||{},_e.headers[_e.method]||{},_e.headers),utils$3.forEach(["delete","get","head","post","put","patch","common"],function(rt){delete _e.headers[rt]});var et=_e.adapter||defaults$2.adapter;return et(_e).then(function(rt){return throwIfCancellationRequested(_e),rt.data=transformData.call(_e,rt.data,rt.headers,_e.transformResponse),rt},function(rt){return isCancel(rt)||(throwIfCancellationRequested(_e),rt&&rt.response&&(rt.response.data=transformData.call(_e,rt.response.data,rt.response.headers,_e.transformResponse))),Promise.reject(rt)})},utils$2=utils$9,mergeConfig$2=function(_e,et){et=et||{};var tt={},rt=["url","method","data"],nt=["headers","auth","proxy","params"],ot=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],it=["validateStatus"];function st(dt,ft){return utils$2.isPlainObject(dt)&&utils$2.isPlainObject(ft)?utils$2.merge(dt,ft):utils$2.isPlainObject(ft)?utils$2.merge({},ft):utils$2.isArray(ft)?ft.slice():ft}function lt(dt){utils$2.isUndefined(et[dt])?utils$2.isUndefined(_e[dt])||(tt[dt]=st(void 0,_e[dt])):tt[dt]=st(_e[dt],et[dt])}utils$2.forEach(rt,function(ft){utils$2.isUndefined(et[ft])||(tt[ft]=st(void 0,et[ft]))}),utils$2.forEach(nt,lt),utils$2.forEach(ot,function(ft){utils$2.isUndefined(et[ft])?utils$2.isUndefined(_e[ft])||(tt[ft]=st(void 0,_e[ft])):tt[ft]=st(void 0,et[ft])}),utils$2.forEach(it,function(ft){ft in et?tt[ft]=st(_e[ft],et[ft]):ft in _e&&(tt[ft]=st(void 0,_e[ft]))});var ut=rt.concat(nt).concat(ot).concat(it),ct=Object.keys(_e).concat(Object.keys(et)).filter(function(ft){return ut.indexOf(ft)===-1});return utils$2.forEach(ct,lt),tt};const name="axios",version$2="0.21.4",description="Promise based HTTP client for the browser and node.js",main$1="index.js",scripts={test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository={type:"git",url:"https://github.com/axios/axios.git"},keywords$1=["xhr","http","ajax","promise","node"],author="Matt Zabriskie",license="MIT",bugs={url:"https://github.com/axios/axios/issues"},homepage="https://axios-http.com",devDependencies={coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser$1={"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr="dist/axios.min.js",unpkg="dist/axios.min.js",typings="./index.d.ts",dependencies={"follow-redirects":"^1.14.0"},bundlesize=[{path:"./dist/axios.min.js",threshold:"5kB"}],require$$0={name,version:version$2,description,main:main$1,scripts,repository,keywords:keywords$1,author,license,bugs,homepage,devDependencies,browser:browser$1,jsdelivr,unpkg,typings,dependencies,bundlesize};var pkg=require$$0,validators$3={};["object","boolean","number","function","string","symbol"].forEach(function(j,_e){validators$3[j]=function(tt){return typeof tt===j||"a"+(_e<1?"n ":" ")+j}});var deprecatedWarnings={},currentVerArr=pkg.version.split(".");function isOlderVersion(j,_e){for(var et=_e?_e.split("."):currentVerArr,tt=j.split("."),rt=0;rt<3;rt++){if(et[rt]>tt[rt])return!0;if(et[rt]0;){var nt=tt[rt],ot=_e[nt];if(ot){var it=j[nt],st=it===void 0||ot(it,nt,j);if(st!==!0)throw new TypeError("option "+nt+" must be "+st);continue}if(et!==!0)throw Error("Unknown option "+nt)}}var validator$1={isOlderVersion,assertOptions,validators:validators$3},utils$1=utils$9,buildURL=buildURL$1,InterceptorManager=InterceptorManager_1,dispatchRequest=dispatchRequest$1,mergeConfig$1=mergeConfig$2,validator=validator$1,validators$2=validator.validators;function Axios$1(j){this.defaults=j,this.interceptors={request:new InterceptorManager,response:new InterceptorManager}}Axios$1.prototype.request=function(_e){typeof _e=="string"?(_e=arguments[1]||{},_e.url=arguments[0]):_e=_e||{},_e=mergeConfig$1(this.defaults,_e),_e.method?_e.method=_e.method.toLowerCase():this.defaults.method?_e.method=this.defaults.method.toLowerCase():_e.method="get";var et=_e.transitional;et!==void 0&&validator.assertOptions(et,{silentJSONParsing:validators$2.transitional(validators$2.boolean,"1.0.0"),forcedJSONParsing:validators$2.transitional(validators$2.boolean,"1.0.0"),clarifyTimeoutError:validators$2.transitional(validators$2.boolean,"1.0.0")},!1);var tt=[],rt=!0;this.interceptors.request.forEach(function(dt){typeof dt.runWhen=="function"&&dt.runWhen(_e)===!1||(rt=rt&&dt.synchronous,tt.unshift(dt.fulfilled,dt.rejected))});var nt=[];this.interceptors.response.forEach(function(dt){nt.push(dt.fulfilled,dt.rejected)});var ot;if(!rt){var it=[dispatchRequest,void 0];for(Array.prototype.unshift.apply(it,tt),it=it.concat(nt),ot=Promise.resolve(_e);it.length;)ot=ot.then(it.shift(),it.shift());return ot}for(var st=_e;tt.length;){var lt=tt.shift(),ut=tt.shift();try{st=lt(st)}catch(ct){ut(ct);break}}try{ot=dispatchRequest(st)}catch(ct){return Promise.reject(ct)}for(;nt.length;)ot=ot.then(nt.shift(),nt.shift());return ot};Axios$1.prototype.getUri=function(_e){return _e=mergeConfig$1(this.defaults,_e),buildURL(_e.url,_e.params,_e.paramsSerializer).replace(/^\?/,"")};utils$1.forEach(["delete","get","head","options"],function(_e){Axios$1.prototype[_e]=function(et,tt){return this.request(mergeConfig$1(tt||{},{method:_e,url:et,data:(tt||{}).data}))}});utils$1.forEach(["post","put","patch"],function(_e){Axios$1.prototype[_e]=function(et,tt,rt){return this.request(mergeConfig$1(rt||{},{method:_e,url:et,data:tt}))}});var Axios_1=Axios$1,Cancel_1,hasRequiredCancel;function requireCancel(){if(hasRequiredCancel)return Cancel_1;hasRequiredCancel=1;function j(_e){this.message=_e}return j.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},j.prototype.__CANCEL__=!0,Cancel_1=j,Cancel_1}var CancelToken_1,hasRequiredCancelToken;function requireCancelToken(){if(hasRequiredCancelToken)return CancelToken_1;hasRequiredCancelToken=1;var j=requireCancel();function _e(et){if(typeof et!="function")throw new TypeError("executor must be a function.");var tt;this.promise=new Promise(function(ot){tt=ot});var rt=this;et(function(ot){rt.reason||(rt.reason=new j(ot),tt(rt.reason))})}return _e.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},_e.source=function(){var tt,rt=new _e(function(ot){tt=ot});return{token:rt,cancel:tt}},CancelToken_1=_e,CancelToken_1}var spread$1,hasRequiredSpread;function requireSpread(){return hasRequiredSpread||(hasRequiredSpread=1,spread$1=function(_e){return function(tt){return _e.apply(null,tt)}}),spread$1}var isAxiosError,hasRequiredIsAxiosError;function requireIsAxiosError(){return hasRequiredIsAxiosError||(hasRequiredIsAxiosError=1,isAxiosError=function(_e){return typeof _e=="object"&&_e.isAxiosError===!0}),isAxiosError}var utils=utils$9,bind=bind$2,Axios=Axios_1,mergeConfig=mergeConfig$2,defaults$1=defaults_1$1;function createInstance(j){var _e=new Axios(j),et=bind(Axios.prototype.request,_e);return utils.extend(et,Axios.prototype,_e),utils.extend(et,_e),et}var axios=createInstance(defaults$1);axios.Axios=Axios;axios.create=function(_e){return createInstance(mergeConfig(axios.defaults,_e))};axios.Cancel=requireCancel();axios.CancelToken=requireCancelToken();axios.isCancel=requireIsCancel();axios.all=function(_e){return Promise.all(_e)};axios.spread=requireSpread();axios.isAxiosError=requireIsAxiosError();axios$1.exports=axios;axios$1.exports.default=axios;var rngBrowser={exports:{}},getRandomValues$1=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof window.msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto);if(getRandomValues$1){var rnds8$1=new Uint8Array(16);rngBrowser.exports=function(){return getRandomValues$1(rnds8$1),rnds8$1}}else{var rnds=new Array(16);rngBrowser.exports=function(){for(var _e=0,et;_e<16;_e++)_e&3||(et=Math.random()*4294967296),rnds[_e]=et>>>((_e&3)<<3)&255;return rnds}}var rngBrowserExports=rngBrowser.exports,byteToHex$1=[];for(var i$1=0;i$1<256;++i$1)byteToHex$1[i$1]=(i$1+256).toString(16).substr(1);function bytesToUuid$3(j,_e){var et=_e||0,tt=byteToHex$1;return[tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]]].join("")}var bytesToUuid_1=bytesToUuid$3,rng$2=rngBrowserExports,bytesToUuid$2=bytesToUuid_1,_nodeId,_clockseq,_lastMSecs=0,_lastNSecs=0;function v1$1(j,_e,et){var tt=_e&&et||0,rt=_e||[];j=j||{};var nt=j.node||_nodeId,ot=j.clockseq!==void 0?j.clockseq:_clockseq;if(nt==null||ot==null){var it=rng$2();nt==null&&(nt=_nodeId=[it[0]|1,it[1],it[2],it[3],it[4],it[5]]),ot==null&&(ot=_clockseq=(it[6]<<8|it[7])&16383)}var st=j.msecs!==void 0?j.msecs:new Date().getTime(),lt=j.nsecs!==void 0?j.nsecs:_lastNSecs+1,ut=st-_lastMSecs+(lt-_lastNSecs)/1e4;if(ut<0&&j.clockseq===void 0&&(ot=ot+1&16383),(ut<0||st>_lastMSecs)&&j.nsecs===void 0&&(lt=0),lt>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=st,_lastNSecs=lt,_clockseq=ot,st+=122192928e5;var ct=((st&268435455)*1e4+lt)%4294967296;rt[tt++]=ct>>>24&255,rt[tt++]=ct>>>16&255,rt[tt++]=ct>>>8&255,rt[tt++]=ct&255;var dt=st/4294967296*1e4&268435455;rt[tt++]=dt>>>8&255,rt[tt++]=dt&255,rt[tt++]=dt>>>24&15|16,rt[tt++]=dt>>>16&255,rt[tt++]=ot>>>8|128,rt[tt++]=ot&255;for(var ft=0;ft<6;++ft)rt[tt+ft]=nt[ft];return _e||bytesToUuid$2(rt)}var v1_1=v1$1,rng$1=rngBrowserExports,bytesToUuid$1=bytesToUuid_1;function v4$2(j,_e,et){var tt=_e&&et||0;typeof j=="string"&&(_e=j==="binary"?new Array(16):null,j=null),j=j||{};var rt=j.random||(j.rng||rng$1)();if(rt[6]=rt[6]&15|64,rt[8]=rt[8]&63|128,_e)for(var nt=0;nt<16;++nt)_e[tt+nt]=rt[nt];return _e||bytesToUuid$1(rt)}var v4_1=v4$2,v1=v1_1,v4$1=v4_1,uuid=v4$1;uuid.v1=v1;uuid.v4=v4$1;var uuid_1=uuid;const BASELINE_VARIANT_ID="variant_0",DEFAULT_CHAT_INPUT_NAME="chat_input",DEFAULT_CHAT_HISTORY_NAME="chat_history",DEFAULT_CHAT_OUTPUT_NAME="chat_output";var FlowFeatures=(j=>(j.OpenCodeFileInNode="OpenCodeFileInNode",j.ShowWarningIconOnNode="ShowWarningIconOnNode",j))(FlowFeatures||{}),ConnectionType=(j=>(j.OpenAI="OpenAI",j.AzureOpenAI="AzureOpenAI",j.Serp="Serp",j.Bing="Bing",j.AzureContentModerator="AzureContentModerator",j.Custom="Custom",j.AzureContentSafety="AzureContentSafety",j.CognitiveSearch="CognitiveSearch",j.SubstrateLLM="SubstrateLLM",j.Pinecone="Pinecone",j.Qdrant="Qdrant",j.Weaviate="Weaviate",j.FormRecognizer="FormRecognizer",j.Serverless="Serverless",j))(ConnectionType||{}),FlowType=(j=>(j.Default="Default",j.Evaluation="Evaluation",j.Chat="Chat",j.Rag="Rag",j))(FlowType||{}),InputType=(j=>(j.default="default",j.uionly_hidden="uionly_hidden",j))(InputType||{}),Orientation$1=(j=>(j.Horizontal="Horizontal",j.Vertical="Vertical",j))(Orientation$1||{}),ToolType=(j=>(j.llm="llm",j.python="python",j.action="action",j.prompt="prompt",j.custom_llm="custom_llm",j.csharp="csharp",j.typescript="typescript",j))(ToolType||{}),ValueType=(j=>(j.int="int",j.double="double",j.bool="bool",j.string="string",j.secret="secret",j.prompt_template="prompt_template",j.object="object",j.list="list",j.BingConnection="BingConnection",j.OpenAIConnection="OpenAIConnection",j.AzureOpenAIConnection="AzureOpenAIConnection",j.AzureContentModeratorConnection="AzureContentModeratorConnection",j.CustomConnection="CustomConnection",j.AzureContentSafetyConnection="AzureContentSafetyConnection",j.SerpConnection="SerpConnection",j.CognitiveSearchConnection="CognitiveSearchConnection",j.SubstrateLLMConnection="SubstrateLLMConnection",j.PineconeConnection="PineconeConnection",j.QdrantConnection="QdrantConnection",j.WeaviateConnection="WeaviateConnection",j.function_list="function_list",j.function_str="function_str",j.FormRecognizerConnection="FormRecognizerConnection",j.file_path="file_path",j.image="image",j.assistant_definition="assistant_definition",j.ServerlessConnection="ServerlessConnection",j))(ValueType||{});const FLOW_INPUT_REF_NAME_FLOW="flow",FLOW_INPUT_REF_NAME_INPUT="inputs",FLOW_INPUT_NODE_NAME="inputs",FLOW_OUTPUT_NODE_NAME="outputs",isFlowInput=j=>[FLOW_INPUT_REF_NAME_FLOW,FLOW_INPUT_REF_NAME_INPUT].includes(j),SystemColors=["#637CEF","#E61C99","#00A5AF","#9470BD","#689920","#3487C7","#CA5010","#009B51","#B27C00","#B146C2","#4F6BED","#EE5FB7","#008B94","#D77440","#BA58C9","#3A96DD","#E3008C","#57811B","#C36BD1","#D06228","#6E0811","#C50F1F","#F7630C","#107C10","#094509"];var ValidationErrorType=(j=>(j.CircularDependency="CircularDependency",j.InputDependencyNotFound="InputDependencyNotFound",j.InputGenerateError="InputGenerateError",j.InputSelfReference="InputSelfReference",j.InputEmpty="InputEmpty",j.InputInvalidType="InputInvalidType",j.NodeConfigInvalid="NodeConfigInvalid",j.UnparsedCode="UnparsedCode",j.EmptyCode="EmptyCode",j.MissingTool="MissingTool",j.AutoParseInputError="AutoParseInputError",j.RuntimeNameEmpty="RuntimeNameEmpty",j.RuntimeStatusInvalid="RuntimeStatusInvalid",j))(ValidationErrorType||{}),ChatMessageFrom=(j=>(j.System="system",j.ErrorHandler="error",j.Chatbot="chatbot",j.User="user",j))(ChatMessageFrom||{}),ChatMessageType$1=(j=>(j.Text="text",j.Typing="typing",j.SessionSplit="session-split",j))(ChatMessageType$1||{});const convertToBool=j=>j==="true"||j==="True"||j===!0,basicValueTypeDetector=j=>Array.isArray(j)?ValueType.list:typeof j=="boolean"?ValueType.bool:typeof j=="string"?ValueType.string:typeof j=="number"?Number.isInteger(j)?ValueType.int:ValueType.double:ValueType.object;function valueStringify(j){if(j==null)return;switch(basicValueTypeDetector(j)){case ValueType.string:return j;case ValueType.int:case ValueType.double:return j.toString();case ValueType.bool:return j?"True":"False";case ValueType.object:case ValueType.list:return JSON.stringify(j);default:return String(j)}}var lodash$1={exports:{}};/** * @license * Lodash * Copyright OpenJS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */lodash$1.exports;(function(j,_e){(function(){var et,tt="4.17.21",rt=200,nt="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",ot="Expected a function",it="Invalid `variable` option passed into `_.template`",st="__lodash_hash_undefined__",lt=500,ut="__lodash_placeholder__",ct=1,dt=2,ft=4,pt=1,gt=2,vt=1,bt=2,_t=4,xt=8,yt=16,Et=32,St=64,$t=128,At=256,wt=512,Ct=30,It="...",Ot=800,Nt=16,Pt=1,Mt=2,Rt=3,Lt=1/0,jt=9007199254740991,Gt=17976931348623157e292,Vt=NaN,Yt=4294967295,Xt=Yt-1,rr=Yt>>>1,cr=[["ary",$t],["bind",vt],["bindKey",bt],["curry",xt],["curryRight",yt],["flip",wt],["partial",Et],["partialRight",St],["rearg",At]],vr="[object Arguments]",Tr="[object Array]",gr="[object AsyncFunction]",Er="[object Boolean]",qt="[object Date]",ir="[object DOMException]",hr="[object Error]",nr="[object Function]",mr="[object GeneratorFunction]",Ar="[object Map]",Or="[object Number]",wr="[object Null]",Nr="[object Object]",Wr="[object Promise]",Vr="[object Proxy]",Jr="[object RegExp]",Yr="[object Set]",jr="[object String]",Hr="[object Symbol]",hn="[object Undefined]",pr="[object WeakMap]",sr="[object WeakSet]",Jt="[object ArrayBuffer]",ur="[object DataView]",br="[object Float32Array]",Sr="[object Float64Array]",yr="[object Int8Array]",Cr="[object Int16Array]",Lr="[object Int32Array]",Xr="[object Uint8Array]",qr="[object Uint8ClampedArray]",Qr="[object Uint16Array]",xn="[object Uint32Array]",wn=/\b__p \+= '';/g,nn=/\b(__p \+=) '' \+/g,Ln=/(__e\(.*?\)|\b__t\)) \+\n'';/g,zn=/&(?:amp|lt|gt|quot|#39);/g,En=/[&<>"']/g,sn=RegExp(zn.source),Dn=RegExp(En.source),Mn=/<%-([\s\S]+?)%>/g,In=/<%([\s\S]+?)%>/g,Cn=/<%=([\s\S]+?)%>/g,cn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ur=/^\w*$/,Fr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Hn=/[\\^$.*+?()[\]{}|]/g,ro=RegExp(Hn.source),Pn=/^\s+/,jo=/\s/,vo=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,eo=/\{\n\/\* \[wrapped with (.+)\] \*/,Co=/,? & /,Mr=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Ut=/[()=,{}\[\]\/\s]/,Zt=/\\(\\)?/g,zt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ht=/\w*$/,Dt=/^[-+]0x[0-9a-f]+$/i,Qt=/^0b[01]+$/i,ar=/^\[object .+?Constructor\]$/,lr=/^0o[0-7]+$/i,tr=/^(?:0|[1-9]\d*)$/,_r=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Br=/($^)/,un=/['\n\r\u2028\u2029\\]/g,fn="\\ud800-\\udfff",an="\\u0300-\\u036f",tn="\\ufe20-\\ufe2f",_n="\\u20d0-\\u20ff",jn=an+tn+_n,pn="\\u2700-\\u27bf",qn="a-z\\xdf-\\xf6\\xf8-\\xff",to="\\xac\\xb1\\xd7\\xf7",fo="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Fo="\\u2000-\\u206f",xo=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",_i="A-Z\\xc0-\\xd6\\xd8-\\xde",zo="\\ufe0e\\ufe0f",Zn=to+fo+Fo+xo,ko="['’]",na="["+fn+"]",Ho="["+Zn+"]",ga="["+jn+"]",Go="\\d+",ps="["+pn+"]",Uo="["+qn+"]",xa="[^"+fn+Zn+Go+pn+qn+_i+"]",es="\\ud83c[\\udffb-\\udfff]",Yo="(?:"+ga+"|"+es+")",Xo="[^"+fn+"]",Fs="(?:\\ud83c[\\udde6-\\uddff]){2}",El="[\\ud800-\\udbff][\\udc00-\\udfff]",hs="["+_i+"]",Vl="\\u200d",Sl="(?:"+Uo+"|"+xa+")",ws="(?:"+hs+"|"+xa+")",zs="(?:"+ko+"(?:d|ll|m|re|s|t|ve))?",Hs="(?:"+ko+"(?:D|LL|M|RE|S|T|VE))?",Cs=Yo+"?",gs="["+zo+"]?",Lu="(?:"+Vl+"(?:"+[Xo,Fs,El].join("|")+")"+gs+Cs+")*",Ul="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Bu="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",$l=gs+Cs+Lu,Pu="(?:"+[ps,Fs,El].join("|")+")"+$l,ju="(?:"+[Xo+ga+"?",ga,Fs,El,na].join("|")+")",ks=RegExp(ko,"g"),Fu=RegExp(ga,"g"),vs=RegExp(es+"(?="+es+")|"+ju+$l,"g"),Yl=RegExp([hs+"?"+Uo+"+"+zs+"(?="+[Ho,hs,"$"].join("|")+")",ws+"+"+Hs+"(?="+[Ho,hs+Sl,"$"].join("|")+")",hs+"?"+Sl+"+"+zs,hs+"+"+Hs,Bu,Ul,Go,Pu].join("|"),"g"),Pr=RegExp("["+Vl+fn+jn+zo+"]"),Gr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,bn=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],vn=-1,rn={};rn[br]=rn[Sr]=rn[yr]=rn[Cr]=rn[Lr]=rn[Xr]=rn[qr]=rn[Qr]=rn[xn]=!0,rn[vr]=rn[Tr]=rn[Jt]=rn[Er]=rn[ur]=rn[qt]=rn[hr]=rn[nr]=rn[Ar]=rn[Or]=rn[Nr]=rn[Jr]=rn[Yr]=rn[jr]=rn[pr]=!1;var dn={};dn[vr]=dn[Tr]=dn[Jt]=dn[ur]=dn[Er]=dn[qt]=dn[br]=dn[Sr]=dn[yr]=dn[Cr]=dn[Lr]=dn[Ar]=dn[Or]=dn[Nr]=dn[Jr]=dn[Yr]=dn[jr]=dn[Hr]=dn[Xr]=dn[qr]=dn[Qr]=dn[xn]=!0,dn[hr]=dn[nr]=dn[pr]=!1;var Wn={À:"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"},Kn={"&":"&","<":"<",">":">",'"':""","'":"'"},no={"&":"&","<":"<",">":">",""":'"',"'":"'"},Io={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ts=parseFloat,zu=parseInt,Gs=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,Tl=typeof self=="object"&&self&&self.Object===Object&&self,oo=Gs||Tl||Function("return this")(),Hu=_e&&!_e.nodeType&&_e,Is=Hu&&!0&&j&&!j.nodeType&&j,Qp=Is&&Is.exports===Hu,Gu=Qp&&Gs.process,Ro=function(){try{var dr=Is&&Is.require&&Is.require("util").types;return dr||Gu&&Gu.binding&&Gu.binding("util")}catch{}}(),Jp=Ro&&Ro.isArrayBuffer,e1=Ro&&Ro.isDate,r1=Ro&&Ro.isMap,n1=Ro&&Ro.isRegExp,o1=Ro&&Ro.isSet,i1=Ro&&Ro.isTypedArray;function Eo(dr,$r,xr){switch(xr.length){case 0:return dr.call($r);case 1:return dr.call($r,xr[0]);case 2:return dr.call($r,xr[0],xr[1]);case 3:return dr.call($r,xr[0],xr[1],xr[2])}return dr.apply($r,xr)}function um(dr,$r,xr,Zr){for(var Sn=-1,Bn=dr==null?0:dr.length;++Sn-1}function Wu(dr,$r,xr){for(var Zr=-1,Sn=dr==null?0:dr.length;++Zr-1;);return xr}function p1(dr,$r){for(var xr=dr.length;xr--&&Ws($r,dr[xr],0)>-1;);return xr}function ym(dr,$r){for(var xr=dr.length,Zr=0;xr--;)dr[xr]===$r&&++Zr;return Zr}var bm=Uu(Wn),_m=Uu(Kn);function xm(dr){return"\\"+Io[dr]}function Em(dr,$r){return dr==null?et:dr[$r]}function Ks(dr){return Pr.test(dr)}function Sm(dr){return Gr.test(dr)}function $m(dr){for(var $r,xr=[];!($r=dr.next()).done;)xr.push($r.value);return xr}function Qu(dr){var $r=-1,xr=Array(dr.size);return dr.forEach(function(Zr,Sn){xr[++$r]=[Sn,Zr]}),xr}function h1(dr,$r){return function(xr){return dr($r(xr))}}function _s(dr,$r){for(var xr=-1,Zr=dr.length,Sn=0,Bn=[];++xr-1}function dy(ht,mt){var Tt=this.__data__,kt=pu(Tt,ht);return kt<0?(++this.size,Tt.push([ht,mt])):Tt[kt][1]=mt,this}rs.prototype.clear=sy,rs.prototype.delete=ly,rs.prototype.get=uy,rs.prototype.has=cy,rs.prototype.set=dy;function os(ht){var mt=-1,Tt=ht==null?0:ht.length;for(this.clear();++mt=mt?ht:mt)),ht}function Mo(ht,mt,Tt,kt,Bt,Kt){var er,or=mt&ct,fr=mt&dt,Ir=mt&ft;if(Tt&&(er=Bt?Tt(ht,kt,Bt,Kt):Tt(ht)),er!==et)return er;if(!Yn(ht))return ht;var Rr=$n(ht);if(Rr){if(er=m0(ht),!or)return mo(ht,er)}else{var Dr=co(ht),Kr=Dr==nr||Dr==mr;if(As(ht))return Z1(ht,or);if(Dr==Nr||Dr==vr||Kr&&!Bt){if(er=fr||Kr?{}:hv(ht),!or)return fr?a0(ht,wy(er,ht)):i0(ht,w1(er,ht))}else{if(!dn[Dr])return Bt?ht:{};er=y0(ht,Dr,or)}}Kt||(Kt=new Ko);var en=Kt.get(ht);if(en)return en;Kt.set(ht,er),Gv(ht)?ht.forEach(function(yn){er.add(Mo(yn,mt,Tt,yn,ht,Kt))}):zv(ht)&&ht.forEach(function(yn,Rn){er.set(Rn,Mo(yn,mt,Tt,Rn,ht,Kt))});var mn=Ir?fr?xp:_p:fr?bo:so,An=Rr?et:mn(ht);return Oo(An||ht,function(yn,Rn){An&&(Rn=yn,yn=ht[Rn]),Dl(er,Rn,Mo(yn,mt,Tt,Rn,ht,Kt))}),er}function Cy(ht){var mt=so(ht);return function(Tt){return C1(Tt,ht,mt)}}function C1(ht,mt,Tt){var kt=Tt.length;if(ht==null)return!kt;for(ht=Vn(ht);kt--;){var Bt=Tt[kt],Kt=mt[Bt],er=ht[Bt];if(er===et&&!(Bt in ht)||!Kt(er))return!1}return!0}function k1(ht,mt,Tt){if(typeof ht!="function")throw new No(ot);return Hl(function(){ht.apply(et,Tt)},mt)}function Ml(ht,mt,Tt,kt){var Bt=-1,Kt=Xl,er=!0,or=ht.length,fr=[],Ir=mt.length;if(!or)return fr;Tt&&(mt=Un(mt,So(Tt))),kt?(Kt=Wu,er=!1):mt.length>=rt&&(Kt=Al,er=!1,mt=new Ns(mt));e:for(;++BtBt?0:Bt+Tt),kt=kt===et||kt>Bt?Bt:Tn(kt),kt<0&&(kt+=Bt),kt=Tt>kt?0:Kv(kt);Tt0&&Tt(or)?mt>1?lo(or,mt-1,Tt,kt,Bt):bs(Bt,or):kt||(Bt[Bt.length]=or)}return Bt}var rp=tv(),O1=tv(!0);function Zo(ht,mt){return ht&&rp(ht,mt,so)}function np(ht,mt){return ht&&O1(ht,mt,so)}function gu(ht,mt){return ys(mt,function(Tt){return cs(ht[Tt])})}function Ms(ht,mt){mt=$s(mt,ht);for(var Tt=0,kt=mt.length;ht!=null&&Ttmt}function Oy(ht,mt){return ht!=null&&Gn.call(ht,mt)}function Ny(ht,mt){return ht!=null&&mt in Vn(ht)}function Dy(ht,mt,Tt){return ht>=uo(mt,Tt)&&ht=120&&Rr.length>=120)?new Ns(er&&Rr):et}Rr=ht[0];var Dr=-1,Kr=or[0];e:for(;++Dr-1;)or!==ht&&au.call(or,fr,1),au.call(ht,fr,1);return ht}function G1(ht,mt){for(var Tt=ht?mt.length:0,kt=Tt-1;Tt--;){var Bt=mt[Tt];if(Tt==kt||Bt!==Kt){var Kt=Bt;us(Bt)?au.call(ht,Bt,1):pp(ht,Bt)}}return ht}function cp(ht,mt){return ht+uu(S1()*(mt-ht+1))}function qy(ht,mt,Tt,kt){for(var Bt=-1,Kt=ao(lu((mt-ht)/(Tt||1)),0),er=xr(Kt);Kt--;)er[kt?Kt:++Bt]=ht,ht+=Tt;return er}function dp(ht,mt){var Tt="";if(!ht||mt<1||mt>jt)return Tt;do mt%2&&(Tt+=ht),mt=uu(mt/2),mt&&(ht+=ht);while(mt);return Tt}function kn(ht,mt){return Cp(mv(ht,mt,_o),ht+"")}function Uy(ht){return A1(xl(ht))}function Yy(ht,mt){var Tt=xl(ht);return Au(Tt,Ds(mt,0,Tt.length))}function Pl(ht,mt,Tt,kt){if(!Yn(ht))return ht;mt=$s(mt,ht);for(var Bt=-1,Kt=mt.length,er=Kt-1,or=ht;or!=null&&++BtBt?0:Bt+mt),Tt=Tt>Bt?Bt:Tt,Tt<0&&(Tt+=Bt),Bt=mt>Tt?0:Tt-mt>>>0,mt>>>=0;for(var Kt=xr(Bt);++kt>>1,er=ht[Kt];er!==null&&!To(er)&&(Tt?er<=mt:er=rt){var Ir=mt?null:c0(ht);if(Ir)return Ql(Ir);er=!1,Bt=Al,fr=new Ns}else fr=mt?[]:or;e:for(;++kt=kt?ht:Lo(ht,mt,Tt)}var X1=jm||function(ht){return oo.clearTimeout(ht)};function Z1(ht,mt){if(mt)return ht.slice();var Tt=ht.length,kt=y1?y1(Tt):new ht.constructor(Tt);return ht.copy(kt),kt}function mp(ht){var mt=new ht.constructor(ht.byteLength);return new ou(mt).set(new ou(ht)),mt}function e0(ht,mt){var Tt=mt?mp(ht.buffer):ht.buffer;return new ht.constructor(Tt,ht.byteOffset,ht.byteLength)}function r0(ht){var mt=new ht.constructor(ht.source,Ht.exec(ht));return mt.lastIndex=ht.lastIndex,mt}function n0(ht){return Nl?Vn(Nl.call(ht)):{}}function Q1(ht,mt){var Tt=mt?mp(ht.buffer):ht.buffer;return new ht.constructor(Tt,ht.byteOffset,ht.length)}function J1(ht,mt){if(ht!==mt){var Tt=ht!==et,kt=ht===null,Bt=ht===ht,Kt=To(ht),er=mt!==et,or=mt===null,fr=mt===mt,Ir=To(mt);if(!or&&!Ir&&!Kt&&ht>mt||Kt&&er&&fr&&!or&&!Ir||kt&&er&&fr||!Tt&&fr||!Bt)return 1;if(!kt&&!Kt&&!Ir&&ht=or)return fr;var Ir=Tt[kt];return fr*(Ir=="desc"?-1:1)}}return ht.index-mt.index}function _h(ht,mt,Tt,kt){for(var Bt=-1,Kt=ht.length,er=Tt.length,or=-1,fr=mt.length,Ir=ao(Kt-er,0),Rr=xr(fr+Ir),Dr=!kt;++or1?Tt[Bt-1]:et,er=Bt>2?Tt[2]:et;for(Kt=ht.length>3&&typeof Kt=="function"?(Bt--,Kt):et,er&&ho(Tt[0],Tt[1],er)&&(Kt=Bt<3?et:Kt,Bt=1),mt=Vn(mt);++kt-1?Bt[Kt?mt[er]:er]:et}}function ov(ht){return ls(function(mt){var Tt=mt.length,kt=Tt,Bt=Do.prototype.thru;for(ht&&mt.reverse();kt--;){var Kt=mt[kt];if(typeof Kt!="function")throw new No(ot);if(Bt&&!er&&$u(Kt)=="wrapper")var er=new Do([],!0)}for(kt=er?kt:Tt;++kt1&&Nn.reverse(),Rr&&fror))return!1;var Ir=Kt.get(ht),Rr=Kt.get(mt);if(Ir&&Rr)return Ir==mt&&Rr==ht;var Dr=-1,Kr=!0,en=Tt>?new Ns:et;for(Kt.set(ht,mt),Kt.set(mt,ht);++Dr1?"& ":"")+mt[kt],mt=mt.join(Tt>2?", ":" "),ht.replace(vo,`{ -/* [wrapped with `+mt+`] */ -`)}function _0(ht){return $n(ht)||Ps(ht)||!!(x1&&ht&&ht[x1])}function us(ht,mt){var Tt=typeof ht;return mt=mt??jt,!!mt&&(Tt=="number"||Tt!="symbol"&&tr.test(ht))&&ht>-1&&ht%1==0&&ht0){if(++mt>=Ot)return arguments[0]}else mt=0;return ht.apply(et,arguments)}}function Au(ht,mt){var Tt=-1,kt=ht.length,Bt=kt-1;for(mt=mt===et?kt:mt;++Tt1?ht[mt-1]:et;return Tt=typeof Tt=="function"?(ht.pop(),Tt):et,kv(ht,Tt)});function Iv(ht){var mt=Wt(ht);return mt.__chain__=!0,mt}function I_(ht,mt){return mt(ht),ht}function wu(ht,mt){return mt(ht)}var R_=ls(function(ht){var mt=ht.length,Tt=mt?ht[0]:0,kt=this.__wrapped__,Bt=function(Kt){return tp(Kt,ht)};return mt>1||this.__actions__.length||!(kt instanceof On)||!us(Tt)?this.thru(Bt):(kt=kt.slice(Tt,+Tt+(mt?1:0)),kt.__actions__.push({func:wu,args:[Bt],thisArg:et}),new Do(kt,this.__chain__).thru(function(Kt){return mt&&!Kt.length&&Kt.push(et),Kt}))});function O_(){return Iv(this)}function N_(){return new Do(this.value(),this.__chain__)}function D_(){this.__values__===et&&(this.__values__=Wv(this.value()));var ht=this.__index__>=this.__values__.length,mt=ht?et:this.__values__[this.__index__++];return{done:ht,value:mt}}function M_(){return this}function L_(ht){for(var mt,Tt=this;Tt instanceof fu;){var kt=Sv(Tt);kt.__index__=0,kt.__values__=et,mt?Bt.__wrapped__=kt:mt=kt;var Bt=kt;Tt=Tt.__wrapped__}return Bt.__wrapped__=ht,mt}function B_(){var ht=this.__wrapped__;if(ht instanceof On){var mt=ht;return this.__actions__.length&&(mt=new On(this)),mt=mt.reverse(),mt.__actions__.push({func:wu,args:[kp],thisArg:et}),new Do(mt,this.__chain__)}return this.thru(kp)}function P_(){return U1(this.__wrapped__,this.__actions__)}var j_=bu(function(ht,mt,Tt){Gn.call(ht,Tt)?++ht[Tt]:as(ht,Tt,1)});function F_(ht,mt,Tt){var kt=$n(ht)?a1:Iy;return Tt&&ho(ht,mt,Tt)&&(mt=et),kt(ht,gn(mt,3))}function z_(ht,mt){var Tt=$n(ht)?ys:R1;return Tt(ht,gn(mt,3))}var H_=nv($v),G_=nv(Tv);function W_(ht,mt){return lo(Cu(ht,mt),1)}function K_(ht,mt){return lo(Cu(ht,mt),Lt)}function V_(ht,mt,Tt){return Tt=Tt===et?1:Tn(Tt),lo(Cu(ht,mt),Tt)}function Rv(ht,mt){var Tt=$n(ht)?Oo:Es;return Tt(ht,gn(mt,3))}function Ov(ht,mt){var Tt=$n(ht)?cm:I1;return Tt(ht,gn(mt,3))}var q_=bu(function(ht,mt,Tt){Gn.call(ht,Tt)?ht[Tt].push(mt):as(ht,Tt,[mt])});function U_(ht,mt,Tt,kt){ht=yo(ht)?ht:xl(ht),Tt=Tt&&!kt?Tn(Tt):0;var Bt=ht.length;return Tt<0&&(Tt=ao(Bt+Tt,0)),Nu(ht)?Tt<=Bt&&ht.indexOf(mt,Tt)>-1:!!Bt&&Ws(ht,mt,Tt)>-1}var Y_=kn(function(ht,mt,Tt){var kt=-1,Bt=typeof mt=="function",Kt=yo(ht)?xr(ht.length):[];return Es(ht,function(er){Kt[++kt]=Bt?Eo(mt,er,Tt):Ll(er,mt,Tt)}),Kt}),X_=bu(function(ht,mt,Tt){as(ht,Tt,mt)});function Cu(ht,mt){var Tt=$n(ht)?Un:B1;return Tt(ht,gn(mt,3))}function Z_(ht,mt,Tt,kt){return ht==null?[]:($n(mt)||(mt=mt==null?[]:[mt]),Tt=kt?et:Tt,$n(Tt)||(Tt=Tt==null?[]:[Tt]),z1(ht,mt,Tt))}var Q_=bu(function(ht,mt,Tt){ht[Tt?0:1].push(mt)},function(){return[[],[]]});function J_(ht,mt,Tt){var kt=$n(ht)?Ku:c1,Bt=arguments.length<3;return kt(ht,gn(mt,4),Tt,Bt,Es)}function ex(ht,mt,Tt){var kt=$n(ht)?dm:c1,Bt=arguments.length<3;return kt(ht,gn(mt,4),Tt,Bt,I1)}function tx(ht,mt){var Tt=$n(ht)?ys:R1;return Tt(ht,Ru(gn(mt,3)))}function rx(ht){var mt=$n(ht)?A1:Uy;return mt(ht)}function nx(ht,mt,Tt){(Tt?ho(ht,mt,Tt):mt===et)?mt=1:mt=Tn(mt);var kt=$n(ht)?$y:Yy;return kt(ht,mt)}function ox(ht){var mt=$n(ht)?Ty:Zy;return mt(ht)}function ix(ht){if(ht==null)return 0;if(yo(ht))return Nu(ht)?Vs(ht):ht.length;var mt=co(ht);return mt==Ar||mt==Yr?ht.size:sp(ht).length}function ax(ht,mt,Tt){var kt=$n(ht)?Vu:Qy;return Tt&&ho(ht,mt,Tt)&&(mt=et),kt(ht,gn(mt,3))}var sx=kn(function(ht,mt){if(ht==null)return[];var Tt=mt.length;return Tt>1&&ho(ht,mt[0],mt[1])?mt=[]:Tt>2&&ho(mt[0],mt[1],mt[2])&&(mt=[mt[0]]),z1(ht,lo(mt,1),[])}),ku=Fm||function(){return oo.Date.now()};function lx(ht,mt){if(typeof mt!="function")throw new No(ot);return ht=Tn(ht),function(){if(--ht<1)return mt.apply(this,arguments)}}function Nv(ht,mt,Tt){return mt=Tt?et:mt,mt=ht&&mt==null?ht.length:mt,ss(ht,$t,et,et,et,et,mt)}function Dv(ht,mt){var Tt;if(typeof mt!="function")throw new No(ot);return ht=Tn(ht),function(){return--ht>0&&(Tt=mt.apply(this,arguments)),ht<=1&&(mt=et),Tt}}var Rp=kn(function(ht,mt,Tt){var kt=vt;if(Tt.length){var Bt=_s(Tt,yl(Rp));kt|=Et}return ss(ht,kt,mt,Tt,Bt)}),Mv=kn(function(ht,mt,Tt){var kt=vt|bt;if(Tt.length){var Bt=_s(Tt,yl(Mv));kt|=Et}return ss(mt,kt,ht,Tt,Bt)});function Lv(ht,mt,Tt){mt=Tt?et:mt;var kt=ss(ht,xt,et,et,et,et,et,mt);return kt.placeholder=Lv.placeholder,kt}function Bv(ht,mt,Tt){mt=Tt?et:mt;var kt=ss(ht,yt,et,et,et,et,et,mt);return kt.placeholder=Bv.placeholder,kt}function Pv(ht,mt,Tt){var kt,Bt,Kt,er,or,fr,Ir=0,Rr=!1,Dr=!1,Kr=!0;if(typeof ht!="function")throw new No(ot);mt=Po(mt)||0,Yn(Tt)&&(Rr=!!Tt.leading,Dr="maxWait"in Tt,Kt=Dr?ao(Po(Tt.maxWait)||0,mt):Kt,Kr="trailing"in Tt?!!Tt.trailing:Kr);function en(Jn){var qo=kt,fs=Bt;return kt=Bt=et,Ir=Jn,er=ht.apply(fs,qo),er}function mn(Jn){return Ir=Jn,or=Hl(Rn,mt),Rr?en(Jn):er}function An(Jn){var qo=Jn-fr,fs=Jn-Ir,nm=mt-qo;return Dr?uo(nm,Kt-fs):nm}function yn(Jn){var qo=Jn-fr,fs=Jn-Ir;return fr===et||qo>=mt||qo<0||Dr&&fs>=Kt}function Rn(){var Jn=ku();if(yn(Jn))return Nn(Jn);or=Hl(Rn,An(Jn))}function Nn(Jn){return or=et,Kr&&kt?en(Jn):(kt=Bt=et,er)}function Ao(){or!==et&&X1(or),Ir=0,kt=fr=Bt=or=et}function go(){return or===et?er:Nn(ku())}function wo(){var Jn=ku(),qo=yn(Jn);if(kt=arguments,Bt=this,fr=Jn,qo){if(or===et)return mn(fr);if(Dr)return X1(or),or=Hl(Rn,mt),en(fr)}return or===et&&(or=Hl(Rn,mt)),er}return wo.cancel=Ao,wo.flush=go,wo}var ux=kn(function(ht,mt){return k1(ht,1,mt)}),dx=kn(function(ht,mt,Tt){return k1(ht,Po(mt)||0,Tt)});function fx(ht){return ss(ht,wt)}function Iu(ht,mt){if(typeof ht!="function"||mt!=null&&typeof mt!="function")throw new No(ot);var Tt=function(){var kt=arguments,Bt=mt?mt.apply(this,kt):kt[0],Kt=Tt.cache;if(Kt.has(Bt))return Kt.get(Bt);var er=ht.apply(this,kt);return Tt.cache=Kt.set(Bt,er)||Kt,er};return Tt.cache=new(Iu.Cache||os),Tt}Iu.Cache=os;function Ru(ht){if(typeof ht!="function")throw new No(ot);return function(){var mt=arguments;switch(mt.length){case 0:return!ht.call(this);case 1:return!ht.call(this,mt[0]);case 2:return!ht.call(this,mt[0],mt[1]);case 3:return!ht.call(this,mt[0],mt[1],mt[2])}return!ht.apply(this,mt)}}function hx(ht){return Dv(2,ht)}var gx=Jy(function(ht,mt){mt=mt.length==1&&$n(mt[0])?Un(mt[0],So(gn())):Un(lo(mt,1),So(gn()));var Tt=mt.length;return kn(function(kt){for(var Bt=-1,Kt=uo(kt.length,Tt);++Bt=mt}),Ps=D1(function(){return arguments}())?D1:function(ht){return Xn(ht)&&Gn.call(ht,"callee")&&!_1.call(ht,"callee")},$n=xr.isArray,Rx=Jp?So(Jp):Ly;function yo(ht){return ht!=null&&Ou(ht.length)&&!cs(ht)}function Qn(ht){return Xn(ht)&&yo(ht)}function Ox(ht){return ht===!0||ht===!1||Xn(ht)&&po(ht)==Er}var As=Hm||Gp,Nx=e1?So(e1):By;function Dx(ht){return Xn(ht)&&ht.nodeType===1&&!Gl(ht)}function Mx(ht){if(ht==null)return!0;if(yo(ht)&&($n(ht)||typeof ht=="string"||typeof ht.splice=="function"||As(ht)||_l(ht)||Ps(ht)))return!ht.length;var mt=co(ht);if(mt==Ar||mt==Yr)return!ht.size;if(zl(ht))return!sp(ht).length;for(var Tt in ht)if(Gn.call(ht,Tt))return!1;return!0}function Lx(ht,mt){return Bl(ht,mt)}function Bx(ht,mt,Tt){Tt=typeof Tt=="function"?Tt:et;var kt=Tt?Tt(ht,mt):et;return kt===et?Bl(ht,mt,et,Tt):!!kt}function Np(ht){if(!Xn(ht))return!1;var mt=po(ht);return mt==hr||mt==ir||typeof ht.message=="string"&&typeof ht.name=="string"&&!Gl(ht)}function Px(ht){return typeof ht=="number"&&E1(ht)}function cs(ht){if(!Yn(ht))return!1;var mt=po(ht);return mt==nr||mt==mr||mt==gr||mt==Vr}function Fv(ht){return typeof ht=="number"&&ht==Tn(ht)}function Ou(ht){return typeof ht=="number"&&ht>-1&&ht%1==0&&ht<=jt}function Yn(ht){var mt=typeof ht;return ht!=null&&(mt=="object"||mt=="function")}function Xn(ht){return ht!=null&&typeof ht=="object"}var zv=r1?So(r1):jy;function jx(ht,mt){return ht===mt||ap(ht,mt,Sp(mt))}function Fx(ht,mt,Tt){return Tt=typeof Tt=="function"?Tt:et,ap(ht,mt,Sp(mt),Tt)}function zx(ht){return Hv(ht)&&ht!=+ht}function Hx(ht){if(S0(ht))throw new Sn(nt);return M1(ht)}function Gx(ht){return ht===null}function Wx(ht){return ht==null}function Hv(ht){return typeof ht=="number"||Xn(ht)&&po(ht)==Or}function Gl(ht){if(!Xn(ht)||po(ht)!=Nr)return!1;var mt=iu(ht);if(mt===null)return!0;var Tt=Gn.call(mt,"constructor")&&mt.constructor;return typeof Tt=="function"&&Tt instanceof Tt&&tu.call(Tt)==Lm}var Dp=n1?So(n1):Fy;function Kx(ht){return Fv(ht)&&ht>=-jt&&ht<=jt}var Gv=o1?So(o1):zy;function Nu(ht){return typeof ht=="string"||!$n(ht)&&Xn(ht)&&po(ht)==jr}function To(ht){return typeof ht=="symbol"||Xn(ht)&&po(ht)==Hr}var _l=i1?So(i1):Hy;function Vx(ht){return ht===et}function qx(ht){return Xn(ht)&&co(ht)==pr}function Ux(ht){return Xn(ht)&&po(ht)==sr}var Yx=Su(lp),Xx=Su(function(ht,mt){return ht<=mt});function Wv(ht){if(!ht)return[];if(yo(ht))return Nu(ht)?Wo(ht):mo(ht);if(Cl&&ht[Cl])return $m(ht[Cl]());var mt=co(ht),Tt=mt==Ar?Qu:mt==Yr?Ql:xl;return Tt(ht)}function ds(ht){if(!ht)return ht===0?ht:0;if(ht=Po(ht),ht===Lt||ht===-Lt){var mt=ht<0?-1:1;return mt*Gt}return ht===ht?ht:0}function Tn(ht){var mt=ds(ht),Tt=mt%1;return mt===mt?Tt?mt-Tt:mt:0}function Kv(ht){return ht?Ds(Tn(ht),0,Yt):0}function Po(ht){if(typeof ht=="number")return ht;if(To(ht))return Vt;if(Yn(ht)){var mt=typeof ht.valueOf=="function"?ht.valueOf():ht;ht=Yn(mt)?mt+"":mt}if(typeof ht!="string")return ht===0?ht:+ht;ht=d1(ht);var Tt=Qt.test(ht);return Tt||lr.test(ht)?zu(ht.slice(2),Tt?2:8):Dt.test(ht)?Vt:+ht}function Vv(ht){return Qo(ht,bo(ht))}function Zx(ht){return ht?Ds(Tn(ht),-jt,jt):ht===0?ht:0}function Fn(ht){return ht==null?"":$o(ht)}var Qx=Qs(function(ht,mt){if(zl(mt)||yo(mt)){Qo(mt,so(mt),ht);return}for(var Tt in mt)Gn.call(mt,Tt)&&Dl(ht,Tt,mt[Tt])}),qv=Qs(function(ht,mt){Qo(mt,bo(mt),ht)}),Du=Qs(function(ht,mt,Tt,kt){Qo(mt,bo(mt),ht,kt)}),Jx=Qs(function(ht,mt,Tt,kt){Qo(mt,so(mt),ht,kt)}),eE=ls(tp);function tE(ht,mt){var Tt=Zs(ht);return mt==null?Tt:w1(Tt,mt)}var rE=kn(function(ht,mt){ht=Vn(ht);var Tt=-1,kt=mt.length,Bt=kt>2?mt[2]:et;for(Bt&&ho(mt[0],mt[1],Bt)&&(kt=1);++Tt1),Kt}),Qo(ht,xp(ht),Tt),kt&&(Tt=Mo(Tt,ct|dt|ft,d0));for(var Bt=mt.length;Bt--;)pp(Tt,mt[Bt]);return Tt});function _E(ht,mt){return Yv(ht,Ru(gn(mt)))}var xE=ls(function(ht,mt){return ht==null?{}:Ky(ht,mt)});function Yv(ht,mt){if(ht==null)return{};var Tt=Un(xp(ht),function(kt){return[kt]});return mt=gn(mt),H1(ht,Tt,function(kt,Bt){return mt(kt,Bt[0])})}function EE(ht,mt,Tt){mt=$s(mt,ht);var kt=-1,Bt=mt.length;for(Bt||(Bt=1,ht=et);++ktmt){var kt=ht;ht=mt,mt=kt}if(Tt||ht%1||mt%1){var Bt=S1();return uo(ht+Bt*(mt-ht+ts("1e-"+((Bt+"").length-1))),mt)}return cp(ht,mt)}var NE=Js(function(ht,mt,Tt){return mt=mt.toLowerCase(),ht+(Tt?Qv(mt):mt)});function Qv(ht){return Bp(Fn(ht).toLowerCase())}function Jv(ht){return ht=Fn(ht),ht&&ht.replace(_r,bm).replace(Fu,"")}function DE(ht,mt,Tt){ht=Fn(ht),mt=$o(mt);var kt=ht.length;Tt=Tt===et?kt:Ds(Tn(Tt),0,kt);var Bt=Tt;return Tt-=mt.length,Tt>=0&&ht.slice(Tt,Bt)==mt}function ME(ht){return ht=Fn(ht),ht&&Dn.test(ht)?ht.replace(En,_m):ht}function LE(ht){return ht=Fn(ht),ht&&ro.test(ht)?ht.replace(Hn,"\\$&"):ht}var BE=Js(function(ht,mt,Tt){return ht+(Tt?"-":"")+mt.toLowerCase()}),PE=Js(function(ht,mt,Tt){return ht+(Tt?" ":"")+mt.toLowerCase()}),jE=rv("toLowerCase");function FE(ht,mt,Tt){ht=Fn(ht),mt=Tn(mt);var kt=mt?Vs(ht):0;if(!mt||kt>=mt)return ht;var Bt=(mt-kt)/2;return Eu(uu(Bt),Tt)+ht+Eu(lu(Bt),Tt)}function zE(ht,mt,Tt){ht=Fn(ht),mt=Tn(mt);var kt=mt?Vs(ht):0;return mt&&kt>>0,Tt?(ht=Fn(ht),ht&&(typeof mt=="string"||mt!=null&&!Dp(mt))&&(mt=$o(mt),!mt&&Ks(ht))?Ts(Wo(ht),0,Tt):ht.split(mt,Tt)):[]}var UE=Js(function(ht,mt,Tt){return ht+(Tt?" ":"")+Bp(mt)});function YE(ht,mt,Tt){return ht=Fn(ht),Tt=Tt==null?0:Ds(Tn(Tt),0,ht.length),mt=$o(mt),ht.slice(Tt,Tt+mt.length)==mt}function XE(ht,mt,Tt){var kt=Wt.templateSettings;Tt&&ho(ht,mt,Tt)&&(mt=et),ht=Fn(ht),mt=Du({},mt,kt,uv);var Bt=Du({},mt.imports,kt.imports,uv),Kt=so(Bt),er=Zu(Bt,Kt),or,fr,Ir=0,Rr=mt.interpolate||Br,Dr="__p += '",Kr=Ju((mt.escape||Br).source+"|"+Rr.source+"|"+(Rr===Cn?zt:Br).source+"|"+(mt.evaluate||Br).source+"|$","g"),en="//# sourceURL="+(Gn.call(mt,"sourceURL")?(mt.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++vn+"]")+` -`;ht.replace(Kr,function(yn,Rn,Nn,Ao,go,wo){return Nn||(Nn=Ao),Dr+=ht.slice(Ir,wo).replace(un,xm),Rn&&(or=!0,Dr+=`' + -__e(`+Rn+`) + -'`),go&&(fr=!0,Dr+=`'; + */lodash$1.exports;(function(j,_e){(function(){var et,tt="4.17.21",rt=200,nt="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",ot="Expected a function",it="Invalid `variable` option passed into `_.template`",st="__lodash_hash_undefined__",lt=500,ut="__lodash_placeholder__",ct=1,dt=2,ft=4,pt=1,gt=2,mt=1,bt=2,_t=4,xt=8,yt=16,Et=32,St=64,Tt=128,kt=256,$t=512,Ct=30,It="...",Nt=800,Ot=16,jt=1,Mt=2,Rt=3,Lt=1/0,Pt=9007199254740991,Gt=17976931348623157e292,qt=NaN,Yt=4294967295,Xt=Yt-1,tr=Yt>>>1,cr=[["ary",Tt],["bind",mt],["bindKey",bt],["curry",xt],["curryRight",yt],["flip",$t],["partial",Et],["partialRight",St],["rearg",kt]],mr="[object Arguments]",Er="[object Array]",hr="[object AsyncFunction]",_r="[object Boolean]",Ut="[object Date]",ar="[object DOMException]",pr="[object Error]",rr="[object Function]",vr="[object GeneratorFunction]",$r="[object Map]",Rr="[object Number]",Cr="[object Null]",Nr="[object Object]",Gr="[object Promise]",qr="[object Proxy]",Qr="[object RegExp]",Yr="[object Set]",Pr="[object String]",Vr="[object Symbol]",yn="[object Undefined]",fr="[object WeakMap]",sr="[object WeakSet]",ir="[object ArrayBuffer]",gr="[object DataView]",wr="[object Float32Array]",Mr="[object Float64Array]",Sr="[object Int8Array]",Ir="[object Int16Array]",zr="[object Int32Array]",Xr="[object Uint8Array]",Zr="[object Uint8ClampedArray]",sn="[object Uint16Array]",$n="[object Uint32Array]",Nn=/\b__p \+= '';/g,hn=/\b(__p \+=) '' \+/g,jn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,qn=/&(?:amp|lt|gt|quot|#39);/g,Sn=/[&<>"']/g,un=RegExp(qn.source),Fn=RegExp(Sn.source),On=/<%-([\s\S]+?)%>/g,Pn=/<%([\s\S]+?)%>/g,wn=/<%=([\s\S]+?)%>/g,fn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Kr=/^\w*$/,jr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,zn=/[\\^$.*+?()[\]{}|]/g,ro=RegExp(zn.source),Mn=/^\s+/,Fo=/\s/,mo=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,eo=/\{\n\/\* \[wrapped with (.+)\] \*/,Co=/,? & /,Dr=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Kt=/[()=,{}\[\]\/\s]/,Zt=/\\(\\)?/g,zt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ht=/\w*$/,Dt=/^[-+]0x[0-9a-f]+$/i,Qt=/^0b[01]+$/i,or=/^\[object .+?Constructor\]$/,lr=/^0o[0-7]+$/i,er=/^(?:0|[1-9]\d*)$/,yr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Lr=/($^)/,nn=/['\n\r\u2028\u2029\\]/g,cn="\\ud800-\\udfff",rn="\\u0300-\\u036f",en="\\ufe20-\\ufe2f",_n="\\u20d0-\\u20ff",Ln=rn+en+_n,dn="\\u2700-\\u27bf",Kn="a-z\\xdf-\\xf6\\xf8-\\xff",to="\\xac\\xb1\\xd7\\xf7",fo="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Po="\\u2000-\\u206f",xo=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",_i="A-Z\\xc0-\\xd6\\xd8-\\xde",zo="\\ufe0e\\ufe0f",Zn=to+fo+Po+xo,wo="['’]",na="["+cn+"]",Ho="["+Zn+"]",ga="["+Ln+"]",Go="\\d+",ps="["+dn+"]",Uo="["+Kn+"]",xa="[^"+cn+Zn+Go+dn+Kn+_i+"]",es="\\ud83c[\\udffb-\\udfff]",Yo="(?:"+ga+"|"+es+")",Xo="[^"+cn+"]",Ps="(?:\\ud83c[\\udde6-\\uddff]){2}",El="[\\ud800-\\udbff][\\udc00-\\udfff]",hs="["+_i+"]",Kl="\\u200d",Sl="(?:"+Uo+"|"+xa+")",$s="(?:"+hs+"|"+xa+")",zs="(?:"+wo+"(?:d|ll|m|re|s|t|ve))?",Hs="(?:"+wo+"(?:D|LL|M|RE|S|T|VE))?",Cs=Yo+"?",gs="["+zo+"]?",Lu="(?:"+Kl+"(?:"+[Xo,Ps,El].join("|")+")"+gs+Cs+")*",Ul="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Bu="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Tl=gs+Cs+Lu,ju="(?:"+[ps,Ps,El].join("|")+")"+Tl,Fu="(?:"+[Xo+ga+"?",ga,Ps,El,na].join("|")+")",ws=RegExp(wo,"g"),Pu=RegExp(ga,"g"),vs=RegExp(es+"(?="+es+")|"+Fu+Tl,"g"),Yl=RegExp([hs+"?"+Uo+"+"+zs+"(?="+[Ho,hs,"$"].join("|")+")",$s+"+"+Hs+"(?="+[Ho,hs+Sl,"$"].join("|")+")",hs+"?"+Sl+"+"+zs,hs+"+"+Hs,Bu,Ul,Go,ju].join("|"),"g"),Br=RegExp("["+Kl+cn+Ln+zo+"]"),Hr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,bn=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],gn=-1,tn={};tn[wr]=tn[Mr]=tn[Sr]=tn[Ir]=tn[zr]=tn[Xr]=tn[Zr]=tn[sn]=tn[$n]=!0,tn[mr]=tn[Er]=tn[ir]=tn[_r]=tn[gr]=tn[Ut]=tn[pr]=tn[rr]=tn[$r]=tn[Rr]=tn[Nr]=tn[Qr]=tn[Yr]=tn[Pr]=tn[fr]=!1;var an={};an[mr]=an[Er]=an[ir]=an[gr]=an[_r]=an[Ut]=an[wr]=an[Mr]=an[Sr]=an[Ir]=an[zr]=an[$r]=an[Rr]=an[Nr]=an[Qr]=an[Yr]=an[Pr]=an[Vr]=an[Xr]=an[Zr]=an[sn]=an[$n]=!0,an[pr]=an[rr]=an[fr]=!1;var Gn={À:"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"},Vn={"&":"&","<":"<",">":">",'"':""","'":"'"},no={"&":"&","<":"<",">":">",""":'"',"'":"'"},Io={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ts=parseFloat,zu=parseInt,Gs=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,Al=typeof self=="object"&&self&&self.Object===Object&&self,oo=Gs||Al||Function("return this")(),Hu=_e&&!_e.nodeType&&_e,Is=Hu&&!0&&j&&!j.nodeType&&j,Qp=Is&&Is.exports===Hu,Gu=Qp&&Gs.process,Ro=function(){try{var ur=Is&&Is.require&&Is.require("util").types;return ur||Gu&&Gu.binding&&Gu.binding("util")}catch{}}(),Jp=Ro&&Ro.isArrayBuffer,e1=Ro&&Ro.isDate,r1=Ro&&Ro.isMap,n1=Ro&&Ro.isRegExp,o1=Ro&&Ro.isSet,i1=Ro&&Ro.isTypedArray;function Eo(ur,xr,br){switch(br.length){case 0:return ur.call(xr);case 1:return ur.call(xr,br[0]);case 2:return ur.call(xr,br[0],br[1]);case 3:return ur.call(xr,br[0],br[1],br[2])}return ur.apply(xr,br)}function uv(ur,xr,br,Ur){for(var xn=-1,Dn=ur==null?0:ur.length;++xn-1}function Vu(ur,xr,br){for(var Ur=-1,xn=ur==null?0:ur.length;++Ur-1;);return br}function p1(ur,xr){for(var br=ur.length;br--&&Vs(xr,ur[br],0)>-1;);return br}function yv(ur,xr){for(var br=ur.length,Ur=0;br--;)ur[br]===xr&&++Ur;return Ur}var bv=Uu(Gn),_v=Uu(Vn);function xv(ur){return"\\"+Io[ur]}function Ev(ur,xr){return ur==null?et:ur[xr]}function Ws(ur){return Br.test(ur)}function Sv(ur){return Hr.test(ur)}function Tv(ur){for(var xr,br=[];!(xr=ur.next()).done;)br.push(xr.value);return br}function Qu(ur){var xr=-1,br=Array(ur.size);return ur.forEach(function(Ur,xn){br[++xr]=[xn,Ur]}),br}function h1(ur,xr){return function(br){return ur(xr(br))}}function _s(ur,xr){for(var br=-1,Ur=ur.length,xn=0,Dn=[];++br-1}function f0(ht,vt){var At=this.__data__,wt=pu(At,ht);return wt<0?(++this.size,At.push([ht,vt])):At[wt][1]=vt,this}rs.prototype.clear=l0,rs.prototype.delete=u0,rs.prototype.get=c0,rs.prototype.has=d0,rs.prototype.set=f0;function os(ht){var vt=-1,At=ht==null?0:ht.length;for(this.clear();++vt=vt?ht:vt)),ht}function Mo(ht,vt,At,wt,Bt,Wt){var Jt,nr=vt&ct,dr=vt&dt,Tr=vt&ft;if(At&&(Jt=Bt?At(ht,wt,Bt,Wt):At(ht)),Jt!==et)return Jt;if(!Yn(ht))return ht;var Ar=En(ht);if(Ar){if(Jt=my(ht),!nr)return vo(ht,Jt)}else{var Or=co(ht),Wr=Or==rr||Or==vr;if(ks(ht))return Z1(ht,nr);if(Or==Nr||Or==mr||Wr&&!Bt){if(Jt=dr||Wr?{}:hm(ht),!nr)return dr?iy(ht,C0(Jt,ht)):oy(ht,$1(Jt,ht))}else{if(!an[Or])return Bt?ht:{};Jt=vy(ht,Or,nr)}}Wt||(Wt=new Wo);var Jr=Wt.get(ht);if(Jr)return Jr;Wt.set(ht,Jt),Gm(ht)?ht.forEach(function(vn){Jt.add(Mo(vn,vt,At,vn,ht,Wt))}):zm(ht)&&ht.forEach(function(vn,Cn){Jt.set(Cn,Mo(vn,vt,At,Cn,ht,Wt))});var mn=Tr?dr?xp:_p:dr?bo:so,An=Ar?et:mn(ht);return No(An||ht,function(vn,Cn){An&&(Cn=vn,vn=ht[Cn]),Dl(Jt,Cn,Mo(vn,vt,At,Cn,ht,Wt))}),Jt}function w0(ht){var vt=so(ht);return function(At){return C1(At,ht,vt)}}function C1(ht,vt,At){var wt=At.length;if(ht==null)return!wt;for(ht=Wn(ht);wt--;){var Bt=At[wt],Wt=vt[Bt],Jt=ht[Bt];if(Jt===et&&!(Bt in ht)||!Wt(Jt))return!1}return!0}function w1(ht,vt,At){if(typeof ht!="function")throw new Oo(ot);return Hl(function(){ht.apply(et,At)},vt)}function Ml(ht,vt,At,wt){var Bt=-1,Wt=Xl,Jt=!0,nr=ht.length,dr=[],Tr=vt.length;if(!nr)return dr;At&&(vt=Un(vt,So(At))),wt?(Wt=Vu,Jt=!1):vt.length>=rt&&(Wt=$l,Jt=!1,vt=new Os(vt));e:for(;++BtBt?0:Bt+At),wt=wt===et||wt>Bt?Bt:Tn(wt),wt<0&&(wt+=Bt),wt=At>wt?0:Wm(wt);At0&&At(nr)?vt>1?lo(nr,vt-1,At,wt,Bt):bs(Bt,nr):wt||(Bt[Bt.length]=nr)}return Bt}var rp=tm(),N1=tm(!0);function Zo(ht,vt){return ht&&rp(ht,vt,so)}function np(ht,vt){return ht&&N1(ht,vt,so)}function gu(ht,vt){return ys(vt,function(At){return cs(ht[At])})}function Ms(ht,vt){vt=Ts(vt,ht);for(var At=0,wt=vt.length;ht!=null&&Atvt}function N0(ht,vt){return ht!=null&&Hn.call(ht,vt)}function O0(ht,vt){return ht!=null&&vt in Wn(ht)}function D0(ht,vt,At){return ht>=uo(vt,At)&&ht=120&&Ar.length>=120)?new Os(Jt&&Ar):et}Ar=ht[0];var Or=-1,Wr=nr[0];e:for(;++Or-1;)nr!==ht&&au.call(nr,dr,1),au.call(ht,dr,1);return ht}function G1(ht,vt){for(var At=ht?vt.length:0,wt=At-1;At--;){var Bt=vt[At];if(At==wt||Bt!==Wt){var Wt=Bt;us(Bt)?au.call(ht,Bt,1):pp(ht,Bt)}}return ht}function cp(ht,vt){return ht+uu(S1()*(vt-ht+1))}function K0(ht,vt,At,wt){for(var Bt=-1,Wt=ao(lu((vt-ht)/(At||1)),0),Jt=br(Wt);Wt--;)Jt[wt?Wt:++Bt]=ht,ht+=At;return Jt}function dp(ht,vt){var At="";if(!ht||vt<1||vt>Pt)return At;do vt%2&&(At+=ht),vt=uu(vt/2),vt&&(ht+=ht);while(vt);return At}function kn(ht,vt){return Cp(vm(ht,vt,_o),ht+"")}function U0(ht){return k1(xl(ht))}function Y0(ht,vt){var At=xl(ht);return ku(At,Ds(vt,0,At.length))}function Fl(ht,vt,At,wt){if(!Yn(ht))return ht;vt=Ts(vt,ht);for(var Bt=-1,Wt=vt.length,Jt=Wt-1,nr=ht;nr!=null&&++BtBt?0:Bt+vt),At=At>Bt?Bt:At,At<0&&(At+=Bt),Bt=vt>At?0:At-vt>>>0,vt>>>=0;for(var Wt=br(Bt);++wt>>1,Jt=ht[Wt];Jt!==null&&!Ao(Jt)&&(At?Jt<=vt:Jt=rt){var Tr=vt?null:uy(ht);if(Tr)return Ql(Tr);Jt=!1,Bt=$l,dr=new Os}else dr=vt?[]:nr;e:for(;++wt=wt?ht:Lo(ht,vt,At)}var X1=Fv||function(ht){return oo.clearTimeout(ht)};function Z1(ht,vt){if(vt)return ht.slice();var At=ht.length,wt=y1?y1(At):new ht.constructor(At);return ht.copy(wt),wt}function vp(ht){var vt=new ht.constructor(ht.byteLength);return new ou(vt).set(new ou(ht)),vt}function ey(ht,vt){var At=vt?vp(ht.buffer):ht.buffer;return new ht.constructor(At,ht.byteOffset,ht.byteLength)}function ty(ht){var vt=new ht.constructor(ht.source,Ht.exec(ht));return vt.lastIndex=ht.lastIndex,vt}function ry(ht){return Ol?Wn(Ol.call(ht)):{}}function Q1(ht,vt){var At=vt?vp(ht.buffer):ht.buffer;return new ht.constructor(At,ht.byteOffset,ht.length)}function J1(ht,vt){if(ht!==vt){var At=ht!==et,wt=ht===null,Bt=ht===ht,Wt=Ao(ht),Jt=vt!==et,nr=vt===null,dr=vt===vt,Tr=Ao(vt);if(!nr&&!Tr&&!Wt&&ht>vt||Wt&&Jt&&dr&&!nr&&!Tr||wt&&Jt&&dr||!At&&dr||!Bt)return 1;if(!wt&&!Wt&&!Tr&&ht=nr)return dr;var Tr=At[wt];return dr*(Tr=="desc"?-1:1)}}return ht.index-vt.index}function _h(ht,vt,At,wt){for(var Bt=-1,Wt=ht.length,Jt=At.length,nr=-1,dr=vt.length,Tr=ao(Wt-Jt,0),Ar=br(dr+Tr),Or=!wt;++nr1?At[Bt-1]:et,Jt=Bt>2?At[2]:et;for(Wt=ht.length>3&&typeof Wt=="function"?(Bt--,Wt):et,Jt&&ho(At[0],At[1],Jt)&&(Wt=Bt<3?et:Wt,Bt=1),vt=Wn(vt);++wt-1?Bt[Wt?vt[Jt]:Jt]:et}}function om(ht){return ls(function(vt){var At=vt.length,wt=At,Bt=Do.prototype.thru;for(ht&&vt.reverse();wt--;){var Wt=vt[wt];if(typeof Wt!="function")throw new Oo(ot);if(Bt&&!Jt&&Tu(Wt)=="wrapper")var Jt=new Do([],!0)}for(wt=Jt?wt:At;++wt1&&Rn.reverse(),Ar&&drnr))return!1;var Tr=Wt.get(ht),Ar=Wt.get(vt);if(Tr&&Ar)return Tr==vt&&Ar==ht;var Or=-1,Wr=!0,Jr=At>?new Os:et;for(Wt.set(ht,vt),Wt.set(vt,ht);++Or1?"& ":"")+vt[wt],vt=vt.join(At>2?", ":" "),ht.replace(mo,`{ +/* [wrapped with `+vt+`] */ +`)}function by(ht){return En(ht)||Fs(ht)||!!(x1&&ht&&ht[x1])}function us(ht,vt){var At=typeof ht;return vt=vt??Pt,!!vt&&(At=="number"||At!="symbol"&&er.test(ht))&&ht>-1&&ht%1==0&&ht0){if(++vt>=Nt)return arguments[0]}else vt=0;return ht.apply(et,arguments)}}function ku(ht,vt){var At=-1,wt=ht.length,Bt=wt-1;for(vt=vt===et?wt:vt;++At1?ht[vt-1]:et;return At=typeof At=="function"?(ht.pop(),At):et,wm(ht,At)});function Im(ht){var vt=Vt(ht);return vt.__chain__=!0,vt}function I_(ht,vt){return vt(ht),ht}function $u(ht,vt){return vt(ht)}var R_=ls(function(ht){var vt=ht.length,At=vt?ht[0]:0,wt=this.__wrapped__,Bt=function(Wt){return tp(Wt,ht)};return vt>1||this.__actions__.length||!(wt instanceof In)||!us(At)?this.thru(Bt):(wt=wt.slice(At,+At+(vt?1:0)),wt.__actions__.push({func:$u,args:[Bt],thisArg:et}),new Do(wt,this.__chain__).thru(function(Wt){return vt&&!Wt.length&&Wt.push(et),Wt}))});function N_(){return Im(this)}function O_(){return new Do(this.value(),this.__chain__)}function D_(){this.__values__===et&&(this.__values__=Vm(this.value()));var ht=this.__index__>=this.__values__.length,vt=ht?et:this.__values__[this.__index__++];return{done:ht,value:vt}}function M_(){return this}function L_(ht){for(var vt,At=this;At instanceof fu;){var wt=Sm(At);wt.__index__=0,wt.__values__=et,vt?Bt.__wrapped__=wt:vt=wt;var Bt=wt;At=At.__wrapped__}return Bt.__wrapped__=ht,vt}function B_(){var ht=this.__wrapped__;if(ht instanceof In){var vt=ht;return this.__actions__.length&&(vt=new In(this)),vt=vt.reverse(),vt.__actions__.push({func:$u,args:[wp],thisArg:et}),new Do(vt,this.__chain__)}return this.thru(wp)}function j_(){return U1(this.__wrapped__,this.__actions__)}var F_=bu(function(ht,vt,At){Hn.call(ht,At)?++ht[At]:as(ht,At,1)});function P_(ht,vt,At){var wt=En(ht)?a1:I0;return At&&ho(ht,vt,At)&&(vt=et),wt(ht,pn(vt,3))}function z_(ht,vt){var At=En(ht)?ys:R1;return At(ht,pn(vt,3))}var H_=nm(Tm),G_=nm(Am);function V_(ht,vt){return lo(Cu(ht,vt),1)}function W_(ht,vt){return lo(Cu(ht,vt),Lt)}function q_(ht,vt,At){return At=At===et?1:Tn(At),lo(Cu(ht,vt),At)}function Rm(ht,vt){var At=En(ht)?No:Es;return At(ht,pn(vt,3))}function Nm(ht,vt){var At=En(ht)?cv:I1;return At(ht,pn(vt,3))}var K_=bu(function(ht,vt,At){Hn.call(ht,At)?ht[At].push(vt):as(ht,At,[vt])});function U_(ht,vt,At,wt){ht=yo(ht)?ht:xl(ht),At=At&&!wt?Tn(At):0;var Bt=ht.length;return At<0&&(At=ao(Bt+At,0)),Ou(ht)?At<=Bt&&ht.indexOf(vt,At)>-1:!!Bt&&Vs(ht,vt,At)>-1}var Y_=kn(function(ht,vt,At){var wt=-1,Bt=typeof vt=="function",Wt=yo(ht)?br(ht.length):[];return Es(ht,function(Jt){Wt[++wt]=Bt?Eo(vt,Jt,At):Ll(Jt,vt,At)}),Wt}),X_=bu(function(ht,vt,At){as(ht,At,vt)});function Cu(ht,vt){var At=En(ht)?Un:B1;return At(ht,pn(vt,3))}function Z_(ht,vt,At,wt){return ht==null?[]:(En(vt)||(vt=vt==null?[]:[vt]),At=wt?et:At,En(At)||(At=At==null?[]:[At]),z1(ht,vt,At))}var Q_=bu(function(ht,vt,At){ht[At?0:1].push(vt)},function(){return[[],[]]});function J_(ht,vt,At){var wt=En(ht)?Wu:c1,Bt=arguments.length<3;return wt(ht,pn(vt,4),At,Bt,Es)}function ex(ht,vt,At){var wt=En(ht)?dv:c1,Bt=arguments.length<3;return wt(ht,pn(vt,4),At,Bt,I1)}function tx(ht,vt){var At=En(ht)?ys:R1;return At(ht,Ru(pn(vt,3)))}function rx(ht){var vt=En(ht)?k1:U0;return vt(ht)}function nx(ht,vt,At){(At?ho(ht,vt,At):vt===et)?vt=1:vt=Tn(vt);var wt=En(ht)?A0:Y0;return wt(ht,vt)}function ox(ht){var vt=En(ht)?k0:Z0;return vt(ht)}function ix(ht){if(ht==null)return 0;if(yo(ht))return Ou(ht)?qs(ht):ht.length;var vt=co(ht);return vt==$r||vt==Yr?ht.size:sp(ht).length}function ax(ht,vt,At){var wt=En(ht)?qu:Q0;return At&&ho(ht,vt,At)&&(vt=et),wt(ht,pn(vt,3))}var sx=kn(function(ht,vt){if(ht==null)return[];var At=vt.length;return At>1&&ho(ht,vt[0],vt[1])?vt=[]:At>2&&ho(vt[0],vt[1],vt[2])&&(vt=[vt[0]]),z1(ht,lo(vt,1),[])}),wu=Pv||function(){return oo.Date.now()};function lx(ht,vt){if(typeof vt!="function")throw new Oo(ot);return ht=Tn(ht),function(){if(--ht<1)return vt.apply(this,arguments)}}function Om(ht,vt,At){return vt=At?et:vt,vt=ht&&vt==null?ht.length:vt,ss(ht,Tt,et,et,et,et,vt)}function Dm(ht,vt){var At;if(typeof vt!="function")throw new Oo(ot);return ht=Tn(ht),function(){return--ht>0&&(At=vt.apply(this,arguments)),ht<=1&&(vt=et),At}}var Rp=kn(function(ht,vt,At){var wt=mt;if(At.length){var Bt=_s(At,yl(Rp));wt|=Et}return ss(ht,wt,vt,At,Bt)}),Mm=kn(function(ht,vt,At){var wt=mt|bt;if(At.length){var Bt=_s(At,yl(Mm));wt|=Et}return ss(vt,wt,ht,At,Bt)});function Lm(ht,vt,At){vt=At?et:vt;var wt=ss(ht,xt,et,et,et,et,et,vt);return wt.placeholder=Lm.placeholder,wt}function Bm(ht,vt,At){vt=At?et:vt;var wt=ss(ht,yt,et,et,et,et,et,vt);return wt.placeholder=Bm.placeholder,wt}function jm(ht,vt,At){var wt,Bt,Wt,Jt,nr,dr,Tr=0,Ar=!1,Or=!1,Wr=!0;if(typeof ht!="function")throw new Oo(ot);vt=jo(vt)||0,Yn(At)&&(Ar=!!At.leading,Or="maxWait"in At,Wt=Or?ao(jo(At.maxWait)||0,vt):Wt,Wr="trailing"in At?!!At.trailing:Wr);function Jr(Jn){var Ko=wt,fs=Bt;return wt=Bt=et,Tr=Jn,Jt=ht.apply(fs,Ko),Jt}function mn(Jn){return Tr=Jn,nr=Hl(Cn,vt),Ar?Jr(Jn):Jt}function An(Jn){var Ko=Jn-dr,fs=Jn-Tr,nv=vt-Ko;return Or?uo(nv,Wt-fs):nv}function vn(Jn){var Ko=Jn-dr,fs=Jn-Tr;return dr===et||Ko>=vt||Ko<0||Or&&fs>=Wt}function Cn(){var Jn=wu();if(vn(Jn))return Rn(Jn);nr=Hl(Cn,An(Jn))}function Rn(Jn){return nr=et,Wr&&wt?Jr(Jn):(wt=Bt=et,Jt)}function ko(){nr!==et&&X1(nr),Tr=0,wt=dr=Bt=nr=et}function go(){return nr===et?Jt:Rn(wu())}function $o(){var Jn=wu(),Ko=vn(Jn);if(wt=arguments,Bt=this,dr=Jn,Ko){if(nr===et)return mn(dr);if(Or)return X1(nr),nr=Hl(Cn,vt),Jr(dr)}return nr===et&&(nr=Hl(Cn,vt)),Jt}return $o.cancel=ko,$o.flush=go,$o}var ux=kn(function(ht,vt){return w1(ht,1,vt)}),dx=kn(function(ht,vt,At){return w1(ht,jo(vt)||0,At)});function fx(ht){return ss(ht,$t)}function Iu(ht,vt){if(typeof ht!="function"||vt!=null&&typeof vt!="function")throw new Oo(ot);var At=function(){var wt=arguments,Bt=vt?vt.apply(this,wt):wt[0],Wt=At.cache;if(Wt.has(Bt))return Wt.get(Bt);var Jt=ht.apply(this,wt);return At.cache=Wt.set(Bt,Jt)||Wt,Jt};return At.cache=new(Iu.Cache||os),At}Iu.Cache=os;function Ru(ht){if(typeof ht!="function")throw new Oo(ot);return function(){var vt=arguments;switch(vt.length){case 0:return!ht.call(this);case 1:return!ht.call(this,vt[0]);case 2:return!ht.call(this,vt[0],vt[1]);case 3:return!ht.call(this,vt[0],vt[1],vt[2])}return!ht.apply(this,vt)}}function hx(ht){return Dm(2,ht)}var gx=J0(function(ht,vt){vt=vt.length==1&&En(vt[0])?Un(vt[0],So(pn())):Un(lo(vt,1),So(pn()));var At=vt.length;return kn(function(wt){for(var Bt=-1,Wt=uo(wt.length,At);++Bt=vt}),Fs=D1(function(){return arguments}())?D1:function(ht){return Xn(ht)&&Hn.call(ht,"callee")&&!_1.call(ht,"callee")},En=br.isArray,Rx=Jp?So(Jp):L0;function yo(ht){return ht!=null&&Nu(ht.length)&&!cs(ht)}function Qn(ht){return Xn(ht)&&yo(ht)}function Nx(ht){return ht===!0||ht===!1||Xn(ht)&&po(ht)==_r}var ks=Hv||Gp,Ox=e1?So(e1):B0;function Dx(ht){return Xn(ht)&&ht.nodeType===1&&!Gl(ht)}function Mx(ht){if(ht==null)return!0;if(yo(ht)&&(En(ht)||typeof ht=="string"||typeof ht.splice=="function"||ks(ht)||_l(ht)||Fs(ht)))return!ht.length;var vt=co(ht);if(vt==$r||vt==Yr)return!ht.size;if(zl(ht))return!sp(ht).length;for(var At in ht)if(Hn.call(ht,At))return!1;return!0}function Lx(ht,vt){return Bl(ht,vt)}function Bx(ht,vt,At){At=typeof At=="function"?At:et;var wt=At?At(ht,vt):et;return wt===et?Bl(ht,vt,et,At):!!wt}function Op(ht){if(!Xn(ht))return!1;var vt=po(ht);return vt==pr||vt==ar||typeof ht.message=="string"&&typeof ht.name=="string"&&!Gl(ht)}function jx(ht){return typeof ht=="number"&&E1(ht)}function cs(ht){if(!Yn(ht))return!1;var vt=po(ht);return vt==rr||vt==vr||vt==hr||vt==qr}function Pm(ht){return typeof ht=="number"&&ht==Tn(ht)}function Nu(ht){return typeof ht=="number"&&ht>-1&&ht%1==0&&ht<=Pt}function Yn(ht){var vt=typeof ht;return ht!=null&&(vt=="object"||vt=="function")}function Xn(ht){return ht!=null&&typeof ht=="object"}var zm=r1?So(r1):F0;function Fx(ht,vt){return ht===vt||ap(ht,vt,Sp(vt))}function Px(ht,vt,At){return At=typeof At=="function"?At:et,ap(ht,vt,Sp(vt),At)}function zx(ht){return Hm(ht)&&ht!=+ht}function Hx(ht){if(Ey(ht))throw new xn(nt);return M1(ht)}function Gx(ht){return ht===null}function Vx(ht){return ht==null}function Hm(ht){return typeof ht=="number"||Xn(ht)&&po(ht)==Rr}function Gl(ht){if(!Xn(ht)||po(ht)!=Nr)return!1;var vt=iu(ht);if(vt===null)return!0;var At=Hn.call(vt,"constructor")&&vt.constructor;return typeof At=="function"&&At instanceof At&&tu.call(At)==Lv}var Dp=n1?So(n1):P0;function Wx(ht){return Pm(ht)&&ht>=-Pt&&ht<=Pt}var Gm=o1?So(o1):z0;function Ou(ht){return typeof ht=="string"||!En(ht)&&Xn(ht)&&po(ht)==Pr}function Ao(ht){return typeof ht=="symbol"||Xn(ht)&&po(ht)==Vr}var _l=i1?So(i1):H0;function qx(ht){return ht===et}function Kx(ht){return Xn(ht)&&co(ht)==fr}function Ux(ht){return Xn(ht)&&po(ht)==sr}var Yx=Su(lp),Xx=Su(function(ht,vt){return ht<=vt});function Vm(ht){if(!ht)return[];if(yo(ht))return Ou(ht)?Vo(ht):vo(ht);if(Cl&&ht[Cl])return Tv(ht[Cl]());var vt=co(ht),At=vt==$r?Qu:vt==Yr?Ql:xl;return At(ht)}function ds(ht){if(!ht)return ht===0?ht:0;if(ht=jo(ht),ht===Lt||ht===-Lt){var vt=ht<0?-1:1;return vt*Gt}return ht===ht?ht:0}function Tn(ht){var vt=ds(ht),At=vt%1;return vt===vt?At?vt-At:vt:0}function Wm(ht){return ht?Ds(Tn(ht),0,Yt):0}function jo(ht){if(typeof ht=="number")return ht;if(Ao(ht))return qt;if(Yn(ht)){var vt=typeof ht.valueOf=="function"?ht.valueOf():ht;ht=Yn(vt)?vt+"":vt}if(typeof ht!="string")return ht===0?ht:+ht;ht=d1(ht);var At=Qt.test(ht);return At||lr.test(ht)?zu(ht.slice(2),At?2:8):Dt.test(ht)?qt:+ht}function qm(ht){return Qo(ht,bo(ht))}function Zx(ht){return ht?Ds(Tn(ht),-Pt,Pt):ht===0?ht:0}function Bn(ht){return ht==null?"":To(ht)}var Qx=Qs(function(ht,vt){if(zl(vt)||yo(vt)){Qo(vt,so(vt),ht);return}for(var At in vt)Hn.call(vt,At)&&Dl(ht,At,vt[At])}),Km=Qs(function(ht,vt){Qo(vt,bo(vt),ht)}),Du=Qs(function(ht,vt,At,wt){Qo(vt,bo(vt),ht,wt)}),Jx=Qs(function(ht,vt,At,wt){Qo(vt,so(vt),ht,wt)}),eE=ls(tp);function tE(ht,vt){var At=Zs(ht);return vt==null?At:$1(At,vt)}var rE=kn(function(ht,vt){ht=Wn(ht);var At=-1,wt=vt.length,Bt=wt>2?vt[2]:et;for(Bt&&ho(vt[0],vt[1],Bt)&&(wt=1);++At1),Wt}),Qo(ht,xp(ht),At),wt&&(At=Mo(At,ct|dt|ft,cy));for(var Bt=vt.length;Bt--;)pp(At,vt[Bt]);return At});function _E(ht,vt){return Ym(ht,Ru(pn(vt)))}var xE=ls(function(ht,vt){return ht==null?{}:W0(ht,vt)});function Ym(ht,vt){if(ht==null)return{};var At=Un(xp(ht),function(wt){return[wt]});return vt=pn(vt),H1(ht,At,function(wt,Bt){return vt(wt,Bt[0])})}function EE(ht,vt,At){vt=Ts(vt,ht);var wt=-1,Bt=vt.length;for(Bt||(Bt=1,ht=et);++wtvt){var wt=ht;ht=vt,vt=wt}if(At||ht%1||vt%1){var Bt=S1();return uo(ht+Bt*(vt-ht+ts("1e-"+((Bt+"").length-1))),vt)}return cp(ht,vt)}var OE=Js(function(ht,vt,At){return vt=vt.toLowerCase(),ht+(At?Qm(vt):vt)});function Qm(ht){return Bp(Bn(ht).toLowerCase())}function Jm(ht){return ht=Bn(ht),ht&&ht.replace(yr,bv).replace(Pu,"")}function DE(ht,vt,At){ht=Bn(ht),vt=To(vt);var wt=ht.length;At=At===et?wt:Ds(Tn(At),0,wt);var Bt=At;return At-=vt.length,At>=0&&ht.slice(At,Bt)==vt}function ME(ht){return ht=Bn(ht),ht&&Fn.test(ht)?ht.replace(Sn,_v):ht}function LE(ht){return ht=Bn(ht),ht&&ro.test(ht)?ht.replace(zn,"\\$&"):ht}var BE=Js(function(ht,vt,At){return ht+(At?"-":"")+vt.toLowerCase()}),jE=Js(function(ht,vt,At){return ht+(At?" ":"")+vt.toLowerCase()}),FE=rm("toLowerCase");function PE(ht,vt,At){ht=Bn(ht),vt=Tn(vt);var wt=vt?qs(ht):0;if(!vt||wt>=vt)return ht;var Bt=(vt-wt)/2;return Eu(uu(Bt),At)+ht+Eu(lu(Bt),At)}function zE(ht,vt,At){ht=Bn(ht),vt=Tn(vt);var wt=vt?qs(ht):0;return vt&&wt>>0,At?(ht=Bn(ht),ht&&(typeof vt=="string"||vt!=null&&!Dp(vt))&&(vt=To(vt),!vt&&Ws(ht))?As(Vo(ht),0,At):ht.split(vt,At)):[]}var UE=Js(function(ht,vt,At){return ht+(At?" ":"")+Bp(vt)});function YE(ht,vt,At){return ht=Bn(ht),At=At==null?0:Ds(Tn(At),0,ht.length),vt=To(vt),ht.slice(At,At+vt.length)==vt}function XE(ht,vt,At){var wt=Vt.templateSettings;At&&ho(ht,vt,At)&&(vt=et),ht=Bn(ht),vt=Du({},vt,wt,um);var Bt=Du({},vt.imports,wt.imports,um),Wt=so(Bt),Jt=Zu(Bt,Wt),nr,dr,Tr=0,Ar=vt.interpolate||Lr,Or="__p += '",Wr=Ju((vt.escape||Lr).source+"|"+Ar.source+"|"+(Ar===wn?zt:Lr).source+"|"+(vt.evaluate||Lr).source+"|$","g"),Jr="//# sourceURL="+(Hn.call(vt,"sourceURL")?(vt.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++gn+"]")+` +`;ht.replace(Wr,function(vn,Cn,Rn,ko,go,$o){return Rn||(Rn=ko),Or+=ht.slice(Tr,$o).replace(nn,xv),Cn&&(nr=!0,Or+=`' + +__e(`+Cn+`) + +'`),go&&(dr=!0,Or+=`'; `+go+`; -__p += '`),Nn&&(Dr+=`' + -((__t = (`+Nn+`)) == null ? '' : __t) + -'`),Ir=wo+yn.length,yn}),Dr+=`'; -`;var mn=Gn.call(mt,"variable")&&mt.variable;if(!mn)Dr=`with (obj) { -`+Dr+` +__p += '`),Rn&&(Or+=`' + +((__t = (`+Rn+`)) == null ? '' : __t) + +'`),Tr=$o+vn.length,vn}),Or+=`'; +`;var mn=Hn.call(vt,"variable")&&vt.variable;if(!mn)Or=`with (obj) { +`+Or+` } -`;else if(Ut.test(mn))throw new Sn(it);Dr=(fr?Dr.replace(wn,""):Dr).replace(nn,"$1").replace(Ln,"$1;"),Dr="function("+(mn||"obj")+`) { +`;else if(Kt.test(mn))throw new xn(it);Or=(dr?Or.replace(Nn,""):Or).replace(hn,"$1").replace(jn,"$1;"),Or="function("+(mn||"obj")+`) { `+(mn?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(or?", __e = _.escape":"")+(fr?`, __j = Array.prototype.join; +`)+"var __t, __p = ''"+(nr?", __e = _.escape":"")+(dr?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; -`)+Dr+`return __p -}`;var An=tm(function(){return Bn(Kt,en+"return "+Dr).apply(et,er)});if(An.source=Dr,Np(An))throw An;return An}function ZE(ht){return Fn(ht).toLowerCase()}function QE(ht){return Fn(ht).toUpperCase()}function JE(ht,mt,Tt){if(ht=Fn(ht),ht&&(Tt||mt===et))return d1(ht);if(!ht||!(mt=$o(mt)))return ht;var kt=Wo(ht),Bt=Wo(mt),Kt=f1(kt,Bt),er=p1(kt,Bt)+1;return Ts(kt,Kt,er).join("")}function eS(ht,mt,Tt){if(ht=Fn(ht),ht&&(Tt||mt===et))return ht.slice(0,g1(ht)+1);if(!ht||!(mt=$o(mt)))return ht;var kt=Wo(ht),Bt=p1(kt,Wo(mt))+1;return Ts(kt,0,Bt).join("")}function tS(ht,mt,Tt){if(ht=Fn(ht),ht&&(Tt||mt===et))return ht.replace(Pn,"");if(!ht||!(mt=$o(mt)))return ht;var kt=Wo(ht),Bt=f1(kt,Wo(mt));return Ts(kt,Bt).join("")}function rS(ht,mt){var Tt=Ct,kt=It;if(Yn(mt)){var Bt="separator"in mt?mt.separator:Bt;Tt="length"in mt?Tn(mt.length):Tt,kt="omission"in mt?$o(mt.omission):kt}ht=Fn(ht);var Kt=ht.length;if(Ks(ht)){var er=Wo(ht);Kt=er.length}if(Tt>=Kt)return ht;var or=Tt-Vs(kt);if(or<1)return kt;var fr=er?Ts(er,0,or).join(""):ht.slice(0,or);if(Bt===et)return fr+kt;if(er&&(or+=fr.length-or),Dp(Bt)){if(ht.slice(or).search(Bt)){var Ir,Rr=fr;for(Bt.global||(Bt=Ju(Bt.source,Fn(Ht.exec(Bt))+"g")),Bt.lastIndex=0;Ir=Bt.exec(Rr);)var Dr=Ir.index;fr=fr.slice(0,Dr===et?or:Dr)}}else if(ht.indexOf($o(Bt),or)!=or){var Kr=fr.lastIndexOf(Bt);Kr>-1&&(fr=fr.slice(0,Kr))}return fr+kt}function nS(ht){return ht=Fn(ht),ht&&sn.test(ht)?ht.replace(zn,Cm):ht}var oS=Js(function(ht,mt,Tt){return ht+(Tt?" ":"")+mt.toUpperCase()}),Bp=rv("toUpperCase");function em(ht,mt,Tt){return ht=Fn(ht),mt=Tt?et:mt,mt===et?Sm(ht)?Rm(ht):hm(ht):ht.match(mt)||[]}var tm=kn(function(ht,mt){try{return Eo(ht,et,mt)}catch(Tt){return Np(Tt)?Tt:new Sn(Tt)}}),iS=ls(function(ht,mt){return Oo(mt,function(Tt){Tt=Jo(Tt),as(ht,Tt,Rp(ht[Tt],ht))}),ht});function aS(ht){var mt=ht==null?0:ht.length,Tt=gn();return ht=mt?Un(ht,function(kt){if(typeof kt[1]!="function")throw new No(ot);return[Tt(kt[0]),kt[1]]}):[],kn(function(kt){for(var Bt=-1;++Btjt)return[];var Tt=Yt,kt=uo(ht,Yt);mt=gn(mt),ht-=Yt;for(var Bt=Xu(kt,mt);++Tt0||mt<0)?new On(Tt):(ht<0?Tt=Tt.takeRight(-ht):ht&&(Tt=Tt.drop(ht)),mt!==et&&(mt=Tn(mt),Tt=mt<0?Tt.dropRight(-mt):Tt.take(mt-ht)),Tt)},On.prototype.takeRightWhile=function(ht){return this.reverse().takeWhile(ht).reverse()},On.prototype.toArray=function(){return this.take(Yt)},Zo(On.prototype,function(ht,mt){var Tt=/^(?:filter|find|map|reject)|While$/.test(mt),kt=/^(?:head|last)$/.test(mt),Bt=Wt[kt?"take"+(mt=="last"?"Right":""):mt],Kt=kt||/^find/.test(mt);Bt&&(Wt.prototype[mt]=function(){var er=this.__wrapped__,or=kt?[1]:arguments,fr=er instanceof On,Ir=or[0],Rr=fr||$n(er),Dr=function(Rn){var Nn=Bt.apply(Wt,bs([Rn],or));return kt&&Kr?Nn[0]:Nn};Rr&&Tt&&typeof Ir=="function"&&Ir.length!=1&&(fr=Rr=!1);var Kr=this.__chain__,en=!!this.__actions__.length,mn=Kt&&!Kr,An=fr&&!en;if(!Kt&&Rr){er=An?er:new On(this);var yn=ht.apply(er,or);return yn.__actions__.push({func:wu,args:[Dr],thisArg:et}),new Do(yn,Kr)}return mn&&An?ht.apply(this,or):(yn=this.thru(Dr),mn?kt?yn.value()[0]:yn.value():yn)})}),Oo(["pop","push","shift","sort","splice","unshift"],function(ht){var mt=Jl[ht],Tt=/^(?:push|sort|unshift)$/.test(ht)?"tap":"thru",kt=/^(?:pop|shift)$/.test(ht);Wt.prototype[ht]=function(){var Bt=arguments;if(kt&&!this.__chain__){var Kt=this.value();return mt.apply($n(Kt)?Kt:[],Bt)}return this[Tt](function(er){return mt.apply($n(er)?er:[],Bt)})}}),Zo(On.prototype,function(ht,mt){var Tt=Wt[mt];if(Tt){var kt=Tt.name+"";Gn.call(Xs,kt)||(Xs[kt]=[]),Xs[kt].push({name:mt,func:Tt})}}),Xs[_u(et,bt).name]=[{name:"wrapper",func:et}],On.prototype.clone=Jm,On.prototype.reverse=ey,On.prototype.value=ty,Wt.prototype.at=R_,Wt.prototype.chain=O_,Wt.prototype.commit=N_,Wt.prototype.next=D_,Wt.prototype.plant=L_,Wt.prototype.reverse=B_,Wt.prototype.toJSON=Wt.prototype.valueOf=Wt.prototype.value=P_,Wt.prototype.first=Wt.prototype.head,Cl&&(Wt.prototype[Cl]=M_),Wt},qs=Om();Is?((Is.exports=qs)._=qs,Hu._=qs):oo._=qs}).call(commonjsGlobal)})(lodash$1,lodash$1.exports);var lodashExports=lodash$1.exports;const isImageDataObject=j=>{if(!lodashExports.isPlainObject(j))return!1;const _e=Object.keys(j);return _e.length!==1?!1:_e[0].startsWith("data:image/")},encodeImageDataObjectToMarkup=j=>{const _e=Object.keys(j).find(et=>et.startsWith("data:image/"));return _e?`![image](${j[_e]??""})`:""},listToMarkup=j=>j.map(_e=>typeof _e=="string"?_e:isImageDataObject(_e)?encodeImageDataObjectToMarkup(_e):valueStringify(_e)).join(` +`)+Or+`return __p +}`;var An=tv(function(){return Dn(Wt,Jr+"return "+Or).apply(et,Jt)});if(An.source=Or,Op(An))throw An;return An}function ZE(ht){return Bn(ht).toLowerCase()}function QE(ht){return Bn(ht).toUpperCase()}function JE(ht,vt,At){if(ht=Bn(ht),ht&&(At||vt===et))return d1(ht);if(!ht||!(vt=To(vt)))return ht;var wt=Vo(ht),Bt=Vo(vt),Wt=f1(wt,Bt),Jt=p1(wt,Bt)+1;return As(wt,Wt,Jt).join("")}function eS(ht,vt,At){if(ht=Bn(ht),ht&&(At||vt===et))return ht.slice(0,g1(ht)+1);if(!ht||!(vt=To(vt)))return ht;var wt=Vo(ht),Bt=p1(wt,Vo(vt))+1;return As(wt,0,Bt).join("")}function tS(ht,vt,At){if(ht=Bn(ht),ht&&(At||vt===et))return ht.replace(Mn,"");if(!ht||!(vt=To(vt)))return ht;var wt=Vo(ht),Bt=f1(wt,Vo(vt));return As(wt,Bt).join("")}function rS(ht,vt){var At=Ct,wt=It;if(Yn(vt)){var Bt="separator"in vt?vt.separator:Bt;At="length"in vt?Tn(vt.length):At,wt="omission"in vt?To(vt.omission):wt}ht=Bn(ht);var Wt=ht.length;if(Ws(ht)){var Jt=Vo(ht);Wt=Jt.length}if(At>=Wt)return ht;var nr=At-qs(wt);if(nr<1)return wt;var dr=Jt?As(Jt,0,nr).join(""):ht.slice(0,nr);if(Bt===et)return dr+wt;if(Jt&&(nr+=dr.length-nr),Dp(Bt)){if(ht.slice(nr).search(Bt)){var Tr,Ar=dr;for(Bt.global||(Bt=Ju(Bt.source,Bn(Ht.exec(Bt))+"g")),Bt.lastIndex=0;Tr=Bt.exec(Ar);)var Or=Tr.index;dr=dr.slice(0,Or===et?nr:Or)}}else if(ht.indexOf(To(Bt),nr)!=nr){var Wr=dr.lastIndexOf(Bt);Wr>-1&&(dr=dr.slice(0,Wr))}return dr+wt}function nS(ht){return ht=Bn(ht),ht&&un.test(ht)?ht.replace(qn,Cv):ht}var oS=Js(function(ht,vt,At){return ht+(At?" ":"")+vt.toUpperCase()}),Bp=rm("toUpperCase");function ev(ht,vt,At){return ht=Bn(ht),vt=At?et:vt,vt===et?Sv(ht)?Rv(ht):hv(ht):ht.match(vt)||[]}var tv=kn(function(ht,vt){try{return Eo(ht,et,vt)}catch(At){return Op(At)?At:new xn(At)}}),iS=ls(function(ht,vt){return No(vt,function(At){At=Jo(At),as(ht,At,Rp(ht[At],ht))}),ht});function aS(ht){var vt=ht==null?0:ht.length,At=pn();return ht=vt?Un(ht,function(wt){if(typeof wt[1]!="function")throw new Oo(ot);return[At(wt[0]),wt[1]]}):[],kn(function(wt){for(var Bt=-1;++BtPt)return[];var At=Yt,wt=uo(ht,Yt);vt=pn(vt),ht-=Yt;for(var Bt=Xu(wt,vt);++At0||vt<0)?new In(At):(ht<0?At=At.takeRight(-ht):ht&&(At=At.drop(ht)),vt!==et&&(vt=Tn(vt),At=vt<0?At.dropRight(-vt):At.take(vt-ht)),At)},In.prototype.takeRightWhile=function(ht){return this.reverse().takeWhile(ht).reverse()},In.prototype.toArray=function(){return this.take(Yt)},Zo(In.prototype,function(ht,vt){var At=/^(?:filter|find|map|reject)|While$/.test(vt),wt=/^(?:head|last)$/.test(vt),Bt=Vt[wt?"take"+(vt=="last"?"Right":""):vt],Wt=wt||/^find/.test(vt);Bt&&(Vt.prototype[vt]=function(){var Jt=this.__wrapped__,nr=wt?[1]:arguments,dr=Jt instanceof In,Tr=nr[0],Ar=dr||En(Jt),Or=function(Cn){var Rn=Bt.apply(Vt,bs([Cn],nr));return wt&&Wr?Rn[0]:Rn};Ar&&At&&typeof Tr=="function"&&Tr.length!=1&&(dr=Ar=!1);var Wr=this.__chain__,Jr=!!this.__actions__.length,mn=Wt&&!Wr,An=dr&&!Jr;if(!Wt&&Ar){Jt=An?Jt:new In(this);var vn=ht.apply(Jt,nr);return vn.__actions__.push({func:$u,args:[Or],thisArg:et}),new Do(vn,Wr)}return mn&&An?ht.apply(this,nr):(vn=this.thru(Or),mn?wt?vn.value()[0]:vn.value():vn)})}),No(["pop","push","shift","sort","splice","unshift"],function(ht){var vt=Jl[ht],At=/^(?:push|sort|unshift)$/.test(ht)?"tap":"thru",wt=/^(?:pop|shift)$/.test(ht);Vt.prototype[ht]=function(){var Bt=arguments;if(wt&&!this.__chain__){var Wt=this.value();return vt.apply(En(Wt)?Wt:[],Bt)}return this[At](function(Jt){return vt.apply(En(Jt)?Jt:[],Bt)})}}),Zo(In.prototype,function(ht,vt){var At=Vt[vt];if(At){var wt=At.name+"";Hn.call(Xs,wt)||(Xs[wt]=[]),Xs[wt].push({name:vt,func:At})}}),Xs[_u(et,bt).name]=[{name:"wrapper",func:et}],In.prototype.clone=Jv,In.prototype.reverse=e0,In.prototype.value=r0,Vt.prototype.at=R_,Vt.prototype.chain=N_,Vt.prototype.commit=O_,Vt.prototype.next=D_,Vt.prototype.plant=L_,Vt.prototype.reverse=B_,Vt.prototype.toJSON=Vt.prototype.valueOf=Vt.prototype.value=j_,Vt.prototype.first=Vt.prototype.head,Cl&&(Vt.prototype[Cl]=M_),Vt},Ks=Nv();Is?((Is.exports=Ks)._=Ks,Hu._=Ks):oo._=Ks}).call(commonjsGlobal)})(lodash$1,lodash$1.exports);var lodashExports=lodash$1.exports;const isImageDataObject=j=>{if(!lodashExports.isPlainObject(j))return!1;const _e=Object.keys(j);return _e.length!==1?!1:_e[0].startsWith("data:image/")},encodeImageDataObjectToMarkup=j=>{const _e=Object.keys(j).find(et=>et.startsWith("data:image/"));return _e?`![image](${j[_e]??""})`:""},listToMarkup=j=>j.map(_e=>typeof _e=="string"?_e:isImageDataObject(_e)?encodeImageDataObjectToMarkup(_e):valueStringify(_e)).join(` `),isChatInput=j=>!!j.is_chat_input,isChatHistory=(j,_e,et=!1)=>j!==FlowType.Chat||_e.type!==ValueType.list?!1:Reflect.has(_e,"is_chat_history")?!!_e.is_chat_history:et?!1:_e.name===DEFAULT_CHAT_HISTORY_NAME,isChatOutput=j=>!!j.is_chat_output,makeChatMessageFromUser=(j,_e)=>{const et=typeof j=="string"?j:Array.isArray(j)?listToMarkup(j):JSON.stringify(j)??"",tt=Array.isArray(j)?JSON.stringify(j):void 0;return{id:uuid_1.v4(),from:ChatMessageFrom.User,type:ChatMessageType$1.Text,content:et,contentForCopy:tt,timestamp:new Date().toISOString(),extraData:_e}},makeChatMessageFromChatBot=(j,_e,et,tt)=>{const rt=typeof j=="string"?j:Array.isArray(j)?listToMarkup(j):JSON.stringify(j)??"",nt=Array.isArray(j)?JSON.stringify(j):void 0;return{id:uuid_1.v4(),from:ChatMessageFrom.Chatbot,type:ChatMessageType$1.Text,content:rt,contentForCopy:nt,timestamp:new Date().toISOString(),duration:tt==null?void 0:tt.duration,tokens:tt==null?void 0:tt.total_tokens,error:et,extraData:_e}},parseChatMessages=(j,_e,et)=>{const tt=[];for(const rt of et){const nt=rt.inputs[j],ot=rt.outputs[_e];if(typeof nt=="string"&&typeof ot=="string"){const it={flowInputs:rt.inputs,flowOutputs:rt.outputs};tt.push(makeChatMessageFromUser(nt,it)),tt.push(makeChatMessageFromChatBot(ot,it))}else if(Array.isArray(nt)&&Array.isArray(ot)){const it={flowInputs:rt.inputs,flowOutputs:rt.outputs};tt.push(makeChatMessageFromUser(nt,it)),tt.push(makeChatMessageFromChatBot(ot,it))}}return tt};ValueType.AzureContentSafetyConnection,ValueType.AzureContentModeratorConnection,ValueType.OpenAIConnection,ValueType.AzureOpenAIConnection,ValueType.BingConnection,ValueType.CustomConnection,ValueType.SerpConnection,ValueType.CognitiveSearchConnection,ValueType.SubstrateLLMConnection,ValueType.QdrantConnection,ValueType.WeaviateConnection,ValueType.FormRecognizerConnection;const convertConnectionTypeToValueType=j=>{switch(j){case ConnectionType.AzureContentSafety:return ValueType.AzureContentSafetyConnection;case ConnectionType.AzureContentModerator:return ValueType.AzureContentModeratorConnection;case ConnectionType.Serp:return ValueType.SerpConnection;case ConnectionType.OpenAI:return ValueType.OpenAIConnection;case ConnectionType.Bing:return ValueType.BingConnection;case ConnectionType.AzureOpenAI:return ValueType.AzureOpenAIConnection;case ConnectionType.CognitiveSearch:return ValueType.CognitiveSearchConnection;case ConnectionType.SubstrateLLM:return ValueType.SubstrateLLMConnection;case ConnectionType.Custom:return ValueType.CustomConnection;default:return ValueType.CustomConnection}},getValueTypeByConnectionType=(j,_e)=>{var et;return!_e||_e.length===0?convertConnectionTypeToValueType(j):(et=_e.find(tt=>tt.connectionType===j))==null?void 0:et.flowValueType},getConnectionTypeByName=(j,_e,et)=>{var rt;const tt=(rt=j==null?void 0:j.find(nt=>nt.connectionName===et))==null?void 0:rt.connectionType;if(tt)return getValueTypeByConnectionType(tt,_e)};ValueType.AzureContentSafetyConnection+"",ValueType.BingConnection+"",ValueType.OpenAIConnection+"",ValueType.CustomConnection+"",ValueType.AzureOpenAIConnection+"",ValueType.AzureContentModeratorConnection+"",ValueType.SerpConnection+"",ValueType.CognitiveSearchConnection+"",ValueType.SubstrateLLMConnection+"",ValueType.PineconeConnection+"",ValueType.QdrantConnection+"",ValueType.WeaviateConnection+"",ValueType.FormRecognizerConnection+"",ValueType.ServerlessConnection+"";const safelyParseJson=(j,_e)=>{if(!j)return _e??"";try{return JSON.parse(j)}catch{return _e??""}},intNumberRegExp$1=/^[+-]?\d+$/,doubleNumberRegExp$1=/^[+-]?\d+(\.\d+)?$/,safelyParseInt=j=>{try{const _e=parseInt(j,10);return isNaN(_e)?j:_e}catch{return j}},safelyParseFloat=j=>{try{const _e=parseFloat(j);return isNaN(_e)?j:_e}catch{return j}},boolValues=["true","false","True","False",!0,!1],safelyParseBool=j=>{try{return boolValues.includes(j)?convertToBool(j):j}catch{return j}},convertValByType=(j,_e)=>{var tt;let et=j;if(!(((tt=j==null?void 0:j.trim)==null?void 0:tt.call(j))===""&&_e!==ValueType.string)){switch(_e){case ValueType.int:et=typeof et=="string"&&intNumberRegExp$1.test(et.trim())?safelyParseInt(et):et;break;case ValueType.double:et=typeof et=="string"&&doubleNumberRegExp$1.test(et.trim())?safelyParseFloat(et):et;break;case ValueType.bool:et=safelyParseBool(et);break;case ValueType.string:et=typeof et=="object"?JSON.stringify(et):String(et??"");break;case ValueType.list:case ValueType.object:et=typeof et=="string"?safelyParseJson(et,et):et;break}return et}},inferTypeByVal=j=>{if(typeof j=="boolean")return ValueType.bool;if(typeof j=="number")return Number.isInteger(j)?ValueType.int:ValueType.double;if(Array.isArray(j))return ValueType.list;if(typeof j=="object"&&j!==null)return ValueType.object;if(typeof j=="string")return ValueType.string},filterNodeInputsKeys=(j,_e,et,tt,rt=!1)=>{const nt=sortToolInputs(j),ot={..._e};return Object.keys(nt??{}).filter(lt=>{var ct;const ut=nt==null?void 0:nt[lt];if(!rt&&(ut==null?void 0:ut.input_type)===InputType.uionly_hidden)return!1;if(ut!=null&&ut.enabled_by&&(ut!=null&&ut.enabled_by_value)){const dt=nt==null?void 0:nt[ut.enabled_by],ft=(ot==null?void 0:ot[ut.enabled_by])??(dt==null?void 0:dt.default),pt=convertValByType(ft,(ct=dt==null?void 0:dt.type)==null?void 0:ct[0]),gt=ut==null?void 0:ut.enabled_by_value.includes(pt);return gt||(ot[lt]=void 0),gt}if(ut!=null&&ut.enabled_by&&(ut!=null&&ut.enabled_by_type)){const dt=ot==null?void 0:ot[ut.enabled_by],ft=getConnectionTypeByName(et??[],tt??[],dt??""),pt=ft?ut==null?void 0:ut.enabled_by_type.includes(ft):!1;return pt||(ot[lt]=void 0),pt}return!0})},sortToolInputs=j=>{let _e=[];if(Object.values(j??{}).some(rt=>{var nt;return((nt=rt.ui_hints)==null?void 0:nt.index)!==void 0}))_e=Object.keys(j??{}).sort((rt,nt)=>{var st,lt,ut,ct;const ot=((lt=(st=j==null?void 0:j[rt])==null?void 0:st.ui_hints)==null?void 0:lt.index)??0,it=((ct=(ut=j==null?void 0:j[nt])==null?void 0:ut.ui_hints)==null?void 0:ct.index)??0;return ot-it});else{const rt=[],nt={};Object.keys(j??{}).forEach(it=>{const st=j==null?void 0:j[it];st!=null&&st.enabled_by?(nt[st.enabled_by]||(nt[st.enabled_by]=[]),nt[st.enabled_by].push(it)):rt.push(it)});const ot=it=>{for(const st of it)_e.push(st),nt[st]&&ot(nt[st])};ot(rt)}const tt={};for(const rt of _e)tt[rt]=j==null?void 0:j[rt];return tt};var papaparse_min={exports:{}};/* @license Papa Parse v5.4.1 https://github.com/mholt/PapaParse License: MIT -*/(function(j,_e){(function(et,tt){j.exports=tt()})(commonjsGlobal,function et(){var tt=typeof self<"u"?self:typeof window<"u"?window:tt!==void 0?tt:{},rt=!tt.document&&!!tt.postMessage,nt=tt.IS_PAPA_WORKER||!1,ot={},it=0,st={parse:function(At,wt){var Ct=(wt=wt||{}).dynamicTyping||!1;if($t(Ct)&&(wt.dynamicTypingFunction=Ct,Ct={}),wt.dynamicTyping=Ct,wt.transform=!!$t(wt.transform)&&wt.transform,wt.worker&&st.WORKERS_SUPPORTED){var It=function(){if(!st.WORKERS_SUPPORTED)return!1;var Nt=(Mt=tt.URL||tt.webkitURL||null,Rt=et.toString(),st.BLOB_URL||(st.BLOB_URL=Mt.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",Rt,")();"],{type:"text/javascript"})))),Pt=new tt.Worker(Nt),Mt,Rt;return Pt.onmessage=_t,Pt.id=it++,ot[Pt.id]=Pt}();return It.userStep=wt.step,It.userChunk=wt.chunk,It.userComplete=wt.complete,It.userError=wt.error,wt.step=$t(wt.step),wt.chunk=$t(wt.chunk),wt.complete=$t(wt.complete),wt.error=$t(wt.error),delete wt.worker,void It.postMessage({input:At,config:wt,workerId:It.id})}var Ot=null;return st.NODE_STREAM_INPUT,typeof At=="string"?(At=function(Nt){return Nt.charCodeAt(0)===65279?Nt.slice(1):Nt}(At),Ot=wt.download?new ct(wt):new ft(wt)):At.readable===!0&&$t(At.read)&&$t(At.on)?Ot=new pt(wt):(tt.File&&At instanceof File||At instanceof Object)&&(Ot=new dt(wt)),Ot.stream(At)},unparse:function(At,wt){var Ct=!1,It=!0,Ot=",",Nt=`\r -`,Pt='"',Mt=Pt+Pt,Rt=!1,Lt=null,jt=!1;(function(){if(typeof wt=="object"){if(typeof wt.delimiter!="string"||st.BAD_DELIMITERS.filter(function(Xt){return wt.delimiter.indexOf(Xt)!==-1}).length||(Ot=wt.delimiter),(typeof wt.quotes=="boolean"||typeof wt.quotes=="function"||Array.isArray(wt.quotes))&&(Ct=wt.quotes),typeof wt.skipEmptyLines!="boolean"&&typeof wt.skipEmptyLines!="string"||(Rt=wt.skipEmptyLines),typeof wt.newline=="string"&&(Nt=wt.newline),typeof wt.quoteChar=="string"&&(Pt=wt.quoteChar),typeof wt.header=="boolean"&&(It=wt.header),Array.isArray(wt.columns)){if(wt.columns.length===0)throw new Error("Option columns is empty");Lt=wt.columns}wt.escapeChar!==void 0&&(Mt=wt.escapeChar+Pt),(typeof wt.escapeFormulae=="boolean"||wt.escapeFormulae instanceof RegExp)&&(jt=wt.escapeFormulae instanceof RegExp?wt.escapeFormulae:/^[=+\-@\t\r].*$/)}})();var Gt=new RegExp(vt(Pt),"g");if(typeof At=="string"&&(At=JSON.parse(At)),Array.isArray(At)){if(!At.length||Array.isArray(At[0]))return Vt(null,At,Rt);if(typeof At[0]=="object")return Vt(Lt||Object.keys(At[0]),At,Rt)}else if(typeof At=="object")return typeof At.data=="string"&&(At.data=JSON.parse(At.data)),Array.isArray(At.data)&&(At.fields||(At.fields=At.meta&&At.meta.fields||Lt),At.fields||(At.fields=Array.isArray(At.data[0])?At.fields:typeof At.data[0]=="object"?Object.keys(At.data[0]):[]),Array.isArray(At.data[0])||typeof At.data[0]=="object"||(At.data=[At.data])),Vt(At.fields||[],At.data||[],Rt);throw new Error("Unable to serialize unrecognized input");function Vt(Xt,rr,cr){var vr="";typeof Xt=="string"&&(Xt=JSON.parse(Xt)),typeof rr=="string"&&(rr=JSON.parse(rr));var Tr=Array.isArray(Xt)&&0=this._config.preview;if(nt)tt.postMessage({results:Nt,workerId:st.WORKER_ID,finished:Mt});else if($t(this._config.chunk)&&!Ct){if(this._config.chunk(Nt,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);Nt=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(Nt.data),this._completeResults.errors=this._completeResults.errors.concat(Nt.errors),this._completeResults.meta=Nt.meta),this._completed||!Mt||!$t(this._config.complete)||Nt&&Nt.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),Mt||Nt&&Nt.meta.paused||this._nextChunk(),Nt}this._halted=!0},this._sendError=function(wt){$t(this._config.error)?this._config.error(wt):nt&&this._config.error&&tt.postMessage({workerId:st.WORKER_ID,error:wt,finished:!1})}}function ct(At){var wt;(At=At||{}).chunkSize||(At.chunkSize=st.RemoteChunkSize),ut.call(this,At),this._nextChunk=rt?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(Ct){this._input=Ct,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(wt=new XMLHttpRequest,this._config.withCredentials&&(wt.withCredentials=this._config.withCredentials),rt||(wt.onload=St(this._chunkLoaded,this),wt.onerror=St(this._chunkError,this)),wt.open(this._config.downloadRequestBody?"POST":"GET",this._input,!rt),this._config.downloadRequestHeaders){var Ct=this._config.downloadRequestHeaders;for(var It in Ct)wt.setRequestHeader(It,Ct[It])}if(this._config.chunkSize){var Ot=this._start+this._config.chunkSize-1;wt.setRequestHeader("Range","bytes="+this._start+"-"+Ot)}try{wt.send(this._config.downloadRequestBody)}catch(Nt){this._chunkError(Nt.message)}rt&&wt.status===0&&this._chunkError()}},this._chunkLoaded=function(){wt.readyState===4&&(wt.status<200||400<=wt.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:wt.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(Ct){var It=Ct.getResponseHeader("Content-Range");return It===null?-1:parseInt(It.substring(It.lastIndexOf("/")+1))}(wt),this.parseChunk(wt.responseText)))},this._chunkError=function(Ct){var It=wt.statusText||Ct;this._sendError(new Error(It))}}function dt(At){var wt,Ct;(At=At||{}).chunkSize||(At.chunkSize=st.LocalChunkSize),ut.call(this,At);var It=typeof FileReader<"u";this.stream=function(Ot){this._input=Ot,Ct=Ot.slice||Ot.webkitSlice||Ot.mozSlice,It?((wt=new FileReader).onload=St(this._chunkLoaded,this),wt.onerror=St(this._chunkError,this)):wt=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(Ot.target.result)},this._chunkError=function(){this._sendError(wt.error)}}function ft(At){var wt;ut.call(this,At=At||{}),this.stream=function(Ct){return wt=Ct,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var Ct,It=this._config.chunkSize;return It?(Ct=wt.substring(0,It),wt=wt.substring(It)):(Ct=wt,wt=""),this._finished=!wt,this.parseChunk(Ct)}}}function pt(At){ut.call(this,At=At||{});var wt=[],Ct=!0,It=!1;this.pause=function(){ut.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){ut.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(Ot){this._input=Ot,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){It&&wt.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),wt.length?this.parseChunk(wt.shift()):Ct=!0},this._streamData=St(function(Ot){try{wt.push(typeof Ot=="string"?Ot:Ot.toString(this._config.encoding)),Ct&&(Ct=!1,this._checkIsFinished(),this.parseChunk(wt.shift()))}catch(Nt){this._streamError(Nt)}},this),this._streamError=St(function(Ot){this._streamCleanUp(),this._sendError(Ot)},this),this._streamEnd=St(function(){this._streamCleanUp(),It=!0,this._streamData("")},this),this._streamCleanUp=St(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function gt(At){var wt,Ct,It,Ot=Math.pow(2,53),Nt=-Ot,Pt=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,Mt=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,Rt=this,Lt=0,jt=0,Gt=!1,Vt=!1,Yt=[],Xt={data:[],errors:[],meta:{}};if($t(At.step)){var rr=At.step;At.step=function(qt){if(Xt=qt,Tr())vr();else{if(vr(),Xt.data.length===0)return;Lt+=qt.data.length,At.preview&&Lt>At.preview?Ct.abort():(Xt.data=Xt.data[0],rr(Xt,Rt))}}}function cr(qt){return At.skipEmptyLines==="greedy"?qt.join("").trim()==="":qt.length===1&&qt[0].length===0}function vr(){return Xt&&It&&(Er("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+st.DefaultDelimiter+"'"),It=!1),At.skipEmptyLines&&(Xt.data=Xt.data.filter(function(qt){return!cr(qt)})),Tr()&&function(){if(!Xt)return;function qt(hr,nr){$t(At.transformHeader)&&(hr=At.transformHeader(hr,nr)),Yt.push(hr)}if(Array.isArray(Xt.data[0])){for(var ir=0;Tr()&&ir=Yt.length?"__parsed_extra":Yt[mr]),At.transform&&(wr=At.transform(wr,Or)),wr=gr(Or,wr),Or==="__parsed_extra"?(Ar[Or]=Ar[Or]||[],Ar[Or].push(wr)):Ar[Or]=wr}return At.header&&(mr>Yt.length?Er("FieldMismatch","TooManyFields","Too many fields: expected "+Yt.length+" fields but parsed "+mr,jt+nr):mr=Wr.length/2?`\r -`:"\r"}(qt,nr)),It=!1,At.delimiter)$t(At.delimiter)&&(At.delimiter=At.delimiter(qt),Xt.meta.delimiter=At.delimiter);else{var mr=function(Or,wr,Nr,Wr,Vr){var Jr,Yr,jr,Hr;Vr=Vr||[","," ","|",";",st.RECORD_SEP,st.UNIT_SEP];for(var hn=0;hn=this._config.preview;if(nt)tt.postMessage({results:Ot,workerId:st.WORKER_ID,finished:Mt});else if(Tt(this._config.chunk)&&!Ct){if(this._config.chunk(Ot,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);Ot=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(Ot.data),this._completeResults.errors=this._completeResults.errors.concat(Ot.errors),this._completeResults.meta=Ot.meta),this._completed||!Mt||!Tt(this._config.complete)||Ot&&Ot.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),Mt||Ot&&Ot.meta.paused||this._nextChunk(),Ot}this._halted=!0},this._sendError=function($t){Tt(this._config.error)?this._config.error($t):nt&&this._config.error&&tt.postMessage({workerId:st.WORKER_ID,error:$t,finished:!1})}}function ct(kt){var $t;(kt=kt||{}).chunkSize||(kt.chunkSize=st.RemoteChunkSize),ut.call(this,kt),this._nextChunk=rt?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(Ct){this._input=Ct,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if($t=new XMLHttpRequest,this._config.withCredentials&&($t.withCredentials=this._config.withCredentials),rt||($t.onload=St(this._chunkLoaded,this),$t.onerror=St(this._chunkError,this)),$t.open(this._config.downloadRequestBody?"POST":"GET",this._input,!rt),this._config.downloadRequestHeaders){var Ct=this._config.downloadRequestHeaders;for(var It in Ct)$t.setRequestHeader(It,Ct[It])}if(this._config.chunkSize){var Nt=this._start+this._config.chunkSize-1;$t.setRequestHeader("Range","bytes="+this._start+"-"+Nt)}try{$t.send(this._config.downloadRequestBody)}catch(Ot){this._chunkError(Ot.message)}rt&&$t.status===0&&this._chunkError()}},this._chunkLoaded=function(){$t.readyState===4&&($t.status<200||400<=$t.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:$t.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(Ct){var It=Ct.getResponseHeader("Content-Range");return It===null?-1:parseInt(It.substring(It.lastIndexOf("/")+1))}($t),this.parseChunk($t.responseText)))},this._chunkError=function(Ct){var It=$t.statusText||Ct;this._sendError(new Error(It))}}function dt(kt){var $t,Ct;(kt=kt||{}).chunkSize||(kt.chunkSize=st.LocalChunkSize),ut.call(this,kt);var It=typeof FileReader<"u";this.stream=function(Nt){this._input=Nt,Ct=Nt.slice||Nt.webkitSlice||Nt.mozSlice,It?(($t=new FileReader).onload=St(this._chunkLoaded,this),$t.onerror=St(this._chunkError,this)):$t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(Nt.target.result)},this._chunkError=function(){this._sendError($t.error)}}function ft(kt){var $t;ut.call(this,kt=kt||{}),this.stream=function(Ct){return $t=Ct,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var Ct,It=this._config.chunkSize;return It?(Ct=$t.substring(0,It),$t=$t.substring(It)):(Ct=$t,$t=""),this._finished=!$t,this.parseChunk(Ct)}}}function pt(kt){ut.call(this,kt=kt||{});var $t=[],Ct=!0,It=!1;this.pause=function(){ut.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){ut.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(Nt){this._input=Nt,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){It&&$t.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),$t.length?this.parseChunk($t.shift()):Ct=!0},this._streamData=St(function(Nt){try{$t.push(typeof Nt=="string"?Nt:Nt.toString(this._config.encoding)),Ct&&(Ct=!1,this._checkIsFinished(),this.parseChunk($t.shift()))}catch(Ot){this._streamError(Ot)}},this),this._streamError=St(function(Nt){this._streamCleanUp(),this._sendError(Nt)},this),this._streamEnd=St(function(){this._streamCleanUp(),It=!0,this._streamData("")},this),this._streamCleanUp=St(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function gt(kt){var $t,Ct,It,Nt=Math.pow(2,53),Ot=-Nt,jt=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,Mt=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,Rt=this,Lt=0,Pt=0,Gt=!1,qt=!1,Yt=[],Xt={data:[],errors:[],meta:{}};if(Tt(kt.step)){var tr=kt.step;kt.step=function(Ut){if(Xt=Ut,Er())mr();else{if(mr(),Xt.data.length===0)return;Lt+=Ut.data.length,kt.preview&&Lt>kt.preview?Ct.abort():(Xt.data=Xt.data[0],tr(Xt,Rt))}}}function cr(Ut){return kt.skipEmptyLines==="greedy"?Ut.join("").trim()==="":Ut.length===1&&Ut[0].length===0}function mr(){return Xt&&It&&(_r("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+st.DefaultDelimiter+"'"),It=!1),kt.skipEmptyLines&&(Xt.data=Xt.data.filter(function(Ut){return!cr(Ut)})),Er()&&function(){if(!Xt)return;function Ut(pr,rr){Tt(kt.transformHeader)&&(pr=kt.transformHeader(pr,rr)),Yt.push(pr)}if(Array.isArray(Xt.data[0])){for(var ar=0;Er()&&ar=Yt.length?"__parsed_extra":Yt[vr]),kt.transform&&(Cr=kt.transform(Cr,Rr)),Cr=hr(Rr,Cr),Rr==="__parsed_extra"?($r[Rr]=$r[Rr]||[],$r[Rr].push(Cr)):$r[Rr]=Cr}return kt.header&&(vr>Yt.length?_r("FieldMismatch","TooManyFields","Too many fields: expected "+Yt.length+" fields but parsed "+vr,Pt+rr):vr=Gr.length/2?`\r +`:"\r"}(Ut,rr)),It=!1,kt.delimiter)Tt(kt.delimiter)&&(kt.delimiter=kt.delimiter(Ut),Xt.meta.delimiter=kt.delimiter);else{var vr=function(Rr,Cr,Nr,Gr,qr){var Qr,Yr,Pr,Vr;qr=qr||[","," ","|",";",st.RECORD_SEP,st.UNIT_SEP];for(var yn=0;yn=Pt)return Cr(!0)}else for(pr=Lt,Lt++;;){if((pr=Gt.indexOf(wt,pr+1))===-1)return Yt||Er.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:gr.length,index:Lt}),Sr();if(pr===Xt-1)return Sr(Gt.substring(Lt,pr).replace(hn,wt));if(wt!==Rt||Gt[pr+1]!==Rt){if(wt===Rt||pr===0||Gt[pr-1]!==Rt){jr!==-1&&jr=Pt)return Cr(!0);break}Er.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:gr.length,index:Lt}),pr++}}else pr++}return Sr();function ur(Xr){gr.push(Xr),ir=Lt}function br(Xr){var qr=0;if(Xr!==-1){var Qr=Gt.substring(pr+1,Xr);Qr&&Qr.trim()===""&&(qr=Qr.length)}return qr}function Sr(Xr){return Yt||(Xr===void 0&&(Xr=Gt.substring(Lt)),qt.push(Xr),Lt=Xt,ur(qt),Tr&&Lr()),Cr()}function yr(Xr){Lt=Xr,ur(qt),qt=[],Hr=Gt.indexOf(It,Lt)}function Cr(Xr){return{data:gr,errors:Er,meta:{delimiter:Ct,linebreak:It,aborted:jt,truncated:!!Xr,cursor:ir+(Vt||0)}}}function Lr(){Nt(Cr()),gr=[],Er=[]}},this.abort=function(){jt=!0},this.getCharIndex=function(){return Lt}}function _t(At){var wt=At.data,Ct=ot[wt.workerId],It=!1;if(wt.error)Ct.userError(wt.error,wt.file);else if(wt.results&&wt.results.data){var Ot={abort:function(){It=!0,xt(wt.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:yt,resume:yt};if($t(Ct.userStep)){for(var Nt=0;Nt{const tt={};return Object.keys(j).forEach(rt=>{const nt=j[rt];rt===_e?tt[et]=nt:tt[rt]=nt}),tt},getDefaultNodeVariant=j=>{const{defaultVariantId:_e=BASELINE_VARIANT_ID,variants:et={}}=j,tt=et[_e];return tt==null?void 0:tt.node},getDefaultNodeList=(j,_e)=>{const et=[];return j.forEach(tt=>{const rt=_e.get(tt);if(!rt)return;const nt=getDefaultNodeVariant(rt);nt&&et.push(nt)}),et},getFlowSnapshotNodeList=(j,_e,et)=>{const tt=[];return j.forEach(rt=>{if(et.includes(rt)){tt.push({name:rt,use_variants:!0});return}const nt=_e[rt];if(!nt)return;const ot={inputs:{},...getDefaultNodeVariant(nt)};ot&&tt.push(ot)}),tt};ToolType.llm;ToolType.prompt;ValueType.string,ToolType.python;ValueType.string,ToolType.typescript;const getTokensUsageByRow=j=>{var _e,et,tt,rt,nt,ot;return j.children&&j.children.length>0?j.children.reduce((it,st)=>{const lt=getTokensUsageByRow(st);return{totalTokens:it.totalTokens+lt.totalTokens,promptTokens:it.promptTokens+lt.promptTokens,completionTokens:it.completionTokens+lt.completionTokens}},{totalTokens:0,promptTokens:0,completionTokens:0}):{totalTokens:((et=(_e=j.output)==null?void 0:_e.usage)==null?void 0:et.total_tokens)??0,promptTokens:((rt=(tt=j.output)==null?void 0:tt.usage)==null?void 0:rt.prompt_tokens)??0,completionTokens:((ot=(nt=j.output)==null?void 0:nt.usage)==null?void 0:ot.completion_tokens)??0}},numberToDigitsString=j=>j.toString().replace(/\B(?=(\d{3})+(?!\d))/g,","),timePDTFormatter=j=>{const _e=new Date(j),et=getUTCTimezoneOffset();return`${_e.getFullYear()}-${_e.getMonth()+1}-${_e.getDate()} ${_e.getHours()}:${_e.getMinutes()}:${_e.getSeconds()}:${_e.getMilliseconds()} (${et})`},getUTCTimezoneOffset=()=>{const j=new Date().getTimezoneOffset(),_e=Math.abs(j);return`UTC${(j<0?"+":"-")+`00${Math.floor(_e/60)}`.slice(-2)}:${`00${_e%60}`.slice(-2)}`},hasOwn$l=(j,_e)=>Object.prototype.hasOwnProperty.call(j,_e),resolveTool=(j,_e,et,tt)=>{var rt,nt,ot;if(((rt=j==null?void 0:j.source)==null?void 0:rt.type)==="code")return _e;if(((nt=j==null?void 0:j.source)==null?void 0:nt.type)==="package_with_prompt"){const it=(ot=j==null?void 0:j.source)==null?void 0:ot.path,st=tt(it??"");return et?{...et,inputs:{...st==null?void 0:st.inputs,...addPositionField(et==null?void 0:et.inputs,"parameter")},code:st==null?void 0:st.code}:void 0}return et},addPositionField=(j,_e)=>{if(!j)return j;const et={...j};return Object.keys(et).forEach(tt=>{et[tt]={...et[tt],position:_e}}),et},keyWords=["and","as","assert","break","class","continue","def","del","elif","else","except","False","finally","for","from","global","if","import","in","is","lambda","None","nonlocal","not","or","pass","raise","return","True","try","while","with","yield"],keyFunction=["abs","all","any","ascii","bin","bool","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","str","sum","super","tuple","type","vars","zip"],flowWords=["input","inputs","output","outputs","flow","flows"],checkNodeNameValid=j=>keyWords.some(_e=>_e===j)||keyFunction.some(_e=>_e===j)||flowWords.some(_e=>_e===j)?!1:/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(j),getNodesThatMoreThanOneVariant=(j={})=>{const _e=[];return Object.keys(j).forEach(et=>{const tt=j[et],{variants:rt={},defaultVariantId:nt,default_variant_id:ot}=tt,it=Object.keys(rt).length;it>1&&_e.push({nodeName:et,variantsCount:it,defaultVariantId:nt??ot??BASELINE_VARIANT_ID,variants:rt})}),_e},getVariantNodes=(j={})=>{const _e={};return Object.keys(j).forEach(et=>{const tt=j[et],{variants:rt={}}=tt;if(Object.keys(rt).length>1){const ot=lodashExports.cloneDeep(tt);Object.entries((ot==null?void 0:ot.variants)??{}).forEach(([st,lt])=>{lt.node&&delete lt.node.name});const it=ot.defaultVariantId;delete ot.defaultVariantId,_e[et]={default_variant_id:it,...ot}}}),Object.keys(_e).length>0?_e:void 0},revValueRegex=/^\$\{(\S+)\}$/,getRefValueFromRaw=j=>{var _e,et;return(et=(_e=`${j??""}`)==null?void 0:_e.match(revValueRegex))==null?void 0:et[1]},generateRandomStrings=j=>{const _e="abcdefghijklmnopqrstuvwxyz0123456789";let et="";for(let tt=0;ttgenerateRandomStrings(8),getRandomOutputDefinitionId=getRandomInputDefinitionId,intNumberRegExp=/^[+-]?\d+$/,doubleNumberRegExp=/^[+-]?\d+(\.\d+)?$/,isBool=j=>j.toLowerCase()==="true"||j.toLowerCase()==="false",isNumber$4=j=>doubleNumberRegExp.test(j.trim())?j===j.trim()&&j.length>0&&!Number.isNaN(Number(j)):!1,isInt=j=>intNumberRegExp.test(j.trim())?isNumber$4(j)&&Number.isInteger(Number(j)):!1,isList$1=j=>{try{const _e=JSON.parse(j);return Array.isArray(_e)}catch{return!1}},isObject$y=j=>{try{const _e=JSON.parse(j);return Object.prototype.toString.call(_e)==="[object Object]"}catch{return!1}},isTypeValid=(j,_e)=>{const et=typeof j,tt=et==="string";switch(_e){case ValueType.int:return tt?isInt(j):Number.isInteger(j);case ValueType.double:return tt?isNumber$4(j):et==="number";case ValueType.list:return tt?isList$1(j):Array.isArray(j);case ValueType.object:return tt?isObject$y(j):et==="object";case ValueType.bool:return tt?isBool(j):et==="boolean";case ValueType.function_str:return!0;default:return!0}},getCycle=(j,_e,et,tt)=>{var ot,it;const rt=[],nt=new Set(j.keys());for(j.forEach((st,lt)=>{st===0&&rt.push(lt)});rt.length>0;){const st=rt.shift();st&&(nt.delete(st),(ot=_e.get(st))==null||ot.forEach(lt=>{const ut=(j.get(lt)??0)-1;j.set(lt,ut),ut===0&&rt.push(lt)}))}for(et.forEach((st,lt)=>{st===0&&rt.push(lt)});rt.length>0;){const st=rt.shift();st&&(nt.delete(st),(it=tt.get(st))==null||it.forEach(lt=>{const ut=(et.get(lt)??0)-1;et.set(lt,ut),ut===0&&rt.push(lt)}))}return nt};function commonjsRequire$1(j){throw new Error('Could not dynamically require "'+j+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}function listCacheClear$1(){this.__data__=[],this.size=0}var _listCacheClear=listCacheClear$1;function eq$4(j,_e){return j===_e||j!==j&&_e!==_e}var eq_1=eq$4,eq$3=eq_1;function assocIndexOf$4(j,_e){for(var et=j.length;et--;)if(eq$3(j[et][0],_e))return et;return-1}var _assocIndexOf=assocIndexOf$4,assocIndexOf$3=_assocIndexOf,arrayProto=Array.prototype,splice$4=arrayProto.splice;function listCacheDelete$1(j){var _e=this.__data__,et=assocIndexOf$3(_e,j);if(et<0)return!1;var tt=_e.length-1;return et==tt?_e.pop():splice$4.call(_e,et,1),--this.size,!0}var _listCacheDelete=listCacheDelete$1,assocIndexOf$2=_assocIndexOf;function listCacheGet$1(j){var _e=this.__data__,et=assocIndexOf$2(_e,j);return et<0?void 0:_e[et][1]}var _listCacheGet=listCacheGet$1,assocIndexOf$1=_assocIndexOf;function listCacheHas$1(j){return assocIndexOf$1(this.__data__,j)>-1}var _listCacheHas=listCacheHas$1,assocIndexOf=_assocIndexOf;function listCacheSet$1(j,_e){var et=this.__data__,tt=assocIndexOf(et,j);return tt<0?(++this.size,et.push([j,_e])):et[tt][1]=_e,this}var _listCacheSet=listCacheSet$1,listCacheClear=_listCacheClear,listCacheDelete=_listCacheDelete,listCacheGet=_listCacheGet,listCacheHas=_listCacheHas,listCacheSet=_listCacheSet;function ListCache$4(j){var _e=-1,et=j==null?0:j.length;for(this.clear();++_e-1&&j%1==0&&j<_e}var _isIndex=isIndex$3,MAX_SAFE_INTEGER$2=9007199254740991;function isLength$3(j){return typeof j=="number"&&j>-1&&j%1==0&&j<=MAX_SAFE_INTEGER$2}var isLength_1=isLength$3,baseGetTag$6=_baseGetTag,isLength$2=isLength_1,isObjectLike$8=isObjectLike_1,argsTag$2="[object Arguments]",arrayTag$2="[object Array]",boolTag$4="[object Boolean]",dateTag$3="[object Date]",errorTag$2="[object Error]",funcTag$1="[object Function]",mapTag$5="[object Map]",numberTag$4="[object Number]",objectTag$4="[object Object]",regexpTag$3="[object RegExp]",setTag$5="[object Set]",stringTag$4="[object String]",weakMapTag$2="[object WeakMap]",arrayBufferTag$3="[object ArrayBuffer]",dataViewTag$4="[object DataView]",float32Tag$2="[object Float32Array]",float64Tag$2="[object Float64Array]",int8Tag$2="[object Int8Array]",int16Tag$2="[object Int16Array]",int32Tag$2="[object Int32Array]",uint8Tag$2="[object Uint8Array]",uint8ClampedTag$2="[object Uint8ClampedArray]",uint16Tag$2="[object Uint16Array]",uint32Tag$2="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag$2]=typedArrayTags[float64Tag$2]=typedArrayTags[int8Tag$2]=typedArrayTags[int16Tag$2]=typedArrayTags[int32Tag$2]=typedArrayTags[uint8Tag$2]=typedArrayTags[uint8ClampedTag$2]=typedArrayTags[uint16Tag$2]=typedArrayTags[uint32Tag$2]=!0;typedArrayTags[argsTag$2]=typedArrayTags[arrayTag$2]=typedArrayTags[arrayBufferTag$3]=typedArrayTags[boolTag$4]=typedArrayTags[dataViewTag$4]=typedArrayTags[dateTag$3]=typedArrayTags[errorTag$2]=typedArrayTags[funcTag$1]=typedArrayTags[mapTag$5]=typedArrayTags[numberTag$4]=typedArrayTags[objectTag$4]=typedArrayTags[regexpTag$3]=typedArrayTags[setTag$5]=typedArrayTags[stringTag$4]=typedArrayTags[weakMapTag$2]=!1;function baseIsTypedArray$1(j){return isObjectLike$8(j)&&isLength$2(j.length)&&!!typedArrayTags[baseGetTag$6(j)]}var _baseIsTypedArray=baseIsTypedArray$1;function baseUnary$4(j){return function(_e){return j(_e)}}var _baseUnary=baseUnary$4,_nodeUtil={exports:{}};_nodeUtil.exports;(function(j,_e){var et=_freeGlobal,tt=_e&&!_e.nodeType&&_e,rt=tt&&!0&&j&&!j.nodeType&&j,nt=rt&&rt.exports===tt,ot=nt&&et.process,it=function(){try{var st=rt&&rt.require&&rt.require("util").types;return st||ot&&ot.binding&&ot.binding("util")}catch{}}();j.exports=it})(_nodeUtil,_nodeUtil.exports);var _nodeUtilExports=_nodeUtil.exports,baseIsTypedArray=_baseIsTypedArray,baseUnary$3=_baseUnary,nodeUtil$2=_nodeUtilExports,nodeIsTypedArray=nodeUtil$2&&nodeUtil$2.isTypedArray,isTypedArray$3=nodeIsTypedArray?baseUnary$3(nodeIsTypedArray):baseIsTypedArray,isTypedArray_1=isTypedArray$3,baseTimes=_baseTimes,isArguments$2=isArguments_1,isArray$t=isArray_1,isBuffer$2=isBufferExports,isIndex$2=_isIndex,isTypedArray$2=isTypedArray_1,objectProto$8=Object.prototype,hasOwnProperty$b=objectProto$8.hasOwnProperty;function arrayLikeKeys$2(j,_e){var et=isArray$t(j),tt=!et&&isArguments$2(j),rt=!et&&!tt&&isBuffer$2(j),nt=!et&&!tt&&!rt&&isTypedArray$2(j),ot=et||tt||rt||nt,it=ot?baseTimes(j.length,String):[],st=it.length;for(var lt in j)(_e||hasOwnProperty$b.call(j,lt))&&!(ot&&(lt=="length"||rt&&(lt=="offset"||lt=="parent")||nt&&(lt=="buffer"||lt=="byteLength"||lt=="byteOffset")||isIndex$2(lt,st)))&&it.push(lt);return it}var _arrayLikeKeys=arrayLikeKeys$2,objectProto$7=Object.prototype;function isPrototype$3(j){var _e=j&&j.constructor,et=typeof _e=="function"&&_e.prototype||objectProto$7;return j===et}var _isPrototype=isPrototype$3;function overArg$2(j,_e){return function(et){return j(_e(et))}}var _overArg=overArg$2,overArg$1=_overArg,nativeKeys$2=overArg$1(Object.keys,Object),_nativeKeys=nativeKeys$2,isPrototype$2=_isPrototype,nativeKeys$1=_nativeKeys,objectProto$6=Object.prototype,hasOwnProperty$a=objectProto$6.hasOwnProperty;function baseKeys$1(j){if(!isPrototype$2(j))return nativeKeys$1(j);var _e=[];for(var et in Object(j))hasOwnProperty$a.call(j,et)&&et!="constructor"&&_e.push(et);return _e}var _baseKeys=baseKeys$1,isFunction$3=isFunction_1,isLength$1=isLength_1;function isArrayLike$8(j){return j!=null&&isLength$1(j.length)&&!isFunction$3(j)}var isArrayLike_1=isArrayLike$8,arrayLikeKeys$1=_arrayLikeKeys,baseKeys=_baseKeys,isArrayLike$7=isArrayLike_1;function keys$c(j){return isArrayLike$7(j)?arrayLikeKeys$1(j):baseKeys(j)}var keys_1=keys$c,copyObject$3=_copyObject,keys$b=keys_1;function baseAssign$1(j,_e){return j&©Object$3(_e,keys$b(_e),j)}var _baseAssign=baseAssign$1;function nativeKeysIn$1(j){var _e=[];if(j!=null)for(var et in Object(j))_e.push(et);return _e}var _nativeKeysIn=nativeKeysIn$1,isObject$t=isObject_1,isPrototype$1=_isPrototype,nativeKeysIn=_nativeKeysIn,objectProto$5=Object.prototype,hasOwnProperty$9=objectProto$5.hasOwnProperty;function baseKeysIn$1(j){if(!isObject$t(j))return nativeKeysIn(j);var _e=isPrototype$1(j),et=[];for(var tt in j)tt=="constructor"&&(_e||!hasOwnProperty$9.call(j,tt))||et.push(tt);return et}var _baseKeysIn=baseKeysIn$1,arrayLikeKeys=_arrayLikeKeys,baseKeysIn=_baseKeysIn,isArrayLike$6=isArrayLike_1;function keysIn$3(j){return isArrayLike$6(j)?arrayLikeKeys(j,!0):baseKeysIn(j)}var keysIn_1=keysIn$3,copyObject$2=_copyObject,keysIn$2=keysIn_1;function baseAssignIn$1(j,_e){return j&©Object$2(_e,keysIn$2(_e),j)}var _baseAssignIn=baseAssignIn$1,_cloneBuffer={exports:{}};_cloneBuffer.exports;(function(j,_e){var et=_root$1,tt=_e&&!_e.nodeType&&_e,rt=tt&&!0&&j&&!j.nodeType&&j,nt=rt&&rt.exports===tt,ot=nt?et.Buffer:void 0,it=ot?ot.allocUnsafe:void 0;function st(lt,ut){if(ut)return lt.slice();var ct=lt.length,dt=it?it(ct):new lt.constructor(ct);return lt.copy(dt),dt}j.exports=st})(_cloneBuffer,_cloneBuffer.exports);var _cloneBufferExports=_cloneBuffer.exports;function copyArray$1(j,_e){var et=-1,tt=j.length;for(_e||(_e=Array(tt));++etit))return!1;var lt=nt.get(j),ut=nt.get(_e);if(lt&&ut)return lt==_e&&ut==j;var ct=-1,dt=!0,ft=et&COMPARE_UNORDERED_FLAG$3?new SetCache$1:void 0;for(nt.set(j,_e),nt.set(_e,j);++ct0&&et(it)?_e>1?baseFlatten$3(it,_e-1,et,tt,rt):arrayPush$1(rt,it):tt||(rt[rt.length]=it)}return rt}var _baseFlatten=baseFlatten$3;function apply$6(j,_e,et){switch(et.length){case 0:return j.call(_e);case 1:return j.call(_e,et[0]);case 2:return j.call(_e,et[0],et[1]);case 3:return j.call(_e,et[0],et[1],et[2])}return j.apply(_e,et)}var _apply=apply$6,apply$5=_apply,nativeMax$3=Math.max;function overRest$2(j,_e,et){return _e=nativeMax$3(_e===void 0?j.length-1:_e,0),function(){for(var tt=arguments,rt=-1,nt=nativeMax$3(tt.length-_e,0),ot=Array(nt);++rt0){if(++_e>=HOT_COUNT)return arguments[0]}else _e=0;return j.apply(void 0,arguments)}}var _shortOut=shortOut$1,baseSetToString=_baseSetToString,shortOut=_shortOut,setToString$2=shortOut(baseSetToString),_setToString=setToString$2,identity$9=identity_1,overRest$1=_overRest,setToString$1=_setToString;function baseRest$1(j,_e){return setToString$1(overRest$1(j,_e,identity$9),j+"")}var _baseRest=baseRest$1;function baseFindIndex$2(j,_e,et,tt){for(var rt=j.length,nt=et+(tt?1:-1);tt?nt--:++nt-1}var _arrayIncludes=arrayIncludes$3;function arrayIncludesWith$1(j,_e,et){for(var tt=-1,rt=j==null?0:j.length;++tt=LARGE_ARRAY_SIZE){var lt=_e?null:createSet(j);if(lt)return setToArray(lt);ot=!1,rt=cacheHas,st=new SetCache}else st=_e?[]:it;e:for(;++tt1?ft.setNode(pt,ct):ft.setNode(pt)}),this},rt.prototype.setNode=function(ut,ct){return j.has(this._nodes,ut)?(arguments.length>1&&(this._nodes[ut]=ct),this):(this._nodes[ut]=arguments.length>1?ct:this._defaultNodeLabelFn(ut),this._isCompound&&(this._parent[ut]=et,this._children[ut]={},this._children[et][ut]=!0),this._in[ut]={},this._preds[ut]={},this._out[ut]={},this._sucs[ut]={},++this._nodeCount,this)},rt.prototype.node=function(ut){return this._nodes[ut]},rt.prototype.hasNode=function(ut){return j.has(this._nodes,ut)},rt.prototype.removeNode=function(ut){var ct=this;if(j.has(this._nodes,ut)){var dt=function(ft){ct.removeEdge(ct._edgeObjs[ft])};delete this._nodes[ut],this._isCompound&&(this._removeFromParentsChildList(ut),delete this._parent[ut],j.each(this.children(ut),function(ft){ct.setParent(ft)}),delete this._children[ut]),j.each(j.keys(this._in[ut]),dt),delete this._in[ut],delete this._preds[ut],j.each(j.keys(this._out[ut]),dt),delete this._out[ut],delete this._sucs[ut],--this._nodeCount}return this},rt.prototype.setParent=function(ut,ct){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(j.isUndefined(ct))ct=et;else{ct+="";for(var dt=ct;!j.isUndefined(dt);dt=this.parent(dt))if(dt===ut)throw new Error("Setting "+ct+" as parent of "+ut+" would create a cycle");this.setNode(ct)}return this.setNode(ut),this._removeFromParentsChildList(ut),this._parent[ut]=ct,this._children[ct][ut]=!0,this},rt.prototype._removeFromParentsChildList=function(ut){delete this._children[this._parent[ut]][ut]},rt.prototype.parent=function(ut){if(this._isCompound){var ct=this._parent[ut];if(ct!==et)return ct}},rt.prototype.children=function(ut){if(j.isUndefined(ut)&&(ut=et),this._isCompound){var ct=this._children[ut];if(ct)return j.keys(ct)}else{if(ut===et)return this.nodes();if(this.hasNode(ut))return[]}},rt.prototype.predecessors=function(ut){var ct=this._preds[ut];if(ct)return j.keys(ct)},rt.prototype.successors=function(ut){var ct=this._sucs[ut];if(ct)return j.keys(ct)},rt.prototype.neighbors=function(ut){var ct=this.predecessors(ut);if(ct)return j.union(ct,this.successors(ut))},rt.prototype.isLeaf=function(ut){var ct;return this.isDirected()?ct=this.successors(ut):ct=this.neighbors(ut),ct.length===0},rt.prototype.filterNodes=function(ut){var ct=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});ct.setGraph(this.graph());var dt=this;j.each(this._nodes,function(gt,vt){ut(vt)&&ct.setNode(vt,gt)}),j.each(this._edgeObjs,function(gt){ct.hasNode(gt.v)&&ct.hasNode(gt.w)&&ct.setEdge(gt,dt.edge(gt))});var ft={};function pt(gt){var vt=dt.parent(gt);return vt===void 0||ct.hasNode(vt)?(ft[gt]=vt,vt):vt in ft?ft[vt]:pt(vt)}return this._isCompound&&j.each(ct.nodes(),function(gt){ct.setParent(gt,pt(gt))}),ct},rt.prototype.setDefaultEdgeLabel=function(ut){return j.isFunction(ut)||(ut=j.constant(ut)),this._defaultEdgeLabelFn=ut,this},rt.prototype.edgeCount=function(){return this._edgeCount},rt.prototype.edges=function(){return j.values(this._edgeObjs)},rt.prototype.setPath=function(ut,ct){var dt=this,ft=arguments;return j.reduce(ut,function(pt,gt){return ft.length>1?dt.setEdge(pt,gt,ct):dt.setEdge(pt,gt),gt}),this},rt.prototype.setEdge=function(){var ut,ct,dt,ft,pt=!1,gt=arguments[0];typeof gt=="object"&>!==null&&"v"in gt?(ut=gt.v,ct=gt.w,dt=gt.name,arguments.length===2&&(ft=arguments[1],pt=!0)):(ut=gt,ct=arguments[1],dt=arguments[3],arguments.length>2&&(ft=arguments[2],pt=!0)),ut=""+ut,ct=""+ct,j.isUndefined(dt)||(dt=""+dt);var vt=it(this._isDirected,ut,ct,dt);if(j.has(this._edgeLabels,vt))return pt&&(this._edgeLabels[vt]=ft),this;if(!j.isUndefined(dt)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(ut),this.setNode(ct),this._edgeLabels[vt]=pt?ft:this._defaultEdgeLabelFn(ut,ct,dt);var bt=st(this._isDirected,ut,ct,dt);return ut=bt.v,ct=bt.w,Object.freeze(bt),this._edgeObjs[vt]=bt,nt(this._preds[ct],ut),nt(this._sucs[ut],ct),this._in[ct][vt]=bt,this._out[ut][vt]=bt,this._edgeCount++,this},rt.prototype.edge=function(ut,ct,dt){var ft=arguments.length===1?lt(this._isDirected,arguments[0]):it(this._isDirected,ut,ct,dt);return this._edgeLabels[ft]},rt.prototype.hasEdge=function(ut,ct,dt){var ft=arguments.length===1?lt(this._isDirected,arguments[0]):it(this._isDirected,ut,ct,dt);return j.has(this._edgeLabels,ft)},rt.prototype.removeEdge=function(ut,ct,dt){var ft=arguments.length===1?lt(this._isDirected,arguments[0]):it(this._isDirected,ut,ct,dt),pt=this._edgeObjs[ft];return pt&&(ut=pt.v,ct=pt.w,delete this._edgeLabels[ft],delete this._edgeObjs[ft],ot(this._preds[ct],ut),ot(this._sucs[ut],ct),delete this._in[ct][ft],delete this._out[ut][ft],this._edgeCount--),this},rt.prototype.inEdges=function(ut,ct){var dt=this._in[ut];if(dt){var ft=j.values(dt);return ct?j.filter(ft,function(pt){return pt.v===ct}):ft}},rt.prototype.outEdges=function(ut,ct){var dt=this._out[ut];if(dt){var ft=j.values(dt);return ct?j.filter(ft,function(pt){return pt.w===ct}):ft}},rt.prototype.nodeEdges=function(ut,ct){var dt=this.inEdges(ut,ct);if(dt)return dt.concat(this.outEdges(ut,ct))};function nt(ut,ct){ut[ct]?ut[ct]++:ut[ct]=1}function ot(ut,ct){--ut[ct]||delete ut[ct]}function it(ut,ct,dt,ft){var pt=""+ct,gt=""+dt;if(!ut&&pt>gt){var vt=pt;pt=gt,gt=vt}return pt+tt+gt+tt+(j.isUndefined(ft)?_e:ft)}function st(ut,ct,dt,ft){var pt=""+ct,gt=""+dt;if(!ut&&pt>gt){var vt=pt;pt=gt,gt=vt}var bt={v:pt,w:gt};return ft&&(bt.name=ft),bt}function lt(ut,ct){return it(ut,ct.v,ct.w,ct.name)}return graph}var version$3,hasRequiredVersion;function requireVersion(){return hasRequiredVersion||(hasRequiredVersion=1,version$3="2.1.8"),version$3}var lib,hasRequiredLib;function requireLib(){return hasRequiredLib||(hasRequiredLib=1,lib={Graph:requireGraph(),version:requireVersion()}),lib}var json,hasRequiredJson;function requireJson(){if(hasRequiredJson)return json;hasRequiredJson=1;var j=requireLodash(),_e=requireGraph();json={write:et,read:nt};function et(ot){var it={options:{directed:ot.isDirected(),multigraph:ot.isMultigraph(),compound:ot.isCompound()},nodes:tt(ot),edges:rt(ot)};return j.isUndefined(ot.graph())||(it.value=j.clone(ot.graph())),it}function tt(ot){return j.map(ot.nodes(),function(it){var st=ot.node(it),lt=ot.parent(it),ut={v:it};return j.isUndefined(st)||(ut.value=st),j.isUndefined(lt)||(ut.parent=lt),ut})}function rt(ot){return j.map(ot.edges(),function(it){var st=ot.edge(it),lt={v:it.v,w:it.w};return j.isUndefined(it.name)||(lt.name=it.name),j.isUndefined(st)||(lt.value=st),lt})}function nt(ot){var it=new _e(ot.options).setGraph(ot.value);return j.each(ot.nodes,function(st){it.setNode(st.v,st.value),st.parent&&it.setParent(st.v,st.parent)}),j.each(ot.edges,function(st){it.setEdge({v:st.v,w:st.w,name:st.name},st.value)}),it}return json}var components_1,hasRequiredComponents;function requireComponents(){if(hasRequiredComponents)return components_1;hasRequiredComponents=1;var j=requireLodash();components_1=_e;function _e(et){var tt={},rt=[],nt;function ot(it){j.has(tt,it)||(tt[it]=!0,nt.push(it),j.each(et.successors(it),ot),j.each(et.predecessors(it),ot))}return j.each(et.nodes(),function(it){nt=[],ot(it),nt.length&&rt.push(nt)}),rt}return components_1}var priorityQueue,hasRequiredPriorityQueue;function requirePriorityQueue(){if(hasRequiredPriorityQueue)return priorityQueue;hasRequiredPriorityQueue=1;var j=requireLodash();priorityQueue=_e;function _e(){this._arr=[],this._keyIndices={}}return _e.prototype.size=function(){return this._arr.length},_e.prototype.keys=function(){return this._arr.map(function(et){return et.key})},_e.prototype.has=function(et){return j.has(this._keyIndices,et)},_e.prototype.priority=function(et){var tt=this._keyIndices[et];if(tt!==void 0)return this._arr[tt].priority},_e.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},_e.prototype.add=function(et,tt){var rt=this._keyIndices;if(et=String(et),!j.has(rt,et)){var nt=this._arr,ot=nt.length;return rt[et]=ot,nt.push({key:et,priority:tt}),this._decrease(ot),!0}return!1},_e.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var et=this._arr.pop();return delete this._keyIndices[et.key],this._heapify(0),et.key},_e.prototype.decrease=function(et,tt){var rt=this._keyIndices[et];if(tt>this._arr[rt].priority)throw new Error("New priority is greater than current priority. Key: "+et+" Old: "+this._arr[rt].priority+" New: "+tt);this._arr[rt].priority=tt,this._decrease(rt)},_e.prototype._heapify=function(et){var tt=this._arr,rt=2*et,nt=rt+1,ot=et;rt>1,!(tt[nt].priority0&&(ct=ut.removeMin(),dt=lt[ct],dt.distance!==Number.POSITIVE_INFINITY);)st(ct).forEach(ft);return lt}return dijkstra_1}var dijkstraAll_1,hasRequiredDijkstraAll;function requireDijkstraAll(){if(hasRequiredDijkstraAll)return dijkstraAll_1;hasRequiredDijkstraAll=1;var j=requireDijkstra(),_e=requireLodash();dijkstraAll_1=et;function et(tt,rt,nt){return _e.transform(tt.nodes(),function(ot,it){ot[it]=j(tt,it,rt,nt)},{})}return dijkstraAll_1}var tarjan_1,hasRequiredTarjan;function requireTarjan(){if(hasRequiredTarjan)return tarjan_1;hasRequiredTarjan=1;var j=requireLodash();tarjan_1=_e;function _e(et){var tt=0,rt=[],nt={},ot=[];function it(st){var lt=nt[st]={onStack:!0,lowlink:tt,index:tt++};if(rt.push(st),et.successors(st).forEach(function(dt){j.has(nt,dt)?nt[dt].onStack&&(lt.lowlink=Math.min(lt.lowlink,nt[dt].index)):(it(dt),lt.lowlink=Math.min(lt.lowlink,nt[dt].lowlink))}),lt.lowlink===lt.index){var ut=[],ct;do ct=rt.pop(),nt[ct].onStack=!1,ut.push(ct);while(st!==ct);ot.push(ut)}}return et.nodes().forEach(function(st){j.has(nt,st)||it(st)}),ot}return tarjan_1}var findCycles_1,hasRequiredFindCycles;function requireFindCycles(){if(hasRequiredFindCycles)return findCycles_1;hasRequiredFindCycles=1;var j=requireLodash(),_e=requireTarjan();findCycles_1=et;function et(tt){return j.filter(_e(tt),function(rt){return rt.length>1||rt.length===1&&tt.hasEdge(rt[0],rt[0])})}return findCycles_1}var floydWarshall_1,hasRequiredFloydWarshall;function requireFloydWarshall(){if(hasRequiredFloydWarshall)return floydWarshall_1;hasRequiredFloydWarshall=1;var j=requireLodash();floydWarshall_1=et;var _e=j.constant(1);function et(rt,nt,ot){return tt(rt,nt||_e,ot||function(it){return rt.outEdges(it)})}function tt(rt,nt,ot){var it={},st=rt.nodes();return st.forEach(function(lt){it[lt]={},it[lt][lt]={distance:0},st.forEach(function(ut){lt!==ut&&(it[lt][ut]={distance:Number.POSITIVE_INFINITY})}),ot(lt).forEach(function(ut){var ct=ut.v===lt?ut.w:ut.v,dt=nt(ut);it[lt][ct]={distance:dt,predecessor:lt}})}),st.forEach(function(lt){var ut=it[lt];st.forEach(function(ct){var dt=it[ct];st.forEach(function(ft){var pt=dt[lt],gt=ut[ft],vt=dt[ft],bt=pt.distance+gt.distance;bt0;){if(lt=st.removeMin(),j.has(it,lt))ot.setEdge(lt,it[lt]);else{if(ct)throw new Error("Input graph is not connected: "+rt);ct=!0}rt.nodeEdges(lt).forEach(ut)}return ot}return prim_1}var alg,hasRequiredAlg;function requireAlg(){return hasRequiredAlg||(hasRequiredAlg=1,alg={components:requireComponents(),dijkstra:requireDijkstra(),dijkstraAll:requireDijkstraAll(),findCycles:requireFindCycles(),floydWarshall:requireFloydWarshall(),isAcyclic:requireIsAcyclic(),postorder:requirePostorder(),preorder:requirePreorder(),prim:requirePrim(),tarjan:requireTarjan(),topsort:requireTopsort()}),alg}var graphlib$1,hasRequiredGraphlib;function requireGraphlib(){if(hasRequiredGraphlib)return graphlib$1;hasRequiredGraphlib=1;var j=requireLib();return graphlib$1={Graph:j.Graph,json:requireJson(),alg:requireAlg(),version:j.version},graphlib$1}var graphlib;if(typeof commonjsRequire$1=="function")try{graphlib=requireGraphlib()}catch{}graphlib||(graphlib=window.graphlib);var graphlib_1=graphlib,cloneDeep_1,hasRequiredCloneDeep;function requireCloneDeep(){if(hasRequiredCloneDeep)return cloneDeep_1;hasRequiredCloneDeep=1;var j=_baseClone,_e=1,et=4;function tt(rt){return j(rt,_e|et)}return cloneDeep_1=tt,cloneDeep_1}var eq=eq_1,isArrayLike$3=isArrayLike_1,isIndex=_isIndex,isObject$p=isObject_1;function isIterateeCall$4(j,_e,et){if(!isObject$p(et))return!1;var tt=typeof _e;return(tt=="number"?isArrayLike$3(et)&&isIndex(_e,et.length):tt=="string"&&_e in et)?eq(et[_e],j):!1}var _isIterateeCall=isIterateeCall$4,defaults_1,hasRequiredDefaults;function requireDefaults(){if(hasRequiredDefaults)return defaults_1;hasRequiredDefaults=1;var j=_baseRest,_e=eq_1,et=_isIterateeCall,tt=keysIn_1,rt=Object.prototype,nt=rt.hasOwnProperty,ot=j(function(it,st){it=Object(it);var lt=-1,ut=st.length,ct=ut>2?st[2]:void 0;for(ct&&et(st[0],st[1],ct)&&(ut=1);++lt-1?rt[nt?_e[ot]:ot]:void 0}}var _createFind=createFind$1,reWhitespace=/\s/;function trimmedEndIndex$1(j){for(var _e=j.length;_e--&&reWhitespace.test(j.charAt(_e)););return _e}var _trimmedEndIndex=trimmedEndIndex$1,trimmedEndIndex=_trimmedEndIndex,reTrimStart=/^\s+/;function baseTrim$1(j){return j&&j.slice(0,trimmedEndIndex(j)+1).replace(reTrimStart,"")}var _baseTrim=baseTrim$1,baseTrim=_baseTrim,isObject$o=isObject_1,isSymbol$b=isSymbol_1,NAN=NaN,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt;function toNumber$2(j){if(typeof j=="number")return j;if(isSymbol$b(j))return NAN;if(isObject$o(j)){var _e=typeof j.valueOf=="function"?j.valueOf():j;j=isObject$o(_e)?_e+"":_e}if(typeof j!="string")return j===0?j:+j;j=baseTrim(j);var et=reIsBinary.test(j);return et||reIsOctal.test(j)?freeParseInt(j.slice(2),et?2:8):reIsBadHex.test(j)?NAN:+j}var toNumber_1=toNumber$2,toNumber$1=toNumber_1,INFINITY=1/0,MAX_INTEGER=17976931348623157e292;function toFinite$2(j){if(!j)return j===0?j:0;if(j=toNumber$1(j),j===INFINITY||j===-INFINITY){var _e=j<0?-1:1;return _e*MAX_INTEGER}return j===j?j:0}var toFinite_1=toFinite$2,toFinite$1=toFinite_1;function toInteger$1(j){var _e=toFinite$1(j),et=_e%1;return _e===_e?et?_e-et:_e:0}var toInteger_1=toInteger$1,baseFindIndex=_baseFindIndex,baseIteratee$7=_baseIteratee,toInteger=toInteger_1,nativeMax$2=Math.max;function findIndex$1(j,_e,et){var tt=j==null?0:j.length;if(!tt)return-1;var rt=et==null?0:toInteger(et);return rt<0&&(rt=nativeMax$2(tt+rt,0)),baseFindIndex(j,baseIteratee$7(_e),rt)}var findIndex_1=findIndex$1,createFind=_createFind,findIndex=findIndex_1,find=createFind(findIndex),find_1=find;const find$1=getDefaultExportFromCjs(find_1);var baseFlatten$2=_baseFlatten;function flatten$1(j){var _e=j==null?0:j.length;return _e?baseFlatten$2(j,1):[]}var flatten_1=flatten$1,forIn_1,hasRequiredForIn;function requireForIn(){if(hasRequiredForIn)return forIn_1;hasRequiredForIn=1;var j=_baseFor,_e=require_castFunction(),et=keysIn_1;function tt(rt,nt){return rt==null?rt:j(rt,_e(nt),et)}return forIn_1=tt,forIn_1}function last(j){var _e=j==null?0:j.length;return _e?j[_e-1]:void 0}var last_1=last;const last$1=getDefaultExportFromCjs(last_1);var baseAssignValue=_baseAssignValue,baseForOwn=_baseForOwn,baseIteratee$6=_baseIteratee;function mapValues(j,_e){var et={};return _e=baseIteratee$6(_e),baseForOwn(j,function(tt,rt,nt){baseAssignValue(et,rt,_e(tt,rt,nt))}),et}var mapValues_1=mapValues;const mapValues$1=getDefaultExportFromCjs(mapValues_1);var isSymbol$a=isSymbol_1;function baseExtremum$4(j,_e,et){for(var tt=-1,rt=j.length;++tt_e}var _baseGt=baseGt$2,baseExtremum$3=_baseExtremum,baseGt$1=_baseGt,identity$8=identity_1;function max$7(j){return j&&j.length?baseExtremum$3(j,identity$8,baseGt$1):void 0}var max_1=max$7;const max$8=getDefaultExportFromCjs(max_1);var _assignMergeValue,hasRequired_assignMergeValue;function require_assignMergeValue(){if(hasRequired_assignMergeValue)return _assignMergeValue;hasRequired_assignMergeValue=1;var j=_baseAssignValue,_e=eq_1;function et(tt,rt,nt){(nt!==void 0&&!_e(tt[rt],nt)||nt===void 0&&!(rt in tt))&&j(tt,rt,nt)}return _assignMergeValue=et,_assignMergeValue}var baseGetTag$2=_baseGetTag,getPrototype=_getPrototype,isObjectLike$2=isObjectLike_1,objectTag="[object Object]",funcProto=Function.prototype,objectProto=Object.prototype,funcToString=funcProto.toString,hasOwnProperty$5=objectProto.hasOwnProperty,objectCtorString=funcToString.call(Object);function isPlainObject$1(j){if(!isObjectLike$2(j)||baseGetTag$2(j)!=objectTag)return!1;var _e=getPrototype(j);if(_e===null)return!0;var et=hasOwnProperty$5.call(_e,"constructor")&&_e.constructor;return typeof et=="function"&&et instanceof et&&funcToString.call(et)==objectCtorString}var isPlainObject_1=isPlainObject$1;const isPlainObject$2=getDefaultExportFromCjs(isPlainObject_1);var _safeGet,hasRequired_safeGet;function require_safeGet(){if(hasRequired_safeGet)return _safeGet;hasRequired_safeGet=1;function j(_e,et){if(!(et==="constructor"&&typeof _e[et]=="function")&&et!="__proto__")return _e[et]}return _safeGet=j,_safeGet}var toPlainObject_1,hasRequiredToPlainObject;function requireToPlainObject(){if(hasRequiredToPlainObject)return toPlainObject_1;hasRequiredToPlainObject=1;var j=_copyObject,_e=keysIn_1;function et(tt){return j(tt,_e(tt))}return toPlainObject_1=et,toPlainObject_1}var _baseMergeDeep,hasRequired_baseMergeDeep;function require_baseMergeDeep(){if(hasRequired_baseMergeDeep)return _baseMergeDeep;hasRequired_baseMergeDeep=1;var j=require_assignMergeValue(),_e=_cloneBufferExports,et=_cloneTypedArray,tt=_copyArray,rt=_initCloneObject,nt=isArguments_1,ot=isArray_1,it=requireIsArrayLikeObject(),st=isBufferExports,lt=isFunction_1,ut=isObject_1,ct=isPlainObject_1,dt=isTypedArray_1,ft=require_safeGet(),pt=requireToPlainObject();function gt(vt,bt,_t,xt,yt,Et,St){var $t=ft(vt,_t),At=ft(bt,_t),wt=St.get(At);if(wt){j(vt,_t,wt);return}var Ct=Et?Et($t,At,_t+"",vt,bt,St):void 0,It=Ct===void 0;if(It){var Ot=ot(At),Nt=!Ot&&st(At),Pt=!Ot&&!Nt&&dt(At);Ct=At,Ot||Nt||Pt?ot($t)?Ct=$t:it($t)?Ct=tt($t):Nt?(It=!1,Ct=_e(At,!0)):Pt?(It=!1,Ct=et(At,!0)):Ct=[]:ct(At)||nt(At)?(Ct=$t,nt($t)?Ct=pt($t):(!ut($t)||lt($t))&&(Ct=rt(At))):It=!1}It&&(St.set(At,Ct),yt(Ct,At,xt,Et,St),St.delete(At)),j(vt,_t,Ct)}return _baseMergeDeep=gt,_baseMergeDeep}var _baseMerge,hasRequired_baseMerge;function require_baseMerge(){if(hasRequired_baseMerge)return _baseMerge;hasRequired_baseMerge=1;var j=_Stack,_e=require_assignMergeValue(),et=_baseFor,tt=require_baseMergeDeep(),rt=isObject_1,nt=keysIn_1,ot=require_safeGet();function it(st,lt,ut,ct,dt){st!==lt&&et(lt,function(ft,pt){if(dt||(dt=new j),rt(ft))tt(st,lt,pt,ut,it,ct,dt);else{var gt=ct?ct(ot(st,pt),ft,pt+"",st,lt,dt):void 0;gt===void 0&&(gt=ft),_e(st,pt,gt)}},nt)}return _baseMerge=it,_baseMerge}var _createAssigner,hasRequired_createAssigner;function require_createAssigner(){if(hasRequired_createAssigner)return _createAssigner;hasRequired_createAssigner=1;var j=_baseRest,_e=_isIterateeCall;function et(tt){return j(function(rt,nt){var ot=-1,it=nt.length,st=it>1?nt[it-1]:void 0,lt=it>2?nt[2]:void 0;for(st=tt.length>3&&typeof st=="function"?(it--,st):void 0,lt&&_e(nt[0],nt[1],lt)&&(st=it<3?void 0:st,it=1),rt=Object(rt);++ot_e||nt&&ot&&st&&!it&&!lt||tt&&ot&&st||!et&&st||!rt)return 1;if(!tt&&!nt&&!lt&&j<_e||lt&&et&&rt&&!tt&&!nt||it&&et&&rt||!ot&&rt||!st)return-1}return 0}var _compareAscending=compareAscending$1,compareAscending=_compareAscending;function compareMultiple$1(j,_e,et){for(var tt=-1,rt=j.criteria,nt=_e.criteria,ot=rt.length,it=et.length;++tt=it)return st;var lt=et[tt];return st*(lt=="desc"?-1:1)}}return j.index-_e.index}var _compareMultiple=compareMultiple$1,arrayMap=_arrayMap,baseGet=_baseGet,baseIteratee$4=_baseIteratee,baseMap=_baseMap,baseSortBy=_baseSortBy,baseUnary=_baseUnary,compareMultiple=_compareMultiple,identity$6=identity_1,isArray$h=isArray_1;function baseOrderBy$1(j,_e,et){_e.length?_e=arrayMap(_e,function(nt){return isArray$h(nt)?function(ot){return baseGet(ot,nt.length===1?nt[0]:nt)}:nt}):_e=[identity$6];var tt=-1;_e=arrayMap(_e,baseUnary(baseIteratee$4));var rt=baseMap(j,function(nt,ot,it){var st=arrayMap(_e,function(lt){return lt(nt)});return{criteria:st,index:++tt,value:nt}});return baseSortBy(rt,function(nt,ot){return compareMultiple(nt,ot,et)})}var _baseOrderBy=baseOrderBy$1,baseFlatten$1=_baseFlatten,baseOrderBy=_baseOrderBy,baseRest=_baseRest,isIterateeCall$2=_isIterateeCall,sortBy=baseRest(function(j,_e){if(j==null)return[];var et=_e.length;return et>1&&isIterateeCall$2(j,_e[0],_e[1])?_e=[]:et>2&&isIterateeCall$2(_e[0],_e[1],_e[2])&&(_e=[_e[0]]),baseOrderBy(j,baseFlatten$1(_e,1),[])}),sortBy_1=sortBy;const sortBy$1=getDefaultExportFromCjs(sortBy_1);var uniqueId_1,hasRequiredUniqueId;function requireUniqueId(){if(hasRequiredUniqueId)return uniqueId_1;hasRequiredUniqueId=1;var j=toString_1,_e=0;function et(tt){var rt=++_e;return j(tt)+rt}return uniqueId_1=et,uniqueId_1}var _baseZipObject,hasRequired_baseZipObject;function require_baseZipObject(){if(hasRequired_baseZipObject)return _baseZipObject;hasRequired_baseZipObject=1;function j(_e,et,tt){for(var rt=-1,nt=_e.length,ot=et.length,it={};++rt0;--it)if(ot=_e[it].dequeue(),ot){tt=tt.concat(removeNode(j,_e,et,ot,!0));break}}}return tt}function removeNode(j,_e,et,tt,rt){var nt=rt?[]:void 0;return _$o.forEach(j.inEdges(tt.v),function(ot){var it=j.edge(ot),st=j.node(ot.v);rt&&nt.push({v:ot.v,w:ot.w}),st.out-=it,assignBucket(_e,et,st)}),_$o.forEach(j.outEdges(tt.v),function(ot){var it=j.edge(ot),st=ot.w,lt=j.node(st);lt.in-=it,assignBucket(_e,et,lt)}),j.removeNode(tt.v),nt}function buildState(j,_e){var et=new Graph$8,tt=0,rt=0;_$o.forEach(j.nodes(),function(it){et.setNode(it,{v:it,in:0,out:0})}),_$o.forEach(j.edges(),function(it){var st=et.edge(it.v,it.w)||0,lt=_e(it),ut=st+lt;et.setEdge(it.v,it.w,ut),rt=Math.max(rt,et.node(it.v).out+=lt),tt=Math.max(tt,et.node(it.w).in+=lt)});var nt=_$o.range(rt+tt+3).map(function(){return new List$2}),ot=tt+1;return _$o.forEach(et.nodes(),function(it){assignBucket(nt,ot,et.node(it))}),{graph:et,buckets:nt,zeroIdx:ot}}function assignBucket(j,_e,et){et.out?et.in?j[et.out-et.in+_e].enqueue(et):j[j.length-1].enqueue(et):j[0].enqueue(et)}var _$n=lodash_1,greedyFAS=greedyFas,acyclic$1={run:run$2,undo:undo$3};function run$2(j){var _e=j.graph().acyclicer==="greedy"?greedyFAS(j,et(j)):dfsFAS(j);_$n.forEach(_e,function(tt){var rt=j.edge(tt);j.removeEdge(tt),rt.forwardName=tt.name,rt.reversed=!0,j.setEdge(tt.w,tt.v,rt,_$n.uniqueId("rev"))});function et(tt){return function(rt){return tt.edge(rt).weight}}}function dfsFAS(j){var _e=[],et={},tt={};function rt(nt){_$n.has(tt,nt)||(tt[nt]=!0,et[nt]=!0,_$n.forEach(j.outEdges(nt),function(ot){_$n.has(et,ot.w)?_e.push(ot):rt(ot.w)}),delete et[nt])}return _$n.forEach(j.nodes(),rt),_e}function undo$3(j){_$n.forEach(j.edges(),function(_e){var et=j.edge(_e);if(et.reversed){j.removeEdge(_e);var tt=et.forwardName;delete et.reversed,delete et.forwardName,j.setEdge(_e.w,_e.v,et,tt)}})}var _$m=lodash_1,Graph$7=graphlib_1.Graph,util$a={addDummyNode,simplify:simplify$1,asNonCompoundGraph,successorWeights,predecessorWeights,intersectRect,buildLayerMatrix,normalizeRanks:normalizeRanks$1,removeEmptyRanks:removeEmptyRanks$1,addBorderNode:addBorderNode$1,maxRank,partition,time:time$1,notime};function addDummyNode(j,_e,et,tt){var rt;do rt=_$m.uniqueId(tt);while(j.hasNode(rt));return et.dummy=_e,j.setNode(rt,et),rt}function simplify$1(j){var _e=new Graph$7().setGraph(j.graph());return _$m.forEach(j.nodes(),function(et){_e.setNode(et,j.node(et))}),_$m.forEach(j.edges(),function(et){var tt=_e.edge(et.v,et.w)||{weight:0,minlen:1},rt=j.edge(et);_e.setEdge(et.v,et.w,{weight:tt.weight+rt.weight,minlen:Math.max(tt.minlen,rt.minlen)})}),_e}function asNonCompoundGraph(j){var _e=new Graph$7({multigraph:j.isMultigraph()}).setGraph(j.graph());return _$m.forEach(j.nodes(),function(et){j.children(et).length||_e.setNode(et,j.node(et))}),_$m.forEach(j.edges(),function(et){_e.setEdge(et,j.edge(et))}),_e}function successorWeights(j){var _e=_$m.map(j.nodes(),function(et){var tt={};return _$m.forEach(j.outEdges(et),function(rt){tt[rt.w]=(tt[rt.w]||0)+j.edge(rt).weight}),tt});return _$m.zipObject(j.nodes(),_e)}function predecessorWeights(j){var _e=_$m.map(j.nodes(),function(et){var tt={};return _$m.forEach(j.inEdges(et),function(rt){tt[rt.v]=(tt[rt.v]||0)+j.edge(rt).weight}),tt});return _$m.zipObject(j.nodes(),_e)}function intersectRect(j,_e){var et=j.x,tt=j.y,rt=_e.x-et,nt=_e.y-tt,ot=j.width/2,it=j.height/2;if(!rt&&!nt)throw new Error("Not possible to find intersection inside of the rectangle");var st,lt;return Math.abs(nt)*ot>Math.abs(rt)*it?(nt<0&&(it=-it),st=it*rt/nt,lt=it):(rt<0&&(ot=-ot),st=ot,lt=ot*nt/rt),{x:et+st,y:tt+lt}}function buildLayerMatrix(j){var _e=_$m.map(_$m.range(maxRank(j)+1),function(){return[]});return _$m.forEach(j.nodes(),function(et){var tt=j.node(et),rt=tt.rank;_$m.isUndefined(rt)||(_e[rt][tt.order]=et)}),_e}function normalizeRanks$1(j){var _e=_$m.min(_$m.map(j.nodes(),function(et){return j.node(et).rank}));_$m.forEach(j.nodes(),function(et){var tt=j.node(et);_$m.has(tt,"rank")&&(tt.rank-=_e)})}function removeEmptyRanks$1(j){var _e=_$m.min(_$m.map(j.nodes(),function(nt){return j.node(nt).rank})),et=[];_$m.forEach(j.nodes(),function(nt){var ot=j.node(nt).rank-_e;et[ot]||(et[ot]=[]),et[ot].push(nt)});var tt=0,rt=j.graph().nodeRankFactor;_$m.forEach(et,function(nt,ot){_$m.isUndefined(nt)&&ot%rt!==0?--tt:tt&&_$m.forEach(nt,function(it){j.node(it).rank+=tt})})}function addBorderNode$1(j,_e,et,tt){var rt={width:0,height:0};return arguments.length>=4&&(rt.rank=et,rt.order=tt),addDummyNode(j,"border",rt,_e)}function maxRank(j){return _$m.max(_$m.map(j.nodes(),function(_e){var et=j.node(_e).rank;if(!_$m.isUndefined(et))return et}))}function partition(j,_e){var et={lhs:[],rhs:[]};return _$m.forEach(j,function(tt){_e(tt)?et.lhs.push(tt):et.rhs.push(tt)}),et}function time$1(j,_e){var et=_$m.now();try{return _e()}finally{console.log(j+" time: "+(_$m.now()-et)+"ms")}}function notime(j,_e){return _e()}var _$l=lodash_1,util$9=util$a,normalize$4={run:run$1,undo:undo$2};function run$1(j){j.graph().dummyChains=[],_$l.forEach(j.edges(),function(_e){normalizeEdge(j,_e)})}function normalizeEdge(j,_e){var et=_e.v,tt=j.node(et).rank,rt=_e.w,nt=j.node(rt).rank,ot=_e.name,it=j.edge(_e),st=it.labelRank;if(nt!==tt+1){j.removeEdge(_e);var lt,ut,ct;for(ct=0,++tt;ttot.lim&&(it=ot,st=!0);var lt=_$i.filter(_e.edges(),function(ut){return st===isDescendant(j,j.node(ut.v),it)&&st!==isDescendant(j,j.node(ut.w),it)});return _$i.minBy(lt,function(ut){return slack(_e,ut)})}function exchangeEdges(j,_e,et,tt){var rt=et.v,nt=et.w;j.removeEdge(rt,nt),j.setEdge(tt.v,tt.w,{}),initLowLimValues(j),initCutValues(j,_e),updateRanks(j,_e)}function updateRanks(j,_e){var et=_$i.find(j.nodes(),function(rt){return!_e.node(rt).parent}),tt=preorder(j,et);tt=tt.slice(1),_$i.forEach(tt,function(rt){var nt=j.node(rt).parent,ot=_e.edge(rt,nt),it=!1;ot||(ot=_e.edge(nt,rt),it=!0),_e.node(rt).rank=_e.node(nt).rank+(it?ot.minlen:-ot.minlen)})}function isTreeEdge(j,_e,et){return j.hasEdge(_e,et)}function isDescendant(j,_e,et){return et.low<=_e.lim&&_e.lim<=et.lim}var rankUtil=util$8,longestPath=rankUtil.longestPath,feasibleTree=feasibleTree_1,networkSimplex=networkSimplex_1,rank_1=rank$1;function rank$1(j){switch(j.graph().ranker){case"network-simplex":networkSimplexRanker(j);break;case"tight-tree":tightTreeRanker(j);break;case"longest-path":longestPathRanker(j);break;default:networkSimplexRanker(j)}}var longestPathRanker=longestPath;function tightTreeRanker(j){longestPath(j),feasibleTree(j)}function networkSimplexRanker(j){networkSimplex(j)}var _$h=lodash_1,parentDummyChains_1=parentDummyChains$1;function parentDummyChains$1(j){var _e=postorder(j);_$h.forEach(j.graph().dummyChains,function(et){for(var tt=j.node(et),rt=tt.edgeObj,nt=findPath(j,_e,rt.v,rt.w),ot=nt.path,it=nt.lca,st=0,lt=ot[st],ut=!0;et!==rt.w;){if(tt=j.node(et),ut){for(;(lt=ot[st])!==it&&j.node(lt).maxRankot||it>_e[st].lim));for(lt=st,st=tt;(st=j.parent(st))!==lt;)nt.push(st);return{path:rt.concat(nt.reverse()),lca:lt}}function postorder(j){var _e={},et=0;function tt(rt){var nt=et;_$h.forEach(j.children(rt),tt),_e[rt]={low:nt,lim:et++}}return _$h.forEach(j.children(),tt),_e}var _$g=lodash_1,util$7=util$a,nestingGraph$1={run,cleanup:cleanup$1};function run(j){var _e=util$7.addDummyNode(j,"root",{},"_root"),et=treeDepths(j),tt=_$g.max(_$g.values(et))-1,rt=2*tt+1;j.graph().nestingRoot=_e,_$g.forEach(j.edges(),function(ot){j.edge(ot).minlen*=rt});var nt=sumWeights(j)+1;_$g.forEach(j.children(),function(ot){dfs(j,_e,rt,nt,tt,et,ot)}),j.graph().nodeRankFactor=rt}function dfs(j,_e,et,tt,rt,nt,ot){var it=j.children(ot);if(!it.length){ot!==_e&&j.setEdge(_e,ot,{weight:0,minlen:et});return}var st=util$7.addBorderNode(j,"_bt"),lt=util$7.addBorderNode(j,"_bb"),ut=j.node(ot);j.setParent(st,ot),ut.borderTop=st,j.setParent(lt,ot),ut.borderBottom=lt,_$g.forEach(it,function(ct){dfs(j,_e,et,tt,rt,nt,ct);var dt=j.node(ct),ft=dt.borderTop?dt.borderTop:ct,pt=dt.borderBottom?dt.borderBottom:ct,gt=dt.borderTop?tt:2*tt,vt=ft!==pt?1:rt-nt[ot]+1;j.setEdge(st,ft,{weight:gt,minlen:vt,nestingEdge:!0}),j.setEdge(pt,lt,{weight:gt,minlen:vt,nestingEdge:!0})}),j.parent(ot)||j.setEdge(_e,st,{weight:0,minlen:rt+nt[ot]})}function treeDepths(j){var _e={};function et(tt,rt){var nt=j.children(tt);nt&&nt.length&&_$g.forEach(nt,function(ot){et(ot,rt+1)}),_e[tt]=rt}return _$g.forEach(j.children(),function(tt){et(tt,1)}),_e}function sumWeights(j){return _$g.reduce(j.edges(),function(_e,et){return _e+j.edge(et).weight},0)}function cleanup$1(j){var _e=j.graph();j.removeNode(_e.nestingRoot),delete _e.nestingRoot,_$g.forEach(j.edges(),function(et){var tt=j.edge(et);tt.nestingEdge&&j.removeEdge(et)})}var _$f=lodash_1,util$6=util$a,addBorderSegments_1=addBorderSegments$1;function addBorderSegments$1(j){function _e(et){var tt=j.children(et),rt=j.node(et);if(tt.length&&_$f.forEach(tt,_e),_$f.has(rt,"minRank")){rt.borderLeft=[],rt.borderRight=[];for(var nt=rt.minRank,ot=rt.maxRank+1;nt0;)ut%2&&(ct+=it[ut+1]),ut=ut-1>>1,it[ut]+=lt.weight;st+=lt.weight*ct})),st}var _$b=lodash_1,barycenter_1=barycenter$1;function barycenter$1(j,_e){return _$b.map(_e,function(et){var tt=j.inEdges(et);if(tt.length){var rt=_$b.reduce(tt,function(nt,ot){var it=j.edge(ot),st=j.node(ot.v);return{sum:nt.sum+it.weight*st.order,weight:nt.weight+it.weight}},{sum:0,weight:0});return{v:et,barycenter:rt.sum/rt.weight,weight:rt.weight}}else return{v:et}})}var _$a=lodash_1,resolveConflicts_1=resolveConflicts$1;function resolveConflicts$1(j,_e){var et={};_$a.forEach(j,function(rt,nt){var ot=et[rt.v]={indegree:0,in:[],out:[],vs:[rt.v],i:nt};_$a.isUndefined(rt.barycenter)||(ot.barycenter=rt.barycenter,ot.weight=rt.weight)}),_$a.forEach(_e.edges(),function(rt){var nt=et[rt.v],ot=et[rt.w];!_$a.isUndefined(nt)&&!_$a.isUndefined(ot)&&(ot.indegree++,nt.out.push(et[rt.w]))});var tt=_$a.filter(et,function(rt){return!rt.indegree});return doResolveConflicts(tt)}function doResolveConflicts(j){var _e=[];function et(nt){return function(ot){ot.merged||(_$a.isUndefined(ot.barycenter)||_$a.isUndefined(nt.barycenter)||ot.barycenter>=nt.barycenter)&&mergeEntries(nt,ot)}}function tt(nt){return function(ot){ot.in.push(nt),--ot.indegree===0&&j.push(ot)}}for(;j.length;){var rt=j.pop();_e.push(rt),_$a.forEach(rt.in.reverse(),et(rt)),_$a.forEach(rt.out,tt(rt))}return _$a.map(_$a.filter(_e,function(nt){return!nt.merged}),function(nt){return _$a.pick(nt,["vs","i","barycenter","weight"])})}function mergeEntries(j,_e){var et=0,tt=0;j.weight&&(et+=j.barycenter*j.weight,tt+=j.weight),_e.weight&&(et+=_e.barycenter*_e.weight,tt+=_e.weight),j.vs=_e.vs.concat(j.vs),j.barycenter=et/tt,j.weight=tt,j.i=Math.min(_e.i,j.i),_e.merged=!0}var _$9=lodash_1,util$5=util$a,sort_1=sort$1;function sort$1(j,_e){var et=util$5.partition(j,function(ut){return _$9.has(ut,"barycenter")}),tt=et.lhs,rt=_$9.sortBy(et.rhs,function(ut){return-ut.i}),nt=[],ot=0,it=0,st=0;tt.sort(compareWithBias(!!_e)),st=consumeUnsortable(nt,rt,st),_$9.forEach(tt,function(ut){st+=ut.vs.length,nt.push(ut.vs),ot+=ut.barycenter*ut.weight,it+=ut.weight,st=consumeUnsortable(nt,rt,st)});var lt={vs:_$9.flatten(nt,!0)};return it&&(lt.barycenter=ot/it,lt.weight=it),lt}function consumeUnsortable(j,_e,et){for(var tt;_e.length&&(tt=_$9.last(_e)).i<=et;)_e.pop(),j.push(tt.vs),et++;return et}function compareWithBias(j){return function(_e,et){return _e.barycenteret.barycenter?1:j?et.i-_e.i:_e.i-et.i}}var _$8=lodash_1,barycenter=barycenter_1,resolveConflicts=resolveConflicts_1,sort=sort_1,sortSubgraph_1=sortSubgraph$1;function sortSubgraph$1(j,_e,et,tt){var rt=j.children(_e),nt=j.node(_e),ot=nt?nt.borderLeft:void 0,it=nt?nt.borderRight:void 0,st={};ot&&(rt=_$8.filter(rt,function(pt){return pt!==ot&&pt!==it}));var lt=barycenter(j,rt);_$8.forEach(lt,function(pt){if(j.children(pt.v).length){var gt=sortSubgraph$1(j,pt.v,et,tt);st[pt.v]=gt,_$8.has(gt,"barycenter")&&mergeBarycenters(pt,gt)}});var ut=resolveConflicts(lt,et);expandSubgraphs(ut,st);var ct=sort(ut,tt);if(ot&&(ct.vs=_$8.flatten([ot,ct.vs,it],!0),j.predecessors(ot).length)){var dt=j.node(j.predecessors(ot)[0]),ft=j.node(j.predecessors(it)[0]);_$8.has(ct,"barycenter")||(ct.barycenter=0,ct.weight=0),ct.barycenter=(ct.barycenter*ct.weight+dt.order+ft.order)/(ct.weight+2),ct.weight+=2}return ct}function expandSubgraphs(j,_e){_$8.forEach(j,function(et){et.vs=_$8.flatten(et.vs.map(function(tt){return _e[tt]?_e[tt].vs:tt}),!0)})}function mergeBarycenters(j,_e){_$8.isUndefined(j.barycenter)?(j.barycenter=_e.barycenter,j.weight=_e.weight):(j.barycenter=(j.barycenter*j.weight+_e.barycenter*_e.weight)/(j.weight+_e.weight),j.weight+=_e.weight)}var _$7=lodash_1,Graph$5=graphlib_1.Graph,buildLayerGraph_1=buildLayerGraph$1;function buildLayerGraph$1(j,_e,et){var tt=createRootNode(j),rt=new Graph$5({compound:!0}).setGraph({root:tt}).setDefaultNodeLabel(function(nt){return j.node(nt)});return _$7.forEach(j.nodes(),function(nt){var ot=j.node(nt),it=j.parent(nt);(ot.rank===_e||ot.minRank<=_e&&_e<=ot.maxRank)&&(rt.setNode(nt),rt.setParent(nt,it||tt),_$7.forEach(j[et](nt),function(st){var lt=st.v===nt?st.w:st.v,ut=rt.edge(lt,nt),ct=_$7.isUndefined(ut)?0:ut.weight;rt.setEdge(lt,nt,{weight:j.edge(st).weight+ct})}),_$7.has(ot,"minRank")&&rt.setNode(nt,{borderLeft:ot.borderLeft[_e],borderRight:ot.borderRight[_e]}))}),rt}function createRootNode(j){for(var _e;j.hasNode(_e=_$7.uniqueId("_root")););return _e}var _$6=lodash_1,addSubgraphConstraints_1=addSubgraphConstraints$1;function addSubgraphConstraints$1(j,_e,et){var tt={},rt;_$6.forEach(et,function(nt){for(var ot=j.parent(nt),it,st;ot;){if(it=j.parent(ot),it?(st=tt[it],tt[it]=ot):(st=rt,rt=ot),st&&st!==ot){_e.setEdge(st,ot);return}ot=it}})}var _$5=lodash_1,initOrder=initOrder_1,crossCount=crossCount_1,sortSubgraph=sortSubgraph_1,buildLayerGraph=buildLayerGraph_1,addSubgraphConstraints=addSubgraphConstraints_1,Graph$4=graphlib_1.Graph,util$4=util$a,order_1=order$1;function order$1(j){var _e=util$4.maxRank(j),et=buildLayerGraphs(j,_$5.range(1,_e+1),"inEdges"),tt=buildLayerGraphs(j,_$5.range(_e-1,-1,-1),"outEdges"),rt=initOrder(j);assignOrder(j,rt);for(var nt=Number.POSITIVE_INFINITY,ot,it=0,st=0;st<4;++it,++st){sweepLayerGraphs(it%2?et:tt,it%4>=2),rt=util$4.buildLayerMatrix(j);var lt=crossCount(j,rt);ltlt)&&addConflict(et,dt,ut)})})}function rt(nt,ot){var it=-1,st,lt=0;return _$4.forEach(ot,function(ut,ct){if(j.node(ut).dummy==="border"){var dt=j.predecessors(ut);dt.length&&(st=j.node(dt[0]).order,tt(ot,lt,ct,it,st),lt=ct,it=st)}tt(ot,lt,ot.length,st,nt.length)}),ot}return _$4.reduce(_e,rt),et}function findOtherInnerSegmentNode(j,_e){if(j.node(_e).dummy)return _$4.find(j.predecessors(_e),function(et){return j.node(et).dummy})}function addConflict(j,_e,et){if(_e>et){var tt=_e;_e=et,et=tt}var rt=j[_e];rt||(j[_e]=rt={}),rt[et]=!0}function hasConflict(j,_e,et){if(_e>et){var tt=_e;_e=et,et=tt}return _$4.has(j[_e],et)}function verticalAlignment(j,_e,et,tt){var rt={},nt={},ot={};return _$4.forEach(_e,function(it){_$4.forEach(it,function(st,lt){rt[st]=st,nt[st]=st,ot[st]=lt})}),_$4.forEach(_e,function(it){var st=-1;_$4.forEach(it,function(lt){var ut=tt(lt);if(ut.length){ut=_$4.sortBy(ut,function(gt){return ot[gt]});for(var ct=(ut.length-1)/2,dt=Math.floor(ct),ft=Math.ceil(ct);dt<=ft;++dt){var pt=ut[dt];nt[lt]===lt&&st=0;it--)(ot=j[it])&&(nt=(rt<3?ot(nt):rt>3?ot(_e,et,nt):ot(_e,et))||nt);return rt>3&&nt&&Object.defineProperty(_e,et,nt),nt}function __spreadArray$1(j,_e,et){if(et||arguments.length===2)for(var tt=0,rt=_e.length,nt;tt"u"?InjectionMode$1.none:InjectionMode$1.insertNode,defaultPrefix:"css",namespace:void 0,cspSettings:void 0},_e),this._classNameToArgs=(tt=et==null?void 0:et.classNameToArgs)!==null&&tt!==void 0?tt:this._classNameToArgs,this._counter=(rt=et==null?void 0:et.counter)!==null&&rt!==void 0?rt:this._counter,this._keyToClassName=(ot=(nt=this._config.classNameCache)!==null&&nt!==void 0?nt:et==null?void 0:et.keyToClassName)!==null&&ot!==void 0?ot:this._keyToClassName,this._preservedRules=(it=et==null?void 0:et.preservedRules)!==null&&it!==void 0?it:this._preservedRules,this._rules=(st=et==null?void 0:et.rules)!==null&&st!==void 0?st:this._rules}return j.getInstance=function(){if(_stylesheet$1=_global$2[STYLESHEET_SETTING$1],!_stylesheet$1||_stylesheet$1._lastStyleElement&&_stylesheet$1._lastStyleElement.ownerDocument!==document){var _e=(_global$2==null?void 0:_global$2.FabricConfig)||{},et=new j(_e.mergeStyles,_e.serializedStylesheet);_stylesheet$1=et,_global$2[STYLESHEET_SETTING$1]=et}return _stylesheet$1},j.prototype.serialize=function(){return JSON.stringify({classNameToArgs:this._classNameToArgs,counter:this._counter,keyToClassName:this._keyToClassName,preservedRules:this._preservedRules,rules:this._rules})},j.prototype.setConfig=function(_e){this._config=__assign$4(__assign$4({},this._config),_e)},j.prototype.onReset=function(_e){var et=this;return this._onResetCallbacks.push(_e),function(){et._onResetCallbacks=et._onResetCallbacks.filter(function(tt){return tt!==_e})}},j.prototype.onInsertRule=function(_e){var et=this;return this._onInsertRuleCallbacks.push(_e),function(){et._onInsertRuleCallbacks=et._onInsertRuleCallbacks.filter(function(tt){return tt!==_e})}},j.prototype.getClassName=function(_e){var et=this._config.namespace,tt=_e||this._config.defaultPrefix;return"".concat(et?et+"-":"").concat(tt,"-").concat(this._counter++)},j.prototype.cacheClassName=function(_e,et,tt,rt){this._keyToClassName[et]=_e,this._classNameToArgs[_e]={args:tt,rules:rt}},j.prototype.classNameFromKey=function(_e){return this._keyToClassName[_e]},j.prototype.getClassNameCache=function(){return this._keyToClassName},j.prototype.argsFromClassName=function(_e){var et=this._classNameToArgs[_e];return et&&et.args},j.prototype.insertedRulesFromClassName=function(_e){var et=this._classNameToArgs[_e];return et&&et.rules},j.prototype.insertRule=function(_e,et){var tt=this._config.injectionMode,rt=tt!==InjectionMode$1.none?this._getStyleElement():void 0;if(et&&this._preservedRules.push(_e),rt)switch(tt){case InjectionMode$1.insertNode:var nt=rt.sheet;try{nt.insertRule(_e,nt.cssRules.length)}catch{}break;case InjectionMode$1.appendChild:rt.appendChild(document.createTextNode(_e));break}else this._rules.push(_e);this._config.onInsertRule&&this._config.onInsertRule(_e),this._onInsertRuleCallbacks.forEach(function(ot){return ot()})},j.prototype.getRules=function(_e){return(_e?this._preservedRules.join(""):"")+this._rules.join("")},j.prototype.reset=function(){this._rules=[],this._counter=0,this._classNameToArgs={},this._keyToClassName={},this._onResetCallbacks.forEach(function(_e){return _e()})},j.prototype.resetKeys=function(){this._keyToClassName={}},j.prototype._getStyleElement=function(){var _e=this;return!this._styleElement&&typeof document<"u"&&(this._styleElement=this._createStyleElement(),REUSE_STYLE_NODE$1||window.requestAnimationFrame(function(){_e._styleElement=void 0})),this._styleElement},j.prototype._createStyleElement=function(){var _e=document.head,et=document.createElement("style"),tt=null;et.setAttribute("data-merge-styles","true");var rt=this._config.cspSettings;if(rt&&rt.nonce&&et.setAttribute("nonce",rt.nonce),this._lastStyleElement)tt=this._lastStyleElement.nextElementSibling;else{var nt=this._findPlaceholderStyleTag();nt?tt=nt.nextElementSibling:tt=_e.childNodes[0]}return _e.insertBefore(et,_e.contains(tt)?tt:null),this._lastStyleElement=et,et},j.prototype._findPlaceholderStyleTag=function(){var _e=document.head;return _e?_e.querySelector("style[data-merge-styles]"):null},j}();function extractStyleParts$1(){for(var j=[],_e=0;_e=0)nt(lt.split(" "));else{var ut=rt.argsFromClassName(lt);ut?nt(ut):et.indexOf(lt)===-1&&et.push(lt)}else Array.isArray(lt)?nt(lt):typeof lt=="object"&&tt.push(lt)}}return nt(j),{classes:et,objects:tt}}function setRTL$1(j){_rtl$1!==j&&(_rtl$1=j)}function getRTL$2(){return _rtl$1===void 0&&(_rtl$1=typeof document<"u"&&!!document.documentElement&&document.documentElement.getAttribute("dir")==="rtl"),_rtl$1}var _rtl$1;_rtl$1=getRTL$2();function getStyleOptions$1(){return{rtl:getRTL$2()}}var rules$1={};function kebabRules$1(j,_e){var et=j[_e];et.charAt(0)!=="-"&&(j[_e]=rules$1[et]=rules$1[et]||et.replace(/([A-Z])/g,"-$1").toLowerCase())}var _vendorSettings$1;function getVendorSettings$1(){var j;if(!_vendorSettings$1){var _e=typeof document<"u"?document:void 0,et=typeof navigator<"u"?navigator:void 0,tt=(j=et==null?void 0:et.userAgent)===null||j===void 0?void 0:j.toLowerCase();_e?_vendorSettings$1={isWebkit:!!(_e&&"WebkitAppearance"in _e.documentElement.style),isMoz:!!(tt&&tt.indexOf("firefox")>-1),isOpera:!!(tt&&tt.indexOf("opera")>-1),isMs:!!(et&&(/rv:11.0/i.test(et.userAgent)||/Edge\/\d./i.test(navigator.userAgent)))}:_vendorSettings$1={isWebkit:!0,isMoz:!0,isOpera:!0,isMs:!0}}return _vendorSettings$1}var autoPrefixNames$1={"user-select":1};function prefixRules$1(j,_e){var et=getVendorSettings$1(),tt=j[_e];if(autoPrefixNames$1[tt]){var rt=j[_e+1];autoPrefixNames$1[tt]&&(et.isWebkit&&j.push("-webkit-"+tt,rt),et.isMoz&&j.push("-moz-"+tt,rt),et.isMs&&j.push("-ms-"+tt,rt),et.isOpera&&j.push("-o-"+tt,rt))}}var NON_PIXEL_NUMBER_PROPS$1=["column-count","font-weight","flex","flex-grow","flex-shrink","fill-opacity","opacity","order","z-index","zoom"];function provideUnits$1(j,_e){var et=j[_e],tt=j[_e+1];if(typeof tt=="number"){var rt=NON_PIXEL_NUMBER_PROPS$1.indexOf(et)>-1,nt=et.indexOf("--")>-1,ot=rt||nt?"":"px";j[_e+1]="".concat(tt).concat(ot)}}var _a$9,LEFT$1="left",RIGHT$1="right",NO_FLIP$1="@noflip",NAME_REPLACEMENTS$1=(_a$9={},_a$9[LEFT$1]=RIGHT$1,_a$9[RIGHT$1]=LEFT$1,_a$9),VALUE_REPLACEMENTS$1={"w-resize":"e-resize","sw-resize":"se-resize","nw-resize":"ne-resize"};function rtlifyRules$1(j,_e,et){if(j.rtl){var tt=_e[et];if(!tt)return;var rt=_e[et+1];if(typeof rt=="string"&&rt.indexOf(NO_FLIP$1)>=0)_e[et+1]=rt.replace(/\s*(?:\/\*\s*)?\@noflip\b(?:\s*\*\/)?\s*?/g,"");else if(tt.indexOf(LEFT$1)>=0)_e[et]=tt.replace(LEFT$1,RIGHT$1);else if(tt.indexOf(RIGHT$1)>=0)_e[et]=tt.replace(RIGHT$1,LEFT$1);else if(String(rt).indexOf(LEFT$1)>=0)_e[et+1]=rt.replace(LEFT$1,RIGHT$1);else if(String(rt).indexOf(RIGHT$1)>=0)_e[et+1]=rt.replace(RIGHT$1,LEFT$1);else if(NAME_REPLACEMENTS$1[tt])_e[et]=NAME_REPLACEMENTS$1[tt];else if(VALUE_REPLACEMENTS$1[rt])_e[et+1]=VALUE_REPLACEMENTS$1[rt];else switch(tt){case"margin":case"padding":_e[et+1]=flipQuad$1(rt);break;case"box-shadow":_e[et+1]=negateNum$1(rt,0);break}}}function negateNum$1(j,_e){var et=j.split(" "),tt=parseInt(et[_e],10);return et[0]=et[0].replace(String(tt),String(tt*-1)),et.join(" ")}function flipQuad$1(j){if(typeof j=="string"){var _e=j.split(" ");if(_e.length===4)return"".concat(_e[0]," ").concat(_e[3]," ").concat(_e[2]," ").concat(_e[1])}return j}function tokenizeWithParentheses$1(j){for(var _e=[],et=0,tt=0,rt=0;rtet&&_e.push(j.substring(et,rt)),et=rt+1);break}return et-1&&_e.push([tt.index,tt.index+tt[0].length,tt[1].split(",").map(function(rt){return":global(".concat(rt.trim(),")")}).join(", ")]);return _e.reverse().reduce(function(rt,nt){var ot=nt[0],it=nt[1],st=nt[2],lt=rt.slice(0,ot),ut=rt.slice(it);return lt+st+ut},j)}function expandSelector$1(j,_e){return j.indexOf(":global(")>=0?j.replace(globalSelectorRegExp$1,"$1"):j.indexOf(":")===0?_e+j:j.indexOf("&")<0?_e+" "+j:j}function extractSelector$1(j,_e,et,tt){_e===void 0&&(_e={__order:[]}),et.indexOf("@")===0?(et=et+"{"+j,extractRules$1([tt],_e,et)):et.indexOf(",")>-1?expandCommaSeparatedGlobals$1(et).split(",").map(function(rt){return rt.trim()}).forEach(function(rt){return extractRules$1([tt],_e,expandSelector$1(rt,j))}):extractRules$1([tt],_e,expandSelector$1(et,j))}function extractRules$1(j,_e,et){_e===void 0&&(_e={__order:[]}),et===void 0&&(et="&");var tt=Stylesheet$1.getInstance(),rt=_e[et];rt||(rt={},_e[et]=rt,_e.__order.push(et));for(var nt=0,ot=j;nt0){et.subComponentStyles={};var dt=et.subComponentStyles,ft=function(pt){if(tt.hasOwnProperty(pt)){var gt=tt[pt];dt[pt]=function(vt){return concatStyleSets.apply(void 0,gt.map(function(bt){return typeof bt=="function"?bt(vt):bt}))}}};for(var lt in tt)ft(lt)}return et}function mergeStyleSets(){for(var j=[],_e=0;_e"u")){var _e=j;return _e&&_e.ownerDocument&&_e.ownerDocument.defaultView?_e.ownerDocument.defaultView:_window}}var Async=function(){function j(_e,et){this._timeoutIds=null,this._immediateIds=null,this._intervalIds=null,this._animationFrameIds=null,this._isDisposed=!1,this._parent=_e||null,this._onErrorHandler=et,this._noop=function(){}}return j.prototype.dispose=function(){var _e;if(this._isDisposed=!0,this._parent=null,this._timeoutIds){for(_e in this._timeoutIds)this._timeoutIds.hasOwnProperty(_e)&&this.clearTimeout(parseInt(_e,10));this._timeoutIds=null}if(this._immediateIds){for(_e in this._immediateIds)this._immediateIds.hasOwnProperty(_e)&&this.clearImmediate(parseInt(_e,10));this._immediateIds=null}if(this._intervalIds){for(_e in this._intervalIds)this._intervalIds.hasOwnProperty(_e)&&this.clearInterval(parseInt(_e,10));this._intervalIds=null}if(this._animationFrameIds){for(_e in this._animationFrameIds)this._animationFrameIds.hasOwnProperty(_e)&&this.cancelAnimationFrame(parseInt(_e,10));this._animationFrameIds=null}},j.prototype.setTimeout=function(_e,et){var tt=this,rt=0;return this._isDisposed||(this._timeoutIds||(this._timeoutIds={}),rt=setTimeout(function(){try{tt._timeoutIds&&delete tt._timeoutIds[rt],_e.apply(tt._parent)}catch(nt){tt._logError(nt)}},et),this._timeoutIds[rt]=!0),rt},j.prototype.clearTimeout=function(_e){this._timeoutIds&&this._timeoutIds[_e]&&(clearTimeout(_e),delete this._timeoutIds[_e])},j.prototype.setImmediate=function(_e,et){var tt=this,rt=0,nt=getWindow(et);if(!this._isDisposed){this._immediateIds||(this._immediateIds={});var ot=function(){try{tt._immediateIds&&delete tt._immediateIds[rt],_e.apply(tt._parent)}catch(it){tt._logError(it)}};rt=nt.setTimeout(ot,0),this._immediateIds[rt]=!0}return rt},j.prototype.clearImmediate=function(_e,et){var tt=getWindow(et);this._immediateIds&&this._immediateIds[_e]&&(tt.clearTimeout(_e),delete this._immediateIds[_e])},j.prototype.setInterval=function(_e,et){var tt=this,rt=0;return this._isDisposed||(this._intervalIds||(this._intervalIds={}),rt=setInterval(function(){try{_e.apply(tt._parent)}catch(nt){tt._logError(nt)}},et),this._intervalIds[rt]=!0),rt},j.prototype.clearInterval=function(_e){this._intervalIds&&this._intervalIds[_e]&&(clearInterval(_e),delete this._intervalIds[_e])},j.prototype.throttle=function(_e,et,tt){var rt=this;if(this._isDisposed)return this._noop;var nt=et||0,ot=!0,it=!0,st=0,lt,ut,ct=null;tt&&typeof tt.leading=="boolean"&&(ot=tt.leading),tt&&typeof tt.trailing=="boolean"&&(it=tt.trailing);var dt=function(pt){var gt=Date.now(),vt=gt-st,bt=ot?nt-vt:nt;return vt>=nt&&(!pt||ot)?(st=gt,ct&&(rt.clearTimeout(ct),ct=null),lt=_e.apply(rt._parent,ut)):ct===null&&it&&(ct=rt.setTimeout(dt,bt)),lt},ft=function(){for(var pt=[],gt=0;gt=ot&&(At=!0),ut=$t);var wt=$t-ut,Ct=ot-wt,It=$t-ct,Ot=!1;return lt!==null&&(It>=lt&&pt?Ot=!0:Ct=Math.min(Ct,lt-It)),wt>=ot||Ot||At?vt($t):(pt===null||!St)&&st&&(pt=rt.setTimeout(bt,Ct)),dt},_t=function(){return!!pt},xt=function(){_t()&>(Date.now())},yt=function(){return _t()&&vt(Date.now()),dt},Et=function(){for(var St=[],$t=0;$t-1)for(var ot=et.split(/[ ,]+/),it=0;it"u")){var _e=j;return _e&&_e.ownerDocument?_e.ownerDocument:document}}var _scrollbarWidth,_bodyScrollDisabledCount=0,DisabledScrollClassName=mergeStyles$1({overflow:"hidden !important"}),DATA_IS_SCROLLABLE_ATTRIBUTE="data-is-scrollable",allowScrollOnElement=function(j,_e){if(j){var et=0,tt=null,rt=function(ot){ot.targetTouches.length===1&&(et=ot.targetTouches[0].clientY)},nt=function(ot){if(ot.targetTouches.length===1&&(ot.stopPropagation(),!!tt)){var it=ot.targetTouches[0].clientY-et,st=findScrollableParent(ot.target);st&&(tt=st),tt.scrollTop===0&&it>0&&ot.preventDefault(),tt.scrollHeight-Math.ceil(tt.scrollTop)<=tt.clientHeight&&it<0&&ot.preventDefault()}};_e.on(j,"touchstart",rt,{passive:!1}),_e.on(j,"touchmove",nt,{passive:!1}),tt=j}},allowOverscrollOnElement=function(j,_e){if(j){var et=function(tt){tt.stopPropagation()};_e.on(j,"touchmove",et,{passive:!1})}},_disableIosBodyScroll=function(j){j.preventDefault()};function disableBodyScroll(){var j=getDocument();j&&j.body&&!_bodyScrollDisabledCount&&(j.body.classList.add(DisabledScrollClassName),j.body.addEventListener("touchmove",_disableIosBodyScroll,{passive:!1,capture:!1})),_bodyScrollDisabledCount++}function enableBodyScroll(){if(_bodyScrollDisabledCount>0){var j=getDocument();j&&j.body&&_bodyScrollDisabledCount===1&&(j.body.classList.remove(DisabledScrollClassName),j.body.removeEventListener("touchmove",_disableIosBodyScroll)),_bodyScrollDisabledCount--}}function getScrollbarWidth(){if(_scrollbarWidth===void 0){var j=document.createElement("div");j.style.setProperty("width","100px"),j.style.setProperty("height","100px"),j.style.setProperty("overflow","scroll"),j.style.setProperty("position","absolute"),j.style.setProperty("top","-9999px"),document.body.appendChild(j),_scrollbarWidth=j.offsetWidth-j.clientWidth,document.body.removeChild(j)}return _scrollbarWidth}function findScrollableParent(j){for(var _e=j,et=getDocument(j);_e&&_e!==et.body;){if(_e.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE)==="true")return _e;_e=_e.parentElement}for(_e=j;_e&&_e!==et.body;){if(_e.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE)!=="false"){var tt=getComputedStyle(_e),rt=tt?tt.getPropertyValue("overflow-y"):"";if(rt&&(rt==="scroll"||rt==="auto"))return _e}_e=_e.parentElement}return(!_e||_e===et.body)&&(_e=getWindow(j)),_e}var _warningCallback=void 0;function warn$1(j){console&&console.warn&&console.warn(j)}var GLOBAL_SETTINGS_PROP_NAME="__globalSettings__",CALLBACK_STATE_PROP_NAME="__callbacks__",_counter=0,GlobalSettings=function(){function j(){}return j.getValue=function(_e,et){var tt=_getGlobalSettings();return tt[_e]===void 0&&(tt[_e]=typeof et=="function"?et():et),tt[_e]},j.setValue=function(_e,et){var tt=_getGlobalSettings(),rt=tt[CALLBACK_STATE_PROP_NAME],nt=tt[_e];if(et!==nt){tt[_e]=et;var ot={oldValue:nt,value:et,key:_e};for(var it in rt)rt.hasOwnProperty(it)&&rt[it](ot)}return et},j.addChangeListener=function(_e){var et=_e.__id__,tt=_getCallbacks();et||(et=_e.__id__=String(_counter++)),tt[et]=_e},j.removeChangeListener=function(_e){var et=_getCallbacks();delete et[_e.__id__]},j}();function _getGlobalSettings(){var j,_e=getWindow(),et=_e||{};return et[GLOBAL_SETTINGS_PROP_NAME]||(et[GLOBAL_SETTINGS_PROP_NAME]=(j={},j[CALLBACK_STATE_PROP_NAME]={},j)),et[GLOBAL_SETTINGS_PROP_NAME]}function _getCallbacks(){var j=_getGlobalSettings();return j[CALLBACK_STATE_PROP_NAME]}var KeyCodes$1={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,pauseBreak:19,capslock:20,escape:27,space:32,pageUp:33,pageDown:34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,del:46,zero:48,one:49,two:50,three:51,four:52,five:53,six:54,seven:55,eight:56,nine:57,colon:58,a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90,leftWindow:91,rightWindow:92,select:93,zero_numpad:96,one_numpad:97,two_numpad:98,three_numpad:99,four_numpad:100,five_numpad:101,six_numpad:102,seven_numpad:103,eight_numpad:104,nine_numpad:105,multiply:106,add:107,subtract:109,decimalPoint:110,divide:111,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,numlock:144,scrollLock:145,semicolon:186,equalSign:187,comma:188,dash:189,period:190,forwardSlash:191,graveAccent:192,openBracket:219,backSlash:220,closeBracket:221,singleQuote:222},Rectangle$1=function(){function j(_e,et,tt,rt){_e===void 0&&(_e=0),et===void 0&&(et=0),tt===void 0&&(tt=0),rt===void 0&&(rt=0),this.top=tt,this.bottom=rt,this.left=_e,this.right=et}return Object.defineProperty(j.prototype,"width",{get:function(){return this.right-this.left},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"height",{get:function(){return this.bottom-this.top},enumerable:!1,configurable:!0}),j.prototype.equals=function(_e){return parseFloat(this.top.toFixed(4))===parseFloat(_e.top.toFixed(4))&&parseFloat(this.bottom.toFixed(4))===parseFloat(_e.bottom.toFixed(4))&&parseFloat(this.left.toFixed(4))===parseFloat(_e.left.toFixed(4))&&parseFloat(this.right.toFixed(4))===parseFloat(_e.right.toFixed(4))},j}();function appendFunction(j){for(var _e=[],et=1;et-1&&rt._virtual.children.splice(nt,1)}et._virtual.parent=tt||void 0,tt&&(tt._virtual||(tt._virtual={children:[]}),tt._virtual.children.push(et))}var IS_FOCUSABLE_ATTRIBUTE$1="data-is-focusable",IS_VISIBLE_ATTRIBUTE="data-is-visible",FOCUSZONE_ID_ATTRIBUTE$1="data-focuszone-id",FOCUSZONE_SUB_ATTRIBUTE="data-is-sub-focuszone";function getFirstFocusable(j,_e,et){return getNextElement(j,_e,!0,!1,!1,et)}function getLastFocusable(j,_e,et){return getPreviousElement(j,_e,!0,!1,!0,et)}function getFirstTabbable(j,_e,et,tt){return tt===void 0&&(tt=!0),getNextElement(j,_e,tt,!1,!1,et,!1,!0)}function getLastTabbable(j,_e,et,tt){return tt===void 0&&(tt=!0),getPreviousElement(j,_e,tt,!1,!0,et,!1,!0)}function focusFirstChild(j,_e){var et=getNextElement(j,j,!0,!1,!1,!0,void 0,void 0,_e);return et?(focusAsync(et),!0):!1}function getPreviousElement(j,_e,et,tt,rt,nt,ot,it){if(!_e||!ot&&_e===j)return null;var st=isElementVisible(_e);if(rt&&st&&(nt||!(isElementFocusZone(_e)||isElementFocusSubZone(_e)))){var lt=getPreviousElement(j,_e.lastElementChild,!0,!0,!0,nt,ot,it);if(lt){if(it&&isElementTabbable(lt,!0)||!it)return lt;var ut=getPreviousElement(j,lt.previousElementSibling,!0,!0,!0,nt,ot,it);if(ut)return ut;for(var ct=lt.parentElement;ct&&ct!==_e;){var dt=getPreviousElement(j,ct.previousElementSibling,!0,!0,!0,nt,ot,it);if(dt)return dt;ct=ct.parentElement}}}if(et&&st&&isElementTabbable(_e,it))return _e;var ft=getPreviousElement(j,_e.previousElementSibling,!0,!0,!0,nt,ot,it);return ft||(tt?null:getPreviousElement(j,_e.parentElement,!0,!1,!1,nt,ot,it))}function getNextElement(j,_e,et,tt,rt,nt,ot,it,st){if(!_e||_e===j&&rt&&!ot)return null;var lt=st?isElementVisibleAndNotHidden:isElementVisible,ut=lt(_e);if(et&&ut&&isElementTabbable(_e,it))return _e;if(!rt&&ut&&(nt||!(isElementFocusZone(_e)||isElementFocusSubZone(_e)))){var ct=getNextElement(j,_e.firstElementChild,!0,!0,!1,nt,ot,it,st);if(ct)return ct}if(_e===j)return null;var dt=getNextElement(j,_e.nextElementSibling,!0,!0,!1,nt,ot,it,st);return dt||(tt?null:getNextElement(j,_e.parentElement,!1,!1,!0,nt,ot,it,st))}function isElementVisible(j){if(!j||!j.getAttribute)return!1;var _e=j.getAttribute(IS_VISIBLE_ATTRIBUTE);return _e!=null?_e==="true":j.offsetHeight!==0||j.offsetParent!==null||j.isVisible===!0}function isElementVisibleAndNotHidden(j){return!!j&&isElementVisible(j)&&!j.hidden&&window.getComputedStyle(j).visibility!=="hidden"}function isElementTabbable(j,_e){if(!j||j.disabled)return!1;var et=0,tt=null;j&&j.getAttribute&&(tt=j.getAttribute("tabIndex"),tt&&(et=parseInt(tt,10)));var rt=j.getAttribute?j.getAttribute(IS_FOCUSABLE_ATTRIBUTE$1):null,nt=tt!==null&&et>=0,ot=!!j&&rt!=="false"&&(j.tagName==="A"||j.tagName==="BUTTON"||j.tagName==="INPUT"||j.tagName==="TEXTAREA"||j.tagName==="SELECT"||rt==="true"||nt);return _e?et!==-1&&ot:ot}function isElementFocusZone(j){return!!(j&&j.getAttribute&&j.getAttribute(FOCUSZONE_ID_ATTRIBUTE$1))}function isElementFocusSubZone(j){return!!(j&&j.getAttribute&&j.getAttribute(FOCUSZONE_SUB_ATTRIBUTE)==="true")}function doesElementContainFocus(j){var _e=getDocument(j),et=_e&&_e.activeElement;return!!(et&&elementContains(j,et))}function shouldWrapFocus(j,_e){return elementContainsAttribute(j,_e)!=="true"}var animationId=void 0;function focusAsync(j){if(j){var _e=getWindow(j);_e&&(animationId!==void 0&&_e.cancelAnimationFrame(animationId),animationId=_e.requestAnimationFrame(function(){j&&j.focus(),animationId=void 0}))}}function getFocusableByIndexPath(j,_e){for(var et=j,tt=0,rt=_e;tt(j.cacheSize||MAX_CACHE_COUNT)){var ft=getWindow();!((st=ft==null?void 0:ft.FabricConfig)===null||st===void 0)&&st.enableClassNameCacheFullWarning&&(console.warn("Styles are being recalculated too frequently. Cache miss rate is ".concat(et,"/").concat(tt,".")),console.trace()),_e.clear(),et=0,j.disableCaching=!0}return lt[retVal]};return nt}function _traverseEdge(j,_e){return _e=_normalizeValue(_e),j.has(_e)||j.set(_e,new Map),j.get(_e)}function _traverseMap(j,_e){if(typeof _e=="function"){var et=_e.__cachedInputs__;if(et)for(var tt=0,rt=_e.__cachedInputs__;tt"u"?null:WeakMap;function resetMemoizations(){_resetCounter++}function memoizeFunction(j,_e,et){if(_e===void 0&&(_e=100),et===void 0&&(et=!1),!_weakMap)return j;if(!_initializedStylesheetResets$1){var tt=Stylesheet$1.getInstance();tt&&tt.onReset&&Stylesheet$1.getInstance().onReset(resetMemoizations),_initializedStylesheetResets$1=!0}var rt,nt=0,ot=_resetCounter;return function(){for(var st=[],lt=0;lt0&&nt>_e)&&(rt=_createNode(),nt=0,ot=_resetCounter),ut=rt;for(var ct=0;ct=0||st.indexOf("data-")===0||st.indexOf("aria-")===0;lt&&(!et||(et==null?void 0:et.indexOf(st))===-1)&&(rt[st]=j[st])}return rt}function initializeComponentRef(j){extendComponent(j,{componentDidMount:_onMount,componentDidUpdate:_onUpdate,componentWillUnmount:_onUnmount})}function _onMount(){_setComponentRef(this.props.componentRef,this)}function _onUpdate(j){j.componentRef!==this.props.componentRef&&(_setComponentRef(j.componentRef,null),_setComponentRef(this.props.componentRef,this))}function _onUnmount(){_setComponentRef(this.props.componentRef,null)}function _setComponentRef(j,_e){j&&(typeof j=="object"?j.current=_e:typeof j=="function"&&j(_e))}var _a$8,DirectionalKeyCodes=(_a$8={},_a$8[KeyCodes$1.up]=1,_a$8[KeyCodes$1.down]=1,_a$8[KeyCodes$1.left]=1,_a$8[KeyCodes$1.right]=1,_a$8[KeyCodes$1.home]=1,_a$8[KeyCodes$1.end]=1,_a$8[KeyCodes$1.tab]=1,_a$8[KeyCodes$1.pageUp]=1,_a$8[KeyCodes$1.pageDown]=1,_a$8);function isDirectionalKeyCode(j){return!!DirectionalKeyCodes[j]}var IsFocusVisibleClassName="ms-Fabric--isFocusVisible",IsFocusHiddenClassName="ms-Fabric--isFocusHidden";function updateClassList(j,_e){j&&(j.classList.add(_e?IsFocusVisibleClassName:IsFocusHiddenClassName),j.classList.remove(_e?IsFocusHiddenClassName:IsFocusVisibleClassName))}function setFocusVisibility(j,_e,et){var tt;et?et.forEach(function(rt){return updateClassList(rt.current,j)}):updateClassList((tt=getWindow(_e))===null||tt===void 0?void 0:tt.document.body,j)}var mountCounters=new WeakMap,callbackMap=new WeakMap;function setMountCounters(j,_e){var et,tt=mountCounters.get(j);return tt?et=tt+_e:et=1,mountCounters.set(j,et),et}function setCallbackMap(j){var _e=callbackMap.get(j);if(_e)return _e;var et=function(ot){return _onMouseDown(ot,j.registeredProviders)},tt=function(ot){return _onPointerDown(ot,j.registeredProviders)},rt=function(ot){return _onKeyDown(ot,j.registeredProviders)},nt=function(ot){return _onKeyUp(ot,j.registeredProviders)};return _e={onMouseDown:et,onPointerDown:tt,onKeyDown:rt,onKeyUp:nt},callbackMap.set(j,_e),_e}var FocusRectsContext=reactExports.createContext(void 0);function useFocusRects(j){var _e=reactExports.useContext(FocusRectsContext);reactExports.useEffect(function(){var et,tt,rt,nt,ot=getWindow(j==null?void 0:j.current);if(!(!ot||((et=ot.FabricConfig)===null||et===void 0?void 0:et.disableFocusRects)===!0)){var it=ot,st,lt,ut,ct;if(!((tt=_e==null?void 0:_e.providerRef)===null||tt===void 0)&&tt.current&&(!((nt=(rt=_e==null?void 0:_e.providerRef)===null||rt===void 0?void 0:rt.current)===null||nt===void 0)&&nt.addEventListener)){it=_e.providerRef.current;var dt=setCallbackMap(_e);st=dt.onMouseDown,lt=dt.onPointerDown,ut=dt.onKeyDown,ct=dt.onKeyUp}else st=_onMouseDown,lt=_onPointerDown,ut=_onKeyDown,ct=_onKeyUp;var ft=setMountCounters(it,1);return ft<=1&&(it.addEventListener("mousedown",st,!0),it.addEventListener("pointerdown",lt,!0),it.addEventListener("keydown",ut,!0),it.addEventListener("keyup",ct,!0)),function(){var pt;!ot||((pt=ot.FabricConfig)===null||pt===void 0?void 0:pt.disableFocusRects)===!0||(ft=setMountCounters(it,-1),ft===0&&(it.removeEventListener("mousedown",st,!0),it.removeEventListener("pointerdown",lt,!0),it.removeEventListener("keydown",ut,!0),it.removeEventListener("keyup",ct,!0)))}}},[_e,j])}var FocusRects=function(j){return useFocusRects(j.rootRef),null};function _onMouseDown(j,_e){setFocusVisibility(!1,j.target,_e)}function _onPointerDown(j,_e){j.pointerType!=="mouse"&&setFocusVisibility(!1,j.target,_e)}function _onKeyDown(j,_e){isDirectionalKeyCode(j.which)&&setFocusVisibility(!0,j.target,_e)}function _onKeyUp(j,_e){isDirectionalKeyCode(j.which)&&setFocusVisibility(!0,j.target,_e)}var FocusRectsProvider=function(j){var _e=j.providerRef,et=j.layerRoot,tt=reactExports.useState([])[0],rt=reactExports.useContext(FocusRectsContext),nt=rt!==void 0&&!et,ot=reactExports.useMemo(function(){return nt?void 0:{providerRef:_e,registeredProviders:tt,registerProvider:function(it){tt.push(it),rt==null||rt.registerProvider(it)},unregisterProvider:function(it){rt==null||rt.unregisterProvider(it);var st=tt.indexOf(it);st>=0&&tt.splice(st,1)}}},[_e,tt,rt,nt]);return reactExports.useEffect(function(){if(ot)return ot.registerProvider(ot.providerRef),function(){return ot.unregisterProvider(ot.providerRef)}},[ot]),ot?reactExports.createElement(FocusRectsContext.Provider,{value:ot},j.children):reactExports.createElement(reactExports.Fragment,null,j.children)};function getItem(j){var _e=null;try{var et=getWindow();_e=et?et.localStorage.getItem(j):null}catch{}return _e}var _language,STORAGE_KEY="language";function getLanguage(j){if(j===void 0&&(j="sessionStorage"),_language===void 0){var _e=getDocument(),et=j==="localStorage"?getItem(STORAGE_KEY):j==="sessionStorage"?getItem$1(STORAGE_KEY):void 0;et&&(_language=et),_language===void 0&&_e&&(_language=_e.documentElement.getAttribute("lang")),_language===void 0&&(_language="en")}return _language}function merge$4(j){for(var _e=[],et=1;et-1;j[tt]=nt?rt:_merge(j[tt]||{},rt,et)}else j[tt]=rt}return et.pop(),j}var isIOS=function(){return!window||!window.navigator||!window.navigator.userAgent?!1:/iPad|iPhone|iPod/i.test(window.navigator.userAgent)},tagsToIgnore=["TEMPLATE","STYLE","SCRIPT"];function modalize(j){var _e=getDocument(j);if(!_e)return function(){};for(var et=[];j!==_e.body&&j.parentElement;){for(var tt=0,rt=j.parentElement.children;tt"u"||j){var et=getWindow(),tt=(_e=et==null?void 0:et.navigator)===null||_e===void 0?void 0:_e.userAgent;isMacResult=!!tt&&tt.indexOf("Macintosh")!==-1}return!!isMacResult}function createComposedRenderFunction(j){var _e=createMemoizer(function(et){var tt=createMemoizer(function(rt){return function(nt){return et(nt,rt)}});return function(rt,nt){return j(rt,nt?tt(nt):et)}});return _e}var memoizer=createMemoizer(createComposedRenderFunction);function composeRenderFunction(j,_e){return memoizer(j)(_e)}var DefaultFields=["theme","styles"];function styled(j,_e,et,tt,rt){tt=tt||{scope:"",fields:void 0};var nt=tt.scope,ot=tt.fields,it=ot===void 0?DefaultFields:ot,st=reactExports.forwardRef(function(ut,ct){var dt=reactExports.useRef(),ft=useCustomizationSettings(it,nt),pt=ft.styles;ft.dir;var gt=__rest$1(ft,["styles","dir"]),vt=et?et(ut):void 0,bt=dt.current&&dt.current.__cachedInputs__||[],_t=ut.styles;if(!dt.current||pt!==bt[1]||_t!==bt[2]){var xt=function(yt){return concatStyleSetsWithProps(yt,_e,pt,_t)};xt.__cachedInputs__=[_e,pt,_t],xt.__noStyleOverride__=!pt&&!_t,dt.current=xt}return reactExports.createElement(j,__assign$4({ref:ct},gt,vt,ut,{styles:dt.current}))});st.displayName="Styled".concat(j.displayName||j.name);var lt=rt?reactExports.memo(st):st;return st.displayName&&(lt.displayName=st.displayName),lt}function getPropsWithDefaults(j,_e){for(var et=__assign$4({},_e),tt=0,rt=Object.keys(j);tttt?" (+ ".concat(_missingIcons.length-tt," more)"):"")),_missingIconsTimer=void 0,_missingIcons=[]},et)))}function makeSemanticColors(j,_e,et,tt,rt){rt===void 0&&(rt=!1);var nt=__assign$4({primaryButtonBorder:"transparent",errorText:tt?"#F1707B":"#a4262c",messageText:tt?"#F3F2F1":"#323130",messageLink:tt?"#6CB8F6":"#005A9E",messageLinkHovered:tt?"#82C7FF":"#004578",infoIcon:tt?"#C8C6C4":"#605e5c",errorIcon:tt?"#F1707B":"#A80000",blockingIcon:tt?"#442726":"#FDE7E9",warningIcon:tt?"#C8C6C4":"#797775",severeWarningIcon:tt?"#FCE100":"#D83B01",successIcon:tt?"#92C353":"#107C10",infoBackground:tt?"#323130":"#f3f2f1",errorBackground:tt?"#442726":"#FDE7E9",blockingBackground:tt?"#442726":"#FDE7E9",warningBackground:tt?"#433519":"#FFF4CE",severeWarningBackground:tt?"#4F2A0F":"#FED9CC",successBackground:tt?"#393D1B":"#DFF6DD",warningHighlight:tt?"#fff100":"#ffb900",successText:tt?"#92c353":"#107C10"},et),ot=getSemanticColors(j,_e,nt,tt);return _fixDeprecatedSlots(ot,rt)}function getSemanticColors(j,_e,et,tt,rt){var nt={},ot=j||{},it=ot.white,st=ot.black,lt=ot.themePrimary,ut=ot.themeDark,ct=ot.themeDarker,dt=ot.themeDarkAlt,ft=ot.themeLighter,pt=ot.neutralLight,gt=ot.neutralLighter,vt=ot.neutralDark,bt=ot.neutralQuaternary,_t=ot.neutralQuaternaryAlt,xt=ot.neutralPrimary,yt=ot.neutralSecondary,Et=ot.neutralSecondaryAlt,St=ot.neutralTertiary,$t=ot.neutralTertiaryAlt,At=ot.neutralLighterAlt,wt=ot.accent;return it&&(nt.bodyBackground=it,nt.bodyFrameBackground=it,nt.accentButtonText=it,nt.buttonBackground=it,nt.primaryButtonText=it,nt.primaryButtonTextHovered=it,nt.primaryButtonTextPressed=it,nt.inputBackground=it,nt.inputForegroundChecked=it,nt.listBackground=it,nt.menuBackground=it,nt.cardStandoutBackground=it),st&&(nt.bodyTextChecked=st,nt.buttonTextCheckedHovered=st),lt&&(nt.link=lt,nt.primaryButtonBackground=lt,nt.inputBackgroundChecked=lt,nt.inputIcon=lt,nt.inputFocusBorderAlt=lt,nt.menuIcon=lt,nt.menuHeader=lt,nt.accentButtonBackground=lt),ut&&(nt.primaryButtonBackgroundPressed=ut,nt.inputBackgroundCheckedHovered=ut,nt.inputIconHovered=ut),ct&&(nt.linkHovered=ct),dt&&(nt.primaryButtonBackgroundHovered=dt),ft&&(nt.inputPlaceholderBackgroundChecked=ft),pt&&(nt.bodyBackgroundChecked=pt,nt.bodyFrameDivider=pt,nt.bodyDivider=pt,nt.variantBorder=pt,nt.buttonBackgroundCheckedHovered=pt,nt.buttonBackgroundPressed=pt,nt.listItemBackgroundChecked=pt,nt.listHeaderBackgroundPressed=pt,nt.menuItemBackgroundPressed=pt,nt.menuItemBackgroundChecked=pt),gt&&(nt.bodyBackgroundHovered=gt,nt.buttonBackgroundHovered=gt,nt.buttonBackgroundDisabled=gt,nt.buttonBorderDisabled=gt,nt.primaryButtonBackgroundDisabled=gt,nt.disabledBackground=gt,nt.listItemBackgroundHovered=gt,nt.listHeaderBackgroundHovered=gt,nt.menuItemBackgroundHovered=gt),bt&&(nt.primaryButtonTextDisabled=bt,nt.disabledSubtext=bt),_t&&(nt.listItemBackgroundCheckedHovered=_t),St&&(nt.disabledBodyText=St,nt.variantBorderHovered=(et==null?void 0:et.variantBorderHovered)||St,nt.buttonTextDisabled=St,nt.inputIconDisabled=St,nt.disabledText=St),xt&&(nt.bodyText=xt,nt.actionLink=xt,nt.buttonText=xt,nt.inputBorderHovered=xt,nt.inputText=xt,nt.listText=xt,nt.menuItemText=xt),At&&(nt.bodyStandoutBackground=At,nt.defaultStateBackground=At),vt&&(nt.actionLinkHovered=vt,nt.buttonTextHovered=vt,nt.buttonTextChecked=vt,nt.buttonTextPressed=vt,nt.inputTextHovered=vt,nt.menuItemTextHovered=vt),yt&&(nt.bodySubtext=yt,nt.focusBorder=yt,nt.inputBorder=yt,nt.smallInputBorder=yt,nt.inputPlaceholderText=yt),Et&&(nt.buttonBorder=Et),$t&&(nt.disabledBodySubtext=$t,nt.disabledBorder=$t,nt.buttonBackgroundChecked=$t,nt.menuDivider=$t),wt&&(nt.accentButtonBackground=wt),_e!=null&&_e.elevation4&&(nt.cardShadow=_e.elevation4),!tt&&(_e!=null&&_e.elevation8)?nt.cardShadowHovered=_e.elevation8:nt.variantBorderHovered&&(nt.cardShadowHovered="0 0 1px "+nt.variantBorderHovered),nt=__assign$4(__assign$4({},nt),et),nt}function _fixDeprecatedSlots(j,_e){var et="";return _e===!0&&(et=" /* @deprecated */"),j.listTextColor=j.listText+et,j.menuItemBackgroundChecked+=et,j.warningHighlight+=et,j.warningText=j.messageText+et,j.successText+=et,j}function mergeThemes(j,_e){var et,tt,rt;_e===void 0&&(_e={});var nt=merge$4({},j,_e,{semanticColors:getSemanticColors(_e.palette,_e.effects,_e.semanticColors,_e.isInverted===void 0?j.isInverted:_e.isInverted)});if(!((et=_e.palette)===null||et===void 0)&&et.themePrimary&&!(!((tt=_e.palette)===null||tt===void 0)&&tt.accent)&&(nt.palette.accent=_e.palette.themePrimary),_e.defaultFontStyle)for(var ot=0,it=Object.keys(nt.fonts);ot"u"?global:window,_styleNonce=_root&&_root.CSPSettings&&_root.CSPSettings.nonce,_themeState=initializeThemeState();function initializeThemeState(){var j=_root.__themeState__||{theme:void 0,lastStyleElement:void 0,registeredStyles:[]};return j.runState||(j=__assign$3(__assign$3({},j),{perf:{count:0,duration:0},runState:{flushTimer:0,mode:0,buffer:[]}})),j.registeredThemableStyles||(j=__assign$3(__assign$3({},j),{registeredThemableStyles:[]})),_root.__themeState__=j,j}function applyThemableStyles(j,_e){_themeState.loadStyles?_themeState.loadStyles(resolveThemableArray(j).styleString,j):registerStyles$1(j)}function loadTheme$1(j){_themeState.theme=j,reloadStyles()}function clearStyles(j){j===void 0&&(j=3),(j===3||j===2)&&(clearStylesInternal(_themeState.registeredStyles),_themeState.registeredStyles=[]),(j===3||j===1)&&(clearStylesInternal(_themeState.registeredThemableStyles),_themeState.registeredThemableStyles=[])}function clearStylesInternal(j){j.forEach(function(_e){var et=_e&&_e.styleElement;et&&et.parentElement&&et.parentElement.removeChild(et)})}function reloadStyles(){if(_themeState.theme){for(var j=[],_e=0,et=_themeState.registeredThemableStyles;_e0&&(clearStyles(1),applyThemableStyles([].concat.apply([],j)))}}function resolveThemableArray(j){var _e=_themeState.theme,et=!1,tt=(j||[]).map(function(rt){var nt=rt.theme;if(nt){et=!0;var ot=_e?_e[nt]:void 0,it=rt.defaultValue||"inherit";return _e&&!ot&&console&&!(nt in _e)&&typeof DEBUG<"u"&&DEBUG&&console.warn('Theming value not provided for "'.concat(nt,'". Falling back to "').concat(it,'".')),ot||it}else return rt.rawString});return{styleString:tt.join(""),themable:et}}function registerStyles$1(j){if(!(typeof document>"u")){var _e=document.getElementsByTagName("head")[0],et=document.createElement("style"),tt=resolveThemableArray(j),rt=tt.styleString,nt=tt.themable;et.setAttribute("data-load-themed-styles","true"),_styleNonce&&et.setAttribute("nonce",_styleNonce),et.appendChild(document.createTextNode(rt)),_themeState.perf.count++,_e.appendChild(et);var ot=document.createEvent("HTMLEvents");ot.initEvent("styleinsert",!0,!1),ot.args={newStyle:et},document.dispatchEvent(ot);var it={styleElement:et,themableStyle:j};nt?_themeState.registeredThemableStyles.push(it):_themeState.registeredStyles.push(it)}}var _theme=createTheme({}),_onThemeChangeCallbacks=[],ThemeSettingName="theme";function initializeThemeInCustomizations(){var j,_e,et,tt=getWindow();!((_e=tt==null?void 0:tt.FabricConfig)===null||_e===void 0)&&_e.legacyTheme?loadTheme(tt.FabricConfig.legacyTheme):Customizations.getSettings([ThemeSettingName]).theme||(!((et=tt==null?void 0:tt.FabricConfig)===null||et===void 0)&&et.theme&&(_theme=createTheme(tt.FabricConfig.theme)),Customizations.applySettings((j={},j[ThemeSettingName]=_theme,j)))}initializeThemeInCustomizations();function getTheme(j){return j===void 0&&(j=!1),j===!0&&(_theme=createTheme({},j)),_theme}function loadTheme(j,_e){var et;return _e===void 0&&(_e=!1),_theme=createTheme(j,_e),loadTheme$1(__assign$4(__assign$4(__assign$4(__assign$4({},_theme.palette),_theme.semanticColors),_theme.effects),_loadFonts(_theme))),Customizations.applySettings((et={},et[ThemeSettingName]=_theme,et)),_onThemeChangeCallbacks.forEach(function(tt){try{tt(_theme)}catch{}}),_theme}function _loadFonts(j){for(var _e={},et=0,tt=Object.keys(j.fonts);et_e.bottom||j.left<_e.left||j.right>_e.right)}function _getOutOfBoundsEdges(j,_e){var et=[];return j.top<_e.top&&et.push(RectangleEdge.top),j.bottom>_e.bottom&&et.push(RectangleEdge.bottom),j.left<_e.left&&et.push(RectangleEdge.left),j.right>_e.right&&et.push(RectangleEdge.right),et}function _getEdgeValue(j,_e){return j[RectangleEdge[_e]]}function _setEdgeValue(j,_e,et){return j[RectangleEdge[_e]]=et,j}function _getCenterValue(j,_e){var et=_getFlankingEdges(_e);return(_getEdgeValue(j,et.positiveEdge)+_getEdgeValue(j,et.negativeEdge))/2}function _getRelativeEdgeValue(j,_e){return j>0?_e:_e*-1}function _getRelativeRectEdgeValue(j,_e){return _getRelativeEdgeValue(j,_getEdgeValue(_e,j))}function _getRelativeEdgeDifference(j,_e,et){var tt=_getEdgeValue(j,et)-_getEdgeValue(_e,et);return _getRelativeEdgeValue(et,tt)}function _moveEdge(j,_e,et,tt){tt===void 0&&(tt=!0);var rt=_getEdgeValue(j,_e)-et,nt=_setEdgeValue(j,_e,et);return tt&&(nt=_setEdgeValue(j,_e*-1,_getEdgeValue(j,_e*-1)-rt)),nt}function _alignEdges(j,_e,et,tt){return tt===void 0&&(tt=0),_moveEdge(j,et,_getEdgeValue(_e,et)+_getRelativeEdgeValue(et,tt))}function _alignOppositeEdges(j,_e,et,tt){tt===void 0&&(tt=0);var rt=et*-1,nt=_getRelativeEdgeValue(rt,tt);return _moveEdge(j,et*-1,_getEdgeValue(_e,et)+nt)}function _isEdgeInBounds(j,_e,et){var tt=_getRelativeRectEdgeValue(et,j);return tt>_getRelativeRectEdgeValue(et,_e)}function _getOutOfBoundsDegree(j,_e){for(var et=_getOutOfBoundsEdges(j,_e),tt=0,rt=0,nt=et;rt=tt}function _flipToFit(j,_e,et,tt,rt,nt,ot){rt===void 0&&(rt=!1),ot===void 0&&(ot=0);var it=[RectangleEdge.left,RectangleEdge.right,RectangleEdge.bottom,RectangleEdge.top];getRTL$1()&&(it[0]*=-1,it[1]*=-1);for(var st=j,lt=tt.targetEdge,ut=tt.alignmentEdge,ct,dt=lt,ft=ut,pt=0;pt<4;pt++){if(_isEdgeInBounds(st,et,lt))return{elementRectangle:st,targetEdge:lt,alignmentEdge:ut};if(rt&&_canScrollResizeToFitEdge(_e,et,lt,nt)){switch(lt){case RectangleEdge.bottom:st.bottom=et.bottom;break;case RectangleEdge.top:st.top=et.top;break}return{elementRectangle:st,targetEdge:lt,alignmentEdge:ut,forcedInBounds:!0}}else{var gt=_getOutOfBoundsDegree(st,et);(!ct||gt0&&(it.indexOf(lt*-1)>-1?lt=lt*-1:(ut=lt,lt=it.slice(-1)[0]),st=_estimatePosition(j,_e,{targetEdge:lt,alignmentEdge:ut},ot))}}return st=_estimatePosition(j,_e,{targetEdge:dt,alignmentEdge:ft},ot),{elementRectangle:st,targetEdge:dt,alignmentEdge:ft}}function _flipAlignmentEdge(j,_e,et,tt){var rt=j.alignmentEdge,nt=j.targetEdge,ot=j.elementRectangle,it=rt*-1,st=_estimatePosition(ot,_e,{targetEdge:nt,alignmentEdge:it},et,tt);return{elementRectangle:st,targetEdge:nt,alignmentEdge:it}}function _adjustFitWithinBounds(j,_e,et,tt,rt,nt,ot,it,st){rt===void 0&&(rt=!1),ot===void 0&&(ot=0);var lt=tt.alignmentEdge,ut=tt.alignTargetEdge,ct={elementRectangle:j,targetEdge:tt.targetEdge,alignmentEdge:lt};!it&&!st&&(ct=_flipToFit(j,_e,et,tt,rt,nt,ot));var dt=_getOutOfBoundsEdges(ct.elementRectangle,et),ft=it?-ct.targetEdge:void 0;if(dt.length>0)if(ut)if(ct.alignmentEdge&&dt.indexOf(ct.alignmentEdge*-1)>-1){var pt=_flipAlignmentEdge(ct,_e,ot,st);if(_isRectangleWithinBounds(pt.elementRectangle,et))return pt;ct=_alignOutOfBoundsEdges(_getOutOfBoundsEdges(pt.elementRectangle,et),ct,et,ft)}else ct=_alignOutOfBoundsEdges(dt,ct,et,ft);else ct=_alignOutOfBoundsEdges(dt,ct,et,ft);return ct}function _alignOutOfBoundsEdges(j,_e,et,tt){for(var rt=0,nt=j;rtMath.abs(_getRelativeEdgeDifference(j,et,_e*-1))?_e*-1:_e}function _isEdgeOnBounds(j,_e,et){return et!==void 0&&_getEdgeValue(j,_e)===_getEdgeValue(et,_e)}function _finalizeElementPosition(j,_e,et,tt,rt,nt,ot,it){var st={},lt=_getRectangleFromElement(_e),ut=nt?et:et*-1,ct=rt||_getFlankingEdges(et).positiveEdge;return(!ot||_isEdgeOnBounds(j,getOppositeEdge(ct),tt))&&(ct=_finalizeReturnEdge(j,ct,tt)),st[RectangleEdge[ut]]=_getRelativeEdgeDifference(j,lt,ut),st[RectangleEdge[ct]]=_getRelativeEdgeDifference(j,lt,ct),it&&(st[RectangleEdge[ut*-1]]=_getRelativeEdgeDifference(j,lt,ut*-1),st[RectangleEdge[ct*-1]]=_getRelativeEdgeDifference(j,lt,ct*-1)),st}function _calculateActualBeakWidthInPixels(j){return Math.sqrt(j*j*2)}function _getPositionData(j,_e,et){if(j===void 0&&(j=DirectionalHint.bottomAutoEdge),et)return{alignmentEdge:et.alignmentEdge,isAuto:et.isAuto,targetEdge:et.targetEdge};var tt=__assign$4({},DirectionalDictionary[j]);return getRTL$1()?(tt.alignmentEdge&&tt.alignmentEdge%2===0&&(tt.alignmentEdge=tt.alignmentEdge*-1),_e!==void 0?DirectionalDictionary[_e]:tt):tt}function _getAlignmentData(j,_e,et,tt,rt){return j.isAuto&&(j.alignmentEdge=getClosestEdge(j.targetEdge,_e,et)),j.alignTargetEdge=rt,j}function getClosestEdge(j,_e,et){var tt=_getCenterValue(_e,j),rt=_getCenterValue(et,j),nt=_getFlankingEdges(j),ot=nt.positiveEdge,it=nt.negativeEdge;return tt<=rt?ot:it}function _positionElementWithinBounds(j,_e,et,tt,rt,nt,ot,it,st){nt===void 0&&(nt=!1);var lt=_estimatePosition(j,_e,tt,rt,st);return _isRectangleWithinBounds(lt,et)?{elementRectangle:lt,targetEdge:tt.targetEdge,alignmentEdge:tt.alignmentEdge}:_adjustFitWithinBounds(lt,_e,et,tt,nt,ot,rt,it,st)}function _finalizeBeakPosition(j,_e,et){var tt=j.targetEdge*-1,rt=new Rectangle$1(0,j.elementRectangle.width,0,j.elementRectangle.height),nt={},ot=_finalizeReturnEdge(j.elementRectangle,j.alignmentEdge?j.alignmentEdge:_getFlankingEdges(tt).positiveEdge,et),it=_getRelativeEdgeDifference(j.elementRectangle,j.targetRectangle,tt),st=it>Math.abs(_getEdgeValue(_e,tt));return nt[RectangleEdge[tt]]=_getEdgeValue(_e,tt),nt[RectangleEdge[ot]]=_getRelativeEdgeDifference(_e,rt,ot),{elementPosition:__assign$4({},nt),closestEdge:getClosestEdge(j.targetEdge,_e,rt),targetEdge:tt,hideBeak:!st}}function _positionBeak(j,_e){var et=_e.targetRectangle,tt=_getFlankingEdges(_e.targetEdge),rt=tt.positiveEdge,nt=tt.negativeEdge,ot=_getCenterValue(et,_e.targetEdge),it=new Rectangle$1(j/2,_e.elementRectangle.width-j/2,j/2,_e.elementRectangle.height-j/2),st=new Rectangle$1(0,j,0,j);return st=_moveEdge(st,_e.targetEdge*-1,-j/2),st=_centerEdgeToPoint(st,_e.targetEdge*-1,ot-_getRelativeRectEdgeValue(rt,_e.elementRectangle)),_isEdgeInBounds(st,it,rt)?_isEdgeInBounds(st,it,nt)||(st=_alignEdges(st,it,nt)):st=_alignEdges(st,it,rt),st}function _getRectangleFromElement(j){var _e=j.getBoundingClientRect();return new Rectangle$1(_e.left,_e.right,_e.top,_e.bottom)}function _getRectangleFromIRect(j){return new Rectangle$1(j.left,j.right,j.top,j.bottom)}function _getTargetRect(j,_e){var et;if(_e){if(_e.preventDefault){var tt=_e;et=new Rectangle$1(tt.clientX,tt.clientX,tt.clientY,tt.clientY)}else if(_e.getBoundingClientRect)et=_getRectangleFromElement(_e);else{var rt=_e,nt=rt.left||rt.x,ot=rt.top||rt.y,it=rt.right||nt,st=rt.bottom||ot;et=new Rectangle$1(nt,it,ot,st)}if(!_isRectangleWithinBounds(et,j))for(var lt=_getOutOfBoundsEdges(et,j),ut=0,ct=lt;ut=tt&&rt&<.top<=rt&<.bottom>=rt&&(ot={top:lt.top,left:lt.left,right:lt.right,bottom:lt.bottom,width:lt.width,height:lt.height})}return ot}function getBoundsFromTargetWindow(j,_e){return _getBoundsFromTargetWindow(j,_e)}function calculateGapSpace(j,_e,et){return _calculateGapSpace(j,_e,et)}function getRectangleFromTarget(j){return _getRectangleFromTarget(j)}function useAsync(){var j=reactExports.useRef();return j.current||(j.current=new Async),reactExports.useEffect(function(){return function(){var _e;(_e=j.current)===null||_e===void 0||_e.dispose(),j.current=void 0}},[]),j.current}function useConst$1(j){var _e=reactExports.useRef();return _e.current===void 0&&(_e.current={value:typeof j=="function"?j():j}),_e.current.value}function useBoolean(j){var _e=reactExports.useState(j),et=_e[0],tt=_e[1],rt=useConst$1(function(){return function(){tt(!0)}}),nt=useConst$1(function(){return function(){tt(!1)}}),ot=useConst$1(function(){return function(){tt(function(it){return!it})}});return[et,{setTrue:rt,setFalse:nt,toggle:ot}]}function useEventCallback$2(j){var _e=reactExports.useRef(function(){throw new Error("Cannot call an event handler while rendering")});return useIsomorphicLayoutEffect(function(){_e.current=j},[j]),useConst$1(function(){return function(){for(var et=[],tt=0;tt0&<>st&&(it=lt-st>1)}rt!==it&&nt(it)}}),function(){return et.dispose()}}),rt}function defaultFocusRestorer(j){var _e=j.originalElement,et=j.containsFocus;_e&&et&&_e!==getWindow()&&setTimeout(function(){var tt;(tt=_e.focus)===null||tt===void 0||tt.call(_e)},0)}function useRestoreFocus(j,_e){var et=j.onRestoreFocus,tt=et===void 0?defaultFocusRestorer:et,rt=reactExports.useRef(),nt=reactExports.useRef(!1);reactExports.useEffect(function(){return rt.current=getDocument().activeElement,doesElementContainFocus(_e.current)&&(nt.current=!0),function(){var ot;tt==null||tt({originalElement:rt.current,containsFocus:nt.current,documentContainsFocus:((ot=getDocument())===null||ot===void 0?void 0:ot.hasFocus())||!1}),rt.current=void 0}},[]),useOnEvent(_e,"focus",reactExports.useCallback(function(){nt.current=!0},[]),!0),useOnEvent(_e,"blur",reactExports.useCallback(function(ot){_e.current&&ot.relatedTarget&&!_e.current.contains(ot.relatedTarget)&&(nt.current=!1)},[]),!0)}function useHideSiblingNodes(j,_e){var et=String(j["aria-modal"]).toLowerCase()==="true"&&j.enableAriaHiddenSiblings;reactExports.useEffect(function(){if(et&&_e.current){var tt=modalize(_e.current);return tt}},[_e,et])}var Popup=reactExports.forwardRef(function(j,_e){var et=getPropsWithDefaults({shouldRestoreFocus:!0,enableAriaHiddenSiblings:!0},j),tt=reactExports.useRef(),rt=useMergedRefs(tt,_e);useHideSiblingNodes(et,tt),useRestoreFocus(et,tt);var nt=et.role,ot=et.className,it=et.ariaLabel,st=et.ariaLabelledBy,lt=et.ariaDescribedBy,ut=et.style,ct=et.children,dt=et.onDismiss,ft=useScrollbarAsync(et,tt),pt=reactExports.useCallback(function(vt){switch(vt.which){case KeyCodes$1.escape:dt&&(dt(vt),vt.preventDefault(),vt.stopPropagation());break}},[dt]),gt=useWindow();return useOnEvent(gt,"keydown",pt),reactExports.createElement("div",__assign$4({ref:rt},getNativeProps(et,divProperties),{className:ot,role:nt,"aria-label":it,"aria-labelledby":st,"aria-describedby":lt,onKeyDown:pt,style:__assign$4({overflowY:ft?"scroll":void 0,outline:"none"},ut)}),ct)});Popup.displayName="Popup";var _a$6,COMPONENT_NAME$2="CalloutContentBase",ANIMATIONS=(_a$6={},_a$6[RectangleEdge.top]=AnimationClassNames.slideUpIn10,_a$6[RectangleEdge.bottom]=AnimationClassNames.slideDownIn10,_a$6[RectangleEdge.left]=AnimationClassNames.slideLeftIn10,_a$6[RectangleEdge.right]=AnimationClassNames.slideRightIn10,_a$6),BEAK_ORIGIN_POSITION={top:0,left:0},OFF_SCREEN_STYLE={opacity:0,filter:"opacity(0)",pointerEvents:"none"},ARIA_ROLE_ATTRIBUTES=["role","aria-roledescription"],DEFAULT_PROPS$3={preventDismissOnLostFocus:!1,preventDismissOnScroll:!1,preventDismissOnResize:!1,isBeakVisible:!0,beakWidth:16,gapSpace:0,minPagePadding:8,directionalHint:DirectionalHint.bottomAutoEdge},getClassNames$9=classNamesFunction({disableCaching:!0});function useBounds(j,_e,et){var tt=j.bounds,rt=j.minPagePadding,nt=rt===void 0?DEFAULT_PROPS$3.minPagePadding:rt,ot=j.target,it=reactExports.useState(!1),st=it[0],lt=it[1],ut=reactExports.useRef(),ct=reactExports.useCallback(function(){if(!ut.current||st){var ft=typeof tt=="function"?et?tt(ot,et):void 0:tt;!ft&&et&&(ft=getBoundsFromTargetWindow(_e.current,et),ft={top:ft.top+nt,left:ft.left+nt,right:ft.right-nt,bottom:ft.bottom-nt,width:ft.width-nt*2,height:ft.height-nt*2}),ut.current=ft,st&<(!1)}return ut.current},[tt,nt,ot,_e,et,st]),dt=useAsync();return useOnEvent(et,"resize",dt.debounce(function(){lt(!0)},500,{leading:!0})),ct}function useMaxHeight(j,_e,et,tt){var rt,nt=j.calloutMaxHeight,ot=j.finalHeight,it=j.directionalHint,st=j.directionalHintFixed,lt=j.hidden,ut=j.gapSpace,ct=j.beakWidth,dt=j.isBeakVisible,ft=reactExports.useState(),pt=ft[0],gt=ft[1],vt=(rt=tt==null?void 0:tt.elementPosition)!==null&&rt!==void 0?rt:{},bt=vt.top,_t=vt.bottom,xt=et!=null&&et.current?getRectangleFromTarget(et.current):void 0;return reactExports.useEffect(function(){var yt,Et=(yt=_e())!==null&&yt!==void 0?yt:{},St=Et.top,$t=Et.bottom,At;(tt==null?void 0:tt.targetEdge)===RectangleEdge.top&&(xt!=null&&xt.top)&&($t=xt.top-calculateGapSpace(dt,ct,ut)),typeof bt=="number"&&$t?At=$t-bt:typeof _t=="number"&&typeof St=="number"&&$t&&(At=$t-St-_t),!nt&&!lt||nt&&At&&nt>At?gt(At):gt(nt||void 0)},[_t,nt,ot,it,st,_e,lt,tt,bt,ut,ct,dt,xt]),pt}function usePositions(j,_e,et,tt,rt,nt){var ot=reactExports.useState(),it=ot[0],st=ot[1],lt=reactExports.useRef(0),ut=reactExports.useRef(),ct=useAsync(),dt=j.hidden,ft=j.target,pt=j.finalHeight,gt=j.calloutMaxHeight,vt=j.onPositioned,bt=j.directionalHint,_t=j.hideOverflow,xt=j.preferScrollResizePositioning,yt=useWindow(),Et=reactExports.useRef(),St;Et.current!==nt.current&&(Et.current=nt.current,St=nt.current?yt==null?void 0:yt.getComputedStyle(nt.current):void 0);var $t=St==null?void 0:St.overflowY;return reactExports.useEffect(function(){if(dt)st(void 0),lt.current=0;else{var At=ct.requestAnimationFrame(function(){var wt,Ct;if(_e.current&&et){var It=__assign$4(__assign$4({},j),{target:tt.current,bounds:rt()}),Ot=et.cloneNode(!0);Ot.style.maxHeight=gt?"".concat(gt):"",Ot.style.visibility="hidden",(wt=et.parentElement)===null||wt===void 0||wt.appendChild(Ot);var Nt=ut.current===ft?it:void 0,Pt=_t||$t==="clip"||$t==="hidden",Mt=xt&&!Pt,Rt=pt?positionCard(It,_e.current,Ot,Nt):positionCallout(It,_e.current,Ot,Nt,Mt);(Ct=et.parentElement)===null||Ct===void 0||Ct.removeChild(Ot),!it&&Rt||it&&Rt&&!arePositionsEqual(it,Rt)&<.current<5?(lt.current++,st(Rt)):lt.current>0&&(lt.current=0,vt==null||vt(it))}},et);return ut.current=ft,function(){ct.cancelAnimationFrame(At),ut.current=void 0}}},[dt,bt,ct,et,gt,_e,tt,pt,rt,vt,it,j,ft,_t,xt,$t]),it}function useAutoFocus(j,_e,et){var tt=j.hidden,rt=j.setInitialFocus,nt=useAsync(),ot=!!_e;reactExports.useEffect(function(){if(!tt&&rt&&ot&&et){var it=nt.requestAnimationFrame(function(){return focusFirstChild(et)},et);return function(){return nt.cancelAnimationFrame(it)}}},[tt,ot,nt,et,rt])}function useDismissHandlers(j,_e,et,tt,rt){var nt=j.hidden,ot=j.onDismiss,it=j.preventDismissOnScroll,st=j.preventDismissOnResize,lt=j.preventDismissOnLostFocus,ut=j.dismissOnTargetClick,ct=j.shouldDismissOnWindowFocus,dt=j.preventDismissOnEvent,ft=reactExports.useRef(!1),pt=useAsync(),gt=useConst$1([function(){ft.current=!0},function(){ft.current=!1}]),vt=!!_e;return reactExports.useEffect(function(){var bt=function($t){vt&&!it&&yt($t)},_t=function($t){!st&&!(dt&&dt($t))&&(ot==null||ot($t))},xt=function($t){lt||yt($t)},yt=function($t){var At=$t.composedPath?$t.composedPath():[],wt=At.length>0?At[0]:$t.target,Ct=et.current&&!elementContains(et.current,wt);if(Ct&&ft.current){ft.current=!1;return}if(!tt.current&&Ct||$t.target!==rt&&Ct&&(!tt.current||"stopPropagation"in tt.current||ut||wt!==tt.current&&!elementContains(tt.current,wt))){if(dt&&dt($t))return;ot==null||ot($t)}},Et=function($t){ct&&(dt&&!dt($t)||!dt&&!lt)&&!(rt!=null&&rt.document.hasFocus())&&$t.relatedTarget===null&&(ot==null||ot($t))},St=new Promise(function($t){pt.setTimeout(function(){if(!nt&&rt){var At=[on(rt,"scroll",bt,!0),on(rt,"resize",_t,!0),on(rt.document.documentElement,"focus",xt,!0),on(rt.document.documentElement,"click",xt,!0),on(rt,"blur",Et,!0)];$t(function(){At.forEach(function(wt){return wt()})})}},0)});return function(){St.then(function($t){return $t()})}},[nt,pt,et,tt,rt,ot,ct,ut,lt,st,it,vt,dt]),gt}var CalloutContentBase=reactExports.memo(reactExports.forwardRef(function(j,_e){var et=getPropsWithDefaults(DEFAULT_PROPS$3,j),tt=et.styles,rt=et.style,nt=et.ariaLabel,ot=et.ariaDescribedBy,it=et.ariaLabelledBy,st=et.className,lt=et.isBeakVisible,ut=et.children,ct=et.beakWidth,dt=et.calloutWidth,ft=et.calloutMaxWidth,pt=et.calloutMinWidth,gt=et.doNotLayer,vt=et.finalHeight,bt=et.hideOverflow,_t=bt===void 0?!!vt:bt,xt=et.backgroundColor,yt=et.calloutMaxHeight,Et=et.onScroll,St=et.shouldRestoreFocus,$t=St===void 0?!0:St,At=et.target,wt=et.hidden,Ct=et.onLayerMounted,It=et.popupProps,Ot=reactExports.useRef(null),Nt=reactExports.useRef(null),Pt=useMergedRefs(Nt,It==null?void 0:It.ref),Mt=reactExports.useState(null),Rt=Mt[0],Lt=Mt[1],jt=reactExports.useCallback(function(wr){Lt(wr)},[]),Gt=useMergedRefs(Ot,_e),Vt=useTarget(et.target,{current:Rt}),Yt=Vt[0],Xt=Vt[1],rr=useBounds(et,Yt,Xt),cr=usePositions(et,Ot,Rt,Yt,rr,Pt),vr=useMaxHeight(et,rr,Yt,cr),Tr=useDismissHandlers(et,cr,Ot,Yt,Xt),gr=Tr[0],Er=Tr[1],qt=(cr==null?void 0:cr.elementPosition.top)&&(cr==null?void 0:cr.elementPosition.bottom),ir=__assign$4(__assign$4({},cr==null?void 0:cr.elementPosition),{maxHeight:vr});if(qt&&(ir.bottom=void 0),useAutoFocus(et,cr,Rt),reactExports.useEffect(function(){wt||Ct==null||Ct()},[wt]),!Xt)return null;var hr=_t,nr=lt&&!!At,mr=getClassNames$9(tt,{theme:et.theme,className:st,overflowYHidden:hr,calloutWidth:dt,positions:cr,beakWidth:ct,backgroundColor:xt,calloutMaxWidth:ft,calloutMinWidth:pt,doNotLayer:gt}),Ar=__assign$4(__assign$4({maxHeight:yt||"100%"},rt),hr&&{overflowY:"hidden"}),Or=et.hidden?{visibility:"hidden"}:void 0;return reactExports.createElement("div",{ref:Gt,className:mr.container,style:Or},reactExports.createElement("div",__assign$4({},getNativeProps(et,divProperties,ARIA_ROLE_ATTRIBUTES),{className:css$3(mr.root,cr&&cr.targetEdge&&ANIMATIONS[cr.targetEdge]),style:cr?__assign$4({},ir):OFF_SCREEN_STYLE,tabIndex:-1,ref:jt}),nr&&reactExports.createElement("div",{className:mr.beak,style:getBeakPosition(cr)}),nr&&reactExports.createElement("div",{className:mr.beakCurtain}),reactExports.createElement(Popup,__assign$4({role:et.role,"aria-roledescription":et["aria-roledescription"],ariaDescribedBy:ot,ariaLabel:nt,ariaLabelledBy:it,className:mr.calloutMain,onDismiss:et.onDismiss,onMouseDown:gr,onMouseUp:Er,onRestoreFocus:et.onRestoreFocus,onScroll:Et,shouldRestoreFocus:$t,style:Ar},It,{ref:Pt}),ut)))}),function(j,_e){return!_e.shouldUpdateWhenHidden&&j.hidden&&_e.hidden?!0:shallowCompare(j,_e)});function getBeakPosition(j){var _e,et,tt=__assign$4(__assign$4({},(_e=j==null?void 0:j.beakPosition)===null||_e===void 0?void 0:_e.elementPosition),{display:!((et=j==null?void 0:j.beakPosition)===null||et===void 0)&&et.hideBeak?"none":void 0});return!tt.top&&!tt.bottom&&!tt.left&&!tt.right&&(tt.left=BEAK_ORIGIN_POSITION.left,tt.top=BEAK_ORIGIN_POSITION.top),tt}function arePositionsEqual(j,_e){return comparePositions(j.elementPosition,_e.elementPosition)&&comparePositions(j.beakPosition.elementPosition,_e.beakPosition.elementPosition)}function comparePositions(j,_e){for(var et in _e)if(_e.hasOwnProperty(et)){var tt=j[et],rt=_e[et];if(tt!==void 0&&rt!==void 0){if(tt.toFixed(2)!==rt.toFixed(2))return!1}else return!1}return!0}CalloutContentBase.displayName=COMPONENT_NAME$2;function getBeakStyle(j){return{height:j,width:j}}var GlobalClassNames$8={container:"ms-Callout-container",root:"ms-Callout",beak:"ms-Callout-beak",beakCurtain:"ms-Callout-beakCurtain",calloutMain:"ms-Callout-main"},getStyles$9=function(j){var _e,et=j.theme,tt=j.className,rt=j.overflowYHidden,nt=j.calloutWidth,ot=j.beakWidth,it=j.backgroundColor,st=j.calloutMaxWidth,lt=j.calloutMinWidth,ut=j.doNotLayer,ct=getGlobalClassNames(GlobalClassNames$8,et),dt=et.semanticColors,ft=et.effects;return{container:[ct.container,{position:"relative"}],root:[ct.root,et.fonts.medium,{position:"absolute",display:"flex",zIndex:ut?ZIndexes.Layer:void 0,boxSizing:"border-box",borderRadius:ft.roundedCorner2,boxShadow:ft.elevation16,selectors:(_e={},_e[HighContrastSelector]={borderWidth:1,borderStyle:"solid",borderColor:"WindowText"},_e)},focusClear(),tt,!!nt&&{width:nt},!!st&&{maxWidth:st},!!lt&&{minWidth:lt}],beak:[ct.beak,{position:"absolute",backgroundColor:dt.menuBackground,boxShadow:"inherit",border:"inherit",boxSizing:"border-box",transform:"rotate(45deg)"},getBeakStyle(ot),it&&{backgroundColor:it}],beakCurtain:[ct.beakCurtain,{position:"absolute",top:0,right:0,bottom:0,left:0,backgroundColor:dt.menuBackground,borderRadius:ft.roundedCorner2}],calloutMain:[ct.calloutMain,{backgroundColor:dt.menuBackground,overflowX:"hidden",overflowY:"auto",position:"relative",width:"100%",borderRadius:ft.roundedCorner2},rt&&{overflowY:"hidden"},it&&{backgroundColor:it}]}},CalloutContent=styled(CalloutContentBase,getStyles$9,void 0,{scope:"CalloutContent"});const PortalCompatContext=reactExports.createContext(void 0),portalCompatContextDefaultValue=()=>()=>{};PortalCompatContext.Provider;function usePortalCompat(){var j;return(j=reactExports.useContext(PortalCompatContext))!==null&&j!==void 0?j:portalCompatContextDefaultValue}var getClassNames$8=classNamesFunction(),getFabricTheme=memoizeFunction(function(j,_e){return createTheme(__assign$4(__assign$4({},j),{rtl:_e}))}),getDir=function(j){var _e=j.theme,et=j.dir,tt=getRTL$1(_e)?"rtl":"ltr",rt=getRTL$1()?"rtl":"ltr",nt=et||tt;return{rootDir:nt!==tt||nt!==rt?nt:et,needsTheme:nt!==tt}},FabricBase=reactExports.forwardRef(function(j,_e){var et=j.className,tt=j.theme,rt=j.applyTheme,nt=j.applyThemeToBody,ot=j.styles,it=getClassNames$8(ot,{theme:tt,applyTheme:rt,className:et}),st=reactExports.useRef(null);return useApplyThemeToBody(nt,it,st),reactExports.createElement(reactExports.Fragment,null,useRenderedContent(j,it,st,_e))});FabricBase.displayName="FabricBase";function useRenderedContent(j,_e,et,tt){var rt=_e.root,nt=j.as,ot=nt===void 0?"div":nt,it=j.dir,st=j.theme,lt=getNativeProps(j,divProperties,["dir"]),ut=getDir(j),ct=ut.rootDir,dt=ut.needsTheme,ft=reactExports.createElement(FocusRectsProvider,{providerRef:et},reactExports.createElement(ot,__assign$4({dir:ct},lt,{className:rt,ref:useMergedRefs(et,tt)})));return dt&&(ft=reactExports.createElement(Customizer,{settings:{theme:getFabricTheme(st,it==="rtl")}},ft)),ft}function useApplyThemeToBody(j,_e,et){var tt=_e.bodyThemed;return reactExports.useEffect(function(){if(j){var rt=getDocument(et.current);if(rt)return rt.body.classList.add(tt),function(){rt.body.classList.remove(tt)}}},[tt,j,et]),et}var inheritFont={fontFamily:"inherit"},GlobalClassNames$7={root:"ms-Fabric",bodyThemed:"ms-Fabric-bodyThemed"},getStyles$8=function(j){var _e=j.applyTheme,et=j.className,tt=j.preventBlanketFontInheritance,rt=j.theme,nt=getGlobalClassNames(GlobalClassNames$7,rt);return{root:[nt.root,rt.fonts.medium,{color:rt.palette.neutralPrimary},!tt&&{"& button":inheritFont,"& input":inheritFont,"& textarea":inheritFont},_e&&{color:rt.semanticColors.bodyText,backgroundColor:rt.semanticColors.bodyBackground},et],bodyThemed:[{backgroundColor:rt.semanticColors.bodyBackground}]}},Fabric=styled(FabricBase,getStyles$8,void 0,{scope:"Fabric"}),_layersByHostId={},_layerHostsById={},defaultHostId="fluent-default-layer-host",_defaultHostSelector="#".concat(defaultHostId);function registerLayer(j,_e){_layersByHostId[j]||(_layersByHostId[j]=[]),_layersByHostId[j].push(_e);var et=_layerHostsById[j];if(et)for(var tt=0,rt=et;tt=0&&(et.splice(tt,1),et.length===0&&delete _layersByHostId[j])}var rt=_layerHostsById[j];if(rt)for(var nt=0,ot=rt;nt0&&_e.current.naturalHeight>0||_e.current.complete&&SVG_REGEX.test(nt):!1;ct&&st(ImageLoadState.loaded)}}),reactExports.useEffect(function(){et==null||et(it)},[it]);var lt=reactExports.useCallback(function(ct){tt==null||tt(ct),nt&&st(ImageLoadState.loaded)},[nt,tt]),ut=reactExports.useCallback(function(ct){rt==null||rt(ct),st(ImageLoadState.error)},[rt]);return[it,lt,ut]}var ImageBase=reactExports.forwardRef(function(j,_e){var et=reactExports.useRef(),tt=reactExports.useRef(),rt=useLoadState(j,tt),nt=rt[0],ot=rt[1],it=rt[2],st=getNativeProps(j,imgProperties,["width","height"]),lt=j.src,ut=j.alt,ct=j.width,dt=j.height,ft=j.shouldFadeIn,pt=ft===void 0?!0:ft,gt=j.shouldStartVisible,vt=j.className,bt=j.imageFit,_t=j.role,xt=j.maximizeFrame,yt=j.styles,Et=j.theme,St=j.loading,$t=useCoverStyle(j,nt,tt,et),At=getClassNames$6(yt,{theme:Et,className:vt,width:ct,height:dt,maximizeFrame:xt,shouldFadeIn:pt,shouldStartVisible:gt,isLoaded:nt===ImageLoadState.loaded||nt===ImageLoadState.notLoaded&&j.shouldStartVisible,isLandscape:$t===ImageCoverStyle.landscape,isCenter:bt===ImageFit.center,isCenterContain:bt===ImageFit.centerContain,isCenterCover:bt===ImageFit.centerCover,isContain:bt===ImageFit.contain,isCover:bt===ImageFit.cover,isNone:bt===ImageFit.none,isError:nt===ImageLoadState.error,isNotImageFit:bt===void 0});return reactExports.createElement("div",{className:At.root,style:{width:ct,height:dt},ref:et},reactExports.createElement("img",__assign$4({},st,{onLoad:ot,onError:it,key:KEY_PREFIX+j.src||"",className:At.image,ref:useMergedRefs(tt,_e),src:lt,alt:ut,role:_t,loading:St})))});ImageBase.displayName="ImageBase";function useCoverStyle(j,_e,et,tt){var rt=reactExports.useRef(_e),nt=reactExports.useRef();return(nt===void 0||rt.current===ImageLoadState.notLoaded&&_e===ImageLoadState.loaded)&&(nt.current=computeCoverStyle(j,_e,et,tt)),rt.current=_e,nt.current}function computeCoverStyle(j,_e,et,tt){var rt=j.imageFit,nt=j.width,ot=j.height;if(j.coverStyle!==void 0)return j.coverStyle;if(_e===ImageLoadState.loaded&&(rt===ImageFit.cover||rt===ImageFit.contain||rt===ImageFit.centerContain||rt===ImageFit.centerCover)&&et.current&&tt.current){var it=void 0;typeof nt=="number"&&typeof ot=="number"&&rt!==ImageFit.centerContain&&rt!==ImageFit.centerCover?it=nt/ot:it=tt.current.clientWidth/tt.current.clientHeight;var st=et.current.naturalWidth/et.current.naturalHeight;if(st>it)return ImageCoverStyle.landscape}return ImageCoverStyle.portrait}var GlobalClassNames$5={root:"ms-Image",rootMaximizeFrame:"ms-Image--maximizeFrame",image:"ms-Image-image",imageCenter:"ms-Image-image--center",imageContain:"ms-Image-image--contain",imageCover:"ms-Image-image--cover",imageCenterContain:"ms-Image-image--centerContain",imageCenterCover:"ms-Image-image--centerCover",imageNone:"ms-Image-image--none",imageLandscape:"ms-Image-image--landscape",imagePortrait:"ms-Image-image--portrait"},getStyles$6=function(j){var _e=j.className,et=j.width,tt=j.height,rt=j.maximizeFrame,nt=j.isLoaded,ot=j.shouldFadeIn,it=j.shouldStartVisible,st=j.isLandscape,lt=j.isCenter,ut=j.isContain,ct=j.isCover,dt=j.isCenterContain,ft=j.isCenterCover,pt=j.isNone,gt=j.isError,vt=j.isNotImageFit,bt=j.theme,_t=getGlobalClassNames(GlobalClassNames$5,bt),xt={position:"absolute",left:"50% /* @noflip */",top:"50%",transform:"translate(-50%,-50%)"},yt=getWindow(),Et=yt!==void 0&&yt.navigator.msMaxTouchPoints===void 0,St=ut&&st||ct&&!st?{width:"100%",height:"auto"}:{width:"auto",height:"100%"};return{root:[_t.root,bt.fonts.medium,{overflow:"hidden"},rt&&[_t.rootMaximizeFrame,{height:"100%",width:"100%"}],nt&&ot&&!it&&AnimationClassNames.fadeIn400,(lt||ut||ct||dt||ft)&&{position:"relative"},_e],image:[_t.image,{display:"block",opacity:0},nt&&["is-loaded",{opacity:1}],lt&&[_t.imageCenter,xt],ut&&[_t.imageContain,Et&&{width:"100%",height:"100%",objectFit:"contain"},!Et&&St,!Et&&xt],ct&&[_t.imageCover,Et&&{width:"100%",height:"100%",objectFit:"cover"},!Et&&St,!Et&&xt],dt&&[_t.imageCenterContain,st&&{maxWidth:"100%"},!st&&{maxHeight:"100%"},xt],ft&&[_t.imageCenterCover,st&&{maxHeight:"100%"},!st&&{maxWidth:"100%"},xt],pt&&[_t.imageNone,{width:"auto",height:"auto"}],vt&&[!!et&&!tt&&{height:"auto",width:"100%"},!et&&!!tt&&{height:"100%",width:"auto"},!!et&&!!tt&&{height:"100%",width:"100%"}],st&&_t.imageLandscape,!st&&_t.imagePortrait,!nt&&"is-notLoaded",ot&&"is-fadeIn",gt&&"is-error"]}},Image$1=styled(ImageBase,getStyles$6,void 0,{scope:"Image"},!0);Image$1.displayName="Image";var classNames$1=mergeStyleSets({root:{display:"inline-block"},placeholder:["ms-Icon-placeHolder",{width:"1em"}],image:["ms-Icon-imageContainer",{overflow:"hidden"}]}),MS_ICON="ms-Icon",getStyles$5=function(j){var _e=j.className,et=j.iconClassName,tt=j.isPlaceholder,rt=j.isImage,nt=j.styles;return{root:[tt&&classNames$1.placeholder,classNames$1.root,rt&&classNames$1.image,et,_e,nt&&nt.root,nt&&nt.imageContainer]}},getIconContent=memoizeFunction(function(j){var _e=getIcon(j)||{subset:{},code:void 0},et=_e.code,tt=_e.subset;return et?{children:et,iconClassName:tt.className,fontFamily:tt.fontFace&&tt.fontFace.fontFamily,mergeImageProps:tt.mergeImageProps}:null},void 0,!0),FontIcon=function(j){var _e=j.iconName,et=j.className,tt=j.style,rt=tt===void 0?{}:tt,nt=getIconContent(_e)||{},ot=nt.iconClassName,it=nt.children,st=nt.fontFamily,lt=nt.mergeImageProps,ut=getNativeProps(j,htmlElementProperties),ct=j["aria-label"]||j.title,dt=j["aria-label"]||j["aria-labelledby"]||j.title?{role:lt?void 0:"img"}:{"aria-hidden":!0},ft=it;return lt&&typeof it=="object"&&typeof it.props=="object"&&ct&&(ft=reactExports.cloneElement(it,{alt:ct})),reactExports.createElement("i",__assign$4({"data-icon-name":_e},dt,ut,lt?{title:void 0,"aria-label":void 0}:{},{className:css$3(MS_ICON,classNames$1.root,ot,!_e&&classNames$1.placeholder,et),style:__assign$4({fontFamily:st},rt)}),ft)};memoizeFunction(function(j,_e,et){return FontIcon({iconName:j,className:_e,"aria-label":et})});var getClassNames$5=classNamesFunction({cacheSize:100}),IconBase=function(j){__extends$3(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt._onImageLoadingStateChange=function(rt){tt.props.imageProps&&tt.props.imageProps.onLoadingStateChange&&tt.props.imageProps.onLoadingStateChange(rt),rt===ImageLoadState.error&&tt.setState({imageLoadError:!0})},tt.state={imageLoadError:!1},tt}return _e.prototype.render=function(){var et=this.props,tt=et.children,rt=et.className,nt=et.styles,ot=et.iconName,it=et.imageErrorAs,st=et.theme,lt=typeof ot=="string"&&ot.length===0,ut=!!this.props.imageProps||this.props.iconType===IconType.image||this.props.iconType===IconType.Image,ct=getIconContent(ot)||{},dt=ct.iconClassName,ft=ct.children,pt=ct.mergeImageProps,gt=getClassNames$5(nt,{theme:st,className:rt,iconClassName:dt,isImage:ut,isPlaceholder:lt}),vt=ut?"span":"i",bt=getNativeProps(this.props,htmlElementProperties,["aria-label"]),_t=this.state.imageLoadError,xt=__assign$4(__assign$4({},this.props.imageProps),{onLoadingStateChange:this._onImageLoadingStateChange}),yt=_t&&it||Image$1,Et=this.props["aria-label"]||this.props.ariaLabel,St=xt.alt||Et||this.props.title,$t=!!(St||this.props["aria-labelledby"]||xt["aria-label"]||xt["aria-labelledby"]),At=$t?{role:ut||pt?void 0:"img","aria-label":ut||pt?void 0:St}:{"aria-hidden":!0},wt=ft;return pt&&ft&&typeof ft=="object"&&St&&(wt=reactExports.cloneElement(ft,{alt:St})),reactExports.createElement(vt,__assign$4({"data-icon-name":ot},At,bt,pt?{title:void 0,"aria-label":void 0}:{},{className:gt.root}),ut?reactExports.createElement(yt,__assign$4({},xt)):tt||wt)},_e}(reactExports.Component),Icon=styled(IconBase,getStyles$5,void 0,{scope:"Icon"},!0);Icon.displayName="Icon";var FocusZoneTabbableElements={none:0,all:1,inputOnly:2},FocusZoneDirection;(function(j){j[j.vertical=0]="vertical",j[j.horizontal=1]="horizontal",j[j.bidirectional=2]="bidirectional",j[j.domOrder=3]="domOrder"})(FocusZoneDirection||(FocusZoneDirection={}));var IS_FOCUSABLE_ATTRIBUTE="data-is-focusable",IS_ENTER_DISABLED_ATTRIBUTE="data-disable-click-on-enter",FOCUSZONE_ID_ATTRIBUTE="data-focuszone-id",TABINDEX="tabindex",NO_VERTICAL_WRAP="data-no-vertical-wrap",NO_HORIZONTAL_WRAP="data-no-horizontal-wrap",LARGE_DISTANCE_FROM_CENTER=999999999,LARGE_NEGATIVE_DISTANCE_FROM_CENTER=-999999999,focusZoneStyles,focusZoneClass="ms-FocusZone";function raiseClickFromKeyboardEvent(j,_e){var et;typeof MouseEvent=="function"?et=new MouseEvent("click",{ctrlKey:_e==null?void 0:_e.ctrlKey,metaKey:_e==null?void 0:_e.metaKey,shiftKey:_e==null?void 0:_e.shiftKey,altKey:_e==null?void 0:_e.altKey,bubbles:_e==null?void 0:_e.bubbles,cancelable:_e==null?void 0:_e.cancelable}):(et=document.createEvent("MouseEvents"),et.initMouseEvent("click",_e?_e.bubbles:!1,_e?_e.cancelable:!1,window,0,0,0,0,0,_e?_e.ctrlKey:!1,_e?_e.altKey:!1,_e?_e.shiftKey:!1,_e?_e.metaKey:!1,0,null)),j.dispatchEvent(et)}function getRootClass(){return focusZoneStyles||(focusZoneStyles=mergeStyles$1({selectors:{":focus":{outline:"none"}}},focusZoneClass)),focusZoneStyles}var _allInstances={},_outerZones=new Set,ALLOWED_INPUT_TYPES=["text","number","password","email","tel","url","search","textarea"],ALLOW_VIRTUAL_ELEMENTS=!1,FocusZone=function(j){__extends$3(_e,j);function _e(et){var tt=this,rt,nt,ot,it;tt=j.call(this,et)||this,tt._root=reactExports.createRef(),tt._mergedRef=createMergedRef(),tt._onFocus=function(lt){if(!tt._portalContainsElement(lt.target)){var ut=tt.props,ct=ut.onActiveElementChanged,dt=ut.doNotAllowFocusEventToPropagate,ft=ut.stopFocusPropagation,pt=ut.onFocusNotification,gt=ut.onFocus,vt=ut.shouldFocusInnerElementWhenReceivedFocus,bt=ut.defaultTabbableElement,_t=tt._isImmediateDescendantOfZone(lt.target),xt;if(_t)xt=lt.target;else for(var yt=lt.target;yt&&yt!==tt._root.current;){if(isElementTabbable(yt)&&tt._isImmediateDescendantOfZone(yt)){xt=yt;break}yt=getParent(yt,ALLOW_VIRTUAL_ELEMENTS)}if(vt&<.target===tt._root.current){var Et=bt&&typeof bt=="function"&&tt._root.current&&bt(tt._root.current);Et&&isElementTabbable(Et)?(xt=Et,Et.focus()):(tt.focus(!0),tt._activeElement&&(xt=null))}var St=!tt._activeElement;xt&&xt!==tt._activeElement&&((_t||St)&&tt._setFocusAlignment(xt,!0,!0),tt._activeElement=xt,St&&tt._updateTabIndexes()),ct&&ct(tt._activeElement,lt),(ft||dt)&<.stopPropagation(),gt?gt(lt):pt&&pt()}},tt._onBlur=function(){tt._setParkedFocus(!1)},tt._onMouseDown=function(lt){if(!tt._portalContainsElement(lt.target)){var ut=tt.props.disabled;if(!ut){for(var ct=lt.target,dt=[];ct&&ct!==tt._root.current;)dt.push(ct),ct=getParent(ct,ALLOW_VIRTUAL_ELEMENTS);for(;dt.length&&(ct=dt.pop(),ct&&isElementTabbable(ct)&&tt._setActiveElement(ct,!0),!isElementFocusZone(ct)););}}},tt._onKeyDown=function(lt,ut){if(!tt._portalContainsElement(lt.target)){var ct=tt.props,dt=ct.direction,ft=ct.disabled,pt=ct.isInnerZoneKeystroke,gt=ct.pagingSupportDisabled,vt=ct.shouldEnterInnerZone;if(!ft&&(tt.props.onKeyDown&&tt.props.onKeyDown(lt),!lt.isDefaultPrevented()&&!(tt._getDocument().activeElement===tt._root.current&&tt._isInnerZone))){if((vt&&vt(lt)||pt&&pt(lt))&&tt._isImmediateDescendantOfZone(lt.target)){var bt=tt._getFirstInnerZone();if(bt){if(!bt.focus(!0))return}else if(isElementFocusSubZone(lt.target)){if(!tt.focusElement(getNextElement(lt.target,lt.target.firstChild,!0)))return}else return}else{if(lt.altKey)return;switch(lt.which){case KeyCodes$1.space:if(tt._shouldRaiseClicksOnSpace&&tt._tryInvokeClickForFocusable(lt.target,lt))break;return;case KeyCodes$1.left:if(dt!==FocusZoneDirection.vertical&&(tt._preventDefaultWhenHandled(lt),tt._moveFocusLeft(ut)))break;return;case KeyCodes$1.right:if(dt!==FocusZoneDirection.vertical&&(tt._preventDefaultWhenHandled(lt),tt._moveFocusRight(ut)))break;return;case KeyCodes$1.up:if(dt!==FocusZoneDirection.horizontal&&(tt._preventDefaultWhenHandled(lt),tt._moveFocusUp()))break;return;case KeyCodes$1.down:if(dt!==FocusZoneDirection.horizontal&&(tt._preventDefaultWhenHandled(lt),tt._moveFocusDown()))break;return;case KeyCodes$1.pageDown:if(!gt&&tt._moveFocusPaging(!0))break;return;case KeyCodes$1.pageUp:if(!gt&&tt._moveFocusPaging(!1))break;return;case KeyCodes$1.tab:if(tt.props.allowTabKey||tt.props.handleTabKey===FocusZoneTabbableElements.all||tt.props.handleTabKey===FocusZoneTabbableElements.inputOnly&&tt._isElementInput(lt.target)){var _t=!1;if(tt._processingTabKey=!0,dt===FocusZoneDirection.vertical||!tt._shouldWrapFocus(tt._activeElement,NO_HORIZONTAL_WRAP))_t=lt.shiftKey?tt._moveFocusUp():tt._moveFocusDown();else{var xt=getRTL$1(ut)?!lt.shiftKey:lt.shiftKey;_t=xt?tt._moveFocusLeft(ut):tt._moveFocusRight(ut)}if(tt._processingTabKey=!1,_t)break;tt.props.shouldResetActiveElementWhenTabFromZone&&(tt._activeElement=null)}return;case KeyCodes$1.home:if(tt._isContentEditableElement(lt.target)||tt._isElementInput(lt.target)&&!tt._shouldInputLoseFocus(lt.target,!1))return!1;var yt=tt._root.current&&tt._root.current.firstChild;if(tt._root.current&&yt&&tt.focusElement(getNextElement(tt._root.current,yt,!0)))break;return;case KeyCodes$1.end:if(tt._isContentEditableElement(lt.target)||tt._isElementInput(lt.target)&&!tt._shouldInputLoseFocus(lt.target,!0))return!1;var Et=tt._root.current&&tt._root.current.lastChild;if(tt._root.current&&tt.focusElement(getPreviousElement(tt._root.current,Et,!0,!0,!0)))break;return;case KeyCodes$1.enter:if(tt._shouldRaiseClicksOnEnter&&tt._tryInvokeClickForFocusable(lt.target,lt))break;return;default:return}}lt.preventDefault(),lt.stopPropagation()}}},tt._getHorizontalDistanceFromCenter=function(lt,ut,ct){var dt=tt._focusAlignment.left||tt._focusAlignment.x||0,ft=Math.floor(ct.top),pt=Math.floor(ut.bottom),gt=Math.floor(ct.bottom),vt=Math.floor(ut.top),bt=lt&&ft>pt,_t=!lt&>=ct.left&&dt<=ct.left+ct.width?0:Math.abs(ct.left+ct.width/2-dt):tt._shouldWrapFocus(tt._activeElement,NO_VERTICAL_WRAP)?LARGE_DISTANCE_FROM_CENTER:LARGE_NEGATIVE_DISTANCE_FROM_CENTER},initializeComponentRef(tt),tt._id=getId("FocusZone"),tt._focusAlignment={left:0,top:0},tt._processingTabKey=!1;var st=(nt=(rt=et.shouldRaiseClicks)!==null&&rt!==void 0?rt:_e.defaultProps.shouldRaiseClicks)!==null&&nt!==void 0?nt:!0;return tt._shouldRaiseClicksOnEnter=(ot=et.shouldRaiseClicksOnEnter)!==null&&ot!==void 0?ot:st,tt._shouldRaiseClicksOnSpace=(it=et.shouldRaiseClicksOnSpace)!==null&&it!==void 0?it:st,tt}return _e.getOuterZones=function(){return _outerZones.size},_e._onKeyDownCapture=function(et){et.which===KeyCodes$1.tab&&_outerZones.forEach(function(tt){return tt._updateTabIndexes()})},_e.prototype.componentDidMount=function(){var et=this._root.current;if(_allInstances[this._id]=this,et){for(var tt=getParent(et,ALLOW_VIRTUAL_ELEMENTS);tt&&tt!==this._getDocument().body&&tt.nodeType===1;){if(isElementFocusZone(tt)){this._isInnerZone=!0;break}tt=getParent(tt,ALLOW_VIRTUAL_ELEMENTS)}this._isInnerZone||(_outerZones.add(this),this._root.current&&this._root.current.addEventListener("keydown",_e._onKeyDownCapture,!0)),this._root.current&&this._root.current.addEventListener("blur",this._onBlur,!0),this._updateTabIndexes(),this.props.defaultTabbableElement&&typeof this.props.defaultTabbableElement=="string"?this._activeElement=this._getDocument().querySelector(this.props.defaultTabbableElement):this.props.defaultActiveElement&&(this._activeElement=this._getDocument().querySelector(this.props.defaultActiveElement)),this.props.shouldFocusOnMount&&this.focus()}},_e.prototype.componentDidUpdate=function(){var et=this._root.current,tt=this._getDocument();if((this._activeElement&&!elementContains(this._root.current,this._activeElement,ALLOW_VIRTUAL_ELEMENTS)||this._defaultFocusElement&&!elementContains(this._root.current,this._defaultFocusElement,ALLOW_VIRTUAL_ELEMENTS))&&(this._activeElement=null,this._defaultFocusElement=null,this._updateTabIndexes()),!this.props.preventFocusRestoration&&tt&&this._lastIndexPath&&(tt.activeElement===tt.body||tt.activeElement===null||tt.activeElement===et)){var rt=getFocusableByIndexPath(et,this._lastIndexPath);rt?(this._setActiveElement(rt,!0),rt.focus(),this._setParkedFocus(!1)):this._setParkedFocus(!0)}},_e.prototype.componentWillUnmount=function(){delete _allInstances[this._id],this._isInnerZone||(_outerZones.delete(this),this._root.current&&this._root.current.removeEventListener("keydown",_e._onKeyDownCapture,!0)),this._root.current&&this._root.current.removeEventListener("blur",this._onBlur,!0),this._activeElement=null,this._defaultFocusElement=null},_e.prototype.render=function(){var et=this,tt=this.props,rt=tt.as,nt=tt.elementType,ot=tt.rootProps,it=tt.ariaDescribedBy,st=tt.ariaLabelledBy,lt=tt.className,ut=getNativeProps(this.props,htmlElementProperties),ct=rt||nt||"div";this._evaluateFocusBeforeRender();var dt=getTheme();return reactExports.createElement(ct,__assign$4({"aria-labelledby":st,"aria-describedby":it},ut,ot,{className:css$3(getRootClass(),lt),ref:this._mergedRef(this.props.elementRef,this._root),"data-focuszone-id":this._id,onKeyDown:function(ft){return et._onKeyDown(ft,dt)},onFocus:this._onFocus,onMouseDownCapture:this._onMouseDown}),this.props.children)},_e.prototype.focus=function(et,tt){if(et===void 0&&(et=!1),tt===void 0&&(tt=!1),this._root.current)if(!et&&this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE)==="true"&&this._isInnerZone){var rt=this._getOwnerZone(this._root.current);if(rt!==this._root.current){var nt=_allInstances[rt.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];return!!nt&&nt.focusElement(this._root.current)}return!1}else{if(!et&&this._activeElement&&elementContains(this._root.current,this._activeElement)&&isElementTabbable(this._activeElement)&&(!tt||isElementVisibleAndNotHidden(this._activeElement)))return this._activeElement.focus(),!0;var ot=this._root.current.firstChild;return this.focusElement(getNextElement(this._root.current,ot,!0,void 0,void 0,void 0,void 0,void 0,tt))}return!1},_e.prototype.focusLast=function(){if(this._root.current){var et=this._root.current&&this._root.current.lastChild;return this.focusElement(getPreviousElement(this._root.current,et,!0,!0,!0))}return!1},_e.prototype.focusElement=function(et,tt){var rt=this.props,nt=rt.onBeforeFocus,ot=rt.shouldReceiveFocus;return ot&&!ot(et)||nt&&!nt(et)?!1:et?(this._setActiveElement(et,tt),this._activeElement&&this._activeElement.focus(),!0):!1},_e.prototype.setFocusAlignment=function(et){this._focusAlignment=et},Object.defineProperty(_e.prototype,"defaultFocusElement",{get:function(){return this._defaultFocusElement},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"activeElement",{get:function(){return this._activeElement},enumerable:!1,configurable:!0}),_e.prototype._evaluateFocusBeforeRender=function(){var et=this._root.current,tt=this._getDocument();if(tt){var rt=tt.activeElement;if(rt!==et){var nt=elementContains(et,rt,!1);this._lastIndexPath=nt?getElementIndexPath(et,rt):void 0}}},_e.prototype._setParkedFocus=function(et){var tt=this._root.current;tt&&this._isParked!==et&&(this._isParked=et,et?(this.props.allowFocusRoot||(this._parkedTabIndex=tt.getAttribute("tabindex"),tt.setAttribute("tabindex","-1")),tt.focus()):this.props.allowFocusRoot||(this._parkedTabIndex?(tt.setAttribute("tabindex",this._parkedTabIndex),this._parkedTabIndex=void 0):tt.removeAttribute("tabindex")))},_e.prototype._setActiveElement=function(et,tt){var rt=this._activeElement;this._activeElement=et,rt&&(isElementFocusZone(rt)&&this._updateTabIndexes(rt),rt.tabIndex=-1),this._activeElement&&((!this._focusAlignment||tt)&&this._setFocusAlignment(et,!0,!0),this._activeElement.tabIndex=0)},_e.prototype._preventDefaultWhenHandled=function(et){this.props.preventDefaultWhenHandled&&et.preventDefault()},_e.prototype._tryInvokeClickForFocusable=function(et,tt){var rt=et;if(rt===this._root.current)return!1;do{if(rt.tagName==="BUTTON"||rt.tagName==="A"||rt.tagName==="INPUT"||rt.tagName==="TEXTAREA"||rt.tagName==="SUMMARY")return!1;if(this._isImmediateDescendantOfZone(rt)&&rt.getAttribute(IS_FOCUSABLE_ATTRIBUTE)==="true"&&rt.getAttribute(IS_ENTER_DISABLED_ATTRIBUTE)!=="true")return raiseClickFromKeyboardEvent(rt,tt),!0;rt=getParent(rt,ALLOW_VIRTUAL_ELEMENTS)}while(rt!==this._root.current);return!1},_e.prototype._getFirstInnerZone=function(et){if(et=et||this._activeElement||this._root.current,!et)return null;if(isElementFocusZone(et))return _allInstances[et.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];for(var tt=et.firstElementChild;tt;){if(isElementFocusZone(tt))return _allInstances[tt.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];var rt=this._getFirstInnerZone(tt);if(rt)return rt;tt=tt.nextElementSibling}return null},_e.prototype._moveFocus=function(et,tt,rt,nt){nt===void 0&&(nt=!0);var ot=this._activeElement,it=-1,st=void 0,lt=!1,ut=this.props.direction===FocusZoneDirection.bidirectional;if(!ot||!this._root.current||this._isElementInput(ot)&&!this._shouldInputLoseFocus(ot,et))return!1;var ct=ut?ot.getBoundingClientRect():null;do if(ot=et?getNextElement(this._root.current,ot):getPreviousElement(this._root.current,ot),ut){if(ot){var dt=ot.getBoundingClientRect(),ft=tt(ct,dt);if(ft===-1&&it===-1){st=ot;break}if(ft>-1&&(it===-1||ft=0&&ft<0)break}}else{st=ot;break}while(ot);if(st&&st!==this._activeElement)lt=!0,this.focusElement(st);else if(this.props.isCircularNavigation&&nt)return et?this.focusElement(getNextElement(this._root.current,this._root.current.firstElementChild,!0)):this.focusElement(getPreviousElement(this._root.current,this._root.current.lastElementChild,!0,!0,!0));return lt},_e.prototype._moveFocusDown=function(){var et=this,tt=-1,rt=this._focusAlignment.left||this._focusAlignment.x||0;return this._moveFocus(!0,function(nt,ot){var it=-1,st=Math.floor(ot.top),lt=Math.floor(nt.bottom);return st=lt||st===tt)&&(tt=st,rt>=ot.left&&rt<=ot.left+ot.width?it=0:it=Math.abs(ot.left+ot.width/2-rt)),it)})?(this._setFocusAlignment(this._activeElement,!1,!0),!0):!1},_e.prototype._moveFocusUp=function(){var et=this,tt=-1,rt=this._focusAlignment.left||this._focusAlignment.x||0;return this._moveFocus(!1,function(nt,ot){var it=-1,st=Math.floor(ot.bottom),lt=Math.floor(ot.top),ut=Math.floor(nt.top);return st>ut?et._shouldWrapFocus(et._activeElement,NO_VERTICAL_WRAP)?LARGE_DISTANCE_FROM_CENTER:LARGE_NEGATIVE_DISTANCE_FROM_CENTER:((tt===-1&&st<=ut||lt===tt)&&(tt=lt,rt>=ot.left&&rt<=ot.left+ot.width?it=0:it=Math.abs(ot.left+ot.width/2-rt)),it)})?(this._setFocusAlignment(this._activeElement,!1,!0),!0):!1},_e.prototype._moveFocusLeft=function(et){var tt=this,rt=this._shouldWrapFocus(this._activeElement,NO_HORIZONTAL_WRAP);return this._moveFocus(getRTL$1(et),function(nt,ot){var it=-1,st;return getRTL$1(et)?st=parseFloat(ot.top.toFixed(3))parseFloat(nt.top.toFixed(3)),st&&ot.right<=nt.right&&tt.props.direction!==FocusZoneDirection.vertical?it=nt.right-ot.right:rt||(it=LARGE_NEGATIVE_DISTANCE_FROM_CENTER),it},void 0,rt)?(this._setFocusAlignment(this._activeElement,!0,!1),!0):!1},_e.prototype._moveFocusRight=function(et){var tt=this,rt=this._shouldWrapFocus(this._activeElement,NO_HORIZONTAL_WRAP);return this._moveFocus(!getRTL$1(et),function(nt,ot){var it=-1,st;return getRTL$1(et)?st=parseFloat(ot.bottom.toFixed(3))>parseFloat(nt.top.toFixed(3)):st=parseFloat(ot.top.toFixed(3))=nt.left&&tt.props.direction!==FocusZoneDirection.vertical?it=ot.left-nt.left:rt||(it=LARGE_NEGATIVE_DISTANCE_FROM_CENTER),it},void 0,rt)?(this._setFocusAlignment(this._activeElement,!0,!1),!0):!1},_e.prototype._moveFocusPaging=function(et,tt){tt===void 0&&(tt=!0);var rt=this._activeElement;if(!rt||!this._root.current||this._isElementInput(rt)&&!this._shouldInputLoseFocus(rt,et))return!1;var nt=findScrollableParent(rt);if(!nt)return!1;var ot=-1,it=void 0,st=-1,lt=-1,ut=nt.clientHeight,ct=rt.getBoundingClientRect();do if(rt=et?getNextElement(this._root.current,rt):getPreviousElement(this._root.current,rt),rt){var dt=rt.getBoundingClientRect(),ft=Math.floor(dt.top),pt=Math.floor(ct.bottom),gt=Math.floor(dt.bottom),vt=Math.floor(ct.top),bt=this._getHorizontalDistanceFromCenter(et,ct,dt),_t=et&&ft>pt+ut,xt=!et&>-1&&(et&&ft>st?(st=ft,ot=bt,it=rt):!et&>-1){var rt=et.selectionStart,nt=et.selectionEnd,ot=rt!==nt,it=et.value,st=et.readOnly;if(ot||rt>0&&!tt&&!st||rt!==it.length&&tt&&!st||this.props.handleTabKey&&!(this.props.shouldInputLoseFocusOnArrowKey&&this.props.shouldInputLoseFocusOnArrowKey(et)))return!1}return!0},_e.prototype._shouldWrapFocus=function(et,tt){return this.props.checkForNoWrap?shouldWrapFocus(et,tt):!0},_e.prototype._portalContainsElement=function(et){return et&&!!this._root.current&&portalContainsElement(et,this._root.current)},_e.prototype._getDocument=function(){return getDocument(this._root.current)},_e.defaultProps={isCircularNavigation:!1,direction:FocusZoneDirection.bidirectional,shouldRaiseClicks:!0},_e}(reactExports.Component),ContextualMenuItemType;(function(j){j[j.Normal=0]="Normal",j[j.Divider=1]="Divider",j[j.Header=2]="Header",j[j.Section=3]="Section"})(ContextualMenuItemType||(ContextualMenuItemType={}));function getIsChecked(j){return j.canCheck?!!(j.isChecked||j.checked):typeof j.isChecked=="boolean"?j.isChecked:typeof j.checked=="boolean"?j.checked:null}function hasSubmenu(j){return!!(j.subMenuProps||j.items)}function isItemDisabled(j){return!!(j.isDisabled||j.disabled)}function getMenuItemAriaRole(j){var _e=getIsChecked(j),et=_e!==null;return et?"menuitemcheckbox":"menuitem"}var defaultIconRenderer=function(j){var _e=j.item,et=j.classNames,tt=_e.iconProps;return reactExports.createElement(Icon,__assign$4({},tt,{className:et.icon}))},renderItemIcon=function(j){var _e=j.item,et=j.hasIcons;return et?_e.onRenderIcon?_e.onRenderIcon(j,defaultIconRenderer):defaultIconRenderer(j):null},renderCheckMarkIcon=function(j){var _e=j.onCheckmarkClick,et=j.item,tt=j.classNames,rt=getIsChecked(et);if(_e){var nt=function(ot){return _e(et,ot)};return reactExports.createElement(Icon,{iconName:et.canCheck!==!1&&rt?"CheckMark":"",className:tt.checkmarkIcon,onClick:nt})}return null},renderItemName=function(j){var _e=j.item,et=j.classNames;return _e.text||_e.name?reactExports.createElement("span",{className:et.label},_e.text||_e.name):null},renderSecondaryText=function(j){var _e=j.item,et=j.classNames;return _e.secondaryText?reactExports.createElement("span",{className:et.secondaryText},_e.secondaryText):null},renderSubMenuIcon=function(j){var _e=j.item,et=j.classNames,tt=j.theme;return hasSubmenu(_e)?reactExports.createElement(Icon,__assign$4({iconName:getRTL$1(tt)?"ChevronLeft":"ChevronRight"},_e.submenuIconProps,{className:et.subMenuIcon})):null},ContextualMenuItemBase=function(j){__extends$3(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt.openSubMenu=function(){var rt=tt.props,nt=rt.item,ot=rt.openSubMenu,it=rt.getSubmenuTarget;if(it){var st=it();hasSubmenu(nt)&&ot&&st&&ot(nt,st)}},tt.dismissSubMenu=function(){var rt=tt.props,nt=rt.item,ot=rt.dismissSubMenu;hasSubmenu(nt)&&ot&&ot()},tt.dismissMenu=function(rt){var nt=tt.props.dismissMenu;nt&&nt(void 0,rt)},initializeComponentRef(tt),tt}return _e.prototype.render=function(){var et=this.props,tt=et.item,rt=et.classNames,nt=tt.onRenderContent||this._renderLayout;return reactExports.createElement("div",{className:tt.split?rt.linkContentMenu:rt.linkContent},nt(this.props,{renderCheckMarkIcon,renderItemIcon,renderItemName,renderSecondaryText,renderSubMenuIcon}))},_e.prototype._renderLayout=function(et,tt){return reactExports.createElement(reactExports.Fragment,null,tt.renderCheckMarkIcon(et),tt.renderItemIcon(et),tt.renderItemName(et),tt.renderSecondaryText(et),tt.renderSubMenuIcon(et))},_e}(reactExports.Component),getDividerClassNames=memoizeFunction(function(j){return mergeStyleSets({wrapper:{display:"inline-flex",height:"100%",alignItems:"center"},divider:{width:1,height:"100%",backgroundColor:j.palette.neutralTertiaryAlt}})}),CONTEXTUAL_MENU_ITEM_HEIGHT=36,MediumScreenSelector$1=getScreenSelector(0,ScreenWidthMaxMedium),getMenuItemStyles=memoizeFunction(function(j){var _e,et,tt,rt,nt,ot=j.semanticColors,it=j.fonts,st=j.palette,lt=ot.menuItemBackgroundHovered,ut=ot.menuItemTextHovered,ct=ot.menuItemBackgroundPressed,dt=ot.bodyDivider,ft={item:[it.medium,{color:ot.bodyText,position:"relative",boxSizing:"border-box"}],divider:{display:"block",height:"1px",backgroundColor:dt,position:"relative"},root:[getFocusStyle(j),it.medium,{color:ot.bodyText,backgroundColor:"transparent",border:"none",width:"100%",height:CONTEXTUAL_MENU_ITEM_HEIGHT,lineHeight:CONTEXTUAL_MENU_ITEM_HEIGHT,display:"block",cursor:"pointer",padding:"0px 8px 0 4px",textAlign:"left"}],rootDisabled:{color:ot.disabledBodyText,cursor:"default",pointerEvents:"none",selectors:(_e={},_e[HighContrastSelector]={color:"GrayText",opacity:1},_e)},rootHovered:{backgroundColor:lt,color:ut,selectors:{".ms-ContextualMenu-icon":{color:st.themeDarkAlt},".ms-ContextualMenu-submenuIcon":{color:st.neutralPrimary}}},rootFocused:{backgroundColor:st.white},rootChecked:{selectors:{".ms-ContextualMenu-checkmarkIcon":{color:st.neutralPrimary}}},rootPressed:{backgroundColor:ct,selectors:{".ms-ContextualMenu-icon":{color:st.themeDark},".ms-ContextualMenu-submenuIcon":{color:st.neutralPrimary}}},rootExpanded:{backgroundColor:ct,color:ot.bodyTextChecked,selectors:(et={".ms-ContextualMenu-submenuIcon":(tt={},tt[HighContrastSelector]={color:"inherit"},tt)},et[HighContrastSelector]=__assign$4({},getHighContrastNoAdjustStyle()),et)},linkContent:{whiteSpace:"nowrap",height:"inherit",display:"flex",alignItems:"center",maxWidth:"100%"},anchorLink:{padding:"0px 8px 0 4px",textRendering:"auto",color:"inherit",letterSpacing:"normal",wordSpacing:"normal",textTransform:"none",textIndent:"0px",textShadow:"none",textDecoration:"none",boxSizing:"border-box"},label:{margin:"0 4px",verticalAlign:"middle",display:"inline-block",flexGrow:"1",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},secondaryText:{color:j.palette.neutralSecondary,paddingLeft:"20px",textAlign:"right"},icon:{display:"inline-block",minHeight:"1px",maxHeight:CONTEXTUAL_MENU_ITEM_HEIGHT,fontSize:IconFontSizes.medium,width:IconFontSizes.medium,margin:"0 4px",verticalAlign:"middle",flexShrink:"0",selectors:(rt={},rt[MediumScreenSelector$1]={fontSize:IconFontSizes.large,width:IconFontSizes.large},rt)},iconColor:{color:ot.menuIcon},iconDisabled:{color:ot.disabledBodyText},checkmarkIcon:{color:ot.bodySubtext},subMenuIcon:{height:CONTEXTUAL_MENU_ITEM_HEIGHT,lineHeight:CONTEXTUAL_MENU_ITEM_HEIGHT,color:st.neutralSecondary,textAlign:"center",display:"inline-block",verticalAlign:"middle",flexShrink:"0",fontSize:IconFontSizes.small,selectors:(nt={":hover":{color:st.neutralPrimary},":active":{color:st.neutralPrimary}},nt[MediumScreenSelector$1]={fontSize:IconFontSizes.medium},nt)},splitButtonFlexContainer:[getFocusStyle(j),{display:"flex",height:CONTEXTUAL_MENU_ITEM_HEIGHT,flexWrap:"nowrap",justifyContent:"center",alignItems:"flex-start"}]};return concatStyleSets(ft)}),CONTEXTUAL_SPLIT_MENU_MINWIDTH="28px",MediumScreenSelector=getScreenSelector(0,ScreenWidthMaxMedium),getSplitButtonVerticalDividerClassNames=memoizeFunction(function(j){var _e;return mergeStyleSets(getDividerClassNames(j),{wrapper:{position:"absolute",right:28,selectors:(_e={},_e[MediumScreenSelector]={right:32},_e)},divider:{height:16,width:1}})}),GlobalClassNames$4={item:"ms-ContextualMenu-item",divider:"ms-ContextualMenu-divider",root:"ms-ContextualMenu-link",isChecked:"is-checked",isExpanded:"is-expanded",isDisabled:"is-disabled",linkContent:"ms-ContextualMenu-linkContent",linkContentMenu:"ms-ContextualMenu-linkContent",icon:"ms-ContextualMenu-icon",iconColor:"ms-ContextualMenu-iconColor",checkmarkIcon:"ms-ContextualMenu-checkmarkIcon",subMenuIcon:"ms-ContextualMenu-submenuIcon",label:"ms-ContextualMenu-itemText",secondaryText:"ms-ContextualMenu-secondaryText",splitMenu:"ms-ContextualMenu-splitMenu",screenReaderText:"ms-ContextualMenu-screenReaderText"},getItemClassNames=memoizeFunction(function(j,_e,et,tt,rt,nt,ot,it,st,lt,ut,ct){var dt,ft,pt,gt,vt=getMenuItemStyles(j),bt=getGlobalClassNames(GlobalClassNames$4,j);return mergeStyleSets({item:[bt.item,vt.item,ot],divider:[bt.divider,vt.divider,it],root:[bt.root,vt.root,tt&&[bt.isChecked,vt.rootChecked],rt&&vt.anchorLink,et&&[bt.isExpanded,vt.rootExpanded],_e&&[bt.isDisabled,vt.rootDisabled],!_e&&!et&&[{selectors:(dt={":hover":vt.rootHovered,":active":vt.rootPressed},dt[".".concat(IsFocusVisibleClassName," &:focus, .").concat(IsFocusVisibleClassName," &:focus:hover")]=vt.rootFocused,dt[".".concat(IsFocusVisibleClassName," &:hover")]={background:"inherit;"},dt)}],ct],splitPrimary:[vt.root,{width:"calc(100% - ".concat(CONTEXTUAL_SPLIT_MENU_MINWIDTH,")")},tt&&["is-checked",vt.rootChecked],(_e||ut)&&["is-disabled",vt.rootDisabled],!(_e||ut)&&!tt&&[{selectors:(ft={":hover":vt.rootHovered},ft[":hover ~ .".concat(bt.splitMenu)]=vt.rootHovered,ft[":active"]=vt.rootPressed,ft[".".concat(IsFocusVisibleClassName," &:focus, .").concat(IsFocusVisibleClassName," &:focus:hover")]=vt.rootFocused,ft[".".concat(IsFocusVisibleClassName," &:hover")]={background:"inherit;"},ft)}]],splitMenu:[bt.splitMenu,vt.root,{flexBasis:"0",padding:"0 8px",minWidth:CONTEXTUAL_SPLIT_MENU_MINWIDTH},et&&["is-expanded",vt.rootExpanded],_e&&["is-disabled",vt.rootDisabled],!_e&&!et&&[{selectors:(pt={":hover":vt.rootHovered,":active":vt.rootPressed},pt[".".concat(IsFocusVisibleClassName," &:focus, .").concat(IsFocusVisibleClassName," &:focus:hover")]=vt.rootFocused,pt[".".concat(IsFocusVisibleClassName," &:hover")]={background:"inherit;"},pt)}]],anchorLink:vt.anchorLink,linkContent:[bt.linkContent,vt.linkContent],linkContentMenu:[bt.linkContentMenu,vt.linkContent,{justifyContent:"center"}],icon:[bt.icon,nt&&vt.iconColor,vt.icon,st,_e&&[bt.isDisabled,vt.iconDisabled]],iconColor:vt.iconColor,checkmarkIcon:[bt.checkmarkIcon,nt&&vt.checkmarkIcon,vt.icon,st],subMenuIcon:[bt.subMenuIcon,vt.subMenuIcon,lt,et&&{color:j.palette.neutralPrimary},_e&&[vt.iconDisabled]],label:[bt.label,vt.label],secondaryText:[bt.secondaryText,vt.secondaryText],splitContainer:[vt.splitButtonFlexContainer,!_e&&!tt&&[{selectors:(gt={},gt[".".concat(IsFocusVisibleClassName," &:focus, .").concat(IsFocusVisibleClassName," &:focus:hover")]=vt.rootFocused,gt)}]],screenReaderText:[bt.screenReaderText,vt.screenReaderText,hiddenContentStyle,{visibility:"hidden"}]})}),getItemStyles=function(j){var _e=j.theme,et=j.disabled,tt=j.expanded,rt=j.checked,nt=j.isAnchorLink,ot=j.knownIcon,it=j.itemClassName,st=j.dividerClassName,lt=j.iconClassName,ut=j.subMenuClassName,ct=j.primaryDisabled,dt=j.className;return getItemClassNames(_e,et,tt,rt,nt,ot,it,st,lt,ut,ct,dt)},ContextualMenuItem=styled(ContextualMenuItemBase,getItemStyles,void 0,{scope:"ContextualMenuItem"}),ContextualMenuItemWrapper=function(j){__extends$3(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt._onItemMouseEnter=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseEnter;it&&it(ot,rt,rt.currentTarget)},tt._onItemClick=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemClickBase;it&&it(ot,rt,rt.currentTarget)},tt._onItemMouseLeave=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseLeave;it&&it(ot,rt)},tt._onItemKeyDown=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemKeyDown;it&&it(ot,rt)},tt._onItemMouseMove=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseMove;it&&it(ot,rt,rt.currentTarget)},tt._getSubmenuTarget=function(){},initializeComponentRef(tt),tt}return _e.prototype.shouldComponentUpdate=function(et){return!shallowCompare(et,this.props)},_e}(reactExports.Component),KTP_PREFIX="ktp",KTP_SEPARATOR="-",DATAKTP_TARGET="data-ktp-target",DATAKTP_EXECUTE_TARGET="data-ktp-execute-target",KTP_LAYER_ID="ktp-layer-id",KeytipEvents;(function(j){j.KEYTIP_ADDED="keytipAdded",j.KEYTIP_REMOVED="keytipRemoved",j.KEYTIP_UPDATED="keytipUpdated",j.PERSISTED_KEYTIP_ADDED="persistedKeytipAdded",j.PERSISTED_KEYTIP_REMOVED="persistedKeytipRemoved",j.PERSISTED_KEYTIP_EXECUTE="persistedKeytipExecute",j.ENTER_KEYTIP_MODE="enterKeytipMode",j.EXIT_KEYTIP_MODE="exitKeytipMode"})(KeytipEvents||(KeytipEvents={}));var KeytipManager=function(){function j(){this.keytips={},this.persistedKeytips={},this.sequenceMapping={},this.inKeytipMode=!1,this.shouldEnterKeytipMode=!0,this.delayUpdatingKeytipChange=!1}return j.getInstance=function(){return this._instance},j.prototype.init=function(_e){this.delayUpdatingKeytipChange=_e},j.prototype.register=function(_e,et){et===void 0&&(et=!1);var tt=_e;et||(tt=this.addParentOverflow(_e),this.sequenceMapping[tt.keySequences.toString()]=tt);var rt=this._getUniqueKtp(tt);if(et?this.persistedKeytips[rt.uniqueID]=rt:this.keytips[rt.uniqueID]=rt,this.inKeytipMode||!this.delayUpdatingKeytipChange){var nt=et?KeytipEvents.PERSISTED_KEYTIP_ADDED:KeytipEvents.KEYTIP_ADDED;EventGroup.raise(this,nt,{keytip:tt,uniqueID:rt.uniqueID})}return rt.uniqueID},j.prototype.update=function(_e,et){var tt=this.addParentOverflow(_e),rt=this._getUniqueKtp(tt,et),nt=this.keytips[et];nt&&(rt.keytip.visible=nt.keytip.visible,this.keytips[et]=rt,delete this.sequenceMapping[nt.keytip.keySequences.toString()],this.sequenceMapping[rt.keytip.keySequences.toString()]=rt.keytip,(this.inKeytipMode||!this.delayUpdatingKeytipChange)&&EventGroup.raise(this,KeytipEvents.KEYTIP_UPDATED,{keytip:rt.keytip,uniqueID:rt.uniqueID}))},j.prototype.unregister=function(_e,et,tt){tt===void 0&&(tt=!1),tt?delete this.persistedKeytips[et]:delete this.keytips[et],!tt&&delete this.sequenceMapping[_e.keySequences.toString()];var rt=tt?KeytipEvents.PERSISTED_KEYTIP_REMOVED:KeytipEvents.KEYTIP_REMOVED;(this.inKeytipMode||!this.delayUpdatingKeytipChange)&&EventGroup.raise(this,rt,{keytip:_e,uniqueID:et})},j.prototype.enterKeytipMode=function(){EventGroup.raise(this,KeytipEvents.ENTER_KEYTIP_MODE)},j.prototype.exitKeytipMode=function(){EventGroup.raise(this,KeytipEvents.EXIT_KEYTIP_MODE)},j.prototype.getKeytips=function(){var _e=this;return Object.keys(this.keytips).map(function(et){return _e.keytips[et].keytip})},j.prototype.addParentOverflow=function(_e){var et=__spreadArray$1([],_e.keySequences,!0);if(et.pop(),et.length!==0){var tt=this.sequenceMapping[et.toString()];if(tt&&tt.overflowSetSequence)return __assign$4(__assign$4({},_e),{overflowSetSequence:tt.overflowSetSequence})}return _e},j.prototype.menuExecute=function(_e,et){EventGroup.raise(this,KeytipEvents.PERSISTED_KEYTIP_EXECUTE,{overflowButtonSequences:_e,keytipSequences:et})},j.prototype._getUniqueKtp=function(_e,et){return et===void 0&&(et=getId()),{keytip:__assign$4({},_e),uniqueID:et}},j._instance=new j,j}();function sequencesToID(j){return j.reduce(function(_e,et){return _e+KTP_SEPARATOR+et.split("").join(KTP_SEPARATOR)},KTP_PREFIX)}function mergeOverflows(j,_e){var et=_e.length,tt=__spreadArray$1([],_e,!0).pop(),rt=__spreadArray$1([],j,!0);return addElementAtIndex(rt,et-1,tt)}function getAriaDescribedBy(j){var _e=" "+KTP_LAYER_ID;return j.length?_e+" "+sequencesToID(j):_e}function useKeytipData(j){var _e=reactExports.useRef(),et=j.keytipProps?__assign$4({disabled:j.disabled},j.keytipProps):void 0,tt=useConst$1(KeytipManager.getInstance()),rt=usePrevious(j);useIsomorphicLayoutEffect(function(){_e.current&&et&&((rt==null?void 0:rt.keytipProps)!==j.keytipProps||(rt==null?void 0:rt.disabled)!==j.disabled)&&tt.update(et,_e.current)}),useIsomorphicLayoutEffect(function(){return et&&(_e.current=tt.register(et)),function(){et&&tt.unregister(et,_e.current)}},[]);var nt={ariaDescribedBy:void 0,keytipId:void 0};return et&&(nt=getKeytipData(tt,et,j.ariaDescribedBy)),nt}function getKeytipData(j,_e,et){var tt=j.addParentOverflow(_e),rt=mergeAriaAttributeValues(et,getAriaDescribedBy(tt.keySequences)),nt=__spreadArray$1([],tt.keySequences,!0);tt.overflowSetSequence&&(nt=mergeOverflows(nt,tt.overflowSetSequence));var ot=sequencesToID(nt);return{ariaDescribedBy:rt,keytipId:ot}}var KeytipData=function(j){var _e,et=j.children,tt=__rest$1(j,["children"]),rt=useKeytipData(tt),nt=rt.keytipId,ot=rt.ariaDescribedBy;return et((_e={},_e[DATAKTP_TARGET]=nt,_e[DATAKTP_EXECUTE_TARGET]=nt,_e["aria-describedby"]=ot,_e))},ContextualMenuAnchor=function(j){__extends$3(_e,j);function _e(){var et=j!==null&&j.apply(this,arguments)||this;return et._anchor=reactExports.createRef(),et._getMemoizedMenuButtonKeytipProps=memoizeFunction(function(tt){return __assign$4(__assign$4({},tt),{hasMenu:!0})}),et._getSubmenuTarget=function(){return et._anchor.current?et._anchor.current:void 0},et._onItemClick=function(tt){var rt=et.props,nt=rt.item,ot=rt.onItemClick;ot&&ot(nt,tt)},et._renderAriaDescription=function(tt,rt){return tt?reactExports.createElement("span",{id:et._ariaDescriptionId,className:rt},tt):null},et}return _e.prototype.render=function(){var et=this,tt=this.props,rt=tt.item,nt=tt.classNames,ot=tt.index,it=tt.focusableElementIndex,st=tt.totalItemCount,lt=tt.hasCheckmarks,ut=tt.hasIcons,ct=tt.expandedMenuItemKey,dt=tt.onItemClick,ft=tt.openSubMenu,pt=tt.dismissSubMenu,gt=tt.dismissMenu,vt=ContextualMenuItem;this.props.item.contextualMenuItemAs&&(vt=composeComponentAs(this.props.item.contextualMenuItemAs,vt)),this.props.contextualMenuItemAs&&(vt=composeComponentAs(this.props.contextualMenuItemAs,vt));var bt=rt.rel;rt.target&&rt.target.toLowerCase()==="_blank"&&(bt=bt||"nofollow noopener noreferrer");var _t=hasSubmenu(rt),xt=getNativeProps(rt,anchorProperties),yt=isItemDisabled(rt),Et=rt.itemProps,St=rt.ariaDescription,$t=rt.keytipProps;$t&&_t&&($t=this._getMemoizedMenuButtonKeytipProps($t)),St&&(this._ariaDescriptionId=getId());var At=mergeAriaAttributeValues(rt.ariaDescribedBy,St?this._ariaDescriptionId:void 0,xt["aria-describedby"]),wt={"aria-describedby":At};return reactExports.createElement("div",null,reactExports.createElement(KeytipData,{keytipProps:rt.keytipProps,ariaDescribedBy:At,disabled:yt},function(Ct){return reactExports.createElement("a",__assign$4({},wt,xt,Ct,{ref:et._anchor,href:rt.href,target:rt.target,rel:bt,className:nt.root,role:"menuitem","aria-haspopup":_t||void 0,"aria-expanded":_t?rt.key===ct:void 0,"aria-posinset":it+1,"aria-setsize":st,"aria-disabled":isItemDisabled(rt),style:rt.style,onClick:et._onItemClick,onMouseEnter:et._onItemMouseEnter,onMouseLeave:et._onItemMouseLeave,onMouseMove:et._onItemMouseMove,onKeyDown:_t?et._onItemKeyDown:void 0}),reactExports.createElement(vt,__assign$4({componentRef:rt.componentRef,item:rt,classNames:nt,index:ot,onCheckmarkClick:lt&&dt?dt:void 0,hasIcons:ut,openSubMenu:ft,dismissSubMenu:pt,dismissMenu:gt,getSubmenuTarget:et._getSubmenuTarget},Et)),et._renderAriaDescription(St,nt.screenReaderText))}))},_e}(ContextualMenuItemWrapper),ContextualMenuButton=function(j){__extends$3(_e,j);function _e(){var et=j!==null&&j.apply(this,arguments)||this;return et._btn=reactExports.createRef(),et._getMemoizedMenuButtonKeytipProps=memoizeFunction(function(tt){return __assign$4(__assign$4({},tt),{hasMenu:!0})}),et._renderAriaDescription=function(tt,rt){return tt?reactExports.createElement("span",{id:et._ariaDescriptionId,className:rt},tt):null},et._getSubmenuTarget=function(){return et._btn.current?et._btn.current:void 0},et}return _e.prototype.render=function(){var et=this,tt=this.props,rt=tt.item,nt=tt.classNames,ot=tt.index,it=tt.focusableElementIndex,st=tt.totalItemCount,lt=tt.hasCheckmarks,ut=tt.hasIcons,ct=tt.contextualMenuItemAs,dt=tt.expandedMenuItemKey,ft=tt.onItemMouseDown,pt=tt.onItemClick,gt=tt.openSubMenu,vt=tt.dismissSubMenu,bt=tt.dismissMenu,_t=ContextualMenuItem;rt.contextualMenuItemAs&&(_t=composeComponentAs(rt.contextualMenuItemAs,_t)),ct&&(_t=composeComponentAs(ct,_t));var xt=getIsChecked(rt),yt=xt!==null,Et=getMenuItemAriaRole(rt),St=hasSubmenu(rt),$t=rt.itemProps,At=rt.ariaLabel,wt=rt.ariaDescription,Ct=getNativeProps(rt,buttonProperties);delete Ct.disabled;var It=rt.role||Et;wt&&(this._ariaDescriptionId=getId());var Ot=mergeAriaAttributeValues(rt.ariaDescribedBy,wt?this._ariaDescriptionId:void 0,Ct["aria-describedby"]),Nt={className:nt.root,onClick:this._onItemClick,onKeyDown:St?this._onItemKeyDown:void 0,onMouseEnter:this._onItemMouseEnter,onMouseLeave:this._onItemMouseLeave,onMouseDown:function(Mt){return ft?ft(rt,Mt):void 0},onMouseMove:this._onItemMouseMove,href:rt.href,title:rt.title,"aria-label":At,"aria-describedby":Ot,"aria-haspopup":St||void 0,"aria-expanded":St?rt.key===dt:void 0,"aria-posinset":it+1,"aria-setsize":st,"aria-disabled":isItemDisabled(rt),"aria-checked":(It==="menuitemcheckbox"||It==="menuitemradio")&&yt?!!xt:void 0,"aria-selected":It==="menuitem"&&yt?!!xt:void 0,role:It,style:rt.style},Pt=rt.keytipProps;return Pt&&St&&(Pt=this._getMemoizedMenuButtonKeytipProps(Pt)),reactExports.createElement(KeytipData,{keytipProps:Pt,ariaDescribedBy:Ot,disabled:isItemDisabled(rt)},function(Mt){return reactExports.createElement("button",__assign$4({ref:et._btn},Ct,Nt,Mt),reactExports.createElement(_t,__assign$4({componentRef:rt.componentRef,item:rt,classNames:nt,index:ot,onCheckmarkClick:lt&&pt?pt:void 0,hasIcons:ut,openSubMenu:gt,dismissSubMenu:vt,dismissMenu:bt,getSubmenuTarget:et._getSubmenuTarget},$t)),et._renderAriaDescription(wt,nt.screenReaderText))})},_e}(ContextualMenuItemWrapper),getStyles$4=function(j){var _e=j.theme,et=j.getClassNames,tt=j.className;if(!_e)throw new Error("Theme is undefined or null.");if(et){var rt=et(_e);return{wrapper:[rt.wrapper],divider:[rt.divider]}}return{wrapper:[{display:"inline-flex",height:"100%",alignItems:"center"},tt],divider:[{width:1,height:"100%",backgroundColor:_e.palette.neutralTertiaryAlt}]}},getClassNames$4=classNamesFunction(),VerticalDividerBase=reactExports.forwardRef(function(j,_e){var et=j.styles,tt=j.theme,rt=j.getClassNames,nt=j.className,ot=getClassNames$4(et,{theme:tt,getClassNames:rt,className:nt});return reactExports.createElement("span",{className:ot.wrapper,ref:_e},reactExports.createElement("span",{className:ot.divider}))});VerticalDividerBase.displayName="VerticalDividerBase";var VerticalDivider=styled(VerticalDividerBase,getStyles$4,void 0,{scope:"VerticalDivider"}),TouchIdleDelay=500,ContextualMenuSplitButton=function(j){__extends$3(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt._getMemoizedMenuButtonKeytipProps=memoizeFunction(function(rt){return __assign$4(__assign$4({},rt),{hasMenu:!0})}),tt._onItemKeyDown=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemKeyDown;rt.which===KeyCodes$1.enter?(tt._executeItemClick(rt),rt.preventDefault(),rt.stopPropagation()):it&&it(ot,rt)},tt._getSubmenuTarget=function(){return tt._splitButton},tt._renderAriaDescription=function(rt,nt){return rt?reactExports.createElement("span",{id:tt._ariaDescriptionId,className:nt},rt):null},tt._onItemMouseEnterPrimary=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseEnter;it&&it(__assign$4(__assign$4({},ot),{subMenuProps:void 0,items:void 0}),rt,tt._splitButton)},tt._onItemMouseEnterIcon=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseEnter;it&&it(ot,rt,tt._splitButton)},tt._onItemMouseMovePrimary=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseMove;it&&it(__assign$4(__assign$4({},ot),{subMenuProps:void 0,items:void 0}),rt,tt._splitButton)},tt._onItemMouseMoveIcon=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseMove;it&&it(ot,rt,tt._splitButton)},tt._onIconItemClick=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemClickBase;it&&it(ot,rt,tt._splitButton?tt._splitButton:rt.currentTarget)},tt._executeItemClick=function(rt){var nt=tt.props,ot=nt.item,it=nt.executeItemClick,st=nt.onItemClick;if(!(ot.disabled||ot.isDisabled)){if(tt._processingTouch&&!ot.canCheck&&st)return st(ot,rt);it&&it(ot,rt)}},tt._onTouchStart=function(rt){tt._splitButton&&!("onpointerdown"in tt._splitButton)&&tt._handleTouchAndPointerEvent(rt)},tt._onPointerDown=function(rt){rt.pointerType==="touch"&&(tt._handleTouchAndPointerEvent(rt),rt.preventDefault(),rt.stopImmediatePropagation())},tt._async=new Async(tt),tt._events=new EventGroup(tt),tt._dismissLabelId=getId(),tt}return _e.prototype.componentDidMount=function(){this._splitButton&&"onpointerdown"in this._splitButton&&this._events.on(this._splitButton,"pointerdown",this._onPointerDown,!0)},_e.prototype.componentWillUnmount=function(){this._async.dispose(),this._events.dispose()},_e.prototype.render=function(){var et=this,tt,rt=this.props,nt=rt.item,ot=rt.classNames,it=rt.index,st=rt.focusableElementIndex,lt=rt.totalItemCount,ut=rt.hasCheckmarks,ct=rt.hasIcons,dt=rt.onItemMouseLeave,ft=rt.expandedMenuItemKey,pt=hasSubmenu(nt),gt=nt.keytipProps;gt&&(gt=this._getMemoizedMenuButtonKeytipProps(gt));var vt=nt.ariaDescription;vt&&(this._ariaDescriptionId=getId());var bt=(tt=getIsChecked(nt))!==null&&tt!==void 0?tt:void 0;return reactExports.createElement(KeytipData,{keytipProps:gt,disabled:isItemDisabled(nt)},function(_t){return reactExports.createElement("div",{"data-ktp-target":_t["data-ktp-target"],ref:function(xt){return et._splitButton=xt},role:getMenuItemAriaRole(nt),"aria-label":nt.ariaLabel,className:ot.splitContainer,"aria-disabled":isItemDisabled(nt),"aria-expanded":pt?nt.key===ft:void 0,"aria-haspopup":!0,"aria-describedby":mergeAriaAttributeValues(nt.ariaDescribedBy,vt?et._ariaDescriptionId:void 0,_t["aria-describedby"]),"aria-checked":bt,"aria-posinset":st+1,"aria-setsize":lt,onMouseEnter:et._onItemMouseEnterPrimary,onMouseLeave:dt?dt.bind(et,__assign$4(__assign$4({},nt),{subMenuProps:null,items:null})):void 0,onMouseMove:et._onItemMouseMovePrimary,onKeyDown:et._onItemKeyDown,onClick:et._executeItemClick,onTouchStart:et._onTouchStart,tabIndex:0,"data-is-focusable":!0,"aria-roledescription":nt["aria-roledescription"]},et._renderSplitPrimaryButton(nt,ot,it,ut,ct),et._renderSplitDivider(nt),et._renderSplitIconButton(nt,ot,it,_t),et._renderAriaDescription(vt,ot.screenReaderText))})},_e.prototype._renderSplitPrimaryButton=function(et,tt,rt,nt,ot){var it=this.props,st=it.contextualMenuItemAs,lt=st===void 0?ContextualMenuItem:st,ut=it.onItemClick,ct={key:et.key,disabled:isItemDisabled(et)||et.primaryDisabled,name:et.name,text:et.text||et.name,secondaryText:et.secondaryText,className:tt.splitPrimary,canCheck:et.canCheck,isChecked:et.isChecked,checked:et.checked,iconProps:et.iconProps,id:this._dismissLabelId,onRenderIcon:et.onRenderIcon,data:et.data,"data-is-focusable":!1},dt=et.itemProps;return reactExports.createElement("button",__assign$4({},getNativeProps(ct,buttonProperties)),reactExports.createElement(lt,__assign$4({"data-is-focusable":!1,item:ct,classNames:tt,index:rt,onCheckmarkClick:nt&&ut?ut:void 0,hasIcons:ot},dt)))},_e.prototype._renderSplitDivider=function(et){var tt=et.getSplitButtonVerticalDividerClassNames||getSplitButtonVerticalDividerClassNames;return reactExports.createElement(VerticalDivider,{getClassNames:tt})},_e.prototype._renderSplitIconButton=function(et,tt,rt,nt){var ot=this.props,it=ot.onItemMouseLeave,st=ot.onItemMouseDown,lt=ot.openSubMenu,ut=ot.dismissSubMenu,ct=ot.dismissMenu,dt=ContextualMenuItem;this.props.item.contextualMenuItemAs&&(dt=composeComponentAs(this.props.item.contextualMenuItemAs,dt)),this.props.contextualMenuItemAs&&(dt=composeComponentAs(this.props.contextualMenuItemAs,dt));var ft={onClick:this._onIconItemClick,disabled:isItemDisabled(et),className:tt.splitMenu,subMenuProps:et.subMenuProps,submenuIconProps:et.submenuIconProps,split:!0,key:et.key,"aria-labelledby":this._dismissLabelId},pt=__assign$4(__assign$4({},getNativeProps(ft,buttonProperties)),{onMouseEnter:this._onItemMouseEnterIcon,onMouseLeave:it?it.bind(this,et):void 0,onMouseDown:function(vt){return st?st(et,vt):void 0},onMouseMove:this._onItemMouseMoveIcon,"data-is-focusable":!1,"data-ktp-execute-target":nt["data-ktp-execute-target"],"aria-haspopup":!0}),gt=et.itemProps;return reactExports.createElement("button",__assign$4({},pt),reactExports.createElement(dt,__assign$4({componentRef:et.componentRef,item:ft,classNames:tt,index:rt,hasIcons:!1,openSubMenu:lt,dismissSubMenu:ut,dismissMenu:ct,getSubmenuTarget:this._getSubmenuTarget},gt)))},_e.prototype._handleTouchAndPointerEvent=function(et){var tt=this,rt=this.props.onTap;rt&&rt(et),this._lastTouchTimeoutId&&(this._async.clearTimeout(this._lastTouchTimeoutId),this._lastTouchTimeoutId=void 0),this._processingTouch=!0,this._lastTouchTimeoutId=this._async.setTimeout(function(){tt._processingTouch=!1,tt._lastTouchTimeoutId=void 0},TouchIdleDelay)},_e}(ContextualMenuItemWrapper),ResponsiveMode;(function(j){j[j.small=0]="small",j[j.medium=1]="medium",j[j.large=2]="large",j[j.xLarge=3]="xLarge",j[j.xxLarge=4]="xxLarge",j[j.xxxLarge=5]="xxxLarge",j[j.unknown=999]="unknown"})(ResponsiveMode||(ResponsiveMode={}));var RESPONSIVE_MAX_CONSTRAINT=[479,639,1023,1365,1919,99999999],_defaultMode,_lastMode;function getInitialResponsiveMode(){var j;return(j=_defaultMode??_lastMode)!==null&&j!==void 0?j:ResponsiveMode.large}function getWidthOfCurrentWindow(j){try{return j.document.documentElement.clientWidth}catch{return j.innerWidth}}function getResponsiveMode(j){var _e=ResponsiveMode.small;if(j){try{for(;getWidthOfCurrentWindow(j)>RESPONSIVE_MAX_CONSTRAINT[_e];)_e++}catch{_e=getInitialResponsiveMode()}_lastMode=_e}else throw new Error("Content was rendered in a server environment without providing a default responsive mode. Call setResponsiveMode to define what the responsive mode is.");return _e}var useResponsiveMode=function(j,_e){var et=reactExports.useState(getInitialResponsiveMode()),tt=et[0],rt=et[1],nt=reactExports.useCallback(function(){var it=getResponsiveMode(getWindow(j.current));tt!==it&&rt(it)},[j,tt]),ot=useWindow();return useOnEvent(ot,"resize",nt),reactExports.useEffect(function(){_e===void 0&&nt()},[_e]),_e??tt},MenuContext=reactExports.createContext({}),getClassNames$3=classNamesFunction(),getContextualMenuItemClassNames=classNamesFunction(),DEFAULT_PROPS$1={items:[],shouldFocusOnMount:!0,gapSpace:0,directionalHint:DirectionalHint.bottomAutoEdge,beakWidth:16};function getItemCount(j){for(var _e=0,et=0,tt=j;et0){var fn=0;return reactExports.createElement("li",{role:"presentation",key:Qt.key||Mr.key||"section-".concat(zt)},reactExports.createElement("div",__assign$4({},lr),reactExports.createElement("ul",{className:Zt.list,role:"presentation"},Qt.topDivider&&mr(zt,Ut,!0,!0),ar&&nr(ar,Mr.key||zt,Ut,Mr.title),Qt.items.map(function(an,tn){var _n=qt(an,tn,fn,getItemCount(Qt.items),Ht,Dt,Zt);if(an.itemType!==ContextualMenuItemType.Divider&&an.itemType!==ContextualMenuItemType.Header){var jn=an.customOnRenderListLength?an.customOnRenderListLength:1;fn+=jn}return _n}),Qt.bottomDivider&&mr(zt,Ut,!1,!0))))}}},nr=function(Mr,Ut,Zt,zt){return reactExports.createElement("li",{role:"presentation",title:zt,key:Ut,className:Zt.item},Mr)},mr=function(Mr,Ut,Zt,zt){return zt||Mr>0?reactExports.createElement("li",{role:"separator",key:"separator-"+Mr+(Zt===void 0?"":Zt?"-top":"-bottom"),className:Ut.divider,"aria-hidden":"true"}):null},Ar=function(Mr,Ut,Zt,zt,Ht,Dt,Qt){if(Mr.onRender)return Mr.onRender(__assign$4({"aria-posinset":zt+1,"aria-setsize":Ht},Mr),st);var ar=rt.contextualMenuItemAs,lr={item:Mr,classNames:Ut,index:Zt,focusableElementIndex:zt,totalItemCount:Ht,hasCheckmarks:Dt,hasIcons:Qt,contextualMenuItemAs:ar,onItemMouseEnter:Vt,onItemMouseLeave:Xt,onItemMouseMove:Yt,onItemMouseDown,executeItemClick:vr,onItemKeyDown:jt,expandedMenuItemKey:pt,openSubMenu:gt,dismissSubMenu:bt,dismissMenu:st};if(Mr.href){var tr=ContextualMenuAnchor;return Mr.contextualMenuItemWrapperAs&&(tr=composeComponentAs(Mr.contextualMenuItemWrapperAs,tr)),reactExports.createElement(tr,__assign$4({},lr,{onItemClick:cr}))}if(Mr.split&&hasSubmenu(Mr)){var _r=ContextualMenuSplitButton;return Mr.contextualMenuItemWrapperAs&&(_r=composeComponentAs(Mr.contextualMenuItemWrapperAs,_r)),reactExports.createElement(_r,__assign$4({},lr,{onItemClick:rr,onItemClickBase:Tr,onTap:Ct}))}var Br=ContextualMenuButton;return Mr.contextualMenuItemWrapperAs&&(Br=composeComponentAs(Mr.contextualMenuItemWrapperAs,Br)),reactExports.createElement(Br,__assign$4({},lr,{onItemClick:rr,onItemClickBase:Tr}))},Or=function(Mr,Ut,Zt,zt,Ht,Dt){var Qt=ContextualMenuItem;Mr.contextualMenuItemAs&&(Qt=composeComponentAs(Mr.contextualMenuItemAs,Qt)),rt.contextualMenuItemAs&&(Qt=composeComponentAs(rt.contextualMenuItemAs,Qt));var ar=Mr.itemProps,lr=Mr.id,tr=ar&&getNativeProps(ar,divProperties);return reactExports.createElement("div",__assign$4({id:lr,className:Zt.header},tr,{style:Mr.style}),reactExports.createElement(Qt,__assign$4({item:Mr,classNames:Ut,index:zt,onCheckmarkClick:Ht?rr:void 0,hasIcons:Dt},ar)))},wr=rt.isBeakVisible,Nr=rt.items,Wr=rt.labelElementId,Vr=rt.id,Jr=rt.className,Yr=rt.beakWidth,jr=rt.directionalHint,Hr=rt.directionalHintForRTL,hn=rt.alignTargetEdge,pr=rt.gapSpace,sr=rt.coverTarget,Jt=rt.ariaLabel,ur=rt.doNotLayer,br=rt.target,Sr=rt.bounds,yr=rt.useTargetWidth,Cr=rt.useTargetAsMinWidth,Lr=rt.directionalHintFixed,Xr=rt.shouldFocusOnMount,qr=rt.shouldFocusOnContainer,Qr=rt.title,xn=rt.styles,wn=rt.theme,nn=rt.calloutProps,Ln=rt.onRenderSubMenu,zn=Ln===void 0?onDefaultRenderSubMenu:Ln,En=rt.onRenderMenuList,sn=En===void 0?function(Mr,Ut){return gr(Mr,In)}:En,Dn=rt.focusZoneProps,Mn=rt.getMenuClassNames,In=Mn?Mn(wn,Jr):getClassNames$3(xn,{theme:wn,className:Jr}),Cn=cn(Nr);function cn(Mr){for(var Ut=0,Zt=Mr;Ut0){var eo=getItemCount(Nr),Co=In.subComponentStyles?In.subComponentStyles.callout:void 0;return reactExports.createElement(MenuContext.Consumer,null,function(Mr){return reactExports.createElement(Callout,__assign$4({styles:Co,onRestoreFocus:dt},nn,{target:br||Mr.target,isBeakVisible:wr,beakWidth:Yr,directionalHint:jr,directionalHintForRTL:Hr,gapSpace:pr,coverTarget:sr,doNotLayer:ur,className:css$3("ms-ContextualMenu-Callout",nn&&nn.className),setInitialFocus:Xr,onDismiss:rt.onDismiss||Mr.onDismiss,onScroll:$t,bounds:Sr,directionalHintFixed:Lr,alignTargetEdge:hn,hidden:rt.hidden||Mr.hidden,ref:_e}),reactExports.createElement("div",{style:ro,ref:nt,id:Vr,className:In.container,tabIndex:qr?0:-1,onKeyDown:Lt,onKeyUp:Rt,onFocusCapture:Et,"aria-label":Jt,"aria-labelledby":Wr,role:"menu"},Qr&&reactExports.createElement("div",{className:In.title}," ",Qr," "),Nr&&Nr.length?Er(sn({ariaLabel:Jt,items:Nr,totalItemCount:eo,hasCheckmarks:Fr,hasIcons:Cn,defaultMenuItemRenderer:function(Ut){return ir(Ut,In)},labelElementId:Wr},function(Ut,Zt){return gr(Ut,In)}),Ur):null,Hn&&zn(Hn,onDefaultRenderSubMenu)),reactExports.createElement(FocusRects,null))})}else return null}),function(j,_e){return!_e.shouldUpdateWhenHidden&&j.hidden&&_e.hidden?!0:shallowCompare(j,_e)});ContextualMenuBase.displayName="ContextualMenuBase";function isAltOrMeta(j){return j.which===KeyCodes$1.alt||j.key==="Meta"}function onItemMouseDown(j,_e){var et;(et=j.onMouseDown)===null||et===void 0||et.call(j,j,_e)}function onDefaultRenderSubMenu(j,_e){throw Error("ContextualMenuBase: onRenderSubMenu callback is null or undefined. Please ensure to set `onRenderSubMenu` property either manually or with `styled` helper.")}function findItemByKeyFromItems(j,_e){for(var et=0,tt=_e;et=(Rt||ResponsiveMode.small)&&reactExports.createElement(Layer$1,__assign$4({ref:gr},Qr),reactExports.createElement(Popup,__assign$4({role:Lr?"alertdialog":"dialog",ariaLabelledBy:It,ariaDescribedBy:Nt,onDismiss:$t,shouldRestoreFocus:!_t,enableAriaHiddenSiblings:Yt,"aria-modal":!jt},Xt),reactExports.createElement("div",{className:qr.root,role:jt?void 0:"document"},!jt&&reactExports.createElement(Overlay,__assign$4({"aria-hidden":!0,isDarkThemed:St,onClick:xt?void 0:$t,allowTouchBodyScroll:st},wt)),Gt?reactExports.createElement(DraggableZone,{handleSelector:Gt.dragHandleSelector||"#".concat(qt),preventDragSelector:"button",onStart:zn,onDragChange:En,onStop:sn,position:Yr},Cn):Cn)))||null});ModalBase.displayName="Modal";var Modal=styled(ModalBase,getStyles$2,void 0,{scope:"Modal",fields:["theme","styles","enableAriaHiddenSiblings"]});Modal.displayName="Modal";var assign$2=__assign$4;function withSlots(j,_e){for(var et=[],tt=2;tt0)throw new Error("Any module using getSlots must use withSlots. Please see withSlots javadoc for more info.");return _renderSlot(_e[ot],st,tt[ot],tt.slots&&tt.slots[ot],tt._defaultStyles&&tt._defaultStyles[ot],tt.theme)};it.isSlot=!0,et[ot]=it}};for(var nt in _e)rt(nt);return et}function _translateShorthand(j,_e){var et,tt;return typeof _e=="string"||typeof _e=="number"||typeof _e=="boolean"?tt=(et={},et[j]=_e,et):tt=_e,tt}function _constructFinalProps(j,_e){for(var et=[],tt=2;tt2)return{rowGap:{value:0,unit:"px"},columnGap:{value:0,unit:"px"}};if(et.length===2)return{rowGap:_getValueUnitGap(_getThemedSpacing(et[0],_e)),columnGap:_getValueUnitGap(_getThemedSpacing(et[1],_e))};var tt=_getValueUnitGap(_getThemedSpacing(j,_e));return{rowGap:tt,columnGap:tt}},parsePadding=function(j,_e){if(j===void 0||typeof j=="number"||j==="")return j;var et=j.split(" ");return et.length<2?_getThemedSpacing(j,_e):et.reduce(function(tt,rt){return _getThemedSpacing(tt,_e)+" "+_getThemedSpacing(rt,_e)})},nameMap={start:"flex-start",end:"flex-end"},GlobalClassNames={root:"ms-Stack",inner:"ms-Stack-inner",child:"ms-Stack-child"},styles$2=function(j,_e,et){var tt,rt,nt,ot,it,st,lt,ut,ct,dt,ft,pt,gt,vt=j.className,bt=j.disableShrink,_t=j.enableScopedSelectors,xt=j.grow,yt=j.horizontal,Et=j.horizontalAlign,St=j.reversed,$t=j.verticalAlign,At=j.verticalFill,wt=j.wrap,Ct=getGlobalClassNames(GlobalClassNames,_e),It=et&&et.childrenGap?et.childrenGap:j.gap,Ot=et&&et.maxHeight?et.maxHeight:j.maxHeight,Nt=et&&et.maxWidth?et.maxWidth:j.maxWidth,Pt=et&&et.padding?et.padding:j.padding,Mt=parseGap(It,_e),Rt=Mt.rowGap,Lt=Mt.columnGap,jt="".concat(-.5*Lt.value).concat(Lt.unit),Gt="".concat(-.5*Rt.value).concat(Rt.unit),Vt={textOverflow:"ellipsis"},Yt="> "+(_t?"."+GlobalClassNames.child:"*"),Xt=(tt={},tt["".concat(Yt,":not(.").concat(GlobalClassNames$1.root,")")]={flexShrink:0},tt);return wt?{root:[Ct.root,{flexWrap:"wrap",maxWidth:Nt,maxHeight:Ot,width:"auto",overflow:"visible",height:"100%"},Et&&(rt={},rt[yt?"justifyContent":"alignItems"]=nameMap[Et]||Et,rt),$t&&(nt={},nt[yt?"alignItems":"justifyContent"]=nameMap[$t]||$t,nt),vt,{display:"flex"},yt&&{height:At?"100%":"auto"}],inner:[Ct.inner,(ot={display:"flex",flexWrap:"wrap",marginLeft:jt,marginRight:jt,marginTop:Gt,marginBottom:Gt,overflow:"visible",boxSizing:"border-box",padding:parsePadding(Pt,_e),width:Lt.value===0?"100%":"calc(100% + ".concat(Lt.value).concat(Lt.unit,")"),maxWidth:"100vw"},ot[Yt]=__assign$4({margin:"".concat(.5*Rt.value).concat(Rt.unit," ").concat(.5*Lt.value).concat(Lt.unit)},Vt),ot),bt&&Xt,Et&&(it={},it[yt?"justifyContent":"alignItems"]=nameMap[Et]||Et,it),$t&&(st={},st[yt?"alignItems":"justifyContent"]=nameMap[$t]||$t,st),yt&&(lt={flexDirection:St?"row-reverse":"row",height:Rt.value===0?"100%":"calc(100% + ".concat(Rt.value).concat(Rt.unit,")")},lt[Yt]={maxWidth:Lt.value===0?"100%":"calc(100% - ".concat(Lt.value).concat(Lt.unit,")")},lt),!yt&&(ut={flexDirection:St?"column-reverse":"column",height:"calc(100% + ".concat(Rt.value).concat(Rt.unit,")")},ut[Yt]={maxHeight:Rt.value===0?"100%":"calc(100% - ".concat(Rt.value).concat(Rt.unit,")")},ut)]}:{root:[Ct.root,(ct={display:"flex",flexDirection:yt?St?"row-reverse":"row":St?"column-reverse":"column",flexWrap:"nowrap",width:"auto",height:At?"100%":"auto",maxWidth:Nt,maxHeight:Ot,padding:parsePadding(Pt,_e),boxSizing:"border-box"},ct[Yt]=Vt,ct),bt&&Xt,xt&&{flexGrow:xt===!0?1:xt},Et&&(dt={},dt[yt?"justifyContent":"alignItems"]=nameMap[Et]||Et,dt),$t&&(ft={},ft[yt?"alignItems":"justifyContent"]=nameMap[$t]||$t,ft),yt&&Lt.value>0&&(pt={},pt[St?"".concat(Yt,":not(:last-child)"):"".concat(Yt,":not(:first-child)")]={marginLeft:"".concat(Lt.value).concat(Lt.unit)},pt),!yt&&Rt.value>0&&(gt={},gt[St?"".concat(Yt,":not(:last-child)"):"".concat(Yt,":not(:first-child)")]={marginTop:"".concat(Rt.value).concat(Rt.unit)},gt),vt]}},StackView=function(j){var _e=j.as,et=_e===void 0?"div":_e,tt=j.disableShrink,rt=tt===void 0?!1:tt,nt=j.doNotRenderFalsyValues,ot=nt===void 0?!1:nt,it=j.enableScopedSelectors,st=it===void 0?!1:it,lt=j.wrap,ut=__rest$1(j,["as","disableShrink","doNotRenderFalsyValues","enableScopedSelectors","wrap"]),ct=_processStackChildren(j.children,{disableShrink:rt,enableScopedSelectors:st,doNotRenderFalsyValues:ot}),dt=getNativeProps(ut,htmlElementProperties),ft=getSlots(j,{root:et,inner:"div"});return lt?withSlots(ft.root,__assign$4({},dt),withSlots(ft.inner,null,ct)):withSlots(ft.root,__assign$4({},dt),ct)};function _processStackChildren(j,_e){var et=_e.disableShrink,tt=_e.enableScopedSelectors,rt=_e.doNotRenderFalsyValues,nt=reactExports.Children.toArray(j);return nt=reactExports.Children.map(nt,function(ot){if(!ot)return rt?null:ot;if(!reactExports.isValidElement(ot))return ot;if(ot.type===reactExports.Fragment)return ot.props.children?_processStackChildren(ot.props.children,{disableShrink:et,enableScopedSelectors:tt,doNotRenderFalsyValues:rt}):null;var it=ot,st={};_isStackItem(ot)&&(st={shrink:!et});var lt=it.props.className;return reactExports.cloneElement(it,__assign$4(__assign$4(__assign$4(__assign$4({},st),it.props),lt&&{className:lt}),tt&&{className:css$3(GlobalClassNames.child,lt)}))}),nt}function _isStackItem(j){return!!j&&typeof j=="object"&&!!j.type&&j.type.displayName===StackItem.displayName}var StackStatics={Item:StackItem},Stack$1=createComponent(StackView,{displayName:"Stack",styles:styles$2,statics:StackStatics});const AzureContentSafetyIcon="data:image/svg+xml,%3csvg%20id='uuid-40011f3f-22d0-4882-8376-afe2ef514a7e'%20xmlns='http://www.w3.org/2000/svg'%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%3e%3cdefs%3e%3clinearGradient%20id='uuid-5c4dfc33-1236-40a5-b487-5c8d33e4013b'%20x1='12.062'%20y1='5.427'%20x2='12.062'%20y2='3.991'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2376bc2d'/%3e%3cstop%20offset='1'%20stop-color='%2386d633'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-5dc2ae3c-3a23-47ff-9dc1-e087ff0e2742'%20x1='2.902'%20y1='6.762'%20x2='9.455'%20y2='6.762'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23e6e6e6'/%3e%3cstop%20offset='1'%20stop-color='%23999'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-d781b8b0-afbe-4f6e-a478-ee1974441cbf'%20x1='-1288.505'%20y1='-521.774'%20x2='-1284.777'%20y2='-521.774'%20gradientTransform='translate(-512.319%201291.819)%20rotate(90)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2386d633'/%3e%3cstop%20offset='1'%20stop-color='%2376bc2d'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-efb884ed-afc6-4667-82f2-34983e82b107'%20x1='2.902'%20y1='11.544'%20x2='9.455'%20y2='11.544'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23e6e6e6'/%3e%3cstop%20offset='1'%20stop-color='%23999'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-e8c8c19d-aa6c-48ed-823e-cfec5a014d78'%20x1='-274.183'%20y1='-521.774'%20x2='-279.397'%20y2='-521.774'%20gradientTransform='translate(-512.319%20-263.224)%20rotate(-90)%20scale(1%20-1)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23faa21d'/%3e%3cstop%20offset='.999'%20stop-color='%23f78d1e'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-7a6a88dd-1778-43da-9238-45bfc5a17b3e'%20x1='-140.646'%20y1='13.626'%20x2='-143.764'%20y2='4.784'%20gradientTransform='translate(149.182)%20skewX(-19.425)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2350e6ff'/%3e%3cstop%20offset='1'%20stop-color='%239cebff'/%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='m16.62,4.541l-2.765-1.597c-.129-.075-.291.019-.291.168v.822h-6.158v1.55h6.158v.822c0,.149.161.242.291.168l2.765-1.597c.129-.075.129-.261,0-.336Z'%20fill='url(%23uuid-5c4dfc33-1236-40a5-b487-5c8d33e4013b)'/%3e%3cpath%20d='m4.495,9.616h-1.592v-4.634c-.002-.591.476-1.071,1.067-1.073,0,0,.001,0,.002,0h5.484v1.592h-4.96v4.115Z'%20fill='url(%23uuid-5dc2ae3c-3a23-47ff-9dc1-e087ff0e2742)'/%3e%3ccircle%20cx='9.455'%20cy='4.603'%20r='2.607'%20fill='url(%23uuid-d781b8b0-afbe-4f6e-a478-ee1974441cbf)'/%3e%3cpath%20d='m9.455,14.4H3.971c-.591,0-1.07-.48-1.069-1.071,0,0,0-.001,0-.002v-4.638h1.592v4.115h4.96v1.596Z'%20fill='url(%23uuid-efb884ed-afc6-4667-82f2-34983e82b107)'/%3e%3ccircle%20cx='9.455'%20cy='13.397'%20r='2.607'%20fill='url(%23uuid-e8c8c19d-aa6c-48ed-823e-cfec5a014d78)'/%3e%3cpath%20d='m5.008,12.097H1.696c-.272,0-.453-.301-.405-.673l.584-4.534c.048-.372.307-.673.578-.673h3.312c.272,0,.453.301.405.673l-.584,4.534c-.048.372-.307.673-.578.673Z'%20fill='url(%23uuid-7a6a88dd-1778-43da-9238-45bfc5a17b3e)'/%3e%3cpath%20d='m.362,3.138C.162,3.138,0,2.976,0,2.777h0V.361C0,.162.162,0,.362,0h2.266c.2,0,.362.162.362.361,0,.199-.162.361-.362.361H.724v2.053c0,.199-.161.362-.361.362,0,0,0,0-.001,0Zm17.638-.361V.361C18,.162,17.838,0,17.638,0h-2.266c-.2,0-.362.162-.362.361s.162.361.362.361h1.904v2.053c0,.199.162.361.362.361.2,0,.361-.162.362-.361h0ZM2.99,17.639c0-.199-.162-.361-.362-.361H.724v-2.053c0-.199-.162-.361-.362-.361-.2,0-.362.162-.362.361v2.415c0,.199.163.36.362.36h2.266c.2,0,.362-.162.362-.361Zm15.01.001v-2.415c0-.199-.162-.361-.362-.361-.2,0-.361.162-.362.361v2.053h-1.904c-.2,0-.362.162-.362.362,0,.199.162.361.362.361h2.266c.199,0,.361-.161.362-.36Z'%20fill='%2376bc2d'/%3e%3c/svg%3e",BingLogoIcon="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20234%20343.41'%3e%3cdefs%3e%3clinearGradient%20id='a'%20x1='-29.25'%20y1='662.02'%20x2='-23.09'%20y2='658.46'%20gradientTransform='matrix(24.45,%200,%200,%20-24.45,%20967.18,%2016420.97)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2337bdff'/%3e%3cstop%20offset='0.18'%20stop-color='%2333bffd'/%3e%3cstop%20offset='0.36'%20stop-color='%2328c5f5'/%3e%3cstop%20offset='0.53'%20stop-color='%2315d0e9'/%3e%3cstop%20offset='0.55'%20stop-color='%2312d1e7'/%3e%3cstop%20offset='0.59'%20stop-color='%231cd2e5'/%3e%3cstop%20offset='0.77'%20stop-color='%2342d8dc'/%3e%3cstop%20offset='0.91'%20stop-color='%2359dbd6'/%3e%3cstop%20offset='1'%20stop-color='%2362dcd4'/%3e%3c/linearGradient%3e%3clinearGradient%20id='b'%20x1='-32.86'%20y1='656.68'%20x2='-23.89'%20y2='656.68'%20gradientTransform='matrix(24.45,%200,%200,%20-24.45,%20967.18,%2016420.97)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2339d2ff'/%3e%3cstop%20offset='0.15'%20stop-color='%2338cefe'/%3e%3cstop%20offset='0.29'%20stop-color='%2335c3fa'/%3e%3cstop%20offset='0.43'%20stop-color='%232fb0f3'/%3e%3cstop%20offset='0.55'%20stop-color='%23299aeb'/%3e%3cstop%20offset='0.58'%20stop-color='%232692ec'/%3e%3cstop%20offset='0.76'%20stop-color='%231a6cf1'/%3e%3cstop%20offset='0.91'%20stop-color='%231355f4'/%3e%3cstop%20offset='1'%20stop-color='%23104cf5'/%3e%3c/linearGradient%3e%3clinearGradient%20id='c'%20x1='-31.2'%20y1='655.9'%20x2='-31.2'%20y2='667.89'%20gradientTransform='matrix(24.45,%200,%200,%20-24.45,%20967.18,%2016420.97)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%231b48ef'/%3e%3cstop%20offset='0.12'%20stop-color='%231c51f0'/%3e%3cstop%20offset='0.32'%20stop-color='%231e69f5'/%3e%3cstop%20offset='0.57'%20stop-color='%232190fb'/%3e%3cstop%20offset='1'%20stop-color='%2326b8f4'/%3e%3c/linearGradient%3e%3cclipPath%20id='d'%20transform='translate(-163%20-82.94)'%3e%3crect%20x='163.02'%20y='288.38'%20width='227.17'%20height='140.76'%20style='fill:none'/%3e%3c/clipPath%3e%3clinearGradient%20id='e'%20x1='-31.08'%20y1='654.47'%20x2='-25.54'%20y2='660'%20gradientTransform='matrix(24.45,%200,%200,%20-24.45,%20967.18,%2016420.97)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23fff'/%3e%3cstop%20offset='0.37'%20stop-color='%23fdfdfd'/%3e%3cstop%20offset='0.51'%20stop-color='%23f6f6f6'/%3e%3cstop%20offset='0.6'%20stop-color='%23ebebeb'/%3e%3cstop%20offset='0.68'%20stop-color='%23dadada'/%3e%3cstop%20offset='0.75'%20stop-color='%23c4c4c4'/%3e%3cstop%20offset='0.81'%20stop-color='%23a8a8a8'/%3e%3cstop%20offset='0.86'%20stop-color='%23888'/%3e%3cstop%20offset='0.91'%20stop-color='%23626262'/%3e%3cstop%20offset='0.95'%20stop-color='%23373737'/%3e%3cstop%20offset='0.99'%20stop-color='%23090909'/%3e%3cstop%20offset='1'/%3e%3c/linearGradient%3e%3cclipPath%20id='f'%20transform='translate(-163%20-82.94)'%3e%3crect%20x='163.02'%20y='82.87'%20width='86.51'%20height='302.96'%20style='fill:none'/%3e%3c/clipPath%3e%3clinearGradient%20id='g'%20x1='-31.2'%20y1='668.1'%20x2='-31.2'%20y2='656.02'%20xlink:href='%23e'/%3e%3c/defs%3e%3ctitle%3ebing-logo%3c/title%3e%3cpath%20d='M397,303.4a92.73,92.73,0,0,1-24.84,63.16,41.81,41.81,0,0,0,4.5-6,38.11,38.11,0,0,0,2.69-5.08,17.7,17.7,0,0,0,.74-1.78,17.25,17.25,0,0,0,.65-1.78c.21-.56.39-1.14.55-1.72s.33-1.2.46-1.81l.07-.21c.14-.6.25-1.2.37-1.81s.23-1.25.33-1.88v0c.09-.58.16-1.16.21-1.76a40,40,0,0,0,.21-4.13A41.41,41.41,0,0,0,377,317.11a36.51,36.51,0,0,0-2.85-4.17,39.93,39.93,0,0,0-4-4.43,41.45,41.45,0,0,0-12.36-8.28,38.78,38.78,0,0,0-6.22-2.14l-.09,0-.74-.25-10.81-3.71v0l-28.27-9.72c-.09,0-.21,0-.28,0l-1.77-.65A26.23,26.23,0,0,1,296.29,272L286,245.62l-11.83-30.16-2.27-5.82-.58-1.18a13.35,13.35,0,0,1-1-5.08,12,12,0,0,1,0-1.35,13.19,13.19,0,0,1,18.26-10.79l52.69,27,10.39,5.31A91.11,91.11,0,0,1,367,235a92.45,92.45,0,0,1,29.79,61.87C396.91,299.06,397,301.22,397,303.4Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23a)'/%3e%3cpath%20d='M382.91,338.56a42.8,42.8,0,0,1-.72,7.82c-.14.67-.28,1.35-.44,2-.3,1.2-.62,2.36-1,3.53-.21.6-.42,1.2-.65,1.78s-.49,1.18-.74,1.78a38.1,38.1,0,0,1-2.69,5.08,42.22,42.22,0,0,1-4.5,6c-7.68,8.49-33.75,23.63-43.36,29.79l-21.33,13c-15.63,9.63-30.41,16.45-49,16.91-.88,0-1.74,0-2.6,0-1.2,0-2.39,0-3.57-.07a92.86,92.86,0,0,1-74.92-43.17,91.58,91.58,0,0,1-13.68-38.67,41.13,41.13,0,0,0,60,28.95l.14-.07,2.09-1.25,8.49-5,10.81-6.4v-.3l1.39-.83,96.71-57.29,7.44-4.41.74.25.09,0a38.31,38.31,0,0,1,6.22,2.14,41.45,41.45,0,0,1,12.36,8.28,40,40,0,0,1,4,4.43,37,37,0,0,1,2.85,4.17A41.64,41.64,0,0,1,382.91,338.56Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23b)'/%3e%3cpath%20d='M245.24,147.35l0,213.29L234.39,367l-8.5,5-2.09,1.27a.24.24,0,0,0-.13.06,41.13,41.13,0,0,1-60-28.94c-.16-.89-.28-1.81-.38-2.7-.13-1.68-.22-3.33-.25-5v-240a13.77,13.77,0,0,1,21.46-11.41l42.07,27.48a5.55,5.55,0,0,0,.73.51A41.14,41.14,0,0,1,245.24,147.35Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23c)'/%3e%3cg%20style='opacity:0.14900000393390656;isolation:isolate'%3e%3cg%20style='clip-path:url(%23d)'%3e%3cpath%20d='M382.91,338.56a42.8,42.8,0,0,1-.72,7.82c-.14.67-.28,1.35-.44,2-.3,1.2-.62,2.36-1,3.53-.21.6-.42,1.2-.65,1.78s-.49,1.18-.74,1.78a38.1,38.1,0,0,1-2.69,5.08,41.81,41.81,0,0,1-4.5,6c-7.68,8.49-33.75,23.63-43.36,29.79l-21.33,13c-15.63,9.63-30.41,16.45-49,16.91-.88,0-1.74,0-2.6,0-1.2,0-2.39,0-3.57-.07a92.86,92.86,0,0,1-74.92-43.17,91.58,91.58,0,0,1-13.68-38.67,41.13,41.13,0,0,0,60,28.95l.14-.07,2.09-1.25,8.49-5,10.81-6.4v-.3l1.39-.83,96.71-57.29,7.44-4.41.74.25.09,0a38.31,38.31,0,0,1,6.22,2.14,41.45,41.45,0,0,1,12.36,8.28,40,40,0,0,1,4,4.43,37,37,0,0,1,2.85,4.17A41.64,41.64,0,0,1,382.91,338.56Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23e)'/%3e%3c/g%3e%3c/g%3e%3cg%20style='opacity:0.09799999743700027;isolation:isolate'%3e%3cg%20style='clip-path:url(%23f)'%3e%3cpath%20d='M245.24,147.35l0,213.29L234.39,367l-8.5,5-2.09,1.27a.24.24,0,0,0-.13.06,41.13,41.13,0,0,1-60-28.94c-.16-.89-.28-1.81-.38-2.7-.13-1.68-.22-3.33-.25-5v-240a13.77,13.77,0,0,1,21.46-11.41l42.07,27.48a5.55,5.55,0,0,0,.73.51A41.14,41.14,0,0,1,245.24,147.35Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23g)'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",DefaultIcon=()=>jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16px",height:"16px",viewBox:"0 0 18 18",children:[jsxRuntimeExports.jsxs("defs",{children:[jsxRuntimeExports.jsxs("linearGradient",{id:"a5efbc52-c9a4-425f-9d94-50e000195659",x1:"9",y1:"18.967",x2:"9",y2:"3.398",gradientUnits:"userSpaceOnUse",children:[jsxRuntimeExports.jsx("stop",{offset:"0",stopColor:"#0078d4"}),jsxRuntimeExports.jsx("stop",{offset:"0.156",stopColor:"#1380da"}),jsxRuntimeExports.jsx("stop",{offset:"0.528",stopColor:"#3c91e5"}),jsxRuntimeExports.jsx("stop",{offset:"0.822",stopColor:"#559cec"}),jsxRuntimeExports.jsx("stop",{offset:"1",stopColor:"#5ea0ef"})]}),jsxRuntimeExports.jsxs("linearGradient",{id:"a110d41d-e4ca-48ee-9efe-328e60a20dcc",x1:"9",y1:"5.019",x2:"9",y2:"13.676",gradientUnits:"userSpaceOnUse",children:[jsxRuntimeExports.jsx("stop",{offset:"0.22",stopColor:"#fff"}),jsxRuntimeExports.jsx("stop",{offset:"1",stopColor:"#e6e6e6"})]}),jsxRuntimeExports.jsxs("linearGradient",{id:"bcf81335-a15c-4e8a-85c4-cb14c4ef74b0",x1:"8.991",y1:"2.883",x2:"8.991",y2:"11.32",gradientUnits:"userSpaceOnUse",children:[jsxRuntimeExports.jsx("stop",{offset:"0.22",stopColor:"#fff"}),jsxRuntimeExports.jsx("stop",{offset:"1",stopColor:"#e6e6e6"})]})]}),jsxRuntimeExports.jsx("g",{id:"b5d797c5-507f-4358-b61e-ca040c36ef52",children:jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("path",{d:"M.038,9.142,4.4,16.69a.285.285,0,0,0,.246.142h8.716a.285.285,0,0,0,.246-.142l4.358-7.548a.283.283,0,0,0,0-.284L13.6,1.31a.285.285,0,0,0-.246-.142H4.642A.285.285,0,0,0,4.4,1.31L.038,8.858A.283.283,0,0,0,.038,9.142Z",fill:"url(#a5efbc52-c9a4-425f-9d94-50e000195659)"}),jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("path",{id:"a81cd782-d573-434f-a6f1-758ffbb6f88b",d:"M12.239,6.083l.048.042a.085.085,0,0,0,.115,0l.447-.374.808-1.334a.083.083,0,0,0,0-.1l-.138-.145a.085.085,0,0,0-.1,0l-1.273.863L11.78,5.5a.086.086,0,0,0,0,.109l.049.048L9.2,8.394l-.543-.6-.6.6a1.093,1.093,0,0,1-.26.911.945.945,0,0,1-.826.3L4.376,12.232a.163.163,0,0,0,0,.231l0,.005,1.255,1.3a.162.162,0,0,0,.23.011l.011-.011L8.4,11.14a1.037,1.037,0,0,1,.3-.869.964.964,0,0,1,.826-.3l.6-.6L9.6,8.78Z",opacity:"0.4",fill:"url(#a110d41d-e4ca-48ee-9efe-328e60a20dcc)"}),jsxRuntimeExports.jsx("path",{d:"M13.283,12.057l-.6-.645L8.648,7.278h0l-.2-.218a2.242,2.242,0,0,0-.525-2.2,2.067,2.067,0,0,0-1.865-.6.09.09,0,0,0-.065.11.088.088,0,0,0,.017.035l1.05,1.068a.091.091,0,0,1,0,.085L6.808,6.65a.084.084,0,0,1-.061.06l-1.074.3a.084.084,0,0,1-.084,0l-1.02-1.08a.084.084,0,0,0-.145.054,2.19,2.19,0,0,0,.6,1.919,2.035,2.035,0,0,0,2.034.543l.036.043.23.235h0l4.592,4.828a.954.954,0,0,0,1.34.048l.048-.048a1.017,1.017,0,0,0,.284-.724A1.117,1.117,0,0,0,13.283,12.057Z",fill:"url(#bcf81335-a15c-4e8a-85c4-cb14c4ef74b0)"})]})]})})]}),OpenAIIcon$1=()=>jsxRuntimeExports.jsxs("svg",{fill:"currentColor",width:"16px",height:"16px",viewBox:"0 0 2048 2048",role:"img",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("title",{children:"OpenAI icon"}),jsxRuntimeExports.jsx("path",{d:"M832 676l575 288v760l-575 288-575-288V964l575-288zm0 144l-368 184 368 183 368-183-368-184zm-447 825l383 191v-538l-383-191v538zm894 0v-538l-383 191v538l383-191zm577-733q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9zM704 496q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9zm1206-48q0 23-15 38t-39 16q-27 0-57 11t-58 28-54 37-45 40q-19 19-39 44t-38 54-28 59-11 57q0 23-15 38t-39 16q-23 0-38-15t-16-39q0-27-11-57t-28-58-37-54-40-45q-19-19-44-39t-54-38-59-28-57-11q-23 0-38-15t-16-39q0-23 15-38t39-16q27 0 57-11t58-28 54-37 45-40q19-19 39-44t38-54 28-59 11-57q0-23 15-38t39-16q23 0 38 15t16 39q0 27 11 57t28 58 37 54 40 45q19 19 44 39t54 38 59 28 57 11q23 0 38 15t16 39zm-438 212q38-65 92-119t120-93q-65-38-119-92t-93-120q-38 65-92 119t-120 93q65 38 119 92t93 120z"})]}),PromptIcon=()=>jsxRuntimeExports.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntimeExports.jsx("path",{d:"M9.5 6.50238C9.5 6.22624 9.72386 6.00238 10 6.00238C10.2761 6.00238 10.5 6.22624 10.5 6.50238V7.50391C10.5 7.78005 10.2761 8.00391 10 8.00391C9.72386 8.00391 9.5 7.78005 9.5 7.50391V6.50238ZM12.8506 7.44332C12.6553 7.24806 12.3388 7.24806 12.1435 7.44332L11.4353 8.15151C11.2401 8.34677 11.2401 8.66335 11.4353 8.85861C11.6306 9.05388 11.9472 9.05388 12.1424 8.85861L12.8506 8.15043C13.0459 7.95517 13.0459 7.63858 12.8506 7.44332ZM7.8521 7.44332C7.65684 7.24806 7.34026 7.24806 7.145 7.44332C6.94973 7.63858 6.94973 7.95517 7.145 8.15043L7.85318 8.85861C8.04844 9.05388 8.36503 9.05388 8.56029 8.85861C8.75555 8.66335 8.75555 8.34677 8.56029 8.15151L7.8521 7.44332ZM10 2C13.3137 2 16 4.59693 16 7.80041C16 9.47737 15.2546 11.0164 13.7961 12.3942C13.7324 12.4544 13.6831 12.5269 13.6512 12.6065L13.6251 12.6883L12.6891 16.6051C12.5048 17.3763 11.8236 17.935 11.0181 17.9947L10.8748 18H9.12546C8.30655 18 7.59 17.4839 7.34866 16.7385L7.31108 16.6047L6.37626 12.6886C6.34955 12.5766 6.29016 12.4745 6.20516 12.3942C4.8153 11.0819 4.07265 9.62354 4.00507 8.03903L4 7.80041L4.00321 7.60894C4.1077 4.49409 6.75257 2 10 2ZM7.955 15L8.27386 16.3344L8.30004 16.4305C8.39695 16.7298 8.67583 16.9517 9.0116 16.993L9.12546 17L10.8379 17.0007L10.9442 16.9974C11.2865 16.9721 11.5726 16.7609 11.6854 16.4718L11.7165 16.3727L12.045 15H7.955ZM10 3C7.36782 3 5.21188 4.95301 5.0151 7.41357L5.00307 7.62569L4.99977 7.77916L5.00416 7.99642C5.05977 9.30026 5.67758 10.5208 6.89167 11.6671C7.07995 11.8449 7.22191 12.0647 7.30572 12.3078L7.34894 12.4564L7.716 14H9.50024V9.49707C9.50024 9.22093 9.7241 8.99707 10.0002 8.99707C10.2764 8.99707 10.5002 9.22093 10.5002 9.49707V14H12.285L12.6722 12.3851L12.7231 12.2343C12.8091 12.0198 12.9409 11.8265 13.1094 11.6673C14.3825 10.4646 15 9.18054 15 7.80041C15 5.15693 12.7689 3 10 3Z",fill:"currentColor"})}),PythonIcon=()=>jsxRuntimeExports.jsxs("svg",{width:"16px",height:"16px",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.0164 2C10.8193 2 9.03825 3.72453 9.03825 5.85185V8.51852H15.9235V9.25926H5.97814C3.78107 9.25926 2 10.9838 2 13.1111L2 18.8889C2 21.0162 3.78107 22.7407 5.97814 22.7407H8.27322V19.4815C8.27322 17.3542 10.0543 15.6296 12.2514 15.6296H19.5956C21.4547 15.6296 22.9617 14.1704 22.9617 12.3704V5.85185C22.9617 3.72453 21.1807 2 18.9836 2H13.0164ZM12.0984 6.74074C12.8589 6.74074 13.4754 6.14378 13.4754 5.40741C13.4754 4.67103 12.8589 4.07407 12.0984 4.07407C11.3378 4.07407 10.7213 4.67103 10.7213 5.40741C10.7213 6.14378 11.3378 6.74074 12.0984 6.74074Z",fill:"#327EBD"}),jsxRuntimeExports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18.9834 30C21.1805 30 22.9616 28.2755 22.9616 26.1482V23.4815L16.0763 23.4815L16.0763 22.7408L26.0217 22.7408C28.2188 22.7408 29.9998 21.0162 29.9998 18.8889V13.1111C29.9998 10.9838 28.2188 9.25928 26.0217 9.25928L23.7266 9.25928V12.5185C23.7266 14.6459 21.9455 16.3704 19.7485 16.3704L12.4042 16.3704C10.5451 16.3704 9.03809 17.8296 9.03809 19.6296L9.03809 26.1482C9.03809 28.2755 10.8192 30 13.0162 30H18.9834ZM19.9015 25.2593C19.1409 25.2593 18.5244 25.8562 18.5244 26.5926C18.5244 27.329 19.1409 27.9259 19.9015 27.9259C20.662 27.9259 21.2785 27.329 21.2785 26.5926C21.2785 25.8562 20.662 25.2593 19.9015 25.2593Z",fill:"#FFDA4B"})]}),TypeScriptIcon="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20aria-label='TypeScript'%20role='img'%20viewBox='0%200%20512%20512'%3e%3crect%20width='512'%20height='512'%20rx='15%25'%20fill='%233178c6'/%3e%3cpath%20fill='%23ffffff'%20d='m233%20284h64v-41H118v41h64v183h51zm84%20173c8.1%204.2%2018%207.3%2029%209.4s23%203.1%2035%203.1c12%200%2023-1.1%2034-3.4c11-2.3%2020-6.1%2028-11c8.1-5.3%2015-12%2019-21s7.1-19%207.1-32c0-9.1-1.4-17-4.1-24s-6.6-13-12-18c-5.1-5.3-11-10-18-14s-15-8.2-24-12c-6.6-2.7-12-5.3-18-7.9c-5.2-2.6-9.7-5.2-13-7.8c-3.7-2.7-6.5-5.5-8.5-8.4c-2-3-3-6.3-3-10c0-3.4.89-6.5%202.7-9.3s4.3-5.1%207.5-7.1c3.2-2%207.2-3.5%2012-4.6c4.7-1.1%209.9-1.6%2016-1.6c4.2%200%208.6.31%2013%20.94c4.6.63%209.3%201.6%2014%202.9c4.7%201.3%209.3%202.9%2014%204.9c4.4%202%208.5%204.3%2012%206.9v-47c-7.6-2.9-16-5.1-25-6.5s-19-2.1-31-2.1c-12%200-23%201.3-34%203.8s-20%206.5-28%2012c-8.1%205.4-14%2012-19%2021c-4.7%208.4-7%2018-7%2030c0%2015%204.3%2028%2013%2038c8.6%2011%2022%2019%2039%2027c6.9%202.8%2013%205.6%2019%208.3s11%205.5%2015%208.4c4.3%202.9%207.7%206.1%2010%209.5c2.5%203.4%203.8%207.4%203.8%2012c0%203.2-.78%206.2-2.3%209s-3.9%205.2-7.1%207.2s-7.1%203.6-12%204.8c-4.7%201.1-10%201.7-17%201.7c-11%200-22-1.9-32-5.7c-11-3.8-21-9.5-28.1-15.44z'/%3e%3c/svg%3e",VectorSearchIcon=()=>jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16px",height:"16px",viewBox:"0 0 18 18",role:"img",children:[jsxRuntimeExports.jsx("defs",{children:jsxRuntimeExports.jsxs("linearGradient",{id:"fb5d9d20-fc2c-4e2c-bffd-dc236176d8b2",x1:"-6428.21",y1:"9646.124",x2:"-6428.21",y2:"9617.899",gradientTransform:"matrix(0.5, 0, 0, -0.5, 3224.856, 4823.856)",gradientUnits:"userSpaceOnUse",children:[jsxRuntimeExports.jsx("stop",{offset:"0",stopColor:"#5ea0ef"}),jsxRuntimeExports.jsx("stop",{offset:"0.178",stopColor:"#589eed"}),jsxRuntimeExports.jsx("stop",{offset:"0.406",stopColor:"#4897e9"}),jsxRuntimeExports.jsx("stop",{offset:"0.662",stopColor:"#2e8ce1"}),jsxRuntimeExports.jsx("stop",{offset:"0.936",stopColor:"#0a7cd7"}),jsxRuntimeExports.jsx("stop",{offset:"1",stopColor:"#0078d4"})]})}),jsxRuntimeExports.jsx("g",{id:"a05a9809-540f-4ec8-9a73-07896b5e7f5c",children:jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("path",{d:"M8.438,10.379h4.234v4.234H8.438ZM3.5,4.734H7.732V.5H4.086a.588.588,0,0,0-.588.588Zm.588,9.879H7.732V10.379H3.5v3.646A.588.588,0,0,0,4.086,14.613ZM3.5,9.674H7.732V5.44H3.5Zm9.88,4.939h3.646a.588.588,0,0,0,.588-.588V10.379H13.378ZM8.438,9.674h4.234V5.44H8.438Zm4.94,0h4.234V5.44H13.378Zm0-9.174V4.734h4.234V1.088A.588.588,0,0,0,17.024.5ZM8.438,4.734h4.234V.5H8.438Z",fill:"url(#fb5d9d20-fc2c-4e2c-bffd-dc236176d8b2)"}),jsxRuntimeExports.jsx("rect",{x:"-0.212",y:"14.751",width:"5.457",height:"1.243",rx:"0.581",transform:"translate(-10.133 6.282) rotate(-45)",fill:"#198ab3"}),jsxRuntimeExports.jsx("circle",{cx:"5.959",cy:"11.709",r:"3.744",fill:"#50e6ff"}),jsxRuntimeExports.jsx("circle",{cx:"5.952",cy:"11.642",r:"2.94",fill:"#fff"})]})})]}),DEFAULT_SIZE$1=16,toolsIcons={PromptFlowToolAzureContentSafety:jsxRuntimeExports.jsx(AzureContentSafetyIcon,{width:DEFAULT_SIZE$1,height:DEFAULT_SIZE$1}),PromptFlowToolSerpAPI:jsxRuntimeExports.jsx(DefaultIcon,{}),PromptFlowToolBing:jsxRuntimeExports.jsx(BingLogoIcon,{width:DEFAULT_SIZE$1,height:DEFAULT_SIZE$1}),PromptFlowToolAzureContentModerator:jsxRuntimeExports.jsx(AzureContentSafetyIcon,{width:DEFAULT_SIZE$1,height:DEFAULT_SIZE$1}),PromptFlowToolVectorIndexLookupByText:jsxRuntimeExports.jsx(VectorSearchIcon,{}),PromptFlowToolFaissIndexLookup:jsxRuntimeExports.jsx(VectorSearchIcon,{}),PromptFlowToolVectorDBLookup:jsxRuntimeExports.jsx(VectorSearchIcon,{}),PromptFlowToolVectorSearch:jsxRuntimeExports.jsx(VectorSearchIcon,{}),PromptFlowToolLlm:jsxRuntimeExports.jsx(OpenAIIcon$1,{}),PromptFlowToolPython:jsxRuntimeExports.jsx(PythonIcon,{}),PromptFlowToolTypeScript:jsxRuntimeExports.jsx(TypeScriptIcon,{width:DEFAULT_SIZE$1,height:DEFAULT_SIZE$1}),PromptFlowToolPrompt:jsxRuntimeExports.jsx(PromptIcon,{}),PromptFlowToolDefault:jsxRuntimeExports.jsx(DefaultIcon,{})};registerIcons({icons:{...toolsIcons}});var getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),rnds8=new Uint8Array(16);function rng(){if(!getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}var byteToHex=[];for(var i$1=0;i$1<256;++i$1)byteToHex[i$1]=(i$1+256).toString(16).substr(1);function bytesToUuid(j,_e){var et=_e||0,tt=byteToHex;return[tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]]].join("")}function v4(j,_e,et){var tt=_e&&et||0;typeof j=="string"&&(_e=j==="binary"?new Array(16):null,j=null),j=j||{};var rt=j.random||(j.rng||rng)();if(rt[6]=rt[6]&15|64,rt[8]=rt[8]&63|128,_e)for(var nt=0;nt<16;++nt)_e[tt+nt]=rt[nt];return _e||bytesToUuid(rt)}var toposort$1={exports:{}};toposort$1.exports=function(j){return toposort(uniqueNodes(j),j)};toposort$1.exports.array=toposort;function toposort(j,_e){for(var et=j.length,tt=new Array(et),rt={},nt=et;nt--;)rt[nt]||ot(j[nt],nt,[]);return tt;function ot(it,st,lt){if(lt.indexOf(it)>=0){var ut;try{ut=", node was:"+JSON.stringify(it)}catch{ut=""}throw new Error("Cyclic dependency"+ut)}if(!~j.indexOf(it))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(it));if(!rt[st]){rt[st]=!0;var ct=_e.filter(function(pt){return pt[0]===it});if(st=ct.length){var dt=lt.concat(it);do{var ft=ct[--st][1];ot(ft,j.indexOf(ft),dt)}while(st)}tt[--et]=it}}}function uniqueNodes(j){for(var _e=[],et=0,tt=j.length;et1?et-1:0),rt=1;rt2&&arguments[2]!==void 0?arguments[2]:stringToLowerCase;setPrototypeOf&&setPrototypeOf(j,null);let tt=_e.length;for(;tt--;){let rt=_e[tt];if(typeof rt=="string"){const nt=et(rt);nt!==rt&&(isFrozen(_e)||(_e[tt]=nt),rt=nt)}j[rt]=!0}return j}function cleanArray(j){for(let _e=0;_e/gm),TMPLIT_EXPR=seal(/\${[\w\W]*}/gm),DATA_ATTR=seal(/^data-[\-\w.\u00B7-\uFFFF]/),ARIA_ATTR=seal(/^aria-[\-\w]+$/),IS_ALLOWED_URI=seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),IS_SCRIPT_OR_DATA=seal(/^(?:\w+script|data):/i),ATTR_WHITESPACE=seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),DOCTYPE_NAME=seal(/^html$/i);var EXPRESSIONS=Object.freeze({__proto__:null,MUSTACHE_EXPR,ERB_EXPR,TMPLIT_EXPR,DATA_ATTR,ARIA_ATTR,IS_ALLOWED_URI,IS_SCRIPT_OR_DATA,ATTR_WHITESPACE,DOCTYPE_NAME});const getGlobal=function(){return typeof window>"u"?null:window},_createTrustedTypesPolicy=function(_e,et){if(typeof _e!="object"||typeof _e.createPolicy!="function")return null;let tt=null;const rt="data-tt-policy-suffix";et&&et.hasAttribute(rt)&&(tt=et.getAttribute(rt));const nt="dompurify"+(tt?"#"+tt:"");try{return _e.createPolicy(nt,{createHTML(ot){return ot},createScriptURL(ot){return ot}})}catch{return console.warn("TrustedTypes policy "+nt+" could not be created."),null}};function createDOMPurify(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:getGlobal();const _e=Ht=>createDOMPurify(Ht);if(_e.version="3.0.9",_e.removed=[],!j||!j.document||j.document.nodeType!==9)return _e.isSupported=!1,_e;let{document:et}=j;const tt=et,rt=tt.currentScript,{DocumentFragment:nt,HTMLTemplateElement:ot,Node:it,Element:st,NodeFilter:lt,NamedNodeMap:ut=j.NamedNodeMap||j.MozNamedAttrMap,HTMLFormElement:ct,DOMParser:dt,trustedTypes:ft}=j,pt=st.prototype,gt=lookupGetter(pt,"cloneNode"),vt=lookupGetter(pt,"nextSibling"),bt=lookupGetter(pt,"childNodes"),_t=lookupGetter(pt,"parentNode");if(typeof ot=="function"){const Ht=et.createElement("template");Ht.content&&Ht.content.ownerDocument&&(et=Ht.content.ownerDocument)}let xt,yt="";const{implementation:Et,createNodeIterator:St,createDocumentFragment:$t,getElementsByTagName:At}=et,{importNode:wt}=tt;let Ct={};_e.isSupported=typeof entries=="function"&&typeof _t=="function"&&Et&&Et.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:It,ERB_EXPR:Ot,TMPLIT_EXPR:Nt,DATA_ATTR:Pt,ARIA_ATTR:Mt,IS_SCRIPT_OR_DATA:Rt,ATTR_WHITESPACE:Lt}=EXPRESSIONS;let{IS_ALLOWED_URI:jt}=EXPRESSIONS,Gt=null;const Vt=addToSet({},[...html$1$1,...svg$1,...svgFilters,...mathMl$1,...text]);let Yt=null;const Xt=addToSet({},[...html$5,...svg,...mathMl,...xml]);let rr=Object.seal(create$7(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),cr=null,vr=null,Tr=!0,gr=!0,Er=!1,qt=!0,ir=!1,hr=!1,nr=!1,mr=!1,Ar=!1,Or=!1,wr=!1,Nr=!0,Wr=!1;const Vr="user-content-";let Jr=!0,Yr=!1,jr={},Hr=null;const hn=addToSet({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let pr=null;const sr=addToSet({},["audio","video","img","source","image","track"]);let Jt=null;const ur=addToSet({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),br="http://www.w3.org/1998/Math/MathML",Sr="http://www.w3.org/2000/svg",yr="http://www.w3.org/1999/xhtml";let Cr=yr,Lr=!1,Xr=null;const qr=addToSet({},[br,Sr,yr],stringToString);let Qr=null;const xn=["application/xhtml+xml","text/html"],wn="text/html";let nn=null,Ln=null;const zn=et.createElement("form"),En=function(Dt){return Dt instanceof RegExp||Dt instanceof Function},sn=function(){let Dt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Ln&&Ln===Dt)){if((!Dt||typeof Dt!="object")&&(Dt={}),Dt=clone$1(Dt),Qr=xn.indexOf(Dt.PARSER_MEDIA_TYPE)===-1?wn:Dt.PARSER_MEDIA_TYPE,nn=Qr==="application/xhtml+xml"?stringToString:stringToLowerCase,Gt=objectHasOwnProperty(Dt,"ALLOWED_TAGS")?addToSet({},Dt.ALLOWED_TAGS,nn):Vt,Yt=objectHasOwnProperty(Dt,"ALLOWED_ATTR")?addToSet({},Dt.ALLOWED_ATTR,nn):Xt,Xr=objectHasOwnProperty(Dt,"ALLOWED_NAMESPACES")?addToSet({},Dt.ALLOWED_NAMESPACES,stringToString):qr,Jt=objectHasOwnProperty(Dt,"ADD_URI_SAFE_ATTR")?addToSet(clone$1(ur),Dt.ADD_URI_SAFE_ATTR,nn):ur,pr=objectHasOwnProperty(Dt,"ADD_DATA_URI_TAGS")?addToSet(clone$1(sr),Dt.ADD_DATA_URI_TAGS,nn):sr,Hr=objectHasOwnProperty(Dt,"FORBID_CONTENTS")?addToSet({},Dt.FORBID_CONTENTS,nn):hn,cr=objectHasOwnProperty(Dt,"FORBID_TAGS")?addToSet({},Dt.FORBID_TAGS,nn):{},vr=objectHasOwnProperty(Dt,"FORBID_ATTR")?addToSet({},Dt.FORBID_ATTR,nn):{},jr=objectHasOwnProperty(Dt,"USE_PROFILES")?Dt.USE_PROFILES:!1,Tr=Dt.ALLOW_ARIA_ATTR!==!1,gr=Dt.ALLOW_DATA_ATTR!==!1,Er=Dt.ALLOW_UNKNOWN_PROTOCOLS||!1,qt=Dt.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ir=Dt.SAFE_FOR_TEMPLATES||!1,hr=Dt.WHOLE_DOCUMENT||!1,Ar=Dt.RETURN_DOM||!1,Or=Dt.RETURN_DOM_FRAGMENT||!1,wr=Dt.RETURN_TRUSTED_TYPE||!1,mr=Dt.FORCE_BODY||!1,Nr=Dt.SANITIZE_DOM!==!1,Wr=Dt.SANITIZE_NAMED_PROPS||!1,Jr=Dt.KEEP_CONTENT!==!1,Yr=Dt.IN_PLACE||!1,jt=Dt.ALLOWED_URI_REGEXP||IS_ALLOWED_URI,Cr=Dt.NAMESPACE||yr,rr=Dt.CUSTOM_ELEMENT_HANDLING||{},Dt.CUSTOM_ELEMENT_HANDLING&&En(Dt.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(rr.tagNameCheck=Dt.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Dt.CUSTOM_ELEMENT_HANDLING&&En(Dt.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(rr.attributeNameCheck=Dt.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Dt.CUSTOM_ELEMENT_HANDLING&&typeof Dt.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(rr.allowCustomizedBuiltInElements=Dt.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ir&&(gr=!1),Or&&(Ar=!0),jr&&(Gt=addToSet({},text),Yt=[],jr.html===!0&&(addToSet(Gt,html$1$1),addToSet(Yt,html$5)),jr.svg===!0&&(addToSet(Gt,svg$1),addToSet(Yt,svg),addToSet(Yt,xml)),jr.svgFilters===!0&&(addToSet(Gt,svgFilters),addToSet(Yt,svg),addToSet(Yt,xml)),jr.mathMl===!0&&(addToSet(Gt,mathMl$1),addToSet(Yt,mathMl),addToSet(Yt,xml))),Dt.ADD_TAGS&&(Gt===Vt&&(Gt=clone$1(Gt)),addToSet(Gt,Dt.ADD_TAGS,nn)),Dt.ADD_ATTR&&(Yt===Xt&&(Yt=clone$1(Yt)),addToSet(Yt,Dt.ADD_ATTR,nn)),Dt.ADD_URI_SAFE_ATTR&&addToSet(Jt,Dt.ADD_URI_SAFE_ATTR,nn),Dt.FORBID_CONTENTS&&(Hr===hn&&(Hr=clone$1(Hr)),addToSet(Hr,Dt.FORBID_CONTENTS,nn)),Jr&&(Gt["#text"]=!0),hr&&addToSet(Gt,["html","head","body"]),Gt.table&&(addToSet(Gt,["tbody"]),delete cr.tbody),Dt.TRUSTED_TYPES_POLICY){if(typeof Dt.TRUSTED_TYPES_POLICY.createHTML!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Dt.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');xt=Dt.TRUSTED_TYPES_POLICY,yt=xt.createHTML("")}else xt===void 0&&(xt=_createTrustedTypesPolicy(ft,rt)),xt!==null&&typeof yt=="string"&&(yt=xt.createHTML(""));freeze&&freeze(Dt),Ln=Dt}},Dn=addToSet({},["mi","mo","mn","ms","mtext"]),Mn=addToSet({},["foreignobject","desc","title","annotation-xml"]),In=addToSet({},["title","style","font","a","script"]),Cn=addToSet({},[...svg$1,...svgFilters,...svgDisallowed]),cn=addToSet({},[...mathMl$1,...mathMlDisallowed]),Ur=function(Dt){let Qt=_t(Dt);(!Qt||!Qt.tagName)&&(Qt={namespaceURI:Cr,tagName:"template"});const ar=stringToLowerCase(Dt.tagName),lr=stringToLowerCase(Qt.tagName);return Xr[Dt.namespaceURI]?Dt.namespaceURI===Sr?Qt.namespaceURI===yr?ar==="svg":Qt.namespaceURI===br?ar==="svg"&&(lr==="annotation-xml"||Dn[lr]):!!Cn[ar]:Dt.namespaceURI===br?Qt.namespaceURI===yr?ar==="math":Qt.namespaceURI===Sr?ar==="math"&&Mn[lr]:!!cn[ar]:Dt.namespaceURI===yr?Qt.namespaceURI===Sr&&!Mn[lr]||Qt.namespaceURI===br&&!Dn[lr]?!1:!cn[ar]&&(In[ar]||!Cn[ar]):!!(Qr==="application/xhtml+xml"&&Xr[Dt.namespaceURI]):!1},Fr=function(Dt){arrayPush(_e.removed,{element:Dt});try{Dt.parentNode.removeChild(Dt)}catch{Dt.remove()}},Hn=function(Dt,Qt){try{arrayPush(_e.removed,{attribute:Qt.getAttributeNode(Dt),from:Qt})}catch{arrayPush(_e.removed,{attribute:null,from:Qt})}if(Qt.removeAttribute(Dt),Dt==="is"&&!Yt[Dt])if(Ar||Or)try{Fr(Qt)}catch{}else try{Qt.setAttribute(Dt,"")}catch{}},ro=function(Dt){let Qt=null,ar=null;if(mr)Dt=""+Dt;else{const _r=stringMatch(Dt,/^[\r\n\t ]+/);ar=_r&&_r[0]}Qr==="application/xhtml+xml"&&Cr===yr&&(Dt=''+Dt+"");const lr=xt?xt.createHTML(Dt):Dt;if(Cr===yr)try{Qt=new dt().parseFromString(lr,Qr)}catch{}if(!Qt||!Qt.documentElement){Qt=Et.createDocument(Cr,"template",null);try{Qt.documentElement.innerHTML=Lr?yt:lr}catch{}}const tr=Qt.body||Qt.documentElement;return Dt&&ar&&tr.insertBefore(et.createTextNode(ar),tr.childNodes[0]||null),Cr===yr?At.call(Qt,hr?"html":"body")[0]:hr?Qt.documentElement:tr},Pn=function(Dt){return St.call(Dt.ownerDocument||Dt,Dt,lt.SHOW_ELEMENT|lt.SHOW_COMMENT|lt.SHOW_TEXT,null)},jo=function(Dt){return Dt instanceof ct&&(typeof Dt.nodeName!="string"||typeof Dt.textContent!="string"||typeof Dt.removeChild!="function"||!(Dt.attributes instanceof ut)||typeof Dt.removeAttribute!="function"||typeof Dt.setAttribute!="function"||typeof Dt.namespaceURI!="string"||typeof Dt.insertBefore!="function"||typeof Dt.hasChildNodes!="function")},vo=function(Dt){return typeof it=="function"&&Dt instanceof it},eo=function(Dt,Qt,ar){Ct[Dt]&&arrayForEach$1(Ct[Dt],lr=>{lr.call(_e,Qt,ar,Ln)})},Co=function(Dt){let Qt=null;if(eo("beforeSanitizeElements",Dt,null),jo(Dt))return Fr(Dt),!0;const ar=nn(Dt.nodeName);if(eo("uponSanitizeElement",Dt,{tagName:ar,allowedTags:Gt}),Dt.hasChildNodes()&&!vo(Dt.firstElementChild)&®ExpTest(/<[/\w]/g,Dt.innerHTML)&®ExpTest(/<[/\w]/g,Dt.textContent))return Fr(Dt),!0;if(!Gt[ar]||cr[ar]){if(!cr[ar]&&Ut(ar)&&(rr.tagNameCheck instanceof RegExp&®ExpTest(rr.tagNameCheck,ar)||rr.tagNameCheck instanceof Function&&rr.tagNameCheck(ar)))return!1;if(Jr&&!Hr[ar]){const lr=_t(Dt)||Dt.parentNode,tr=bt(Dt)||Dt.childNodes;if(tr&&lr){const _r=tr.length;for(let Br=_r-1;Br>=0;--Br)lr.insertBefore(gt(tr[Br],!0),vt(Dt))}}return Fr(Dt),!0}return Dt instanceof st&&!Ur(Dt)||(ar==="noscript"||ar==="noembed"||ar==="noframes")&®ExpTest(/<\/no(script|embed|frames)/i,Dt.innerHTML)?(Fr(Dt),!0):(ir&&Dt.nodeType===3&&(Qt=Dt.textContent,arrayForEach$1([It,Ot,Nt],lr=>{Qt=stringReplace(Qt,lr," ")}),Dt.textContent!==Qt&&(arrayPush(_e.removed,{element:Dt.cloneNode()}),Dt.textContent=Qt)),eo("afterSanitizeElements",Dt,null),!1)},Mr=function(Dt,Qt,ar){if(Nr&&(Qt==="id"||Qt==="name")&&(ar in et||ar in zn))return!1;if(!(gr&&!vr[Qt]&®ExpTest(Pt,Qt))){if(!(Tr&®ExpTest(Mt,Qt))){if(!Yt[Qt]||vr[Qt]){if(!(Ut(Dt)&&(rr.tagNameCheck instanceof RegExp&®ExpTest(rr.tagNameCheck,Dt)||rr.tagNameCheck instanceof Function&&rr.tagNameCheck(Dt))&&(rr.attributeNameCheck instanceof RegExp&®ExpTest(rr.attributeNameCheck,Qt)||rr.attributeNameCheck instanceof Function&&rr.attributeNameCheck(Qt))||Qt==="is"&&rr.allowCustomizedBuiltInElements&&(rr.tagNameCheck instanceof RegExp&®ExpTest(rr.tagNameCheck,ar)||rr.tagNameCheck instanceof Function&&rr.tagNameCheck(ar))))return!1}else if(!Jt[Qt]){if(!regExpTest(jt,stringReplace(ar,Lt,""))){if(!((Qt==="src"||Qt==="xlink:href"||Qt==="href")&&Dt!=="script"&&stringIndexOf(ar,"data:")===0&&pr[Dt])){if(!(Er&&!regExpTest(Rt,stringReplace(ar,Lt,"")))){if(ar)return!1}}}}}}return!0},Ut=function(Dt){return Dt!=="annotation-xml"&&Dt.indexOf("-")>0},Zt=function(Dt){eo("beforeSanitizeAttributes",Dt,null);const{attributes:Qt}=Dt;if(!Qt)return;const ar={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Yt};let lr=Qt.length;for(;lr--;){const tr=Qt[lr],{name:_r,namespaceURI:Br,value:un}=tr,fn=nn(_r);let an=_r==="value"?un:stringTrim(un);if(ar.attrName=fn,ar.attrValue=an,ar.keepAttr=!0,ar.forceKeepAttr=void 0,eo("uponSanitizeAttribute",Dt,ar),an=ar.attrValue,ar.forceKeepAttr||(Hn(_r,Dt),!ar.keepAttr))continue;if(!qt&®ExpTest(/\/>/i,an)){Hn(_r,Dt);continue}ir&&arrayForEach$1([It,Ot,Nt],_n=>{an=stringReplace(an,_n," ")});const tn=nn(Dt.nodeName);if(Mr(tn,fn,an)){if(Wr&&(fn==="id"||fn==="name")&&(Hn(_r,Dt),an=Vr+an),xt&&typeof ft=="object"&&typeof ft.getAttributeType=="function"&&!Br)switch(ft.getAttributeType(tn,fn)){case"TrustedHTML":{an=xt.createHTML(an);break}case"TrustedScriptURL":{an=xt.createScriptURL(an);break}}try{Br?Dt.setAttributeNS(Br,_r,an):Dt.setAttribute(_r,an),arrayPop(_e.removed)}catch{}}}eo("afterSanitizeAttributes",Dt,null)},zt=function Ht(Dt){let Qt=null;const ar=Pn(Dt);for(eo("beforeSanitizeShadowDOM",Dt,null);Qt=ar.nextNode();)eo("uponSanitizeShadowNode",Qt,null),!Co(Qt)&&(Qt.content instanceof nt&&Ht(Qt.content),Zt(Qt));eo("afterSanitizeShadowDOM",Dt,null)};return _e.sanitize=function(Ht){let Dt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Qt=null,ar=null,lr=null,tr=null;if(Lr=!Ht,Lr&&(Ht=""),typeof Ht!="string"&&!vo(Ht))if(typeof Ht.toString=="function"){if(Ht=Ht.toString(),typeof Ht!="string")throw typeErrorCreate("dirty is not a string, aborting")}else throw typeErrorCreate("toString is not a function");if(!_e.isSupported)return Ht;if(nr||sn(Dt),_e.removed=[],typeof Ht=="string"&&(Yr=!1),Yr){if(Ht.nodeName){const un=nn(Ht.nodeName);if(!Gt[un]||cr[un])throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place")}}else if(Ht instanceof it)Qt=ro(""),ar=Qt.ownerDocument.importNode(Ht,!0),ar.nodeType===1&&ar.nodeName==="BODY"||ar.nodeName==="HTML"?Qt=ar:Qt.appendChild(ar);else{if(!Ar&&!ir&&!hr&&Ht.indexOf("<")===-1)return xt&&wr?xt.createHTML(Ht):Ht;if(Qt=ro(Ht),!Qt)return Ar?null:wr?yt:""}Qt&&mr&&Fr(Qt.firstChild);const _r=Pn(Yr?Ht:Qt);for(;lr=_r.nextNode();)Co(lr)||(lr.content instanceof nt&&zt(lr.content),Zt(lr));if(Yr)return Ht;if(Ar){if(Or)for(tr=$t.call(Qt.ownerDocument);Qt.firstChild;)tr.appendChild(Qt.firstChild);else tr=Qt;return(Yt.shadowroot||Yt.shadowrootmode)&&(tr=wt.call(tt,tr,!0)),tr}let Br=hr?Qt.outerHTML:Qt.innerHTML;return hr&&Gt["!doctype"]&&Qt.ownerDocument&&Qt.ownerDocument.doctype&&Qt.ownerDocument.doctype.name&®ExpTest(DOCTYPE_NAME,Qt.ownerDocument.doctype.name)&&(Br=" -`+Br),ir&&arrayForEach$1([It,Ot,Nt],un=>{Br=stringReplace(Br,un," ")}),xt&&wr?xt.createHTML(Br):Br},_e.setConfig=function(){let Ht=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};sn(Ht),nr=!0},_e.clearConfig=function(){Ln=null,nr=!1},_e.isValidAttribute=function(Ht,Dt,Qt){Ln||sn({});const ar=nn(Ht),lr=nn(Dt);return Mr(ar,lr,Qt)},_e.addHook=function(Ht,Dt){typeof Dt=="function"&&(Ct[Ht]=Ct[Ht]||[],arrayPush(Ct[Ht],Dt))},_e.removeHook=function(Ht){if(Ct[Ht])return arrayPop(Ct[Ht])},_e.removeHooks=function(Ht){Ct[Ht]&&(Ct[Ht]=[])},_e.removeAllHooks=function(){Ct={}},_e}var purify=createDOMPurify(),eventemitter3={exports:{}};(function(j){var _e=Object.prototype.hasOwnProperty,et="~";function tt(){}Object.create&&(tt.prototype=Object.create(null),new tt().__proto__||(et=!1));function rt(st,lt,ut){this.fn=st,this.context=lt,this.once=ut||!1}function nt(st,lt,ut,ct,dt){if(typeof ut!="function")throw new TypeError("The listener must be a function");var ft=new rt(ut,ct||st,dt),pt=et?et+lt:lt;return st._events[pt]?st._events[pt].fn?st._events[pt]=[st._events[pt],ft]:st._events[pt].push(ft):(st._events[pt]=ft,st._eventsCount++),st}function ot(st,lt){--st._eventsCount===0?st._events=new tt:delete st._events[lt]}function it(){this._events=new tt,this._eventsCount=0}it.prototype.eventNames=function(){var lt=[],ut,ct;if(this._eventsCount===0)return lt;for(ct in ut=this._events)_e.call(ut,ct)&<.push(et?ct.slice(1):ct);return Object.getOwnPropertySymbols?lt.concat(Object.getOwnPropertySymbols(ut)):lt},it.prototype.listeners=function(lt){var ut=et?et+lt:lt,ct=this._events[ut];if(!ct)return[];if(ct.fn)return[ct.fn];for(var dt=0,ft=ct.length,pt=new Array(ft);dt=jt)return Ir(!0)}else for(fr=Lt,Lt++;;){if((fr=Gt.indexOf($t,fr+1))===-1)return Yt||_r.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:hr.length,index:Lt}),Mr();if(fr===Xt-1)return Mr(Gt.substring(Lt,fr).replace(yn,$t));if($t!==Rt||Gt[fr+1]!==Rt){if($t===Rt||fr===0||Gt[fr-1]!==Rt){Pr!==-1&&Pr=jt)return Ir(!0);break}_r.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:hr.length,index:Lt}),fr++}}else fr++}return Mr();function gr(Xr){hr.push(Xr),ar=Lt}function wr(Xr){var Zr=0;if(Xr!==-1){var sn=Gt.substring(fr+1,Xr);sn&&sn.trim()===""&&(Zr=sn.length)}return Zr}function Mr(Xr){return Yt||(Xr===void 0&&(Xr=Gt.substring(Lt)),Ut.push(Xr),Lt=Xt,gr(Ut),Er&&zr()),Ir()}function Sr(Xr){Lt=Xr,gr(Ut),Ut=[],Vr=Gt.indexOf(It,Lt)}function Ir(Xr){return{data:hr,errors:_r,meta:{delimiter:Ct,linebreak:It,aborted:Pt,truncated:!!Xr,cursor:ar+(qt||0)}}}function zr(){Ot(Ir()),hr=[],_r=[]}},this.abort=function(){Pt=!0},this.getCharIndex=function(){return Lt}}function _t(kt){var $t=kt.data,Ct=ot[$t.workerId],It=!1;if($t.error)Ct.userError($t.error,$t.file);else if($t.results&&$t.results.data){var Nt={abort:function(){It=!0,xt($t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:yt,resume:yt};if(Tt(Ct.userStep)){for(var Ot=0;Ot<$t.results.data.length&&(Ct.userStep({data:$t.results.data[Ot],errors:$t.results.errors,meta:$t.results.meta},Nt),!It);Ot++);delete $t.results}else Tt(Ct.userChunk)&&(Ct.userChunk($t.results,Nt,$t.file),delete $t.results)}$t.finished&&!It&&xt($t.workerId,$t.results)}function xt(kt,$t){var Ct=ot[kt];Tt(Ct.userComplete)&&Ct.userComplete($t),Ct.terminate(),delete ot[kt]}function yt(){throw new Error("Not implemented.")}function Et(kt){if(typeof kt!="object"||kt===null)return kt;var $t=Array.isArray(kt)?[]:{};for(var Ct in kt)$t[Ct]=Et(kt[Ct]);return $t}function St(kt,$t){return function(){kt.apply($t,arguments)}}function Tt(kt){return typeof kt=="function"}return nt&&(tt.onmessage=function(kt){var $t=kt.data;if(st.WORKER_ID===void 0&&$t&&(st.WORKER_ID=$t.workerId),typeof $t.input=="string")tt.postMessage({workerId:st.WORKER_ID,results:st.parse($t.input,$t.config),finished:!0});else if(tt.File&&$t.input instanceof File||$t.input instanceof Object){var Ct=st.parse($t.input,$t.config);Ct&&tt.postMessage({workerId:st.WORKER_ID,results:Ct,finished:!0})}}),(ct.prototype=Object.create(ut.prototype)).constructor=ct,(dt.prototype=Object.create(ut.prototype)).constructor=dt,(ft.prototype=Object.create(ft.prototype)).constructor=ft,(pt.prototype=Object.create(ut.prototype)).constructor=pt,st})})(papaparse_min);const renameKeyInObject=(j,_e,et)=>{const tt={};return Object.keys(j).forEach(rt=>{const nt=j[rt];rt===_e?tt[et]=nt:tt[rt]=nt}),tt},getDefaultNodeVariant=j=>{const{defaultVariantId:_e=BASELINE_VARIANT_ID,variants:et={}}=j,tt=et[_e];return tt==null?void 0:tt.node},getDefaultNodeList=(j,_e)=>{const et=[];return j.forEach(tt=>{const rt=_e.get(tt);if(!rt)return;const nt=getDefaultNodeVariant(rt);nt&&et.push(nt)}),et},getFlowSnapshotNodeList=(j,_e,et)=>{const tt=[];return j.forEach(rt=>{if(et.includes(rt)){tt.push({name:rt,use_variants:!0});return}const nt=_e[rt];if(!nt)return;const ot={inputs:{},...getDefaultNodeVariant(nt)};ot&&tt.push(ot)}),tt};ToolType.llm;ToolType.prompt;ValueType.string,ToolType.python;ValueType.string,ToolType.typescript;const getTokensUsageByRow=j=>{var _e,et,tt,rt,nt,ot;return j.children&&j.children.length>0?j.children.reduce((it,st)=>{const lt=getTokensUsageByRow(st);return{totalTokens:it.totalTokens+lt.totalTokens,promptTokens:it.promptTokens+lt.promptTokens,completionTokens:it.completionTokens+lt.completionTokens}},{totalTokens:0,promptTokens:0,completionTokens:0}):{totalTokens:((et=(_e=j.output)==null?void 0:_e.usage)==null?void 0:et.total_tokens)??0,promptTokens:((rt=(tt=j.output)==null?void 0:tt.usage)==null?void 0:rt.prompt_tokens)??0,completionTokens:((ot=(nt=j.output)==null?void 0:nt.usage)==null?void 0:ot.completion_tokens)??0}},numberToDigitsString=j=>j.toString().replace(/\B(?=(\d{3})+(?!\d))/g,","),timePDTFormatter=j=>{const _e=new Date(j),et=getUTCTimezoneOffset();return`${_e.getFullYear()}-${_e.getMonth()+1}-${_e.getDate()} ${_e.getHours()}:${_e.getMinutes()}:${_e.getSeconds()}:${_e.getMilliseconds()} (${et})`},getUTCTimezoneOffset=()=>{const j=new Date().getTimezoneOffset(),_e=Math.abs(j);return`UTC${(j<0?"+":"-")+`00${Math.floor(_e/60)}`.slice(-2)}:${`00${_e%60}`.slice(-2)}`},hasOwn$1=(j,_e)=>Object.prototype.hasOwnProperty.call(j,_e),resolveTool=(j,_e,et,tt)=>{var rt,nt,ot;if(((rt=j==null?void 0:j.source)==null?void 0:rt.type)==="code")return _e;if(((nt=j==null?void 0:j.source)==null?void 0:nt.type)==="package_with_prompt"){const it=(ot=j==null?void 0:j.source)==null?void 0:ot.path,st=tt(it??"");return et?{...et,inputs:{...st==null?void 0:st.inputs,...addPositionField(et==null?void 0:et.inputs,"parameter")},code:st==null?void 0:st.code}:void 0}return et},addPositionField=(j,_e)=>{if(!j)return j;const et={...j};return Object.keys(et).forEach(tt=>{et[tt]={...et[tt],position:_e}}),et},keyWords=["and","as","assert","break","class","continue","def","del","elif","else","except","False","finally","for","from","global","if","import","in","is","lambda","None","nonlocal","not","or","pass","raise","return","True","try","while","with","yield"],keyFunction=["abs","all","any","ascii","bin","bool","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","str","sum","super","tuple","type","vars","zip"],flowWords=["input","inputs","output","outputs","flow","flows"],checkNodeNameValid=j=>keyWords.some(_e=>_e===j)||keyFunction.some(_e=>_e===j)||flowWords.some(_e=>_e===j)?!1:/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(j),getNodesThatMoreThanOneVariant=(j={})=>{const _e=[];return Object.keys(j).forEach(et=>{const tt=j[et],{variants:rt={},defaultVariantId:nt,default_variant_id:ot}=tt,it=Object.keys(rt).length;it>1&&_e.push({nodeName:et,variantsCount:it,defaultVariantId:nt??ot??BASELINE_VARIANT_ID,variants:rt})}),_e},getVariantNodes=(j={})=>{const _e={};return Object.keys(j).forEach(et=>{const tt=j[et],{variants:rt={}}=tt;if(Object.keys(rt).length>1){const ot=lodashExports.cloneDeep(tt);Object.entries((ot==null?void 0:ot.variants)??{}).forEach(([st,lt])=>{lt.node&&delete lt.node.name});const it=ot.defaultVariantId;delete ot.defaultVariantId,_e[et]={default_variant_id:it,...ot}}}),Object.keys(_e).length>0?_e:void 0},revValueRegex=/^\$\{(\S+)\}$/,getRefValueFromRaw=j=>{var _e,et;return(et=(_e=`${j??""}`)==null?void 0:_e.match(revValueRegex))==null?void 0:et[1]},generateRandomStrings=j=>{const _e="abcdefghijklmnopqrstuvwxyz0123456789";let et="";for(let tt=0;ttgenerateRandomStrings(8),getRandomOutputDefinitionId=getRandomInputDefinitionId,intNumberRegExp=/^[+-]?\d+$/,doubleNumberRegExp=/^[+-]?\d+(\.\d+)?$/,isBool=j=>j.toLowerCase()==="true"||j.toLowerCase()==="false",isNumber$4=j=>doubleNumberRegExp.test(j.trim())?j===j.trim()&&j.length>0&&!Number.isNaN(Number(j)):!1,isInt=j=>intNumberRegExp.test(j.trim())?isNumber$4(j)&&Number.isInteger(Number(j)):!1,isList$1=j=>{try{const _e=JSON.parse(j);return Array.isArray(_e)}catch{return!1}},isObject$i=j=>{try{const _e=JSON.parse(j);return Object.prototype.toString.call(_e)==="[object Object]"}catch{return!1}},isTypeValid=(j,_e)=>{const et=typeof j,tt=et==="string";switch(_e){case ValueType.int:return tt?isInt(j):Number.isInteger(j);case ValueType.double:return tt?isNumber$4(j):et==="number";case ValueType.list:return tt?isList$1(j):Array.isArray(j);case ValueType.object:return tt?isObject$i(j):et==="object";case ValueType.bool:return tt?isBool(j):et==="boolean";case ValueType.function_str:return!0;default:return!0}},getCycle=(j,_e,et,tt)=>{var ot,it;const rt=[],nt=new Set(j.keys());for(j.forEach((st,lt)=>{st===0&&rt.push(lt)});rt.length>0;){const st=rt.shift();st&&(nt.delete(st),(ot=_e.get(st))==null||ot.forEach(lt=>{const ut=(j.get(lt)??0)-1;j.set(lt,ut),ut===0&&rt.push(lt)}))}for(et.forEach((st,lt)=>{st===0&&rt.push(lt)});rt.length>0;){const st=rt.shift();st&&(nt.delete(st),(it=tt.get(st))==null||it.forEach(lt=>{const ut=(et.get(lt)??0)-1;et.set(lt,ut),ut===0&&rt.push(lt)}))}return nt};function commonjsRequire$1(j){throw new Error('Could not dynamically require "'+j+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}function listCacheClear$1(){this.__data__=[],this.size=0}var _listCacheClear=listCacheClear$1;function eq$4(j,_e){return j===_e||j!==j&&_e!==_e}var eq_1=eq$4,eq$3=eq_1;function assocIndexOf$4(j,_e){for(var et=j.length;et--;)if(eq$3(j[et][0],_e))return et;return-1}var _assocIndexOf=assocIndexOf$4,assocIndexOf$3=_assocIndexOf,arrayProto=Array.prototype,splice=arrayProto.splice;function listCacheDelete$1(j){var _e=this.__data__,et=assocIndexOf$3(_e,j);if(et<0)return!1;var tt=_e.length-1;return et==tt?_e.pop():splice.call(_e,et,1),--this.size,!0}var _listCacheDelete=listCacheDelete$1,assocIndexOf$2=_assocIndexOf;function listCacheGet$1(j){var _e=this.__data__,et=assocIndexOf$2(_e,j);return et<0?void 0:_e[et][1]}var _listCacheGet=listCacheGet$1,assocIndexOf$1=_assocIndexOf;function listCacheHas$1(j){return assocIndexOf$1(this.__data__,j)>-1}var _listCacheHas=listCacheHas$1,assocIndexOf=_assocIndexOf;function listCacheSet$1(j,_e){var et=this.__data__,tt=assocIndexOf(et,j);return tt<0?(++this.size,et.push([j,_e])):et[tt][1]=_e,this}var _listCacheSet=listCacheSet$1,listCacheClear=_listCacheClear,listCacheDelete=_listCacheDelete,listCacheGet=_listCacheGet,listCacheHas=_listCacheHas,listCacheSet=_listCacheSet;function ListCache$4(j){var _e=-1,et=j==null?0:j.length;for(this.clear();++_e-1&&j%1==0&&j<_e}var _isIndex=isIndex$3,MAX_SAFE_INTEGER$1=9007199254740991;function isLength$3(j){return typeof j=="number"&&j>-1&&j%1==0&&j<=MAX_SAFE_INTEGER$1}var isLength_1=isLength$3,baseGetTag$6=_baseGetTag,isLength$2=isLength_1,isObjectLike$8=isObjectLike_1,argsTag$2="[object Arguments]",arrayTag$2="[object Array]",boolTag$4="[object Boolean]",dateTag$3="[object Date]",errorTag$2="[object Error]",funcTag$1="[object Function]",mapTag$5="[object Map]",numberTag$4="[object Number]",objectTag$4="[object Object]",regexpTag$3="[object RegExp]",setTag$5="[object Set]",stringTag$4="[object String]",weakMapTag$2="[object WeakMap]",arrayBufferTag$3="[object ArrayBuffer]",dataViewTag$4="[object DataView]",float32Tag$2="[object Float32Array]",float64Tag$2="[object Float64Array]",int8Tag$2="[object Int8Array]",int16Tag$2="[object Int16Array]",int32Tag$2="[object Int32Array]",uint8Tag$2="[object Uint8Array]",uint8ClampedTag$2="[object Uint8ClampedArray]",uint16Tag$2="[object Uint16Array]",uint32Tag$2="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag$2]=typedArrayTags[float64Tag$2]=typedArrayTags[int8Tag$2]=typedArrayTags[int16Tag$2]=typedArrayTags[int32Tag$2]=typedArrayTags[uint8Tag$2]=typedArrayTags[uint8ClampedTag$2]=typedArrayTags[uint16Tag$2]=typedArrayTags[uint32Tag$2]=!0;typedArrayTags[argsTag$2]=typedArrayTags[arrayTag$2]=typedArrayTags[arrayBufferTag$3]=typedArrayTags[boolTag$4]=typedArrayTags[dataViewTag$4]=typedArrayTags[dateTag$3]=typedArrayTags[errorTag$2]=typedArrayTags[funcTag$1]=typedArrayTags[mapTag$5]=typedArrayTags[numberTag$4]=typedArrayTags[objectTag$4]=typedArrayTags[regexpTag$3]=typedArrayTags[setTag$5]=typedArrayTags[stringTag$4]=typedArrayTags[weakMapTag$2]=!1;function baseIsTypedArray$1(j){return isObjectLike$8(j)&&isLength$2(j.length)&&!!typedArrayTags[baseGetTag$6(j)]}var _baseIsTypedArray=baseIsTypedArray$1;function baseUnary$4(j){return function(_e){return j(_e)}}var _baseUnary=baseUnary$4,_nodeUtil={exports:{}};_nodeUtil.exports;(function(j,_e){var et=_freeGlobal,tt=_e&&!_e.nodeType&&_e,rt=tt&&!0&&j&&!j.nodeType&&j,nt=rt&&rt.exports===tt,ot=nt&&et.process,it=function(){try{var st=rt&&rt.require&&rt.require("util").types;return st||ot&&ot.binding&&ot.binding("util")}catch{}}();j.exports=it})(_nodeUtil,_nodeUtil.exports);var _nodeUtilExports=_nodeUtil.exports,baseIsTypedArray=_baseIsTypedArray,baseUnary$3=_baseUnary,nodeUtil$2=_nodeUtilExports,nodeIsTypedArray=nodeUtil$2&&nodeUtil$2.isTypedArray,isTypedArray$3=nodeIsTypedArray?baseUnary$3(nodeIsTypedArray):baseIsTypedArray,isTypedArray_1=isTypedArray$3,baseTimes=_baseTimes,isArguments$2=isArguments_1,isArray$g=isArray_1,isBuffer$2=isBufferExports,isIndex$2=_isIndex,isTypedArray$2=isTypedArray_1,objectProto$8=Object.prototype,hasOwnProperty$9=objectProto$8.hasOwnProperty;function arrayLikeKeys$2(j,_e){var et=isArray$g(j),tt=!et&&isArguments$2(j),rt=!et&&!tt&&isBuffer$2(j),nt=!et&&!tt&&!rt&&isTypedArray$2(j),ot=et||tt||rt||nt,it=ot?baseTimes(j.length,String):[],st=it.length;for(var lt in j)(_e||hasOwnProperty$9.call(j,lt))&&!(ot&&(lt=="length"||rt&&(lt=="offset"||lt=="parent")||nt&&(lt=="buffer"||lt=="byteLength"||lt=="byteOffset")||isIndex$2(lt,st)))&&it.push(lt);return it}var _arrayLikeKeys=arrayLikeKeys$2,objectProto$7=Object.prototype;function isPrototype$3(j){var _e=j&&j.constructor,et=typeof _e=="function"&&_e.prototype||objectProto$7;return j===et}var _isPrototype=isPrototype$3;function overArg$2(j,_e){return function(et){return j(_e(et))}}var _overArg=overArg$2,overArg$1=_overArg,nativeKeys$1=overArg$1(Object.keys,Object),_nativeKeys=nativeKeys$1,isPrototype$2=_isPrototype,nativeKeys=_nativeKeys,objectProto$6=Object.prototype,hasOwnProperty$8=objectProto$6.hasOwnProperty;function baseKeys$1(j){if(!isPrototype$2(j))return nativeKeys(j);var _e=[];for(var et in Object(j))hasOwnProperty$8.call(j,et)&&et!="constructor"&&_e.push(et);return _e}var _baseKeys=baseKeys$1,isFunction$3=isFunction_1,isLength$1=isLength_1;function isArrayLike$8(j){return j!=null&&isLength$1(j.length)&&!isFunction$3(j)}var isArrayLike_1=isArrayLike$8,arrayLikeKeys$1=_arrayLikeKeys,baseKeys=_baseKeys,isArrayLike$7=isArrayLike_1;function keys$7(j){return isArrayLike$7(j)?arrayLikeKeys$1(j):baseKeys(j)}var keys_1=keys$7,copyObject$3=_copyObject,keys$6=keys_1;function baseAssign$1(j,_e){return j&©Object$3(_e,keys$6(_e),j)}var _baseAssign=baseAssign$1;function nativeKeysIn$1(j){var _e=[];if(j!=null)for(var et in Object(j))_e.push(et);return _e}var _nativeKeysIn=nativeKeysIn$1,isObject$d=isObject_1,isPrototype$1=_isPrototype,nativeKeysIn=_nativeKeysIn,objectProto$5=Object.prototype,hasOwnProperty$7=objectProto$5.hasOwnProperty;function baseKeysIn$1(j){if(!isObject$d(j))return nativeKeysIn(j);var _e=isPrototype$1(j),et=[];for(var tt in j)tt=="constructor"&&(_e||!hasOwnProperty$7.call(j,tt))||et.push(tt);return et}var _baseKeysIn=baseKeysIn$1,arrayLikeKeys=_arrayLikeKeys,baseKeysIn=_baseKeysIn,isArrayLike$6=isArrayLike_1;function keysIn$3(j){return isArrayLike$6(j)?arrayLikeKeys(j,!0):baseKeysIn(j)}var keysIn_1=keysIn$3,copyObject$2=_copyObject,keysIn$2=keysIn_1;function baseAssignIn$1(j,_e){return j&©Object$2(_e,keysIn$2(_e),j)}var _baseAssignIn=baseAssignIn$1,_cloneBuffer={exports:{}};_cloneBuffer.exports;(function(j,_e){var et=_root$1,tt=_e&&!_e.nodeType&&_e,rt=tt&&!0&&j&&!j.nodeType&&j,nt=rt&&rt.exports===tt,ot=nt?et.Buffer:void 0,it=ot?ot.allocUnsafe:void 0;function st(lt,ut){if(ut)return lt.slice();var ct=lt.length,dt=it?it(ct):new lt.constructor(ct);return lt.copy(dt),dt}j.exports=st})(_cloneBuffer,_cloneBuffer.exports);var _cloneBufferExports=_cloneBuffer.exports;function copyArray$1(j,_e){var et=-1,tt=j.length;for(_e||(_e=Array(tt));++etit))return!1;var lt=nt.get(j),ut=nt.get(_e);if(lt&&ut)return lt==_e&&ut==j;var ct=-1,dt=!0,ft=et&COMPARE_UNORDERED_FLAG$3?new SetCache$1:void 0;for(nt.set(j,_e),nt.set(_e,j);++ct0&&et(it)?_e>1?baseFlatten$3(it,_e-1,et,tt,rt):arrayPush$1(rt,it):tt||(rt[rt.length]=it)}return rt}var _baseFlatten=baseFlatten$3;function apply$2(j,_e,et){switch(et.length){case 0:return j.call(_e);case 1:return j.call(_e,et[0]);case 2:return j.call(_e,et[0],et[1]);case 3:return j.call(_e,et[0],et[1],et[2])}return j.apply(_e,et)}var _apply=apply$2,apply$1=_apply,nativeMax$3=Math.max;function overRest$2(j,_e,et){return _e=nativeMax$3(_e===void 0?j.length-1:_e,0),function(){for(var tt=arguments,rt=-1,nt=nativeMax$3(tt.length-_e,0),ot=Array(nt);++rt0){if(++_e>=HOT_COUNT)return arguments[0]}else _e=0;return j.apply(void 0,arguments)}}var _shortOut=shortOut$1,baseSetToString=_baseSetToString,shortOut=_shortOut,setToString$2=shortOut(baseSetToString),_setToString=setToString$2,identity$9=identity_1,overRest$1=_overRest,setToString$1=_setToString;function baseRest$1(j,_e){return setToString$1(overRest$1(j,_e,identity$9),j+"")}var _baseRest=baseRest$1;function baseFindIndex$2(j,_e,et,tt){for(var rt=j.length,nt=et+(tt?1:-1);tt?nt--:++nt-1}var _arrayIncludes=arrayIncludes$1;function arrayIncludesWith$1(j,_e,et){for(var tt=-1,rt=j==null?0:j.length;++tt=LARGE_ARRAY_SIZE){var lt=_e?null:createSet(j);if(lt)return setToArray(lt);ot=!1,rt=cacheHas,st=new SetCache}else st=_e?[]:it;e:for(;++tt1?ft.setNode(pt,ct):ft.setNode(pt)}),this},rt.prototype.setNode=function(ut,ct){return j.has(this._nodes,ut)?(arguments.length>1&&(this._nodes[ut]=ct),this):(this._nodes[ut]=arguments.length>1?ct:this._defaultNodeLabelFn(ut),this._isCompound&&(this._parent[ut]=et,this._children[ut]={},this._children[et][ut]=!0),this._in[ut]={},this._preds[ut]={},this._out[ut]={},this._sucs[ut]={},++this._nodeCount,this)},rt.prototype.node=function(ut){return this._nodes[ut]},rt.prototype.hasNode=function(ut){return j.has(this._nodes,ut)},rt.prototype.removeNode=function(ut){var ct=this;if(j.has(this._nodes,ut)){var dt=function(ft){ct.removeEdge(ct._edgeObjs[ft])};delete this._nodes[ut],this._isCompound&&(this._removeFromParentsChildList(ut),delete this._parent[ut],j.each(this.children(ut),function(ft){ct.setParent(ft)}),delete this._children[ut]),j.each(j.keys(this._in[ut]),dt),delete this._in[ut],delete this._preds[ut],j.each(j.keys(this._out[ut]),dt),delete this._out[ut],delete this._sucs[ut],--this._nodeCount}return this},rt.prototype.setParent=function(ut,ct){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(j.isUndefined(ct))ct=et;else{ct+="";for(var dt=ct;!j.isUndefined(dt);dt=this.parent(dt))if(dt===ut)throw new Error("Setting "+ct+" as parent of "+ut+" would create a cycle");this.setNode(ct)}return this.setNode(ut),this._removeFromParentsChildList(ut),this._parent[ut]=ct,this._children[ct][ut]=!0,this},rt.prototype._removeFromParentsChildList=function(ut){delete this._children[this._parent[ut]][ut]},rt.prototype.parent=function(ut){if(this._isCompound){var ct=this._parent[ut];if(ct!==et)return ct}},rt.prototype.children=function(ut){if(j.isUndefined(ut)&&(ut=et),this._isCompound){var ct=this._children[ut];if(ct)return j.keys(ct)}else{if(ut===et)return this.nodes();if(this.hasNode(ut))return[]}},rt.prototype.predecessors=function(ut){var ct=this._preds[ut];if(ct)return j.keys(ct)},rt.prototype.successors=function(ut){var ct=this._sucs[ut];if(ct)return j.keys(ct)},rt.prototype.neighbors=function(ut){var ct=this.predecessors(ut);if(ct)return j.union(ct,this.successors(ut))},rt.prototype.isLeaf=function(ut){var ct;return this.isDirected()?ct=this.successors(ut):ct=this.neighbors(ut),ct.length===0},rt.prototype.filterNodes=function(ut){var ct=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});ct.setGraph(this.graph());var dt=this;j.each(this._nodes,function(gt,mt){ut(mt)&&ct.setNode(mt,gt)}),j.each(this._edgeObjs,function(gt){ct.hasNode(gt.v)&&ct.hasNode(gt.w)&&ct.setEdge(gt,dt.edge(gt))});var ft={};function pt(gt){var mt=dt.parent(gt);return mt===void 0||ct.hasNode(mt)?(ft[gt]=mt,mt):mt in ft?ft[mt]:pt(mt)}return this._isCompound&&j.each(ct.nodes(),function(gt){ct.setParent(gt,pt(gt))}),ct},rt.prototype.setDefaultEdgeLabel=function(ut){return j.isFunction(ut)||(ut=j.constant(ut)),this._defaultEdgeLabelFn=ut,this},rt.prototype.edgeCount=function(){return this._edgeCount},rt.prototype.edges=function(){return j.values(this._edgeObjs)},rt.prototype.setPath=function(ut,ct){var dt=this,ft=arguments;return j.reduce(ut,function(pt,gt){return ft.length>1?dt.setEdge(pt,gt,ct):dt.setEdge(pt,gt),gt}),this},rt.prototype.setEdge=function(){var ut,ct,dt,ft,pt=!1,gt=arguments[0];typeof gt=="object"&>!==null&&"v"in gt?(ut=gt.v,ct=gt.w,dt=gt.name,arguments.length===2&&(ft=arguments[1],pt=!0)):(ut=gt,ct=arguments[1],dt=arguments[3],arguments.length>2&&(ft=arguments[2],pt=!0)),ut=""+ut,ct=""+ct,j.isUndefined(dt)||(dt=""+dt);var mt=it(this._isDirected,ut,ct,dt);if(j.has(this._edgeLabels,mt))return pt&&(this._edgeLabels[mt]=ft),this;if(!j.isUndefined(dt)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(ut),this.setNode(ct),this._edgeLabels[mt]=pt?ft:this._defaultEdgeLabelFn(ut,ct,dt);var bt=st(this._isDirected,ut,ct,dt);return ut=bt.v,ct=bt.w,Object.freeze(bt),this._edgeObjs[mt]=bt,nt(this._preds[ct],ut),nt(this._sucs[ut],ct),this._in[ct][mt]=bt,this._out[ut][mt]=bt,this._edgeCount++,this},rt.prototype.edge=function(ut,ct,dt){var ft=arguments.length===1?lt(this._isDirected,arguments[0]):it(this._isDirected,ut,ct,dt);return this._edgeLabels[ft]},rt.prototype.hasEdge=function(ut,ct,dt){var ft=arguments.length===1?lt(this._isDirected,arguments[0]):it(this._isDirected,ut,ct,dt);return j.has(this._edgeLabels,ft)},rt.prototype.removeEdge=function(ut,ct,dt){var ft=arguments.length===1?lt(this._isDirected,arguments[0]):it(this._isDirected,ut,ct,dt),pt=this._edgeObjs[ft];return pt&&(ut=pt.v,ct=pt.w,delete this._edgeLabels[ft],delete this._edgeObjs[ft],ot(this._preds[ct],ut),ot(this._sucs[ut],ct),delete this._in[ct][ft],delete this._out[ut][ft],this._edgeCount--),this},rt.prototype.inEdges=function(ut,ct){var dt=this._in[ut];if(dt){var ft=j.values(dt);return ct?j.filter(ft,function(pt){return pt.v===ct}):ft}},rt.prototype.outEdges=function(ut,ct){var dt=this._out[ut];if(dt){var ft=j.values(dt);return ct?j.filter(ft,function(pt){return pt.w===ct}):ft}},rt.prototype.nodeEdges=function(ut,ct){var dt=this.inEdges(ut,ct);if(dt)return dt.concat(this.outEdges(ut,ct))};function nt(ut,ct){ut[ct]?ut[ct]++:ut[ct]=1}function ot(ut,ct){--ut[ct]||delete ut[ct]}function it(ut,ct,dt,ft){var pt=""+ct,gt=""+dt;if(!ut&&pt>gt){var mt=pt;pt=gt,gt=mt}return pt+tt+gt+tt+(j.isUndefined(ft)?_e:ft)}function st(ut,ct,dt,ft){var pt=""+ct,gt=""+dt;if(!ut&&pt>gt){var mt=pt;pt=gt,gt=mt}var bt={v:pt,w:gt};return ft&&(bt.name=ft),bt}function lt(ut,ct){return it(ut,ct.v,ct.w,ct.name)}return graph}var version$1,hasRequiredVersion;function requireVersion(){return hasRequiredVersion||(hasRequiredVersion=1,version$1="2.1.8"),version$1}var lib,hasRequiredLib;function requireLib(){return hasRequiredLib||(hasRequiredLib=1,lib={Graph:requireGraph(),version:requireVersion()}),lib}var json,hasRequiredJson;function requireJson(){if(hasRequiredJson)return json;hasRequiredJson=1;var j=requireLodash(),_e=requireGraph();json={write:et,read:nt};function et(ot){var it={options:{directed:ot.isDirected(),multigraph:ot.isMultigraph(),compound:ot.isCompound()},nodes:tt(ot),edges:rt(ot)};return j.isUndefined(ot.graph())||(it.value=j.clone(ot.graph())),it}function tt(ot){return j.map(ot.nodes(),function(it){var st=ot.node(it),lt=ot.parent(it),ut={v:it};return j.isUndefined(st)||(ut.value=st),j.isUndefined(lt)||(ut.parent=lt),ut})}function rt(ot){return j.map(ot.edges(),function(it){var st=ot.edge(it),lt={v:it.v,w:it.w};return j.isUndefined(it.name)||(lt.name=it.name),j.isUndefined(st)||(lt.value=st),lt})}function nt(ot){var it=new _e(ot.options).setGraph(ot.value);return j.each(ot.nodes,function(st){it.setNode(st.v,st.value),st.parent&&it.setParent(st.v,st.parent)}),j.each(ot.edges,function(st){it.setEdge({v:st.v,w:st.w,name:st.name},st.value)}),it}return json}var components_1,hasRequiredComponents;function requireComponents(){if(hasRequiredComponents)return components_1;hasRequiredComponents=1;var j=requireLodash();components_1=_e;function _e(et){var tt={},rt=[],nt;function ot(it){j.has(tt,it)||(tt[it]=!0,nt.push(it),j.each(et.successors(it),ot),j.each(et.predecessors(it),ot))}return j.each(et.nodes(),function(it){nt=[],ot(it),nt.length&&rt.push(nt)}),rt}return components_1}var priorityQueue,hasRequiredPriorityQueue;function requirePriorityQueue(){if(hasRequiredPriorityQueue)return priorityQueue;hasRequiredPriorityQueue=1;var j=requireLodash();priorityQueue=_e;function _e(){this._arr=[],this._keyIndices={}}return _e.prototype.size=function(){return this._arr.length},_e.prototype.keys=function(){return this._arr.map(function(et){return et.key})},_e.prototype.has=function(et){return j.has(this._keyIndices,et)},_e.prototype.priority=function(et){var tt=this._keyIndices[et];if(tt!==void 0)return this._arr[tt].priority},_e.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},_e.prototype.add=function(et,tt){var rt=this._keyIndices;if(et=String(et),!j.has(rt,et)){var nt=this._arr,ot=nt.length;return rt[et]=ot,nt.push({key:et,priority:tt}),this._decrease(ot),!0}return!1},_e.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var et=this._arr.pop();return delete this._keyIndices[et.key],this._heapify(0),et.key},_e.prototype.decrease=function(et,tt){var rt=this._keyIndices[et];if(tt>this._arr[rt].priority)throw new Error("New priority is greater than current priority. Key: "+et+" Old: "+this._arr[rt].priority+" New: "+tt);this._arr[rt].priority=tt,this._decrease(rt)},_e.prototype._heapify=function(et){var tt=this._arr,rt=2*et,nt=rt+1,ot=et;rt>1,!(tt[nt].priority0&&(ct=ut.removeMin(),dt=lt[ct],dt.distance!==Number.POSITIVE_INFINITY);)st(ct).forEach(ft);return lt}return dijkstra_1}var dijkstraAll_1,hasRequiredDijkstraAll;function requireDijkstraAll(){if(hasRequiredDijkstraAll)return dijkstraAll_1;hasRequiredDijkstraAll=1;var j=requireDijkstra(),_e=requireLodash();dijkstraAll_1=et;function et(tt,rt,nt){return _e.transform(tt.nodes(),function(ot,it){ot[it]=j(tt,it,rt,nt)},{})}return dijkstraAll_1}var tarjan_1,hasRequiredTarjan;function requireTarjan(){if(hasRequiredTarjan)return tarjan_1;hasRequiredTarjan=1;var j=requireLodash();tarjan_1=_e;function _e(et){var tt=0,rt=[],nt={},ot=[];function it(st){var lt=nt[st]={onStack:!0,lowlink:tt,index:tt++};if(rt.push(st),et.successors(st).forEach(function(dt){j.has(nt,dt)?nt[dt].onStack&&(lt.lowlink=Math.min(lt.lowlink,nt[dt].index)):(it(dt),lt.lowlink=Math.min(lt.lowlink,nt[dt].lowlink))}),lt.lowlink===lt.index){var ut=[],ct;do ct=rt.pop(),nt[ct].onStack=!1,ut.push(ct);while(st!==ct);ot.push(ut)}}return et.nodes().forEach(function(st){j.has(nt,st)||it(st)}),ot}return tarjan_1}var findCycles_1,hasRequiredFindCycles;function requireFindCycles(){if(hasRequiredFindCycles)return findCycles_1;hasRequiredFindCycles=1;var j=requireLodash(),_e=requireTarjan();findCycles_1=et;function et(tt){return j.filter(_e(tt),function(rt){return rt.length>1||rt.length===1&&tt.hasEdge(rt[0],rt[0])})}return findCycles_1}var floydWarshall_1,hasRequiredFloydWarshall;function requireFloydWarshall(){if(hasRequiredFloydWarshall)return floydWarshall_1;hasRequiredFloydWarshall=1;var j=requireLodash();floydWarshall_1=et;var _e=j.constant(1);function et(rt,nt,ot){return tt(rt,nt||_e,ot||function(it){return rt.outEdges(it)})}function tt(rt,nt,ot){var it={},st=rt.nodes();return st.forEach(function(lt){it[lt]={},it[lt][lt]={distance:0},st.forEach(function(ut){lt!==ut&&(it[lt][ut]={distance:Number.POSITIVE_INFINITY})}),ot(lt).forEach(function(ut){var ct=ut.v===lt?ut.w:ut.v,dt=nt(ut);it[lt][ct]={distance:dt,predecessor:lt}})}),st.forEach(function(lt){var ut=it[lt];st.forEach(function(ct){var dt=it[ct];st.forEach(function(ft){var pt=dt[lt],gt=ut[ft],mt=dt[ft],bt=pt.distance+gt.distance;bt0;){if(lt=st.removeMin(),j.has(it,lt))ot.setEdge(lt,it[lt]);else{if(ct)throw new Error("Input graph is not connected: "+rt);ct=!0}rt.nodeEdges(lt).forEach(ut)}return ot}return prim_1}var alg,hasRequiredAlg;function requireAlg(){return hasRequiredAlg||(hasRequiredAlg=1,alg={components:requireComponents(),dijkstra:requireDijkstra(),dijkstraAll:requireDijkstraAll(),findCycles:requireFindCycles(),floydWarshall:requireFloydWarshall(),isAcyclic:requireIsAcyclic(),postorder:requirePostorder(),preorder:requirePreorder(),prim:requirePrim(),tarjan:requireTarjan(),topsort:requireTopsort()}),alg}var graphlib$1,hasRequiredGraphlib;function requireGraphlib(){if(hasRequiredGraphlib)return graphlib$1;hasRequiredGraphlib=1;var j=requireLib();return graphlib$1={Graph:j.Graph,json:requireJson(),alg:requireAlg(),version:j.version},graphlib$1}var graphlib;if(typeof commonjsRequire$1=="function")try{graphlib=requireGraphlib()}catch{}graphlib||(graphlib=window.graphlib);var graphlib_1=graphlib,cloneDeep_1,hasRequiredCloneDeep;function requireCloneDeep(){if(hasRequiredCloneDeep)return cloneDeep_1;hasRequiredCloneDeep=1;var j=_baseClone,_e=1,et=4;function tt(rt){return j(rt,_e|et)}return cloneDeep_1=tt,cloneDeep_1}var eq=eq_1,isArrayLike$3=isArrayLike_1,isIndex=_isIndex,isObject$9=isObject_1;function isIterateeCall$4(j,_e,et){if(!isObject$9(et))return!1;var tt=typeof _e;return(tt=="number"?isArrayLike$3(et)&&isIndex(_e,et.length):tt=="string"&&_e in et)?eq(et[_e],j):!1}var _isIterateeCall=isIterateeCall$4,defaults_1,hasRequiredDefaults;function requireDefaults(){if(hasRequiredDefaults)return defaults_1;hasRequiredDefaults=1;var j=_baseRest,_e=eq_1,et=_isIterateeCall,tt=keysIn_1,rt=Object.prototype,nt=rt.hasOwnProperty,ot=j(function(it,st){it=Object(it);var lt=-1,ut=st.length,ct=ut>2?st[2]:void 0;for(ct&&et(st[0],st[1],ct)&&(ut=1);++lt-1?rt[nt?_e[ot]:ot]:void 0}}var _createFind=createFind$1,reWhitespace=/\s/;function trimmedEndIndex$1(j){for(var _e=j.length;_e--&&reWhitespace.test(j.charAt(_e)););return _e}var _trimmedEndIndex=trimmedEndIndex$1,trimmedEndIndex=_trimmedEndIndex,reTrimStart=/^\s+/;function baseTrim$1(j){return j&&j.slice(0,trimmedEndIndex(j)+1).replace(reTrimStart,"")}var _baseTrim=baseTrim$1,baseTrim=_baseTrim,isObject$8=isObject_1,isSymbol$2=isSymbol_1,NAN=NaN,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt;function toNumber$2(j){if(typeof j=="number")return j;if(isSymbol$2(j))return NAN;if(isObject$8(j)){var _e=typeof j.valueOf=="function"?j.valueOf():j;j=isObject$8(_e)?_e+"":_e}if(typeof j!="string")return j===0?j:+j;j=baseTrim(j);var et=reIsBinary.test(j);return et||reIsOctal.test(j)?freeParseInt(j.slice(2),et?2:8):reIsBadHex.test(j)?NAN:+j}var toNumber_1=toNumber$2,toNumber$1=toNumber_1,INFINITY=1/0,MAX_INTEGER=17976931348623157e292;function toFinite$2(j){if(!j)return j===0?j:0;if(j=toNumber$1(j),j===INFINITY||j===-INFINITY){var _e=j<0?-1:1;return _e*MAX_INTEGER}return j===j?j:0}var toFinite_1=toFinite$2,toFinite$1=toFinite_1;function toInteger$1(j){var _e=toFinite$1(j),et=_e%1;return _e===_e?et?_e-et:_e:0}var toInteger_1=toInteger$1,baseFindIndex=_baseFindIndex,baseIteratee$7=_baseIteratee,toInteger=toInteger_1,nativeMax$2=Math.max;function findIndex$1(j,_e,et){var tt=j==null?0:j.length;if(!tt)return-1;var rt=et==null?0:toInteger(et);return rt<0&&(rt=nativeMax$2(tt+rt,0)),baseFindIndex(j,baseIteratee$7(_e),rt)}var findIndex_1=findIndex$1,createFind=_createFind,findIndex=findIndex_1,find=createFind(findIndex),find_1=find;const find$1=getDefaultExportFromCjs(find_1);var baseFlatten$2=_baseFlatten;function flatten$1(j){var _e=j==null?0:j.length;return _e?baseFlatten$2(j,1):[]}var flatten_1=flatten$1,forIn_1,hasRequiredForIn;function requireForIn(){if(hasRequiredForIn)return forIn_1;hasRequiredForIn=1;var j=_baseFor,_e=require_castFunction(),et=keysIn_1;function tt(rt,nt){return rt==null?rt:j(rt,_e(nt),et)}return forIn_1=tt,forIn_1}function last(j){var _e=j==null?0:j.length;return _e?j[_e-1]:void 0}var last_1=last;const last$1=getDefaultExportFromCjs(last_1);var baseAssignValue=_baseAssignValue,baseForOwn=_baseForOwn,baseIteratee$6=_baseIteratee;function mapValues(j,_e){var et={};return _e=baseIteratee$6(_e),baseForOwn(j,function(tt,rt,nt){baseAssignValue(et,rt,_e(tt,rt,nt))}),et}var mapValues_1=mapValues;const mapValues$1=getDefaultExportFromCjs(mapValues_1);var isSymbol$1=isSymbol_1;function baseExtremum$4(j,_e,et){for(var tt=-1,rt=j.length;++tt_e}var _baseGt=baseGt$2,baseExtremum$3=_baseExtremum,baseGt$1=_baseGt,identity$8=identity_1;function max$2(j){return j&&j.length?baseExtremum$3(j,identity$8,baseGt$1):void 0}var max_1=max$2;const max$3=getDefaultExportFromCjs(max_1);var _assignMergeValue,hasRequired_assignMergeValue;function require_assignMergeValue(){if(hasRequired_assignMergeValue)return _assignMergeValue;hasRequired_assignMergeValue=1;var j=_baseAssignValue,_e=eq_1;function et(tt,rt,nt){(nt!==void 0&&!_e(tt[rt],nt)||nt===void 0&&!(rt in tt))&&j(tt,rt,nt)}return _assignMergeValue=et,_assignMergeValue}var baseGetTag$2=_baseGetTag,getPrototype=_getPrototype,isObjectLike$2=isObjectLike_1,objectTag="[object Object]",funcProto=Function.prototype,objectProto=Object.prototype,funcToString=funcProto.toString,hasOwnProperty$3=objectProto.hasOwnProperty,objectCtorString=funcToString.call(Object);function isPlainObject$1(j){if(!isObjectLike$2(j)||baseGetTag$2(j)!=objectTag)return!1;var _e=getPrototype(j);if(_e===null)return!0;var et=hasOwnProperty$3.call(_e,"constructor")&&_e.constructor;return typeof et=="function"&&et instanceof et&&funcToString.call(et)==objectCtorString}var isPlainObject_1=isPlainObject$1;const isPlainObject$2=getDefaultExportFromCjs(isPlainObject_1);var _safeGet,hasRequired_safeGet;function require_safeGet(){if(hasRequired_safeGet)return _safeGet;hasRequired_safeGet=1;function j(_e,et){if(!(et==="constructor"&&typeof _e[et]=="function")&&et!="__proto__")return _e[et]}return _safeGet=j,_safeGet}var toPlainObject_1,hasRequiredToPlainObject;function requireToPlainObject(){if(hasRequiredToPlainObject)return toPlainObject_1;hasRequiredToPlainObject=1;var j=_copyObject,_e=keysIn_1;function et(tt){return j(tt,_e(tt))}return toPlainObject_1=et,toPlainObject_1}var _baseMergeDeep,hasRequired_baseMergeDeep;function require_baseMergeDeep(){if(hasRequired_baseMergeDeep)return _baseMergeDeep;hasRequired_baseMergeDeep=1;var j=require_assignMergeValue(),_e=_cloneBufferExports,et=_cloneTypedArray,tt=_copyArray,rt=_initCloneObject,nt=isArguments_1,ot=isArray_1,it=requireIsArrayLikeObject(),st=isBufferExports,lt=isFunction_1,ut=isObject_1,ct=isPlainObject_1,dt=isTypedArray_1,ft=require_safeGet(),pt=requireToPlainObject();function gt(mt,bt,_t,xt,yt,Et,St){var Tt=ft(mt,_t),kt=ft(bt,_t),$t=St.get(kt);if($t){j(mt,_t,$t);return}var Ct=Et?Et(Tt,kt,_t+"",mt,bt,St):void 0,It=Ct===void 0;if(It){var Nt=ot(kt),Ot=!Nt&&st(kt),jt=!Nt&&!Ot&&dt(kt);Ct=kt,Nt||Ot||jt?ot(Tt)?Ct=Tt:it(Tt)?Ct=tt(Tt):Ot?(It=!1,Ct=_e(kt,!0)):jt?(It=!1,Ct=et(kt,!0)):Ct=[]:ct(kt)||nt(kt)?(Ct=Tt,nt(Tt)?Ct=pt(Tt):(!ut(Tt)||lt(Tt))&&(Ct=rt(kt))):It=!1}It&&(St.set(kt,Ct),yt(Ct,kt,xt,Et,St),St.delete(kt)),j(mt,_t,Ct)}return _baseMergeDeep=gt,_baseMergeDeep}var _baseMerge,hasRequired_baseMerge;function require_baseMerge(){if(hasRequired_baseMerge)return _baseMerge;hasRequired_baseMerge=1;var j=_Stack,_e=require_assignMergeValue(),et=_baseFor,tt=require_baseMergeDeep(),rt=isObject_1,nt=keysIn_1,ot=require_safeGet();function it(st,lt,ut,ct,dt){st!==lt&&et(lt,function(ft,pt){if(dt||(dt=new j),rt(ft))tt(st,lt,pt,ut,it,ct,dt);else{var gt=ct?ct(ot(st,pt),ft,pt+"",st,lt,dt):void 0;gt===void 0&&(gt=ft),_e(st,pt,gt)}},nt)}return _baseMerge=it,_baseMerge}var _createAssigner,hasRequired_createAssigner;function require_createAssigner(){if(hasRequired_createAssigner)return _createAssigner;hasRequired_createAssigner=1;var j=_baseRest,_e=_isIterateeCall;function et(tt){return j(function(rt,nt){var ot=-1,it=nt.length,st=it>1?nt[it-1]:void 0,lt=it>2?nt[2]:void 0;for(st=tt.length>3&&typeof st=="function"?(it--,st):void 0,lt&&_e(nt[0],nt[1],lt)&&(st=it<3?void 0:st,it=1),rt=Object(rt);++ot_e||nt&&ot&&st&&!it&&!lt||tt&&ot&&st||!et&&st||!rt)return 1;if(!tt&&!nt&&!lt&&j<_e||lt&&et&&rt&&!tt&&!nt||it&&et&&rt||!ot&&rt||!st)return-1}return 0}var _compareAscending=compareAscending$1,compareAscending=_compareAscending;function compareMultiple$1(j,_e,et){for(var tt=-1,rt=j.criteria,nt=_e.criteria,ot=rt.length,it=et.length;++tt=it)return st;var lt=et[tt];return st*(lt=="desc"?-1:1)}}return j.index-_e.index}var _compareMultiple=compareMultiple$1,arrayMap=_arrayMap,baseGet=_baseGet,baseIteratee$4=_baseIteratee,baseMap=_baseMap,baseSortBy=_baseSortBy,baseUnary=_baseUnary,compareMultiple=_compareMultiple,identity$6=identity_1,isArray$4=isArray_1;function baseOrderBy$1(j,_e,et){_e.length?_e=arrayMap(_e,function(nt){return isArray$4(nt)?function(ot){return baseGet(ot,nt.length===1?nt[0]:nt)}:nt}):_e=[identity$6];var tt=-1;_e=arrayMap(_e,baseUnary(baseIteratee$4));var rt=baseMap(j,function(nt,ot,it){var st=arrayMap(_e,function(lt){return lt(nt)});return{criteria:st,index:++tt,value:nt}});return baseSortBy(rt,function(nt,ot){return compareMultiple(nt,ot,et)})}var _baseOrderBy=baseOrderBy$1,baseFlatten$1=_baseFlatten,baseOrderBy=_baseOrderBy,baseRest=_baseRest,isIterateeCall$2=_isIterateeCall,sortBy=baseRest(function(j,_e){if(j==null)return[];var et=_e.length;return et>1&&isIterateeCall$2(j,_e[0],_e[1])?_e=[]:et>2&&isIterateeCall$2(_e[0],_e[1],_e[2])&&(_e=[_e[0]]),baseOrderBy(j,baseFlatten$1(_e,1),[])}),sortBy_1=sortBy;const sortBy$1=getDefaultExportFromCjs(sortBy_1);var uniqueId_1,hasRequiredUniqueId;function requireUniqueId(){if(hasRequiredUniqueId)return uniqueId_1;hasRequiredUniqueId=1;var j=toString_1,_e=0;function et(tt){var rt=++_e;return j(tt)+rt}return uniqueId_1=et,uniqueId_1}var _baseZipObject,hasRequired_baseZipObject;function require_baseZipObject(){if(hasRequired_baseZipObject)return _baseZipObject;hasRequired_baseZipObject=1;function j(_e,et,tt){for(var rt=-1,nt=_e.length,ot=et.length,it={};++rt0;--it)if(ot=_e[it].dequeue(),ot){tt=tt.concat(removeNode(j,_e,et,ot,!0));break}}}return tt}function removeNode(j,_e,et,tt,rt){var nt=rt?[]:void 0;return _$o.forEach(j.inEdges(tt.v),function(ot){var it=j.edge(ot),st=j.node(ot.v);rt&&nt.push({v:ot.v,w:ot.w}),st.out-=it,assignBucket(_e,et,st)}),_$o.forEach(j.outEdges(tt.v),function(ot){var it=j.edge(ot),st=ot.w,lt=j.node(st);lt.in-=it,assignBucket(_e,et,lt)}),j.removeNode(tt.v),nt}function buildState(j,_e){var et=new Graph$8,tt=0,rt=0;_$o.forEach(j.nodes(),function(it){et.setNode(it,{v:it,in:0,out:0})}),_$o.forEach(j.edges(),function(it){var st=et.edge(it.v,it.w)||0,lt=_e(it),ut=st+lt;et.setEdge(it.v,it.w,ut),rt=Math.max(rt,et.node(it.v).out+=lt),tt=Math.max(tt,et.node(it.w).in+=lt)});var nt=_$o.range(rt+tt+3).map(function(){return new List$2}),ot=tt+1;return _$o.forEach(et.nodes(),function(it){assignBucket(nt,ot,et.node(it))}),{graph:et,buckets:nt,zeroIdx:ot}}function assignBucket(j,_e,et){et.out?et.in?j[et.out-et.in+_e].enqueue(et):j[j.length-1].enqueue(et):j[0].enqueue(et)}var _$n=lodash_1,greedyFAS=greedyFas,acyclic$1={run:run$2,undo:undo$3};function run$2(j){var _e=j.graph().acyclicer==="greedy"?greedyFAS(j,et(j)):dfsFAS(j);_$n.forEach(_e,function(tt){var rt=j.edge(tt);j.removeEdge(tt),rt.forwardName=tt.name,rt.reversed=!0,j.setEdge(tt.w,tt.v,rt,_$n.uniqueId("rev"))});function et(tt){return function(rt){return tt.edge(rt).weight}}}function dfsFAS(j){var _e=[],et={},tt={};function rt(nt){_$n.has(tt,nt)||(tt[nt]=!0,et[nt]=!0,_$n.forEach(j.outEdges(nt),function(ot){_$n.has(et,ot.w)?_e.push(ot):rt(ot.w)}),delete et[nt])}return _$n.forEach(j.nodes(),rt),_e}function undo$3(j){_$n.forEach(j.edges(),function(_e){var et=j.edge(_e);if(et.reversed){j.removeEdge(_e);var tt=et.forwardName;delete et.reversed,delete et.forwardName,j.setEdge(_e.w,_e.v,et,tt)}})}var _$m=lodash_1,Graph$7=graphlib_1.Graph,util$a={addDummyNode,simplify:simplify$1,asNonCompoundGraph,successorWeights,predecessorWeights,intersectRect,buildLayerMatrix,normalizeRanks:normalizeRanks$1,removeEmptyRanks:removeEmptyRanks$1,addBorderNode:addBorderNode$1,maxRank,partition,time:time$1,notime};function addDummyNode(j,_e,et,tt){var rt;do rt=_$m.uniqueId(tt);while(j.hasNode(rt));return et.dummy=_e,j.setNode(rt,et),rt}function simplify$1(j){var _e=new Graph$7().setGraph(j.graph());return _$m.forEach(j.nodes(),function(et){_e.setNode(et,j.node(et))}),_$m.forEach(j.edges(),function(et){var tt=_e.edge(et.v,et.w)||{weight:0,minlen:1},rt=j.edge(et);_e.setEdge(et.v,et.w,{weight:tt.weight+rt.weight,minlen:Math.max(tt.minlen,rt.minlen)})}),_e}function asNonCompoundGraph(j){var _e=new Graph$7({multigraph:j.isMultigraph()}).setGraph(j.graph());return _$m.forEach(j.nodes(),function(et){j.children(et).length||_e.setNode(et,j.node(et))}),_$m.forEach(j.edges(),function(et){_e.setEdge(et,j.edge(et))}),_e}function successorWeights(j){var _e=_$m.map(j.nodes(),function(et){var tt={};return _$m.forEach(j.outEdges(et),function(rt){tt[rt.w]=(tt[rt.w]||0)+j.edge(rt).weight}),tt});return _$m.zipObject(j.nodes(),_e)}function predecessorWeights(j){var _e=_$m.map(j.nodes(),function(et){var tt={};return _$m.forEach(j.inEdges(et),function(rt){tt[rt.v]=(tt[rt.v]||0)+j.edge(rt).weight}),tt});return _$m.zipObject(j.nodes(),_e)}function intersectRect(j,_e){var et=j.x,tt=j.y,rt=_e.x-et,nt=_e.y-tt,ot=j.width/2,it=j.height/2;if(!rt&&!nt)throw new Error("Not possible to find intersection inside of the rectangle");var st,lt;return Math.abs(nt)*ot>Math.abs(rt)*it?(nt<0&&(it=-it),st=it*rt/nt,lt=it):(rt<0&&(ot=-ot),st=ot,lt=ot*nt/rt),{x:et+st,y:tt+lt}}function buildLayerMatrix(j){var _e=_$m.map(_$m.range(maxRank(j)+1),function(){return[]});return _$m.forEach(j.nodes(),function(et){var tt=j.node(et),rt=tt.rank;_$m.isUndefined(rt)||(_e[rt][tt.order]=et)}),_e}function normalizeRanks$1(j){var _e=_$m.min(_$m.map(j.nodes(),function(et){return j.node(et).rank}));_$m.forEach(j.nodes(),function(et){var tt=j.node(et);_$m.has(tt,"rank")&&(tt.rank-=_e)})}function removeEmptyRanks$1(j){var _e=_$m.min(_$m.map(j.nodes(),function(nt){return j.node(nt).rank})),et=[];_$m.forEach(j.nodes(),function(nt){var ot=j.node(nt).rank-_e;et[ot]||(et[ot]=[]),et[ot].push(nt)});var tt=0,rt=j.graph().nodeRankFactor;_$m.forEach(et,function(nt,ot){_$m.isUndefined(nt)&&ot%rt!==0?--tt:tt&&_$m.forEach(nt,function(it){j.node(it).rank+=tt})})}function addBorderNode$1(j,_e,et,tt){var rt={width:0,height:0};return arguments.length>=4&&(rt.rank=et,rt.order=tt),addDummyNode(j,"border",rt,_e)}function maxRank(j){return _$m.max(_$m.map(j.nodes(),function(_e){var et=j.node(_e).rank;if(!_$m.isUndefined(et))return et}))}function partition(j,_e){var et={lhs:[],rhs:[]};return _$m.forEach(j,function(tt){_e(tt)?et.lhs.push(tt):et.rhs.push(tt)}),et}function time$1(j,_e){var et=_$m.now();try{return _e()}finally{console.log(j+" time: "+(_$m.now()-et)+"ms")}}function notime(j,_e){return _e()}var _$l=lodash_1,util$9=util$a,normalize$2={run:run$1,undo:undo$2};function run$1(j){j.graph().dummyChains=[],_$l.forEach(j.edges(),function(_e){normalizeEdge(j,_e)})}function normalizeEdge(j,_e){var et=_e.v,tt=j.node(et).rank,rt=_e.w,nt=j.node(rt).rank,ot=_e.name,it=j.edge(_e),st=it.labelRank;if(nt!==tt+1){j.removeEdge(_e);var lt,ut,ct;for(ct=0,++tt;ttot.lim&&(it=ot,st=!0);var lt=_$i.filter(_e.edges(),function(ut){return st===isDescendant(j,j.node(ut.v),it)&&st!==isDescendant(j,j.node(ut.w),it)});return _$i.minBy(lt,function(ut){return slack(_e,ut)})}function exchangeEdges(j,_e,et,tt){var rt=et.v,nt=et.w;j.removeEdge(rt,nt),j.setEdge(tt.v,tt.w,{}),initLowLimValues(j),initCutValues(j,_e),updateRanks(j,_e)}function updateRanks(j,_e){var et=_$i.find(j.nodes(),function(rt){return!_e.node(rt).parent}),tt=preorder(j,et);tt=tt.slice(1),_$i.forEach(tt,function(rt){var nt=j.node(rt).parent,ot=_e.edge(rt,nt),it=!1;ot||(ot=_e.edge(nt,rt),it=!0),_e.node(rt).rank=_e.node(nt).rank+(it?ot.minlen:-ot.minlen)})}function isTreeEdge(j,_e,et){return j.hasEdge(_e,et)}function isDescendant(j,_e,et){return et.low<=_e.lim&&_e.lim<=et.lim}var rankUtil=util$8,longestPath=rankUtil.longestPath,feasibleTree=feasibleTree_1,networkSimplex=networkSimplex_1,rank_1=rank$1;function rank$1(j){switch(j.graph().ranker){case"network-simplex":networkSimplexRanker(j);break;case"tight-tree":tightTreeRanker(j);break;case"longest-path":longestPathRanker(j);break;default:networkSimplexRanker(j)}}var longestPathRanker=longestPath;function tightTreeRanker(j){longestPath(j),feasibleTree(j)}function networkSimplexRanker(j){networkSimplex(j)}var _$h=lodash_1,parentDummyChains_1=parentDummyChains$1;function parentDummyChains$1(j){var _e=postorder(j);_$h.forEach(j.graph().dummyChains,function(et){for(var tt=j.node(et),rt=tt.edgeObj,nt=findPath(j,_e,rt.v,rt.w),ot=nt.path,it=nt.lca,st=0,lt=ot[st],ut=!0;et!==rt.w;){if(tt=j.node(et),ut){for(;(lt=ot[st])!==it&&j.node(lt).maxRankot||it>_e[st].lim));for(lt=st,st=tt;(st=j.parent(st))!==lt;)nt.push(st);return{path:rt.concat(nt.reverse()),lca:lt}}function postorder(j){var _e={},et=0;function tt(rt){var nt=et;_$h.forEach(j.children(rt),tt),_e[rt]={low:nt,lim:et++}}return _$h.forEach(j.children(),tt),_e}var _$g=lodash_1,util$7=util$a,nestingGraph$1={run,cleanup:cleanup$1};function run(j){var _e=util$7.addDummyNode(j,"root",{},"_root"),et=treeDepths(j),tt=_$g.max(_$g.values(et))-1,rt=2*tt+1;j.graph().nestingRoot=_e,_$g.forEach(j.edges(),function(ot){j.edge(ot).minlen*=rt});var nt=sumWeights(j)+1;_$g.forEach(j.children(),function(ot){dfs(j,_e,rt,nt,tt,et,ot)}),j.graph().nodeRankFactor=rt}function dfs(j,_e,et,tt,rt,nt,ot){var it=j.children(ot);if(!it.length){ot!==_e&&j.setEdge(_e,ot,{weight:0,minlen:et});return}var st=util$7.addBorderNode(j,"_bt"),lt=util$7.addBorderNode(j,"_bb"),ut=j.node(ot);j.setParent(st,ot),ut.borderTop=st,j.setParent(lt,ot),ut.borderBottom=lt,_$g.forEach(it,function(ct){dfs(j,_e,et,tt,rt,nt,ct);var dt=j.node(ct),ft=dt.borderTop?dt.borderTop:ct,pt=dt.borderBottom?dt.borderBottom:ct,gt=dt.borderTop?tt:2*tt,mt=ft!==pt?1:rt-nt[ot]+1;j.setEdge(st,ft,{weight:gt,minlen:mt,nestingEdge:!0}),j.setEdge(pt,lt,{weight:gt,minlen:mt,nestingEdge:!0})}),j.parent(ot)||j.setEdge(_e,st,{weight:0,minlen:rt+nt[ot]})}function treeDepths(j){var _e={};function et(tt,rt){var nt=j.children(tt);nt&&nt.length&&_$g.forEach(nt,function(ot){et(ot,rt+1)}),_e[tt]=rt}return _$g.forEach(j.children(),function(tt){et(tt,1)}),_e}function sumWeights(j){return _$g.reduce(j.edges(),function(_e,et){return _e+j.edge(et).weight},0)}function cleanup$1(j){var _e=j.graph();j.removeNode(_e.nestingRoot),delete _e.nestingRoot,_$g.forEach(j.edges(),function(et){var tt=j.edge(et);tt.nestingEdge&&j.removeEdge(et)})}var _$f=lodash_1,util$6=util$a,addBorderSegments_1=addBorderSegments$1;function addBorderSegments$1(j){function _e(et){var tt=j.children(et),rt=j.node(et);if(tt.length&&_$f.forEach(tt,_e),_$f.has(rt,"minRank")){rt.borderLeft=[],rt.borderRight=[];for(var nt=rt.minRank,ot=rt.maxRank+1;nt0;)ut%2&&(ct+=it[ut+1]),ut=ut-1>>1,it[ut]+=lt.weight;st+=lt.weight*ct})),st}var _$b=lodash_1,barycenter_1=barycenter$1;function barycenter$1(j,_e){return _$b.map(_e,function(et){var tt=j.inEdges(et);if(tt.length){var rt=_$b.reduce(tt,function(nt,ot){var it=j.edge(ot),st=j.node(ot.v);return{sum:nt.sum+it.weight*st.order,weight:nt.weight+it.weight}},{sum:0,weight:0});return{v:et,barycenter:rt.sum/rt.weight,weight:rt.weight}}else return{v:et}})}var _$a=lodash_1,resolveConflicts_1=resolveConflicts$1;function resolveConflicts$1(j,_e){var et={};_$a.forEach(j,function(rt,nt){var ot=et[rt.v]={indegree:0,in:[],out:[],vs:[rt.v],i:nt};_$a.isUndefined(rt.barycenter)||(ot.barycenter=rt.barycenter,ot.weight=rt.weight)}),_$a.forEach(_e.edges(),function(rt){var nt=et[rt.v],ot=et[rt.w];!_$a.isUndefined(nt)&&!_$a.isUndefined(ot)&&(ot.indegree++,nt.out.push(et[rt.w]))});var tt=_$a.filter(et,function(rt){return!rt.indegree});return doResolveConflicts(tt)}function doResolveConflicts(j){var _e=[];function et(nt){return function(ot){ot.merged||(_$a.isUndefined(ot.barycenter)||_$a.isUndefined(nt.barycenter)||ot.barycenter>=nt.barycenter)&&mergeEntries(nt,ot)}}function tt(nt){return function(ot){ot.in.push(nt),--ot.indegree===0&&j.push(ot)}}for(;j.length;){var rt=j.pop();_e.push(rt),_$a.forEach(rt.in.reverse(),et(rt)),_$a.forEach(rt.out,tt(rt))}return _$a.map(_$a.filter(_e,function(nt){return!nt.merged}),function(nt){return _$a.pick(nt,["vs","i","barycenter","weight"])})}function mergeEntries(j,_e){var et=0,tt=0;j.weight&&(et+=j.barycenter*j.weight,tt+=j.weight),_e.weight&&(et+=_e.barycenter*_e.weight,tt+=_e.weight),j.vs=_e.vs.concat(j.vs),j.barycenter=et/tt,j.weight=tt,j.i=Math.min(_e.i,j.i),_e.merged=!0}var _$9=lodash_1,util$5=util$a,sort_1=sort$1;function sort$1(j,_e){var et=util$5.partition(j,function(ut){return _$9.has(ut,"barycenter")}),tt=et.lhs,rt=_$9.sortBy(et.rhs,function(ut){return-ut.i}),nt=[],ot=0,it=0,st=0;tt.sort(compareWithBias(!!_e)),st=consumeUnsortable(nt,rt,st),_$9.forEach(tt,function(ut){st+=ut.vs.length,nt.push(ut.vs),ot+=ut.barycenter*ut.weight,it+=ut.weight,st=consumeUnsortable(nt,rt,st)});var lt={vs:_$9.flatten(nt,!0)};return it&&(lt.barycenter=ot/it,lt.weight=it),lt}function consumeUnsortable(j,_e,et){for(var tt;_e.length&&(tt=_$9.last(_e)).i<=et;)_e.pop(),j.push(tt.vs),et++;return et}function compareWithBias(j){return function(_e,et){return _e.barycenteret.barycenter?1:j?et.i-_e.i:_e.i-et.i}}var _$8=lodash_1,barycenter=barycenter_1,resolveConflicts=resolveConflicts_1,sort=sort_1,sortSubgraph_1=sortSubgraph$1;function sortSubgraph$1(j,_e,et,tt){var rt=j.children(_e),nt=j.node(_e),ot=nt?nt.borderLeft:void 0,it=nt?nt.borderRight:void 0,st={};ot&&(rt=_$8.filter(rt,function(pt){return pt!==ot&&pt!==it}));var lt=barycenter(j,rt);_$8.forEach(lt,function(pt){if(j.children(pt.v).length){var gt=sortSubgraph$1(j,pt.v,et,tt);st[pt.v]=gt,_$8.has(gt,"barycenter")&&mergeBarycenters(pt,gt)}});var ut=resolveConflicts(lt,et);expandSubgraphs(ut,st);var ct=sort(ut,tt);if(ot&&(ct.vs=_$8.flatten([ot,ct.vs,it],!0),j.predecessors(ot).length)){var dt=j.node(j.predecessors(ot)[0]),ft=j.node(j.predecessors(it)[0]);_$8.has(ct,"barycenter")||(ct.barycenter=0,ct.weight=0),ct.barycenter=(ct.barycenter*ct.weight+dt.order+ft.order)/(ct.weight+2),ct.weight+=2}return ct}function expandSubgraphs(j,_e){_$8.forEach(j,function(et){et.vs=_$8.flatten(et.vs.map(function(tt){return _e[tt]?_e[tt].vs:tt}),!0)})}function mergeBarycenters(j,_e){_$8.isUndefined(j.barycenter)?(j.barycenter=_e.barycenter,j.weight=_e.weight):(j.barycenter=(j.barycenter*j.weight+_e.barycenter*_e.weight)/(j.weight+_e.weight),j.weight+=_e.weight)}var _$7=lodash_1,Graph$5=graphlib_1.Graph,buildLayerGraph_1=buildLayerGraph$1;function buildLayerGraph$1(j,_e,et){var tt=createRootNode(j),rt=new Graph$5({compound:!0}).setGraph({root:tt}).setDefaultNodeLabel(function(nt){return j.node(nt)});return _$7.forEach(j.nodes(),function(nt){var ot=j.node(nt),it=j.parent(nt);(ot.rank===_e||ot.minRank<=_e&&_e<=ot.maxRank)&&(rt.setNode(nt),rt.setParent(nt,it||tt),_$7.forEach(j[et](nt),function(st){var lt=st.v===nt?st.w:st.v,ut=rt.edge(lt,nt),ct=_$7.isUndefined(ut)?0:ut.weight;rt.setEdge(lt,nt,{weight:j.edge(st).weight+ct})}),_$7.has(ot,"minRank")&&rt.setNode(nt,{borderLeft:ot.borderLeft[_e],borderRight:ot.borderRight[_e]}))}),rt}function createRootNode(j){for(var _e;j.hasNode(_e=_$7.uniqueId("_root")););return _e}var _$6=lodash_1,addSubgraphConstraints_1=addSubgraphConstraints$1;function addSubgraphConstraints$1(j,_e,et){var tt={},rt;_$6.forEach(et,function(nt){for(var ot=j.parent(nt),it,st;ot;){if(it=j.parent(ot),it?(st=tt[it],tt[it]=ot):(st=rt,rt=ot),st&&st!==ot){_e.setEdge(st,ot);return}ot=it}})}var _$5=lodash_1,initOrder=initOrder_1,crossCount=crossCount_1,sortSubgraph=sortSubgraph_1,buildLayerGraph=buildLayerGraph_1,addSubgraphConstraints=addSubgraphConstraints_1,Graph$4=graphlib_1.Graph,util$4=util$a,order_1=order$1;function order$1(j){var _e=util$4.maxRank(j),et=buildLayerGraphs(j,_$5.range(1,_e+1),"inEdges"),tt=buildLayerGraphs(j,_$5.range(_e-1,-1,-1),"outEdges"),rt=initOrder(j);assignOrder(j,rt);for(var nt=Number.POSITIVE_INFINITY,ot,it=0,st=0;st<4;++it,++st){sweepLayerGraphs(it%2?et:tt,it%4>=2),rt=util$4.buildLayerMatrix(j);var lt=crossCount(j,rt);ltlt)&&addConflict(et,dt,ut)})})}function rt(nt,ot){var it=-1,st,lt=0;return _$4.forEach(ot,function(ut,ct){if(j.node(ut).dummy==="border"){var dt=j.predecessors(ut);dt.length&&(st=j.node(dt[0]).order,tt(ot,lt,ct,it,st),lt=ct,it=st)}tt(ot,lt,ot.length,st,nt.length)}),ot}return _$4.reduce(_e,rt),et}function findOtherInnerSegmentNode(j,_e){if(j.node(_e).dummy)return _$4.find(j.predecessors(_e),function(et){return j.node(et).dummy})}function addConflict(j,_e,et){if(_e>et){var tt=_e;_e=et,et=tt}var rt=j[_e];rt||(j[_e]=rt={}),rt[et]=!0}function hasConflict(j,_e,et){if(_e>et){var tt=_e;_e=et,et=tt}return _$4.has(j[_e],et)}function verticalAlignment(j,_e,et,tt){var rt={},nt={},ot={};return _$4.forEach(_e,function(it){_$4.forEach(it,function(st,lt){rt[st]=st,nt[st]=st,ot[st]=lt})}),_$4.forEach(_e,function(it){var st=-1;_$4.forEach(it,function(lt){var ut=tt(lt);if(ut.length){ut=_$4.sortBy(ut,function(gt){return ot[gt]});for(var ct=(ut.length-1)/2,dt=Math.floor(ct),ft=Math.ceil(ct);dt<=ft;++dt){var pt=ut[dt];nt[lt]===lt&&st=0;it--)(ot=j[it])&&(nt=(rt<3?ot(nt):rt>3?ot(_e,et,nt):ot(_e,et))||nt);return rt>3&&nt&&Object.defineProperty(_e,et,nt),nt}function __spreadArray$1(j,_e,et){if(et||arguments.length===2)for(var tt=0,rt=_e.length,nt;tt"u"?InjectionMode$1.none:InjectionMode$1.insertNode,defaultPrefix:"css",namespace:void 0,cspSettings:void 0},_e),this._classNameToArgs=(tt=et==null?void 0:et.classNameToArgs)!==null&&tt!==void 0?tt:this._classNameToArgs,this._counter=(rt=et==null?void 0:et.counter)!==null&&rt!==void 0?rt:this._counter,this._keyToClassName=(ot=(nt=this._config.classNameCache)!==null&&nt!==void 0?nt:et==null?void 0:et.keyToClassName)!==null&&ot!==void 0?ot:this._keyToClassName,this._preservedRules=(it=et==null?void 0:et.preservedRules)!==null&&it!==void 0?it:this._preservedRules,this._rules=(st=et==null?void 0:et.rules)!==null&&st!==void 0?st:this._rules}return j.getInstance=function(){if(_stylesheet$1=_global$2[STYLESHEET_SETTING$1],!_stylesheet$1||_stylesheet$1._lastStyleElement&&_stylesheet$1._lastStyleElement.ownerDocument!==document){var _e=(_global$2==null?void 0:_global$2.FabricConfig)||{},et=new j(_e.mergeStyles,_e.serializedStylesheet);_stylesheet$1=et,_global$2[STYLESHEET_SETTING$1]=et}return _stylesheet$1},j.prototype.serialize=function(){return JSON.stringify({classNameToArgs:this._classNameToArgs,counter:this._counter,keyToClassName:this._keyToClassName,preservedRules:this._preservedRules,rules:this._rules})},j.prototype.setConfig=function(_e){this._config=__assign$4(__assign$4({},this._config),_e)},j.prototype.onReset=function(_e){var et=this;return this._onResetCallbacks.push(_e),function(){et._onResetCallbacks=et._onResetCallbacks.filter(function(tt){return tt!==_e})}},j.prototype.onInsertRule=function(_e){var et=this;return this._onInsertRuleCallbacks.push(_e),function(){et._onInsertRuleCallbacks=et._onInsertRuleCallbacks.filter(function(tt){return tt!==_e})}},j.prototype.getClassName=function(_e){var et=this._config.namespace,tt=_e||this._config.defaultPrefix;return"".concat(et?et+"-":"").concat(tt,"-").concat(this._counter++)},j.prototype.cacheClassName=function(_e,et,tt,rt){this._keyToClassName[et]=_e,this._classNameToArgs[_e]={args:tt,rules:rt}},j.prototype.classNameFromKey=function(_e){return this._keyToClassName[_e]},j.prototype.getClassNameCache=function(){return this._keyToClassName},j.prototype.argsFromClassName=function(_e){var et=this._classNameToArgs[_e];return et&&et.args},j.prototype.insertedRulesFromClassName=function(_e){var et=this._classNameToArgs[_e];return et&&et.rules},j.prototype.insertRule=function(_e,et){var tt=this._config.injectionMode,rt=tt!==InjectionMode$1.none?this._getStyleElement():void 0;if(et&&this._preservedRules.push(_e),rt)switch(tt){case InjectionMode$1.insertNode:var nt=rt.sheet;try{nt.insertRule(_e,nt.cssRules.length)}catch{}break;case InjectionMode$1.appendChild:rt.appendChild(document.createTextNode(_e));break}else this._rules.push(_e);this._config.onInsertRule&&this._config.onInsertRule(_e),this._onInsertRuleCallbacks.forEach(function(ot){return ot()})},j.prototype.getRules=function(_e){return(_e?this._preservedRules.join(""):"")+this._rules.join("")},j.prototype.reset=function(){this._rules=[],this._counter=0,this._classNameToArgs={},this._keyToClassName={},this._onResetCallbacks.forEach(function(_e){return _e()})},j.prototype.resetKeys=function(){this._keyToClassName={}},j.prototype._getStyleElement=function(){var _e=this;return!this._styleElement&&typeof document<"u"&&(this._styleElement=this._createStyleElement(),REUSE_STYLE_NODE$1||window.requestAnimationFrame(function(){_e._styleElement=void 0})),this._styleElement},j.prototype._createStyleElement=function(){var _e=document.head,et=document.createElement("style"),tt=null;et.setAttribute("data-merge-styles","true");var rt=this._config.cspSettings;if(rt&&rt.nonce&&et.setAttribute("nonce",rt.nonce),this._lastStyleElement)tt=this._lastStyleElement.nextElementSibling;else{var nt=this._findPlaceholderStyleTag();nt?tt=nt.nextElementSibling:tt=_e.childNodes[0]}return _e.insertBefore(et,_e.contains(tt)?tt:null),this._lastStyleElement=et,et},j.prototype._findPlaceholderStyleTag=function(){var _e=document.head;return _e?_e.querySelector("style[data-merge-styles]"):null},j}();function extractStyleParts$1(){for(var j=[],_e=0;_e=0)nt(lt.split(" "));else{var ut=rt.argsFromClassName(lt);ut?nt(ut):et.indexOf(lt)===-1&&et.push(lt)}else Array.isArray(lt)?nt(lt):typeof lt=="object"&&tt.push(lt)}}return nt(j),{classes:et,objects:tt}}function setRTL$1(j){_rtl$1!==j&&(_rtl$1=j)}function getRTL$2(){return _rtl$1===void 0&&(_rtl$1=typeof document<"u"&&!!document.documentElement&&document.documentElement.getAttribute("dir")==="rtl"),_rtl$1}var _rtl$1;_rtl$1=getRTL$2();function getStyleOptions$1(){return{rtl:getRTL$2()}}var rules$1={};function kebabRules$1(j,_e){var et=j[_e];et.charAt(0)!=="-"&&(j[_e]=rules$1[et]=rules$1[et]||et.replace(/([A-Z])/g,"-$1").toLowerCase())}var _vendorSettings$1;function getVendorSettings$1(){var j;if(!_vendorSettings$1){var _e=typeof document<"u"?document:void 0,et=typeof navigator<"u"?navigator:void 0,tt=(j=et==null?void 0:et.userAgent)===null||j===void 0?void 0:j.toLowerCase();_e?_vendorSettings$1={isWebkit:!!(_e&&"WebkitAppearance"in _e.documentElement.style),isMoz:!!(tt&&tt.indexOf("firefox")>-1),isOpera:!!(tt&&tt.indexOf("opera")>-1),isMs:!!(et&&(/rv:11.0/i.test(et.userAgent)||/Edge\/\d./i.test(navigator.userAgent)))}:_vendorSettings$1={isWebkit:!0,isMoz:!0,isOpera:!0,isMs:!0}}return _vendorSettings$1}var autoPrefixNames$1={"user-select":1};function prefixRules$1(j,_e){var et=getVendorSettings$1(),tt=j[_e];if(autoPrefixNames$1[tt]){var rt=j[_e+1];autoPrefixNames$1[tt]&&(et.isWebkit&&j.push("-webkit-"+tt,rt),et.isMoz&&j.push("-moz-"+tt,rt),et.isMs&&j.push("-ms-"+tt,rt),et.isOpera&&j.push("-o-"+tt,rt))}}var NON_PIXEL_NUMBER_PROPS$1=["column-count","font-weight","flex","flex-grow","flex-shrink","fill-opacity","opacity","order","z-index","zoom"];function provideUnits$1(j,_e){var et=j[_e],tt=j[_e+1];if(typeof tt=="number"){var rt=NON_PIXEL_NUMBER_PROPS$1.indexOf(et)>-1,nt=et.indexOf("--")>-1,ot=rt||nt?"":"px";j[_e+1]="".concat(tt).concat(ot)}}var _a$9,LEFT$1="left",RIGHT$1="right",NO_FLIP$1="@noflip",NAME_REPLACEMENTS$1=(_a$9={},_a$9[LEFT$1]=RIGHT$1,_a$9[RIGHT$1]=LEFT$1,_a$9),VALUE_REPLACEMENTS$1={"w-resize":"e-resize","sw-resize":"se-resize","nw-resize":"ne-resize"};function rtlifyRules$1(j,_e,et){if(j.rtl){var tt=_e[et];if(!tt)return;var rt=_e[et+1];if(typeof rt=="string"&&rt.indexOf(NO_FLIP$1)>=0)_e[et+1]=rt.replace(/\s*(?:\/\*\s*)?\@noflip\b(?:\s*\*\/)?\s*?/g,"");else if(tt.indexOf(LEFT$1)>=0)_e[et]=tt.replace(LEFT$1,RIGHT$1);else if(tt.indexOf(RIGHT$1)>=0)_e[et]=tt.replace(RIGHT$1,LEFT$1);else if(String(rt).indexOf(LEFT$1)>=0)_e[et+1]=rt.replace(LEFT$1,RIGHT$1);else if(String(rt).indexOf(RIGHT$1)>=0)_e[et+1]=rt.replace(RIGHT$1,LEFT$1);else if(NAME_REPLACEMENTS$1[tt])_e[et]=NAME_REPLACEMENTS$1[tt];else if(VALUE_REPLACEMENTS$1[rt])_e[et+1]=VALUE_REPLACEMENTS$1[rt];else switch(tt){case"margin":case"padding":_e[et+1]=flipQuad$1(rt);break;case"box-shadow":_e[et+1]=negateNum$1(rt,0);break}}}function negateNum$1(j,_e){var et=j.split(" "),tt=parseInt(et[_e],10);return et[0]=et[0].replace(String(tt),String(tt*-1)),et.join(" ")}function flipQuad$1(j){if(typeof j=="string"){var _e=j.split(" ");if(_e.length===4)return"".concat(_e[0]," ").concat(_e[3]," ").concat(_e[2]," ").concat(_e[1])}return j}function tokenizeWithParentheses$1(j){for(var _e=[],et=0,tt=0,rt=0;rtet&&_e.push(j.substring(et,rt)),et=rt+1);break}return et-1&&_e.push([tt.index,tt.index+tt[0].length,tt[1].split(",").map(function(rt){return":global(".concat(rt.trim(),")")}).join(", ")]);return _e.reverse().reduce(function(rt,nt){var ot=nt[0],it=nt[1],st=nt[2],lt=rt.slice(0,ot),ut=rt.slice(it);return lt+st+ut},j)}function expandSelector$1(j,_e){return j.indexOf(":global(")>=0?j.replace(globalSelectorRegExp$1,"$1"):j.indexOf(":")===0?_e+j:j.indexOf("&")<0?_e+" "+j:j}function extractSelector$1(j,_e,et,tt){_e===void 0&&(_e={__order:[]}),et.indexOf("@")===0?(et=et+"{"+j,extractRules$1([tt],_e,et)):et.indexOf(",")>-1?expandCommaSeparatedGlobals$1(et).split(",").map(function(rt){return rt.trim()}).forEach(function(rt){return extractRules$1([tt],_e,expandSelector$1(rt,j))}):extractRules$1([tt],_e,expandSelector$1(et,j))}function extractRules$1(j,_e,et){_e===void 0&&(_e={__order:[]}),et===void 0&&(et="&");var tt=Stylesheet$1.getInstance(),rt=_e[et];rt||(rt={},_e[et]=rt,_e.__order.push(et));for(var nt=0,ot=j;nt0){et.subComponentStyles={};var dt=et.subComponentStyles,ft=function(pt){if(tt.hasOwnProperty(pt)){var gt=tt[pt];dt[pt]=function(mt){return concatStyleSets.apply(void 0,gt.map(function(bt){return typeof bt=="function"?bt(mt):bt}))}}};for(var lt in tt)ft(lt)}return et}function mergeStyleSets(){for(var j=[],_e=0;_e"u")){var _e=j;return _e&&_e.ownerDocument&&_e.ownerDocument.defaultView?_e.ownerDocument.defaultView:_window}}var Async=function(){function j(_e,et){this._timeoutIds=null,this._immediateIds=null,this._intervalIds=null,this._animationFrameIds=null,this._isDisposed=!1,this._parent=_e||null,this._onErrorHandler=et,this._noop=function(){}}return j.prototype.dispose=function(){var _e;if(this._isDisposed=!0,this._parent=null,this._timeoutIds){for(_e in this._timeoutIds)this._timeoutIds.hasOwnProperty(_e)&&this.clearTimeout(parseInt(_e,10));this._timeoutIds=null}if(this._immediateIds){for(_e in this._immediateIds)this._immediateIds.hasOwnProperty(_e)&&this.clearImmediate(parseInt(_e,10));this._immediateIds=null}if(this._intervalIds){for(_e in this._intervalIds)this._intervalIds.hasOwnProperty(_e)&&this.clearInterval(parseInt(_e,10));this._intervalIds=null}if(this._animationFrameIds){for(_e in this._animationFrameIds)this._animationFrameIds.hasOwnProperty(_e)&&this.cancelAnimationFrame(parseInt(_e,10));this._animationFrameIds=null}},j.prototype.setTimeout=function(_e,et){var tt=this,rt=0;return this._isDisposed||(this._timeoutIds||(this._timeoutIds={}),rt=setTimeout(function(){try{tt._timeoutIds&&delete tt._timeoutIds[rt],_e.apply(tt._parent)}catch(nt){tt._logError(nt)}},et),this._timeoutIds[rt]=!0),rt},j.prototype.clearTimeout=function(_e){this._timeoutIds&&this._timeoutIds[_e]&&(clearTimeout(_e),delete this._timeoutIds[_e])},j.prototype.setImmediate=function(_e,et){var tt=this,rt=0,nt=getWindow(et);if(!this._isDisposed){this._immediateIds||(this._immediateIds={});var ot=function(){try{tt._immediateIds&&delete tt._immediateIds[rt],_e.apply(tt._parent)}catch(it){tt._logError(it)}};rt=nt.setTimeout(ot,0),this._immediateIds[rt]=!0}return rt},j.prototype.clearImmediate=function(_e,et){var tt=getWindow(et);this._immediateIds&&this._immediateIds[_e]&&(tt.clearTimeout(_e),delete this._immediateIds[_e])},j.prototype.setInterval=function(_e,et){var tt=this,rt=0;return this._isDisposed||(this._intervalIds||(this._intervalIds={}),rt=setInterval(function(){try{_e.apply(tt._parent)}catch(nt){tt._logError(nt)}},et),this._intervalIds[rt]=!0),rt},j.prototype.clearInterval=function(_e){this._intervalIds&&this._intervalIds[_e]&&(clearInterval(_e),delete this._intervalIds[_e])},j.prototype.throttle=function(_e,et,tt){var rt=this;if(this._isDisposed)return this._noop;var nt=et||0,ot=!0,it=!0,st=0,lt,ut,ct=null;tt&&typeof tt.leading=="boolean"&&(ot=tt.leading),tt&&typeof tt.trailing=="boolean"&&(it=tt.trailing);var dt=function(pt){var gt=Date.now(),mt=gt-st,bt=ot?nt-mt:nt;return mt>=nt&&(!pt||ot)?(st=gt,ct&&(rt.clearTimeout(ct),ct=null),lt=_e.apply(rt._parent,ut)):ct===null&&it&&(ct=rt.setTimeout(dt,bt)),lt},ft=function(){for(var pt=[],gt=0;gt=ot&&(kt=!0),ut=Tt);var $t=Tt-ut,Ct=ot-$t,It=Tt-ct,Nt=!1;return lt!==null&&(It>=lt&&pt?Nt=!0:Ct=Math.min(Ct,lt-It)),$t>=ot||Nt||kt?mt(Tt):(pt===null||!St)&&st&&(pt=rt.setTimeout(bt,Ct)),dt},_t=function(){return!!pt},xt=function(){_t()&>(Date.now())},yt=function(){return _t()&&mt(Date.now()),dt},Et=function(){for(var St=[],Tt=0;Tt-1)for(var ot=et.split(/[ ,]+/),it=0;it"u")){var _e=j;return _e&&_e.ownerDocument?_e.ownerDocument:document}}var _scrollbarWidth,_bodyScrollDisabledCount=0,DisabledScrollClassName=mergeStyles$1({overflow:"hidden !important"}),DATA_IS_SCROLLABLE_ATTRIBUTE="data-is-scrollable",allowScrollOnElement=function(j,_e){if(j){var et=0,tt=null,rt=function(ot){ot.targetTouches.length===1&&(et=ot.targetTouches[0].clientY)},nt=function(ot){if(ot.targetTouches.length===1&&(ot.stopPropagation(),!!tt)){var it=ot.targetTouches[0].clientY-et,st=findScrollableParent(ot.target);st&&(tt=st),tt.scrollTop===0&&it>0&&ot.preventDefault(),tt.scrollHeight-Math.ceil(tt.scrollTop)<=tt.clientHeight&&it<0&&ot.preventDefault()}};_e.on(j,"touchstart",rt,{passive:!1}),_e.on(j,"touchmove",nt,{passive:!1}),tt=j}},allowOverscrollOnElement=function(j,_e){if(j){var et=function(tt){tt.stopPropagation()};_e.on(j,"touchmove",et,{passive:!1})}},_disableIosBodyScroll=function(j){j.preventDefault()};function disableBodyScroll(){var j=getDocument();j&&j.body&&!_bodyScrollDisabledCount&&(j.body.classList.add(DisabledScrollClassName),j.body.addEventListener("touchmove",_disableIosBodyScroll,{passive:!1,capture:!1})),_bodyScrollDisabledCount++}function enableBodyScroll(){if(_bodyScrollDisabledCount>0){var j=getDocument();j&&j.body&&_bodyScrollDisabledCount===1&&(j.body.classList.remove(DisabledScrollClassName),j.body.removeEventListener("touchmove",_disableIosBodyScroll)),_bodyScrollDisabledCount--}}function getScrollbarWidth(){if(_scrollbarWidth===void 0){var j=document.createElement("div");j.style.setProperty("width","100px"),j.style.setProperty("height","100px"),j.style.setProperty("overflow","scroll"),j.style.setProperty("position","absolute"),j.style.setProperty("top","-9999px"),document.body.appendChild(j),_scrollbarWidth=j.offsetWidth-j.clientWidth,document.body.removeChild(j)}return _scrollbarWidth}function findScrollableParent(j){for(var _e=j,et=getDocument(j);_e&&_e!==et.body;){if(_e.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE)==="true")return _e;_e=_e.parentElement}for(_e=j;_e&&_e!==et.body;){if(_e.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE)!=="false"){var tt=getComputedStyle(_e),rt=tt?tt.getPropertyValue("overflow-y"):"";if(rt&&(rt==="scroll"||rt==="auto"))return _e}_e=_e.parentElement}return(!_e||_e===et.body)&&(_e=getWindow(j)),_e}var _warningCallback=void 0;function warn$1(j){console&&console.warn&&console.warn(j)}var GLOBAL_SETTINGS_PROP_NAME="__globalSettings__",CALLBACK_STATE_PROP_NAME="__callbacks__",_counter=0,GlobalSettings=function(){function j(){}return j.getValue=function(_e,et){var tt=_getGlobalSettings();return tt[_e]===void 0&&(tt[_e]=typeof et=="function"?et():et),tt[_e]},j.setValue=function(_e,et){var tt=_getGlobalSettings(),rt=tt[CALLBACK_STATE_PROP_NAME],nt=tt[_e];if(et!==nt){tt[_e]=et;var ot={oldValue:nt,value:et,key:_e};for(var it in rt)rt.hasOwnProperty(it)&&rt[it](ot)}return et},j.addChangeListener=function(_e){var et=_e.__id__,tt=_getCallbacks();et||(et=_e.__id__=String(_counter++)),tt[et]=_e},j.removeChangeListener=function(_e){var et=_getCallbacks();delete et[_e.__id__]},j}();function _getGlobalSettings(){var j,_e=getWindow(),et=_e||{};return et[GLOBAL_SETTINGS_PROP_NAME]||(et[GLOBAL_SETTINGS_PROP_NAME]=(j={},j[CALLBACK_STATE_PROP_NAME]={},j)),et[GLOBAL_SETTINGS_PROP_NAME]}function _getCallbacks(){var j=_getGlobalSettings();return j[CALLBACK_STATE_PROP_NAME]}var KeyCodes$1={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,pauseBreak:19,capslock:20,escape:27,space:32,pageUp:33,pageDown:34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,del:46,zero:48,one:49,two:50,three:51,four:52,five:53,six:54,seven:55,eight:56,nine:57,colon:58,a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90,leftWindow:91,rightWindow:92,select:93,zero_numpad:96,one_numpad:97,two_numpad:98,three_numpad:99,four_numpad:100,five_numpad:101,six_numpad:102,seven_numpad:103,eight_numpad:104,nine_numpad:105,multiply:106,add:107,subtract:109,decimalPoint:110,divide:111,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,numlock:144,scrollLock:145,semicolon:186,equalSign:187,comma:188,dash:189,period:190,forwardSlash:191,graveAccent:192,openBracket:219,backSlash:220,closeBracket:221,singleQuote:222},Rectangle$1=function(){function j(_e,et,tt,rt){_e===void 0&&(_e=0),et===void 0&&(et=0),tt===void 0&&(tt=0),rt===void 0&&(rt=0),this.top=tt,this.bottom=rt,this.left=_e,this.right=et}return Object.defineProperty(j.prototype,"width",{get:function(){return this.right-this.left},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"height",{get:function(){return this.bottom-this.top},enumerable:!1,configurable:!0}),j.prototype.equals=function(_e){return parseFloat(this.top.toFixed(4))===parseFloat(_e.top.toFixed(4))&&parseFloat(this.bottom.toFixed(4))===parseFloat(_e.bottom.toFixed(4))&&parseFloat(this.left.toFixed(4))===parseFloat(_e.left.toFixed(4))&&parseFloat(this.right.toFixed(4))===parseFloat(_e.right.toFixed(4))},j}();function appendFunction(j){for(var _e=[],et=1;et-1&&rt._virtual.children.splice(nt,1)}et._virtual.parent=tt||void 0,tt&&(tt._virtual||(tt._virtual={children:[]}),tt._virtual.children.push(et))}var IS_FOCUSABLE_ATTRIBUTE$1="data-is-focusable",IS_VISIBLE_ATTRIBUTE="data-is-visible",FOCUSZONE_ID_ATTRIBUTE$1="data-focuszone-id",FOCUSZONE_SUB_ATTRIBUTE="data-is-sub-focuszone";function getFirstFocusable(j,_e,et){return getNextElement(j,_e,!0,!1,!1,et)}function getLastFocusable(j,_e,et){return getPreviousElement(j,_e,!0,!1,!0,et)}function getFirstTabbable(j,_e,et,tt){return tt===void 0&&(tt=!0),getNextElement(j,_e,tt,!1,!1,et,!1,!0)}function getLastTabbable(j,_e,et,tt){return tt===void 0&&(tt=!0),getPreviousElement(j,_e,tt,!1,!0,et,!1,!0)}function focusFirstChild(j,_e){var et=getNextElement(j,j,!0,!1,!1,!0,void 0,void 0,_e);return et?(focusAsync(et),!0):!1}function getPreviousElement(j,_e,et,tt,rt,nt,ot,it){if(!_e||!ot&&_e===j)return null;var st=isElementVisible(_e);if(rt&&st&&(nt||!(isElementFocusZone(_e)||isElementFocusSubZone(_e)))){var lt=getPreviousElement(j,_e.lastElementChild,!0,!0,!0,nt,ot,it);if(lt){if(it&&isElementTabbable(lt,!0)||!it)return lt;var ut=getPreviousElement(j,lt.previousElementSibling,!0,!0,!0,nt,ot,it);if(ut)return ut;for(var ct=lt.parentElement;ct&&ct!==_e;){var dt=getPreviousElement(j,ct.previousElementSibling,!0,!0,!0,nt,ot,it);if(dt)return dt;ct=ct.parentElement}}}if(et&&st&&isElementTabbable(_e,it))return _e;var ft=getPreviousElement(j,_e.previousElementSibling,!0,!0,!0,nt,ot,it);return ft||(tt?null:getPreviousElement(j,_e.parentElement,!0,!1,!1,nt,ot,it))}function getNextElement(j,_e,et,tt,rt,nt,ot,it,st){if(!_e||_e===j&&rt&&!ot)return null;var lt=st?isElementVisibleAndNotHidden:isElementVisible,ut=lt(_e);if(et&&ut&&isElementTabbable(_e,it))return _e;if(!rt&&ut&&(nt||!(isElementFocusZone(_e)||isElementFocusSubZone(_e)))){var ct=getNextElement(j,_e.firstElementChild,!0,!0,!1,nt,ot,it,st);if(ct)return ct}if(_e===j)return null;var dt=getNextElement(j,_e.nextElementSibling,!0,!0,!1,nt,ot,it,st);return dt||(tt?null:getNextElement(j,_e.parentElement,!1,!1,!0,nt,ot,it,st))}function isElementVisible(j){if(!j||!j.getAttribute)return!1;var _e=j.getAttribute(IS_VISIBLE_ATTRIBUTE);return _e!=null?_e==="true":j.offsetHeight!==0||j.offsetParent!==null||j.isVisible===!0}function isElementVisibleAndNotHidden(j){return!!j&&isElementVisible(j)&&!j.hidden&&window.getComputedStyle(j).visibility!=="hidden"}function isElementTabbable(j,_e){if(!j||j.disabled)return!1;var et=0,tt=null;j&&j.getAttribute&&(tt=j.getAttribute("tabIndex"),tt&&(et=parseInt(tt,10)));var rt=j.getAttribute?j.getAttribute(IS_FOCUSABLE_ATTRIBUTE$1):null,nt=tt!==null&&et>=0,ot=!!j&&rt!=="false"&&(j.tagName==="A"||j.tagName==="BUTTON"||j.tagName==="INPUT"||j.tagName==="TEXTAREA"||j.tagName==="SELECT"||rt==="true"||nt);return _e?et!==-1&&ot:ot}function isElementFocusZone(j){return!!(j&&j.getAttribute&&j.getAttribute(FOCUSZONE_ID_ATTRIBUTE$1))}function isElementFocusSubZone(j){return!!(j&&j.getAttribute&&j.getAttribute(FOCUSZONE_SUB_ATTRIBUTE)==="true")}function doesElementContainFocus(j){var _e=getDocument(j),et=_e&&_e.activeElement;return!!(et&&elementContains(j,et))}function shouldWrapFocus(j,_e){return elementContainsAttribute(j,_e)!=="true"}var animationId=void 0;function focusAsync(j){if(j){var _e=getWindow(j);_e&&(animationId!==void 0&&_e.cancelAnimationFrame(animationId),animationId=_e.requestAnimationFrame(function(){j&&j.focus(),animationId=void 0}))}}function getFocusableByIndexPath(j,_e){for(var et=j,tt=0,rt=_e;tt(j.cacheSize||MAX_CACHE_COUNT)){var ft=getWindow();!((st=ft==null?void 0:ft.FabricConfig)===null||st===void 0)&&st.enableClassNameCacheFullWarning&&(console.warn("Styles are being recalculated too frequently. Cache miss rate is ".concat(et,"/").concat(tt,".")),console.trace()),_e.clear(),et=0,j.disableCaching=!0}return lt[retVal]};return nt}function _traverseEdge(j,_e){return _e=_normalizeValue(_e),j.has(_e)||j.set(_e,new Map),j.get(_e)}function _traverseMap(j,_e){if(typeof _e=="function"){var et=_e.__cachedInputs__;if(et)for(var tt=0,rt=_e.__cachedInputs__;tt"u"?null:WeakMap;function resetMemoizations(){_resetCounter++}function memoizeFunction(j,_e,et){if(_e===void 0&&(_e=100),et===void 0&&(et=!1),!_weakMap)return j;if(!_initializedStylesheetResets$1){var tt=Stylesheet$1.getInstance();tt&&tt.onReset&&Stylesheet$1.getInstance().onReset(resetMemoizations),_initializedStylesheetResets$1=!0}var rt,nt=0,ot=_resetCounter;return function(){for(var st=[],lt=0;lt0&&nt>_e)&&(rt=_createNode(),nt=0,ot=_resetCounter),ut=rt;for(var ct=0;ct=0||st.indexOf("data-")===0||st.indexOf("aria-")===0;lt&&(!et||(et==null?void 0:et.indexOf(st))===-1)&&(rt[st]=j[st])}return rt}function initializeComponentRef(j){extendComponent(j,{componentDidMount:_onMount,componentDidUpdate:_onUpdate,componentWillUnmount:_onUnmount})}function _onMount(){_setComponentRef(this.props.componentRef,this)}function _onUpdate(j){j.componentRef!==this.props.componentRef&&(_setComponentRef(j.componentRef,null),_setComponentRef(this.props.componentRef,this))}function _onUnmount(){_setComponentRef(this.props.componentRef,null)}function _setComponentRef(j,_e){j&&(typeof j=="object"?j.current=_e:typeof j=="function"&&j(_e))}var _a$8,DirectionalKeyCodes=(_a$8={},_a$8[KeyCodes$1.up]=1,_a$8[KeyCodes$1.down]=1,_a$8[KeyCodes$1.left]=1,_a$8[KeyCodes$1.right]=1,_a$8[KeyCodes$1.home]=1,_a$8[KeyCodes$1.end]=1,_a$8[KeyCodes$1.tab]=1,_a$8[KeyCodes$1.pageUp]=1,_a$8[KeyCodes$1.pageDown]=1,_a$8);function isDirectionalKeyCode(j){return!!DirectionalKeyCodes[j]}var IsFocusVisibleClassName="ms-Fabric--isFocusVisible",IsFocusHiddenClassName="ms-Fabric--isFocusHidden";function updateClassList(j,_e){j&&(j.classList.add(_e?IsFocusVisibleClassName:IsFocusHiddenClassName),j.classList.remove(_e?IsFocusHiddenClassName:IsFocusVisibleClassName))}function setFocusVisibility(j,_e,et){var tt;et?et.forEach(function(rt){return updateClassList(rt.current,j)}):updateClassList((tt=getWindow(_e))===null||tt===void 0?void 0:tt.document.body,j)}var mountCounters=new WeakMap,callbackMap=new WeakMap;function setMountCounters(j,_e){var et,tt=mountCounters.get(j);return tt?et=tt+_e:et=1,mountCounters.set(j,et),et}function setCallbackMap(j){var _e=callbackMap.get(j);if(_e)return _e;var et=function(ot){return _onMouseDown(ot,j.registeredProviders)},tt=function(ot){return _onPointerDown(ot,j.registeredProviders)},rt=function(ot){return _onKeyDown(ot,j.registeredProviders)},nt=function(ot){return _onKeyUp(ot,j.registeredProviders)};return _e={onMouseDown:et,onPointerDown:tt,onKeyDown:rt,onKeyUp:nt},callbackMap.set(j,_e),_e}var FocusRectsContext=reactExports.createContext(void 0);function useFocusRects(j){var _e=reactExports.useContext(FocusRectsContext);reactExports.useEffect(function(){var et,tt,rt,nt,ot=getWindow(j==null?void 0:j.current);if(!(!ot||((et=ot.FabricConfig)===null||et===void 0?void 0:et.disableFocusRects)===!0)){var it=ot,st,lt,ut,ct;if(!((tt=_e==null?void 0:_e.providerRef)===null||tt===void 0)&&tt.current&&(!((nt=(rt=_e==null?void 0:_e.providerRef)===null||rt===void 0?void 0:rt.current)===null||nt===void 0)&&nt.addEventListener)){it=_e.providerRef.current;var dt=setCallbackMap(_e);st=dt.onMouseDown,lt=dt.onPointerDown,ut=dt.onKeyDown,ct=dt.onKeyUp}else st=_onMouseDown,lt=_onPointerDown,ut=_onKeyDown,ct=_onKeyUp;var ft=setMountCounters(it,1);return ft<=1&&(it.addEventListener("mousedown",st,!0),it.addEventListener("pointerdown",lt,!0),it.addEventListener("keydown",ut,!0),it.addEventListener("keyup",ct,!0)),function(){var pt;!ot||((pt=ot.FabricConfig)===null||pt===void 0?void 0:pt.disableFocusRects)===!0||(ft=setMountCounters(it,-1),ft===0&&(it.removeEventListener("mousedown",st,!0),it.removeEventListener("pointerdown",lt,!0),it.removeEventListener("keydown",ut,!0),it.removeEventListener("keyup",ct,!0)))}}},[_e,j])}var FocusRects=function(j){return useFocusRects(j.rootRef),null};function _onMouseDown(j,_e){setFocusVisibility(!1,j.target,_e)}function _onPointerDown(j,_e){j.pointerType!=="mouse"&&setFocusVisibility(!1,j.target,_e)}function _onKeyDown(j,_e){isDirectionalKeyCode(j.which)&&setFocusVisibility(!0,j.target,_e)}function _onKeyUp(j,_e){isDirectionalKeyCode(j.which)&&setFocusVisibility(!0,j.target,_e)}var FocusRectsProvider=function(j){var _e=j.providerRef,et=j.layerRoot,tt=reactExports.useState([])[0],rt=reactExports.useContext(FocusRectsContext),nt=rt!==void 0&&!et,ot=reactExports.useMemo(function(){return nt?void 0:{providerRef:_e,registeredProviders:tt,registerProvider:function(it){tt.push(it),rt==null||rt.registerProvider(it)},unregisterProvider:function(it){rt==null||rt.unregisterProvider(it);var st=tt.indexOf(it);st>=0&&tt.splice(st,1)}}},[_e,tt,rt,nt]);return reactExports.useEffect(function(){if(ot)return ot.registerProvider(ot.providerRef),function(){return ot.unregisterProvider(ot.providerRef)}},[ot]),ot?reactExports.createElement(FocusRectsContext.Provider,{value:ot},j.children):reactExports.createElement(reactExports.Fragment,null,j.children)};function getItem(j){var _e=null;try{var et=getWindow();_e=et?et.localStorage.getItem(j):null}catch{}return _e}var _language,STORAGE_KEY="language";function getLanguage(j){if(j===void 0&&(j="sessionStorage"),_language===void 0){var _e=getDocument(),et=j==="localStorage"?getItem(STORAGE_KEY):j==="sessionStorage"?getItem$1(STORAGE_KEY):void 0;et&&(_language=et),_language===void 0&&_e&&(_language=_e.documentElement.getAttribute("lang")),_language===void 0&&(_language="en")}return _language}function merge$3(j){for(var _e=[],et=1;et-1;j[tt]=nt?rt:_merge(j[tt]||{},rt,et)}else j[tt]=rt}return et.pop(),j}var isIOS=function(){return!window||!window.navigator||!window.navigator.userAgent?!1:/iPad|iPhone|iPod/i.test(window.navigator.userAgent)},tagsToIgnore=["TEMPLATE","STYLE","SCRIPT"];function modalize(j){var _e=getDocument(j);if(!_e)return function(){};for(var et=[];j!==_e.body&&j.parentElement;){for(var tt=0,rt=j.parentElement.children;tt"u"||j){var et=getWindow(),tt=(_e=et==null?void 0:et.navigator)===null||_e===void 0?void 0:_e.userAgent;isMacResult=!!tt&&tt.indexOf("Macintosh")!==-1}return!!isMacResult}function createComposedRenderFunction(j){var _e=createMemoizer(function(et){var tt=createMemoizer(function(rt){return function(nt){return et(nt,rt)}});return function(rt,nt){return j(rt,nt?tt(nt):et)}});return _e}var memoizer=createMemoizer(createComposedRenderFunction);function composeRenderFunction(j,_e){return memoizer(j)(_e)}var DefaultFields=["theme","styles"];function styled(j,_e,et,tt,rt){tt=tt||{scope:"",fields:void 0};var nt=tt.scope,ot=tt.fields,it=ot===void 0?DefaultFields:ot,st=reactExports.forwardRef(function(ut,ct){var dt=reactExports.useRef(),ft=useCustomizationSettings(it,nt),pt=ft.styles;ft.dir;var gt=__rest$1(ft,["styles","dir"]),mt=et?et(ut):void 0,bt=dt.current&&dt.current.__cachedInputs__||[],_t=ut.styles;if(!dt.current||pt!==bt[1]||_t!==bt[2]){var xt=function(yt){return concatStyleSetsWithProps(yt,_e,pt,_t)};xt.__cachedInputs__=[_e,pt,_t],xt.__noStyleOverride__=!pt&&!_t,dt.current=xt}return reactExports.createElement(j,__assign$4({ref:ct},gt,mt,ut,{styles:dt.current}))});st.displayName="Styled".concat(j.displayName||j.name);var lt=rt?reactExports.memo(st):st;return st.displayName&&(lt.displayName=st.displayName),lt}function getPropsWithDefaults(j,_e){for(var et=__assign$4({},_e),tt=0,rt=Object.keys(j);tttt?" (+ ".concat(_missingIcons.length-tt," more)"):"")),_missingIconsTimer=void 0,_missingIcons=[]},et)))}function makeSemanticColors(j,_e,et,tt,rt){rt===void 0&&(rt=!1);var nt=__assign$4({primaryButtonBorder:"transparent",errorText:tt?"#F1707B":"#a4262c",messageText:tt?"#F3F2F1":"#323130",messageLink:tt?"#6CB8F6":"#005A9E",messageLinkHovered:tt?"#82C7FF":"#004578",infoIcon:tt?"#C8C6C4":"#605e5c",errorIcon:tt?"#F1707B":"#A80000",blockingIcon:tt?"#442726":"#FDE7E9",warningIcon:tt?"#C8C6C4":"#797775",severeWarningIcon:tt?"#FCE100":"#D83B01",successIcon:tt?"#92C353":"#107C10",infoBackground:tt?"#323130":"#f3f2f1",errorBackground:tt?"#442726":"#FDE7E9",blockingBackground:tt?"#442726":"#FDE7E9",warningBackground:tt?"#433519":"#FFF4CE",severeWarningBackground:tt?"#4F2A0F":"#FED9CC",successBackground:tt?"#393D1B":"#DFF6DD",warningHighlight:tt?"#fff100":"#ffb900",successText:tt?"#92c353":"#107C10"},et),ot=getSemanticColors(j,_e,nt,tt);return _fixDeprecatedSlots(ot,rt)}function getSemanticColors(j,_e,et,tt,rt){var nt={},ot=j||{},it=ot.white,st=ot.black,lt=ot.themePrimary,ut=ot.themeDark,ct=ot.themeDarker,dt=ot.themeDarkAlt,ft=ot.themeLighter,pt=ot.neutralLight,gt=ot.neutralLighter,mt=ot.neutralDark,bt=ot.neutralQuaternary,_t=ot.neutralQuaternaryAlt,xt=ot.neutralPrimary,yt=ot.neutralSecondary,Et=ot.neutralSecondaryAlt,St=ot.neutralTertiary,Tt=ot.neutralTertiaryAlt,kt=ot.neutralLighterAlt,$t=ot.accent;return it&&(nt.bodyBackground=it,nt.bodyFrameBackground=it,nt.accentButtonText=it,nt.buttonBackground=it,nt.primaryButtonText=it,nt.primaryButtonTextHovered=it,nt.primaryButtonTextPressed=it,nt.inputBackground=it,nt.inputForegroundChecked=it,nt.listBackground=it,nt.menuBackground=it,nt.cardStandoutBackground=it),st&&(nt.bodyTextChecked=st,nt.buttonTextCheckedHovered=st),lt&&(nt.link=lt,nt.primaryButtonBackground=lt,nt.inputBackgroundChecked=lt,nt.inputIcon=lt,nt.inputFocusBorderAlt=lt,nt.menuIcon=lt,nt.menuHeader=lt,nt.accentButtonBackground=lt),ut&&(nt.primaryButtonBackgroundPressed=ut,nt.inputBackgroundCheckedHovered=ut,nt.inputIconHovered=ut),ct&&(nt.linkHovered=ct),dt&&(nt.primaryButtonBackgroundHovered=dt),ft&&(nt.inputPlaceholderBackgroundChecked=ft),pt&&(nt.bodyBackgroundChecked=pt,nt.bodyFrameDivider=pt,nt.bodyDivider=pt,nt.variantBorder=pt,nt.buttonBackgroundCheckedHovered=pt,nt.buttonBackgroundPressed=pt,nt.listItemBackgroundChecked=pt,nt.listHeaderBackgroundPressed=pt,nt.menuItemBackgroundPressed=pt,nt.menuItemBackgroundChecked=pt),gt&&(nt.bodyBackgroundHovered=gt,nt.buttonBackgroundHovered=gt,nt.buttonBackgroundDisabled=gt,nt.buttonBorderDisabled=gt,nt.primaryButtonBackgroundDisabled=gt,nt.disabledBackground=gt,nt.listItemBackgroundHovered=gt,nt.listHeaderBackgroundHovered=gt,nt.menuItemBackgroundHovered=gt),bt&&(nt.primaryButtonTextDisabled=bt,nt.disabledSubtext=bt),_t&&(nt.listItemBackgroundCheckedHovered=_t),St&&(nt.disabledBodyText=St,nt.variantBorderHovered=(et==null?void 0:et.variantBorderHovered)||St,nt.buttonTextDisabled=St,nt.inputIconDisabled=St,nt.disabledText=St),xt&&(nt.bodyText=xt,nt.actionLink=xt,nt.buttonText=xt,nt.inputBorderHovered=xt,nt.inputText=xt,nt.listText=xt,nt.menuItemText=xt),kt&&(nt.bodyStandoutBackground=kt,nt.defaultStateBackground=kt),mt&&(nt.actionLinkHovered=mt,nt.buttonTextHovered=mt,nt.buttonTextChecked=mt,nt.buttonTextPressed=mt,nt.inputTextHovered=mt,nt.menuItemTextHovered=mt),yt&&(nt.bodySubtext=yt,nt.focusBorder=yt,nt.inputBorder=yt,nt.smallInputBorder=yt,nt.inputPlaceholderText=yt),Et&&(nt.buttonBorder=Et),Tt&&(nt.disabledBodySubtext=Tt,nt.disabledBorder=Tt,nt.buttonBackgroundChecked=Tt,nt.menuDivider=Tt),$t&&(nt.accentButtonBackground=$t),_e!=null&&_e.elevation4&&(nt.cardShadow=_e.elevation4),!tt&&(_e!=null&&_e.elevation8)?nt.cardShadowHovered=_e.elevation8:nt.variantBorderHovered&&(nt.cardShadowHovered="0 0 1px "+nt.variantBorderHovered),nt=__assign$4(__assign$4({},nt),et),nt}function _fixDeprecatedSlots(j,_e){var et="";return _e===!0&&(et=" /* @deprecated */"),j.listTextColor=j.listText+et,j.menuItemBackgroundChecked+=et,j.warningHighlight+=et,j.warningText=j.messageText+et,j.successText+=et,j}function mergeThemes(j,_e){var et,tt,rt;_e===void 0&&(_e={});var nt=merge$3({},j,_e,{semanticColors:getSemanticColors(_e.palette,_e.effects,_e.semanticColors,_e.isInverted===void 0?j.isInverted:_e.isInverted)});if(!((et=_e.palette)===null||et===void 0)&&et.themePrimary&&!(!((tt=_e.palette)===null||tt===void 0)&&tt.accent)&&(nt.palette.accent=_e.palette.themePrimary),_e.defaultFontStyle)for(var ot=0,it=Object.keys(nt.fonts);ot"u"?global:window,_styleNonce=_root&&_root.CSPSettings&&_root.CSPSettings.nonce,_themeState=initializeThemeState();function initializeThemeState(){var j=_root.__themeState__||{theme:void 0,lastStyleElement:void 0,registeredStyles:[]};return j.runState||(j=__assign$3(__assign$3({},j),{perf:{count:0,duration:0},runState:{flushTimer:0,mode:0,buffer:[]}})),j.registeredThemableStyles||(j=__assign$3(__assign$3({},j),{registeredThemableStyles:[]})),_root.__themeState__=j,j}function applyThemableStyles(j,_e){_themeState.loadStyles?_themeState.loadStyles(resolveThemableArray(j).styleString,j):registerStyles$1(j)}function loadTheme$1(j){_themeState.theme=j,reloadStyles()}function clearStyles(j){j===void 0&&(j=3),(j===3||j===2)&&(clearStylesInternal(_themeState.registeredStyles),_themeState.registeredStyles=[]),(j===3||j===1)&&(clearStylesInternal(_themeState.registeredThemableStyles),_themeState.registeredThemableStyles=[])}function clearStylesInternal(j){j.forEach(function(_e){var et=_e&&_e.styleElement;et&&et.parentElement&&et.parentElement.removeChild(et)})}function reloadStyles(){if(_themeState.theme){for(var j=[],_e=0,et=_themeState.registeredThemableStyles;_e0&&(clearStyles(1),applyThemableStyles([].concat.apply([],j)))}}function resolveThemableArray(j){var _e=_themeState.theme,et=!1,tt=(j||[]).map(function(rt){var nt=rt.theme;if(nt){et=!0;var ot=_e?_e[nt]:void 0,it=rt.defaultValue||"inherit";return _e&&!ot&&console&&!(nt in _e)&&typeof DEBUG<"u"&&DEBUG&&console.warn('Theming value not provided for "'.concat(nt,'". Falling back to "').concat(it,'".')),ot||it}else return rt.rawString});return{styleString:tt.join(""),themable:et}}function registerStyles$1(j){if(!(typeof document>"u")){var _e=document.getElementsByTagName("head")[0],et=document.createElement("style"),tt=resolveThemableArray(j),rt=tt.styleString,nt=tt.themable;et.setAttribute("data-load-themed-styles","true"),_styleNonce&&et.setAttribute("nonce",_styleNonce),et.appendChild(document.createTextNode(rt)),_themeState.perf.count++,_e.appendChild(et);var ot=document.createEvent("HTMLEvents");ot.initEvent("styleinsert",!0,!1),ot.args={newStyle:et},document.dispatchEvent(ot);var it={styleElement:et,themableStyle:j};nt?_themeState.registeredThemableStyles.push(it):_themeState.registeredStyles.push(it)}}var _theme=createTheme({}),_onThemeChangeCallbacks=[],ThemeSettingName="theme";function initializeThemeInCustomizations(){var j,_e,et,tt=getWindow();!((_e=tt==null?void 0:tt.FabricConfig)===null||_e===void 0)&&_e.legacyTheme?loadTheme(tt.FabricConfig.legacyTheme):Customizations.getSettings([ThemeSettingName]).theme||(!((et=tt==null?void 0:tt.FabricConfig)===null||et===void 0)&&et.theme&&(_theme=createTheme(tt.FabricConfig.theme)),Customizations.applySettings((j={},j[ThemeSettingName]=_theme,j)))}initializeThemeInCustomizations();function getTheme(j){return j===void 0&&(j=!1),j===!0&&(_theme=createTheme({},j)),_theme}function loadTheme(j,_e){var et;return _e===void 0&&(_e=!1),_theme=createTheme(j,_e),loadTheme$1(__assign$4(__assign$4(__assign$4(__assign$4({},_theme.palette),_theme.semanticColors),_theme.effects),_loadFonts(_theme))),Customizations.applySettings((et={},et[ThemeSettingName]=_theme,et)),_onThemeChangeCallbacks.forEach(function(tt){try{tt(_theme)}catch{}}),_theme}function _loadFonts(j){for(var _e={},et=0,tt=Object.keys(j.fonts);et_e.bottom||j.left<_e.left||j.right>_e.right)}function _getOutOfBoundsEdges(j,_e){var et=[];return j.top<_e.top&&et.push(RectangleEdge.top),j.bottom>_e.bottom&&et.push(RectangleEdge.bottom),j.left<_e.left&&et.push(RectangleEdge.left),j.right>_e.right&&et.push(RectangleEdge.right),et}function _getEdgeValue(j,_e){return j[RectangleEdge[_e]]}function _setEdgeValue(j,_e,et){return j[RectangleEdge[_e]]=et,j}function _getCenterValue(j,_e){var et=_getFlankingEdges(_e);return(_getEdgeValue(j,et.positiveEdge)+_getEdgeValue(j,et.negativeEdge))/2}function _getRelativeEdgeValue(j,_e){return j>0?_e:_e*-1}function _getRelativeRectEdgeValue(j,_e){return _getRelativeEdgeValue(j,_getEdgeValue(_e,j))}function _getRelativeEdgeDifference(j,_e,et){var tt=_getEdgeValue(j,et)-_getEdgeValue(_e,et);return _getRelativeEdgeValue(et,tt)}function _moveEdge(j,_e,et,tt){tt===void 0&&(tt=!0);var rt=_getEdgeValue(j,_e)-et,nt=_setEdgeValue(j,_e,et);return tt&&(nt=_setEdgeValue(j,_e*-1,_getEdgeValue(j,_e*-1)-rt)),nt}function _alignEdges(j,_e,et,tt){return tt===void 0&&(tt=0),_moveEdge(j,et,_getEdgeValue(_e,et)+_getRelativeEdgeValue(et,tt))}function _alignOppositeEdges(j,_e,et,tt){tt===void 0&&(tt=0);var rt=et*-1,nt=_getRelativeEdgeValue(rt,tt);return _moveEdge(j,et*-1,_getEdgeValue(_e,et)+nt)}function _isEdgeInBounds(j,_e,et){var tt=_getRelativeRectEdgeValue(et,j);return tt>_getRelativeRectEdgeValue(et,_e)}function _getOutOfBoundsDegree(j,_e){for(var et=_getOutOfBoundsEdges(j,_e),tt=0,rt=0,nt=et;rt=tt}function _flipToFit(j,_e,et,tt,rt,nt,ot){rt===void 0&&(rt=!1),ot===void 0&&(ot=0);var it=[RectangleEdge.left,RectangleEdge.right,RectangleEdge.bottom,RectangleEdge.top];getRTL$1()&&(it[0]*=-1,it[1]*=-1);for(var st=j,lt=tt.targetEdge,ut=tt.alignmentEdge,ct,dt=lt,ft=ut,pt=0;pt<4;pt++){if(_isEdgeInBounds(st,et,lt))return{elementRectangle:st,targetEdge:lt,alignmentEdge:ut};if(rt&&_canScrollResizeToFitEdge(_e,et,lt,nt)){switch(lt){case RectangleEdge.bottom:st.bottom=et.bottom;break;case RectangleEdge.top:st.top=et.top;break}return{elementRectangle:st,targetEdge:lt,alignmentEdge:ut,forcedInBounds:!0}}else{var gt=_getOutOfBoundsDegree(st,et);(!ct||gt0&&(it.indexOf(lt*-1)>-1?lt=lt*-1:(ut=lt,lt=it.slice(-1)[0]),st=_estimatePosition(j,_e,{targetEdge:lt,alignmentEdge:ut},ot))}}return st=_estimatePosition(j,_e,{targetEdge:dt,alignmentEdge:ft},ot),{elementRectangle:st,targetEdge:dt,alignmentEdge:ft}}function _flipAlignmentEdge(j,_e,et,tt){var rt=j.alignmentEdge,nt=j.targetEdge,ot=j.elementRectangle,it=rt*-1,st=_estimatePosition(ot,_e,{targetEdge:nt,alignmentEdge:it},et,tt);return{elementRectangle:st,targetEdge:nt,alignmentEdge:it}}function _adjustFitWithinBounds(j,_e,et,tt,rt,nt,ot,it,st){rt===void 0&&(rt=!1),ot===void 0&&(ot=0);var lt=tt.alignmentEdge,ut=tt.alignTargetEdge,ct={elementRectangle:j,targetEdge:tt.targetEdge,alignmentEdge:lt};!it&&!st&&(ct=_flipToFit(j,_e,et,tt,rt,nt,ot));var dt=_getOutOfBoundsEdges(ct.elementRectangle,et),ft=it?-ct.targetEdge:void 0;if(dt.length>0)if(ut)if(ct.alignmentEdge&&dt.indexOf(ct.alignmentEdge*-1)>-1){var pt=_flipAlignmentEdge(ct,_e,ot,st);if(_isRectangleWithinBounds(pt.elementRectangle,et))return pt;ct=_alignOutOfBoundsEdges(_getOutOfBoundsEdges(pt.elementRectangle,et),ct,et,ft)}else ct=_alignOutOfBoundsEdges(dt,ct,et,ft);else ct=_alignOutOfBoundsEdges(dt,ct,et,ft);return ct}function _alignOutOfBoundsEdges(j,_e,et,tt){for(var rt=0,nt=j;rtMath.abs(_getRelativeEdgeDifference(j,et,_e*-1))?_e*-1:_e}function _isEdgeOnBounds(j,_e,et){return et!==void 0&&_getEdgeValue(j,_e)===_getEdgeValue(et,_e)}function _finalizeElementPosition(j,_e,et,tt,rt,nt,ot,it){var st={},lt=_getRectangleFromElement(_e),ut=nt?et:et*-1,ct=rt||_getFlankingEdges(et).positiveEdge;return(!ot||_isEdgeOnBounds(j,getOppositeEdge(ct),tt))&&(ct=_finalizeReturnEdge(j,ct,tt)),st[RectangleEdge[ut]]=_getRelativeEdgeDifference(j,lt,ut),st[RectangleEdge[ct]]=_getRelativeEdgeDifference(j,lt,ct),it&&(st[RectangleEdge[ut*-1]]=_getRelativeEdgeDifference(j,lt,ut*-1),st[RectangleEdge[ct*-1]]=_getRelativeEdgeDifference(j,lt,ct*-1)),st}function _calculateActualBeakWidthInPixels(j){return Math.sqrt(j*j*2)}function _getPositionData(j,_e,et){if(j===void 0&&(j=DirectionalHint.bottomAutoEdge),et)return{alignmentEdge:et.alignmentEdge,isAuto:et.isAuto,targetEdge:et.targetEdge};var tt=__assign$4({},DirectionalDictionary[j]);return getRTL$1()?(tt.alignmentEdge&&tt.alignmentEdge%2===0&&(tt.alignmentEdge=tt.alignmentEdge*-1),_e!==void 0?DirectionalDictionary[_e]:tt):tt}function _getAlignmentData(j,_e,et,tt,rt){return j.isAuto&&(j.alignmentEdge=getClosestEdge(j.targetEdge,_e,et)),j.alignTargetEdge=rt,j}function getClosestEdge(j,_e,et){var tt=_getCenterValue(_e,j),rt=_getCenterValue(et,j),nt=_getFlankingEdges(j),ot=nt.positiveEdge,it=nt.negativeEdge;return tt<=rt?ot:it}function _positionElementWithinBounds(j,_e,et,tt,rt,nt,ot,it,st){nt===void 0&&(nt=!1);var lt=_estimatePosition(j,_e,tt,rt,st);return _isRectangleWithinBounds(lt,et)?{elementRectangle:lt,targetEdge:tt.targetEdge,alignmentEdge:tt.alignmentEdge}:_adjustFitWithinBounds(lt,_e,et,tt,nt,ot,rt,it,st)}function _finalizeBeakPosition(j,_e,et){var tt=j.targetEdge*-1,rt=new Rectangle$1(0,j.elementRectangle.width,0,j.elementRectangle.height),nt={},ot=_finalizeReturnEdge(j.elementRectangle,j.alignmentEdge?j.alignmentEdge:_getFlankingEdges(tt).positiveEdge,et),it=_getRelativeEdgeDifference(j.elementRectangle,j.targetRectangle,tt),st=it>Math.abs(_getEdgeValue(_e,tt));return nt[RectangleEdge[tt]]=_getEdgeValue(_e,tt),nt[RectangleEdge[ot]]=_getRelativeEdgeDifference(_e,rt,ot),{elementPosition:__assign$4({},nt),closestEdge:getClosestEdge(j.targetEdge,_e,rt),targetEdge:tt,hideBeak:!st}}function _positionBeak(j,_e){var et=_e.targetRectangle,tt=_getFlankingEdges(_e.targetEdge),rt=tt.positiveEdge,nt=tt.negativeEdge,ot=_getCenterValue(et,_e.targetEdge),it=new Rectangle$1(j/2,_e.elementRectangle.width-j/2,j/2,_e.elementRectangle.height-j/2),st=new Rectangle$1(0,j,0,j);return st=_moveEdge(st,_e.targetEdge*-1,-j/2),st=_centerEdgeToPoint(st,_e.targetEdge*-1,ot-_getRelativeRectEdgeValue(rt,_e.elementRectangle)),_isEdgeInBounds(st,it,rt)?_isEdgeInBounds(st,it,nt)||(st=_alignEdges(st,it,nt)):st=_alignEdges(st,it,rt),st}function _getRectangleFromElement(j){var _e=j.getBoundingClientRect();return new Rectangle$1(_e.left,_e.right,_e.top,_e.bottom)}function _getRectangleFromIRect(j){return new Rectangle$1(j.left,j.right,j.top,j.bottom)}function _getTargetRect(j,_e){var et;if(_e){if(_e.preventDefault){var tt=_e;et=new Rectangle$1(tt.clientX,tt.clientX,tt.clientY,tt.clientY)}else if(_e.getBoundingClientRect)et=_getRectangleFromElement(_e);else{var rt=_e,nt=rt.left||rt.x,ot=rt.top||rt.y,it=rt.right||nt,st=rt.bottom||ot;et=new Rectangle$1(nt,it,ot,st)}if(!_isRectangleWithinBounds(et,j))for(var lt=_getOutOfBoundsEdges(et,j),ut=0,ct=lt;ut=tt&&rt&<.top<=rt&<.bottom>=rt&&(ot={top:lt.top,left:lt.left,right:lt.right,bottom:lt.bottom,width:lt.width,height:lt.height})}return ot}function getBoundsFromTargetWindow(j,_e){return _getBoundsFromTargetWindow(j,_e)}function calculateGapSpace(j,_e,et){return _calculateGapSpace(j,_e,et)}function getRectangleFromTarget(j){return _getRectangleFromTarget(j)}function useAsync(){var j=reactExports.useRef();return j.current||(j.current=new Async),reactExports.useEffect(function(){return function(){var _e;(_e=j.current)===null||_e===void 0||_e.dispose(),j.current=void 0}},[]),j.current}function useConst$1(j){var _e=reactExports.useRef();return _e.current===void 0&&(_e.current={value:typeof j=="function"?j():j}),_e.current.value}function useBoolean(j){var _e=reactExports.useState(j),et=_e[0],tt=_e[1],rt=useConst$1(function(){return function(){tt(!0)}}),nt=useConst$1(function(){return function(){tt(!1)}}),ot=useConst$1(function(){return function(){tt(function(it){return!it})}});return[et,{setTrue:rt,setFalse:nt,toggle:ot}]}function useEventCallback$2(j){var _e=reactExports.useRef(function(){throw new Error("Cannot call an event handler while rendering")});return useIsomorphicLayoutEffect(function(){_e.current=j},[j]),useConst$1(function(){return function(){for(var et=[],tt=0;tt0&<>st&&(it=lt-st>1)}rt!==it&&nt(it)}}),function(){return et.dispose()}}),rt}function defaultFocusRestorer(j){var _e=j.originalElement,et=j.containsFocus;_e&&et&&_e!==getWindow()&&setTimeout(function(){var tt;(tt=_e.focus)===null||tt===void 0||tt.call(_e)},0)}function useRestoreFocus(j,_e){var et=j.onRestoreFocus,tt=et===void 0?defaultFocusRestorer:et,rt=reactExports.useRef(),nt=reactExports.useRef(!1);reactExports.useEffect(function(){return rt.current=getDocument().activeElement,doesElementContainFocus(_e.current)&&(nt.current=!0),function(){var ot;tt==null||tt({originalElement:rt.current,containsFocus:nt.current,documentContainsFocus:((ot=getDocument())===null||ot===void 0?void 0:ot.hasFocus())||!1}),rt.current=void 0}},[]),useOnEvent(_e,"focus",reactExports.useCallback(function(){nt.current=!0},[]),!0),useOnEvent(_e,"blur",reactExports.useCallback(function(ot){_e.current&&ot.relatedTarget&&!_e.current.contains(ot.relatedTarget)&&(nt.current=!1)},[]),!0)}function useHideSiblingNodes(j,_e){var et=String(j["aria-modal"]).toLowerCase()==="true"&&j.enableAriaHiddenSiblings;reactExports.useEffect(function(){if(et&&_e.current){var tt=modalize(_e.current);return tt}},[_e,et])}var Popup=reactExports.forwardRef(function(j,_e){var et=getPropsWithDefaults({shouldRestoreFocus:!0,enableAriaHiddenSiblings:!0},j),tt=reactExports.useRef(),rt=useMergedRefs(tt,_e);useHideSiblingNodes(et,tt),useRestoreFocus(et,tt);var nt=et.role,ot=et.className,it=et.ariaLabel,st=et.ariaLabelledBy,lt=et.ariaDescribedBy,ut=et.style,ct=et.children,dt=et.onDismiss,ft=useScrollbarAsync(et,tt),pt=reactExports.useCallback(function(mt){switch(mt.which){case KeyCodes$1.escape:dt&&(dt(mt),mt.preventDefault(),mt.stopPropagation());break}},[dt]),gt=useWindow();return useOnEvent(gt,"keydown",pt),reactExports.createElement("div",__assign$4({ref:rt},getNativeProps(et,divProperties),{className:ot,role:nt,"aria-label":it,"aria-labelledby":st,"aria-describedby":lt,onKeyDown:pt,style:__assign$4({overflowY:ft?"scroll":void 0,outline:"none"},ut)}),ct)});Popup.displayName="Popup";var _a$6,COMPONENT_NAME$2="CalloutContentBase",ANIMATIONS=(_a$6={},_a$6[RectangleEdge.top]=AnimationClassNames.slideUpIn10,_a$6[RectangleEdge.bottom]=AnimationClassNames.slideDownIn10,_a$6[RectangleEdge.left]=AnimationClassNames.slideLeftIn10,_a$6[RectangleEdge.right]=AnimationClassNames.slideRightIn10,_a$6),BEAK_ORIGIN_POSITION={top:0,left:0},OFF_SCREEN_STYLE={opacity:0,filter:"opacity(0)",pointerEvents:"none"},ARIA_ROLE_ATTRIBUTES=["role","aria-roledescription"],DEFAULT_PROPS$3={preventDismissOnLostFocus:!1,preventDismissOnScroll:!1,preventDismissOnResize:!1,isBeakVisible:!0,beakWidth:16,gapSpace:0,minPagePadding:8,directionalHint:DirectionalHint.bottomAutoEdge},getClassNames$9=classNamesFunction({disableCaching:!0});function useBounds(j,_e,et){var tt=j.bounds,rt=j.minPagePadding,nt=rt===void 0?DEFAULT_PROPS$3.minPagePadding:rt,ot=j.target,it=reactExports.useState(!1),st=it[0],lt=it[1],ut=reactExports.useRef(),ct=reactExports.useCallback(function(){if(!ut.current||st){var ft=typeof tt=="function"?et?tt(ot,et):void 0:tt;!ft&&et&&(ft=getBoundsFromTargetWindow(_e.current,et),ft={top:ft.top+nt,left:ft.left+nt,right:ft.right-nt,bottom:ft.bottom-nt,width:ft.width-nt*2,height:ft.height-nt*2}),ut.current=ft,st&<(!1)}return ut.current},[tt,nt,ot,_e,et,st]),dt=useAsync();return useOnEvent(et,"resize",dt.debounce(function(){lt(!0)},500,{leading:!0})),ct}function useMaxHeight(j,_e,et,tt){var rt,nt=j.calloutMaxHeight,ot=j.finalHeight,it=j.directionalHint,st=j.directionalHintFixed,lt=j.hidden,ut=j.gapSpace,ct=j.beakWidth,dt=j.isBeakVisible,ft=reactExports.useState(),pt=ft[0],gt=ft[1],mt=(rt=tt==null?void 0:tt.elementPosition)!==null&&rt!==void 0?rt:{},bt=mt.top,_t=mt.bottom,xt=et!=null&&et.current?getRectangleFromTarget(et.current):void 0;return reactExports.useEffect(function(){var yt,Et=(yt=_e())!==null&&yt!==void 0?yt:{},St=Et.top,Tt=Et.bottom,kt;(tt==null?void 0:tt.targetEdge)===RectangleEdge.top&&(xt!=null&&xt.top)&&(Tt=xt.top-calculateGapSpace(dt,ct,ut)),typeof bt=="number"&&Tt?kt=Tt-bt:typeof _t=="number"&&typeof St=="number"&&Tt&&(kt=Tt-St-_t),!nt&&!lt||nt&&kt&&nt>kt?gt(kt):gt(nt||void 0)},[_t,nt,ot,it,st,_e,lt,tt,bt,ut,ct,dt,xt]),pt}function usePositions(j,_e,et,tt,rt,nt){var ot=reactExports.useState(),it=ot[0],st=ot[1],lt=reactExports.useRef(0),ut=reactExports.useRef(),ct=useAsync(),dt=j.hidden,ft=j.target,pt=j.finalHeight,gt=j.calloutMaxHeight,mt=j.onPositioned,bt=j.directionalHint,_t=j.hideOverflow,xt=j.preferScrollResizePositioning,yt=useWindow(),Et=reactExports.useRef(),St;Et.current!==nt.current&&(Et.current=nt.current,St=nt.current?yt==null?void 0:yt.getComputedStyle(nt.current):void 0);var Tt=St==null?void 0:St.overflowY;return reactExports.useEffect(function(){if(dt)st(void 0),lt.current=0;else{var kt=ct.requestAnimationFrame(function(){var $t,Ct;if(_e.current&&et){var It=__assign$4(__assign$4({},j),{target:tt.current,bounds:rt()}),Nt=et.cloneNode(!0);Nt.style.maxHeight=gt?"".concat(gt):"",Nt.style.visibility="hidden",($t=et.parentElement)===null||$t===void 0||$t.appendChild(Nt);var Ot=ut.current===ft?it:void 0,jt=_t||Tt==="clip"||Tt==="hidden",Mt=xt&&!jt,Rt=pt?positionCard(It,_e.current,Nt,Ot):positionCallout(It,_e.current,Nt,Ot,Mt);(Ct=et.parentElement)===null||Ct===void 0||Ct.removeChild(Nt),!it&&Rt||it&&Rt&&!arePositionsEqual(it,Rt)&<.current<5?(lt.current++,st(Rt)):lt.current>0&&(lt.current=0,mt==null||mt(it))}},et);return ut.current=ft,function(){ct.cancelAnimationFrame(kt),ut.current=void 0}}},[dt,bt,ct,et,gt,_e,tt,pt,rt,mt,it,j,ft,_t,xt,Tt]),it}function useAutoFocus(j,_e,et){var tt=j.hidden,rt=j.setInitialFocus,nt=useAsync(),ot=!!_e;reactExports.useEffect(function(){if(!tt&&rt&&ot&&et){var it=nt.requestAnimationFrame(function(){return focusFirstChild(et)},et);return function(){return nt.cancelAnimationFrame(it)}}},[tt,ot,nt,et,rt])}function useDismissHandlers(j,_e,et,tt,rt){var nt=j.hidden,ot=j.onDismiss,it=j.preventDismissOnScroll,st=j.preventDismissOnResize,lt=j.preventDismissOnLostFocus,ut=j.dismissOnTargetClick,ct=j.shouldDismissOnWindowFocus,dt=j.preventDismissOnEvent,ft=reactExports.useRef(!1),pt=useAsync(),gt=useConst$1([function(){ft.current=!0},function(){ft.current=!1}]),mt=!!_e;return reactExports.useEffect(function(){var bt=function(Tt){mt&&!it&&yt(Tt)},_t=function(Tt){!st&&!(dt&&dt(Tt))&&(ot==null||ot(Tt))},xt=function(Tt){lt||yt(Tt)},yt=function(Tt){var kt=Tt.composedPath?Tt.composedPath():[],$t=kt.length>0?kt[0]:Tt.target,Ct=et.current&&!elementContains(et.current,$t);if(Ct&&ft.current){ft.current=!1;return}if(!tt.current&&Ct||Tt.target!==rt&&Ct&&(!tt.current||"stopPropagation"in tt.current||ut||$t!==tt.current&&!elementContains(tt.current,$t))){if(dt&&dt(Tt))return;ot==null||ot(Tt)}},Et=function(Tt){ct&&(dt&&!dt(Tt)||!dt&&!lt)&&!(rt!=null&&rt.document.hasFocus())&&Tt.relatedTarget===null&&(ot==null||ot(Tt))},St=new Promise(function(Tt){pt.setTimeout(function(){if(!nt&&rt){var kt=[on(rt,"scroll",bt,!0),on(rt,"resize",_t,!0),on(rt.document.documentElement,"focus",xt,!0),on(rt.document.documentElement,"click",xt,!0),on(rt,"blur",Et,!0)];Tt(function(){kt.forEach(function($t){return $t()})})}},0)});return function(){St.then(function(Tt){return Tt()})}},[nt,pt,et,tt,rt,ot,ct,ut,lt,st,it,mt,dt]),gt}var CalloutContentBase=reactExports.memo(reactExports.forwardRef(function(j,_e){var et=getPropsWithDefaults(DEFAULT_PROPS$3,j),tt=et.styles,rt=et.style,nt=et.ariaLabel,ot=et.ariaDescribedBy,it=et.ariaLabelledBy,st=et.className,lt=et.isBeakVisible,ut=et.children,ct=et.beakWidth,dt=et.calloutWidth,ft=et.calloutMaxWidth,pt=et.calloutMinWidth,gt=et.doNotLayer,mt=et.finalHeight,bt=et.hideOverflow,_t=bt===void 0?!!mt:bt,xt=et.backgroundColor,yt=et.calloutMaxHeight,Et=et.onScroll,St=et.shouldRestoreFocus,Tt=St===void 0?!0:St,kt=et.target,$t=et.hidden,Ct=et.onLayerMounted,It=et.popupProps,Nt=reactExports.useRef(null),Ot=reactExports.useRef(null),jt=useMergedRefs(Ot,It==null?void 0:It.ref),Mt=reactExports.useState(null),Rt=Mt[0],Lt=Mt[1],Pt=reactExports.useCallback(function(Cr){Lt(Cr)},[]),Gt=useMergedRefs(Nt,_e),qt=useTarget(et.target,{current:Rt}),Yt=qt[0],Xt=qt[1],tr=useBounds(et,Yt,Xt),cr=usePositions(et,Nt,Rt,Yt,tr,jt),mr=useMaxHeight(et,tr,Yt,cr),Er=useDismissHandlers(et,cr,Nt,Yt,Xt),hr=Er[0],_r=Er[1],Ut=(cr==null?void 0:cr.elementPosition.top)&&(cr==null?void 0:cr.elementPosition.bottom),ar=__assign$4(__assign$4({},cr==null?void 0:cr.elementPosition),{maxHeight:mr});if(Ut&&(ar.bottom=void 0),useAutoFocus(et,cr,Rt),reactExports.useEffect(function(){$t||Ct==null||Ct()},[$t]),!Xt)return null;var pr=_t,rr=lt&&!!kt,vr=getClassNames$9(tt,{theme:et.theme,className:st,overflowYHidden:pr,calloutWidth:dt,positions:cr,beakWidth:ct,backgroundColor:xt,calloutMaxWidth:ft,calloutMinWidth:pt,doNotLayer:gt}),$r=__assign$4(__assign$4({maxHeight:yt||"100%"},rt),pr&&{overflowY:"hidden"}),Rr=et.hidden?{visibility:"hidden"}:void 0;return reactExports.createElement("div",{ref:Gt,className:vr.container,style:Rr},reactExports.createElement("div",__assign$4({},getNativeProps(et,divProperties,ARIA_ROLE_ATTRIBUTES),{className:css$3(vr.root,cr&&cr.targetEdge&&ANIMATIONS[cr.targetEdge]),style:cr?__assign$4({},ar):OFF_SCREEN_STYLE,tabIndex:-1,ref:Pt}),rr&&reactExports.createElement("div",{className:vr.beak,style:getBeakPosition(cr)}),rr&&reactExports.createElement("div",{className:vr.beakCurtain}),reactExports.createElement(Popup,__assign$4({role:et.role,"aria-roledescription":et["aria-roledescription"],ariaDescribedBy:ot,ariaLabel:nt,ariaLabelledBy:it,className:vr.calloutMain,onDismiss:et.onDismiss,onMouseDown:hr,onMouseUp:_r,onRestoreFocus:et.onRestoreFocus,onScroll:Et,shouldRestoreFocus:Tt,style:$r},It,{ref:jt}),ut)))}),function(j,_e){return!_e.shouldUpdateWhenHidden&&j.hidden&&_e.hidden?!0:shallowCompare(j,_e)});function getBeakPosition(j){var _e,et,tt=__assign$4(__assign$4({},(_e=j==null?void 0:j.beakPosition)===null||_e===void 0?void 0:_e.elementPosition),{display:!((et=j==null?void 0:j.beakPosition)===null||et===void 0)&&et.hideBeak?"none":void 0});return!tt.top&&!tt.bottom&&!tt.left&&!tt.right&&(tt.left=BEAK_ORIGIN_POSITION.left,tt.top=BEAK_ORIGIN_POSITION.top),tt}function arePositionsEqual(j,_e){return comparePositions(j.elementPosition,_e.elementPosition)&&comparePositions(j.beakPosition.elementPosition,_e.beakPosition.elementPosition)}function comparePositions(j,_e){for(var et in _e)if(_e.hasOwnProperty(et)){var tt=j[et],rt=_e[et];if(tt!==void 0&&rt!==void 0){if(tt.toFixed(2)!==rt.toFixed(2))return!1}else return!1}return!0}CalloutContentBase.displayName=COMPONENT_NAME$2;function getBeakStyle(j){return{height:j,width:j}}var GlobalClassNames$8={container:"ms-Callout-container",root:"ms-Callout",beak:"ms-Callout-beak",beakCurtain:"ms-Callout-beakCurtain",calloutMain:"ms-Callout-main"},getStyles$9=function(j){var _e,et=j.theme,tt=j.className,rt=j.overflowYHidden,nt=j.calloutWidth,ot=j.beakWidth,it=j.backgroundColor,st=j.calloutMaxWidth,lt=j.calloutMinWidth,ut=j.doNotLayer,ct=getGlobalClassNames(GlobalClassNames$8,et),dt=et.semanticColors,ft=et.effects;return{container:[ct.container,{position:"relative"}],root:[ct.root,et.fonts.medium,{position:"absolute",display:"flex",zIndex:ut?ZIndexes.Layer:void 0,boxSizing:"border-box",borderRadius:ft.roundedCorner2,boxShadow:ft.elevation16,selectors:(_e={},_e[HighContrastSelector]={borderWidth:1,borderStyle:"solid",borderColor:"WindowText"},_e)},focusClear(),tt,!!nt&&{width:nt},!!st&&{maxWidth:st},!!lt&&{minWidth:lt}],beak:[ct.beak,{position:"absolute",backgroundColor:dt.menuBackground,boxShadow:"inherit",border:"inherit",boxSizing:"border-box",transform:"rotate(45deg)"},getBeakStyle(ot),it&&{backgroundColor:it}],beakCurtain:[ct.beakCurtain,{position:"absolute",top:0,right:0,bottom:0,left:0,backgroundColor:dt.menuBackground,borderRadius:ft.roundedCorner2}],calloutMain:[ct.calloutMain,{backgroundColor:dt.menuBackground,overflowX:"hidden",overflowY:"auto",position:"relative",width:"100%",borderRadius:ft.roundedCorner2},rt&&{overflowY:"hidden"},it&&{backgroundColor:it}]}},CalloutContent=styled(CalloutContentBase,getStyles$9,void 0,{scope:"CalloutContent"});const PortalCompatContext=reactExports.createContext(void 0),portalCompatContextDefaultValue=()=>()=>{};PortalCompatContext.Provider;function usePortalCompat(){var j;return(j=reactExports.useContext(PortalCompatContext))!==null&&j!==void 0?j:portalCompatContextDefaultValue}var getClassNames$8=classNamesFunction(),getFabricTheme=memoizeFunction(function(j,_e){return createTheme(__assign$4(__assign$4({},j),{rtl:_e}))}),getDir=function(j){var _e=j.theme,et=j.dir,tt=getRTL$1(_e)?"rtl":"ltr",rt=getRTL$1()?"rtl":"ltr",nt=et||tt;return{rootDir:nt!==tt||nt!==rt?nt:et,needsTheme:nt!==tt}},FabricBase=reactExports.forwardRef(function(j,_e){var et=j.className,tt=j.theme,rt=j.applyTheme,nt=j.applyThemeToBody,ot=j.styles,it=getClassNames$8(ot,{theme:tt,applyTheme:rt,className:et}),st=reactExports.useRef(null);return useApplyThemeToBody(nt,it,st),reactExports.createElement(reactExports.Fragment,null,useRenderedContent(j,it,st,_e))});FabricBase.displayName="FabricBase";function useRenderedContent(j,_e,et,tt){var rt=_e.root,nt=j.as,ot=nt===void 0?"div":nt,it=j.dir,st=j.theme,lt=getNativeProps(j,divProperties,["dir"]),ut=getDir(j),ct=ut.rootDir,dt=ut.needsTheme,ft=reactExports.createElement(FocusRectsProvider,{providerRef:et},reactExports.createElement(ot,__assign$4({dir:ct},lt,{className:rt,ref:useMergedRefs(et,tt)})));return dt&&(ft=reactExports.createElement(Customizer,{settings:{theme:getFabricTheme(st,it==="rtl")}},ft)),ft}function useApplyThemeToBody(j,_e,et){var tt=_e.bodyThemed;return reactExports.useEffect(function(){if(j){var rt=getDocument(et.current);if(rt)return rt.body.classList.add(tt),function(){rt.body.classList.remove(tt)}}},[tt,j,et]),et}var inheritFont={fontFamily:"inherit"},GlobalClassNames$7={root:"ms-Fabric",bodyThemed:"ms-Fabric-bodyThemed"},getStyles$8=function(j){var _e=j.applyTheme,et=j.className,tt=j.preventBlanketFontInheritance,rt=j.theme,nt=getGlobalClassNames(GlobalClassNames$7,rt);return{root:[nt.root,rt.fonts.medium,{color:rt.palette.neutralPrimary},!tt&&{"& button":inheritFont,"& input":inheritFont,"& textarea":inheritFont},_e&&{color:rt.semanticColors.bodyText,backgroundColor:rt.semanticColors.bodyBackground},et],bodyThemed:[{backgroundColor:rt.semanticColors.bodyBackground}]}},Fabric=styled(FabricBase,getStyles$8,void 0,{scope:"Fabric"}),_layersByHostId={},_layerHostsById={},defaultHostId="fluent-default-layer-host",_defaultHostSelector="#".concat(defaultHostId);function registerLayer(j,_e){_layersByHostId[j]||(_layersByHostId[j]=[]),_layersByHostId[j].push(_e);var et=_layerHostsById[j];if(et)for(var tt=0,rt=et;tt=0&&(et.splice(tt,1),et.length===0&&delete _layersByHostId[j])}var rt=_layerHostsById[j];if(rt)for(var nt=0,ot=rt;nt0&&_e.current.naturalHeight>0||_e.current.complete&&SVG_REGEX.test(nt):!1;ct&&st(ImageLoadState.loaded)}}),reactExports.useEffect(function(){et==null||et(it)},[it]);var lt=reactExports.useCallback(function(ct){tt==null||tt(ct),nt&&st(ImageLoadState.loaded)},[nt,tt]),ut=reactExports.useCallback(function(ct){rt==null||rt(ct),st(ImageLoadState.error)},[rt]);return[it,lt,ut]}var ImageBase=reactExports.forwardRef(function(j,_e){var et=reactExports.useRef(),tt=reactExports.useRef(),rt=useLoadState(j,tt),nt=rt[0],ot=rt[1],it=rt[2],st=getNativeProps(j,imgProperties,["width","height"]),lt=j.src,ut=j.alt,ct=j.width,dt=j.height,ft=j.shouldFadeIn,pt=ft===void 0?!0:ft,gt=j.shouldStartVisible,mt=j.className,bt=j.imageFit,_t=j.role,xt=j.maximizeFrame,yt=j.styles,Et=j.theme,St=j.loading,Tt=useCoverStyle(j,nt,tt,et),kt=getClassNames$6(yt,{theme:Et,className:mt,width:ct,height:dt,maximizeFrame:xt,shouldFadeIn:pt,shouldStartVisible:gt,isLoaded:nt===ImageLoadState.loaded||nt===ImageLoadState.notLoaded&&j.shouldStartVisible,isLandscape:Tt===ImageCoverStyle.landscape,isCenter:bt===ImageFit.center,isCenterContain:bt===ImageFit.centerContain,isCenterCover:bt===ImageFit.centerCover,isContain:bt===ImageFit.contain,isCover:bt===ImageFit.cover,isNone:bt===ImageFit.none,isError:nt===ImageLoadState.error,isNotImageFit:bt===void 0});return reactExports.createElement("div",{className:kt.root,style:{width:ct,height:dt},ref:et},reactExports.createElement("img",__assign$4({},st,{onLoad:ot,onError:it,key:KEY_PREFIX+j.src||"",className:kt.image,ref:useMergedRefs(tt,_e),src:lt,alt:ut,role:_t,loading:St})))});ImageBase.displayName="ImageBase";function useCoverStyle(j,_e,et,tt){var rt=reactExports.useRef(_e),nt=reactExports.useRef();return(nt===void 0||rt.current===ImageLoadState.notLoaded&&_e===ImageLoadState.loaded)&&(nt.current=computeCoverStyle(j,_e,et,tt)),rt.current=_e,nt.current}function computeCoverStyle(j,_e,et,tt){var rt=j.imageFit,nt=j.width,ot=j.height;if(j.coverStyle!==void 0)return j.coverStyle;if(_e===ImageLoadState.loaded&&(rt===ImageFit.cover||rt===ImageFit.contain||rt===ImageFit.centerContain||rt===ImageFit.centerCover)&&et.current&&tt.current){var it=void 0;typeof nt=="number"&&typeof ot=="number"&&rt!==ImageFit.centerContain&&rt!==ImageFit.centerCover?it=nt/ot:it=tt.current.clientWidth/tt.current.clientHeight;var st=et.current.naturalWidth/et.current.naturalHeight;if(st>it)return ImageCoverStyle.landscape}return ImageCoverStyle.portrait}var GlobalClassNames$5={root:"ms-Image",rootMaximizeFrame:"ms-Image--maximizeFrame",image:"ms-Image-image",imageCenter:"ms-Image-image--center",imageContain:"ms-Image-image--contain",imageCover:"ms-Image-image--cover",imageCenterContain:"ms-Image-image--centerContain",imageCenterCover:"ms-Image-image--centerCover",imageNone:"ms-Image-image--none",imageLandscape:"ms-Image-image--landscape",imagePortrait:"ms-Image-image--portrait"},getStyles$6=function(j){var _e=j.className,et=j.width,tt=j.height,rt=j.maximizeFrame,nt=j.isLoaded,ot=j.shouldFadeIn,it=j.shouldStartVisible,st=j.isLandscape,lt=j.isCenter,ut=j.isContain,ct=j.isCover,dt=j.isCenterContain,ft=j.isCenterCover,pt=j.isNone,gt=j.isError,mt=j.isNotImageFit,bt=j.theme,_t=getGlobalClassNames(GlobalClassNames$5,bt),xt={position:"absolute",left:"50% /* @noflip */",top:"50%",transform:"translate(-50%,-50%)"},yt=getWindow(),Et=yt!==void 0&&yt.navigator.msMaxTouchPoints===void 0,St=ut&&st||ct&&!st?{width:"100%",height:"auto"}:{width:"auto",height:"100%"};return{root:[_t.root,bt.fonts.medium,{overflow:"hidden"},rt&&[_t.rootMaximizeFrame,{height:"100%",width:"100%"}],nt&&ot&&!it&&AnimationClassNames.fadeIn400,(lt||ut||ct||dt||ft)&&{position:"relative"},_e],image:[_t.image,{display:"block",opacity:0},nt&&["is-loaded",{opacity:1}],lt&&[_t.imageCenter,xt],ut&&[_t.imageContain,Et&&{width:"100%",height:"100%",objectFit:"contain"},!Et&&St,!Et&&xt],ct&&[_t.imageCover,Et&&{width:"100%",height:"100%",objectFit:"cover"},!Et&&St,!Et&&xt],dt&&[_t.imageCenterContain,st&&{maxWidth:"100%"},!st&&{maxHeight:"100%"},xt],ft&&[_t.imageCenterCover,st&&{maxHeight:"100%"},!st&&{maxWidth:"100%"},xt],pt&&[_t.imageNone,{width:"auto",height:"auto"}],mt&&[!!et&&!tt&&{height:"auto",width:"100%"},!et&&!!tt&&{height:"100%",width:"auto"},!!et&&!!tt&&{height:"100%",width:"100%"}],st&&_t.imageLandscape,!st&&_t.imagePortrait,!nt&&"is-notLoaded",ot&&"is-fadeIn",gt&&"is-error"]}},Image$1=styled(ImageBase,getStyles$6,void 0,{scope:"Image"},!0);Image$1.displayName="Image";var classNames=mergeStyleSets({root:{display:"inline-block"},placeholder:["ms-Icon-placeHolder",{width:"1em"}],image:["ms-Icon-imageContainer",{overflow:"hidden"}]}),MS_ICON="ms-Icon",getStyles$5=function(j){var _e=j.className,et=j.iconClassName,tt=j.isPlaceholder,rt=j.isImage,nt=j.styles;return{root:[tt&&classNames.placeholder,classNames.root,rt&&classNames.image,et,_e,nt&&nt.root,nt&&nt.imageContainer]}},getIconContent=memoizeFunction(function(j){var _e=getIcon(j)||{subset:{},code:void 0},et=_e.code,tt=_e.subset;return et?{children:et,iconClassName:tt.className,fontFamily:tt.fontFace&&tt.fontFace.fontFamily,mergeImageProps:tt.mergeImageProps}:null},void 0,!0),FontIcon=function(j){var _e=j.iconName,et=j.className,tt=j.style,rt=tt===void 0?{}:tt,nt=getIconContent(_e)||{},ot=nt.iconClassName,it=nt.children,st=nt.fontFamily,lt=nt.mergeImageProps,ut=getNativeProps(j,htmlElementProperties),ct=j["aria-label"]||j.title,dt=j["aria-label"]||j["aria-labelledby"]||j.title?{role:lt?void 0:"img"}:{"aria-hidden":!0},ft=it;return lt&&typeof it=="object"&&typeof it.props=="object"&&ct&&(ft=reactExports.cloneElement(it,{alt:ct})),reactExports.createElement("i",__assign$4({"data-icon-name":_e},dt,ut,lt?{title:void 0,"aria-label":void 0}:{},{className:css$3(MS_ICON,classNames.root,ot,!_e&&classNames.placeholder,et),style:__assign$4({fontFamily:st},rt)}),ft)};memoizeFunction(function(j,_e,et){return FontIcon({iconName:j,className:_e,"aria-label":et})});var getClassNames$5=classNamesFunction({cacheSize:100}),IconBase=function(j){__extends$3(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt._onImageLoadingStateChange=function(rt){tt.props.imageProps&&tt.props.imageProps.onLoadingStateChange&&tt.props.imageProps.onLoadingStateChange(rt),rt===ImageLoadState.error&&tt.setState({imageLoadError:!0})},tt.state={imageLoadError:!1},tt}return _e.prototype.render=function(){var et=this.props,tt=et.children,rt=et.className,nt=et.styles,ot=et.iconName,it=et.imageErrorAs,st=et.theme,lt=typeof ot=="string"&&ot.length===0,ut=!!this.props.imageProps||this.props.iconType===IconType.image||this.props.iconType===IconType.Image,ct=getIconContent(ot)||{},dt=ct.iconClassName,ft=ct.children,pt=ct.mergeImageProps,gt=getClassNames$5(nt,{theme:st,className:rt,iconClassName:dt,isImage:ut,isPlaceholder:lt}),mt=ut?"span":"i",bt=getNativeProps(this.props,htmlElementProperties,["aria-label"]),_t=this.state.imageLoadError,xt=__assign$4(__assign$4({},this.props.imageProps),{onLoadingStateChange:this._onImageLoadingStateChange}),yt=_t&&it||Image$1,Et=this.props["aria-label"]||this.props.ariaLabel,St=xt.alt||Et||this.props.title,Tt=!!(St||this.props["aria-labelledby"]||xt["aria-label"]||xt["aria-labelledby"]),kt=Tt?{role:ut||pt?void 0:"img","aria-label":ut||pt?void 0:St}:{"aria-hidden":!0},$t=ft;return pt&&ft&&typeof ft=="object"&&St&&($t=reactExports.cloneElement(ft,{alt:St})),reactExports.createElement(mt,__assign$4({"data-icon-name":ot},kt,bt,pt?{title:void 0,"aria-label":void 0}:{},{className:gt.root}),ut?reactExports.createElement(yt,__assign$4({},xt)):tt||$t)},_e}(reactExports.Component),Icon=styled(IconBase,getStyles$5,void 0,{scope:"Icon"},!0);Icon.displayName="Icon";var FocusZoneTabbableElements={none:0,all:1,inputOnly:2},FocusZoneDirection;(function(j){j[j.vertical=0]="vertical",j[j.horizontal=1]="horizontal",j[j.bidirectional=2]="bidirectional",j[j.domOrder=3]="domOrder"})(FocusZoneDirection||(FocusZoneDirection={}));var IS_FOCUSABLE_ATTRIBUTE="data-is-focusable",IS_ENTER_DISABLED_ATTRIBUTE="data-disable-click-on-enter",FOCUSZONE_ID_ATTRIBUTE="data-focuszone-id",TABINDEX="tabindex",NO_VERTICAL_WRAP="data-no-vertical-wrap",NO_HORIZONTAL_WRAP="data-no-horizontal-wrap",LARGE_DISTANCE_FROM_CENTER=999999999,LARGE_NEGATIVE_DISTANCE_FROM_CENTER=-999999999,focusZoneStyles,focusZoneClass="ms-FocusZone";function raiseClickFromKeyboardEvent(j,_e){var et;typeof MouseEvent=="function"?et=new MouseEvent("click",{ctrlKey:_e==null?void 0:_e.ctrlKey,metaKey:_e==null?void 0:_e.metaKey,shiftKey:_e==null?void 0:_e.shiftKey,altKey:_e==null?void 0:_e.altKey,bubbles:_e==null?void 0:_e.bubbles,cancelable:_e==null?void 0:_e.cancelable}):(et=document.createEvent("MouseEvents"),et.initMouseEvent("click",_e?_e.bubbles:!1,_e?_e.cancelable:!1,window,0,0,0,0,0,_e?_e.ctrlKey:!1,_e?_e.altKey:!1,_e?_e.shiftKey:!1,_e?_e.metaKey:!1,0,null)),j.dispatchEvent(et)}function getRootClass(){return focusZoneStyles||(focusZoneStyles=mergeStyles$1({selectors:{":focus":{outline:"none"}}},focusZoneClass)),focusZoneStyles}var _allInstances={},_outerZones=new Set,ALLOWED_INPUT_TYPES=["text","number","password","email","tel","url","search","textarea"],ALLOW_VIRTUAL_ELEMENTS=!1,FocusZone=function(j){__extends$3(_e,j);function _e(et){var tt=this,rt,nt,ot,it;tt=j.call(this,et)||this,tt._root=reactExports.createRef(),tt._mergedRef=createMergedRef(),tt._onFocus=function(lt){if(!tt._portalContainsElement(lt.target)){var ut=tt.props,ct=ut.onActiveElementChanged,dt=ut.doNotAllowFocusEventToPropagate,ft=ut.stopFocusPropagation,pt=ut.onFocusNotification,gt=ut.onFocus,mt=ut.shouldFocusInnerElementWhenReceivedFocus,bt=ut.defaultTabbableElement,_t=tt._isImmediateDescendantOfZone(lt.target),xt;if(_t)xt=lt.target;else for(var yt=lt.target;yt&&yt!==tt._root.current;){if(isElementTabbable(yt)&&tt._isImmediateDescendantOfZone(yt)){xt=yt;break}yt=getParent(yt,ALLOW_VIRTUAL_ELEMENTS)}if(mt&<.target===tt._root.current){var Et=bt&&typeof bt=="function"&&tt._root.current&&bt(tt._root.current);Et&&isElementTabbable(Et)?(xt=Et,Et.focus()):(tt.focus(!0),tt._activeElement&&(xt=null))}var St=!tt._activeElement;xt&&xt!==tt._activeElement&&((_t||St)&&tt._setFocusAlignment(xt,!0,!0),tt._activeElement=xt,St&&tt._updateTabIndexes()),ct&&ct(tt._activeElement,lt),(ft||dt)&<.stopPropagation(),gt?gt(lt):pt&&pt()}},tt._onBlur=function(){tt._setParkedFocus(!1)},tt._onMouseDown=function(lt){if(!tt._portalContainsElement(lt.target)){var ut=tt.props.disabled;if(!ut){for(var ct=lt.target,dt=[];ct&&ct!==tt._root.current;)dt.push(ct),ct=getParent(ct,ALLOW_VIRTUAL_ELEMENTS);for(;dt.length&&(ct=dt.pop(),ct&&isElementTabbable(ct)&&tt._setActiveElement(ct,!0),!isElementFocusZone(ct)););}}},tt._onKeyDown=function(lt,ut){if(!tt._portalContainsElement(lt.target)){var ct=tt.props,dt=ct.direction,ft=ct.disabled,pt=ct.isInnerZoneKeystroke,gt=ct.pagingSupportDisabled,mt=ct.shouldEnterInnerZone;if(!ft&&(tt.props.onKeyDown&&tt.props.onKeyDown(lt),!lt.isDefaultPrevented()&&!(tt._getDocument().activeElement===tt._root.current&&tt._isInnerZone))){if((mt&&mt(lt)||pt&&pt(lt))&&tt._isImmediateDescendantOfZone(lt.target)){var bt=tt._getFirstInnerZone();if(bt){if(!bt.focus(!0))return}else if(isElementFocusSubZone(lt.target)){if(!tt.focusElement(getNextElement(lt.target,lt.target.firstChild,!0)))return}else return}else{if(lt.altKey)return;switch(lt.which){case KeyCodes$1.space:if(tt._shouldRaiseClicksOnSpace&&tt._tryInvokeClickForFocusable(lt.target,lt))break;return;case KeyCodes$1.left:if(dt!==FocusZoneDirection.vertical&&(tt._preventDefaultWhenHandled(lt),tt._moveFocusLeft(ut)))break;return;case KeyCodes$1.right:if(dt!==FocusZoneDirection.vertical&&(tt._preventDefaultWhenHandled(lt),tt._moveFocusRight(ut)))break;return;case KeyCodes$1.up:if(dt!==FocusZoneDirection.horizontal&&(tt._preventDefaultWhenHandled(lt),tt._moveFocusUp()))break;return;case KeyCodes$1.down:if(dt!==FocusZoneDirection.horizontal&&(tt._preventDefaultWhenHandled(lt),tt._moveFocusDown()))break;return;case KeyCodes$1.pageDown:if(!gt&&tt._moveFocusPaging(!0))break;return;case KeyCodes$1.pageUp:if(!gt&&tt._moveFocusPaging(!1))break;return;case KeyCodes$1.tab:if(tt.props.allowTabKey||tt.props.handleTabKey===FocusZoneTabbableElements.all||tt.props.handleTabKey===FocusZoneTabbableElements.inputOnly&&tt._isElementInput(lt.target)){var _t=!1;if(tt._processingTabKey=!0,dt===FocusZoneDirection.vertical||!tt._shouldWrapFocus(tt._activeElement,NO_HORIZONTAL_WRAP))_t=lt.shiftKey?tt._moveFocusUp():tt._moveFocusDown();else{var xt=getRTL$1(ut)?!lt.shiftKey:lt.shiftKey;_t=xt?tt._moveFocusLeft(ut):tt._moveFocusRight(ut)}if(tt._processingTabKey=!1,_t)break;tt.props.shouldResetActiveElementWhenTabFromZone&&(tt._activeElement=null)}return;case KeyCodes$1.home:if(tt._isContentEditableElement(lt.target)||tt._isElementInput(lt.target)&&!tt._shouldInputLoseFocus(lt.target,!1))return!1;var yt=tt._root.current&&tt._root.current.firstChild;if(tt._root.current&&yt&&tt.focusElement(getNextElement(tt._root.current,yt,!0)))break;return;case KeyCodes$1.end:if(tt._isContentEditableElement(lt.target)||tt._isElementInput(lt.target)&&!tt._shouldInputLoseFocus(lt.target,!0))return!1;var Et=tt._root.current&&tt._root.current.lastChild;if(tt._root.current&&tt.focusElement(getPreviousElement(tt._root.current,Et,!0,!0,!0)))break;return;case KeyCodes$1.enter:if(tt._shouldRaiseClicksOnEnter&&tt._tryInvokeClickForFocusable(lt.target,lt))break;return;default:return}}lt.preventDefault(),lt.stopPropagation()}}},tt._getHorizontalDistanceFromCenter=function(lt,ut,ct){var dt=tt._focusAlignment.left||tt._focusAlignment.x||0,ft=Math.floor(ct.top),pt=Math.floor(ut.bottom),gt=Math.floor(ct.bottom),mt=Math.floor(ut.top),bt=lt&&ft>pt,_t=!lt&>=ct.left&&dt<=ct.left+ct.width?0:Math.abs(ct.left+ct.width/2-dt):tt._shouldWrapFocus(tt._activeElement,NO_VERTICAL_WRAP)?LARGE_DISTANCE_FROM_CENTER:LARGE_NEGATIVE_DISTANCE_FROM_CENTER},initializeComponentRef(tt),tt._id=getId("FocusZone"),tt._focusAlignment={left:0,top:0},tt._processingTabKey=!1;var st=(nt=(rt=et.shouldRaiseClicks)!==null&&rt!==void 0?rt:_e.defaultProps.shouldRaiseClicks)!==null&&nt!==void 0?nt:!0;return tt._shouldRaiseClicksOnEnter=(ot=et.shouldRaiseClicksOnEnter)!==null&&ot!==void 0?ot:st,tt._shouldRaiseClicksOnSpace=(it=et.shouldRaiseClicksOnSpace)!==null&&it!==void 0?it:st,tt}return _e.getOuterZones=function(){return _outerZones.size},_e._onKeyDownCapture=function(et){et.which===KeyCodes$1.tab&&_outerZones.forEach(function(tt){return tt._updateTabIndexes()})},_e.prototype.componentDidMount=function(){var et=this._root.current;if(_allInstances[this._id]=this,et){for(var tt=getParent(et,ALLOW_VIRTUAL_ELEMENTS);tt&&tt!==this._getDocument().body&&tt.nodeType===1;){if(isElementFocusZone(tt)){this._isInnerZone=!0;break}tt=getParent(tt,ALLOW_VIRTUAL_ELEMENTS)}this._isInnerZone||(_outerZones.add(this),this._root.current&&this._root.current.addEventListener("keydown",_e._onKeyDownCapture,!0)),this._root.current&&this._root.current.addEventListener("blur",this._onBlur,!0),this._updateTabIndexes(),this.props.defaultTabbableElement&&typeof this.props.defaultTabbableElement=="string"?this._activeElement=this._getDocument().querySelector(this.props.defaultTabbableElement):this.props.defaultActiveElement&&(this._activeElement=this._getDocument().querySelector(this.props.defaultActiveElement)),this.props.shouldFocusOnMount&&this.focus()}},_e.prototype.componentDidUpdate=function(){var et=this._root.current,tt=this._getDocument();if((this._activeElement&&!elementContains(this._root.current,this._activeElement,ALLOW_VIRTUAL_ELEMENTS)||this._defaultFocusElement&&!elementContains(this._root.current,this._defaultFocusElement,ALLOW_VIRTUAL_ELEMENTS))&&(this._activeElement=null,this._defaultFocusElement=null,this._updateTabIndexes()),!this.props.preventFocusRestoration&&tt&&this._lastIndexPath&&(tt.activeElement===tt.body||tt.activeElement===null||tt.activeElement===et)){var rt=getFocusableByIndexPath(et,this._lastIndexPath);rt?(this._setActiveElement(rt,!0),rt.focus(),this._setParkedFocus(!1)):this._setParkedFocus(!0)}},_e.prototype.componentWillUnmount=function(){delete _allInstances[this._id],this._isInnerZone||(_outerZones.delete(this),this._root.current&&this._root.current.removeEventListener("keydown",_e._onKeyDownCapture,!0)),this._root.current&&this._root.current.removeEventListener("blur",this._onBlur,!0),this._activeElement=null,this._defaultFocusElement=null},_e.prototype.render=function(){var et=this,tt=this.props,rt=tt.as,nt=tt.elementType,ot=tt.rootProps,it=tt.ariaDescribedBy,st=tt.ariaLabelledBy,lt=tt.className,ut=getNativeProps(this.props,htmlElementProperties),ct=rt||nt||"div";this._evaluateFocusBeforeRender();var dt=getTheme();return reactExports.createElement(ct,__assign$4({"aria-labelledby":st,"aria-describedby":it},ut,ot,{className:css$3(getRootClass(),lt),ref:this._mergedRef(this.props.elementRef,this._root),"data-focuszone-id":this._id,onKeyDown:function(ft){return et._onKeyDown(ft,dt)},onFocus:this._onFocus,onMouseDownCapture:this._onMouseDown}),this.props.children)},_e.prototype.focus=function(et,tt){if(et===void 0&&(et=!1),tt===void 0&&(tt=!1),this._root.current)if(!et&&this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE)==="true"&&this._isInnerZone){var rt=this._getOwnerZone(this._root.current);if(rt!==this._root.current){var nt=_allInstances[rt.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];return!!nt&&nt.focusElement(this._root.current)}return!1}else{if(!et&&this._activeElement&&elementContains(this._root.current,this._activeElement)&&isElementTabbable(this._activeElement)&&(!tt||isElementVisibleAndNotHidden(this._activeElement)))return this._activeElement.focus(),!0;var ot=this._root.current.firstChild;return this.focusElement(getNextElement(this._root.current,ot,!0,void 0,void 0,void 0,void 0,void 0,tt))}return!1},_e.prototype.focusLast=function(){if(this._root.current){var et=this._root.current&&this._root.current.lastChild;return this.focusElement(getPreviousElement(this._root.current,et,!0,!0,!0))}return!1},_e.prototype.focusElement=function(et,tt){var rt=this.props,nt=rt.onBeforeFocus,ot=rt.shouldReceiveFocus;return ot&&!ot(et)||nt&&!nt(et)?!1:et?(this._setActiveElement(et,tt),this._activeElement&&this._activeElement.focus(),!0):!1},_e.prototype.setFocusAlignment=function(et){this._focusAlignment=et},Object.defineProperty(_e.prototype,"defaultFocusElement",{get:function(){return this._defaultFocusElement},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"activeElement",{get:function(){return this._activeElement},enumerable:!1,configurable:!0}),_e.prototype._evaluateFocusBeforeRender=function(){var et=this._root.current,tt=this._getDocument();if(tt){var rt=tt.activeElement;if(rt!==et){var nt=elementContains(et,rt,!1);this._lastIndexPath=nt?getElementIndexPath(et,rt):void 0}}},_e.prototype._setParkedFocus=function(et){var tt=this._root.current;tt&&this._isParked!==et&&(this._isParked=et,et?(this.props.allowFocusRoot||(this._parkedTabIndex=tt.getAttribute("tabindex"),tt.setAttribute("tabindex","-1")),tt.focus()):this.props.allowFocusRoot||(this._parkedTabIndex?(tt.setAttribute("tabindex",this._parkedTabIndex),this._parkedTabIndex=void 0):tt.removeAttribute("tabindex")))},_e.prototype._setActiveElement=function(et,tt){var rt=this._activeElement;this._activeElement=et,rt&&(isElementFocusZone(rt)&&this._updateTabIndexes(rt),rt.tabIndex=-1),this._activeElement&&((!this._focusAlignment||tt)&&this._setFocusAlignment(et,!0,!0),this._activeElement.tabIndex=0)},_e.prototype._preventDefaultWhenHandled=function(et){this.props.preventDefaultWhenHandled&&et.preventDefault()},_e.prototype._tryInvokeClickForFocusable=function(et,tt){var rt=et;if(rt===this._root.current)return!1;do{if(rt.tagName==="BUTTON"||rt.tagName==="A"||rt.tagName==="INPUT"||rt.tagName==="TEXTAREA"||rt.tagName==="SUMMARY")return!1;if(this._isImmediateDescendantOfZone(rt)&&rt.getAttribute(IS_FOCUSABLE_ATTRIBUTE)==="true"&&rt.getAttribute(IS_ENTER_DISABLED_ATTRIBUTE)!=="true")return raiseClickFromKeyboardEvent(rt,tt),!0;rt=getParent(rt,ALLOW_VIRTUAL_ELEMENTS)}while(rt!==this._root.current);return!1},_e.prototype._getFirstInnerZone=function(et){if(et=et||this._activeElement||this._root.current,!et)return null;if(isElementFocusZone(et))return _allInstances[et.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];for(var tt=et.firstElementChild;tt;){if(isElementFocusZone(tt))return _allInstances[tt.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];var rt=this._getFirstInnerZone(tt);if(rt)return rt;tt=tt.nextElementSibling}return null},_e.prototype._moveFocus=function(et,tt,rt,nt){nt===void 0&&(nt=!0);var ot=this._activeElement,it=-1,st=void 0,lt=!1,ut=this.props.direction===FocusZoneDirection.bidirectional;if(!ot||!this._root.current||this._isElementInput(ot)&&!this._shouldInputLoseFocus(ot,et))return!1;var ct=ut?ot.getBoundingClientRect():null;do if(ot=et?getNextElement(this._root.current,ot):getPreviousElement(this._root.current,ot),ut){if(ot){var dt=ot.getBoundingClientRect(),ft=tt(ct,dt);if(ft===-1&&it===-1){st=ot;break}if(ft>-1&&(it===-1||ft=0&&ft<0)break}}else{st=ot;break}while(ot);if(st&&st!==this._activeElement)lt=!0,this.focusElement(st);else if(this.props.isCircularNavigation&&nt)return et?this.focusElement(getNextElement(this._root.current,this._root.current.firstElementChild,!0)):this.focusElement(getPreviousElement(this._root.current,this._root.current.lastElementChild,!0,!0,!0));return lt},_e.prototype._moveFocusDown=function(){var et=this,tt=-1,rt=this._focusAlignment.left||this._focusAlignment.x||0;return this._moveFocus(!0,function(nt,ot){var it=-1,st=Math.floor(ot.top),lt=Math.floor(nt.bottom);return st=lt||st===tt)&&(tt=st,rt>=ot.left&&rt<=ot.left+ot.width?it=0:it=Math.abs(ot.left+ot.width/2-rt)),it)})?(this._setFocusAlignment(this._activeElement,!1,!0),!0):!1},_e.prototype._moveFocusUp=function(){var et=this,tt=-1,rt=this._focusAlignment.left||this._focusAlignment.x||0;return this._moveFocus(!1,function(nt,ot){var it=-1,st=Math.floor(ot.bottom),lt=Math.floor(ot.top),ut=Math.floor(nt.top);return st>ut?et._shouldWrapFocus(et._activeElement,NO_VERTICAL_WRAP)?LARGE_DISTANCE_FROM_CENTER:LARGE_NEGATIVE_DISTANCE_FROM_CENTER:((tt===-1&&st<=ut||lt===tt)&&(tt=lt,rt>=ot.left&&rt<=ot.left+ot.width?it=0:it=Math.abs(ot.left+ot.width/2-rt)),it)})?(this._setFocusAlignment(this._activeElement,!1,!0),!0):!1},_e.prototype._moveFocusLeft=function(et){var tt=this,rt=this._shouldWrapFocus(this._activeElement,NO_HORIZONTAL_WRAP);return this._moveFocus(getRTL$1(et),function(nt,ot){var it=-1,st;return getRTL$1(et)?st=parseFloat(ot.top.toFixed(3))parseFloat(nt.top.toFixed(3)),st&&ot.right<=nt.right&&tt.props.direction!==FocusZoneDirection.vertical?it=nt.right-ot.right:rt||(it=LARGE_NEGATIVE_DISTANCE_FROM_CENTER),it},void 0,rt)?(this._setFocusAlignment(this._activeElement,!0,!1),!0):!1},_e.prototype._moveFocusRight=function(et){var tt=this,rt=this._shouldWrapFocus(this._activeElement,NO_HORIZONTAL_WRAP);return this._moveFocus(!getRTL$1(et),function(nt,ot){var it=-1,st;return getRTL$1(et)?st=parseFloat(ot.bottom.toFixed(3))>parseFloat(nt.top.toFixed(3)):st=parseFloat(ot.top.toFixed(3))=nt.left&&tt.props.direction!==FocusZoneDirection.vertical?it=ot.left-nt.left:rt||(it=LARGE_NEGATIVE_DISTANCE_FROM_CENTER),it},void 0,rt)?(this._setFocusAlignment(this._activeElement,!0,!1),!0):!1},_e.prototype._moveFocusPaging=function(et,tt){tt===void 0&&(tt=!0);var rt=this._activeElement;if(!rt||!this._root.current||this._isElementInput(rt)&&!this._shouldInputLoseFocus(rt,et))return!1;var nt=findScrollableParent(rt);if(!nt)return!1;var ot=-1,it=void 0,st=-1,lt=-1,ut=nt.clientHeight,ct=rt.getBoundingClientRect();do if(rt=et?getNextElement(this._root.current,rt):getPreviousElement(this._root.current,rt),rt){var dt=rt.getBoundingClientRect(),ft=Math.floor(dt.top),pt=Math.floor(ct.bottom),gt=Math.floor(dt.bottom),mt=Math.floor(ct.top),bt=this._getHorizontalDistanceFromCenter(et,ct,dt),_t=et&&ft>pt+ut,xt=!et&>-1&&(et&&ft>st?(st=ft,ot=bt,it=rt):!et&>-1){var rt=et.selectionStart,nt=et.selectionEnd,ot=rt!==nt,it=et.value,st=et.readOnly;if(ot||rt>0&&!tt&&!st||rt!==it.length&&tt&&!st||this.props.handleTabKey&&!(this.props.shouldInputLoseFocusOnArrowKey&&this.props.shouldInputLoseFocusOnArrowKey(et)))return!1}return!0},_e.prototype._shouldWrapFocus=function(et,tt){return this.props.checkForNoWrap?shouldWrapFocus(et,tt):!0},_e.prototype._portalContainsElement=function(et){return et&&!!this._root.current&&portalContainsElement(et,this._root.current)},_e.prototype._getDocument=function(){return getDocument(this._root.current)},_e.defaultProps={isCircularNavigation:!1,direction:FocusZoneDirection.bidirectional,shouldRaiseClicks:!0},_e}(reactExports.Component),ContextualMenuItemType;(function(j){j[j.Normal=0]="Normal",j[j.Divider=1]="Divider",j[j.Header=2]="Header",j[j.Section=3]="Section"})(ContextualMenuItemType||(ContextualMenuItemType={}));function getIsChecked(j){return j.canCheck?!!(j.isChecked||j.checked):typeof j.isChecked=="boolean"?j.isChecked:typeof j.checked=="boolean"?j.checked:null}function hasSubmenu(j){return!!(j.subMenuProps||j.items)}function isItemDisabled(j){return!!(j.isDisabled||j.disabled)}function getMenuItemAriaRole(j){var _e=getIsChecked(j),et=_e!==null;return et?"menuitemcheckbox":"menuitem"}var defaultIconRenderer=function(j){var _e=j.item,et=j.classNames,tt=_e.iconProps;return reactExports.createElement(Icon,__assign$4({},tt,{className:et.icon}))},renderItemIcon=function(j){var _e=j.item,et=j.hasIcons;return et?_e.onRenderIcon?_e.onRenderIcon(j,defaultIconRenderer):defaultIconRenderer(j):null},renderCheckMarkIcon=function(j){var _e=j.onCheckmarkClick,et=j.item,tt=j.classNames,rt=getIsChecked(et);if(_e){var nt=function(ot){return _e(et,ot)};return reactExports.createElement(Icon,{iconName:et.canCheck!==!1&&rt?"CheckMark":"",className:tt.checkmarkIcon,onClick:nt})}return null},renderItemName=function(j){var _e=j.item,et=j.classNames;return _e.text||_e.name?reactExports.createElement("span",{className:et.label},_e.text||_e.name):null},renderSecondaryText=function(j){var _e=j.item,et=j.classNames;return _e.secondaryText?reactExports.createElement("span",{className:et.secondaryText},_e.secondaryText):null},renderSubMenuIcon=function(j){var _e=j.item,et=j.classNames,tt=j.theme;return hasSubmenu(_e)?reactExports.createElement(Icon,__assign$4({iconName:getRTL$1(tt)?"ChevronLeft":"ChevronRight"},_e.submenuIconProps,{className:et.subMenuIcon})):null},ContextualMenuItemBase=function(j){__extends$3(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt.openSubMenu=function(){var rt=tt.props,nt=rt.item,ot=rt.openSubMenu,it=rt.getSubmenuTarget;if(it){var st=it();hasSubmenu(nt)&&ot&&st&&ot(nt,st)}},tt.dismissSubMenu=function(){var rt=tt.props,nt=rt.item,ot=rt.dismissSubMenu;hasSubmenu(nt)&&ot&&ot()},tt.dismissMenu=function(rt){var nt=tt.props.dismissMenu;nt&&nt(void 0,rt)},initializeComponentRef(tt),tt}return _e.prototype.render=function(){var et=this.props,tt=et.item,rt=et.classNames,nt=tt.onRenderContent||this._renderLayout;return reactExports.createElement("div",{className:tt.split?rt.linkContentMenu:rt.linkContent},nt(this.props,{renderCheckMarkIcon,renderItemIcon,renderItemName,renderSecondaryText,renderSubMenuIcon}))},_e.prototype._renderLayout=function(et,tt){return reactExports.createElement(reactExports.Fragment,null,tt.renderCheckMarkIcon(et),tt.renderItemIcon(et),tt.renderItemName(et),tt.renderSecondaryText(et),tt.renderSubMenuIcon(et))},_e}(reactExports.Component),getDividerClassNames=memoizeFunction(function(j){return mergeStyleSets({wrapper:{display:"inline-flex",height:"100%",alignItems:"center"},divider:{width:1,height:"100%",backgroundColor:j.palette.neutralTertiaryAlt}})}),CONTEXTUAL_MENU_ITEM_HEIGHT=36,MediumScreenSelector$1=getScreenSelector(0,ScreenWidthMaxMedium),getMenuItemStyles=memoizeFunction(function(j){var _e,et,tt,rt,nt,ot=j.semanticColors,it=j.fonts,st=j.palette,lt=ot.menuItemBackgroundHovered,ut=ot.menuItemTextHovered,ct=ot.menuItemBackgroundPressed,dt=ot.bodyDivider,ft={item:[it.medium,{color:ot.bodyText,position:"relative",boxSizing:"border-box"}],divider:{display:"block",height:"1px",backgroundColor:dt,position:"relative"},root:[getFocusStyle(j),it.medium,{color:ot.bodyText,backgroundColor:"transparent",border:"none",width:"100%",height:CONTEXTUAL_MENU_ITEM_HEIGHT,lineHeight:CONTEXTUAL_MENU_ITEM_HEIGHT,display:"block",cursor:"pointer",padding:"0px 8px 0 4px",textAlign:"left"}],rootDisabled:{color:ot.disabledBodyText,cursor:"default",pointerEvents:"none",selectors:(_e={},_e[HighContrastSelector]={color:"GrayText",opacity:1},_e)},rootHovered:{backgroundColor:lt,color:ut,selectors:{".ms-ContextualMenu-icon":{color:st.themeDarkAlt},".ms-ContextualMenu-submenuIcon":{color:st.neutralPrimary}}},rootFocused:{backgroundColor:st.white},rootChecked:{selectors:{".ms-ContextualMenu-checkmarkIcon":{color:st.neutralPrimary}}},rootPressed:{backgroundColor:ct,selectors:{".ms-ContextualMenu-icon":{color:st.themeDark},".ms-ContextualMenu-submenuIcon":{color:st.neutralPrimary}}},rootExpanded:{backgroundColor:ct,color:ot.bodyTextChecked,selectors:(et={".ms-ContextualMenu-submenuIcon":(tt={},tt[HighContrastSelector]={color:"inherit"},tt)},et[HighContrastSelector]=__assign$4({},getHighContrastNoAdjustStyle()),et)},linkContent:{whiteSpace:"nowrap",height:"inherit",display:"flex",alignItems:"center",maxWidth:"100%"},anchorLink:{padding:"0px 8px 0 4px",textRendering:"auto",color:"inherit",letterSpacing:"normal",wordSpacing:"normal",textTransform:"none",textIndent:"0px",textShadow:"none",textDecoration:"none",boxSizing:"border-box"},label:{margin:"0 4px",verticalAlign:"middle",display:"inline-block",flexGrow:"1",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},secondaryText:{color:j.palette.neutralSecondary,paddingLeft:"20px",textAlign:"right"},icon:{display:"inline-block",minHeight:"1px",maxHeight:CONTEXTUAL_MENU_ITEM_HEIGHT,fontSize:IconFontSizes.medium,width:IconFontSizes.medium,margin:"0 4px",verticalAlign:"middle",flexShrink:"0",selectors:(rt={},rt[MediumScreenSelector$1]={fontSize:IconFontSizes.large,width:IconFontSizes.large},rt)},iconColor:{color:ot.menuIcon},iconDisabled:{color:ot.disabledBodyText},checkmarkIcon:{color:ot.bodySubtext},subMenuIcon:{height:CONTEXTUAL_MENU_ITEM_HEIGHT,lineHeight:CONTEXTUAL_MENU_ITEM_HEIGHT,color:st.neutralSecondary,textAlign:"center",display:"inline-block",verticalAlign:"middle",flexShrink:"0",fontSize:IconFontSizes.small,selectors:(nt={":hover":{color:st.neutralPrimary},":active":{color:st.neutralPrimary}},nt[MediumScreenSelector$1]={fontSize:IconFontSizes.medium},nt)},splitButtonFlexContainer:[getFocusStyle(j),{display:"flex",height:CONTEXTUAL_MENU_ITEM_HEIGHT,flexWrap:"nowrap",justifyContent:"center",alignItems:"flex-start"}]};return concatStyleSets(ft)}),CONTEXTUAL_SPLIT_MENU_MINWIDTH="28px",MediumScreenSelector=getScreenSelector(0,ScreenWidthMaxMedium),getSplitButtonVerticalDividerClassNames=memoizeFunction(function(j){var _e;return mergeStyleSets(getDividerClassNames(j),{wrapper:{position:"absolute",right:28,selectors:(_e={},_e[MediumScreenSelector]={right:32},_e)},divider:{height:16,width:1}})}),GlobalClassNames$4={item:"ms-ContextualMenu-item",divider:"ms-ContextualMenu-divider",root:"ms-ContextualMenu-link",isChecked:"is-checked",isExpanded:"is-expanded",isDisabled:"is-disabled",linkContent:"ms-ContextualMenu-linkContent",linkContentMenu:"ms-ContextualMenu-linkContent",icon:"ms-ContextualMenu-icon",iconColor:"ms-ContextualMenu-iconColor",checkmarkIcon:"ms-ContextualMenu-checkmarkIcon",subMenuIcon:"ms-ContextualMenu-submenuIcon",label:"ms-ContextualMenu-itemText",secondaryText:"ms-ContextualMenu-secondaryText",splitMenu:"ms-ContextualMenu-splitMenu",screenReaderText:"ms-ContextualMenu-screenReaderText"},getItemClassNames=memoizeFunction(function(j,_e,et,tt,rt,nt,ot,it,st,lt,ut,ct){var dt,ft,pt,gt,mt=getMenuItemStyles(j),bt=getGlobalClassNames(GlobalClassNames$4,j);return mergeStyleSets({item:[bt.item,mt.item,ot],divider:[bt.divider,mt.divider,it],root:[bt.root,mt.root,tt&&[bt.isChecked,mt.rootChecked],rt&&mt.anchorLink,et&&[bt.isExpanded,mt.rootExpanded],_e&&[bt.isDisabled,mt.rootDisabled],!_e&&!et&&[{selectors:(dt={":hover":mt.rootHovered,":active":mt.rootPressed},dt[".".concat(IsFocusVisibleClassName," &:focus, .").concat(IsFocusVisibleClassName," &:focus:hover")]=mt.rootFocused,dt[".".concat(IsFocusVisibleClassName," &:hover")]={background:"inherit;"},dt)}],ct],splitPrimary:[mt.root,{width:"calc(100% - ".concat(CONTEXTUAL_SPLIT_MENU_MINWIDTH,")")},tt&&["is-checked",mt.rootChecked],(_e||ut)&&["is-disabled",mt.rootDisabled],!(_e||ut)&&!tt&&[{selectors:(ft={":hover":mt.rootHovered},ft[":hover ~ .".concat(bt.splitMenu)]=mt.rootHovered,ft[":active"]=mt.rootPressed,ft[".".concat(IsFocusVisibleClassName," &:focus, .").concat(IsFocusVisibleClassName," &:focus:hover")]=mt.rootFocused,ft[".".concat(IsFocusVisibleClassName," &:hover")]={background:"inherit;"},ft)}]],splitMenu:[bt.splitMenu,mt.root,{flexBasis:"0",padding:"0 8px",minWidth:CONTEXTUAL_SPLIT_MENU_MINWIDTH},et&&["is-expanded",mt.rootExpanded],_e&&["is-disabled",mt.rootDisabled],!_e&&!et&&[{selectors:(pt={":hover":mt.rootHovered,":active":mt.rootPressed},pt[".".concat(IsFocusVisibleClassName," &:focus, .").concat(IsFocusVisibleClassName," &:focus:hover")]=mt.rootFocused,pt[".".concat(IsFocusVisibleClassName," &:hover")]={background:"inherit;"},pt)}]],anchorLink:mt.anchorLink,linkContent:[bt.linkContent,mt.linkContent],linkContentMenu:[bt.linkContentMenu,mt.linkContent,{justifyContent:"center"}],icon:[bt.icon,nt&&mt.iconColor,mt.icon,st,_e&&[bt.isDisabled,mt.iconDisabled]],iconColor:mt.iconColor,checkmarkIcon:[bt.checkmarkIcon,nt&&mt.checkmarkIcon,mt.icon,st],subMenuIcon:[bt.subMenuIcon,mt.subMenuIcon,lt,et&&{color:j.palette.neutralPrimary},_e&&[mt.iconDisabled]],label:[bt.label,mt.label],secondaryText:[bt.secondaryText,mt.secondaryText],splitContainer:[mt.splitButtonFlexContainer,!_e&&!tt&&[{selectors:(gt={},gt[".".concat(IsFocusVisibleClassName," &:focus, .").concat(IsFocusVisibleClassName," &:focus:hover")]=mt.rootFocused,gt)}]],screenReaderText:[bt.screenReaderText,mt.screenReaderText,hiddenContentStyle,{visibility:"hidden"}]})}),getItemStyles=function(j){var _e=j.theme,et=j.disabled,tt=j.expanded,rt=j.checked,nt=j.isAnchorLink,ot=j.knownIcon,it=j.itemClassName,st=j.dividerClassName,lt=j.iconClassName,ut=j.subMenuClassName,ct=j.primaryDisabled,dt=j.className;return getItemClassNames(_e,et,tt,rt,nt,ot,it,st,lt,ut,ct,dt)},ContextualMenuItem=styled(ContextualMenuItemBase,getItemStyles,void 0,{scope:"ContextualMenuItem"}),ContextualMenuItemWrapper=function(j){__extends$3(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt._onItemMouseEnter=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseEnter;it&&it(ot,rt,rt.currentTarget)},tt._onItemClick=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemClickBase;it&&it(ot,rt,rt.currentTarget)},tt._onItemMouseLeave=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseLeave;it&&it(ot,rt)},tt._onItemKeyDown=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemKeyDown;it&&it(ot,rt)},tt._onItemMouseMove=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseMove;it&&it(ot,rt,rt.currentTarget)},tt._getSubmenuTarget=function(){},initializeComponentRef(tt),tt}return _e.prototype.shouldComponentUpdate=function(et){return!shallowCompare(et,this.props)},_e}(reactExports.Component),KTP_PREFIX="ktp",KTP_SEPARATOR="-",DATAKTP_TARGET="data-ktp-target",DATAKTP_EXECUTE_TARGET="data-ktp-execute-target",KTP_LAYER_ID="ktp-layer-id",KeytipEvents;(function(j){j.KEYTIP_ADDED="keytipAdded",j.KEYTIP_REMOVED="keytipRemoved",j.KEYTIP_UPDATED="keytipUpdated",j.PERSISTED_KEYTIP_ADDED="persistedKeytipAdded",j.PERSISTED_KEYTIP_REMOVED="persistedKeytipRemoved",j.PERSISTED_KEYTIP_EXECUTE="persistedKeytipExecute",j.ENTER_KEYTIP_MODE="enterKeytipMode",j.EXIT_KEYTIP_MODE="exitKeytipMode"})(KeytipEvents||(KeytipEvents={}));var KeytipManager=function(){function j(){this.keytips={},this.persistedKeytips={},this.sequenceMapping={},this.inKeytipMode=!1,this.shouldEnterKeytipMode=!0,this.delayUpdatingKeytipChange=!1}return j.getInstance=function(){return this._instance},j.prototype.init=function(_e){this.delayUpdatingKeytipChange=_e},j.prototype.register=function(_e,et){et===void 0&&(et=!1);var tt=_e;et||(tt=this.addParentOverflow(_e),this.sequenceMapping[tt.keySequences.toString()]=tt);var rt=this._getUniqueKtp(tt);if(et?this.persistedKeytips[rt.uniqueID]=rt:this.keytips[rt.uniqueID]=rt,this.inKeytipMode||!this.delayUpdatingKeytipChange){var nt=et?KeytipEvents.PERSISTED_KEYTIP_ADDED:KeytipEvents.KEYTIP_ADDED;EventGroup.raise(this,nt,{keytip:tt,uniqueID:rt.uniqueID})}return rt.uniqueID},j.prototype.update=function(_e,et){var tt=this.addParentOverflow(_e),rt=this._getUniqueKtp(tt,et),nt=this.keytips[et];nt&&(rt.keytip.visible=nt.keytip.visible,this.keytips[et]=rt,delete this.sequenceMapping[nt.keytip.keySequences.toString()],this.sequenceMapping[rt.keytip.keySequences.toString()]=rt.keytip,(this.inKeytipMode||!this.delayUpdatingKeytipChange)&&EventGroup.raise(this,KeytipEvents.KEYTIP_UPDATED,{keytip:rt.keytip,uniqueID:rt.uniqueID}))},j.prototype.unregister=function(_e,et,tt){tt===void 0&&(tt=!1),tt?delete this.persistedKeytips[et]:delete this.keytips[et],!tt&&delete this.sequenceMapping[_e.keySequences.toString()];var rt=tt?KeytipEvents.PERSISTED_KEYTIP_REMOVED:KeytipEvents.KEYTIP_REMOVED;(this.inKeytipMode||!this.delayUpdatingKeytipChange)&&EventGroup.raise(this,rt,{keytip:_e,uniqueID:et})},j.prototype.enterKeytipMode=function(){EventGroup.raise(this,KeytipEvents.ENTER_KEYTIP_MODE)},j.prototype.exitKeytipMode=function(){EventGroup.raise(this,KeytipEvents.EXIT_KEYTIP_MODE)},j.prototype.getKeytips=function(){var _e=this;return Object.keys(this.keytips).map(function(et){return _e.keytips[et].keytip})},j.prototype.addParentOverflow=function(_e){var et=__spreadArray$1([],_e.keySequences,!0);if(et.pop(),et.length!==0){var tt=this.sequenceMapping[et.toString()];if(tt&&tt.overflowSetSequence)return __assign$4(__assign$4({},_e),{overflowSetSequence:tt.overflowSetSequence})}return _e},j.prototype.menuExecute=function(_e,et){EventGroup.raise(this,KeytipEvents.PERSISTED_KEYTIP_EXECUTE,{overflowButtonSequences:_e,keytipSequences:et})},j.prototype._getUniqueKtp=function(_e,et){return et===void 0&&(et=getId()),{keytip:__assign$4({},_e),uniqueID:et}},j._instance=new j,j}();function sequencesToID(j){return j.reduce(function(_e,et){return _e+KTP_SEPARATOR+et.split("").join(KTP_SEPARATOR)},KTP_PREFIX)}function mergeOverflows(j,_e){var et=_e.length,tt=__spreadArray$1([],_e,!0).pop(),rt=__spreadArray$1([],j,!0);return addElementAtIndex(rt,et-1,tt)}function getAriaDescribedBy(j){var _e=" "+KTP_LAYER_ID;return j.length?_e+" "+sequencesToID(j):_e}function useKeytipData(j){var _e=reactExports.useRef(),et=j.keytipProps?__assign$4({disabled:j.disabled},j.keytipProps):void 0,tt=useConst$1(KeytipManager.getInstance()),rt=usePrevious(j);useIsomorphicLayoutEffect(function(){_e.current&&et&&((rt==null?void 0:rt.keytipProps)!==j.keytipProps||(rt==null?void 0:rt.disabled)!==j.disabled)&&tt.update(et,_e.current)}),useIsomorphicLayoutEffect(function(){return et&&(_e.current=tt.register(et)),function(){et&&tt.unregister(et,_e.current)}},[]);var nt={ariaDescribedBy:void 0,keytipId:void 0};return et&&(nt=getKeytipData(tt,et,j.ariaDescribedBy)),nt}function getKeytipData(j,_e,et){var tt=j.addParentOverflow(_e),rt=mergeAriaAttributeValues(et,getAriaDescribedBy(tt.keySequences)),nt=__spreadArray$1([],tt.keySequences,!0);tt.overflowSetSequence&&(nt=mergeOverflows(nt,tt.overflowSetSequence));var ot=sequencesToID(nt);return{ariaDescribedBy:rt,keytipId:ot}}var KeytipData=function(j){var _e,et=j.children,tt=__rest$1(j,["children"]),rt=useKeytipData(tt),nt=rt.keytipId,ot=rt.ariaDescribedBy;return et((_e={},_e[DATAKTP_TARGET]=nt,_e[DATAKTP_EXECUTE_TARGET]=nt,_e["aria-describedby"]=ot,_e))},ContextualMenuAnchor=function(j){__extends$3(_e,j);function _e(){var et=j!==null&&j.apply(this,arguments)||this;return et._anchor=reactExports.createRef(),et._getMemoizedMenuButtonKeytipProps=memoizeFunction(function(tt){return __assign$4(__assign$4({},tt),{hasMenu:!0})}),et._getSubmenuTarget=function(){return et._anchor.current?et._anchor.current:void 0},et._onItemClick=function(tt){var rt=et.props,nt=rt.item,ot=rt.onItemClick;ot&&ot(nt,tt)},et._renderAriaDescription=function(tt,rt){return tt?reactExports.createElement("span",{id:et._ariaDescriptionId,className:rt},tt):null},et}return _e.prototype.render=function(){var et=this,tt=this.props,rt=tt.item,nt=tt.classNames,ot=tt.index,it=tt.focusableElementIndex,st=tt.totalItemCount,lt=tt.hasCheckmarks,ut=tt.hasIcons,ct=tt.expandedMenuItemKey,dt=tt.onItemClick,ft=tt.openSubMenu,pt=tt.dismissSubMenu,gt=tt.dismissMenu,mt=ContextualMenuItem;this.props.item.contextualMenuItemAs&&(mt=composeComponentAs(this.props.item.contextualMenuItemAs,mt)),this.props.contextualMenuItemAs&&(mt=composeComponentAs(this.props.contextualMenuItemAs,mt));var bt=rt.rel;rt.target&&rt.target.toLowerCase()==="_blank"&&(bt=bt||"nofollow noopener noreferrer");var _t=hasSubmenu(rt),xt=getNativeProps(rt,anchorProperties),yt=isItemDisabled(rt),Et=rt.itemProps,St=rt.ariaDescription,Tt=rt.keytipProps;Tt&&_t&&(Tt=this._getMemoizedMenuButtonKeytipProps(Tt)),St&&(this._ariaDescriptionId=getId());var kt=mergeAriaAttributeValues(rt.ariaDescribedBy,St?this._ariaDescriptionId:void 0,xt["aria-describedby"]),$t={"aria-describedby":kt};return reactExports.createElement("div",null,reactExports.createElement(KeytipData,{keytipProps:rt.keytipProps,ariaDescribedBy:kt,disabled:yt},function(Ct){return reactExports.createElement("a",__assign$4({},$t,xt,Ct,{ref:et._anchor,href:rt.href,target:rt.target,rel:bt,className:nt.root,role:"menuitem","aria-haspopup":_t||void 0,"aria-expanded":_t?rt.key===ct:void 0,"aria-posinset":it+1,"aria-setsize":st,"aria-disabled":isItemDisabled(rt),style:rt.style,onClick:et._onItemClick,onMouseEnter:et._onItemMouseEnter,onMouseLeave:et._onItemMouseLeave,onMouseMove:et._onItemMouseMove,onKeyDown:_t?et._onItemKeyDown:void 0}),reactExports.createElement(mt,__assign$4({componentRef:rt.componentRef,item:rt,classNames:nt,index:ot,onCheckmarkClick:lt&&dt?dt:void 0,hasIcons:ut,openSubMenu:ft,dismissSubMenu:pt,dismissMenu:gt,getSubmenuTarget:et._getSubmenuTarget},Et)),et._renderAriaDescription(St,nt.screenReaderText))}))},_e}(ContextualMenuItemWrapper),ContextualMenuButton=function(j){__extends$3(_e,j);function _e(){var et=j!==null&&j.apply(this,arguments)||this;return et._btn=reactExports.createRef(),et._getMemoizedMenuButtonKeytipProps=memoizeFunction(function(tt){return __assign$4(__assign$4({},tt),{hasMenu:!0})}),et._renderAriaDescription=function(tt,rt){return tt?reactExports.createElement("span",{id:et._ariaDescriptionId,className:rt},tt):null},et._getSubmenuTarget=function(){return et._btn.current?et._btn.current:void 0},et}return _e.prototype.render=function(){var et=this,tt=this.props,rt=tt.item,nt=tt.classNames,ot=tt.index,it=tt.focusableElementIndex,st=tt.totalItemCount,lt=tt.hasCheckmarks,ut=tt.hasIcons,ct=tt.contextualMenuItemAs,dt=tt.expandedMenuItemKey,ft=tt.onItemMouseDown,pt=tt.onItemClick,gt=tt.openSubMenu,mt=tt.dismissSubMenu,bt=tt.dismissMenu,_t=ContextualMenuItem;rt.contextualMenuItemAs&&(_t=composeComponentAs(rt.contextualMenuItemAs,_t)),ct&&(_t=composeComponentAs(ct,_t));var xt=getIsChecked(rt),yt=xt!==null,Et=getMenuItemAriaRole(rt),St=hasSubmenu(rt),Tt=rt.itemProps,kt=rt.ariaLabel,$t=rt.ariaDescription,Ct=getNativeProps(rt,buttonProperties);delete Ct.disabled;var It=rt.role||Et;$t&&(this._ariaDescriptionId=getId());var Nt=mergeAriaAttributeValues(rt.ariaDescribedBy,$t?this._ariaDescriptionId:void 0,Ct["aria-describedby"]),Ot={className:nt.root,onClick:this._onItemClick,onKeyDown:St?this._onItemKeyDown:void 0,onMouseEnter:this._onItemMouseEnter,onMouseLeave:this._onItemMouseLeave,onMouseDown:function(Mt){return ft?ft(rt,Mt):void 0},onMouseMove:this._onItemMouseMove,href:rt.href,title:rt.title,"aria-label":kt,"aria-describedby":Nt,"aria-haspopup":St||void 0,"aria-expanded":St?rt.key===dt:void 0,"aria-posinset":it+1,"aria-setsize":st,"aria-disabled":isItemDisabled(rt),"aria-checked":(It==="menuitemcheckbox"||It==="menuitemradio")&&yt?!!xt:void 0,"aria-selected":It==="menuitem"&&yt?!!xt:void 0,role:It,style:rt.style},jt=rt.keytipProps;return jt&&St&&(jt=this._getMemoizedMenuButtonKeytipProps(jt)),reactExports.createElement(KeytipData,{keytipProps:jt,ariaDescribedBy:Nt,disabled:isItemDisabled(rt)},function(Mt){return reactExports.createElement("button",__assign$4({ref:et._btn},Ct,Ot,Mt),reactExports.createElement(_t,__assign$4({componentRef:rt.componentRef,item:rt,classNames:nt,index:ot,onCheckmarkClick:lt&&pt?pt:void 0,hasIcons:ut,openSubMenu:gt,dismissSubMenu:mt,dismissMenu:bt,getSubmenuTarget:et._getSubmenuTarget},Tt)),et._renderAriaDescription($t,nt.screenReaderText))})},_e}(ContextualMenuItemWrapper),getStyles$4=function(j){var _e=j.theme,et=j.getClassNames,tt=j.className;if(!_e)throw new Error("Theme is undefined or null.");if(et){var rt=et(_e);return{wrapper:[rt.wrapper],divider:[rt.divider]}}return{wrapper:[{display:"inline-flex",height:"100%",alignItems:"center"},tt],divider:[{width:1,height:"100%",backgroundColor:_e.palette.neutralTertiaryAlt}]}},getClassNames$4=classNamesFunction(),VerticalDividerBase=reactExports.forwardRef(function(j,_e){var et=j.styles,tt=j.theme,rt=j.getClassNames,nt=j.className,ot=getClassNames$4(et,{theme:tt,getClassNames:rt,className:nt});return reactExports.createElement("span",{className:ot.wrapper,ref:_e},reactExports.createElement("span",{className:ot.divider}))});VerticalDividerBase.displayName="VerticalDividerBase";var VerticalDivider=styled(VerticalDividerBase,getStyles$4,void 0,{scope:"VerticalDivider"}),TouchIdleDelay=500,ContextualMenuSplitButton=function(j){__extends$3(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt._getMemoizedMenuButtonKeytipProps=memoizeFunction(function(rt){return __assign$4(__assign$4({},rt),{hasMenu:!0})}),tt._onItemKeyDown=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemKeyDown;rt.which===KeyCodes$1.enter?(tt._executeItemClick(rt),rt.preventDefault(),rt.stopPropagation()):it&&it(ot,rt)},tt._getSubmenuTarget=function(){return tt._splitButton},tt._renderAriaDescription=function(rt,nt){return rt?reactExports.createElement("span",{id:tt._ariaDescriptionId,className:nt},rt):null},tt._onItemMouseEnterPrimary=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseEnter;it&&it(__assign$4(__assign$4({},ot),{subMenuProps:void 0,items:void 0}),rt,tt._splitButton)},tt._onItemMouseEnterIcon=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseEnter;it&&it(ot,rt,tt._splitButton)},tt._onItemMouseMovePrimary=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseMove;it&&it(__assign$4(__assign$4({},ot),{subMenuProps:void 0,items:void 0}),rt,tt._splitButton)},tt._onItemMouseMoveIcon=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemMouseMove;it&&it(ot,rt,tt._splitButton)},tt._onIconItemClick=function(rt){var nt=tt.props,ot=nt.item,it=nt.onItemClickBase;it&&it(ot,rt,tt._splitButton?tt._splitButton:rt.currentTarget)},tt._executeItemClick=function(rt){var nt=tt.props,ot=nt.item,it=nt.executeItemClick,st=nt.onItemClick;if(!(ot.disabled||ot.isDisabled)){if(tt._processingTouch&&!ot.canCheck&&st)return st(ot,rt);it&&it(ot,rt)}},tt._onTouchStart=function(rt){tt._splitButton&&!("onpointerdown"in tt._splitButton)&&tt._handleTouchAndPointerEvent(rt)},tt._onPointerDown=function(rt){rt.pointerType==="touch"&&(tt._handleTouchAndPointerEvent(rt),rt.preventDefault(),rt.stopImmediatePropagation())},tt._async=new Async(tt),tt._events=new EventGroup(tt),tt._dismissLabelId=getId(),tt}return _e.prototype.componentDidMount=function(){this._splitButton&&"onpointerdown"in this._splitButton&&this._events.on(this._splitButton,"pointerdown",this._onPointerDown,!0)},_e.prototype.componentWillUnmount=function(){this._async.dispose(),this._events.dispose()},_e.prototype.render=function(){var et=this,tt,rt=this.props,nt=rt.item,ot=rt.classNames,it=rt.index,st=rt.focusableElementIndex,lt=rt.totalItemCount,ut=rt.hasCheckmarks,ct=rt.hasIcons,dt=rt.onItemMouseLeave,ft=rt.expandedMenuItemKey,pt=hasSubmenu(nt),gt=nt.keytipProps;gt&&(gt=this._getMemoizedMenuButtonKeytipProps(gt));var mt=nt.ariaDescription;mt&&(this._ariaDescriptionId=getId());var bt=(tt=getIsChecked(nt))!==null&&tt!==void 0?tt:void 0;return reactExports.createElement(KeytipData,{keytipProps:gt,disabled:isItemDisabled(nt)},function(_t){return reactExports.createElement("div",{"data-ktp-target":_t["data-ktp-target"],ref:function(xt){return et._splitButton=xt},role:getMenuItemAriaRole(nt),"aria-label":nt.ariaLabel,className:ot.splitContainer,"aria-disabled":isItemDisabled(nt),"aria-expanded":pt?nt.key===ft:void 0,"aria-haspopup":!0,"aria-describedby":mergeAriaAttributeValues(nt.ariaDescribedBy,mt?et._ariaDescriptionId:void 0,_t["aria-describedby"]),"aria-checked":bt,"aria-posinset":st+1,"aria-setsize":lt,onMouseEnter:et._onItemMouseEnterPrimary,onMouseLeave:dt?dt.bind(et,__assign$4(__assign$4({},nt),{subMenuProps:null,items:null})):void 0,onMouseMove:et._onItemMouseMovePrimary,onKeyDown:et._onItemKeyDown,onClick:et._executeItemClick,onTouchStart:et._onTouchStart,tabIndex:0,"data-is-focusable":!0,"aria-roledescription":nt["aria-roledescription"]},et._renderSplitPrimaryButton(nt,ot,it,ut,ct),et._renderSplitDivider(nt),et._renderSplitIconButton(nt,ot,it,_t),et._renderAriaDescription(mt,ot.screenReaderText))})},_e.prototype._renderSplitPrimaryButton=function(et,tt,rt,nt,ot){var it=this.props,st=it.contextualMenuItemAs,lt=st===void 0?ContextualMenuItem:st,ut=it.onItemClick,ct={key:et.key,disabled:isItemDisabled(et)||et.primaryDisabled,name:et.name,text:et.text||et.name,secondaryText:et.secondaryText,className:tt.splitPrimary,canCheck:et.canCheck,isChecked:et.isChecked,checked:et.checked,iconProps:et.iconProps,id:this._dismissLabelId,onRenderIcon:et.onRenderIcon,data:et.data,"data-is-focusable":!1},dt=et.itemProps;return reactExports.createElement("button",__assign$4({},getNativeProps(ct,buttonProperties)),reactExports.createElement(lt,__assign$4({"data-is-focusable":!1,item:ct,classNames:tt,index:rt,onCheckmarkClick:nt&&ut?ut:void 0,hasIcons:ot},dt)))},_e.prototype._renderSplitDivider=function(et){var tt=et.getSplitButtonVerticalDividerClassNames||getSplitButtonVerticalDividerClassNames;return reactExports.createElement(VerticalDivider,{getClassNames:tt})},_e.prototype._renderSplitIconButton=function(et,tt,rt,nt){var ot=this.props,it=ot.onItemMouseLeave,st=ot.onItemMouseDown,lt=ot.openSubMenu,ut=ot.dismissSubMenu,ct=ot.dismissMenu,dt=ContextualMenuItem;this.props.item.contextualMenuItemAs&&(dt=composeComponentAs(this.props.item.contextualMenuItemAs,dt)),this.props.contextualMenuItemAs&&(dt=composeComponentAs(this.props.contextualMenuItemAs,dt));var ft={onClick:this._onIconItemClick,disabled:isItemDisabled(et),className:tt.splitMenu,subMenuProps:et.subMenuProps,submenuIconProps:et.submenuIconProps,split:!0,key:et.key,"aria-labelledby":this._dismissLabelId},pt=__assign$4(__assign$4({},getNativeProps(ft,buttonProperties)),{onMouseEnter:this._onItemMouseEnterIcon,onMouseLeave:it?it.bind(this,et):void 0,onMouseDown:function(mt){return st?st(et,mt):void 0},onMouseMove:this._onItemMouseMoveIcon,"data-is-focusable":!1,"data-ktp-execute-target":nt["data-ktp-execute-target"],"aria-haspopup":!0}),gt=et.itemProps;return reactExports.createElement("button",__assign$4({},pt),reactExports.createElement(dt,__assign$4({componentRef:et.componentRef,item:ft,classNames:tt,index:rt,hasIcons:!1,openSubMenu:lt,dismissSubMenu:ut,dismissMenu:ct,getSubmenuTarget:this._getSubmenuTarget},gt)))},_e.prototype._handleTouchAndPointerEvent=function(et){var tt=this,rt=this.props.onTap;rt&&rt(et),this._lastTouchTimeoutId&&(this._async.clearTimeout(this._lastTouchTimeoutId),this._lastTouchTimeoutId=void 0),this._processingTouch=!0,this._lastTouchTimeoutId=this._async.setTimeout(function(){tt._processingTouch=!1,tt._lastTouchTimeoutId=void 0},TouchIdleDelay)},_e}(ContextualMenuItemWrapper),ResponsiveMode;(function(j){j[j.small=0]="small",j[j.medium=1]="medium",j[j.large=2]="large",j[j.xLarge=3]="xLarge",j[j.xxLarge=4]="xxLarge",j[j.xxxLarge=5]="xxxLarge",j[j.unknown=999]="unknown"})(ResponsiveMode||(ResponsiveMode={}));var RESPONSIVE_MAX_CONSTRAINT=[479,639,1023,1365,1919,99999999],_defaultMode,_lastMode;function getInitialResponsiveMode(){var j;return(j=_defaultMode??_lastMode)!==null&&j!==void 0?j:ResponsiveMode.large}function getWidthOfCurrentWindow(j){try{return j.document.documentElement.clientWidth}catch{return j.innerWidth}}function getResponsiveMode(j){var _e=ResponsiveMode.small;if(j){try{for(;getWidthOfCurrentWindow(j)>RESPONSIVE_MAX_CONSTRAINT[_e];)_e++}catch{_e=getInitialResponsiveMode()}_lastMode=_e}else throw new Error("Content was rendered in a server environment without providing a default responsive mode. Call setResponsiveMode to define what the responsive mode is.");return _e}var useResponsiveMode=function(j,_e){var et=reactExports.useState(getInitialResponsiveMode()),tt=et[0],rt=et[1],nt=reactExports.useCallback(function(){var it=getResponsiveMode(getWindow(j.current));tt!==it&&rt(it)},[j,tt]),ot=useWindow();return useOnEvent(ot,"resize",nt),reactExports.useEffect(function(){_e===void 0&&nt()},[_e]),_e??tt},MenuContext=reactExports.createContext({}),getClassNames$3=classNamesFunction(),getContextualMenuItemClassNames=classNamesFunction(),DEFAULT_PROPS$1={items:[],shouldFocusOnMount:!0,gapSpace:0,directionalHint:DirectionalHint.bottomAutoEdge,beakWidth:16};function getItemCount(j){for(var _e=0,et=0,tt=j;et0){var cn=0;return reactExports.createElement("li",{role:"presentation",key:Qt.key||Dr.key||"section-".concat(zt)},reactExports.createElement("div",__assign$4({},lr),reactExports.createElement("ul",{className:Zt.list,role:"presentation"},Qt.topDivider&&vr(zt,Kt,!0,!0),or&&rr(or,Dr.key||zt,Kt,Dr.title),Qt.items.map(function(rn,en){var _n=Ut(rn,en,cn,getItemCount(Qt.items),Ht,Dt,Zt);if(rn.itemType!==ContextualMenuItemType.Divider&&rn.itemType!==ContextualMenuItemType.Header){var Ln=rn.customOnRenderListLength?rn.customOnRenderListLength:1;cn+=Ln}return _n}),Qt.bottomDivider&&vr(zt,Kt,!1,!0))))}}},rr=function(Dr,Kt,Zt,zt){return reactExports.createElement("li",{role:"presentation",title:zt,key:Kt,className:Zt.item},Dr)},vr=function(Dr,Kt,Zt,zt){return zt||Dr>0?reactExports.createElement("li",{role:"separator",key:"separator-"+Dr+(Zt===void 0?"":Zt?"-top":"-bottom"),className:Kt.divider,"aria-hidden":"true"}):null},$r=function(Dr,Kt,Zt,zt,Ht,Dt,Qt){if(Dr.onRender)return Dr.onRender(__assign$4({"aria-posinset":zt+1,"aria-setsize":Ht},Dr),st);var or=rt.contextualMenuItemAs,lr={item:Dr,classNames:Kt,index:Zt,focusableElementIndex:zt,totalItemCount:Ht,hasCheckmarks:Dt,hasIcons:Qt,contextualMenuItemAs:or,onItemMouseEnter:qt,onItemMouseLeave:Xt,onItemMouseMove:Yt,onItemMouseDown,executeItemClick:mr,onItemKeyDown:Pt,expandedMenuItemKey:pt,openSubMenu:gt,dismissSubMenu:bt,dismissMenu:st};if(Dr.href){var er=ContextualMenuAnchor;return Dr.contextualMenuItemWrapperAs&&(er=composeComponentAs(Dr.contextualMenuItemWrapperAs,er)),reactExports.createElement(er,__assign$4({},lr,{onItemClick:cr}))}if(Dr.split&&hasSubmenu(Dr)){var yr=ContextualMenuSplitButton;return Dr.contextualMenuItemWrapperAs&&(yr=composeComponentAs(Dr.contextualMenuItemWrapperAs,yr)),reactExports.createElement(yr,__assign$4({},lr,{onItemClick:tr,onItemClickBase:Er,onTap:Ct}))}var Lr=ContextualMenuButton;return Dr.contextualMenuItemWrapperAs&&(Lr=composeComponentAs(Dr.contextualMenuItemWrapperAs,Lr)),reactExports.createElement(Lr,__assign$4({},lr,{onItemClick:tr,onItemClickBase:Er}))},Rr=function(Dr,Kt,Zt,zt,Ht,Dt){var Qt=ContextualMenuItem;Dr.contextualMenuItemAs&&(Qt=composeComponentAs(Dr.contextualMenuItemAs,Qt)),rt.contextualMenuItemAs&&(Qt=composeComponentAs(rt.contextualMenuItemAs,Qt));var or=Dr.itemProps,lr=Dr.id,er=or&&getNativeProps(or,divProperties);return reactExports.createElement("div",__assign$4({id:lr,className:Zt.header},er,{style:Dr.style}),reactExports.createElement(Qt,__assign$4({item:Dr,classNames:Kt,index:zt,onCheckmarkClick:Ht?tr:void 0,hasIcons:Dt},or)))},Cr=rt.isBeakVisible,Nr=rt.items,Gr=rt.labelElementId,qr=rt.id,Qr=rt.className,Yr=rt.beakWidth,Pr=rt.directionalHint,Vr=rt.directionalHintForRTL,yn=rt.alignTargetEdge,fr=rt.gapSpace,sr=rt.coverTarget,ir=rt.ariaLabel,gr=rt.doNotLayer,wr=rt.target,Mr=rt.bounds,Sr=rt.useTargetWidth,Ir=rt.useTargetAsMinWidth,zr=rt.directionalHintFixed,Xr=rt.shouldFocusOnMount,Zr=rt.shouldFocusOnContainer,sn=rt.title,$n=rt.styles,Nn=rt.theme,hn=rt.calloutProps,jn=rt.onRenderSubMenu,qn=jn===void 0?onDefaultRenderSubMenu:jn,Sn=rt.onRenderMenuList,un=Sn===void 0?function(Dr,Kt){return hr(Dr,Pn)}:Sn,Fn=rt.focusZoneProps,On=rt.getMenuClassNames,Pn=On?On(Nn,Qr):getClassNames$3($n,{theme:Nn,className:Qr}),wn=fn(Nr);function fn(Dr){for(var Kt=0,Zt=Dr;Kt0){var eo=getItemCount(Nr),Co=Pn.subComponentStyles?Pn.subComponentStyles.callout:void 0;return reactExports.createElement(MenuContext.Consumer,null,function(Dr){return reactExports.createElement(Callout,__assign$4({styles:Co,onRestoreFocus:dt},hn,{target:wr||Dr.target,isBeakVisible:Cr,beakWidth:Yr,directionalHint:Pr,directionalHintForRTL:Vr,gapSpace:fr,coverTarget:sr,doNotLayer:gr,className:css$3("ms-ContextualMenu-Callout",hn&&hn.className),setInitialFocus:Xr,onDismiss:rt.onDismiss||Dr.onDismiss,onScroll:Tt,bounds:Mr,directionalHintFixed:zr,alignTargetEdge:yn,hidden:rt.hidden||Dr.hidden,ref:_e}),reactExports.createElement("div",{style:ro,ref:nt,id:qr,className:Pn.container,tabIndex:Zr?0:-1,onKeyDown:Lt,onKeyUp:Rt,onFocusCapture:Et,"aria-label":ir,"aria-labelledby":Gr,role:"menu"},sn&&reactExports.createElement("div",{className:Pn.title}," ",sn," "),Nr&&Nr.length?_r(un({ariaLabel:ir,items:Nr,totalItemCount:eo,hasCheckmarks:jr,hasIcons:wn,defaultMenuItemRenderer:function(Kt){return ar(Kt,Pn)},labelElementId:Gr},function(Kt,Zt){return hr(Kt,Pn)}),Kr):null,zn&&qn(zn,onDefaultRenderSubMenu)),reactExports.createElement(FocusRects,null))})}else return null}),function(j,_e){return!_e.shouldUpdateWhenHidden&&j.hidden&&_e.hidden?!0:shallowCompare(j,_e)});ContextualMenuBase.displayName="ContextualMenuBase";function isAltOrMeta(j){return j.which===KeyCodes$1.alt||j.key==="Meta"}function onItemMouseDown(j,_e){var et;(et=j.onMouseDown)===null||et===void 0||et.call(j,j,_e)}function onDefaultRenderSubMenu(j,_e){throw Error("ContextualMenuBase: onRenderSubMenu callback is null or undefined. Please ensure to set `onRenderSubMenu` property either manually or with `styled` helper.")}function findItemByKeyFromItems(j,_e){for(var et=0,tt=_e;et=(Rt||ResponsiveMode.small)&&reactExports.createElement(Layer$1,__assign$4({ref:hr},sn),reactExports.createElement(Popup,__assign$4({role:zr?"alertdialog":"dialog",ariaLabelledBy:It,ariaDescribedBy:Ot,onDismiss:Tt,shouldRestoreFocus:!_t,enableAriaHiddenSiblings:Yt,"aria-modal":!Pt},Xt),reactExports.createElement("div",{className:Zr.root,role:Pt?void 0:"document"},!Pt&&reactExports.createElement(Overlay,__assign$4({"aria-hidden":!0,isDarkThemed:St,onClick:xt?void 0:Tt,allowTouchBodyScroll:st},$t)),Gt?reactExports.createElement(DraggableZone,{handleSelector:Gt.dragHandleSelector||"#".concat(Ut),preventDragSelector:"button",onStart:qn,onDragChange:Sn,onStop:un,position:Yr},wn):wn)))||null});ModalBase.displayName="Modal";var Modal=styled(ModalBase,getStyles$2,void 0,{scope:"Modal",fields:["theme","styles","enableAriaHiddenSiblings"]});Modal.displayName="Modal";var assign$2=__assign$4;function withSlots(j,_e){for(var et=[],tt=2;tt0)throw new Error("Any module using getSlots must use withSlots. Please see withSlots javadoc for more info.");return _renderSlot(_e[ot],st,tt[ot],tt.slots&&tt.slots[ot],tt._defaultStyles&&tt._defaultStyles[ot],tt.theme)};it.isSlot=!0,et[ot]=it}};for(var nt in _e)rt(nt);return et}function _translateShorthand(j,_e){var et,tt;return typeof _e=="string"||typeof _e=="number"||typeof _e=="boolean"?tt=(et={},et[j]=_e,et):tt=_e,tt}function _constructFinalProps(j,_e){for(var et=[],tt=2;tt2)return{rowGap:{value:0,unit:"px"},columnGap:{value:0,unit:"px"}};if(et.length===2)return{rowGap:_getValueUnitGap(_getThemedSpacing(et[0],_e)),columnGap:_getValueUnitGap(_getThemedSpacing(et[1],_e))};var tt=_getValueUnitGap(_getThemedSpacing(j,_e));return{rowGap:tt,columnGap:tt}},parsePadding=function(j,_e){if(j===void 0||typeof j=="number"||j==="")return j;var et=j.split(" ");return et.length<2?_getThemedSpacing(j,_e):et.reduce(function(tt,rt){return _getThemedSpacing(tt,_e)+" "+_getThemedSpacing(rt,_e)})},nameMap={start:"flex-start",end:"flex-end"},GlobalClassNames={root:"ms-Stack",inner:"ms-Stack-inner",child:"ms-Stack-child"},styles$2=function(j,_e,et){var tt,rt,nt,ot,it,st,lt,ut,ct,dt,ft,pt,gt,mt=j.className,bt=j.disableShrink,_t=j.enableScopedSelectors,xt=j.grow,yt=j.horizontal,Et=j.horizontalAlign,St=j.reversed,Tt=j.verticalAlign,kt=j.verticalFill,$t=j.wrap,Ct=getGlobalClassNames(GlobalClassNames,_e),It=et&&et.childrenGap?et.childrenGap:j.gap,Nt=et&&et.maxHeight?et.maxHeight:j.maxHeight,Ot=et&&et.maxWidth?et.maxWidth:j.maxWidth,jt=et&&et.padding?et.padding:j.padding,Mt=parseGap(It,_e),Rt=Mt.rowGap,Lt=Mt.columnGap,Pt="".concat(-.5*Lt.value).concat(Lt.unit),Gt="".concat(-.5*Rt.value).concat(Rt.unit),qt={textOverflow:"ellipsis"},Yt="> "+(_t?"."+GlobalClassNames.child:"*"),Xt=(tt={},tt["".concat(Yt,":not(.").concat(GlobalClassNames$1.root,")")]={flexShrink:0},tt);return $t?{root:[Ct.root,{flexWrap:"wrap",maxWidth:Ot,maxHeight:Nt,width:"auto",overflow:"visible",height:"100%"},Et&&(rt={},rt[yt?"justifyContent":"alignItems"]=nameMap[Et]||Et,rt),Tt&&(nt={},nt[yt?"alignItems":"justifyContent"]=nameMap[Tt]||Tt,nt),mt,{display:"flex"},yt&&{height:kt?"100%":"auto"}],inner:[Ct.inner,(ot={display:"flex",flexWrap:"wrap",marginLeft:Pt,marginRight:Pt,marginTop:Gt,marginBottom:Gt,overflow:"visible",boxSizing:"border-box",padding:parsePadding(jt,_e),width:Lt.value===0?"100%":"calc(100% + ".concat(Lt.value).concat(Lt.unit,")"),maxWidth:"100vw"},ot[Yt]=__assign$4({margin:"".concat(.5*Rt.value).concat(Rt.unit," ").concat(.5*Lt.value).concat(Lt.unit)},qt),ot),bt&&Xt,Et&&(it={},it[yt?"justifyContent":"alignItems"]=nameMap[Et]||Et,it),Tt&&(st={},st[yt?"alignItems":"justifyContent"]=nameMap[Tt]||Tt,st),yt&&(lt={flexDirection:St?"row-reverse":"row",height:Rt.value===0?"100%":"calc(100% + ".concat(Rt.value).concat(Rt.unit,")")},lt[Yt]={maxWidth:Lt.value===0?"100%":"calc(100% - ".concat(Lt.value).concat(Lt.unit,")")},lt),!yt&&(ut={flexDirection:St?"column-reverse":"column",height:"calc(100% + ".concat(Rt.value).concat(Rt.unit,")")},ut[Yt]={maxHeight:Rt.value===0?"100%":"calc(100% - ".concat(Rt.value).concat(Rt.unit,")")},ut)]}:{root:[Ct.root,(ct={display:"flex",flexDirection:yt?St?"row-reverse":"row":St?"column-reverse":"column",flexWrap:"nowrap",width:"auto",height:kt?"100%":"auto",maxWidth:Ot,maxHeight:Nt,padding:parsePadding(jt,_e),boxSizing:"border-box"},ct[Yt]=qt,ct),bt&&Xt,xt&&{flexGrow:xt===!0?1:xt},Et&&(dt={},dt[yt?"justifyContent":"alignItems"]=nameMap[Et]||Et,dt),Tt&&(ft={},ft[yt?"alignItems":"justifyContent"]=nameMap[Tt]||Tt,ft),yt&&Lt.value>0&&(pt={},pt[St?"".concat(Yt,":not(:last-child)"):"".concat(Yt,":not(:first-child)")]={marginLeft:"".concat(Lt.value).concat(Lt.unit)},pt),!yt&&Rt.value>0&&(gt={},gt[St?"".concat(Yt,":not(:last-child)"):"".concat(Yt,":not(:first-child)")]={marginTop:"".concat(Rt.value).concat(Rt.unit)},gt),mt]}},StackView=function(j){var _e=j.as,et=_e===void 0?"div":_e,tt=j.disableShrink,rt=tt===void 0?!1:tt,nt=j.doNotRenderFalsyValues,ot=nt===void 0?!1:nt,it=j.enableScopedSelectors,st=it===void 0?!1:it,lt=j.wrap,ut=__rest$1(j,["as","disableShrink","doNotRenderFalsyValues","enableScopedSelectors","wrap"]),ct=_processStackChildren(j.children,{disableShrink:rt,enableScopedSelectors:st,doNotRenderFalsyValues:ot}),dt=getNativeProps(ut,htmlElementProperties),ft=getSlots(j,{root:et,inner:"div"});return lt?withSlots(ft.root,__assign$4({},dt),withSlots(ft.inner,null,ct)):withSlots(ft.root,__assign$4({},dt),ct)};function _processStackChildren(j,_e){var et=_e.disableShrink,tt=_e.enableScopedSelectors,rt=_e.doNotRenderFalsyValues,nt=reactExports.Children.toArray(j);return nt=reactExports.Children.map(nt,function(ot){if(!ot)return rt?null:ot;if(!reactExports.isValidElement(ot))return ot;if(ot.type===reactExports.Fragment)return ot.props.children?_processStackChildren(ot.props.children,{disableShrink:et,enableScopedSelectors:tt,doNotRenderFalsyValues:rt}):null;var it=ot,st={};_isStackItem(ot)&&(st={shrink:!et});var lt=it.props.className;return reactExports.cloneElement(it,__assign$4(__assign$4(__assign$4(__assign$4({},st),it.props),lt&&{className:lt}),tt&&{className:css$3(GlobalClassNames.child,lt)}))}),nt}function _isStackItem(j){return!!j&&typeof j=="object"&&!!j.type&&j.type.displayName===StackItem.displayName}var StackStatics={Item:StackItem},Stack$1=createComponent(StackView,{displayName:"Stack",styles:styles$2,statics:StackStatics});const AzureContentSafetyIcon="data:image/svg+xml,%3csvg%20id='uuid-40011f3f-22d0-4882-8376-afe2ef514a7e'%20xmlns='http://www.w3.org/2000/svg'%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%3e%3cdefs%3e%3clinearGradient%20id='uuid-5c4dfc33-1236-40a5-b487-5c8d33e4013b'%20x1='12.062'%20y1='5.427'%20x2='12.062'%20y2='3.991'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2376bc2d'/%3e%3cstop%20offset='1'%20stop-color='%2386d633'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-5dc2ae3c-3a23-47ff-9dc1-e087ff0e2742'%20x1='2.902'%20y1='6.762'%20x2='9.455'%20y2='6.762'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23e6e6e6'/%3e%3cstop%20offset='1'%20stop-color='%23999'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-d781b8b0-afbe-4f6e-a478-ee1974441cbf'%20x1='-1288.505'%20y1='-521.774'%20x2='-1284.777'%20y2='-521.774'%20gradientTransform='translate(-512.319%201291.819)%20rotate(90)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2386d633'/%3e%3cstop%20offset='1'%20stop-color='%2376bc2d'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-efb884ed-afc6-4667-82f2-34983e82b107'%20x1='2.902'%20y1='11.544'%20x2='9.455'%20y2='11.544'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23e6e6e6'/%3e%3cstop%20offset='1'%20stop-color='%23999'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-e8c8c19d-aa6c-48ed-823e-cfec5a014d78'%20x1='-274.183'%20y1='-521.774'%20x2='-279.397'%20y2='-521.774'%20gradientTransform='translate(-512.319%20-263.224)%20rotate(-90)%20scale(1%20-1)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23faa21d'/%3e%3cstop%20offset='.999'%20stop-color='%23f78d1e'/%3e%3c/linearGradient%3e%3clinearGradient%20id='uuid-7a6a88dd-1778-43da-9238-45bfc5a17b3e'%20x1='-140.646'%20y1='13.626'%20x2='-143.764'%20y2='4.784'%20gradientTransform='translate(149.182)%20skewX(-19.425)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2350e6ff'/%3e%3cstop%20offset='1'%20stop-color='%239cebff'/%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='m16.62,4.541l-2.765-1.597c-.129-.075-.291.019-.291.168v.822h-6.158v1.55h6.158v.822c0,.149.161.242.291.168l2.765-1.597c.129-.075.129-.261,0-.336Z'%20fill='url(%23uuid-5c4dfc33-1236-40a5-b487-5c8d33e4013b)'/%3e%3cpath%20d='m4.495,9.616h-1.592v-4.634c-.002-.591.476-1.071,1.067-1.073,0,0,.001,0,.002,0h5.484v1.592h-4.96v4.115Z'%20fill='url(%23uuid-5dc2ae3c-3a23-47ff-9dc1-e087ff0e2742)'/%3e%3ccircle%20cx='9.455'%20cy='4.603'%20r='2.607'%20fill='url(%23uuid-d781b8b0-afbe-4f6e-a478-ee1974441cbf)'/%3e%3cpath%20d='m9.455,14.4H3.971c-.591,0-1.07-.48-1.069-1.071,0,0,0-.001,0-.002v-4.638h1.592v4.115h4.96v1.596Z'%20fill='url(%23uuid-efb884ed-afc6-4667-82f2-34983e82b107)'/%3e%3ccircle%20cx='9.455'%20cy='13.397'%20r='2.607'%20fill='url(%23uuid-e8c8c19d-aa6c-48ed-823e-cfec5a014d78)'/%3e%3cpath%20d='m5.008,12.097H1.696c-.272,0-.453-.301-.405-.673l.584-4.534c.048-.372.307-.673.578-.673h3.312c.272,0,.453.301.405.673l-.584,4.534c-.048.372-.307.673-.578.673Z'%20fill='url(%23uuid-7a6a88dd-1778-43da-9238-45bfc5a17b3e)'/%3e%3cpath%20d='m.362,3.138C.162,3.138,0,2.976,0,2.777h0V.361C0,.162.162,0,.362,0h2.266c.2,0,.362.162.362.361,0,.199-.162.361-.362.361H.724v2.053c0,.199-.161.362-.361.362,0,0,0,0-.001,0Zm17.638-.361V.361C18,.162,17.838,0,17.638,0h-2.266c-.2,0-.362.162-.362.361s.162.361.362.361h1.904v2.053c0,.199.162.361.362.361.2,0,.361-.162.362-.361h0ZM2.99,17.639c0-.199-.162-.361-.362-.361H.724v-2.053c0-.199-.162-.361-.362-.361-.2,0-.362.162-.362.361v2.415c0,.199.163.36.362.36h2.266c.2,0,.362-.162.362-.361Zm15.01.001v-2.415c0-.199-.162-.361-.362-.361-.2,0-.361.162-.362.361v2.053h-1.904c-.2,0-.362.162-.362.362,0,.199.162.361.362.361h2.266c.199,0,.361-.161.362-.36Z'%20fill='%2376bc2d'/%3e%3c/svg%3e",BingLogoIcon="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%20234%20343.41'%3e%3cdefs%3e%3clinearGradient%20id='a'%20x1='-29.25'%20y1='662.02'%20x2='-23.09'%20y2='658.46'%20gradientTransform='matrix(24.45,%200,%200,%20-24.45,%20967.18,%2016420.97)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2337bdff'/%3e%3cstop%20offset='0.18'%20stop-color='%2333bffd'/%3e%3cstop%20offset='0.36'%20stop-color='%2328c5f5'/%3e%3cstop%20offset='0.53'%20stop-color='%2315d0e9'/%3e%3cstop%20offset='0.55'%20stop-color='%2312d1e7'/%3e%3cstop%20offset='0.59'%20stop-color='%231cd2e5'/%3e%3cstop%20offset='0.77'%20stop-color='%2342d8dc'/%3e%3cstop%20offset='0.91'%20stop-color='%2359dbd6'/%3e%3cstop%20offset='1'%20stop-color='%2362dcd4'/%3e%3c/linearGradient%3e%3clinearGradient%20id='b'%20x1='-32.86'%20y1='656.68'%20x2='-23.89'%20y2='656.68'%20gradientTransform='matrix(24.45,%200,%200,%20-24.45,%20967.18,%2016420.97)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%2339d2ff'/%3e%3cstop%20offset='0.15'%20stop-color='%2338cefe'/%3e%3cstop%20offset='0.29'%20stop-color='%2335c3fa'/%3e%3cstop%20offset='0.43'%20stop-color='%232fb0f3'/%3e%3cstop%20offset='0.55'%20stop-color='%23299aeb'/%3e%3cstop%20offset='0.58'%20stop-color='%232692ec'/%3e%3cstop%20offset='0.76'%20stop-color='%231a6cf1'/%3e%3cstop%20offset='0.91'%20stop-color='%231355f4'/%3e%3cstop%20offset='1'%20stop-color='%23104cf5'/%3e%3c/linearGradient%3e%3clinearGradient%20id='c'%20x1='-31.2'%20y1='655.9'%20x2='-31.2'%20y2='667.89'%20gradientTransform='matrix(24.45,%200,%200,%20-24.45,%20967.18,%2016420.97)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%231b48ef'/%3e%3cstop%20offset='0.12'%20stop-color='%231c51f0'/%3e%3cstop%20offset='0.32'%20stop-color='%231e69f5'/%3e%3cstop%20offset='0.57'%20stop-color='%232190fb'/%3e%3cstop%20offset='1'%20stop-color='%2326b8f4'/%3e%3c/linearGradient%3e%3cclipPath%20id='d'%20transform='translate(-163%20-82.94)'%3e%3crect%20x='163.02'%20y='288.38'%20width='227.17'%20height='140.76'%20style='fill:none'/%3e%3c/clipPath%3e%3clinearGradient%20id='e'%20x1='-31.08'%20y1='654.47'%20x2='-25.54'%20y2='660'%20gradientTransform='matrix(24.45,%200,%200,%20-24.45,%20967.18,%2016420.97)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23fff'/%3e%3cstop%20offset='0.37'%20stop-color='%23fdfdfd'/%3e%3cstop%20offset='0.51'%20stop-color='%23f6f6f6'/%3e%3cstop%20offset='0.6'%20stop-color='%23ebebeb'/%3e%3cstop%20offset='0.68'%20stop-color='%23dadada'/%3e%3cstop%20offset='0.75'%20stop-color='%23c4c4c4'/%3e%3cstop%20offset='0.81'%20stop-color='%23a8a8a8'/%3e%3cstop%20offset='0.86'%20stop-color='%23888'/%3e%3cstop%20offset='0.91'%20stop-color='%23626262'/%3e%3cstop%20offset='0.95'%20stop-color='%23373737'/%3e%3cstop%20offset='0.99'%20stop-color='%23090909'/%3e%3cstop%20offset='1'/%3e%3c/linearGradient%3e%3cclipPath%20id='f'%20transform='translate(-163%20-82.94)'%3e%3crect%20x='163.02'%20y='82.87'%20width='86.51'%20height='302.96'%20style='fill:none'/%3e%3c/clipPath%3e%3clinearGradient%20id='g'%20x1='-31.2'%20y1='668.1'%20x2='-31.2'%20y2='656.02'%20xlink:href='%23e'/%3e%3c/defs%3e%3ctitle%3ebing-logo%3c/title%3e%3cpath%20d='M397,303.4a92.73,92.73,0,0,1-24.84,63.16,41.81,41.81,0,0,0,4.5-6,38.11,38.11,0,0,0,2.69-5.08,17.7,17.7,0,0,0,.74-1.78,17.25,17.25,0,0,0,.65-1.78c.21-.56.39-1.14.55-1.72s.33-1.2.46-1.81l.07-.21c.14-.6.25-1.2.37-1.81s.23-1.25.33-1.88v0c.09-.58.16-1.16.21-1.76a40,40,0,0,0,.21-4.13A41.41,41.41,0,0,0,377,317.11a36.51,36.51,0,0,0-2.85-4.17,39.93,39.93,0,0,0-4-4.43,41.45,41.45,0,0,0-12.36-8.28,38.78,38.78,0,0,0-6.22-2.14l-.09,0-.74-.25-10.81-3.71v0l-28.27-9.72c-.09,0-.21,0-.28,0l-1.77-.65A26.23,26.23,0,0,1,296.29,272L286,245.62l-11.83-30.16-2.27-5.82-.58-1.18a13.35,13.35,0,0,1-1-5.08,12,12,0,0,1,0-1.35,13.19,13.19,0,0,1,18.26-10.79l52.69,27,10.39,5.31A91.11,91.11,0,0,1,367,235a92.45,92.45,0,0,1,29.79,61.87C396.91,299.06,397,301.22,397,303.4Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23a)'/%3e%3cpath%20d='M382.91,338.56a42.8,42.8,0,0,1-.72,7.82c-.14.67-.28,1.35-.44,2-.3,1.2-.62,2.36-1,3.53-.21.6-.42,1.2-.65,1.78s-.49,1.18-.74,1.78a38.1,38.1,0,0,1-2.69,5.08,42.22,42.22,0,0,1-4.5,6c-7.68,8.49-33.75,23.63-43.36,29.79l-21.33,13c-15.63,9.63-30.41,16.45-49,16.91-.88,0-1.74,0-2.6,0-1.2,0-2.39,0-3.57-.07a92.86,92.86,0,0,1-74.92-43.17,91.58,91.58,0,0,1-13.68-38.67,41.13,41.13,0,0,0,60,28.95l.14-.07,2.09-1.25,8.49-5,10.81-6.4v-.3l1.39-.83,96.71-57.29,7.44-4.41.74.25.09,0a38.31,38.31,0,0,1,6.22,2.14,41.45,41.45,0,0,1,12.36,8.28,40,40,0,0,1,4,4.43,37,37,0,0,1,2.85,4.17A41.64,41.64,0,0,1,382.91,338.56Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23b)'/%3e%3cpath%20d='M245.24,147.35l0,213.29L234.39,367l-8.5,5-2.09,1.27a.24.24,0,0,0-.13.06,41.13,41.13,0,0,1-60-28.94c-.16-.89-.28-1.81-.38-2.7-.13-1.68-.22-3.33-.25-5v-240a13.77,13.77,0,0,1,21.46-11.41l42.07,27.48a5.55,5.55,0,0,0,.73.51A41.14,41.14,0,0,1,245.24,147.35Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23c)'/%3e%3cg%20style='opacity:0.14900000393390656;isolation:isolate'%3e%3cg%20style='clip-path:url(%23d)'%3e%3cpath%20d='M382.91,338.56a42.8,42.8,0,0,1-.72,7.82c-.14.67-.28,1.35-.44,2-.3,1.2-.62,2.36-1,3.53-.21.6-.42,1.2-.65,1.78s-.49,1.18-.74,1.78a38.1,38.1,0,0,1-2.69,5.08,41.81,41.81,0,0,1-4.5,6c-7.68,8.49-33.75,23.63-43.36,29.79l-21.33,13c-15.63,9.63-30.41,16.45-49,16.91-.88,0-1.74,0-2.6,0-1.2,0-2.39,0-3.57-.07a92.86,92.86,0,0,1-74.92-43.17,91.58,91.58,0,0,1-13.68-38.67,41.13,41.13,0,0,0,60,28.95l.14-.07,2.09-1.25,8.49-5,10.81-6.4v-.3l1.39-.83,96.71-57.29,7.44-4.41.74.25.09,0a38.31,38.31,0,0,1,6.22,2.14,41.45,41.45,0,0,1,12.36,8.28,40,40,0,0,1,4,4.43,37,37,0,0,1,2.85,4.17A41.64,41.64,0,0,1,382.91,338.56Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23e)'/%3e%3c/g%3e%3c/g%3e%3cg%20style='opacity:0.09799999743700027;isolation:isolate'%3e%3cg%20style='clip-path:url(%23f)'%3e%3cpath%20d='M245.24,147.35l0,213.29L234.39,367l-8.5,5-2.09,1.27a.24.24,0,0,0-.13.06,41.13,41.13,0,0,1-60-28.94c-.16-.89-.28-1.81-.38-2.7-.13-1.68-.22-3.33-.25-5v-240a13.77,13.77,0,0,1,21.46-11.41l42.07,27.48a5.55,5.55,0,0,0,.73.51A41.14,41.14,0,0,1,245.24,147.35Z'%20transform='translate(-163%20-82.94)'%20style='fill:url(%23g)'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",DefaultIcon=()=>jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16px",height:"16px",viewBox:"0 0 18 18",children:[jsxRuntimeExports.jsxs("defs",{children:[jsxRuntimeExports.jsxs("linearGradient",{id:"a5efbc52-c9a4-425f-9d94-50e000195659",x1:"9",y1:"18.967",x2:"9",y2:"3.398",gradientUnits:"userSpaceOnUse",children:[jsxRuntimeExports.jsx("stop",{offset:"0",stopColor:"#0078d4"}),jsxRuntimeExports.jsx("stop",{offset:"0.156",stopColor:"#1380da"}),jsxRuntimeExports.jsx("stop",{offset:"0.528",stopColor:"#3c91e5"}),jsxRuntimeExports.jsx("stop",{offset:"0.822",stopColor:"#559cec"}),jsxRuntimeExports.jsx("stop",{offset:"1",stopColor:"#5ea0ef"})]}),jsxRuntimeExports.jsxs("linearGradient",{id:"a110d41d-e4ca-48ee-9efe-328e60a20dcc",x1:"9",y1:"5.019",x2:"9",y2:"13.676",gradientUnits:"userSpaceOnUse",children:[jsxRuntimeExports.jsx("stop",{offset:"0.22",stopColor:"#fff"}),jsxRuntimeExports.jsx("stop",{offset:"1",stopColor:"#e6e6e6"})]}),jsxRuntimeExports.jsxs("linearGradient",{id:"bcf81335-a15c-4e8a-85c4-cb14c4ef74b0",x1:"8.991",y1:"2.883",x2:"8.991",y2:"11.32",gradientUnits:"userSpaceOnUse",children:[jsxRuntimeExports.jsx("stop",{offset:"0.22",stopColor:"#fff"}),jsxRuntimeExports.jsx("stop",{offset:"1",stopColor:"#e6e6e6"})]})]}),jsxRuntimeExports.jsx("g",{id:"b5d797c5-507f-4358-b61e-ca040c36ef52",children:jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("path",{d:"M.038,9.142,4.4,16.69a.285.285,0,0,0,.246.142h8.716a.285.285,0,0,0,.246-.142l4.358-7.548a.283.283,0,0,0,0-.284L13.6,1.31a.285.285,0,0,0-.246-.142H4.642A.285.285,0,0,0,4.4,1.31L.038,8.858A.283.283,0,0,0,.038,9.142Z",fill:"url(#a5efbc52-c9a4-425f-9d94-50e000195659)"}),jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("path",{id:"a81cd782-d573-434f-a6f1-758ffbb6f88b",d:"M12.239,6.083l.048.042a.085.085,0,0,0,.115,0l.447-.374.808-1.334a.083.083,0,0,0,0-.1l-.138-.145a.085.085,0,0,0-.1,0l-1.273.863L11.78,5.5a.086.086,0,0,0,0,.109l.049.048L9.2,8.394l-.543-.6-.6.6a1.093,1.093,0,0,1-.26.911.945.945,0,0,1-.826.3L4.376,12.232a.163.163,0,0,0,0,.231l0,.005,1.255,1.3a.162.162,0,0,0,.23.011l.011-.011L8.4,11.14a1.037,1.037,0,0,1,.3-.869.964.964,0,0,1,.826-.3l.6-.6L9.6,8.78Z",opacity:"0.4",fill:"url(#a110d41d-e4ca-48ee-9efe-328e60a20dcc)"}),jsxRuntimeExports.jsx("path",{d:"M13.283,12.057l-.6-.645L8.648,7.278h0l-.2-.218a2.242,2.242,0,0,0-.525-2.2,2.067,2.067,0,0,0-1.865-.6.09.09,0,0,0-.065.11.088.088,0,0,0,.017.035l1.05,1.068a.091.091,0,0,1,0,.085L6.808,6.65a.084.084,0,0,1-.061.06l-1.074.3a.084.084,0,0,1-.084,0l-1.02-1.08a.084.084,0,0,0-.145.054,2.19,2.19,0,0,0,.6,1.919,2.035,2.035,0,0,0,2.034.543l.036.043.23.235h0l4.592,4.828a.954.954,0,0,0,1.34.048l.048-.048a1.017,1.017,0,0,0,.284-.724A1.117,1.117,0,0,0,13.283,12.057Z",fill:"url(#bcf81335-a15c-4e8a-85c4-cb14c4ef74b0)"})]})]})})]}),OpenAIIcon$1=()=>jsxRuntimeExports.jsxs("svg",{fill:"currentColor",width:"16px",height:"16px",viewBox:"0 0 2048 2048",role:"img",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("title",{children:"OpenAI icon"}),jsxRuntimeExports.jsx("path",{d:"M832 676l575 288v760l-575 288-575-288V964l575-288zm0 144l-368 184 368 183 368-183-368-184zm-447 825l383 191v-538l-383-191v538zm894 0v-538l-383 191v538l383-191zm577-733q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9zM704 496q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9zm1206-48q0 23-15 38t-39 16q-27 0-57 11t-58 28-54 37-45 40q-19 19-39 44t-38 54-28 59-11 57q0 23-15 38t-39 16q-23 0-38-15t-16-39q0-27-11-57t-28-58-37-54-40-45q-19-19-44-39t-54-38-59-28-57-11q-23 0-38-15t-16-39q0-23 15-38t39-16q27 0 57-11t58-28 54-37 45-40q19-19 39-44t38-54 28-59 11-57q0-23 15-38t39-16q23 0 38 15t16 39q0 27 11 57t28 58 37 54 40 45q19 19 44 39t54 38 59 28 57 11q23 0 38 15t16 39zm-438 212q38-65 92-119t120-93q-65-38-119-92t-93-120q-38 65-92 119t-120 93q65 38 119 92t93 120z"})]}),PromptIcon=()=>jsxRuntimeExports.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntimeExports.jsx("path",{d:"M9.5 6.50238C9.5 6.22624 9.72386 6.00238 10 6.00238C10.2761 6.00238 10.5 6.22624 10.5 6.50238V7.50391C10.5 7.78005 10.2761 8.00391 10 8.00391C9.72386 8.00391 9.5 7.78005 9.5 7.50391V6.50238ZM12.8506 7.44332C12.6553 7.24806 12.3388 7.24806 12.1435 7.44332L11.4353 8.15151C11.2401 8.34677 11.2401 8.66335 11.4353 8.85861C11.6306 9.05388 11.9472 9.05388 12.1424 8.85861L12.8506 8.15043C13.0459 7.95517 13.0459 7.63858 12.8506 7.44332ZM7.8521 7.44332C7.65684 7.24806 7.34026 7.24806 7.145 7.44332C6.94973 7.63858 6.94973 7.95517 7.145 8.15043L7.85318 8.85861C8.04844 9.05388 8.36503 9.05388 8.56029 8.85861C8.75555 8.66335 8.75555 8.34677 8.56029 8.15151L7.8521 7.44332ZM10 2C13.3137 2 16 4.59693 16 7.80041C16 9.47737 15.2546 11.0164 13.7961 12.3942C13.7324 12.4544 13.6831 12.5269 13.6512 12.6065L13.6251 12.6883L12.6891 16.6051C12.5048 17.3763 11.8236 17.935 11.0181 17.9947L10.8748 18H9.12546C8.30655 18 7.59 17.4839 7.34866 16.7385L7.31108 16.6047L6.37626 12.6886C6.34955 12.5766 6.29016 12.4745 6.20516 12.3942C4.8153 11.0819 4.07265 9.62354 4.00507 8.03903L4 7.80041L4.00321 7.60894C4.1077 4.49409 6.75257 2 10 2ZM7.955 15L8.27386 16.3344L8.30004 16.4305C8.39695 16.7298 8.67583 16.9517 9.0116 16.993L9.12546 17L10.8379 17.0007L10.9442 16.9974C11.2865 16.9721 11.5726 16.7609 11.6854 16.4718L11.7165 16.3727L12.045 15H7.955ZM10 3C7.36782 3 5.21188 4.95301 5.0151 7.41357L5.00307 7.62569L4.99977 7.77916L5.00416 7.99642C5.05977 9.30026 5.67758 10.5208 6.89167 11.6671C7.07995 11.8449 7.22191 12.0647 7.30572 12.3078L7.34894 12.4564L7.716 14H9.50024V9.49707C9.50024 9.22093 9.7241 8.99707 10.0002 8.99707C10.2764 8.99707 10.5002 9.22093 10.5002 9.49707V14H12.285L12.6722 12.3851L12.7231 12.2343C12.8091 12.0198 12.9409 11.8265 13.1094 11.6673C14.3825 10.4646 15 9.18054 15 7.80041C15 5.15693 12.7689 3 10 3Z",fill:"currentColor"})}),PythonIcon=()=>jsxRuntimeExports.jsxs("svg",{width:"16px",height:"16px",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.0164 2C10.8193 2 9.03825 3.72453 9.03825 5.85185V8.51852H15.9235V9.25926H5.97814C3.78107 9.25926 2 10.9838 2 13.1111L2 18.8889C2 21.0162 3.78107 22.7407 5.97814 22.7407H8.27322V19.4815C8.27322 17.3542 10.0543 15.6296 12.2514 15.6296H19.5956C21.4547 15.6296 22.9617 14.1704 22.9617 12.3704V5.85185C22.9617 3.72453 21.1807 2 18.9836 2H13.0164ZM12.0984 6.74074C12.8589 6.74074 13.4754 6.14378 13.4754 5.40741C13.4754 4.67103 12.8589 4.07407 12.0984 4.07407C11.3378 4.07407 10.7213 4.67103 10.7213 5.40741C10.7213 6.14378 11.3378 6.74074 12.0984 6.74074Z",fill:"#327EBD"}),jsxRuntimeExports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18.9834 30C21.1805 30 22.9616 28.2755 22.9616 26.1482V23.4815L16.0763 23.4815L16.0763 22.7408L26.0217 22.7408C28.2188 22.7408 29.9998 21.0162 29.9998 18.8889V13.1111C29.9998 10.9838 28.2188 9.25928 26.0217 9.25928L23.7266 9.25928V12.5185C23.7266 14.6459 21.9455 16.3704 19.7485 16.3704L12.4042 16.3704C10.5451 16.3704 9.03809 17.8296 9.03809 19.6296L9.03809 26.1482C9.03809 28.2755 10.8192 30 13.0162 30H18.9834ZM19.9015 25.2593C19.1409 25.2593 18.5244 25.8562 18.5244 26.5926C18.5244 27.329 19.1409 27.9259 19.9015 27.9259C20.662 27.9259 21.2785 27.329 21.2785 26.5926C21.2785 25.8562 20.662 25.2593 19.9015 25.2593Z",fill:"#FFDA4B"})]}),TypeScriptIcon="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20aria-label='TypeScript'%20role='img'%20viewBox='0%200%20512%20512'%3e%3crect%20width='512'%20height='512'%20rx='15%25'%20fill='%233178c6'/%3e%3cpath%20fill='%23ffffff'%20d='m233%20284h64v-41H118v41h64v183h51zm84%20173c8.1%204.2%2018%207.3%2029%209.4s23%203.1%2035%203.1c12%200%2023-1.1%2034-3.4c11-2.3%2020-6.1%2028-11c8.1-5.3%2015-12%2019-21s7.1-19%207.1-32c0-9.1-1.4-17-4.1-24s-6.6-13-12-18c-5.1-5.3-11-10-18-14s-15-8.2-24-12c-6.6-2.7-12-5.3-18-7.9c-5.2-2.6-9.7-5.2-13-7.8c-3.7-2.7-6.5-5.5-8.5-8.4c-2-3-3-6.3-3-10c0-3.4.89-6.5%202.7-9.3s4.3-5.1%207.5-7.1c3.2-2%207.2-3.5%2012-4.6c4.7-1.1%209.9-1.6%2016-1.6c4.2%200%208.6.31%2013%20.94c4.6.63%209.3%201.6%2014%202.9c4.7%201.3%209.3%202.9%2014%204.9c4.4%202%208.5%204.3%2012%206.9v-47c-7.6-2.9-16-5.1-25-6.5s-19-2.1-31-2.1c-12%200-23%201.3-34%203.8s-20%206.5-28%2012c-8.1%205.4-14%2012-19%2021c-4.7%208.4-7%2018-7%2030c0%2015%204.3%2028%2013%2038c8.6%2011%2022%2019%2039%2027c6.9%202.8%2013%205.6%2019%208.3s11%205.5%2015%208.4c4.3%202.9%207.7%206.1%2010%209.5c2.5%203.4%203.8%207.4%203.8%2012c0%203.2-.78%206.2-2.3%209s-3.9%205.2-7.1%207.2s-7.1%203.6-12%204.8c-4.7%201.1-10%201.7-17%201.7c-11%200-22-1.9-32-5.7c-11-3.8-21-9.5-28.1-15.44z'/%3e%3c/svg%3e",VectorSearchIcon=()=>jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16px",height:"16px",viewBox:"0 0 18 18",role:"img",children:[jsxRuntimeExports.jsx("defs",{children:jsxRuntimeExports.jsxs("linearGradient",{id:"fb5d9d20-fc2c-4e2c-bffd-dc236176d8b2",x1:"-6428.21",y1:"9646.124",x2:"-6428.21",y2:"9617.899",gradientTransform:"matrix(0.5, 0, 0, -0.5, 3224.856, 4823.856)",gradientUnits:"userSpaceOnUse",children:[jsxRuntimeExports.jsx("stop",{offset:"0",stopColor:"#5ea0ef"}),jsxRuntimeExports.jsx("stop",{offset:"0.178",stopColor:"#589eed"}),jsxRuntimeExports.jsx("stop",{offset:"0.406",stopColor:"#4897e9"}),jsxRuntimeExports.jsx("stop",{offset:"0.662",stopColor:"#2e8ce1"}),jsxRuntimeExports.jsx("stop",{offset:"0.936",stopColor:"#0a7cd7"}),jsxRuntimeExports.jsx("stop",{offset:"1",stopColor:"#0078d4"})]})}),jsxRuntimeExports.jsx("g",{id:"a05a9809-540f-4ec8-9a73-07896b5e7f5c",children:jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("path",{d:"M8.438,10.379h4.234v4.234H8.438ZM3.5,4.734H7.732V.5H4.086a.588.588,0,0,0-.588.588Zm.588,9.879H7.732V10.379H3.5v3.646A.588.588,0,0,0,4.086,14.613ZM3.5,9.674H7.732V5.44H3.5Zm9.88,4.939h3.646a.588.588,0,0,0,.588-.588V10.379H13.378ZM8.438,9.674h4.234V5.44H8.438Zm4.94,0h4.234V5.44H13.378Zm0-9.174V4.734h4.234V1.088A.588.588,0,0,0,17.024.5ZM8.438,4.734h4.234V.5H8.438Z",fill:"url(#fb5d9d20-fc2c-4e2c-bffd-dc236176d8b2)"}),jsxRuntimeExports.jsx("rect",{x:"-0.212",y:"14.751",width:"5.457",height:"1.243",rx:"0.581",transform:"translate(-10.133 6.282) rotate(-45)",fill:"#198ab3"}),jsxRuntimeExports.jsx("circle",{cx:"5.959",cy:"11.709",r:"3.744",fill:"#50e6ff"}),jsxRuntimeExports.jsx("circle",{cx:"5.952",cy:"11.642",r:"2.94",fill:"#fff"})]})})]}),DEFAULT_SIZE$1=16,toolsIcons={PromptFlowToolAzureContentSafety:jsxRuntimeExports.jsx(AzureContentSafetyIcon,{width:DEFAULT_SIZE$1,height:DEFAULT_SIZE$1}),PromptFlowToolSerpAPI:jsxRuntimeExports.jsx(DefaultIcon,{}),PromptFlowToolBing:jsxRuntimeExports.jsx(BingLogoIcon,{width:DEFAULT_SIZE$1,height:DEFAULT_SIZE$1}),PromptFlowToolAzureContentModerator:jsxRuntimeExports.jsx(AzureContentSafetyIcon,{width:DEFAULT_SIZE$1,height:DEFAULT_SIZE$1}),PromptFlowToolVectorIndexLookupByText:jsxRuntimeExports.jsx(VectorSearchIcon,{}),PromptFlowToolFaissIndexLookup:jsxRuntimeExports.jsx(VectorSearchIcon,{}),PromptFlowToolVectorDBLookup:jsxRuntimeExports.jsx(VectorSearchIcon,{}),PromptFlowToolVectorSearch:jsxRuntimeExports.jsx(VectorSearchIcon,{}),PromptFlowToolLlm:jsxRuntimeExports.jsx(OpenAIIcon$1,{}),PromptFlowToolPython:jsxRuntimeExports.jsx(PythonIcon,{}),PromptFlowToolTypeScript:jsxRuntimeExports.jsx(TypeScriptIcon,{width:DEFAULT_SIZE$1,height:DEFAULT_SIZE$1}),PromptFlowToolPrompt:jsxRuntimeExports.jsx(PromptIcon,{}),PromptFlowToolDefault:jsxRuntimeExports.jsx(DefaultIcon,{})};registerIcons({icons:{...toolsIcons}});var getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),rnds8=new Uint8Array(16);function rng(){if(!getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}var byteToHex=[];for(var i=0;i<256;++i)byteToHex[i]=(i+256).toString(16).substr(1);function bytesToUuid(j,_e){var et=_e||0,tt=byteToHex;return[tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],"-",tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]],tt[j[et++]]].join("")}function v4(j,_e,et){var tt=_e&&et||0;typeof j=="string"&&(_e=j==="binary"?new Array(16):null,j=null),j=j||{};var rt=j.random||(j.rng||rng)();if(rt[6]=rt[6]&15|64,rt[8]=rt[8]&63|128,_e)for(var nt=0;nt<16;++nt)_e[tt+nt]=rt[nt];return _e||bytesToUuid(rt)}var toposort$1={exports:{}};toposort$1.exports=function(j){return toposort(uniqueNodes(j),j)};toposort$1.exports.array=toposort;function toposort(j,_e){for(var et=j.length,tt=new Array(et),rt={},nt=et;nt--;)rt[nt]||ot(j[nt],nt,[]);return tt;function ot(it,st,lt){if(lt.indexOf(it)>=0){var ut;try{ut=", node was:"+JSON.stringify(it)}catch{ut=""}throw new Error("Cyclic dependency"+ut)}if(!~j.indexOf(it))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(it));if(!rt[st]){rt[st]=!0;var ct=_e.filter(function(pt){return pt[0]===it});if(st=ct.length){var dt=lt.concat(it);do{var ft=ct[--st][1];ot(ft,j.indexOf(ft),dt)}while(st)}tt[--et]=it}}}function uniqueNodes(j){for(var _e=[],et=0,tt=j.length;et1?et-1:0),rt=1;rt2&&arguments[2]!==void 0?arguments[2]:stringToLowerCase;setPrototypeOf&&setPrototypeOf(j,null);let tt=_e.length;for(;tt--;){let rt=_e[tt];if(typeof rt=="string"){const nt=et(rt);nt!==rt&&(isFrozen(_e)||(_e[tt]=nt),rt=nt)}j[rt]=!0}return j}function cleanArray(j){for(let _e=0;_e/gm),TMPLIT_EXPR=seal(/\${[\w\W]*}/gm),DATA_ATTR=seal(/^data-[\-\w.\u00B7-\uFFFF]/),ARIA_ATTR=seal(/^aria-[\-\w]+$/),IS_ALLOWED_URI=seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),IS_SCRIPT_OR_DATA=seal(/^(?:\w+script|data):/i),ATTR_WHITESPACE=seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),DOCTYPE_NAME=seal(/^html$/i);var EXPRESSIONS=Object.freeze({__proto__:null,MUSTACHE_EXPR,ERB_EXPR,TMPLIT_EXPR,DATA_ATTR,ARIA_ATTR,IS_ALLOWED_URI,IS_SCRIPT_OR_DATA,ATTR_WHITESPACE,DOCTYPE_NAME});const getGlobal=function(){return typeof window>"u"?null:window},_createTrustedTypesPolicy=function(_e,et){if(typeof _e!="object"||typeof _e.createPolicy!="function")return null;let tt=null;const rt="data-tt-policy-suffix";et&&et.hasAttribute(rt)&&(tt=et.getAttribute(rt));const nt="dompurify"+(tt?"#"+tt:"");try{return _e.createPolicy(nt,{createHTML(ot){return ot},createScriptURL(ot){return ot}})}catch{return console.warn("TrustedTypes policy "+nt+" could not be created."),null}};function createDOMPurify(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:getGlobal();const _e=Ht=>createDOMPurify(Ht);if(_e.version="3.0.9",_e.removed=[],!j||!j.document||j.document.nodeType!==9)return _e.isSupported=!1,_e;let{document:et}=j;const tt=et,rt=tt.currentScript,{DocumentFragment:nt,HTMLTemplateElement:ot,Node:it,Element:st,NodeFilter:lt,NamedNodeMap:ut=j.NamedNodeMap||j.MozNamedAttrMap,HTMLFormElement:ct,DOMParser:dt,trustedTypes:ft}=j,pt=st.prototype,gt=lookupGetter(pt,"cloneNode"),mt=lookupGetter(pt,"nextSibling"),bt=lookupGetter(pt,"childNodes"),_t=lookupGetter(pt,"parentNode");if(typeof ot=="function"){const Ht=et.createElement("template");Ht.content&&Ht.content.ownerDocument&&(et=Ht.content.ownerDocument)}let xt,yt="";const{implementation:Et,createNodeIterator:St,createDocumentFragment:Tt,getElementsByTagName:kt}=et,{importNode:$t}=tt;let Ct={};_e.isSupported=typeof entries=="function"&&typeof _t=="function"&&Et&&Et.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:It,ERB_EXPR:Nt,TMPLIT_EXPR:Ot,DATA_ATTR:jt,ARIA_ATTR:Mt,IS_SCRIPT_OR_DATA:Rt,ATTR_WHITESPACE:Lt}=EXPRESSIONS;let{IS_ALLOWED_URI:Pt}=EXPRESSIONS,Gt=null;const qt=addToSet({},[...html$1,...svg$1,...svgFilters,...mathMl$1,...text]);let Yt=null;const Xt=addToSet({},[...html$2,...svg,...mathMl,...xml]);let tr=Object.seal(create$4(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),cr=null,mr=null,Er=!0,hr=!0,_r=!1,Ut=!0,ar=!1,pr=!1,rr=!1,vr=!1,$r=!1,Rr=!1,Cr=!1,Nr=!0,Gr=!1;const qr="user-content-";let Qr=!0,Yr=!1,Pr={},Vr=null;const yn=addToSet({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let fr=null;const sr=addToSet({},["audio","video","img","source","image","track"]);let ir=null;const gr=addToSet({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),wr="http://www.w3.org/1998/Math/MathML",Mr="http://www.w3.org/2000/svg",Sr="http://www.w3.org/1999/xhtml";let Ir=Sr,zr=!1,Xr=null;const Zr=addToSet({},[wr,Mr,Sr],stringToString);let sn=null;const $n=["application/xhtml+xml","text/html"],Nn="text/html";let hn=null,jn=null;const qn=et.createElement("form"),Sn=function(Dt){return Dt instanceof RegExp||Dt instanceof Function},un=function(){let Dt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(jn&&jn===Dt)){if((!Dt||typeof Dt!="object")&&(Dt={}),Dt=clone$1(Dt),sn=$n.indexOf(Dt.PARSER_MEDIA_TYPE)===-1?Nn:Dt.PARSER_MEDIA_TYPE,hn=sn==="application/xhtml+xml"?stringToString:stringToLowerCase,Gt=objectHasOwnProperty(Dt,"ALLOWED_TAGS")?addToSet({},Dt.ALLOWED_TAGS,hn):qt,Yt=objectHasOwnProperty(Dt,"ALLOWED_ATTR")?addToSet({},Dt.ALLOWED_ATTR,hn):Xt,Xr=objectHasOwnProperty(Dt,"ALLOWED_NAMESPACES")?addToSet({},Dt.ALLOWED_NAMESPACES,stringToString):Zr,ir=objectHasOwnProperty(Dt,"ADD_URI_SAFE_ATTR")?addToSet(clone$1(gr),Dt.ADD_URI_SAFE_ATTR,hn):gr,fr=objectHasOwnProperty(Dt,"ADD_DATA_URI_TAGS")?addToSet(clone$1(sr),Dt.ADD_DATA_URI_TAGS,hn):sr,Vr=objectHasOwnProperty(Dt,"FORBID_CONTENTS")?addToSet({},Dt.FORBID_CONTENTS,hn):yn,cr=objectHasOwnProperty(Dt,"FORBID_TAGS")?addToSet({},Dt.FORBID_TAGS,hn):{},mr=objectHasOwnProperty(Dt,"FORBID_ATTR")?addToSet({},Dt.FORBID_ATTR,hn):{},Pr=objectHasOwnProperty(Dt,"USE_PROFILES")?Dt.USE_PROFILES:!1,Er=Dt.ALLOW_ARIA_ATTR!==!1,hr=Dt.ALLOW_DATA_ATTR!==!1,_r=Dt.ALLOW_UNKNOWN_PROTOCOLS||!1,Ut=Dt.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ar=Dt.SAFE_FOR_TEMPLATES||!1,pr=Dt.WHOLE_DOCUMENT||!1,$r=Dt.RETURN_DOM||!1,Rr=Dt.RETURN_DOM_FRAGMENT||!1,Cr=Dt.RETURN_TRUSTED_TYPE||!1,vr=Dt.FORCE_BODY||!1,Nr=Dt.SANITIZE_DOM!==!1,Gr=Dt.SANITIZE_NAMED_PROPS||!1,Qr=Dt.KEEP_CONTENT!==!1,Yr=Dt.IN_PLACE||!1,Pt=Dt.ALLOWED_URI_REGEXP||IS_ALLOWED_URI,Ir=Dt.NAMESPACE||Sr,tr=Dt.CUSTOM_ELEMENT_HANDLING||{},Dt.CUSTOM_ELEMENT_HANDLING&&Sn(Dt.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(tr.tagNameCheck=Dt.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Dt.CUSTOM_ELEMENT_HANDLING&&Sn(Dt.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(tr.attributeNameCheck=Dt.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Dt.CUSTOM_ELEMENT_HANDLING&&typeof Dt.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(tr.allowCustomizedBuiltInElements=Dt.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ar&&(hr=!1),Rr&&($r=!0),Pr&&(Gt=addToSet({},text),Yt=[],Pr.html===!0&&(addToSet(Gt,html$1),addToSet(Yt,html$2)),Pr.svg===!0&&(addToSet(Gt,svg$1),addToSet(Yt,svg),addToSet(Yt,xml)),Pr.svgFilters===!0&&(addToSet(Gt,svgFilters),addToSet(Yt,svg),addToSet(Yt,xml)),Pr.mathMl===!0&&(addToSet(Gt,mathMl$1),addToSet(Yt,mathMl),addToSet(Yt,xml))),Dt.ADD_TAGS&&(Gt===qt&&(Gt=clone$1(Gt)),addToSet(Gt,Dt.ADD_TAGS,hn)),Dt.ADD_ATTR&&(Yt===Xt&&(Yt=clone$1(Yt)),addToSet(Yt,Dt.ADD_ATTR,hn)),Dt.ADD_URI_SAFE_ATTR&&addToSet(ir,Dt.ADD_URI_SAFE_ATTR,hn),Dt.FORBID_CONTENTS&&(Vr===yn&&(Vr=clone$1(Vr)),addToSet(Vr,Dt.FORBID_CONTENTS,hn)),Qr&&(Gt["#text"]=!0),pr&&addToSet(Gt,["html","head","body"]),Gt.table&&(addToSet(Gt,["tbody"]),delete cr.tbody),Dt.TRUSTED_TYPES_POLICY){if(typeof Dt.TRUSTED_TYPES_POLICY.createHTML!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Dt.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');xt=Dt.TRUSTED_TYPES_POLICY,yt=xt.createHTML("")}else xt===void 0&&(xt=_createTrustedTypesPolicy(ft,rt)),xt!==null&&typeof yt=="string"&&(yt=xt.createHTML(""));freeze&&freeze(Dt),jn=Dt}},Fn=addToSet({},["mi","mo","mn","ms","mtext"]),On=addToSet({},["foreignobject","desc","title","annotation-xml"]),Pn=addToSet({},["title","style","font","a","script"]),wn=addToSet({},[...svg$1,...svgFilters,...svgDisallowed]),fn=addToSet({},[...mathMl$1,...mathMlDisallowed]),Kr=function(Dt){let Qt=_t(Dt);(!Qt||!Qt.tagName)&&(Qt={namespaceURI:Ir,tagName:"template"});const or=stringToLowerCase(Dt.tagName),lr=stringToLowerCase(Qt.tagName);return Xr[Dt.namespaceURI]?Dt.namespaceURI===Mr?Qt.namespaceURI===Sr?or==="svg":Qt.namespaceURI===wr?or==="svg"&&(lr==="annotation-xml"||Fn[lr]):!!wn[or]:Dt.namespaceURI===wr?Qt.namespaceURI===Sr?or==="math":Qt.namespaceURI===Mr?or==="math"&&On[lr]:!!fn[or]:Dt.namespaceURI===Sr?Qt.namespaceURI===Mr&&!On[lr]||Qt.namespaceURI===wr&&!Fn[lr]?!1:!fn[or]&&(Pn[or]||!wn[or]):!!(sn==="application/xhtml+xml"&&Xr[Dt.namespaceURI]):!1},jr=function(Dt){arrayPush(_e.removed,{element:Dt});try{Dt.parentNode.removeChild(Dt)}catch{Dt.remove()}},zn=function(Dt,Qt){try{arrayPush(_e.removed,{attribute:Qt.getAttributeNode(Dt),from:Qt})}catch{arrayPush(_e.removed,{attribute:null,from:Qt})}if(Qt.removeAttribute(Dt),Dt==="is"&&!Yt[Dt])if($r||Rr)try{jr(Qt)}catch{}else try{Qt.setAttribute(Dt,"")}catch{}},ro=function(Dt){let Qt=null,or=null;if(vr)Dt=""+Dt;else{const yr=stringMatch(Dt,/^[\r\n\t ]+/);or=yr&&yr[0]}sn==="application/xhtml+xml"&&Ir===Sr&&(Dt=''+Dt+"");const lr=xt?xt.createHTML(Dt):Dt;if(Ir===Sr)try{Qt=new dt().parseFromString(lr,sn)}catch{}if(!Qt||!Qt.documentElement){Qt=Et.createDocument(Ir,"template",null);try{Qt.documentElement.innerHTML=zr?yt:lr}catch{}}const er=Qt.body||Qt.documentElement;return Dt&&or&&er.insertBefore(et.createTextNode(or),er.childNodes[0]||null),Ir===Sr?kt.call(Qt,pr?"html":"body")[0]:pr?Qt.documentElement:er},Mn=function(Dt){return St.call(Dt.ownerDocument||Dt,Dt,lt.SHOW_ELEMENT|lt.SHOW_COMMENT|lt.SHOW_TEXT,null)},Fo=function(Dt){return Dt instanceof ct&&(typeof Dt.nodeName!="string"||typeof Dt.textContent!="string"||typeof Dt.removeChild!="function"||!(Dt.attributes instanceof ut)||typeof Dt.removeAttribute!="function"||typeof Dt.setAttribute!="function"||typeof Dt.namespaceURI!="string"||typeof Dt.insertBefore!="function"||typeof Dt.hasChildNodes!="function")},mo=function(Dt){return typeof it=="function"&&Dt instanceof it},eo=function(Dt,Qt,or){Ct[Dt]&&arrayForEach(Ct[Dt],lr=>{lr.call(_e,Qt,or,jn)})},Co=function(Dt){let Qt=null;if(eo("beforeSanitizeElements",Dt,null),Fo(Dt))return jr(Dt),!0;const or=hn(Dt.nodeName);if(eo("uponSanitizeElement",Dt,{tagName:or,allowedTags:Gt}),Dt.hasChildNodes()&&!mo(Dt.firstElementChild)&®ExpTest(/<[/\w]/g,Dt.innerHTML)&®ExpTest(/<[/\w]/g,Dt.textContent))return jr(Dt),!0;if(!Gt[or]||cr[or]){if(!cr[or]&&Kt(or)&&(tr.tagNameCheck instanceof RegExp&®ExpTest(tr.tagNameCheck,or)||tr.tagNameCheck instanceof Function&&tr.tagNameCheck(or)))return!1;if(Qr&&!Vr[or]){const lr=_t(Dt)||Dt.parentNode,er=bt(Dt)||Dt.childNodes;if(er&&lr){const yr=er.length;for(let Lr=yr-1;Lr>=0;--Lr)lr.insertBefore(gt(er[Lr],!0),mt(Dt))}}return jr(Dt),!0}return Dt instanceof st&&!Kr(Dt)||(or==="noscript"||or==="noembed"||or==="noframes")&®ExpTest(/<\/no(script|embed|frames)/i,Dt.innerHTML)?(jr(Dt),!0):(ar&&Dt.nodeType===3&&(Qt=Dt.textContent,arrayForEach([It,Nt,Ot],lr=>{Qt=stringReplace(Qt,lr," ")}),Dt.textContent!==Qt&&(arrayPush(_e.removed,{element:Dt.cloneNode()}),Dt.textContent=Qt)),eo("afterSanitizeElements",Dt,null),!1)},Dr=function(Dt,Qt,or){if(Nr&&(Qt==="id"||Qt==="name")&&(or in et||or in qn))return!1;if(!(hr&&!mr[Qt]&®ExpTest(jt,Qt))){if(!(Er&®ExpTest(Mt,Qt))){if(!Yt[Qt]||mr[Qt]){if(!(Kt(Dt)&&(tr.tagNameCheck instanceof RegExp&®ExpTest(tr.tagNameCheck,Dt)||tr.tagNameCheck instanceof Function&&tr.tagNameCheck(Dt))&&(tr.attributeNameCheck instanceof RegExp&®ExpTest(tr.attributeNameCheck,Qt)||tr.attributeNameCheck instanceof Function&&tr.attributeNameCheck(Qt))||Qt==="is"&&tr.allowCustomizedBuiltInElements&&(tr.tagNameCheck instanceof RegExp&®ExpTest(tr.tagNameCheck,or)||tr.tagNameCheck instanceof Function&&tr.tagNameCheck(or))))return!1}else if(!ir[Qt]){if(!regExpTest(Pt,stringReplace(or,Lt,""))){if(!((Qt==="src"||Qt==="xlink:href"||Qt==="href")&&Dt!=="script"&&stringIndexOf(or,"data:")===0&&fr[Dt])){if(!(_r&&!regExpTest(Rt,stringReplace(or,Lt,"")))){if(or)return!1}}}}}}return!0},Kt=function(Dt){return Dt!=="annotation-xml"&&Dt.indexOf("-")>0},Zt=function(Dt){eo("beforeSanitizeAttributes",Dt,null);const{attributes:Qt}=Dt;if(!Qt)return;const or={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Yt};let lr=Qt.length;for(;lr--;){const er=Qt[lr],{name:yr,namespaceURI:Lr,value:nn}=er,cn=hn(yr);let rn=yr==="value"?nn:stringTrim(nn);if(or.attrName=cn,or.attrValue=rn,or.keepAttr=!0,or.forceKeepAttr=void 0,eo("uponSanitizeAttribute",Dt,or),rn=or.attrValue,or.forceKeepAttr||(zn(yr,Dt),!or.keepAttr))continue;if(!Ut&®ExpTest(/\/>/i,rn)){zn(yr,Dt);continue}ar&&arrayForEach([It,Nt,Ot],_n=>{rn=stringReplace(rn,_n," ")});const en=hn(Dt.nodeName);if(Dr(en,cn,rn)){if(Gr&&(cn==="id"||cn==="name")&&(zn(yr,Dt),rn=qr+rn),xt&&typeof ft=="object"&&typeof ft.getAttributeType=="function"&&!Lr)switch(ft.getAttributeType(en,cn)){case"TrustedHTML":{rn=xt.createHTML(rn);break}case"TrustedScriptURL":{rn=xt.createScriptURL(rn);break}}try{Lr?Dt.setAttributeNS(Lr,yr,rn):Dt.setAttribute(yr,rn),arrayPop(_e.removed)}catch{}}}eo("afterSanitizeAttributes",Dt,null)},zt=function Ht(Dt){let Qt=null;const or=Mn(Dt);for(eo("beforeSanitizeShadowDOM",Dt,null);Qt=or.nextNode();)eo("uponSanitizeShadowNode",Qt,null),!Co(Qt)&&(Qt.content instanceof nt&&Ht(Qt.content),Zt(Qt));eo("afterSanitizeShadowDOM",Dt,null)};return _e.sanitize=function(Ht){let Dt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Qt=null,or=null,lr=null,er=null;if(zr=!Ht,zr&&(Ht=""),typeof Ht!="string"&&!mo(Ht))if(typeof Ht.toString=="function"){if(Ht=Ht.toString(),typeof Ht!="string")throw typeErrorCreate("dirty is not a string, aborting")}else throw typeErrorCreate("toString is not a function");if(!_e.isSupported)return Ht;if(rr||un(Dt),_e.removed=[],typeof Ht=="string"&&(Yr=!1),Yr){if(Ht.nodeName){const nn=hn(Ht.nodeName);if(!Gt[nn]||cr[nn])throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place")}}else if(Ht instanceof it)Qt=ro(""),or=Qt.ownerDocument.importNode(Ht,!0),or.nodeType===1&&or.nodeName==="BODY"||or.nodeName==="HTML"?Qt=or:Qt.appendChild(or);else{if(!$r&&!ar&&!pr&&Ht.indexOf("<")===-1)return xt&&Cr?xt.createHTML(Ht):Ht;if(Qt=ro(Ht),!Qt)return $r?null:Cr?yt:""}Qt&&vr&&jr(Qt.firstChild);const yr=Mn(Yr?Ht:Qt);for(;lr=yr.nextNode();)Co(lr)||(lr.content instanceof nt&&zt(lr.content),Zt(lr));if(Yr)return Ht;if($r){if(Rr)for(er=Tt.call(Qt.ownerDocument);Qt.firstChild;)er.appendChild(Qt.firstChild);else er=Qt;return(Yt.shadowroot||Yt.shadowrootmode)&&(er=$t.call(tt,er,!0)),er}let Lr=pr?Qt.outerHTML:Qt.innerHTML;return pr&&Gt["!doctype"]&&Qt.ownerDocument&&Qt.ownerDocument.doctype&&Qt.ownerDocument.doctype.name&®ExpTest(DOCTYPE_NAME,Qt.ownerDocument.doctype.name)&&(Lr=" +`+Lr),ar&&arrayForEach([It,Nt,Ot],nn=>{Lr=stringReplace(Lr,nn," ")}),xt&&Cr?xt.createHTML(Lr):Lr},_e.setConfig=function(){let Ht=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};un(Ht),rr=!0},_e.clearConfig=function(){jn=null,rr=!1},_e.isValidAttribute=function(Ht,Dt,Qt){jn||un({});const or=hn(Ht),lr=hn(Dt);return Dr(or,lr,Qt)},_e.addHook=function(Ht,Dt){typeof Dt=="function"&&(Ct[Ht]=Ct[Ht]||[],arrayPush(Ct[Ht],Dt))},_e.removeHook=function(Ht){if(Ct[Ht])return arrayPop(Ct[Ht])},_e.removeHooks=function(Ht){Ct[Ht]&&(Ct[Ht]=[])},_e.removeAllHooks=function(){Ct={}},_e}var purify=createDOMPurify(),eventemitter3={exports:{}};(function(j){var _e=Object.prototype.hasOwnProperty,et="~";function tt(){}Object.create&&(tt.prototype=Object.create(null),new tt().__proto__||(et=!1));function rt(st,lt,ut){this.fn=st,this.context=lt,this.once=ut||!1}function nt(st,lt,ut,ct,dt){if(typeof ut!="function")throw new TypeError("The listener must be a function");var ft=new rt(ut,ct||st,dt),pt=et?et+lt:lt;return st._events[pt]?st._events[pt].fn?st._events[pt]=[st._events[pt],ft]:st._events[pt].push(ft):(st._events[pt]=ft,st._eventsCount++),st}function ot(st,lt){--st._eventsCount===0?st._events=new tt:delete st._events[lt]}function it(){this._events=new tt,this._eventsCount=0}it.prototype.eventNames=function(){var lt=[],ut,ct;if(this._eventsCount===0)return lt;for(ct in ut=this._events)_e.call(ut,ct)&<.push(et?ct.slice(1):ct);return Object.getOwnPropertySymbols?lt.concat(Object.getOwnPropertySymbols(ut)):lt},it.prototype.listeners=function(lt){var ut=et?et+lt:lt,ct=this._events[ut];if(!ct)return[];if(ct.fn)return[ct.fn];for(var dt=0,ft=ct.length,pt=new Array(ft);dt0?j:"Unknown")}function _defineProperty$E(j,_e,et){return _e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _extends$q(){return _extends$q=Object.assign||function(j){for(var _e=1;_e"u"?"undefined":_typeof$G(window))==="object"&&(typeof document>"u"?"undefined":_typeof$G(document))==="object"&&document.nodeType===9;function _typeof$F(j){"@babel/helpers - typeof";return _typeof$F=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$F(j)}function toPrimitive$a(j,_e){if(_typeof$F(j)!="object"||!j)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$F(tt)!="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}function toPropertyKey$9(j){var _e=toPrimitive$a(j,"string");return _typeof$F(_e)=="symbol"?_e:String(_e)}function _defineProperties$f(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,toPropertyKey$9(tt.key),tt)}}function _createClass$f(j,_e,et){return _e&&_defineProperties$f(j.prototype,_e),et&&_defineProperties$f(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}var plainObjectConstrurctor={}.constructor;function cloneStyle(j){if(j==null||typeof j!="object")return j;if(Array.isArray(j))return j.map(cloneStyle);if(j.constructor!==plainObjectConstrurctor)return j;var _e={};for(var et in j)_e[et]=cloneStyle(j[et]);return _e}function createRule(j,_e,et){j===void 0&&(j="unnamed");var tt=et.jss,rt=cloneStyle(_e),nt=tt.plugins.onCreateRule(j,rt,et);return nt||(j[0],null)}var join=function(_e,et){for(var tt="",rt=0;rt<_e.length&&_e[rt]!=="!important";rt++)tt&&(tt+=et),tt+=_e[rt];return tt};function toCssValue(j,_e){if(_e===void 0&&(_e=!1),!Array.isArray(j))return j;var et="";if(Array.isArray(j[0]))for(var tt=0;tt0?j:"Unknown")}function _defineProperty$D(j,_e,et){return _e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _extends$q(){return _extends$q=Object.assign||function(j){for(var _e=1;_e"u"?"undefined":_typeof$F(window))==="object"&&(typeof document>"u"?"undefined":_typeof$F(document))==="object"&&document.nodeType===9;function _typeof$E(j){"@babel/helpers - typeof";return _typeof$E=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$E(j)}function toPrimitive(j,_e){if(_typeof$E(j)!="object"||!j)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$E(tt)!="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}function toPropertyKey(j){var _e=toPrimitive(j,"string");return _typeof$E(_e)=="symbol"?_e:String(_e)}function _defineProperties$f(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,toPropertyKey(tt.key),tt)}}function _createClass$f(j,_e,et){return _e&&_defineProperties$f(j.prototype,_e),et&&_defineProperties$f(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}var plainObjectConstrurctor={}.constructor;function cloneStyle(j){if(j==null||typeof j!="object")return j;if(Array.isArray(j))return j.map(cloneStyle);if(j.constructor!==plainObjectConstrurctor)return j;var _e={};for(var et in j)_e[et]=cloneStyle(j[et]);return _e}function createRule(j,_e,et){j===void 0&&(j="unnamed");var tt=et.jss,rt=cloneStyle(_e),nt=tt.plugins.onCreateRule(j,rt,et);return nt||(j[0],null)}var join=function(_e,et){for(var tt="",rt=0;rt<_e.length&&_e[rt]!=="!important";rt++)tt&&(tt+=et),tt+=_e[rt];return tt};function toCssValue(j,_e){if(_e===void 0&&(_e=!1),!Array.isArray(j))return j;var et="";if(Array.isArray(j[0]))for(var tt=0;tt=this.index){rt.push(tt);return}for(var ot=0;otnt){rt.splice(ot,0,tt);return}}},_e.reset=function(){this.registry=[]},_e.remove=function(tt){var rt=this.registry.indexOf(tt);this.registry.splice(rt,1)},_e.toString=function(tt){for(var rt=tt===void 0?{}:tt,nt=rt.attached,ot=_objectWithoutPropertiesLoose$i(rt,["attached"]),it="",st=0;st_e.index&&tt.options.insertionPoint===_e.insertionPoint)return tt}return null}function findHighestSheet(j,_e){for(var et=j.length-1;et>=0;et--){var tt=j[et];if(tt.attached&&tt.options.insertionPoint===_e.insertionPoint)return tt}return null}function findCommentNode(j){for(var _e=getHead(),et=0;et<_e.childNodes.length;et++){var tt=_e.childNodes[et];if(tt.nodeType===8&&tt.nodeValue.trim()===j)return tt}return null}function findPrevNode(j){var _e=sheets.registry;if(_e.length>0){var et=findHigherSheet(_e,j);if(et&&et.renderer)return{parent:et.renderer.element.parentNode,node:et.renderer.element};if(et=findHighestSheet(_e,j),et&&et.renderer)return{parent:et.renderer.element.parentNode,node:et.renderer.element.nextSibling}}var tt=j.insertionPoint;if(tt&&typeof tt=="string"){var rt=findCommentNode(tt);if(rt)return{parent:rt.parentNode,node:rt.nextSibling}}return!1}function insertStyle(j,_e){var et=_e.insertionPoint,tt=findPrevNode(_e);if(tt!==!1&&tt.parent){tt.parent.insertBefore(j,tt.node);return}if(et&&typeof et.nodeType=="number"){var rt=et,nt=rt.parentNode;nt&&nt.insertBefore(j,rt.nextSibling);return}getHead().appendChild(j)}var getNonce$1=memoize$3(function(){var j=document.querySelector('meta[property="csp-nonce"]');return j?j.getAttribute("content"):null}),_insertRule=function(_e,et,tt){var rt=_e.cssRules.length;(tt===void 0||tt>rt)&&(tt=rt);try{if("insertRule"in _e){var nt=_e;nt.insertRule(et,tt)}else if("appendRule"in _e){var ot=_e;ot.appendRule(et)}}catch{return!1}return _e.cssRules[tt]},createStyle=function(){var _e=document.createElement("style");return _e.textContent=` `,_e},DomRenderer=function(){function j(et){this.getPropertyValue=getPropertyValue,this.setProperty=setProperty,this.removeProperty=removeProperty,this.setSelector=setSelector,this.element=void 0,this.sheet=void 0,this.hasInsertedRules=!1,et&&sheets.add(et),this.sheet=et;var tt=this.sheet?this.sheet.options:{},rt=tt.media,nt=tt.meta,ot=tt.element;this.element=ot||createStyle(),this.element.setAttribute("data-jss",""),rt&&this.element.setAttribute("media",rt),nt&&this.element.setAttribute("data-meta",nt);var it=getNonce$1();it&&this.element.setAttribute("nonce",it)}var _e=j.prototype;return _e.attach=function(){if(!(this.element.parentNode||!this.sheet)){insertStyle(this.element,this.sheet.options);var tt=!!(this.sheet&&this.sheet.deployed);this.hasInsertedRules&&tt&&(this.hasInsertedRules=!1,this.deploy())}},_e.detach=function(){var tt=this.element.parentNode;tt&&tt.removeChild(this.element)},_e.deploy=function(){var tt=this.sheet;if(tt){if(tt.options.link){this.insertRules(tt.rules);return}this.element.textContent=` @@ -190,9 +190,9 @@ License: MIT * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present * @website https://github.com/cssinjs/jss * @license MIT - */var hasCSSTOMSupport=typeof CSS<"u"&&CSS&&"number"in CSS,create$6=function(_e){return new Jss(_e)},index$4=create$6(),now$4=Date.now(),fnValuesNs="fnValues"+now$4,fnRuleNs="fnStyle"+ ++now$4;function functionPlugin(){return{onCreateRule:function(_e,et,tt){if(typeof et!="function")return null;var rt=createRule(_e,{},tt);return rt[fnRuleNs]=et,rt},onProcessStyle:function(_e,et){if(fnValuesNs in et||fnRuleNs in et)return _e;var tt={};for(var rt in _e){var nt=_e[rt];typeof nt=="function"&&(delete _e[rt],tt[rt]=nt)}return et[fnValuesNs]=tt,_e},onUpdate:function(_e,et,tt,rt){var nt=et,ot=nt[fnRuleNs];ot&&(nt.style=ot(_e)||{});var it=nt[fnValuesNs];if(it)for(var st in it)nt.prop(st,it[st](_e),rt)}}}function symbolObservablePonyfill(j){var _e,et=j.Symbol;return typeof et=="function"?et.observable?_e=et.observable:(_e=et("observable"),et.observable=_e):_e="@@observable",_e}var root$1;typeof self<"u"?root$1=self:typeof window<"u"?root$1=window:typeof global<"u"?root$1=global:typeof module<"u"?root$1=module:root$1=Function("return this")();var result=symbolObservablePonyfill(root$1),isObservable$1=function(_e){return _e&&_e[result]&&_e===_e[result]()};function observablePlugin(j){return{onCreateRule:function(et,tt,rt){if(!isObservable$1(tt))return null;var nt=tt,ot=createRule(et,{},rt);return nt.subscribe(function(it){for(var st in it)ot.prop(st,it[st],j)}),ot},onProcessRule:function(et){if(!(et&&et.type!=="style")){var tt=et,rt=tt.style,nt=function(lt){var ut=rt[lt];if(!isObservable$1(ut))return"continue";delete rt[lt],ut.subscribe({next:function(dt){tt.prop(lt,dt,j)}})};for(var ot in rt)var it=nt(ot)}}}}var semiWithNl=/;\n/,parse$m=function(j){for(var _e={},et=j.split(semiWithNl),tt=0;tt-1)return registerClass(j,_e.split(" "));var rt=j.options,nt=rt.parent;if(_e[0]==="$"){var ot=nt.getRule(_e.substr(1));return!ot||ot===j?!1:(nt.classes[j.key]+=" "+nt.classes[ot.key],!0)}return nt.classes[j.key]+=" "+_e,!0}function jssCompose(){function j(_e,et){return"composes"in _e&&(registerClass(et,_e.composes),delete _e.composes),_e}return{onProcessStyle:j}}var uppercasePattern=/[A-Z]/g,msPattern=/^ms-/,cache$2={};function toHyphenLower(j){return"-"+j.toLowerCase()}function hyphenateStyleName(j){if(cache$2.hasOwnProperty(j))return cache$2[j];var _e=j.replace(uppercasePattern,toHyphenLower);return cache$2[j]=msPattern.test(_e)?"-"+_e:_e}function convertCase(j){var _e={};for(var et in j){var tt=et.indexOf("--")===0?et:hyphenateStyleName(et);_e[tt]=j[et]}return j.fallbacks&&(Array.isArray(j.fallbacks)?_e.fallbacks=j.fallbacks.map(convertCase):_e.fallbacks=convertCase(j.fallbacks)),_e}function camelCase(){function j(et){if(Array.isArray(et)){for(var tt=0;ttj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _arrayWithoutHoles$c(j){if(Array.isArray(j))return _arrayLikeToArray$n(j)}function _iterableToArray$d(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _unsupportedIterableToArray$n(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$n(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$n(j,_e)}}function _nonIterableSpread$c(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _toConsumableArray$c(j){return _arrayWithoutHoles$c(j)||_iterableToArray$d(j)||_unsupportedIterableToArray$n(j)||_nonIterableSpread$c()}var js="",css$2="",vendor="",browser$1="",isTouch$1=isBrowser$2&&"ontouchstart"in document.documentElement;if(isBrowser$2){var jsCssMap={Moz:"-moz-",ms:"-ms-",O:"-o-",Webkit:"-webkit-"},_document$createEleme=document.createElement("p"),style=_document$createEleme.style,testProp="Transform";for(var key in jsCssMap)if(key+testProp in style){js=key,css$2=jsCssMap[key];break}js==="Webkit"&&"msHyphens"in style&&(js="ms",css$2=jsCssMap.ms,browser$1="edge"),js==="Webkit"&&"-apple-trailing-word"in style&&(vendor="apple")}var prefix$3={js,css:css$2,vendor,browser:browser$1,isTouch:isTouch$1};function supportedKeyframes(j){return j[1]==="-"||prefix$3.js==="ms"?j:"@"+prefix$3.css+"keyframes"+j.substr(10)}var appearence={noPrefill:["appearance"],supportedProperty:function(_e){return _e!=="appearance"?!1:prefix$3.js==="ms"?"-webkit-"+_e:prefix$3.css+_e}},colorAdjust={noPrefill:["color-adjust"],supportedProperty:function(_e){return _e!=="color-adjust"?!1:prefix$3.js==="Webkit"?prefix$3.css+"print-"+_e:_e}},regExp=/[-\s]+(.)?/g;function toUpper(j,_e){return _e?_e.toUpperCase():""}function camelize(j){return j.replace(regExp,toUpper)}function pascalize(j){return camelize("-"+j)}var mask={noPrefill:["mask"],supportedProperty:function(_e,et){if(!/^mask/.test(_e))return!1;if(prefix$3.js==="Webkit"){var tt="mask-image";if(camelize(tt)in et)return _e;if(prefix$3.js+pascalize(tt)in et)return prefix$3.css+_e}return _e}},textOrientation={noPrefill:["text-orientation"],supportedProperty:function(_e){return _e!=="text-orientation"?!1:prefix$3.vendor==="apple"&&!prefix$3.isTouch?prefix$3.css+_e:_e}},transform={noPrefill:["transform"],supportedProperty:function(_e,et,tt){return _e!=="transform"?!1:tt.transform?_e:prefix$3.css+_e}},transition={noPrefill:["transition"],supportedProperty:function(_e,et,tt){return _e!=="transition"?!1:tt.transition?_e:prefix$3.css+_e}},writingMode={noPrefill:["writing-mode"],supportedProperty:function(_e){return _e!=="writing-mode"?!1:prefix$3.js==="Webkit"||prefix$3.js==="ms"&&prefix$3.browser!=="edge"?prefix$3.css+_e:_e}},userSelect={noPrefill:["user-select"],supportedProperty:function(_e){return _e!=="user-select"?!1:prefix$3.js==="Moz"||prefix$3.js==="ms"||prefix$3.vendor==="apple"?prefix$3.css+_e:_e}},breakPropsOld={supportedProperty:function(_e,et){if(!/^break-/.test(_e))return!1;if(prefix$3.js==="Webkit"){var tt="WebkitColumn"+pascalize(_e);return tt in et?prefix$3.css+"column-"+_e:!1}if(prefix$3.js==="Moz"){var rt="page"+pascalize(_e);return rt in et?"page-"+_e:!1}return!1}},inlineLogicalOld={supportedProperty:function(_e,et){if(!/^(border|margin|padding)-inline/.test(_e))return!1;if(prefix$3.js==="Moz")return _e;var tt=_e.replace("-inline","");return prefix$3.js+pascalize(tt)in et?prefix$3.css+tt:!1}},unprefixed={supportedProperty:function(_e,et){return camelize(_e)in et?_e:!1}},prefixed={supportedProperty:function(_e,et){var tt=pascalize(_e);return _e[0]==="-"||_e[0]==="-"&&_e[1]==="-"?_e:prefix$3.js+tt in et?prefix$3.css+_e:prefix$3.js!=="Webkit"&&"Webkit"+tt in et?"-webkit-"+_e:!1}},scrollSnap={supportedProperty:function(_e){return _e.substring(0,11)!=="scroll-snap"?!1:prefix$3.js==="ms"?""+prefix$3.css+_e:_e}},overscrollBehavior={supportedProperty:function(_e){return _e!=="overscroll-behavior"?!1:prefix$3.js==="ms"?prefix$3.css+"scroll-chaining":_e}},propMap={"flex-grow":"flex-positive","flex-shrink":"flex-negative","flex-basis":"flex-preferred-size","justify-content":"flex-pack",order:"flex-order","align-items":"flex-align","align-content":"flex-line-pack"},flex2012={supportedProperty:function(_e,et){var tt=propMap[_e];return tt&&prefix$3.js+pascalize(tt)in et?prefix$3.css+tt:!1}},propMap$1={flex:"box-flex","flex-grow":"box-flex","flex-direction":["box-orient","box-direction"],order:"box-ordinal-group","align-items":"box-align","flex-flow":["box-orient","box-direction"],"justify-content":"box-pack"},propKeys=Object.keys(propMap$1),prefixCss=function(_e){return prefix$3.css+_e},flex2009={supportedProperty:function(_e,et,tt){var rt=tt.multiple;if(propKeys.indexOf(_e)>-1){var nt=propMap$1[_e];if(!Array.isArray(nt))return prefix$3.js+pascalize(nt)in et?prefix$3.css+nt:!1;if(!rt)return!1;for(var ot=0;ottt?1:-1:et.length-tt.length};return{onProcessStyle:function(et,tt){if(tt.type!=="style")return et;for(var rt={},nt=Object.keys(et).sort(j),ot=0;otMAX_RULES_PER_SHEET)&&(rt=_e.createStyleSheet().attach()),rt};function ot(){var it=arguments,st=JSON.stringify(it),lt=et.get(st);if(lt)return lt.className;var ut=[];for(var ct in it){var dt=it[ct];if(!Array.isArray(dt)){ut.push(dt);continue}for(var ft=0;ft_e=>!!pick$1(j)(_e),add$1=j=>_e=>{const et=_e||0;return Array.isArray(j)?j.reduce((tt,rt)=>tt|rt,et):et|j},toggle=j=>_e=>(_e||0)^j,pick$1=j=>_e=>(_e||0)&j,remove$1=j=>_e=>{const et=_e||0;return Array.isArray(j)?j.reduce((tt,rt)=>tt&~rt,et):et&~j},replace$3=j=>()=>j;var bitset=Object.freeze({__proto__:null,has:has$3,add:add$1,toggle,pick:pick$1,remove:remove$1,replace:replace$3});const EMPTY_STATUS=0,SELECTED_STATUS=1,ACTIVATED_STATUS=2;var GraphEdgeStatus;(function(j){j[j.Default=EMPTY_STATUS]="Default",j[j.Selected=SELECTED_STATUS]="Selected",j[j.Activated=ACTIVATED_STATUS]="Activated",j[j.ConnectedToSelected=4]="ConnectedToSelected",j[j.UnconnectedToSelected=8]="UnconnectedToSelected",j[j.Editing=16]="Editing"})(GraphEdgeStatus||(GraphEdgeStatus={}));var GraphNodeStatus;(function(j){j[j.Default=EMPTY_STATUS]="Default",j[j.Selected=SELECTED_STATUS]="Selected",j[j.Activated=ACTIVATED_STATUS]="Activated",j[j.Editing=4]="Editing",j[j.ConnectedToSelected=8]="ConnectedToSelected",j[j.UnconnectedToSelected=16]="UnconnectedToSelected"})(GraphNodeStatus||(GraphNodeStatus={}));var GraphPortStatus;(function(j){j[j.Default=EMPTY_STATUS]="Default",j[j.Selected=SELECTED_STATUS]="Selected",j[j.Activated=ACTIVATED_STATUS]="Activated",j[j.Connecting=4]="Connecting",j[j.ConnectingAsTarget=8]="ConnectingAsTarget"})(GraphPortStatus||(GraphPortStatus={}));const updateStatus=j=>_e=>{var et;const tt=j((et=_e.status)!==null&&et!==void 0?et:0);return tt===_e.status?_e:Object.assign(Object.assign({},_e),{status:tt})};function isNodeEditing(j){return has$3(GraphNodeStatus.Editing)(j.status)}function isSelected(j){return has$3(SELECTED_STATUS)(j.status)}function notSelected(j){return!isSelected(j)}const resetConnectStatus=j=>_e=>(_e||0)&GraphNodeStatus.Activated|j;class Debug{static log(_e){}static warn(_e){}static error(..._e){console.error(..._e)}static never(_e,et){throw new Error(et??`${_e} is unexpected`)}}const getNodeConfig=(j,_e)=>{const et=_e.getNodeConfig(j);if(!et){Debug.warn(`invalid node ${JSON.stringify(j)}`);return}return et};function getRectWidth(j,_e){var et;const tt=(et=j==null?void 0:j.getMinWidth(_e))!==null&&et!==void 0?et:0;return _e.width&&_e.width>=tt?_e.width:tt}function getRectHeight(j,_e){var et;const tt=(et=j==null?void 0:j.getMinHeight(_e))!==null&&et!==void 0?et:0;return _e.height&&_e.height>=tt?_e.height:tt}function getNodeSize(j,_e){const et=getNodeConfig(j,_e),tt=getRectWidth(et,j);return{height:getRectHeight(et,j),width:tt}}function getGroupRect(j,_e,et){var tt,rt,nt,ot,it,st,lt,ut;const ct=new Set(j.nodeIds),dt=Array.from(_e.values()).filter(Et=>ct.has(Et.id)),ft=Math.min(...dt.map(Et=>Et.x)),pt=Math.max(...dt.map(Et=>Et.x+getNodeSize(Et,et).width)),gt=Math.min(...dt.map(Et=>Et.y)),vt=Math.max(...dt.map(Et=>Et.y+getNodeSize(Et,et).height)),bt=ft-((rt=(tt=j.padding)===null||tt===void 0?void 0:tt.left)!==null&&rt!==void 0?rt:0),_t=gt-((ot=(nt=j.padding)===null||nt===void 0?void 0:nt.top)!==null&&ot!==void 0?ot:0),xt=vt-_t+((st=(it=j.padding)===null||it===void 0?void 0:it.bottom)!==null&&st!==void 0?st:0),yt=pt-bt+((ut=(lt=j.padding)===null||lt===void 0?void 0:lt.left)!==null&&ut!==void 0?ut:0);return{x:bt,y:_t,width:yt,height:xt}}var MouseEventButton;(function(j){j[j.Primary=0]="Primary",j[j.Auxiliary=1]="Auxiliary",j[j.Secondary=2]="Secondary",j[j.Fourth=4]="Fourth",j[j.Fifth=5]="Fifth"})(MouseEventButton||(MouseEventButton={}));var MouseEventButtons;(function(j){j[j.None=0]="None",j[j.Left=1]="Left",j[j.Right=2]="Right",j[j.Middle=4]="Middle"})(MouseEventButtons||(MouseEventButtons={}));const DEFAULT_AUTO_ALIGN_THRESHOLD=50,COPIED_NODE_SPACING=50,NODE_MIN_VISIBLE_LENGTH=5,NODE_MAX_VISIBLE_LENGTH=500,defaultColors={controlPointColor:"#333333",primaryColor:"#0078D4",defaultColor:"#CCCCCC",borderColor:"#B3B0AD",defaultBorderColor:"#FFFFFF",unConnectableBgColor:"#E1DFDD",defaultBackgroundColor:"#FFFFFF",portStroke:"#ccc",portFill:"#fff",connectedPortColor:"gray",nodeActivateFill:"#ffffff",nodeActivateStroke:"#0078D4",nodeFill:"#ffffff",nodeStroke:"#cccccc",contextMenuBackground:"#FFFFFF",contextMenuBorder:"#E1DFDD",contextMenuHoverBackground:"rgba(0, 120, 212, 0.05)",fontColor:"#000000",canvasBackground:"#EDEDED",minimapBackground:"#EDEDED",edgeColor:"#ccc",edgeColorSelected:"#015cda",minimapShadow:"#000000",outlineStyle:"none",focusOutlineColor:"#000000",dummyNodeStroke:"#015cda",inputFocusBorderAlt:"#0078d4",buttonBorder:"#797775",scrollbarColor:"#c8c8c8"},RectComponent=j=>{const{style:_e,node:et,width:tt,height:rt,textY:nt}=j,ot=et.data&&et.data.comment?et.data.comment:"",it=isNodeEditing(et);return jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("rect",{width:tt,height:rt,x:et.x,y:et.y,style:_e,rx:_e.borderRadius}),jsxRuntimeExports.jsx("text",Object.assign({x:et.x,y:nt,fontSize:12},{children:et.name})),et.data&&et.data.comment&&!it&&jsxRuntimeExports.jsx("text",Object.assign({x:et.x,y:nt+20,fontSize:12,className:`comment-${et.id}`},{children:et.data.comment})),it&&jsxRuntimeExports.jsx("foreignObject",Object.assign({x:et.x,y:nt,height:rt/2.5,width:tt-5},{children:jsxRuntimeExports.jsx("input",{value:ot,placeholder:"Input your comment here"})}))]},et.id)},rect={getMinHeight(){return 150},getMinWidth(){return 150},render(j){const _e=j.model,et=getRectWidth(rect,_e),tt=getRectHeight(rect,_e),rt=has$3(GraphNodeStatus.Selected|GraphNodeStatus.Activated)(_e.status)?{fill:defaultColors.nodeActivateFill,stroke:defaultColors.nodeActivateStroke}:{fill:defaultColors.nodeFill,fillOpacity:.1,stroke:defaultColors.nodeStroke,borderRadius:"5"},nt=_e.y+tt/3;return jsxRuntimeExports.jsx(RectComponent,{style:rt,node:_e,width:et,height:tt,textY:nt})}},getCurvePathD=(j,_e,et,tt)=>`M${j},${et}C${j},${et-getControlPointDistance(et,tt)},${_e},${tt+5+getControlPointDistance(et,tt)},${_e},${tt+5}`,getControlPointDistance=(j,_e)=>Math.min(5*15,Math.max(5*3,Math.abs((j-(_e+5))/2))),line$1={render(j){const _e=j.model,et={cursor:"crosshair",stroke:has$3(GraphEdgeStatus.Selected)(_e.status)?defaultColors.edgeColorSelected:defaultColors.edgeColor,strokeWidth:"2"};return jsxRuntimeExports.jsx("path",{d:getCurvePathD(j.x2,j.x1,j.y2,j.y1),fill:"none",style:et,id:`edge${_e.id}`},_e.id)}};class DefaultPort{getStyle(_e,et,tt,rt,nt){const ot=defaultColors.portStroke;let it=defaultColors.portFill;return(rt||nt)&&(it=defaultColors.connectedPortColor),has$3(GraphPortStatus.Activated)(_e.status)&&(it=defaultColors.primaryColor),{stroke:ot,fill:it}}getIsConnectable(){return!0}render(_e){const{model:et,data:tt,parentNode:rt}=_e,nt=tt.isPortConnectedAsSource(rt.id,et.id),ot=tt.isPortConnectedAsTarget(rt.id,et.id),it=this.getStyle(et,rt,tt,nt,ot),{x:st,y:lt}=_e,ut=`${st-5} ${lt}, ${st+7} ${lt}, ${st+1} ${lt+8}`;return ot?jsxRuntimeExports.jsx("polygon",{points:ut,style:it}):jsxRuntimeExports.jsx("circle",{r:5,cx:st,cy:lt,style:it},`${_e.parentNode.id}-${_e.model.id}`)}}const defaultPort=new DefaultPort;class DefaultClipboard{constructor(_e){this.storage=_e}write(_e){this.storage.setItem("graph-clipboard",JSON.stringify({nodes:_e.nodes.map(et=>Object.assign(Object.assign({},et),{data:{}})),edges:_e.edges.map(et=>Object.assign(Object.assign({},et),{data:{}}))}))}read(){const _e=this.storage.getItem("graph-clipboard");if(!_e)return null;try{const et=JSON.parse(_e),tt=new Map;return{nodes:et.nodes.map(rt=>{const nt=v4();return tt.set(rt.id,nt),Object.assign(Object.assign({},rt),{x:rt.x+COPIED_NODE_SPACING,y:rt.y+COPIED_NODE_SPACING,id:nt})}),edges:et.edges.map(rt=>Object.assign(Object.assign({},rt),{id:v4(),source:tt.get(rt.source)||"",target:tt.get(rt.target)||""}))}}catch{return null}}}class DefaultStorage{get length(){return this.items.size}constructor(){this.key=()=>"DefaultLocalStorage",this.items=new Map}clear(){this.items=new Map}setItem(_e,et){this.items.set(_e,et)}getItem(_e){return this.items.has(_e)?this.items.get(_e):null}removeItem(_e){this.items.delete(_e)}}class GraphConfigBuilder{constructor(){const _e=new DefaultStorage,et=new DefaultClipboard(_e);this.draft={getNodeConfig:()=>rect,getEdgeConfig:()=>line$1,getPortConfig:()=>defaultPort,getGroupConfig:()=>{},getClipboard:()=>et}}static default(){return new GraphConfigBuilder}static from(_e){return new GraphConfigBuilder().registerNode(_e.getNodeConfig.bind(_e)).registerEdge(_e.getEdgeConfig.bind(_e)).registerPort(_e.getPortConfig.bind(_e)).registerGroup(_e.getGroupConfig.bind(_e)).registerClipboard(_e.getClipboard.bind(_e))}registerNode(_e){return this.draft.getNodeConfig=_e,this}registerEdge(_e){return this.draft.getEdgeConfig=_e,this}registerPort(_e){return this.draft.getPortConfig=_e,this}registerGroup(_e){return this.draft.getGroupConfig=_e,this}registerClipboard(_e){return this.draft.getClipboard=_e,this}build(){return this.draft}}const GraphConfigContext=reactExports.createContext(GraphConfigBuilder.default().build());var MenuType;(function(j){j.Node="node",j.Edge="edge",j.Port="port",j.Canvas="canvas",j.Multi="multi"})(MenuType||(MenuType={}));class ContextMenuConfig{constructor(){this.contextMenu=new Map}registerContextMenu(_e){this.contextMenuProps=Object.assign({},_e)}registerMenu(_e,et){this.contextMenu.set(et,_e)}getMenu(_e){if(this.contextMenuProps&&this.contextMenu.has(_e)){const{className:et,styles:tt}=this.contextMenuProps;return reactExports.createElement("div",{className:et,style:tt},this.contextMenu.get(_e))}return null}}const ContextMenuConfigContext=reactExports.createContext(new ContextMenuConfig),emptySelectBoxPosition=()=>({startX:0,startY:0,height:0,width:0}),SelectBox=j=>{const{selectBoxPosition:_e,style:et}=j,tt=`m${_e.startX} ${_e.startY} v ${_e.height} h ${_e.width} v${-_e.height} h ${-_e.width}`,rt=et??{fill:"none",stroke:defaultColors.defaultColor};return jsxRuntimeExports.jsx("path",{style:rt,d:tt})};var GraphFeatures;(function(j){j.NodeDraggable="nodeDraggable",j.NodeResizable="nodeResizable",j.ClickNodeToSelect="clickNodeToSelect",j.PanCanvas="panCanvas",j.MultipleSelect="multipleSelect",j.LassoSelect="lassoSelect",j.Delete="delete",j.AddNewNodes="addNewNodes",j.AddNewEdges="addNewEdges",j.AddNewPorts="addNewPorts",j.AutoFit="autoFit",j.CanvasHorizontalScrollable="canvasHorizontalScrollable",j.CanvasVerticalScrollable="canvasVerticalScrollable",j.NodeHoverView="nodeHoverView",j.PortHoverView="portHoverView",j.AddEdgesByKeyboard="addEdgesByKeyboard",j.A11yFeatures="a11YFeatures",j.EditNode="editNode",j.AutoAlign="autoAlign",j.UndoStack="undoStack",j.CtrlKeyZoom="ctrlKeyZoom",j.LimitBoundary="limitBoundary",j.EditEdge="editEdge",j.InvisibleScrollbar="InvisibleScrollbar"})(GraphFeatures||(GraphFeatures={}));GraphFeatures.NodeDraggable,GraphFeatures.NodeResizable,GraphFeatures.ClickNodeToSelect,GraphFeatures.PanCanvas,GraphFeatures.MultipleSelect,GraphFeatures.LassoSelect,GraphFeatures.Delete,GraphFeatures.AddNewNodes,GraphFeatures.AddNewEdges,GraphFeatures.AddNewPorts,GraphFeatures.CanvasHorizontalScrollable,GraphFeatures.CanvasVerticalScrollable,GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.AddEdgesByKeyboard,GraphFeatures.A11yFeatures,GraphFeatures.AutoFit,GraphFeatures.EditNode,GraphFeatures.AutoAlign,GraphFeatures.UndoStack,GraphFeatures.CtrlKeyZoom,GraphFeatures.LimitBoundary,GraphFeatures.EditEdge;const defaultFeatures=new Set([GraphFeatures.NodeDraggable,GraphFeatures.NodeResizable,GraphFeatures.ClickNodeToSelect,GraphFeatures.PanCanvas,GraphFeatures.MultipleSelect,GraphFeatures.Delete,GraphFeatures.AddNewNodes,GraphFeatures.AddNewEdges,GraphFeatures.AddNewPorts,GraphFeatures.CanvasHorizontalScrollable,GraphFeatures.CanvasVerticalScrollable,GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.AddEdgesByKeyboard,GraphFeatures.A11yFeatures,GraphFeatures.EditNode,GraphFeatures.AutoAlign,GraphFeatures.UndoStack,GraphFeatures.CtrlKeyZoom,GraphFeatures.LimitBoundary]),dataReadonlyMode=new Set([GraphFeatures.NodeDraggable,GraphFeatures.NodeResizable,GraphFeatures.ClickNodeToSelect,GraphFeatures.PanCanvas,GraphFeatures.MultipleSelect,GraphFeatures.CanvasHorizontalScrollable,GraphFeatures.CanvasVerticalScrollable,GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.A11yFeatures,GraphFeatures.CtrlKeyZoom,GraphFeatures.LimitBoundary]);GraphFeatures.ClickNodeToSelect,GraphFeatures.CanvasHorizontalScrollable,GraphFeatures.CanvasVerticalScrollable,GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.A11yFeatures,GraphFeatures.LassoSelect,GraphFeatures.LimitBoundary;const previewMode=new Set([GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.AutoFit]),emptyDummyNodes=()=>({dx:0,dy:0,dWidth:0,dHeight:0,alignedDX:void 0,alignedDY:void 0,nodes:[],isVisible:!1}),is$1=Object.is;let MapIterator$1=class{constructor(_e,et){this.upstream=_e,this.f=et}[Symbol.iterator](){return this}next(){const _e=this.upstream.next();return _e.done?_e:{done:!1,value:this.f(_e.value)}}};var NodeType$1;(function(j){j[j.Bitmap=0]="Bitmap",j[j.Collision=1]="Collision"})(NodeType$1||(NodeType$1={}));const HASH_CODE_LENGTH=30,BIT_PARTITION_SIZE=5,FULL_MASK=1073741823;function bitPosFrom(j){return 1<>>_e&31}function bitCount(j){return j|=0,j-=j>>>1&1431655765,j=(j&858993459)+(j>>>2&858993459),j=j+(j>>>4)&252645135,j+=j>>>8,j+=j>>>16,j&127}let BitmapIndexedNode$1=class Wl{get valueCount(){return this.values.length}get nodeCount(){return this.children.length}constructor(_e,et,tt,rt,nt,ot,it,st){this.type=NodeType$1.Bitmap,this.owner=_e,this.dataMap=et,this.nodeMap=tt,this.keys=rt,this.values=nt,this.children=ot,this.hashes=it,this.size=st}static empty(_e){return new Wl(_e,0,0,[],[],[],[],0)}getKey(_e){return this.keys[_e]}getValue(_e){return this.values[_e]}getHash(_e){return this.hashes[_e]}getNode(_e){return this.children[_e]}contains(_e,et,tt){const rt=maskFrom(et,tt),nt=bitPosFrom(rt),{dataMap:ot,nodeMap:it}=this;if(ot&nt){const st=indexFrom(ot,rt,nt),lt=this.getKey(st);return is$1(lt,_e)}else if(it&nt){const st=indexFrom(it,rt,nt);return this.getNode(st).contains(_e,et,tt+BIT_PARTITION_SIZE)}return!1}get(_e,et,tt){const rt=maskFrom(et,tt),nt=bitPosFrom(rt),{dataMap:ot,nodeMap:it}=this;if(ot&nt){const st=indexFrom(ot,rt,nt),lt=this.getKey(st);return is$1(lt,_e)?this.getValue(st):void 0}else if(it&nt){const st=indexFrom(it,rt,nt);return this.getNode(st).get(_e,et,tt+BIT_PARTITION_SIZE)}}insert(_e,et,tt,rt,nt){const ot=maskFrom(rt,nt),it=bitPosFrom(ot),{dataMap:st,nodeMap:lt}=this;if(st&it){const ut=indexFrom(st,ot,it),ct=this.getKey(ut),dt=this.getValue(ut),ft=this.getHash(ut);if(ft===rt&&is$1(ct,et))return is$1(dt,tt)?this:this.setValue(_e,tt,ut);{const pt=mergeTwoKeyValPairs(_e,ct,dt,ft,et,tt,rt,nt+BIT_PARTITION_SIZE);return this.migrateInlineToNode(_e,it,pt)}}else if(lt&it){const ut=indexFrom(lt,ot,it),dt=this.getNode(ut).insert(_e,et,tt,rt,nt+BIT_PARTITION_SIZE);return this.setNode(_e,1,dt,it)}return this.insertValue(_e,it,et,rt,tt)}update(_e,et,tt,rt,nt){const ot=maskFrom(rt,nt),it=bitPosFrom(ot),{dataMap:st,nodeMap:lt}=this;if(st&it){const ut=indexFrom(st,ot,it),ct=this.getKey(ut);if(this.getHash(ut)===rt&&is$1(ct,et)){const ft=this.getValue(ut),pt=tt(ft);return is$1(ft,pt)?this:this.setValue(_e,pt,ut)}}else if(lt&it){const ut=indexFrom(lt,ot,it),ct=this.getNode(ut),dt=ct.update(_e,et,tt,rt,nt+BIT_PARTITION_SIZE);return dt===ct?this:this.setNode(_e,0,dt,it)}return this}remove(_e,et,tt,rt){const nt=maskFrom(tt,rt),ot=bitPosFrom(nt);if(this.dataMap&ot){const it=indexFrom(this.dataMap,nt,ot),st=this.getKey(it);return is$1(st,et)?this.removeValue(_e,ot):void 0}else if(this.nodeMap&ot){const it=indexFrom(this.nodeMap,nt,ot),st=this.getNode(it),lt=st.remove(_e,et,tt,rt+BIT_PARTITION_SIZE);if(lt===void 0)return;const[ut,ct]=lt;return ut.size===1?this.size===st.size?[new Wl(_e,ot,0,[ut.getKey(0)],[ut.getValue(0)],[],[ut.getHash(0)],1),ct]:[this.migrateNodeToInline(_e,ot,ut),ct]:[this.setNode(_e,-1,ut,ot),ct]}}toOwned(_e){return this.owner===_e?this:new Wl(_e,this.dataMap,this.nodeMap,this.keys.slice(),this.values.slice(),this.children.slice(),this.hashes.slice(),this.size)}iter(){return new BitmapIndexedNodeIterator(this)}map(_e,et){const tt=this.valueCount,rt=[],nt=[],ot=[];let it=!0;for(let st=0;st=HASH_CODE_LENGTH)return new HashCollisionNode$1(j,tt,[_e,rt],[et,nt]);{const st=maskFrom(tt,it),lt=maskFrom(ot,it);if(st!==lt){const ut=bitPosFrom(st)|bitPosFrom(lt);return stis$1(tt,_e));return et>=0?this.values[et]:void 0}insert(_e,et,tt){const rt=this.keys.findIndex(nt=>is$1(nt,et));if(rt>=0){const nt=this.values[rt];if(is$1(nt,tt))return this;const ot=this.toOwned(_e);return ot.values[rt]=tt,ot}else{const nt=this.toOwned(_e);return nt.keys.push(et),nt.values.push(tt),nt}}update(_e,et,tt){const rt=this.keys.findIndex(nt=>is$1(nt,et));if(rt>=0){const nt=this.values[rt],ot=tt(nt);if(is$1(nt,ot))return this;const it=this.toOwned(_e);return it.values[rt]=ot,it}return this}remove(_e,et){const tt=this.keys.findIndex(nt=>is$1(nt,et));if(tt===-1)return;const rt=this.getValue(tt);return[new Mu(_e,this.hash,this.keys.filter((nt,ot)=>ot!==tt),this.values.filter((nt,ot)=>ot!==tt)),rt]}getKey(_e){return this.keys[_e]}getValue(_e){return this.values[_e]}getHash(){return this.hash}iter(){return new HashCollisionNodeIterator(this)}map(_e,et){const tt=this.size,rt=[];let nt=!1;for(let ot=0;ot=this.node.size)return{done:!0,value:void 0};const _e=this.node.getKey(this.index),et=this.node.getValue(this.index);return this.index+=1,{done:!1,value:[_e,et]}}clone(){const _e=new HashCollisionNodeIterator(this.node);return _e.index=this.index,_e}}function hashing(j){if(j===null)return 1108378658;switch(typeof j){case"boolean":return j?839943201:839943200;case"number":return hashNumber$1(j);case"string":return hashString$1(j);case"object":case"function":case"symbol":throw new Error("Using object, function and symbol as hash map key is not supported");case"undefined":return 839943203;default:return hashString$1(String(j))}}function hashString$1(j){let _e=0;for(let et=0;et4294967295;)j/=4294967295,_e^=j;return smi$1(_e)}function smi$1(j){return j&1073741823}class Uid{constructor(){this.id=0}take(){return this.id+=1,this.id}peek(){return this.id+1}}const uid$1$1=new Uid;class HashMap{get size(){return this.root.size}constructor(_e){this.id=uid$1$1.take(),this.root=_e}static empty(){return HashMapBuilder.empty().finish()}static from(_e){return HashMapBuilder.from(_e).finish()}get(_e){const et=hashing(_e);return this.root.get(_e,et,0)}has(_e){const et=hashing(_e);return this.root.contains(_e,et,0)}set(_e,et){return this.withRoot(this.root.insert(uid$1$1.peek(),_e,et,hashing(_e),0))}update(_e,et){return this.withRoot(this.root.update(uid$1$1.peek(),_e,et,hashing(_e),0))}delete(_e){const et=hashing(_e),tt=uid$1$1.peek(),rt=this.root.remove(tt,_e,et,0);return rt===void 0?this:new HashMap(rt[0])}clone(){return new HashMap(this.root)}[Symbol.iterator](){return this.entries()}entries(){return this.root.iter()}values(){return new MapIterator$1(this.entries(),([,_e])=>_e)}mutate(){return new HashMapBuilder(this.root)}map(_e){return new HashMap(this.root.map(uid$1$1.peek(),_e))}filter(_e){const et=this.mutate();return this.forEach((tt,rt)=>{_e(tt,rt)||et.delete(rt)}),et.finish()}forEach(_e){this.root.forEach(_e)}find(_e){return this.root.find(_e)}withRoot(_e){return _e===this.root?this:new HashMap(_e)}}class HashMapBuilder{constructor(_e){this.id=uid$1$1.take(),this.root=_e}static empty(){const _e=uid$1$1.peek(),et=BitmapIndexedNode$1.empty(_e);return new HashMapBuilder(et)}static from(_e){if(Array.isArray(_e))return HashMapBuilder.fromArray(_e);const et=_e[Symbol.iterator](),tt=HashMapBuilder.empty();let rt=et.next();for(;!rt.done;){const[nt,ot]=rt.value;tt.set(nt,ot),rt=et.next()}return tt}static fromArray(_e){const et=HashMapBuilder.empty();for(let tt=0;tt<_e.length;tt+=1){const[rt,nt]=_e[tt];et.set(rt,nt)}return et}get(_e){const et=hashing(_e);return this.root.get(_e,et,0)}has(_e){const et=hashing(_e);return this.root.contains(_e,et,0)}set(_e,et){return this.root=this.root.insert(this.id,_e,et,hashing(_e),0),this}update(_e,et){const tt=hashing(_e);return this.root=this.root.update(this.id,_e,et,tt,0),this}delete(_e){const et=hashing(_e),tt=this.root.remove(this.id,_e,et,0);return tt!==void 0&&(this.root=tt[0]),this}finish(){return new HashMap(this.root)}}var NodeType;(function(j){j[j.Internal=0]="Internal",j[j.Leaf=1]="Leaf"})(NodeType||(NodeType={}));const MAX_SIZE=31,MIN_SIZE$1=15,HALF_NODE_SPLIT=7;function binaryFind(j,_e){let et=0,tt=j.length;for(;;){if(et+1===tt)return j[et]>=_e?et:tt;const rt=et+tt>>>1;if(j[rt]===_e)return rt;_e=MIN_SIZE$1)return lt;if(tt===rt)return lt.balanceTail(st),lt;const ut=this.getValue(tt);return lt.balanceChild(_e,st,it,ut,tt)}}removeMostRight(_e){const et=this.selfSize,[tt,rt,nt]=this.getChild(et).removeMostRight(_e),ot=this.toOwned(_e);return ot.size-=1,ot.children[et]=nt,nt.selfSizeMIN_SIZE$1)this.rotateRight(et,it,nt,ot);else if(st.selfSize>MIN_SIZE$1)this.rotateLeft(et,st,nt,ot);else{const lt=it.toOwned(_e),ut=st.toOwned(_e),ct=et.getKey(HALF_NODE_SPLIT),dt=et.getValue(HALF_NODE_SPLIT);lt.keys.push(this.getKey(nt-1)),lt.values.push(this.getValue(nt-1)),lt.keys.push(...et.keys.slice(0,HALF_NODE_SPLIT)),lt.values.push(...et.values.slice(0,HALF_NODE_SPLIT)),ut.keys.unshift(tt),ut.values.unshift(rt),ut.keys.unshift(...et.keys.slice(HALF_NODE_SPLIT+1,MIN_SIZE$1)),ut.values.unshift(...et.values.slice(HALF_NODE_SPLIT+1,MIN_SIZE$1)),this.keys.splice(nt-1,2,ct),this.values.splice(nt-1,2,dt),this.children.splice(nt-1,3,lt,ut),ot&&(lt.children.push(...et.children.slice(0,HALF_NODE_SPLIT+1)),ut.children.unshift(...et.children.slice(HALF_NODE_SPLIT+1,MIN_SIZE$1+1)),lt.updateSize(),ut.updateSize())}return this}rotateLeft(_e,et,tt,rt){const nt=et.toOwned(this.owner),ot=nt.keys.shift(),it=nt.values.shift(),st=this.getKey(tt),lt=this.getValue(tt);if(_e.keys.push(st),_e.values.push(lt),this.keys[tt]=ot,this.values[tt]=it,this.children[tt+1]=nt,rt){const ut=nt.children.shift();_e.children.push(ut);const ct=ut.size+1;_e.size+=ct,nt.size-=ct}}rotateRight(_e,et,tt,rt){const nt=et.toOwned(this.owner),ot=nt.keys.pop(),it=nt.values.pop(),st=this.getKey(tt-1),lt=this.getValue(tt-1);if(_e.keys.unshift(st),_e.values.unshift(lt),this.keys[tt-1]=ot,this.values[tt-1]=it,this.children[tt-1]=nt,rt){const ut=nt.children.pop();_e.children.unshift(ut);const ct=ut.size+1;_e.size+=ct,nt.size-=ct}}balanceTail(_e){const et=this.selfSize,tt=this.getChild(et-1),rt=_e.type===NodeType.Internal;tt.selfSize===MIN_SIZE$1?(_e.keys.unshift(this.getKey(et-1)),_e.values.unshift(this.getValue(et-1)),_e.keys.unshift(...tt.keys),_e.values.unshift(...tt.values),this.keys.splice(et-1,1),this.values.splice(et-1,1),this.children.splice(et-1,1),rt&&(_e.children.unshift(...tt.children),_e.size+=tt.size+1)):this.rotateRight(_e,tt,et,rt)}balanceHead(_e){const et=this.getChild(1),tt=_e.type===NodeType.Internal;et.selfSize===MIN_SIZE$1?(_e.keys.push(this.getKey(0)),_e.values.push(this.getValue(0)),_e.keys.push(...et.keys),_e.values.push(...et.values),this.keys.splice(0,1),this.values.splice(0,1),this.children.splice(1,1),tt&&(_e.children.push(...et.children),_e.size+=et.size+1)):this.rotateLeft(_e,et,0,tt)}updateWithSplit(_e,et,tt,rt,nt,ot){const it=this.toOwned(_e);it.keys.splice(ot,0,rt),it.values.splice(ot,0,nt),it.children.splice(ot,1,et,tt);const st=new InternalNode(_e,it.keys.splice(16,16),it.values.splice(16,16),it.children.splice(16,17),0),lt=it.keys.pop(),ut=it.values.pop();return it.updateSize(),st.updateSize(),[it,st,lt,ut]}updateSize(){let _e=this.selfSize;const et=this.children.length;for(let tt=0;tt{const[ot,it]=nt,st=et(it);return is$1(st,it)?nt:[ot,st]});return this.withRoot(this.itemId,this.hashRoot,rt)}[Symbol.iterator](){return this.entries()}clone(){return new Kl(this.itemId,this.hashRoot,this.sortedRoot)}entries(){return new OrderedMapIterator(new BTreeIterator(this.sortedRoot))}values(){return new MapIterator$1(this.entries(),([,_e])=>_e)}mutate(){return new OrderedMapBuilder(this.itemId,this.hashRoot,this.sortedRoot)}map(_e){const et=uid$7.peek(),tt=nt=>{const[ot,it]=nt,st=_e(it,ot);return is$1(it,st)?nt:[ot,st]},rt=this.sortedRoot.map(et,tt);return new Kl(this.itemId,this.hashRoot,rt)}forEach(_e){this.sortedRoot.forEach(([et,tt])=>{_e(tt,et)})}find(_e){const et=this.sortedRoot.find(([,tt])=>_e(tt));return et?et[1]:void 0}first(){const _e=this.entries().next();if(!_e.done)return _e.value[1]}filter(_e){const et=this.mutate();return this.forEach((tt,rt)=>{_e(tt,rt)||et.delete(rt)}),et.finish()}withRoot(_e,et,tt){return et===this.hashRoot&&tt===this.sortedRoot?this:new Kl(_e,et,tt)}};class OrderedMapIterator{constructor(_e){this.delegate=_e}[Symbol.iterator](){return this.clone()}next(){const _e=this.delegate.next();return _e.done?{done:!0,value:void 0}:{done:!1,value:_e.value[1]}}clone(){return new OrderedMapIterator(this.delegate.clone())}}class OrderedMapBuilder{constructor(_e,et,tt){this.id=uid$7.take(),this.itemId=_e,this.hashRoot=et,this.sortedRoot=tt}static empty(){const _e=uid$7.peek(),et=BitmapIndexedNode$1.empty(_e),tt=emptyRoot(_e);return new OrderedMapBuilder(0,et,tt)}static from(_e){if(Array.isArray(_e))return OrderedMapBuilder.fromArray(_e);const et=OrderedMapBuilder.empty(),tt=_e[Symbol.iterator]();let rt=tt.next();for(;!rt.done;){const[nt,ot]=rt.value;et.set(nt,ot),rt=tt.next()}return et}static fromArray(_e){const et=OrderedMapBuilder.empty();for(let tt=0;tt<_e.length;tt+=1){const[rt,nt]=_e[tt];et.set(rt,nt)}return et}delete(_e){const et=hashing(_e),tt=this.hashRoot.remove(this.id,_e,et,0);if(tt===void 0)return this;const rt=tt[1];return this.hashRoot=tt[0],this.sortedRoot=rootRemove(this.id,this.sortedRoot,rt),this}get(_e){var et;const tt=hashing(_e),rt=this.hashRoot.get(_e,tt,0);if(rt!==void 0)return(et=this.sortedRoot.get(rt))===null||et===void 0?void 0:et[1]}has(_e){const et=hashing(_e);return this.hashRoot.contains(_e,et,0)}set(_e,et){let tt=this.hashRoot.get(_e,hashing(_e),0);return tt===void 0&&(tt=this.itemId+1,this.itemId+=1,this.hashRoot=this.hashRoot.insert(this.id,_e,tt,hashing(_e),0)),this.sortedRoot=rootInsert(this.id,this.sortedRoot,tt,[_e,et]),this}update(_e,et){const tt=this.hashRoot.get(_e,hashing(_e),0);return tt?(this.sortedRoot=this.sortedRoot.update(this.id,tt,rt=>{const[nt,ot]=rt,it=et(ot);return is$1(it,ot)?rt:[nt,it]}),this):this}finish(){return new OrderedMap$1(this.itemId,this.hashRoot,this.sortedRoot)}}const getPortPosition=(j,_e,et)=>{const tt=getRectWidth(et,j),rt=getRectHeight(et,j),nt=_e.position?_e.position[0]*tt:tt*.5,ot=j.x+nt,it=_e.position?_e.position[1]*rt:rt,st=j.y+it;return{x:ot,y:st}},getPortPositionByPortId=(j,_e,et)=>{const tt=getNodeConfig(j,et);if(!tt)return;const nt=(j.ports||[]).find(ot=>ot.id===_e);if(!nt){Debug.warn(`invalid port id ${JSON.stringify(nt)}`);return}return getPortPosition(j,nt,tt)},identical=j=>j,isMobile=()=>[/Android/i,/webOS/i,/iPhone/i,/iPad/i,/iPod/i,/BlackBerry/i,/Windows Phone/i].some(_e=>navigator.userAgent.match(_e));var BrowserType;(function(j){j.Unknown="Unknown",j.Edge="Edge",j.EdgeChromium="EdgeChromium",j.Opera="Opera",j.Chrome="Chrome",j.IE="IE",j.Firefox="Firefox",j.Safari="Safari",j.Electron="Electron"})(BrowserType||(BrowserType={}));const getBrowser=()=>{const j=navigator.userAgent.toLowerCase();if(j.indexOf("electron")>-1)return BrowserType.Electron;switch(!0){case j.indexOf("edge")>-1:return BrowserType.Edge;case j.indexOf("edg")>-1:return BrowserType.EdgeChromium;case(j.indexOf("opr")>-1&&!!window.opr):return BrowserType.Opera;case(j.indexOf("chrome")>-1&&!!window.chrome):return BrowserType.Chrome;case j.indexOf("trident")>-1:return BrowserType.IE;case j.indexOf("firefox")>-1:return BrowserType.Firefox;case j.indexOf("safari")>-1:return BrowserType.Safari;default:return BrowserType.Unknown}},isSupported=()=>{if(isMobile())return!1;const j=getBrowser();return[BrowserType.Chrome,BrowserType.EdgeChromium,BrowserType.Firefox,BrowserType.Safari,BrowserType.Electron].indexOf(j)>-1},isMacOs=navigator.userAgent.includes("Macintosh"),metaControl=j=>isMacOs?j.metaKey:j.ctrlKey,checkIsMultiSelect=j=>j.shiftKey||metaControl(j),transformPoint=(j,_e,et)=>({x:et[0]*j+et[2]*_e+et[4],y:et[1]*j+et[3]*_e+et[5]}),reverseTransformPoint=(j,_e,et)=>{const[tt,rt,nt,ot,it,st]=et;return{x:((j-it)*ot-(_e-st)*nt)/(tt*ot-rt*nt),y:((j-it)*rt-(_e-st)*tt)/(rt*nt-tt*ot)}},getPointDeltaByClientDelta=(j,_e,et)=>{const[tt,rt,nt,ot]=et,it=ot*j/(tt*ot-rt*nt)+nt*_e/(rt*nt-tt*ot),st=rt*j/(rt*nt-tt*ot)+tt*_e/(tt*ot-rt*nt);return{x:it,y:st}},getClientDeltaByPointDelta=(j,_e,et)=>{if(!et)return{x:j,y:_e};const[tt,rt,nt,ot]=et;return transformPoint(j,_e,[tt,rt,nt,ot,0,0])},getRealPointFromClientPoint=(j,_e,et)=>{const{rect:tt}=et,rt=j-tt.left,nt=_e-tt.top;return reverseTransformPoint(rt,nt,et.transformMatrix)},getClientPointFromRealPoint=(j,_e,et)=>{const{x:tt,y:rt}=transformPoint(j,_e,et.transformMatrix),{rect:nt}=et;return{x:tt+nt.left,y:rt+nt.top}},getContainerClientPoint=(j,_e,et)=>{const tt=getClientPointFromRealPoint(j,_e,et),{rect:rt}=et;return{x:tt.x-rt.left,y:tt.y-rt.top}};function markEdgeDirty(j,_e){j.update(_e,et=>et.shallow())}const getNearestConnectablePort=j=>{const{parentNode:_e,clientX:et,clientY:tt,graphConfig:rt,viewport:nt}=j;let ot=1/0,it;if(!_e.ports)return;const st=getRealPointFromClientPoint(et,tt,nt);return _e.ports.forEach(lt=>{if(isConnectable(rt,Object.assign(Object.assign({},j),{model:lt}))){const ut=getPortPositionByPortId(_e,lt.id,rt);if(!ut)return;const ct=st.x-ut.x,dt=st.y-ut.y,ft=ct*ct+dt*dt;ft{const et=j.getPortConfig(_e.model);return et?et.getIsConnectable(_e):!1},filterSelectedItems=j=>{const _e=new Map,et=[];return j.nodes.forEach(({inner:tt})=>{isSelected(tt)&&_e.set(tt.id,tt)}),j.edges.forEach(({inner:tt})=>{(isSelected(tt)||_e.has(tt.source)&&_e.has(tt.target))&&et.push(tt)}),{nodes:Array.from(_e.values()),edges:et}},getNeighborPorts=(j,_e,et)=>{const tt=[],rt=j.getEdgesBySource(_e,et),nt=j.getEdgesByTarget(_e,et);return rt==null||rt.forEach(ot=>{const it=j.edges.get(ot);it&&tt.push({nodeId:it.target,portId:it.targetPortId})}),nt==null||nt.forEach(ot=>{const it=j.edges.get(ot);it&&tt.push({nodeId:it.source,portId:it.sourcePortId})}),tt},unSelectAllEntity=()=>j=>j.mapNodes(_e=>_e.update(et=>{var tt;const rt=Object.assign(Object.assign({},et),{ports:(tt=et.ports)===null||tt===void 0?void 0:tt.map(updateStatus(replace$3(GraphPortStatus.Default)))});return updateStatus(replace$3(GraphNodeStatus.Default))(rt)})).mapEdges(_e=>_e.update(updateStatus(replace$3(GraphEdgeStatus.Default)))),nodeSelection=(j,_e)=>{if(isNodeEditing(_e))return identical;const et=checkIsMultiSelect(j);return isSelected(_e)&&!et?identical:tt=>{const rt=et?nt=>nt.id!==_e.id?isSelected(nt):j.button===MouseEventButton.Secondary?!0:!isSelected(_e):nt=>nt.id===_e.id;return tt.selectNodes(rt,_e.id)}},getNodeAutomationId=j=>{var _e;return`node-container-${(_e=j.name)!==null&&_e!==void 0?_e:"unnamed"}-${j.id}`},getPortAutomationId=(j,_e)=>`port-${_e.name}-${_e.id}-${j.name}-${j.id}`,getNodeUid=(j,_e)=>`node:${j}:${_e.id}`,getPortUid=(j,_e,et)=>`port:${j}:${_e.id}:${et.id}`,getEdgeUid=(j,_e)=>`edge:${j}:${_e.id}`;function preventSpread(j){Object.defineProperty(j,"__preventSpread",{enumerable:!0,configurable:!1,get(){document.currentScript&&Debug.error(`${j.constructor.name} is a class, which should not be used in the spread syntax or argument of Object.assign`)}})}class EdgeModel{get id(){return this.inner.id}get automationId(){return this.inner.automationId}get source(){return this.inner.source}get target(){return this.inner.target}get sourcePortId(){return this.inner.sourcePortId}get targetPortId(){return this.inner.targetPortId}get status(){return this.inner.status}get data(){return this.inner.data}constructor(_e){this.inner=_e,preventSpread(this)}static fromJSON(_e){return new EdgeModel(_e)}updateStatus(_e){return this.update(updateStatus(_e))}update(_e){const et=_e(this.inner);return et===this.inner?this:new EdgeModel(et)}shallow(){return new EdgeModel(this.inner)}toJSON(){return this.inner}}const is$2=Object.is;function mapCow(j,_e){const et=[];let tt=!0;for(let rt=0;rttt.id===_e)}link({prev:_e,next:et}){return _e===this.prev&&et===this.next?this:new NodeModel(this.inner,this.portPositionCache,_e??this.prev,et??this.next)}updateStatus(_e){return this.update(updateStatus(_e))}update(_e){const et=_e(this.inner);return et===this.inner?this:new NodeModel(et,new Map,this.prev,this.next)}updateData(_e){return this.data?this.update(et=>{const tt=_e(et.data);return tt===et.data?et:Object.assign(Object.assign({},et),{data:tt})}):this}getPortPosition(_e,et){let tt=this.portPositionCache.get(_e);return tt||(tt=getPortPositionByPortId(this.inner,_e,et),this.portPositionCache.set(_e,tt)),tt}hasPort(_e){var et;return!!(!((et=this.inner.ports)===null||et===void 0)&&et.find(tt=>tt.id===_e))}updatePositionAndSize(_e){const{x:et,y:tt,width:rt,height:nt}=_e,ot=Object.assign(Object.assign({},this.inner),{x:et,y:tt,width:rt??this.inner.width,height:nt??this.inner.height});return new NodeModel(ot,new Map,this.prev,this.next)}updatePorts(_e){if(!this.inner.ports)return this;const et=mapCow(this.inner.ports,_e),tt=this.inner.ports===et?this.inner:Object.assign(Object.assign({},this.inner),{ports:et});return tt===this.inner?this:new NodeModel(tt,new Map,this.prev,this.next)}invalidCache(){return new NodeModel(this.inner,new Map,this.prev,this.next)}toJSON(){return this.inner}}class GraphModel{constructor(_e){this.nodes=_e.nodes,this.edges=_e.edges,this.groups=_e.groups,this.head=_e.head,this.tail=_e.tail,this.edgesBySource=_e.edgesBySource,this.edgesByTarget=_e.edgesByTarget,this.selectedNodes=_e.selectedNodes,preventSpread(this)}static empty(){return new GraphModel({nodes:OrderedMap$1.empty(),edges:HashMap.empty(),groups:[],head:void 0,tail:void 0,edgesBySource:HashMap.empty(),edgesByTarget:HashMap.empty(),selectedNodes:new Set})}static fromJSON(_e){var et;const tt=OrderedMap$1.empty().mutate(),rt=HashMap.empty().mutate();let nt,ot;if(_e.nodes.length===0)nt=void 0,ot=void 0;else if(_e.nodes.length===1){const lt=_e.nodes[0];tt.set(lt.id,NodeModel.fromJSON(lt,void 0,void 0)),nt=lt.id,ot=lt.id}else{const lt=_e.nodes[0],ut=_e.nodes[1],ct=_e.nodes[_e.nodes.length-1];nt=lt.id,ot=ct.id,tt.set(lt.id,NodeModel.fromJSON(lt,void 0,ut.id));let dt=_e.nodes[0];if(_e.nodes.length>2)for(let ft=1;ft<_e.nodes.length-1;ft+=1){const pt=_e.nodes[ft],gt=_e.nodes[ft+1];tt.set(pt.id,NodeModel.fromJSON(pt,dt.id,gt.id)),dt=pt}tt.set(ct.id,NodeModel.fromJSON(ct,dt.id,void 0))}const it=HashMapBuilder.empty(),st=HashMapBuilder.empty();for(const lt of _e.edges)rt.set(lt.id,EdgeModel.fromJSON(lt)),setEdgeByPortMutable(it,lt.id,lt.source,lt.sourcePortId),setEdgeByPortMutable(st,lt.id,lt.target,lt.targetPortId);return new GraphModel({nodes:tt.finish(),edges:rt.finish(),groups:(et=_e.groups)!==null&&et!==void 0?et:[],head:nt,tail:ot,edgesBySource:it.finish(),edgesByTarget:st.finish(),selectedNodes:new Set})}getNavigationFirstNode(){if(this.head!==void 0)return this.nodes.get(this.head)}updateNode(_e,et){var tt,rt;const nt=this.nodes.update(_e,it=>it.update(et));if(nt===this.nodes)return this;const ot=this.edges.mutate();return(tt=this.edgesBySource.get(_e))===null||tt===void 0||tt.forEach(it=>{it.forEach(st=>{markEdgeDirty(ot,st)})}),(rt=this.edgesByTarget.get(_e))===null||rt===void 0||rt.forEach(it=>{it.forEach(st=>{markEdgeDirty(ot,st)})}),this.merge({nodes:nt,edges:ot.finish()})}updateNodeData(_e,et){return this.merge({nodes:this.nodes.update(_e,tt=>tt.updateData(et))})}updatePort(_e,et,tt){const rt=this.nodes.update(_e,nt=>nt.updatePorts(ot=>ot.id===et?tt(ot):ot));return this.merge({nodes:rt})}insertNode(_e){const et=this.nodes.mutate().set(_e.id,NodeModel.fromJSON(_e,this.tail,void 0));return this.tail&&!this.nodes.has(_e.id)&&et.update(this.tail,tt=>tt.link({next:_e.id})),this.merge({nodes:et.finish(),head:this.nodes.size===0?_e.id:this.head,tail:_e.id})}deleteItems(_e){var et;const tt=new Set,rt=this.nodes.mutate();let nt=this.head===void 0?void 0:this.nodes.get(this.head),ot=nt,it;const st=this.edgesBySource.mutate(),lt=this.edgesByTarget.mutate();for(;ot!==void 0;){const ct=ot.next?this.nodes.get(ot.next):void 0;!((et=_e.node)===null||et===void 0)&&et.call(_e,ot.inner)?(rt.update(ot.id,dt=>dt.link({prev:it==null?void 0:it.id}).update(ft=>has$3(GraphNodeStatus.Editing)(ft.status)?ft:Object.assign(Object.assign({},ft),{status:GraphNodeStatus.Default}))),it=ot):(rt.delete(ot.id),st.delete(ot.id),lt.delete(ot.id),tt.add(ot.id),it&&rt.update(it.id,dt=>dt.link({next:ot==null?void 0:ot.next})),ct&&rt.update(ct.id,dt=>dt.link({prev:it==null?void 0:it.id})),ot===nt&&(nt=ct)),ot=ct}const ut=this.edges.mutate();return this.edges.forEach(ct=>{var dt,ft;!tt.has(ct.source)&&!tt.has(ct.target)&&(!((ft=(dt=_e.edge)===null||dt===void 0?void 0:dt.call(_e,ct))!==null&&ft!==void 0)||ft)?ut.update(ct.id,pt=>pt.update(updateStatus(replace$3(GraphEdgeStatus.Default)))):(ut.delete(ct.id),deleteEdgeByPort(st,ct.id,ct.source,ct.sourcePortId),deleteEdgeByPort(lt,ct.id,ct.target,ct.targetPortId))}),this.merge({nodes:rt.finish(),edges:ut.finish(),head:nt==null?void 0:nt.id,tail:it==null?void 0:it.id,edgesBySource:st.finish(),edgesByTarget:lt.finish()})}insertEdge(_e){if(this.isEdgeExist(_e.source,_e.sourcePortId,_e.target,_e.targetPortId)||!this.nodes.has(_e.source)||!this.nodes.has(_e.target))return this;const et=setEdgeByPort(this.edgesBySource,_e.id,_e.source,_e.sourcePortId),tt=setEdgeByPort(this.edgesByTarget,_e.id,_e.target,_e.targetPortId);return this.merge({nodes:this.nodes.update(_e.source,rt=>rt.invalidCache()).update(_e.target,rt=>rt.invalidCache()),edges:this.edges.set(_e.id,EdgeModel.fromJSON(_e)).map(rt=>rt.updateStatus(replace$3(GraphEdgeStatus.Default))),edgesBySource:et,edgesByTarget:tt})}updateEdge(_e,et){return this.merge({edges:this.edges.update(_e,tt=>tt.update(et))})}deleteEdge(_e){const et=this.edges.get(_e);return et?this.merge({edges:this.edges.delete(_e),edgesBySource:deleteEdgeByPort(this.edgesBySource,et.id,et.source,et.sourcePortId),edgesByTarget:deleteEdgeByPort(this.edgesByTarget,et.id,et.target,et.targetPortId)}):this}updateNodesPositionAndSize(_e){const et=new Set,tt=this.nodes.mutate(),rt=this.edges.mutate();return _e.forEach(nt=>{var ot,it;et.add(nt.id),tt.update(nt.id,st=>st.updatePositionAndSize(nt)),(ot=this.edgesBySource.get(nt.id))===null||ot===void 0||ot.forEach(st=>{st.forEach(lt=>{markEdgeDirty(rt,lt)})}),(it=this.edgesByTarget.get(nt.id))===null||it===void 0||it.forEach(st=>{st.forEach(lt=>{markEdgeDirty(rt,lt)})})}),this.merge({nodes:tt.finish(),edges:rt.finish()})}mapNodes(_e){return this.merge({nodes:this.nodes.map(_e)})}mapEdges(_e){return this.merge({edges:this.edges.map(_e)})}selectNodes(_e,et){const tt=new Set,rt=this.nodes.map(it=>{const st=_e(it.inner);return st&&tt.add(it.id),it.updatePorts(updateStatus(replace$3(GraphPortStatus.Default))).updateStatus(resetConnectStatus(st?GraphNodeStatus.Selected:GraphNodeStatus.UnconnectedToSelected))}).mutate();if(tt.size===0)this.nodes.forEach(it=>rt.update(it.id,st=>st.updateStatus(replace$3(GraphNodeStatus.Default))));else if(et){const it=rt.get(et);it&&(rt.delete(et),rt.set(it.id,it))}const nt=it=>{rt.update(it,st=>st.updateStatus(replace$3(isSelected(st)?GraphNodeStatus.Selected:GraphNodeStatus.ConnectedToSelected)))},ot=tt.size?this.edges.map(it=>{let st=GraphEdgeStatus.UnconnectedToSelected;return tt.has(it.source)&&(nt(it.target),st=GraphEdgeStatus.ConnectedToSelected),tt.has(it.target)&&(nt(it.source),st=GraphEdgeStatus.ConnectedToSelected),it.updateStatus(replace$3(st))}):this.edges.map(it=>it.updateStatus(replace$3(GraphEdgeStatus.Default)));return this.merge({nodes:rt.finish(),edges:ot,selectedNodes:tt})}getEdgesBySource(_e,et){var tt;return(tt=this.edgesBySource.get(_e))===null||tt===void 0?void 0:tt.get(et)}getEdgesByTarget(_e,et){var tt;return(tt=this.edgesByTarget.get(_e))===null||tt===void 0?void 0:tt.get(et)}isPortConnectedAsSource(_e,et){var tt,rt;return((rt=(tt=this.getEdgesBySource(_e,et))===null||tt===void 0?void 0:tt.size)!==null&&rt!==void 0?rt:0)>0}isPortConnectedAsTarget(_e,et){var tt,rt;return((rt=(tt=this.getEdgesByTarget(_e,et))===null||tt===void 0?void 0:tt.size)!==null&&rt!==void 0?rt:0)>0}shallow(){return this.merge({})}toJSON(){const _e=[];let et=this.head&&this.nodes.get(this.head);for(;et;)_e.push(et.inner),et=et.next&&this.nodes.get(et.next);const tt=Array.from(this.edges.values()).map(rt=>rt.inner);return{nodes:_e,edges:tt}}isEdgeExist(_e,et,tt,rt){const nt=this.getEdgesBySource(_e,et),ot=this.getEdgesByTarget(tt,rt);if(!nt||!ot)return!1;let it=!1;return nt.forEach(st=>{ot.has(st)&&(it=!0)}),it}merge(_e){var et,tt,rt,nt,ot,it,st,lt;return new GraphModel({nodes:(et=_e.nodes)!==null&&et!==void 0?et:this.nodes,edges:(tt=_e.edges)!==null&&tt!==void 0?tt:this.edges,groups:(rt=_e.groups)!==null&&rt!==void 0?rt:this.groups,head:(nt=_e.head)!==null&&nt!==void 0?nt:this.head,tail:(ot=_e.tail)!==null&&ot!==void 0?ot:this.tail,edgesBySource:(it=_e.edgesBySource)!==null&&it!==void 0?it:this.edgesBySource,edgesByTarget:(st=_e.edgesByTarget)!==null&&st!==void 0?st:this.edgesByTarget,selectedNodes:(lt=_e.selectedNodes)!==null&<!==void 0?lt:this.selectedNodes})}}function setEdgeByPort(j,_e,et,tt){return j.has(et)?j.update(et,rt=>{const nt=rt.get(tt);return new Map(rt).set(tt,(nt?new Set(nt):new Set).add(_e))}):j.set(et,new Map([[tt,new Set([_e])]]))}function setEdgeByPortMutable(j,_e,et,tt){j.has(et)?j.update(et,rt=>{let nt=rt.get(tt);return nt||(nt=new Set,rt.set(tt,nt)),nt.add(_e),rt}):j.set(et,new Map([[tt,new Set([_e])]]))}function deleteEdgeByPort(j,_e,et,tt){return j.has(et)?j.update(et,rt=>{const nt=rt.get(tt);if(!nt)return rt;const ot=new Set(nt);return ot.delete(_e),new Map(rt).set(tt,ot)}):j}var CanvasMouseMode;(function(j){j.Pan="Pan",j.Select="Select"})(CanvasMouseMode||(CanvasMouseMode={}));var GraphBehavior;(function(j){j.Default="default",j.Dragging="dragging",j.Panning="panning",j.MultiSelect="multiSelect",j.Connecting="connecting",j.AddingNode="addingNode"})(GraphBehavior||(GraphBehavior={}));function clamp$1(j,_e,et){return j>et?j:_e{const{instance:tt,maxWait:rt}=et||{};let nt=0,ot;return(...st)=>{if(window.clearTimeout(nt),isDef(rt)){const lt=Date.now();if(!isDef(ot))ot=lt;else if(lt-ot>=rt){ot=void 0,it(st);return}}nt=window.setTimeout(()=>{it(st)},_e)};function it(st){j.apply(tt,st)}},emptyArrayInstance=[];function constantEmptyArray(){return emptyArrayInstance}const checkRectIntersect=(j,_e)=>{const et=j.maxX<_e.minX,tt=j.minX>_e.maxX,rt=j.minY>_e.maxY,nt=j.maxY<_e.minY;return!(et||tt||rt||nt)},isPointInRect=(j,_e)=>{const{minX:et,minY:tt,maxX:rt,maxY:nt}=j,{x:ot,y:it}=_e;return ot>et&&ottt&&itMath.pow(j,2),distance=(j,_e,et,tt)=>Math.sqrt(square$1(et-j)+square$1(tt-_e)),getLinearFunction=(j,_e,et,tt)=>j===et?()=>Number.MAX_SAFE_INTEGER:rt=>(tt-_e)/(et-j)*rt+(_e*et-tt*j)/(et-j),shallowEqual$1=(j,_e)=>{if(!j||j.length!==_e.length)return!1;for(let et=0;et{const nt=_e?Array.isArray(_e)?_e:_e.apply(void 0,rt):rt;return shallowEqual$1(et,nt)||(et=nt,tt=j.apply(void 0,rt)),tt}}var Direction$1;(function(j){j[j.X=0]="X",j[j.Y=1]="Y",j[j.XY=2]="XY"})(Direction$1||(Direction$1={}));const isViewportComplete=j=>!!j.rect,getNodeRect=(j,_e)=>{const{x:et,y:tt}=j,{width:rt,height:nt}=getNodeSize(j,_e);return{x:et,y:tt,width:rt,height:nt}},isNodeVisible=(j,_e,et)=>isRectVisible(getNodeRect(j,et),_e),isRectVisible=(j,_e)=>{const{x:et,y:tt,width:rt,height:nt}=j;return isPointVisible({x:et,y:tt},_e)||isPointVisible({x:et+rt,y:tt},_e)||isPointVisible({x:et+rt,y:tt+nt},_e)||isPointVisible({x:et,y:tt+nt},_e)},isPointVisible=(j,_e)=>{const{x:et,y:tt}=getContainerClientPoint(j.x,j.y,_e),{height:rt,width:nt}=_e.rect;return et>0&&et0&&tt{const tt=[];return j.forEach(rt=>{isNodeVisible(rt,_e,et)&&tt.push(rt.inner)}),tt},getRenderedNodes=(j,_e)=>{const et=[],tt=getRenderedArea(_e);return j.forEach(rt=>{isNodeInRenderedArea(rt,tt)&&et.push(rt.inner)}),et},isNodeInRenderedArea=(j,_e)=>isPointInRect(_e,j),getVisibleArea=j=>{if(!isViewportComplete(j))return{minX:0,minY:0,maxX:0,maxY:0};const{rect:_e,transformMatrix:et}=j,tt=0,rt=0,nt=_e.width,ot=_e.height,it=reverseTransformPoint(tt,rt,et),st=reverseTransformPoint(nt,ot,et);return{minX:it.x,minY:it.y,maxX:st.x,maxY:st.y}},getRenderedArea=j=>{if(!isViewportComplete(j))return{minX:0,minY:0,maxX:0,maxY:0};const{rect:_e,transformMatrix:et}=j,tt=0,rt=0,nt=_e.width,ot=_e.height,it=reverseTransformPoint(tt-_e.width,rt-_e.height,et),st=reverseTransformPoint(nt+_e.width,ot+_e.height,et);return{minX:it.x,minY:it.y,maxX:st.x,maxY:st.y}},normalizeSpacing=j=>j?typeof j=="number"?{top:j,right:j,bottom:j,left:j}:Object.assign({top:0,right:0,bottom:0,left:0},j):{top:0,right:0,bottom:0,left:0},zoomTo=({scale:j,anchor:_e,direction:et,limitScale:tt})=>rt=>{const nt=tt(j)/rt.transformMatrix[0],ot=tt(j)/rt.transformMatrix[3],{x:it,y:st}=_e,lt=it*(1-nt),ut=st*(1-ot);let ct;switch(et){case Direction$1.X:ct=[j,0,0,rt.transformMatrix[3],rt.transformMatrix[4]*nt+lt,rt.transformMatrix[5]];break;case Direction$1.Y:ct=[rt.transformMatrix[0],0,0,j,rt.transformMatrix[4],rt.transformMatrix[5]*ot+ut];break;case Direction$1.XY:default:ct=[j,0,0,j,rt.transformMatrix[4]*nt+lt,rt.transformMatrix[5]*ot+ut]}return Object.assign(Object.assign({},rt),{transformMatrix:ct})},zoom=({scale:j,anchor:_e,direction:et,limitScale:tt})=>j===1?identical:rt=>{let nt;switch(et){case Direction$1.X:return zoomTo({anchor:_e,direction:et,limitScale:tt,scale:rt.transformMatrix[0]*j})(rt);case Direction$1.Y:return zoomTo({anchor:_e,direction:et,limitScale:tt,scale:rt.transformMatrix[3]*j})(rt);case Direction$1.XY:default:{const ot=tt(rt.transformMatrix[0]*j),it=tt(rt.transformMatrix[3]*j),st=ot/rt.transformMatrix[0],lt=it/rt.transformMatrix[3],{x:ut,y:ct}=_e,dt=ut*(1-st),ft=ct*(1-lt);nt=[ot,0,0,it,rt.transformMatrix[4]*st+dt,rt.transformMatrix[5]*lt+ft]}}return Object.assign(Object.assign({},rt),{transformMatrix:nt})},pan=(j,_e)=>j===0&&_e===0?identical:et=>Object.assign(Object.assign({},et),{transformMatrix:[et.transformMatrix[0],et.transformMatrix[1],et.transformMatrix[2],et.transformMatrix[3],et.transformMatrix[4]+j,et.transformMatrix[5]+_e]}),minimapPan=(j,_e)=>j===0&&_e===0?identical:et=>{const[tt,rt,nt,ot]=et.transformMatrix;return Object.assign(Object.assign({},et),{transformMatrix:[tt,rt,nt,ot,et.transformMatrix[4]+tt*j+rt*_e,et.transformMatrix[5]+nt*j+ot*_e]})},getContentArea$1=(j,_e,et)=>{let tt=1/0,rt=1/0,nt=1/0,ot=1/0,it=-1/0,st=-1/0;return(et===void 0?dt=>j.nodes.forEach(dt):dt=>et==null?void 0:et.forEach(ft=>{const pt=j.nodes.get(ft);pt&&dt(pt)}))(dt=>{const{width:ft,height:pt}=getNodeSize(dt,_e);dt.xit&&(it=dt.x+ft),dt.y+pt>st&&(st=dt.y+pt),ft{let{width:et,height:tt}=j,{width:rt,height:nt}=_e;if(et>rt){const ot=et;et=rt,rt=ot}if(tt>nt){const ot=tt;tt=nt,nt=ot}return{nodeMinVisibleWidth:et,nodeMinVisibleHeight:tt,nodeMaxVisibleWidth:rt,nodeMaxVisibleHeight:nt}},getScaleRange=(j,{width:_e,height:et})=>{const{nodeMinVisibleWidth:tt,nodeMinVisibleHeight:rt,nodeMaxVisibleWidth:nt,nodeMaxVisibleHeight:ot}=normalizeNodeVisibleMinMax(j);let it=0,st=0,lt=1/0,ut=1/0;return _e&&(it=tt/_e,lt=nt/_e),et&&(st=rt/et,ut=ot/et),{minScaleX:it,minScaleY:st,maxScaleX:lt,maxScaleY:ut}},getZoomFitMatrix=j=>{const{data:_e,graphConfig:et,disablePan:tt,direction:rt,rect:nt}=j,{nodes:ot}=_e;if(ot.size===0)return[1,0,0,1,0,0];const{minNodeWidth:it,minNodeHeight:st,minNodeX:lt,minNodeY:ut,maxNodeX:ct,maxNodeY:dt}=getContentArea$1(_e,et),{minScaleX:ft,minScaleY:pt,maxScaleX:gt,maxScaleY:vt}=getScaleRange(j,{width:it,height:st}),bt=normalizeSpacing(j.spacing),{width:_t,height:xt}=nt,yt=_t/(ct-lt+bt.left+bt.right),Et=xt/(dt-ut+bt.top+bt.bottom),St=rt===Direction$1.Y?Math.min(Math.max(ft,pt,Et),gt,vt):Math.min(Math.max(ft,pt,Math.min(yt,Et)),vt,vt),$t=rt===Direction$1.XY?Math.min(Math.max(ft,yt),gt):St,At=rt===Direction$1.XY?Math.min(Math.max(pt,Et),vt):St;if(tt)return[$t,0,0,At,0,0];const wt=-$t*(lt-bt.left),Ct=-At*(ut-bt.top);if(getVisibleNodes(_e.nodes,{rect:nt,transformMatrix:[$t,0,0,At,wt,Ct]},et).length>0)return[$t,0,0,At,wt,Ct];let Ot=_e.nodes.first();return Ot&&_e.nodes.forEach(Nt=>{Ot.y>Nt.y&&(Ot=Nt)}),[$t,0,0,At,-$t*(Ot.x-bt.left),-At*(Ot.y-bt.top)]},focusArea=(j,_e,et,tt,rt)=>{const nt=et-j,ot=tt-_e,it=Math.min(rt.rect.width/nt,rt.rect.height/ot),st=-it*(j+nt/2)+rt.rect.width/2,lt=-it*(_e+ot/2)+rt.rect.height/2;return Object.assign(Object.assign({},rt),{transformMatrix:[it,0,0,it,st,lt]})};function getContainerCenter(j){const _e=j.current;if(!_e)return;const et=_e.width/2,tt=_e.height/2;return{x:et,y:tt}}function getRelativePoint(j,_e){const et=_e.clientX-j.left,tt=_e.clientY-j.top;return{x:et,y:tt}}const scrollIntoView$1=(j,_e,et,tt,rt)=>{if(!et)return identical;const{width:nt,height:ot}=et;return!(j<0||j>nt||_e<0||_e>ot)&&!tt?identical:st=>{const lt=rt?rt.x-j:nt/2-j,ut=rt?rt.y-_e:ot/2-_e;return Object.assign(Object.assign({},st),{transformMatrix:[st.transformMatrix[0],st.transformMatrix[1],st.transformMatrix[2],st.transformMatrix[3],st.transformMatrix[4]+lt,st.transformMatrix[5]+ut]})}},getScaleLimit=(j,_e)=>{const{minNodeWidth:et,minNodeHeight:tt}=getContentArea$1(j,_e.graphConfig),{minScaleX:rt,minScaleY:nt}=getScaleRange(_e,{width:et,height:tt});return Math.max(rt,nt)},getContentArea=memoize$2(getContentArea$1),getOffsetLimit=({data:j,graphConfig:_e,rect:et,transformMatrix:tt,canvasBoundaryPadding:rt,groupPadding:nt})=>{var ot,it,st,lt;const ut=getContentArea(j,_e),ct=getClientDeltaByPointDelta(ut.minNodeX-((nt==null?void 0:nt.left)||0),ut.minNodeY-((nt==null?void 0:nt.top)||0),tt);ct.x-=(ot=rt==null?void 0:rt.left)!==null&&ot!==void 0?ot:0,ct.y-=(it=rt==null?void 0:rt.top)!==null&&it!==void 0?it:0;const dt=getClientDeltaByPointDelta(ut.maxNodeX+((nt==null?void 0:nt.right)||0),ut.maxNodeY+((nt==null?void 0:nt.bottom)||0),tt);dt.x+=(st=rt==null?void 0:rt.right)!==null&&st!==void 0?st:0,dt.y+=(lt=rt==null?void 0:rt.bottom)!==null&<!==void 0?lt:0;let ft=-ct.x||0,pt=-ct.y||0,gt=et.width-dt.x||0,vt=et.height-dt.y||0;if(gt({present:_e,past:{next:j.past,value:et(j.present)},future:null}),undo=j=>j.past?{present:j.past.value,past:j.past.next,future:{next:j.future,value:j.present}}:j,redo=j=>j.future?{present:j.future.value,past:{next:j.past,value:j.present},future:j.future.next}:j,resetUndoStack=j=>({present:j,future:null,past:null}),isWithinThreshold=(j,_e,et)=>Math.abs(j){warnGraphStateContext()}},EMPTY_CONNECT_STATE={sourceNode:void 0,sourcePort:void 0,targetNode:void 0,targetPort:void 0,movingPoint:{x:0,y:0}},GraphValueContext=reactExports.createContext(new Proxy(GraphModel.empty(),{get:(j,_e)=>(console.warn("Default graph data value is being used. Please check if you forget rendering Graph component"),Reflect.get(j,_e))})),GraphStateContext=reactExports.createContext(defaultGraphStateContext),SlotsContext=reactExports.createContext({});class EventChannel{constructor(){this.listenersRef=reactExports.createRef(),this.externalHandlerRef=reactExports.createRef(),this.queue=[],this.working=!1}trigger(_e){this.working?this.queue.push(_e):(this.working=!0,reactDomExports.unstable_batchedUpdates(()=>{this.callHandlers(_e);for(let et=0;et{this.dispatchDelegate(tt,rt)},this.state=_e,this.UNSAFE_latestState=_e,this.dispatchDelegate=et}setMouseClientPosition(_e){this.mouseClientPoint=_e}unsetMouseClientPosition(){this.mouseClientPoint=void 0}getMouseClientPosition(){return this.mouseClientPoint}getEnabledFeatures(){return this.state.settings.features}getBehavior(){return this.behavior}setBehavior(_e){this.behavior=_e}getData(){return this.state.data.present}getGlobalEventTarget(){var _e,et;return(et=(_e=this.getGlobalEventTargetDelegate)===null||_e===void 0?void 0:_e.call(this))!==null&&et!==void 0?et:window}}function useConst(j){const _e=reactExports.useRef();return _e.current===void 0&&(_e.current=j()),_e.current}const noop$3=()=>{};class ErrorBoundary extends reactExports.Component{constructor(_e){super(_e),this.state={hasError:!1}}static getDerivedStateFromError(_e){return{hasError:!0,error:_e}}componentDidCatch(_e,et){console.error(_e),this.setState({error:_e,errorInfo:et})}render(){var _e,et;if(!this.state.hasError)return this.props.children;if(this.props.renderOnError)return(_e=this.props.renderOnError(this.state.error,this.state.errorInfo,this.props.children))!==null&&_e!==void 0?_e:null;const tt=this.state.errorInfo?(et=this.state.errorInfo.componentStack)===null||et===void 0?void 0:et.split(` -`):[];return jsxRuntimeExports.jsxs("div",Object.assign({style:{color:"red"}},{children:[jsxRuntimeExports.jsx("h1",{children:"Something went wrong."}),jsxRuntimeExports.jsx("p",{children:`Error: ${this.state.error}`}),jsxRuntimeExports.jsx("p",{children:`ErrorInfo: ${JSON.stringify(this.state.errorInfo)}`}),jsxRuntimeExports.jsx("h2",{children:"Component Stack"}),(tt??[]).map((rt,nt)=>jsxRuntimeExports.jsx("p",{children:rt},nt))]}))}}const EMPTY_CONNECT_CONTEXT={sourceNode:void 0,sourcePort:void 0,targetNode:void 0,targetPort:void 0},ConnectingStateContext=reactExports.createContext(EMPTY_CONNECT_CONTEXT);ConnectingStateContext.displayName="ConnectingStateContext";const ConnectingState=({children:j,data:_e,connectState:et})=>{let tt,rt,nt,ot;et&&(tt=_e.nodes.get(et.sourceNode),rt=tt==null?void 0:tt.getPort(et.sourcePort),nt=et.targetNode?_e.nodes.get(et.targetNode):void 0,ot=et.targetPort?nt==null?void 0:nt.getPort(et.targetPort):void 0);const it=reactExports.useMemo(()=>({sourceNode:tt,sourcePort:rt,targetNode:nt,targetPort:ot}),[tt,rt,nt,ot]);return jsxRuntimeExports.jsx(ConnectingStateContext.Provider,Object.assign({value:it},{children:j}))};ConnectingState.displayName="ConnectingState";const AlignmentLinesContext=reactExports.createContext([]),GraphControllerContext=reactExports.createContext(new GraphController(EMPTY_GRAPH_STATE,noop$3));function GraphStateStore(j){const{graphController:_e,state:et,dispatch:tt,children:rt}=j,nt=reactExports.useMemo(()=>({state:et,dispatch:tt}),[et,tt]);return jsxRuntimeExports.jsx(GraphConfigContext.Provider,Object.assign({value:et.settings.graphConfig},{children:jsxRuntimeExports.jsx(GraphControllerContext.Provider,Object.assign({value:_e},{children:jsxRuntimeExports.jsx(ConnectingState,Object.assign({data:et.data.present,connectState:et.connectState},{children:jsxRuntimeExports.jsx(GraphStateContext.Provider,Object.assign({value:nt},{children:jsxRuntimeExports.jsx(ViewportContext.Provider,Object.assign({value:et.viewport},{children:jsxRuntimeExports.jsx(GraphValueContext.Provider,Object.assign({value:et.data.present},{children:jsxRuntimeExports.jsx(AlignmentLinesContext.Provider,Object.assign({value:et.alignmentLines},{children:rt}))}))}))}))}))}))}))}const ReactDagEditor=j=>{var _e;reactExports.useEffect(()=>{j.handleWarning&&(Debug.warn=j.handleWarning)},[]);const et=(_e=j.handleError)===null||_e===void 0?void 0:_e.bind(null),{state:tt,dispatch:rt,getGlobalEventTarget:nt}=j,ot=useConst(()=>new GraphController(tt,rt));return ot.UNSAFE_latestState=tt,reactExports.useLayoutEffect(()=>{ot.state=tt,ot.dispatchDelegate=rt,ot.getGlobalEventTargetDelegate=nt},[rt,nt,ot,tt]),reactExports.useEffect(()=>()=>{ot.dispatchDelegate=noop$3},[ot]),jsxRuntimeExports.jsx(ErrorBoundary,Object.assign({renderOnError:et},{children:jsxRuntimeExports.jsx(SlotsContext.Provider,Object.assign({value:j},{children:jsxRuntimeExports.jsx(GraphStateStore,Object.assign({state:tt,dispatch:rt,graphController:ot},{children:jsxRuntimeExports.jsx(ContextMenuConfigContext.Provider,Object.assign({value:useConst(()=>new ContextMenuConfig)},{children:jsxRuntimeExports.jsx("div",Object.assign({style:j.style,className:j.className},{children:j.children}))}))}))}))}))},useContextMenuConfigContext=()=>reactExports.useContext(ContextMenuConfigContext);var GraphNodeEvent;(function(j){j.Click="[Node]Click",j.DoubleClick="[Node]DoubleClick",j.MouseDown="[Node]MouseDown",j.MouseUp="[Node]MouseUp",j.MouseEnter="[Node]MouseEnter",j.MouseLeave="[Node]MouseLeave",j.MouseOver="[Node]MouseOver",j.MouseOut="[Node]MouseOut",j.MouseMove="[Node]MouseMove",j.ContextMenu="[Node]ContextMenu",j.Drag="[Node]Drag",j.DragStart="[Node]DragStart",j.DragEnd="[Node]DragEnd",j.PointerDown="[Node]PointerDown",j.PointerEnter="[Node]PointerEnter",j.PointerMove="[Node]PointerMove",j.PointerLeave="[Node]PointerLeave",j.PointerUp="[Node]PointerUp",j.Resizing="[Node]Resizing",j.ResizingStart="[Node]ResizingStart",j.ResizingEnd="[Node]ResizingEnd",j.KeyDown="[Node]KeyDown",j.Select="[Node]Select",j.SelectAll="[Node]SelectAll",j.Centralize="[Node]Centralize",j.Locate="[Node]Locate",j.Add="[Node]Add"})(GraphNodeEvent||(GraphNodeEvent={}));var GraphEdgeEvent;(function(j){j.Click="[Edge]Click",j.DoubleClick="[Edge]DoubleClick",j.MouseEnter="[Edge]MouseEnter",j.MouseLeave="[Edge]MouseLeave",j.MouseOver="[Edge]MouseOver",j.MouseOut="[Edge]MouseOut",j.MouseMove="[Edge]MouseMove",j.MouseDown="[Edge]MouseDown",j.MouseUp="[Edge]MouseUp",j.ContextMenu="[Edge]ContextMenu",j.ConnectStart="[Edge]ConnectStart",j.ConnectMove="[Edge]ConnectMove",j.ConnectEnd="[Edge]ConnectEnd",j.ConnectNavigate="[Edge]ConnectNavigate",j.Add="[Edge]Add"})(GraphEdgeEvent||(GraphEdgeEvent={}));var GraphPortEvent;(function(j){j.Click="[Port]Click",j.DoubleClick="[Port]DoubleClick",j.MouseDown="[Port]MouseDown",j.PointerDown="[Port]PointerDown",j.PointerUp="[Port]PointerUp",j.PointerEnter="[Port]PointerEnter",j.PointerLeave="[Port]PointerLeave",j.MouseUp="[Port]MouseUp",j.MouseEnter="[Port]MouseEnter",j.MouseLeave="[Port]MouseLeave",j.MouseOver="[Port]MouseOver",j.MouseOut="[Port]MouseOut",j.MouseMove="[Port]MouseMove",j.ContextMenu="[Port]ContextMenu",j.KeyDown="[Port]KeyDown",j.Focus="[Port]Focus",j.Blur="[Port]Blur"})(GraphPortEvent||(GraphPortEvent={}));var GraphCanvasEvent;(function(j){j.Click="[Canvas]Click",j.DoubleClick="[Canvas]DoubleClick",j.MouseDown="[Canvas]MouseDown",j.MouseUp="[Canvas]MouseUp",j.MouseEnter="[Canvas]MouseEnter",j.MouseLeave="[Canvas]MouseLeave",j.MouseOver="[Canvas]MouseOver",j.MouseOut="[Canvas]MouseOut",j.MouseMove="[Canvas]MouseMove",j.ContextMenu="[Canvas]ContextMenu",j.DragStart="[Canvas]DragStart",j.Drag="[Canvas]Drag",j.DragEnd="[Canvas]DragEnd",j.Pan="[Canvas]Pan",j.Focus="[Canvas]Focus",j.Blur="[Canvas]Blur",j.Zoom="[Canvas]Zoom",j.Pinch="[Canvas]Pinch",j.KeyDown="[Canvas]KeyDown",j.KeyUp="[Canvas]KeyUp",j.SelectStart="[Canvas]SelectStart",j.SelectMove="[Canvas]SelectMove",j.SelectEnd="[Canvas]SelectEnd",j.UpdateNodeSelectionBySelectBox="[Canvas]UpdateNodeSelectionBySelectBox",j.MouseWheelScroll="[Canvas]MouseWheelScroll",j.DraggingNodeFromItemPanel="[Canvas]DraggingNodeFromItemPanel",j.DraggingNodeFromItemPanelStart="[Canvas]DraggingNodeFromItemPanelStart",j.DraggingNodeFromItemPanelEnd="[Canvas]DraggingNodeFromItemPanelEnd",j.ViewportResize="[Canvas]ViewportResize",j.Navigate="[Canvas]Navigate",j.VirtualizationRecalculated="[Canvas]VirtualizationRecalculated",j.ResetSelection="[Canvas]ResetSelection",j.Copy="[Canvas]Copy",j.Paste="[Canvas]Paste",j.Delete="[Canvas]Delete",j.Undo="[Canvas]Undo",j.Redo="[Canvas]Redo",j.ScrollIntoView="[Canvas]ScrollIntoView",j.ResetUndoStack="[Canvas]ResetUndoStack",j.ResetViewport="[Canvas]ResetViewport",j.ZoomTo="[Canvas]ZoomTo",j.ZoomToFit="[Canvas]ZoomToFit",j.SetData="[Canvas]SetData",j.UpdateData="[Canvas]UpdateData",j.ScrollTo="[Canvas]ScrollTo",j.UpdateSettings="[Canvas]UpdateSettings"})(GraphCanvasEvent||(GraphCanvasEvent={}));var GraphScrollBarEvent;(function(j){j.ScrollStart="[ScrollBar]ScrollStart",j.Scroll="[ScrollBar]Scroll",j.ScrollEnd="[ScrollBar]ScrollEnd"})(GraphScrollBarEvent||(GraphScrollBarEvent={}));var GraphMinimapEvent;(function(j){j.PanStart="[Minimap]PanStart",j.Pan="[Minimap]Pan",j.PanEnd="[Minimap]PanEnd",j.Click="[Minimap]Click"})(GraphMinimapEvent||(GraphMinimapEvent={}));var GraphContextMenuEvent;(function(j){j.Open="[ContextMenu]Open",j.Close="[ContextMenu]Close"})(GraphContextMenuEvent||(GraphContextMenuEvent={}));function getScrollLineHeight(){try{const j=document.createElement("iframe");j.src="#",document.body.appendChild(j);const{contentDocument:_e}=j;if(!_e)throw new Error("Fail to create iframe");_e.documentElement.innerHTML=purify.sanitize("a",{RETURN_TRUSTED_TYPE:!0});const tt=_e.body.firstElementChild.offsetHeight;return document.body.removeChild(j),tt}catch(j){return Debug.error("failed to calculate scroll line height",j),16}}const scrollLineHeight=getScrollLineHeight(),normalizeWheelDelta=typeof WheelEvent=="function"?(j,_e)=>{switch(j){case WheelEvent.DOM_DELTA_PIXEL:return _e;case WheelEvent.DOM_DELTA_LINE:return _e*scrollLineHeight;case WheelEvent.DOM_DELTA_PAGE:return _e*window.innerHeight;default:return _e}}:(j,_e)=>_e,EMPTY_RECT={height:0,width:0,x:0,y:0,bottom:0,left:0,right:0,top:0,toJSON(){return this}},VirtualizationContext=reactExports.createContext({viewport:{rect:EMPTY_RECT,transformMatrix:EMPTY_TRANSFORM_MATRIX},renderedArea:{minX:0,minY:0,maxX:0,maxY:0},visibleArea:{minX:0,minY:0,maxX:0,maxY:0},renderedNodes:new Set,renderedEdges:new Set,timestamp:0});function useGraphConfig(){return reactExports.useContext(GraphConfigContext)}function useGraphController(){return reactExports.useContext(GraphControllerContext)}function useAlignmentLines(){return reactExports.useContext(AlignmentLinesContext)}function useConnectingState(){return reactExports.useContext(ConnectingStateContext)}function useVirtualization(){return reactExports.useContext(VirtualizationContext)}let shouldRespondWheel=!1;const useWheelHandler=j=>{const{containerRef:_e,svgRef:et,rectRef:tt,zoomSensitivity:rt,scrollSensitivity:nt,isHorizontalScrollDisabled:ot,isVerticalScrollDisabled:it,isCtrlKeyZoomEnable:st,eventChannel:lt,graphConfig:ut,dispatch:ct}=j,ft=useGraphController().getGlobalEventTarget();reactExports.useLayoutEffect(()=>{const pt=et.current,gt=_e.current;if(!pt||!gt)return noop$3;const vt=xt=>{const yt=tt.current;if(!yt||!shouldRespondWheel)return;if(xt.preventDefault(),xt.ctrlKey&&st){const At=(normalizeWheelDelta(xt.deltaMode,xt.deltaY)>0?-rt:rt)+1;lt.trigger({type:GraphCanvasEvent.Zoom,rawEvent:xt,scale:At,anchor:getRelativePoint(yt,xt)});return}const Et=ot?0:-normalizeWheelDelta(xt.deltaMode,xt.shiftKey?xt.deltaY:xt.deltaX)*nt,St=it||xt.shiftKey?0:-normalizeWheelDelta(xt.deltaMode,xt.deltaY)*nt;lt.trigger({type:GraphCanvasEvent.MouseWheelScroll,dx:Et,dy:St,rawEvent:xt})},bt=()=>{shouldRespondWheel=!0};gt.addEventListener("mouseenter",bt);const _t=()=>{shouldRespondWheel=!1};return gt.addEventListener("mouseleave",_t),ft.addEventListener("wheel",vt,{passive:!1}),()=>{ft.removeEventListener("wheel",vt),gt.removeEventListener("mouseenter",bt),gt.removeEventListener("mouseleave",_t)}},[et,tt,rt,nt,ct,ot,it,ut,lt,st])};function nextFrame(j){requestAnimationFrame(()=>{requestAnimationFrame(j)})}const LIMIT=20,isRectChanged=(j,_e)=>j===_e?!1:!j||!_e?!0:j.top!==_e.top||j.left!==_e.left||j.width!==_e.width||j.height!==_e.height,useUpdateViewportCallback=(j,_e,et)=>reactExports.useCallback((tt=!1)=>{var rt;const nt=(rt=_e.current)===null||rt===void 0?void 0:rt.getBoundingClientRect();(tt||isRectChanged(j.current,nt))&&(j.current=nt,et.trigger({type:GraphCanvasEvent.ViewportResize,viewportRect:nt}))},[et,j,_e]),useContainerRect=(j,_e,et,tt)=>{reactExports.useLayoutEffect(()=>{j.viewport.rect||tt(!0)}),reactExports.useEffect(()=>{const rt=et.current;if(!rt)return noop$3;const nt=debounce$2(()=>nextFrame(()=>{tt()}),LIMIT);if(typeof ResizeObserver<"u"){const ot=new ResizeObserver(nt);return ot.observe(rt),()=>{ot.unobserve(rt),ot.disconnect()}}return window.addEventListener("resize",nt),()=>{window.removeEventListener("resize",nt)}},[et,tt]),reactExports.useEffect(()=>{const rt=debounce$2(ot=>{const it=_e.current;!it||!(ot.target instanceof Element)||!ot.target.contains(it)||tt()},LIMIT),nt={capture:!0,passive:!0};return document.body.addEventListener("scroll",rt,nt),()=>{document.body.removeEventListener("scroll",rt,nt)}},[_e,tt])};function makeScheduledCallback(j,_e,et){let tt=!1,rt,nt;const ot=(...it)=>{rt=it,tt||(tt=!0,nt=_e(()=>{tt=!1,reactDomExports.unstable_batchedUpdates(()=>{j.apply(null,rt)})}))};return ot.cancel=()=>{et(nt)},ot}const animationFramed=j=>makeScheduledCallback(j,requestAnimationFrame,cancelAnimationFrame),useRenderedArea=(j,_e)=>reactExports.useMemo(()=>_e?getRenderedArea(j):{minX:-Number.MAX_SAFE_INTEGER,minY:-Number.MAX_SAFE_INTEGER,maxX:Number.MAX_SAFE_INTEGER,maxY:Number.MAX_SAFE_INTEGER},[j,_e]);class DragController{constructor(_e,et){this.onMove=noop$3,this.onEnd=noop$3,this.lastEvent=null,this.startX=0,this.startY=0,this.prevClientX=0,this.prevClientY=0,this.onMouseUp=tt=>{this.lastEvent=tt,this.doOnMouseUp(tt),this.lastEvent=null},this.onMouseMove=tt=>{this.lastEvent=tt,tt.preventDefault(),this.mouseMove(tt)},this.eventProvider=_e,this.getPositionFromEvent=et,this.mouseMove=animationFramed(tt=>{this.doOnMouseMove(tt)})}start(_e){this.lastEvent=_e;const{x:et,y:tt}=this.getPositionFromEvent(_e);this.startX=et,this.startY=tt,this.prevClientX=et,this.prevClientY=tt,this.eventProvider.on("move",this.onMouseMove),this.eventProvider.on("end",this.onMouseUp)}stop(){this.mouseMove.cancel(),this.eventProvider.off("move",this.onMouseMove),this.eventProvider.off("end",this.onMouseUp)}getDelta(_e,et){const tt=_e-this.prevClientX,rt=et-this.prevClientY;return this.prevClientX=_e,this.prevClientY=et,{x:tt,y:rt}}getTotalDelta(_e){const et=_e.clientX-this.startX,tt=_e.clientY-this.startY;return{x:et,y:tt}}doOnMouseMove(_e){const{x:et,y:tt}=this.getPositionFromEvent(_e),{x:rt,y:nt}=this.getDelta(et,tt),{x:ot,y:it}=this.getTotalDelta(_e);this.onMove({clientX:et,clientY:tt,dx:rt,dy:nt,totalDX:ot,totalDY:it,e:_e})}doOnMouseUp(_e){_e.preventDefault();const{x:et,y:tt}=this.getTotalDelta(_e);this.onEnd({totalDX:et,totalDY:tt,e:_e}),this.stop()}}function defaultGetPositionFromEvent(j){return{x:j.clientX,y:j.clientY}}class DragNodeController extends DragController{constructor(_e,et,tt){super(_e,et),this.rectRef=tt}doOnMouseMove(_e){super.doOnMouseMove(_e);const et=this.rectRef.current;!et||!this.lastEvent||(_e.clientXet.right||_e.clientYet.bottom)&&this.mouseMove(this.lastEvent)}}class TouchController{constructor(_e){this.eventHandlers={onPointerDown:(et,...tt)=>{et.pointerType==="touch"&&(et.preventDefault(),this.pointers=new Map(this.pointers),this.pointers.set(et.pointerId,et.nativeEvent),this.updateHandler(et.nativeEvent,...tt))},onPointerMove:(et,...tt)=>{et.pointerType==="touch"&&(et.preventDefault(),this.pointers.set(et.pointerId,et.nativeEvent),this.onMove(et.nativeEvent,...tt))},onPointerUp:(et,...tt)=>{et.pointerType==="touch"&&(et.preventDefault(),this.pointers=new Map(this.pointers),this.pointers.delete(et.pointerId),this.updateHandler(et.nativeEvent,...tt))}},this.pointers=new Map,this.onMove=animationFramed((et,...tt)=>{var rt;(rt=this.currentHandler)===null||rt===void 0||rt.onMove(this.pointers,et,...tt)}),this.handlers=_e}updateHandler(_e,...et){var tt,rt;const nt=this.handlers.get(this.pointers.size);nt!==this.currentHandler&&((tt=this.currentHandler)===null||tt===void 0||tt.onEnd(_e,...et),this.currentHandler=nt,(rt=this.currentHandler)===null||rt===void 0||rt.onStart(this.pointers,_e,...et))}}class TwoFingerHandler{constructor(_e,et){this.prevDistance=0,this.rectRef=_e,this.eventChannel=et}onEnd(){}onMove(_e,et){const tt=Array.from(_e.values()),rt=distance(tt[0].clientX,tt[0].clientY,tt[1].clientX,tt[1].clientY),{prevEvents:nt,prevDistance:ot}=this;if(this.prevDistance=rt,this.prevEvents=tt,!nt)return;const it=tt[0].clientX-nt[0].clientX,st=tt[1].clientX-nt[1].clientX,lt=tt[0].clientY-nt[0].clientY,ut=tt[1].clientY-nt[1].clientY,ct=(it+st)/2,dt=(lt+ut)/2,ft=(rt-ot)/ot+1,pt=getContainerCenter(this.rectRef);pt&&this.eventChannel.trigger({type:GraphCanvasEvent.Pinch,rawEvent:et,dx:ct,dy:dt,scale:ft,anchor:pt})}onStart(_e){if(_e.size!==2)throw new Error(`Unexpected touch event with ${_e.size} touches`);this.prevEvents=Array.from(_e.values()),this.prevDistance=distance(this.prevEvents[0].clientX,this.prevEvents[0].clientY,this.prevEvents[1].clientX,this.prevEvents[1].clientY)}}const useGraphTouchHandler=(j,_e)=>reactExports.useMemo(()=>new TouchController(new Map().set(2,new TwoFingerHandler(j,_e))).eventHandlers,[j,_e]),isSafari=getBrowser()===BrowserType.Safari;let prevScale=0;function useSafariScale({rectRef:j,svgRef:_e,eventChannel:et}){reactExports.useEffect(()=>{const tt=_e.current;if(!isSafari||!tt||isMobile())return()=>{};const rt=animationFramed(st=>{const{scale:lt}=st,ut=lt/prevScale;prevScale=lt,et.trigger({type:GraphCanvasEvent.Zoom,rawEvent:st,scale:ut,anchor:getContainerCenter(j)})}),nt=st=>{st.stopPropagation(),st.preventDefault(),prevScale=st.scale,et.trigger({type:GraphCanvasEvent.Zoom,rawEvent:st,scale:st.scale,anchor:getContainerCenter(j)})},ot=st=>{st.stopPropagation(),st.preventDefault(),rt(st)},it=st=>{st.stopPropagation(),st.preventDefault(),rt(st)};return tt.addEventListener("gesturestart",nt),tt.addEventListener("gesturechange",ot),tt.addEventListener("gestureend",it),()=>{tt.removeEventListener("gesturestart",nt),tt.removeEventListener("gesturechange",ot),tt.removeEventListener("gestureend",it)}},[])}function useDeferredValue(j,{timeout:_e}){const[et,tt]=reactExports.useState(j);return reactExports.useEffect(()=>{const rt=setTimeout(()=>{tt(j)},_e);return()=>{clearTimeout(rt)}},[j,_e]),et}const useSelectBox=(j,_e)=>{const et=useDeferredValue(_e,{timeout:100});reactExports.useEffect(()=>{j({type:GraphCanvasEvent.UpdateNodeSelectionBySelectBox})},[et])},useGraphState=()=>reactExports.useContext(GraphStateContext),handleBehaviorChange=(j,_e)=>{switch(_e.type){case GraphNodeEvent.DragStart:return GraphBehavior.Dragging;case GraphEdgeEvent.ConnectStart:return GraphBehavior.Connecting;case GraphCanvasEvent.SelectStart:return GraphBehavior.MultiSelect;case GraphCanvasEvent.DragStart:return GraphBehavior.Panning;case GraphCanvasEvent.DraggingNodeFromItemPanelStart:return GraphBehavior.AddingNode;case GraphNodeEvent.DragEnd:case GraphEdgeEvent.ConnectEnd:case GraphCanvasEvent.SelectEnd:case GraphCanvasEvent.DragEnd:case GraphCanvasEvent.DraggingNodeFromItemPanelEnd:return GraphBehavior.Default;default:return j}},behaviorReducer=(j,_e)=>{const et=handleBehaviorChange(j.behavior,_e);return et===j.behavior?j:Object.assign(Object.assign({},j),{behavior:et})};function __rest(j,_e){var et={};for(var tt in j)Object.prototype.hasOwnProperty.call(j,tt)&&_e.indexOf(tt)<0&&(et[tt]=j[tt]);if(j!=null&&typeof Object.getOwnPropertySymbols=="function")for(var rt=0,tt=Object.getOwnPropertySymbols(j);rt{switch(_e.type){case GraphCanvasEvent.Paste:{const{position:et}=_e;if(!isViewportComplete(j.viewport))return j;const{rect:tt}=j.viewport;let rt=_e.data.nodes;if(et&&tt){const ot=getRealPointFromClientPoint(et.x,et.y,j.viewport);let it,st;rt=rt.map((lt,ut)=>(ut===0&&(it=ot.x-lt.x,st=ot.y-lt.y),Object.assign(Object.assign({},lt),{x:it?lt.x-COPIED_NODE_SPACING+it:lt.x,y:st?lt.y-COPIED_NODE_SPACING+st:lt.y,state:GraphNodeStatus.Selected})))}let nt=unSelectAllEntity()(j.data.present);return rt.forEach(ot=>{nt=nt.insertNode(ot)}),_e.data.edges.forEach(ot=>{nt=nt.insertEdge(ot)}),Object.assign(Object.assign({},j),{data:pushHistory(j.data,nt)})}case GraphCanvasEvent.Delete:return j.settings.features.has(GraphFeatures.Delete)?Object.assign(Object.assign({},j),{data:pushHistory(j.data,j.data.present.deleteItems({node:notSelected,edge:notSelected}),unSelectAllEntity())}):j;case GraphCanvasEvent.Undo:return Object.assign(Object.assign({},j),{data:undo(j.data)});case GraphCanvasEvent.Redo:return Object.assign(Object.assign({},j),{data:redo(j.data)});case GraphCanvasEvent.KeyDown:{const et=_e.rawEvent.key.toLowerCase();if(j.activeKeys.has(et))return j;const tt=new Set(j.activeKeys);return tt.add(et),Object.assign(Object.assign({},j),{activeKeys:tt})}case GraphCanvasEvent.KeyUp:{const et=_e.rawEvent.key.toLowerCase();if(!j.activeKeys.has(et))return j;const tt=new Set(j.activeKeys);return tt.delete(et),Object.assign(Object.assign({},j),{activeKeys:tt})}case GraphCanvasEvent.SetData:return Object.assign(Object.assign({},j),{data:resetUndoStack(_e.data)});case GraphCanvasEvent.UpdateData:return Object.assign(Object.assign({},j),{data:_e.shouldRecord?pushHistory(j.data,_e.updater(j.data.present)):Object.assign(Object.assign({},j.data),{present:_e.updater(j.data.present)})});case GraphCanvasEvent.ResetUndoStack:return Object.assign(Object.assign({},j),{data:resetUndoStack(j.data.present)});case GraphCanvasEvent.UpdateSettings:{const et=__rest(_e,["type"]);return Object.assign(Object.assign({},j),{settings:Object.assign(Object.assign({},j.settings),et)})}default:return j}};function composeReducers(j){return _e=>j.reduceRight((et,tt)=>tt(et),_e)}const VisitPortHelper=j=>{const{neighborPorts:_e,data:et}=j,tt=reactExports.useRef(null),[rt,nt]=reactExports.useState(),ot=reactExports.useCallback(lt=>{lt.key==="Escape"&&(lt.stopPropagation(),lt.preventDefault(),rt&&j.onComplete(rt))},[rt,j]),it=reactExports.useCallback(()=>{},[]),st=reactExports.useCallback(lt=>{const ut=JSON.parse(lt.target.value);ut.nodeId&&ut.portId&&nt({nodeId:ut.nodeId,portId:ut.portId})},[nt]);return reactExports.useEffect(()=>{tt.current&&tt.current.focus({preventScroll:!0})},[]),jsxRuntimeExports.jsx("select",Object.assign({onKeyDown:ot,onBlur:it,ref:tt,onChange:st},{children:_e.map(lt=>{const ut=rt&&rt.portId===lt.portId&&rt.nodeId===lt.nodeId,ct=JSON.stringify(lt),dt=et.nodes.get(lt.nodeId);if(!dt)return null;const ft=dt.ports?dt.ports.filter(gt=>gt.id===lt.portId)[0]:null;if(!ft)return null;const pt=`${dt.ariaLabel||dt.name||dt.id}: ${ft.ariaLabel||ft.name||ft.id}`;return jsxRuntimeExports.jsx("option",Object.assign({value:ct,"aria-selected":ut,"aria-label":pt},{children:pt}),`${lt.nodeId}-${lt.portId}`)})}))},item=(j=void 0,_e=void 0)=>({node:j,port:_e}),findDOMElement=(j,{node:_e,port:et})=>{var tt,rt;let nt;if(_e&&et)nt=getPortUid((tt=j.dataset.graphId)!==null&&tt!==void 0?tt:"",_e,et);else if(_e)nt=getNodeUid((rt=j.dataset.graphId)!==null&&rt!==void 0?rt:"",_e);else return null;return j.getElementById(nt)},focusItem=(j,_e,et,tt)=>{if(!j.current)return;const rt=findDOMElement(j.current,_e);rt?(et.preventDefault(),et.stopPropagation(),rt.focus({preventScroll:!0}),tt.trigger({type:GraphCanvasEvent.Navigate,node:_e.node,port:_e.port,rawEvent:et})):!_e.node&&!_e.port&&tt.trigger({type:GraphCanvasEvent.Navigate,node:_e.node,port:_e.port,rawEvent:et})},getNextItem=(j,_e,et)=>{if(_e.ports){const nt=(et?_e.ports.findIndex(ot=>ot.id===et.id):-1)+1;if(nt<_e.ports.length)return item(_e,_e.ports[nt])}const tt=_e.next&&j.nodes.get(_e.next);return tt?item(tt):item()},getPrevItem=(j,_e,et)=>{if(et&&_e.ports){const rt=_e.ports.findIndex(nt=>nt.id===et.id)-1;return rt>=0?item(_e,_e.ports[rt]):item(_e)}const tt=_e.prev&&j.nodes.get(_e.prev);return tt?item(tt,tt.ports&&tt.ports.length?tt.ports[tt.ports.length-1]:void 0):item()},nextConnectablePort=(j,_e)=>(et,tt,rt)=>{var nt,ot,it;let st=getNextItem(et,tt,rt);for(;!(((nt=st.node)===null||nt===void 0?void 0:nt.id)===tt.id&&((ot=st.port)===null||ot===void 0?void 0:ot.id)===(rt==null?void 0:rt.id));){if(!st.node)st=item(et.getNavigationFirstNode());else if(st.port&&!((it=j.getPortConfig(st.port))===null||it===void 0)&&it.getIsConnectable(Object.assign(Object.assign({},_e),{data:et,parentNode:st.node,model:st.port})))return st;st=getNextItem(et,st.node,st.port)}return item()},focusNextPort=(j,_e,et,tt,rt,nt)=>{const it=(j.findIndex(lt=>lt.id===et)+1)%j.length,st=j[it];st&&tt.current&&focusItem(tt,{node:_e,port:st},rt,nt)},focusPrevPort=(j,_e,et,tt,rt,nt)=>{const it=(j.findIndex(lt=>lt.id===et)-1+j.length)%j.length,st=j[it];st&&tt.current&&focusItem(tt,{node:_e,port:st},rt,nt)},getFocusNodeHandler=j=>(_e,et,tt,rt,nt,ot)=>{const it=Array.from(_e.nodes.values()).sort(j),st=it.findIndex(ut=>ut.id===et),lt=it[(st+1)%it.length];lt&&tt.current&&(rt.dispatch({type:GraphNodeEvent.Select,nodes:[lt.id]}),rt.dispatch({type:GraphNodeEvent.Centralize,nodes:[lt.id]}),focusItem(tt,{node:lt,port:void 0},nt,ot))},focusLeftNode=getFocusNodeHandler((j,_e)=>j.x*10+j.y-_e.x*10-_e.y),focusRightNode=getFocusNodeHandler((j,_e)=>_e.x*10+_e.y-j.x*10-j.y),focusDownNode=getFocusNodeHandler((j,_e)=>j.x+j.y*10-_e.x-_e.y*10),focusUpNode=getFocusNodeHandler((j,_e)=>_e.x+_e.y*10-j.x-j.y*10),goToConnectedPort=(j,_e,et,tt,rt,nt)=>{var ot;const it=getNeighborPorts(j,_e.id,et.id);if(it.length===1&&tt.current){const st=j.nodes.get(it[0].nodeId);if(!st)return;const lt=(ot=st.ports)===null||ot===void 0?void 0:ot.find(ut=>ut.id===it[0].portId);if(!lt)return;focusItem(tt,{node:st,port:lt},rt,nt)}else if(it.length>1&&tt.current){const st=ct=>{var dt;if(reactDomExports.unmountComponentAtNode(lt),tt.current){const gt=tt.current.closest(".react-dag-editor-container");gt&>.removeChild(lt)}const ft=j.nodes.get(ct.nodeId);if(!ft)return;const pt=(dt=ft.ports)===null||dt===void 0?void 0:dt.find(gt=>gt.id===ct.portId);pt&&focusItem(tt,{node:ft,port:pt},rt,nt)},lt=document.createElement("div"),ut=tt.current.closest(".react-dag-editor-container");ut&&ut.appendChild(lt),lt.style.position="fixed",lt.style.top="0",reactDomExports.render(jsxRuntimeExports.jsx(VisitPortHelper,{neighborPorts:it,onComplete:st,data:j}),lt)}};function defaultGetPortAriaLabel(j,_e,et){return et.ariaLabel}function defaultGetNodeAriaLabel(j){return j.ariaLabel}function attachPort(j,_e,et){if(!j.connectState)return j;let tt=j.data.present;return tt=tt.updatePort(_e,et,updateStatus(add$1(GraphPortStatus.ConnectingAsTarget))),j.connectState.targetNode&&j.connectState.targetPort&&(tt=tt.updatePort(j.connectState.targetNode,j.connectState.targetPort,updateStatus(remove$1(GraphPortStatus.ConnectingAsTarget)))),Object.assign(Object.assign({},j),{connectState:Object.assign(Object.assign({},j.connectState),{targetNode:_e,targetPort:et}),data:Object.assign(Object.assign({},j.data),{present:tt})})}function clearAttach(j){if(!j.connectState)return j;let _e=j.data.present;const{targetPort:et,targetNode:tt}=j.connectState;return tt&&et&&(_e=_e.updatePort(tt,et,updateStatus(remove$1(GraphPortStatus.ConnectingAsTarget)))),Object.assign(Object.assign({},j),{connectState:Object.assign(Object.assign({},j.connectState),{targetNode:void 0,targetPort:void 0}),data:Object.assign(Object.assign({},j.data),{present:_e})})}const connectingReducer=(j,_e)=>{var et,tt,rt;if(!isViewportComplete(j.viewport))return j;const{rect:nt}=j.viewport;switch(_e.type){case GraphEdgeEvent.ConnectStart:return Object.assign(Object.assign({},j),{connectState:Object.assign(Object.assign({},EMPTY_CONNECT_STATE),{sourceNode:_e.nodeId,sourcePort:_e.portId,movingPoint:_e.clientPoint?{x:_e.clientPoint.x-nt.left,y:_e.clientPoint.y-nt.top}:void 0}),data:Object.assign(Object.assign({},j.data),{present:j.data.present.updatePort(_e.nodeId,_e.portId,updateStatus(add$1(GraphPortStatus.Connecting)))})});case GraphEdgeEvent.ConnectMove:return j.connectState?Object.assign(Object.assign({},j),{connectState:Object.assign(Object.assign({},j.connectState),{movingPoint:{x:_e.clientX-nt.left,y:_e.clientY-nt.top}})}):j;case GraphEdgeEvent.ConnectEnd:if(j.connectState){const{edgeWillAdd:ot,isCancel:it}=_e,{sourceNode:st,sourcePort:lt,targetNode:ut,targetPort:ct}=j.connectState;let dt=j.data.present;if(dt=dt.updatePort(st,lt,updateStatus(replace$3(GraphPortStatus.Default))),!it&&ut&&ct){let ft={source:st,sourcePortId:lt,target:ut,targetPortId:ct,id:v4(),status:GraphEdgeStatus.Default};return ot&&(ft=ot(ft,dt)),dt=dt.insertEdge(ft).updatePort(ut,ct,updateStatus(replace$3(GraphPortStatus.Default))),Object.assign(Object.assign({},j),{connectState:void 0,data:pushHistory(j.data,dt,unSelectAllEntity())})}return Object.assign(Object.assign({},j),{connectState:void 0,data:Object.assign(Object.assign({},j.data),{present:dt})})}return j;case GraphEdgeEvent.ConnectNavigate:if(j.connectState){const ot=j.data.present,it=ot.nodes.get(j.connectState.sourceNode),st=it==null?void 0:it.getPort(j.connectState.sourcePort),lt=j.connectState.targetNode?ot.nodes.get(j.connectState.targetNode):void 0,ut=j.connectState.targetPort?lt==null?void 0:lt.getPort(j.connectState.targetPort):void 0;if(!it||!st)return j;const ct=nextConnectablePort(j.settings.graphConfig,{anotherNode:it,anotherPort:st})(ot,lt||it,ut);return!ct.node||!ct.port||ct.node.id===it.id&&ct.port.id===st.id?j:attachPort(j,ct.node.id,ct.port.id)}return j;case GraphPortEvent.PointerEnter:if(j.connectState){const{sourceNode:ot,sourcePort:it}=j.connectState,st=j.data.present,lt=st.nodes.get(_e.node.id),ut=lt==null?void 0:lt.getPort(_e.port.id),ct=st.nodes.get(ot),dt=ct==null?void 0:ct.getPort(it);if(lt&&ut&&ct&&dt&&isConnectable(j.settings.graphConfig,{parentNode:lt,model:ut,data:st,anotherPort:dt,anotherNode:ct}))return attachPort(j,lt.id,ut.id)}return j;case GraphNodeEvent.PointerEnter:case GraphNodeEvent.PointerMove:if(j.connectState){const{clientX:ot,clientY:it}=_e.rawEvent,{sourceNode:st,sourcePort:lt}=j.connectState,ut=j.data.present,ct=ut.nodes.get(_e.node.id),dt=ut.nodes.get(st),ft=dt==null?void 0:dt.getPort(lt);if(ct&&dt&&ft){const pt=getNearestConnectablePort({parentNode:ct,clientX:ot,clientY:it,graphConfig:j.settings.graphConfig,data:j.data.present,viewport:j.viewport,anotherPort:ft,anotherNode:dt});return pt?attachPort(j,ct.id,pt.id):j}}return j;case GraphNodeEvent.PointerLeave:return((et=j.connectState)===null||et===void 0?void 0:et.targetNode)===_e.node.id?clearAttach(j):j;case GraphPortEvent.PointerLeave:return((tt=j.connectState)===null||tt===void 0?void 0:tt.targetNode)===_e.node.id&&((rt=j.connectState)===null||rt===void 0?void 0:rt.targetPort)===_e.port.id?clearAttach(j):j;default:return j}},contextMenuReducer=(j,_e)=>{let et=j.contextMenuPosition;switch(_e.type){case GraphCanvasEvent.ContextMenu:case GraphNodeEvent.ContextMenu:case GraphEdgeEvent.ContextMenu:case GraphPortEvent.ContextMenu:{const tt=_e.rawEvent;tt.button===MouseEventButton.Secondary&&(et={x:tt.clientX,y:tt.clientY})}break;case GraphCanvasEvent.Click:case GraphNodeEvent.Click:case GraphEdgeEvent.Click:case GraphPortEvent.Click:et=void 0;break;case GraphContextMenuEvent.Open:et={x:_e.x,y:_e.y};break;case GraphContextMenuEvent.Close:et=void 0;break}return j.contextMenuPosition===et?j:Object.assign(Object.assign({},j),{contextMenuPosition:et})},edgeReducer=(j,_e)=>{switch(_e.type){case GraphEdgeEvent.DoubleClick:return j.settings.features.has(GraphFeatures.EditEdge)?Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updateEdge(_e.edge.id,updateStatus(replace$3(GraphEdgeStatus.Editing)))})}):j;case GraphEdgeEvent.MouseEnter:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updateEdge(_e.edge.id,updateStatus(add$1(GraphEdgeStatus.Activated)))})});case GraphEdgeEvent.MouseLeave:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updateEdge(_e.edge.id,updateStatus(remove$1(GraphEdgeStatus.Activated)))})});case GraphEdgeEvent.Click:case GraphEdgeEvent.ContextMenu:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:unSelectAllEntity()(j.data.present).updateEdge(_e.edge.id,updateStatus(add$1(GraphEdgeStatus.Selected)))})});case GraphEdgeEvent.Add:return Object.assign(Object.assign({},j),{data:pushHistory(j.data,j.data.present.insertEdge(_e.edge))});default:return j}},getAlignmentLines=(j,_e,et,tt=2)=>{const rt=getDummyDraggingNode(j),nt=getClosestNodes(rt,j,_e,et,tt);return getLines(rt,nt,j.length)},getAutoAlignDisplacement=(j,_e,et,tt)=>{let rt=1/0,nt=0;const ot=getDummyDraggingNode(_e),it=tt==="x"?ot.width||0:ot.height||0;return j.forEach(st=>{let lt;if(tt==="x"&&st.x1===st.x2)lt=st.x1;else if(tt==="y"&&st.y1===st.y2)lt=st.y1;else return;const ut=ot[tt]-lt,ct=ot[tt]+(it||0)/2-lt,dt=ot[tt]+(it||0)-lt;Math.abs(ut)0?-rt:rt),Math.abs(ct)0?-rt:rt),Math.abs(dt)0?-rt:rt)}),nt},getMinCoordinate=(j,_e)=>{if(j.length)return Math.min(...j.map(et=>et[_e]))},getMaxCoordinate=(j,_e)=>{if(j.length)return Math.max(...j.map(et=>et[_e]+(_e==="y"?et.height||0:et.width||0)))},setSizeForNode=(j,_e)=>Object.assign(Object.assign({},j),getNodeSize(j,_e)),getBoundingBoxOfNodes=j=>{let _e=1/0,et=1/0,tt=-1/0,rt=-1/0;return j.forEach(nt=>{const ot=nt.x,it=nt.y,st=nt.x+(nt.width||0),lt=nt.y+(nt.height||0);ot<_e&&(_e=ot),ittt&&(tt=st),lt>rt&&(rt=lt)}),{x:_e,y:et,width:tt-_e,height:rt-et}},getDummyDraggingNode=j=>{const{x:_e,y:et,width:tt,height:rt}=getBoundingBoxOfNodes(j);return{id:v4(),x:_e,y:et,width:tt,height:rt}},getClosestNodes=(j,_e,et,tt,rt=2)=>{const nt=[],ot=[],{x:it,y:st,width:lt=0,height:ut=0}=j;let ct=rt,dt=rt;return et.forEach(ft=>{if(_e.find(bt=>bt.id===ft.id))return;const pt=setSizeForNode(ft,tt),{width:gt=0,height:vt=0}=pt;[it,it+lt/2,it+lt].forEach((bt,_t)=>{nt[_t]||(nt[_t]={}),nt[_t].closestNodes||(nt[_t].closestNodes=[]),[pt.x,pt.x+gt/2,pt.x+gt].forEach(xt=>{var yt;const Et=Math.abs(bt-xt);Et<=ct&&((yt=nt[_t].closestNodes)===null||yt===void 0||yt.push(pt),nt[_t].alignCoordinateValue=xt,ct=Et)})}),[st,st+ut/2,st+ut].forEach((bt,_t)=>{ot[_t]||(ot[_t]={}),ot[_t].closestNodes||(ot[_t].closestNodes=[]),[pt.y,pt.y+vt/2,pt.y+vt].forEach(xt=>{var yt;const Et=Math.abs(bt-xt);Et<=dt&&((yt=ot[_t].closestNodes)===null||yt===void 0||yt.push(pt),ot[_t].alignCoordinateValue=xt,dt=Et)})})}),{closestX:nt,closestY:ot}},getLines=(j,_e,et=1)=>{const tt=[],rt=[],nt=_e.closestX,ot=_e.closestY;return nt.forEach((it,st)=>{var lt;if(it.alignCoordinateValue===void 0||st===1&&(tt.length||et>1))return;const ut=[],ct=it.alignCoordinateValue;(lt=it.closestNodes)===null||lt===void 0||lt.forEach(pt=>{(pt.x===ct||pt.x+(pt.width||0)/2===ct||pt.x+(pt.width||0)===ct)&&ut.push(pt)});const dt=getMinCoordinate([j,...ut],"y"),ft=getMaxCoordinate([j,...ut],"y");dt!==void 0&&ft!==void 0&&tt.push({x1:ct,y1:dt,x2:ct,y2:ft,visible:!0})}),ot.forEach((it,st)=>{var lt;if(it.alignCoordinateValue===void 0||st===1&&(rt.length||et>1))return;const ut=[],ct=it.alignCoordinateValue;(lt=it.closestNodes)===null||lt===void 0||lt.forEach(pt=>{(pt.y===ct||pt.y+(pt.height||0)/2===ct||pt.y+(pt.height||0)===ct)&&ut.push(pt)});const dt=getMinCoordinate([j,...ut],"x"),ft=getMaxCoordinate([j,...ut],"x");dt!==void 0&&ft!==void 0&&rt.push({x1:dt,y1:ct,x2:ft,y2:ct,visible:!0})}),[...tt,...rt]};function pipe(...j){return j.reduceRight((_e,et)=>tt=>_e(et(tt)),identical)}const getDelta=(j,_e,et)=>et_e?10:0;function getSelectedNodes(j,_e){const et=[];return j.nodes.forEach(tt=>{isSelected(tt)&&et.push(Object.assign({id:tt.id,x:tt.x,y:tt.y},getNodeSize(tt,_e)))}),et}function dragNodeHandler(j,_e){if(!isViewportComplete(j.viewport))return j;const et=ft=>Math.max(ft,getScaleLimit(ot,j.settings)),tt=_e.rawEvent,{rect:rt}=j.viewport,nt=Object.assign({},j),ot=j.data.present,it=getDelta(rt.left,rt.right,tt.clientX),st=getDelta(rt.top,rt.bottom,tt.clientY),lt=it!==0||st!==0?.999:1,ut=it!==0||it!==0?pipe(pan(-it,-st),zoom({scale:lt,anchor:getRelativePoint(rt,tt),direction:Direction$1.XY,limitScale:et}))(j.viewport):j.viewport,ct=getPointDeltaByClientDelta(_e.dx+it*lt,_e.dy+st*lt,ut.transformMatrix),dt=Object.assign(Object.assign({},j.dummyNodes),{dx:j.dummyNodes.dx+ct.x,dy:j.dummyNodes.dy+ct.y,isVisible:_e.isVisible});if(_e.isAutoAlignEnable){const ft=getRenderedNodes(ot.nodes,j.viewport);if(ft.length<_e.autoAlignThreshold){const pt=dt.nodes.map(vt=>Object.assign(Object.assign({},vt),{x:vt.x+dt.dx,y:vt.y+dt.dy})),gt=getAlignmentLines(pt,ft,j.settings.graphConfig,j.viewport.transformMatrix[0]>.3?2:5);if(gt.length){const vt=getAutoAlignDisplacement(gt,pt,j.settings.graphConfig,"x"),bt=getAutoAlignDisplacement(gt,pt,j.settings.graphConfig,"y");dt.alignedDX=dt.dx+vt,dt.alignedDY=dt.dy+bt}else dt.alignedDX=void 0,dt.alignedDY=void 0;nt.alignmentLines=gt}else dt.alignedDX=void 0,dt.alignedDY=void 0}return nt.dummyNodes=dt,nt.viewport=ut,nt}function handleDraggingNewNode(j,_e){if(!j.settings.features.has(GraphFeatures.AutoAlign))return j;const et=j.data.present,tt=getRenderedNodes(et.nodes,j.viewport),rt=getAlignmentLines([_e.node],tt,j.settings.graphConfig,j.viewport.transformMatrix[0]>.3?2:5);return Object.assign(Object.assign({},j),{alignmentLines:rt})}function dragStart(j,_e){let et=j.data.present;const tt=et.nodes.get(_e.node.id);if(!tt)return j;let rt;return _e.isMultiSelect?(et=et.selectNodes(nt=>nt.id===_e.node.id||isSelected(nt)),rt=getSelectedNodes(et,j.settings.graphConfig)):isSelected(tt)?rt=getSelectedNodes(et,j.settings.graphConfig):rt=[Object.assign({id:_e.node.id,x:_e.node.x,y:_e.node.y},getNodeSize(_e.node,j.settings.graphConfig))],Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:et}),dummyNodes:Object.assign(Object.assign({},emptyDummyNodes()),{isVisible:!1,nodes:rt})})}function dragEnd(j,_e){let et=j.data.present;if(_e.isDragCanceled)return Object.assign(Object.assign({},j),{alignmentLines:[],dummyNodes:emptyDummyNodes()});const{dx:tt,dy:rt}=j.dummyNodes;return et=et.updateNodesPositionAndSize(j.dummyNodes.nodes.map(nt=>Object.assign(Object.assign({},nt),{x:nt.x+tt,y:nt.y+rt,width:void 0,height:void 0}))),Object.assign(Object.assign({},j),{alignmentLines:[],dummyNodes:emptyDummyNodes(),data:pushHistory(j.data,et,unSelectAllEntity())})}function locateNode(j,_e){const et=_e.data.present;if(!isViewportComplete(_e.viewport)||!j.nodes.length)return _e;if(j.nodes.length===1){const it=j.nodes[0],st=et.nodes.get(it);if(!st)return _e;const{width:lt,height:ut}=getNodeSize(st,_e.settings.graphConfig),ct=j.type===GraphNodeEvent.Centralize?st.x+lt/2:st.x,dt=j.type===GraphNodeEvent.Centralize?st.y+ut/2:st.y,{x:ft,y:pt}=transformPoint(ct,dt,_e.viewport.transformMatrix),gt=j.type===GraphNodeEvent.Locate?j.position:void 0;return Object.assign(Object.assign({},_e),{viewport:scrollIntoView$1(ft,pt,_e.viewport.rect,!0,gt)(_e.viewport)})}const{minNodeX:tt,minNodeY:rt,maxNodeX:nt,maxNodeY:ot}=getContentArea$1(et,_e.settings.graphConfig,new Set(j.nodes));return Object.assign(Object.assign({},_e),{viewport:focusArea(tt,rt,nt,ot,_e.viewport)})}const nodeReducer=(j,_e)=>{const et=j.data.present;switch(_e.type){case GraphNodeEvent.ResizingStart:return Object.assign(Object.assign({},j),{dummyNodes:Object.assign(Object.assign({},emptyDummyNodes()),{isVisible:!0,nodes:getSelectedNodes(et,j.settings.graphConfig)})});case GraphNodeEvent.Resizing:return Object.assign(Object.assign({},j),{dummyNodes:Object.assign(Object.assign({},j.dummyNodes),{dx:_e.dx,dy:_e.dy,dWidth:_e.dWidth,dHeight:_e.dHeight})});case GraphNodeEvent.ResizingEnd:{const{dx:tt,dy:rt,dWidth:nt,dHeight:ot}=j.dummyNodes;return Object.assign(Object.assign({},j),{dummyNodes:emptyDummyNodes(),data:pushHistory(j.data,et.updateNodesPositionAndSize(j.dummyNodes.nodes.map(it=>Object.assign(Object.assign({},it),{x:it.x+tt,y:it.y+rt,width:it.width+nt,height:it.height+ot}))),unSelectAllEntity())})}case GraphNodeEvent.DragStart:return dragStart(j,_e);case GraphNodeEvent.Drag:return dragNodeHandler(j,_e);case GraphNodeEvent.DragEnd:return dragEnd(j,_e);case GraphNodeEvent.PointerEnter:switch(j.behavior){case GraphBehavior.Default:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:et.updateNode(_e.node.id,updateStatus(add$1(GraphNodeStatus.Activated)))})});default:return j}case GraphNodeEvent.PointerLeave:switch(j.behavior){case GraphBehavior.Default:case GraphBehavior.Connecting:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:et.updateNode(_e.node.id,updateStatus(remove$1(GraphNodeStatus.Activated)))})});default:return j}case GraphCanvasEvent.DraggingNodeFromItemPanel:return handleDraggingNewNode(j,_e);case GraphCanvasEvent.DraggingNodeFromItemPanelEnd:return _e.node?Object.assign(Object.assign({},j),{alignmentLines:[],data:pushHistory(j.data,j.data.present.insertNode(Object.assign(Object.assign({},_e.node),{status:GraphNodeStatus.Selected})),unSelectAllEntity())}):Object.assign(Object.assign({},j),{alignmentLines:[]});case GraphNodeEvent.Centralize:case GraphNodeEvent.Locate:return locateNode(_e,j);case GraphNodeEvent.Add:return Object.assign(Object.assign({},j),{data:pushHistory(j.data,et.insertNode(_e.node))});case GraphNodeEvent.DoubleClick:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updateNode(_e.node.id,updateStatus(add$1(GraphNodeStatus.Editing)))})});default:return j}},portReducer=(j,_e)=>{switch(_e.type){case GraphPortEvent.Focus:case GraphPortEvent.PointerEnter:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updatePort(_e.node.id,_e.port.id,updateStatus(add$1(GraphPortStatus.Activated)))})});case GraphPortEvent.Blur:case GraphPortEvent.PointerLeave:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updatePort(_e.node.id,_e.port.id,updateStatus(remove$1(GraphPortStatus.Activated)))})});case GraphPortEvent.Click:case GraphPortEvent.ContextMenu:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:unSelectAllEntity()(j.data.present).updatePort(_e.node.id,_e.port.id,updateStatus(add$1(GraphPortStatus.Selected)))})});default:return j}},selectNodeBySelectBox=(j,_e,et,tt)=>{if(!et.width||!et.height)return tt;const rt=Math.min(et.startX,et.startX+et.width),nt=Math.max(et.startX,et.startX+et.width),ot=Math.min(et.startY,et.startY+et.height),it=Math.max(et.startY,et.startY+et.height),st=reverseTransformPoint(rt,ot,_e),lt=reverseTransformPoint(nt,it,_e),ut={minX:st.x,minY:st.y,maxX:lt.x,maxY:lt.y};return tt.selectNodes(ct=>{const{width:dt,height:ft}=getNodeSize(ct,j),pt={minX:ct.x,minY:ct.y,maxX:ct.x+dt,maxY:ct.y+ft};return checkRectIntersect(ut,pt)})};function handleNavigate(j,_e){let et=unSelectAllEntity()(j.data.present);if(_e.node&&_e.port)et=et.updatePort(_e.node.id,_e.port.id,updateStatus(add$1(GraphPortStatus.Selected)));else if(_e.node){const tt=_e.node.id;et=et.selectNodes(rt=>rt.id===tt)}return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:et})})}const selectionReducer=(j,_e)=>{var et,tt;const rt=j.data.present,nt=j.settings.features.has(GraphFeatures.LassoSelect);switch(_e.type){case GraphCanvasEvent.Click:case GraphCanvasEvent.ResetSelection:case GraphCanvasEvent.ContextMenu:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:unSelectAllEntity()(rt)})});case GraphNodeEvent.Click:case GraphNodeEvent.ContextMenu:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:nodeSelection(_e.rawEvent,_e.node)(rt)})});case GraphCanvasEvent.SelectStart:{if(!isViewportComplete(j.viewport))return j;const ot=getRelativePoint(j.viewport.rect,_e.rawEvent);return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:unSelectAllEntity()(rt)}),selectBoxPosition:{startX:ot.x,startY:nt?0:ot.y,width:0,height:0}})}case GraphCanvasEvent.SelectMove:return j.behavior!==GraphBehavior.MultiSelect?j:Object.assign(Object.assign({},j),{selectBoxPosition:Object.assign(Object.assign({},j.selectBoxPosition),{width:j.selectBoxPosition.width+_e.dx,height:nt?(tt=(et=j.viewport.rect)===null||et===void 0?void 0:et.height)!==null&&tt!==void 0?tt:j.selectBoxPosition.height:j.selectBoxPosition.height+_e.dy})});case GraphCanvasEvent.SelectEnd:return Object.assign(Object.assign({},j),{selectBoxPosition:emptySelectBoxPosition(),data:Object.assign(Object.assign({},j.data),{present:selectNodeBySelectBox(j.settings.graphConfig,j.viewport.transformMatrix,j.selectBoxPosition,rt)})});case GraphCanvasEvent.UpdateNodeSelectionBySelectBox:return j.behavior!==GraphBehavior.MultiSelect?j:Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:selectNodeBySelectBox(j.settings.graphConfig,j.viewport.transformMatrix,j.selectBoxPosition,rt)})});case GraphCanvasEvent.Navigate:return handleNavigate(j,_e);case GraphNodeEvent.SelectAll:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:rt.selectNodes(()=>!0)})});case GraphNodeEvent.Select:{const ot=new Set(_e.nodes);return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:rt.selectNodes(it=>ot.has(it.id))})})}default:return j}};function getRectCenter(j){return{x:j.width/2,y:j.height/2}}function resetViewport(j,_e,et,tt){if(!isViewportComplete(j))return j;if(!tt.ensureNodeVisible)return Object.assign(Object.assign({},j),{transformMatrix:EMPTY_TRANSFORM_MATRIX});const{nodes:rt,groups:nt}=_e;if(rt.size===0)return Object.assign(Object.assign({},j),{transformMatrix:EMPTY_TRANSFORM_MATRIX});const ot=ft=>isRectVisible(ft,j),it=rt.map(ft=>getNodeRect(ft,et));if(it.find(ot))return Object.assign(Object.assign({},j),{transformMatrix:EMPTY_TRANSFORM_MATRIX});const lt=nt.map(ft=>getGroupRect(ft,rt,et));if(lt.find(ot))return Object.assign(Object.assign({},j),{transformMatrix:EMPTY_TRANSFORM_MATRIX});let ct=it.first();const dt=ft=>{ct.y>ft.y&&(ct=ft)};return it.forEach(dt),lt.forEach(dt),Object.assign(Object.assign({},j),{transformMatrix:[1,0,0,1,-ct.x,-ct.y]})}function zoomToFit(j,_e,et,tt){if(!isViewportComplete(j))return j;const{graphConfig:rt,nodeMaxVisibleSize:nt,nodeMinVisibleSize:ot}=et,it=getZoomFitMatrix(Object.assign(Object.assign({},tt),{data:_e,graphConfig:rt,rect:j.rect,nodeMaxVisibleSize:nt,nodeMinVisibleSize:ot}));return Object.assign(Object.assign({},j),{transformMatrix:it})}const reducer=(j,_e,et,tt)=>{var rt,nt,ot,it;const{graphConfig:st,canvasBoundaryPadding:lt,features:ut}=tt,ct=dt=>Math.max(dt,getScaleLimit(et,tt));switch(_e.type){case GraphCanvasEvent.ViewportResize:return Object.assign(Object.assign({},j),{rect:_e.viewportRect});case GraphCanvasEvent.Zoom:return isViewportComplete(j)?zoom({scale:_e.scale,anchor:(rt=_e.anchor)!==null&&rt!==void 0?rt:getRectCenter(j.rect),direction:_e.direction,limitScale:ct})(j):j;case GraphScrollBarEvent.Scroll:case GraphCanvasEvent.MouseWheelScroll:case GraphCanvasEvent.Pan:case GraphCanvasEvent.Drag:{if(!isViewportComplete(j))return j;const{transformMatrix:dt,rect:ft}=j;let{dx:pt,dy:gt}=_e;const vt=ut.has(GraphFeatures.LimitBoundary),bt=(ot=(nt=et.groups)===null||nt===void 0?void 0:nt[0])===null||ot===void 0?void 0:ot.padding;if(vt){const{minX:_t,maxX:xt,minY:yt,maxY:Et}=getOffsetLimit({data:et,graphConfig:st,rect:ft,transformMatrix:dt,canvasBoundaryPadding:lt,groupPadding:bt});pt=clamp$1(_t-dt[4],xt-dt[4],pt),gt=clamp$1(yt-dt[5],Et-dt[5],gt)}return pan(pt,gt)(j)}case GraphCanvasEvent.Pinch:{const{dx:dt,dy:ft,scale:pt,anchor:gt}=_e;return pipe(pan(dt,ft),zoom({scale:pt,anchor:gt,limitScale:ct}))(j)}case GraphMinimapEvent.Pan:return minimapPan(_e.dx,_e.dy)(j);case GraphCanvasEvent.ResetViewport:return resetViewport(j,et,st,_e);case GraphCanvasEvent.ZoomTo:return isViewportComplete(j)?zoomTo({scale:_e.scale,anchor:(it=_e.anchor)!==null&&it!==void 0?it:getRectCenter(j.rect),direction:_e.direction,limitScale:ct})(j):j;case GraphCanvasEvent.ZoomToFit:return zoomToFit(j,et,tt,_e);case GraphCanvasEvent.ScrollIntoView:if(j.rect){const{x:dt,y:ft}=transformPoint(_e.x,_e.y,j.transformMatrix);return scrollIntoView$1(dt,ft,j.rect,!0)(j)}return j;default:return j}},viewportReducer=(j,_e)=>{const et=reducer(j.viewport,_e,j.data.present,j.settings);return et===j.viewport?j:Object.assign(Object.assign({},j),{viewport:et})},builtinReducer=composeReducers([behaviorReducer,viewportReducer,nodeReducer,portReducer,edgeReducer,canvasReducer,connectingReducer,selectionReducer,contextMenuReducer].map(j=>_e=>(et,tt)=>_e(j(et,tt),tt)));function getGraphReducer(j=void 0,_e=identical){return(j?composeReducers([j,builtinReducer]):builtinReducer)(_e)}function useGraphReducer(j,_e){const et=reactExports.useMemo(()=>getGraphReducer(_e),[_e]),[tt,rt]=reactExports.useReducer(et,j,createGraphState),nt=useConst(()=>[]),ot=reactExports.useRef(tt),it=reactExports.useCallback((st,lt)=>{lt&&nt.push(lt),rt(st)},[nt]);return reactExports.useEffect(()=>{const st=ot.current;st!==tt&&(ot.current=tt,reactDomExports.unstable_batchedUpdates(()=>{nt.forEach(lt=>{try{lt(tt,st)}catch(ut){console.error(ut)}}),nt.length=0}))},[tt]),[tt,it]}class MouseMoveEventProvider{constructor(_e){this.target=_e}off(_e,et){switch(_e){case"move":this.target.removeEventListener("mousemove",et);break;case"end":this.target.removeEventListener("mouseup",et);break}return this}on(_e,et){switch(_e){case"move":this.target.addEventListener("mousemove",et);break;case"end":this.target.addEventListener("mouseup",et);break}return this}}const useGetMouseDownOnAnchor=(j,_e)=>{const et=useGraphController();return reactExports.useCallback(tt=>rt=>{rt.preventDefault(),rt.stopPropagation(),_e.trigger({type:GraphNodeEvent.ResizingStart,rawEvent:rt,node:j});const nt=new DragController(new MouseMoveEventProvider(et.getGlobalEventTarget()),defaultGetPositionFromEvent);nt.onMove=({totalDX:ot,totalDY:it,e:st})=>{_e.trigger(Object.assign({type:GraphNodeEvent.Resizing,rawEvent:st,node:j,dx:0,dy:0,dWidth:0,dHeight:0},tt(ot,it)))},nt.onEnd=({e:ot})=>{_e.trigger({type:GraphNodeEvent.ResizingEnd,rawEvent:ot,node:j})},_e.trigger({type:GraphNodeEvent.ResizingStart,rawEvent:rt,node:j}),nt.start(rt.nativeEvent)},[_e,et,j])};class PointerEventProvider{constructor(_e,et=null){this.eventEmitter=new eventemitter3Exports.EventEmitter,this.onMove=tt=>{(this.pointerId===null||this.pointerId===tt.pointerId)&&this.eventEmitter.emit("move",tt)},this.onUp=tt=>{(this.pointerId===null||this.pointerId===tt.pointerId)&&this.eventEmitter.emit("end",tt)},this.target=_e,this.pointerId=et}off(_e,et){return this.eventEmitter.off(_e,et),this.ensureRemoveListener(_e),this}on(_e,et){return this.ensureAddListener(_e),this.eventEmitter.on(_e,et),this}ensureAddListener(_e){if(!this.eventEmitter.listeners(_e).length)switch(_e){case"move":this.target.addEventListener("pointermove",this.onMove);break;case"end":this.target.addEventListener("pointerup",this.onUp);break}}ensureRemoveListener(_e){if(!this.eventEmitter.listeners(_e).length)switch(_e){case"move":this.target.removeEventListener("pointermove",this.onMove);break;case"end":this.target.removeEventListener("pointerup",this.onUp);break}}}const withSimulatedClick=(j,_e)=>({totalDX:et,totalDY:tt,e:rt})=>{var nt;const{eventChannel:ot,dragThreshold:it,containerRef:st}=j,lt=[];lt.push({type:_e,rawEvent:rt}),rt.target instanceof Node&&(!((nt=st.current)===null||nt===void 0)&&nt.contains(rt.target))&&isWithinThreshold(et,tt,it)&<.push({type:GraphCanvasEvent.Click,rawEvent:rt}),ot.batch(lt)},dragMultiSelect=(j,_e)=>{const{getPositionFromEvent:et,graphController:tt,eventChannel:rt}=_e,nt=new DragController(new MouseMoveEventProvider(tt.getGlobalEventTarget()),et);nt.onMove=({dx:ot,dy:it,e:st})=>{rt.trigger({type:GraphCanvasEvent.SelectMove,rawEvent:st,dx:ot,dy:it})},nt.onEnd=withSimulatedClick(_e,GraphCanvasEvent.SelectEnd),rt.trigger({type:GraphCanvasEvent.SelectStart,rawEvent:j}),nt.start(j)},dragPan=(j,_e)=>{const{getPositionFromEvent:et,graphController:tt,eventChannel:rt}=_e,nt=new DragController(new MouseMoveEventProvider(tt.getGlobalEventTarget()),et);nt.onMove=({dx:ot,dy:it,e:st})=>{rt.trigger({type:GraphCanvasEvent.Drag,rawEvent:st,dx:ot,dy:it})},nt.onEnd=withSimulatedClick(_e,GraphCanvasEvent.DragEnd),nt.start(j),rt.trigger({type:GraphCanvasEvent.DragStart,rawEvent:j})},onContainerMouseDown=(j,_e)=>{var et;if(j.preventDefault(),j.stopPropagation(),j.button!==MouseEventButton.Primary)return;const{canvasMouseMode:tt,isPanDisabled:rt,isMultiSelectDisabled:nt,state:ot,isLassoSelectEnable:it,graphController:st}=_e,lt=tt===CanvasMouseMode.Pan&&!j.ctrlKey&&!j.shiftKey&&!j.metaKey||((et=ot.activeKeys)===null||et===void 0?void 0:et.has(" "));!rt&<?dragPan(j.nativeEvent,_e):!nt||it&&!j.ctrlKey&&!j.metaKey?dragMultiSelect(j.nativeEvent,_e):st.canvasClickOnce=!0};function isMouseButNotLeft(j){return j.pointerType==="mouse"&&j.button!==MouseEventButton.Primary}const onNodePointerDown=(j,_e,et)=>{j.preventDefault();const{svgRef:tt,isNodesDraggable:rt,getPositionFromEvent:nt,isClickNodeToSelectDisabled:ot,eventChannel:it,dragThreshold:st,rectRef:lt,isAutoAlignEnable:ut,autoAlignThreshold:ct,graphController:dt}=et;rt&&j.stopPropagation();const ft=isMouseButNotLeft(j);if(ot||ft)return;tt.current&&tt.current.focus({preventScroll:!0});const pt=checkIsMultiSelect(j),gt=new DragNodeController(new PointerEventProvider(dt.getGlobalEventTarget(),j.pointerId),nt,lt);gt.onMove=({dx:vt,dy:bt,totalDX:_t,totalDY:xt,e:yt})=>{rt&&it.trigger({type:GraphNodeEvent.Drag,node:_e,dx:vt,dy:bt,rawEvent:yt,isVisible:!isWithinThreshold(_t,xt,st),isAutoAlignEnable:ut,autoAlignThreshold:ct})},gt.onEnd=({totalDX:vt,totalDY:bt,e:_t})=>{var xt,yt;dt.pointerId=null;const Et=isWithinThreshold(vt,bt,st);if((Et||!rt)&&(dt.nodeClickOnce=_e),it.trigger({type:GraphNodeEvent.DragEnd,node:_e,rawEvent:_t,isDragCanceled:Et}),Et){const St=new MouseEvent("click",_t);(yt=(xt=j.currentTarget)!==null&&xt!==void 0?xt:j.target)===null||yt===void 0||yt.dispatchEvent(St)}},dt.pointerId=j.pointerId,j.target instanceof Element&&j.pointerType!=="mouse"&&j.target.releasePointerCapture(j.pointerId),it.trigger({type:GraphNodeEvent.DragStart,node:_e,rawEvent:j,isMultiSelect:pt}),gt.start(j.nativeEvent)},useCanvasKeyboardEventHandlers=j=>{const{featureControl:_e,graphConfig:et,setCurHoverNode:tt,setCurHoverPort:rt,eventChannel:nt}=j,{isDeleteDisabled:ot,isPasteDisabled:it,isUndoEnabled:st}=_e;return reactExports.useMemo(()=>{const lt=new Map,ut=()=>yt=>{yt.preventDefault(),yt.stopPropagation(),!ot&&(nt.trigger({type:GraphCanvasEvent.Delete}),tt(void 0),rt(void 0))};lt.set("delete",ut()),lt.set("backspace",ut());const ct=yt=>{metaControl(yt)&&(yt.preventDefault(),yt.stopPropagation(),nt.trigger({type:GraphCanvasEvent.Copy}))};lt.set("c",ct);const dt=yt=>{if(metaControl(yt)){if(yt.preventDefault(),yt.stopPropagation(),it)return;const Et=et.getClipboard().read();Et&&nt.trigger({type:GraphCanvasEvent.Paste,data:Et})}};lt.set("v",dt);const ft=yt=>{st&&metaControl(yt)&&(yt.preventDefault(),yt.stopPropagation(),nt.trigger({type:GraphCanvasEvent.Undo}))};st&<.set("z",ft);const pt=yt=>{st&&metaControl(yt)&&(yt.preventDefault(),yt.stopPropagation(),nt.trigger({type:GraphCanvasEvent.Redo}))};st&<.set("y",pt);const gt=yt=>{metaControl(yt)&&(yt.preventDefault(),yt.stopPropagation(),nt.trigger({type:GraphNodeEvent.SelectAll}))};lt.set("a",gt);const vt=yt=>{yt.preventDefault(),yt.stopPropagation()},bt=yt=>{yt.preventDefault(),yt.stopPropagation()},_t=yt=>{yt.preventDefault(),yt.stopPropagation()},xt=yt=>{yt.preventDefault(),yt.stopPropagation()};return lt.set(" ",vt),lt.set("control",bt),lt.set("meta",_t),lt.set("shift",xt),yt=>{if(yt.repeat)return;const Et=yt.key.toLowerCase(),St=lt.get(Et);St&&St.call(null,yt)}},[nt,et,ot,it,st,tt,rt])};let prevMouseDownPortId,prevMouseDownPortTime;function useEventChannel({props:j,dispatch:_e,rectRef:et,svgRef:tt,containerRef:rt,featureControl:nt,graphConfig:ot,setFocusedWithoutMouse:it,setCurHoverNode:st,setCurHoverPort:lt,eventChannel:ut,updateViewport:ct,graphController:dt}){const{dragThreshold:ft=10,autoAlignThreshold:pt=DEFAULT_AUTO_ALIGN_THRESHOLD,getPositionFromEvent:gt=defaultGetPositionFromEvent,canvasMouseMode:vt,edgeWillAdd:bt}=j,{isNodesDraggable:_t,isAutoAlignEnable:xt,isClickNodeToSelectDisabled:yt,isPanDisabled:Et,isMultiSelectDisabled:St,isLassoSelectEnable:$t,isConnectDisabled:At,isPortHoverViewEnable:wt,isNodeEditDisabled:Ct,isA11yEnable:It}=nt,Ot=reactExports.useMemo(()=>animationFramed(_e),[_e]),Nt=useCanvasKeyboardEventHandlers({featureControl:nt,eventChannel:ut,graphConfig:ot,setCurHoverNode:st,setCurHoverPort:lt}),Pt=qt=>{const ir=dt.getData();if(ir.nodes.size>0&&tt.current){const hr=ir.head&&ir.nodes.get(ir.head);hr&&focusItem(tt,{node:hr,port:void 0},qt,ut)}},Mt=qt=>{switch(qt.type){case GraphEdgeEvent.ConnectStart:case GraphEdgeEvent.ConnectMove:case GraphEdgeEvent.ConnectEnd:case GraphEdgeEvent.ConnectNavigate:case GraphEdgeEvent.Click:case GraphEdgeEvent.MouseEnter:case GraphEdgeEvent.MouseLeave:case GraphEdgeEvent.DoubleClick:_e(qt);break;case GraphEdgeEvent.ContextMenu:qt.rawEvent.stopPropagation(),qt.rawEvent.preventDefault(),_e(qt);break}},Rt=qt=>{var ir,hr;switch(qt.type){case GraphCanvasEvent.ViewportResize:case GraphCanvasEvent.Drag:case GraphCanvasEvent.MouseWheelScroll:case GraphCanvasEvent.Zoom:case GraphCanvasEvent.Pinch:case GraphCanvasEvent.Click:case GraphCanvasEvent.SelectStart:case GraphCanvasEvent.SelectMove:case GraphCanvasEvent.SelectEnd:case GraphCanvasEvent.ResetSelection:case GraphCanvasEvent.Navigate:case GraphCanvasEvent.Paste:case GraphCanvasEvent.Undo:case GraphCanvasEvent.Redo:case GraphCanvasEvent.Delete:case GraphCanvasEvent.KeyUp:case GraphCanvasEvent.DraggingNodeFromItemPanelStart:case GraphCanvasEvent.DraggingNodeFromItemPanel:case GraphCanvasEvent.DraggingNodeFromItemPanelEnd:_e(qt);break;case GraphCanvasEvent.Copy:{const nr=filterSelectedItems(dt.getData());ot.getClipboard().write(nr)}break;case GraphCanvasEvent.KeyDown:!qt.rawEvent.repeat&&qt.rawEvent.target===qt.rawEvent.currentTarget&&!qt.rawEvent.shiftKey&&qt.rawEvent.key==="Tab"?(qt.rawEvent.preventDefault(),qt.rawEvent.stopPropagation(),it(!0),Pt(qt.rawEvent)):Nt(qt.rawEvent),_e(qt);break;case GraphCanvasEvent.MouseDown:{dt.nodeClickOnce=null,(ir=tt.current)===null||ir===void 0||ir.focus({preventScroll:!0}),it(!1);const nr=qt.rawEvent;ct(),onContainerMouseDown(nr,{state:dt.state,canvasMouseMode:vt,isPanDisabled:Et,isMultiSelectDisabled:St,isLassoSelectEnable:$t,dragThreshold:ft,containerRef:rt,getPositionFromEvent:defaultGetPositionFromEvent,eventChannel:ut,graphController:dt})}break;case GraphCanvasEvent.MouseUp:if(dt.canvasClickOnce){dt.canvasClickOnce=!1;const nr=qt.rawEvent;nr.target instanceof Node&&(!((hr=tt.current)===null||hr===void 0)&&hr.contains(nr.target))&&nr.target.nodeName==="svg"&&ut.trigger({type:GraphCanvasEvent.Click,rawEvent:qt.rawEvent})}break;case GraphCanvasEvent.ContextMenu:qt.rawEvent.preventDefault(),qt.rawEvent.stopPropagation(),_e(qt);break;case GraphCanvasEvent.MouseMove:{const nr=qt.rawEvent;dt.setMouseClientPosition({x:nr.clientX,y:nr.clientY})}break;case GraphCanvasEvent.MouseLeave:dt.unsetMouseClientPosition(),dt.canvasClickOnce=!1;break;case GraphCanvasEvent.Blur:it(!1);break}},Lt=qt=>{const{node:ir}=qt,{isNodeHoverViewEnabled:hr}=nt;switch(dt.getBehavior()){case GraphBehavior.Connecting:case GraphBehavior.Default:hr&&(st(ir.id),lt(void 0));break}_e(qt)},jt=qt=>{_e(qt),st(void 0)},Gt=qt=>{Ct||(qt.rawEvent.stopPropagation(),_e(qt))},Vt=qt=>{if(!tt||!It)return;const ir=dt.getData(),{node:hr}=qt,nr=qt.rawEvent;switch(nr.key){case"Tab":{nr.preventDefault(),nr.stopPropagation();const mr=nr.shiftKey?getPrevItem(ir,hr):getNextItem(ir,hr);focusItem(tt,mr,nr,ut)}break;case"ArrowUp":nr.preventDefault(),nr.stopPropagation(),focusUpNode(ir,hr.id,tt,dt,nr,ut);break;case"ArrowDown":nr.preventDefault(),nr.stopPropagation(),focusDownNode(ir,hr.id,tt,dt,nr,ut);break;case"ArrowLeft":nr.preventDefault(),nr.stopPropagation(),focusLeftNode(ir,hr.id,tt,dt,nr,ut);break;case"ArrowRight":nr.preventDefault(),nr.stopPropagation(),focusRightNode(ir,hr.id,tt,dt,nr,ut);break}},Yt=qt=>{var ir;switch(qt.type){case GraphNodeEvent.ResizingStart:case GraphNodeEvent.Resizing:case GraphNodeEvent.ResizingEnd:case GraphNodeEvent.DragStart:case GraphNodeEvent.Drag:case GraphNodeEvent.DragEnd:case GraphNodeEvent.SelectAll:_e(qt);break;case GraphNodeEvent.PointerMove:qt.rawEvent.pointerId===dt.pointerId&&Ot(qt);break;case GraphNodeEvent.PointerDown:{if(dt.nodeClickOnce=null,dt.getBehavior()!==GraphBehavior.Default)return;const hr=qt.rawEvent;ct(),onNodePointerDown(hr,qt.node,{svgRef:tt,rectRef:et,isNodesDraggable:_t,isAutoAlignEnable:xt,dragThreshold:ft,getPositionFromEvent:gt,isClickNodeToSelectDisabled:yt,autoAlignThreshold:pt,eventChannel:ut,graphController:dt})}break;case GraphNodeEvent.PointerEnter:Lt(qt);break;case GraphNodeEvent.PointerLeave:jt(qt);break;case GraphNodeEvent.MouseDown:dt.nodeClickOnce=null,qt.rawEvent.preventDefault(),_t&&qt.rawEvent.stopPropagation(),it(!1);break;case GraphNodeEvent.Click:if(((ir=dt.nodeClickOnce)===null||ir===void 0?void 0:ir.id)===qt.node.id){const{currentTarget:hr}=qt.rawEvent;hr instanceof SVGElement&&hr.focus({preventScroll:!0}),qt.node=dt.nodeClickOnce,_e(qt),dt.nodeClickOnce=null}else qt.intercepted=!0;break;case GraphNodeEvent.ContextMenu:qt.rawEvent.preventDefault(),qt.rawEvent.stopPropagation(),_e(qt);break;case GraphNodeEvent.DoubleClick:Gt(qt);break;case GraphNodeEvent.KeyDown:Vt(qt);break}},Xt=reactExports.useCallback(qt=>{const ir=qt.rawEvent,{node:hr,port:nr}=qt;if(it(!1),ir.stopPropagation(),ir.preventDefault(),prevMouseDownPortId=`${hr.id}:${nr.id}`,prevMouseDownPortTime=performance.now(),At||isMouseButNotLeft(ir))return;ct();const mr=dt.getGlobalEventTarget(),Ar=new DragController(new PointerEventProvider(mr,ir.pointerId),gt);Ar.onMove=({clientX:Or,clientY:wr,e:Nr})=>{ut.trigger({type:GraphEdgeEvent.ConnectMove,rawEvent:Nr,clientX:Or,clientY:wr})},Ar.onEnd=({e:Or,totalDY:wr,totalDX:Nr})=>{var Wr,Vr;const Jr=isWithinThreshold(Nr,wr,ft);if(ut.trigger({type:GraphEdgeEvent.ConnectEnd,rawEvent:Or,edgeWillAdd:bt,isCancel:Jr}),dt.pointerId=null,Jr){const Yr=new MouseEvent("click",Or);(Vr=(Wr=ir.currentTarget)!==null&&Wr!==void 0?Wr:ir.target)===null||Vr===void 0||Vr.dispatchEvent(Yr)}},ut.trigger({type:GraphEdgeEvent.ConnectStart,nodeId:hr.id,portId:nr.id,rawEvent:ir,clientPoint:{x:ir.clientX,y:ir.clientY}}),ir.target instanceof Element&&ir.pointerType!=="mouse"&&ir.target.releasePointerCapture(ir.pointerId),dt.pointerId=ir.pointerId,Ar.start(ir.nativeEvent)},[bt,ut,gt,dt,At,it,ct]),rr=reactExports.useCallback(qt=>{const ir=qt.rawEvent,{node:hr,port:nr}=qt;prevMouseDownPortId===`${hr.id}:${nr.id}`&&performance.now()-(prevMouseDownPortTime||0)<500&&(prevMouseDownPortId=void 0,prevMouseDownPortTime=void 0,ut.trigger({type:GraphPortEvent.Click,node:hr,port:nr,rawEvent:ir}))},[ut]),cr=qt=>{switch(dt.getBehavior()){case GraphBehavior.Default:lt([qt.node.id,qt.port.id]);break}wt&<([qt.node.id,qt.port.id]),qt.rawEvent.pointerId===dt.pointerId&&_e(qt)},vr=qt=>{lt(void 0),_e(qt)},Tr=qt=>{var ir,hr,nr;if(!It)return;const mr=qt.rawEvent;if(mr.altKey&&(mr.nativeEvent.code==="KeyC"||mr.key==="c")){mr.preventDefault(),mr.stopPropagation(),ut.trigger({type:GraphEdgeEvent.ConnectStart,nodeId:qt.node.id,portId:qt.port.id,rawEvent:mr});return}const Ar=dt.getData(),{node:Or,port:wr}=qt;switch(mr.key){case"Tab":if(It&&dt.getBehavior()===GraphBehavior.Connecting)mr.preventDefault(),mr.stopPropagation(),ut.trigger({type:GraphEdgeEvent.ConnectNavigate,rawEvent:mr});else{const Nr=mr.shiftKey?getPrevItem(Ar,Or,wr):getNextItem(Ar,Or,wr);focusItem(tt,Nr,mr,ut)}break;case"ArrowUp":case"ArrowLeft":mr.preventDefault(),mr.stopPropagation(),focusPrevPort((ir=Or.ports)!==null&&ir!==void 0?ir:[],Or,wr.id,tt,mr,ut);break;case"ArrowDown":case"ArrowRight":mr.preventDefault(),mr.stopPropagation(),focusNextPort((hr=Or.ports)!==null&&hr!==void 0?hr:[],Or,wr.id,tt,mr,ut);break;case"g":mr.preventDefault(),mr.stopPropagation(),goToConnectedPort(Ar,Or,wr,tt,mr,ut);break;case"Escape":dt.getBehavior()===GraphBehavior.Connecting&&(mr.preventDefault(),mr.stopPropagation(),tt.current&&((nr=findDOMElement(tt.current,{node:Or,port:wr}))===null||nr===void 0||nr.blur()));break;case"Enter":mr.preventDefault(),mr.stopPropagation(),ut.trigger({type:GraphEdgeEvent.ConnectEnd,rawEvent:mr.nativeEvent,edgeWillAdd:bt,isCancel:!1});break}},gr=qt=>{switch(qt.type){case GraphPortEvent.Click:_e(qt);break;case GraphPortEvent.PointerDown:Xt(qt);break;case GraphPortEvent.PointerUp:rr(qt);break;case GraphPortEvent.PointerEnter:cr(qt);break;case GraphPortEvent.PointerLeave:vr(qt);break;case GraphPortEvent.ContextMenu:qt.rawEvent.preventDefault(),qt.rawEvent.stopPropagation(),_e(qt);break;case GraphPortEvent.Focus:qt.rawEvent.stopPropagation(),_e(qt);break;case GraphPortEvent.Blur:dt.getBehavior()===GraphBehavior.Connecting&&ut.trigger({type:GraphEdgeEvent.ConnectEnd,rawEvent:qt.rawEvent.nativeEvent,edgeWillAdd:bt,isCancel:!0});break;case GraphPortEvent.KeyDown:Tr(qt);break}},Er=qt=>{const ir=handleBehaviorChange(dt.getBehavior(),qt);switch(dt.setBehavior(ir),Mt(qt),Rt(qt),Yt(qt),gr(qt),qt.type){case GraphMinimapEvent.Pan:case GraphScrollBarEvent.Scroll:case GraphContextMenuEvent.Open:case GraphContextMenuEvent.Close:_e(qt);break}};reactExports.useImperativeHandle(ut.listenersRef,()=>Er),reactExports.useImperativeHandle(ut.externalHandlerRef,()=>j.onEvent)}const useFeatureControl=j=>reactExports.useMemo(()=>{const _e=j.has(GraphFeatures.NodeDraggable),et=j.has(GraphFeatures.NodeResizable),tt=!j.has(GraphFeatures.AutoFit),rt=!j.has(GraphFeatures.PanCanvas),nt=!j.has(GraphFeatures.MultipleSelect),ot=j.has(GraphFeatures.LassoSelect),it=j.has(GraphFeatures.NodeHoverView),st=!j.has(GraphFeatures.ClickNodeToSelect),lt=!j.has(GraphFeatures.AddNewEdges),ut=j.has(GraphFeatures.PortHoverView),ct=!j.has(GraphFeatures.EditNode),dt=!j.has(GraphFeatures.CanvasVerticalScrollable),ft=!j.has(GraphFeatures.CanvasHorizontalScrollable),pt=j.has(GraphFeatures.A11yFeatures),gt=j.has(GraphFeatures.AutoAlign),vt=j.has(GraphFeatures.CtrlKeyZoom),bt=j.has(GraphFeatures.LimitBoundary),_t=!j.has(GraphFeatures.AutoFit),xt=j.has(GraphFeatures.EditEdge),yt=!j.has(GraphFeatures.Delete),Et=!j.has(GraphFeatures.AddNewNodes)||!j.has(GraphFeatures.AddNewEdges),St=j.has(GraphFeatures.UndoStack),$t=(!dt||!ft||!rt)&&bt&&!j.has(GraphFeatures.InvisibleScrollbar);return{isNodesDraggable:_e,isNodeResizable:et,isAutoFitDisabled:tt,isPanDisabled:rt,isMultiSelectDisabled:nt,isLassoSelectEnable:ot,isNodeHoverViewEnabled:it,isClickNodeToSelectDisabled:st,isConnectDisabled:lt,isPortHoverViewEnable:ut,isNodeEditDisabled:ct,isVerticalScrollDisabled:dt,isHorizontalScrollDisabled:ft,isA11yEnable:pt,isAutoAlignEnable:gt,isCtrlKeyZoomEnable:vt,isLimitBoundary:bt,isVirtualizationEnabled:_t,isEdgeEditable:xt,isDeleteDisabled:yt,isPasteDisabled:Et,isUndoEnabled:St,isScrollbarVisible:$t}},[j]),emptyLine=()=>({x1:0,y1:0,x2:0,y2:0,visible:!1}),Line=j=>{var _e;const{line:et,style:tt}=j,rt=Object.assign(Object.assign({strokeWidth:1},tt),{stroke:et.visible?(_e=tt==null?void 0:tt.stroke)!==null&&_e!==void 0?_e:"#ea4300":"none"});return jsxRuntimeExports.jsx("line",{className:"auto-align-hint",x1:et.x1,y1:et.y1,x2:et.x2,y2:et.y2,style:rt})},AlignmentLines=reactExports.memo(({style:j})=>{const _e=useAlignmentLines();return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:_e.map((et,tt)=>et.visible?jsxRuntimeExports.jsx(Line,{line:et,style:j},tt):null)})});AlignmentLines.displayName="AlignmentLines";const NodeFrame=j=>{var _e,et;const tt=reactExports.useContext(SlotsContext);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:(et=(_e=tt.renderNodeFrame)===null||_e===void 0?void 0:_e.call(tt,j))!==null&&et!==void 0?et:j.children})},NodeResizeHandler=j=>{var _e,et;const tt=reactExports.useContext(SlotsContext);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:(et=(_e=tt.renderNodeResizeHandler)===null||_e===void 0?void 0:_e.call(tt,j))!==null&&et!==void 0?et:j.children})},Slots={NodeFrame,NodeResizeHandler},AnimatingNodeGroup=j=>{var _e,et;const{dummyNodes:tt,graphData:rt}=j,nt=useGraphConfig(),{dWidth:ot,dHeight:it}=tt,st=(_e=tt.alignedDX)!==null&&_e!==void 0?_e:tt.dx,lt=(et=tt.alignedDY)!==null&&et!==void 0?et:tt.dy;return jsxRuntimeExports.jsx("g",{children:tt.nodes.map(ut=>{const ct=rt.nodes.get(ut.id);if(!ct)return null;const dt=ut.x+st,ft=ut.y+lt,pt=ut.width+ot,gt=ut.height+it,vt=getNodeConfig(ct,nt);return vt!=null&&vt.renderDummy?vt.renderDummy(Object.assign(Object.assign({},ct.inner),{x:dt,y:ft,width:pt,height:gt})):jsxRuntimeExports.jsx(Slots.NodeFrame,Object.assign({height:gt,width:pt,x:dt,y:ft},{children:jsxRuntimeExports.jsx("rect",{transform:`translate(${dt},${ft})`,height:gt,width:pt,stroke:defaultColors.dummyNodeStroke,strokeDasharray:"4",fill:"none"},ct.id)}),`node-frame-${ut.id}`)})})},ConnectingLine=j=>{const{autoAttachLine:_e,connectingLine:et,styles:tt}=j,rt=(tt==null?void 0:tt.stroke)||defaultColors.primaryColor,nt=(tt==null?void 0:tt.fill)||"none",ot=(tt==null?void 0:tt.strokeDasharray)||"4,4",it=et.visible?rt:"none";return jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("defs",{children:jsxRuntimeExports.jsx("marker",Object.assign({id:"markerArrow",markerWidth:"10",markerHeight:"10",refX:"6",refY:"5",orient:"auto",markerUnits:"strokeWidth"},{children:jsxRuntimeExports.jsx("path",{d:"M0,0 L6,5 L0,10",style:{stroke:it,fill:"none"}})}))}),jsxRuntimeExports.jsx("line",{x1:et.x1,y1:et.y1,x2:et.x2,y2:et.y2,style:{stroke:it,fill:nt,strokeDasharray:ot},markerEnd:"url(#markerArrow)"}),jsxRuntimeExports.jsx("path",{d:getCurvePathD(_e.x2,_e.x1,_e.y2,_e.y1),style:{stroke:_e.visible?rt:"none",fill:"none"}})]})},Connecting=reactExports.memo(j=>{const{styles:_e,graphConfig:et,viewport:tt,movingPoint:rt}=j,{sourcePort:nt,sourceNode:ot,targetPort:it,targetNode:st}=useConnectingState();if(!ot||!nt)return null;const lt=ot.getPortPosition(nt.id,et);let ut,ct=!1;if(st&&it?(ct=!0,ut=st==null?void 0:st.getPortPosition(it.id,et)):ut=lt,!lt||!ut)return null;const dt=transformPoint(lt.x,lt.y,tt.transformMatrix),ft=transformPoint(ut.x,ut.y,tt.transformMatrix),pt=rt?{x1:dt.x,y1:dt.y,x2:rt.x,y2:rt.y,visible:!ct}:emptyLine(),gt={x1:dt.x,y1:dt.y,x2:ft.x,y2:ft.y,visible:ct};return jsxRuntimeExports.jsx(ConnectingLine,{connectingLine:pt,autoAttachLine:gt,styles:_e})});Connecting.displayName="Connecting";const defaultStyle={position:"fixed",userSelect:"none"},GraphContextMenu=({state:j,onClick:_e})=>{var et,tt;const rt=reactExports.useRef(null),[nt,ot]=reactExports.useState(Object.assign({},defaultStyle));reactExports.useLayoutEffect(()=>{const ct=rt.current;if(!ct||!j.contextMenuPosition)return;const{x:dt,y:ft}=j.contextMenuPosition,{clientWidth:pt,clientHeight:gt}=document.documentElement,{width:vt,height:bt}=ct.getBoundingClientRect(),_t=Object.assign({},defaultStyle);dt+vt>=pt?_t.right=0:_t.left=dt,ft+bt>gt?_t.bottom=0:_t.top=ft,ot(_t)},[(et=j.contextMenuPosition)===null||et===void 0?void 0:et.x,(tt=j.contextMenuPosition)===null||tt===void 0?void 0:tt.y]);const it=useContextMenuConfigContext(),[st,lt]=reactExports.useState(jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{}));reactExports.useEffect(()=>{const ct=j.data.present;let dt=0,ft=0,pt=0;ct.nodes.forEach(vt=>{var bt;isSelected(vt)&&(dt+=1),(bt=vt.ports)===null||bt===void 0||bt.forEach(_t=>{isSelected(_t)&&(ft+=1)})}),ct.edges.forEach(vt=>{isSelected(vt)&&(pt+=1)});let gt;ft+dt+pt>1?gt=it.getMenu(MenuType.Multi):ft+dt+pt===0?gt=it.getMenu(MenuType.Canvas):dt===1?gt=it.getMenu(MenuType.Node):ft===1?gt=it.getMenu(MenuType.Port):gt=it.getMenu(MenuType.Edge),lt(gt)},[j.data.present,it]);const ut=reactExports.useCallback(ct=>{ct.stopPropagation(),ct.preventDefault()},[]);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:j.contextMenuPosition&&jsxRuntimeExports.jsx("div",Object.assign({ref:rt,onClick:_e,onContextMenu:ut,role:"button",style:nt},{children:st}))})},Renderer=j=>jsxRuntimeExports.jsx("rect",{height:j.height,width:j.width,fill:j.group.fill}),defaultGroup={render:Renderer},Group=j=>{var _e;const{data:et,group:tt}=j,rt=useGraphConfig(),{x:nt,y:ot,width:it,height:st}=reactExports.useMemo(()=>getGroupRect(tt,et.nodes,rt),[tt,et.nodes,rt]),lt=(_e=rt.getGroupConfig(tt))!==null&&_e!==void 0?_e:defaultGroup,ut=`group-container-${tt.id}`;return jsxRuntimeExports.jsx("g",Object.assign({"data-automation-id":ut,transform:`translate(${nt}, ${ot})`},{children:lt.render({group:tt,height:st,width:it})}),tt.id)},GraphGroupsRenderer=j=>jsxRuntimeExports.jsx("g",{children:reactExports.useMemo(()=>j.groups.map(_e=>jsxRuntimeExports.jsx(Group,{group:_e,data:j.data},_e.id)),[j.groups,j.data])}),NodeTooltips=j=>{const{node:_e,viewport:et}=j,tt=useGraphConfig();if(!_e||!has$3(GraphNodeStatus.Activated)(_e.status))return null;const rt=getNodeConfig(_e,tt);return rt!=null&&rt.renderTooltips?jsxRuntimeExports.jsx("div",Object.assign({className:"node-tooltips"},{children:rt.renderTooltips({model:_e,viewport:et})})):null},PortTooltips=j=>{const _e=useGraphConfig(),{parentNode:et,port:tt,viewport:rt}=j;if(!has$3(GraphPortStatus.Activated)(tt.status))return null;const ot=_e.getPortConfig(tt);if(!ot||!ot.renderTooltips)return null;const it=et.getPortPosition(tt.id,_e);return it?jsxRuntimeExports.jsx("div",Object.assign({className:"port-tooltips"},{children:jsxRuntimeExports.jsx(ConnectingStateContext.Consumer,{children:({sourceNode:st,sourcePort:lt})=>ot.renderTooltips&&ot.renderTooltips(Object.assign({model:tt,parentNode:et,data:j.data,anotherNode:st,anotherPort:lt,viewport:rt},it))})})):null};function useRefValue(j){const _e=reactExports.useRef(j);return reactExports.useLayoutEffect(()=>{_e.current=j},[j]),_e}const SCROLL_BAR_WIDTH=10,wrapperCommonStyle={position:"absolute",cursor:"initial"},useStyles$h=createUseStyles({verticalScrollWrapper:Object.assign(Object.assign({},wrapperCommonStyle),{height:"100%",width:SCROLL_BAR_WIDTH,top:0,right:0}),horizontalScrollWrapper:Object.assign(Object.assign({},wrapperCommonStyle),{height:SCROLL_BAR_WIDTH,width:"100%",bottom:0,left:0}),verticalScrollStyle:j=>({height:j.scrollbarLayout.verticalScrollHeight,width:"100%",backgroundColor:defaultColors.scrollbarColor,position:"absolute",top:0,right:0,transform:`translateY(${j.scrollbarLayout.verticalScrollTop}px)`}),horizontalScrollStyle:j=>({width:j.scrollbarLayout.horizontalScrollWidth-SCROLL_BAR_WIDTH,height:"100%",backgroundColor:defaultColors.scrollbarColor,position:"absolute",left:0,bottom:0,transform:`translateX(${j.scrollbarLayout.horizontalScrollLeft}px)`})}),Scrollbar=j=>{const{vertical:_e=!0,horizontal:et=!0,offsetLimit:tt,eventChannel:rt,viewport:nt}=j,ot=useGraphController(),it=getScrollbarLayout(nt,tt),st=useStyles$h({scrollbarLayout:it}),lt=useRefValue(it);function ut(dt){dt.preventDefault(),dt.stopPropagation();const{height:ft}=nt.rect,pt=new DragController(new MouseMoveEventProvider(ot.getGlobalEventTarget()),defaultGetPositionFromEvent);pt.onMove=({dy:gt,e:vt})=>{const{totalContentHeight:bt}=lt.current,_t=-(gt*bt)/ft;rt.trigger({type:GraphScrollBarEvent.Scroll,rawEvent:vt,dx:0,dy:_t})},pt.onEnd=()=>{rt.trigger({type:GraphScrollBarEvent.ScrollEnd})},pt.start(dt.nativeEvent),rt.trigger({type:GraphScrollBarEvent.ScrollStart})}function ct(dt){dt.preventDefault(),dt.stopPropagation();const{width:ft}=nt.rect,pt=new DragController(new MouseMoveEventProvider(ot.getGlobalEventTarget()),defaultGetPositionFromEvent);pt.onMove=({dx:gt,e:vt})=>{const{totalContentWidth:bt}=lt.current,_t=-(gt*bt)/ft;rt.trigger({type:GraphScrollBarEvent.Scroll,rawEvent:vt,dx:_t,dy:0})},pt.onEnd=()=>{rt.trigger({type:GraphScrollBarEvent.ScrollEnd})},pt.start(dt.nativeEvent),rt.trigger({type:GraphScrollBarEvent.ScrollStart})}return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[_e&&jsxRuntimeExports.jsx("div",Object.assign({className:st.verticalScrollWrapper},{children:jsxRuntimeExports.jsx("div",{className:st.verticalScrollStyle,onMouseDown:ut,role:"button","aria-label":"vertical scrollbar","aria-roledescription":"vertical scrollbar",id:"canvas-vertical-scrollbar"})})),et&&jsxRuntimeExports.jsx("div",Object.assign({className:st.horizontalScrollWrapper},{children:jsxRuntimeExports.jsx("div",{className:st.horizontalScrollStyle,onMouseDown:ct,role:"button","aria-label":"horizontal scrollbar","aria-roledescription":"horizontal scrollbar",id:"canvas-horizontal-scrollbar"})}))]})};function getTotalContentHeight(j,_e){const{minY:et,maxY:tt}=_e;return j+tt-et}function getTotalContentWidth(j,_e){const{minX:et,maxX:tt}=_e;return j+tt-et}function getScrollbarLayout(j,_e){const{rect:et,transformMatrix:tt}=j,rt=getTotalContentHeight(et.height,_e),nt=getTotalContentWidth(et.width,_e);return{totalContentHeight:rt,totalContentWidth:nt,verticalScrollHeight:et.height*et.height/rt,horizontalScrollWidth:et.width*et.width/nt,verticalScrollTop:(_e.maxY-tt[5])*et.height/rt,horizontalScrollLeft:(_e.maxX-tt[4])*et.width/nt}}const Transform=({matrix:j,children:_e})=>{const et=reactExports.useMemo(()=>`matrix(${j.join(" ")})`,j);return jsxRuntimeExports.jsx("g",Object.assign({transform:et},{children:_e}))};function getHintPoints(j,_e,{minX:et,minY:tt,maxX:rt,maxY:nt},ot,it,st,lt){return j.x===_e.x?{x:j.x,y:j.y<_e.y?nt:tt}:j.x<_e.x?j.y<_e.y?ot<=nt?{x:rt,y:ot}:{x:it,y:nt}:ot>=tt?{x:rt,y:ot}:{x:st,y:tt}:j.y<_e.y?it>et?{x:it,y:nt}:{x:et,y:lt}:lt>tt?{x:et,y:lt}:{x:st,y:tt}}const GraphEdge=reactExports.memo(j=>{var _e;const{edge:et,data:tt,eventChannel:rt,source:nt,target:ot,graphId:it}=j,st=useGraphConfig(),lt=useVirtualization(),{viewport:ut,renderedArea:ct,visibleArea:dt}=lt,ft=At=>wt=>{wt.persist(),rt.trigger({type:At,edge:et,rawEvent:wt})},pt=isPointInRect(ct,nt),gt=isPointInRect(ct,ot),vt=pt&>if(reactExports.useLayoutEffect(()=>{vt&<.renderedEdges.add(et.id)},[lt]),!vt)return null;const bt=st.getEdgeConfig(et);if(!bt)return Debug.warn(`invalid edge ${JSON.stringify(et)}`),null;if(!bt.render)return Debug.warn(`Missing "render" method in edge config ${JSON.stringify(et)}`),null;const _t=isPointInRect(dt,nt),xt=isPointInRect(dt,ot);let yt=bt.render({model:et,data:tt,x1:nt.x,y1:nt.y,x2:ot.x,y2:ot.y,viewport:ut});if(has$3(GraphEdgeStatus.ConnectedToSelected)(et.status)&&(!_t||!xt)){const At=getLinearFunction(nt.x,nt.y,ot.x,ot.y),wt=getLinearFunction(nt.y,nt.x,ot.y,ot.x),Ct=_t?nt:ot,It=_t?ot:nt,Ot=At(dt.maxX),Nt=wt(dt.maxY),Pt=wt(dt.minY),Mt=At(dt.minX),Rt=getHintPoints(Ct,It,dt,Ot,Nt,Pt,Mt);_t&&bt.renderWithTargetHint?yt=bt.renderWithTargetHint({model:et,data:tt,x1:nt.x,y1:nt.y,x2:Rt.x,y2:Rt.y,viewport:ut}):xt&&bt.renderWithSourceHint&&(yt=bt.renderWithSourceHint({model:et,data:tt,x1:Rt.x,y1:Rt.y,x2:ot.x,y2:ot.y,viewport:ut}))}const Et=getEdgeUid(it,et),St=`edge-container-${et.id}`,$t=(_e=et.automationId)!==null&&_e!==void 0?_e:St;return jsxRuntimeExports.jsx("g",Object.assign({id:Et,onClick:ft(GraphEdgeEvent.Click),onDoubleClick:ft(GraphEdgeEvent.DoubleClick),onMouseDown:ft(GraphEdgeEvent.MouseDown),onMouseUp:ft(GraphEdgeEvent.MouseUp),onMouseEnter:ft(GraphEdgeEvent.MouseEnter),onMouseLeave:ft(GraphEdgeEvent.MouseLeave),onContextMenu:ft(GraphEdgeEvent.ContextMenu),onMouseMove:ft(GraphEdgeEvent.MouseMove),onMouseOver:ft(GraphEdgeEvent.MouseOver),onMouseOut:ft(GraphEdgeEvent.MouseOut),onFocus:void 0,onBlur:void 0,className:St,"data-automation-id":$t},{children:yt}))});function compareEqual(j,_e){return j.node===_e.node}const EdgeChampNodeRender=reactExports.memo(j=>{var _e,et;const{node:tt,data:rt}=j,nt=__rest(j,["node","data"]),ot=useGraphConfig(),it=[],st=tt.valueCount;for(let ct=0;ct{const{data:_e,node:et}=j,tt=__rest(j,["data","node"]),rt=useGraphConfig();return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:et.values.map(nt=>{var ot,it;const st=(ot=_e.nodes.get(nt.source))===null||ot===void 0?void 0:ot.getPortPosition(nt.sourcePortId,rt),lt=(it=_e.nodes.get(nt.target))===null||it===void 0?void 0:it.getPortPosition(nt.targetPortId,rt);return st&<?reactExports.createElement(GraphEdge,Object.assign({},tt,{key:nt.id,data:_e,edge:nt,source:st,target:lt})):null})})},compareEqual);EdgeHashCollisionNodeRender.displayName="EdgeHashCollisionNodeRender";const EdgeTree=j=>{const{tree:_e}=j,et=__rest(j,["tree"]);return jsxRuntimeExports.jsx(EdgeChampNodeRender,Object.assign({},et,{node:_e.root}))},styles$1=mergeStyleSets({svg:[{position:"absolute",overflow:"hidden",top:0,left:0,width:"100%",height:"100%"},{"&:focus":{outline:"none"}}],node:{cursor:"move"},container:{position:"relative",width:"100%",height:"100%",overflow:"hidden",touchAction:"none"},buttonA11Y:{opacity:0,width:0,height:0,overflow:"hidden"},addingNodeSvg:{zIndex:1e6,position:"fixed",left:0,top:0,width:"100%",height:"100%"},moduleItem:{userSelect:"none",cursor:"pointer"},minimap:{height:320,width:320,userSelect:"none",touchAction:"none"},minimapSvg:{position:"absolute",top:0,left:0,width:"100%",height:"100%"}}),GraphNode=j=>{var _e;const{node:et,eventChannel:tt,getNodeAriaLabel:rt,viewport:nt,graphId:ot}=j,it=useGraphConfig(),st=getNodeConfig(et,it),lt=ft=>pt=>{pt.persist();const gt={type:ft,node:et,rawEvent:pt};tt.trigger(gt)},ut=ft=>{ft.persist();const pt=checkIsMultiSelect(ft);tt.trigger({type:GraphNodeEvent.Click,rawEvent:ft,isMultiSelect:pt,node:et})},ct=getNodeUid(ot,et),dt=(_e=et.automationId)!==null&&_e!==void 0?_e:getNodeAutomationId(et);return st!=null&&st.render?jsxRuntimeExports.jsx("g",Object.assign({id:ct,focusable:"true",tabIndex:0,className:styles$1.node,onPointerDown:lt(GraphNodeEvent.PointerDown),onPointerEnter:lt(GraphNodeEvent.PointerEnter),onPointerMove:lt(GraphNodeEvent.PointerMove),onPointerLeave:lt(GraphNodeEvent.PointerLeave),onPointerUp:lt(GraphNodeEvent.PointerUp),onDoubleClick:lt(GraphNodeEvent.DoubleClick),onMouseDown:lt(GraphNodeEvent.MouseDown),onMouseUp:lt(GraphNodeEvent.MouseUp),onMouseEnter:lt(GraphNodeEvent.MouseEnter),onMouseLeave:lt(GraphNodeEvent.MouseLeave),onContextMenu:lt(GraphNodeEvent.ContextMenu),onMouseMove:lt(GraphNodeEvent.MouseMove),onMouseOver:lt(GraphNodeEvent.MouseOver),onMouseOut:lt(GraphNodeEvent.MouseOut),onClick:ut,onKeyDown:lt(GraphNodeEvent.KeyDown),"aria-label":rt(et),role:"group","aria-roledescription":"node","data-automation-id":dt},{children:jsxRuntimeExports.jsx("g",Object.assign({className:"node-box-container"},{children:st.render({model:et,viewport:nt})}))})):(Debug.warn('Missing "render" method in node config'),null)},RESIZE_POINT_WIDTH=8,RESIZE_POINT_HEIGHT=8,NodeAnchor=({x:j,y:_e,cursor:et,onMouseDown:tt})=>jsxRuntimeExports.jsx(Slots.NodeResizeHandler,Object.assign({x:j,y:_e,cursor:et,onMouseDown:tt},{children:jsxRuntimeExports.jsx("rect",{x:j,y:_e,height:RESIZE_POINT_HEIGHT,width:RESIZE_POINT_WIDTH,stroke:defaultColors.controlPointColor,fill:"transparent",cursor:et,onMouseDown:tt})})),BBOX_PADDING=15,GraphNodeAnchors=j=>{var _e,et;const{node:tt,getMouseDown:rt}=j,nt=useGraphConfig(),ot=getNodeConfig(tt,nt),it=(_e=ot==null?void 0:ot.getMinWidth(tt))!==null&&_e!==void 0?_e:0,st=(et=ot==null?void 0:ot.getMinHeight(tt))!==null&&et!==void 0?et:0,lt=getRectHeight(ot,tt),ut=getRectWidth(ot,tt),ct=rt((xt,yt)=>{const Et=Math.min(xt,ut-it),St=Math.min(yt,lt-st);return{dx:+Et,dy:+St,dWidth:-Et,dHeight:-St}}),dt=rt((xt,yt)=>{const Et=Math.min(yt,lt-st);return{dy:+Et,dHeight:-Et}}),ft=rt((xt,yt)=>{const Et=Math.max(xt,it-ut),St=Math.min(yt,lt-st);return{dy:+St,dWidth:+Et,dHeight:-St}}),pt=rt(xt=>({dWidth:+Math.max(xt,it-ut)})),gt=rt((xt,yt)=>{const Et=Math.max(xt,it-ut),St=Math.max(yt,st-lt);return{dWidth:+Et,dHeight:+St}}),vt=rt((xt,yt)=>({dHeight:+Math.max(yt,st-lt)})),bt=rt((xt,yt)=>{const Et=Math.min(xt,ut-it),St=Math.max(yt,st-lt);return{dx:+Et,dWidth:-Et,dHeight:+St}}),_t=rt(xt=>{const yt=Math.min(xt,ut-it);return{dx:yt,dWidth:-yt}});return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(NodeAnchor,{cursor:"nw-resize",x:tt.x-BBOX_PADDING,y:tt.y-BBOX_PADDING-RESIZE_POINT_HEIGHT,onMouseDown:ct},"nw-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut/2-RESIZE_POINT_WIDTH/2,y:tt.y-BBOX_PADDING-RESIZE_POINT_HEIGHT,cursor:"n-resize",onMouseDown:dt},"n-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut+BBOX_PADDING-RESIZE_POINT_WIDTH,y:tt.y-BBOX_PADDING-RESIZE_POINT_HEIGHT,cursor:"ne-resize",onMouseDown:ft},"ne-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut+BBOX_PADDING-RESIZE_POINT_WIDTH,y:tt.y+lt/2-RESIZE_POINT_HEIGHT/2,cursor:"e-resize",onMouseDown:pt},"e-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut+BBOX_PADDING-RESIZE_POINT_WIDTH,y:tt.y+lt+BBOX_PADDING,cursor:"se-resize",onMouseDown:gt},"se-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut/2-RESIZE_POINT_WIDTH/2,y:tt.y+lt+BBOX_PADDING,cursor:"s-resize",onMouseDown:vt},"s-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x-BBOX_PADDING,y:tt.y+lt+BBOX_PADDING,cursor:"sw-resize",onMouseDown:bt},"sw-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x-BBOX_PADDING,y:tt.y+lt/2-RESIZE_POINT_HEIGHT/2,cursor:"w-resize",onMouseDown:_t},"w-resize")]})},GraphOneNodePorts=j=>{const{data:_e,node:et,getPortAriaLabel:tt,eventChannel:rt,viewport:nt,graphId:ot}=j,it=useGraphConfig(),st=et.ports;if(!st)return null;const lt=(ut,ct)=>dt=>{dt.persist(),rt.trigger({type:ut,node:et,port:ct,rawEvent:dt})};return jsxRuntimeExports.jsx("g",{children:st.map(ut=>{var ct;const dt=it.getPortConfig(ut);if(!dt||!dt.render)return Debug.warn(`invalid port config ${et.id}:${et.name} - ${ut.id}:${ut.name}`),null;const ft=et.getPortPosition(ut.id,it);if(!ft)return null;const pt=getPortUid(ot,et,ut),gt=(ct=ut.automationId)!==null&&ct!==void 0?ct:getPortAutomationId(ut,et);return jsxRuntimeExports.jsx("g",Object.assign({id:pt,tabIndex:0,focusable:"true",onPointerDown:lt(GraphPortEvent.PointerDown,ut),onPointerUp:lt(GraphPortEvent.PointerUp,ut),onDoubleClick:lt(GraphPortEvent.DoubleClick,ut),onMouseDown:lt(GraphPortEvent.MouseDown,ut),onMouseUp:lt(GraphPortEvent.MouseUp,ut),onContextMenu:lt(GraphPortEvent.ContextMenu,ut),onPointerEnter:lt(GraphPortEvent.PointerEnter,ut),onPointerLeave:lt(GraphPortEvent.PointerLeave,ut),onMouseMove:lt(GraphPortEvent.MouseMove,ut),onMouseOver:lt(GraphPortEvent.MouseOver,ut),onMouseOut:lt(GraphPortEvent.MouseOut,ut),onFocus:lt(GraphPortEvent.Focus,ut),onBlur:lt(GraphPortEvent.Blur,ut),onKeyDown:lt(GraphPortEvent.KeyDown,ut),onClick:lt(GraphPortEvent.Click,ut),"aria-label":tt(_e,et,ut),role:"group","aria-roledescription":"port","data-automation-id":gt},{children:jsxRuntimeExports.jsx(ConnectingStateContext.Consumer,{children:({sourceNode:vt,sourcePort:bt})=>dt==null?void 0:dt.render(Object.assign({model:ut,data:_e,parentNode:et,anotherNode:vt,anotherPort:bt,viewport:nt},ft))})}),pt)})})},GraphNodeParts=j=>{var{node:_e,isNodeResizable:et,renderNodeAnchors:tt}=j,rt=__rest(j,["node","isNodeResizable","renderNodeAnchors"]);const nt=useVirtualization(),{renderedArea:ot,viewport:it}=nt,st=useGetMouseDownOnAnchor(_e,rt.eventChannel),lt=isPointInRect(ot,_e);if(reactExports.useLayoutEffect(()=>{lt&&nt.renderedEdges.add(_e.id)},[nt]),!lt)return null;let ut;if(et&&isNodeEditing(_e)){const ct=jsxRuntimeExports.jsx(GraphNodeAnchors,{node:_e,getMouseDown:st});ut=tt?tt(_e,st,ct):ct}return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(GraphNode,Object.assign({},rt,{node:_e,viewport:it})),jsxRuntimeExports.jsx(GraphOneNodePorts,Object.assign({},rt,{node:_e,viewport:it})),ut]})},GraphNodePartsMemo=reactExports.memo(GraphNodeParts),NodeTreeNode=reactExports.memo(j=>{var{node:_e}=j,et=__rest(j,["node"]);const tt=_e.values.map(nt=>{const ot=nt[1];return jsxRuntimeExports.jsx(GraphNodePartsMemo,Object.assign({node:ot},et),ot.id)}),rt=_e.type===NodeType.Internal?_e.children.map((nt,ot)=>{const it=ot<_e.selfSize?_e.getKey(ot):"last";return jsxRuntimeExports.jsx(NodeTreeNode,Object.assign({node:nt},et),it)}):void 0;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[tt,rt]})},(j,_e)=>j.node===_e.node);NodeTreeNode.displayName="NodeTreeNode";const NodeTree=j=>{var{tree:_e}=j,et=__rest(j,["tree"]);return jsxRuntimeExports.jsx(NodeTreeNode,Object.assign({node:_e.sortedRoot},et))},NodeLayers=({data:j,renderTree:_e})=>{const et=new Set;return j.nodes.forEach(tt=>et.add(tt.layer)),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:Array.from(et.values()).sort().map(tt=>_e(j.nodes.filter(rt=>rt.layer===tt),tt))})},VirtualizationProvider=({viewport:j,isVirtualizationEnabled:_e,virtualizationDelay:et,eventChannel:tt,children:rt})=>{const nt=useRenderedArea(j,_e),ot=reactExports.useMemo(()=>getVisibleArea(j),[j]),it=reactExports.useMemo(()=>({viewport:j,renderedArea:nt,visibleArea:ot,renderedEdges:new Set,renderedNodes:new Set,timestamp:performance.now()}),[j,nt,ot]),st=useDeferredValue(it,{timeout:et}),lt=reactExports.useRef(st);return reactExports.useEffect(()=>{const ut=lt.current;lt.current=st,tt.trigger({type:GraphCanvasEvent.VirtualizationRecalculated,performanceStartTime:st.timestamp,renderedNodes:ut.renderedNodes,renderedEdges:ut.renderedEdges,previousRenderedNodes:ut.renderedNodes,previousRenderedEdges:ut.renderedEdges})},[st,tt]),jsxRuntimeExports.jsx(VirtualizationContext.Provider,Object.assign({value:st},{children:rt}))},getCursorStyle=({canvasMouseMode:j,state:_e,isPanDisabled:et,isMultiSelecting:tt})=>_e.behavior===GraphBehavior.Connecting||["meta","control"].some(ot=>_e.activeKeys.has(ot))?"initial":_e.activeKeys.has("shift")?"crosshair":j!==CanvasMouseMode.Pan?_e.activeKeys.has(" ")&&!et?"grab":tt?"crosshair":"inherit":et?"inherit":"grab";function getNodeCursor(j){return j?"move":"initial"}const getGraphStyles=(j,_e,et,tt,rt,nt)=>{var ot,it;return mergeStyleSets({svg:["react-dag-editor-svg-container",styles$1.svg,(ot=j.styles)===null||ot===void 0?void 0:ot.svg,{"& *:focus":{outline:defaultColors.outlineStyle},[`& .${styles$1.node}`]:{cursor:getNodeCursor(tt)}}],container:["react-dag-editor-container",styles$1.container,{cursor:getCursorStyle({canvasMouseMode:j.canvasMouseMode,state:_e,isPanDisabled:et,isMultiSelecting:nt}),[`&.${styles$1.container}`]:Object.assign(Object.assign({background:defaultColors.canvasBackground},j.style),(it=j.styles)===null||it===void 0?void 0:it.root)},rt&&{outline:`${defaultColors.focusOutlineColor} solid 1px`}],buttonA11y:["react-dag-editor-a11y-help-button",styles$1.buttonA11Y],node:[styles$1.node]})};function Graph(j){var _e,et,tt,rt,nt;const[ot,it]=reactExports.useState(!1),st=useGraphController(),{state:lt,dispatch:ut}=useGraphState(),ct=lt.data.present,{viewport:dt}=lt,{eventChannel:ft}=st,pt=useConst(()=>`graph-${v4()}`),gt=reactExports.useRef(null),{focusCanvasAccessKey:vt="f",zoomSensitivity:bt=.1,scrollSensitivity:_t=.5,svgRef:xt=gt,virtualizationDelay:yt=500,background:Et=null}=j,St=useGraphConfig(),$t=useFeatureControl(lt.settings.features),[At,wt]=reactExports.useState(),[Ct,It]=reactExports.useState(void 0),Ot=reactExports.useRef(null),Nt=reactExports.useRef(void 0),Pt=useUpdateViewportCallback(Nt,xt,ft);useEventChannel({props:j,dispatch:ut,rectRef:Nt,svgRef:xt,setFocusedWithoutMouse:it,containerRef:Ot,featureControl:$t,graphConfig:St,setCurHoverNode:wt,setCurHoverPort:It,updateViewport:Pt,eventChannel:ft,graphController:st}),useContainerRect(lt,xt,Ot,Pt);const{isNodesDraggable:Mt,isNodeResizable:Rt,isPanDisabled:Lt,isMultiSelectDisabled:jt,isLassoSelectEnable:Gt,isNodeEditDisabled:Vt,isVerticalScrollDisabled:Yt,isHorizontalScrollDisabled:Xt,isA11yEnable:rr,isCtrlKeyZoomEnable:cr,isVirtualizationEnabled:vr,isScrollbarVisible:Tr}=$t;useSelectBox(ut,lt.selectBoxPosition);const gr=wr=>Nr=>{Nr.persist(),ft.trigger({type:wr,rawEvent:Nr})},Er=getGraphStyles(j,lt,Lt,Mt,ot,lt.behavior===GraphBehavior.MultiSelect);useWheelHandler({containerRef:Ot,svgRef:xt,rectRef:Nt,zoomSensitivity:bt,scrollSensitivity:_t,dispatch:ut,isHorizontalScrollDisabled:Xt,isVerticalScrollDisabled:Yt,isCtrlKeyZoomEnable:cr,eventChannel:ft,graphConfig:St});const qt=reactExports.useCallback(wr=>{wr.preventDefault(),wr.stopPropagation(),ft.trigger({type:GraphContextMenuEvent.Close}),xt.current&&xt.current.focus({preventScroll:!0})},[ft,xt]),ir=reactExports.useCallback(()=>{it(!0),xt.current&&xt.current.focus({preventScroll:!0})},[xt]);useSafariScale({rectRef:Nt,svgRef:xt,eventChannel:ft});const hr=rr?vt:void 0,nr=useGraphTouchHandler(Nt,ft),mr=reactExports.useCallback((wr,Nr)=>{var Wr,Vr;return jsxRuntimeExports.jsx(NodeTree,{graphId:pt,isNodeResizable:Rt,tree:wr,data:ct,isNodeEditDisabled:Vt,eventChannel:ft,getNodeAriaLabel:(Wr=j.getNodeAriaLabel)!==null&&Wr!==void 0?Wr:defaultGetNodeAriaLabel,getPortAriaLabel:(Vr=j.getPortAriaLabel)!==null&&Vr!==void 0?Vr:defaultGetPortAriaLabel,renderNodeAnchors:j.renderNodeAnchors},Nr)},[ct,ft,pt,Vt,Rt,j.getNodeAriaLabel,j.getPortAriaLabel,j.renderNodeAnchors]);if(!isSupported()){const{onBrowserNotSupported:wr=()=>jsxRuntimeExports.jsx("p",{children:"Your browser is not supported"})}=j;return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:wr()})}const Ar=()=>{if(!Ct||!isViewportComplete(lt.viewport))return null;const[wr,Nr]=Ct,Wr=ct.nodes.get(wr);if(!Wr)return null;const Vr=Wr.getPort(Nr);return Vr?jsxRuntimeExports.jsx(PortTooltips,{port:Vr,parentNode:Wr,data:ct,viewport:lt.viewport}):null},Or=()=>{var wr;return!At||!isViewportComplete(lt.viewport)||lt.contextMenuPosition&&At===((wr=lt.data.present.nodes.find(isSelected))===null||wr===void 0?void 0:wr.id)?null:jsxRuntimeExports.jsx(NodeTooltips,{node:ct.nodes.get(At),viewport:lt.viewport})};return jsxRuntimeExports.jsxs("div",Object.assign({ref:Ot,role:"application",id:pt,className:Er.container},nr,{onDoubleClick:gr(GraphCanvasEvent.DoubleClick),onMouseDown:gr(GraphCanvasEvent.MouseDown),onMouseUp:gr(GraphCanvasEvent.MouseUp),onContextMenu:gr(GraphCanvasEvent.ContextMenu),onMouseMove:gr(GraphCanvasEvent.MouseMove),onMouseOver:gr(GraphCanvasEvent.MouseOver),onMouseOut:gr(GraphCanvasEvent.MouseOut),onFocus:gr(GraphCanvasEvent.Focus),onBlur:gr(GraphCanvasEvent.Blur),onKeyDown:gr(GraphCanvasEvent.KeyDown),onKeyUp:gr(GraphCanvasEvent.KeyUp)},{children:[jsxRuntimeExports.jsx("button",{className:Er.buttonA11y,onClick:ir,accessKey:hr,hidden:!0}),jsxRuntimeExports.jsxs("svg",Object.assign({tabIndex:0,focusable:"true",preserveAspectRatio:"xMidYMid meet",ref:xt,className:Er.svg,"data-graph-id":pt},{children:[jsxRuntimeExports.jsx("title",{children:j.title}),jsxRuntimeExports.jsx("desc",{children:j.desc}),jsxRuntimeExports.jsxs(Transform,Object.assign({matrix:dt.transformMatrix},{children:[lt.viewport.rect&&jsxRuntimeExports.jsxs(VirtualizationProvider,Object.assign({viewport:lt.viewport,isVirtualizationEnabled:vr,virtualizationDelay:yt,eventChannel:ft},{children:[Et,jsxRuntimeExports.jsx(GraphGroupsRenderer,{data:ct,groups:(_e=ct.groups)!==null&&_e!==void 0?_e:constantEmptyArray()}),jsxRuntimeExports.jsx(EdgeTree,{graphId:pt,tree:ct.edges,data:ct,eventChannel:ft}),jsxRuntimeExports.jsx(NodeLayers,{data:ct,renderTree:mr})]})),lt.dummyNodes.isVisible&&jsxRuntimeExports.jsx(AnimatingNodeGroup,{dummyNodes:lt.dummyNodes,graphData:lt.data.present}),jsxRuntimeExports.jsx(AlignmentLines,{style:(et=j.styles)===null||et===void 0?void 0:et.alignmentLine})]})),(!jt||Gt)&&jsxRuntimeExports.jsx(SelectBox,{selectBoxPosition:lt.selectBoxPosition,style:(tt=j.styles)===null||tt===void 0?void 0:tt.selectBox}),lt.connectState&&jsxRuntimeExports.jsx(Connecting,{graphConfig:St,eventChannel:ft,viewport:lt.viewport,styles:(rt=j.styles)===null||rt===void 0?void 0:rt.connectingLine,movingPoint:lt.connectState.movingPoint})]})),Tr&&isViewportComplete(lt.viewport)&&jsxRuntimeExports.jsx(Scrollbar,{viewport:lt.viewport,offsetLimit:getOffsetLimit({data:ct,graphConfig:St,rect:lt.viewport.rect,transformMatrix:dt.transformMatrix,canvasBoundaryPadding:lt.settings.canvasBoundaryPadding,groupPadding:(nt=ct.groups[0])===null||nt===void 0?void 0:nt.padding}),dispatch:ut,horizontal:!Xt,vertical:!Yt,eventChannel:ft}),jsxRuntimeExports.jsx(GraphContextMenu,{state:lt,onClick:qt,"data-automation-id":"context-menu-container"}),Or(),Ar()]}))}const el=document.createElement("div");document.body.appendChild(el);const StaticNode=j=>{const{node:_e}=j,et=useGraphConfig(),tt=getNodeConfig(_e,et);if(tt!=null&&tt.renderStatic)return jsxRuntimeExports.jsx("g",{children:tt.renderStatic({model:_e})});const rt=getRectHeight(tt,_e),nt=getRectWidth(tt,_e);return jsxRuntimeExports.jsx("rect",{transform:`translate(${_e.x}, ${_e.y})`,height:rt,width:nt,fill:defaultColors.dummyNodeStroke})},StaticNodeWithMemo=reactExports.memo(StaticNode,(j,_e)=>{const et=j.node,tt=_e.node;return et.x===tt.x&&et.y===tt.y&&et.height===tt.height&&et.width===tt.width&&et.isInSearchResults===tt.isInSearchResults&&et.isCurrentSearchResult===tt.isCurrentSearchResult}),ReadonlyNodeTreeNode=reactExports.memo(({node:j})=>{const _e=j.values.map(tt=>jsxRuntimeExports.jsx(StaticNodeWithMemo,{node:tt[1]},tt[1].id)),et=j.type===NodeType.Internal?j.children.map((tt,rt)=>{const nt=rt>>0;if(""+et!==_e||et===4294967295)return NaN;_e=et}return _e<0?ensureSize(j)+_e:_e}function returnTrue(){return!0}function wholeSlice(j,_e,et){return(j===0&&!isNeg(j)||et!==void 0&&j<=-et)&&(_e===void 0||et!==void 0&&_e>=et)}function resolveBegin(j,_e){return resolveIndex(j,_e,0)}function resolveEnd(j,_e){return resolveIndex(j,_e,_e)}function resolveIndex(j,_e,et){return j===void 0?et:isNeg(j)?_e===1/0?_e:Math.max(0,_e+j)|0:_e===void 0||_e===j?j:Math.min(_e,j)|0}function isNeg(j){return j<0||j===0&&1/j===-1/0}var IS_COLLECTION_SYMBOL="@@__IMMUTABLE_ITERABLE__@@";function isCollection(j){return!!(j&&j[IS_COLLECTION_SYMBOL])}var IS_KEYED_SYMBOL="@@__IMMUTABLE_KEYED__@@";function isKeyed(j){return!!(j&&j[IS_KEYED_SYMBOL])}var IS_INDEXED_SYMBOL="@@__IMMUTABLE_INDEXED__@@";function isIndexed(j){return!!(j&&j[IS_INDEXED_SYMBOL])}function isAssociative(j){return isKeyed(j)||isIndexed(j)}var Collection$1=function(_e){return isCollection(_e)?_e:Seq(_e)},KeyedCollection=function(j){function _e(et){return isKeyed(et)?et:KeyedSeq(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e}(Collection$1),IndexedCollection=function(j){function _e(et){return isIndexed(et)?et:IndexedSeq(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e}(Collection$1),SetCollection=function(j){function _e(et){return isCollection(et)&&!isAssociative(et)?et:SetSeq(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e}(Collection$1);Collection$1.Keyed=KeyedCollection;Collection$1.Indexed=IndexedCollection;Collection$1.Set=SetCollection;var IS_SEQ_SYMBOL="@@__IMMUTABLE_SEQ__@@";function isSeq(j){return!!(j&&j[IS_SEQ_SYMBOL])}var IS_RECORD_SYMBOL="@@__IMMUTABLE_RECORD__@@";function isRecord(j){return!!(j&&j[IS_RECORD_SYMBOL])}function isImmutable(j){return isCollection(j)||isRecord(j)}var IS_ORDERED_SYMBOL="@@__IMMUTABLE_ORDERED__@@";function isOrdered(j){return!!(j&&j[IS_ORDERED_SYMBOL])}var ITERATE_KEYS=0,ITERATE_VALUES=1,ITERATE_ENTRIES=2,REAL_ITERATOR_SYMBOL=typeof Symbol=="function"&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ITERATOR_SYMBOL=REAL_ITERATOR_SYMBOL||FAUX_ITERATOR_SYMBOL,Iterator=function(_e){this.next=_e};Iterator.prototype.toString=function(){return"[Iterator]"};Iterator.KEYS=ITERATE_KEYS;Iterator.VALUES=ITERATE_VALUES;Iterator.ENTRIES=ITERATE_ENTRIES;Iterator.prototype.inspect=Iterator.prototype.toSource=function(){return this.toString()};Iterator.prototype[ITERATOR_SYMBOL]=function(){return this};function iteratorValue(j,_e,et,tt){var rt=j===0?_e:j===1?et:[_e,et];return tt?tt.value=rt:tt={value:rt,done:!1},tt}function iteratorDone(){return{value:void 0,done:!0}}function hasIterator(j){return Array.isArray(j)?!0:!!getIteratorFn(j)}function isIterator(j){return j&&typeof j.next=="function"}function getIterator$2(j){var _e=getIteratorFn(j);return _e&&_e.call(j)}function getIteratorFn(j){var _e=j&&(REAL_ITERATOR_SYMBOL&&j[REAL_ITERATOR_SYMBOL]||j[FAUX_ITERATOR_SYMBOL]);if(typeof _e=="function")return _e}function isEntriesIterable(j){var _e=getIteratorFn(j);return _e&&_e===j.entries}function isKeysIterable(j){var _e=getIteratorFn(j);return _e&&_e===j.keys}var hasOwnProperty$4=Object.prototype.hasOwnProperty;function isArrayLike$1(j){return Array.isArray(j)||typeof j=="string"?!0:j&&typeof j=="object"&&Number.isInteger(j.length)&&j.length>=0&&(j.length===0?Object.keys(j).length===1:j.hasOwnProperty(j.length-1))}var Seq=function(j){function _e(et){return et==null?emptySequence():isImmutable(et)?et.toSeq():seqFromValue(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.toSeq=function(){return this},_e.prototype.toString=function(){return this.__toString("Seq {","}")},_e.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},_e.prototype.__iterate=function(tt,rt){var nt=this._cache;if(nt){for(var ot=nt.length,it=0;it!==ot;){var st=nt[rt?ot-++it:it++];if(tt(st[1],st[0],this)===!1)break}return it}return this.__iterateUncached(tt,rt)},_e.prototype.__iterator=function(tt,rt){var nt=this._cache;if(nt){var ot=nt.length,it=0;return new Iterator(function(){if(it===ot)return iteratorDone();var st=nt[rt?ot-++it:it++];return iteratorValue(tt,st[0],st[1])})}return this.__iteratorUncached(tt,rt)},_e}(Collection$1),KeyedSeq=function(j){function _e(et){return et==null?emptySequence().toKeyedSeq():isCollection(et)?isKeyed(et)?et.toSeq():et.fromEntrySeq():isRecord(et)?et.toSeq():keyedSeqFromValue(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.toKeyedSeq=function(){return this},_e}(Seq),IndexedSeq=function(j){function _e(et){return et==null?emptySequence():isCollection(et)?isKeyed(et)?et.entrySeq():et.toIndexedSeq():isRecord(et)?et.toSeq().entrySeq():indexedSeqFromValue(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return _e(arguments)},_e.prototype.toIndexedSeq=function(){return this},_e.prototype.toString=function(){return this.__toString("Seq [","]")},_e}(Seq),SetSeq=function(j){function _e(et){return(isCollection(et)&&!isAssociative(et)?et:IndexedSeq(et)).toSetSeq()}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return _e(arguments)},_e.prototype.toSetSeq=function(){return this},_e}(Seq);Seq.isSeq=isSeq;Seq.Keyed=KeyedSeq;Seq.Set=SetSeq;Seq.Indexed=IndexedSeq;Seq.prototype[IS_SEQ_SYMBOL]=!0;var ArraySeq=function(j){function _e(et){this._array=et,this.size=et.length}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.get=function(tt,rt){return this.has(tt)?this._array[wrapIndex(this,tt)]:rt},_e.prototype.__iterate=function(tt,rt){for(var nt=this._array,ot=nt.length,it=0;it!==ot;){var st=rt?ot-++it:it++;if(tt(nt[st],st,this)===!1)break}return it},_e.prototype.__iterator=function(tt,rt){var nt=this._array,ot=nt.length,it=0;return new Iterator(function(){if(it===ot)return iteratorDone();var st=rt?ot-++it:it++;return iteratorValue(tt,st,nt[st])})},_e}(IndexedSeq),ObjectSeq=function(j){function _e(et){var tt=Object.keys(et).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(et):[]);this._object=et,this._keys=tt,this.size=tt.length}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.get=function(tt,rt){return rt!==void 0&&!this.has(tt)?rt:this._object[tt]},_e.prototype.has=function(tt){return hasOwnProperty$4.call(this._object,tt)},_e.prototype.__iterate=function(tt,rt){for(var nt=this._object,ot=this._keys,it=ot.length,st=0;st!==it;){var lt=ot[rt?it-++st:st++];if(tt(nt[lt],lt,this)===!1)break}return st},_e.prototype.__iterator=function(tt,rt){var nt=this._object,ot=this._keys,it=ot.length,st=0;return new Iterator(function(){if(st===it)return iteratorDone();var lt=ot[rt?it-++st:st++];return iteratorValue(tt,lt,nt[lt])})},_e}(KeyedSeq);ObjectSeq.prototype[IS_ORDERED_SYMBOL]=!0;var CollectionSeq=function(j){function _e(et){this._collection=et,this.size=et.length||et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.__iterateUncached=function(tt,rt){if(rt)return this.cacheResult().__iterate(tt,rt);var nt=this._collection,ot=getIterator$2(nt),it=0;if(isIterator(ot))for(var st;!(st=ot.next()).done&&tt(st.value,it++,this)!==!1;);return it},_e.prototype.__iteratorUncached=function(tt,rt){if(rt)return this.cacheResult().__iterator(tt,rt);var nt=this._collection,ot=getIterator$2(nt);if(!isIterator(ot))return new Iterator(iteratorDone);var it=0;return new Iterator(function(){var st=ot.next();return st.done?st:iteratorValue(tt,it++,st.value)})},_e}(IndexedSeq),EMPTY_SEQ;function emptySequence(){return EMPTY_SEQ||(EMPTY_SEQ=new ArraySeq([]))}function keyedSeqFromValue(j){var _e=maybeIndexedSeqFromValue(j);if(_e)return _e.fromEntrySeq();if(typeof j=="object")return new ObjectSeq(j);throw new TypeError("Expected Array or collection object of [k, v] entries, or keyed object: "+j)}function indexedSeqFromValue(j){var _e=maybeIndexedSeqFromValue(j);if(_e)return _e;throw new TypeError("Expected Array or collection object of values: "+j)}function seqFromValue(j){var _e=maybeIndexedSeqFromValue(j);if(_e)return isEntriesIterable(j)?_e.fromEntrySeq():isKeysIterable(j)?_e.toSetSeq():_e;if(typeof j=="object")return new ObjectSeq(j);throw new TypeError("Expected Array or collection object of values, or keyed object: "+j)}function maybeIndexedSeqFromValue(j){return isArrayLike$1(j)?new ArraySeq(j):hasIterator(j)?new CollectionSeq(j):void 0}var IS_MAP_SYMBOL="@@__IMMUTABLE_MAP__@@";function isMap(j){return!!(j&&j[IS_MAP_SYMBOL])}function isOrderedMap(j){return isMap(j)&&isOrdered(j)}function isValueObject(j){return!!(j&&typeof j.equals=="function"&&typeof j.hashCode=="function")}function is(j,_e){if(j===_e||j!==j&&_e!==_e)return!0;if(!j||!_e)return!1;if(typeof j.valueOf=="function"&&typeof _e.valueOf=="function"){if(j=j.valueOf(),_e=_e.valueOf(),j===_e||j!==j&&_e!==_e)return!0;if(!j||!_e)return!1}return!!(isValueObject(j)&&isValueObject(_e)&&j.equals(_e))}var imul=typeof Math.imul=="function"&&Math.imul(4294967295,2)===-2?Math.imul:function(_e,et){_e|=0,et|=0;var tt=_e&65535,rt=et&65535;return tt*rt+((_e>>>16)*rt+tt*(et>>>16)<<16>>>0)|0};function smi(j){return j>>>1&1073741824|j&3221225471}var defaultValueOf=Object.prototype.valueOf;function hash$1(j){if(j==null)return hashNullish(j);if(typeof j.hashCode=="function")return smi(j.hashCode(j));var _e=valueOf(j);if(_e==null)return hashNullish(_e);switch(typeof _e){case"boolean":return _e?1108378657:1108378656;case"number":return hashNumber(_e);case"string":return _e.length>STRING_HASH_CACHE_MIN_STRLEN?cachedHashString(_e):hashString(_e);case"object":case"function":return hashJSObj(_e);case"symbol":return hashSymbol(_e);default:if(typeof _e.toString=="function")return hashString(_e.toString());throw new Error("Value type "+typeof _e+" cannot be hashed.")}}function hashNullish(j){return j===null?1108378658:1108378659}function hashNumber(j){if(j!==j||j===1/0)return 0;var _e=j|0;for(_e!==j&&(_e^=j*4294967295);j>4294967295;)j/=4294967295,_e^=j;return smi(_e)}function cachedHashString(j){var _e=stringHashCache[j];return _e===void 0&&(_e=hashString(j),STRING_HASH_CACHE_SIZE===STRING_HASH_CACHE_MAX_SIZE&&(STRING_HASH_CACHE_SIZE=0,stringHashCache={}),STRING_HASH_CACHE_SIZE++,stringHashCache[j]=_e),_e}function hashString(j){for(var _e=0,et=0;et0)switch(j.nodeType){case 1:return j.uniqueID;case 9:return j.documentElement&&j.documentElement.uniqueID}}function valueOf(j){return j.valueOf!==defaultValueOf&&typeof j.valueOf=="function"?j.valueOf(j):j}function nextHash(){var j=++_objHashUID;return _objHashUID&1073741824&&(_objHashUID=0),j}var usingWeakMap=typeof WeakMap=="function",weakMap;usingWeakMap&&(weakMap=new WeakMap);var symbolMap=Object.create(null),_objHashUID=0,UID_HASH_KEY="__immutablehash__";typeof Symbol=="function"&&(UID_HASH_KEY=Symbol(UID_HASH_KEY));var STRING_HASH_CACHE_MIN_STRLEN=16,STRING_HASH_CACHE_MAX_SIZE=255,STRING_HASH_CACHE_SIZE=0,stringHashCache={},ToKeyedSequence=function(j){function _e(et,tt){this._iter=et,this._useKeys=tt,this.size=et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.get=function(tt,rt){return this._iter.get(tt,rt)},_e.prototype.has=function(tt){return this._iter.has(tt)},_e.prototype.valueSeq=function(){return this._iter.valueSeq()},_e.prototype.reverse=function(){var tt=this,rt=reverseFactory(this,!0);return this._useKeys||(rt.valueSeq=function(){return tt._iter.toSeq().reverse()}),rt},_e.prototype.map=function(tt,rt){var nt=this,ot=mapFactory(this,tt,rt);return this._useKeys||(ot.valueSeq=function(){return nt._iter.toSeq().map(tt,rt)}),ot},_e.prototype.__iterate=function(tt,rt){var nt=this;return this._iter.__iterate(function(ot,it){return tt(ot,it,nt)},rt)},_e.prototype.__iterator=function(tt,rt){return this._iter.__iterator(tt,rt)},_e}(KeyedSeq);ToKeyedSequence.prototype[IS_ORDERED_SYMBOL]=!0;var ToIndexedSequence=function(j){function _e(et){this._iter=et,this.size=et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.includes=function(tt){return this._iter.includes(tt)},_e.prototype.__iterate=function(tt,rt){var nt=this,ot=0;return rt&&ensureSize(this),this._iter.__iterate(function(it){return tt(it,rt?nt.size-++ot:ot++,nt)},rt)},_e.prototype.__iterator=function(tt,rt){var nt=this,ot=this._iter.__iterator(ITERATE_VALUES,rt),it=0;return rt&&ensureSize(this),new Iterator(function(){var st=ot.next();return st.done?st:iteratorValue(tt,rt?nt.size-++it:it++,st.value,st)})},_e}(IndexedSeq),ToSetSequence=function(j){function _e(et){this._iter=et,this.size=et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.has=function(tt){return this._iter.includes(tt)},_e.prototype.__iterate=function(tt,rt){var nt=this;return this._iter.__iterate(function(ot){return tt(ot,ot,nt)},rt)},_e.prototype.__iterator=function(tt,rt){var nt=this._iter.__iterator(ITERATE_VALUES,rt);return new Iterator(function(){var ot=nt.next();return ot.done?ot:iteratorValue(tt,ot.value,ot.value,ot)})},_e}(SetSeq),FromEntriesSequence=function(j){function _e(et){this._iter=et,this.size=et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.entrySeq=function(){return this._iter.toSeq()},_e.prototype.__iterate=function(tt,rt){var nt=this;return this._iter.__iterate(function(ot){if(ot){validateEntry(ot);var it=isCollection(ot);return tt(it?ot.get(1):ot[1],it?ot.get(0):ot[0],nt)}},rt)},_e.prototype.__iterator=function(tt,rt){var nt=this._iter.__iterator(ITERATE_VALUES,rt);return new Iterator(function(){for(;;){var ot=nt.next();if(ot.done)return ot;var it=ot.value;if(it){validateEntry(it);var st=isCollection(it);return iteratorValue(tt,st?it.get(0):it[0],st?it.get(1):it[1],ot)}}})},_e}(KeyedSeq);ToIndexedSequence.prototype.cacheResult=ToKeyedSequence.prototype.cacheResult=ToSetSequence.prototype.cacheResult=FromEntriesSequence.prototype.cacheResult=cacheResultThrough;function flipFactory(j){var _e=makeSequence(j);return _e._iter=j,_e.size=j.size,_e.flip=function(){return j},_e.reverse=function(){var et=j.reverse.apply(this);return et.flip=function(){return j.reverse()},et},_e.has=function(et){return j.includes(et)},_e.includes=function(et){return j.has(et)},_e.cacheResult=cacheResultThrough,_e.__iterateUncached=function(et,tt){var rt=this;return j.__iterate(function(nt,ot){return et(ot,nt,rt)!==!1},tt)},_e.__iteratorUncached=function(et,tt){if(et===ITERATE_ENTRIES){var rt=j.__iterator(et,tt);return new Iterator(function(){var nt=rt.next();if(!nt.done){var ot=nt.value[0];nt.value[0]=nt.value[1],nt.value[1]=ot}return nt})}return j.__iterator(et===ITERATE_VALUES?ITERATE_KEYS:ITERATE_VALUES,tt)},_e}function mapFactory(j,_e,et){var tt=makeSequence(j);return tt.size=j.size,tt.has=function(rt){return j.has(rt)},tt.get=function(rt,nt){var ot=j.get(rt,NOT_SET);return ot===NOT_SET?nt:_e.call(et,ot,rt,j)},tt.__iterateUncached=function(rt,nt){var ot=this;return j.__iterate(function(it,st,lt){return rt(_e.call(et,it,st,lt),st,ot)!==!1},nt)},tt.__iteratorUncached=function(rt,nt){var ot=j.__iterator(ITERATE_ENTRIES,nt);return new Iterator(function(){var it=ot.next();if(it.done)return it;var st=it.value,lt=st[0];return iteratorValue(rt,lt,_e.call(et,st[1],lt,j),it)})},tt}function reverseFactory(j,_e){var et=this,tt=makeSequence(j);return tt._iter=j,tt.size=j.size,tt.reverse=function(){return j},j.flip&&(tt.flip=function(){var rt=flipFactory(j);return rt.reverse=function(){return j.flip()},rt}),tt.get=function(rt,nt){return j.get(_e?rt:-1-rt,nt)},tt.has=function(rt){return j.has(_e?rt:-1-rt)},tt.includes=function(rt){return j.includes(rt)},tt.cacheResult=cacheResultThrough,tt.__iterate=function(rt,nt){var ot=this,it=0;return nt&&ensureSize(j),j.__iterate(function(st,lt){return rt(st,_e?lt:nt?ot.size-++it:it++,ot)},!nt)},tt.__iterator=function(rt,nt){var ot=0;nt&&ensureSize(j);var it=j.__iterator(ITERATE_ENTRIES,!nt);return new Iterator(function(){var st=it.next();if(st.done)return st;var lt=st.value;return iteratorValue(rt,_e?lt[0]:nt?et.size-++ot:ot++,lt[1],st)})},tt}function filterFactory(j,_e,et,tt){var rt=makeSequence(j);return tt&&(rt.has=function(nt){var ot=j.get(nt,NOT_SET);return ot!==NOT_SET&&!!_e.call(et,ot,nt,j)},rt.get=function(nt,ot){var it=j.get(nt,NOT_SET);return it!==NOT_SET&&_e.call(et,it,nt,j)?it:ot}),rt.__iterateUncached=function(nt,ot){var it=this,st=0;return j.__iterate(function(lt,ut,ct){if(_e.call(et,lt,ut,ct))return st++,nt(lt,tt?ut:st-1,it)},ot),st},rt.__iteratorUncached=function(nt,ot){var it=j.__iterator(ITERATE_ENTRIES,ot),st=0;return new Iterator(function(){for(;;){var lt=it.next();if(lt.done)return lt;var ut=lt.value,ct=ut[0],dt=ut[1];if(_e.call(et,dt,ct,j))return iteratorValue(nt,tt?ct:st++,dt,lt)}})},rt}function countByFactory(j,_e,et){var tt=Map$1().asMutable();return j.__iterate(function(rt,nt){tt.update(_e.call(et,rt,nt,j),0,function(ot){return ot+1})}),tt.asImmutable()}function groupByFactory(j,_e,et){var tt=isKeyed(j),rt=(isOrdered(j)?OrderedMap():Map$1()).asMutable();j.__iterate(function(ot,it){rt.update(_e.call(et,ot,it,j),function(st){return st=st||[],st.push(tt?[it,ot]:ot),st})});var nt=collectionClass(j);return rt.map(function(ot){return reify(j,nt(ot))}).asImmutable()}function partitionFactory(j,_e,et){var tt=isKeyed(j),rt=[[],[]];j.__iterate(function(ot,it){rt[_e.call(et,ot,it,j)?1:0].push(tt?[it,ot]:ot)});var nt=collectionClass(j);return rt.map(function(ot){return reify(j,nt(ot))})}function sliceFactory(j,_e,et,tt){var rt=j.size;if(wholeSlice(_e,et,rt))return j;var nt=resolveBegin(_e,rt),ot=resolveEnd(et,rt);if(nt!==nt||ot!==ot)return sliceFactory(j.toSeq().cacheResult(),_e,et,tt);var it=ot-nt,st;it===it&&(st=it<0?0:it);var lt=makeSequence(j);return lt.size=st===0?st:j.size&&st||void 0,!tt&&isSeq(j)&&st>=0&&(lt.get=function(ut,ct){return ut=wrapIndex(this,ut),ut>=0&&utst)return iteratorDone();var gt=dt.next();return tt||ut===ITERATE_VALUES||gt.done?gt:ut===ITERATE_KEYS?iteratorValue(ut,pt-1,void 0,gt):iteratorValue(ut,pt-1,gt.value[1],gt)})},lt}function takeWhileFactory(j,_e,et){var tt=makeSequence(j);return tt.__iterateUncached=function(rt,nt){var ot=this;if(nt)return this.cacheResult().__iterate(rt,nt);var it=0;return j.__iterate(function(st,lt,ut){return _e.call(et,st,lt,ut)&&++it&&rt(st,lt,ot)}),it},tt.__iteratorUncached=function(rt,nt){var ot=this;if(nt)return this.cacheResult().__iterator(rt,nt);var it=j.__iterator(ITERATE_ENTRIES,nt),st=!0;return new Iterator(function(){if(!st)return iteratorDone();var lt=it.next();if(lt.done)return lt;var ut=lt.value,ct=ut[0],dt=ut[1];return _e.call(et,dt,ct,ot)?rt===ITERATE_ENTRIES?lt:iteratorValue(rt,ct,dt,lt):(st=!1,iteratorDone())})},tt}function skipWhileFactory(j,_e,et,tt){var rt=makeSequence(j);return rt.__iterateUncached=function(nt,ot){var it=this;if(ot)return this.cacheResult().__iterate(nt,ot);var st=!0,lt=0;return j.__iterate(function(ut,ct,dt){if(!(st&&(st=_e.call(et,ut,ct,dt))))return lt++,nt(ut,tt?ct:lt-1,it)}),lt},rt.__iteratorUncached=function(nt,ot){var it=this;if(ot)return this.cacheResult().__iterator(nt,ot);var st=j.__iterator(ITERATE_ENTRIES,ot),lt=!0,ut=0;return new Iterator(function(){var ct,dt,ft;do{if(ct=st.next(),ct.done)return tt||nt===ITERATE_VALUES?ct:nt===ITERATE_KEYS?iteratorValue(nt,ut++,void 0,ct):iteratorValue(nt,ut++,ct.value[1],ct);var pt=ct.value;dt=pt[0],ft=pt[1],lt&&(lt=_e.call(et,ft,dt,it))}while(lt);return nt===ITERATE_ENTRIES?ct:iteratorValue(nt,dt,ft,ct)})},rt}function concatFactory(j,_e){var et=isKeyed(j),tt=[j].concat(_e).map(function(ot){return isCollection(ot)?et&&(ot=KeyedCollection(ot)):ot=et?keyedSeqFromValue(ot):indexedSeqFromValue(Array.isArray(ot)?ot:[ot]),ot}).filter(function(ot){return ot.size!==0});if(tt.length===0)return j;if(tt.length===1){var rt=tt[0];if(rt===j||et&&isKeyed(rt)||isIndexed(j)&&isIndexed(rt))return rt}var nt=new ArraySeq(tt);return et?nt=nt.toKeyedSeq():isIndexed(j)||(nt=nt.toSetSeq()),nt=nt.flatten(!0),nt.size=tt.reduce(function(ot,it){if(ot!==void 0){var st=it.size;if(st!==void 0)return ot+st}},0),nt}function flattenFactory(j,_e,et){var tt=makeSequence(j);return tt.__iterateUncached=function(rt,nt){if(nt)return this.cacheResult().__iterate(rt,nt);var ot=0,it=!1;function st(lt,ut){lt.__iterate(function(ct,dt){return(!_e||ut<_e)&&isCollection(ct)?st(ct,ut+1):(ot++,rt(ct,et?dt:ot-1,tt)===!1&&(it=!0)),!it},nt)}return st(j,0),ot},tt.__iteratorUncached=function(rt,nt){if(nt)return this.cacheResult().__iterator(rt,nt);var ot=j.__iterator(rt,nt),it=[],st=0;return new Iterator(function(){for(;ot;){var lt=ot.next();if(lt.done!==!1){ot=it.pop();continue}var ut=lt.value;if(rt===ITERATE_ENTRIES&&(ut=ut[1]),(!_e||it.length<_e)&&isCollection(ut))it.push(ot),ot=ut.__iterator(rt,nt);else return et?lt:iteratorValue(rt,st++,ut,lt)}return iteratorDone()})},tt}function flatMapFactory(j,_e,et){var tt=collectionClass(j);return j.toSeq().map(function(rt,nt){return tt(_e.call(et,rt,nt,j))}).flatten(!0)}function interposeFactory(j,_e){var et=makeSequence(j);return et.size=j.size&&j.size*2-1,et.__iterateUncached=function(tt,rt){var nt=this,ot=0;return j.__iterate(function(it){return(!ot||tt(_e,ot++,nt)!==!1)&&tt(it,ot++,nt)!==!1},rt),ot},et.__iteratorUncached=function(tt,rt){var nt=j.__iterator(ITERATE_VALUES,rt),ot=0,it;return new Iterator(function(){return(!it||ot%2)&&(it=nt.next(),it.done)?it:ot%2?iteratorValue(tt,ot++,_e):iteratorValue(tt,ot++,it.value,it)})},et}function sortFactory(j,_e,et){_e||(_e=defaultComparator);var tt=isKeyed(j),rt=0,nt=j.toSeq().map(function(ot,it){return[it,ot,rt++,et?et(ot,it,j):ot]}).valueSeq().toArray();return nt.sort(function(ot,it){return _e(ot[3],it[3])||ot[2]-it[2]}).forEach(tt?function(ot,it){nt[it].length=2}:function(ot,it){nt[it]=ot[1]}),tt?KeyedSeq(nt):isIndexed(j)?IndexedSeq(nt):SetSeq(nt)}function maxFactory(j,_e,et){if(_e||(_e=defaultComparator),et){var tt=j.toSeq().map(function(rt,nt){return[rt,et(rt,nt,j)]}).reduce(function(rt,nt){return maxCompare(_e,rt[1],nt[1])?nt:rt});return tt&&tt[0]}return j.reduce(function(rt,nt){return maxCompare(_e,rt,nt)?nt:rt})}function maxCompare(j,_e,et){var tt=j(et,_e);return tt===0&&et!==_e&&(et==null||et!==et)||tt>0}function zipWithFactory(j,_e,et,tt){var rt=makeSequence(j),nt=new ArraySeq(et).map(function(ot){return ot.size});return rt.size=tt?nt.max():nt.min(),rt.__iterate=function(ot,it){for(var st=this.__iterator(ITERATE_VALUES,it),lt,ut=0;!(lt=st.next()).done&&ot(lt.value,ut++,this)!==!1;);return ut},rt.__iteratorUncached=function(ot,it){var st=et.map(function(ct){return ct=Collection$1(ct),getIterator$2(it?ct.reverse():ct)}),lt=0,ut=!1;return new Iterator(function(){var ct;return ut||(ct=st.map(function(dt){return dt.next()}),ut=tt?ct.every(function(dt){return dt.done}):ct.some(function(dt){return dt.done})),ut?iteratorDone():iteratorValue(ot,lt++,_e.apply(null,ct.map(function(dt){return dt.value})))})},rt}function reify(j,_e){return j===_e?j:isSeq(j)?_e:j.constructor(_e)}function validateEntry(j){if(j!==Object(j))throw new TypeError("Expected [K, V] tuple: "+j)}function collectionClass(j){return isKeyed(j)?KeyedCollection:isIndexed(j)?IndexedCollection:SetCollection}function makeSequence(j){return Object.create((isKeyed(j)?KeyedSeq:isIndexed(j)?IndexedSeq:SetSeq).prototype)}function cacheResultThrough(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):Seq.prototype.cacheResult.call(this)}function defaultComparator(j,_e){return j===void 0&&_e===void 0?0:j===void 0?1:_e===void 0?-1:j>_e?1:j<_e?-1:0}function arrCopy(j,_e){_e=_e||0;for(var et=Math.max(0,j.length-_e),tt=new Array(et),rt=0;rt0;)_e[et]=arguments[et+1];if(typeof j!="function")throw new TypeError("Invalid merger function: "+j);return mergeIntoKeyedWith(this,_e,j)}function mergeIntoKeyedWith(j,_e,et){for(var tt=[],rt=0;rt<_e.length;rt++){var nt=KeyedCollection(_e[rt]);nt.size!==0&&tt.push(nt)}return tt.length===0?j:j.toSeq().size===0&&!j.__ownerID&&tt.length===1?j.constructor(tt[0]):j.withMutations(function(ot){for(var it=et?function(lt,ut){update$1(ot,ut,NOT_SET,function(ct){return ct===NOT_SET?lt:et(ct,lt,ut)})}:function(lt,ut){ot.set(ut,lt)},st=0;st0;)_e[et]=arguments[et+1];return mergeDeepWithSources(this,_e,j)}function mergeIn(j){for(var _e=[],et=arguments.length-1;et-- >0;)_e[et]=arguments[et+1];return updateIn$1(this,j,emptyMap(),function(tt){return mergeWithSources(tt,_e)})}function mergeDeepIn(j){for(var _e=[],et=arguments.length-1;et-- >0;)_e[et]=arguments[et+1];return updateIn$1(this,j,emptyMap(),function(tt){return mergeDeepWithSources(tt,_e)})}function withMutations(j){var _e=this.asMutable();return j(_e),_e.wasAltered()?_e.__ensureOwner(this.__ownerID):this}function asMutable(){return this.__ownerID?this:this.__ensureOwner(new OwnerID)}function asImmutable(){return this.__ensureOwner()}function wasAltered(){return this.__altered}var Map$1=function(j){function _e(et){return et==null?emptyMap():isMap(et)&&!isOrdered(et)?et:emptyMap().withMutations(function(tt){var rt=j(et);assertNotInfinite(rt.size),rt.forEach(function(nt,ot){return tt.set(ot,nt)})})}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){for(var tt=[],rt=arguments.length;rt--;)tt[rt]=arguments[rt];return emptyMap().withMutations(function(nt){for(var ot=0;ot=tt.length)throw new Error("Missing value for key: "+tt[ot]);nt.set(tt[ot],tt[ot+1])}})},_e.prototype.toString=function(){return this.__toString("Map {","}")},_e.prototype.get=function(tt,rt){return this._root?this._root.get(0,void 0,tt,rt):rt},_e.prototype.set=function(tt,rt){return updateMap(this,tt,rt)},_e.prototype.remove=function(tt){return updateMap(this,tt,NOT_SET)},_e.prototype.deleteAll=function(tt){var rt=Collection$1(tt);return rt.size===0?this:this.withMutations(function(nt){rt.forEach(function(ot){return nt.remove(ot)})})},_e.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):emptyMap()},_e.prototype.sort=function(tt){return OrderedMap(sortFactory(this,tt))},_e.prototype.sortBy=function(tt,rt){return OrderedMap(sortFactory(this,rt,tt))},_e.prototype.map=function(tt,rt){var nt=this;return this.withMutations(function(ot){ot.forEach(function(it,st){ot.set(st,tt.call(rt,it,st,nt))})})},_e.prototype.__iterator=function(tt,rt){return new MapIterator(this,tt,rt)},_e.prototype.__iterate=function(tt,rt){var nt=this,ot=0;return this._root&&this._root.iterate(function(it){return ot++,tt(it[1],it[0],nt)},rt),ot},_e.prototype.__ensureOwner=function(tt){return tt===this.__ownerID?this:tt?makeMap(this.size,this._root,tt,this.__hash):this.size===0?emptyMap():(this.__ownerID=tt,this.__altered=!1,this)},_e}(KeyedCollection);Map$1.isMap=isMap;var MapPrototype=Map$1.prototype;MapPrototype[IS_MAP_SYMBOL]=!0;MapPrototype[DELETE]=MapPrototype.remove;MapPrototype.removeAll=MapPrototype.deleteAll;MapPrototype.setIn=setIn;MapPrototype.removeIn=MapPrototype.deleteIn=deleteIn;MapPrototype.update=update;MapPrototype.updateIn=updateIn;MapPrototype.merge=MapPrototype.concat=merge$1$1;MapPrototype.mergeWith=mergeWith$1;MapPrototype.mergeDeep=mergeDeep;MapPrototype.mergeDeepWith=mergeDeepWith;MapPrototype.mergeIn=mergeIn;MapPrototype.mergeDeepIn=mergeDeepIn;MapPrototype.withMutations=withMutations;MapPrototype.wasAltered=wasAltered;MapPrototype.asImmutable=asImmutable;MapPrototype["@@transducer/init"]=MapPrototype.asMutable=asMutable;MapPrototype["@@transducer/step"]=function(j,_e){return j.set(_e[0],_e[1])};MapPrototype["@@transducer/result"]=function(j){return j.asImmutable()};var ArrayMapNode=function(_e,et){this.ownerID=_e,this.entries=et};ArrayMapNode.prototype.get=function(_e,et,tt,rt){for(var nt=this.entries,ot=0,it=nt.length;ot=MAX_ARRAY_MAP_SIZE)return createNodes(_e,lt,rt,nt);var ft=_e&&_e===this.ownerID,pt=ft?lt:arrCopy(lt);return dt?st?ut===ct-1?pt.pop():pt[ut]=pt.pop():pt[ut]=[rt,nt]:pt.push([rt,nt]),ft?(this.entries=pt,this):new ArrayMapNode(_e,pt)}};var BitmapIndexedNode=function(_e,et,tt){this.ownerID=_e,this.bitmap=et,this.nodes=tt};BitmapIndexedNode.prototype.get=function(_e,et,tt,rt){et===void 0&&(et=hash$1(tt));var nt=1<<((_e===0?et:et>>>_e)&MASK),ot=this.bitmap;return ot&nt?this.nodes[popCount(ot&nt-1)].get(_e+SHIFT,et,tt,rt):rt};BitmapIndexedNode.prototype.update=function(_e,et,tt,rt,nt,ot,it){tt===void 0&&(tt=hash$1(rt));var st=(et===0?tt:tt>>>et)&MASK,lt=1<=MAX_BITMAP_INDEXED_SIZE)return expandNodes(_e,ft,ut,st,gt);if(ct&&!gt&&ft.length===2&&isLeafNode(ft[dt^1]))return ft[dt^1];if(ct&>&&ft.length===1&&isLeafNode(gt))return gt;var vt=_e&&_e===this.ownerID,bt=ct?gt?ut:ut^lt:ut|lt,_t=ct?gt?setAt(ft,dt,gt,vt):spliceOut(ft,dt,vt):spliceIn(ft,dt,gt,vt);return vt?(this.bitmap=bt,this.nodes=_t,this):new BitmapIndexedNode(_e,bt,_t)};var HashArrayMapNode=function(_e,et,tt){this.ownerID=_e,this.count=et,this.nodes=tt};HashArrayMapNode.prototype.get=function(_e,et,tt,rt){et===void 0&&(et=hash$1(tt));var nt=(_e===0?et:et>>>_e)&MASK,ot=this.nodes[nt];return ot?ot.get(_e+SHIFT,et,tt,rt):rt};HashArrayMapNode.prototype.update=function(_e,et,tt,rt,nt,ot,it){tt===void 0&&(tt=hash$1(rt));var st=(et===0?tt:tt>>>et)&MASK,lt=nt===NOT_SET,ut=this.nodes,ct=ut[st];if(lt&&!ct)return this;var dt=updateNode(ct,_e,et+SHIFT,tt,rt,nt,ot,it);if(dt===ct)return this;var ft=this.count;if(!ct)ft++;else if(!dt&&(ft--,ft>>et)&MASK,ot=(et===0?tt:tt>>>et)&MASK,it,st=nt===ot?[mergeIntoNode(j,_e,et+SHIFT,tt,rt)]:(it=new ValueNode(_e,tt,rt),nt>>=1)ot[it]=et&1?_e[nt++]:void 0;return ot[tt]=rt,new HashArrayMapNode(j,nt+1,ot)}function popCount(j){return j-=j>>1&1431655765,j=(j&858993459)+(j>>2&858993459),j=j+(j>>4)&252645135,j+=j>>8,j+=j>>16,j&127}function setAt(j,_e,et,tt){var rt=tt?j:arrCopy(j);return rt[_e]=et,rt}function spliceIn(j,_e,et,tt){var rt=j.length+1;if(tt&&_e+1===rt)return j[_e]=et,j;for(var nt=new Array(rt),ot=0,it=0;it0&&nt=0&&tt>>et&MASK;if(rt>=this.array.length)return new VNode([],_e);var nt=rt===0,ot;if(et>0){var it=this.array[rt];if(ot=it&&it.removeBefore(_e,et-SHIFT,tt),ot===it&&nt)return this}if(nt&&!ot)return this;var st=editableVNode(this,_e);if(!nt)for(var lt=0;lt>>et&MASK;if(rt>=this.array.length)return this;var nt;if(et>0){var ot=this.array[rt];if(nt=ot&&ot.removeAfter(_e,et-SHIFT,tt),nt===ot&&rt===this.array.length-1)return this}var it=editableVNode(this,_e);return it.array.splice(rt+1),nt&&(it.array[rt]=nt),it};var DONE={};function iterateList(j,_e){var et=j._origin,tt=j._capacity,rt=getTailOffset(tt),nt=j._tail;return ot(j._root,j._level,0);function ot(lt,ut,ct){return ut===0?it(lt,ct):st(lt,ut,ct)}function it(lt,ut){var ct=ut===rt?nt&&nt.array:lt&<.array,dt=ut>et?0:et-ut,ft=tt-ut;return ft>SIZE$1&&(ft=SIZE$1),function(){if(dt===ft)return DONE;var pt=_e?--ft:dt++;return ct&&ct[pt]}}function st(lt,ut,ct){var dt,ft=lt&<.array,pt=ct>et?0:et-ct>>ut,gt=(tt-ct>>ut)+1;return gt>SIZE$1&&(gt=SIZE$1),function(){for(;;){if(dt){var vt=dt();if(vt!==DONE)return vt;dt=null}if(pt===gt)return DONE;var bt=_e?--gt:pt++;dt=ot(ft&&ft[bt],ut-SHIFT,ct+(bt<=j.size||_e<0)return j.withMutations(function(ot){_e<0?setListBounds(ot,_e).set(0,et):setListBounds(ot,0,_e+1).set(_e,et)});_e+=j._origin;var tt=j._tail,rt=j._root,nt=MakeRef();return _e>=getTailOffset(j._capacity)?tt=updateVNode(tt,j.__ownerID,0,_e,et,nt):rt=updateVNode(rt,j.__ownerID,j._level,_e,et,nt),nt.value?j.__ownerID?(j._root=rt,j._tail=tt,j.__hash=void 0,j.__altered=!0,j):makeList(j._origin,j._capacity,j._level,rt,tt):j}function updateVNode(j,_e,et,tt,rt,nt){var ot=tt>>>et&MASK,it=j&&ot0){var lt=j&&j.array[ot],ut=updateVNode(lt,_e,et-SHIFT,tt,rt,nt);return ut===lt?j:(st=editableVNode(j,_e),st.array[ot]=ut,st)}return it&&j.array[ot]===rt?j:(nt&&SetRef(nt),st=editableVNode(j,_e),rt===void 0&&ot===st.array.length-1?st.array.pop():st.array[ot]=rt,st)}function editableVNode(j,_e){return _e&&j&&_e===j.ownerID?j:new VNode(j?j.array.slice():[],_e)}function listNodeFor(j,_e){if(_e>=getTailOffset(j._capacity))return j._tail;if(_e<1<0;)et=et.array[_e>>>tt&MASK],tt-=SHIFT;return et}}function setListBounds(j,_e,et){_e!==void 0&&(_e|=0),et!==void 0&&(et|=0);var tt=j.__ownerID||new OwnerID,rt=j._origin,nt=j._capacity,ot=rt+_e,it=et===void 0?nt:et<0?nt+et:rt+et;if(ot===rt&&it===nt)return j;if(ot>=it)return j.clear();for(var st=j._level,lt=j._root,ut=0;ot+ut<0;)lt=new VNode(lt&<.array.length?[void 0,lt]:[],tt),st+=SHIFT,ut+=1<=1<ct?new VNode([],tt):ft;if(ft&&dt>ct&&otSHIFT;vt-=SHIFT){var bt=ct>>>vt&MASK;gt=gt.array[bt]=editableVNode(gt.array[bt],tt)}gt.array[ct>>>SHIFT&MASK]=ft}if(it=dt)ot-=dt,it-=dt,st=SHIFT,lt=null,pt=pt&&pt.removeBefore(tt,0,ot);else if(ot>rt||dt>>st&MASK;if(_t!==dt>>>st&MASK)break;_t&&(ut+=(1<rt&&(lt=lt.removeBefore(tt,st,ot-ut)),lt&&dt>>SHIFT<=SIZE$1&&rt.size>=tt.size*2?(st=rt.filter(function(lt,ut){return lt!==void 0&&nt!==ut}),it=st.toKeyedSeq().map(function(lt){return lt[0]}).flip().toMap(),j.__ownerID&&(it.__ownerID=st.__ownerID=j.__ownerID)):(it=tt.remove(_e),st=nt===rt.size-1?rt.pop():rt.set(nt,void 0))}else if(ot){if(et===rt.get(nt)[1])return j;it=tt,st=rt.set(nt,[_e,et])}else it=tt.set(_e,rt.size),st=rt.set(rt.size,[_e,et]);return j.__ownerID?(j.size=it.size,j._map=it,j._list=st,j.__hash=void 0,j.__altered=!0,j):makeOrderedMap(it,st)}var IS_STACK_SYMBOL="@@__IMMUTABLE_STACK__@@";function isStack(j){return!!(j&&j[IS_STACK_SYMBOL])}var Stack=function(j){function _e(et){return et==null?emptyStack():isStack(et)?et:emptyStack().pushAll(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return this(arguments)},_e.prototype.toString=function(){return this.__toString("Stack [","]")},_e.prototype.get=function(tt,rt){var nt=this._head;for(tt=wrapIndex(this,tt);nt&&tt--;)nt=nt.next;return nt?nt.value:rt},_e.prototype.peek=function(){return this._head&&this._head.value},_e.prototype.push=function(){var tt=arguments;if(arguments.length===0)return this;for(var rt=this.size+arguments.length,nt=this._head,ot=arguments.length-1;ot>=0;ot--)nt={value:tt[ot],next:nt};return this.__ownerID?(this.size=rt,this._head=nt,this.__hash=void 0,this.__altered=!0,this):makeStack(rt,nt)},_e.prototype.pushAll=function(tt){if(tt=j(tt),tt.size===0)return this;if(this.size===0&&isStack(tt))return tt;assertNotInfinite(tt.size);var rt=this.size,nt=this._head;return tt.__iterate(function(ot){rt++,nt={value:ot,next:nt}},!0),this.__ownerID?(this.size=rt,this._head=nt,this.__hash=void 0,this.__altered=!0,this):makeStack(rt,nt)},_e.prototype.pop=function(){return this.slice(1)},_e.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):emptyStack()},_e.prototype.slice=function(tt,rt){if(wholeSlice(tt,rt,this.size))return this;var nt=resolveBegin(tt,this.size),ot=resolveEnd(rt,this.size);if(ot!==this.size)return j.prototype.slice.call(this,tt,rt);for(var it=this.size-nt,st=this._head;nt--;)st=st.next;return this.__ownerID?(this.size=it,this._head=st,this.__hash=void 0,this.__altered=!0,this):makeStack(it,st)},_e.prototype.__ensureOwner=function(tt){return tt===this.__ownerID?this:tt?makeStack(this.size,this._head,tt,this.__hash):this.size===0?emptyStack():(this.__ownerID=tt,this.__altered=!1,this)},_e.prototype.__iterate=function(tt,rt){var nt=this;if(rt)return new ArraySeq(this.toArray()).__iterate(function(st,lt){return tt(st,lt,nt)},rt);for(var ot=0,it=this._head;it&&tt(it.value,ot++,this)!==!1;)it=it.next;return ot},_e.prototype.__iterator=function(tt,rt){if(rt)return new ArraySeq(this.toArray()).__iterator(tt,rt);var nt=0,ot=this._head;return new Iterator(function(){if(ot){var it=ot.value;return ot=ot.next,iteratorValue(tt,nt++,it)}return iteratorDone()})},_e}(IndexedCollection);Stack.isStack=isStack;var StackPrototype=Stack.prototype;StackPrototype[IS_STACK_SYMBOL]=!0;StackPrototype.shift=StackPrototype.pop;StackPrototype.unshift=StackPrototype.push;StackPrototype.unshiftAll=StackPrototype.pushAll;StackPrototype.withMutations=withMutations;StackPrototype.wasAltered=wasAltered;StackPrototype.asImmutable=asImmutable;StackPrototype["@@transducer/init"]=StackPrototype.asMutable=asMutable;StackPrototype["@@transducer/step"]=function(j,_e){return j.unshift(_e)};StackPrototype["@@transducer/result"]=function(j){return j.asImmutable()};function makeStack(j,_e,et,tt){var rt=Object.create(StackPrototype);return rt.size=j,rt._head=_e,rt.__ownerID=et,rt.__hash=tt,rt.__altered=!1,rt}var EMPTY_STACK;function emptyStack(){return EMPTY_STACK||(EMPTY_STACK=makeStack(0))}var IS_SET_SYMBOL="@@__IMMUTABLE_SET__@@";function isSet(j){return!!(j&&j[IS_SET_SYMBOL])}function isOrderedSet(j){return isSet(j)&&isOrdered(j)}function deepEqual$1(j,_e){if(j===_e)return!0;if(!isCollection(_e)||j.size!==void 0&&_e.size!==void 0&&j.size!==_e.size||j.__hash!==void 0&&_e.__hash!==void 0&&j.__hash!==_e.__hash||isKeyed(j)!==isKeyed(_e)||isIndexed(j)!==isIndexed(_e)||isOrdered(j)!==isOrdered(_e))return!1;if(j.size===0&&_e.size===0)return!0;var et=!isAssociative(j);if(isOrdered(j)){var tt=j.entries();return _e.every(function(st,lt){var ut=tt.next().value;return ut&&is(ut[1],st)&&(et||is(ut[0],lt))})&&tt.next().done}var rt=!1;if(j.size===void 0)if(_e.size===void 0)typeof j.cacheResult=="function"&&j.cacheResult();else{rt=!0;var nt=j;j=_e,_e=nt}var ot=!0,it=_e.__iterate(function(st,lt){if(et?!j.has(st):rt?!is(st,j.get(lt,NOT_SET)):!is(j.get(lt,NOT_SET),st))return ot=!1,!1});return ot&&j.size===it}function mixin(j,_e){var et=function(tt){j.prototype[tt]=_e[tt]};return Object.keys(_e).forEach(et),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(_e).forEach(et),j}function toJS(j){if(!j||typeof j!="object")return j;if(!isCollection(j)){if(!isDataStructure(j))return j;j=Seq(j)}if(isKeyed(j)){var _e={};return j.__iterate(function(tt,rt){_e[rt]=toJS(tt)}),_e}var et=[];return j.__iterate(function(tt){et.push(toJS(tt))}),et}var Set$1=function(j){function _e(et){return et==null?emptySet():isSet(et)&&!isOrdered(et)?et:emptySet().withMutations(function(tt){var rt=j(et);assertNotInfinite(rt.size),rt.forEach(function(nt){return tt.add(nt)})})}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return this(arguments)},_e.fromKeys=function(tt){return this(KeyedCollection(tt).keySeq())},_e.intersect=function(tt){return tt=Collection$1(tt).toArray(),tt.length?SetPrototype.intersect.apply(_e(tt.pop()),tt):emptySet()},_e.union=function(tt){return tt=Collection$1(tt).toArray(),tt.length?SetPrototype.union.apply(_e(tt.pop()),tt):emptySet()},_e.prototype.toString=function(){return this.__toString("Set {","}")},_e.prototype.has=function(tt){return this._map.has(tt)},_e.prototype.add=function(tt){return updateSet(this,this._map.set(tt,tt))},_e.prototype.remove=function(tt){return updateSet(this,this._map.remove(tt))},_e.prototype.clear=function(){return updateSet(this,this._map.clear())},_e.prototype.map=function(tt,rt){var nt=this,ot=!1,it=updateSet(this,this._map.mapEntries(function(st){var lt=st[1],ut=tt.call(rt,lt,lt,nt);return ut!==lt&&(ot=!0),[ut,ut]},rt));return ot?it:this},_e.prototype.union=function(){for(var tt=[],rt=arguments.length;rt--;)tt[rt]=arguments[rt];return tt=tt.filter(function(nt){return nt.size!==0}),tt.length===0?this:this.size===0&&!this.__ownerID&&tt.length===1?this.constructor(tt[0]):this.withMutations(function(nt){for(var ot=0;ot=0&&rt=0&&ntthis.size?et:this.find(function(tt,rt){return rt===_e},void 0,et)},has:function(_e){return _e=wrapIndex(this,_e),_e>=0&&(this.size!==void 0?this.size===1/0||_e_e?-1:0}function hashCollection(j){if(j.size===1/0)return 0;var _e=isOrdered(j),et=isKeyed(j),tt=_e?1:0,rt=j.__iterate(et?_e?function(nt,ot){tt=31*tt+hashMerge(hash$1(nt),hash$1(ot))|0}:function(nt,ot){tt=tt+hashMerge(hash$1(nt),hash$1(ot))|0}:_e?function(nt){tt=31*tt+hash$1(nt)|0}:function(nt){tt=tt+hash$1(nt)|0});return murmurHashOfSize(rt,tt)}function murmurHashOfSize(j,_e){return _e=imul(_e,3432918353),_e=imul(_e<<15|_e>>>-15,461845907),_e=imul(_e<<13|_e>>>-13,5),_e=(_e+3864292196|0)^j,_e=imul(_e^_e>>>16,2246822507),_e=imul(_e^_e>>>13,3266489909),_e=smi(_e^_e>>>16),_e}function hashMerge(j,_e){return j^_e+2654435769+(j<<6)+(j>>2)|0}var OrderedSet=function(j){function _e(et){return et==null?emptyOrderedSet():isOrderedSet(et)?et:emptyOrderedSet().withMutations(function(tt){var rt=SetCollection(et);assertNotInfinite(rt.size),rt.forEach(function(nt){return tt.add(nt)})})}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return this(arguments)},_e.fromKeys=function(tt){return this(KeyedCollection(tt).keySeq())},_e.prototype.toString=function(){return this.__toString("OrderedSet {","}")},_e}(Set$1);OrderedSet.isOrderedSet=isOrderedSet;var OrderedSetPrototype=OrderedSet.prototype;OrderedSetPrototype[IS_ORDERED_SYMBOL]=!0;OrderedSetPrototype.zip=IndexedCollectionPrototype.zip;OrderedSetPrototype.zipWith=IndexedCollectionPrototype.zipWith;OrderedSetPrototype.zipAll=IndexedCollectionPrototype.zipAll;OrderedSetPrototype.__empty=emptyOrderedSet;OrderedSetPrototype.__make=makeOrderedSet;function makeOrderedSet(j,_e){var et=Object.create(OrderedSetPrototype);return et.size=j?j.size:0,et._map=j,et.__ownerID=_e,et}var EMPTY_ORDERED_SET;function emptyOrderedSet(){return EMPTY_ORDERED_SET||(EMPTY_ORDERED_SET=makeOrderedSet(emptyOrderedMap()))}function throwOnInvalidDefaultValues(j){if(isRecord(j))throw new Error("Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.");if(isImmutable(j))throw new Error("Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.");if(j===null||typeof j!="object")throw new Error("Can not call `Record` with a non-object as default values. Use a plain javascript object instead.")}var Record=function(_e,et){var tt;throwOnInvalidDefaultValues(_e);var rt=function(it){var st=this;if(it instanceof rt)return it;if(!(this instanceof rt))return new rt(it);if(!tt){tt=!0;var lt=Object.keys(_e),ut=nt._indices={};nt._name=et,nt._keys=lt,nt._defaultValues=_e;for(var ct=0;ct-1)return registerClass(j,_e.split(" "));var rt=j.options,nt=rt.parent;if(_e[0]==="$"){var ot=nt.getRule(_e.substr(1));return!ot||ot===j?!1:(nt.classes[j.key]+=" "+nt.classes[ot.key],!0)}return nt.classes[j.key]+=" "+_e,!0}function jssCompose(){function j(_e,et){return"composes"in _e&&(registerClass(et,_e.composes),delete _e.composes),_e}return{onProcessStyle:j}}var uppercasePattern=/[A-Z]/g,msPattern=/^ms-/,cache$2={};function toHyphenLower(j){return"-"+j.toLowerCase()}function hyphenateStyleName(j){if(cache$2.hasOwnProperty(j))return cache$2[j];var _e=j.replace(uppercasePattern,toHyphenLower);return cache$2[j]=msPattern.test(_e)?"-"+_e:_e}function convertCase(j){var _e={};for(var et in j){var tt=et.indexOf("--")===0?et:hyphenateStyleName(et);_e[tt]=j[et]}return j.fallbacks&&(Array.isArray(j.fallbacks)?_e.fallbacks=j.fallbacks.map(convertCase):_e.fallbacks=convertCase(j.fallbacks)),_e}function camelCase(){function j(et){if(Array.isArray(et)){for(var tt=0;ttj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _arrayWithoutHoles$b(j){if(Array.isArray(j))return _arrayLikeToArray$m(j)}function _iterableToArray$c(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _unsupportedIterableToArray$m(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$m(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$m(j,_e)}}function _nonIterableSpread$b(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _toConsumableArray$b(j){return _arrayWithoutHoles$b(j)||_iterableToArray$c(j)||_unsupportedIterableToArray$m(j)||_nonIterableSpread$b()}var js="",css$2="",vendor="",browser="",isTouch$1=isBrowser$2&&"ontouchstart"in document.documentElement;if(isBrowser$2){var jsCssMap={Moz:"-moz-",ms:"-ms-",O:"-o-",Webkit:"-webkit-"},_document$createEleme=document.createElement("p"),style=_document$createEleme.style,testProp="Transform";for(var key in jsCssMap)if(key+testProp in style){js=key,css$2=jsCssMap[key];break}js==="Webkit"&&"msHyphens"in style&&(js="ms",css$2=jsCssMap.ms,browser="edge"),js==="Webkit"&&"-apple-trailing-word"in style&&(vendor="apple")}var prefix$3={js,css:css$2,vendor,browser,isTouch:isTouch$1};function supportedKeyframes(j){return j[1]==="-"||prefix$3.js==="ms"?j:"@"+prefix$3.css+"keyframes"+j.substr(10)}var appearence={noPrefill:["appearance"],supportedProperty:function(_e){return _e!=="appearance"?!1:prefix$3.js==="ms"?"-webkit-"+_e:prefix$3.css+_e}},colorAdjust={noPrefill:["color-adjust"],supportedProperty:function(_e){return _e!=="color-adjust"?!1:prefix$3.js==="Webkit"?prefix$3.css+"print-"+_e:_e}},regExp=/[-\s]+(.)?/g;function toUpper(j,_e){return _e?_e.toUpperCase():""}function camelize(j){return j.replace(regExp,toUpper)}function pascalize(j){return camelize("-"+j)}var mask={noPrefill:["mask"],supportedProperty:function(_e,et){if(!/^mask/.test(_e))return!1;if(prefix$3.js==="Webkit"){var tt="mask-image";if(camelize(tt)in et)return _e;if(prefix$3.js+pascalize(tt)in et)return prefix$3.css+_e}return _e}},textOrientation={noPrefill:["text-orientation"],supportedProperty:function(_e){return _e!=="text-orientation"?!1:prefix$3.vendor==="apple"&&!prefix$3.isTouch?prefix$3.css+_e:_e}},transform={noPrefill:["transform"],supportedProperty:function(_e,et,tt){return _e!=="transform"?!1:tt.transform?_e:prefix$3.css+_e}},transition={noPrefill:["transition"],supportedProperty:function(_e,et,tt){return _e!=="transition"?!1:tt.transition?_e:prefix$3.css+_e}},writingMode={noPrefill:["writing-mode"],supportedProperty:function(_e){return _e!=="writing-mode"?!1:prefix$3.js==="Webkit"||prefix$3.js==="ms"&&prefix$3.browser!=="edge"?prefix$3.css+_e:_e}},userSelect={noPrefill:["user-select"],supportedProperty:function(_e){return _e!=="user-select"?!1:prefix$3.js==="Moz"||prefix$3.js==="ms"||prefix$3.vendor==="apple"?prefix$3.css+_e:_e}},breakPropsOld={supportedProperty:function(_e,et){if(!/^break-/.test(_e))return!1;if(prefix$3.js==="Webkit"){var tt="WebkitColumn"+pascalize(_e);return tt in et?prefix$3.css+"column-"+_e:!1}if(prefix$3.js==="Moz"){var rt="page"+pascalize(_e);return rt in et?"page-"+_e:!1}return!1}},inlineLogicalOld={supportedProperty:function(_e,et){if(!/^(border|margin|padding)-inline/.test(_e))return!1;if(prefix$3.js==="Moz")return _e;var tt=_e.replace("-inline","");return prefix$3.js+pascalize(tt)in et?prefix$3.css+tt:!1}},unprefixed={supportedProperty:function(_e,et){return camelize(_e)in et?_e:!1}},prefixed={supportedProperty:function(_e,et){var tt=pascalize(_e);return _e[0]==="-"||_e[0]==="-"&&_e[1]==="-"?_e:prefix$3.js+tt in et?prefix$3.css+_e:prefix$3.js!=="Webkit"&&"Webkit"+tt in et?"-webkit-"+_e:!1}},scrollSnap={supportedProperty:function(_e){return _e.substring(0,11)!=="scroll-snap"?!1:prefix$3.js==="ms"?""+prefix$3.css+_e:_e}},overscrollBehavior={supportedProperty:function(_e){return _e!=="overscroll-behavior"?!1:prefix$3.js==="ms"?prefix$3.css+"scroll-chaining":_e}},propMap={"flex-grow":"flex-positive","flex-shrink":"flex-negative","flex-basis":"flex-preferred-size","justify-content":"flex-pack",order:"flex-order","align-items":"flex-align","align-content":"flex-line-pack"},flex2012={supportedProperty:function(_e,et){var tt=propMap[_e];return tt&&prefix$3.js+pascalize(tt)in et?prefix$3.css+tt:!1}},propMap$1={flex:"box-flex","flex-grow":"box-flex","flex-direction":["box-orient","box-direction"],order:"box-ordinal-group","align-items":"box-align","flex-flow":["box-orient","box-direction"],"justify-content":"box-pack"},propKeys=Object.keys(propMap$1),prefixCss=function(_e){return prefix$3.css+_e},flex2009={supportedProperty:function(_e,et,tt){var rt=tt.multiple;if(propKeys.indexOf(_e)>-1){var nt=propMap$1[_e];if(!Array.isArray(nt))return prefix$3.js+pascalize(nt)in et?prefix$3.css+nt:!1;if(!rt)return!1;for(var ot=0;ottt?1:-1:et.length-tt.length};return{onProcessStyle:function(et,tt){if(tt.type!=="style")return et;for(var rt={},nt=Object.keys(et).sort(j),ot=0;otMAX_RULES_PER_SHEET)&&(rt=_e.createStyleSheet().attach()),rt};function ot(){var it=arguments,st=JSON.stringify(it),lt=et.get(st);if(lt)return lt.className;var ut=[];for(var ct in it){var dt=it[ct];if(!Array.isArray(dt)){ut.push(dt);continue}for(var ft=0;ft_e=>!!pick$1(j)(_e),add$1=j=>_e=>{const et=_e||0;return Array.isArray(j)?j.reduce((tt,rt)=>tt|rt,et):et|j},toggle=j=>_e=>(_e||0)^j,pick$1=j=>_e=>(_e||0)&j,remove$1=j=>_e=>{const et=_e||0;return Array.isArray(j)?j.reduce((tt,rt)=>tt&~rt,et):et&~j},replace$1=j=>()=>j;var bitset=Object.freeze({__proto__:null,has:has$1,add:add$1,toggle,pick:pick$1,remove:remove$1,replace:replace$1});const EMPTY_STATUS=0,SELECTED_STATUS=1,ACTIVATED_STATUS=2;var GraphEdgeStatus;(function(j){j[j.Default=EMPTY_STATUS]="Default",j[j.Selected=SELECTED_STATUS]="Selected",j[j.Activated=ACTIVATED_STATUS]="Activated",j[j.ConnectedToSelected=4]="ConnectedToSelected",j[j.UnconnectedToSelected=8]="UnconnectedToSelected",j[j.Editing=16]="Editing"})(GraphEdgeStatus||(GraphEdgeStatus={}));var GraphNodeStatus;(function(j){j[j.Default=EMPTY_STATUS]="Default",j[j.Selected=SELECTED_STATUS]="Selected",j[j.Activated=ACTIVATED_STATUS]="Activated",j[j.Editing=4]="Editing",j[j.ConnectedToSelected=8]="ConnectedToSelected",j[j.UnconnectedToSelected=16]="UnconnectedToSelected"})(GraphNodeStatus||(GraphNodeStatus={}));var GraphPortStatus;(function(j){j[j.Default=EMPTY_STATUS]="Default",j[j.Selected=SELECTED_STATUS]="Selected",j[j.Activated=ACTIVATED_STATUS]="Activated",j[j.Connecting=4]="Connecting",j[j.ConnectingAsTarget=8]="ConnectingAsTarget"})(GraphPortStatus||(GraphPortStatus={}));const updateStatus=j=>_e=>{var et;const tt=j((et=_e.status)!==null&&et!==void 0?et:0);return tt===_e.status?_e:Object.assign(Object.assign({},_e),{status:tt})};function isNodeEditing(j){return has$1(GraphNodeStatus.Editing)(j.status)}function isSelected(j){return has$1(SELECTED_STATUS)(j.status)}function notSelected(j){return!isSelected(j)}const resetConnectStatus=j=>_e=>(_e||0)&GraphNodeStatus.Activated|j;class Debug{static log(_e){}static warn(_e){}static error(..._e){console.error(..._e)}static never(_e,et){throw new Error(et??`${_e} is unexpected`)}}const getNodeConfig=(j,_e)=>{const et=_e.getNodeConfig(j);if(!et){Debug.warn(`invalid node ${JSON.stringify(j)}`);return}return et};function getRectWidth(j,_e){var et;const tt=(et=j==null?void 0:j.getMinWidth(_e))!==null&&et!==void 0?et:0;return _e.width&&_e.width>=tt?_e.width:tt}function getRectHeight(j,_e){var et;const tt=(et=j==null?void 0:j.getMinHeight(_e))!==null&&et!==void 0?et:0;return _e.height&&_e.height>=tt?_e.height:tt}function getNodeSize(j,_e){const et=getNodeConfig(j,_e),tt=getRectWidth(et,j);return{height:getRectHeight(et,j),width:tt}}function getGroupRect(j,_e,et){var tt,rt,nt,ot,it,st,lt,ut;const ct=new Set(j.nodeIds),dt=Array.from(_e.values()).filter(Et=>ct.has(Et.id)),ft=Math.min(...dt.map(Et=>Et.x)),pt=Math.max(...dt.map(Et=>Et.x+getNodeSize(Et,et).width)),gt=Math.min(...dt.map(Et=>Et.y)),mt=Math.max(...dt.map(Et=>Et.y+getNodeSize(Et,et).height)),bt=ft-((rt=(tt=j.padding)===null||tt===void 0?void 0:tt.left)!==null&&rt!==void 0?rt:0),_t=gt-((ot=(nt=j.padding)===null||nt===void 0?void 0:nt.top)!==null&&ot!==void 0?ot:0),xt=mt-_t+((st=(it=j.padding)===null||it===void 0?void 0:it.bottom)!==null&&st!==void 0?st:0),yt=pt-bt+((ut=(lt=j.padding)===null||lt===void 0?void 0:lt.left)!==null&&ut!==void 0?ut:0);return{x:bt,y:_t,width:yt,height:xt}}var MouseEventButton;(function(j){j[j.Primary=0]="Primary",j[j.Auxiliary=1]="Auxiliary",j[j.Secondary=2]="Secondary",j[j.Fourth=4]="Fourth",j[j.Fifth=5]="Fifth"})(MouseEventButton||(MouseEventButton={}));var MouseEventButtons;(function(j){j[j.None=0]="None",j[j.Left=1]="Left",j[j.Right=2]="Right",j[j.Middle=4]="Middle"})(MouseEventButtons||(MouseEventButtons={}));const DEFAULT_AUTO_ALIGN_THRESHOLD=50,COPIED_NODE_SPACING=50,NODE_MIN_VISIBLE_LENGTH=5,NODE_MAX_VISIBLE_LENGTH=500,defaultColors={controlPointColor:"#333333",primaryColor:"#0078D4",defaultColor:"#CCCCCC",borderColor:"#B3B0AD",defaultBorderColor:"#FFFFFF",unConnectableBgColor:"#E1DFDD",defaultBackgroundColor:"#FFFFFF",portStroke:"#ccc",portFill:"#fff",connectedPortColor:"gray",nodeActivateFill:"#ffffff",nodeActivateStroke:"#0078D4",nodeFill:"#ffffff",nodeStroke:"#cccccc",contextMenuBackground:"#FFFFFF",contextMenuBorder:"#E1DFDD",contextMenuHoverBackground:"rgba(0, 120, 212, 0.05)",fontColor:"#000000",canvasBackground:"#EDEDED",minimapBackground:"#EDEDED",edgeColor:"#ccc",edgeColorSelected:"#015cda",minimapShadow:"#000000",outlineStyle:"none",focusOutlineColor:"#000000",dummyNodeStroke:"#015cda",inputFocusBorderAlt:"#0078d4",buttonBorder:"#797775",scrollbarColor:"#c8c8c8"},RectComponent=j=>{const{style:_e,node:et,width:tt,height:rt,textY:nt}=j,ot=et.data&&et.data.comment?et.data.comment:"",it=isNodeEditing(et);return jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("rect",{width:tt,height:rt,x:et.x,y:et.y,style:_e,rx:_e.borderRadius}),jsxRuntimeExports.jsx("text",Object.assign({x:et.x,y:nt,fontSize:12},{children:et.name})),et.data&&et.data.comment&&!it&&jsxRuntimeExports.jsx("text",Object.assign({x:et.x,y:nt+20,fontSize:12,className:`comment-${et.id}`},{children:et.data.comment})),it&&jsxRuntimeExports.jsx("foreignObject",Object.assign({x:et.x,y:nt,height:rt/2.5,width:tt-5},{children:jsxRuntimeExports.jsx("input",{value:ot,placeholder:"Input your comment here"})}))]},et.id)},rect={getMinHeight(){return 150},getMinWidth(){return 150},render(j){const _e=j.model,et=getRectWidth(rect,_e),tt=getRectHeight(rect,_e),rt=has$1(GraphNodeStatus.Selected|GraphNodeStatus.Activated)(_e.status)?{fill:defaultColors.nodeActivateFill,stroke:defaultColors.nodeActivateStroke}:{fill:defaultColors.nodeFill,fillOpacity:.1,stroke:defaultColors.nodeStroke,borderRadius:"5"},nt=_e.y+tt/3;return jsxRuntimeExports.jsx(RectComponent,{style:rt,node:_e,width:et,height:tt,textY:nt})}},getCurvePathD=(j,_e,et,tt)=>`M${j},${et}C${j},${et-getControlPointDistance(et,tt)},${_e},${tt+5+getControlPointDistance(et,tt)},${_e},${tt+5}`,getControlPointDistance=(j,_e)=>Math.min(5*15,Math.max(5*3,Math.abs((j-(_e+5))/2))),line$1={render(j){const _e=j.model,et={cursor:"crosshair",stroke:has$1(GraphEdgeStatus.Selected)(_e.status)?defaultColors.edgeColorSelected:defaultColors.edgeColor,strokeWidth:"2"};return jsxRuntimeExports.jsx("path",{d:getCurvePathD(j.x2,j.x1,j.y2,j.y1),fill:"none",style:et,id:`edge${_e.id}`},_e.id)}};class DefaultPort{getStyle(_e,et,tt,rt,nt){const ot=defaultColors.portStroke;let it=defaultColors.portFill;return(rt||nt)&&(it=defaultColors.connectedPortColor),has$1(GraphPortStatus.Activated)(_e.status)&&(it=defaultColors.primaryColor),{stroke:ot,fill:it}}getIsConnectable(){return!0}render(_e){const{model:et,data:tt,parentNode:rt}=_e,nt=tt.isPortConnectedAsSource(rt.id,et.id),ot=tt.isPortConnectedAsTarget(rt.id,et.id),it=this.getStyle(et,rt,tt,nt,ot),{x:st,y:lt}=_e,ut=`${st-5} ${lt}, ${st+7} ${lt}, ${st+1} ${lt+8}`;return ot?jsxRuntimeExports.jsx("polygon",{points:ut,style:it}):jsxRuntimeExports.jsx("circle",{r:5,cx:st,cy:lt,style:it},`${_e.parentNode.id}-${_e.model.id}`)}}const defaultPort=new DefaultPort;class DefaultClipboard{constructor(_e){this.storage=_e}write(_e){this.storage.setItem("graph-clipboard",JSON.stringify({nodes:_e.nodes.map(et=>Object.assign(Object.assign({},et),{data:{}})),edges:_e.edges.map(et=>Object.assign(Object.assign({},et),{data:{}}))}))}read(){const _e=this.storage.getItem("graph-clipboard");if(!_e)return null;try{const et=JSON.parse(_e),tt=new Map;return{nodes:et.nodes.map(rt=>{const nt=v4();return tt.set(rt.id,nt),Object.assign(Object.assign({},rt),{x:rt.x+COPIED_NODE_SPACING,y:rt.y+COPIED_NODE_SPACING,id:nt})}),edges:et.edges.map(rt=>Object.assign(Object.assign({},rt),{id:v4(),source:tt.get(rt.source)||"",target:tt.get(rt.target)||""}))}}catch{return null}}}class DefaultStorage{get length(){return this.items.size}constructor(){this.key=()=>"DefaultLocalStorage",this.items=new Map}clear(){this.items=new Map}setItem(_e,et){this.items.set(_e,et)}getItem(_e){return this.items.has(_e)?this.items.get(_e):null}removeItem(_e){this.items.delete(_e)}}class GraphConfigBuilder{constructor(){const _e=new DefaultStorage,et=new DefaultClipboard(_e);this.draft={getNodeConfig:()=>rect,getEdgeConfig:()=>line$1,getPortConfig:()=>defaultPort,getGroupConfig:()=>{},getClipboard:()=>et}}static default(){return new GraphConfigBuilder}static from(_e){return new GraphConfigBuilder().registerNode(_e.getNodeConfig.bind(_e)).registerEdge(_e.getEdgeConfig.bind(_e)).registerPort(_e.getPortConfig.bind(_e)).registerGroup(_e.getGroupConfig.bind(_e)).registerClipboard(_e.getClipboard.bind(_e))}registerNode(_e){return this.draft.getNodeConfig=_e,this}registerEdge(_e){return this.draft.getEdgeConfig=_e,this}registerPort(_e){return this.draft.getPortConfig=_e,this}registerGroup(_e){return this.draft.getGroupConfig=_e,this}registerClipboard(_e){return this.draft.getClipboard=_e,this}build(){return this.draft}}const GraphConfigContext=reactExports.createContext(GraphConfigBuilder.default().build());var MenuType;(function(j){j.Node="node",j.Edge="edge",j.Port="port",j.Canvas="canvas",j.Multi="multi"})(MenuType||(MenuType={}));class ContextMenuConfig{constructor(){this.contextMenu=new Map}registerContextMenu(_e){this.contextMenuProps=Object.assign({},_e)}registerMenu(_e,et){this.contextMenu.set(et,_e)}getMenu(_e){if(this.contextMenuProps&&this.contextMenu.has(_e)){const{className:et,styles:tt}=this.contextMenuProps;return reactExports.createElement("div",{className:et,style:tt},this.contextMenu.get(_e))}return null}}const ContextMenuConfigContext=reactExports.createContext(new ContextMenuConfig),emptySelectBoxPosition=()=>({startX:0,startY:0,height:0,width:0}),SelectBox=j=>{const{selectBoxPosition:_e,style:et}=j,tt=`m${_e.startX} ${_e.startY} v ${_e.height} h ${_e.width} v${-_e.height} h ${-_e.width}`,rt=et??{fill:"none",stroke:defaultColors.defaultColor};return jsxRuntimeExports.jsx("path",{style:rt,d:tt})};var GraphFeatures;(function(j){j.NodeDraggable="nodeDraggable",j.NodeResizable="nodeResizable",j.ClickNodeToSelect="clickNodeToSelect",j.PanCanvas="panCanvas",j.MultipleSelect="multipleSelect",j.LassoSelect="lassoSelect",j.Delete="delete",j.AddNewNodes="addNewNodes",j.AddNewEdges="addNewEdges",j.AddNewPorts="addNewPorts",j.AutoFit="autoFit",j.CanvasHorizontalScrollable="canvasHorizontalScrollable",j.CanvasVerticalScrollable="canvasVerticalScrollable",j.NodeHoverView="nodeHoverView",j.PortHoverView="portHoverView",j.AddEdgesByKeyboard="addEdgesByKeyboard",j.A11yFeatures="a11YFeatures",j.EditNode="editNode",j.AutoAlign="autoAlign",j.UndoStack="undoStack",j.CtrlKeyZoom="ctrlKeyZoom",j.LimitBoundary="limitBoundary",j.EditEdge="editEdge",j.InvisibleScrollbar="InvisibleScrollbar"})(GraphFeatures||(GraphFeatures={}));GraphFeatures.NodeDraggable,GraphFeatures.NodeResizable,GraphFeatures.ClickNodeToSelect,GraphFeatures.PanCanvas,GraphFeatures.MultipleSelect,GraphFeatures.LassoSelect,GraphFeatures.Delete,GraphFeatures.AddNewNodes,GraphFeatures.AddNewEdges,GraphFeatures.AddNewPorts,GraphFeatures.CanvasHorizontalScrollable,GraphFeatures.CanvasVerticalScrollable,GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.AddEdgesByKeyboard,GraphFeatures.A11yFeatures,GraphFeatures.AutoFit,GraphFeatures.EditNode,GraphFeatures.AutoAlign,GraphFeatures.UndoStack,GraphFeatures.CtrlKeyZoom,GraphFeatures.LimitBoundary,GraphFeatures.EditEdge;const defaultFeatures=new Set([GraphFeatures.NodeDraggable,GraphFeatures.NodeResizable,GraphFeatures.ClickNodeToSelect,GraphFeatures.PanCanvas,GraphFeatures.MultipleSelect,GraphFeatures.Delete,GraphFeatures.AddNewNodes,GraphFeatures.AddNewEdges,GraphFeatures.AddNewPorts,GraphFeatures.CanvasHorizontalScrollable,GraphFeatures.CanvasVerticalScrollable,GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.AddEdgesByKeyboard,GraphFeatures.A11yFeatures,GraphFeatures.EditNode,GraphFeatures.AutoAlign,GraphFeatures.UndoStack,GraphFeatures.CtrlKeyZoom,GraphFeatures.LimitBoundary]),dataReadonlyMode=new Set([GraphFeatures.NodeDraggable,GraphFeatures.NodeResizable,GraphFeatures.ClickNodeToSelect,GraphFeatures.PanCanvas,GraphFeatures.MultipleSelect,GraphFeatures.CanvasHorizontalScrollable,GraphFeatures.CanvasVerticalScrollable,GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.A11yFeatures,GraphFeatures.CtrlKeyZoom,GraphFeatures.LimitBoundary]);GraphFeatures.ClickNodeToSelect,GraphFeatures.CanvasHorizontalScrollable,GraphFeatures.CanvasVerticalScrollable,GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.A11yFeatures,GraphFeatures.LassoSelect,GraphFeatures.LimitBoundary;const previewMode=new Set([GraphFeatures.NodeHoverView,GraphFeatures.PortHoverView,GraphFeatures.AutoFit]),emptyDummyNodes=()=>({dx:0,dy:0,dWidth:0,dHeight:0,alignedDX:void 0,alignedDY:void 0,nodes:[],isVisible:!1}),is$1=Object.is;let MapIterator$1=class{constructor(_e,et){this.upstream=_e,this.f=et}[Symbol.iterator](){return this}next(){const _e=this.upstream.next();return _e.done?_e:{done:!1,value:this.f(_e.value)}}};var NodeType$1;(function(j){j[j.Bitmap=0]="Bitmap",j[j.Collision=1]="Collision"})(NodeType$1||(NodeType$1={}));const HASH_CODE_LENGTH=30,BIT_PARTITION_SIZE=5,FULL_MASK=1073741823;function bitPosFrom(j){return 1<>>_e&31}function bitCount(j){return j|=0,j-=j>>>1&1431655765,j=(j&858993459)+(j>>>2&858993459),j=j+(j>>>4)&252645135,j+=j>>>8,j+=j>>>16,j&127}let BitmapIndexedNode$1=class Vl{get valueCount(){return this.values.length}get nodeCount(){return this.children.length}constructor(_e,et,tt,rt,nt,ot,it,st){this.type=NodeType$1.Bitmap,this.owner=_e,this.dataMap=et,this.nodeMap=tt,this.keys=rt,this.values=nt,this.children=ot,this.hashes=it,this.size=st}static empty(_e){return new Vl(_e,0,0,[],[],[],[],0)}getKey(_e){return this.keys[_e]}getValue(_e){return this.values[_e]}getHash(_e){return this.hashes[_e]}getNode(_e){return this.children[_e]}contains(_e,et,tt){const rt=maskFrom(et,tt),nt=bitPosFrom(rt),{dataMap:ot,nodeMap:it}=this;if(ot&nt){const st=indexFrom(ot,rt,nt),lt=this.getKey(st);return is$1(lt,_e)}else if(it&nt){const st=indexFrom(it,rt,nt);return this.getNode(st).contains(_e,et,tt+BIT_PARTITION_SIZE)}return!1}get(_e,et,tt){const rt=maskFrom(et,tt),nt=bitPosFrom(rt),{dataMap:ot,nodeMap:it}=this;if(ot&nt){const st=indexFrom(ot,rt,nt),lt=this.getKey(st);return is$1(lt,_e)?this.getValue(st):void 0}else if(it&nt){const st=indexFrom(it,rt,nt);return this.getNode(st).get(_e,et,tt+BIT_PARTITION_SIZE)}}insert(_e,et,tt,rt,nt){const ot=maskFrom(rt,nt),it=bitPosFrom(ot),{dataMap:st,nodeMap:lt}=this;if(st&it){const ut=indexFrom(st,ot,it),ct=this.getKey(ut),dt=this.getValue(ut),ft=this.getHash(ut);if(ft===rt&&is$1(ct,et))return is$1(dt,tt)?this:this.setValue(_e,tt,ut);{const pt=mergeTwoKeyValPairs(_e,ct,dt,ft,et,tt,rt,nt+BIT_PARTITION_SIZE);return this.migrateInlineToNode(_e,it,pt)}}else if(lt&it){const ut=indexFrom(lt,ot,it),dt=this.getNode(ut).insert(_e,et,tt,rt,nt+BIT_PARTITION_SIZE);return this.setNode(_e,1,dt,it)}return this.insertValue(_e,it,et,rt,tt)}update(_e,et,tt,rt,nt){const ot=maskFrom(rt,nt),it=bitPosFrom(ot),{dataMap:st,nodeMap:lt}=this;if(st&it){const ut=indexFrom(st,ot,it),ct=this.getKey(ut);if(this.getHash(ut)===rt&&is$1(ct,et)){const ft=this.getValue(ut),pt=tt(ft);return is$1(ft,pt)?this:this.setValue(_e,pt,ut)}}else if(lt&it){const ut=indexFrom(lt,ot,it),ct=this.getNode(ut),dt=ct.update(_e,et,tt,rt,nt+BIT_PARTITION_SIZE);return dt===ct?this:this.setNode(_e,0,dt,it)}return this}remove(_e,et,tt,rt){const nt=maskFrom(tt,rt),ot=bitPosFrom(nt);if(this.dataMap&ot){const it=indexFrom(this.dataMap,nt,ot),st=this.getKey(it);return is$1(st,et)?this.removeValue(_e,ot):void 0}else if(this.nodeMap&ot){const it=indexFrom(this.nodeMap,nt,ot),st=this.getNode(it),lt=st.remove(_e,et,tt,rt+BIT_PARTITION_SIZE);if(lt===void 0)return;const[ut,ct]=lt;return ut.size===1?this.size===st.size?[new Vl(_e,ot,0,[ut.getKey(0)],[ut.getValue(0)],[],[ut.getHash(0)],1),ct]:[this.migrateNodeToInline(_e,ot,ut),ct]:[this.setNode(_e,-1,ut,ot),ct]}}toOwned(_e){return this.owner===_e?this:new Vl(_e,this.dataMap,this.nodeMap,this.keys.slice(),this.values.slice(),this.children.slice(),this.hashes.slice(),this.size)}iter(){return new BitmapIndexedNodeIterator(this)}map(_e,et){const tt=this.valueCount,rt=[],nt=[],ot=[];let it=!0;for(let st=0;st=HASH_CODE_LENGTH)return new HashCollisionNode$1(j,tt,[_e,rt],[et,nt]);{const st=maskFrom(tt,it),lt=maskFrom(ot,it);if(st!==lt){const ut=bitPosFrom(st)|bitPosFrom(lt);return stis$1(tt,_e));return et>=0?this.values[et]:void 0}insert(_e,et,tt){const rt=this.keys.findIndex(nt=>is$1(nt,et));if(rt>=0){const nt=this.values[rt];if(is$1(nt,tt))return this;const ot=this.toOwned(_e);return ot.values[rt]=tt,ot}else{const nt=this.toOwned(_e);return nt.keys.push(et),nt.values.push(tt),nt}}update(_e,et,tt){const rt=this.keys.findIndex(nt=>is$1(nt,et));if(rt>=0){const nt=this.values[rt],ot=tt(nt);if(is$1(nt,ot))return this;const it=this.toOwned(_e);return it.values[rt]=ot,it}return this}remove(_e,et){const tt=this.keys.findIndex(nt=>is$1(nt,et));if(tt===-1)return;const rt=this.getValue(tt);return[new Mu(_e,this.hash,this.keys.filter((nt,ot)=>ot!==tt),this.values.filter((nt,ot)=>ot!==tt)),rt]}getKey(_e){return this.keys[_e]}getValue(_e){return this.values[_e]}getHash(){return this.hash}iter(){return new HashCollisionNodeIterator(this)}map(_e,et){const tt=this.size,rt=[];let nt=!1;for(let ot=0;ot=this.node.size)return{done:!0,value:void 0};const _e=this.node.getKey(this.index),et=this.node.getValue(this.index);return this.index+=1,{done:!1,value:[_e,et]}}clone(){const _e=new HashCollisionNodeIterator(this.node);return _e.index=this.index,_e}}function hashing(j){if(j===null)return 1108378658;switch(typeof j){case"boolean":return j?839943201:839943200;case"number":return hashNumber$1(j);case"string":return hashString$1(j);case"object":case"function":case"symbol":throw new Error("Using object, function and symbol as hash map key is not supported");case"undefined":return 839943203;default:return hashString$1(String(j))}}function hashString$1(j){let _e=0;for(let et=0;et4294967295;)j/=4294967295,_e^=j;return smi$1(_e)}function smi$1(j){return j&1073741823}class Uid{constructor(){this.id=0}take(){return this.id+=1,this.id}peek(){return this.id+1}}const uid$1=new Uid;class HashMap{get size(){return this.root.size}constructor(_e){this.id=uid$1.take(),this.root=_e}static empty(){return HashMapBuilder.empty().finish()}static from(_e){return HashMapBuilder.from(_e).finish()}get(_e){const et=hashing(_e);return this.root.get(_e,et,0)}has(_e){const et=hashing(_e);return this.root.contains(_e,et,0)}set(_e,et){return this.withRoot(this.root.insert(uid$1.peek(),_e,et,hashing(_e),0))}update(_e,et){return this.withRoot(this.root.update(uid$1.peek(),_e,et,hashing(_e),0))}delete(_e){const et=hashing(_e),tt=uid$1.peek(),rt=this.root.remove(tt,_e,et,0);return rt===void 0?this:new HashMap(rt[0])}clone(){return new HashMap(this.root)}[Symbol.iterator](){return this.entries()}entries(){return this.root.iter()}values(){return new MapIterator$1(this.entries(),([,_e])=>_e)}mutate(){return new HashMapBuilder(this.root)}map(_e){return new HashMap(this.root.map(uid$1.peek(),_e))}filter(_e){const et=this.mutate();return this.forEach((tt,rt)=>{_e(tt,rt)||et.delete(rt)}),et.finish()}forEach(_e){this.root.forEach(_e)}find(_e){return this.root.find(_e)}withRoot(_e){return _e===this.root?this:new HashMap(_e)}}class HashMapBuilder{constructor(_e){this.id=uid$1.take(),this.root=_e}static empty(){const _e=uid$1.peek(),et=BitmapIndexedNode$1.empty(_e);return new HashMapBuilder(et)}static from(_e){if(Array.isArray(_e))return HashMapBuilder.fromArray(_e);const et=_e[Symbol.iterator](),tt=HashMapBuilder.empty();let rt=et.next();for(;!rt.done;){const[nt,ot]=rt.value;tt.set(nt,ot),rt=et.next()}return tt}static fromArray(_e){const et=HashMapBuilder.empty();for(let tt=0;tt<_e.length;tt+=1){const[rt,nt]=_e[tt];et.set(rt,nt)}return et}get(_e){const et=hashing(_e);return this.root.get(_e,et,0)}has(_e){const et=hashing(_e);return this.root.contains(_e,et,0)}set(_e,et){return this.root=this.root.insert(this.id,_e,et,hashing(_e),0),this}update(_e,et){const tt=hashing(_e);return this.root=this.root.update(this.id,_e,et,tt,0),this}delete(_e){const et=hashing(_e),tt=this.root.remove(this.id,_e,et,0);return tt!==void 0&&(this.root=tt[0]),this}finish(){return new HashMap(this.root)}}var NodeType;(function(j){j[j.Internal=0]="Internal",j[j.Leaf=1]="Leaf"})(NodeType||(NodeType={}));const MAX_SIZE=31,MIN_SIZE$1=15,HALF_NODE_SPLIT=7;function binaryFind(j,_e){let et=0,tt=j.length;for(;;){if(et+1===tt)return j[et]>=_e?et:tt;const rt=et+tt>>>1;if(j[rt]===_e)return rt;_e=MIN_SIZE$1)return lt;if(tt===rt)return lt.balanceTail(st),lt;const ut=this.getValue(tt);return lt.balanceChild(_e,st,it,ut,tt)}}removeMostRight(_e){const et=this.selfSize,[tt,rt,nt]=this.getChild(et).removeMostRight(_e),ot=this.toOwned(_e);return ot.size-=1,ot.children[et]=nt,nt.selfSizeMIN_SIZE$1)this.rotateRight(et,it,nt,ot);else if(st.selfSize>MIN_SIZE$1)this.rotateLeft(et,st,nt,ot);else{const lt=it.toOwned(_e),ut=st.toOwned(_e),ct=et.getKey(HALF_NODE_SPLIT),dt=et.getValue(HALF_NODE_SPLIT);lt.keys.push(this.getKey(nt-1)),lt.values.push(this.getValue(nt-1)),lt.keys.push(...et.keys.slice(0,HALF_NODE_SPLIT)),lt.values.push(...et.values.slice(0,HALF_NODE_SPLIT)),ut.keys.unshift(tt),ut.values.unshift(rt),ut.keys.unshift(...et.keys.slice(HALF_NODE_SPLIT+1,MIN_SIZE$1)),ut.values.unshift(...et.values.slice(HALF_NODE_SPLIT+1,MIN_SIZE$1)),this.keys.splice(nt-1,2,ct),this.values.splice(nt-1,2,dt),this.children.splice(nt-1,3,lt,ut),ot&&(lt.children.push(...et.children.slice(0,HALF_NODE_SPLIT+1)),ut.children.unshift(...et.children.slice(HALF_NODE_SPLIT+1,MIN_SIZE$1+1)),lt.updateSize(),ut.updateSize())}return this}rotateLeft(_e,et,tt,rt){const nt=et.toOwned(this.owner),ot=nt.keys.shift(),it=nt.values.shift(),st=this.getKey(tt),lt=this.getValue(tt);if(_e.keys.push(st),_e.values.push(lt),this.keys[tt]=ot,this.values[tt]=it,this.children[tt+1]=nt,rt){const ut=nt.children.shift();_e.children.push(ut);const ct=ut.size+1;_e.size+=ct,nt.size-=ct}}rotateRight(_e,et,tt,rt){const nt=et.toOwned(this.owner),ot=nt.keys.pop(),it=nt.values.pop(),st=this.getKey(tt-1),lt=this.getValue(tt-1);if(_e.keys.unshift(st),_e.values.unshift(lt),this.keys[tt-1]=ot,this.values[tt-1]=it,this.children[tt-1]=nt,rt){const ut=nt.children.pop();_e.children.unshift(ut);const ct=ut.size+1;_e.size+=ct,nt.size-=ct}}balanceTail(_e){const et=this.selfSize,tt=this.getChild(et-1),rt=_e.type===NodeType.Internal;tt.selfSize===MIN_SIZE$1?(_e.keys.unshift(this.getKey(et-1)),_e.values.unshift(this.getValue(et-1)),_e.keys.unshift(...tt.keys),_e.values.unshift(...tt.values),this.keys.splice(et-1,1),this.values.splice(et-1,1),this.children.splice(et-1,1),rt&&(_e.children.unshift(...tt.children),_e.size+=tt.size+1)):this.rotateRight(_e,tt,et,rt)}balanceHead(_e){const et=this.getChild(1),tt=_e.type===NodeType.Internal;et.selfSize===MIN_SIZE$1?(_e.keys.push(this.getKey(0)),_e.values.push(this.getValue(0)),_e.keys.push(...et.keys),_e.values.push(...et.values),this.keys.splice(0,1),this.values.splice(0,1),this.children.splice(1,1),tt&&(_e.children.push(...et.children),_e.size+=et.size+1)):this.rotateLeft(_e,et,0,tt)}updateWithSplit(_e,et,tt,rt,nt,ot){const it=this.toOwned(_e);it.keys.splice(ot,0,rt),it.values.splice(ot,0,nt),it.children.splice(ot,1,et,tt);const st=new InternalNode(_e,it.keys.splice(16,16),it.values.splice(16,16),it.children.splice(16,17),0),lt=it.keys.pop(),ut=it.values.pop();return it.updateSize(),st.updateSize(),[it,st,lt,ut]}updateSize(){let _e=this.selfSize;const et=this.children.length;for(let tt=0;tt{const[ot,it]=nt,st=et(it);return is$1(st,it)?nt:[ot,st]});return this.withRoot(this.itemId,this.hashRoot,rt)}[Symbol.iterator](){return this.entries()}clone(){return new Wl(this.itemId,this.hashRoot,this.sortedRoot)}entries(){return new OrderedMapIterator(new BTreeIterator(this.sortedRoot))}values(){return new MapIterator$1(this.entries(),([,_e])=>_e)}mutate(){return new OrderedMapBuilder(this.itemId,this.hashRoot,this.sortedRoot)}map(_e){const et=uid.peek(),tt=nt=>{const[ot,it]=nt,st=_e(it,ot);return is$1(it,st)?nt:[ot,st]},rt=this.sortedRoot.map(et,tt);return new Wl(this.itemId,this.hashRoot,rt)}forEach(_e){this.sortedRoot.forEach(([et,tt])=>{_e(tt,et)})}find(_e){const et=this.sortedRoot.find(([,tt])=>_e(tt));return et?et[1]:void 0}first(){const _e=this.entries().next();if(!_e.done)return _e.value[1]}filter(_e){const et=this.mutate();return this.forEach((tt,rt)=>{_e(tt,rt)||et.delete(rt)}),et.finish()}withRoot(_e,et,tt){return et===this.hashRoot&&tt===this.sortedRoot?this:new Wl(_e,et,tt)}};class OrderedMapIterator{constructor(_e){this.delegate=_e}[Symbol.iterator](){return this.clone()}next(){const _e=this.delegate.next();return _e.done?{done:!0,value:void 0}:{done:!1,value:_e.value[1]}}clone(){return new OrderedMapIterator(this.delegate.clone())}}class OrderedMapBuilder{constructor(_e,et,tt){this.id=uid.take(),this.itemId=_e,this.hashRoot=et,this.sortedRoot=tt}static empty(){const _e=uid.peek(),et=BitmapIndexedNode$1.empty(_e),tt=emptyRoot(_e);return new OrderedMapBuilder(0,et,tt)}static from(_e){if(Array.isArray(_e))return OrderedMapBuilder.fromArray(_e);const et=OrderedMapBuilder.empty(),tt=_e[Symbol.iterator]();let rt=tt.next();for(;!rt.done;){const[nt,ot]=rt.value;et.set(nt,ot),rt=tt.next()}return et}static fromArray(_e){const et=OrderedMapBuilder.empty();for(let tt=0;tt<_e.length;tt+=1){const[rt,nt]=_e[tt];et.set(rt,nt)}return et}delete(_e){const et=hashing(_e),tt=this.hashRoot.remove(this.id,_e,et,0);if(tt===void 0)return this;const rt=tt[1];return this.hashRoot=tt[0],this.sortedRoot=rootRemove(this.id,this.sortedRoot,rt),this}get(_e){var et;const tt=hashing(_e),rt=this.hashRoot.get(_e,tt,0);if(rt!==void 0)return(et=this.sortedRoot.get(rt))===null||et===void 0?void 0:et[1]}has(_e){const et=hashing(_e);return this.hashRoot.contains(_e,et,0)}set(_e,et){let tt=this.hashRoot.get(_e,hashing(_e),0);return tt===void 0&&(tt=this.itemId+1,this.itemId+=1,this.hashRoot=this.hashRoot.insert(this.id,_e,tt,hashing(_e),0)),this.sortedRoot=rootInsert(this.id,this.sortedRoot,tt,[_e,et]),this}update(_e,et){const tt=this.hashRoot.get(_e,hashing(_e),0);return tt?(this.sortedRoot=this.sortedRoot.update(this.id,tt,rt=>{const[nt,ot]=rt,it=et(ot);return is$1(it,ot)?rt:[nt,it]}),this):this}finish(){return new OrderedMap$1(this.itemId,this.hashRoot,this.sortedRoot)}}const getPortPosition=(j,_e,et)=>{const tt=getRectWidth(et,j),rt=getRectHeight(et,j),nt=_e.position?_e.position[0]*tt:tt*.5,ot=j.x+nt,it=_e.position?_e.position[1]*rt:rt,st=j.y+it;return{x:ot,y:st}},getPortPositionByPortId=(j,_e,et)=>{const tt=getNodeConfig(j,et);if(!tt)return;const nt=(j.ports||[]).find(ot=>ot.id===_e);if(!nt){Debug.warn(`invalid port id ${JSON.stringify(nt)}`);return}return getPortPosition(j,nt,tt)},identical=j=>j,isMobile=()=>[/Android/i,/webOS/i,/iPhone/i,/iPad/i,/iPod/i,/BlackBerry/i,/Windows Phone/i].some(_e=>navigator.userAgent.match(_e));var BrowserType;(function(j){j.Unknown="Unknown",j.Edge="Edge",j.EdgeChromium="EdgeChromium",j.Opera="Opera",j.Chrome="Chrome",j.IE="IE",j.Firefox="Firefox",j.Safari="Safari",j.Electron="Electron"})(BrowserType||(BrowserType={}));const getBrowser=()=>{const j=navigator.userAgent.toLowerCase();if(j.indexOf("electron")>-1)return BrowserType.Electron;switch(!0){case j.indexOf("edge")>-1:return BrowserType.Edge;case j.indexOf("edg")>-1:return BrowserType.EdgeChromium;case(j.indexOf("opr")>-1&&!!window.opr):return BrowserType.Opera;case(j.indexOf("chrome")>-1&&!!window.chrome):return BrowserType.Chrome;case j.indexOf("trident")>-1:return BrowserType.IE;case j.indexOf("firefox")>-1:return BrowserType.Firefox;case j.indexOf("safari")>-1:return BrowserType.Safari;default:return BrowserType.Unknown}},isSupported=()=>{if(isMobile())return!1;const j=getBrowser();return[BrowserType.Chrome,BrowserType.EdgeChromium,BrowserType.Firefox,BrowserType.Safari,BrowserType.Electron].indexOf(j)>-1},isMacOs=navigator.userAgent.includes("Macintosh"),metaControl=j=>isMacOs?j.metaKey:j.ctrlKey,checkIsMultiSelect=j=>j.shiftKey||metaControl(j),transformPoint=(j,_e,et)=>({x:et[0]*j+et[2]*_e+et[4],y:et[1]*j+et[3]*_e+et[5]}),reverseTransformPoint=(j,_e,et)=>{const[tt,rt,nt,ot,it,st]=et;return{x:((j-it)*ot-(_e-st)*nt)/(tt*ot-rt*nt),y:((j-it)*rt-(_e-st)*tt)/(rt*nt-tt*ot)}},getPointDeltaByClientDelta=(j,_e,et)=>{const[tt,rt,nt,ot]=et,it=ot*j/(tt*ot-rt*nt)+nt*_e/(rt*nt-tt*ot),st=rt*j/(rt*nt-tt*ot)+tt*_e/(tt*ot-rt*nt);return{x:it,y:st}},getClientDeltaByPointDelta=(j,_e,et)=>{if(!et)return{x:j,y:_e};const[tt,rt,nt,ot]=et;return transformPoint(j,_e,[tt,rt,nt,ot,0,0])},getRealPointFromClientPoint=(j,_e,et)=>{const{rect:tt}=et,rt=j-tt.left,nt=_e-tt.top;return reverseTransformPoint(rt,nt,et.transformMatrix)},getClientPointFromRealPoint=(j,_e,et)=>{const{x:tt,y:rt}=transformPoint(j,_e,et.transformMatrix),{rect:nt}=et;return{x:tt+nt.left,y:rt+nt.top}},getContainerClientPoint=(j,_e,et)=>{const tt=getClientPointFromRealPoint(j,_e,et),{rect:rt}=et;return{x:tt.x-rt.left,y:tt.y-rt.top}};function markEdgeDirty(j,_e){j.update(_e,et=>et.shallow())}const getNearestConnectablePort=j=>{const{parentNode:_e,clientX:et,clientY:tt,graphConfig:rt,viewport:nt}=j;let ot=1/0,it;if(!_e.ports)return;const st=getRealPointFromClientPoint(et,tt,nt);return _e.ports.forEach(lt=>{if(isConnectable(rt,Object.assign(Object.assign({},j),{model:lt}))){const ut=getPortPositionByPortId(_e,lt.id,rt);if(!ut)return;const ct=st.x-ut.x,dt=st.y-ut.y,ft=ct*ct+dt*dt;ft{const et=j.getPortConfig(_e.model);return et?et.getIsConnectable(_e):!1},filterSelectedItems=j=>{const _e=new Map,et=[];return j.nodes.forEach(({inner:tt})=>{isSelected(tt)&&_e.set(tt.id,tt)}),j.edges.forEach(({inner:tt})=>{(isSelected(tt)||_e.has(tt.source)&&_e.has(tt.target))&&et.push(tt)}),{nodes:Array.from(_e.values()),edges:et}},getNeighborPorts=(j,_e,et)=>{const tt=[],rt=j.getEdgesBySource(_e,et),nt=j.getEdgesByTarget(_e,et);return rt==null||rt.forEach(ot=>{const it=j.edges.get(ot);it&&tt.push({nodeId:it.target,portId:it.targetPortId})}),nt==null||nt.forEach(ot=>{const it=j.edges.get(ot);it&&tt.push({nodeId:it.source,portId:it.sourcePortId})}),tt},unSelectAllEntity=()=>j=>j.mapNodes(_e=>_e.update(et=>{var tt;const rt=Object.assign(Object.assign({},et),{ports:(tt=et.ports)===null||tt===void 0?void 0:tt.map(updateStatus(replace$1(GraphPortStatus.Default)))});return updateStatus(replace$1(GraphNodeStatus.Default))(rt)})).mapEdges(_e=>_e.update(updateStatus(replace$1(GraphEdgeStatus.Default)))),nodeSelection=(j,_e)=>{if(isNodeEditing(_e))return identical;const et=checkIsMultiSelect(j);return isSelected(_e)&&!et?identical:tt=>{const rt=et?nt=>nt.id!==_e.id?isSelected(nt):j.button===MouseEventButton.Secondary?!0:!isSelected(_e):nt=>nt.id===_e.id;return tt.selectNodes(rt,_e.id)}},getNodeAutomationId=j=>{var _e;return`node-container-${(_e=j.name)!==null&&_e!==void 0?_e:"unnamed"}-${j.id}`},getPortAutomationId=(j,_e)=>`port-${_e.name}-${_e.id}-${j.name}-${j.id}`,getNodeUid=(j,_e)=>`node:${j}:${_e.id}`,getPortUid=(j,_e,et)=>`port:${j}:${_e.id}:${et.id}`,getEdgeUid=(j,_e)=>`edge:${j}:${_e.id}`;function preventSpread(j){Object.defineProperty(j,"__preventSpread",{enumerable:!0,configurable:!1,get(){document.currentScript&&Debug.error(`${j.constructor.name} is a class, which should not be used in the spread syntax or argument of Object.assign`)}})}class EdgeModel{get id(){return this.inner.id}get automationId(){return this.inner.automationId}get source(){return this.inner.source}get target(){return this.inner.target}get sourcePortId(){return this.inner.sourcePortId}get targetPortId(){return this.inner.targetPortId}get status(){return this.inner.status}get data(){return this.inner.data}constructor(_e){this.inner=_e,preventSpread(this)}static fromJSON(_e){return new EdgeModel(_e)}updateStatus(_e){return this.update(updateStatus(_e))}update(_e){const et=_e(this.inner);return et===this.inner?this:new EdgeModel(et)}shallow(){return new EdgeModel(this.inner)}toJSON(){return this.inner}}const is$2=Object.is;function mapCow(j,_e){const et=[];let tt=!0;for(let rt=0;rttt.id===_e)}link({prev:_e,next:et}){return _e===this.prev&&et===this.next?this:new NodeModel(this.inner,this.portPositionCache,_e??this.prev,et??this.next)}updateStatus(_e){return this.update(updateStatus(_e))}update(_e){const et=_e(this.inner);return et===this.inner?this:new NodeModel(et,new Map,this.prev,this.next)}updateData(_e){return this.data?this.update(et=>{const tt=_e(et.data);return tt===et.data?et:Object.assign(Object.assign({},et),{data:tt})}):this}getPortPosition(_e,et){let tt=this.portPositionCache.get(_e);return tt||(tt=getPortPositionByPortId(this.inner,_e,et),this.portPositionCache.set(_e,tt)),tt}hasPort(_e){var et;return!!(!((et=this.inner.ports)===null||et===void 0)&&et.find(tt=>tt.id===_e))}updatePositionAndSize(_e){const{x:et,y:tt,width:rt,height:nt}=_e,ot=Object.assign(Object.assign({},this.inner),{x:et,y:tt,width:rt??this.inner.width,height:nt??this.inner.height});return new NodeModel(ot,new Map,this.prev,this.next)}updatePorts(_e){if(!this.inner.ports)return this;const et=mapCow(this.inner.ports,_e),tt=this.inner.ports===et?this.inner:Object.assign(Object.assign({},this.inner),{ports:et});return tt===this.inner?this:new NodeModel(tt,new Map,this.prev,this.next)}invalidCache(){return new NodeModel(this.inner,new Map,this.prev,this.next)}toJSON(){return this.inner}}class GraphModel{constructor(_e){this.nodes=_e.nodes,this.edges=_e.edges,this.groups=_e.groups,this.head=_e.head,this.tail=_e.tail,this.edgesBySource=_e.edgesBySource,this.edgesByTarget=_e.edgesByTarget,this.selectedNodes=_e.selectedNodes,preventSpread(this)}static empty(){return new GraphModel({nodes:OrderedMap$1.empty(),edges:HashMap.empty(),groups:[],head:void 0,tail:void 0,edgesBySource:HashMap.empty(),edgesByTarget:HashMap.empty(),selectedNodes:new Set})}static fromJSON(_e){var et;const tt=OrderedMap$1.empty().mutate(),rt=HashMap.empty().mutate();let nt,ot;if(_e.nodes.length===0)nt=void 0,ot=void 0;else if(_e.nodes.length===1){const lt=_e.nodes[0];tt.set(lt.id,NodeModel.fromJSON(lt,void 0,void 0)),nt=lt.id,ot=lt.id}else{const lt=_e.nodes[0],ut=_e.nodes[1],ct=_e.nodes[_e.nodes.length-1];nt=lt.id,ot=ct.id,tt.set(lt.id,NodeModel.fromJSON(lt,void 0,ut.id));let dt=_e.nodes[0];if(_e.nodes.length>2)for(let ft=1;ft<_e.nodes.length-1;ft+=1){const pt=_e.nodes[ft],gt=_e.nodes[ft+1];tt.set(pt.id,NodeModel.fromJSON(pt,dt.id,gt.id)),dt=pt}tt.set(ct.id,NodeModel.fromJSON(ct,dt.id,void 0))}const it=HashMapBuilder.empty(),st=HashMapBuilder.empty();for(const lt of _e.edges)rt.set(lt.id,EdgeModel.fromJSON(lt)),setEdgeByPortMutable(it,lt.id,lt.source,lt.sourcePortId),setEdgeByPortMutable(st,lt.id,lt.target,lt.targetPortId);return new GraphModel({nodes:tt.finish(),edges:rt.finish(),groups:(et=_e.groups)!==null&&et!==void 0?et:[],head:nt,tail:ot,edgesBySource:it.finish(),edgesByTarget:st.finish(),selectedNodes:new Set})}getNavigationFirstNode(){if(this.head!==void 0)return this.nodes.get(this.head)}updateNode(_e,et){var tt,rt;const nt=this.nodes.update(_e,it=>it.update(et));if(nt===this.nodes)return this;const ot=this.edges.mutate();return(tt=this.edgesBySource.get(_e))===null||tt===void 0||tt.forEach(it=>{it.forEach(st=>{markEdgeDirty(ot,st)})}),(rt=this.edgesByTarget.get(_e))===null||rt===void 0||rt.forEach(it=>{it.forEach(st=>{markEdgeDirty(ot,st)})}),this.merge({nodes:nt,edges:ot.finish()})}updateNodeData(_e,et){return this.merge({nodes:this.nodes.update(_e,tt=>tt.updateData(et))})}updatePort(_e,et,tt){const rt=this.nodes.update(_e,nt=>nt.updatePorts(ot=>ot.id===et?tt(ot):ot));return this.merge({nodes:rt})}insertNode(_e){const et=this.nodes.mutate().set(_e.id,NodeModel.fromJSON(_e,this.tail,void 0));return this.tail&&!this.nodes.has(_e.id)&&et.update(this.tail,tt=>tt.link({next:_e.id})),this.merge({nodes:et.finish(),head:this.nodes.size===0?_e.id:this.head,tail:_e.id})}deleteItems(_e){var et;const tt=new Set,rt=this.nodes.mutate();let nt=this.head===void 0?void 0:this.nodes.get(this.head),ot=nt,it;const st=this.edgesBySource.mutate(),lt=this.edgesByTarget.mutate();for(;ot!==void 0;){const ct=ot.next?this.nodes.get(ot.next):void 0;!((et=_e.node)===null||et===void 0)&&et.call(_e,ot.inner)?(rt.update(ot.id,dt=>dt.link({prev:it==null?void 0:it.id}).update(ft=>has$1(GraphNodeStatus.Editing)(ft.status)?ft:Object.assign(Object.assign({},ft),{status:GraphNodeStatus.Default}))),it=ot):(rt.delete(ot.id),st.delete(ot.id),lt.delete(ot.id),tt.add(ot.id),it&&rt.update(it.id,dt=>dt.link({next:ot==null?void 0:ot.next})),ct&&rt.update(ct.id,dt=>dt.link({prev:it==null?void 0:it.id})),ot===nt&&(nt=ct)),ot=ct}const ut=this.edges.mutate();return this.edges.forEach(ct=>{var dt,ft;!tt.has(ct.source)&&!tt.has(ct.target)&&(!((ft=(dt=_e.edge)===null||dt===void 0?void 0:dt.call(_e,ct))!==null&&ft!==void 0)||ft)?ut.update(ct.id,pt=>pt.update(updateStatus(replace$1(GraphEdgeStatus.Default)))):(ut.delete(ct.id),deleteEdgeByPort(st,ct.id,ct.source,ct.sourcePortId),deleteEdgeByPort(lt,ct.id,ct.target,ct.targetPortId))}),this.merge({nodes:rt.finish(),edges:ut.finish(),head:nt==null?void 0:nt.id,tail:it==null?void 0:it.id,edgesBySource:st.finish(),edgesByTarget:lt.finish()})}insertEdge(_e){if(this.isEdgeExist(_e.source,_e.sourcePortId,_e.target,_e.targetPortId)||!this.nodes.has(_e.source)||!this.nodes.has(_e.target))return this;const et=setEdgeByPort(this.edgesBySource,_e.id,_e.source,_e.sourcePortId),tt=setEdgeByPort(this.edgesByTarget,_e.id,_e.target,_e.targetPortId);return this.merge({nodes:this.nodes.update(_e.source,rt=>rt.invalidCache()).update(_e.target,rt=>rt.invalidCache()),edges:this.edges.set(_e.id,EdgeModel.fromJSON(_e)).map(rt=>rt.updateStatus(replace$1(GraphEdgeStatus.Default))),edgesBySource:et,edgesByTarget:tt})}updateEdge(_e,et){return this.merge({edges:this.edges.update(_e,tt=>tt.update(et))})}deleteEdge(_e){const et=this.edges.get(_e);return et?this.merge({edges:this.edges.delete(_e),edgesBySource:deleteEdgeByPort(this.edgesBySource,et.id,et.source,et.sourcePortId),edgesByTarget:deleteEdgeByPort(this.edgesByTarget,et.id,et.target,et.targetPortId)}):this}updateNodesPositionAndSize(_e){const et=new Set,tt=this.nodes.mutate(),rt=this.edges.mutate();return _e.forEach(nt=>{var ot,it;et.add(nt.id),tt.update(nt.id,st=>st.updatePositionAndSize(nt)),(ot=this.edgesBySource.get(nt.id))===null||ot===void 0||ot.forEach(st=>{st.forEach(lt=>{markEdgeDirty(rt,lt)})}),(it=this.edgesByTarget.get(nt.id))===null||it===void 0||it.forEach(st=>{st.forEach(lt=>{markEdgeDirty(rt,lt)})})}),this.merge({nodes:tt.finish(),edges:rt.finish()})}mapNodes(_e){return this.merge({nodes:this.nodes.map(_e)})}mapEdges(_e){return this.merge({edges:this.edges.map(_e)})}selectNodes(_e,et){const tt=new Set,rt=this.nodes.map(it=>{const st=_e(it.inner);return st&&tt.add(it.id),it.updatePorts(updateStatus(replace$1(GraphPortStatus.Default))).updateStatus(resetConnectStatus(st?GraphNodeStatus.Selected:GraphNodeStatus.UnconnectedToSelected))}).mutate();if(tt.size===0)this.nodes.forEach(it=>rt.update(it.id,st=>st.updateStatus(replace$1(GraphNodeStatus.Default))));else if(et){const it=rt.get(et);it&&(rt.delete(et),rt.set(it.id,it))}const nt=it=>{rt.update(it,st=>st.updateStatus(replace$1(isSelected(st)?GraphNodeStatus.Selected:GraphNodeStatus.ConnectedToSelected)))},ot=tt.size?this.edges.map(it=>{let st=GraphEdgeStatus.UnconnectedToSelected;return tt.has(it.source)&&(nt(it.target),st=GraphEdgeStatus.ConnectedToSelected),tt.has(it.target)&&(nt(it.source),st=GraphEdgeStatus.ConnectedToSelected),it.updateStatus(replace$1(st))}):this.edges.map(it=>it.updateStatus(replace$1(GraphEdgeStatus.Default)));return this.merge({nodes:rt.finish(),edges:ot,selectedNodes:tt})}getEdgesBySource(_e,et){var tt;return(tt=this.edgesBySource.get(_e))===null||tt===void 0?void 0:tt.get(et)}getEdgesByTarget(_e,et){var tt;return(tt=this.edgesByTarget.get(_e))===null||tt===void 0?void 0:tt.get(et)}isPortConnectedAsSource(_e,et){var tt,rt;return((rt=(tt=this.getEdgesBySource(_e,et))===null||tt===void 0?void 0:tt.size)!==null&&rt!==void 0?rt:0)>0}isPortConnectedAsTarget(_e,et){var tt,rt;return((rt=(tt=this.getEdgesByTarget(_e,et))===null||tt===void 0?void 0:tt.size)!==null&&rt!==void 0?rt:0)>0}shallow(){return this.merge({})}toJSON(){const _e=[];let et=this.head&&this.nodes.get(this.head);for(;et;)_e.push(et.inner),et=et.next&&this.nodes.get(et.next);const tt=Array.from(this.edges.values()).map(rt=>rt.inner);return{nodes:_e,edges:tt}}isEdgeExist(_e,et,tt,rt){const nt=this.getEdgesBySource(_e,et),ot=this.getEdgesByTarget(tt,rt);if(!nt||!ot)return!1;let it=!1;return nt.forEach(st=>{ot.has(st)&&(it=!0)}),it}merge(_e){var et,tt,rt,nt,ot,it,st,lt;return new GraphModel({nodes:(et=_e.nodes)!==null&&et!==void 0?et:this.nodes,edges:(tt=_e.edges)!==null&&tt!==void 0?tt:this.edges,groups:(rt=_e.groups)!==null&&rt!==void 0?rt:this.groups,head:(nt=_e.head)!==null&&nt!==void 0?nt:this.head,tail:(ot=_e.tail)!==null&&ot!==void 0?ot:this.tail,edgesBySource:(it=_e.edgesBySource)!==null&&it!==void 0?it:this.edgesBySource,edgesByTarget:(st=_e.edgesByTarget)!==null&&st!==void 0?st:this.edgesByTarget,selectedNodes:(lt=_e.selectedNodes)!==null&<!==void 0?lt:this.selectedNodes})}}function setEdgeByPort(j,_e,et,tt){return j.has(et)?j.update(et,rt=>{const nt=rt.get(tt);return new Map(rt).set(tt,(nt?new Set(nt):new Set).add(_e))}):j.set(et,new Map([[tt,new Set([_e])]]))}function setEdgeByPortMutable(j,_e,et,tt){j.has(et)?j.update(et,rt=>{let nt=rt.get(tt);return nt||(nt=new Set,rt.set(tt,nt)),nt.add(_e),rt}):j.set(et,new Map([[tt,new Set([_e])]]))}function deleteEdgeByPort(j,_e,et,tt){return j.has(et)?j.update(et,rt=>{const nt=rt.get(tt);if(!nt)return rt;const ot=new Set(nt);return ot.delete(_e),new Map(rt).set(tt,ot)}):j}var CanvasMouseMode;(function(j){j.Pan="Pan",j.Select="Select"})(CanvasMouseMode||(CanvasMouseMode={}));var GraphBehavior;(function(j){j.Default="default",j.Dragging="dragging",j.Panning="panning",j.MultiSelect="multiSelect",j.Connecting="connecting",j.AddingNode="addingNode"})(GraphBehavior||(GraphBehavior={}));function clamp$1(j,_e,et){return j>et?j:_e{const{instance:tt,maxWait:rt}=et||{};let nt=0,ot;return(...st)=>{if(window.clearTimeout(nt),isDef(rt)){const lt=Date.now();if(!isDef(ot))ot=lt;else if(lt-ot>=rt){ot=void 0,it(st);return}}nt=window.setTimeout(()=>{it(st)},_e)};function it(st){j.apply(tt,st)}},emptyArrayInstance=[];function constantEmptyArray(){return emptyArrayInstance}const checkRectIntersect=(j,_e)=>{const et=j.maxX<_e.minX,tt=j.minX>_e.maxX,rt=j.minY>_e.maxY,nt=j.maxY<_e.minY;return!(et||tt||rt||nt)},isPointInRect=(j,_e)=>{const{minX:et,minY:tt,maxX:rt,maxY:nt}=j,{x:ot,y:it}=_e;return ot>et&&ottt&&itMath.pow(j,2),distance=(j,_e,et,tt)=>Math.sqrt(square$1(et-j)+square$1(tt-_e)),getLinearFunction=(j,_e,et,tt)=>j===et?()=>Number.MAX_SAFE_INTEGER:rt=>(tt-_e)/(et-j)*rt+(_e*et-tt*j)/(et-j),shallowEqual$1=(j,_e)=>{if(!j||j.length!==_e.length)return!1;for(let et=0;et{const nt=_e?Array.isArray(_e)?_e:_e.apply(void 0,rt):rt;return shallowEqual$1(et,nt)||(et=nt,tt=j.apply(void 0,rt)),tt}}var Direction$1;(function(j){j[j.X=0]="X",j[j.Y=1]="Y",j[j.XY=2]="XY"})(Direction$1||(Direction$1={}));const isViewportComplete=j=>!!j.rect,getNodeRect=(j,_e)=>{const{x:et,y:tt}=j,{width:rt,height:nt}=getNodeSize(j,_e);return{x:et,y:tt,width:rt,height:nt}},isNodeVisible=(j,_e,et)=>isRectVisible(getNodeRect(j,et),_e),isRectVisible=(j,_e)=>{const{x:et,y:tt,width:rt,height:nt}=j;return isPointVisible({x:et,y:tt},_e)||isPointVisible({x:et+rt,y:tt},_e)||isPointVisible({x:et+rt,y:tt+nt},_e)||isPointVisible({x:et,y:tt+nt},_e)},isPointVisible=(j,_e)=>{const{x:et,y:tt}=getContainerClientPoint(j.x,j.y,_e),{height:rt,width:nt}=_e.rect;return et>0&&et0&&tt{const tt=[];return j.forEach(rt=>{isNodeVisible(rt,_e,et)&&tt.push(rt.inner)}),tt},getRenderedNodes=(j,_e)=>{const et=[],tt=getRenderedArea(_e);return j.forEach(rt=>{isNodeInRenderedArea(rt,tt)&&et.push(rt.inner)}),et},isNodeInRenderedArea=(j,_e)=>isPointInRect(_e,j),getVisibleArea=j=>{if(!isViewportComplete(j))return{minX:0,minY:0,maxX:0,maxY:0};const{rect:_e,transformMatrix:et}=j,tt=0,rt=0,nt=_e.width,ot=_e.height,it=reverseTransformPoint(tt,rt,et),st=reverseTransformPoint(nt,ot,et);return{minX:it.x,minY:it.y,maxX:st.x,maxY:st.y}},getRenderedArea=j=>{if(!isViewportComplete(j))return{minX:0,minY:0,maxX:0,maxY:0};const{rect:_e,transformMatrix:et}=j,tt=0,rt=0,nt=_e.width,ot=_e.height,it=reverseTransformPoint(tt-_e.width,rt-_e.height,et),st=reverseTransformPoint(nt+_e.width,ot+_e.height,et);return{minX:it.x,minY:it.y,maxX:st.x,maxY:st.y}},normalizeSpacing=j=>j?typeof j=="number"?{top:j,right:j,bottom:j,left:j}:Object.assign({top:0,right:0,bottom:0,left:0},j):{top:0,right:0,bottom:0,left:0},zoomTo=({scale:j,anchor:_e,direction:et,limitScale:tt})=>rt=>{const nt=tt(j)/rt.transformMatrix[0],ot=tt(j)/rt.transformMatrix[3],{x:it,y:st}=_e,lt=it*(1-nt),ut=st*(1-ot);let ct;switch(et){case Direction$1.X:ct=[j,0,0,rt.transformMatrix[3],rt.transformMatrix[4]*nt+lt,rt.transformMatrix[5]];break;case Direction$1.Y:ct=[rt.transformMatrix[0],0,0,j,rt.transformMatrix[4],rt.transformMatrix[5]*ot+ut];break;case Direction$1.XY:default:ct=[j,0,0,j,rt.transformMatrix[4]*nt+lt,rt.transformMatrix[5]*ot+ut]}return Object.assign(Object.assign({},rt),{transformMatrix:ct})},zoom=({scale:j,anchor:_e,direction:et,limitScale:tt})=>j===1?identical:rt=>{let nt;switch(et){case Direction$1.X:return zoomTo({anchor:_e,direction:et,limitScale:tt,scale:rt.transformMatrix[0]*j})(rt);case Direction$1.Y:return zoomTo({anchor:_e,direction:et,limitScale:tt,scale:rt.transformMatrix[3]*j})(rt);case Direction$1.XY:default:{const ot=tt(rt.transformMatrix[0]*j),it=tt(rt.transformMatrix[3]*j),st=ot/rt.transformMatrix[0],lt=it/rt.transformMatrix[3],{x:ut,y:ct}=_e,dt=ut*(1-st),ft=ct*(1-lt);nt=[ot,0,0,it,rt.transformMatrix[4]*st+dt,rt.transformMatrix[5]*lt+ft]}}return Object.assign(Object.assign({},rt),{transformMatrix:nt})},pan=(j,_e)=>j===0&&_e===0?identical:et=>Object.assign(Object.assign({},et),{transformMatrix:[et.transformMatrix[0],et.transformMatrix[1],et.transformMatrix[2],et.transformMatrix[3],et.transformMatrix[4]+j,et.transformMatrix[5]+_e]}),minimapPan=(j,_e)=>j===0&&_e===0?identical:et=>{const[tt,rt,nt,ot]=et.transformMatrix;return Object.assign(Object.assign({},et),{transformMatrix:[tt,rt,nt,ot,et.transformMatrix[4]+tt*j+rt*_e,et.transformMatrix[5]+nt*j+ot*_e]})},getContentArea$1=(j,_e,et)=>{let tt=1/0,rt=1/0,nt=1/0,ot=1/0,it=-1/0,st=-1/0;return(et===void 0?dt=>j.nodes.forEach(dt):dt=>et==null?void 0:et.forEach(ft=>{const pt=j.nodes.get(ft);pt&&dt(pt)}))(dt=>{const{width:ft,height:pt}=getNodeSize(dt,_e);dt.xit&&(it=dt.x+ft),dt.y+pt>st&&(st=dt.y+pt),ft{let{width:et,height:tt}=j,{width:rt,height:nt}=_e;if(et>rt){const ot=et;et=rt,rt=ot}if(tt>nt){const ot=tt;tt=nt,nt=ot}return{nodeMinVisibleWidth:et,nodeMinVisibleHeight:tt,nodeMaxVisibleWidth:rt,nodeMaxVisibleHeight:nt}},getScaleRange=(j,{width:_e,height:et})=>{const{nodeMinVisibleWidth:tt,nodeMinVisibleHeight:rt,nodeMaxVisibleWidth:nt,nodeMaxVisibleHeight:ot}=normalizeNodeVisibleMinMax(j);let it=0,st=0,lt=1/0,ut=1/0;return _e&&(it=tt/_e,lt=nt/_e),et&&(st=rt/et,ut=ot/et),{minScaleX:it,minScaleY:st,maxScaleX:lt,maxScaleY:ut}},getZoomFitMatrix=j=>{const{data:_e,graphConfig:et,disablePan:tt,direction:rt,rect:nt}=j,{nodes:ot}=_e;if(ot.size===0)return[1,0,0,1,0,0];const{minNodeWidth:it,minNodeHeight:st,minNodeX:lt,minNodeY:ut,maxNodeX:ct,maxNodeY:dt}=getContentArea$1(_e,et),{minScaleX:ft,minScaleY:pt,maxScaleX:gt,maxScaleY:mt}=getScaleRange(j,{width:it,height:st}),bt=normalizeSpacing(j.spacing),{width:_t,height:xt}=nt,yt=_t/(ct-lt+bt.left+bt.right),Et=xt/(dt-ut+bt.top+bt.bottom),St=rt===Direction$1.Y?Math.min(Math.max(ft,pt,Et),gt,mt):Math.min(Math.max(ft,pt,Math.min(yt,Et)),mt,mt),Tt=rt===Direction$1.XY?Math.min(Math.max(ft,yt),gt):St,kt=rt===Direction$1.XY?Math.min(Math.max(pt,Et),mt):St;if(tt)return[Tt,0,0,kt,0,0];const $t=-Tt*(lt-bt.left),Ct=-kt*(ut-bt.top);if(getVisibleNodes(_e.nodes,{rect:nt,transformMatrix:[Tt,0,0,kt,$t,Ct]},et).length>0)return[Tt,0,0,kt,$t,Ct];let Nt=_e.nodes.first();return Nt&&_e.nodes.forEach(Ot=>{Nt.y>Ot.y&&(Nt=Ot)}),[Tt,0,0,kt,-Tt*(Nt.x-bt.left),-kt*(Nt.y-bt.top)]},focusArea=(j,_e,et,tt,rt)=>{const nt=et-j,ot=tt-_e,it=Math.min(rt.rect.width/nt,rt.rect.height/ot),st=-it*(j+nt/2)+rt.rect.width/2,lt=-it*(_e+ot/2)+rt.rect.height/2;return Object.assign(Object.assign({},rt),{transformMatrix:[it,0,0,it,st,lt]})};function getContainerCenter(j){const _e=j.current;if(!_e)return;const et=_e.width/2,tt=_e.height/2;return{x:et,y:tt}}function getRelativePoint(j,_e){const et=_e.clientX-j.left,tt=_e.clientY-j.top;return{x:et,y:tt}}const scrollIntoView$1=(j,_e,et,tt,rt)=>{if(!et)return identical;const{width:nt,height:ot}=et;return!(j<0||j>nt||_e<0||_e>ot)&&!tt?identical:st=>{const lt=rt?rt.x-j:nt/2-j,ut=rt?rt.y-_e:ot/2-_e;return Object.assign(Object.assign({},st),{transformMatrix:[st.transformMatrix[0],st.transformMatrix[1],st.transformMatrix[2],st.transformMatrix[3],st.transformMatrix[4]+lt,st.transformMatrix[5]+ut]})}},getScaleLimit=(j,_e)=>{const{minNodeWidth:et,minNodeHeight:tt}=getContentArea$1(j,_e.graphConfig),{minScaleX:rt,minScaleY:nt}=getScaleRange(_e,{width:et,height:tt});return Math.max(rt,nt)},getContentArea=memoize$2(getContentArea$1),getOffsetLimit=({data:j,graphConfig:_e,rect:et,transformMatrix:tt,canvasBoundaryPadding:rt,groupPadding:nt})=>{var ot,it,st,lt;const ut=getContentArea(j,_e),ct=getClientDeltaByPointDelta(ut.minNodeX-((nt==null?void 0:nt.left)||0),ut.minNodeY-((nt==null?void 0:nt.top)||0),tt);ct.x-=(ot=rt==null?void 0:rt.left)!==null&&ot!==void 0?ot:0,ct.y-=(it=rt==null?void 0:rt.top)!==null&&it!==void 0?it:0;const dt=getClientDeltaByPointDelta(ut.maxNodeX+((nt==null?void 0:nt.right)||0),ut.maxNodeY+((nt==null?void 0:nt.bottom)||0),tt);dt.x+=(st=rt==null?void 0:rt.right)!==null&&st!==void 0?st:0,dt.y+=(lt=rt==null?void 0:rt.bottom)!==null&<!==void 0?lt:0;let ft=-ct.x||0,pt=-ct.y||0,gt=et.width-dt.x||0,mt=et.height-dt.y||0;if(gt({present:_e,past:{next:j.past,value:et(j.present)},future:null}),undo=j=>j.past?{present:j.past.value,past:j.past.next,future:{next:j.future,value:j.present}}:j,redo=j=>j.future?{present:j.future.value,past:{next:j.past,value:j.present},future:j.future.next}:j,resetUndoStack=j=>({present:j,future:null,past:null}),isWithinThreshold=(j,_e,et)=>Math.abs(j){warnGraphStateContext()}},EMPTY_CONNECT_STATE={sourceNode:void 0,sourcePort:void 0,targetNode:void 0,targetPort:void 0,movingPoint:{x:0,y:0}},GraphValueContext=reactExports.createContext(new Proxy(GraphModel.empty(),{get:(j,_e)=>(console.warn("Default graph data value is being used. Please check if you forget rendering Graph component"),Reflect.get(j,_e))})),GraphStateContext=reactExports.createContext(defaultGraphStateContext),SlotsContext=reactExports.createContext({});class EventChannel{constructor(){this.listenersRef=reactExports.createRef(),this.externalHandlerRef=reactExports.createRef(),this.queue=[],this.working=!1}trigger(_e){this.working?this.queue.push(_e):(this.working=!0,reactDomExports.unstable_batchedUpdates(()=>{this.callHandlers(_e);for(let et=0;et{this.dispatchDelegate(tt,rt)},this.state=_e,this.UNSAFE_latestState=_e,this.dispatchDelegate=et}setMouseClientPosition(_e){this.mouseClientPoint=_e}unsetMouseClientPosition(){this.mouseClientPoint=void 0}getMouseClientPosition(){return this.mouseClientPoint}getEnabledFeatures(){return this.state.settings.features}getBehavior(){return this.behavior}setBehavior(_e){this.behavior=_e}getData(){return this.state.data.present}getGlobalEventTarget(){var _e,et;return(et=(_e=this.getGlobalEventTargetDelegate)===null||_e===void 0?void 0:_e.call(this))!==null&&et!==void 0?et:window}}function useConst(j){const _e=reactExports.useRef();return _e.current===void 0&&(_e.current=j()),_e.current}const noop$2=()=>{};class ErrorBoundary extends reactExports.Component{constructor(_e){super(_e),this.state={hasError:!1}}static getDerivedStateFromError(_e){return{hasError:!0,error:_e}}componentDidCatch(_e,et){console.error(_e),this.setState({error:_e,errorInfo:et})}render(){var _e,et;if(!this.state.hasError)return this.props.children;if(this.props.renderOnError)return(_e=this.props.renderOnError(this.state.error,this.state.errorInfo,this.props.children))!==null&&_e!==void 0?_e:null;const tt=this.state.errorInfo?(et=this.state.errorInfo.componentStack)===null||et===void 0?void 0:et.split(` +`):[];return jsxRuntimeExports.jsxs("div",Object.assign({style:{color:"red"}},{children:[jsxRuntimeExports.jsx("h1",{children:"Something went wrong."}),jsxRuntimeExports.jsx("p",{children:`Error: ${this.state.error}`}),jsxRuntimeExports.jsx("p",{children:`ErrorInfo: ${JSON.stringify(this.state.errorInfo)}`}),jsxRuntimeExports.jsx("h2",{children:"Component Stack"}),(tt??[]).map((rt,nt)=>jsxRuntimeExports.jsx("p",{children:rt},nt))]}))}}const EMPTY_CONNECT_CONTEXT={sourceNode:void 0,sourcePort:void 0,targetNode:void 0,targetPort:void 0},ConnectingStateContext=reactExports.createContext(EMPTY_CONNECT_CONTEXT);ConnectingStateContext.displayName="ConnectingStateContext";const ConnectingState=({children:j,data:_e,connectState:et})=>{let tt,rt,nt,ot;et&&(tt=_e.nodes.get(et.sourceNode),rt=tt==null?void 0:tt.getPort(et.sourcePort),nt=et.targetNode?_e.nodes.get(et.targetNode):void 0,ot=et.targetPort?nt==null?void 0:nt.getPort(et.targetPort):void 0);const it=reactExports.useMemo(()=>({sourceNode:tt,sourcePort:rt,targetNode:nt,targetPort:ot}),[tt,rt,nt,ot]);return jsxRuntimeExports.jsx(ConnectingStateContext.Provider,Object.assign({value:it},{children:j}))};ConnectingState.displayName="ConnectingState";const AlignmentLinesContext=reactExports.createContext([]),GraphControllerContext=reactExports.createContext(new GraphController(EMPTY_GRAPH_STATE,noop$2));function GraphStateStore(j){const{graphController:_e,state:et,dispatch:tt,children:rt}=j,nt=reactExports.useMemo(()=>({state:et,dispatch:tt}),[et,tt]);return jsxRuntimeExports.jsx(GraphConfigContext.Provider,Object.assign({value:et.settings.graphConfig},{children:jsxRuntimeExports.jsx(GraphControllerContext.Provider,Object.assign({value:_e},{children:jsxRuntimeExports.jsx(ConnectingState,Object.assign({data:et.data.present,connectState:et.connectState},{children:jsxRuntimeExports.jsx(GraphStateContext.Provider,Object.assign({value:nt},{children:jsxRuntimeExports.jsx(ViewportContext.Provider,Object.assign({value:et.viewport},{children:jsxRuntimeExports.jsx(GraphValueContext.Provider,Object.assign({value:et.data.present},{children:jsxRuntimeExports.jsx(AlignmentLinesContext.Provider,Object.assign({value:et.alignmentLines},{children:rt}))}))}))}))}))}))}))}const ReactDagEditor=j=>{var _e;reactExports.useEffect(()=>{j.handleWarning&&(Debug.warn=j.handleWarning)},[]);const et=(_e=j.handleError)===null||_e===void 0?void 0:_e.bind(null),{state:tt,dispatch:rt,getGlobalEventTarget:nt}=j,ot=useConst(()=>new GraphController(tt,rt));return ot.UNSAFE_latestState=tt,reactExports.useLayoutEffect(()=>{ot.state=tt,ot.dispatchDelegate=rt,ot.getGlobalEventTargetDelegate=nt},[rt,nt,ot,tt]),reactExports.useEffect(()=>()=>{ot.dispatchDelegate=noop$2},[ot]),jsxRuntimeExports.jsx(ErrorBoundary,Object.assign({renderOnError:et},{children:jsxRuntimeExports.jsx(SlotsContext.Provider,Object.assign({value:j},{children:jsxRuntimeExports.jsx(GraphStateStore,Object.assign({state:tt,dispatch:rt,graphController:ot},{children:jsxRuntimeExports.jsx(ContextMenuConfigContext.Provider,Object.assign({value:useConst(()=>new ContextMenuConfig)},{children:jsxRuntimeExports.jsx("div",Object.assign({style:j.style,className:j.className},{children:j.children}))}))}))}))}))},useContextMenuConfigContext=()=>reactExports.useContext(ContextMenuConfigContext);var GraphNodeEvent;(function(j){j.Click="[Node]Click",j.DoubleClick="[Node]DoubleClick",j.MouseDown="[Node]MouseDown",j.MouseUp="[Node]MouseUp",j.MouseEnter="[Node]MouseEnter",j.MouseLeave="[Node]MouseLeave",j.MouseOver="[Node]MouseOver",j.MouseOut="[Node]MouseOut",j.MouseMove="[Node]MouseMove",j.ContextMenu="[Node]ContextMenu",j.Drag="[Node]Drag",j.DragStart="[Node]DragStart",j.DragEnd="[Node]DragEnd",j.PointerDown="[Node]PointerDown",j.PointerEnter="[Node]PointerEnter",j.PointerMove="[Node]PointerMove",j.PointerLeave="[Node]PointerLeave",j.PointerUp="[Node]PointerUp",j.Resizing="[Node]Resizing",j.ResizingStart="[Node]ResizingStart",j.ResizingEnd="[Node]ResizingEnd",j.KeyDown="[Node]KeyDown",j.Select="[Node]Select",j.SelectAll="[Node]SelectAll",j.Centralize="[Node]Centralize",j.Locate="[Node]Locate",j.Add="[Node]Add"})(GraphNodeEvent||(GraphNodeEvent={}));var GraphEdgeEvent;(function(j){j.Click="[Edge]Click",j.DoubleClick="[Edge]DoubleClick",j.MouseEnter="[Edge]MouseEnter",j.MouseLeave="[Edge]MouseLeave",j.MouseOver="[Edge]MouseOver",j.MouseOut="[Edge]MouseOut",j.MouseMove="[Edge]MouseMove",j.MouseDown="[Edge]MouseDown",j.MouseUp="[Edge]MouseUp",j.ContextMenu="[Edge]ContextMenu",j.ConnectStart="[Edge]ConnectStart",j.ConnectMove="[Edge]ConnectMove",j.ConnectEnd="[Edge]ConnectEnd",j.ConnectNavigate="[Edge]ConnectNavigate",j.Add="[Edge]Add"})(GraphEdgeEvent||(GraphEdgeEvent={}));var GraphPortEvent;(function(j){j.Click="[Port]Click",j.DoubleClick="[Port]DoubleClick",j.MouseDown="[Port]MouseDown",j.PointerDown="[Port]PointerDown",j.PointerUp="[Port]PointerUp",j.PointerEnter="[Port]PointerEnter",j.PointerLeave="[Port]PointerLeave",j.MouseUp="[Port]MouseUp",j.MouseEnter="[Port]MouseEnter",j.MouseLeave="[Port]MouseLeave",j.MouseOver="[Port]MouseOver",j.MouseOut="[Port]MouseOut",j.MouseMove="[Port]MouseMove",j.ContextMenu="[Port]ContextMenu",j.KeyDown="[Port]KeyDown",j.Focus="[Port]Focus",j.Blur="[Port]Blur"})(GraphPortEvent||(GraphPortEvent={}));var GraphCanvasEvent;(function(j){j.Click="[Canvas]Click",j.DoubleClick="[Canvas]DoubleClick",j.MouseDown="[Canvas]MouseDown",j.MouseUp="[Canvas]MouseUp",j.MouseEnter="[Canvas]MouseEnter",j.MouseLeave="[Canvas]MouseLeave",j.MouseOver="[Canvas]MouseOver",j.MouseOut="[Canvas]MouseOut",j.MouseMove="[Canvas]MouseMove",j.ContextMenu="[Canvas]ContextMenu",j.DragStart="[Canvas]DragStart",j.Drag="[Canvas]Drag",j.DragEnd="[Canvas]DragEnd",j.Pan="[Canvas]Pan",j.Focus="[Canvas]Focus",j.Blur="[Canvas]Blur",j.Zoom="[Canvas]Zoom",j.Pinch="[Canvas]Pinch",j.KeyDown="[Canvas]KeyDown",j.KeyUp="[Canvas]KeyUp",j.SelectStart="[Canvas]SelectStart",j.SelectMove="[Canvas]SelectMove",j.SelectEnd="[Canvas]SelectEnd",j.UpdateNodeSelectionBySelectBox="[Canvas]UpdateNodeSelectionBySelectBox",j.MouseWheelScroll="[Canvas]MouseWheelScroll",j.DraggingNodeFromItemPanel="[Canvas]DraggingNodeFromItemPanel",j.DraggingNodeFromItemPanelStart="[Canvas]DraggingNodeFromItemPanelStart",j.DraggingNodeFromItemPanelEnd="[Canvas]DraggingNodeFromItemPanelEnd",j.ViewportResize="[Canvas]ViewportResize",j.Navigate="[Canvas]Navigate",j.VirtualizationRecalculated="[Canvas]VirtualizationRecalculated",j.ResetSelection="[Canvas]ResetSelection",j.Copy="[Canvas]Copy",j.Paste="[Canvas]Paste",j.Delete="[Canvas]Delete",j.Undo="[Canvas]Undo",j.Redo="[Canvas]Redo",j.ScrollIntoView="[Canvas]ScrollIntoView",j.ResetUndoStack="[Canvas]ResetUndoStack",j.ResetViewport="[Canvas]ResetViewport",j.ZoomTo="[Canvas]ZoomTo",j.ZoomToFit="[Canvas]ZoomToFit",j.SetData="[Canvas]SetData",j.UpdateData="[Canvas]UpdateData",j.ScrollTo="[Canvas]ScrollTo",j.UpdateSettings="[Canvas]UpdateSettings"})(GraphCanvasEvent||(GraphCanvasEvent={}));var GraphScrollBarEvent;(function(j){j.ScrollStart="[ScrollBar]ScrollStart",j.Scroll="[ScrollBar]Scroll",j.ScrollEnd="[ScrollBar]ScrollEnd"})(GraphScrollBarEvent||(GraphScrollBarEvent={}));var GraphMinimapEvent;(function(j){j.PanStart="[Minimap]PanStart",j.Pan="[Minimap]Pan",j.PanEnd="[Minimap]PanEnd",j.Click="[Minimap]Click"})(GraphMinimapEvent||(GraphMinimapEvent={}));var GraphContextMenuEvent;(function(j){j.Open="[ContextMenu]Open",j.Close="[ContextMenu]Close"})(GraphContextMenuEvent||(GraphContextMenuEvent={}));function getScrollLineHeight(){try{const j=document.createElement("iframe");j.src="#",document.body.appendChild(j);const{contentDocument:_e}=j;if(!_e)throw new Error("Fail to create iframe");_e.documentElement.innerHTML=purify.sanitize("a",{RETURN_TRUSTED_TYPE:!0});const tt=_e.body.firstElementChild.offsetHeight;return document.body.removeChild(j),tt}catch(j){return Debug.error("failed to calculate scroll line height",j),16}}const scrollLineHeight=getScrollLineHeight(),normalizeWheelDelta=typeof WheelEvent=="function"?(j,_e)=>{switch(j){case WheelEvent.DOM_DELTA_PIXEL:return _e;case WheelEvent.DOM_DELTA_LINE:return _e*scrollLineHeight;case WheelEvent.DOM_DELTA_PAGE:return _e*window.innerHeight;default:return _e}}:(j,_e)=>_e,EMPTY_RECT={height:0,width:0,x:0,y:0,bottom:0,left:0,right:0,top:0,toJSON(){return this}},VirtualizationContext=reactExports.createContext({viewport:{rect:EMPTY_RECT,transformMatrix:EMPTY_TRANSFORM_MATRIX},renderedArea:{minX:0,minY:0,maxX:0,maxY:0},visibleArea:{minX:0,minY:0,maxX:0,maxY:0},renderedNodes:new Set,renderedEdges:new Set,timestamp:0});function useGraphConfig(){return reactExports.useContext(GraphConfigContext)}function useGraphController(){return reactExports.useContext(GraphControllerContext)}function useAlignmentLines(){return reactExports.useContext(AlignmentLinesContext)}function useConnectingState(){return reactExports.useContext(ConnectingStateContext)}function useVirtualization(){return reactExports.useContext(VirtualizationContext)}let shouldRespondWheel=!1;const useWheelHandler=j=>{const{containerRef:_e,svgRef:et,rectRef:tt,zoomSensitivity:rt,scrollSensitivity:nt,isHorizontalScrollDisabled:ot,isVerticalScrollDisabled:it,isCtrlKeyZoomEnable:st,eventChannel:lt,graphConfig:ut,dispatch:ct}=j,ft=useGraphController().getGlobalEventTarget();reactExports.useLayoutEffect(()=>{const pt=et.current,gt=_e.current;if(!pt||!gt)return noop$2;const mt=xt=>{const yt=tt.current;if(!yt||!shouldRespondWheel)return;if(xt.preventDefault(),xt.ctrlKey&&st){const kt=(normalizeWheelDelta(xt.deltaMode,xt.deltaY)>0?-rt:rt)+1;lt.trigger({type:GraphCanvasEvent.Zoom,rawEvent:xt,scale:kt,anchor:getRelativePoint(yt,xt)});return}const Et=ot?0:-normalizeWheelDelta(xt.deltaMode,xt.shiftKey?xt.deltaY:xt.deltaX)*nt,St=it||xt.shiftKey?0:-normalizeWheelDelta(xt.deltaMode,xt.deltaY)*nt;lt.trigger({type:GraphCanvasEvent.MouseWheelScroll,dx:Et,dy:St,rawEvent:xt})},bt=()=>{shouldRespondWheel=!0};gt.addEventListener("mouseenter",bt);const _t=()=>{shouldRespondWheel=!1};return gt.addEventListener("mouseleave",_t),ft.addEventListener("wheel",mt,{passive:!1}),()=>{ft.removeEventListener("wheel",mt),gt.removeEventListener("mouseenter",bt),gt.removeEventListener("mouseleave",_t)}},[et,tt,rt,nt,ct,ot,it,ut,lt,st])};function nextFrame(j){requestAnimationFrame(()=>{requestAnimationFrame(j)})}const LIMIT=20,isRectChanged=(j,_e)=>j===_e?!1:!j||!_e?!0:j.top!==_e.top||j.left!==_e.left||j.width!==_e.width||j.height!==_e.height,useUpdateViewportCallback=(j,_e,et)=>reactExports.useCallback((tt=!1)=>{var rt;const nt=(rt=_e.current)===null||rt===void 0?void 0:rt.getBoundingClientRect();(tt||isRectChanged(j.current,nt))&&(j.current=nt,et.trigger({type:GraphCanvasEvent.ViewportResize,viewportRect:nt}))},[et,j,_e]),useContainerRect=(j,_e,et,tt)=>{reactExports.useLayoutEffect(()=>{j.viewport.rect||tt(!0)}),reactExports.useEffect(()=>{const rt=et.current;if(!rt)return noop$2;const nt=debounce$2(()=>nextFrame(()=>{tt()}),LIMIT);if(typeof ResizeObserver<"u"){const ot=new ResizeObserver(nt);return ot.observe(rt),()=>{ot.unobserve(rt),ot.disconnect()}}return window.addEventListener("resize",nt),()=>{window.removeEventListener("resize",nt)}},[et,tt]),reactExports.useEffect(()=>{const rt=debounce$2(ot=>{const it=_e.current;!it||!(ot.target instanceof Element)||!ot.target.contains(it)||tt()},LIMIT),nt={capture:!0,passive:!0};return document.body.addEventListener("scroll",rt,nt),()=>{document.body.removeEventListener("scroll",rt,nt)}},[_e,tt])};function makeScheduledCallback(j,_e,et){let tt=!1,rt,nt;const ot=(...it)=>{rt=it,tt||(tt=!0,nt=_e(()=>{tt=!1,reactDomExports.unstable_batchedUpdates(()=>{j.apply(null,rt)})}))};return ot.cancel=()=>{et(nt)},ot}const animationFramed=j=>makeScheduledCallback(j,requestAnimationFrame,cancelAnimationFrame),useRenderedArea=(j,_e)=>reactExports.useMemo(()=>_e?getRenderedArea(j):{minX:-Number.MAX_SAFE_INTEGER,minY:-Number.MAX_SAFE_INTEGER,maxX:Number.MAX_SAFE_INTEGER,maxY:Number.MAX_SAFE_INTEGER},[j,_e]);class DragController{constructor(_e,et){this.onMove=noop$2,this.onEnd=noop$2,this.lastEvent=null,this.startX=0,this.startY=0,this.prevClientX=0,this.prevClientY=0,this.onMouseUp=tt=>{this.lastEvent=tt,this.doOnMouseUp(tt),this.lastEvent=null},this.onMouseMove=tt=>{this.lastEvent=tt,tt.preventDefault(),this.mouseMove(tt)},this.eventProvider=_e,this.getPositionFromEvent=et,this.mouseMove=animationFramed(tt=>{this.doOnMouseMove(tt)})}start(_e){this.lastEvent=_e;const{x:et,y:tt}=this.getPositionFromEvent(_e);this.startX=et,this.startY=tt,this.prevClientX=et,this.prevClientY=tt,this.eventProvider.on("move",this.onMouseMove),this.eventProvider.on("end",this.onMouseUp)}stop(){this.mouseMove.cancel(),this.eventProvider.off("move",this.onMouseMove),this.eventProvider.off("end",this.onMouseUp)}getDelta(_e,et){const tt=_e-this.prevClientX,rt=et-this.prevClientY;return this.prevClientX=_e,this.prevClientY=et,{x:tt,y:rt}}getTotalDelta(_e){const et=_e.clientX-this.startX,tt=_e.clientY-this.startY;return{x:et,y:tt}}doOnMouseMove(_e){const{x:et,y:tt}=this.getPositionFromEvent(_e),{x:rt,y:nt}=this.getDelta(et,tt),{x:ot,y:it}=this.getTotalDelta(_e);this.onMove({clientX:et,clientY:tt,dx:rt,dy:nt,totalDX:ot,totalDY:it,e:_e})}doOnMouseUp(_e){_e.preventDefault();const{x:et,y:tt}=this.getTotalDelta(_e);this.onEnd({totalDX:et,totalDY:tt,e:_e}),this.stop()}}function defaultGetPositionFromEvent(j){return{x:j.clientX,y:j.clientY}}class DragNodeController extends DragController{constructor(_e,et,tt){super(_e,et),this.rectRef=tt}doOnMouseMove(_e){super.doOnMouseMove(_e);const et=this.rectRef.current;!et||!this.lastEvent||(_e.clientXet.right||_e.clientYet.bottom)&&this.mouseMove(this.lastEvent)}}class TouchController{constructor(_e){this.eventHandlers={onPointerDown:(et,...tt)=>{et.pointerType==="touch"&&(et.preventDefault(),this.pointers=new Map(this.pointers),this.pointers.set(et.pointerId,et.nativeEvent),this.updateHandler(et.nativeEvent,...tt))},onPointerMove:(et,...tt)=>{et.pointerType==="touch"&&(et.preventDefault(),this.pointers.set(et.pointerId,et.nativeEvent),this.onMove(et.nativeEvent,...tt))},onPointerUp:(et,...tt)=>{et.pointerType==="touch"&&(et.preventDefault(),this.pointers=new Map(this.pointers),this.pointers.delete(et.pointerId),this.updateHandler(et.nativeEvent,...tt))}},this.pointers=new Map,this.onMove=animationFramed((et,...tt)=>{var rt;(rt=this.currentHandler)===null||rt===void 0||rt.onMove(this.pointers,et,...tt)}),this.handlers=_e}updateHandler(_e,...et){var tt,rt;const nt=this.handlers.get(this.pointers.size);nt!==this.currentHandler&&((tt=this.currentHandler)===null||tt===void 0||tt.onEnd(_e,...et),this.currentHandler=nt,(rt=this.currentHandler)===null||rt===void 0||rt.onStart(this.pointers,_e,...et))}}class TwoFingerHandler{constructor(_e,et){this.prevDistance=0,this.rectRef=_e,this.eventChannel=et}onEnd(){}onMove(_e,et){const tt=Array.from(_e.values()),rt=distance(tt[0].clientX,tt[0].clientY,tt[1].clientX,tt[1].clientY),{prevEvents:nt,prevDistance:ot}=this;if(this.prevDistance=rt,this.prevEvents=tt,!nt)return;const it=tt[0].clientX-nt[0].clientX,st=tt[1].clientX-nt[1].clientX,lt=tt[0].clientY-nt[0].clientY,ut=tt[1].clientY-nt[1].clientY,ct=(it+st)/2,dt=(lt+ut)/2,ft=(rt-ot)/ot+1,pt=getContainerCenter(this.rectRef);pt&&this.eventChannel.trigger({type:GraphCanvasEvent.Pinch,rawEvent:et,dx:ct,dy:dt,scale:ft,anchor:pt})}onStart(_e){if(_e.size!==2)throw new Error(`Unexpected touch event with ${_e.size} touches`);this.prevEvents=Array.from(_e.values()),this.prevDistance=distance(this.prevEvents[0].clientX,this.prevEvents[0].clientY,this.prevEvents[1].clientX,this.prevEvents[1].clientY)}}const useGraphTouchHandler=(j,_e)=>reactExports.useMemo(()=>new TouchController(new Map().set(2,new TwoFingerHandler(j,_e))).eventHandlers,[j,_e]),isSafari=getBrowser()===BrowserType.Safari;let prevScale=0;function useSafariScale({rectRef:j,svgRef:_e,eventChannel:et}){reactExports.useEffect(()=>{const tt=_e.current;if(!isSafari||!tt||isMobile())return()=>{};const rt=animationFramed(st=>{const{scale:lt}=st,ut=lt/prevScale;prevScale=lt,et.trigger({type:GraphCanvasEvent.Zoom,rawEvent:st,scale:ut,anchor:getContainerCenter(j)})}),nt=st=>{st.stopPropagation(),st.preventDefault(),prevScale=st.scale,et.trigger({type:GraphCanvasEvent.Zoom,rawEvent:st,scale:st.scale,anchor:getContainerCenter(j)})},ot=st=>{st.stopPropagation(),st.preventDefault(),rt(st)},it=st=>{st.stopPropagation(),st.preventDefault(),rt(st)};return tt.addEventListener("gesturestart",nt),tt.addEventListener("gesturechange",ot),tt.addEventListener("gestureend",it),()=>{tt.removeEventListener("gesturestart",nt),tt.removeEventListener("gesturechange",ot),tt.removeEventListener("gestureend",it)}},[])}function useDeferredValue(j,{timeout:_e}){const[et,tt]=reactExports.useState(j);return reactExports.useEffect(()=>{const rt=setTimeout(()=>{tt(j)},_e);return()=>{clearTimeout(rt)}},[j,_e]),et}const useSelectBox=(j,_e)=>{const et=useDeferredValue(_e,{timeout:100});reactExports.useEffect(()=>{j({type:GraphCanvasEvent.UpdateNodeSelectionBySelectBox})},[et])},useGraphState=()=>reactExports.useContext(GraphStateContext),handleBehaviorChange=(j,_e)=>{switch(_e.type){case GraphNodeEvent.DragStart:return GraphBehavior.Dragging;case GraphEdgeEvent.ConnectStart:return GraphBehavior.Connecting;case GraphCanvasEvent.SelectStart:return GraphBehavior.MultiSelect;case GraphCanvasEvent.DragStart:return GraphBehavior.Panning;case GraphCanvasEvent.DraggingNodeFromItemPanelStart:return GraphBehavior.AddingNode;case GraphNodeEvent.DragEnd:case GraphEdgeEvent.ConnectEnd:case GraphCanvasEvent.SelectEnd:case GraphCanvasEvent.DragEnd:case GraphCanvasEvent.DraggingNodeFromItemPanelEnd:return GraphBehavior.Default;default:return j}},behaviorReducer=(j,_e)=>{const et=handleBehaviorChange(j.behavior,_e);return et===j.behavior?j:Object.assign(Object.assign({},j),{behavior:et})};function __rest(j,_e){var et={};for(var tt in j)Object.prototype.hasOwnProperty.call(j,tt)&&_e.indexOf(tt)<0&&(et[tt]=j[tt]);if(j!=null&&typeof Object.getOwnPropertySymbols=="function")for(var rt=0,tt=Object.getOwnPropertySymbols(j);rt{switch(_e.type){case GraphCanvasEvent.Paste:{const{position:et}=_e;if(!isViewportComplete(j.viewport))return j;const{rect:tt}=j.viewport;let rt=_e.data.nodes;if(et&&tt){const ot=getRealPointFromClientPoint(et.x,et.y,j.viewport);let it,st;rt=rt.map((lt,ut)=>(ut===0&&(it=ot.x-lt.x,st=ot.y-lt.y),Object.assign(Object.assign({},lt),{x:it?lt.x-COPIED_NODE_SPACING+it:lt.x,y:st?lt.y-COPIED_NODE_SPACING+st:lt.y,state:GraphNodeStatus.Selected})))}let nt=unSelectAllEntity()(j.data.present);return rt.forEach(ot=>{nt=nt.insertNode(ot)}),_e.data.edges.forEach(ot=>{nt=nt.insertEdge(ot)}),Object.assign(Object.assign({},j),{data:pushHistory(j.data,nt)})}case GraphCanvasEvent.Delete:return j.settings.features.has(GraphFeatures.Delete)?Object.assign(Object.assign({},j),{data:pushHistory(j.data,j.data.present.deleteItems({node:notSelected,edge:notSelected}),unSelectAllEntity())}):j;case GraphCanvasEvent.Undo:return Object.assign(Object.assign({},j),{data:undo(j.data)});case GraphCanvasEvent.Redo:return Object.assign(Object.assign({},j),{data:redo(j.data)});case GraphCanvasEvent.KeyDown:{const et=_e.rawEvent.key.toLowerCase();if(j.activeKeys.has(et))return j;const tt=new Set(j.activeKeys);return tt.add(et),Object.assign(Object.assign({},j),{activeKeys:tt})}case GraphCanvasEvent.KeyUp:{const et=_e.rawEvent.key.toLowerCase();if(!j.activeKeys.has(et))return j;const tt=new Set(j.activeKeys);return tt.delete(et),Object.assign(Object.assign({},j),{activeKeys:tt})}case GraphCanvasEvent.SetData:return Object.assign(Object.assign({},j),{data:resetUndoStack(_e.data)});case GraphCanvasEvent.UpdateData:return Object.assign(Object.assign({},j),{data:_e.shouldRecord?pushHistory(j.data,_e.updater(j.data.present)):Object.assign(Object.assign({},j.data),{present:_e.updater(j.data.present)})});case GraphCanvasEvent.ResetUndoStack:return Object.assign(Object.assign({},j),{data:resetUndoStack(j.data.present)});case GraphCanvasEvent.UpdateSettings:{const et=__rest(_e,["type"]);return Object.assign(Object.assign({},j),{settings:Object.assign(Object.assign({},j.settings),et)})}default:return j}};function composeReducers(j){return _e=>j.reduceRight((et,tt)=>tt(et),_e)}const VisitPortHelper=j=>{const{neighborPorts:_e,data:et}=j,tt=reactExports.useRef(null),[rt,nt]=reactExports.useState(),ot=reactExports.useCallback(lt=>{lt.key==="Escape"&&(lt.stopPropagation(),lt.preventDefault(),rt&&j.onComplete(rt))},[rt,j]),it=reactExports.useCallback(()=>{},[]),st=reactExports.useCallback(lt=>{const ut=JSON.parse(lt.target.value);ut.nodeId&&ut.portId&&nt({nodeId:ut.nodeId,portId:ut.portId})},[nt]);return reactExports.useEffect(()=>{tt.current&&tt.current.focus({preventScroll:!0})},[]),jsxRuntimeExports.jsx("select",Object.assign({onKeyDown:ot,onBlur:it,ref:tt,onChange:st},{children:_e.map(lt=>{const ut=rt&&rt.portId===lt.portId&&rt.nodeId===lt.nodeId,ct=JSON.stringify(lt),dt=et.nodes.get(lt.nodeId);if(!dt)return null;const ft=dt.ports?dt.ports.filter(gt=>gt.id===lt.portId)[0]:null;if(!ft)return null;const pt=`${dt.ariaLabel||dt.name||dt.id}: ${ft.ariaLabel||ft.name||ft.id}`;return jsxRuntimeExports.jsx("option",Object.assign({value:ct,"aria-selected":ut,"aria-label":pt},{children:pt}),`${lt.nodeId}-${lt.portId}`)})}))},item=(j=void 0,_e=void 0)=>({node:j,port:_e}),findDOMElement=(j,{node:_e,port:et})=>{var tt,rt;let nt;if(_e&&et)nt=getPortUid((tt=j.dataset.graphId)!==null&&tt!==void 0?tt:"",_e,et);else if(_e)nt=getNodeUid((rt=j.dataset.graphId)!==null&&rt!==void 0?rt:"",_e);else return null;return j.getElementById(nt)},focusItem=(j,_e,et,tt)=>{if(!j.current)return;const rt=findDOMElement(j.current,_e);rt?(et.preventDefault(),et.stopPropagation(),rt.focus({preventScroll:!0}),tt.trigger({type:GraphCanvasEvent.Navigate,node:_e.node,port:_e.port,rawEvent:et})):!_e.node&&!_e.port&&tt.trigger({type:GraphCanvasEvent.Navigate,node:_e.node,port:_e.port,rawEvent:et})},getNextItem=(j,_e,et)=>{if(_e.ports){const nt=(et?_e.ports.findIndex(ot=>ot.id===et.id):-1)+1;if(nt<_e.ports.length)return item(_e,_e.ports[nt])}const tt=_e.next&&j.nodes.get(_e.next);return tt?item(tt):item()},getPrevItem=(j,_e,et)=>{if(et&&_e.ports){const rt=_e.ports.findIndex(nt=>nt.id===et.id)-1;return rt>=0?item(_e,_e.ports[rt]):item(_e)}const tt=_e.prev&&j.nodes.get(_e.prev);return tt?item(tt,tt.ports&&tt.ports.length?tt.ports[tt.ports.length-1]:void 0):item()},nextConnectablePort=(j,_e)=>(et,tt,rt)=>{var nt,ot,it;let st=getNextItem(et,tt,rt);for(;!(((nt=st.node)===null||nt===void 0?void 0:nt.id)===tt.id&&((ot=st.port)===null||ot===void 0?void 0:ot.id)===(rt==null?void 0:rt.id));){if(!st.node)st=item(et.getNavigationFirstNode());else if(st.port&&!((it=j.getPortConfig(st.port))===null||it===void 0)&&it.getIsConnectable(Object.assign(Object.assign({},_e),{data:et,parentNode:st.node,model:st.port})))return st;st=getNextItem(et,st.node,st.port)}return item()},focusNextPort=(j,_e,et,tt,rt,nt)=>{const it=(j.findIndex(lt=>lt.id===et)+1)%j.length,st=j[it];st&&tt.current&&focusItem(tt,{node:_e,port:st},rt,nt)},focusPrevPort=(j,_e,et,tt,rt,nt)=>{const it=(j.findIndex(lt=>lt.id===et)-1+j.length)%j.length,st=j[it];st&&tt.current&&focusItem(tt,{node:_e,port:st},rt,nt)},getFocusNodeHandler=j=>(_e,et,tt,rt,nt,ot)=>{const it=Array.from(_e.nodes.values()).sort(j),st=it.findIndex(ut=>ut.id===et),lt=it[(st+1)%it.length];lt&&tt.current&&(rt.dispatch({type:GraphNodeEvent.Select,nodes:[lt.id]}),rt.dispatch({type:GraphNodeEvent.Centralize,nodes:[lt.id]}),focusItem(tt,{node:lt,port:void 0},nt,ot))},focusLeftNode=getFocusNodeHandler((j,_e)=>j.x*10+j.y-_e.x*10-_e.y),focusRightNode=getFocusNodeHandler((j,_e)=>_e.x*10+_e.y-j.x*10-j.y),focusDownNode=getFocusNodeHandler((j,_e)=>j.x+j.y*10-_e.x-_e.y*10),focusUpNode=getFocusNodeHandler((j,_e)=>_e.x+_e.y*10-j.x-j.y*10),goToConnectedPort=(j,_e,et,tt,rt,nt)=>{var ot;const it=getNeighborPorts(j,_e.id,et.id);if(it.length===1&&tt.current){const st=j.nodes.get(it[0].nodeId);if(!st)return;const lt=(ot=st.ports)===null||ot===void 0?void 0:ot.find(ut=>ut.id===it[0].portId);if(!lt)return;focusItem(tt,{node:st,port:lt},rt,nt)}else if(it.length>1&&tt.current){const st=ct=>{var dt;if(reactDomExports.unmountComponentAtNode(lt),tt.current){const gt=tt.current.closest(".react-dag-editor-container");gt&>.removeChild(lt)}const ft=j.nodes.get(ct.nodeId);if(!ft)return;const pt=(dt=ft.ports)===null||dt===void 0?void 0:dt.find(gt=>gt.id===ct.portId);pt&&focusItem(tt,{node:ft,port:pt},rt,nt)},lt=document.createElement("div"),ut=tt.current.closest(".react-dag-editor-container");ut&&ut.appendChild(lt),lt.style.position="fixed",lt.style.top="0",reactDomExports.render(jsxRuntimeExports.jsx(VisitPortHelper,{neighborPorts:it,onComplete:st,data:j}),lt)}};function defaultGetPortAriaLabel(j,_e,et){return et.ariaLabel}function defaultGetNodeAriaLabel(j){return j.ariaLabel}function attachPort(j,_e,et){if(!j.connectState)return j;let tt=j.data.present;return tt=tt.updatePort(_e,et,updateStatus(add$1(GraphPortStatus.ConnectingAsTarget))),j.connectState.targetNode&&j.connectState.targetPort&&(tt=tt.updatePort(j.connectState.targetNode,j.connectState.targetPort,updateStatus(remove$1(GraphPortStatus.ConnectingAsTarget)))),Object.assign(Object.assign({},j),{connectState:Object.assign(Object.assign({},j.connectState),{targetNode:_e,targetPort:et}),data:Object.assign(Object.assign({},j.data),{present:tt})})}function clearAttach(j){if(!j.connectState)return j;let _e=j.data.present;const{targetPort:et,targetNode:tt}=j.connectState;return tt&&et&&(_e=_e.updatePort(tt,et,updateStatus(remove$1(GraphPortStatus.ConnectingAsTarget)))),Object.assign(Object.assign({},j),{connectState:Object.assign(Object.assign({},j.connectState),{targetNode:void 0,targetPort:void 0}),data:Object.assign(Object.assign({},j.data),{present:_e})})}const connectingReducer=(j,_e)=>{var et,tt,rt;if(!isViewportComplete(j.viewport))return j;const{rect:nt}=j.viewport;switch(_e.type){case GraphEdgeEvent.ConnectStart:return Object.assign(Object.assign({},j),{connectState:Object.assign(Object.assign({},EMPTY_CONNECT_STATE),{sourceNode:_e.nodeId,sourcePort:_e.portId,movingPoint:_e.clientPoint?{x:_e.clientPoint.x-nt.left,y:_e.clientPoint.y-nt.top}:void 0}),data:Object.assign(Object.assign({},j.data),{present:j.data.present.updatePort(_e.nodeId,_e.portId,updateStatus(add$1(GraphPortStatus.Connecting)))})});case GraphEdgeEvent.ConnectMove:return j.connectState?Object.assign(Object.assign({},j),{connectState:Object.assign(Object.assign({},j.connectState),{movingPoint:{x:_e.clientX-nt.left,y:_e.clientY-nt.top}})}):j;case GraphEdgeEvent.ConnectEnd:if(j.connectState){const{edgeWillAdd:ot,isCancel:it}=_e,{sourceNode:st,sourcePort:lt,targetNode:ut,targetPort:ct}=j.connectState;let dt=j.data.present;if(dt=dt.updatePort(st,lt,updateStatus(replace$1(GraphPortStatus.Default))),!it&&ut&&ct){let ft={source:st,sourcePortId:lt,target:ut,targetPortId:ct,id:v4(),status:GraphEdgeStatus.Default};return ot&&(ft=ot(ft,dt)),dt=dt.insertEdge(ft).updatePort(ut,ct,updateStatus(replace$1(GraphPortStatus.Default))),Object.assign(Object.assign({},j),{connectState:void 0,data:pushHistory(j.data,dt,unSelectAllEntity())})}return Object.assign(Object.assign({},j),{connectState:void 0,data:Object.assign(Object.assign({},j.data),{present:dt})})}return j;case GraphEdgeEvent.ConnectNavigate:if(j.connectState){const ot=j.data.present,it=ot.nodes.get(j.connectState.sourceNode),st=it==null?void 0:it.getPort(j.connectState.sourcePort),lt=j.connectState.targetNode?ot.nodes.get(j.connectState.targetNode):void 0,ut=j.connectState.targetPort?lt==null?void 0:lt.getPort(j.connectState.targetPort):void 0;if(!it||!st)return j;const ct=nextConnectablePort(j.settings.graphConfig,{anotherNode:it,anotherPort:st})(ot,lt||it,ut);return!ct.node||!ct.port||ct.node.id===it.id&&ct.port.id===st.id?j:attachPort(j,ct.node.id,ct.port.id)}return j;case GraphPortEvent.PointerEnter:if(j.connectState){const{sourceNode:ot,sourcePort:it}=j.connectState,st=j.data.present,lt=st.nodes.get(_e.node.id),ut=lt==null?void 0:lt.getPort(_e.port.id),ct=st.nodes.get(ot),dt=ct==null?void 0:ct.getPort(it);if(lt&&ut&&ct&&dt&&isConnectable(j.settings.graphConfig,{parentNode:lt,model:ut,data:st,anotherPort:dt,anotherNode:ct}))return attachPort(j,lt.id,ut.id)}return j;case GraphNodeEvent.PointerEnter:case GraphNodeEvent.PointerMove:if(j.connectState){const{clientX:ot,clientY:it}=_e.rawEvent,{sourceNode:st,sourcePort:lt}=j.connectState,ut=j.data.present,ct=ut.nodes.get(_e.node.id),dt=ut.nodes.get(st),ft=dt==null?void 0:dt.getPort(lt);if(ct&&dt&&ft){const pt=getNearestConnectablePort({parentNode:ct,clientX:ot,clientY:it,graphConfig:j.settings.graphConfig,data:j.data.present,viewport:j.viewport,anotherPort:ft,anotherNode:dt});return pt?attachPort(j,ct.id,pt.id):j}}return j;case GraphNodeEvent.PointerLeave:return((et=j.connectState)===null||et===void 0?void 0:et.targetNode)===_e.node.id?clearAttach(j):j;case GraphPortEvent.PointerLeave:return((tt=j.connectState)===null||tt===void 0?void 0:tt.targetNode)===_e.node.id&&((rt=j.connectState)===null||rt===void 0?void 0:rt.targetPort)===_e.port.id?clearAttach(j):j;default:return j}},contextMenuReducer=(j,_e)=>{let et=j.contextMenuPosition;switch(_e.type){case GraphCanvasEvent.ContextMenu:case GraphNodeEvent.ContextMenu:case GraphEdgeEvent.ContextMenu:case GraphPortEvent.ContextMenu:{const tt=_e.rawEvent;tt.button===MouseEventButton.Secondary&&(et={x:tt.clientX,y:tt.clientY})}break;case GraphCanvasEvent.Click:case GraphNodeEvent.Click:case GraphEdgeEvent.Click:case GraphPortEvent.Click:et=void 0;break;case GraphContextMenuEvent.Open:et={x:_e.x,y:_e.y};break;case GraphContextMenuEvent.Close:et=void 0;break}return j.contextMenuPosition===et?j:Object.assign(Object.assign({},j),{contextMenuPosition:et})},edgeReducer=(j,_e)=>{switch(_e.type){case GraphEdgeEvent.DoubleClick:return j.settings.features.has(GraphFeatures.EditEdge)?Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updateEdge(_e.edge.id,updateStatus(replace$1(GraphEdgeStatus.Editing)))})}):j;case GraphEdgeEvent.MouseEnter:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updateEdge(_e.edge.id,updateStatus(add$1(GraphEdgeStatus.Activated)))})});case GraphEdgeEvent.MouseLeave:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updateEdge(_e.edge.id,updateStatus(remove$1(GraphEdgeStatus.Activated)))})});case GraphEdgeEvent.Click:case GraphEdgeEvent.ContextMenu:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:unSelectAllEntity()(j.data.present).updateEdge(_e.edge.id,updateStatus(add$1(GraphEdgeStatus.Selected)))})});case GraphEdgeEvent.Add:return Object.assign(Object.assign({},j),{data:pushHistory(j.data,j.data.present.insertEdge(_e.edge))});default:return j}},getAlignmentLines=(j,_e,et,tt=2)=>{const rt=getDummyDraggingNode(j),nt=getClosestNodes(rt,j,_e,et,tt);return getLines(rt,nt,j.length)},getAutoAlignDisplacement=(j,_e,et,tt)=>{let rt=1/0,nt=0;const ot=getDummyDraggingNode(_e),it=tt==="x"?ot.width||0:ot.height||0;return j.forEach(st=>{let lt;if(tt==="x"&&st.x1===st.x2)lt=st.x1;else if(tt==="y"&&st.y1===st.y2)lt=st.y1;else return;const ut=ot[tt]-lt,ct=ot[tt]+(it||0)/2-lt,dt=ot[tt]+(it||0)-lt;Math.abs(ut)0?-rt:rt),Math.abs(ct)0?-rt:rt),Math.abs(dt)0?-rt:rt)}),nt},getMinCoordinate=(j,_e)=>{if(j.length)return Math.min(...j.map(et=>et[_e]))},getMaxCoordinate=(j,_e)=>{if(j.length)return Math.max(...j.map(et=>et[_e]+(_e==="y"?et.height||0:et.width||0)))},setSizeForNode=(j,_e)=>Object.assign(Object.assign({},j),getNodeSize(j,_e)),getBoundingBoxOfNodes=j=>{let _e=1/0,et=1/0,tt=-1/0,rt=-1/0;return j.forEach(nt=>{const ot=nt.x,it=nt.y,st=nt.x+(nt.width||0),lt=nt.y+(nt.height||0);ot<_e&&(_e=ot),ittt&&(tt=st),lt>rt&&(rt=lt)}),{x:_e,y:et,width:tt-_e,height:rt-et}},getDummyDraggingNode=j=>{const{x:_e,y:et,width:tt,height:rt}=getBoundingBoxOfNodes(j);return{id:v4(),x:_e,y:et,width:tt,height:rt}},getClosestNodes=(j,_e,et,tt,rt=2)=>{const nt=[],ot=[],{x:it,y:st,width:lt=0,height:ut=0}=j;let ct=rt,dt=rt;return et.forEach(ft=>{if(_e.find(bt=>bt.id===ft.id))return;const pt=setSizeForNode(ft,tt),{width:gt=0,height:mt=0}=pt;[it,it+lt/2,it+lt].forEach((bt,_t)=>{nt[_t]||(nt[_t]={}),nt[_t].closestNodes||(nt[_t].closestNodes=[]),[pt.x,pt.x+gt/2,pt.x+gt].forEach(xt=>{var yt;const Et=Math.abs(bt-xt);Et<=ct&&((yt=nt[_t].closestNodes)===null||yt===void 0||yt.push(pt),nt[_t].alignCoordinateValue=xt,ct=Et)})}),[st,st+ut/2,st+ut].forEach((bt,_t)=>{ot[_t]||(ot[_t]={}),ot[_t].closestNodes||(ot[_t].closestNodes=[]),[pt.y,pt.y+mt/2,pt.y+mt].forEach(xt=>{var yt;const Et=Math.abs(bt-xt);Et<=dt&&((yt=ot[_t].closestNodes)===null||yt===void 0||yt.push(pt),ot[_t].alignCoordinateValue=xt,dt=Et)})})}),{closestX:nt,closestY:ot}},getLines=(j,_e,et=1)=>{const tt=[],rt=[],nt=_e.closestX,ot=_e.closestY;return nt.forEach((it,st)=>{var lt;if(it.alignCoordinateValue===void 0||st===1&&(tt.length||et>1))return;const ut=[],ct=it.alignCoordinateValue;(lt=it.closestNodes)===null||lt===void 0||lt.forEach(pt=>{(pt.x===ct||pt.x+(pt.width||0)/2===ct||pt.x+(pt.width||0)===ct)&&ut.push(pt)});const dt=getMinCoordinate([j,...ut],"y"),ft=getMaxCoordinate([j,...ut],"y");dt!==void 0&&ft!==void 0&&tt.push({x1:ct,y1:dt,x2:ct,y2:ft,visible:!0})}),ot.forEach((it,st)=>{var lt;if(it.alignCoordinateValue===void 0||st===1&&(rt.length||et>1))return;const ut=[],ct=it.alignCoordinateValue;(lt=it.closestNodes)===null||lt===void 0||lt.forEach(pt=>{(pt.y===ct||pt.y+(pt.height||0)/2===ct||pt.y+(pt.height||0)===ct)&&ut.push(pt)});const dt=getMinCoordinate([j,...ut],"x"),ft=getMaxCoordinate([j,...ut],"x");dt!==void 0&&ft!==void 0&&rt.push({x1:dt,y1:ct,x2:ft,y2:ct,visible:!0})}),[...tt,...rt]};function pipe(...j){return j.reduceRight((_e,et)=>tt=>_e(et(tt)),identical)}const getDelta=(j,_e,et)=>et_e?10:0;function getSelectedNodes(j,_e){const et=[];return j.nodes.forEach(tt=>{isSelected(tt)&&et.push(Object.assign({id:tt.id,x:tt.x,y:tt.y},getNodeSize(tt,_e)))}),et}function dragNodeHandler(j,_e){if(!isViewportComplete(j.viewport))return j;const et=ft=>Math.max(ft,getScaleLimit(ot,j.settings)),tt=_e.rawEvent,{rect:rt}=j.viewport,nt=Object.assign({},j),ot=j.data.present,it=getDelta(rt.left,rt.right,tt.clientX),st=getDelta(rt.top,rt.bottom,tt.clientY),lt=it!==0||st!==0?.999:1,ut=it!==0||it!==0?pipe(pan(-it,-st),zoom({scale:lt,anchor:getRelativePoint(rt,tt),direction:Direction$1.XY,limitScale:et}))(j.viewport):j.viewport,ct=getPointDeltaByClientDelta(_e.dx+it*lt,_e.dy+st*lt,ut.transformMatrix),dt=Object.assign(Object.assign({},j.dummyNodes),{dx:j.dummyNodes.dx+ct.x,dy:j.dummyNodes.dy+ct.y,isVisible:_e.isVisible});if(_e.isAutoAlignEnable){const ft=getRenderedNodes(ot.nodes,j.viewport);if(ft.length<_e.autoAlignThreshold){const pt=dt.nodes.map(mt=>Object.assign(Object.assign({},mt),{x:mt.x+dt.dx,y:mt.y+dt.dy})),gt=getAlignmentLines(pt,ft,j.settings.graphConfig,j.viewport.transformMatrix[0]>.3?2:5);if(gt.length){const mt=getAutoAlignDisplacement(gt,pt,j.settings.graphConfig,"x"),bt=getAutoAlignDisplacement(gt,pt,j.settings.graphConfig,"y");dt.alignedDX=dt.dx+mt,dt.alignedDY=dt.dy+bt}else dt.alignedDX=void 0,dt.alignedDY=void 0;nt.alignmentLines=gt}else dt.alignedDX=void 0,dt.alignedDY=void 0}return nt.dummyNodes=dt,nt.viewport=ut,nt}function handleDraggingNewNode(j,_e){if(!j.settings.features.has(GraphFeatures.AutoAlign))return j;const et=j.data.present,tt=getRenderedNodes(et.nodes,j.viewport),rt=getAlignmentLines([_e.node],tt,j.settings.graphConfig,j.viewport.transformMatrix[0]>.3?2:5);return Object.assign(Object.assign({},j),{alignmentLines:rt})}function dragStart(j,_e){let et=j.data.present;const tt=et.nodes.get(_e.node.id);if(!tt)return j;let rt;return _e.isMultiSelect?(et=et.selectNodes(nt=>nt.id===_e.node.id||isSelected(nt)),rt=getSelectedNodes(et,j.settings.graphConfig)):isSelected(tt)?rt=getSelectedNodes(et,j.settings.graphConfig):rt=[Object.assign({id:_e.node.id,x:_e.node.x,y:_e.node.y},getNodeSize(_e.node,j.settings.graphConfig))],Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:et}),dummyNodes:Object.assign(Object.assign({},emptyDummyNodes()),{isVisible:!1,nodes:rt})})}function dragEnd(j,_e){let et=j.data.present;if(_e.isDragCanceled)return Object.assign(Object.assign({},j),{alignmentLines:[],dummyNodes:emptyDummyNodes()});const{dx:tt,dy:rt}=j.dummyNodes;return et=et.updateNodesPositionAndSize(j.dummyNodes.nodes.map(nt=>Object.assign(Object.assign({},nt),{x:nt.x+tt,y:nt.y+rt,width:void 0,height:void 0}))),Object.assign(Object.assign({},j),{alignmentLines:[],dummyNodes:emptyDummyNodes(),data:pushHistory(j.data,et,unSelectAllEntity())})}function locateNode(j,_e){const et=_e.data.present;if(!isViewportComplete(_e.viewport)||!j.nodes.length)return _e;if(j.nodes.length===1){const it=j.nodes[0],st=et.nodes.get(it);if(!st)return _e;const{width:lt,height:ut}=getNodeSize(st,_e.settings.graphConfig),ct=j.type===GraphNodeEvent.Centralize?st.x+lt/2:st.x,dt=j.type===GraphNodeEvent.Centralize?st.y+ut/2:st.y,{x:ft,y:pt}=transformPoint(ct,dt,_e.viewport.transformMatrix),gt=j.type===GraphNodeEvent.Locate?j.position:void 0;return Object.assign(Object.assign({},_e),{viewport:scrollIntoView$1(ft,pt,_e.viewport.rect,!0,gt)(_e.viewport)})}const{minNodeX:tt,minNodeY:rt,maxNodeX:nt,maxNodeY:ot}=getContentArea$1(et,_e.settings.graphConfig,new Set(j.nodes));return Object.assign(Object.assign({},_e),{viewport:focusArea(tt,rt,nt,ot,_e.viewport)})}const nodeReducer=(j,_e)=>{const et=j.data.present;switch(_e.type){case GraphNodeEvent.ResizingStart:return Object.assign(Object.assign({},j),{dummyNodes:Object.assign(Object.assign({},emptyDummyNodes()),{isVisible:!0,nodes:getSelectedNodes(et,j.settings.graphConfig)})});case GraphNodeEvent.Resizing:return Object.assign(Object.assign({},j),{dummyNodes:Object.assign(Object.assign({},j.dummyNodes),{dx:_e.dx,dy:_e.dy,dWidth:_e.dWidth,dHeight:_e.dHeight})});case GraphNodeEvent.ResizingEnd:{const{dx:tt,dy:rt,dWidth:nt,dHeight:ot}=j.dummyNodes;return Object.assign(Object.assign({},j),{dummyNodes:emptyDummyNodes(),data:pushHistory(j.data,et.updateNodesPositionAndSize(j.dummyNodes.nodes.map(it=>Object.assign(Object.assign({},it),{x:it.x+tt,y:it.y+rt,width:it.width+nt,height:it.height+ot}))),unSelectAllEntity())})}case GraphNodeEvent.DragStart:return dragStart(j,_e);case GraphNodeEvent.Drag:return dragNodeHandler(j,_e);case GraphNodeEvent.DragEnd:return dragEnd(j,_e);case GraphNodeEvent.PointerEnter:switch(j.behavior){case GraphBehavior.Default:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:et.updateNode(_e.node.id,updateStatus(add$1(GraphNodeStatus.Activated)))})});default:return j}case GraphNodeEvent.PointerLeave:switch(j.behavior){case GraphBehavior.Default:case GraphBehavior.Connecting:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:et.updateNode(_e.node.id,updateStatus(remove$1(GraphNodeStatus.Activated)))})});default:return j}case GraphCanvasEvent.DraggingNodeFromItemPanel:return handleDraggingNewNode(j,_e);case GraphCanvasEvent.DraggingNodeFromItemPanelEnd:return _e.node?Object.assign(Object.assign({},j),{alignmentLines:[],data:pushHistory(j.data,j.data.present.insertNode(Object.assign(Object.assign({},_e.node),{status:GraphNodeStatus.Selected})),unSelectAllEntity())}):Object.assign(Object.assign({},j),{alignmentLines:[]});case GraphNodeEvent.Centralize:case GraphNodeEvent.Locate:return locateNode(_e,j);case GraphNodeEvent.Add:return Object.assign(Object.assign({},j),{data:pushHistory(j.data,et.insertNode(_e.node))});case GraphNodeEvent.DoubleClick:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updateNode(_e.node.id,updateStatus(add$1(GraphNodeStatus.Editing)))})});default:return j}},portReducer=(j,_e)=>{switch(_e.type){case GraphPortEvent.Focus:case GraphPortEvent.PointerEnter:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updatePort(_e.node.id,_e.port.id,updateStatus(add$1(GraphPortStatus.Activated)))})});case GraphPortEvent.Blur:case GraphPortEvent.PointerLeave:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:j.data.present.updatePort(_e.node.id,_e.port.id,updateStatus(remove$1(GraphPortStatus.Activated)))})});case GraphPortEvent.Click:case GraphPortEvent.ContextMenu:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:unSelectAllEntity()(j.data.present).updatePort(_e.node.id,_e.port.id,updateStatus(add$1(GraphPortStatus.Selected)))})});default:return j}},selectNodeBySelectBox=(j,_e,et,tt)=>{if(!et.width||!et.height)return tt;const rt=Math.min(et.startX,et.startX+et.width),nt=Math.max(et.startX,et.startX+et.width),ot=Math.min(et.startY,et.startY+et.height),it=Math.max(et.startY,et.startY+et.height),st=reverseTransformPoint(rt,ot,_e),lt=reverseTransformPoint(nt,it,_e),ut={minX:st.x,minY:st.y,maxX:lt.x,maxY:lt.y};return tt.selectNodes(ct=>{const{width:dt,height:ft}=getNodeSize(ct,j),pt={minX:ct.x,minY:ct.y,maxX:ct.x+dt,maxY:ct.y+ft};return checkRectIntersect(ut,pt)})};function handleNavigate(j,_e){let et=unSelectAllEntity()(j.data.present);if(_e.node&&_e.port)et=et.updatePort(_e.node.id,_e.port.id,updateStatus(add$1(GraphPortStatus.Selected)));else if(_e.node){const tt=_e.node.id;et=et.selectNodes(rt=>rt.id===tt)}return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:et})})}const selectionReducer=(j,_e)=>{var et,tt;const rt=j.data.present,nt=j.settings.features.has(GraphFeatures.LassoSelect);switch(_e.type){case GraphCanvasEvent.Click:case GraphCanvasEvent.ResetSelection:case GraphCanvasEvent.ContextMenu:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:unSelectAllEntity()(rt)})});case GraphNodeEvent.Click:case GraphNodeEvent.ContextMenu:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:nodeSelection(_e.rawEvent,_e.node)(rt)})});case GraphCanvasEvent.SelectStart:{if(!isViewportComplete(j.viewport))return j;const ot=getRelativePoint(j.viewport.rect,_e.rawEvent);return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:unSelectAllEntity()(rt)}),selectBoxPosition:{startX:ot.x,startY:nt?0:ot.y,width:0,height:0}})}case GraphCanvasEvent.SelectMove:return j.behavior!==GraphBehavior.MultiSelect?j:Object.assign(Object.assign({},j),{selectBoxPosition:Object.assign(Object.assign({},j.selectBoxPosition),{width:j.selectBoxPosition.width+_e.dx,height:nt?(tt=(et=j.viewport.rect)===null||et===void 0?void 0:et.height)!==null&&tt!==void 0?tt:j.selectBoxPosition.height:j.selectBoxPosition.height+_e.dy})});case GraphCanvasEvent.SelectEnd:return Object.assign(Object.assign({},j),{selectBoxPosition:emptySelectBoxPosition(),data:Object.assign(Object.assign({},j.data),{present:selectNodeBySelectBox(j.settings.graphConfig,j.viewport.transformMatrix,j.selectBoxPosition,rt)})});case GraphCanvasEvent.UpdateNodeSelectionBySelectBox:return j.behavior!==GraphBehavior.MultiSelect?j:Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:selectNodeBySelectBox(j.settings.graphConfig,j.viewport.transformMatrix,j.selectBoxPosition,rt)})});case GraphCanvasEvent.Navigate:return handleNavigate(j,_e);case GraphNodeEvent.SelectAll:return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:rt.selectNodes(()=>!0)})});case GraphNodeEvent.Select:{const ot=new Set(_e.nodes);return Object.assign(Object.assign({},j),{data:Object.assign(Object.assign({},j.data),{present:rt.selectNodes(it=>ot.has(it.id))})})}default:return j}};function getRectCenter(j){return{x:j.width/2,y:j.height/2}}function resetViewport(j,_e,et,tt){if(!isViewportComplete(j))return j;if(!tt.ensureNodeVisible)return Object.assign(Object.assign({},j),{transformMatrix:EMPTY_TRANSFORM_MATRIX});const{nodes:rt,groups:nt}=_e;if(rt.size===0)return Object.assign(Object.assign({},j),{transformMatrix:EMPTY_TRANSFORM_MATRIX});const ot=ft=>isRectVisible(ft,j),it=rt.map(ft=>getNodeRect(ft,et));if(it.find(ot))return Object.assign(Object.assign({},j),{transformMatrix:EMPTY_TRANSFORM_MATRIX});const lt=nt.map(ft=>getGroupRect(ft,rt,et));if(lt.find(ot))return Object.assign(Object.assign({},j),{transformMatrix:EMPTY_TRANSFORM_MATRIX});let ct=it.first();const dt=ft=>{ct.y>ft.y&&(ct=ft)};return it.forEach(dt),lt.forEach(dt),Object.assign(Object.assign({},j),{transformMatrix:[1,0,0,1,-ct.x,-ct.y]})}function zoomToFit(j,_e,et,tt){if(!isViewportComplete(j))return j;const{graphConfig:rt,nodeMaxVisibleSize:nt,nodeMinVisibleSize:ot}=et,it=getZoomFitMatrix(Object.assign(Object.assign({},tt),{data:_e,graphConfig:rt,rect:j.rect,nodeMaxVisibleSize:nt,nodeMinVisibleSize:ot}));return Object.assign(Object.assign({},j),{transformMatrix:it})}const reducer=(j,_e,et,tt)=>{var rt,nt,ot,it;const{graphConfig:st,canvasBoundaryPadding:lt,features:ut}=tt,ct=dt=>Math.max(dt,getScaleLimit(et,tt));switch(_e.type){case GraphCanvasEvent.ViewportResize:return Object.assign(Object.assign({},j),{rect:_e.viewportRect});case GraphCanvasEvent.Zoom:return isViewportComplete(j)?zoom({scale:_e.scale,anchor:(rt=_e.anchor)!==null&&rt!==void 0?rt:getRectCenter(j.rect),direction:_e.direction,limitScale:ct})(j):j;case GraphScrollBarEvent.Scroll:case GraphCanvasEvent.MouseWheelScroll:case GraphCanvasEvent.Pan:case GraphCanvasEvent.Drag:{if(!isViewportComplete(j))return j;const{transformMatrix:dt,rect:ft}=j;let{dx:pt,dy:gt}=_e;const mt=ut.has(GraphFeatures.LimitBoundary),bt=(ot=(nt=et.groups)===null||nt===void 0?void 0:nt[0])===null||ot===void 0?void 0:ot.padding;if(mt){const{minX:_t,maxX:xt,minY:yt,maxY:Et}=getOffsetLimit({data:et,graphConfig:st,rect:ft,transformMatrix:dt,canvasBoundaryPadding:lt,groupPadding:bt});pt=clamp$1(_t-dt[4],xt-dt[4],pt),gt=clamp$1(yt-dt[5],Et-dt[5],gt)}return pan(pt,gt)(j)}case GraphCanvasEvent.Pinch:{const{dx:dt,dy:ft,scale:pt,anchor:gt}=_e;return pipe(pan(dt,ft),zoom({scale:pt,anchor:gt,limitScale:ct}))(j)}case GraphMinimapEvent.Pan:return minimapPan(_e.dx,_e.dy)(j);case GraphCanvasEvent.ResetViewport:return resetViewport(j,et,st,_e);case GraphCanvasEvent.ZoomTo:return isViewportComplete(j)?zoomTo({scale:_e.scale,anchor:(it=_e.anchor)!==null&&it!==void 0?it:getRectCenter(j.rect),direction:_e.direction,limitScale:ct})(j):j;case GraphCanvasEvent.ZoomToFit:return zoomToFit(j,et,tt,_e);case GraphCanvasEvent.ScrollIntoView:if(j.rect){const{x:dt,y:ft}=transformPoint(_e.x,_e.y,j.transformMatrix);return scrollIntoView$1(dt,ft,j.rect,!0)(j)}return j;default:return j}},viewportReducer=(j,_e)=>{const et=reducer(j.viewport,_e,j.data.present,j.settings);return et===j.viewport?j:Object.assign(Object.assign({},j),{viewport:et})},builtinReducer=composeReducers([behaviorReducer,viewportReducer,nodeReducer,portReducer,edgeReducer,canvasReducer,connectingReducer,selectionReducer,contextMenuReducer].map(j=>_e=>(et,tt)=>_e(j(et,tt),tt)));function getGraphReducer(j=void 0,_e=identical){return(j?composeReducers([j,builtinReducer]):builtinReducer)(_e)}function useGraphReducer(j,_e){const et=reactExports.useMemo(()=>getGraphReducer(_e),[_e]),[tt,rt]=reactExports.useReducer(et,j,createGraphState),nt=useConst(()=>[]),ot=reactExports.useRef(tt),it=reactExports.useCallback((st,lt)=>{lt&&nt.push(lt),rt(st)},[nt]);return reactExports.useEffect(()=>{const st=ot.current;st!==tt&&(ot.current=tt,reactDomExports.unstable_batchedUpdates(()=>{nt.forEach(lt=>{try{lt(tt,st)}catch(ut){console.error(ut)}}),nt.length=0}))},[tt]),[tt,it]}class MouseMoveEventProvider{constructor(_e){this.target=_e}off(_e,et){switch(_e){case"move":this.target.removeEventListener("mousemove",et);break;case"end":this.target.removeEventListener("mouseup",et);break}return this}on(_e,et){switch(_e){case"move":this.target.addEventListener("mousemove",et);break;case"end":this.target.addEventListener("mouseup",et);break}return this}}const useGetMouseDownOnAnchor=(j,_e)=>{const et=useGraphController();return reactExports.useCallback(tt=>rt=>{rt.preventDefault(),rt.stopPropagation(),_e.trigger({type:GraphNodeEvent.ResizingStart,rawEvent:rt,node:j});const nt=new DragController(new MouseMoveEventProvider(et.getGlobalEventTarget()),defaultGetPositionFromEvent);nt.onMove=({totalDX:ot,totalDY:it,e:st})=>{_e.trigger(Object.assign({type:GraphNodeEvent.Resizing,rawEvent:st,node:j,dx:0,dy:0,dWidth:0,dHeight:0},tt(ot,it)))},nt.onEnd=({e:ot})=>{_e.trigger({type:GraphNodeEvent.ResizingEnd,rawEvent:ot,node:j})},_e.trigger({type:GraphNodeEvent.ResizingStart,rawEvent:rt,node:j}),nt.start(rt.nativeEvent)},[_e,et,j])};class PointerEventProvider{constructor(_e,et=null){this.eventEmitter=new eventemitter3Exports.EventEmitter,this.onMove=tt=>{(this.pointerId===null||this.pointerId===tt.pointerId)&&this.eventEmitter.emit("move",tt)},this.onUp=tt=>{(this.pointerId===null||this.pointerId===tt.pointerId)&&this.eventEmitter.emit("end",tt)},this.target=_e,this.pointerId=et}off(_e,et){return this.eventEmitter.off(_e,et),this.ensureRemoveListener(_e),this}on(_e,et){return this.ensureAddListener(_e),this.eventEmitter.on(_e,et),this}ensureAddListener(_e){if(!this.eventEmitter.listeners(_e).length)switch(_e){case"move":this.target.addEventListener("pointermove",this.onMove);break;case"end":this.target.addEventListener("pointerup",this.onUp);break}}ensureRemoveListener(_e){if(!this.eventEmitter.listeners(_e).length)switch(_e){case"move":this.target.removeEventListener("pointermove",this.onMove);break;case"end":this.target.removeEventListener("pointerup",this.onUp);break}}}const withSimulatedClick=(j,_e)=>({totalDX:et,totalDY:tt,e:rt})=>{var nt;const{eventChannel:ot,dragThreshold:it,containerRef:st}=j,lt=[];lt.push({type:_e,rawEvent:rt}),rt.target instanceof Node&&(!((nt=st.current)===null||nt===void 0)&&nt.contains(rt.target))&&isWithinThreshold(et,tt,it)&<.push({type:GraphCanvasEvent.Click,rawEvent:rt}),ot.batch(lt)},dragMultiSelect=(j,_e)=>{const{getPositionFromEvent:et,graphController:tt,eventChannel:rt}=_e,nt=new DragController(new MouseMoveEventProvider(tt.getGlobalEventTarget()),et);nt.onMove=({dx:ot,dy:it,e:st})=>{rt.trigger({type:GraphCanvasEvent.SelectMove,rawEvent:st,dx:ot,dy:it})},nt.onEnd=withSimulatedClick(_e,GraphCanvasEvent.SelectEnd),rt.trigger({type:GraphCanvasEvent.SelectStart,rawEvent:j}),nt.start(j)},dragPan=(j,_e)=>{const{getPositionFromEvent:et,graphController:tt,eventChannel:rt}=_e,nt=new DragController(new MouseMoveEventProvider(tt.getGlobalEventTarget()),et);nt.onMove=({dx:ot,dy:it,e:st})=>{rt.trigger({type:GraphCanvasEvent.Drag,rawEvent:st,dx:ot,dy:it})},nt.onEnd=withSimulatedClick(_e,GraphCanvasEvent.DragEnd),nt.start(j),rt.trigger({type:GraphCanvasEvent.DragStart,rawEvent:j})},onContainerMouseDown=(j,_e)=>{var et;if(j.preventDefault(),j.stopPropagation(),j.button!==MouseEventButton.Primary)return;const{canvasMouseMode:tt,isPanDisabled:rt,isMultiSelectDisabled:nt,state:ot,isLassoSelectEnable:it,graphController:st}=_e,lt=tt===CanvasMouseMode.Pan&&!j.ctrlKey&&!j.shiftKey&&!j.metaKey||((et=ot.activeKeys)===null||et===void 0?void 0:et.has(" "));!rt&<?dragPan(j.nativeEvent,_e):!nt||it&&!j.ctrlKey&&!j.metaKey?dragMultiSelect(j.nativeEvent,_e):st.canvasClickOnce=!0};function isMouseButNotLeft(j){return j.pointerType==="mouse"&&j.button!==MouseEventButton.Primary}const onNodePointerDown=(j,_e,et)=>{j.preventDefault();const{svgRef:tt,isNodesDraggable:rt,getPositionFromEvent:nt,isClickNodeToSelectDisabled:ot,eventChannel:it,dragThreshold:st,rectRef:lt,isAutoAlignEnable:ut,autoAlignThreshold:ct,graphController:dt}=et;rt&&j.stopPropagation();const ft=isMouseButNotLeft(j);if(ot||ft)return;tt.current&&tt.current.focus({preventScroll:!0});const pt=checkIsMultiSelect(j),gt=new DragNodeController(new PointerEventProvider(dt.getGlobalEventTarget(),j.pointerId),nt,lt);gt.onMove=({dx:mt,dy:bt,totalDX:_t,totalDY:xt,e:yt})=>{rt&&it.trigger({type:GraphNodeEvent.Drag,node:_e,dx:mt,dy:bt,rawEvent:yt,isVisible:!isWithinThreshold(_t,xt,st),isAutoAlignEnable:ut,autoAlignThreshold:ct})},gt.onEnd=({totalDX:mt,totalDY:bt,e:_t})=>{var xt,yt;dt.pointerId=null;const Et=isWithinThreshold(mt,bt,st);if((Et||!rt)&&(dt.nodeClickOnce=_e),it.trigger({type:GraphNodeEvent.DragEnd,node:_e,rawEvent:_t,isDragCanceled:Et}),Et){const St=new MouseEvent("click",_t);(yt=(xt=j.currentTarget)!==null&&xt!==void 0?xt:j.target)===null||yt===void 0||yt.dispatchEvent(St)}},dt.pointerId=j.pointerId,j.target instanceof Element&&j.pointerType!=="mouse"&&j.target.releasePointerCapture(j.pointerId),it.trigger({type:GraphNodeEvent.DragStart,node:_e,rawEvent:j,isMultiSelect:pt}),gt.start(j.nativeEvent)},useCanvasKeyboardEventHandlers=j=>{const{featureControl:_e,graphConfig:et,setCurHoverNode:tt,setCurHoverPort:rt,eventChannel:nt}=j,{isDeleteDisabled:ot,isPasteDisabled:it,isUndoEnabled:st}=_e;return reactExports.useMemo(()=>{const lt=new Map,ut=()=>yt=>{yt.preventDefault(),yt.stopPropagation(),!ot&&(nt.trigger({type:GraphCanvasEvent.Delete}),tt(void 0),rt(void 0))};lt.set("delete",ut()),lt.set("backspace",ut());const ct=yt=>{metaControl(yt)&&(yt.preventDefault(),yt.stopPropagation(),nt.trigger({type:GraphCanvasEvent.Copy}))};lt.set("c",ct);const dt=yt=>{if(metaControl(yt)){if(yt.preventDefault(),yt.stopPropagation(),it)return;const Et=et.getClipboard().read();Et&&nt.trigger({type:GraphCanvasEvent.Paste,data:Et})}};lt.set("v",dt);const ft=yt=>{st&&metaControl(yt)&&(yt.preventDefault(),yt.stopPropagation(),nt.trigger({type:GraphCanvasEvent.Undo}))};st&<.set("z",ft);const pt=yt=>{st&&metaControl(yt)&&(yt.preventDefault(),yt.stopPropagation(),nt.trigger({type:GraphCanvasEvent.Redo}))};st&<.set("y",pt);const gt=yt=>{metaControl(yt)&&(yt.preventDefault(),yt.stopPropagation(),nt.trigger({type:GraphNodeEvent.SelectAll}))};lt.set("a",gt);const mt=yt=>{yt.preventDefault(),yt.stopPropagation()},bt=yt=>{yt.preventDefault(),yt.stopPropagation()},_t=yt=>{yt.preventDefault(),yt.stopPropagation()},xt=yt=>{yt.preventDefault(),yt.stopPropagation()};return lt.set(" ",mt),lt.set("control",bt),lt.set("meta",_t),lt.set("shift",xt),yt=>{if(yt.repeat)return;const Et=yt.key.toLowerCase(),St=lt.get(Et);St&&St.call(null,yt)}},[nt,et,ot,it,st,tt,rt])};let prevMouseDownPortId,prevMouseDownPortTime;function useEventChannel({props:j,dispatch:_e,rectRef:et,svgRef:tt,containerRef:rt,featureControl:nt,graphConfig:ot,setFocusedWithoutMouse:it,setCurHoverNode:st,setCurHoverPort:lt,eventChannel:ut,updateViewport:ct,graphController:dt}){const{dragThreshold:ft=10,autoAlignThreshold:pt=DEFAULT_AUTO_ALIGN_THRESHOLD,getPositionFromEvent:gt=defaultGetPositionFromEvent,canvasMouseMode:mt,edgeWillAdd:bt}=j,{isNodesDraggable:_t,isAutoAlignEnable:xt,isClickNodeToSelectDisabled:yt,isPanDisabled:Et,isMultiSelectDisabled:St,isLassoSelectEnable:Tt,isConnectDisabled:kt,isPortHoverViewEnable:$t,isNodeEditDisabled:Ct,isA11yEnable:It}=nt,Nt=reactExports.useMemo(()=>animationFramed(_e),[_e]),Ot=useCanvasKeyboardEventHandlers({featureControl:nt,eventChannel:ut,graphConfig:ot,setCurHoverNode:st,setCurHoverPort:lt}),jt=Ut=>{const ar=dt.getData();if(ar.nodes.size>0&&tt.current){const pr=ar.head&&ar.nodes.get(ar.head);pr&&focusItem(tt,{node:pr,port:void 0},Ut,ut)}},Mt=Ut=>{switch(Ut.type){case GraphEdgeEvent.ConnectStart:case GraphEdgeEvent.ConnectMove:case GraphEdgeEvent.ConnectEnd:case GraphEdgeEvent.ConnectNavigate:case GraphEdgeEvent.Click:case GraphEdgeEvent.MouseEnter:case GraphEdgeEvent.MouseLeave:case GraphEdgeEvent.DoubleClick:_e(Ut);break;case GraphEdgeEvent.ContextMenu:Ut.rawEvent.stopPropagation(),Ut.rawEvent.preventDefault(),_e(Ut);break}},Rt=Ut=>{var ar,pr;switch(Ut.type){case GraphCanvasEvent.ViewportResize:case GraphCanvasEvent.Drag:case GraphCanvasEvent.MouseWheelScroll:case GraphCanvasEvent.Zoom:case GraphCanvasEvent.Pinch:case GraphCanvasEvent.Click:case GraphCanvasEvent.SelectStart:case GraphCanvasEvent.SelectMove:case GraphCanvasEvent.SelectEnd:case GraphCanvasEvent.ResetSelection:case GraphCanvasEvent.Navigate:case GraphCanvasEvent.Paste:case GraphCanvasEvent.Undo:case GraphCanvasEvent.Redo:case GraphCanvasEvent.Delete:case GraphCanvasEvent.KeyUp:case GraphCanvasEvent.DraggingNodeFromItemPanelStart:case GraphCanvasEvent.DraggingNodeFromItemPanel:case GraphCanvasEvent.DraggingNodeFromItemPanelEnd:_e(Ut);break;case GraphCanvasEvent.Copy:{const rr=filterSelectedItems(dt.getData());ot.getClipboard().write(rr)}break;case GraphCanvasEvent.KeyDown:!Ut.rawEvent.repeat&&Ut.rawEvent.target===Ut.rawEvent.currentTarget&&!Ut.rawEvent.shiftKey&&Ut.rawEvent.key==="Tab"?(Ut.rawEvent.preventDefault(),Ut.rawEvent.stopPropagation(),it(!0),jt(Ut.rawEvent)):Ot(Ut.rawEvent),_e(Ut);break;case GraphCanvasEvent.MouseDown:{dt.nodeClickOnce=null,(ar=tt.current)===null||ar===void 0||ar.focus({preventScroll:!0}),it(!1);const rr=Ut.rawEvent;ct(),onContainerMouseDown(rr,{state:dt.state,canvasMouseMode:mt,isPanDisabled:Et,isMultiSelectDisabled:St,isLassoSelectEnable:Tt,dragThreshold:ft,containerRef:rt,getPositionFromEvent:defaultGetPositionFromEvent,eventChannel:ut,graphController:dt})}break;case GraphCanvasEvent.MouseUp:if(dt.canvasClickOnce){dt.canvasClickOnce=!1;const rr=Ut.rawEvent;rr.target instanceof Node&&(!((pr=tt.current)===null||pr===void 0)&&pr.contains(rr.target))&&rr.target.nodeName==="svg"&&ut.trigger({type:GraphCanvasEvent.Click,rawEvent:Ut.rawEvent})}break;case GraphCanvasEvent.ContextMenu:Ut.rawEvent.preventDefault(),Ut.rawEvent.stopPropagation(),_e(Ut);break;case GraphCanvasEvent.MouseMove:{const rr=Ut.rawEvent;dt.setMouseClientPosition({x:rr.clientX,y:rr.clientY})}break;case GraphCanvasEvent.MouseLeave:dt.unsetMouseClientPosition(),dt.canvasClickOnce=!1;break;case GraphCanvasEvent.Blur:it(!1);break}},Lt=Ut=>{const{node:ar}=Ut,{isNodeHoverViewEnabled:pr}=nt;switch(dt.getBehavior()){case GraphBehavior.Connecting:case GraphBehavior.Default:pr&&(st(ar.id),lt(void 0));break}_e(Ut)},Pt=Ut=>{_e(Ut),st(void 0)},Gt=Ut=>{Ct||(Ut.rawEvent.stopPropagation(),_e(Ut))},qt=Ut=>{if(!tt||!It)return;const ar=dt.getData(),{node:pr}=Ut,rr=Ut.rawEvent;switch(rr.key){case"Tab":{rr.preventDefault(),rr.stopPropagation();const vr=rr.shiftKey?getPrevItem(ar,pr):getNextItem(ar,pr);focusItem(tt,vr,rr,ut)}break;case"ArrowUp":rr.preventDefault(),rr.stopPropagation(),focusUpNode(ar,pr.id,tt,dt,rr,ut);break;case"ArrowDown":rr.preventDefault(),rr.stopPropagation(),focusDownNode(ar,pr.id,tt,dt,rr,ut);break;case"ArrowLeft":rr.preventDefault(),rr.stopPropagation(),focusLeftNode(ar,pr.id,tt,dt,rr,ut);break;case"ArrowRight":rr.preventDefault(),rr.stopPropagation(),focusRightNode(ar,pr.id,tt,dt,rr,ut);break}},Yt=Ut=>{var ar;switch(Ut.type){case GraphNodeEvent.ResizingStart:case GraphNodeEvent.Resizing:case GraphNodeEvent.ResizingEnd:case GraphNodeEvent.DragStart:case GraphNodeEvent.Drag:case GraphNodeEvent.DragEnd:case GraphNodeEvent.SelectAll:_e(Ut);break;case GraphNodeEvent.PointerMove:Ut.rawEvent.pointerId===dt.pointerId&&Nt(Ut);break;case GraphNodeEvent.PointerDown:{if(dt.nodeClickOnce=null,dt.getBehavior()!==GraphBehavior.Default)return;const pr=Ut.rawEvent;ct(),onNodePointerDown(pr,Ut.node,{svgRef:tt,rectRef:et,isNodesDraggable:_t,isAutoAlignEnable:xt,dragThreshold:ft,getPositionFromEvent:gt,isClickNodeToSelectDisabled:yt,autoAlignThreshold:pt,eventChannel:ut,graphController:dt})}break;case GraphNodeEvent.PointerEnter:Lt(Ut);break;case GraphNodeEvent.PointerLeave:Pt(Ut);break;case GraphNodeEvent.MouseDown:dt.nodeClickOnce=null,Ut.rawEvent.preventDefault(),_t&&Ut.rawEvent.stopPropagation(),it(!1);break;case GraphNodeEvent.Click:if(((ar=dt.nodeClickOnce)===null||ar===void 0?void 0:ar.id)===Ut.node.id){const{currentTarget:pr}=Ut.rawEvent;pr instanceof SVGElement&&pr.focus({preventScroll:!0}),Ut.node=dt.nodeClickOnce,_e(Ut),dt.nodeClickOnce=null}else Ut.intercepted=!0;break;case GraphNodeEvent.ContextMenu:Ut.rawEvent.preventDefault(),Ut.rawEvent.stopPropagation(),_e(Ut);break;case GraphNodeEvent.DoubleClick:Gt(Ut);break;case GraphNodeEvent.KeyDown:qt(Ut);break}},Xt=reactExports.useCallback(Ut=>{const ar=Ut.rawEvent,{node:pr,port:rr}=Ut;if(it(!1),ar.stopPropagation(),ar.preventDefault(),prevMouseDownPortId=`${pr.id}:${rr.id}`,prevMouseDownPortTime=performance.now(),kt||isMouseButNotLeft(ar))return;ct();const vr=dt.getGlobalEventTarget(),$r=new DragController(new PointerEventProvider(vr,ar.pointerId),gt);$r.onMove=({clientX:Rr,clientY:Cr,e:Nr})=>{ut.trigger({type:GraphEdgeEvent.ConnectMove,rawEvent:Nr,clientX:Rr,clientY:Cr})},$r.onEnd=({e:Rr,totalDY:Cr,totalDX:Nr})=>{var Gr,qr;const Qr=isWithinThreshold(Nr,Cr,ft);if(ut.trigger({type:GraphEdgeEvent.ConnectEnd,rawEvent:Rr,edgeWillAdd:bt,isCancel:Qr}),dt.pointerId=null,Qr){const Yr=new MouseEvent("click",Rr);(qr=(Gr=ar.currentTarget)!==null&&Gr!==void 0?Gr:ar.target)===null||qr===void 0||qr.dispatchEvent(Yr)}},ut.trigger({type:GraphEdgeEvent.ConnectStart,nodeId:pr.id,portId:rr.id,rawEvent:ar,clientPoint:{x:ar.clientX,y:ar.clientY}}),ar.target instanceof Element&&ar.pointerType!=="mouse"&&ar.target.releasePointerCapture(ar.pointerId),dt.pointerId=ar.pointerId,$r.start(ar.nativeEvent)},[bt,ut,gt,dt,kt,it,ct]),tr=reactExports.useCallback(Ut=>{const ar=Ut.rawEvent,{node:pr,port:rr}=Ut;prevMouseDownPortId===`${pr.id}:${rr.id}`&&performance.now()-(prevMouseDownPortTime||0)<500&&(prevMouseDownPortId=void 0,prevMouseDownPortTime=void 0,ut.trigger({type:GraphPortEvent.Click,node:pr,port:rr,rawEvent:ar}))},[ut]),cr=Ut=>{switch(dt.getBehavior()){case GraphBehavior.Default:lt([Ut.node.id,Ut.port.id]);break}$t&<([Ut.node.id,Ut.port.id]),Ut.rawEvent.pointerId===dt.pointerId&&_e(Ut)},mr=Ut=>{lt(void 0),_e(Ut)},Er=Ut=>{var ar,pr,rr;if(!It)return;const vr=Ut.rawEvent;if(vr.altKey&&(vr.nativeEvent.code==="KeyC"||vr.key==="c")){vr.preventDefault(),vr.stopPropagation(),ut.trigger({type:GraphEdgeEvent.ConnectStart,nodeId:Ut.node.id,portId:Ut.port.id,rawEvent:vr});return}const $r=dt.getData(),{node:Rr,port:Cr}=Ut;switch(vr.key){case"Tab":if(It&&dt.getBehavior()===GraphBehavior.Connecting)vr.preventDefault(),vr.stopPropagation(),ut.trigger({type:GraphEdgeEvent.ConnectNavigate,rawEvent:vr});else{const Nr=vr.shiftKey?getPrevItem($r,Rr,Cr):getNextItem($r,Rr,Cr);focusItem(tt,Nr,vr,ut)}break;case"ArrowUp":case"ArrowLeft":vr.preventDefault(),vr.stopPropagation(),focusPrevPort((ar=Rr.ports)!==null&&ar!==void 0?ar:[],Rr,Cr.id,tt,vr,ut);break;case"ArrowDown":case"ArrowRight":vr.preventDefault(),vr.stopPropagation(),focusNextPort((pr=Rr.ports)!==null&&pr!==void 0?pr:[],Rr,Cr.id,tt,vr,ut);break;case"g":vr.preventDefault(),vr.stopPropagation(),goToConnectedPort($r,Rr,Cr,tt,vr,ut);break;case"Escape":dt.getBehavior()===GraphBehavior.Connecting&&(vr.preventDefault(),vr.stopPropagation(),tt.current&&((rr=findDOMElement(tt.current,{node:Rr,port:Cr}))===null||rr===void 0||rr.blur()));break;case"Enter":vr.preventDefault(),vr.stopPropagation(),ut.trigger({type:GraphEdgeEvent.ConnectEnd,rawEvent:vr.nativeEvent,edgeWillAdd:bt,isCancel:!1});break}},hr=Ut=>{switch(Ut.type){case GraphPortEvent.Click:_e(Ut);break;case GraphPortEvent.PointerDown:Xt(Ut);break;case GraphPortEvent.PointerUp:tr(Ut);break;case GraphPortEvent.PointerEnter:cr(Ut);break;case GraphPortEvent.PointerLeave:mr(Ut);break;case GraphPortEvent.ContextMenu:Ut.rawEvent.preventDefault(),Ut.rawEvent.stopPropagation(),_e(Ut);break;case GraphPortEvent.Focus:Ut.rawEvent.stopPropagation(),_e(Ut);break;case GraphPortEvent.Blur:dt.getBehavior()===GraphBehavior.Connecting&&ut.trigger({type:GraphEdgeEvent.ConnectEnd,rawEvent:Ut.rawEvent.nativeEvent,edgeWillAdd:bt,isCancel:!0});break;case GraphPortEvent.KeyDown:Er(Ut);break}},_r=Ut=>{const ar=handleBehaviorChange(dt.getBehavior(),Ut);switch(dt.setBehavior(ar),Mt(Ut),Rt(Ut),Yt(Ut),hr(Ut),Ut.type){case GraphMinimapEvent.Pan:case GraphScrollBarEvent.Scroll:case GraphContextMenuEvent.Open:case GraphContextMenuEvent.Close:_e(Ut);break}};reactExports.useImperativeHandle(ut.listenersRef,()=>_r),reactExports.useImperativeHandle(ut.externalHandlerRef,()=>j.onEvent)}const useFeatureControl=j=>reactExports.useMemo(()=>{const _e=j.has(GraphFeatures.NodeDraggable),et=j.has(GraphFeatures.NodeResizable),tt=!j.has(GraphFeatures.AutoFit),rt=!j.has(GraphFeatures.PanCanvas),nt=!j.has(GraphFeatures.MultipleSelect),ot=j.has(GraphFeatures.LassoSelect),it=j.has(GraphFeatures.NodeHoverView),st=!j.has(GraphFeatures.ClickNodeToSelect),lt=!j.has(GraphFeatures.AddNewEdges),ut=j.has(GraphFeatures.PortHoverView),ct=!j.has(GraphFeatures.EditNode),dt=!j.has(GraphFeatures.CanvasVerticalScrollable),ft=!j.has(GraphFeatures.CanvasHorizontalScrollable),pt=j.has(GraphFeatures.A11yFeatures),gt=j.has(GraphFeatures.AutoAlign),mt=j.has(GraphFeatures.CtrlKeyZoom),bt=j.has(GraphFeatures.LimitBoundary),_t=!j.has(GraphFeatures.AutoFit),xt=j.has(GraphFeatures.EditEdge),yt=!j.has(GraphFeatures.Delete),Et=!j.has(GraphFeatures.AddNewNodes)||!j.has(GraphFeatures.AddNewEdges),St=j.has(GraphFeatures.UndoStack),Tt=(!dt||!ft||!rt)&&bt&&!j.has(GraphFeatures.InvisibleScrollbar);return{isNodesDraggable:_e,isNodeResizable:et,isAutoFitDisabled:tt,isPanDisabled:rt,isMultiSelectDisabled:nt,isLassoSelectEnable:ot,isNodeHoverViewEnabled:it,isClickNodeToSelectDisabled:st,isConnectDisabled:lt,isPortHoverViewEnable:ut,isNodeEditDisabled:ct,isVerticalScrollDisabled:dt,isHorizontalScrollDisabled:ft,isA11yEnable:pt,isAutoAlignEnable:gt,isCtrlKeyZoomEnable:mt,isLimitBoundary:bt,isVirtualizationEnabled:_t,isEdgeEditable:xt,isDeleteDisabled:yt,isPasteDisabled:Et,isUndoEnabled:St,isScrollbarVisible:Tt}},[j]),emptyLine=()=>({x1:0,y1:0,x2:0,y2:0,visible:!1}),Line=j=>{var _e;const{line:et,style:tt}=j,rt=Object.assign(Object.assign({strokeWidth:1},tt),{stroke:et.visible?(_e=tt==null?void 0:tt.stroke)!==null&&_e!==void 0?_e:"#ea4300":"none"});return jsxRuntimeExports.jsx("line",{className:"auto-align-hint",x1:et.x1,y1:et.y1,x2:et.x2,y2:et.y2,style:rt})},AlignmentLines=reactExports.memo(({style:j})=>{const _e=useAlignmentLines();return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:_e.map((et,tt)=>et.visible?jsxRuntimeExports.jsx(Line,{line:et,style:j},tt):null)})});AlignmentLines.displayName="AlignmentLines";const NodeFrame=j=>{var _e,et;const tt=reactExports.useContext(SlotsContext);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:(et=(_e=tt.renderNodeFrame)===null||_e===void 0?void 0:_e.call(tt,j))!==null&&et!==void 0?et:j.children})},NodeResizeHandler=j=>{var _e,et;const tt=reactExports.useContext(SlotsContext);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:(et=(_e=tt.renderNodeResizeHandler)===null||_e===void 0?void 0:_e.call(tt,j))!==null&&et!==void 0?et:j.children})},Slots={NodeFrame,NodeResizeHandler},AnimatingNodeGroup=j=>{var _e,et;const{dummyNodes:tt,graphData:rt}=j,nt=useGraphConfig(),{dWidth:ot,dHeight:it}=tt,st=(_e=tt.alignedDX)!==null&&_e!==void 0?_e:tt.dx,lt=(et=tt.alignedDY)!==null&&et!==void 0?et:tt.dy;return jsxRuntimeExports.jsx("g",{children:tt.nodes.map(ut=>{const ct=rt.nodes.get(ut.id);if(!ct)return null;const dt=ut.x+st,ft=ut.y+lt,pt=ut.width+ot,gt=ut.height+it,mt=getNodeConfig(ct,nt);return mt!=null&&mt.renderDummy?mt.renderDummy(Object.assign(Object.assign({},ct.inner),{x:dt,y:ft,width:pt,height:gt})):jsxRuntimeExports.jsx(Slots.NodeFrame,Object.assign({height:gt,width:pt,x:dt,y:ft},{children:jsxRuntimeExports.jsx("rect",{transform:`translate(${dt},${ft})`,height:gt,width:pt,stroke:defaultColors.dummyNodeStroke,strokeDasharray:"4",fill:"none"},ct.id)}),`node-frame-${ut.id}`)})})},ConnectingLine=j=>{const{autoAttachLine:_e,connectingLine:et,styles:tt}=j,rt=(tt==null?void 0:tt.stroke)||defaultColors.primaryColor,nt=(tt==null?void 0:tt.fill)||"none",ot=(tt==null?void 0:tt.strokeDasharray)||"4,4",it=et.visible?rt:"none";return jsxRuntimeExports.jsxs("g",{children:[jsxRuntimeExports.jsx("defs",{children:jsxRuntimeExports.jsx("marker",Object.assign({id:"markerArrow",markerWidth:"10",markerHeight:"10",refX:"6",refY:"5",orient:"auto",markerUnits:"strokeWidth"},{children:jsxRuntimeExports.jsx("path",{d:"M0,0 L6,5 L0,10",style:{stroke:it,fill:"none"}})}))}),jsxRuntimeExports.jsx("line",{x1:et.x1,y1:et.y1,x2:et.x2,y2:et.y2,style:{stroke:it,fill:nt,strokeDasharray:ot},markerEnd:"url(#markerArrow)"}),jsxRuntimeExports.jsx("path",{d:getCurvePathD(_e.x2,_e.x1,_e.y2,_e.y1),style:{stroke:_e.visible?rt:"none",fill:"none"}})]})},Connecting=reactExports.memo(j=>{const{styles:_e,graphConfig:et,viewport:tt,movingPoint:rt}=j,{sourcePort:nt,sourceNode:ot,targetPort:it,targetNode:st}=useConnectingState();if(!ot||!nt)return null;const lt=ot.getPortPosition(nt.id,et);let ut,ct=!1;if(st&&it?(ct=!0,ut=st==null?void 0:st.getPortPosition(it.id,et)):ut=lt,!lt||!ut)return null;const dt=transformPoint(lt.x,lt.y,tt.transformMatrix),ft=transformPoint(ut.x,ut.y,tt.transformMatrix),pt=rt?{x1:dt.x,y1:dt.y,x2:rt.x,y2:rt.y,visible:!ct}:emptyLine(),gt={x1:dt.x,y1:dt.y,x2:ft.x,y2:ft.y,visible:ct};return jsxRuntimeExports.jsx(ConnectingLine,{connectingLine:pt,autoAttachLine:gt,styles:_e})});Connecting.displayName="Connecting";const defaultStyle={position:"fixed",userSelect:"none"},GraphContextMenu=({state:j,onClick:_e})=>{var et,tt;const rt=reactExports.useRef(null),[nt,ot]=reactExports.useState(Object.assign({},defaultStyle));reactExports.useLayoutEffect(()=>{const ct=rt.current;if(!ct||!j.contextMenuPosition)return;const{x:dt,y:ft}=j.contextMenuPosition,{clientWidth:pt,clientHeight:gt}=document.documentElement,{width:mt,height:bt}=ct.getBoundingClientRect(),_t=Object.assign({},defaultStyle);dt+mt>=pt?_t.right=0:_t.left=dt,ft+bt>gt?_t.bottom=0:_t.top=ft,ot(_t)},[(et=j.contextMenuPosition)===null||et===void 0?void 0:et.x,(tt=j.contextMenuPosition)===null||tt===void 0?void 0:tt.y]);const it=useContextMenuConfigContext(),[st,lt]=reactExports.useState(jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{}));reactExports.useEffect(()=>{const ct=j.data.present;let dt=0,ft=0,pt=0;ct.nodes.forEach(mt=>{var bt;isSelected(mt)&&(dt+=1),(bt=mt.ports)===null||bt===void 0||bt.forEach(_t=>{isSelected(_t)&&(ft+=1)})}),ct.edges.forEach(mt=>{isSelected(mt)&&(pt+=1)});let gt;ft+dt+pt>1?gt=it.getMenu(MenuType.Multi):ft+dt+pt===0?gt=it.getMenu(MenuType.Canvas):dt===1?gt=it.getMenu(MenuType.Node):ft===1?gt=it.getMenu(MenuType.Port):gt=it.getMenu(MenuType.Edge),lt(gt)},[j.data.present,it]);const ut=reactExports.useCallback(ct=>{ct.stopPropagation(),ct.preventDefault()},[]);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:j.contextMenuPosition&&jsxRuntimeExports.jsx("div",Object.assign({ref:rt,onClick:_e,onContextMenu:ut,role:"button",style:nt},{children:st}))})},Renderer=j=>jsxRuntimeExports.jsx("rect",{height:j.height,width:j.width,fill:j.group.fill}),defaultGroup={render:Renderer},Group=j=>{var _e;const{data:et,group:tt}=j,rt=useGraphConfig(),{x:nt,y:ot,width:it,height:st}=reactExports.useMemo(()=>getGroupRect(tt,et.nodes,rt),[tt,et.nodes,rt]),lt=(_e=rt.getGroupConfig(tt))!==null&&_e!==void 0?_e:defaultGroup,ut=`group-container-${tt.id}`;return jsxRuntimeExports.jsx("g",Object.assign({"data-automation-id":ut,transform:`translate(${nt}, ${ot})`},{children:lt.render({group:tt,height:st,width:it})}),tt.id)},GraphGroupsRenderer=j=>jsxRuntimeExports.jsx("g",{children:reactExports.useMemo(()=>j.groups.map(_e=>jsxRuntimeExports.jsx(Group,{group:_e,data:j.data},_e.id)),[j.groups,j.data])}),NodeTooltips=j=>{const{node:_e,viewport:et}=j,tt=useGraphConfig();if(!_e||!has$1(GraphNodeStatus.Activated)(_e.status))return null;const rt=getNodeConfig(_e,tt);return rt!=null&&rt.renderTooltips?jsxRuntimeExports.jsx("div",Object.assign({className:"node-tooltips"},{children:rt.renderTooltips({model:_e,viewport:et})})):null},PortTooltips=j=>{const _e=useGraphConfig(),{parentNode:et,port:tt,viewport:rt}=j;if(!has$1(GraphPortStatus.Activated)(tt.status))return null;const ot=_e.getPortConfig(tt);if(!ot||!ot.renderTooltips)return null;const it=et.getPortPosition(tt.id,_e);return it?jsxRuntimeExports.jsx("div",Object.assign({className:"port-tooltips"},{children:jsxRuntimeExports.jsx(ConnectingStateContext.Consumer,{children:({sourceNode:st,sourcePort:lt})=>ot.renderTooltips&&ot.renderTooltips(Object.assign({model:tt,parentNode:et,data:j.data,anotherNode:st,anotherPort:lt,viewport:rt},it))})})):null};function useRefValue(j){const _e=reactExports.useRef(j);return reactExports.useLayoutEffect(()=>{_e.current=j},[j]),_e}const SCROLL_BAR_WIDTH=10,wrapperCommonStyle={position:"absolute",cursor:"initial"},useStyles$h=createUseStyles({verticalScrollWrapper:Object.assign(Object.assign({},wrapperCommonStyle),{height:"100%",width:SCROLL_BAR_WIDTH,top:0,right:0}),horizontalScrollWrapper:Object.assign(Object.assign({},wrapperCommonStyle),{height:SCROLL_BAR_WIDTH,width:"100%",bottom:0,left:0}),verticalScrollStyle:j=>({height:j.scrollbarLayout.verticalScrollHeight,width:"100%",backgroundColor:defaultColors.scrollbarColor,position:"absolute",top:0,right:0,transform:`translateY(${j.scrollbarLayout.verticalScrollTop}px)`}),horizontalScrollStyle:j=>({width:j.scrollbarLayout.horizontalScrollWidth-SCROLL_BAR_WIDTH,height:"100%",backgroundColor:defaultColors.scrollbarColor,position:"absolute",left:0,bottom:0,transform:`translateX(${j.scrollbarLayout.horizontalScrollLeft}px)`})}),Scrollbar=j=>{const{vertical:_e=!0,horizontal:et=!0,offsetLimit:tt,eventChannel:rt,viewport:nt}=j,ot=useGraphController(),it=getScrollbarLayout(nt,tt),st=useStyles$h({scrollbarLayout:it}),lt=useRefValue(it);function ut(dt){dt.preventDefault(),dt.stopPropagation();const{height:ft}=nt.rect,pt=new DragController(new MouseMoveEventProvider(ot.getGlobalEventTarget()),defaultGetPositionFromEvent);pt.onMove=({dy:gt,e:mt})=>{const{totalContentHeight:bt}=lt.current,_t=-(gt*bt)/ft;rt.trigger({type:GraphScrollBarEvent.Scroll,rawEvent:mt,dx:0,dy:_t})},pt.onEnd=()=>{rt.trigger({type:GraphScrollBarEvent.ScrollEnd})},pt.start(dt.nativeEvent),rt.trigger({type:GraphScrollBarEvent.ScrollStart})}function ct(dt){dt.preventDefault(),dt.stopPropagation();const{width:ft}=nt.rect,pt=new DragController(new MouseMoveEventProvider(ot.getGlobalEventTarget()),defaultGetPositionFromEvent);pt.onMove=({dx:gt,e:mt})=>{const{totalContentWidth:bt}=lt.current,_t=-(gt*bt)/ft;rt.trigger({type:GraphScrollBarEvent.Scroll,rawEvent:mt,dx:_t,dy:0})},pt.onEnd=()=>{rt.trigger({type:GraphScrollBarEvent.ScrollEnd})},pt.start(dt.nativeEvent),rt.trigger({type:GraphScrollBarEvent.ScrollStart})}return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[_e&&jsxRuntimeExports.jsx("div",Object.assign({className:st.verticalScrollWrapper},{children:jsxRuntimeExports.jsx("div",{className:st.verticalScrollStyle,onMouseDown:ut,role:"button","aria-label":"vertical scrollbar","aria-roledescription":"vertical scrollbar",id:"canvas-vertical-scrollbar"})})),et&&jsxRuntimeExports.jsx("div",Object.assign({className:st.horizontalScrollWrapper},{children:jsxRuntimeExports.jsx("div",{className:st.horizontalScrollStyle,onMouseDown:ct,role:"button","aria-label":"horizontal scrollbar","aria-roledescription":"horizontal scrollbar",id:"canvas-horizontal-scrollbar"})}))]})};function getTotalContentHeight(j,_e){const{minY:et,maxY:tt}=_e;return j+tt-et}function getTotalContentWidth(j,_e){const{minX:et,maxX:tt}=_e;return j+tt-et}function getScrollbarLayout(j,_e){const{rect:et,transformMatrix:tt}=j,rt=getTotalContentHeight(et.height,_e),nt=getTotalContentWidth(et.width,_e);return{totalContentHeight:rt,totalContentWidth:nt,verticalScrollHeight:et.height*et.height/rt,horizontalScrollWidth:et.width*et.width/nt,verticalScrollTop:(_e.maxY-tt[5])*et.height/rt,horizontalScrollLeft:(_e.maxX-tt[4])*et.width/nt}}const Transform=({matrix:j,children:_e})=>{const et=reactExports.useMemo(()=>`matrix(${j.join(" ")})`,j);return jsxRuntimeExports.jsx("g",Object.assign({transform:et},{children:_e}))};function getHintPoints(j,_e,{minX:et,minY:tt,maxX:rt,maxY:nt},ot,it,st,lt){return j.x===_e.x?{x:j.x,y:j.y<_e.y?nt:tt}:j.x<_e.x?j.y<_e.y?ot<=nt?{x:rt,y:ot}:{x:it,y:nt}:ot>=tt?{x:rt,y:ot}:{x:st,y:tt}:j.y<_e.y?it>et?{x:it,y:nt}:{x:et,y:lt}:lt>tt?{x:et,y:lt}:{x:st,y:tt}}const GraphEdge=reactExports.memo(j=>{var _e;const{edge:et,data:tt,eventChannel:rt,source:nt,target:ot,graphId:it}=j,st=useGraphConfig(),lt=useVirtualization(),{viewport:ut,renderedArea:ct,visibleArea:dt}=lt,ft=kt=>$t=>{$t.persist(),rt.trigger({type:kt,edge:et,rawEvent:$t})},pt=isPointInRect(ct,nt),gt=isPointInRect(ct,ot),mt=pt&>if(reactExports.useLayoutEffect(()=>{mt&<.renderedEdges.add(et.id)},[lt]),!mt)return null;const bt=st.getEdgeConfig(et);if(!bt)return Debug.warn(`invalid edge ${JSON.stringify(et)}`),null;if(!bt.render)return Debug.warn(`Missing "render" method in edge config ${JSON.stringify(et)}`),null;const _t=isPointInRect(dt,nt),xt=isPointInRect(dt,ot);let yt=bt.render({model:et,data:tt,x1:nt.x,y1:nt.y,x2:ot.x,y2:ot.y,viewport:ut});if(has$1(GraphEdgeStatus.ConnectedToSelected)(et.status)&&(!_t||!xt)){const kt=getLinearFunction(nt.x,nt.y,ot.x,ot.y),$t=getLinearFunction(nt.y,nt.x,ot.y,ot.x),Ct=_t?nt:ot,It=_t?ot:nt,Nt=kt(dt.maxX),Ot=$t(dt.maxY),jt=$t(dt.minY),Mt=kt(dt.minX),Rt=getHintPoints(Ct,It,dt,Nt,Ot,jt,Mt);_t&&bt.renderWithTargetHint?yt=bt.renderWithTargetHint({model:et,data:tt,x1:nt.x,y1:nt.y,x2:Rt.x,y2:Rt.y,viewport:ut}):xt&&bt.renderWithSourceHint&&(yt=bt.renderWithSourceHint({model:et,data:tt,x1:Rt.x,y1:Rt.y,x2:ot.x,y2:ot.y,viewport:ut}))}const Et=getEdgeUid(it,et),St=`edge-container-${et.id}`,Tt=(_e=et.automationId)!==null&&_e!==void 0?_e:St;return jsxRuntimeExports.jsx("g",Object.assign({id:Et,onClick:ft(GraphEdgeEvent.Click),onDoubleClick:ft(GraphEdgeEvent.DoubleClick),onMouseDown:ft(GraphEdgeEvent.MouseDown),onMouseUp:ft(GraphEdgeEvent.MouseUp),onMouseEnter:ft(GraphEdgeEvent.MouseEnter),onMouseLeave:ft(GraphEdgeEvent.MouseLeave),onContextMenu:ft(GraphEdgeEvent.ContextMenu),onMouseMove:ft(GraphEdgeEvent.MouseMove),onMouseOver:ft(GraphEdgeEvent.MouseOver),onMouseOut:ft(GraphEdgeEvent.MouseOut),onFocus:void 0,onBlur:void 0,className:St,"data-automation-id":Tt},{children:yt}))});function compareEqual(j,_e){return j.node===_e.node}const EdgeChampNodeRender=reactExports.memo(j=>{var _e,et;const{node:tt,data:rt}=j,nt=__rest(j,["node","data"]),ot=useGraphConfig(),it=[],st=tt.valueCount;for(let ct=0;ct{const{data:_e,node:et}=j,tt=__rest(j,["data","node"]),rt=useGraphConfig();return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:et.values.map(nt=>{var ot,it;const st=(ot=_e.nodes.get(nt.source))===null||ot===void 0?void 0:ot.getPortPosition(nt.sourcePortId,rt),lt=(it=_e.nodes.get(nt.target))===null||it===void 0?void 0:it.getPortPosition(nt.targetPortId,rt);return st&<?reactExports.createElement(GraphEdge,Object.assign({},tt,{key:nt.id,data:_e,edge:nt,source:st,target:lt})):null})})},compareEqual);EdgeHashCollisionNodeRender.displayName="EdgeHashCollisionNodeRender";const EdgeTree=j=>{const{tree:_e}=j,et=__rest(j,["tree"]);return jsxRuntimeExports.jsx(EdgeChampNodeRender,Object.assign({},et,{node:_e.root}))},styles$1=mergeStyleSets({svg:[{position:"absolute",overflow:"hidden",top:0,left:0,width:"100%",height:"100%"},{"&:focus":{outline:"none"}}],node:{cursor:"move"},container:{position:"relative",width:"100%",height:"100%",overflow:"hidden",touchAction:"none"},buttonA11Y:{opacity:0,width:0,height:0,overflow:"hidden"},addingNodeSvg:{zIndex:1e6,position:"fixed",left:0,top:0,width:"100%",height:"100%"},moduleItem:{userSelect:"none",cursor:"pointer"},minimap:{height:320,width:320,userSelect:"none",touchAction:"none"},minimapSvg:{position:"absolute",top:0,left:0,width:"100%",height:"100%"}}),GraphNode=j=>{var _e;const{node:et,eventChannel:tt,getNodeAriaLabel:rt,viewport:nt,graphId:ot}=j,it=useGraphConfig(),st=getNodeConfig(et,it),lt=ft=>pt=>{pt.persist();const gt={type:ft,node:et,rawEvent:pt};tt.trigger(gt)},ut=ft=>{ft.persist();const pt=checkIsMultiSelect(ft);tt.trigger({type:GraphNodeEvent.Click,rawEvent:ft,isMultiSelect:pt,node:et})},ct=getNodeUid(ot,et),dt=(_e=et.automationId)!==null&&_e!==void 0?_e:getNodeAutomationId(et);return st!=null&&st.render?jsxRuntimeExports.jsx("g",Object.assign({id:ct,focusable:"true",tabIndex:0,className:styles$1.node,onPointerDown:lt(GraphNodeEvent.PointerDown),onPointerEnter:lt(GraphNodeEvent.PointerEnter),onPointerMove:lt(GraphNodeEvent.PointerMove),onPointerLeave:lt(GraphNodeEvent.PointerLeave),onPointerUp:lt(GraphNodeEvent.PointerUp),onDoubleClick:lt(GraphNodeEvent.DoubleClick),onMouseDown:lt(GraphNodeEvent.MouseDown),onMouseUp:lt(GraphNodeEvent.MouseUp),onMouseEnter:lt(GraphNodeEvent.MouseEnter),onMouseLeave:lt(GraphNodeEvent.MouseLeave),onContextMenu:lt(GraphNodeEvent.ContextMenu),onMouseMove:lt(GraphNodeEvent.MouseMove),onMouseOver:lt(GraphNodeEvent.MouseOver),onMouseOut:lt(GraphNodeEvent.MouseOut),onClick:ut,onKeyDown:lt(GraphNodeEvent.KeyDown),"aria-label":rt(et),role:"group","aria-roledescription":"node","data-automation-id":dt},{children:jsxRuntimeExports.jsx("g",Object.assign({className:"node-box-container"},{children:st.render({model:et,viewport:nt})}))})):(Debug.warn('Missing "render" method in node config'),null)},RESIZE_POINT_WIDTH=8,RESIZE_POINT_HEIGHT=8,NodeAnchor=({x:j,y:_e,cursor:et,onMouseDown:tt})=>jsxRuntimeExports.jsx(Slots.NodeResizeHandler,Object.assign({x:j,y:_e,cursor:et,onMouseDown:tt},{children:jsxRuntimeExports.jsx("rect",{x:j,y:_e,height:RESIZE_POINT_HEIGHT,width:RESIZE_POINT_WIDTH,stroke:defaultColors.controlPointColor,fill:"transparent",cursor:et,onMouseDown:tt})})),BBOX_PADDING=15,GraphNodeAnchors=j=>{var _e,et;const{node:tt,getMouseDown:rt}=j,nt=useGraphConfig(),ot=getNodeConfig(tt,nt),it=(_e=ot==null?void 0:ot.getMinWidth(tt))!==null&&_e!==void 0?_e:0,st=(et=ot==null?void 0:ot.getMinHeight(tt))!==null&&et!==void 0?et:0,lt=getRectHeight(ot,tt),ut=getRectWidth(ot,tt),ct=rt((xt,yt)=>{const Et=Math.min(xt,ut-it),St=Math.min(yt,lt-st);return{dx:+Et,dy:+St,dWidth:-Et,dHeight:-St}}),dt=rt((xt,yt)=>{const Et=Math.min(yt,lt-st);return{dy:+Et,dHeight:-Et}}),ft=rt((xt,yt)=>{const Et=Math.max(xt,it-ut),St=Math.min(yt,lt-st);return{dy:+St,dWidth:+Et,dHeight:-St}}),pt=rt(xt=>({dWidth:+Math.max(xt,it-ut)})),gt=rt((xt,yt)=>{const Et=Math.max(xt,it-ut),St=Math.max(yt,st-lt);return{dWidth:+Et,dHeight:+St}}),mt=rt((xt,yt)=>({dHeight:+Math.max(yt,st-lt)})),bt=rt((xt,yt)=>{const Et=Math.min(xt,ut-it),St=Math.max(yt,st-lt);return{dx:+Et,dWidth:-Et,dHeight:+St}}),_t=rt(xt=>{const yt=Math.min(xt,ut-it);return{dx:yt,dWidth:-yt}});return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(NodeAnchor,{cursor:"nw-resize",x:tt.x-BBOX_PADDING,y:tt.y-BBOX_PADDING-RESIZE_POINT_HEIGHT,onMouseDown:ct},"nw-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut/2-RESIZE_POINT_WIDTH/2,y:tt.y-BBOX_PADDING-RESIZE_POINT_HEIGHT,cursor:"n-resize",onMouseDown:dt},"n-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut+BBOX_PADDING-RESIZE_POINT_WIDTH,y:tt.y-BBOX_PADDING-RESIZE_POINT_HEIGHT,cursor:"ne-resize",onMouseDown:ft},"ne-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut+BBOX_PADDING-RESIZE_POINT_WIDTH,y:tt.y+lt/2-RESIZE_POINT_HEIGHT/2,cursor:"e-resize",onMouseDown:pt},"e-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut+BBOX_PADDING-RESIZE_POINT_WIDTH,y:tt.y+lt+BBOX_PADDING,cursor:"se-resize",onMouseDown:gt},"se-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x+ut/2-RESIZE_POINT_WIDTH/2,y:tt.y+lt+BBOX_PADDING,cursor:"s-resize",onMouseDown:mt},"s-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x-BBOX_PADDING,y:tt.y+lt+BBOX_PADDING,cursor:"sw-resize",onMouseDown:bt},"sw-resize"),jsxRuntimeExports.jsx(NodeAnchor,{x:tt.x-BBOX_PADDING,y:tt.y+lt/2-RESIZE_POINT_HEIGHT/2,cursor:"w-resize",onMouseDown:_t},"w-resize")]})},GraphOneNodePorts=j=>{const{data:_e,node:et,getPortAriaLabel:tt,eventChannel:rt,viewport:nt,graphId:ot}=j,it=useGraphConfig(),st=et.ports;if(!st)return null;const lt=(ut,ct)=>dt=>{dt.persist(),rt.trigger({type:ut,node:et,port:ct,rawEvent:dt})};return jsxRuntimeExports.jsx("g",{children:st.map(ut=>{var ct;const dt=it.getPortConfig(ut);if(!dt||!dt.render)return Debug.warn(`invalid port config ${et.id}:${et.name} - ${ut.id}:${ut.name}`),null;const ft=et.getPortPosition(ut.id,it);if(!ft)return null;const pt=getPortUid(ot,et,ut),gt=(ct=ut.automationId)!==null&&ct!==void 0?ct:getPortAutomationId(ut,et);return jsxRuntimeExports.jsx("g",Object.assign({id:pt,tabIndex:0,focusable:"true",onPointerDown:lt(GraphPortEvent.PointerDown,ut),onPointerUp:lt(GraphPortEvent.PointerUp,ut),onDoubleClick:lt(GraphPortEvent.DoubleClick,ut),onMouseDown:lt(GraphPortEvent.MouseDown,ut),onMouseUp:lt(GraphPortEvent.MouseUp,ut),onContextMenu:lt(GraphPortEvent.ContextMenu,ut),onPointerEnter:lt(GraphPortEvent.PointerEnter,ut),onPointerLeave:lt(GraphPortEvent.PointerLeave,ut),onMouseMove:lt(GraphPortEvent.MouseMove,ut),onMouseOver:lt(GraphPortEvent.MouseOver,ut),onMouseOut:lt(GraphPortEvent.MouseOut,ut),onFocus:lt(GraphPortEvent.Focus,ut),onBlur:lt(GraphPortEvent.Blur,ut),onKeyDown:lt(GraphPortEvent.KeyDown,ut),onClick:lt(GraphPortEvent.Click,ut),"aria-label":tt(_e,et,ut),role:"group","aria-roledescription":"port","data-automation-id":gt},{children:jsxRuntimeExports.jsx(ConnectingStateContext.Consumer,{children:({sourceNode:mt,sourcePort:bt})=>dt==null?void 0:dt.render(Object.assign({model:ut,data:_e,parentNode:et,anotherNode:mt,anotherPort:bt,viewport:nt},ft))})}),pt)})})},GraphNodeParts=j=>{var{node:_e,isNodeResizable:et,renderNodeAnchors:tt}=j,rt=__rest(j,["node","isNodeResizable","renderNodeAnchors"]);const nt=useVirtualization(),{renderedArea:ot,viewport:it}=nt,st=useGetMouseDownOnAnchor(_e,rt.eventChannel),lt=isPointInRect(ot,_e);if(reactExports.useLayoutEffect(()=>{lt&&nt.renderedEdges.add(_e.id)},[nt]),!lt)return null;let ut;if(et&&isNodeEditing(_e)){const ct=jsxRuntimeExports.jsx(GraphNodeAnchors,{node:_e,getMouseDown:st});ut=tt?tt(_e,st,ct):ct}return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(GraphNode,Object.assign({},rt,{node:_e,viewport:it})),jsxRuntimeExports.jsx(GraphOneNodePorts,Object.assign({},rt,{node:_e,viewport:it})),ut]})},GraphNodePartsMemo=reactExports.memo(GraphNodeParts),NodeTreeNode=reactExports.memo(j=>{var{node:_e}=j,et=__rest(j,["node"]);const tt=_e.values.map(nt=>{const ot=nt[1];return jsxRuntimeExports.jsx(GraphNodePartsMemo,Object.assign({node:ot},et),ot.id)}),rt=_e.type===NodeType.Internal?_e.children.map((nt,ot)=>{const it=ot<_e.selfSize?_e.getKey(ot):"last";return jsxRuntimeExports.jsx(NodeTreeNode,Object.assign({node:nt},et),it)}):void 0;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[tt,rt]})},(j,_e)=>j.node===_e.node);NodeTreeNode.displayName="NodeTreeNode";const NodeTree=j=>{var{tree:_e}=j,et=__rest(j,["tree"]);return jsxRuntimeExports.jsx(NodeTreeNode,Object.assign({node:_e.sortedRoot},et))},NodeLayers=({data:j,renderTree:_e})=>{const et=new Set;return j.nodes.forEach(tt=>et.add(tt.layer)),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:Array.from(et.values()).sort().map(tt=>_e(j.nodes.filter(rt=>rt.layer===tt),tt))})},VirtualizationProvider=({viewport:j,isVirtualizationEnabled:_e,virtualizationDelay:et,eventChannel:tt,children:rt})=>{const nt=useRenderedArea(j,_e),ot=reactExports.useMemo(()=>getVisibleArea(j),[j]),it=reactExports.useMemo(()=>({viewport:j,renderedArea:nt,visibleArea:ot,renderedEdges:new Set,renderedNodes:new Set,timestamp:performance.now()}),[j,nt,ot]),st=useDeferredValue(it,{timeout:et}),lt=reactExports.useRef(st);return reactExports.useEffect(()=>{const ut=lt.current;lt.current=st,tt.trigger({type:GraphCanvasEvent.VirtualizationRecalculated,performanceStartTime:st.timestamp,renderedNodes:ut.renderedNodes,renderedEdges:ut.renderedEdges,previousRenderedNodes:ut.renderedNodes,previousRenderedEdges:ut.renderedEdges})},[st,tt]),jsxRuntimeExports.jsx(VirtualizationContext.Provider,Object.assign({value:st},{children:rt}))},getCursorStyle=({canvasMouseMode:j,state:_e,isPanDisabled:et,isMultiSelecting:tt})=>_e.behavior===GraphBehavior.Connecting||["meta","control"].some(ot=>_e.activeKeys.has(ot))?"initial":_e.activeKeys.has("shift")?"crosshair":j!==CanvasMouseMode.Pan?_e.activeKeys.has(" ")&&!et?"grab":tt?"crosshair":"inherit":et?"inherit":"grab";function getNodeCursor(j){return j?"move":"initial"}const getGraphStyles=(j,_e,et,tt,rt,nt)=>{var ot,it;return mergeStyleSets({svg:["react-dag-editor-svg-container",styles$1.svg,(ot=j.styles)===null||ot===void 0?void 0:ot.svg,{"& *:focus":{outline:defaultColors.outlineStyle},[`& .${styles$1.node}`]:{cursor:getNodeCursor(tt)}}],container:["react-dag-editor-container",styles$1.container,{cursor:getCursorStyle({canvasMouseMode:j.canvasMouseMode,state:_e,isPanDisabled:et,isMultiSelecting:nt}),[`&.${styles$1.container}`]:Object.assign(Object.assign({background:defaultColors.canvasBackground},j.style),(it=j.styles)===null||it===void 0?void 0:it.root)},rt&&{outline:`${defaultColors.focusOutlineColor} solid 1px`}],buttonA11y:["react-dag-editor-a11y-help-button",styles$1.buttonA11Y],node:[styles$1.node]})};function Graph(j){var _e,et,tt,rt,nt;const[ot,it]=reactExports.useState(!1),st=useGraphController(),{state:lt,dispatch:ut}=useGraphState(),ct=lt.data.present,{viewport:dt}=lt,{eventChannel:ft}=st,pt=useConst(()=>`graph-${v4()}`),gt=reactExports.useRef(null),{focusCanvasAccessKey:mt="f",zoomSensitivity:bt=.1,scrollSensitivity:_t=.5,svgRef:xt=gt,virtualizationDelay:yt=500,background:Et=null}=j,St=useGraphConfig(),Tt=useFeatureControl(lt.settings.features),[kt,$t]=reactExports.useState(),[Ct,It]=reactExports.useState(void 0),Nt=reactExports.useRef(null),Ot=reactExports.useRef(void 0),jt=useUpdateViewportCallback(Ot,xt,ft);useEventChannel({props:j,dispatch:ut,rectRef:Ot,svgRef:xt,setFocusedWithoutMouse:it,containerRef:Nt,featureControl:Tt,graphConfig:St,setCurHoverNode:$t,setCurHoverPort:It,updateViewport:jt,eventChannel:ft,graphController:st}),useContainerRect(lt,xt,Nt,jt);const{isNodesDraggable:Mt,isNodeResizable:Rt,isPanDisabled:Lt,isMultiSelectDisabled:Pt,isLassoSelectEnable:Gt,isNodeEditDisabled:qt,isVerticalScrollDisabled:Yt,isHorizontalScrollDisabled:Xt,isA11yEnable:tr,isCtrlKeyZoomEnable:cr,isVirtualizationEnabled:mr,isScrollbarVisible:Er}=Tt;useSelectBox(ut,lt.selectBoxPosition);const hr=Cr=>Nr=>{Nr.persist(),ft.trigger({type:Cr,rawEvent:Nr})},_r=getGraphStyles(j,lt,Lt,Mt,ot,lt.behavior===GraphBehavior.MultiSelect);useWheelHandler({containerRef:Nt,svgRef:xt,rectRef:Ot,zoomSensitivity:bt,scrollSensitivity:_t,dispatch:ut,isHorizontalScrollDisabled:Xt,isVerticalScrollDisabled:Yt,isCtrlKeyZoomEnable:cr,eventChannel:ft,graphConfig:St});const Ut=reactExports.useCallback(Cr=>{Cr.preventDefault(),Cr.stopPropagation(),ft.trigger({type:GraphContextMenuEvent.Close}),xt.current&&xt.current.focus({preventScroll:!0})},[ft,xt]),ar=reactExports.useCallback(()=>{it(!0),xt.current&&xt.current.focus({preventScroll:!0})},[xt]);useSafariScale({rectRef:Ot,svgRef:xt,eventChannel:ft});const pr=tr?mt:void 0,rr=useGraphTouchHandler(Ot,ft),vr=reactExports.useCallback((Cr,Nr)=>{var Gr,qr;return jsxRuntimeExports.jsx(NodeTree,{graphId:pt,isNodeResizable:Rt,tree:Cr,data:ct,isNodeEditDisabled:qt,eventChannel:ft,getNodeAriaLabel:(Gr=j.getNodeAriaLabel)!==null&&Gr!==void 0?Gr:defaultGetNodeAriaLabel,getPortAriaLabel:(qr=j.getPortAriaLabel)!==null&&qr!==void 0?qr:defaultGetPortAriaLabel,renderNodeAnchors:j.renderNodeAnchors},Nr)},[ct,ft,pt,qt,Rt,j.getNodeAriaLabel,j.getPortAriaLabel,j.renderNodeAnchors]);if(!isSupported()){const{onBrowserNotSupported:Cr=()=>jsxRuntimeExports.jsx("p",{children:"Your browser is not supported"})}=j;return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:Cr()})}const $r=()=>{if(!Ct||!isViewportComplete(lt.viewport))return null;const[Cr,Nr]=Ct,Gr=ct.nodes.get(Cr);if(!Gr)return null;const qr=Gr.getPort(Nr);return qr?jsxRuntimeExports.jsx(PortTooltips,{port:qr,parentNode:Gr,data:ct,viewport:lt.viewport}):null},Rr=()=>{var Cr;return!kt||!isViewportComplete(lt.viewport)||lt.contextMenuPosition&&kt===((Cr=lt.data.present.nodes.find(isSelected))===null||Cr===void 0?void 0:Cr.id)?null:jsxRuntimeExports.jsx(NodeTooltips,{node:ct.nodes.get(kt),viewport:lt.viewport})};return jsxRuntimeExports.jsxs("div",Object.assign({ref:Nt,role:"application",id:pt,className:_r.container},rr,{onDoubleClick:hr(GraphCanvasEvent.DoubleClick),onMouseDown:hr(GraphCanvasEvent.MouseDown),onMouseUp:hr(GraphCanvasEvent.MouseUp),onContextMenu:hr(GraphCanvasEvent.ContextMenu),onMouseMove:hr(GraphCanvasEvent.MouseMove),onMouseOver:hr(GraphCanvasEvent.MouseOver),onMouseOut:hr(GraphCanvasEvent.MouseOut),onFocus:hr(GraphCanvasEvent.Focus),onBlur:hr(GraphCanvasEvent.Blur),onKeyDown:hr(GraphCanvasEvent.KeyDown),onKeyUp:hr(GraphCanvasEvent.KeyUp)},{children:[jsxRuntimeExports.jsx("button",{className:_r.buttonA11y,onClick:ar,accessKey:pr,hidden:!0}),jsxRuntimeExports.jsxs("svg",Object.assign({tabIndex:0,focusable:"true",preserveAspectRatio:"xMidYMid meet",ref:xt,className:_r.svg,"data-graph-id":pt},{children:[jsxRuntimeExports.jsx("title",{children:j.title}),jsxRuntimeExports.jsx("desc",{children:j.desc}),jsxRuntimeExports.jsxs(Transform,Object.assign({matrix:dt.transformMatrix},{children:[lt.viewport.rect&&jsxRuntimeExports.jsxs(VirtualizationProvider,Object.assign({viewport:lt.viewport,isVirtualizationEnabled:mr,virtualizationDelay:yt,eventChannel:ft},{children:[Et,jsxRuntimeExports.jsx(GraphGroupsRenderer,{data:ct,groups:(_e=ct.groups)!==null&&_e!==void 0?_e:constantEmptyArray()}),jsxRuntimeExports.jsx(EdgeTree,{graphId:pt,tree:ct.edges,data:ct,eventChannel:ft}),jsxRuntimeExports.jsx(NodeLayers,{data:ct,renderTree:vr})]})),lt.dummyNodes.isVisible&&jsxRuntimeExports.jsx(AnimatingNodeGroup,{dummyNodes:lt.dummyNodes,graphData:lt.data.present}),jsxRuntimeExports.jsx(AlignmentLines,{style:(et=j.styles)===null||et===void 0?void 0:et.alignmentLine})]})),(!Pt||Gt)&&jsxRuntimeExports.jsx(SelectBox,{selectBoxPosition:lt.selectBoxPosition,style:(tt=j.styles)===null||tt===void 0?void 0:tt.selectBox}),lt.connectState&&jsxRuntimeExports.jsx(Connecting,{graphConfig:St,eventChannel:ft,viewport:lt.viewport,styles:(rt=j.styles)===null||rt===void 0?void 0:rt.connectingLine,movingPoint:lt.connectState.movingPoint})]})),Er&&isViewportComplete(lt.viewport)&&jsxRuntimeExports.jsx(Scrollbar,{viewport:lt.viewport,offsetLimit:getOffsetLimit({data:ct,graphConfig:St,rect:lt.viewport.rect,transformMatrix:dt.transformMatrix,canvasBoundaryPadding:lt.settings.canvasBoundaryPadding,groupPadding:(nt=ct.groups[0])===null||nt===void 0?void 0:nt.padding}),dispatch:ut,horizontal:!Xt,vertical:!Yt,eventChannel:ft}),jsxRuntimeExports.jsx(GraphContextMenu,{state:lt,onClick:Ut,"data-automation-id":"context-menu-container"}),Rr(),$r()]}))}const el=document.createElement("div");document.body.appendChild(el);const StaticNode=j=>{const{node:_e}=j,et=useGraphConfig(),tt=getNodeConfig(_e,et);if(tt!=null&&tt.renderStatic)return jsxRuntimeExports.jsx("g",{children:tt.renderStatic({model:_e})});const rt=getRectHeight(tt,_e),nt=getRectWidth(tt,_e);return jsxRuntimeExports.jsx("rect",{transform:`translate(${_e.x}, ${_e.y})`,height:rt,width:nt,fill:defaultColors.dummyNodeStroke})},StaticNodeWithMemo=reactExports.memo(StaticNode,(j,_e)=>{const et=j.node,tt=_e.node;return et.x===tt.x&&et.y===tt.y&&et.height===tt.height&&et.width===tt.width&&et.isInSearchResults===tt.isInSearchResults&&et.isCurrentSearchResult===tt.isCurrentSearchResult}),ReadonlyNodeTreeNode=reactExports.memo(({node:j})=>{const _e=j.values.map(tt=>jsxRuntimeExports.jsx(StaticNodeWithMemo,{node:tt[1]},tt[1].id)),et=j.type===NodeType.Internal?j.children.map((tt,rt)=>{const nt=rt>>0;if(""+et!==_e||et===4294967295)return NaN;_e=et}return _e<0?ensureSize(j)+_e:_e}function returnTrue(){return!0}function wholeSlice(j,_e,et){return(j===0&&!isNeg(j)||et!==void 0&&j<=-et)&&(_e===void 0||et!==void 0&&_e>=et)}function resolveBegin(j,_e){return resolveIndex(j,_e,0)}function resolveEnd(j,_e){return resolveIndex(j,_e,_e)}function resolveIndex(j,_e,et){return j===void 0?et:isNeg(j)?_e===1/0?_e:Math.max(0,_e+j)|0:_e===void 0||_e===j?j:Math.min(_e,j)|0}function isNeg(j){return j<0||j===0&&1/j===-1/0}var IS_COLLECTION_SYMBOL="@@__IMMUTABLE_ITERABLE__@@";function isCollection(j){return!!(j&&j[IS_COLLECTION_SYMBOL])}var IS_KEYED_SYMBOL="@@__IMMUTABLE_KEYED__@@";function isKeyed(j){return!!(j&&j[IS_KEYED_SYMBOL])}var IS_INDEXED_SYMBOL="@@__IMMUTABLE_INDEXED__@@";function isIndexed(j){return!!(j&&j[IS_INDEXED_SYMBOL])}function isAssociative(j){return isKeyed(j)||isIndexed(j)}var Collection$1=function(_e){return isCollection(_e)?_e:Seq(_e)},KeyedCollection=function(j){function _e(et){return isKeyed(et)?et:KeyedSeq(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e}(Collection$1),IndexedCollection=function(j){function _e(et){return isIndexed(et)?et:IndexedSeq(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e}(Collection$1),SetCollection=function(j){function _e(et){return isCollection(et)&&!isAssociative(et)?et:SetSeq(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e}(Collection$1);Collection$1.Keyed=KeyedCollection;Collection$1.Indexed=IndexedCollection;Collection$1.Set=SetCollection;var IS_SEQ_SYMBOL="@@__IMMUTABLE_SEQ__@@";function isSeq(j){return!!(j&&j[IS_SEQ_SYMBOL])}var IS_RECORD_SYMBOL="@@__IMMUTABLE_RECORD__@@";function isRecord(j){return!!(j&&j[IS_RECORD_SYMBOL])}function isImmutable(j){return isCollection(j)||isRecord(j)}var IS_ORDERED_SYMBOL="@@__IMMUTABLE_ORDERED__@@";function isOrdered(j){return!!(j&&j[IS_ORDERED_SYMBOL])}var ITERATE_KEYS=0,ITERATE_VALUES=1,ITERATE_ENTRIES=2,REAL_ITERATOR_SYMBOL=typeof Symbol=="function"&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator",ITERATOR_SYMBOL=REAL_ITERATOR_SYMBOL||FAUX_ITERATOR_SYMBOL,Iterator=function(_e){this.next=_e};Iterator.prototype.toString=function(){return"[Iterator]"};Iterator.KEYS=ITERATE_KEYS;Iterator.VALUES=ITERATE_VALUES;Iterator.ENTRIES=ITERATE_ENTRIES;Iterator.prototype.inspect=Iterator.prototype.toSource=function(){return this.toString()};Iterator.prototype[ITERATOR_SYMBOL]=function(){return this};function iteratorValue(j,_e,et,tt){var rt=j===0?_e:j===1?et:[_e,et];return tt?tt.value=rt:tt={value:rt,done:!1},tt}function iteratorDone(){return{value:void 0,done:!0}}function hasIterator(j){return Array.isArray(j)?!0:!!getIteratorFn(j)}function isIterator(j){return j&&typeof j.next=="function"}function getIterator(j){var _e=getIteratorFn(j);return _e&&_e.call(j)}function getIteratorFn(j){var _e=j&&(REAL_ITERATOR_SYMBOL&&j[REAL_ITERATOR_SYMBOL]||j[FAUX_ITERATOR_SYMBOL]);if(typeof _e=="function")return _e}function isEntriesIterable(j){var _e=getIteratorFn(j);return _e&&_e===j.entries}function isKeysIterable(j){var _e=getIteratorFn(j);return _e&&_e===j.keys}var hasOwnProperty$2=Object.prototype.hasOwnProperty;function isArrayLike$1(j){return Array.isArray(j)||typeof j=="string"?!0:j&&typeof j=="object"&&Number.isInteger(j.length)&&j.length>=0&&(j.length===0?Object.keys(j).length===1:j.hasOwnProperty(j.length-1))}var Seq=function(j){function _e(et){return et==null?emptySequence():isImmutable(et)?et.toSeq():seqFromValue(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.toSeq=function(){return this},_e.prototype.toString=function(){return this.__toString("Seq {","}")},_e.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},_e.prototype.__iterate=function(tt,rt){var nt=this._cache;if(nt){for(var ot=nt.length,it=0;it!==ot;){var st=nt[rt?ot-++it:it++];if(tt(st[1],st[0],this)===!1)break}return it}return this.__iterateUncached(tt,rt)},_e.prototype.__iterator=function(tt,rt){var nt=this._cache;if(nt){var ot=nt.length,it=0;return new Iterator(function(){if(it===ot)return iteratorDone();var st=nt[rt?ot-++it:it++];return iteratorValue(tt,st[0],st[1])})}return this.__iteratorUncached(tt,rt)},_e}(Collection$1),KeyedSeq=function(j){function _e(et){return et==null?emptySequence().toKeyedSeq():isCollection(et)?isKeyed(et)?et.toSeq():et.fromEntrySeq():isRecord(et)?et.toSeq():keyedSeqFromValue(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.toKeyedSeq=function(){return this},_e}(Seq),IndexedSeq=function(j){function _e(et){return et==null?emptySequence():isCollection(et)?isKeyed(et)?et.entrySeq():et.toIndexedSeq():isRecord(et)?et.toSeq().entrySeq():indexedSeqFromValue(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return _e(arguments)},_e.prototype.toIndexedSeq=function(){return this},_e.prototype.toString=function(){return this.__toString("Seq [","]")},_e}(Seq),SetSeq=function(j){function _e(et){return(isCollection(et)&&!isAssociative(et)?et:IndexedSeq(et)).toSetSeq()}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return _e(arguments)},_e.prototype.toSetSeq=function(){return this},_e}(Seq);Seq.isSeq=isSeq;Seq.Keyed=KeyedSeq;Seq.Set=SetSeq;Seq.Indexed=IndexedSeq;Seq.prototype[IS_SEQ_SYMBOL]=!0;var ArraySeq=function(j){function _e(et){this._array=et,this.size=et.length}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.get=function(tt,rt){return this.has(tt)?this._array[wrapIndex(this,tt)]:rt},_e.prototype.__iterate=function(tt,rt){for(var nt=this._array,ot=nt.length,it=0;it!==ot;){var st=rt?ot-++it:it++;if(tt(nt[st],st,this)===!1)break}return it},_e.prototype.__iterator=function(tt,rt){var nt=this._array,ot=nt.length,it=0;return new Iterator(function(){if(it===ot)return iteratorDone();var st=rt?ot-++it:it++;return iteratorValue(tt,st,nt[st])})},_e}(IndexedSeq),ObjectSeq=function(j){function _e(et){var tt=Object.keys(et).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(et):[]);this._object=et,this._keys=tt,this.size=tt.length}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.get=function(tt,rt){return rt!==void 0&&!this.has(tt)?rt:this._object[tt]},_e.prototype.has=function(tt){return hasOwnProperty$2.call(this._object,tt)},_e.prototype.__iterate=function(tt,rt){for(var nt=this._object,ot=this._keys,it=ot.length,st=0;st!==it;){var lt=ot[rt?it-++st:st++];if(tt(nt[lt],lt,this)===!1)break}return st},_e.prototype.__iterator=function(tt,rt){var nt=this._object,ot=this._keys,it=ot.length,st=0;return new Iterator(function(){if(st===it)return iteratorDone();var lt=ot[rt?it-++st:st++];return iteratorValue(tt,lt,nt[lt])})},_e}(KeyedSeq);ObjectSeq.prototype[IS_ORDERED_SYMBOL]=!0;var CollectionSeq=function(j){function _e(et){this._collection=et,this.size=et.length||et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.__iterateUncached=function(tt,rt){if(rt)return this.cacheResult().__iterate(tt,rt);var nt=this._collection,ot=getIterator(nt),it=0;if(isIterator(ot))for(var st;!(st=ot.next()).done&&tt(st.value,it++,this)!==!1;);return it},_e.prototype.__iteratorUncached=function(tt,rt){if(rt)return this.cacheResult().__iterator(tt,rt);var nt=this._collection,ot=getIterator(nt);if(!isIterator(ot))return new Iterator(iteratorDone);var it=0;return new Iterator(function(){var st=ot.next();return st.done?st:iteratorValue(tt,it++,st.value)})},_e}(IndexedSeq),EMPTY_SEQ;function emptySequence(){return EMPTY_SEQ||(EMPTY_SEQ=new ArraySeq([]))}function keyedSeqFromValue(j){var _e=maybeIndexedSeqFromValue(j);if(_e)return _e.fromEntrySeq();if(typeof j=="object")return new ObjectSeq(j);throw new TypeError("Expected Array or collection object of [k, v] entries, or keyed object: "+j)}function indexedSeqFromValue(j){var _e=maybeIndexedSeqFromValue(j);if(_e)return _e;throw new TypeError("Expected Array or collection object of values: "+j)}function seqFromValue(j){var _e=maybeIndexedSeqFromValue(j);if(_e)return isEntriesIterable(j)?_e.fromEntrySeq():isKeysIterable(j)?_e.toSetSeq():_e;if(typeof j=="object")return new ObjectSeq(j);throw new TypeError("Expected Array or collection object of values, or keyed object: "+j)}function maybeIndexedSeqFromValue(j){return isArrayLike$1(j)?new ArraySeq(j):hasIterator(j)?new CollectionSeq(j):void 0}var IS_MAP_SYMBOL="@@__IMMUTABLE_MAP__@@";function isMap(j){return!!(j&&j[IS_MAP_SYMBOL])}function isOrderedMap(j){return isMap(j)&&isOrdered(j)}function isValueObject(j){return!!(j&&typeof j.equals=="function"&&typeof j.hashCode=="function")}function is(j,_e){if(j===_e||j!==j&&_e!==_e)return!0;if(!j||!_e)return!1;if(typeof j.valueOf=="function"&&typeof _e.valueOf=="function"){if(j=j.valueOf(),_e=_e.valueOf(),j===_e||j!==j&&_e!==_e)return!0;if(!j||!_e)return!1}return!!(isValueObject(j)&&isValueObject(_e)&&j.equals(_e))}var imul=typeof Math.imul=="function"&&Math.imul(4294967295,2)===-2?Math.imul:function(_e,et){_e|=0,et|=0;var tt=_e&65535,rt=et&65535;return tt*rt+((_e>>>16)*rt+tt*(et>>>16)<<16>>>0)|0};function smi(j){return j>>>1&1073741824|j&3221225471}var defaultValueOf=Object.prototype.valueOf;function hash$1(j){if(j==null)return hashNullish(j);if(typeof j.hashCode=="function")return smi(j.hashCode(j));var _e=valueOf(j);if(_e==null)return hashNullish(_e);switch(typeof _e){case"boolean":return _e?1108378657:1108378656;case"number":return hashNumber(_e);case"string":return _e.length>STRING_HASH_CACHE_MIN_STRLEN?cachedHashString(_e):hashString(_e);case"object":case"function":return hashJSObj(_e);case"symbol":return hashSymbol(_e);default:if(typeof _e.toString=="function")return hashString(_e.toString());throw new Error("Value type "+typeof _e+" cannot be hashed.")}}function hashNullish(j){return j===null?1108378658:1108378659}function hashNumber(j){if(j!==j||j===1/0)return 0;var _e=j|0;for(_e!==j&&(_e^=j*4294967295);j>4294967295;)j/=4294967295,_e^=j;return smi(_e)}function cachedHashString(j){var _e=stringHashCache[j];return _e===void 0&&(_e=hashString(j),STRING_HASH_CACHE_SIZE===STRING_HASH_CACHE_MAX_SIZE&&(STRING_HASH_CACHE_SIZE=0,stringHashCache={}),STRING_HASH_CACHE_SIZE++,stringHashCache[j]=_e),_e}function hashString(j){for(var _e=0,et=0;et0)switch(j.nodeType){case 1:return j.uniqueID;case 9:return j.documentElement&&j.documentElement.uniqueID}}function valueOf(j){return j.valueOf!==defaultValueOf&&typeof j.valueOf=="function"?j.valueOf(j):j}function nextHash(){var j=++_objHashUID;return _objHashUID&1073741824&&(_objHashUID=0),j}var usingWeakMap=typeof WeakMap=="function",weakMap;usingWeakMap&&(weakMap=new WeakMap);var symbolMap=Object.create(null),_objHashUID=0,UID_HASH_KEY="__immutablehash__";typeof Symbol=="function"&&(UID_HASH_KEY=Symbol(UID_HASH_KEY));var STRING_HASH_CACHE_MIN_STRLEN=16,STRING_HASH_CACHE_MAX_SIZE=255,STRING_HASH_CACHE_SIZE=0,stringHashCache={},ToKeyedSequence=function(j){function _e(et,tt){this._iter=et,this._useKeys=tt,this.size=et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.get=function(tt,rt){return this._iter.get(tt,rt)},_e.prototype.has=function(tt){return this._iter.has(tt)},_e.prototype.valueSeq=function(){return this._iter.valueSeq()},_e.prototype.reverse=function(){var tt=this,rt=reverseFactory(this,!0);return this._useKeys||(rt.valueSeq=function(){return tt._iter.toSeq().reverse()}),rt},_e.prototype.map=function(tt,rt){var nt=this,ot=mapFactory(this,tt,rt);return this._useKeys||(ot.valueSeq=function(){return nt._iter.toSeq().map(tt,rt)}),ot},_e.prototype.__iterate=function(tt,rt){var nt=this;return this._iter.__iterate(function(ot,it){return tt(ot,it,nt)},rt)},_e.prototype.__iterator=function(tt,rt){return this._iter.__iterator(tt,rt)},_e}(KeyedSeq);ToKeyedSequence.prototype[IS_ORDERED_SYMBOL]=!0;var ToIndexedSequence=function(j){function _e(et){this._iter=et,this.size=et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.includes=function(tt){return this._iter.includes(tt)},_e.prototype.__iterate=function(tt,rt){var nt=this,ot=0;return rt&&ensureSize(this),this._iter.__iterate(function(it){return tt(it,rt?nt.size-++ot:ot++,nt)},rt)},_e.prototype.__iterator=function(tt,rt){var nt=this,ot=this._iter.__iterator(ITERATE_VALUES,rt),it=0;return rt&&ensureSize(this),new Iterator(function(){var st=ot.next();return st.done?st:iteratorValue(tt,rt?nt.size-++it:it++,st.value,st)})},_e}(IndexedSeq),ToSetSequence=function(j){function _e(et){this._iter=et,this.size=et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.has=function(tt){return this._iter.includes(tt)},_e.prototype.__iterate=function(tt,rt){var nt=this;return this._iter.__iterate(function(ot){return tt(ot,ot,nt)},rt)},_e.prototype.__iterator=function(tt,rt){var nt=this._iter.__iterator(ITERATE_VALUES,rt);return new Iterator(function(){var ot=nt.next();return ot.done?ot:iteratorValue(tt,ot.value,ot.value,ot)})},_e}(SetSeq),FromEntriesSequence=function(j){function _e(et){this._iter=et,this.size=et.size}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.prototype.entrySeq=function(){return this._iter.toSeq()},_e.prototype.__iterate=function(tt,rt){var nt=this;return this._iter.__iterate(function(ot){if(ot){validateEntry(ot);var it=isCollection(ot);return tt(it?ot.get(1):ot[1],it?ot.get(0):ot[0],nt)}},rt)},_e.prototype.__iterator=function(tt,rt){var nt=this._iter.__iterator(ITERATE_VALUES,rt);return new Iterator(function(){for(;;){var ot=nt.next();if(ot.done)return ot;var it=ot.value;if(it){validateEntry(it);var st=isCollection(it);return iteratorValue(tt,st?it.get(0):it[0],st?it.get(1):it[1],ot)}}})},_e}(KeyedSeq);ToIndexedSequence.prototype.cacheResult=ToKeyedSequence.prototype.cacheResult=ToSetSequence.prototype.cacheResult=FromEntriesSequence.prototype.cacheResult=cacheResultThrough;function flipFactory(j){var _e=makeSequence(j);return _e._iter=j,_e.size=j.size,_e.flip=function(){return j},_e.reverse=function(){var et=j.reverse.apply(this);return et.flip=function(){return j.reverse()},et},_e.has=function(et){return j.includes(et)},_e.includes=function(et){return j.has(et)},_e.cacheResult=cacheResultThrough,_e.__iterateUncached=function(et,tt){var rt=this;return j.__iterate(function(nt,ot){return et(ot,nt,rt)!==!1},tt)},_e.__iteratorUncached=function(et,tt){if(et===ITERATE_ENTRIES){var rt=j.__iterator(et,tt);return new Iterator(function(){var nt=rt.next();if(!nt.done){var ot=nt.value[0];nt.value[0]=nt.value[1],nt.value[1]=ot}return nt})}return j.__iterator(et===ITERATE_VALUES?ITERATE_KEYS:ITERATE_VALUES,tt)},_e}function mapFactory(j,_e,et){var tt=makeSequence(j);return tt.size=j.size,tt.has=function(rt){return j.has(rt)},tt.get=function(rt,nt){var ot=j.get(rt,NOT_SET);return ot===NOT_SET?nt:_e.call(et,ot,rt,j)},tt.__iterateUncached=function(rt,nt){var ot=this;return j.__iterate(function(it,st,lt){return rt(_e.call(et,it,st,lt),st,ot)!==!1},nt)},tt.__iteratorUncached=function(rt,nt){var ot=j.__iterator(ITERATE_ENTRIES,nt);return new Iterator(function(){var it=ot.next();if(it.done)return it;var st=it.value,lt=st[0];return iteratorValue(rt,lt,_e.call(et,st[1],lt,j),it)})},tt}function reverseFactory(j,_e){var et=this,tt=makeSequence(j);return tt._iter=j,tt.size=j.size,tt.reverse=function(){return j},j.flip&&(tt.flip=function(){var rt=flipFactory(j);return rt.reverse=function(){return j.flip()},rt}),tt.get=function(rt,nt){return j.get(_e?rt:-1-rt,nt)},tt.has=function(rt){return j.has(_e?rt:-1-rt)},tt.includes=function(rt){return j.includes(rt)},tt.cacheResult=cacheResultThrough,tt.__iterate=function(rt,nt){var ot=this,it=0;return nt&&ensureSize(j),j.__iterate(function(st,lt){return rt(st,_e?lt:nt?ot.size-++it:it++,ot)},!nt)},tt.__iterator=function(rt,nt){var ot=0;nt&&ensureSize(j);var it=j.__iterator(ITERATE_ENTRIES,!nt);return new Iterator(function(){var st=it.next();if(st.done)return st;var lt=st.value;return iteratorValue(rt,_e?lt[0]:nt?et.size-++ot:ot++,lt[1],st)})},tt}function filterFactory(j,_e,et,tt){var rt=makeSequence(j);return tt&&(rt.has=function(nt){var ot=j.get(nt,NOT_SET);return ot!==NOT_SET&&!!_e.call(et,ot,nt,j)},rt.get=function(nt,ot){var it=j.get(nt,NOT_SET);return it!==NOT_SET&&_e.call(et,it,nt,j)?it:ot}),rt.__iterateUncached=function(nt,ot){var it=this,st=0;return j.__iterate(function(lt,ut,ct){if(_e.call(et,lt,ut,ct))return st++,nt(lt,tt?ut:st-1,it)},ot),st},rt.__iteratorUncached=function(nt,ot){var it=j.__iterator(ITERATE_ENTRIES,ot),st=0;return new Iterator(function(){for(;;){var lt=it.next();if(lt.done)return lt;var ut=lt.value,ct=ut[0],dt=ut[1];if(_e.call(et,dt,ct,j))return iteratorValue(nt,tt?ct:st++,dt,lt)}})},rt}function countByFactory(j,_e,et){var tt=Map$1().asMutable();return j.__iterate(function(rt,nt){tt.update(_e.call(et,rt,nt,j),0,function(ot){return ot+1})}),tt.asImmutable()}function groupByFactory(j,_e,et){var tt=isKeyed(j),rt=(isOrdered(j)?OrderedMap():Map$1()).asMutable();j.__iterate(function(ot,it){rt.update(_e.call(et,ot,it,j),function(st){return st=st||[],st.push(tt?[it,ot]:ot),st})});var nt=collectionClass(j);return rt.map(function(ot){return reify(j,nt(ot))}).asImmutable()}function partitionFactory(j,_e,et){var tt=isKeyed(j),rt=[[],[]];j.__iterate(function(ot,it){rt[_e.call(et,ot,it,j)?1:0].push(tt?[it,ot]:ot)});var nt=collectionClass(j);return rt.map(function(ot){return reify(j,nt(ot))})}function sliceFactory(j,_e,et,tt){var rt=j.size;if(wholeSlice(_e,et,rt))return j;var nt=resolveBegin(_e,rt),ot=resolveEnd(et,rt);if(nt!==nt||ot!==ot)return sliceFactory(j.toSeq().cacheResult(),_e,et,tt);var it=ot-nt,st;it===it&&(st=it<0?0:it);var lt=makeSequence(j);return lt.size=st===0?st:j.size&&st||void 0,!tt&&isSeq(j)&&st>=0&&(lt.get=function(ut,ct){return ut=wrapIndex(this,ut),ut>=0&&utst)return iteratorDone();var gt=dt.next();return tt||ut===ITERATE_VALUES||gt.done?gt:ut===ITERATE_KEYS?iteratorValue(ut,pt-1,void 0,gt):iteratorValue(ut,pt-1,gt.value[1],gt)})},lt}function takeWhileFactory(j,_e,et){var tt=makeSequence(j);return tt.__iterateUncached=function(rt,nt){var ot=this;if(nt)return this.cacheResult().__iterate(rt,nt);var it=0;return j.__iterate(function(st,lt,ut){return _e.call(et,st,lt,ut)&&++it&&rt(st,lt,ot)}),it},tt.__iteratorUncached=function(rt,nt){var ot=this;if(nt)return this.cacheResult().__iterator(rt,nt);var it=j.__iterator(ITERATE_ENTRIES,nt),st=!0;return new Iterator(function(){if(!st)return iteratorDone();var lt=it.next();if(lt.done)return lt;var ut=lt.value,ct=ut[0],dt=ut[1];return _e.call(et,dt,ct,ot)?rt===ITERATE_ENTRIES?lt:iteratorValue(rt,ct,dt,lt):(st=!1,iteratorDone())})},tt}function skipWhileFactory(j,_e,et,tt){var rt=makeSequence(j);return rt.__iterateUncached=function(nt,ot){var it=this;if(ot)return this.cacheResult().__iterate(nt,ot);var st=!0,lt=0;return j.__iterate(function(ut,ct,dt){if(!(st&&(st=_e.call(et,ut,ct,dt))))return lt++,nt(ut,tt?ct:lt-1,it)}),lt},rt.__iteratorUncached=function(nt,ot){var it=this;if(ot)return this.cacheResult().__iterator(nt,ot);var st=j.__iterator(ITERATE_ENTRIES,ot),lt=!0,ut=0;return new Iterator(function(){var ct,dt,ft;do{if(ct=st.next(),ct.done)return tt||nt===ITERATE_VALUES?ct:nt===ITERATE_KEYS?iteratorValue(nt,ut++,void 0,ct):iteratorValue(nt,ut++,ct.value[1],ct);var pt=ct.value;dt=pt[0],ft=pt[1],lt&&(lt=_e.call(et,ft,dt,it))}while(lt);return nt===ITERATE_ENTRIES?ct:iteratorValue(nt,dt,ft,ct)})},rt}function concatFactory(j,_e){var et=isKeyed(j),tt=[j].concat(_e).map(function(ot){return isCollection(ot)?et&&(ot=KeyedCollection(ot)):ot=et?keyedSeqFromValue(ot):indexedSeqFromValue(Array.isArray(ot)?ot:[ot]),ot}).filter(function(ot){return ot.size!==0});if(tt.length===0)return j;if(tt.length===1){var rt=tt[0];if(rt===j||et&&isKeyed(rt)||isIndexed(j)&&isIndexed(rt))return rt}var nt=new ArraySeq(tt);return et?nt=nt.toKeyedSeq():isIndexed(j)||(nt=nt.toSetSeq()),nt=nt.flatten(!0),nt.size=tt.reduce(function(ot,it){if(ot!==void 0){var st=it.size;if(st!==void 0)return ot+st}},0),nt}function flattenFactory(j,_e,et){var tt=makeSequence(j);return tt.__iterateUncached=function(rt,nt){if(nt)return this.cacheResult().__iterate(rt,nt);var ot=0,it=!1;function st(lt,ut){lt.__iterate(function(ct,dt){return(!_e||ut<_e)&&isCollection(ct)?st(ct,ut+1):(ot++,rt(ct,et?dt:ot-1,tt)===!1&&(it=!0)),!it},nt)}return st(j,0),ot},tt.__iteratorUncached=function(rt,nt){if(nt)return this.cacheResult().__iterator(rt,nt);var ot=j.__iterator(rt,nt),it=[],st=0;return new Iterator(function(){for(;ot;){var lt=ot.next();if(lt.done!==!1){ot=it.pop();continue}var ut=lt.value;if(rt===ITERATE_ENTRIES&&(ut=ut[1]),(!_e||it.length<_e)&&isCollection(ut))it.push(ot),ot=ut.__iterator(rt,nt);else return et?lt:iteratorValue(rt,st++,ut,lt)}return iteratorDone()})},tt}function flatMapFactory(j,_e,et){var tt=collectionClass(j);return j.toSeq().map(function(rt,nt){return tt(_e.call(et,rt,nt,j))}).flatten(!0)}function interposeFactory(j,_e){var et=makeSequence(j);return et.size=j.size&&j.size*2-1,et.__iterateUncached=function(tt,rt){var nt=this,ot=0;return j.__iterate(function(it){return(!ot||tt(_e,ot++,nt)!==!1)&&tt(it,ot++,nt)!==!1},rt),ot},et.__iteratorUncached=function(tt,rt){var nt=j.__iterator(ITERATE_VALUES,rt),ot=0,it;return new Iterator(function(){return(!it||ot%2)&&(it=nt.next(),it.done)?it:ot%2?iteratorValue(tt,ot++,_e):iteratorValue(tt,ot++,it.value,it)})},et}function sortFactory(j,_e,et){_e||(_e=defaultComparator);var tt=isKeyed(j),rt=0,nt=j.toSeq().map(function(ot,it){return[it,ot,rt++,et?et(ot,it,j):ot]}).valueSeq().toArray();return nt.sort(function(ot,it){return _e(ot[3],it[3])||ot[2]-it[2]}).forEach(tt?function(ot,it){nt[it].length=2}:function(ot,it){nt[it]=ot[1]}),tt?KeyedSeq(nt):isIndexed(j)?IndexedSeq(nt):SetSeq(nt)}function maxFactory(j,_e,et){if(_e||(_e=defaultComparator),et){var tt=j.toSeq().map(function(rt,nt){return[rt,et(rt,nt,j)]}).reduce(function(rt,nt){return maxCompare(_e,rt[1],nt[1])?nt:rt});return tt&&tt[0]}return j.reduce(function(rt,nt){return maxCompare(_e,rt,nt)?nt:rt})}function maxCompare(j,_e,et){var tt=j(et,_e);return tt===0&&et!==_e&&(et==null||et!==et)||tt>0}function zipWithFactory(j,_e,et,tt){var rt=makeSequence(j),nt=new ArraySeq(et).map(function(ot){return ot.size});return rt.size=tt?nt.max():nt.min(),rt.__iterate=function(ot,it){for(var st=this.__iterator(ITERATE_VALUES,it),lt,ut=0;!(lt=st.next()).done&&ot(lt.value,ut++,this)!==!1;);return ut},rt.__iteratorUncached=function(ot,it){var st=et.map(function(ct){return ct=Collection$1(ct),getIterator(it?ct.reverse():ct)}),lt=0,ut=!1;return new Iterator(function(){var ct;return ut||(ct=st.map(function(dt){return dt.next()}),ut=tt?ct.every(function(dt){return dt.done}):ct.some(function(dt){return dt.done})),ut?iteratorDone():iteratorValue(ot,lt++,_e.apply(null,ct.map(function(dt){return dt.value})))})},rt}function reify(j,_e){return j===_e?j:isSeq(j)?_e:j.constructor(_e)}function validateEntry(j){if(j!==Object(j))throw new TypeError("Expected [K, V] tuple: "+j)}function collectionClass(j){return isKeyed(j)?KeyedCollection:isIndexed(j)?IndexedCollection:SetCollection}function makeSequence(j){return Object.create((isKeyed(j)?KeyedSeq:isIndexed(j)?IndexedSeq:SetSeq).prototype)}function cacheResultThrough(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):Seq.prototype.cacheResult.call(this)}function defaultComparator(j,_e){return j===void 0&&_e===void 0?0:j===void 0?1:_e===void 0?-1:j>_e?1:j<_e?-1:0}function arrCopy(j,_e){_e=_e||0;for(var et=Math.max(0,j.length-_e),tt=new Array(et),rt=0;rt0;)_e[et]=arguments[et+1];if(typeof j!="function")throw new TypeError("Invalid merger function: "+j);return mergeIntoKeyedWith(this,_e,j)}function mergeIntoKeyedWith(j,_e,et){for(var tt=[],rt=0;rt<_e.length;rt++){var nt=KeyedCollection(_e[rt]);nt.size!==0&&tt.push(nt)}return tt.length===0?j:j.toSeq().size===0&&!j.__ownerID&&tt.length===1?j.constructor(tt[0]):j.withMutations(function(ot){for(var it=et?function(lt,ut){update$1(ot,ut,NOT_SET,function(ct){return ct===NOT_SET?lt:et(ct,lt,ut)})}:function(lt,ut){ot.set(ut,lt)},st=0;st0;)_e[et]=arguments[et+1];return mergeDeepWithSources(this,_e,j)}function mergeIn(j){for(var _e=[],et=arguments.length-1;et-- >0;)_e[et]=arguments[et+1];return updateIn$1(this,j,emptyMap(),function(tt){return mergeWithSources(tt,_e)})}function mergeDeepIn(j){for(var _e=[],et=arguments.length-1;et-- >0;)_e[et]=arguments[et+1];return updateIn$1(this,j,emptyMap(),function(tt){return mergeDeepWithSources(tt,_e)})}function withMutations(j){var _e=this.asMutable();return j(_e),_e.wasAltered()?_e.__ensureOwner(this.__ownerID):this}function asMutable(){return this.__ownerID?this:this.__ensureOwner(new OwnerID)}function asImmutable(){return this.__ensureOwner()}function wasAltered(){return this.__altered}var Map$1=function(j){function _e(et){return et==null?emptyMap():isMap(et)&&!isOrdered(et)?et:emptyMap().withMutations(function(tt){var rt=j(et);assertNotInfinite(rt.size),rt.forEach(function(nt,ot){return tt.set(ot,nt)})})}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){for(var tt=[],rt=arguments.length;rt--;)tt[rt]=arguments[rt];return emptyMap().withMutations(function(nt){for(var ot=0;ot=tt.length)throw new Error("Missing value for key: "+tt[ot]);nt.set(tt[ot],tt[ot+1])}})},_e.prototype.toString=function(){return this.__toString("Map {","}")},_e.prototype.get=function(tt,rt){return this._root?this._root.get(0,void 0,tt,rt):rt},_e.prototype.set=function(tt,rt){return updateMap(this,tt,rt)},_e.prototype.remove=function(tt){return updateMap(this,tt,NOT_SET)},_e.prototype.deleteAll=function(tt){var rt=Collection$1(tt);return rt.size===0?this:this.withMutations(function(nt){rt.forEach(function(ot){return nt.remove(ot)})})},_e.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):emptyMap()},_e.prototype.sort=function(tt){return OrderedMap(sortFactory(this,tt))},_e.prototype.sortBy=function(tt,rt){return OrderedMap(sortFactory(this,rt,tt))},_e.prototype.map=function(tt,rt){var nt=this;return this.withMutations(function(ot){ot.forEach(function(it,st){ot.set(st,tt.call(rt,it,st,nt))})})},_e.prototype.__iterator=function(tt,rt){return new MapIterator(this,tt,rt)},_e.prototype.__iterate=function(tt,rt){var nt=this,ot=0;return this._root&&this._root.iterate(function(it){return ot++,tt(it[1],it[0],nt)},rt),ot},_e.prototype.__ensureOwner=function(tt){return tt===this.__ownerID?this:tt?makeMap(this.size,this._root,tt,this.__hash):this.size===0?emptyMap():(this.__ownerID=tt,this.__altered=!1,this)},_e}(KeyedCollection);Map$1.isMap=isMap;var MapPrototype=Map$1.prototype;MapPrototype[IS_MAP_SYMBOL]=!0;MapPrototype[DELETE]=MapPrototype.remove;MapPrototype.removeAll=MapPrototype.deleteAll;MapPrototype.setIn=setIn;MapPrototype.removeIn=MapPrototype.deleteIn=deleteIn;MapPrototype.update=update;MapPrototype.updateIn=updateIn;MapPrototype.merge=MapPrototype.concat=merge$1$1;MapPrototype.mergeWith=mergeWith$1;MapPrototype.mergeDeep=mergeDeep;MapPrototype.mergeDeepWith=mergeDeepWith;MapPrototype.mergeIn=mergeIn;MapPrototype.mergeDeepIn=mergeDeepIn;MapPrototype.withMutations=withMutations;MapPrototype.wasAltered=wasAltered;MapPrototype.asImmutable=asImmutable;MapPrototype["@@transducer/init"]=MapPrototype.asMutable=asMutable;MapPrototype["@@transducer/step"]=function(j,_e){return j.set(_e[0],_e[1])};MapPrototype["@@transducer/result"]=function(j){return j.asImmutable()};var ArrayMapNode=function(_e,et){this.ownerID=_e,this.entries=et};ArrayMapNode.prototype.get=function(_e,et,tt,rt){for(var nt=this.entries,ot=0,it=nt.length;ot=MAX_ARRAY_MAP_SIZE)return createNodes(_e,lt,rt,nt);var ft=_e&&_e===this.ownerID,pt=ft?lt:arrCopy(lt);return dt?st?ut===ct-1?pt.pop():pt[ut]=pt.pop():pt[ut]=[rt,nt]:pt.push([rt,nt]),ft?(this.entries=pt,this):new ArrayMapNode(_e,pt)}};var BitmapIndexedNode=function(_e,et,tt){this.ownerID=_e,this.bitmap=et,this.nodes=tt};BitmapIndexedNode.prototype.get=function(_e,et,tt,rt){et===void 0&&(et=hash$1(tt));var nt=1<<((_e===0?et:et>>>_e)&MASK),ot=this.bitmap;return ot&nt?this.nodes[popCount(ot&nt-1)].get(_e+SHIFT,et,tt,rt):rt};BitmapIndexedNode.prototype.update=function(_e,et,tt,rt,nt,ot,it){tt===void 0&&(tt=hash$1(rt));var st=(et===0?tt:tt>>>et)&MASK,lt=1<=MAX_BITMAP_INDEXED_SIZE)return expandNodes(_e,ft,ut,st,gt);if(ct&&!gt&&ft.length===2&&isLeafNode(ft[dt^1]))return ft[dt^1];if(ct&>&&ft.length===1&&isLeafNode(gt))return gt;var mt=_e&&_e===this.ownerID,bt=ct?gt?ut:ut^lt:ut|lt,_t=ct?gt?setAt(ft,dt,gt,mt):spliceOut(ft,dt,mt):spliceIn(ft,dt,gt,mt);return mt?(this.bitmap=bt,this.nodes=_t,this):new BitmapIndexedNode(_e,bt,_t)};var HashArrayMapNode=function(_e,et,tt){this.ownerID=_e,this.count=et,this.nodes=tt};HashArrayMapNode.prototype.get=function(_e,et,tt,rt){et===void 0&&(et=hash$1(tt));var nt=(_e===0?et:et>>>_e)&MASK,ot=this.nodes[nt];return ot?ot.get(_e+SHIFT,et,tt,rt):rt};HashArrayMapNode.prototype.update=function(_e,et,tt,rt,nt,ot,it){tt===void 0&&(tt=hash$1(rt));var st=(et===0?tt:tt>>>et)&MASK,lt=nt===NOT_SET,ut=this.nodes,ct=ut[st];if(lt&&!ct)return this;var dt=updateNode(ct,_e,et+SHIFT,tt,rt,nt,ot,it);if(dt===ct)return this;var ft=this.count;if(!ct)ft++;else if(!dt&&(ft--,ft>>et)&MASK,ot=(et===0?tt:tt>>>et)&MASK,it,st=nt===ot?[mergeIntoNode(j,_e,et+SHIFT,tt,rt)]:(it=new ValueNode(_e,tt,rt),nt>>=1)ot[it]=et&1?_e[nt++]:void 0;return ot[tt]=rt,new HashArrayMapNode(j,nt+1,ot)}function popCount(j){return j-=j>>1&1431655765,j=(j&858993459)+(j>>2&858993459),j=j+(j>>4)&252645135,j+=j>>8,j+=j>>16,j&127}function setAt(j,_e,et,tt){var rt=tt?j:arrCopy(j);return rt[_e]=et,rt}function spliceIn(j,_e,et,tt){var rt=j.length+1;if(tt&&_e+1===rt)return j[_e]=et,j;for(var nt=new Array(rt),ot=0,it=0;it0&&nt=0&&tt>>et&MASK;if(rt>=this.array.length)return new VNode([],_e);var nt=rt===0,ot;if(et>0){var it=this.array[rt];if(ot=it&&it.removeBefore(_e,et-SHIFT,tt),ot===it&&nt)return this}if(nt&&!ot)return this;var st=editableVNode(this,_e);if(!nt)for(var lt=0;lt>>et&MASK;if(rt>=this.array.length)return this;var nt;if(et>0){var ot=this.array[rt];if(nt=ot&&ot.removeAfter(_e,et-SHIFT,tt),nt===ot&&rt===this.array.length-1)return this}var it=editableVNode(this,_e);return it.array.splice(rt+1),nt&&(it.array[rt]=nt),it};var DONE={};function iterateList(j,_e){var et=j._origin,tt=j._capacity,rt=getTailOffset(tt),nt=j._tail;return ot(j._root,j._level,0);function ot(lt,ut,ct){return ut===0?it(lt,ct):st(lt,ut,ct)}function it(lt,ut){var ct=ut===rt?nt&&nt.array:lt&<.array,dt=ut>et?0:et-ut,ft=tt-ut;return ft>SIZE$1&&(ft=SIZE$1),function(){if(dt===ft)return DONE;var pt=_e?--ft:dt++;return ct&&ct[pt]}}function st(lt,ut,ct){var dt,ft=lt&<.array,pt=ct>et?0:et-ct>>ut,gt=(tt-ct>>ut)+1;return gt>SIZE$1&&(gt=SIZE$1),function(){for(;;){if(dt){var mt=dt();if(mt!==DONE)return mt;dt=null}if(pt===gt)return DONE;var bt=_e?--gt:pt++;dt=ot(ft&&ft[bt],ut-SHIFT,ct+(bt<=j.size||_e<0)return j.withMutations(function(ot){_e<0?setListBounds(ot,_e).set(0,et):setListBounds(ot,0,_e+1).set(_e,et)});_e+=j._origin;var tt=j._tail,rt=j._root,nt=MakeRef();return _e>=getTailOffset(j._capacity)?tt=updateVNode(tt,j.__ownerID,0,_e,et,nt):rt=updateVNode(rt,j.__ownerID,j._level,_e,et,nt),nt.value?j.__ownerID?(j._root=rt,j._tail=tt,j.__hash=void 0,j.__altered=!0,j):makeList(j._origin,j._capacity,j._level,rt,tt):j}function updateVNode(j,_e,et,tt,rt,nt){var ot=tt>>>et&MASK,it=j&&ot0){var lt=j&&j.array[ot],ut=updateVNode(lt,_e,et-SHIFT,tt,rt,nt);return ut===lt?j:(st=editableVNode(j,_e),st.array[ot]=ut,st)}return it&&j.array[ot]===rt?j:(nt&&SetRef(nt),st=editableVNode(j,_e),rt===void 0&&ot===st.array.length-1?st.array.pop():st.array[ot]=rt,st)}function editableVNode(j,_e){return _e&&j&&_e===j.ownerID?j:new VNode(j?j.array.slice():[],_e)}function listNodeFor(j,_e){if(_e>=getTailOffset(j._capacity))return j._tail;if(_e<1<0;)et=et.array[_e>>>tt&MASK],tt-=SHIFT;return et}}function setListBounds(j,_e,et){_e!==void 0&&(_e|=0),et!==void 0&&(et|=0);var tt=j.__ownerID||new OwnerID,rt=j._origin,nt=j._capacity,ot=rt+_e,it=et===void 0?nt:et<0?nt+et:rt+et;if(ot===rt&&it===nt)return j;if(ot>=it)return j.clear();for(var st=j._level,lt=j._root,ut=0;ot+ut<0;)lt=new VNode(lt&<.array.length?[void 0,lt]:[],tt),st+=SHIFT,ut+=1<=1<ct?new VNode([],tt):ft;if(ft&&dt>ct&&otSHIFT;mt-=SHIFT){var bt=ct>>>mt&MASK;gt=gt.array[bt]=editableVNode(gt.array[bt],tt)}gt.array[ct>>>SHIFT&MASK]=ft}if(it=dt)ot-=dt,it-=dt,st=SHIFT,lt=null,pt=pt&&pt.removeBefore(tt,0,ot);else if(ot>rt||dt>>st&MASK;if(_t!==dt>>>st&MASK)break;_t&&(ut+=(1<rt&&(lt=lt.removeBefore(tt,st,ot-ut)),lt&&dt>>SHIFT<=SIZE$1&&rt.size>=tt.size*2?(st=rt.filter(function(lt,ut){return lt!==void 0&&nt!==ut}),it=st.toKeyedSeq().map(function(lt){return lt[0]}).flip().toMap(),j.__ownerID&&(it.__ownerID=st.__ownerID=j.__ownerID)):(it=tt.remove(_e),st=nt===rt.size-1?rt.pop():rt.set(nt,void 0))}else if(ot){if(et===rt.get(nt)[1])return j;it=tt,st=rt.set(nt,[_e,et])}else it=tt.set(_e,rt.size),st=rt.set(rt.size,[_e,et]);return j.__ownerID?(j.size=it.size,j._map=it,j._list=st,j.__hash=void 0,j.__altered=!0,j):makeOrderedMap(it,st)}var IS_STACK_SYMBOL="@@__IMMUTABLE_STACK__@@";function isStack(j){return!!(j&&j[IS_STACK_SYMBOL])}var Stack=function(j){function _e(et){return et==null?emptyStack():isStack(et)?et:emptyStack().pushAll(et)}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return this(arguments)},_e.prototype.toString=function(){return this.__toString("Stack [","]")},_e.prototype.get=function(tt,rt){var nt=this._head;for(tt=wrapIndex(this,tt);nt&&tt--;)nt=nt.next;return nt?nt.value:rt},_e.prototype.peek=function(){return this._head&&this._head.value},_e.prototype.push=function(){var tt=arguments;if(arguments.length===0)return this;for(var rt=this.size+arguments.length,nt=this._head,ot=arguments.length-1;ot>=0;ot--)nt={value:tt[ot],next:nt};return this.__ownerID?(this.size=rt,this._head=nt,this.__hash=void 0,this.__altered=!0,this):makeStack(rt,nt)},_e.prototype.pushAll=function(tt){if(tt=j(tt),tt.size===0)return this;if(this.size===0&&isStack(tt))return tt;assertNotInfinite(tt.size);var rt=this.size,nt=this._head;return tt.__iterate(function(ot){rt++,nt={value:ot,next:nt}},!0),this.__ownerID?(this.size=rt,this._head=nt,this.__hash=void 0,this.__altered=!0,this):makeStack(rt,nt)},_e.prototype.pop=function(){return this.slice(1)},_e.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):emptyStack()},_e.prototype.slice=function(tt,rt){if(wholeSlice(tt,rt,this.size))return this;var nt=resolveBegin(tt,this.size),ot=resolveEnd(rt,this.size);if(ot!==this.size)return j.prototype.slice.call(this,tt,rt);for(var it=this.size-nt,st=this._head;nt--;)st=st.next;return this.__ownerID?(this.size=it,this._head=st,this.__hash=void 0,this.__altered=!0,this):makeStack(it,st)},_e.prototype.__ensureOwner=function(tt){return tt===this.__ownerID?this:tt?makeStack(this.size,this._head,tt,this.__hash):this.size===0?emptyStack():(this.__ownerID=tt,this.__altered=!1,this)},_e.prototype.__iterate=function(tt,rt){var nt=this;if(rt)return new ArraySeq(this.toArray()).__iterate(function(st,lt){return tt(st,lt,nt)},rt);for(var ot=0,it=this._head;it&&tt(it.value,ot++,this)!==!1;)it=it.next;return ot},_e.prototype.__iterator=function(tt,rt){if(rt)return new ArraySeq(this.toArray()).__iterator(tt,rt);var nt=0,ot=this._head;return new Iterator(function(){if(ot){var it=ot.value;return ot=ot.next,iteratorValue(tt,nt++,it)}return iteratorDone()})},_e}(IndexedCollection);Stack.isStack=isStack;var StackPrototype=Stack.prototype;StackPrototype[IS_STACK_SYMBOL]=!0;StackPrototype.shift=StackPrototype.pop;StackPrototype.unshift=StackPrototype.push;StackPrototype.unshiftAll=StackPrototype.pushAll;StackPrototype.withMutations=withMutations;StackPrototype.wasAltered=wasAltered;StackPrototype.asImmutable=asImmutable;StackPrototype["@@transducer/init"]=StackPrototype.asMutable=asMutable;StackPrototype["@@transducer/step"]=function(j,_e){return j.unshift(_e)};StackPrototype["@@transducer/result"]=function(j){return j.asImmutable()};function makeStack(j,_e,et,tt){var rt=Object.create(StackPrototype);return rt.size=j,rt._head=_e,rt.__ownerID=et,rt.__hash=tt,rt.__altered=!1,rt}var EMPTY_STACK;function emptyStack(){return EMPTY_STACK||(EMPTY_STACK=makeStack(0))}var IS_SET_SYMBOL="@@__IMMUTABLE_SET__@@";function isSet(j){return!!(j&&j[IS_SET_SYMBOL])}function isOrderedSet(j){return isSet(j)&&isOrdered(j)}function deepEqual$1(j,_e){if(j===_e)return!0;if(!isCollection(_e)||j.size!==void 0&&_e.size!==void 0&&j.size!==_e.size||j.__hash!==void 0&&_e.__hash!==void 0&&j.__hash!==_e.__hash||isKeyed(j)!==isKeyed(_e)||isIndexed(j)!==isIndexed(_e)||isOrdered(j)!==isOrdered(_e))return!1;if(j.size===0&&_e.size===0)return!0;var et=!isAssociative(j);if(isOrdered(j)){var tt=j.entries();return _e.every(function(st,lt){var ut=tt.next().value;return ut&&is(ut[1],st)&&(et||is(ut[0],lt))})&&tt.next().done}var rt=!1;if(j.size===void 0)if(_e.size===void 0)typeof j.cacheResult=="function"&&j.cacheResult();else{rt=!0;var nt=j;j=_e,_e=nt}var ot=!0,it=_e.__iterate(function(st,lt){if(et?!j.has(st):rt?!is(st,j.get(lt,NOT_SET)):!is(j.get(lt,NOT_SET),st))return ot=!1,!1});return ot&&j.size===it}function mixin(j,_e){var et=function(tt){j.prototype[tt]=_e[tt]};return Object.keys(_e).forEach(et),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(_e).forEach(et),j}function toJS(j){if(!j||typeof j!="object")return j;if(!isCollection(j)){if(!isDataStructure(j))return j;j=Seq(j)}if(isKeyed(j)){var _e={};return j.__iterate(function(tt,rt){_e[rt]=toJS(tt)}),_e}var et=[];return j.__iterate(function(tt){et.push(toJS(tt))}),et}var Set$1=function(j){function _e(et){return et==null?emptySet():isSet(et)&&!isOrdered(et)?et:emptySet().withMutations(function(tt){var rt=j(et);assertNotInfinite(rt.size),rt.forEach(function(nt){return tt.add(nt)})})}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return this(arguments)},_e.fromKeys=function(tt){return this(KeyedCollection(tt).keySeq())},_e.intersect=function(tt){return tt=Collection$1(tt).toArray(),tt.length?SetPrototype.intersect.apply(_e(tt.pop()),tt):emptySet()},_e.union=function(tt){return tt=Collection$1(tt).toArray(),tt.length?SetPrototype.union.apply(_e(tt.pop()),tt):emptySet()},_e.prototype.toString=function(){return this.__toString("Set {","}")},_e.prototype.has=function(tt){return this._map.has(tt)},_e.prototype.add=function(tt){return updateSet(this,this._map.set(tt,tt))},_e.prototype.remove=function(tt){return updateSet(this,this._map.remove(tt))},_e.prototype.clear=function(){return updateSet(this,this._map.clear())},_e.prototype.map=function(tt,rt){var nt=this,ot=!1,it=updateSet(this,this._map.mapEntries(function(st){var lt=st[1],ut=tt.call(rt,lt,lt,nt);return ut!==lt&&(ot=!0),[ut,ut]},rt));return ot?it:this},_e.prototype.union=function(){for(var tt=[],rt=arguments.length;rt--;)tt[rt]=arguments[rt];return tt=tt.filter(function(nt){return nt.size!==0}),tt.length===0?this:this.size===0&&!this.__ownerID&&tt.length===1?this.constructor(tt[0]):this.withMutations(function(nt){for(var ot=0;ot=0&&rt=0&&ntthis.size?et:this.find(function(tt,rt){return rt===_e},void 0,et)},has:function(_e){return _e=wrapIndex(this,_e),_e>=0&&(this.size!==void 0?this.size===1/0||_e_e?-1:0}function hashCollection(j){if(j.size===1/0)return 0;var _e=isOrdered(j),et=isKeyed(j),tt=_e?1:0,rt=j.__iterate(et?_e?function(nt,ot){tt=31*tt+hashMerge(hash$1(nt),hash$1(ot))|0}:function(nt,ot){tt=tt+hashMerge(hash$1(nt),hash$1(ot))|0}:_e?function(nt){tt=31*tt+hash$1(nt)|0}:function(nt){tt=tt+hash$1(nt)|0});return murmurHashOfSize(rt,tt)}function murmurHashOfSize(j,_e){return _e=imul(_e,3432918353),_e=imul(_e<<15|_e>>>-15,461845907),_e=imul(_e<<13|_e>>>-13,5),_e=(_e+3864292196|0)^j,_e=imul(_e^_e>>>16,2246822507),_e=imul(_e^_e>>>13,3266489909),_e=smi(_e^_e>>>16),_e}function hashMerge(j,_e){return j^_e+2654435769+(j<<6)+(j>>2)|0}var OrderedSet=function(j){function _e(et){return et==null?emptyOrderedSet():isOrderedSet(et)?et:emptyOrderedSet().withMutations(function(tt){var rt=SetCollection(et);assertNotInfinite(rt.size),rt.forEach(function(nt){return tt.add(nt)})})}return j&&(_e.__proto__=j),_e.prototype=Object.create(j&&j.prototype),_e.prototype.constructor=_e,_e.of=function(){return this(arguments)},_e.fromKeys=function(tt){return this(KeyedCollection(tt).keySeq())},_e.prototype.toString=function(){return this.__toString("OrderedSet {","}")},_e}(Set$1);OrderedSet.isOrderedSet=isOrderedSet;var OrderedSetPrototype=OrderedSet.prototype;OrderedSetPrototype[IS_ORDERED_SYMBOL]=!0;OrderedSetPrototype.zip=IndexedCollectionPrototype.zip;OrderedSetPrototype.zipWith=IndexedCollectionPrototype.zipWith;OrderedSetPrototype.zipAll=IndexedCollectionPrototype.zipAll;OrderedSetPrototype.__empty=emptyOrderedSet;OrderedSetPrototype.__make=makeOrderedSet;function makeOrderedSet(j,_e){var et=Object.create(OrderedSetPrototype);return et.size=j?j.size:0,et._map=j,et.__ownerID=_e,et}var EMPTY_ORDERED_SET;function emptyOrderedSet(){return EMPTY_ORDERED_SET||(EMPTY_ORDERED_SET=makeOrderedSet(emptyOrderedMap()))}function throwOnInvalidDefaultValues(j){if(isRecord(j))throw new Error("Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.");if(isImmutable(j))throw new Error("Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.");if(j===null||typeof j!="object")throw new Error("Can not call `Record` with a non-object as default values. Use a plain javascript object instead.")}var Record=function(_e,et){var tt;throwOnInvalidDefaultValues(_e);var rt=function(it){var st=this;if(it instanceof rt)return it;if(!(this instanceof rt))return new rt(it);if(!tt){tt=!0;var lt=Object.keys(_e),ut=nt._indices={};nt._name=et,nt._keys=lt,nt._defaultValues=_e;for(var ct=0;ct0?this._next(et.shift()):this.active===0&&this.hasCompleted&&this.destination.complete()},_e}(SimpleOuterSubscriber);function mergeAll(j){return j===void 0&&(j=Number.POSITIVE_INFINITY),mergeMap(identity$5,j)}function merge$3(){for(var j=[],_e=0;_e1&&typeof j[j.length-1]=="number"&&(et=j.pop())):typeof rt=="number"&&(et=j.pop()),tt===null&&j.length===1&&j[0]instanceof Observable$2?j[0]:mergeAll(et)(fromArray(j,tt))}function filter$4(j,_e){return function(tt){return tt.lift(new FilterOperator(j,_e))}}var FilterOperator=function(){function j(_e,et){this.predicate=_e,this.thisArg=et}return j.prototype.call=function(_e,et){return et.subscribe(new FilterSubscriber(_e,this.predicate,this.thisArg))},j}(),FilterSubscriber=function(j){__extends$2(_e,j);function _e(et,tt,rt){var nt=j.call(this,et)||this;return nt.predicate=tt,nt.thisArg=rt,nt.count=0,nt}return _e.prototype._next=function(et){var tt;try{tt=this.predicate.call(this.thisArg,et,this.count++)}catch(rt){this.destination.error(rt);return}tt&&this.destination.next(et)},_e}(Subscriber);function debounceTime(j,_e){return _e===void 0&&(_e=async),function(et){return et.lift(new DebounceTimeOperator(j,_e))}}var DebounceTimeOperator=function(){function j(_e,et){this.dueTime=_e,this.scheduler=et}return j.prototype.call=function(_e,et){return et.subscribe(new DebounceTimeSubscriber(_e,this.dueTime,this.scheduler))},j}(),DebounceTimeSubscriber=function(j){__extends$2(_e,j);function _e(et,tt,rt){var nt=j.call(this,et)||this;return nt.dueTime=tt,nt.scheduler=rt,nt.debouncedSubscription=null,nt.lastValue=null,nt.hasValue=!1,nt}return _e.prototype._next=function(et){this.clearDebounce(),this.lastValue=et,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(dispatchNext,this.dueTime,this))},_e.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},_e.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var et=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(et)}},_e.prototype.clearDebounce=function(){var et=this.debouncedSubscription;et!==null&&(this.remove(et),et.unsubscribe(),this.debouncedSubscription=null)},_e}(Subscriber);function dispatchNext(j){j.debouncedNext()}function e$4(){return e$4=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{const it=tt.singletonCache.get(ot)||tt.requestCache.get(ot)||tt.transientCache.get(ot);it&&(nt.proxyTarget.current=it)}),tt.postConstruct.forEach(nt=>{nt.postConstruct()}),this.currentCtx=null,rt}child(){const _e=new this.constructor;return _e.parent=this,_e}getParent(){return this.parent}getInjectable(_e){var et;const tt=this.pool.get(_e);if(tt)return{value:tt,fromParent:!1};const rt=(et=this.parent)==null?void 0:et.getInjectable(_e);return rt?{value:rt.value,fromParent:!0}:void 0}_resolve(_e,et,tt){const rt=this.getInjectable(_e);if((et==null?void 0:et.optional)===!0&&!rt)return;if(!rt)throw new Error(`Key: ${a$1(_e)} not found`);const{value:{value:nt,scope:ot,type:it},fromParent:st}=rt;let lt,ut=!1;if(it===h$9.VALUE)return nt;{const ct=tt.requestedKeys.get(_e);if(ct){if(!ct.constructed){if(!et.lazy&&!st){const dt=Array.from(tt.requestedKeys.entries()).pop(),ft=dt?`[ ${String(dt[0])}: ${dt[1].value.name} ]`:"";throw new Error(`Circular reference detected: ${ft} -> [ ${a$1(_e)}: ${nt.name} ]`)}ut=!0}}else tt.requestedKeys.set(_e,{constructed:!1,value:nt})}return lt=ut?()=>this.createLazy(_e,it,tt):()=>this.create(_e,rt.value,tt),this.run(ot,_e,lt,tt)}resolveDeps(_e,et){const tt=[];for(const rt of _e){const{key:nt,options:ot}=c$7(rt);if(Array.isArray(nt)){const it=[];for(const st of nt){let lt=et.singletonCache.get(st.key);lt===void 0&&(lt=this._resolve(st.key,e$4({},st.options),et)),lt===void 0&&ot.removeUndefined||it.push(lt)}tt.push(it.length?it:ot.setToUndefinedIfEmpty?void 0:it)}else{let it=et.singletonCache.get(nt);it===void 0&&(it=this._resolve(nt,e$4({},ot),et)),tt.push(it)}}return tt}createLazy(_e,et,tt){const rt=tt.delayed.get(_e);if(rt)return rt.proxy;const nt=et===h$9.CLASS?{}:function(){},ot=function(it,st,lt){function ut(){if(!it.current)throw new Error(`Lazy target for key:${String(lt)} not yet set`);return it.current}return new Proxy(it,{apply:function(ct,dt){const ft=ut();return Reflect.apply(ft,st?ft:void 0,dt)},construct:function(ct,dt){return Reflect.construct(ut(),dt)},get:function(ct,dt,ft){return dt===t$8?ct.current:dt===n$9||Reflect.get(ut(),dt,ft)},set:function(ct,dt,ft){return Reflect.set(dt==="current"?ct:ut(),dt,ft)},defineProperty:function(ct,dt,ft){return Reflect.defineProperty(ut(),dt,ft)},deleteProperty:function(ct,dt){return Reflect.deleteProperty(ut(),dt)},getPrototypeOf:function(ct){return Reflect.getPrototypeOf(ut())},setPrototypeOf:function(ct,dt){return Reflect.setPrototypeOf(ut(),dt)},getOwnPropertyDescriptor:function(ct,dt){return Reflect.getOwnPropertyDescriptor(ut(),dt)},has:function(ct,dt){return Reflect.has(ut(),dt)},isExtensible:function(ct){return Reflect.isExtensible(ut())},ownKeys:function(ct){return Reflect.ownKeys(ut())},preventExtensions:function(ct){return Reflect.preventExtensions(ut())}})}(nt,et===h$9.CLASS,_e);return tt.delayed.set(_e,{proxy:ot,proxyTarget:nt}),ot}create(_e,et,tt){const{beforeResolve:rt,afterResolve:nt,value:ot,type:it}=et,st=ot.inject;let lt=[];st&&(lt=Array.isArray(st)?this.resolveDeps(st,tt):st.fn({container:this,ctx:tt.ctx},...this.resolveDeps(st.deps,tt)));const ut=rt?rt({container:this,value:ot.original,ctx:tt.ctx},...lt):ot(...lt);return nt&&nt({container:this,value:ut,ctx:tt.ctx}),tt.requestedKeys.get(_e).constructed=!0,it==="CLASS"&&"postConstruct"in ut&&tt.postConstruct.push(ut),ut}run(_e,et,tt,rt){if(_e===f$6.SINGLETON||_e===f$6.CONTAINER_SINGLETON){var nt;if(!this.pool.has(et)&&_e===f$6.SINGLETON)return(nt=this.parent)==null?void 0:nt.resolve(et);const it=rt.singletonCache.get(et);if(it!==void 0)return it===p$8?void 0:it;{let st=tt();return st===void 0&&(st=p$8),this.singletonCache.set(et,st),st}}if(f$6.REQUEST===_e){const it=rt.requestCache.get(et);if(it!==void 0)return it===p$8?void 0:it;{let st=tt();return st===void 0&&(st=p$8),rt.requestCache.set(et,st),st}}const ot=tt();return rt.transientCache.set(et,ot),ot}};function isClassProvider(j){return hasOwn$l(j,"useClass")}function isFactoryProvider(j){return hasOwn$l(j,"useFactory")}function isValueProvider(j){return hasOwn$l(j,"useValue")}function isTokenProvider(j){return hasOwn$l(j,"useToken")}const SINGLETON=Symbol("singleton");function isConstructor$4(j){return typeof j=="function"&&!!j.inject}function getClassScope(j){return j[SINGLETON]?"SINGLETON":j.scope?j.scope:"TRANSIENT"}class DependencyContainer extends d$2{constructor(){super(...arguments),this.name="DependencyContainer"}bindValue(_e,et){return this.has(_e,!1)&&this.unbind(_e),super.bindValue(_e,et)}bindClass(_e,et,tt){const rt=(tt==null?void 0:tt.scope)??getClassScope(_e);return super.bindClass(_e,et,{...tt,scope:rt})}register(_e,et){if(isValueProvider(et))this.bindValue(_e,et.useValue);else if(isFactoryProvider(et)){const{useFactory:tt}=et;this.bindFactory(_e,{value:tt,inject:[ContainerToken]},{scope:et.scope})}else if(isTokenProvider(et))this.bindFactory(_e,{value:tt=>tt,inject:[et.useToken]});else if(isClassProvider(et)){const tt=et.scope??getClassScope(et.useClass);this.bindClass(_e,et.useClass,{scope:tt})}}_resolve(_e,et,tt){if(!this.getInjectable(_e)&&isConstructor$4(_e)){const rt=getClassScope(_e);this.bindClass(_e,_e,{scope:rt})}return super._resolve(_e,et,tt)}}const getGlobalContainer=()=>{const j=new DependencyContainer;return j.name="global",j},container=getGlobalContainer();function createInjectionToken(j,_e){return container.bindValue(j,_e),j}const ContainerToken=createInjectionToken("DependencyContainer",container),ServicesContext=reactExports.createContext(container),createRegistry=({provide:j,name:_e})=>({containerRef:tt,onInitialize:rt,onDispose:nt,children:ot})=>{const it=reactExports.useContext(ServicesContext),st=reactExports.useMemo(()=>{const lt=it.child();return _e&&(lt.name=_e),j==null||j.forEach(ut=>{lt.register(ut.token,ut)}),lt.bindValue(ContainerToken,lt),rt==null||rt(lt),lt},[rt,it]);return reactExports.useImperativeHandle(tt,()=>st,[st]),reactExports.useEffect(()=>()=>{nt==null||nt(st),st.unbindAll(!0)},[st]),jsxRuntimeExports.jsx(ServicesContext.Provider,{value:st,children:ot})};createInjectionToken("isControlFlowEnabledToken",!1);createInjectionToken("isDoWhileLoopEnabledToken",!1);createInjectionToken("isAnnotationEnabledToken",!1);createInjectionToken("isDesignerUnifiedSubmissionFlowEnabledToken",!1);createInjectionToken("isPipelineComputeDatastoreEnabledToken",!1);createInjectionToken("TransactionalAuthoringEnabled",!1);createInjectionToken("ComponentSettingsEnabled",!1);createInjectionToken("isPipelineOwnerToken",!1);createInjectionToken("isExecutionPhaseEnabledToken",!1);createInjectionToken("isPipelineStreamingEnabledToken",!1);createInjectionToken("useFocusedNodeId",()=>{});createInjectionToken("useIsInSearchResult",()=>!1);createInjectionToken("dismissCompareCheckListPanel",()=>null);const promptFlowGraphReducer=j=>(_e,et)=>j(_e,et),graphReducer=()=>getGraphReducer(promptFlowGraphReducer);let Computed$1=class om extends Observable$2{constructor(_e,et){super(tt=>this.state$.subscribe(tt)),this.getSnapshot=()=>this.state$.getValue(),this.state$=new BehaviorSubject(_e),this.subscription=et.subscribe(this.state$)}static fromStates(_e,et){const tt=et(_e.map(nt=>nt.getSnapshot())),rt=combineLatest(_e).pipe(map$3(et));return new om(tt,rt)}destroy(){this.subscription.unsubscribe()}},State$1=class extends BehaviorSubject{constructor(){super(...arguments),this.getState=()=>this.getValue(),this.setState=_e=>{this.next(_e)},this.updateState=_e=>{this.next(_e(this.getValue()))},this.getSnapshot=()=>this.getValue()}next(_e,et){!et&&this.value===_e||super.next(_e)}copyFrom(_e){this.next(_e.getSnapshot())}};const Kp=class Kp{constructor(){this.nodesIndex$=new State$1(List$1()),this.allNodeNames$=Computed$1.fromStates([],()=>List$1()),this.orientation$=new State$1(Orientation$1.Vertical),this.language$=new State$1(void 0)}tweakFlattenNodeOrder(_e,et){const tt=this.nodesIndex$.getSnapshot(),rt=tt.findIndex(ot=>ot===_e),nt=rt+et;if(rt>=0&&nt>=0&&nt(this.addListener(_e,et),et.next(this.get(_e)),()=>{this.removeListener(_e,et)}))}notify(_e){var et;(et=this.listeners.get(_e))==null||et.forEach(tt=>{tt.next(this.get(_e))})}next(_e){const et=this.getSnapshot();super.next(_e);const tt=new Set;et.forEach((rt,nt)=>{_e.has(nt)||tt.add(nt)}),_e.forEach((rt,nt)=>{et.has(nt)&&Object.is(et.get(nt),rt)||tt.add(nt)}),tt.forEach(rt=>{this.notify(rt)})}addListener(_e,et){let tt=this.listeners.get(_e);tt||(tt=new Set,this.listeners.set(_e,tt)),tt.add(et)}removeListener(_e,et){const tt=this.listeners.get(_e);tt&&(tt.delete(et),tt.size===0&&this.listeners.delete(_e))}}class ObservableMap extends ObservableCollection{constructor(){super(Map$1())}set(_e,et){return this.updateState(tt=>tt.set(_e,et)),this}update(_e,et){return this.updateState(tt=>tt.update(_e,et)),this}delete(_e){return this.updateState(et=>et.delete(_e)),this}deleteAll(_e){return this.updateState(et=>et.deleteAll(_e)),this}clear(){return this.next(Map$1()),this}merge(_e){return this.updateState(et=>et.merge(_e)),this}}class ObservableOrderedMap extends ObservableCollection{constructor(){super(OrderedMap())}set(_e,et){return this.updateState(tt=>tt.set(_e,et)),this}update(_e,et){return this.updateState(tt=>tt.update(_e,et)),this}delete(_e){return this.updateState(et=>et.delete(_e)),this}deleteAll(_e){return this.updateState(et=>et.deleteAll(_e)),this}clear(){return this.next(OrderedMap()),this}merge(_e){return this.updateState(et=>et.merge(_e)),this}insertBefore(_e,et,tt){return this.updateState(rt=>OrderedMap().withMutations(nt=>{for(const[ot,it]of rt.entries())_e===ot&&nt.set(et,tt),nt.set(ot,it)})),this.notify(et),this}insertAfter(_e,et,tt){return this.updateState(rt=>OrderedMap().withMutations(nt=>{for(const[ot,it]of rt.entries())nt.set(ot,it),_e===ot&&nt.set(et,tt)})),this.notify(et),this}sortByValue(_e){return this.updateState(et=>et.sort(_e)),this}}var _a$5;const Vp=class Vp extends FlowViewModelShared{constructor(){super(),this.isWorkspaceReady$=new State$1(!1),this.currentNodeId$=new State$1(void 0),this.graphConfig=GraphConfigBuilder.default().build(),this.graphReducer=graphReducer(),this.isReadonly$=new State$1(!1),this.name$=new State$1(""),this.flowType$=new State$1(FlowType.Default),this.owner$=new State$1(void 0),this.isArchived$=new State$1(!1),this.selectedStepId$=new State$1(void 0),this.tools$=new ObservableOrderedMap,this.toolsStatus$=new ObservableOrderedMap,this.batchInputs$=new State$1([]),this.bulkRunDataReference$=new State$1(void 0),this.chatMessages$=new State$1([]),this.nodeVariants$=new ObservableOrderedMap,this.tuningNodeNames$=new State$1([]),this.inputSpec$=new ObservableOrderedMap,this.selectedBulkIndex$=new State$1(void 0),this.nodeRuns$=new ObservableOrderedMap,this.flowRuns$=new State$1([]),this.rootFlowRunMap$=new ObservableMap,this.flowOutputs$=new ObservableOrderedMap,this.connections$=new ObservableOrderedMap,this.promptToolSetting$=new State$1(void 0),this.userInfo$=new State$1(void 0),this.bulkRunDescription$=new State$1(""),this.bulkRunTags$=new State$1([]),this.nodeParameterTypes$=new ObservableMap,this.theme$=new State$1(void 0),this.selectedRuntimeName$=new State$1(void 0),this.connectionList$=new State$1([]),this.connectionSpecList$=new State$1([]),this.connectionDeployments$=new ObservableOrderedMap,this.connectionDeploymentsLoading$=new ObservableOrderedMap,this.runStatus$=new State$1(void 0),this.flowRunType$=new State$1(void 0),this.packageToolsDictionary$=new ObservableMap,this.codeToolsDictionary$=new ObservableMap,this.isToolsJsonReady$=new State$1(!1),this.flowGraphLayout$=new State$1(void 0),this.flowUIHint$=new State$1(void 0),this.isInitialized$=new State$1(!1),this.flowFeatures$=new State$1(new Set),this.loaded=!1,this._allLlmParameterKeys=[],new Set(dataReadonlyMode).add(GraphFeatures.AutoFit);const et=new Set;et.add(FlowFeatures.OpenCodeFileInNode),this.flowFeatures$.next(et),this.canvasState$=new State$1(createGraphState({settings:{graphConfig:this.graphConfig,canvasBoundaryPadding:{top:800,bottom:800}},data:GraphModel.empty()})),this.allNodeNames$=Computed$1.fromStates([this.nodeVariants$],([tt])=>List$1(Array.from(tt.keys()).filter(rt=>!!rt&&rt!==FLOW_INPUT_NODE_NAME&&rt!==FLOW_OUTPUT_NODE_NAME))),merge$3(this.flowOutputs$,this.batchInputs$,this.inputSpec$,this.selectedRuntimeName$,this.bulkRunTags$,this.nodeVariants$,this.codeToolsDictionary$,this.packageToolsDictionary$).pipe(filter$4(()=>this.loaded),filter$4(()=>this.isInitialized$.getSnapshot()),debounceTime(100)).subscribe(()=>{this.notifyFlowChange()}),merge$3(this.flowGraphLayout$,this.orientation$).pipe(debounceTime(100)).subscribe(()=>{this.notifyLayoutChange()}),merge$3(this.flowUIHint$).pipe(debounceTime(100)).subscribe(()=>{this.notifyUIHintChange()}),this.invalidStepInputs$=Computed$1.fromStates([this.nodeVariants$,this.codeToolsDictionary$,this.packageToolsDictionary$,this.connectionList$,this.inputSpec$,this.nodeParameterTypes$],([tt,rt,nt,ot,it,st])=>this.validateNodeInputs(tt))}attemptToRenameStep(_e,et){if(!checkNodeNameValid(et))return`step name ${et} is not valid`;if(this.nodeVariants$.get(et))return`step with name ${et} already exists`;if(!this.nodeVariants$.get(_e))return`step ${_e} not found`;const rt=(ot,it,st)=>{const lt={...ot};return Object.keys(lt).forEach(ut=>{const ct=lt[ut],dt=getRefValueFromRaw(ct),[ft]=(dt==null?void 0:dt.split("."))??[];ft===it&&(lt[ut]=ct.replace(`${it}`,`${st}`))}),lt},nt=(ot,it,st)=>{if(!ot)return;const lt={};return Object.entries(ot).forEach(([ut,ct])=>{var dt,ft,pt;lt[ut]={...ct,node:{...ct.node,name:((dt=ct.node)==null?void 0:dt.name)===it?st:(ft=ct.node)==null?void 0:ft.name,inputs:rt(((pt=ct.node)==null?void 0:pt.inputs)??{},it,st)}}}),lt};reactDomExports.unstable_batchedUpdates(()=>{this.nodeVariants$.updateState(ot=>ot.mapEntries(([it,st])=>{const lt={...st,variants:nt(st.variants,_e,et)};return[it===_e?et:it,lt]})),this.flowGraphLayout$.updateState(ot=>({...ot,nodeLayouts:renameKeyInObject((ot==null?void 0:ot.nodeLayouts)??{},_e,et)})),this.flowUIHint$.updateState(ot=>({...ot,nodes:renameKeyInObject((ot==null?void 0:ot.nodes)??{},_e,et)})),this.currentNodeId$.getSnapshot()===_e&&this.currentNodeId$.next(et),this.selectedStepId$.getSnapshot()===_e&&this.selectedStepId$.next(et),this.nodeRuns$.getSnapshot().forEach((ot,it)=>{if(ot.node===_e){const[,st,lt,ut]=it.split("#"),ct=parseInt(st,10);this.nodeRuns$.set(this.getNodeRunKey(et,isNaN(ct)?0:ct,lt,ut),{...ot,node:et}),this.nodeRuns$.delete(it)}})})}acceptFlowEdit(_e,et){_e!==this.viewType&&this.loadFlow(et)}loadFlow(_e){this.loaded=!1;try{reactDomExports.unstable_batchedUpdates(()=>{this.baseEntity=_e,this.owner$.next(_e.owner),this.isArchived$.next(_e.isArchived??!1),this.loadFlowDto(_e),_e.flowRunResult&&this.loadStatus(_e.flowRunResult)}),this.loaded=!0}catch(et){throw this.loaded=!0,et}}loadCodeTool(_e,et){this.codeToolsDictionary$.set(_e,et)}loadPackageTool(_e,et){this.packageToolsDictionary$.set(_e,et)}toBatchRequestData(){return{flow:{flowGraph:this.toFlowGraph(),nodeVariants:this.toNodeVariants(),flowGraphLayout:this.flowGraphLayout$.getSnapshot()},flowSubmitRunSettings:{...this.toFlowRunSettings()},flowRunDisplayName:this.name$.getSnapshot()}}toAddOnEvaluationRequestData(){return{flowSubmitRunSettings:{...this.toFlowRunSettings()}}}loadStatus(_e){var nt;this.clearStatus();let et=0;const tt=[],rt=new Map;if((nt=_e.flow_runs)!=null&&nt.length){for(const ot of _e.flow_runs)ot.index===null?rt.set(ot.run_id,ot):(et=ot.index,tt.push(ot));tt.sort((ot,it)=>{var st;return ot.root_run_id===it.root_run_id?(ot.index??0)-(it.index??0):ot.variant_id&&it.variant_id?ot.variant_id.localeCompare(it.variant_id):((st=ot.root_run_id)==null?void 0:st.localeCompare((it==null?void 0:it.root_run_id)??""))??0}),this.flowRuns$.next(tt),this.rootFlowRunMap$.next(Map$1(rt))}_e.flowRunType&&this.flowRunType$.next(_e.flowRunType),_e.runStatus&&this.runStatus$.next(_e.runStatus),this.loadNodesStatus(_e.node_runs||[]),this.selectedBulkIndex$.next(et)}loadNodesStatus(_e){const et=this.tuningNodeNames$.getSnapshot()[0];_e.forEach(tt=>{const rt=tt.node===et,nt=this.getDefaultVariantId(tt.node),ot=tt.variant_id||nt,it=rt?ot:nt,st=this.getNodeRunKey(tt.node,tt.index??0,it,ot);this.nodeRuns$.set(st,tt)})}loadSingleNodeRunStatus(_e,et,tt){this.resetNodesStatus(_e,et),tt.forEach(rt=>{const nt=this.getDefaultVariantId(rt.node),ot=rt.variant_id||nt,it=rt.variant_id||nt,st=this.getNodeRunKey(rt.node,rt.index??0,it,ot);this.nodeRuns$.set(st,rt)})}resetNodesStatus(_e,et){this.nodeRuns$.updateState(tt=>tt.filter(rt=>{if(rt.node!==_e)return!0;const nt=this.getDefaultVariantId(rt.node);return(rt.variant_id||nt)!==et}))}clearStatus(){this.selectedBulkIndex$.next(void 0),this.nodeRuns$.clear(),this.flowRuns$.next([]),this.rootFlowRunMap$.clear()}getDefaultVariantId(_e){var et;return((et=this.nodeVariants$.get(_e))==null?void 0:et.defaultVariantId)||BASELINE_VARIANT_ID}setStepInput(_e,et,tt,rt){const nt=this.getNode(_e,rt);if(!(nt!=null&&nt.name))return;const ot={...nt,inputs:{...nt.inputs,[et]:tt}};this.setNode(_e,rt,ot)}removeStepInputs(_e,et,tt){const rt=this.getNode(_e,tt);if(!(rt!=null&&rt.name))return;const nt={...rt.inputs};et.forEach(it=>{delete nt[it]});const ot={...rt,inputs:nt};this.setNode(_e,tt,ot)}renameStepInput(_e,et,tt){const rt=this.getNode(_e,BASELINE_VARIANT_ID);if(!(rt!=null&&rt.name))return;const nt={...rt,inputs:renameKeyInObject(rt.inputs??{},et,tt)};this.setNode(_e,BASELINE_VARIANT_ID,nt)}setStepActivate(_e,et,tt){const rt=this.getNode(_e,et);if(!(rt!=null&&rt.name))return;const nt={...rt,activate:tt};this.setNode(_e,et,nt)}setStepKeyValue(_e,et,tt,rt){const nt=this.getNode(_e,rt);if(!(nt!=null&&nt.name))return;const ot={...nt,[et]:tt};this.setNode(_e,rt,ot)}setStepSourcePath(_e,et,tt){const rt=this.getNode(_e,tt);if(!(rt!=null&&rt.name))return;const nt={...rt,source:{...rt.source,path:et}};this.setNode(_e,tt,nt)}setBatchInput(_e,et,tt){const rt=this.batchInputs$.getSnapshot();if(!rt[_e])return;const nt=[...rt];nt[_e]={...nt[_e],[et]:tt},this.batchInputs$.setState(nt)}setBulkRunTag(_e,et,tt){const rt=[...this.bulkRunTags$.getSnapshot()];if(!rt[_e])return;const nt={};nt[et]=tt,rt[_e]=nt,this.bulkRunTags$.next(rt)}deleteBulkRunTag(_e){const et=[...this.bulkRunTags$.getSnapshot()];et.splice(_e,1),this.bulkRunTags$.next(et)}addBulkRunTagRow(){const _e=this.bulkRunTags$.getSnapshot(),et={"":""};this.bulkRunTags$.next([..._e,et])}getNodeRunKey(_e,et,tt=BASELINE_VARIANT_ID,rt=BASELINE_VARIANT_ID){return`${_e}#${et}#${tt}#${rt}`}dispatch(_e){var nt;let et="";switch(_e.type){case GraphCanvasEvent.Click:this.currentNodeId$.next(void 0);break;case GraphNodeEvent.Click:this.currentNodeId$.next(_e.node.id,!0);break;case GraphNodeEvent.DragEnd:{et=_e.node.name??"";break}}const tt=this.canvasState$.getSnapshot(),rt=this.graphReducer(tt,_e);if(this.canvasState$.next(rt),et){const ot=rt.data.present.nodes.find(lt=>lt.name===et),it=this.flowGraphLayout$.getSnapshot(),st={...it,nodeLayouts:{...it==null?void 0:it.nodeLayouts,[et]:{...(nt=it==null?void 0:it.nodeLayouts)==null?void 0:nt[et],x:ot==null?void 0:ot.x,y:ot==null?void 0:ot.y}}};this.flowGraphLayout$.next(st)}}setGraphConfig(_e){this.graphConfig=_e;const et=this.canvasState$.getSnapshot();this.canvasState$.next({...et,settings:{...et.settings,graphConfig:_e}})}toFlowGraph(){const _e=this.nodeVariants$.getSnapshot(),et=getDefaultNodeList(List$1.of(..._e.keys()),_e);return{inputs:this.inputSpec$.getSnapshot().toJSON(),outputs:this.flowOutputs$.getSnapshot().toJSON(),nodes:et,tools:void 0}}toFlowGraphSnapshot(_e){const et=lodashExports.mapValues(this.inputSpec$.getSnapshot().toJSON(),st=>{st.default!==void 0&&(st.default=convertValByType(st.default,st.type));const{name:lt,id:ut,...ct}=st;return ct}),tt=lodashExports.mapValues(this.flowOutputs$.getSnapshot().toJSON(),st=>{const{name:lt,id:ut,...ct}=st;return ct}),nt=getNodesThatMoreThanOneVariant(_e).map(st=>st.nodeName),ot=getFlowSnapshotNodeList(List$1.of(...Object.keys(_e)),_e,nt),it=getVariantNodes(_e);return{inputs:et,outputs:tt,nodes:ot,node_variants:it}}toNodeVariants(){const _e=this.nodeVariants$.getSnapshot().toJSON(),et={};return Object.keys(_e).forEach(tt=>{const rt=_e[tt],nt={};Object.keys(rt.variants??{}).forEach(ot=>{const it=(rt.variants??{})[ot];nt[ot]={...it,node:it.node?this.pruneNodeInputs(it.node):void 0}}),et[tt]={...rt,variants:nt}}),et}toFlowRunSettings(){var _e,et;return{tuningNodeNames:this.tuningNodeNames$.getSnapshot(),variants:void 0,runtimeName:(_e=this.selectedRuntimeName$)==null?void 0:_e.getSnapshot(),description:this.bulkRunDescription$.getSnapshot(),tags:Object.assign({},...this.bulkRunTags$.getSnapshot()),...this.bulkRunDataReference$.getSnapshot()!==void 0?{batchDataInput:{dataUri:(et=this.bulkRunDataReference$.getSnapshot())==null?void 0:et.id}}:{batch_inputs:this.batchInputs$.getSnapshot()}}}toJSON(){const _e=this.toNodeVariants();return{...this.baseEntity,flow:{flowGraph:this.toFlowGraphSnapshot(_e)},flowName:this.name$.getSnapshot(),flowRunSettings:this.toFlowRunSettings()}}toFlowGraphLayout(){const _e=this.flowGraphLayout$.getSnapshot()??{},et=Array.from(this.nodeVariants$.getSnapshot().keys()),tt={..._e.nodeLayouts};return Object.keys(tt).forEach(rt=>{tt[rt]={...tt[rt],index:et.indexOf(rt)}}),{..._e,nodeLayouts:tt,orientation:this.orientation$.getSnapshot()}}toFlowUIHint(){return this.flowUIHint$.getSnapshot()??{nodes:{}}}updateToolCode(_e,et){const tt=this.codeToolsDictionary$.get(_e);tt&&this.codeToolsDictionary$.set(_e,{...tt,code:et})}updateToolStatus(_e,et){const tt=this.toolsStatus$.get(_e);this.toolsStatus$.set(_e,{...tt,...et})}updateFlowInput(_e,et){const tt=this.batchInputs$.getSnapshot(),rt=tt==null?void 0:tt[0];let nt=et;try{const ot=JSON.parse(et);nt=JSON.stringify(ot)}catch{nt=et}this.batchInputs$.next([{...rt,[_e]:nt},...tt.slice(1)])}addNewNode(_e,et){if(!_e.name)return;const tt=_e,rt={defaultVariantId:BASELINE_VARIANT_ID,variants:{[BASELINE_VARIANT_ID]:{node:tt}}};et?this.nodeVariants$.insertBefore(et,_e.name,rt):this.nodeVariants$.set(_e.name,rt)}patchEditData(_e){var et,tt,rt,nt;switch(_e.type){case"chatInput":{if(this.flowType$.getSnapshot()!==FlowType.Chat)return;const ot=this.batchInputs$.getSnapshot(),it=((et=this.getChatInputDefinition())==null?void 0:et.name)??DEFAULT_CHAT_INPUT_NAME;this.batchInputs$.next([{...ot[0],[it]:_e.value}]);break}case"chatHistory":{if(this.flowType$.getSnapshot()!==FlowType.Chat)return;const ot=this.batchInputs$.getSnapshot(),it=((tt=this.getChatHistoryDefinition())==null?void 0:tt.name)??DEFAULT_CHAT_HISTORY_NAME,st=((rt=this.getChatInputDefinition())==null?void 0:rt.name)??DEFAULT_CHAT_INPUT_NAME,lt=((nt=this.getChatOutputDefinition())==null?void 0:nt.name)??DEFAULT_CHAT_OUTPUT_NAME;this.batchInputs$.next([{...ot[0],[it]:[...ot[0][it],{inputs:{[st]:_e.value.chatInput},outputs:{[lt]:_e.value.chatOutput}}].slice(-10)}]);break}case"flowGraph":{try{this.loaded=!1,reactDomExports.unstable_batchedUpdates(()=>{this.loadFlorGraph(_e.value)})}finally{this.loaded=!0}break}default:{const ot=_e;throw new Error(`Didn't expect to get here: ${ot}`)}}}getChatInputDefinition(){return this.inputSpec$.getSnapshot().find(isChatInput)}getChatHistoryDefinition(){const _e=this.flowType$.getSnapshot();return this.inputSpec$.getSnapshot().find(et=>isChatHistory(_e,et))}getChatOutputDefinition(){return this.flowOutputs$.getSnapshot().find(isChatOutput)}clearChatMessages(){this.chatMessages$.next([]),this.syncChatMessagesToInputsValues([])}getProviderByConnection(_e){var ot;if(!_e)return;const et=this.connectionList$.getSnapshot(),tt=this.promptToolSetting$.getSnapshot(),rt=et.find(it=>it.connectionName===_e);if(!rt)return;const nt=(ot=tt==null?void 0:tt.providers)==null?void 0:ot.find(it=>{var st;return rt.connectionType&&((st=it.connection_type)==null?void 0:st.includes(rt.connectionType))});if(nt)return nt.provider}addFlowInput(_e,et){this.inputSpec$.set(_e,{...et,name:_e,id:(et==null?void 0:et.id)??getRandomInputDefinitionId()})}addFlowOutput(_e,et){this.flowOutputs$.set(_e,{...et,name:_e,id:(et==null?void 0:et.id)??getRandomOutputDefinitionId()})}loadFlorGraph(_e){var nt;const et=(_e==null?void 0:_e.nodes)||[],tt=(_e==null?void 0:_e.outputs)||{},rt=(_e==null?void 0:_e.inputs)||{};this.nodeVariants$.clear(),et.forEach(ot=>{ot.name&&(this.nodeVariants$.get(ot.name)||this.nodeVariants$.set(ot.name,{defaultVariantId:BASELINE_VARIANT_ID,variants:{[BASELINE_VARIANT_ID]:{node:ot}}}))}),(nt=Object.entries((_e==null?void 0:_e.node_variants)??{}))==null||nt.forEach(([ot,it])=>{const st={...it.variants};Object.entries(st).forEach(([lt,ut])=>{ut.node&&(ut.node.name=ot)}),this.nodeVariants$.set(ot,{defaultVariantId:it.default_variant_id??BASELINE_VARIANT_ID,variants:st})}),this.flowOutputs$.clear(),Object.keys(tt).forEach(ot=>{const it=tt[ot];it&&this.addFlowOutput(ot,it)}),this.inputSpec$.clear(),Object.keys(rt).forEach(ot=>{const it=rt[ot];it&&this.addFlowInput(ot,it)})}loadFlowDto(_e){var et,tt,rt,nt,ot,it,st,lt,ut,ct,dt,ft,pt,gt;if(this.name$.next(_e.flowName??""),this.flowType$.next(_e.flowType??FlowType.Default),this.loadFlorGraph((et=_e.flow)==null?void 0:et.flowGraph),(tt=_e.flow)!=null&&tt.nodeVariants&&((nt=Object.entries(((rt=_e.flow)==null?void 0:rt.nodeVariants)??{}))==null||nt.forEach(([vt,bt])=>{this.nodeVariants$.set(vt,{...bt,defaultVariantId:bt.defaultVariantId??BASELINE_VARIANT_ID})})),(it=(ot=_e.flow)==null?void 0:ot.flowGraphLayout)!=null&&it.nodeLayouts){const vt=(st=_e.flow)==null?void 0:st.flowGraphLayout;this.flowGraphLayout$.next(vt),vt.orientation&&this.orientation$.next(vt.orientation)}if(this.selectedRuntimeName$.setState(((lt=_e.flowRunSettings)==null?void 0:lt.runtimeName)??""),this.batchInputs$.setState(((ut=_e.flowRunSettings)==null?void 0:ut.batch_inputs)??[{}]),this.tuningNodeNames$.setState(((ct=_e.flowRunSettings)==null?void 0:ct.tuningNodeNames)??[]),this.bulkRunDescription$.next(_e.description??""),this.bulkRunTags$.next([]),_e.tags){const vt=[];Object.keys(_e.tags).forEach(bt=>{var _t;vt.push({[bt]:((_t=_e==null?void 0:_e.tags)==null?void 0:_t[bt])??""})}),this.bulkRunTags$.next(vt)}this.initNodeParameterTypes((dt=_e.flow)==null?void 0:dt.flowGraph),_e.flowType===FlowType.Chat&&(this.initChatFlow(_e),this.initChatMessages(((ft=_e.flowRunSettings)==null?void 0:ft.batch_inputs)??[{}])),this.language$.next((gt=(pt=_e.flow)==null?void 0:pt.flowGraph)==null?void 0:gt.language)}initNodeParameterTypes(_e){if(!_e)return;const et=this.nodeVariants$.getSnapshot().toJSON();let tt=Map$1(new Map);Object.keys(et).forEach(rt=>{const nt=et[rt];Object.keys(nt.variants??{}).forEach(ot=>{var st;const it=(nt.variants??{})[ot];if(it.node){const lt={inputs:{},activate:{is:void 0}},ut=this.getToolOfNode(it.node);if((it.node.type??(ut==null?void 0:ut.type))===ToolType.python){const ct=Object.keys((ut==null?void 0:ut.inputs)??{});Object.keys(it.node.inputs??{}).filter(pt=>!ct.includes(pt)).forEach(pt=>{var gt,vt;lt.inputs[pt]=inferTypeByVal((vt=(gt=it.node)==null?void 0:gt.inputs)==null?void 0:vt[pt])??ValueType.string})}lt.activate.is=inferTypeByVal((st=it.node.activate)==null?void 0:st.is)??ValueType.string,tt=tt.set(`${rt}#${ot}`,lt)}})}),this.nodeParameterTypes$.next(tt)}initChatFlow(_e){if(_e.flowType!==FlowType.Chat)return;this.inputSpec$.getSnapshot().some(nt=>isChatHistory(_e.flowType,nt))||(this.addFlowInput(DEFAULT_CHAT_HISTORY_NAME,{name:DEFAULT_CHAT_HISTORY_NAME,type:ValueType.list}),this.batchInputs$.updateState(nt=>[{...nt[0],[DEFAULT_CHAT_HISTORY_NAME]:[]},...nt.slice(1)])),this.inputSpec$.getSnapshot().some(nt=>isChatInput(nt))||this.addFlowInput(DEFAULT_CHAT_INPUT_NAME,{name:DEFAULT_CHAT_INPUT_NAME,type:ValueType.string,is_chat_input:!0}),this.flowOutputs$.getSnapshot().some(nt=>isChatOutput(nt))||this.addFlowOutput(DEFAULT_CHAT_OUTPUT_NAME,{name:DEFAULT_CHAT_OUTPUT_NAME,type:ValueType.string,is_chat_output:!0})}initChatMessages(_e){var it,st,lt;const et=((it=this.getChatHistoryDefinition())==null?void 0:it.name)??DEFAULT_CHAT_HISTORY_NAME,tt=_e[0][et];if(!Array.isArray(tt))return;const rt=((st=this.getChatInputDefinition())==null?void 0:st.name)??DEFAULT_CHAT_INPUT_NAME,nt=((lt=this.getChatOutputDefinition())==null?void 0:lt.name)??DEFAULT_CHAT_OUTPUT_NAME,ot=parseChatMessages(rt,nt,tt);this.chatMessages$.next(ot),this.syncChatMessagesToInputsValues(ot)}syncChatMessagesToInputsValues(_e){var tt,rt,nt;if(this.batchInputs$.getSnapshot().length<=1){const ot=((tt=this.getChatInputDefinition())==null?void 0:tt.name)??DEFAULT_CHAT_INPUT_NAME,it=((rt=this.getChatOutputDefinition())==null?void 0:rt.name)??DEFAULT_CHAT_OUTPUT_NAME,st=((nt=this.getChatHistoryDefinition())==null?void 0:nt.name)??DEFAULT_CHAT_HISTORY_NAME,lt=[];for(let ut=0;ut<_e.length;++ut){for(;ut<_e.length&&_e[ut].from!==ChatMessageFrom.User;++ut);if(ut+1<_e.length){const ct=_e[ut],dt=_e[ut+1];if(dt.from===ChatMessageFrom.Chatbot&&!dt.error){ut+=1;const ft=dt.extraData;lt.push({inputs:{...ft.flowInputs,[ot]:ct.content},outputs:{...ft.flowOutputs,[it]:dt.content}})}}}this.batchInputs$.updateState(ut=>[{...ut[0],[st]:lt}])}}getNode(_e,et){var tt,rt,nt;return(nt=(rt=(tt=this.nodeVariants$.get(_e))==null?void 0:tt.variants)==null?void 0:rt[et])==null?void 0:nt.node}setNode(_e,et,tt){var nt;const rt=this.nodeVariants$.get(_e);this.nodeVariants$.set(_e,{defaultVariantId:(rt==null?void 0:rt.defaultVariantId)??BASELINE_VARIANT_ID,variants:{...rt==null?void 0:rt.variants,[et]:{...(nt=rt==null?void 0:rt.variants)==null?void 0:nt[et],node:tt}}})}getAllLlmParameterKeys(){var _e;if(this._allLlmParameterKeys.length===0){const et=this.promptToolSetting$.getSnapshot();if(!et)return[];const tt=(_e=et.providers)==null?void 0:_e.flatMap(nt=>{var ot;return(ot=nt.apis)==null?void 0:ot.map(it=>it.parameters)}),rt=new Set(tt==null?void 0:tt.flatMap(nt=>Object.keys(nt??{})));this._allLlmParameterKeys=[...rt.values()]}return this._allLlmParameterKeys}pruneNodeInputs(_e){var ct,dt,ft,pt;const et=_e?this.getToolOfNode(_e):void 0,tt=this.promptToolSetting$.getSnapshot(),rt=this.connectionList$.getSnapshot(),nt=this.connectionSpecList$.getSnapshot();if(!et||!tt)return _e;if((_e.type??et.type)===ToolType.python&&et.enable_kwargs){const gt={};return Object.keys(_e.inputs??{}).forEach(vt=>{var bt,_t,xt,yt;if(((bt=_e.inputs)==null?void 0:bt[vt])!==void 0){const Et=(_t=et.inputs)==null?void 0:_t[vt];gt[vt]=convertValByType((xt=_e.inputs)==null?void 0:xt[vt],(yt=Et==null?void 0:Et.type)==null?void 0:yt[0])}}),{..._e,inputs:gt}}const ot=this.getProviderByConnection(_e.connection??"");if((_e.type??et.type)===ToolType.llm&&(!ot||!_e.api))return _e;const it=(_e.type??et.type)===ToolType.llm,st=it?(pt=(ft=(dt=(ct=tt==null?void 0:tt.providers)==null?void 0:ct.find(gt=>gt.provider===ot))==null?void 0:dt.apis)==null?void 0:ft.find(gt=>gt.api===_e.api))==null?void 0:pt.parameters:void 0,lt=new Set(filterNodeInputsKeys(et.inputs,_e.inputs,rt,nt).concat(it?this.getAllLlmParameterKeys():[])),ut={};return Object.keys(_e.inputs??{}).forEach(gt=>{var vt,bt,_t,xt;if(lt.has(gt)&&((vt=_e.inputs)==null?void 0:vt[gt])!==void 0){const yt=((bt=et.inputs)==null?void 0:bt[gt])??(st==null?void 0:st[gt]);ut[gt]=convertValByType((_t=_e.inputs)==null?void 0:_t[gt],(xt=yt==null?void 0:yt.type)==null?void 0:xt[0])}}),{..._e,inputs:ut}}getToolOfNode(_e){var rt,nt;const et=this.codeToolsDictionary$.get(((rt=_e.source)==null?void 0:rt.path)??""),tt=this.packageToolsDictionary$.get(((nt=_e.source)==null?void 0:nt.tool)??"");return resolveTool(_e,et,tt,ot=>this.codeToolsDictionary$.get(ot))}validateNodeInputs(_e){const et=new Map,tt=this.getNodesInCycle(_e),rt=this.connectionList$.getSnapshot(),nt=this.connectionSpecList$.getSnapshot(),ot=[];return this.inputSpec$.getSnapshot().forEach((st,lt)=>{const ut=st.default,ct=st.type;if(ut!==void 0&&ut!==""&&!isTypeValid(ut,ct)){const dt={section:"inputs",parameterName:lt,type:ValidationErrorType.InputInvalidType,message:"Input type is not valid"};ot.push(dt)}}),ot.length>0&&et.set(`${FLOW_INPUT_NODE_NAME}#`,ot),Array.from(_e.values()).forEach(st=>{const{variants:lt={}}=st;Object.keys(lt).forEach(ut=>{var bt,_t,xt;const ct=lt[ut],{node:dt}=ct,ft=dt?this.getToolOfNode(dt):void 0,pt=filterNodeInputsKeys(ft==null?void 0:ft.inputs,dt==null?void 0:dt.inputs,rt,nt);if(!dt||!dt.name)return;if(!ft){const yt=dt;et.set(`${dt.name}#${ut}`,[{type:ValidationErrorType.MissingTool,message:`Can't find tool ${((bt=yt==null?void 0:yt.source)==null?void 0:bt.tool)??((_t=yt==null?void 0:yt.source)==null?void 0:_t.path)}`}]);return}const gt=[],vt=this.validateNodeConfig(dt,ft);if(vt&>.push(vt),pt.forEach(yt=>{const Et=this.validateNodeInputRequired(ft,dt,yt);Et&>.push(Et)}),dt.inputs&>.push(...Object.keys(dt.inputs).map(yt=>{if(!pt.includes(yt)&&!ft.enable_kwargs)return;const{isReference:Et,error:St}=this.validateNodeInputReference(dt,"inputs",yt,_e,tt);if(St)return St;if(!Et)return this.validateNodeInputType(ft,dt,ut,yt)}).filter(Boolean)),dt.activate){const{error:yt}=this.validateNodeInputReference(dt,"activate","when",_e,tt);yt&>.push(yt);const Et=dt.activate.is,St=(xt=this.nodeParameterTypes$.get(`${dt.name}#${ut}`))==null?void 0:xt.activate.is;if(!isTypeValid(Et,St)){const $t={section:"activate",parameterName:"is",type:ValidationErrorType.InputInvalidType,message:"Input type is not valid"};gt.push($t)}}et.set(`${dt.name}#${ut}`,gt)})}),et}getNodesInCycle(_e){const et=getDefaultNodeList(List$1.of(..._e.keys()),_e),tt=new Map;et.forEach(lt=>{var ct;const ut=(dt,ft,pt)=>{const gt=getRefValueFromRaw(pt),[vt]=(gt==null?void 0:gt.split("."))??[];!vt||isFlowInput(vt)||tt.set(`${lt.name}.${dt}.${ft}`,vt)};Object.keys((lt==null?void 0:lt.inputs)??{}).forEach(dt=>{var pt;const ft=(pt=lt.inputs)==null?void 0:pt[dt];ut("inputs",dt,ft)}),ut("activate","when",(ct=lt.activate)==null?void 0:ct.when)});const rt=new Map,nt=new Map,ot=new Map,it=new Map;return et.forEach(lt=>{const ut=lt.name;ut&&(rt.set(ut,0),nt.set(ut,0),ot.set(ut,[]),it.set(ut,[]))}),et.forEach(lt=>{const ut=lt.name;if(!ut)return;const ct=(dt,ft)=>{const pt=tt.get(`${ut}.${dt}.${ft}`);pt&&(rt.set(ut,(rt.get(ut)??0)+1),nt.set(pt,(nt.get(pt)??0)+1),ot.set(pt,[...ot.get(pt)??[],ut]),it.set(ut,[...it.get(ut)??[],pt]))};Object.keys((lt==null?void 0:lt.inputs)??{}).forEach(dt=>{ct("inputs",dt)}),ct("activate","when")}),getCycle(rt,ot,nt,it)}validateNodeConfig(_e,et){var rt,nt,ot,it,st,lt,ut;const tt=this.promptToolSetting$.getSnapshot();if((_e.type??(et==null?void 0:et.type))===ToolType.llm){if(!_e.connection)return{parameterName:"connection",type:ValidationErrorType.NodeConfigInvalid,message:"connection is required"};if(!this.connectionList$.getSnapshot().some(gt=>gt.connectionName===_e.connection))return{parameterName:"connection",type:ValidationErrorType.NodeConfigInvalid,message:"connection is not valid"};if(!_e.api)return{parameterName:"api",type:ValidationErrorType.NodeConfigInvalid,message:"api is required"};const ct=this.getProviderByConnection(_e.connection),dt=(it=(ot=(nt=(rt=tt==null?void 0:tt.providers)==null?void 0:rt.find(gt=>gt.provider===ct))==null?void 0:nt.apis)==null?void 0:ot.find(gt=>gt.api===_e.api))==null?void 0:it.parameters;if((dt==null?void 0:dt.model)&&!((st=_e.inputs)!=null&&st.model))return{parameterName:"model",type:ValidationErrorType.NodeConfigInvalid,message:"model is required"};if((dt==null?void 0:dt.deployment_name)&&!((lt=_e.inputs)!=null&<.deployment_name))return{parameterName:"deployment_name",type:ValidationErrorType.NodeConfigInvalid,message:"deployment_name is required"}}if(et&&((ut=et==null?void 0:et.connection_type)!=null&&ut.length)&&!_e.connection)return{parameterName:"connection",type:ValidationErrorType.NodeConfigInvalid,message:"connection is required"}}validateNodeInputRequired(_e,et,tt){var nt,ot,it;if(((ot=(nt=_e.inputs)==null?void 0:nt[tt])==null?void 0:ot.default)!==void 0)return;const rt=(it=et.inputs)==null?void 0:it[tt];if(rt===void 0||rt==="")return{section:"inputs",parameterName:tt,type:ValidationErrorType.InputEmpty,message:"Input cannot be empty"}}validateNodeInputReference(_e,et,tt,rt,nt){var ct;const ot=(ct=_e==null?void 0:_e[et])==null?void 0:ct[tt],it=getRefValueFromRaw(ot),[st,lt]=(it==null?void 0:it.split("."))??[];return st?isFlowInput(st)?this.inputSpec$.get(lt)?{isReference:!0,error:void 0}:{isReference:!0,error:{section:et,parameterName:tt,type:ValidationErrorType.InputDependencyNotFound,message:`${it} is not a valid flow input`}}:st===_e.name?{isReference:!0,error:{section:et,parameterName:tt,type:ValidationErrorType.InputSelfReference,message:"Input cannot reference itself"}}:rt.get(st)?_e.name&&nt.has(_e.name)&&nt.has(st)?{isReference:!0,error:{section:et,parameterName:tt,type:ValidationErrorType.CircularDependency,message:"Input cannot reference a node in a cycle"}}:{isReference:!0,error:void 0}:{isReference:!0,error:{section:et,parameterName:tt,type:ValidationErrorType.InputDependencyNotFound,message:`${st} is not a valid node name`}}:{isReference:!1,error:void 0}}validateNodeInputType(_e,et,tt,rt){var st,lt,ut,ct,dt;const nt=(st=et.inputs)==null?void 0:st[rt];if(!nt)return;const ot=(lt=_e==null?void 0:_e.inputs)==null?void 0:lt[rt],it=((ut=ot==null?void 0:ot.type)==null?void 0:ut[0])??((dt=(ct=this.nodeParameterTypes$.get(`${et.name}#${tt}`))==null?void 0:ct.inputs)==null?void 0:dt[rt]);if(!(!nt||!_e||!it)&&!isTypeValid(nt,it))return{section:"inputs",parameterName:rt,type:ValidationErrorType.InputInvalidType,message:"Input type is not valid"}}};_a$5=SINGLETON,Vp[_a$5]=!0;let BaseFlowViewModel=Vp;class DefaultFlowViewModel extends BaseFlowViewModel{constructor(){super(...arguments),this.viewType="default"}fetchConnectionList(){}fetchPromptToolSetting(){}openRunListView(){}deployFlow(){}setSelectedStepId(){}notifyFlowChange(){}notifyLayoutChange(){}notifyUIHintChange(){}}createInjectionToken("FlowViewModel",new DefaultFlowViewModel);function useInjected(...j){const _e=reactExports.useContext(ServicesContext);return reactExports.useMemo(()=>j.map(et=>{try{return _e.resolve(et)}catch(tt){throw[et,tt]}}),[_e].concat(j))}var shim$1={exports:{}},useSyncExternalStoreShim_production_min={};/** + `):"",this.name="UnsubscriptionError",this.errors=_e,this}return j.prototype=Object.create(Error.prototype),j}(),UnsubscriptionError=UnsubscriptionErrorImpl,Subscription=function(){function j(_e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,_e&&(this._ctorUnsubscribe=!0,this._unsubscribe=_e)}return j.prototype.unsubscribe=function(){var _e;if(!this.closed){var et=this,tt=et._parentOrParents,rt=et._ctorUnsubscribe,nt=et._unsubscribe,ot=et._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,tt instanceof j)tt.remove(this);else if(tt!==null)for(var it=0;it0?this._next(et.shift()):this.active===0&&this.hasCompleted&&this.destination.complete()},_e}(SimpleOuterSubscriber);function mergeAll(j){return j===void 0&&(j=Number.POSITIVE_INFINITY),mergeMap(identity$5,j)}function merge$2(){for(var j=[],_e=0;_e1&&typeof j[j.length-1]=="number"&&(et=j.pop())):typeof rt=="number"&&(et=j.pop()),tt===null&&j.length===1&&j[0]instanceof Observable$2?j[0]:mergeAll(et)(fromArray(j,tt))}function filter(j,_e){return function(tt){return tt.lift(new FilterOperator(j,_e))}}var FilterOperator=function(){function j(_e,et){this.predicate=_e,this.thisArg=et}return j.prototype.call=function(_e,et){return et.subscribe(new FilterSubscriber(_e,this.predicate,this.thisArg))},j}(),FilterSubscriber=function(j){__extends$2(_e,j);function _e(et,tt,rt){var nt=j.call(this,et)||this;return nt.predicate=tt,nt.thisArg=rt,nt.count=0,nt}return _e.prototype._next=function(et){var tt;try{tt=this.predicate.call(this.thisArg,et,this.count++)}catch(rt){this.destination.error(rt);return}tt&&this.destination.next(et)},_e}(Subscriber);function debounceTime(j,_e){return _e===void 0&&(_e=async),function(et){return et.lift(new DebounceTimeOperator(j,_e))}}var DebounceTimeOperator=function(){function j(_e,et){this.dueTime=_e,this.scheduler=et}return j.prototype.call=function(_e,et){return et.subscribe(new DebounceTimeSubscriber(_e,this.dueTime,this.scheduler))},j}(),DebounceTimeSubscriber=function(j){__extends$2(_e,j);function _e(et,tt,rt){var nt=j.call(this,et)||this;return nt.dueTime=tt,nt.scheduler=rt,nt.debouncedSubscription=null,nt.lastValue=null,nt.hasValue=!1,nt}return _e.prototype._next=function(et){this.clearDebounce(),this.lastValue=et,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(dispatchNext,this.dueTime,this))},_e.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},_e.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var et=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(et)}},_e.prototype.clearDebounce=function(){var et=this.debouncedSubscription;et!==null&&(this.remove(et),et.unsubscribe(),this.debouncedSubscription=null)},_e}(Subscriber);function dispatchNext(j){j.debouncedNext()}function e$4(){return e$4=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{const it=tt.singletonCache.get(ot)||tt.requestCache.get(ot)||tt.transientCache.get(ot);it&&(nt.proxyTarget.current=it)}),tt.postConstruct.forEach(nt=>{nt.postConstruct()}),this.currentCtx=null,rt}child(){const _e=new this.constructor;return _e.parent=this,_e}getParent(){return this.parent}getInjectable(_e){var et;const tt=this.pool.get(_e);if(tt)return{value:tt,fromParent:!1};const rt=(et=this.parent)==null?void 0:et.getInjectable(_e);return rt?{value:rt.value,fromParent:!0}:void 0}_resolve(_e,et,tt){const rt=this.getInjectable(_e);if((et==null?void 0:et.optional)===!0&&!rt)return;if(!rt)throw new Error(`Key: ${a$1(_e)} not found`);const{value:{value:nt,scope:ot,type:it},fromParent:st}=rt;let lt,ut=!1;if(it===h$9.VALUE)return nt;{const ct=tt.requestedKeys.get(_e);if(ct){if(!ct.constructed){if(!et.lazy&&!st){const dt=Array.from(tt.requestedKeys.entries()).pop(),ft=dt?`[ ${String(dt[0])}: ${dt[1].value.name} ]`:"";throw new Error(`Circular reference detected: ${ft} -> [ ${a$1(_e)}: ${nt.name} ]`)}ut=!0}}else tt.requestedKeys.set(_e,{constructed:!1,value:nt})}return lt=ut?()=>this.createLazy(_e,it,tt):()=>this.create(_e,rt.value,tt),this.run(ot,_e,lt,tt)}resolveDeps(_e,et){const tt=[];for(const rt of _e){const{key:nt,options:ot}=c$7(rt);if(Array.isArray(nt)){const it=[];for(const st of nt){let lt=et.singletonCache.get(st.key);lt===void 0&&(lt=this._resolve(st.key,e$4({},st.options),et)),lt===void 0&&ot.removeUndefined||it.push(lt)}tt.push(it.length?it:ot.setToUndefinedIfEmpty?void 0:it)}else{let it=et.singletonCache.get(nt);it===void 0&&(it=this._resolve(nt,e$4({},ot),et)),tt.push(it)}}return tt}createLazy(_e,et,tt){const rt=tt.delayed.get(_e);if(rt)return rt.proxy;const nt=et===h$9.CLASS?{}:function(){},ot=function(it,st,lt){function ut(){if(!it.current)throw new Error(`Lazy target for key:${String(lt)} not yet set`);return it.current}return new Proxy(it,{apply:function(ct,dt){const ft=ut();return Reflect.apply(ft,st?ft:void 0,dt)},construct:function(ct,dt){return Reflect.construct(ut(),dt)},get:function(ct,dt,ft){return dt===t$8?ct.current:dt===n$9||Reflect.get(ut(),dt,ft)},set:function(ct,dt,ft){return Reflect.set(dt==="current"?ct:ut(),dt,ft)},defineProperty:function(ct,dt,ft){return Reflect.defineProperty(ut(),dt,ft)},deleteProperty:function(ct,dt){return Reflect.deleteProperty(ut(),dt)},getPrototypeOf:function(ct){return Reflect.getPrototypeOf(ut())},setPrototypeOf:function(ct,dt){return Reflect.setPrototypeOf(ut(),dt)},getOwnPropertyDescriptor:function(ct,dt){return Reflect.getOwnPropertyDescriptor(ut(),dt)},has:function(ct,dt){return Reflect.has(ut(),dt)},isExtensible:function(ct){return Reflect.isExtensible(ut())},ownKeys:function(ct){return Reflect.ownKeys(ut())},preventExtensions:function(ct){return Reflect.preventExtensions(ut())}})}(nt,et===h$9.CLASS,_e);return tt.delayed.set(_e,{proxy:ot,proxyTarget:nt}),ot}create(_e,et,tt){const{beforeResolve:rt,afterResolve:nt,value:ot,type:it}=et,st=ot.inject;let lt=[];st&&(lt=Array.isArray(st)?this.resolveDeps(st,tt):st.fn({container:this,ctx:tt.ctx},...this.resolveDeps(st.deps,tt)));const ut=rt?rt({container:this,value:ot.original,ctx:tt.ctx},...lt):ot(...lt);return nt&&nt({container:this,value:ut,ctx:tt.ctx}),tt.requestedKeys.get(_e).constructed=!0,it==="CLASS"&&"postConstruct"in ut&&tt.postConstruct.push(ut),ut}run(_e,et,tt,rt){if(_e===f$6.SINGLETON||_e===f$6.CONTAINER_SINGLETON){var nt;if(!this.pool.has(et)&&_e===f$6.SINGLETON)return(nt=this.parent)==null?void 0:nt.resolve(et);const it=rt.singletonCache.get(et);if(it!==void 0)return it===p$8?void 0:it;{let st=tt();return st===void 0&&(st=p$8),this.singletonCache.set(et,st),st}}if(f$6.REQUEST===_e){const it=rt.requestCache.get(et);if(it!==void 0)return it===p$8?void 0:it;{let st=tt();return st===void 0&&(st=p$8),rt.requestCache.set(et,st),st}}const ot=tt();return rt.transientCache.set(et,ot),ot}};function isClassProvider(j){return hasOwn$1(j,"useClass")}function isFactoryProvider(j){return hasOwn$1(j,"useFactory")}function isValueProvider(j){return hasOwn$1(j,"useValue")}function isTokenProvider(j){return hasOwn$1(j,"useToken")}const SINGLETON=Symbol("singleton");function isConstructor(j){return typeof j=="function"&&!!j.inject}function getClassScope(j){return j[SINGLETON]?"SINGLETON":j.scope?j.scope:"TRANSIENT"}class DependencyContainer extends d$2{constructor(){super(...arguments),this.name="DependencyContainer"}bindValue(_e,et){return this.has(_e,!1)&&this.unbind(_e),super.bindValue(_e,et)}bindClass(_e,et,tt){const rt=(tt==null?void 0:tt.scope)??getClassScope(_e);return super.bindClass(_e,et,{...tt,scope:rt})}register(_e,et){if(isValueProvider(et))this.bindValue(_e,et.useValue);else if(isFactoryProvider(et)){const{useFactory:tt}=et;this.bindFactory(_e,{value:tt,inject:[ContainerToken]},{scope:et.scope})}else if(isTokenProvider(et))this.bindFactory(_e,{value:tt=>tt,inject:[et.useToken]});else if(isClassProvider(et)){const tt=et.scope??getClassScope(et.useClass);this.bindClass(_e,et.useClass,{scope:tt})}}_resolve(_e,et,tt){if(!this.getInjectable(_e)&&isConstructor(_e)){const rt=getClassScope(_e);this.bindClass(_e,_e,{scope:rt})}return super._resolve(_e,et,tt)}}const getGlobalContainer=()=>{const j=new DependencyContainer;return j.name="global",j},container=getGlobalContainer();function createInjectionToken(j,_e){return container.bindValue(j,_e),j}const ContainerToken=createInjectionToken("DependencyContainer",container),ServicesContext=reactExports.createContext(container),createRegistry=({provide:j,name:_e})=>({containerRef:tt,onInitialize:rt,onDispose:nt,children:ot})=>{const it=reactExports.useContext(ServicesContext),st=reactExports.useMemo(()=>{const lt=it.child();return _e&&(lt.name=_e),j==null||j.forEach(ut=>{lt.register(ut.token,ut)}),lt.bindValue(ContainerToken,lt),rt==null||rt(lt),lt},[rt,it]);return reactExports.useImperativeHandle(tt,()=>st,[st]),reactExports.useEffect(()=>()=>{nt==null||nt(st),st.unbindAll(!0)},[st]),jsxRuntimeExports.jsx(ServicesContext.Provider,{value:st,children:ot})};createInjectionToken("isControlFlowEnabledToken",!1);createInjectionToken("isDoWhileLoopEnabledToken",!1);createInjectionToken("isAnnotationEnabledToken",!1);createInjectionToken("isDesignerUnifiedSubmissionFlowEnabledToken",!1);createInjectionToken("isPipelineComputeDatastoreEnabledToken",!1);createInjectionToken("TransactionalAuthoringEnabled",!1);createInjectionToken("ComponentSettingsEnabled",!1);createInjectionToken("isPipelineOwnerToken",!1);createInjectionToken("isExecutionPhaseEnabledToken",!1);createInjectionToken("isPipelineStreamingEnabledToken",!1);createInjectionToken("useFocusedNodeId",()=>{});createInjectionToken("useIsInSearchResult",()=>!1);createInjectionToken("dismissCompareCheckListPanel",()=>null);const promptFlowGraphReducer=j=>(_e,et)=>j(_e,et),graphReducer=()=>getGraphReducer(promptFlowGraphReducer);let Computed$1=class ov extends Observable$2{constructor(_e,et){super(tt=>this.state$.subscribe(tt)),this.getSnapshot=()=>this.state$.getValue(),this.state$=new BehaviorSubject(_e),this.subscription=et.subscribe(this.state$)}static fromStates(_e,et){const tt=et(_e.map(nt=>nt.getSnapshot())),rt=combineLatest(_e).pipe(map$3(et));return new ov(tt,rt)}destroy(){this.subscription.unsubscribe()}},State$1=class extends BehaviorSubject{constructor(){super(...arguments),this.getState=()=>this.getValue(),this.setState=_e=>{this.next(_e)},this.updateState=_e=>{this.next(_e(this.getValue()))},this.getSnapshot=()=>this.getValue()}next(_e,et){!et&&this.value===_e||super.next(_e)}copyFrom(_e){this.next(_e.getSnapshot())}};const Wp=class Wp{constructor(){this.nodesIndex$=new State$1(List$1()),this.allNodeNames$=Computed$1.fromStates([],()=>List$1()),this.orientation$=new State$1(Orientation$1.Vertical),this.language$=new State$1(void 0)}tweakFlattenNodeOrder(_e,et){const tt=this.nodesIndex$.getSnapshot(),rt=tt.findIndex(ot=>ot===_e),nt=rt+et;if(rt>=0&&nt>=0&&nt(this.addListener(_e,et),et.next(this.get(_e)),()=>{this.removeListener(_e,et)}))}notify(_e){var et;(et=this.listeners.get(_e))==null||et.forEach(tt=>{tt.next(this.get(_e))})}next(_e){const et=this.getSnapshot();super.next(_e);const tt=new Set;et.forEach((rt,nt)=>{_e.has(nt)||tt.add(nt)}),_e.forEach((rt,nt)=>{et.has(nt)&&Object.is(et.get(nt),rt)||tt.add(nt)}),tt.forEach(rt=>{this.notify(rt)})}addListener(_e,et){let tt=this.listeners.get(_e);tt||(tt=new Set,this.listeners.set(_e,tt)),tt.add(et)}removeListener(_e,et){const tt=this.listeners.get(_e);tt&&(tt.delete(et),tt.size===0&&this.listeners.delete(_e))}}class ObservableMap extends ObservableCollection{constructor(){super(Map$1())}set(_e,et){return this.updateState(tt=>tt.set(_e,et)),this}update(_e,et){return this.updateState(tt=>tt.update(_e,et)),this}delete(_e){return this.updateState(et=>et.delete(_e)),this}deleteAll(_e){return this.updateState(et=>et.deleteAll(_e)),this}clear(){return this.next(Map$1()),this}merge(_e){return this.updateState(et=>et.merge(_e)),this}}class ObservableOrderedMap extends ObservableCollection{constructor(){super(OrderedMap())}set(_e,et){return this.updateState(tt=>tt.set(_e,et)),this}update(_e,et){return this.updateState(tt=>tt.update(_e,et)),this}delete(_e){return this.updateState(et=>et.delete(_e)),this}deleteAll(_e){return this.updateState(et=>et.deleteAll(_e)),this}clear(){return this.next(OrderedMap()),this}merge(_e){return this.updateState(et=>et.merge(_e)),this}insertBefore(_e,et,tt){return this.updateState(rt=>OrderedMap().withMutations(nt=>{for(const[ot,it]of rt.entries())_e===ot&&nt.set(et,tt),nt.set(ot,it)})),this.notify(et),this}insertAfter(_e,et,tt){return this.updateState(rt=>OrderedMap().withMutations(nt=>{for(const[ot,it]of rt.entries())nt.set(ot,it),_e===ot&&nt.set(et,tt)})),this.notify(et),this}sortByValue(_e){return this.updateState(et=>et.sort(_e)),this}}var _a$5;const qp=class qp extends FlowViewModelShared{constructor(){super(),this.isWorkspaceReady$=new State$1(!1),this.currentNodeId$=new State$1(void 0),this.graphConfig=GraphConfigBuilder.default().build(),this.graphReducer=graphReducer(),this.isReadonly$=new State$1(!1),this.name$=new State$1(""),this.flowType$=new State$1(FlowType.Default),this.owner$=new State$1(void 0),this.isArchived$=new State$1(!1),this.selectedStepId$=new State$1(void 0),this.tools$=new ObservableOrderedMap,this.toolsStatus$=new ObservableOrderedMap,this.batchInputs$=new State$1([]),this.bulkRunDataReference$=new State$1(void 0),this.chatMessages$=new State$1([]),this.nodeVariants$=new ObservableOrderedMap,this.tuningNodeNames$=new State$1([]),this.inputSpec$=new ObservableOrderedMap,this.selectedBulkIndex$=new State$1(void 0),this.nodeRuns$=new ObservableOrderedMap,this.flowRuns$=new State$1([]),this.rootFlowRunMap$=new ObservableMap,this.flowOutputs$=new ObservableOrderedMap,this.connections$=new ObservableOrderedMap,this.promptToolSetting$=new State$1(void 0),this.userInfo$=new State$1(void 0),this.bulkRunDescription$=new State$1(""),this.bulkRunTags$=new State$1([]),this.nodeParameterTypes$=new ObservableMap,this.theme$=new State$1(void 0),this.selectedRuntimeName$=new State$1(void 0),this.connectionList$=new State$1([]),this.connectionSpecList$=new State$1([]),this.connectionDeployments$=new ObservableOrderedMap,this.connectionDeploymentsLoading$=new ObservableOrderedMap,this.runStatus$=new State$1(void 0),this.flowRunType$=new State$1(void 0),this.packageToolsDictionary$=new ObservableMap,this.codeToolsDictionary$=new ObservableMap,this.isToolsJsonReady$=new State$1(!1),this.flowGraphLayout$=new State$1(void 0),this.flowUIHint$=new State$1(void 0),this.isInitialized$=new State$1(!1),this.flowFeatures$=new State$1(new Set),this.loaded=!1,this._allLlmParameterKeys=[],new Set(dataReadonlyMode).add(GraphFeatures.AutoFit);const et=new Set;et.add(FlowFeatures.OpenCodeFileInNode),this.flowFeatures$.next(et),this.canvasState$=new State$1(createGraphState({settings:{graphConfig:this.graphConfig,canvasBoundaryPadding:{top:800,bottom:800}},data:GraphModel.empty()})),this.allNodeNames$=Computed$1.fromStates([this.nodeVariants$],([tt])=>List$1(Array.from(tt.keys()).filter(rt=>!!rt&&rt!==FLOW_INPUT_NODE_NAME&&rt!==FLOW_OUTPUT_NODE_NAME))),merge$2(this.flowOutputs$,this.batchInputs$,this.inputSpec$,this.selectedRuntimeName$,this.bulkRunTags$,this.nodeVariants$,this.codeToolsDictionary$,this.packageToolsDictionary$).pipe(filter(()=>this.loaded),filter(()=>this.isInitialized$.getSnapshot()),debounceTime(100)).subscribe(()=>{this.notifyFlowChange()}),merge$2(this.flowGraphLayout$,this.orientation$).pipe(debounceTime(100)).subscribe(()=>{this.notifyLayoutChange()}),merge$2(this.flowUIHint$).pipe(debounceTime(100)).subscribe(()=>{this.notifyUIHintChange()}),this.invalidStepInputs$=Computed$1.fromStates([this.nodeVariants$,this.codeToolsDictionary$,this.packageToolsDictionary$,this.connectionList$,this.inputSpec$,this.nodeParameterTypes$],([tt,rt,nt,ot,it,st])=>this.validateNodeInputs(tt))}attemptToRenameStep(_e,et){if(!checkNodeNameValid(et))return`step name ${et} is not valid`;if(this.nodeVariants$.get(et))return`step with name ${et} already exists`;if(!this.nodeVariants$.get(_e))return`step ${_e} not found`;const rt=(ot,it,st)=>{const lt={...ot};return Object.keys(lt).forEach(ut=>{const ct=lt[ut],dt=getRefValueFromRaw(ct),[ft]=(dt==null?void 0:dt.split("."))??[];ft===it&&(lt[ut]=ct.replace(`${it}`,`${st}`))}),lt},nt=(ot,it,st)=>{if(!ot)return;const lt={};return Object.entries(ot).forEach(([ut,ct])=>{var dt,ft,pt;lt[ut]={...ct,node:{...ct.node,name:((dt=ct.node)==null?void 0:dt.name)===it?st:(ft=ct.node)==null?void 0:ft.name,inputs:rt(((pt=ct.node)==null?void 0:pt.inputs)??{},it,st)}}}),lt};reactDomExports.unstable_batchedUpdates(()=>{this.nodeVariants$.updateState(ot=>ot.mapEntries(([it,st])=>{const lt={...st,variants:nt(st.variants,_e,et)};return[it===_e?et:it,lt]})),this.flowGraphLayout$.updateState(ot=>({...ot,nodeLayouts:renameKeyInObject((ot==null?void 0:ot.nodeLayouts)??{},_e,et)})),this.flowUIHint$.updateState(ot=>({...ot,nodes:renameKeyInObject((ot==null?void 0:ot.nodes)??{},_e,et)})),this.currentNodeId$.getSnapshot()===_e&&this.currentNodeId$.next(et),this.selectedStepId$.getSnapshot()===_e&&this.selectedStepId$.next(et),this.nodeRuns$.getSnapshot().forEach((ot,it)=>{if(ot.node===_e){const[,st,lt,ut]=it.split("#"),ct=parseInt(st,10);this.nodeRuns$.set(this.getNodeRunKey(et,isNaN(ct)?0:ct,lt,ut),{...ot,node:et}),this.nodeRuns$.delete(it)}})})}acceptFlowEdit(_e,et){_e!==this.viewType&&this.loadFlow(et)}loadFlow(_e){this.loaded=!1;try{reactDomExports.unstable_batchedUpdates(()=>{this.baseEntity=_e,this.owner$.next(_e.owner),this.isArchived$.next(_e.isArchived??!1),this.loadFlowDto(_e),_e.flowRunResult&&this.loadStatus(_e.flowRunResult)}),this.loaded=!0}catch(et){throw this.loaded=!0,et}}loadCodeTool(_e,et){this.codeToolsDictionary$.set(_e,et)}loadPackageTool(_e,et){this.packageToolsDictionary$.set(_e,et)}toBatchRequestData(){return{flow:{flowGraph:this.toFlowGraph(),nodeVariants:this.toNodeVariants(),flowGraphLayout:this.flowGraphLayout$.getSnapshot()},flowSubmitRunSettings:{...this.toFlowRunSettings()},flowRunDisplayName:this.name$.getSnapshot()}}toAddOnEvaluationRequestData(){return{flowSubmitRunSettings:{...this.toFlowRunSettings()}}}loadStatus(_e){var nt;this.clearStatus();let et=0;const tt=[],rt=new Map;if((nt=_e.flow_runs)!=null&&nt.length){for(const ot of _e.flow_runs)ot.index===null?rt.set(ot.run_id,ot):(et=ot.index,tt.push(ot));tt.sort((ot,it)=>{var st;return ot.root_run_id===it.root_run_id?(ot.index??0)-(it.index??0):ot.variant_id&&it.variant_id?ot.variant_id.localeCompare(it.variant_id):((st=ot.root_run_id)==null?void 0:st.localeCompare((it==null?void 0:it.root_run_id)??""))??0}),this.flowRuns$.next(tt),this.rootFlowRunMap$.next(Map$1(rt))}_e.flowRunType&&this.flowRunType$.next(_e.flowRunType),_e.runStatus&&this.runStatus$.next(_e.runStatus),this.loadNodesStatus(_e.node_runs||[]),this.selectedBulkIndex$.next(et)}loadNodesStatus(_e){const et=this.tuningNodeNames$.getSnapshot()[0];_e.forEach(tt=>{const rt=tt.node===et,nt=this.getDefaultVariantId(tt.node),ot=tt.variant_id||nt,it=rt?ot:nt,st=this.getNodeRunKey(tt.node,tt.index??0,it,ot);this.nodeRuns$.set(st,tt)})}loadSingleNodeRunStatus(_e,et,tt){this.resetNodesStatus(_e,et),tt.forEach(rt=>{const nt=this.getDefaultVariantId(rt.node),ot=rt.variant_id||nt,it=rt.variant_id||nt,st=this.getNodeRunKey(rt.node,rt.index??0,it,ot);this.nodeRuns$.set(st,rt)})}resetNodesStatus(_e,et){this.nodeRuns$.updateState(tt=>tt.filter(rt=>{if(rt.node!==_e)return!0;const nt=this.getDefaultVariantId(rt.node);return(rt.variant_id||nt)!==et}))}clearStatus(){this.selectedBulkIndex$.next(void 0),this.nodeRuns$.clear(),this.flowRuns$.next([]),this.rootFlowRunMap$.clear()}getDefaultVariantId(_e){var et;return((et=this.nodeVariants$.get(_e))==null?void 0:et.defaultVariantId)||BASELINE_VARIANT_ID}setStepInput(_e,et,tt,rt){const nt=this.getNode(_e,rt);if(!(nt!=null&&nt.name))return;const ot={...nt,inputs:{...nt.inputs,[et]:tt}};this.setNode(_e,rt,ot)}removeStepInputs(_e,et,tt){const rt=this.getNode(_e,tt);if(!(rt!=null&&rt.name))return;const nt={...rt.inputs};et.forEach(it=>{delete nt[it]});const ot={...rt,inputs:nt};this.setNode(_e,tt,ot)}renameStepInput(_e,et,tt){const rt=this.getNode(_e,BASELINE_VARIANT_ID);if(!(rt!=null&&rt.name))return;const nt={...rt,inputs:renameKeyInObject(rt.inputs??{},et,tt)};this.setNode(_e,BASELINE_VARIANT_ID,nt)}setStepActivate(_e,et,tt){const rt=this.getNode(_e,et);if(!(rt!=null&&rt.name))return;const nt={...rt,activate:tt};this.setNode(_e,et,nt)}setStepKeyValue(_e,et,tt,rt){const nt=this.getNode(_e,rt);if(!(nt!=null&&nt.name))return;const ot={...nt,[et]:tt};this.setNode(_e,rt,ot)}setStepSourcePath(_e,et,tt){const rt=this.getNode(_e,tt);if(!(rt!=null&&rt.name))return;const nt={...rt,source:{...rt.source,path:et}};this.setNode(_e,tt,nt)}setBatchInput(_e,et,tt){const rt=this.batchInputs$.getSnapshot();if(!rt[_e])return;const nt=[...rt];nt[_e]={...nt[_e],[et]:tt},this.batchInputs$.setState(nt)}setBulkRunTag(_e,et,tt){const rt=[...this.bulkRunTags$.getSnapshot()];if(!rt[_e])return;const nt={};nt[et]=tt,rt[_e]=nt,this.bulkRunTags$.next(rt)}deleteBulkRunTag(_e){const et=[...this.bulkRunTags$.getSnapshot()];et.splice(_e,1),this.bulkRunTags$.next(et)}addBulkRunTagRow(){const _e=this.bulkRunTags$.getSnapshot(),et={"":""};this.bulkRunTags$.next([..._e,et])}getNodeRunKey(_e,et,tt=BASELINE_VARIANT_ID,rt=BASELINE_VARIANT_ID){return`${_e}#${et}#${tt}#${rt}`}dispatch(_e){var nt;let et="";switch(_e.type){case GraphCanvasEvent.Click:this.currentNodeId$.next(void 0);break;case GraphNodeEvent.Click:this.currentNodeId$.next(_e.node.id,!0);break;case GraphNodeEvent.DragEnd:{et=_e.node.name??"";break}}const tt=this.canvasState$.getSnapshot(),rt=this.graphReducer(tt,_e);if(this.canvasState$.next(rt),et){const ot=rt.data.present.nodes.find(lt=>lt.name===et),it=this.flowGraphLayout$.getSnapshot(),st={...it,nodeLayouts:{...it==null?void 0:it.nodeLayouts,[et]:{...(nt=it==null?void 0:it.nodeLayouts)==null?void 0:nt[et],x:ot==null?void 0:ot.x,y:ot==null?void 0:ot.y}}};this.flowGraphLayout$.next(st)}}setGraphConfig(_e){this.graphConfig=_e;const et=this.canvasState$.getSnapshot();this.canvasState$.next({...et,settings:{...et.settings,graphConfig:_e}})}toFlowGraph(){const _e=this.nodeVariants$.getSnapshot(),et=getDefaultNodeList(List$1.of(..._e.keys()),_e);return{inputs:this.inputSpec$.getSnapshot().toJSON(),outputs:this.flowOutputs$.getSnapshot().toJSON(),nodes:et,tools:void 0}}toFlowGraphSnapshot(_e){const et=lodashExports.mapValues(this.inputSpec$.getSnapshot().toJSON(),st=>{st.default!==void 0&&(st.default=convertValByType(st.default,st.type));const{name:lt,id:ut,...ct}=st;return ct}),tt=lodashExports.mapValues(this.flowOutputs$.getSnapshot().toJSON(),st=>{const{name:lt,id:ut,...ct}=st;return ct}),nt=getNodesThatMoreThanOneVariant(_e).map(st=>st.nodeName),ot=getFlowSnapshotNodeList(List$1.of(...Object.keys(_e)),_e,nt),it=getVariantNodes(_e);return{inputs:et,outputs:tt,nodes:ot,node_variants:it}}toNodeVariants(){const _e=this.nodeVariants$.getSnapshot().toJSON(),et={};return Object.keys(_e).forEach(tt=>{const rt=_e[tt],nt={};Object.keys(rt.variants??{}).forEach(ot=>{const it=(rt.variants??{})[ot];nt[ot]={...it,node:it.node?this.pruneNodeInputs(it.node):void 0}}),et[tt]={...rt,variants:nt}}),et}toFlowRunSettings(){var _e,et;return{tuningNodeNames:this.tuningNodeNames$.getSnapshot(),variants:void 0,runtimeName:(_e=this.selectedRuntimeName$)==null?void 0:_e.getSnapshot(),description:this.bulkRunDescription$.getSnapshot(),tags:Object.assign({},...this.bulkRunTags$.getSnapshot()),...this.bulkRunDataReference$.getSnapshot()!==void 0?{batchDataInput:{dataUri:(et=this.bulkRunDataReference$.getSnapshot())==null?void 0:et.id}}:{batch_inputs:this.batchInputs$.getSnapshot()}}}toJSON(){const _e=this.toNodeVariants();return{...this.baseEntity,flow:{flowGraph:this.toFlowGraphSnapshot(_e)},flowName:this.name$.getSnapshot(),flowRunSettings:this.toFlowRunSettings()}}toFlowGraphLayout(){const _e=this.flowGraphLayout$.getSnapshot()??{},et=Array.from(this.nodeVariants$.getSnapshot().keys()),tt={..._e.nodeLayouts};return Object.keys(tt).forEach(rt=>{tt[rt]={...tt[rt],index:et.indexOf(rt)}}),{..._e,nodeLayouts:tt,orientation:this.orientation$.getSnapshot()}}toFlowUIHint(){return this.flowUIHint$.getSnapshot()??{nodes:{}}}updateToolCode(_e,et){const tt=this.codeToolsDictionary$.get(_e);tt&&this.codeToolsDictionary$.set(_e,{...tt,code:et})}updateToolStatus(_e,et){const tt=this.toolsStatus$.get(_e);this.toolsStatus$.set(_e,{...tt,...et})}updateFlowInput(_e,et){const tt=this.batchInputs$.getSnapshot(),rt=tt==null?void 0:tt[0];let nt=et;try{const ot=JSON.parse(et);nt=JSON.stringify(ot)}catch{nt=et}this.batchInputs$.next([{...rt,[_e]:nt},...tt.slice(1)])}addNewNode(_e,et){if(!_e.name)return;const tt=_e,rt={defaultVariantId:BASELINE_VARIANT_ID,variants:{[BASELINE_VARIANT_ID]:{node:tt}}};et?this.nodeVariants$.insertBefore(et,_e.name,rt):this.nodeVariants$.set(_e.name,rt)}patchEditData(_e){var et,tt,rt,nt;switch(_e.type){case"chatInput":{if(this.flowType$.getSnapshot()!==FlowType.Chat)return;const ot=this.batchInputs$.getSnapshot(),it=((et=this.getChatInputDefinition())==null?void 0:et.name)??DEFAULT_CHAT_INPUT_NAME;this.batchInputs$.next([{...ot[0],[it]:_e.value}]);break}case"chatHistory":{if(this.flowType$.getSnapshot()!==FlowType.Chat)return;const ot=this.batchInputs$.getSnapshot(),it=((tt=this.getChatHistoryDefinition())==null?void 0:tt.name)??DEFAULT_CHAT_HISTORY_NAME,st=((rt=this.getChatInputDefinition())==null?void 0:rt.name)??DEFAULT_CHAT_INPUT_NAME,lt=((nt=this.getChatOutputDefinition())==null?void 0:nt.name)??DEFAULT_CHAT_OUTPUT_NAME;this.batchInputs$.next([{...ot[0],[it]:[...ot[0][it],{inputs:{[st]:_e.value.chatInput},outputs:{[lt]:_e.value.chatOutput}}].slice(-10)}]);break}case"flowGraph":{try{this.loaded=!1,reactDomExports.unstable_batchedUpdates(()=>{this.loadFlorGraph(_e.value)})}finally{this.loaded=!0}break}default:{const ot=_e;throw new Error(`Didn't expect to get here: ${ot}`)}}}getChatInputDefinition(){return this.inputSpec$.getSnapshot().find(isChatInput)}getChatHistoryDefinition(){const _e=this.flowType$.getSnapshot();return this.inputSpec$.getSnapshot().find(et=>isChatHistory(_e,et))}getChatOutputDefinition(){return this.flowOutputs$.getSnapshot().find(isChatOutput)}clearChatMessages(){this.chatMessages$.next([]),this.syncChatMessagesToInputsValues([])}getProviderByConnection(_e){var ot;if(!_e)return;const et=this.connectionList$.getSnapshot(),tt=this.promptToolSetting$.getSnapshot(),rt=et.find(it=>it.connectionName===_e);if(!rt)return;const nt=(ot=tt==null?void 0:tt.providers)==null?void 0:ot.find(it=>{var st;return rt.connectionType&&((st=it.connection_type)==null?void 0:st.includes(rt.connectionType))});if(nt)return nt.provider}addFlowInput(_e,et){this.inputSpec$.set(_e,{...et,name:_e,id:(et==null?void 0:et.id)??getRandomInputDefinitionId()})}addFlowOutput(_e,et){this.flowOutputs$.set(_e,{...et,name:_e,id:(et==null?void 0:et.id)??getRandomOutputDefinitionId()})}loadFlorGraph(_e){var nt;const et=(_e==null?void 0:_e.nodes)||[],tt=(_e==null?void 0:_e.outputs)||{},rt=(_e==null?void 0:_e.inputs)||{};this.nodeVariants$.clear(),et.forEach(ot=>{ot.name&&(this.nodeVariants$.get(ot.name)||this.nodeVariants$.set(ot.name,{defaultVariantId:BASELINE_VARIANT_ID,variants:{[BASELINE_VARIANT_ID]:{node:ot}}}))}),(nt=Object.entries((_e==null?void 0:_e.node_variants)??{}))==null||nt.forEach(([ot,it])=>{const st={...it.variants};Object.entries(st).forEach(([lt,ut])=>{ut.node&&(ut.node.name=ot)}),this.nodeVariants$.set(ot,{defaultVariantId:it.default_variant_id??BASELINE_VARIANT_ID,variants:st})}),this.flowOutputs$.clear(),Object.keys(tt).forEach(ot=>{const it=tt[ot];it&&this.addFlowOutput(ot,it)}),this.inputSpec$.clear(),Object.keys(rt).forEach(ot=>{const it=rt[ot];it&&this.addFlowInput(ot,it)})}loadFlowDto(_e){var et,tt,rt,nt,ot,it,st,lt,ut,ct,dt,ft,pt,gt;if(this.name$.next(_e.flowName??""),this.flowType$.next(_e.flowType??FlowType.Default),this.loadFlorGraph((et=_e.flow)==null?void 0:et.flowGraph),(tt=_e.flow)!=null&&tt.nodeVariants&&((nt=Object.entries(((rt=_e.flow)==null?void 0:rt.nodeVariants)??{}))==null||nt.forEach(([mt,bt])=>{this.nodeVariants$.set(mt,{...bt,defaultVariantId:bt.defaultVariantId??BASELINE_VARIANT_ID})})),(it=(ot=_e.flow)==null?void 0:ot.flowGraphLayout)!=null&&it.nodeLayouts){const mt=(st=_e.flow)==null?void 0:st.flowGraphLayout;this.flowGraphLayout$.next(mt),mt.orientation&&this.orientation$.next(mt.orientation)}if(this.selectedRuntimeName$.setState(((lt=_e.flowRunSettings)==null?void 0:lt.runtimeName)??""),this.batchInputs$.setState(((ut=_e.flowRunSettings)==null?void 0:ut.batch_inputs)??[{}]),this.tuningNodeNames$.setState(((ct=_e.flowRunSettings)==null?void 0:ct.tuningNodeNames)??[]),this.bulkRunDescription$.next(_e.description??""),this.bulkRunTags$.next([]),_e.tags){const mt=[];Object.keys(_e.tags).forEach(bt=>{var _t;mt.push({[bt]:((_t=_e==null?void 0:_e.tags)==null?void 0:_t[bt])??""})}),this.bulkRunTags$.next(mt)}this.initNodeParameterTypes((dt=_e.flow)==null?void 0:dt.flowGraph),_e.flowType===FlowType.Chat&&(this.initChatFlow(_e),this.initChatMessages(((ft=_e.flowRunSettings)==null?void 0:ft.batch_inputs)??[{}])),this.language$.next((gt=(pt=_e.flow)==null?void 0:pt.flowGraph)==null?void 0:gt.language)}initNodeParameterTypes(_e){if(!_e)return;const et=this.nodeVariants$.getSnapshot().toJSON();let tt=Map$1(new Map);Object.keys(et).forEach(rt=>{const nt=et[rt];Object.keys(nt.variants??{}).forEach(ot=>{var st;const it=(nt.variants??{})[ot];if(it.node){const lt={inputs:{},activate:{is:void 0}},ut=this.getToolOfNode(it.node);if((it.node.type??(ut==null?void 0:ut.type))===ToolType.python){const ct=Object.keys((ut==null?void 0:ut.inputs)??{});Object.keys(it.node.inputs??{}).filter(pt=>!ct.includes(pt)).forEach(pt=>{var gt,mt;lt.inputs[pt]=inferTypeByVal((mt=(gt=it.node)==null?void 0:gt.inputs)==null?void 0:mt[pt])??ValueType.string})}lt.activate.is=inferTypeByVal((st=it.node.activate)==null?void 0:st.is)??ValueType.string,tt=tt.set(`${rt}#${ot}`,lt)}})}),this.nodeParameterTypes$.next(tt)}initChatFlow(_e){if(_e.flowType!==FlowType.Chat)return;this.inputSpec$.getSnapshot().some(nt=>isChatHistory(_e.flowType,nt))||(this.addFlowInput(DEFAULT_CHAT_HISTORY_NAME,{name:DEFAULT_CHAT_HISTORY_NAME,type:ValueType.list}),this.batchInputs$.updateState(nt=>[{...nt[0],[DEFAULT_CHAT_HISTORY_NAME]:[]},...nt.slice(1)])),this.inputSpec$.getSnapshot().some(nt=>isChatInput(nt))||this.addFlowInput(DEFAULT_CHAT_INPUT_NAME,{name:DEFAULT_CHAT_INPUT_NAME,type:ValueType.string,is_chat_input:!0}),this.flowOutputs$.getSnapshot().some(nt=>isChatOutput(nt))||this.addFlowOutput(DEFAULT_CHAT_OUTPUT_NAME,{name:DEFAULT_CHAT_OUTPUT_NAME,type:ValueType.string,is_chat_output:!0})}initChatMessages(_e){var it,st,lt;const et=((it=this.getChatHistoryDefinition())==null?void 0:it.name)??DEFAULT_CHAT_HISTORY_NAME,tt=_e[0][et];if(!Array.isArray(tt))return;const rt=((st=this.getChatInputDefinition())==null?void 0:st.name)??DEFAULT_CHAT_INPUT_NAME,nt=((lt=this.getChatOutputDefinition())==null?void 0:lt.name)??DEFAULT_CHAT_OUTPUT_NAME,ot=parseChatMessages(rt,nt,tt);this.chatMessages$.next(ot),this.syncChatMessagesToInputsValues(ot)}syncChatMessagesToInputsValues(_e){var tt,rt,nt;if(this.batchInputs$.getSnapshot().length<=1){const ot=((tt=this.getChatInputDefinition())==null?void 0:tt.name)??DEFAULT_CHAT_INPUT_NAME,it=((rt=this.getChatOutputDefinition())==null?void 0:rt.name)??DEFAULT_CHAT_OUTPUT_NAME,st=((nt=this.getChatHistoryDefinition())==null?void 0:nt.name)??DEFAULT_CHAT_HISTORY_NAME,lt=[];for(let ut=0;ut<_e.length;++ut){for(;ut<_e.length&&_e[ut].from!==ChatMessageFrom.User;++ut);if(ut+1<_e.length){const ct=_e[ut],dt=_e[ut+1];if(dt.from===ChatMessageFrom.Chatbot&&!dt.error){ut+=1;const ft=dt.extraData;lt.push({inputs:{...ft.flowInputs,[ot]:ct.content},outputs:{...ft.flowOutputs,[it]:dt.content}})}}}this.batchInputs$.updateState(ut=>[{...ut[0],[st]:lt}])}}getNode(_e,et){var tt,rt,nt;return(nt=(rt=(tt=this.nodeVariants$.get(_e))==null?void 0:tt.variants)==null?void 0:rt[et])==null?void 0:nt.node}setNode(_e,et,tt){var nt;const rt=this.nodeVariants$.get(_e);this.nodeVariants$.set(_e,{defaultVariantId:(rt==null?void 0:rt.defaultVariantId)??BASELINE_VARIANT_ID,variants:{...rt==null?void 0:rt.variants,[et]:{...(nt=rt==null?void 0:rt.variants)==null?void 0:nt[et],node:tt}}})}getAllLlmParameterKeys(){var _e;if(this._allLlmParameterKeys.length===0){const et=this.promptToolSetting$.getSnapshot();if(!et)return[];const tt=(_e=et.providers)==null?void 0:_e.flatMap(nt=>{var ot;return(ot=nt.apis)==null?void 0:ot.map(it=>it.parameters)}),rt=new Set(tt==null?void 0:tt.flatMap(nt=>Object.keys(nt??{})));this._allLlmParameterKeys=[...rt.values()]}return this._allLlmParameterKeys}pruneNodeInputs(_e){var ct,dt,ft,pt;const et=_e?this.getToolOfNode(_e):void 0,tt=this.promptToolSetting$.getSnapshot(),rt=this.connectionList$.getSnapshot(),nt=this.connectionSpecList$.getSnapshot();if(!et||!tt)return _e;if((_e.type??et.type)===ToolType.python&&et.enable_kwargs){const gt={};return Object.keys(_e.inputs??{}).forEach(mt=>{var bt,_t,xt,yt;if(((bt=_e.inputs)==null?void 0:bt[mt])!==void 0){const Et=(_t=et.inputs)==null?void 0:_t[mt];gt[mt]=convertValByType((xt=_e.inputs)==null?void 0:xt[mt],(yt=Et==null?void 0:Et.type)==null?void 0:yt[0])}}),{..._e,inputs:gt}}const ot=this.getProviderByConnection(_e.connection??"");if((_e.type??et.type)===ToolType.llm&&(!ot||!_e.api))return _e;const it=(_e.type??et.type)===ToolType.llm,st=it?(pt=(ft=(dt=(ct=tt==null?void 0:tt.providers)==null?void 0:ct.find(gt=>gt.provider===ot))==null?void 0:dt.apis)==null?void 0:ft.find(gt=>gt.api===_e.api))==null?void 0:pt.parameters:void 0,lt=new Set(filterNodeInputsKeys(et.inputs,_e.inputs,rt,nt).concat(it?this.getAllLlmParameterKeys():[])),ut={};return Object.keys(_e.inputs??{}).forEach(gt=>{var mt,bt,_t,xt;if(lt.has(gt)&&((mt=_e.inputs)==null?void 0:mt[gt])!==void 0){const yt=((bt=et.inputs)==null?void 0:bt[gt])??(st==null?void 0:st[gt]);ut[gt]=convertValByType((_t=_e.inputs)==null?void 0:_t[gt],(xt=yt==null?void 0:yt.type)==null?void 0:xt[0])}}),{..._e,inputs:ut}}getToolOfNode(_e){var rt,nt;const et=this.codeToolsDictionary$.get(((rt=_e.source)==null?void 0:rt.path)??""),tt=this.packageToolsDictionary$.get(((nt=_e.source)==null?void 0:nt.tool)??"");return resolveTool(_e,et,tt,ot=>this.codeToolsDictionary$.get(ot))}validateNodeInputs(_e){const et=new Map,tt=this.getNodesInCycle(_e),rt=this.connectionList$.getSnapshot(),nt=this.connectionSpecList$.getSnapshot(),ot=[];return this.inputSpec$.getSnapshot().forEach((st,lt)=>{const ut=st.default,ct=st.type;if(ut!==void 0&&ut!==""&&!isTypeValid(ut,ct)){const dt={section:"inputs",parameterName:lt,type:ValidationErrorType.InputInvalidType,message:"Input type is not valid"};ot.push(dt)}}),ot.length>0&&et.set(`${FLOW_INPUT_NODE_NAME}#`,ot),Array.from(_e.values()).forEach(st=>{const{variants:lt={}}=st;Object.keys(lt).forEach(ut=>{var bt,_t,xt;const ct=lt[ut],{node:dt}=ct,ft=dt?this.getToolOfNode(dt):void 0,pt=filterNodeInputsKeys(ft==null?void 0:ft.inputs,dt==null?void 0:dt.inputs,rt,nt);if(!dt||!dt.name)return;if(!ft){const yt=dt;et.set(`${dt.name}#${ut}`,[{type:ValidationErrorType.MissingTool,message:`Can't find tool ${((bt=yt==null?void 0:yt.source)==null?void 0:bt.tool)??((_t=yt==null?void 0:yt.source)==null?void 0:_t.path)}`}]);return}const gt=[],mt=this.validateNodeConfig(dt,ft);if(mt&>.push(mt),pt.forEach(yt=>{const Et=this.validateNodeInputRequired(ft,dt,yt);Et&>.push(Et)}),dt.inputs&>.push(...Object.keys(dt.inputs).map(yt=>{if(!pt.includes(yt)&&!ft.enable_kwargs)return;const{isReference:Et,error:St}=this.validateNodeInputReference(dt,"inputs",yt,_e,tt);if(St)return St;if(!Et)return this.validateNodeInputType(ft,dt,ut,yt)}).filter(Boolean)),dt.activate){const{error:yt}=this.validateNodeInputReference(dt,"activate","when",_e,tt);yt&>.push(yt);const Et=dt.activate.is,St=(xt=this.nodeParameterTypes$.get(`${dt.name}#${ut}`))==null?void 0:xt.activate.is;if(!isTypeValid(Et,St)){const Tt={section:"activate",parameterName:"is",type:ValidationErrorType.InputInvalidType,message:"Input type is not valid"};gt.push(Tt)}}et.set(`${dt.name}#${ut}`,gt)})}),et}getNodesInCycle(_e){const et=getDefaultNodeList(List$1.of(..._e.keys()),_e),tt=new Map;et.forEach(lt=>{var ct;const ut=(dt,ft,pt)=>{const gt=getRefValueFromRaw(pt),[mt]=(gt==null?void 0:gt.split("."))??[];!mt||isFlowInput(mt)||tt.set(`${lt.name}.${dt}.${ft}`,mt)};Object.keys((lt==null?void 0:lt.inputs)??{}).forEach(dt=>{var pt;const ft=(pt=lt.inputs)==null?void 0:pt[dt];ut("inputs",dt,ft)}),ut("activate","when",(ct=lt.activate)==null?void 0:ct.when)});const rt=new Map,nt=new Map,ot=new Map,it=new Map;return et.forEach(lt=>{const ut=lt.name;ut&&(rt.set(ut,0),nt.set(ut,0),ot.set(ut,[]),it.set(ut,[]))}),et.forEach(lt=>{const ut=lt.name;if(!ut)return;const ct=(dt,ft)=>{const pt=tt.get(`${ut}.${dt}.${ft}`);pt&&(rt.set(ut,(rt.get(ut)??0)+1),nt.set(pt,(nt.get(pt)??0)+1),ot.set(pt,[...ot.get(pt)??[],ut]),it.set(ut,[...it.get(ut)??[],pt]))};Object.keys((lt==null?void 0:lt.inputs)??{}).forEach(dt=>{ct("inputs",dt)}),ct("activate","when")}),getCycle(rt,ot,nt,it)}validateNodeConfig(_e,et){var rt,nt,ot,it,st,lt,ut;const tt=this.promptToolSetting$.getSnapshot();if((_e.type??(et==null?void 0:et.type))===ToolType.llm){if(!_e.connection)return{parameterName:"connection",type:ValidationErrorType.NodeConfigInvalid,message:"connection is required"};if(!this.connectionList$.getSnapshot().some(gt=>gt.connectionName===_e.connection))return{parameterName:"connection",type:ValidationErrorType.NodeConfigInvalid,message:"connection is not valid"};if(!_e.api)return{parameterName:"api",type:ValidationErrorType.NodeConfigInvalid,message:"api is required"};const ct=this.getProviderByConnection(_e.connection),dt=(it=(ot=(nt=(rt=tt==null?void 0:tt.providers)==null?void 0:rt.find(gt=>gt.provider===ct))==null?void 0:nt.apis)==null?void 0:ot.find(gt=>gt.api===_e.api))==null?void 0:it.parameters;if((dt==null?void 0:dt.model)&&!((st=_e.inputs)!=null&&st.model))return{parameterName:"model",type:ValidationErrorType.NodeConfigInvalid,message:"model is required"};if((dt==null?void 0:dt.deployment_name)&&!((lt=_e.inputs)!=null&<.deployment_name))return{parameterName:"deployment_name",type:ValidationErrorType.NodeConfigInvalid,message:"deployment_name is required"}}if(et&&((ut=et==null?void 0:et.connection_type)!=null&&ut.length)&&!_e.connection)return{parameterName:"connection",type:ValidationErrorType.NodeConfigInvalid,message:"connection is required"}}validateNodeInputRequired(_e,et,tt){var nt,ot,it;if(((ot=(nt=_e.inputs)==null?void 0:nt[tt])==null?void 0:ot.default)!==void 0)return;const rt=(it=et.inputs)==null?void 0:it[tt];if(rt===void 0||rt==="")return{section:"inputs",parameterName:tt,type:ValidationErrorType.InputEmpty,message:"Input cannot be empty"}}validateNodeInputReference(_e,et,tt,rt,nt){var ct;const ot=(ct=_e==null?void 0:_e[et])==null?void 0:ct[tt],it=getRefValueFromRaw(ot),[st,lt]=(it==null?void 0:it.split("."))??[];return st?isFlowInput(st)?this.inputSpec$.get(lt)?{isReference:!0,error:void 0}:{isReference:!0,error:{section:et,parameterName:tt,type:ValidationErrorType.InputDependencyNotFound,message:`${it} is not a valid flow input`}}:st===_e.name?{isReference:!0,error:{section:et,parameterName:tt,type:ValidationErrorType.InputSelfReference,message:"Input cannot reference itself"}}:rt.get(st)?_e.name&&nt.has(_e.name)&&nt.has(st)?{isReference:!0,error:{section:et,parameterName:tt,type:ValidationErrorType.CircularDependency,message:"Input cannot reference a node in a cycle"}}:{isReference:!0,error:void 0}:{isReference:!0,error:{section:et,parameterName:tt,type:ValidationErrorType.InputDependencyNotFound,message:`${st} is not a valid node name`}}:{isReference:!1,error:void 0}}validateNodeInputType(_e,et,tt,rt){var st,lt,ut,ct,dt;const nt=(st=et.inputs)==null?void 0:st[rt];if(!nt)return;const ot=(lt=_e==null?void 0:_e.inputs)==null?void 0:lt[rt],it=((ut=ot==null?void 0:ot.type)==null?void 0:ut[0])??((dt=(ct=this.nodeParameterTypes$.get(`${et.name}#${tt}`))==null?void 0:ct.inputs)==null?void 0:dt[rt]);if(!(!nt||!_e||!it)&&!isTypeValid(nt,it))return{section:"inputs",parameterName:rt,type:ValidationErrorType.InputInvalidType,message:"Input type is not valid"}}};_a$5=SINGLETON,qp[_a$5]=!0;let BaseFlowViewModel=qp;class DefaultFlowViewModel extends BaseFlowViewModel{constructor(){super(...arguments),this.viewType="default"}fetchConnectionList(){}fetchPromptToolSetting(){}openRunListView(){}deployFlow(){}setSelectedStepId(){}notifyFlowChange(){}notifyLayoutChange(){}notifyUIHintChange(){}}createInjectionToken("FlowViewModel",new DefaultFlowViewModel);function useInjected(...j){const _e=reactExports.useContext(ServicesContext);return reactExports.useMemo(()=>j.map(et=>{try{return _e.resolve(et)}catch(tt){throw[et,tt]}}),[_e].concat(j))}var shim$1={exports:{}},useSyncExternalStoreShim_production_min={};/** * @license React * use-sync-external-store-shim.production.min.js * @@ -215,7 +215,7 @@ PERFORMANCE OF THIS SOFTWARE. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var e$3=reactExports;function h$8(j,_e){return j===_e&&(j!==0||1/j===1/_e)||j!==j&&_e!==_e}var k$7=typeof Object.is=="function"?Object.is:h$8,l$6=e$3.useState,m$8=e$3.useEffect,n$8=e$3.useLayoutEffect,p$7=e$3.useDebugValue;function q$6(j,_e){var et=_e(),tt=l$6({inst:{value:et,getSnapshot:_e}}),rt=tt[0].inst,nt=tt[1];return n$8(function(){rt.value=et,rt.getSnapshot=_e,r$8(rt)&&nt({inst:rt})},[j,et,_e]),m$8(function(){return r$8(rt)&&nt({inst:rt}),j(function(){r$8(rt)&&nt({inst:rt})})},[j]),p$7(et),et}function r$8(j){var _e=j.getSnapshot;j=j.value;try{var et=_e();return!k$7(j,et)}catch{return!0}}function t$7(j,_e){return _e()}var u$8=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?t$7:q$6;useSyncExternalStoreShim_production_min.useSyncExternalStore=e$3.useSyncExternalStore!==void 0?e$3.useSyncExternalStore:u$8;shim$1.exports=useSyncExternalStoreShim_production_min;var shimExports=shim$1.exports;const useSubscribe=j=>reactExports.useCallback(_e=>{const et=j.subscribe(_e);return()=>{et.unsubscribe()}},[j]);function useState(j){const _e=useSubscribe(j),{getSnapshot:et}=j;return shimExports.useSyncExternalStore(_e,et)}function useSetState(j){return reactExports.useCallback(_e=>{typeof _e!="function"?j.setState(_e):j.setState(_e(j.getSnapshot()))},[j])}of$1(void 0);var _a$4;const qp=class qp{constructor(_e,et){this.isChatBoxBottomTipVisible$=new State$1(_e.isChatBoxBottomTipVisible),this.simpleMode$=new State$1(_e.simpleMode),this.freezeLayout$=new State$1(_e.freezeLayout),this.viewMyOnlyFlow$=new State$1(_e.viewMyOnlyFlow),this.viewOnlyMyRuns$=new State$1(_e.viewOnlyMyRuns),this.viewArchived$=new State$1(_e.viewArchived),this.wrapTextOn$=new State$1(_e.wrapTextOn),this.diffModeOn$=new State$1(_e.diffModeOn),this.isRightTopPaneCollapsed$=new State$1(_e.isRightTopPaneCollapsed),this.isRightBottomPaneCollapsed$=new State$1(_e.isRightBottomPaneCollapsed),this.leftPaneWidth$=new State$1(_e.leftPaneWidth),this.rightTopPaneHeight$=new State$1(_e.rightTopPaneHeight);const tt=(rt,nt)=>{nt.subscribe(ot=>{et({...this.getSettingsSnapshot(),[rt]:ot})})};tt("isChatBoxBottomTipVisible",this.isChatBoxBottomTipVisible$),tt("simpleMode",this.simpleMode$),tt("freezeLayout",this.freezeLayout$),tt("viewMyOnlyFlow",this.viewMyOnlyFlow$),tt("viewOnlyMyRuns",this.viewOnlyMyRuns$),tt("viewArchived",this.viewArchived$),tt("wrapTextOn",this.wrapTextOn$),tt("diffModeOn",this.diffModeOn$),tt("isRightTopPaneCollapsed",this.isRightTopPaneCollapsed$),tt("isRightBottomPaneCollapsed",this.isRightBottomPaneCollapsed$),tt("leftPaneWidth",this.leftPaneWidth$),tt("rightTopPaneHeight",this.rightTopPaneHeight$)}getSettingsSnapshot(){return{isChatBoxBottomTipVisible:this.isChatBoxBottomTipVisible$.getSnapshot(),simpleMode:this.simpleMode$.getSnapshot(),freezeLayout:this.freezeLayout$.getSnapshot(),viewMyOnlyFlow:this.viewMyOnlyFlow$.getSnapshot(),viewOnlyMyRuns:this.viewOnlyMyRuns$.getSnapshot(),viewArchived:this.viewArchived$.getSnapshot(),wrapTextOn:this.wrapTextOn$.getSnapshot(),diffModeOn:this.diffModeOn$.getSnapshot(),isRightTopPaneCollapsed:this.isRightTopPaneCollapsed$.getSnapshot(),isRightBottomPaneCollapsed:this.isRightBottomPaneCollapsed$.getSnapshot(),leftPaneWidth:this.leftPaneWidth$.getSnapshot(),rightTopPaneHeight:this.rightTopPaneHeight$.getSnapshot()}}};_a$4=SINGLETON,qp[_a$4]=!0;let BaseFlowSettingViewModel=qp;class DefaultFlowSettingViewModel extends BaseFlowSettingViewModel{constructor(){super({isChatBoxBottomTipVisible:!0,simpleMode:!0,freezeLayout:!1,viewMyOnlyFlow:!1,viewOnlyMyRuns:!1,viewArchived:!0,wrapTextOn:!1,diffModeOn:!1,isRightTopPaneCollapsed:!0,isRightBottomPaneCollapsed:!1,leftPaneWidth:"66%",rightTopPaneHeight:360},()=>{})}}createInjectionToken("FlowSettingViewModel",new DefaultFlowSettingViewModel);makeStyles({root:{display:"flex",flexWrap:"nowrap"},item:{display:"inline-flex",alignItems:"center",marginRight:"8px",lineHeight:"14px"}});mergeStyleSets({line:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}});const isInVscodeWebview=typeof acquireVsCodeApi<"u";isInVscodeWebview&&acquireVsCodeApi();var _a$3;const Up=class Up{constructor(){this.extensionConfigurations$=new State$1(void 0),this.isPackageInstalled$=new State$1(void 0),this.sdkVersion$=new State$1(void 0),this.sdkFeatureList$=new State$1([]),this.isPackageUpgradeableForNewLlmTools$=new State$1(!1)}};_a$3=SINGLETON,Up[_a$3]=!0;let VSCodeExtensionViewModel=Up;createInjectionToken("VSCodeFlowViewModel",new VSCodeExtensionViewModel);React.createContext({variantName:BASELINE_VARIANT_ID,haveMultipleVariants:!1,showAllVariantsOutputs:!1,isDisableEditing:!1});function createCommonjsModule(j,_e,et){return et={path:_e,exports:{},require:function(tt,rt){return commonjsRequire(tt,rt??et.path)}},j(et,et.exports),et.exports}function commonjsRequire(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var classnames$3=createCommonjsModule(function(j){/*! + */var e$3=reactExports;function h$8(j,_e){return j===_e&&(j!==0||1/j===1/_e)||j!==j&&_e!==_e}var k$7=typeof Object.is=="function"?Object.is:h$8,l$6=e$3.useState,m$8=e$3.useEffect,n$8=e$3.useLayoutEffect,p$7=e$3.useDebugValue;function q$6(j,_e){var et=_e(),tt=l$6({inst:{value:et,getSnapshot:_e}}),rt=tt[0].inst,nt=tt[1];return n$8(function(){rt.value=et,rt.getSnapshot=_e,r$8(rt)&&nt({inst:rt})},[j,et,_e]),m$8(function(){return r$8(rt)&&nt({inst:rt}),j(function(){r$8(rt)&&nt({inst:rt})})},[j]),p$7(et),et}function r$8(j){var _e=j.getSnapshot;j=j.value;try{var et=_e();return!k$7(j,et)}catch{return!0}}function t$7(j,_e){return _e()}var u$8=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?t$7:q$6;useSyncExternalStoreShim_production_min.useSyncExternalStore=e$3.useSyncExternalStore!==void 0?e$3.useSyncExternalStore:u$8;shim$1.exports=useSyncExternalStoreShim_production_min;var shimExports=shim$1.exports;const useSubscribe=j=>reactExports.useCallback(_e=>{const et=j.subscribe(_e);return()=>{et.unsubscribe()}},[j]);function useState(j){const _e=useSubscribe(j),{getSnapshot:et}=j;return shimExports.useSyncExternalStore(_e,et)}function useSetState(j){return reactExports.useCallback(_e=>{typeof _e!="function"?j.setState(_e):j.setState(_e(j.getSnapshot()))},[j])}of$1(void 0);var _a$4;const Kp=class Kp{constructor(_e,et){this.isChatBoxBottomTipVisible$=new State$1(_e.isChatBoxBottomTipVisible),this.simpleMode$=new State$1(_e.simpleMode),this.freezeLayout$=new State$1(_e.freezeLayout),this.viewMyOnlyFlow$=new State$1(_e.viewMyOnlyFlow),this.viewOnlyMyRuns$=new State$1(_e.viewOnlyMyRuns),this.viewArchived$=new State$1(_e.viewArchived),this.wrapTextOn$=new State$1(_e.wrapTextOn),this.diffModeOn$=new State$1(_e.diffModeOn),this.isRightTopPaneCollapsed$=new State$1(_e.isRightTopPaneCollapsed),this.isRightBottomPaneCollapsed$=new State$1(_e.isRightBottomPaneCollapsed),this.leftPaneWidth$=new State$1(_e.leftPaneWidth),this.rightTopPaneHeight$=new State$1(_e.rightTopPaneHeight);const tt=(rt,nt)=>{nt.subscribe(ot=>{et({...this.getSettingsSnapshot(),[rt]:ot})})};tt("isChatBoxBottomTipVisible",this.isChatBoxBottomTipVisible$),tt("simpleMode",this.simpleMode$),tt("freezeLayout",this.freezeLayout$),tt("viewMyOnlyFlow",this.viewMyOnlyFlow$),tt("viewOnlyMyRuns",this.viewOnlyMyRuns$),tt("viewArchived",this.viewArchived$),tt("wrapTextOn",this.wrapTextOn$),tt("diffModeOn",this.diffModeOn$),tt("isRightTopPaneCollapsed",this.isRightTopPaneCollapsed$),tt("isRightBottomPaneCollapsed",this.isRightBottomPaneCollapsed$),tt("leftPaneWidth",this.leftPaneWidth$),tt("rightTopPaneHeight",this.rightTopPaneHeight$)}getSettingsSnapshot(){return{isChatBoxBottomTipVisible:this.isChatBoxBottomTipVisible$.getSnapshot(),simpleMode:this.simpleMode$.getSnapshot(),freezeLayout:this.freezeLayout$.getSnapshot(),viewMyOnlyFlow:this.viewMyOnlyFlow$.getSnapshot(),viewOnlyMyRuns:this.viewOnlyMyRuns$.getSnapshot(),viewArchived:this.viewArchived$.getSnapshot(),wrapTextOn:this.wrapTextOn$.getSnapshot(),diffModeOn:this.diffModeOn$.getSnapshot(),isRightTopPaneCollapsed:this.isRightTopPaneCollapsed$.getSnapshot(),isRightBottomPaneCollapsed:this.isRightBottomPaneCollapsed$.getSnapshot(),leftPaneWidth:this.leftPaneWidth$.getSnapshot(),rightTopPaneHeight:this.rightTopPaneHeight$.getSnapshot()}}};_a$4=SINGLETON,Kp[_a$4]=!0;let BaseFlowSettingViewModel=Kp;class DefaultFlowSettingViewModel extends BaseFlowSettingViewModel{constructor(){super({isChatBoxBottomTipVisible:!0,simpleMode:!0,freezeLayout:!1,viewMyOnlyFlow:!1,viewOnlyMyRuns:!1,viewArchived:!0,wrapTextOn:!1,diffModeOn:!1,isRightTopPaneCollapsed:!0,isRightBottomPaneCollapsed:!1,leftPaneWidth:"66%",rightTopPaneHeight:360},()=>{})}}createInjectionToken("FlowSettingViewModel",new DefaultFlowSettingViewModel);makeStyles({root:{display:"flex",flexWrap:"nowrap"},item:{display:"inline-flex",alignItems:"center",marginRight:"8px",lineHeight:"14px"}});mergeStyleSets({line:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}});const isInVscodeWebview=typeof acquireVsCodeApi<"u";isInVscodeWebview&&acquireVsCodeApi();var _a$3;const Up=class Up{constructor(){this.extensionConfigurations$=new State$1(void 0),this.isPackageInstalled$=new State$1(void 0),this.sdkVersion$=new State$1(void 0),this.sdkFeatureList$=new State$1([]),this.isPackageUpgradeableForNewLlmTools$=new State$1(!1)}};_a$3=SINGLETON,Up[_a$3]=!0;let VSCodeExtensionViewModel=Up;createInjectionToken("VSCodeFlowViewModel",new VSCodeExtensionViewModel);React.createContext({variantName:BASELINE_VARIANT_ID,haveMultipleVariants:!1,showAllVariantsOutputs:!1,isDisableEditing:!1});function createCommonjsModule(j,_e,et){return et={path:_e,exports:{},require:function(tt,rt){return commonjsRequire(tt,rt??et.path)}},j(et,et.exports),et.exports}function commonjsRequire(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var classnames$1=createCommonjsModule(function(j){/*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames @@ -226,10 +226,10 @@ PERFORMANCE OF THIS SOFTWARE. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var b$3=typeof Symbol=="function"&&Symbol.for,c$6=b$3?Symbol.for("react.element"):60103,d$1=b$3?Symbol.for("react.portal"):60106,e$2=b$3?Symbol.for("react.fragment"):60107,f$5=b$3?Symbol.for("react.strict_mode"):60108,g$7=b$3?Symbol.for("react.profiler"):60114,h$7=b$3?Symbol.for("react.provider"):60109,k$6=b$3?Symbol.for("react.context"):60110,l$5=b$3?Symbol.for("react.async_mode"):60111,m$7=b$3?Symbol.for("react.concurrent_mode"):60111,n$7=b$3?Symbol.for("react.forward_ref"):60112,p$6=b$3?Symbol.for("react.suspense"):60113,q$5=b$3?Symbol.for("react.suspense_list"):60120,r$7=b$3?Symbol.for("react.memo"):60115,t$6=b$3?Symbol.for("react.lazy"):60116,v$8=b$3?Symbol.for("react.block"):60121,w$6=b$3?Symbol.for("react.fundamental"):60117,x$7=b$3?Symbol.for("react.responder"):60118,y$8=b$3?Symbol.for("react.scope"):60119;function z$4(j){if(typeof j=="object"&&j!==null){var _e=j.$$typeof;switch(_e){case c$6:switch(j=j.type,j){case l$5:case m$7:case e$2:case g$7:case f$5:case p$6:return j;default:switch(j=j&&j.$$typeof,j){case k$6:case n$7:case t$6:case r$7:case h$7:return j;default:return _e}}case d$1:return _e}}}function A$2(j){return z$4(j)===m$7}var AsyncMode=l$5,ConcurrentMode=m$7,ContextConsumer=k$6,ContextProvider=h$7,Element$1=c$6,ForwardRef=n$7,Fragment=e$2,Lazy=t$6,Memo=r$7,Portal=d$1,Profiler=g$7,StrictMode=f$5,Suspense=p$6,isAsyncMode=function(j){return A$2(j)||z$4(j)===l$5},isConcurrentMode=A$2,isContextConsumer=function(j){return z$4(j)===k$6},isContextProvider=function(j){return z$4(j)===h$7},isElement=function(j){return typeof j=="object"&&j!==null&&j.$$typeof===c$6},isForwardRef=function(j){return z$4(j)===n$7},isFragment=function(j){return z$4(j)===e$2},isLazy=function(j){return z$4(j)===t$6},isMemo=function(j){return z$4(j)===r$7},isPortal=function(j){return z$4(j)===d$1},isProfiler=function(j){return z$4(j)===g$7},isStrictMode=function(j){return z$4(j)===f$5},isSuspense=function(j){return z$4(j)===p$6},isValidElementType=function(j){return typeof j=="string"||typeof j=="function"||j===e$2||j===m$7||j===g$7||j===f$5||j===p$6||j===q$5||typeof j=="object"&&j!==null&&(j.$$typeof===t$6||j.$$typeof===r$7||j.$$typeof===h$7||j.$$typeof===k$6||j.$$typeof===n$7||j.$$typeof===w$6||j.$$typeof===x$7||j.$$typeof===y$8||j.$$typeof===v$8)},typeOf=z$4,reactIs_production_min={AsyncMode,ConcurrentMode,ContextConsumer,ContextProvider,Element:Element$1,ForwardRef,Fragment,Lazy,Memo,Portal,Profiler,StrictMode,Suspense,isAsyncMode,isConcurrentMode,isContextConsumer,isContextProvider,isElement,isForwardRef,isFragment,isLazy,isMemo,isPortal,isProfiler,isStrictMode,isSuspense,isValidElementType,typeOf};createCommonjsModule(function(j,_e){});var reactIs=createCommonjsModule(function(j){j.exports=reactIs_production_min});function toArray$1(j){var _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},et=[];return React.Children.forEach(j,function(tt){tt==null&&!_e.keepEmpty||(Array.isArray(tt)?et=et.concat(toArray$1(tt)):reactIs.isFragment(tt)&&tt.props?et=et.concat(toArray$1(tt.props.children,_e)):et.push(tt))}),et}function _defineProperty$3$1(j,_e,et){return _e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function ownKeys$2$1(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread2$2(j){for(var _e=1;_e0},j.prototype.connect_=function(){!isBrowser$1||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),mutationObserverSupported?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},j.prototype.disconnect_=function(){!isBrowser$1||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},j.prototype.onTransitionEnd_=function(_e){var et=_e.propertyName,tt=et===void 0?"":et,rt=transitionKeys.some(function(nt){return!!~tt.indexOf(nt)});rt&&this.refresh()},j.getInstance=function(){return this.instance_||(this.instance_=new j),this.instance_},j.instance_=null,j}(),defineConfigurable=function(j,_e){for(var et=0,tt=Object.keys(_e);et"u"||!(Element instanceof Object))){if(!(_e instanceof getWindowOf(_e).Element))throw new TypeError('parameter 1 is not of type "Element".');var et=this.observations_;et.has(_e)||(et.set(_e,new ResizeObservation(_e)),this.controller_.addObserver(this),this.controller_.refresh())}},j.prototype.unobserve=function(_e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(_e instanceof getWindowOf(_e).Element))throw new TypeError('parameter 1 is not of type "Element".');var et=this.observations_;et.has(_e)&&(et.delete(_e),et.size||this.controller_.removeObserver(this))}},j.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},j.prototype.gatherActive=function(){var _e=this;this.clearActive(),this.observations_.forEach(function(et){et.isActive()&&_e.activeObservations_.push(et)})},j.prototype.broadcastActive=function(){if(this.hasActive()){var _e=this.callbackCtx_,et=this.activeObservations_.map(function(tt){return new ResizeObserverEntry(tt.target,tt.broadcastRect())});this.callback_.call(_e,et,_e),this.clearActive()}},j.prototype.clearActive=function(){this.activeObservations_.splice(0)},j.prototype.hasActive=function(){return this.activeObservations_.length>0},j}(),observers=typeof WeakMap<"u"?new WeakMap:new MapShim,ResizeObserver$1=function(){function j(_e){if(!(this instanceof j))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var et=ResizeObserverController.getInstance(),tt=new ResizeObserverSPI(_e,et,this);observers.set(this,tt)}return j}();["observe","unobserve","disconnect"].forEach(function(j){ResizeObserver$1.prototype[j]=function(){var _e;return(_e=observers.get(this))[j].apply(_e,arguments)}});var index$1=function(){return typeof global$1$1.ResizeObserver<"u"?global$1$1.ResizeObserver:ResizeObserver$1}(),elementListeners=new Map;function onResize(j){j.forEach(function(_e){var et,tt=_e.target;(et=elementListeners.get(tt))===null||et===void 0||et.forEach(function(rt){return rt(tt)})})}var resizeObserver=new index$1(onResize);function observe(j,_e){elementListeners.has(j)||(elementListeners.set(j,new Set),resizeObserver.observe(j)),elementListeners.get(j).add(_e)}function unobserve(j,_e){elementListeners.has(j)&&(elementListeners.get(j).delete(_e),elementListeners.get(j).size||(resizeObserver.unobserve(j),elementListeners.delete(j)))}function _classCallCheck$2$1(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$2$1(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,tt.key,tt)}}function _createClass$2$1(j,_e,et){return _e&&_defineProperties$2$1(j.prototype,_e),et&&_defineProperties$2$1(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _setPrototypeOf$1$1(j,_e){return _setPrototypeOf$1$1=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$1$1(j,_e)}function _inherits$1$1(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf$1$1(j,_e)}function _getPrototypeOf$1$1(j){return _getPrototypeOf$1$1=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$1$1(j)}function _isNativeReflectConstruct$1$1(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _typeof$3$1(j){"@babel/helpers - typeof";return _typeof$3$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$3$1(j)}function _assertThisInitialized$1$1(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _possibleConstructorReturn$1$1(j,_e){if(_e&&(_typeof$3$1(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$1$1(j)}function _createSuper$1$1(j){var _e=_isNativeReflectConstruct$1$1();return function(){var tt=_getPrototypeOf$1$1(j),rt;if(_e){var nt=_getPrototypeOf$1$1(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn$1$1(this,rt)}}var DomWrapper=function(j){_inherits$1$1(et,j);var _e=_createSuper$1$1(et);function et(){return _classCallCheck$2$1(this,et),_e.apply(this,arguments)}return _createClass$2$1(et,[{key:"render",value:function(){return this.props.children}}]),et}(reactExports.Component),CollectionContext=reactExports.createContext(null);function Collection(j){var _e=j.children,et=j.onBatchResize,tt=reactExports.useRef(0),rt=reactExports.useRef([]),nt=reactExports.useContext(CollectionContext),ot=reactExports.useCallback(function(it,st,lt){tt.current+=1;var ut=tt.current;rt.current.push({size:it,element:st,data:lt}),Promise.resolve().then(function(){ut===tt.current&&(et==null||et(rt.current),rt.current=[])}),nt==null||nt(it,st,lt)},[et,nt]);return reactExports.createElement(CollectionContext.Provider,{value:ot},_e)}function SingleObserver(j){var _e=j.children,et=j.disabled,tt=reactExports.useRef(null),rt=reactExports.useRef(null),nt=reactExports.useContext(CollectionContext),ot=typeof _e=="function",it=ot?_e(tt):_e,st=reactExports.useRef({width:-1,height:-1,offsetWidth:-1,offsetHeight:-1}),lt=!ot&&reactExports.isValidElement(it)&&supportRef(it),ut=lt?it.ref:null,ct=reactExports.useMemo(function(){return composeRef(ut,tt)},[ut,tt]),dt=reactExports.useRef(j);dt.current=j;var ft=reactExports.useCallback(function(pt){var gt=dt.current,vt=gt.onResize,bt=gt.data,_t=pt.getBoundingClientRect(),xt=_t.width,yt=_t.height,Et=pt.offsetWidth,St=pt.offsetHeight,$t=Math.floor(xt),At=Math.floor(yt);if(st.current.width!==$t||st.current.height!==At||st.current.offsetWidth!==Et||st.current.offsetHeight!==St){var wt={width:$t,height:At,offsetWidth:Et,offsetHeight:St};st.current=wt;var Ct=Et===Math.round(xt)?xt:Et,It=St===Math.round(yt)?yt:St,Ot=_objectSpread2$2(_objectSpread2$2({},wt),{},{offsetWidth:Ct,offsetHeight:It});nt==null||nt(Ot,pt,bt),vt&&Promise.resolve().then(function(){vt(Ot,pt)})}},[]);return reactExports.useEffect(function(){var pt=findDOMNode(tt.current)||findDOMNode(rt.current);return pt&&!et&&observe(pt,ft),function(){return unobserve(pt,ft)}},[tt.current,et]),reactExports.createElement(DomWrapper,{ref:rt},lt?reactExports.cloneElement(it,{ref:ct}):it)}var INTERNAL_PREFIX_KEY="rc-observer-key";function ResizeObserver$2(j){var _e=j.children,et=typeof _e=="function"?[_e]:toArray$1(_e);return et.map(function(tt,rt){var nt=(tt==null?void 0:tt.key)||"".concat(INTERNAL_PREFIX_KEY,"-").concat(rt);return reactExports.createElement(SingleObserver,_extends$1$2({},j,{key:nt}),tt)})}ResizeObserver$2.Collection=Collection;function ownKeys$1$1(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$1$1(j){for(var _e=1;_e1&&arguments[1]!==void 0?arguments[1]:1;rafUUID+=1;var et=rafUUID;function tt(rt){if(rt===0)cleanup(et),j();else{var nt=raf(function(){tt(rt-1)});rafIds.set(et,nt)}}return tt(_e),et}wrapperRaf.cancel=function(j){var _e=rafIds.get(j);return cleanup(_e),caf(_e)};function _typeof$2$1(j){"@babel/helpers - typeof";return _typeof$2$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$2$1(j)}function _defineProperty$1$1(j,_e,et){return _e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _classCallCheck$1$1(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$1$1(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,tt.key,tt)}}function _createClass$1$1(j,_e,et){return _e&&_defineProperties$1$1(j.prototype,_e),et&&_defineProperties$1$1(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits$b(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf$b(j,_e)}function _setPrototypeOf$b(j,_e){return _setPrototypeOf$b=Object.setPrototypeOf||function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$b(j,_e)}function _createSuper$b(j){var _e=_isNativeReflectConstruct$b();return function(){var tt=_getPrototypeOf$b(j),rt;if(_e){var nt=_getPrototypeOf$b(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn$b(this,rt)}}function _possibleConstructorReturn$b(j,_e){if(_e&&(_typeof$2$1(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$b(j)}function _assertThisInitialized$b(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$b(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$b(j){return _getPrototypeOf$b=Object.setPrototypeOf?Object.getPrototypeOf:function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$b(j)}var MIN_SIZE=20;function getPageY(j){return"touches"in j?j.touches[0].pageY:j.pageY}var ScrollBar=function(j){_inherits$b(et,j);var _e=_createSuper$b(et);function et(){var tt;_classCallCheck$1$1(this,et);for(var rt=arguments.length,nt=new Array(rt),ot=0;otst},tt}return _createClass$1$1(et,[{key:"componentDidMount",value:function(){this.scrollbarRef.current.addEventListener("touchstart",this.onScrollbarTouchStart),this.thumbRef.current.addEventListener("touchstart",this.onMouseDown)}},{key:"componentDidUpdate",value:function(rt){rt.scrollTop!==this.props.scrollTop&&this.delayHidden()}},{key:"componentWillUnmount",value:function(){this.removeEvents(),clearTimeout(this.visibleTimeout)}},{key:"render",value:function(){var rt=this.state,nt=rt.dragging,ot=rt.visible,it=this.props.prefixCls,st=this.getSpinHeight(),lt=this.getTop(),ut=this.showScroll(),ct=ut&&ot;return reactExports.createElement("div",{ref:this.scrollbarRef,className:classnames$3("".concat(it,"-scrollbar"),_defineProperty$1$1({},"".concat(it,"-scrollbar-show"),ut)),style:{width:8,top:0,bottom:0,right:0,position:"absolute",display:ct?null:"none"},onMouseDown:this.onContainerMouseDown,onMouseMove:this.delayHidden},reactExports.createElement("div",{ref:this.thumbRef,className:classnames$3("".concat(it,"-scrollbar-thumb"),_defineProperty$1$1({},"".concat(it,"-scrollbar-thumb-moving"),nt)),style:{width:"100%",height:st,top:lt,left:0,position:"absolute",background:"rgba(0, 0, 0, 0.5)",borderRadius:99,cursor:"pointer",userSelect:"none"},onMouseDown:this.onMouseDown}))}}]),et}(reactExports.Component);function Item(j){var _e=j.children,et=j.setRef,tt=reactExports.useCallback(function(rt){et(rt)},[]);return reactExports.cloneElement(_e,{ref:tt})}function useChildren(j,_e,et,tt,rt,nt){var ot=nt.getKey;return j.slice(_e,et+1).map(function(it,st){var lt=_e+st,ut=rt(it,lt,{}),ct=ot(it);return reactExports.createElement(Item,{key:ct,setRef:function(ft){return tt(it,ft)}},ut)})}function _classCallCheck$e(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$e(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,tt.key,tt)}}function _createClass$e(j,_e,et){return _e&&_defineProperties$e(j.prototype,_e),et&&_defineProperties$e(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}var CacheMap=function(){function j(){_classCallCheck$e(this,j),this.maps=void 0,this.maps=Object.create(null)}return _createClass$e(j,[{key:"set",value:function(et,tt){this.maps[et]=tt}},{key:"get",value:function(et){return this.maps[et]}}]),j}();function _slicedToArray$2$1(j,_e){return _arrayWithHoles$2$1(j)||_iterableToArrayLimit$2$1(j,_e)||_unsupportedIterableToArray$2$1(j,_e)||_nonIterableRest$2$1()}function _nonIterableRest$2$1(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$2$1(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$2$1(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$2$1(j,_e)}}function _arrayLikeToArray$2$1(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$2$1(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt=[],rt=!0,nt=!1,ot,it;try{for(et=et.call(j);!(rt=(ot=et.next()).done)&&(tt.push(ot.value),!(_e&&tt.length===_e));rt=!0);}catch(st){nt=!0,it=st}finally{try{!rt&&et.return!=null&&et.return()}finally{if(nt)throw it}}return tt}}function _arrayWithHoles$2$1(j){if(Array.isArray(j))return j}function useHeights(j,_e,et){var tt=reactExports.useState(0),rt=_slicedToArray$2$1(tt,2),nt=rt[0],ot=rt[1],it=reactExports.useRef(new Map),st=reactExports.useRef(new CacheMap),lt=reactExports.useRef();function ut(){wrapperRaf.cancel(lt.current)}function ct(){ut(),lt.current=wrapperRaf(function(){it.current.forEach(function(ft,pt){if(ft&&ft.offsetParent){var gt=findDOMNode(ft),vt=gt.offsetHeight;st.current.get(pt)!==vt&&st.current.set(pt,gt.offsetHeight)}}),ot(function(ft){return ft+1})})}function dt(ft,pt){var gt=j(ft),vt=it.current.get(gt);pt?(it.current.set(gt,pt),ct()):it.current.delete(gt),!vt!=!pt&&(pt?_e==null||_e(ft):et==null||et(ft))}return reactExports.useEffect(function(){return ut},[]),[dt,ct,st.current,nt]}function _typeof$1$1(j){"@babel/helpers - typeof";return _typeof$1$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$1$1(j)}function useScrollTo(j,_e,et,tt,rt,nt,ot,it){var st=reactExports.useRef();return function(lt){if(lt==null){it();return}if(wrapperRaf.cancel(st.current),typeof lt=="number")ot(lt);else if(lt&&_typeof$1$1(lt)==="object"){var ut,ct=lt.align;"index"in lt?ut=lt.index:ut=_e.findIndex(function(gt){return rt(gt)===lt.key});var dt=lt.offset,ft=dt===void 0?0:dt,pt=function gt(vt,bt){if(!(vt<0||!j.current)){var _t=j.current.clientHeight,xt=!1,yt=bt;if(_t){for(var Et=bt||ct,St=0,$t=0,At=0,wt=Math.min(_e.length,ut),Ct=0;Ct<=wt;Ct+=1){var It=rt(_e[Ct]);$t=St;var Ot=et.get(It);At=$t+(Ot===void 0?tt:Ot),St=At,Ct===ut&&Ot===void 0&&(xt=!0)}var Nt=null;switch(Et){case"top":Nt=$t-ft;break;case"bottom":Nt=At-_t+ft;break;default:{var Pt=j.current.scrollTop,Mt=Pt+_t;$tMt&&(yt="bottom")}}Nt!==null&&Nt!==j.current.scrollTop&&ot(Nt)}st.current=wrapperRaf(function(){xt&&nt(),gt(vt-1,yt)})}};pt(3)}}}function findListDiffIndex(j,_e,et){var tt=j.length,rt=_e.length,nt,ot;if(tt===0&&rt===0)return null;ttj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$1$1(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt=[],rt=!0,nt=!1,ot,it;try{for(et=et.call(j);!(rt=(ot=et.next()).done)&&(tt.push(ot.value),!(_e&&tt.length===_e));rt=!0);}catch(st){nt=!0,it=st}finally{try{!rt&&et.return!=null&&et.return()}finally{if(nt)throw it}}return tt}}function _arrayWithHoles$1$1(j){if(Array.isArray(j))return j}function useDiffItem(j,_e,et){var tt=reactExports.useState(j),rt=_slicedToArray$1$1(tt,2),nt=rt[0],ot=rt[1],it=reactExports.useState(null),st=_slicedToArray$1$1(it,2),lt=st[0],ut=st[1];return reactExports.useEffect(function(){var ct=findListDiffIndex(nt||[],j||[],_e);(ct==null?void 0:ct.index)!==void 0&&(et==null||et(ct.index),ut(j[ct.index])),ot(j)},[j]),[lt]}function _typeof$E(j){"@babel/helpers - typeof";return _typeof$E=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$E(j)}var isFF=(typeof navigator>"u"?"undefined":_typeof$E(navigator))==="object"&&/Firefox/i.test(navigator.userAgent),useOriginScroll=function(j,_e){var et=reactExports.useRef(!1),tt=reactExports.useRef(null);function rt(){clearTimeout(tt.current),et.current=!0,tt.current=setTimeout(function(){et.current=!1},50)}var nt=reactExports.useRef({top:j,bottom:_e});return nt.current.top=j,nt.current.bottom=_e,function(ot){var it=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,st=ot<0&&nt.current.top||ot>0&&nt.current.bottom;return it&&st?(clearTimeout(tt.current),et.current=!1):(!st||et.current)&&rt(),!et.current&&st}};function useFrameWheel(j,_e,et,tt){var rt=reactExports.useRef(0),nt=reactExports.useRef(null),ot=reactExports.useRef(null),it=reactExports.useRef(!1),st=useOriginScroll(_e,et);function lt(ct){if(j){wrapperRaf.cancel(nt.current);var dt=ct.deltaY;rt.current+=dt,ot.current=dt,!st(dt)&&(isFF||ct.preventDefault(),nt.current=wrapperRaf(function(){var ft=it.current?10:1;tt(rt.current*ft),rt.current=0}))}}function ut(ct){j&&(it.current=ct.detail===ot.current)}return[lt,ut]}function canUseDom(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var useLayoutEffect$1=canUseDom()?reactExports.useLayoutEffect:reactExports.useEffect,SMOOTH_PTG=14/15;function useMobileTouchMove(j,_e,et){var tt=reactExports.useRef(!1),rt=reactExports.useRef(0),nt=reactExports.useRef(null),ot=reactExports.useRef(null),it,st=function(dt){if(tt.current){var ft=Math.ceil(dt.touches[0].pageY),pt=rt.current-ft;rt.current=ft,et(pt)&&dt.preventDefault(),clearInterval(ot.current),ot.current=setInterval(function(){pt*=SMOOTH_PTG,(!et(pt,!0)||Math.abs(pt)<=.1)&&clearInterval(ot.current)},16)}},lt=function(){tt.current=!1,it()},ut=function(dt){it(),dt.touches.length===1&&!tt.current&&(tt.current=!0,rt.current=Math.ceil(dt.touches[0].pageY),nt.current=dt.target,nt.current.addEventListener("touchmove",st),nt.current.addEventListener("touchend",lt))};it=function(){nt.current&&(nt.current.removeEventListener("touchmove",st),nt.current.removeEventListener("touchend",lt))},useLayoutEffect$1(function(){return j&&_e.current.addEventListener("touchstart",ut),function(){var ct;(ct=_e.current)===null||ct===void 0||ct.removeEventListener("touchstart",ut),it(),clearInterval(ot.current)}},[j])}var _excluded$g=["prefixCls","className","height","itemHeight","fullHeight","style","data","children","itemKey","virtual","component","onScroll","onVisibleChange"];function _extends$p(){return _extends$p=Object.assign||function(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$e(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt=[],rt=!0,nt=!1,ot,it;try{for(et=et.call(j);!(rt=(ot=et.next()).done)&&(tt.push(ot.value),!(_e&&tt.length===_e));rt=!0);}catch(st){nt=!0,it=st}finally{try{!rt&&et.return!=null&&et.return()}finally{if(nt)throw it}}return tt}}function _arrayWithHoles$f(j){if(Array.isArray(j))return j}function _objectWithoutProperties$h(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$h(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$h(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var EMPTY_DATA=[],ScrollStyle={overflowY:"auto",overflowAnchor:"none"};function RawList(j,_e){var et=j.prefixCls,tt=et===void 0?"rc-virtual-list":et,rt=j.className,nt=j.height,ot=j.itemHeight,it=j.fullHeight,st=it===void 0?!0:it,lt=j.style,ut=j.data,ct=j.children,dt=j.itemKey,ft=j.virtual,pt=j.component,gt=pt===void 0?"div":pt,vt=j.onScroll,bt=j.onVisibleChange,_t=_objectWithoutProperties$h(j,_excluded$g),xt=!!(ft!==!1&&nt&&ot),yt=xt&&ut&&ot*ut.length>nt,Et=reactExports.useState(0),St=_slicedToArray$e(Et,2),$t=St[0],At=St[1],wt=reactExports.useState(!1),Ct=_slicedToArray$e(wt,2),It=Ct[0],Ot=Ct[1],Nt=classnames$3(tt,rt),Pt=ut||EMPTY_DATA,Mt=reactExports.useRef(),Rt=reactExports.useRef(),Lt=reactExports.useRef(),jt=reactExports.useCallback(function(Cr){return typeof dt=="function"?dt(Cr):Cr==null?void 0:Cr[dt]},[dt]),Gt={getKey:jt};function Vt(Cr){At(function(Lr){var Xr;typeof Cr=="function"?Xr=Cr(Lr):Xr=Cr;var qr=Vr(Xr);return Mt.current.scrollTop=qr,qr})}var Yt=reactExports.useRef({start:0,end:Pt.length}),Xt=reactExports.useRef(),rr=useDiffItem(Pt,jt),cr=_slicedToArray$e(rr,1),vr=cr[0];Xt.current=vr;var Tr=useHeights(jt,null,null),gr=_slicedToArray$e(Tr,4),Er=gr[0],qt=gr[1],ir=gr[2],hr=gr[3],nr=reactExports.useMemo(function(){if(!xt)return{scrollHeight:void 0,start:0,end:Pt.length-1,offset:void 0};if(!yt){var Cr;return{scrollHeight:((Cr=Rt.current)===null||Cr===void 0?void 0:Cr.offsetHeight)||0,start:0,end:Pt.length-1,offset:void 0}}for(var Lr=0,Xr,qr,Qr,xn=Pt.length,wn=0;wn=$t&&Xr===void 0&&(Xr=wn,qr=Lr),En>$t+nt&&Qr===void 0&&(Qr=wn),Lr=En}return Xr===void 0&&(Xr=0,qr=0),Qr===void 0&&(Qr=Pt.length-1),Qr=Math.min(Qr+1,Pt.length),{scrollHeight:Lr,start:Xr,end:Qr,offset:qr}},[yt,xt,$t,Pt,hr,nt]),mr=nr.scrollHeight,Ar=nr.start,Or=nr.end,wr=nr.offset;Yt.current.start=Ar,Yt.current.end=Or;var Nr=mr-nt,Wr=reactExports.useRef(Nr);Wr.current=Nr;function Vr(Cr){var Lr=Cr;return Number.isNaN(Wr.current)||(Lr=Math.min(Lr,Wr.current)),Lr=Math.max(Lr,0),Lr}var Jr=$t<=0,Yr=$t>=Nr,jr=useOriginScroll(Jr,Yr);function Hr(Cr){var Lr=Cr;Vt(Lr)}function hn(Cr){var Lr=Cr.currentTarget.scrollTop;Lr!==$t&&Vt(Lr),vt==null||vt(Cr)}var pr=useFrameWheel(xt,Jr,Yr,function(Cr){Vt(function(Lr){var Xr=Lr+Cr;return Xr})}),sr=_slicedToArray$e(pr,2),Jt=sr[0],ur=sr[1];useMobileTouchMove(xt,Mt,function(Cr,Lr){return jr(Cr,Lr)?!1:(Jt({preventDefault:function(){},deltaY:Cr}),!0)}),useLayoutEffect$1(function(){function Cr(Lr){xt&&Lr.preventDefault()}return Mt.current.addEventListener("wheel",Jt),Mt.current.addEventListener("DOMMouseScroll",ur),Mt.current.addEventListener("MozMousePixelScroll",Cr),function(){Mt.current&&(Mt.current.removeEventListener("wheel",Jt),Mt.current.removeEventListener("DOMMouseScroll",ur),Mt.current.removeEventListener("MozMousePixelScroll",Cr))}},[xt]);var br=useScrollTo(Mt,Pt,ir,ot,jt,qt,Vt,function(){var Cr;(Cr=Lt.current)===null||Cr===void 0||Cr.delayHidden()});reactExports.useImperativeHandle(_e,function(){return{scrollTo:br}}),useLayoutEffect$1(function(){if(bt){var Cr=Pt.slice(Ar,Or+1);bt(Cr,Pt)}},[Ar,Or,Pt]);var Sr=useChildren(Pt,Ar,Or,Er,ct,Gt),yr=null;return nt&&(yr=_objectSpread$z(_defineProperty$D({},st?"height":"maxHeight",nt),ScrollStyle),xt&&(yr.overflowY="hidden",It&&(yr.pointerEvents="none"))),reactExports.createElement("div",_extends$p({style:_objectSpread$z(_objectSpread$z({},lt),{},{position:"relative"}),className:Nt},_t),reactExports.createElement(gt,{className:"".concat(tt,"-holder"),style:yr,ref:Mt,onScroll:hn},reactExports.createElement(Filler,{prefixCls:tt,height:mr,offset:wr,onInnerResize:qt,ref:Rt},Sr)),xt&&reactExports.createElement(ScrollBar,{ref:Lt,prefixCls:tt,scrollTop:$t,height:nt,scrollHeight:mr,count:Pt.length,onScroll:Hr,onStartMove:function(){Ot(!0)},onStopMove:function(){Ot(!1)}}))}var List=reactExports.forwardRef(RawList);List.displayName="List";var arrDel=function(j,_e){var et=j.slice(),tt=et.indexOf(_e);return tt>=0&&et.splice(tt,1),et},arrAdd=function(j,_e){var et=j.slice();return et.indexOf(_e)===-1&&et.push(_e),et},ROOT_NODE_ID="$root",Node$1=function(){function j(_e){var et=this,tt,rt,nt,ot=_e.node,it=_e.flattenNodes,st=_e.parent,lt=_e.selectedKeySet,ut=lt===void 0?new Set:lt,ct=_e.expandedKeySet,dt=ct===void 0?new Set:ct,ft=_e.loadInfo,pt=ft===void 0?{loadingKeys:[],loadedKeys:[]}:ft;this.internal=ot,this.parent=st,this.level=((rt=(tt=this.parent)===null||tt===void 0?void 0:tt.level)!==null&&rt!==void 0?rt:-1)+1,this.selected=ut.has(ot.id),this.expanded=dt.has(ot.id)||ot.id===ROOT_NODE_ID,this.ancestorExpanded=!!(st!=null&&st.expanded&&(st!=null&&st.ancestorExpanded))||ot.id===ROOT_NODE_ID,this.loading=pt.loadingKeys.includes(ot.id),this.loaded=pt.loadedKeys.includes(ot.id),this.isLeaf=(nt=ot.isLeaf)!==null&&nt!==void 0?nt:!(ot.children.length>0),j.nodesMap.set(ot.id,this),this.level>0&&this.ancestorExpanded&&it.push(this),this.childNodes=ot.children.map(function(gt){return new j({node:gt,parent:et,selectedKeySet:ut,expandedKeySet:dt,loadInfo:pt,flattenNodes:it})})}return Object.defineProperty(j.prototype,"id",{get:function(){return this.internal.id},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"title",{get:function(){return this.internal.title},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"children",{get:function(){return this.childNodes},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"searchKeys",{get:function(){return this.internal.searchKeys},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"isTag",{get:function(){return this.internal.isTag},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"ariaLabel",{get:function(){return this.internal.ariaLabel},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"extra",{get:function(){return this.internal.extra},enumerable:!1,configurable:!0}),j.init=function(_e,et,tt,rt){et===void 0&&(et=[]),tt===void 0&&(tt=[]),j.nodesMap=new Map;var nt=[];return j.root=new j({node:{title:"",children:_e,searchKeys:[],id:ROOT_NODE_ID},selectedKeySet:new Set(et),expandedKeySet:new Set(tt),loadInfo:rt,flattenNodes:nt}),nt},j.nodesMap=new Map,j}();/*! ***************************************************************************** + */var b$3=typeof Symbol=="function"&&Symbol.for,c$6=b$3?Symbol.for("react.element"):60103,d$1=b$3?Symbol.for("react.portal"):60106,e$2=b$3?Symbol.for("react.fragment"):60107,f$5=b$3?Symbol.for("react.strict_mode"):60108,g$7=b$3?Symbol.for("react.profiler"):60114,h$7=b$3?Symbol.for("react.provider"):60109,k$6=b$3?Symbol.for("react.context"):60110,l$5=b$3?Symbol.for("react.async_mode"):60111,m$7=b$3?Symbol.for("react.concurrent_mode"):60111,n$7=b$3?Symbol.for("react.forward_ref"):60112,p$6=b$3?Symbol.for("react.suspense"):60113,q$5=b$3?Symbol.for("react.suspense_list"):60120,r$7=b$3?Symbol.for("react.memo"):60115,t$6=b$3?Symbol.for("react.lazy"):60116,v$8=b$3?Symbol.for("react.block"):60121,w$6=b$3?Symbol.for("react.fundamental"):60117,x$7=b$3?Symbol.for("react.responder"):60118,y$8=b$3?Symbol.for("react.scope"):60119;function z$4(j){if(typeof j=="object"&&j!==null){var _e=j.$$typeof;switch(_e){case c$6:switch(j=j.type,j){case l$5:case m$7:case e$2:case g$7:case f$5:case p$6:return j;default:switch(j=j&&j.$$typeof,j){case k$6:case n$7:case t$6:case r$7:case h$7:return j;default:return _e}}case d$1:return _e}}}function A$2(j){return z$4(j)===m$7}var AsyncMode=l$5,ConcurrentMode=m$7,ContextConsumer=k$6,ContextProvider=h$7,Element$1=c$6,ForwardRef=n$7,Fragment=e$2,Lazy=t$6,Memo=r$7,Portal=d$1,Profiler=g$7,StrictMode=f$5,Suspense=p$6,isAsyncMode=function(j){return A$2(j)||z$4(j)===l$5},isConcurrentMode=A$2,isContextConsumer=function(j){return z$4(j)===k$6},isContextProvider=function(j){return z$4(j)===h$7},isElement=function(j){return typeof j=="object"&&j!==null&&j.$$typeof===c$6},isForwardRef=function(j){return z$4(j)===n$7},isFragment=function(j){return z$4(j)===e$2},isLazy=function(j){return z$4(j)===t$6},isMemo=function(j){return z$4(j)===r$7},isPortal=function(j){return z$4(j)===d$1},isProfiler=function(j){return z$4(j)===g$7},isStrictMode=function(j){return z$4(j)===f$5},isSuspense=function(j){return z$4(j)===p$6},isValidElementType=function(j){return typeof j=="string"||typeof j=="function"||j===e$2||j===m$7||j===g$7||j===f$5||j===p$6||j===q$5||typeof j=="object"&&j!==null&&(j.$$typeof===t$6||j.$$typeof===r$7||j.$$typeof===h$7||j.$$typeof===k$6||j.$$typeof===n$7||j.$$typeof===w$6||j.$$typeof===x$7||j.$$typeof===y$8||j.$$typeof===v$8)},typeOf=z$4,reactIs_production_min={AsyncMode,ConcurrentMode,ContextConsumer,ContextProvider,Element:Element$1,ForwardRef,Fragment,Lazy,Memo,Portal,Profiler,StrictMode,Suspense,isAsyncMode,isConcurrentMode,isContextConsumer,isContextProvider,isElement,isForwardRef,isFragment,isLazy,isMemo,isPortal,isProfiler,isStrictMode,isSuspense,isValidElementType,typeOf};createCommonjsModule(function(j,_e){});var reactIs=createCommonjsModule(function(j){j.exports=reactIs_production_min});function toArray$1(j){var _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},et=[];return React.Children.forEach(j,function(tt){tt==null&&!_e.keepEmpty||(Array.isArray(tt)?et=et.concat(toArray$1(tt)):reactIs.isFragment(tt)&&tt.props?et=et.concat(toArray$1(tt.props.children,_e)):et.push(tt))}),et}function _defineProperty$3$1(j,_e,et){return _e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function ownKeys$2$1(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread2$2(j){for(var _e=1;_e0},j.prototype.connect_=function(){!isBrowser$1||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),mutationObserverSupported?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},j.prototype.disconnect_=function(){!isBrowser$1||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},j.prototype.onTransitionEnd_=function(_e){var et=_e.propertyName,tt=et===void 0?"":et,rt=transitionKeys.some(function(nt){return!!~tt.indexOf(nt)});rt&&this.refresh()},j.getInstance=function(){return this.instance_||(this.instance_=new j),this.instance_},j.instance_=null,j}(),defineConfigurable=function(j,_e){for(var et=0,tt=Object.keys(_e);et"u"||!(Element instanceof Object))){if(!(_e instanceof getWindowOf(_e).Element))throw new TypeError('parameter 1 is not of type "Element".');var et=this.observations_;et.has(_e)||(et.set(_e,new ResizeObservation(_e)),this.controller_.addObserver(this),this.controller_.refresh())}},j.prototype.unobserve=function(_e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(_e instanceof getWindowOf(_e).Element))throw new TypeError('parameter 1 is not of type "Element".');var et=this.observations_;et.has(_e)&&(et.delete(_e),et.size||this.controller_.removeObserver(this))}},j.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},j.prototype.gatherActive=function(){var _e=this;this.clearActive(),this.observations_.forEach(function(et){et.isActive()&&_e.activeObservations_.push(et)})},j.prototype.broadcastActive=function(){if(this.hasActive()){var _e=this.callbackCtx_,et=this.activeObservations_.map(function(tt){return new ResizeObserverEntry(tt.target,tt.broadcastRect())});this.callback_.call(_e,et,_e),this.clearActive()}},j.prototype.clearActive=function(){this.activeObservations_.splice(0)},j.prototype.hasActive=function(){return this.activeObservations_.length>0},j}(),observers=typeof WeakMap<"u"?new WeakMap:new MapShim,ResizeObserver$1=function(){function j(_e){if(!(this instanceof j))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var et=ResizeObserverController.getInstance(),tt=new ResizeObserverSPI(_e,et,this);observers.set(this,tt)}return j}();["observe","unobserve","disconnect"].forEach(function(j){ResizeObserver$1.prototype[j]=function(){var _e;return(_e=observers.get(this))[j].apply(_e,arguments)}});var index$1=function(){return typeof global$1.ResizeObserver<"u"?global$1.ResizeObserver:ResizeObserver$1}(),elementListeners=new Map;function onResize(j){j.forEach(function(_e){var et,tt=_e.target;(et=elementListeners.get(tt))===null||et===void 0||et.forEach(function(rt){return rt(tt)})})}var resizeObserver=new index$1(onResize);function observe(j,_e){elementListeners.has(j)||(elementListeners.set(j,new Set),resizeObserver.observe(j)),elementListeners.get(j).add(_e)}function unobserve(j,_e){elementListeners.has(j)&&(elementListeners.get(j).delete(_e),elementListeners.get(j).size||(resizeObserver.unobserve(j),elementListeners.delete(j)))}function _classCallCheck$2$1(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$2$1(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,tt.key,tt)}}function _createClass$2$1(j,_e,et){return _e&&_defineProperties$2$1(j.prototype,_e),et&&_defineProperties$2$1(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _setPrototypeOf$1$1(j,_e){return _setPrototypeOf$1$1=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$1$1(j,_e)}function _inherits$1$1(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf$1$1(j,_e)}function _getPrototypeOf$1$1(j){return _getPrototypeOf$1$1=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$1$1(j)}function _isNativeReflectConstruct$1$1(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _typeof$3$1(j){"@babel/helpers - typeof";return _typeof$3$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$3$1(j)}function _assertThisInitialized$1$1(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _possibleConstructorReturn$1$1(j,_e){if(_e&&(_typeof$3$1(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$1$1(j)}function _createSuper$1$1(j){var _e=_isNativeReflectConstruct$1$1();return function(){var tt=_getPrototypeOf$1$1(j),rt;if(_e){var nt=_getPrototypeOf$1$1(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn$1$1(this,rt)}}var DomWrapper=function(j){_inherits$1$1(et,j);var _e=_createSuper$1$1(et);function et(){return _classCallCheck$2$1(this,et),_e.apply(this,arguments)}return _createClass$2$1(et,[{key:"render",value:function(){return this.props.children}}]),et}(reactExports.Component),CollectionContext=reactExports.createContext(null);function Collection(j){var _e=j.children,et=j.onBatchResize,tt=reactExports.useRef(0),rt=reactExports.useRef([]),nt=reactExports.useContext(CollectionContext),ot=reactExports.useCallback(function(it,st,lt){tt.current+=1;var ut=tt.current;rt.current.push({size:it,element:st,data:lt}),Promise.resolve().then(function(){ut===tt.current&&(et==null||et(rt.current),rt.current=[])}),nt==null||nt(it,st,lt)},[et,nt]);return reactExports.createElement(CollectionContext.Provider,{value:ot},_e)}function SingleObserver(j){var _e=j.children,et=j.disabled,tt=reactExports.useRef(null),rt=reactExports.useRef(null),nt=reactExports.useContext(CollectionContext),ot=typeof _e=="function",it=ot?_e(tt):_e,st=reactExports.useRef({width:-1,height:-1,offsetWidth:-1,offsetHeight:-1}),lt=!ot&&reactExports.isValidElement(it)&&supportRef(it),ut=lt?it.ref:null,ct=reactExports.useMemo(function(){return composeRef(ut,tt)},[ut,tt]),dt=reactExports.useRef(j);dt.current=j;var ft=reactExports.useCallback(function(pt){var gt=dt.current,mt=gt.onResize,bt=gt.data,_t=pt.getBoundingClientRect(),xt=_t.width,yt=_t.height,Et=pt.offsetWidth,St=pt.offsetHeight,Tt=Math.floor(xt),kt=Math.floor(yt);if(st.current.width!==Tt||st.current.height!==kt||st.current.offsetWidth!==Et||st.current.offsetHeight!==St){var $t={width:Tt,height:kt,offsetWidth:Et,offsetHeight:St};st.current=$t;var Ct=Et===Math.round(xt)?xt:Et,It=St===Math.round(yt)?yt:St,Nt=_objectSpread2$2(_objectSpread2$2({},$t),{},{offsetWidth:Ct,offsetHeight:It});nt==null||nt(Nt,pt,bt),mt&&Promise.resolve().then(function(){mt(Nt,pt)})}},[]);return reactExports.useEffect(function(){var pt=findDOMNode(tt.current)||findDOMNode(rt.current);return pt&&!et&&observe(pt,ft),function(){return unobserve(pt,ft)}},[tt.current,et]),reactExports.createElement(DomWrapper,{ref:rt},lt?reactExports.cloneElement(it,{ref:ct}):it)}var INTERNAL_PREFIX_KEY="rc-observer-key";function ResizeObserver$2(j){var _e=j.children,et=typeof _e=="function"?[_e]:toArray$1(_e);return et.map(function(tt,rt){var nt=(tt==null?void 0:tt.key)||"".concat(INTERNAL_PREFIX_KEY,"-").concat(rt);return reactExports.createElement(SingleObserver,_extends$1$2({},j,{key:nt}),tt)})}ResizeObserver$2.Collection=Collection;function ownKeys$1$1(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$1$1(j){for(var _e=1;_e1&&arguments[1]!==void 0?arguments[1]:1;rafUUID+=1;var et=rafUUID;function tt(rt){if(rt===0)cleanup(et),j();else{var nt=raf(function(){tt(rt-1)});rafIds.set(et,nt)}}return tt(_e),et}wrapperRaf.cancel=function(j){var _e=rafIds.get(j);return cleanup(_e),caf(_e)};function _typeof$2$1(j){"@babel/helpers - typeof";return _typeof$2$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$2$1(j)}function _defineProperty$1$1(j,_e,et){return _e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _classCallCheck$1$1(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$1$1(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,tt.key,tt)}}function _createClass$1$1(j,_e,et){return _e&&_defineProperties$1$1(j.prototype,_e),et&&_defineProperties$1$1(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits$b(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf$b(j,_e)}function _setPrototypeOf$b(j,_e){return _setPrototypeOf$b=Object.setPrototypeOf||function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$b(j,_e)}function _createSuper$b(j){var _e=_isNativeReflectConstruct$b();return function(){var tt=_getPrototypeOf$b(j),rt;if(_e){var nt=_getPrototypeOf$b(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn$b(this,rt)}}function _possibleConstructorReturn$b(j,_e){if(_e&&(_typeof$2$1(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$b(j)}function _assertThisInitialized$b(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$b(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$b(j){return _getPrototypeOf$b=Object.setPrototypeOf?Object.getPrototypeOf:function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$b(j)}var MIN_SIZE=20;function getPageY(j){return"touches"in j?j.touches[0].pageY:j.pageY}var ScrollBar=function(j){_inherits$b(et,j);var _e=_createSuper$b(et);function et(){var tt;_classCallCheck$1$1(this,et);for(var rt=arguments.length,nt=new Array(rt),ot=0;otst},tt}return _createClass$1$1(et,[{key:"componentDidMount",value:function(){this.scrollbarRef.current.addEventListener("touchstart",this.onScrollbarTouchStart),this.thumbRef.current.addEventListener("touchstart",this.onMouseDown)}},{key:"componentDidUpdate",value:function(rt){rt.scrollTop!==this.props.scrollTop&&this.delayHidden()}},{key:"componentWillUnmount",value:function(){this.removeEvents(),clearTimeout(this.visibleTimeout)}},{key:"render",value:function(){var rt=this.state,nt=rt.dragging,ot=rt.visible,it=this.props.prefixCls,st=this.getSpinHeight(),lt=this.getTop(),ut=this.showScroll(),ct=ut&&ot;return reactExports.createElement("div",{ref:this.scrollbarRef,className:classnames$1("".concat(it,"-scrollbar"),_defineProperty$1$1({},"".concat(it,"-scrollbar-show"),ut)),style:{width:8,top:0,bottom:0,right:0,position:"absolute",display:ct?null:"none"},onMouseDown:this.onContainerMouseDown,onMouseMove:this.delayHidden},reactExports.createElement("div",{ref:this.thumbRef,className:classnames$1("".concat(it,"-scrollbar-thumb"),_defineProperty$1$1({},"".concat(it,"-scrollbar-thumb-moving"),nt)),style:{width:"100%",height:st,top:lt,left:0,position:"absolute",background:"rgba(0, 0, 0, 0.5)",borderRadius:99,cursor:"pointer",userSelect:"none"},onMouseDown:this.onMouseDown}))}}]),et}(reactExports.Component);function Item(j){var _e=j.children,et=j.setRef,tt=reactExports.useCallback(function(rt){et(rt)},[]);return reactExports.cloneElement(_e,{ref:tt})}function useChildren(j,_e,et,tt,rt,nt){var ot=nt.getKey;return j.slice(_e,et+1).map(function(it,st){var lt=_e+st,ut=rt(it,lt,{}),ct=ot(it);return reactExports.createElement(Item,{key:ct,setRef:function(ft){return tt(it,ft)}},ut)})}function _classCallCheck$e(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$e(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,tt.key,tt)}}function _createClass$e(j,_e,et){return _e&&_defineProperties$e(j.prototype,_e),et&&_defineProperties$e(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}var CacheMap=function(){function j(){_classCallCheck$e(this,j),this.maps=void 0,this.maps=Object.create(null)}return _createClass$e(j,[{key:"set",value:function(et,tt){this.maps[et]=tt}},{key:"get",value:function(et){return this.maps[et]}}]),j}();function _slicedToArray$2$1(j,_e){return _arrayWithHoles$2$1(j)||_iterableToArrayLimit$2$1(j,_e)||_unsupportedIterableToArray$2$1(j,_e)||_nonIterableRest$2$1()}function _nonIterableRest$2$1(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$2$1(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$2$1(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$2$1(j,_e)}}function _arrayLikeToArray$2$1(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$2$1(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt=[],rt=!0,nt=!1,ot,it;try{for(et=et.call(j);!(rt=(ot=et.next()).done)&&(tt.push(ot.value),!(_e&&tt.length===_e));rt=!0);}catch(st){nt=!0,it=st}finally{try{!rt&&et.return!=null&&et.return()}finally{if(nt)throw it}}return tt}}function _arrayWithHoles$2$1(j){if(Array.isArray(j))return j}function useHeights(j,_e,et){var tt=reactExports.useState(0),rt=_slicedToArray$2$1(tt,2),nt=rt[0],ot=rt[1],it=reactExports.useRef(new Map),st=reactExports.useRef(new CacheMap),lt=reactExports.useRef();function ut(){wrapperRaf.cancel(lt.current)}function ct(){ut(),lt.current=wrapperRaf(function(){it.current.forEach(function(ft,pt){if(ft&&ft.offsetParent){var gt=findDOMNode(ft),mt=gt.offsetHeight;st.current.get(pt)!==mt&&st.current.set(pt,gt.offsetHeight)}}),ot(function(ft){return ft+1})})}function dt(ft,pt){var gt=j(ft),mt=it.current.get(gt);pt?(it.current.set(gt,pt),ct()):it.current.delete(gt),!mt!=!pt&&(pt?_e==null||_e(ft):et==null||et(ft))}return reactExports.useEffect(function(){return ut},[]),[dt,ct,st.current,nt]}function _typeof$1$1(j){"@babel/helpers - typeof";return _typeof$1$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$1$1(j)}function useScrollTo(j,_e,et,tt,rt,nt,ot,it){var st=reactExports.useRef();return function(lt){if(lt==null){it();return}if(wrapperRaf.cancel(st.current),typeof lt=="number")ot(lt);else if(lt&&_typeof$1$1(lt)==="object"){var ut,ct=lt.align;"index"in lt?ut=lt.index:ut=_e.findIndex(function(gt){return rt(gt)===lt.key});var dt=lt.offset,ft=dt===void 0?0:dt,pt=function gt(mt,bt){if(!(mt<0||!j.current)){var _t=j.current.clientHeight,xt=!1,yt=bt;if(_t){for(var Et=bt||ct,St=0,Tt=0,kt=0,$t=Math.min(_e.length,ut),Ct=0;Ct<=$t;Ct+=1){var It=rt(_e[Ct]);Tt=St;var Nt=et.get(It);kt=Tt+(Nt===void 0?tt:Nt),St=kt,Ct===ut&&Nt===void 0&&(xt=!0)}var Ot=null;switch(Et){case"top":Ot=Tt-ft;break;case"bottom":Ot=kt-_t+ft;break;default:{var jt=j.current.scrollTop,Mt=jt+_t;TtMt&&(yt="bottom")}}Ot!==null&&Ot!==j.current.scrollTop&&ot(Ot)}st.current=wrapperRaf(function(){xt&&nt(),gt(mt-1,yt)})}};pt(3)}}}function findListDiffIndex(j,_e,et){var tt=j.length,rt=_e.length,nt,ot;if(tt===0&&rt===0)return null;ttj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$1$1(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt=[],rt=!0,nt=!1,ot,it;try{for(et=et.call(j);!(rt=(ot=et.next()).done)&&(tt.push(ot.value),!(_e&&tt.length===_e));rt=!0);}catch(st){nt=!0,it=st}finally{try{!rt&&et.return!=null&&et.return()}finally{if(nt)throw it}}return tt}}function _arrayWithHoles$1$1(j){if(Array.isArray(j))return j}function useDiffItem(j,_e,et){var tt=reactExports.useState(j),rt=_slicedToArray$1$1(tt,2),nt=rt[0],ot=rt[1],it=reactExports.useState(null),st=_slicedToArray$1$1(it,2),lt=st[0],ut=st[1];return reactExports.useEffect(function(){var ct=findListDiffIndex(nt||[],j||[],_e);(ct==null?void 0:ct.index)!==void 0&&(et==null||et(ct.index),ut(j[ct.index])),ot(j)},[j]),[lt]}function _typeof$D(j){"@babel/helpers - typeof";return _typeof$D=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$D(j)}var isFF=(typeof navigator>"u"?"undefined":_typeof$D(navigator))==="object"&&/Firefox/i.test(navigator.userAgent),useOriginScroll=function(j,_e){var et=reactExports.useRef(!1),tt=reactExports.useRef(null);function rt(){clearTimeout(tt.current),et.current=!0,tt.current=setTimeout(function(){et.current=!1},50)}var nt=reactExports.useRef({top:j,bottom:_e});return nt.current.top=j,nt.current.bottom=_e,function(ot){var it=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,st=ot<0&&nt.current.top||ot>0&&nt.current.bottom;return it&&st?(clearTimeout(tt.current),et.current=!1):(!st||et.current)&&rt(),!et.current&&st}};function useFrameWheel(j,_e,et,tt){var rt=reactExports.useRef(0),nt=reactExports.useRef(null),ot=reactExports.useRef(null),it=reactExports.useRef(!1),st=useOriginScroll(_e,et);function lt(ct){if(j){wrapperRaf.cancel(nt.current);var dt=ct.deltaY;rt.current+=dt,ot.current=dt,!st(dt)&&(isFF||ct.preventDefault(),nt.current=wrapperRaf(function(){var ft=it.current?10:1;tt(rt.current*ft),rt.current=0}))}}function ut(ct){j&&(it.current=ct.detail===ot.current)}return[lt,ut]}function canUseDom(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var useLayoutEffect$1=canUseDom()?reactExports.useLayoutEffect:reactExports.useEffect,SMOOTH_PTG=14/15;function useMobileTouchMove(j,_e,et){var tt=reactExports.useRef(!1),rt=reactExports.useRef(0),nt=reactExports.useRef(null),ot=reactExports.useRef(null),it,st=function(dt){if(tt.current){var ft=Math.ceil(dt.touches[0].pageY),pt=rt.current-ft;rt.current=ft,et(pt)&&dt.preventDefault(),clearInterval(ot.current),ot.current=setInterval(function(){pt*=SMOOTH_PTG,(!et(pt,!0)||Math.abs(pt)<=.1)&&clearInterval(ot.current)},16)}},lt=function(){tt.current=!1,it()},ut=function(dt){it(),dt.touches.length===1&&!tt.current&&(tt.current=!0,rt.current=Math.ceil(dt.touches[0].pageY),nt.current=dt.target,nt.current.addEventListener("touchmove",st),nt.current.addEventListener("touchend",lt))};it=function(){nt.current&&(nt.current.removeEventListener("touchmove",st),nt.current.removeEventListener("touchend",lt))},useLayoutEffect$1(function(){return j&&_e.current.addEventListener("touchstart",ut),function(){var ct;(ct=_e.current)===null||ct===void 0||ct.removeEventListener("touchstart",ut),it(),clearInterval(ot.current)}},[j])}var _excluded$g=["prefixCls","className","height","itemHeight","fullHeight","style","data","children","itemKey","virtual","component","onScroll","onVisibleChange"];function _extends$p(){return _extends$p=Object.assign||function(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$d(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt=[],rt=!0,nt=!1,ot,it;try{for(et=et.call(j);!(rt=(ot=et.next()).done)&&(tt.push(ot.value),!(_e&&tt.length===_e));rt=!0);}catch(st){nt=!0,it=st}finally{try{!rt&&et.return!=null&&et.return()}finally{if(nt)throw it}}return tt}}function _arrayWithHoles$e(j){if(Array.isArray(j))return j}function _objectWithoutProperties$h(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$h(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$h(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var EMPTY_DATA=[],ScrollStyle={overflowY:"auto",overflowAnchor:"none"};function RawList(j,_e){var et=j.prefixCls,tt=et===void 0?"rc-virtual-list":et,rt=j.className,nt=j.height,ot=j.itemHeight,it=j.fullHeight,st=it===void 0?!0:it,lt=j.style,ut=j.data,ct=j.children,dt=j.itemKey,ft=j.virtual,pt=j.component,gt=pt===void 0?"div":pt,mt=j.onScroll,bt=j.onVisibleChange,_t=_objectWithoutProperties$h(j,_excluded$g),xt=!!(ft!==!1&&nt&&ot),yt=xt&&ut&&ot*ut.length>nt,Et=reactExports.useState(0),St=_slicedToArray$d(Et,2),Tt=St[0],kt=St[1],$t=reactExports.useState(!1),Ct=_slicedToArray$d($t,2),It=Ct[0],Nt=Ct[1],Ot=classnames$1(tt,rt),jt=ut||EMPTY_DATA,Mt=reactExports.useRef(),Rt=reactExports.useRef(),Lt=reactExports.useRef(),Pt=reactExports.useCallback(function(Ir){return typeof dt=="function"?dt(Ir):Ir==null?void 0:Ir[dt]},[dt]),Gt={getKey:Pt};function qt(Ir){kt(function(zr){var Xr;typeof Ir=="function"?Xr=Ir(zr):Xr=Ir;var Zr=qr(Xr);return Mt.current.scrollTop=Zr,Zr})}var Yt=reactExports.useRef({start:0,end:jt.length}),Xt=reactExports.useRef(),tr=useDiffItem(jt,Pt),cr=_slicedToArray$d(tr,1),mr=cr[0];Xt.current=mr;var Er=useHeights(Pt,null,null),hr=_slicedToArray$d(Er,4),_r=hr[0],Ut=hr[1],ar=hr[2],pr=hr[3],rr=reactExports.useMemo(function(){if(!xt)return{scrollHeight:void 0,start:0,end:jt.length-1,offset:void 0};if(!yt){var Ir;return{scrollHeight:((Ir=Rt.current)===null||Ir===void 0?void 0:Ir.offsetHeight)||0,start:0,end:jt.length-1,offset:void 0}}for(var zr=0,Xr,Zr,sn,$n=jt.length,Nn=0;Nn<$n;Nn+=1){var hn=jt[Nn],jn=Pt(hn),qn=ar.get(jn),Sn=zr+(qn===void 0?ot:qn);Sn>=Tt&&Xr===void 0&&(Xr=Nn,Zr=zr),Sn>Tt+nt&&sn===void 0&&(sn=Nn),zr=Sn}return Xr===void 0&&(Xr=0,Zr=0),sn===void 0&&(sn=jt.length-1),sn=Math.min(sn+1,jt.length),{scrollHeight:zr,start:Xr,end:sn,offset:Zr}},[yt,xt,Tt,jt,pr,nt]),vr=rr.scrollHeight,$r=rr.start,Rr=rr.end,Cr=rr.offset;Yt.current.start=$r,Yt.current.end=Rr;var Nr=vr-nt,Gr=reactExports.useRef(Nr);Gr.current=Nr;function qr(Ir){var zr=Ir;return Number.isNaN(Gr.current)||(zr=Math.min(zr,Gr.current)),zr=Math.max(zr,0),zr}var Qr=Tt<=0,Yr=Tt>=Nr,Pr=useOriginScroll(Qr,Yr);function Vr(Ir){var zr=Ir;qt(zr)}function yn(Ir){var zr=Ir.currentTarget.scrollTop;zr!==Tt&&qt(zr),mt==null||mt(Ir)}var fr=useFrameWheel(xt,Qr,Yr,function(Ir){qt(function(zr){var Xr=zr+Ir;return Xr})}),sr=_slicedToArray$d(fr,2),ir=sr[0],gr=sr[1];useMobileTouchMove(xt,Mt,function(Ir,zr){return Pr(Ir,zr)?!1:(ir({preventDefault:function(){},deltaY:Ir}),!0)}),useLayoutEffect$1(function(){function Ir(zr){xt&&zr.preventDefault()}return Mt.current.addEventListener("wheel",ir),Mt.current.addEventListener("DOMMouseScroll",gr),Mt.current.addEventListener("MozMousePixelScroll",Ir),function(){Mt.current&&(Mt.current.removeEventListener("wheel",ir),Mt.current.removeEventListener("DOMMouseScroll",gr),Mt.current.removeEventListener("MozMousePixelScroll",Ir))}},[xt]);var wr=useScrollTo(Mt,jt,ar,ot,Pt,Ut,qt,function(){var Ir;(Ir=Lt.current)===null||Ir===void 0||Ir.delayHidden()});reactExports.useImperativeHandle(_e,function(){return{scrollTo:wr}}),useLayoutEffect$1(function(){if(bt){var Ir=jt.slice($r,Rr+1);bt(Ir,jt)}},[$r,Rr,jt]);var Mr=useChildren(jt,$r,Rr,_r,ct,Gt),Sr=null;return nt&&(Sr=_objectSpread$y(_defineProperty$C({},st?"height":"maxHeight",nt),ScrollStyle),xt&&(Sr.overflowY="hidden",It&&(Sr.pointerEvents="none"))),reactExports.createElement("div",_extends$p({style:_objectSpread$y(_objectSpread$y({},lt),{},{position:"relative"}),className:Ot},_t),reactExports.createElement(gt,{className:"".concat(tt,"-holder"),style:Sr,ref:Mt,onScroll:yn},reactExports.createElement(Filler,{prefixCls:tt,height:vr,offset:Cr,onInnerResize:Ut,ref:Rt},Mr)),xt&&reactExports.createElement(ScrollBar,{ref:Lt,prefixCls:tt,scrollTop:Tt,height:nt,scrollHeight:vr,count:jt.length,onScroll:Vr,onStartMove:function(){Nt(!0)},onStopMove:function(){Nt(!1)}}))}var List=reactExports.forwardRef(RawList);List.displayName="List";var arrDel=function(j,_e){var et=j.slice(),tt=et.indexOf(_e);return tt>=0&&et.splice(tt,1),et},arrAdd=function(j,_e){var et=j.slice();return et.indexOf(_e)===-1&&et.push(_e),et},ROOT_NODE_ID="$root",Node$1=function(){function j(_e){var et=this,tt,rt,nt,ot=_e.node,it=_e.flattenNodes,st=_e.parent,lt=_e.selectedKeySet,ut=lt===void 0?new Set:lt,ct=_e.expandedKeySet,dt=ct===void 0?new Set:ct,ft=_e.loadInfo,pt=ft===void 0?{loadingKeys:[],loadedKeys:[]}:ft;this.internal=ot,this.parent=st,this.level=((rt=(tt=this.parent)===null||tt===void 0?void 0:tt.level)!==null&&rt!==void 0?rt:-1)+1,this.selected=ut.has(ot.id),this.expanded=dt.has(ot.id)||ot.id===ROOT_NODE_ID,this.ancestorExpanded=!!(st!=null&&st.expanded&&(st!=null&&st.ancestorExpanded))||ot.id===ROOT_NODE_ID,this.loading=pt.loadingKeys.includes(ot.id),this.loaded=pt.loadedKeys.includes(ot.id),this.isLeaf=(nt=ot.isLeaf)!==null&&nt!==void 0?nt:!(ot.children.length>0),j.nodesMap.set(ot.id,this),this.level>0&&this.ancestorExpanded&&it.push(this),this.childNodes=ot.children.map(function(gt){return new j({node:gt,parent:et,selectedKeySet:ut,expandedKeySet:dt,loadInfo:pt,flattenNodes:it})})}return Object.defineProperty(j.prototype,"id",{get:function(){return this.internal.id},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"title",{get:function(){return this.internal.title},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"children",{get:function(){return this.childNodes},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"searchKeys",{get:function(){return this.internal.searchKeys},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"isTag",{get:function(){return this.internal.isTag},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"ariaLabel",{get:function(){return this.internal.ariaLabel},enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype,"extra",{get:function(){return this.internal.extra},enumerable:!1,configurable:!0}),j.init=function(_e,et,tt,rt){et===void 0&&(et=[]),tt===void 0&&(tt=[]),j.nodesMap=new Map;var nt=[];return j.root=new j({node:{title:"",children:_e,searchKeys:[],id:ROOT_NODE_ID},selectedKeySet:new Set(et),expandedKeySet:new Set(tt),loadInfo:rt,flattenNodes:nt}),nt},j.nodesMap=new Map,j}();/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any @@ -242,8 +242,8 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */var __assign$2=function(){return __assign$2=Object.assign||function(_e){for(var et,tt=1,rt=arguments.length;tt"u"?InjectionMode.none:InjectionMode.insertNode,defaultPrefix:"css",namespace:void 0,cspSettings:void 0},_e),this._classNameToArgs=(tt=et==null?void 0:et.classNameToArgs)!==null&&tt!==void 0?tt:this._classNameToArgs,this._counter=(rt=et==null?void 0:et.counter)!==null&&rt!==void 0?rt:this._counter,this._keyToClassName=(ot=(nt=this._config.classNameCache)!==null&&nt!==void 0?nt:et==null?void 0:et.keyToClassName)!==null&&ot!==void 0?ot:this._keyToClassName,this._preservedRules=(it=et==null?void 0:et.preservedRules)!==null&&it!==void 0?it:this._preservedRules,this._rules=(st=et==null?void 0:et.rules)!==null&&st!==void 0?st:this._rules}return j.getInstance=function(){if(_stylesheet=_global[STYLESHEET_SETTING],!_stylesheet||_stylesheet._lastStyleElement&&_stylesheet._lastStyleElement.ownerDocument!==document){var _e=(_global==null?void 0:_global.FabricConfig)||{},et=new j(_e.mergeStyles,_e.serializedStylesheet);_stylesheet=et,_global[STYLESHEET_SETTING]=et}return _stylesheet},j.prototype.serialize=function(){return JSON.stringify({classNameToArgs:this._classNameToArgs,counter:this._counter,keyToClassName:this._keyToClassName,preservedRules:this._preservedRules,rules:this._rules})},j.prototype.setConfig=function(_e){this._config=__assign$2(__assign$2({},this._config),_e)},j.prototype.onReset=function(_e){var et=this;return this._onResetCallbacks.push(_e),function(){et._onResetCallbacks=et._onResetCallbacks.filter(function(tt){return tt!==_e})}},j.prototype.onInsertRule=function(_e){var et=this;return this._onInsertRuleCallbacks.push(_e),function(){et._onInsertRuleCallbacks=et._onInsertRuleCallbacks.filter(function(tt){return tt!==_e})}},j.prototype.getClassName=function(_e){var et=this._config.namespace,tt=_e||this._config.defaultPrefix;return(et?et+"-":"")+tt+"-"+this._counter++},j.prototype.cacheClassName=function(_e,et,tt,rt){this._keyToClassName[et]=_e,this._classNameToArgs[_e]={args:tt,rules:rt}},j.prototype.classNameFromKey=function(_e){return this._keyToClassName[_e]},j.prototype.getClassNameCache=function(){return this._keyToClassName},j.prototype.argsFromClassName=function(_e){var et=this._classNameToArgs[_e];return et&&et.args},j.prototype.insertedRulesFromClassName=function(_e){var et=this._classNameToArgs[_e];return et&&et.rules},j.prototype.insertRule=function(_e,et){var tt=this._config.injectionMode,rt=tt!==InjectionMode.none?this._getStyleElement():void 0;if(et&&this._preservedRules.push(_e),rt)switch(tt){case InjectionMode.insertNode:var nt=rt.sheet;try{nt.insertRule(_e,nt.cssRules.length)}catch{}break;case InjectionMode.appendChild:rt.appendChild(document.createTextNode(_e));break}else this._rules.push(_e);this._config.onInsertRule&&this._config.onInsertRule(_e),this._onInsertRuleCallbacks.forEach(function(ot){return ot()})},j.prototype.getRules=function(_e){return(_e?this._preservedRules.join(""):"")+this._rules.join("")},j.prototype.reset=function(){this._rules=[],this._counter=0,this._classNameToArgs={},this._keyToClassName={},this._onResetCallbacks.forEach(function(_e){return _e()})},j.prototype.resetKeys=function(){this._keyToClassName={}},j.prototype._getStyleElement=function(){var _e=this;return!this._styleElement&&typeof document<"u"&&(this._styleElement=this._createStyleElement(),REUSE_STYLE_NODE||window.requestAnimationFrame(function(){_e._styleElement=void 0})),this._styleElement},j.prototype._createStyleElement=function(){var _e=document.head,et=document.createElement("style"),tt=null;et.setAttribute("data-merge-styles","true");var rt=this._config.cspSettings;if(rt&&rt.nonce&&et.setAttribute("nonce",rt.nonce),this._lastStyleElement)tt=this._lastStyleElement.nextElementSibling;else{var nt=this._findPlaceholderStyleTag();nt?tt=nt.nextElementSibling:tt=_e.childNodes[0]}return _e.insertBefore(et,_e.contains(tt)?tt:null),this._lastStyleElement=et,et},j.prototype._findPlaceholderStyleTag=function(){var _e=document.head;return _e?_e.querySelector("style[data-merge-styles]"):null},j}();function extractStyleParts(){for(var j=[],_e=0;_e=0)nt(lt.split(" "));else{var ut=rt.argsFromClassName(lt);ut?nt(ut):et.indexOf(lt)===-1&&et.push(lt)}else Array.isArray(lt)?nt(lt):typeof lt=="object"&&tt.push(lt)}}return nt(j),{classes:et,objects:tt}}function getRTL(){return _rtl===void 0&&(_rtl=typeof document<"u"&&!!document.documentElement&&document.documentElement.getAttribute("dir")==="rtl"),_rtl}var _rtl;_rtl=getRTL();function getStyleOptions(){return{rtl:getRTL()}}var rules={};function kebabRules(j,_e){var et=j[_e];et.charAt(0)!=="-"&&(j[_e]=rules[et]=rules[et]||et.replace(/([A-Z])/g,"-$1").toLowerCase())}var _vendorSettings;function getVendorSettings(){var j;if(!_vendorSettings){var _e=typeof document<"u"?document:void 0,et=typeof navigator<"u"?navigator:void 0,tt=(j=et==null?void 0:et.userAgent)===null||j===void 0?void 0:j.toLowerCase();_e?_vendorSettings={isWebkit:!!(_e&&"WebkitAppearance"in _e.documentElement.style),isMoz:!!(tt&&tt.indexOf("firefox")>-1),isOpera:!!(tt&&tt.indexOf("opera")>-1),isMs:!!(et&&(/rv:11.0/i.test(et.userAgent)||/Edge\/\d./i.test(navigator.userAgent)))}:_vendorSettings={isWebkit:!0,isMoz:!0,isOpera:!0,isMs:!0}}return _vendorSettings}var autoPrefixNames={"user-select":1};function prefixRules(j,_e){var et=getVendorSettings(),tt=j[_e];if(autoPrefixNames[tt]){var rt=j[_e+1];autoPrefixNames[tt]&&(et.isWebkit&&j.push("-webkit-"+tt,rt),et.isMoz&&j.push("-moz-"+tt,rt),et.isMs&&j.push("-ms-"+tt,rt),et.isOpera&&j.push("-o-"+tt,rt))}}var NON_PIXEL_NUMBER_PROPS=["column-count","font-weight","flex","flex-grow","flex-shrink","fill-opacity","opacity","order","z-index","zoom"];function provideUnits(j,_e){var et=j[_e],tt=j[_e+1];if(typeof tt=="number"){var rt=NON_PIXEL_NUMBER_PROPS.indexOf(et)>-1,nt=et.indexOf("--")>-1,ot=rt||nt?"":"px";j[_e+1]=""+tt+ot}}var _a$2,LEFT="left",RIGHT="right",NO_FLIP="@noflip",NAME_REPLACEMENTS=(_a$2={},_a$2[LEFT]=RIGHT,_a$2[RIGHT]=LEFT,_a$2),VALUE_REPLACEMENTS={"w-resize":"e-resize","sw-resize":"se-resize","nw-resize":"ne-resize"};function rtlifyRules(j,_e,et){if(j.rtl){var tt=_e[et];if(!tt)return;var rt=_e[et+1];if(typeof rt=="string"&&rt.indexOf(NO_FLIP)>=0)_e[et+1]=rt.replace(/\s*(?:\/\*\s*)?\@noflip\b(?:\s*\*\/)?\s*?/g,"");else if(tt.indexOf(LEFT)>=0)_e[et]=tt.replace(LEFT,RIGHT);else if(tt.indexOf(RIGHT)>=0)_e[et]=tt.replace(RIGHT,LEFT);else if(String(rt).indexOf(LEFT)>=0)_e[et+1]=rt.replace(LEFT,RIGHT);else if(String(rt).indexOf(RIGHT)>=0)_e[et+1]=rt.replace(RIGHT,LEFT);else if(NAME_REPLACEMENTS[tt])_e[et]=NAME_REPLACEMENTS[tt];else if(VALUE_REPLACEMENTS[rt])_e[et+1]=VALUE_REPLACEMENTS[rt];else switch(tt){case"margin":case"padding":_e[et+1]=flipQuad(rt);break;case"box-shadow":_e[et+1]=negateNum(rt,0);break}}}function negateNum(j,_e){var et=j.split(" "),tt=parseInt(et[_e],10);return et[0]=et[0].replace(String(tt),String(tt*-1)),et.join(" ")}function flipQuad(j){if(typeof j=="string"){var _e=j.split(" ");if(_e.length===4)return _e[0]+" "+_e[3]+" "+_e[2]+" "+_e[1]}return j}function tokenizeWithParentheses(j){for(var _e=[],et=0,tt=0,rt=0;rtet&&_e.push(j.substring(et,rt)),et=rt+1);break}return et-1&&_e.push([tt.index,tt.index+tt[0].length,tt[1].split(",").map(function(rt){return":global("+rt.trim()+")"}).join(", ")]);return _e.reverse().reduce(function(rt,nt){var ot=nt[0],it=nt[1],st=nt[2],lt=rt.slice(0,ot),ut=rt.slice(it);return lt+st+ut},j)}function expandSelector(j,_e){return j.indexOf(":global(")>=0?j.replace(globalSelectorRegExp,"$1"):j.indexOf(":")===0?_e+j:j.indexOf("&")<0?_e+" "+j:j}function extractSelector(j,_e,et,tt){_e===void 0&&(_e={__order:[]}),et.indexOf("@")===0?(et=et+"{"+j,extractRules([tt],_e,et)):et.indexOf(",")>-1?expandCommaSeparatedGlobals(et).split(",").map(function(rt){return rt.trim()}).forEach(function(rt){return extractRules([tt],_e,expandSelector(rt,j))}):extractRules([tt],_e,expandSelector(et,j))}function extractRules(j,_e,et){_e===void 0&&(_e={__order:[]}),et===void 0&&(et="&");var tt=Stylesheet.getInstance(),rt=_e[et];rt||(rt={},_e[et]=rt,_e.__order.push(et));for(var nt=0,ot=j;nt"u")){var tt=document.head||document.getElementsByTagName("head")[0],rt=document.createElement("style");rt.type="text/css",et==="top"&&tt.firstChild?tt.insertBefore(rt,tt.firstChild):tt.appendChild(rt),rt.styleSheet?rt.styleSheet.cssText=j:rt.appendChild(document.createTextNode(j))}}var css_248z=".root_ce9fd48c{margin:0;padding:0}.item_34141342{list-style:none}.content_6abc12be{display:flex;align-items:center}.content_6abc12be:hover{cursor:pointer;background-color:#f3f2f1}.icon_aaa0d589{border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid #8a8886;margin:0 11px 0 3px}.expanded_6233c4e1{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #8a8886;margin:3px 8px 0 0}.leaf_f2922997{border:6px solid transparent;margin:0 8px 0 0}.group_7e2ac704,.inner_683a43d6{padding:0;margin:0}",classes$3={root:"root_ce9fd48c",item:"item_34141342",content:"content_6abc12be",icon:"icon_aaa0d589",expanded:"expanded_6233c4e1",leaf:"leaf_f2922997",group:"group_7e2ac704",inner:"inner_683a43d6"};styleInject(css_248z);var mergeTreeClasses=function(j){return{root:mergeStyles(classes$3.root,j==null?void 0:j.root)}},mergeTreeNodeClasses=function(j,_e){var et,tt,rt;return{item:mergeStyles(classes$3.item,_e==null?void 0:_e.item),icon:mergeStyles(classes$3.icon,j.expanded&&classes$3.expanded,j.isLeaf&&classes$3.leaf),group:mergeStyles(classes$3.group,_e==null?void 0:_e.group),inner:mergeStyles(classes$3.inner,_e==null?void 0:_e.inner),content:mergeStyles(classes$3.content,(et=_e==null?void 0:_e.content)===null||et===void 0?void 0:et.base,j.expanded&&((tt=_e==null?void 0:_e.content)===null||tt===void 0?void 0:tt.expand),j.isLeaf&&((rt=_e==null?void 0:_e.content)===null||rt===void 0?void 0:rt.leaf))}},TreeNode$1=reactExports.forwardRef(function(j,_e){var et,tt,rt,nt,ot,it,st,lt,ut=j.node,ct=j.classes,dt=j.indent,ft=j.calcIndent,pt=j.onNodeClick,gt=j.renderIcon,vt=j.renderContent,bt=j.renderInnerContent,_t=!ut.isLeaf&&ut.expanded,xt=mergeTreeNodeClasses(ut,ct),yt=ft?ft(ut):{item:(ut.level-1)*((et=dt==null?void 0:dt.item)!==null&&et!==void 0?et:20)+((tt=dt==null?void 0:dt.root)!==null&&tt!==void 0?tt:0),innerItem:ut.level*((rt=dt==null?void 0:dt.item)!==null&&rt!==void 0?rt:20)+((nt=dt==null?void 0:dt.root)!==null&&nt!==void 0?nt:0)},Et=reactExports.useCallback(function(St){St.preventDefault(),St.stopPropagation()},[]);return reactExports.createElement("div",{key:ut.id,role:"treeitem","aria-selected":ut.selected,"aria-expanded":ut.expanded,tabIndex:-1,className:xt.item,onClick:pt.bind(null,ut),"data-item-id":ut.id,ref:_e},reactExports.createElement("div",{className:xt.content,style:{paddingLeft:(ot=yt.item)!==null&&ot!==void 0?ot:20}},(it=gt==null?void 0:gt(ut))!==null&&it!==void 0?it:reactExports.createElement("span",{className:xt.icon}),(st=vt==null?void 0:vt(ut))!==null&&st!==void 0?st:reactExports.createElement("span",{role:"button"},ut.title)),_t&&reactExports.createElement(reactExports.Fragment,null,bt&&reactExports.createElement("div",{role:"group",key:"innerContent",className:xt.inner,style:{paddingLeft:(lt=yt.innerItem)!==null&<!==void 0?lt:40},onClick:Et},bt(ut))))});TreeNode$1.displayName="TreeNode";var ReactAccessibleTree=reactExports.forwardRef(function(j,_e){var et=j.selectedKeys,tt=et===void 0?[]:et,rt=j.expandedKeys,nt=rt===void 0?[]:rt,ot=j.treeData,it=j.classes,st=j.indent,lt=j.height,ut=j.itemHeight,ct=j.virtual,dt=j.calcIndent,ft=j.onKeyDown,pt=j.renderIcon,gt=j.renderContent,vt=j.renderInnerContent,bt=j.onSelect,_t=j.multiple,xt=j.onExpand,yt=j.loadData,Et=reactExports.useState({loadedKeys:[],loadingKeys:[]}),St=Et[0],$t=Et[1],At=reactExports.useRef(null),wt=reactExports.useRef(null),Ct=reactExports.useMemo(function(){return Node$1.init(ot,tt,nt,St)},[ot,tt,nt,St]);reactExports.useImperativeHandle(_e,function(){return{scrollTo:function(Vt){var Yt;(Yt=wt.current)===null||Yt===void 0||Yt.scrollTo(Vt)}}}),reactExports.useEffect(function(){Pt(0)},[]);var It=function(Vt,Yt){var Xt=tt,rr=Yt.id,cr=!Yt.selected;cr?_t?Xt=arrAdd(Xt,rr):Xt=[rr]:Xt=arrDel(Xt,rr),bt==null||bt(Xt,{node:Yt,selected:cr,nativeEvent:Vt})},Ot=function(Vt,Yt){var Xt=nt,rr=Yt.id,cr=!Yt.expanded;cr?Xt=arrAdd(Xt,rr):Xt=arrDel(Xt,rr),xt==null||xt(Xt,{node:Yt,expanded:cr,nativeEvent:Vt}),cr&&yt&&Nt(Yt)},Nt=function(Vt){$t(function(Yt){var Xt=Yt.loadedKeys,rr=Yt.loadingKeys,cr=Vt.id;if(!yt||Xt.includes(cr)||rr.includes(cr))return St;var vr=yt(Vt);return vr.then(function(){var Tr=St.loadedKeys,gr=St.loadingKeys,Er=arrAdd(Tr,cr),qt=arrDel(gr,cr);$t({loadedKeys:Er,loadingKeys:qt})}),{loadedKeys:Xt,loadingKeys:arrAdd(rr,cr)}})},Pt=function(Vt){var Yt,Xt,rr=Array.from((Xt=(Yt=At.current)===null||Yt===void 0?void 0:Yt.querySelectorAll("div[role='treeitem']"))!==null&&Xt!==void 0?Xt:[]);rr.forEach(function(cr,vr){vr===Vt?cr.setAttribute("tabindex","0"):cr.setAttribute("tabindex","-1")})},Mt=function(Vt){var Yt,Xt,rr;Vt.stopPropagation();var cr=Vt.target;if(cr.getAttribute("role")!=="treeitem"||Vt.ctrlKey||Vt.metaKey)return-1;var vr=Array.from((Xt=(Yt=At.current)===null||Yt===void 0?void 0:Yt.querySelectorAll("div[role='treeitem']"))!==null&&Xt!==void 0?Xt:[]),Tr=vr.indexOf(cr),gr=Vt.keyCode>=65&&Vt.keyCode<=90;if(gr){var Er=-1,qt=vr.findIndex(function(nr,mr){var Ar=nr.getAttribute("data-item-id"),Or=Node$1.nodesMap.get(Ar??""),wr=Or==null?void 0:Or.searchKeys.some(function(Nr){return Nr.match(new RegExp("^"+Vt.key,"i"))});return wr&&mr>Tr?!0:(wr&&mr<=Tr&&(Er=Er===-1?mr:Er),!1)}),ir=qt===-1?Er:qt;return(rr=vr[ir])===null||rr===void 0||rr.focus(),ir}switch(Vt.key){case"ArrowDown":{var hr=(Tr+1)%vr.length;return vr[hr].focus(),hr}case"ArrowUp":{var hr=(Tr-1+vr.length)%vr.length;return vr[hr].focus(),hr}case"ArrowLeft":case"ArrowRight":return cr.click(),Tr;case"Home":return vr[0].focus(),0;case"End":return vr[vr.length-1].focus(),vr.length-1;default:return ft==null||ft(Vt),Tr}},Rt=function(Vt){var Yt=Mt(Vt);Yt>-1&&Pt(Yt)},Lt=function(Vt,Yt){Yt.stopPropagation(),It(Yt,Vt),!(Vt.loading||Vt.loaded&&Vt.isLeaf)&&Ot(Yt,Vt)},jt=mergeTreeClasses(it),Gt=function(Vt){return Vt.id};return reactExports.createElement("div",{role:"tree",className:jt.root,onKeyDown:Rt,ref:At},reactExports.createElement(List,{data:Ct,itemKey:Gt,height:lt,fullHeight:!1,virtual:ct,itemHeight:ut,ref:wt},function(Vt){return reactExports.createElement(TreeNode$1,{key:Vt.id,node:Vt,classes:it,indent:st,calcIndent:dt,renderIcon:pt,renderContent:gt,renderInnerContent:vt,onNodeClick:Lt})}))});ReactAccessibleTree.displayName="ReactAccessibleTree";var __extends$1=function(){var j=function(_e,et){return j=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(tt,rt){tt.__proto__=rt}||function(tt,rt){for(var nt in rt)Object.prototype.hasOwnProperty.call(rt,nt)&&(tt[nt]=rt[nt])},j(_e,et)};return function(_e,et){j(_e,et);function tt(){this.constructor=_e}_e.prototype=et===null?Object.create(et):(tt.prototype=et.prototype,new tt)}}(),__assign$1=function(){return __assign$1=Object.assign||function(j){for(var _e,et=1,tt=arguments.length;et"u"?void 0:Number(tt),maxHeight:typeof rt>"u"?void 0:Number(rt),minWidth:typeof nt>"u"?void 0:Number(nt),minHeight:typeof ot>"u"?void 0:Number(ot)}},definedProps=["as","style","className","grid","snap","bounds","boundsByDirection","size","defaultSize","minWidth","minHeight","maxWidth","maxHeight","lockAspectRatio","lockAspectRatioExtraWidth","lockAspectRatioExtraHeight","enable","handleStyles","handleClasses","handleWrapperStyle","handleWrapperClass","children","onResizeStart","onResize","onResizeStop","handleComponent","scale","resizeRatio","snapGap"],baseClassName="__resizable_base__",Resizable=function(j){__extends(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt.ratio=1,tt.resizable=null,tt.parentLeft=0,tt.parentTop=0,tt.resizableLeft=0,tt.resizableRight=0,tt.resizableTop=0,tt.resizableBottom=0,tt.targetLeft=0,tt.targetTop=0,tt.appendBase=function(){if(!tt.resizable||!tt.window)return null;var rt=tt.parentNode;if(!rt)return null;var nt=tt.window.document.createElement("div");return nt.style.width="100%",nt.style.height="100%",nt.style.position="absolute",nt.style.transform="scale(0, 0)",nt.style.left="0",nt.style.flex="0 0 100%",nt.classList?nt.classList.add(baseClassName):nt.className+=baseClassName,rt.appendChild(nt),nt},tt.removeBase=function(rt){var nt=tt.parentNode;nt&&nt.removeChild(rt)},tt.ref=function(rt){rt&&(tt.resizable=rt)},tt.state={isResizing:!1,width:typeof(tt.propsSize&&tt.propsSize.width)>"u"?"auto":tt.propsSize&&tt.propsSize.width,height:typeof(tt.propsSize&&tt.propsSize.height)>"u"?"auto":tt.propsSize&&tt.propsSize.height,direction:"right",original:{x:0,y:0,width:0,height:0},backgroundStyle:{height:"100%",width:"100%",backgroundColor:"rgba(0,0,0,0)",cursor:"auto",opacity:0,position:"fixed",zIndex:9999,top:"0",left:"0",bottom:"0",right:"0"},flexBasis:void 0},tt.onResizeStart=tt.onResizeStart.bind(tt),tt.onMouseMove=tt.onMouseMove.bind(tt),tt.onMouseUp=tt.onMouseUp.bind(tt),tt}return Object.defineProperty(_e.prototype,"parentNode",{get:function(){return this.resizable?this.resizable.parentNode:null},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"window",{get:function(){return!this.resizable||!this.resizable.ownerDocument?null:this.resizable.ownerDocument.defaultView},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"propsSize",{get:function(){return this.props.size||this.props.defaultSize||DEFAULT_SIZE},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"size",{get:function(){var et=0,tt=0;if(this.resizable&&this.window){var rt=this.resizable.offsetWidth,nt=this.resizable.offsetHeight,ot=this.resizable.style.position;ot!=="relative"&&(this.resizable.style.position="relative"),et=this.resizable.style.width!=="auto"?this.resizable.offsetWidth:rt,tt=this.resizable.style.height!=="auto"?this.resizable.offsetHeight:nt,this.resizable.style.position=ot}return{width:et,height:tt}},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"sizeStyle",{get:function(){var et=this,tt=this.props.size,rt=function(it){if(typeof et.state[it]>"u"||et.state[it]==="auto")return"auto";if(et.propsSize&&et.propsSize[it]&&et.propsSize[it].toString().endsWith("%")){if(et.state[it].toString().endsWith("%"))return et.state[it].toString();var st=et.getParentSize(),lt=Number(et.state[it].toString().replace("px","")),ut=lt/st[it]*100;return ut+"%"}return getStringSize$1(et.state[it])},nt=tt&&typeof tt.width<"u"&&!this.state.isResizing?getStringSize$1(tt.width):rt("width"),ot=tt&&typeof tt.height<"u"&&!this.state.isResizing?getStringSize$1(tt.height):rt("height");return{width:nt,height:ot}},enumerable:!1,configurable:!0}),_e.prototype.getParentSize=function(){if(!this.parentNode)return this.window?{width:this.window.innerWidth,height:this.window.innerHeight}:{width:0,height:0};var et=this.appendBase();if(!et)return{width:0,height:0};var tt=!1,rt=this.parentNode.style.flexWrap;rt!=="wrap"&&(tt=!0,this.parentNode.style.flexWrap="wrap"),et.style.position="relative",et.style.minWidth="100%",et.style.minHeight="100%";var nt={width:et.offsetWidth,height:et.offsetHeight};return tt&&(this.parentNode.style.flexWrap=rt),this.removeBase(et),nt},_e.prototype.bindEvents=function(){this.window&&(this.window.addEventListener("mouseup",this.onMouseUp),this.window.addEventListener("mousemove",this.onMouseMove),this.window.addEventListener("mouseleave",this.onMouseUp),this.window.addEventListener("touchmove",this.onMouseMove,{capture:!0,passive:!1}),this.window.addEventListener("touchend",this.onMouseUp))},_e.prototype.unbindEvents=function(){this.window&&(this.window.removeEventListener("mouseup",this.onMouseUp),this.window.removeEventListener("mousemove",this.onMouseMove),this.window.removeEventListener("mouseleave",this.onMouseUp),this.window.removeEventListener("touchmove",this.onMouseMove,!0),this.window.removeEventListener("touchend",this.onMouseUp))},_e.prototype.componentDidMount=function(){if(!(!this.resizable||!this.window)){var et=this.window.getComputedStyle(this.resizable);this.setState({width:this.state.width||this.size.width,height:this.state.height||this.size.height,flexBasis:et.flexBasis!=="auto"?et.flexBasis:void 0})}},_e.prototype.componentWillUnmount=function(){this.window&&this.unbindEvents()},_e.prototype.createSizeForCssProperty=function(et,tt){var rt=this.propsSize&&this.propsSize[tt];return this.state[tt]==="auto"&&this.state.original[tt]===et&&(typeof rt>"u"||rt==="auto")?"auto":et},_e.prototype.calculateNewMaxFromBoundary=function(et,tt){var rt=this.props.boundsByDirection,nt=this.state.direction,ot=rt&&hasDirection("left",nt),it=rt&&hasDirection("top",nt),st,lt;if(this.props.bounds==="parent"){var ut=this.parentNode;ut&&(st=ot?this.resizableRight-this.parentLeft:ut.offsetWidth+(this.parentLeft-this.resizableLeft),lt=it?this.resizableBottom-this.parentTop:ut.offsetHeight+(this.parentTop-this.resizableTop))}else this.props.bounds==="window"?this.window&&(st=ot?this.resizableRight:this.window.innerWidth-this.resizableLeft,lt=it?this.resizableBottom:this.window.innerHeight-this.resizableTop):this.props.bounds&&(st=ot?this.resizableRight-this.targetLeft:this.props.bounds.offsetWidth+(this.targetLeft-this.resizableLeft),lt=it?this.resizableBottom-this.targetTop:this.props.bounds.offsetHeight+(this.targetTop-this.resizableTop));return st&&Number.isFinite(st)&&(et=et&&et"u"?10:nt.width,ct=typeof rt.width>"u"||rt.width<0?et:rt.width,dt=typeof nt.height>"u"?10:nt.height,ft=typeof rt.height>"u"||rt.height<0?tt:rt.height,pt=st||0,gt=lt||0;if(it){var vt=(dt-pt)*this.ratio+gt,bt=(ft-pt)*this.ratio+gt,_t=(ut-gt)/this.ratio+pt,xt=(ct-gt)/this.ratio+pt,yt=Math.max(ut,vt),Et=Math.min(ct,bt),St=Math.max(dt,_t),$t=Math.min(ft,xt);et=clamp(et,yt,Et),tt=clamp(tt,St,$t)}else et=clamp(et,ut,ct),tt=clamp(tt,dt,ft);return{newWidth:et,newHeight:tt}},_e.prototype.setBoundingClientRect=function(){if(this.props.bounds==="parent"){var et=this.parentNode;if(et){var tt=et.getBoundingClientRect();this.parentLeft=tt.left,this.parentTop=tt.top}}if(this.props.bounds&&typeof this.props.bounds!="string"){var rt=this.props.bounds.getBoundingClientRect();this.targetLeft=rt.left,this.targetTop=rt.top}if(this.resizable){var nt=this.resizable.getBoundingClientRect(),ot=nt.left,it=nt.top,st=nt.right,lt=nt.bottom;this.resizableLeft=ot,this.resizableRight=st,this.resizableTop=it,this.resizableBottom=lt}},_e.prototype.onResizeStart=function(et,tt){if(!(!this.resizable||!this.window)){var rt=0,nt=0;if(et.nativeEvent&&isMouseEvent(et.nativeEvent)?(rt=et.nativeEvent.clientX,nt=et.nativeEvent.clientY):et.nativeEvent&&isTouchEvent(et.nativeEvent)&&(rt=et.nativeEvent.touches[0].clientX,nt=et.nativeEvent.touches[0].clientY),this.props.onResizeStart&&this.resizable){var ot=this.props.onResizeStart(et,tt,this.resizable);if(ot===!1)return}this.props.size&&(typeof this.props.size.height<"u"&&this.props.size.height!==this.state.height&&this.setState({height:this.props.size.height}),typeof this.props.size.width<"u"&&this.props.size.width!==this.state.width&&this.setState({width:this.props.size.width})),this.ratio=typeof this.props.lockAspectRatio=="number"?this.props.lockAspectRatio:this.size.width/this.size.height;var it,st=this.window.getComputedStyle(this.resizable);if(st.flexBasis!=="auto"){var lt=this.parentNode;if(lt){var ut=this.window.getComputedStyle(lt).flexDirection;this.flexDir=ut.startsWith("row")?"row":"column",it=st.flexBasis}}this.setBoundingClientRect(),this.bindEvents();var ct={original:{x:rt,y:nt,width:this.size.width,height:this.size.height},isResizing:!0,backgroundStyle:__assign(__assign({},this.state.backgroundStyle),{cursor:this.window.getComputedStyle(et.target).cursor||"auto"}),direction:tt,flexBasis:it};this.setState(ct)}},_e.prototype.onMouseMove=function(et){var tt=this;if(!(!this.state.isResizing||!this.resizable||!this.window)){if(this.window.TouchEvent&&isTouchEvent(et))try{et.preventDefault(),et.stopPropagation()}catch{}var rt=this.props,nt=rt.maxWidth,ot=rt.maxHeight,it=rt.minWidth,st=rt.minHeight,lt=isTouchEvent(et)?et.touches[0].clientX:et.clientX,ut=isTouchEvent(et)?et.touches[0].clientY:et.clientY,ct=this.state,dt=ct.direction,ft=ct.original,pt=ct.width,gt=ct.height,vt=this.getParentSize(),bt=calculateNewMax(vt,this.window.innerWidth,this.window.innerHeight,nt,ot,it,st);nt=bt.maxWidth,ot=bt.maxHeight,it=bt.minWidth,st=bt.minHeight;var _t=this.calculateNewSizeFromDirection(lt,ut),xt=_t.newHeight,yt=_t.newWidth,Et=this.calculateNewMaxFromBoundary(nt,ot);this.props.snap&&this.props.snap.x&&(yt=findClosestSnap(yt,this.props.snap.x,this.props.snapGap)),this.props.snap&&this.props.snap.y&&(xt=findClosestSnap(xt,this.props.snap.y,this.props.snapGap));var St=this.calculateNewSizeFromAspectRatio(yt,xt,{width:Et.maxWidth,height:Et.maxHeight},{width:it,height:st});if(yt=St.newWidth,xt=St.newHeight,this.props.grid){var $t=snap(yt,this.props.grid[0]),At=snap(xt,this.props.grid[1]),wt=this.props.snapGap||0;yt=wt===0||Math.abs($t-yt)<=wt?$t:yt,xt=wt===0||Math.abs(At-xt)<=wt?At:xt}var Ct={width:yt-ft.width,height:xt-ft.height};if(pt&&typeof pt=="string"){if(pt.endsWith("%")){var It=yt/vt.width*100;yt=It+"%"}else if(pt.endsWith("vw")){var Ot=yt/this.window.innerWidth*100;yt=Ot+"vw"}else if(pt.endsWith("vh")){var Nt=yt/this.window.innerHeight*100;yt=Nt+"vh"}}if(gt&&typeof gt=="string"){if(gt.endsWith("%")){var It=xt/vt.height*100;xt=It+"%"}else if(gt.endsWith("vw")){var Ot=xt/this.window.innerWidth*100;xt=Ot+"vw"}else if(gt.endsWith("vh")){var Nt=xt/this.window.innerHeight*100;xt=Nt+"vh"}}var Pt={width:this.createSizeForCssProperty(yt,"width"),height:this.createSizeForCssProperty(xt,"height")};this.flexDir==="row"?Pt.flexBasis=Pt.width:this.flexDir==="column"&&(Pt.flexBasis=Pt.height),reactDomExports.flushSync(function(){tt.setState(Pt)}),this.props.onResize&&this.props.onResize(et,dt,this.resizable,Ct)}},_e.prototype.onMouseUp=function(et){var tt=this.state,rt=tt.isResizing,nt=tt.direction,ot=tt.original;if(!(!rt||!this.resizable)){var it={width:this.size.width-ot.width,height:this.size.height-ot.height};this.props.onResizeStop&&this.props.onResizeStop(et,nt,this.resizable,it),this.props.size&&this.setState(this.props.size),this.unbindEvents(),this.setState({isResizing:!1,backgroundStyle:__assign(__assign({},this.state.backgroundStyle),{cursor:"auto"})})}},_e.prototype.updateSize=function(et){this.setState({width:et.width,height:et.height})},_e.prototype.renderResizer=function(){var et=this,tt=this.props,rt=tt.enable,nt=tt.handleStyles,ot=tt.handleClasses,it=tt.handleWrapperStyle,st=tt.handleWrapperClass,lt=tt.handleComponent;if(!rt)return null;var ut=Object.keys(rt).map(function(ct){return rt[ct]!==!1?reactExports.createElement(Resizer,{key:ct,direction:ct,onResizeStart:et.onResizeStart,replaceStyles:nt&&nt[ct],className:ot&&ot[ct]},lt&<[ct]?lt[ct]:null):null});return reactExports.createElement("div",{className:st,style:it},ut)},_e.prototype.render=function(){var et=this,tt=Object.keys(this.props).reduce(function(ot,it){return definedProps.indexOf(it)!==-1||(ot[it]=et.props[it]),ot},{}),rt=__assign(__assign(__assign({position:"relative",userSelect:this.state.isResizing?"none":"auto"},this.props.style),this.sizeStyle),{maxWidth:this.props.maxWidth,maxHeight:this.props.maxHeight,minWidth:this.props.minWidth,minHeight:this.props.minHeight,boxSizing:"border-box",flexShrink:0});this.state.flexBasis&&(rt.flexBasis=this.state.flexBasis);var nt=this.props.as||"div";return reactExports.createElement(nt,__assign({ref:this.ref,style:rt,className:this.props.className},tt),this.state.isResizing&&reactExports.createElement("div",{style:this.state.backgroundStyle}),this.props.children,this.renderResizer())},_e.defaultProps={as:"div",onResizeStart:function(){},onResize:function(){},onResizeStop:function(){},enable:{top:!0,right:!0,bottom:!0,left:!0,topRight:!0,bottomRight:!0,bottomLeft:!0,topLeft:!0},style:{},grid:[1,1],lockAspectRatio:!1,lockAspectRatioExtraWidth:0,lockAspectRatioExtraHeight:0,scale:1,resizeRatio:1,snapGap:0},_e}(reactExports.PureComponent),_a$1;const tasksToTaskRows=(j,_e)=>j.map(et=>({...et,level:_e,children:et.children?tasksToTaskRows(et.children,_e+1):void 0})),Yp=class Yp{constructor(){this.rows$=new State$1(List$1([])),this.selectedRowId$=new State$1(void 0),this.startTime=Number.MAX_SAFE_INTEGER,this.endTime=0}toggleRow(_e){const et=this.rows$.getSnapshot(),tt=et.findIndex(it=>it.id===_e),rt=et.get(tt);if(!rt)return;const{children:nt}=rt;if(!nt)return;const ot=[...et];ot[tt]={...rt,isExpanded:!rt.isExpanded},rt.isExpanded?ot.splice(tt+1,nt.length):ot.splice(tt+1,0,...nt),this.rows$.next(List$1(ot))}setRows(_e){this.rows$.next(List$1(_e))}setTasks(_e){this.startTime=Number.MAX_SAFE_INTEGER,this.endTime=0,this.rows$.next(List$1(tasksToTaskRows(_e,0)));const et=tt=>{tt.forEach(rt=>{rt.startTimethis.endTime&&(this.endTime=rt.endTime),rt.children&&et(rt.children)})};et(_e)}};_a$1=SINGLETON,Yp[_a$1]=!0;let GanttViewModel=Yp;const GanttViewModelToken=createInjectionToken("GanttViewModel",new GanttViewModel);function r$6(j){var _e,et,tt="";if(typeof j=="string"||typeof j=="number")tt+=j;else if(typeof j=="object")if(Array.isArray(j))for(_e=0;_e1&&(!j.frozen||j.idx+tt-1<=_e))return tt}function stopPropagation(j){j.stopPropagation()}function scrollIntoView(j){j==null||j.scrollIntoView({inline:"nearest",block:"nearest"})}function createCellEvent(j){let _e=!1;const et={...j,preventGridDefault(){_e=!0},isGridDefaultPrevented(){return _e}};return Object.setPrototypeOf(et,Object.getPrototypeOf(j)),et}const nonInputKeys=new Set(["Unidentified","Alt","AltGraph","CapsLock","Control","Fn","FnLock","Meta","NumLock","ScrollLock","Shift","Tab","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Home","PageDown","PageUp","Insert","ContextMenu","Escape","Pause","Play","PrintScreen","F1","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]);function isCtrlKeyHeldDown(j){return(j.ctrlKey||j.metaKey)&&j.key!=="Control"}function isDefaultCellInput(j){return!nonInputKeys.has(j.key)}function onEditorNavigation({key:j,target:_e}){var et;return j==="Tab"&&(_e instanceof HTMLInputElement||_e instanceof HTMLTextAreaElement||_e instanceof HTMLSelectElement)?((et=_e.closest(".rdg-editor-container"))==null?void 0:et.querySelectorAll("input, textarea, select").length)===1:!1}const measuringCellClassname="m1l09lto7-0-0-beta-39";function renderMeasuringCells(j){return j.map(({key:_e,idx:et,minWidth:tt,maxWidth:rt})=>jsxRuntimeExports.jsx("div",{className:measuringCellClassname,style:{gridColumnStart:et+1,minWidth:tt,maxWidth:rt},"data-measuring-cell-key":_e},_e))}function isSelectedCellEditable({selectedPosition:j,columns:_e,rows:et}){const tt=_e[j.idx],rt=et[j.rowIdx];return isCellEditable(tt,rt)}function isCellEditable(j,_e){return j.renderEditCell!=null&&(typeof j.editable=="function"?j.editable(_e):j.editable)!==!1}function getSelectedCellColSpan({rows:j,topSummaryRows:_e,bottomSummaryRows:et,rowIdx:tt,mainHeaderRowIdx:rt,lastFrozenColumnIndex:nt,column:ot}){const it=(_e==null?void 0:_e.length)??0;if(tt===rt)return getColSpan(ot,nt,{type:"HEADER"});if(_e&&tt>rt&&tt<=it+rt)return getColSpan(ot,nt,{type:"SUMMARY",row:_e[tt+it]});if(tt>=0&&tt{for(const $t of rt){const At=$t.idx;if(At>vt)break;const wt=getSelectedCellColSpan({rows:nt,topSummaryRows:ot,bottomSummaryRows:it,rowIdx:bt,mainHeaderRowIdx:lt,lastFrozenColumnIndex:pt,column:$t});if(wt&&vt>At&&vtSt.level+lt,Et=()=>{if(_e){let $t=tt[vt].parent;for(;$t!==void 0;){const At=yt($t);if(bt===At){vt=$t.idx+$t.colSpan;break}$t=$t.parent}}else if(j){let $t=tt[vt].parent,At=!1;for(;$t!==void 0;){const wt=yt($t);if(bt>=wt){vt=$t.idx,bt=wt,At=!0;break}$t=$t.parent}At||(vt=ct,bt=dt)}};if(gt(ft)&&(xt(_e),bt=At&&(bt=wt,vt=$t.idx),$t=$t.parent}}return{idx:vt,rowIdx:bt}}function canExitGrid({maxColIdx:j,minRowIdx:_e,maxRowIdx:et,selectedPosition:{rowIdx:tt,idx:rt},shiftKey:nt}){return nt?rt===0&&tt===_e:rt===j&&tt===et}const cell="c1wupbe7-0-0-beta-39",cellClassname=`rdg-cell ${cell}`,cellFrozen="cd0kgiy7-0-0-beta-39",cellFrozenClassname=`rdg-cell-frozen ${cellFrozen}`,cellFrozenLast="c1730fa47-0-0-beta-39",cellFrozenLastClassname=`rdg-cell-frozen-last ${cellFrozenLast}`;function getRowStyle(j,_e){return _e!==void 0?{"--rdg-grid-row-start":j,"--rdg-row-height":`${_e}px`}:{"--rdg-grid-row-start":j}}function getHeaderCellStyle(j,_e,et){const tt=_e+1,rt=`calc(${et-1} * var(--rdg-header-row-height))`;return j.parent===void 0?{insetBlockStart:0,gridRowStart:1,gridRowEnd:tt,paddingBlockStart:rt}:{insetBlockStart:`calc(${_e-et} * var(--rdg-header-row-height))`,gridRowStart:tt-et,gridRowEnd:tt,paddingBlockStart:rt}}function getCellStyle(j,_e=1){const et=j.idx+1;return{gridColumnStart:et,gridColumnEnd:et+_e,insetInlineStart:j.frozen?`var(--rdg-frozen-left-${j.idx})`:void 0}}function getCellClassname(j,..._e){return clsx(cellClassname,..._e,j.frozen&&cellFrozenClassname,j.isLastFrozenColumn&&cellFrozenLastClassname)}const{min:min$7,max:max$6,round:round$1,floor:floor$3,sign:sign$5,abs:abs$1}=Math;function assertIsValidKeyGetter(j){if(typeof j!="function")throw new Error("Please specify the rowKeyGetter prop to use selection")}function clampColumnWidth(j,{minWidth:_e,maxWidth:et}){return j=max$6(j,_e),typeof et=="number"&&et>=_e?min$7(j,et):j}function getHeaderCellRowSpan(j,_e){return j.parent===void 0?_e:j.level-j.parent.level}const checkboxLabel="c1hs68w07-0-0-beta-39",checkboxLabelClassname=`rdg-checkbox-label ${checkboxLabel}`,checkboxInput="cojpd0n7-0-0-beta-39",checkboxInputClassname=`rdg-checkbox-input ${checkboxInput}`,checkbox="cwsfieb7-0-0-beta-39",checkboxClassname=`rdg-checkbox ${checkbox}`,checkboxLabelDisabled="c1fgadbl7-0-0-beta-39",checkboxLabelDisabledClassname=`rdg-checkbox-label-disabled ${checkboxLabelDisabled}`;function renderCheckbox({onChange:j,..._e}){function et(tt){j(tt.target.checked,tt.nativeEvent.shiftKey)}return jsxRuntimeExports.jsxs("label",{className:clsx(checkboxLabelClassname,_e.disabled&&checkboxLabelDisabledClassname),children:[jsxRuntimeExports.jsx("input",{type:"checkbox",..._e,className:checkboxInputClassname,onChange:et}),jsxRuntimeExports.jsx("div",{className:checkboxClassname})]})}function renderValue(j){try{return j.row[j.column.key]}catch{return null}}const DataGridDefaultRenderersContext=reactExports.createContext(void 0),DataGridDefaultRenderersProvider=DataGridDefaultRenderersContext.Provider;function useDefaultRenderers(){return reactExports.useContext(DataGridDefaultRenderersContext)}const RowSelectionContext=reactExports.createContext(void 0),RowSelectionProvider=RowSelectionContext.Provider,RowSelectionChangeContext=reactExports.createContext(void 0),RowSelectionChangeProvider=RowSelectionChangeContext.Provider,SELECT_COLUMN_KEY="select-row",DEFAULT_COLUMN_WIDTH="auto",DEFAULT_COLUMN_MIN_WIDTH=50;function useCalculatedColumns({rawColumns:j,defaultColumnOptions:_e,measuredColumnWidths:et,resizedColumnWidths:tt,viewportWidth:rt,scrollLeft:nt,enableVirtualization:ot}){const it=(_e==null?void 0:_e.width)??DEFAULT_COLUMN_WIDTH,st=(_e==null?void 0:_e.minWidth)??DEFAULT_COLUMN_MIN_WIDTH,lt=(_e==null?void 0:_e.maxWidth)??void 0,ut=(_e==null?void 0:_e.renderCell)??renderValue,ct=(_e==null?void 0:_e.sortable)??!1,dt=(_e==null?void 0:_e.resizable)??!1,ft=(_e==null?void 0:_e.draggable)??!1,{columns:pt,colSpanColumns:gt,lastFrozenColumnIndex:vt,headerRowsCount:bt}=reactExports.useMemo(()=>{let At=-1,wt=1;const Ct=[];It(j,1);function It(Nt,Pt,Mt){for(const Rt of Nt){if("children"in Rt){const Gt={name:Rt.name,parent:Mt,idx:-1,colSpan:0,level:0,headerCellClass:Rt.headerCellClass};It(Rt.children,Pt+1,Gt);continue}const Lt=Rt.frozen??!1,jt={...Rt,parent:Mt,idx:0,level:0,frozen:Lt,isLastFrozenColumn:!1,width:Rt.width??it,minWidth:Rt.minWidth??st,maxWidth:Rt.maxWidth??lt,sortable:Rt.sortable??ct,resizable:Rt.resizable??dt,draggable:Rt.draggable??ft,renderCell:Rt.renderCell??ut};Ct.push(jt),Lt&&At++,Pt>wt&&(wt=Pt)}}Ct.sort(({key:Nt,frozen:Pt},{key:Mt,frozen:Rt})=>Nt===SELECT_COLUMN_KEY?-1:Mt===SELECT_COLUMN_KEY?1:Pt?Rt?0:-1:Rt?1:0);const Ot=[];return Ct.forEach((Nt,Pt)=>{Nt.idx=Pt,updateColumnParent(Nt,Pt,0),Nt.colSpan!=null&&Ot.push(Nt)}),At!==-1&&(Ct[At].isLastFrozenColumn=!0),{columns:Ct,colSpanColumns:Ot,lastFrozenColumnIndex:At,headerRowsCount:wt}},[j,it,st,lt,ut,dt,ct,ft]),{templateColumns:_t,layoutCssVars:xt,totalFrozenColumnWidth:yt,columnMetrics:Et}=reactExports.useMemo(()=>{const At=new Map;let wt=0,Ct=0;const It=[];for(const Nt of pt){let Pt=tt.get(Nt.key)??et.get(Nt.key)??Nt.width;typeof Pt=="number"?Pt=clampColumnWidth(Pt,Nt):Pt=Nt.minWidth,It.push(`${Pt}px`),At.set(Nt,{width:Pt,left:wt}),wt+=Pt}if(vt!==-1){const Nt=At.get(pt[vt]);Ct=Nt.left+Nt.width}const Ot={};for(let Nt=0;Nt<=vt;Nt++){const Pt=pt[Nt];Ot[`--rdg-frozen-left-${Pt.idx}`]=`${At.get(Pt).left}px`}return{templateColumns:It,layoutCssVars:Ot,totalFrozenColumnWidth:Ct,columnMetrics:At}},[et,tt,pt,vt]),[St,$t]=reactExports.useMemo(()=>{if(!ot)return[0,pt.length-1];const At=nt+yt,wt=nt+rt,Ct=pt.length-1,It=min$7(vt+1,Ct);if(At>=wt)return[It,It];let Ot=It;for(;OtAt)break;Ot++}let Nt=Ot;for(;Nt=wt)break;Nt++}const Pt=max$6(It,Ot-1),Mt=min$7(Ct,Nt+1);return[Pt,Mt]},[Et,pt,vt,nt,yt,rt,ot]);return{columns:pt,colSpanColumns:gt,colOverscanStartIdx:St,colOverscanEndIdx:$t,templateColumns:_t,layoutCssVars:xt,headerRowsCount:bt,lastFrozenColumnIndex:vt,totalFrozenColumnWidth:yt}}function updateColumnParent(j,_e,et){if(et"u"?reactExports.useEffect:reactExports.useLayoutEffect;function useColumnWidths(j,_e,et,tt,rt,nt,ot,it,st,lt){const ut=reactExports.useRef(rt),ct=j.length===_e.length,dt=ct&&rt!==ut.current,ft=[...et],pt=[];for(const{key:_t,idx:xt,width:yt}of _e)typeof yt=="string"&&(dt||!ot.has(_t))&&!nt.has(_t)&&(ft[xt]=yt,pt.push(_t));const gt=ft.join(" ");useLayoutEffect(()=>{ut.current=rt,vt(pt)});function vt(_t){_t.length!==0&&st(xt=>{const yt=new Map(xt);let Et=!1;for(const St of _t){const $t=measureColumnWidth(tt,St);Et||(Et=$t!==xt.get(St)),$t===void 0?yt.delete(St):yt.set(St,$t)}return Et?yt:xt})}function bt(_t,xt){const{key:yt}=_t,Et=[...et],St=[];for(const{key:At,idx:wt,width:Ct}of _e)if(yt===At){const It=typeof xt=="number"?`${xt}px`:xt;Et[wt]=It}else ct&&typeof Ct=="string"&&!nt.has(At)&&(Et[wt]=Ct,St.push(At));tt.current.style.gridTemplateColumns=Et.join(" ");const $t=typeof xt=="number"?xt:measureColumnWidth(tt,yt);reactDomExports.flushSync(()=>{it(At=>{const wt=new Map(At);return wt.set(yt,$t),wt}),vt(St)}),lt==null||lt(_t.idx,$t)}return{gridTemplateColumns:gt,handleColumnResize:bt}}function measureColumnWidth(j,_e){const et=`[data-measuring-cell-key="${CSS.escape(_e)}"]`,tt=j.current.querySelector(et);return tt==null?void 0:tt.getBoundingClientRect().width}function useGridDimensions(){const j=reactExports.useRef(null),[_e,et]=reactExports.useState(1),[tt,rt]=reactExports.useState(1);return useLayoutEffect(()=>{const{ResizeObserver:nt}=window;if(nt==null)return;const{clientWidth:ot,clientHeight:it,offsetWidth:st,offsetHeight:lt}=j.current,{width:ut,height:ct}=j.current.getBoundingClientRect(),dt=ut-st+ot,ft=ct-lt+it;et(dt),rt(ft);const pt=new nt(gt=>{const vt=gt[0].contentBoxSize[0];reactDomExports.flushSync(()=>{et(vt.inlineSize),rt(vt.blockSize)})});return pt.observe(j.current),()=>{pt.disconnect()}},[]),[j,_e,tt]}function useLatestFunc(j){const _e=reactExports.useRef(j);reactExports.useEffect(()=>{_e.current=j});const et=reactExports.useCallback((...tt)=>{_e.current(...tt)},[]);return j&&et}function useRovingTabIndex(j){const[_e,et]=reactExports.useState(!1);_e&&!j&&et(!1);function tt(nt){nt.target!==nt.currentTarget&&et(!0)}return{tabIndex:j&&!_e?0:-1,childTabIndex:j?0:-1,onFocus:j?tt:void 0}}function useViewportColumns({columns:j,colSpanColumns:_e,rows:et,topSummaryRows:tt,bottomSummaryRows:rt,colOverscanStartIdx:nt,colOverscanEndIdx:ot,lastFrozenColumnIndex:it,rowOverscanStartIdx:st,rowOverscanEndIdx:lt}){const ut=reactExports.useMemo(()=>{if(nt===0)return 0;let ct=nt;const dt=(ft,pt)=>pt!==void 0&&ft+pt>nt?(ct=ft,!0):!1;for(const ft of _e){const pt=ft.idx;if(pt>=ct||dt(pt,getColSpan(ft,it,{type:"HEADER"})))break;for(let gt=st;gt<=lt;gt++){const vt=et[gt];if(dt(pt,getColSpan(ft,it,{type:"ROW",row:vt})))break}if(tt!=null){for(const gt of tt)if(dt(pt,getColSpan(ft,it,{type:"SUMMARY",row:gt})))break}if(rt!=null){for(const gt of rt)if(dt(pt,getColSpan(ft,it,{type:"SUMMARY",row:gt})))break}}return ct},[st,lt,et,tt,rt,nt,it,_e]);return reactExports.useMemo(()=>{const ct=[];for(let dt=0;dt<=ot;dt++){const ft=j[dt];dt{if(typeof _e=="number")return{totalRowHeight:_e*j.length,gridTemplateRows:` repeat(${j.length}, ${_e}px)`,getRowTop:vt=>vt*_e,getRowHeight:()=>_e,findRowIdx:vt=>floor$3(vt/_e)};let dt=0,ft=" ";const pt=j.map(vt=>{const bt=_e(vt),_t={top:dt,height:bt};return ft+=`${bt}px `,dt+=bt,_t}),gt=vt=>max$6(0,min$7(j.length-1,vt));return{totalRowHeight:dt,gridTemplateRows:ft,getRowTop:vt=>pt[gt(vt)].top,getRowHeight:vt=>pt[gt(vt)].height,findRowIdx(vt){let bt=0,_t=pt.length-1;for(;bt<=_t;){const xt=bt+floor$3((_t-bt)/2),yt=pt[xt].top;if(yt===vt)return xt;if(ytvt&&(_t=xt-1),bt>_t)return _t}return 0}}},[_e,j]);let ut=0,ct=j.length-1;if(rt){const ft=lt(tt),pt=lt(tt+et);ut=max$6(0,ft-4),ct=min$7(j.length-1,pt+4)}return{rowOverscanStartIdx:ut,rowOverscanEndIdx:ct,totalRowHeight:nt,gridTemplateRows:ot,getRowTop:it,getRowHeight:st,findRowIdx:lt}}const cellDragHandle="cadd3bp7-0-0-beta-39",cellDragHandleFrozenClassname="ccmuez27-0-0-beta-39",cellDragHandleClassname=`rdg-cell-drag-handle ${cellDragHandle}`;function DragHandle({gridRowStart:j,rows:_e,columns:et,selectedPosition:tt,latestDraggedOverRowIdx:rt,isCellEditable:nt,onRowsChange:ot,onFill:it,onClick:st,setDragging:lt,setDraggedOverRowIdx:ut}){var yt;const{idx:ct,rowIdx:dt}=tt,ft=et[ct];function pt(Et){if(Et.preventDefault(),Et.buttons!==1)return;lt(!0),window.addEventListener("mouseover",St),window.addEventListener("mouseup",$t);function St(At){At.buttons!==1&&$t()}function $t(){window.removeEventListener("mouseover",St),window.removeEventListener("mouseup",$t),lt(!1),gt()}}function gt(){const Et=rt.current;if(Et===void 0)return;const St=dt0&&(ot==null||ot(wt,{indexes:Ct,column:$t}))}const _t=((yt=ft.colSpan)==null?void 0:yt.call(ft,{type:"ROW",row:_e[dt]}))??1,xt=getCellStyle(ft,_t);return jsxRuntimeExports.jsx("div",{style:{...xt,gridRowStart:j,insetInlineStart:xt.insetInlineStart&&typeof ft.width=="number"?`calc(${xt.insetInlineStart} + ${ft.width}px - var(--rdg-drag-handle-size))`:void 0},className:clsx(cellDragHandleClassname,ft.frozen&&cellDragHandleFrozenClassname),onClick:st,onMouseDown:pt,onDoubleClick:vt})}const cellEditing="c1tngyp17-0-0-beta-39";function EditCell({column:j,colSpan:_e,row:et,rowIdx:tt,onRowChange:rt,closeEditor:nt,onKeyDown:ot,navigate:it}){var bt,_t,xt;const st=reactExports.useRef(),lt=((bt=j.editorOptions)==null?void 0:bt.commitOnOutsideClick)!==!1,ut=useLatestFunc(()=>{ft(!0,!1)});reactExports.useEffect(()=>{if(!lt)return;function yt(){st.current=requestAnimationFrame(ut)}return addEventListener("mousedown",yt,{capture:!0}),()=>{removeEventListener("mousedown",yt,{capture:!0}),ct()}},[lt,ut]);function ct(){cancelAnimationFrame(st.current)}function dt(yt){if(ot){const Et=createCellEvent(yt);if(ot({mode:"EDIT",row:et,column:j,rowIdx:tt,navigate(){it(yt)},onClose:ft},Et),Et.isGridDefaultPrevented())return}yt.key==="Escape"?ft():yt.key==="Enter"?ft(!0):onEditorNavigation(yt)&&it(yt)}function ft(yt=!1,Et=!0){yt?rt(et,!0,Et):nt(Et)}function pt(yt,Et=!1){rt(yt,Et,Et)}const{cellClass:gt}=j,vt=getCellClassname(j,"rdg-editor-container",typeof gt=="function"?gt(et):gt,!((_t=j.editorOptions)!=null&&_t.displayCellContent)&&cellEditing);return jsxRuntimeExports.jsx("div",{role:"gridcell","aria-colindex":j.idx+1,"aria-colspan":_e,"aria-selected":!0,className:vt,style:getCellStyle(j,_e),onKeyDown:dt,onMouseDownCapture:ct,children:j.renderEditCell!=null&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[j.renderEditCell({column:j,row:et,onRowChange:pt,onClose:ft}),((xt=j.editorOptions)==null?void 0:xt.displayCellContent)&&j.renderCell({column:j,row:et,isCellEditable:!0,tabIndex:-1,onRowChange:pt})]})})}function GroupedColumnHeaderCell({column:j,rowIdx:_e,isCellSelected:et,selectCell:tt}){const{tabIndex:rt,onFocus:nt}=useRovingTabIndex(et),{colSpan:ot}=j,it=getHeaderCellRowSpan(j,_e),st=j.idx+1;function lt(){tt({idx:j.idx,rowIdx:_e})}return jsxRuntimeExports.jsx("div",{role:"columnheader","aria-colindex":st,"aria-colspan":ot,"aria-rowspan":it,"aria-selected":et,tabIndex:rt,className:clsx(cellClassname,j.headerCellClass),style:{...getHeaderCellStyle(j,_e,it),gridColumnStart:st,gridColumnEnd:st+ot},onFocus:nt,onClick:lt,children:j.name})}const headerSortCellClassname="hizp7y17-0-0-beta-39",headerSortName="h14cojrm7-0-0-beta-39",headerSortNameClassname=`rdg-header-sort-name ${headerSortName}`;function renderHeaderCell({column:j,sortDirection:_e,priority:et}){return j.sortable?jsxRuntimeExports.jsx(SortableHeaderCell,{sortDirection:_e,priority:et,children:j.name}):j.name}function SortableHeaderCell({sortDirection:j,priority:_e,children:et}){const tt=useDefaultRenderers().renderSortStatus;return jsxRuntimeExports.jsxs("span",{className:headerSortCellClassname,children:[jsxRuntimeExports.jsx("span",{className:headerSortNameClassname,children:et}),jsxRuntimeExports.jsx("span",{children:tt({sortDirection:j,priority:_e})})]})}const cellSortableClassname="celq7o97-0-0-beta-39",cellResizable="ceqw94e7-0-0-beta-39",cellResizableClassname=`rdg-cell-resizable ${cellResizable}`,resizeHandleClassname="r12jy2ca7-0-0-beta-39",cellDragging="c1j3os1p7-0-0-beta-39",cellDraggingClassname=`rdg-cell-dragging ${cellDragging}`,cellOver="c1ui3nad7-0-0-beta-39",cellOverClassname=`rdg-cell-drag-over ${cellOver}`;function HeaderCell({column:j,colSpan:_e,rowIdx:et,isCellSelected:tt,onColumnResize:rt,onColumnsReorder:nt,sortColumns:ot,onSortColumnsChange:it,selectCell:st,shouldFocusGrid:lt,direction:ut}){const[ct,dt]=reactExports.useState(!1),[ft,pt]=reactExports.useState(!1),gt=ut==="rtl",vt=getHeaderCellRowSpan(j,et),{tabIndex:bt,childTabIndex:_t,onFocus:xt}=useRovingTabIndex(tt),yt=ot==null?void 0:ot.findIndex(gr=>gr.columnKey===j.key),Et=yt!==void 0&&yt>-1?ot[yt]:void 0,St=Et==null?void 0:Et.direction,$t=Et!==void 0&&ot.length>1?yt+1:void 0,At=St&&!$t?St==="ASC"?"ascending":"descending":void 0,{sortable:wt,resizable:Ct,draggable:It}=j,Ot=getCellClassname(j,j.headerCellClass,wt&&cellSortableClassname,Ct&&cellResizableClassname,ct&&cellDraggingClassname,ft&&cellOverClassname),Nt=j.renderHeaderCell??renderHeaderCell;function Pt(gr){if(gr.pointerType==="mouse"&&gr.buttons!==1)return;const{currentTarget:Er,pointerId:qt}=gr,ir=Er.parentElement,{right:hr,left:nr}=ir.getBoundingClientRect(),mr=gt?gr.clientX-nr:hr-gr.clientX;function Ar(wr){wr.preventDefault();const{right:Nr,left:Wr}=ir.getBoundingClientRect(),Vr=gt?Nr+mr-wr.clientX:wr.clientX+mr-Wr;Vr>0&&rt(j,clampColumnWidth(Vr,j))}function Or(){Er.removeEventListener("pointermove",Ar),Er.removeEventListener("lostpointercapture",Or)}Er.setPointerCapture(qt),Er.addEventListener("pointermove",Ar),Er.addEventListener("lostpointercapture",Or)}function Mt(gr){if(it==null)return;const{sortDescendingFirst:Er}=j;if(Et===void 0){const qt={columnKey:j.key,direction:Er?"DESC":"ASC"};it(ot&&gr?[...ot,qt]:[qt])}else{let qt;if((Er===!0&&St==="DESC"||Er!==!0&&St==="ASC")&&(qt={columnKey:j.key,direction:St==="ASC"?"DESC":"ASC"}),gr){const ir=[...ot];qt?ir[yt]=qt:ir.splice(yt,1),it(ir)}else it(qt?[qt]:[])}}function Rt(gr){st({idx:j.idx,rowIdx:et}),wt&&Mt(gr.ctrlKey||gr.metaKey)}function Lt(){rt(j,"max-content")}function jt(gr){xt==null||xt(gr),lt&&st({idx:0,rowIdx:et})}function Gt(gr){(gr.key===" "||gr.key==="Enter")&&(gr.preventDefault(),Mt(gr.ctrlKey||gr.metaKey))}function Vt(gr){gr.dataTransfer.setData("text/plain",j.key),gr.dataTransfer.dropEffect="move",dt(!0)}function Yt(){dt(!1)}function Xt(gr){gr.preventDefault(),gr.dataTransfer.dropEffect="move"}function rr(gr){pt(!1);const Er=gr.dataTransfer.getData("text/plain");Er!==j.key&&(gr.preventDefault(),nt==null||nt(Er,j.key))}function cr(gr){isEventPertinent(gr)&&pt(!0)}function vr(gr){isEventPertinent(gr)&&pt(!1)}let Tr;return It&&(Tr={draggable:!0,onDragStart:Vt,onDragEnd:Yt,onDragOver:Xt,onDragEnter:cr,onDragLeave:vr,onDrop:rr}),jsxRuntimeExports.jsxs("div",{role:"columnheader","aria-colindex":j.idx+1,"aria-colspan":_e,"aria-rowspan":vt,"aria-selected":tt,"aria-sort":At,tabIndex:lt?0:bt,className:Ot,style:{...getHeaderCellStyle(j,et,vt),...getCellStyle(j,_e)},onFocus:jt,onClick:Rt,onKeyDown:wt?Gt:void 0,...Tr,children:[Nt({column:j,sortDirection:St,priority:$t,tabIndex:_t}),Ct&&jsxRuntimeExports.jsx("div",{className:resizeHandleClassname,onClick:stopPropagation,onDoubleClick:Lt,onPointerDown:Pt})]})}function isEventPertinent(j){const _e=j.relatedTarget;return!j.currentTarget.contains(_e)}const row="r1otpg647-0-0-beta-39",rowClassname=`rdg-row ${row}`,rowSelected="rel5gk27-0-0-beta-39",rowSelectedClassname="rdg-row-selected",rowSelectedWithFrozenCell="r1qymf1z7-0-0-beta-39",headerRow="h197vzie7-0-0-beta-39",headerRowClassname=`rdg-header-row ${headerRow}`;function HeaderRow({rowIdx:j,columns:_e,onColumnResize:et,onColumnsReorder:tt,sortColumns:rt,onSortColumnsChange:nt,lastFrozenColumnIndex:ot,selectedCellIdx:it,selectCell:st,shouldFocusGrid:lt,direction:ut}){const ct=[];for(let dt=0;dt<_e.length;dt++){const ft=_e[dt],pt=getColSpan(ft,ot,{type:"HEADER"});pt!==void 0&&(dt+=pt-1),ct.push(jsxRuntimeExports.jsx(HeaderCell,{column:ft,colSpan:pt,rowIdx:j,isCellSelected:it===ft.idx,onColumnResize:et,onColumnsReorder:tt,onSortColumnsChange:nt,sortColumns:rt,selectCell:st,shouldFocusGrid:lt&&dt===0,direction:ut},ft.key))}return jsxRuntimeExports.jsx("div",{role:"row","aria-rowindex":j,className:clsx(headerRowClassname,it===-1&&rowSelectedClassname),children:ct})}const HeaderRow$1=reactExports.memo(HeaderRow);function GroupedColumnHeaderRow({rowIdx:j,level:_e,columns:et,selectedCellIdx:tt,selectCell:rt}){const nt=[],ot=new Set;for(const it of et){let{parent:st}=it;if(st!==void 0){for(;st.level>_e&&st.parent!==void 0;)st=st.parent;if(st.level===_e&&!ot.has(st)){ot.add(st);const{idx:lt}=st;nt.push(jsxRuntimeExports.jsx(GroupedColumnHeaderCell,{column:st,rowIdx:j,isCellSelected:tt===lt,selectCell:rt},lt))}}}return jsxRuntimeExports.jsx("div",{role:"row","aria-rowindex":j,className:headerRowClassname,children:nt})}const GroupedColumnHeaderRow$1=reactExports.memo(GroupedColumnHeaderRow),cellCopied="ccpfvsn7-0-0-beta-39",cellCopiedClassname=`rdg-cell-copied ${cellCopied}`,cellDraggedOver="c1bmg16t7-0-0-beta-39",cellDraggedOverClassname=`rdg-cell-dragged-over ${cellDraggedOver}`;function Cell$1({column:j,colSpan:_e,isCellSelected:et,isCopied:tt,isDraggedOver:rt,row:nt,rowIdx:ot,onClick:it,onDoubleClick:st,onContextMenu:lt,onRowChange:ut,selectCell:ct,...dt}){const{tabIndex:ft,childTabIndex:pt,onFocus:gt}=useRovingTabIndex(et),{cellClass:vt}=j,bt=getCellClassname(j,typeof vt=="function"?vt(nt):vt,tt&&cellCopiedClassname,rt&&cellDraggedOverClassname),_t=isCellEditable(j,nt);function xt(At){ct({rowIdx:ot,idx:j.idx},At)}function yt(At){if(it){const wt=createCellEvent(At);if(it({row:nt,column:j,selectCell:xt},wt),wt.isGridDefaultPrevented())return}xt()}function Et(At){if(lt){const wt=createCellEvent(At);if(lt({row:nt,column:j,selectCell:xt},wt),wt.isGridDefaultPrevented())return}xt()}function St(At){if(st){const wt=createCellEvent(At);if(st({row:nt,column:j,selectCell:xt},wt),wt.isGridDefaultPrevented())return}xt(!0)}function $t(At){ut(j,At)}return jsxRuntimeExports.jsx("div",{role:"gridcell","aria-colindex":j.idx+1,"aria-colspan":_e,"aria-selected":et,"aria-readonly":!_t||void 0,tabIndex:ft,className:bt,style:getCellStyle(j,_e),onClick:yt,onDoubleClick:St,onContextMenu:Et,onFocus:gt,...dt,children:j.renderCell({column:j,row:nt,isCellEditable:_t,tabIndex:pt,onRowChange:$t})})}const Cell$1$1=reactExports.memo(Cell$1);function Row({className:j,rowIdx:_e,gridRowStart:et,height:tt,selectedCellIdx:rt,isRowSelected:nt,copiedCellIdx:ot,draggedOverCellIdx:it,lastFrozenColumnIndex:st,row:lt,viewportColumns:ut,selectedCellEditor:ct,onCellClick:dt,onCellDoubleClick:ft,onCellContextMenu:pt,rowClass:gt,setDraggedOverRowIdx:vt,onMouseEnter:bt,onRowChange:_t,selectCell:xt,...yt},Et){const St=useLatestFunc((wt,Ct)=>{_t(wt,_e,Ct)});function $t(wt){vt==null||vt(_e),bt==null||bt(wt)}j=clsx(rowClassname,`rdg-row-${_e%2===0?"even":"odd"}`,gt==null?void 0:gt(lt,_e),j,rt===-1&&rowSelectedClassname);const At=[];for(let wt=0;wt{scrollIntoView(rt.current)}),useLayoutEffect(()=>{function nt(){tt(null)}const ot=new IntersectionObserver(nt,{root:et,threshold:1});return ot.observe(rt.current),()=>{ot.disconnect()}},[et,tt]),jsxRuntimeExports.jsx("div",{ref:rt,style:{gridColumn:j===void 0?"1/-1":j+1,gridRow:_e===void 0?"1/-1":_e+2}})}const arrow="a1mygwml7-0-0-beta-39",arrowClassname=`rdg-sort-arrow ${arrow}`;function renderSortStatus({sortDirection:j,priority:_e}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[renderSortIcon({sortDirection:j}),renderSortPriority({priority:_e})]})}function renderSortIcon({sortDirection:j}){return j===void 0?null:jsxRuntimeExports.jsx("svg",{viewBox:"0 0 12 8",width:"12",height:"8",className:arrowClassname,"aria-hidden":!0,children:jsxRuntimeExports.jsx("path",{d:j==="ASC"?"M0 8 6 0 12 8":"M0 0 6 8 12 0"})})}function renderSortPriority({priority:j}){return j}const root="r104f42s7-0-0-beta-39",rootClassname=`rdg ${root}`,viewportDragging="v7ly7s7-0-0-beta-39",viewportDraggingClassname=`rdg-viewport-dragging ${viewportDragging}`,focusSinkClassname="fc4f4zb7-0-0-beta-39",focusSinkHeaderAndSummaryClassname="fq51q037-0-0-beta-39",summaryCellClassname="s1n3hxke7-0-0-beta-39";function SummaryCell({column:j,colSpan:_e,row:et,rowIdx:tt,isCellSelected:rt,selectCell:nt}){var dt;const{tabIndex:ot,childTabIndex:it,onFocus:st}=useRovingTabIndex(rt),{summaryCellClass:lt}=j,ut=getCellClassname(j,summaryCellClassname,typeof lt=="function"?lt(et):lt);function ct(){nt({rowIdx:tt,idx:j.idx})}return jsxRuntimeExports.jsx("div",{role:"gridcell","aria-colindex":j.idx+1,"aria-colspan":_e,"aria-selected":rt,tabIndex:ot,className:ut,style:getCellStyle(j,_e),onClick:ct,onFocus:st,children:(dt=j.renderSummaryCell)==null?void 0:dt.call(j,{column:j,row:et,tabIndex:it})})}const SummaryCell$1=reactExports.memo(SummaryCell),summaryRow="snfqesz7-0-0-beta-39",topSummaryRow="t1jijrjz7-0-0-beta-39",topSummaryRowBorderClassname="t14bmecc7-0-0-beta-39",bottomSummaryRowBorderClassname="b1odhhml7-0-0-beta-39",summaryRowClassname=`rdg-summary-row ${summaryRow}`,topSummaryRowClassname=`rdg-top-summary-row ${topSummaryRow}`;function SummaryRow({rowIdx:j,gridRowStart:_e,row:et,viewportColumns:tt,top:rt,bottom:nt,lastFrozenColumnIndex:ot,selectedCellIdx:it,isTop:st,showBorder:lt,selectCell:ut,"aria-rowindex":ct}){const dt=[];for(let ft=0;ftnew Map),[Jr,Yr]=reactExports.useState(()=>new Map),[jr,Hr]=reactExports.useState(null),[hn,pr]=reactExports.useState(!1),[sr,Jt]=reactExports.useState(void 0),[ur,br]=reactExports.useState(null),[Sr,yr,Cr]=useGridDimensions(),{columns:Lr,colSpanColumns:Xr,lastFrozenColumnIndex:qr,headerRowsCount:Qr,colOverscanStartIdx:xn,colOverscanEndIdx:wn,templateColumns:nn,layoutCssVars:Ln,totalFrozenColumnWidth:zn}=useCalculatedColumns({rawColumns:et,defaultColumnOptions:gt,measuredColumnWidths:Jr,resizedColumnWidths:Wr,scrollLeft:wr,viewportWidth:yr,enableVirtualization:nr}),En=(rt==null?void 0:rt.length)??0,sn=(nt==null?void 0:nt.length)??0,Dn=En+sn,Mn=Qr+En,In=Qr-1,Cn=-Mn,cn=Cn+In,Ur=tt.length+sn-1,[Fr,Hn]=reactExports.useState(()=>({idx:-1,rowIdx:Cn-1,mode:"SELECT"})),ro=reactExports.useRef(Fr),Pn=reactExports.useRef(sr),jo=reactExports.useRef(-1),vo=reactExports.useRef(null),eo=reactExports.useRef(!1),Co=cr==="treegrid",Mr=Qr*Tr,Ut=Cr-Mr-Dn*gr,Zt=ct!=null&&dt!=null,zt=mr==="rtl",Ht=zt?"ArrowRight":"ArrowLeft",Dt=zt?"ArrowLeft":"ArrowRight",Qt=Yt??Qr+tt.length+Dn,ar=reactExports.useMemo(()=>({renderCheckbox:ir,renderSortStatus:qt}),[ir,qt]),lr=reactExports.useMemo(()=>{const{length:Pr}=tt;return Pr!==0&&ct!=null&&ot!=null&&ct.size>=Pr&&tt.every(Gr=>ct.has(ot(Gr)))},[tt,ct,ot]),{rowOverscanStartIdx:tr,rowOverscanEndIdx:_r,totalRowHeight:Br,gridTemplateRows:un,getRowTop:fn,getRowHeight:an,findRowIdx:tn}=useViewportRows({rows:tt,rowHeight:vr,clientHeight:Ut,scrollTop:Ar,enableVirtualization:nr}),_n=useViewportColumns({columns:Lr,colSpanColumns:Xr,colOverscanStartIdx:xn,colOverscanEndIdx:wn,lastFrozenColumnIndex:qr,rowOverscanStartIdx:tr,rowOverscanEndIdx:_r,rows:tt,topSummaryRows:rt,bottomSummaryRows:nt}),{gridTemplateColumns:jn,handleColumnResize:pn}=useColumnWidths(Lr,_n,nn,Sr,yr,Wr,Jr,Vr,Yr,St),qn=Co?-1:0,to=Lr.length-1,fo=zs(Fr),Fo=Hs(Fr),xo=useLatestFunc(pn),_i=useLatestFunc($t),zo=useLatestFunc(pt),Zn=useLatestFunc(vt),ko=useLatestFunc(bt),na=useLatestFunc(_t),Ho=useLatestFunc(xa),ga=useLatestFunc(Xo),Go=useLatestFunc(gs),ps=useLatestFunc(({idx:Pr,rowIdx:Gr})=>{gs({rowIdx:Cn+Gr-1,idx:Pr})});useLayoutEffect(()=>{if(!fo||isSamePosition(Fr,ro.current)){ro.current=Fr;return}ro.current=Fr,Fr.idx===-1&&(vo.current.focus({preventScroll:!0}),scrollIntoView(vo.current))}),useLayoutEffect(()=>{eo.current&&(eo.current=!1,$l())}),reactExports.useImperativeHandle(_e,()=>({element:Sr.current,scrollToCell({idx:Pr,rowIdx:Gr}){const bn=Pr!==void 0&&Pr>qr&&Pr{Jt(Pr),Pn.current=Pr},[]);function xa(Pr){if(!dt)return;if(assertIsValidKeyGetter(ot),Pr.type==="HEADER"){const Wn=new Set(ct);for(const Kn of tt){const no=ot(Kn);Pr.checked?Wn.add(no):Wn.delete(no)}dt(Wn);return}const{row:Gr,checked:bn,isShiftClick:vn}=Pr,rn=new Set(ct),dn=ot(Gr);if(bn){rn.add(dn);const Wn=jo.current,Kn=tt.indexOf(Gr);if(jo.current=Kn,vn&&Wn!==-1&&Wn!==Kn){const no=sign$5(Kn-Wn);for(let Io=Wn+no;Io!==Kn;Io+=no){const ts=tt[Io];rn.add(ot(ts))}}}else rn.delete(dn),jo.current=-1;dt(rn)}function es(Pr){const{idx:Gr,rowIdx:bn,mode:vn}=Fr;if(vn==="EDIT")return;if(xt&&ws(bn)){const Kn=tt[bn],no=createCellEvent(Pr);if(xt({mode:"SELECT",row:Kn,column:Lr[Gr],rowIdx:bn,selectCell:gs},no),no.isGridDefaultPrevented())return}if(!(Pr.target instanceof Element))return;const rn=Pr.target.closest(".rdg-cell")!==null,dn=Co&&Pr.target===vo.current;if(!rn&&!dn)return;const{keyCode:Wn}=Pr;if(Fo&&(Ct!=null||wt!=null)&&isCtrlKeyHeldDown(Pr)){if(Wn===67){El();return}if(Wn===86){hs();return}}switch(Pr.key){case"Escape":Hr(null);return;case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"Tab":case"Home":case"End":case"PageUp":case"PageDown":Ul(Pr);break;default:Vl(Pr);break}}function Yo(Pr){const{scrollTop:Gr,scrollLeft:bn}=Pr.currentTarget;reactDomExports.flushSync(()=>{Or(Gr),Nr(abs$1(bn))}),Et==null||Et(Pr)}function Xo(Pr,Gr,bn){if(typeof it!="function"||bn===tt[Gr])return;const vn=[...tt];vn[Gr]=bn,it(vn,{indexes:[Gr],column:Pr})}function Fs(){Fr.mode==="EDIT"&&Xo(Lr[Fr.idx],Fr.rowIdx,Fr.row)}function El(){const{idx:Pr,rowIdx:Gr}=Fr,bn=tt[Gr],vn=Lr[Pr].key;Hr({row:bn,columnKey:vn}),wt==null||wt({sourceRow:bn,sourceColumnKey:vn})}function hs(){if(!Ct||!it||jr===null||!Cs(Fr))return;const{idx:Pr,rowIdx:Gr}=Fr,bn=Lr[Pr],vn=tt[Gr],rn=Ct({sourceRow:jr.row,sourceColumnKey:jr.columnKey,targetRow:vn,targetColumnKey:bn.key});Xo(bn,Gr,rn)}function Vl(Pr){if(!Fo)return;const Gr=tt[Fr.rowIdx],{key:bn,shiftKey:vn}=Pr;if(Zt&&vn&&bn===" "){assertIsValidKeyGetter(ot);const rn=ot(Gr);xa({type:"ROW",row:Gr,checked:!ct.has(rn),isShiftClick:!1}),Pr.preventDefault();return}Cs(Fr)&&isDefaultCellInput(Pr)&&Hn(({idx:rn,rowIdx:dn})=>({idx:rn,rowIdx:dn,mode:"EDIT",row:Gr,originalRow:Gr}))}function Sl(Pr){return Pr>=qn&&Pr<=to}function ws(Pr){return Pr>=0&&Pr=Cn&&Gr<=Ur&&Sl(Pr)}function Hs({idx:Pr,rowIdx:Gr}){return ws(Gr)&&Sl(Pr)}function Cs(Pr){return Hs(Pr)&&isSelectedCellEditable({columns:Lr,rows:tt,selectedPosition:Pr})}function gs(Pr,Gr){if(!zs(Pr))return;Fs();const bn=tt[Pr.rowIdx],vn=isSamePosition(Fr,Pr);Gr&&Cs(Pr)?Hn({...Pr,mode:"EDIT",row:bn,originalRow:bn}):vn?scrollIntoView(getCellToScroll(Sr.current)):(eo.current=!0,Hn({...Pr,mode:"SELECT"})),yt&&!vn&&yt({rowIdx:Pr.rowIdx,row:bn,column:Lr[Pr.idx]})}function Lu(Pr,Gr,bn){const{idx:vn,rowIdx:rn}=Fr,dn=fo&&vn===-1;switch(Pr){case"ArrowUp":return{idx:vn,rowIdx:rn-1};case"ArrowDown":return{idx:vn,rowIdx:rn+1};case Ht:return{idx:vn-1,rowIdx:rn};case Dt:return{idx:vn+1,rowIdx:rn};case"Tab":return{idx:vn+(bn?-1:1),rowIdx:rn};case"Home":return dn?{idx:vn,rowIdx:Cn}:{idx:0,rowIdx:Gr?Cn:rn};case"End":return dn?{idx:vn,rowIdx:Ur}:{idx:to,rowIdx:Gr?Ur:rn};case"PageUp":{if(Fr.rowIdx===Cn)return Fr;const Wn=fn(rn)+an(rn)-Ut;return{idx:vn,rowIdx:Wn>0?tn(Wn):0}}case"PageDown":{if(Fr.rowIdx>=tt.length)return Fr;const Wn=fn(rn)+Ut;return{idx:vn,rowIdx:WnPr&&Pr>=sr)?Fr.idx:void 0}function $l(){const Pr=getCellToScroll(Sr.current);if(Pr===null)return;scrollIntoView(Pr),(Pr.querySelector('[tabindex="0"]')??Pr).focus({preventScroll:!0})}function Pu(){if(!(At==null||Fr.mode==="EDIT"||!Hs(Fr)))return jsxRuntimeExports.jsx(DragHandle,{gridRowStart:Mn+Fr.rowIdx+1,rows:tt,columns:Lr,selectedPosition:Fr,isCellEditable:Cs,latestDraggedOverRowIdx:Pn,onRowsChange:it,onClick:$l,onFill:At,setDragging:pr,setDraggedOverRowIdx:Uo})}function ju(Pr){if(Fr.rowIdx!==Pr||Fr.mode==="SELECT")return;const{idx:Gr,row:bn}=Fr,vn=Lr[Gr],rn=getColSpan(vn,qr,{type:"ROW",row:bn}),dn=Kn=>{eo.current=Kn,Hn(({idx:no,rowIdx:Io})=>({idx:no,rowIdx:Io,mode:"SELECT"}))},Wn=(Kn,no,Io)=>{no?reactDomExports.flushSync(()=>{Xo(vn,Fr.rowIdx,Kn),dn(Io)}):Hn(ts=>({...ts,row:Kn}))};return tt[Fr.rowIdx]!==Fr.originalRow&&dn(!1),jsxRuntimeExports.jsx(EditCell,{column:vn,colSpan:rn,row:bn,rowIdx:Pr,onRowChange:Wn,closeEditor:dn,onKeyDown:xt,navigate:Ul},vn.key)}function ks(Pr){const Gr=Fr.idx===-1?void 0:Lr[Fr.idx];return Gr!==void 0&&Fr.rowIdx===Pr&&!_n.includes(Gr)?Fr.idx>wn?[..._n,Gr]:[..._n.slice(0,qr+1),Gr,..._n.slice(qr+1)]:_n}function Fu(){const Pr=[],{idx:Gr,rowIdx:bn}=Fr,vn=Fo&&bn_r?_r+1:_r;for(let dn=vn;dn<=rn;dn++){const Wn=dn===tr-1||dn===_r+1,Kn=Wn?bn:dn;let no=_n;const Io=Gr===-1?void 0:Lr[Gr];Io!==void 0&&(Wn?no=[Io]:no=ks(Kn));const ts=tt[Kn],zu=Mn+Kn+1;let Gs=Kn,Tl=!1;typeof ot=="function"&&(Gs=ot(ts),Tl=(ct==null?void 0:ct.has(Gs))??!1),Pr.push(Er(Gs,{"aria-rowindex":Mn+Kn+1,"aria-selected":Zt?Tl:void 0,rowIdx:Kn,row:ts,viewportColumns:no,isRowSelected:Tl,onCellClick:Zn,onCellDoubleClick:ko,onCellContextMenu:na,rowClass:Mt,gridRowStart:zu,height:an(Kn),copiedCellIdx:jr!==null&&jr.row===ts?Lr.findIndex(oo=>oo.key===jr.columnKey):void 0,selectedCellIdx:bn===Kn?Gr:void 0,draggedOverCellIdx:Bu(Kn),setDraggedOverRowIdx:hn?Uo:void 0,lastFrozenColumnIndex:qr,onRowChange:ga,selectCell:Go,selectedCellEditor:ju(Kn)}))}return Pr}(Fr.idx>to||Fr.rowIdx>Ur)&&(Hn({idx:-1,rowIdx:Cn-1,mode:"SELECT"}),Uo(void 0));let vs=`repeat(${Qr}, ${Tr}px)`;En>0&&(vs+=` repeat(${En}, ${gr}px)`),tt.length>0&&(vs+=un),sn>0&&(vs+=` repeat(${sn}, ${gr}px)`);const Yl=Fr.idx===-1&&Fr.rowIdx!==Cn-1;return jsxRuntimeExports.jsxs("div",{role:cr,"aria-label":jt,"aria-labelledby":Gt,"aria-describedby":Vt,"aria-multiselectable":Zt?!0:void 0,"aria-colcount":Lr.length,"aria-rowcount":Qt,className:clsx(rootClassname,Nt,hn&&viewportDraggingClassname),style:{...Pt,scrollPaddingInlineStart:Fr.idx>qr||(ur==null?void 0:ur.idx)!==void 0?`${zn}px`:void 0,scrollPaddingBlock:ws(Fr.rowIdx)||(ur==null?void 0:ur.rowIdx)!==void 0?`${Mr+En*gr}px ${sn*gr}px`:void 0,gridTemplateColumns:jn,gridTemplateRows:vs,"--rdg-header-row-height":`${Tr}px`,"--rdg-summary-row-height":`${gr}px`,"--rdg-sign":zt?-1:1,...Ln},dir:mr,ref:Sr,onScroll:Yo,onKeyDown:es,"data-testid":Xt,children:[jsxRuntimeExports.jsx(DataGridDefaultRenderersProvider,{value:ar,children:jsxRuntimeExports.jsxs(RowSelectionChangeProvider,{value:Ho,children:[jsxRuntimeExports.jsxs(RowSelectionProvider,{value:lr,children:[Array.from({length:In},(Pr,Gr)=>jsxRuntimeExports.jsx(GroupedColumnHeaderRow$1,{rowIdx:Gr+1,level:-In+Gr,columns:ks(Cn+Gr),selectedCellIdx:Fr.rowIdx===Cn+Gr?Fr.idx:void 0,selectCell:ps},Gr)),jsxRuntimeExports.jsx(HeaderRow$1,{rowIdx:Qr,columns:ks(cn),onColumnResize:xo,onColumnsReorder:_i,sortColumns:ft,onSortColumnsChange:zo,lastFrozenColumnIndex:qr,selectedCellIdx:Fr.rowIdx===cn?Fr.idx:void 0,selectCell:ps,shouldFocusGrid:!fo,direction:mr})]}),tt.length===0&&hr?hr:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[rt==null?void 0:rt.map((Pr,Gr)=>{const bn=Qr+1+Gr,vn=cn+1+Gr,rn=Fr.rowIdx===vn,dn=Mr+gr*Gr;return jsxRuntimeExports.jsx(SummaryRow$1,{"aria-rowindex":bn,rowIdx:vn,gridRowStart:bn,row:Pr,top:dn,bottom:void 0,viewportColumns:ks(vn),lastFrozenColumnIndex:qr,selectedCellIdx:rn?Fr.idx:void 0,isTop:!0,showBorder:Gr===En-1,selectCell:Go},Gr)}),Fu(),nt==null?void 0:nt.map((Pr,Gr)=>{const bn=Mn+tt.length+Gr+1,vn=tt.length+Gr,rn=Fr.rowIdx===vn,dn=Ut>Br?Cr-gr*(nt.length-Gr):void 0,Wn=dn===void 0?gr*(nt.length-1-Gr):void 0;return jsxRuntimeExports.jsx(SummaryRow$1,{"aria-rowindex":Qt-sn+Gr+1,rowIdx:vn,gridRowStart:bn,row:Pr,top:dn,bottom:Wn,viewportColumns:ks(vn),lastFrozenColumnIndex:qr,selectedCellIdx:rn?Fr.idx:void 0,isTop:!1,showBorder:Gr===0,selectCell:Go},Gr)})]})]})}),Pu(),renderMeasuringCells(_n),Co&&jsxRuntimeExports.jsx("div",{ref:vo,tabIndex:Yl?0:-1,className:clsx(focusSinkClassname,Yl&&[rowSelected,qr!==-1&&rowSelectedWithFrozenCell],!ws(Fr.rowIdx)&&focusSinkHeaderAndSummaryClassname),style:{gridRowStart:Fr.rowIdx+Mn+1}}),ur!==null&&jsxRuntimeExports.jsx(ScrollToCell,{scrollToPosition:ur,setScrollToCellPosition:br,gridElement:Sr.current})]})}function getCellToScroll(j){return j.querySelector(':scope > [role="row"] > [tabindex="0"]')}function isSamePosition(j,_e){return j.idx===_e.idx&&j.rowIdx===_e.rowIdx}const DataGrid$1$1=reactExports.forwardRef(DataGrid$2),useGanttViewModel=()=>{const[j]=useInjected(GanttViewModelToken);return j},useGanttViewRows=()=>{const j=useGanttViewModel();return useState(j.rows$).toArray()},useToggleSubRows=()=>{const j=useGanttViewModel();return reactExports.useCallback(_e=>{j.toggleRow(_e)},[j])},useTasksTimeBoundaries=()=>{const j=useGanttViewModel();return[j.startTime,j.endTime]},useSelectedRow=()=>{const j=useGanttViewModel();return useState(j.selectedRowId$)},useSetSelectedRow=()=>{const j=useGanttViewModel();return useSetState(j.selectedRowId$)},GanttChartCell=({row:j})=>{const[_e,et]=useTasksTimeBoundaries(),tt=`${(j.startTime-_e)*100/(et-_e)}%`,rt=`${(et-j.endTime)*100/(et-_e)}%`,nt=j.children&&j.children.length>0,ot=j.isExpanded;return jsxRuntimeExports.jsx("div",{style:{marginLeft:tt,marginRight:rt,height:"100%",marginTop:4,marginBottom:4,display:"flex"},children:nt&&!ot?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:(j.children??[]).map((it,st)=>{const lt=`${(it.endTime-it.startTime)*100/(j.endTime-j.startTime)}%`;return jsxRuntimeExports.jsx("div",{style:{backgroundColor:it.color??`rgba(0, 120, 212, ${1-.2*st})`,width:lt}},it.id)})}):jsxRuntimeExports.jsx("div",{style:{backgroundColor:j.color??"rgba(0, 120, 212, 1)",width:"100%"}})})},NameCell=({row:j})=>{const _e=j.children!==void 0&&j.children.length>0,et=j.isExpanded,tt=useToggleSubRows(),rt=reactExports.useCallback(nt=>{nt.preventDefault(),nt.stopPropagation(),tt(j.id)},[j.id,tt]);return jsxRuntimeExports.jsxs("div",{style:{display:"flex",gap:4,paddingLeft:j.level*24},children:[_e?jsxRuntimeExports.jsx("div",{onClick:rt,role:"button",children:et?"▼":"▶"}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{}),jsxRuntimeExports.jsx("div",{children:j.node_name||j.name})]})},defaultColumns=[{key:"name",name:"node name",resizable:!0,width:320,renderCell({row:j}){return jsxRuntimeExports.jsx(NameCell,{row:j})}},{key:"duration",name:"duration",resizable:!0,width:60,renderHeaderCell(){return jsxRuntimeExports.jsx("div",{style:{textAlign:"right"},children:"duration"})},renderCell({row:j}){return jsxRuntimeExports.jsxs("div",{style:{textAlign:"right"},children:[Math.round((j.endTime-j.startTime)*1e3).toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")," ","ms"]})}},{key:"ganttChart",name:"gantt-chart",renderCell({row:j}){return jsxRuntimeExports.jsx(GanttChartCell,{row:j})},renderHeaderCell:()=>jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}],GanttGridView=({styles:j,getColumns:_e=et=>et})=>{const et=useGanttViewRows(),tt=useSetSelectedRow(),rt=useSelectedRow(),nt=reactExports.useCallback(st=>{const{row:lt}=st;tt(lt.id)},[tt]),ot=mergeStyles$1(j==null?void 0:j.grid,{borderBottom:"none",borderRight:"none"}),it=reactExports.useCallback(st=>mergeStyles$1(rt===st.id?j==null?void 0:j.selectedRow:""),[rt,j==null?void 0:j.selectedRow]);return jsxRuntimeExports.jsx(DataGrid$1$1,{rows:et,columns:_e(defaultColumns),onCellClick:nt,className:ot,rowClass:it})},Wrapper=({viewModel:j,children:_e})=>{const et=createRegistry({name:"gantt-wrapper"}),tt=reactExports.useCallback(rt=>{rt.register(GanttViewModelToken,{useValue:j})},[j]);return jsxRuntimeExports.jsx(et,{onInitialize:tt,children:_e})};var GanttGridTheme=(j=>(j.Light="rdg-light",j.Dark="rdg-dark",j))(GanttGridTheme||{});const Gantt=({viewModel:j,styles:_e,getColumns:et})=>jsxRuntimeExports.jsx(Wrapper,{viewModel:j,children:jsxRuntimeExports.jsx(GanttGridView,{styles:_e,getColumns:et})}),TraceDetailTemplate=({trace:j,JSONView:_e})=>{const et=mergeStyleSets({root:["api-call-detail",{padding:8,width:"100%",height:"100%",display:"flex",flexDirection:"column"}],header:["api-call-detail-header",{fontWeight:600,fontSize:20,lineHeight:28,marginBottom:16}],section:["api-call-detail-section",{display:"flex",flexDirection:"column",width:"85%",height:"auto",boxShadow:"rgba(0, 0, 0, 0.18) 0px 1.6px 3.6px 0px, rgba(0, 0, 0, 0.22) 0px 0.3px 0.9px 0px",marginBottom:16}],sectionTitle:["api-call-detail-section-title",{fontWeight:500,fontSize:16,marginTop:8,marginBottom:8,lineHeight:20,borderBottom:"1px inset #ccc",padding:"9px 12px"}],sectionContent:["api-call-detail-section-content",{padding:16,overflow:"auto",maxHeight:"600px"}],fieldTitle:["api-call-detail-field-title",{fontWeight:500,fontSize:14,lineHeight:20}],overviewContainer:["api-call-detail-overview-container",{display:"flex",flexDirection:"row"}],overviewColumn:["api-call-detail-overview-column",{display:"flex",flexGrow:1,flexDirection:"column"}]}),tt=j.node_name??j.name??"",rt=getTokensUsageByRow(j),nt=j.inputs??{},ot=j.output??{};return jsxRuntimeExports.jsxs("div",{className:et.root,children:[jsxRuntimeExports.jsx("div",{className:et.header,children:tt}),jsxRuntimeExports.jsxs("div",{className:et.section,children:[jsxRuntimeExports.jsx("div",{className:et.sectionTitle,children:"Overview"}),jsxRuntimeExports.jsx("div",{className:et.sectionContent,children:jsxRuntimeExports.jsxs("div",{className:et.overviewContainer,children:[jsxRuntimeExports.jsxs("div",{className:et.overviewColumn,children:[jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"total tokens"}),jsxRuntimeExports.jsx("div",{children:numberToDigitsString(rt.totalTokens)}),jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"prompt tokens"}),jsxRuntimeExports.jsx("div",{children:numberToDigitsString(rt.promptTokens)}),jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"completion tokens"}),jsxRuntimeExports.jsx("div",{children:numberToDigitsString(rt.completionTokens)})]}),jsxRuntimeExports.jsxs("div",{className:et.overviewColumn,children:[jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"duration"}),jsxRuntimeExports.jsx("div",{children:j.end_time&&j.start_time?`${Math.round((j.end_time-j.start_time)*1e3).toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")} ms`:"N/A"}),jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"started at"}),jsxRuntimeExports.jsx("div",{children:j.start_time?timePDTFormatter(j.start_time*1e3):"N/A"}),jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"finished at"}),jsxRuntimeExports.jsx("div",{children:j.end_time?timePDTFormatter(j.end_time*1e3):"N/A"})]})]})})]}),jsxRuntimeExports.jsxs("div",{className:et.section,children:[jsxRuntimeExports.jsx("div",{className:et.sectionTitle,children:"Inputs"}),jsxRuntimeExports.jsx("div",{className:et.sectionContent,children:jsxRuntimeExports.jsx(_e,{src:nt})})]}),jsxRuntimeExports.jsxs("div",{className:et.section,children:[jsxRuntimeExports.jsx("div",{className:et.sectionTitle,children:"Outputs"}),jsxRuntimeExports.jsx("div",{className:et.sectionContent,children:jsxRuntimeExports.jsx(_e,{src:ot})})]})]})},traceMap=new Map,hashTraceName=j=>{let _e=0,et=0;if(j.length===0)return _e;for(let tt=0;ttj.map(_e=>{const et=uuid_1.v4();return traceMap.set(et,_e),{startTime:_e.start_time??performance.now(),endTime:_e.end_time??performance.now(),color:SystemColors[hashTraceName(_e.name??"")%systemColorsLength],id:et,name:_e.name??"",node_name:_e.node_name??"",output:_e.output??[],children:_e.children?parseTrace(_e.children):void 0}}),DefaultGridContainer=({children:j,className:_e})=>jsxRuntimeExports.jsx(Resizable,{enable:{right:!0},className:_e,defaultSize:{width:"50%",height:"100%"},children:j}),DefaultContainer=({children:j,className:_e})=>jsxRuntimeExports.jsx("div",{className:_e,children:j}),ApiLogs=reactExports.forwardRef(({traces:j,styles:_e,isDarkMode:et=!1,classNames:tt,RootContainer:rt=DefaultContainer,GridContainer:nt=DefaultGridContainer,DetailContainer:ot=DefaultContainer,renderDetail:it=ct=>jsxRuntimeExports.jsx(TraceDetailTemplate,{JSONView:dt=>jsxRuntimeExports.jsx("pre",{children:JSON.stringify(dt)}),trace:ct}),onChangeSelectedTrace:st,renderUnselectedHint:lt=()=>jsxRuntimeExports.jsx("div",{children:"Click on a row to see details"})},ut)=>{const ct=reactExports.useMemo(()=>j.reduce((St,$t)=>[...St,...parseTrace($t)],[]),[j]),dt=reactExports.useMemo(()=>new GanttViewModel,[]);reactExports.useEffect(()=>{dt.setTasks(ct)},[ct,dt]);const ft=useState(dt.selectedRowId$),pt=useSetState(dt.selectedRowId$),gt=reactExports.useMemo(()=>ft?traceMap.get(ft):void 0,[ft]),vt=reactExports.useMemo(()=>({..._e,grid:mergeStyles$1(_e==null?void 0:_e.grid,et?GanttGridTheme.Dark:GanttGridTheme.Light)}),[_e,et]),bt=mergeStyles$1({display:"flex",height:"100%",borderTop:"1px solid #ccc"},tt==null?void 0:tt.root),_t=mergeStyles$1({height:"100%",width:"100%",padding:16,borderRight:"1px solid #ccc"},tt==null?void 0:tt.gridContainer),xt=mergeStyles$1({height:"100%",width:"100%",padding:8},tt==null?void 0:tt.detailContainer),yt=reactExports.useCallback(St=>{var At;const $t=(At=ct.find(wt=>wt.node_name===St))==null?void 0:At.id;$t&&pt($t)},[ct,pt]);reactExports.useImperativeHandle(ut,()=>({setSelectedTraceRow:yt})),reactExports.useEffect(()=>{st&&st(gt)},[st,gt]),reactExports.useEffect(()=>{pt(void 0)},[j]);const Et=reactExports.useCallback(St=>{const $t={key:"token",name:"token",resizable:!0,width:60,renderHeaderCell(){return jsxRuntimeExports.jsx("div",{style:{textAlign:"right"},children:"Tokens"})},renderCell({row:Ct}){const It=getTokensUsageByRow(Ct),Ot=`prompt tokens: ${numberToDigitsString(It.promptTokens)}, - completion tokens: ${It.completionTokens}`;return jsxRuntimeExports.jsx("div",{style:{textAlign:"right"},title:Ot,children:numberToDigitsString(It.totalTokens)})}},[At,...wt]=St;return[At,$t,...wt]},[]);return jsxRuntimeExports.jsxs(rt,{className:bt,children:[jsxRuntimeExports.jsx(nt,{className:_t,children:jsxRuntimeExports.jsx(Gantt,{viewModel:dt,styles:vt,getColumns:Et})}),jsxRuntimeExports.jsx(ot,{className:xt,children:gt?it(gt):lt()})]})});ApiLogs.displayName="ApiLogs";const $global=function(){if(typeof globalThis<"u")return globalThis;if(typeof global<"u")return global;if(typeof self<"u")return self;if(typeof window<"u")return window;try{return new Function("return this")()}catch{return{}}}();$global.trustedTypes===void 0&&($global.trustedTypes={createPolicy:(j,_e)=>_e});const propConfig={configurable:!1,enumerable:!1,writable:!1};$global.FAST===void 0&&Reflect.defineProperty($global,"FAST",Object.assign({value:Object.create(null)},propConfig));const FAST=$global.FAST;if(FAST.getById===void 0){const j=Object.create(null);Reflect.defineProperty(FAST,"getById",Object.assign({value(_e,et){let tt=j[_e];return tt===void 0&&(tt=et?j[_e]=et():null),tt}},propConfig))}const emptyArray=Object.freeze([]);function createMetadataLocator(){const j=new WeakMap;return function(_e){let et=j.get(_e);if(et===void 0){let tt=Reflect.getPrototypeOf(_e);for(;et===void 0&&tt!==null;)et=j.get(tt),tt=Reflect.getPrototypeOf(tt);et=et===void 0?[]:et.slice(0),j.set(_e,et)}return et}}const updateQueue=$global.FAST.getById(1,()=>{const j=[],_e=[];function et(){if(_e.length)throw _e.shift()}function tt(ot){try{ot.call()}catch(it){_e.push(it),setTimeout(et,0)}}function rt(){let it=0;for(;it1024){for(let st=0,lt=j.length-it;stj});let htmlPolicy=fastHTMLPolicy;const marker=`fast-${Math.random().toString(36).substring(2,8)}`,_interpolationStart=`${marker}{`,_interpolationEnd=`}${marker}`,DOM=Object.freeze({supportsAdoptedStyleSheets:Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype,setHTMLPolicy(j){if(htmlPolicy!==fastHTMLPolicy)throw new Error("The HTML policy can only be set once.");htmlPolicy=j},createHTML(j){return htmlPolicy.createHTML(j)},isMarker(j){return j&&j.nodeType===8&&j.data.startsWith(marker)},extractDirectiveIndexFromMarker(j){return parseInt(j.data.replace(`${marker}:`,""))},createInterpolationPlaceholder(j){return`${_interpolationStart}${j}${_interpolationEnd}`},createCustomAttributePlaceholder(j,_e){return`${j}="${this.createInterpolationPlaceholder(_e)}"`},createBlockPlaceholder(j){return``},queueUpdate:updateQueue.enqueue,processUpdates:updateQueue.process,nextUpdate(){return new Promise(updateQueue.enqueue)},setAttribute(j,_e,et){et==null?j.removeAttribute(_e):j.setAttribute(_e,et)},setBooleanAttribute(j,_e,et){et?j.setAttribute(_e,""):j.removeAttribute(_e)},removeChildNodes(j){for(let _e=j.firstChild;_e!==null;_e=j.firstChild)j.removeChild(_e)},createTemplateWalker(j){return document.createTreeWalker(j,133,null,!1)}});class SubscriberSet{constructor(_e,et){this.sub1=void 0,this.sub2=void 0,this.spillover=void 0,this.source=_e,this.sub1=et}has(_e){return this.spillover===void 0?this.sub1===_e||this.sub2===_e:this.spillover.indexOf(_e)!==-1}subscribe(_e){const et=this.spillover;if(et===void 0){if(this.has(_e))return;if(this.sub1===void 0){this.sub1=_e;return}if(this.sub2===void 0){this.sub2=_e;return}this.spillover=[this.sub1,this.sub2,_e],this.sub1=void 0,this.sub2=void 0}else et.indexOf(_e)===-1&&et.push(_e)}unsubscribe(_e){const et=this.spillover;if(et===void 0)this.sub1===_e?this.sub1=void 0:this.sub2===_e&&(this.sub2=void 0);else{const tt=et.indexOf(_e);tt!==-1&&et.splice(tt,1)}}notify(_e){const et=this.spillover,tt=this.source;if(et===void 0){const rt=this.sub1,nt=this.sub2;rt!==void 0&&rt.handleChange(tt,_e),nt!==void 0&&nt.handleChange(tt,_e)}else for(let rt=0,nt=et.length;rt{const j=/(:|&&|\|\||if)/,_e=new WeakMap,et=DOM.queueUpdate;let tt,rt=lt=>{throw new Error("Must call enableArrayObservation before observing arrays.")};function nt(lt){let ut=lt.$fastController||_e.get(lt);return ut===void 0&&(Array.isArray(lt)?ut=rt(lt):_e.set(lt,ut=new PropertyChangeNotifier(lt))),ut}const ot=createMetadataLocator();class it{constructor(ut){this.name=ut,this.field=`_${ut}`,this.callback=`${ut}Changed`}getValue(ut){return tt!==void 0&&tt.watch(ut,this.name),ut[this.field]}setValue(ut,ct){const dt=this.field,ft=ut[dt];if(ft!==ct){ut[dt]=ct;const pt=ut[this.callback];typeof pt=="function"&&pt.call(ut,ft,ct),nt(ut).notify(this.name)}}}class st extends SubscriberSet{constructor(ut,ct,dt=!1){super(ut,ct),this.binding=ut,this.isVolatileBinding=dt,this.needsRefresh=!0,this.needsQueue=!0,this.first=this,this.last=null,this.propertySource=void 0,this.propertyName=void 0,this.notifier=void 0,this.next=void 0}observe(ut,ct){this.needsRefresh&&this.last!==null&&this.disconnect();const dt=tt;tt=this.needsRefresh?this:void 0,this.needsRefresh=this.isVolatileBinding;const ft=this.binding(ut,ct);return tt=dt,ft}disconnect(){if(this.last!==null){let ut=this.first;for(;ut!==void 0;)ut.notifier.unsubscribe(this,ut.propertyName),ut=ut.next;this.last=null,this.needsRefresh=this.needsQueue=!0}}watch(ut,ct){const dt=this.last,ft=nt(ut),pt=dt===null?this.first:{};if(pt.propertySource=ut,pt.propertyName=ct,pt.notifier=ft,ft.subscribe(this,ct),dt!==null){if(!this.needsRefresh){let gt;tt=void 0,gt=dt.propertySource[dt.propertyName],tt=this,ut===gt&&(this.needsRefresh=!0)}dt.next=pt}this.last=pt}handleChange(){this.needsQueue&&(this.needsQueue=!1,et(this))}call(){this.last!==null&&(this.needsQueue=!0,this.notify(this))}records(){let ut=this.first;return{next:()=>{const ct=ut;return ct===void 0?{value:void 0,done:!0}:(ut=ut.next,{value:ct,done:!1})},[Symbol.iterator]:function(){return this}}}}return Object.freeze({setArrayObserverFactory(lt){rt=lt},getNotifier:nt,track(lt,ut){tt!==void 0&&tt.watch(lt,ut)},trackVolatile(){tt!==void 0&&(tt.needsRefresh=!0)},notify(lt,ut){nt(lt).notify(ut)},defineProperty(lt,ut){typeof ut=="string"&&(ut=new it(ut)),ot(lt).push(ut),Reflect.defineProperty(lt,ut.name,{enumerable:!0,get:function(){return ut.getValue(this)},set:function(ct){ut.setValue(this,ct)}})},getAccessors:ot,binding(lt,ut,ct=this.isVolatileBinding(lt)){return new st(lt,ut,ct)},isVolatileBinding(lt){return j.test(lt.toString())}})});function observable(j,_e){Observable$1.defineProperty(j,_e)}function volatile(j,_e,et){return Object.assign({},et,{get:function(){return Observable$1.trackVolatile(),et.get.apply(this)}})}const contextEvent=FAST.getById(3,()=>{let j=null;return{get(){return j},set(_e){j=_e}}});class ExecutionContext{constructor(){this.index=0,this.length=0,this.parent=null,this.parentContext=null}get event(){return contextEvent.get()}get isEven(){return this.index%2===0}get isOdd(){return this.index%2!==0}get isFirst(){return this.index===0}get isInMiddle(){return!this.isFirst&&!this.isLast}get isLast(){return this.index===this.length-1}static setEvent(_e){contextEvent.set(_e)}}Observable$1.defineProperty(ExecutionContext.prototype,"index");Observable$1.defineProperty(ExecutionContext.prototype,"length");const defaultExecutionContext=Object.seal(new ExecutionContext);class HTMLDirective{constructor(){this.targetIndex=0}}class TargetedHTMLDirective extends HTMLDirective{constructor(){super(...arguments),this.createPlaceholder=DOM.createInterpolationPlaceholder}}class AttachedBehaviorHTMLDirective extends HTMLDirective{constructor(_e,et,tt){super(),this.name=_e,this.behavior=et,this.options=tt}createPlaceholder(_e){return DOM.createCustomAttributePlaceholder(this.name,_e)}createBehavior(_e){return new this.behavior(_e,this.options)}}function normalBind(j,_e){this.source=j,this.context=_e,this.bindingObserver===null&&(this.bindingObserver=Observable$1.binding(this.binding,this,this.isBindingVolatile)),this.updateTarget(this.bindingObserver.observe(j,_e))}function triggerBind(j,_e){this.source=j,this.context=_e,this.target.addEventListener(this.targetName,this)}function normalUnbind(){this.bindingObserver.disconnect(),this.source=null,this.context=null}function contentUnbind(){this.bindingObserver.disconnect(),this.source=null,this.context=null;const j=this.target.$fastView;j!==void 0&&j.isComposed&&(j.unbind(),j.needsBindOnly=!0)}function triggerUnbind(){this.target.removeEventListener(this.targetName,this),this.source=null,this.context=null}function updateAttributeTarget(j){DOM.setAttribute(this.target,this.targetName,j)}function updateBooleanAttributeTarget(j){DOM.setBooleanAttribute(this.target,this.targetName,j)}function updateContentTarget(j){if(j==null&&(j=""),j.create){this.target.textContent="";let _e=this.target.$fastView;_e===void 0?_e=j.create():this.target.$fastTemplate!==j&&(_e.isComposed&&(_e.remove(),_e.unbind()),_e=j.create()),_e.isComposed?_e.needsBindOnly&&(_e.needsBindOnly=!1,_e.bind(this.source,this.context)):(_e.isComposed=!0,_e.bind(this.source,this.context),_e.insertBefore(this.target),this.target.$fastView=_e,this.target.$fastTemplate=j)}else{const _e=this.target.$fastView;_e!==void 0&&_e.isComposed&&(_e.isComposed=!1,_e.remove(),_e.needsBindOnly?_e.needsBindOnly=!1:_e.unbind()),this.target.textContent=j}}function updatePropertyTarget(j){this.target[this.targetName]=j}function updateClassTarget(j){const _e=this.classVersions||Object.create(null),et=this.target;let tt=this.version||0;if(j!=null&&j.length){const rt=j.split(/\s+/);for(let nt=0,ot=rt.length;ntDOM.createHTML(et(tt,rt))}break;case"?":this.cleanedTargetName=_e.substr(1),this.updateTarget=updateBooleanAttributeTarget;break;case"@":this.cleanedTargetName=_e.substr(1),this.bind=triggerBind,this.unbind=triggerUnbind;break;default:this.cleanedTargetName=_e,_e==="class"&&(this.updateTarget=updateClassTarget);break}}targetAtContent(){this.updateTarget=updateContentTarget,this.unbind=contentUnbind}createBehavior(_e){return new BindingBehavior(_e,this.binding,this.isBindingVolatile,this.bind,this.unbind,this.updateTarget,this.cleanedTargetName)}}class BindingBehavior{constructor(_e,et,tt,rt,nt,ot,it){this.source=null,this.context=null,this.bindingObserver=null,this.target=_e,this.binding=et,this.isBindingVolatile=tt,this.bind=rt,this.unbind=nt,this.updateTarget=ot,this.targetName=it}handleChange(){this.updateTarget(this.bindingObserver.observe(this.source,this.context))}handleEvent(_e){ExecutionContext.setEvent(_e);const et=this.binding(this.source,this.context);ExecutionContext.setEvent(null),et!==!0&&_e.preventDefault()}}let sharedContext=null;class CompilationContext{addFactory(_e){_e.targetIndex=this.targetIndex,this.behaviorFactories.push(_e)}captureContentBinding(_e){_e.targetAtContent(),this.addFactory(_e)}reset(){this.behaviorFactories=[],this.targetIndex=-1}release(){sharedContext=this}static borrow(_e){const et=sharedContext||new CompilationContext;return et.directives=_e,et.reset(),sharedContext=null,et}}function createAggregateBinding(j){if(j.length===1)return j[0];let _e;const et=j.length,tt=j.map(ot=>typeof ot=="string"?()=>ot:(_e=ot.targetName||_e,ot.binding)),rt=(ot,it)=>{let st="";for(let lt=0;ltit),lt.targetName=ot.name):lt=createAggregateBinding(st),lt!==null&&(_e.removeAttributeNode(ot),rt--,nt--,j.addFactory(lt))}}function compileContent(j,_e,et){const tt=parseContent(j,_e.textContent);if(tt!==null){let rt=_e;for(let nt=0,ot=tt.length;nt0}const et=this.fragment.cloneNode(!0),tt=this.viewBehaviorFactories,rt=new Array(this.behaviorCount),nt=DOM.createTemplateWalker(et);let ot=0,it=this.targetOffset,st=nt.nextNode();for(let lt=tt.length;ot=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function html$4(j,..._e){const et=[];let tt="";for(let rt=0,nt=j.length-1;rtst}if(typeof it=="function"&&(it=new HTMLBindingDirective(it)),it instanceof TargetedHTMLDirective){const st=lastAttributeNameRegex.exec(ot);st!==null&&(it.targetName=st[2])}it instanceof HTMLDirective?(tt+=it.createPlaceholder(et.length),et.push(it)):tt+=it}return tt+=j[j.length-1],new ViewTemplate(tt,et)}class ElementStyles{constructor(){this.targets=new WeakSet}addStylesTo(_e){this.targets.add(_e)}removeStylesFrom(_e){this.targets.delete(_e)}isAttachedTo(_e){return this.targets.has(_e)}withBehaviors(..._e){return this.behaviors=this.behaviors===null?_e:this.behaviors.concat(_e),this}}ElementStyles.create=(()=>{if(DOM.supportsAdoptedStyleSheets){const j=new Map;return _e=>new AdoptedStyleSheetsStyles(_e,j)}return j=>new StyleElementStyles(j)})();function reduceStyles(j){return j.map(_e=>_e instanceof ElementStyles?reduceStyles(_e.styles):[_e]).reduce((_e,et)=>_e.concat(et),[])}function reduceBehaviors(j){return j.map(_e=>_e instanceof ElementStyles?_e.behaviors:null).reduce((_e,et)=>et===null?_e:(_e===null&&(_e=[]),_e.concat(et)),null)}let addAdoptedStyleSheets=(j,_e)=>{j.adoptedStyleSheets=[...j.adoptedStyleSheets,..._e]},removeAdoptedStyleSheets=(j,_e)=>{j.adoptedStyleSheets=j.adoptedStyleSheets.filter(et=>_e.indexOf(et)===-1)};if(DOM.supportsAdoptedStyleSheets)try{document.adoptedStyleSheets.push(),document.adoptedStyleSheets.splice(),addAdoptedStyleSheets=(j,_e)=>{j.adoptedStyleSheets.push(..._e)},removeAdoptedStyleSheets=(j,_e)=>{for(const et of _e){const tt=j.adoptedStyleSheets.indexOf(et);tt!==-1&&j.adoptedStyleSheets.splice(tt,1)}}}catch{}class AdoptedStyleSheetsStyles extends ElementStyles{constructor(_e,et){super(),this.styles=_e,this.styleSheetCache=et,this._styleSheets=void 0,this.behaviors=reduceBehaviors(_e)}get styleSheets(){if(this._styleSheets===void 0){const _e=this.styles,et=this.styleSheetCache;this._styleSheets=reduceStyles(_e).map(tt=>{if(tt instanceof CSSStyleSheet)return tt;let rt=et.get(tt);return rt===void 0&&(rt=new CSSStyleSheet,rt.replaceSync(tt),et.set(tt,rt)),rt})}return this._styleSheets}addStylesTo(_e){addAdoptedStyleSheets(_e,this.styleSheets),super.addStylesTo(_e)}removeStylesFrom(_e){removeAdoptedStyleSheets(_e,this.styleSheets),super.removeStylesFrom(_e)}}let styleClassId=0;function getNextStyleClass(){return`fast-style-class-${++styleClassId}`}class StyleElementStyles extends ElementStyles{constructor(_e){super(),this.styles=_e,this.behaviors=null,this.behaviors=reduceBehaviors(_e),this.styleSheets=reduceStyles(_e),this.styleClass=getNextStyleClass()}addStylesTo(_e){const et=this.styleSheets,tt=this.styleClass;_e=this.normalizeTarget(_e);for(let rt=0;rt{tt.add(_e);const rt=_e[this.fieldName];switch(et){case"reflect":const nt=this.converter;DOM.setAttribute(_e,this.attribute,nt!==void 0?nt.toView(rt):rt);break;case"boolean":DOM.setBooleanAttribute(_e,this.attribute,rt);break}tt.delete(_e)})}static collect(_e,...et){const tt=[];et.push(AttributeConfiguration.locate(_e));for(let rt=0,nt=et.length;rt1&&(et.property=nt),AttributeConfiguration.locate(rt.constructor).push(et)}if(arguments.length>1){et={},tt(j,_e);return}return et=j===void 0?{}:j,tt}const defaultShadowOptions={mode:"open"},defaultElementOptions={},fastRegistry=FAST.getById(4,()=>{const j=new Map;return Object.freeze({register(_e){return j.has(_e.type)?!1:(j.set(_e.type,_e),!0)},getByType(_e){return j.get(_e)}})});class FASTElementDefinition{constructor(_e,et=_e.definition){typeof et=="string"&&(et={name:et}),this.type=_e,this.name=et.name,this.template=et.template;const tt=AttributeDefinition.collect(_e,et.attributes),rt=new Array(tt.length),nt={},ot={};for(let it=0,st=tt.length;it0){const nt=this.boundObservables=Object.create(null);for(let ot=0,it=rt.length;ot0||et>0;){if(_e===0){rt.push(EDIT_ADD),et--;continue}if(et===0){rt.push(EDIT_DELETE),_e--;continue}const nt=j[_e-1][et-1],ot=j[_e-1][et],it=j[_e][et-1];let st;ot=0){j.splice(it,1),it--,ot-=st.addedCount-st.removed.length,rt.addedCount+=st.addedCount-lt;const ut=rt.removed.length+st.removed.length-lt;if(!rt.addedCount&&!ut)nt=!0;else{let ct=st.removed;if(rt.indexst.index+st.addedCount){const dt=rt.removed.slice(st.index+st.addedCount-rt.index);$push.apply(ct,dt)}rt.removed=ct,st.indextt?et=tt-j.addedCount:et<0&&(et=tt+j.removed.length+et-j.addedCount),et<0&&(et=0),j.index=et,j}class ArrayObserver extends SubscriberSet{constructor(_e){super(_e),this.oldCollection=void 0,this.splices=void 0,this.needsQueue=!0,this.call=this.flush,Reflect.defineProperty(_e,"$fastController",{value:this,enumerable:!1})}subscribe(_e){this.flush(),super.subscribe(_e)}addSplice(_e){this.splices===void 0?this.splices=[_e]:this.splices.push(_e),this.needsQueue&&(this.needsQueue=!1,DOM.queueUpdate(this))}reset(_e){this.oldCollection=_e,this.needsQueue&&(this.needsQueue=!1,DOM.queueUpdate(this))}flush(){const _e=this.splices,et=this.oldCollection;if(_e===void 0&&et===void 0)return;this.needsQueue=!0,this.splices=void 0,this.oldCollection=void 0;const tt=et===void 0?projectArraySplices(this.source,_e):calcSplices(this.source,0,this.source.length,et,0,et.length);this.notify(tt)}}function enableArrayObservation(){if(arrayObservationEnabled)return;arrayObservationEnabled=!0,Observable$1.setArrayObserverFactory(st=>new ArrayObserver(st));const j=Array.prototype;if(j.$fastPatch)return;Reflect.defineProperty(j,"$fastPatch",{value:1,enumerable:!1});const _e=j.pop,et=j.push,tt=j.reverse,rt=j.shift,nt=j.sort,ot=j.splice,it=j.unshift;j.pop=function(){const st=this.length>0,lt=_e.apply(this,arguments),ut=this.$fastController;return ut!==void 0&&st&&ut.addSplice(newSplice(this.length,[lt],0)),lt},j.push=function(){const st=et.apply(this,arguments),lt=this.$fastController;return lt!==void 0&<.addSplice(adjustIndex(newSplice(this.length-arguments.length,[],arguments.length),this)),st},j.reverse=function(){let st;const lt=this.$fastController;lt!==void 0&&(lt.flush(),st=this.slice());const ut=tt.apply(this,arguments);return lt!==void 0&<.reset(st),ut},j.shift=function(){const st=this.length>0,lt=rt.apply(this,arguments),ut=this.$fastController;return ut!==void 0&&st&&ut.addSplice(newSplice(0,[lt],0)),lt},j.sort=function(){let st;const lt=this.$fastController;lt!==void 0&&(lt.flush(),st=this.slice());const ut=nt.apply(this,arguments);return lt!==void 0&<.reset(st),ut},j.splice=function(){const st=ot.apply(this,arguments),lt=this.$fastController;return lt!==void 0&<.addSplice(adjustIndex(newSplice(+arguments[0],st,arguments.length>2?arguments.length-2:0),this)),st},j.unshift=function(){const st=it.apply(this,arguments),lt=this.$fastController;return lt!==void 0&<.addSplice(adjustIndex(newSplice(0,[],arguments.length),this)),st}}class RefBehavior{constructor(_e,et){this.target=_e,this.propertyName=et}bind(_e){_e[this.propertyName]=this.target}unbind(){}}function ref(j){return new AttachedBehaviorHTMLDirective("fast-ref",RefBehavior,j)}const isFunction$1=j=>typeof j=="function",noTemplate=()=>null;function normalizeBinding(j){return j===void 0?noTemplate:isFunction$1(j)?j:()=>j}function when(j,_e,et){const tt=isFunction$1(j)?j:()=>j,rt=normalizeBinding(_e),nt=normalizeBinding(et);return(ot,it)=>tt(ot,it)?rt(ot,it):nt(ot,it)}function bindWithoutPositioning(j,_e,et,tt){j.bind(_e[et],tt)}function bindWithPositioning(j,_e,et,tt){const rt=Object.create(tt);rt.index=et,rt.length=_e.length,j.bind(_e[et],rt)}class RepeatBehavior{constructor(_e,et,tt,rt,nt,ot){this.location=_e,this.itemsBinding=et,this.templateBinding=rt,this.options=ot,this.source=null,this.views=[],this.items=null,this.itemsObserver=null,this.originalContext=void 0,this.childContext=void 0,this.bindView=bindWithoutPositioning,this.itemsBindingObserver=Observable$1.binding(et,this,tt),this.templateBindingObserver=Observable$1.binding(rt,this,nt),ot.positioning&&(this.bindView=bindWithPositioning)}bind(_e,et){this.source=_e,this.originalContext=et,this.childContext=Object.create(et),this.childContext.parent=_e,this.childContext.parentContext=this.originalContext,this.items=this.itemsBindingObserver.observe(_e,this.originalContext),this.template=this.templateBindingObserver.observe(_e,this.originalContext),this.observeItems(!0),this.refreshAllViews()}unbind(){this.source=null,this.items=null,this.itemsObserver!==null&&this.itemsObserver.unsubscribe(this),this.unbindAllViews(),this.itemsBindingObserver.disconnect(),this.templateBindingObserver.disconnect()}handleChange(_e,et){_e===this.itemsBinding?(this.items=this.itemsBindingObserver.observe(this.source,this.originalContext),this.observeItems(),this.refreshAllViews()):_e===this.templateBinding?(this.template=this.templateBindingObserver.observe(this.source,this.originalContext),this.refreshAllViews(!0)):this.updateViews(et)}observeItems(_e=!1){if(!this.items){this.items=emptyArray;return}const et=this.itemsObserver,tt=this.itemsObserver=Observable$1.getNotifier(this.items),rt=et!==tt;rt&&et!==null&&et.unsubscribe(this),(rt||_e)&&tt.subscribe(this)}updateViews(_e){const et=this.childContext,tt=this.views,rt=this.bindView,nt=this.items,ot=this.template,it=this.options.recycle,st=[];let lt=0,ut=0;for(let ct=0,dt=_e.length;ct0?(gt<=xt&&_t.length>0?(St=_t[gt],gt++):(St=st[lt],lt++),ut--):St=ot.create(),tt.splice(vt,0,St),rt(St,nt,vt,et),St.insertBefore(Et)}_t[gt]&&st.push(..._t.slice(gt))}for(let ct=lt,dt=st.length;cttt.name===et),this.source=_e,this.updateTarget(this.computeNodes()),this.shouldUpdate&&this.observe()}unbind(){this.updateTarget(emptyArray),this.source=null,this.shouldUpdate&&this.disconnect()}handleEvent(){this.updateTarget(this.computeNodes())}computeNodes(){let _e=this.getNodes();return this.options.filter!==void 0&&(_e=_e.filter(this.options.filter)),_e}updateTarget(_e){this.source[this.options.property]=_e}}class SlottedBehavior extends NodeObservationBehavior{constructor(_e,et){super(_e,et)}observe(){this.target.addEventListener("slotchange",this)}disconnect(){this.target.removeEventListener("slotchange",this)}getNodes(){return this.target.assignedNodes(this.options)}}function slotted(j){return typeof j=="string"&&(j={property:j}),new AttachedBehaviorHTMLDirective("fast-slotted",SlottedBehavior,j)}class ChildrenBehavior extends NodeObservationBehavior{constructor(_e,et){super(_e,et),this.observer=null,et.childList=!0}observe(){this.observer===null&&(this.observer=new MutationObserver(this.handleEvent.bind(this))),this.observer.observe(this.target,this.options)}disconnect(){this.observer.disconnect()}getNodes(){return"subtree"in this.options?Array.from(this.target.querySelectorAll(this.options.selector)):Array.from(this.target.childNodes)}}function children(j){return typeof j=="string"&&(j={property:j}),new AttachedBehaviorHTMLDirective("fast-children",ChildrenBehavior,j)}class StartEnd{handleStartContentChange(){this.startContainer.classList.toggle("start",this.start.assignedNodes().length>0)}handleEndContentChange(){this.endContainer.classList.toggle("end",this.end.assignedNodes().length>0)}}const endSlotTemplate=(j,_e)=>html$4` +***************************************************************************** */var __assign$2=function(){return __assign$2=Object.assign||function(_e){for(var et,tt=1,rt=arguments.length;tt"u"?InjectionMode.none:InjectionMode.insertNode,defaultPrefix:"css",namespace:void 0,cspSettings:void 0},_e),this._classNameToArgs=(tt=et==null?void 0:et.classNameToArgs)!==null&&tt!==void 0?tt:this._classNameToArgs,this._counter=(rt=et==null?void 0:et.counter)!==null&&rt!==void 0?rt:this._counter,this._keyToClassName=(ot=(nt=this._config.classNameCache)!==null&&nt!==void 0?nt:et==null?void 0:et.keyToClassName)!==null&&ot!==void 0?ot:this._keyToClassName,this._preservedRules=(it=et==null?void 0:et.preservedRules)!==null&&it!==void 0?it:this._preservedRules,this._rules=(st=et==null?void 0:et.rules)!==null&&st!==void 0?st:this._rules}return j.getInstance=function(){if(_stylesheet=_global[STYLESHEET_SETTING],!_stylesheet||_stylesheet._lastStyleElement&&_stylesheet._lastStyleElement.ownerDocument!==document){var _e=(_global==null?void 0:_global.FabricConfig)||{},et=new j(_e.mergeStyles,_e.serializedStylesheet);_stylesheet=et,_global[STYLESHEET_SETTING]=et}return _stylesheet},j.prototype.serialize=function(){return JSON.stringify({classNameToArgs:this._classNameToArgs,counter:this._counter,keyToClassName:this._keyToClassName,preservedRules:this._preservedRules,rules:this._rules})},j.prototype.setConfig=function(_e){this._config=__assign$2(__assign$2({},this._config),_e)},j.prototype.onReset=function(_e){var et=this;return this._onResetCallbacks.push(_e),function(){et._onResetCallbacks=et._onResetCallbacks.filter(function(tt){return tt!==_e})}},j.prototype.onInsertRule=function(_e){var et=this;return this._onInsertRuleCallbacks.push(_e),function(){et._onInsertRuleCallbacks=et._onInsertRuleCallbacks.filter(function(tt){return tt!==_e})}},j.prototype.getClassName=function(_e){var et=this._config.namespace,tt=_e||this._config.defaultPrefix;return(et?et+"-":"")+tt+"-"+this._counter++},j.prototype.cacheClassName=function(_e,et,tt,rt){this._keyToClassName[et]=_e,this._classNameToArgs[_e]={args:tt,rules:rt}},j.prototype.classNameFromKey=function(_e){return this._keyToClassName[_e]},j.prototype.getClassNameCache=function(){return this._keyToClassName},j.prototype.argsFromClassName=function(_e){var et=this._classNameToArgs[_e];return et&&et.args},j.prototype.insertedRulesFromClassName=function(_e){var et=this._classNameToArgs[_e];return et&&et.rules},j.prototype.insertRule=function(_e,et){var tt=this._config.injectionMode,rt=tt!==InjectionMode.none?this._getStyleElement():void 0;if(et&&this._preservedRules.push(_e),rt)switch(tt){case InjectionMode.insertNode:var nt=rt.sheet;try{nt.insertRule(_e,nt.cssRules.length)}catch{}break;case InjectionMode.appendChild:rt.appendChild(document.createTextNode(_e));break}else this._rules.push(_e);this._config.onInsertRule&&this._config.onInsertRule(_e),this._onInsertRuleCallbacks.forEach(function(ot){return ot()})},j.prototype.getRules=function(_e){return(_e?this._preservedRules.join(""):"")+this._rules.join("")},j.prototype.reset=function(){this._rules=[],this._counter=0,this._classNameToArgs={},this._keyToClassName={},this._onResetCallbacks.forEach(function(_e){return _e()})},j.prototype.resetKeys=function(){this._keyToClassName={}},j.prototype._getStyleElement=function(){var _e=this;return!this._styleElement&&typeof document<"u"&&(this._styleElement=this._createStyleElement(),REUSE_STYLE_NODE||window.requestAnimationFrame(function(){_e._styleElement=void 0})),this._styleElement},j.prototype._createStyleElement=function(){var _e=document.head,et=document.createElement("style"),tt=null;et.setAttribute("data-merge-styles","true");var rt=this._config.cspSettings;if(rt&&rt.nonce&&et.setAttribute("nonce",rt.nonce),this._lastStyleElement)tt=this._lastStyleElement.nextElementSibling;else{var nt=this._findPlaceholderStyleTag();nt?tt=nt.nextElementSibling:tt=_e.childNodes[0]}return _e.insertBefore(et,_e.contains(tt)?tt:null),this._lastStyleElement=et,et},j.prototype._findPlaceholderStyleTag=function(){var _e=document.head;return _e?_e.querySelector("style[data-merge-styles]"):null},j}();function extractStyleParts(){for(var j=[],_e=0;_e=0)nt(lt.split(" "));else{var ut=rt.argsFromClassName(lt);ut?nt(ut):et.indexOf(lt)===-1&&et.push(lt)}else Array.isArray(lt)?nt(lt):typeof lt=="object"&&tt.push(lt)}}return nt(j),{classes:et,objects:tt}}function getRTL(){return _rtl===void 0&&(_rtl=typeof document<"u"&&!!document.documentElement&&document.documentElement.getAttribute("dir")==="rtl"),_rtl}var _rtl;_rtl=getRTL();function getStyleOptions(){return{rtl:getRTL()}}var rules={};function kebabRules(j,_e){var et=j[_e];et.charAt(0)!=="-"&&(j[_e]=rules[et]=rules[et]||et.replace(/([A-Z])/g,"-$1").toLowerCase())}var _vendorSettings;function getVendorSettings(){var j;if(!_vendorSettings){var _e=typeof document<"u"?document:void 0,et=typeof navigator<"u"?navigator:void 0,tt=(j=et==null?void 0:et.userAgent)===null||j===void 0?void 0:j.toLowerCase();_e?_vendorSettings={isWebkit:!!(_e&&"WebkitAppearance"in _e.documentElement.style),isMoz:!!(tt&&tt.indexOf("firefox")>-1),isOpera:!!(tt&&tt.indexOf("opera")>-1),isMs:!!(et&&(/rv:11.0/i.test(et.userAgent)||/Edge\/\d./i.test(navigator.userAgent)))}:_vendorSettings={isWebkit:!0,isMoz:!0,isOpera:!0,isMs:!0}}return _vendorSettings}var autoPrefixNames={"user-select":1};function prefixRules(j,_e){var et=getVendorSettings(),tt=j[_e];if(autoPrefixNames[tt]){var rt=j[_e+1];autoPrefixNames[tt]&&(et.isWebkit&&j.push("-webkit-"+tt,rt),et.isMoz&&j.push("-moz-"+tt,rt),et.isMs&&j.push("-ms-"+tt,rt),et.isOpera&&j.push("-o-"+tt,rt))}}var NON_PIXEL_NUMBER_PROPS=["column-count","font-weight","flex","flex-grow","flex-shrink","fill-opacity","opacity","order","z-index","zoom"];function provideUnits(j,_e){var et=j[_e],tt=j[_e+1];if(typeof tt=="number"){var rt=NON_PIXEL_NUMBER_PROPS.indexOf(et)>-1,nt=et.indexOf("--")>-1,ot=rt||nt?"":"px";j[_e+1]=""+tt+ot}}var _a$2,LEFT="left",RIGHT="right",NO_FLIP="@noflip",NAME_REPLACEMENTS=(_a$2={},_a$2[LEFT]=RIGHT,_a$2[RIGHT]=LEFT,_a$2),VALUE_REPLACEMENTS={"w-resize":"e-resize","sw-resize":"se-resize","nw-resize":"ne-resize"};function rtlifyRules(j,_e,et){if(j.rtl){var tt=_e[et];if(!tt)return;var rt=_e[et+1];if(typeof rt=="string"&&rt.indexOf(NO_FLIP)>=0)_e[et+1]=rt.replace(/\s*(?:\/\*\s*)?\@noflip\b(?:\s*\*\/)?\s*?/g,"");else if(tt.indexOf(LEFT)>=0)_e[et]=tt.replace(LEFT,RIGHT);else if(tt.indexOf(RIGHT)>=0)_e[et]=tt.replace(RIGHT,LEFT);else if(String(rt).indexOf(LEFT)>=0)_e[et+1]=rt.replace(LEFT,RIGHT);else if(String(rt).indexOf(RIGHT)>=0)_e[et+1]=rt.replace(RIGHT,LEFT);else if(NAME_REPLACEMENTS[tt])_e[et]=NAME_REPLACEMENTS[tt];else if(VALUE_REPLACEMENTS[rt])_e[et+1]=VALUE_REPLACEMENTS[rt];else switch(tt){case"margin":case"padding":_e[et+1]=flipQuad(rt);break;case"box-shadow":_e[et+1]=negateNum(rt,0);break}}}function negateNum(j,_e){var et=j.split(" "),tt=parseInt(et[_e],10);return et[0]=et[0].replace(String(tt),String(tt*-1)),et.join(" ")}function flipQuad(j){if(typeof j=="string"){var _e=j.split(" ");if(_e.length===4)return _e[0]+" "+_e[3]+" "+_e[2]+" "+_e[1]}return j}function tokenizeWithParentheses(j){for(var _e=[],et=0,tt=0,rt=0;rtet&&_e.push(j.substring(et,rt)),et=rt+1);break}return et-1&&_e.push([tt.index,tt.index+tt[0].length,tt[1].split(",").map(function(rt){return":global("+rt.trim()+")"}).join(", ")]);return _e.reverse().reduce(function(rt,nt){var ot=nt[0],it=nt[1],st=nt[2],lt=rt.slice(0,ot),ut=rt.slice(it);return lt+st+ut},j)}function expandSelector(j,_e){return j.indexOf(":global(")>=0?j.replace(globalSelectorRegExp,"$1"):j.indexOf(":")===0?_e+j:j.indexOf("&")<0?_e+" "+j:j}function extractSelector(j,_e,et,tt){_e===void 0&&(_e={__order:[]}),et.indexOf("@")===0?(et=et+"{"+j,extractRules([tt],_e,et)):et.indexOf(",")>-1?expandCommaSeparatedGlobals(et).split(",").map(function(rt){return rt.trim()}).forEach(function(rt){return extractRules([tt],_e,expandSelector(rt,j))}):extractRules([tt],_e,expandSelector(et,j))}function extractRules(j,_e,et){_e===void 0&&(_e={__order:[]}),et===void 0&&(et="&");var tt=Stylesheet.getInstance(),rt=_e[et];rt||(rt={},_e[et]=rt,_e.__order.push(et));for(var nt=0,ot=j;nt"u")){var tt=document.head||document.getElementsByTagName("head")[0],rt=document.createElement("style");rt.type="text/css",et==="top"&&tt.firstChild?tt.insertBefore(rt,tt.firstChild):tt.appendChild(rt),rt.styleSheet?rt.styleSheet.cssText=j:rt.appendChild(document.createTextNode(j))}}var css_248z=".root_ce9fd48c{margin:0;padding:0}.item_34141342{list-style:none}.content_6abc12be{display:flex;align-items:center}.content_6abc12be:hover{cursor:pointer;background-color:#f3f2f1}.icon_aaa0d589{border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid #8a8886;margin:0 11px 0 3px}.expanded_6233c4e1{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #8a8886;margin:3px 8px 0 0}.leaf_f2922997{border:6px solid transparent;margin:0 8px 0 0}.group_7e2ac704,.inner_683a43d6{padding:0;margin:0}",classes$3={root:"root_ce9fd48c",item:"item_34141342",content:"content_6abc12be",icon:"icon_aaa0d589",expanded:"expanded_6233c4e1",leaf:"leaf_f2922997",group:"group_7e2ac704",inner:"inner_683a43d6"};styleInject(css_248z);var mergeTreeClasses=function(j){return{root:mergeStyles(classes$3.root,j==null?void 0:j.root)}},mergeTreeNodeClasses=function(j,_e){var et,tt,rt;return{item:mergeStyles(classes$3.item,_e==null?void 0:_e.item),icon:mergeStyles(classes$3.icon,j.expanded&&classes$3.expanded,j.isLeaf&&classes$3.leaf),group:mergeStyles(classes$3.group,_e==null?void 0:_e.group),inner:mergeStyles(classes$3.inner,_e==null?void 0:_e.inner),content:mergeStyles(classes$3.content,(et=_e==null?void 0:_e.content)===null||et===void 0?void 0:et.base,j.expanded&&((tt=_e==null?void 0:_e.content)===null||tt===void 0?void 0:tt.expand),j.isLeaf&&((rt=_e==null?void 0:_e.content)===null||rt===void 0?void 0:rt.leaf))}},TreeNode$1=reactExports.forwardRef(function(j,_e){var et,tt,rt,nt,ot,it,st,lt,ut=j.node,ct=j.classes,dt=j.indent,ft=j.calcIndent,pt=j.onNodeClick,gt=j.renderIcon,mt=j.renderContent,bt=j.renderInnerContent,_t=!ut.isLeaf&&ut.expanded,xt=mergeTreeNodeClasses(ut,ct),yt=ft?ft(ut):{item:(ut.level-1)*((et=dt==null?void 0:dt.item)!==null&&et!==void 0?et:20)+((tt=dt==null?void 0:dt.root)!==null&&tt!==void 0?tt:0),innerItem:ut.level*((rt=dt==null?void 0:dt.item)!==null&&rt!==void 0?rt:20)+((nt=dt==null?void 0:dt.root)!==null&&nt!==void 0?nt:0)},Et=reactExports.useCallback(function(St){St.preventDefault(),St.stopPropagation()},[]);return reactExports.createElement("div",{key:ut.id,role:"treeitem","aria-selected":ut.selected,"aria-expanded":ut.expanded,tabIndex:-1,className:xt.item,onClick:pt.bind(null,ut),"data-item-id":ut.id,ref:_e},reactExports.createElement("div",{className:xt.content,style:{paddingLeft:(ot=yt.item)!==null&&ot!==void 0?ot:20}},(it=gt==null?void 0:gt(ut))!==null&&it!==void 0?it:reactExports.createElement("span",{className:xt.icon}),(st=mt==null?void 0:mt(ut))!==null&&st!==void 0?st:reactExports.createElement("span",{role:"button"},ut.title)),_t&&reactExports.createElement(reactExports.Fragment,null,bt&&reactExports.createElement("div",{role:"group",key:"innerContent",className:xt.inner,style:{paddingLeft:(lt=yt.innerItem)!==null&<!==void 0?lt:40},onClick:Et},bt(ut))))});TreeNode$1.displayName="TreeNode";var ReactAccessibleTree=reactExports.forwardRef(function(j,_e){var et=j.selectedKeys,tt=et===void 0?[]:et,rt=j.expandedKeys,nt=rt===void 0?[]:rt,ot=j.treeData,it=j.classes,st=j.indent,lt=j.height,ut=j.itemHeight,ct=j.virtual,dt=j.calcIndent,ft=j.onKeyDown,pt=j.renderIcon,gt=j.renderContent,mt=j.renderInnerContent,bt=j.onSelect,_t=j.multiple,xt=j.onExpand,yt=j.loadData,Et=reactExports.useState({loadedKeys:[],loadingKeys:[]}),St=Et[0],Tt=Et[1],kt=reactExports.useRef(null),$t=reactExports.useRef(null),Ct=reactExports.useMemo(function(){return Node$1.init(ot,tt,nt,St)},[ot,tt,nt,St]);reactExports.useImperativeHandle(_e,function(){return{scrollTo:function(qt){var Yt;(Yt=$t.current)===null||Yt===void 0||Yt.scrollTo(qt)}}}),reactExports.useEffect(function(){jt(0)},[]);var It=function(qt,Yt){var Xt=tt,tr=Yt.id,cr=!Yt.selected;cr?_t?Xt=arrAdd(Xt,tr):Xt=[tr]:Xt=arrDel(Xt,tr),bt==null||bt(Xt,{node:Yt,selected:cr,nativeEvent:qt})},Nt=function(qt,Yt){var Xt=nt,tr=Yt.id,cr=!Yt.expanded;cr?Xt=arrAdd(Xt,tr):Xt=arrDel(Xt,tr),xt==null||xt(Xt,{node:Yt,expanded:cr,nativeEvent:qt}),cr&&yt&&Ot(Yt)},Ot=function(qt){Tt(function(Yt){var Xt=Yt.loadedKeys,tr=Yt.loadingKeys,cr=qt.id;if(!yt||Xt.includes(cr)||tr.includes(cr))return St;var mr=yt(qt);return mr.then(function(){var Er=St.loadedKeys,hr=St.loadingKeys,_r=arrAdd(Er,cr),Ut=arrDel(hr,cr);Tt({loadedKeys:_r,loadingKeys:Ut})}),{loadedKeys:Xt,loadingKeys:arrAdd(tr,cr)}})},jt=function(qt){var Yt,Xt,tr=Array.from((Xt=(Yt=kt.current)===null||Yt===void 0?void 0:Yt.querySelectorAll("div[role='treeitem']"))!==null&&Xt!==void 0?Xt:[]);tr.forEach(function(cr,mr){mr===qt?cr.setAttribute("tabindex","0"):cr.setAttribute("tabindex","-1")})},Mt=function(qt){var Yt,Xt,tr;qt.stopPropagation();var cr=qt.target;if(cr.getAttribute("role")!=="treeitem"||qt.ctrlKey||qt.metaKey)return-1;var mr=Array.from((Xt=(Yt=kt.current)===null||Yt===void 0?void 0:Yt.querySelectorAll("div[role='treeitem']"))!==null&&Xt!==void 0?Xt:[]),Er=mr.indexOf(cr),hr=qt.keyCode>=65&&qt.keyCode<=90;if(hr){var _r=-1,Ut=mr.findIndex(function(rr,vr){var $r=rr.getAttribute("data-item-id"),Rr=Node$1.nodesMap.get($r??""),Cr=Rr==null?void 0:Rr.searchKeys.some(function(Nr){return Nr.match(new RegExp("^"+qt.key,"i"))});return Cr&&vr>Er?!0:(Cr&&vr<=Er&&(_r=_r===-1?vr:_r),!1)}),ar=Ut===-1?_r:Ut;return(tr=mr[ar])===null||tr===void 0||tr.focus(),ar}switch(qt.key){case"ArrowDown":{var pr=(Er+1)%mr.length;return mr[pr].focus(),pr}case"ArrowUp":{var pr=(Er-1+mr.length)%mr.length;return mr[pr].focus(),pr}case"ArrowLeft":case"ArrowRight":return cr.click(),Er;case"Home":return mr[0].focus(),0;case"End":return mr[mr.length-1].focus(),mr.length-1;default:return ft==null||ft(qt),Er}},Rt=function(qt){var Yt=Mt(qt);Yt>-1&&jt(Yt)},Lt=function(qt,Yt){Yt.stopPropagation(),It(Yt,qt),!(qt.loading||qt.loaded&&qt.isLeaf)&&Nt(Yt,qt)},Pt=mergeTreeClasses(it),Gt=function(qt){return qt.id};return reactExports.createElement("div",{role:"tree",className:Pt.root,onKeyDown:Rt,ref:kt},reactExports.createElement(List,{data:Ct,itemKey:Gt,height:lt,fullHeight:!1,virtual:ct,itemHeight:ut,ref:$t},function(qt){return reactExports.createElement(TreeNode$1,{key:qt.id,node:qt,classes:it,indent:st,calcIndent:dt,renderIcon:pt,renderContent:gt,renderInnerContent:mt,onNodeClick:Lt})}))});ReactAccessibleTree.displayName="ReactAccessibleTree";var __extends$1=function(){var j=function(_e,et){return j=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(tt,rt){tt.__proto__=rt}||function(tt,rt){for(var nt in rt)Object.prototype.hasOwnProperty.call(rt,nt)&&(tt[nt]=rt[nt])},j(_e,et)};return function(_e,et){j(_e,et);function tt(){this.constructor=_e}_e.prototype=et===null?Object.create(et):(tt.prototype=et.prototype,new tt)}}(),__assign$1=function(){return __assign$1=Object.assign||function(j){for(var _e,et=1,tt=arguments.length;et"u"?void 0:Number(tt),maxHeight:typeof rt>"u"?void 0:Number(rt),minWidth:typeof nt>"u"?void 0:Number(nt),minHeight:typeof ot>"u"?void 0:Number(ot)}},definedProps=["as","style","className","grid","snap","bounds","boundsByDirection","size","defaultSize","minWidth","minHeight","maxWidth","maxHeight","lockAspectRatio","lockAspectRatioExtraWidth","lockAspectRatioExtraHeight","enable","handleStyles","handleClasses","handleWrapperStyle","handleWrapperClass","children","onResizeStart","onResize","onResizeStop","handleComponent","scale","resizeRatio","snapGap"],baseClassName="__resizable_base__",Resizable=function(j){__extends(_e,j);function _e(et){var tt=j.call(this,et)||this;return tt.ratio=1,tt.resizable=null,tt.parentLeft=0,tt.parentTop=0,tt.resizableLeft=0,tt.resizableRight=0,tt.resizableTop=0,tt.resizableBottom=0,tt.targetLeft=0,tt.targetTop=0,tt.appendBase=function(){if(!tt.resizable||!tt.window)return null;var rt=tt.parentNode;if(!rt)return null;var nt=tt.window.document.createElement("div");return nt.style.width="100%",nt.style.height="100%",nt.style.position="absolute",nt.style.transform="scale(0, 0)",nt.style.left="0",nt.style.flex="0 0 100%",nt.classList?nt.classList.add(baseClassName):nt.className+=baseClassName,rt.appendChild(nt),nt},tt.removeBase=function(rt){var nt=tt.parentNode;nt&&nt.removeChild(rt)},tt.ref=function(rt){rt&&(tt.resizable=rt)},tt.state={isResizing:!1,width:typeof(tt.propsSize&&tt.propsSize.width)>"u"?"auto":tt.propsSize&&tt.propsSize.width,height:typeof(tt.propsSize&&tt.propsSize.height)>"u"?"auto":tt.propsSize&&tt.propsSize.height,direction:"right",original:{x:0,y:0,width:0,height:0},backgroundStyle:{height:"100%",width:"100%",backgroundColor:"rgba(0,0,0,0)",cursor:"auto",opacity:0,position:"fixed",zIndex:9999,top:"0",left:"0",bottom:"0",right:"0"},flexBasis:void 0},tt.onResizeStart=tt.onResizeStart.bind(tt),tt.onMouseMove=tt.onMouseMove.bind(tt),tt.onMouseUp=tt.onMouseUp.bind(tt),tt}return Object.defineProperty(_e.prototype,"parentNode",{get:function(){return this.resizable?this.resizable.parentNode:null},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"window",{get:function(){return!this.resizable||!this.resizable.ownerDocument?null:this.resizable.ownerDocument.defaultView},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"propsSize",{get:function(){return this.props.size||this.props.defaultSize||DEFAULT_SIZE},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"size",{get:function(){var et=0,tt=0;if(this.resizable&&this.window){var rt=this.resizable.offsetWidth,nt=this.resizable.offsetHeight,ot=this.resizable.style.position;ot!=="relative"&&(this.resizable.style.position="relative"),et=this.resizable.style.width!=="auto"?this.resizable.offsetWidth:rt,tt=this.resizable.style.height!=="auto"?this.resizable.offsetHeight:nt,this.resizable.style.position=ot}return{width:et,height:tt}},enumerable:!1,configurable:!0}),Object.defineProperty(_e.prototype,"sizeStyle",{get:function(){var et=this,tt=this.props.size,rt=function(it){if(typeof et.state[it]>"u"||et.state[it]==="auto")return"auto";if(et.propsSize&&et.propsSize[it]&&et.propsSize[it].toString().endsWith("%")){if(et.state[it].toString().endsWith("%"))return et.state[it].toString();var st=et.getParentSize(),lt=Number(et.state[it].toString().replace("px","")),ut=lt/st[it]*100;return ut+"%"}return getStringSize$1(et.state[it])},nt=tt&&typeof tt.width<"u"&&!this.state.isResizing?getStringSize$1(tt.width):rt("width"),ot=tt&&typeof tt.height<"u"&&!this.state.isResizing?getStringSize$1(tt.height):rt("height");return{width:nt,height:ot}},enumerable:!1,configurable:!0}),_e.prototype.getParentSize=function(){if(!this.parentNode)return this.window?{width:this.window.innerWidth,height:this.window.innerHeight}:{width:0,height:0};var et=this.appendBase();if(!et)return{width:0,height:0};var tt=!1,rt=this.parentNode.style.flexWrap;rt!=="wrap"&&(tt=!0,this.parentNode.style.flexWrap="wrap"),et.style.position="relative",et.style.minWidth="100%",et.style.minHeight="100%";var nt={width:et.offsetWidth,height:et.offsetHeight};return tt&&(this.parentNode.style.flexWrap=rt),this.removeBase(et),nt},_e.prototype.bindEvents=function(){this.window&&(this.window.addEventListener("mouseup",this.onMouseUp),this.window.addEventListener("mousemove",this.onMouseMove),this.window.addEventListener("mouseleave",this.onMouseUp),this.window.addEventListener("touchmove",this.onMouseMove,{capture:!0,passive:!1}),this.window.addEventListener("touchend",this.onMouseUp))},_e.prototype.unbindEvents=function(){this.window&&(this.window.removeEventListener("mouseup",this.onMouseUp),this.window.removeEventListener("mousemove",this.onMouseMove),this.window.removeEventListener("mouseleave",this.onMouseUp),this.window.removeEventListener("touchmove",this.onMouseMove,!0),this.window.removeEventListener("touchend",this.onMouseUp))},_e.prototype.componentDidMount=function(){if(!(!this.resizable||!this.window)){var et=this.window.getComputedStyle(this.resizable);this.setState({width:this.state.width||this.size.width,height:this.state.height||this.size.height,flexBasis:et.flexBasis!=="auto"?et.flexBasis:void 0})}},_e.prototype.componentWillUnmount=function(){this.window&&this.unbindEvents()},_e.prototype.createSizeForCssProperty=function(et,tt){var rt=this.propsSize&&this.propsSize[tt];return this.state[tt]==="auto"&&this.state.original[tt]===et&&(typeof rt>"u"||rt==="auto")?"auto":et},_e.prototype.calculateNewMaxFromBoundary=function(et,tt){var rt=this.props.boundsByDirection,nt=this.state.direction,ot=rt&&hasDirection("left",nt),it=rt&&hasDirection("top",nt),st,lt;if(this.props.bounds==="parent"){var ut=this.parentNode;ut&&(st=ot?this.resizableRight-this.parentLeft:ut.offsetWidth+(this.parentLeft-this.resizableLeft),lt=it?this.resizableBottom-this.parentTop:ut.offsetHeight+(this.parentTop-this.resizableTop))}else this.props.bounds==="window"?this.window&&(st=ot?this.resizableRight:this.window.innerWidth-this.resizableLeft,lt=it?this.resizableBottom:this.window.innerHeight-this.resizableTop):this.props.bounds&&(st=ot?this.resizableRight-this.targetLeft:this.props.bounds.offsetWidth+(this.targetLeft-this.resizableLeft),lt=it?this.resizableBottom-this.targetTop:this.props.bounds.offsetHeight+(this.targetTop-this.resizableTop));return st&&Number.isFinite(st)&&(et=et&&et"u"?10:nt.width,ct=typeof rt.width>"u"||rt.width<0?et:rt.width,dt=typeof nt.height>"u"?10:nt.height,ft=typeof rt.height>"u"||rt.height<0?tt:rt.height,pt=st||0,gt=lt||0;if(it){var mt=(dt-pt)*this.ratio+gt,bt=(ft-pt)*this.ratio+gt,_t=(ut-gt)/this.ratio+pt,xt=(ct-gt)/this.ratio+pt,yt=Math.max(ut,mt),Et=Math.min(ct,bt),St=Math.max(dt,_t),Tt=Math.min(ft,xt);et=clamp(et,yt,Et),tt=clamp(tt,St,Tt)}else et=clamp(et,ut,ct),tt=clamp(tt,dt,ft);return{newWidth:et,newHeight:tt}},_e.prototype.setBoundingClientRect=function(){if(this.props.bounds==="parent"){var et=this.parentNode;if(et){var tt=et.getBoundingClientRect();this.parentLeft=tt.left,this.parentTop=tt.top}}if(this.props.bounds&&typeof this.props.bounds!="string"){var rt=this.props.bounds.getBoundingClientRect();this.targetLeft=rt.left,this.targetTop=rt.top}if(this.resizable){var nt=this.resizable.getBoundingClientRect(),ot=nt.left,it=nt.top,st=nt.right,lt=nt.bottom;this.resizableLeft=ot,this.resizableRight=st,this.resizableTop=it,this.resizableBottom=lt}},_e.prototype.onResizeStart=function(et,tt){if(!(!this.resizable||!this.window)){var rt=0,nt=0;if(et.nativeEvent&&isMouseEvent(et.nativeEvent)?(rt=et.nativeEvent.clientX,nt=et.nativeEvent.clientY):et.nativeEvent&&isTouchEvent(et.nativeEvent)&&(rt=et.nativeEvent.touches[0].clientX,nt=et.nativeEvent.touches[0].clientY),this.props.onResizeStart&&this.resizable){var ot=this.props.onResizeStart(et,tt,this.resizable);if(ot===!1)return}this.props.size&&(typeof this.props.size.height<"u"&&this.props.size.height!==this.state.height&&this.setState({height:this.props.size.height}),typeof this.props.size.width<"u"&&this.props.size.width!==this.state.width&&this.setState({width:this.props.size.width})),this.ratio=typeof this.props.lockAspectRatio=="number"?this.props.lockAspectRatio:this.size.width/this.size.height;var it,st=this.window.getComputedStyle(this.resizable);if(st.flexBasis!=="auto"){var lt=this.parentNode;if(lt){var ut=this.window.getComputedStyle(lt).flexDirection;this.flexDir=ut.startsWith("row")?"row":"column",it=st.flexBasis}}this.setBoundingClientRect(),this.bindEvents();var ct={original:{x:rt,y:nt,width:this.size.width,height:this.size.height},isResizing:!0,backgroundStyle:__assign(__assign({},this.state.backgroundStyle),{cursor:this.window.getComputedStyle(et.target).cursor||"auto"}),direction:tt,flexBasis:it};this.setState(ct)}},_e.prototype.onMouseMove=function(et){var tt=this;if(!(!this.state.isResizing||!this.resizable||!this.window)){if(this.window.TouchEvent&&isTouchEvent(et))try{et.preventDefault(),et.stopPropagation()}catch{}var rt=this.props,nt=rt.maxWidth,ot=rt.maxHeight,it=rt.minWidth,st=rt.minHeight,lt=isTouchEvent(et)?et.touches[0].clientX:et.clientX,ut=isTouchEvent(et)?et.touches[0].clientY:et.clientY,ct=this.state,dt=ct.direction,ft=ct.original,pt=ct.width,gt=ct.height,mt=this.getParentSize(),bt=calculateNewMax(mt,this.window.innerWidth,this.window.innerHeight,nt,ot,it,st);nt=bt.maxWidth,ot=bt.maxHeight,it=bt.minWidth,st=bt.minHeight;var _t=this.calculateNewSizeFromDirection(lt,ut),xt=_t.newHeight,yt=_t.newWidth,Et=this.calculateNewMaxFromBoundary(nt,ot);this.props.snap&&this.props.snap.x&&(yt=findClosestSnap(yt,this.props.snap.x,this.props.snapGap)),this.props.snap&&this.props.snap.y&&(xt=findClosestSnap(xt,this.props.snap.y,this.props.snapGap));var St=this.calculateNewSizeFromAspectRatio(yt,xt,{width:Et.maxWidth,height:Et.maxHeight},{width:it,height:st});if(yt=St.newWidth,xt=St.newHeight,this.props.grid){var Tt=snap(yt,this.props.grid[0]),kt=snap(xt,this.props.grid[1]),$t=this.props.snapGap||0;yt=$t===0||Math.abs(Tt-yt)<=$t?Tt:yt,xt=$t===0||Math.abs(kt-xt)<=$t?kt:xt}var Ct={width:yt-ft.width,height:xt-ft.height};if(pt&&typeof pt=="string"){if(pt.endsWith("%")){var It=yt/mt.width*100;yt=It+"%"}else if(pt.endsWith("vw")){var Nt=yt/this.window.innerWidth*100;yt=Nt+"vw"}else if(pt.endsWith("vh")){var Ot=yt/this.window.innerHeight*100;yt=Ot+"vh"}}if(gt&&typeof gt=="string"){if(gt.endsWith("%")){var It=xt/mt.height*100;xt=It+"%"}else if(gt.endsWith("vw")){var Nt=xt/this.window.innerWidth*100;xt=Nt+"vw"}else if(gt.endsWith("vh")){var Ot=xt/this.window.innerHeight*100;xt=Ot+"vh"}}var jt={width:this.createSizeForCssProperty(yt,"width"),height:this.createSizeForCssProperty(xt,"height")};this.flexDir==="row"?jt.flexBasis=jt.width:this.flexDir==="column"&&(jt.flexBasis=jt.height),reactDomExports.flushSync(function(){tt.setState(jt)}),this.props.onResize&&this.props.onResize(et,dt,this.resizable,Ct)}},_e.prototype.onMouseUp=function(et){var tt=this.state,rt=tt.isResizing,nt=tt.direction,ot=tt.original;if(!(!rt||!this.resizable)){var it={width:this.size.width-ot.width,height:this.size.height-ot.height};this.props.onResizeStop&&this.props.onResizeStop(et,nt,this.resizable,it),this.props.size&&this.setState(this.props.size),this.unbindEvents(),this.setState({isResizing:!1,backgroundStyle:__assign(__assign({},this.state.backgroundStyle),{cursor:"auto"})})}},_e.prototype.updateSize=function(et){this.setState({width:et.width,height:et.height})},_e.prototype.renderResizer=function(){var et=this,tt=this.props,rt=tt.enable,nt=tt.handleStyles,ot=tt.handleClasses,it=tt.handleWrapperStyle,st=tt.handleWrapperClass,lt=tt.handleComponent;if(!rt)return null;var ut=Object.keys(rt).map(function(ct){return rt[ct]!==!1?reactExports.createElement(Resizer,{key:ct,direction:ct,onResizeStart:et.onResizeStart,replaceStyles:nt&&nt[ct],className:ot&&ot[ct]},lt&<[ct]?lt[ct]:null):null});return reactExports.createElement("div",{className:st,style:it},ut)},_e.prototype.render=function(){var et=this,tt=Object.keys(this.props).reduce(function(ot,it){return definedProps.indexOf(it)!==-1||(ot[it]=et.props[it]),ot},{}),rt=__assign(__assign(__assign({position:"relative",userSelect:this.state.isResizing?"none":"auto"},this.props.style),this.sizeStyle),{maxWidth:this.props.maxWidth,maxHeight:this.props.maxHeight,minWidth:this.props.minWidth,minHeight:this.props.minHeight,boxSizing:"border-box",flexShrink:0});this.state.flexBasis&&(rt.flexBasis=this.state.flexBasis);var nt=this.props.as||"div";return reactExports.createElement(nt,__assign({ref:this.ref,style:rt,className:this.props.className},tt),this.state.isResizing&&reactExports.createElement("div",{style:this.state.backgroundStyle}),this.props.children,this.renderResizer())},_e.defaultProps={as:"div",onResizeStart:function(){},onResize:function(){},onResizeStop:function(){},enable:{top:!0,right:!0,bottom:!0,left:!0,topRight:!0,bottomRight:!0,bottomLeft:!0,topLeft:!0},style:{},grid:[1,1],lockAspectRatio:!1,lockAspectRatioExtraWidth:0,lockAspectRatioExtraHeight:0,scale:1,resizeRatio:1,snapGap:0},_e}(reactExports.PureComponent),_a$1;const tasksToTaskRows=(j,_e)=>j.map(et=>({...et,level:_e,children:et.children?tasksToTaskRows(et.children,_e+1):void 0})),Yp=class Yp{constructor(){this.rows$=new State$1(List$1([])),this.selectedRowId$=new State$1(void 0),this.startTime=Number.MAX_SAFE_INTEGER,this.endTime=0}toggleRow(_e){const et=this.rows$.getSnapshot(),tt=et.findIndex(it=>it.id===_e),rt=et.get(tt);if(!rt)return;const{children:nt}=rt;if(!nt)return;const ot=[...et];ot[tt]={...rt,isExpanded:!rt.isExpanded},rt.isExpanded?ot.splice(tt+1,nt.length):ot.splice(tt+1,0,...nt),this.rows$.next(List$1(ot))}setRows(_e){this.rows$.next(List$1(_e))}setTasks(_e){this.startTime=Number.MAX_SAFE_INTEGER,this.endTime=0,this.rows$.next(List$1(tasksToTaskRows(_e,0)));const et=tt=>{tt.forEach(rt=>{rt.startTimethis.endTime&&(this.endTime=rt.endTime),rt.children&&et(rt.children)})};et(_e)}};_a$1=SINGLETON,Yp[_a$1]=!0;let GanttViewModel=Yp;const GanttViewModelToken=createInjectionToken("GanttViewModel",new GanttViewModel);function r$6(j){var _e,et,tt="";if(typeof j=="string"||typeof j=="number")tt+=j;else if(typeof j=="object")if(Array.isArray(j))for(_e=0;_e1&&(!j.frozen||j.idx+tt-1<=_e))return tt}function stopPropagation(j){j.stopPropagation()}function scrollIntoView(j){j==null||j.scrollIntoView({inline:"nearest",block:"nearest"})}function createCellEvent(j){let _e=!1;const et={...j,preventGridDefault(){_e=!0},isGridDefaultPrevented(){return _e}};return Object.setPrototypeOf(et,Object.getPrototypeOf(j)),et}const nonInputKeys=new Set(["Unidentified","Alt","AltGraph","CapsLock","Control","Fn","FnLock","Meta","NumLock","ScrollLock","Shift","Tab","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Home","PageDown","PageUp","Insert","ContextMenu","Escape","Pause","Play","PrintScreen","F1","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]);function isCtrlKeyHeldDown(j){return(j.ctrlKey||j.metaKey)&&j.key!=="Control"}function isDefaultCellInput(j){return!nonInputKeys.has(j.key)}function onEditorNavigation({key:j,target:_e}){var et;return j==="Tab"&&(_e instanceof HTMLInputElement||_e instanceof HTMLTextAreaElement||_e instanceof HTMLSelectElement)?((et=_e.closest(".rdg-editor-container"))==null?void 0:et.querySelectorAll("input, textarea, select").length)===1:!1}const measuringCellClassname="m1l09lto7-0-0-beta-39";function renderMeasuringCells(j){return j.map(({key:_e,idx:et,minWidth:tt,maxWidth:rt})=>jsxRuntimeExports.jsx("div",{className:measuringCellClassname,style:{gridColumnStart:et+1,minWidth:tt,maxWidth:rt},"data-measuring-cell-key":_e},_e))}function isSelectedCellEditable({selectedPosition:j,columns:_e,rows:et}){const tt=_e[j.idx],rt=et[j.rowIdx];return isCellEditable(tt,rt)}function isCellEditable(j,_e){return j.renderEditCell!=null&&(typeof j.editable=="function"?j.editable(_e):j.editable)!==!1}function getSelectedCellColSpan({rows:j,topSummaryRows:_e,bottomSummaryRows:et,rowIdx:tt,mainHeaderRowIdx:rt,lastFrozenColumnIndex:nt,column:ot}){const it=(_e==null?void 0:_e.length)??0;if(tt===rt)return getColSpan(ot,nt,{type:"HEADER"});if(_e&&tt>rt&&tt<=it+rt)return getColSpan(ot,nt,{type:"SUMMARY",row:_e[tt+it]});if(tt>=0&&tt{for(const Tt of rt){const kt=Tt.idx;if(kt>mt)break;const $t=getSelectedCellColSpan({rows:nt,topSummaryRows:ot,bottomSummaryRows:it,rowIdx:bt,mainHeaderRowIdx:lt,lastFrozenColumnIndex:pt,column:Tt});if($t&&mt>kt&&mt<$t+kt){mt=kt+(St?$t:0);break}}},yt=St=>St.level+lt,Et=()=>{if(_e){let Tt=tt[mt].parent;for(;Tt!==void 0;){const kt=yt(Tt);if(bt===kt){mt=Tt.idx+Tt.colSpan;break}Tt=Tt.parent}}else if(j){let Tt=tt[mt].parent,kt=!1;for(;Tt!==void 0;){const $t=yt(Tt);if(bt>=$t){mt=Tt.idx,bt=$t,kt=!0;break}Tt=Tt.parent}kt||(mt=ct,bt=dt)}};if(gt(ft)&&(xt(_e),bt=kt&&(bt=$t,mt=Tt.idx),Tt=Tt.parent}}return{idx:mt,rowIdx:bt}}function canExitGrid({maxColIdx:j,minRowIdx:_e,maxRowIdx:et,selectedPosition:{rowIdx:tt,idx:rt},shiftKey:nt}){return nt?rt===0&&tt===_e:rt===j&&tt===et}const cell="c1wupbe7-0-0-beta-39",cellClassname=`rdg-cell ${cell}`,cellFrozen="cd0kgiy7-0-0-beta-39",cellFrozenClassname=`rdg-cell-frozen ${cellFrozen}`,cellFrozenLast="c1730fa47-0-0-beta-39",cellFrozenLastClassname=`rdg-cell-frozen-last ${cellFrozenLast}`;function getRowStyle(j,_e){return _e!==void 0?{"--rdg-grid-row-start":j,"--rdg-row-height":`${_e}px`}:{"--rdg-grid-row-start":j}}function getHeaderCellStyle(j,_e,et){const tt=_e+1,rt=`calc(${et-1} * var(--rdg-header-row-height))`;return j.parent===void 0?{insetBlockStart:0,gridRowStart:1,gridRowEnd:tt,paddingBlockStart:rt}:{insetBlockStart:`calc(${_e-et} * var(--rdg-header-row-height))`,gridRowStart:tt-et,gridRowEnd:tt,paddingBlockStart:rt}}function getCellStyle(j,_e=1){const et=j.idx+1;return{gridColumnStart:et,gridColumnEnd:et+_e,insetInlineStart:j.frozen?`var(--rdg-frozen-left-${j.idx})`:void 0}}function getCellClassname(j,..._e){return clsx(cellClassname,..._e,j.frozen&&cellFrozenClassname,j.isLastFrozenColumn&&cellFrozenLastClassname)}const{min:min$1,max:max$1,round:round$1,floor,sign:sign$1,abs:abs$1}=Math;function assertIsValidKeyGetter(j){if(typeof j!="function")throw new Error("Please specify the rowKeyGetter prop to use selection")}function clampColumnWidth(j,{minWidth:_e,maxWidth:et}){return j=max$1(j,_e),typeof et=="number"&&et>=_e?min$1(j,et):j}function getHeaderCellRowSpan(j,_e){return j.parent===void 0?_e:j.level-j.parent.level}const checkboxLabel="c1hs68w07-0-0-beta-39",checkboxLabelClassname=`rdg-checkbox-label ${checkboxLabel}`,checkboxInput="cojpd0n7-0-0-beta-39",checkboxInputClassname=`rdg-checkbox-input ${checkboxInput}`,checkbox="cwsfieb7-0-0-beta-39",checkboxClassname=`rdg-checkbox ${checkbox}`,checkboxLabelDisabled="c1fgadbl7-0-0-beta-39",checkboxLabelDisabledClassname=`rdg-checkbox-label-disabled ${checkboxLabelDisabled}`;function renderCheckbox({onChange:j,..._e}){function et(tt){j(tt.target.checked,tt.nativeEvent.shiftKey)}return jsxRuntimeExports.jsxs("label",{className:clsx(checkboxLabelClassname,_e.disabled&&checkboxLabelDisabledClassname),children:[jsxRuntimeExports.jsx("input",{type:"checkbox",..._e,className:checkboxInputClassname,onChange:et}),jsxRuntimeExports.jsx("div",{className:checkboxClassname})]})}function renderValue(j){try{return j.row[j.column.key]}catch{return null}}const DataGridDefaultRenderersContext=reactExports.createContext(void 0),DataGridDefaultRenderersProvider=DataGridDefaultRenderersContext.Provider;function useDefaultRenderers(){return reactExports.useContext(DataGridDefaultRenderersContext)}const RowSelectionContext=reactExports.createContext(void 0),RowSelectionProvider=RowSelectionContext.Provider,RowSelectionChangeContext=reactExports.createContext(void 0),RowSelectionChangeProvider=RowSelectionChangeContext.Provider,SELECT_COLUMN_KEY="select-row",DEFAULT_COLUMN_WIDTH="auto",DEFAULT_COLUMN_MIN_WIDTH=50;function useCalculatedColumns({rawColumns:j,defaultColumnOptions:_e,measuredColumnWidths:et,resizedColumnWidths:tt,viewportWidth:rt,scrollLeft:nt,enableVirtualization:ot}){const it=(_e==null?void 0:_e.width)??DEFAULT_COLUMN_WIDTH,st=(_e==null?void 0:_e.minWidth)??DEFAULT_COLUMN_MIN_WIDTH,lt=(_e==null?void 0:_e.maxWidth)??void 0,ut=(_e==null?void 0:_e.renderCell)??renderValue,ct=(_e==null?void 0:_e.sortable)??!1,dt=(_e==null?void 0:_e.resizable)??!1,ft=(_e==null?void 0:_e.draggable)??!1,{columns:pt,colSpanColumns:gt,lastFrozenColumnIndex:mt,headerRowsCount:bt}=reactExports.useMemo(()=>{let kt=-1,$t=1;const Ct=[];It(j,1);function It(Ot,jt,Mt){for(const Rt of Ot){if("children"in Rt){const Gt={name:Rt.name,parent:Mt,idx:-1,colSpan:0,level:0,headerCellClass:Rt.headerCellClass};It(Rt.children,jt+1,Gt);continue}const Lt=Rt.frozen??!1,Pt={...Rt,parent:Mt,idx:0,level:0,frozen:Lt,isLastFrozenColumn:!1,width:Rt.width??it,minWidth:Rt.minWidth??st,maxWidth:Rt.maxWidth??lt,sortable:Rt.sortable??ct,resizable:Rt.resizable??dt,draggable:Rt.draggable??ft,renderCell:Rt.renderCell??ut};Ct.push(Pt),Lt&&kt++,jt>$t&&($t=jt)}}Ct.sort(({key:Ot,frozen:jt},{key:Mt,frozen:Rt})=>Ot===SELECT_COLUMN_KEY?-1:Mt===SELECT_COLUMN_KEY?1:jt?Rt?0:-1:Rt?1:0);const Nt=[];return Ct.forEach((Ot,jt)=>{Ot.idx=jt,updateColumnParent(Ot,jt,0),Ot.colSpan!=null&&Nt.push(Ot)}),kt!==-1&&(Ct[kt].isLastFrozenColumn=!0),{columns:Ct,colSpanColumns:Nt,lastFrozenColumnIndex:kt,headerRowsCount:$t}},[j,it,st,lt,ut,dt,ct,ft]),{templateColumns:_t,layoutCssVars:xt,totalFrozenColumnWidth:yt,columnMetrics:Et}=reactExports.useMemo(()=>{const kt=new Map;let $t=0,Ct=0;const It=[];for(const Ot of pt){let jt=tt.get(Ot.key)??et.get(Ot.key)??Ot.width;typeof jt=="number"?jt=clampColumnWidth(jt,Ot):jt=Ot.minWidth,It.push(`${jt}px`),kt.set(Ot,{width:jt,left:$t}),$t+=jt}if(mt!==-1){const Ot=kt.get(pt[mt]);Ct=Ot.left+Ot.width}const Nt={};for(let Ot=0;Ot<=mt;Ot++){const jt=pt[Ot];Nt[`--rdg-frozen-left-${jt.idx}`]=`${kt.get(jt).left}px`}return{templateColumns:It,layoutCssVars:Nt,totalFrozenColumnWidth:Ct,columnMetrics:kt}},[et,tt,pt,mt]),[St,Tt]=reactExports.useMemo(()=>{if(!ot)return[0,pt.length-1];const kt=nt+yt,$t=nt+rt,Ct=pt.length-1,It=min$1(mt+1,Ct);if(kt>=$t)return[It,It];let Nt=It;for(;Ntkt)break;Nt++}let Ot=Nt;for(;Ot=$t)break;Ot++}const jt=max$1(It,Nt-1),Mt=min$1(Ct,Ot+1);return[jt,Mt]},[Et,pt,mt,nt,yt,rt,ot]);return{columns:pt,colSpanColumns:gt,colOverscanStartIdx:St,colOverscanEndIdx:Tt,templateColumns:_t,layoutCssVars:xt,headerRowsCount:bt,lastFrozenColumnIndex:mt,totalFrozenColumnWidth:yt}}function updateColumnParent(j,_e,et){if(et"u"?reactExports.useEffect:reactExports.useLayoutEffect;function useColumnWidths(j,_e,et,tt,rt,nt,ot,it,st,lt){const ut=reactExports.useRef(rt),ct=j.length===_e.length,dt=ct&&rt!==ut.current,ft=[...et],pt=[];for(const{key:_t,idx:xt,width:yt}of _e)typeof yt=="string"&&(dt||!ot.has(_t))&&!nt.has(_t)&&(ft[xt]=yt,pt.push(_t));const gt=ft.join(" ");useLayoutEffect(()=>{ut.current=rt,mt(pt)});function mt(_t){_t.length!==0&&st(xt=>{const yt=new Map(xt);let Et=!1;for(const St of _t){const Tt=measureColumnWidth(tt,St);Et||(Et=Tt!==xt.get(St)),Tt===void 0?yt.delete(St):yt.set(St,Tt)}return Et?yt:xt})}function bt(_t,xt){const{key:yt}=_t,Et=[...et],St=[];for(const{key:kt,idx:$t,width:Ct}of _e)if(yt===kt){const It=typeof xt=="number"?`${xt}px`:xt;Et[$t]=It}else ct&&typeof Ct=="string"&&!nt.has(kt)&&(Et[$t]=Ct,St.push(kt));tt.current.style.gridTemplateColumns=Et.join(" ");const Tt=typeof xt=="number"?xt:measureColumnWidth(tt,yt);reactDomExports.flushSync(()=>{it(kt=>{const $t=new Map(kt);return $t.set(yt,Tt),$t}),mt(St)}),lt==null||lt(_t.idx,Tt)}return{gridTemplateColumns:gt,handleColumnResize:bt}}function measureColumnWidth(j,_e){const et=`[data-measuring-cell-key="${CSS.escape(_e)}"]`,tt=j.current.querySelector(et);return tt==null?void 0:tt.getBoundingClientRect().width}function useGridDimensions(){const j=reactExports.useRef(null),[_e,et]=reactExports.useState(1),[tt,rt]=reactExports.useState(1);return useLayoutEffect(()=>{const{ResizeObserver:nt}=window;if(nt==null)return;const{clientWidth:ot,clientHeight:it,offsetWidth:st,offsetHeight:lt}=j.current,{width:ut,height:ct}=j.current.getBoundingClientRect(),dt=ut-st+ot,ft=ct-lt+it;et(dt),rt(ft);const pt=new nt(gt=>{const mt=gt[0].contentBoxSize[0];reactDomExports.flushSync(()=>{et(mt.inlineSize),rt(mt.blockSize)})});return pt.observe(j.current),()=>{pt.disconnect()}},[]),[j,_e,tt]}function useLatestFunc(j){const _e=reactExports.useRef(j);reactExports.useEffect(()=>{_e.current=j});const et=reactExports.useCallback((...tt)=>{_e.current(...tt)},[]);return j&&et}function useRovingTabIndex(j){const[_e,et]=reactExports.useState(!1);_e&&!j&&et(!1);function tt(nt){nt.target!==nt.currentTarget&&et(!0)}return{tabIndex:j&&!_e?0:-1,childTabIndex:j?0:-1,onFocus:j?tt:void 0}}function useViewportColumns({columns:j,colSpanColumns:_e,rows:et,topSummaryRows:tt,bottomSummaryRows:rt,colOverscanStartIdx:nt,colOverscanEndIdx:ot,lastFrozenColumnIndex:it,rowOverscanStartIdx:st,rowOverscanEndIdx:lt}){const ut=reactExports.useMemo(()=>{if(nt===0)return 0;let ct=nt;const dt=(ft,pt)=>pt!==void 0&&ft+pt>nt?(ct=ft,!0):!1;for(const ft of _e){const pt=ft.idx;if(pt>=ct||dt(pt,getColSpan(ft,it,{type:"HEADER"})))break;for(let gt=st;gt<=lt;gt++){const mt=et[gt];if(dt(pt,getColSpan(ft,it,{type:"ROW",row:mt})))break}if(tt!=null){for(const gt of tt)if(dt(pt,getColSpan(ft,it,{type:"SUMMARY",row:gt})))break}if(rt!=null){for(const gt of rt)if(dt(pt,getColSpan(ft,it,{type:"SUMMARY",row:gt})))break}}return ct},[st,lt,et,tt,rt,nt,it,_e]);return reactExports.useMemo(()=>{const ct=[];for(let dt=0;dt<=ot;dt++){const ft=j[dt];dt{if(typeof _e=="number")return{totalRowHeight:_e*j.length,gridTemplateRows:` repeat(${j.length}, ${_e}px)`,getRowTop:mt=>mt*_e,getRowHeight:()=>_e,findRowIdx:mt=>floor(mt/_e)};let dt=0,ft=" ";const pt=j.map(mt=>{const bt=_e(mt),_t={top:dt,height:bt};return ft+=`${bt}px `,dt+=bt,_t}),gt=mt=>max$1(0,min$1(j.length-1,mt));return{totalRowHeight:dt,gridTemplateRows:ft,getRowTop:mt=>pt[gt(mt)].top,getRowHeight:mt=>pt[gt(mt)].height,findRowIdx(mt){let bt=0,_t=pt.length-1;for(;bt<=_t;){const xt=bt+floor((_t-bt)/2),yt=pt[xt].top;if(yt===mt)return xt;if(ytmt&&(_t=xt-1),bt>_t)return _t}return 0}}},[_e,j]);let ut=0,ct=j.length-1;if(rt){const ft=lt(tt),pt=lt(tt+et);ut=max$1(0,ft-4),ct=min$1(j.length-1,pt+4)}return{rowOverscanStartIdx:ut,rowOverscanEndIdx:ct,totalRowHeight:nt,gridTemplateRows:ot,getRowTop:it,getRowHeight:st,findRowIdx:lt}}const cellDragHandle="cadd3bp7-0-0-beta-39",cellDragHandleFrozenClassname="ccmuez27-0-0-beta-39",cellDragHandleClassname=`rdg-cell-drag-handle ${cellDragHandle}`;function DragHandle({gridRowStart:j,rows:_e,columns:et,selectedPosition:tt,latestDraggedOverRowIdx:rt,isCellEditable:nt,onRowsChange:ot,onFill:it,onClick:st,setDragging:lt,setDraggedOverRowIdx:ut}){var yt;const{idx:ct,rowIdx:dt}=tt,ft=et[ct];function pt(Et){if(Et.preventDefault(),Et.buttons!==1)return;lt(!0),window.addEventListener("mouseover",St),window.addEventListener("mouseup",Tt);function St(kt){kt.buttons!==1&&Tt()}function Tt(){window.removeEventListener("mouseover",St),window.removeEventListener("mouseup",Tt),lt(!1),gt()}}function gt(){const Et=rt.current;if(Et===void 0)return;const St=dt0&&(ot==null||ot($t,{indexes:Ct,column:Tt}))}const _t=((yt=ft.colSpan)==null?void 0:yt.call(ft,{type:"ROW",row:_e[dt]}))??1,xt=getCellStyle(ft,_t);return jsxRuntimeExports.jsx("div",{style:{...xt,gridRowStart:j,insetInlineStart:xt.insetInlineStart&&typeof ft.width=="number"?`calc(${xt.insetInlineStart} + ${ft.width}px - var(--rdg-drag-handle-size))`:void 0},className:clsx(cellDragHandleClassname,ft.frozen&&cellDragHandleFrozenClassname),onClick:st,onMouseDown:pt,onDoubleClick:mt})}const cellEditing="c1tngyp17-0-0-beta-39";function EditCell({column:j,colSpan:_e,row:et,rowIdx:tt,onRowChange:rt,closeEditor:nt,onKeyDown:ot,navigate:it}){var bt,_t,xt;const st=reactExports.useRef(),lt=((bt=j.editorOptions)==null?void 0:bt.commitOnOutsideClick)!==!1,ut=useLatestFunc(()=>{ft(!0,!1)});reactExports.useEffect(()=>{if(!lt)return;function yt(){st.current=requestAnimationFrame(ut)}return addEventListener("mousedown",yt,{capture:!0}),()=>{removeEventListener("mousedown",yt,{capture:!0}),ct()}},[lt,ut]);function ct(){cancelAnimationFrame(st.current)}function dt(yt){if(ot){const Et=createCellEvent(yt);if(ot({mode:"EDIT",row:et,column:j,rowIdx:tt,navigate(){it(yt)},onClose:ft},Et),Et.isGridDefaultPrevented())return}yt.key==="Escape"?ft():yt.key==="Enter"?ft(!0):onEditorNavigation(yt)&&it(yt)}function ft(yt=!1,Et=!0){yt?rt(et,!0,Et):nt(Et)}function pt(yt,Et=!1){rt(yt,Et,Et)}const{cellClass:gt}=j,mt=getCellClassname(j,"rdg-editor-container",typeof gt=="function"?gt(et):gt,!((_t=j.editorOptions)!=null&&_t.displayCellContent)&&cellEditing);return jsxRuntimeExports.jsx("div",{role:"gridcell","aria-colindex":j.idx+1,"aria-colspan":_e,"aria-selected":!0,className:mt,style:getCellStyle(j,_e),onKeyDown:dt,onMouseDownCapture:ct,children:j.renderEditCell!=null&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[j.renderEditCell({column:j,row:et,onRowChange:pt,onClose:ft}),((xt=j.editorOptions)==null?void 0:xt.displayCellContent)&&j.renderCell({column:j,row:et,isCellEditable:!0,tabIndex:-1,onRowChange:pt})]})})}function GroupedColumnHeaderCell({column:j,rowIdx:_e,isCellSelected:et,selectCell:tt}){const{tabIndex:rt,onFocus:nt}=useRovingTabIndex(et),{colSpan:ot}=j,it=getHeaderCellRowSpan(j,_e),st=j.idx+1;function lt(){tt({idx:j.idx,rowIdx:_e})}return jsxRuntimeExports.jsx("div",{role:"columnheader","aria-colindex":st,"aria-colspan":ot,"aria-rowspan":it,"aria-selected":et,tabIndex:rt,className:clsx(cellClassname,j.headerCellClass),style:{...getHeaderCellStyle(j,_e,it),gridColumnStart:st,gridColumnEnd:st+ot},onFocus:nt,onClick:lt,children:j.name})}const headerSortCellClassname="hizp7y17-0-0-beta-39",headerSortName="h14cojrm7-0-0-beta-39",headerSortNameClassname=`rdg-header-sort-name ${headerSortName}`;function renderHeaderCell({column:j,sortDirection:_e,priority:et}){return j.sortable?jsxRuntimeExports.jsx(SortableHeaderCell,{sortDirection:_e,priority:et,children:j.name}):j.name}function SortableHeaderCell({sortDirection:j,priority:_e,children:et}){const tt=useDefaultRenderers().renderSortStatus;return jsxRuntimeExports.jsxs("span",{className:headerSortCellClassname,children:[jsxRuntimeExports.jsx("span",{className:headerSortNameClassname,children:et}),jsxRuntimeExports.jsx("span",{children:tt({sortDirection:j,priority:_e})})]})}const cellSortableClassname="celq7o97-0-0-beta-39",cellResizable="ceqw94e7-0-0-beta-39",cellResizableClassname=`rdg-cell-resizable ${cellResizable}`,resizeHandleClassname="r12jy2ca7-0-0-beta-39",cellDragging="c1j3os1p7-0-0-beta-39",cellDraggingClassname=`rdg-cell-dragging ${cellDragging}`,cellOver="c1ui3nad7-0-0-beta-39",cellOverClassname=`rdg-cell-drag-over ${cellOver}`;function HeaderCell({column:j,colSpan:_e,rowIdx:et,isCellSelected:tt,onColumnResize:rt,onColumnsReorder:nt,sortColumns:ot,onSortColumnsChange:it,selectCell:st,shouldFocusGrid:lt,direction:ut}){const[ct,dt]=reactExports.useState(!1),[ft,pt]=reactExports.useState(!1),gt=ut==="rtl",mt=getHeaderCellRowSpan(j,et),{tabIndex:bt,childTabIndex:_t,onFocus:xt}=useRovingTabIndex(tt),yt=ot==null?void 0:ot.findIndex(hr=>hr.columnKey===j.key),Et=yt!==void 0&&yt>-1?ot[yt]:void 0,St=Et==null?void 0:Et.direction,Tt=Et!==void 0&&ot.length>1?yt+1:void 0,kt=St&&!Tt?St==="ASC"?"ascending":"descending":void 0,{sortable:$t,resizable:Ct,draggable:It}=j,Nt=getCellClassname(j,j.headerCellClass,$t&&cellSortableClassname,Ct&&cellResizableClassname,ct&&cellDraggingClassname,ft&&cellOverClassname),Ot=j.renderHeaderCell??renderHeaderCell;function jt(hr){if(hr.pointerType==="mouse"&&hr.buttons!==1)return;const{currentTarget:_r,pointerId:Ut}=hr,ar=_r.parentElement,{right:pr,left:rr}=ar.getBoundingClientRect(),vr=gt?hr.clientX-rr:pr-hr.clientX;function $r(Cr){Cr.preventDefault();const{right:Nr,left:Gr}=ar.getBoundingClientRect(),qr=gt?Nr+vr-Cr.clientX:Cr.clientX+vr-Gr;qr>0&&rt(j,clampColumnWidth(qr,j))}function Rr(){_r.removeEventListener("pointermove",$r),_r.removeEventListener("lostpointercapture",Rr)}_r.setPointerCapture(Ut),_r.addEventListener("pointermove",$r),_r.addEventListener("lostpointercapture",Rr)}function Mt(hr){if(it==null)return;const{sortDescendingFirst:_r}=j;if(Et===void 0){const Ut={columnKey:j.key,direction:_r?"DESC":"ASC"};it(ot&&hr?[...ot,Ut]:[Ut])}else{let Ut;if((_r===!0&&St==="DESC"||_r!==!0&&St==="ASC")&&(Ut={columnKey:j.key,direction:St==="ASC"?"DESC":"ASC"}),hr){const ar=[...ot];Ut?ar[yt]=Ut:ar.splice(yt,1),it(ar)}else it(Ut?[Ut]:[])}}function Rt(hr){st({idx:j.idx,rowIdx:et}),$t&&Mt(hr.ctrlKey||hr.metaKey)}function Lt(){rt(j,"max-content")}function Pt(hr){xt==null||xt(hr),lt&&st({idx:0,rowIdx:et})}function Gt(hr){(hr.key===" "||hr.key==="Enter")&&(hr.preventDefault(),Mt(hr.ctrlKey||hr.metaKey))}function qt(hr){hr.dataTransfer.setData("text/plain",j.key),hr.dataTransfer.dropEffect="move",dt(!0)}function Yt(){dt(!1)}function Xt(hr){hr.preventDefault(),hr.dataTransfer.dropEffect="move"}function tr(hr){pt(!1);const _r=hr.dataTransfer.getData("text/plain");_r!==j.key&&(hr.preventDefault(),nt==null||nt(_r,j.key))}function cr(hr){isEventPertinent(hr)&&pt(!0)}function mr(hr){isEventPertinent(hr)&&pt(!1)}let Er;return It&&(Er={draggable:!0,onDragStart:qt,onDragEnd:Yt,onDragOver:Xt,onDragEnter:cr,onDragLeave:mr,onDrop:tr}),jsxRuntimeExports.jsxs("div",{role:"columnheader","aria-colindex":j.idx+1,"aria-colspan":_e,"aria-rowspan":mt,"aria-selected":tt,"aria-sort":kt,tabIndex:lt?0:bt,className:Nt,style:{...getHeaderCellStyle(j,et,mt),...getCellStyle(j,_e)},onFocus:Pt,onClick:Rt,onKeyDown:$t?Gt:void 0,...Er,children:[Ot({column:j,sortDirection:St,priority:Tt,tabIndex:_t}),Ct&&jsxRuntimeExports.jsx("div",{className:resizeHandleClassname,onClick:stopPropagation,onDoubleClick:Lt,onPointerDown:jt})]})}function isEventPertinent(j){const _e=j.relatedTarget;return!j.currentTarget.contains(_e)}const row="r1otpg647-0-0-beta-39",rowClassname=`rdg-row ${row}`,rowSelected="rel5gk27-0-0-beta-39",rowSelectedClassname="rdg-row-selected",rowSelectedWithFrozenCell="r1qymf1z7-0-0-beta-39",headerRow="h197vzie7-0-0-beta-39",headerRowClassname=`rdg-header-row ${headerRow}`;function HeaderRow({rowIdx:j,columns:_e,onColumnResize:et,onColumnsReorder:tt,sortColumns:rt,onSortColumnsChange:nt,lastFrozenColumnIndex:ot,selectedCellIdx:it,selectCell:st,shouldFocusGrid:lt,direction:ut}){const ct=[];for(let dt=0;dt<_e.length;dt++){const ft=_e[dt],pt=getColSpan(ft,ot,{type:"HEADER"});pt!==void 0&&(dt+=pt-1),ct.push(jsxRuntimeExports.jsx(HeaderCell,{column:ft,colSpan:pt,rowIdx:j,isCellSelected:it===ft.idx,onColumnResize:et,onColumnsReorder:tt,onSortColumnsChange:nt,sortColumns:rt,selectCell:st,shouldFocusGrid:lt&&dt===0,direction:ut},ft.key))}return jsxRuntimeExports.jsx("div",{role:"row","aria-rowindex":j,className:clsx(headerRowClassname,it===-1&&rowSelectedClassname),children:ct})}const HeaderRow$1=reactExports.memo(HeaderRow);function GroupedColumnHeaderRow({rowIdx:j,level:_e,columns:et,selectedCellIdx:tt,selectCell:rt}){const nt=[],ot=new Set;for(const it of et){let{parent:st}=it;if(st!==void 0){for(;st.level>_e&&st.parent!==void 0;)st=st.parent;if(st.level===_e&&!ot.has(st)){ot.add(st);const{idx:lt}=st;nt.push(jsxRuntimeExports.jsx(GroupedColumnHeaderCell,{column:st,rowIdx:j,isCellSelected:tt===lt,selectCell:rt},lt))}}}return jsxRuntimeExports.jsx("div",{role:"row","aria-rowindex":j,className:headerRowClassname,children:nt})}const GroupedColumnHeaderRow$1=reactExports.memo(GroupedColumnHeaderRow),cellCopied="ccpfvsn7-0-0-beta-39",cellCopiedClassname=`rdg-cell-copied ${cellCopied}`,cellDraggedOver="c1bmg16t7-0-0-beta-39",cellDraggedOverClassname=`rdg-cell-dragged-over ${cellDraggedOver}`;function Cell$1({column:j,colSpan:_e,isCellSelected:et,isCopied:tt,isDraggedOver:rt,row:nt,rowIdx:ot,onClick:it,onDoubleClick:st,onContextMenu:lt,onRowChange:ut,selectCell:ct,...dt}){const{tabIndex:ft,childTabIndex:pt,onFocus:gt}=useRovingTabIndex(et),{cellClass:mt}=j,bt=getCellClassname(j,typeof mt=="function"?mt(nt):mt,tt&&cellCopiedClassname,rt&&cellDraggedOverClassname),_t=isCellEditable(j,nt);function xt(kt){ct({rowIdx:ot,idx:j.idx},kt)}function yt(kt){if(it){const $t=createCellEvent(kt);if(it({row:nt,column:j,selectCell:xt},$t),$t.isGridDefaultPrevented())return}xt()}function Et(kt){if(lt){const $t=createCellEvent(kt);if(lt({row:nt,column:j,selectCell:xt},$t),$t.isGridDefaultPrevented())return}xt()}function St(kt){if(st){const $t=createCellEvent(kt);if(st({row:nt,column:j,selectCell:xt},$t),$t.isGridDefaultPrevented())return}xt(!0)}function Tt(kt){ut(j,kt)}return jsxRuntimeExports.jsx("div",{role:"gridcell","aria-colindex":j.idx+1,"aria-colspan":_e,"aria-selected":et,"aria-readonly":!_t||void 0,tabIndex:ft,className:bt,style:getCellStyle(j,_e),onClick:yt,onDoubleClick:St,onContextMenu:Et,onFocus:gt,...dt,children:j.renderCell({column:j,row:nt,isCellEditable:_t,tabIndex:pt,onRowChange:Tt})})}const Cell$1$1=reactExports.memo(Cell$1);function Row({className:j,rowIdx:_e,gridRowStart:et,height:tt,selectedCellIdx:rt,isRowSelected:nt,copiedCellIdx:ot,draggedOverCellIdx:it,lastFrozenColumnIndex:st,row:lt,viewportColumns:ut,selectedCellEditor:ct,onCellClick:dt,onCellDoubleClick:ft,onCellContextMenu:pt,rowClass:gt,setDraggedOverRowIdx:mt,onMouseEnter:bt,onRowChange:_t,selectCell:xt,...yt},Et){const St=useLatestFunc(($t,Ct)=>{_t($t,_e,Ct)});function Tt($t){mt==null||mt(_e),bt==null||bt($t)}j=clsx(rowClassname,`rdg-row-${_e%2===0?"even":"odd"}`,gt==null?void 0:gt(lt,_e),j,rt===-1&&rowSelectedClassname);const kt=[];for(let $t=0;$t{scrollIntoView(rt.current)}),useLayoutEffect(()=>{function nt(){tt(null)}const ot=new IntersectionObserver(nt,{root:et,threshold:1});return ot.observe(rt.current),()=>{ot.disconnect()}},[et,tt]),jsxRuntimeExports.jsx("div",{ref:rt,style:{gridColumn:j===void 0?"1/-1":j+1,gridRow:_e===void 0?"1/-1":_e+2}})}const arrow="a1mygwml7-0-0-beta-39",arrowClassname=`rdg-sort-arrow ${arrow}`;function renderSortStatus({sortDirection:j,priority:_e}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[renderSortIcon({sortDirection:j}),renderSortPriority({priority:_e})]})}function renderSortIcon({sortDirection:j}){return j===void 0?null:jsxRuntimeExports.jsx("svg",{viewBox:"0 0 12 8",width:"12",height:"8",className:arrowClassname,"aria-hidden":!0,children:jsxRuntimeExports.jsx("path",{d:j==="ASC"?"M0 8 6 0 12 8":"M0 0 6 8 12 0"})})}function renderSortPriority({priority:j}){return j}const root="r104f42s7-0-0-beta-39",rootClassname=`rdg ${root}`,viewportDragging="v7ly7s7-0-0-beta-39",viewportDraggingClassname=`rdg-viewport-dragging ${viewportDragging}`,focusSinkClassname="fc4f4zb7-0-0-beta-39",focusSinkHeaderAndSummaryClassname="fq51q037-0-0-beta-39",summaryCellClassname="s1n3hxke7-0-0-beta-39";function SummaryCell({column:j,colSpan:_e,row:et,rowIdx:tt,isCellSelected:rt,selectCell:nt}){var dt;const{tabIndex:ot,childTabIndex:it,onFocus:st}=useRovingTabIndex(rt),{summaryCellClass:lt}=j,ut=getCellClassname(j,summaryCellClassname,typeof lt=="function"?lt(et):lt);function ct(){nt({rowIdx:tt,idx:j.idx})}return jsxRuntimeExports.jsx("div",{role:"gridcell","aria-colindex":j.idx+1,"aria-colspan":_e,"aria-selected":rt,tabIndex:ot,className:ut,style:getCellStyle(j,_e),onClick:ct,onFocus:st,children:(dt=j.renderSummaryCell)==null?void 0:dt.call(j,{column:j,row:et,tabIndex:it})})}const SummaryCell$1=reactExports.memo(SummaryCell),summaryRow="snfqesz7-0-0-beta-39",topSummaryRow="t1jijrjz7-0-0-beta-39",topSummaryRowBorderClassname="t14bmecc7-0-0-beta-39",bottomSummaryRowBorderClassname="b1odhhml7-0-0-beta-39",summaryRowClassname=`rdg-summary-row ${summaryRow}`,topSummaryRowClassname=`rdg-top-summary-row ${topSummaryRow}`;function SummaryRow({rowIdx:j,gridRowStart:_e,row:et,viewportColumns:tt,top:rt,bottom:nt,lastFrozenColumnIndex:ot,selectedCellIdx:it,isTop:st,showBorder:lt,selectCell:ut,"aria-rowindex":ct}){const dt=[];for(let ft=0;ftnew Map),[Qr,Yr]=reactExports.useState(()=>new Map),[Pr,Vr]=reactExports.useState(null),[yn,fr]=reactExports.useState(!1),[sr,ir]=reactExports.useState(void 0),[gr,wr]=reactExports.useState(null),[Mr,Sr,Ir]=useGridDimensions(),{columns:zr,colSpanColumns:Xr,lastFrozenColumnIndex:Zr,headerRowsCount:sn,colOverscanStartIdx:$n,colOverscanEndIdx:Nn,templateColumns:hn,layoutCssVars:jn,totalFrozenColumnWidth:qn}=useCalculatedColumns({rawColumns:et,defaultColumnOptions:gt,measuredColumnWidths:Qr,resizedColumnWidths:Gr,scrollLeft:Cr,viewportWidth:Sr,enableVirtualization:rr}),Sn=(rt==null?void 0:rt.length)??0,un=(nt==null?void 0:nt.length)??0,Fn=Sn+un,On=sn+Sn,Pn=sn-1,wn=-On,fn=wn+Pn,Kr=tt.length+un-1,[jr,zn]=reactExports.useState(()=>({idx:-1,rowIdx:wn-1,mode:"SELECT"})),ro=reactExports.useRef(jr),Mn=reactExports.useRef(sr),Fo=reactExports.useRef(-1),mo=reactExports.useRef(null),eo=reactExports.useRef(!1),Co=cr==="treegrid",Dr=sn*Er,Kt=Ir-Dr-Fn*hr,Zt=ct!=null&&dt!=null,zt=vr==="rtl",Ht=zt?"ArrowRight":"ArrowLeft",Dt=zt?"ArrowLeft":"ArrowRight",Qt=Yt??sn+tt.length+Fn,or=reactExports.useMemo(()=>({renderCheckbox:ar,renderSortStatus:Ut}),[ar,Ut]),lr=reactExports.useMemo(()=>{const{length:Br}=tt;return Br!==0&&ct!=null&&ot!=null&&ct.size>=Br&&tt.every(Hr=>ct.has(ot(Hr)))},[tt,ct,ot]),{rowOverscanStartIdx:er,rowOverscanEndIdx:yr,totalRowHeight:Lr,gridTemplateRows:nn,getRowTop:cn,getRowHeight:rn,findRowIdx:en}=useViewportRows({rows:tt,rowHeight:mr,clientHeight:Kt,scrollTop:$r,enableVirtualization:rr}),_n=useViewportColumns({columns:zr,colSpanColumns:Xr,colOverscanStartIdx:$n,colOverscanEndIdx:Nn,lastFrozenColumnIndex:Zr,rowOverscanStartIdx:er,rowOverscanEndIdx:yr,rows:tt,topSummaryRows:rt,bottomSummaryRows:nt}),{gridTemplateColumns:Ln,handleColumnResize:dn}=useColumnWidths(zr,_n,hn,Mr,Sr,Gr,Qr,qr,Yr,St),Kn=Co?-1:0,to=zr.length-1,fo=zs(jr),Po=Hs(jr),xo=useLatestFunc(dn),_i=useLatestFunc(Tt),zo=useLatestFunc(pt),Zn=useLatestFunc(mt),wo=useLatestFunc(bt),na=useLatestFunc(_t),Ho=useLatestFunc(xa),ga=useLatestFunc(Xo),Go=useLatestFunc(gs),ps=useLatestFunc(({idx:Br,rowIdx:Hr})=>{gs({rowIdx:wn+Hr-1,idx:Br})});useLayoutEffect(()=>{if(!fo||isSamePosition(jr,ro.current)){ro.current=jr;return}ro.current=jr,jr.idx===-1&&(mo.current.focus({preventScroll:!0}),scrollIntoView(mo.current))}),useLayoutEffect(()=>{eo.current&&(eo.current=!1,Tl())}),reactExports.useImperativeHandle(_e,()=>({element:Mr.current,scrollToCell({idx:Br,rowIdx:Hr}){const bn=Br!==void 0&&Br>Zr&&Br{ir(Br),Mn.current=Br},[]);function xa(Br){if(!dt)return;if(assertIsValidKeyGetter(ot),Br.type==="HEADER"){const Gn=new Set(ct);for(const Vn of tt){const no=ot(Vn);Br.checked?Gn.add(no):Gn.delete(no)}dt(Gn);return}const{row:Hr,checked:bn,isShiftClick:gn}=Br,tn=new Set(ct),an=ot(Hr);if(bn){tn.add(an);const Gn=Fo.current,Vn=tt.indexOf(Hr);if(Fo.current=Vn,gn&&Gn!==-1&&Gn!==Vn){const no=sign$1(Vn-Gn);for(let Io=Gn+no;Io!==Vn;Io+=no){const ts=tt[Io];tn.add(ot(ts))}}}else tn.delete(an),Fo.current=-1;dt(tn)}function es(Br){const{idx:Hr,rowIdx:bn,mode:gn}=jr;if(gn==="EDIT")return;if(xt&&$s(bn)){const Vn=tt[bn],no=createCellEvent(Br);if(xt({mode:"SELECT",row:Vn,column:zr[Hr],rowIdx:bn,selectCell:gs},no),no.isGridDefaultPrevented())return}if(!(Br.target instanceof Element))return;const tn=Br.target.closest(".rdg-cell")!==null,an=Co&&Br.target===mo.current;if(!tn&&!an)return;const{keyCode:Gn}=Br;if(Po&&(Ct!=null||$t!=null)&&isCtrlKeyHeldDown(Br)){if(Gn===67){El();return}if(Gn===86){hs();return}}switch(Br.key){case"Escape":Vr(null);return;case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"Tab":case"Home":case"End":case"PageUp":case"PageDown":Ul(Br);break;default:Kl(Br);break}}function Yo(Br){const{scrollTop:Hr,scrollLeft:bn}=Br.currentTarget;reactDomExports.flushSync(()=>{Rr(Hr),Nr(abs$1(bn))}),Et==null||Et(Br)}function Xo(Br,Hr,bn){if(typeof it!="function"||bn===tt[Hr])return;const gn=[...tt];gn[Hr]=bn,it(gn,{indexes:[Hr],column:Br})}function Ps(){jr.mode==="EDIT"&&Xo(zr[jr.idx],jr.rowIdx,jr.row)}function El(){const{idx:Br,rowIdx:Hr}=jr,bn=tt[Hr],gn=zr[Br].key;Vr({row:bn,columnKey:gn}),$t==null||$t({sourceRow:bn,sourceColumnKey:gn})}function hs(){if(!Ct||!it||Pr===null||!Cs(jr))return;const{idx:Br,rowIdx:Hr}=jr,bn=zr[Br],gn=tt[Hr],tn=Ct({sourceRow:Pr.row,sourceColumnKey:Pr.columnKey,targetRow:gn,targetColumnKey:bn.key});Xo(bn,Hr,tn)}function Kl(Br){if(!Po)return;const Hr=tt[jr.rowIdx],{key:bn,shiftKey:gn}=Br;if(Zt&&gn&&bn===" "){assertIsValidKeyGetter(ot);const tn=ot(Hr);xa({type:"ROW",row:Hr,checked:!ct.has(tn),isShiftClick:!1}),Br.preventDefault();return}Cs(jr)&&isDefaultCellInput(Br)&&zn(({idx:tn,rowIdx:an})=>({idx:tn,rowIdx:an,mode:"EDIT",row:Hr,originalRow:Hr}))}function Sl(Br){return Br>=Kn&&Br<=to}function $s(Br){return Br>=0&&Br=wn&&Hr<=Kr&&Sl(Br)}function Hs({idx:Br,rowIdx:Hr}){return $s(Hr)&&Sl(Br)}function Cs(Br){return Hs(Br)&&isSelectedCellEditable({columns:zr,rows:tt,selectedPosition:Br})}function gs(Br,Hr){if(!zs(Br))return;Ps();const bn=tt[Br.rowIdx],gn=isSamePosition(jr,Br);Hr&&Cs(Br)?zn({...Br,mode:"EDIT",row:bn,originalRow:bn}):gn?scrollIntoView(getCellToScroll(Mr.current)):(eo.current=!0,zn({...Br,mode:"SELECT"})),yt&&!gn&&yt({rowIdx:Br.rowIdx,row:bn,column:zr[Br.idx]})}function Lu(Br,Hr,bn){const{idx:gn,rowIdx:tn}=jr,an=fo&&gn===-1;switch(Br){case"ArrowUp":return{idx:gn,rowIdx:tn-1};case"ArrowDown":return{idx:gn,rowIdx:tn+1};case Ht:return{idx:gn-1,rowIdx:tn};case Dt:return{idx:gn+1,rowIdx:tn};case"Tab":return{idx:gn+(bn?-1:1),rowIdx:tn};case"Home":return an?{idx:gn,rowIdx:wn}:{idx:0,rowIdx:Hr?wn:tn};case"End":return an?{idx:gn,rowIdx:Kr}:{idx:to,rowIdx:Hr?Kr:tn};case"PageUp":{if(jr.rowIdx===wn)return jr;const Gn=cn(tn)+rn(tn)-Kt;return{idx:gn,rowIdx:Gn>0?en(Gn):0}}case"PageDown":{if(jr.rowIdx>=tt.length)return jr;const Gn=cn(tn)+Kt;return{idx:gn,rowIdx:GnBr&&Br>=sr)?jr.idx:void 0}function Tl(){const Br=getCellToScroll(Mr.current);if(Br===null)return;scrollIntoView(Br),(Br.querySelector('[tabindex="0"]')??Br).focus({preventScroll:!0})}function ju(){if(!(kt==null||jr.mode==="EDIT"||!Hs(jr)))return jsxRuntimeExports.jsx(DragHandle,{gridRowStart:On+jr.rowIdx+1,rows:tt,columns:zr,selectedPosition:jr,isCellEditable:Cs,latestDraggedOverRowIdx:Mn,onRowsChange:it,onClick:Tl,onFill:kt,setDragging:fr,setDraggedOverRowIdx:Uo})}function Fu(Br){if(jr.rowIdx!==Br||jr.mode==="SELECT")return;const{idx:Hr,row:bn}=jr,gn=zr[Hr],tn=getColSpan(gn,Zr,{type:"ROW",row:bn}),an=Vn=>{eo.current=Vn,zn(({idx:no,rowIdx:Io})=>({idx:no,rowIdx:Io,mode:"SELECT"}))},Gn=(Vn,no,Io)=>{no?reactDomExports.flushSync(()=>{Xo(gn,jr.rowIdx,Vn),an(Io)}):zn(ts=>({...ts,row:Vn}))};return tt[jr.rowIdx]!==jr.originalRow&&an(!1),jsxRuntimeExports.jsx(EditCell,{column:gn,colSpan:tn,row:bn,rowIdx:Br,onRowChange:Gn,closeEditor:an,onKeyDown:xt,navigate:Ul},gn.key)}function ws(Br){const Hr=jr.idx===-1?void 0:zr[jr.idx];return Hr!==void 0&&jr.rowIdx===Br&&!_n.includes(Hr)?jr.idx>Nn?[..._n,Hr]:[..._n.slice(0,Zr+1),Hr,..._n.slice(Zr+1)]:_n}function Pu(){const Br=[],{idx:Hr,rowIdx:bn}=jr,gn=Po&&bnyr?yr+1:yr;for(let an=gn;an<=tn;an++){const Gn=an===er-1||an===yr+1,Vn=Gn?bn:an;let no=_n;const Io=Hr===-1?void 0:zr[Hr];Io!==void 0&&(Gn?no=[Io]:no=ws(Vn));const ts=tt[Vn],zu=On+Vn+1;let Gs=Vn,Al=!1;typeof ot=="function"&&(Gs=ot(ts),Al=(ct==null?void 0:ct.has(Gs))??!1),Br.push(_r(Gs,{"aria-rowindex":On+Vn+1,"aria-selected":Zt?Al:void 0,rowIdx:Vn,row:ts,viewportColumns:no,isRowSelected:Al,onCellClick:Zn,onCellDoubleClick:wo,onCellContextMenu:na,rowClass:Mt,gridRowStart:zu,height:rn(Vn),copiedCellIdx:Pr!==null&&Pr.row===ts?zr.findIndex(oo=>oo.key===Pr.columnKey):void 0,selectedCellIdx:bn===Vn?Hr:void 0,draggedOverCellIdx:Bu(Vn),setDraggedOverRowIdx:yn?Uo:void 0,lastFrozenColumnIndex:Zr,onRowChange:ga,selectCell:Go,selectedCellEditor:Fu(Vn)}))}return Br}(jr.idx>to||jr.rowIdx>Kr)&&(zn({idx:-1,rowIdx:wn-1,mode:"SELECT"}),Uo(void 0));let vs=`repeat(${sn}, ${Er}px)`;Sn>0&&(vs+=` repeat(${Sn}, ${hr}px)`),tt.length>0&&(vs+=nn),un>0&&(vs+=` repeat(${un}, ${hr}px)`);const Yl=jr.idx===-1&&jr.rowIdx!==wn-1;return jsxRuntimeExports.jsxs("div",{role:cr,"aria-label":Pt,"aria-labelledby":Gt,"aria-describedby":qt,"aria-multiselectable":Zt?!0:void 0,"aria-colcount":zr.length,"aria-rowcount":Qt,className:clsx(rootClassname,Ot,yn&&viewportDraggingClassname),style:{...jt,scrollPaddingInlineStart:jr.idx>Zr||(gr==null?void 0:gr.idx)!==void 0?`${qn}px`:void 0,scrollPaddingBlock:$s(jr.rowIdx)||(gr==null?void 0:gr.rowIdx)!==void 0?`${Dr+Sn*hr}px ${un*hr}px`:void 0,gridTemplateColumns:Ln,gridTemplateRows:vs,"--rdg-header-row-height":`${Er}px`,"--rdg-summary-row-height":`${hr}px`,"--rdg-sign":zt?-1:1,...jn},dir:vr,ref:Mr,onScroll:Yo,onKeyDown:es,"data-testid":Xt,children:[jsxRuntimeExports.jsx(DataGridDefaultRenderersProvider,{value:or,children:jsxRuntimeExports.jsxs(RowSelectionChangeProvider,{value:Ho,children:[jsxRuntimeExports.jsxs(RowSelectionProvider,{value:lr,children:[Array.from({length:Pn},(Br,Hr)=>jsxRuntimeExports.jsx(GroupedColumnHeaderRow$1,{rowIdx:Hr+1,level:-Pn+Hr,columns:ws(wn+Hr),selectedCellIdx:jr.rowIdx===wn+Hr?jr.idx:void 0,selectCell:ps},Hr)),jsxRuntimeExports.jsx(HeaderRow$1,{rowIdx:sn,columns:ws(fn),onColumnResize:xo,onColumnsReorder:_i,sortColumns:ft,onSortColumnsChange:zo,lastFrozenColumnIndex:Zr,selectedCellIdx:jr.rowIdx===fn?jr.idx:void 0,selectCell:ps,shouldFocusGrid:!fo,direction:vr})]}),tt.length===0&&pr?pr:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[rt==null?void 0:rt.map((Br,Hr)=>{const bn=sn+1+Hr,gn=fn+1+Hr,tn=jr.rowIdx===gn,an=Dr+hr*Hr;return jsxRuntimeExports.jsx(SummaryRow$1,{"aria-rowindex":bn,rowIdx:gn,gridRowStart:bn,row:Br,top:an,bottom:void 0,viewportColumns:ws(gn),lastFrozenColumnIndex:Zr,selectedCellIdx:tn?jr.idx:void 0,isTop:!0,showBorder:Hr===Sn-1,selectCell:Go},Hr)}),Pu(),nt==null?void 0:nt.map((Br,Hr)=>{const bn=On+tt.length+Hr+1,gn=tt.length+Hr,tn=jr.rowIdx===gn,an=Kt>Lr?Ir-hr*(nt.length-Hr):void 0,Gn=an===void 0?hr*(nt.length-1-Hr):void 0;return jsxRuntimeExports.jsx(SummaryRow$1,{"aria-rowindex":Qt-un+Hr+1,rowIdx:gn,gridRowStart:bn,row:Br,top:an,bottom:Gn,viewportColumns:ws(gn),lastFrozenColumnIndex:Zr,selectedCellIdx:tn?jr.idx:void 0,isTop:!1,showBorder:Hr===0,selectCell:Go},Hr)})]})]})}),ju(),renderMeasuringCells(_n),Co&&jsxRuntimeExports.jsx("div",{ref:mo,tabIndex:Yl?0:-1,className:clsx(focusSinkClassname,Yl&&[rowSelected,Zr!==-1&&rowSelectedWithFrozenCell],!$s(jr.rowIdx)&&focusSinkHeaderAndSummaryClassname),style:{gridRowStart:jr.rowIdx+On+1}}),gr!==null&&jsxRuntimeExports.jsx(ScrollToCell,{scrollToPosition:gr,setScrollToCellPosition:wr,gridElement:Mr.current})]})}function getCellToScroll(j){return j.querySelector(':scope > [role="row"] > [tabindex="0"]')}function isSamePosition(j,_e){return j.idx===_e.idx&&j.rowIdx===_e.rowIdx}const DataGrid$1$1=reactExports.forwardRef(DataGrid$2),useGanttViewModel=()=>{const[j]=useInjected(GanttViewModelToken);return j},useGanttViewRows=()=>{const j=useGanttViewModel();return useState(j.rows$).toArray()},useToggleSubRows=()=>{const j=useGanttViewModel();return reactExports.useCallback(_e=>{j.toggleRow(_e)},[j])},useTasksTimeBoundaries=()=>{const j=useGanttViewModel();return[j.startTime,j.endTime]},useSelectedRow=()=>{const j=useGanttViewModel();return useState(j.selectedRowId$)},useSetSelectedRow=()=>{const j=useGanttViewModel();return useSetState(j.selectedRowId$)},GanttChartCell=({row:j})=>{const[_e,et]=useTasksTimeBoundaries(),tt=`${(j.startTime-_e)*100/(et-_e)}%`,rt=`${(et-j.endTime)*100/(et-_e)}%`,nt=j.children&&j.children.length>0,ot=j.isExpanded;return jsxRuntimeExports.jsx("div",{style:{marginLeft:tt,marginRight:rt,height:"100%",marginTop:4,marginBottom:4,display:"flex"},children:nt&&!ot?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:(j.children??[]).map((it,st)=>{const lt=`${(it.endTime-it.startTime)*100/(j.endTime-j.startTime)}%`;return jsxRuntimeExports.jsx("div",{style:{backgroundColor:it.color??`rgba(0, 120, 212, ${1-.2*st})`,width:lt}},it.id)})}):jsxRuntimeExports.jsx("div",{style:{backgroundColor:j.color??"rgba(0, 120, 212, 1)",width:"100%"}})})},NameCell=({row:j})=>{const _e=j.children!==void 0&&j.children.length>0,et=j.isExpanded,tt=useToggleSubRows(),rt=reactExports.useCallback(nt=>{nt.preventDefault(),nt.stopPropagation(),tt(j.id)},[j.id,tt]);return jsxRuntimeExports.jsxs("div",{style:{display:"flex",gap:4,paddingLeft:j.level*24},children:[_e?jsxRuntimeExports.jsx("div",{onClick:rt,role:"button",children:et?"▼":"▶"}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{}),jsxRuntimeExports.jsx("div",{children:j.node_name||j.name})]})},defaultColumns=[{key:"name",name:"node name",resizable:!0,width:320,renderCell({row:j}){return jsxRuntimeExports.jsx(NameCell,{row:j})}},{key:"duration",name:"duration",resizable:!0,width:60,renderHeaderCell(){return jsxRuntimeExports.jsx("div",{style:{textAlign:"right"},children:"duration"})},renderCell({row:j}){return jsxRuntimeExports.jsxs("div",{style:{textAlign:"right"},children:[Math.round((j.endTime-j.startTime)*1e3).toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")," ","ms"]})}},{key:"ganttChart",name:"gantt-chart",renderCell({row:j}){return jsxRuntimeExports.jsx(GanttChartCell,{row:j})},renderHeaderCell:()=>jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}],GanttGridView=({styles:j,getColumns:_e=et=>et})=>{const et=useGanttViewRows(),tt=useSetSelectedRow(),rt=useSelectedRow(),nt=reactExports.useCallback(st=>{const{row:lt}=st;tt(lt.id)},[tt]),ot=mergeStyles$1(j==null?void 0:j.grid,{borderBottom:"none",borderRight:"none"}),it=reactExports.useCallback(st=>mergeStyles$1(rt===st.id?j==null?void 0:j.selectedRow:""),[rt,j==null?void 0:j.selectedRow]);return jsxRuntimeExports.jsx(DataGrid$1$1,{rows:et,columns:_e(defaultColumns),onCellClick:nt,className:ot,rowClass:it})},Wrapper=({viewModel:j,children:_e})=>{const et=createRegistry({name:"gantt-wrapper"}),tt=reactExports.useCallback(rt=>{rt.register(GanttViewModelToken,{useValue:j})},[j]);return jsxRuntimeExports.jsx(et,{onInitialize:tt,children:_e})};var GanttGridTheme=(j=>(j.Light="rdg-light",j.Dark="rdg-dark",j))(GanttGridTheme||{});const Gantt=({viewModel:j,styles:_e,getColumns:et})=>jsxRuntimeExports.jsx(Wrapper,{viewModel:j,children:jsxRuntimeExports.jsx(GanttGridView,{styles:_e,getColumns:et})}),TraceDetailTemplate=({trace:j,JSONView:_e})=>{const et=mergeStyleSets({root:["api-call-detail",{padding:8,width:"100%",height:"100%",display:"flex",flexDirection:"column"}],header:["api-call-detail-header",{fontWeight:600,fontSize:20,lineHeight:28,marginBottom:16}],section:["api-call-detail-section",{display:"flex",flexDirection:"column",width:"85%",height:"auto",boxShadow:"rgba(0, 0, 0, 0.18) 0px 1.6px 3.6px 0px, rgba(0, 0, 0, 0.22) 0px 0.3px 0.9px 0px",marginBottom:16}],sectionTitle:["api-call-detail-section-title",{fontWeight:500,fontSize:16,marginTop:8,marginBottom:8,lineHeight:20,borderBottom:"1px inset #ccc",padding:"9px 12px"}],sectionContent:["api-call-detail-section-content",{padding:16,overflow:"auto",maxHeight:"600px"}],fieldTitle:["api-call-detail-field-title",{fontWeight:500,fontSize:14,lineHeight:20}],overviewContainer:["api-call-detail-overview-container",{display:"flex",flexDirection:"row"}],overviewColumn:["api-call-detail-overview-column",{display:"flex",flexGrow:1,flexDirection:"column"}]}),tt=j.node_name??j.name??"",rt=getTokensUsageByRow(j),nt=j.inputs??{},ot=j.output??{};return jsxRuntimeExports.jsxs("div",{className:et.root,children:[jsxRuntimeExports.jsx("div",{className:et.header,children:tt}),jsxRuntimeExports.jsxs("div",{className:et.section,children:[jsxRuntimeExports.jsx("div",{className:et.sectionTitle,children:"Overview"}),jsxRuntimeExports.jsx("div",{className:et.sectionContent,children:jsxRuntimeExports.jsxs("div",{className:et.overviewContainer,children:[jsxRuntimeExports.jsxs("div",{className:et.overviewColumn,children:[jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"total tokens"}),jsxRuntimeExports.jsx("div",{children:numberToDigitsString(rt.totalTokens)}),jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"prompt tokens"}),jsxRuntimeExports.jsx("div",{children:numberToDigitsString(rt.promptTokens)}),jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"completion tokens"}),jsxRuntimeExports.jsx("div",{children:numberToDigitsString(rt.completionTokens)})]}),jsxRuntimeExports.jsxs("div",{className:et.overviewColumn,children:[jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"duration"}),jsxRuntimeExports.jsx("div",{children:j.end_time&&j.start_time?`${Math.round((j.end_time-j.start_time)*1e3).toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")} ms`:"N/A"}),jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"started at"}),jsxRuntimeExports.jsx("div",{children:j.start_time?timePDTFormatter(j.start_time*1e3):"N/A"}),jsxRuntimeExports.jsx("div",{className:et.fieldTitle,children:"finished at"}),jsxRuntimeExports.jsx("div",{children:j.end_time?timePDTFormatter(j.end_time*1e3):"N/A"})]})]})})]}),jsxRuntimeExports.jsxs("div",{className:et.section,children:[jsxRuntimeExports.jsx("div",{className:et.sectionTitle,children:"Inputs"}),jsxRuntimeExports.jsx("div",{className:et.sectionContent,children:jsxRuntimeExports.jsx(_e,{src:nt})})]}),jsxRuntimeExports.jsxs("div",{className:et.section,children:[jsxRuntimeExports.jsx("div",{className:et.sectionTitle,children:"Outputs"}),jsxRuntimeExports.jsx("div",{className:et.sectionContent,children:jsxRuntimeExports.jsx(_e,{src:ot})})]})]})},traceMap=new Map,hashTraceName=j=>{let _e=0,et=0;if(j.length===0)return _e;for(let tt=0;ttj.map(_e=>{const et=uuid_1.v4();return traceMap.set(et,_e),{startTime:_e.start_time??performance.now(),endTime:_e.end_time??performance.now(),color:SystemColors[hashTraceName(_e.name??"")%systemColorsLength],id:et,name:_e.name??"",node_name:_e.node_name??"",output:_e.output??[],children:_e.children?parseTrace(_e.children):void 0}}),DefaultGridContainer=({children:j,className:_e})=>jsxRuntimeExports.jsx(Resizable,{enable:{right:!0},className:_e,defaultSize:{width:"50%",height:"100%"},children:j}),DefaultContainer=({children:j,className:_e})=>jsxRuntimeExports.jsx("div",{className:_e,children:j}),ApiLogs=reactExports.forwardRef(({traces:j,styles:_e,isDarkMode:et=!1,classNames:tt,RootContainer:rt=DefaultContainer,GridContainer:nt=DefaultGridContainer,DetailContainer:ot=DefaultContainer,renderDetail:it=ct=>jsxRuntimeExports.jsx(TraceDetailTemplate,{JSONView:dt=>jsxRuntimeExports.jsx("pre",{children:JSON.stringify(dt)}),trace:ct}),onChangeSelectedTrace:st,renderUnselectedHint:lt=()=>jsxRuntimeExports.jsx("div",{children:"Click on a row to see details"})},ut)=>{const ct=reactExports.useMemo(()=>j.reduce((St,Tt)=>[...St,...parseTrace(Tt)],[]),[j]),dt=reactExports.useMemo(()=>new GanttViewModel,[]);reactExports.useEffect(()=>{dt.setTasks(ct)},[ct,dt]);const ft=useState(dt.selectedRowId$),pt=useSetState(dt.selectedRowId$),gt=reactExports.useMemo(()=>ft?traceMap.get(ft):void 0,[ft]),mt=reactExports.useMemo(()=>({..._e,grid:mergeStyles$1(_e==null?void 0:_e.grid,et?GanttGridTheme.Dark:GanttGridTheme.Light)}),[_e,et]),bt=mergeStyles$1({display:"flex",height:"100%",borderTop:"1px solid #ccc"},tt==null?void 0:tt.root),_t=mergeStyles$1({height:"100%",width:"100%",padding:16,borderRight:"1px solid #ccc"},tt==null?void 0:tt.gridContainer),xt=mergeStyles$1({height:"100%",width:"100%",padding:8},tt==null?void 0:tt.detailContainer),yt=reactExports.useCallback(St=>{var kt;const Tt=(kt=ct.find($t=>$t.node_name===St))==null?void 0:kt.id;Tt&&pt(Tt)},[ct,pt]);reactExports.useImperativeHandle(ut,()=>({setSelectedTraceRow:yt})),reactExports.useEffect(()=>{st&&st(gt)},[st,gt]),reactExports.useEffect(()=>{pt(void 0)},[j]);const Et=reactExports.useCallback(St=>{const Tt={key:"token",name:"token",resizable:!0,width:60,renderHeaderCell(){return jsxRuntimeExports.jsx("div",{style:{textAlign:"right"},children:"Tokens"})},renderCell({row:Ct}){const It=getTokensUsageByRow(Ct),Nt=`prompt tokens: ${numberToDigitsString(It.promptTokens)}, + completion tokens: ${It.completionTokens}`;return jsxRuntimeExports.jsx("div",{style:{textAlign:"right"},title:Nt,children:numberToDigitsString(It.totalTokens)})}},[kt,...$t]=St;return[kt,Tt,...$t]},[]);return jsxRuntimeExports.jsxs(rt,{className:bt,children:[jsxRuntimeExports.jsx(nt,{className:_t,children:jsxRuntimeExports.jsx(Gantt,{viewModel:dt,styles:mt,getColumns:Et})}),jsxRuntimeExports.jsx(ot,{className:xt,children:gt?it(gt):lt()})]})});ApiLogs.displayName="ApiLogs";const $global=function(){if(typeof globalThis<"u")return globalThis;if(typeof global<"u")return global;if(typeof self<"u")return self;if(typeof window<"u")return window;try{return new Function("return this")()}catch{return{}}}();$global.trustedTypes===void 0&&($global.trustedTypes={createPolicy:(j,_e)=>_e});const propConfig={configurable:!1,enumerable:!1,writable:!1};$global.FAST===void 0&&Reflect.defineProperty($global,"FAST",Object.assign({value:Object.create(null)},propConfig));const FAST=$global.FAST;if(FAST.getById===void 0){const j=Object.create(null);Reflect.defineProperty(FAST,"getById",Object.assign({value(_e,et){let tt=j[_e];return tt===void 0&&(tt=et?j[_e]=et():null),tt}},propConfig))}const emptyArray=Object.freeze([]);function createMetadataLocator(){const j=new WeakMap;return function(_e){let et=j.get(_e);if(et===void 0){let tt=Reflect.getPrototypeOf(_e);for(;et===void 0&&tt!==null;)et=j.get(tt),tt=Reflect.getPrototypeOf(tt);et=et===void 0?[]:et.slice(0),j.set(_e,et)}return et}}const updateQueue=$global.FAST.getById(1,()=>{const j=[],_e=[];function et(){if(_e.length)throw _e.shift()}function tt(ot){try{ot.call()}catch(it){_e.push(it),setTimeout(et,0)}}function rt(){let it=0;for(;it1024){for(let st=0,lt=j.length-it;stj});let htmlPolicy=fastHTMLPolicy;const marker=`fast-${Math.random().toString(36).substring(2,8)}`,_interpolationStart=`${marker}{`,_interpolationEnd=`}${marker}`,DOM=Object.freeze({supportsAdoptedStyleSheets:Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype,setHTMLPolicy(j){if(htmlPolicy!==fastHTMLPolicy)throw new Error("The HTML policy can only be set once.");htmlPolicy=j},createHTML(j){return htmlPolicy.createHTML(j)},isMarker(j){return j&&j.nodeType===8&&j.data.startsWith(marker)},extractDirectiveIndexFromMarker(j){return parseInt(j.data.replace(`${marker}:`,""))},createInterpolationPlaceholder(j){return`${_interpolationStart}${j}${_interpolationEnd}`},createCustomAttributePlaceholder(j,_e){return`${j}="${this.createInterpolationPlaceholder(_e)}"`},createBlockPlaceholder(j){return``},queueUpdate:updateQueue.enqueue,processUpdates:updateQueue.process,nextUpdate(){return new Promise(updateQueue.enqueue)},setAttribute(j,_e,et){et==null?j.removeAttribute(_e):j.setAttribute(_e,et)},setBooleanAttribute(j,_e,et){et?j.setAttribute(_e,""):j.removeAttribute(_e)},removeChildNodes(j){for(let _e=j.firstChild;_e!==null;_e=j.firstChild)j.removeChild(_e)},createTemplateWalker(j){return document.createTreeWalker(j,133,null,!1)}});class SubscriberSet{constructor(_e,et){this.sub1=void 0,this.sub2=void 0,this.spillover=void 0,this.source=_e,this.sub1=et}has(_e){return this.spillover===void 0?this.sub1===_e||this.sub2===_e:this.spillover.indexOf(_e)!==-1}subscribe(_e){const et=this.spillover;if(et===void 0){if(this.has(_e))return;if(this.sub1===void 0){this.sub1=_e;return}if(this.sub2===void 0){this.sub2=_e;return}this.spillover=[this.sub1,this.sub2,_e],this.sub1=void 0,this.sub2=void 0}else et.indexOf(_e)===-1&&et.push(_e)}unsubscribe(_e){const et=this.spillover;if(et===void 0)this.sub1===_e?this.sub1=void 0:this.sub2===_e&&(this.sub2=void 0);else{const tt=et.indexOf(_e);tt!==-1&&et.splice(tt,1)}}notify(_e){const et=this.spillover,tt=this.source;if(et===void 0){const rt=this.sub1,nt=this.sub2;rt!==void 0&&rt.handleChange(tt,_e),nt!==void 0&&nt.handleChange(tt,_e)}else for(let rt=0,nt=et.length;rt{const j=/(:|&&|\|\||if)/,_e=new WeakMap,et=DOM.queueUpdate;let tt,rt=lt=>{throw new Error("Must call enableArrayObservation before observing arrays.")};function nt(lt){let ut=lt.$fastController||_e.get(lt);return ut===void 0&&(Array.isArray(lt)?ut=rt(lt):_e.set(lt,ut=new PropertyChangeNotifier(lt))),ut}const ot=createMetadataLocator();class it{constructor(ut){this.name=ut,this.field=`_${ut}`,this.callback=`${ut}Changed`}getValue(ut){return tt!==void 0&&tt.watch(ut,this.name),ut[this.field]}setValue(ut,ct){const dt=this.field,ft=ut[dt];if(ft!==ct){ut[dt]=ct;const pt=ut[this.callback];typeof pt=="function"&&pt.call(ut,ft,ct),nt(ut).notify(this.name)}}}class st extends SubscriberSet{constructor(ut,ct,dt=!1){super(ut,ct),this.binding=ut,this.isVolatileBinding=dt,this.needsRefresh=!0,this.needsQueue=!0,this.first=this,this.last=null,this.propertySource=void 0,this.propertyName=void 0,this.notifier=void 0,this.next=void 0}observe(ut,ct){this.needsRefresh&&this.last!==null&&this.disconnect();const dt=tt;tt=this.needsRefresh?this:void 0,this.needsRefresh=this.isVolatileBinding;const ft=this.binding(ut,ct);return tt=dt,ft}disconnect(){if(this.last!==null){let ut=this.first;for(;ut!==void 0;)ut.notifier.unsubscribe(this,ut.propertyName),ut=ut.next;this.last=null,this.needsRefresh=this.needsQueue=!0}}watch(ut,ct){const dt=this.last,ft=nt(ut),pt=dt===null?this.first:{};if(pt.propertySource=ut,pt.propertyName=ct,pt.notifier=ft,ft.subscribe(this,ct),dt!==null){if(!this.needsRefresh){let gt;tt=void 0,gt=dt.propertySource[dt.propertyName],tt=this,ut===gt&&(this.needsRefresh=!0)}dt.next=pt}this.last=pt}handleChange(){this.needsQueue&&(this.needsQueue=!1,et(this))}call(){this.last!==null&&(this.needsQueue=!0,this.notify(this))}records(){let ut=this.first;return{next:()=>{const ct=ut;return ct===void 0?{value:void 0,done:!0}:(ut=ut.next,{value:ct,done:!1})},[Symbol.iterator]:function(){return this}}}}return Object.freeze({setArrayObserverFactory(lt){rt=lt},getNotifier:nt,track(lt,ut){tt!==void 0&&tt.watch(lt,ut)},trackVolatile(){tt!==void 0&&(tt.needsRefresh=!0)},notify(lt,ut){nt(lt).notify(ut)},defineProperty(lt,ut){typeof ut=="string"&&(ut=new it(ut)),ot(lt).push(ut),Reflect.defineProperty(lt,ut.name,{enumerable:!0,get:function(){return ut.getValue(this)},set:function(ct){ut.setValue(this,ct)}})},getAccessors:ot,binding(lt,ut,ct=this.isVolatileBinding(lt)){return new st(lt,ut,ct)},isVolatileBinding(lt){return j.test(lt.toString())}})});function observable(j,_e){Observable$1.defineProperty(j,_e)}function volatile(j,_e,et){return Object.assign({},et,{get:function(){return Observable$1.trackVolatile(),et.get.apply(this)}})}const contextEvent=FAST.getById(3,()=>{let j=null;return{get(){return j},set(_e){j=_e}}});class ExecutionContext{constructor(){this.index=0,this.length=0,this.parent=null,this.parentContext=null}get event(){return contextEvent.get()}get isEven(){return this.index%2===0}get isOdd(){return this.index%2!==0}get isFirst(){return this.index===0}get isInMiddle(){return!this.isFirst&&!this.isLast}get isLast(){return this.index===this.length-1}static setEvent(_e){contextEvent.set(_e)}}Observable$1.defineProperty(ExecutionContext.prototype,"index");Observable$1.defineProperty(ExecutionContext.prototype,"length");const defaultExecutionContext=Object.seal(new ExecutionContext);class HTMLDirective{constructor(){this.targetIndex=0}}class TargetedHTMLDirective extends HTMLDirective{constructor(){super(...arguments),this.createPlaceholder=DOM.createInterpolationPlaceholder}}class AttachedBehaviorHTMLDirective extends HTMLDirective{constructor(_e,et,tt){super(),this.name=_e,this.behavior=et,this.options=tt}createPlaceholder(_e){return DOM.createCustomAttributePlaceholder(this.name,_e)}createBehavior(_e){return new this.behavior(_e,this.options)}}function normalBind(j,_e){this.source=j,this.context=_e,this.bindingObserver===null&&(this.bindingObserver=Observable$1.binding(this.binding,this,this.isBindingVolatile)),this.updateTarget(this.bindingObserver.observe(j,_e))}function triggerBind(j,_e){this.source=j,this.context=_e,this.target.addEventListener(this.targetName,this)}function normalUnbind(){this.bindingObserver.disconnect(),this.source=null,this.context=null}function contentUnbind(){this.bindingObserver.disconnect(),this.source=null,this.context=null;const j=this.target.$fastView;j!==void 0&&j.isComposed&&(j.unbind(),j.needsBindOnly=!0)}function triggerUnbind(){this.target.removeEventListener(this.targetName,this),this.source=null,this.context=null}function updateAttributeTarget(j){DOM.setAttribute(this.target,this.targetName,j)}function updateBooleanAttributeTarget(j){DOM.setBooleanAttribute(this.target,this.targetName,j)}function updateContentTarget(j){if(j==null&&(j=""),j.create){this.target.textContent="";let _e=this.target.$fastView;_e===void 0?_e=j.create():this.target.$fastTemplate!==j&&(_e.isComposed&&(_e.remove(),_e.unbind()),_e=j.create()),_e.isComposed?_e.needsBindOnly&&(_e.needsBindOnly=!1,_e.bind(this.source,this.context)):(_e.isComposed=!0,_e.bind(this.source,this.context),_e.insertBefore(this.target),this.target.$fastView=_e,this.target.$fastTemplate=j)}else{const _e=this.target.$fastView;_e!==void 0&&_e.isComposed&&(_e.isComposed=!1,_e.remove(),_e.needsBindOnly?_e.needsBindOnly=!1:_e.unbind()),this.target.textContent=j}}function updatePropertyTarget(j){this.target[this.targetName]=j}function updateClassTarget(j){const _e=this.classVersions||Object.create(null),et=this.target;let tt=this.version||0;if(j!=null&&j.length){const rt=j.split(/\s+/);for(let nt=0,ot=rt.length;ntDOM.createHTML(et(tt,rt))}break;case"?":this.cleanedTargetName=_e.substr(1),this.updateTarget=updateBooleanAttributeTarget;break;case"@":this.cleanedTargetName=_e.substr(1),this.bind=triggerBind,this.unbind=triggerUnbind;break;default:this.cleanedTargetName=_e,_e==="class"&&(this.updateTarget=updateClassTarget);break}}targetAtContent(){this.updateTarget=updateContentTarget,this.unbind=contentUnbind}createBehavior(_e){return new BindingBehavior(_e,this.binding,this.isBindingVolatile,this.bind,this.unbind,this.updateTarget,this.cleanedTargetName)}}class BindingBehavior{constructor(_e,et,tt,rt,nt,ot,it){this.source=null,this.context=null,this.bindingObserver=null,this.target=_e,this.binding=et,this.isBindingVolatile=tt,this.bind=rt,this.unbind=nt,this.updateTarget=ot,this.targetName=it}handleChange(){this.updateTarget(this.bindingObserver.observe(this.source,this.context))}handleEvent(_e){ExecutionContext.setEvent(_e);const et=this.binding(this.source,this.context);ExecutionContext.setEvent(null),et!==!0&&_e.preventDefault()}}let sharedContext=null;class CompilationContext{addFactory(_e){_e.targetIndex=this.targetIndex,this.behaviorFactories.push(_e)}captureContentBinding(_e){_e.targetAtContent(),this.addFactory(_e)}reset(){this.behaviorFactories=[],this.targetIndex=-1}release(){sharedContext=this}static borrow(_e){const et=sharedContext||new CompilationContext;return et.directives=_e,et.reset(),sharedContext=null,et}}function createAggregateBinding(j){if(j.length===1)return j[0];let _e;const et=j.length,tt=j.map(ot=>typeof ot=="string"?()=>ot:(_e=ot.targetName||_e,ot.binding)),rt=(ot,it)=>{let st="";for(let lt=0;ltit),lt.targetName=ot.name):lt=createAggregateBinding(st),lt!==null&&(_e.removeAttributeNode(ot),rt--,nt--,j.addFactory(lt))}}function compileContent(j,_e,et){const tt=parseContent(j,_e.textContent);if(tt!==null){let rt=_e;for(let nt=0,ot=tt.length;nt0}const et=this.fragment.cloneNode(!0),tt=this.viewBehaviorFactories,rt=new Array(this.behaviorCount),nt=DOM.createTemplateWalker(et);let ot=0,it=this.targetOffset,st=nt.nextNode();for(let lt=tt.length;ot=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function html(j,..._e){const et=[];let tt="";for(let rt=0,nt=j.length-1;rtst}if(typeof it=="function"&&(it=new HTMLBindingDirective(it)),it instanceof TargetedHTMLDirective){const st=lastAttributeNameRegex.exec(ot);st!==null&&(it.targetName=st[2])}it instanceof HTMLDirective?(tt+=it.createPlaceholder(et.length),et.push(it)):tt+=it}return tt+=j[j.length-1],new ViewTemplate(tt,et)}class ElementStyles{constructor(){this.targets=new WeakSet}addStylesTo(_e){this.targets.add(_e)}removeStylesFrom(_e){this.targets.delete(_e)}isAttachedTo(_e){return this.targets.has(_e)}withBehaviors(..._e){return this.behaviors=this.behaviors===null?_e:this.behaviors.concat(_e),this}}ElementStyles.create=(()=>{if(DOM.supportsAdoptedStyleSheets){const j=new Map;return _e=>new AdoptedStyleSheetsStyles(_e,j)}return j=>new StyleElementStyles(j)})();function reduceStyles(j){return j.map(_e=>_e instanceof ElementStyles?reduceStyles(_e.styles):[_e]).reduce((_e,et)=>_e.concat(et),[])}function reduceBehaviors(j){return j.map(_e=>_e instanceof ElementStyles?_e.behaviors:null).reduce((_e,et)=>et===null?_e:(_e===null&&(_e=[]),_e.concat(et)),null)}let addAdoptedStyleSheets=(j,_e)=>{j.adoptedStyleSheets=[...j.adoptedStyleSheets,..._e]},removeAdoptedStyleSheets=(j,_e)=>{j.adoptedStyleSheets=j.adoptedStyleSheets.filter(et=>_e.indexOf(et)===-1)};if(DOM.supportsAdoptedStyleSheets)try{document.adoptedStyleSheets.push(),document.adoptedStyleSheets.splice(),addAdoptedStyleSheets=(j,_e)=>{j.adoptedStyleSheets.push(..._e)},removeAdoptedStyleSheets=(j,_e)=>{for(const et of _e){const tt=j.adoptedStyleSheets.indexOf(et);tt!==-1&&j.adoptedStyleSheets.splice(tt,1)}}}catch{}class AdoptedStyleSheetsStyles extends ElementStyles{constructor(_e,et){super(),this.styles=_e,this.styleSheetCache=et,this._styleSheets=void 0,this.behaviors=reduceBehaviors(_e)}get styleSheets(){if(this._styleSheets===void 0){const _e=this.styles,et=this.styleSheetCache;this._styleSheets=reduceStyles(_e).map(tt=>{if(tt instanceof CSSStyleSheet)return tt;let rt=et.get(tt);return rt===void 0&&(rt=new CSSStyleSheet,rt.replaceSync(tt),et.set(tt,rt)),rt})}return this._styleSheets}addStylesTo(_e){addAdoptedStyleSheets(_e,this.styleSheets),super.addStylesTo(_e)}removeStylesFrom(_e){removeAdoptedStyleSheets(_e,this.styleSheets),super.removeStylesFrom(_e)}}let styleClassId=0;function getNextStyleClass(){return`fast-style-class-${++styleClassId}`}class StyleElementStyles extends ElementStyles{constructor(_e){super(),this.styles=_e,this.behaviors=null,this.behaviors=reduceBehaviors(_e),this.styleSheets=reduceStyles(_e),this.styleClass=getNextStyleClass()}addStylesTo(_e){const et=this.styleSheets,tt=this.styleClass;_e=this.normalizeTarget(_e);for(let rt=0;rt{tt.add(_e);const rt=_e[this.fieldName];switch(et){case"reflect":const nt=this.converter;DOM.setAttribute(_e,this.attribute,nt!==void 0?nt.toView(rt):rt);break;case"boolean":DOM.setBooleanAttribute(_e,this.attribute,rt);break}tt.delete(_e)})}static collect(_e,...et){const tt=[];et.push(AttributeConfiguration.locate(_e));for(let rt=0,nt=et.length;rt1&&(et.property=nt),AttributeConfiguration.locate(rt.constructor).push(et)}if(arguments.length>1){et={},tt(j,_e);return}return et=j===void 0?{}:j,tt}const defaultShadowOptions={mode:"open"},defaultElementOptions={},fastRegistry=FAST.getById(4,()=>{const j=new Map;return Object.freeze({register(_e){return j.has(_e.type)?!1:(j.set(_e.type,_e),!0)},getByType(_e){return j.get(_e)}})});class FASTElementDefinition{constructor(_e,et=_e.definition){typeof et=="string"&&(et={name:et}),this.type=_e,this.name=et.name,this.template=et.template;const tt=AttributeDefinition.collect(_e,et.attributes),rt=new Array(tt.length),nt={},ot={};for(let it=0,st=tt.length;it0){const nt=this.boundObservables=Object.create(null);for(let ot=0,it=rt.length;ot0||et>0;){if(_e===0){rt.push(EDIT_ADD),et--;continue}if(et===0){rt.push(EDIT_DELETE),_e--;continue}const nt=j[_e-1][et-1],ot=j[_e-1][et],it=j[_e][et-1];let st;ot=0){j.splice(it,1),it--,ot-=st.addedCount-st.removed.length,rt.addedCount+=st.addedCount-lt;const ut=rt.removed.length+st.removed.length-lt;if(!rt.addedCount&&!ut)nt=!0;else{let ct=st.removed;if(rt.indexst.index+st.addedCount){const dt=rt.removed.slice(st.index+st.addedCount-rt.index);$push.apply(ct,dt)}rt.removed=ct,st.indextt?et=tt-j.addedCount:et<0&&(et=tt+j.removed.length+et-j.addedCount),et<0&&(et=0),j.index=et,j}class ArrayObserver extends SubscriberSet{constructor(_e){super(_e),this.oldCollection=void 0,this.splices=void 0,this.needsQueue=!0,this.call=this.flush,Reflect.defineProperty(_e,"$fastController",{value:this,enumerable:!1})}subscribe(_e){this.flush(),super.subscribe(_e)}addSplice(_e){this.splices===void 0?this.splices=[_e]:this.splices.push(_e),this.needsQueue&&(this.needsQueue=!1,DOM.queueUpdate(this))}reset(_e){this.oldCollection=_e,this.needsQueue&&(this.needsQueue=!1,DOM.queueUpdate(this))}flush(){const _e=this.splices,et=this.oldCollection;if(_e===void 0&&et===void 0)return;this.needsQueue=!0,this.splices=void 0,this.oldCollection=void 0;const tt=et===void 0?projectArraySplices(this.source,_e):calcSplices(this.source,0,this.source.length,et,0,et.length);this.notify(tt)}}function enableArrayObservation(){if(arrayObservationEnabled)return;arrayObservationEnabled=!0,Observable$1.setArrayObserverFactory(st=>new ArrayObserver(st));const j=Array.prototype;if(j.$fastPatch)return;Reflect.defineProperty(j,"$fastPatch",{value:1,enumerable:!1});const _e=j.pop,et=j.push,tt=j.reverse,rt=j.shift,nt=j.sort,ot=j.splice,it=j.unshift;j.pop=function(){const st=this.length>0,lt=_e.apply(this,arguments),ut=this.$fastController;return ut!==void 0&&st&&ut.addSplice(newSplice(this.length,[lt],0)),lt},j.push=function(){const st=et.apply(this,arguments),lt=this.$fastController;return lt!==void 0&<.addSplice(adjustIndex(newSplice(this.length-arguments.length,[],arguments.length),this)),st},j.reverse=function(){let st;const lt=this.$fastController;lt!==void 0&&(lt.flush(),st=this.slice());const ut=tt.apply(this,arguments);return lt!==void 0&<.reset(st),ut},j.shift=function(){const st=this.length>0,lt=rt.apply(this,arguments),ut=this.$fastController;return ut!==void 0&&st&&ut.addSplice(newSplice(0,[lt],0)),lt},j.sort=function(){let st;const lt=this.$fastController;lt!==void 0&&(lt.flush(),st=this.slice());const ut=nt.apply(this,arguments);return lt!==void 0&<.reset(st),ut},j.splice=function(){const st=ot.apply(this,arguments),lt=this.$fastController;return lt!==void 0&<.addSplice(adjustIndex(newSplice(+arguments[0],st,arguments.length>2?arguments.length-2:0),this)),st},j.unshift=function(){const st=it.apply(this,arguments),lt=this.$fastController;return lt!==void 0&<.addSplice(adjustIndex(newSplice(0,[],arguments.length),this)),st}}class RefBehavior{constructor(_e,et){this.target=_e,this.propertyName=et}bind(_e){_e[this.propertyName]=this.target}unbind(){}}function ref(j){return new AttachedBehaviorHTMLDirective("fast-ref",RefBehavior,j)}const isFunction$1=j=>typeof j=="function",noTemplate=()=>null;function normalizeBinding(j){return j===void 0?noTemplate:isFunction$1(j)?j:()=>j}function when(j,_e,et){const tt=isFunction$1(j)?j:()=>j,rt=normalizeBinding(_e),nt=normalizeBinding(et);return(ot,it)=>tt(ot,it)?rt(ot,it):nt(ot,it)}function bindWithoutPositioning(j,_e,et,tt){j.bind(_e[et],tt)}function bindWithPositioning(j,_e,et,tt){const rt=Object.create(tt);rt.index=et,rt.length=_e.length,j.bind(_e[et],rt)}class RepeatBehavior{constructor(_e,et,tt,rt,nt,ot){this.location=_e,this.itemsBinding=et,this.templateBinding=rt,this.options=ot,this.source=null,this.views=[],this.items=null,this.itemsObserver=null,this.originalContext=void 0,this.childContext=void 0,this.bindView=bindWithoutPositioning,this.itemsBindingObserver=Observable$1.binding(et,this,tt),this.templateBindingObserver=Observable$1.binding(rt,this,nt),ot.positioning&&(this.bindView=bindWithPositioning)}bind(_e,et){this.source=_e,this.originalContext=et,this.childContext=Object.create(et),this.childContext.parent=_e,this.childContext.parentContext=this.originalContext,this.items=this.itemsBindingObserver.observe(_e,this.originalContext),this.template=this.templateBindingObserver.observe(_e,this.originalContext),this.observeItems(!0),this.refreshAllViews()}unbind(){this.source=null,this.items=null,this.itemsObserver!==null&&this.itemsObserver.unsubscribe(this),this.unbindAllViews(),this.itemsBindingObserver.disconnect(),this.templateBindingObserver.disconnect()}handleChange(_e,et){_e===this.itemsBinding?(this.items=this.itemsBindingObserver.observe(this.source,this.originalContext),this.observeItems(),this.refreshAllViews()):_e===this.templateBinding?(this.template=this.templateBindingObserver.observe(this.source,this.originalContext),this.refreshAllViews(!0)):this.updateViews(et)}observeItems(_e=!1){if(!this.items){this.items=emptyArray;return}const et=this.itemsObserver,tt=this.itemsObserver=Observable$1.getNotifier(this.items),rt=et!==tt;rt&&et!==null&&et.unsubscribe(this),(rt||_e)&&tt.subscribe(this)}updateViews(_e){const et=this.childContext,tt=this.views,rt=this.bindView,nt=this.items,ot=this.template,it=this.options.recycle,st=[];let lt=0,ut=0;for(let ct=0,dt=_e.length;ct0?(gt<=xt&&_t.length>0?(St=_t[gt],gt++):(St=st[lt],lt++),ut--):St=ot.create(),tt.splice(mt,0,St),rt(St,nt,mt,et),St.insertBefore(Et)}_t[gt]&&st.push(..._t.slice(gt))}for(let ct=lt,dt=st.length;cttt.name===et),this.source=_e,this.updateTarget(this.computeNodes()),this.shouldUpdate&&this.observe()}unbind(){this.updateTarget(emptyArray),this.source=null,this.shouldUpdate&&this.disconnect()}handleEvent(){this.updateTarget(this.computeNodes())}computeNodes(){let _e=this.getNodes();return this.options.filter!==void 0&&(_e=_e.filter(this.options.filter)),_e}updateTarget(_e){this.source[this.options.property]=_e}}class SlottedBehavior extends NodeObservationBehavior{constructor(_e,et){super(_e,et)}observe(){this.target.addEventListener("slotchange",this)}disconnect(){this.target.removeEventListener("slotchange",this)}getNodes(){return this.target.assignedNodes(this.options)}}function slotted(j){return typeof j=="string"&&(j={property:j}),new AttachedBehaviorHTMLDirective("fast-slotted",SlottedBehavior,j)}class ChildrenBehavior extends NodeObservationBehavior{constructor(_e,et){super(_e,et),this.observer=null,et.childList=!0}observe(){this.observer===null&&(this.observer=new MutationObserver(this.handleEvent.bind(this))),this.observer.observe(this.target,this.options)}disconnect(){this.observer.disconnect()}getNodes(){return"subtree"in this.options?Array.from(this.target.querySelectorAll(this.options.selector)):Array.from(this.target.childNodes)}}function children(j){return typeof j=="string"&&(j={property:j}),new AttachedBehaviorHTMLDirective("fast-children",ChildrenBehavior,j)}class StartEnd{handleStartContentChange(){this.startContainer.classList.toggle("start",this.start.assignedNodes().length>0)}handleEndContentChange(){this.endContainer.classList.toggle("end",this.end.assignedNodes().length>0)}}const endSlotTemplate=(j,_e)=>html` -`,startSlotTemplate=(j,_e)=>html$4` +`,startSlotTemplate=(j,_e)=>html` -`;html$4` +`;html` -`;html$4` +`;html` =0;it--)(ot=j[it])&&(nt=(rt<3?ot(nt):rt>3?ot(_e,et,nt):ot(_e,et))||nt);return rt>3&&nt&&Object.defineProperty(_e,et,nt),nt}const metadataByTarget=new Map;"metadata"in Reflect||(Reflect.metadata=function(j,_e){return function(et){Reflect.defineMetadata(j,_e,et)}},Reflect.defineMetadata=function(j,_e,et){let tt=metadataByTarget.get(et);tt===void 0&&metadataByTarget.set(et,tt=new Map),tt.set(j,_e)},Reflect.getOwnMetadata=function(j,_e){const et=metadataByTarget.get(_e);if(et!==void 0)return et.get(j)});class ResolverBuilder{constructor(_e,et){this.container=_e,this.key=et}instance(_e){return this.registerResolver(0,_e)}singleton(_e){return this.registerResolver(1,_e)}transient(_e){return this.registerResolver(2,_e)}callback(_e){return this.registerResolver(3,_e)}cachedCallback(_e){return this.registerResolver(3,cacheCallbackResult(_e))}aliasTo(_e){return this.registerResolver(5,_e)}registerResolver(_e,et){const{container:tt,key:rt}=this;return this.container=this.key=void 0,tt.registerResolver(rt,new ResolverImpl(rt,_e,et))}}function cloneArrayWithPossibleProps(j){const _e=j.slice(),et=Object.keys(j),tt=et.length;let rt;for(let nt=0;ntnull,responsibleForOwnerRequests:!1,defaultResolver:DefaultResolver.singleton})}),dependencyLookup=new Map;function getParamTypes(j){return _e=>Reflect.getOwnMetadata(j,_e)}let rootDOMContainer=null;const DI=Object.freeze({createContainer(j){return new ContainerImpl(null,Object.assign({},ContainerConfiguration.default,j))},findResponsibleContainer(j){const _e=j.$$container$$;return _e&&_e.responsibleForOwnerRequests?_e:DI.findParentContainer(j)},findParentContainer(j){const _e=new CustomEvent(DILocateParentEventType,{bubbles:!0,composed:!0,cancelable:!0,detail:{container:void 0}});return j.dispatchEvent(_e),_e.detail.container||DI.getOrCreateDOMContainer()},getOrCreateDOMContainer(j,_e){return j?j.$$container$$||new ContainerImpl(j,Object.assign({},ContainerConfiguration.default,_e,{parentLocator:DI.findParentContainer})):rootDOMContainer||(rootDOMContainer=new ContainerImpl(null,Object.assign({},ContainerConfiguration.default,_e,{parentLocator:()=>null})))},getDesignParamtypes:getParamTypes("design:paramtypes"),getAnnotationParamtypes:getParamTypes("di:paramtypes"),getOrCreateAnnotationParamTypes(j){let _e=this.getAnnotationParamtypes(j);return _e===void 0&&Reflect.defineMetadata("di:paramtypes",_e=[],j),_e},getDependencies(j){let _e=dependencyLookup.get(j);if(_e===void 0){const et=j.inject;if(et===void 0){const tt=DI.getDesignParamtypes(j),rt=DI.getAnnotationParamtypes(j);if(tt===void 0)if(rt===void 0){const nt=Object.getPrototypeOf(j);typeof nt=="function"&&nt!==Function.prototype?_e=cloneArrayWithPossibleProps(DI.getDependencies(nt)):_e=[]}else _e=cloneArrayWithPossibleProps(rt);else if(rt===void 0)_e=cloneArrayWithPossibleProps(tt);else{_e=cloneArrayWithPossibleProps(tt);let nt=rt.length,ot;for(let lt=0;lt{const ut=DI.findResponsibleContainer(this).get(et),ct=this[rt];ut!==ct&&(this[rt]=nt,it.notify(_e))};it.subscribe({handleChange:st},"isConnected")}return nt}})},createInterface(j,_e){const et=typeof j=="function"?j:_e,tt=typeof j=="string"?j:j&&"friendlyName"in j&&j.friendlyName||defaultFriendlyName,rt=typeof j=="string"?!1:j&&"respectConnection"in j&&j.respectConnection||!1,nt=function(ot,it,st){if(ot==null||new.target!==void 0)throw new Error(`No registration for interface: '${nt.friendlyName}'`);if(it)DI.defineProperty(ot,it,nt,rt);else{const lt=DI.getOrCreateAnnotationParamTypes(ot);lt[st]=nt}};return nt.$isInterface=!0,nt.friendlyName=tt??"(anonymous)",et!=null&&(nt.register=function(ot,it){return et(new ResolverBuilder(ot,it??nt))}),nt.toString=function(){return`InterfaceSymbol<${nt.friendlyName}>`},nt},inject(...j){return function(_e,et,tt){if(typeof tt=="number"){const rt=DI.getOrCreateAnnotationParamTypes(_e),nt=j[0];nt!==void 0&&(rt[tt]=nt)}else if(et)DI.defineProperty(_e,et,j[0]);else{const rt=tt?DI.getOrCreateAnnotationParamTypes(tt.value):DI.getOrCreateAnnotationParamTypes(_e);let nt;for(let ot=0;ot{tt.composedPath()[0]!==this.owner&&(tt.detail.container=this,tt.stopImmediatePropagation())})}get parent(){return this._parent===void 0&&(this._parent=this.config.parentLocator(this.owner)),this._parent}get depth(){return this.parent===null?0:this.parent.depth+1}get responsibleForOwnerRequests(){return this.config.responsibleForOwnerRequests}registerWithContext(_e,...et){return this.context=_e,this.register(...et),this.context=null,this}register(..._e){if(++this.registerDepth===100)throw new Error("Unable to autoregister dependency");let et,tt,rt,nt,ot;const it=this.context;for(let st=0,lt=_e.length;stthis}))}jitRegister(_e,et){if(typeof _e!="function")throw new Error(`Attempted to jitRegister something that is not a constructor: '${_e}'. Did you forget to register this dependency?`);if(InstrinsicTypeNames.has(_e.name))throw new Error(`Attempted to jitRegister an intrinsic type: ${_e.name}. Did you forget to add @inject(Key)`);if(isRegistry(_e)){const tt=_e.register(et);if(!(tt instanceof Object)||tt.resolve==null){const rt=et.resolvers.get(_e);if(rt!=null)return rt;throw new Error("A valid resolver was not returned from the static register method")}return tt}else{if(_e.$isInterface)throw new Error(`Attempted to jitRegister an interface: ${_e.friendlyName}`);{const tt=this.config.defaultResolver(_e,et);return et.resolvers.set(_e,tt),tt}}}}const cache=new WeakMap;function cacheCallbackResult(j){return function(_e,et,tt){if(cache.has(tt))return cache.get(tt);const rt=j(_e,et,tt);return cache.set(tt,rt),rt}}const Registration=Object.freeze({instance(j,_e){return new ResolverImpl(j,0,_e)},singleton(j,_e){return new ResolverImpl(j,1,_e)},transient(j,_e){return new ResolverImpl(j,2,_e)},callback(j,_e){return new ResolverImpl(j,3,_e)},cachedCallback(j,_e){return new ResolverImpl(j,3,cacheCallbackResult(_e))},aliasTo(j,_e){return new ResolverImpl(_e,5,j)}});function validateKey(j){if(j==null)throw new Error("key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?")}function buildAllResponse(j,_e,et){if(j instanceof ResolverImpl&&j.strategy===4){const tt=j.state;let rt=tt.length;const nt=new Array(rt);for(;rt--;)nt[rt]=tt[rt].resolve(_e,et);return nt}return[j.resolve(_e,et)]}const defaultFriendlyName="(anonymous)";function isObject$l(j){return typeof j=="object"&&j!==null||typeof j=="function"}const isNativeFunction=function(){const j=new WeakMap;let _e=!1,et="",tt=0;return function(rt){return _e=j.get(rt),_e===void 0&&(et=rt.toString(),tt=et.length,_e=tt>=29&&tt<=100&&et.charCodeAt(tt-1)===125&&et.charCodeAt(tt-2)<=32&&et.charCodeAt(tt-3)===93&&et.charCodeAt(tt-4)===101&&et.charCodeAt(tt-5)===100&&et.charCodeAt(tt-6)===111&&et.charCodeAt(tt-7)===99&&et.charCodeAt(tt-8)===32&&et.charCodeAt(tt-9)===101&&et.charCodeAt(tt-10)===118&&et.charCodeAt(tt-11)===105&&et.charCodeAt(tt-12)===116&&et.charCodeAt(tt-13)===97&&et.charCodeAt(tt-14)===110&&et.charCodeAt(tt-15)===88,j.set(rt,_e)),_e}}(),isNumericLookup={};function isArrayIndex(j){switch(typeof j){case"number":return j>=0&&(j|0)===j;case"string":{const _e=isNumericLookup[j];if(_e!==void 0)return _e;const et=j.length;if(et===0)return isNumericLookup[j]=!1;let tt=0;for(let rt=0;rt1||tt<48||tt>57)return isNumericLookup[j]=!1;return isNumericLookup[j]=!0}default:return!1}}function presentationKeyFromTag(j){return`${j.toLowerCase()}:presentation`}const presentationRegistry=new Map,ComponentPresentation=Object.freeze({define(j,_e,et){const tt=presentationKeyFromTag(j);presentationRegistry.get(tt)===void 0?presentationRegistry.set(tt,_e):presentationRegistry.set(tt,!1),et.register(Registration.instance(tt,_e))},forTag(j,_e){const et=presentationKeyFromTag(j),tt=presentationRegistry.get(et);return tt===!1?DI.findResponsibleContainer(_e).get(et):tt||null}});class DefaultComponentPresentation{constructor(_e,et){this.template=_e||null,this.styles=et===void 0?null:Array.isArray(et)?ElementStyles.create(et):et instanceof ElementStyles?et:ElementStyles.create([et])}applyTo(_e){const et=_e.$fastController;et.template===null&&(et.template=this.template),et.styles===null&&(et.styles=this.styles)}}class FoundationElement extends FASTElement{constructor(){super(...arguments),this._presentation=void 0}get $presentation(){return this._presentation===void 0&&(this._presentation=ComponentPresentation.forTag(this.tagName,this)),this._presentation}templateChanged(){this.template!==void 0&&(this.$fastController.template=this.template)}stylesChanged(){this.styles!==void 0&&(this.$fastController.styles=this.styles)}connectedCallback(){this.$presentation!==null&&this.$presentation.applyTo(this),super.connectedCallback()}static compose(_e){return(et={})=>new FoundationElementRegistry(this===FoundationElement?class extends FoundationElement{}:this,_e,et)}}__decorate([observable],FoundationElement.prototype,"template",void 0);__decorate([observable],FoundationElement.prototype,"styles",void 0);function resolveOption(j,_e,et){return typeof j=="function"?j(_e,et):j}class FoundationElementRegistry{constructor(_e,et,tt){this.type=_e,this.elementDefinition=et,this.overrideDefinition=tt,this.definition=Object.assign(Object.assign({},this.elementDefinition),this.overrideDefinition)}register(_e,et){const tt=this.definition,rt=this.overrideDefinition,ot=`${tt.prefix||et.elementPrefix}-${tt.baseName}`;et.tryDefineElement({name:ot,type:this.type,baseClass:this.elementDefinition.baseClass,callback:it=>{const st=new DefaultComponentPresentation(resolveOption(tt.template,it,tt),resolveOption(tt.styles,it,tt));it.definePresentation(st);let lt=resolveOption(tt.shadowOptions,it,tt);it.shadowRootMode&&(lt?rt.shadowOptions||(lt.mode=it.shadowRootMode):lt!==null&&(lt={mode:it.shadowRootMode})),it.defineElement({elementOptions:resolveOption(tt.elementOptions,it,tt),shadowOptions:lt,attributes:resolveOption(tt.attributes,it,tt)})}})}}function applyMixins(j,..._e){const et=AttributeConfiguration.locate(j);_e.forEach(tt=>{Object.getOwnPropertyNames(tt.prototype).forEach(nt=>{nt!=="constructor"&&Object.defineProperty(j.prototype,nt,Object.getOwnPropertyDescriptor(tt.prototype,nt))}),AttributeConfiguration.locate(tt).forEach(nt=>et.push(nt))})}const Orientation={horizontal:"horizontal",vertical:"vertical"};function findLastIndex(j,_e){let et=j.length;for(;et--;)if(_e(j[et],et,j))return et;return-1}function canUseDOM$1(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}function isHTMLElement$1(...j){return j.every(_e=>_e instanceof HTMLElement)}function getNonce(){const j=document.querySelector('meta[property="csp-nonce"]');return j?j.getAttribute("content"):null}let _canUseFocusVisible;function canUseFocusVisible(){if(typeof _canUseFocusVisible=="boolean")return _canUseFocusVisible;if(!canUseDOM$1())return _canUseFocusVisible=!1,_canUseFocusVisible;const j=document.createElement("style"),_e=getNonce();_e!==null&&j.setAttribute("nonce",_e),document.head.appendChild(j);try{j.sheet.insertRule("foo:focus-visible {color:inherit}",0),_canUseFocusVisible=!0}catch{_canUseFocusVisible=!1}finally{document.head.removeChild(j)}return _canUseFocusVisible}const eventFocus="focus",eventFocusIn="focusin",eventFocusOut="focusout",eventKeyDown="keydown";var KeyCodes;(function(j){j[j.alt=18]="alt",j[j.arrowDown=40]="arrowDown",j[j.arrowLeft=37]="arrowLeft",j[j.arrowRight=39]="arrowRight",j[j.arrowUp=38]="arrowUp",j[j.back=8]="back",j[j.backSlash=220]="backSlash",j[j.break=19]="break",j[j.capsLock=20]="capsLock",j[j.closeBracket=221]="closeBracket",j[j.colon=186]="colon",j[j.colon2=59]="colon2",j[j.comma=188]="comma",j[j.ctrl=17]="ctrl",j[j.delete=46]="delete",j[j.end=35]="end",j[j.enter=13]="enter",j[j.equals=187]="equals",j[j.equals2=61]="equals2",j[j.equals3=107]="equals3",j[j.escape=27]="escape",j[j.forwardSlash=191]="forwardSlash",j[j.function1=112]="function1",j[j.function10=121]="function10",j[j.function11=122]="function11",j[j.function12=123]="function12",j[j.function2=113]="function2",j[j.function3=114]="function3",j[j.function4=115]="function4",j[j.function5=116]="function5",j[j.function6=117]="function6",j[j.function7=118]="function7",j[j.function8=119]="function8",j[j.function9=120]="function9",j[j.home=36]="home",j[j.insert=45]="insert",j[j.menu=93]="menu",j[j.minus=189]="minus",j[j.minus2=109]="minus2",j[j.numLock=144]="numLock",j[j.numPad0=96]="numPad0",j[j.numPad1=97]="numPad1",j[j.numPad2=98]="numPad2",j[j.numPad3=99]="numPad3",j[j.numPad4=100]="numPad4",j[j.numPad5=101]="numPad5",j[j.numPad6=102]="numPad6",j[j.numPad7=103]="numPad7",j[j.numPad8=104]="numPad8",j[j.numPad9=105]="numPad9",j[j.numPadDivide=111]="numPadDivide",j[j.numPadDot=110]="numPadDot",j[j.numPadMinus=109]="numPadMinus",j[j.numPadMultiply=106]="numPadMultiply",j[j.numPadPlus=107]="numPadPlus",j[j.openBracket=219]="openBracket",j[j.pageDown=34]="pageDown",j[j.pageUp=33]="pageUp",j[j.period=190]="period",j[j.print=44]="print",j[j.quote=222]="quote",j[j.scrollLock=145]="scrollLock",j[j.shift=16]="shift",j[j.space=32]="space",j[j.tab=9]="tab",j[j.tilde=192]="tilde",j[j.windowsLeft=91]="windowsLeft",j[j.windowsOpera=219]="windowsOpera",j[j.windowsRight=92]="windowsRight"})(KeyCodes||(KeyCodes={}));const keyArrowDown="ArrowDown",keyArrowLeft="ArrowLeft",keyArrowRight="ArrowRight",keyArrowUp="ArrowUp",keyEnter="Enter",keyEscape="Escape",keyHome="Home",keyEnd="End",keyFunction2="F2",keyPageDown="PageDown",keyPageUp="PageUp",keySpace=" ",keyTab="Tab",ArrowKeys={ArrowDown:keyArrowDown,ArrowLeft:keyArrowLeft,ArrowRight:keyArrowRight,ArrowUp:keyArrowUp};var Direction;(function(j){j.ltr="ltr",j.rtl="rtl"})(Direction||(Direction={}));function limit(j,_e,et){return Math.min(Math.max(et,j),_e)}function inRange(j,_e,et=0){return[_e,et]=[_e,et].sort((tt,rt)=>tt-rt),_e<=j&&jhtml$4` +***************************************************************************** */function __decorate(j,_e,et,tt){var rt=arguments.length,nt=rt<3?_e:tt===null?tt=Object.getOwnPropertyDescriptor(_e,et):tt,ot;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")nt=Reflect.decorate(j,_e,et,tt);else for(var it=j.length-1;it>=0;it--)(ot=j[it])&&(nt=(rt<3?ot(nt):rt>3?ot(_e,et,nt):ot(_e,et))||nt);return rt>3&&nt&&Object.defineProperty(_e,et,nt),nt}const metadataByTarget=new Map;"metadata"in Reflect||(Reflect.metadata=function(j,_e){return function(et){Reflect.defineMetadata(j,_e,et)}},Reflect.defineMetadata=function(j,_e,et){let tt=metadataByTarget.get(et);tt===void 0&&metadataByTarget.set(et,tt=new Map),tt.set(j,_e)},Reflect.getOwnMetadata=function(j,_e){const et=metadataByTarget.get(_e);if(et!==void 0)return et.get(j)});class ResolverBuilder{constructor(_e,et){this.container=_e,this.key=et}instance(_e){return this.registerResolver(0,_e)}singleton(_e){return this.registerResolver(1,_e)}transient(_e){return this.registerResolver(2,_e)}callback(_e){return this.registerResolver(3,_e)}cachedCallback(_e){return this.registerResolver(3,cacheCallbackResult(_e))}aliasTo(_e){return this.registerResolver(5,_e)}registerResolver(_e,et){const{container:tt,key:rt}=this;return this.container=this.key=void 0,tt.registerResolver(rt,new ResolverImpl(rt,_e,et))}}function cloneArrayWithPossibleProps(j){const _e=j.slice(),et=Object.keys(j),tt=et.length;let rt;for(let nt=0;ntnull,responsibleForOwnerRequests:!1,defaultResolver:DefaultResolver.singleton})}),dependencyLookup=new Map;function getParamTypes(j){return _e=>Reflect.getOwnMetadata(j,_e)}let rootDOMContainer=null;const DI=Object.freeze({createContainer(j){return new ContainerImpl(null,Object.assign({},ContainerConfiguration.default,j))},findResponsibleContainer(j){const _e=j.$$container$$;return _e&&_e.responsibleForOwnerRequests?_e:DI.findParentContainer(j)},findParentContainer(j){const _e=new CustomEvent(DILocateParentEventType,{bubbles:!0,composed:!0,cancelable:!0,detail:{container:void 0}});return j.dispatchEvent(_e),_e.detail.container||DI.getOrCreateDOMContainer()},getOrCreateDOMContainer(j,_e){return j?j.$$container$$||new ContainerImpl(j,Object.assign({},ContainerConfiguration.default,_e,{parentLocator:DI.findParentContainer})):rootDOMContainer||(rootDOMContainer=new ContainerImpl(null,Object.assign({},ContainerConfiguration.default,_e,{parentLocator:()=>null})))},getDesignParamtypes:getParamTypes("design:paramtypes"),getAnnotationParamtypes:getParamTypes("di:paramtypes"),getOrCreateAnnotationParamTypes(j){let _e=this.getAnnotationParamtypes(j);return _e===void 0&&Reflect.defineMetadata("di:paramtypes",_e=[],j),_e},getDependencies(j){let _e=dependencyLookup.get(j);if(_e===void 0){const et=j.inject;if(et===void 0){const tt=DI.getDesignParamtypes(j),rt=DI.getAnnotationParamtypes(j);if(tt===void 0)if(rt===void 0){const nt=Object.getPrototypeOf(j);typeof nt=="function"&&nt!==Function.prototype?_e=cloneArrayWithPossibleProps(DI.getDependencies(nt)):_e=[]}else _e=cloneArrayWithPossibleProps(rt);else if(rt===void 0)_e=cloneArrayWithPossibleProps(tt);else{_e=cloneArrayWithPossibleProps(tt);let nt=rt.length,ot;for(let lt=0;lt{const ut=DI.findResponsibleContainer(this).get(et),ct=this[rt];ut!==ct&&(this[rt]=nt,it.notify(_e))};it.subscribe({handleChange:st},"isConnected")}return nt}})},createInterface(j,_e){const et=typeof j=="function"?j:_e,tt=typeof j=="string"?j:j&&"friendlyName"in j&&j.friendlyName||defaultFriendlyName,rt=typeof j=="string"?!1:j&&"respectConnection"in j&&j.respectConnection||!1,nt=function(ot,it,st){if(ot==null||new.target!==void 0)throw new Error(`No registration for interface: '${nt.friendlyName}'`);if(it)DI.defineProperty(ot,it,nt,rt);else{const lt=DI.getOrCreateAnnotationParamTypes(ot);lt[st]=nt}};return nt.$isInterface=!0,nt.friendlyName=tt??"(anonymous)",et!=null&&(nt.register=function(ot,it){return et(new ResolverBuilder(ot,it??nt))}),nt.toString=function(){return`InterfaceSymbol<${nt.friendlyName}>`},nt},inject(...j){return function(_e,et,tt){if(typeof tt=="number"){const rt=DI.getOrCreateAnnotationParamTypes(_e),nt=j[0];nt!==void 0&&(rt[tt]=nt)}else if(et)DI.defineProperty(_e,et,j[0]);else{const rt=tt?DI.getOrCreateAnnotationParamTypes(tt.value):DI.getOrCreateAnnotationParamTypes(_e);let nt;for(let ot=0;ot{tt.composedPath()[0]!==this.owner&&(tt.detail.container=this,tt.stopImmediatePropagation())})}get parent(){return this._parent===void 0&&(this._parent=this.config.parentLocator(this.owner)),this._parent}get depth(){return this.parent===null?0:this.parent.depth+1}get responsibleForOwnerRequests(){return this.config.responsibleForOwnerRequests}registerWithContext(_e,...et){return this.context=_e,this.register(...et),this.context=null,this}register(..._e){if(++this.registerDepth===100)throw new Error("Unable to autoregister dependency");let et,tt,rt,nt,ot;const it=this.context;for(let st=0,lt=_e.length;stthis}))}jitRegister(_e,et){if(typeof _e!="function")throw new Error(`Attempted to jitRegister something that is not a constructor: '${_e}'. Did you forget to register this dependency?`);if(InstrinsicTypeNames.has(_e.name))throw new Error(`Attempted to jitRegister an intrinsic type: ${_e.name}. Did you forget to add @inject(Key)`);if(isRegistry(_e)){const tt=_e.register(et);if(!(tt instanceof Object)||tt.resolve==null){const rt=et.resolvers.get(_e);if(rt!=null)return rt;throw new Error("A valid resolver was not returned from the static register method")}return tt}else{if(_e.$isInterface)throw new Error(`Attempted to jitRegister an interface: ${_e.friendlyName}`);{const tt=this.config.defaultResolver(_e,et);return et.resolvers.set(_e,tt),tt}}}}const cache=new WeakMap;function cacheCallbackResult(j){return function(_e,et,tt){if(cache.has(tt))return cache.get(tt);const rt=j(_e,et,tt);return cache.set(tt,rt),rt}}const Registration=Object.freeze({instance(j,_e){return new ResolverImpl(j,0,_e)},singleton(j,_e){return new ResolverImpl(j,1,_e)},transient(j,_e){return new ResolverImpl(j,2,_e)},callback(j,_e){return new ResolverImpl(j,3,_e)},cachedCallback(j,_e){return new ResolverImpl(j,3,cacheCallbackResult(_e))},aliasTo(j,_e){return new ResolverImpl(_e,5,j)}});function validateKey(j){if(j==null)throw new Error("key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?")}function buildAllResponse(j,_e,et){if(j instanceof ResolverImpl&&j.strategy===4){const tt=j.state;let rt=tt.length;const nt=new Array(rt);for(;rt--;)nt[rt]=tt[rt].resolve(_e,et);return nt}return[j.resolve(_e,et)]}const defaultFriendlyName="(anonymous)";function isObject$5(j){return typeof j=="object"&&j!==null||typeof j=="function"}const isNativeFunction=function(){const j=new WeakMap;let _e=!1,et="",tt=0;return function(rt){return _e=j.get(rt),_e===void 0&&(et=rt.toString(),tt=et.length,_e=tt>=29&&tt<=100&&et.charCodeAt(tt-1)===125&&et.charCodeAt(tt-2)<=32&&et.charCodeAt(tt-3)===93&&et.charCodeAt(tt-4)===101&&et.charCodeAt(tt-5)===100&&et.charCodeAt(tt-6)===111&&et.charCodeAt(tt-7)===99&&et.charCodeAt(tt-8)===32&&et.charCodeAt(tt-9)===101&&et.charCodeAt(tt-10)===118&&et.charCodeAt(tt-11)===105&&et.charCodeAt(tt-12)===116&&et.charCodeAt(tt-13)===97&&et.charCodeAt(tt-14)===110&&et.charCodeAt(tt-15)===88,j.set(rt,_e)),_e}}(),isNumericLookup={};function isArrayIndex(j){switch(typeof j){case"number":return j>=0&&(j|0)===j;case"string":{const _e=isNumericLookup[j];if(_e!==void 0)return _e;const et=j.length;if(et===0)return isNumericLookup[j]=!1;let tt=0;for(let rt=0;rt1||tt<48||tt>57)return isNumericLookup[j]=!1;return isNumericLookup[j]=!0}default:return!1}}function presentationKeyFromTag(j){return`${j.toLowerCase()}:presentation`}const presentationRegistry=new Map,ComponentPresentation=Object.freeze({define(j,_e,et){const tt=presentationKeyFromTag(j);presentationRegistry.get(tt)===void 0?presentationRegistry.set(tt,_e):presentationRegistry.set(tt,!1),et.register(Registration.instance(tt,_e))},forTag(j,_e){const et=presentationKeyFromTag(j),tt=presentationRegistry.get(et);return tt===!1?DI.findResponsibleContainer(_e).get(et):tt||null}});class DefaultComponentPresentation{constructor(_e,et){this.template=_e||null,this.styles=et===void 0?null:Array.isArray(et)?ElementStyles.create(et):et instanceof ElementStyles?et:ElementStyles.create([et])}applyTo(_e){const et=_e.$fastController;et.template===null&&(et.template=this.template),et.styles===null&&(et.styles=this.styles)}}class FoundationElement extends FASTElement{constructor(){super(...arguments),this._presentation=void 0}get $presentation(){return this._presentation===void 0&&(this._presentation=ComponentPresentation.forTag(this.tagName,this)),this._presentation}templateChanged(){this.template!==void 0&&(this.$fastController.template=this.template)}stylesChanged(){this.styles!==void 0&&(this.$fastController.styles=this.styles)}connectedCallback(){this.$presentation!==null&&this.$presentation.applyTo(this),super.connectedCallback()}static compose(_e){return(et={})=>new FoundationElementRegistry(this===FoundationElement?class extends FoundationElement{}:this,_e,et)}}__decorate([observable],FoundationElement.prototype,"template",void 0);__decorate([observable],FoundationElement.prototype,"styles",void 0);function resolveOption(j,_e,et){return typeof j=="function"?j(_e,et):j}class FoundationElementRegistry{constructor(_e,et,tt){this.type=_e,this.elementDefinition=et,this.overrideDefinition=tt,this.definition=Object.assign(Object.assign({},this.elementDefinition),this.overrideDefinition)}register(_e,et){const tt=this.definition,rt=this.overrideDefinition,ot=`${tt.prefix||et.elementPrefix}-${tt.baseName}`;et.tryDefineElement({name:ot,type:this.type,baseClass:this.elementDefinition.baseClass,callback:it=>{const st=new DefaultComponentPresentation(resolveOption(tt.template,it,tt),resolveOption(tt.styles,it,tt));it.definePresentation(st);let lt=resolveOption(tt.shadowOptions,it,tt);it.shadowRootMode&&(lt?rt.shadowOptions||(lt.mode=it.shadowRootMode):lt!==null&&(lt={mode:it.shadowRootMode})),it.defineElement({elementOptions:resolveOption(tt.elementOptions,it,tt),shadowOptions:lt,attributes:resolveOption(tt.attributes,it,tt)})}})}}function applyMixins(j,..._e){const et=AttributeConfiguration.locate(j);_e.forEach(tt=>{Object.getOwnPropertyNames(tt.prototype).forEach(nt=>{nt!=="constructor"&&Object.defineProperty(j.prototype,nt,Object.getOwnPropertyDescriptor(tt.prototype,nt))}),AttributeConfiguration.locate(tt).forEach(nt=>et.push(nt))})}const Orientation={horizontal:"horizontal",vertical:"vertical"};function findLastIndex(j,_e){let et=j.length;for(;et--;)if(_e(j[et],et,j))return et;return-1}function canUseDOM$1(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}function isHTMLElement$1(...j){return j.every(_e=>_e instanceof HTMLElement)}function getNonce(){const j=document.querySelector('meta[property="csp-nonce"]');return j?j.getAttribute("content"):null}let _canUseFocusVisible;function canUseFocusVisible(){if(typeof _canUseFocusVisible=="boolean")return _canUseFocusVisible;if(!canUseDOM$1())return _canUseFocusVisible=!1,_canUseFocusVisible;const j=document.createElement("style"),_e=getNonce();_e!==null&&j.setAttribute("nonce",_e),document.head.appendChild(j);try{j.sheet.insertRule("foo:focus-visible {color:inherit}",0),_canUseFocusVisible=!0}catch{_canUseFocusVisible=!1}finally{document.head.removeChild(j)}return _canUseFocusVisible}const eventFocus="focus",eventFocusIn="focusin",eventFocusOut="focusout",eventKeyDown="keydown";var KeyCodes;(function(j){j[j.alt=18]="alt",j[j.arrowDown=40]="arrowDown",j[j.arrowLeft=37]="arrowLeft",j[j.arrowRight=39]="arrowRight",j[j.arrowUp=38]="arrowUp",j[j.back=8]="back",j[j.backSlash=220]="backSlash",j[j.break=19]="break",j[j.capsLock=20]="capsLock",j[j.closeBracket=221]="closeBracket",j[j.colon=186]="colon",j[j.colon2=59]="colon2",j[j.comma=188]="comma",j[j.ctrl=17]="ctrl",j[j.delete=46]="delete",j[j.end=35]="end",j[j.enter=13]="enter",j[j.equals=187]="equals",j[j.equals2=61]="equals2",j[j.equals3=107]="equals3",j[j.escape=27]="escape",j[j.forwardSlash=191]="forwardSlash",j[j.function1=112]="function1",j[j.function10=121]="function10",j[j.function11=122]="function11",j[j.function12=123]="function12",j[j.function2=113]="function2",j[j.function3=114]="function3",j[j.function4=115]="function4",j[j.function5=116]="function5",j[j.function6=117]="function6",j[j.function7=118]="function7",j[j.function8=119]="function8",j[j.function9=120]="function9",j[j.home=36]="home",j[j.insert=45]="insert",j[j.menu=93]="menu",j[j.minus=189]="minus",j[j.minus2=109]="minus2",j[j.numLock=144]="numLock",j[j.numPad0=96]="numPad0",j[j.numPad1=97]="numPad1",j[j.numPad2=98]="numPad2",j[j.numPad3=99]="numPad3",j[j.numPad4=100]="numPad4",j[j.numPad5=101]="numPad5",j[j.numPad6=102]="numPad6",j[j.numPad7=103]="numPad7",j[j.numPad8=104]="numPad8",j[j.numPad9=105]="numPad9",j[j.numPadDivide=111]="numPadDivide",j[j.numPadDot=110]="numPadDot",j[j.numPadMinus=109]="numPadMinus",j[j.numPadMultiply=106]="numPadMultiply",j[j.numPadPlus=107]="numPadPlus",j[j.openBracket=219]="openBracket",j[j.pageDown=34]="pageDown",j[j.pageUp=33]="pageUp",j[j.period=190]="period",j[j.print=44]="print",j[j.quote=222]="quote",j[j.scrollLock=145]="scrollLock",j[j.shift=16]="shift",j[j.space=32]="space",j[j.tab=9]="tab",j[j.tilde=192]="tilde",j[j.windowsLeft=91]="windowsLeft",j[j.windowsOpera=219]="windowsOpera",j[j.windowsRight=92]="windowsRight"})(KeyCodes||(KeyCodes={}));const keyArrowDown="ArrowDown",keyArrowLeft="ArrowLeft",keyArrowRight="ArrowRight",keyArrowUp="ArrowUp",keyEnter="Enter",keyEscape="Escape",keyHome="Home",keyEnd="End",keyFunction2="F2",keyPageDown="PageDown",keyPageUp="PageUp",keySpace=" ",keyTab="Tab",ArrowKeys={ArrowDown:keyArrowDown,ArrowLeft:keyArrowLeft,ArrowRight:keyArrowRight,ArrowUp:keyArrowUp};var Direction;(function(j){j.ltr="ltr",j.rtl="rtl"})(Direction||(Direction={}));function limit(j,_e,et){return Math.min(Math.max(et,j),_e)}function inRange(j,_e,et=0){return[_e,et]=[_e,et].sort((tt,rt)=>tt-rt),_e<=j&&jhtml`
${endSlotTemplate(j,_e)} -`;class ARIAGlobalStatesAndProperties{}__decorate([attr({attribute:"aria-atomic"})],ARIAGlobalStatesAndProperties.prototype,"ariaAtomic",void 0);__decorate([attr({attribute:"aria-busy"})],ARIAGlobalStatesAndProperties.prototype,"ariaBusy",void 0);__decorate([attr({attribute:"aria-controls"})],ARIAGlobalStatesAndProperties.prototype,"ariaControls",void 0);__decorate([attr({attribute:"aria-current"})],ARIAGlobalStatesAndProperties.prototype,"ariaCurrent",void 0);__decorate([attr({attribute:"aria-describedby"})],ARIAGlobalStatesAndProperties.prototype,"ariaDescribedby",void 0);__decorate([attr({attribute:"aria-details"})],ARIAGlobalStatesAndProperties.prototype,"ariaDetails",void 0);__decorate([attr({attribute:"aria-disabled"})],ARIAGlobalStatesAndProperties.prototype,"ariaDisabled",void 0);__decorate([attr({attribute:"aria-errormessage"})],ARIAGlobalStatesAndProperties.prototype,"ariaErrormessage",void 0);__decorate([attr({attribute:"aria-flowto"})],ARIAGlobalStatesAndProperties.prototype,"ariaFlowto",void 0);__decorate([attr({attribute:"aria-haspopup"})],ARIAGlobalStatesAndProperties.prototype,"ariaHaspopup",void 0);__decorate([attr({attribute:"aria-hidden"})],ARIAGlobalStatesAndProperties.prototype,"ariaHidden",void 0);__decorate([attr({attribute:"aria-invalid"})],ARIAGlobalStatesAndProperties.prototype,"ariaInvalid",void 0);__decorate([attr({attribute:"aria-keyshortcuts"})],ARIAGlobalStatesAndProperties.prototype,"ariaKeyshortcuts",void 0);__decorate([attr({attribute:"aria-label"})],ARIAGlobalStatesAndProperties.prototype,"ariaLabel",void 0);__decorate([attr({attribute:"aria-labelledby"})],ARIAGlobalStatesAndProperties.prototype,"ariaLabelledby",void 0);__decorate([attr({attribute:"aria-live"})],ARIAGlobalStatesAndProperties.prototype,"ariaLive",void 0);__decorate([attr({attribute:"aria-owns"})],ARIAGlobalStatesAndProperties.prototype,"ariaOwns",void 0);__decorate([attr({attribute:"aria-relevant"})],ARIAGlobalStatesAndProperties.prototype,"ariaRelevant",void 0);__decorate([attr({attribute:"aria-roledescription"})],ARIAGlobalStatesAndProperties.prototype,"ariaRoledescription",void 0);class Anchor extends FoundationElement{constructor(){super(...arguments),this.handleUnsupportedDelegatesFocus=()=>{var _e;window.ShadowRoot&&!window.ShadowRoot.prototype.hasOwnProperty("delegatesFocus")&&(!((_e=this.$fastController.definition.shadowOptions)===null||_e===void 0)&&_e.delegatesFocus)&&(this.focus=()=>{var et;(et=this.control)===null||et===void 0||et.focus()})}}connectedCallback(){super.connectedCallback(),this.handleUnsupportedDelegatesFocus()}}__decorate([attr],Anchor.prototype,"download",void 0);__decorate([attr],Anchor.prototype,"href",void 0);__decorate([attr],Anchor.prototype,"hreflang",void 0);__decorate([attr],Anchor.prototype,"ping",void 0);__decorate([attr],Anchor.prototype,"referrerpolicy",void 0);__decorate([attr],Anchor.prototype,"rel",void 0);__decorate([attr],Anchor.prototype,"target",void 0);__decorate([attr],Anchor.prototype,"type",void 0);__decorate([observable],Anchor.prototype,"defaultSlottedContent",void 0);class DelegatesARIALink{}__decorate([attr({attribute:"aria-expanded"})],DelegatesARIALink.prototype,"ariaExpanded",void 0);applyMixins(DelegatesARIALink,ARIAGlobalStatesAndProperties);applyMixins(Anchor,StartEnd,DelegatesARIALink);const getDirection=j=>{const _e=j.closest("[dir]");return _e!==null&&_e.dir==="rtl"?Direction.rtl:Direction.ltr},badgeTemplate=(j,_e)=>html$4` +`;class ARIAGlobalStatesAndProperties{}__decorate([attr({attribute:"aria-atomic"})],ARIAGlobalStatesAndProperties.prototype,"ariaAtomic",void 0);__decorate([attr({attribute:"aria-busy"})],ARIAGlobalStatesAndProperties.prototype,"ariaBusy",void 0);__decorate([attr({attribute:"aria-controls"})],ARIAGlobalStatesAndProperties.prototype,"ariaControls",void 0);__decorate([attr({attribute:"aria-current"})],ARIAGlobalStatesAndProperties.prototype,"ariaCurrent",void 0);__decorate([attr({attribute:"aria-describedby"})],ARIAGlobalStatesAndProperties.prototype,"ariaDescribedby",void 0);__decorate([attr({attribute:"aria-details"})],ARIAGlobalStatesAndProperties.prototype,"ariaDetails",void 0);__decorate([attr({attribute:"aria-disabled"})],ARIAGlobalStatesAndProperties.prototype,"ariaDisabled",void 0);__decorate([attr({attribute:"aria-errormessage"})],ARIAGlobalStatesAndProperties.prototype,"ariaErrormessage",void 0);__decorate([attr({attribute:"aria-flowto"})],ARIAGlobalStatesAndProperties.prototype,"ariaFlowto",void 0);__decorate([attr({attribute:"aria-haspopup"})],ARIAGlobalStatesAndProperties.prototype,"ariaHaspopup",void 0);__decorate([attr({attribute:"aria-hidden"})],ARIAGlobalStatesAndProperties.prototype,"ariaHidden",void 0);__decorate([attr({attribute:"aria-invalid"})],ARIAGlobalStatesAndProperties.prototype,"ariaInvalid",void 0);__decorate([attr({attribute:"aria-keyshortcuts"})],ARIAGlobalStatesAndProperties.prototype,"ariaKeyshortcuts",void 0);__decorate([attr({attribute:"aria-label"})],ARIAGlobalStatesAndProperties.prototype,"ariaLabel",void 0);__decorate([attr({attribute:"aria-labelledby"})],ARIAGlobalStatesAndProperties.prototype,"ariaLabelledby",void 0);__decorate([attr({attribute:"aria-live"})],ARIAGlobalStatesAndProperties.prototype,"ariaLive",void 0);__decorate([attr({attribute:"aria-owns"})],ARIAGlobalStatesAndProperties.prototype,"ariaOwns",void 0);__decorate([attr({attribute:"aria-relevant"})],ARIAGlobalStatesAndProperties.prototype,"ariaRelevant",void 0);__decorate([attr({attribute:"aria-roledescription"})],ARIAGlobalStatesAndProperties.prototype,"ariaRoledescription",void 0);class Anchor extends FoundationElement{constructor(){super(...arguments),this.handleUnsupportedDelegatesFocus=()=>{var _e;window.ShadowRoot&&!window.ShadowRoot.prototype.hasOwnProperty("delegatesFocus")&&(!((_e=this.$fastController.definition.shadowOptions)===null||_e===void 0)&&_e.delegatesFocus)&&(this.focus=()=>{var et;(et=this.control)===null||et===void 0||et.focus()})}}connectedCallback(){super.connectedCallback(),this.handleUnsupportedDelegatesFocus()}}__decorate([attr],Anchor.prototype,"download",void 0);__decorate([attr],Anchor.prototype,"href",void 0);__decorate([attr],Anchor.prototype,"hreflang",void 0);__decorate([attr],Anchor.prototype,"ping",void 0);__decorate([attr],Anchor.prototype,"referrerpolicy",void 0);__decorate([attr],Anchor.prototype,"rel",void 0);__decorate([attr],Anchor.prototype,"target",void 0);__decorate([attr],Anchor.prototype,"type",void 0);__decorate([observable],Anchor.prototype,"defaultSlottedContent",void 0);class DelegatesARIALink{}__decorate([attr({attribute:"aria-expanded"})],DelegatesARIALink.prototype,"ariaExpanded",void 0);applyMixins(DelegatesARIALink,ARIAGlobalStatesAndProperties);applyMixins(Anchor,StartEnd,DelegatesARIALink);const getDirection=j=>{const _e=j.closest("[dir]");return _e!==null&&_e.dir==="rtl"?Direction.rtl:Direction.ltr},badgeTemplate=(j,_e)=>html` -`;let Badge$1=class extends FoundationElement{constructor(){super(...arguments),this.generateBadgeStyle=()=>{if(!this.fill&&!this.color)return;const _e=`background-color: var(--badge-fill-${this.fill});`,et=`color: var(--badge-color-${this.color});`;return this.fill&&!this.color?_e:this.color&&!this.fill?et:`${et} ${_e}`}}};__decorate([attr({attribute:"fill"})],Badge$1.prototype,"fill",void 0);__decorate([attr({attribute:"color"})],Badge$1.prototype,"color",void 0);__decorate([attr({mode:"boolean"})],Badge$1.prototype,"circular",void 0);const buttonTemplate=(j,_e)=>html$4` +`;let Badge$1=class extends FoundationElement{constructor(){super(...arguments),this.generateBadgeStyle=()=>{if(!this.fill&&!this.color)return;const _e=`background-color: var(--badge-fill-${this.fill});`,et=`color: var(--badge-color-${this.color});`;return this.fill&&!this.color?_e:this.color&&!this.fill?et:`${et} ${_e}`}}};__decorate([attr({attribute:"fill"})],Badge$1.prototype,"fill",void 0);__decorate([attr({attribute:"color"})],Badge$1.prototype,"color",void 0);__decorate([attr({mode:"boolean"})],Badge$1.prototype,"circular",void 0);const buttonTemplate=(j,_e)=>html` -`,proxySlotName="form-associated-proxy",ElementInternalsKey="ElementInternals",supportsElementInternals=ElementInternalsKey in window&&"setFormValue"in window[ElementInternalsKey].prototype,InternalsMap=new WeakMap;function FormAssociated(j){const _e=class extends j{constructor(...et){super(...et),this.dirtyValue=!1,this.disabled=!1,this.proxyEventsToBlock=["change","click"],this.proxyInitialized=!1,this.required=!1,this.initialValue=this.initialValue||"",this.elementInternals||(this.formResetCallback=this.formResetCallback.bind(this))}static get formAssociated(){return supportsElementInternals}get validity(){return this.elementInternals?this.elementInternals.validity:this.proxy.validity}get form(){return this.elementInternals?this.elementInternals.form:this.proxy.form}get validationMessage(){return this.elementInternals?this.elementInternals.validationMessage:this.proxy.validationMessage}get willValidate(){return this.elementInternals?this.elementInternals.willValidate:this.proxy.willValidate}get labels(){if(this.elementInternals)return Object.freeze(Array.from(this.elementInternals.labels));if(this.proxy instanceof HTMLElement&&this.proxy.ownerDocument&&this.id){const et=this.proxy.labels,tt=Array.from(this.proxy.getRootNode().querySelectorAll(`[for='${this.id}']`)),rt=et?tt.concat(Array.from(et)):tt;return Object.freeze(rt)}else return emptyArray}valueChanged(et,tt){this.dirtyValue=!0,this.proxy instanceof HTMLElement&&(this.proxy.value=this.value),this.currentValue=this.value,this.setFormValue(this.value),this.validate()}currentValueChanged(){this.value=this.currentValue}initialValueChanged(et,tt){this.dirtyValue||(this.value=this.initialValue,this.dirtyValue=!1)}disabledChanged(et,tt){this.proxy instanceof HTMLElement&&(this.proxy.disabled=this.disabled),DOM.queueUpdate(()=>this.classList.toggle("disabled",this.disabled))}nameChanged(et,tt){this.proxy instanceof HTMLElement&&(this.proxy.name=this.name)}requiredChanged(et,tt){this.proxy instanceof HTMLElement&&(this.proxy.required=this.required),DOM.queueUpdate(()=>this.classList.toggle("required",this.required)),this.validate()}get elementInternals(){if(!supportsElementInternals)return null;let et=InternalsMap.get(this);return et||(et=this.attachInternals(),InternalsMap.set(this,et)),et}connectedCallback(){super.connectedCallback(),this.addEventListener("keypress",this._keypressHandler),this.value||(this.value=this.initialValue,this.dirtyValue=!1),this.elementInternals||(this.attachProxy(),this.form&&this.form.addEventListener("reset",this.formResetCallback))}disconnectedCallback(){super.disconnectedCallback(),this.proxyEventsToBlock.forEach(et=>this.proxy.removeEventListener(et,this.stopPropagation)),!this.elementInternals&&this.form&&this.form.removeEventListener("reset",this.formResetCallback)}checkValidity(){return this.elementInternals?this.elementInternals.checkValidity():this.proxy.checkValidity()}reportValidity(){return this.elementInternals?this.elementInternals.reportValidity():this.proxy.reportValidity()}setValidity(et,tt,rt){this.elementInternals?this.elementInternals.setValidity(et,tt,rt):typeof tt=="string"&&this.proxy.setCustomValidity(tt)}formDisabledCallback(et){this.disabled=et}formResetCallback(){this.value=this.initialValue,this.dirtyValue=!1}attachProxy(){var et;this.proxyInitialized||(this.proxyInitialized=!0,this.proxy.style.display="none",this.proxyEventsToBlock.forEach(tt=>this.proxy.addEventListener(tt,this.stopPropagation)),this.proxy.disabled=this.disabled,this.proxy.required=this.required,typeof this.name=="string"&&(this.proxy.name=this.name),typeof this.value=="string"&&(this.proxy.value=this.value),this.proxy.setAttribute("slot",proxySlotName),this.proxySlot=document.createElement("slot"),this.proxySlot.setAttribute("name",proxySlotName)),(et=this.shadowRoot)===null||et===void 0||et.appendChild(this.proxySlot),this.appendChild(this.proxy)}detachProxy(){var et;this.removeChild(this.proxy),(et=this.shadowRoot)===null||et===void 0||et.removeChild(this.proxySlot)}validate(et){this.proxy instanceof HTMLElement&&this.setValidity(this.proxy.validity,this.proxy.validationMessage,et)}setFormValue(et,tt){this.elementInternals&&this.elementInternals.setFormValue(et,tt||et)}_keypressHandler(et){switch(et.key){case keyEnter:if(this.form instanceof HTMLFormElement){const tt=this.form.querySelector("[type=submit]");tt==null||tt.click()}break}}stopPropagation(et){et.stopPropagation()}};return attr({mode:"boolean"})(_e.prototype,"disabled"),attr({mode:"fromView",attribute:"value"})(_e.prototype,"initialValue"),attr({attribute:"current-value"})(_e.prototype,"currentValue"),attr(_e.prototype,"name"),attr({mode:"boolean"})(_e.prototype,"required"),observable(_e.prototype,"value"),_e}function CheckableFormAssociated(j){class _e extends FormAssociated(j){}class et extends _e{constructor(...rt){super(rt),this.dirtyChecked=!1,this.checkedAttribute=!1,this.checked=!1,this.dirtyChecked=!1}checkedAttributeChanged(){this.defaultChecked=this.checkedAttribute}defaultCheckedChanged(){this.dirtyChecked||(this.checked=this.defaultChecked,this.dirtyChecked=!1)}checkedChanged(rt,nt){this.dirtyChecked||(this.dirtyChecked=!0),this.currentChecked=this.checked,this.updateForm(),this.proxy instanceof HTMLInputElement&&(this.proxy.checked=this.checked),rt!==void 0&&this.$emit("change"),this.validate()}currentCheckedChanged(rt,nt){this.checked=this.currentChecked}updateForm(){const rt=this.checked?this.value:null;this.setFormValue(rt,rt)}connectedCallback(){super.connectedCallback(),this.updateForm()}formResetCallback(){super.formResetCallback(),this.checked=!!this.checkedAttribute,this.dirtyChecked=!1}}return attr({attribute:"checked",mode:"boolean"})(et.prototype,"checkedAttribute"),attr({attribute:"current-checked",converter:booleanConverter})(et.prototype,"currentChecked"),observable(et.prototype,"defaultChecked"),observable(et.prototype,"checked"),et}class _Button extends FoundationElement{}class FormAssociatedButton extends FormAssociated(_Button){constructor(){super(...arguments),this.proxy=document.createElement("input")}}let Button$1=class extends FormAssociatedButton{constructor(){super(...arguments),this.handleClick=_e=>{var et;this.disabled&&((et=this.defaultSlottedContent)===null||et===void 0?void 0:et.length)<=1&&_e.stopPropagation()},this.handleSubmission=()=>{if(!this.form)return;const _e=this.proxy.isConnected;_e||this.attachProxy(),typeof this.form.requestSubmit=="function"?this.form.requestSubmit(this.proxy):this.proxy.click(),_e||this.detachProxy()},this.handleFormReset=()=>{var _e;(_e=this.form)===null||_e===void 0||_e.reset()},this.handleUnsupportedDelegatesFocus=()=>{var _e;window.ShadowRoot&&!window.ShadowRoot.prototype.hasOwnProperty("delegatesFocus")&&(!((_e=this.$fastController.definition.shadowOptions)===null||_e===void 0)&&_e.delegatesFocus)&&(this.focus=()=>{this.control.focus()})}}formactionChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formAction=this.formaction)}formenctypeChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formEnctype=this.formenctype)}formmethodChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formMethod=this.formmethod)}formnovalidateChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formNoValidate=this.formnovalidate)}formtargetChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formTarget=this.formtarget)}typeChanged(_e,et){this.proxy instanceof HTMLInputElement&&(this.proxy.type=this.type),et==="submit"&&this.addEventListener("click",this.handleSubmission),_e==="submit"&&this.removeEventListener("click",this.handleSubmission),et==="reset"&&this.addEventListener("click",this.handleFormReset),_e==="reset"&&this.removeEventListener("click",this.handleFormReset)}validate(){super.validate(this.control)}connectedCallback(){var _e;super.connectedCallback(),this.proxy.setAttribute("type",this.type),this.handleUnsupportedDelegatesFocus();const et=Array.from((_e=this.control)===null||_e===void 0?void 0:_e.children);et&&et.forEach(tt=>{tt.addEventListener("click",this.handleClick)})}disconnectedCallback(){var _e;super.disconnectedCallback();const et=Array.from((_e=this.control)===null||_e===void 0?void 0:_e.children);et&&et.forEach(tt=>{tt.removeEventListener("click",this.handleClick)})}};__decorate([attr({mode:"boolean"})],Button$1.prototype,"autofocus",void 0);__decorate([attr({attribute:"form"})],Button$1.prototype,"formId",void 0);__decorate([attr],Button$1.prototype,"formaction",void 0);__decorate([attr],Button$1.prototype,"formenctype",void 0);__decorate([attr],Button$1.prototype,"formmethod",void 0);__decorate([attr({mode:"boolean"})],Button$1.prototype,"formnovalidate",void 0);__decorate([attr],Button$1.prototype,"formtarget",void 0);__decorate([attr],Button$1.prototype,"type",void 0);__decorate([observable],Button$1.prototype,"defaultSlottedContent",void 0);class DelegatesARIAButton{}__decorate([attr({attribute:"aria-expanded"})],DelegatesARIAButton.prototype,"ariaExpanded",void 0);__decorate([attr({attribute:"aria-pressed"})],DelegatesARIAButton.prototype,"ariaPressed",void 0);applyMixins(DelegatesARIAButton,ARIAGlobalStatesAndProperties);applyMixins(Button$1,StartEnd,DelegatesARIAButton);const GenerateHeaderOptions={none:"none",default:"default",sticky:"sticky"},DataGridCellTypes={default:"default",columnHeader:"columnheader",rowHeader:"rowheader"},DataGridRowTypes={default:"default",header:"header",stickyHeader:"sticky-header"};let DataGridRow$1=class extends FoundationElement{constructor(){super(...arguments),this.rowType=DataGridRowTypes.default,this.rowData=null,this.columnDefinitions=null,this.isActiveRow=!1,this.cellsRepeatBehavior=null,this.cellsPlaceholder=null,this.focusColumnIndex=0,this.refocusOnLoad=!1,this.updateRowStyle=()=>{this.style.gridTemplateColumns=this.gridTemplateColumns}}gridTemplateColumnsChanged(){this.$fastController.isConnected&&this.updateRowStyle()}rowTypeChanged(){this.$fastController.isConnected&&this.updateItemTemplate()}rowDataChanged(){if(this.rowData!==null&&this.isActiveRow){this.refocusOnLoad=!0;return}}cellItemTemplateChanged(){this.updateItemTemplate()}headerCellItemTemplateChanged(){this.updateItemTemplate()}connectedCallback(){super.connectedCallback(),this.cellsRepeatBehavior===null&&(this.cellsPlaceholder=document.createComment(""),this.appendChild(this.cellsPlaceholder),this.updateItemTemplate(),this.cellsRepeatBehavior=new RepeatDirective(_e=>_e.columnDefinitions,_e=>_e.activeCellItemTemplate,{positioning:!0}).createBehavior(this.cellsPlaceholder),this.$fastController.addBehaviors([this.cellsRepeatBehavior])),this.addEventListener("cell-focused",this.handleCellFocus),this.addEventListener(eventFocusOut,this.handleFocusout),this.addEventListener(eventKeyDown,this.handleKeydown),this.updateRowStyle(),this.refocusOnLoad&&(this.refocusOnLoad=!1,this.cellElements.length>this.focusColumnIndex&&this.cellElements[this.focusColumnIndex].focus())}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("cell-focused",this.handleCellFocus),this.removeEventListener(eventFocusOut,this.handleFocusout),this.removeEventListener(eventKeyDown,this.handleKeydown)}handleFocusout(_e){this.contains(_e.target)||(this.isActiveRow=!1,this.focusColumnIndex=0)}handleCellFocus(_e){this.isActiveRow=!0,this.focusColumnIndex=this.cellElements.indexOf(_e.target),this.$emit("row-focused",this)}handleKeydown(_e){if(_e.defaultPrevented)return;let et=0;switch(_e.key){case keyArrowLeft:et=Math.max(0,this.focusColumnIndex-1),this.cellElements[et].focus(),_e.preventDefault();break;case keyArrowRight:et=Math.min(this.cellElements.length-1,this.focusColumnIndex+1),this.cellElements[et].focus(),_e.preventDefault();break;case keyHome:_e.ctrlKey||(this.cellElements[0].focus(),_e.preventDefault());break;case keyEnd:_e.ctrlKey||(this.cellElements[this.cellElements.length-1].focus(),_e.preventDefault());break}}updateItemTemplate(){this.activeCellItemTemplate=this.rowType===DataGridRowTypes.default&&this.cellItemTemplate!==void 0?this.cellItemTemplate:this.rowType===DataGridRowTypes.default&&this.cellItemTemplate===void 0?this.defaultCellItemTemplate:this.headerCellItemTemplate!==void 0?this.headerCellItemTemplate:this.defaultHeaderCellItemTemplate}};__decorate([attr({attribute:"grid-template-columns"})],DataGridRow$1.prototype,"gridTemplateColumns",void 0);__decorate([attr({attribute:"row-type"})],DataGridRow$1.prototype,"rowType",void 0);__decorate([observable],DataGridRow$1.prototype,"rowData",void 0);__decorate([observable],DataGridRow$1.prototype,"columnDefinitions",void 0);__decorate([observable],DataGridRow$1.prototype,"cellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"headerCellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"rowIndex",void 0);__decorate([observable],DataGridRow$1.prototype,"isActiveRow",void 0);__decorate([observable],DataGridRow$1.prototype,"activeCellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"defaultCellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"defaultHeaderCellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"cellElements",void 0);function createRowItemTemplate(j){const _e=j.tagFor(DataGridRow$1);return html$4` +`,proxySlotName="form-associated-proxy",ElementInternalsKey="ElementInternals",supportsElementInternals=ElementInternalsKey in window&&"setFormValue"in window[ElementInternalsKey].prototype,InternalsMap=new WeakMap;function FormAssociated(j){const _e=class extends j{constructor(...et){super(...et),this.dirtyValue=!1,this.disabled=!1,this.proxyEventsToBlock=["change","click"],this.proxyInitialized=!1,this.required=!1,this.initialValue=this.initialValue||"",this.elementInternals||(this.formResetCallback=this.formResetCallback.bind(this))}static get formAssociated(){return supportsElementInternals}get validity(){return this.elementInternals?this.elementInternals.validity:this.proxy.validity}get form(){return this.elementInternals?this.elementInternals.form:this.proxy.form}get validationMessage(){return this.elementInternals?this.elementInternals.validationMessage:this.proxy.validationMessage}get willValidate(){return this.elementInternals?this.elementInternals.willValidate:this.proxy.willValidate}get labels(){if(this.elementInternals)return Object.freeze(Array.from(this.elementInternals.labels));if(this.proxy instanceof HTMLElement&&this.proxy.ownerDocument&&this.id){const et=this.proxy.labels,tt=Array.from(this.proxy.getRootNode().querySelectorAll(`[for='${this.id}']`)),rt=et?tt.concat(Array.from(et)):tt;return Object.freeze(rt)}else return emptyArray}valueChanged(et,tt){this.dirtyValue=!0,this.proxy instanceof HTMLElement&&(this.proxy.value=this.value),this.currentValue=this.value,this.setFormValue(this.value),this.validate()}currentValueChanged(){this.value=this.currentValue}initialValueChanged(et,tt){this.dirtyValue||(this.value=this.initialValue,this.dirtyValue=!1)}disabledChanged(et,tt){this.proxy instanceof HTMLElement&&(this.proxy.disabled=this.disabled),DOM.queueUpdate(()=>this.classList.toggle("disabled",this.disabled))}nameChanged(et,tt){this.proxy instanceof HTMLElement&&(this.proxy.name=this.name)}requiredChanged(et,tt){this.proxy instanceof HTMLElement&&(this.proxy.required=this.required),DOM.queueUpdate(()=>this.classList.toggle("required",this.required)),this.validate()}get elementInternals(){if(!supportsElementInternals)return null;let et=InternalsMap.get(this);return et||(et=this.attachInternals(),InternalsMap.set(this,et)),et}connectedCallback(){super.connectedCallback(),this.addEventListener("keypress",this._keypressHandler),this.value||(this.value=this.initialValue,this.dirtyValue=!1),this.elementInternals||(this.attachProxy(),this.form&&this.form.addEventListener("reset",this.formResetCallback))}disconnectedCallback(){super.disconnectedCallback(),this.proxyEventsToBlock.forEach(et=>this.proxy.removeEventListener(et,this.stopPropagation)),!this.elementInternals&&this.form&&this.form.removeEventListener("reset",this.formResetCallback)}checkValidity(){return this.elementInternals?this.elementInternals.checkValidity():this.proxy.checkValidity()}reportValidity(){return this.elementInternals?this.elementInternals.reportValidity():this.proxy.reportValidity()}setValidity(et,tt,rt){this.elementInternals?this.elementInternals.setValidity(et,tt,rt):typeof tt=="string"&&this.proxy.setCustomValidity(tt)}formDisabledCallback(et){this.disabled=et}formResetCallback(){this.value=this.initialValue,this.dirtyValue=!1}attachProxy(){var et;this.proxyInitialized||(this.proxyInitialized=!0,this.proxy.style.display="none",this.proxyEventsToBlock.forEach(tt=>this.proxy.addEventListener(tt,this.stopPropagation)),this.proxy.disabled=this.disabled,this.proxy.required=this.required,typeof this.name=="string"&&(this.proxy.name=this.name),typeof this.value=="string"&&(this.proxy.value=this.value),this.proxy.setAttribute("slot",proxySlotName),this.proxySlot=document.createElement("slot"),this.proxySlot.setAttribute("name",proxySlotName)),(et=this.shadowRoot)===null||et===void 0||et.appendChild(this.proxySlot),this.appendChild(this.proxy)}detachProxy(){var et;this.removeChild(this.proxy),(et=this.shadowRoot)===null||et===void 0||et.removeChild(this.proxySlot)}validate(et){this.proxy instanceof HTMLElement&&this.setValidity(this.proxy.validity,this.proxy.validationMessage,et)}setFormValue(et,tt){this.elementInternals&&this.elementInternals.setFormValue(et,tt||et)}_keypressHandler(et){switch(et.key){case keyEnter:if(this.form instanceof HTMLFormElement){const tt=this.form.querySelector("[type=submit]");tt==null||tt.click()}break}}stopPropagation(et){et.stopPropagation()}};return attr({mode:"boolean"})(_e.prototype,"disabled"),attr({mode:"fromView",attribute:"value"})(_e.prototype,"initialValue"),attr({attribute:"current-value"})(_e.prototype,"currentValue"),attr(_e.prototype,"name"),attr({mode:"boolean"})(_e.prototype,"required"),observable(_e.prototype,"value"),_e}function CheckableFormAssociated(j){class _e extends FormAssociated(j){}class et extends _e{constructor(...rt){super(rt),this.dirtyChecked=!1,this.checkedAttribute=!1,this.checked=!1,this.dirtyChecked=!1}checkedAttributeChanged(){this.defaultChecked=this.checkedAttribute}defaultCheckedChanged(){this.dirtyChecked||(this.checked=this.defaultChecked,this.dirtyChecked=!1)}checkedChanged(rt,nt){this.dirtyChecked||(this.dirtyChecked=!0),this.currentChecked=this.checked,this.updateForm(),this.proxy instanceof HTMLInputElement&&(this.proxy.checked=this.checked),rt!==void 0&&this.$emit("change"),this.validate()}currentCheckedChanged(rt,nt){this.checked=this.currentChecked}updateForm(){const rt=this.checked?this.value:null;this.setFormValue(rt,rt)}connectedCallback(){super.connectedCallback(),this.updateForm()}formResetCallback(){super.formResetCallback(),this.checked=!!this.checkedAttribute,this.dirtyChecked=!1}}return attr({attribute:"checked",mode:"boolean"})(et.prototype,"checkedAttribute"),attr({attribute:"current-checked",converter:booleanConverter})(et.prototype,"currentChecked"),observable(et.prototype,"defaultChecked"),observable(et.prototype,"checked"),et}class _Button extends FoundationElement{}class FormAssociatedButton extends FormAssociated(_Button){constructor(){super(...arguments),this.proxy=document.createElement("input")}}let Button$1=class extends FormAssociatedButton{constructor(){super(...arguments),this.handleClick=_e=>{var et;this.disabled&&((et=this.defaultSlottedContent)===null||et===void 0?void 0:et.length)<=1&&_e.stopPropagation()},this.handleSubmission=()=>{if(!this.form)return;const _e=this.proxy.isConnected;_e||this.attachProxy(),typeof this.form.requestSubmit=="function"?this.form.requestSubmit(this.proxy):this.proxy.click(),_e||this.detachProxy()},this.handleFormReset=()=>{var _e;(_e=this.form)===null||_e===void 0||_e.reset()},this.handleUnsupportedDelegatesFocus=()=>{var _e;window.ShadowRoot&&!window.ShadowRoot.prototype.hasOwnProperty("delegatesFocus")&&(!((_e=this.$fastController.definition.shadowOptions)===null||_e===void 0)&&_e.delegatesFocus)&&(this.focus=()=>{this.control.focus()})}}formactionChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formAction=this.formaction)}formenctypeChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formEnctype=this.formenctype)}formmethodChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formMethod=this.formmethod)}formnovalidateChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formNoValidate=this.formnovalidate)}formtargetChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formTarget=this.formtarget)}typeChanged(_e,et){this.proxy instanceof HTMLInputElement&&(this.proxy.type=this.type),et==="submit"&&this.addEventListener("click",this.handleSubmission),_e==="submit"&&this.removeEventListener("click",this.handleSubmission),et==="reset"&&this.addEventListener("click",this.handleFormReset),_e==="reset"&&this.removeEventListener("click",this.handleFormReset)}validate(){super.validate(this.control)}connectedCallback(){var _e;super.connectedCallback(),this.proxy.setAttribute("type",this.type),this.handleUnsupportedDelegatesFocus();const et=Array.from((_e=this.control)===null||_e===void 0?void 0:_e.children);et&&et.forEach(tt=>{tt.addEventListener("click",this.handleClick)})}disconnectedCallback(){var _e;super.disconnectedCallback();const et=Array.from((_e=this.control)===null||_e===void 0?void 0:_e.children);et&&et.forEach(tt=>{tt.removeEventListener("click",this.handleClick)})}};__decorate([attr({mode:"boolean"})],Button$1.prototype,"autofocus",void 0);__decorate([attr({attribute:"form"})],Button$1.prototype,"formId",void 0);__decorate([attr],Button$1.prototype,"formaction",void 0);__decorate([attr],Button$1.prototype,"formenctype",void 0);__decorate([attr],Button$1.prototype,"formmethod",void 0);__decorate([attr({mode:"boolean"})],Button$1.prototype,"formnovalidate",void 0);__decorate([attr],Button$1.prototype,"formtarget",void 0);__decorate([attr],Button$1.prototype,"type",void 0);__decorate([observable],Button$1.prototype,"defaultSlottedContent",void 0);class DelegatesARIAButton{}__decorate([attr({attribute:"aria-expanded"})],DelegatesARIAButton.prototype,"ariaExpanded",void 0);__decorate([attr({attribute:"aria-pressed"})],DelegatesARIAButton.prototype,"ariaPressed",void 0);applyMixins(DelegatesARIAButton,ARIAGlobalStatesAndProperties);applyMixins(Button$1,StartEnd,DelegatesARIAButton);const GenerateHeaderOptions={none:"none",default:"default",sticky:"sticky"},DataGridCellTypes={default:"default",columnHeader:"columnheader",rowHeader:"rowheader"},DataGridRowTypes={default:"default",header:"header",stickyHeader:"sticky-header"};let DataGridRow$1=class extends FoundationElement{constructor(){super(...arguments),this.rowType=DataGridRowTypes.default,this.rowData=null,this.columnDefinitions=null,this.isActiveRow=!1,this.cellsRepeatBehavior=null,this.cellsPlaceholder=null,this.focusColumnIndex=0,this.refocusOnLoad=!1,this.updateRowStyle=()=>{this.style.gridTemplateColumns=this.gridTemplateColumns}}gridTemplateColumnsChanged(){this.$fastController.isConnected&&this.updateRowStyle()}rowTypeChanged(){this.$fastController.isConnected&&this.updateItemTemplate()}rowDataChanged(){if(this.rowData!==null&&this.isActiveRow){this.refocusOnLoad=!0;return}}cellItemTemplateChanged(){this.updateItemTemplate()}headerCellItemTemplateChanged(){this.updateItemTemplate()}connectedCallback(){super.connectedCallback(),this.cellsRepeatBehavior===null&&(this.cellsPlaceholder=document.createComment(""),this.appendChild(this.cellsPlaceholder),this.updateItemTemplate(),this.cellsRepeatBehavior=new RepeatDirective(_e=>_e.columnDefinitions,_e=>_e.activeCellItemTemplate,{positioning:!0}).createBehavior(this.cellsPlaceholder),this.$fastController.addBehaviors([this.cellsRepeatBehavior])),this.addEventListener("cell-focused",this.handleCellFocus),this.addEventListener(eventFocusOut,this.handleFocusout),this.addEventListener(eventKeyDown,this.handleKeydown),this.updateRowStyle(),this.refocusOnLoad&&(this.refocusOnLoad=!1,this.cellElements.length>this.focusColumnIndex&&this.cellElements[this.focusColumnIndex].focus())}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("cell-focused",this.handleCellFocus),this.removeEventListener(eventFocusOut,this.handleFocusout),this.removeEventListener(eventKeyDown,this.handleKeydown)}handleFocusout(_e){this.contains(_e.target)||(this.isActiveRow=!1,this.focusColumnIndex=0)}handleCellFocus(_e){this.isActiveRow=!0,this.focusColumnIndex=this.cellElements.indexOf(_e.target),this.$emit("row-focused",this)}handleKeydown(_e){if(_e.defaultPrevented)return;let et=0;switch(_e.key){case keyArrowLeft:et=Math.max(0,this.focusColumnIndex-1),this.cellElements[et].focus(),_e.preventDefault();break;case keyArrowRight:et=Math.min(this.cellElements.length-1,this.focusColumnIndex+1),this.cellElements[et].focus(),_e.preventDefault();break;case keyHome:_e.ctrlKey||(this.cellElements[0].focus(),_e.preventDefault());break;case keyEnd:_e.ctrlKey||(this.cellElements[this.cellElements.length-1].focus(),_e.preventDefault());break}}updateItemTemplate(){this.activeCellItemTemplate=this.rowType===DataGridRowTypes.default&&this.cellItemTemplate!==void 0?this.cellItemTemplate:this.rowType===DataGridRowTypes.default&&this.cellItemTemplate===void 0?this.defaultCellItemTemplate:this.headerCellItemTemplate!==void 0?this.headerCellItemTemplate:this.defaultHeaderCellItemTemplate}};__decorate([attr({attribute:"grid-template-columns"})],DataGridRow$1.prototype,"gridTemplateColumns",void 0);__decorate([attr({attribute:"row-type"})],DataGridRow$1.prototype,"rowType",void 0);__decorate([observable],DataGridRow$1.prototype,"rowData",void 0);__decorate([observable],DataGridRow$1.prototype,"columnDefinitions",void 0);__decorate([observable],DataGridRow$1.prototype,"cellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"headerCellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"rowIndex",void 0);__decorate([observable],DataGridRow$1.prototype,"isActiveRow",void 0);__decorate([observable],DataGridRow$1.prototype,"activeCellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"defaultCellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"defaultHeaderCellItemTemplate",void 0);__decorate([observable],DataGridRow$1.prototype,"cellElements",void 0);function createRowItemTemplate(j){const _e=j.tagFor(DataGridRow$1);return html` <${_e} :rowData="${et=>et}" :cellItemTemplate="${(et,tt)=>tt.parent.cellItemTemplate}" :headerCellItemTemplate="${(et,tt)=>tt.parent.headerCellItemTemplate}" > -`}const dataGridTemplate=(j,_e)=>{const et=createRowItemTemplate(j),tt=j.tagFor(DataGridRow$1);return html$4` +`}const dataGridTemplate=(j,_e)=>{const et=createRowItemTemplate(j),tt=j.tagFor(DataGridRow$1);return html` - `};let DataGrid$1=class Wp extends FoundationElement{constructor(){super(),this.noTabbing=!1,this.generateHeader=GenerateHeaderOptions.default,this.rowsData=[],this.columnDefinitions=null,this.focusRowIndex=0,this.focusColumnIndex=0,this.rowsPlaceholder=null,this.generatedHeader=null,this.isUpdatingFocus=!1,this.pendingFocusUpdate=!1,this.rowindexUpdateQueued=!1,this.columnDefinitionsStale=!0,this.generatedGridTemplateColumns="",this.focusOnCell=(_e,et,tt)=>{if(this.rowElements.length===0){this.focusRowIndex=0,this.focusColumnIndex=0;return}const rt=Math.max(0,Math.min(this.rowElements.length-1,_e)),ot=this.rowElements[rt].querySelectorAll('[role="cell"], [role="gridcell"], [role="columnheader"], [role="rowheader"]'),it=Math.max(0,Math.min(ot.length-1,et)),st=ot[it];tt&&this.scrollHeight!==this.clientHeight&&(rt0||rt>this.focusRowIndex&&this.scrollTop{_e&&_e.length&&(_e.forEach(tt=>{tt.addedNodes.forEach(rt=>{rt.nodeType===1&&rt.getAttribute("role")==="row"&&(rt.columnDefinitions=this.columnDefinitions)})}),this.queueRowIndexUpdate())},this.queueRowIndexUpdate=()=>{this.rowindexUpdateQueued||(this.rowindexUpdateQueued=!0,DOM.queueUpdate(this.updateRowIndexes))},this.updateRowIndexes=()=>{let _e=this.gridTemplateColumns;if(_e===void 0){if(this.generatedGridTemplateColumns===""&&this.rowElements.length>0){const et=this.rowElements[0];this.generatedGridTemplateColumns=new Array(et.cellElements.length).fill("1fr").join(" ")}_e=this.generatedGridTemplateColumns}this.rowElements.forEach((et,tt)=>{const rt=et;rt.rowIndex=tt,rt.gridTemplateColumns=_e,this.columnDefinitionsStale&&(rt.columnDefinitions=this.columnDefinitions)}),this.rowindexUpdateQueued=!1,this.columnDefinitionsStale=!1}}static generateTemplateColumns(_e){let et="";return _e.forEach(tt=>{et=`${et}${et===""?"":" "}1fr`}),et}noTabbingChanged(){this.$fastController.isConnected&&(this.noTabbing?this.setAttribute("tabIndex","-1"):this.setAttribute("tabIndex",this.contains(document.activeElement)||this===document.activeElement?"-1":"0"))}generateHeaderChanged(){this.$fastController.isConnected&&this.toggleGeneratedHeader()}gridTemplateColumnsChanged(){this.$fastController.isConnected&&this.updateRowIndexes()}rowsDataChanged(){this.columnDefinitions===null&&this.rowsData.length>0&&(this.columnDefinitions=Wp.generateColumns(this.rowsData[0])),this.$fastController.isConnected&&this.toggleGeneratedHeader()}columnDefinitionsChanged(){if(this.columnDefinitions===null){this.generatedGridTemplateColumns="";return}this.generatedGridTemplateColumns=Wp.generateTemplateColumns(this.columnDefinitions),this.$fastController.isConnected&&(this.columnDefinitionsStale=!0,this.queueRowIndexUpdate())}headerCellItemTemplateChanged(){this.$fastController.isConnected&&this.generatedHeader!==null&&(this.generatedHeader.headerCellItemTemplate=this.headerCellItemTemplate)}focusRowIndexChanged(){this.$fastController.isConnected&&this.queueFocusUpdate()}focusColumnIndexChanged(){this.$fastController.isConnected&&this.queueFocusUpdate()}connectedCallback(){super.connectedCallback(),this.rowItemTemplate===void 0&&(this.rowItemTemplate=this.defaultRowItemTemplate),this.rowsPlaceholder=document.createComment(""),this.appendChild(this.rowsPlaceholder),this.toggleGeneratedHeader(),this.rowsRepeatBehavior=new RepeatDirective(_e=>_e.rowsData,_e=>_e.rowItemTemplate,{positioning:!0}).createBehavior(this.rowsPlaceholder),this.$fastController.addBehaviors([this.rowsRepeatBehavior]),this.addEventListener("row-focused",this.handleRowFocus),this.addEventListener(eventFocus,this.handleFocus),this.addEventListener(eventKeyDown,this.handleKeydown),this.addEventListener(eventFocusOut,this.handleFocusOut),this.observer=new MutationObserver(this.onChildListChange),this.observer.observe(this,{childList:!0}),this.noTabbing&&this.setAttribute("tabindex","-1"),DOM.queueUpdate(this.queueRowIndexUpdate)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("row-focused",this.handleRowFocus),this.removeEventListener(eventFocus,this.handleFocus),this.removeEventListener(eventKeyDown,this.handleKeydown),this.removeEventListener(eventFocusOut,this.handleFocusOut),this.observer.disconnect(),this.rowsPlaceholder=null,this.generatedHeader=null}handleRowFocus(_e){this.isUpdatingFocus=!0;const et=_e.target;this.focusRowIndex=this.rowElements.indexOf(et),this.focusColumnIndex=et.focusColumnIndex,this.setAttribute("tabIndex","-1"),this.isUpdatingFocus=!1}handleFocus(_e){this.focusOnCell(this.focusRowIndex,this.focusColumnIndex,!0)}handleFocusOut(_e){(_e.relatedTarget===null||!this.contains(_e.relatedTarget))&&this.setAttribute("tabIndex",this.noTabbing?"-1":"0")}handleKeydown(_e){if(_e.defaultPrevented)return;let et;const tt=this.rowElements.length-1,rt=this.offsetHeight+this.scrollTop,nt=this.rowElements[tt];switch(_e.key){case keyArrowUp:_e.preventDefault(),this.focusOnCell(this.focusRowIndex-1,this.focusColumnIndex,!0);break;case keyArrowDown:_e.preventDefault(),this.focusOnCell(this.focusRowIndex+1,this.focusColumnIndex,!0);break;case keyPageUp:if(_e.preventDefault(),this.rowElements.length===0){this.focusOnCell(0,0,!1);break}if(this.focusRowIndex===0){this.focusOnCell(0,this.focusColumnIndex,!1);return}for(et=this.focusRowIndex-1,et;et>=0;et--){const ot=this.rowElements[et];if(ot.offsetTop=tt||nt.offsetTop+nt.offsetHeight<=rt){this.focusOnCell(tt,this.focusColumnIndex,!1);return}for(et=this.focusRowIndex+1,et;et<=tt;et++){const ot=this.rowElements[et];if(ot.offsetTop+ot.offsetHeight>rt){let it=0;this.generateHeader===GenerateHeaderOptions.sticky&&this.generatedHeader!==null&&(it=this.generatedHeader.clientHeight),this.scrollTop=ot.offsetTop-it;break}}this.focusOnCell(et,this.focusColumnIndex,!1);break;case keyHome:_e.ctrlKey&&(_e.preventDefault(),this.focusOnCell(0,0,!0));break;case keyEnd:_e.ctrlKey&&this.columnDefinitions!==null&&(_e.preventDefault(),this.focusOnCell(this.rowElements.length-1,this.columnDefinitions.length-1,!0));break}}queueFocusUpdate(){this.isUpdatingFocus&&(this.contains(document.activeElement)||this===document.activeElement)||this.pendingFocusUpdate===!1&&(this.pendingFocusUpdate=!0,DOM.queueUpdate(()=>this.updateFocus()))}updateFocus(){this.pendingFocusUpdate=!1,this.focusOnCell(this.focusRowIndex,this.focusColumnIndex,!0)}toggleGeneratedHeader(){if(this.generatedHeader!==null&&(this.removeChild(this.generatedHeader),this.generatedHeader=null),this.generateHeader!==GenerateHeaderOptions.none&&this.rowsData.length>0){const _e=document.createElement(this.rowElementTag);this.generatedHeader=_e,this.generatedHeader.columnDefinitions=this.columnDefinitions,this.generatedHeader.gridTemplateColumns=this.gridTemplateColumns,this.generatedHeader.rowType=this.generateHeader===GenerateHeaderOptions.sticky?DataGridRowTypes.stickyHeader:DataGridRowTypes.header,(this.firstChild!==null||this.rowsPlaceholder!==null)&&this.insertBefore(_e,this.firstChild!==null?this.firstChild:this.rowsPlaceholder);return}}};DataGrid$1.generateColumns=j=>Object.getOwnPropertyNames(j).map((_e,et)=>({columnDataKey:_e,gridColumn:`${et}`}));__decorate([attr({attribute:"no-tabbing",mode:"boolean"})],DataGrid$1.prototype,"noTabbing",void 0);__decorate([attr({attribute:"generate-header"})],DataGrid$1.prototype,"generateHeader",void 0);__decorate([attr({attribute:"grid-template-columns"})],DataGrid$1.prototype,"gridTemplateColumns",void 0);__decorate([observable],DataGrid$1.prototype,"rowsData",void 0);__decorate([observable],DataGrid$1.prototype,"columnDefinitions",void 0);__decorate([observable],DataGrid$1.prototype,"rowItemTemplate",void 0);__decorate([observable],DataGrid$1.prototype,"cellItemTemplate",void 0);__decorate([observable],DataGrid$1.prototype,"headerCellItemTemplate",void 0);__decorate([observable],DataGrid$1.prototype,"focusRowIndex",void 0);__decorate([observable],DataGrid$1.prototype,"focusColumnIndex",void 0);__decorate([observable],DataGrid$1.prototype,"defaultRowItemTemplate",void 0);__decorate([observable],DataGrid$1.prototype,"rowElementTag",void 0);__decorate([observable],DataGrid$1.prototype,"rowElements",void 0);const defaultCellContentsTemplate=html$4` + `};let DataGrid$1=class Vp extends FoundationElement{constructor(){super(),this.noTabbing=!1,this.generateHeader=GenerateHeaderOptions.default,this.rowsData=[],this.columnDefinitions=null,this.focusRowIndex=0,this.focusColumnIndex=0,this.rowsPlaceholder=null,this.generatedHeader=null,this.isUpdatingFocus=!1,this.pendingFocusUpdate=!1,this.rowindexUpdateQueued=!1,this.columnDefinitionsStale=!0,this.generatedGridTemplateColumns="",this.focusOnCell=(_e,et,tt)=>{if(this.rowElements.length===0){this.focusRowIndex=0,this.focusColumnIndex=0;return}const rt=Math.max(0,Math.min(this.rowElements.length-1,_e)),ot=this.rowElements[rt].querySelectorAll('[role="cell"], [role="gridcell"], [role="columnheader"], [role="rowheader"]'),it=Math.max(0,Math.min(ot.length-1,et)),st=ot[it];tt&&this.scrollHeight!==this.clientHeight&&(rt0||rt>this.focusRowIndex&&this.scrollTop{_e&&_e.length&&(_e.forEach(tt=>{tt.addedNodes.forEach(rt=>{rt.nodeType===1&&rt.getAttribute("role")==="row"&&(rt.columnDefinitions=this.columnDefinitions)})}),this.queueRowIndexUpdate())},this.queueRowIndexUpdate=()=>{this.rowindexUpdateQueued||(this.rowindexUpdateQueued=!0,DOM.queueUpdate(this.updateRowIndexes))},this.updateRowIndexes=()=>{let _e=this.gridTemplateColumns;if(_e===void 0){if(this.generatedGridTemplateColumns===""&&this.rowElements.length>0){const et=this.rowElements[0];this.generatedGridTemplateColumns=new Array(et.cellElements.length).fill("1fr").join(" ")}_e=this.generatedGridTemplateColumns}this.rowElements.forEach((et,tt)=>{const rt=et;rt.rowIndex=tt,rt.gridTemplateColumns=_e,this.columnDefinitionsStale&&(rt.columnDefinitions=this.columnDefinitions)}),this.rowindexUpdateQueued=!1,this.columnDefinitionsStale=!1}}static generateTemplateColumns(_e){let et="";return _e.forEach(tt=>{et=`${et}${et===""?"":" "}1fr`}),et}noTabbingChanged(){this.$fastController.isConnected&&(this.noTabbing?this.setAttribute("tabIndex","-1"):this.setAttribute("tabIndex",this.contains(document.activeElement)||this===document.activeElement?"-1":"0"))}generateHeaderChanged(){this.$fastController.isConnected&&this.toggleGeneratedHeader()}gridTemplateColumnsChanged(){this.$fastController.isConnected&&this.updateRowIndexes()}rowsDataChanged(){this.columnDefinitions===null&&this.rowsData.length>0&&(this.columnDefinitions=Vp.generateColumns(this.rowsData[0])),this.$fastController.isConnected&&this.toggleGeneratedHeader()}columnDefinitionsChanged(){if(this.columnDefinitions===null){this.generatedGridTemplateColumns="";return}this.generatedGridTemplateColumns=Vp.generateTemplateColumns(this.columnDefinitions),this.$fastController.isConnected&&(this.columnDefinitionsStale=!0,this.queueRowIndexUpdate())}headerCellItemTemplateChanged(){this.$fastController.isConnected&&this.generatedHeader!==null&&(this.generatedHeader.headerCellItemTemplate=this.headerCellItemTemplate)}focusRowIndexChanged(){this.$fastController.isConnected&&this.queueFocusUpdate()}focusColumnIndexChanged(){this.$fastController.isConnected&&this.queueFocusUpdate()}connectedCallback(){super.connectedCallback(),this.rowItemTemplate===void 0&&(this.rowItemTemplate=this.defaultRowItemTemplate),this.rowsPlaceholder=document.createComment(""),this.appendChild(this.rowsPlaceholder),this.toggleGeneratedHeader(),this.rowsRepeatBehavior=new RepeatDirective(_e=>_e.rowsData,_e=>_e.rowItemTemplate,{positioning:!0}).createBehavior(this.rowsPlaceholder),this.$fastController.addBehaviors([this.rowsRepeatBehavior]),this.addEventListener("row-focused",this.handleRowFocus),this.addEventListener(eventFocus,this.handleFocus),this.addEventListener(eventKeyDown,this.handleKeydown),this.addEventListener(eventFocusOut,this.handleFocusOut),this.observer=new MutationObserver(this.onChildListChange),this.observer.observe(this,{childList:!0}),this.noTabbing&&this.setAttribute("tabindex","-1"),DOM.queueUpdate(this.queueRowIndexUpdate)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("row-focused",this.handleRowFocus),this.removeEventListener(eventFocus,this.handleFocus),this.removeEventListener(eventKeyDown,this.handleKeydown),this.removeEventListener(eventFocusOut,this.handleFocusOut),this.observer.disconnect(),this.rowsPlaceholder=null,this.generatedHeader=null}handleRowFocus(_e){this.isUpdatingFocus=!0;const et=_e.target;this.focusRowIndex=this.rowElements.indexOf(et),this.focusColumnIndex=et.focusColumnIndex,this.setAttribute("tabIndex","-1"),this.isUpdatingFocus=!1}handleFocus(_e){this.focusOnCell(this.focusRowIndex,this.focusColumnIndex,!0)}handleFocusOut(_e){(_e.relatedTarget===null||!this.contains(_e.relatedTarget))&&this.setAttribute("tabIndex",this.noTabbing?"-1":"0")}handleKeydown(_e){if(_e.defaultPrevented)return;let et;const tt=this.rowElements.length-1,rt=this.offsetHeight+this.scrollTop,nt=this.rowElements[tt];switch(_e.key){case keyArrowUp:_e.preventDefault(),this.focusOnCell(this.focusRowIndex-1,this.focusColumnIndex,!0);break;case keyArrowDown:_e.preventDefault(),this.focusOnCell(this.focusRowIndex+1,this.focusColumnIndex,!0);break;case keyPageUp:if(_e.preventDefault(),this.rowElements.length===0){this.focusOnCell(0,0,!1);break}if(this.focusRowIndex===0){this.focusOnCell(0,this.focusColumnIndex,!1);return}for(et=this.focusRowIndex-1,et;et>=0;et--){const ot=this.rowElements[et];if(ot.offsetTop=tt||nt.offsetTop+nt.offsetHeight<=rt){this.focusOnCell(tt,this.focusColumnIndex,!1);return}for(et=this.focusRowIndex+1,et;et<=tt;et++){const ot=this.rowElements[et];if(ot.offsetTop+ot.offsetHeight>rt){let it=0;this.generateHeader===GenerateHeaderOptions.sticky&&this.generatedHeader!==null&&(it=this.generatedHeader.clientHeight),this.scrollTop=ot.offsetTop-it;break}}this.focusOnCell(et,this.focusColumnIndex,!1);break;case keyHome:_e.ctrlKey&&(_e.preventDefault(),this.focusOnCell(0,0,!0));break;case keyEnd:_e.ctrlKey&&this.columnDefinitions!==null&&(_e.preventDefault(),this.focusOnCell(this.rowElements.length-1,this.columnDefinitions.length-1,!0));break}}queueFocusUpdate(){this.isUpdatingFocus&&(this.contains(document.activeElement)||this===document.activeElement)||this.pendingFocusUpdate===!1&&(this.pendingFocusUpdate=!0,DOM.queueUpdate(()=>this.updateFocus()))}updateFocus(){this.pendingFocusUpdate=!1,this.focusOnCell(this.focusRowIndex,this.focusColumnIndex,!0)}toggleGeneratedHeader(){if(this.generatedHeader!==null&&(this.removeChild(this.generatedHeader),this.generatedHeader=null),this.generateHeader!==GenerateHeaderOptions.none&&this.rowsData.length>0){const _e=document.createElement(this.rowElementTag);this.generatedHeader=_e,this.generatedHeader.columnDefinitions=this.columnDefinitions,this.generatedHeader.gridTemplateColumns=this.gridTemplateColumns,this.generatedHeader.rowType=this.generateHeader===GenerateHeaderOptions.sticky?DataGridRowTypes.stickyHeader:DataGridRowTypes.header,(this.firstChild!==null||this.rowsPlaceholder!==null)&&this.insertBefore(_e,this.firstChild!==null?this.firstChild:this.rowsPlaceholder);return}}};DataGrid$1.generateColumns=j=>Object.getOwnPropertyNames(j).map((_e,et)=>({columnDataKey:_e,gridColumn:`${et}`}));__decorate([attr({attribute:"no-tabbing",mode:"boolean"})],DataGrid$1.prototype,"noTabbing",void 0);__decorate([attr({attribute:"generate-header"})],DataGrid$1.prototype,"generateHeader",void 0);__decorate([attr({attribute:"grid-template-columns"})],DataGrid$1.prototype,"gridTemplateColumns",void 0);__decorate([observable],DataGrid$1.prototype,"rowsData",void 0);__decorate([observable],DataGrid$1.prototype,"columnDefinitions",void 0);__decorate([observable],DataGrid$1.prototype,"rowItemTemplate",void 0);__decorate([observable],DataGrid$1.prototype,"cellItemTemplate",void 0);__decorate([observable],DataGrid$1.prototype,"headerCellItemTemplate",void 0);__decorate([observable],DataGrid$1.prototype,"focusRowIndex",void 0);__decorate([observable],DataGrid$1.prototype,"focusColumnIndex",void 0);__decorate([observable],DataGrid$1.prototype,"defaultRowItemTemplate",void 0);__decorate([observable],DataGrid$1.prototype,"rowElementTag",void 0);__decorate([observable],DataGrid$1.prototype,"rowElements",void 0);const defaultCellContentsTemplate=html` -`,defaultHeaderCellContentsTemplate=html$4` +`,defaultHeaderCellContentsTemplate=html` -`;let DataGridCell$1=class extends FoundationElement{constructor(){super(...arguments),this.cellType=DataGridCellTypes.default,this.rowData=null,this.columnDefinition=null,this.isActiveCell=!1,this.customCellView=null,this.updateCellStyle=()=>{this.style.gridColumn=this.gridColumn}}cellTypeChanged(){this.$fastController.isConnected&&this.updateCellView()}gridColumnChanged(){this.$fastController.isConnected&&this.updateCellStyle()}columnDefinitionChanged(_e,et){this.$fastController.isConnected&&this.updateCellView()}connectedCallback(){var _e;super.connectedCallback(),this.addEventListener(eventFocusIn,this.handleFocusin),this.addEventListener(eventFocusOut,this.handleFocusout),this.addEventListener(eventKeyDown,this.handleKeydown),this.style.gridColumn=`${((_e=this.columnDefinition)===null||_e===void 0?void 0:_e.gridColumn)===void 0?0:this.columnDefinition.gridColumn}`,this.updateCellView(),this.updateCellStyle()}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(eventFocusIn,this.handleFocusin),this.removeEventListener(eventFocusOut,this.handleFocusout),this.removeEventListener(eventKeyDown,this.handleKeydown),this.disconnectCellView()}handleFocusin(_e){if(!this.isActiveCell){switch(this.isActiveCell=!0,this.cellType){case DataGridCellTypes.columnHeader:if(this.columnDefinition!==null&&this.columnDefinition.headerCellInternalFocusQueue!==!0&&typeof this.columnDefinition.headerCellFocusTargetCallback=="function"){const et=this.columnDefinition.headerCellFocusTargetCallback(this);et!==null&&et.focus()}break;default:if(this.columnDefinition!==null&&this.columnDefinition.cellInternalFocusQueue!==!0&&typeof this.columnDefinition.cellFocusTargetCallback=="function"){const et=this.columnDefinition.cellFocusTargetCallback(this);et!==null&&et.focus()}break}this.$emit("cell-focused",this)}}handleFocusout(_e){this!==document.activeElement&&!this.contains(document.activeElement)&&(this.isActiveCell=!1)}handleKeydown(_e){if(!(_e.defaultPrevented||this.columnDefinition===null||this.cellType===DataGridCellTypes.default&&this.columnDefinition.cellInternalFocusQueue!==!0||this.cellType===DataGridCellTypes.columnHeader&&this.columnDefinition.headerCellInternalFocusQueue!==!0))switch(_e.key){case keyEnter:case keyFunction2:if(this.contains(document.activeElement)&&document.activeElement!==this)return;switch(this.cellType){case DataGridCellTypes.columnHeader:if(this.columnDefinition.headerCellFocusTargetCallback!==void 0){const et=this.columnDefinition.headerCellFocusTargetCallback(this);et!==null&&et.focus(),_e.preventDefault()}break;default:if(this.columnDefinition.cellFocusTargetCallback!==void 0){const et=this.columnDefinition.cellFocusTargetCallback(this);et!==null&&et.focus(),_e.preventDefault()}break}break;case keyEscape:this.contains(document.activeElement)&&document.activeElement!==this&&(this.focus(),_e.preventDefault());break}}updateCellView(){if(this.disconnectCellView(),this.columnDefinition!==null)switch(this.cellType){case DataGridCellTypes.columnHeader:this.columnDefinition.headerCellTemplate!==void 0?this.customCellView=this.columnDefinition.headerCellTemplate.render(this,this):this.customCellView=defaultHeaderCellContentsTemplate.render(this,this);break;case void 0:case DataGridCellTypes.rowHeader:case DataGridCellTypes.default:this.columnDefinition.cellTemplate!==void 0?this.customCellView=this.columnDefinition.cellTemplate.render(this,this):this.customCellView=defaultCellContentsTemplate.render(this,this);break}}disconnectCellView(){this.customCellView!==null&&(this.customCellView.dispose(),this.customCellView=null)}};__decorate([attr({attribute:"cell-type"})],DataGridCell$1.prototype,"cellType",void 0);__decorate([attr({attribute:"grid-column"})],DataGridCell$1.prototype,"gridColumn",void 0);__decorate([observable],DataGridCell$1.prototype,"rowData",void 0);__decorate([observable],DataGridCell$1.prototype,"columnDefinition",void 0);function createCellItemTemplate(j){const _e=j.tagFor(DataGridCell$1);return html$4` +`;let DataGridCell$1=class extends FoundationElement{constructor(){super(...arguments),this.cellType=DataGridCellTypes.default,this.rowData=null,this.columnDefinition=null,this.isActiveCell=!1,this.customCellView=null,this.updateCellStyle=()=>{this.style.gridColumn=this.gridColumn}}cellTypeChanged(){this.$fastController.isConnected&&this.updateCellView()}gridColumnChanged(){this.$fastController.isConnected&&this.updateCellStyle()}columnDefinitionChanged(_e,et){this.$fastController.isConnected&&this.updateCellView()}connectedCallback(){var _e;super.connectedCallback(),this.addEventListener(eventFocusIn,this.handleFocusin),this.addEventListener(eventFocusOut,this.handleFocusout),this.addEventListener(eventKeyDown,this.handleKeydown),this.style.gridColumn=`${((_e=this.columnDefinition)===null||_e===void 0?void 0:_e.gridColumn)===void 0?0:this.columnDefinition.gridColumn}`,this.updateCellView(),this.updateCellStyle()}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(eventFocusIn,this.handleFocusin),this.removeEventListener(eventFocusOut,this.handleFocusout),this.removeEventListener(eventKeyDown,this.handleKeydown),this.disconnectCellView()}handleFocusin(_e){if(!this.isActiveCell){switch(this.isActiveCell=!0,this.cellType){case DataGridCellTypes.columnHeader:if(this.columnDefinition!==null&&this.columnDefinition.headerCellInternalFocusQueue!==!0&&typeof this.columnDefinition.headerCellFocusTargetCallback=="function"){const et=this.columnDefinition.headerCellFocusTargetCallback(this);et!==null&&et.focus()}break;default:if(this.columnDefinition!==null&&this.columnDefinition.cellInternalFocusQueue!==!0&&typeof this.columnDefinition.cellFocusTargetCallback=="function"){const et=this.columnDefinition.cellFocusTargetCallback(this);et!==null&&et.focus()}break}this.$emit("cell-focused",this)}}handleFocusout(_e){this!==document.activeElement&&!this.contains(document.activeElement)&&(this.isActiveCell=!1)}handleKeydown(_e){if(!(_e.defaultPrevented||this.columnDefinition===null||this.cellType===DataGridCellTypes.default&&this.columnDefinition.cellInternalFocusQueue!==!0||this.cellType===DataGridCellTypes.columnHeader&&this.columnDefinition.headerCellInternalFocusQueue!==!0))switch(_e.key){case keyEnter:case keyFunction2:if(this.contains(document.activeElement)&&document.activeElement!==this)return;switch(this.cellType){case DataGridCellTypes.columnHeader:if(this.columnDefinition.headerCellFocusTargetCallback!==void 0){const et=this.columnDefinition.headerCellFocusTargetCallback(this);et!==null&&et.focus(),_e.preventDefault()}break;default:if(this.columnDefinition.cellFocusTargetCallback!==void 0){const et=this.columnDefinition.cellFocusTargetCallback(this);et!==null&&et.focus(),_e.preventDefault()}break}break;case keyEscape:this.contains(document.activeElement)&&document.activeElement!==this&&(this.focus(),_e.preventDefault());break}}updateCellView(){if(this.disconnectCellView(),this.columnDefinition!==null)switch(this.cellType){case DataGridCellTypes.columnHeader:this.columnDefinition.headerCellTemplate!==void 0?this.customCellView=this.columnDefinition.headerCellTemplate.render(this,this):this.customCellView=defaultHeaderCellContentsTemplate.render(this,this);break;case void 0:case DataGridCellTypes.rowHeader:case DataGridCellTypes.default:this.columnDefinition.cellTemplate!==void 0?this.customCellView=this.columnDefinition.cellTemplate.render(this,this):this.customCellView=defaultCellContentsTemplate.render(this,this);break}}disconnectCellView(){this.customCellView!==null&&(this.customCellView.dispose(),this.customCellView=null)}};__decorate([attr({attribute:"cell-type"})],DataGridCell$1.prototype,"cellType",void 0);__decorate([attr({attribute:"grid-column"})],DataGridCell$1.prototype,"gridColumn",void 0);__decorate([observable],DataGridCell$1.prototype,"rowData",void 0);__decorate([observable],DataGridCell$1.prototype,"columnDefinition",void 0);function createCellItemTemplate(j){const _e=j.tagFor(DataGridCell$1);return html` <${_e} cell-type="${et=>et.isRowHeader?"rowheader":void 0}" grid-column="${(et,tt)=>tt.index+1}" :rowData="${(et,tt)=>tt.parent.rowData}" :columnDefinition="${et=>et}" > -`}function createHeaderCellItemTemplate(j){const _e=j.tagFor(DataGridCell$1);return html$4` +`}function createHeaderCellItemTemplate(j){const _e=j.tagFor(DataGridCell$1);return html` <${_e} cell-type="columnheader" grid-column="${(et,tt)=>tt.index+1}" :columnDefinition="${et=>et}" > -`}const dataGridRowTemplate=(j,_e)=>{const et=createCellItemTemplate(j),tt=createHeaderCellItemTemplate(j);return html$4` +`}const dataGridRowTemplate=(j,_e)=>{const et=createCellItemTemplate(j),tt=createHeaderCellItemTemplate(j);return html` - `},dataGridCellTemplate=(j,_e)=>html$4` + `},dataGridCellTemplate=(j,_e)=>html` - `,checkboxTemplate=(j,_e)=>html$4` + `,checkboxTemplate=(j,_e)=>html` -`;class _Checkbox extends FoundationElement{}class FormAssociatedCheckbox extends CheckableFormAssociated(_Checkbox){constructor(){super(...arguments),this.proxy=document.createElement("input")}}let Checkbox$1=class extends FormAssociatedCheckbox{constructor(){super(),this.initialValue="on",this.indeterminate=!1,this.keypressHandler=_e=>{if(!this.readOnly)switch(_e.key){case keySpace:this.indeterminate&&(this.indeterminate=!1),this.checked=!this.checked;break}},this.clickHandler=_e=>{!this.disabled&&!this.readOnly&&(this.indeterminate&&(this.indeterminate=!1),this.checked=!this.checked)},this.proxy.setAttribute("type","checkbox")}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly)}};__decorate([attr({attribute:"readonly",mode:"boolean"})],Checkbox$1.prototype,"readOnly",void 0);__decorate([observable],Checkbox$1.prototype,"defaultSlottedNodes",void 0);__decorate([observable],Checkbox$1.prototype,"indeterminate",void 0);function isListboxOption(j){return isHTMLElement$1(j)&&(j.getAttribute("role")==="option"||j instanceof HTMLOptionElement)}class ListboxOption extends FoundationElement{constructor(_e,et,tt,rt){super(),this.defaultSelected=!1,this.dirtySelected=!1,this.selected=this.defaultSelected,this.dirtyValue=!1,_e&&(this.textContent=_e),et&&(this.initialValue=et),tt&&(this.defaultSelected=tt),rt&&(this.selected=rt),this.proxy=new Option(`${this.textContent}`,this.initialValue,this.defaultSelected,this.selected),this.proxy.disabled=this.disabled}checkedChanged(_e,et){if(typeof et=="boolean"){this.ariaChecked=et?"true":"false";return}this.ariaChecked=null}contentChanged(_e,et){this.proxy instanceof HTMLOptionElement&&(this.proxy.textContent=this.textContent),this.$emit("contentchange",null,{bubbles:!0})}defaultSelectedChanged(){this.dirtySelected||(this.selected=this.defaultSelected,this.proxy instanceof HTMLOptionElement&&(this.proxy.selected=this.defaultSelected))}disabledChanged(_e,et){this.ariaDisabled=this.disabled?"true":"false",this.proxy instanceof HTMLOptionElement&&(this.proxy.disabled=this.disabled)}selectedAttributeChanged(){this.defaultSelected=this.selectedAttribute,this.proxy instanceof HTMLOptionElement&&(this.proxy.defaultSelected=this.defaultSelected)}selectedChanged(){this.ariaSelected=this.selected?"true":"false",this.dirtySelected||(this.dirtySelected=!0),this.proxy instanceof HTMLOptionElement&&(this.proxy.selected=this.selected)}initialValueChanged(_e,et){this.dirtyValue||(this.value=this.initialValue,this.dirtyValue=!1)}get label(){var _e;return(_e=this.value)!==null&&_e!==void 0?_e:this.text}get text(){var _e,et;return(et=(_e=this.textContent)===null||_e===void 0?void 0:_e.replace(/\s+/g," ").trim())!==null&&et!==void 0?et:""}set value(_e){const et=`${_e??""}`;this._value=et,this.dirtyValue=!0,this.proxy instanceof HTMLOptionElement&&(this.proxy.value=et),Observable$1.notify(this,"value")}get value(){var _e;return Observable$1.track(this,"value"),(_e=this._value)!==null&&_e!==void 0?_e:this.text}get form(){return this.proxy?this.proxy.form:null}}__decorate([observable],ListboxOption.prototype,"checked",void 0);__decorate([observable],ListboxOption.prototype,"content",void 0);__decorate([observable],ListboxOption.prototype,"defaultSelected",void 0);__decorate([attr({mode:"boolean"})],ListboxOption.prototype,"disabled",void 0);__decorate([attr({attribute:"selected",mode:"boolean"})],ListboxOption.prototype,"selectedAttribute",void 0);__decorate([observable],ListboxOption.prototype,"selected",void 0);__decorate([attr({attribute:"value",mode:"fromView"})],ListboxOption.prototype,"initialValue",void 0);class DelegatesARIAListboxOption{}__decorate([observable],DelegatesARIAListboxOption.prototype,"ariaChecked",void 0);__decorate([observable],DelegatesARIAListboxOption.prototype,"ariaPosInSet",void 0);__decorate([observable],DelegatesARIAListboxOption.prototype,"ariaSelected",void 0);__decorate([observable],DelegatesARIAListboxOption.prototype,"ariaSetSize",void 0);applyMixins(DelegatesARIAListboxOption,ARIAGlobalStatesAndProperties);applyMixins(ListboxOption,StartEnd,DelegatesARIAListboxOption);class Listbox extends FoundationElement{constructor(){super(...arguments),this._options=[],this.selectedIndex=-1,this.selectedOptions=[],this.shouldSkipFocus=!1,this.typeaheadBuffer="",this.typeaheadExpired=!0,this.typeaheadTimeout=-1}get firstSelectedOption(){var _e;return(_e=this.selectedOptions[0])!==null&&_e!==void 0?_e:null}get hasSelectableOptions(){return this.options.length>0&&!this.options.every(_e=>_e.disabled)}get length(){var _e,et;return(et=(_e=this.options)===null||_e===void 0?void 0:_e.length)!==null&&et!==void 0?et:0}get options(){return Observable$1.track(this,"options"),this._options}set options(_e){this._options=_e,Observable$1.notify(this,"options")}get typeAheadExpired(){return this.typeaheadExpired}set typeAheadExpired(_e){this.typeaheadExpired=_e}clickHandler(_e){const et=_e.target.closest("option,[role=option]");if(et&&!et.disabled)return this.selectedIndex=this.options.indexOf(et),!0}focusAndScrollOptionIntoView(_e=this.firstSelectedOption){this.contains(document.activeElement)&&_e!==null&&(_e.focus(),requestAnimationFrame(()=>{_e.scrollIntoView({block:"nearest"})}))}focusinHandler(_e){!this.shouldSkipFocus&&_e.target===_e.currentTarget&&(this.setSelectedOptions(),this.focusAndScrollOptionIntoView()),this.shouldSkipFocus=!1}getTypeaheadMatches(){const _e=this.typeaheadBuffer.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&"),et=new RegExp(`^${_e}`,"gi");return this.options.filter(tt=>tt.text.trim().match(et))}getSelectableIndex(_e=this.selectedIndex,et){const tt=_e>et?-1:_e!ot&&!it.disabled&&st!ot&&!it.disabled&&st>rt?it:ot,nt);break}}return this.options.indexOf(nt)}handleChange(_e,et){switch(et){case"selected":{Listbox.slottedOptionFilter(_e)&&(this.selectedIndex=this.options.indexOf(_e)),this.setSelectedOptions();break}}}handleTypeAhead(_e){this.typeaheadTimeout&&window.clearTimeout(this.typeaheadTimeout),this.typeaheadTimeout=window.setTimeout(()=>this.typeaheadExpired=!0,Listbox.TYPE_AHEAD_TIMEOUT_MS),!(_e.length>1)&&(this.typeaheadBuffer=`${this.typeaheadExpired?"":this.typeaheadBuffer}${_e}`)}keydownHandler(_e){if(this.disabled)return!0;this.shouldSkipFocus=!1;const et=_e.key;switch(et){case keyHome:{_e.shiftKey||(_e.preventDefault(),this.selectFirstOption());break}case keyArrowDown:{_e.shiftKey||(_e.preventDefault(),this.selectNextOption());break}case keyArrowUp:{_e.shiftKey||(_e.preventDefault(),this.selectPreviousOption());break}case keyEnd:{_e.preventDefault(),this.selectLastOption();break}case keyTab:return this.focusAndScrollOptionIntoView(),!0;case keyEnter:case keyEscape:return!0;case keySpace:if(this.typeaheadExpired)return!0;default:return et.length===1&&this.handleTypeAhead(`${et}`),!0}}mousedownHandler(_e){return this.shouldSkipFocus=!this.contains(document.activeElement),!0}multipleChanged(_e,et){this.ariaMultiSelectable=et?"true":null}selectedIndexChanged(_e,et){var tt;if(!this.hasSelectableOptions){this.selectedIndex=-1;return}if(!((tt=this.options[this.selectedIndex])===null||tt===void 0)&&tt.disabled&&typeof _e=="number"){const rt=this.getSelectableIndex(_e,et),nt=rt>-1?rt:_e;this.selectedIndex=nt,et===nt&&this.selectedIndexChanged(et,nt);return}this.setSelectedOptions()}selectedOptionsChanged(_e,et){var tt;const rt=et.filter(Listbox.slottedOptionFilter);(tt=this.options)===null||tt===void 0||tt.forEach(nt=>{const ot=Observable$1.getNotifier(nt);ot.unsubscribe(this,"selected"),nt.selected=rt.includes(nt),ot.subscribe(this,"selected")})}selectFirstOption(){var _e,et;this.disabled||(this.selectedIndex=(et=(_e=this.options)===null||_e===void 0?void 0:_e.findIndex(tt=>!tt.disabled))!==null&&et!==void 0?et:-1)}selectLastOption(){this.disabled||(this.selectedIndex=findLastIndex(this.options,_e=>!_e.disabled))}selectNextOption(){!this.disabled&&this.selectedIndex0&&(this.selectedIndex=this.selectedIndex-1)}setDefaultSelectedOption(){var _e,et;this.selectedIndex=(et=(_e=this.options)===null||_e===void 0?void 0:_e.findIndex(tt=>tt.defaultSelected))!==null&&et!==void 0?et:-1}setSelectedOptions(){var _e,et,tt;!((_e=this.options)===null||_e===void 0)&&_e.length&&(this.selectedOptions=[this.options[this.selectedIndex]],this.ariaActiveDescendant=(tt=(et=this.firstSelectedOption)===null||et===void 0?void 0:et.id)!==null&&tt!==void 0?tt:"",this.focusAndScrollOptionIntoView())}slottedOptionsChanged(_e,et){this.options=et.reduce((rt,nt)=>(isListboxOption(nt)&&rt.push(nt),rt),[]);const tt=`${this.options.length}`;this.options.forEach((rt,nt)=>{rt.id||(rt.id=uniqueId$1("option-")),rt.ariaPosInSet=`${nt+1}`,rt.ariaSetSize=tt}),this.$fastController.isConnected&&(this.setSelectedOptions(),this.setDefaultSelectedOption())}typeaheadBufferChanged(_e,et){if(this.$fastController.isConnected){const tt=this.getTypeaheadMatches();if(tt.length){const rt=this.options.indexOf(tt[0]);rt>-1&&(this.selectedIndex=rt)}this.typeaheadExpired=!1}}}Listbox.slottedOptionFilter=j=>isListboxOption(j)&&!j.hidden;Listbox.TYPE_AHEAD_TIMEOUT_MS=1e3;__decorate([attr({mode:"boolean"})],Listbox.prototype,"disabled",void 0);__decorate([observable],Listbox.prototype,"selectedIndex",void 0);__decorate([observable],Listbox.prototype,"selectedOptions",void 0);__decorate([observable],Listbox.prototype,"slottedOptions",void 0);__decorate([observable],Listbox.prototype,"typeaheadBuffer",void 0);class DelegatesARIAListbox{}__decorate([observable],DelegatesARIAListbox.prototype,"ariaActiveDescendant",void 0);__decorate([observable],DelegatesARIAListbox.prototype,"ariaDisabled",void 0);__decorate([observable],DelegatesARIAListbox.prototype,"ariaExpanded",void 0);__decorate([observable],DelegatesARIAListbox.prototype,"ariaMultiSelectable",void 0);applyMixins(DelegatesARIAListbox,ARIAGlobalStatesAndProperties);applyMixins(Listbox,DelegatesARIAListbox);const SelectPosition={above:"above",below:"below"};function composedParent(j){const _e=j.parentElement;if(_e)return _e;{const et=j.getRootNode();if(et.host instanceof HTMLElement)return et.host}return null}function composedContains(j,_e){let et=_e;for(;et!==null;){if(et===j)return!0;et=composedParent(et)}return!1}const defaultElement=document.createElement("div");function isFastElement(j){return j instanceof FASTElement}class QueuedStyleSheetTarget{setProperty(_e,et){DOM.queueUpdate(()=>this.target.setProperty(_e,et))}removeProperty(_e){DOM.queueUpdate(()=>this.target.removeProperty(_e))}}class ConstructableStyleSheetTarget extends QueuedStyleSheetTarget{constructor(_e){super();const et=new CSSStyleSheet;this.target=et.cssRules[et.insertRule(":host{}")].style,_e.$fastController.addStyles(ElementStyles.create([et]))}}class DocumentStyleSheetTarget extends QueuedStyleSheetTarget{constructor(){super();const _e=new CSSStyleSheet;this.target=_e.cssRules[_e.insertRule(":root{}")].style,document.adoptedStyleSheets=[...document.adoptedStyleSheets,_e]}}class HeadStyleElementStyleSheetTarget extends QueuedStyleSheetTarget{constructor(){super(),this.style=document.createElement("style"),document.head.appendChild(this.style);const{sheet:_e}=this.style;if(_e){const et=_e.insertRule(":root{}",_e.cssRules.length);this.target=_e.cssRules[et].style}}}class StyleElementStyleSheetTarget{constructor(_e){this.store=new Map,this.target=null;const et=_e.$fastController;this.style=document.createElement("style"),et.addStyles(this.style),Observable$1.getNotifier(et).subscribe(this,"isConnected"),this.handleChange(et,"isConnected")}targetChanged(){if(this.target!==null)for(const[_e,et]of this.store.entries())this.target.setProperty(_e,et)}setProperty(_e,et){this.store.set(_e,et),DOM.queueUpdate(()=>{this.target!==null&&this.target.setProperty(_e,et)})}removeProperty(_e){this.store.delete(_e),DOM.queueUpdate(()=>{this.target!==null&&this.target.removeProperty(_e)})}handleChange(_e,et){const{sheet:tt}=this.style;if(tt){const rt=tt.insertRule(":host{}",tt.cssRules.length);this.target=tt.cssRules[rt].style}else this.target=null}}__decorate([observable],StyleElementStyleSheetTarget.prototype,"target",void 0);class ElementStyleSheetTarget{constructor(_e){this.target=_e.style}setProperty(_e,et){DOM.queueUpdate(()=>this.target.setProperty(_e,et))}removeProperty(_e){DOM.queueUpdate(()=>this.target.removeProperty(_e))}}class RootStyleSheetTarget{setProperty(_e,et){RootStyleSheetTarget.properties[_e]=et;for(const tt of RootStyleSheetTarget.roots.values())PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(tt)).setProperty(_e,et)}removeProperty(_e){delete RootStyleSheetTarget.properties[_e];for(const et of RootStyleSheetTarget.roots.values())PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(et)).removeProperty(_e)}static registerRoot(_e){const{roots:et}=RootStyleSheetTarget;if(!et.has(_e)){et.add(_e);const tt=PropertyTargetManager.getOrCreate(this.normalizeRoot(_e));for(const rt in RootStyleSheetTarget.properties)tt.setProperty(rt,RootStyleSheetTarget.properties[rt])}}static unregisterRoot(_e){const{roots:et}=RootStyleSheetTarget;if(et.has(_e)){et.delete(_e);const tt=PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(_e));for(const rt in RootStyleSheetTarget.properties)tt.removeProperty(rt)}}static normalizeRoot(_e){return _e===defaultElement?document:_e}}RootStyleSheetTarget.roots=new Set;RootStyleSheetTarget.properties={};const propertyTargetCache=new WeakMap,propertyTargetCtor=DOM.supportsAdoptedStyleSheets?ConstructableStyleSheetTarget:StyleElementStyleSheetTarget,PropertyTargetManager=Object.freeze({getOrCreate(j){if(propertyTargetCache.has(j))return propertyTargetCache.get(j);let _e;return j===defaultElement?_e=new RootStyleSheetTarget:j instanceof Document?_e=DOM.supportsAdoptedStyleSheets?new DocumentStyleSheetTarget:new HeadStyleElementStyleSheetTarget:isFastElement(j)?_e=new propertyTargetCtor(j):_e=new ElementStyleSheetTarget(j),propertyTargetCache.set(j,_e),_e}});class DesignTokenImpl extends CSSDirective{constructor(_e){super(),this.subscribers=new WeakMap,this._appliedTo=new Set,this.name=_e.name,_e.cssCustomPropertyName!==null&&(this.cssCustomProperty=`--${_e.cssCustomPropertyName}`,this.cssVar=`var(${this.cssCustomProperty})`),this.id=DesignTokenImpl.uniqueId(),DesignTokenImpl.tokensById.set(this.id,this)}get appliedTo(){return[...this._appliedTo]}static from(_e){return new DesignTokenImpl({name:typeof _e=="string"?_e:_e.name,cssCustomPropertyName:typeof _e=="string"?_e:_e.cssCustomPropertyName===void 0?_e.name:_e.cssCustomPropertyName})}static isCSSDesignToken(_e){return typeof _e.cssCustomProperty=="string"}static isDerivedDesignTokenValue(_e){return typeof _e=="function"}static getTokenById(_e){return DesignTokenImpl.tokensById.get(_e)}getOrCreateSubscriberSet(_e=this){return this.subscribers.get(_e)||this.subscribers.set(_e,new Set)&&this.subscribers.get(_e)}createCSS(){return this.cssVar||""}getValueFor(_e){const et=DesignTokenNode.getOrCreate(_e).get(this);if(et!==void 0)return et;throw new Error(`Value could not be retrieved for token named "${this.name}". Ensure the value is set for ${_e} or an ancestor of ${_e}.`)}setValueFor(_e,et){return this._appliedTo.add(_e),et instanceof DesignTokenImpl&&(et=this.alias(et)),DesignTokenNode.getOrCreate(_e).set(this,et),this}deleteValueFor(_e){return this._appliedTo.delete(_e),DesignTokenNode.existsFor(_e)&&DesignTokenNode.getOrCreate(_e).delete(this),this}withDefault(_e){return this.setValueFor(defaultElement,_e),this}subscribe(_e,et){const tt=this.getOrCreateSubscriberSet(et);et&&!DesignTokenNode.existsFor(et)&&DesignTokenNode.getOrCreate(et),tt.has(_e)||tt.add(_e)}unsubscribe(_e,et){const tt=this.subscribers.get(et||this);tt&&tt.has(_e)&&tt.delete(_e)}notify(_e){const et=Object.freeze({token:this,target:_e});this.subscribers.has(this)&&this.subscribers.get(this).forEach(tt=>tt.handleChange(et)),this.subscribers.has(_e)&&this.subscribers.get(_e).forEach(tt=>tt.handleChange(et))}alias(_e){return et=>_e.getValueFor(et)}}DesignTokenImpl.uniqueId=(()=>{let j=0;return()=>(j++,j.toString(16))})();DesignTokenImpl.tokensById=new Map;class CustomPropertyReflector{startReflection(_e,et){_e.subscribe(this,et),this.handleChange({token:_e,target:et})}stopReflection(_e,et){_e.unsubscribe(this,et),this.remove(_e,et)}handleChange(_e){const{token:et,target:tt}=_e;this.add(et,tt)}add(_e,et){PropertyTargetManager.getOrCreate(et).setProperty(_e.cssCustomProperty,this.resolveCSSValue(DesignTokenNode.getOrCreate(et).get(_e)))}remove(_e,et){PropertyTargetManager.getOrCreate(et).removeProperty(_e.cssCustomProperty)}resolveCSSValue(_e){return _e&&typeof _e.createCSS=="function"?_e.createCSS():_e}}class DesignTokenBindingObserver{constructor(_e,et,tt){this.source=_e,this.token=et,this.node=tt,this.dependencies=new Set,this.observer=Observable$1.binding(_e,this,!1),this.observer.handleChange=this.observer.call,this.handleChange()}disconnect(){this.observer.disconnect()}handleChange(){this.node.store.set(this.token,this.observer.observe(this.node.target,defaultExecutionContext))}}class Store{constructor(){this.values=new Map}set(_e,et){this.values.get(_e)!==et&&(this.values.set(_e,et),Observable$1.getNotifier(this).notify(_e.id))}get(_e){return Observable$1.track(this,_e.id),this.values.get(_e)}delete(_e){this.values.delete(_e)}all(){return this.values.entries()}}const nodeCache=new WeakMap,childToParent=new WeakMap;class DesignTokenNode{constructor(_e){this.target=_e,this.store=new Store,this.children=[],this.assignedValues=new Map,this.reflecting=new Set,this.bindingObservers=new Map,this.tokenValueChangeHandler={handleChange:(et,tt)=>{const rt=DesignTokenImpl.getTokenById(tt);if(rt&&(rt.notify(this.target),DesignTokenImpl.isCSSDesignToken(rt))){const nt=this.parent,ot=this.isReflecting(rt);if(nt){const it=nt.get(rt),st=et.get(rt);it!==st&&!ot?this.reflectToCSS(rt):it===st&&ot&&this.stopReflectToCSS(rt)}else ot||this.reflectToCSS(rt)}}},nodeCache.set(_e,this),Observable$1.getNotifier(this.store).subscribe(this.tokenValueChangeHandler),_e instanceof FASTElement?_e.$fastController.addBehaviors([this]):_e.isConnected&&this.bind()}static getOrCreate(_e){return nodeCache.get(_e)||new DesignTokenNode(_e)}static existsFor(_e){return nodeCache.has(_e)}static findParent(_e){if(defaultElement!==_e.target){let et=composedParent(_e.target);for(;et!==null;){if(nodeCache.has(et))return nodeCache.get(et);et=composedParent(et)}return DesignTokenNode.getOrCreate(defaultElement)}return null}static findClosestAssignedNode(_e,et){let tt=et;do{if(tt.has(_e))return tt;tt=tt.parent?tt.parent:tt.target!==defaultElement?DesignTokenNode.getOrCreate(defaultElement):null}while(tt!==null);return null}get parent(){return childToParent.get(this)||null}has(_e){return this.assignedValues.has(_e)}get(_e){const et=this.store.get(_e);if(et!==void 0)return et;const tt=this.getRaw(_e);if(tt!==void 0)return this.hydrate(_e,tt),this.get(_e)}getRaw(_e){var et;return this.assignedValues.has(_e)?this.assignedValues.get(_e):(et=DesignTokenNode.findClosestAssignedNode(_e,this))===null||et===void 0?void 0:et.getRaw(_e)}set(_e,et){DesignTokenImpl.isDerivedDesignTokenValue(this.assignedValues.get(_e))&&this.tearDownBindingObserver(_e),this.assignedValues.set(_e,et),DesignTokenImpl.isDerivedDesignTokenValue(et)?this.setupBindingObserver(_e,et):this.store.set(_e,et)}delete(_e){this.assignedValues.delete(_e),this.tearDownBindingObserver(_e);const et=this.getRaw(_e);et?this.hydrate(_e,et):this.store.delete(_e)}bind(){const _e=DesignTokenNode.findParent(this);_e&&_e.appendChild(this);for(const et of this.assignedValues.keys())et.notify(this.target)}unbind(){this.parent&&childToParent.get(this).removeChild(this)}appendChild(_e){_e.parent&&childToParent.get(_e).removeChild(_e);const et=this.children.filter(tt=>_e.contains(tt));childToParent.set(_e,this),this.children.push(_e),et.forEach(tt=>_e.appendChild(tt)),Observable$1.getNotifier(this.store).subscribe(_e);for(const[tt,rt]of this.store.all())_e.hydrate(tt,this.bindingObservers.has(tt)?this.getRaw(tt):rt)}removeChild(_e){const et=this.children.indexOf(_e);return et!==-1&&this.children.splice(et,1),Observable$1.getNotifier(this.store).unsubscribe(_e),_e.parent===this?childToParent.delete(_e):!1}contains(_e){return composedContains(this.target,_e.target)}reflectToCSS(_e){this.isReflecting(_e)||(this.reflecting.add(_e),DesignTokenNode.cssCustomPropertyReflector.startReflection(_e,this.target))}stopReflectToCSS(_e){this.isReflecting(_e)&&(this.reflecting.delete(_e),DesignTokenNode.cssCustomPropertyReflector.stopReflection(_e,this.target))}isReflecting(_e){return this.reflecting.has(_e)}handleChange(_e,et){const tt=DesignTokenImpl.getTokenById(et);tt&&this.hydrate(tt,this.getRaw(tt))}hydrate(_e,et){if(!this.has(_e)){const tt=this.bindingObservers.get(_e);DesignTokenImpl.isDerivedDesignTokenValue(et)?tt?tt.source!==et&&(this.tearDownBindingObserver(_e),this.setupBindingObserver(_e,et)):this.setupBindingObserver(_e,et):(tt&&this.tearDownBindingObserver(_e),this.store.set(_e,et))}}setupBindingObserver(_e,et){const tt=new DesignTokenBindingObserver(et,_e,this);return this.bindingObservers.set(_e,tt),tt}tearDownBindingObserver(_e){return this.bindingObservers.has(_e)?(this.bindingObservers.get(_e).disconnect(),this.bindingObservers.delete(_e),!0):!1}}DesignTokenNode.cssCustomPropertyReflector=new CustomPropertyReflector;__decorate([observable],DesignTokenNode.prototype,"children",void 0);function create$5(j){return DesignTokenImpl.from(j)}const DesignToken=Object.freeze({create:create$5,notifyConnection(j){return!j.isConnected||!DesignTokenNode.existsFor(j)?!1:(DesignTokenNode.getOrCreate(j).bind(),!0)},notifyDisconnection(j){return j.isConnected||!DesignTokenNode.existsFor(j)?!1:(DesignTokenNode.getOrCreate(j).unbind(),!0)},registerRoot(j=defaultElement){RootStyleSheetTarget.registerRoot(j)},unregisterRoot(j=defaultElement){RootStyleSheetTarget.unregisterRoot(j)}}),ElementDisambiguation=Object.freeze({definitionCallbackOnly:null,ignoreDuplicate:Symbol()}),elementTypesByTag=new Map,elementTagsByType=new Map;let rootDesignSystem=null;const designSystemKey=DI.createInterface(j=>j.cachedCallback(_e=>(rootDesignSystem===null&&(rootDesignSystem=new DefaultDesignSystem(null,_e)),rootDesignSystem))),DesignSystem=Object.freeze({tagFor(j){return elementTagsByType.get(j)},responsibleFor(j){const _e=j.$$designSystem$$;return _e||DI.findResponsibleContainer(j).get(designSystemKey)},getOrCreate(j){if(!j)return rootDesignSystem===null&&(rootDesignSystem=DI.getOrCreateDOMContainer().get(designSystemKey)),rootDesignSystem;const _e=j.$$designSystem$$;if(_e)return _e;const et=DI.getOrCreateDOMContainer(j);if(et.has(designSystemKey,!1))return et.get(designSystemKey);{const tt=new DefaultDesignSystem(j,et);return et.register(Registration.instance(designSystemKey,tt)),tt}}});function extractTryDefineElementParams(j,_e,et){return typeof j=="string"?{name:j,type:_e,callback:et}:j}class DefaultDesignSystem{constructor(_e,et){this.owner=_e,this.container=et,this.designTokensInitialized=!1,this.prefix="fast",this.shadowRootMode=void 0,this.disambiguate=()=>ElementDisambiguation.definitionCallbackOnly,_e!==null&&(_e.$$designSystem$$=this)}withPrefix(_e){return this.prefix=_e,this}withShadowRootMode(_e){return this.shadowRootMode=_e,this}withElementDisambiguation(_e){return this.disambiguate=_e,this}withDesignTokenRoot(_e){return this.designTokenRoot=_e,this}register(..._e){const et=this.container,tt=[],rt=this.disambiguate,nt=this.shadowRootMode,ot={elementPrefix:this.prefix,tryDefineElement(it,st,lt){const ut=extractTryDefineElementParams(it,st,lt),{name:ct,callback:dt,baseClass:ft}=ut;let{type:pt}=ut,gt=ct,vt=elementTypesByTag.get(gt),bt=!0;for(;vt;){const _t=rt(gt,pt,vt);switch(_t){case ElementDisambiguation.ignoreDuplicate:return;case ElementDisambiguation.definitionCallbackOnly:bt=!1,vt=void 0;break;default:gt=_t,vt=elementTypesByTag.get(gt);break}}bt&&((elementTagsByType.has(pt)||pt===FoundationElement)&&(pt=class extends pt{}),elementTypesByTag.set(gt,pt),elementTagsByType.set(pt,gt),ft&&elementTagsByType.set(ft,gt)),tt.push(new ElementDefinitionEntry(et,gt,pt,nt,dt,bt))}};this.designTokensInitialized||(this.designTokensInitialized=!0,this.designTokenRoot!==null&&DesignToken.registerRoot(this.designTokenRoot)),et.registerWithContext(ot,..._e);for(const it of tt)it.callback(it),it.willDefine&&it.definition!==null&&it.definition.define();return this}}class ElementDefinitionEntry{constructor(_e,et,tt,rt,nt,ot){this.container=_e,this.name=et,this.type=tt,this.shadowRootMode=rt,this.callback=nt,this.willDefine=ot,this.definition=null}definePresentation(_e){ComponentPresentation.define(this.name,_e,this.container)}defineElement(_e){this.definition=new FASTElementDefinition(this.type,Object.assign(Object.assign({},_e),{name:this.name}))}tagFor(_e){return DesignSystem.tagFor(_e)}}const dividerTemplate=(j,_e)=>html$4` +`;class _Checkbox extends FoundationElement{}class FormAssociatedCheckbox extends CheckableFormAssociated(_Checkbox){constructor(){super(...arguments),this.proxy=document.createElement("input")}}let Checkbox$1=class extends FormAssociatedCheckbox{constructor(){super(),this.initialValue="on",this.indeterminate=!1,this.keypressHandler=_e=>{if(!this.readOnly)switch(_e.key){case keySpace:this.indeterminate&&(this.indeterminate=!1),this.checked=!this.checked;break}},this.clickHandler=_e=>{!this.disabled&&!this.readOnly&&(this.indeterminate&&(this.indeterminate=!1),this.checked=!this.checked)},this.proxy.setAttribute("type","checkbox")}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly)}};__decorate([attr({attribute:"readonly",mode:"boolean"})],Checkbox$1.prototype,"readOnly",void 0);__decorate([observable],Checkbox$1.prototype,"defaultSlottedNodes",void 0);__decorate([observable],Checkbox$1.prototype,"indeterminate",void 0);function isListboxOption(j){return isHTMLElement$1(j)&&(j.getAttribute("role")==="option"||j instanceof HTMLOptionElement)}class ListboxOption extends FoundationElement{constructor(_e,et,tt,rt){super(),this.defaultSelected=!1,this.dirtySelected=!1,this.selected=this.defaultSelected,this.dirtyValue=!1,_e&&(this.textContent=_e),et&&(this.initialValue=et),tt&&(this.defaultSelected=tt),rt&&(this.selected=rt),this.proxy=new Option(`${this.textContent}`,this.initialValue,this.defaultSelected,this.selected),this.proxy.disabled=this.disabled}checkedChanged(_e,et){if(typeof et=="boolean"){this.ariaChecked=et?"true":"false";return}this.ariaChecked=null}contentChanged(_e,et){this.proxy instanceof HTMLOptionElement&&(this.proxy.textContent=this.textContent),this.$emit("contentchange",null,{bubbles:!0})}defaultSelectedChanged(){this.dirtySelected||(this.selected=this.defaultSelected,this.proxy instanceof HTMLOptionElement&&(this.proxy.selected=this.defaultSelected))}disabledChanged(_e,et){this.ariaDisabled=this.disabled?"true":"false",this.proxy instanceof HTMLOptionElement&&(this.proxy.disabled=this.disabled)}selectedAttributeChanged(){this.defaultSelected=this.selectedAttribute,this.proxy instanceof HTMLOptionElement&&(this.proxy.defaultSelected=this.defaultSelected)}selectedChanged(){this.ariaSelected=this.selected?"true":"false",this.dirtySelected||(this.dirtySelected=!0),this.proxy instanceof HTMLOptionElement&&(this.proxy.selected=this.selected)}initialValueChanged(_e,et){this.dirtyValue||(this.value=this.initialValue,this.dirtyValue=!1)}get label(){var _e;return(_e=this.value)!==null&&_e!==void 0?_e:this.text}get text(){var _e,et;return(et=(_e=this.textContent)===null||_e===void 0?void 0:_e.replace(/\s+/g," ").trim())!==null&&et!==void 0?et:""}set value(_e){const et=`${_e??""}`;this._value=et,this.dirtyValue=!0,this.proxy instanceof HTMLOptionElement&&(this.proxy.value=et),Observable$1.notify(this,"value")}get value(){var _e;return Observable$1.track(this,"value"),(_e=this._value)!==null&&_e!==void 0?_e:this.text}get form(){return this.proxy?this.proxy.form:null}}__decorate([observable],ListboxOption.prototype,"checked",void 0);__decorate([observable],ListboxOption.prototype,"content",void 0);__decorate([observable],ListboxOption.prototype,"defaultSelected",void 0);__decorate([attr({mode:"boolean"})],ListboxOption.prototype,"disabled",void 0);__decorate([attr({attribute:"selected",mode:"boolean"})],ListboxOption.prototype,"selectedAttribute",void 0);__decorate([observable],ListboxOption.prototype,"selected",void 0);__decorate([attr({attribute:"value",mode:"fromView"})],ListboxOption.prototype,"initialValue",void 0);class DelegatesARIAListboxOption{}__decorate([observable],DelegatesARIAListboxOption.prototype,"ariaChecked",void 0);__decorate([observable],DelegatesARIAListboxOption.prototype,"ariaPosInSet",void 0);__decorate([observable],DelegatesARIAListboxOption.prototype,"ariaSelected",void 0);__decorate([observable],DelegatesARIAListboxOption.prototype,"ariaSetSize",void 0);applyMixins(DelegatesARIAListboxOption,ARIAGlobalStatesAndProperties);applyMixins(ListboxOption,StartEnd,DelegatesARIAListboxOption);class Listbox extends FoundationElement{constructor(){super(...arguments),this._options=[],this.selectedIndex=-1,this.selectedOptions=[],this.shouldSkipFocus=!1,this.typeaheadBuffer="",this.typeaheadExpired=!0,this.typeaheadTimeout=-1}get firstSelectedOption(){var _e;return(_e=this.selectedOptions[0])!==null&&_e!==void 0?_e:null}get hasSelectableOptions(){return this.options.length>0&&!this.options.every(_e=>_e.disabled)}get length(){var _e,et;return(et=(_e=this.options)===null||_e===void 0?void 0:_e.length)!==null&&et!==void 0?et:0}get options(){return Observable$1.track(this,"options"),this._options}set options(_e){this._options=_e,Observable$1.notify(this,"options")}get typeAheadExpired(){return this.typeaheadExpired}set typeAheadExpired(_e){this.typeaheadExpired=_e}clickHandler(_e){const et=_e.target.closest("option,[role=option]");if(et&&!et.disabled)return this.selectedIndex=this.options.indexOf(et),!0}focusAndScrollOptionIntoView(_e=this.firstSelectedOption){this.contains(document.activeElement)&&_e!==null&&(_e.focus(),requestAnimationFrame(()=>{_e.scrollIntoView({block:"nearest"})}))}focusinHandler(_e){!this.shouldSkipFocus&&_e.target===_e.currentTarget&&(this.setSelectedOptions(),this.focusAndScrollOptionIntoView()),this.shouldSkipFocus=!1}getTypeaheadMatches(){const _e=this.typeaheadBuffer.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&"),et=new RegExp(`^${_e}`,"gi");return this.options.filter(tt=>tt.text.trim().match(et))}getSelectableIndex(_e=this.selectedIndex,et){const tt=_e>et?-1:_e!ot&&!it.disabled&&st!ot&&!it.disabled&&st>rt?it:ot,nt);break}}return this.options.indexOf(nt)}handleChange(_e,et){switch(et){case"selected":{Listbox.slottedOptionFilter(_e)&&(this.selectedIndex=this.options.indexOf(_e)),this.setSelectedOptions();break}}}handleTypeAhead(_e){this.typeaheadTimeout&&window.clearTimeout(this.typeaheadTimeout),this.typeaheadTimeout=window.setTimeout(()=>this.typeaheadExpired=!0,Listbox.TYPE_AHEAD_TIMEOUT_MS),!(_e.length>1)&&(this.typeaheadBuffer=`${this.typeaheadExpired?"":this.typeaheadBuffer}${_e}`)}keydownHandler(_e){if(this.disabled)return!0;this.shouldSkipFocus=!1;const et=_e.key;switch(et){case keyHome:{_e.shiftKey||(_e.preventDefault(),this.selectFirstOption());break}case keyArrowDown:{_e.shiftKey||(_e.preventDefault(),this.selectNextOption());break}case keyArrowUp:{_e.shiftKey||(_e.preventDefault(),this.selectPreviousOption());break}case keyEnd:{_e.preventDefault(),this.selectLastOption();break}case keyTab:return this.focusAndScrollOptionIntoView(),!0;case keyEnter:case keyEscape:return!0;case keySpace:if(this.typeaheadExpired)return!0;default:return et.length===1&&this.handleTypeAhead(`${et}`),!0}}mousedownHandler(_e){return this.shouldSkipFocus=!this.contains(document.activeElement),!0}multipleChanged(_e,et){this.ariaMultiSelectable=et?"true":null}selectedIndexChanged(_e,et){var tt;if(!this.hasSelectableOptions){this.selectedIndex=-1;return}if(!((tt=this.options[this.selectedIndex])===null||tt===void 0)&&tt.disabled&&typeof _e=="number"){const rt=this.getSelectableIndex(_e,et),nt=rt>-1?rt:_e;this.selectedIndex=nt,et===nt&&this.selectedIndexChanged(et,nt);return}this.setSelectedOptions()}selectedOptionsChanged(_e,et){var tt;const rt=et.filter(Listbox.slottedOptionFilter);(tt=this.options)===null||tt===void 0||tt.forEach(nt=>{const ot=Observable$1.getNotifier(nt);ot.unsubscribe(this,"selected"),nt.selected=rt.includes(nt),ot.subscribe(this,"selected")})}selectFirstOption(){var _e,et;this.disabled||(this.selectedIndex=(et=(_e=this.options)===null||_e===void 0?void 0:_e.findIndex(tt=>!tt.disabled))!==null&&et!==void 0?et:-1)}selectLastOption(){this.disabled||(this.selectedIndex=findLastIndex(this.options,_e=>!_e.disabled))}selectNextOption(){!this.disabled&&this.selectedIndex0&&(this.selectedIndex=this.selectedIndex-1)}setDefaultSelectedOption(){var _e,et;this.selectedIndex=(et=(_e=this.options)===null||_e===void 0?void 0:_e.findIndex(tt=>tt.defaultSelected))!==null&&et!==void 0?et:-1}setSelectedOptions(){var _e,et,tt;!((_e=this.options)===null||_e===void 0)&&_e.length&&(this.selectedOptions=[this.options[this.selectedIndex]],this.ariaActiveDescendant=(tt=(et=this.firstSelectedOption)===null||et===void 0?void 0:et.id)!==null&&tt!==void 0?tt:"",this.focusAndScrollOptionIntoView())}slottedOptionsChanged(_e,et){this.options=et.reduce((rt,nt)=>(isListboxOption(nt)&&rt.push(nt),rt),[]);const tt=`${this.options.length}`;this.options.forEach((rt,nt)=>{rt.id||(rt.id=uniqueId$1("option-")),rt.ariaPosInSet=`${nt+1}`,rt.ariaSetSize=tt}),this.$fastController.isConnected&&(this.setSelectedOptions(),this.setDefaultSelectedOption())}typeaheadBufferChanged(_e,et){if(this.$fastController.isConnected){const tt=this.getTypeaheadMatches();if(tt.length){const rt=this.options.indexOf(tt[0]);rt>-1&&(this.selectedIndex=rt)}this.typeaheadExpired=!1}}}Listbox.slottedOptionFilter=j=>isListboxOption(j)&&!j.hidden;Listbox.TYPE_AHEAD_TIMEOUT_MS=1e3;__decorate([attr({mode:"boolean"})],Listbox.prototype,"disabled",void 0);__decorate([observable],Listbox.prototype,"selectedIndex",void 0);__decorate([observable],Listbox.prototype,"selectedOptions",void 0);__decorate([observable],Listbox.prototype,"slottedOptions",void 0);__decorate([observable],Listbox.prototype,"typeaheadBuffer",void 0);class DelegatesARIAListbox{}__decorate([observable],DelegatesARIAListbox.prototype,"ariaActiveDescendant",void 0);__decorate([observable],DelegatesARIAListbox.prototype,"ariaDisabled",void 0);__decorate([observable],DelegatesARIAListbox.prototype,"ariaExpanded",void 0);__decorate([observable],DelegatesARIAListbox.prototype,"ariaMultiSelectable",void 0);applyMixins(DelegatesARIAListbox,ARIAGlobalStatesAndProperties);applyMixins(Listbox,DelegatesARIAListbox);const SelectPosition={above:"above",below:"below"};function composedParent(j){const _e=j.parentElement;if(_e)return _e;{const et=j.getRootNode();if(et.host instanceof HTMLElement)return et.host}return null}function composedContains(j,_e){let et=_e;for(;et!==null;){if(et===j)return!0;et=composedParent(et)}return!1}const defaultElement=document.createElement("div");function isFastElement(j){return j instanceof FASTElement}class QueuedStyleSheetTarget{setProperty(_e,et){DOM.queueUpdate(()=>this.target.setProperty(_e,et))}removeProperty(_e){DOM.queueUpdate(()=>this.target.removeProperty(_e))}}class ConstructableStyleSheetTarget extends QueuedStyleSheetTarget{constructor(_e){super();const et=new CSSStyleSheet;this.target=et.cssRules[et.insertRule(":host{}")].style,_e.$fastController.addStyles(ElementStyles.create([et]))}}class DocumentStyleSheetTarget extends QueuedStyleSheetTarget{constructor(){super();const _e=new CSSStyleSheet;this.target=_e.cssRules[_e.insertRule(":root{}")].style,document.adoptedStyleSheets=[...document.adoptedStyleSheets,_e]}}class HeadStyleElementStyleSheetTarget extends QueuedStyleSheetTarget{constructor(){super(),this.style=document.createElement("style"),document.head.appendChild(this.style);const{sheet:_e}=this.style;if(_e){const et=_e.insertRule(":root{}",_e.cssRules.length);this.target=_e.cssRules[et].style}}}class StyleElementStyleSheetTarget{constructor(_e){this.store=new Map,this.target=null;const et=_e.$fastController;this.style=document.createElement("style"),et.addStyles(this.style),Observable$1.getNotifier(et).subscribe(this,"isConnected"),this.handleChange(et,"isConnected")}targetChanged(){if(this.target!==null)for(const[_e,et]of this.store.entries())this.target.setProperty(_e,et)}setProperty(_e,et){this.store.set(_e,et),DOM.queueUpdate(()=>{this.target!==null&&this.target.setProperty(_e,et)})}removeProperty(_e){this.store.delete(_e),DOM.queueUpdate(()=>{this.target!==null&&this.target.removeProperty(_e)})}handleChange(_e,et){const{sheet:tt}=this.style;if(tt){const rt=tt.insertRule(":host{}",tt.cssRules.length);this.target=tt.cssRules[rt].style}else this.target=null}}__decorate([observable],StyleElementStyleSheetTarget.prototype,"target",void 0);class ElementStyleSheetTarget{constructor(_e){this.target=_e.style}setProperty(_e,et){DOM.queueUpdate(()=>this.target.setProperty(_e,et))}removeProperty(_e){DOM.queueUpdate(()=>this.target.removeProperty(_e))}}class RootStyleSheetTarget{setProperty(_e,et){RootStyleSheetTarget.properties[_e]=et;for(const tt of RootStyleSheetTarget.roots.values())PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(tt)).setProperty(_e,et)}removeProperty(_e){delete RootStyleSheetTarget.properties[_e];for(const et of RootStyleSheetTarget.roots.values())PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(et)).removeProperty(_e)}static registerRoot(_e){const{roots:et}=RootStyleSheetTarget;if(!et.has(_e)){et.add(_e);const tt=PropertyTargetManager.getOrCreate(this.normalizeRoot(_e));for(const rt in RootStyleSheetTarget.properties)tt.setProperty(rt,RootStyleSheetTarget.properties[rt])}}static unregisterRoot(_e){const{roots:et}=RootStyleSheetTarget;if(et.has(_e)){et.delete(_e);const tt=PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(_e));for(const rt in RootStyleSheetTarget.properties)tt.removeProperty(rt)}}static normalizeRoot(_e){return _e===defaultElement?document:_e}}RootStyleSheetTarget.roots=new Set;RootStyleSheetTarget.properties={};const propertyTargetCache=new WeakMap,propertyTargetCtor=DOM.supportsAdoptedStyleSheets?ConstructableStyleSheetTarget:StyleElementStyleSheetTarget,PropertyTargetManager=Object.freeze({getOrCreate(j){if(propertyTargetCache.has(j))return propertyTargetCache.get(j);let _e;return j===defaultElement?_e=new RootStyleSheetTarget:j instanceof Document?_e=DOM.supportsAdoptedStyleSheets?new DocumentStyleSheetTarget:new HeadStyleElementStyleSheetTarget:isFastElement(j)?_e=new propertyTargetCtor(j):_e=new ElementStyleSheetTarget(j),propertyTargetCache.set(j,_e),_e}});class DesignTokenImpl extends CSSDirective{constructor(_e){super(),this.subscribers=new WeakMap,this._appliedTo=new Set,this.name=_e.name,_e.cssCustomPropertyName!==null&&(this.cssCustomProperty=`--${_e.cssCustomPropertyName}`,this.cssVar=`var(${this.cssCustomProperty})`),this.id=DesignTokenImpl.uniqueId(),DesignTokenImpl.tokensById.set(this.id,this)}get appliedTo(){return[...this._appliedTo]}static from(_e){return new DesignTokenImpl({name:typeof _e=="string"?_e:_e.name,cssCustomPropertyName:typeof _e=="string"?_e:_e.cssCustomPropertyName===void 0?_e.name:_e.cssCustomPropertyName})}static isCSSDesignToken(_e){return typeof _e.cssCustomProperty=="string"}static isDerivedDesignTokenValue(_e){return typeof _e=="function"}static getTokenById(_e){return DesignTokenImpl.tokensById.get(_e)}getOrCreateSubscriberSet(_e=this){return this.subscribers.get(_e)||this.subscribers.set(_e,new Set)&&this.subscribers.get(_e)}createCSS(){return this.cssVar||""}getValueFor(_e){const et=DesignTokenNode.getOrCreate(_e).get(this);if(et!==void 0)return et;throw new Error(`Value could not be retrieved for token named "${this.name}". Ensure the value is set for ${_e} or an ancestor of ${_e}.`)}setValueFor(_e,et){return this._appliedTo.add(_e),et instanceof DesignTokenImpl&&(et=this.alias(et)),DesignTokenNode.getOrCreate(_e).set(this,et),this}deleteValueFor(_e){return this._appliedTo.delete(_e),DesignTokenNode.existsFor(_e)&&DesignTokenNode.getOrCreate(_e).delete(this),this}withDefault(_e){return this.setValueFor(defaultElement,_e),this}subscribe(_e,et){const tt=this.getOrCreateSubscriberSet(et);et&&!DesignTokenNode.existsFor(et)&&DesignTokenNode.getOrCreate(et),tt.has(_e)||tt.add(_e)}unsubscribe(_e,et){const tt=this.subscribers.get(et||this);tt&&tt.has(_e)&&tt.delete(_e)}notify(_e){const et=Object.freeze({token:this,target:_e});this.subscribers.has(this)&&this.subscribers.get(this).forEach(tt=>tt.handleChange(et)),this.subscribers.has(_e)&&this.subscribers.get(_e).forEach(tt=>tt.handleChange(et))}alias(_e){return et=>_e.getValueFor(et)}}DesignTokenImpl.uniqueId=(()=>{let j=0;return()=>(j++,j.toString(16))})();DesignTokenImpl.tokensById=new Map;class CustomPropertyReflector{startReflection(_e,et){_e.subscribe(this,et),this.handleChange({token:_e,target:et})}stopReflection(_e,et){_e.unsubscribe(this,et),this.remove(_e,et)}handleChange(_e){const{token:et,target:tt}=_e;this.add(et,tt)}add(_e,et){PropertyTargetManager.getOrCreate(et).setProperty(_e.cssCustomProperty,this.resolveCSSValue(DesignTokenNode.getOrCreate(et).get(_e)))}remove(_e,et){PropertyTargetManager.getOrCreate(et).removeProperty(_e.cssCustomProperty)}resolveCSSValue(_e){return _e&&typeof _e.createCSS=="function"?_e.createCSS():_e}}class DesignTokenBindingObserver{constructor(_e,et,tt){this.source=_e,this.token=et,this.node=tt,this.dependencies=new Set,this.observer=Observable$1.binding(_e,this,!1),this.observer.handleChange=this.observer.call,this.handleChange()}disconnect(){this.observer.disconnect()}handleChange(){this.node.store.set(this.token,this.observer.observe(this.node.target,defaultExecutionContext))}}class Store{constructor(){this.values=new Map}set(_e,et){this.values.get(_e)!==et&&(this.values.set(_e,et),Observable$1.getNotifier(this).notify(_e.id))}get(_e){return Observable$1.track(this,_e.id),this.values.get(_e)}delete(_e){this.values.delete(_e)}all(){return this.values.entries()}}const nodeCache=new WeakMap,childToParent=new WeakMap;class DesignTokenNode{constructor(_e){this.target=_e,this.store=new Store,this.children=[],this.assignedValues=new Map,this.reflecting=new Set,this.bindingObservers=new Map,this.tokenValueChangeHandler={handleChange:(et,tt)=>{const rt=DesignTokenImpl.getTokenById(tt);if(rt&&(rt.notify(this.target),DesignTokenImpl.isCSSDesignToken(rt))){const nt=this.parent,ot=this.isReflecting(rt);if(nt){const it=nt.get(rt),st=et.get(rt);it!==st&&!ot?this.reflectToCSS(rt):it===st&&ot&&this.stopReflectToCSS(rt)}else ot||this.reflectToCSS(rt)}}},nodeCache.set(_e,this),Observable$1.getNotifier(this.store).subscribe(this.tokenValueChangeHandler),_e instanceof FASTElement?_e.$fastController.addBehaviors([this]):_e.isConnected&&this.bind()}static getOrCreate(_e){return nodeCache.get(_e)||new DesignTokenNode(_e)}static existsFor(_e){return nodeCache.has(_e)}static findParent(_e){if(defaultElement!==_e.target){let et=composedParent(_e.target);for(;et!==null;){if(nodeCache.has(et))return nodeCache.get(et);et=composedParent(et)}return DesignTokenNode.getOrCreate(defaultElement)}return null}static findClosestAssignedNode(_e,et){let tt=et;do{if(tt.has(_e))return tt;tt=tt.parent?tt.parent:tt.target!==defaultElement?DesignTokenNode.getOrCreate(defaultElement):null}while(tt!==null);return null}get parent(){return childToParent.get(this)||null}has(_e){return this.assignedValues.has(_e)}get(_e){const et=this.store.get(_e);if(et!==void 0)return et;const tt=this.getRaw(_e);if(tt!==void 0)return this.hydrate(_e,tt),this.get(_e)}getRaw(_e){var et;return this.assignedValues.has(_e)?this.assignedValues.get(_e):(et=DesignTokenNode.findClosestAssignedNode(_e,this))===null||et===void 0?void 0:et.getRaw(_e)}set(_e,et){DesignTokenImpl.isDerivedDesignTokenValue(this.assignedValues.get(_e))&&this.tearDownBindingObserver(_e),this.assignedValues.set(_e,et),DesignTokenImpl.isDerivedDesignTokenValue(et)?this.setupBindingObserver(_e,et):this.store.set(_e,et)}delete(_e){this.assignedValues.delete(_e),this.tearDownBindingObserver(_e);const et=this.getRaw(_e);et?this.hydrate(_e,et):this.store.delete(_e)}bind(){const _e=DesignTokenNode.findParent(this);_e&&_e.appendChild(this);for(const et of this.assignedValues.keys())et.notify(this.target)}unbind(){this.parent&&childToParent.get(this).removeChild(this)}appendChild(_e){_e.parent&&childToParent.get(_e).removeChild(_e);const et=this.children.filter(tt=>_e.contains(tt));childToParent.set(_e,this),this.children.push(_e),et.forEach(tt=>_e.appendChild(tt)),Observable$1.getNotifier(this.store).subscribe(_e);for(const[tt,rt]of this.store.all())_e.hydrate(tt,this.bindingObservers.has(tt)?this.getRaw(tt):rt)}removeChild(_e){const et=this.children.indexOf(_e);return et!==-1&&this.children.splice(et,1),Observable$1.getNotifier(this.store).unsubscribe(_e),_e.parent===this?childToParent.delete(_e):!1}contains(_e){return composedContains(this.target,_e.target)}reflectToCSS(_e){this.isReflecting(_e)||(this.reflecting.add(_e),DesignTokenNode.cssCustomPropertyReflector.startReflection(_e,this.target))}stopReflectToCSS(_e){this.isReflecting(_e)&&(this.reflecting.delete(_e),DesignTokenNode.cssCustomPropertyReflector.stopReflection(_e,this.target))}isReflecting(_e){return this.reflecting.has(_e)}handleChange(_e,et){const tt=DesignTokenImpl.getTokenById(et);tt&&this.hydrate(tt,this.getRaw(tt))}hydrate(_e,et){if(!this.has(_e)){const tt=this.bindingObservers.get(_e);DesignTokenImpl.isDerivedDesignTokenValue(et)?tt?tt.source!==et&&(this.tearDownBindingObserver(_e),this.setupBindingObserver(_e,et)):this.setupBindingObserver(_e,et):(tt&&this.tearDownBindingObserver(_e),this.store.set(_e,et))}}setupBindingObserver(_e,et){const tt=new DesignTokenBindingObserver(et,_e,this);return this.bindingObservers.set(_e,tt),tt}tearDownBindingObserver(_e){return this.bindingObservers.has(_e)?(this.bindingObservers.get(_e).disconnect(),this.bindingObservers.delete(_e),!0):!1}}DesignTokenNode.cssCustomPropertyReflector=new CustomPropertyReflector;__decorate([observable],DesignTokenNode.prototype,"children",void 0);function create$2(j){return DesignTokenImpl.from(j)}const DesignToken=Object.freeze({create:create$2,notifyConnection(j){return!j.isConnected||!DesignTokenNode.existsFor(j)?!1:(DesignTokenNode.getOrCreate(j).bind(),!0)},notifyDisconnection(j){return j.isConnected||!DesignTokenNode.existsFor(j)?!1:(DesignTokenNode.getOrCreate(j).unbind(),!0)},registerRoot(j=defaultElement){RootStyleSheetTarget.registerRoot(j)},unregisterRoot(j=defaultElement){RootStyleSheetTarget.unregisterRoot(j)}}),ElementDisambiguation=Object.freeze({definitionCallbackOnly:null,ignoreDuplicate:Symbol()}),elementTypesByTag=new Map,elementTagsByType=new Map;let rootDesignSystem=null;const designSystemKey=DI.createInterface(j=>j.cachedCallback(_e=>(rootDesignSystem===null&&(rootDesignSystem=new DefaultDesignSystem(null,_e)),rootDesignSystem))),DesignSystem=Object.freeze({tagFor(j){return elementTagsByType.get(j)},responsibleFor(j){const _e=j.$$designSystem$$;return _e||DI.findResponsibleContainer(j).get(designSystemKey)},getOrCreate(j){if(!j)return rootDesignSystem===null&&(rootDesignSystem=DI.getOrCreateDOMContainer().get(designSystemKey)),rootDesignSystem;const _e=j.$$designSystem$$;if(_e)return _e;const et=DI.getOrCreateDOMContainer(j);if(et.has(designSystemKey,!1))return et.get(designSystemKey);{const tt=new DefaultDesignSystem(j,et);return et.register(Registration.instance(designSystemKey,tt)),tt}}});function extractTryDefineElementParams(j,_e,et){return typeof j=="string"?{name:j,type:_e,callback:et}:j}class DefaultDesignSystem{constructor(_e,et){this.owner=_e,this.container=et,this.designTokensInitialized=!1,this.prefix="fast",this.shadowRootMode=void 0,this.disambiguate=()=>ElementDisambiguation.definitionCallbackOnly,_e!==null&&(_e.$$designSystem$$=this)}withPrefix(_e){return this.prefix=_e,this}withShadowRootMode(_e){return this.shadowRootMode=_e,this}withElementDisambiguation(_e){return this.disambiguate=_e,this}withDesignTokenRoot(_e){return this.designTokenRoot=_e,this}register(..._e){const et=this.container,tt=[],rt=this.disambiguate,nt=this.shadowRootMode,ot={elementPrefix:this.prefix,tryDefineElement(it,st,lt){const ut=extractTryDefineElementParams(it,st,lt),{name:ct,callback:dt,baseClass:ft}=ut;let{type:pt}=ut,gt=ct,mt=elementTypesByTag.get(gt),bt=!0;for(;mt;){const _t=rt(gt,pt,mt);switch(_t){case ElementDisambiguation.ignoreDuplicate:return;case ElementDisambiguation.definitionCallbackOnly:bt=!1,mt=void 0;break;default:gt=_t,mt=elementTypesByTag.get(gt);break}}bt&&((elementTagsByType.has(pt)||pt===FoundationElement)&&(pt=class extends pt{}),elementTypesByTag.set(gt,pt),elementTagsByType.set(pt,gt),ft&&elementTagsByType.set(ft,gt)),tt.push(new ElementDefinitionEntry(et,gt,pt,nt,dt,bt))}};this.designTokensInitialized||(this.designTokensInitialized=!0,this.designTokenRoot!==null&&DesignToken.registerRoot(this.designTokenRoot)),et.registerWithContext(ot,..._e);for(const it of tt)it.callback(it),it.willDefine&&it.definition!==null&&it.definition.define();return this}}class ElementDefinitionEntry{constructor(_e,et,tt,rt,nt,ot){this.container=_e,this.name=et,this.type=tt,this.shadowRootMode=rt,this.callback=nt,this.willDefine=ot,this.definition=null}definePresentation(_e){ComponentPresentation.define(this.name,_e,this.container)}defineElement(_e){this.definition=new FASTElementDefinition(this.type,Object.assign(Object.assign({},_e),{name:this.name}))}tagFor(_e){return DesignSystem.tagFor(_e)}}const dividerTemplate=(j,_e)=>html` -`,DividerRole={separator:"separator",presentation:"presentation"};let Divider$1=class extends FoundationElement{constructor(){super(...arguments),this.role=DividerRole.separator,this.orientation=Orientation.horizontal}};__decorate([attr],Divider$1.prototype,"role",void 0);__decorate([attr],Divider$1.prototype,"orientation",void 0);const listboxOptionTemplate=(j,_e)=>html$4` +`,DividerRole={separator:"separator",presentation:"presentation"};let Divider$1=class extends FoundationElement{constructor(){super(...arguments),this.role=DividerRole.separator,this.orientation=Orientation.horizontal}};__decorate([attr],Divider$1.prototype,"role",void 0);__decorate([attr],Divider$1.prototype,"orientation",void 0);const listboxOptionTemplate=(j,_e)=>html` -`;class ListboxElement extends Listbox{constructor(){super(...arguments),this.activeIndex=-1,this.rangeStartIndex=-1}get activeOption(){return this.options[this.activeIndex]}get checkedOptions(){var _e;return(_e=this.options)===null||_e===void 0?void 0:_e.filter(et=>et.checked)}get firstSelectedOptionIndex(){return this.options.indexOf(this.firstSelectedOption)}activeIndexChanged(_e,et){var tt,rt;this.ariaActiveDescendant=(rt=(tt=this.options[et])===null||tt===void 0?void 0:tt.id)!==null&&rt!==void 0?rt:"",this.focusAndScrollOptionIntoView()}checkActiveIndex(){if(!this.multiple)return;const _e=this.activeOption;_e&&(_e.checked=!0)}checkFirstOption(_e=!1){_e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex+1),this.options.forEach((et,tt)=>{et.checked=inRange(tt,this.rangeStartIndex)})):this.uncheckAllOptions(),this.activeIndex=0,this.checkActiveIndex()}checkLastOption(_e=!1){_e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.options.forEach((et,tt)=>{et.checked=inRange(tt,this.rangeStartIndex,this.options.length)})):this.uncheckAllOptions(),this.activeIndex=this.options.length-1,this.checkActiveIndex()}connectedCallback(){super.connectedCallback(),this.addEventListener("focusout",this.focusoutHandler)}disconnectedCallback(){this.removeEventListener("focusout",this.focusoutHandler),super.disconnectedCallback()}checkNextOption(_e=!1){_e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.options.forEach((et,tt)=>{et.checked=inRange(tt,this.rangeStartIndex,this.activeIndex+1)})):this.uncheckAllOptions(),this.activeIndex+=this.activeIndex{et.checked=inRange(tt,this.activeIndex,this.rangeStartIndex)})):this.uncheckAllOptions(),this.activeIndex-=this.activeIndex>0?1:0,this.checkActiveIndex()}clickHandler(_e){var et;if(!this.multiple)return super.clickHandler(_e);const tt=(et=_e.target)===null||et===void 0?void 0:et.closest("[role=option]");if(!(!tt||tt.disabled))return this.uncheckAllOptions(),this.activeIndex=this.options.indexOf(tt),this.checkActiveIndex(),this.toggleSelectedForAllCheckedOptions(),!0}focusAndScrollOptionIntoView(){super.focusAndScrollOptionIntoView(this.activeOption)}focusinHandler(_e){if(!this.multiple)return super.focusinHandler(_e);!this.shouldSkipFocus&&_e.target===_e.currentTarget&&(this.uncheckAllOptions(),this.activeIndex===-1&&(this.activeIndex=this.firstSelectedOptionIndex!==-1?this.firstSelectedOptionIndex:0),this.checkActiveIndex(),this.setSelectedOptions(),this.focusAndScrollOptionIntoView()),this.shouldSkipFocus=!1}focusoutHandler(_e){this.multiple&&this.uncheckAllOptions()}keydownHandler(_e){if(!this.multiple)return super.keydownHandler(_e);if(this.disabled)return!0;const{key:et,shiftKey:tt}=_e;switch(this.shouldSkipFocus=!1,et){case keyHome:{this.checkFirstOption(tt);return}case keyArrowDown:{this.checkNextOption(tt);return}case keyArrowUp:{this.checkPreviousOption(tt);return}case keyEnd:{this.checkLastOption(tt);return}case keyTab:return this.focusAndScrollOptionIntoView(),!0;case keyEscape:return this.uncheckAllOptions(),this.checkActiveIndex(),!0;case keySpace:if(_e.preventDefault(),this.typeAheadExpired){this.toggleSelectedForAllCheckedOptions();return}default:return et.length===1&&this.handleTypeAhead(`${et}`),!0}}mousedownHandler(_e){if(_e.offsetX>=0&&_e.offsetX<=this.scrollWidth)return super.mousedownHandler(_e)}multipleChanged(_e,et){var tt;this.ariaMultiSelectable=et?"true":null,(tt=this.options)===null||tt===void 0||tt.forEach(rt=>{rt.checked=et?!1:void 0}),this.setSelectedOptions()}setSelectedOptions(){if(!this.multiple){super.setSelectedOptions();return}this.$fastController.isConnected&&this.options&&(this.selectedOptions=this.options.filter(_e=>_e.selected),this.focusAndScrollOptionIntoView())}sizeChanged(_e,et){var tt;const rt=Math.max(0,parseInt((tt=et==null?void 0:et.toFixed())!==null&&tt!==void 0?tt:"",10));rt!==et&&DOM.queueUpdate(()=>{this.size=rt})}toggleSelectedForAllCheckedOptions(){const _e=this.checkedOptions.filter(tt=>!tt.disabled),et=!_e.every(tt=>tt.selected);_e.forEach(tt=>tt.selected=et),this.selectedIndex=this.options.indexOf(_e[_e.length-1]),this.setSelectedOptions()}typeaheadBufferChanged(_e,et){if(!this.multiple){super.typeaheadBufferChanged(_e,et);return}if(this.$fastController.isConnected){const tt=this.getTypeaheadMatches(),rt=this.options.indexOf(tt[0]);rt>-1&&(this.activeIndex=rt,this.uncheckAllOptions(),this.checkActiveIndex()),this.typeAheadExpired=!1}}uncheckAllOptions(_e=!1){this.options.forEach(et=>et.checked=this.multiple?!1:void 0),_e||(this.rangeStartIndex=-1)}}__decorate([observable],ListboxElement.prototype,"activeIndex",void 0);__decorate([attr({mode:"boolean"})],ListboxElement.prototype,"multiple",void 0);__decorate([attr({converter:nullableNumberConverter})],ListboxElement.prototype,"size",void 0);class _TextField extends FoundationElement{}class FormAssociatedTextField extends FormAssociated(_TextField){constructor(){super(...arguments),this.proxy=document.createElement("input")}}const TextFieldType={email:"email",password:"password",tel:"tel",text:"text",url:"url"};let TextField$1=class extends FormAssociatedTextField{constructor(){super(...arguments),this.type=TextFieldType.text}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly,this.validate())}autofocusChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.autofocus=this.autofocus,this.validate())}placeholderChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.placeholder=this.placeholder)}typeChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.type=this.type,this.validate())}listChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.setAttribute("list",this.list),this.validate())}maxlengthChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.maxLength=this.maxlength,this.validate())}minlengthChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.minLength=this.minlength,this.validate())}patternChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.pattern=this.pattern,this.validate())}sizeChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.size=this.size)}spellcheckChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.spellcheck=this.spellcheck)}connectedCallback(){super.connectedCallback(),this.proxy.setAttribute("type",this.type),this.validate(),this.autofocus&&DOM.queueUpdate(()=>{this.focus()})}select(){this.control.select(),this.$emit("select")}handleTextInput(){this.value=this.control.value}handleChange(){this.$emit("change")}validate(){super.validate(this.control)}};__decorate([attr({attribute:"readonly",mode:"boolean"})],TextField$1.prototype,"readOnly",void 0);__decorate([attr({mode:"boolean"})],TextField$1.prototype,"autofocus",void 0);__decorate([attr],TextField$1.prototype,"placeholder",void 0);__decorate([attr],TextField$1.prototype,"type",void 0);__decorate([attr],TextField$1.prototype,"list",void 0);__decorate([attr({converter:nullableNumberConverter})],TextField$1.prototype,"maxlength",void 0);__decorate([attr({converter:nullableNumberConverter})],TextField$1.prototype,"minlength",void 0);__decorate([attr],TextField$1.prototype,"pattern",void 0);__decorate([attr({converter:nullableNumberConverter})],TextField$1.prototype,"size",void 0);__decorate([attr({mode:"boolean"})],TextField$1.prototype,"spellcheck",void 0);__decorate([observable],TextField$1.prototype,"defaultSlottedNodes",void 0);class DelegatesARIATextbox{}applyMixins(DelegatesARIATextbox,ARIAGlobalStatesAndProperties);applyMixins(TextField$1,StartEnd,DelegatesARIATextbox);const progressSegments=44,progressRingTemplate=(j,_e)=>html$4` +`;class ListboxElement extends Listbox{constructor(){super(...arguments),this.activeIndex=-1,this.rangeStartIndex=-1}get activeOption(){return this.options[this.activeIndex]}get checkedOptions(){var _e;return(_e=this.options)===null||_e===void 0?void 0:_e.filter(et=>et.checked)}get firstSelectedOptionIndex(){return this.options.indexOf(this.firstSelectedOption)}activeIndexChanged(_e,et){var tt,rt;this.ariaActiveDescendant=(rt=(tt=this.options[et])===null||tt===void 0?void 0:tt.id)!==null&&rt!==void 0?rt:"",this.focusAndScrollOptionIntoView()}checkActiveIndex(){if(!this.multiple)return;const _e=this.activeOption;_e&&(_e.checked=!0)}checkFirstOption(_e=!1){_e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex+1),this.options.forEach((et,tt)=>{et.checked=inRange(tt,this.rangeStartIndex)})):this.uncheckAllOptions(),this.activeIndex=0,this.checkActiveIndex()}checkLastOption(_e=!1){_e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.options.forEach((et,tt)=>{et.checked=inRange(tt,this.rangeStartIndex,this.options.length)})):this.uncheckAllOptions(),this.activeIndex=this.options.length-1,this.checkActiveIndex()}connectedCallback(){super.connectedCallback(),this.addEventListener("focusout",this.focusoutHandler)}disconnectedCallback(){this.removeEventListener("focusout",this.focusoutHandler),super.disconnectedCallback()}checkNextOption(_e=!1){_e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.options.forEach((et,tt)=>{et.checked=inRange(tt,this.rangeStartIndex,this.activeIndex+1)})):this.uncheckAllOptions(),this.activeIndex+=this.activeIndex{et.checked=inRange(tt,this.activeIndex,this.rangeStartIndex)})):this.uncheckAllOptions(),this.activeIndex-=this.activeIndex>0?1:0,this.checkActiveIndex()}clickHandler(_e){var et;if(!this.multiple)return super.clickHandler(_e);const tt=(et=_e.target)===null||et===void 0?void 0:et.closest("[role=option]");if(!(!tt||tt.disabled))return this.uncheckAllOptions(),this.activeIndex=this.options.indexOf(tt),this.checkActiveIndex(),this.toggleSelectedForAllCheckedOptions(),!0}focusAndScrollOptionIntoView(){super.focusAndScrollOptionIntoView(this.activeOption)}focusinHandler(_e){if(!this.multiple)return super.focusinHandler(_e);!this.shouldSkipFocus&&_e.target===_e.currentTarget&&(this.uncheckAllOptions(),this.activeIndex===-1&&(this.activeIndex=this.firstSelectedOptionIndex!==-1?this.firstSelectedOptionIndex:0),this.checkActiveIndex(),this.setSelectedOptions(),this.focusAndScrollOptionIntoView()),this.shouldSkipFocus=!1}focusoutHandler(_e){this.multiple&&this.uncheckAllOptions()}keydownHandler(_e){if(!this.multiple)return super.keydownHandler(_e);if(this.disabled)return!0;const{key:et,shiftKey:tt}=_e;switch(this.shouldSkipFocus=!1,et){case keyHome:{this.checkFirstOption(tt);return}case keyArrowDown:{this.checkNextOption(tt);return}case keyArrowUp:{this.checkPreviousOption(tt);return}case keyEnd:{this.checkLastOption(tt);return}case keyTab:return this.focusAndScrollOptionIntoView(),!0;case keyEscape:return this.uncheckAllOptions(),this.checkActiveIndex(),!0;case keySpace:if(_e.preventDefault(),this.typeAheadExpired){this.toggleSelectedForAllCheckedOptions();return}default:return et.length===1&&this.handleTypeAhead(`${et}`),!0}}mousedownHandler(_e){if(_e.offsetX>=0&&_e.offsetX<=this.scrollWidth)return super.mousedownHandler(_e)}multipleChanged(_e,et){var tt;this.ariaMultiSelectable=et?"true":null,(tt=this.options)===null||tt===void 0||tt.forEach(rt=>{rt.checked=et?!1:void 0}),this.setSelectedOptions()}setSelectedOptions(){if(!this.multiple){super.setSelectedOptions();return}this.$fastController.isConnected&&this.options&&(this.selectedOptions=this.options.filter(_e=>_e.selected),this.focusAndScrollOptionIntoView())}sizeChanged(_e,et){var tt;const rt=Math.max(0,parseInt((tt=et==null?void 0:et.toFixed())!==null&&tt!==void 0?tt:"",10));rt!==et&&DOM.queueUpdate(()=>{this.size=rt})}toggleSelectedForAllCheckedOptions(){const _e=this.checkedOptions.filter(tt=>!tt.disabled),et=!_e.every(tt=>tt.selected);_e.forEach(tt=>tt.selected=et),this.selectedIndex=this.options.indexOf(_e[_e.length-1]),this.setSelectedOptions()}typeaheadBufferChanged(_e,et){if(!this.multiple){super.typeaheadBufferChanged(_e,et);return}if(this.$fastController.isConnected){const tt=this.getTypeaheadMatches(),rt=this.options.indexOf(tt[0]);rt>-1&&(this.activeIndex=rt,this.uncheckAllOptions(),this.checkActiveIndex()),this.typeAheadExpired=!1}}uncheckAllOptions(_e=!1){this.options.forEach(et=>et.checked=this.multiple?!1:void 0),_e||(this.rangeStartIndex=-1)}}__decorate([observable],ListboxElement.prototype,"activeIndex",void 0);__decorate([attr({mode:"boolean"})],ListboxElement.prototype,"multiple",void 0);__decorate([attr({converter:nullableNumberConverter})],ListboxElement.prototype,"size",void 0);class _TextField extends FoundationElement{}class FormAssociatedTextField extends FormAssociated(_TextField){constructor(){super(...arguments),this.proxy=document.createElement("input")}}const TextFieldType={email:"email",password:"password",tel:"tel",text:"text",url:"url"};let TextField$1=class extends FormAssociatedTextField{constructor(){super(...arguments),this.type=TextFieldType.text}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly,this.validate())}autofocusChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.autofocus=this.autofocus,this.validate())}placeholderChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.placeholder=this.placeholder)}typeChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.type=this.type,this.validate())}listChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.setAttribute("list",this.list),this.validate())}maxlengthChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.maxLength=this.maxlength,this.validate())}minlengthChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.minLength=this.minlength,this.validate())}patternChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.pattern=this.pattern,this.validate())}sizeChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.size=this.size)}spellcheckChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.spellcheck=this.spellcheck)}connectedCallback(){super.connectedCallback(),this.proxy.setAttribute("type",this.type),this.validate(),this.autofocus&&DOM.queueUpdate(()=>{this.focus()})}select(){this.control.select(),this.$emit("select")}handleTextInput(){this.value=this.control.value}handleChange(){this.$emit("change")}validate(){super.validate(this.control)}};__decorate([attr({attribute:"readonly",mode:"boolean"})],TextField$1.prototype,"readOnly",void 0);__decorate([attr({mode:"boolean"})],TextField$1.prototype,"autofocus",void 0);__decorate([attr],TextField$1.prototype,"placeholder",void 0);__decorate([attr],TextField$1.prototype,"type",void 0);__decorate([attr],TextField$1.prototype,"list",void 0);__decorate([attr({converter:nullableNumberConverter})],TextField$1.prototype,"maxlength",void 0);__decorate([attr({converter:nullableNumberConverter})],TextField$1.prototype,"minlength",void 0);__decorate([attr],TextField$1.prototype,"pattern",void 0);__decorate([attr({converter:nullableNumberConverter})],TextField$1.prototype,"size",void 0);__decorate([attr({mode:"boolean"})],TextField$1.prototype,"spellcheck",void 0);__decorate([observable],TextField$1.prototype,"defaultSlottedNodes",void 0);class DelegatesARIATextbox{}applyMixins(DelegatesARIATextbox,ARIAGlobalStatesAndProperties);applyMixins(TextField$1,StartEnd,DelegatesARIATextbox);const progressSegments=44,progressRingTemplate=(j,_e)=>html` -`;class BaseProgress extends FoundationElement{constructor(){super(...arguments),this.percentComplete=0}valueChanged(){this.$fastController.isConnected&&this.updatePercentComplete()}minChanged(){this.$fastController.isConnected&&this.updatePercentComplete()}maxChanged(){this.$fastController.isConnected&&this.updatePercentComplete()}connectedCallback(){super.connectedCallback(),this.updatePercentComplete()}updatePercentComplete(){const _e=typeof this.min=="number"?this.min:0,et=typeof this.max=="number"?this.max:100,tt=typeof this.value=="number"?this.value:0,rt=et-_e;this.percentComplete=rt===0?0:Math.fround((tt-_e)/rt*100)}}__decorate([attr({converter:nullableNumberConverter})],BaseProgress.prototype,"value",void 0);__decorate([attr({converter:nullableNumberConverter})],BaseProgress.prototype,"min",void 0);__decorate([attr({converter:nullableNumberConverter})],BaseProgress.prototype,"max",void 0);__decorate([attr({mode:"boolean"})],BaseProgress.prototype,"paused",void 0);__decorate([observable],BaseProgress.prototype,"percentComplete",void 0);const radioGroupTemplate=(j,_e)=>html$4` +`;class BaseProgress extends FoundationElement{constructor(){super(...arguments),this.percentComplete=0}valueChanged(){this.$fastController.isConnected&&this.updatePercentComplete()}minChanged(){this.$fastController.isConnected&&this.updatePercentComplete()}maxChanged(){this.$fastController.isConnected&&this.updatePercentComplete()}connectedCallback(){super.connectedCallback(),this.updatePercentComplete()}updatePercentComplete(){const _e=typeof this.min=="number"?this.min:0,et=typeof this.max=="number"?this.max:100,tt=typeof this.value=="number"?this.value:0,rt=et-_e;this.percentComplete=rt===0?0:Math.fround((tt-_e)/rt*100)}}__decorate([attr({converter:nullableNumberConverter})],BaseProgress.prototype,"value",void 0);__decorate([attr({converter:nullableNumberConverter})],BaseProgress.prototype,"min",void 0);__decorate([attr({converter:nullableNumberConverter})],BaseProgress.prototype,"max",void 0);__decorate([attr({mode:"boolean"})],BaseProgress.prototype,"paused",void 0);__decorate([observable],BaseProgress.prototype,"percentComplete",void 0);const radioGroupTemplate=(j,_e)=>html` -`;let RadioGroup$1=class extends FoundationElement{constructor(){super(...arguments),this.orientation=Orientation.horizontal,this.radioChangeHandler=_e=>{const et=_e.target;et.checked&&(this.slottedRadioButtons.forEach(tt=>{tt!==et&&(tt.checked=!1,this.isInsideFoundationToolbar||tt.setAttribute("tabindex","-1"))}),this.selectedRadio=et,this.value=et.value,et.setAttribute("tabindex","0"),this.focusedRadio=et),_e.stopPropagation()},this.moveToRadioByIndex=(_e,et)=>{const tt=_e[et];this.isInsideToolbar||(tt.setAttribute("tabindex","0"),tt.readOnly?this.slottedRadioButtons.forEach(rt=>{rt!==tt&&rt.setAttribute("tabindex","-1")}):(tt.checked=!0,this.selectedRadio=tt)),this.focusedRadio=tt,tt.focus()},this.moveRightOffGroup=()=>{var _e;(_e=this.nextElementSibling)===null||_e===void 0||_e.focus()},this.moveLeftOffGroup=()=>{var _e;(_e=this.previousElementSibling)===null||_e===void 0||_e.focus()},this.focusOutHandler=_e=>{const et=this.slottedRadioButtons,tt=_e.target,rt=tt!==null?et.indexOf(tt):0,nt=this.focusedRadio?et.indexOf(this.focusedRadio):-1;return(nt===0&&rt===nt||nt===et.length-1&&nt===rt)&&(this.selectedRadio?(this.focusedRadio=this.selectedRadio,this.isInsideFoundationToolbar||(this.selectedRadio.setAttribute("tabindex","0"),et.forEach(ot=>{ot!==this.selectedRadio&&ot.setAttribute("tabindex","-1")}))):(this.focusedRadio=et[0],this.focusedRadio.setAttribute("tabindex","0"),et.forEach(ot=>{ot!==this.focusedRadio&&ot.setAttribute("tabindex","-1")}))),!0},this.clickHandler=_e=>{const et=_e.target;if(et){const tt=this.slottedRadioButtons;et.checked||tt.indexOf(et)===0?(et.setAttribute("tabindex","0"),this.selectedRadio=et):(et.setAttribute("tabindex","-1"),this.selectedRadio=null),this.focusedRadio=et}_e.preventDefault()},this.shouldMoveOffGroupToTheRight=(_e,et,tt)=>_e===et.length&&this.isInsideToolbar&&tt===keyArrowRight,this.shouldMoveOffGroupToTheLeft=(_e,et)=>(this.focusedRadio?_e.indexOf(this.focusedRadio)-1:0)<0&&this.isInsideToolbar&&et===keyArrowLeft,this.checkFocusedRadio=()=>{this.focusedRadio!==null&&!this.focusedRadio.readOnly&&!this.focusedRadio.checked&&(this.focusedRadio.checked=!0,this.focusedRadio.setAttribute("tabindex","0"),this.focusedRadio.focus(),this.selectedRadio=this.focusedRadio)},this.moveRight=_e=>{const et=this.slottedRadioButtons;let tt=0;if(tt=this.focusedRadio?et.indexOf(this.focusedRadio)+1:1,this.shouldMoveOffGroupToTheRight(tt,et,_e.key)){this.moveRightOffGroup();return}else tt===et.length&&(tt=0);for(;tt1;)if(et[tt].disabled){if(this.focusedRadio&&tt===et.indexOf(this.focusedRadio))break;if(tt+1>=et.length){if(this.isInsideToolbar)break;tt=0}else tt+=1}else{this.moveToRadioByIndex(et,tt);break}},this.moveLeft=_e=>{const et=this.slottedRadioButtons;let tt=0;if(tt=this.focusedRadio?et.indexOf(this.focusedRadio)-1:0,tt=tt<0?et.length-1:tt,this.shouldMoveOffGroupToTheLeft(et,_e.key)){this.moveLeftOffGroup();return}for(;tt>=0&&et.length>1;)if(et[tt].disabled){if(this.focusedRadio&&tt===et.indexOf(this.focusedRadio))break;tt-1<0?tt=et.length-1:tt-=1}else{this.moveToRadioByIndex(et,tt);break}},this.keydownHandler=_e=>{const et=_e.key;if(et in ArrowKeys&&this.isInsideFoundationToolbar)return!0;switch(et){case keyEnter:{this.checkFocusedRadio();break}case keyArrowRight:case keyArrowDown:{this.direction===Direction.ltr?this.moveRight(_e):this.moveLeft(_e);break}case keyArrowLeft:case keyArrowUp:{this.direction===Direction.ltr?this.moveLeft(_e):this.moveRight(_e);break}default:return!0}}}readOnlyChanged(){this.slottedRadioButtons!==void 0&&this.slottedRadioButtons.forEach(_e=>{this.readOnly?_e.readOnly=!0:_e.readOnly=!1})}disabledChanged(){this.slottedRadioButtons!==void 0&&this.slottedRadioButtons.forEach(_e=>{this.disabled?_e.disabled=!0:_e.disabled=!1})}nameChanged(){this.slottedRadioButtons&&this.slottedRadioButtons.forEach(_e=>{_e.setAttribute("name",this.name)})}valueChanged(){this.slottedRadioButtons&&this.slottedRadioButtons.forEach(_e=>{_e.value===this.value&&(_e.checked=!0,this.selectedRadio=_e)}),this.$emit("change")}slottedRadioButtonsChanged(_e,et){this.slottedRadioButtons&&this.slottedRadioButtons.length>0&&this.setupRadioButtons()}get parentToolbar(){return this.closest('[role="toolbar"]')}get isInsideToolbar(){var _e;return(_e=this.parentToolbar)!==null&&_e!==void 0?_e:!1}get isInsideFoundationToolbar(){var _e;return!!(!((_e=this.parentToolbar)===null||_e===void 0)&&_e.$fastController)}connectedCallback(){super.connectedCallback(),this.direction=getDirection(this),this.setupRadioButtons()}disconnectedCallback(){this.slottedRadioButtons.forEach(_e=>{_e.removeEventListener("change",this.radioChangeHandler)})}setupRadioButtons(){const _e=this.slottedRadioButtons.filter(rt=>rt.hasAttribute("checked")),et=_e?_e.length:0;if(et>1){const rt=_e[et-1];rt.checked=!0}let tt=!1;if(this.slottedRadioButtons.forEach(rt=>{this.name!==void 0&&rt.setAttribute("name",this.name),this.disabled&&(rt.disabled=!0),this.readOnly&&(rt.readOnly=!0),this.value&&this.value===rt.value?(this.selectedRadio=rt,this.focusedRadio=rt,rt.checked=!0,rt.setAttribute("tabindex","0"),tt=!0):(this.isInsideFoundationToolbar||rt.setAttribute("tabindex","-1"),rt.checked=!1),rt.addEventListener("change",this.radioChangeHandler)}),this.value===void 0&&this.slottedRadioButtons.length>0){const rt=this.slottedRadioButtons.filter(ot=>ot.hasAttribute("checked")),nt=rt!==null?rt.length:0;if(nt>0&&!tt){const ot=rt[nt-1];ot.checked=!0,this.focusedRadio=ot,ot.setAttribute("tabindex","0")}else this.slottedRadioButtons[0].setAttribute("tabindex","0"),this.focusedRadio=this.slottedRadioButtons[0]}}};__decorate([attr({attribute:"readonly",mode:"boolean"})],RadioGroup$1.prototype,"readOnly",void 0);__decorate([attr({attribute:"disabled",mode:"boolean"})],RadioGroup$1.prototype,"disabled",void 0);__decorate([attr],RadioGroup$1.prototype,"name",void 0);__decorate([attr],RadioGroup$1.prototype,"value",void 0);__decorate([attr],RadioGroup$1.prototype,"orientation",void 0);__decorate([observable],RadioGroup$1.prototype,"childItems",void 0);__decorate([observable],RadioGroup$1.prototype,"slottedRadioButtons",void 0);const radioTemplate=(j,_e)=>html$4` +`;let RadioGroup$1=class extends FoundationElement{constructor(){super(...arguments),this.orientation=Orientation.horizontal,this.radioChangeHandler=_e=>{const et=_e.target;et.checked&&(this.slottedRadioButtons.forEach(tt=>{tt!==et&&(tt.checked=!1,this.isInsideFoundationToolbar||tt.setAttribute("tabindex","-1"))}),this.selectedRadio=et,this.value=et.value,et.setAttribute("tabindex","0"),this.focusedRadio=et),_e.stopPropagation()},this.moveToRadioByIndex=(_e,et)=>{const tt=_e[et];this.isInsideToolbar||(tt.setAttribute("tabindex","0"),tt.readOnly?this.slottedRadioButtons.forEach(rt=>{rt!==tt&&rt.setAttribute("tabindex","-1")}):(tt.checked=!0,this.selectedRadio=tt)),this.focusedRadio=tt,tt.focus()},this.moveRightOffGroup=()=>{var _e;(_e=this.nextElementSibling)===null||_e===void 0||_e.focus()},this.moveLeftOffGroup=()=>{var _e;(_e=this.previousElementSibling)===null||_e===void 0||_e.focus()},this.focusOutHandler=_e=>{const et=this.slottedRadioButtons,tt=_e.target,rt=tt!==null?et.indexOf(tt):0,nt=this.focusedRadio?et.indexOf(this.focusedRadio):-1;return(nt===0&&rt===nt||nt===et.length-1&&nt===rt)&&(this.selectedRadio?(this.focusedRadio=this.selectedRadio,this.isInsideFoundationToolbar||(this.selectedRadio.setAttribute("tabindex","0"),et.forEach(ot=>{ot!==this.selectedRadio&&ot.setAttribute("tabindex","-1")}))):(this.focusedRadio=et[0],this.focusedRadio.setAttribute("tabindex","0"),et.forEach(ot=>{ot!==this.focusedRadio&&ot.setAttribute("tabindex","-1")}))),!0},this.clickHandler=_e=>{const et=_e.target;if(et){const tt=this.slottedRadioButtons;et.checked||tt.indexOf(et)===0?(et.setAttribute("tabindex","0"),this.selectedRadio=et):(et.setAttribute("tabindex","-1"),this.selectedRadio=null),this.focusedRadio=et}_e.preventDefault()},this.shouldMoveOffGroupToTheRight=(_e,et,tt)=>_e===et.length&&this.isInsideToolbar&&tt===keyArrowRight,this.shouldMoveOffGroupToTheLeft=(_e,et)=>(this.focusedRadio?_e.indexOf(this.focusedRadio)-1:0)<0&&this.isInsideToolbar&&et===keyArrowLeft,this.checkFocusedRadio=()=>{this.focusedRadio!==null&&!this.focusedRadio.readOnly&&!this.focusedRadio.checked&&(this.focusedRadio.checked=!0,this.focusedRadio.setAttribute("tabindex","0"),this.focusedRadio.focus(),this.selectedRadio=this.focusedRadio)},this.moveRight=_e=>{const et=this.slottedRadioButtons;let tt=0;if(tt=this.focusedRadio?et.indexOf(this.focusedRadio)+1:1,this.shouldMoveOffGroupToTheRight(tt,et,_e.key)){this.moveRightOffGroup();return}else tt===et.length&&(tt=0);for(;tt1;)if(et[tt].disabled){if(this.focusedRadio&&tt===et.indexOf(this.focusedRadio))break;if(tt+1>=et.length){if(this.isInsideToolbar)break;tt=0}else tt+=1}else{this.moveToRadioByIndex(et,tt);break}},this.moveLeft=_e=>{const et=this.slottedRadioButtons;let tt=0;if(tt=this.focusedRadio?et.indexOf(this.focusedRadio)-1:0,tt=tt<0?et.length-1:tt,this.shouldMoveOffGroupToTheLeft(et,_e.key)){this.moveLeftOffGroup();return}for(;tt>=0&&et.length>1;)if(et[tt].disabled){if(this.focusedRadio&&tt===et.indexOf(this.focusedRadio))break;tt-1<0?tt=et.length-1:tt-=1}else{this.moveToRadioByIndex(et,tt);break}},this.keydownHandler=_e=>{const et=_e.key;if(et in ArrowKeys&&this.isInsideFoundationToolbar)return!0;switch(et){case keyEnter:{this.checkFocusedRadio();break}case keyArrowRight:case keyArrowDown:{this.direction===Direction.ltr?this.moveRight(_e):this.moveLeft(_e);break}case keyArrowLeft:case keyArrowUp:{this.direction===Direction.ltr?this.moveLeft(_e):this.moveRight(_e);break}default:return!0}}}readOnlyChanged(){this.slottedRadioButtons!==void 0&&this.slottedRadioButtons.forEach(_e=>{this.readOnly?_e.readOnly=!0:_e.readOnly=!1})}disabledChanged(){this.slottedRadioButtons!==void 0&&this.slottedRadioButtons.forEach(_e=>{this.disabled?_e.disabled=!0:_e.disabled=!1})}nameChanged(){this.slottedRadioButtons&&this.slottedRadioButtons.forEach(_e=>{_e.setAttribute("name",this.name)})}valueChanged(){this.slottedRadioButtons&&this.slottedRadioButtons.forEach(_e=>{_e.value===this.value&&(_e.checked=!0,this.selectedRadio=_e)}),this.$emit("change")}slottedRadioButtonsChanged(_e,et){this.slottedRadioButtons&&this.slottedRadioButtons.length>0&&this.setupRadioButtons()}get parentToolbar(){return this.closest('[role="toolbar"]')}get isInsideToolbar(){var _e;return(_e=this.parentToolbar)!==null&&_e!==void 0?_e:!1}get isInsideFoundationToolbar(){var _e;return!!(!((_e=this.parentToolbar)===null||_e===void 0)&&_e.$fastController)}connectedCallback(){super.connectedCallback(),this.direction=getDirection(this),this.setupRadioButtons()}disconnectedCallback(){this.slottedRadioButtons.forEach(_e=>{_e.removeEventListener("change",this.radioChangeHandler)})}setupRadioButtons(){const _e=this.slottedRadioButtons.filter(rt=>rt.hasAttribute("checked")),et=_e?_e.length:0;if(et>1){const rt=_e[et-1];rt.checked=!0}let tt=!1;if(this.slottedRadioButtons.forEach(rt=>{this.name!==void 0&&rt.setAttribute("name",this.name),this.disabled&&(rt.disabled=!0),this.readOnly&&(rt.readOnly=!0),this.value&&this.value===rt.value?(this.selectedRadio=rt,this.focusedRadio=rt,rt.checked=!0,rt.setAttribute("tabindex","0"),tt=!0):(this.isInsideFoundationToolbar||rt.setAttribute("tabindex","-1"),rt.checked=!1),rt.addEventListener("change",this.radioChangeHandler)}),this.value===void 0&&this.slottedRadioButtons.length>0){const rt=this.slottedRadioButtons.filter(ot=>ot.hasAttribute("checked")),nt=rt!==null?rt.length:0;if(nt>0&&!tt){const ot=rt[nt-1];ot.checked=!0,this.focusedRadio=ot,ot.setAttribute("tabindex","0")}else this.slottedRadioButtons[0].setAttribute("tabindex","0"),this.focusedRadio=this.slottedRadioButtons[0]}}};__decorate([attr({attribute:"readonly",mode:"boolean"})],RadioGroup$1.prototype,"readOnly",void 0);__decorate([attr({attribute:"disabled",mode:"boolean"})],RadioGroup$1.prototype,"disabled",void 0);__decorate([attr],RadioGroup$1.prototype,"name",void 0);__decorate([attr],RadioGroup$1.prototype,"value",void 0);__decorate([attr],RadioGroup$1.prototype,"orientation",void 0);__decorate([observable],RadioGroup$1.prototype,"childItems",void 0);__decorate([observable],RadioGroup$1.prototype,"slottedRadioButtons",void 0);const radioTemplate=(j,_e)=>html` -`;class _Radio extends FoundationElement{}class FormAssociatedRadio extends CheckableFormAssociated(_Radio){constructor(){super(...arguments),this.proxy=document.createElement("input")}}let Radio$1=class extends FormAssociatedRadio{constructor(){super(),this.initialValue="on",this.keypressHandler=_e=>{switch(_e.key){case keySpace:!this.checked&&!this.readOnly&&(this.checked=!0);return}return!0},this.proxy.setAttribute("type","radio")}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly)}defaultCheckedChanged(){var _e;this.$fastController.isConnected&&!this.dirtyChecked&&(this.isInsideRadioGroup()||(this.checked=(_e=this.defaultChecked)!==null&&_e!==void 0?_e:!1,this.dirtyChecked=!1))}connectedCallback(){var _e,et;super.connectedCallback(),this.validate(),((_e=this.parentElement)===null||_e===void 0?void 0:_e.getAttribute("role"))!=="radiogroup"&&this.getAttribute("tabindex")===null&&(this.disabled||this.setAttribute("tabindex","0")),this.checkedAttribute&&(this.dirtyChecked||this.isInsideRadioGroup()||(this.checked=(et=this.defaultChecked)!==null&&et!==void 0?et:!1,this.dirtyChecked=!1))}isInsideRadioGroup(){return this.closest("[role=radiogroup]")!==null}clickHandler(_e){!this.disabled&&!this.readOnly&&!this.checked&&(this.checked=!0)}};__decorate([attr({attribute:"readonly",mode:"boolean"})],Radio$1.prototype,"readOnly",void 0);__decorate([observable],Radio$1.prototype,"name",void 0);__decorate([observable],Radio$1.prototype,"defaultSlottedNodes",void 0);function whitespaceFilter(j,_e,et){return j.nodeType!==Node.TEXT_NODE?!0:typeof j.nodeValue=="string"&&!!j.nodeValue.trim().length}class _Select extends ListboxElement{}class FormAssociatedSelect extends FormAssociated(_Select){constructor(){super(...arguments),this.proxy=document.createElement("select")}}class Select extends FormAssociatedSelect{constructor(){super(...arguments),this.open=!1,this.forcedPosition=!1,this.listboxId=uniqueId$1("listbox-"),this.maxHeight=0}openChanged(_e,et){if(this.collapsible){if(this.open){this.ariaControls=this.listboxId,this.ariaExpanded="true",this.setPositioning(),this.focusAndScrollOptionIntoView(),this.indexWhenOpened=this.selectedIndex,DOM.queueUpdate(()=>this.focus());return}this.ariaControls="",this.ariaExpanded="false"}}get collapsible(){return!(this.multiple||typeof this.size=="number")}get value(){return Observable$1.track(this,"value"),this._value}set value(_e){var et,tt,rt,nt,ot,it,st;const lt=`${this._value}`;if(!((et=this._options)===null||et===void 0)&&et.length){const ut=this._options.findIndex(ft=>ft.value===_e),ct=(rt=(tt=this._options[this.selectedIndex])===null||tt===void 0?void 0:tt.value)!==null&&rt!==void 0?rt:null,dt=(ot=(nt=this._options[ut])===null||nt===void 0?void 0:nt.value)!==null&&ot!==void 0?ot:null;(ut===-1||ct!==dt)&&(_e="",this.selectedIndex=ut),_e=(st=(it=this.firstSelectedOption)===null||it===void 0?void 0:it.value)!==null&&st!==void 0?st:_e}lt!==_e&&(this._value=_e,super.valueChanged(lt,_e),Observable$1.notify(this,"value"),this.updateDisplayValue())}updateValue(_e){var et,tt;this.$fastController.isConnected&&(this.value=(tt=(et=this.firstSelectedOption)===null||et===void 0?void 0:et.value)!==null&&tt!==void 0?tt:""),_e&&(this.$emit("input"),this.$emit("change",this,{bubbles:!0,composed:void 0}))}selectedIndexChanged(_e,et){super.selectedIndexChanged(_e,et),this.updateValue()}positionChanged(_e,et){this.positionAttribute=et,this.setPositioning()}setPositioning(){const _e=this.getBoundingClientRect(),tt=window.innerHeight-_e.bottom;this.position=this.forcedPosition?this.positionAttribute:_e.top>tt?SelectPosition.above:SelectPosition.below,this.positionAttribute=this.forcedPosition?this.positionAttribute:this.position,this.maxHeight=this.position===SelectPosition.above?~~_e.top:~~tt}get displayValue(){var _e,et;return Observable$1.track(this,"displayValue"),(et=(_e=this.firstSelectedOption)===null||_e===void 0?void 0:_e.text)!==null&&et!==void 0?et:""}disabledChanged(_e,et){super.disabledChanged&&super.disabledChanged(_e,et),this.ariaDisabled=this.disabled?"true":"false"}formResetCallback(){this.setProxyOptions(),super.setDefaultSelectedOption(),this.selectedIndex===-1&&(this.selectedIndex=0)}clickHandler(_e){if(!this.disabled){if(this.open){const et=_e.target.closest("option,[role=option]");if(et&&et.disabled)return}return super.clickHandler(_e),this.open=this.collapsible&&!this.open,!this.open&&this.indexWhenOpened!==this.selectedIndex&&this.updateValue(!0),!0}}focusoutHandler(_e){var et;if(super.focusoutHandler(_e),!this.open)return!0;const tt=_e.relatedTarget;if(this.isSameNode(tt)){this.focus();return}!((et=this.options)===null||et===void 0)&&et.includes(tt)||(this.open=!1,this.indexWhenOpened!==this.selectedIndex&&this.updateValue(!0))}handleChange(_e,et){super.handleChange(_e,et),et==="value"&&this.updateValue()}slottedOptionsChanged(_e,et){this.options.forEach(tt=>{Observable$1.getNotifier(tt).unsubscribe(this,"value")}),super.slottedOptionsChanged(_e,et),this.options.forEach(tt=>{Observable$1.getNotifier(tt).subscribe(this,"value")}),this.setProxyOptions(),this.updateValue()}mousedownHandler(_e){var et;return _e.offsetX>=0&&_e.offsetX<=((et=this.listbox)===null||et===void 0?void 0:et.scrollWidth)?super.mousedownHandler(_e):this.collapsible}multipleChanged(_e,et){super.multipleChanged(_e,et),this.proxy&&(this.proxy.multiple=et)}selectedOptionsChanged(_e,et){var tt;super.selectedOptionsChanged(_e,et),(tt=this.options)===null||tt===void 0||tt.forEach((rt,nt)=>{var ot;const it=(ot=this.proxy)===null||ot===void 0?void 0:ot.options.item(nt);it&&(it.selected=rt.selected)})}setDefaultSelectedOption(){var _e;const et=(_e=this.options)!==null&&_e!==void 0?_e:Array.from(this.children).filter(Listbox.slottedOptionFilter),tt=et==null?void 0:et.findIndex(rt=>rt.hasAttribute("selected")||rt.selected||rt.value===this.value);if(tt!==-1){this.selectedIndex=tt;return}this.selectedIndex=0}setProxyOptions(){this.proxy instanceof HTMLSelectElement&&this.options&&(this.proxy.options.length=0,this.options.forEach(_e=>{const et=_e.proxy||(_e instanceof HTMLOptionElement?_e.cloneNode():null);et&&this.proxy.options.add(et)}))}keydownHandler(_e){super.keydownHandler(_e);const et=_e.key||_e.key.charCodeAt(0);switch(et){case keySpace:{_e.preventDefault(),this.collapsible&&this.typeAheadExpired&&(this.open=!this.open);break}case keyHome:case keyEnd:{_e.preventDefault();break}case keyEnter:{_e.preventDefault(),this.open=!this.open;break}case keyEscape:{this.collapsible&&this.open&&(_e.preventDefault(),this.open=!1);break}case keyTab:return this.collapsible&&this.open&&(_e.preventDefault(),this.open=!1),!0}return!this.open&&this.indexWhenOpened!==this.selectedIndex&&(this.updateValue(!0),this.indexWhenOpened=this.selectedIndex),!(et===keyArrowDown||et===keyArrowUp)}connectedCallback(){super.connectedCallback(),this.forcedPosition=!!this.positionAttribute,this.addEventListener("contentchange",this.updateDisplayValue)}disconnectedCallback(){this.removeEventListener("contentchange",this.updateDisplayValue),super.disconnectedCallback()}sizeChanged(_e,et){super.sizeChanged(_e,et),this.proxy&&(this.proxy.size=et)}updateDisplayValue(){this.collapsible&&Observable$1.notify(this,"displayValue")}}__decorate([attr({attribute:"open",mode:"boolean"})],Select.prototype,"open",void 0);__decorate([volatile],Select.prototype,"collapsible",null);__decorate([observable],Select.prototype,"control",void 0);__decorate([attr({attribute:"position"})],Select.prototype,"positionAttribute",void 0);__decorate([observable],Select.prototype,"position",void 0);__decorate([observable],Select.prototype,"maxHeight",void 0);class DelegatesARIASelect{}__decorate([observable],DelegatesARIASelect.prototype,"ariaControls",void 0);applyMixins(DelegatesARIASelect,DelegatesARIAListbox);applyMixins(Select,StartEnd,DelegatesARIASelect);const selectTemplate=(j,_e)=>html$4` +`;class _Radio extends FoundationElement{}class FormAssociatedRadio extends CheckableFormAssociated(_Radio){constructor(){super(...arguments),this.proxy=document.createElement("input")}}let Radio$1=class extends FormAssociatedRadio{constructor(){super(),this.initialValue="on",this.keypressHandler=_e=>{switch(_e.key){case keySpace:!this.checked&&!this.readOnly&&(this.checked=!0);return}return!0},this.proxy.setAttribute("type","radio")}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly)}defaultCheckedChanged(){var _e;this.$fastController.isConnected&&!this.dirtyChecked&&(this.isInsideRadioGroup()||(this.checked=(_e=this.defaultChecked)!==null&&_e!==void 0?_e:!1,this.dirtyChecked=!1))}connectedCallback(){var _e,et;super.connectedCallback(),this.validate(),((_e=this.parentElement)===null||_e===void 0?void 0:_e.getAttribute("role"))!=="radiogroup"&&this.getAttribute("tabindex")===null&&(this.disabled||this.setAttribute("tabindex","0")),this.checkedAttribute&&(this.dirtyChecked||this.isInsideRadioGroup()||(this.checked=(et=this.defaultChecked)!==null&&et!==void 0?et:!1,this.dirtyChecked=!1))}isInsideRadioGroup(){return this.closest("[role=radiogroup]")!==null}clickHandler(_e){!this.disabled&&!this.readOnly&&!this.checked&&(this.checked=!0)}};__decorate([attr({attribute:"readonly",mode:"boolean"})],Radio$1.prototype,"readOnly",void 0);__decorate([observable],Radio$1.prototype,"name",void 0);__decorate([observable],Radio$1.prototype,"defaultSlottedNodes",void 0);function whitespaceFilter(j,_e,et){return j.nodeType!==Node.TEXT_NODE?!0:typeof j.nodeValue=="string"&&!!j.nodeValue.trim().length}class _Select extends ListboxElement{}class FormAssociatedSelect extends FormAssociated(_Select){constructor(){super(...arguments),this.proxy=document.createElement("select")}}class Select extends FormAssociatedSelect{constructor(){super(...arguments),this.open=!1,this.forcedPosition=!1,this.listboxId=uniqueId$1("listbox-"),this.maxHeight=0}openChanged(_e,et){if(this.collapsible){if(this.open){this.ariaControls=this.listboxId,this.ariaExpanded="true",this.setPositioning(),this.focusAndScrollOptionIntoView(),this.indexWhenOpened=this.selectedIndex,DOM.queueUpdate(()=>this.focus());return}this.ariaControls="",this.ariaExpanded="false"}}get collapsible(){return!(this.multiple||typeof this.size=="number")}get value(){return Observable$1.track(this,"value"),this._value}set value(_e){var et,tt,rt,nt,ot,it,st;const lt=`${this._value}`;if(!((et=this._options)===null||et===void 0)&&et.length){const ut=this._options.findIndex(ft=>ft.value===_e),ct=(rt=(tt=this._options[this.selectedIndex])===null||tt===void 0?void 0:tt.value)!==null&&rt!==void 0?rt:null,dt=(ot=(nt=this._options[ut])===null||nt===void 0?void 0:nt.value)!==null&&ot!==void 0?ot:null;(ut===-1||ct!==dt)&&(_e="",this.selectedIndex=ut),_e=(st=(it=this.firstSelectedOption)===null||it===void 0?void 0:it.value)!==null&&st!==void 0?st:_e}lt!==_e&&(this._value=_e,super.valueChanged(lt,_e),Observable$1.notify(this,"value"),this.updateDisplayValue())}updateValue(_e){var et,tt;this.$fastController.isConnected&&(this.value=(tt=(et=this.firstSelectedOption)===null||et===void 0?void 0:et.value)!==null&&tt!==void 0?tt:""),_e&&(this.$emit("input"),this.$emit("change",this,{bubbles:!0,composed:void 0}))}selectedIndexChanged(_e,et){super.selectedIndexChanged(_e,et),this.updateValue()}positionChanged(_e,et){this.positionAttribute=et,this.setPositioning()}setPositioning(){const _e=this.getBoundingClientRect(),tt=window.innerHeight-_e.bottom;this.position=this.forcedPosition?this.positionAttribute:_e.top>tt?SelectPosition.above:SelectPosition.below,this.positionAttribute=this.forcedPosition?this.positionAttribute:this.position,this.maxHeight=this.position===SelectPosition.above?~~_e.top:~~tt}get displayValue(){var _e,et;return Observable$1.track(this,"displayValue"),(et=(_e=this.firstSelectedOption)===null||_e===void 0?void 0:_e.text)!==null&&et!==void 0?et:""}disabledChanged(_e,et){super.disabledChanged&&super.disabledChanged(_e,et),this.ariaDisabled=this.disabled?"true":"false"}formResetCallback(){this.setProxyOptions(),super.setDefaultSelectedOption(),this.selectedIndex===-1&&(this.selectedIndex=0)}clickHandler(_e){if(!this.disabled){if(this.open){const et=_e.target.closest("option,[role=option]");if(et&&et.disabled)return}return super.clickHandler(_e),this.open=this.collapsible&&!this.open,!this.open&&this.indexWhenOpened!==this.selectedIndex&&this.updateValue(!0),!0}}focusoutHandler(_e){var et;if(super.focusoutHandler(_e),!this.open)return!0;const tt=_e.relatedTarget;if(this.isSameNode(tt)){this.focus();return}!((et=this.options)===null||et===void 0)&&et.includes(tt)||(this.open=!1,this.indexWhenOpened!==this.selectedIndex&&this.updateValue(!0))}handleChange(_e,et){super.handleChange(_e,et),et==="value"&&this.updateValue()}slottedOptionsChanged(_e,et){this.options.forEach(tt=>{Observable$1.getNotifier(tt).unsubscribe(this,"value")}),super.slottedOptionsChanged(_e,et),this.options.forEach(tt=>{Observable$1.getNotifier(tt).subscribe(this,"value")}),this.setProxyOptions(),this.updateValue()}mousedownHandler(_e){var et;return _e.offsetX>=0&&_e.offsetX<=((et=this.listbox)===null||et===void 0?void 0:et.scrollWidth)?super.mousedownHandler(_e):this.collapsible}multipleChanged(_e,et){super.multipleChanged(_e,et),this.proxy&&(this.proxy.multiple=et)}selectedOptionsChanged(_e,et){var tt;super.selectedOptionsChanged(_e,et),(tt=this.options)===null||tt===void 0||tt.forEach((rt,nt)=>{var ot;const it=(ot=this.proxy)===null||ot===void 0?void 0:ot.options.item(nt);it&&(it.selected=rt.selected)})}setDefaultSelectedOption(){var _e;const et=(_e=this.options)!==null&&_e!==void 0?_e:Array.from(this.children).filter(Listbox.slottedOptionFilter),tt=et==null?void 0:et.findIndex(rt=>rt.hasAttribute("selected")||rt.selected||rt.value===this.value);if(tt!==-1){this.selectedIndex=tt;return}this.selectedIndex=0}setProxyOptions(){this.proxy instanceof HTMLSelectElement&&this.options&&(this.proxy.options.length=0,this.options.forEach(_e=>{const et=_e.proxy||(_e instanceof HTMLOptionElement?_e.cloneNode():null);et&&this.proxy.options.add(et)}))}keydownHandler(_e){super.keydownHandler(_e);const et=_e.key||_e.key.charCodeAt(0);switch(et){case keySpace:{_e.preventDefault(),this.collapsible&&this.typeAheadExpired&&(this.open=!this.open);break}case keyHome:case keyEnd:{_e.preventDefault();break}case keyEnter:{_e.preventDefault(),this.open=!this.open;break}case keyEscape:{this.collapsible&&this.open&&(_e.preventDefault(),this.open=!1);break}case keyTab:return this.collapsible&&this.open&&(_e.preventDefault(),this.open=!1),!0}return!this.open&&this.indexWhenOpened!==this.selectedIndex&&(this.updateValue(!0),this.indexWhenOpened=this.selectedIndex),!(et===keyArrowDown||et===keyArrowUp)}connectedCallback(){super.connectedCallback(),this.forcedPosition=!!this.positionAttribute,this.addEventListener("contentchange",this.updateDisplayValue)}disconnectedCallback(){this.removeEventListener("contentchange",this.updateDisplayValue),super.disconnectedCallback()}sizeChanged(_e,et){super.sizeChanged(_e,et),this.proxy&&(this.proxy.size=et)}updateDisplayValue(){this.collapsible&&Observable$1.notify(this,"displayValue")}}__decorate([attr({attribute:"open",mode:"boolean"})],Select.prototype,"open",void 0);__decorate([volatile],Select.prototype,"collapsible",null);__decorate([observable],Select.prototype,"control",void 0);__decorate([attr({attribute:"position"})],Select.prototype,"positionAttribute",void 0);__decorate([observable],Select.prototype,"position",void 0);__decorate([observable],Select.prototype,"maxHeight",void 0);class DelegatesARIASelect{}__decorate([observable],DelegatesARIASelect.prototype,"ariaControls",void 0);applyMixins(DelegatesARIASelect,DelegatesARIAListbox);applyMixins(Select,StartEnd,DelegatesARIASelect);const selectTemplate=(j,_e)=>html` -`,tabPanelTemplate=(j,_e)=>html$4` +`,tabPanelTemplate=(j,_e)=>html` -`;class TabPanel extends FoundationElement{}const tabTemplate=(j,_e)=>html$4` +`;class TabPanel extends FoundationElement{}const tabTemplate=(j,_e)=>html` -`;class Tab extends FoundationElement{}__decorate([attr({mode:"boolean"})],Tab.prototype,"disabled",void 0);const tabsTemplate=(j,_e)=>html$4` +`;class Tab extends FoundationElement{}__decorate([attr({mode:"boolean"})],Tab.prototype,"disabled",void 0);const tabsTemplate=(j,_e)=>html` -`,TabsOrientation={vertical:"vertical",horizontal:"horizontal"};class Tabs extends FoundationElement{constructor(){super(...arguments),this.orientation=TabsOrientation.horizontal,this.activeindicator=!0,this.showActiveIndicator=!0,this.prevActiveTabIndex=0,this.activeTabIndex=0,this.ticking=!1,this.change=()=>{this.$emit("change",this.activetab)},this.isDisabledElement=_e=>_e.getAttribute("aria-disabled")==="true",this.isHiddenElement=_e=>_e.hasAttribute("hidden"),this.isFocusableElement=_e=>!this.isDisabledElement(_e)&&!this.isHiddenElement(_e),this.setTabs=()=>{const _e="gridColumn",et="gridRow",tt=this.isHorizontal()?_e:et;this.activeTabIndex=this.getActiveIndex(),this.showActiveIndicator=!1,this.tabs.forEach((rt,nt)=>{if(rt.slot==="tab"){const ot=this.activeTabIndex===nt&&this.isFocusableElement(rt);this.activeindicator&&this.isFocusableElement(rt)&&(this.showActiveIndicator=!0);const it=this.tabIds[nt],st=this.tabpanelIds[nt];rt.setAttribute("id",it),rt.setAttribute("aria-selected",ot?"true":"false"),rt.setAttribute("aria-controls",st),rt.addEventListener("click",this.handleTabClick),rt.addEventListener("keydown",this.handleTabKeyDown),rt.setAttribute("tabindex",ot?"0":"-1"),ot&&(this.activetab=rt,this.activeid=it)}rt.style[_e]="",rt.style[et]="",rt.style[tt]=`${nt+1}`,this.isHorizontal()?rt.classList.remove("vertical"):rt.classList.add("vertical")})},this.setTabPanels=()=>{this.tabpanels.forEach((_e,et)=>{const tt=this.tabIds[et],rt=this.tabpanelIds[et];_e.setAttribute("id",rt),_e.setAttribute("aria-labelledby",tt),this.activeTabIndex!==et?_e.setAttribute("hidden",""):_e.removeAttribute("hidden")})},this.handleTabClick=_e=>{const et=_e.currentTarget;et.nodeType===1&&this.isFocusableElement(et)&&(this.prevActiveTabIndex=this.activeTabIndex,this.activeTabIndex=this.tabs.indexOf(et),this.setComponent())},this.handleTabKeyDown=_e=>{if(this.isHorizontal())switch(_e.key){case keyArrowLeft:_e.preventDefault(),this.adjustBackward(_e);break;case keyArrowRight:_e.preventDefault(),this.adjustForward(_e);break}else switch(_e.key){case keyArrowUp:_e.preventDefault(),this.adjustBackward(_e);break;case keyArrowDown:_e.preventDefault(),this.adjustForward(_e);break}switch(_e.key){case keyHome:_e.preventDefault(),this.adjust(-this.activeTabIndex);break;case keyEnd:_e.preventDefault(),this.adjust(this.tabs.length-this.activeTabIndex-1);break}},this.adjustForward=_e=>{const et=this.tabs;let tt=0;for(tt=this.activetab?et.indexOf(this.activetab)+1:1,tt===et.length&&(tt=0);tt1;)if(this.isFocusableElement(et[tt])){this.moveToTabByIndex(et,tt);break}else{if(this.activetab&&tt===et.indexOf(this.activetab))break;tt+1>=et.length?tt=0:tt+=1}},this.adjustBackward=_e=>{const et=this.tabs;let tt=0;for(tt=this.activetab?et.indexOf(this.activetab)-1:0,tt=tt<0?et.length-1:tt;tt>=0&&et.length>1;)if(this.isFocusableElement(et[tt])){this.moveToTabByIndex(et,tt);break}else tt-1<0?tt=et.length-1:tt-=1},this.moveToTabByIndex=(_e,et)=>{const tt=_e[et];this.activetab=tt,this.prevActiveTabIndex=this.activeTabIndex,this.activeTabIndex=et,tt.focus(),this.setComponent()}}orientationChanged(){this.$fastController.isConnected&&(this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}activeidChanged(_e,et){this.$fastController.isConnected&&this.tabs.length<=this.tabpanels.length&&(this.prevActiveTabIndex=this.tabs.findIndex(tt=>tt.id===_e),this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}tabsChanged(){this.$fastController.isConnected&&this.tabs.length<=this.tabpanels.length&&(this.tabIds=this.getTabIds(),this.tabpanelIds=this.getTabPanelIds(),this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}tabpanelsChanged(){this.$fastController.isConnected&&this.tabpanels.length<=this.tabs.length&&(this.tabIds=this.getTabIds(),this.tabpanelIds=this.getTabPanelIds(),this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}getActiveIndex(){return this.activeid!==void 0?this.tabIds.indexOf(this.activeid)===-1?0:this.tabIds.indexOf(this.activeid):0}getTabIds(){return this.tabs.map(_e=>{var et;return(et=_e.getAttribute("id"))!==null&&et!==void 0?et:`tab-${uniqueId$1()}`})}getTabPanelIds(){return this.tabpanels.map(_e=>{var et;return(et=_e.getAttribute("id"))!==null&&et!==void 0?et:`panel-${uniqueId$1()}`})}setComponent(){this.activeTabIndex!==this.prevActiveTabIndex&&(this.activeid=this.tabIds[this.activeTabIndex],this.focusTab(),this.change())}isHorizontal(){return this.orientation===TabsOrientation.horizontal}handleActiveIndicatorPosition(){this.showActiveIndicator&&this.activeindicator&&this.activeTabIndex!==this.prevActiveTabIndex&&(this.ticking?this.ticking=!1:(this.ticking=!0,this.animateActiveIndicator()))}animateActiveIndicator(){this.ticking=!0;const _e=this.isHorizontal()?"gridColumn":"gridRow",et=this.isHorizontal()?"translateX":"translateY",tt=this.isHorizontal()?"offsetLeft":"offsetTop",rt=this.activeIndicatorRef[tt];this.activeIndicatorRef.style[_e]=`${this.activeTabIndex+1}`;const nt=this.activeIndicatorRef[tt];this.activeIndicatorRef.style[_e]=`${this.prevActiveTabIndex+1}`;const ot=nt-rt;this.activeIndicatorRef.style.transform=`${et}(${ot}px)`,this.activeIndicatorRef.classList.add("activeIndicatorTransition"),this.activeIndicatorRef.addEventListener("transitionend",()=>{this.ticking=!1,this.activeIndicatorRef.style[_e]=`${this.activeTabIndex+1}`,this.activeIndicatorRef.style.transform=`${et}(0px)`,this.activeIndicatorRef.classList.remove("activeIndicatorTransition")})}adjust(_e){const et=this.tabs.filter(ot=>this.isFocusableElement(ot)),tt=et.indexOf(this.activetab),rt=limit(0,et.length-1,tt+_e),nt=this.tabs.indexOf(et[rt]);nt>-1&&this.moveToTabByIndex(this.tabs,nt)}focusTab(){this.tabs[this.activeTabIndex].focus()}connectedCallback(){super.connectedCallback(),this.tabIds=this.getTabIds(),this.tabpanelIds=this.getTabPanelIds(),this.activeTabIndex=this.getActiveIndex()}}__decorate([attr],Tabs.prototype,"orientation",void 0);__decorate([attr],Tabs.prototype,"activeid",void 0);__decorate([observable],Tabs.prototype,"tabs",void 0);__decorate([observable],Tabs.prototype,"tabpanels",void 0);__decorate([attr({mode:"boolean"})],Tabs.prototype,"activeindicator",void 0);__decorate([observable],Tabs.prototype,"activeIndicatorRef",void 0);__decorate([observable],Tabs.prototype,"showActiveIndicator",void 0);applyMixins(Tabs,StartEnd);class _TextArea extends FoundationElement{}class FormAssociatedTextArea extends FormAssociated(_TextArea){constructor(){super(...arguments),this.proxy=document.createElement("textarea")}}const TextAreaResize={none:"none",both:"both",horizontal:"horizontal",vertical:"vertical"};let TextArea$1=class extends FormAssociatedTextArea{constructor(){super(...arguments),this.resize=TextAreaResize.none,this.cols=20,this.handleTextInput=()=>{this.value=this.control.value}}readOnlyChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.readOnly=this.readOnly)}autofocusChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.autofocus=this.autofocus)}listChanged(){this.proxy instanceof HTMLTextAreaElement&&this.proxy.setAttribute("list",this.list)}maxlengthChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.maxLength=this.maxlength)}minlengthChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.minLength=this.minlength)}spellcheckChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.spellcheck=this.spellcheck)}select(){this.control.select(),this.$emit("select")}handleChange(){this.$emit("change")}validate(){super.validate(this.control)}};__decorate([attr({mode:"boolean"})],TextArea$1.prototype,"readOnly",void 0);__decorate([attr],TextArea$1.prototype,"resize",void 0);__decorate([attr({mode:"boolean"})],TextArea$1.prototype,"autofocus",void 0);__decorate([attr({attribute:"form"})],TextArea$1.prototype,"formId",void 0);__decorate([attr],TextArea$1.prototype,"list",void 0);__decorate([attr({converter:nullableNumberConverter})],TextArea$1.prototype,"maxlength",void 0);__decorate([attr({converter:nullableNumberConverter})],TextArea$1.prototype,"minlength",void 0);__decorate([attr],TextArea$1.prototype,"name",void 0);__decorate([attr],TextArea$1.prototype,"placeholder",void 0);__decorate([attr({converter:nullableNumberConverter,mode:"fromView"})],TextArea$1.prototype,"cols",void 0);__decorate([attr({converter:nullableNumberConverter,mode:"fromView"})],TextArea$1.prototype,"rows",void 0);__decorate([attr({mode:"boolean"})],TextArea$1.prototype,"spellcheck",void 0);__decorate([observable],TextArea$1.prototype,"defaultSlottedNodes",void 0);applyMixins(TextArea$1,DelegatesARIATextbox);const textAreaTemplate=(j,_e)=>html$4` +`,TabsOrientation={vertical:"vertical",horizontal:"horizontal"};class Tabs extends FoundationElement{constructor(){super(...arguments),this.orientation=TabsOrientation.horizontal,this.activeindicator=!0,this.showActiveIndicator=!0,this.prevActiveTabIndex=0,this.activeTabIndex=0,this.ticking=!1,this.change=()=>{this.$emit("change",this.activetab)},this.isDisabledElement=_e=>_e.getAttribute("aria-disabled")==="true",this.isHiddenElement=_e=>_e.hasAttribute("hidden"),this.isFocusableElement=_e=>!this.isDisabledElement(_e)&&!this.isHiddenElement(_e),this.setTabs=()=>{const _e="gridColumn",et="gridRow",tt=this.isHorizontal()?_e:et;this.activeTabIndex=this.getActiveIndex(),this.showActiveIndicator=!1,this.tabs.forEach((rt,nt)=>{if(rt.slot==="tab"){const ot=this.activeTabIndex===nt&&this.isFocusableElement(rt);this.activeindicator&&this.isFocusableElement(rt)&&(this.showActiveIndicator=!0);const it=this.tabIds[nt],st=this.tabpanelIds[nt];rt.setAttribute("id",it),rt.setAttribute("aria-selected",ot?"true":"false"),rt.setAttribute("aria-controls",st),rt.addEventListener("click",this.handleTabClick),rt.addEventListener("keydown",this.handleTabKeyDown),rt.setAttribute("tabindex",ot?"0":"-1"),ot&&(this.activetab=rt,this.activeid=it)}rt.style[_e]="",rt.style[et]="",rt.style[tt]=`${nt+1}`,this.isHorizontal()?rt.classList.remove("vertical"):rt.classList.add("vertical")})},this.setTabPanels=()=>{this.tabpanels.forEach((_e,et)=>{const tt=this.tabIds[et],rt=this.tabpanelIds[et];_e.setAttribute("id",rt),_e.setAttribute("aria-labelledby",tt),this.activeTabIndex!==et?_e.setAttribute("hidden",""):_e.removeAttribute("hidden")})},this.handleTabClick=_e=>{const et=_e.currentTarget;et.nodeType===1&&this.isFocusableElement(et)&&(this.prevActiveTabIndex=this.activeTabIndex,this.activeTabIndex=this.tabs.indexOf(et),this.setComponent())},this.handleTabKeyDown=_e=>{if(this.isHorizontal())switch(_e.key){case keyArrowLeft:_e.preventDefault(),this.adjustBackward(_e);break;case keyArrowRight:_e.preventDefault(),this.adjustForward(_e);break}else switch(_e.key){case keyArrowUp:_e.preventDefault(),this.adjustBackward(_e);break;case keyArrowDown:_e.preventDefault(),this.adjustForward(_e);break}switch(_e.key){case keyHome:_e.preventDefault(),this.adjust(-this.activeTabIndex);break;case keyEnd:_e.preventDefault(),this.adjust(this.tabs.length-this.activeTabIndex-1);break}},this.adjustForward=_e=>{const et=this.tabs;let tt=0;for(tt=this.activetab?et.indexOf(this.activetab)+1:1,tt===et.length&&(tt=0);tt1;)if(this.isFocusableElement(et[tt])){this.moveToTabByIndex(et,tt);break}else{if(this.activetab&&tt===et.indexOf(this.activetab))break;tt+1>=et.length?tt=0:tt+=1}},this.adjustBackward=_e=>{const et=this.tabs;let tt=0;for(tt=this.activetab?et.indexOf(this.activetab)-1:0,tt=tt<0?et.length-1:tt;tt>=0&&et.length>1;)if(this.isFocusableElement(et[tt])){this.moveToTabByIndex(et,tt);break}else tt-1<0?tt=et.length-1:tt-=1},this.moveToTabByIndex=(_e,et)=>{const tt=_e[et];this.activetab=tt,this.prevActiveTabIndex=this.activeTabIndex,this.activeTabIndex=et,tt.focus(),this.setComponent()}}orientationChanged(){this.$fastController.isConnected&&(this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}activeidChanged(_e,et){this.$fastController.isConnected&&this.tabs.length<=this.tabpanels.length&&(this.prevActiveTabIndex=this.tabs.findIndex(tt=>tt.id===_e),this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}tabsChanged(){this.$fastController.isConnected&&this.tabs.length<=this.tabpanels.length&&(this.tabIds=this.getTabIds(),this.tabpanelIds=this.getTabPanelIds(),this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}tabpanelsChanged(){this.$fastController.isConnected&&this.tabpanels.length<=this.tabs.length&&(this.tabIds=this.getTabIds(),this.tabpanelIds=this.getTabPanelIds(),this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}getActiveIndex(){return this.activeid!==void 0?this.tabIds.indexOf(this.activeid)===-1?0:this.tabIds.indexOf(this.activeid):0}getTabIds(){return this.tabs.map(_e=>{var et;return(et=_e.getAttribute("id"))!==null&&et!==void 0?et:`tab-${uniqueId$1()}`})}getTabPanelIds(){return this.tabpanels.map(_e=>{var et;return(et=_e.getAttribute("id"))!==null&&et!==void 0?et:`panel-${uniqueId$1()}`})}setComponent(){this.activeTabIndex!==this.prevActiveTabIndex&&(this.activeid=this.tabIds[this.activeTabIndex],this.focusTab(),this.change())}isHorizontal(){return this.orientation===TabsOrientation.horizontal}handleActiveIndicatorPosition(){this.showActiveIndicator&&this.activeindicator&&this.activeTabIndex!==this.prevActiveTabIndex&&(this.ticking?this.ticking=!1:(this.ticking=!0,this.animateActiveIndicator()))}animateActiveIndicator(){this.ticking=!0;const _e=this.isHorizontal()?"gridColumn":"gridRow",et=this.isHorizontal()?"translateX":"translateY",tt=this.isHorizontal()?"offsetLeft":"offsetTop",rt=this.activeIndicatorRef[tt];this.activeIndicatorRef.style[_e]=`${this.activeTabIndex+1}`;const nt=this.activeIndicatorRef[tt];this.activeIndicatorRef.style[_e]=`${this.prevActiveTabIndex+1}`;const ot=nt-rt;this.activeIndicatorRef.style.transform=`${et}(${ot}px)`,this.activeIndicatorRef.classList.add("activeIndicatorTransition"),this.activeIndicatorRef.addEventListener("transitionend",()=>{this.ticking=!1,this.activeIndicatorRef.style[_e]=`${this.activeTabIndex+1}`,this.activeIndicatorRef.style.transform=`${et}(0px)`,this.activeIndicatorRef.classList.remove("activeIndicatorTransition")})}adjust(_e){const et=this.tabs.filter(ot=>this.isFocusableElement(ot)),tt=et.indexOf(this.activetab),rt=limit(0,et.length-1,tt+_e),nt=this.tabs.indexOf(et[rt]);nt>-1&&this.moveToTabByIndex(this.tabs,nt)}focusTab(){this.tabs[this.activeTabIndex].focus()}connectedCallback(){super.connectedCallback(),this.tabIds=this.getTabIds(),this.tabpanelIds=this.getTabPanelIds(),this.activeTabIndex=this.getActiveIndex()}}__decorate([attr],Tabs.prototype,"orientation",void 0);__decorate([attr],Tabs.prototype,"activeid",void 0);__decorate([observable],Tabs.prototype,"tabs",void 0);__decorate([observable],Tabs.prototype,"tabpanels",void 0);__decorate([attr({mode:"boolean"})],Tabs.prototype,"activeindicator",void 0);__decorate([observable],Tabs.prototype,"activeIndicatorRef",void 0);__decorate([observable],Tabs.prototype,"showActiveIndicator",void 0);applyMixins(Tabs,StartEnd);class _TextArea extends FoundationElement{}class FormAssociatedTextArea extends FormAssociated(_TextArea){constructor(){super(...arguments),this.proxy=document.createElement("textarea")}}const TextAreaResize={none:"none",both:"both",horizontal:"horizontal",vertical:"vertical"};let TextArea$1=class extends FormAssociatedTextArea{constructor(){super(...arguments),this.resize=TextAreaResize.none,this.cols=20,this.handleTextInput=()=>{this.value=this.control.value}}readOnlyChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.readOnly=this.readOnly)}autofocusChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.autofocus=this.autofocus)}listChanged(){this.proxy instanceof HTMLTextAreaElement&&this.proxy.setAttribute("list",this.list)}maxlengthChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.maxLength=this.maxlength)}minlengthChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.minLength=this.minlength)}spellcheckChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.spellcheck=this.spellcheck)}select(){this.control.select(),this.$emit("select")}handleChange(){this.$emit("change")}validate(){super.validate(this.control)}};__decorate([attr({mode:"boolean"})],TextArea$1.prototype,"readOnly",void 0);__decorate([attr],TextArea$1.prototype,"resize",void 0);__decorate([attr({mode:"boolean"})],TextArea$1.prototype,"autofocus",void 0);__decorate([attr({attribute:"form"})],TextArea$1.prototype,"formId",void 0);__decorate([attr],TextArea$1.prototype,"list",void 0);__decorate([attr({converter:nullableNumberConverter})],TextArea$1.prototype,"maxlength",void 0);__decorate([attr({converter:nullableNumberConverter})],TextArea$1.prototype,"minlength",void 0);__decorate([attr],TextArea$1.prototype,"name",void 0);__decorate([attr],TextArea$1.prototype,"placeholder",void 0);__decorate([attr({converter:nullableNumberConverter,mode:"fromView"})],TextArea$1.prototype,"cols",void 0);__decorate([attr({converter:nullableNumberConverter,mode:"fromView"})],TextArea$1.prototype,"rows",void 0);__decorate([attr({mode:"boolean"})],TextArea$1.prototype,"spellcheck",void 0);__decorate([observable],TextArea$1.prototype,"defaultSlottedNodes",void 0);applyMixins(TextArea$1,DelegatesARIATextbox);const textAreaTemplate=(j,_e)=>html` -`,textFieldTemplate=(j,_e)=>html$4` +`,textFieldTemplate=(j,_e)=>html` -`,disabledCursor="not-allowed",hidden=":host([hidden]){display:none}";function display(j){return`${hidden}:host{display:${j}}`}const focusVisible=canUseFocusVisible()?"focus-visible":"focus",reservedReactProperties=new Set(["children","localName","ref","style","className"]),emptyProps=Object.freeze(Object.create(null)),DEFAULT_CACHE_NAME="_default",wrappersCache=new Map;function setRef(j,_e){typeof j=="function"?j(_e):j.current=_e}function getTagName(j,_e){if(!_e.name){const et=FASTElementDefinition.forType(j);if(et)_e.name=et.name;else throw new Error("React wrappers must wrap a FASTElement or be configured with a name.")}return _e.name}function getElementEvents(j){return j.events||(j.events={})}function keyIsValid(j,_e,et){return reservedReactProperties.has(et)?(console.warn(`${getTagName(j,_e)} contains property ${et} which is a React reserved property. It will be used by React and not set on the element.`),!1):!0}function getElementKeys(j,_e){if(!_e.keys)if(_e.properties)_e.keys=new Set(_e.properties.concat(Object.keys(getElementEvents(_e))));else{const et=new Set(Object.keys(getElementEvents(_e))),tt=Observable$1.getAccessors(j.prototype);if(tt.length>0)for(const rt of tt)keyIsValid(j,_e,rt.name)&&et.add(rt.name);else for(const rt in j.prototype)!(rt in HTMLElement.prototype)&&keyIsValid(j,_e,rt)&&et.add(rt);_e.keys=et}return _e.keys}function provideReactWrapper(j,_e){let et=[];const tt={register(nt,...ot){et.forEach(it=>it.register(nt,...ot)),et=[]}};function rt(nt,ot={}){var it,st;nt instanceof FoundationElementRegistry&&(_e?_e.register(nt):et.push(nt),nt=nt.type);const lt=wrappersCache.get(nt);if(lt){const dt=lt.get((it=ot.name)!==null&&it!==void 0?it:DEFAULT_CACHE_NAME);if(dt)return dt}class ut extends j.Component{constructor(){super(...arguments),this._element=null}_updateElement(ft){const pt=this._element;if(pt===null)return;const gt=this.props,vt=ft||emptyProps,bt=getElementEvents(ot);for(const _t in this._elementProps){const xt=gt[_t],yt=bt[_t];if(yt===void 0)pt[_t]=xt;else{const Et=vt[_t];if(xt===Et)continue;Et!==void 0&&pt.removeEventListener(yt,Et),xt!==void 0&&pt.addEventListener(yt,xt)}}}componentDidMount(){this._updateElement()}componentDidUpdate(ft){this._updateElement(ft)}render(){const ft=this.props.__forwardedRef;(this._ref===void 0||this._userRef!==ft)&&(this._ref=_t=>{this._element===null&&(this._element=_t),ft!==null&&setRef(ft,_t),this._userRef=ft});const pt={ref:this._ref},gt=this._elementProps={},vt=getElementKeys(nt,ot),bt=this.props;for(const _t in bt){const xt=bt[_t];vt.has(_t)?gt[_t]=xt:pt[_t==="className"?"class":_t]=xt}return j.createElement(getTagName(nt,ot),pt)}}const ct=j.forwardRef((dt,ft)=>j.createElement(ut,Object.assign(Object.assign({},dt),{__forwardedRef:ft}),dt==null?void 0:dt.children));return wrappersCache.has(nt)||wrappersCache.set(nt,new Map),wrappersCache.get(nt).set((st=ot.name)!==null&&st!==void 0?st:DEFAULT_CACHE_NAME,ct),ct}return{wrap:rt,registry:tt}}function provideVSCodeDesignSystem(j){return DesignSystem.getOrCreate(j).withPrefix("vscode")}function initThemeChangeListener(j){window.addEventListener("load",()=>{new MutationObserver(()=>{applyCurrentTheme(j)}).observe(document.body,{attributes:!0,attributeFilter:["class"]}),applyCurrentTheme(j)})}function applyCurrentTheme(j){const _e=getComputedStyle(document.body),et=document.querySelector("body");if(et){const tt=et.getAttribute("data-vscode-theme-kind");for(const[rt,nt]of j){let ot=_e.getPropertyValue(rt).toString();if(tt==="vscode-high-contrast")ot.length===0&&nt.name.includes("background")&&(ot="transparent"),nt.name==="button-icon-hover-background"&&(ot="transparent");else if(tt==="vscode-high-contrast-light"){if(ot.length===0&&nt.name.includes("background"))switch(nt.name){case"button-primary-hover-background":ot="#0F4A85";break;case"button-secondary-hover-background":ot="transparent";break;case"button-icon-hover-background":ot="transparent";break}}else nt.name==="contrast-active-border"&&(ot="transparent");nt.setValueFor(et,ot)}}}const tokenMappings=new Map;let isThemeListenerInitialized=!1;function create$4(j,_e){const et=DesignToken.create(j);if(_e){if(_e.includes("--fake-vscode-token")){const tt="id"+Math.random().toString(16).slice(2);_e=`${_e}-${tt}`}tokenMappings.set(_e,et)}return isThemeListenerInitialized||(initThemeChangeListener(tokenMappings),isThemeListenerInitialized=!0),et}const background=create$4("background","--vscode-editor-background").withDefault("#1e1e1e"),borderWidth=create$4("border-width").withDefault(1),contrastActiveBorder=create$4("contrast-active-border","--vscode-contrastActiveBorder").withDefault("#f38518");create$4("contrast-border","--vscode-contrastBorder").withDefault("#6fc3df");const cornerRadius=create$4("corner-radius").withDefault(0),cornerRadiusRound=create$4("corner-radius-round").withDefault(2),designUnit=create$4("design-unit").withDefault(4),disabledOpacity=create$4("disabled-opacity").withDefault(.4),focusBorder=create$4("focus-border","--vscode-focusBorder").withDefault("#007fd4"),fontFamily=create$4("font-family","--vscode-font-family").withDefault("-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol");create$4("font-weight","--vscode-font-weight").withDefault("400");const foreground=create$4("foreground","--vscode-foreground").withDefault("#cccccc"),inputHeight=create$4("input-height").withDefault("26"),inputMinWidth=create$4("input-min-width").withDefault("100px"),typeRampBaseFontSize=create$4("type-ramp-base-font-size","--vscode-font-size").withDefault("13px"),typeRampBaseLineHeight=create$4("type-ramp-base-line-height").withDefault("normal"),typeRampMinus1FontSize=create$4("type-ramp-minus1-font-size").withDefault("11px"),typeRampMinus1LineHeight=create$4("type-ramp-minus1-line-height").withDefault("16px");create$4("type-ramp-minus2-font-size").withDefault("9px");create$4("type-ramp-minus2-line-height").withDefault("16px");create$4("type-ramp-plus1-font-size").withDefault("16px");create$4("type-ramp-plus1-line-height").withDefault("24px");const scrollbarWidth=create$4("scrollbarWidth").withDefault("10px"),scrollbarHeight=create$4("scrollbarHeight").withDefault("10px"),scrollbarSliderBackground=create$4("scrollbar-slider-background","--vscode-scrollbarSlider-background").withDefault("#79797966"),scrollbarSliderHoverBackground=create$4("scrollbar-slider-hover-background","--vscode-scrollbarSlider-hoverBackground").withDefault("#646464b3"),scrollbarSliderActiveBackground=create$4("scrollbar-slider-active-background","--vscode-scrollbarSlider-activeBackground").withDefault("#bfbfbf66"),badgeBackground=create$4("badge-background","--vscode-badge-background").withDefault("#4d4d4d"),badgeForeground=create$4("badge-foreground","--vscode-badge-foreground").withDefault("#ffffff"),buttonBorder=create$4("button-border","--vscode-button-border").withDefault("transparent"),buttonIconBackground=create$4("button-icon-background").withDefault("transparent"),buttonIconCornerRadius=create$4("button-icon-corner-radius").withDefault("5px"),buttonIconFocusBorderOffset=create$4("button-icon-outline-offset").withDefault(0),buttonIconHoverBackground=create$4("button-icon-hover-background","--fake-vscode-token").withDefault("rgba(90, 93, 94, 0.31)"),buttonIconPadding=create$4("button-icon-padding").withDefault("3px"),buttonPrimaryBackground=create$4("button-primary-background","--vscode-button-background").withDefault("#0e639c"),buttonPrimaryForeground=create$4("button-primary-foreground","--vscode-button-foreground").withDefault("#ffffff"),buttonPrimaryHoverBackground=create$4("button-primary-hover-background","--vscode-button-hoverBackground").withDefault("#1177bb"),buttonSecondaryBackground=create$4("button-secondary-background","--vscode-button-secondaryBackground").withDefault("#3a3d41"),buttonSecondaryForeground=create$4("button-secondary-foreground","--vscode-button-secondaryForeground").withDefault("#ffffff"),buttonSecondaryHoverBackground=create$4("button-secondary-hover-background","--vscode-button-secondaryHoverBackground").withDefault("#45494e"),buttonPaddingHorizontal=create$4("button-padding-horizontal").withDefault("11px"),buttonPaddingVertical=create$4("button-padding-vertical").withDefault("4px"),checkboxBackground=create$4("checkbox-background","--vscode-checkbox-background").withDefault("#3c3c3c"),checkboxBorder=create$4("checkbox-border","--vscode-checkbox-border").withDefault("#3c3c3c"),checkboxCornerRadius=create$4("checkbox-corner-radius").withDefault(3);create$4("checkbox-foreground","--vscode-checkbox-foreground").withDefault("#f0f0f0");const listActiveSelectionBackground=create$4("list-active-selection-background","--vscode-list-activeSelectionBackground").withDefault("#094771"),listActiveSelectionForeground=create$4("list-active-selection-foreground","--vscode-list-activeSelectionForeground").withDefault("#ffffff"),listHoverBackground=create$4("list-hover-background","--vscode-list-hoverBackground").withDefault("#2a2d2e"),dividerBackground=create$4("divider-background","--vscode-settings-dropdownListBorder").withDefault("#454545"),dropdownBackground=create$4("dropdown-background","--vscode-dropdown-background").withDefault("#3c3c3c"),dropdownBorder=create$4("dropdown-border","--vscode-dropdown-border").withDefault("#3c3c3c");create$4("dropdown-foreground","--vscode-dropdown-foreground").withDefault("#f0f0f0");const dropdownListMaxHeight=create$4("dropdown-list-max-height").withDefault("200px"),inputBackground=create$4("input-background","--vscode-input-background").withDefault("#3c3c3c"),inputForeground=create$4("input-foreground","--vscode-input-foreground").withDefault("#cccccc");create$4("input-placeholder-foreground","--vscode-input-placeholderForeground").withDefault("#cccccc");const linkActiveForeground=create$4("link-active-foreground","--vscode-textLink-activeForeground").withDefault("#3794ff"),linkForeground=create$4("link-foreground","--vscode-textLink-foreground").withDefault("#3794ff"),progressBackground=create$4("progress-background","--vscode-progressBar-background").withDefault("#0e70c0"),panelTabActiveBorder=create$4("panel-tab-active-border","--vscode-panelTitle-activeBorder").withDefault("#e7e7e7"),panelTabActiveForeground=create$4("panel-tab-active-foreground","--vscode-panelTitle-activeForeground").withDefault("#e7e7e7"),panelTabForeground=create$4("panel-tab-foreground","--vscode-panelTitle-inactiveForeground").withDefault("#e7e7e799");create$4("panel-view-background","--vscode-panel-background").withDefault("#1e1e1e");create$4("panel-view-border","--vscode-panel-border").withDefault("#80808059");const tagCornerRadius=create$4("tag-corner-radius").withDefault("2px"),badgeStyles=(j,_e)=>css$1` +`,disabledCursor="not-allowed",hidden=":host([hidden]){display:none}";function display(j){return`${hidden}:host{display:${j}}`}const focusVisible=canUseFocusVisible()?"focus-visible":"focus",reservedReactProperties=new Set(["children","localName","ref","style","className"]),emptyProps=Object.freeze(Object.create(null)),DEFAULT_CACHE_NAME="_default",wrappersCache=new Map;function setRef(j,_e){typeof j=="function"?j(_e):j.current=_e}function getTagName(j,_e){if(!_e.name){const et=FASTElementDefinition.forType(j);if(et)_e.name=et.name;else throw new Error("React wrappers must wrap a FASTElement or be configured with a name.")}return _e.name}function getElementEvents(j){return j.events||(j.events={})}function keyIsValid(j,_e,et){return reservedReactProperties.has(et)?(console.warn(`${getTagName(j,_e)} contains property ${et} which is a React reserved property. It will be used by React and not set on the element.`),!1):!0}function getElementKeys(j,_e){if(!_e.keys)if(_e.properties)_e.keys=new Set(_e.properties.concat(Object.keys(getElementEvents(_e))));else{const et=new Set(Object.keys(getElementEvents(_e))),tt=Observable$1.getAccessors(j.prototype);if(tt.length>0)for(const rt of tt)keyIsValid(j,_e,rt.name)&&et.add(rt.name);else for(const rt in j.prototype)!(rt in HTMLElement.prototype)&&keyIsValid(j,_e,rt)&&et.add(rt);_e.keys=et}return _e.keys}function provideReactWrapper(j,_e){let et=[];const tt={register(nt,...ot){et.forEach(it=>it.register(nt,...ot)),et=[]}};function rt(nt,ot={}){var it,st;nt instanceof FoundationElementRegistry&&(_e?_e.register(nt):et.push(nt),nt=nt.type);const lt=wrappersCache.get(nt);if(lt){const dt=lt.get((it=ot.name)!==null&&it!==void 0?it:DEFAULT_CACHE_NAME);if(dt)return dt}class ut extends j.Component{constructor(){super(...arguments),this._element=null}_updateElement(ft){const pt=this._element;if(pt===null)return;const gt=this.props,mt=ft||emptyProps,bt=getElementEvents(ot);for(const _t in this._elementProps){const xt=gt[_t],yt=bt[_t];if(yt===void 0)pt[_t]=xt;else{const Et=mt[_t];if(xt===Et)continue;Et!==void 0&&pt.removeEventListener(yt,Et),xt!==void 0&&pt.addEventListener(yt,xt)}}}componentDidMount(){this._updateElement()}componentDidUpdate(ft){this._updateElement(ft)}render(){const ft=this.props.__forwardedRef;(this._ref===void 0||this._userRef!==ft)&&(this._ref=_t=>{this._element===null&&(this._element=_t),ft!==null&&setRef(ft,_t),this._userRef=ft});const pt={ref:this._ref},gt=this._elementProps={},mt=getElementKeys(nt,ot),bt=this.props;for(const _t in bt){const xt=bt[_t];mt.has(_t)?gt[_t]=xt:pt[_t==="className"?"class":_t]=xt}return j.createElement(getTagName(nt,ot),pt)}}const ct=j.forwardRef((dt,ft)=>j.createElement(ut,Object.assign(Object.assign({},dt),{__forwardedRef:ft}),dt==null?void 0:dt.children));return wrappersCache.has(nt)||wrappersCache.set(nt,new Map),wrappersCache.get(nt).set((st=ot.name)!==null&&st!==void 0?st:DEFAULT_CACHE_NAME,ct),ct}return{wrap:rt,registry:tt}}function provideVSCodeDesignSystem(j){return DesignSystem.getOrCreate(j).withPrefix("vscode")}function initThemeChangeListener(j){window.addEventListener("load",()=>{new MutationObserver(()=>{applyCurrentTheme(j)}).observe(document.body,{attributes:!0,attributeFilter:["class"]}),applyCurrentTheme(j)})}function applyCurrentTheme(j){const _e=getComputedStyle(document.body),et=document.querySelector("body");if(et){const tt=et.getAttribute("data-vscode-theme-kind");for(const[rt,nt]of j){let ot=_e.getPropertyValue(rt).toString();if(tt==="vscode-high-contrast")ot.length===0&&nt.name.includes("background")&&(ot="transparent"),nt.name==="button-icon-hover-background"&&(ot="transparent");else if(tt==="vscode-high-contrast-light"){if(ot.length===0&&nt.name.includes("background"))switch(nt.name){case"button-primary-hover-background":ot="#0F4A85";break;case"button-secondary-hover-background":ot="transparent";break;case"button-icon-hover-background":ot="transparent";break}}else nt.name==="contrast-active-border"&&(ot="transparent");nt.setValueFor(et,ot)}}}const tokenMappings=new Map;let isThemeListenerInitialized=!1;function create$1(j,_e){const et=DesignToken.create(j);if(_e){if(_e.includes("--fake-vscode-token")){const tt="id"+Math.random().toString(16).slice(2);_e=`${_e}-${tt}`}tokenMappings.set(_e,et)}return isThemeListenerInitialized||(initThemeChangeListener(tokenMappings),isThemeListenerInitialized=!0),et}const background=create$1("background","--vscode-editor-background").withDefault("#1e1e1e"),borderWidth=create$1("border-width").withDefault(1),contrastActiveBorder=create$1("contrast-active-border","--vscode-contrastActiveBorder").withDefault("#f38518");create$1("contrast-border","--vscode-contrastBorder").withDefault("#6fc3df");const cornerRadius=create$1("corner-radius").withDefault(0),cornerRadiusRound=create$1("corner-radius-round").withDefault(2),designUnit=create$1("design-unit").withDefault(4),disabledOpacity=create$1("disabled-opacity").withDefault(.4),focusBorder=create$1("focus-border","--vscode-focusBorder").withDefault("#007fd4"),fontFamily=create$1("font-family","--vscode-font-family").withDefault("-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol");create$1("font-weight","--vscode-font-weight").withDefault("400");const foreground=create$1("foreground","--vscode-foreground").withDefault("#cccccc"),inputHeight=create$1("input-height").withDefault("26"),inputMinWidth=create$1("input-min-width").withDefault("100px"),typeRampBaseFontSize=create$1("type-ramp-base-font-size","--vscode-font-size").withDefault("13px"),typeRampBaseLineHeight=create$1("type-ramp-base-line-height").withDefault("normal"),typeRampMinus1FontSize=create$1("type-ramp-minus1-font-size").withDefault("11px"),typeRampMinus1LineHeight=create$1("type-ramp-minus1-line-height").withDefault("16px");create$1("type-ramp-minus2-font-size").withDefault("9px");create$1("type-ramp-minus2-line-height").withDefault("16px");create$1("type-ramp-plus1-font-size").withDefault("16px");create$1("type-ramp-plus1-line-height").withDefault("24px");const scrollbarWidth=create$1("scrollbarWidth").withDefault("10px"),scrollbarHeight=create$1("scrollbarHeight").withDefault("10px"),scrollbarSliderBackground=create$1("scrollbar-slider-background","--vscode-scrollbarSlider-background").withDefault("#79797966"),scrollbarSliderHoverBackground=create$1("scrollbar-slider-hover-background","--vscode-scrollbarSlider-hoverBackground").withDefault("#646464b3"),scrollbarSliderActiveBackground=create$1("scrollbar-slider-active-background","--vscode-scrollbarSlider-activeBackground").withDefault("#bfbfbf66"),badgeBackground=create$1("badge-background","--vscode-badge-background").withDefault("#4d4d4d"),badgeForeground=create$1("badge-foreground","--vscode-badge-foreground").withDefault("#ffffff"),buttonBorder=create$1("button-border","--vscode-button-border").withDefault("transparent"),buttonIconBackground=create$1("button-icon-background").withDefault("transparent"),buttonIconCornerRadius=create$1("button-icon-corner-radius").withDefault("5px"),buttonIconFocusBorderOffset=create$1("button-icon-outline-offset").withDefault(0),buttonIconHoverBackground=create$1("button-icon-hover-background","--fake-vscode-token").withDefault("rgba(90, 93, 94, 0.31)"),buttonIconPadding=create$1("button-icon-padding").withDefault("3px"),buttonPrimaryBackground=create$1("button-primary-background","--vscode-button-background").withDefault("#0e639c"),buttonPrimaryForeground=create$1("button-primary-foreground","--vscode-button-foreground").withDefault("#ffffff"),buttonPrimaryHoverBackground=create$1("button-primary-hover-background","--vscode-button-hoverBackground").withDefault("#1177bb"),buttonSecondaryBackground=create$1("button-secondary-background","--vscode-button-secondaryBackground").withDefault("#3a3d41"),buttonSecondaryForeground=create$1("button-secondary-foreground","--vscode-button-secondaryForeground").withDefault("#ffffff"),buttonSecondaryHoverBackground=create$1("button-secondary-hover-background","--vscode-button-secondaryHoverBackground").withDefault("#45494e"),buttonPaddingHorizontal=create$1("button-padding-horizontal").withDefault("11px"),buttonPaddingVertical=create$1("button-padding-vertical").withDefault("4px"),checkboxBackground=create$1("checkbox-background","--vscode-checkbox-background").withDefault("#3c3c3c"),checkboxBorder=create$1("checkbox-border","--vscode-checkbox-border").withDefault("#3c3c3c"),checkboxCornerRadius=create$1("checkbox-corner-radius").withDefault(3);create$1("checkbox-foreground","--vscode-checkbox-foreground").withDefault("#f0f0f0");const listActiveSelectionBackground=create$1("list-active-selection-background","--vscode-list-activeSelectionBackground").withDefault("#094771"),listActiveSelectionForeground=create$1("list-active-selection-foreground","--vscode-list-activeSelectionForeground").withDefault("#ffffff"),listHoverBackground=create$1("list-hover-background","--vscode-list-hoverBackground").withDefault("#2a2d2e"),dividerBackground=create$1("divider-background","--vscode-settings-dropdownListBorder").withDefault("#454545"),dropdownBackground=create$1("dropdown-background","--vscode-dropdown-background").withDefault("#3c3c3c"),dropdownBorder=create$1("dropdown-border","--vscode-dropdown-border").withDefault("#3c3c3c");create$1("dropdown-foreground","--vscode-dropdown-foreground").withDefault("#f0f0f0");const dropdownListMaxHeight=create$1("dropdown-list-max-height").withDefault("200px"),inputBackground=create$1("input-background","--vscode-input-background").withDefault("#3c3c3c"),inputForeground=create$1("input-foreground","--vscode-input-foreground").withDefault("#cccccc");create$1("input-placeholder-foreground","--vscode-input-placeholderForeground").withDefault("#cccccc");const linkActiveForeground=create$1("link-active-foreground","--vscode-textLink-activeForeground").withDefault("#3794ff"),linkForeground=create$1("link-foreground","--vscode-textLink-foreground").withDefault("#3794ff"),progressBackground=create$1("progress-background","--vscode-progressBar-background").withDefault("#0e70c0"),panelTabActiveBorder=create$1("panel-tab-active-border","--vscode-panelTitle-activeBorder").withDefault("#e7e7e7"),panelTabActiveForeground=create$1("panel-tab-active-foreground","--vscode-panelTitle-activeForeground").withDefault("#e7e7e7"),panelTabForeground=create$1("panel-tab-foreground","--vscode-panelTitle-inactiveForeground").withDefault("#e7e7e799");create$1("panel-view-background","--vscode-panel-background").withDefault("#1e1e1e");create$1("panel-view-border","--vscode-panel-border").withDefault("#80808059");const tagCornerRadius=create$1("tag-corner-radius").withDefault("2px"),badgeStyles=(j,_e)=>css$1` ${display("inline-block")} :host { box-sizing: border-box; font-family: ${fontFamily}; @@ -1785,20 +1785,20 @@ PERFORMANCE OF THIS SOFTWARE. :host([disabled]) .control { border-color: ${dropdownBorder}; } -`;class TextField extends TextField$1{connectedCallback(){super.connectedCallback(),this.textContent?this.setAttribute("aria-label",this.textContent):this.setAttribute("aria-label","Text field")}}const vsCodeTextField=TextField.compose({baseName:"text-field",template:textFieldTemplate,styles:textFieldStyles,shadowOptions:{delegatesFocus:!0}}),{wrap:wrap$1}=provideReactWrapper(React,provideVSCodeDesignSystem());wrap$1(vsCodeBadge(),{name:"vscode-badge"});wrap$1(vsCodeButton(),{name:"vscode-button"});wrap$1(vsCodeCheckbox(),{name:"vscode-checkbox",events:{onChange:"change"}});wrap$1(vsCodeDataGrid(),{name:"vscode-data-grid"});wrap$1(vsCodeDataGridCell(),{name:"vscode-data-grid-cell"});wrap$1(vsCodeDataGridRow(),{name:"vscode-data-grid-row"});wrap$1(vsCodeDivider(),{name:"vscode-divider"});wrap$1(vsCodeDropdown(),{name:"vscode-dropdown",events:{onChange:"change"}});wrap$1(vsCodeLink(),{name:"vscode-link"});wrap$1(vsCodeOption(),{name:"vscode-option"});wrap$1(vsCodePanels(),{name:"vscode-panels",events:{onChange:"change"}});wrap$1(vsCodePanelTab(),{name:"vscode-panel-tab"});wrap$1(vsCodePanelView(),{name:"vscode-panel-view"});const VSCodeProgressRing=wrap$1(vsCodeProgressRing(),{name:"vscode-progress-ring"});wrap$1(vsCodeRadio(),{name:"vscode-radio",events:{onChange:"change"}});wrap$1(vsCodeRadioGroup(),{name:"vscode-radio-group",events:{onChange:"change"}});wrap$1(vsCodeTag(),{name:"vscode-tag"});wrap$1(vsCodeTextArea(),{name:"vscode-text-area",events:{onChange:"change",onInput:"input"}});wrap$1(vsCodeTextField(),{name:"vscode-text-field",events:{onChange:"change",onInput:"input"}});const Loading=({isFullPage:j=!1,style:_e={}})=>{const et=j?{..._e,height:"100vh",width:"100%"}:{..._e};return jsxRuntimeExports.jsx(Stack$1,{horizontalAlign:"center",verticalAlign:"center",verticalFill:!0,style:et,children:jsxRuntimeExports.jsx(VSCodeProgressRing,{})})};memoizeFunction((j,_e)=>mergeStyleSets({root:mergeStyles$1({display:"flex",flexDirection:"row",alignItems:"center",height:"30px",background:"var(--background)",width:"100%",..._e&&{position:"fixed",top:0,zIndex:100}},j),buttonGroup:{display:"flex",flexDirection:"row",height:"30px"},searchField:{marginRight:"100px",selectors:{"div.root":{height:"30px"}}}}));var toggleSelection=function(){var j=document.getSelection();if(!j.rangeCount)return function(){};for(var _e=document.activeElement,et=[],tt=0;tt"u"){et&&console.warn("unable to use e.clipboardData"),et&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var ct=clipboardToIE11Formatting[_e.format]||clipboardToIE11Formatting.default;window.clipboardData.setData(ct,j)}else ut.clipboardData.clearData(),ut.clipboardData.setData(_e.format,j);_e.onCopy&&(ut.preventDefault(),_e.onCopy(ut.clipboardData))}),document.body.appendChild(it),nt.selectNodeContents(it),ot.addRange(nt);var lt=document.execCommand("copy");if(!lt)throw new Error("copy command was unsuccessful");st=!0}catch(ut){et&&console.error("unable to copy using execCommand: ",ut),et&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(_e.format||"text",j),_e.onCopy&&_e.onCopy(window.clipboardData),st=!0}catch(ct){et&&console.error("unable to copy using clipboardData: ",ct),et&&console.error("falling back to prompt"),tt=format$2("message"in _e?_e.message:defaultMessage),window.prompt(tt,j)}}finally{ot&&(typeof ot.removeRange=="function"?ot.removeRange(nt):ot.removeAllRanges()),it&&document.body.removeChild(it),rt()}return st}var copyToClipboard=copy$3;const copy$4=getDefaultExportFromCjs(copyToClipboard);var main={exports:{}};(function(j,_e){(function(et,tt){j.exports=tt(reactExports)})(commonjsGlobal,function(et){return function(tt){var rt={};function nt(ot){if(rt[ot])return rt[ot].exports;var it=rt[ot]={i:ot,l:!1,exports:{}};return tt[ot].call(it.exports,it,it.exports,nt),it.l=!0,it.exports}return nt.m=tt,nt.c=rt,nt.d=function(ot,it,st){nt.o(ot,it)||Object.defineProperty(ot,it,{enumerable:!0,get:st})},nt.r=function(ot){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(ot,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(ot,"__esModule",{value:!0})},nt.t=function(ot,it){if(1&it&&(ot=nt(ot)),8&it||4&it&&typeof ot=="object"&&ot&&ot.__esModule)return ot;var st=Object.create(null);if(nt.r(st),Object.defineProperty(st,"default",{enumerable:!0,value:ot}),2&it&&typeof ot!="string")for(var lt in ot)nt.d(st,lt,(function(ut){return ot[ut]}).bind(null,lt));return st},nt.n=function(ot){var it=ot&&ot.__esModule?function(){return ot.default}:function(){return ot};return nt.d(it,"a",it),it},nt.o=function(ot,it){return Object.prototype.hasOwnProperty.call(ot,it)},nt.p="",nt(nt.s=48)}([function(tt,rt){tt.exports=et},function(tt,rt){var nt=tt.exports={version:"2.6.12"};typeof __e=="number"&&(__e=nt)},function(tt,rt,nt){var ot=nt(26)("wks"),it=nt(17),st=nt(3).Symbol,lt=typeof st=="function";(tt.exports=function(ut){return ot[ut]||(ot[ut]=lt&&st[ut]||(lt?st:it)("Symbol."+ut))}).store=ot},function(tt,rt){var nt=tt.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=nt)},function(tt,rt,nt){tt.exports=!nt(8)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(tt,rt){var nt={}.hasOwnProperty;tt.exports=function(ot,it){return nt.call(ot,it)}},function(tt,rt,nt){var ot=nt(7),it=nt(16);tt.exports=nt(4)?function(st,lt,ut){return ot.f(st,lt,it(1,ut))}:function(st,lt,ut){return st[lt]=ut,st}},function(tt,rt,nt){var ot=nt(10),it=nt(35),st=nt(23),lt=Object.defineProperty;rt.f=nt(4)?Object.defineProperty:function(ut,ct,dt){if(ot(ut),ct=st(ct,!0),ot(dt),it)try{return lt(ut,ct,dt)}catch{}if("get"in dt||"set"in dt)throw TypeError("Accessors not supported!");return"value"in dt&&(ut[ct]=dt.value),ut}},function(tt,rt){tt.exports=function(nt){try{return!!nt()}catch{return!0}}},function(tt,rt,nt){var ot=nt(40),it=nt(22);tt.exports=function(st){return ot(it(st))}},function(tt,rt,nt){var ot=nt(11);tt.exports=function(it){if(!ot(it))throw TypeError(it+" is not an object!");return it}},function(tt,rt){tt.exports=function(nt){return typeof nt=="object"?nt!==null:typeof nt=="function"}},function(tt,rt){tt.exports={}},function(tt,rt,nt){var ot=nt(39),it=nt(27);tt.exports=Object.keys||function(st){return ot(st,it)}},function(tt,rt){tt.exports=!0},function(tt,rt,nt){var ot=nt(3),it=nt(1),st=nt(53),lt=nt(6),ut=nt(5),ct=function(dt,ft,pt){var gt,vt,bt,_t=dt&ct.F,xt=dt&ct.G,yt=dt&ct.S,Et=dt&ct.P,St=dt&ct.B,$t=dt&ct.W,At=xt?it:it[ft]||(it[ft]={}),wt=At.prototype,Ct=xt?ot:yt?ot[ft]:(ot[ft]||{}).prototype;for(gt in xt&&(pt=ft),pt)(vt=!_t&&Ct&&Ct[gt]!==void 0)&&ut(At,gt)||(bt=vt?Ct[gt]:pt[gt],At[gt]=xt&&typeof Ct[gt]!="function"?pt[gt]:St&&vt?st(bt,ot):$t&&Ct[gt]==bt?function(It){var Ot=function(Nt,Pt,Mt){if(this instanceof It){switch(arguments.length){case 0:return new It;case 1:return new It(Nt);case 2:return new It(Nt,Pt)}return new It(Nt,Pt,Mt)}return It.apply(this,arguments)};return Ot.prototype=It.prototype,Ot}(bt):Et&&typeof bt=="function"?st(Function.call,bt):bt,Et&&((At.virtual||(At.virtual={}))[gt]=bt,dt&ct.R&&wt&&!wt[gt]&<(wt,gt,bt)))};ct.F=1,ct.G=2,ct.S=4,ct.P=8,ct.B=16,ct.W=32,ct.U=64,ct.R=128,tt.exports=ct},function(tt,rt){tt.exports=function(nt,ot){return{enumerable:!(1&nt),configurable:!(2&nt),writable:!(4&nt),value:ot}}},function(tt,rt){var nt=0,ot=Math.random();tt.exports=function(it){return"Symbol(".concat(it===void 0?"":it,")_",(++nt+ot).toString(36))}},function(tt,rt,nt){var ot=nt(22);tt.exports=function(it){return Object(ot(it))}},function(tt,rt){rt.f={}.propertyIsEnumerable},function(tt,rt,nt){var ot=nt(52)(!0);nt(34)(String,"String",function(it){this._t=String(it),this._i=0},function(){var it,st=this._t,lt=this._i;return lt>=st.length?{value:void 0,done:!0}:(it=ot(st,lt),this._i+=it.length,{value:it,done:!1})})},function(tt,rt){var nt=Math.ceil,ot=Math.floor;tt.exports=function(it){return isNaN(it=+it)?0:(it>0?ot:nt)(it)}},function(tt,rt){tt.exports=function(nt){if(nt==null)throw TypeError("Can't call method on "+nt);return nt}},function(tt,rt,nt){var ot=nt(11);tt.exports=function(it,st){if(!ot(it))return it;var lt,ut;if(st&&typeof(lt=it.toString)=="function"&&!ot(ut=lt.call(it))||typeof(lt=it.valueOf)=="function"&&!ot(ut=lt.call(it))||!st&&typeof(lt=it.toString)=="function"&&!ot(ut=lt.call(it)))return ut;throw TypeError("Can't convert object to primitive value")}},function(tt,rt){var nt={}.toString;tt.exports=function(ot){return nt.call(ot).slice(8,-1)}},function(tt,rt,nt){var ot=nt(26)("keys"),it=nt(17);tt.exports=function(st){return ot[st]||(ot[st]=it(st))}},function(tt,rt,nt){var ot=nt(1),it=nt(3),st=it["__core-js_shared__"]||(it["__core-js_shared__"]={});(tt.exports=function(lt,ut){return st[lt]||(st[lt]=ut!==void 0?ut:{})})("versions",[]).push({version:ot.version,mode:nt(14)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(tt,rt){tt.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(tt,rt,nt){var ot=nt(7).f,it=nt(5),st=nt(2)("toStringTag");tt.exports=function(lt,ut,ct){lt&&!it(lt=ct?lt:lt.prototype,st)&&ot(lt,st,{configurable:!0,value:ut})}},function(tt,rt,nt){nt(62);for(var ot=nt(3),it=nt(6),st=nt(12),lt=nt(2)("toStringTag"),ut="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),ct=0;ctdocument.F=Object<\/script>"),dt.close(),ct=dt.F;pt--;)delete ct.prototype[st[pt]];return ct()};tt.exports=Object.create||function(dt,ft){var pt;return dt!==null?(ut.prototype=ot(dt),pt=new ut,ut.prototype=null,pt[lt]=dt):pt=ct(),ft===void 0?pt:it(pt,ft)}},function(tt,rt,nt){var ot=nt(5),it=nt(9),st=nt(57)(!1),lt=nt(25)("IE_PROTO");tt.exports=function(ut,ct){var dt,ft=it(ut),pt=0,gt=[];for(dt in ft)dt!=lt&&ot(ft,dt)&>.push(dt);for(;ct.length>pt;)ot(ft,dt=ct[pt++])&&(~st(gt,dt)||gt.push(dt));return gt}},function(tt,rt,nt){var ot=nt(24);tt.exports=Object("z").propertyIsEnumerable(0)?Object:function(it){return ot(it)=="String"?it.split(""):Object(it)}},function(tt,rt,nt){var ot=nt(39),it=nt(27).concat("length","prototype");rt.f=Object.getOwnPropertyNames||function(st){return ot(st,it)}},function(tt,rt,nt){var ot=nt(24),it=nt(2)("toStringTag"),st=ot(function(){return arguments}())=="Arguments";tt.exports=function(lt){var ut,ct,dt;return lt===void 0?"Undefined":lt===null?"Null":typeof(ct=function(ft,pt){try{return ft[pt]}catch{}}(ut=Object(lt),it))=="string"?ct:st?ot(ut):(dt=ot(ut))=="Object"&&typeof ut.callee=="function"?"Arguments":dt}},function(tt,rt){var nt;nt=function(){return this}();try{nt=nt||new Function("return this")()}catch{typeof window=="object"&&(nt=window)}tt.exports=nt},function(tt,rt){var nt=/-?\d+(\.\d+)?%?/g;tt.exports=function(ot){return ot.match(nt)}},function(tt,rt,nt){Object.defineProperty(rt,"__esModule",{value:!0}),rt.getBase16Theme=rt.createStyling=rt.invertTheme=void 0;var ot=vt(nt(49)),it=vt(nt(76)),st=vt(nt(81)),lt=vt(nt(89)),ut=vt(nt(93)),ct=function(wt){if(wt&&wt.__esModule)return wt;var Ct={};if(wt!=null)for(var It in wt)Object.prototype.hasOwnProperty.call(wt,It)&&(Ct[It]=wt[It]);return Ct.default=wt,Ct}(nt(94)),dt=vt(nt(132)),ft=vt(nt(133)),pt=vt(nt(138)),gt=nt(139);function vt(wt){return wt&&wt.__esModule?wt:{default:wt}}var bt=ct.default,_t=(0,lt.default)(bt),xt=(0,pt.default)(ft.default,gt.rgb2yuv,function(wt){var Ct,It=(0,st.default)(wt,3),Ot=It[0],Nt=It[1],Pt=It[2];return[(Ct=Ot,Ct<.25?1:Ct<.5?.9-Ct:1.1-Ct),Nt,Pt]},gt.yuv2rgb,dt.default),yt=function(wt){return function(Ct){return{className:[Ct.className,wt.className].filter(Boolean).join(" "),style:(0,it.default)({},Ct.style||{},wt.style||{})}}},Et=function(wt,Ct){var It=(0,lt.default)(Ct);for(var Ot in wt)It.indexOf(Ot)===-1&&It.push(Ot);return It.reduce(function(Nt,Pt){return Nt[Pt]=function(Mt,Rt){if(Mt===void 0)return Rt;if(Rt===void 0)return Mt;var Lt=Mt===void 0?"undefined":(0,ot.default)(Mt),jt=Rt===void 0?"undefined":(0,ot.default)(Rt);switch(Lt){case"string":switch(jt){case"string":return[Rt,Mt].filter(Boolean).join(" ");case"object":return yt({className:Mt,style:Rt});case"function":return function(Gt){for(var Vt=arguments.length,Yt=Array(Vt>1?Vt-1:0),Xt=1;Xt1?Vt-1:0),Xt=1;Xt1?Vt-1:0),Xt=1;Xt1?Vt-1:0),Xt=1;Xt1?Vt-1:0),Xt=1;Xt2?It-2:0),Nt=2;Nt3?Ct-3:0),Ot=3;Ot1&&arguments[1]!==void 0?arguments[1]:{},Pt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Mt=Nt.defaultBase16,Rt=Mt===void 0?bt:Mt,Lt=Nt.base16Themes,jt=Lt===void 0?null:Lt,Gt=At(Pt,jt);Gt&&(Pt=(0,it.default)({},Gt,Pt));var Vt=_t.reduce(function(cr,vr){return cr[vr]=Pt[vr]||Rt[vr],cr},{}),Yt=(0,lt.default)(Pt).reduce(function(cr,vr){return _t.indexOf(vr)===-1&&(cr[vr]=Pt[vr]),cr},{}),Xt=wt(Vt),rr=Et(Yt,Xt);return(0,ut.default)(St,2).apply(void 0,[rr].concat(It))},3),rt.getBase16Theme=function(wt,Ct){if(wt&&wt.extend&&(wt=wt.extend),typeof wt=="string"){var It=wt.split(":"),Ot=(0,st.default)(It,2),Nt=Ot[0],Pt=Ot[1];wt=(Ct||{})[Nt]||ct[Nt],Pt==="inverted"&&(wt=$t(wt))}return wt&&wt.hasOwnProperty("base00")?wt:void 0})},function(tt,rt,nt){var ot,it=typeof Reflect=="object"?Reflect:null,st=it&&typeof it.apply=="function"?it.apply:function(yt,Et,St){return Function.prototype.apply.call(yt,Et,St)};ot=it&&typeof it.ownKeys=="function"?it.ownKeys:Object.getOwnPropertySymbols?function(yt){return Object.getOwnPropertyNames(yt).concat(Object.getOwnPropertySymbols(yt))}:function(yt){return Object.getOwnPropertyNames(yt)};var lt=Number.isNaN||function(yt){return yt!=yt};function ut(){ut.init.call(this)}tt.exports=ut,tt.exports.once=function(yt,Et){return new Promise(function(St,$t){function At(){wt!==void 0&&yt.removeListener("error",wt),St([].slice.call(arguments))}var wt;Et!=="error"&&(wt=function(Ct){yt.removeListener(Et,At),$t(Ct)},yt.once("error",wt)),yt.once(Et,At)})},ut.EventEmitter=ut,ut.prototype._events=void 0,ut.prototype._eventsCount=0,ut.prototype._maxListeners=void 0;var ct=10;function dt(yt){if(typeof yt!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof yt)}function ft(yt){return yt._maxListeners===void 0?ut.defaultMaxListeners:yt._maxListeners}function pt(yt,Et,St,$t){var At,wt,Ct,It;if(dt(St),(wt=yt._events)===void 0?(wt=yt._events=Object.create(null),yt._eventsCount=0):(wt.newListener!==void 0&&(yt.emit("newListener",Et,St.listener?St.listener:St),wt=yt._events),Ct=wt[Et]),Ct===void 0)Ct=wt[Et]=St,++yt._eventsCount;else if(typeof Ct=="function"?Ct=wt[Et]=$t?[St,Ct]:[Ct,St]:$t?Ct.unshift(St):Ct.push(St),(At=ft(yt))>0&&Ct.length>At&&!Ct.warned){Ct.warned=!0;var Ot=new Error("Possible EventEmitter memory leak detected. "+Ct.length+" "+String(Et)+" listeners added. Use emitter.setMaxListeners() to increase limit");Ot.name="MaxListenersExceededWarning",Ot.emitter=yt,Ot.type=Et,Ot.count=Ct.length,It=Ot,console&&console.warn&&console.warn(It)}return yt}function gt(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function vt(yt,Et,St){var $t={fired:!1,wrapFn:void 0,target:yt,type:Et,listener:St},At=gt.bind($t);return At.listener=St,$t.wrapFn=At,At}function bt(yt,Et,St){var $t=yt._events;if($t===void 0)return[];var At=$t[Et];return At===void 0?[]:typeof At=="function"?St?[At.listener||At]:[At]:St?function(wt){for(var Ct=new Array(wt.length),It=0;It0&&(wt=Et[0]),wt instanceof Error)throw wt;var Ct=new Error("Unhandled error."+(wt?" ("+wt.message+")":""));throw Ct.context=wt,Ct}var It=At[yt];if(It===void 0)return!1;if(typeof It=="function")st(It,this,Et);else{var Ot=It.length,Nt=xt(It,Ot);for(St=0;St=0;wt--)if(St[wt]===Et||St[wt].listener===Et){Ct=St[wt].listener,At=wt;break}if(At<0)return this;At===0?St.shift():function(It,Ot){for(;Ot+1=0;$t--)this.removeListener(yt,Et[$t]);return this},ut.prototype.listeners=function(yt){return bt(this,yt,!0)},ut.prototype.rawListeners=function(yt){return bt(this,yt,!1)},ut.listenerCount=function(yt,Et){return typeof yt.listenerCount=="function"?yt.listenerCount(Et):_t.call(yt,Et)},ut.prototype.listenerCount=_t,ut.prototype.eventNames=function(){return this._eventsCount>0?ot(this._events):[]}},function(tt,rt,nt){tt.exports.Dispatcher=nt(140)},function(tt,rt,nt){tt.exports=nt(142)},function(tt,rt,nt){rt.__esModule=!0;var ot=lt(nt(50)),it=lt(nt(65)),st=typeof it.default=="function"&&typeof ot.default=="symbol"?function(ut){return typeof ut}:function(ut){return ut&&typeof it.default=="function"&&ut.constructor===it.default&&ut!==it.default.prototype?"symbol":typeof ut};function lt(ut){return ut&&ut.__esModule?ut:{default:ut}}rt.default=typeof it.default=="function"&&st(ot.default)==="symbol"?function(ut){return ut===void 0?"undefined":st(ut)}:function(ut){return ut&&typeof it.default=="function"&&ut.constructor===it.default&&ut!==it.default.prototype?"symbol":ut===void 0?"undefined":st(ut)}},function(tt,rt,nt){tt.exports={default:nt(51),__esModule:!0}},function(tt,rt,nt){nt(20),nt(29),tt.exports=nt(30).f("iterator")},function(tt,rt,nt){var ot=nt(21),it=nt(22);tt.exports=function(st){return function(lt,ut){var ct,dt,ft=String(it(lt)),pt=ot(ut),gt=ft.length;return pt<0||pt>=gt?st?"":void 0:(ct=ft.charCodeAt(pt))<55296||ct>56319||pt+1===gt||(dt=ft.charCodeAt(pt+1))<56320||dt>57343?st?ft.charAt(pt):ct:st?ft.slice(pt,pt+2):dt-56320+(ct-55296<<10)+65536}}},function(tt,rt,nt){var ot=nt(54);tt.exports=function(it,st,lt){if(ot(it),st===void 0)return it;switch(lt){case 1:return function(ut){return it.call(st,ut)};case 2:return function(ut,ct){return it.call(st,ut,ct)};case 3:return function(ut,ct,dt){return it.call(st,ut,ct,dt)}}return function(){return it.apply(st,arguments)}}},function(tt,rt){tt.exports=function(nt){if(typeof nt!="function")throw TypeError(nt+" is not a function!");return nt}},function(tt,rt,nt){var ot=nt(38),it=nt(16),st=nt(28),lt={};nt(6)(lt,nt(2)("iterator"),function(){return this}),tt.exports=function(ut,ct,dt){ut.prototype=ot(lt,{next:it(1,dt)}),st(ut,ct+" Iterator")}},function(tt,rt,nt){var ot=nt(7),it=nt(10),st=nt(13);tt.exports=nt(4)?Object.defineProperties:function(lt,ut){it(lt);for(var ct,dt=st(ut),ft=dt.length,pt=0;ft>pt;)ot.f(lt,ct=dt[pt++],ut[ct]);return lt}},function(tt,rt,nt){var ot=nt(9),it=nt(58),st=nt(59);tt.exports=function(lt){return function(ut,ct,dt){var ft,pt=ot(ut),gt=it(pt.length),vt=st(dt,gt);if(lt&&ct!=ct){for(;gt>vt;)if((ft=pt[vt++])!=ft)return!0}else for(;gt>vt;vt++)if((lt||vt in pt)&&pt[vt]===ct)return lt||vt||0;return!lt&&-1}}},function(tt,rt,nt){var ot=nt(21),it=Math.min;tt.exports=function(st){return st>0?it(ot(st),9007199254740991):0}},function(tt,rt,nt){var ot=nt(21),it=Math.max,st=Math.min;tt.exports=function(lt,ut){return(lt=ot(lt))<0?it(lt+ut,0):st(lt,ut)}},function(tt,rt,nt){var ot=nt(3).document;tt.exports=ot&&ot.documentElement},function(tt,rt,nt){var ot=nt(5),it=nt(18),st=nt(25)("IE_PROTO"),lt=Object.prototype;tt.exports=Object.getPrototypeOf||function(ut){return ut=it(ut),ot(ut,st)?ut[st]:typeof ut.constructor=="function"&&ut instanceof ut.constructor?ut.constructor.prototype:ut instanceof Object?lt:null}},function(tt,rt,nt){var ot=nt(63),it=nt(64),st=nt(12),lt=nt(9);tt.exports=nt(34)(Array,"Array",function(ut,ct){this._t=lt(ut),this._i=0,this._k=ct},function(){var ut=this._t,ct=this._k,dt=this._i++;return!ut||dt>=ut.length?(this._t=void 0,it(1)):it(0,ct=="keys"?dt:ct=="values"?ut[dt]:[dt,ut[dt]])},"values"),st.Arguments=st.Array,ot("keys"),ot("values"),ot("entries")},function(tt,rt){tt.exports=function(){}},function(tt,rt){tt.exports=function(nt,ot){return{value:ot,done:!!nt}}},function(tt,rt,nt){tt.exports={default:nt(66),__esModule:!0}},function(tt,rt,nt){nt(67),nt(73),nt(74),nt(75),tt.exports=nt(1).Symbol},function(tt,rt,nt){var ot=nt(3),it=nt(5),st=nt(4),lt=nt(15),ut=nt(37),ct=nt(68).KEY,dt=nt(8),ft=nt(26),pt=nt(28),gt=nt(17),vt=nt(2),bt=nt(30),_t=nt(31),xt=nt(69),yt=nt(70),Et=nt(10),St=nt(11),$t=nt(18),At=nt(9),wt=nt(23),Ct=nt(16),It=nt(38),Ot=nt(71),Nt=nt(72),Pt=nt(32),Mt=nt(7),Rt=nt(13),Lt=Nt.f,jt=Mt.f,Gt=Ot.f,Vt=ot.Symbol,Yt=ot.JSON,Xt=Yt&&Yt.stringify,rr=vt("_hidden"),cr=vt("toPrimitive"),vr={}.propertyIsEnumerable,Tr=ft("symbol-registry"),gr=ft("symbols"),Er=ft("op-symbols"),qt=Object.prototype,ir=typeof Vt=="function"&&!!Pt.f,hr=ot.QObject,nr=!hr||!hr.prototype||!hr.prototype.findChild,mr=st&&dt(function(){return It(jt({},"a",{get:function(){return jt(this,"a",{value:7}).a}})).a!=7})?function(Jt,ur,br){var Sr=Lt(qt,ur);Sr&&delete qt[ur],jt(Jt,ur,br),Sr&&Jt!==qt&&jt(qt,ur,Sr)}:jt,Ar=function(Jt){var ur=gr[Jt]=It(Vt.prototype);return ur._k=Jt,ur},Or=ir&&typeof Vt.iterator=="symbol"?function(Jt){return typeof Jt=="symbol"}:function(Jt){return Jt instanceof Vt},wr=function(Jt,ur,br){return Jt===qt&&wr(Er,ur,br),Et(Jt),ur=wt(ur,!0),Et(br),it(gr,ur)?(br.enumerable?(it(Jt,rr)&&Jt[rr][ur]&&(Jt[rr][ur]=!1),br=It(br,{enumerable:Ct(0,!1)})):(it(Jt,rr)||jt(Jt,rr,Ct(1,{})),Jt[rr][ur]=!0),mr(Jt,ur,br)):jt(Jt,ur,br)},Nr=function(Jt,ur){Et(Jt);for(var br,Sr=xt(ur=At(ur)),yr=0,Cr=Sr.length;Cr>yr;)wr(Jt,br=Sr[yr++],ur[br]);return Jt},Wr=function(Jt){var ur=vr.call(this,Jt=wt(Jt,!0));return!(this===qt&&it(gr,Jt)&&!it(Er,Jt))&&(!(ur||!it(this,Jt)||!it(gr,Jt)||it(this,rr)&&this[rr][Jt])||ur)},Vr=function(Jt,ur){if(Jt=At(Jt),ur=wt(ur,!0),Jt!==qt||!it(gr,ur)||it(Er,ur)){var br=Lt(Jt,ur);return!br||!it(gr,ur)||it(Jt,rr)&&Jt[rr][ur]||(br.enumerable=!0),br}},Jr=function(Jt){for(var ur,br=Gt(At(Jt)),Sr=[],yr=0;br.length>yr;)it(gr,ur=br[yr++])||ur==rr||ur==ct||Sr.push(ur);return Sr},Yr=function(Jt){for(var ur,br=Jt===qt,Sr=Gt(br?Er:At(Jt)),yr=[],Cr=0;Sr.length>Cr;)!it(gr,ur=Sr[Cr++])||br&&!it(qt,ur)||yr.push(gr[ur]);return yr};ir||(ut((Vt=function(){if(this instanceof Vt)throw TypeError("Symbol is not a constructor!");var Jt=gt(arguments.length>0?arguments[0]:void 0),ur=function(br){this===qt&&ur.call(Er,br),it(this,rr)&&it(this[rr],Jt)&&(this[rr][Jt]=!1),mr(this,Jt,Ct(1,br))};return st&&nr&&mr(qt,Jt,{configurable:!0,set:ur}),Ar(Jt)}).prototype,"toString",function(){return this._k}),Nt.f=Vr,Mt.f=wr,nt(41).f=Ot.f=Jr,nt(19).f=Wr,Pt.f=Yr,st&&!nt(14)&&ut(qt,"propertyIsEnumerable",Wr,!0),bt.f=function(Jt){return Ar(vt(Jt))}),lt(lt.G+lt.W+lt.F*!ir,{Symbol:Vt});for(var jr="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),Hr=0;jr.length>Hr;)vt(jr[Hr++]);for(var hn=Rt(vt.store),pr=0;hn.length>pr;)_t(hn[pr++]);lt(lt.S+lt.F*!ir,"Symbol",{for:function(Jt){return it(Tr,Jt+="")?Tr[Jt]:Tr[Jt]=Vt(Jt)},keyFor:function(Jt){if(!Or(Jt))throw TypeError(Jt+" is not a symbol!");for(var ur in Tr)if(Tr[ur]===Jt)return ur},useSetter:function(){nr=!0},useSimple:function(){nr=!1}}),lt(lt.S+lt.F*!ir,"Object",{create:function(Jt,ur){return ur===void 0?It(Jt):Nr(It(Jt),ur)},defineProperty:wr,defineProperties:Nr,getOwnPropertyDescriptor:Vr,getOwnPropertyNames:Jr,getOwnPropertySymbols:Yr});var sr=dt(function(){Pt.f(1)});lt(lt.S+lt.F*sr,"Object",{getOwnPropertySymbols:function(Jt){return Pt.f($t(Jt))}}),Yt&<(lt.S+lt.F*(!ir||dt(function(){var Jt=Vt();return Xt([Jt])!="[null]"||Xt({a:Jt})!="{}"||Xt(Object(Jt))!="{}"})),"JSON",{stringify:function(Jt){for(var ur,br,Sr=[Jt],yr=1;arguments.length>yr;)Sr.push(arguments[yr++]);if(br=ur=Sr[1],(St(ur)||Jt!==void 0)&&!Or(Jt))return yt(ur)||(ur=function(Cr,Lr){if(typeof br=="function"&&(Lr=br.call(this,Cr,Lr)),!Or(Lr))return Lr}),Sr[1]=ur,Xt.apply(Yt,Sr)}}),Vt.prototype[cr]||nt(6)(Vt.prototype,cr,Vt.prototype.valueOf),pt(Vt,"Symbol"),pt(Math,"Math",!0),pt(ot.JSON,"JSON",!0)},function(tt,rt,nt){var ot=nt(17)("meta"),it=nt(11),st=nt(5),lt=nt(7).f,ut=0,ct=Object.isExtensible||function(){return!0},dt=!nt(8)(function(){return ct(Object.preventExtensions({}))}),ft=function(gt){lt(gt,ot,{value:{i:"O"+ ++ut,w:{}}})},pt=tt.exports={KEY:ot,NEED:!1,fastKey:function(gt,vt){if(!it(gt))return typeof gt=="symbol"?gt:(typeof gt=="string"?"S":"P")+gt;if(!st(gt,ot)){if(!ct(gt))return"F";if(!vt)return"E";ft(gt)}return gt[ot].i},getWeak:function(gt,vt){if(!st(gt,ot)){if(!ct(gt))return!0;if(!vt)return!1;ft(gt)}return gt[ot].w},onFreeze:function(gt){return dt&&pt.NEED&&ct(gt)&&!st(gt,ot)&&ft(gt),gt}}},function(tt,rt,nt){var ot=nt(13),it=nt(32),st=nt(19);tt.exports=function(lt){var ut=ot(lt),ct=it.f;if(ct)for(var dt,ft=ct(lt),pt=st.f,gt=0;ft.length>gt;)pt.call(lt,dt=ft[gt++])&&ut.push(dt);return ut}},function(tt,rt,nt){var ot=nt(24);tt.exports=Array.isArray||function(it){return ot(it)=="Array"}},function(tt,rt,nt){var ot=nt(9),it=nt(41).f,st={}.toString,lt=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];tt.exports.f=function(ut){return lt&&st.call(ut)=="[object Window]"?function(ct){try{return it(ct)}catch{return lt.slice()}}(ut):it(ot(ut))}},function(tt,rt,nt){var ot=nt(19),it=nt(16),st=nt(9),lt=nt(23),ut=nt(5),ct=nt(35),dt=Object.getOwnPropertyDescriptor;rt.f=nt(4)?dt:function(ft,pt){if(ft=st(ft),pt=lt(pt,!0),ct)try{return dt(ft,pt)}catch{}if(ut(ft,pt))return it(!ot.f.call(ft,pt),ft[pt])}},function(tt,rt){},function(tt,rt,nt){nt(31)("asyncIterator")},function(tt,rt,nt){nt(31)("observable")},function(tt,rt,nt){rt.__esModule=!0;var ot,it=nt(77),st=(ot=it)&&ot.__esModule?ot:{default:ot};rt.default=st.default||function(lt){for(var ut=1;utbt;)for(var yt,Et=ct(arguments[bt++]),St=_t?it(Et).concat(_t(Et)):it(Et),$t=St.length,At=0;$t>At;)yt=St[At++],ot&&!xt.call(Et,yt)||(gt[yt]=Et[yt]);return gt}:dt},function(tt,rt,nt){rt.__esModule=!0;var ot=st(nt(82)),it=st(nt(85));function st(lt){return lt&<.__esModule?lt:{default:lt}}rt.default=function(lt,ut){if(Array.isArray(lt))return lt;if((0,ot.default)(Object(lt)))return function(ct,dt){var ft=[],pt=!0,gt=!1,vt=void 0;try{for(var bt,_t=(0,it.default)(ct);!(pt=(bt=_t.next()).done)&&(ft.push(bt.value),!dt||ft.length!==dt);pt=!0);}catch(xt){gt=!0,vt=xt}finally{try{!pt&&_t.return&&_t.return()}finally{if(gt)throw vt}}return ft}(lt,ut);throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(tt,rt,nt){tt.exports={default:nt(83),__esModule:!0}},function(tt,rt,nt){nt(29),nt(20),tt.exports=nt(84)},function(tt,rt,nt){var ot=nt(42),it=nt(2)("iterator"),st=nt(12);tt.exports=nt(1).isIterable=function(lt){var ut=Object(lt);return ut[it]!==void 0||"@@iterator"in ut||st.hasOwnProperty(ot(ut))}},function(tt,rt,nt){tt.exports={default:nt(86),__esModule:!0}},function(tt,rt,nt){nt(29),nt(20),tt.exports=nt(87)},function(tt,rt,nt){var ot=nt(10),it=nt(88);tt.exports=nt(1).getIterator=function(st){var lt=it(st);if(typeof lt!="function")throw TypeError(st+" is not iterable!");return ot(lt.call(st))}},function(tt,rt,nt){var ot=nt(42),it=nt(2)("iterator"),st=nt(12);tt.exports=nt(1).getIteratorMethod=function(lt){if(lt!=null)return lt[it]||lt["@@iterator"]||st[ot(lt)]}},function(tt,rt,nt){tt.exports={default:nt(90),__esModule:!0}},function(tt,rt,nt){nt(91),tt.exports=nt(1).Object.keys},function(tt,rt,nt){var ot=nt(18),it=nt(13);nt(92)("keys",function(){return function(st){return it(ot(st))}})},function(tt,rt,nt){var ot=nt(15),it=nt(1),st=nt(8);tt.exports=function(lt,ut){var ct=(it.Object||{})[lt]||Object[lt],dt={};dt[lt]=ut(ct),ot(ot.S+ot.F*st(function(){ct(1)}),"Object",dt)}},function(tt,rt,nt){(function(ot){var it=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],st=/^\s+|\s+$/g,lt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ut=/\{\n\/\* \[wrapped with (.+)\] \*/,ct=/,? & /,dt=/^[-+]0x[0-9a-f]+$/i,ft=/^0b[01]+$/i,pt=/^\[object .+?Constructor\]$/,gt=/^0o[0-7]+$/i,vt=/^(?:0|[1-9]\d*)$/,bt=parseInt,_t=typeof ot=="object"&&ot&&ot.Object===Object&&ot,xt=typeof self=="object"&&self&&self.Object===Object&&self,yt=_t||xt||Function("return this")();function Et(pr,sr,Jt){switch(Jt.length){case 0:return pr.call(sr);case 1:return pr.call(sr,Jt[0]);case 2:return pr.call(sr,Jt[0],Jt[1]);case 3:return pr.call(sr,Jt[0],Jt[1],Jt[2])}return pr.apply(sr,Jt)}function St(pr,sr){return!!(pr&&pr.length)&&function(Jt,ur,br){if(ur!=ur)return function(Cr,Lr,Xr,qr){for(var Qr=Cr.length,xn=Xr+(qr?1:-1);qr?xn--:++xn-1}function $t(pr){return pr!=pr}function At(pr,sr){for(var Jt=pr.length,ur=0;Jt--;)pr[Jt]===sr&&ur++;return ur}function wt(pr,sr){for(var Jt=-1,ur=pr.length,br=0,Sr=[];++Jt2?It:void 0);function vr(pr){return jr(pr)?Yt(pr):{}}function Tr(pr){return!(!jr(pr)||function(sr){return!!Rt&&Rt in sr}(pr))&&(function(sr){var Jt=jr(sr)?Gt.call(sr):"";return Jt=="[object Function]"||Jt=="[object GeneratorFunction]"}(pr)||function(sr){var Jt=!1;if(sr!=null&&typeof sr.toString!="function")try{Jt=!!(sr+"")}catch{}return Jt}(pr)?Vt:pt).test(function(sr){if(sr!=null){try{return Lt.call(sr)}catch{}try{return sr+""}catch{}}return""}(pr))}function gr(pr,sr,Jt,ur){for(var br=-1,Sr=pr.length,yr=Jt.length,Cr=-1,Lr=sr.length,Xr=Xt(Sr-yr,0),qr=Array(Lr+Xr),Qr=!ur;++Cr1&&sn.reverse(),qr&&Lr1?"& ":"")+sr[ur],sr=sr.join(Jt>2?", ":" "),pr.replace(lt,`{ +`;class TextField extends TextField$1{connectedCallback(){super.connectedCallback(),this.textContent?this.setAttribute("aria-label",this.textContent):this.setAttribute("aria-label","Text field")}}const vsCodeTextField=TextField.compose({baseName:"text-field",template:textFieldTemplate,styles:textFieldStyles,shadowOptions:{delegatesFocus:!0}}),{wrap}=provideReactWrapper(React,provideVSCodeDesignSystem());wrap(vsCodeBadge(),{name:"vscode-badge"});wrap(vsCodeButton(),{name:"vscode-button"});wrap(vsCodeCheckbox(),{name:"vscode-checkbox",events:{onChange:"change"}});wrap(vsCodeDataGrid(),{name:"vscode-data-grid"});wrap(vsCodeDataGridCell(),{name:"vscode-data-grid-cell"});wrap(vsCodeDataGridRow(),{name:"vscode-data-grid-row"});wrap(vsCodeDivider(),{name:"vscode-divider"});wrap(vsCodeDropdown(),{name:"vscode-dropdown",events:{onChange:"change"}});wrap(vsCodeLink(),{name:"vscode-link"});wrap(vsCodeOption(),{name:"vscode-option"});wrap(vsCodePanels(),{name:"vscode-panels",events:{onChange:"change"}});wrap(vsCodePanelTab(),{name:"vscode-panel-tab"});wrap(vsCodePanelView(),{name:"vscode-panel-view"});const VSCodeProgressRing=wrap(vsCodeProgressRing(),{name:"vscode-progress-ring"});wrap(vsCodeRadio(),{name:"vscode-radio",events:{onChange:"change"}});wrap(vsCodeRadioGroup(),{name:"vscode-radio-group",events:{onChange:"change"}});wrap(vsCodeTag(),{name:"vscode-tag"});wrap(vsCodeTextArea(),{name:"vscode-text-area",events:{onChange:"change",onInput:"input"}});wrap(vsCodeTextField(),{name:"vscode-text-field",events:{onChange:"change",onInput:"input"}});const Loading=({isFullPage:j=!1,style:_e={}})=>{const et=j?{..._e,height:"100vh",width:"100%"}:{..._e};return jsxRuntimeExports.jsx(Stack$1,{horizontalAlign:"center",verticalAlign:"center",verticalFill:!0,style:et,children:jsxRuntimeExports.jsx(VSCodeProgressRing,{})})};memoizeFunction((j,_e)=>mergeStyleSets({root:mergeStyles$1({display:"flex",flexDirection:"row",alignItems:"center",height:"30px",background:"var(--background)",width:"100%",..._e&&{position:"fixed",top:0,zIndex:100}},j),buttonGroup:{display:"flex",flexDirection:"row",height:"30px"},searchField:{marginRight:"100px",selectors:{"div.root":{height:"30px"}}}}));var toggleSelection=function(){var j=document.getSelection();if(!j.rangeCount)return function(){};for(var _e=document.activeElement,et=[],tt=0;tt"u"){et&&console.warn("unable to use e.clipboardData"),et&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var ct=clipboardToIE11Formatting[_e.format]||clipboardToIE11Formatting.default;window.clipboardData.setData(ct,j)}else ut.clipboardData.clearData(),ut.clipboardData.setData(_e.format,j);_e.onCopy&&(ut.preventDefault(),_e.onCopy(ut.clipboardData))}),document.body.appendChild(it),nt.selectNodeContents(it),ot.addRange(nt);var lt=document.execCommand("copy");if(!lt)throw new Error("copy command was unsuccessful");st=!0}catch(ut){et&&console.error("unable to copy using execCommand: ",ut),et&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(_e.format||"text",j),_e.onCopy&&_e.onCopy(window.clipboardData),st=!0}catch(ct){et&&console.error("unable to copy using clipboardData: ",ct),et&&console.error("falling back to prompt"),tt=format$1("message"in _e?_e.message:defaultMessage),window.prompt(tt,j)}}finally{ot&&(typeof ot.removeRange=="function"?ot.removeRange(nt):ot.removeAllRanges()),it&&document.body.removeChild(it),rt()}return st}var copyToClipboard=copy$3;const copy$4=getDefaultExportFromCjs(copyToClipboard);var main={exports:{}};(function(j,_e){(function(et,tt){j.exports=tt(reactExports)})(commonjsGlobal,function(et){return function(tt){var rt={};function nt(ot){if(rt[ot])return rt[ot].exports;var it=rt[ot]={i:ot,l:!1,exports:{}};return tt[ot].call(it.exports,it,it.exports,nt),it.l=!0,it.exports}return nt.m=tt,nt.c=rt,nt.d=function(ot,it,st){nt.o(ot,it)||Object.defineProperty(ot,it,{enumerable:!0,get:st})},nt.r=function(ot){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(ot,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(ot,"__esModule",{value:!0})},nt.t=function(ot,it){if(1&it&&(ot=nt(ot)),8&it||4&it&&typeof ot=="object"&&ot&&ot.__esModule)return ot;var st=Object.create(null);if(nt.r(st),Object.defineProperty(st,"default",{enumerable:!0,value:ot}),2&it&&typeof ot!="string")for(var lt in ot)nt.d(st,lt,(function(ut){return ot[ut]}).bind(null,lt));return st},nt.n=function(ot){var it=ot&&ot.__esModule?function(){return ot.default}:function(){return ot};return nt.d(it,"a",it),it},nt.o=function(ot,it){return Object.prototype.hasOwnProperty.call(ot,it)},nt.p="",nt(nt.s=48)}([function(tt,rt){tt.exports=et},function(tt,rt){var nt=tt.exports={version:"2.6.12"};typeof __e=="number"&&(__e=nt)},function(tt,rt,nt){var ot=nt(26)("wks"),it=nt(17),st=nt(3).Symbol,lt=typeof st=="function";(tt.exports=function(ut){return ot[ut]||(ot[ut]=lt&&st[ut]||(lt?st:it)("Symbol."+ut))}).store=ot},function(tt,rt){var nt=tt.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=nt)},function(tt,rt,nt){tt.exports=!nt(8)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(tt,rt){var nt={}.hasOwnProperty;tt.exports=function(ot,it){return nt.call(ot,it)}},function(tt,rt,nt){var ot=nt(7),it=nt(16);tt.exports=nt(4)?function(st,lt,ut){return ot.f(st,lt,it(1,ut))}:function(st,lt,ut){return st[lt]=ut,st}},function(tt,rt,nt){var ot=nt(10),it=nt(35),st=nt(23),lt=Object.defineProperty;rt.f=nt(4)?Object.defineProperty:function(ut,ct,dt){if(ot(ut),ct=st(ct,!0),ot(dt),it)try{return lt(ut,ct,dt)}catch{}if("get"in dt||"set"in dt)throw TypeError("Accessors not supported!");return"value"in dt&&(ut[ct]=dt.value),ut}},function(tt,rt){tt.exports=function(nt){try{return!!nt()}catch{return!0}}},function(tt,rt,nt){var ot=nt(40),it=nt(22);tt.exports=function(st){return ot(it(st))}},function(tt,rt,nt){var ot=nt(11);tt.exports=function(it){if(!ot(it))throw TypeError(it+" is not an object!");return it}},function(tt,rt){tt.exports=function(nt){return typeof nt=="object"?nt!==null:typeof nt=="function"}},function(tt,rt){tt.exports={}},function(tt,rt,nt){var ot=nt(39),it=nt(27);tt.exports=Object.keys||function(st){return ot(st,it)}},function(tt,rt){tt.exports=!0},function(tt,rt,nt){var ot=nt(3),it=nt(1),st=nt(53),lt=nt(6),ut=nt(5),ct=function(dt,ft,pt){var gt,mt,bt,_t=dt&ct.F,xt=dt&ct.G,yt=dt&ct.S,Et=dt&ct.P,St=dt&ct.B,Tt=dt&ct.W,kt=xt?it:it[ft]||(it[ft]={}),$t=kt.prototype,Ct=xt?ot:yt?ot[ft]:(ot[ft]||{}).prototype;for(gt in xt&&(pt=ft),pt)(mt=!_t&&Ct&&Ct[gt]!==void 0)&&ut(kt,gt)||(bt=mt?Ct[gt]:pt[gt],kt[gt]=xt&&typeof Ct[gt]!="function"?pt[gt]:St&&mt?st(bt,ot):Tt&&Ct[gt]==bt?function(It){var Nt=function(Ot,jt,Mt){if(this instanceof It){switch(arguments.length){case 0:return new It;case 1:return new It(Ot);case 2:return new It(Ot,jt)}return new It(Ot,jt,Mt)}return It.apply(this,arguments)};return Nt.prototype=It.prototype,Nt}(bt):Et&&typeof bt=="function"?st(Function.call,bt):bt,Et&&((kt.virtual||(kt.virtual={}))[gt]=bt,dt&ct.R&&$t&&!$t[gt]&<($t,gt,bt)))};ct.F=1,ct.G=2,ct.S=4,ct.P=8,ct.B=16,ct.W=32,ct.U=64,ct.R=128,tt.exports=ct},function(tt,rt){tt.exports=function(nt,ot){return{enumerable:!(1&nt),configurable:!(2&nt),writable:!(4&nt),value:ot}}},function(tt,rt){var nt=0,ot=Math.random();tt.exports=function(it){return"Symbol(".concat(it===void 0?"":it,")_",(++nt+ot).toString(36))}},function(tt,rt,nt){var ot=nt(22);tt.exports=function(it){return Object(ot(it))}},function(tt,rt){rt.f={}.propertyIsEnumerable},function(tt,rt,nt){var ot=nt(52)(!0);nt(34)(String,"String",function(it){this._t=String(it),this._i=0},function(){var it,st=this._t,lt=this._i;return lt>=st.length?{value:void 0,done:!0}:(it=ot(st,lt),this._i+=it.length,{value:it,done:!1})})},function(tt,rt){var nt=Math.ceil,ot=Math.floor;tt.exports=function(it){return isNaN(it=+it)?0:(it>0?ot:nt)(it)}},function(tt,rt){tt.exports=function(nt){if(nt==null)throw TypeError("Can't call method on "+nt);return nt}},function(tt,rt,nt){var ot=nt(11);tt.exports=function(it,st){if(!ot(it))return it;var lt,ut;if(st&&typeof(lt=it.toString)=="function"&&!ot(ut=lt.call(it))||typeof(lt=it.valueOf)=="function"&&!ot(ut=lt.call(it))||!st&&typeof(lt=it.toString)=="function"&&!ot(ut=lt.call(it)))return ut;throw TypeError("Can't convert object to primitive value")}},function(tt,rt){var nt={}.toString;tt.exports=function(ot){return nt.call(ot).slice(8,-1)}},function(tt,rt,nt){var ot=nt(26)("keys"),it=nt(17);tt.exports=function(st){return ot[st]||(ot[st]=it(st))}},function(tt,rt,nt){var ot=nt(1),it=nt(3),st=it["__core-js_shared__"]||(it["__core-js_shared__"]={});(tt.exports=function(lt,ut){return st[lt]||(st[lt]=ut!==void 0?ut:{})})("versions",[]).push({version:ot.version,mode:nt(14)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(tt,rt){tt.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(tt,rt,nt){var ot=nt(7).f,it=nt(5),st=nt(2)("toStringTag");tt.exports=function(lt,ut,ct){lt&&!it(lt=ct?lt:lt.prototype,st)&&ot(lt,st,{configurable:!0,value:ut})}},function(tt,rt,nt){nt(62);for(var ot=nt(3),it=nt(6),st=nt(12),lt=nt(2)("toStringTag"),ut="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),ct=0;ctdocument.F=Object<\/script>"),dt.close(),ct=dt.F;pt--;)delete ct.prototype[st[pt]];return ct()};tt.exports=Object.create||function(dt,ft){var pt;return dt!==null?(ut.prototype=ot(dt),pt=new ut,ut.prototype=null,pt[lt]=dt):pt=ct(),ft===void 0?pt:it(pt,ft)}},function(tt,rt,nt){var ot=nt(5),it=nt(9),st=nt(57)(!1),lt=nt(25)("IE_PROTO");tt.exports=function(ut,ct){var dt,ft=it(ut),pt=0,gt=[];for(dt in ft)dt!=lt&&ot(ft,dt)&>.push(dt);for(;ct.length>pt;)ot(ft,dt=ct[pt++])&&(~st(gt,dt)||gt.push(dt));return gt}},function(tt,rt,nt){var ot=nt(24);tt.exports=Object("z").propertyIsEnumerable(0)?Object:function(it){return ot(it)=="String"?it.split(""):Object(it)}},function(tt,rt,nt){var ot=nt(39),it=nt(27).concat("length","prototype");rt.f=Object.getOwnPropertyNames||function(st){return ot(st,it)}},function(tt,rt,nt){var ot=nt(24),it=nt(2)("toStringTag"),st=ot(function(){return arguments}())=="Arguments";tt.exports=function(lt){var ut,ct,dt;return lt===void 0?"Undefined":lt===null?"Null":typeof(ct=function(ft,pt){try{return ft[pt]}catch{}}(ut=Object(lt),it))=="string"?ct:st?ot(ut):(dt=ot(ut))=="Object"&&typeof ut.callee=="function"?"Arguments":dt}},function(tt,rt){var nt;nt=function(){return this}();try{nt=nt||new Function("return this")()}catch{typeof window=="object"&&(nt=window)}tt.exports=nt},function(tt,rt){var nt=/-?\d+(\.\d+)?%?/g;tt.exports=function(ot){return ot.match(nt)}},function(tt,rt,nt){Object.defineProperty(rt,"__esModule",{value:!0}),rt.getBase16Theme=rt.createStyling=rt.invertTheme=void 0;var ot=mt(nt(49)),it=mt(nt(76)),st=mt(nt(81)),lt=mt(nt(89)),ut=mt(nt(93)),ct=function($t){if($t&&$t.__esModule)return $t;var Ct={};if($t!=null)for(var It in $t)Object.prototype.hasOwnProperty.call($t,It)&&(Ct[It]=$t[It]);return Ct.default=$t,Ct}(nt(94)),dt=mt(nt(132)),ft=mt(nt(133)),pt=mt(nt(138)),gt=nt(139);function mt($t){return $t&&$t.__esModule?$t:{default:$t}}var bt=ct.default,_t=(0,lt.default)(bt),xt=(0,pt.default)(ft.default,gt.rgb2yuv,function($t){var Ct,It=(0,st.default)($t,3),Nt=It[0],Ot=It[1],jt=It[2];return[(Ct=Nt,Ct<.25?1:Ct<.5?.9-Ct:1.1-Ct),Ot,jt]},gt.yuv2rgb,dt.default),yt=function($t){return function(Ct){return{className:[Ct.className,$t.className].filter(Boolean).join(" "),style:(0,it.default)({},Ct.style||{},$t.style||{})}}},Et=function($t,Ct){var It=(0,lt.default)(Ct);for(var Nt in $t)It.indexOf(Nt)===-1&&It.push(Nt);return It.reduce(function(Ot,jt){return Ot[jt]=function(Mt,Rt){if(Mt===void 0)return Rt;if(Rt===void 0)return Mt;var Lt=Mt===void 0?"undefined":(0,ot.default)(Mt),Pt=Rt===void 0?"undefined":(0,ot.default)(Rt);switch(Lt){case"string":switch(Pt){case"string":return[Rt,Mt].filter(Boolean).join(" ");case"object":return yt({className:Mt,style:Rt});case"function":return function(Gt){for(var qt=arguments.length,Yt=Array(qt>1?qt-1:0),Xt=1;Xt1?qt-1:0),Xt=1;Xt1?qt-1:0),Xt=1;Xt1?qt-1:0),Xt=1;Xt1?qt-1:0),Xt=1;Xt2?It-2:0),Ot=2;Ot3?Ct-3:0),Nt=3;Nt1&&arguments[1]!==void 0?arguments[1]:{},jt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Mt=Ot.defaultBase16,Rt=Mt===void 0?bt:Mt,Lt=Ot.base16Themes,Pt=Lt===void 0?null:Lt,Gt=kt(jt,Pt);Gt&&(jt=(0,it.default)({},Gt,jt));var qt=_t.reduce(function(cr,mr){return cr[mr]=jt[mr]||Rt[mr],cr},{}),Yt=(0,lt.default)(jt).reduce(function(cr,mr){return _t.indexOf(mr)===-1&&(cr[mr]=jt[mr]),cr},{}),Xt=$t(qt),tr=Et(Yt,Xt);return(0,ut.default)(St,2).apply(void 0,[tr].concat(It))},3),rt.getBase16Theme=function($t,Ct){if($t&&$t.extend&&($t=$t.extend),typeof $t=="string"){var It=$t.split(":"),Nt=(0,st.default)(It,2),Ot=Nt[0],jt=Nt[1];$t=(Ct||{})[Ot]||ct[Ot],jt==="inverted"&&($t=Tt($t))}return $t&&$t.hasOwnProperty("base00")?$t:void 0})},function(tt,rt,nt){var ot,it=typeof Reflect=="object"?Reflect:null,st=it&&typeof it.apply=="function"?it.apply:function(yt,Et,St){return Function.prototype.apply.call(yt,Et,St)};ot=it&&typeof it.ownKeys=="function"?it.ownKeys:Object.getOwnPropertySymbols?function(yt){return Object.getOwnPropertyNames(yt).concat(Object.getOwnPropertySymbols(yt))}:function(yt){return Object.getOwnPropertyNames(yt)};var lt=Number.isNaN||function(yt){return yt!=yt};function ut(){ut.init.call(this)}tt.exports=ut,tt.exports.once=function(yt,Et){return new Promise(function(St,Tt){function kt(){$t!==void 0&&yt.removeListener("error",$t),St([].slice.call(arguments))}var $t;Et!=="error"&&($t=function(Ct){yt.removeListener(Et,kt),Tt(Ct)},yt.once("error",$t)),yt.once(Et,kt)})},ut.EventEmitter=ut,ut.prototype._events=void 0,ut.prototype._eventsCount=0,ut.prototype._maxListeners=void 0;var ct=10;function dt(yt){if(typeof yt!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof yt)}function ft(yt){return yt._maxListeners===void 0?ut.defaultMaxListeners:yt._maxListeners}function pt(yt,Et,St,Tt){var kt,$t,Ct,It;if(dt(St),($t=yt._events)===void 0?($t=yt._events=Object.create(null),yt._eventsCount=0):($t.newListener!==void 0&&(yt.emit("newListener",Et,St.listener?St.listener:St),$t=yt._events),Ct=$t[Et]),Ct===void 0)Ct=$t[Et]=St,++yt._eventsCount;else if(typeof Ct=="function"?Ct=$t[Et]=Tt?[St,Ct]:[Ct,St]:Tt?Ct.unshift(St):Ct.push(St),(kt=ft(yt))>0&&Ct.length>kt&&!Ct.warned){Ct.warned=!0;var Nt=new Error("Possible EventEmitter memory leak detected. "+Ct.length+" "+String(Et)+" listeners added. Use emitter.setMaxListeners() to increase limit");Nt.name="MaxListenersExceededWarning",Nt.emitter=yt,Nt.type=Et,Nt.count=Ct.length,It=Nt,console&&console.warn&&console.warn(It)}return yt}function gt(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function mt(yt,Et,St){var Tt={fired:!1,wrapFn:void 0,target:yt,type:Et,listener:St},kt=gt.bind(Tt);return kt.listener=St,Tt.wrapFn=kt,kt}function bt(yt,Et,St){var Tt=yt._events;if(Tt===void 0)return[];var kt=Tt[Et];return kt===void 0?[]:typeof kt=="function"?St?[kt.listener||kt]:[kt]:St?function($t){for(var Ct=new Array($t.length),It=0;It0&&($t=Et[0]),$t instanceof Error)throw $t;var Ct=new Error("Unhandled error."+($t?" ("+$t.message+")":""));throw Ct.context=$t,Ct}var It=kt[yt];if(It===void 0)return!1;if(typeof It=="function")st(It,this,Et);else{var Nt=It.length,Ot=xt(It,Nt);for(St=0;St=0;$t--)if(St[$t]===Et||St[$t].listener===Et){Ct=St[$t].listener,kt=$t;break}if(kt<0)return this;kt===0?St.shift():function(It,Nt){for(;Nt+1=0;Tt--)this.removeListener(yt,Et[Tt]);return this},ut.prototype.listeners=function(yt){return bt(this,yt,!0)},ut.prototype.rawListeners=function(yt){return bt(this,yt,!1)},ut.listenerCount=function(yt,Et){return typeof yt.listenerCount=="function"?yt.listenerCount(Et):_t.call(yt,Et)},ut.prototype.listenerCount=_t,ut.prototype.eventNames=function(){return this._eventsCount>0?ot(this._events):[]}},function(tt,rt,nt){tt.exports.Dispatcher=nt(140)},function(tt,rt,nt){tt.exports=nt(142)},function(tt,rt,nt){rt.__esModule=!0;var ot=lt(nt(50)),it=lt(nt(65)),st=typeof it.default=="function"&&typeof ot.default=="symbol"?function(ut){return typeof ut}:function(ut){return ut&&typeof it.default=="function"&&ut.constructor===it.default&&ut!==it.default.prototype?"symbol":typeof ut};function lt(ut){return ut&&ut.__esModule?ut:{default:ut}}rt.default=typeof it.default=="function"&&st(ot.default)==="symbol"?function(ut){return ut===void 0?"undefined":st(ut)}:function(ut){return ut&&typeof it.default=="function"&&ut.constructor===it.default&&ut!==it.default.prototype?"symbol":ut===void 0?"undefined":st(ut)}},function(tt,rt,nt){tt.exports={default:nt(51),__esModule:!0}},function(tt,rt,nt){nt(20),nt(29),tt.exports=nt(30).f("iterator")},function(tt,rt,nt){var ot=nt(21),it=nt(22);tt.exports=function(st){return function(lt,ut){var ct,dt,ft=String(it(lt)),pt=ot(ut),gt=ft.length;return pt<0||pt>=gt?st?"":void 0:(ct=ft.charCodeAt(pt))<55296||ct>56319||pt+1===gt||(dt=ft.charCodeAt(pt+1))<56320||dt>57343?st?ft.charAt(pt):ct:st?ft.slice(pt,pt+2):dt-56320+(ct-55296<<10)+65536}}},function(tt,rt,nt){var ot=nt(54);tt.exports=function(it,st,lt){if(ot(it),st===void 0)return it;switch(lt){case 1:return function(ut){return it.call(st,ut)};case 2:return function(ut,ct){return it.call(st,ut,ct)};case 3:return function(ut,ct,dt){return it.call(st,ut,ct,dt)}}return function(){return it.apply(st,arguments)}}},function(tt,rt){tt.exports=function(nt){if(typeof nt!="function")throw TypeError(nt+" is not a function!");return nt}},function(tt,rt,nt){var ot=nt(38),it=nt(16),st=nt(28),lt={};nt(6)(lt,nt(2)("iterator"),function(){return this}),tt.exports=function(ut,ct,dt){ut.prototype=ot(lt,{next:it(1,dt)}),st(ut,ct+" Iterator")}},function(tt,rt,nt){var ot=nt(7),it=nt(10),st=nt(13);tt.exports=nt(4)?Object.defineProperties:function(lt,ut){it(lt);for(var ct,dt=st(ut),ft=dt.length,pt=0;ft>pt;)ot.f(lt,ct=dt[pt++],ut[ct]);return lt}},function(tt,rt,nt){var ot=nt(9),it=nt(58),st=nt(59);tt.exports=function(lt){return function(ut,ct,dt){var ft,pt=ot(ut),gt=it(pt.length),mt=st(dt,gt);if(lt&&ct!=ct){for(;gt>mt;)if((ft=pt[mt++])!=ft)return!0}else for(;gt>mt;mt++)if((lt||mt in pt)&&pt[mt]===ct)return lt||mt||0;return!lt&&-1}}},function(tt,rt,nt){var ot=nt(21),it=Math.min;tt.exports=function(st){return st>0?it(ot(st),9007199254740991):0}},function(tt,rt,nt){var ot=nt(21),it=Math.max,st=Math.min;tt.exports=function(lt,ut){return(lt=ot(lt))<0?it(lt+ut,0):st(lt,ut)}},function(tt,rt,nt){var ot=nt(3).document;tt.exports=ot&&ot.documentElement},function(tt,rt,nt){var ot=nt(5),it=nt(18),st=nt(25)("IE_PROTO"),lt=Object.prototype;tt.exports=Object.getPrototypeOf||function(ut){return ut=it(ut),ot(ut,st)?ut[st]:typeof ut.constructor=="function"&&ut instanceof ut.constructor?ut.constructor.prototype:ut instanceof Object?lt:null}},function(tt,rt,nt){var ot=nt(63),it=nt(64),st=nt(12),lt=nt(9);tt.exports=nt(34)(Array,"Array",function(ut,ct){this._t=lt(ut),this._i=0,this._k=ct},function(){var ut=this._t,ct=this._k,dt=this._i++;return!ut||dt>=ut.length?(this._t=void 0,it(1)):it(0,ct=="keys"?dt:ct=="values"?ut[dt]:[dt,ut[dt]])},"values"),st.Arguments=st.Array,ot("keys"),ot("values"),ot("entries")},function(tt,rt){tt.exports=function(){}},function(tt,rt){tt.exports=function(nt,ot){return{value:ot,done:!!nt}}},function(tt,rt,nt){tt.exports={default:nt(66),__esModule:!0}},function(tt,rt,nt){nt(67),nt(73),nt(74),nt(75),tt.exports=nt(1).Symbol},function(tt,rt,nt){var ot=nt(3),it=nt(5),st=nt(4),lt=nt(15),ut=nt(37),ct=nt(68).KEY,dt=nt(8),ft=nt(26),pt=nt(28),gt=nt(17),mt=nt(2),bt=nt(30),_t=nt(31),xt=nt(69),yt=nt(70),Et=nt(10),St=nt(11),Tt=nt(18),kt=nt(9),$t=nt(23),Ct=nt(16),It=nt(38),Nt=nt(71),Ot=nt(72),jt=nt(32),Mt=nt(7),Rt=nt(13),Lt=Ot.f,Pt=Mt.f,Gt=Nt.f,qt=ot.Symbol,Yt=ot.JSON,Xt=Yt&&Yt.stringify,tr=mt("_hidden"),cr=mt("toPrimitive"),mr={}.propertyIsEnumerable,Er=ft("symbol-registry"),hr=ft("symbols"),_r=ft("op-symbols"),Ut=Object.prototype,ar=typeof qt=="function"&&!!jt.f,pr=ot.QObject,rr=!pr||!pr.prototype||!pr.prototype.findChild,vr=st&&dt(function(){return It(Pt({},"a",{get:function(){return Pt(this,"a",{value:7}).a}})).a!=7})?function(ir,gr,wr){var Mr=Lt(Ut,gr);Mr&&delete Ut[gr],Pt(ir,gr,wr),Mr&&ir!==Ut&&Pt(Ut,gr,Mr)}:Pt,$r=function(ir){var gr=hr[ir]=It(qt.prototype);return gr._k=ir,gr},Rr=ar&&typeof qt.iterator=="symbol"?function(ir){return typeof ir=="symbol"}:function(ir){return ir instanceof qt},Cr=function(ir,gr,wr){return ir===Ut&&Cr(_r,gr,wr),Et(ir),gr=$t(gr,!0),Et(wr),it(hr,gr)?(wr.enumerable?(it(ir,tr)&&ir[tr][gr]&&(ir[tr][gr]=!1),wr=It(wr,{enumerable:Ct(0,!1)})):(it(ir,tr)||Pt(ir,tr,Ct(1,{})),ir[tr][gr]=!0),vr(ir,gr,wr)):Pt(ir,gr,wr)},Nr=function(ir,gr){Et(ir);for(var wr,Mr=xt(gr=kt(gr)),Sr=0,Ir=Mr.length;Ir>Sr;)Cr(ir,wr=Mr[Sr++],gr[wr]);return ir},Gr=function(ir){var gr=mr.call(this,ir=$t(ir,!0));return!(this===Ut&&it(hr,ir)&&!it(_r,ir))&&(!(gr||!it(this,ir)||!it(hr,ir)||it(this,tr)&&this[tr][ir])||gr)},qr=function(ir,gr){if(ir=kt(ir),gr=$t(gr,!0),ir!==Ut||!it(hr,gr)||it(_r,gr)){var wr=Lt(ir,gr);return!wr||!it(hr,gr)||it(ir,tr)&&ir[tr][gr]||(wr.enumerable=!0),wr}},Qr=function(ir){for(var gr,wr=Gt(kt(ir)),Mr=[],Sr=0;wr.length>Sr;)it(hr,gr=wr[Sr++])||gr==tr||gr==ct||Mr.push(gr);return Mr},Yr=function(ir){for(var gr,wr=ir===Ut,Mr=Gt(wr?_r:kt(ir)),Sr=[],Ir=0;Mr.length>Ir;)!it(hr,gr=Mr[Ir++])||wr&&!it(Ut,gr)||Sr.push(hr[gr]);return Sr};ar||(ut((qt=function(){if(this instanceof qt)throw TypeError("Symbol is not a constructor!");var ir=gt(arguments.length>0?arguments[0]:void 0),gr=function(wr){this===Ut&&gr.call(_r,wr),it(this,tr)&&it(this[tr],ir)&&(this[tr][ir]=!1),vr(this,ir,Ct(1,wr))};return st&&rr&&vr(Ut,ir,{configurable:!0,set:gr}),$r(ir)}).prototype,"toString",function(){return this._k}),Ot.f=qr,Mt.f=Cr,nt(41).f=Nt.f=Qr,nt(19).f=Gr,jt.f=Yr,st&&!nt(14)&&ut(Ut,"propertyIsEnumerable",Gr,!0),bt.f=function(ir){return $r(mt(ir))}),lt(lt.G+lt.W+lt.F*!ar,{Symbol:qt});for(var Pr="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),Vr=0;Pr.length>Vr;)mt(Pr[Vr++]);for(var yn=Rt(mt.store),fr=0;yn.length>fr;)_t(yn[fr++]);lt(lt.S+lt.F*!ar,"Symbol",{for:function(ir){return it(Er,ir+="")?Er[ir]:Er[ir]=qt(ir)},keyFor:function(ir){if(!Rr(ir))throw TypeError(ir+" is not a symbol!");for(var gr in Er)if(Er[gr]===ir)return gr},useSetter:function(){rr=!0},useSimple:function(){rr=!1}}),lt(lt.S+lt.F*!ar,"Object",{create:function(ir,gr){return gr===void 0?It(ir):Nr(It(ir),gr)},defineProperty:Cr,defineProperties:Nr,getOwnPropertyDescriptor:qr,getOwnPropertyNames:Qr,getOwnPropertySymbols:Yr});var sr=dt(function(){jt.f(1)});lt(lt.S+lt.F*sr,"Object",{getOwnPropertySymbols:function(ir){return jt.f(Tt(ir))}}),Yt&<(lt.S+lt.F*(!ar||dt(function(){var ir=qt();return Xt([ir])!="[null]"||Xt({a:ir})!="{}"||Xt(Object(ir))!="{}"})),"JSON",{stringify:function(ir){for(var gr,wr,Mr=[ir],Sr=1;arguments.length>Sr;)Mr.push(arguments[Sr++]);if(wr=gr=Mr[1],(St(gr)||ir!==void 0)&&!Rr(ir))return yt(gr)||(gr=function(Ir,zr){if(typeof wr=="function"&&(zr=wr.call(this,Ir,zr)),!Rr(zr))return zr}),Mr[1]=gr,Xt.apply(Yt,Mr)}}),qt.prototype[cr]||nt(6)(qt.prototype,cr,qt.prototype.valueOf),pt(qt,"Symbol"),pt(Math,"Math",!0),pt(ot.JSON,"JSON",!0)},function(tt,rt,nt){var ot=nt(17)("meta"),it=nt(11),st=nt(5),lt=nt(7).f,ut=0,ct=Object.isExtensible||function(){return!0},dt=!nt(8)(function(){return ct(Object.preventExtensions({}))}),ft=function(gt){lt(gt,ot,{value:{i:"O"+ ++ut,w:{}}})},pt=tt.exports={KEY:ot,NEED:!1,fastKey:function(gt,mt){if(!it(gt))return typeof gt=="symbol"?gt:(typeof gt=="string"?"S":"P")+gt;if(!st(gt,ot)){if(!ct(gt))return"F";if(!mt)return"E";ft(gt)}return gt[ot].i},getWeak:function(gt,mt){if(!st(gt,ot)){if(!ct(gt))return!0;if(!mt)return!1;ft(gt)}return gt[ot].w},onFreeze:function(gt){return dt&&pt.NEED&&ct(gt)&&!st(gt,ot)&&ft(gt),gt}}},function(tt,rt,nt){var ot=nt(13),it=nt(32),st=nt(19);tt.exports=function(lt){var ut=ot(lt),ct=it.f;if(ct)for(var dt,ft=ct(lt),pt=st.f,gt=0;ft.length>gt;)pt.call(lt,dt=ft[gt++])&&ut.push(dt);return ut}},function(tt,rt,nt){var ot=nt(24);tt.exports=Array.isArray||function(it){return ot(it)=="Array"}},function(tt,rt,nt){var ot=nt(9),it=nt(41).f,st={}.toString,lt=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];tt.exports.f=function(ut){return lt&&st.call(ut)=="[object Window]"?function(ct){try{return it(ct)}catch{return lt.slice()}}(ut):it(ot(ut))}},function(tt,rt,nt){var ot=nt(19),it=nt(16),st=nt(9),lt=nt(23),ut=nt(5),ct=nt(35),dt=Object.getOwnPropertyDescriptor;rt.f=nt(4)?dt:function(ft,pt){if(ft=st(ft),pt=lt(pt,!0),ct)try{return dt(ft,pt)}catch{}if(ut(ft,pt))return it(!ot.f.call(ft,pt),ft[pt])}},function(tt,rt){},function(tt,rt,nt){nt(31)("asyncIterator")},function(tt,rt,nt){nt(31)("observable")},function(tt,rt,nt){rt.__esModule=!0;var ot,it=nt(77),st=(ot=it)&&ot.__esModule?ot:{default:ot};rt.default=st.default||function(lt){for(var ut=1;utbt;)for(var yt,Et=ct(arguments[bt++]),St=_t?it(Et).concat(_t(Et)):it(Et),Tt=St.length,kt=0;Tt>kt;)yt=St[kt++],ot&&!xt.call(Et,yt)||(gt[yt]=Et[yt]);return gt}:dt},function(tt,rt,nt){rt.__esModule=!0;var ot=st(nt(82)),it=st(nt(85));function st(lt){return lt&<.__esModule?lt:{default:lt}}rt.default=function(lt,ut){if(Array.isArray(lt))return lt;if((0,ot.default)(Object(lt)))return function(ct,dt){var ft=[],pt=!0,gt=!1,mt=void 0;try{for(var bt,_t=(0,it.default)(ct);!(pt=(bt=_t.next()).done)&&(ft.push(bt.value),!dt||ft.length!==dt);pt=!0);}catch(xt){gt=!0,mt=xt}finally{try{!pt&&_t.return&&_t.return()}finally{if(gt)throw mt}}return ft}(lt,ut);throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(tt,rt,nt){tt.exports={default:nt(83),__esModule:!0}},function(tt,rt,nt){nt(29),nt(20),tt.exports=nt(84)},function(tt,rt,nt){var ot=nt(42),it=nt(2)("iterator"),st=nt(12);tt.exports=nt(1).isIterable=function(lt){var ut=Object(lt);return ut[it]!==void 0||"@@iterator"in ut||st.hasOwnProperty(ot(ut))}},function(tt,rt,nt){tt.exports={default:nt(86),__esModule:!0}},function(tt,rt,nt){nt(29),nt(20),tt.exports=nt(87)},function(tt,rt,nt){var ot=nt(10),it=nt(88);tt.exports=nt(1).getIterator=function(st){var lt=it(st);if(typeof lt!="function")throw TypeError(st+" is not iterable!");return ot(lt.call(st))}},function(tt,rt,nt){var ot=nt(42),it=nt(2)("iterator"),st=nt(12);tt.exports=nt(1).getIteratorMethod=function(lt){if(lt!=null)return lt[it]||lt["@@iterator"]||st[ot(lt)]}},function(tt,rt,nt){tt.exports={default:nt(90),__esModule:!0}},function(tt,rt,nt){nt(91),tt.exports=nt(1).Object.keys},function(tt,rt,nt){var ot=nt(18),it=nt(13);nt(92)("keys",function(){return function(st){return it(ot(st))}})},function(tt,rt,nt){var ot=nt(15),it=nt(1),st=nt(8);tt.exports=function(lt,ut){var ct=(it.Object||{})[lt]||Object[lt],dt={};dt[lt]=ut(ct),ot(ot.S+ot.F*st(function(){ct(1)}),"Object",dt)}},function(tt,rt,nt){(function(ot){var it=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],st=/^\s+|\s+$/g,lt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ut=/\{\n\/\* \[wrapped with (.+)\] \*/,ct=/,? & /,dt=/^[-+]0x[0-9a-f]+$/i,ft=/^0b[01]+$/i,pt=/^\[object .+?Constructor\]$/,gt=/^0o[0-7]+$/i,mt=/^(?:0|[1-9]\d*)$/,bt=parseInt,_t=typeof ot=="object"&&ot&&ot.Object===Object&&ot,xt=typeof self=="object"&&self&&self.Object===Object&&self,yt=_t||xt||Function("return this")();function Et(fr,sr,ir){switch(ir.length){case 0:return fr.call(sr);case 1:return fr.call(sr,ir[0]);case 2:return fr.call(sr,ir[0],ir[1]);case 3:return fr.call(sr,ir[0],ir[1],ir[2])}return fr.apply(sr,ir)}function St(fr,sr){return!!(fr&&fr.length)&&function(ir,gr,wr){if(gr!=gr)return function(Ir,zr,Xr,Zr){for(var sn=Ir.length,$n=Xr+(Zr?1:-1);Zr?$n--:++$n-1}function Tt(fr){return fr!=fr}function kt(fr,sr){for(var ir=fr.length,gr=0;ir--;)fr[ir]===sr&&gr++;return gr}function $t(fr,sr){for(var ir=-1,gr=fr.length,wr=0,Mr=[];++ir2?It:void 0);function mr(fr){return Pr(fr)?Yt(fr):{}}function Er(fr){return!(!Pr(fr)||function(sr){return!!Rt&&Rt in sr}(fr))&&(function(sr){var ir=Pr(sr)?Gt.call(sr):"";return ir=="[object Function]"||ir=="[object GeneratorFunction]"}(fr)||function(sr){var ir=!1;if(sr!=null&&typeof sr.toString!="function")try{ir=!!(sr+"")}catch{}return ir}(fr)?qt:pt).test(function(sr){if(sr!=null){try{return Lt.call(sr)}catch{}try{return sr+""}catch{}}return""}(fr))}function hr(fr,sr,ir,gr){for(var wr=-1,Mr=fr.length,Sr=ir.length,Ir=-1,zr=sr.length,Xr=Xt(Mr-Sr,0),Zr=Array(zr+Xr),sn=!gr;++Ir1&&un.reverse(),Zr&&zr1?"& ":"")+sr[gr],sr=sr.join(ir>2?", ":" "),fr.replace(lt,`{ /* [wrapped with `+sr+`] */ -`)}function Nr(pr,sr){return!!(sr=sr??9007199254740991)&&(typeof pr=="number"||vt.test(pr))&&pr>-1&&pr%1==0&&pr1&&st--,ut=6*st<1?ot+6*(it-ot)*st:2*st<1?it:3*st<2?ot+(it-ot)*(2/3-st)*6:ot,lt[pt]=255*ut;return lt}},function(tt,rt,nt){(function(ot){var it=typeof ot=="object"&&ot&&ot.Object===Object&&ot,st=typeof self=="object"&&self&&self.Object===Object&&self,lt=it||st||Function("return this")();function ut(wt,Ct,It){switch(It.length){case 0:return wt.call(Ct);case 1:return wt.call(Ct,It[0]);case 2:return wt.call(Ct,It[0],It[1]);case 3:return wt.call(Ct,It[0],It[1],It[2])}return wt.apply(Ct,It)}function ct(wt,Ct){for(var It=-1,Ot=Ct.length,Nt=wt.length;++It-1&&Nt%1==0&&Nt<=9007199254740991}(Ot.length)&&!function(Nt){var Pt=function(Mt){var Rt=typeof Mt;return!!Mt&&(Rt=="object"||Rt=="function")}(Nt)?pt.call(Nt):"";return Pt=="[object Function]"||Pt=="[object GeneratorFunction]"}(Ot)}(It)}(Ct)&&ft.call(Ct,"callee")&&(!vt.call(Ct,"callee")||pt.call(Ct)=="[object Arguments]")}(wt)||!!(bt&&wt&&wt[bt])}var yt=Array.isArray,Et,St,$t,At=(St=function(wt){var Ct=(wt=function Ot(Nt,Pt,Mt,Rt,Lt){var jt=-1,Gt=Nt.length;for(Mt||(Mt=xt),Lt||(Lt=[]);++jt0&&Mt(Vt)?Pt>1?Ot(Vt,Pt-1,Mt,Rt,Lt):ct(Lt,Vt):Rt||(Lt[Lt.length]=Vt)}return Lt}(wt,1)).length,It=Ct;for(Et;It--;)if(typeof wt[It]!="function")throw new TypeError("Expected a function");return function(){for(var Ot=0,Nt=Ct?wt[Ot].apply(this,arguments):arguments[0];++Ot2?st-2:0),ut=2;ut"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var zt,Ht=pt(Ut);if(Zt){var Dt=pt(this).constructor;zt=Reflect.construct(Ht,arguments,Dt)}else zt=Ht.apply(this,arguments);return bt(this,zt)}}nt.r(rt);var xt=nt(0),yt=nt.n(xt);function Et(){var Ut=this.constructor.getDerivedStateFromProps(this.props,this.state);Ut!=null&&this.setState(Ut)}function St(Ut){this.setState((function(Zt){var zt=this.constructor.getDerivedStateFromProps(Ut,Zt);return zt??null}).bind(this))}function $t(Ut,Zt){try{var zt=this.props,Ht=this.state;this.props=Ut,this.state=Zt,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(zt,Ht)}finally{this.props=zt,this.state=Ht}}function At(Ut){var Zt=Ut.prototype;if(!Zt||!Zt.isReactComponent)throw new Error("Can only polyfill class components");if(typeof Ut.getDerivedStateFromProps!="function"&&typeof Zt.getSnapshotBeforeUpdate!="function")return Ut;var zt=null,Ht=null,Dt=null;if(typeof Zt.componentWillMount=="function"?zt="componentWillMount":typeof Zt.UNSAFE_componentWillMount=="function"&&(zt="UNSAFE_componentWillMount"),typeof Zt.componentWillReceiveProps=="function"?Ht="componentWillReceiveProps":typeof Zt.UNSAFE_componentWillReceiveProps=="function"&&(Ht="UNSAFE_componentWillReceiveProps"),typeof Zt.componentWillUpdate=="function"?Dt="componentWillUpdate":typeof Zt.UNSAFE_componentWillUpdate=="function"&&(Dt="UNSAFE_componentWillUpdate"),zt!==null||Ht!==null||Dt!==null){var Qt=Ut.displayName||Ut.name,ar=typeof Ut.getDerivedStateFromProps=="function"?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error(`Unsafe legacy lifecycles will not be called for components using new component APIs. +`)}function Nr(fr,sr){return!!(sr=sr??9007199254740991)&&(typeof fr=="number"||mt.test(fr))&&fr>-1&&fr%1==0&&fr1&&st--,ut=6*st<1?ot+6*(it-ot)*st:2*st<1?it:3*st<2?ot+(it-ot)*(2/3-st)*6:ot,lt[pt]=255*ut;return lt}},function(tt,rt,nt){(function(ot){var it=typeof ot=="object"&&ot&&ot.Object===Object&&ot,st=typeof self=="object"&&self&&self.Object===Object&&self,lt=it||st||Function("return this")();function ut($t,Ct,It){switch(It.length){case 0:return $t.call(Ct);case 1:return $t.call(Ct,It[0]);case 2:return $t.call(Ct,It[0],It[1]);case 3:return $t.call(Ct,It[0],It[1],It[2])}return $t.apply(Ct,It)}function ct($t,Ct){for(var It=-1,Nt=Ct.length,Ot=$t.length;++It-1&&Ot%1==0&&Ot<=9007199254740991}(Nt.length)&&!function(Ot){var jt=function(Mt){var Rt=typeof Mt;return!!Mt&&(Rt=="object"||Rt=="function")}(Ot)?pt.call(Ot):"";return jt=="[object Function]"||jt=="[object GeneratorFunction]"}(Nt)}(It)}(Ct)&&ft.call(Ct,"callee")&&(!mt.call(Ct,"callee")||pt.call(Ct)=="[object Arguments]")}($t)||!!(bt&&$t&&$t[bt])}var yt=Array.isArray,Et,St,Tt,kt=(St=function($t){var Ct=($t=function Nt(Ot,jt,Mt,Rt,Lt){var Pt=-1,Gt=Ot.length;for(Mt||(Mt=xt),Lt||(Lt=[]);++Pt0&&Mt(qt)?jt>1?Nt(qt,jt-1,Mt,Rt,Lt):ct(Lt,qt):Rt||(Lt[Lt.length]=qt)}return Lt}($t,1)).length,It=Ct;for(Et;It--;)if(typeof $t[It]!="function")throw new TypeError("Expected a function");return function(){for(var Nt=0,Ot=Ct?$t[Nt].apply(this,arguments):arguments[0];++Nt2?st-2:0),ut=2;ut"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var zt,Ht=pt(Kt);if(Zt){var Dt=pt(this).constructor;zt=Reflect.construct(Ht,arguments,Dt)}else zt=Ht.apply(this,arguments);return bt(this,zt)}}nt.r(rt);var xt=nt(0),yt=nt.n(xt);function Et(){var Kt=this.constructor.getDerivedStateFromProps(this.props,this.state);Kt!=null&&this.setState(Kt)}function St(Kt){this.setState((function(Zt){var zt=this.constructor.getDerivedStateFromProps(Kt,Zt);return zt??null}).bind(this))}function Tt(Kt,Zt){try{var zt=this.props,Ht=this.state;this.props=Kt,this.state=Zt,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(zt,Ht)}finally{this.props=zt,this.state=Ht}}function kt(Kt){var Zt=Kt.prototype;if(!Zt||!Zt.isReactComponent)throw new Error("Can only polyfill class components");if(typeof Kt.getDerivedStateFromProps!="function"&&typeof Zt.getSnapshotBeforeUpdate!="function")return Kt;var zt=null,Ht=null,Dt=null;if(typeof Zt.componentWillMount=="function"?zt="componentWillMount":typeof Zt.UNSAFE_componentWillMount=="function"&&(zt="UNSAFE_componentWillMount"),typeof Zt.componentWillReceiveProps=="function"?Ht="componentWillReceiveProps":typeof Zt.UNSAFE_componentWillReceiveProps=="function"&&(Ht="UNSAFE_componentWillReceiveProps"),typeof Zt.componentWillUpdate=="function"?Dt="componentWillUpdate":typeof Zt.UNSAFE_componentWillUpdate=="function"&&(Dt="UNSAFE_componentWillUpdate"),zt!==null||Ht!==null||Dt!==null){var Qt=Kt.displayName||Kt.name,or=typeof Kt.getDerivedStateFromProps=="function"?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error(`Unsafe legacy lifecycles will not be called for components using new component APIs. -`+Qt+" uses "+ar+" but also contains the following legacy lifecycles:"+(zt!==null?` +`+Qt+" uses "+or+" but also contains the following legacy lifecycles:"+(zt!==null?` `+zt:"")+(Ht!==null?` `+Ht:"")+(Dt!==null?` `+Dt:"")+` The above lifecycles should be removed. Learn more about this warning here: -https://fb.me/react-async-component-lifecycle-hooks`)}if(typeof Ut.getDerivedStateFromProps=="function"&&(Zt.componentWillMount=Et,Zt.componentWillReceiveProps=St),typeof Zt.getSnapshotBeforeUpdate=="function"){if(typeof Zt.componentDidUpdate!="function")throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");Zt.componentWillUpdate=$t;var lr=Zt.componentDidUpdate;Zt.componentDidUpdate=function(tr,_r,Br){var un=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:Br;lr.call(this,tr,_r,un)}}return Ut}function wt(Ut,Zt){if(Ut==null)return{};var zt,Ht,Dt=function(ar,lr){if(ar==null)return{};var tr,_r,Br={},un=Object.keys(ar);for(_r=0;_r=0||(Br[tr]=ar[tr]);return Br}(Ut,Zt);if(Object.getOwnPropertySymbols){var Qt=Object.getOwnPropertySymbols(Ut);for(Ht=0;Ht=0||Object.prototype.propertyIsEnumerable.call(Ut,zt)&&(Dt[zt]=Ut[zt])}return Dt}function Ct(Ut){var Zt=function(zt){return{}.toString.call(zt).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}(Ut);return Zt==="number"&&(Zt=isNaN(Ut)?"nan":(0|Ut)!=Ut?"float":"integer"),Zt}Et.__suppressDeprecationWarning=!0,St.__suppressDeprecationWarning=!0,$t.__suppressDeprecationWarning=!0;var It={scheme:"rjv-default",author:"mac gainor",base00:"rgba(0, 0, 0, 0)",base01:"rgb(245, 245, 245)",base02:"rgb(235, 235, 235)",base03:"#93a1a1",base04:"rgba(0, 0, 0, 0.3)",base05:"#586e75",base06:"#073642",base07:"#002b36",base08:"#d33682",base09:"#cb4b16",base0A:"#dc322f",base0B:"#859900",base0C:"#6c71c4",base0D:"#586e75",base0E:"#2aa198",base0F:"#268bd2"},Ot={scheme:"rjv-grey",author:"mac gainor",base00:"rgba(1, 1, 1, 0)",base01:"rgba(1, 1, 1, 0.1)",base02:"rgba(0, 0, 0, 0.2)",base03:"rgba(1, 1, 1, 0.3)",base04:"rgba(0, 0, 0, 0.4)",base05:"rgba(1, 1, 1, 0.5)",base06:"rgba(1, 1, 1, 0.6)",base07:"rgba(1, 1, 1, 0.7)",base08:"rgba(1, 1, 1, 0.8)",base09:"rgba(1, 1, 1, 0.8)",base0A:"rgba(1, 1, 1, 0.8)",base0B:"rgba(1, 1, 1, 0.8)",base0C:"rgba(1, 1, 1, 0.8)",base0D:"rgba(1, 1, 1, 0.8)",base0E:"rgba(1, 1, 1, 0.8)",base0F:"rgba(1, 1, 1, 0.8)"},Nt={white:"#fff",black:"#000",transparent:"rgba(1, 1, 1, 0)",globalFontFamily:"monospace",globalCursor:"default",indentBlockWidth:"5px",braceFontWeight:"bold",braceCursor:"pointer",ellipsisFontSize:"18px",ellipsisLineHeight:"10px",ellipsisCursor:"pointer",keyMargin:"0px 5px",keyLetterSpacing:"0.5px",keyFontStyle:"none",keyBorderRadius:"3px",keyColonWeight:"bold",keyVerticalAlign:"top",keyOpacity:"0.85",keyOpacityHover:"1",keyValPaddingTop:"3px",keyValPaddingBottom:"3px",keyValPaddingRight:"5px",keyValBorderLeft:"1px solid",keyValBorderHover:"2px solid",keyValPaddingHover:"3px 5px 3px 4px",pushedContentMarginLeft:"6px",variableValuePaddingRight:"6px",nullFontSize:"11px",nullFontWeight:"bold",nullPadding:"1px 2px",nullBorderRadius:"3px",nanFontSize:"11px",nanFontWeight:"bold",nanPadding:"1px 2px",nanBorderRadius:"3px",undefinedFontSize:"11px",undefinedFontWeight:"bold",undefinedPadding:"1px 2px",undefinedBorderRadius:"3px",dataTypeFontSize:"11px",dataTypeMarginRight:"4px",datatypeOpacity:"0.8",objectSizeBorderRadius:"3px",objectSizeFontStyle:"italic",objectSizeMargin:"0px 6px 0px 0px",clipboardCursor:"pointer",clipboardCheckMarginLeft:"-12px",metaDataPadding:"0px 0px 0px 10px",arrayGroupMetaPadding:"0px 0px 0px 4px",iconContainerWidth:"17px",tooltipPadding:"4px",editInputMinWidth:"130px",editInputBorderRadius:"2px",editInputPadding:"5px",editInputMarginRight:"4px",editInputFontFamily:"monospace",iconCursor:"pointer",iconFontSize:"15px",iconPaddingRight:"1px",dateValueMarginLeft:"2px",iconMarginRight:"3px",detectedRowPaddingTop:"3px",addKeyCoverBackground:"rgba(255, 255, 255, 0.3)",addKeyCoverPosition:"absolute",addKeyCoverPositionPx:"0px",addKeyModalWidth:"200px",addKeyModalMargin:"auto",addKeyModalPadding:"10px",addKeyModalRadius:"3px"},Pt=nt(45),Mt=function(Ut){var Zt=function(zt){return{backgroundColor:zt.base00,ellipsisColor:zt.base09,braceColor:zt.base07,expandedIcon:zt.base0D,collapsedIcon:zt.base0E,keyColor:zt.base07,arrayKeyColor:zt.base0C,objectSize:zt.base04,copyToClipboard:zt.base0F,copyToClipboardCheck:zt.base0D,objectBorder:zt.base02,dataTypes:{boolean:zt.base0E,date:zt.base0D,float:zt.base0B,function:zt.base0D,integer:zt.base0F,string:zt.base09,nan:zt.base08,null:zt.base0A,undefined:zt.base05,regexp:zt.base0A,background:zt.base02},editVariable:{editIcon:zt.base0E,cancelIcon:zt.base09,removeIcon:zt.base09,addIcon:zt.base0E,checkIcon:zt.base0E,background:zt.base01,color:zt.base0A,border:zt.base07},addKeyModal:{background:zt.base05,border:zt.base04,color:zt.base0A,labelColor:zt.base01},validationFailure:{background:zt.base09,iconColor:zt.base01,fontColor:zt.base01}}}(Ut);return{"app-container":{fontFamily:Nt.globalFontFamily,cursor:Nt.globalCursor,backgroundColor:Zt.backgroundColor,position:"relative"},ellipsis:{display:"inline-block",color:Zt.ellipsisColor,fontSize:Nt.ellipsisFontSize,lineHeight:Nt.ellipsisLineHeight,cursor:Nt.ellipsisCursor},"brace-row":{display:"inline-block",cursor:"pointer"},brace:{display:"inline-block",cursor:Nt.braceCursor,fontWeight:Nt.braceFontWeight,color:Zt.braceColor},"expanded-icon":{color:Zt.expandedIcon},"collapsed-icon":{color:Zt.collapsedIcon},colon:{display:"inline-block",margin:Nt.keyMargin,color:Zt.keyColor,verticalAlign:"top"},objectKeyVal:function(zt,Ht){return{style:st({paddingTop:Nt.keyValPaddingTop,paddingRight:Nt.keyValPaddingRight,paddingBottom:Nt.keyValPaddingBottom,borderLeft:Nt.keyValBorderLeft+" "+Zt.objectBorder,":hover":{paddingLeft:Ht.paddingLeft-1+"px",borderLeft:Nt.keyValBorderHover+" "+Zt.objectBorder}},Ht)}},"object-key-val-no-border":{padding:Nt.keyValPadding},"pushed-content":{marginLeft:Nt.pushedContentMarginLeft},variableValue:function(zt,Ht){return{style:st({display:"inline-block",paddingRight:Nt.variableValuePaddingRight,position:"relative"},Ht)}},"object-name":{display:"inline-block",color:Zt.keyColor,letterSpacing:Nt.keyLetterSpacing,fontStyle:Nt.keyFontStyle,verticalAlign:Nt.keyVerticalAlign,opacity:Nt.keyOpacity,":hover":{opacity:Nt.keyOpacityHover}},"array-key":{display:"inline-block",color:Zt.arrayKeyColor,letterSpacing:Nt.keyLetterSpacing,fontStyle:Nt.keyFontStyle,verticalAlign:Nt.keyVerticalAlign,opacity:Nt.keyOpacity,":hover":{opacity:Nt.keyOpacityHover}},"object-size":{color:Zt.objectSize,borderRadius:Nt.objectSizeBorderRadius,fontStyle:Nt.objectSizeFontStyle,margin:Nt.objectSizeMargin,cursor:"default"},"data-type-label":{fontSize:Nt.dataTypeFontSize,marginRight:Nt.dataTypeMarginRight,opacity:Nt.datatypeOpacity},boolean:{display:"inline-block",color:Zt.dataTypes.boolean},date:{display:"inline-block",color:Zt.dataTypes.date},"date-value":{marginLeft:Nt.dateValueMarginLeft},float:{display:"inline-block",color:Zt.dataTypes.float},function:{display:"inline-block",color:Zt.dataTypes.function,cursor:"pointer",whiteSpace:"pre-line"},"function-value":{fontStyle:"italic"},integer:{display:"inline-block",color:Zt.dataTypes.integer},string:{display:"inline-block",color:Zt.dataTypes.string},nan:{display:"inline-block",color:Zt.dataTypes.nan,fontSize:Nt.nanFontSize,fontWeight:Nt.nanFontWeight,backgroundColor:Zt.dataTypes.background,padding:Nt.nanPadding,borderRadius:Nt.nanBorderRadius},null:{display:"inline-block",color:Zt.dataTypes.null,fontSize:Nt.nullFontSize,fontWeight:Nt.nullFontWeight,backgroundColor:Zt.dataTypes.background,padding:Nt.nullPadding,borderRadius:Nt.nullBorderRadius},undefined:{display:"inline-block",color:Zt.dataTypes.undefined,fontSize:Nt.undefinedFontSize,padding:Nt.undefinedPadding,borderRadius:Nt.undefinedBorderRadius,backgroundColor:Zt.dataTypes.background},regexp:{display:"inline-block",color:Zt.dataTypes.regexp},"copy-to-clipboard":{cursor:Nt.clipboardCursor},"copy-icon":{color:Zt.copyToClipboard,fontSize:Nt.iconFontSize,marginRight:Nt.iconMarginRight,verticalAlign:"top"},"copy-icon-copied":{color:Zt.copyToClipboardCheck,marginLeft:Nt.clipboardCheckMarginLeft},"array-group-meta-data":{display:"inline-block",padding:Nt.arrayGroupMetaPadding},"object-meta-data":{display:"inline-block",padding:Nt.metaDataPadding},"icon-container":{display:"inline-block",width:Nt.iconContainerWidth},tooltip:{padding:Nt.tooltipPadding},removeVarIcon:{verticalAlign:"top",display:"inline-block",color:Zt.editVariable.removeIcon,cursor:Nt.iconCursor,fontSize:Nt.iconFontSize,marginRight:Nt.iconMarginRight},addVarIcon:{verticalAlign:"top",display:"inline-block",color:Zt.editVariable.addIcon,cursor:Nt.iconCursor,fontSize:Nt.iconFontSize,marginRight:Nt.iconMarginRight},editVarIcon:{verticalAlign:"top",display:"inline-block",color:Zt.editVariable.editIcon,cursor:Nt.iconCursor,fontSize:Nt.iconFontSize,marginRight:Nt.iconMarginRight},"edit-icon-container":{display:"inline-block",verticalAlign:"top"},"check-icon":{display:"inline-block",cursor:Nt.iconCursor,color:Zt.editVariable.checkIcon,fontSize:Nt.iconFontSize,paddingRight:Nt.iconPaddingRight},"cancel-icon":{display:"inline-block",cursor:Nt.iconCursor,color:Zt.editVariable.cancelIcon,fontSize:Nt.iconFontSize,paddingRight:Nt.iconPaddingRight},"edit-input":{display:"inline-block",minWidth:Nt.editInputMinWidth,borderRadius:Nt.editInputBorderRadius,backgroundColor:Zt.editVariable.background,color:Zt.editVariable.color,padding:Nt.editInputPadding,marginRight:Nt.editInputMarginRight,fontFamily:Nt.editInputFontFamily},"detected-row":{paddingTop:Nt.detectedRowPaddingTop},"key-modal-request":{position:Nt.addKeyCoverPosition,top:Nt.addKeyCoverPositionPx,left:Nt.addKeyCoverPositionPx,right:Nt.addKeyCoverPositionPx,bottom:Nt.addKeyCoverPositionPx,backgroundColor:Nt.addKeyCoverBackground},"key-modal":{width:Nt.addKeyModalWidth,backgroundColor:Zt.addKeyModal.background,marginLeft:Nt.addKeyModalMargin,marginRight:Nt.addKeyModalMargin,padding:Nt.addKeyModalPadding,borderRadius:Nt.addKeyModalRadius,marginTop:"15px",position:"relative"},"key-modal-label":{color:Zt.addKeyModal.labelColor,marginLeft:"2px",marginBottom:"5px",fontSize:"11px"},"key-modal-input-container":{overflow:"hidden"},"key-modal-input":{width:"100%",padding:"3px 6px",fontFamily:"monospace",color:Zt.addKeyModal.color,border:"none",boxSizing:"border-box",borderRadius:"2px"},"key-modal-cancel":{backgroundColor:Zt.editVariable.removeIcon,position:"absolute",top:"0px",right:"0px",borderRadius:"0px 3px 0px 3px",cursor:"pointer"},"key-modal-cancel-icon":{color:Zt.addKeyModal.labelColor,fontSize:Nt.iconFontSize,transform:"rotate(45deg)"},"key-modal-submit":{color:Zt.editVariable.addIcon,fontSize:Nt.iconFontSize,position:"absolute",right:"2px",top:"3px",cursor:"pointer"},"function-ellipsis":{display:"inline-block",color:Zt.ellipsisColor,fontSize:Nt.ellipsisFontSize,lineHeight:Nt.ellipsisLineHeight,cursor:Nt.ellipsisCursor},"validation-failure":{float:"right",padding:"3px 6px",borderRadius:"2px",cursor:"pointer",color:Zt.validationFailure.fontColor,backgroundColor:Zt.validationFailure.background},"validation-failure-label":{marginRight:"6px"},"validation-failure-clear":{position:"relative",verticalAlign:"top",cursor:"pointer",color:Zt.validationFailure.iconColor,fontSize:Nt.iconFontSize,transform:"rotate(45deg)"}}};function Rt(Ut,Zt,zt){return Ut||console.error("theme has not been set"),function(Ht){var Dt=It;return Ht!==!1&&Ht!=="none"||(Dt=Ot),Object(Pt.createStyling)(Mt,{defaultBase16:Dt})(Ht)}(Ut)(Zt,zt)}var Lt=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=(Ht.rjvId,Ht.type_name),Qt=Ht.displayDataTypes,ar=Ht.theme;return Qt?yt.a.createElement("span",Object.assign({className:"data-type-label"},Rt(ar,"data-type-label")),Dt):null}}]),zt}(yt.a.PureComponent),jt=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props;return yt.a.createElement("div",Rt(Ht.theme,"boolean"),yt.a.createElement(Lt,Object.assign({type_name:"bool"},Ht)),Ht.value?"true":"false")}}]),zt}(yt.a.PureComponent),Gt=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props;return yt.a.createElement("div",Rt(Ht.theme,"date"),yt.a.createElement(Lt,Object.assign({type_name:"date"},Ht)),yt.a.createElement("span",Object.assign({className:"date-value"},Rt(Ht.theme,"date-value")),Ht.value.toLocaleTimeString("en-us",{weekday:"short",year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})))}}]),zt}(yt.a.PureComponent),Vt=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props;return yt.a.createElement("div",Rt(Ht.theme,"float"),yt.a.createElement(Lt,Object.assign({type_name:"float"},Ht)),this.props.value)}}]),zt}(yt.a.PureComponent);function Yt(Ut,Zt){(Zt==null||Zt>Ut.length)&&(Zt=Ut.length);for(var zt=0,Ht=new Array(Zt);zt"u"||Ut[Symbol.iterator]==null){if(Array.isArray(Ut)||(zt=Xt(Ut))||Zt&&Ut&&typeof Ut.length=="number"){zt&&(Ut=zt);var Ht=0,Dt=function(){};return{s:Dt,n:function(){return Ht>=Ut.length?{done:!0}:{done:!1,value:Ut[Ht++]}},e:function(tr){throw tr},f:Dt}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Qt,ar=!0,lr=!1;return{s:function(){zt=Ut[Symbol.iterator]()},n:function(){var tr=zt.next();return ar=tr.done,tr},e:function(tr){lr=!0,Qt=tr},f:function(){try{ar||zt.return==null||zt.return()}finally{if(lr)throw Qt}}}}function cr(Ut){return function(Zt){if(Array.isArray(Zt))return Yt(Zt)}(Ut)||function(Zt){if(typeof Symbol<"u"&&Symbol.iterator in Object(Zt))return Array.from(Zt)}(Ut)||Xt(Ut)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}var vr=nt(46),Tr=new(nt(47)).Dispatcher,gr=new(function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){var Ht;lt(this,zt);for(var Dt=arguments.length,Qt=new Array(Dt),ar=0;arDt&&(lr.style.cursor="pointer",this.state.collapsed&&(ar=yt.a.createElement("span",null,ar.substring(0,Dt),yt.a.createElement("span",Rt(Qt,"ellipsis")," ...")))),yt.a.createElement("div",Rt(Qt,"string"),yt.a.createElement(Lt,Object.assign({type_name:"string"},Ht)),yt.a.createElement("span",Object.assign({className:"string-value"},lr,{onClick:this.toggleCollapsed}),'"',ar,'"'))}}]),zt}(yt.a.PureComponent),Or=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){return yt.a.createElement("div",Rt(this.props.theme,"undefined"),"undefined")}}]),zt}(yt.a.PureComponent);function wr(){return(wr=Object.assign||function(Ut){for(var Zt=1;Zt=0||(Fo[to]=pn[to]);return Fo}(Ut,["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"]),Br,un=_r.value!==void 0,fn=Object(xt.useRef)(null),an=Jr(fn,Zt),tn=Object(xt.useRef)(0),_n=Object(xt.useRef)(),jn=function(){var pn=fn.current,qn=zt&&_n.current?_n.current:function(xo){var _i=window.getComputedStyle(xo);if(_i===null)return null;var zo,Zn=(zo=_i,pr.reduce(function(na,Ho){return na[Ho]=zo[Ho],na},{})),ko=Zn.boxSizing;return ko===""?null:(sr&&ko==="border-box"&&(Zn.width=parseFloat(Zn.width)+parseFloat(Zn.borderRightWidth)+parseFloat(Zn.borderLeftWidth)+parseFloat(Zn.paddingRight)+parseFloat(Zn.paddingLeft)+"px"),{sizingStyle:Zn,paddingSize:parseFloat(Zn.paddingBottom)+parseFloat(Zn.paddingTop),borderSize:parseFloat(Zn.borderBottomWidth)+parseFloat(Zn.borderTopWidth)})}(pn);if(qn){_n.current=qn;var to=function(xo,_i,zo,Zn){zo===void 0&&(zo=1),Zn===void 0&&(Zn=1/0),Hr||((Hr=document.createElement("textarea")).setAttribute("tab-index","-1"),Hr.setAttribute("aria-hidden","true"),jr(Hr)),Hr.parentNode===null&&document.body.appendChild(Hr);var ko=xo.paddingSize,na=xo.borderSize,Ho=xo.sizingStyle,ga=Ho.boxSizing;Object.keys(Ho).forEach(function(es){var Yo=es;Hr.style[Yo]=Ho[Yo]}),jr(Hr),Hr.value=_i;var Go=function(es,Yo){var Xo=es.scrollHeight;return Yo.sizingStyle.boxSizing==="border-box"?Xo+Yo.borderSize:Xo-Yo.paddingSize}(Hr,xo);Hr.value="x";var ps=Hr.scrollHeight-ko,Uo=ps*zo;ga==="border-box"&&(Uo=Uo+ko+na),Go=Math.max(Uo,Go);var xa=ps*Zn;return ga==="border-box"&&(xa=xa+ko+na),[Go=Math.min(xa,Go),ps]}(qn,pn.value||pn.placeholder||"x",Dt,Ht),fo=to[0],Fo=to[1];tn.current!==fo&&(tn.current=fo,pn.style.setProperty("height",fo+"px","important"),tr(fo,{rowHeight:Fo}))}};return Object(xt.useLayoutEffect)(jn),Br=Wr(jn),Object(xt.useLayoutEffect)(function(){var pn=function(qn){Br.current(qn)};return window.addEventListener("resize",pn),function(){window.removeEventListener("resize",pn)}},[]),Object(xt.createElement)("textarea",wr({},_r,{onChange:function(pn){un||jn(),ar(pn)},ref:an}))},ur=Object(xt.forwardRef)(Jt);function br(Ut){Ut=Ut.trim();try{if((Ut=JSON.stringify(JSON.parse(Ut)))[0]==="[")return Sr("array",JSON.parse(Ut));if(Ut[0]==="{")return Sr("object",JSON.parse(Ut));if(Ut.match(/\-?\d+\.\d+/)&&Ut.match(/\-?\d+\.\d+/)[0]===Ut)return Sr("float",parseFloat(Ut));if(Ut.match(/\-?\d+e-\d+/)&&Ut.match(/\-?\d+e-\d+/)[0]===Ut)return Sr("float",Number(Ut));if(Ut.match(/\-?\d+/)&&Ut.match(/\-?\d+/)[0]===Ut)return Sr("integer",parseInt(Ut));if(Ut.match(/\-?\d+e\+\d+/)&&Ut.match(/\-?\d+e\+\d+/)[0]===Ut)return Sr("integer",Number(Ut))}catch{}switch(Ut=Ut.toLowerCase()){case"undefined":return Sr("undefined",void 0);case"nan":return Sr("nan",NaN);case"null":return Sr("null",null);case"true":return Sr("boolean",!0);case"false":return Sr("boolean",!1);default:if(Ut=Date.parse(Ut))return Sr("date",new Date(Ut))}return Sr(!1,null)}function Sr(Ut,Zt){return{type:Ut,value:Zt}}var yr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,13H17V11H7"})))}}]),zt}(yt.a.PureComponent),Cr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M13,7H11V11H7V13H11V17H13V13H17V11H13V7Z"})))}}]),zt}(yt.a.PureComponent),Lr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]),ar=sn(Dt).style;return yt.a.createElement("span",Qt,yt.a.createElement("svg",{fill:ar.color,width:ar.height,height:ar.width,style:ar,viewBox:"0 0 1792 1792"},yt.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-832q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h832q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),zt}(yt.a.PureComponent),Xr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]),ar=sn(Dt).style;return yt.a.createElement("span",Qt,yt.a.createElement("svg",{fill:ar.color,width:ar.height,height:ar.width,style:ar,viewBox:"0 0 1792 1792"},yt.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-352v352q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23v-352h-352q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h352v-352q0-14 9-23t23-9h64q14 0 23 9t9 23v352h352q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),zt}(yt.a.PureComponent),qr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",{style:st(st({},sn(Dt).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},yt.a.createElement("path",{d:"M0 14l6-6-6-6z"})))}}]),zt}(yt.a.PureComponent),Qr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",{style:st(st({},sn(Dt).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},yt.a.createElement("path",{d:"M0 5l6 6 6-6z"})))}}]),zt}(yt.a.PureComponent),xn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m30 35h-25v-22.5h25v7.5h2.5v-12.5c0-1.4-1.1-2.5-2.5-2.5h-7.5c0-2.8-2.2-5-5-5s-5 2.2-5 5h-7.5c-1.4 0-2.5 1.1-2.5 2.5v27.5c0 1.4 1.1 2.5 2.5 2.5h25c1.4 0 2.5-1.1 2.5-2.5v-5h-2.5v5z m-20-27.5h2.5s2.5-1.1 2.5-2.5 1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5 1.3 2.5 2.5 2.5h2.5s2.5 1.1 2.5 2.5h-20c0-1.5 1.1-2.5 2.5-2.5z m-2.5 20h5v-2.5h-5v2.5z m17.5-5v-5l-10 7.5 10 7.5v-5h12.5v-5h-12.5z m-17.5 10h7.5v-2.5h-7.5v2.5z m12.5-17.5h-12.5v2.5h12.5v-2.5z m-7.5 5h-5v2.5h5v-2.5z"}))))}}]),zt}(yt.a.PureComponent),wn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m28.6 25q0-0.5-0.4-1l-4-4 4-4q0.4-0.5 0.4-1 0-0.6-0.4-1.1l-2-2q-0.4-0.4-1-0.4-0.6 0-1 0.4l-4.1 4.1-4-4.1q-0.4-0.4-1-0.4-0.6 0-1 0.4l-2 2q-0.5 0.5-0.5 1.1 0 0.5 0.5 1l4 4-4 4q-0.5 0.5-0.5 1 0 0.7 0.5 1.1l2 2q0.4 0.4 1 0.4 0.6 0 1-0.4l4-4.1 4.1 4.1q0.4 0.4 1 0.4 0.6 0 1-0.4l2-2q0.4-0.4 0.4-1z m8.7-5q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),zt}(yt.a.PureComponent),nn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m30.1 21.4v-2.8q0-0.6-0.4-1t-1-0.5h-5.7v-5.7q0-0.6-0.4-1t-1-0.4h-2.9q-0.6 0-1 0.4t-0.4 1v5.7h-5.7q-0.6 0-1 0.5t-0.5 1v2.8q0 0.6 0.5 1t1 0.5h5.7v5.7q0 0.5 0.4 1t1 0.4h2.9q0.6 0 1-0.4t0.4-1v-5.7h5.7q0.6 0 1-0.5t0.4-1z m7.2-1.4q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),zt}(yt.a.PureComponent),Ln=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m31.6 21.6h-10v10h-3.2v-10h-10v-3.2h10v-10h3.2v10h10v3.2z"}))))}}]),zt}(yt.a.PureComponent),zn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m19.8 26.4l2.6-2.6-3.4-3.4-2.6 2.6v1.3h2.2v2.1h1.2z m9.8-16q-0.3-0.4-0.7 0l-7.8 7.8q-0.4 0.4 0 0.7t0.7 0l7.8-7.8q0.4-0.4 0-0.7z m1.8 13.2v4.3q0 2.6-1.9 4.5t-4.5 1.9h-18.6q-2.6 0-4.5-1.9t-1.9-4.5v-18.6q0-2.7 1.9-4.6t4.5-1.8h18.6q1.4 0 2.6 0.5 0.3 0.2 0.4 0.5 0.1 0.4-0.2 0.7l-1.1 1.1q-0.3 0.3-0.7 0.1-0.5-0.1-1-0.1h-18.6q-1.4 0-2.5 1.1t-1 2.5v18.6q0 1.4 1 2.5t2.5 1h18.6q1.5 0 2.5-1t1.1-2.5v-2.9q0-0.2 0.2-0.4l1.4-1.5q0.3-0.3 0.8-0.1t0.4 0.6z m-2.1-16.5l6.4 6.5-15 15h-6.4v-6.5z m9.9 3l-2.1 2-6.4-6.4 2.1-2q0.6-0.7 1.5-0.7t1.5 0.7l3.4 3.4q0.6 0.6 0.6 1.5t-0.6 1.5z"}))))}}]),zt}(yt.a.PureComponent),En=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=wt(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},sn(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m31.7 16.4q0-0.6-0.4-1l-2.1-2.1q-0.4-0.4-1-0.4t-1 0.4l-9.1 9.1-5-5q-0.5-0.4-1-0.4t-1 0.4l-2.1 2q-0.4 0.4-0.4 1 0 0.6 0.4 1l8.1 8.1q0.4 0.4 1 0.4 0.6 0 1-0.4l12.2-12.1q0.4-0.4 0.4-1z m5.6 3.6q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),zt}(yt.a.PureComponent);function sn(Ut){return Ut||(Ut={}),{style:st(st({verticalAlign:"middle"},Ut),{},{color:Ut.color?Ut.color:"#000000",height:"1em",width:"1em"})}}var Dn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(Ht){var Dt;return lt(this,zt),(Dt=Zt.call(this,Ht)).copiedTimer=null,Dt.handleCopy=function(){var Qt=document.createElement("textarea"),ar=Dt.props,lr=ar.clickCallback,tr=ar.src,_r=ar.namespace;Qt.innerHTML=JSON.stringify(Dt.clipboardValue(tr),null," "),document.body.appendChild(Qt),Qt.select(),document.execCommand("copy"),document.body.removeChild(Qt),Dt.copiedTimer=setTimeout(function(){Dt.setState({copied:!1})},5500),Dt.setState({copied:!0},function(){typeof lr=="function"&&lr({src:tr,namespace:_r,name:_r[_r.length-1]})})},Dt.getClippyIcon=function(){var Qt=Dt.props.theme;return Dt.state.copied?yt.a.createElement("span",null,yt.a.createElement(xn,Object.assign({className:"copy-icon"},Rt(Qt,"copy-icon"))),yt.a.createElement("span",Rt(Qt,"copy-icon-copied"),"✔")):yt.a.createElement(xn,Object.assign({className:"copy-icon"},Rt(Qt,"copy-icon")))},Dt.clipboardValue=function(Qt){switch(Ct(Qt)){case"function":case"regexp":return Qt.toString();default:return Qt}},Dt.state={copied:!1},Dt}return ct(zt,[{key:"componentWillUnmount",value:function(){this.copiedTimer&&(clearTimeout(this.copiedTimer),this.copiedTimer=null)}},{key:"render",value:function(){var Ht=this.props,Dt=(Ht.src,Ht.theme),Qt=Ht.hidden,ar=Ht.rowHovered,lr=Rt(Dt,"copy-to-clipboard").style,tr="inline";return Qt&&(tr="none"),yt.a.createElement("span",{className:"copy-to-clipboard-container",title:"Copy to clipboard",style:{verticalAlign:"top",display:ar?"inline-block":"none"}},yt.a.createElement("span",{style:st(st({},lr),{},{display:tr}),onClick:this.handleCopy},this.getClippyIcon()))}}]),zt}(yt.a.PureComponent),Mn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(Ht){var Dt;return lt(this,zt),(Dt=Zt.call(this,Ht)).getEditIcon=function(){var Qt=Dt.props,ar=Qt.variable,lr=Qt.theme;return yt.a.createElement("div",{className:"click-to-edit",style:{verticalAlign:"top",display:Dt.state.hovered?"inline-block":"none"}},yt.a.createElement(zn,Object.assign({className:"click-to-edit-icon"},Rt(lr,"editVarIcon"),{onClick:function(){Dt.prepopInput(ar)}})))},Dt.prepopInput=function(Qt){if(Dt.props.onEdit!==!1){var ar=function(tr){var _r;switch(Ct(tr)){case"undefined":_r="undefined";break;case"nan":_r="NaN";break;case"string":_r=tr;break;case"date":case"function":case"regexp":_r=tr.toString();break;default:try{_r=JSON.stringify(tr,null," ")}catch{_r=""}}return _r}(Qt.value),lr=br(ar);Dt.setState({editMode:!0,editValue:ar,parsedInput:{type:lr.type,value:lr.value}})}},Dt.getRemoveIcon=function(){var Qt=Dt.props,ar=Qt.variable,lr=Qt.namespace,tr=Qt.theme,_r=Qt.rjvId;return yt.a.createElement("div",{className:"click-to-remove",style:{verticalAlign:"top",display:Dt.state.hovered?"inline-block":"none"}},yt.a.createElement(wn,Object.assign({className:"click-to-remove-icon"},Rt(tr,"removeVarIcon"),{onClick:function(){Tr.dispatch({name:"VARIABLE_REMOVED",rjvId:_r,data:{name:ar.name,namespace:lr,existing_value:ar.value,variable_removed:!0}})}})))},Dt.getValue=function(Qt,ar){var lr=!ar&&Qt.type,tr=vt(Dt).props;switch(lr){case!1:return Dt.getEditInput();case"string":return yt.a.createElement(Ar,Object.assign({value:Qt.value},tr));case"integer":return yt.a.createElement(nr,Object.assign({value:Qt.value},tr));case"float":return yt.a.createElement(Vt,Object.assign({value:Qt.value},tr));case"boolean":return yt.a.createElement(jt,Object.assign({value:Qt.value},tr));case"function":return yt.a.createElement(qt,Object.assign({value:Qt.value},tr));case"null":return yt.a.createElement(hr,tr);case"nan":return yt.a.createElement(ir,tr);case"undefined":return yt.a.createElement(Or,tr);case"date":return yt.a.createElement(Gt,Object.assign({value:Qt.value},tr));case"regexp":return yt.a.createElement(mr,Object.assign({value:Qt.value},tr));default:return yt.a.createElement("div",{className:"object-value"},JSON.stringify(Qt.value))}},Dt.getEditInput=function(){var Qt=Dt.props.theme,ar=Dt.state.editValue;return yt.a.createElement("div",null,yt.a.createElement(ur,Object.assign({type:"text",inputRef:function(lr){return lr&&lr.focus()},value:ar,className:"variable-editor",onChange:function(lr){var tr=lr.target.value,_r=br(tr);Dt.setState({editValue:tr,parsedInput:{type:_r.type,value:_r.value}})},onKeyDown:function(lr){switch(lr.key){case"Escape":Dt.setState({editMode:!1,editValue:""});break;case"Enter":(lr.ctrlKey||lr.metaKey)&&Dt.submitEdit(!0)}lr.stopPropagation()},placeholder:"update this value",minRows:2},Rt(Qt,"edit-input"))),yt.a.createElement("div",Rt(Qt,"edit-icon-container"),yt.a.createElement(wn,Object.assign({className:"edit-cancel"},Rt(Qt,"cancel-icon"),{onClick:function(){Dt.setState({editMode:!1,editValue:""})}})),yt.a.createElement(En,Object.assign({className:"edit-check string-value"},Rt(Qt,"check-icon"),{onClick:function(){Dt.submitEdit()}})),yt.a.createElement("div",null,Dt.showDetected())))},Dt.submitEdit=function(Qt){var ar=Dt.props,lr=ar.variable,tr=ar.namespace,_r=ar.rjvId,Br=Dt.state,un=Br.editValue,fn=Br.parsedInput,an=un;Qt&&fn.type&&(an=fn.value),Dt.setState({editMode:!1}),Tr.dispatch({name:"VARIABLE_UPDATED",rjvId:_r,data:{name:lr.name,namespace:tr,existing_value:lr.value,new_value:an,variable_removed:!1}})},Dt.showDetected=function(){var Qt=Dt.props,ar=Qt.theme,lr=(Qt.variable,Qt.namespace,Qt.rjvId,Dt.state.parsedInput),tr=(lr.type,lr.value,Dt.getDetectedInput());if(tr)return yt.a.createElement("div",null,yt.a.createElement("div",Rt(ar,"detected-row"),tr,yt.a.createElement(En,{className:"edit-check detected",style:st({verticalAlign:"top",paddingLeft:"3px"},Rt(ar,"check-icon").style),onClick:function(){Dt.submitEdit(!0)}})))},Dt.getDetectedInput=function(){var Qt=Dt.state.parsedInput,ar=Qt.type,lr=Qt.value,tr=vt(Dt).props,_r=tr.theme;if(ar!==!1)switch(ar.toLowerCase()){case"object":return yt.a.createElement("span",null,yt.a.createElement("span",{style:st(st({},Rt(_r,"brace").style),{},{cursor:"default"})},"{"),yt.a.createElement("span",{style:st(st({},Rt(_r,"ellipsis").style),{},{cursor:"default"})},"..."),yt.a.createElement("span",{style:st(st({},Rt(_r,"brace").style),{},{cursor:"default"})},"}"));case"array":return yt.a.createElement("span",null,yt.a.createElement("span",{style:st(st({},Rt(_r,"brace").style),{},{cursor:"default"})},"["),yt.a.createElement("span",{style:st(st({},Rt(_r,"ellipsis").style),{},{cursor:"default"})},"..."),yt.a.createElement("span",{style:st(st({},Rt(_r,"brace").style),{},{cursor:"default"})},"]"));case"string":return yt.a.createElement(Ar,Object.assign({value:lr},tr));case"integer":return yt.a.createElement(nr,Object.assign({value:lr},tr));case"float":return yt.a.createElement(Vt,Object.assign({value:lr},tr));case"boolean":return yt.a.createElement(jt,Object.assign({value:lr},tr));case"function":return yt.a.createElement(qt,Object.assign({value:lr},tr));case"null":return yt.a.createElement(hr,tr);case"nan":return yt.a.createElement(ir,tr);case"undefined":return yt.a.createElement(Or,tr);case"date":return yt.a.createElement(Gt,Object.assign({value:new Date(lr)},tr))}},Dt.state={editMode:!1,editValue:"",hovered:!1,renameKey:!1,parsedInput:{type:!1,value:null}},Dt}return ct(zt,[{key:"render",value:function(){var Ht=this,Dt=this.props,Qt=Dt.variable,ar=Dt.singleIndent,lr=Dt.type,tr=Dt.theme,_r=Dt.namespace,Br=Dt.indentWidth,un=Dt.enableClipboard,fn=Dt.onEdit,an=Dt.onDelete,tn=Dt.onSelect,_n=Dt.displayArrayKey,jn=Dt.quotesOnKeys,pn=this.state.editMode;return yt.a.createElement("div",Object.assign({},Rt(tr,"objectKeyVal",{paddingLeft:Br*ar}),{onMouseEnter:function(){return Ht.setState(st(st({},Ht.state),{},{hovered:!0}))},onMouseLeave:function(){return Ht.setState(st(st({},Ht.state),{},{hovered:!1}))},className:"variable-row",key:Qt.name}),lr=="array"?_n?yt.a.createElement("span",Object.assign({},Rt(tr,"array-key"),{key:Qt.name+"_"+_r}),Qt.name,yt.a.createElement("div",Rt(tr,"colon"),":")):null:yt.a.createElement("span",null,yt.a.createElement("span",Object.assign({},Rt(tr,"object-name"),{className:"object-key",key:Qt.name+"_"+_r}),!!jn&&yt.a.createElement("span",{style:{verticalAlign:"top"}},'"'),yt.a.createElement("span",{style:{display:"inline-block"}},Qt.name),!!jn&&yt.a.createElement("span",{style:{verticalAlign:"top"}},'"')),yt.a.createElement("span",Rt(tr,"colon"),":")),yt.a.createElement("div",Object.assign({className:"variable-value",onClick:tn===!1&&fn===!1?null:function(qn){var to=cr(_r);(qn.ctrlKey||qn.metaKey)&&fn!==!1?Ht.prepopInput(Qt):tn!==!1&&(to.shift(),tn(st(st({},Qt),{},{namespace:to})))}},Rt(tr,"variableValue",{cursor:tn===!1?"default":"pointer"})),this.getValue(Qt,pn)),un?yt.a.createElement(Dn,{rowHovered:this.state.hovered,hidden:pn,src:Qt.value,clickCallback:un,theme:tr,namespace:[].concat(cr(_r),[Qt.name])}):null,fn!==!1&&pn==0?this.getEditIcon():null,an!==!1&&pn==0?this.getRemoveIcon():null)}}]),zt}(yt.a.PureComponent),In=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){var Ht;lt(this,zt);for(var Dt=arguments.length,Qt=new Array(Dt),ar=0;ar0?un:null,namespace:Br.splice(0,Br.length-1),existing_value:fn,variable_removed:!1,key_name:null};Ct(fn)==="object"?Tr.dispatch({name:"ADD_VARIABLE_KEY_REQUEST",rjvId:an,data:_n}):Tr.dispatch({name:"VARIABLE_ADDED",rjvId:an,data:st(st({},_n),{},{new_value:[].concat(cr(fn),[null])})})}})))},Ht.getRemoveObject=function(lr){var tr=Ht.props,_r=tr.theme,Br=(tr.hover,tr.namespace),un=tr.name,fn=tr.src,an=tr.rjvId;if(Br.length!==1)return yt.a.createElement("span",{className:"click-to-remove",style:{display:lr?"inline-block":"none"}},yt.a.createElement(wn,Object.assign({className:"click-to-remove-icon"},Rt(_r,"removeVarIcon"),{onClick:function(){Tr.dispatch({name:"VARIABLE_REMOVED",rjvId:an,data:{name:un,namespace:Br.splice(0,Br.length-1),existing_value:fn,variable_removed:!0}})}})))},Ht.render=function(){var lr=Ht.props,tr=lr.theme,_r=lr.onDelete,Br=lr.onAdd,un=lr.enableClipboard,fn=lr.src,an=lr.namespace,tn=lr.rowHovered;return yt.a.createElement("div",Object.assign({},Rt(tr,"object-meta-data"),{className:"object-meta-data",onClick:function(_n){_n.stopPropagation()}}),Ht.getObjectSize(),un?yt.a.createElement(Dn,{rowHovered:tn,clickCallback:un,src:fn,theme:tr,namespace:an}):null,Br!==!1?Ht.getAddAttribute(tn):null,_r!==!1?Ht.getRemoveObject(tn):null)},Ht}return zt}(yt.a.PureComponent);function Cn(Ut){var Zt=Ut.parent_type,zt=Ut.namespace,Ht=Ut.quotesOnKeys,Dt=Ut.theme,Qt=Ut.jsvRoot,ar=Ut.name,lr=Ut.displayArrayKey,tr=Ut.name?Ut.name:"";return!Qt||ar!==!1&&ar!==null?Zt=="array"?lr?yt.a.createElement("span",Object.assign({},Rt(Dt,"array-key"),{key:zt}),yt.a.createElement("span",{className:"array-key"},tr),yt.a.createElement("span",Rt(Dt,"colon"),":")):yt.a.createElement("span",null):yt.a.createElement("span",Object.assign({},Rt(Dt,"object-name"),{key:zt}),yt.a.createElement("span",{className:"object-key"},Ht&&yt.a.createElement("span",{style:{verticalAlign:"top"}},'"'),yt.a.createElement("span",null,tr),Ht&&yt.a.createElement("span",{style:{verticalAlign:"top"}},'"')),yt.a.createElement("span",Rt(Dt,"colon"),":")):yt.a.createElement("span",null)}function cn(Ut){var Zt=Ut.theme;switch(Ut.iconStyle){case"triangle":return yt.a.createElement(Qr,Object.assign({},Rt(Zt,"expanded-icon"),{className:"expanded-icon"}));case"square":return yt.a.createElement(Lr,Object.assign({},Rt(Zt,"expanded-icon"),{className:"expanded-icon"}));default:return yt.a.createElement(yr,Object.assign({},Rt(Zt,"expanded-icon"),{className:"expanded-icon"}))}}function Ur(Ut){var Zt=Ut.theme;switch(Ut.iconStyle){case"triangle":return yt.a.createElement(qr,Object.assign({},Rt(Zt,"collapsed-icon"),{className:"collapsed-icon"}));case"square":return yt.a.createElement(Xr,Object.assign({},Rt(Zt,"collapsed-icon"),{className:"collapsed-icon"}));default:return yt.a.createElement(Cr,Object.assign({},Rt(Zt,"collapsed-icon"),{className:"collapsed-icon"}))}}var Fr=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(Ht){var Dt;return lt(this,zt),(Dt=Zt.call(this,Ht)).toggleCollapsed=function(Qt){var ar=[];for(var lr in Dt.state.expanded)ar.push(Dt.state.expanded[lr]);ar[Qt]=!ar[Qt],Dt.setState({expanded:ar})},Dt.state={expanded:[]},Dt}return ct(zt,[{key:"getExpandedIcon",value:function(Ht){var Dt=this.props,Qt=Dt.theme,ar=Dt.iconStyle;return this.state.expanded[Ht]?yt.a.createElement(cn,{theme:Qt,iconStyle:ar}):yt.a.createElement(Ur,{theme:Qt,iconStyle:ar})}},{key:"render",value:function(){var Ht=this,Dt=this.props,Qt=Dt.src,ar=Dt.groupArraysAfterLength,lr=(Dt.depth,Dt.name),tr=Dt.theme,_r=Dt.jsvRoot,Br=Dt.namespace,un=(Dt.parent_type,wt(Dt,["src","groupArraysAfterLength","depth","name","theme","jsvRoot","namespace","parent_type"])),fn=0,an=5*this.props.indentWidth;_r||(fn=5*this.props.indentWidth);var tn=ar,_n=Math.ceil(Qt.length/tn);return yt.a.createElement("div",Object.assign({className:"object-key-val"},Rt(tr,_r?"jsv-root":"objectKeyVal",{paddingLeft:fn})),yt.a.createElement(Cn,this.props),yt.a.createElement("span",null,yt.a.createElement(In,Object.assign({size:Qt.length},this.props))),cr(Array(_n)).map(function(jn,pn){return yt.a.createElement("div",Object.assign({key:pn,className:"object-key-val array-group"},Rt(tr,"objectKeyVal",{marginLeft:6,paddingLeft:an})),yt.a.createElement("span",Rt(tr,"brace-row"),yt.a.createElement("div",Object.assign({className:"icon-container"},Rt(tr,"icon-container"),{onClick:function(qn){Ht.toggleCollapsed(pn)}}),Ht.getExpandedIcon(pn)),Ht.state.expanded[pn]?yt.a.createElement(Pn,Object.assign({key:lr+pn,depth:0,name:!1,collapsed:!1,groupArraysAfterLength:tn,index_offset:pn*tn,src:Qt.slice(pn*tn,pn*tn+tn),namespace:Br,type:"array",parent_type:"array_group",theme:tr},un)):yt.a.createElement("span",Object.assign({},Rt(tr,"brace"),{onClick:function(qn){Ht.toggleCollapsed(pn)},className:"array-group-brace"}),"[",yt.a.createElement("div",Object.assign({},Rt(tr,"array-group-meta-data"),{className:"array-group-meta-data"}),yt.a.createElement("span",Object.assign({className:"object-size"},Rt(tr,"object-size")),pn*tn," - ",pn*tn+tn>Qt.length?Qt.length:pn*tn+tn)),"]")))}))}}]),zt}(yt.a.PureComponent),Hn=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(Ht){var Dt;lt(this,zt),(Dt=Zt.call(this,Ht)).toggleCollapsed=function(){Dt.setState({expanded:!Dt.state.expanded},function(){Er.set(Dt.props.rjvId,Dt.props.namespace,"expanded",Dt.state.expanded)})},Dt.getObjectContent=function(ar,lr,tr){return yt.a.createElement("div",{className:"pushed-content object-container"},yt.a.createElement("div",Object.assign({className:"object-content"},Rt(Dt.props.theme,"pushed-content")),Dt.renderObjectContents(lr,tr)))},Dt.getEllipsis=function(){return Dt.state.size===0?null:yt.a.createElement("div",Object.assign({},Rt(Dt.props.theme,"ellipsis"),{className:"node-ellipsis",onClick:Dt.toggleCollapsed}),"...")},Dt.getObjectMetaData=function(ar){var lr=Dt.props,tr=(lr.rjvId,lr.theme,Dt.state),_r=tr.size,Br=tr.hovered;return yt.a.createElement(In,Object.assign({rowHovered:Br,size:_r},Dt.props))},Dt.renderObjectContents=function(ar,lr){var tr,_r=Dt.props,Br=_r.depth,un=_r.parent_type,fn=_r.index_offset,an=_r.groupArraysAfterLength,tn=_r.namespace,_n=Dt.state.object_type,jn=[],pn=Object.keys(ar||{});return Dt.props.sortKeys&&_n!=="array"&&(pn=pn.sort()),pn.forEach(function(qn){if(tr=new ro(qn,ar[qn]),un==="array_group"&&fn&&(tr.name=parseInt(tr.name)+fn),ar.hasOwnProperty(qn))if(tr.type==="object")jn.push(yt.a.createElement(Pn,Object.assign({key:tr.name,depth:Br+1,name:tr.name,src:tr.value,namespace:tn.concat(tr.name),parent_type:_n},lr)));else if(tr.type==="array"){var to=Pn;an&&tr.value.length>an&&(to=Fr),jn.push(yt.a.createElement(to,Object.assign({key:tr.name,depth:Br+1,name:tr.name,src:tr.value,namespace:tn.concat(tr.name),type:"array",parent_type:_n},lr)))}else jn.push(yt.a.createElement(Mn,Object.assign({key:tr.name+"_"+tn,variable:tr,singleIndent:5,namespace:tn,type:Dt.props.type},lr)))}),jn};var Qt=zt.getState(Ht);return Dt.state=st(st({},Qt),{},{prevProps:{}}),Dt}return ct(zt,[{key:"getBraceStart",value:function(Ht,Dt){var Qt=this,ar=this.props,lr=ar.src,tr=ar.theme,_r=ar.iconStyle;if(ar.parent_type==="array_group")return yt.a.createElement("span",null,yt.a.createElement("span",Rt(tr,"brace"),Ht==="array"?"[":"{"),Dt?this.getObjectMetaData(lr):null);var Br=Dt?cn:Ur;return yt.a.createElement("span",null,yt.a.createElement("span",Object.assign({onClick:function(un){Qt.toggleCollapsed()}},Rt(tr,"brace-row")),yt.a.createElement("div",Object.assign({className:"icon-container"},Rt(tr,"icon-container")),yt.a.createElement(Br,{theme:tr,iconStyle:_r})),yt.a.createElement(Cn,this.props),yt.a.createElement("span",Rt(tr,"brace"),Ht==="array"?"[":"{")),Dt?this.getObjectMetaData(lr):null)}},{key:"render",value:function(){var Ht=this,Dt=this.props,Qt=Dt.depth,ar=Dt.src,lr=(Dt.namespace,Dt.name,Dt.type,Dt.parent_type),tr=Dt.theme,_r=Dt.jsvRoot,Br=Dt.iconStyle,un=wt(Dt,["depth","src","namespace","name","type","parent_type","theme","jsvRoot","iconStyle"]),fn=this.state,an=fn.object_type,tn=fn.expanded,_n={};return _r||lr==="array_group"?lr==="array_group"&&(_n.borderLeft=0,_n.display="inline"):_n.paddingLeft=5*this.props.indentWidth,yt.a.createElement("div",Object.assign({className:"object-key-val",onMouseEnter:function(){return Ht.setState(st(st({},Ht.state),{},{hovered:!0}))},onMouseLeave:function(){return Ht.setState(st(st({},Ht.state),{},{hovered:!1}))}},Rt(tr,_r?"jsv-root":"objectKeyVal",_n)),this.getBraceStart(an,tn),tn?this.getObjectContent(Qt,ar,st({theme:tr,iconStyle:Br},un)):this.getEllipsis(),yt.a.createElement("span",{className:"brace-row"},yt.a.createElement("span",{style:st(st({},Rt(tr,"brace").style),{},{paddingLeft:tn?"3px":"0px"})},an==="array"?"]":"}"),tn?null:this.getObjectMetaData(ar)))}}],[{key:"getDerivedStateFromProps",value:function(Ht,Dt){var Qt=Dt.prevProps;return Ht.src!==Qt.src||Ht.collapsed!==Qt.collapsed||Ht.name!==Qt.name||Ht.namespace!==Qt.namespace||Ht.rjvId!==Qt.rjvId?st(st({},zt.getState(Ht)),{},{prevProps:Ht}):null}}]),zt}(yt.a.PureComponent);Hn.getState=function(Ut){var Zt=Object.keys(Ut.src).length,zt=(Ut.collapsed===!1||Ut.collapsed!==!0&&Ut.collapsed>Ut.depth)&&(!Ut.shouldCollapse||Ut.shouldCollapse({name:Ut.name,src:Ut.src,type:Ct(Ut.src),namespace:Ut.namespace})===!1)&&Zt!==0;return{expanded:Er.get(Ut.rjvId,Ut.namespace,"expanded",zt),object_type:Ut.type==="array"?"array":"object",parent_type:Ut.type==="array"?"array":"object",size:Zt,hovered:!1}};var ro=function Ut(Zt,zt){lt(this,Ut),this.name=Zt,this.value=zt,this.type=Ct(zt)};At(Hn);var Pn=Hn,jo=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){var Ht;lt(this,zt);for(var Dt=arguments.length,Qt=new Array(Dt),ar=0;arlr.groupArraysAfterLength&&(_r=Fr),yt.a.createElement("div",{className:"pretty-json-container object-container"},yt.a.createElement("div",{className:"object-content"},yt.a.createElement(_r,Object.assign({namespace:tr,depth:0,jsvRoot:!0},lr))))},Ht}return zt}(yt.a.PureComponent),vo=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(Ht){var Dt;return lt(this,zt),(Dt=Zt.call(this,Ht)).closeModal=function(){Tr.dispatch({rjvId:Dt.props.rjvId,name:"RESET"})},Dt.submit=function(){Dt.props.submit(Dt.state.input)},Dt.state={input:Ht.input?Ht.input:""},Dt}return ct(zt,[{key:"render",value:function(){var Ht=this,Dt=this.props,Qt=Dt.theme,ar=Dt.rjvId,lr=Dt.isValid,tr=this.state.input,_r=lr(tr);return yt.a.createElement("div",Object.assign({className:"key-modal-request"},Rt(Qt,"key-modal-request"),{onClick:this.closeModal}),yt.a.createElement("div",Object.assign({},Rt(Qt,"key-modal"),{onClick:function(Br){Br.stopPropagation()}}),yt.a.createElement("div",Rt(Qt,"key-modal-label"),"Key Name:"),yt.a.createElement("div",{style:{position:"relative"}},yt.a.createElement("input",Object.assign({},Rt(Qt,"key-modal-input"),{className:"key-modal-input",ref:function(Br){return Br&&Br.focus()},spellCheck:!1,value:tr,placeholder:"...",onChange:function(Br){Ht.setState({input:Br.target.value})},onKeyPress:function(Br){_r&&Br.key==="Enter"?Ht.submit():Br.key==="Escape"&&Ht.closeModal()}})),_r?yt.a.createElement(En,Object.assign({},Rt(Qt,"key-modal-submit"),{className:"key-modal-submit",onClick:function(Br){return Ht.submit()}})):null),yt.a.createElement("span",Rt(Qt,"key-modal-cancel"),yt.a.createElement(Ln,Object.assign({},Rt(Qt,"key-modal-cancel-icon"),{className:"key-modal-cancel",onClick:function(){Tr.dispatch({rjvId:ar,name:"RESET"})}})))))}}]),zt}(yt.a.PureComponent),eo=function(Ut){ft(zt,Ut);var Zt=_t(zt);function zt(){var Ht;lt(this,zt);for(var Dt=arguments.length,Qt=new Array(Dt),ar=0;ar=0)&&(et[rt]=j[rt]);return et}function _objectWithoutProperties$g(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$g(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _slicedToArray$d(j,_e){return _arrayWithHoles$e(j)||_iterableToArrayLimit$d(j,_e)||_unsupportedIterableToArray$l(j,_e)||_nonIterableRest$e()}function _arrayWithHoles$e(j){if(Array.isArray(j))return j}function _iterableToArrayLimit$d(j,_e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(j)))){var et=[],tt=!0,rt=!1,nt=void 0;try{for(var ot=j[Symbol.iterator](),it;!(tt=(it=ot.next()).done)&&(et.push(it.value),!(_e&&et.length===_e));tt=!0);}catch(st){rt=!0,nt=st}finally{try{!tt&&ot.return!=null&&ot.return()}finally{if(rt)throw nt}}return et}}function _unsupportedIterableToArray$l(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$l(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$l(j,_e)}}function _arrayLikeToArray$l(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _nonIterableRest$e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _defineProperty$B(j,_e,et){return _e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function ownKeys$D(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread2(j){for(var _e=1;_e=j.length?j.apply(this,rt):function(){for(var ot=arguments.length,it=new Array(ot),st=0;st1&&arguments[1]!==void 0?arguments[1]:{};validators$1.initial(j),validators$1.handler(_e);var et={current:j},tt=curry$2(didStateUpdate)(et,_e),rt=curry$2(updateState)(et),nt=curry$2(validators$1.changes)(j),ot=curry$2(extractChanges)(et);function it(){var lt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(ut){return ut};return validators$1.selector(lt),lt(et.current)}function st(lt){compose$2(tt,rt,nt,ot)(lt)}return[it,st]}function extractChanges(j,_e){return isFunction(_e)?_e(j.current):_e}function updateState(j,_e){return j.current=_objectSpread2(_objectSpread2({},j.current),_e),_e}function didStateUpdate(j,_e,et){return isFunction(_e)?_e(j.current):Object.keys(et).forEach(function(tt){var rt;return(rt=_e[tt])===null||rt===void 0?void 0:rt.call(_e,j.current[tt])}),et}var index={create:create$3},config$2={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}};function curry$1(j){return function _e(){for(var et=this,tt=arguments.length,rt=new Array(tt),nt=0;nt=j.length?j.apply(this,rt):function(){for(var ot=arguments.length,it=new Array(ot),st=0;st=0||(Lr[er]=or[er]);return Lr}(Kt,Zt);if(Object.getOwnPropertySymbols){var Qt=Object.getOwnPropertySymbols(Kt);for(Ht=0;Ht=0||Object.prototype.propertyIsEnumerable.call(Kt,zt)&&(Dt[zt]=Kt[zt])}return Dt}function Ct(Kt){var Zt=function(zt){return{}.toString.call(zt).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}(Kt);return Zt==="number"&&(Zt=isNaN(Kt)?"nan":(0|Kt)!=Kt?"float":"integer"),Zt}Et.__suppressDeprecationWarning=!0,St.__suppressDeprecationWarning=!0,Tt.__suppressDeprecationWarning=!0;var It={scheme:"rjv-default",author:"mac gainor",base00:"rgba(0, 0, 0, 0)",base01:"rgb(245, 245, 245)",base02:"rgb(235, 235, 235)",base03:"#93a1a1",base04:"rgba(0, 0, 0, 0.3)",base05:"#586e75",base06:"#073642",base07:"#002b36",base08:"#d33682",base09:"#cb4b16",base0A:"#dc322f",base0B:"#859900",base0C:"#6c71c4",base0D:"#586e75",base0E:"#2aa198",base0F:"#268bd2"},Nt={scheme:"rjv-grey",author:"mac gainor",base00:"rgba(1, 1, 1, 0)",base01:"rgba(1, 1, 1, 0.1)",base02:"rgba(0, 0, 0, 0.2)",base03:"rgba(1, 1, 1, 0.3)",base04:"rgba(0, 0, 0, 0.4)",base05:"rgba(1, 1, 1, 0.5)",base06:"rgba(1, 1, 1, 0.6)",base07:"rgba(1, 1, 1, 0.7)",base08:"rgba(1, 1, 1, 0.8)",base09:"rgba(1, 1, 1, 0.8)",base0A:"rgba(1, 1, 1, 0.8)",base0B:"rgba(1, 1, 1, 0.8)",base0C:"rgba(1, 1, 1, 0.8)",base0D:"rgba(1, 1, 1, 0.8)",base0E:"rgba(1, 1, 1, 0.8)",base0F:"rgba(1, 1, 1, 0.8)"},Ot={white:"#fff",black:"#000",transparent:"rgba(1, 1, 1, 0)",globalFontFamily:"monospace",globalCursor:"default",indentBlockWidth:"5px",braceFontWeight:"bold",braceCursor:"pointer",ellipsisFontSize:"18px",ellipsisLineHeight:"10px",ellipsisCursor:"pointer",keyMargin:"0px 5px",keyLetterSpacing:"0.5px",keyFontStyle:"none",keyBorderRadius:"3px",keyColonWeight:"bold",keyVerticalAlign:"top",keyOpacity:"0.85",keyOpacityHover:"1",keyValPaddingTop:"3px",keyValPaddingBottom:"3px",keyValPaddingRight:"5px",keyValBorderLeft:"1px solid",keyValBorderHover:"2px solid",keyValPaddingHover:"3px 5px 3px 4px",pushedContentMarginLeft:"6px",variableValuePaddingRight:"6px",nullFontSize:"11px",nullFontWeight:"bold",nullPadding:"1px 2px",nullBorderRadius:"3px",nanFontSize:"11px",nanFontWeight:"bold",nanPadding:"1px 2px",nanBorderRadius:"3px",undefinedFontSize:"11px",undefinedFontWeight:"bold",undefinedPadding:"1px 2px",undefinedBorderRadius:"3px",dataTypeFontSize:"11px",dataTypeMarginRight:"4px",datatypeOpacity:"0.8",objectSizeBorderRadius:"3px",objectSizeFontStyle:"italic",objectSizeMargin:"0px 6px 0px 0px",clipboardCursor:"pointer",clipboardCheckMarginLeft:"-12px",metaDataPadding:"0px 0px 0px 10px",arrayGroupMetaPadding:"0px 0px 0px 4px",iconContainerWidth:"17px",tooltipPadding:"4px",editInputMinWidth:"130px",editInputBorderRadius:"2px",editInputPadding:"5px",editInputMarginRight:"4px",editInputFontFamily:"monospace",iconCursor:"pointer",iconFontSize:"15px",iconPaddingRight:"1px",dateValueMarginLeft:"2px",iconMarginRight:"3px",detectedRowPaddingTop:"3px",addKeyCoverBackground:"rgba(255, 255, 255, 0.3)",addKeyCoverPosition:"absolute",addKeyCoverPositionPx:"0px",addKeyModalWidth:"200px",addKeyModalMargin:"auto",addKeyModalPadding:"10px",addKeyModalRadius:"3px"},jt=nt(45),Mt=function(Kt){var Zt=function(zt){return{backgroundColor:zt.base00,ellipsisColor:zt.base09,braceColor:zt.base07,expandedIcon:zt.base0D,collapsedIcon:zt.base0E,keyColor:zt.base07,arrayKeyColor:zt.base0C,objectSize:zt.base04,copyToClipboard:zt.base0F,copyToClipboardCheck:zt.base0D,objectBorder:zt.base02,dataTypes:{boolean:zt.base0E,date:zt.base0D,float:zt.base0B,function:zt.base0D,integer:zt.base0F,string:zt.base09,nan:zt.base08,null:zt.base0A,undefined:zt.base05,regexp:zt.base0A,background:zt.base02},editVariable:{editIcon:zt.base0E,cancelIcon:zt.base09,removeIcon:zt.base09,addIcon:zt.base0E,checkIcon:zt.base0E,background:zt.base01,color:zt.base0A,border:zt.base07},addKeyModal:{background:zt.base05,border:zt.base04,color:zt.base0A,labelColor:zt.base01},validationFailure:{background:zt.base09,iconColor:zt.base01,fontColor:zt.base01}}}(Kt);return{"app-container":{fontFamily:Ot.globalFontFamily,cursor:Ot.globalCursor,backgroundColor:Zt.backgroundColor,position:"relative"},ellipsis:{display:"inline-block",color:Zt.ellipsisColor,fontSize:Ot.ellipsisFontSize,lineHeight:Ot.ellipsisLineHeight,cursor:Ot.ellipsisCursor},"brace-row":{display:"inline-block",cursor:"pointer"},brace:{display:"inline-block",cursor:Ot.braceCursor,fontWeight:Ot.braceFontWeight,color:Zt.braceColor},"expanded-icon":{color:Zt.expandedIcon},"collapsed-icon":{color:Zt.collapsedIcon},colon:{display:"inline-block",margin:Ot.keyMargin,color:Zt.keyColor,verticalAlign:"top"},objectKeyVal:function(zt,Ht){return{style:st({paddingTop:Ot.keyValPaddingTop,paddingRight:Ot.keyValPaddingRight,paddingBottom:Ot.keyValPaddingBottom,borderLeft:Ot.keyValBorderLeft+" "+Zt.objectBorder,":hover":{paddingLeft:Ht.paddingLeft-1+"px",borderLeft:Ot.keyValBorderHover+" "+Zt.objectBorder}},Ht)}},"object-key-val-no-border":{padding:Ot.keyValPadding},"pushed-content":{marginLeft:Ot.pushedContentMarginLeft},variableValue:function(zt,Ht){return{style:st({display:"inline-block",paddingRight:Ot.variableValuePaddingRight,position:"relative"},Ht)}},"object-name":{display:"inline-block",color:Zt.keyColor,letterSpacing:Ot.keyLetterSpacing,fontStyle:Ot.keyFontStyle,verticalAlign:Ot.keyVerticalAlign,opacity:Ot.keyOpacity,":hover":{opacity:Ot.keyOpacityHover}},"array-key":{display:"inline-block",color:Zt.arrayKeyColor,letterSpacing:Ot.keyLetterSpacing,fontStyle:Ot.keyFontStyle,verticalAlign:Ot.keyVerticalAlign,opacity:Ot.keyOpacity,":hover":{opacity:Ot.keyOpacityHover}},"object-size":{color:Zt.objectSize,borderRadius:Ot.objectSizeBorderRadius,fontStyle:Ot.objectSizeFontStyle,margin:Ot.objectSizeMargin,cursor:"default"},"data-type-label":{fontSize:Ot.dataTypeFontSize,marginRight:Ot.dataTypeMarginRight,opacity:Ot.datatypeOpacity},boolean:{display:"inline-block",color:Zt.dataTypes.boolean},date:{display:"inline-block",color:Zt.dataTypes.date},"date-value":{marginLeft:Ot.dateValueMarginLeft},float:{display:"inline-block",color:Zt.dataTypes.float},function:{display:"inline-block",color:Zt.dataTypes.function,cursor:"pointer",whiteSpace:"pre-line"},"function-value":{fontStyle:"italic"},integer:{display:"inline-block",color:Zt.dataTypes.integer},string:{display:"inline-block",color:Zt.dataTypes.string},nan:{display:"inline-block",color:Zt.dataTypes.nan,fontSize:Ot.nanFontSize,fontWeight:Ot.nanFontWeight,backgroundColor:Zt.dataTypes.background,padding:Ot.nanPadding,borderRadius:Ot.nanBorderRadius},null:{display:"inline-block",color:Zt.dataTypes.null,fontSize:Ot.nullFontSize,fontWeight:Ot.nullFontWeight,backgroundColor:Zt.dataTypes.background,padding:Ot.nullPadding,borderRadius:Ot.nullBorderRadius},undefined:{display:"inline-block",color:Zt.dataTypes.undefined,fontSize:Ot.undefinedFontSize,padding:Ot.undefinedPadding,borderRadius:Ot.undefinedBorderRadius,backgroundColor:Zt.dataTypes.background},regexp:{display:"inline-block",color:Zt.dataTypes.regexp},"copy-to-clipboard":{cursor:Ot.clipboardCursor},"copy-icon":{color:Zt.copyToClipboard,fontSize:Ot.iconFontSize,marginRight:Ot.iconMarginRight,verticalAlign:"top"},"copy-icon-copied":{color:Zt.copyToClipboardCheck,marginLeft:Ot.clipboardCheckMarginLeft},"array-group-meta-data":{display:"inline-block",padding:Ot.arrayGroupMetaPadding},"object-meta-data":{display:"inline-block",padding:Ot.metaDataPadding},"icon-container":{display:"inline-block",width:Ot.iconContainerWidth},tooltip:{padding:Ot.tooltipPadding},removeVarIcon:{verticalAlign:"top",display:"inline-block",color:Zt.editVariable.removeIcon,cursor:Ot.iconCursor,fontSize:Ot.iconFontSize,marginRight:Ot.iconMarginRight},addVarIcon:{verticalAlign:"top",display:"inline-block",color:Zt.editVariable.addIcon,cursor:Ot.iconCursor,fontSize:Ot.iconFontSize,marginRight:Ot.iconMarginRight},editVarIcon:{verticalAlign:"top",display:"inline-block",color:Zt.editVariable.editIcon,cursor:Ot.iconCursor,fontSize:Ot.iconFontSize,marginRight:Ot.iconMarginRight},"edit-icon-container":{display:"inline-block",verticalAlign:"top"},"check-icon":{display:"inline-block",cursor:Ot.iconCursor,color:Zt.editVariable.checkIcon,fontSize:Ot.iconFontSize,paddingRight:Ot.iconPaddingRight},"cancel-icon":{display:"inline-block",cursor:Ot.iconCursor,color:Zt.editVariable.cancelIcon,fontSize:Ot.iconFontSize,paddingRight:Ot.iconPaddingRight},"edit-input":{display:"inline-block",minWidth:Ot.editInputMinWidth,borderRadius:Ot.editInputBorderRadius,backgroundColor:Zt.editVariable.background,color:Zt.editVariable.color,padding:Ot.editInputPadding,marginRight:Ot.editInputMarginRight,fontFamily:Ot.editInputFontFamily},"detected-row":{paddingTop:Ot.detectedRowPaddingTop},"key-modal-request":{position:Ot.addKeyCoverPosition,top:Ot.addKeyCoverPositionPx,left:Ot.addKeyCoverPositionPx,right:Ot.addKeyCoverPositionPx,bottom:Ot.addKeyCoverPositionPx,backgroundColor:Ot.addKeyCoverBackground},"key-modal":{width:Ot.addKeyModalWidth,backgroundColor:Zt.addKeyModal.background,marginLeft:Ot.addKeyModalMargin,marginRight:Ot.addKeyModalMargin,padding:Ot.addKeyModalPadding,borderRadius:Ot.addKeyModalRadius,marginTop:"15px",position:"relative"},"key-modal-label":{color:Zt.addKeyModal.labelColor,marginLeft:"2px",marginBottom:"5px",fontSize:"11px"},"key-modal-input-container":{overflow:"hidden"},"key-modal-input":{width:"100%",padding:"3px 6px",fontFamily:"monospace",color:Zt.addKeyModal.color,border:"none",boxSizing:"border-box",borderRadius:"2px"},"key-modal-cancel":{backgroundColor:Zt.editVariable.removeIcon,position:"absolute",top:"0px",right:"0px",borderRadius:"0px 3px 0px 3px",cursor:"pointer"},"key-modal-cancel-icon":{color:Zt.addKeyModal.labelColor,fontSize:Ot.iconFontSize,transform:"rotate(45deg)"},"key-modal-submit":{color:Zt.editVariable.addIcon,fontSize:Ot.iconFontSize,position:"absolute",right:"2px",top:"3px",cursor:"pointer"},"function-ellipsis":{display:"inline-block",color:Zt.ellipsisColor,fontSize:Ot.ellipsisFontSize,lineHeight:Ot.ellipsisLineHeight,cursor:Ot.ellipsisCursor},"validation-failure":{float:"right",padding:"3px 6px",borderRadius:"2px",cursor:"pointer",color:Zt.validationFailure.fontColor,backgroundColor:Zt.validationFailure.background},"validation-failure-label":{marginRight:"6px"},"validation-failure-clear":{position:"relative",verticalAlign:"top",cursor:"pointer",color:Zt.validationFailure.iconColor,fontSize:Ot.iconFontSize,transform:"rotate(45deg)"}}};function Rt(Kt,Zt,zt){return Kt||console.error("theme has not been set"),function(Ht){var Dt=It;return Ht!==!1&&Ht!=="none"||(Dt=Nt),Object(jt.createStyling)(Mt,{defaultBase16:Dt})(Ht)}(Kt)(Zt,zt)}var Lt=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=(Ht.rjvId,Ht.type_name),Qt=Ht.displayDataTypes,or=Ht.theme;return Qt?yt.a.createElement("span",Object.assign({className:"data-type-label"},Rt(or,"data-type-label")),Dt):null}}]),zt}(yt.a.PureComponent),Pt=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props;return yt.a.createElement("div",Rt(Ht.theme,"boolean"),yt.a.createElement(Lt,Object.assign({type_name:"bool"},Ht)),Ht.value?"true":"false")}}]),zt}(yt.a.PureComponent),Gt=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props;return yt.a.createElement("div",Rt(Ht.theme,"date"),yt.a.createElement(Lt,Object.assign({type_name:"date"},Ht)),yt.a.createElement("span",Object.assign({className:"date-value"},Rt(Ht.theme,"date-value")),Ht.value.toLocaleTimeString("en-us",{weekday:"short",year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})))}}]),zt}(yt.a.PureComponent),qt=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props;return yt.a.createElement("div",Rt(Ht.theme,"float"),yt.a.createElement(Lt,Object.assign({type_name:"float"},Ht)),this.props.value)}}]),zt}(yt.a.PureComponent);function Yt(Kt,Zt){(Zt==null||Zt>Kt.length)&&(Zt=Kt.length);for(var zt=0,Ht=new Array(Zt);zt"u"||Kt[Symbol.iterator]==null){if(Array.isArray(Kt)||(zt=Xt(Kt))||Zt&&Kt&&typeof Kt.length=="number"){zt&&(Kt=zt);var Ht=0,Dt=function(){};return{s:Dt,n:function(){return Ht>=Kt.length?{done:!0}:{done:!1,value:Kt[Ht++]}},e:function(er){throw er},f:Dt}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Qt,or=!0,lr=!1;return{s:function(){zt=Kt[Symbol.iterator]()},n:function(){var er=zt.next();return or=er.done,er},e:function(er){lr=!0,Qt=er},f:function(){try{or||zt.return==null||zt.return()}finally{if(lr)throw Qt}}}}function cr(Kt){return function(Zt){if(Array.isArray(Zt))return Yt(Zt)}(Kt)||function(Zt){if(typeof Symbol<"u"&&Symbol.iterator in Object(Zt))return Array.from(Zt)}(Kt)||Xt(Kt)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}var mr=nt(46),Er=new(nt(47)).Dispatcher,hr=new(function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){var Ht;lt(this,zt);for(var Dt=arguments.length,Qt=new Array(Dt),or=0;orDt&&(lr.style.cursor="pointer",this.state.collapsed&&(or=yt.a.createElement("span",null,or.substring(0,Dt),yt.a.createElement("span",Rt(Qt,"ellipsis")," ...")))),yt.a.createElement("div",Rt(Qt,"string"),yt.a.createElement(Lt,Object.assign({type_name:"string"},Ht)),yt.a.createElement("span",Object.assign({className:"string-value"},lr,{onClick:this.toggleCollapsed}),'"',or,'"'))}}]),zt}(yt.a.PureComponent),Rr=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){return yt.a.createElement("div",Rt(this.props.theme,"undefined"),"undefined")}}]),zt}(yt.a.PureComponent);function Cr(){return(Cr=Object.assign||function(Kt){for(var Zt=1;Zt=0||(Po[to]=dn[to]);return Po}(Kt,["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"]),Lr,nn=yr.value!==void 0,cn=Object(xt.useRef)(null),rn=Qr(cn,Zt),en=Object(xt.useRef)(0),_n=Object(xt.useRef)(),Ln=function(){var dn=cn.current,Kn=zt&&_n.current?_n.current:function(xo){var _i=window.getComputedStyle(xo);if(_i===null)return null;var zo,Zn=(zo=_i,fr.reduce(function(na,Ho){return na[Ho]=zo[Ho],na},{})),wo=Zn.boxSizing;return wo===""?null:(sr&&wo==="border-box"&&(Zn.width=parseFloat(Zn.width)+parseFloat(Zn.borderRightWidth)+parseFloat(Zn.borderLeftWidth)+parseFloat(Zn.paddingRight)+parseFloat(Zn.paddingLeft)+"px"),{sizingStyle:Zn,paddingSize:parseFloat(Zn.paddingBottom)+parseFloat(Zn.paddingTop),borderSize:parseFloat(Zn.borderBottomWidth)+parseFloat(Zn.borderTopWidth)})}(dn);if(Kn){_n.current=Kn;var to=function(xo,_i,zo,Zn){zo===void 0&&(zo=1),Zn===void 0&&(Zn=1/0),Vr||((Vr=document.createElement("textarea")).setAttribute("tab-index","-1"),Vr.setAttribute("aria-hidden","true"),Pr(Vr)),Vr.parentNode===null&&document.body.appendChild(Vr);var wo=xo.paddingSize,na=xo.borderSize,Ho=xo.sizingStyle,ga=Ho.boxSizing;Object.keys(Ho).forEach(function(es){var Yo=es;Vr.style[Yo]=Ho[Yo]}),Pr(Vr),Vr.value=_i;var Go=function(es,Yo){var Xo=es.scrollHeight;return Yo.sizingStyle.boxSizing==="border-box"?Xo+Yo.borderSize:Xo-Yo.paddingSize}(Vr,xo);Vr.value="x";var ps=Vr.scrollHeight-wo,Uo=ps*zo;ga==="border-box"&&(Uo=Uo+wo+na),Go=Math.max(Uo,Go);var xa=ps*Zn;return ga==="border-box"&&(xa=xa+wo+na),[Go=Math.min(xa,Go),ps]}(Kn,dn.value||dn.placeholder||"x",Dt,Ht),fo=to[0],Po=to[1];en.current!==fo&&(en.current=fo,dn.style.setProperty("height",fo+"px","important"),er(fo,{rowHeight:Po}))}};return Object(xt.useLayoutEffect)(Ln),Lr=Gr(Ln),Object(xt.useLayoutEffect)(function(){var dn=function(Kn){Lr.current(Kn)};return window.addEventListener("resize",dn),function(){window.removeEventListener("resize",dn)}},[]),Object(xt.createElement)("textarea",Cr({},yr,{onChange:function(dn){nn||Ln(),or(dn)},ref:rn}))},gr=Object(xt.forwardRef)(ir);function wr(Kt){Kt=Kt.trim();try{if((Kt=JSON.stringify(JSON.parse(Kt)))[0]==="[")return Mr("array",JSON.parse(Kt));if(Kt[0]==="{")return Mr("object",JSON.parse(Kt));if(Kt.match(/\-?\d+\.\d+/)&&Kt.match(/\-?\d+\.\d+/)[0]===Kt)return Mr("float",parseFloat(Kt));if(Kt.match(/\-?\d+e-\d+/)&&Kt.match(/\-?\d+e-\d+/)[0]===Kt)return Mr("float",Number(Kt));if(Kt.match(/\-?\d+/)&&Kt.match(/\-?\d+/)[0]===Kt)return Mr("integer",parseInt(Kt));if(Kt.match(/\-?\d+e\+\d+/)&&Kt.match(/\-?\d+e\+\d+/)[0]===Kt)return Mr("integer",Number(Kt))}catch{}switch(Kt=Kt.toLowerCase()){case"undefined":return Mr("undefined",void 0);case"nan":return Mr("nan",NaN);case"null":return Mr("null",null);case"true":return Mr("boolean",!0);case"false":return Mr("boolean",!1);default:if(Kt=Date.parse(Kt))return Mr("date",new Date(Kt))}return Mr(!1,null)}function Mr(Kt,Zt){return{type:Kt,value:Zt}}var Sr=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=$t(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},un(Dt),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,13H17V11H7"})))}}]),zt}(yt.a.PureComponent),Ir=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=$t(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},un(Dt),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M13,7H11V11H7V13H11V17H13V13H17V11H13V7Z"})))}}]),zt}(yt.a.PureComponent),zr=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=$t(Ht,["style"]),or=un(Dt).style;return yt.a.createElement("span",Qt,yt.a.createElement("svg",{fill:or.color,width:or.height,height:or.width,style:or,viewBox:"0 0 1792 1792"},yt.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-832q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h832q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),zt}(yt.a.PureComponent),Xr=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=$t(Ht,["style"]),or=un(Dt).style;return yt.a.createElement("span",Qt,yt.a.createElement("svg",{fill:or.color,width:or.height,height:or.width,style:or,viewBox:"0 0 1792 1792"},yt.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-352v352q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23v-352h-352q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h352v-352q0-14 9-23t23-9h64q14 0 23 9t9 23v352h352q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),zt}(yt.a.PureComponent),Zr=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=$t(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",{style:st(st({},un(Dt).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},yt.a.createElement("path",{d:"M0 14l6-6-6-6z"})))}}]),zt}(yt.a.PureComponent),sn=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=$t(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",{style:st(st({},un(Dt).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},yt.a.createElement("path",{d:"M0 5l6 6 6-6z"})))}}]),zt}(yt.a.PureComponent),$n=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=$t(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},un(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m30 35h-25v-22.5h25v7.5h2.5v-12.5c0-1.4-1.1-2.5-2.5-2.5h-7.5c0-2.8-2.2-5-5-5s-5 2.2-5 5h-7.5c-1.4 0-2.5 1.1-2.5 2.5v27.5c0 1.4 1.1 2.5 2.5 2.5h25c1.4 0 2.5-1.1 2.5-2.5v-5h-2.5v5z m-20-27.5h2.5s2.5-1.1 2.5-2.5 1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5 1.3 2.5 2.5 2.5h2.5s2.5 1.1 2.5 2.5h-20c0-1.5 1.1-2.5 2.5-2.5z m-2.5 20h5v-2.5h-5v2.5z m17.5-5v-5l-10 7.5 10 7.5v-5h12.5v-5h-12.5z m-17.5 10h7.5v-2.5h-7.5v2.5z m12.5-17.5h-12.5v2.5h12.5v-2.5z m-7.5 5h-5v2.5h5v-2.5z"}))))}}]),zt}(yt.a.PureComponent),Nn=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=$t(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},un(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m28.6 25q0-0.5-0.4-1l-4-4 4-4q0.4-0.5 0.4-1 0-0.6-0.4-1.1l-2-2q-0.4-0.4-1-0.4-0.6 0-1 0.4l-4.1 4.1-4-4.1q-0.4-0.4-1-0.4-0.6 0-1 0.4l-2 2q-0.5 0.5-0.5 1.1 0 0.5 0.5 1l4 4-4 4q-0.5 0.5-0.5 1 0 0.7 0.5 1.1l2 2q0.4 0.4 1 0.4 0.6 0 1-0.4l4-4.1 4.1 4.1q0.4 0.4 1 0.4 0.6 0 1-0.4l2-2q0.4-0.4 0.4-1z m8.7-5q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),zt}(yt.a.PureComponent),hn=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=$t(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},un(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m30.1 21.4v-2.8q0-0.6-0.4-1t-1-0.5h-5.7v-5.7q0-0.6-0.4-1t-1-0.4h-2.9q-0.6 0-1 0.4t-0.4 1v5.7h-5.7q-0.6 0-1 0.5t-0.5 1v2.8q0 0.6 0.5 1t1 0.5h5.7v5.7q0 0.5 0.4 1t1 0.4h2.9q0.6 0 1-0.4t0.4-1v-5.7h5.7q0.6 0 1-0.5t0.4-1z m7.2-1.4q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),zt}(yt.a.PureComponent),jn=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=$t(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},un(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m31.6 21.6h-10v10h-3.2v-10h-10v-3.2h10v-10h3.2v10h10v3.2z"}))))}}]),zt}(yt.a.PureComponent),qn=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=$t(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},un(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m19.8 26.4l2.6-2.6-3.4-3.4-2.6 2.6v1.3h2.2v2.1h1.2z m9.8-16q-0.3-0.4-0.7 0l-7.8 7.8q-0.4 0.4 0 0.7t0.7 0l7.8-7.8q0.4-0.4 0-0.7z m1.8 13.2v4.3q0 2.6-1.9 4.5t-4.5 1.9h-18.6q-2.6 0-4.5-1.9t-1.9-4.5v-18.6q0-2.7 1.9-4.6t4.5-1.8h18.6q1.4 0 2.6 0.5 0.3 0.2 0.4 0.5 0.1 0.4-0.2 0.7l-1.1 1.1q-0.3 0.3-0.7 0.1-0.5-0.1-1-0.1h-18.6q-1.4 0-2.5 1.1t-1 2.5v18.6q0 1.4 1 2.5t2.5 1h18.6q1.5 0 2.5-1t1.1-2.5v-2.9q0-0.2 0.2-0.4l1.4-1.5q0.3-0.3 0.8-0.1t0.4 0.6z m-2.1-16.5l6.4 6.5-15 15h-6.4v-6.5z m9.9 3l-2.1 2-6.4-6.4 2.1-2q0.6-0.7 1.5-0.7t1.5 0.7l3.4 3.4q0.6 0.6 0.6 1.5t-0.6 1.5z"}))))}}]),zt}(yt.a.PureComponent),Sn=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){return lt(this,zt),Zt.apply(this,arguments)}return ct(zt,[{key:"render",value:function(){var Ht=this.props,Dt=Ht.style,Qt=$t(Ht,["style"]);return yt.a.createElement("span",Qt,yt.a.createElement("svg",Object.assign({},un(Dt),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),yt.a.createElement("g",null,yt.a.createElement("path",{d:"m31.7 16.4q0-0.6-0.4-1l-2.1-2.1q-0.4-0.4-1-0.4t-1 0.4l-9.1 9.1-5-5q-0.5-0.4-1-0.4t-1 0.4l-2.1 2q-0.4 0.4-0.4 1 0 0.6 0.4 1l8.1 8.1q0.4 0.4 1 0.4 0.6 0 1-0.4l12.2-12.1q0.4-0.4 0.4-1z m5.6 3.6q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),zt}(yt.a.PureComponent);function un(Kt){return Kt||(Kt={}),{style:st(st({verticalAlign:"middle"},Kt),{},{color:Kt.color?Kt.color:"#000000",height:"1em",width:"1em"})}}var Fn=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(Ht){var Dt;return lt(this,zt),(Dt=Zt.call(this,Ht)).copiedTimer=null,Dt.handleCopy=function(){var Qt=document.createElement("textarea"),or=Dt.props,lr=or.clickCallback,er=or.src,yr=or.namespace;Qt.innerHTML=JSON.stringify(Dt.clipboardValue(er),null," "),document.body.appendChild(Qt),Qt.select(),document.execCommand("copy"),document.body.removeChild(Qt),Dt.copiedTimer=setTimeout(function(){Dt.setState({copied:!1})},5500),Dt.setState({copied:!0},function(){typeof lr=="function"&&lr({src:er,namespace:yr,name:yr[yr.length-1]})})},Dt.getClippyIcon=function(){var Qt=Dt.props.theme;return Dt.state.copied?yt.a.createElement("span",null,yt.a.createElement($n,Object.assign({className:"copy-icon"},Rt(Qt,"copy-icon"))),yt.a.createElement("span",Rt(Qt,"copy-icon-copied"),"✔")):yt.a.createElement($n,Object.assign({className:"copy-icon"},Rt(Qt,"copy-icon")))},Dt.clipboardValue=function(Qt){switch(Ct(Qt)){case"function":case"regexp":return Qt.toString();default:return Qt}},Dt.state={copied:!1},Dt}return ct(zt,[{key:"componentWillUnmount",value:function(){this.copiedTimer&&(clearTimeout(this.copiedTimer),this.copiedTimer=null)}},{key:"render",value:function(){var Ht=this.props,Dt=(Ht.src,Ht.theme),Qt=Ht.hidden,or=Ht.rowHovered,lr=Rt(Dt,"copy-to-clipboard").style,er="inline";return Qt&&(er="none"),yt.a.createElement("span",{className:"copy-to-clipboard-container",title:"Copy to clipboard",style:{verticalAlign:"top",display:or?"inline-block":"none"}},yt.a.createElement("span",{style:st(st({},lr),{},{display:er}),onClick:this.handleCopy},this.getClippyIcon()))}}]),zt}(yt.a.PureComponent),On=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(Ht){var Dt;return lt(this,zt),(Dt=Zt.call(this,Ht)).getEditIcon=function(){var Qt=Dt.props,or=Qt.variable,lr=Qt.theme;return yt.a.createElement("div",{className:"click-to-edit",style:{verticalAlign:"top",display:Dt.state.hovered?"inline-block":"none"}},yt.a.createElement(qn,Object.assign({className:"click-to-edit-icon"},Rt(lr,"editVarIcon"),{onClick:function(){Dt.prepopInput(or)}})))},Dt.prepopInput=function(Qt){if(Dt.props.onEdit!==!1){var or=function(er){var yr;switch(Ct(er)){case"undefined":yr="undefined";break;case"nan":yr="NaN";break;case"string":yr=er;break;case"date":case"function":case"regexp":yr=er.toString();break;default:try{yr=JSON.stringify(er,null," ")}catch{yr=""}}return yr}(Qt.value),lr=wr(or);Dt.setState({editMode:!0,editValue:or,parsedInput:{type:lr.type,value:lr.value}})}},Dt.getRemoveIcon=function(){var Qt=Dt.props,or=Qt.variable,lr=Qt.namespace,er=Qt.theme,yr=Qt.rjvId;return yt.a.createElement("div",{className:"click-to-remove",style:{verticalAlign:"top",display:Dt.state.hovered?"inline-block":"none"}},yt.a.createElement(Nn,Object.assign({className:"click-to-remove-icon"},Rt(er,"removeVarIcon"),{onClick:function(){Er.dispatch({name:"VARIABLE_REMOVED",rjvId:yr,data:{name:or.name,namespace:lr,existing_value:or.value,variable_removed:!0}})}})))},Dt.getValue=function(Qt,or){var lr=!or&&Qt.type,er=mt(Dt).props;switch(lr){case!1:return Dt.getEditInput();case"string":return yt.a.createElement($r,Object.assign({value:Qt.value},er));case"integer":return yt.a.createElement(rr,Object.assign({value:Qt.value},er));case"float":return yt.a.createElement(qt,Object.assign({value:Qt.value},er));case"boolean":return yt.a.createElement(Pt,Object.assign({value:Qt.value},er));case"function":return yt.a.createElement(Ut,Object.assign({value:Qt.value},er));case"null":return yt.a.createElement(pr,er);case"nan":return yt.a.createElement(ar,er);case"undefined":return yt.a.createElement(Rr,er);case"date":return yt.a.createElement(Gt,Object.assign({value:Qt.value},er));case"regexp":return yt.a.createElement(vr,Object.assign({value:Qt.value},er));default:return yt.a.createElement("div",{className:"object-value"},JSON.stringify(Qt.value))}},Dt.getEditInput=function(){var Qt=Dt.props.theme,or=Dt.state.editValue;return yt.a.createElement("div",null,yt.a.createElement(gr,Object.assign({type:"text",inputRef:function(lr){return lr&&lr.focus()},value:or,className:"variable-editor",onChange:function(lr){var er=lr.target.value,yr=wr(er);Dt.setState({editValue:er,parsedInput:{type:yr.type,value:yr.value}})},onKeyDown:function(lr){switch(lr.key){case"Escape":Dt.setState({editMode:!1,editValue:""});break;case"Enter":(lr.ctrlKey||lr.metaKey)&&Dt.submitEdit(!0)}lr.stopPropagation()},placeholder:"update this value",minRows:2},Rt(Qt,"edit-input"))),yt.a.createElement("div",Rt(Qt,"edit-icon-container"),yt.a.createElement(Nn,Object.assign({className:"edit-cancel"},Rt(Qt,"cancel-icon"),{onClick:function(){Dt.setState({editMode:!1,editValue:""})}})),yt.a.createElement(Sn,Object.assign({className:"edit-check string-value"},Rt(Qt,"check-icon"),{onClick:function(){Dt.submitEdit()}})),yt.a.createElement("div",null,Dt.showDetected())))},Dt.submitEdit=function(Qt){var or=Dt.props,lr=or.variable,er=or.namespace,yr=or.rjvId,Lr=Dt.state,nn=Lr.editValue,cn=Lr.parsedInput,rn=nn;Qt&&cn.type&&(rn=cn.value),Dt.setState({editMode:!1}),Er.dispatch({name:"VARIABLE_UPDATED",rjvId:yr,data:{name:lr.name,namespace:er,existing_value:lr.value,new_value:rn,variable_removed:!1}})},Dt.showDetected=function(){var Qt=Dt.props,or=Qt.theme,lr=(Qt.variable,Qt.namespace,Qt.rjvId,Dt.state.parsedInput),er=(lr.type,lr.value,Dt.getDetectedInput());if(er)return yt.a.createElement("div",null,yt.a.createElement("div",Rt(or,"detected-row"),er,yt.a.createElement(Sn,{className:"edit-check detected",style:st({verticalAlign:"top",paddingLeft:"3px"},Rt(or,"check-icon").style),onClick:function(){Dt.submitEdit(!0)}})))},Dt.getDetectedInput=function(){var Qt=Dt.state.parsedInput,or=Qt.type,lr=Qt.value,er=mt(Dt).props,yr=er.theme;if(or!==!1)switch(or.toLowerCase()){case"object":return yt.a.createElement("span",null,yt.a.createElement("span",{style:st(st({},Rt(yr,"brace").style),{},{cursor:"default"})},"{"),yt.a.createElement("span",{style:st(st({},Rt(yr,"ellipsis").style),{},{cursor:"default"})},"..."),yt.a.createElement("span",{style:st(st({},Rt(yr,"brace").style),{},{cursor:"default"})},"}"));case"array":return yt.a.createElement("span",null,yt.a.createElement("span",{style:st(st({},Rt(yr,"brace").style),{},{cursor:"default"})},"["),yt.a.createElement("span",{style:st(st({},Rt(yr,"ellipsis").style),{},{cursor:"default"})},"..."),yt.a.createElement("span",{style:st(st({},Rt(yr,"brace").style),{},{cursor:"default"})},"]"));case"string":return yt.a.createElement($r,Object.assign({value:lr},er));case"integer":return yt.a.createElement(rr,Object.assign({value:lr},er));case"float":return yt.a.createElement(qt,Object.assign({value:lr},er));case"boolean":return yt.a.createElement(Pt,Object.assign({value:lr},er));case"function":return yt.a.createElement(Ut,Object.assign({value:lr},er));case"null":return yt.a.createElement(pr,er);case"nan":return yt.a.createElement(ar,er);case"undefined":return yt.a.createElement(Rr,er);case"date":return yt.a.createElement(Gt,Object.assign({value:new Date(lr)},er))}},Dt.state={editMode:!1,editValue:"",hovered:!1,renameKey:!1,parsedInput:{type:!1,value:null}},Dt}return ct(zt,[{key:"render",value:function(){var Ht=this,Dt=this.props,Qt=Dt.variable,or=Dt.singleIndent,lr=Dt.type,er=Dt.theme,yr=Dt.namespace,Lr=Dt.indentWidth,nn=Dt.enableClipboard,cn=Dt.onEdit,rn=Dt.onDelete,en=Dt.onSelect,_n=Dt.displayArrayKey,Ln=Dt.quotesOnKeys,dn=this.state.editMode;return yt.a.createElement("div",Object.assign({},Rt(er,"objectKeyVal",{paddingLeft:Lr*or}),{onMouseEnter:function(){return Ht.setState(st(st({},Ht.state),{},{hovered:!0}))},onMouseLeave:function(){return Ht.setState(st(st({},Ht.state),{},{hovered:!1}))},className:"variable-row",key:Qt.name}),lr=="array"?_n?yt.a.createElement("span",Object.assign({},Rt(er,"array-key"),{key:Qt.name+"_"+yr}),Qt.name,yt.a.createElement("div",Rt(er,"colon"),":")):null:yt.a.createElement("span",null,yt.a.createElement("span",Object.assign({},Rt(er,"object-name"),{className:"object-key",key:Qt.name+"_"+yr}),!!Ln&&yt.a.createElement("span",{style:{verticalAlign:"top"}},'"'),yt.a.createElement("span",{style:{display:"inline-block"}},Qt.name),!!Ln&&yt.a.createElement("span",{style:{verticalAlign:"top"}},'"')),yt.a.createElement("span",Rt(er,"colon"),":")),yt.a.createElement("div",Object.assign({className:"variable-value",onClick:en===!1&&cn===!1?null:function(Kn){var to=cr(yr);(Kn.ctrlKey||Kn.metaKey)&&cn!==!1?Ht.prepopInput(Qt):en!==!1&&(to.shift(),en(st(st({},Qt),{},{namespace:to})))}},Rt(er,"variableValue",{cursor:en===!1?"default":"pointer"})),this.getValue(Qt,dn)),nn?yt.a.createElement(Fn,{rowHovered:this.state.hovered,hidden:dn,src:Qt.value,clickCallback:nn,theme:er,namespace:[].concat(cr(yr),[Qt.name])}):null,cn!==!1&&dn==0?this.getEditIcon():null,rn!==!1&&dn==0?this.getRemoveIcon():null)}}]),zt}(yt.a.PureComponent),Pn=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){var Ht;lt(this,zt);for(var Dt=arguments.length,Qt=new Array(Dt),or=0;or0?nn:null,namespace:Lr.splice(0,Lr.length-1),existing_value:cn,variable_removed:!1,key_name:null};Ct(cn)==="object"?Er.dispatch({name:"ADD_VARIABLE_KEY_REQUEST",rjvId:rn,data:_n}):Er.dispatch({name:"VARIABLE_ADDED",rjvId:rn,data:st(st({},_n),{},{new_value:[].concat(cr(cn),[null])})})}})))},Ht.getRemoveObject=function(lr){var er=Ht.props,yr=er.theme,Lr=(er.hover,er.namespace),nn=er.name,cn=er.src,rn=er.rjvId;if(Lr.length!==1)return yt.a.createElement("span",{className:"click-to-remove",style:{display:lr?"inline-block":"none"}},yt.a.createElement(Nn,Object.assign({className:"click-to-remove-icon"},Rt(yr,"removeVarIcon"),{onClick:function(){Er.dispatch({name:"VARIABLE_REMOVED",rjvId:rn,data:{name:nn,namespace:Lr.splice(0,Lr.length-1),existing_value:cn,variable_removed:!0}})}})))},Ht.render=function(){var lr=Ht.props,er=lr.theme,yr=lr.onDelete,Lr=lr.onAdd,nn=lr.enableClipboard,cn=lr.src,rn=lr.namespace,en=lr.rowHovered;return yt.a.createElement("div",Object.assign({},Rt(er,"object-meta-data"),{className:"object-meta-data",onClick:function(_n){_n.stopPropagation()}}),Ht.getObjectSize(),nn?yt.a.createElement(Fn,{rowHovered:en,clickCallback:nn,src:cn,theme:er,namespace:rn}):null,Lr!==!1?Ht.getAddAttribute(en):null,yr!==!1?Ht.getRemoveObject(en):null)},Ht}return zt}(yt.a.PureComponent);function wn(Kt){var Zt=Kt.parent_type,zt=Kt.namespace,Ht=Kt.quotesOnKeys,Dt=Kt.theme,Qt=Kt.jsvRoot,or=Kt.name,lr=Kt.displayArrayKey,er=Kt.name?Kt.name:"";return!Qt||or!==!1&&or!==null?Zt=="array"?lr?yt.a.createElement("span",Object.assign({},Rt(Dt,"array-key"),{key:zt}),yt.a.createElement("span",{className:"array-key"},er),yt.a.createElement("span",Rt(Dt,"colon"),":")):yt.a.createElement("span",null):yt.a.createElement("span",Object.assign({},Rt(Dt,"object-name"),{key:zt}),yt.a.createElement("span",{className:"object-key"},Ht&&yt.a.createElement("span",{style:{verticalAlign:"top"}},'"'),yt.a.createElement("span",null,er),Ht&&yt.a.createElement("span",{style:{verticalAlign:"top"}},'"')),yt.a.createElement("span",Rt(Dt,"colon"),":")):yt.a.createElement("span",null)}function fn(Kt){var Zt=Kt.theme;switch(Kt.iconStyle){case"triangle":return yt.a.createElement(sn,Object.assign({},Rt(Zt,"expanded-icon"),{className:"expanded-icon"}));case"square":return yt.a.createElement(zr,Object.assign({},Rt(Zt,"expanded-icon"),{className:"expanded-icon"}));default:return yt.a.createElement(Sr,Object.assign({},Rt(Zt,"expanded-icon"),{className:"expanded-icon"}))}}function Kr(Kt){var Zt=Kt.theme;switch(Kt.iconStyle){case"triangle":return yt.a.createElement(Zr,Object.assign({},Rt(Zt,"collapsed-icon"),{className:"collapsed-icon"}));case"square":return yt.a.createElement(Xr,Object.assign({},Rt(Zt,"collapsed-icon"),{className:"collapsed-icon"}));default:return yt.a.createElement(Ir,Object.assign({},Rt(Zt,"collapsed-icon"),{className:"collapsed-icon"}))}}var jr=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(Ht){var Dt;return lt(this,zt),(Dt=Zt.call(this,Ht)).toggleCollapsed=function(Qt){var or=[];for(var lr in Dt.state.expanded)or.push(Dt.state.expanded[lr]);or[Qt]=!or[Qt],Dt.setState({expanded:or})},Dt.state={expanded:[]},Dt}return ct(zt,[{key:"getExpandedIcon",value:function(Ht){var Dt=this.props,Qt=Dt.theme,or=Dt.iconStyle;return this.state.expanded[Ht]?yt.a.createElement(fn,{theme:Qt,iconStyle:or}):yt.a.createElement(Kr,{theme:Qt,iconStyle:or})}},{key:"render",value:function(){var Ht=this,Dt=this.props,Qt=Dt.src,or=Dt.groupArraysAfterLength,lr=(Dt.depth,Dt.name),er=Dt.theme,yr=Dt.jsvRoot,Lr=Dt.namespace,nn=(Dt.parent_type,$t(Dt,["src","groupArraysAfterLength","depth","name","theme","jsvRoot","namespace","parent_type"])),cn=0,rn=5*this.props.indentWidth;yr||(cn=5*this.props.indentWidth);var en=or,_n=Math.ceil(Qt.length/en);return yt.a.createElement("div",Object.assign({className:"object-key-val"},Rt(er,yr?"jsv-root":"objectKeyVal",{paddingLeft:cn})),yt.a.createElement(wn,this.props),yt.a.createElement("span",null,yt.a.createElement(Pn,Object.assign({size:Qt.length},this.props))),cr(Array(_n)).map(function(Ln,dn){return yt.a.createElement("div",Object.assign({key:dn,className:"object-key-val array-group"},Rt(er,"objectKeyVal",{marginLeft:6,paddingLeft:rn})),yt.a.createElement("span",Rt(er,"brace-row"),yt.a.createElement("div",Object.assign({className:"icon-container"},Rt(er,"icon-container"),{onClick:function(Kn){Ht.toggleCollapsed(dn)}}),Ht.getExpandedIcon(dn)),Ht.state.expanded[dn]?yt.a.createElement(Mn,Object.assign({key:lr+dn,depth:0,name:!1,collapsed:!1,groupArraysAfterLength:en,index_offset:dn*en,src:Qt.slice(dn*en,dn*en+en),namespace:Lr,type:"array",parent_type:"array_group",theme:er},nn)):yt.a.createElement("span",Object.assign({},Rt(er,"brace"),{onClick:function(Kn){Ht.toggleCollapsed(dn)},className:"array-group-brace"}),"[",yt.a.createElement("div",Object.assign({},Rt(er,"array-group-meta-data"),{className:"array-group-meta-data"}),yt.a.createElement("span",Object.assign({className:"object-size"},Rt(er,"object-size")),dn*en," - ",dn*en+en>Qt.length?Qt.length:dn*en+en)),"]")))}))}}]),zt}(yt.a.PureComponent),zn=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(Ht){var Dt;lt(this,zt),(Dt=Zt.call(this,Ht)).toggleCollapsed=function(){Dt.setState({expanded:!Dt.state.expanded},function(){_r.set(Dt.props.rjvId,Dt.props.namespace,"expanded",Dt.state.expanded)})},Dt.getObjectContent=function(or,lr,er){return yt.a.createElement("div",{className:"pushed-content object-container"},yt.a.createElement("div",Object.assign({className:"object-content"},Rt(Dt.props.theme,"pushed-content")),Dt.renderObjectContents(lr,er)))},Dt.getEllipsis=function(){return Dt.state.size===0?null:yt.a.createElement("div",Object.assign({},Rt(Dt.props.theme,"ellipsis"),{className:"node-ellipsis",onClick:Dt.toggleCollapsed}),"...")},Dt.getObjectMetaData=function(or){var lr=Dt.props,er=(lr.rjvId,lr.theme,Dt.state),yr=er.size,Lr=er.hovered;return yt.a.createElement(Pn,Object.assign({rowHovered:Lr,size:yr},Dt.props))},Dt.renderObjectContents=function(or,lr){var er,yr=Dt.props,Lr=yr.depth,nn=yr.parent_type,cn=yr.index_offset,rn=yr.groupArraysAfterLength,en=yr.namespace,_n=Dt.state.object_type,Ln=[],dn=Object.keys(or||{});return Dt.props.sortKeys&&_n!=="array"&&(dn=dn.sort()),dn.forEach(function(Kn){if(er=new ro(Kn,or[Kn]),nn==="array_group"&&cn&&(er.name=parseInt(er.name)+cn),or.hasOwnProperty(Kn))if(er.type==="object")Ln.push(yt.a.createElement(Mn,Object.assign({key:er.name,depth:Lr+1,name:er.name,src:er.value,namespace:en.concat(er.name),parent_type:_n},lr)));else if(er.type==="array"){var to=Mn;rn&&er.value.length>rn&&(to=jr),Ln.push(yt.a.createElement(to,Object.assign({key:er.name,depth:Lr+1,name:er.name,src:er.value,namespace:en.concat(er.name),type:"array",parent_type:_n},lr)))}else Ln.push(yt.a.createElement(On,Object.assign({key:er.name+"_"+en,variable:er,singleIndent:5,namespace:en,type:Dt.props.type},lr)))}),Ln};var Qt=zt.getState(Ht);return Dt.state=st(st({},Qt),{},{prevProps:{}}),Dt}return ct(zt,[{key:"getBraceStart",value:function(Ht,Dt){var Qt=this,or=this.props,lr=or.src,er=or.theme,yr=or.iconStyle;if(or.parent_type==="array_group")return yt.a.createElement("span",null,yt.a.createElement("span",Rt(er,"brace"),Ht==="array"?"[":"{"),Dt?this.getObjectMetaData(lr):null);var Lr=Dt?fn:Kr;return yt.a.createElement("span",null,yt.a.createElement("span",Object.assign({onClick:function(nn){Qt.toggleCollapsed()}},Rt(er,"brace-row")),yt.a.createElement("div",Object.assign({className:"icon-container"},Rt(er,"icon-container")),yt.a.createElement(Lr,{theme:er,iconStyle:yr})),yt.a.createElement(wn,this.props),yt.a.createElement("span",Rt(er,"brace"),Ht==="array"?"[":"{")),Dt?this.getObjectMetaData(lr):null)}},{key:"render",value:function(){var Ht=this,Dt=this.props,Qt=Dt.depth,or=Dt.src,lr=(Dt.namespace,Dt.name,Dt.type,Dt.parent_type),er=Dt.theme,yr=Dt.jsvRoot,Lr=Dt.iconStyle,nn=$t(Dt,["depth","src","namespace","name","type","parent_type","theme","jsvRoot","iconStyle"]),cn=this.state,rn=cn.object_type,en=cn.expanded,_n={};return yr||lr==="array_group"?lr==="array_group"&&(_n.borderLeft=0,_n.display="inline"):_n.paddingLeft=5*this.props.indentWidth,yt.a.createElement("div",Object.assign({className:"object-key-val",onMouseEnter:function(){return Ht.setState(st(st({},Ht.state),{},{hovered:!0}))},onMouseLeave:function(){return Ht.setState(st(st({},Ht.state),{},{hovered:!1}))}},Rt(er,yr?"jsv-root":"objectKeyVal",_n)),this.getBraceStart(rn,en),en?this.getObjectContent(Qt,or,st({theme:er,iconStyle:Lr},nn)):this.getEllipsis(),yt.a.createElement("span",{className:"brace-row"},yt.a.createElement("span",{style:st(st({},Rt(er,"brace").style),{},{paddingLeft:en?"3px":"0px"})},rn==="array"?"]":"}"),en?null:this.getObjectMetaData(or)))}}],[{key:"getDerivedStateFromProps",value:function(Ht,Dt){var Qt=Dt.prevProps;return Ht.src!==Qt.src||Ht.collapsed!==Qt.collapsed||Ht.name!==Qt.name||Ht.namespace!==Qt.namespace||Ht.rjvId!==Qt.rjvId?st(st({},zt.getState(Ht)),{},{prevProps:Ht}):null}}]),zt}(yt.a.PureComponent);zn.getState=function(Kt){var Zt=Object.keys(Kt.src).length,zt=(Kt.collapsed===!1||Kt.collapsed!==!0&&Kt.collapsed>Kt.depth)&&(!Kt.shouldCollapse||Kt.shouldCollapse({name:Kt.name,src:Kt.src,type:Ct(Kt.src),namespace:Kt.namespace})===!1)&&Zt!==0;return{expanded:_r.get(Kt.rjvId,Kt.namespace,"expanded",zt),object_type:Kt.type==="array"?"array":"object",parent_type:Kt.type==="array"?"array":"object",size:Zt,hovered:!1}};var ro=function Kt(Zt,zt){lt(this,Kt),this.name=Zt,this.value=zt,this.type=Ct(zt)};kt(zn);var Mn=zn,Fo=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){var Ht;lt(this,zt);for(var Dt=arguments.length,Qt=new Array(Dt),or=0;orlr.groupArraysAfterLength&&(yr=jr),yt.a.createElement("div",{className:"pretty-json-container object-container"},yt.a.createElement("div",{className:"object-content"},yt.a.createElement(yr,Object.assign({namespace:er,depth:0,jsvRoot:!0},lr))))},Ht}return zt}(yt.a.PureComponent),mo=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(Ht){var Dt;return lt(this,zt),(Dt=Zt.call(this,Ht)).closeModal=function(){Er.dispatch({rjvId:Dt.props.rjvId,name:"RESET"})},Dt.submit=function(){Dt.props.submit(Dt.state.input)},Dt.state={input:Ht.input?Ht.input:""},Dt}return ct(zt,[{key:"render",value:function(){var Ht=this,Dt=this.props,Qt=Dt.theme,or=Dt.rjvId,lr=Dt.isValid,er=this.state.input,yr=lr(er);return yt.a.createElement("div",Object.assign({className:"key-modal-request"},Rt(Qt,"key-modal-request"),{onClick:this.closeModal}),yt.a.createElement("div",Object.assign({},Rt(Qt,"key-modal"),{onClick:function(Lr){Lr.stopPropagation()}}),yt.a.createElement("div",Rt(Qt,"key-modal-label"),"Key Name:"),yt.a.createElement("div",{style:{position:"relative"}},yt.a.createElement("input",Object.assign({},Rt(Qt,"key-modal-input"),{className:"key-modal-input",ref:function(Lr){return Lr&&Lr.focus()},spellCheck:!1,value:er,placeholder:"...",onChange:function(Lr){Ht.setState({input:Lr.target.value})},onKeyPress:function(Lr){yr&&Lr.key==="Enter"?Ht.submit():Lr.key==="Escape"&&Ht.closeModal()}})),yr?yt.a.createElement(Sn,Object.assign({},Rt(Qt,"key-modal-submit"),{className:"key-modal-submit",onClick:function(Lr){return Ht.submit()}})):null),yt.a.createElement("span",Rt(Qt,"key-modal-cancel"),yt.a.createElement(jn,Object.assign({},Rt(Qt,"key-modal-cancel-icon"),{className:"key-modal-cancel",onClick:function(){Er.dispatch({rjvId:or,name:"RESET"})}})))))}}]),zt}(yt.a.PureComponent),eo=function(Kt){ft(zt,Kt);var Zt=_t(zt);function zt(){var Ht;lt(this,zt);for(var Dt=arguments.length,Qt=new Array(Dt),or=0;or=0)&&(et[rt]=j[rt]);return et}function _objectWithoutProperties$g(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$g(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _slicedToArray$c(j,_e){return _arrayWithHoles$d(j)||_iterableToArrayLimit$c(j,_e)||_unsupportedIterableToArray$k(j,_e)||_nonIterableRest$d()}function _arrayWithHoles$d(j){if(Array.isArray(j))return j}function _iterableToArrayLimit$c(j,_e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(j)))){var et=[],tt=!0,rt=!1,nt=void 0;try{for(var ot=j[Symbol.iterator](),it;!(tt=(it=ot.next()).done)&&(et.push(it.value),!(_e&&et.length===_e));tt=!0);}catch(st){rt=!0,nt=st}finally{try{!tt&&ot.return!=null&&ot.return()}finally{if(rt)throw nt}}return et}}function _unsupportedIterableToArray$k(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$k(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$k(j,_e)}}function _arrayLikeToArray$k(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _nonIterableRest$d(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _defineProperty$A(j,_e,et){return _e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function ownKeys$y(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread2(j){for(var _e=1;_e=j.length?j.apply(this,rt):function(){for(var ot=arguments.length,it=new Array(ot),st=0;st1&&arguments[1]!==void 0?arguments[1]:{};validators$1.initial(j),validators$1.handler(_e);var et={current:j},tt=curry$2(didStateUpdate)(et,_e),rt=curry$2(updateState)(et),nt=curry$2(validators$1.changes)(j),ot=curry$2(extractChanges)(et);function it(){var lt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(ut){return ut};return validators$1.selector(lt),lt(et.current)}function st(lt){compose$2(tt,rt,nt,ot)(lt)}return[it,st]}function extractChanges(j,_e){return isFunction(_e)?_e(j.current):_e}function updateState(j,_e){return j.current=_objectSpread2(_objectSpread2({},j.current),_e),_e}function didStateUpdate(j,_e,et){return isFunction(_e)?_e(j.current):Object.keys(et).forEach(function(tt){var rt;return(rt=_e[tt])===null||rt===void 0?void 0:rt.call(_e,j.current[tt])}),et}var index={create},config$2={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}};function curry$1(j){return function _e(){for(var et=this,tt=arguments.length,rt=new Array(tt),nt=0;nt=j.length?j.apply(this,rt):function(){for(var ot=arguments.length,it=new Array(ot),st=0;st{tt.current=!1}:j,_e)}var l$4=he$1;function D$3(){}function h$6(j,_e,et,tt){return De(j,tt)||be$1(j,_e,et,tt)}function De(j,_e){return j.editor.getModel(te$1(j,_e))}function be$1(j,_e,et,tt){return j.editor.createModel(_e,et,tt?te$1(j,tt):void 0)}function te$1(j,_e){return j.Uri.parse(_e)}function Oe$1({original:j,modified:_e,language:et,originalLanguage:tt,modifiedLanguage:rt,originalModelPath:nt,modifiedModelPath:ot,keepCurrentOriginalModel:it=!1,keepCurrentModifiedModel:st=!1,theme:lt="light",loading:ut="Loading...",options:ct={},height:dt="100%",width:ft="100%",className:pt,wrapperProps:gt={},beforeMount:vt=D$3,onMount:bt=D$3}){let[_t,xt]=reactExports.useState(!1),[yt,Et]=reactExports.useState(!0),St=reactExports.useRef(null),$t=reactExports.useRef(null),At=reactExports.useRef(null),wt=reactExports.useRef(bt),Ct=reactExports.useRef(vt),It=reactExports.useRef(!1);k$5(()=>{let Mt=loader.init();return Mt.then(Rt=>($t.current=Rt)&&Et(!1)).catch(Rt=>(Rt==null?void 0:Rt.type)!=="cancelation"&&console.error("Monaco initialization: error:",Rt)),()=>St.current?Pt():Mt.cancel()}),l$4(()=>{if(St.current&&$t.current){let Mt=St.current.getOriginalEditor(),Rt=h$6($t.current,j||"",tt||et||"text",nt||"");Rt!==Mt.getModel()&&Mt.setModel(Rt)}},[nt],_t),l$4(()=>{if(St.current&&$t.current){let Mt=St.current.getModifiedEditor(),Rt=h$6($t.current,_e||"",rt||et||"text",ot||"");Rt!==Mt.getModel()&&Mt.setModel(Rt)}},[ot],_t),l$4(()=>{let Mt=St.current.getModifiedEditor();Mt.getOption($t.current.editor.EditorOption.readOnly)?Mt.setValue(_e||""):_e!==Mt.getValue()&&(Mt.executeEdits("",[{range:Mt.getModel().getFullModelRange(),text:_e||"",forceMoveMarkers:!0}]),Mt.pushUndoStop())},[_e],_t),l$4(()=>{var Mt,Rt;(Rt=(Mt=St.current)==null?void 0:Mt.getModel())==null||Rt.original.setValue(j||"")},[j],_t),l$4(()=>{let{original:Mt,modified:Rt}=St.current.getModel();$t.current.editor.setModelLanguage(Mt,tt||et||"text"),$t.current.editor.setModelLanguage(Rt,rt||et||"text")},[et,tt,rt],_t),l$4(()=>{var Mt;(Mt=$t.current)==null||Mt.editor.setTheme(lt)},[lt],_t),l$4(()=>{var Mt;(Mt=St.current)==null||Mt.updateOptions(ct)},[ct],_t);let Ot=reactExports.useCallback(()=>{var Lt;if(!$t.current)return;Ct.current($t.current);let Mt=h$6($t.current,j||"",tt||et||"text",nt||""),Rt=h$6($t.current,_e||"",rt||et||"text",ot||"");(Lt=St.current)==null||Lt.setModel({original:Mt,modified:Rt})},[et,_e,rt,j,tt,nt,ot]),Nt=reactExports.useCallback(()=>{var Mt;!It.current&&At.current&&(St.current=$t.current.editor.createDiffEditor(At.current,{automaticLayout:!0,...ct}),Ot(),(Mt=$t.current)==null||Mt.editor.setTheme(lt),xt(!0),It.current=!0)},[ct,lt,Ot]);reactExports.useEffect(()=>{_t&&wt.current(St.current,$t.current)},[_t]),reactExports.useEffect(()=>{!yt&&!_t&&Nt()},[yt,_t,Nt]);function Pt(){var Rt,Lt,jt,Gt;let Mt=(Rt=St.current)==null?void 0:Rt.getModel();it||((Lt=Mt==null?void 0:Mt.original)==null||Lt.dispose()),st||((jt=Mt==null?void 0:Mt.modified)==null||jt.dispose()),(Gt=St.current)==null||Gt.dispose()}return React.createElement(H$3,{width:ft,height:dt,isEditorReady:_t,loading:ut,_ref:At,className:pt,wrapperProps:gt})}var ie$1=Oe$1;reactExports.memo(ie$1);function He$1(j){let _e=reactExports.useRef();return reactExports.useEffect(()=>{_e.current=j},[j]),_e.current}var se$1=He$1,_=new Map;function Ve$1({defaultValue:j,defaultLanguage:_e,defaultPath:et,value:tt,language:rt,path:nt,theme:ot="light",line:it,loading:st="Loading...",options:lt={},overrideServices:ut={},saveViewState:ct=!0,keepCurrentModel:dt=!1,width:ft="100%",height:pt="100%",className:gt,wrapperProps:vt={},beforeMount:bt=D$3,onMount:_t=D$3,onChange:xt,onValidate:yt=D$3}){let[Et,St]=reactExports.useState(!1),[$t,At]=reactExports.useState(!0),wt=reactExports.useRef(null),Ct=reactExports.useRef(null),It=reactExports.useRef(null),Ot=reactExports.useRef(_t),Nt=reactExports.useRef(bt),Pt=reactExports.useRef(),Mt=reactExports.useRef(tt),Rt=se$1(nt),Lt=reactExports.useRef(!1),jt=reactExports.useRef(!1);k$5(()=>{let Yt=loader.init();return Yt.then(Xt=>(wt.current=Xt)&&At(!1)).catch(Xt=>(Xt==null?void 0:Xt.type)!=="cancelation"&&console.error("Monaco initialization: error:",Xt)),()=>Ct.current?Vt():Yt.cancel()}),l$4(()=>{var Xt,rr,cr,vr;let Yt=h$6(wt.current,j||tt||"",_e||rt||"",nt||et||"");Yt!==((Xt=Ct.current)==null?void 0:Xt.getModel())&&(ct&&_.set(Rt,(rr=Ct.current)==null?void 0:rr.saveViewState()),(cr=Ct.current)==null||cr.setModel(Yt),ct&&((vr=Ct.current)==null||vr.restoreViewState(_.get(nt))))},[nt],Et),l$4(()=>{var Yt;(Yt=Ct.current)==null||Yt.updateOptions(lt)},[lt],Et),l$4(()=>{!Ct.current||tt===void 0||(Ct.current.getOption(wt.current.editor.EditorOption.readOnly)?Ct.current.setValue(tt):tt!==Ct.current.getValue()&&(jt.current=!0,Ct.current.executeEdits("",[{range:Ct.current.getModel().getFullModelRange(),text:tt,forceMoveMarkers:!0}]),Ct.current.pushUndoStop(),jt.current=!1))},[tt],Et),l$4(()=>{var Xt,rr;let Yt=(Xt=Ct.current)==null?void 0:Xt.getModel();Yt&&rt&&((rr=wt.current)==null||rr.editor.setModelLanguage(Yt,rt))},[rt],Et),l$4(()=>{var Yt;it!==void 0&&((Yt=Ct.current)==null||Yt.revealLine(it))},[it],Et),l$4(()=>{var Yt;(Yt=wt.current)==null||Yt.editor.setTheme(ot)},[ot],Et);let Gt=reactExports.useCallback(()=>{var Yt;if(!(!It.current||!wt.current)&&!Lt.current){Nt.current(wt.current);let Xt=nt||et,rr=h$6(wt.current,tt||j||"",_e||rt||"",Xt||"");Ct.current=(Yt=wt.current)==null?void 0:Yt.editor.create(It.current,{model:rr,automaticLayout:!0,...lt},ut),ct&&Ct.current.restoreViewState(_.get(Xt)),wt.current.editor.setTheme(ot),it!==void 0&&Ct.current.revealLine(it),St(!0),Lt.current=!0}},[j,_e,et,tt,rt,nt,lt,ut,ct,ot,it]);reactExports.useEffect(()=>{Et&&Ot.current(Ct.current,wt.current)},[Et]),reactExports.useEffect(()=>{!$t&&!Et&&Gt()},[$t,Et,Gt]),Mt.current=tt,reactExports.useEffect(()=>{var Yt,Xt;Et&&xt&&((Yt=Pt.current)==null||Yt.dispose(),Pt.current=(Xt=Ct.current)==null?void 0:Xt.onDidChangeModelContent(rr=>{jt.current||xt(Ct.current.getValue(),rr)}))},[Et,xt]),reactExports.useEffect(()=>{if(Et){let Yt=wt.current.editor.onDidChangeMarkers(Xt=>{var cr;let rr=(cr=Ct.current.getModel())==null?void 0:cr.uri;if(rr&&Xt.find(vr=>vr.path===rr.path)){let vr=wt.current.editor.getModelMarkers({resource:rr});yt==null||yt(vr)}});return()=>{Yt==null||Yt.dispose()}}return()=>{}},[Et,yt]);function Vt(){var Yt,Xt;(Yt=Pt.current)==null||Yt.dispose(),dt?ct&&_.set(nt,Ct.current.saveViewState()):(Xt=Ct.current.getModel())==null||Xt.dispose(),Ct.current.dispose()}return React.createElement(H$3,{width:ft,height:pt,isEditorReady:Et,loading:st,_ref:It,className:gt,wrapperProps:vt})}var fe$1=Ve$1,de$1=reactExports.memo(fe$1),Ft=de$1;const JinjaSyntaxHighlighter=({value:j,theme:_e})=>jsxRuntimeExports.jsx(Ft,{value:j,theme:_e,options:{readOnly:!0,minimap:{enabled:!1}},defaultLanguage:"jinja2",onMount:(et,tt)=>{tt.languages.register({id:"jinja2"}),tt.languages.setLanguageConfiguration("jinja2",{comments:{blockComment:["{#","#}"]},brackets:[["{#","#}"],["{%","%}"],["{{","}}"],["{","}"]],folding:{markers:{start:/\{%\s*(block|for|if)/,end:/\{%\s*end(block|for|if)/}}}),tt.languages.setMonarchTokensProvider("jinja2",{tokenizer:{root:[[/\{\{/,"delimiter"],[/\}\}/,"delimiter"],[/\{#/,"comment"],[/#\}/,"comment"],[/\{%/,"control"],[/%\}/,"control"],[/\b(if|else|elif|endif|for|endfor|set|extends|include|block|endblock|macro|endmacro)\b/,"keyword"],[/\b(length|list|lower|upper|trim|truncate|replace|round|urlencode|urlize)\b/,"filter"],[/\b(\+|-|\*|\/|%|\*\*|\/\/)\b/,"operator"],[/\b(\d+|\d*\.\d+)\b/,"number"],[/(^user:|^# user:|^system:|^# system:|^assistant:|^# assistant:)/,"keyword"]]}})}}),locStringsInjectionToken=createInjectionToken("locStrings",{}),useLocStrings=()=>{const[j]=useInjected(locStringsInjectionToken);return j},StreamSwitcher=({isStreaming:j,style:_e,onIsStreamingChange:et,labelName:tt})=>{const rt=useLocStrings();return jsxRuntimeExports.jsx(Switch,{label:tt||rt.Streaming,labelPosition:"before",checked:j,onChange:(nt,ot)=>et(ot.checked),style:_e})},safeJSONParse=j=>{try{return JSON.parse(j)}catch{return j}},timeFormat$1=j=>(j&&!j.endsWith("Z")&&(j+="Z"),j?new Date(j).toLocaleString([],{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"--"),parseSpanOutput=j=>{var et;const _e=(et=j==null?void 0:j.attributes)==null?void 0:et.output;if(typeof _e=="string")try{const tt=JSON.parse(_e);if(typeof tt.usage=="string")try{tt.usage=JSON.parse(tt.usage)}catch{tt.usage={}}return tt}catch{return _e}return _e},parseHttpSpanAttributes=j=>{var tt;const _e=j==null?void 0:j.attributes;if(!_e||((tt=_e.span_type)==null?void 0:tt.toLowerCase())!=="http")return;const et={response:{headers:{}},request:{headers:{}}};return Object.entries(_e).forEach(([rt,nt])=>{const ot=rt.toLowerCase();if(ot==="url.full"){et.urlFull=nt;return}const[it,st,lt,...ut]=ot.split(".");if(it==="http")switch(st){case"request":lt==="header"?et.request.headers[ut.join(".")]=nt:et.request[[lt,...ut].join(".")]=nt;break;case"response":lt==="header"?et.response.headers[ut.join(".")]=nt:et.response[[lt,...ut].join(".")]=nt;break;case"status_code":et.status_code=nt;break;case"method":et.method=nt;break;default:et[rt.substring(5)]=nt}}),et},convertToTraceListRow=j=>{var et,tt,rt;const _e=j.end_time&&j.start_time?Date.parse(j.end_time)-Date.parse(j.start_time):0;return{...j,latency:_e,total_tokens:((et=j==null?void 0:j.cumulative_token_count)==null?void 0:et.total)??0,prompt_tokens:(tt=j==null?void 0:j.cumulative_token_count)==null?void 0:tt.prompt,completion_tokens:(rt=j==null?void 0:j.cumulative_token_count)==null?void 0:rt.completion}};var _a;const initialTableColumnNames={normalColumns:[],evaluationColumns:[]};var ViewStatus=(j=>(j.loading="loading",j.loaded="loaded",j.error="error",j.hidden="hidden",j))(ViewStatus||{});const Xp=class Xp{constructor(_e){this.selectedSpanId$=new State$1(void 0),this.selectedTraceId$=new State$1(void 0),this.spans$=new ObservableMap,this.traces$=new ObservableOrderedMap,this.tableColumnNames$=new State$1(initialTableColumnNames),this.tableHiddenColumnKeys$=new State$1([]),this.isTraceDetailOpen$=new State$1(!1),this.isGanttChartOpen$=new State$1(!1),this.traceListStatus$=new State$1("loading"),this.traceDetailStatus$=new State$1("loading"),this.traceListShowMetrics$=new State$1(!0),this.messagesBySpanId$=new ObservableOrderedMap,this.sortColumn$=new State$1(void 0),this.sortableColumns=[];const{traceListConfig:et}=_e||{};et&&(this.traceListColumnModifier=et.columnModifier,et.showMetrics!==void 0&&this.traceListShowMetrics$.setState(et.showMetrics),et.defaultHiddenColumnKeys!==void 0&&this.tableHiddenColumnKeys$.setState(et.defaultHiddenColumnKeys),et.sortableColumns&&(this.sortableColumns=et.sortableColumns)),this.selectedTrace$=Computed$1.fromStates([this.selectedTraceId$,this.traces$],([tt,rt])=>tt&&rt.get(tt)||void 0),this.selectedTraceId$.subscribe(tt=>{var nt;if(!tt)return;const rt=this.traces$.get(tt);(nt=this._traceDetailDidOpenCallback)==null||nt.call(this,tt,rt)}),this.isTraceDetailOpen$.subscribe(tt=>{var ot;const rt=this.selectedTraceId$.getSnapshot(),nt=this.selectedTrace$.getSnapshot();!tt&&rt&&((ot=this._traceDetailDidCloseCallback)==null||ot.call(this,rt,nt),this.traceDetailStatus$.setState("hidden"),this.selectedTraceId$.next(void 0))})}traceDetailDidOpen(_e){this._traceDetailDidOpenCallback=_e}traceDetailDidClose(_e){this._traceDetailDidCloseCallback=_e}traceListSortColumnDidChange(_e){this.sortColumn$.subscribe(et=>{_e(et)})}refreshSpans(){var tt;const _e=this.selectedTraceId$.getSnapshot(),et=this.selectedTrace$.getSnapshot();_e&&((tt=this._refreshSpansCallback)==null||tt.call(this,_e,et))}onRefreshSpans(_e){this._refreshSpansCallback=_e}setOnRefreshTraces(_e){this._refreshTracesCallback=_e}refreshTraces(){var _e;(_e=this._refreshTracesCallback)==null||_e.call(this)}clear(){this.traces$.clear(),this.spans$.clear()}appendTraces(_e,et){_e.forEach(tt=>{tt.trace_id!==void 0&&(et?this.traces$.set(tt.trace_id,tt).sortByValue(et):this.traces$.set(tt.trace_id,tt))})}appendSpans(_e){_e.forEach(et=>{var ot,it;const tt=(ot=et==null?void 0:et.context)==null?void 0:ot.trace_id,rt=(it=et==null?void 0:et.context)==null?void 0:it.span_id;if(!tt||!rt)return;const nt=this.spans$.get(tt)||new ObservableOrderedMap;this.spans$.set(tt,nt.set(rt,et))})}toggleIsGanttChartOpen(){this.isGanttChartOpen$.setState(!this.isGanttChartOpen$.getSnapshot())}getTraceById(_e){return _e?this.traces$.get(_e):void 0}setTraceListStatus(_e){this.traceListStatus$.setState(_e)}setTraceDetailStatus(_e){this.traceDetailStatus$.setState(_e)}setTraceDetailOpen(_e,et){this.isTraceDetailOpen$.setState(_e),this.selectedTraceId$.setState(_e?et:void 0)}sortTraces(_e){this.traces$.sortByValue(_e)}};_a=SINGLETON,Xp[_a]=!0;let TraceViewModel=Xp;const TraceViewModelToken=createInjectionToken("TraceViewModel",new TraceViewModel),useTraceViewModel=()=>{const[j]=useInjected(TraceViewModelToken);return j},useSelectedSpanId=()=>{const j=useTraceViewModel();return useState(j.selectedSpanId$)},useSelectedSpan=()=>{var tt;const j=useTraceViewModel(),_e=useSelectedSpanId(),et=useSelectedTraceId();if(!(!_e||!et))return(tt=j.spans$.get(et))==null?void 0:tt.get(_e)},useParentSpanOfSelectedSpan=()=>{var tt;const j=useTraceViewModel(),_e=useSelectedTraceId(),et=useSelectedSpan();if(!(!et||!_e||!et.parent_id))return(tt=j.spans$.get(_e))==null?void 0:tt.get(et.parent_id)},useSetSelectedSpanId=()=>useSetState(useTraceViewModel().selectedSpanId$),useSelectedTraceId=()=>useState(useTraceViewModel().selectedTraceId$),useSetSelectedTraceId=()=>useSetState(useTraceViewModel().selectedTraceId$),useSelectedTrace=()=>{const j=useTraceViewModel(),_e=useSelectedTraceId();return _e?j.traces$.value.find(et=>et.trace_id===_e):void 0},useSpansOfSelectedTrace=()=>{const j=useTraceViewModel(),_e=useSelectedTraceId(),et=useState(j.spans$.get(_e??"")??new ObservableOrderedMap);return Array.from(et.values())},useTraces=()=>Array.from(useState(useTraceViewModel().traces$).values()),useParseTraceOutput=j=>reactExports.useMemo(()=>parseSpanOutput(j),[j]),useEvaluationSpansOfSelectedSpan=()=>{const j=useTraceViewModel(),_e=[],et=useSelectedTrace();return et?(Object.keys(et.evaluations??[]).forEach(tt=>{var nt,ot;const rt=(nt=et==null?void 0:et.evaluations)==null?void 0:nt[tt];if(rt){const it=Array.from(((ot=j.spans$.get(rt.trace_id??""))==null?void 0:ot.getState().values())??[]);_e.push({evaluationName:rt.display_name??tt,evaluationTraces:it})}}),_e):[]},useRootSpanIdOfSelectedSpans=()=>{const j=useSelectedTrace();return j==null?void 0:j.root_span_id},useTableColumnNames=()=>useState(useTraceViewModel().tableColumnNames$),useSetTableColumnNames=()=>useSetState(useTraceViewModel().tableColumnNames$),useTableHiddenColumnKeys=()=>useState(useTraceViewModel().tableHiddenColumnKeys$),useSetTableHiddenColumnKeys=()=>useSetState(useTraceViewModel().tableHiddenColumnKeys$),useIsTraceDetailOpen=()=>useState(useTraceViewModel().isTraceDetailOpen$),useSetIsTraceDetailOpen=()=>useSetState(useTraceViewModel().isTraceDetailOpen$),useTraceDetailRefreshKey=()=>{const j=useTraceViewModel(),_e=useSelectedTraceId(),et=useState(j.spans$),tt=Array.from(useState(et.get(_e??"")??new ObservableOrderedMap).keys());return`${_e}-${tt.join("-")}`},useIsGanttChartOpen=()=>useState(useTraceViewModel().isGanttChartOpen$),useTraceListColumnModifier=()=>useTraceViewModel().traceListColumnModifier,useTraceListShowMetrics=()=>useState(useTraceViewModel().traceListShowMetrics$),useMessagesBySpanId=j=>{var ut,ct,dt,ft,pt;const _e=useTraceViewModel(),et=useState(_e.selectedTraceId$);if(!et)return{inputMessages:[],outputMessages:[]};const tt=(ut=_e.spans$.get(et))==null?void 0:ut.get(j),rt=safeJSONParse(((ct=tt==null?void 0:tt.attributes)==null?void 0:ct.inputs)??"{}"),nt=safeJSONParse(((dt=tt==null?void 0:tt.attributes)==null?void 0:dt.output)??"{}"),ot=(ft=tt==null?void 0:tt.attributes)==null?void 0:ft["llm.generated_message"],it=ot?safeJSONParse(ot):void 0,st=(rt==null?void 0:rt.messages)??[],lt=((pt=nt==null?void 0:nt.choices)==null?void 0:pt.reduce((gt,vt)=>vt.message?[...gt,vt.message]:vt.text?[...gt,{content:vt.text,role:"assistant"}]:gt,[]))??[];return it&<.push(it),{inputMessages:st,outputMessages:lt}},useMessagesOfSelectedSpan=()=>{const j=useSelectedSpanId();return useMessagesBySpanId(j??"")},useLastInputMessageBySpanId=j=>{const{inputMessages:_e}=useMessagesBySpanId(j);return _e.slice(-1)[0]},useGetAllTraces=()=>{const j=useTraceViewModel();return reactExports.useCallback(()=>Array.from(j.traces$.getState().values()),[j.traces$])},useGetAllSpans=()=>{const j=useTraceViewModel();return reactExports.useCallback(()=>{const _e=[];return j.spans$.getState().forEach(tt=>{tt.getState().forEach(nt=>{_e.push(nt)})}),_e},[j.spans$])},useSortColumn=()=>{const j=useTraceViewModel();return useState(j.sortColumn$)},useSetSortColumn=()=>useSetState(useTraceViewModel().sortColumn$),useSortableColumns=()=>useTraceViewModel().sortableColumns,traceDetailErrorInjectionToken=createInjectionToken("traceDetailErrorInjectionToken",()=>{const j=useLocStrings();return jsxRuntimeExports.jsx(MessageBar,{intent:"error",children:j.Failed_to_load_trace})}),traceDetailLoadingInjectionToken=createInjectionToken("traceDetailLoadingInjectionToken",Loading),traceListErrorInjectionToken=createInjectionToken("traceListErrorInjectionToken",()=>{const j=useLocStrings();return jsxRuntimeExports.jsx(MessageBar,{intent:"error",children:j.Failed_to_load_traces})}),traceListLoadingInjectionToken=createInjectionToken("traceListLoadingInjectionToken",Loading),useTraceListViewStatus=()=>{const j=useTraceViewModel();return useState(j.traceListStatus$)},useTraceDetailViewStatus=()=>{const j=useTraceViewModel();return useState(j.traceDetailStatus$)},useTraceListLoadingComponent=()=>{const[j]=useInjected(traceListLoadingInjectionToken);return j},useTraceListErrorComponent=()=>{const[j]=useInjected(traceListErrorInjectionToken);return j},useTraceDetailLoadingComponent=()=>{const[j]=useInjected(traceDetailLoadingInjectionToken);return j},useTraceDetailErrorComponent=()=>{const[j]=useInjected(traceDetailErrorInjectionToken);return j},TREE_NODE_HEIGHT=58,TREE_NODE_WIDTH=400,TREE_NODE_PADDING=10,TREE_NODE_INDENT=48,sortTraceByStartTime=(j,_e)=>j.start_time&&_e.start_time?Date.parse(_e.start_time)-Date.parse(j.start_time):1,defaultGetNodeX=({level:j})=>j*TREE_NODE_INDENT,defaultGetNodeWidth=()=>TREE_NODE_WIDTH,defaultGetNodeHeight=()=>TREE_NODE_HEIGHT,spansToGraphModel=(j,{isEdgesHidden:_e=!1,getNodeX:et=defaultGetNodeX,getNodeWidth:tt=defaultGetNodeWidth,getNodeHeight:rt=defaultGetNodeHeight})=>{const nt=[],ot=[],it=new Map,st=new Set,lt=new Set(j.map(dt=>{var ft;return(ft=dt.context)==null?void 0:ft.span_id}).filter(dt=>!!dt));j.forEach(dt=>{var ft,pt;(ft=dt.context)!=null&&ft.span_id&&(dt.parent_id&<.has(dt.parent_id)?it.has(dt.parent_id)?it.get(dt.parent_id).push(dt):it.set(dt.parent_id,[dt]):st.add((pt=dt.context)==null?void 0:pt.span_id))});const ut=j.filter(dt=>{var ft,pt;return((ft=dt.context)==null?void 0:ft.span_id)&&st.has((pt=dt.context)==null?void 0:pt.span_id)}).sort((dt,ft)=>Date.parse(dt.start_time??"")??0-Date.parse(ft.start_time??"")??0);let ct=0;return ut.sort(sortTraceByStartTime).forEach(dt=>{var pt,gt;const ft=[{span:dt,level:0}];for(;ft.length>0;){const{span:vt,level:bt}=ft.pop(),_t=rt({span:vt,level:bt,index:ct});nt.push({id:((pt=vt==null?void 0:vt.context)==null?void 0:pt.span_id)??"",width:tt({span:vt,level:bt,index:ct}),height:_t,x:et({span:vt,level:bt,index:ct}),y:ct*(_t+TREE_NODE_PADDING),ports:[{id:"port",name:"port",position:[0,.5]}]}),ct++,(gt=vt==null?void 0:vt.context)!=null&>.span_id&&it.has(vt.context.span_id)&&it.get(vt.context.span_id).sort(sortTraceByStartTime).forEach(xt=>{var yt,Et;!_e&&((yt=vt==null?void 0:vt.context)!=null&&yt.span_id)&&((Et=xt==null?void 0:xt.context)!=null&&Et.span_id)&&ot.push({id:`${vt.context.span_id}-${xt.context.span_id}`,source:vt.context.span_id,sourcePortId:"port",target:xt.context.span_id,targetPortId:"port"}),ft.push({span:xt,level:bt+1})})}}),{graph:GraphModel.fromJSON({nodes:nt,edges:ot}),rootIds:Array.from(st.values())}};class EdgeConfig{render({x1:_e,x2:et,y1:tt,y2:rt,model:nt,data:ot}){if(!ot.nodes.get(nt.source)||!ot.nodes.get(nt.target))return null;const lt=_e+30,ut=et+20,ct=tt+10,dt=`M ${lt} ${ct} L ${lt} ${rt} L ${ut} ${rt}`;return jsxRuntimeExports.jsx("path",{d:dt,stroke:tokens.colorNeutralStrokeAccessible,strokeWidth:1,fill:"none"})}}const GanttTreeNode=({node:j})=>{const _e=bitset.has(GraphNodeStatus.Selected)(j.status),et=bitset.has(GraphNodeStatus.Activated)(j.status);let tt=tokens.colorNeutralStroke1,rt=tokens.colorBrandBackground2,nt=1;return _e&&(tt=tokens.colorBrandStroke2,nt=2,rt=tokens.colorBrandBackground2Pressed),et&&(rt=tokens.colorBrandBackground2Hover),jsxRuntimeExports.jsx("foreignObject",{x:j.x,y:j.y,width:j.width,height:j.height,style:{border:`${nt}px solid ${tt}`,backgroundColor:rt,borderRadius:10,paddingLeft:10},children:jsxRuntimeExports.jsx("div",{style:{height:"100%",width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"nowrap",cursor:"pointer"}})})};class GanttNodeConfig{constructor(_e){this.options=_e}render(_e){const et=this.options.spans.find(tt=>{var rt;return((rt=tt==null?void 0:tt.context)==null?void 0:rt.span_id)===_e.model.id});return et?jsxRuntimeExports.jsx(GanttTreeNode,{node:_e.model,span:et}):null}getMinHeight(){return 0}getMinWidth(){return 0}}const GanttTimeline=({startMs:j,endMs:_e})=>{const et=_e-j,tt=Math.pow(10,Math.floor(Math.log10(et))-1),rt=Math.ceil(et/tt),nt=[],ot=[];for(let it=0;itjsxRuntimeExports.jsx("div",{style:{width:"100%",height:"100%"},children:jsxRuntimeExports.jsx(ReactDagEditor,{state:j,dispatch:_e,style:{height:"100%",flexGrow:1,display:"flex"},children:jsxRuntimeExports.jsx(Graph,{canvasMouseMode:CanvasMouseMode.Pan})})}),GanttView=()=>{var ft;const j=useSpansOfSelectedTrace(),_e=useSetSelectedSpanId(),et=useSelectedSpanId(),tt=pt=>(gt,vt)=>(vt&&vt.type===GraphNodeEvent.Click&&_e(vt.node.id),pt(gt,vt)),rt=GraphConfigBuilder.default().registerNode(()=>new GanttNodeConfig({spans:j})).registerPort(()=>new PortConfig).registerEdge(()=>new EdgeConfig).build();previewMode.add(GraphFeatures.ClickNodeToSelect);const[ot,it]=useGraphReducer({data:GraphModel.empty(),settings:{features:previewMode,graphConfig:rt}},tt),st=((ft=ot.viewport.rect)==null?void 0:ft.width)||1200;let lt=Number.MAX_SAFE_INTEGER,ut=0;j.forEach(pt=>{const gt=Date.parse(pt.start_time??"");gtut&&(ut=vt)});const ct=reactExports.useCallback(({span:pt})=>st/(ut-lt)*(Date.parse(pt.start_time??"")-lt),[ut,st,lt]),dt=reactExports.useCallback(({span:pt})=>st/(ut-lt)*(Date.parse(pt.end_time??"")-Date.parse(pt.start_time??"")),[ut,st,lt]);return reactExports.useEffect(()=>{it({type:GraphCanvasEvent.SetData,data:spansToGraphModel(j,{isEdgesHidden:!0,getNodeX:ct,getNodeWidth:dt,getNodeHeight:()=>24}).graph.selectNodes(pt=>pt.id===et)})},[]),reactExports.useEffect(()=>{et&&it({type:GraphNodeEvent.Select,nodes:[et]})},[et]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(GanttTimeline,{startMs:lt,endMs:ut}),jsxRuntimeExports.jsx(TreeGraph,{state:ot,dispatch:it})]})},useNodeDetailClasses=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%"},headerWrapper:{display:"flex",boxSizing:"border-box",width:"100%",...shorthands.padding("12px","12px",0,"12px"),flexDirection:"row",alignItems:"center",...shorthands.gap("12px")},headerTitle:{flexGrow:1,flexShrink:1,...shorthands.overflow("hidden"),whiteSpace:"nowrap",textOverflow:"ellipsis"},headerItem:{display:"flex",alignItems:"center"},tabDivider:{...shorthands.flex("none"),...shorthands.padding(0,"12px")},content:{...shorthands.flex(1),...shorthands.padding("12px"),...shorthands.overflow("auto")},panels:{...shorthands.padding(0,"10px"),"& th":{textAlign:"left",...shorthands.padding(0,"30px",0,0)}},cardWrapper:{backgroundColor:tokens.colorNeutralBackground3},cardTitle:{fontSize:"16px",fontWeight:600},innerCardWrapper:{...shorthands.padding("16px"),...shorthands.border("1px","solid",tokens.colorNeutralForeground1),...shorthands.borderRadius("8px")}}),useRetrievalNodeDetailClasses=makeStyles({accordionHeader:{"& button":{...shorthands.padding(0),fontWeight:600}}}),getToolTypeFromSpan=j=>{var et;const _e=(et=j==null?void 0:j.attributes)==null?void 0:et.span_type;return _e==null?void 0:_e.split(".").pop()};function isObject$i(j){return Object.prototype.toString.call(j)==="[object Object]"}function objectSize(j){return Array.isArray(j)?j.length:isObject$i(j)?Object.keys(j).length:0}function stringifyForCopying(j,_e){if(typeof j=="string")return j;try{return JSON.stringify(j,(et,tt)=>{switch(typeof tt){case"bigint":return String(tt)+"n";case"number":case"boolean":case"object":case"string":return tt;default:return String(tt)}},_e)}catch(et){return`${et.name}: ${et.message}`||"JSON.stringify failed"}}function isCollapsed(j,_e,et,tt,rt,nt){if(nt&&nt.collapsed!==void 0)return!!nt.collapsed;if(typeof tt=="boolean")return tt;if(typeof tt=="number"&&_e>tt)return!0;const ot=objectSize(j);if(typeof tt=="function"){const it=safeCall(tt,[{node:j,depth:_e,indexOrName:et,size:ot}]);if(typeof it=="boolean")return it}return!!(Array.isArray(j)&&ot>rt||isObject$i(j)&&ot>rt)}function isCollapsed_largeArray(j,_e,et,tt,rt,nt){if(nt&&nt.collapsed!==void 0)return!!nt.collapsed;if(typeof tt=="boolean")return tt;if(typeof tt=="number"&&_e>tt)return!0;const ot=Math.ceil(j.length/100);if(typeof tt=="function"){const it=safeCall(tt,[{node:j,depth:_e,indexOrName:et,size:ot}]);if(typeof it=="boolean")return it}return!!(Array.isArray(j)&&ot>rt||isObject$i(j)&&ot>rt)}function ifDisplay(j,_e,et){return typeof j=="boolean"?j:!!(typeof j=="number"&&_e>j||j==="collapsed"&&et||j==="expanded"&&!et)}function safeCall(j,_e){try{return j(..._e)}catch(et){reportError(et)}}function editableAdd(j){if(j===!0||isObject$i(j)&&j.add===!0)return!0}function editableEdit(j){if(j===!0||isObject$i(j)&&j.edit===!0)return!0}function editableDelete(j){if(j===!0||isObject$i(j)&&j.delete===!0)return!0}function isReactComponent(j){return typeof j=="function"}function customAdd(j){return!j||j.add===void 0||!!j.add}function customEdit(j){return!j||j.edit===void 0||!!j.edit}function customDelete(j){return!j||j.delete===void 0||!!j.delete}function customCopy(j){return!j||j.enableClipboard===void 0||!!j.enableClipboard}function customMatchesURL(j){return!j||j.matchesURL===void 0||!!j.matchesURL}function resolveEvalFailedNewValue(j,_e){return j==="string"?_e.trim().replace(/^\"([\s\S]+?)\"$/,"$1"):_e}var _path$8;function _extends$8$1(){return _extends$8$1=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{rt.stopPropagation();const nt=_e(j);typeof nt=="string"&&nt&&navigator.clipboard.writeText(nt),tt(!0),setTimeout(()=>tt(!1),3e3)},className:"json-view--copy"})}function NameValue({indexOrName:j,value:_e,depth:et,parent:tt,deleteHandle:rt,editHandle:nt}){return jsxRuntimeExports.jsxs("div",Object.assign({className:"json-view--pair"},{children:[jsxRuntimeExports.jsx("span",Object.assign({className:typeof j=="number"?"json-view--index":"json-view--property"},{children:j})),":"," ",jsxRuntimeExports.jsx(JsonNode,{node:_e,depth:et+1,deleteHandle:rt,editHandle:nt,parent:tt,indexOrName:j})]}))}var _path$5,_path2$4;function _extends$5$1(){return _extends$5$1=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{j[_t]=xt,lt&<({newValue:xt,oldValue:yt,depth:et,src:st,indexOrName:_t,parentType:"array"}),ut&&ut({type:"edit",depth:et,src:st,indexOrName:_t,parentType:"array"}),ct()},[_e,lt,ut,ct]),vt=_t=>{j.splice(_t,1),ct()},bt=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!ft&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>pt(!0),className:"jv-size-chevron"},{children:[ifDisplay(dt,et,ft)&&jsxRuntimeExports.jsxs("span",Object.assign({className:"jv-size"},{children:[objectSize(_e)," Items"]})),jsxRuntimeExports.jsx(SvgAngleDown,{className:"jv-chevron"})]})),!ft&&it&&customCopy(nt)&&jsxRuntimeExports.jsx(CopyButton$2,{node:_e})]});return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("span",{children:"["}),bt,ft?jsxRuntimeExports.jsxs("button",Object.assign({onClick:()=>pt(!1),className:"jv-button"},{children:[ot," ... ",ot+_e.length-1]})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:_e.map((_t,xt)=>jsxRuntimeExports.jsx(NameValue,{indexOrName:xt+ot,value:_t,depth:et,parent:_e,deleteHandle:vt,editHandle:gt},String(tt)+String(xt)))})),jsxRuntimeExports.jsx("span",{children:"]"})]})}function LargeArray({node:j,depth:_e,deleteHandle:et,indexOrName:tt,customOptions:rt}){const nt=[];for(let Ot=0;Ot{_t(isCollapsed_largeArray(j,_e,tt,ot,st,rt))},[ot,st]);const[xt,yt]=reactExports.useState(!1),Et=()=>{yt(!1),et&&et(tt),ut&&ut({value:j,depth:_e,src:ct,indexOrName:tt,parentType:"array"}),pt&&pt({type:"delete",depth:_e,src:ct,indexOrName:tt,parentType:"array"})},[St,$t]=reactExports.useState(!1),At=()=>{const Ot=j;Ot.push(null),dt&&dt({indexOrName:Ot.length-1,depth:_e,src:ct,parentType:"array"}),pt&&pt({type:"add",indexOrName:Ot.length-1,depth:_e,src:ct,parentType:"array"}),gt()},wt=xt||St,Ct=()=>{yt(!1),$t(!1)},It=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!bt&&!wt&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!0),className:"jv-size-chevron"},{children:[ifDisplay(vt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({className:"jv-size"},{children:[j.length," Items"]})),jsxRuntimeExports.jsx(SvgAngleDown,{className:"jv-chevron"})]})),wt&&jsxRuntimeExports.jsx(SvgDone,{className:"json-view--edit",style:{display:"inline-block"},onClick:St?At:Et}),wt&&jsxRuntimeExports.jsx(SvgCancel,{className:"json-view--edit",style:{display:"inline-block"},onClick:Ct}),!bt&&!wt&&it&&customCopy(rt)&&jsxRuntimeExports.jsx(CopyButton$2,{node:j}),!bt&&!wt&&editableAdd(lt)&&customAdd(rt)&&jsxRuntimeExports.jsx(SvgAddSquare,{className:"json-view--edit",onClick:()=>{At()}}),!bt&&!wt&&editableDelete(lt)&&customDelete(rt)&&et&&jsxRuntimeExports.jsx(SvgTrash,{className:"json-view--edit",onClick:()=>yt(!0)})]});return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:"["}),It,bt?jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>_t(!1),className:"jv-button"},{children:"..."})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:nt.map((Ot,Nt)=>jsxRuntimeExports.jsx(LargeArrayNode,{originNode:j,node:Ot,depth:_e,index:Nt,startIndex:Nt*100},String(tt)+String(Nt)))})),jsxRuntimeExports.jsx("span",{children:"]"}),bt&&ifDisplay(vt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!1),className:"jv-size"},{children:[j.length," Items"]}))]})}function ObjectNode({node:j,depth:_e,indexOrName:et,deleteHandle:tt,customOptions:rt}){if(Array.isArray(j)&&j.length>100)return jsxRuntimeExports.jsx(LargeArray,{node:j,depth:_e,indexOrName:et,deleteHandle:tt,customOptions:rt});const{collapsed:nt,enableClipboard:ot,collapseObjectsAfterLength:it,editable:st,onDelete:lt,src:ut,onAdd:ct,onEdit:dt,onChange:ft,forceUpdate:pt,displaySize:gt}=reactExports.useContext(JsonViewContext),vt=isObject$i(j),[bt,_t]=reactExports.useState(isCollapsed(j,_e,et,nt,it,rt));reactExports.useEffect(()=>{_t(isCollapsed(j,_e,et,nt,it,rt))},[nt,it]);const xt=reactExports.useCallback((Rt,Lt,jt)=>{Array.isArray(j)?j[+Rt]=Lt:j&&(j[Rt]=Lt),dt&&dt({newValue:Lt,oldValue:jt,depth:_e,src:ut,indexOrName:Rt,parentType:vt?"object":"array"}),ft&&ft({type:"edit",depth:_e,src:ut,indexOrName:Rt,parentType:vt?"object":"array"}),pt()},[j,dt,ft,pt]),yt=Rt=>{Array.isArray(j)?j.splice(+Rt,1):j&&delete j[Rt],pt()},[Et,St]=reactExports.useState(!1),$t=()=>{St(!1),tt&&tt(et),lt&<({value:j,depth:_e,src:ut,indexOrName:et,parentType:vt?"object":"array"}),ft&&ft({type:"delete",depth:_e,src:ut,indexOrName:et,parentType:vt?"object":"array"})},[At,wt]=reactExports.useState(!1),Ct=reactExports.useRef(null),It=()=>{var Rt;if(vt){const Lt=(Rt=Ct.current)===null||Rt===void 0?void 0:Rt.value;Lt&&(j[Lt]=null,Ct.current&&(Ct.current.value=""),wt(!1),ct&&ct({indexOrName:Lt,depth:_e,src:ut,parentType:"object"}),ft&&ft({type:"add",indexOrName:Lt,depth:_e,src:ut,parentType:"object"}))}else if(Array.isArray(j)){const Lt=j;Lt.push(null),ct&&ct({indexOrName:Lt.length-1,depth:_e,src:ut,parentType:"array"}),ft&&ft({type:"add",indexOrName:Lt.length-1,depth:_e,src:ut,parentType:"array"})}pt()},Ot=Rt=>{Rt.key==="Enter"?(Rt.preventDefault(),It()):Rt.key==="Escape"&&Pt()},Nt=Et||At,Pt=()=>{St(!1),wt(!1)},Mt=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!bt&&!Nt&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!0),className:"jv-size-chevron"},{children:[ifDisplay(gt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({className:"jv-size"},{children:[objectSize(j)," Items"]})),jsxRuntimeExports.jsx(SvgAngleDown,{className:"jv-chevron"})]})),At&&vt&&jsxRuntimeExports.jsx("input",{className:"json-view--input",placeholder:"property",ref:Ct,onKeyDown:Ot}),Nt&&jsxRuntimeExports.jsx(SvgDone,{className:"json-view--edit",style:{display:"inline-block"},onClick:At?It:$t}),Nt&&jsxRuntimeExports.jsx(SvgCancel,{className:"json-view--edit",style:{display:"inline-block"},onClick:Pt}),!bt&&!Nt&&ot&&customCopy(rt)&&jsxRuntimeExports.jsx(CopyButton$2,{node:j}),!bt&&!Nt&&editableAdd(st)&&customAdd(rt)&&jsxRuntimeExports.jsx(SvgAddSquare,{className:"json-view--edit",onClick:()=>{vt?(wt(!0),setTimeout(()=>{var Rt;return(Rt=Ct.current)===null||Rt===void 0?void 0:Rt.focus()})):It()}}),!bt&&!Nt&&editableDelete(st)&&customDelete(rt)&&tt&&jsxRuntimeExports.jsx(SvgTrash,{className:"json-view--edit",onClick:()=>St(!0)})]});return Array.isArray(j)?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:"["}),Mt,bt?jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>_t(!1),className:"jv-button"},{children:"..."})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:j.map((Rt,Lt)=>jsxRuntimeExports.jsx(NameValue,{indexOrName:Lt,value:Rt,depth:_e,parent:j,deleteHandle:yt,editHandle:xt},String(et)+String(Lt)))})),jsxRuntimeExports.jsx("span",{children:"]"}),bt&&ifDisplay(gt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!1),className:"jv-size"},{children:[objectSize(j)," Items"]}))]}):vt?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:"{"}),Mt,bt?jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>_t(!1),className:"jv-button"},{children:"..."})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:Object.entries(j).map(([Rt,Lt])=>jsxRuntimeExports.jsx(NameValue,{indexOrName:Rt,value:Lt,depth:_e,parent:j,deleteHandle:yt,editHandle:xt},String(et)+String(Rt)))})),jsxRuntimeExports.jsx("span",{children:"}"}),bt&&ifDisplay(gt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!1),className:"jv-size"},{children:[objectSize(j)," Items"]}))]}):null}const LongString=React.forwardRef(({str:j,className:_e,ctrlClick:et},tt)=>{let{collapseStringMode:rt,collapseStringsAfterLength:nt}=reactExports.useContext(JsonViewContext);const[ot,it]=reactExports.useState(!0);nt=nt>0?nt:0;const st=j.replace(/\s+/g," "),lt=ut=>{(ut.ctrlKey||ut.metaKey)&&et?et(ut):it(!ot)};if(j.length<=nt)return jsxRuntimeExports.jsxs("span",Object.assign({className:_e,onClick:et},{children:['"',j,'"']}));if(rt==="address")return j.length<=10?jsxRuntimeExports.jsxs("span",Object.assign({className:_e,onClick:et},{children:['"',j,'"']})):jsxRuntimeExports.jsxs("span",Object.assign({onClick:lt,className:_e+" cursor-pointer"},{children:['"',ot?st.slice(0,6)+"..."+st.slice(-4):j,'"']}));if(rt==="directly")return jsxRuntimeExports.jsxs("span",Object.assign({onClick:lt,className:_e+" cursor-pointer"},{children:['"',ot?st.slice(0,nt)+"...":j,'"']}));if(rt==="word"){let ut=nt,ct=nt+1,dt=st,ft=1;for(;;){if(/\W/.test(j[ut])){dt=j.slice(0,ut);break}if(/\W/.test(j[ct])){dt=j.slice(0,ct);break}if(ft===6){dt=j.slice(0,nt);break}ft++,ut--,ct++}return jsxRuntimeExports.jsxs("span",Object.assign({onClick:lt,className:_e+" cursor-pointer"},{children:['"',ot?dt+"...":j,'"']}))}return jsxRuntimeExports.jsxs("span",Object.assign({className:_e},{children:['"',j,'"']}))});var _path$1;function _extends$1$1(){return _extends$1$1=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{setEditing(!0),setTimeout(()=>{var j,_e;(j=window.getSelection())===null||j===void 0||j.selectAllChildren(valueRef.current),(_e=valueRef.current)===null||_e===void 0||_e.focus()})},done=reactExports.useCallback(()=>{const newValue=valueRef.current.innerText;try{const evalValue=eval(newValue);editHandle&&editHandle(indexOrName,evalValue,node)}catch(j){const _e=resolveEvalFailedNewValue(type,newValue);editHandle&&editHandle(indexOrName,_e,node)}setEditing(!1)},[editHandle]),cancel=()=>{setEditing(!1),setDeleting(!1)},deleteHandle=()=>{setDeleting(!1),_deleteHandle&&_deleteHandle(indexOrName),onDelete&&onDelete({value:node,depth,src,indexOrName,parentType:Array.isArray(parent)?"array":"object"}),onChange&&onChange({depth,src,indexOrName,parentType:Array.isArray(parent)?"array":"object",type:"delete"})},handleKeyDown=reactExports.useCallback(j=>{j.key==="Enter"?(j.preventDefault(),done()):j.key==="Escape"&&cancel()},[done]),isEditing=editing||deleting,ctrlClick=!isEditing&&editableEdit(editable)&&customEdit(customReturn)&&editHandle?j=>{(j.ctrlKey||j.metaKey)&&edit()}:void 0,Icons=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[isEditing&&jsxRuntimeExports.jsx(SvgDone,{className:"json-view--edit",style:{display:"inline-block"},onClick:deleting?deleteHandle:done}),isEditing&&jsxRuntimeExports.jsx(SvgCancel,{className:"json-view--edit",style:{display:"inline-block"},onClick:cancel}),!isEditing&&enableClipboard&&customCopy(customReturn)&&jsxRuntimeExports.jsx(CopyButton$2,{node}),!isEditing&&matchesURL&&type==="string"&&urlRegExp.test(node)&&customMatchesURL(customReturn)&&jsxRuntimeExports.jsx("a",Object.assign({href:node,target:"_blank",className:"json-view--link"},{children:jsxRuntimeExports.jsx(SvgLink,{})})),!isEditing&&editableEdit(editable)&&customEdit(customReturn)&&editHandle&&jsxRuntimeExports.jsx(SvgEdit,{className:"json-view--edit",onClick:edit}),!isEditing&&editableDelete(editable)&&customDelete(customReturn)&&_deleteHandle&&jsxRuntimeExports.jsx(SvgTrash,{className:"json-view--edit",onClick:()=>setDeleting(!0)})]});let className="json-view--string";switch(typeof(customReturn==null?void 0:customReturn.className)=="string"&&(className+=" "+customReturn.className),type){case"number":case"bigint":className="json-view--number";break;case"boolean":className="json-view--boolean";break;case"object":className="json-view--null";break}deleting&&(className+=" json-view--deleting");let displayValue=String(node);type==="bigint"&&(displayValue+="n");const EditingElement=reactExports.useMemo(()=>jsxRuntimeExports.jsx("span",{contentEditable:!0,className,dangerouslySetInnerHTML:{__html:type==="string"?`"${displayValue}"`:displayValue},ref:valueRef,onKeyDown:handleKeyDown}),[displayValue,type,handleKeyDown]);return type==="string"?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[editing?EditingElement:node.length>collapseStringsAfterLength?jsxRuntimeExports.jsx(LongString,{str:node,ref:valueRef,className,ctrlClick}):jsxRuntimeExports.jsxs("span",Object.assign({className,onClick:ctrlClick},{children:['"',displayValue,'"']})),Icons]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[editing?EditingElement:jsxRuntimeExports.jsx("span",Object.assign({className,onClick:ctrlClick},{children:displayValue})),Icons]})}}const defaultURLRegExp=/^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/,JsonViewContext=reactExports.createContext({src:void 0,collapseStringsAfterLength:99,collapseStringMode:"directly",collapseObjectsAfterLength:20,collapsed:!1,enableClipboard:!0,editable:!1,onEdit:void 0,onDelete:void 0,onAdd:void 0,onChange:void 0,forceUpdate:()=>{},customizeNode:void 0,customizeCopy:()=>{},displaySize:void 0,matchesURL:!1,urlRegExp:defaultURLRegExp});function JsonView({src:j,collapseStringsAfterLength:_e=99,collapseStringMode:et="directly",collapseObjectsAfterLength:tt=99,collapsed:rt,enableClipboard:nt=!0,editable:ot=!1,onEdit:it,onDelete:st,onAdd:lt,onChange:ut,dark:ct=!1,theme:dt="default",customizeNode:ft,customizeCopy:pt=stringifyForCopying,displaySize:gt,style:vt,className:bt,matchesURL:_t=!1,urlRegExp:xt=defaultURLRegExp}){const[yt,Et]=reactExports.useState(0),St=reactExports.useCallback(()=>Et($t=>++$t),[]);return jsxRuntimeExports.jsx(JsonViewContext.Provider,Object.assign({value:{src:j,collapseStringsAfterLength:_e,collapseStringMode:et,collapseObjectsAfterLength:tt,collapsed:rt,enableClipboard:nt,editable:ot,onEdit:it,onDelete:st,onAdd:lt,onChange:ut,forceUpdate:St,customizeNode:ft,customizeCopy:pt,displaySize:gt,matchesURL:_t,urlRegExp:xt}},{children:jsxRuntimeExports.jsx("code",Object.assign({className:"json-view"+(ct?" dark":"")+(dt&&dt!=="default"?" json-view_"+dt:"")+(bt?" "+bt:""),style:vt},{children:jsxRuntimeExports.jsx(JsonNode,{node:j,depth:1})}))}))}const TraceViewThemeContext=reactExports.createContext(!1),useIsDark=()=>reactExports.useContext(TraceViewThemeContext),JsonNodeCard=({title:j,src:_e,wrapperStyle:et={}})=>{let tt="";if(typeof _e=="string")try{tt=JSON.parse(_e)}catch{tt=_e}else typeof _e=="object"&&(tt=_e);const rt=useIsDark();return jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12,...et},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:j})})}),jsxRuntimeExports.jsx(JsonView,{src:tt,theme:"vscode",dark:rt})]})},DefaultNodeInfo=()=>{var _e,et;const j=useSelectedSpan();return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(JsonNodeCard,{title:"Input",src:(_e=j==null?void 0:j.attributes)==null?void 0:_e.inputs}),jsxRuntimeExports.jsx(JsonNodeCard,{title:"Output",src:(et=j==null?void 0:j.attributes)==null?void 0:et.output})]})},BlockquoteType="blockquote",BreakType="break",CodeType="code",DefinitionType="definition",DeleteType="delete",EmphasisType="emphasis",HeadingType="heading",HtmlType="html";var HtmlContentType;(function(j){j.CDATA="cdata",j.Closing="closing",j.Comment="comment",j.Declaration="declaration",j.Instruction="instruction",j.Open="open"})(HtmlContentType||(HtmlContentType={}));const ImageReferenceType="imageReference",ImageType$1="image",InlineCodeType="inlineCode",LinkReferenceType="linkReference",LinkType="link",ListItemType="listItem";var TaskStatus;(function(j){j.TODO="todo",j.DOING="doing",j.DONE="done"})(TaskStatus||(TaskStatus={}));const ListType="list",ParagraphType$1="paragraph",StrongType="strong",TableType="table",TextType$1="text",ThematicBreakType="thematicBreak";var AsciiCodePoint;(function(j){j[j.NUL=0]="NUL",j[j.SOH=1]="SOH",j[j.STX=2]="STX",j[j.ETX=3]="ETX",j[j.EOT=4]="EOT",j[j.ENQ=5]="ENQ",j[j.ACK=6]="ACK",j[j.BEL=7]="BEL",j[j.BS=8]="BS",j[j.HT=9]="HT",j[j.LF=10]="LF",j[j.VT=11]="VT",j[j.FF=12]="FF",j[j.CR=13]="CR",j[j.SO=14]="SO",j[j.SI=15]="SI",j[j.DLE=16]="DLE",j[j.DC1=17]="DC1",j[j.DC2=18]="DC2",j[j.DC3=19]="DC3",j[j.DC4=20]="DC4",j[j.NAK=21]="NAK",j[j.SYN=22]="SYN",j[j.ETB=23]="ETB",j[j.CAN=24]="CAN",j[j.EM=25]="EM",j[j.SUB=26]="SUB",j[j.ESC=27]="ESC",j[j.FS=28]="FS",j[j.GS=29]="GS",j[j.RS=30]="RS",j[j.US=31]="US",j[j.SPACE=32]="SPACE",j[j.EXCLAMATION_MARK=33]="EXCLAMATION_MARK",j[j.DOUBLE_QUOTE=34]="DOUBLE_QUOTE",j[j.NUMBER_SIGN=35]="NUMBER_SIGN",j[j.DOLLAR_SIGN=36]="DOLLAR_SIGN",j[j.PERCENT_SIGN=37]="PERCENT_SIGN",j[j.AMPERSAND=38]="AMPERSAND",j[j.SINGLE_QUOTE=39]="SINGLE_QUOTE",j[j.OPEN_PARENTHESIS=40]="OPEN_PARENTHESIS",j[j.CLOSE_PARENTHESIS=41]="CLOSE_PARENTHESIS",j[j.ASTERISK=42]="ASTERISK",j[j.PLUS_SIGN=43]="PLUS_SIGN",j[j.COMMA=44]="COMMA",j[j.MINUS_SIGN=45]="MINUS_SIGN",j[j.DOT=46]="DOT",j[j.SLASH=47]="SLASH",j[j.DIGIT0=48]="DIGIT0",j[j.DIGIT1=49]="DIGIT1",j[j.DIGIT2=50]="DIGIT2",j[j.DIGIT3=51]="DIGIT3",j[j.DIGIT4=52]="DIGIT4",j[j.DIGIT5=53]="DIGIT5",j[j.DIGIT6=54]="DIGIT6",j[j.DIGIT7=55]="DIGIT7",j[j.DIGIT8=56]="DIGIT8",j[j.DIGIT9=57]="DIGIT9",j[j.COLON=58]="COLON",j[j.SEMICOLON=59]="SEMICOLON",j[j.OPEN_ANGLE=60]="OPEN_ANGLE",j[j.EQUALS_SIGN=61]="EQUALS_SIGN",j[j.CLOSE_ANGLE=62]="CLOSE_ANGLE",j[j.QUESTION_MARK=63]="QUESTION_MARK",j[j.AT_SIGN=64]="AT_SIGN",j[j.UPPERCASE_A=65]="UPPERCASE_A",j[j.UPPERCASE_B=66]="UPPERCASE_B",j[j.UPPERCASE_C=67]="UPPERCASE_C",j[j.UPPERCASE_D=68]="UPPERCASE_D",j[j.UPPERCASE_E=69]="UPPERCASE_E",j[j.UPPERCASE_F=70]="UPPERCASE_F",j[j.UPPERCASE_G=71]="UPPERCASE_G",j[j.UPPERCASE_H=72]="UPPERCASE_H",j[j.UPPERCASE_I=73]="UPPERCASE_I",j[j.UPPERCASE_J=74]="UPPERCASE_J",j[j.UPPERCASE_K=75]="UPPERCASE_K",j[j.UPPERCASE_L=76]="UPPERCASE_L",j[j.UPPERCASE_M=77]="UPPERCASE_M",j[j.UPPERCASE_N=78]="UPPERCASE_N",j[j.UPPERCASE_O=79]="UPPERCASE_O",j[j.UPPERCASE_P=80]="UPPERCASE_P",j[j.UPPERCASE_Q=81]="UPPERCASE_Q",j[j.UPPERCASE_R=82]="UPPERCASE_R",j[j.UPPERCASE_S=83]="UPPERCASE_S",j[j.UPPERCASE_T=84]="UPPERCASE_T",j[j.UPPERCASE_U=85]="UPPERCASE_U",j[j.UPPERCASE_V=86]="UPPERCASE_V",j[j.UPPERCASE_W=87]="UPPERCASE_W",j[j.UPPERCASE_X=88]="UPPERCASE_X",j[j.UPPERCASE_Y=89]="UPPERCASE_Y",j[j.UPPERCASE_Z=90]="UPPERCASE_Z",j[j.OPEN_BRACKET=91]="OPEN_BRACKET",j[j.BACKSLASH=92]="BACKSLASH",j[j.CLOSE_BRACKET=93]="CLOSE_BRACKET",j[j.CARET=94]="CARET",j[j.UNDERSCORE=95]="UNDERSCORE",j[j.BACKTICK=96]="BACKTICK",j[j.LOWERCASE_A=97]="LOWERCASE_A",j[j.LOWERCASE_B=98]="LOWERCASE_B",j[j.LOWERCASE_C=99]="LOWERCASE_C",j[j.LOWERCASE_D=100]="LOWERCASE_D",j[j.LOWERCASE_E=101]="LOWERCASE_E",j[j.LOWERCASE_F=102]="LOWERCASE_F",j[j.LOWERCASE_G=103]="LOWERCASE_G",j[j.LOWERCASE_H=104]="LOWERCASE_H",j[j.LOWERCASE_I=105]="LOWERCASE_I",j[j.LOWERCASE_J=106]="LOWERCASE_J",j[j.LOWERCASE_K=107]="LOWERCASE_K",j[j.LOWERCASE_L=108]="LOWERCASE_L",j[j.LOWERCASE_M=109]="LOWERCASE_M",j[j.LOWERCASE_N=110]="LOWERCASE_N",j[j.LOWERCASE_O=111]="LOWERCASE_O",j[j.LOWERCASE_P=112]="LOWERCASE_P",j[j.LOWERCASE_Q=113]="LOWERCASE_Q",j[j.LOWERCASE_R=114]="LOWERCASE_R",j[j.LOWERCASE_S=115]="LOWERCASE_S",j[j.LOWERCASE_T=116]="LOWERCASE_T",j[j.LOWERCASE_U=117]="LOWERCASE_U",j[j.LOWERCASE_V=118]="LOWERCASE_V",j[j.LOWERCASE_W=119]="LOWERCASE_W",j[j.LOWERCASE_X=120]="LOWERCASE_X",j[j.LOWERCASE_Y=121]="LOWERCASE_Y",j[j.LOWERCASE_Z=122]="LOWERCASE_Z",j[j.OPEN_BRACE=123]="OPEN_BRACE",j[j.VERTICAL_SLASH=124]="VERTICAL_SLASH",j[j.CLOSE_BRACE=125]="CLOSE_BRACE",j[j.TILDE=126]="TILDE",j[j.DELETE=127]="DELETE"})(AsciiCodePoint||(AsciiCodePoint={}));const foldingCaseCodeMap={µ:"μ",À:"à",Á:"á",Â:"â",Ã:"ã",Ä:"ä",Å:"å",Æ:"æ",Ç:"ç",È:"è",É:"é",Ê:"ê",Ë:"ë",Ì:"ì",Í:"í",Î:"î",Ï:"ï",Ð:"ð",Ñ:"ñ",Ò:"ò",Ó:"ó",Ô:"ô",Õ:"õ",Ö:"ö",Ø:"ø",Ù:"ù",Ú:"ú",Û:"û",Ü:"ü",Ý:"ý",Þ:"þ",Ā:"ā",Ă:"ă",Ą:"ą",Ć:"ć",Ĉ:"ĉ",Ċ:"ċ",Č:"č",Ď:"ď",Đ:"đ",Ē:"ē",Ĕ:"ĕ",Ė:"ė",Ę:"ę",Ě:"ě",Ĝ:"ĝ",Ğ:"ğ",Ġ:"ġ",Ģ:"ģ",Ĥ:"ĥ",Ħ:"ħ",Ĩ:"ĩ",Ī:"ī",Ĭ:"ĭ",Į:"į",IJ:"ij",Ĵ:"ĵ",Ķ:"ķ",Ĺ:"ĺ",Ļ:"ļ",Ľ:"ľ",Ŀ:"ŀ",Ł:"ł",Ń:"ń",Ņ:"ņ",Ň:"ň",Ŋ:"ŋ",Ō:"ō",Ŏ:"ŏ",Ő:"ő",Œ:"œ",Ŕ:"ŕ",Ŗ:"ŗ",Ř:"ř",Ś:"ś",Ŝ:"ŝ",Ş:"ş",Š:"š",Ţ:"ţ",Ť:"ť",Ŧ:"ŧ",Ũ:"ũ",Ū:"ū",Ŭ:"ŭ",Ů:"ů",Ű:"ű",Ų:"ų",Ŵ:"ŵ",Ŷ:"ŷ",Ÿ:"ÿ",Ź:"ź",Ż:"ż",Ž:"ž",ſ:"s",Ɓ:"ɓ",Ƃ:"ƃ",Ƅ:"ƅ",Ɔ:"ɔ",Ƈ:"ƈ",Ɖ:"ɖ",Ɗ:"ɗ",Ƌ:"ƌ",Ǝ:"ǝ",Ə:"ə",Ɛ:"ɛ",Ƒ:"ƒ",Ɠ:"ɠ",Ɣ:"ɣ",Ɩ:"ɩ",Ɨ:"ɨ",Ƙ:"ƙ",Ɯ:"ɯ",Ɲ:"ɲ",Ɵ:"ɵ",Ơ:"ơ",Ƣ:"ƣ",Ƥ:"ƥ",Ʀ:"ʀ",Ƨ:"ƨ",Ʃ:"ʃ",Ƭ:"ƭ",Ʈ:"ʈ",Ư:"ư",Ʊ:"ʊ",Ʋ:"ʋ",Ƴ:"ƴ",Ƶ:"ƶ",Ʒ:"ʒ",Ƹ:"ƹ",Ƽ:"ƽ",DŽ:"dž",Dž:"dž",LJ:"lj",Lj:"lj",NJ:"nj",Nj:"nj",Ǎ:"ǎ",Ǐ:"ǐ",Ǒ:"ǒ",Ǔ:"ǔ",Ǖ:"ǖ",Ǘ:"ǘ",Ǚ:"ǚ",Ǜ:"ǜ",Ǟ:"ǟ",Ǡ:"ǡ",Ǣ:"ǣ",Ǥ:"ǥ",Ǧ:"ǧ",Ǩ:"ǩ",Ǫ:"ǫ",Ǭ:"ǭ",Ǯ:"ǯ",DZ:"dz",Dz:"dz",Ǵ:"ǵ",Ƕ:"ƕ",Ƿ:"ƿ",Ǹ:"ǹ",Ǻ:"ǻ",Ǽ:"ǽ",Ǿ:"ǿ",Ȁ:"ȁ",Ȃ:"ȃ",Ȅ:"ȅ",Ȇ:"ȇ",Ȉ:"ȉ",Ȋ:"ȋ",Ȍ:"ȍ",Ȏ:"ȏ",Ȑ:"ȑ",Ȓ:"ȓ",Ȕ:"ȕ",Ȗ:"ȗ",Ș:"ș",Ț:"ț",Ȝ:"ȝ",Ȟ:"ȟ","Ƞ":"ƞ",Ȣ:"ȣ",Ȥ:"ȥ",Ȧ:"ȧ",Ȩ:"ȩ",Ȫ:"ȫ",Ȭ:"ȭ",Ȯ:"ȯ",Ȱ:"ȱ",Ȳ:"ȳ","Ⱥ":"ⱥ","Ȼ":"ȼ","Ƚ":"ƚ","Ⱦ":"ⱦ","Ɂ":"ɂ","Ƀ":"ƀ","Ʉ":"ʉ","Ʌ":"ʌ","Ɇ":"ɇ","Ɉ":"ɉ","Ɋ":"ɋ","Ɍ":"ɍ","Ɏ":"ɏ","ͅ":"ι","Ͱ":"ͱ","Ͳ":"ͳ","Ͷ":"ͷ","Ϳ":"ϳ",Ά:"ά",Έ:"έ",Ή:"ή",Ί:"ί",Ό:"ό",Ύ:"ύ",Ώ:"ώ",Α:"α",Β:"β",Γ:"γ",Δ:"δ",Ε:"ε",Ζ:"ζ",Η:"η",Θ:"θ",Ι:"ι",Κ:"κ",Λ:"λ",Μ:"μ",Ν:"ν",Ξ:"ξ",Ο:"ο",Π:"π",Ρ:"ρ",Σ:"σ",Τ:"τ",Υ:"υ",Φ:"φ",Χ:"χ",Ψ:"ψ",Ω:"ω",Ϊ:"ϊ",Ϋ:"ϋ",ς:"σ","Ϗ":"ϗ",ϐ:"β",ϑ:"θ",ϕ:"φ",ϖ:"π","Ϙ":"ϙ",Ϛ:"ϛ",Ϝ:"ϝ",Ϟ:"ϟ",Ϡ:"ϡ",Ϣ:"ϣ",Ϥ:"ϥ",Ϧ:"ϧ",Ϩ:"ϩ",Ϫ:"ϫ",Ϭ:"ϭ",Ϯ:"ϯ",ϰ:"κ",ϱ:"ρ","ϴ":"θ","ϵ":"ε","Ϸ":"ϸ","Ϲ":"ϲ","Ϻ":"ϻ","Ͻ":"ͻ","Ͼ":"ͼ","Ͽ":"ͽ",Ѐ:"ѐ",Ё:"ё",Ђ:"ђ",Ѓ:"ѓ",Є:"є",Ѕ:"ѕ",І:"і",Ї:"ї",Ј:"ј",Љ:"љ",Њ:"њ",Ћ:"ћ",Ќ:"ќ",Ѝ:"ѝ",Ў:"ў",Џ:"џ",А:"а",Б:"б",В:"в",Г:"г",Д:"д",Е:"е",Ж:"ж",З:"з",И:"и",Й:"й",К:"к",Л:"л",М:"м",Н:"н",О:"о",П:"п",Р:"р",С:"с",Т:"т",У:"у",Ф:"ф",Х:"х",Ц:"ц",Ч:"ч",Ш:"ш",Щ:"щ",Ъ:"ъ",Ы:"ы",Ь:"ь",Э:"э",Ю:"ю",Я:"я",Ѡ:"ѡ",Ѣ:"ѣ",Ѥ:"ѥ",Ѧ:"ѧ",Ѩ:"ѩ",Ѫ:"ѫ",Ѭ:"ѭ",Ѯ:"ѯ",Ѱ:"ѱ",Ѳ:"ѳ",Ѵ:"ѵ",Ѷ:"ѷ",Ѹ:"ѹ",Ѻ:"ѻ",Ѽ:"ѽ",Ѿ:"ѿ",Ҁ:"ҁ","Ҋ":"ҋ",Ҍ:"ҍ",Ҏ:"ҏ",Ґ:"ґ",Ғ:"ғ",Ҕ:"ҕ",Җ:"җ",Ҙ:"ҙ",Қ:"қ",Ҝ:"ҝ",Ҟ:"ҟ",Ҡ:"ҡ",Ң:"ң",Ҥ:"ҥ",Ҧ:"ҧ",Ҩ:"ҩ",Ҫ:"ҫ",Ҭ:"ҭ",Ү:"ү",Ұ:"ұ",Ҳ:"ҳ",Ҵ:"ҵ",Ҷ:"ҷ",Ҹ:"ҹ",Һ:"һ",Ҽ:"ҽ",Ҿ:"ҿ",Ӏ:"ӏ",Ӂ:"ӂ",Ӄ:"ӄ","Ӆ":"ӆ",Ӈ:"ӈ","Ӊ":"ӊ",Ӌ:"ӌ","Ӎ":"ӎ",Ӑ:"ӑ",Ӓ:"ӓ",Ӕ:"ӕ",Ӗ:"ӗ",Ә:"ә",Ӛ:"ӛ",Ӝ:"ӝ",Ӟ:"ӟ",Ӡ:"ӡ",Ӣ:"ӣ",Ӥ:"ӥ",Ӧ:"ӧ",Ө:"ө",Ӫ:"ӫ",Ӭ:"ӭ",Ӯ:"ӯ",Ӱ:"ӱ",Ӳ:"ӳ",Ӵ:"ӵ","Ӷ":"ӷ",Ӹ:"ӹ","Ӻ":"ӻ","Ӽ":"ӽ","Ӿ":"ӿ","Ԁ":"ԁ","Ԃ":"ԃ","Ԅ":"ԅ","Ԇ":"ԇ","Ԉ":"ԉ","Ԋ":"ԋ","Ԍ":"ԍ","Ԏ":"ԏ","Ԑ":"ԑ","Ԓ":"ԓ","Ԕ":"ԕ","Ԗ":"ԗ","Ԙ":"ԙ","Ԛ":"ԛ","Ԝ":"ԝ","Ԟ":"ԟ","Ԡ":"ԡ","Ԣ":"ԣ","Ԥ":"ԥ","Ԧ":"ԧ","Ԩ":"ԩ","Ԫ":"ԫ","Ԭ":"ԭ","Ԯ":"ԯ",Ա:"ա",Բ:"բ",Գ:"գ",Դ:"դ",Ե:"ե",Զ:"զ",Է:"է",Ը:"ը",Թ:"թ",Ժ:"ժ",Ի:"ի",Լ:"լ",Խ:"խ",Ծ:"ծ",Կ:"կ",Հ:"հ",Ձ:"ձ",Ղ:"ղ",Ճ:"ճ",Մ:"մ",Յ:"յ",Ն:"ն",Շ:"շ",Ո:"ո",Չ:"չ",Պ:"պ",Ջ:"ջ",Ռ:"ռ",Ս:"ս",Վ:"վ",Տ:"տ",Ր:"ր",Ց:"ց",Ւ:"ւ",Փ:"փ",Ք:"ք",Օ:"օ",Ֆ:"ֆ",Ⴀ:"ⴀ",Ⴁ:"ⴁ",Ⴂ:"ⴂ",Ⴃ:"ⴃ",Ⴄ:"ⴄ",Ⴅ:"ⴅ",Ⴆ:"ⴆ",Ⴇ:"ⴇ",Ⴈ:"ⴈ",Ⴉ:"ⴉ",Ⴊ:"ⴊ",Ⴋ:"ⴋ",Ⴌ:"ⴌ",Ⴍ:"ⴍ",Ⴎ:"ⴎ",Ⴏ:"ⴏ",Ⴐ:"ⴐ",Ⴑ:"ⴑ",Ⴒ:"ⴒ",Ⴓ:"ⴓ",Ⴔ:"ⴔ",Ⴕ:"ⴕ",Ⴖ:"ⴖ",Ⴗ:"ⴗ",Ⴘ:"ⴘ",Ⴙ:"ⴙ",Ⴚ:"ⴚ",Ⴛ:"ⴛ",Ⴜ:"ⴜ",Ⴝ:"ⴝ",Ⴞ:"ⴞ",Ⴟ:"ⴟ",Ⴠ:"ⴠ",Ⴡ:"ⴡ",Ⴢ:"ⴢ",Ⴣ:"ⴣ",Ⴤ:"ⴤ",Ⴥ:"ⴥ","Ⴧ":"ⴧ","Ⴭ":"ⴭ",Ḁ:"ḁ",Ḃ:"ḃ",Ḅ:"ḅ",Ḇ:"ḇ",Ḉ:"ḉ",Ḋ:"ḋ",Ḍ:"ḍ",Ḏ:"ḏ",Ḑ:"ḑ",Ḓ:"ḓ",Ḕ:"ḕ",Ḗ:"ḗ",Ḙ:"ḙ",Ḛ:"ḛ",Ḝ:"ḝ",Ḟ:"ḟ",Ḡ:"ḡ",Ḣ:"ḣ",Ḥ:"ḥ",Ḧ:"ḧ",Ḩ:"ḩ",Ḫ:"ḫ",Ḭ:"ḭ",Ḯ:"ḯ",Ḱ:"ḱ",Ḳ:"ḳ",Ḵ:"ḵ",Ḷ:"ḷ",Ḹ:"ḹ",Ḻ:"ḻ",Ḽ:"ḽ",Ḿ:"ḿ",Ṁ:"ṁ",Ṃ:"ṃ",Ṅ:"ṅ",Ṇ:"ṇ",Ṉ:"ṉ",Ṋ:"ṋ",Ṍ:"ṍ",Ṏ:"ṏ",Ṑ:"ṑ",Ṓ:"ṓ",Ṕ:"ṕ",Ṗ:"ṗ",Ṙ:"ṙ",Ṛ:"ṛ",Ṝ:"ṝ",Ṟ:"ṟ",Ṡ:"ṡ",Ṣ:"ṣ",Ṥ:"ṥ",Ṧ:"ṧ",Ṩ:"ṩ",Ṫ:"ṫ",Ṭ:"ṭ",Ṯ:"ṯ",Ṱ:"ṱ",Ṳ:"ṳ",Ṵ:"ṵ",Ṷ:"ṷ",Ṹ:"ṹ",Ṻ:"ṻ",Ṽ:"ṽ",Ṿ:"ṿ",Ẁ:"ẁ",Ẃ:"ẃ",Ẅ:"ẅ",Ẇ:"ẇ",Ẉ:"ẉ",Ẋ:"ẋ",Ẍ:"ẍ",Ẏ:"ẏ",Ẑ:"ẑ",Ẓ:"ẓ",Ẕ:"ẕ",ẛ:"ṡ",Ạ:"ạ",Ả:"ả",Ấ:"ấ",Ầ:"ầ",Ẩ:"ẩ",Ẫ:"ẫ",Ậ:"ậ",Ắ:"ắ",Ằ:"ằ",Ẳ:"ẳ",Ẵ:"ẵ",Ặ:"ặ",Ẹ:"ẹ",Ẻ:"ẻ",Ẽ:"ẽ",Ế:"ế",Ề:"ề",Ể:"ể",Ễ:"ễ",Ệ:"ệ",Ỉ:"ỉ",Ị:"ị",Ọ:"ọ",Ỏ:"ỏ",Ố:"ố",Ồ:"ồ",Ổ:"ổ",Ỗ:"ỗ",Ộ:"ộ",Ớ:"ớ",Ờ:"ờ",Ở:"ở",Ỡ:"ỡ",Ợ:"ợ",Ụ:"ụ",Ủ:"ủ",Ứ:"ứ",Ừ:"ừ",Ử:"ử",Ữ:"ữ",Ự:"ự",Ỳ:"ỳ",Ỵ:"ỵ",Ỷ:"ỷ",Ỹ:"ỹ","Ỻ":"ỻ","Ỽ":"ỽ","Ỿ":"ỿ",Ἀ:"ἀ",Ἁ:"ἁ",Ἂ:"ἂ",Ἃ:"ἃ",Ἄ:"ἄ",Ἅ:"ἅ",Ἆ:"ἆ",Ἇ:"ἇ",Ἐ:"ἐ",Ἑ:"ἑ",Ἒ:"ἒ",Ἓ:"ἓ",Ἔ:"ἔ",Ἕ:"ἕ",Ἠ:"ἠ",Ἡ:"ἡ",Ἢ:"ἢ",Ἣ:"ἣ",Ἤ:"ἤ",Ἥ:"ἥ",Ἦ:"ἦ",Ἧ:"ἧ",Ἰ:"ἰ",Ἱ:"ἱ",Ἲ:"ἲ",Ἳ:"ἳ",Ἴ:"ἴ",Ἵ:"ἵ",Ἶ:"ἶ",Ἷ:"ἷ",Ὀ:"ὀ",Ὁ:"ὁ",Ὂ:"ὂ",Ὃ:"ὃ",Ὄ:"ὄ",Ὅ:"ὅ",Ὑ:"ὑ",Ὓ:"ὓ",Ὕ:"ὕ",Ὗ:"ὗ",Ὠ:"ὠ",Ὡ:"ὡ",Ὢ:"ὢ",Ὣ:"ὣ",Ὤ:"ὤ",Ὥ:"ὥ",Ὦ:"ὦ",Ὧ:"ὧ",Ᾰ:"ᾰ",Ᾱ:"ᾱ",Ὰ:"ὰ",Ά:"ά",ι:"ι",Ὲ:"ὲ",Έ:"έ",Ὴ:"ὴ",Ή:"ή",Ῐ:"ῐ",Ῑ:"ῑ",Ὶ:"ὶ",Ί:"ί",Ῠ:"ῠ",Ῡ:"ῡ",Ὺ:"ὺ",Ύ:"ύ",Ῥ:"ῥ",Ὸ:"ὸ",Ό:"ό",Ὼ:"ὼ",Ώ:"ώ",Ω:"ω",K:"k",Å:"å","Ⅎ":"ⅎ","Ⅰ":"ⅰ","Ⅱ":"ⅱ","Ⅲ":"ⅲ","Ⅳ":"ⅳ","Ⅴ":"ⅴ","Ⅵ":"ⅵ","Ⅶ":"ⅶ","Ⅷ":"ⅷ","Ⅸ":"ⅸ","Ⅹ":"ⅹ","Ⅺ":"ⅺ","Ⅻ":"ⅻ","Ⅼ":"ⅼ","Ⅽ":"ⅽ","Ⅾ":"ⅾ","Ⅿ":"ⅿ","Ↄ":"ↄ","Ⓐ":"ⓐ","Ⓑ":"ⓑ","Ⓒ":"ⓒ","Ⓓ":"ⓓ","Ⓔ":"ⓔ","Ⓕ":"ⓕ","Ⓖ":"ⓖ","Ⓗ":"ⓗ","Ⓘ":"ⓘ","Ⓙ":"ⓙ","Ⓚ":"ⓚ","Ⓛ":"ⓛ","Ⓜ":"ⓜ","Ⓝ":"ⓝ","Ⓞ":"ⓞ","Ⓟ":"ⓟ","Ⓠ":"ⓠ","Ⓡ":"ⓡ","Ⓢ":"ⓢ","Ⓣ":"ⓣ","Ⓤ":"ⓤ","Ⓥ":"ⓥ","Ⓦ":"ⓦ","Ⓧ":"ⓧ","Ⓨ":"ⓨ","Ⓩ":"ⓩ","Ⰰ":"ⰰ","Ⰱ":"ⰱ","Ⰲ":"ⰲ","Ⰳ":"ⰳ","Ⰴ":"ⰴ","Ⰵ":"ⰵ","Ⰶ":"ⰶ","Ⰷ":"ⰷ","Ⰸ":"ⰸ","Ⰹ":"ⰹ","Ⰺ":"ⰺ","Ⰻ":"ⰻ","Ⰼ":"ⰼ","Ⰽ":"ⰽ","Ⰾ":"ⰾ","Ⰿ":"ⰿ","Ⱀ":"ⱀ","Ⱁ":"ⱁ","Ⱂ":"ⱂ","Ⱃ":"ⱃ","Ⱄ":"ⱄ","Ⱅ":"ⱅ","Ⱆ":"ⱆ","Ⱇ":"ⱇ","Ⱈ":"ⱈ","Ⱉ":"ⱉ","Ⱊ":"ⱊ","Ⱋ":"ⱋ","Ⱌ":"ⱌ","Ⱍ":"ⱍ","Ⱎ":"ⱎ","Ⱏ":"ⱏ","Ⱐ":"ⱐ","Ⱑ":"ⱑ","Ⱒ":"ⱒ","Ⱓ":"ⱓ","Ⱔ":"ⱔ","Ⱕ":"ⱕ","Ⱖ":"ⱖ","Ⱗ":"ⱗ","Ⱘ":"ⱘ","Ⱙ":"ⱙ","Ⱚ":"ⱚ","Ⱛ":"ⱛ","Ⱜ":"ⱜ","Ⱝ":"ⱝ","Ⱞ":"ⱞ","Ⱡ":"ⱡ","Ɫ":"ɫ","Ᵽ":"ᵽ","Ɽ":"ɽ","Ⱨ":"ⱨ","Ⱪ":"ⱪ","Ⱬ":"ⱬ","Ɑ":"ɑ","Ɱ":"ɱ","Ɐ":"ɐ","Ɒ":"ɒ","Ⱳ":"ⱳ","Ⱶ":"ⱶ","Ȿ":"ȿ","Ɀ":"ɀ","Ⲁ":"ⲁ","Ⲃ":"ⲃ","Ⲅ":"ⲅ","Ⲇ":"ⲇ","Ⲉ":"ⲉ","Ⲋ":"ⲋ","Ⲍ":"ⲍ","Ⲏ":"ⲏ","Ⲑ":"ⲑ","Ⲓ":"ⲓ","Ⲕ":"ⲕ","Ⲗ":"ⲗ","Ⲙ":"ⲙ","Ⲛ":"ⲛ","Ⲝ":"ⲝ","Ⲟ":"ⲟ","Ⲡ":"ⲡ","Ⲣ":"ⲣ","Ⲥ":"ⲥ","Ⲧ":"ⲧ","Ⲩ":"ⲩ","Ⲫ":"ⲫ","Ⲭ":"ⲭ","Ⲯ":"ⲯ","Ⲱ":"ⲱ","Ⲳ":"ⲳ","Ⲵ":"ⲵ","Ⲷ":"ⲷ","Ⲹ":"ⲹ","Ⲻ":"ⲻ","Ⲽ":"ⲽ","Ⲿ":"ⲿ","Ⳁ":"ⳁ","Ⳃ":"ⳃ","Ⳅ":"ⳅ","Ⳇ":"ⳇ","Ⳉ":"ⳉ","Ⳋ":"ⳋ","Ⳍ":"ⳍ","Ⳏ":"ⳏ","Ⳑ":"ⳑ","Ⳓ":"ⳓ","Ⳕ":"ⳕ","Ⳗ":"ⳗ","Ⳙ":"ⳙ","Ⳛ":"ⳛ","Ⳝ":"ⳝ","Ⳟ":"ⳟ","Ⳡ":"ⳡ","Ⳣ":"ⳣ","Ⳬ":"ⳬ","Ⳮ":"ⳮ","Ⳳ":"ⳳ","Ꙁ":"ꙁ","Ꙃ":"ꙃ","Ꙅ":"ꙅ","Ꙇ":"ꙇ","Ꙉ":"ꙉ","Ꙋ":"ꙋ","Ꙍ":"ꙍ","Ꙏ":"ꙏ","Ꙑ":"ꙑ","Ꙓ":"ꙓ","Ꙕ":"ꙕ","Ꙗ":"ꙗ","Ꙙ":"ꙙ","Ꙛ":"ꙛ","Ꙝ":"ꙝ","Ꙟ":"ꙟ","Ꙡ":"ꙡ","Ꙣ":"ꙣ","Ꙥ":"ꙥ","Ꙧ":"ꙧ","Ꙩ":"ꙩ","Ꙫ":"ꙫ","Ꙭ":"ꙭ","Ꚁ":"ꚁ","Ꚃ":"ꚃ","Ꚅ":"ꚅ","Ꚇ":"ꚇ","Ꚉ":"ꚉ","Ꚋ":"ꚋ","Ꚍ":"ꚍ","Ꚏ":"ꚏ","Ꚑ":"ꚑ","Ꚓ":"ꚓ","Ꚕ":"ꚕ","Ꚗ":"ꚗ","Ꚙ":"ꚙ","Ꚛ":"ꚛ","Ꜣ":"ꜣ","Ꜥ":"ꜥ","Ꜧ":"ꜧ","Ꜩ":"ꜩ","Ꜫ":"ꜫ","Ꜭ":"ꜭ","Ꜯ":"ꜯ","Ꜳ":"ꜳ","Ꜵ":"ꜵ","Ꜷ":"ꜷ","Ꜹ":"ꜹ","Ꜻ":"ꜻ","Ꜽ":"ꜽ","Ꜿ":"ꜿ","Ꝁ":"ꝁ","Ꝃ":"ꝃ","Ꝅ":"ꝅ","Ꝇ":"ꝇ","Ꝉ":"ꝉ","Ꝋ":"ꝋ","Ꝍ":"ꝍ","Ꝏ":"ꝏ","Ꝑ":"ꝑ","Ꝓ":"ꝓ","Ꝕ":"ꝕ","Ꝗ":"ꝗ","Ꝙ":"ꝙ","Ꝛ":"ꝛ","Ꝝ":"ꝝ","Ꝟ":"ꝟ","Ꝡ":"ꝡ","Ꝣ":"ꝣ","Ꝥ":"ꝥ","Ꝧ":"ꝧ","Ꝩ":"ꝩ","Ꝫ":"ꝫ","Ꝭ":"ꝭ","Ꝯ":"ꝯ","Ꝺ":"ꝺ","Ꝼ":"ꝼ","Ᵹ":"ᵹ","Ꝿ":"ꝿ","Ꞁ":"ꞁ","Ꞃ":"ꞃ","Ꞅ":"ꞅ","Ꞇ":"ꞇ","Ꞌ":"ꞌ","Ɥ":"ɥ","Ꞑ":"ꞑ","Ꞓ":"ꞓ","Ꞗ":"ꞗ","Ꞙ":"ꞙ","Ꞛ":"ꞛ","Ꞝ":"ꞝ","Ꞟ":"ꞟ","Ꞡ":"ꞡ","Ꞣ":"ꞣ","Ꞥ":"ꞥ","Ꞧ":"ꞧ","Ꞩ":"ꞩ","Ɦ":"ɦ","Ɜ":"ɜ","Ɡ":"ɡ","Ɬ":"ɬ","Ʞ":"ʞ","Ʇ":"ʇ",A:"a",B:"b",C:"c",D:"d",E:"e",F:"f",G:"g",H:"h",I:"i",J:"j",K:"k",L:"l",M:"m",N:"n",O:"o",P:"p",Q:"q",R:"r",S:"s",T:"t",U:"u",V:"v",W:"w",X:"x",Y:"y",Z:"z","𐐀":"𐐨","𐐁":"𐐩","𐐂":"𐐪","𐐃":"𐐫","𐐄":"𐐬","𐐅":"𐐭","𐐆":"𐐮","𐐇":"𐐯","𐐈":"𐐰","𐐉":"𐐱","𐐊":"𐐲","𐐋":"𐐳","𐐌":"𐐴","𐐍":"𐐵","𐐎":"𐐶","𐐏":"𐐷","𐐐":"𐐸","𐐑":"𐐹","𐐒":"𐐺","𐐓":"𐐻","𐐔":"𐐼","𐐕":"𐐽","𐐖":"𐐾","𐐗":"𐐿","𐐘":"𐑀","𐐙":"𐑁","𐐚":"𐑂","𐐛":"𐑃","𐐜":"𐑄","𐐝":"𐑅","𐐞":"𐑆","𐐟":"𐑇","𐐠":"𐑈","𐐡":"𐑉","𐐢":"𐑊","𐐣":"𐑋","𐐤":"𐑌","𐐥":"𐑍","𐐦":"𐑎","𐐧":"𐑏","𑢠":"𑣀","𑢡":"𑣁","𑢢":"𑣂","𑢣":"𑣃","𑢤":"𑣄","𑢥":"𑣅","𑢦":"𑣆","𑢧":"𑣇","𑢨":"𑣈","𑢩":"𑣉","𑢪":"𑣊","𑢫":"𑣋","𑢬":"𑣌","𑢭":"𑣍","𑢮":"𑣎","𑢯":"𑣏","𑢰":"𑣐","𑢱":"𑣑","𑢲":"𑣒","𑢳":"𑣓","𑢴":"𑣔","𑢵":"𑣕","𑢶":"𑣖","𑢷":"𑣗","𑢸":"𑣘","𑢹":"𑣙","𑢺":"𑣚","𑢻":"𑣛","𑢼":"𑣜","𑢽":"𑣝","𑢾":"𑣞","𑢿":"𑣟",ß:"ss",İ:"i̇",ʼn:"ʼn",ǰ:"ǰ",ΐ:"ΐ",ΰ:"ΰ",և:"եւ",ẖ:"ẖ",ẗ:"ẗ",ẘ:"ẘ",ẙ:"ẙ",ẚ:"aʾ","ẞ":"ss",ὐ:"ὐ",ὒ:"ὒ",ὔ:"ὔ",ὖ:"ὖ",ᾀ:"ἀι",ᾁ:"ἁι",ᾂ:"ἂι",ᾃ:"ἃι",ᾄ:"ἄι",ᾅ:"ἅι",ᾆ:"ἆι",ᾇ:"ἇι",ᾈ:"ἀι",ᾉ:"ἁι",ᾊ:"ἂι",ᾋ:"ἃι",ᾌ:"ἄι",ᾍ:"ἅι",ᾎ:"ἆι",ᾏ:"ἇι",ᾐ:"ἠι",ᾑ:"ἡι",ᾒ:"ἢι",ᾓ:"ἣι",ᾔ:"ἤι",ᾕ:"ἥι",ᾖ:"ἦι",ᾗ:"ἧι",ᾘ:"ἠι",ᾙ:"ἡι",ᾚ:"ἢι",ᾛ:"ἣι",ᾜ:"ἤι",ᾝ:"ἥι",ᾞ:"ἦι",ᾟ:"ἧι",ᾠ:"ὠι",ᾡ:"ὡι",ᾢ:"ὢι",ᾣ:"ὣι",ᾤ:"ὤι",ᾥ:"ὥι",ᾦ:"ὦι",ᾧ:"ὧι",ᾨ:"ὠι",ᾩ:"ὡι",ᾪ:"ὢι",ᾫ:"ὣι",ᾬ:"ὤι",ᾭ:"ὥι",ᾮ:"ὦι",ᾯ:"ὧι",ᾲ:"ὰι",ᾳ:"αι",ᾴ:"άι",ᾶ:"ᾶ",ᾷ:"ᾶι",ᾼ:"αι",ῂ:"ὴι",ῃ:"ηι",ῄ:"ήι",ῆ:"ῆ",ῇ:"ῆι",ῌ:"ηι",ῒ:"ῒ",ΐ:"ΐ",ῖ:"ῖ",ῗ:"ῗ",ῢ:"ῢ",ΰ:"ΰ",ῤ:"ῤ",ῦ:"ῦ",ῧ:"ῧ",ῲ:"ὼι",ῳ:"ωι",ῴ:"ώι",ῶ:"ῶ",ῷ:"ῶι",ῼ:"ωι",ff:"ff",fi:"fi",fl:"fl",ffi:"ffi",ffl:"ffl",ſt:"st",st:"st",ﬓ:"մն",ﬔ:"մե",ﬕ:"մի",ﬖ:"վն",ﬗ:"մխ"},entityReferences=[{key:[65,69,108,105,103,59],value:"Æ"},{key:[65,77,80,59],value:"&"},{key:[65,97,99,117,116,101,59],value:"Á"},{key:[65,98,114,101,118,101,59],value:"Ă"},{key:[65,99,105,114,99,59],value:"Â"},{key:[65,99,121,59],value:"А"},{key:[65,102,114,59],value:"𝔄"},{key:[65,103,114,97,118,101,59],value:"À"},{key:[65,108,112,104,97,59],value:"Α"},{key:[65,109,97,99,114,59],value:"Ā"},{key:[65,110,100,59],value:"⩓"},{key:[65,111,103,111,110,59],value:"Ą"},{key:[65,111,112,102,59],value:"𝔸"},{key:[65,112,112,108,121,70,117,110,99,116,105,111,110,59],value:"⁡"},{key:[65,114,105,110,103,59],value:"Å"},{key:[65,115,99,114,59],value:"𝒜"},{key:[65,115,115,105,103,110,59],value:"≔"},{key:[65,116,105,108,100,101,59],value:"Ã"},{key:[65,117,109,108,59],value:"Ä"},{key:[66,97,99,107,115,108,97,115,104,59],value:"∖"},{key:[66,97,114,118,59],value:"⫧"},{key:[66,97,114,119,101,100,59],value:"⌆"},{key:[66,99,121,59],value:"Б"},{key:[66,101,99,97,117,115,101,59],value:"∵"},{key:[66,101,114,110,111,117,108,108,105,115,59],value:"ℬ"},{key:[66,101,116,97,59],value:"Β"},{key:[66,102,114,59],value:"𝔅"},{key:[66,111,112,102,59],value:"𝔹"},{key:[66,114,101,118,101,59],value:"˘"},{key:[66,115,99,114,59],value:"ℬ"},{key:[66,117,109,112,101,113,59],value:"≎"},{key:[67,72,99,121,59],value:"Ч"},{key:[67,79,80,89,59],value:"©"},{key:[67,97,99,117,116,101,59],value:"Ć"},{key:[67,97,112,59],value:"⋒"},{key:[67,97,112,105,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59],value:"ⅅ"},{key:[67,97,121,108,101,121,115,59],value:"ℭ"},{key:[67,99,97,114,111,110,59],value:"Č"},{key:[67,99,101,100,105,108,59],value:"Ç"},{key:[67,99,105,114,99,59],value:"Ĉ"},{key:[67,99,111,110,105,110,116,59],value:"∰"},{key:[67,100,111,116,59],value:"Ċ"},{key:[67,101,100,105,108,108,97,59],value:"¸"},{key:[67,101,110,116,101,114,68,111,116,59],value:"·"},{key:[67,102,114,59],value:"ℭ"},{key:[67,104,105,59],value:"Χ"},{key:[67,105,114,99,108,101,68,111,116,59],value:"⊙"},{key:[67,105,114,99,108,101,77,105,110,117,115,59],value:"⊖"},{key:[67,105,114,99,108,101,80,108,117,115,59],value:"⊕"},{key:[67,105,114,99,108,101,84,105,109,101,115,59],value:"⊗"},{key:[67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∲"},{key:[67,108,111,115,101,67,117,114,108,121,68,111,117,98,108,101,81,117,111,116,101,59],value:"”"},{key:[67,108,111,115,101,67,117,114,108,121,81,117,111,116,101,59],value:"’"},{key:[67,111,108,111,110,59],value:"∷"},{key:[67,111,108,111,110,101,59],value:"⩴"},{key:[67,111,110,103,114,117,101,110,116,59],value:"≡"},{key:[67,111,110,105,110,116,59],value:"∯"},{key:[67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∮"},{key:[67,111,112,102,59],value:"ℂ"},{key:[67,111,112,114,111,100,117,99,116,59],value:"∐"},{key:[67,111,117,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∳"},{key:[67,114,111,115,115,59],value:"⨯"},{key:[67,115,99,114,59],value:"𝒞"},{key:[67,117,112,59],value:"⋓"},{key:[67,117,112,67,97,112,59],value:"≍"},{key:[68,68,59],value:"ⅅ"},{key:[68,68,111,116,114,97,104,100,59],value:"⤑"},{key:[68,74,99,121,59],value:"Ђ"},{key:[68,83,99,121,59],value:"Ѕ"},{key:[68,90,99,121,59],value:"Џ"},{key:[68,97,103,103,101,114,59],value:"‡"},{key:[68,97,114,114,59],value:"↡"},{key:[68,97,115,104,118,59],value:"⫤"},{key:[68,99,97,114,111,110,59],value:"Ď"},{key:[68,99,121,59],value:"Д"},{key:[68,101,108,59],value:"∇"},{key:[68,101,108,116,97,59],value:"Δ"},{key:[68,102,114,59],value:"𝔇"},{key:[68,105,97,99,114,105,116,105,99,97,108,65,99,117,116,101,59],value:"´"},{key:[68,105,97,99,114,105,116,105,99,97,108,68,111,116,59],value:"˙"},{key:[68,105,97,99,114,105,116,105,99,97,108,68,111,117,98,108,101,65,99,117,116,101,59],value:"˝"},{key:[68,105,97,99,114,105,116,105,99,97,108,71,114,97,118,101,59],value:"`"},{key:[68,105,97,99,114,105,116,105,99,97,108,84,105,108,100,101,59],value:"˜"},{key:[68,105,97,109,111,110,100,59],value:"⋄"},{key:[68,105,102,102,101,114,101,110,116,105,97,108,68,59],value:"ⅆ"},{key:[68,111,112,102,59],value:"𝔻"},{key:[68,111,116,59],value:"¨"},{key:[68,111,116,68,111,116,59],value:"⃜"},{key:[68,111,116,69,113,117,97,108,59],value:"≐"},{key:[68,111,117,98,108,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∯"},{key:[68,111,117,98,108,101,68,111,116,59],value:"¨"},{key:[68,111,117,98,108,101,68,111,119,110,65,114,114,111,119,59],value:"⇓"},{key:[68,111,117,98,108,101,76,101,102,116,65,114,114,111,119,59],value:"⇐"},{key:[68,111,117,98,108,101,76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"⇔"},{key:[68,111,117,98,108,101,76,101,102,116,84,101,101,59],value:"⫤"},{key:[68,111,117,98,108,101,76,111,110,103,76,101,102,116,65,114,114,111,119,59],value:"⟸"},{key:[68,111,117,98,108,101,76,111,110,103,76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"⟺"},{key:[68,111,117,98,108,101,76,111,110,103,82,105,103,104,116,65,114,114,111,119,59],value:"⟹"},{key:[68,111,117,98,108,101,82,105,103,104,116,65,114,114,111,119,59],value:"⇒"},{key:[68,111,117,98,108,101,82,105,103,104,116,84,101,101,59],value:"⊨"},{key:[68,111,117,98,108,101,85,112,65,114,114,111,119,59],value:"⇑"},{key:[68,111,117,98,108,101,85,112,68,111,119,110,65,114,114,111,119,59],value:"⇕"},{key:[68,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59],value:"∥"},{key:[68,111,119,110,65,114,114,111,119,59],value:"↓"},{key:[68,111,119,110,65,114,114,111,119,66,97,114,59],value:"⤓"},{key:[68,111,119,110,65,114,114,111,119,85,112,65,114,114,111,119,59],value:"⇵"},{key:[68,111,119,110,66,114,101,118,101,59],value:"̑"},{key:[68,111,119,110,76,101,102,116,82,105,103,104,116,86,101,99,116,111,114,59],value:"⥐"},{key:[68,111,119,110,76,101,102,116,84,101,101,86,101,99,116,111,114,59],value:"⥞"},{key:[68,111,119,110,76,101,102,116,86,101,99,116,111,114,59],value:"↽"},{key:[68,111,119,110,76,101,102,116,86,101,99,116,111,114,66,97,114,59],value:"⥖"},{key:[68,111,119,110,82,105,103,104,116,84,101,101,86,101,99,116,111,114,59],value:"⥟"},{key:[68,111,119,110,82,105,103,104,116,86,101,99,116,111,114,59],value:"⇁"},{key:[68,111,119,110,82,105,103,104,116,86,101,99,116,111,114,66,97,114,59],value:"⥗"},{key:[68,111,119,110,84,101,101,59],value:"⊤"},{key:[68,111,119,110,84,101,101,65,114,114,111,119,59],value:"↧"},{key:[68,111,119,110,97,114,114,111,119,59],value:"⇓"},{key:[68,115,99,114,59],value:"𝒟"},{key:[68,115,116,114,111,107,59],value:"Đ"},{key:[69,78,71,59],value:"Ŋ"},{key:[69,84,72,59],value:"Ð"},{key:[69,97,99,117,116,101,59],value:"É"},{key:[69,99,97,114,111,110,59],value:"Ě"},{key:[69,99,105,114,99,59],value:"Ê"},{key:[69,99,121,59],value:"Э"},{key:[69,100,111,116,59],value:"Ė"},{key:[69,102,114,59],value:"𝔈"},{key:[69,103,114,97,118,101,59],value:"È"},{key:[69,108,101,109,101,110,116,59],value:"∈"},{key:[69,109,97,99,114,59],value:"Ē"},{key:[69,109,112,116,121,83,109,97,108,108,83,113,117,97,114,101,59],value:"◻"},{key:[69,109,112,116,121,86,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59],value:"▫"},{key:[69,111,103,111,110,59],value:"Ę"},{key:[69,111,112,102,59],value:"𝔼"},{key:[69,112,115,105,108,111,110,59],value:"Ε"},{key:[69,113,117,97,108,59],value:"⩵"},{key:[69,113,117,97,108,84,105,108,100,101,59],value:"≂"},{key:[69,113,117,105,108,105,98,114,105,117,109,59],value:"⇌"},{key:[69,115,99,114,59],value:"ℰ"},{key:[69,115,105,109,59],value:"⩳"},{key:[69,116,97,59],value:"Η"},{key:[69,117,109,108,59],value:"Ë"},{key:[69,120,105,115,116,115,59],value:"∃"},{key:[69,120,112,111,110,101,110,116,105,97,108,69,59],value:"ⅇ"},{key:[70,99,121,59],value:"Ф"},{key:[70,102,114,59],value:"𝔉"},{key:[70,105,108,108,101,100,83,109,97,108,108,83,113,117,97,114,101,59],value:"◼"},{key:[70,105,108,108,101,100,86,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59],value:"▪"},{key:[70,111,112,102,59],value:"𝔽"},{key:[70,111,114,65,108,108,59],value:"∀"},{key:[70,111,117,114,105,101,114,116,114,102,59],value:"ℱ"},{key:[70,115,99,114,59],value:"ℱ"},{key:[71,74,99,121,59],value:"Ѓ"},{key:[71,84,59],value:">"},{key:[71,97,109,109,97,59],value:"Γ"},{key:[71,97,109,109,97,100,59],value:"Ϝ"},{key:[71,98,114,101,118,101,59],value:"Ğ"},{key:[71,99,101,100,105,108,59],value:"Ģ"},{key:[71,99,105,114,99,59],value:"Ĝ"},{key:[71,99,121,59],value:"Г"},{key:[71,100,111,116,59],value:"Ġ"},{key:[71,102,114,59],value:"𝔊"},{key:[71,103,59],value:"⋙"},{key:[71,111,112,102,59],value:"𝔾"},{key:[71,114,101,97,116,101,114,69,113,117,97,108,59],value:"≥"},{key:[71,114,101,97,116,101,114,69,113,117,97,108,76,101,115,115,59],value:"⋛"},{key:[71,114,101,97,116,101,114,70,117,108,108,69,113,117,97,108,59],value:"≧"},{key:[71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"⪢"},{key:[71,114,101,97,116,101,114,76,101,115,115,59],value:"≷"},{key:[71,114,101,97,116,101,114,83,108,97,110,116,69,113,117,97,108,59],value:"⩾"},{key:[71,114,101,97,116,101,114,84,105,108,100,101,59],value:"≳"},{key:[71,115,99,114,59],value:"𝒢"},{key:[71,116,59],value:"≫"},{key:[72,65,82,68,99,121,59],value:"Ъ"},{key:[72,97,99,101,107,59],value:"ˇ"},{key:[72,97,116,59],value:"^"},{key:[72,99,105,114,99,59],value:"Ĥ"},{key:[72,102,114,59],value:"ℌ"},{key:[72,105,108,98,101,114,116,83,112,97,99,101,59],value:"ℋ"},{key:[72,111,112,102,59],value:"ℍ"},{key:[72,111,114,105,122,111,110,116,97,108,76,105,110,101,59],value:"─"},{key:[72,115,99,114,59],value:"ℋ"},{key:[72,115,116,114,111,107,59],value:"Ħ"},{key:[72,117,109,112,68,111,119,110,72,117,109,112,59],value:"≎"},{key:[72,117,109,112,69,113,117,97,108,59],value:"≏"},{key:[73,69,99,121,59],value:"Е"},{key:[73,74,108,105,103,59],value:"IJ"},{key:[73,79,99,121,59],value:"Ё"},{key:[73,97,99,117,116,101,59],value:"Í"},{key:[73,99,105,114,99,59],value:"Î"},{key:[73,99,121,59],value:"И"},{key:[73,100,111,116,59],value:"İ"},{key:[73,102,114,59],value:"ℑ"},{key:[73,103,114,97,118,101,59],value:"Ì"},{key:[73,109,59],value:"ℑ"},{key:[73,109,97,99,114,59],value:"Ī"},{key:[73,109,97,103,105,110,97,114,121,73,59],value:"ⅈ"},{key:[73,109,112,108,105,101,115,59],value:"⇒"},{key:[73,110,116,59],value:"∬"},{key:[73,110,116,101,103,114,97,108,59],value:"∫"},{key:[73,110,116,101,114,115,101,99,116,105,111,110,59],value:"⋂"},{key:[73,110,118,105,115,105,98,108,101,67,111,109,109,97,59],value:"⁣"},{key:[73,110,118,105,115,105,98,108,101,84,105,109,101,115,59],value:"⁢"},{key:[73,111,103,111,110,59],value:"Į"},{key:[73,111,112,102,59],value:"𝕀"},{key:[73,111,116,97,59],value:"Ι"},{key:[73,115,99,114,59],value:"ℐ"},{key:[73,116,105,108,100,101,59],value:"Ĩ"},{key:[73,117,107,99,121,59],value:"І"},{key:[73,117,109,108,59],value:"Ï"},{key:[74,99,105,114,99,59],value:"Ĵ"},{key:[74,99,121,59],value:"Й"},{key:[74,102,114,59],value:"𝔍"},{key:[74,111,112,102,59],value:"𝕁"},{key:[74,115,99,114,59],value:"𝒥"},{key:[74,115,101,114,99,121,59],value:"Ј"},{key:[74,117,107,99,121,59],value:"Є"},{key:[75,72,99,121,59],value:"Х"},{key:[75,74,99,121,59],value:"Ќ"},{key:[75,97,112,112,97,59],value:"Κ"},{key:[75,99,101,100,105,108,59],value:"Ķ"},{key:[75,99,121,59],value:"К"},{key:[75,102,114,59],value:"𝔎"},{key:[75,111,112,102,59],value:"𝕂"},{key:[75,115,99,114,59],value:"𝒦"},{key:[76,74,99,121,59],value:"Љ"},{key:[76,84,59],value:"<"},{key:[76,97,99,117,116,101,59],value:"Ĺ"},{key:[76,97,109,98,100,97,59],value:"Λ"},{key:[76,97,110,103,59],value:"⟪"},{key:[76,97,112,108,97,99,101,116,114,102,59],value:"ℒ"},{key:[76,97,114,114,59],value:"↞"},{key:[76,99,97,114,111,110,59],value:"Ľ"},{key:[76,99,101,100,105,108,59],value:"Ļ"},{key:[76,99,121,59],value:"Л"},{key:[76,101,102,116,65,110,103,108,101,66,114,97,99,107,101,116,59],value:"⟨"},{key:[76,101,102,116,65,114,114,111,119,59],value:"←"},{key:[76,101,102,116,65,114,114,111,119,66,97,114,59],value:"⇤"},{key:[76,101,102,116,65,114,114,111,119,82,105,103,104,116,65,114,114,111,119,59],value:"⇆"},{key:[76,101,102,116,67,101,105,108,105,110,103,59],value:"⌈"},{key:[76,101,102,116,68,111,117,98,108,101,66,114,97,99,107,101,116,59],value:"⟦"},{key:[76,101,102,116,68,111,119,110,84,101,101,86,101,99,116,111,114,59],value:"⥡"},{key:[76,101,102,116,68,111,119,110,86,101,99,116,111,114,59],value:"⇃"},{key:[76,101,102,116,68,111,119,110,86,101,99,116,111,114,66,97,114,59],value:"⥙"},{key:[76,101,102,116,70,108,111,111,114,59],value:"⌊"},{key:[76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"↔"},{key:[76,101,102,116,82,105,103,104,116,86,101,99,116,111,114,59],value:"⥎"},{key:[76,101,102,116,84,101,101,59],value:"⊣"},{key:[76,101,102,116,84,101,101,65,114,114,111,119,59],value:"↤"},{key:[76,101,102,116,84,101,101,86,101,99,116,111,114,59],value:"⥚"},{key:[76,101,102,116,84,114,105,97,110,103,108,101,59],value:"⊲"},{key:[76,101,102,116,84,114,105,97,110,103,108,101,66,97,114,59],value:"⧏"},{key:[76,101,102,116,84,114,105,97,110,103,108,101,69,113,117,97,108,59],value:"⊴"},{key:[76,101,102,116,85,112,68,111,119,110,86,101,99,116,111,114,59],value:"⥑"},{key:[76,101,102,116,85,112,84,101,101,86,101,99,116,111,114,59],value:"⥠"},{key:[76,101,102,116,85,112,86,101,99,116,111,114,59],value:"↿"},{key:[76,101,102,116,85,112,86,101,99,116,111,114,66,97,114,59],value:"⥘"},{key:[76,101,102,116,86,101,99,116,111,114,59],value:"↼"},{key:[76,101,102,116,86,101,99,116,111,114,66,97,114,59],value:"⥒"},{key:[76,101,102,116,97,114,114,111,119,59],value:"⇐"},{key:[76,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⇔"},{key:[76,101,115,115,69,113,117,97,108,71,114,101,97,116,101,114,59],value:"⋚"},{key:[76,101,115,115,70,117,108,108,69,113,117,97,108,59],value:"≦"},{key:[76,101,115,115,71,114,101,97,116,101,114,59],value:"≶"},{key:[76,101,115,115,76,101,115,115,59],value:"⪡"},{key:[76,101,115,115,83,108,97,110,116,69,113,117,97,108,59],value:"⩽"},{key:[76,101,115,115,84,105,108,100,101,59],value:"≲"},{key:[76,102,114,59],value:"𝔏"},{key:[76,108,59],value:"⋘"},{key:[76,108,101,102,116,97,114,114,111,119,59],value:"⇚"},{key:[76,109,105,100,111,116,59],value:"Ŀ"},{key:[76,111,110,103,76,101,102,116,65,114,114,111,119,59],value:"⟵"},{key:[76,111,110,103,76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"⟷"},{key:[76,111,110,103,82,105,103,104,116,65,114,114,111,119,59],value:"⟶"},{key:[76,111,110,103,108,101,102,116,97,114,114,111,119,59],value:"⟸"},{key:[76,111,110,103,108,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⟺"},{key:[76,111,110,103,114,105,103,104,116,97,114,114,111,119,59],value:"⟹"},{key:[76,111,112,102,59],value:"𝕃"},{key:[76,111,119,101,114,76,101,102,116,65,114,114,111,119,59],value:"↙"},{key:[76,111,119,101,114,82,105,103,104,116,65,114,114,111,119,59],value:"↘"},{key:[76,115,99,114,59],value:"ℒ"},{key:[76,115,104,59],value:"↰"},{key:[76,115,116,114,111,107,59],value:"Ł"},{key:[76,116,59],value:"≪"},{key:[77,97,112,59],value:"⤅"},{key:[77,99,121,59],value:"М"},{key:[77,101,100,105,117,109,83,112,97,99,101,59],value:" "},{key:[77,101,108,108,105,110,116,114,102,59],value:"ℳ"},{key:[77,102,114,59],value:"𝔐"},{key:[77,105,110,117,115,80,108,117,115,59],value:"∓"},{key:[77,111,112,102,59],value:"𝕄"},{key:[77,115,99,114,59],value:"ℳ"},{key:[77,117,59],value:"Μ"},{key:[78,74,99,121,59],value:"Њ"},{key:[78,97,99,117,116,101,59],value:"Ń"},{key:[78,99,97,114,111,110,59],value:"Ň"},{key:[78,99,101,100,105,108,59],value:"Ņ"},{key:[78,99,121,59],value:"Н"},{key:[78,101,103,97,116,105,118,101,77,101,100,105,117,109,83,112,97,99,101,59],value:"​"},{key:[78,101,103,97,116,105,118,101,84,104,105,99,107,83,112,97,99,101,59],value:"​"},{key:[78,101,103,97,116,105,118,101,84,104,105,110,83,112,97,99,101,59],value:"​"},{key:[78,101,103,97,116,105,118,101,86,101,114,121,84,104,105,110,83,112,97,99,101,59],value:"​"},{key:[78,101,115,116,101,100,71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"≫"},{key:[78,101,115,116,101,100,76,101,115,115,76,101,115,115,59],value:"≪"},{key:[78,101,119,76,105,110,101,59],value:` + `},errorHandler=curry$1(throwError)(errorMessages),validators={config:validateConfig},compose$1=function(){for(var _e=arguments.length,et=new Array(_e),tt=0;tt<_e;tt++)et[tt]=arguments[tt];return function(rt){return et.reduceRight(function(nt,ot){return ot(nt)},rt)}};function merge$1(j,_e){return Object.keys(_e).forEach(function(et){_e[et]instanceof Object&&j[et]&&Object.assign(_e[et],merge$1(j[et],_e[et]))}),_objectSpread2$1(_objectSpread2$1({},j),_e)}var CANCELATION_MESSAGE={type:"cancelation",msg:"operation is manually canceled"};function makeCancelable(j){var _e=!1,et=new Promise(function(tt,rt){j.then(function(nt){return _e?rt(CANCELATION_MESSAGE):tt(nt)}),j.catch(rt)});return et.cancel=function(){return _e=!0},et}var _state$create=index.create({config:config$2,isInitialized:!1,resolve:null,reject:null,monaco:null}),_state$create2=_slicedToArray$c(_state$create,2),getState=_state$create2[0],setState=_state$create2[1];function config$1(j){var _e=validators.config(j),et=_e.monaco,tt=_objectWithoutProperties$g(_e,["monaco"]);setState(function(rt){return{config:merge$1(rt.config,tt),monaco:et}})}function init(){var j=getState(function(_e){var et=_e.monaco,tt=_e.isInitialized,rt=_e.resolve;return{monaco:et,isInitialized:tt,resolve:rt}});if(!j.isInitialized){if(setState({isInitialized:!0}),j.monaco)return j.resolve(j.monaco),makeCancelable(wrapperPromise);if(window.monaco&&window.monaco.editor)return storeMonacoInstance(window.monaco),j.resolve(window.monaco),makeCancelable(wrapperPromise);compose$1(injectScripts,getMonacoLoaderScript)(configureLoader)}return makeCancelable(wrapperPromise)}function injectScripts(j){return document.body.appendChild(j)}function createScript(j){var _e=document.createElement("script");return j&&(_e.src=j),_e}function getMonacoLoaderScript(j){var _e=getState(function(tt){var rt=tt.config,nt=tt.reject;return{config:rt,reject:nt}}),et=createScript("".concat(_e.config.paths.vs,"/loader.js"));return et.onload=function(){return j()},et.onerror=_e.reject,et}function configureLoader(){var j=getState(function(et){var tt=et.config,rt=et.resolve,nt=et.reject;return{config:tt,resolve:rt,reject:nt}}),_e=window.require;_e.config(j.config),_e(["vs/editor/editor.main"],function(et){storeMonacoInstance(et),j.resolve(et)},function(et){j.reject(et)})}function storeMonacoInstance(j){getState().monaco||setState({monaco:j})}function __getMonacoInstance(){return getState(function(j){var _e=j.monaco;return _e})}var wrapperPromise=new Promise(function(j,_e){return setState({resolve:j,reject:_e})}),loader={config:config$1,init,__getMonacoInstance},le$1={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},v$7=le$1,ae$1={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},Y=ae$1;function Me$1({children:j}){return React.createElement("div",{style:Y.container},j)}var Z=Me$1,$=Z;function Ee({width:j,height:_e,isEditorReady:et,loading:tt,_ref:rt,className:nt,wrapperProps:ot}){return React.createElement("section",{style:{...v$7.wrapper,width:j,height:_e},...ot},!et&&React.createElement($,null,tt),React.createElement("div",{ref:rt,style:{...v$7.fullWidth,...!et&&v$7.hide},className:nt}))}var ee$1=Ee,H$3=reactExports.memo(ee$1);function Ce(j){reactExports.useEffect(j,[])}var k$5=Ce;function he$1(j,_e,et=!0){let tt=reactExports.useRef(!0);reactExports.useEffect(tt.current||!et?()=>{tt.current=!1}:j,_e)}var l$4=he$1;function D$3(){}function h$6(j,_e,et,tt){return De(j,tt)||be$1(j,_e,et,tt)}function De(j,_e){return j.editor.getModel(te$1(j,_e))}function be$1(j,_e,et,tt){return j.editor.createModel(_e,et,tt?te$1(j,tt):void 0)}function te$1(j,_e){return j.Uri.parse(_e)}function Oe$1({original:j,modified:_e,language:et,originalLanguage:tt,modifiedLanguage:rt,originalModelPath:nt,modifiedModelPath:ot,keepCurrentOriginalModel:it=!1,keepCurrentModifiedModel:st=!1,theme:lt="light",loading:ut="Loading...",options:ct={},height:dt="100%",width:ft="100%",className:pt,wrapperProps:gt={},beforeMount:mt=D$3,onMount:bt=D$3}){let[_t,xt]=reactExports.useState(!1),[yt,Et]=reactExports.useState(!0),St=reactExports.useRef(null),Tt=reactExports.useRef(null),kt=reactExports.useRef(null),$t=reactExports.useRef(bt),Ct=reactExports.useRef(mt),It=reactExports.useRef(!1);k$5(()=>{let Mt=loader.init();return Mt.then(Rt=>(Tt.current=Rt)&&Et(!1)).catch(Rt=>(Rt==null?void 0:Rt.type)!=="cancelation"&&console.error("Monaco initialization: error:",Rt)),()=>St.current?jt():Mt.cancel()}),l$4(()=>{if(St.current&&Tt.current){let Mt=St.current.getOriginalEditor(),Rt=h$6(Tt.current,j||"",tt||et||"text",nt||"");Rt!==Mt.getModel()&&Mt.setModel(Rt)}},[nt],_t),l$4(()=>{if(St.current&&Tt.current){let Mt=St.current.getModifiedEditor(),Rt=h$6(Tt.current,_e||"",rt||et||"text",ot||"");Rt!==Mt.getModel()&&Mt.setModel(Rt)}},[ot],_t),l$4(()=>{let Mt=St.current.getModifiedEditor();Mt.getOption(Tt.current.editor.EditorOption.readOnly)?Mt.setValue(_e||""):_e!==Mt.getValue()&&(Mt.executeEdits("",[{range:Mt.getModel().getFullModelRange(),text:_e||"",forceMoveMarkers:!0}]),Mt.pushUndoStop())},[_e],_t),l$4(()=>{var Mt,Rt;(Rt=(Mt=St.current)==null?void 0:Mt.getModel())==null||Rt.original.setValue(j||"")},[j],_t),l$4(()=>{let{original:Mt,modified:Rt}=St.current.getModel();Tt.current.editor.setModelLanguage(Mt,tt||et||"text"),Tt.current.editor.setModelLanguage(Rt,rt||et||"text")},[et,tt,rt],_t),l$4(()=>{var Mt;(Mt=Tt.current)==null||Mt.editor.setTheme(lt)},[lt],_t),l$4(()=>{var Mt;(Mt=St.current)==null||Mt.updateOptions(ct)},[ct],_t);let Nt=reactExports.useCallback(()=>{var Lt;if(!Tt.current)return;Ct.current(Tt.current);let Mt=h$6(Tt.current,j||"",tt||et||"text",nt||""),Rt=h$6(Tt.current,_e||"",rt||et||"text",ot||"");(Lt=St.current)==null||Lt.setModel({original:Mt,modified:Rt})},[et,_e,rt,j,tt,nt,ot]),Ot=reactExports.useCallback(()=>{var Mt;!It.current&&kt.current&&(St.current=Tt.current.editor.createDiffEditor(kt.current,{automaticLayout:!0,...ct}),Nt(),(Mt=Tt.current)==null||Mt.editor.setTheme(lt),xt(!0),It.current=!0)},[ct,lt,Nt]);reactExports.useEffect(()=>{_t&&$t.current(St.current,Tt.current)},[_t]),reactExports.useEffect(()=>{!yt&&!_t&&Ot()},[yt,_t,Ot]);function jt(){var Rt,Lt,Pt,Gt;let Mt=(Rt=St.current)==null?void 0:Rt.getModel();it||((Lt=Mt==null?void 0:Mt.original)==null||Lt.dispose()),st||((Pt=Mt==null?void 0:Mt.modified)==null||Pt.dispose()),(Gt=St.current)==null||Gt.dispose()}return React.createElement(H$3,{width:ft,height:dt,isEditorReady:_t,loading:ut,_ref:kt,className:pt,wrapperProps:gt})}var ie$1=Oe$1;reactExports.memo(ie$1);function He$1(j){let _e=reactExports.useRef();return reactExports.useEffect(()=>{_e.current=j},[j]),_e.current}var se$1=He$1,_=new Map;function Ve$1({defaultValue:j,defaultLanguage:_e,defaultPath:et,value:tt,language:rt,path:nt,theme:ot="light",line:it,loading:st="Loading...",options:lt={},overrideServices:ut={},saveViewState:ct=!0,keepCurrentModel:dt=!1,width:ft="100%",height:pt="100%",className:gt,wrapperProps:mt={},beforeMount:bt=D$3,onMount:_t=D$3,onChange:xt,onValidate:yt=D$3}){let[Et,St]=reactExports.useState(!1),[Tt,kt]=reactExports.useState(!0),$t=reactExports.useRef(null),Ct=reactExports.useRef(null),It=reactExports.useRef(null),Nt=reactExports.useRef(_t),Ot=reactExports.useRef(bt),jt=reactExports.useRef(),Mt=reactExports.useRef(tt),Rt=se$1(nt),Lt=reactExports.useRef(!1),Pt=reactExports.useRef(!1);k$5(()=>{let Yt=loader.init();return Yt.then(Xt=>($t.current=Xt)&&kt(!1)).catch(Xt=>(Xt==null?void 0:Xt.type)!=="cancelation"&&console.error("Monaco initialization: error:",Xt)),()=>Ct.current?qt():Yt.cancel()}),l$4(()=>{var Xt,tr,cr,mr;let Yt=h$6($t.current,j||tt||"",_e||rt||"",nt||et||"");Yt!==((Xt=Ct.current)==null?void 0:Xt.getModel())&&(ct&&_.set(Rt,(tr=Ct.current)==null?void 0:tr.saveViewState()),(cr=Ct.current)==null||cr.setModel(Yt),ct&&((mr=Ct.current)==null||mr.restoreViewState(_.get(nt))))},[nt],Et),l$4(()=>{var Yt;(Yt=Ct.current)==null||Yt.updateOptions(lt)},[lt],Et),l$4(()=>{!Ct.current||tt===void 0||(Ct.current.getOption($t.current.editor.EditorOption.readOnly)?Ct.current.setValue(tt):tt!==Ct.current.getValue()&&(Pt.current=!0,Ct.current.executeEdits("",[{range:Ct.current.getModel().getFullModelRange(),text:tt,forceMoveMarkers:!0}]),Ct.current.pushUndoStop(),Pt.current=!1))},[tt],Et),l$4(()=>{var Xt,tr;let Yt=(Xt=Ct.current)==null?void 0:Xt.getModel();Yt&&rt&&((tr=$t.current)==null||tr.editor.setModelLanguage(Yt,rt))},[rt],Et),l$4(()=>{var Yt;it!==void 0&&((Yt=Ct.current)==null||Yt.revealLine(it))},[it],Et),l$4(()=>{var Yt;(Yt=$t.current)==null||Yt.editor.setTheme(ot)},[ot],Et);let Gt=reactExports.useCallback(()=>{var Yt;if(!(!It.current||!$t.current)&&!Lt.current){Ot.current($t.current);let Xt=nt||et,tr=h$6($t.current,tt||j||"",_e||rt||"",Xt||"");Ct.current=(Yt=$t.current)==null?void 0:Yt.editor.create(It.current,{model:tr,automaticLayout:!0,...lt},ut),ct&&Ct.current.restoreViewState(_.get(Xt)),$t.current.editor.setTheme(ot),it!==void 0&&Ct.current.revealLine(it),St(!0),Lt.current=!0}},[j,_e,et,tt,rt,nt,lt,ut,ct,ot,it]);reactExports.useEffect(()=>{Et&&Nt.current(Ct.current,$t.current)},[Et]),reactExports.useEffect(()=>{!Tt&&!Et&&Gt()},[Tt,Et,Gt]),Mt.current=tt,reactExports.useEffect(()=>{var Yt,Xt;Et&&xt&&((Yt=jt.current)==null||Yt.dispose(),jt.current=(Xt=Ct.current)==null?void 0:Xt.onDidChangeModelContent(tr=>{Pt.current||xt(Ct.current.getValue(),tr)}))},[Et,xt]),reactExports.useEffect(()=>{if(Et){let Yt=$t.current.editor.onDidChangeMarkers(Xt=>{var cr;let tr=(cr=Ct.current.getModel())==null?void 0:cr.uri;if(tr&&Xt.find(mr=>mr.path===tr.path)){let mr=$t.current.editor.getModelMarkers({resource:tr});yt==null||yt(mr)}});return()=>{Yt==null||Yt.dispose()}}return()=>{}},[Et,yt]);function qt(){var Yt,Xt;(Yt=jt.current)==null||Yt.dispose(),dt?ct&&_.set(nt,Ct.current.saveViewState()):(Xt=Ct.current.getModel())==null||Xt.dispose(),Ct.current.dispose()}return React.createElement(H$3,{width:ft,height:pt,isEditorReady:Et,loading:st,_ref:It,className:gt,wrapperProps:mt})}var fe$1=Ve$1,de$1=reactExports.memo(fe$1),Ft=de$1;const JinjaSyntaxHighlighter=({value:j,theme:_e})=>jsxRuntimeExports.jsx(Ft,{value:j,theme:_e,options:{readOnly:!0,minimap:{enabled:!1}},defaultLanguage:"jinja2",onMount:(et,tt)=>{tt.languages.register({id:"jinja2"}),tt.languages.setLanguageConfiguration("jinja2",{comments:{blockComment:["{#","#}"]},brackets:[["{#","#}"],["{%","%}"],["{{","}}"],["{","}"]],folding:{markers:{start:/\{%\s*(block|for|if)/,end:/\{%\s*end(block|for|if)/}}}),tt.languages.setMonarchTokensProvider("jinja2",{tokenizer:{root:[[/\{\{/,"delimiter"],[/\}\}/,"delimiter"],[/\{#/,"comment"],[/#\}/,"comment"],[/\{%/,"control"],[/%\}/,"control"],[/\b(if|else|elif|endif|for|endfor|set|extends|include|block|endblock|macro|endmacro)\b/,"keyword"],[/\b(length|list|lower|upper|trim|truncate|replace|round|urlencode|urlize)\b/,"filter"],[/\b(\+|-|\*|\/|%|\*\*|\/\/)\b/,"operator"],[/\b(\d+|\d*\.\d+)\b/,"number"],[/(^user:|^# user:|^system:|^# system:|^assistant:|^# assistant:)/,"keyword"]]}})}}),locStringsInjectionToken=createInjectionToken("locStrings",{}),useLocStrings=()=>{const[j]=useInjected(locStringsInjectionToken);return j},StreamSwitcher=({isStreaming:j,style:_e,onIsStreamingChange:et,labelName:tt})=>{const rt=useLocStrings();return jsxRuntimeExports.jsx(Switch,{label:tt||rt.Streaming,labelPosition:"before",checked:j,onChange:(nt,ot)=>et(ot.checked),style:_e})},safeJSONParse=j=>{try{return JSON.parse(j)}catch{return j}},timeFormat$1=j=>(j&&!j.endsWith("Z")&&(j+="Z"),j?new Date(j).toLocaleString([],{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"--"),parseSpanOutput=j=>{var et;const _e=(et=j==null?void 0:j.attributes)==null?void 0:et.output;if(typeof _e=="string")try{const tt=JSON.parse(_e);if(typeof tt.usage=="string")try{tt.usage=JSON.parse(tt.usage)}catch{tt.usage={}}return tt}catch{return _e}return _e},parseHttpSpanAttributes=j=>{var tt;const _e=j==null?void 0:j.attributes;if(!_e||((tt=_e.span_type)==null?void 0:tt.toLowerCase())!=="http")return;const et={response:{headers:{}},request:{headers:{}}};return Object.entries(_e).forEach(([rt,nt])=>{const ot=rt.toLowerCase();if(ot==="url.full"){et.urlFull=nt;return}const[it,st,lt,...ut]=ot.split(".");if(it==="http")switch(st){case"request":lt==="header"?et.request.headers[ut.join(".")]=nt:et.request[[lt,...ut].join(".")]=nt;break;case"response":lt==="header"?et.response.headers[ut.join(".")]=nt:et.response[[lt,...ut].join(".")]=nt;break;case"status_code":et.status_code=nt;break;case"method":et.method=nt;break;default:et[rt.substring(5)]=nt}}),et},convertToTraceListRow=j=>{var et,tt,rt;const _e=j.end_time&&j.start_time?Date.parse(j.end_time)-Date.parse(j.start_time):0;return{...j,latency:_e,total_tokens:((et=j==null?void 0:j.cumulative_token_count)==null?void 0:et.total)??0,prompt_tokens:(tt=j==null?void 0:j.cumulative_token_count)==null?void 0:tt.prompt,completion_tokens:(rt=j==null?void 0:j.cumulative_token_count)==null?void 0:rt.completion}};var _a;const initialTableColumnNames={normalColumns:[],evaluationColumns:[]};var ViewStatus=(j=>(j.loading="loading",j.loaded="loaded",j.error="error",j.hidden="hidden",j))(ViewStatus||{});const Xp=class Xp{constructor(_e){this.selectedSpanId$=new State$1(void 0),this.selectedTraceId$=new State$1(void 0),this.spans$=new ObservableMap,this.traces$=new ObservableOrderedMap,this.tableColumnNames$=new State$1(initialTableColumnNames),this.tableHiddenColumnKeys$=new State$1([]),this.isTraceDetailOpen$=new State$1(!1),this.isGanttChartOpen$=new State$1(!1),this.traceListStatus$=new State$1("loading"),this.traceDetailStatus$=new State$1("loading"),this.traceListShowMetrics$=new State$1(!0),this.messagesBySpanId$=new ObservableOrderedMap,this.sortColumn$=new State$1(void 0),this.sortableColumns=[];const{traceListConfig:et}=_e||{};et&&(this.traceListColumnModifier=et.columnModifier,et.showMetrics!==void 0&&this.traceListShowMetrics$.setState(et.showMetrics),et.defaultHiddenColumnKeys!==void 0&&this.tableHiddenColumnKeys$.setState(et.defaultHiddenColumnKeys),et.sortableColumns&&(this.sortableColumns=et.sortableColumns)),this.selectedTrace$=Computed$1.fromStates([this.selectedTraceId$,this.traces$],([tt,rt])=>tt&&rt.get(tt)||void 0),this.selectedTraceId$.subscribe(tt=>{var nt;if(!tt)return;const rt=this.traces$.get(tt);(nt=this._traceDetailDidOpenCallback)==null||nt.call(this,tt,rt)}),this.isTraceDetailOpen$.subscribe(tt=>{var ot;const rt=this.selectedTraceId$.getSnapshot(),nt=this.selectedTrace$.getSnapshot();!tt&&rt&&((ot=this._traceDetailDidCloseCallback)==null||ot.call(this,rt,nt),this.traceDetailStatus$.setState("hidden"),this.selectedTraceId$.next(void 0))}),this.sortColumn$.subscribe(tt=>{var rt;(rt=this._traceListSortColumnDidChangeCallback)==null||rt.call(this,tt)})}traceDetailDidOpen(_e){this._traceDetailDidOpenCallback=_e}traceDetailDidClose(_e){this._traceDetailDidCloseCallback=_e}traceListSortColumnDidChange(_e){this._traceListSortColumnDidChangeCallback=_e}refreshSpans(){var tt;const _e=this.selectedTraceId$.getSnapshot(),et=this.selectedTrace$.getSnapshot();_e&&((tt=this._refreshSpansCallback)==null||tt.call(this,_e,et))}onRefreshSpans(_e){this._refreshSpansCallback=_e}setOnRefreshTraces(_e){this._refreshTracesCallback=_e}refreshTraces(){var _e;(_e=this._refreshTracesCallback)==null||_e.call(this)}clear(){this.traces$.clear(),this.spans$.clear()}appendTraces(_e,et){_e.forEach(tt=>{tt.trace_id!==void 0&&(et?this.traces$.set(tt.trace_id,tt).sortByValue(et):this.traces$.set(tt.trace_id,tt))})}appendSpans(_e){_e.forEach(et=>{var ot,it;const tt=(ot=et==null?void 0:et.context)==null?void 0:ot.trace_id,rt=(it=et==null?void 0:et.context)==null?void 0:it.span_id;if(!tt||!rt)return;const nt=this.spans$.get(tt)||new ObservableOrderedMap;this.spans$.set(tt,nt.set(rt,et))})}toggleIsGanttChartOpen(){this.isGanttChartOpen$.setState(!this.isGanttChartOpen$.getSnapshot())}getTraceById(_e){return _e?this.traces$.get(_e):void 0}setTraceListStatus(_e){this.traceListStatus$.setState(_e)}setTraceDetailStatus(_e){this.traceDetailStatus$.setState(_e)}setTraceDetailOpen(_e,et){this.isTraceDetailOpen$.setState(_e),this.selectedTraceId$.setState(_e?et:void 0)}sortTraces(_e){this.traces$.sortByValue(_e)}};_a=SINGLETON,Xp[_a]=!0;let TraceViewModel=Xp;const TraceViewModelToken=createInjectionToken("TraceViewModel",new TraceViewModel),useTraceViewModel=()=>{const[j]=useInjected(TraceViewModelToken);return j},useSelectedSpanId=()=>{const j=useTraceViewModel();return useState(j.selectedSpanId$)},useSelectedSpan=()=>{var tt;const j=useTraceViewModel(),_e=useSelectedSpanId(),et=useSelectedTraceId();if(!(!_e||!et))return(tt=j.spans$.get(et))==null?void 0:tt.get(_e)},useParentSpanOfSelectedSpan=()=>{var tt;const j=useTraceViewModel(),_e=useSelectedTraceId(),et=useSelectedSpan();if(!(!et||!_e||!et.parent_id))return(tt=j.spans$.get(_e))==null?void 0:tt.get(et.parent_id)},useSetSelectedSpanId=()=>useSetState(useTraceViewModel().selectedSpanId$),useSelectedTraceId=()=>useState(useTraceViewModel().selectedTraceId$),useSetSelectedTraceId=()=>useSetState(useTraceViewModel().selectedTraceId$),useSelectedTrace=()=>{const j=useTraceViewModel(),_e=useSelectedTraceId();return _e?j.traces$.value.find(et=>et.trace_id===_e):void 0},useSpansOfSelectedTrace=()=>{const j=useTraceViewModel(),_e=useSelectedTraceId(),et=useState(j.spans$.get(_e??"")??new ObservableOrderedMap);return Array.from(et.values())},useTraces=()=>Array.from(useState(useTraceViewModel().traces$).values()),useParseTraceOutput=j=>reactExports.useMemo(()=>parseSpanOutput(j),[j]),useEvaluationSpansOfSelectedSpan=()=>{const j=useTraceViewModel(),_e=[],et=useSelectedTrace();return et?(Object.keys(et.evaluations??[]).forEach(tt=>{var nt,ot;const rt=(nt=et==null?void 0:et.evaluations)==null?void 0:nt[tt];if(rt){const it=Array.from(((ot=j.spans$.get(rt.trace_id??""))==null?void 0:ot.getState().values())??[]);_e.push({evaluationName:rt.display_name??tt,evaluationTraces:it})}}),_e):[]},useRootSpanIdOfSelectedSpans=()=>{const j=useSelectedTrace();return j==null?void 0:j.root_span_id},useTableColumnNames=()=>useState(useTraceViewModel().tableColumnNames$),useSetTableColumnNames=()=>useSetState(useTraceViewModel().tableColumnNames$),useTableHiddenColumnKeys=()=>useState(useTraceViewModel().tableHiddenColumnKeys$),useSetTableHiddenColumnKeys=()=>useSetState(useTraceViewModel().tableHiddenColumnKeys$),useIsTraceDetailOpen=()=>useState(useTraceViewModel().isTraceDetailOpen$),useSetIsTraceDetailOpen=()=>useSetState(useTraceViewModel().isTraceDetailOpen$),useTraceDetailRefreshKey=()=>{const j=useTraceViewModel(),_e=useSelectedTraceId(),et=useState(j.spans$),tt=Array.from(useState(et.get(_e??"")??new ObservableOrderedMap).keys());return`${_e}-${tt.join("-")}`},useIsGanttChartOpen=()=>useState(useTraceViewModel().isGanttChartOpen$),useTraceListColumnModifier=()=>useTraceViewModel().traceListColumnModifier,useTraceListShowMetrics=()=>useState(useTraceViewModel().traceListShowMetrics$),useMessagesBySpanId=j=>{var ut,ct,dt,ft,pt;const _e=useTraceViewModel(),et=useState(_e.selectedTraceId$);if(!et)return{inputMessages:[],outputMessages:[]};const tt=(ut=_e.spans$.get(et))==null?void 0:ut.get(j),rt=safeJSONParse(((ct=tt==null?void 0:tt.attributes)==null?void 0:ct.inputs)??"{}"),nt=safeJSONParse(((dt=tt==null?void 0:tt.attributes)==null?void 0:dt.output)??"{}"),ot=(ft=tt==null?void 0:tt.attributes)==null?void 0:ft["llm.generated_message"],it=ot?safeJSONParse(ot):void 0,st=(rt==null?void 0:rt.messages)??[],lt=((pt=nt==null?void 0:nt.choices)==null?void 0:pt.reduce((gt,mt)=>mt.message?[...gt,mt.message]:mt.text?[...gt,{content:mt.text,role:"assistant"}]:gt,[]))??[];return it&<.push(it),{inputMessages:st,outputMessages:lt}},useMessagesOfSelectedSpan=()=>{const j=useSelectedSpanId();return useMessagesBySpanId(j??"")},useLastInputMessageBySpanId=j=>{const{inputMessages:_e}=useMessagesBySpanId(j);return _e.slice(-1)[0]},useGetAllTraces=()=>{const j=useTraceViewModel();return reactExports.useCallback(()=>Array.from(j.traces$.getState().values()),[j.traces$])},useGetAllSpans=()=>{const j=useTraceViewModel();return reactExports.useCallback(()=>{const _e=[];return j.spans$.getState().forEach(tt=>{tt.getState().forEach(nt=>{_e.push(nt)})}),_e},[j.spans$])},useSortColumn=()=>{const j=useTraceViewModel();return useState(j.sortColumn$)},useSetSortColumn=()=>useSetState(useTraceViewModel().sortColumn$),useSortableColumns=()=>useTraceViewModel().sortableColumns,traceDetailErrorInjectionToken=createInjectionToken("traceDetailErrorInjectionToken",()=>{const j=useLocStrings();return jsxRuntimeExports.jsx(MessageBar,{intent:"error",children:j.Failed_to_load_trace})}),traceDetailLoadingInjectionToken=createInjectionToken("traceDetailLoadingInjectionToken",Loading),traceListErrorInjectionToken=createInjectionToken("traceListErrorInjectionToken",()=>{const j=useLocStrings();return jsxRuntimeExports.jsx(MessageBar,{intent:"error",children:j.Failed_to_load_traces})}),traceListLoadingInjectionToken=createInjectionToken("traceListLoadingInjectionToken",Loading),useTraceListViewStatus=()=>{const j=useTraceViewModel();return useState(j.traceListStatus$)},useTraceDetailViewStatus=()=>{const j=useTraceViewModel();return useState(j.traceDetailStatus$)},useTraceListLoadingComponent=()=>{const[j]=useInjected(traceListLoadingInjectionToken);return j},useTraceListErrorComponent=()=>{const[j]=useInjected(traceListErrorInjectionToken);return j},useTraceDetailLoadingComponent=()=>{const[j]=useInjected(traceDetailLoadingInjectionToken);return j},useTraceDetailErrorComponent=()=>{const[j]=useInjected(traceDetailErrorInjectionToken);return j},TREE_NODE_HEIGHT=58,TREE_NODE_WIDTH=400,TREE_NODE_PADDING=10,TREE_NODE_INDENT=48,sortTraceByStartTime=(j,_e)=>j.start_time&&_e.start_time?Date.parse(_e.start_time)-Date.parse(j.start_time):1,defaultGetNodeX=({level:j})=>j*TREE_NODE_INDENT,defaultGetNodeWidth=()=>TREE_NODE_WIDTH,defaultGetNodeHeight=()=>TREE_NODE_HEIGHT,spansToGraphModel=(j,{isEdgesHidden:_e=!1,getNodeX:et=defaultGetNodeX,getNodeWidth:tt=defaultGetNodeWidth,getNodeHeight:rt=defaultGetNodeHeight})=>{const nt=[],ot=[],it=new Map,st=new Set,lt=new Set(j.map(dt=>{var ft;return(ft=dt.context)==null?void 0:ft.span_id}).filter(dt=>!!dt));j.forEach(dt=>{var ft,pt;(ft=dt.context)!=null&&ft.span_id&&(dt.parent_id&<.has(dt.parent_id)?it.has(dt.parent_id)?it.get(dt.parent_id).push(dt):it.set(dt.parent_id,[dt]):st.add((pt=dt.context)==null?void 0:pt.span_id))});const ut=j.filter(dt=>{var ft,pt;return((ft=dt.context)==null?void 0:ft.span_id)&&st.has((pt=dt.context)==null?void 0:pt.span_id)}).sort((dt,ft)=>Date.parse(dt.start_time??"")??0-Date.parse(ft.start_time??"")??0);let ct=0;return ut.sort(sortTraceByStartTime).forEach(dt=>{var pt,gt;const ft=[{span:dt,level:0}];for(;ft.length>0;){const{span:mt,level:bt}=ft.pop(),_t=rt({span:mt,level:bt,index:ct});nt.push({id:((pt=mt==null?void 0:mt.context)==null?void 0:pt.span_id)??"",width:tt({span:mt,level:bt,index:ct}),height:_t,x:et({span:mt,level:bt,index:ct}),y:ct*(_t+TREE_NODE_PADDING),ports:[{id:"port",name:"port",position:[0,.5]}]}),ct++,(gt=mt==null?void 0:mt.context)!=null&>.span_id&&it.has(mt.context.span_id)&&it.get(mt.context.span_id).sort(sortTraceByStartTime).forEach(xt=>{var yt,Et;!_e&&((yt=mt==null?void 0:mt.context)!=null&&yt.span_id)&&((Et=xt==null?void 0:xt.context)!=null&&Et.span_id)&&ot.push({id:`${mt.context.span_id}-${xt.context.span_id}`,source:mt.context.span_id,sourcePortId:"port",target:xt.context.span_id,targetPortId:"port"}),ft.push({span:xt,level:bt+1})})}}),{graph:GraphModel.fromJSON({nodes:nt,edges:ot}),rootIds:Array.from(st.values())}};class EdgeConfig{render({x1:_e,x2:et,y1:tt,y2:rt,model:nt,data:ot}){if(!ot.nodes.get(nt.source)||!ot.nodes.get(nt.target))return null;const lt=_e+30,ut=et+20,ct=tt+10,dt=`M ${lt} ${ct} L ${lt} ${rt} L ${ut} ${rt}`;return jsxRuntimeExports.jsx("path",{d:dt,stroke:tokens.colorNeutralStrokeAccessible,strokeWidth:1,fill:"none"})}}const GanttTreeNode=({node:j})=>{const _e=bitset.has(GraphNodeStatus.Selected)(j.status),et=bitset.has(GraphNodeStatus.Activated)(j.status);let tt=tokens.colorNeutralStroke1,rt=tokens.colorBrandBackground2,nt=1;return _e&&(tt=tokens.colorBrandStroke2,nt=2,rt=tokens.colorBrandBackground2Pressed),et&&(rt=tokens.colorBrandBackground2Hover),jsxRuntimeExports.jsx("foreignObject",{x:j.x,y:j.y,width:j.width,height:j.height,style:{border:`${nt}px solid ${tt}`,backgroundColor:rt,borderRadius:10,paddingLeft:10},children:jsxRuntimeExports.jsx("div",{style:{height:"100%",width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"nowrap",cursor:"pointer"}})})};class GanttNodeConfig{constructor(_e){this.options=_e}render(_e){const et=this.options.spans.find(tt=>{var rt;return((rt=tt==null?void 0:tt.context)==null?void 0:rt.span_id)===_e.model.id});return et?jsxRuntimeExports.jsx(GanttTreeNode,{node:_e.model,span:et}):null}getMinHeight(){return 0}getMinWidth(){return 0}}const GanttTimeline=({startMs:j,endMs:_e})=>{const et=_e-j,tt=Math.pow(10,Math.floor(Math.log10(et))-1),rt=Math.ceil(et/tt),nt=[],ot=[];for(let it=0;itjsxRuntimeExports.jsx("div",{style:{width:"100%",height:"100%"},children:jsxRuntimeExports.jsx(ReactDagEditor,{state:j,dispatch:_e,style:{height:"100%",flexGrow:1,display:"flex"},children:jsxRuntimeExports.jsx(Graph,{canvasMouseMode:CanvasMouseMode.Pan})})}),GanttView=()=>{var ft;const j=useSpansOfSelectedTrace(),_e=useSetSelectedSpanId(),et=useSelectedSpanId(),tt=pt=>(gt,mt)=>(mt&&mt.type===GraphNodeEvent.Click&&_e(mt.node.id),pt(gt,mt)),rt=GraphConfigBuilder.default().registerNode(()=>new GanttNodeConfig({spans:j})).registerPort(()=>new PortConfig).registerEdge(()=>new EdgeConfig).build();previewMode.add(GraphFeatures.ClickNodeToSelect);const[ot,it]=useGraphReducer({data:GraphModel.empty(),settings:{features:previewMode,graphConfig:rt}},tt),st=((ft=ot.viewport.rect)==null?void 0:ft.width)||1200;let lt=Number.MAX_SAFE_INTEGER,ut=0;j.forEach(pt=>{const gt=Date.parse(pt.start_time??"");gtut&&(ut=mt)});const ct=reactExports.useCallback(({span:pt})=>st/(ut-lt)*(Date.parse(pt.start_time??"")-lt),[ut,st,lt]),dt=reactExports.useCallback(({span:pt})=>st/(ut-lt)*(Date.parse(pt.end_time??"")-Date.parse(pt.start_time??"")),[ut,st,lt]);return reactExports.useEffect(()=>{it({type:GraphCanvasEvent.SetData,data:spansToGraphModel(j,{isEdgesHidden:!0,getNodeX:ct,getNodeWidth:dt,getNodeHeight:()=>24}).graph.selectNodes(pt=>pt.id===et)})},[]),reactExports.useEffect(()=>{et&&it({type:GraphNodeEvent.Select,nodes:[et]})},[et]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(GanttTimeline,{startMs:lt,endMs:ut}),jsxRuntimeExports.jsx(TreeGraph,{state:ot,dispatch:it})]})},useNodeDetailClasses=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%"},headerWrapper:{display:"flex",boxSizing:"border-box",width:"100%",...shorthands.padding("12px","12px",0,"12px"),flexDirection:"row",alignItems:"center",...shorthands.gap("12px")},headerTitle:{flexGrow:1,flexShrink:1,...shorthands.overflow("hidden"),whiteSpace:"nowrap",textOverflow:"ellipsis"},headerItem:{display:"flex",alignItems:"center"},tabDivider:{...shorthands.flex("none"),...shorthands.padding(0,"12px")},content:{...shorthands.flex(1),...shorthands.padding("12px"),...shorthands.overflow("auto")},panels:{...shorthands.padding(0,"10px"),"& th":{textAlign:"left",...shorthands.padding(0,"30px",0,0)}},cardWrapper:{backgroundColor:tokens.colorNeutralBackground3},cardTitle:{fontSize:"16px",fontWeight:600},innerCardWrapper:{...shorthands.padding("16px"),...shorthands.border("1px","solid",tokens.colorNeutralForeground1),...shorthands.borderRadius("8px")}}),useRetrievalNodeDetailClasses=makeStyles({accordionHeader:{"& button":{...shorthands.padding(0),fontWeight:600}}}),getToolTypeFromSpan=j=>{var et;const _e=(et=j==null?void 0:j.attributes)==null?void 0:et.span_type;return _e==null?void 0:_e.split(".").pop()};function isObject$2(j){return Object.prototype.toString.call(j)==="[object Object]"}function objectSize(j){return Array.isArray(j)?j.length:isObject$2(j)?Object.keys(j).length:0}function stringifyForCopying(j,_e){if(typeof j=="string")return j;try{return JSON.stringify(j,(et,tt)=>{switch(typeof tt){case"bigint":return String(tt)+"n";case"number":case"boolean":case"object":case"string":return tt;default:return String(tt)}},_e)}catch(et){return`${et.name}: ${et.message}`||"JSON.stringify failed"}}function isCollapsed(j,_e,et,tt,rt,nt){if(nt&&nt.collapsed!==void 0)return!!nt.collapsed;if(typeof tt=="boolean")return tt;if(typeof tt=="number"&&_e>tt)return!0;const ot=objectSize(j);if(typeof tt=="function"){const it=safeCall(tt,[{node:j,depth:_e,indexOrName:et,size:ot}]);if(typeof it=="boolean")return it}return!!(Array.isArray(j)&&ot>rt||isObject$2(j)&&ot>rt)}function isCollapsed_largeArray(j,_e,et,tt,rt,nt){if(nt&&nt.collapsed!==void 0)return!!nt.collapsed;if(typeof tt=="boolean")return tt;if(typeof tt=="number"&&_e>tt)return!0;const ot=Math.ceil(j.length/100);if(typeof tt=="function"){const it=safeCall(tt,[{node:j,depth:_e,indexOrName:et,size:ot}]);if(typeof it=="boolean")return it}return!!(Array.isArray(j)&&ot>rt||isObject$2(j)&&ot>rt)}function ifDisplay(j,_e,et){return typeof j=="boolean"?j:!!(typeof j=="number"&&_e>j||j==="collapsed"&&et||j==="expanded"&&!et)}function safeCall(j,_e){try{return j(..._e)}catch(et){reportError(et)}}function editableAdd(j){if(j===!0||isObject$2(j)&&j.add===!0)return!0}function editableEdit(j){if(j===!0||isObject$2(j)&&j.edit===!0)return!0}function editableDelete(j){if(j===!0||isObject$2(j)&&j.delete===!0)return!0}function isReactComponent(j){return typeof j=="function"}function customAdd(j){return!j||j.add===void 0||!!j.add}function customEdit(j){return!j||j.edit===void 0||!!j.edit}function customDelete(j){return!j||j.delete===void 0||!!j.delete}function customCopy(j){return!j||j.enableClipboard===void 0||!!j.enableClipboard}function customMatchesURL(j){return!j||j.matchesURL===void 0||!!j.matchesURL}function resolveEvalFailedNewValue(j,_e){return j==="string"?_e.trim().replace(/^\"([\s\S]+?)\"$/,"$1"):_e}var _path$8;function _extends$8$1(){return _extends$8$1=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{rt.stopPropagation();const nt=_e(j);typeof nt=="string"&&nt&&navigator.clipboard.writeText(nt),tt(!0),setTimeout(()=>tt(!1),3e3)},className:"json-view--copy"})}function NameValue({indexOrName:j,value:_e,depth:et,parent:tt,deleteHandle:rt,editHandle:nt}){return jsxRuntimeExports.jsxs("div",Object.assign({className:"json-view--pair"},{children:[jsxRuntimeExports.jsx("span",Object.assign({className:typeof j=="number"?"json-view--index":"json-view--property"},{children:j})),":"," ",jsxRuntimeExports.jsx(JsonNode,{node:_e,depth:et+1,deleteHandle:rt,editHandle:nt,parent:tt,indexOrName:j})]}))}var _path$5,_path2$4;function _extends$5$1(){return _extends$5$1=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{j[_t]=xt,lt&<({newValue:xt,oldValue:yt,depth:et,src:st,indexOrName:_t,parentType:"array"}),ut&&ut({type:"edit",depth:et,src:st,indexOrName:_t,parentType:"array"}),ct()},[_e,lt,ut,ct]),mt=_t=>{j.splice(_t,1),ct()},bt=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!ft&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>pt(!0),className:"jv-size-chevron"},{children:[ifDisplay(dt,et,ft)&&jsxRuntimeExports.jsxs("span",Object.assign({className:"jv-size"},{children:[objectSize(_e)," Items"]})),jsxRuntimeExports.jsx(SvgAngleDown,{className:"jv-chevron"})]})),!ft&&it&&customCopy(nt)&&jsxRuntimeExports.jsx(CopyButton$1,{node:_e})]});return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("span",{children:"["}),bt,ft?jsxRuntimeExports.jsxs("button",Object.assign({onClick:()=>pt(!1),className:"jv-button"},{children:[ot," ... ",ot+_e.length-1]})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:_e.map((_t,xt)=>jsxRuntimeExports.jsx(NameValue,{indexOrName:xt+ot,value:_t,depth:et,parent:_e,deleteHandle:mt,editHandle:gt},String(tt)+String(xt)))})),jsxRuntimeExports.jsx("span",{children:"]"})]})}function LargeArray({node:j,depth:_e,deleteHandle:et,indexOrName:tt,customOptions:rt}){const nt=[];for(let Nt=0;Nt{_t(isCollapsed_largeArray(j,_e,tt,ot,st,rt))},[ot,st]);const[xt,yt]=reactExports.useState(!1),Et=()=>{yt(!1),et&&et(tt),ut&&ut({value:j,depth:_e,src:ct,indexOrName:tt,parentType:"array"}),pt&&pt({type:"delete",depth:_e,src:ct,indexOrName:tt,parentType:"array"})},[St,Tt]=reactExports.useState(!1),kt=()=>{const Nt=j;Nt.push(null),dt&&dt({indexOrName:Nt.length-1,depth:_e,src:ct,parentType:"array"}),pt&&pt({type:"add",indexOrName:Nt.length-1,depth:_e,src:ct,parentType:"array"}),gt()},$t=xt||St,Ct=()=>{yt(!1),Tt(!1)},It=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!bt&&!$t&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!0),className:"jv-size-chevron"},{children:[ifDisplay(mt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({className:"jv-size"},{children:[j.length," Items"]})),jsxRuntimeExports.jsx(SvgAngleDown,{className:"jv-chevron"})]})),$t&&jsxRuntimeExports.jsx(SvgDone,{className:"json-view--edit",style:{display:"inline-block"},onClick:St?kt:Et}),$t&&jsxRuntimeExports.jsx(SvgCancel,{className:"json-view--edit",style:{display:"inline-block"},onClick:Ct}),!bt&&!$t&&it&&customCopy(rt)&&jsxRuntimeExports.jsx(CopyButton$1,{node:j}),!bt&&!$t&&editableAdd(lt)&&customAdd(rt)&&jsxRuntimeExports.jsx(SvgAddSquare,{className:"json-view--edit",onClick:()=>{kt()}}),!bt&&!$t&&editableDelete(lt)&&customDelete(rt)&&et&&jsxRuntimeExports.jsx(SvgTrash,{className:"json-view--edit",onClick:()=>yt(!0)})]});return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:"["}),It,bt?jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>_t(!1),className:"jv-button"},{children:"..."})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:nt.map((Nt,Ot)=>jsxRuntimeExports.jsx(LargeArrayNode,{originNode:j,node:Nt,depth:_e,index:Ot,startIndex:Ot*100},String(tt)+String(Ot)))})),jsxRuntimeExports.jsx("span",{children:"]"}),bt&&ifDisplay(mt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!1),className:"jv-size"},{children:[j.length," Items"]}))]})}function ObjectNode({node:j,depth:_e,indexOrName:et,deleteHandle:tt,customOptions:rt}){if(Array.isArray(j)&&j.length>100)return jsxRuntimeExports.jsx(LargeArray,{node:j,depth:_e,indexOrName:et,deleteHandle:tt,customOptions:rt});const{collapsed:nt,enableClipboard:ot,collapseObjectsAfterLength:it,editable:st,onDelete:lt,src:ut,onAdd:ct,onEdit:dt,onChange:ft,forceUpdate:pt,displaySize:gt}=reactExports.useContext(JsonViewContext),mt=isObject$2(j),[bt,_t]=reactExports.useState(isCollapsed(j,_e,et,nt,it,rt));reactExports.useEffect(()=>{_t(isCollapsed(j,_e,et,nt,it,rt))},[nt,it]);const xt=reactExports.useCallback((Rt,Lt,Pt)=>{Array.isArray(j)?j[+Rt]=Lt:j&&(j[Rt]=Lt),dt&&dt({newValue:Lt,oldValue:Pt,depth:_e,src:ut,indexOrName:Rt,parentType:mt?"object":"array"}),ft&&ft({type:"edit",depth:_e,src:ut,indexOrName:Rt,parentType:mt?"object":"array"}),pt()},[j,dt,ft,pt]),yt=Rt=>{Array.isArray(j)?j.splice(+Rt,1):j&&delete j[Rt],pt()},[Et,St]=reactExports.useState(!1),Tt=()=>{St(!1),tt&&tt(et),lt&<({value:j,depth:_e,src:ut,indexOrName:et,parentType:mt?"object":"array"}),ft&&ft({type:"delete",depth:_e,src:ut,indexOrName:et,parentType:mt?"object":"array"})},[kt,$t]=reactExports.useState(!1),Ct=reactExports.useRef(null),It=()=>{var Rt;if(mt){const Lt=(Rt=Ct.current)===null||Rt===void 0?void 0:Rt.value;Lt&&(j[Lt]=null,Ct.current&&(Ct.current.value=""),$t(!1),ct&&ct({indexOrName:Lt,depth:_e,src:ut,parentType:"object"}),ft&&ft({type:"add",indexOrName:Lt,depth:_e,src:ut,parentType:"object"}))}else if(Array.isArray(j)){const Lt=j;Lt.push(null),ct&&ct({indexOrName:Lt.length-1,depth:_e,src:ut,parentType:"array"}),ft&&ft({type:"add",indexOrName:Lt.length-1,depth:_e,src:ut,parentType:"array"})}pt()},Nt=Rt=>{Rt.key==="Enter"?(Rt.preventDefault(),It()):Rt.key==="Escape"&&jt()},Ot=Et||kt,jt=()=>{St(!1),$t(!1)},Mt=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!bt&&!Ot&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!0),className:"jv-size-chevron"},{children:[ifDisplay(gt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({className:"jv-size"},{children:[objectSize(j)," Items"]})),jsxRuntimeExports.jsx(SvgAngleDown,{className:"jv-chevron"})]})),kt&&mt&&jsxRuntimeExports.jsx("input",{className:"json-view--input",placeholder:"property",ref:Ct,onKeyDown:Nt}),Ot&&jsxRuntimeExports.jsx(SvgDone,{className:"json-view--edit",style:{display:"inline-block"},onClick:kt?It:Tt}),Ot&&jsxRuntimeExports.jsx(SvgCancel,{className:"json-view--edit",style:{display:"inline-block"},onClick:jt}),!bt&&!Ot&&ot&&customCopy(rt)&&jsxRuntimeExports.jsx(CopyButton$1,{node:j}),!bt&&!Ot&&editableAdd(st)&&customAdd(rt)&&jsxRuntimeExports.jsx(SvgAddSquare,{className:"json-view--edit",onClick:()=>{mt?($t(!0),setTimeout(()=>{var Rt;return(Rt=Ct.current)===null||Rt===void 0?void 0:Rt.focus()})):It()}}),!bt&&!Ot&&editableDelete(st)&&customDelete(rt)&&tt&&jsxRuntimeExports.jsx(SvgTrash,{className:"json-view--edit",onClick:()=>St(!0)})]});return Array.isArray(j)?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:"["}),Mt,bt?jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>_t(!1),className:"jv-button"},{children:"..."})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:j.map((Rt,Lt)=>jsxRuntimeExports.jsx(NameValue,{indexOrName:Lt,value:Rt,depth:_e,parent:j,deleteHandle:yt,editHandle:xt},String(et)+String(Lt)))})),jsxRuntimeExports.jsx("span",{children:"]"}),bt&&ifDisplay(gt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!1),className:"jv-size"},{children:[objectSize(j)," Items"]}))]}):mt?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:"{"}),Mt,bt?jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>_t(!1),className:"jv-button"},{children:"..."})):jsxRuntimeExports.jsx("div",Object.assign({className:"jv-indent"},{children:Object.entries(j).map(([Rt,Lt])=>jsxRuntimeExports.jsx(NameValue,{indexOrName:Rt,value:Lt,depth:_e,parent:j,deleteHandle:yt,editHandle:xt},String(et)+String(Rt)))})),jsxRuntimeExports.jsx("span",{children:"}"}),bt&&ifDisplay(gt,_e,bt)&&jsxRuntimeExports.jsxs("span",Object.assign({onClick:()=>_t(!1),className:"jv-size"},{children:[objectSize(j)," Items"]}))]}):null}const LongString=React.forwardRef(({str:j,className:_e,ctrlClick:et},tt)=>{let{collapseStringMode:rt,collapseStringsAfterLength:nt}=reactExports.useContext(JsonViewContext);const[ot,it]=reactExports.useState(!0);nt=nt>0?nt:0;const st=j.replace(/\s+/g," "),lt=ut=>{(ut.ctrlKey||ut.metaKey)&&et?et(ut):it(!ot)};if(j.length<=nt)return jsxRuntimeExports.jsxs("span",Object.assign({className:_e,onClick:et},{children:['"',j,'"']}));if(rt==="address")return j.length<=10?jsxRuntimeExports.jsxs("span",Object.assign({className:_e,onClick:et},{children:['"',j,'"']})):jsxRuntimeExports.jsxs("span",Object.assign({onClick:lt,className:_e+" cursor-pointer"},{children:['"',ot?st.slice(0,6)+"..."+st.slice(-4):j,'"']}));if(rt==="directly")return jsxRuntimeExports.jsxs("span",Object.assign({onClick:lt,className:_e+" cursor-pointer"},{children:['"',ot?st.slice(0,nt)+"...":j,'"']}));if(rt==="word"){let ut=nt,ct=nt+1,dt=st,ft=1;for(;;){if(/\W/.test(j[ut])){dt=j.slice(0,ut);break}if(/\W/.test(j[ct])){dt=j.slice(0,ct);break}if(ft===6){dt=j.slice(0,nt);break}ft++,ut--,ct++}return jsxRuntimeExports.jsxs("span",Object.assign({onClick:lt,className:_e+" cursor-pointer"},{children:['"',ot?dt+"...":j,'"']}))}return jsxRuntimeExports.jsxs("span",Object.assign({className:_e},{children:['"',j,'"']}))});var _path$1;function _extends$1$1(){return _extends$1$1=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{setEditing(!0),setTimeout(()=>{var j,_e;(j=window.getSelection())===null||j===void 0||j.selectAllChildren(valueRef.current),(_e=valueRef.current)===null||_e===void 0||_e.focus()})},done=reactExports.useCallback(()=>{const newValue=valueRef.current.innerText;try{const evalValue=eval(newValue);editHandle&&editHandle(indexOrName,evalValue,node)}catch(j){const _e=resolveEvalFailedNewValue(type,newValue);editHandle&&editHandle(indexOrName,_e,node)}setEditing(!1)},[editHandle]),cancel=()=>{setEditing(!1),setDeleting(!1)},deleteHandle=()=>{setDeleting(!1),_deleteHandle&&_deleteHandle(indexOrName),onDelete&&onDelete({value:node,depth,src,indexOrName,parentType:Array.isArray(parent)?"array":"object"}),onChange&&onChange({depth,src,indexOrName,parentType:Array.isArray(parent)?"array":"object",type:"delete"})},handleKeyDown=reactExports.useCallback(j=>{j.key==="Enter"?(j.preventDefault(),done()):j.key==="Escape"&&cancel()},[done]),isEditing=editing||deleting,ctrlClick=!isEditing&&editableEdit(editable)&&customEdit(customReturn)&&editHandle?j=>{(j.ctrlKey||j.metaKey)&&edit()}:void 0,Icons=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[isEditing&&jsxRuntimeExports.jsx(SvgDone,{className:"json-view--edit",style:{display:"inline-block"},onClick:deleting?deleteHandle:done}),isEditing&&jsxRuntimeExports.jsx(SvgCancel,{className:"json-view--edit",style:{display:"inline-block"},onClick:cancel}),!isEditing&&enableClipboard&&customCopy(customReturn)&&jsxRuntimeExports.jsx(CopyButton$1,{node}),!isEditing&&matchesURL&&type==="string"&&urlRegExp.test(node)&&customMatchesURL(customReturn)&&jsxRuntimeExports.jsx("a",Object.assign({href:node,target:"_blank",className:"json-view--link"},{children:jsxRuntimeExports.jsx(SvgLink,{})})),!isEditing&&editableEdit(editable)&&customEdit(customReturn)&&editHandle&&jsxRuntimeExports.jsx(SvgEdit,{className:"json-view--edit",onClick:edit}),!isEditing&&editableDelete(editable)&&customDelete(customReturn)&&_deleteHandle&&jsxRuntimeExports.jsx(SvgTrash,{className:"json-view--edit",onClick:()=>setDeleting(!0)})]});let className="json-view--string";switch(typeof(customReturn==null?void 0:customReturn.className)=="string"&&(className+=" "+customReturn.className),type){case"number":case"bigint":className="json-view--number";break;case"boolean":className="json-view--boolean";break;case"object":className="json-view--null";break}deleting&&(className+=" json-view--deleting");let displayValue=String(node);type==="bigint"&&(displayValue+="n");const EditingElement=reactExports.useMemo(()=>jsxRuntimeExports.jsx("span",{contentEditable:!0,className,dangerouslySetInnerHTML:{__html:type==="string"?`"${displayValue}"`:displayValue},ref:valueRef,onKeyDown:handleKeyDown}),[displayValue,type,handleKeyDown]);return type==="string"?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[editing?EditingElement:node.length>collapseStringsAfterLength?jsxRuntimeExports.jsx(LongString,{str:node,ref:valueRef,className,ctrlClick}):jsxRuntimeExports.jsxs("span",Object.assign({className,onClick:ctrlClick},{children:['"',displayValue,'"']})),Icons]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[editing?EditingElement:jsxRuntimeExports.jsx("span",Object.assign({className,onClick:ctrlClick},{children:displayValue})),Icons]})}}const defaultURLRegExp=/^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/,JsonViewContext=reactExports.createContext({src:void 0,collapseStringsAfterLength:99,collapseStringMode:"directly",collapseObjectsAfterLength:20,collapsed:!1,enableClipboard:!0,editable:!1,onEdit:void 0,onDelete:void 0,onAdd:void 0,onChange:void 0,forceUpdate:()=>{},customizeNode:void 0,customizeCopy:()=>{},displaySize:void 0,matchesURL:!1,urlRegExp:defaultURLRegExp});function JsonView({src:j,collapseStringsAfterLength:_e=99,collapseStringMode:et="directly",collapseObjectsAfterLength:tt=99,collapsed:rt,enableClipboard:nt=!0,editable:ot=!1,onEdit:it,onDelete:st,onAdd:lt,onChange:ut,dark:ct=!1,theme:dt="default",customizeNode:ft,customizeCopy:pt=stringifyForCopying,displaySize:gt,style:mt,className:bt,matchesURL:_t=!1,urlRegExp:xt=defaultURLRegExp}){const[yt,Et]=reactExports.useState(0),St=reactExports.useCallback(()=>Et(Tt=>++Tt),[]);return jsxRuntimeExports.jsx(JsonViewContext.Provider,Object.assign({value:{src:j,collapseStringsAfterLength:_e,collapseStringMode:et,collapseObjectsAfterLength:tt,collapsed:rt,enableClipboard:nt,editable:ot,onEdit:it,onDelete:st,onAdd:lt,onChange:ut,forceUpdate:St,customizeNode:ft,customizeCopy:pt,displaySize:gt,matchesURL:_t,urlRegExp:xt}},{children:jsxRuntimeExports.jsx("code",Object.assign({className:"json-view"+(ct?" dark":"")+(dt&&dt!=="default"?" json-view_"+dt:"")+(bt?" "+bt:""),style:mt},{children:jsxRuntimeExports.jsx(JsonNode,{node:j,depth:1})}))}))}const TraceViewThemeContext=reactExports.createContext(!1),useIsDark=()=>reactExports.useContext(TraceViewThemeContext),JsonNodeCard=({title:j,src:_e,wrapperStyle:et={}})=>{let tt="";if(typeof _e=="string")try{tt=JSON.parse(_e)}catch{tt=_e}else typeof _e=="object"&&(tt=_e);const rt=useIsDark();return jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12,...et},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:j})})}),jsxRuntimeExports.jsx(JsonView,{src:tt,theme:"vscode",dark:rt})]})},DefaultNodeInfo=()=>{var _e,et;const j=useSelectedSpan();return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(JsonNodeCard,{title:"Input",src:(_e=j==null?void 0:j.attributes)==null?void 0:_e.inputs}),jsxRuntimeExports.jsx(JsonNodeCard,{title:"Output",src:(et=j==null?void 0:j.attributes)==null?void 0:et.output})]})},BlockquoteType="blockquote",BreakType="break",CodeType="code",DefinitionType="definition",DeleteType="delete",EmphasisType="emphasis",HeadingType="heading",HtmlType="html";var HtmlContentType;(function(j){j.CDATA="cdata",j.Closing="closing",j.Comment="comment",j.Declaration="declaration",j.Instruction="instruction",j.Open="open"})(HtmlContentType||(HtmlContentType={}));const ImageReferenceType="imageReference",ImageType$1="image",InlineCodeType="inlineCode",LinkReferenceType="linkReference",LinkType="link",ListItemType="listItem";var TaskStatus;(function(j){j.TODO="todo",j.DOING="doing",j.DONE="done"})(TaskStatus||(TaskStatus={}));const ListType="list",ParagraphType$1="paragraph",StrongType="strong",TableType="table",TextType$1="text",ThematicBreakType="thematicBreak";var AsciiCodePoint;(function(j){j[j.NUL=0]="NUL",j[j.SOH=1]="SOH",j[j.STX=2]="STX",j[j.ETX=3]="ETX",j[j.EOT=4]="EOT",j[j.ENQ=5]="ENQ",j[j.ACK=6]="ACK",j[j.BEL=7]="BEL",j[j.BS=8]="BS",j[j.HT=9]="HT",j[j.LF=10]="LF",j[j.VT=11]="VT",j[j.FF=12]="FF",j[j.CR=13]="CR",j[j.SO=14]="SO",j[j.SI=15]="SI",j[j.DLE=16]="DLE",j[j.DC1=17]="DC1",j[j.DC2=18]="DC2",j[j.DC3=19]="DC3",j[j.DC4=20]="DC4",j[j.NAK=21]="NAK",j[j.SYN=22]="SYN",j[j.ETB=23]="ETB",j[j.CAN=24]="CAN",j[j.EM=25]="EM",j[j.SUB=26]="SUB",j[j.ESC=27]="ESC",j[j.FS=28]="FS",j[j.GS=29]="GS",j[j.RS=30]="RS",j[j.US=31]="US",j[j.SPACE=32]="SPACE",j[j.EXCLAMATION_MARK=33]="EXCLAMATION_MARK",j[j.DOUBLE_QUOTE=34]="DOUBLE_QUOTE",j[j.NUMBER_SIGN=35]="NUMBER_SIGN",j[j.DOLLAR_SIGN=36]="DOLLAR_SIGN",j[j.PERCENT_SIGN=37]="PERCENT_SIGN",j[j.AMPERSAND=38]="AMPERSAND",j[j.SINGLE_QUOTE=39]="SINGLE_QUOTE",j[j.OPEN_PARENTHESIS=40]="OPEN_PARENTHESIS",j[j.CLOSE_PARENTHESIS=41]="CLOSE_PARENTHESIS",j[j.ASTERISK=42]="ASTERISK",j[j.PLUS_SIGN=43]="PLUS_SIGN",j[j.COMMA=44]="COMMA",j[j.MINUS_SIGN=45]="MINUS_SIGN",j[j.DOT=46]="DOT",j[j.SLASH=47]="SLASH",j[j.DIGIT0=48]="DIGIT0",j[j.DIGIT1=49]="DIGIT1",j[j.DIGIT2=50]="DIGIT2",j[j.DIGIT3=51]="DIGIT3",j[j.DIGIT4=52]="DIGIT4",j[j.DIGIT5=53]="DIGIT5",j[j.DIGIT6=54]="DIGIT6",j[j.DIGIT7=55]="DIGIT7",j[j.DIGIT8=56]="DIGIT8",j[j.DIGIT9=57]="DIGIT9",j[j.COLON=58]="COLON",j[j.SEMICOLON=59]="SEMICOLON",j[j.OPEN_ANGLE=60]="OPEN_ANGLE",j[j.EQUALS_SIGN=61]="EQUALS_SIGN",j[j.CLOSE_ANGLE=62]="CLOSE_ANGLE",j[j.QUESTION_MARK=63]="QUESTION_MARK",j[j.AT_SIGN=64]="AT_SIGN",j[j.UPPERCASE_A=65]="UPPERCASE_A",j[j.UPPERCASE_B=66]="UPPERCASE_B",j[j.UPPERCASE_C=67]="UPPERCASE_C",j[j.UPPERCASE_D=68]="UPPERCASE_D",j[j.UPPERCASE_E=69]="UPPERCASE_E",j[j.UPPERCASE_F=70]="UPPERCASE_F",j[j.UPPERCASE_G=71]="UPPERCASE_G",j[j.UPPERCASE_H=72]="UPPERCASE_H",j[j.UPPERCASE_I=73]="UPPERCASE_I",j[j.UPPERCASE_J=74]="UPPERCASE_J",j[j.UPPERCASE_K=75]="UPPERCASE_K",j[j.UPPERCASE_L=76]="UPPERCASE_L",j[j.UPPERCASE_M=77]="UPPERCASE_M",j[j.UPPERCASE_N=78]="UPPERCASE_N",j[j.UPPERCASE_O=79]="UPPERCASE_O",j[j.UPPERCASE_P=80]="UPPERCASE_P",j[j.UPPERCASE_Q=81]="UPPERCASE_Q",j[j.UPPERCASE_R=82]="UPPERCASE_R",j[j.UPPERCASE_S=83]="UPPERCASE_S",j[j.UPPERCASE_T=84]="UPPERCASE_T",j[j.UPPERCASE_U=85]="UPPERCASE_U",j[j.UPPERCASE_V=86]="UPPERCASE_V",j[j.UPPERCASE_W=87]="UPPERCASE_W",j[j.UPPERCASE_X=88]="UPPERCASE_X",j[j.UPPERCASE_Y=89]="UPPERCASE_Y",j[j.UPPERCASE_Z=90]="UPPERCASE_Z",j[j.OPEN_BRACKET=91]="OPEN_BRACKET",j[j.BACKSLASH=92]="BACKSLASH",j[j.CLOSE_BRACKET=93]="CLOSE_BRACKET",j[j.CARET=94]="CARET",j[j.UNDERSCORE=95]="UNDERSCORE",j[j.BACKTICK=96]="BACKTICK",j[j.LOWERCASE_A=97]="LOWERCASE_A",j[j.LOWERCASE_B=98]="LOWERCASE_B",j[j.LOWERCASE_C=99]="LOWERCASE_C",j[j.LOWERCASE_D=100]="LOWERCASE_D",j[j.LOWERCASE_E=101]="LOWERCASE_E",j[j.LOWERCASE_F=102]="LOWERCASE_F",j[j.LOWERCASE_G=103]="LOWERCASE_G",j[j.LOWERCASE_H=104]="LOWERCASE_H",j[j.LOWERCASE_I=105]="LOWERCASE_I",j[j.LOWERCASE_J=106]="LOWERCASE_J",j[j.LOWERCASE_K=107]="LOWERCASE_K",j[j.LOWERCASE_L=108]="LOWERCASE_L",j[j.LOWERCASE_M=109]="LOWERCASE_M",j[j.LOWERCASE_N=110]="LOWERCASE_N",j[j.LOWERCASE_O=111]="LOWERCASE_O",j[j.LOWERCASE_P=112]="LOWERCASE_P",j[j.LOWERCASE_Q=113]="LOWERCASE_Q",j[j.LOWERCASE_R=114]="LOWERCASE_R",j[j.LOWERCASE_S=115]="LOWERCASE_S",j[j.LOWERCASE_T=116]="LOWERCASE_T",j[j.LOWERCASE_U=117]="LOWERCASE_U",j[j.LOWERCASE_V=118]="LOWERCASE_V",j[j.LOWERCASE_W=119]="LOWERCASE_W",j[j.LOWERCASE_X=120]="LOWERCASE_X",j[j.LOWERCASE_Y=121]="LOWERCASE_Y",j[j.LOWERCASE_Z=122]="LOWERCASE_Z",j[j.OPEN_BRACE=123]="OPEN_BRACE",j[j.VERTICAL_SLASH=124]="VERTICAL_SLASH",j[j.CLOSE_BRACE=125]="CLOSE_BRACE",j[j.TILDE=126]="TILDE",j[j.DELETE=127]="DELETE"})(AsciiCodePoint||(AsciiCodePoint={}));const foldingCaseCodeMap={µ:"μ",À:"à",Á:"á",Â:"â",Ã:"ã",Ä:"ä",Å:"å",Æ:"æ",Ç:"ç",È:"è",É:"é",Ê:"ê",Ë:"ë",Ì:"ì",Í:"í",Î:"î",Ï:"ï",Ð:"ð",Ñ:"ñ",Ò:"ò",Ó:"ó",Ô:"ô",Õ:"õ",Ö:"ö",Ø:"ø",Ù:"ù",Ú:"ú",Û:"û",Ü:"ü",Ý:"ý",Þ:"þ",Ā:"ā",Ă:"ă",Ą:"ą",Ć:"ć",Ĉ:"ĉ",Ċ:"ċ",Č:"č",Ď:"ď",Đ:"đ",Ē:"ē",Ĕ:"ĕ",Ė:"ė",Ę:"ę",Ě:"ě",Ĝ:"ĝ",Ğ:"ğ",Ġ:"ġ",Ģ:"ģ",Ĥ:"ĥ",Ħ:"ħ",Ĩ:"ĩ",Ī:"ī",Ĭ:"ĭ",Į:"į",IJ:"ij",Ĵ:"ĵ",Ķ:"ķ",Ĺ:"ĺ",Ļ:"ļ",Ľ:"ľ",Ŀ:"ŀ",Ł:"ł",Ń:"ń",Ņ:"ņ",Ň:"ň",Ŋ:"ŋ",Ō:"ō",Ŏ:"ŏ",Ő:"ő",Œ:"œ",Ŕ:"ŕ",Ŗ:"ŗ",Ř:"ř",Ś:"ś",Ŝ:"ŝ",Ş:"ş",Š:"š",Ţ:"ţ",Ť:"ť",Ŧ:"ŧ",Ũ:"ũ",Ū:"ū",Ŭ:"ŭ",Ů:"ů",Ű:"ű",Ų:"ų",Ŵ:"ŵ",Ŷ:"ŷ",Ÿ:"ÿ",Ź:"ź",Ż:"ż",Ž:"ž",ſ:"s",Ɓ:"ɓ",Ƃ:"ƃ",Ƅ:"ƅ",Ɔ:"ɔ",Ƈ:"ƈ",Ɖ:"ɖ",Ɗ:"ɗ",Ƌ:"ƌ",Ǝ:"ǝ",Ə:"ə",Ɛ:"ɛ",Ƒ:"ƒ",Ɠ:"ɠ",Ɣ:"ɣ",Ɩ:"ɩ",Ɨ:"ɨ",Ƙ:"ƙ",Ɯ:"ɯ",Ɲ:"ɲ",Ɵ:"ɵ",Ơ:"ơ",Ƣ:"ƣ",Ƥ:"ƥ",Ʀ:"ʀ",Ƨ:"ƨ",Ʃ:"ʃ",Ƭ:"ƭ",Ʈ:"ʈ",Ư:"ư",Ʊ:"ʊ",Ʋ:"ʋ",Ƴ:"ƴ",Ƶ:"ƶ",Ʒ:"ʒ",Ƹ:"ƹ",Ƽ:"ƽ",DŽ:"dž",Dž:"dž",LJ:"lj",Lj:"lj",NJ:"nj",Nj:"nj",Ǎ:"ǎ",Ǐ:"ǐ",Ǒ:"ǒ",Ǔ:"ǔ",Ǖ:"ǖ",Ǘ:"ǘ",Ǚ:"ǚ",Ǜ:"ǜ",Ǟ:"ǟ",Ǡ:"ǡ",Ǣ:"ǣ",Ǥ:"ǥ",Ǧ:"ǧ",Ǩ:"ǩ",Ǫ:"ǫ",Ǭ:"ǭ",Ǯ:"ǯ",DZ:"dz",Dz:"dz",Ǵ:"ǵ",Ƕ:"ƕ",Ƿ:"ƿ",Ǹ:"ǹ",Ǻ:"ǻ",Ǽ:"ǽ",Ǿ:"ǿ",Ȁ:"ȁ",Ȃ:"ȃ",Ȅ:"ȅ",Ȇ:"ȇ",Ȉ:"ȉ",Ȋ:"ȋ",Ȍ:"ȍ",Ȏ:"ȏ",Ȑ:"ȑ",Ȓ:"ȓ",Ȕ:"ȕ",Ȗ:"ȗ",Ș:"ș",Ț:"ț",Ȝ:"ȝ",Ȟ:"ȟ","Ƞ":"ƞ",Ȣ:"ȣ",Ȥ:"ȥ",Ȧ:"ȧ",Ȩ:"ȩ",Ȫ:"ȫ",Ȭ:"ȭ",Ȯ:"ȯ",Ȱ:"ȱ",Ȳ:"ȳ","Ⱥ":"ⱥ","Ȼ":"ȼ","Ƚ":"ƚ","Ⱦ":"ⱦ","Ɂ":"ɂ","Ƀ":"ƀ","Ʉ":"ʉ","Ʌ":"ʌ","Ɇ":"ɇ","Ɉ":"ɉ","Ɋ":"ɋ","Ɍ":"ɍ","Ɏ":"ɏ","ͅ":"ι","Ͱ":"ͱ","Ͳ":"ͳ","Ͷ":"ͷ","Ϳ":"ϳ",Ά:"ά",Έ:"έ",Ή:"ή",Ί:"ί",Ό:"ό",Ύ:"ύ",Ώ:"ώ",Α:"α",Β:"β",Γ:"γ",Δ:"δ",Ε:"ε",Ζ:"ζ",Η:"η",Θ:"θ",Ι:"ι",Κ:"κ",Λ:"λ",Μ:"μ",Ν:"ν",Ξ:"ξ",Ο:"ο",Π:"π",Ρ:"ρ",Σ:"σ",Τ:"τ",Υ:"υ",Φ:"φ",Χ:"χ",Ψ:"ψ",Ω:"ω",Ϊ:"ϊ",Ϋ:"ϋ",ς:"σ","Ϗ":"ϗ",ϐ:"β",ϑ:"θ",ϕ:"φ",ϖ:"π","Ϙ":"ϙ",Ϛ:"ϛ",Ϝ:"ϝ",Ϟ:"ϟ",Ϡ:"ϡ",Ϣ:"ϣ",Ϥ:"ϥ",Ϧ:"ϧ",Ϩ:"ϩ",Ϫ:"ϫ",Ϭ:"ϭ",Ϯ:"ϯ",ϰ:"κ",ϱ:"ρ","ϴ":"θ","ϵ":"ε","Ϸ":"ϸ","Ϲ":"ϲ","Ϻ":"ϻ","Ͻ":"ͻ","Ͼ":"ͼ","Ͽ":"ͽ",Ѐ:"ѐ",Ё:"ё",Ђ:"ђ",Ѓ:"ѓ",Є:"є",Ѕ:"ѕ",І:"і",Ї:"ї",Ј:"ј",Љ:"љ",Њ:"њ",Ћ:"ћ",Ќ:"ќ",Ѝ:"ѝ",Ў:"ў",Џ:"џ",А:"а",Б:"б",В:"в",Г:"г",Д:"д",Е:"е",Ж:"ж",З:"з",И:"и",Й:"й",К:"к",Л:"л",М:"м",Н:"н",О:"о",П:"п",Р:"р",С:"с",Т:"т",У:"у",Ф:"ф",Х:"х",Ц:"ц",Ч:"ч",Ш:"ш",Щ:"щ",Ъ:"ъ",Ы:"ы",Ь:"ь",Э:"э",Ю:"ю",Я:"я",Ѡ:"ѡ",Ѣ:"ѣ",Ѥ:"ѥ",Ѧ:"ѧ",Ѩ:"ѩ",Ѫ:"ѫ",Ѭ:"ѭ",Ѯ:"ѯ",Ѱ:"ѱ",Ѳ:"ѳ",Ѵ:"ѵ",Ѷ:"ѷ",Ѹ:"ѹ",Ѻ:"ѻ",Ѽ:"ѽ",Ѿ:"ѿ",Ҁ:"ҁ","Ҋ":"ҋ",Ҍ:"ҍ",Ҏ:"ҏ",Ґ:"ґ",Ғ:"ғ",Ҕ:"ҕ",Җ:"җ",Ҙ:"ҙ",Қ:"қ",Ҝ:"ҝ",Ҟ:"ҟ",Ҡ:"ҡ",Ң:"ң",Ҥ:"ҥ",Ҧ:"ҧ",Ҩ:"ҩ",Ҫ:"ҫ",Ҭ:"ҭ",Ү:"ү",Ұ:"ұ",Ҳ:"ҳ",Ҵ:"ҵ",Ҷ:"ҷ",Ҹ:"ҹ",Һ:"һ",Ҽ:"ҽ",Ҿ:"ҿ",Ӏ:"ӏ",Ӂ:"ӂ",Ӄ:"ӄ","Ӆ":"ӆ",Ӈ:"ӈ","Ӊ":"ӊ",Ӌ:"ӌ","Ӎ":"ӎ",Ӑ:"ӑ",Ӓ:"ӓ",Ӕ:"ӕ",Ӗ:"ӗ",Ә:"ә",Ӛ:"ӛ",Ӝ:"ӝ",Ӟ:"ӟ",Ӡ:"ӡ",Ӣ:"ӣ",Ӥ:"ӥ",Ӧ:"ӧ",Ө:"ө",Ӫ:"ӫ",Ӭ:"ӭ",Ӯ:"ӯ",Ӱ:"ӱ",Ӳ:"ӳ",Ӵ:"ӵ","Ӷ":"ӷ",Ӹ:"ӹ","Ӻ":"ӻ","Ӽ":"ӽ","Ӿ":"ӿ","Ԁ":"ԁ","Ԃ":"ԃ","Ԅ":"ԅ","Ԇ":"ԇ","Ԉ":"ԉ","Ԋ":"ԋ","Ԍ":"ԍ","Ԏ":"ԏ","Ԑ":"ԑ","Ԓ":"ԓ","Ԕ":"ԕ","Ԗ":"ԗ","Ԙ":"ԙ","Ԛ":"ԛ","Ԝ":"ԝ","Ԟ":"ԟ","Ԡ":"ԡ","Ԣ":"ԣ","Ԥ":"ԥ","Ԧ":"ԧ","Ԩ":"ԩ","Ԫ":"ԫ","Ԭ":"ԭ","Ԯ":"ԯ",Ա:"ա",Բ:"բ",Գ:"գ",Դ:"դ",Ե:"ե",Զ:"զ",Է:"է",Ը:"ը",Թ:"թ",Ժ:"ժ",Ի:"ի",Լ:"լ",Խ:"խ",Ծ:"ծ",Կ:"կ",Հ:"հ",Ձ:"ձ",Ղ:"ղ",Ճ:"ճ",Մ:"մ",Յ:"յ",Ն:"ն",Շ:"շ",Ո:"ո",Չ:"չ",Պ:"պ",Ջ:"ջ",Ռ:"ռ",Ս:"ս",Վ:"վ",Տ:"տ",Ր:"ր",Ց:"ց",Ւ:"ւ",Փ:"փ",Ք:"ք",Օ:"օ",Ֆ:"ֆ",Ⴀ:"ⴀ",Ⴁ:"ⴁ",Ⴂ:"ⴂ",Ⴃ:"ⴃ",Ⴄ:"ⴄ",Ⴅ:"ⴅ",Ⴆ:"ⴆ",Ⴇ:"ⴇ",Ⴈ:"ⴈ",Ⴉ:"ⴉ",Ⴊ:"ⴊ",Ⴋ:"ⴋ",Ⴌ:"ⴌ",Ⴍ:"ⴍ",Ⴎ:"ⴎ",Ⴏ:"ⴏ",Ⴐ:"ⴐ",Ⴑ:"ⴑ",Ⴒ:"ⴒ",Ⴓ:"ⴓ",Ⴔ:"ⴔ",Ⴕ:"ⴕ",Ⴖ:"ⴖ",Ⴗ:"ⴗ",Ⴘ:"ⴘ",Ⴙ:"ⴙ",Ⴚ:"ⴚ",Ⴛ:"ⴛ",Ⴜ:"ⴜ",Ⴝ:"ⴝ",Ⴞ:"ⴞ",Ⴟ:"ⴟ",Ⴠ:"ⴠ",Ⴡ:"ⴡ",Ⴢ:"ⴢ",Ⴣ:"ⴣ",Ⴤ:"ⴤ",Ⴥ:"ⴥ","Ⴧ":"ⴧ","Ⴭ":"ⴭ",Ḁ:"ḁ",Ḃ:"ḃ",Ḅ:"ḅ",Ḇ:"ḇ",Ḉ:"ḉ",Ḋ:"ḋ",Ḍ:"ḍ",Ḏ:"ḏ",Ḑ:"ḑ",Ḓ:"ḓ",Ḕ:"ḕ",Ḗ:"ḗ",Ḙ:"ḙ",Ḛ:"ḛ",Ḝ:"ḝ",Ḟ:"ḟ",Ḡ:"ḡ",Ḣ:"ḣ",Ḥ:"ḥ",Ḧ:"ḧ",Ḩ:"ḩ",Ḫ:"ḫ",Ḭ:"ḭ",Ḯ:"ḯ",Ḱ:"ḱ",Ḳ:"ḳ",Ḵ:"ḵ",Ḷ:"ḷ",Ḹ:"ḹ",Ḻ:"ḻ",Ḽ:"ḽ",Ḿ:"ḿ",Ṁ:"ṁ",Ṃ:"ṃ",Ṅ:"ṅ",Ṇ:"ṇ",Ṉ:"ṉ",Ṋ:"ṋ",Ṍ:"ṍ",Ṏ:"ṏ",Ṑ:"ṑ",Ṓ:"ṓ",Ṕ:"ṕ",Ṗ:"ṗ",Ṙ:"ṙ",Ṛ:"ṛ",Ṝ:"ṝ",Ṟ:"ṟ",Ṡ:"ṡ",Ṣ:"ṣ",Ṥ:"ṥ",Ṧ:"ṧ",Ṩ:"ṩ",Ṫ:"ṫ",Ṭ:"ṭ",Ṯ:"ṯ",Ṱ:"ṱ",Ṳ:"ṳ",Ṵ:"ṵ",Ṷ:"ṷ",Ṹ:"ṹ",Ṻ:"ṻ",Ṽ:"ṽ",Ṿ:"ṿ",Ẁ:"ẁ",Ẃ:"ẃ",Ẅ:"ẅ",Ẇ:"ẇ",Ẉ:"ẉ",Ẋ:"ẋ",Ẍ:"ẍ",Ẏ:"ẏ",Ẑ:"ẑ",Ẓ:"ẓ",Ẕ:"ẕ",ẛ:"ṡ",Ạ:"ạ",Ả:"ả",Ấ:"ấ",Ầ:"ầ",Ẩ:"ẩ",Ẫ:"ẫ",Ậ:"ậ",Ắ:"ắ",Ằ:"ằ",Ẳ:"ẳ",Ẵ:"ẵ",Ặ:"ặ",Ẹ:"ẹ",Ẻ:"ẻ",Ẽ:"ẽ",Ế:"ế",Ề:"ề",Ể:"ể",Ễ:"ễ",Ệ:"ệ",Ỉ:"ỉ",Ị:"ị",Ọ:"ọ",Ỏ:"ỏ",Ố:"ố",Ồ:"ồ",Ổ:"ổ",Ỗ:"ỗ",Ộ:"ộ",Ớ:"ớ",Ờ:"ờ",Ở:"ở",Ỡ:"ỡ",Ợ:"ợ",Ụ:"ụ",Ủ:"ủ",Ứ:"ứ",Ừ:"ừ",Ử:"ử",Ữ:"ữ",Ự:"ự",Ỳ:"ỳ",Ỵ:"ỵ",Ỷ:"ỷ",Ỹ:"ỹ","Ỻ":"ỻ","Ỽ":"ỽ","Ỿ":"ỿ",Ἀ:"ἀ",Ἁ:"ἁ",Ἂ:"ἂ",Ἃ:"ἃ",Ἄ:"ἄ",Ἅ:"ἅ",Ἆ:"ἆ",Ἇ:"ἇ",Ἐ:"ἐ",Ἑ:"ἑ",Ἒ:"ἒ",Ἓ:"ἓ",Ἔ:"ἔ",Ἕ:"ἕ",Ἠ:"ἠ",Ἡ:"ἡ",Ἢ:"ἢ",Ἣ:"ἣ",Ἤ:"ἤ",Ἥ:"ἥ",Ἦ:"ἦ",Ἧ:"ἧ",Ἰ:"ἰ",Ἱ:"ἱ",Ἲ:"ἲ",Ἳ:"ἳ",Ἴ:"ἴ",Ἵ:"ἵ",Ἶ:"ἶ",Ἷ:"ἷ",Ὀ:"ὀ",Ὁ:"ὁ",Ὂ:"ὂ",Ὃ:"ὃ",Ὄ:"ὄ",Ὅ:"ὅ",Ὑ:"ὑ",Ὓ:"ὓ",Ὕ:"ὕ",Ὗ:"ὗ",Ὠ:"ὠ",Ὡ:"ὡ",Ὢ:"ὢ",Ὣ:"ὣ",Ὤ:"ὤ",Ὥ:"ὥ",Ὦ:"ὦ",Ὧ:"ὧ",Ᾰ:"ᾰ",Ᾱ:"ᾱ",Ὰ:"ὰ",Ά:"ά",ι:"ι",Ὲ:"ὲ",Έ:"έ",Ὴ:"ὴ",Ή:"ή",Ῐ:"ῐ",Ῑ:"ῑ",Ὶ:"ὶ",Ί:"ί",Ῠ:"ῠ",Ῡ:"ῡ",Ὺ:"ὺ",Ύ:"ύ",Ῥ:"ῥ",Ὸ:"ὸ",Ό:"ό",Ὼ:"ὼ",Ώ:"ώ",Ω:"ω",K:"k",Å:"å","Ⅎ":"ⅎ","Ⅰ":"ⅰ","Ⅱ":"ⅱ","Ⅲ":"ⅲ","Ⅳ":"ⅳ","Ⅴ":"ⅴ","Ⅵ":"ⅵ","Ⅶ":"ⅶ","Ⅷ":"ⅷ","Ⅸ":"ⅸ","Ⅹ":"ⅹ","Ⅺ":"ⅺ","Ⅻ":"ⅻ","Ⅼ":"ⅼ","Ⅽ":"ⅽ","Ⅾ":"ⅾ","Ⅿ":"ⅿ","Ↄ":"ↄ","Ⓐ":"ⓐ","Ⓑ":"ⓑ","Ⓒ":"ⓒ","Ⓓ":"ⓓ","Ⓔ":"ⓔ","Ⓕ":"ⓕ","Ⓖ":"ⓖ","Ⓗ":"ⓗ","Ⓘ":"ⓘ","Ⓙ":"ⓙ","Ⓚ":"ⓚ","Ⓛ":"ⓛ","Ⓜ":"ⓜ","Ⓝ":"ⓝ","Ⓞ":"ⓞ","Ⓟ":"ⓟ","Ⓠ":"ⓠ","Ⓡ":"ⓡ","Ⓢ":"ⓢ","Ⓣ":"ⓣ","Ⓤ":"ⓤ","Ⓥ":"ⓥ","Ⓦ":"ⓦ","Ⓧ":"ⓧ","Ⓨ":"ⓨ","Ⓩ":"ⓩ","Ⰰ":"ⰰ","Ⰱ":"ⰱ","Ⰲ":"ⰲ","Ⰳ":"ⰳ","Ⰴ":"ⰴ","Ⰵ":"ⰵ","Ⰶ":"ⰶ","Ⰷ":"ⰷ","Ⰸ":"ⰸ","Ⰹ":"ⰹ","Ⰺ":"ⰺ","Ⰻ":"ⰻ","Ⰼ":"ⰼ","Ⰽ":"ⰽ","Ⰾ":"ⰾ","Ⰿ":"ⰿ","Ⱀ":"ⱀ","Ⱁ":"ⱁ","Ⱂ":"ⱂ","Ⱃ":"ⱃ","Ⱄ":"ⱄ","Ⱅ":"ⱅ","Ⱆ":"ⱆ","Ⱇ":"ⱇ","Ⱈ":"ⱈ","Ⱉ":"ⱉ","Ⱊ":"ⱊ","Ⱋ":"ⱋ","Ⱌ":"ⱌ","Ⱍ":"ⱍ","Ⱎ":"ⱎ","Ⱏ":"ⱏ","Ⱐ":"ⱐ","Ⱑ":"ⱑ","Ⱒ":"ⱒ","Ⱓ":"ⱓ","Ⱔ":"ⱔ","Ⱕ":"ⱕ","Ⱖ":"ⱖ","Ⱗ":"ⱗ","Ⱘ":"ⱘ","Ⱙ":"ⱙ","Ⱚ":"ⱚ","Ⱛ":"ⱛ","Ⱜ":"ⱜ","Ⱝ":"ⱝ","Ⱞ":"ⱞ","Ⱡ":"ⱡ","Ɫ":"ɫ","Ᵽ":"ᵽ","Ɽ":"ɽ","Ⱨ":"ⱨ","Ⱪ":"ⱪ","Ⱬ":"ⱬ","Ɑ":"ɑ","Ɱ":"ɱ","Ɐ":"ɐ","Ɒ":"ɒ","Ⱳ":"ⱳ","Ⱶ":"ⱶ","Ȿ":"ȿ","Ɀ":"ɀ","Ⲁ":"ⲁ","Ⲃ":"ⲃ","Ⲅ":"ⲅ","Ⲇ":"ⲇ","Ⲉ":"ⲉ","Ⲋ":"ⲋ","Ⲍ":"ⲍ","Ⲏ":"ⲏ","Ⲑ":"ⲑ","Ⲓ":"ⲓ","Ⲕ":"ⲕ","Ⲗ":"ⲗ","Ⲙ":"ⲙ","Ⲛ":"ⲛ","Ⲝ":"ⲝ","Ⲟ":"ⲟ","Ⲡ":"ⲡ","Ⲣ":"ⲣ","Ⲥ":"ⲥ","Ⲧ":"ⲧ","Ⲩ":"ⲩ","Ⲫ":"ⲫ","Ⲭ":"ⲭ","Ⲯ":"ⲯ","Ⲱ":"ⲱ","Ⲳ":"ⲳ","Ⲵ":"ⲵ","Ⲷ":"ⲷ","Ⲹ":"ⲹ","Ⲻ":"ⲻ","Ⲽ":"ⲽ","Ⲿ":"ⲿ","Ⳁ":"ⳁ","Ⳃ":"ⳃ","Ⳅ":"ⳅ","Ⳇ":"ⳇ","Ⳉ":"ⳉ","Ⳋ":"ⳋ","Ⳍ":"ⳍ","Ⳏ":"ⳏ","Ⳑ":"ⳑ","Ⳓ":"ⳓ","Ⳕ":"ⳕ","Ⳗ":"ⳗ","Ⳙ":"ⳙ","Ⳛ":"ⳛ","Ⳝ":"ⳝ","Ⳟ":"ⳟ","Ⳡ":"ⳡ","Ⳣ":"ⳣ","Ⳬ":"ⳬ","Ⳮ":"ⳮ","Ⳳ":"ⳳ","Ꙁ":"ꙁ","Ꙃ":"ꙃ","Ꙅ":"ꙅ","Ꙇ":"ꙇ","Ꙉ":"ꙉ","Ꙋ":"ꙋ","Ꙍ":"ꙍ","Ꙏ":"ꙏ","Ꙑ":"ꙑ","Ꙓ":"ꙓ","Ꙕ":"ꙕ","Ꙗ":"ꙗ","Ꙙ":"ꙙ","Ꙛ":"ꙛ","Ꙝ":"ꙝ","Ꙟ":"ꙟ","Ꙡ":"ꙡ","Ꙣ":"ꙣ","Ꙥ":"ꙥ","Ꙧ":"ꙧ","Ꙩ":"ꙩ","Ꙫ":"ꙫ","Ꙭ":"ꙭ","Ꚁ":"ꚁ","Ꚃ":"ꚃ","Ꚅ":"ꚅ","Ꚇ":"ꚇ","Ꚉ":"ꚉ","Ꚋ":"ꚋ","Ꚍ":"ꚍ","Ꚏ":"ꚏ","Ꚑ":"ꚑ","Ꚓ":"ꚓ","Ꚕ":"ꚕ","Ꚗ":"ꚗ","Ꚙ":"ꚙ","Ꚛ":"ꚛ","Ꜣ":"ꜣ","Ꜥ":"ꜥ","Ꜧ":"ꜧ","Ꜩ":"ꜩ","Ꜫ":"ꜫ","Ꜭ":"ꜭ","Ꜯ":"ꜯ","Ꜳ":"ꜳ","Ꜵ":"ꜵ","Ꜷ":"ꜷ","Ꜹ":"ꜹ","Ꜻ":"ꜻ","Ꜽ":"ꜽ","Ꜿ":"ꜿ","Ꝁ":"ꝁ","Ꝃ":"ꝃ","Ꝅ":"ꝅ","Ꝇ":"ꝇ","Ꝉ":"ꝉ","Ꝋ":"ꝋ","Ꝍ":"ꝍ","Ꝏ":"ꝏ","Ꝑ":"ꝑ","Ꝓ":"ꝓ","Ꝕ":"ꝕ","Ꝗ":"ꝗ","Ꝙ":"ꝙ","Ꝛ":"ꝛ","Ꝝ":"ꝝ","Ꝟ":"ꝟ","Ꝡ":"ꝡ","Ꝣ":"ꝣ","Ꝥ":"ꝥ","Ꝧ":"ꝧ","Ꝩ":"ꝩ","Ꝫ":"ꝫ","Ꝭ":"ꝭ","Ꝯ":"ꝯ","Ꝺ":"ꝺ","Ꝼ":"ꝼ","Ᵹ":"ᵹ","Ꝿ":"ꝿ","Ꞁ":"ꞁ","Ꞃ":"ꞃ","Ꞅ":"ꞅ","Ꞇ":"ꞇ","Ꞌ":"ꞌ","Ɥ":"ɥ","Ꞑ":"ꞑ","Ꞓ":"ꞓ","Ꞗ":"ꞗ","Ꞙ":"ꞙ","Ꞛ":"ꞛ","Ꞝ":"ꞝ","Ꞟ":"ꞟ","Ꞡ":"ꞡ","Ꞣ":"ꞣ","Ꞥ":"ꞥ","Ꞧ":"ꞧ","Ꞩ":"ꞩ","Ɦ":"ɦ","Ɜ":"ɜ","Ɡ":"ɡ","Ɬ":"ɬ","Ʞ":"ʞ","Ʇ":"ʇ",A:"a",B:"b",C:"c",D:"d",E:"e",F:"f",G:"g",H:"h",I:"i",J:"j",K:"k",L:"l",M:"m",N:"n",O:"o",P:"p",Q:"q",R:"r",S:"s",T:"t",U:"u",V:"v",W:"w",X:"x",Y:"y",Z:"z","𐐀":"𐐨","𐐁":"𐐩","𐐂":"𐐪","𐐃":"𐐫","𐐄":"𐐬","𐐅":"𐐭","𐐆":"𐐮","𐐇":"𐐯","𐐈":"𐐰","𐐉":"𐐱","𐐊":"𐐲","𐐋":"𐐳","𐐌":"𐐴","𐐍":"𐐵","𐐎":"𐐶","𐐏":"𐐷","𐐐":"𐐸","𐐑":"𐐹","𐐒":"𐐺","𐐓":"𐐻","𐐔":"𐐼","𐐕":"𐐽","𐐖":"𐐾","𐐗":"𐐿","𐐘":"𐑀","𐐙":"𐑁","𐐚":"𐑂","𐐛":"𐑃","𐐜":"𐑄","𐐝":"𐑅","𐐞":"𐑆","𐐟":"𐑇","𐐠":"𐑈","𐐡":"𐑉","𐐢":"𐑊","𐐣":"𐑋","𐐤":"𐑌","𐐥":"𐑍","𐐦":"𐑎","𐐧":"𐑏","𑢠":"𑣀","𑢡":"𑣁","𑢢":"𑣂","𑢣":"𑣃","𑢤":"𑣄","𑢥":"𑣅","𑢦":"𑣆","𑢧":"𑣇","𑢨":"𑣈","𑢩":"𑣉","𑢪":"𑣊","𑢫":"𑣋","𑢬":"𑣌","𑢭":"𑣍","𑢮":"𑣎","𑢯":"𑣏","𑢰":"𑣐","𑢱":"𑣑","𑢲":"𑣒","𑢳":"𑣓","𑢴":"𑣔","𑢵":"𑣕","𑢶":"𑣖","𑢷":"𑣗","𑢸":"𑣘","𑢹":"𑣙","𑢺":"𑣚","𑢻":"𑣛","𑢼":"𑣜","𑢽":"𑣝","𑢾":"𑣞","𑢿":"𑣟",ß:"ss",İ:"i̇",ʼn:"ʼn",ǰ:"ǰ",ΐ:"ΐ",ΰ:"ΰ",և:"եւ",ẖ:"ẖ",ẗ:"ẗ",ẘ:"ẘ",ẙ:"ẙ",ẚ:"aʾ","ẞ":"ss",ὐ:"ὐ",ὒ:"ὒ",ὔ:"ὔ",ὖ:"ὖ",ᾀ:"ἀι",ᾁ:"ἁι",ᾂ:"ἂι",ᾃ:"ἃι",ᾄ:"ἄι",ᾅ:"ἅι",ᾆ:"ἆι",ᾇ:"ἇι",ᾈ:"ἀι",ᾉ:"ἁι",ᾊ:"ἂι",ᾋ:"ἃι",ᾌ:"ἄι",ᾍ:"ἅι",ᾎ:"ἆι",ᾏ:"ἇι",ᾐ:"ἠι",ᾑ:"ἡι",ᾒ:"ἢι",ᾓ:"ἣι",ᾔ:"ἤι",ᾕ:"ἥι",ᾖ:"ἦι",ᾗ:"ἧι",ᾘ:"ἠι",ᾙ:"ἡι",ᾚ:"ἢι",ᾛ:"ἣι",ᾜ:"ἤι",ᾝ:"ἥι",ᾞ:"ἦι",ᾟ:"ἧι",ᾠ:"ὠι",ᾡ:"ὡι",ᾢ:"ὢι",ᾣ:"ὣι",ᾤ:"ὤι",ᾥ:"ὥι",ᾦ:"ὦι",ᾧ:"ὧι",ᾨ:"ὠι",ᾩ:"ὡι",ᾪ:"ὢι",ᾫ:"ὣι",ᾬ:"ὤι",ᾭ:"ὥι",ᾮ:"ὦι",ᾯ:"ὧι",ᾲ:"ὰι",ᾳ:"αι",ᾴ:"άι",ᾶ:"ᾶ",ᾷ:"ᾶι",ᾼ:"αι",ῂ:"ὴι",ῃ:"ηι",ῄ:"ήι",ῆ:"ῆ",ῇ:"ῆι",ῌ:"ηι",ῒ:"ῒ",ΐ:"ΐ",ῖ:"ῖ",ῗ:"ῗ",ῢ:"ῢ",ΰ:"ΰ",ῤ:"ῤ",ῦ:"ῦ",ῧ:"ῧ",ῲ:"ὼι",ῳ:"ωι",ῴ:"ώι",ῶ:"ῶ",ῷ:"ῶι",ῼ:"ωι",ff:"ff",fi:"fi",fl:"fl",ffi:"ffi",ffl:"ffl",ſt:"st",st:"st",ﬓ:"մն",ﬔ:"մե",ﬕ:"մի",ﬖ:"վն",ﬗ:"մխ"},entityReferences=[{key:[65,69,108,105,103,59],value:"Æ"},{key:[65,77,80,59],value:"&"},{key:[65,97,99,117,116,101,59],value:"Á"},{key:[65,98,114,101,118,101,59],value:"Ă"},{key:[65,99,105,114,99,59],value:"Â"},{key:[65,99,121,59],value:"А"},{key:[65,102,114,59],value:"𝔄"},{key:[65,103,114,97,118,101,59],value:"À"},{key:[65,108,112,104,97,59],value:"Α"},{key:[65,109,97,99,114,59],value:"Ā"},{key:[65,110,100,59],value:"⩓"},{key:[65,111,103,111,110,59],value:"Ą"},{key:[65,111,112,102,59],value:"𝔸"},{key:[65,112,112,108,121,70,117,110,99,116,105,111,110,59],value:"⁡"},{key:[65,114,105,110,103,59],value:"Å"},{key:[65,115,99,114,59],value:"𝒜"},{key:[65,115,115,105,103,110,59],value:"≔"},{key:[65,116,105,108,100,101,59],value:"Ã"},{key:[65,117,109,108,59],value:"Ä"},{key:[66,97,99,107,115,108,97,115,104,59],value:"∖"},{key:[66,97,114,118,59],value:"⫧"},{key:[66,97,114,119,101,100,59],value:"⌆"},{key:[66,99,121,59],value:"Б"},{key:[66,101,99,97,117,115,101,59],value:"∵"},{key:[66,101,114,110,111,117,108,108,105,115,59],value:"ℬ"},{key:[66,101,116,97,59],value:"Β"},{key:[66,102,114,59],value:"𝔅"},{key:[66,111,112,102,59],value:"𝔹"},{key:[66,114,101,118,101,59],value:"˘"},{key:[66,115,99,114,59],value:"ℬ"},{key:[66,117,109,112,101,113,59],value:"≎"},{key:[67,72,99,121,59],value:"Ч"},{key:[67,79,80,89,59],value:"©"},{key:[67,97,99,117,116,101,59],value:"Ć"},{key:[67,97,112,59],value:"⋒"},{key:[67,97,112,105,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59],value:"ⅅ"},{key:[67,97,121,108,101,121,115,59],value:"ℭ"},{key:[67,99,97,114,111,110,59],value:"Č"},{key:[67,99,101,100,105,108,59],value:"Ç"},{key:[67,99,105,114,99,59],value:"Ĉ"},{key:[67,99,111,110,105,110,116,59],value:"∰"},{key:[67,100,111,116,59],value:"Ċ"},{key:[67,101,100,105,108,108,97,59],value:"¸"},{key:[67,101,110,116,101,114,68,111,116,59],value:"·"},{key:[67,102,114,59],value:"ℭ"},{key:[67,104,105,59],value:"Χ"},{key:[67,105,114,99,108,101,68,111,116,59],value:"⊙"},{key:[67,105,114,99,108,101,77,105,110,117,115,59],value:"⊖"},{key:[67,105,114,99,108,101,80,108,117,115,59],value:"⊕"},{key:[67,105,114,99,108,101,84,105,109,101,115,59],value:"⊗"},{key:[67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∲"},{key:[67,108,111,115,101,67,117,114,108,121,68,111,117,98,108,101,81,117,111,116,101,59],value:"”"},{key:[67,108,111,115,101,67,117,114,108,121,81,117,111,116,101,59],value:"’"},{key:[67,111,108,111,110,59],value:"∷"},{key:[67,111,108,111,110,101,59],value:"⩴"},{key:[67,111,110,103,114,117,101,110,116,59],value:"≡"},{key:[67,111,110,105,110,116,59],value:"∯"},{key:[67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∮"},{key:[67,111,112,102,59],value:"ℂ"},{key:[67,111,112,114,111,100,117,99,116,59],value:"∐"},{key:[67,111,117,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∳"},{key:[67,114,111,115,115,59],value:"⨯"},{key:[67,115,99,114,59],value:"𝒞"},{key:[67,117,112,59],value:"⋓"},{key:[67,117,112,67,97,112,59],value:"≍"},{key:[68,68,59],value:"ⅅ"},{key:[68,68,111,116,114,97,104,100,59],value:"⤑"},{key:[68,74,99,121,59],value:"Ђ"},{key:[68,83,99,121,59],value:"Ѕ"},{key:[68,90,99,121,59],value:"Џ"},{key:[68,97,103,103,101,114,59],value:"‡"},{key:[68,97,114,114,59],value:"↡"},{key:[68,97,115,104,118,59],value:"⫤"},{key:[68,99,97,114,111,110,59],value:"Ď"},{key:[68,99,121,59],value:"Д"},{key:[68,101,108,59],value:"∇"},{key:[68,101,108,116,97,59],value:"Δ"},{key:[68,102,114,59],value:"𝔇"},{key:[68,105,97,99,114,105,116,105,99,97,108,65,99,117,116,101,59],value:"´"},{key:[68,105,97,99,114,105,116,105,99,97,108,68,111,116,59],value:"˙"},{key:[68,105,97,99,114,105,116,105,99,97,108,68,111,117,98,108,101,65,99,117,116,101,59],value:"˝"},{key:[68,105,97,99,114,105,116,105,99,97,108,71,114,97,118,101,59],value:"`"},{key:[68,105,97,99,114,105,116,105,99,97,108,84,105,108,100,101,59],value:"˜"},{key:[68,105,97,109,111,110,100,59],value:"⋄"},{key:[68,105,102,102,101,114,101,110,116,105,97,108,68,59],value:"ⅆ"},{key:[68,111,112,102,59],value:"𝔻"},{key:[68,111,116,59],value:"¨"},{key:[68,111,116,68,111,116,59],value:"⃜"},{key:[68,111,116,69,113,117,97,108,59],value:"≐"},{key:[68,111,117,98,108,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59],value:"∯"},{key:[68,111,117,98,108,101,68,111,116,59],value:"¨"},{key:[68,111,117,98,108,101,68,111,119,110,65,114,114,111,119,59],value:"⇓"},{key:[68,111,117,98,108,101,76,101,102,116,65,114,114,111,119,59],value:"⇐"},{key:[68,111,117,98,108,101,76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"⇔"},{key:[68,111,117,98,108,101,76,101,102,116,84,101,101,59],value:"⫤"},{key:[68,111,117,98,108,101,76,111,110,103,76,101,102,116,65,114,114,111,119,59],value:"⟸"},{key:[68,111,117,98,108,101,76,111,110,103,76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"⟺"},{key:[68,111,117,98,108,101,76,111,110,103,82,105,103,104,116,65,114,114,111,119,59],value:"⟹"},{key:[68,111,117,98,108,101,82,105,103,104,116,65,114,114,111,119,59],value:"⇒"},{key:[68,111,117,98,108,101,82,105,103,104,116,84,101,101,59],value:"⊨"},{key:[68,111,117,98,108,101,85,112,65,114,114,111,119,59],value:"⇑"},{key:[68,111,117,98,108,101,85,112,68,111,119,110,65,114,114,111,119,59],value:"⇕"},{key:[68,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59],value:"∥"},{key:[68,111,119,110,65,114,114,111,119,59],value:"↓"},{key:[68,111,119,110,65,114,114,111,119,66,97,114,59],value:"⤓"},{key:[68,111,119,110,65,114,114,111,119,85,112,65,114,114,111,119,59],value:"⇵"},{key:[68,111,119,110,66,114,101,118,101,59],value:"̑"},{key:[68,111,119,110,76,101,102,116,82,105,103,104,116,86,101,99,116,111,114,59],value:"⥐"},{key:[68,111,119,110,76,101,102,116,84,101,101,86,101,99,116,111,114,59],value:"⥞"},{key:[68,111,119,110,76,101,102,116,86,101,99,116,111,114,59],value:"↽"},{key:[68,111,119,110,76,101,102,116,86,101,99,116,111,114,66,97,114,59],value:"⥖"},{key:[68,111,119,110,82,105,103,104,116,84,101,101,86,101,99,116,111,114,59],value:"⥟"},{key:[68,111,119,110,82,105,103,104,116,86,101,99,116,111,114,59],value:"⇁"},{key:[68,111,119,110,82,105,103,104,116,86,101,99,116,111,114,66,97,114,59],value:"⥗"},{key:[68,111,119,110,84,101,101,59],value:"⊤"},{key:[68,111,119,110,84,101,101,65,114,114,111,119,59],value:"↧"},{key:[68,111,119,110,97,114,114,111,119,59],value:"⇓"},{key:[68,115,99,114,59],value:"𝒟"},{key:[68,115,116,114,111,107,59],value:"Đ"},{key:[69,78,71,59],value:"Ŋ"},{key:[69,84,72,59],value:"Ð"},{key:[69,97,99,117,116,101,59],value:"É"},{key:[69,99,97,114,111,110,59],value:"Ě"},{key:[69,99,105,114,99,59],value:"Ê"},{key:[69,99,121,59],value:"Э"},{key:[69,100,111,116,59],value:"Ė"},{key:[69,102,114,59],value:"𝔈"},{key:[69,103,114,97,118,101,59],value:"È"},{key:[69,108,101,109,101,110,116,59],value:"∈"},{key:[69,109,97,99,114,59],value:"Ē"},{key:[69,109,112,116,121,83,109,97,108,108,83,113,117,97,114,101,59],value:"◻"},{key:[69,109,112,116,121,86,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59],value:"▫"},{key:[69,111,103,111,110,59],value:"Ę"},{key:[69,111,112,102,59],value:"𝔼"},{key:[69,112,115,105,108,111,110,59],value:"Ε"},{key:[69,113,117,97,108,59],value:"⩵"},{key:[69,113,117,97,108,84,105,108,100,101,59],value:"≂"},{key:[69,113,117,105,108,105,98,114,105,117,109,59],value:"⇌"},{key:[69,115,99,114,59],value:"ℰ"},{key:[69,115,105,109,59],value:"⩳"},{key:[69,116,97,59],value:"Η"},{key:[69,117,109,108,59],value:"Ë"},{key:[69,120,105,115,116,115,59],value:"∃"},{key:[69,120,112,111,110,101,110,116,105,97,108,69,59],value:"ⅇ"},{key:[70,99,121,59],value:"Ф"},{key:[70,102,114,59],value:"𝔉"},{key:[70,105,108,108,101,100,83,109,97,108,108,83,113,117,97,114,101,59],value:"◼"},{key:[70,105,108,108,101,100,86,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59],value:"▪"},{key:[70,111,112,102,59],value:"𝔽"},{key:[70,111,114,65,108,108,59],value:"∀"},{key:[70,111,117,114,105,101,114,116,114,102,59],value:"ℱ"},{key:[70,115,99,114,59],value:"ℱ"},{key:[71,74,99,121,59],value:"Ѓ"},{key:[71,84,59],value:">"},{key:[71,97,109,109,97,59],value:"Γ"},{key:[71,97,109,109,97,100,59],value:"Ϝ"},{key:[71,98,114,101,118,101,59],value:"Ğ"},{key:[71,99,101,100,105,108,59],value:"Ģ"},{key:[71,99,105,114,99,59],value:"Ĝ"},{key:[71,99,121,59],value:"Г"},{key:[71,100,111,116,59],value:"Ġ"},{key:[71,102,114,59],value:"𝔊"},{key:[71,103,59],value:"⋙"},{key:[71,111,112,102,59],value:"𝔾"},{key:[71,114,101,97,116,101,114,69,113,117,97,108,59],value:"≥"},{key:[71,114,101,97,116,101,114,69,113,117,97,108,76,101,115,115,59],value:"⋛"},{key:[71,114,101,97,116,101,114,70,117,108,108,69,113,117,97,108,59],value:"≧"},{key:[71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"⪢"},{key:[71,114,101,97,116,101,114,76,101,115,115,59],value:"≷"},{key:[71,114,101,97,116,101,114,83,108,97,110,116,69,113,117,97,108,59],value:"⩾"},{key:[71,114,101,97,116,101,114,84,105,108,100,101,59],value:"≳"},{key:[71,115,99,114,59],value:"𝒢"},{key:[71,116,59],value:"≫"},{key:[72,65,82,68,99,121,59],value:"Ъ"},{key:[72,97,99,101,107,59],value:"ˇ"},{key:[72,97,116,59],value:"^"},{key:[72,99,105,114,99,59],value:"Ĥ"},{key:[72,102,114,59],value:"ℌ"},{key:[72,105,108,98,101,114,116,83,112,97,99,101,59],value:"ℋ"},{key:[72,111,112,102,59],value:"ℍ"},{key:[72,111,114,105,122,111,110,116,97,108,76,105,110,101,59],value:"─"},{key:[72,115,99,114,59],value:"ℋ"},{key:[72,115,116,114,111,107,59],value:"Ħ"},{key:[72,117,109,112,68,111,119,110,72,117,109,112,59],value:"≎"},{key:[72,117,109,112,69,113,117,97,108,59],value:"≏"},{key:[73,69,99,121,59],value:"Е"},{key:[73,74,108,105,103,59],value:"IJ"},{key:[73,79,99,121,59],value:"Ё"},{key:[73,97,99,117,116,101,59],value:"Í"},{key:[73,99,105,114,99,59],value:"Î"},{key:[73,99,121,59],value:"И"},{key:[73,100,111,116,59],value:"İ"},{key:[73,102,114,59],value:"ℑ"},{key:[73,103,114,97,118,101,59],value:"Ì"},{key:[73,109,59],value:"ℑ"},{key:[73,109,97,99,114,59],value:"Ī"},{key:[73,109,97,103,105,110,97,114,121,73,59],value:"ⅈ"},{key:[73,109,112,108,105,101,115,59],value:"⇒"},{key:[73,110,116,59],value:"∬"},{key:[73,110,116,101,103,114,97,108,59],value:"∫"},{key:[73,110,116,101,114,115,101,99,116,105,111,110,59],value:"⋂"},{key:[73,110,118,105,115,105,98,108,101,67,111,109,109,97,59],value:"⁣"},{key:[73,110,118,105,115,105,98,108,101,84,105,109,101,115,59],value:"⁢"},{key:[73,111,103,111,110,59],value:"Į"},{key:[73,111,112,102,59],value:"𝕀"},{key:[73,111,116,97,59],value:"Ι"},{key:[73,115,99,114,59],value:"ℐ"},{key:[73,116,105,108,100,101,59],value:"Ĩ"},{key:[73,117,107,99,121,59],value:"І"},{key:[73,117,109,108,59],value:"Ï"},{key:[74,99,105,114,99,59],value:"Ĵ"},{key:[74,99,121,59],value:"Й"},{key:[74,102,114,59],value:"𝔍"},{key:[74,111,112,102,59],value:"𝕁"},{key:[74,115,99,114,59],value:"𝒥"},{key:[74,115,101,114,99,121,59],value:"Ј"},{key:[74,117,107,99,121,59],value:"Є"},{key:[75,72,99,121,59],value:"Х"},{key:[75,74,99,121,59],value:"Ќ"},{key:[75,97,112,112,97,59],value:"Κ"},{key:[75,99,101,100,105,108,59],value:"Ķ"},{key:[75,99,121,59],value:"К"},{key:[75,102,114,59],value:"𝔎"},{key:[75,111,112,102,59],value:"𝕂"},{key:[75,115,99,114,59],value:"𝒦"},{key:[76,74,99,121,59],value:"Љ"},{key:[76,84,59],value:"<"},{key:[76,97,99,117,116,101,59],value:"Ĺ"},{key:[76,97,109,98,100,97,59],value:"Λ"},{key:[76,97,110,103,59],value:"⟪"},{key:[76,97,112,108,97,99,101,116,114,102,59],value:"ℒ"},{key:[76,97,114,114,59],value:"↞"},{key:[76,99,97,114,111,110,59],value:"Ľ"},{key:[76,99,101,100,105,108,59],value:"Ļ"},{key:[76,99,121,59],value:"Л"},{key:[76,101,102,116,65,110,103,108,101,66,114,97,99,107,101,116,59],value:"⟨"},{key:[76,101,102,116,65,114,114,111,119,59],value:"←"},{key:[76,101,102,116,65,114,114,111,119,66,97,114,59],value:"⇤"},{key:[76,101,102,116,65,114,114,111,119,82,105,103,104,116,65,114,114,111,119,59],value:"⇆"},{key:[76,101,102,116,67,101,105,108,105,110,103,59],value:"⌈"},{key:[76,101,102,116,68,111,117,98,108,101,66,114,97,99,107,101,116,59],value:"⟦"},{key:[76,101,102,116,68,111,119,110,84,101,101,86,101,99,116,111,114,59],value:"⥡"},{key:[76,101,102,116,68,111,119,110,86,101,99,116,111,114,59],value:"⇃"},{key:[76,101,102,116,68,111,119,110,86,101,99,116,111,114,66,97,114,59],value:"⥙"},{key:[76,101,102,116,70,108,111,111,114,59],value:"⌊"},{key:[76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"↔"},{key:[76,101,102,116,82,105,103,104,116,86,101,99,116,111,114,59],value:"⥎"},{key:[76,101,102,116,84,101,101,59],value:"⊣"},{key:[76,101,102,116,84,101,101,65,114,114,111,119,59],value:"↤"},{key:[76,101,102,116,84,101,101,86,101,99,116,111,114,59],value:"⥚"},{key:[76,101,102,116,84,114,105,97,110,103,108,101,59],value:"⊲"},{key:[76,101,102,116,84,114,105,97,110,103,108,101,66,97,114,59],value:"⧏"},{key:[76,101,102,116,84,114,105,97,110,103,108,101,69,113,117,97,108,59],value:"⊴"},{key:[76,101,102,116,85,112,68,111,119,110,86,101,99,116,111,114,59],value:"⥑"},{key:[76,101,102,116,85,112,84,101,101,86,101,99,116,111,114,59],value:"⥠"},{key:[76,101,102,116,85,112,86,101,99,116,111,114,59],value:"↿"},{key:[76,101,102,116,85,112,86,101,99,116,111,114,66,97,114,59],value:"⥘"},{key:[76,101,102,116,86,101,99,116,111,114,59],value:"↼"},{key:[76,101,102,116,86,101,99,116,111,114,66,97,114,59],value:"⥒"},{key:[76,101,102,116,97,114,114,111,119,59],value:"⇐"},{key:[76,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⇔"},{key:[76,101,115,115,69,113,117,97,108,71,114,101,97,116,101,114,59],value:"⋚"},{key:[76,101,115,115,70,117,108,108,69,113,117,97,108,59],value:"≦"},{key:[76,101,115,115,71,114,101,97,116,101,114,59],value:"≶"},{key:[76,101,115,115,76,101,115,115,59],value:"⪡"},{key:[76,101,115,115,83,108,97,110,116,69,113,117,97,108,59],value:"⩽"},{key:[76,101,115,115,84,105,108,100,101,59],value:"≲"},{key:[76,102,114,59],value:"𝔏"},{key:[76,108,59],value:"⋘"},{key:[76,108,101,102,116,97,114,114,111,119,59],value:"⇚"},{key:[76,109,105,100,111,116,59],value:"Ŀ"},{key:[76,111,110,103,76,101,102,116,65,114,114,111,119,59],value:"⟵"},{key:[76,111,110,103,76,101,102,116,82,105,103,104,116,65,114,114,111,119,59],value:"⟷"},{key:[76,111,110,103,82,105,103,104,116,65,114,114,111,119,59],value:"⟶"},{key:[76,111,110,103,108,101,102,116,97,114,114,111,119,59],value:"⟸"},{key:[76,111,110,103,108,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⟺"},{key:[76,111,110,103,114,105,103,104,116,97,114,114,111,119,59],value:"⟹"},{key:[76,111,112,102,59],value:"𝕃"},{key:[76,111,119,101,114,76,101,102,116,65,114,114,111,119,59],value:"↙"},{key:[76,111,119,101,114,82,105,103,104,116,65,114,114,111,119,59],value:"↘"},{key:[76,115,99,114,59],value:"ℒ"},{key:[76,115,104,59],value:"↰"},{key:[76,115,116,114,111,107,59],value:"Ł"},{key:[76,116,59],value:"≪"},{key:[77,97,112,59],value:"⤅"},{key:[77,99,121,59],value:"М"},{key:[77,101,100,105,117,109,83,112,97,99,101,59],value:" "},{key:[77,101,108,108,105,110,116,114,102,59],value:"ℳ"},{key:[77,102,114,59],value:"𝔐"},{key:[77,105,110,117,115,80,108,117,115,59],value:"∓"},{key:[77,111,112,102,59],value:"𝕄"},{key:[77,115,99,114,59],value:"ℳ"},{key:[77,117,59],value:"Μ"},{key:[78,74,99,121,59],value:"Њ"},{key:[78,97,99,117,116,101,59],value:"Ń"},{key:[78,99,97,114,111,110,59],value:"Ň"},{key:[78,99,101,100,105,108,59],value:"Ņ"},{key:[78,99,121,59],value:"Н"},{key:[78,101,103,97,116,105,118,101,77,101,100,105,117,109,83,112,97,99,101,59],value:"​"},{key:[78,101,103,97,116,105,118,101,84,104,105,99,107,83,112,97,99,101,59],value:"​"},{key:[78,101,103,97,116,105,118,101,84,104,105,110,83,112,97,99,101,59],value:"​"},{key:[78,101,103,97,116,105,118,101,86,101,114,121,84,104,105,110,83,112,97,99,101,59],value:"​"},{key:[78,101,115,116,101,100,71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"≫"},{key:[78,101,115,116,101,100,76,101,115,115,76,101,115,115,59],value:"≪"},{key:[78,101,119,76,105,110,101,59],value:` `},{key:[78,102,114,59],value:"𝔑"},{key:[78,111,66,114,101,97,107,59],value:"⁠"},{key:[78,111,110,66,114,101,97,107,105,110,103,83,112,97,99,101,59],value:" "},{key:[78,111,112,102,59],value:"ℕ"},{key:[78,111,116,59],value:"⫬"},{key:[78,111,116,67,111,110,103,114,117,101,110,116,59],value:"≢"},{key:[78,111,116,67,117,112,67,97,112,59],value:"≭"},{key:[78,111,116,68,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59],value:"∦"},{key:[78,111,116,69,108,101,109,101,110,116,59],value:"∉"},{key:[78,111,116,69,113,117,97,108,59],value:"≠"},{key:[78,111,116,69,113,117,97,108,84,105,108,100,101,59],value:"≂̸"},{key:[78,111,116,69,120,105,115,116,115,59],value:"∄"},{key:[78,111,116,71,114,101,97,116,101,114,59],value:"≯"},{key:[78,111,116,71,114,101,97,116,101,114,69,113,117,97,108,59],value:"≱"},{key:[78,111,116,71,114,101,97,116,101,114,70,117,108,108,69,113,117,97,108,59],value:"≧̸"},{key:[78,111,116,71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"≫̸"},{key:[78,111,116,71,114,101,97,116,101,114,76,101,115,115,59],value:"≹"},{key:[78,111,116,71,114,101,97,116,101,114,83,108,97,110,116,69,113,117,97,108,59],value:"⩾̸"},{key:[78,111,116,71,114,101,97,116,101,114,84,105,108,100,101,59],value:"≵"},{key:[78,111,116,72,117,109,112,68,111,119,110,72,117,109,112,59],value:"≎̸"},{key:[78,111,116,72,117,109,112,69,113,117,97,108,59],value:"≏̸"},{key:[78,111,116,76,101,102,116,84,114,105,97,110,103,108,101,59],value:"⋪"},{key:[78,111,116,76,101,102,116,84,114,105,97,110,103,108,101,66,97,114,59],value:"⧏̸"},{key:[78,111,116,76,101,102,116,84,114,105,97,110,103,108,101,69,113,117,97,108,59],value:"⋬"},{key:[78,111,116,76,101,115,115,59],value:"≮"},{key:[78,111,116,76,101,115,115,69,113,117,97,108,59],value:"≰"},{key:[78,111,116,76,101,115,115,71,114,101,97,116,101,114,59],value:"≸"},{key:[78,111,116,76,101,115,115,76,101,115,115,59],value:"≪̸"},{key:[78,111,116,76,101,115,115,83,108,97,110,116,69,113,117,97,108,59],value:"⩽̸"},{key:[78,111,116,76,101,115,115,84,105,108,100,101,59],value:"≴"},{key:[78,111,116,78,101,115,116,101,100,71,114,101,97,116,101,114,71,114,101,97,116,101,114,59],value:"⪢̸"},{key:[78,111,116,78,101,115,116,101,100,76,101,115,115,76,101,115,115,59],value:"⪡̸"},{key:[78,111,116,80,114,101,99,101,100,101,115,59],value:"⊀"},{key:[78,111,116,80,114,101,99,101,100,101,115,69,113,117,97,108,59],value:"⪯̸"},{key:[78,111,116,80,114,101,99,101,100,101,115,83,108,97,110,116,69,113,117,97,108,59],value:"⋠"},{key:[78,111,116,82,101,118,101,114,115,101,69,108,101,109,101,110,116,59],value:"∌"},{key:[78,111,116,82,105,103,104,116,84,114,105,97,110,103,108,101,59],value:"⋫"},{key:[78,111,116,82,105,103,104,116,84,114,105,97,110,103,108,101,66,97,114,59],value:"⧐̸"},{key:[78,111,116,82,105,103,104,116,84,114,105,97,110,103,108,101,69,113,117,97,108,59],value:"⋭"},{key:[78,111,116,83,113,117,97,114,101,83,117,98,115,101,116,59],value:"⊏̸"},{key:[78,111,116,83,113,117,97,114,101,83,117,98,115,101,116,69,113,117,97,108,59],value:"⋢"},{key:[78,111,116,83,113,117,97,114,101,83,117,112,101,114,115,101,116,59],value:"⊐̸"},{key:[78,111,116,83,113,117,97,114,101,83,117,112,101,114,115,101,116,69,113,117,97,108,59],value:"⋣"},{key:[78,111,116,83,117,98,115,101,116,59],value:"⊂⃒"},{key:[78,111,116,83,117,98,115,101,116,69,113,117,97,108,59],value:"⊈"},{key:[78,111,116,83,117,99,99,101,101,100,115,59],value:"⊁"},{key:[78,111,116,83,117,99,99,101,101,100,115,69,113,117,97,108,59],value:"⪰̸"},{key:[78,111,116,83,117,99,99,101,101,100,115,83,108,97,110,116,69,113,117,97,108,59],value:"⋡"},{key:[78,111,116,83,117,99,99,101,101,100,115,84,105,108,100,101,59],value:"≿̸"},{key:[78,111,116,83,117,112,101,114,115,101,116,59],value:"⊃⃒"},{key:[78,111,116,83,117,112,101,114,115,101,116,69,113,117,97,108,59],value:"⊉"},{key:[78,111,116,84,105,108,100,101,59],value:"≁"},{key:[78,111,116,84,105,108,100,101,69,113,117,97,108,59],value:"≄"},{key:[78,111,116,84,105,108,100,101,70,117,108,108,69,113,117,97,108,59],value:"≇"},{key:[78,111,116,84,105,108,100,101,84,105,108,100,101,59],value:"≉"},{key:[78,111,116,86,101,114,116,105,99,97,108,66,97,114,59],value:"∤"},{key:[78,115,99,114,59],value:"𝒩"},{key:[78,116,105,108,100,101,59],value:"Ñ"},{key:[78,117,59],value:"Ν"},{key:[79,69,108,105,103,59],value:"Œ"},{key:[79,97,99,117,116,101,59],value:"Ó"},{key:[79,99,105,114,99,59],value:"Ô"},{key:[79,99,121,59],value:"О"},{key:[79,100,98,108,97,99,59],value:"Ő"},{key:[79,102,114,59],value:"𝔒"},{key:[79,103,114,97,118,101,59],value:"Ò"},{key:[79,109,97,99,114,59],value:"Ō"},{key:[79,109,101,103,97,59],value:"Ω"},{key:[79,109,105,99,114,111,110,59],value:"Ο"},{key:[79,111,112,102,59],value:"𝕆"},{key:[79,112,101,110,67,117,114,108,121,68,111,117,98,108,101,81,117,111,116,101,59],value:"“"},{key:[79,112,101,110,67,117,114,108,121,81,117,111,116,101,59],value:"‘"},{key:[79,114,59],value:"⩔"},{key:[79,115,99,114,59],value:"𝒪"},{key:[79,115,108,97,115,104,59],value:"Ø"},{key:[79,116,105,108,100,101,59],value:"Õ"},{key:[79,116,105,109,101,115,59],value:"⨷"},{key:[79,117,109,108,59],value:"Ö"},{key:[79,118,101,114,66,97,114,59],value:"‾"},{key:[79,118,101,114,66,114,97,99,101,59],value:"⏞"},{key:[79,118,101,114,66,114,97,99,107,101,116,59],value:"⎴"},{key:[79,118,101,114,80,97,114,101,110,116,104,101,115,105,115,59],value:"⏜"},{key:[80,97,114,116,105,97,108,68,59],value:"∂"},{key:[80,99,121,59],value:"П"},{key:[80,102,114,59],value:"𝔓"},{key:[80,104,105,59],value:"Φ"},{key:[80,105,59],value:"Π"},{key:[80,108,117,115,77,105,110,117,115,59],value:"±"},{key:[80,111,105,110,99,97,114,101,112,108,97,110,101,59],value:"ℌ"},{key:[80,111,112,102,59],value:"ℙ"},{key:[80,114,59],value:"⪻"},{key:[80,114,101,99,101,100,101,115,59],value:"≺"},{key:[80,114,101,99,101,100,101,115,69,113,117,97,108,59],value:"⪯"},{key:[80,114,101,99,101,100,101,115,83,108,97,110,116,69,113,117,97,108,59],value:"≼"},{key:[80,114,101,99,101,100,101,115,84,105,108,100,101,59],value:"≾"},{key:[80,114,105,109,101,59],value:"″"},{key:[80,114,111,100,117,99,116,59],value:"∏"},{key:[80,114,111,112,111,114,116,105,111,110,59],value:"∷"},{key:[80,114,111,112,111,114,116,105,111,110,97,108,59],value:"∝"},{key:[80,115,99,114,59],value:"𝒫"},{key:[80,115,105,59],value:"Ψ"},{key:[81,85,79,84,59],value:'"'},{key:[81,102,114,59],value:"𝔔"},{key:[81,111,112,102,59],value:"ℚ"},{key:[81,115,99,114,59],value:"𝒬"},{key:[82,66,97,114,114,59],value:"⤐"},{key:[82,69,71,59],value:"®"},{key:[82,97,99,117,116,101,59],value:"Ŕ"},{key:[82,97,110,103,59],value:"⟫"},{key:[82,97,114,114,59],value:"↠"},{key:[82,97,114,114,116,108,59],value:"⤖"},{key:[82,99,97,114,111,110,59],value:"Ř"},{key:[82,99,101,100,105,108,59],value:"Ŗ"},{key:[82,99,121,59],value:"Р"},{key:[82,101,59],value:"ℜ"},{key:[82,101,118,101,114,115,101,69,108,101,109,101,110,116,59],value:"∋"},{key:[82,101,118,101,114,115,101,69,113,117,105,108,105,98,114,105,117,109,59],value:"⇋"},{key:[82,101,118,101,114,115,101,85,112,69,113,117,105,108,105,98,114,105,117,109,59],value:"⥯"},{key:[82,102,114,59],value:"ℜ"},{key:[82,104,111,59],value:"Ρ"},{key:[82,105,103,104,116,65,110,103,108,101,66,114,97,99,107,101,116,59],value:"⟩"},{key:[82,105,103,104,116,65,114,114,111,119,59],value:"→"},{key:[82,105,103,104,116,65,114,114,111,119,66,97,114,59],value:"⇥"},{key:[82,105,103,104,116,65,114,114,111,119,76,101,102,116,65,114,114,111,119,59],value:"⇄"},{key:[82,105,103,104,116,67,101,105,108,105,110,103,59],value:"⌉"},{key:[82,105,103,104,116,68,111,117,98,108,101,66,114,97,99,107,101,116,59],value:"⟧"},{key:[82,105,103,104,116,68,111,119,110,84,101,101,86,101,99,116,111,114,59],value:"⥝"},{key:[82,105,103,104,116,68,111,119,110,86,101,99,116,111,114,59],value:"⇂"},{key:[82,105,103,104,116,68,111,119,110,86,101,99,116,111,114,66,97,114,59],value:"⥕"},{key:[82,105,103,104,116,70,108,111,111,114,59],value:"⌋"},{key:[82,105,103,104,116,84,101,101,59],value:"⊢"},{key:[82,105,103,104,116,84,101,101,65,114,114,111,119,59],value:"↦"},{key:[82,105,103,104,116,84,101,101,86,101,99,116,111,114,59],value:"⥛"},{key:[82,105,103,104,116,84,114,105,97,110,103,108,101,59],value:"⊳"},{key:[82,105,103,104,116,84,114,105,97,110,103,108,101,66,97,114,59],value:"⧐"},{key:[82,105,103,104,116,84,114,105,97,110,103,108,101,69,113,117,97,108,59],value:"⊵"},{key:[82,105,103,104,116,85,112,68,111,119,110,86,101,99,116,111,114,59],value:"⥏"},{key:[82,105,103,104,116,85,112,84,101,101,86,101,99,116,111,114,59],value:"⥜"},{key:[82,105,103,104,116,85,112,86,101,99,116,111,114,59],value:"↾"},{key:[82,105,103,104,116,85,112,86,101,99,116,111,114,66,97,114,59],value:"⥔"},{key:[82,105,103,104,116,86,101,99,116,111,114,59],value:"⇀"},{key:[82,105,103,104,116,86,101,99,116,111,114,66,97,114,59],value:"⥓"},{key:[82,105,103,104,116,97,114,114,111,119,59],value:"⇒"},{key:[82,111,112,102,59],value:"ℝ"},{key:[82,111,117,110,100,73,109,112,108,105,101,115,59],value:"⥰"},{key:[82,114,105,103,104,116,97,114,114,111,119,59],value:"⇛"},{key:[82,115,99,114,59],value:"ℛ"},{key:[82,115,104,59],value:"↱"},{key:[82,117,108,101,68,101,108,97,121,101,100,59],value:"⧴"},{key:[83,72,67,72,99,121,59],value:"Щ"},{key:[83,72,99,121,59],value:"Ш"},{key:[83,79,70,84,99,121,59],value:"Ь"},{key:[83,97,99,117,116,101,59],value:"Ś"},{key:[83,99,59],value:"⪼"},{key:[83,99,97,114,111,110,59],value:"Š"},{key:[83,99,101,100,105,108,59],value:"Ş"},{key:[83,99,105,114,99,59],value:"Ŝ"},{key:[83,99,121,59],value:"С"},{key:[83,102,114,59],value:"𝔖"},{key:[83,104,111,114,116,68,111,119,110,65,114,114,111,119,59],value:"↓"},{key:[83,104,111,114,116,76,101,102,116,65,114,114,111,119,59],value:"←"},{key:[83,104,111,114,116,82,105,103,104,116,65,114,114,111,119,59],value:"→"},{key:[83,104,111,114,116,85,112,65,114,114,111,119,59],value:"↑"},{key:[83,105,103,109,97,59],value:"Σ"},{key:[83,109,97,108,108,67,105,114,99,108,101,59],value:"∘"},{key:[83,111,112,102,59],value:"𝕊"},{key:[83,113,114,116,59],value:"√"},{key:[83,113,117,97,114,101,59],value:"□"},{key:[83,113,117,97,114,101,73,110,116,101,114,115,101,99,116,105,111,110,59],value:"⊓"},{key:[83,113,117,97,114,101,83,117,98,115,101,116,59],value:"⊏"},{key:[83,113,117,97,114,101,83,117,98,115,101,116,69,113,117,97,108,59],value:"⊑"},{key:[83,113,117,97,114,101,83,117,112,101,114,115,101,116,59],value:"⊐"},{key:[83,113,117,97,114,101,83,117,112,101,114,115,101,116,69,113,117,97,108,59],value:"⊒"},{key:[83,113,117,97,114,101,85,110,105,111,110,59],value:"⊔"},{key:[83,115,99,114,59],value:"𝒮"},{key:[83,116,97,114,59],value:"⋆"},{key:[83,117,98,59],value:"⋐"},{key:[83,117,98,115,101,116,59],value:"⋐"},{key:[83,117,98,115,101,116,69,113,117,97,108,59],value:"⊆"},{key:[83,117,99,99,101,101,100,115,59],value:"≻"},{key:[83,117,99,99,101,101,100,115,69,113,117,97,108,59],value:"⪰"},{key:[83,117,99,99,101,101,100,115,83,108,97,110,116,69,113,117,97,108,59],value:"≽"},{key:[83,117,99,99,101,101,100,115,84,105,108,100,101,59],value:"≿"},{key:[83,117,99,104,84,104,97,116,59],value:"∋"},{key:[83,117,109,59],value:"∑"},{key:[83,117,112,59],value:"⋑"},{key:[83,117,112,101,114,115,101,116,59],value:"⊃"},{key:[83,117,112,101,114,115,101,116,69,113,117,97,108,59],value:"⊇"},{key:[83,117,112,115,101,116,59],value:"⋑"},{key:[84,72,79,82,78,59],value:"Þ"},{key:[84,82,65,68,69,59],value:"™"},{key:[84,83,72,99,121,59],value:"Ћ"},{key:[84,83,99,121,59],value:"Ц"},{key:[84,97,98,59],value:" "},{key:[84,97,117,59],value:"Τ"},{key:[84,99,97,114,111,110,59],value:"Ť"},{key:[84,99,101,100,105,108,59],value:"Ţ"},{key:[84,99,121,59],value:"Т"},{key:[84,102,114,59],value:"𝔗"},{key:[84,104,101,114,101,102,111,114,101,59],value:"∴"},{key:[84,104,101,116,97,59],value:"Θ"},{key:[84,104,105,99,107,83,112,97,99,101,59],value:"  "},{key:[84,104,105,110,83,112,97,99,101,59],value:" "},{key:[84,105,108,100,101,59],value:"∼"},{key:[84,105,108,100,101,69,113,117,97,108,59],value:"≃"},{key:[84,105,108,100,101,70,117,108,108,69,113,117,97,108,59],value:"≅"},{key:[84,105,108,100,101,84,105,108,100,101,59],value:"≈"},{key:[84,111,112,102,59],value:"𝕋"},{key:[84,114,105,112,108,101,68,111,116,59],value:"⃛"},{key:[84,115,99,114,59],value:"𝒯"},{key:[84,115,116,114,111,107,59],value:"Ŧ"},{key:[85,97,99,117,116,101,59],value:"Ú"},{key:[85,97,114,114,59],value:"↟"},{key:[85,97,114,114,111,99,105,114,59],value:"⥉"},{key:[85,98,114,99,121,59],value:"Ў"},{key:[85,98,114,101,118,101,59],value:"Ŭ"},{key:[85,99,105,114,99,59],value:"Û"},{key:[85,99,121,59],value:"У"},{key:[85,100,98,108,97,99,59],value:"Ű"},{key:[85,102,114,59],value:"𝔘"},{key:[85,103,114,97,118,101,59],value:"Ù"},{key:[85,109,97,99,114,59],value:"Ū"},{key:[85,110,100,101,114,66,97,114,59],value:"_"},{key:[85,110,100,101,114,66,114,97,99,101,59],value:"⏟"},{key:[85,110,100,101,114,66,114,97,99,107,101,116,59],value:"⎵"},{key:[85,110,100,101,114,80,97,114,101,110,116,104,101,115,105,115,59],value:"⏝"},{key:[85,110,105,111,110,59],value:"⋃"},{key:[85,110,105,111,110,80,108,117,115,59],value:"⊎"},{key:[85,111,103,111,110,59],value:"Ų"},{key:[85,111,112,102,59],value:"𝕌"},{key:[85,112,65,114,114,111,119,59],value:"↑"},{key:[85,112,65,114,114,111,119,66,97,114,59],value:"⤒"},{key:[85,112,65,114,114,111,119,68,111,119,110,65,114,114,111,119,59],value:"⇅"},{key:[85,112,68,111,119,110,65,114,114,111,119,59],value:"↕"},{key:[85,112,69,113,117,105,108,105,98,114,105,117,109,59],value:"⥮"},{key:[85,112,84,101,101,59],value:"⊥"},{key:[85,112,84,101,101,65,114,114,111,119,59],value:"↥"},{key:[85,112,97,114,114,111,119,59],value:"⇑"},{key:[85,112,100,111,119,110,97,114,114,111,119,59],value:"⇕"},{key:[85,112,112,101,114,76,101,102,116,65,114,114,111,119,59],value:"↖"},{key:[85,112,112,101,114,82,105,103,104,116,65,114,114,111,119,59],value:"↗"},{key:[85,112,115,105,59],value:"ϒ"},{key:[85,112,115,105,108,111,110,59],value:"Υ"},{key:[85,114,105,110,103,59],value:"Ů"},{key:[85,115,99,114,59],value:"𝒰"},{key:[85,116,105,108,100,101,59],value:"Ũ"},{key:[85,117,109,108,59],value:"Ü"},{key:[86,68,97,115,104,59],value:"⊫"},{key:[86,98,97,114,59],value:"⫫"},{key:[86,99,121,59],value:"В"},{key:[86,100,97,115,104,59],value:"⊩"},{key:[86,100,97,115,104,108,59],value:"⫦"},{key:[86,101,101,59],value:"⋁"},{key:[86,101,114,98,97,114,59],value:"‖"},{key:[86,101,114,116,59],value:"‖"},{key:[86,101,114,116,105,99,97,108,66,97,114,59],value:"∣"},{key:[86,101,114,116,105,99,97,108,76,105,110,101,59],value:"|"},{key:[86,101,114,116,105,99,97,108,83,101,112,97,114,97,116,111,114,59],value:"❘"},{key:[86,101,114,116,105,99,97,108,84,105,108,100,101,59],value:"≀"},{key:[86,101,114,121,84,104,105,110,83,112,97,99,101,59],value:" "},{key:[86,102,114,59],value:"𝔙"},{key:[86,111,112,102,59],value:"𝕍"},{key:[86,115,99,114,59],value:"𝒱"},{key:[86,118,100,97,115,104,59],value:"⊪"},{key:[87,99,105,114,99,59],value:"Ŵ"},{key:[87,101,100,103,101,59],value:"⋀"},{key:[87,102,114,59],value:"𝔚"},{key:[87,111,112,102,59],value:"𝕎"},{key:[87,115,99,114,59],value:"𝒲"},{key:[88,102,114,59],value:"𝔛"},{key:[88,105,59],value:"Ξ"},{key:[88,111,112,102,59],value:"𝕏"},{key:[88,115,99,114,59],value:"𝒳"},{key:[89,65,99,121,59],value:"Я"},{key:[89,73,99,121,59],value:"Ї"},{key:[89,85,99,121,59],value:"Ю"},{key:[89,97,99,117,116,101,59],value:"Ý"},{key:[89,99,105,114,99,59],value:"Ŷ"},{key:[89,99,121,59],value:"Ы"},{key:[89,102,114,59],value:"𝔜"},{key:[89,111,112,102,59],value:"𝕐"},{key:[89,115,99,114,59],value:"𝒴"},{key:[89,117,109,108,59],value:"Ÿ"},{key:[90,72,99,121,59],value:"Ж"},{key:[90,97,99,117,116,101,59],value:"Ź"},{key:[90,99,97,114,111,110,59],value:"Ž"},{key:[90,99,121,59],value:"З"},{key:[90,100,111,116,59],value:"Ż"},{key:[90,101,114,111,87,105,100,116,104,83,112,97,99,101,59],value:"​"},{key:[90,101,116,97,59],value:"Ζ"},{key:[90,102,114,59],value:"ℨ"},{key:[90,111,112,102,59],value:"ℤ"},{key:[90,115,99,114,59],value:"𝒵"},{key:[97,97,99,117,116,101,59],value:"á"},{key:[97,98,114,101,118,101,59],value:"ă"},{key:[97,99,59],value:"∾"},{key:[97,99,69,59],value:"∾̳"},{key:[97,99,100,59],value:"∿"},{key:[97,99,105,114,99,59],value:"â"},{key:[97,99,117,116,101,59],value:"´"},{key:[97,99,121,59],value:"а"},{key:[97,101,108,105,103,59],value:"æ"},{key:[97,102,59],value:"⁡"},{key:[97,102,114,59],value:"𝔞"},{key:[97,103,114,97,118,101,59],value:"à"},{key:[97,108,101,102,115,121,109,59],value:"ℵ"},{key:[97,108,101,112,104,59],value:"ℵ"},{key:[97,108,112,104,97,59],value:"α"},{key:[97,109,97,99,114,59],value:"ā"},{key:[97,109,97,108,103,59],value:"⨿"},{key:[97,109,112,59],value:"&"},{key:[97,110,100,59],value:"∧"},{key:[97,110,100,97,110,100,59],value:"⩕"},{key:[97,110,100,100,59],value:"⩜"},{key:[97,110,100,115,108,111,112,101,59],value:"⩘"},{key:[97,110,100,118,59],value:"⩚"},{key:[97,110,103,59],value:"∠"},{key:[97,110,103,101,59],value:"⦤"},{key:[97,110,103,108,101,59],value:"∠"},{key:[97,110,103,109,115,100,59],value:"∡"},{key:[97,110,103,109,115,100,97,97,59],value:"⦨"},{key:[97,110,103,109,115,100,97,98,59],value:"⦩"},{key:[97,110,103,109,115,100,97,99,59],value:"⦪"},{key:[97,110,103,109,115,100,97,100,59],value:"⦫"},{key:[97,110,103,109,115,100,97,101,59],value:"⦬"},{key:[97,110,103,109,115,100,97,102,59],value:"⦭"},{key:[97,110,103,109,115,100,97,103,59],value:"⦮"},{key:[97,110,103,109,115,100,97,104,59],value:"⦯"},{key:[97,110,103,114,116,59],value:"∟"},{key:[97,110,103,114,116,118,98,59],value:"⊾"},{key:[97,110,103,114,116,118,98,100,59],value:"⦝"},{key:[97,110,103,115,112,104,59],value:"∢"},{key:[97,110,103,115,116,59],value:"Å"},{key:[97,110,103,122,97,114,114,59],value:"⍼"},{key:[97,111,103,111,110,59],value:"ą"},{key:[97,111,112,102,59],value:"𝕒"},{key:[97,112,59],value:"≈"},{key:[97,112,69,59],value:"⩰"},{key:[97,112,97,99,105,114,59],value:"⩯"},{key:[97,112,101,59],value:"≊"},{key:[97,112,105,100,59],value:"≋"},{key:[97,112,111,115,59],value:"'"},{key:[97,112,112,114,111,120,59],value:"≈"},{key:[97,112,112,114,111,120,101,113,59],value:"≊"},{key:[97,114,105,110,103,59],value:"å"},{key:[97,115,99,114,59],value:"𝒶"},{key:[97,115,116,59],value:"*"},{key:[97,115,121,109,112,59],value:"≈"},{key:[97,115,121,109,112,101,113,59],value:"≍"},{key:[97,116,105,108,100,101,59],value:"ã"},{key:[97,117,109,108,59],value:"ä"},{key:[97,119,99,111,110,105,110,116,59],value:"∳"},{key:[97,119,105,110,116,59],value:"⨑"},{key:[98,78,111,116,59],value:"⫭"},{key:[98,97,99,107,99,111,110,103,59],value:"≌"},{key:[98,97,99,107,101,112,115,105,108,111,110,59],value:"϶"},{key:[98,97,99,107,112,114,105,109,101,59],value:"‵"},{key:[98,97,99,107,115,105,109,59],value:"∽"},{key:[98,97,99,107,115,105,109,101,113,59],value:"⋍"},{key:[98,97,114,118,101,101,59],value:"⊽"},{key:[98,97,114,119,101,100,59],value:"⌅"},{key:[98,97,114,119,101,100,103,101,59],value:"⌅"},{key:[98,98,114,107,59],value:"⎵"},{key:[98,98,114,107,116,98,114,107,59],value:"⎶"},{key:[98,99,111,110,103,59],value:"≌"},{key:[98,99,121,59],value:"б"},{key:[98,100,113,117,111,59],value:"„"},{key:[98,101,99,97,117,115,59],value:"∵"},{key:[98,101,99,97,117,115,101,59],value:"∵"},{key:[98,101,109,112,116,121,118,59],value:"⦰"},{key:[98,101,112,115,105,59],value:"϶"},{key:[98,101,114,110,111,117,59],value:"ℬ"},{key:[98,101,116,97,59],value:"β"},{key:[98,101,116,104,59],value:"ℶ"},{key:[98,101,116,119,101,101,110,59],value:"≬"},{key:[98,102,114,59],value:"𝔟"},{key:[98,105,103,99,97,112,59],value:"⋂"},{key:[98,105,103,99,105,114,99,59],value:"◯"},{key:[98,105,103,99,117,112,59],value:"⋃"},{key:[98,105,103,111,100,111,116,59],value:"⨀"},{key:[98,105,103,111,112,108,117,115,59],value:"⨁"},{key:[98,105,103,111,116,105,109,101,115,59],value:"⨂"},{key:[98,105,103,115,113,99,117,112,59],value:"⨆"},{key:[98,105,103,115,116,97,114,59],value:"★"},{key:[98,105,103,116,114,105,97,110,103,108,101,100,111,119,110,59],value:"▽"},{key:[98,105,103,116,114,105,97,110,103,108,101,117,112,59],value:"△"},{key:[98,105,103,117,112,108,117,115,59],value:"⨄"},{key:[98,105,103,118,101,101,59],value:"⋁"},{key:[98,105,103,119,101,100,103,101,59],value:"⋀"},{key:[98,107,97,114,111,119,59],value:"⤍"},{key:[98,108,97,99,107,108,111,122,101,110,103,101,59],value:"⧫"},{key:[98,108,97,99,107,115,113,117,97,114,101,59],value:"▪"},{key:[98,108,97,99,107,116,114,105,97,110,103,108,101,59],value:"▴"},{key:[98,108,97,99,107,116,114,105,97,110,103,108,101,100,111,119,110,59],value:"▾"},{key:[98,108,97,99,107,116,114,105,97,110,103,108,101,108,101,102,116,59],value:"◂"},{key:[98,108,97,99,107,116,114,105,97,110,103,108,101,114,105,103,104,116,59],value:"▸"},{key:[98,108,97,110,107,59],value:"␣"},{key:[98,108,107,49,50,59],value:"▒"},{key:[98,108,107,49,52,59],value:"░"},{key:[98,108,107,51,52,59],value:"▓"},{key:[98,108,111,99,107,59],value:"█"},{key:[98,110,101,59],value:"=⃥"},{key:[98,110,101,113,117,105,118,59],value:"≡⃥"},{key:[98,110,111,116,59],value:"⌐"},{key:[98,111,112,102,59],value:"𝕓"},{key:[98,111,116,59],value:"⊥"},{key:[98,111,116,116,111,109,59],value:"⊥"},{key:[98,111,119,116,105,101,59],value:"⋈"},{key:[98,111,120,68,76,59],value:"╗"},{key:[98,111,120,68,82,59],value:"╔"},{key:[98,111,120,68,108,59],value:"╖"},{key:[98,111,120,68,114,59],value:"╓"},{key:[98,111,120,72,59],value:"═"},{key:[98,111,120,72,68,59],value:"╦"},{key:[98,111,120,72,85,59],value:"╩"},{key:[98,111,120,72,100,59],value:"╤"},{key:[98,111,120,72,117,59],value:"╧"},{key:[98,111,120,85,76,59],value:"╝"},{key:[98,111,120,85,82,59],value:"╚"},{key:[98,111,120,85,108,59],value:"╜"},{key:[98,111,120,85,114,59],value:"╙"},{key:[98,111,120,86,59],value:"║"},{key:[98,111,120,86,72,59],value:"╬"},{key:[98,111,120,86,76,59],value:"╣"},{key:[98,111,120,86,82,59],value:"╠"},{key:[98,111,120,86,104,59],value:"╫"},{key:[98,111,120,86,108,59],value:"╢"},{key:[98,111,120,86,114,59],value:"╟"},{key:[98,111,120,98,111,120,59],value:"⧉"},{key:[98,111,120,100,76,59],value:"╕"},{key:[98,111,120,100,82,59],value:"╒"},{key:[98,111,120,100,108,59],value:"┐"},{key:[98,111,120,100,114,59],value:"┌"},{key:[98,111,120,104,59],value:"─"},{key:[98,111,120,104,68,59],value:"╥"},{key:[98,111,120,104,85,59],value:"╨"},{key:[98,111,120,104,100,59],value:"┬"},{key:[98,111,120,104,117,59],value:"┴"},{key:[98,111,120,109,105,110,117,115,59],value:"⊟"},{key:[98,111,120,112,108,117,115,59],value:"⊞"},{key:[98,111,120,116,105,109,101,115,59],value:"⊠"},{key:[98,111,120,117,76,59],value:"╛"},{key:[98,111,120,117,82,59],value:"╘"},{key:[98,111,120,117,108,59],value:"┘"},{key:[98,111,120,117,114,59],value:"└"},{key:[98,111,120,118,59],value:"│"},{key:[98,111,120,118,72,59],value:"╪"},{key:[98,111,120,118,76,59],value:"╡"},{key:[98,111,120,118,82,59],value:"╞"},{key:[98,111,120,118,104,59],value:"┼"},{key:[98,111,120,118,108,59],value:"┤"},{key:[98,111,120,118,114,59],value:"├"},{key:[98,112,114,105,109,101,59],value:"‵"},{key:[98,114,101,118,101,59],value:"˘"},{key:[98,114,118,98,97,114,59],value:"¦"},{key:[98,115,99,114,59],value:"𝒷"},{key:[98,115,101,109,105,59],value:"⁏"},{key:[98,115,105,109,59],value:"∽"},{key:[98,115,105,109,101,59],value:"⋍"},{key:[98,115,111,108,59],value:"\\"},{key:[98,115,111,108,98,59],value:"⧅"},{key:[98,115,111,108,104,115,117,98,59],value:"⟈"},{key:[98,117,108,108,59],value:"•"},{key:[98,117,108,108,101,116,59],value:"•"},{key:[98,117,109,112,59],value:"≎"},{key:[98,117,109,112,69,59],value:"⪮"},{key:[98,117,109,112,101,59],value:"≏"},{key:[98,117,109,112,101,113,59],value:"≏"},{key:[99,97,99,117,116,101,59],value:"ć"},{key:[99,97,112,59],value:"∩"},{key:[99,97,112,97,110,100,59],value:"⩄"},{key:[99,97,112,98,114,99,117,112,59],value:"⩉"},{key:[99,97,112,99,97,112,59],value:"⩋"},{key:[99,97,112,99,117,112,59],value:"⩇"},{key:[99,97,112,100,111,116,59],value:"⩀"},{key:[99,97,112,115,59],value:"∩︀"},{key:[99,97,114,101,116,59],value:"⁁"},{key:[99,97,114,111,110,59],value:"ˇ"},{key:[99,99,97,112,115,59],value:"⩍"},{key:[99,99,97,114,111,110,59],value:"č"},{key:[99,99,101,100,105,108,59],value:"ç"},{key:[99,99,105,114,99,59],value:"ĉ"},{key:[99,99,117,112,115,59],value:"⩌"},{key:[99,99,117,112,115,115,109,59],value:"⩐"},{key:[99,100,111,116,59],value:"ċ"},{key:[99,101,100,105,108,59],value:"¸"},{key:[99,101,109,112,116,121,118,59],value:"⦲"},{key:[99,101,110,116,59],value:"¢"},{key:[99,101,110,116,101,114,100,111,116,59],value:"·"},{key:[99,102,114,59],value:"𝔠"},{key:[99,104,99,121,59],value:"ч"},{key:[99,104,101,99,107,59],value:"✓"},{key:[99,104,101,99,107,109,97,114,107,59],value:"✓"},{key:[99,104,105,59],value:"χ"},{key:[99,105,114,59],value:"○"},{key:[99,105,114,69,59],value:"⧃"},{key:[99,105,114,99,59],value:"ˆ"},{key:[99,105,114,99,101,113,59],value:"≗"},{key:[99,105,114,99,108,101,97,114,114,111,119,108,101,102,116,59],value:"↺"},{key:[99,105,114,99,108,101,97,114,114,111,119,114,105,103,104,116,59],value:"↻"},{key:[99,105,114,99,108,101,100,82,59],value:"®"},{key:[99,105,114,99,108,101,100,83,59],value:"Ⓢ"},{key:[99,105,114,99,108,101,100,97,115,116,59],value:"⊛"},{key:[99,105,114,99,108,101,100,99,105,114,99,59],value:"⊚"},{key:[99,105,114,99,108,101,100,100,97,115,104,59],value:"⊝"},{key:[99,105,114,101,59],value:"≗"},{key:[99,105,114,102,110,105,110,116,59],value:"⨐"},{key:[99,105,114,109,105,100,59],value:"⫯"},{key:[99,105,114,115,99,105,114,59],value:"⧂"},{key:[99,108,117,98,115,59],value:"♣"},{key:[99,108,117,98,115,117,105,116,59],value:"♣"},{key:[99,111,108,111,110,59],value:":"},{key:[99,111,108,111,110,101,59],value:"≔"},{key:[99,111,108,111,110,101,113,59],value:"≔"},{key:[99,111,109,109,97,59],value:","},{key:[99,111,109,109,97,116,59],value:"@"},{key:[99,111,109,112,59],value:"∁"},{key:[99,111,109,112,102,110,59],value:"∘"},{key:[99,111,109,112,108,101,109,101,110,116,59],value:"∁"},{key:[99,111,109,112,108,101,120,101,115,59],value:"ℂ"},{key:[99,111,110,103,59],value:"≅"},{key:[99,111,110,103,100,111,116,59],value:"⩭"},{key:[99,111,110,105,110,116,59],value:"∮"},{key:[99,111,112,102,59],value:"𝕔"},{key:[99,111,112,114,111,100,59],value:"∐"},{key:[99,111,112,121,59],value:"©"},{key:[99,111,112,121,115,114,59],value:"℗"},{key:[99,114,97,114,114,59],value:"↵"},{key:[99,114,111,115,115,59],value:"✗"},{key:[99,115,99,114,59],value:"𝒸"},{key:[99,115,117,98,59],value:"⫏"},{key:[99,115,117,98,101,59],value:"⫑"},{key:[99,115,117,112,59],value:"⫐"},{key:[99,115,117,112,101,59],value:"⫒"},{key:[99,116,100,111,116,59],value:"⋯"},{key:[99,117,100,97,114,114,108,59],value:"⤸"},{key:[99,117,100,97,114,114,114,59],value:"⤵"},{key:[99,117,101,112,114,59],value:"⋞"},{key:[99,117,101,115,99,59],value:"⋟"},{key:[99,117,108,97,114,114,59],value:"↶"},{key:[99,117,108,97,114,114,112,59],value:"⤽"},{key:[99,117,112,59],value:"∪"},{key:[99,117,112,98,114,99,97,112,59],value:"⩈"},{key:[99,117,112,99,97,112,59],value:"⩆"},{key:[99,117,112,99,117,112,59],value:"⩊"},{key:[99,117,112,100,111,116,59],value:"⊍"},{key:[99,117,112,111,114,59],value:"⩅"},{key:[99,117,112,115,59],value:"∪︀"},{key:[99,117,114,97,114,114,59],value:"↷"},{key:[99,117,114,97,114,114,109,59],value:"⤼"},{key:[99,117,114,108,121,101,113,112,114,101,99,59],value:"⋞"},{key:[99,117,114,108,121,101,113,115,117,99,99,59],value:"⋟"},{key:[99,117,114,108,121,118,101,101,59],value:"⋎"},{key:[99,117,114,108,121,119,101,100,103,101,59],value:"⋏"},{key:[99,117,114,114,101,110,59],value:"¤"},{key:[99,117,114,118,101,97,114,114,111,119,108,101,102,116,59],value:"↶"},{key:[99,117,114,118,101,97,114,114,111,119,114,105,103,104,116,59],value:"↷"},{key:[99,117,118,101,101,59],value:"⋎"},{key:[99,117,119,101,100,59],value:"⋏"},{key:[99,119,99,111,110,105,110,116,59],value:"∲"},{key:[99,119,105,110,116,59],value:"∱"},{key:[99,121,108,99,116,121,59],value:"⌭"},{key:[100,65,114,114,59],value:"⇓"},{key:[100,72,97,114,59],value:"⥥"},{key:[100,97,103,103,101,114,59],value:"†"},{key:[100,97,108,101,116,104,59],value:"ℸ"},{key:[100,97,114,114,59],value:"↓"},{key:[100,97,115,104,59],value:"‐"},{key:[100,97,115,104,118,59],value:"⊣"},{key:[100,98,107,97,114,111,119,59],value:"⤏"},{key:[100,98,108,97,99,59],value:"˝"},{key:[100,99,97,114,111,110,59],value:"ď"},{key:[100,99,121,59],value:"д"},{key:[100,100,59],value:"ⅆ"},{key:[100,100,97,103,103,101,114,59],value:"‡"},{key:[100,100,97,114,114,59],value:"⇊"},{key:[100,100,111,116,115,101,113,59],value:"⩷"},{key:[100,101,103,59],value:"°"},{key:[100,101,108,116,97,59],value:"δ"},{key:[100,101,109,112,116,121,118,59],value:"⦱"},{key:[100,102,105,115,104,116,59],value:"⥿"},{key:[100,102,114,59],value:"𝔡"},{key:[100,104,97,114,108,59],value:"⇃"},{key:[100,104,97,114,114,59],value:"⇂"},{key:[100,105,97,109,59],value:"⋄"},{key:[100,105,97,109,111,110,100,59],value:"⋄"},{key:[100,105,97,109,111,110,100,115,117,105,116,59],value:"♦"},{key:[100,105,97,109,115,59],value:"♦"},{key:[100,105,101,59],value:"¨"},{key:[100,105,103,97,109,109,97,59],value:"ϝ"},{key:[100,105,115,105,110,59],value:"⋲"},{key:[100,105,118,59],value:"÷"},{key:[100,105,118,105,100,101,59],value:"÷"},{key:[100,105,118,105,100,101,111,110,116,105,109,101,115,59],value:"⋇"},{key:[100,105,118,111,110,120,59],value:"⋇"},{key:[100,106,99,121,59],value:"ђ"},{key:[100,108,99,111,114,110,59],value:"⌞"},{key:[100,108,99,114,111,112,59],value:"⌍"},{key:[100,111,108,108,97,114,59],value:"$"},{key:[100,111,112,102,59],value:"𝕕"},{key:[100,111,116,59],value:"˙"},{key:[100,111,116,101,113,59],value:"≐"},{key:[100,111,116,101,113,100,111,116,59],value:"≑"},{key:[100,111,116,109,105,110,117,115,59],value:"∸"},{key:[100,111,116,112,108,117,115,59],value:"∔"},{key:[100,111,116,115,113,117,97,114,101,59],value:"⊡"},{key:[100,111,117,98,108,101,98,97,114,119,101,100,103,101,59],value:"⌆"},{key:[100,111,119,110,97,114,114,111,119,59],value:"↓"},{key:[100,111,119,110,100,111,119,110,97,114,114,111,119,115,59],value:"⇊"},{key:[100,111,119,110,104,97,114,112,111,111,110,108,101,102,116,59],value:"⇃"},{key:[100,111,119,110,104,97,114,112,111,111,110,114,105,103,104,116,59],value:"⇂"},{key:[100,114,98,107,97,114,111,119,59],value:"⤐"},{key:[100,114,99,111,114,110,59],value:"⌟"},{key:[100,114,99,114,111,112,59],value:"⌌"},{key:[100,115,99,114,59],value:"𝒹"},{key:[100,115,99,121,59],value:"ѕ"},{key:[100,115,111,108,59],value:"⧶"},{key:[100,115,116,114,111,107,59],value:"đ"},{key:[100,116,100,111,116,59],value:"⋱"},{key:[100,116,114,105,59],value:"▿"},{key:[100,116,114,105,102,59],value:"▾"},{key:[100,117,97,114,114,59],value:"⇵"},{key:[100,117,104,97,114,59],value:"⥯"},{key:[100,119,97,110,103,108,101,59],value:"⦦"},{key:[100,122,99,121,59],value:"џ"},{key:[100,122,105,103,114,97,114,114,59],value:"⟿"},{key:[101,68,68,111,116,59],value:"⩷"},{key:[101,68,111,116,59],value:"≑"},{key:[101,97,99,117,116,101,59],value:"é"},{key:[101,97,115,116,101,114,59],value:"⩮"},{key:[101,99,97,114,111,110,59],value:"ě"},{key:[101,99,105,114,59],value:"≖"},{key:[101,99,105,114,99,59],value:"ê"},{key:[101,99,111,108,111,110,59],value:"≕"},{key:[101,99,121,59],value:"э"},{key:[101,100,111,116,59],value:"ė"},{key:[101,101,59],value:"ⅇ"},{key:[101,102,68,111,116,59],value:"≒"},{key:[101,102,114,59],value:"𝔢"},{key:[101,103,59],value:"⪚"},{key:[101,103,114,97,118,101,59],value:"è"},{key:[101,103,115,59],value:"⪖"},{key:[101,103,115,100,111,116,59],value:"⪘"},{key:[101,108,59],value:"⪙"},{key:[101,108,105,110,116,101,114,115,59],value:"⏧"},{key:[101,108,108,59],value:"ℓ"},{key:[101,108,115,59],value:"⪕"},{key:[101,108,115,100,111,116,59],value:"⪗"},{key:[101,109,97,99,114,59],value:"ē"},{key:[101,109,112,116,121,59],value:"∅"},{key:[101,109,112,116,121,115,101,116,59],value:"∅"},{key:[101,109,112,116,121,118,59],value:"∅"},{key:[101,109,115,112,49,51,59],value:" "},{key:[101,109,115,112,49,52,59],value:" "},{key:[101,109,115,112,59],value:" "},{key:[101,110,103,59],value:"ŋ"},{key:[101,110,115,112,59],value:" "},{key:[101,111,103,111,110,59],value:"ę"},{key:[101,111,112,102,59],value:"𝕖"},{key:[101,112,97,114,59],value:"⋕"},{key:[101,112,97,114,115,108,59],value:"⧣"},{key:[101,112,108,117,115,59],value:"⩱"},{key:[101,112,115,105,59],value:"ε"},{key:[101,112,115,105,108,111,110,59],value:"ε"},{key:[101,112,115,105,118,59],value:"ϵ"},{key:[101,113,99,105,114,99,59],value:"≖"},{key:[101,113,99,111,108,111,110,59],value:"≕"},{key:[101,113,115,105,109,59],value:"≂"},{key:[101,113,115,108,97,110,116,103,116,114,59],value:"⪖"},{key:[101,113,115,108,97,110,116,108,101,115,115,59],value:"⪕"},{key:[101,113,117,97,108,115,59],value:"="},{key:[101,113,117,101,115,116,59],value:"≟"},{key:[101,113,117,105,118,59],value:"≡"},{key:[101,113,117,105,118,68,68,59],value:"⩸"},{key:[101,113,118,112,97,114,115,108,59],value:"⧥"},{key:[101,114,68,111,116,59],value:"≓"},{key:[101,114,97,114,114,59],value:"⥱"},{key:[101,115,99,114,59],value:"ℯ"},{key:[101,115,100,111,116,59],value:"≐"},{key:[101,115,105,109,59],value:"≂"},{key:[101,116,97,59],value:"η"},{key:[101,116,104,59],value:"ð"},{key:[101,117,109,108,59],value:"ë"},{key:[101,117,114,111,59],value:"€"},{key:[101,120,99,108,59],value:"!"},{key:[101,120,105,115,116,59],value:"∃"},{key:[101,120,112,101,99,116,97,116,105,111,110,59],value:"ℰ"},{key:[101,120,112,111,110,101,110,116,105,97,108,101,59],value:"ⅇ"},{key:[102,97,108,108,105,110,103,100,111,116,115,101,113,59],value:"≒"},{key:[102,99,121,59],value:"ф"},{key:[102,101,109,97,108,101,59],value:"♀"},{key:[102,102,105,108,105,103,59],value:"ffi"},{key:[102,102,108,105,103,59],value:"ff"},{key:[102,102,108,108,105,103,59],value:"ffl"},{key:[102,102,114,59],value:"𝔣"},{key:[102,105,108,105,103,59],value:"fi"},{key:[102,106,108,105,103,59],value:"fj"},{key:[102,108,97,116,59],value:"♭"},{key:[102,108,108,105,103,59],value:"fl"},{key:[102,108,116,110,115,59],value:"▱"},{key:[102,110,111,102,59],value:"ƒ"},{key:[102,111,112,102,59],value:"𝕗"},{key:[102,111,114,97,108,108,59],value:"∀"},{key:[102,111,114,107,59],value:"⋔"},{key:[102,111,114,107,118,59],value:"⫙"},{key:[102,112,97,114,116,105,110,116,59],value:"⨍"},{key:[102,114,97,99,49,50,59],value:"½"},{key:[102,114,97,99,49,51,59],value:"⅓"},{key:[102,114,97,99,49,52,59],value:"¼"},{key:[102,114,97,99,49,53,59],value:"⅕"},{key:[102,114,97,99,49,54,59],value:"⅙"},{key:[102,114,97,99,49,56,59],value:"⅛"},{key:[102,114,97,99,50,51,59],value:"⅔"},{key:[102,114,97,99,50,53,59],value:"⅖"},{key:[102,114,97,99,51,52,59],value:"¾"},{key:[102,114,97,99,51,53,59],value:"⅗"},{key:[102,114,97,99,51,56,59],value:"⅜"},{key:[102,114,97,99,52,53,59],value:"⅘"},{key:[102,114,97,99,53,54,59],value:"⅚"},{key:[102,114,97,99,53,56,59],value:"⅝"},{key:[102,114,97,99,55,56,59],value:"⅞"},{key:[102,114,97,115,108,59],value:"⁄"},{key:[102,114,111,119,110,59],value:"⌢"},{key:[102,115,99,114,59],value:"𝒻"},{key:[103,69,59],value:"≧"},{key:[103,69,108,59],value:"⪌"},{key:[103,97,99,117,116,101,59],value:"ǵ"},{key:[103,97,109,109,97,59],value:"γ"},{key:[103,97,109,109,97,100,59],value:"ϝ"},{key:[103,97,112,59],value:"⪆"},{key:[103,98,114,101,118,101,59],value:"ğ"},{key:[103,99,105,114,99,59],value:"ĝ"},{key:[103,99,121,59],value:"г"},{key:[103,100,111,116,59],value:"ġ"},{key:[103,101,59],value:"≥"},{key:[103,101,108,59],value:"⋛"},{key:[103,101,113,59],value:"≥"},{key:[103,101,113,113,59],value:"≧"},{key:[103,101,113,115,108,97,110,116,59],value:"⩾"},{key:[103,101,115,59],value:"⩾"},{key:[103,101,115,99,99,59],value:"⪩"},{key:[103,101,115,100,111,116,59],value:"⪀"},{key:[103,101,115,100,111,116,111,59],value:"⪂"},{key:[103,101,115,100,111,116,111,108,59],value:"⪄"},{key:[103,101,115,108,59],value:"⋛︀"},{key:[103,101,115,108,101,115,59],value:"⪔"},{key:[103,102,114,59],value:"𝔤"},{key:[103,103,59],value:"≫"},{key:[103,103,103,59],value:"⋙"},{key:[103,105,109,101,108,59],value:"ℷ"},{key:[103,106,99,121,59],value:"ѓ"},{key:[103,108,59],value:"≷"},{key:[103,108,69,59],value:"⪒"},{key:[103,108,97,59],value:"⪥"},{key:[103,108,106,59],value:"⪤"},{key:[103,110,69,59],value:"≩"},{key:[103,110,97,112,59],value:"⪊"},{key:[103,110,97,112,112,114,111,120,59],value:"⪊"},{key:[103,110,101,59],value:"⪈"},{key:[103,110,101,113,59],value:"⪈"},{key:[103,110,101,113,113,59],value:"≩"},{key:[103,110,115,105,109,59],value:"⋧"},{key:[103,111,112,102,59],value:"𝕘"},{key:[103,114,97,118,101,59],value:"`"},{key:[103,115,99,114,59],value:"ℊ"},{key:[103,115,105,109,59],value:"≳"},{key:[103,115,105,109,101,59],value:"⪎"},{key:[103,115,105,109,108,59],value:"⪐"},{key:[103,116,59],value:">"},{key:[103,116,99,99,59],value:"⪧"},{key:[103,116,99,105,114,59],value:"⩺"},{key:[103,116,100,111,116,59],value:"⋗"},{key:[103,116,108,80,97,114,59],value:"⦕"},{key:[103,116,113,117,101,115,116,59],value:"⩼"},{key:[103,116,114,97,112,112,114,111,120,59],value:"⪆"},{key:[103,116,114,97,114,114,59],value:"⥸"},{key:[103,116,114,100,111,116,59],value:"⋗"},{key:[103,116,114,101,113,108,101,115,115,59],value:"⋛"},{key:[103,116,114,101,113,113,108,101,115,115,59],value:"⪌"},{key:[103,116,114,108,101,115,115,59],value:"≷"},{key:[103,116,114,115,105,109,59],value:"≳"},{key:[103,118,101,114,116,110,101,113,113,59],value:"≩︀"},{key:[103,118,110,69,59],value:"≩︀"},{key:[104,65,114,114,59],value:"⇔"},{key:[104,97,105,114,115,112,59],value:" "},{key:[104,97,108,102,59],value:"½"},{key:[104,97,109,105,108,116,59],value:"ℋ"},{key:[104,97,114,100,99,121,59],value:"ъ"},{key:[104,97,114,114,59],value:"↔"},{key:[104,97,114,114,99,105,114,59],value:"⥈"},{key:[104,97,114,114,119,59],value:"↭"},{key:[104,98,97,114,59],value:"ℏ"},{key:[104,99,105,114,99,59],value:"ĥ"},{key:[104,101,97,114,116,115,59],value:"♥"},{key:[104,101,97,114,116,115,117,105,116,59],value:"♥"},{key:[104,101,108,108,105,112,59],value:"…"},{key:[104,101,114,99,111,110,59],value:"⊹"},{key:[104,102,114,59],value:"𝔥"},{key:[104,107,115,101,97,114,111,119,59],value:"⤥"},{key:[104,107,115,119,97,114,111,119,59],value:"⤦"},{key:[104,111,97,114,114,59],value:"⇿"},{key:[104,111,109,116,104,116,59],value:"∻"},{key:[104,111,111,107,108,101,102,116,97,114,114,111,119,59],value:"↩"},{key:[104,111,111,107,114,105,103,104,116,97,114,114,111,119,59],value:"↪"},{key:[104,111,112,102,59],value:"𝕙"},{key:[104,111,114,98,97,114,59],value:"―"},{key:[104,115,99,114,59],value:"𝒽"},{key:[104,115,108,97,115,104,59],value:"ℏ"},{key:[104,115,116,114,111,107,59],value:"ħ"},{key:[104,121,98,117,108,108,59],value:"⁃"},{key:[104,121,112,104,101,110,59],value:"‐"},{key:[105,97,99,117,116,101,59],value:"í"},{key:[105,99,59],value:"⁣"},{key:[105,99,105,114,99,59],value:"î"},{key:[105,99,121,59],value:"и"},{key:[105,101,99,121,59],value:"е"},{key:[105,101,120,99,108,59],value:"¡"},{key:[105,102,102,59],value:"⇔"},{key:[105,102,114,59],value:"𝔦"},{key:[105,103,114,97,118,101,59],value:"ì"},{key:[105,105,59],value:"ⅈ"},{key:[105,105,105,105,110,116,59],value:"⨌"},{key:[105,105,105,110,116,59],value:"∭"},{key:[105,105,110,102,105,110,59],value:"⧜"},{key:[105,105,111,116,97,59],value:"℩"},{key:[105,106,108,105,103,59],value:"ij"},{key:[105,109,97,99,114,59],value:"ī"},{key:[105,109,97,103,101,59],value:"ℑ"},{key:[105,109,97,103,108,105,110,101,59],value:"ℐ"},{key:[105,109,97,103,112,97,114,116,59],value:"ℑ"},{key:[105,109,97,116,104,59],value:"ı"},{key:[105,109,111,102,59],value:"⊷"},{key:[105,109,112,101,100,59],value:"Ƶ"},{key:[105,110,59],value:"∈"},{key:[105,110,99,97,114,101,59],value:"℅"},{key:[105,110,102,105,110,59],value:"∞"},{key:[105,110,102,105,110,116,105,101,59],value:"⧝"},{key:[105,110,111,100,111,116,59],value:"ı"},{key:[105,110,116,59],value:"∫"},{key:[105,110,116,99,97,108,59],value:"⊺"},{key:[105,110,116,101,103,101,114,115,59],value:"ℤ"},{key:[105,110,116,101,114,99,97,108,59],value:"⊺"},{key:[105,110,116,108,97,114,104,107,59],value:"⨗"},{key:[105,110,116,112,114,111,100,59],value:"⨼"},{key:[105,111,99,121,59],value:"ё"},{key:[105,111,103,111,110,59],value:"į"},{key:[105,111,112,102,59],value:"𝕚"},{key:[105,111,116,97,59],value:"ι"},{key:[105,112,114,111,100,59],value:"⨼"},{key:[105,113,117,101,115,116,59],value:"¿"},{key:[105,115,99,114,59],value:"𝒾"},{key:[105,115,105,110,59],value:"∈"},{key:[105,115,105,110,69,59],value:"⋹"},{key:[105,115,105,110,100,111,116,59],value:"⋵"},{key:[105,115,105,110,115,59],value:"⋴"},{key:[105,115,105,110,115,118,59],value:"⋳"},{key:[105,115,105,110,118,59],value:"∈"},{key:[105,116,59],value:"⁢"},{key:[105,116,105,108,100,101,59],value:"ĩ"},{key:[105,117,107,99,121,59],value:"і"},{key:[105,117,109,108,59],value:"ï"},{key:[106,99,105,114,99,59],value:"ĵ"},{key:[106,99,121,59],value:"й"},{key:[106,102,114,59],value:"𝔧"},{key:[106,109,97,116,104,59],value:"ȷ"},{key:[106,111,112,102,59],value:"𝕛"},{key:[106,115,99,114,59],value:"𝒿"},{key:[106,115,101,114,99,121,59],value:"ј"},{key:[106,117,107,99,121,59],value:"є"},{key:[107,97,112,112,97,59],value:"κ"},{key:[107,97,112,112,97,118,59],value:"ϰ"},{key:[107,99,101,100,105,108,59],value:"ķ"},{key:[107,99,121,59],value:"к"},{key:[107,102,114,59],value:"𝔨"},{key:[107,103,114,101,101,110,59],value:"ĸ"},{key:[107,104,99,121,59],value:"х"},{key:[107,106,99,121,59],value:"ќ"},{key:[107,111,112,102,59],value:"𝕜"},{key:[107,115,99,114,59],value:"𝓀"},{key:[108,65,97,114,114,59],value:"⇚"},{key:[108,65,114,114,59],value:"⇐"},{key:[108,65,116,97,105,108,59],value:"⤛"},{key:[108,66,97,114,114,59],value:"⤎"},{key:[108,69,59],value:"≦"},{key:[108,69,103,59],value:"⪋"},{key:[108,72,97,114,59],value:"⥢"},{key:[108,97,99,117,116,101,59],value:"ĺ"},{key:[108,97,101,109,112,116,121,118,59],value:"⦴"},{key:[108,97,103,114,97,110,59],value:"ℒ"},{key:[108,97,109,98,100,97,59],value:"λ"},{key:[108,97,110,103,59],value:"⟨"},{key:[108,97,110,103,100,59],value:"⦑"},{key:[108,97,110,103,108,101,59],value:"⟨"},{key:[108,97,112,59],value:"⪅"},{key:[108,97,113,117,111,59],value:"«"},{key:[108,97,114,114,59],value:"←"},{key:[108,97,114,114,98,59],value:"⇤"},{key:[108,97,114,114,98,102,115,59],value:"⤟"},{key:[108,97,114,114,102,115,59],value:"⤝"},{key:[108,97,114,114,104,107,59],value:"↩"},{key:[108,97,114,114,108,112,59],value:"↫"},{key:[108,97,114,114,112,108,59],value:"⤹"},{key:[108,97,114,114,115,105,109,59],value:"⥳"},{key:[108,97,114,114,116,108,59],value:"↢"},{key:[108,97,116,59],value:"⪫"},{key:[108,97,116,97,105,108,59],value:"⤙"},{key:[108,97,116,101,59],value:"⪭"},{key:[108,97,116,101,115,59],value:"⪭︀"},{key:[108,98,97,114,114,59],value:"⤌"},{key:[108,98,98,114,107,59],value:"❲"},{key:[108,98,114,97,99,101,59],value:"{ "},{key:[108,98,114,97,99,107,59],value:"["},{key:[108,98,114,107,101,59],value:"⦋"},{key:[108,98,114,107,115,108,100,59],value:"⦏"},{key:[108,98,114,107,115,108,117,59],value:"⦍"},{key:[108,99,97,114,111,110,59],value:"ľ"},{key:[108,99,101,100,105,108,59],value:"ļ"},{key:[108,99,101,105,108,59],value:"⌈"},{key:[108,99,117,98,59],value:"{ "},{key:[108,99,121,59],value:"л"},{key:[108,100,99,97,59],value:"⤶"},{key:[108,100,113,117,111,59],value:"“"},{key:[108,100,113,117,111,114,59],value:"„"},{key:[108,100,114,100,104,97,114,59],value:"⥧"},{key:[108,100,114,117,115,104,97,114,59],value:"⥋"},{key:[108,100,115,104,59],value:"↲"},{key:[108,101,59],value:"≤"},{key:[108,101,102,116,97,114,114,111,119,59],value:"←"},{key:[108,101,102,116,97,114,114,111,119,116,97,105,108,59],value:"↢"},{key:[108,101,102,116,104,97,114,112,111,111,110,100,111,119,110,59],value:"↽"},{key:[108,101,102,116,104,97,114,112,111,111,110,117,112,59],value:"↼"},{key:[108,101,102,116,108,101,102,116,97,114,114,111,119,115,59],value:"⇇"},{key:[108,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"↔"},{key:[108,101,102,116,114,105,103,104,116,97,114,114,111,119,115,59],value:"⇆"},{key:[108,101,102,116,114,105,103,104,116,104,97,114,112,111,111,110,115,59],value:"⇋"},{key:[108,101,102,116,114,105,103,104,116,115,113,117,105,103,97,114,114,111,119,59],value:"↭"},{key:[108,101,102,116,116,104,114,101,101,116,105,109,101,115,59],value:"⋋"},{key:[108,101,103,59],value:"⋚"},{key:[108,101,113,59],value:"≤"},{key:[108,101,113,113,59],value:"≦"},{key:[108,101,113,115,108,97,110,116,59],value:"⩽"},{key:[108,101,115,59],value:"⩽"},{key:[108,101,115,99,99,59],value:"⪨"},{key:[108,101,115,100,111,116,59],value:"⩿"},{key:[108,101,115,100,111,116,111,59],value:"⪁"},{key:[108,101,115,100,111,116,111,114,59],value:"⪃"},{key:[108,101,115,103,59],value:"⋚︀"},{key:[108,101,115,103,101,115,59],value:"⪓"},{key:[108,101,115,115,97,112,112,114,111,120,59],value:"⪅"},{key:[108,101,115,115,100,111,116,59],value:"⋖"},{key:[108,101,115,115,101,113,103,116,114,59],value:"⋚"},{key:[108,101,115,115,101,113,113,103,116,114,59],value:"⪋"},{key:[108,101,115,115,103,116,114,59],value:"≶"},{key:[108,101,115,115,115,105,109,59],value:"≲"},{key:[108,102,105,115,104,116,59],value:"⥼"},{key:[108,102,108,111,111,114,59],value:"⌊"},{key:[108,102,114,59],value:"𝔩"},{key:[108,103,59],value:"≶"},{key:[108,103,69,59],value:"⪑"},{key:[108,104,97,114,100,59],value:"↽"},{key:[108,104,97,114,117,59],value:"↼"},{key:[108,104,97,114,117,108,59],value:"⥪"},{key:[108,104,98,108,107,59],value:"▄"},{key:[108,106,99,121,59],value:"љ"},{key:[108,108,59],value:"≪"},{key:[108,108,97,114,114,59],value:"⇇"},{key:[108,108,99,111,114,110,101,114,59],value:"⌞"},{key:[108,108,104,97,114,100,59],value:"⥫"},{key:[108,108,116,114,105,59],value:"◺"},{key:[108,109,105,100,111,116,59],value:"ŀ"},{key:[108,109,111,117,115,116,59],value:"⎰"},{key:[108,109,111,117,115,116,97,99,104,101,59],value:"⎰"},{key:[108,110,69,59],value:"≨"},{key:[108,110,97,112,59],value:"⪉"},{key:[108,110,97,112,112,114,111,120,59],value:"⪉"},{key:[108,110,101,59],value:"⪇"},{key:[108,110,101,113,59],value:"⪇"},{key:[108,110,101,113,113,59],value:"≨"},{key:[108,110,115,105,109,59],value:"⋦"},{key:[108,111,97,110,103,59],value:"⟬"},{key:[108,111,97,114,114,59],value:"⇽"},{key:[108,111,98,114,107,59],value:"⟦"},{key:[108,111,110,103,108,101,102,116,97,114,114,111,119,59],value:"⟵"},{key:[108,111,110,103,108,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⟷"},{key:[108,111,110,103,109,97,112,115,116,111,59],value:"⟼"},{key:[108,111,110,103,114,105,103,104,116,97,114,114,111,119,59],value:"⟶"},{key:[108,111,111,112,97,114,114,111,119,108,101,102,116,59],value:"↫"},{key:[108,111,111,112,97,114,114,111,119,114,105,103,104,116,59],value:"↬"},{key:[108,111,112,97,114,59],value:"⦅"},{key:[108,111,112,102,59],value:"𝕝"},{key:[108,111,112,108,117,115,59],value:"⨭"},{key:[108,111,116,105,109,101,115,59],value:"⨴"},{key:[108,111,119,97,115,116,59],value:"∗"},{key:[108,111,119,98,97,114,59],value:"_"},{key:[108,111,122,59],value:"◊"},{key:[108,111,122,101,110,103,101,59],value:"◊"},{key:[108,111,122,102,59],value:"⧫"},{key:[108,112,97,114,59],value:"("},{key:[108,112,97,114,108,116,59],value:"⦓"},{key:[108,114,97,114,114,59],value:"⇆"},{key:[108,114,99,111,114,110,101,114,59],value:"⌟"},{key:[108,114,104,97,114,59],value:"⇋"},{key:[108,114,104,97,114,100,59],value:"⥭"},{key:[108,114,109,59],value:"‎"},{key:[108,114,116,114,105,59],value:"⊿"},{key:[108,115,97,113,117,111,59],value:"‹"},{key:[108,115,99,114,59],value:"𝓁"},{key:[108,115,104,59],value:"↰"},{key:[108,115,105,109,59],value:"≲"},{key:[108,115,105,109,101,59],value:"⪍"},{key:[108,115,105,109,103,59],value:"⪏"},{key:[108,115,113,98,59],value:"["},{key:[108,115,113,117,111,59],value:"‘"},{key:[108,115,113,117,111,114,59],value:"‚"},{key:[108,115,116,114,111,107,59],value:"ł"},{key:[108,116,59],value:"<"},{key:[108,116,99,99,59],value:"⪦"},{key:[108,116,99,105,114,59],value:"⩹"},{key:[108,116,100,111,116,59],value:"⋖"},{key:[108,116,104,114,101,101,59],value:"⋋"},{key:[108,116,105,109,101,115,59],value:"⋉"},{key:[108,116,108,97,114,114,59],value:"⥶"},{key:[108,116,113,117,101,115,116,59],value:"⩻"},{key:[108,116,114,80,97,114,59],value:"⦖"},{key:[108,116,114,105,59],value:"◃"},{key:[108,116,114,105,101,59],value:"⊴"},{key:[108,116,114,105,102,59],value:"◂"},{key:[108,117,114,100,115,104,97,114,59],value:"⥊"},{key:[108,117,114,117,104,97,114,59],value:"⥦"},{key:[108,118,101,114,116,110,101,113,113,59],value:"≨︀"},{key:[108,118,110,69,59],value:"≨︀"},{key:[109,68,68,111,116,59],value:"∺"},{key:[109,97,99,114,59],value:"¯"},{key:[109,97,108,101,59],value:"♂"},{key:[109,97,108,116,59],value:"✠"},{key:[109,97,108,116,101,115,101,59],value:"✠"},{key:[109,97,112,59],value:"↦"},{key:[109,97,112,115,116,111,59],value:"↦"},{key:[109,97,112,115,116,111,100,111,119,110,59],value:"↧"},{key:[109,97,112,115,116,111,108,101,102,116,59],value:"↤"},{key:[109,97,112,115,116,111,117,112,59],value:"↥"},{key:[109,97,114,107,101,114,59],value:"▮"},{key:[109,99,111,109,109,97,59],value:"⨩"},{key:[109,99,121,59],value:"м"},{key:[109,100,97,115,104,59],value:"—"},{key:[109,101,97,115,117,114,101,100,97,110,103,108,101,59],value:"∡"},{key:[109,102,114,59],value:"𝔪"},{key:[109,104,111,59],value:"℧"},{key:[109,105,99,114,111,59],value:"µ"},{key:[109,105,100,59],value:"∣"},{key:[109,105,100,97,115,116,59],value:"*"},{key:[109,105,100,99,105,114,59],value:"⫰"},{key:[109,105,100,100,111,116,59],value:"·"},{key:[109,105,110,117,115,59],value:"−"},{key:[109,105,110,117,115,98,59],value:"⊟"},{key:[109,105,110,117,115,100,59],value:"∸"},{key:[109,105,110,117,115,100,117,59],value:"⨪"},{key:[109,108,99,112,59],value:"⫛"},{key:[109,108,100,114,59],value:"…"},{key:[109,110,112,108,117,115,59],value:"∓"},{key:[109,111,100,101,108,115,59],value:"⊧"},{key:[109,111,112,102,59],value:"𝕞"},{key:[109,112,59],value:"∓"},{key:[109,115,99,114,59],value:"𝓂"},{key:[109,115,116,112,111,115,59],value:"∾"},{key:[109,117,59],value:"μ"},{key:[109,117,108,116,105,109,97,112,59],value:"⊸"},{key:[109,117,109,97,112,59],value:"⊸"},{key:[110,71,103,59],value:"⋙̸"},{key:[110,71,116,59],value:"≫⃒"},{key:[110,71,116,118,59],value:"≫̸"},{key:[110,76,101,102,116,97,114,114,111,119,59],value:"⇍"},{key:[110,76,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"⇎"},{key:[110,76,108,59],value:"⋘̸"},{key:[110,76,116,59],value:"≪⃒"},{key:[110,76,116,118,59],value:"≪̸"},{key:[110,82,105,103,104,116,97,114,114,111,119,59],value:"⇏"},{key:[110,86,68,97,115,104,59],value:"⊯"},{key:[110,86,100,97,115,104,59],value:"⊮"},{key:[110,97,98,108,97,59],value:"∇"},{key:[110,97,99,117,116,101,59],value:"ń"},{key:[110,97,110,103,59],value:"∠⃒"},{key:[110,97,112,59],value:"≉"},{key:[110,97,112,69,59],value:"⩰̸"},{key:[110,97,112,105,100,59],value:"≋̸"},{key:[110,97,112,111,115,59],value:"ʼn"},{key:[110,97,112,112,114,111,120,59],value:"≉"},{key:[110,97,116,117,114,59],value:"♮"},{key:[110,97,116,117,114,97,108,59],value:"♮"},{key:[110,97,116,117,114,97,108,115,59],value:"ℕ"},{key:[110,98,115,112,59],value:" "},{key:[110,98,117,109,112,59],value:"≎̸"},{key:[110,98,117,109,112,101,59],value:"≏̸"},{key:[110,99,97,112,59],value:"⩃"},{key:[110,99,97,114,111,110,59],value:"ň"},{key:[110,99,101,100,105,108,59],value:"ņ"},{key:[110,99,111,110,103,59],value:"≇"},{key:[110,99,111,110,103,100,111,116,59],value:"⩭̸"},{key:[110,99,117,112,59],value:"⩂"},{key:[110,99,121,59],value:"н"},{key:[110,100,97,115,104,59],value:"–"},{key:[110,101,59],value:"≠"},{key:[110,101,65,114,114,59],value:"⇗"},{key:[110,101,97,114,104,107,59],value:"⤤"},{key:[110,101,97,114,114,59],value:"↗"},{key:[110,101,97,114,114,111,119,59],value:"↗"},{key:[110,101,100,111,116,59],value:"≐̸"},{key:[110,101,113,117,105,118,59],value:"≢"},{key:[110,101,115,101,97,114,59],value:"⤨"},{key:[110,101,115,105,109,59],value:"≂̸"},{key:[110,101,120,105,115,116,59],value:"∄"},{key:[110,101,120,105,115,116,115,59],value:"∄"},{key:[110,102,114,59],value:"𝔫"},{key:[110,103,69,59],value:"≧̸"},{key:[110,103,101,59],value:"≱"},{key:[110,103,101,113,59],value:"≱"},{key:[110,103,101,113,113,59],value:"≧̸"},{key:[110,103,101,113,115,108,97,110,116,59],value:"⩾̸"},{key:[110,103,101,115,59],value:"⩾̸"},{key:[110,103,115,105,109,59],value:"≵"},{key:[110,103,116,59],value:"≯"},{key:[110,103,116,114,59],value:"≯"},{key:[110,104,65,114,114,59],value:"⇎"},{key:[110,104,97,114,114,59],value:"↮"},{key:[110,104,112,97,114,59],value:"⫲"},{key:[110,105,59],value:"∋"},{key:[110,105,115,59],value:"⋼"},{key:[110,105,115,100,59],value:"⋺"},{key:[110,105,118,59],value:"∋"},{key:[110,106,99,121,59],value:"њ"},{key:[110,108,65,114,114,59],value:"⇍"},{key:[110,108,69,59],value:"≦̸"},{key:[110,108,97,114,114,59],value:"↚"},{key:[110,108,100,114,59],value:"‥"},{key:[110,108,101,59],value:"≰"},{key:[110,108,101,102,116,97,114,114,111,119,59],value:"↚"},{key:[110,108,101,102,116,114,105,103,104,116,97,114,114,111,119,59],value:"↮"},{key:[110,108,101,113,59],value:"≰"},{key:[110,108,101,113,113,59],value:"≦̸"},{key:[110,108,101,113,115,108,97,110,116,59],value:"⩽̸"},{key:[110,108,101,115,59],value:"⩽̸"},{key:[110,108,101,115,115,59],value:"≮"},{key:[110,108,115,105,109,59],value:"≴"},{key:[110,108,116,59],value:"≮"},{key:[110,108,116,114,105,59],value:"⋪"},{key:[110,108,116,114,105,101,59],value:"⋬"},{key:[110,109,105,100,59],value:"∤"},{key:[110,111,112,102,59],value:"𝕟"},{key:[110,111,116,59],value:"¬"},{key:[110,111,116,105,110,59],value:"∉"},{key:[110,111,116,105,110,69,59],value:"⋹̸"},{key:[110,111,116,105,110,100,111,116,59],value:"⋵̸"},{key:[110,111,116,105,110,118,97,59],value:"∉"},{key:[110,111,116,105,110,118,98,59],value:"⋷"},{key:[110,111,116,105,110,118,99,59],value:"⋶"},{key:[110,111,116,110,105,59],value:"∌"},{key:[110,111,116,110,105,118,97,59],value:"∌"},{key:[110,111,116,110,105,118,98,59],value:"⋾"},{key:[110,111,116,110,105,118,99,59],value:"⋽"},{key:[110,112,97,114,59],value:"∦"},{key:[110,112,97,114,97,108,108,101,108,59],value:"∦"},{key:[110,112,97,114,115,108,59],value:"⫽⃥"},{key:[110,112,97,114,116,59],value:"∂̸"},{key:[110,112,111,108,105,110,116,59],value:"⨔"},{key:[110,112,114,59],value:"⊀"},{key:[110,112,114,99,117,101,59],value:"⋠"},{key:[110,112,114,101,59],value:"⪯̸"},{key:[110,112,114,101,99,59],value:"⊀"},{key:[110,112,114,101,99,101,113,59],value:"⪯̸"},{key:[110,114,65,114,114,59],value:"⇏"},{key:[110,114,97,114,114,59],value:"↛"},{key:[110,114,97,114,114,99,59],value:"⤳̸"},{key:[110,114,97,114,114,119,59],value:"↝̸"},{key:[110,114,105,103,104,116,97,114,114,111,119,59],value:"↛"},{key:[110,114,116,114,105,59],value:"⋫"},{key:[110,114,116,114,105,101,59],value:"⋭"},{key:[110,115,99,59],value:"⊁"},{key:[110,115,99,99,117,101,59],value:"⋡"},{key:[110,115,99,101,59],value:"⪰̸"},{key:[110,115,99,114,59],value:"𝓃"},{key:[110,115,104,111,114,116,109,105,100,59],value:"∤"},{key:[110,115,104,111,114,116,112,97,114,97,108,108,101,108,59],value:"∦"},{key:[110,115,105,109,59],value:"≁"},{key:[110,115,105,109,101,59],value:"≄"},{key:[110,115,105,109,101,113,59],value:"≄"},{key:[110,115,109,105,100,59],value:"∤"},{key:[110,115,112,97,114,59],value:"∦"},{key:[110,115,113,115,117,98,101,59],value:"⋢"},{key:[110,115,113,115,117,112,101,59],value:"⋣"},{key:[110,115,117,98,59],value:"⊄"},{key:[110,115,117,98,69,59],value:"⫅̸"},{key:[110,115,117,98,101,59],value:"⊈"},{key:[110,115,117,98,115,101,116,59],value:"⊂⃒"},{key:[110,115,117,98,115,101,116,101,113,59],value:"⊈"},{key:[110,115,117,98,115,101,116,101,113,113,59],value:"⫅̸"},{key:[110,115,117,99,99,59],value:"⊁"},{key:[110,115,117,99,99,101,113,59],value:"⪰̸"},{key:[110,115,117,112,59],value:"⊅"},{key:[110,115,117,112,69,59],value:"⫆̸"},{key:[110,115,117,112,101,59],value:"⊉"},{key:[110,115,117,112,115,101,116,59],value:"⊃⃒"},{key:[110,115,117,112,115,101,116,101,113,59],value:"⊉"},{key:[110,115,117,112,115,101,116,101,113,113,59],value:"⫆̸"},{key:[110,116,103,108,59],value:"≹"},{key:[110,116,105,108,100,101,59],value:"ñ"},{key:[110,116,108,103,59],value:"≸"},{key:[110,116,114,105,97,110,103,108,101,108,101,102,116,59],value:"⋪"},{key:[110,116,114,105,97,110,103,108,101,108,101,102,116,101,113,59],value:"⋬"},{key:[110,116,114,105,97,110,103,108,101,114,105,103,104,116,59],value:"⋫"},{key:[110,116,114,105,97,110,103,108,101,114,105,103,104,116,101,113,59],value:"⋭"},{key:[110,117,59],value:"ν"},{key:[110,117,109,59],value:"#"},{key:[110,117,109,101,114,111,59],value:"№"},{key:[110,117,109,115,112,59],value:" "},{key:[110,118,68,97,115,104,59],value:"⊭"},{key:[110,118,72,97,114,114,59],value:"⤄"},{key:[110,118,97,112,59],value:"≍⃒"},{key:[110,118,100,97,115,104,59],value:"⊬"},{key:[110,118,103,101,59],value:"≥⃒"},{key:[110,118,103,116,59],value:">⃒"},{key:[110,118,105,110,102,105,110,59],value:"⧞"},{key:[110,118,108,65,114,114,59],value:"⤂"},{key:[110,118,108,101,59],value:"≤⃒"},{key:[110,118,108,116,59],value:"<⃒"},{key:[110,118,108,116,114,105,101,59],value:"⊴⃒"},{key:[110,118,114,65,114,114,59],value:"⤃"},{key:[110,118,114,116,114,105,101,59],value:"⊵⃒"},{key:[110,118,115,105,109,59],value:"∼⃒"},{key:[110,119,65,114,114,59],value:"⇖"},{key:[110,119,97,114,104,107,59],value:"⤣"},{key:[110,119,97,114,114,59],value:"↖"},{key:[110,119,97,114,114,111,119,59],value:"↖"},{key:[110,119,110,101,97,114,59],value:"⤧"},{key:[111,83,59],value:"Ⓢ"},{key:[111,97,99,117,116,101,59],value:"ó"},{key:[111,97,115,116,59],value:"⊛"},{key:[111,99,105,114,59],value:"⊚"},{key:[111,99,105,114,99,59],value:"ô"},{key:[111,99,121,59],value:"о"},{key:[111,100,97,115,104,59],value:"⊝"},{key:[111,100,98,108,97,99,59],value:"ő"},{key:[111,100,105,118,59],value:"⨸"},{key:[111,100,111,116,59],value:"⊙"},{key:[111,100,115,111,108,100,59],value:"⦼"},{key:[111,101,108,105,103,59],value:"œ"},{key:[111,102,99,105,114,59],value:"⦿"},{key:[111,102,114,59],value:"𝔬"},{key:[111,103,111,110,59],value:"˛"},{key:[111,103,114,97,118,101,59],value:"ò"},{key:[111,103,116,59],value:"⧁"},{key:[111,104,98,97,114,59],value:"⦵"},{key:[111,104,109,59],value:"Ω"},{key:[111,105,110,116,59],value:"∮"},{key:[111,108,97,114,114,59],value:"↺"},{key:[111,108,99,105,114,59],value:"⦾"},{key:[111,108,99,114,111,115,115,59],value:"⦻"},{key:[111,108,105,110,101,59],value:"‾"},{key:[111,108,116,59],value:"⧀"},{key:[111,109,97,99,114,59],value:"ō"},{key:[111,109,101,103,97,59],value:"ω"},{key:[111,109,105,99,114,111,110,59],value:"ο"},{key:[111,109,105,100,59],value:"⦶"},{key:[111,109,105,110,117,115,59],value:"⊖"},{key:[111,111,112,102,59],value:"𝕠"},{key:[111,112,97,114,59],value:"⦷"},{key:[111,112,101,114,112,59],value:"⦹"},{key:[111,112,108,117,115,59],value:"⊕"},{key:[111,114,59],value:"∨"},{key:[111,114,97,114,114,59],value:"↻"},{key:[111,114,100,59],value:"⩝"},{key:[111,114,100,101,114,59],value:"ℴ"},{key:[111,114,100,101,114,111,102,59],value:"ℴ"},{key:[111,114,100,102,59],value:"ª"},{key:[111,114,100,109,59],value:"º"},{key:[111,114,105,103,111,102,59],value:"⊶"},{key:[111,114,111,114,59],value:"⩖"},{key:[111,114,115,108,111,112,101,59],value:"⩗"},{key:[111,114,118,59],value:"⩛"},{key:[111,115,99,114,59],value:"ℴ"},{key:[111,115,108,97,115,104,59],value:"ø"},{key:[111,115,111,108,59],value:"⊘"},{key:[111,116,105,108,100,101,59],value:"õ"},{key:[111,116,105,109,101,115,59],value:"⊗"},{key:[111,116,105,109,101,115,97,115,59],value:"⨶"},{key:[111,117,109,108,59],value:"ö"},{key:[111,118,98,97,114,59],value:"⌽"},{key:[112,97,114,59],value:"∥"},{key:[112,97,114,97,59],value:"¶"},{key:[112,97,114,97,108,108,101,108,59],value:"∥"},{key:[112,97,114,115,105,109,59],value:"⫳"},{key:[112,97,114,115,108,59],value:"⫽"},{key:[112,97,114,116,59],value:"∂"},{key:[112,99,121,59],value:"п"},{key:[112,101,114,99,110,116,59],value:"%"},{key:[112,101,114,105,111,100,59],value:"."},{key:[112,101,114,109,105,108,59],value:"‰"},{key:[112,101,114,112,59],value:"⊥"},{key:[112,101,114,116,101,110,107,59],value:"‱"},{key:[112,102,114,59],value:"𝔭"},{key:[112,104,105,59],value:"φ"},{key:[112,104,105,118,59],value:"ϕ"},{key:[112,104,109,109,97,116,59],value:"ℳ"},{key:[112,104,111,110,101,59],value:"☎"},{key:[112,105,59],value:"π"},{key:[112,105,116,99,104,102,111,114,107,59],value:"⋔"},{key:[112,105,118,59],value:"ϖ"},{key:[112,108,97,110,99,107,59],value:"ℏ"},{key:[112,108,97,110,99,107,104,59],value:"ℎ"},{key:[112,108,97,110,107,118,59],value:"ℏ"},{key:[112,108,117,115,59],value:"+"},{key:[112,108,117,115,97,99,105,114,59],value:"⨣"},{key:[112,108,117,115,98,59],value:"⊞"},{key:[112,108,117,115,99,105,114,59],value:"⨢"},{key:[112,108,117,115,100,111,59],value:"∔"},{key:[112,108,117,115,100,117,59],value:"⨥"},{key:[112,108,117,115,101,59],value:"⩲"},{key:[112,108,117,115,109,110,59],value:"±"},{key:[112,108,117,115,115,105,109,59],value:"⨦"},{key:[112,108,117,115,116,119,111,59],value:"⨧"},{key:[112,109,59],value:"±"},{key:[112,111,105,110,116,105,110,116,59],value:"⨕"},{key:[112,111,112,102,59],value:"𝕡"},{key:[112,111,117,110,100,59],value:"£"},{key:[112,114,59],value:"≺"},{key:[112,114,69,59],value:"⪳"},{key:[112,114,97,112,59],value:"⪷"},{key:[112,114,99,117,101,59],value:"≼"},{key:[112,114,101,59],value:"⪯"},{key:[112,114,101,99,59],value:"≺"},{key:[112,114,101,99,97,112,112,114,111,120,59],value:"⪷"},{key:[112,114,101,99,99,117,114,108,121,101,113,59],value:"≼"},{key:[112,114,101,99,101,113,59],value:"⪯"},{key:[112,114,101,99,110,97,112,112,114,111,120,59],value:"⪹"},{key:[112,114,101,99,110,101,113,113,59],value:"⪵"},{key:[112,114,101,99,110,115,105,109,59],value:"⋨"},{key:[112,114,101,99,115,105,109,59],value:"≾"},{key:[112,114,105,109,101,59],value:"′"},{key:[112,114,105,109,101,115,59],value:"ℙ"},{key:[112,114,110,69,59],value:"⪵"},{key:[112,114,110,97,112,59],value:"⪹"},{key:[112,114,110,115,105,109,59],value:"⋨"},{key:[112,114,111,100,59],value:"∏"},{key:[112,114,111,102,97,108,97,114,59],value:"⌮"},{key:[112,114,111,102,108,105,110,101,59],value:"⌒"},{key:[112,114,111,102,115,117,114,102,59],value:"⌓"},{key:[112,114,111,112,59],value:"∝"},{key:[112,114,111,112,116,111,59],value:"∝"},{key:[112,114,115,105,109,59],value:"≾"},{key:[112,114,117,114,101,108,59],value:"⊰"},{key:[112,115,99,114,59],value:"𝓅"},{key:[112,115,105,59],value:"ψ"},{key:[112,117,110,99,115,112,59],value:" "},{key:[113,102,114,59],value:"𝔮"},{key:[113,105,110,116,59],value:"⨌"},{key:[113,111,112,102,59],value:"𝕢"},{key:[113,112,114,105,109,101,59],value:"⁗"},{key:[113,115,99,114,59],value:"𝓆"},{key:[113,117,97,116,101,114,110,105,111,110,115,59],value:"ℍ"},{key:[113,117,97,116,105,110,116,59],value:"⨖"},{key:[113,117,101,115,116,59],value:"?"},{key:[113,117,101,115,116,101,113,59],value:"≟"},{key:[113,117,111,116,59],value:'"'},{key:[114,65,97,114,114,59],value:"⇛"},{key:[114,65,114,114,59],value:"⇒"},{key:[114,65,116,97,105,108,59],value:"⤜"},{key:[114,66,97,114,114,59],value:"⤏"},{key:[114,72,97,114,59],value:"⥤"},{key:[114,97,99,101,59],value:"∽̱"},{key:[114,97,99,117,116,101,59],value:"ŕ"},{key:[114,97,100,105,99,59],value:"√"},{key:[114,97,101,109,112,116,121,118,59],value:"⦳"},{key:[114,97,110,103,59],value:"⟩"},{key:[114,97,110,103,100,59],value:"⦒"},{key:[114,97,110,103,101,59],value:"⦥"},{key:[114,97,110,103,108,101,59],value:"⟩"},{key:[114,97,113,117,111,59],value:"»"},{key:[114,97,114,114,59],value:"→"},{key:[114,97,114,114,97,112,59],value:"⥵"},{key:[114,97,114,114,98,59],value:"⇥"},{key:[114,97,114,114,98,102,115,59],value:"⤠"},{key:[114,97,114,114,99,59],value:"⤳"},{key:[114,97,114,114,102,115,59],value:"⤞"},{key:[114,97,114,114,104,107,59],value:"↪"},{key:[114,97,114,114,108,112,59],value:"↬"},{key:[114,97,114,114,112,108,59],value:"⥅"},{key:[114,97,114,114,115,105,109,59],value:"⥴"},{key:[114,97,114,114,116,108,59],value:"↣"},{key:[114,97,114,114,119,59],value:"↝"},{key:[114,97,116,97,105,108,59],value:"⤚"},{key:[114,97,116,105,111,59],value:"∶"},{key:[114,97,116,105,111,110,97,108,115,59],value:"ℚ"},{key:[114,98,97,114,114,59],value:"⤍"},{key:[114,98,98,114,107,59],value:"❳"},{key:[114,98,114,97,99,101,59],value:" }"},{key:[114,98,114,97,99,107,59],value:"]"},{key:[114,98,114,107,101,59],value:"⦌"},{key:[114,98,114,107,115,108,100,59],value:"⦎"},{key:[114,98,114,107,115,108,117,59],value:"⦐"},{key:[114,99,97,114,111,110,59],value:"ř"},{key:[114,99,101,100,105,108,59],value:"ŗ"},{key:[114,99,101,105,108,59],value:"⌉"},{key:[114,99,117,98,59],value:" }"},{key:[114,99,121,59],value:"р"},{key:[114,100,99,97,59],value:"⤷"},{key:[114,100,108,100,104,97,114,59],value:"⥩"},{key:[114,100,113,117,111,59],value:"”"},{key:[114,100,113,117,111,114,59],value:"”"},{key:[114,100,115,104,59],value:"↳"},{key:[114,101,97,108,59],value:"ℜ"},{key:[114,101,97,108,105,110,101,59],value:"ℛ"},{key:[114,101,97,108,112,97,114,116,59],value:"ℜ"},{key:[114,101,97,108,115,59],value:"ℝ"},{key:[114,101,99,116,59],value:"▭"},{key:[114,101,103,59],value:"®"},{key:[114,102,105,115,104,116,59],value:"⥽"},{key:[114,102,108,111,111,114,59],value:"⌋"},{key:[114,102,114,59],value:"𝔯"},{key:[114,104,97,114,100,59],value:"⇁"},{key:[114,104,97,114,117,59],value:"⇀"},{key:[114,104,97,114,117,108,59],value:"⥬"},{key:[114,104,111,59],value:"ρ"},{key:[114,104,111,118,59],value:"ϱ"},{key:[114,105,103,104,116,97,114,114,111,119,59],value:"→"},{key:[114,105,103,104,116,97,114,114,111,119,116,97,105,108,59],value:"↣"},{key:[114,105,103,104,116,104,97,114,112,111,111,110,100,111,119,110,59],value:"⇁"},{key:[114,105,103,104,116,104,97,114,112,111,111,110,117,112,59],value:"⇀"},{key:[114,105,103,104,116,108,101,102,116,97,114,114,111,119,115,59],value:"⇄"},{key:[114,105,103,104,116,108,101,102,116,104,97,114,112,111,111,110,115,59],value:"⇌"},{key:[114,105,103,104,116,114,105,103,104,116,97,114,114,111,119,115,59],value:"⇉"},{key:[114,105,103,104,116,115,113,117,105,103,97,114,114,111,119,59],value:"↝"},{key:[114,105,103,104,116,116,104,114,101,101,116,105,109,101,115,59],value:"⋌"},{key:[114,105,110,103,59],value:"˚"},{key:[114,105,115,105,110,103,100,111,116,115,101,113,59],value:"≓"},{key:[114,108,97,114,114,59],value:"⇄"},{key:[114,108,104,97,114,59],value:"⇌"},{key:[114,108,109,59],value:"‏"},{key:[114,109,111,117,115,116,59],value:"⎱"},{key:[114,109,111,117,115,116,97,99,104,101,59],value:"⎱"},{key:[114,110,109,105,100,59],value:"⫮"},{key:[114,111,97,110,103,59],value:"⟭"},{key:[114,111,97,114,114,59],value:"⇾"},{key:[114,111,98,114,107,59],value:"⟧"},{key:[114,111,112,97,114,59],value:"⦆"},{key:[114,111,112,102,59],value:"𝕣"},{key:[114,111,112,108,117,115,59],value:"⨮"},{key:[114,111,116,105,109,101,115,59],value:"⨵"},{key:[114,112,97,114,59],value:")"},{key:[114,112,97,114,103,116,59],value:"⦔"},{key:[114,112,112,111,108,105,110,116,59],value:"⨒"},{key:[114,114,97,114,114,59],value:"⇉"},{key:[114,115,97,113,117,111,59],value:"›"},{key:[114,115,99,114,59],value:"𝓇"},{key:[114,115,104,59],value:"↱"},{key:[114,115,113,98,59],value:"]"},{key:[114,115,113,117,111,59],value:"’"},{key:[114,115,113,117,111,114,59],value:"’"},{key:[114,116,104,114,101,101,59],value:"⋌"},{key:[114,116,105,109,101,115,59],value:"⋊"},{key:[114,116,114,105,59],value:"▹"},{key:[114,116,114,105,101,59],value:"⊵"},{key:[114,116,114,105,102,59],value:"▸"},{key:[114,116,114,105,108,116,114,105,59],value:"⧎"},{key:[114,117,108,117,104,97,114,59],value:"⥨"},{key:[114,120,59],value:"℞"},{key:[115,97,99,117,116,101,59],value:"ś"},{key:[115,98,113,117,111,59],value:"‚"},{key:[115,99,59],value:"≻"},{key:[115,99,69,59],value:"⪴"},{key:[115,99,97,112,59],value:"⪸"},{key:[115,99,97,114,111,110,59],value:"š"},{key:[115,99,99,117,101,59],value:"≽"},{key:[115,99,101,59],value:"⪰"},{key:[115,99,101,100,105,108,59],value:"ş"},{key:[115,99,105,114,99,59],value:"ŝ"},{key:[115,99,110,69,59],value:"⪶"},{key:[115,99,110,97,112,59],value:"⪺"},{key:[115,99,110,115,105,109,59],value:"⋩"},{key:[115,99,112,111,108,105,110,116,59],value:"⨓"},{key:[115,99,115,105,109,59],value:"≿"},{key:[115,99,121,59],value:"с"},{key:[115,100,111,116,59],value:"⋅"},{key:[115,100,111,116,98,59],value:"⊡"},{key:[115,100,111,116,101,59],value:"⩦"},{key:[115,101,65,114,114,59],value:"⇘"},{key:[115,101,97,114,104,107,59],value:"⤥"},{key:[115,101,97,114,114,59],value:"↘"},{key:[115,101,97,114,114,111,119,59],value:"↘"},{key:[115,101,99,116,59],value:"§"},{key:[115,101,109,105,59],value:";"},{key:[115,101,115,119,97,114,59],value:"⤩"},{key:[115,101,116,109,105,110,117,115,59],value:"∖"},{key:[115,101,116,109,110,59],value:"∖"},{key:[115,101,120,116,59],value:"✶"},{key:[115,102,114,59],value:"𝔰"},{key:[115,102,114,111,119,110,59],value:"⌢"},{key:[115,104,97,114,112,59],value:"♯"},{key:[115,104,99,104,99,121,59],value:"щ"},{key:[115,104,99,121,59],value:"ш"},{key:[115,104,111,114,116,109,105,100,59],value:"∣"},{key:[115,104,111,114,116,112,97,114,97,108,108,101,108,59],value:"∥"},{key:[115,104,121,59],value:"­"},{key:[115,105,103,109,97,59],value:"σ"},{key:[115,105,103,109,97,102,59],value:"ς"},{key:[115,105,103,109,97,118,59],value:"ς"},{key:[115,105,109,59],value:"∼"},{key:[115,105,109,100,111,116,59],value:"⩪"},{key:[115,105,109,101,59],value:"≃"},{key:[115,105,109,101,113,59],value:"≃"},{key:[115,105,109,103,59],value:"⪞"},{key:[115,105,109,103,69,59],value:"⪠"},{key:[115,105,109,108,59],value:"⪝"},{key:[115,105,109,108,69,59],value:"⪟"},{key:[115,105,109,110,101,59],value:"≆"},{key:[115,105,109,112,108,117,115,59],value:"⨤"},{key:[115,105,109,114,97,114,114,59],value:"⥲"},{key:[115,108,97,114,114,59],value:"←"},{key:[115,109,97,108,108,115,101,116,109,105,110,117,115,59],value:"∖"},{key:[115,109,97,115,104,112,59],value:"⨳"},{key:[115,109,101,112,97,114,115,108,59],value:"⧤"},{key:[115,109,105,100,59],value:"∣"},{key:[115,109,105,108,101,59],value:"⌣"},{key:[115,109,116,59],value:"⪪"},{key:[115,109,116,101,59],value:"⪬"},{key:[115,109,116,101,115,59],value:"⪬︀"},{key:[115,111,102,116,99,121,59],value:"ь"},{key:[115,111,108,59],value:"/"},{key:[115,111,108,98,59],value:"⧄"},{key:[115,111,108,98,97,114,59],value:"⌿"},{key:[115,111,112,102,59],value:"𝕤"},{key:[115,112,97,100,101,115,59],value:"♠"},{key:[115,112,97,100,101,115,117,105,116,59],value:"♠"},{key:[115,112,97,114,59],value:"∥"},{key:[115,113,99,97,112,59],value:"⊓"},{key:[115,113,99,97,112,115,59],value:"⊓︀"},{key:[115,113,99,117,112,59],value:"⊔"},{key:[115,113,99,117,112,115,59],value:"⊔︀"},{key:[115,113,115,117,98,59],value:"⊏"},{key:[115,113,115,117,98,101,59],value:"⊑"},{key:[115,113,115,117,98,115,101,116,59],value:"⊏"},{key:[115,113,115,117,98,115,101,116,101,113,59],value:"⊑"},{key:[115,113,115,117,112,59],value:"⊐"},{key:[115,113,115,117,112,101,59],value:"⊒"},{key:[115,113,115,117,112,115,101,116,59],value:"⊐"},{key:[115,113,115,117,112,115,101,116,101,113,59],value:"⊒"},{key:[115,113,117,59],value:"□"},{key:[115,113,117,97,114,101,59],value:"□"},{key:[115,113,117,97,114,102,59],value:"▪"},{key:[115,113,117,102,59],value:"▪"},{key:[115,114,97,114,114,59],value:"→"},{key:[115,115,99,114,59],value:"𝓈"},{key:[115,115,101,116,109,110,59],value:"∖"},{key:[115,115,109,105,108,101,59],value:"⌣"},{key:[115,115,116,97,114,102,59],value:"⋆"},{key:[115,116,97,114,59],value:"☆"},{key:[115,116,97,114,102,59],value:"★"},{key:[115,116,114,97,105,103,104,116,101,112,115,105,108,111,110,59],value:"ϵ"},{key:[115,116,114,97,105,103,104,116,112,104,105,59],value:"ϕ"},{key:[115,116,114,110,115,59],value:"¯"},{key:[115,117,98,59],value:"⊂"},{key:[115,117,98,69,59],value:"⫅"},{key:[115,117,98,100,111,116,59],value:"⪽"},{key:[115,117,98,101,59],value:"⊆"},{key:[115,117,98,101,100,111,116,59],value:"⫃"},{key:[115,117,98,109,117,108,116,59],value:"⫁"},{key:[115,117,98,110,69,59],value:"⫋"},{key:[115,117,98,110,101,59],value:"⊊"},{key:[115,117,98,112,108,117,115,59],value:"⪿"},{key:[115,117,98,114,97,114,114,59],value:"⥹"},{key:[115,117,98,115,101,116,59],value:"⊂"},{key:[115,117,98,115,101,116,101,113,59],value:"⊆"},{key:[115,117,98,115,101,116,101,113,113,59],value:"⫅"},{key:[115,117,98,115,101,116,110,101,113,59],value:"⊊"},{key:[115,117,98,115,101,116,110,101,113,113,59],value:"⫋"},{key:[115,117,98,115,105,109,59],value:"⫇"},{key:[115,117,98,115,117,98,59],value:"⫕"},{key:[115,117,98,115,117,112,59],value:"⫓"},{key:[115,117,99,99,59],value:"≻"},{key:[115,117,99,99,97,112,112,114,111,120,59],value:"⪸"},{key:[115,117,99,99,99,117,114,108,121,101,113,59],value:"≽"},{key:[115,117,99,99,101,113,59],value:"⪰"},{key:[115,117,99,99,110,97,112,112,114,111,120,59],value:"⪺"},{key:[115,117,99,99,110,101,113,113,59],value:"⪶"},{key:[115,117,99,99,110,115,105,109,59],value:"⋩"},{key:[115,117,99,99,115,105,109,59],value:"≿"},{key:[115,117,109,59],value:"∑"},{key:[115,117,110,103,59],value:"♪"},{key:[115,117,112,49,59],value:"¹"},{key:[115,117,112,50,59],value:"²"},{key:[115,117,112,51,59],value:"³"},{key:[115,117,112,59],value:"⊃"},{key:[115,117,112,69,59],value:"⫆"},{key:[115,117,112,100,111,116,59],value:"⪾"},{key:[115,117,112,100,115,117,98,59],value:"⫘"},{key:[115,117,112,101,59],value:"⊇"},{key:[115,117,112,101,100,111,116,59],value:"⫄"},{key:[115,117,112,104,115,111,108,59],value:"⟉"},{key:[115,117,112,104,115,117,98,59],value:"⫗"},{key:[115,117,112,108,97,114,114,59],value:"⥻"},{key:[115,117,112,109,117,108,116,59],value:"⫂"},{key:[115,117,112,110,69,59],value:"⫌"},{key:[115,117,112,110,101,59],value:"⊋"},{key:[115,117,112,112,108,117,115,59],value:"⫀"},{key:[115,117,112,115,101,116,59],value:"⊃"},{key:[115,117,112,115,101,116,101,113,59],value:"⊇"},{key:[115,117,112,115,101,116,101,113,113,59],value:"⫆"},{key:[115,117,112,115,101,116,110,101,113,59],value:"⊋"},{key:[115,117,112,115,101,116,110,101,113,113,59],value:"⫌"},{key:[115,117,112,115,105,109,59],value:"⫈"},{key:[115,117,112,115,117,98,59],value:"⫔"},{key:[115,117,112,115,117,112,59],value:"⫖"},{key:[115,119,65,114,114,59],value:"⇙"},{key:[115,119,97,114,104,107,59],value:"⤦"},{key:[115,119,97,114,114,59],value:"↙"},{key:[115,119,97,114,114,111,119,59],value:"↙"},{key:[115,119,110,119,97,114,59],value:"⤪"},{key:[115,122,108,105,103,59],value:"ß"},{key:[116,97,114,103,101,116,59],value:"⌖"},{key:[116,97,117,59],value:"τ"},{key:[116,98,114,107,59],value:"⎴"},{key:[116,99,97,114,111,110,59],value:"ť"},{key:[116,99,101,100,105,108,59],value:"ţ"},{key:[116,99,121,59],value:"т"},{key:[116,100,111,116,59],value:"⃛"},{key:[116,101,108,114,101,99,59],value:"⌕"},{key:[116,102,114,59],value:"𝔱"},{key:[116,104,101,114,101,52,59],value:"∴"},{key:[116,104,101,114,101,102,111,114,101,59],value:"∴"},{key:[116,104,101,116,97,59],value:"θ"},{key:[116,104,101,116,97,115,121,109,59],value:"ϑ"},{key:[116,104,101,116,97,118,59],value:"ϑ"},{key:[116,104,105,99,107,97,112,112,114,111,120,59],value:"≈"},{key:[116,104,105,99,107,115,105,109,59],value:"∼"},{key:[116,104,105,110,115,112,59],value:" "},{key:[116,104,107,97,112,59],value:"≈"},{key:[116,104,107,115,105,109,59],value:"∼"},{key:[116,104,111,114,110,59],value:"þ"},{key:[116,105,108,100,101,59],value:"˜"},{key:[116,105,109,101,115,59],value:"×"},{key:[116,105,109,101,115,98,59],value:"⊠"},{key:[116,105,109,101,115,98,97,114,59],value:"⨱"},{key:[116,105,109,101,115,100,59],value:"⨰"},{key:[116,105,110,116,59],value:"∭"},{key:[116,111,101,97,59],value:"⤨"},{key:[116,111,112,59],value:"⊤"},{key:[116,111,112,98,111,116,59],value:"⌶"},{key:[116,111,112,99,105,114,59],value:"⫱"},{key:[116,111,112,102,59],value:"𝕥"},{key:[116,111,112,102,111,114,107,59],value:"⫚"},{key:[116,111,115,97,59],value:"⤩"},{key:[116,112,114,105,109,101,59],value:"‴"},{key:[116,114,97,100,101,59],value:"™"},{key:[116,114,105,97,110,103,108,101,59],value:"▵"},{key:[116,114,105,97,110,103,108,101,100,111,119,110,59],value:"▿"},{key:[116,114,105,97,110,103,108,101,108,101,102,116,59],value:"◃"},{key:[116,114,105,97,110,103,108,101,108,101,102,116,101,113,59],value:"⊴"},{key:[116,114,105,97,110,103,108,101,113,59],value:"≜"},{key:[116,114,105,97,110,103,108,101,114,105,103,104,116,59],value:"▹"},{key:[116,114,105,97,110,103,108,101,114,105,103,104,116,101,113,59],value:"⊵"},{key:[116,114,105,100,111,116,59],value:"◬"},{key:[116,114,105,101,59],value:"≜"},{key:[116,114,105,109,105,110,117,115,59],value:"⨺"},{key:[116,114,105,112,108,117,115,59],value:"⨹"},{key:[116,114,105,115,98,59],value:"⧍"},{key:[116,114,105,116,105,109,101,59],value:"⨻"},{key:[116,114,112,101,122,105,117,109,59],value:"⏢"},{key:[116,115,99,114,59],value:"𝓉"},{key:[116,115,99,121,59],value:"ц"},{key:[116,115,104,99,121,59],value:"ћ"},{key:[116,115,116,114,111,107,59],value:"ŧ"},{key:[116,119,105,120,116,59],value:"≬"},{key:[116,119,111,104,101,97,100,108,101,102,116,97,114,114,111,119,59],value:"↞"},{key:[116,119,111,104,101,97,100,114,105,103,104,116,97,114,114,111,119,59],value:"↠"},{key:[117,65,114,114,59],value:"⇑"},{key:[117,72,97,114,59],value:"⥣"},{key:[117,97,99,117,116,101,59],value:"ú"},{key:[117,97,114,114,59],value:"↑"},{key:[117,98,114,99,121,59],value:"ў"},{key:[117,98,114,101,118,101,59],value:"ŭ"},{key:[117,99,105,114,99,59],value:"û"},{key:[117,99,121,59],value:"у"},{key:[117,100,97,114,114,59],value:"⇅"},{key:[117,100,98,108,97,99,59],value:"ű"},{key:[117,100,104,97,114,59],value:"⥮"},{key:[117,102,105,115,104,116,59],value:"⥾"},{key:[117,102,114,59],value:"𝔲"},{key:[117,103,114,97,118,101,59],value:"ù"},{key:[117,104,97,114,108,59],value:"↿"},{key:[117,104,97,114,114,59],value:"↾"},{key:[117,104,98,108,107,59],value:"▀"},{key:[117,108,99,111,114,110,59],value:"⌜"},{key:[117,108,99,111,114,110,101,114,59],value:"⌜"},{key:[117,108,99,114,111,112,59],value:"⌏"},{key:[117,108,116,114,105,59],value:"◸"},{key:[117,109,97,99,114,59],value:"ū"},{key:[117,109,108,59],value:"¨"},{key:[117,111,103,111,110,59],value:"ų"},{key:[117,111,112,102,59],value:"𝕦"},{key:[117,112,97,114,114,111,119,59],value:"↑"},{key:[117,112,100,111,119,110,97,114,114,111,119,59],value:"↕"},{key:[117,112,104,97,114,112,111,111,110,108,101,102,116,59],value:"↿"},{key:[117,112,104,97,114,112,111,111,110,114,105,103,104,116,59],value:"↾"},{key:[117,112,108,117,115,59],value:"⊎"},{key:[117,112,115,105,59],value:"υ"},{key:[117,112,115,105,104,59],value:"ϒ"},{key:[117,112,115,105,108,111,110,59],value:"υ"},{key:[117,112,117,112,97,114,114,111,119,115,59],value:"⇈"},{key:[117,114,99,111,114,110,59],value:"⌝"},{key:[117,114,99,111,114,110,101,114,59],value:"⌝"},{key:[117,114,99,114,111,112,59],value:"⌎"},{key:[117,114,105,110,103,59],value:"ů"},{key:[117,114,116,114,105,59],value:"◹"},{key:[117,115,99,114,59],value:"𝓊"},{key:[117,116,100,111,116,59],value:"⋰"},{key:[117,116,105,108,100,101,59],value:"ũ"},{key:[117,116,114,105,59],value:"▵"},{key:[117,116,114,105,102,59],value:"▴"},{key:[117,117,97,114,114,59],value:"⇈"},{key:[117,117,109,108,59],value:"ü"},{key:[117,119,97,110,103,108,101,59],value:"⦧"},{key:[118,65,114,114,59],value:"⇕"},{key:[118,66,97,114,59],value:"⫨"},{key:[118,66,97,114,118,59],value:"⫩"},{key:[118,68,97,115,104,59],value:"⊨"},{key:[118,97,110,103,114,116,59],value:"⦜"},{key:[118,97,114,101,112,115,105,108,111,110,59],value:"ϵ"},{key:[118,97,114,107,97,112,112,97,59],value:"ϰ"},{key:[118,97,114,110,111,116,104,105,110,103,59],value:"∅"},{key:[118,97,114,112,104,105,59],value:"ϕ"},{key:[118,97,114,112,105,59],value:"ϖ"},{key:[118,97,114,112,114,111,112,116,111,59],value:"∝"},{key:[118,97,114,114,59],value:"↕"},{key:[118,97,114,114,104,111,59],value:"ϱ"},{key:[118,97,114,115,105,103,109,97,59],value:"ς"},{key:[118,97,114,115,117,98,115,101,116,110,101,113,59],value:"⊊︀"},{key:[118,97,114,115,117,98,115,101,116,110,101,113,113,59],value:"⫋︀"},{key:[118,97,114,115,117,112,115,101,116,110,101,113,59],value:"⊋︀"},{key:[118,97,114,115,117,112,115,101,116,110,101,113,113,59],value:"⫌︀"},{key:[118,97,114,116,104,101,116,97,59],value:"ϑ"},{key:[118,97,114,116,114,105,97,110,103,108,101,108,101,102,116,59],value:"⊲"},{key:[118,97,114,116,114,105,97,110,103,108,101,114,105,103,104,116,59],value:"⊳"},{key:[118,99,121,59],value:"в"},{key:[118,100,97,115,104,59],value:"⊢"},{key:[118,101,101,59],value:"∨"},{key:[118,101,101,98,97,114,59],value:"⊻"},{key:[118,101,101,101,113,59],value:"≚"},{key:[118,101,108,108,105,112,59],value:"⋮"},{key:[118,101,114,98,97,114,59],value:"|"},{key:[118,101,114,116,59],value:"|"},{key:[118,102,114,59],value:"𝔳"},{key:[118,108,116,114,105,59],value:"⊲"},{key:[118,110,115,117,98,59],value:"⊂⃒"},{key:[118,110,115,117,112,59],value:"⊃⃒"},{key:[118,111,112,102,59],value:"𝕧"},{key:[118,112,114,111,112,59],value:"∝"},{key:[118,114,116,114,105,59],value:"⊳"},{key:[118,115,99,114,59],value:"𝓋"},{key:[118,115,117,98,110,69,59],value:"⫋︀"},{key:[118,115,117,98,110,101,59],value:"⊊︀"},{key:[118,115,117,112,110,69,59],value:"⫌︀"},{key:[118,115,117,112,110,101,59],value:"⊋︀"},{key:[118,122,105,103,122,97,103,59],value:"⦚"},{key:[119,99,105,114,99,59],value:"ŵ"},{key:[119,101,100,98,97,114,59],value:"⩟"},{key:[119,101,100,103,101,59],value:"∧"},{key:[119,101,100,103,101,113,59],value:"≙"},{key:[119,101,105,101,114,112,59],value:"℘"},{key:[119,102,114,59],value:"𝔴"},{key:[119,111,112,102,59],value:"𝕨"},{key:[119,112,59],value:"℘"},{key:[119,114,59],value:"≀"},{key:[119,114,101,97,116,104,59],value:"≀"},{key:[119,115,99,114,59],value:"𝓌"},{key:[120,99,97,112,59],value:"⋂"},{key:[120,99,105,114,99,59],value:"◯"},{key:[120,99,117,112,59],value:"⋃"},{key:[120,100,116,114,105,59],value:"▽"},{key:[120,102,114,59],value:"𝔵"},{key:[120,104,65,114,114,59],value:"⟺"},{key:[120,104,97,114,114,59],value:"⟷"},{key:[120,105,59],value:"ξ"},{key:[120,108,65,114,114,59],value:"⟸"},{key:[120,108,97,114,114,59],value:"⟵"},{key:[120,109,97,112,59],value:"⟼"},{key:[120,110,105,115,59],value:"⋻"},{key:[120,111,100,111,116,59],value:"⨀"},{key:[120,111,112,102,59],value:"𝕩"},{key:[120,111,112,108,117,115,59],value:"⨁"},{key:[120,111,116,105,109,101,59],value:"⨂"},{key:[120,114,65,114,114,59],value:"⟹"},{key:[120,114,97,114,114,59],value:"⟶"},{key:[120,115,99,114,59],value:"𝓍"},{key:[120,115,113,99,117,112,59],value:"⨆"},{key:[120,117,112,108,117,115,59],value:"⨄"},{key:[120,117,116,114,105,59],value:"△"},{key:[120,118,101,101,59],value:"⋁"},{key:[120,119,101,100,103,101,59],value:"⋀"},{key:[121,97,99,117,116,101,59],value:"ý"},{key:[121,97,99,121,59],value:"я"},{key:[121,99,105,114,99,59],value:"ŷ"},{key:[121,99,121,59],value:"ы"},{key:[121,101,110,59],value:"¥"},{key:[121,102,114,59],value:"𝔶"},{key:[121,105,99,121,59],value:"ї"},{key:[121,111,112,102,59],value:"𝕪"},{key:[121,115,99,114,59],value:"𝓎"},{key:[121,117,99,121,59],value:"ю"},{key:[121,117,109,108,59],value:"ÿ"},{key:[122,97,99,117,116,101,59],value:"ź"},{key:[122,99,97,114,111,110,59],value:"ž"},{key:[122,99,121,59],value:"з"},{key:[122,100,111,116,59],value:"ż"},{key:[122,101,101,116,114,102,59],value:"ℨ"},{key:[122,101,116,97,59],value:"ζ"},{key:[122,102,114,59],value:"𝔷"},{key:[122,104,99,121,59],value:"ж"},{key:[122,105,103,114,97,114,114,59],value:"⇝"},{key:[122,111,112,102,59],value:"𝕫"},{key:[122,115,99,114,59],value:"𝓏"},{key:[122,119,106,59],value:"‍"},{key:[122,119,110,106,59],value:"‌"}];var UnicodePcCodePoint;(function(j){j[j.LOW_LINE=95]="LOW_LINE",j[j.UNDERTIE=8255]="UNDERTIE",j[j.CHARACTER_TIE=8256]="CHARACTER_TIE",j[j.INVERTED_UNDERTIE=8276]="INVERTED_UNDERTIE",j[j.PRESENTATION_FORM_FOR_VERTICAL_LOW_LINE=65075]="PRESENTATION_FORM_FOR_VERTICAL_LOW_LINE",j[j.PRESENTATION_FORM_FOR_VERTICAL_WAVY_LOW_LINE=65076]="PRESENTATION_FORM_FOR_VERTICAL_WAVY_LOW_LINE",j[j.DASHED_LOW_LINE=65101]="DASHED_LOW_LINE",j[j.CENTRELINE_LOW_LINE=65102]="CENTRELINE_LOW_LINE",j[j.WAVY_LOW_LINE=65103]="WAVY_LOW_LINE",j[j.FULLWIDTH_LOW_LINE=65343]="FULLWIDTH_LOW_LINE"})(UnicodePcCodePoint||(UnicodePcCodePoint={}));var UnicodePdCodePoint;(function(j){j[j.HYPHEN_MINUS=45]="HYPHEN_MINUS",j[j.ARMENIAN_HYPHEN=1418]="ARMENIAN_HYPHEN",j[j.HEBREW_PUNCTUATION_MAQAF=1470]="HEBREW_PUNCTUATION_MAQAF",j[j.CANADIAN_SYLLABICS_HYPHEN=5120]="CANADIAN_SYLLABICS_HYPHEN",j[j.MONGOLIAN_TODO_SOFT_HYPHEN=6150]="MONGOLIAN_TODO_SOFT_HYPHEN",j[j.HYPHEN=8208]="HYPHEN",j[j.NON_BREAKING_HYPHEN=8209]="NON_BREAKING_HYPHEN",j[j.FIGURE_DASH=8210]="FIGURE_DASH",j[j.EN_DASH=8211]="EN_DASH",j[j.EM_DASH=8212]="EM_DASH",j[j.HORIZONTAL_BAR=8213]="HORIZONTAL_BAR",j[j.DOUBLE_OBLIQUE_HYPHEN=11799]="DOUBLE_OBLIQUE_HYPHEN",j[j.HYPHEN_WITH_DIAERESIS=11802]="HYPHEN_WITH_DIAERESIS",j[j.TWO_EM_DASH=11834]="TWO_EM_DASH",j[j.THREE_EM_DASH=11835]="THREE_EM_DASH",j[j.DOUBLE_HYPHEN=11840]="DOUBLE_HYPHEN",j[j.WAVE_DASH=12316]="WAVE_DASH",j[j.WAVY_DASH=12336]="WAVY_DASH",j[j.KATAKANA_HIRAGANA_DOUBLE_HYPHEN=12448]="KATAKANA_HIRAGANA_DOUBLE_HYPHEN",j[j.PRESENTATION_FORM_FOR_VERTICAL_EM_DASH=65073]="PRESENTATION_FORM_FOR_VERTICAL_EM_DASH",j[j.PRESENTATION_FORM_FOR_VERTICAL_EN_DASH=65074]="PRESENTATION_FORM_FOR_VERTICAL_EN_DASH",j[j.SMALL_EM_DASH=65112]="SMALL_EM_DASH",j[j.SMALL_HYPHEN_MINUS=65123]="SMALL_HYPHEN_MINUS",j[j.FULLWIDTH_HYPHEN_MINUS=65293]="FULLWIDTH_HYPHEN_MINUS",j[j.YEZIDI_HYPHENATION_MARK=69293]="YEZIDI_HYPHENATION_MARK"})(UnicodePdCodePoint||(UnicodePdCodePoint={}));var UnicodePeCodePoint;(function(j){j[j.RIGHT_PARENTHESIS=41]="RIGHT_PARENTHESIS",j[j.RIGHT_SQUARE_BRACKET=93]="RIGHT_SQUARE_BRACKET",j[j.RIGHT_CURLY_BRACKET=125]="RIGHT_CURLY_BRACKET",j[j.TIBETAN_MARK_GUG_RTAGS_GYAS=3899]="TIBETAN_MARK_GUG_RTAGS_GYAS",j[j.TIBETAN_MARK_ANG_KHANG_GYAS=3901]="TIBETAN_MARK_ANG_KHANG_GYAS",j[j.OGHAM_REVERSED_FEATHER_MARK=5788]="OGHAM_REVERSED_FEATHER_MARK",j[j.RIGHT_SQUARE_BRACKET_WITH_QUILL=8262]="RIGHT_SQUARE_BRACKET_WITH_QUILL",j[j.SUPERSCRIPT_RIGHT_PARENTHESIS=8318]="SUPERSCRIPT_RIGHT_PARENTHESIS",j[j.SUBSCRIPT_RIGHT_PARENTHESIS=8334]="SUBSCRIPT_RIGHT_PARENTHESIS",j[j.RIGHT_CEILING=8969]="RIGHT_CEILING",j[j.RIGHT_FLOOR=8971]="RIGHT_FLOOR",j[j.RIGHT_POINTING_ANGLE_BRACKET=9002]="RIGHT_POINTING_ANGLE_BRACKET",j[j.MEDIUM_RIGHT_PARENTHESIS_ORNAMENT=10089]="MEDIUM_RIGHT_PARENTHESIS_ORNAMENT",j[j.MEDIUM_FLATTENED_RIGHT_PARENTHESIS_ORNAMENT=10091]="MEDIUM_FLATTENED_RIGHT_PARENTHESIS_ORNAMENT",j[j.MEDIUM_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT=10093]="MEDIUM_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT",j[j.HEAVY_RIGHT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT=10095]="HEAVY_RIGHT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT",j[j.HEAVY_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT=10097]="HEAVY_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT",j[j.LIGHT_RIGHT_TORTOISE_SHELL_BRACKET_ORNAMENT=10099]="LIGHT_RIGHT_TORTOISE_SHELL_BRACKET_ORNAMENT",j[j.MEDIUM_RIGHT_CURLY_BRACKET_ORNAMENT=10101]="MEDIUM_RIGHT_CURLY_BRACKET_ORNAMENT",j[j.RIGHT_S_SHAPED_BAG_DELIMITER=10182]="RIGHT_S_SHAPED_BAG_DELIMITER",j[j.MATHEMATICAL_RIGHT_WHITE_SQUARE_BRACKET=10215]="MATHEMATICAL_RIGHT_WHITE_SQUARE_BRACKET",j[j.MATHEMATICAL_RIGHT_ANGLE_BRACKET=10217]="MATHEMATICAL_RIGHT_ANGLE_BRACKET",j[j.MATHEMATICAL_RIGHT_DOUBLE_ANGLE_BRACKET=10219]="MATHEMATICAL_RIGHT_DOUBLE_ANGLE_BRACKET",j[j.MATHEMATICAL_RIGHT_WHITE_TORTOISE_SHELL_BRACKET=10221]="MATHEMATICAL_RIGHT_WHITE_TORTOISE_SHELL_BRACKET",j[j.MATHEMATICAL_RIGHT_FLATTENED_PARENTHESIS=10223]="MATHEMATICAL_RIGHT_FLATTENED_PARENTHESIS",j[j.RIGHT_WHITE_CURLY_BRACKET=10628]="RIGHT_WHITE_CURLY_BRACKET",j[j.RIGHT_WHITE_PARENTHESIS=10630]="RIGHT_WHITE_PARENTHESIS",j[j.Z_NOTATION_RIGHT_IMAGE_BRACKET=10632]="Z_NOTATION_RIGHT_IMAGE_BRACKET",j[j.Z_NOTATION_RIGHT_BINDING_BRACKET=10634]="Z_NOTATION_RIGHT_BINDING_BRACKET",j[j.RIGHT_SQUARE_BRACKET_WITH_UNDERBAR=10636]="RIGHT_SQUARE_BRACKET_WITH_UNDERBAR",j[j.RIGHT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER=10638]="RIGHT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER",j[j.RIGHT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER=10640]="RIGHT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER",j[j.RIGHT_ANGLE_BRACKET_WITH_DOT=10642]="RIGHT_ANGLE_BRACKET_WITH_DOT",j[j.RIGHT_ARC_GREATER_THAN_BRACKET=10644]="RIGHT_ARC_GREATER_THAN_BRACKET",j[j.DOUBLE_RIGHT_ARC_LESS_THAN_BRACKET=10646]="DOUBLE_RIGHT_ARC_LESS_THAN_BRACKET",j[j.RIGHT_BLACK_TORTOISE_SHELL_BRACKET=10648]="RIGHT_BLACK_TORTOISE_SHELL_BRACKET",j[j.RIGHT_WIGGLY_FENCE=10713]="RIGHT_WIGGLY_FENCE",j[j.RIGHT_DOUBLE_WIGGLY_FENCE=10715]="RIGHT_DOUBLE_WIGGLY_FENCE",j[j.RIGHT_POINTING_CURVED_ANGLE_BRACKET=10749]="RIGHT_POINTING_CURVED_ANGLE_BRACKET",j[j.TOP_RIGHT_HALF_BRACKET=11811]="TOP_RIGHT_HALF_BRACKET",j[j.BOTTOM_RIGHT_HALF_BRACKET=11813]="BOTTOM_RIGHT_HALF_BRACKET",j[j.RIGHT_SIDEWAYS_U_BRACKET=11815]="RIGHT_SIDEWAYS_U_BRACKET",j[j.RIGHT_DOUBLE_PARENTHESIS=11817]="RIGHT_DOUBLE_PARENTHESIS",j[j.RIGHT_ANGLE_BRACKET=12297]="RIGHT_ANGLE_BRACKET",j[j.RIGHT_DOUBLE_ANGLE_BRACKET=12299]="RIGHT_DOUBLE_ANGLE_BRACKET",j[j.RIGHT_CORNER_BRACKET=12301]="RIGHT_CORNER_BRACKET",j[j.RIGHT_WHITE_CORNER_BRACKET=12303]="RIGHT_WHITE_CORNER_BRACKET",j[j.RIGHT_BLACK_LENTICULAR_BRACKET=12305]="RIGHT_BLACK_LENTICULAR_BRACKET",j[j.RIGHT_TORTOISE_SHELL_BRACKET=12309]="RIGHT_TORTOISE_SHELL_BRACKET",j[j.RIGHT_WHITE_LENTICULAR_BRACKET=12311]="RIGHT_WHITE_LENTICULAR_BRACKET",j[j.RIGHT_WHITE_TORTOISE_SHELL_BRACKET=12313]="RIGHT_WHITE_TORTOISE_SHELL_BRACKET",j[j.RIGHT_WHITE_SQUARE_BRACKET=12315]="RIGHT_WHITE_SQUARE_BRACKET",j[j.DOUBLE_PRIME_QUOTATION_MARK=12318]="DOUBLE_PRIME_QUOTATION_MARK",j[j.LOW_DOUBLE_PRIME_QUOTATION_MARK=12319]="LOW_DOUBLE_PRIME_QUOTATION_MARK",j[j.ORNATE_LEFT_PARENTHESIS=64830]="ORNATE_LEFT_PARENTHESIS",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_LENTICULAR_BRAKCET=65048]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_LENTICULAR_BRAKCET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_PARENTHESIS=65078]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_PARENTHESIS",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CURLY_BRACKET=65080]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CURLY_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_TORTOISE_SHELL_BRACKET=65082]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_TORTOISE_SHELL_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_BLACK_LENTICULAR_BRACKET=65084]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_BLACK_LENTICULAR_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_DOUBLE_ANGLE_BRACKET=65086]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_DOUBLE_ANGLE_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_ANGLE_BRACKET=65088]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_ANGLE_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CORNER_BRACKET=65090]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CORNER_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_CORNER_BRACKET=65092]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_CORNER_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_RIGHT_SQUARE_BRACKET=65096]="PRESENTATION_FORM_FOR_VERTICAL_RIGHT_SQUARE_BRACKET",j[j.SMALL_RIGHT_PARENTHESIS=65114]="SMALL_RIGHT_PARENTHESIS",j[j.SMALL_RIGHT_CURLY_BRACKET=65116]="SMALL_RIGHT_CURLY_BRACKET",j[j.SMALL_RIGHT_TORTOISE_SHELL_BRACKET=65118]="SMALL_RIGHT_TORTOISE_SHELL_BRACKET",j[j.FULLWIDTH_RIGHT_PARENTHESIS=65289]="FULLWIDTH_RIGHT_PARENTHESIS",j[j.FULLWIDTH_RIGHT_SQUARE_BRACKET=65341]="FULLWIDTH_RIGHT_SQUARE_BRACKET",j[j.FULLWIDTH_RIGHT_CURLY_BRACKET=65373]="FULLWIDTH_RIGHT_CURLY_BRACKET",j[j.FULLWIDTH_RIGHT_WHITE_PARENTHESIS=65376]="FULLWIDTH_RIGHT_WHITE_PARENTHESIS",j[j.HALFWIDTH_RIGHT_CORNER_BRACKET=65379]="HALFWIDTH_RIGHT_CORNER_BRACKET"})(UnicodePeCodePoint||(UnicodePeCodePoint={}));var UnicodePfCodePoint;(function(j){j[j.RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK=187]="RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK",j[j.RIGHT_SINGLE_QUOTATION_MARK=8217]="RIGHT_SINGLE_QUOTATION_MARK",j[j.RIGHT_DOUBLE_QUOTATION_MARK=8221]="RIGHT_DOUBLE_QUOTATION_MARK",j[j.SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK=8250]="SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK",j[j.RIGHT_SUBSTITUTION_BRACKET=11779]="RIGHT_SUBSTITUTION_BRACKET",j[j.RIGHT_DOTTED_SUBSTITUTION_BRACKET=11781]="RIGHT_DOTTED_SUBSTITUTION_BRACKET",j[j.RIGHT_TRANSPOSITION_BRACKET=11786]="RIGHT_TRANSPOSITION_BRACKET",j[j.RIGHT_RAISED_OMISSION_BRACKET=11789]="RIGHT_RAISED_OMISSION_BRACKET",j[j.RIGHT_LOW_PARAPHRASE_BRACKET=11805]="RIGHT_LOW_PARAPHRASE_BRACKET",j[j.RIGHT_VERTICAL_BAR_WITH_QUILL=11809]="RIGHT_VERTICAL_BAR_WITH_QUILL"})(UnicodePfCodePoint||(UnicodePfCodePoint={}));var UnicodePiCodePoint;(function(j){j[j.LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK=171]="LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK",j[j.LEFT_SINGLE_QUOTATION_MARK=8216]="LEFT_SINGLE_QUOTATION_MARK",j[j.SINGLE_HIGH_REVERSED_9_QUOTATION_MARK=8219]="SINGLE_HIGH_REVERSED_9_QUOTATION_MARK",j[j.LEFT_DOUBLE_QUOTATION_MARK=8220]="LEFT_DOUBLE_QUOTATION_MARK",j[j.DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK=8223]="DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK",j[j.SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK=8249]="SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK",j[j.LEFT_SUBSTITUTION_BRACKET=11778]="LEFT_SUBSTITUTION_BRACKET",j[j.LEFT_DOTTED_SUBSTITUTION_BRACKET=11780]="LEFT_DOTTED_SUBSTITUTION_BRACKET",j[j.LEFT_TRANSPOSITION_BRACKET=11785]="LEFT_TRANSPOSITION_BRACKET",j[j.LEFT_RAISED_OMISSION_BRACKET=11788]="LEFT_RAISED_OMISSION_BRACKET",j[j.LEFT_LOW_PARAPHRASE_BRACKET=11804]="LEFT_LOW_PARAPHRASE_BRACKET",j[j.LEFT_VERTICAL_BAR_WITH_QUILL=11808]="LEFT_VERTICAL_BAR_WITH_QUILL"})(UnicodePiCodePoint||(UnicodePiCodePoint={}));var UnicodePoCodePoint;(function(j){j[j.EXCLAMATION_MARK=33]="EXCLAMATION_MARK",j[j.QUOTATION_MARK=34]="QUOTATION_MARK",j[j.NUMBER_SIGN=35]="NUMBER_SIGN",j[j.PERCENT_SIGN=37]="PERCENT_SIGN",j[j.AMPERSAND=38]="AMPERSAND",j[j.APOSTROPHE=39]="APOSTROPHE",j[j.ASTERISK=42]="ASTERISK",j[j.COMMA=44]="COMMA",j[j.FULL_STOP=46]="FULL_STOP",j[j.SOLIDUS=47]="SOLIDUS",j[j.COLON=58]="COLON",j[j.SEMICOLON=59]="SEMICOLON",j[j.QUESTION_MARK=63]="QUESTION_MARK",j[j.COMMERCIAL_AT=64]="COMMERCIAL_AT",j[j.REVERSE_SOLIDUS=92]="REVERSE_SOLIDUS",j[j.INVERTED_EXCLAMATION_MARK=161]="INVERTED_EXCLAMATION_MARK",j[j.SECTION_SIGN=167]="SECTION_SIGN",j[j.PILCROW_SIGN=182]="PILCROW_SIGN",j[j.MIDDLE_DOT=183]="MIDDLE_DOT",j[j.INVERTED_QUESTION_MARK=191]="INVERTED_QUESTION_MARK",j[j.GREEK_QUESTION_MARK=894]="GREEK_QUESTION_MARK",j[j.GREEK_ANO_TELEIA=903]="GREEK_ANO_TELEIA",j[j.ARMENIAN_APOSTROPHE=1370]="ARMENIAN_APOSTROPHE",j[j.ARMENIAN_EMPHASIS_MARK=1371]="ARMENIAN_EMPHASIS_MARK",j[j.ARMENIAN_EXCLAMATION_MARK=1372]="ARMENIAN_EXCLAMATION_MARK",j[j.ARMENIAN_COMMA=1373]="ARMENIAN_COMMA",j[j.ARMENIAN_QUESTION_MARK=1374]="ARMENIAN_QUESTION_MARK",j[j.ARMENIAN_ABBREVIATION_MARK=1375]="ARMENIAN_ABBREVIATION_MARK",j[j.ARMENIAN_FULL_STOP=1417]="ARMENIAN_FULL_STOP",j[j.HEBREW_PUNCTUATION_PASEQ=1472]="HEBREW_PUNCTUATION_PASEQ",j[j.HEBREW_PUNCTUATION_SOF_PASUQ=1475]="HEBREW_PUNCTUATION_SOF_PASUQ",j[j.HEBREW_PUNCTUATION_NUN_HAFUKHA=1478]="HEBREW_PUNCTUATION_NUN_HAFUKHA",j[j.HEBREW_PUNCTUATION_GERESH=1523]="HEBREW_PUNCTUATION_GERESH",j[j.HEBREW_PUNCTUATION_GERSHAYIM=1524]="HEBREW_PUNCTUATION_GERSHAYIM",j[j.ARABIC_INDIC_PER_MILLE_SIGN=1545]="ARABIC_INDIC_PER_MILLE_SIGN",j[j.ARABIC_INDIC_PER_TEN_THOUSAND_SIGN=1546]="ARABIC_INDIC_PER_TEN_THOUSAND_SIGN",j[j.ARABIC_COMMA=1548]="ARABIC_COMMA",j[j.ARABIC_DATE_SEPARATOR=1549]="ARABIC_DATE_SEPARATOR",j[j.ARABIC_SEMICOLON=1563]="ARABIC_SEMICOLON",j[j.ARABIC_TRIPLE_DOT_PUNCTUATION_MARK=1566]="ARABIC_TRIPLE_DOT_PUNCTUATION_MARK",j[j.ARABIC_QUESTION_MARK=1567]="ARABIC_QUESTION_MARK",j[j.ARABIC_PERCENT_SIGN=1642]="ARABIC_PERCENT_SIGN",j[j.ARABIC_DECIMAL_SEPARATOR=1643]="ARABIC_DECIMAL_SEPARATOR",j[j.ARABIC_THOUSANDS_SEPARATOR=1644]="ARABIC_THOUSANDS_SEPARATOR",j[j.ARABIC_FIVE_POINTED_STAR=1645]="ARABIC_FIVE_POINTED_STAR",j[j.ARABIC_FULL_STOP=1748]="ARABIC_FULL_STOP",j[j.SYRIAC_END_OF_PARAGRAPH=1792]="SYRIAC_END_OF_PARAGRAPH",j[j.SYRIAC_SUPRALINEAR_FULL_STOP=1793]="SYRIAC_SUPRALINEAR_FULL_STOP",j[j.SYRIAC_SUBLINEAR_FULL_STOP=1794]="SYRIAC_SUBLINEAR_FULL_STOP",j[j.SYRIAC_SUPRALINEAR_COLON=1795]="SYRIAC_SUPRALINEAR_COLON",j[j.SYRIAC_SUBLINEAR_COLON=1796]="SYRIAC_SUBLINEAR_COLON",j[j.SYRIAC_HORIZONTAL_COLON=1797]="SYRIAC_HORIZONTAL_COLON",j[j.SYRIAC_COLON_SKEWED_LEFT=1798]="SYRIAC_COLON_SKEWED_LEFT",j[j.SYRIAC_COLON_SKEWED_RIGHT=1799]="SYRIAC_COLON_SKEWED_RIGHT",j[j.SYRIAC_SUPRALINEAR_COLON_SKEWED_LEFT=1800]="SYRIAC_SUPRALINEAR_COLON_SKEWED_LEFT",j[j.SYRIAC_SUBLINEAR_COLON_SKEWED_RIGHT=1801]="SYRIAC_SUBLINEAR_COLON_SKEWED_RIGHT",j[j.SYRIAC_CONTRACTION=1802]="SYRIAC_CONTRACTION",j[j.SYRIAC_HARKLEAN_OBELUS=1803]="SYRIAC_HARKLEAN_OBELUS",j[j.SYRIAC_HARKLEAN_METOBELUS=1804]="SYRIAC_HARKLEAN_METOBELUS",j[j.SYRIAC_HARKLEAN_ASTERISCUS=1805]="SYRIAC_HARKLEAN_ASTERISCUS",j[j.NKO_SYMBOL_GBAKURUNEN=2039]="NKO_SYMBOL_GBAKURUNEN",j[j.NKO_COMMA=2040]="NKO_COMMA",j[j.NKO_EXCLAMATION_MARK=2041]="NKO_EXCLAMATION_MARK",j[j.SAMARITAN_PUNCTUATION_NEQUDAA=2096]="SAMARITAN_PUNCTUATION_NEQUDAA",j[j.SAMARITAN_PUNCTUATION_AFSAAQ=2097]="SAMARITAN_PUNCTUATION_AFSAAQ",j[j.SAMARITAN_PUNCTUATION_ANGED=2098]="SAMARITAN_PUNCTUATION_ANGED",j[j.SAMARITAN_PUNCTUATION_BAU=2099]="SAMARITAN_PUNCTUATION_BAU",j[j.SAMARITAN_PUNCTUATION_ATMAAU=2100]="SAMARITAN_PUNCTUATION_ATMAAU",j[j.SAMARITAN_PUNCTUATION_SHIYYAALAA=2101]="SAMARITAN_PUNCTUATION_SHIYYAALAA",j[j.SAMARITAN_ABBREVIATION_MARK=2102]="SAMARITAN_ABBREVIATION_MARK",j[j.SAMARITAN_PUNCTUATION_MELODIC_QITSA=2103]="SAMARITAN_PUNCTUATION_MELODIC_QITSA",j[j.SAMARITAN_PUNCTUATION_ZIQAA=2104]="SAMARITAN_PUNCTUATION_ZIQAA",j[j.SAMARITAN_PUNCTUATION_QITSA=2105]="SAMARITAN_PUNCTUATION_QITSA",j[j.SAMARITAN_PUNCTUATION_ZAEF=2106]="SAMARITAN_PUNCTUATION_ZAEF",j[j.SAMARITAN_PUNCTUATION_TURU=2107]="SAMARITAN_PUNCTUATION_TURU",j[j.SAMARITAN_PUNCTUATION_ARKAANU=2108]="SAMARITAN_PUNCTUATION_ARKAANU",j[j.SAMARITAN_PUNCTUATION_SOF_MASHFAAT=2109]="SAMARITAN_PUNCTUATION_SOF_MASHFAAT",j[j.SAMARITAN_PUNCTUATION_ANNAAU=2110]="SAMARITAN_PUNCTUATION_ANNAAU",j[j.MANDAIC_PUNCTUATION=2142]="MANDAIC_PUNCTUATION",j[j.DEVANAGARI_DANDA=2404]="DEVANAGARI_DANDA",j[j.DEVANAGARI_DOUBLE_DANDA=2405]="DEVANAGARI_DOUBLE_DANDA",j[j.DEVANAGARI_ABBREVIATION_SIGN=2416]="DEVANAGARI_ABBREVIATION_SIGN",j[j.BENGALI_ABBREVIATION_SIGN=2557]="BENGALI_ABBREVIATION_SIGN",j[j.GURMUKHI_ABBREVIATION_SIGN=2678]="GURMUKHI_ABBREVIATION_SIGN",j[j.GUJARATI_ABBREVIATION_SIGN=2800]="GUJARATI_ABBREVIATION_SIGN",j[j.TELUGU_SIGN_SIDDHAM=3191]="TELUGU_SIGN_SIDDHAM",j[j.KANNADA_SIGN_SIDDHAM=3204]="KANNADA_SIGN_SIDDHAM",j[j.SINHALA_PUNCTUATION_KUNDDALIYA=3572]="SINHALA_PUNCTUATION_KUNDDALIYA",j[j.THAI_CHARACTER_FONGMAN=3663]="THAI_CHARACTER_FONGMAN",j[j.THAI_CHARACTER_ANGKHANKHU=3674]="THAI_CHARACTER_ANGKHANKHU",j[j.THAI_CHARACTER_KHOMUT=3675]="THAI_CHARACTER_KHOMUT",j[j.TIBETAN_MARK_INITIAL_YIG_MGO_MDUN_MA=3844]="TIBETAN_MARK_INITIAL_YIG_MGO_MDUN_MA",j[j.TIBETAN_MARK_CLOSING_YIG_MGO_SGAB_MA=3845]="TIBETAN_MARK_CLOSING_YIG_MGO_SGAB_MA",j[j.TIBETAN_MARK_CARET_YIG_MGO_PHUR_SHAD_MA=3846]="TIBETAN_MARK_CARET_YIG_MGO_PHUR_SHAD_MA",j[j.TIBETAN_MARK_YIG_MGO_TSHEG_SHAD_MA=3847]="TIBETAN_MARK_YIG_MGO_TSHEG_SHAD_MA",j[j.TIBETAN_MARK_SBRUL_SHAD=3848]="TIBETAN_MARK_SBRUL_SHAD",j[j.TIBETAN_MARK_BSKUR_YIG_MGO=3849]="TIBETAN_MARK_BSKUR_YIG_MGO",j[j.TIBETAN_MARK_BKA__SHOG_YIG_MGO=3850]="TIBETAN_MARK_BKA__SHOG_YIG_MGO",j[j.TIBETAN_MARK_INTERSYLLABIC_TSHEG=3851]="TIBETAN_MARK_INTERSYLLABIC_TSHEG",j[j.TIBETAN_MARK_DELIMITER_TSHEG_BSTAR=3852]="TIBETAN_MARK_DELIMITER_TSHEG_BSTAR",j[j.TIBETAN_MARK_SHAD=3853]="TIBETAN_MARK_SHAD",j[j.TIBETAN_MARK_NYIS_SHAD=3854]="TIBETAN_MARK_NYIS_SHAD",j[j.TIBETAN_MARK_TSHEG_SHAD=3855]="TIBETAN_MARK_TSHEG_SHAD",j[j.TIBETAN_MARK_NYIS_TSHEG_SHAD=3856]="TIBETAN_MARK_NYIS_TSHEG_SHAD",j[j.TIBETAN_MARK_RIN_CHEN_SPUNGS_SHAD=3857]="TIBETAN_MARK_RIN_CHEN_SPUNGS_SHAD",j[j.TIBETAN_MARK_RGYA_GRAM_SHAD=3858]="TIBETAN_MARK_RGYA_GRAM_SHAD",j[j.TIBETAN_MARK_GTER_TSHEG=3860]="TIBETAN_MARK_GTER_TSHEG",j[j.TIBETAN_MARK_PALUTA=3973]="TIBETAN_MARK_PALUTA",j[j.TIBETAN_MARK_BSKA__SHOG_GI_MGO_RGYAN=4048]="TIBETAN_MARK_BSKA__SHOG_GI_MGO_RGYAN",j[j.TIBETAN_MARK_MNYAM_YIG_GI_MGO_RGYAN=4049]="TIBETAN_MARK_MNYAM_YIG_GI_MGO_RGYAN",j[j.TIBETAN_MARK_NYIS_TSHEG=4050]="TIBETAN_MARK_NYIS_TSHEG",j[j.TIBETAN_MARK_INITIAL_BRDA_RNYING_YIG_MGO_MDUN_MA=4051]="TIBETAN_MARK_INITIAL_BRDA_RNYING_YIG_MGO_MDUN_MA",j[j.TIBETAN_MARK_CLOSING_BRDA_RNYING_YIG_MGO_SGAB_MA=4052]="TIBETAN_MARK_CLOSING_BRDA_RNYING_YIG_MGO_SGAB_MA",j[j.TIBETAN_MARK_LEADING_MCHAN_RTAGS=4057]="TIBETAN_MARK_LEADING_MCHAN_RTAGS",j[j.TIBETAN_MARK_TRAILING_MCHAN_RTAGS=4058]="TIBETAN_MARK_TRAILING_MCHAN_RTAGS",j[j.MYANMAR_SIGN_LITTLE_SECTION=4170]="MYANMAR_SIGN_LITTLE_SECTION",j[j.MYANMAR_SIGN_SECTION=4171]="MYANMAR_SIGN_SECTION",j[j.MYANMAR_SYMBOL_LOCATIVE=4172]="MYANMAR_SYMBOL_LOCATIVE",j[j.MYANMAR_SYMBOL_COMPLETED=4173]="MYANMAR_SYMBOL_COMPLETED",j[j.MYANMAR_SYMBOL_AFOREMENTIONED=4174]="MYANMAR_SYMBOL_AFOREMENTIONED",j[j.MYANMAR_SYMBOL_GENITIVE=4175]="MYANMAR_SYMBOL_GENITIVE",j[j.GEORGIAN_PARAGRAPH_SEPARATOR=4347]="GEORGIAN_PARAGRAPH_SEPARATOR",j[j.ETHIOPIC_SECTION_MARK=4960]="ETHIOPIC_SECTION_MARK",j[j.ETHIOPIC_WORDSPACE=4961]="ETHIOPIC_WORDSPACE",j[j.ETHIOPIC_FULL_STOP=4962]="ETHIOPIC_FULL_STOP",j[j.ETHIOPIC_COMMA=4963]="ETHIOPIC_COMMA",j[j.ETHIOPIC_SEMICOLON=4964]="ETHIOPIC_SEMICOLON",j[j.ETHIOPIC_COLON=4965]="ETHIOPIC_COLON",j[j.ETHIOPIC_PREFACE_COLON=4966]="ETHIOPIC_PREFACE_COLON",j[j.ETHIOPIC_QUESTION_MARK=4967]="ETHIOPIC_QUESTION_MARK",j[j.ETHIOPIC_PARAGRAPH_SEPARATOR=4968]="ETHIOPIC_PARAGRAPH_SEPARATOR",j[j.CANADIAN_SYLLABICS_FULL_STOP=5742]="CANADIAN_SYLLABICS_FULL_STOP",j[j.RUNIC_SINGLE_PUNCTUATION=5867]="RUNIC_SINGLE_PUNCTUATION",j[j.RUNIC_MULTIPLE_PUNCTUATION=5868]="RUNIC_MULTIPLE_PUNCTUATION",j[j.RUNIC_CROSS_PUNCTUATION=5869]="RUNIC_CROSS_PUNCTUATION",j[j.PHILIPPINE_SINGLE_PUNCTUATION=5941]="PHILIPPINE_SINGLE_PUNCTUATION",j[j.PHILIPPINE_DOUBLE_PUNCTUATION=5942]="PHILIPPINE_DOUBLE_PUNCTUATION",j[j.KHMER_SIGN_KHAN=6100]="KHMER_SIGN_KHAN",j[j.KHMER_SIGN_BARIYOOSAN=6101]="KHMER_SIGN_BARIYOOSAN",j[j.KHMER_SIGN_CAMNUC_PII_KUUH=6102]="KHMER_SIGN_CAMNUC_PII_KUUH",j[j.KHMER_SIGN_BEYYAL=6104]="KHMER_SIGN_BEYYAL",j[j.KHMER_SIGN_PHNAEK_MUAN=6105]="KHMER_SIGN_PHNAEK_MUAN",j[j.KHMER_SIGN_KOOMUUT=6106]="KHMER_SIGN_KOOMUUT",j[j.MONGOLIAN_BIRGA=6144]="MONGOLIAN_BIRGA",j[j.MONGOLIAN_ELLIPSIS=6145]="MONGOLIAN_ELLIPSIS",j[j.MONGOLIAN_COMMA=6146]="MONGOLIAN_COMMA",j[j.MONGOLIAN_FULL_STOP=6147]="MONGOLIAN_FULL_STOP",j[j.MONGOLIAN_COLON=6148]="MONGOLIAN_COLON",j[j.MONGOLIAN_FOUR_DOTS=6149]="MONGOLIAN_FOUR_DOTS",j[j.MONGOLIAN_SIBE_SYLLABLE_BOUNDARY_MARKER=6151]="MONGOLIAN_SIBE_SYLLABLE_BOUNDARY_MARKER",j[j.MONGOLIAN_MANCHU_COMMA=6152]="MONGOLIAN_MANCHU_COMMA",j[j.MONGOLIAN_MANCHU_FULL_STOP=6153]="MONGOLIAN_MANCHU_FULL_STOP",j[j.MONGOLIAN_NIRUGU=6154]="MONGOLIAN_NIRUGU",j[j.LIMBU_EXCLAMATION_MARK=6468]="LIMBU_EXCLAMATION_MARK",j[j.LIMBU_QUESTION_MARK=6469]="LIMBU_QUESTION_MARK",j[j.BUGINESE_PALLAWA=6686]="BUGINESE_PALLAWA",j[j.BUGINESE_END_OF_SECTION=6687]="BUGINESE_END_OF_SECTION",j[j.TAI_THAM_SIGN_WIANG=6816]="TAI_THAM_SIGN_WIANG",j[j.TAI_THAM_SIGN_WIANGWAAK=6817]="TAI_THAM_SIGN_WIANGWAAK",j[j.TAI_THAM_SIGN_SAWAN=6818]="TAI_THAM_SIGN_SAWAN",j[j.TAI_THAM_SIGN_KEOW=6819]="TAI_THAM_SIGN_KEOW",j[j.TAI_THAM_SIGN_HOY=6820]="TAI_THAM_SIGN_HOY",j[j.TAI_THAM_SIGN_DOKMAI=6821]="TAI_THAM_SIGN_DOKMAI",j[j.TAI_THAM_SIGN_REVERSED_ROTATED_RANA=6822]="TAI_THAM_SIGN_REVERSED_ROTATED_RANA",j[j.TAI_THAM_SIGN_KAAN=6824]="TAI_THAM_SIGN_KAAN",j[j.TAI_THAM_SIGN_KAANKUU=6825]="TAI_THAM_SIGN_KAANKUU",j[j.TAI_THAM_SIGN_SATKAAN=6826]="TAI_THAM_SIGN_SATKAAN",j[j.TAI_THAM_SIGN_SATKAANKUU=6827]="TAI_THAM_SIGN_SATKAANKUU",j[j.TAI_THAM_SIGN_HANG=6828]="TAI_THAM_SIGN_HANG",j[j.TAI_THAM_SIGN_CAANG=6829]="TAI_THAM_SIGN_CAANG",j[j.BALINESE_PANTI=7002]="BALINESE_PANTI",j[j.BALINESE_PAMADA=7003]="BALINESE_PAMADA",j[j.BALINESE_WINDU=7004]="BALINESE_WINDU",j[j.BALINESE_CARIK_PAMUNGKAH=7005]="BALINESE_CARIK_PAMUNGKAH",j[j.BALINESE_CARIK_SIKI=7006]="BALINESE_CARIK_SIKI",j[j.BALINESE_CARIK_PAREREN=7007]="BALINESE_CARIK_PAREREN",j[j.BALINESE_PAMENENG=7008]="BALINESE_PAMENENG",j[j.BATAK_SYMBOL_BINDU_NA_METEK=7164]="BATAK_SYMBOL_BINDU_NA_METEK",j[j.BATAK_SYMBOL_BINDU_PINARBORAS=7165]="BATAK_SYMBOL_BINDU_PINARBORAS",j[j.BATAK_SYMBOL_BINDU_JUDUL=7166]="BATAK_SYMBOL_BINDU_JUDUL",j[j.BATAK_SYMBOL_BINDU_PANGOLAT=7167]="BATAK_SYMBOL_BINDU_PANGOLAT",j[j.LEPCHA_PUNCTUATION_TA_ROL=7227]="LEPCHA_PUNCTUATION_TA_ROL",j[j.LEPCHA_PUNCTUATION_NYET_THYOOM_TA_ROL=7228]="LEPCHA_PUNCTUATION_NYET_THYOOM_TA_ROL",j[j.LEPCHA_PUNCTUATION_CER_WA=7229]="LEPCHA_PUNCTUATION_CER_WA",j[j.LEPCHA_PUNCTUATION_TSHOOK_CER_WA=7230]="LEPCHA_PUNCTUATION_TSHOOK_CER_WA",j[j.LEPCHA_PUNCTUATION_TSHOOK=7231]="LEPCHA_PUNCTUATION_TSHOOK",j[j.OL_CHIKI_PUNCTUATION_MUCAAD=7294]="OL_CHIKI_PUNCTUATION_MUCAAD",j[j.OL_CHIKI_PUNCTUATION_DOUBLE_MUCAAD=7295]="OL_CHIKI_PUNCTUATION_DOUBLE_MUCAAD",j[j.SUNDANESE_PUNCTUATION_BINDU_SURYA=7360]="SUNDANESE_PUNCTUATION_BINDU_SURYA",j[j.SUNDANESE_PUNCTUATION_BINDU_PANGLONG=7361]="SUNDANESE_PUNCTUATION_BINDU_PANGLONG",j[j.SUNDANESE_PUNCTUATION_BINDU_PURNAMA=7362]="SUNDANESE_PUNCTUATION_BINDU_PURNAMA",j[j.SUNDANESE_PUNCTUATION_BINDU_CAKRA=7363]="SUNDANESE_PUNCTUATION_BINDU_CAKRA",j[j.SUNDANESE_PUNCTUATION_BINDU_LEU_SATANGA=7364]="SUNDANESE_PUNCTUATION_BINDU_LEU_SATANGA",j[j.SUNDANESE_PUNCTUATION_BINDU_KA_SATANGA=7365]="SUNDANESE_PUNCTUATION_BINDU_KA_SATANGA",j[j.SUNDANESE_PUNCTUATION_BINDU_DA_SATANGA=7366]="SUNDANESE_PUNCTUATION_BINDU_DA_SATANGA",j[j.SUNDANESE_PUNCTUATION_BINDU_BA_SATANGA=7367]="SUNDANESE_PUNCTUATION_BINDU_BA_SATANGA",j[j.VEDIC_SIGN_NIHSHVASA=7379]="VEDIC_SIGN_NIHSHVASA",j[j.DOUBLE_VERTICAL_LINE=8214]="DOUBLE_VERTICAL_LINE",j[j.DOUBLE_LOW_LINE=8215]="DOUBLE_LOW_LINE",j[j.DAGGER=8224]="DAGGER",j[j.DOUBLE_DAGGER=8225]="DOUBLE_DAGGER",j[j.BULLET=8226]="BULLET",j[j.TRIANGULAR_BULLET=8227]="TRIANGULAR_BULLET",j[j.ONE_DOT_LEADER=8228]="ONE_DOT_LEADER",j[j.TWO_DOT_LEADER=8229]="TWO_DOT_LEADER",j[j.HORIZONTAL_ELLIPSIS=8230]="HORIZONTAL_ELLIPSIS",j[j.HYPHENATION_POINT=8231]="HYPHENATION_POINT",j[j.PER_MILLE_SIGN=8240]="PER_MILLE_SIGN",j[j.PER_TEN_THOUSAND_SIGN=8241]="PER_TEN_THOUSAND_SIGN",j[j.PRIME=8242]="PRIME",j[j.DOUBLE_PRIME=8243]="DOUBLE_PRIME",j[j.TRIPLE_PRIME=8244]="TRIPLE_PRIME",j[j.REVERSED_PRIME=8245]="REVERSED_PRIME",j[j.REVERSED_DOUBLE_PRIME=8246]="REVERSED_DOUBLE_PRIME",j[j.REVERSED_TRIPLE_PRIME=8247]="REVERSED_TRIPLE_PRIME",j[j.CARET=8248]="CARET",j[j.REFERENCE_MARK=8251]="REFERENCE_MARK",j[j.DOUBLE_EXCLAMATION_MARK=8252]="DOUBLE_EXCLAMATION_MARK",j[j.INTERROBANG=8253]="INTERROBANG",j[j.OVERLINE=8254]="OVERLINE",j[j.CARET_INSERTION_POINT=8257]="CARET_INSERTION_POINT",j[j.ASTERISM=8258]="ASTERISM",j[j.HYPHEN_BULLET=8259]="HYPHEN_BULLET",j[j.DOUBLE_QUESTION_MARK=8263]="DOUBLE_QUESTION_MARK",j[j.QUESTION_EXCLAMATION_MARK=8264]="QUESTION_EXCLAMATION_MARK",j[j.EXCLAMATION_QUESTION_MARK=8265]="EXCLAMATION_QUESTION_MARK",j[j.TIRONIAN_SIGN_ET=8266]="TIRONIAN_SIGN_ET",j[j.REVERSED_PILCROW_SIGN=8267]="REVERSED_PILCROW_SIGN",j[j.BLACK_LEFTWARDS_BULLET=8268]="BLACK_LEFTWARDS_BULLET",j[j.BLACK_RIGHTWARDS_BULLET=8269]="BLACK_RIGHTWARDS_BULLET",j[j.LOW_ASTERISK=8270]="LOW_ASTERISK",j[j.REVERSED_SEMICOLON=8271]="REVERSED_SEMICOLON",j[j.CLOSE_UP=8272]="CLOSE_UP",j[j.TWO_ASTERISKS_ALIGNED_VERTICALLY=8273]="TWO_ASTERISKS_ALIGNED_VERTICALLY",j[j.SWUNG_DASH=8275]="SWUNG_DASH",j[j.FLOWER_PUNCTUATION_MARK=8277]="FLOWER_PUNCTUATION_MARK",j[j.THREE_DOT_PUNCTUATION=8278]="THREE_DOT_PUNCTUATION",j[j.QUADRUPLE_PRIME=8279]="QUADRUPLE_PRIME",j[j.FOUR_DOT_PUNCTUATION=8280]="FOUR_DOT_PUNCTUATION",j[j.FIVE_DOT_PUNCTUATION=8281]="FIVE_DOT_PUNCTUATION",j[j.TWO_DOT_PUNCTUATION=8282]="TWO_DOT_PUNCTUATION",j[j.FOUR_DOT_MARK=8283]="FOUR_DOT_MARK",j[j.DOTTED_CROSS=8284]="DOTTED_CROSS",j[j.TRICOLON=8285]="TRICOLON",j[j.VERTICAL_FOUR_DOTS=8286]="VERTICAL_FOUR_DOTS",j[j.COPTIC_OLD_NUBIAN_FULL_STOP=11513]="COPTIC_OLD_NUBIAN_FULL_STOP",j[j.COPTIC_OLD_NUBIAN_DIRECT_QUESTION_MARK=11514]="COPTIC_OLD_NUBIAN_DIRECT_QUESTION_MARK",j[j.COPTIC_OLD_NUBIAN_INDIRECT_QUESTION_MARK=11515]="COPTIC_OLD_NUBIAN_INDIRECT_QUESTION_MARK",j[j.COPTIC_OLD_NUBIAN_VERSE_DIVIDER=11516]="COPTIC_OLD_NUBIAN_VERSE_DIVIDER",j[j.COPTIC_FULL_STOP=11518]="COPTIC_FULL_STOP",j[j.COPTIC_MORPHOLOGICAL_DIVIDER=11519]="COPTIC_MORPHOLOGICAL_DIVIDER",j[j.TIFINAGH_SEPARATOR_MARK=11632]="TIFINAGH_SEPARATOR_MARK",j[j.RIGHT_ANGLE_SUBSTITUTION_MARKER=11776]="RIGHT_ANGLE_SUBSTITUTION_MARKER",j[j.RIGHT_ANGLE_DOTTED_SUBSTITUTION_MARKER=11777]="RIGHT_ANGLE_DOTTED_SUBSTITUTION_MARKER",j[j.RAISED_INTERPOLATION_MARKER=11782]="RAISED_INTERPOLATION_MARKER",j[j.RAISED_DOTTED_INTERPOLATION_MARKER=11783]="RAISED_DOTTED_INTERPOLATION_MARKER",j[j.DOTTED_TRANSPOSITION_MARKER=11784]="DOTTED_TRANSPOSITION_MARKER",j[j.RAISED_SQUARE=11787]="RAISED_SQUARE",j[j.EDITORIAL_CORONIS=11790]="EDITORIAL_CORONIS",j[j.PARAGRAPHOS=11791]="PARAGRAPHOS",j[j.FORKED_PARAGRAPHOS=11792]="FORKED_PARAGRAPHOS",j[j.REVERSED_FORKED_PARAGRAPHOS=11793]="REVERSED_FORKED_PARAGRAPHOS",j[j.HYPODIASTOLE=11794]="HYPODIASTOLE",j[j.DOTTED_OBELOS=11795]="DOTTED_OBELOS",j[j.DOWNWARDS_ANCORA=11796]="DOWNWARDS_ANCORA",j[j.UPWARDS_ANCORA=11797]="UPWARDS_ANCORA",j[j.DOTTED_RIGHT_POINTING_ANGLE=11798]="DOTTED_RIGHT_POINTING_ANGLE",j[j.INVERTED_INTERROBANG=11800]="INVERTED_INTERROBANG",j[j.PALM_BRANCH=11801]="PALM_BRANCH",j[j.TILDE_WITH_RING_ABOVE=11803]="TILDE_WITH_RING_ABOVE",j[j.TILDE_WITH_DOT_ABOVE=11806]="TILDE_WITH_DOT_ABOVE",j[j.TILDE_WITH_DOT_BELOW=11807]="TILDE_WITH_DOT_BELOW",j[j.TWO_DOTS_OVER_ONE_DOT_PUNCTUATION=11818]="TWO_DOTS_OVER_ONE_DOT_PUNCTUATION",j[j.ONE_DOT_OVER_TWO_DOTS_PUNCTUATION=11819]="ONE_DOT_OVER_TWO_DOTS_PUNCTUATION",j[j.SQUARED_FOUR_DOT_PUNCTUATION=11820]="SQUARED_FOUR_DOT_PUNCTUATION",j[j.FIVE_DOT_MARK=11821]="FIVE_DOT_MARK",j[j.REVERSED_QUESTION_MARK=11822]="REVERSED_QUESTION_MARK",j[j.RING_POINT=11824]="RING_POINT",j[j.WORD_SEPARATOR_MIDDLE_DOT=11825]="WORD_SEPARATOR_MIDDLE_DOT",j[j.TURNED_COMMA=11826]="TURNED_COMMA",j[j.RAISED_DOT=11827]="RAISED_DOT",j[j.RAISED_COMMA=11828]="RAISED_COMMA",j[j.TURNED_SEMICOLON=11829]="TURNED_SEMICOLON",j[j.DAGGER_WITH_LEFT_GUARD=11830]="DAGGER_WITH_LEFT_GUARD",j[j.DAGGER_WITH_RIGHT_GUARD=11831]="DAGGER_WITH_RIGHT_GUARD",j[j.TURNED_DAGGER=11832]="TURNED_DAGGER",j[j.TOP_HALF_SECTION_SIGN=11833]="TOP_HALF_SECTION_SIGN",j[j.STENOGRAPHIC_FULL_STOP=11836]="STENOGRAPHIC_FULL_STOP",j[j.VERTICAL_SIX_DOTS=11837]="VERTICAL_SIX_DOTS",j[j.WIGGLY_VERTICAL_LINE=11838]="WIGGLY_VERTICAL_LINE",j[j.CAPITULUM=11839]="CAPITULUM",j[j.REVERSED_COMMA=11841]="REVERSED_COMMA",j[j.DASH_WITH_LEFT_UPTURN=11843]="DASH_WITH_LEFT_UPTURN",j[j.DOUBLE_SUSPENSION_MARK=11844]="DOUBLE_SUSPENSION_MARK",j[j.INVERTED_LOW_KAVYKA=11845]="INVERTED_LOW_KAVYKA",j[j.INVERTED_LOW_KAVYKA_WITH_KAVYKA_ABOVE=11846]="INVERTED_LOW_KAVYKA_WITH_KAVYKA_ABOVE",j[j.LOW_KAVYKA=11847]="LOW_KAVYKA",j[j.LOW_KAVYKA_WITH_DOT=11848]="LOW_KAVYKA_WITH_DOT",j[j.DOUBLE_STACKED_COMMA=11849]="DOUBLE_STACKED_COMMA",j[j.DOTTED_SOLIDUS=11850]="DOTTED_SOLIDUS",j[j.TRIPLE_DAGGER=11851]="TRIPLE_DAGGER",j[j.MEDIEVAL_COMMA=11852]="MEDIEVAL_COMMA",j[j.PARAGRAPHUS_MARK=11853]="PARAGRAPHUS_MARK",j[j.PUNCTUS_ELEVATUS_MARK=11854]="PUNCTUS_ELEVATUS_MARK",j[j.CORNISH_VERSE_DIVIDER=11855]="CORNISH_VERSE_DIVIDER",j[j.TIRONIAN_SIGN_CAPITAL_ET=11858]="TIRONIAN_SIGN_CAPITAL_ET",j[j.IDEOGRAPHIC_COMMA=12289]="IDEOGRAPHIC_COMMA",j[j.IDEOGRAPHIC_FULL_STOP=12290]="IDEOGRAPHIC_FULL_STOP",j[j.DITTO_MARK=12291]="DITTO_MARK",j[j.PART_ALTERNATION_MARK=12349]="PART_ALTERNATION_MARK",j[j.KATAKANA_MIDDLE_DOT=12539]="KATAKANA_MIDDLE_DOT",j[j.LISU_PUNCTUATION_COMMA=42238]="LISU_PUNCTUATION_COMMA",j[j.LISU_PUNCTUATION_FULL_STOP=42239]="LISU_PUNCTUATION_FULL_STOP",j[j.VAI_COMMA=42509]="VAI_COMMA",j[j.VAI_FULL_STOP=42510]="VAI_FULL_STOP",j[j.VAI_QUESTION_MARK=42511]="VAI_QUESTION_MARK",j[j.SLAVONIC_ASTERISK=42611]="SLAVONIC_ASTERISK",j[j.CYRILLIC_KAVYKA=42622]="CYRILLIC_KAVYKA",j[j.BAMUM_NJAEMLI=42738]="BAMUM_NJAEMLI",j[j.BAMUM_FULL_STOP=42739]="BAMUM_FULL_STOP",j[j.BAMUM_COLON=42740]="BAMUM_COLON",j[j.BAMUM_COMMA=42741]="BAMUM_COMMA",j[j.BAMUM_SEMICOLON=42742]="BAMUM_SEMICOLON",j[j.BAMUM_QUESTION_MARK=42743]="BAMUM_QUESTION_MARK",j[j.PHAGS_PA_SINGLE_HEAD_MARK=43124]="PHAGS_PA_SINGLE_HEAD_MARK",j[j.PHAGS_PA_DOUBLE_HEAD_MARK=43125]="PHAGS_PA_DOUBLE_HEAD_MARK",j[j.PHAGS_PA_MARK_SHAD=43126]="PHAGS_PA_MARK_SHAD",j[j.PHAGS_PA_MARK_DOUBLE_SHAD=43127]="PHAGS_PA_MARK_DOUBLE_SHAD",j[j.SAURASHTRA_DANDA=43214]="SAURASHTRA_DANDA",j[j.SAURASHTRA_DOUBLE_DANDA=43215]="SAURASHTRA_DOUBLE_DANDA",j[j.DEVANAGARI_SIGN_PUSHPIKA=43256]="DEVANAGARI_SIGN_PUSHPIKA",j[j.DEVANAGARI_GAP_FILLER=43257]="DEVANAGARI_GAP_FILLER",j[j.DEVANAGARI_CARET=43258]="DEVANAGARI_CARET",j[j.DEVANAGARI_SIGN_SIDDHAM=43260]="DEVANAGARI_SIGN_SIDDHAM",j[j.KAYAH_LI_SIGN_CWI=43310]="KAYAH_LI_SIGN_CWI",j[j.KAYAH_LI_SIGN_SHYA=43311]="KAYAH_LI_SIGN_SHYA",j[j.REJANG_SECTION_MARK=43359]="REJANG_SECTION_MARK",j[j.JAVANESE_LEFT_RERENGGAN=43457]="JAVANESE_LEFT_RERENGGAN",j[j.JAVANESE_RIGHT_RERENGGAN=43458]="JAVANESE_RIGHT_RERENGGAN",j[j.JAVANESE_PADA_ANDAP=43459]="JAVANESE_PADA_ANDAP",j[j.JAVANESE_PADA_MADYA=43460]="JAVANESE_PADA_MADYA",j[j.JAVANESE_PADA_LUHUR=43461]="JAVANESE_PADA_LUHUR",j[j.JAVANESE_PADA_WINDU=43462]="JAVANESE_PADA_WINDU",j[j.JAVANESE_PADA_PANGKAT=43463]="JAVANESE_PADA_PANGKAT",j[j.JAVANESE_PADA_LINGSA=43464]="JAVANESE_PADA_LINGSA",j[j.JAVANESE_PADA_LUNGSI=43465]="JAVANESE_PADA_LUNGSI",j[j.JAVANESE_PADA_ADEG=43466]="JAVANESE_PADA_ADEG",j[j.JAVANESE_PADA_ADEG_ADEG=43467]="JAVANESE_PADA_ADEG_ADEG",j[j.JAVANESE_PADA_PISELEH=43468]="JAVANESE_PADA_PISELEH",j[j.JAVANESE_TURNED_PADA_PISELEH=43469]="JAVANESE_TURNED_PADA_PISELEH",j[j.JAVANESE_PADA_TIRTA_TUMETES=43486]="JAVANESE_PADA_TIRTA_TUMETES",j[j.JAVANESE_PADA_ISEN_ISEN=43487]="JAVANESE_PADA_ISEN_ISEN",j[j.CHAM_PUNCTUATION_SPIRAL=43612]="CHAM_PUNCTUATION_SPIRAL",j[j.CHAM_PUNCTUATION_DANDA=43613]="CHAM_PUNCTUATION_DANDA",j[j.CHAM_PUNCTUATION_DOUBLE_DANDA=43614]="CHAM_PUNCTUATION_DOUBLE_DANDA",j[j.CHAM_PUNCTUATION_TRIPLE_DANDA=43615]="CHAM_PUNCTUATION_TRIPLE_DANDA",j[j.TAI_VIET_SYMBOL_HO_HOI=43742]="TAI_VIET_SYMBOL_HO_HOI",j[j.TAI_VIET_SYMBOL_KOI_KOI=43743]="TAI_VIET_SYMBOL_KOI_KOI",j[j.MEETEI_MAYEK_CHEIKHAN=43760]="MEETEI_MAYEK_CHEIKHAN",j[j.MEETEI_MAYEK_AHANG_KHUDAM=43761]="MEETEI_MAYEK_AHANG_KHUDAM",j[j.MEETEI_MAYEK_CHEIKHEI=44011]="MEETEI_MAYEK_CHEIKHEI",j[j.PRESENTATION_FORM_FOR_VERTICAL_COMMA=65040]="PRESENTATION_FORM_FOR_VERTICAL_COMMA",j[j.PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_COMMA=65041]="PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_COMMA",j[j.PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_FULL_STOP=65042]="PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_FULL_STOP",j[j.PRESENTATION_FORM_FOR_VERTICAL_COLON=65043]="PRESENTATION_FORM_FOR_VERTICAL_COLON",j[j.PRESENTATION_FORM_FOR_VERTICAL_SEMICOLON=65044]="PRESENTATION_FORM_FOR_VERTICAL_SEMICOLON",j[j.PRESENTATION_FORM_FOR_VERTICAL_EXCLAMATION_MARK=65045]="PRESENTATION_FORM_FOR_VERTICAL_EXCLAMATION_MARK",j[j.PRESENTATION_FORM_FOR_VERTICAL_QUESTION_MARK=65046]="PRESENTATION_FORM_FOR_VERTICAL_QUESTION_MARK",j[j.PRESENTATION_FORM_FOR_VERTICAL_HORIZONTAL_ELLIPSIS=65049]="PRESENTATION_FORM_FOR_VERTICAL_HORIZONTAL_ELLIPSIS",j[j.PRESENTATION_FORM_FOR_VERTICAL_TWO_DOT_LEADER=65072]="PRESENTATION_FORM_FOR_VERTICAL_TWO_DOT_LEADER",j[j.SESAME_DOT=65093]="SESAME_DOT",j[j.WHITE_SESAME_DOT=65094]="WHITE_SESAME_DOT",j[j.DASHED_OVERLINE=65097]="DASHED_OVERLINE",j[j.CENTRELINE_OVERLINE=65098]="CENTRELINE_OVERLINE",j[j.WAVY_OVERLINE=65099]="WAVY_OVERLINE",j[j.DOUBLE_WAVY_OVERLINE=65100]="DOUBLE_WAVY_OVERLINE",j[j.SMALL_COMMA=65104]="SMALL_COMMA",j[j.SMALL_IDEOGRAPHIC_COMMA=65105]="SMALL_IDEOGRAPHIC_COMMA",j[j.SMALL_FULL_STOP=65106]="SMALL_FULL_STOP",j[j.SMALL_SEMICOLON=65108]="SMALL_SEMICOLON",j[j.SMALL_COLON=65109]="SMALL_COLON",j[j.SMALL_QUESTION_MARK=65110]="SMALL_QUESTION_MARK",j[j.SMALL_EXCLAMATION_MARK=65111]="SMALL_EXCLAMATION_MARK",j[j.SMALL_NUMBER_SIGN=65119]="SMALL_NUMBER_SIGN",j[j.SMALL_AMPERSAND=65120]="SMALL_AMPERSAND",j[j.SMALL_ASTERISK=65121]="SMALL_ASTERISK",j[j.SMALL_REVERSE_SOLIDUS=65128]="SMALL_REVERSE_SOLIDUS",j[j.SMALL_PERCENT_SIGN=65130]="SMALL_PERCENT_SIGN",j[j.SMALL_COMMERCIAL_AT=65131]="SMALL_COMMERCIAL_AT",j[j.FULLWIDTH_EXCLAMATION_MARK=65281]="FULLWIDTH_EXCLAMATION_MARK",j[j.FULLWIDTH_QUOTATION_MARK=65282]="FULLWIDTH_QUOTATION_MARK",j[j.FULLWIDTH_NUMBER_SIGN=65283]="FULLWIDTH_NUMBER_SIGN",j[j.FULLWIDTH_PERCENT_SIGN=65285]="FULLWIDTH_PERCENT_SIGN",j[j.FULLWIDTH_AMPERSAND=65286]="FULLWIDTH_AMPERSAND",j[j.FULLWIDTH_APOSTROPHE=65287]="FULLWIDTH_APOSTROPHE",j[j.FULLWIDTH_ASTERISK=65290]="FULLWIDTH_ASTERISK",j[j.FULLWIDTH_COMMA=65292]="FULLWIDTH_COMMA",j[j.FULLWIDTH_FULL_STOP=65294]="FULLWIDTH_FULL_STOP",j[j.FULLWIDTH_SOLIDUS=65295]="FULLWIDTH_SOLIDUS",j[j.FULLWIDTH_COLON=65306]="FULLWIDTH_COLON",j[j.FULLWIDTH_SEMICOLON=65307]="FULLWIDTH_SEMICOLON",j[j.FULLWIDTH_QUESTION_MARK=65311]="FULLWIDTH_QUESTION_MARK",j[j.FULLWIDTH_COMMERCIAL_AT=65312]="FULLWIDTH_COMMERCIAL_AT",j[j.FULLWIDTH_REVERSE_SOLIDUS=65340]="FULLWIDTH_REVERSE_SOLIDUS",j[j.HALFWIDTH_IDEOGRAPHIC_FULL_STOP=65377]="HALFWIDTH_IDEOGRAPHIC_FULL_STOP",j[j.HALFWIDTH_IDEOGRAPHIC_COMMA=65380]="HALFWIDTH_IDEOGRAPHIC_COMMA",j[j.HALFWIDTH_KATAKANA_MIDDLE_DOT=65381]="HALFWIDTH_KATAKANA_MIDDLE_DOT",j[j.AEGEAN_WORD_SEPARATOR_LINE=65792]="AEGEAN_WORD_SEPARATOR_LINE",j[j.AEGEAN_WORD_SEPARATOR_DOT=65793]="AEGEAN_WORD_SEPARATOR_DOT",j[j.AEGEAN_CHECK_MARK=65794]="AEGEAN_CHECK_MARK",j[j.UGARITIC_WORD_DIVIDER=66463]="UGARITIC_WORD_DIVIDER",j[j.OLD_PERSIAN_WORD_DIVIDER=66512]="OLD_PERSIAN_WORD_DIVIDER",j[j.CAUCASIAN_ALBANIAN_CITATION_MARK=66927]="CAUCASIAN_ALBANIAN_CITATION_MARK",j[j.IMPERIAL_ARAMAIC_SECTION_SIGN=67671]="IMPERIAL_ARAMAIC_SECTION_SIGN",j[j.PHOENICIAN_WORD_SEPARATOR=67871]="PHOENICIAN_WORD_SEPARATOR",j[j.LYDIAN_TRIANGULAR_MARK=67903]="LYDIAN_TRIANGULAR_MARK",j[j.KHAROSHTHI_PUNCTUATION_DOT=68176]="KHAROSHTHI_PUNCTUATION_DOT",j[j.KHAROSHTHI_PUNCTUATION_SMALL_CIRCLE=68177]="KHAROSHTHI_PUNCTUATION_SMALL_CIRCLE",j[j.KHAROSHTHI_PUNCTUATION_CIRCLE=68178]="KHAROSHTHI_PUNCTUATION_CIRCLE",j[j.KHAROSHTHI_PUNCTUATION_CRESCENT_BAR=68179]="KHAROSHTHI_PUNCTUATION_CRESCENT_BAR",j[j.KHAROSHTHI_PUNCTUATION_MANGALAM=68180]="KHAROSHTHI_PUNCTUATION_MANGALAM",j[j.KHAROSHTHI_PUNCTUATION_LOTUS=68181]="KHAROSHTHI_PUNCTUATION_LOTUS",j[j.KHAROSHTHI_PUNCTUATION_DANDA=68182]="KHAROSHTHI_PUNCTUATION_DANDA",j[j.KHAROSHTHI_PUNCTUATION_DOUBLE_DANDA=68183]="KHAROSHTHI_PUNCTUATION_DOUBLE_DANDA",j[j.KHAROSHTHI_PUNCTUATION_LINES=68184]="KHAROSHTHI_PUNCTUATION_LINES",j[j.OLD_SOUTH_ARABIAN_NUMERIC_INDICATOR=68223]="OLD_SOUTH_ARABIAN_NUMERIC_INDICATOR",j[j.MANICHAEAN_PUNCTUATION_STAR=68336]="MANICHAEAN_PUNCTUATION_STAR",j[j.MANICHAEAN_PUNCTUATION_FLEURON=68337]="MANICHAEAN_PUNCTUATION_FLEURON",j[j.MANICHAEAN_PUNCTUATION_DOUBLE_DOT_WITHIN_DOT=68338]="MANICHAEAN_PUNCTUATION_DOUBLE_DOT_WITHIN_DOT",j[j.MANICHAEAN_PUNCTUATION_DOT_WITHIN_DOT=68339]="MANICHAEAN_PUNCTUATION_DOT_WITHIN_DOT",j[j.MANICHAEAN_PUNCTUATION_DOT=68340]="MANICHAEAN_PUNCTUATION_DOT",j[j.MANICHAEAN_PUNCTUATION_TWO_DOTS=68341]="MANICHAEAN_PUNCTUATION_TWO_DOTS",j[j.MANICHAEAN_PUNCTUATION_LINE_FILLER=68342]="MANICHAEAN_PUNCTUATION_LINE_FILLER",j[j.AVESTAN_ABBREVIATION_MARK=68409]="AVESTAN_ABBREVIATION_MARK",j[j.TINY_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION=68410]="TINY_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION",j[j.SMALL_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION=68411]="SMALL_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION",j[j.LARGE_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION=68412]="LARGE_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION",j[j.LARGE_ONE_DOT_OVER_TWO_DOTS_PUNCTUATION=68413]="LARGE_ONE_DOT_OVER_TWO_DOTS_PUNCTUATION",j[j.LARGE_TWO_RINGS_OVER_ONE_RING_PUNCTUATION=68414]="LARGE_TWO_RINGS_OVER_ONE_RING_PUNCTUATION",j[j.LARGE_ONE_RING_OVER_TWO_RINGS_PUNCTUATION=68415]="LARGE_ONE_RING_OVER_TWO_RINGS_PUNCTUATION",j[j.PSALTER_PAHLAVI_SECTION_MARK=68505]="PSALTER_PAHLAVI_SECTION_MARK",j[j.PSALTER_PAHLAVI_TURNED_SECTION_MARK=68506]="PSALTER_PAHLAVI_TURNED_SECTION_MARK",j[j.PSALTER_PAHLAVI_FOUR_DOTS_WITH_CROSS=68507]="PSALTER_PAHLAVI_FOUR_DOTS_WITH_CROSS",j[j.PSALTER_PAHLAVI_FOUR_DOTS_WITH_DOT=68508]="PSALTER_PAHLAVI_FOUR_DOTS_WITH_DOT",j[j.SOGDIAN_PUNCTUATION_TWO_VERTICAL_BARS=69461]="SOGDIAN_PUNCTUATION_TWO_VERTICAL_BARS",j[j.SOGDIAN_PUNCTUATION_TWO_VERTICAL_BARS_WITH_DOTS=69462]="SOGDIAN_PUNCTUATION_TWO_VERTICAL_BARS_WITH_DOTS",j[j.SOGDIAN_PUNCTUATION_CIRCLE_WITH_DOT=69463]="SOGDIAN_PUNCTUATION_CIRCLE_WITH_DOT",j[j.SOGDIAN_PUNCTUATION_TWO_CIRCLES_WITH_DOTS=69464]="SOGDIAN_PUNCTUATION_TWO_CIRCLES_WITH_DOTS",j[j.SOGDIAN_PUNCTUATION_HALF_CIRCLE_WITH_DOT=69465]="SOGDIAN_PUNCTUATION_HALF_CIRCLE_WITH_DOT",j[j.BRAHMI_DANDA=69703]="BRAHMI_DANDA",j[j.BRAHMI_DOUBLE_DANDA=69704]="BRAHMI_DOUBLE_DANDA",j[j.BRAHMI_PUNCTUATION_DOT=69705]="BRAHMI_PUNCTUATION_DOT",j[j.BRAHMI_PUNCTUATION_DOUBLE_DOT=69706]="BRAHMI_PUNCTUATION_DOUBLE_DOT",j[j.BRAHMI_PUNCTUATION_LINE=69707]="BRAHMI_PUNCTUATION_LINE",j[j.BRAHMI_PUNCTUATION_CRESCENT_BAR=69708]="BRAHMI_PUNCTUATION_CRESCENT_BAR",j[j.BRAHMI_PUNCTUATION_LOTUS=69709]="BRAHMI_PUNCTUATION_LOTUS",j[j.KAITHI_ABBREVIATION_SIGN=69819]="KAITHI_ABBREVIATION_SIGN",j[j.KAITHI_ENUMERATION_SIGN=69820]="KAITHI_ENUMERATION_SIGN",j[j.KAITHI_SECTION_MARK=69822]="KAITHI_SECTION_MARK",j[j.KAITHI_DOUBLE_SECTION_MARK=69823]="KAITHI_DOUBLE_SECTION_MARK",j[j.KAITHI_DANDA=69824]="KAITHI_DANDA",j[j.KAITHI_DOUBLE_DANDA=69825]="KAITHI_DOUBLE_DANDA",j[j.CHAKMA_SECTION_MARK=69952]="CHAKMA_SECTION_MARK",j[j.CHAKMA_DANDA=69953]="CHAKMA_DANDA",j[j.CHAKMA_DOUBLE_DANDA=69954]="CHAKMA_DOUBLE_DANDA",j[j.CHAKMA_QUESTION_MARK=69955]="CHAKMA_QUESTION_MARK",j[j.MAHAJANI_ABBREVIATION_SIGN=70004]="MAHAJANI_ABBREVIATION_SIGN",j[j.MAHAJANI_SECTION_MARK=70005]="MAHAJANI_SECTION_MARK",j[j.SHARADA_DANDA=70085]="SHARADA_DANDA",j[j.SHARADA_DOUBLE_DANDA=70086]="SHARADA_DOUBLE_DANDA",j[j.SHARADA_ABBREVIATION_SIGN=70087]="SHARADA_ABBREVIATION_SIGN",j[j.SHARADA_SEPARATOR=70088]="SHARADA_SEPARATOR",j[j.SHARADA_SUTRA_MARK=70093]="SHARADA_SUTRA_MARK",j[j.SHARADA_SIGN_SIDDHAM=70107]="SHARADA_SIGN_SIDDHAM",j[j.SHARADA_CONTINUATION_SIGN=70109]="SHARADA_CONTINUATION_SIGN",j[j.SHARADA_SECTION_MARK_1=70110]="SHARADA_SECTION_MARK_1",j[j.SHARADA_SECTION_MARK_2=70111]="SHARADA_SECTION_MARK_2",j[j.KHOJKI_DANDA=70200]="KHOJKI_DANDA",j[j.KHOJKI_DOUBLE_DANDA=70201]="KHOJKI_DOUBLE_DANDA",j[j.KHOJKI_WORD_SEPARATOR=70202]="KHOJKI_WORD_SEPARATOR",j[j.KHOJKI_SECTION_MARK=70203]="KHOJKI_SECTION_MARK",j[j.KHOJKI_DOUBLE_SECTION_MARK=70204]="KHOJKI_DOUBLE_SECTION_MARK",j[j.KHOJKI_ABBREVIATION_SIGN=70205]="KHOJKI_ABBREVIATION_SIGN",j[j.MULTANI_SECTION_MARK=70313]="MULTANI_SECTION_MARK",j[j.NEWA_DANDA=70731]="NEWA_DANDA",j[j.NEWA_DOUBLE_DANDA=70732]="NEWA_DOUBLE_DANDA",j[j.NEWA_COMMA=70733]="NEWA_COMMA",j[j.NEWA_GAP_FILLER=70734]="NEWA_GAP_FILLER",j[j.NEWA_ABBREVIATION_SIGN=70735]="NEWA_ABBREVIATION_SIGN",j[j.NEWA_DOUBLE_COMMA=70746]="NEWA_DOUBLE_COMMA",j[j.NEWA_PLACEHOLDER_MARK=70747]="NEWA_PLACEHOLDER_MARK",j[j.NEWA_INSERTION_SIGN=70749]="NEWA_INSERTION_SIGN",j[j.TIRHUTA_ABBREVIATION_SIGN=70854]="TIRHUTA_ABBREVIATION_SIGN",j[j.SIDDHAM_SIGN_SIDDHAM=71105]="SIDDHAM_SIGN_SIDDHAM",j[j.SIDDHAM_DANDA=71106]="SIDDHAM_DANDA",j[j.SIDDHAM_DOUBLE_DANDA=71107]="SIDDHAM_DOUBLE_DANDA",j[j.SIDDHAM_SEPARATOR_DOT=71108]="SIDDHAM_SEPARATOR_DOT",j[j.SIDDHAM_SEPARATOR_BAR=71109]="SIDDHAM_SEPARATOR_BAR",j[j.SIDDHAM_REPETITION_MARK_1=71110]="SIDDHAM_REPETITION_MARK_1",j[j.SIDDHAM_REPETITION_MARK_2=71111]="SIDDHAM_REPETITION_MARK_2",j[j.SIDDHAM_REPETITION_MARK_3=71112]="SIDDHAM_REPETITION_MARK_3",j[j.SIDDHAM_END_OF_TEXT_MARK=71113]="SIDDHAM_END_OF_TEXT_MARK",j[j.SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_U_SHAPED_ORNAMENTS=71114]="SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_U_SHAPED_ORNAMENTS",j[j.SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_DOTTED_CRESCENTS=71115]="SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_DOTTED_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_CRESCENTS=71116]="SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_DOUBLE_CRESCENTS=71117]="SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_DOUBLE_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_TRIPLE_CRESCENTS=71118]="SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_TRIPLE_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_DOUBLE_RING=71119]="SIDDHAM_SECTION_MARK_DOUBLE_RING",j[j.SIDDHAM_SECTION_MARK_DOUBLE_RING_WITH_RAYS=71120]="SIDDHAM_SECTION_MARK_DOUBLE_RING_WITH_RAYS",j[j.SIDDHAM_SECTION_MARK_WITH_DOUBLE_CRESCENTS=71121]="SIDDHAM_SECTION_MARK_WITH_DOUBLE_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_TRIPLE_CRESCENTS=71122]="SIDDHAM_SECTION_MARK_WITH_TRIPLE_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_QUADRUPLE_CRESCENTS=71123]="SIDDHAM_SECTION_MARK_WITH_QUADRUPLE_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_SEPTUPLE_CRESCENTS=71124]="SIDDHAM_SECTION_MARK_WITH_SEPTUPLE_CRESCENTS",j[j.SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_RAYS=71125]="SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_RAYS",j[j.SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_TWO_ENCLOSURES=71126]="SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_TWO_ENCLOSURES",j[j.SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_FOUR_ENCLOSURES=71127]="SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_FOUR_ENCLOSURES",j[j.MODI_DANDA=71233]="MODI_DANDA",j[j.MODI_DOUBLE_DANDA=71234]="MODI_DOUBLE_DANDA",j[j.MODI_ABBREVIATION_SIGN=71235]="MODI_ABBREVIATION_SIGN",j[j.MONGOLIAN_BIRGA_WITH_ORNAMENT=71264]="MONGOLIAN_BIRGA_WITH_ORNAMENT",j[j.MONGOLIAN_ROTATED_BIRGA=71265]="MONGOLIAN_ROTATED_BIRGA",j[j.MONGOLIAN_DOUBLE_BIRGA_WITH_ORNAMENT=71266]="MONGOLIAN_DOUBLE_BIRGA_WITH_ORNAMENT",j[j.MONGOLIAN_TRIPLE_BIRGA_WITH_ORNAMENT=71267]="MONGOLIAN_TRIPLE_BIRGA_WITH_ORNAMENT",j[j.MONGOLIAN_BIRGA_WITH_DOUBLE_ORNAMENT=71268]="MONGOLIAN_BIRGA_WITH_DOUBLE_ORNAMENT",j[j.MONGOLIAN_ROTATED_BIRGA_WITH_ORNAMENT=71269]="MONGOLIAN_ROTATED_BIRGA_WITH_ORNAMENT",j[j.MONGOLIAN_ROTATED_BIRGA_WITH_DOUBLE_ORNAMENT=71270]="MONGOLIAN_ROTATED_BIRGA_WITH_DOUBLE_ORNAMENT",j[j.MONGOLIAN_INVERTED_BIRGA=71271]="MONGOLIAN_INVERTED_BIRGA",j[j.MONGOLIAN_INVERTED_BIRGA_WITH_DOUBLE_ORNAMENT=71272]="MONGOLIAN_INVERTED_BIRGA_WITH_DOUBLE_ORNAMENT",j[j.MONGOLIAN_SWIRL_BIRGA=71273]="MONGOLIAN_SWIRL_BIRGA",j[j.MONGOLIAN_SWIRL_BIRGA_WITH_ORNAMENT=71274]="MONGOLIAN_SWIRL_BIRGA_WITH_ORNAMENT",j[j.MONGOLIAN_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT=71275]="MONGOLIAN_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT",j[j.MONGOLIAN_TURNED_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT=71276]="MONGOLIAN_TURNED_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT",j[j.AHOM_SIGN_SMALL_SECTION=71484]="AHOM_SIGN_SMALL_SECTION",j[j.AHOM_SIGN_SECTION=71485]="AHOM_SIGN_SECTION",j[j.AHOM_SIGN_RULAI=71486]="AHOM_SIGN_RULAI",j[j.DOGRA_ABBREVIATION_SIGN=71739]="DOGRA_ABBREVIATION_SIGN",j[j.DIVES_AKURU_DOUBLE_DANDA=72004]="DIVES_AKURU_DOUBLE_DANDA",j[j.DIVES_AKURU_GAP_FILLER=72005]="DIVES_AKURU_GAP_FILLER",j[j.DIVES_AKURU_END_OF_TEXT_MARK=72006]="DIVES_AKURU_END_OF_TEXT_MARK",j[j.NANDINAGARI_SIGN_SIDDHAM=72162]="NANDINAGARI_SIGN_SIDDHAM",j[j.ZANABAZAR_SQUARE_INITIAL_HEAD_MARK=72255]="ZANABAZAR_SQUARE_INITIAL_HEAD_MARK",j[j.ZANABAZAR_SQUARE_CLOSING_HEAD_MARK=72256]="ZANABAZAR_SQUARE_CLOSING_HEAD_MARK",j[j.ZANABAZAR_SQUARE_MARK_TSHEG=72257]="ZANABAZAR_SQUARE_MARK_TSHEG",j[j.ZANABAZAR_SQUARE_MARK_SHAD=72258]="ZANABAZAR_SQUARE_MARK_SHAD",j[j.ZANABAZAR_SQUARE_MARK_DOUBLE_SHAD=72259]="ZANABAZAR_SQUARE_MARK_DOUBLE_SHAD",j[j.ZANABAZAR_SQUARE_MARK_LONG_TSHEG=72260]="ZANABAZAR_SQUARE_MARK_LONG_TSHEG",j[j.ZANABAZAR_SQUARE_INITIAL_DOUBLE_LINED_HEAD_MARK=72261]="ZANABAZAR_SQUARE_INITIAL_DOUBLE_LINED_HEAD_MARK",j[j.ZANABAZAR_SQUARE_CLOSING_DOUBLE_LINED_HEAD_MARK=72262]="ZANABAZAR_SQUARE_CLOSING_DOUBLE_LINED_HEAD_MARK",j[j.SOYOMBO_MARK_TSHEG=72346]="SOYOMBO_MARK_TSHEG",j[j.SOYOMBO_MARK_SHAD=72347]="SOYOMBO_MARK_SHAD",j[j.SOYOMBO_MARK_DOUBLE_SHAD=72348]="SOYOMBO_MARK_DOUBLE_SHAD",j[j.SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_TRIPLE_FLAME=72350]="SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_TRIPLE_FLAME",j[j.SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_FLAME=72351]="SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_FLAME",j[j.SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN=72352]="SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN",j[j.SOYOMBO_TERMINAL_MARK_1=72353]="SOYOMBO_TERMINAL_MARK_1",j[j.SOYOMBO_TERMINAL_MARK_2=72354]="SOYOMBO_TERMINAL_MARK_2",j[j.BHAIKSUKI_DANDA=72769]="BHAIKSUKI_DANDA",j[j.BHAIKSUKI_DOUBLE_DANDA=72770]="BHAIKSUKI_DOUBLE_DANDA",j[j.BHAIKSUKI_WORD_SEPARATOR=72771]="BHAIKSUKI_WORD_SEPARATOR",j[j.BHAIKSUKI_GAP_FILLER_1=72772]="BHAIKSUKI_GAP_FILLER_1",j[j.BHAIKSUKI_GAP_FILLER_2=72773]="BHAIKSUKI_GAP_FILLER_2",j[j.MARCHEN_HEAD_MARK=72816]="MARCHEN_HEAD_MARK",j[j.MARCHEN_MARK_SHAD=72817]="MARCHEN_MARK_SHAD",j[j.MAKASAR_PASSIMBANG=73463]="MAKASAR_PASSIMBANG",j[j.MAKASAR_END_OF_SECTION=73464]="MAKASAR_END_OF_SECTION",j[j.TAMIL_PUNCTUATION_END_OF_TEXT=73727]="TAMIL_PUNCTUATION_END_OF_TEXT",j[j.CUNEIFORM_PUNCTUATION_SIGN_OLD_ASSYRIAN_WORD_DIVIDER=74864]="CUNEIFORM_PUNCTUATION_SIGN_OLD_ASSYRIAN_WORD_DIVIDER",j[j.CUNEIFORM_PUNCTUATION_SIGN_VERTICAL_COLON=74865]="CUNEIFORM_PUNCTUATION_SIGN_VERTICAL_COLON",j[j.CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_COLON=74866]="CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_COLON",j[j.CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_TRICOLON=74867]="CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_TRICOLON",j[j.CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_QUADCOLON=74868]="CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_QUADCOLON",j[j.MRO_DANDA=92782]="MRO_DANDA",j[j.MRO_DOUBLE_DANDA=92783]="MRO_DOUBLE_DANDA",j[j.BASSA_VAH_FULL_STOP=92917]="BASSA_VAH_FULL_STOP",j[j.PAHAWH_HMONG_SIGN_VOS_THOM=92983]="PAHAWH_HMONG_SIGN_VOS_THOM",j[j.PAHAWH_HMONG_SIGN_VOS_TSHAB_CEEB=92984]="PAHAWH_HMONG_SIGN_VOS_TSHAB_CEEB",j[j.PAHAWH_HMONG_SIGN_CIM_CHEEM=92985]="PAHAWH_HMONG_SIGN_CIM_CHEEM",j[j.PAHAWH_HMONG_SIGN_VOS_THIAB=92986]="PAHAWH_HMONG_SIGN_VOS_THIAB",j[j.PAHAWH_HMONG_SIGN_VOS_FEEM=92987]="PAHAWH_HMONG_SIGN_VOS_FEEM",j[j.PAHAWH_HMONG_SIGN_XAUS=92996]="PAHAWH_HMONG_SIGN_XAUS",j[j.MEDEFAIDRIN_COMMA=93847]="MEDEFAIDRIN_COMMA",j[j.MEDEFAIDRIN_FULL_STOP=93848]="MEDEFAIDRIN_FULL_STOP",j[j.MEDEFAIDRIN_SYMBOL_AIVA=93849]="MEDEFAIDRIN_SYMBOL_AIVA",j[j.MEDEFAIDRIN_EXCLAMATION_OH=93850]="MEDEFAIDRIN_EXCLAMATION_OH",j[j.OLD_CHINESE_HOOK_MARK=94178]="OLD_CHINESE_HOOK_MARK",j[j.DUPLOYAN_PUNCTUATION_CHINOOK_FULL_STOP=113823]="DUPLOYAN_PUNCTUATION_CHINOOK_FULL_STOP",j[j.SIGNWRITING_COMMA=121479]="SIGNWRITING_COMMA",j[j.SIGNWRITING_FULL_STOP=121480]="SIGNWRITING_FULL_STOP",j[j.SIGNWRITING_SEMICOLON=121481]="SIGNWRITING_SEMICOLON",j[j.SIGNWRITING_COLON=121482]="SIGNWRITING_COLON",j[j.SIGNWRITING_PARENTHESIS=121483]="SIGNWRITING_PARENTHESIS",j[j.ADLAM_INITIAL_EXCLAMATION_MARK=125278]="ADLAM_INITIAL_EXCLAMATION_MARK",j[j.ADLAM_INITIAL_QUESTION_MARK=125279]="ADLAM_INITIAL_QUESTION_MARK"})(UnicodePoCodePoint||(UnicodePoCodePoint={}));var UnicodePsCodePoint;(function(j){j[j.LEFT_PARENTHESIS=40]="LEFT_PARENTHESIS",j[j.LEFT_SQUARE_BRACKET=91]="LEFT_SQUARE_BRACKET",j[j.LEFT_CURLY_BRACKET=123]="LEFT_CURLY_BRACKET",j[j.TIBETAN_MARK_GUG_RTAGS_GYON=3898]="TIBETAN_MARK_GUG_RTAGS_GYON",j[j.TIBETAN_MARK_ANG_KHANG_GYON=3900]="TIBETAN_MARK_ANG_KHANG_GYON",j[j.OGHAM_FEATHER_MARK=5787]="OGHAM_FEATHER_MARK",j[j.SINGLE_LOW_9_QUOTATION_MARK=8218]="SINGLE_LOW_9_QUOTATION_MARK",j[j.DOUBLE_LOW_9_QUOTATION_MARK=8222]="DOUBLE_LOW_9_QUOTATION_MARK",j[j.LEFT_SQUARE_BRACKET_WITH_QUILL=8261]="LEFT_SQUARE_BRACKET_WITH_QUILL",j[j.SUPERSCRIPT_LEFT_PARENTHESIS=8317]="SUPERSCRIPT_LEFT_PARENTHESIS",j[j.SUBSCRIPT_LEFT_PARENTHESIS=8333]="SUBSCRIPT_LEFT_PARENTHESIS",j[j.LEFT_CEILING=8968]="LEFT_CEILING",j[j.LEFT_FLOOR=8970]="LEFT_FLOOR",j[j.LEFT_POINTING_ANGLE_BRACKET=9001]="LEFT_POINTING_ANGLE_BRACKET",j[j.MEDIUM_LEFT_PARENTHESIS_ORNAMENT=10088]="MEDIUM_LEFT_PARENTHESIS_ORNAMENT",j[j.MEDIUM_FLATTENED_LEFT_PARENTHESIS_ORNAMENT=10090]="MEDIUM_FLATTENED_LEFT_PARENTHESIS_ORNAMENT",j[j.MEDIUM_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT=10092]="MEDIUM_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT",j[j.HEAVY_LEFT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT=10094]="HEAVY_LEFT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT",j[j.HEAVY_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT=10096]="HEAVY_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT",j[j.LIGHT_LEFT_TORTOISE_SHELL_BRACKET_ORNAMENT=10098]="LIGHT_LEFT_TORTOISE_SHELL_BRACKET_ORNAMENT",j[j.MEDIUM_LEFT_CURLY_BRACKET_ORNAMENT=10100]="MEDIUM_LEFT_CURLY_BRACKET_ORNAMENT",j[j.LEFT_S_SHAPED_BAG_DELIMITER=10181]="LEFT_S_SHAPED_BAG_DELIMITER",j[j.MATHEMATICAL_LEFT_WHITE_SQUARE_BRACKET=10214]="MATHEMATICAL_LEFT_WHITE_SQUARE_BRACKET",j[j.MATHEMATICAL_LEFT_ANGLE_BRACKET=10216]="MATHEMATICAL_LEFT_ANGLE_BRACKET",j[j.MATHEMATICAL_LEFT_DOUBLE_ANGLE_BRACKET=10218]="MATHEMATICAL_LEFT_DOUBLE_ANGLE_BRACKET",j[j.MATHEMATICAL_LEFT_WHITE_TORTOISE_SHELL_BRACKET=10220]="MATHEMATICAL_LEFT_WHITE_TORTOISE_SHELL_BRACKET",j[j.MATHEMATICAL_LEFT_FLATTENED_PARENTHESIS=10222]="MATHEMATICAL_LEFT_FLATTENED_PARENTHESIS",j[j.LEFT_WHITE_CURLY_BRACKET=10627]="LEFT_WHITE_CURLY_BRACKET",j[j.LEFT_WHITE_PARENTHESIS=10629]="LEFT_WHITE_PARENTHESIS",j[j.Z_NOTATION_LEFT_IMAGE_BRACKET=10631]="Z_NOTATION_LEFT_IMAGE_BRACKET",j[j.Z_NOTATION_LEFT_BINDING_BRACKET=10633]="Z_NOTATION_LEFT_BINDING_BRACKET",j[j.LEFT_SQUARE_BRACKET_WITH_UNDERBAR=10635]="LEFT_SQUARE_BRACKET_WITH_UNDERBAR",j[j.LEFT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER=10637]="LEFT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER",j[j.LEFT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER=10639]="LEFT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER",j[j.LEFT_ANGLE_BRACKET_WITH_DOT=10641]="LEFT_ANGLE_BRACKET_WITH_DOT",j[j.LEFT_ARC_LESS_THAN_BRACKET=10643]="LEFT_ARC_LESS_THAN_BRACKET",j[j.DOUBLE_LEFT_ARC_GREATER_THAN_BRACKET=10645]="DOUBLE_LEFT_ARC_GREATER_THAN_BRACKET",j[j.LEFT_BLACK_TORTOISE_SHELL_BRACKET=10647]="LEFT_BLACK_TORTOISE_SHELL_BRACKET",j[j.LEFT_WIGGLY_FENCE=10712]="LEFT_WIGGLY_FENCE",j[j.LEFT_DOUBLE_WIGGLY_FENCE=10714]="LEFT_DOUBLE_WIGGLY_FENCE",j[j.LEFT_POINTING_CURVED_ANGLE_BRACKET=10748]="LEFT_POINTING_CURVED_ANGLE_BRACKET",j[j.TOP_LEFT_HALF_BRACKET=11810]="TOP_LEFT_HALF_BRACKET",j[j.BOTTOM_LEFT_HALF_BRACKET=11812]="BOTTOM_LEFT_HALF_BRACKET",j[j.LEFT_SIDEWAYS_U_BRACKET=11814]="LEFT_SIDEWAYS_U_BRACKET",j[j.LEFT_DOUBLE_PARENTHESIS=11816]="LEFT_DOUBLE_PARENTHESIS",j[j.DOUBLE_LOW_REVERSED_9_QUOTATION_MARK=11842]="DOUBLE_LOW_REVERSED_9_QUOTATION_MARK",j[j.LEFT_ANGLE_BRACKET=12296]="LEFT_ANGLE_BRACKET",j[j.LEFT_DOUBLE_ANGLE_BRACKET=12298]="LEFT_DOUBLE_ANGLE_BRACKET",j[j.LEFT_CORNER_BRACKET=12300]="LEFT_CORNER_BRACKET",j[j.LEFT_WHITE_CORNER_BRACKET=12302]="LEFT_WHITE_CORNER_BRACKET",j[j.LEFT_BLACK_LENTICULAR_BRACKET=12304]="LEFT_BLACK_LENTICULAR_BRACKET",j[j.LEFT_TORTOISE_SHELL_BRACKET=12308]="LEFT_TORTOISE_SHELL_BRACKET",j[j.LEFT_WHITE_LENTICULAR_BRACKET=12310]="LEFT_WHITE_LENTICULAR_BRACKET",j[j.LEFT_WHITE_TORTOISE_SHELL_BRACKET=12312]="LEFT_WHITE_TORTOISE_SHELL_BRACKET",j[j.LEFT_WHITE_SQUARE_BRACKET=12314]="LEFT_WHITE_SQUARE_BRACKET",j[j.REVERSED_DOUBLE_PRIME_QUOTATION_MARK=12317]="REVERSED_DOUBLE_PRIME_QUOTATION_MARK",j[j.ORNATE_RIGHT_PARENTHESIS=64831]="ORNATE_RIGHT_PARENTHESIS",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_LENTICULAR_BRACKET=65047]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_LENTICULAR_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_PARENTHESIS=65077]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_PARENTHESIS",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_CURLY_BRACKET=65079]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_CURLY_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_TORTOISE_SHELL_BRACKET=65081]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_TORTOISE_SHELL_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_BLACK_LENTICULAR_BRACKET=65083]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_BLACK_LENTICULAR_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_DOUBLE_ANGLE_BRACKET=65085]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_DOUBLE_ANGLE_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_ANGLE_BRACKET=65087]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_ANGLE_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_CORNER_BRACKET=65089]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_CORNER_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_CORNER_BRACKET=65091]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_CORNER_BRACKET",j[j.PRESENTATION_FORM_FOR_VERTICAL_LEFT_SQUARE_BRACKET=65095]="PRESENTATION_FORM_FOR_VERTICAL_LEFT_SQUARE_BRACKET",j[j.SMALL_LEFT_PARENTHESIS=65113]="SMALL_LEFT_PARENTHESIS",j[j.SMALL_LEFT_CURLY_BRACKET=65115]="SMALL_LEFT_CURLY_BRACKET",j[j.SMALL_LEFT_TORTOISE_SHELL_BRACKET=65117]="SMALL_LEFT_TORTOISE_SHELL_BRACKET",j[j.FULLWIDTH_LEFT_PARENTHESIS=65288]="FULLWIDTH_LEFT_PARENTHESIS",j[j.FULLWIDTH_LEFT_SQUARE_BRACKET=65339]="FULLWIDTH_LEFT_SQUARE_BRACKET",j[j.FULLWIDTH_LEFT_CURLY_BRACKET=65371]="FULLWIDTH_LEFT_CURLY_BRACKET",j[j.FULLWIDTH_LEFT_WHITE_PARENTHESIS=65375]="FULLWIDTH_LEFT_WHITE_PARENTHESIS",j[j.HALFWIDTH_LEFT_CORNER_BRACKET=65378]="HALFWIDTH_LEFT_CORNER_BRACKET"})(UnicodePsCodePoint||(UnicodePsCodePoint={}));var UnicodeZsCodePoint;(function(j){j[j.SPACE=32]="SPACE",j[j.NO_BREAK_SPACE=160]="NO_BREAK_SPACE",j[j.OGHAM_SPACE_MARK=5760]="OGHAM_SPACE_MARK",j[j.EN_QUAD=8192]="EN_QUAD",j[j.EM_QUAD=8193]="EM_QUAD",j[j.EN_SPACE=8194]="EN_SPACE",j[j.EM_SPACE=8195]="EM_SPACE",j[j.THREE_PER_EM_SPACE=8196]="THREE_PER_EM_SPACE",j[j.FOUR_PER_EM_SPACE=8197]="FOUR_PER_EM_SPACE",j[j.SIX_PER_EM_SPACE=8198]="SIX_PER_EM_SPACE",j[j.FIGURE_SPACE=8199]="FIGURE_SPACE",j[j.PUNCTUATION_SPACE=8200]="PUNCTUATION_SPACE",j[j.THIN_SPACE=8201]="THIN_SPACE",j[j.HAIR_SPACE=8202]="HAIR_SPACE",j[j.NARROW_NO_BREAK_SPACE=8239]="NARROW_NO_BREAK_SPACE",j[j.MEDIUM_MATHEMATICAL_SPACE=8287]="MEDIUM_MATHEMATICAL_SPACE",j[j.IDEOGRAPHIC_SPACE=12288]="IDEOGRAPHIC_SPACE"})(UnicodeZsCodePoint||(UnicodeZsCodePoint={}));var VirtualCodePoint;(function(j){j[j.LINE_END=-1]="LINE_END",j[j.SPACE=-2]="SPACE"})(VirtualCodePoint||(VirtualCodePoint={}));function createCodePointSearcher(j){const _e=[...new Set(j)].sort((rt,nt)=>rt-nt),et=_e.length;if(et<8)return[rt=>{for(let nt=0;nt<_e.length;++nt)if(rt===_e[nt])return!0;return!1},[..._e]];const tt=[];for(let rt=0,nt;rtot+nt);++nt);tt.push(ot,ot+nt)}if(tt.length*1.5{for(let ot=0;ot{let ot=0,it=rt;for(;ot>>1;nt{let nt=0,ot=et;for(;nt>>1;rt<_e[it]?ot=it:nt=it+1}return ot<=0?!1:_e[ot-1]===rt},[..._e]]}function collectCodePointsFromEnum(j){return Object.values(j).filter(_e=>typeof _e=="number")}createCodePointSearcher([AsciiCodePoint.HT,AsciiCodePoint.LF,AsciiCodePoint.VT,AsciiCodePoint.FF,AsciiCodePoint.CR,AsciiCodePoint.SPACE]);const[isAsciiPunctuationCharacter,asciiPunctuationCharacters]=createCodePointSearcher([AsciiCodePoint.EXCLAMATION_MARK,AsciiCodePoint.DOUBLE_QUOTE,AsciiCodePoint.NUMBER_SIGN,AsciiCodePoint.DOLLAR_SIGN,AsciiCodePoint.PERCENT_SIGN,AsciiCodePoint.AMPERSAND,AsciiCodePoint.SINGLE_QUOTE,AsciiCodePoint.OPEN_PARENTHESIS,AsciiCodePoint.CLOSE_PARENTHESIS,AsciiCodePoint.ASTERISK,AsciiCodePoint.PLUS_SIGN,AsciiCodePoint.COMMA,AsciiCodePoint.MINUS_SIGN,AsciiCodePoint.DOT,AsciiCodePoint.SLASH,AsciiCodePoint.COLON,AsciiCodePoint.SEMICOLON,AsciiCodePoint.OPEN_ANGLE,AsciiCodePoint.EQUALS_SIGN,AsciiCodePoint.CLOSE_ANGLE,AsciiCodePoint.QUESTION_MARK,AsciiCodePoint.AT_SIGN,AsciiCodePoint.OPEN_BRACKET,AsciiCodePoint.BACKSLASH,AsciiCodePoint.CLOSE_BRACKET,AsciiCodePoint.CARET,AsciiCodePoint.UNDERSCORE,AsciiCodePoint.BACKTICK,AsciiCodePoint.OPEN_BRACE,AsciiCodePoint.VERTICAL_SLASH,AsciiCodePoint.CLOSE_BRACE,AsciiCodePoint.TILDE]),isAsciiDigitCharacter=j=>j>=AsciiCodePoint.DIGIT0&&j<=AsciiCodePoint.DIGIT9,isAsciiLowerLetter=j=>j>=AsciiCodePoint.LOWERCASE_A&&j<=AsciiCodePoint.LOWERCASE_Z,isAsciiUpperLetter=j=>j>=AsciiCodePoint.UPPERCASE_A&&j<=AsciiCodePoint.UPPERCASE_Z,isAsciiLetter=j=>isAsciiLowerLetter(j)||isAsciiUpperLetter(j),isAlphanumeric=j=>isAsciiLowerLetter(j)||isAsciiUpperLetter(j)||isAsciiDigitCharacter(j),isAsciiCharacter=j=>j>=AsciiCodePoint.NUL&&j<=AsciiCodePoint.DELETE,[isAsciiControlCharacter,asciiControlCharacters]=createCodePointSearcher([AsciiCodePoint.NUL,AsciiCodePoint.SOH,AsciiCodePoint.STX,AsciiCodePoint.ETX,AsciiCodePoint.EOT,AsciiCodePoint.ENQ,AsciiCodePoint.ACK,AsciiCodePoint.BEL,AsciiCodePoint.BS,AsciiCodePoint.HT,AsciiCodePoint.LF,AsciiCodePoint.VT,AsciiCodePoint.FF,AsciiCodePoint.CR,AsciiCodePoint.SO,AsciiCodePoint.SI,AsciiCodePoint.DLE,AsciiCodePoint.DC1,AsciiCodePoint.DC2,AsciiCodePoint.DC3,AsciiCodePoint.DC4,AsciiCodePoint.NAK,AsciiCodePoint.SYN,AsciiCodePoint.ETB,AsciiCodePoint.CAN,AsciiCodePoint.EM,AsciiCodePoint.SUB,AsciiCodePoint.ESC,AsciiCodePoint.FS,AsciiCodePoint.GS,AsciiCodePoint.RS,AsciiCodePoint.US,AsciiCodePoint.DELETE]),[isWhitespaceCharacter,whitespaceCharacters]=createCodePointSearcher([AsciiCodePoint.VT,AsciiCodePoint.FF,AsciiCodePoint.SPACE,VirtualCodePoint.SPACE,VirtualCodePoint.LINE_END]);AsciiCodePoint.SPACE,VirtualCodePoint.SPACE;const isSpaceCharacter=j=>j===AsciiCodePoint.SPACE||j===VirtualCodePoint.SPACE,isLineEnding=j=>j===VirtualCodePoint.LINE_END,[isPunctuationCharacter,punctuationCharacters]=createCodePointSearcher([...asciiPunctuationCharacters,...collectCodePointsFromEnum(UnicodePcCodePoint),...collectCodePointsFromEnum(UnicodePdCodePoint),...collectCodePointsFromEnum(UnicodePeCodePoint),...collectCodePointsFromEnum(UnicodePfCodePoint),...collectCodePointsFromEnum(UnicodePiCodePoint),...collectCodePointsFromEnum(UnicodePoCodePoint),...collectCodePointsFromEnum(UnicodePsCodePoint)]),isSpaceLike=j=>isSpaceCharacter(j)||isLineEnding(j),[isUnicodeWhitespaceCharacter,unicodeWhitespaceCharacters]=createCodePointSearcher([AsciiCodePoint.HT,AsciiCodePoint.LF,AsciiCodePoint.FF,AsciiCodePoint.CR,VirtualCodePoint.SPACE,VirtualCodePoint.LINE_END,...collectCodePointsFromEnum(UnicodeZsCodePoint)]);var UnicodeCodePoint;(function(j){j[j.REPLACEMENT_CHARACTER=65533]="REPLACEMENT_CHARACTER"})(UnicodeCodePoint||(UnicodeCodePoint={}));function createEntityReferenceTrie(){const j=(rt,nt)=>{if(rt.length<=4){for(let st=0;st=nt)return st;return rt.length}let ot=0,it=rt.length;for(;ot>>1;rt[st].key{let ot=_e;for(const it of rt){const st=j(ot.children,it);if(st>=ot.children.length){const ut={key:it,children:[]};ot.children.push(ut),ot=ut;continue}let lt=ot.children[st];if(lt.key===it){ot=lt;continue}lt={key:it,children:[]},ot.children.splice(st,0,lt),ot=lt}ot.value=nt},search:(rt,nt,ot)=>{let it=_e;for(let st=nt;st=it.children.length)return null;const ct=it.children[ut];if(ct.key!==lt)return null;if(ct.value!=null)return{nextIndex:st+1,value:ct.value};it=ct}return null}}}const entityReferenceTrie=createEntityReferenceTrie();entityReferences.forEach(j=>entityReferenceTrie.insert(j.key,j.value));function eatEntityReference(j,_e,et){if(_e+1>=et)return null;const tt=entityReferenceTrie.search(j,_e,et);if(tt!=null)return tt;if(j[_e].codePoint!==AsciiCodePoint.NUMBER_SIGN)return null;let rt=0,nt=_e+1;if(j[nt].codePoint===AsciiCodePoint.LOWERCASE_X||j[nt].codePoint===AsciiCodePoint.UPPERCASE_X){nt+=1;for(let it=1;it<=6&&nt=AsciiCodePoint.UPPERCASE_A&&st<=AsciiCodePoint.UPPERCASE_F){rt=(rt<<4)+(st-AsciiCodePoint.UPPERCASE_A+10);continue}if(st>=AsciiCodePoint.LOWERCASE_A&&st<=AsciiCodePoint.LOWERCASE_F){rt=(rt<<4)+(st-AsciiCodePoint.LOWERCASE_A+10);continue}break}}else for(let it=1;it<=7&&nt=et||j[nt].codePoint!==AsciiCodePoint.SEMICOLON)return null;let ot;try{rt===0&&(rt=UnicodeCodePoint.REPLACEMENT_CHARACTER),ot=String.fromCodePoint(rt)}catch{ot=String.fromCodePoint(UnicodeCodePoint.REPLACEMENT_CHARACTER)}return{nextIndex:nt+1,value:ot}}function foldCase(j){return Array.from(j).map(_e=>foldingCaseCodeMap[_e]??_e).join("")}(()=>{try{const j=new RegExp("\\p{Script=Han}|[\\u{3002}\\u{ff1f}\\u{ff01}\\u{ff0c}\\u{3001}\\u{ff1b}\\u{ff1a}\\u{201c}\\u{201d}\\u{2018}\\u{2019}\\u{ff08}\\u{ff09}\\u{300a}\\u{300b}\\u{3008}\\u{3009}\\u{3010}\\u{3011}\\u{300e}\\u{300f}\\u{300c}\\u{300d}\\u{fe43}\\u{fe44}\\u{3014}\\u{3015}\\u{2026}\\u{2014}\\u{ff5e}\\u{fe4f}\\u{ffe5}]","u").source,_e=new RegExp(`(${j})\\n+(${j})`,"gu");return et=>et.replace(_e,"$1$2")}catch{const j=/[\u{4E00}-\u{9FCC}\u{3400}-\u{4DB5}\u{FA0E}\u{FA0F}\u{FA11}\u{FA13}\u{FA14}\u{FA1F}\u{FA21}\u{FA23}\u{FA24}\u{FA27}-\u{FA29}]|[\u{d840}-\u{d868}][\u{dc00}-\u{dfff}]|\u{d869}[\u{dc00}-\u{ded6}\u{df00}-\u{dfff}]|[\u{d86a}-\u{d86c}][\u{dc00}-\u{dfff}]|\u{d86d}[\u{dc00}-\u{df34}\u{df40}-\u{dfff}]|\u{d86e}[\u{dc00}-\u{dc1d}]/u.source,_e=new RegExp(`(${j})\\n+(${j})`,"gu");return et=>et.replace(_e,"$1$2")}})();(()=>{try{const j=new RegExp("\\p{Script=Han}|[\\u{3002}\\u{ff1f}\\u{ff01}\\u{ff0c}\\u{3001}\\u{ff1b}\\u{ff1a}\\u{201c}\\u{201d}\\u{2018}\\u{2019}\\u{ff08}\\u{ff09}\\u{300a}\\u{300b}\\u{3008}\\u{3009}\\u{3010}\\u{3011}\\u{300e}\\u{300f}\\u{300c}\\u{300d}\\u{fe43}\\u{fe44}\\u{3014}\\u{3015}\\u{2026}\\u{2014}\\u{ff5e}\\u{fe4f}\\u{ffe5}]","u").source,_e=new RegExp(`(${j})[\\s\\n]+(${j})`,"gu");return et=>et.replace(_e,"$1$2")}catch{const j=/[\u{4E00}-\u{9FCC}\u{3400}-\u{4DB5}\u{FA0E}\u{FA0F}\u{FA11}\u{FA13}\u{FA14}\u{FA1F}\u{FA21}\u{FA23}\u{FA24}\u{FA27}-\u{FA29}]|[\u{d840}-\u{d868}][\u{dc00}-\u{dfff}]|\u{d869}[\u{dc00}-\u{ded6}\u{df00}-\u{dfff}]|[\u{d86a}-\u{d86c}][\u{dc00}-\u{dfff}]|\u{d86d}[\u{dc00}-\u{df34}\u{df40}-\u{dfff}]|\u{d86e}[\u{dc00}-\u{dc1d}]/u.source,_e=new RegExp(`(${j})[\\s\\n]+(${j})`,"gu");return et=>et.replace(_e,"$1$2")}})();function*createNodePointGenerator(j){let _e=0,et=1,tt=1;const rt=typeof j=="string"?[j]:j;for(const nt of rt){const ot=[];for(const lt of nt){const ut=lt.codePointAt(0);ot.push(ut)}const it=[],st=ot.length;for(let lt=0;lt>2,lt=ot-nt&3;for(let ut=0;ut>2,lt=ot-nt&3;for(let ut=0;ut!0;if(j instanceof Function)return j;if(j.length===0)return()=>!1;if(j.length===1){const _e=j[0];return et=>et.type===_e}if(j.length===2){const[_e,et]=j;return tt=>tt.type===_e||tt.type===et}return _e=>{for(const et of j)if(_e.type===et)return!0;return!1}}function traverseAst(j,_e,et){const tt=createNodeMatcher(_e),rt=nt=>{const{children:ot}=nt;for(let it=0;it{const tt={};traverseAst(j,_e,ot=>{const it=ot;tt[it.identifier]===void 0&&(tt[it.identifier]=it)});const rt=[];for(const ot of et)tt[ot.identifier]===void 0&&(tt[ot.identifier]=ot,rt.push(ot));return{root:rt.length>0?{...j,children:j.children.concat(rt)}:j,definitionMap:tt}},astClasses=mergeStyleSets({root:{"--colorBgBlockquote":"none","--colorBgTableHead":"hsl(0deg, 0%, 94%)","--colorBgTableEvenRow":"hsl(0deg, 0%, 96%)","--colorBgTableOddRow":"hsl(0deg, 0%, 100%)","--colorBorderBlockquote":"hsl(210deg, 13%, 85%)","--colorBorderHeading":"hsl(0deg, 0%, 80%)","--colorBorderImage":"hsl(277deg, 19%, 47%)","--colorBorderTable":"hsl(220deg, 7%, 90%)","--colorBgCode":"#f5f7f9","--colorDelete":"hsl(210deg, 8%, 65%)","--colorHeading":"hsl(0deg, 0%, 25%)","--colorImageTitle":"hsl(0deg, 0%, 50%)","--colorInlineCode":"hsl(348deg, 60%, 47%)","--colorLink":"hsl(206deg, 53%, 47%)","--colorLinkActive":"hsl(206deg, 53%, 52%)","--colorLinkHover":"hsl(206deg, 53%, 52%)","--colorLinkVisited":"hsl(206deg, 53%, 47%)","--fontFamilyCode":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif","--fontFamilyHeading":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif"},rootDarken:{"&&":{"--colorBgBlockquote":"none","--colorBgTableHead":"hsl(200deg, 10%, 16%)","--colorBgTableEvenRow":"hsl(200deg, 10%, 16%)","--colorBgTableOddRow":"hsl(0deg, 0%, 9%)","--colorBorderBlockquote":"hsl(207deg, 7%, 45%)","--colorBorderHeading":"hsla(0deg, 0%, 30%, 0.8)","--colorBorderImage":"hsl(290deg, 15%, 49%)","--colorBorderTable":"hsl(0deg, 0%, 50%)","--colorBgCode":"hsl(0deg, 0%, 12%)","--colorDelete":"hsl(220deg, 5%, 68%)","--colorHeading":"hsl(0deg, 0%, 65%)","--colorImageTitle":"hsl(0deg, 0%, 50%)","--colorInlineCode":"hsl(348deg, 70%, 52%)","--colorLink":"hsl(207deg, 53%, 50%)","--colorLinkActive":"hsl(207deg, 53%, 50%)","--colorLinkHover":"hsl(207deg, 53%, 50%)","--colorLinkVisited":"hsl(207deg, 53%, 50%)","--fontFamilyCode":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif","--fontFamilyHeading":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif"}},blockquote:{},break:{},code:{},delete:{},emphasis:{},heading:{},image:{},imageReference:{},inlineCode:{},link:{},linkReference:{},list:{},listItem:{},paragraph:{},strong:{},table:{},text:{},thematicBreak:{}}),NodeRendererContextType=React.createContext(null);NodeRendererContextType.displayName="NodeRendererContextType";const useNodeRendererContext=()=>React.useContext(NodeRendererContextType);function disposeAll(j){const _e=[];for(const et of j)try{et.dispose()}catch(tt){_e.push(tt)}if(_e.length===1)throw _e[0];if(_e.length>1)throw new AggregateError(_e,"Encountered errors while disposing")}class BatchDisposable{constructor(){zr(this,"_disposed");zr(this,"_disposables");this._disposed=!1,this._disposables=[]}get disposed(){return this._disposed}dispose(){if(!this._disposed){this._disposed=!0;try{disposeAll(this._disposables)}finally{this._disposables.length=0}}}registerDisposable(_e){_e.disposed||(this._disposed?_e.dispose():this._disposables.push(_e))}}class Disposable{constructor(_e){zr(this,"_onDispose");zr(this,"_disposed");this._onDispose=_e,this._disposed=!1}static fromCallback(_e){return new Disposable(_e)}static fromUnsubscribable(_e){return new Disposable(()=>_e.unsubscribe())}get disposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._onDispose())}}function isDisposable(j){return j===null||typeof j!="object"?!1:typeof Reflect.get(j,"dispose")=="function"&&typeof Reflect.get(j,"disposed")=="boolean"}var ScheduleTransactionStatus;(function(j){j[j.NOT_STARTED=0]="NOT_STARTED",j[j.STARTED=1]="STARTED",j[j.COMPLETED=2]="COMPLETED"})(ScheduleTransactionStatus||(ScheduleTransactionStatus={}));function noop$2(...j){}const noopUnsubscribable={unsubscribe:noop$2};class Schedulable{constructor(_e){zr(this,"_scheduled");zr(this,"_run");this._scheduled=!1,this._run=_e}get scheduled(){return this._scheduled}schedule(){this._scheduled||(this._scheduled=!0,this._run())}}class Observable extends BatchDisposable{constructor(et,tt={}){super();zr(this,"equals");zr(this,"_value");zr(this,"_subscribers");this._value=et,this._subscribers=[],this.equals=tt.equals??((rt,nt)=>Object.is(rt,nt))}dispose(){if(!this.disposed){super.dispose();const et=this._subscribers;this._subscribers=[];for(const tt of et)tt.complete()}}getSnapshot(){return this._value}subscribe(et){return this.disposed?(et.complete(),noopUnsubscribable):(this._subscribers.includes(et)||(this._subscribers=[...this._subscribers,et]),{unsubscribe:()=>{this._subscribers.includes(et)&&(this._subscribers=this._subscribers.filter(tt=>tt!==et))}})}next(et,tt){if(this.disposed){console.warn("[Observable] Don't update a disposed observable. value:",et);return}const rt=this._value;this.equals(et,rt)||(this._value=et,this.notify(et,rt,tt))}notify(et,tt,rt){if(rt){rt.step(new Schedulable(()=>this.notifyImmediate(et,tt)));return}this.notifyImmediate(et,tt)}notifyImmediate(et,tt){const rt=this._subscribers;for(const nt of rt)nt.next(et,tt)}}class Ticker extends Observable{constructor(et,tt={}){const rt=new Set,nt=Number(tt.delay||0)||0,ot=Math.max(0,Number(tt.threshold||0)||0);super(et??0,{equals:(it,st)=>it===st});zr(this,"_observes");zr(this,"_delay");zr(this,"_threshold");zr(this,"_caller");this._observes=rt,this._delay=nt>=0?nt:-1,this._threshold=ot,this._caller=void 0}dispose(){this.disposed||(super.dispose(),this.flush(),this._observes.clear())}tick(et){this.next(this._value+1,et)}observe(et){if(this.disposed){console.warn("[Ticker.observe] the ticker has been disposed.");return}if(!this._observes.has(et)){const tt=et.subscribe({next:()=>{rt.disposed||this.tick()},complete:()=>rt.dispose()}),rt=Disposable.fromUnsubscribable(tt);this._observes.add(et),this.registerDisposable(rt)}}notify(et,tt,rt){if(rt){this.flush(),rt.step(new Schedulable(()=>this.notifyImmediate(et,tt)));return}if(this._delay<0){this.notifyImmediate(et,tt);return}const{_delay:nt,_threshold:ot,_caller:it}=this;let st=Date.now();const lt=()=>this.notifyImmediate(et,tt),ut=setTimeout(()=>{this._caller=void 0,lt()},nt);it!==void 0&&(this._caller=void 0,clearTimeout(it.timer),it.createdAt+ot<=st?it.call():st=it.createdAt),this._caller={timer:ut,createdAt:st,call:lt}}flush(){const et=this._caller;et!==void 0&&(this._caller=void 0,clearTimeout(et.timer),et.call())}}class Computed{constructor(_e){zr(this,"_observable");zr(this,"getSnapshot",()=>this._observable.getSnapshot());zr(this,"getServerSnapshot",()=>this._observable.getSnapshot());zr(this,"subscribeStateChange",_e=>{const et={next:()=>_e(),complete:()=>{}},tt=this._observable.subscribe(et),rt=Disposable.fromUnsubscribable(tt);return this._observable.registerDisposable(rt),()=>rt.dispose()});this._observable=_e}static fromObservables(_e,et,tt){const rt=new Ticker;for(const it of _e)rt.observe(it);const nt=()=>{const it=_e.map(st=>st.getSnapshot());return et(it)},ot=new Observable(nt(),tt);return ot.registerDisposable(rt),rt.subscribe({next:()=>{ot.disposed||ot.next(nt())},complete:()=>ot.dispose()}),new Computed(ot)}get disposed(){return this._observable.disposed}dispose(){this._observable.disposed||this._observable.dispose()}registerDisposable(_e){this._observable.registerDisposable(_e)}subscribe(_e){return this._observable.subscribe(_e)}}class State extends Observable{constructor(){super(...arguments);zr(this,"getSnapshot",()=>super.getSnapshot());zr(this,"getServerSnapshot",()=>super.getSnapshot());zr(this,"setState",et=>{const tt=typeof et=="function"?et(this.getSnapshot()):et;super.next(tt)});zr(this,"subscribeStateChange",et=>{const tt={next:()=>et(),complete:()=>{}},rt=super.subscribe(tt),nt=Disposable.fromUnsubscribable(rt);return this.registerDisposable(nt),()=>nt.dispose()})}}function isObservable(j){return j===null||typeof j!="object"?!1:typeof Reflect.get(j,"dispose")=="function"&&typeof Reflect.get(j,"disposed")=="boolean"&&typeof Reflect.get(j,"subscribe")=="function"&&typeof Reflect.get(j,"equals")=="function"&&typeof Reflect.get(j,"getSnapshot")=="function"&&typeof Reflect.get(j,"next")=="function"}class ViewModel extends BatchDisposable{constructor(){super();zr(this,"_tickerMap");this._tickerMap=new Map}dispose(){this.disposed||(super.dispose(),Reflect.ownKeys(this).forEach(et=>{if(typeof et=="string"&&et.endsWith("$")){const tt=this[et];isDisposable(tt)&&tt.dispose()}}))}ticker(et){const tt=Array.from(new Set(et)).sort(),rt=tt.join("|");let nt=this._tickerMap.get(rt);if(nt===void 0){const ot=new Ticker;nt={keys:tt,ticker:ot},this.registerDisposable(ot),this._tickerMap.set(rt,nt);for(const it of tt){const st=this[it];if(!isObservable(st)){console.warn("[ViewModel.ticker] not an observable, key:",it,"val:",st);continue}ot.observe(st)}}return nt}}class ReactMarkdownViewModel extends ViewModel{constructor(_e){super(),this.preferCodeWrap$=new State(!1);const{definitionMap:et,rendererMap:tt,showCodeLineno:rt,themeScheme:nt}=_e;this.definitionMap$=new State(et),this.rendererMap$=new State(tt),this.showCodeLineno$=new State(rt),this.themeScheme$=new State(nt)}}function isEqual$2(j,_e){if(j===null||_e===null||j===void 0||_e===void 0)return j===_e;if(typeof j!=typeof _e)return!1;if(Object.is(j,_e))return!0;if(typeof j=="object"){if(j.constructor!==_e.constructor)return!1;if(Array.isArray(j)){if(j.length!==_e.length)return!1;for(let tt=0;tt{rt.value=tt,rt.getSnapshot=_e,checkIfSnapshotChanged(rt)&&nt({inst:rt})},[j,tt,_e]),reactExports.useEffect(()=>(checkIfSnapshotChanged(rt)&&nt({inst:rt}),j(()=>{checkIfSnapshotChanged(rt)&&nt({inst:rt})})),[j]),reactExports.useDebugValue(tt),tt}function checkIfSnapshotChanged(j){const _e=j.getSnapshot,et=j.value;try{const tt=_e();return!Object.is(et,tt)}catch{return!0}}function useSyncExternalStore$1(j,_e,et){return _e()}const canUseDOM=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",shim=canUseDOM?useSyncExternalStore$2:useSyncExternalStore$1,builtin=reactExports.useSyncExternalStore,useSyncExternalStore=builtin||shim;function useStateValue(j){const{getSnapshot:_e,getServerSnapshot:et,subscribeStateChange:tt}=j;return useSyncExternalStore(tt,_e,et)}const NodesRenderer=j=>{const{nodes:_e}=j,{viewmodel:et}=useNodeRendererContext(),tt=useStateValue(et.rendererMap$);return!Array.isArray(_e)||_e.length<=0?jsxRuntimeExports.jsx(React.Fragment,{}):jsxRuntimeExports.jsx(NodesRendererInner,{nodes:_e,rendererMap:tt})};class NodesRendererInner extends React.Component{shouldComponentUpdate(_e){const et=this.props;return!lodashExports.isEqual(et.nodes,_e.nodes)||et.rendererMap!==_e.rendererMap}render(){const{nodes:_e,rendererMap:et}=this.props;return jsxRuntimeExports.jsx(React.Fragment,{children:_e.map((tt,rt)=>{const nt=`${tt.type}-${rt}`,ot=et[tt.type]??et._fallback;return jsxRuntimeExports.jsx(ot,{...tt},nt)})})}}var TokenizerType;(function(j){j.BLOCK="block",j.INLINE="inline"})(TokenizerType||(TokenizerType={}));var TokenizerPriority;(function(j){j[j.ATOMIC=10]="ATOMIC",j[j.FENCED_BLOCK=10]="FENCED_BLOCK",j[j.CONTAINING_BLOCK=10]="CONTAINING_BLOCK",j[j.INTERRUPTABLE_BLOCK=2]="INTERRUPTABLE_BLOCK",j[j.IMAGES=4]="IMAGES",j[j.LINKS=3]="LINKS",j[j.CONTAINING_INLINE=2]="CONTAINING_INLINE",j[j.SOFT_INLINE=1]="SOFT_INLINE",j[j.FALLBACK=-1]="FALLBACK"})(TokenizerPriority||(TokenizerPriority={}));class BaseInlineTokenizer{constructor(_e){zr(this,"type",TokenizerType.INLINE);zr(this,"name");zr(this,"priority");this.name=_e.name,this.priority=_e.priority}toString(){return this.name}}function*genFindDelimiter(j){let _e=-1,et=null;for(;;){const[tt,rt]=yield et;_e===rt&&(et==null||et.startIndex>=tt)||(_e=rt,et=j(tt,rt))}}class BaseBlockTokenizer{constructor(_e){zr(this,"type",TokenizerType.BLOCK);zr(this,"name");zr(this,"priority");this.name=_e.name,this.priority=_e.priority}extractPhrasingContentLines(_e){return null}buildBlockToken(_e,et){return null}toString(){return this.name}}function calcStartPoint(j,_e){const{line:et,column:tt,offset:rt}=j[_e];return{line:et,column:tt,offset:rt}}function calcEndPoint(j,_e){const{line:et,column:tt,offset:rt}=j[_e];return{line:et,column:tt+1,offset:rt+1}}function calcPositionFromPhrasingContentLines(j){const _e=j[0],et=j[j.length-1];return{start:calcStartPoint(_e.nodePoints,_e.startIndex),end:calcEndPoint(et.nodePoints,et.endIndex-1)}}function mergeContentLinesFaithfully(j,_e=0,et=j.length){if(_e>=et||_e<0||et>j.length)return[];const tt=[];for(let rt=_e;rt=et||_e<0||et>j.length)return[];for(let st=_e;st+1=0;--it){const st=rt[it];if(!isWhitespaceCharacter(st.codePoint))break}for(let st=ot;st<=it;++st)tt.push(rt[st]);return tt}function encodeLinkDestination(j){let _e=j;for(;;)try{const et=decodeURIComponent(_e);if(et===_e)break;_e=et}catch{break}return encodeURI(_e)}function resolveLabelToIdentifier(j){const _e=j.trim().replace(/\s+/gu," ").toLowerCase();return foldCase(_e)}function resolveLinkLabelAndIdentifier(j,_e,et){const tt=calcStringFromNodePoints(j,_e,et,!0);if(tt.length<=0)return null;const rt=resolveLabelToIdentifier(tt);return{label:tt,identifier:rt}}function eatLinkLabel(j,_e,et){let tt=_e+1;const rt=Math.min(tt+1e3,et);for(;tt_e;--et){const tt=j[et];if(tt.firstNonWhitespaceIndexet?[]:j.slice(_e,et+1)}const prefix$2="Invariant failed";function invariant$1(j,_e){if(!j)throw new Error(prefix$2)}const createBlockContentProcessor=(j,_e)=>{const et={_tokenizer:"root",nodeType:"root",position:{start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}},children:[]},tt=[];tt.push({hook:{isContainingBlock:!0},token:et});let rt=0;const nt=ft=>{for(let pt=rt;pt>=0;--pt){const gt=tt[pt];gt.token.position.end={...ft}}},ot=(ft,pt)=>{if(pt.length<=0)return null;const gt=j.filter(bt=>bt!==ft),vt=createBlockContentProcessor(gt,_e);for(const bt of pt)vt.consume(bt);return vt},it=()=>{const ft=tt.pop();if(ft!=null){if(tt.length>0){const pt=tt[tt.length-1];if(ft.hook.onClose!=null){const gt=ft.hook.onClose(ft.token);if(gt!=null)switch(gt.status){case"closingAndRollback":{const vt=ot(ft.hook,gt.lines);if(vt==null)break;const bt=vt.done();pt.token.children.push(...bt.children);break}case"failedAndRollback":{pt.token.children.pop();const vt=ot(ft.hook,gt.lines);if(vt==null)break;const bt=vt.done();pt.token.children.push(...bt.children);break}}}}return rt>=tt.length&&(rt=tt.length-1),ft}},st=ft=>{for(;tt.length>ft;)it()},lt=(ft,pt,gt)=>{st(rt+1),tt[rt].token.children.push(pt),nt(pt.position.end),rt+=1,tt.push({hook:ft,token:pt}),gt&&it()},ut=(ft,pt,gt)=>{const vt=ot(ft,pt);if(vt==null)return!1;const bt=vt.shallowSnapshot(),_t=bt[0];_t.token.children!=null&>.token.children.push(..._t.token.children),nt(_t.token.position.end);for(let xt=1;xt{const{nodePoints:pt,startIndex:gt,endIndex:vt}=ft;let{firstNonWhitespaceIndex:bt,countOfPrecedeSpaces:_t,startIndex:xt}=ft;const yt=()=>({nodePoints:pt,startIndex:xt,endIndex:vt,firstNonWhitespaceIndex:bt,countOfPrecedeSpaces:_t}),Et=(It,Ot)=>{if(invariant$1(xt<=It),Ot){const Nt=calcEndPoint(pt,It-1);nt(Nt)}if(xt!==It)for(xt=It,_t=0,bt=It;bt{const{token:Nt}=tt[rt],Pt=It.eatOpener(Ot,Nt);if(Pt==null)return!1;invariant$1(Pt.nextIndex>xt,`[consumeNewOpener] The marker of the new data node cannot be empty. - tokenizer(${Pt.token._tokenizer})`),Et(Pt.nextIndex,!1);const Mt=Pt.token;return Mt._tokenizer=It.name,lt(It,Mt,!!Pt.saturated),!0},$t=(It,Ot)=>{if(It.eatAndInterruptPreviousSibling==null)return!1;const{hook:Nt,token:Pt}=tt[rt],{token:Mt}=tt[rt-1];if(It.priority<=Nt.priority)return!1;const Rt=It.eatAndInterruptPreviousSibling(Ot,Pt,Mt);if(Rt==null)return!1;st(rt),Mt.children.pop(),Rt.remainingSibling!=null&&(Array.isArray(Rt.remainingSibling)?Mt.children.push(...Rt.remainingSibling):Mt.children.push(Rt.remainingSibling)),Et(Rt.nextIndex,!1);const Lt=Rt.token;return Lt._tokenizer=It.name,lt(It,Lt,!!Rt.saturated),!0},At=()=>{if(rt=1,tt.length<2)return;let{token:It}=tt[rt-1];for(;xtjt!==Nt&&$t(jt,Pt)))break;const Mt=Nt.eatContinuationText==null?{status:"notMatched"}:Nt.eatContinuationText(Pt,Ot.token,It);let Rt=!1,Lt=!1;switch(Mt.status){case"failedAndRollback":{if(It.children.pop(),tt.length=rt,rt-=1,Mt.lines.length>0){const jt=tt[rt];if(ut(Nt,Mt.lines,jt)){Lt=!0;break}}Rt=!0;break}case"closingAndRollback":{if(st(rt),Mt.lines.length>0){const jt=tt[rt];if(ut(Nt,Mt.lines,jt)){Lt=!0;break}}Rt=!0;break}case"notMatched":{rt-=1,Rt=!0;break}case"closing":{Et(Mt.nextIndex,!0),rt-=1,Rt=!0;break}case"opening":{Et(Mt.nextIndex,!0);break}default:throw new TypeError(`[eatContinuationText] unexpected status (${Mt.status}).`)}if(Rt)break;Lt||(rt+=1,It=Ot.token)}},wt=()=>{if(!(xt>=vt)){if(rt=4)return}else rt=tt.length-1;for(;xt{if(xt>=vt||rt+1>=tt.length)return!1;const{hook:It,token:Ot}=tt[tt.length-1];if(It.eatLazyContinuationText==null)return!1;const{token:Nt}=tt[tt.length-2],Pt=yt(),Mt=It.eatLazyContinuationText(Pt,Ot,Nt);switch(Mt.status){case"notMatched":return!1;case"opening":return rt=tt.length-1,Et(Mt.nextIndex,!0),rt=tt.length-1,!0;default:throw new TypeError(`[eatLazyContinuationText] unexpected status (${Mt.status}).`)}};if(At(),wt(),Ct()||st(rt+1),_e!=null&&xt=vt)},done:()=>{for(;tt.length>1;)it();return et},shallowSnapshot:()=>[...tt]}},createSinglePriorityDelimiterProcessor=()=>{let j=0;const _e=[],et=[],tt=[],rt=ct=>{let dt=ct-1;for(;dt>=0&&et[dt].inactive;)dt-=1;et.length=dt+1},nt=(ct,dt)=>{et.push({hook:ct,delimiter:dt,inactive:!1,tokenStackIndex:tt.length})},ot=(ct,dt)=>{if(et.length<=0)return null;let ft=null;for(let pt=et.length-1;pt>=0;--pt){if(ft=et[pt],ft.inactive||ft.hook!==ct)continue;const gt=ft.delimiter,vt=ct.isDelimiterPair(gt,dt,_e);if(vt.paired)return gt;if(!vt.closer)return null}return null},it=(ct,dt)=>{if(et.length<=0)return dt;let ft,pt=dt,gt=[];for(let vt=et.length-1;vt>=0;--vt){const bt=et[vt];if(bt.hook!==ct||bt.inactive)continue;const _t=bt.tokenStackIndex;for(_t0){for(const St of Et)St._tokenizer=ct.name;gt.unshift(...Et)}ft=void 0,bt.inactive=!0}if(!xt.closer){const Et=ct.processSingleDelimiter(pt);if(Et.length>0){for(const St of Et)St._tokenizer=ct.name;gt.push(...Et)}pt=void 0}break}const yt=ct.processDelimiterPair(ft,pt,gt);{for(const Et of yt.tokens)Et._tokenizer==null&&(Et._tokenizer=ct.name);gt=yt.tokens}ft=yt.remainOpenerDelimiter,pt=yt.remainCloserDelimiter,rt(vt),vt=Math.min(vt,et.length),ft!=null&&nt(ct,ft)}if(pt==null||pt.type==="full")break}if(tt.push(...gt),pt==null)return null;if(pt.type==="full"||pt.type==="closer"){const vt=ct.processSingleDelimiter(pt);for(const bt of vt)bt._tokenizer=ct.name,tt.push(bt);return null}return pt};return{process:(ct,dt)=>{for(;j<_e.length;++j){const ft=_e[j];if(ft.startIndex>=dt.endIndex)break;ft.startIndex>=dt.startIndex||tt.push(ft)}switch(dt.type){case"opener":{nt(ct,dt);break}case"both":{const ft=it(ct,dt);ft!=null&&nt(ct,ft);break}case"closer":{it(ct,dt);break}case"full":{const ft=ct.processSingleDelimiter(dt);for(const pt of ft)pt._tokenizer=ct.name,tt.push(pt);break}default:throw new TypeError(`Unexpected delimiter type(${dt.type}) from ${ct.name}.`)}},done:()=>{const ct=[];for(const{delimiter:ft,hook:pt}of et){const gt=pt.processSingleDelimiter(ft);for(const vt of gt)vt._tokenizer=pt.name,ct.push(vt)}if(et.length=0,ct.length>0){const ft=mergeSortedTokenStack(tt,ct);tt.length=0,tt.push(...ft)}return tt.concat(_e.slice(j))},reset:ct=>{_e.length=ct.length;for(let dt=0;dt{if(j.length<=0)return _e;if(_e.length<=0)return j;const et=[];let tt=0,rt=0;for(;tt{const et=(nt,ot,it)=>{let st=[],lt=null;const ut=[nt,ot];for(const dt of it){const ft=dt.findDelimiter(ut);if(ft!=null){if(lt!=null){if(ft.startIndex>lt)continue;ft.startIndex1){let dt=0;for(const ft of st){const pt=ft.delimiter.type;if(pt==="full")return{items:[ft],nextIndex:ft.delimiter.endIndex};(pt==="both"||pt==="closer")&&(dt+=1)}if(dt>1){let ft=-1,pt=-1;for(let vt=0;vt-1?[st[ft]]:st.filter(vt=>vt.delimiter.type!=="closer"),nextIndex:ct}}}return{items:st,nextIndex:ct}},tt=createSinglePriorityDelimiterProcessor();return{process:(nt,ot,it)=>{let st=nt;for(let lt=_e;lt{const tt=[];for(let rt=0;rt{let dt=ot.process(lt,ut,ct);return dt=et(dt,ut,ct),dt}}),st=j[rt].priority;for(;rt{let et;const tt=j.match(_e);return{isDelimiterPair:()=>({paired:!0}),processDelimiterPair:(rt,nt,ot)=>({tokens:ot}),processSingleDelimiter:()=>[],...tt,name:j.name,priority:j.priority,findDelimiter:rt=>et.next(rt).value,reset:()=>{et=tt.findDelimiter(),et.next()}}};function createProcessor(j){const{inlineTokenizers:_e,inlineTokenizerMap:et,blockTokenizers:tt,blockTokenizerMap:rt,blockFallbackTokenizer:nt,inlineFallbackTokenizer:ot,shouldReservePosition:it,presetDefinitions:st,presetFootnoteDefinitions:lt,formatUrl:ut}=j;let ct=!1;const dt=new Set,ft=new Set;let pt=[],gt=-1,vt=-1;const bt=Object.freeze({matchBlockApi:{extractPhrasingLines:wt,rollbackPhrasingLines:Ct,registerDefinitionIdentifier:Lt=>{ct&&dt.add(Lt)},registerFootnoteDefinitionIdentifier:Lt=>{ct&&ft.add(Lt)}},parseBlockApi:{shouldReservePosition:it,formatUrl:ut,processInlines:Pt,parseBlockTokens:Nt},matchInlineApi:{hasDefinition:Lt=>dt.has(Lt),hasFootnoteDefinition:Lt=>ft.has(Lt),getNodePoints:()=>pt,getBlockStartIndex:()=>gt,getBlockEndIndex:()=>vt,resolveFallbackTokens:It},parseInlineApi:{shouldReservePosition:it,calcPosition:Lt=>({start:calcStartPoint(pt,Lt.startIndex),end:calcEndPoint(pt,Lt.endIndex-1)}),formatUrl:ut,getNodePoints:()=>pt,hasDefinition:Lt=>dt.has(Lt),hasFootnoteDefinition:Lt=>ft.has(Lt),parseInlineTokens:Rt}}),_t=tt.map(Lt=>({...Lt.match(bt.matchBlockApi),name:Lt.name,priority:Lt.priority})),xt=new Map(Array.from(rt.entries()).map(Lt=>[Lt[0],Lt[1].parse(bt.parseBlockApi)])),yt=nt?{...nt.match(bt.matchBlockApi),name:nt.name,priority:nt.priority}:null,Et=createProcessorHookGroups(_e,bt.matchInlineApi,It),St=new Map(Array.from(et.entries()).map(Lt=>[Lt[0],Lt[1].parse(bt.parseInlineApi)])),$t=createPhrasingContentProcessor(Et,0);return{process:At};function At(Lt){dt.clear(),ft.clear(),ct=!0;const jt=Ot(Lt);ct=!1;for(const Yt of st)dt.add(Yt.identifier);for(const Yt of lt)ft.add(Yt.identifier);const Gt=Nt(jt.children);return it?{type:"root",position:jt.position,children:Gt}:{type:"root",children:Gt}}function wt(Lt){const jt=rt.get(Lt._tokenizer);return(jt==null?void 0:jt.extractPhrasingContentLines(Lt))??null}function Ct(Lt,jt){if(jt!=null){const Vt=rt.get(jt._tokenizer);if(Vt!==void 0&&Vt.buildBlockToken!=null){const Yt=Vt.buildBlockToken(Lt,jt);if(Yt!==null)return Yt._tokenizer=Vt.name,[Yt]}}return Ot([Lt]).children}function It(Lt,jt,Gt){if(ot==null)return Lt;let Vt=jt;const Yt=[];for(const Xt of Lt){if(Vtot.priority)break}nt<0||nt>=_e.length?_e.push(tt):_e.splice(nt,0,tt)}_unregisterTokenizer(_e,et,tt){var it,st;const rt=typeof tt=="string"?tt:tt.name;if(!et.delete(rt))return;((it=this.blockFallbackTokenizer)==null?void 0:it.name)===rt&&(this.blockFallbackTokenizer=null),((st=this.inlineFallbackTokenizer)==null?void 0:st.name)===rt&&(this.inlineFallbackTokenizer=null);const ot=_e.findIndex(lt=>lt.name===rt);ot>=0&&_e.splice(ot,1)}}function eatEmailAddress(j,_e,et){let tt=_e;for(;tt=et||j[tt].codePoint!==AsciiCodePoint.AT_SIGN||!isAlphanumeric(j[tt+1].codePoint))return{valid:!1,nextIndex:tt+1};for(tt=eatAddressPart0(j,tt+2,et);tt+1=_e?rt+1:_e}function eatAbsoluteUri(j,_e,et){const tt=eatAutolinkSchema(j,_e,et);let{nextIndex:rt}=tt;if(!tt.valid||rt>=et||j[rt].codePoint!==AsciiCodePoint.COLON)return{valid:!1,nextIndex:rt};for(rt+=1;rt32?{valid:!1,nextIndex:tt+1}:{valid:!0,nextIndex:tt}}const helpers=[{contentType:"uri",eat:eatAbsoluteUri},{contentType:"email",eat:eatEmailAddress}],match$n=function(j){return{findDelimiter:()=>genFindDelimiter(_e),processSingleDelimiter:et};function _e(tt,rt){const nt=j.getNodePoints();for(let ot=tt;ot_e.map(et=>{const tt=j.getNodePoints();let rt=calcStringFromNodePoints(tt,et.startIndex+1,et.endIndex-1);et.contentType==="email"&&(rt="mailto:"+rt);const nt=j.formatUrl(rt),ot=j.parseInlineTokens(et.children);return j.shouldReservePosition?{type:LinkType,position:j.calcPosition(et),url:nt,children:ot}:{type:LinkType,url:nt,children:ot}})}},uniqueName$j="@yozora/tokenizer-autolink";class AutolinkTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$j,priority:et.priority??TokenizerPriority.ATOMIC});zr(this,"match",match$n);zr(this,"parse",parse$l)}}const match$m=function(){return{isContainingBlock:!0,eatOpener:j,eatAndInterruptPreviousSibling:_e,eatContinuationText:et};function j(tt){if(tt.countOfPrecedeSpaces>=4)return null;const{nodePoints:rt,startIndex:nt,endIndex:ot,firstNonWhitespaceIndex:it}=tt;if(it>=ot||rt[it].codePoint!==AsciiCodePoint.CLOSE_ANGLE)return null;let st=it+1;return st=4||lt>=st||ot[lt].codePoint!==AsciiCodePoint.CLOSE_ANGLE?nt.nodeType===BlockquoteType?{status:"opening",nextIndex:it}:{status:"notMatched"}:{status:"opening",nextIndex:lt+1_e.map(et=>{const tt=j.parseBlockTokens(et.children);return j.shouldReservePosition?{type:BlockquoteType,position:et.position,children:tt}:{type:BlockquoteType,children:tt}})}},uniqueName$i="@yozora/tokenizer-blockquote";class BlockquoteTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$i,priority:et.priority??TokenizerPriority.CONTAINING_BLOCK});zr(this,"match",match$m);zr(this,"parse",parse$k)}}const uniqueName$h="@yozora/tokenizer-break";var BreakTokenMarkerType;(function(j){j.BACKSLASH="backslash",j.MORE_THAN_TWO_SPACES="more-than-two-spaces"})(BreakTokenMarkerType||(BreakTokenMarkerType={}));const match$l=function(j){return{findDelimiter:()=>genFindDelimiter(_e),processSingleDelimiter:et};function _e(tt,rt){const nt=j.getNodePoints();for(let ot=tt+1;ot=tt&&nt[ut].codePoint===AsciiCodePoint.BACKSLASH;ut-=1);ot-ut&1||(st=ot-1,lt=BreakTokenMarkerType.BACKSLASH);break}case AsciiCodePoint.SPACE:{let ut=ot-2;for(;ut>=tt&&nt[ut].codePoint===AsciiCodePoint.SPACE;ut-=1);ot-ut>2&&(st=ut+1,lt=BreakTokenMarkerType.MORE_THAN_TWO_SPACES);break}}if(!(st==null||lt==null))return{type:"full",markerType:lt,startIndex:st,endIndex:ot}}return null}function et(tt){return[{nodeType:BreakType,startIndex:tt.startIndex,endIndex:tt.endIndex}]}},parse$j=function(j){return{parse:_e=>_e.map(et=>j.shouldReservePosition?{type:BreakType,position:j.calcPosition(et)}:{type:BreakType})}};class BreakTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$h,priority:et.priority??TokenizerPriority.SOFT_INLINE});zr(this,"match",match$l);zr(this,"parse",parse$j)}}function eatAndCollectLinkDestination(j,_e,et,tt){let rt=_e;tt==null&&(tt={saturated:!1,nodePoints:[],hasOpenAngleBracket:!1,openParensCount:0});const nt=eatOptionalWhitespaces(j,rt,et);if(nt>=et)return{nextIndex:-1,state:tt};if(tt.nodePoints.length<=0){rt=nt;const ot=j[rt];ot.codePoint===AsciiCodePoint.OPEN_ANGLE&&(rt+=1,tt.hasOpenAngleBracket=!0,tt.nodePoints.push(ot))}if(tt.hasOpenAngleBracket){for(;rt=et)return{nextIndex:-1,state:tt};if(tt.nodePoints.length<=0){rt=nt;const ot=j[rt];if(ot.codePoint!==AsciiCodePoint.OPEN_BRACKET)return{nextIndex:-1,state:tt};rt+=1,tt.nodePoints.push(ot)}for(;rt=et)return{nextIndex:-1,state:tt};if(tt.nodePoints.length<=0){rt=nt;const ot=j[rt];switch(ot.codePoint){case AsciiCodePoint.DOUBLE_QUOTE:case AsciiCodePoint.SINGLE_QUOTE:case AsciiCodePoint.OPEN_PARENTHESIS:tt.wrapSymbol=ot.codePoint,tt.nodePoints.push(ot),rt+=1;break;default:return{nextIndex:-1,state:tt}}}if(tt.wrapSymbol==null)return{nextIndex:-1,state:tt};switch(tt.wrapSymbol){case AsciiCodePoint.DOUBLE_QUOTE:case AsciiCodePoint.SINGLE_QUOTE:{for(;rt=et||j[rt+1].codePoint===VirtualCodePoint.LINE_END){tt.nodePoints.push(ot),tt.saturated=!0;break}return{nextIndex:-1,state:tt};default:tt.nodePoints.push(ot)}}break}}return{nextIndex:et,state:tt}}const match$k=function(j){return{isContainingBlock:!1,eatOpener:_e,eatContinuationText:et,onClose:tt};function _e(rt){if(rt.countOfPrecedeSpaces>=4)return null;const{nodePoints:nt,startIndex:ot,endIndex:it,firstNonWhitespaceIndex:st}=rt;if(st>=it)return null;let lt=st;const{nextIndex:ut,state:ct}=eatAndCollectLinkLabel(nt,lt,it,null);if(ut<0)return null;const dt=nt[ot].line,ft=()=>({nodeType:DefinitionType,position:{start:calcStartPoint(nt,ot),end:calcEndPoint(nt,it-1)},label:ct,destination:null,title:null,lineNoOfLabel:dt,lineNoOfDestination:-1,lineNoOfTitle:-1,lines:[rt]});if(!ct.saturated)return{token:ft(),nextIndex:it};if(ut<0||ut+1>=it||nt[ut].codePoint!==AsciiCodePoint.COLON)return null;if(lt=eatOptionalWhitespaces(nt,ut+1,it),lt>=it)return{token:ft(),nextIndex:it};const{nextIndex:pt,state:gt}=eatAndCollectLinkDestination(nt,lt,it,null);if(pt<0||!gt.saturated&&pt!==it)return null;if(lt=eatOptionalWhitespaces(nt,pt,it),lt>=it){const xt=ft();return xt.destination=gt,xt.lineNoOfDestination=dt,{token:xt,nextIndex:it}}if(lt===pt)return null;const{nextIndex:vt,state:bt}=eatAndCollectLinkTitle(nt,lt,it,null);if(vt>=0&&(lt=vt),lt=lt||ot[vt].codePoint!==AsciiCodePoint.COLON)return{status:"failedAndRollback",lines:nt.lines};ct=vt+1}if(nt.destination==null){if(ct=eatOptionalWhitespaces(ot,ct,lt),ct>=lt)return{status:"failedAndRollback",lines:nt.lines};const{nextIndex:vt,state:bt}=eatAndCollectLinkDestination(ot,ct,lt,null);if(vt<0||!bt.saturated)return{status:"failedAndRollback",lines:nt.lines};if(ct=eatOptionalWhitespaces(ot,vt,lt),ct>=lt)return nt.destination=bt,nt.lines.push(rt),{status:"opening",nextIndex:lt};nt.lineNoOfDestination=ut,nt.lineNoOfTitle=ut}nt.lineNoOfTitle<0&&(nt.lineNoOfTitle=ut);const{nextIndex:dt,state:ft}=eatAndCollectLinkTitle(ot,ct,lt,nt.title);if(nt.title=ft,dt<0||ft.nodePoints.length<=0||ft.saturated&&eatOptionalWhitespaces(ot,dt,lt)_e.map(et=>{const tt=et._label,rt=et._identifier,nt=et.destination.nodePoints,ot=nt[0].codePoint===AsciiCodePoint.OPEN_ANGLE?calcEscapedStringFromNodePoints(nt,1,nt.length-1,!0):calcEscapedStringFromNodePoints(nt,0,nt.length,!0),it=j.formatUrl(ot),st=et.title==null?void 0:calcEscapedStringFromNodePoints(et.title.nodePoints,1,et.title.nodePoints.length-1);return j.shouldReservePosition?{type:DefinitionType,position:et.position,identifier:rt,label:tt,url:it,title:st}:{type:DefinitionType,identifier:rt,label:tt,url:it,title:st}})}},uniqueName$g="@yozora/tokenizer-definition";class DefinitionTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$g,priority:et.priority??TokenizerPriority.ATOMIC});zr(this,"match",match$k);zr(this,"parse",parse$i)}}const match$j=function(j){return{findDelimiter:()=>genFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt};function _e(rt,nt){const ot=j.getNodePoints(),it=j.getBlockStartIndex(),st=j.getBlockEndIndex(),lt=(ct,dt)=>{if(dt===st)return!1;if(dt===nt)return!0;const ft=ot[dt];if(isUnicodeWhitespaceCharacter(ft.codePoint))return!1;if(!isPunctuationCharacter(ft.codePoint)||ct<=rt)return!0;const pt=ot[ct-1];return isUnicodeWhitespaceCharacter(pt.codePoint)||isPunctuationCharacter(pt.codePoint)},ut=(ct,dt)=>{if(ct===it)return!1;if(ct===rt)return!0;const ft=ot[ct-1];if(isUnicodeWhitespaceCharacter(ft.codePoint))return!1;if(!isPunctuationCharacter(ft.codePoint)||dt>=nt)return!0;const pt=ot[dt];return isUnicodeWhitespaceCharacter(pt.codePoint)||isPunctuationCharacter(pt.codePoint)};for(let ct=rt;ctrt&&!isPunctuationCharacter(ot[ft-1].codePoint)&&(bt=!1);const yt=ot[pt];isPunctuationCharacter(yt.codePoint)||(_t=!1)}if(!bt&&!_t)break;const xt=pt-ft;return{type:bt?_t?"both":"opener":"closer",startIndex:ft,endIndex:pt,thickness:xt,originalThickness:xt}}}}return null}function et(rt,nt){const ot=j.getNodePoints();return ot[rt.startIndex].codePoint!==ot[nt.startIndex].codePoint||(rt.type==="both"||nt.type==="both")&&(rt.originalThickness+nt.originalThickness)%3===0&&rt.originalThickness%3!==0?{paired:!1,opener:!0,closer:!0}:{paired:!0}}function tt(rt,nt,ot){let it=1;rt.thickness>1&&nt.thickness>1&&(it=2),ot=j.resolveInternalTokens(ot,rt.endIndex,nt.startIndex);const st={nodeType:it===1?EmphasisType:StrongType,startIndex:rt.endIndex-it,endIndex:nt.startIndex+it,thickness:it,children:ot},lt=rt.thickness>it?{type:rt.type,startIndex:rt.startIndex,endIndex:rt.endIndex-it,thickness:rt.thickness-it,originalThickness:rt.originalThickness}:void 0,ut=nt.thickness>it?{type:nt.type,startIndex:nt.startIndex+it,endIndex:nt.endIndex,thickness:nt.thickness-it,originalThickness:nt.originalThickness}:void 0;return{tokens:[st],remainOpenerDelimiter:lt,remainCloserDelimiter:ut}}},parse$h=function(j){return{parse:_e=>_e.map(et=>{const tt=j.parseInlineTokens(et.children);return j.shouldReservePosition?{type:et.nodeType,position:j.calcPosition(et),children:tt}:{type:et.nodeType,children:tt}})}},uniqueName$f="@yozora/tokenizer-emphasis";class EmphasisTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$f,priority:et.priority??TokenizerPriority.CONTAINING_INLINE});zr(this,"match",match$j);zr(this,"parse",parse$h)}}function match$i(j){const{nodeType:_e,markers:et,markersRequired:tt,checkInfoString:rt}=this;return{isContainingBlock:!1,eatOpener:nt,eatAndInterruptPreviousSibling:ot,eatContinuationText:it};function nt(st){if(st.countOfPrecedeSpaces>=4)return null;const{endIndex:lt,firstNonWhitespaceIndex:ut}=st;if(ut+tt-1>=lt)return null;const{nodePoints:ct,startIndex:dt}=st,ft=ct[ut].codePoint;if(et.indexOf(ft)<0)return null;const pt=eatOptionalCharacters(ct,ut+1,lt,ft),gt=pt-ut;if(gt=lt.markerCount){for(;vt=dt)return{status:"closing",nextIndex:dt}}}const gt=Math.min(ct+lt.indent,ft,dt-1);return lt.lines.push({nodePoints:ut,startIndex:gt,endIndex:dt,firstNonWhitespaceIndex:ft,countOfPrecedeSpaces:pt}),{status:"opening",nextIndex:dt}}}class FencedBlockTokenizer extends BaseBlockTokenizer{constructor(et){super({name:et.name,priority:et.priority??TokenizerPriority.FENCED_BLOCK});zr(this,"nodeType");zr(this,"markers",[]);zr(this,"markersRequired");zr(this,"checkInfoString");zr(this,"match",match$i);this.nodeType=et.nodeType,this.markers=et.markers,this.markersRequired=et.markersRequired,this.checkInfoString=et.checkInfoString}}const match$h=function(j){return{...match$i.call(this,j),isContainingBlock:!1}},parse$g=function(j){return{parse:_e=>_e.map(et=>{const tt=et.infoString;let rt=0;const nt=[];for(;rt0?ot:null,meta:it.length>0?it:null,value:lt}:{type:CodeType,lang:ot.length>0?ot:null,meta:it.length>0?it:null,value:lt}})}},uniqueName$e="@yozora/tokenizer-fenced-code";class FencedCodeTokenizer extends FencedBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$e,priority:et.priority??TokenizerPriority.FENCED_BLOCK,nodeType:CodeType,markers:[AsciiCodePoint.BACKTICK,AsciiCodePoint.TILDE],markersRequired:3,checkInfoString:(tt,rt)=>{if(rt===AsciiCodePoint.BACKTICK){for(const nt of tt)if(nt.codePoint===AsciiCodePoint.BACKTICK)return!1}return!0}});zr(this,"match",match$h);zr(this,"parse",parse$g)}}const match$g=function(){return{isContainingBlock:!1,eatOpener:j,eatAndInterruptPreviousSibling:_e};function j(et){if(et.countOfPrecedeSpaces>=4)return null;const{nodePoints:tt,startIndex:rt,endIndex:nt,firstNonWhitespaceIndex:ot}=et;if(ot>=nt||tt[ot].codePoint!==AsciiCodePoint.NUMBER_SIGN)return null;const it=eatOptionalCharacters(tt,ot+1,nt,AsciiCodePoint.NUMBER_SIGN),st=it-ot;if(st>6||it+1_e.map(et=>{const{nodePoints:tt,firstNonWhitespaceIndex:rt,endIndex:nt}=et.line;let[ot,it]=calcTrimBoundaryOfCodePoints(tt,rt+et.depth,nt),st=0;for(let ft=it-1;ft>=ot&&tt[ft].codePoint===AsciiCodePoint.NUMBER_SIGN;--ft)st+=1;if(st>0){let ft=0,pt=it-1-st;for(;pt>=ot;--pt){const gt=tt[pt].codePoint;if(!isWhitespaceCharacter(gt))break;ft+=1}(ft>0||pt=et)return null;const rt=tt;let nt=j[tt].codePoint;if(!isAsciiLetter(nt)&&nt!==AsciiCodePoint.UNDERSCORE&&nt!==AsciiCodePoint.COLON)return null;for(tt=rt+1;ttlt&&(it.value={startIndex:lt,endIndex:ut});break}}if(it.value!=null)return{attribute:it,nextIndex:tt}}return{attribute:it,nextIndex:ot}}function eatHTMLTagName(j,_e,et){if(_e>=et||!isAsciiLetter(j[_e].codePoint))return null;let tt=_e;for(;tt=et)return et;const rt=j[_e].codePoint;return isWhitespaceCharacter(rt)||rt===AsciiCodePoint.CLOSE_ANGLE?_e+1:null}function eatEndCondition1(j,_e,et){for(let tt=_e;tt=et||j[nt].codePoint!==AsciiCodePoint.CLOSE_ANGLE){tt+=1;continue}const it=calcStringFromNodePoints(j,rt,nt,!0).toLowerCase();if(includedTags$1.includes(it))return nt}return null}function eatStartCondition2(j,_e,et){const tt=_e;return tt+2=et)return et;const rt=j[_e].codePoint;return isWhitespaceCharacter(rt)||rt===AsciiCodePoint.CLOSE_ANGLE?_e+1:rt===AsciiCodePoint.SLASH&&_e+1=et)return null;let nt=_e;if(rt){for(;nt=et)return null;j[nt].codePoint===AsciiCodePoint.SLASH&&(nt+=1)}else nt=eatOptionalWhitespaces(j,_e,et);if(nt>=et||j[nt].codePoint!==AsciiCodePoint.CLOSE_ANGLE)return null;for(nt+=1;nt=4)return null;const{nodePoints:ot,startIndex:it,endIndex:st,firstNonWhitespaceIndex:lt}=nt;if(lt>=st||ot[lt].codePoint!==AsciiCodePoint.OPEN_ANGLE)return null;const ut=lt+1,ct=tt(ot,ut,st);if(ct==null)return null;const{condition:dt}=ct;let ft=!1;dt!==6&&dt!==7&&rt(ot,ct.nextIndex,st,dt)!=null&&(ft=!0);const pt=st;return{token:{nodeType:HtmlType,position:{start:calcStartPoint(ot,it),end:calcEndPoint(ot,pt-1)},condition:dt,lines:[nt]},nextIndex:pt,saturated:ft}}function _e(nt,ot){const it=j(nt);if(it==null||it.token.condition===7)return null;const{token:st,nextIndex:lt}=it;return{token:st,nextIndex:lt,remainingSibling:ot}}function et(nt,ot){const{nodePoints:it,endIndex:st,firstNonWhitespaceIndex:lt}=nt,ut=rt(it,lt,st,ot.condition);return ut===-1?{status:"notMatched"}:(ot.lines.push(nt),ut!=null?{status:"closing",nextIndex:st}:{status:"opening",nextIndex:st})}function tt(nt,ot,it){let st=null;if(ot>=it)return null;if(st=eatStartCondition2(nt,ot,it),st!=null)return{nextIndex:st,condition:2};if(st=eatStartCondition3(nt,ot,it),st!=null)return{nextIndex:st,condition:3};if(st=eatStartCondition4(nt,ot,it),st!=null)return{nextIndex:st,condition:4};if(st=eatStartCondition5(nt,ot,it),st!=null)return{nextIndex:st,condition:5};if(nt[ot].codePoint!==AsciiCodePoint.SLASH){const pt=ot,gt=eatHTMLTagName(nt,pt,it);if(gt==null)return null;const vt={startIndex:pt,endIndex:gt},_t=calcStringFromNodePoints(nt,vt.startIndex,vt.endIndex).toLowerCase();return st=eatStartCondition1(nt,vt.endIndex,it,_t),st!=null?{nextIndex:st,condition:1}:(st=eatStartCondition6(nt,vt.endIndex,it,_t),st!=null?{nextIndex:st,condition:6}:(st=eatStartCondition7(nt,vt.endIndex,it,_t,!0),st!=null?{nextIndex:st,condition:7}:null))}const lt=ot+1,ut=eatHTMLTagName(nt,lt,it);if(ut==null)return null;const ct={startIndex:lt,endIndex:ut},ft=calcStringFromNodePoints(nt,ct.startIndex,ct.endIndex).toLowerCase();return st=eatStartCondition6(nt,ct.endIndex,it,ft),st!=null?{nextIndex:st,condition:6}:(st=eatStartCondition7(nt,ct.endIndex,it,ft,!1),st!=null?{nextIndex:st,condition:7}:null)}function rt(nt,ot,it,st){switch(st){case 1:return eatEndCondition1(nt,ot,it)==null?null:it;case 2:return eatEndCondition2(nt,ot,it)==null?null:it;case 3:return eatEndCondition3(nt,ot,it)==null?null:it;case 4:return eatEndCondition4(nt,ot,it)==null?null:it;case 5:return eatEndCondition5(nt,ot,it)==null?null:it;case 6:case 7:return eatOptionalWhitespaces(nt,ot,it)>=it?-1:null}}},parse$e=function(j){return{parse:_e=>_e.map(et=>{const tt=mergeContentLinesFaithfully(et.lines);return j.shouldReservePosition?{type:"html",position:et.position,value:calcStringFromNodePoints(tt)}:{type:"html",value:calcStringFromNodePoints(tt)}})}},uniqueName$c="@yozora/tokenizer-html-block";class HtmlBlockTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$c,priority:et.priority??TokenizerPriority.ATOMIC});zr(this,"match",match$f);zr(this,"parse",parse$e)}}function eatHtmlInlineCDataDelimiter(j,_e,et){let tt=_e;if(tt+11>=et||j[tt+1].codePoint!==AsciiCodePoint.EXCLAMATION_MARK||j[tt+2].codePoint!==AsciiCodePoint.OPEN_BRACKET||j[tt+3].codePoint!==AsciiCodePoint.UPPERCASE_C||j[tt+4].codePoint!==AsciiCodePoint.UPPERCASE_D||j[tt+5].codePoint!==AsciiCodePoint.UPPERCASE_A||j[tt+6].codePoint!==AsciiCodePoint.UPPERCASE_T||j[tt+7].codePoint!==AsciiCodePoint.UPPERCASE_A||j[tt+8].codePoint!==AsciiCodePoint.OPEN_BRACKET)return null;const rt=tt+9;for(tt=rt;tt=et)return null;if(j[tt+1].codePoint===AsciiCodePoint.CLOSE_BRACKET&&j[tt+2].codePoint===AsciiCodePoint.CLOSE_ANGLE)return{type:"full",startIndex:_e,endIndex:tt+3,htmlType:"cdata"}}return null}function eatHtmlInlineClosingDelimiter(j,_e,et){let tt=_e;if(tt+3>=et||j[tt+1].codePoint!==AsciiCodePoint.SLASH)return null;const rt=tt+2,nt=eatHTMLTagName(j,rt,et);return nt==null||(tt=eatOptionalWhitespaces(j,nt,et),tt>=et||j[tt].codePoint!==AsciiCodePoint.CLOSE_ANGLE)?null:{type:"full",startIndex:_e,endIndex:tt+1,htmlType:"closing",tagName:{startIndex:rt,endIndex:nt}}}function eatHtmlInlineCommentDelimiter(j,_e,et){let tt=_e;if(tt+6>=et||j[tt+1].codePoint!==AsciiCodePoint.EXCLAMATION_MARK||j[tt+2].codePoint!==AsciiCodePoint.MINUS_SIGN||j[tt+3].codePoint!==AsciiCodePoint.MINUS_SIGN||j[tt+4].codePoint===AsciiCodePoint.CLOSE_ANGLE||j[tt+4].codePoint===AsciiCodePoint.MINUS_SIGN&&j[tt+5].codePoint===AsciiCodePoint.CLOSE_ANGLE)return null;const rt=tt+4;for(tt=rt;tt2||tt+2>=et||j[tt+2].codePoint!==AsciiCodePoint.CLOSE_ANGLE?null:{type:"full",startIndex:_e,endIndex:tt+3,htmlType:"comment"}}return null}function eatHtmlInlineDeclarationDelimiter(j,_e,et){let tt=_e;if(tt+4>=et||j[tt+1].codePoint!==AsciiCodePoint.EXCLAMATION_MARK)return null;const rt=tt+2;for(tt=rt;tt=et||!isWhitespaceCharacter(j[tt].codePoint))return null;const nt=tt,ot=tt+1;for(tt=ot;tt=et||j[tt+1].codePoint!==AsciiCodePoint.QUESTION_MARK)return null;const rt=tt+2;for(tt=rt;tt=et)return null;if(j[tt+1].codePoint===AsciiCodePoint.CLOSE_ANGLE)return{type:"full",startIndex:_e,endIndex:tt+2,htmlType:"instruction"}}return null}function eatHtmlInlineTokenOpenDelimiter(j,_e,et){let tt=_e;if(tt+2>=et)return null;const rt=tt+1,nt=eatHTMLTagName(j,rt,et);if(nt==null)return null;const ot=[];for(tt=nt;tt=et)return null;let it=!1;return j[tt].codePoint===AsciiCodePoint.SLASH&&(tt+=1,it=!0),tt>=et||j[tt].codePoint!==AsciiCodePoint.CLOSE_ANGLE?null:{type:"full",startIndex:_e,endIndex:tt+1,htmlType:"open",tagName:{startIndex:rt,endIndex:nt},attributes:ot,selfClosed:it}}const match$e=function(j){return{findDelimiter:()=>genFindDelimiter(_e),processSingleDelimiter:et};function _e(tt,rt){const nt=j.getNodePoints();for(let ot=tt;ot=rt));++ot)switch(nt[ot].codePoint){case AsciiCodePoint.BACKSLASH:ot+=1;break;case AsciiCodePoint.OPEN_ANGLE:{const st=tryToEatDelimiter(nt,ot,rt);if(st!=null)return st;break}}return null}function et(tt){return[{...tt,nodeType:HtmlType}]}};function tryToEatDelimiter(j,_e,et){let tt=null;return tt=eatHtmlInlineTokenOpenDelimiter(j,_e,et),tt!=null||(tt=eatHtmlInlineClosingDelimiter(j,_e,et),tt!=null)||(tt=eatHtmlInlineCommentDelimiter(j,_e,et),tt!=null)||(tt=eatHtmlInlineInstructionDelimiter(j,_e,et),tt!=null)||(tt=eatHtmlInlineDeclarationDelimiter(j,_e,et),tt!=null)||(tt=eatHtmlInlineCDataDelimiter(j,_e,et)),tt}const parse$d=function(j){return{parse:_e=>_e.map(et=>{const{startIndex:tt,endIndex:rt}=et,nt=j.getNodePoints(),ot=calcStringFromNodePoints(nt,tt,rt);return j.shouldReservePosition?{type:HtmlType,position:j.calcPosition(et),value:ot}:{type:HtmlType,value:ot}})}},uniqueName$b="@yozora/tokenizer-html-inline";class HtmlInlineTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$b,priority:et.priority??TokenizerPriority.ATOMIC});zr(this,"match",match$e);zr(this,"parse",parse$d)}}const checkBalancedBracketsStatus=(j,_e,et,tt)=>{let rt=j,nt=0;const ot=()=>{switch(tt[rt].codePoint){case AsciiCodePoint.BACKSLASH:rt+=1;break;case AsciiCodePoint.OPEN_BRACKET:nt+=1;break;case AsciiCodePoint.CLOSE_BRACKET:nt-=1;break}};for(const it of et)if(!(it.startIndex_e)break;for(;rt0?1:0};function eatLinkDestination(j,_e,et){if(_e>=et)return-1;let tt=_e;switch(j[tt].codePoint){case AsciiCodePoint.OPEN_ANGLE:{for(tt+=1;tt=et)return-1;let tt=_e;const rt=j[tt].codePoint;switch(rt){case AsciiCodePoint.DOUBLE_QUOTE:case AsciiCodePoint.SINGLE_QUOTE:{for(tt+=1;ttnt.line+1)return-1;break}}}break}case AsciiCodePoint.OPEN_PARENTHESIS:{let nt=1;for(tt+=1;ttot.line+1)return-1;break}case AsciiCodePoint.OPEN_PARENTHESIS:nt+=1;break;case AsciiCodePoint.CLOSE_PARENTHESIS:if(nt-=1,nt===0)return tt+1;break}}break}case AsciiCodePoint.CLOSE_PARENTHESIS:return tt;default:return-1}return-1}const match$d=function(j){return{findDelimiter:()=>genFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt};function _e(rt,nt){const ot=j.getNodePoints(),it=j.getBlockEndIndex();for(let st=rt;st=nt||ot[st+1].codePoint!==AsciiCodePoint.OPEN_PARENTHESIS)break;const ut=eatOptionalWhitespaces(ot,st+2,it),ct=eatLinkDestination(ot,ut,it);if(ct<0)break;const dt=eatOptionalWhitespaces(ot,ct,it),ft=eatLinkTitle(ot,dt,it);if(ft<0)break;const pt=st,gt=eatOptionalWhitespaces(ot,ft,it)+1;if(gt>it||ot[gt-1].codePoint!==AsciiCodePoint.CLOSE_PARENTHESIS)break;return{type:"closer",startIndex:pt,endIndex:gt,destinationContent:ut_e.map(et=>{const tt=j.getNodePoints();let rt="";if(et.destinationContent!=null){let{startIndex:st,endIndex:lt}=et.destinationContent;tt[st].codePoint===AsciiCodePoint.OPEN_ANGLE&&(st+=1,lt-=1);const ut=calcEscapedStringFromNodePoints(tt,st,lt,!0);rt=j.formatUrl(ut)}let nt;if(et.titleContent!=null){const{startIndex:st,endIndex:lt}=et.titleContent;nt=calcEscapedStringFromNodePoints(tt,st+1,lt-1)}const ot=j.parseInlineTokens(et.children);return j.shouldReservePosition?{type:LinkType,position:j.calcPosition(et),url:rt,title:nt,children:ot}:{type:LinkType,url:rt,title:nt,children:ot}})}},uniqueName$a="@yozora/tokenizer-link";class LinkTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$a,priority:et.priority??TokenizerPriority.LINKS});zr(this,"match",match$d);zr(this,"parse",parse$c)}}function calcImageAlt(j){return j.map(_e=>_e.value!=null?_e.value:_e.alt!=null?_e.alt:_e.children!=null?calcImageAlt(_e.children):"").join("")}const match$c=function(j){return{findDelimiter:()=>genFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt};function _e(rt,nt){const ot=j.getNodePoints(),it=j.getBlockEndIndex();for(let st=rt;st=nt||ot[st+1].codePoint!==AsciiCodePoint.OPEN_PARENTHESIS)break;const ut=eatOptionalWhitespaces(ot,st+2,it),ct=eatLinkDestination(ot,ut,it);if(ct<0)break;const dt=eatOptionalWhitespaces(ot,ct,it),ft=eatLinkTitle(ot,dt,it);if(ft<0)break;const pt=st,gt=eatOptionalWhitespaces(ot,ft,it)+1;if(gt>it||ot[gt-1].codePoint!==AsciiCodePoint.CLOSE_PARENTHESIS)break;return{type:"closer",startIndex:pt,endIndex:gt,destinationContent:ut_e.map(et=>{const tt=j.getNodePoints();let rt="";if(et.destinationContent!=null){let{startIndex:lt,endIndex:ut}=et.destinationContent;tt[lt].codePoint===AsciiCodePoint.OPEN_ANGLE&&(lt+=1,ut-=1);const ct=calcEscapedStringFromNodePoints(tt,lt,ut,!0);rt=j.formatUrl(ct)}const nt=j.parseInlineTokens(et.children),ot=calcImageAlt(nt);let it;if(et.titleContent!=null){const{startIndex:lt,endIndex:ut}=et.titleContent;it=calcEscapedStringFromNodePoints(tt,lt+1,ut-1)}return j.shouldReservePosition?{type:ImageType$1,position:j.calcPosition(et),url:rt,alt:ot,title:it}:{type:ImageType$1,url:rt,alt:ot,title:it}})}},uniqueName$9="@yozora/tokenizer-image";class ImageTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$9,priority:et.priority??TokenizerPriority.LINKS});zr(this,"match",match$c);zr(this,"parse",parse$b)}}const match$b=function(j){return{findDelimiter:()=>genFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt};function _e(rt,nt){const ot=j.getNodePoints();for(let it=rt;it=nt||ot[it+1].codePoint!==AsciiCodePoint.OPEN_BRACKET)break;return{type:"opener",startIndex:it,endIndex:it+2,brackets:[]}}case AsciiCodePoint.CLOSE_BRACKET:{const lt={type:"closer",startIndex:it,endIndex:it+1,brackets:[]};if(it+1>=nt||ot[it+1].codePoint!==AsciiCodePoint.OPEN_BRACKET)return lt;const ut=eatLinkLabel(ot,it+1,nt);return ut.nextIndex<0?lt:ut.labelAndIdentifier==null?{type:"closer",startIndex:it,endIndex:ut.nextIndex,brackets:[{startIndex:it+1,endIndex:ut.nextIndex}]}:{type:"closer",startIndex:it,endIndex:ut.nextIndex,brackets:[{startIndex:it+1,endIndex:ut.nextIndex,label:ut.labelAndIdentifier.label,identifier:ut.labelAndIdentifier.identifier}]}}}return null}function et(rt,nt,ot){const it=j.getNodePoints();switch(checkBalancedBracketsStatus(rt.endIndex,nt.startIndex,ot,it)){case-1:return{paired:!1,opener:!1,closer:!0};case 0:return{paired:!0};case 1:return{paired:!1,opener:!0,closer:!1}}}function tt(rt,nt,ot){const it=j.getNodePoints(),st=nt.brackets[0];if(st!=null&&st.identifier!=null)return j.hasDefinition(st.identifier)?{tokens:[{nodeType:ImageReferenceType,startIndex:rt.startIndex,endIndex:st.endIndex,referenceType:"full",label:st.label,identifier:st.identifier,children:j.resolveInternalTokens(ot,rt.endIndex,nt.startIndex)}]}:{tokens:ot};const{nextIndex:lt,labelAndIdentifier:ut}=eatLinkLabel(it,rt.endIndex-1,nt.startIndex+1);return lt===nt.startIndex+1&&ut!=null&&j.hasDefinition(ut.identifier)?{tokens:[{nodeType:ImageReferenceType,startIndex:rt.startIndex,endIndex:nt.endIndex,referenceType:st==null?"shortcut":"collapsed",label:ut.label,identifier:ut.identifier,children:j.resolveInternalTokens(ot,rt.endIndex,nt.startIndex)}]}:{tokens:ot}}},parse$a=function(j){return{parse:_e=>_e.map(et=>{const{identifier:tt,label:rt,referenceType:nt}=et,ot=j.parseInlineTokens(et.children),it=calcImageAlt(ot);return j.shouldReservePosition?{type:ImageReferenceType,position:j.calcPosition(et),identifier:tt,label:rt,referenceType:nt,alt:it}:{type:ImageReferenceType,identifier:tt,label:rt,referenceType:nt,alt:it}})}},uniqueName$8="@yozora/tokenizer-image-reference";class ImageReferenceTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$8,priority:et.priority??TokenizerPriority.LINKS});zr(this,"match",match$b);zr(this,"parse",parse$a)}}const match$a=function(){return{isContainingBlock:!1,eatOpener:j,eatContinuationText:_e};function j(et){if(et.countOfPrecedeSpaces<4)return null;const{nodePoints:tt,startIndex:rt,firstNonWhitespaceIndex:nt,endIndex:ot}=et;let it=rt+4;if(tt[rt].codePoint===AsciiCodePoint.SPACE&&tt[rt+3].codePoint===VirtualCodePoint.SPACE){let ut=rt+1;for(;ut_e.map(et=>{const{lines:tt}=et;let rt=0,nt=tt.length;for(;rtut+1&&ot.push({type:"opener",startIndex:ut+1,endIndex:dt}),ut=dt-1}break}case AsciiCodePoint.BACKTICK:{const dt=ut,ft=eatOptionalCharacters(tt,ut+1,nt,ct);ot.push({type:"both",startIndex:dt,endIndex:ft}),ut=ft-1;break}}}let it=0,st=-1,lt=null;for(;it=ut))continue;st=ct;let dt=null,ft=null;for(;it=ut&>.type!=="closer")break}if(it+1>=ot.length)return;dt=ot[it];const pt=dt.endIndex-dt.startIndex;for(let gt=it+1;gt_e.map(et=>{const tt=j.getNodePoints();let rt=et.startIndex+et.thickness,nt=et.endIndex-et.thickness,ot=!0;for(let lt=rt;ltgenFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt,processSingleDelimiter:rt};function _e(nt,ot){const it=j.getNodePoints();for(let st=nt;st=ot||it[st+1].codePoint!==AsciiCodePoint.OPEN_BRACKET)break;const ut=eatLinkLabel(it,st+1,ot);if(ut.nextIndex===-1)return{type:"opener",startIndex:st+1,endIndex:st+2,brackets:[]};if(ut.labelAndIdentifier==null){st=ut.nextIndex-1;break}const ct=[{startIndex:st+1,endIndex:ut.nextIndex,label:ut.labelAndIdentifier.label,identifier:ut.labelAndIdentifier.identifier}],dt={type:"closer",startIndex:st,endIndex:ut.nextIndex,brackets:ct};for(st=ut.nextIndex;st=it.length)break;if(lt+1_e.map(et=>{const{identifier:tt,label:rt,referenceType:nt}=et,ot=j.parseInlineTokens(et.children);return j.shouldReservePosition?{type:LinkReferenceType,position:j.calcPosition(et),identifier:tt,label:rt,referenceType:nt,children:ot}:{type:LinkReferenceType,identifier:tt,label:rt,referenceType:nt,children:ot}})}},uniqueName$5="@yozora/tokenizer-link-reference";class LinkReferenceTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$5,priority:et.priority??TokenizerPriority.LINKS});zr(this,"match",match$8);zr(this,"parse",parse$7)}}const match$7=function(){const{emptyItemCouldNotInterruptedTypes:j,enableTaskListItem:_e}=this;return{isContainingBlock:!0,eatOpener:et,eatAndInterruptPreviousSibling:tt,eatContinuationText:rt};function et(nt){if(nt.countOfPrecedeSpaces>=4)return null;const{nodePoints:ot,startIndex:it,endIndex:st,firstNonWhitespaceIndex:lt}=nt;if(lt>=st)return null;let ut=!1,ct=null,dt,ft,pt=lt,gt=ot[pt].codePoint;if(pt+1lt&&pt-lt<=9&&(gt===AsciiCodePoint.DOT||gt===AsciiCodePoint.CLOSE_PARENTHESIS)&&(pt+=1,ut=!0,ct=gt)}if(ut||(gt===AsciiCodePoint.PLUS_SIGN||gt===AsciiCodePoint.MINUS_SIGN||gt===AsciiCodePoint.ASTERISK)&&(pt+=1,ct=gt),ct==null)return null;let vt=0,bt=pt;for(bt4&&(bt-=vt-1,vt=1),vt===0&&bt=st){if(ot.countOfTopBlankLine>=0&&(ot.countOfTopBlankLine+=1,ot.countOfTopBlankLine>1))return{status:"notMatched"}}else ot.countOfTopBlankLine=-1;return{status:"opening",nextIndex:Math.min(it+ot.indent,st-1)}}};function eatTaskStatus(j,_e,et){let tt=_e;for(;tt=et||j[tt].codePoint!==AsciiCodePoint.OPEN_BRACKET||j[tt+2].codePoint!==AsciiCodePoint.CLOSE_BRACKET||!isWhitespaceCharacter(j[tt+3].codePoint))return{status:null,nextIndex:_e};let rt;switch(j[tt+1].codePoint){case AsciiCodePoint.SPACE:rt=TaskStatus.TODO;break;case AsciiCodePoint.MINUS_SIGN:rt=TaskStatus.DOING;break;case AsciiCodePoint.LOWERCASE_X:case AsciiCodePoint.UPPERCASE_X:rt=TaskStatus.DONE;break;default:return{status:null,nextIndex:_e}}return{status:rt,nextIndex:tt+4}}const parse$6=function(j){return{parse:_e=>{const et=[];let tt=[];for(let nt=0;nt<_e.length;++nt){const ot=_e[nt];if(tt.length<=0||tt[0].ordered!==ot.ordered||tt[0].orderType!==ot.orderType||tt[0].marker!==ot.marker){const it=resolveList(tt,j);it&&et.push(it),tt=[ot];continue}tt.push(ot)}const rt=resolveList(tt,j);return rt&&et.push(rt),et}}},resolveList=(j,_e)=>{if(j.length<=0)return null;let et=j.some(nt=>{if(nt.children==null||nt.children.length<=1)return!1;let ot=nt.children[0].position;for(let it=1;it1){let nt=j[0];for(let ot=1;ot{const ot=_e.parseBlockTokens(nt.children),it=et?ot:ot.map(lt=>lt.type===ParagraphType$1?lt.children:lt).flat();return _e.shouldReservePosition?{type:ListItemType,position:nt.position,status:nt.status,children:it}:{type:ListItemType,status:nt.status,children:it}});return _e.shouldReservePosition?{type:ListType,position:{start:{...j[0].position.start},end:{...j[j.length-1].position.end}},ordered:j[0].ordered,orderType:j[0].orderType,start:j[0].order,marker:j[0].marker,spread:et,children:tt}:{type:ListType,ordered:j[0].ordered,orderType:j[0].orderType,start:j[0].order,marker:j[0].marker,spread:et,children:tt}},uniqueName$4="@yozora/tokenizer-list";class ListTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$4,priority:et.priority??TokenizerPriority.CONTAINING_BLOCK});zr(this,"enableTaskListItem");zr(this,"emptyItemCouldNotInterruptedTypes");zr(this,"match",match$7);zr(this,"parse",parse$6);this.enableTaskListItem=et.enableTaskListItem??!1,this.emptyItemCouldNotInterruptedTypes=et.emptyItemCouldNotInterruptedTypes??[ParagraphType$1]}}const match$6=function(){return{isContainingBlock:!1,eatOpener:j,eatContinuationText:_e,eatLazyContinuationText:et};function j(tt){const{endIndex:rt,firstNonWhitespaceIndex:nt}=tt;if(nt>=rt)return null;const ot=[tt],it=calcPositionFromPhrasingContentLines(ot);return{token:{nodeType:ParagraphType$1,position:it,lines:ot},nextIndex:rt}}function _e(tt,rt){const{endIndex:nt,firstNonWhitespaceIndex:ot}=tt;return ot>=nt?{status:"notMatched"}:(rt.lines.push(tt),{status:"opening",nextIndex:nt})}function et(tt,rt){return _e(tt,rt)}},parse$5=function(j){return{parse:_e=>{const et=[];for(const tt of _e){const rt=mergeAndStripContentLines(tt.lines),nt=j.processInlines(rt);if(nt.length<=0)continue;const ot=j.shouldReservePosition?{type:ParagraphType$1,position:tt.position,children:nt}:{type:ParagraphType$1,children:nt};et.push(ot)}return et}}},uniqueName$3="@yozora/tokenizer-paragraph";class ParagraphTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$3,priority:et.priority??TokenizerPriority.FALLBACK});zr(this,"match",match$6);zr(this,"parse",parse$5)}extractPhrasingContentLines(et){return et.lines}buildBlockToken(et){const tt=trimBlankLines(et);if(tt.length<=0)return null;const rt=calcPositionFromPhrasingContentLines(tt);return{nodeType:ParagraphType$1,lines:tt,position:rt}}}const match$5=function(j){return{isContainingBlock:!1,eatOpener:_e,eatAndInterruptPreviousSibling:et};function _e(){return null}function et(tt,rt){const{nodePoints:nt,endIndex:ot,firstNonWhitespaceIndex:it,countOfPrecedeSpaces:st}=tt;if(st>=4||it>=ot)return null;let lt=null,ut=!1;for(let pt=it;pt_e.map(et=>{let tt=1;switch(et.marker){case AsciiCodePoint.EQUALS_SIGN:tt=1;break;case AsciiCodePoint.MINUS_SIGN:tt=2;break}const rt=mergeAndStripContentLines(et.lines),nt=j.processInlines(rt);return j.shouldReservePosition?{type:HeadingType,position:et.position,depth:tt,children:nt}:{type:HeadingType,depth:tt,children:nt}})}},uniqueName$2="@yozora/tokenizer-setext-heading";class SetextHeadingTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$2,priority:et.priority??TokenizerPriority.ATOMIC});zr(this,"match",match$5);zr(this,"parse",parse$4)}}const match$4=function(){return{findDelimiter:()=>genFindDelimiter((j,_e)=>({type:"full",startIndex:j,endIndex:_e})),processSingleDelimiter:j=>[{nodeType:TextType$1,startIndex:j.startIndex,endIndex:j.endIndex}]}},parse$3=function(j){return{parse:_e=>_e.map(et=>{const tt=j.getNodePoints();let rt=calcEscapedStringFromNodePoints(tt,et.startIndex,et.endIndex);return rt=stripSpaces(rt),j.shouldReservePosition?{type:TextType$1,position:j.calcPosition(et),value:rt}:{type:TextType$1,value:rt}})}},_stripRegex=/[^\S\n]*\n[^\S\n]*/g,stripSpaces=j=>j.replace(_stripRegex,` -`),uniqueName$1="@yozora/tokenizer-text";class TextTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$1,priority:et.priority??TokenizerPriority.FALLBACK});zr(this,"match",match$4);zr(this,"parse",parse$3)}findAndHandleDelimiter(et,tt){return{nodeType:TextType$1,startIndex:et,endIndex:tt}}}const match$3=function(){return{isContainingBlock:!1,eatOpener:j,eatAndInterruptPreviousSibling:_e};function j(et){if(et.countOfPrecedeSpaces>=4)return null;const{nodePoints:tt,startIndex:rt,endIndex:nt,firstNonWhitespaceIndex:ot}=et;if(ot+2>=nt)return null;let it,st=0,lt=!0,ut=!1;for(let dt=ot;dt_e.map(et=>j.shouldReservePosition?{type:ThematicBreakType,position:et.position}:{type:ThematicBreakType})}},uniqueName="@yozora/tokenizer-thematic-break";class ThematicBreakTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName,priority:et.priority??TokenizerPriority.ATOMIC});zr(this,"match",match$3);zr(this,"parse",parse$2)}}class GfmParser extends DefaultParser{constructor(_e={}){super({..._e,blockFallbackTokenizer:_e.blockFallbackTokenizer??new ParagraphTokenizer,inlineFallbackTokenizer:_e.inlineFallbackTokenizer??new TextTokenizer}),this.useTokenizer(new IndentedCodeTokenizer).useTokenizer(new HtmlBlockTokenizer).useTokenizer(new SetextHeadingTokenizer).useTokenizer(new ThematicBreakTokenizer).useTokenizer(new BlockquoteTokenizer).useTokenizer(new ListTokenizer({enableTaskListItem:!1})).useTokenizer(new HeadingTokenizer).useTokenizer(new FencedCodeTokenizer).useTokenizer(new DefinitionTokenizer).useTokenizer(new HtmlInlineTokenizer).useTokenizer(new InlineCodeTokenizer).useTokenizer(new AutolinkTokenizer).useTokenizer(new BreakTokenizer).useTokenizer(new ImageTokenizer).useTokenizer(new ImageReferenceTokenizer).useTokenizer(new LinkTokenizer).useTokenizer(new LinkReferenceTokenizer).useTokenizer(new EmphasisTokenizer)}}const parser=new GfmParser({defaultParseOptions:{shouldReservePosition:!1}});class BlockquoteRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("blockquote",{className:cls$b,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$b=mergeStyles$1(astClasses.blockquote,{boxSizing:"border-box",padding:"0.625em 1em",borderLeft:"0.25em solid var(--colorBorderBlockquote)",margin:"0px 0px 1.25em 0px",background:"var(--colorBgBlockquote)",boxShadow:"0 1px 2px 0 hsla(0deg, 0%, 0%, 0.1)","> :last-child":{marginBottom:0}});class BreakRenderer extends React.Component{shouldComponentUpdate(){return!1}render(){return jsxRuntimeExports.jsx("br",{className:cls$a})}}const cls$a=mergeStyles$1(astClasses.break,{boxSizing:"border-box"});var prism={exports:{}};(function(j){var _e=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/** +`;break}case AsciiCodePoint.AMPERSAND:{const st=eatEntityReference(j,nt+1,et);st==null?rt+="&":(rt+=st.value,nt=st.nextIndex-1);break}default:rt+=String.fromCodePoint(it)}}return rt}function calcTrimBoundaryOfCodePoints(j,_e=0,et=j.length){let tt=_e,rt=et-1;for(;tt<=rt;++tt){const nt=j[tt];if(!isWhitespaceCharacter(nt.codePoint))break}for(;tt<=rt;--rt){const nt=j[rt];if(!isWhitespaceCharacter(nt.codePoint))break}return[tt,rt+1]}function createNodeMatcher(j){if(j==null)return()=>!0;if(j instanceof Function)return j;if(j.length===0)return()=>!1;if(j.length===1){const _e=j[0];return et=>et.type===_e}if(j.length===2){const[_e,et]=j;return tt=>tt.type===_e||tt.type===et}return _e=>{for(const et of j)if(_e.type===et)return!0;return!1}}function traverseAst(j,_e,et){const tt=createNodeMatcher(_e),rt=nt=>{const{children:ot}=nt;for(let it=0;it{const tt={};traverseAst(j,_e,ot=>{const it=ot;tt[it.identifier]===void 0&&(tt[it.identifier]=it)});const rt=[];for(const ot of et)tt[ot.identifier]===void 0&&(tt[ot.identifier]=ot,rt.push(ot));return{root:rt.length>0?{...j,children:j.children.concat(rt)}:j,definitionMap:tt}},astClasses=mergeStyleSets({root:{"--colorBgBlockquote":"none","--colorBgTableHead":"hsl(0deg, 0%, 94%)","--colorBgTableEvenRow":"hsl(0deg, 0%, 96%)","--colorBgTableOddRow":"hsl(0deg, 0%, 100%)","--colorBorderBlockquote":"hsl(210deg, 13%, 85%)","--colorBorderHeading":"hsl(0deg, 0%, 80%)","--colorBorderImage":"hsl(277deg, 19%, 47%)","--colorBorderTable":"hsl(220deg, 7%, 90%)","--colorBgCode":"#f5f7f9","--colorDelete":"hsl(210deg, 8%, 65%)","--colorHeading":"hsl(0deg, 0%, 25%)","--colorImageTitle":"hsl(0deg, 0%, 50%)","--colorInlineCode":"hsl(348deg, 60%, 47%)","--colorLink":"hsl(206deg, 53%, 47%)","--colorLinkActive":"hsl(206deg, 53%, 52%)","--colorLinkHover":"hsl(206deg, 53%, 52%)","--colorLinkVisited":"hsl(206deg, 53%, 47%)","--fontFamilyCode":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif","--fontFamilyHeading":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif"},rootDarken:{"&&":{"--colorBgBlockquote":"none","--colorBgTableHead":"hsl(200deg, 10%, 16%)","--colorBgTableEvenRow":"hsl(200deg, 10%, 16%)","--colorBgTableOddRow":"hsl(0deg, 0%, 9%)","--colorBorderBlockquote":"hsl(207deg, 7%, 45%)","--colorBorderHeading":"hsla(0deg, 0%, 30%, 0.8)","--colorBorderImage":"hsl(290deg, 15%, 49%)","--colorBorderTable":"hsl(0deg, 0%, 50%)","--colorBgCode":"hsl(0deg, 0%, 12%)","--colorDelete":"hsl(220deg, 5%, 68%)","--colorHeading":"hsl(0deg, 0%, 65%)","--colorImageTitle":"hsl(0deg, 0%, 50%)","--colorInlineCode":"hsl(348deg, 70%, 52%)","--colorLink":"hsl(207deg, 53%, 50%)","--colorLinkActive":"hsl(207deg, 53%, 50%)","--colorLinkHover":"hsl(207deg, 53%, 50%)","--colorLinkVisited":"hsl(207deg, 53%, 50%)","--fontFamilyCode":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif","--fontFamilyHeading":"Consolas, 'Source Code Pro', 'Roboto Mono', monospace, sans-serif"}},blockquote:{},break:{},code:{},delete:{},emphasis:{},heading:{},image:{},imageReference:{},inlineCode:{},link:{},linkReference:{},list:{},listItem:{},paragraph:{},strong:{},table:{},text:{},thematicBreak:{}}),NodeRendererContextType=React.createContext(null);NodeRendererContextType.displayName="NodeRendererContextType";const useNodeRendererContext=()=>React.useContext(NodeRendererContextType);function disposeAll(j){const _e=[];for(const et of j)try{et.dispose()}catch(tt){_e.push(tt)}if(_e.length===1)throw _e[0];if(_e.length>1)throw new AggregateError(_e,"Encountered errors while disposing")}class BatchDisposable{constructor(){Fr(this,"_disposed");Fr(this,"_disposables");this._disposed=!1,this._disposables=[]}get disposed(){return this._disposed}dispose(){if(!this._disposed){this._disposed=!0;try{disposeAll(this._disposables)}finally{this._disposables.length=0}}}registerDisposable(_e){_e.disposed||(this._disposed?_e.dispose():this._disposables.push(_e))}}class Disposable{constructor(_e){Fr(this,"_onDispose");Fr(this,"_disposed");this._onDispose=_e,this._disposed=!1}static fromCallback(_e){return new Disposable(_e)}static fromUnsubscribable(_e){return new Disposable(()=>_e.unsubscribe())}get disposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._onDispose())}}function isDisposable(j){return j===null||typeof j!="object"?!1:typeof Reflect.get(j,"dispose")=="function"&&typeof Reflect.get(j,"disposed")=="boolean"}var ScheduleTransactionStatus;(function(j){j[j.NOT_STARTED=0]="NOT_STARTED",j[j.STARTED=1]="STARTED",j[j.COMPLETED=2]="COMPLETED"})(ScheduleTransactionStatus||(ScheduleTransactionStatus={}));function noop$1(...j){}const noopUnsubscribable={unsubscribe:noop$1};class Schedulable{constructor(_e){Fr(this,"_scheduled");Fr(this,"_run");this._scheduled=!1,this._run=_e}get scheduled(){return this._scheduled}schedule(){this._scheduled||(this._scheduled=!0,this._run())}}class Observable extends BatchDisposable{constructor(et,tt={}){super();Fr(this,"equals");Fr(this,"_value");Fr(this,"_subscribers");this._value=et,this._subscribers=[],this.equals=tt.equals??((rt,nt)=>Object.is(rt,nt))}dispose(){if(!this.disposed){super.dispose();const et=this._subscribers;this._subscribers=[];for(const tt of et)tt.complete()}}getSnapshot(){return this._value}subscribe(et){return this.disposed?(et.complete(),noopUnsubscribable):(this._subscribers.includes(et)||(this._subscribers=[...this._subscribers,et]),{unsubscribe:()=>{this._subscribers.includes(et)&&(this._subscribers=this._subscribers.filter(tt=>tt!==et))}})}next(et,tt){if(this.disposed){console.warn("[Observable] Don't update a disposed observable. value:",et);return}const rt=this._value;this.equals(et,rt)||(this._value=et,this.notify(et,rt,tt))}notify(et,tt,rt){if(rt){rt.step(new Schedulable(()=>this.notifyImmediate(et,tt)));return}this.notifyImmediate(et,tt)}notifyImmediate(et,tt){const rt=this._subscribers;for(const nt of rt)nt.next(et,tt)}}class Ticker extends Observable{constructor(et,tt={}){const rt=new Set,nt=Number(tt.delay||0)||0,ot=Math.max(0,Number(tt.threshold||0)||0);super(et??0,{equals:(it,st)=>it===st});Fr(this,"_observes");Fr(this,"_delay");Fr(this,"_threshold");Fr(this,"_caller");this._observes=rt,this._delay=nt>=0?nt:-1,this._threshold=ot,this._caller=void 0}dispose(){this.disposed||(super.dispose(),this.flush(),this._observes.clear())}tick(et){this.next(this._value+1,et)}observe(et){if(this.disposed){console.warn("[Ticker.observe] the ticker has been disposed.");return}if(!this._observes.has(et)){const tt=et.subscribe({next:()=>{rt.disposed||this.tick()},complete:()=>rt.dispose()}),rt=Disposable.fromUnsubscribable(tt);this._observes.add(et),this.registerDisposable(rt)}}notify(et,tt,rt){if(rt){this.flush(),rt.step(new Schedulable(()=>this.notifyImmediate(et,tt)));return}if(this._delay<0){this.notifyImmediate(et,tt);return}const{_delay:nt,_threshold:ot,_caller:it}=this;let st=Date.now();const lt=()=>this.notifyImmediate(et,tt),ut=setTimeout(()=>{this._caller=void 0,lt()},nt);it!==void 0&&(this._caller=void 0,clearTimeout(it.timer),it.createdAt+ot<=st?it.call():st=it.createdAt),this._caller={timer:ut,createdAt:st,call:lt}}flush(){const et=this._caller;et!==void 0&&(this._caller=void 0,clearTimeout(et.timer),et.call())}}class Computed{constructor(_e){Fr(this,"_observable");Fr(this,"getSnapshot",()=>this._observable.getSnapshot());Fr(this,"getServerSnapshot",()=>this._observable.getSnapshot());Fr(this,"subscribeStateChange",_e=>{const et={next:()=>_e(),complete:()=>{}},tt=this._observable.subscribe(et),rt=Disposable.fromUnsubscribable(tt);return this._observable.registerDisposable(rt),()=>rt.dispose()});this._observable=_e}static fromObservables(_e,et,tt){const rt=new Ticker;for(const it of _e)rt.observe(it);const nt=()=>{const it=_e.map(st=>st.getSnapshot());return et(it)},ot=new Observable(nt(),tt);return ot.registerDisposable(rt),rt.subscribe({next:()=>{ot.disposed||ot.next(nt())},complete:()=>ot.dispose()}),new Computed(ot)}get disposed(){return this._observable.disposed}dispose(){this._observable.disposed||this._observable.dispose()}registerDisposable(_e){this._observable.registerDisposable(_e)}subscribe(_e){return this._observable.subscribe(_e)}}class State extends Observable{constructor(){super(...arguments);Fr(this,"getSnapshot",()=>super.getSnapshot());Fr(this,"getServerSnapshot",()=>super.getSnapshot());Fr(this,"setState",et=>{const tt=typeof et=="function"?et(this.getSnapshot()):et;super.next(tt)});Fr(this,"subscribeStateChange",et=>{const tt={next:()=>et(),complete:()=>{}},rt=super.subscribe(tt),nt=Disposable.fromUnsubscribable(rt);return this.registerDisposable(nt),()=>nt.dispose()})}}function isObservable(j){return j===null||typeof j!="object"?!1:typeof Reflect.get(j,"dispose")=="function"&&typeof Reflect.get(j,"disposed")=="boolean"&&typeof Reflect.get(j,"subscribe")=="function"&&typeof Reflect.get(j,"equals")=="function"&&typeof Reflect.get(j,"getSnapshot")=="function"&&typeof Reflect.get(j,"next")=="function"}class ViewModel extends BatchDisposable{constructor(){super();Fr(this,"_tickerMap");this._tickerMap=new Map}dispose(){this.disposed||(super.dispose(),Reflect.ownKeys(this).forEach(et=>{if(typeof et=="string"&&et.endsWith("$")){const tt=this[et];isDisposable(tt)&&tt.dispose()}}))}ticker(et){const tt=Array.from(new Set(et)).sort(),rt=tt.join("|");let nt=this._tickerMap.get(rt);if(nt===void 0){const ot=new Ticker;nt={keys:tt,ticker:ot},this.registerDisposable(ot),this._tickerMap.set(rt,nt);for(const it of tt){const st=this[it];if(!isObservable(st)){console.warn("[ViewModel.ticker] not an observable, key:",it,"val:",st);continue}ot.observe(st)}}return nt}}class ReactMarkdownViewModel extends ViewModel{constructor(_e){super(),this.preferCodeWrap$=new State(!1);const{definitionMap:et,rendererMap:tt,showCodeLineno:rt,themeScheme:nt}=_e;this.definitionMap$=new State(et),this.rendererMap$=new State(tt),this.showCodeLineno$=new State(rt),this.themeScheme$=new State(nt)}}function isEqual$2(j,_e){if(j===null||_e===null||j===void 0||_e===void 0)return j===_e;if(typeof j!=typeof _e)return!1;if(Object.is(j,_e))return!0;if(typeof j=="object"){if(j.constructor!==_e.constructor)return!1;if(Array.isArray(j)){if(j.length!==_e.length)return!1;for(let tt=0;tt{rt.value=tt,rt.getSnapshot=_e,checkIfSnapshotChanged(rt)&&nt({inst:rt})},[j,tt,_e]),reactExports.useEffect(()=>(checkIfSnapshotChanged(rt)&&nt({inst:rt}),j(()=>{checkIfSnapshotChanged(rt)&&nt({inst:rt})})),[j]),reactExports.useDebugValue(tt),tt}function checkIfSnapshotChanged(j){const _e=j.getSnapshot,et=j.value;try{const tt=_e();return!Object.is(et,tt)}catch{return!0}}function useSyncExternalStore$1(j,_e,et){return _e()}const canUseDOM=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",shim=canUseDOM?useSyncExternalStore$2:useSyncExternalStore$1,builtin=reactExports.useSyncExternalStore,useSyncExternalStore=builtin||shim;function useStateValue(j){const{getSnapshot:_e,getServerSnapshot:et,subscribeStateChange:tt}=j;return useSyncExternalStore(tt,_e,et)}const NodesRenderer=j=>{const{nodes:_e}=j,{viewmodel:et}=useNodeRendererContext(),tt=useStateValue(et.rendererMap$);return!Array.isArray(_e)||_e.length<=0?jsxRuntimeExports.jsx(React.Fragment,{}):jsxRuntimeExports.jsx(NodesRendererInner,{nodes:_e,rendererMap:tt})};class NodesRendererInner extends React.Component{shouldComponentUpdate(_e){const et=this.props;return!lodashExports.isEqual(et.nodes,_e.nodes)||et.rendererMap!==_e.rendererMap}render(){const{nodes:_e,rendererMap:et}=this.props;return jsxRuntimeExports.jsx(React.Fragment,{children:_e.map((tt,rt)=>{const nt=`${tt.type}-${rt}`,ot=et[tt.type]??et._fallback;return jsxRuntimeExports.jsx(ot,{...tt},nt)})})}}var TokenizerType;(function(j){j.BLOCK="block",j.INLINE="inline"})(TokenizerType||(TokenizerType={}));var TokenizerPriority;(function(j){j[j.ATOMIC=10]="ATOMIC",j[j.FENCED_BLOCK=10]="FENCED_BLOCK",j[j.CONTAINING_BLOCK=10]="CONTAINING_BLOCK",j[j.INTERRUPTABLE_BLOCK=2]="INTERRUPTABLE_BLOCK",j[j.IMAGES=4]="IMAGES",j[j.LINKS=3]="LINKS",j[j.CONTAINING_INLINE=2]="CONTAINING_INLINE",j[j.SOFT_INLINE=1]="SOFT_INLINE",j[j.FALLBACK=-1]="FALLBACK"})(TokenizerPriority||(TokenizerPriority={}));class BaseInlineTokenizer{constructor(_e){Fr(this,"type",TokenizerType.INLINE);Fr(this,"name");Fr(this,"priority");this.name=_e.name,this.priority=_e.priority}toString(){return this.name}}function*genFindDelimiter(j){let _e=-1,et=null;for(;;){const[tt,rt]=yield et;_e===rt&&(et==null||et.startIndex>=tt)||(_e=rt,et=j(tt,rt))}}class BaseBlockTokenizer{constructor(_e){Fr(this,"type",TokenizerType.BLOCK);Fr(this,"name");Fr(this,"priority");this.name=_e.name,this.priority=_e.priority}extractPhrasingContentLines(_e){return null}buildBlockToken(_e,et){return null}toString(){return this.name}}function calcStartPoint(j,_e){const{line:et,column:tt,offset:rt}=j[_e];return{line:et,column:tt,offset:rt}}function calcEndPoint(j,_e){const{line:et,column:tt,offset:rt}=j[_e];return{line:et,column:tt+1,offset:rt+1}}function calcPositionFromPhrasingContentLines(j){const _e=j[0],et=j[j.length-1];return{start:calcStartPoint(_e.nodePoints,_e.startIndex),end:calcEndPoint(et.nodePoints,et.endIndex-1)}}function mergeContentLinesFaithfully(j,_e=0,et=j.length){if(_e>=et||_e<0||et>j.length)return[];const tt=[];for(let rt=_e;rt=et||_e<0||et>j.length)return[];for(let st=_e;st+1=0;--it){const st=rt[it];if(!isWhitespaceCharacter(st.codePoint))break}for(let st=ot;st<=it;++st)tt.push(rt[st]);return tt}function encodeLinkDestination(j){let _e=j;for(;;)try{const et=decodeURIComponent(_e);if(et===_e)break;_e=et}catch{break}return encodeURI(_e)}function resolveLabelToIdentifier(j){const _e=j.trim().replace(/\s+/gu," ").toLowerCase();return foldCase(_e)}function resolveLinkLabelAndIdentifier(j,_e,et){const tt=calcStringFromNodePoints(j,_e,et,!0);if(tt.length<=0)return null;const rt=resolveLabelToIdentifier(tt);return{label:tt,identifier:rt}}function eatLinkLabel(j,_e,et){let tt=_e+1;const rt=Math.min(tt+1e3,et);for(;tt_e;--et){const tt=j[et];if(tt.firstNonWhitespaceIndexet?[]:j.slice(_e,et+1)}const prefix$2="Invariant failed";function invariant$1(j,_e){if(!j)throw new Error(prefix$2)}const createBlockContentProcessor=(j,_e)=>{const et={_tokenizer:"root",nodeType:"root",position:{start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}},children:[]},tt=[];tt.push({hook:{isContainingBlock:!0},token:et});let rt=0;const nt=ft=>{for(let pt=rt;pt>=0;--pt){const gt=tt[pt];gt.token.position.end={...ft}}},ot=(ft,pt)=>{if(pt.length<=0)return null;const gt=j.filter(bt=>bt!==ft),mt=createBlockContentProcessor(gt,_e);for(const bt of pt)mt.consume(bt);return mt},it=()=>{const ft=tt.pop();if(ft!=null){if(tt.length>0){const pt=tt[tt.length-1];if(ft.hook.onClose!=null){const gt=ft.hook.onClose(ft.token);if(gt!=null)switch(gt.status){case"closingAndRollback":{const mt=ot(ft.hook,gt.lines);if(mt==null)break;const bt=mt.done();pt.token.children.push(...bt.children);break}case"failedAndRollback":{pt.token.children.pop();const mt=ot(ft.hook,gt.lines);if(mt==null)break;const bt=mt.done();pt.token.children.push(...bt.children);break}}}}return rt>=tt.length&&(rt=tt.length-1),ft}},st=ft=>{for(;tt.length>ft;)it()},lt=(ft,pt,gt)=>{st(rt+1),tt[rt].token.children.push(pt),nt(pt.position.end),rt+=1,tt.push({hook:ft,token:pt}),gt&&it()},ut=(ft,pt,gt)=>{const mt=ot(ft,pt);if(mt==null)return!1;const bt=mt.shallowSnapshot(),_t=bt[0];_t.token.children!=null&>.token.children.push(..._t.token.children),nt(_t.token.position.end);for(let xt=1;xt{const{nodePoints:pt,startIndex:gt,endIndex:mt}=ft;let{firstNonWhitespaceIndex:bt,countOfPrecedeSpaces:_t,startIndex:xt}=ft;const yt=()=>({nodePoints:pt,startIndex:xt,endIndex:mt,firstNonWhitespaceIndex:bt,countOfPrecedeSpaces:_t}),Et=(It,Nt)=>{if(invariant$1(xt<=It),Nt){const Ot=calcEndPoint(pt,It-1);nt(Ot)}if(xt!==It)for(xt=It,_t=0,bt=It;bt{const{token:Ot}=tt[rt],jt=It.eatOpener(Nt,Ot);if(jt==null)return!1;invariant$1(jt.nextIndex>xt,`[consumeNewOpener] The marker of the new data node cannot be empty. + tokenizer(${jt.token._tokenizer})`),Et(jt.nextIndex,!1);const Mt=jt.token;return Mt._tokenizer=It.name,lt(It,Mt,!!jt.saturated),!0},Tt=(It,Nt)=>{if(It.eatAndInterruptPreviousSibling==null)return!1;const{hook:Ot,token:jt}=tt[rt],{token:Mt}=tt[rt-1];if(It.priority<=Ot.priority)return!1;const Rt=It.eatAndInterruptPreviousSibling(Nt,jt,Mt);if(Rt==null)return!1;st(rt),Mt.children.pop(),Rt.remainingSibling!=null&&(Array.isArray(Rt.remainingSibling)?Mt.children.push(...Rt.remainingSibling):Mt.children.push(Rt.remainingSibling)),Et(Rt.nextIndex,!1);const Lt=Rt.token;return Lt._tokenizer=It.name,lt(It,Lt,!!Rt.saturated),!0},kt=()=>{if(rt=1,tt.length<2)return;let{token:It}=tt[rt-1];for(;xtPt!==Ot&&Tt(Pt,jt)))break;const Mt=Ot.eatContinuationText==null?{status:"notMatched"}:Ot.eatContinuationText(jt,Nt.token,It);let Rt=!1,Lt=!1;switch(Mt.status){case"failedAndRollback":{if(It.children.pop(),tt.length=rt,rt-=1,Mt.lines.length>0){const Pt=tt[rt];if(ut(Ot,Mt.lines,Pt)){Lt=!0;break}}Rt=!0;break}case"closingAndRollback":{if(st(rt),Mt.lines.length>0){const Pt=tt[rt];if(ut(Ot,Mt.lines,Pt)){Lt=!0;break}}Rt=!0;break}case"notMatched":{rt-=1,Rt=!0;break}case"closing":{Et(Mt.nextIndex,!0),rt-=1,Rt=!0;break}case"opening":{Et(Mt.nextIndex,!0);break}default:throw new TypeError(`[eatContinuationText] unexpected status (${Mt.status}).`)}if(Rt)break;Lt||(rt+=1,It=Nt.token)}},$t=()=>{if(!(xt>=mt)){if(rt=4)return}else rt=tt.length-1;for(;xt{if(xt>=mt||rt+1>=tt.length)return!1;const{hook:It,token:Nt}=tt[tt.length-1];if(It.eatLazyContinuationText==null)return!1;const{token:Ot}=tt[tt.length-2],jt=yt(),Mt=It.eatLazyContinuationText(jt,Nt,Ot);switch(Mt.status){case"notMatched":return!1;case"opening":return rt=tt.length-1,Et(Mt.nextIndex,!0),rt=tt.length-1,!0;default:throw new TypeError(`[eatLazyContinuationText] unexpected status (${Mt.status}).`)}};if(kt(),$t(),Ct()||st(rt+1),_e!=null&&xt=mt)},done:()=>{for(;tt.length>1;)it();return et},shallowSnapshot:()=>[...tt]}},createSinglePriorityDelimiterProcessor=()=>{let j=0;const _e=[],et=[],tt=[],rt=ct=>{let dt=ct-1;for(;dt>=0&&et[dt].inactive;)dt-=1;et.length=dt+1},nt=(ct,dt)=>{et.push({hook:ct,delimiter:dt,inactive:!1,tokenStackIndex:tt.length})},ot=(ct,dt)=>{if(et.length<=0)return null;let ft=null;for(let pt=et.length-1;pt>=0;--pt){if(ft=et[pt],ft.inactive||ft.hook!==ct)continue;const gt=ft.delimiter,mt=ct.isDelimiterPair(gt,dt,_e);if(mt.paired)return gt;if(!mt.closer)return null}return null},it=(ct,dt)=>{if(et.length<=0)return dt;let ft,pt=dt,gt=[];for(let mt=et.length-1;mt>=0;--mt){const bt=et[mt];if(bt.hook!==ct||bt.inactive)continue;const _t=bt.tokenStackIndex;for(_t0){for(const St of Et)St._tokenizer=ct.name;gt.unshift(...Et)}ft=void 0,bt.inactive=!0}if(!xt.closer){const Et=ct.processSingleDelimiter(pt);if(Et.length>0){for(const St of Et)St._tokenizer=ct.name;gt.push(...Et)}pt=void 0}break}const yt=ct.processDelimiterPair(ft,pt,gt);{for(const Et of yt.tokens)Et._tokenizer==null&&(Et._tokenizer=ct.name);gt=yt.tokens}ft=yt.remainOpenerDelimiter,pt=yt.remainCloserDelimiter,rt(mt),mt=Math.min(mt,et.length),ft!=null&&nt(ct,ft)}if(pt==null||pt.type==="full")break}if(tt.push(...gt),pt==null)return null;if(pt.type==="full"||pt.type==="closer"){const mt=ct.processSingleDelimiter(pt);for(const bt of mt)bt._tokenizer=ct.name,tt.push(bt);return null}return pt};return{process:(ct,dt)=>{for(;j<_e.length;++j){const ft=_e[j];if(ft.startIndex>=dt.endIndex)break;ft.startIndex>=dt.startIndex||tt.push(ft)}switch(dt.type){case"opener":{nt(ct,dt);break}case"both":{const ft=it(ct,dt);ft!=null&&nt(ct,ft);break}case"closer":{it(ct,dt);break}case"full":{const ft=ct.processSingleDelimiter(dt);for(const pt of ft)pt._tokenizer=ct.name,tt.push(pt);break}default:throw new TypeError(`Unexpected delimiter type(${dt.type}) from ${ct.name}.`)}},done:()=>{const ct=[];for(const{delimiter:ft,hook:pt}of et){const gt=pt.processSingleDelimiter(ft);for(const mt of gt)mt._tokenizer=pt.name,ct.push(mt)}if(et.length=0,ct.length>0){const ft=mergeSortedTokenStack(tt,ct);tt.length=0,tt.push(...ft)}return tt.concat(_e.slice(j))},reset:ct=>{_e.length=ct.length;for(let dt=0;dt{if(j.length<=0)return _e;if(_e.length<=0)return j;const et=[];let tt=0,rt=0;for(;tt{const et=(nt,ot,it)=>{let st=[],lt=null;const ut=[nt,ot];for(const dt of it){const ft=dt.findDelimiter(ut);if(ft!=null){if(lt!=null){if(ft.startIndex>lt)continue;ft.startIndex1){let dt=0;for(const ft of st){const pt=ft.delimiter.type;if(pt==="full")return{items:[ft],nextIndex:ft.delimiter.endIndex};(pt==="both"||pt==="closer")&&(dt+=1)}if(dt>1){let ft=-1,pt=-1;for(let mt=0;mt-1?[st[ft]]:st.filter(mt=>mt.delimiter.type!=="closer"),nextIndex:ct}}}return{items:st,nextIndex:ct}},tt=createSinglePriorityDelimiterProcessor();return{process:(nt,ot,it)=>{let st=nt;for(let lt=_e;lt{const tt=[];for(let rt=0;rt{let dt=ot.process(lt,ut,ct);return dt=et(dt,ut,ct),dt}}),st=j[rt].priority;for(;rt{let et;const tt=j.match(_e);return{isDelimiterPair:()=>({paired:!0}),processDelimiterPair:(rt,nt,ot)=>({tokens:ot}),processSingleDelimiter:()=>[],...tt,name:j.name,priority:j.priority,findDelimiter:rt=>et.next(rt).value,reset:()=>{et=tt.findDelimiter(),et.next()}}};function createProcessor(j){const{inlineTokenizers:_e,inlineTokenizerMap:et,blockTokenizers:tt,blockTokenizerMap:rt,blockFallbackTokenizer:nt,inlineFallbackTokenizer:ot,shouldReservePosition:it,presetDefinitions:st,presetFootnoteDefinitions:lt,formatUrl:ut}=j;let ct=!1;const dt=new Set,ft=new Set;let pt=[],gt=-1,mt=-1;const bt=Object.freeze({matchBlockApi:{extractPhrasingLines:$t,rollbackPhrasingLines:Ct,registerDefinitionIdentifier:Lt=>{ct&&dt.add(Lt)},registerFootnoteDefinitionIdentifier:Lt=>{ct&&ft.add(Lt)}},parseBlockApi:{shouldReservePosition:it,formatUrl:ut,processInlines:jt,parseBlockTokens:Ot},matchInlineApi:{hasDefinition:Lt=>dt.has(Lt),hasFootnoteDefinition:Lt=>ft.has(Lt),getNodePoints:()=>pt,getBlockStartIndex:()=>gt,getBlockEndIndex:()=>mt,resolveFallbackTokens:It},parseInlineApi:{shouldReservePosition:it,calcPosition:Lt=>({start:calcStartPoint(pt,Lt.startIndex),end:calcEndPoint(pt,Lt.endIndex-1)}),formatUrl:ut,getNodePoints:()=>pt,hasDefinition:Lt=>dt.has(Lt),hasFootnoteDefinition:Lt=>ft.has(Lt),parseInlineTokens:Rt}}),_t=tt.map(Lt=>({...Lt.match(bt.matchBlockApi),name:Lt.name,priority:Lt.priority})),xt=new Map(Array.from(rt.entries()).map(Lt=>[Lt[0],Lt[1].parse(bt.parseBlockApi)])),yt=nt?{...nt.match(bt.matchBlockApi),name:nt.name,priority:nt.priority}:null,Et=createProcessorHookGroups(_e,bt.matchInlineApi,It),St=new Map(Array.from(et.entries()).map(Lt=>[Lt[0],Lt[1].parse(bt.parseInlineApi)])),Tt=createPhrasingContentProcessor(Et,0);return{process:kt};function kt(Lt){dt.clear(),ft.clear(),ct=!0;const Pt=Nt(Lt);ct=!1;for(const Yt of st)dt.add(Yt.identifier);for(const Yt of lt)ft.add(Yt.identifier);const Gt=Ot(Pt.children);return it?{type:"root",position:Pt.position,children:Gt}:{type:"root",children:Gt}}function $t(Lt){const Pt=rt.get(Lt._tokenizer);return(Pt==null?void 0:Pt.extractPhrasingContentLines(Lt))??null}function Ct(Lt,Pt){if(Pt!=null){const qt=rt.get(Pt._tokenizer);if(qt!==void 0&&qt.buildBlockToken!=null){const Yt=qt.buildBlockToken(Lt,Pt);if(Yt!==null)return Yt._tokenizer=qt.name,[Yt]}}return Nt([Lt]).children}function It(Lt,Pt,Gt){if(ot==null)return Lt;let qt=Pt;const Yt=[];for(const Xt of Lt){if(qtot.priority)break}nt<0||nt>=_e.length?_e.push(tt):_e.splice(nt,0,tt)}_unregisterTokenizer(_e,et,tt){var it,st;const rt=typeof tt=="string"?tt:tt.name;if(!et.delete(rt))return;((it=this.blockFallbackTokenizer)==null?void 0:it.name)===rt&&(this.blockFallbackTokenizer=null),((st=this.inlineFallbackTokenizer)==null?void 0:st.name)===rt&&(this.inlineFallbackTokenizer=null);const ot=_e.findIndex(lt=>lt.name===rt);ot>=0&&_e.splice(ot,1)}}function eatEmailAddress(j,_e,et){let tt=_e;for(;tt=et||j[tt].codePoint!==AsciiCodePoint.AT_SIGN||!isAlphanumeric(j[tt+1].codePoint))return{valid:!1,nextIndex:tt+1};for(tt=eatAddressPart0(j,tt+2,et);tt+1=_e?rt+1:_e}function eatAbsoluteUri(j,_e,et){const tt=eatAutolinkSchema(j,_e,et);let{nextIndex:rt}=tt;if(!tt.valid||rt>=et||j[rt].codePoint!==AsciiCodePoint.COLON)return{valid:!1,nextIndex:rt};for(rt+=1;rt32?{valid:!1,nextIndex:tt+1}:{valid:!0,nextIndex:tt}}const helpers=[{contentType:"uri",eat:eatAbsoluteUri},{contentType:"email",eat:eatEmailAddress}],match$l=function(j){return{findDelimiter:()=>genFindDelimiter(_e),processSingleDelimiter:et};function _e(tt,rt){const nt=j.getNodePoints();for(let ot=tt;ot_e.map(et=>{const tt=j.getNodePoints();let rt=calcStringFromNodePoints(tt,et.startIndex+1,et.endIndex-1);et.contentType==="email"&&(rt="mailto:"+rt);const nt=j.formatUrl(rt),ot=j.parseInlineTokens(et.children);return j.shouldReservePosition?{type:LinkType,position:j.calcPosition(et),url:nt,children:ot}:{type:LinkType,url:nt,children:ot}})}},uniqueName$j="@yozora/tokenizer-autolink";class AutolinkTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$j,priority:et.priority??TokenizerPriority.ATOMIC});Fr(this,"match",match$l);Fr(this,"parse",parse$l)}}const match$k=function(){return{isContainingBlock:!0,eatOpener:j,eatAndInterruptPreviousSibling:_e,eatContinuationText:et};function j(tt){if(tt.countOfPrecedeSpaces>=4)return null;const{nodePoints:rt,startIndex:nt,endIndex:ot,firstNonWhitespaceIndex:it}=tt;if(it>=ot||rt[it].codePoint!==AsciiCodePoint.CLOSE_ANGLE)return null;let st=it+1;return st=4||lt>=st||ot[lt].codePoint!==AsciiCodePoint.CLOSE_ANGLE?nt.nodeType===BlockquoteType?{status:"opening",nextIndex:it}:{status:"notMatched"}:{status:"opening",nextIndex:lt+1_e.map(et=>{const tt=j.parseBlockTokens(et.children);return j.shouldReservePosition?{type:BlockquoteType,position:et.position,children:tt}:{type:BlockquoteType,children:tt}})}},uniqueName$i="@yozora/tokenizer-blockquote";class BlockquoteTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$i,priority:et.priority??TokenizerPriority.CONTAINING_BLOCK});Fr(this,"match",match$k);Fr(this,"parse",parse$k)}}const uniqueName$h="@yozora/tokenizer-break";var BreakTokenMarkerType;(function(j){j.BACKSLASH="backslash",j.MORE_THAN_TWO_SPACES="more-than-two-spaces"})(BreakTokenMarkerType||(BreakTokenMarkerType={}));const match$j=function(j){return{findDelimiter:()=>genFindDelimiter(_e),processSingleDelimiter:et};function _e(tt,rt){const nt=j.getNodePoints();for(let ot=tt+1;ot=tt&&nt[ut].codePoint===AsciiCodePoint.BACKSLASH;ut-=1);ot-ut&1||(st=ot-1,lt=BreakTokenMarkerType.BACKSLASH);break}case AsciiCodePoint.SPACE:{let ut=ot-2;for(;ut>=tt&&nt[ut].codePoint===AsciiCodePoint.SPACE;ut-=1);ot-ut>2&&(st=ut+1,lt=BreakTokenMarkerType.MORE_THAN_TWO_SPACES);break}}if(!(st==null||lt==null))return{type:"full",markerType:lt,startIndex:st,endIndex:ot}}return null}function et(tt){return[{nodeType:BreakType,startIndex:tt.startIndex,endIndex:tt.endIndex}]}},parse$j=function(j){return{parse:_e=>_e.map(et=>j.shouldReservePosition?{type:BreakType,position:j.calcPosition(et)}:{type:BreakType})}};class BreakTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$h,priority:et.priority??TokenizerPriority.SOFT_INLINE});Fr(this,"match",match$j);Fr(this,"parse",parse$j)}}function eatAndCollectLinkDestination(j,_e,et,tt){let rt=_e;tt==null&&(tt={saturated:!1,nodePoints:[],hasOpenAngleBracket:!1,openParensCount:0});const nt=eatOptionalWhitespaces(j,rt,et);if(nt>=et)return{nextIndex:-1,state:tt};if(tt.nodePoints.length<=0){rt=nt;const ot=j[rt];ot.codePoint===AsciiCodePoint.OPEN_ANGLE&&(rt+=1,tt.hasOpenAngleBracket=!0,tt.nodePoints.push(ot))}if(tt.hasOpenAngleBracket){for(;rt=et)return{nextIndex:-1,state:tt};if(tt.nodePoints.length<=0){rt=nt;const ot=j[rt];if(ot.codePoint!==AsciiCodePoint.OPEN_BRACKET)return{nextIndex:-1,state:tt};rt+=1,tt.nodePoints.push(ot)}for(;rt=et)return{nextIndex:-1,state:tt};if(tt.nodePoints.length<=0){rt=nt;const ot=j[rt];switch(ot.codePoint){case AsciiCodePoint.DOUBLE_QUOTE:case AsciiCodePoint.SINGLE_QUOTE:case AsciiCodePoint.OPEN_PARENTHESIS:tt.wrapSymbol=ot.codePoint,tt.nodePoints.push(ot),rt+=1;break;default:return{nextIndex:-1,state:tt}}}if(tt.wrapSymbol==null)return{nextIndex:-1,state:tt};switch(tt.wrapSymbol){case AsciiCodePoint.DOUBLE_QUOTE:case AsciiCodePoint.SINGLE_QUOTE:{for(;rt=et||j[rt+1].codePoint===VirtualCodePoint.LINE_END){tt.nodePoints.push(ot),tt.saturated=!0;break}return{nextIndex:-1,state:tt};default:tt.nodePoints.push(ot)}}break}}return{nextIndex:et,state:tt}}const match$i=function(j){return{isContainingBlock:!1,eatOpener:_e,eatContinuationText:et,onClose:tt};function _e(rt){if(rt.countOfPrecedeSpaces>=4)return null;const{nodePoints:nt,startIndex:ot,endIndex:it,firstNonWhitespaceIndex:st}=rt;if(st>=it)return null;let lt=st;const{nextIndex:ut,state:ct}=eatAndCollectLinkLabel(nt,lt,it,null);if(ut<0)return null;const dt=nt[ot].line,ft=()=>({nodeType:DefinitionType,position:{start:calcStartPoint(nt,ot),end:calcEndPoint(nt,it-1)},label:ct,destination:null,title:null,lineNoOfLabel:dt,lineNoOfDestination:-1,lineNoOfTitle:-1,lines:[rt]});if(!ct.saturated)return{token:ft(),nextIndex:it};if(ut<0||ut+1>=it||nt[ut].codePoint!==AsciiCodePoint.COLON)return null;if(lt=eatOptionalWhitespaces(nt,ut+1,it),lt>=it)return{token:ft(),nextIndex:it};const{nextIndex:pt,state:gt}=eatAndCollectLinkDestination(nt,lt,it,null);if(pt<0||!gt.saturated&&pt!==it)return null;if(lt=eatOptionalWhitespaces(nt,pt,it),lt>=it){const xt=ft();return xt.destination=gt,xt.lineNoOfDestination=dt,{token:xt,nextIndex:it}}if(lt===pt)return null;const{nextIndex:mt,state:bt}=eatAndCollectLinkTitle(nt,lt,it,null);if(mt>=0&&(lt=mt),lt=lt||ot[mt].codePoint!==AsciiCodePoint.COLON)return{status:"failedAndRollback",lines:nt.lines};ct=mt+1}if(nt.destination==null){if(ct=eatOptionalWhitespaces(ot,ct,lt),ct>=lt)return{status:"failedAndRollback",lines:nt.lines};const{nextIndex:mt,state:bt}=eatAndCollectLinkDestination(ot,ct,lt,null);if(mt<0||!bt.saturated)return{status:"failedAndRollback",lines:nt.lines};if(ct=eatOptionalWhitespaces(ot,mt,lt),ct>=lt)return nt.destination=bt,nt.lines.push(rt),{status:"opening",nextIndex:lt};nt.lineNoOfDestination=ut,nt.lineNoOfTitle=ut}nt.lineNoOfTitle<0&&(nt.lineNoOfTitle=ut);const{nextIndex:dt,state:ft}=eatAndCollectLinkTitle(ot,ct,lt,nt.title);if(nt.title=ft,dt<0||ft.nodePoints.length<=0||ft.saturated&&eatOptionalWhitespaces(ot,dt,lt)_e.map(et=>{const tt=et._label,rt=et._identifier,nt=et.destination.nodePoints,ot=nt[0].codePoint===AsciiCodePoint.OPEN_ANGLE?calcEscapedStringFromNodePoints(nt,1,nt.length-1,!0):calcEscapedStringFromNodePoints(nt,0,nt.length,!0),it=j.formatUrl(ot),st=et.title==null?void 0:calcEscapedStringFromNodePoints(et.title.nodePoints,1,et.title.nodePoints.length-1);return j.shouldReservePosition?{type:DefinitionType,position:et.position,identifier:rt,label:tt,url:it,title:st}:{type:DefinitionType,identifier:rt,label:tt,url:it,title:st}})}},uniqueName$g="@yozora/tokenizer-definition";class DefinitionTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$g,priority:et.priority??TokenizerPriority.ATOMIC});Fr(this,"match",match$i);Fr(this,"parse",parse$i)}}const match$h=function(j){return{findDelimiter:()=>genFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt};function _e(rt,nt){const ot=j.getNodePoints(),it=j.getBlockStartIndex(),st=j.getBlockEndIndex(),lt=(ct,dt)=>{if(dt===st)return!1;if(dt===nt)return!0;const ft=ot[dt];if(isUnicodeWhitespaceCharacter(ft.codePoint))return!1;if(!isPunctuationCharacter(ft.codePoint)||ct<=rt)return!0;const pt=ot[ct-1];return isUnicodeWhitespaceCharacter(pt.codePoint)||isPunctuationCharacter(pt.codePoint)},ut=(ct,dt)=>{if(ct===it)return!1;if(ct===rt)return!0;const ft=ot[ct-1];if(isUnicodeWhitespaceCharacter(ft.codePoint))return!1;if(!isPunctuationCharacter(ft.codePoint)||dt>=nt)return!0;const pt=ot[dt];return isUnicodeWhitespaceCharacter(pt.codePoint)||isPunctuationCharacter(pt.codePoint)};for(let ct=rt;ctrt&&!isPunctuationCharacter(ot[ft-1].codePoint)&&(bt=!1);const yt=ot[pt];isPunctuationCharacter(yt.codePoint)||(_t=!1)}if(!bt&&!_t)break;const xt=pt-ft;return{type:bt?_t?"both":"opener":"closer",startIndex:ft,endIndex:pt,thickness:xt,originalThickness:xt}}}}return null}function et(rt,nt){const ot=j.getNodePoints();return ot[rt.startIndex].codePoint!==ot[nt.startIndex].codePoint||(rt.type==="both"||nt.type==="both")&&(rt.originalThickness+nt.originalThickness)%3===0&&rt.originalThickness%3!==0?{paired:!1,opener:!0,closer:!0}:{paired:!0}}function tt(rt,nt,ot){let it=1;rt.thickness>1&&nt.thickness>1&&(it=2),ot=j.resolveInternalTokens(ot,rt.endIndex,nt.startIndex);const st={nodeType:it===1?EmphasisType:StrongType,startIndex:rt.endIndex-it,endIndex:nt.startIndex+it,thickness:it,children:ot},lt=rt.thickness>it?{type:rt.type,startIndex:rt.startIndex,endIndex:rt.endIndex-it,thickness:rt.thickness-it,originalThickness:rt.originalThickness}:void 0,ut=nt.thickness>it?{type:nt.type,startIndex:nt.startIndex+it,endIndex:nt.endIndex,thickness:nt.thickness-it,originalThickness:nt.originalThickness}:void 0;return{tokens:[st],remainOpenerDelimiter:lt,remainCloserDelimiter:ut}}},parse$h=function(j){return{parse:_e=>_e.map(et=>{const tt=j.parseInlineTokens(et.children);return j.shouldReservePosition?{type:et.nodeType,position:j.calcPosition(et),children:tt}:{type:et.nodeType,children:tt}})}},uniqueName$f="@yozora/tokenizer-emphasis";class EmphasisTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$f,priority:et.priority??TokenizerPriority.CONTAINING_INLINE});Fr(this,"match",match$h);Fr(this,"parse",parse$h)}}function match$g(j){const{nodeType:_e,markers:et,markersRequired:tt,checkInfoString:rt}=this;return{isContainingBlock:!1,eatOpener:nt,eatAndInterruptPreviousSibling:ot,eatContinuationText:it};function nt(st){if(st.countOfPrecedeSpaces>=4)return null;const{endIndex:lt,firstNonWhitespaceIndex:ut}=st;if(ut+tt-1>=lt)return null;const{nodePoints:ct,startIndex:dt}=st,ft=ct[ut].codePoint;if(et.indexOf(ft)<0)return null;const pt=eatOptionalCharacters(ct,ut+1,lt,ft),gt=pt-ut;if(gt=lt.markerCount){for(;mt=dt)return{status:"closing",nextIndex:dt}}}const gt=Math.min(ct+lt.indent,ft,dt-1);return lt.lines.push({nodePoints:ut,startIndex:gt,endIndex:dt,firstNonWhitespaceIndex:ft,countOfPrecedeSpaces:pt}),{status:"opening",nextIndex:dt}}}class FencedBlockTokenizer extends BaseBlockTokenizer{constructor(et){super({name:et.name,priority:et.priority??TokenizerPriority.FENCED_BLOCK});Fr(this,"nodeType");Fr(this,"markers",[]);Fr(this,"markersRequired");Fr(this,"checkInfoString");Fr(this,"match",match$g);this.nodeType=et.nodeType,this.markers=et.markers,this.markersRequired=et.markersRequired,this.checkInfoString=et.checkInfoString}}const match$f=function(j){return{...match$g.call(this,j),isContainingBlock:!1}},parse$g=function(j){return{parse:_e=>_e.map(et=>{const tt=et.infoString;let rt=0;const nt=[];for(;rt0?ot:null,meta:it.length>0?it:null,value:lt}:{type:CodeType,lang:ot.length>0?ot:null,meta:it.length>0?it:null,value:lt}})}},uniqueName$e="@yozora/tokenizer-fenced-code";class FencedCodeTokenizer extends FencedBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$e,priority:et.priority??TokenizerPriority.FENCED_BLOCK,nodeType:CodeType,markers:[AsciiCodePoint.BACKTICK,AsciiCodePoint.TILDE],markersRequired:3,checkInfoString:(tt,rt)=>{if(rt===AsciiCodePoint.BACKTICK){for(const nt of tt)if(nt.codePoint===AsciiCodePoint.BACKTICK)return!1}return!0}});Fr(this,"match",match$f);Fr(this,"parse",parse$g)}}const match$e=function(){return{isContainingBlock:!1,eatOpener:j,eatAndInterruptPreviousSibling:_e};function j(et){if(et.countOfPrecedeSpaces>=4)return null;const{nodePoints:tt,startIndex:rt,endIndex:nt,firstNonWhitespaceIndex:ot}=et;if(ot>=nt||tt[ot].codePoint!==AsciiCodePoint.NUMBER_SIGN)return null;const it=eatOptionalCharacters(tt,ot+1,nt,AsciiCodePoint.NUMBER_SIGN),st=it-ot;if(st>6||it+1_e.map(et=>{const{nodePoints:tt,firstNonWhitespaceIndex:rt,endIndex:nt}=et.line;let[ot,it]=calcTrimBoundaryOfCodePoints(tt,rt+et.depth,nt),st=0;for(let ft=it-1;ft>=ot&&tt[ft].codePoint===AsciiCodePoint.NUMBER_SIGN;--ft)st+=1;if(st>0){let ft=0,pt=it-1-st;for(;pt>=ot;--pt){const gt=tt[pt].codePoint;if(!isWhitespaceCharacter(gt))break;ft+=1}(ft>0||pt=et)return null;const rt=tt;let nt=j[tt].codePoint;if(!isAsciiLetter(nt)&&nt!==AsciiCodePoint.UNDERSCORE&&nt!==AsciiCodePoint.COLON)return null;for(tt=rt+1;ttlt&&(it.value={startIndex:lt,endIndex:ut});break}}if(it.value!=null)return{attribute:it,nextIndex:tt}}return{attribute:it,nextIndex:ot}}function eatHTMLTagName(j,_e,et){if(_e>=et||!isAsciiLetter(j[_e].codePoint))return null;let tt=_e;for(;tt=et)return et;const rt=j[_e].codePoint;return isWhitespaceCharacter(rt)||rt===AsciiCodePoint.CLOSE_ANGLE?_e+1:null}function eatEndCondition1(j,_e,et){for(let tt=_e;tt=et||j[nt].codePoint!==AsciiCodePoint.CLOSE_ANGLE){tt+=1;continue}const it=calcStringFromNodePoints(j,rt,nt,!0).toLowerCase();if(includedTags$1.includes(it))return nt}return null}function eatStartCondition2(j,_e,et){const tt=_e;return tt+2=et)return et;const rt=j[_e].codePoint;return isWhitespaceCharacter(rt)||rt===AsciiCodePoint.CLOSE_ANGLE?_e+1:rt===AsciiCodePoint.SLASH&&_e+1=et)return null;let nt=_e;if(rt){for(;nt=et)return null;j[nt].codePoint===AsciiCodePoint.SLASH&&(nt+=1)}else nt=eatOptionalWhitespaces(j,_e,et);if(nt>=et||j[nt].codePoint!==AsciiCodePoint.CLOSE_ANGLE)return null;for(nt+=1;nt=4)return null;const{nodePoints:ot,startIndex:it,endIndex:st,firstNonWhitespaceIndex:lt}=nt;if(lt>=st||ot[lt].codePoint!==AsciiCodePoint.OPEN_ANGLE)return null;const ut=lt+1,ct=tt(ot,ut,st);if(ct==null)return null;const{condition:dt}=ct;let ft=!1;dt!==6&&dt!==7&&rt(ot,ct.nextIndex,st,dt)!=null&&(ft=!0);const pt=st;return{token:{nodeType:HtmlType,position:{start:calcStartPoint(ot,it),end:calcEndPoint(ot,pt-1)},condition:dt,lines:[nt]},nextIndex:pt,saturated:ft}}function _e(nt,ot){const it=j(nt);if(it==null||it.token.condition===7)return null;const{token:st,nextIndex:lt}=it;return{token:st,nextIndex:lt,remainingSibling:ot}}function et(nt,ot){const{nodePoints:it,endIndex:st,firstNonWhitespaceIndex:lt}=nt,ut=rt(it,lt,st,ot.condition);return ut===-1?{status:"notMatched"}:(ot.lines.push(nt),ut!=null?{status:"closing",nextIndex:st}:{status:"opening",nextIndex:st})}function tt(nt,ot,it){let st=null;if(ot>=it)return null;if(st=eatStartCondition2(nt,ot,it),st!=null)return{nextIndex:st,condition:2};if(st=eatStartCondition3(nt,ot,it),st!=null)return{nextIndex:st,condition:3};if(st=eatStartCondition4(nt,ot,it),st!=null)return{nextIndex:st,condition:4};if(st=eatStartCondition5(nt,ot,it),st!=null)return{nextIndex:st,condition:5};if(nt[ot].codePoint!==AsciiCodePoint.SLASH){const pt=ot,gt=eatHTMLTagName(nt,pt,it);if(gt==null)return null;const mt={startIndex:pt,endIndex:gt},_t=calcStringFromNodePoints(nt,mt.startIndex,mt.endIndex).toLowerCase();return st=eatStartCondition1(nt,mt.endIndex,it,_t),st!=null?{nextIndex:st,condition:1}:(st=eatStartCondition6(nt,mt.endIndex,it,_t),st!=null?{nextIndex:st,condition:6}:(st=eatStartCondition7(nt,mt.endIndex,it,_t,!0),st!=null?{nextIndex:st,condition:7}:null))}const lt=ot+1,ut=eatHTMLTagName(nt,lt,it);if(ut==null)return null;const ct={startIndex:lt,endIndex:ut},ft=calcStringFromNodePoints(nt,ct.startIndex,ct.endIndex).toLowerCase();return st=eatStartCondition6(nt,ct.endIndex,it,ft),st!=null?{nextIndex:st,condition:6}:(st=eatStartCondition7(nt,ct.endIndex,it,ft,!1),st!=null?{nextIndex:st,condition:7}:null)}function rt(nt,ot,it,st){switch(st){case 1:return eatEndCondition1(nt,ot,it)==null?null:it;case 2:return eatEndCondition2(nt,ot,it)==null?null:it;case 3:return eatEndCondition3(nt,ot,it)==null?null:it;case 4:return eatEndCondition4(nt,ot,it)==null?null:it;case 5:return eatEndCondition5(nt,ot,it)==null?null:it;case 6:case 7:return eatOptionalWhitespaces(nt,ot,it)>=it?-1:null}}},parse$e=function(j){return{parse:_e=>_e.map(et=>{const tt=mergeContentLinesFaithfully(et.lines);return j.shouldReservePosition?{type:"html",position:et.position,value:calcStringFromNodePoints(tt)}:{type:"html",value:calcStringFromNodePoints(tt)}})}},uniqueName$c="@yozora/tokenizer-html-block";class HtmlBlockTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$c,priority:et.priority??TokenizerPriority.ATOMIC});Fr(this,"match",match$d);Fr(this,"parse",parse$e)}}function eatHtmlInlineCDataDelimiter(j,_e,et){let tt=_e;if(tt+11>=et||j[tt+1].codePoint!==AsciiCodePoint.EXCLAMATION_MARK||j[tt+2].codePoint!==AsciiCodePoint.OPEN_BRACKET||j[tt+3].codePoint!==AsciiCodePoint.UPPERCASE_C||j[tt+4].codePoint!==AsciiCodePoint.UPPERCASE_D||j[tt+5].codePoint!==AsciiCodePoint.UPPERCASE_A||j[tt+6].codePoint!==AsciiCodePoint.UPPERCASE_T||j[tt+7].codePoint!==AsciiCodePoint.UPPERCASE_A||j[tt+8].codePoint!==AsciiCodePoint.OPEN_BRACKET)return null;const rt=tt+9;for(tt=rt;tt=et)return null;if(j[tt+1].codePoint===AsciiCodePoint.CLOSE_BRACKET&&j[tt+2].codePoint===AsciiCodePoint.CLOSE_ANGLE)return{type:"full",startIndex:_e,endIndex:tt+3,htmlType:"cdata"}}return null}function eatHtmlInlineClosingDelimiter(j,_e,et){let tt=_e;if(tt+3>=et||j[tt+1].codePoint!==AsciiCodePoint.SLASH)return null;const rt=tt+2,nt=eatHTMLTagName(j,rt,et);return nt==null||(tt=eatOptionalWhitespaces(j,nt,et),tt>=et||j[tt].codePoint!==AsciiCodePoint.CLOSE_ANGLE)?null:{type:"full",startIndex:_e,endIndex:tt+1,htmlType:"closing",tagName:{startIndex:rt,endIndex:nt}}}function eatHtmlInlineCommentDelimiter(j,_e,et){let tt=_e;if(tt+6>=et||j[tt+1].codePoint!==AsciiCodePoint.EXCLAMATION_MARK||j[tt+2].codePoint!==AsciiCodePoint.MINUS_SIGN||j[tt+3].codePoint!==AsciiCodePoint.MINUS_SIGN||j[tt+4].codePoint===AsciiCodePoint.CLOSE_ANGLE||j[tt+4].codePoint===AsciiCodePoint.MINUS_SIGN&&j[tt+5].codePoint===AsciiCodePoint.CLOSE_ANGLE)return null;const rt=tt+4;for(tt=rt;tt2||tt+2>=et||j[tt+2].codePoint!==AsciiCodePoint.CLOSE_ANGLE?null:{type:"full",startIndex:_e,endIndex:tt+3,htmlType:"comment"}}return null}function eatHtmlInlineDeclarationDelimiter(j,_e,et){let tt=_e;if(tt+4>=et||j[tt+1].codePoint!==AsciiCodePoint.EXCLAMATION_MARK)return null;const rt=tt+2;for(tt=rt;tt=et||!isWhitespaceCharacter(j[tt].codePoint))return null;const nt=tt,ot=tt+1;for(tt=ot;tt=et||j[tt+1].codePoint!==AsciiCodePoint.QUESTION_MARK)return null;const rt=tt+2;for(tt=rt;tt=et)return null;if(j[tt+1].codePoint===AsciiCodePoint.CLOSE_ANGLE)return{type:"full",startIndex:_e,endIndex:tt+2,htmlType:"instruction"}}return null}function eatHtmlInlineTokenOpenDelimiter(j,_e,et){let tt=_e;if(tt+2>=et)return null;const rt=tt+1,nt=eatHTMLTagName(j,rt,et);if(nt==null)return null;const ot=[];for(tt=nt;tt=et)return null;let it=!1;return j[tt].codePoint===AsciiCodePoint.SLASH&&(tt+=1,it=!0),tt>=et||j[tt].codePoint!==AsciiCodePoint.CLOSE_ANGLE?null:{type:"full",startIndex:_e,endIndex:tt+1,htmlType:"open",tagName:{startIndex:rt,endIndex:nt},attributes:ot,selfClosed:it}}const match$c=function(j){return{findDelimiter:()=>genFindDelimiter(_e),processSingleDelimiter:et};function _e(tt,rt){const nt=j.getNodePoints();for(let ot=tt;ot=rt));++ot)switch(nt[ot].codePoint){case AsciiCodePoint.BACKSLASH:ot+=1;break;case AsciiCodePoint.OPEN_ANGLE:{const st=tryToEatDelimiter(nt,ot,rt);if(st!=null)return st;break}}return null}function et(tt){return[{...tt,nodeType:HtmlType}]}};function tryToEatDelimiter(j,_e,et){let tt=null;return tt=eatHtmlInlineTokenOpenDelimiter(j,_e,et),tt!=null||(tt=eatHtmlInlineClosingDelimiter(j,_e,et),tt!=null)||(tt=eatHtmlInlineCommentDelimiter(j,_e,et),tt!=null)||(tt=eatHtmlInlineInstructionDelimiter(j,_e,et),tt!=null)||(tt=eatHtmlInlineDeclarationDelimiter(j,_e,et),tt!=null)||(tt=eatHtmlInlineCDataDelimiter(j,_e,et)),tt}const parse$d=function(j){return{parse:_e=>_e.map(et=>{const{startIndex:tt,endIndex:rt}=et,nt=j.getNodePoints(),ot=calcStringFromNodePoints(nt,tt,rt);return j.shouldReservePosition?{type:HtmlType,position:j.calcPosition(et),value:ot}:{type:HtmlType,value:ot}})}},uniqueName$b="@yozora/tokenizer-html-inline";class HtmlInlineTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$b,priority:et.priority??TokenizerPriority.ATOMIC});Fr(this,"match",match$c);Fr(this,"parse",parse$d)}}const checkBalancedBracketsStatus=(j,_e,et,tt)=>{let rt=j,nt=0;const ot=()=>{switch(tt[rt].codePoint){case AsciiCodePoint.BACKSLASH:rt+=1;break;case AsciiCodePoint.OPEN_BRACKET:nt+=1;break;case AsciiCodePoint.CLOSE_BRACKET:nt-=1;break}};for(const it of et)if(!(it.startIndex_e)break;for(;rt0?1:0};function eatLinkDestination(j,_e,et){if(_e>=et)return-1;let tt=_e;switch(j[tt].codePoint){case AsciiCodePoint.OPEN_ANGLE:{for(tt+=1;tt=et)return-1;let tt=_e;const rt=j[tt].codePoint;switch(rt){case AsciiCodePoint.DOUBLE_QUOTE:case AsciiCodePoint.SINGLE_QUOTE:{for(tt+=1;ttnt.line+1)return-1;break}}}break}case AsciiCodePoint.OPEN_PARENTHESIS:{let nt=1;for(tt+=1;ttot.line+1)return-1;break}case AsciiCodePoint.OPEN_PARENTHESIS:nt+=1;break;case AsciiCodePoint.CLOSE_PARENTHESIS:if(nt-=1,nt===0)return tt+1;break}}break}case AsciiCodePoint.CLOSE_PARENTHESIS:return tt;default:return-1}return-1}const match$b=function(j){return{findDelimiter:()=>genFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt};function _e(rt,nt){const ot=j.getNodePoints(),it=j.getBlockEndIndex();for(let st=rt;st=nt||ot[st+1].codePoint!==AsciiCodePoint.OPEN_PARENTHESIS)break;const ut=eatOptionalWhitespaces(ot,st+2,it),ct=eatLinkDestination(ot,ut,it);if(ct<0)break;const dt=eatOptionalWhitespaces(ot,ct,it),ft=eatLinkTitle(ot,dt,it);if(ft<0)break;const pt=st,gt=eatOptionalWhitespaces(ot,ft,it)+1;if(gt>it||ot[gt-1].codePoint!==AsciiCodePoint.CLOSE_PARENTHESIS)break;return{type:"closer",startIndex:pt,endIndex:gt,destinationContent:ut_e.map(et=>{const tt=j.getNodePoints();let rt="";if(et.destinationContent!=null){let{startIndex:st,endIndex:lt}=et.destinationContent;tt[st].codePoint===AsciiCodePoint.OPEN_ANGLE&&(st+=1,lt-=1);const ut=calcEscapedStringFromNodePoints(tt,st,lt,!0);rt=j.formatUrl(ut)}let nt;if(et.titleContent!=null){const{startIndex:st,endIndex:lt}=et.titleContent;nt=calcEscapedStringFromNodePoints(tt,st+1,lt-1)}const ot=j.parseInlineTokens(et.children);return j.shouldReservePosition?{type:LinkType,position:j.calcPosition(et),url:rt,title:nt,children:ot}:{type:LinkType,url:rt,title:nt,children:ot}})}},uniqueName$a="@yozora/tokenizer-link";class LinkTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$a,priority:et.priority??TokenizerPriority.LINKS});Fr(this,"match",match$b);Fr(this,"parse",parse$c)}}function calcImageAlt(j){return j.map(_e=>_e.value!=null?_e.value:_e.alt!=null?_e.alt:_e.children!=null?calcImageAlt(_e.children):"").join("")}const match$a=function(j){return{findDelimiter:()=>genFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt};function _e(rt,nt){const ot=j.getNodePoints(),it=j.getBlockEndIndex();for(let st=rt;st=nt||ot[st+1].codePoint!==AsciiCodePoint.OPEN_PARENTHESIS)break;const ut=eatOptionalWhitespaces(ot,st+2,it),ct=eatLinkDestination(ot,ut,it);if(ct<0)break;const dt=eatOptionalWhitespaces(ot,ct,it),ft=eatLinkTitle(ot,dt,it);if(ft<0)break;const pt=st,gt=eatOptionalWhitespaces(ot,ft,it)+1;if(gt>it||ot[gt-1].codePoint!==AsciiCodePoint.CLOSE_PARENTHESIS)break;return{type:"closer",startIndex:pt,endIndex:gt,destinationContent:ut_e.map(et=>{const tt=j.getNodePoints();let rt="";if(et.destinationContent!=null){let{startIndex:lt,endIndex:ut}=et.destinationContent;tt[lt].codePoint===AsciiCodePoint.OPEN_ANGLE&&(lt+=1,ut-=1);const ct=calcEscapedStringFromNodePoints(tt,lt,ut,!0);rt=j.formatUrl(ct)}const nt=j.parseInlineTokens(et.children),ot=calcImageAlt(nt);let it;if(et.titleContent!=null){const{startIndex:lt,endIndex:ut}=et.titleContent;it=calcEscapedStringFromNodePoints(tt,lt+1,ut-1)}return j.shouldReservePosition?{type:ImageType$1,position:j.calcPosition(et),url:rt,alt:ot,title:it}:{type:ImageType$1,url:rt,alt:ot,title:it}})}},uniqueName$9="@yozora/tokenizer-image";class ImageTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$9,priority:et.priority??TokenizerPriority.LINKS});Fr(this,"match",match$a);Fr(this,"parse",parse$b)}}const match$9=function(j){return{findDelimiter:()=>genFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt};function _e(rt,nt){const ot=j.getNodePoints();for(let it=rt;it=nt||ot[it+1].codePoint!==AsciiCodePoint.OPEN_BRACKET)break;return{type:"opener",startIndex:it,endIndex:it+2,brackets:[]}}case AsciiCodePoint.CLOSE_BRACKET:{const lt={type:"closer",startIndex:it,endIndex:it+1,brackets:[]};if(it+1>=nt||ot[it+1].codePoint!==AsciiCodePoint.OPEN_BRACKET)return lt;const ut=eatLinkLabel(ot,it+1,nt);return ut.nextIndex<0?lt:ut.labelAndIdentifier==null?{type:"closer",startIndex:it,endIndex:ut.nextIndex,brackets:[{startIndex:it+1,endIndex:ut.nextIndex}]}:{type:"closer",startIndex:it,endIndex:ut.nextIndex,brackets:[{startIndex:it+1,endIndex:ut.nextIndex,label:ut.labelAndIdentifier.label,identifier:ut.labelAndIdentifier.identifier}]}}}return null}function et(rt,nt,ot){const it=j.getNodePoints();switch(checkBalancedBracketsStatus(rt.endIndex,nt.startIndex,ot,it)){case-1:return{paired:!1,opener:!1,closer:!0};case 0:return{paired:!0};case 1:return{paired:!1,opener:!0,closer:!1}}}function tt(rt,nt,ot){const it=j.getNodePoints(),st=nt.brackets[0];if(st!=null&&st.identifier!=null)return j.hasDefinition(st.identifier)?{tokens:[{nodeType:ImageReferenceType,startIndex:rt.startIndex,endIndex:st.endIndex,referenceType:"full",label:st.label,identifier:st.identifier,children:j.resolveInternalTokens(ot,rt.endIndex,nt.startIndex)}]}:{tokens:ot};const{nextIndex:lt,labelAndIdentifier:ut}=eatLinkLabel(it,rt.endIndex-1,nt.startIndex+1);return lt===nt.startIndex+1&&ut!=null&&j.hasDefinition(ut.identifier)?{tokens:[{nodeType:ImageReferenceType,startIndex:rt.startIndex,endIndex:nt.endIndex,referenceType:st==null?"shortcut":"collapsed",label:ut.label,identifier:ut.identifier,children:j.resolveInternalTokens(ot,rt.endIndex,nt.startIndex)}]}:{tokens:ot}}},parse$a=function(j){return{parse:_e=>_e.map(et=>{const{identifier:tt,label:rt,referenceType:nt}=et,ot=j.parseInlineTokens(et.children),it=calcImageAlt(ot);return j.shouldReservePosition?{type:ImageReferenceType,position:j.calcPosition(et),identifier:tt,label:rt,referenceType:nt,alt:it}:{type:ImageReferenceType,identifier:tt,label:rt,referenceType:nt,alt:it}})}},uniqueName$8="@yozora/tokenizer-image-reference";class ImageReferenceTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$8,priority:et.priority??TokenizerPriority.LINKS});Fr(this,"match",match$9);Fr(this,"parse",parse$a)}}const match$8=function(){return{isContainingBlock:!1,eatOpener:j,eatContinuationText:_e};function j(et){if(et.countOfPrecedeSpaces<4)return null;const{nodePoints:tt,startIndex:rt,firstNonWhitespaceIndex:nt,endIndex:ot}=et;let it=rt+4;if(tt[rt].codePoint===AsciiCodePoint.SPACE&&tt[rt+3].codePoint===VirtualCodePoint.SPACE){let ut=rt+1;for(;ut_e.map(et=>{const{lines:tt}=et;let rt=0,nt=tt.length;for(;rtut+1&&ot.push({type:"opener",startIndex:ut+1,endIndex:dt}),ut=dt-1}break}case AsciiCodePoint.BACKTICK:{const dt=ut,ft=eatOptionalCharacters(tt,ut+1,nt,ct);ot.push({type:"both",startIndex:dt,endIndex:ft}),ut=ft-1;break}}}let it=0,st=-1,lt=null;for(;it=ut))continue;st=ct;let dt=null,ft=null;for(;it=ut&>.type!=="closer")break}if(it+1>=ot.length)return;dt=ot[it];const pt=dt.endIndex-dt.startIndex;for(let gt=it+1;gt_e.map(et=>{const tt=j.getNodePoints();let rt=et.startIndex+et.thickness,nt=et.endIndex-et.thickness,ot=!0;for(let lt=rt;ltgenFindDelimiter(_e),isDelimiterPair:et,processDelimiterPair:tt,processSingleDelimiter:rt};function _e(nt,ot){const it=j.getNodePoints();for(let st=nt;st=ot||it[st+1].codePoint!==AsciiCodePoint.OPEN_BRACKET)break;const ut=eatLinkLabel(it,st+1,ot);if(ut.nextIndex===-1)return{type:"opener",startIndex:st+1,endIndex:st+2,brackets:[]};if(ut.labelAndIdentifier==null){st=ut.nextIndex-1;break}const ct=[{startIndex:st+1,endIndex:ut.nextIndex,label:ut.labelAndIdentifier.label,identifier:ut.labelAndIdentifier.identifier}],dt={type:"closer",startIndex:st,endIndex:ut.nextIndex,brackets:ct};for(st=ut.nextIndex;st=it.length)break;if(lt+1_e.map(et=>{const{identifier:tt,label:rt,referenceType:nt}=et,ot=j.parseInlineTokens(et.children);return j.shouldReservePosition?{type:LinkReferenceType,position:j.calcPosition(et),identifier:tt,label:rt,referenceType:nt,children:ot}:{type:LinkReferenceType,identifier:tt,label:rt,referenceType:nt,children:ot}})}},uniqueName$5="@yozora/tokenizer-link-reference";class LinkReferenceTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$5,priority:et.priority??TokenizerPriority.LINKS});Fr(this,"match",match$6);Fr(this,"parse",parse$7)}}const match$5=function(){const{emptyItemCouldNotInterruptedTypes:j,enableTaskListItem:_e}=this;return{isContainingBlock:!0,eatOpener:et,eatAndInterruptPreviousSibling:tt,eatContinuationText:rt};function et(nt){if(nt.countOfPrecedeSpaces>=4)return null;const{nodePoints:ot,startIndex:it,endIndex:st,firstNonWhitespaceIndex:lt}=nt;if(lt>=st)return null;let ut=!1,ct=null,dt,ft,pt=lt,gt=ot[pt].codePoint;if(pt+1lt&&pt-lt<=9&&(gt===AsciiCodePoint.DOT||gt===AsciiCodePoint.CLOSE_PARENTHESIS)&&(pt+=1,ut=!0,ct=gt)}if(ut||(gt===AsciiCodePoint.PLUS_SIGN||gt===AsciiCodePoint.MINUS_SIGN||gt===AsciiCodePoint.ASTERISK)&&(pt+=1,ct=gt),ct==null)return null;let mt=0,bt=pt;for(bt4&&(bt-=mt-1,mt=1),mt===0&&bt=st){if(ot.countOfTopBlankLine>=0&&(ot.countOfTopBlankLine+=1,ot.countOfTopBlankLine>1))return{status:"notMatched"}}else ot.countOfTopBlankLine=-1;return{status:"opening",nextIndex:Math.min(it+ot.indent,st-1)}}};function eatTaskStatus(j,_e,et){let tt=_e;for(;tt=et||j[tt].codePoint!==AsciiCodePoint.OPEN_BRACKET||j[tt+2].codePoint!==AsciiCodePoint.CLOSE_BRACKET||!isWhitespaceCharacter(j[tt+3].codePoint))return{status:null,nextIndex:_e};let rt;switch(j[tt+1].codePoint){case AsciiCodePoint.SPACE:rt=TaskStatus.TODO;break;case AsciiCodePoint.MINUS_SIGN:rt=TaskStatus.DOING;break;case AsciiCodePoint.LOWERCASE_X:case AsciiCodePoint.UPPERCASE_X:rt=TaskStatus.DONE;break;default:return{status:null,nextIndex:_e}}return{status:rt,nextIndex:tt+4}}const parse$6=function(j){return{parse:_e=>{const et=[];let tt=[];for(let nt=0;nt<_e.length;++nt){const ot=_e[nt];if(tt.length<=0||tt[0].ordered!==ot.ordered||tt[0].orderType!==ot.orderType||tt[0].marker!==ot.marker){const it=resolveList(tt,j);it&&et.push(it),tt=[ot];continue}tt.push(ot)}const rt=resolveList(tt,j);return rt&&et.push(rt),et}}},resolveList=(j,_e)=>{if(j.length<=0)return null;let et=j.some(nt=>{if(nt.children==null||nt.children.length<=1)return!1;let ot=nt.children[0].position;for(let it=1;it1){let nt=j[0];for(let ot=1;ot{const ot=_e.parseBlockTokens(nt.children),it=et?ot:ot.map(lt=>lt.type===ParagraphType$1?lt.children:lt).flat();return _e.shouldReservePosition?{type:ListItemType,position:nt.position,status:nt.status,children:it}:{type:ListItemType,status:nt.status,children:it}});return _e.shouldReservePosition?{type:ListType,position:{start:{...j[0].position.start},end:{...j[j.length-1].position.end}},ordered:j[0].ordered,orderType:j[0].orderType,start:j[0].order,marker:j[0].marker,spread:et,children:tt}:{type:ListType,ordered:j[0].ordered,orderType:j[0].orderType,start:j[0].order,marker:j[0].marker,spread:et,children:tt}},uniqueName$4="@yozora/tokenizer-list";class ListTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$4,priority:et.priority??TokenizerPriority.CONTAINING_BLOCK});Fr(this,"enableTaskListItem");Fr(this,"emptyItemCouldNotInterruptedTypes");Fr(this,"match",match$5);Fr(this,"parse",parse$6);this.enableTaskListItem=et.enableTaskListItem??!1,this.emptyItemCouldNotInterruptedTypes=et.emptyItemCouldNotInterruptedTypes??[ParagraphType$1]}}const match$4=function(){return{isContainingBlock:!1,eatOpener:j,eatContinuationText:_e,eatLazyContinuationText:et};function j(tt){const{endIndex:rt,firstNonWhitespaceIndex:nt}=tt;if(nt>=rt)return null;const ot=[tt],it=calcPositionFromPhrasingContentLines(ot);return{token:{nodeType:ParagraphType$1,position:it,lines:ot},nextIndex:rt}}function _e(tt,rt){const{endIndex:nt,firstNonWhitespaceIndex:ot}=tt;return ot>=nt?{status:"notMatched"}:(rt.lines.push(tt),{status:"opening",nextIndex:nt})}function et(tt,rt){return _e(tt,rt)}},parse$5=function(j){return{parse:_e=>{const et=[];for(const tt of _e){const rt=mergeAndStripContentLines(tt.lines),nt=j.processInlines(rt);if(nt.length<=0)continue;const ot=j.shouldReservePosition?{type:ParagraphType$1,position:tt.position,children:nt}:{type:ParagraphType$1,children:nt};et.push(ot)}return et}}},uniqueName$3="@yozora/tokenizer-paragraph";class ParagraphTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$3,priority:et.priority??TokenizerPriority.FALLBACK});Fr(this,"match",match$4);Fr(this,"parse",parse$5)}extractPhrasingContentLines(et){return et.lines}buildBlockToken(et){const tt=trimBlankLines(et);if(tt.length<=0)return null;const rt=calcPositionFromPhrasingContentLines(tt);return{nodeType:ParagraphType$1,lines:tt,position:rt}}}const match$3=function(j){return{isContainingBlock:!1,eatOpener:_e,eatAndInterruptPreviousSibling:et};function _e(){return null}function et(tt,rt){const{nodePoints:nt,endIndex:ot,firstNonWhitespaceIndex:it,countOfPrecedeSpaces:st}=tt;if(st>=4||it>=ot)return null;let lt=null,ut=!1;for(let pt=it;pt_e.map(et=>{let tt=1;switch(et.marker){case AsciiCodePoint.EQUALS_SIGN:tt=1;break;case AsciiCodePoint.MINUS_SIGN:tt=2;break}const rt=mergeAndStripContentLines(et.lines),nt=j.processInlines(rt);return j.shouldReservePosition?{type:HeadingType,position:et.position,depth:tt,children:nt}:{type:HeadingType,depth:tt,children:nt}})}},uniqueName$2="@yozora/tokenizer-setext-heading";class SetextHeadingTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName$2,priority:et.priority??TokenizerPriority.ATOMIC});Fr(this,"match",match$3);Fr(this,"parse",parse$4)}}const match$2=function(){return{findDelimiter:()=>genFindDelimiter((j,_e)=>({type:"full",startIndex:j,endIndex:_e})),processSingleDelimiter:j=>[{nodeType:TextType$1,startIndex:j.startIndex,endIndex:j.endIndex}]}},parse$3=function(j){return{parse:_e=>_e.map(et=>{const tt=j.getNodePoints();let rt=calcEscapedStringFromNodePoints(tt,et.startIndex,et.endIndex);return rt=stripSpaces(rt),j.shouldReservePosition?{type:TextType$1,position:j.calcPosition(et),value:rt}:{type:TextType$1,value:rt}})}},_stripRegex=/[^\S\n]*\n[^\S\n]*/g,stripSpaces=j=>j.replace(_stripRegex,` +`),uniqueName$1="@yozora/tokenizer-text";class TextTokenizer extends BaseInlineTokenizer{constructor(et={}){super({name:et.name??uniqueName$1,priority:et.priority??TokenizerPriority.FALLBACK});Fr(this,"match",match$2);Fr(this,"parse",parse$3)}findAndHandleDelimiter(et,tt){return{nodeType:TextType$1,startIndex:et,endIndex:tt}}}const match$1=function(){return{isContainingBlock:!1,eatOpener:j,eatAndInterruptPreviousSibling:_e};function j(et){if(et.countOfPrecedeSpaces>=4)return null;const{nodePoints:tt,startIndex:rt,endIndex:nt,firstNonWhitespaceIndex:ot}=et;if(ot+2>=nt)return null;let it,st=0,lt=!0,ut=!1;for(let dt=ot;dt_e.map(et=>j.shouldReservePosition?{type:ThematicBreakType,position:et.position}:{type:ThematicBreakType})}},uniqueName="@yozora/tokenizer-thematic-break";class ThematicBreakTokenizer extends BaseBlockTokenizer{constructor(et={}){super({name:et.name??uniqueName,priority:et.priority??TokenizerPriority.ATOMIC});Fr(this,"match",match$1);Fr(this,"parse",parse$2)}}class GfmParser extends DefaultParser{constructor(_e={}){super({..._e,blockFallbackTokenizer:_e.blockFallbackTokenizer??new ParagraphTokenizer,inlineFallbackTokenizer:_e.inlineFallbackTokenizer??new TextTokenizer}),this.useTokenizer(new IndentedCodeTokenizer).useTokenizer(new HtmlBlockTokenizer).useTokenizer(new SetextHeadingTokenizer).useTokenizer(new ThematicBreakTokenizer).useTokenizer(new BlockquoteTokenizer).useTokenizer(new ListTokenizer({enableTaskListItem:!1})).useTokenizer(new HeadingTokenizer).useTokenizer(new FencedCodeTokenizer).useTokenizer(new DefinitionTokenizer).useTokenizer(new HtmlInlineTokenizer).useTokenizer(new InlineCodeTokenizer).useTokenizer(new AutolinkTokenizer).useTokenizer(new BreakTokenizer).useTokenizer(new ImageTokenizer).useTokenizer(new ImageReferenceTokenizer).useTokenizer(new LinkTokenizer).useTokenizer(new LinkReferenceTokenizer).useTokenizer(new EmphasisTokenizer)}}const parser=new GfmParser({defaultParseOptions:{shouldReservePosition:!1}});class BlockquoteRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("blockquote",{className:cls$b,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$b=mergeStyles$1(astClasses.blockquote,{boxSizing:"border-box",padding:"0.625em 1em",borderLeft:"0.25em solid var(--colorBorderBlockquote)",margin:"0px 0px 1.25em 0px",background:"var(--colorBgBlockquote)",boxShadow:"0 1px 2px 0 hsla(0deg, 0%, 0%, 0.1)","> :last-child":{marginBottom:0}});class BreakRenderer extends React.Component{shouldComponentUpdate(){return!1}render(){return jsxRuntimeExports.jsx("br",{className:cls$a})}}const cls$a=mergeStyles$1(astClasses.break,{boxSizing:"border-box"});var prism={exports:{}};(function(j){var _e=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/** * Prism: Lightweight, robust, elegant syntax highlighting * * @license MIT * @author Lea Verou * @namespace * @public - */var et=function(tt){var rt=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,nt=0,ot={},it={manual:tt.Prism&&tt.Prism.manual,disableWorkerMessageHandler:tt.Prism&&tt.Prism.disableWorkerMessageHandler,util:{encode:function _t(xt){return xt instanceof st?new st(xt.type,_t(xt.content),xt.alias):Array.isArray(xt)?xt.map(_t):xt.replace(/&/g,"&").replace(/"u")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(Et){var _t=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(Et.stack)||[])[1];if(_t){var xt=document.getElementsByTagName("script");for(var yt in xt)if(xt[yt].src==_t)return xt[yt]}return null}},isActive:function(_t,xt,yt){for(var Et="no-"+xt;_t;){var St=_t.classList;if(St.contains(xt))return!0;if(St.contains(Et))return!1;_t=_t.parentElement}return!!yt}},languages:{plain:ot,plaintext:ot,text:ot,txt:ot,extend:function(_t,xt){var yt=it.util.clone(it.languages[_t]);for(var Et in xt)yt[Et]=xt[Et];return yt},insertBefore:function(_t,xt,yt,Et){Et=Et||it.languages;var St=Et[_t],$t={};for(var At in St)if(St.hasOwnProperty(At)){if(At==xt)for(var wt in yt)yt.hasOwnProperty(wt)&&($t[wt]=yt[wt]);yt.hasOwnProperty(At)||($t[At]=St[At])}var Ct=Et[_t];return Et[_t]=$t,it.languages.DFS(it.languages,function(It,Ot){Ot===Ct&&It!=_t&&(this[It]=$t)}),$t},DFS:function _t(xt,yt,Et,St){St=St||{};var $t=it.util.objId;for(var At in xt)if(xt.hasOwnProperty(At)){yt.call(xt,At,xt[At],Et||At);var wt=xt[At],Ct=it.util.type(wt);Ct==="Object"&&!St[$t(wt)]?(St[$t(wt)]=!0,_t(wt,yt,null,St)):Ct==="Array"&&!St[$t(wt)]&&(St[$t(wt)]=!0,_t(wt,yt,At,St))}}},plugins:{},highlightAll:function(_t,xt){it.highlightAllUnder(document,_t,xt)},highlightAllUnder:function(_t,xt,yt){var Et={callback:yt,container:_t,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};it.hooks.run("before-highlightall",Et),Et.elements=Array.prototype.slice.apply(Et.container.querySelectorAll(Et.selector)),it.hooks.run("before-all-elements-highlight",Et);for(var St=0,$t;$t=Et.elements[St++];)it.highlightElement($t,xt===!0,Et.callback)},highlightElement:function(_t,xt,yt){var Et=it.util.getLanguage(_t),St=it.languages[Et];it.util.setLanguage(_t,Et);var $t=_t.parentElement;$t&&$t.nodeName.toLowerCase()==="pre"&&it.util.setLanguage($t,Et);var At=_t.textContent,wt={element:_t,language:Et,grammar:St,code:At};function Ct(Ot){wt.highlightedCode=Ot,it.hooks.run("before-insert",wt),wt.element.innerHTML=wt.highlightedCode,it.hooks.run("after-highlight",wt),it.hooks.run("complete",wt),yt&&yt.call(wt.element)}if(it.hooks.run("before-sanity-check",wt),$t=wt.element.parentElement,$t&&$t.nodeName.toLowerCase()==="pre"&&!$t.hasAttribute("tabindex")&&$t.setAttribute("tabindex","0"),!wt.code){it.hooks.run("complete",wt),yt&&yt.call(wt.element);return}if(it.hooks.run("before-highlight",wt),!wt.grammar){Ct(it.util.encode(wt.code));return}if(xt&&tt.Worker){var It=new Worker(it.filename);It.onmessage=function(Ot){Ct(Ot.data)},It.postMessage(JSON.stringify({language:wt.language,code:wt.code,immediateClose:!0}))}else Ct(it.highlight(wt.code,wt.grammar,wt.language))},highlight:function(_t,xt,yt){var Et={code:_t,grammar:xt,language:yt};if(it.hooks.run("before-tokenize",Et),!Et.grammar)throw new Error('The language "'+Et.language+'" has no grammar.');return Et.tokens=it.tokenize(Et.code,Et.grammar),it.hooks.run("after-tokenize",Et),st.stringify(it.util.encode(Et.tokens),Et.language)},tokenize:function(_t,xt){var yt=xt.rest;if(yt){for(var Et in yt)xt[Et]=yt[Et];delete xt.rest}var St=new ct;return dt(St,St.head,_t),ut(_t,St,xt,St.head,0),pt(St)},hooks:{all:{},add:function(_t,xt){var yt=it.hooks.all;yt[_t]=yt[_t]||[],yt[_t].push(xt)},run:function(_t,xt){var yt=it.hooks.all[_t];if(!(!yt||!yt.length))for(var Et=0,St;St=yt[Et++];)St(xt)}},Token:st};tt.Prism=it;function st(_t,xt,yt,Et){this.type=_t,this.content=xt,this.alias=yt,this.length=(Et||"").length|0}st.stringify=function _t(xt,yt){if(typeof xt=="string")return xt;if(Array.isArray(xt)){var Et="";return xt.forEach(function(Ct){Et+=_t(Ct,yt)}),Et}var St={type:xt.type,content:_t(xt.content,yt),tag:"span",classes:["token",xt.type],attributes:{},language:yt},$t=xt.alias;$t&&(Array.isArray($t)?Array.prototype.push.apply(St.classes,$t):St.classes.push($t)),it.hooks.run("wrap",St);var At="";for(var wt in St.attributes)At+=" "+wt+'="'+(St.attributes[wt]||"").replace(/"/g,""")+'"';return"<"+St.tag+' class="'+St.classes.join(" ")+'"'+At+">"+St.content+""};function lt(_t,xt,yt,Et){_t.lastIndex=xt;var St=_t.exec(yt);if(St&&Et&&St[1]){var $t=St[1].length;St.index+=$t,St[0]=St[0].slice($t)}return St}function ut(_t,xt,yt,Et,St,$t){for(var At in yt)if(!(!yt.hasOwnProperty(At)||!yt[At])){var wt=yt[At];wt=Array.isArray(wt)?wt:[wt];for(var Ct=0;Ct=$t.reach);Gt+=jt.value.length,jt=jt.next){var Vt=jt.value;if(xt.length>_t.length)return;if(!(Vt instanceof st)){var Yt=1,Xt;if(Pt){if(Xt=lt(Lt,Gt,_t,Nt),!Xt||Xt.index>=_t.length)break;var Tr=Xt.index,rr=Xt.index+Xt[0].length,cr=Gt;for(cr+=jt.value.length;Tr>=cr;)jt=jt.next,cr+=jt.value.length;if(cr-=jt.value.length,Gt=cr,jt.value instanceof st)continue;for(var vr=jt;vr!==xt.tail&&(cr$t.reach&&($t.reach=ir);var hr=jt.prev;Er&&(hr=dt(xt,hr,Er),Gt+=Er.length),ft(xt,hr,Yt);var nr=new st(At,Ot?it.tokenize(gr,Ot):gr,Mt,gr);if(jt=dt(xt,hr,nr),qt&&dt(xt,jt,qt),Yt>1){var mr={cause:At+","+Ct,reach:ir};ut(_t,xt,yt,jt.prev,Gt,mr),$t&&mr.reach>$t.reach&&($t.reach=mr.reach)}}}}}}function ct(){var _t={value:null,prev:null,next:null},xt={value:null,prev:_t,next:null};_t.next=xt,this.head=_t,this.tail=xt,this.length=0}function dt(_t,xt,yt){var Et=xt.next,St={value:yt,prev:xt,next:Et};return xt.next=St,Et.prev=St,_t.length++,St}function ft(_t,xt,yt){for(var Et=xt.next,St=0;St/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},et.languages.markup.tag.inside["attr-value"].inside.entity=et.languages.markup.entity,et.languages.markup.doctype.inside["internal-subset"].inside=et.languages.markup,et.hooks.add("wrap",function(tt){tt.type==="entity"&&(tt.attributes.title=tt.content.replace(/&/,"&"))}),Object.defineProperty(et.languages.markup.tag,"addInlined",{value:function(rt,nt){var ot={};ot["language-"+nt]={pattern:/(^$)/i,lookbehind:!0,inside:et.languages[nt]},ot.cdata=/^$/i;var it={"included-cdata":{pattern://i,inside:ot}};it["language-"+nt]={pattern:/[\s\S]+/,inside:et.languages[nt]};var st={};st[rt]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return rt}),"i"),lookbehind:!0,greedy:!0,inside:it},et.languages.insertBefore("markup","cdata",st)}}),Object.defineProperty(et.languages.markup.tag,"addAttribute",{value:function(tt,rt){et.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+tt+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[rt,"language-"+rt],inside:et.languages[rt]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),et.languages.html=et.languages.markup,et.languages.mathml=et.languages.markup,et.languages.svg=et.languages.markup,et.languages.xml=et.languages.extend("markup",{}),et.languages.ssml=et.languages.xml,et.languages.atom=et.languages.xml,et.languages.rss=et.languages.xml,function(tt){var rt=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;tt.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+rt.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+rt.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+rt.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+rt.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:rt,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},tt.languages.css.atrule.inside.rest=tt.languages.css;var nt=tt.languages.markup;nt&&(nt.tag.addInlined("style","css"),nt.tag.addAttribute("style","css"))}(et),et.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},et.languages.javascript=et.languages.extend("clike",{"class-name":[et.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),et.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,et.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:et.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:et.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:et.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:et.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:et.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),et.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:et.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),et.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),et.languages.markup&&(et.languages.markup.tag.addInlined("script","javascript"),et.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),et.languages.js=et.languages.javascript,function(){if(typeof et>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var tt="Loading…",rt=function(gt,vt){return"✖ Error "+gt+" while fetching file: "+vt},nt="✖ Error: File does not exist or is empty",ot={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},it="data-src-status",st="loading",lt="loaded",ut="failed",ct="pre[data-src]:not(["+it+'="'+lt+'"]):not(['+it+'="'+st+'"])';function dt(gt,vt,bt){var _t=new XMLHttpRequest;_t.open("GET",gt,!0),_t.onreadystatechange=function(){_t.readyState==4&&(_t.status<400&&_t.responseText?vt(_t.responseText):_t.status>=400?bt(rt(_t.status,_t.statusText)):bt(nt))},_t.send(null)}function ft(gt){var vt=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(gt||"");if(vt){var bt=Number(vt[1]),_t=vt[2],xt=vt[3];return _t?xt?[bt,Number(xt)]:[bt,void 0]:[bt,bt]}}et.hooks.add("before-highlightall",function(gt){gt.selector+=", "+ct}),et.hooks.add("before-sanity-check",function(gt){var vt=gt.element;if(vt.matches(ct)){gt.code="",vt.setAttribute(it,st);var bt=vt.appendChild(document.createElement("CODE"));bt.textContent=tt;var _t=vt.getAttribute("data-src"),xt=gt.language;if(xt==="none"){var yt=(/\.(\w+)$/.exec(_t)||[,"none"])[1];xt=ot[yt]||yt}et.util.setLanguage(bt,xt),et.util.setLanguage(vt,xt);var Et=et.plugins.autoloader;Et&&Et.loadLanguages(xt),dt(_t,function(St){vt.setAttribute(it,lt);var $t=ft(vt.getAttribute("data-range"));if($t){var At=St.split(/\r\n?|\n/g),wt=$t[0],Ct=$t[1]==null?At.length:$t[1];wt<0&&(wt+=At.length),wt=Math.max(0,Math.min(wt-1,At.length)),Ct<0&&(Ct+=At.length),Ct=Math.max(0,Math.min(Ct,At.length)),St=At.slice(wt,Ct).join(` -`),vt.hasAttribute("data-start")||vt.setAttribute("data-start",String(wt+1))}bt.textContent=St,et.highlightElement(bt)},function(St){vt.setAttribute(it,ut),bt.textContent=St})}}),et.plugins.fileHighlight={highlight:function(vt){for(var bt=(vt||document).querySelectorAll(ct),_t=0,xt;xt=bt[_t++];)et.highlightElement(xt)}};var pt=!1;et.fileHighlight=function(){pt||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),pt=!0),et.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(prism);var prismExports=prism.exports;const Prism=getDefaultExportFromCjs(prismExports);function sheetForTag(j){if(j.sheet)return j.sheet;for(var _e=0;_e0?charat(characters,--position):0,column--,character===10&&(column=1,line--),character}function next(){return character=position2||token$1(character)>3?"":" "}function escaping(j,_e){for(;--_e&&next()&&!(character<48||character>102||character>57&&character<65||character>70&&character<97););return slice$6(j,caret()+(_e<6&&peek()==32&&next()==32))}function delimiter(j){for(;next();)switch(character){case j:return position;case 34:case 39:j!==34&&j!==39&&delimiter(character);break;case 40:j===41&&delimiter(j);break;case 92:next();break}return position}function commenter(j,_e){for(;next()&&j+character!==57;)if(j+character===84&&peek()===47)break;return"/*"+slice$6(_e,position-1)+"*"+from$6(j===47?j:next())}function identifier(j){for(;!token$1(peek());)next();return slice$6(j,position)}function compile(j){return dealloc(parse$1("",null,null,null,[""],j=alloc(j),0,[0],j))}function parse$1(j,_e,et,tt,rt,nt,ot,it,st){for(var lt=0,ut=0,ct=ot,dt=0,ft=0,pt=0,gt=1,vt=1,bt=1,_t=0,xt="",yt=rt,Et=nt,St=tt,$t=xt;vt;)switch(pt=_t,_t=next()){case 40:if(pt!=108&&charat($t,ct-1)==58){indexof($t+=replace$2(delimit(_t),"&","&\f"),"&\f")!=-1&&(bt=-1);break}case 34:case 39:case 91:$t+=delimit(_t);break;case 9:case 10:case 13:case 32:$t+=whitespace(pt);break;case 92:$t+=escaping(caret()-1,7);continue;case 47:switch(peek()){case 42:case 47:append$1(comment(commenter(next(),caret()),_e,et),st);break;default:$t+="/"}break;case 123*gt:it[lt++]=strlen($t)*bt;case 125*gt:case 59:case 0:switch(_t){case 0:case 125:vt=0;case 59+ut:bt==-1&&($t=replace$2($t,/\f/g,"")),ft>0&&strlen($t)-ct&&append$1(ft>32?declaration($t+";",tt,et,ct-1):declaration(replace$2($t," ","")+";",tt,et,ct-2),st);break;case 59:$t+=";";default:if(append$1(St=ruleset($t,_e,et,lt,ut,rt,it,xt,yt=[],Et=[],ct),nt),_t===123)if(ut===0)parse$1($t,_e,St,St,yt,nt,ct,it,Et);else switch(dt===99&&charat($t,3)===110?100:dt){case 100:case 108:case 109:case 115:parse$1(j,St,St,tt&&append$1(ruleset(j,St,St,0,0,rt,it,xt,rt,yt=[],ct),Et),rt,Et,ct,it,tt?yt:Et);break;default:parse$1($t,St,St,St,[""],Et,0,it,Et)}}lt=ut=ft=0,gt=bt=1,xt=$t="",ct=ot;break;case 58:ct=1+strlen($t),ft=pt;default:if(gt<1){if(_t==123)--gt;else if(_t==125&>++==0&&prev()==125)continue}switch($t+=from$6(_t),_t*gt){case 38:bt=ut>0?1:($t+="\f",-1);break;case 44:it[lt++]=(strlen($t)-1)*bt,bt=1;break;case 64:peek()===45&&($t+=delimit(next())),dt=peek(),ut=ct=strlen(xt=$t+=identifier(caret())),_t++;break;case 45:pt===45&&strlen($t)==2&&(gt=0)}}return nt}function ruleset(j,_e,et,tt,rt,nt,ot,it,st,lt,ut){for(var ct=rt-1,dt=rt===0?nt:[""],ft=sizeof(dt),pt=0,gt=0,vt=0;pt0?dt[bt]+" "+_t:replace$2(_t,/&\f/g,dt[bt])))&&(st[vt++]=xt);return node(j,_e,et,rt===0?RULESET:it,st,lt,ut)}function comment(j,_e,et){return node(j,_e,et,COMMENT,from$6(char()),substr(j,2,-2),0)}function declaration(j,_e,et,tt){return node(j,_e,et,DECLARATION,substr(j,0,tt),substr(j,tt+1,-1),tt)}function serialize(j,_e){for(var et="",tt=sizeof(j),rt=0;rt6)switch(charat(j,_e+1)){case 109:if(charat(j,_e+4)!==45)break;case 102:return replace$2(j,/(.+:)(.+)-([^]+)/,"$1"+WEBKIT+"$2-$3$1"+MOZ+(charat(j,_e+3)==108?"$3":"$2-$3"))+j;case 115:return~indexof(j,"stretch")?prefix$1(replace$2(j,"stretch","fill-available"),_e)+j:j}break;case 4949:if(charat(j,_e+1)!==115)break;case 6444:switch(charat(j,strlen(j)-3-(~indexof(j,"!important")&&10))){case 107:return replace$2(j,":",":"+WEBKIT)+j;case 101:return replace$2(j,/(.+:)([^;!]+)(;|!.+)?/,"$1"+WEBKIT+(charat(j,14)===45?"inline-":"")+"box$3$1"+WEBKIT+"$2$3$1"+MS+"$2box$3")+j}break;case 5936:switch(charat(j,_e+11)){case 114:return WEBKIT+j+MS+replace$2(j,/[svh]\w+-[tblr]{2}/,"tb")+j;case 108:return WEBKIT+j+MS+replace$2(j,/[svh]\w+-[tblr]{2}/,"tb-rl")+j;case 45:return WEBKIT+j+MS+replace$2(j,/[svh]\w+-[tblr]{2}/,"lr")+j}return WEBKIT+j+MS+j+j}return j}var prefixer=function j(_e,et,tt,rt){if(_e.length>-1&&!_e.return)switch(_e.type){case DECLARATION:_e.return=prefix$1(_e.value,_e.length);break;case KEYFRAMES:return serialize([copy$2(_e,{value:replace$2(_e.value,"@","@"+WEBKIT)})],rt);case RULESET:if(_e.length)return combine(_e.props,function(nt){switch(match$2(nt,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize([copy$2(_e,{props:[replace$2(nt,/:(read-\w+)/,":"+MOZ+"$1")]})],rt);case"::placeholder":return serialize([copy$2(_e,{props:[replace$2(nt,/:(plac\w+)/,":"+WEBKIT+"input-$1")]}),copy$2(_e,{props:[replace$2(nt,/:(plac\w+)/,":"+MOZ+"$1")]}),copy$2(_e,{props:[replace$2(nt,/:(plac\w+)/,MS+"input-$1")]})],rt)}return""})}},defaultStylisPlugins=[prefixer],createCache=function j(_e){var et=_e.key;if(et==="css"){var tt=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(tt,function(gt){var vt=gt.getAttribute("data-emotion");vt.indexOf(" ")!==-1&&(document.head.appendChild(gt),gt.setAttribute("data-s",""))})}var rt=_e.stylisPlugins||defaultStylisPlugins,nt={},ot,it=[];ot=_e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+et+' "]'),function(gt){for(var vt=gt.getAttribute("data-emotion").split(" "),bt=1;btNumber.isNaN(Number(j))).map(([j,_e])=>[j,`var(${_e})`]));Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s(?:\s*[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>/]+/,inside:{namespace:/^[^\s>/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity;Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup;Prism.hooks.add("wrap",function(j){j.type==="entity"&&j.attributes&&(j.attributes.title=j.content.replace(/&/,"&"))});Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function j(_e,et){const tt={};tt["language-"+et]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[et]},tt.cdata=/^$/i;const rt={"included-cdata":{pattern://i,inside:tt}};rt["language-"+et]={pattern:/[\s\S]+/,inside:Prism.languages[et]};const nt={};nt[_e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return _e}),"i"),lookbehind:!0,greedy:!0,inside:rt},Prism.languages.insertBefore("markup","cdata",nt)}});Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(j,_e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+j+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[_e,"language-"+_e],inside:Prism.languages[_e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}});Prism.languages.html=Prism.languages.markup;Prism.languages.mathml=Prism.languages.markup;Prism.languages.svg=Prism.languages.markup;Prism.languages.xml=Prism.languages.extend("markup",{});Prism.languages.ssml=Prism.languages.xml;Prism.languages.atom=Prism.languages.xml;Prism.languages.rss=Prism.languages.xml;const envVars="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",commandAfterHeredoc={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:void 0},insideString={bash:commandAfterHeredoc,environment:{pattern:RegExp("\\$"+envVars),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!/]|##?|%%?|\^\^?|,,?/,punctuation:/[[\]]/,environment:{pattern:RegExp("(\\{)"+envVars),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};Prism.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+envVars),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:insideString},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:commandAfterHeredoc}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:insideString},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:insideString.entity}}],environment:{pattern:RegExp("\\$?"+envVars),alias:"constant"},variable:insideString.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}};commandAfterHeredoc.inside=Prism.languages.bash;const toBeCopied=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],inside$1=insideString.variable[1].inside;for(let j=0;j>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/});Prism.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}});Prism.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},Prism.languages.c.string],char:Prism.languages.c.char,comment:Prism.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:Prism.languages.c}}}});Prism.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/});delete Prism.languages.c.boolean;const string$1=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+string$1.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+string$1.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+string$1.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+string$1.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:string$1,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/};Prism.languages.css.atrule.inside.rest=Prism.languages.css;const markup=Prism.languages.markup;markup&&(markup.tag.addInlined("style","css"),markup.tag.addAttribute("style","css"));const keyword=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,modName=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return keyword.source});Prism.languages.cpp=Prism.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return keyword.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/});Prism.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return modName})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}});Prism.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:Prism.languages.cpp}}}});Prism.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});Prism.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:Prism.languages.extend("cpp",{})}});Prism.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},Prism.languages.cpp["base-clause"]);const ID="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!)*>/.source].join("|")+")",IDInside={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:Prism.languages.markup}};function withID(j,_e){return RegExp(j.replace(//g,function(){return ID}),_e)}Prism.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:withID(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:IDInside},"attr-value":{pattern:withID(/(=[ \t\r\n]*)/.source),lookbehind:!0,greedy:!0,inside:IDInside},"attr-name":{pattern:withID(/([[;, \t\r\n])(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:IDInside},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ewc_]|[ns][ew]?)(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:withID(/(^|[^-.\w\x80-\uFFFF\\])/.source),lookbehind:!0,greedy:!0,inside:IDInside},operator:/[=:]|-[->]/,punctuation:/[[\]{};,]/};Prism.languages.gv=Prism.languages.dot;Prism.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};const PREFIXES={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(PREFIXES).forEach(function(j){const _e=PREFIXES[j],et=[];/^\w+$/.test(j)||et.push(/\w+/.exec(j)[0]),j==="diff"&&et.push("bold"),Prism.languages.diff[j]={pattern:RegExp("^(?:["+_e+`].*(?:\r + */var et=function(tt){var rt=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,nt=0,ot={},it={manual:tt.Prism&&tt.Prism.manual,disableWorkerMessageHandler:tt.Prism&&tt.Prism.disableWorkerMessageHandler,util:{encode:function _t(xt){return xt instanceof st?new st(xt.type,_t(xt.content),xt.alias):Array.isArray(xt)?xt.map(_t):xt.replace(/&/g,"&").replace(/"u")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(Et){var _t=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(Et.stack)||[])[1];if(_t){var xt=document.getElementsByTagName("script");for(var yt in xt)if(xt[yt].src==_t)return xt[yt]}return null}},isActive:function(_t,xt,yt){for(var Et="no-"+xt;_t;){var St=_t.classList;if(St.contains(xt))return!0;if(St.contains(Et))return!1;_t=_t.parentElement}return!!yt}},languages:{plain:ot,plaintext:ot,text:ot,txt:ot,extend:function(_t,xt){var yt=it.util.clone(it.languages[_t]);for(var Et in xt)yt[Et]=xt[Et];return yt},insertBefore:function(_t,xt,yt,Et){Et=Et||it.languages;var St=Et[_t],Tt={};for(var kt in St)if(St.hasOwnProperty(kt)){if(kt==xt)for(var $t in yt)yt.hasOwnProperty($t)&&(Tt[$t]=yt[$t]);yt.hasOwnProperty(kt)||(Tt[kt]=St[kt])}var Ct=Et[_t];return Et[_t]=Tt,it.languages.DFS(it.languages,function(It,Nt){Nt===Ct&&It!=_t&&(this[It]=Tt)}),Tt},DFS:function _t(xt,yt,Et,St){St=St||{};var Tt=it.util.objId;for(var kt in xt)if(xt.hasOwnProperty(kt)){yt.call(xt,kt,xt[kt],Et||kt);var $t=xt[kt],Ct=it.util.type($t);Ct==="Object"&&!St[Tt($t)]?(St[Tt($t)]=!0,_t($t,yt,null,St)):Ct==="Array"&&!St[Tt($t)]&&(St[Tt($t)]=!0,_t($t,yt,kt,St))}}},plugins:{},highlightAll:function(_t,xt){it.highlightAllUnder(document,_t,xt)},highlightAllUnder:function(_t,xt,yt){var Et={callback:yt,container:_t,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};it.hooks.run("before-highlightall",Et),Et.elements=Array.prototype.slice.apply(Et.container.querySelectorAll(Et.selector)),it.hooks.run("before-all-elements-highlight",Et);for(var St=0,Tt;Tt=Et.elements[St++];)it.highlightElement(Tt,xt===!0,Et.callback)},highlightElement:function(_t,xt,yt){var Et=it.util.getLanguage(_t),St=it.languages[Et];it.util.setLanguage(_t,Et);var Tt=_t.parentElement;Tt&&Tt.nodeName.toLowerCase()==="pre"&&it.util.setLanguage(Tt,Et);var kt=_t.textContent,$t={element:_t,language:Et,grammar:St,code:kt};function Ct(Nt){$t.highlightedCode=Nt,it.hooks.run("before-insert",$t),$t.element.innerHTML=$t.highlightedCode,it.hooks.run("after-highlight",$t),it.hooks.run("complete",$t),yt&&yt.call($t.element)}if(it.hooks.run("before-sanity-check",$t),Tt=$t.element.parentElement,Tt&&Tt.nodeName.toLowerCase()==="pre"&&!Tt.hasAttribute("tabindex")&&Tt.setAttribute("tabindex","0"),!$t.code){it.hooks.run("complete",$t),yt&&yt.call($t.element);return}if(it.hooks.run("before-highlight",$t),!$t.grammar){Ct(it.util.encode($t.code));return}if(xt&&tt.Worker){var It=new Worker(it.filename);It.onmessage=function(Nt){Ct(Nt.data)},It.postMessage(JSON.stringify({language:$t.language,code:$t.code,immediateClose:!0}))}else Ct(it.highlight($t.code,$t.grammar,$t.language))},highlight:function(_t,xt,yt){var Et={code:_t,grammar:xt,language:yt};if(it.hooks.run("before-tokenize",Et),!Et.grammar)throw new Error('The language "'+Et.language+'" has no grammar.');return Et.tokens=it.tokenize(Et.code,Et.grammar),it.hooks.run("after-tokenize",Et),st.stringify(it.util.encode(Et.tokens),Et.language)},tokenize:function(_t,xt){var yt=xt.rest;if(yt){for(var Et in yt)xt[Et]=yt[Et];delete xt.rest}var St=new ct;return dt(St,St.head,_t),ut(_t,St,xt,St.head,0),pt(St)},hooks:{all:{},add:function(_t,xt){var yt=it.hooks.all;yt[_t]=yt[_t]||[],yt[_t].push(xt)},run:function(_t,xt){var yt=it.hooks.all[_t];if(!(!yt||!yt.length))for(var Et=0,St;St=yt[Et++];)St(xt)}},Token:st};tt.Prism=it;function st(_t,xt,yt,Et){this.type=_t,this.content=xt,this.alias=yt,this.length=(Et||"").length|0}st.stringify=function _t(xt,yt){if(typeof xt=="string")return xt;if(Array.isArray(xt)){var Et="";return xt.forEach(function(Ct){Et+=_t(Ct,yt)}),Et}var St={type:xt.type,content:_t(xt.content,yt),tag:"span",classes:["token",xt.type],attributes:{},language:yt},Tt=xt.alias;Tt&&(Array.isArray(Tt)?Array.prototype.push.apply(St.classes,Tt):St.classes.push(Tt)),it.hooks.run("wrap",St);var kt="";for(var $t in St.attributes)kt+=" "+$t+'="'+(St.attributes[$t]||"").replace(/"/g,""")+'"';return"<"+St.tag+' class="'+St.classes.join(" ")+'"'+kt+">"+St.content+""};function lt(_t,xt,yt,Et){_t.lastIndex=xt;var St=_t.exec(yt);if(St&&Et&&St[1]){var Tt=St[1].length;St.index+=Tt,St[0]=St[0].slice(Tt)}return St}function ut(_t,xt,yt,Et,St,Tt){for(var kt in yt)if(!(!yt.hasOwnProperty(kt)||!yt[kt])){var $t=yt[kt];$t=Array.isArray($t)?$t:[$t];for(var Ct=0;Ct<$t.length;++Ct){if(Tt&&Tt.cause==kt+","+Ct)return;var It=$t[Ct],Nt=It.inside,Ot=!!It.lookbehind,jt=!!It.greedy,Mt=It.alias;if(jt&&!It.pattern.global){var Rt=It.pattern.toString().match(/[imsuy]*$/)[0];It.pattern=RegExp(It.pattern.source,Rt+"g")}for(var Lt=It.pattern||It,Pt=Et.next,Gt=St;Pt!==xt.tail&&!(Tt&&Gt>=Tt.reach);Gt+=Pt.value.length,Pt=Pt.next){var qt=Pt.value;if(xt.length>_t.length)return;if(!(qt instanceof st)){var Yt=1,Xt;if(jt){if(Xt=lt(Lt,Gt,_t,Ot),!Xt||Xt.index>=_t.length)break;var Er=Xt.index,tr=Xt.index+Xt[0].length,cr=Gt;for(cr+=Pt.value.length;Er>=cr;)Pt=Pt.next,cr+=Pt.value.length;if(cr-=Pt.value.length,Gt=cr,Pt.value instanceof st)continue;for(var mr=Pt;mr!==xt.tail&&(crTt.reach&&(Tt.reach=ar);var pr=Pt.prev;_r&&(pr=dt(xt,pr,_r),Gt+=_r.length),ft(xt,pr,Yt);var rr=new st(kt,Nt?it.tokenize(hr,Nt):hr,Mt,hr);if(Pt=dt(xt,pr,rr),Ut&&dt(xt,Pt,Ut),Yt>1){var vr={cause:kt+","+Ct,reach:ar};ut(_t,xt,yt,Pt.prev,Gt,vr),Tt&&vr.reach>Tt.reach&&(Tt.reach=vr.reach)}}}}}}function ct(){var _t={value:null,prev:null,next:null},xt={value:null,prev:_t,next:null};_t.next=xt,this.head=_t,this.tail=xt,this.length=0}function dt(_t,xt,yt){var Et=xt.next,St={value:yt,prev:xt,next:Et};return xt.next=St,Et.prev=St,_t.length++,St}function ft(_t,xt,yt){for(var Et=xt.next,St=0;St/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},et.languages.markup.tag.inside["attr-value"].inside.entity=et.languages.markup.entity,et.languages.markup.doctype.inside["internal-subset"].inside=et.languages.markup,et.hooks.add("wrap",function(tt){tt.type==="entity"&&(tt.attributes.title=tt.content.replace(/&/,"&"))}),Object.defineProperty(et.languages.markup.tag,"addInlined",{value:function(rt,nt){var ot={};ot["language-"+nt]={pattern:/(^$)/i,lookbehind:!0,inside:et.languages[nt]},ot.cdata=/^$/i;var it={"included-cdata":{pattern://i,inside:ot}};it["language-"+nt]={pattern:/[\s\S]+/,inside:et.languages[nt]};var st={};st[rt]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return rt}),"i"),lookbehind:!0,greedy:!0,inside:it},et.languages.insertBefore("markup","cdata",st)}}),Object.defineProperty(et.languages.markup.tag,"addAttribute",{value:function(tt,rt){et.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+tt+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[rt,"language-"+rt],inside:et.languages[rt]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),et.languages.html=et.languages.markup,et.languages.mathml=et.languages.markup,et.languages.svg=et.languages.markup,et.languages.xml=et.languages.extend("markup",{}),et.languages.ssml=et.languages.xml,et.languages.atom=et.languages.xml,et.languages.rss=et.languages.xml,function(tt){var rt=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;tt.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+rt.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+rt.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+rt.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+rt.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:rt,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},tt.languages.css.atrule.inside.rest=tt.languages.css;var nt=tt.languages.markup;nt&&(nt.tag.addInlined("style","css"),nt.tag.addAttribute("style","css"))}(et),et.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},et.languages.javascript=et.languages.extend("clike",{"class-name":[et.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),et.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,et.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:et.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:et.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:et.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:et.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:et.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),et.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:et.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),et.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),et.languages.markup&&(et.languages.markup.tag.addInlined("script","javascript"),et.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),et.languages.js=et.languages.javascript,function(){if(typeof et>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var tt="Loading…",rt=function(gt,mt){return"✖ Error "+gt+" while fetching file: "+mt},nt="✖ Error: File does not exist or is empty",ot={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},it="data-src-status",st="loading",lt="loaded",ut="failed",ct="pre[data-src]:not(["+it+'="'+lt+'"]):not(['+it+'="'+st+'"])';function dt(gt,mt,bt){var _t=new XMLHttpRequest;_t.open("GET",gt,!0),_t.onreadystatechange=function(){_t.readyState==4&&(_t.status<400&&_t.responseText?mt(_t.responseText):_t.status>=400?bt(rt(_t.status,_t.statusText)):bt(nt))},_t.send(null)}function ft(gt){var mt=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(gt||"");if(mt){var bt=Number(mt[1]),_t=mt[2],xt=mt[3];return _t?xt?[bt,Number(xt)]:[bt,void 0]:[bt,bt]}}et.hooks.add("before-highlightall",function(gt){gt.selector+=", "+ct}),et.hooks.add("before-sanity-check",function(gt){var mt=gt.element;if(mt.matches(ct)){gt.code="",mt.setAttribute(it,st);var bt=mt.appendChild(document.createElement("CODE"));bt.textContent=tt;var _t=mt.getAttribute("data-src"),xt=gt.language;if(xt==="none"){var yt=(/\.(\w+)$/.exec(_t)||[,"none"])[1];xt=ot[yt]||yt}et.util.setLanguage(bt,xt),et.util.setLanguage(mt,xt);var Et=et.plugins.autoloader;Et&&Et.loadLanguages(xt),dt(_t,function(St){mt.setAttribute(it,lt);var Tt=ft(mt.getAttribute("data-range"));if(Tt){var kt=St.split(/\r\n?|\n/g),$t=Tt[0],Ct=Tt[1]==null?kt.length:Tt[1];$t<0&&($t+=kt.length),$t=Math.max(0,Math.min($t-1,kt.length)),Ct<0&&(Ct+=kt.length),Ct=Math.max(0,Math.min(Ct,kt.length)),St=kt.slice($t,Ct).join(` +`),mt.hasAttribute("data-start")||mt.setAttribute("data-start",String($t+1))}bt.textContent=St,et.highlightElement(bt)},function(St){mt.setAttribute(it,ut),bt.textContent=St})}}),et.plugins.fileHighlight={highlight:function(mt){for(var bt=(mt||document).querySelectorAll(ct),_t=0,xt;xt=bt[_t++];)et.highlightElement(xt)}};var pt=!1;et.fileHighlight=function(){pt||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),pt=!0),et.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(prism);var prismExports=prism.exports;const Prism=getDefaultExportFromCjs(prismExports);function sheetForTag(j){if(j.sheet)return j.sheet;for(var _e=0;_e0?charat(characters,--position):0,column--,character===10&&(column=1,line--),character}function next(){return character=position2||token$1(character)>3?"":" "}function escaping(j,_e){for(;--_e&&next()&&!(character<48||character>102||character>57&&character<65||character>70&&character<97););return slice(j,caret()+(_e<6&&peek()==32&&next()==32))}function delimiter(j){for(;next();)switch(character){case j:return position;case 34:case 39:j!==34&&j!==39&&delimiter(character);break;case 40:j===41&&delimiter(j);break;case 92:next();break}return position}function commenter(j,_e){for(;next()&&j+character!==57;)if(j+character===84&&peek()===47)break;return"/*"+slice(_e,position-1)+"*"+from(j===47?j:next())}function identifier(j){for(;!token$1(peek());)next();return slice(j,position)}function compile(j){return dealloc(parse$1("",null,null,null,[""],j=alloc(j),0,[0],j))}function parse$1(j,_e,et,tt,rt,nt,ot,it,st){for(var lt=0,ut=0,ct=ot,dt=0,ft=0,pt=0,gt=1,mt=1,bt=1,_t=0,xt="",yt=rt,Et=nt,St=tt,Tt=xt;mt;)switch(pt=_t,_t=next()){case 40:if(pt!=108&&charat(Tt,ct-1)==58){indexof(Tt+=replace(delimit(_t),"&","&\f"),"&\f")!=-1&&(bt=-1);break}case 34:case 39:case 91:Tt+=delimit(_t);break;case 9:case 10:case 13:case 32:Tt+=whitespace(pt);break;case 92:Tt+=escaping(caret()-1,7);continue;case 47:switch(peek()){case 42:case 47:append$1(comment(commenter(next(),caret()),_e,et),st);break;default:Tt+="/"}break;case 123*gt:it[lt++]=strlen(Tt)*bt;case 125*gt:case 59:case 0:switch(_t){case 0:case 125:mt=0;case 59+ut:bt==-1&&(Tt=replace(Tt,/\f/g,"")),ft>0&&strlen(Tt)-ct&&append$1(ft>32?declaration(Tt+";",tt,et,ct-1):declaration(replace(Tt," ","")+";",tt,et,ct-2),st);break;case 59:Tt+=";";default:if(append$1(St=ruleset(Tt,_e,et,lt,ut,rt,it,xt,yt=[],Et=[],ct),nt),_t===123)if(ut===0)parse$1(Tt,_e,St,St,yt,nt,ct,it,Et);else switch(dt===99&&charat(Tt,3)===110?100:dt){case 100:case 108:case 109:case 115:parse$1(j,St,St,tt&&append$1(ruleset(j,St,St,0,0,rt,it,xt,rt,yt=[],ct),Et),rt,Et,ct,it,tt?yt:Et);break;default:parse$1(Tt,St,St,St,[""],Et,0,it,Et)}}lt=ut=ft=0,gt=bt=1,xt=Tt="",ct=ot;break;case 58:ct=1+strlen(Tt),ft=pt;default:if(gt<1){if(_t==123)--gt;else if(_t==125&>++==0&&prev()==125)continue}switch(Tt+=from(_t),_t*gt){case 38:bt=ut>0?1:(Tt+="\f",-1);break;case 44:it[lt++]=(strlen(Tt)-1)*bt,bt=1;break;case 64:peek()===45&&(Tt+=delimit(next())),dt=peek(),ut=ct=strlen(xt=Tt+=identifier(caret())),_t++;break;case 45:pt===45&&strlen(Tt)==2&&(gt=0)}}return nt}function ruleset(j,_e,et,tt,rt,nt,ot,it,st,lt,ut){for(var ct=rt-1,dt=rt===0?nt:[""],ft=sizeof(dt),pt=0,gt=0,mt=0;pt0?dt[bt]+" "+_t:replace(_t,/&\f/g,dt[bt])))&&(st[mt++]=xt);return node(j,_e,et,rt===0?RULESET:it,st,lt,ut)}function comment(j,_e,et){return node(j,_e,et,COMMENT,from(char()),substr(j,2,-2),0)}function declaration(j,_e,et,tt){return node(j,_e,et,DECLARATION,substr(j,0,tt),substr(j,tt+1,-1),tt)}function serialize(j,_e){for(var et="",tt=sizeof(j),rt=0;rt6)switch(charat(j,_e+1)){case 109:if(charat(j,_e+4)!==45)break;case 102:return replace(j,/(.+:)(.+)-([^]+)/,"$1"+WEBKIT+"$2-$3$1"+MOZ+(charat(j,_e+3)==108?"$3":"$2-$3"))+j;case 115:return~indexof(j,"stretch")?prefix$1(replace(j,"stretch","fill-available"),_e)+j:j}break;case 4949:if(charat(j,_e+1)!==115)break;case 6444:switch(charat(j,strlen(j)-3-(~indexof(j,"!important")&&10))){case 107:return replace(j,":",":"+WEBKIT)+j;case 101:return replace(j,/(.+:)([^;!]+)(;|!.+)?/,"$1"+WEBKIT+(charat(j,14)===45?"inline-":"")+"box$3$1"+WEBKIT+"$2$3$1"+MS+"$2box$3")+j}break;case 5936:switch(charat(j,_e+11)){case 114:return WEBKIT+j+MS+replace(j,/[svh]\w+-[tblr]{2}/,"tb")+j;case 108:return WEBKIT+j+MS+replace(j,/[svh]\w+-[tblr]{2}/,"tb-rl")+j;case 45:return WEBKIT+j+MS+replace(j,/[svh]\w+-[tblr]{2}/,"lr")+j}return WEBKIT+j+MS+j+j}return j}var prefixer=function j(_e,et,tt,rt){if(_e.length>-1&&!_e.return)switch(_e.type){case DECLARATION:_e.return=prefix$1(_e.value,_e.length);break;case KEYFRAMES:return serialize([copy$2(_e,{value:replace(_e.value,"@","@"+WEBKIT)})],rt);case RULESET:if(_e.length)return combine(_e.props,function(nt){switch(match(nt,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize([copy$2(_e,{props:[replace(nt,/:(read-\w+)/,":"+MOZ+"$1")]})],rt);case"::placeholder":return serialize([copy$2(_e,{props:[replace(nt,/:(plac\w+)/,":"+WEBKIT+"input-$1")]}),copy$2(_e,{props:[replace(nt,/:(plac\w+)/,":"+MOZ+"$1")]}),copy$2(_e,{props:[replace(nt,/:(plac\w+)/,MS+"input-$1")]})],rt)}return""})}},defaultStylisPlugins=[prefixer],createCache=function j(_e){var et=_e.key;if(et==="css"){var tt=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(tt,function(gt){var mt=gt.getAttribute("data-emotion");mt.indexOf(" ")!==-1&&(document.head.appendChild(gt),gt.setAttribute("data-s",""))})}var rt=_e.stylisPlugins||defaultStylisPlugins,nt={},ot,it=[];ot=_e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+et+' "]'),function(gt){for(var mt=gt.getAttribute("data-emotion").split(" "),bt=1;btNumber.isNaN(Number(j))).map(([j,_e])=>[j,`var(${_e})`]));Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s(?:\s*[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>/]+/,inside:{namespace:/^[^\s>/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity;Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup;Prism.hooks.add("wrap",function(j){j.type==="entity"&&j.attributes&&(j.attributes.title=j.content.replace(/&/,"&"))});Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function j(_e,et){const tt={};tt["language-"+et]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[et]},tt.cdata=/^$/i;const rt={"included-cdata":{pattern://i,inside:tt}};rt["language-"+et]={pattern:/[\s\S]+/,inside:Prism.languages[et]};const nt={};nt[_e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return _e}),"i"),lookbehind:!0,greedy:!0,inside:rt},Prism.languages.insertBefore("markup","cdata",nt)}});Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(j,_e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+j+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[_e,"language-"+_e],inside:Prism.languages[_e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}});Prism.languages.html=Prism.languages.markup;Prism.languages.mathml=Prism.languages.markup;Prism.languages.svg=Prism.languages.markup;Prism.languages.xml=Prism.languages.extend("markup",{});Prism.languages.ssml=Prism.languages.xml;Prism.languages.atom=Prism.languages.xml;Prism.languages.rss=Prism.languages.xml;const envVars="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",commandAfterHeredoc={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:void 0},insideString={bash:commandAfterHeredoc,environment:{pattern:RegExp("\\$"+envVars),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!/]|##?|%%?|\^\^?|,,?/,punctuation:/[[\]]/,environment:{pattern:RegExp("(\\{)"+envVars),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};Prism.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+envVars),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:insideString},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:commandAfterHeredoc}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:insideString},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:insideString.entity}}],environment:{pattern:RegExp("\\$?"+envVars),alias:"constant"},variable:insideString.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}};commandAfterHeredoc.inside=Prism.languages.bash;const toBeCopied=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],inside$1=insideString.variable[1].inside;for(let j=0;j>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/});Prism.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}});Prism.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},Prism.languages.c.string],char:Prism.languages.c.char,comment:Prism.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:Prism.languages.c}}}});Prism.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/});delete Prism.languages.c.boolean;const string$1=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+string$1.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+string$1.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+string$1.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+string$1.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:string$1,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/};Prism.languages.css.atrule.inside.rest=Prism.languages.css;const markup=Prism.languages.markup;markup&&(markup.tag.addInlined("style","css"),markup.tag.addAttribute("style","css"));const keyword=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,modName=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return keyword.source});Prism.languages.cpp=Prism.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return keyword.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/});Prism.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return modName})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}});Prism.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:Prism.languages.cpp}}}});Prism.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});Prism.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:Prism.languages.extend("cpp",{})}});Prism.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},Prism.languages.cpp["base-clause"]);const ID="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!)*>/.source].join("|")+")",IDInside={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:Prism.languages.markup}};function withID(j,_e){return RegExp(j.replace(//g,function(){return ID}),_e)}Prism.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:withID(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:IDInside},"attr-value":{pattern:withID(/(=[ \t\r\n]*)/.source),lookbehind:!0,greedy:!0,inside:IDInside},"attr-name":{pattern:withID(/([[;, \t\r\n])(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:IDInside},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ewc_]|[ns][ew]?)(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:withID(/(^|[^-.\w\x80-\uFFFF\\])/.source),lookbehind:!0,greedy:!0,inside:IDInside},operator:/[=:]|-[->]/,punctuation:/[[\]{};,]/};Prism.languages.gv=Prism.languages.dot;Prism.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};const PREFIXES={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(PREFIXES).forEach(function(j){const _e=PREFIXES[j],et=[];/^\w+$/.test(j)||et.push(/\w+/.exec(j)[0]),j==="diff"&&et.push("bold"),Prism.languages.diff[j]={pattern:RegExp("^(?:["+_e+`].*(?:\r ?| |(?![\\s\\S])))+`,"m"),alias:et,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(j)[0]}}}});Object.defineProperty(Prism.languages.diff,"PREFIXES",{value:PREFIXES});Prism.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m};Prism.languages.go=Prism.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/});Prism.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}});delete Prism.languages.go["class-name"];const keywords=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,classNamePrefix=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,className={pattern:RegExp(/(^|[^\w.])/.source+classNamePrefix+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};Prism.languages.java=Prism.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[className,{pattern:RegExp(/(^|[^\w.])/.source+classNamePrefix+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:className.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+classNamePrefix+/[A-Z]\w*\b/.source),lookbehind:!0,inside:className.inside}],keyword:keywords,function:[Prism.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/});Prism.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}});Prism.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":className,keyword:keywords,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+classNamePrefix+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:className.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+classNamePrefix+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:className.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,function(){return keywords.source})),lookbehind:!0,inside:{punctuation:/\./}}});Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});if(Prism.languages.markup){const j=Prism.languages.markup;j.tag.addInlined("script","javascript"),j.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")}Prism.languages.js=Prism.languages.javascript;Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}};Prism.languages.webmanifest=Prism.languages.json;const javascript=Prism.util.clone(Prism.languages.javascript),space=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,braces=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source;let spread=/(?:\{*\.{3}(?:[^{}]|)*\})/.source;function re$2(j,_e){const et=j.replace(//g,()=>space).replace(//g,()=>braces).replace(//g,()=>spread);return RegExp(et,_e)}spread=re$2(spread).source;Prism.languages.jsx=Prism.languages.extend("markup",javascript);const jsx=Prism.languages.jsx;jsx.tag.pattern=re$2(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source);jsx.tag.inside.tag.pattern=/^<\/?[^\s>/]*/;jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/;jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/;jsx.tag.inside.comment=javascript.comment;Prism.languages.insertBefore("inside","attr-name",{spread:{pattern:re$2(//.source),inside:Prism.languages.jsx}},jsx.tag);Prism.languages.insertBefore("inside","special-attr",{script:{pattern:re$2(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:Prism.languages.jsx}}},jsx.tag);const stringifyToken=function(j){return j?typeof j=="string"?j:typeof j.content=="string"?j.content:j.content.map(stringifyToken).join(""):""},walkTokens=function(j){const _e=[];for(let et=0;et0&&_e[_e.length-1].tagName===stringifyToken(nt[0].content[1])&&_e.pop():nt[nt.length-1].content==="/>"||_e.push({tagName:stringifyToken(nt[0].content[1]),openedBraces:0}):_e.length>0&&tt.type==="punctuation"&&tt.content==="{"?_e[_e.length-1].openedBraces+=1:_e.length>0&&_e[_e.length-1].openedBraces>0&&tt.type==="punctuation"&&tt.content==="}"?_e[_e.length-1].openedBraces-=1:rt=!0}if((rt||typeof tt=="string")&&_e.length>0&&_e[_e.length-1].openedBraces===0){let nt=stringifyToken(tt);et0&&(typeof j[et-1]=="string"||j[et-1].type==="plain-text")&&(nt=stringifyToken(j[et-1])+nt,j.splice(et-1,1),et-=1),j[et]=new Prism.Token("plain-text",nt,void 0,nt)}typeof tt!="string"&&tt.content&&typeof tt.content!="string"&&walkTokens(tt.content)}};Prism.hooks.add("after-tokenize",function(j){j.language!=="jsx"&&j.language!=="tsx"||walkTokens(j.tokens)});Prism.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/};const inner=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function createInline(j){const _e=j.replace(//g,function(){return inner});return RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+_e+")")}const tableCell=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,tableRow=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return tableCell}),tableLine=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;Prism.languages.markdown=Prism.languages.extend("markup",{});Prism.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:Prism.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+tableRow+tableLine+"(?:"+tableRow+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+tableRow+tableLine+")(?:"+tableRow+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(tableCell),inside:Prism.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+tableRow+")"+tableLine+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+tableRow+"$"),inside:{"table-header":{pattern:RegExp(tableCell),alias:"important",inside:Prism.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[[\]!:]|[<>]/},alias:"url"},bold:{pattern:createInline(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:createInline(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:createInline(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:createInline(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}});["url","bold","italic","strike"].forEach(function(j){["url","bold","italic","strike","code-snippet"].forEach(function(_e){if(j!==_e){const et=Prism.languages.markdown;et[j].inside.content.inside[_e]=et[_e]}})});Prism.hooks.add("after-tokenize",function(j){if(j.language!=="markdown"&&j.language!=="md")return;function _e(et){if(!(!et||typeof et=="string"))for(let tt=0,rt=et.length;tt",quot:'"'},fromCodePoint=String.fromCodePoint||String.fromCharCode;function textContent(j){let _e=j.replace(tagPattern,"");return _e=_e.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(et,tt){if(tt=tt.toLowerCase(),tt[0]==="#"){let rt;return tt[1]==="x"?rt=parseInt(tt.slice(2),16):rt=Number(tt.slice(1)),fromCodePoint(rt)}else{const rt=KNOWN_ENTITY_NAMES[tt];return rt||et}}),_e}Prism.languages.md=Prism.languages.markdown;Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/};Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python;Prism.languages.py=Prism.languages.python;Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}});Prism.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]});Prism.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/});Prism.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}});Prism.languages.scss.atrule.inside.rest=Prism.languages.scss;Prism.languages.sass=Prism.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}});Prism.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}});delete Prism.languages.sass.atrule;const variable=/\$[-\w]+|#\{\$[-\w]+\}/,operator=[/[+*/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];Prism.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable,operator}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable,operator,important:Prism.languages.sass.important}}});delete Prism.languages.sass.property;delete Prism.languages.sass.important;Prism.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}});Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/};const unit$1={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},number$3={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},inside={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:unit$1,number:number$3,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:unit$1,boolean:/\b(?:false|true)\b/,operator:[/~|[+!/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:number$3,punctuation:/[{}()[\];:,]/};inside.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:inside}};inside.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:inside}};Prism.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:inside}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:inside}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:inside}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:inside.interpolation}},rest:inside}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:inside.interpolation,comment:inside.comment,punctuation:/[{},]/}},func:inside.func,string:inside.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:inside.interpolation,punctuation:/[{}()[\];:.]/};Prism.languages.typescript=Prism.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/});Prism.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[{*]|$))/);delete Prism.languages.typescript.parameter;delete Prism.languages.typescript["literal-property"];const typeInside=Prism.languages.extend("typescript",{});delete typeInside["class-name"];Prism.languages.typescript["class-name"].inside=typeInside;Prism.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:typeInside}}}});Prism.languages.ts=Prism.languages.typescript;const typescript=Prism.util.clone(Prism.languages.typescript);Prism.languages.tsx=Prism.languages.extend("jsx",typescript);delete Prism.languages.tsx.parameter;delete Prism.languages.tsx["literal-property"];const tag$1=Prism.languages.tsx.tag;tag$1.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+tag$1.pattern.source+")",tag$1.pattern.flags);tag$1.lookbehind=!0;Prism.languages["visual-basic"]={comment:{pattern:/(?:['‘’]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\b_[ \t]*(?:\r\n?|\n)|.)+/i,alias:"property",greedy:!0},string:{pattern:/\$?["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,greedy:!0},date:{pattern:/#[ \t]*(?:\d+([/-])\d+\1\d+(?:[ \t]+(?:\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?))?|\d+[ \t]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[ \t]*(?:AM|PM))?)[ \t]*#/i,alias:"number"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:[FRD]|U?[ILS])?/i,boolean:/\b(?:False|Nothing|True)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:/[+\-*/\\^<=>&#@$%!]|\b_(?=[ \t]*[\r\n])/,punctuation:/[{}().,:?]/};Prism.languages.vb=Prism.languages["visual-basic"];Prism.languages.vba=Prism.languages["visual-basic"];Prism.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const anchorOrAlias=/[*&][^\s[\]{},]+/,tag=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,properties="(?:"+tag.source+"(?:[ ]+"+anchorOrAlias.source+")?|"+anchorOrAlias.source+"(?:[ ]+"+tag.source+")?)",plainKey=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,()=>/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source),string$2=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function createValuePattern(j,_e){const et=(_e||"").replace(/m/g,"")+"m",tt=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return properties}).replace(/<>/g,function(){return j});return RegExp(tt,et)}Prism.languages.yaml={scalar:{pattern:RegExp(/([-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return properties})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return properties}).replace(/<>/g,function(){return"(?:"+plainKey+"|"+string$2+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:createValuePattern(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:createValuePattern(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:createValuePattern(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:createValuePattern(string$2),lookbehind:!0,greedy:!0},number:{pattern:createValuePattern(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag,important:anchorOrAlias,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./};Prism.languages.yml=Prism.languages.yaml;const vscDarkTheme={plain:{color:"#d4d4d4",backgroundColor:"#1e1e1e"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment","punctuation"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin"],style:{color:"rgb(79, 193, 255)"}},{types:["number","variable","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["operator"],style:{color:"rgb(212, 212, 212)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["tag","changed","function","keyword"],style:{color:"rgb(86, 156, 214)"}},{types:["attr-name"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value"],style:{color:"rgb(206, 145, 120)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}}]},vscLightTheme={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},vars={border:`1px solid var(${TokenNames.colorBorderCodeLineno}, hsla(0deg, 0%, 80%, 0.8))`,highlightBackground:`var(${TokenNames.colorBgCodeHighlight}, hsla(30deg, 90%, 50%, 0.3))`,fontSizeCode:`var(${CommonTokenNames.fontSizeCode}, 14px)`,lineHeightCode:`var(${CommonTokenNames.lineHeightCode}, 1.6)`},classes$2={container:css({MozOsxFontSmoothing:"grayscale",WebkitFontSmoothing:"antialiased",display:"flex",alignItems:"stretch",overflow:"hidden",width:"100%",fontSize:vars.fontSizeCode,lineHeight:vars.lineHeightCode,padding:0,transition:"max-height 0.5s ease-in-out",tabSize:2,fontSmooth:"always",whiteSpace:"pre",wordBreak:"keep-all",wordSpacing:"normal",wordWrap:"normal"}),line:css({boxSizing:"border-box",display:"flex",minWidth:"fit-content",width:"100%",padding:"0 6px",letterSpacing:"inherit",fontSize:vars.fontSizeCode,lineHeight:vars.lineHeightCode,height:vars.lineHeightCode,overflowWrap:"inherit",tabSize:"inherit",textIndent:"inherit",textRendering:"inherit",textTransform:"inherit",whiteSpace:"inherit",wordBreak:"inherit",wordSpacing:"inherit",wordWrap:"inherit"}),linenoLine:css({justifyContent:"flex-end",padding:"0 4px"}),highlightLine:css({background:vars.highlightBackground,borderColor:"transparent"}),lineno:css({flex:"0 0 auto",overflow:"hidden",boxSizing:"border-box",padding:"0.5rem 0",cursor:"default",fontSize:vars.fontSizeCode,lineHeight:vars.lineHeightCode,userSelect:"none",textAlign:"right",borderRight:vars.border}),codes:css({flex:"1 1 auto",overflow:"overlay",boxSizing:"border-box",padding:"0.5rem 0",fontSize:vars.fontSizeCode,lineHeight:vars.lineHeightCode}),codeWrapper:css({minWidth:"100%",width:"fit-content"}),codeLine:css({boxSizing:"border-box",padding:"0 12px"})},languageMap={js:"javascript",ts:"typescript"},themeToDict=(j,_e)=>{j=languageMap[j]??j;const{plain:et}=_e,tt=Object.create(null),rt=_e.styles.reduce((nt,ot)=>{const{types:it,style:st,languages:lt}=ot;if(lt&&!lt.includes(j))return nt;for(const ut of it){const ct={...nt[ut],...st};nt[ut]=ct}return nt},tt);return rt.root=et,rt.plain={...et,backgroundColor:void 0},rt},newlineRegex=/\r\n|\r|\n/,normalizeEmptyLines=j=>{j.length===0?j.push({types:["plain"],content:` `,empty:!0}):j.length===1&&j[0].content===""&&(j[0].content=` -`,j[0].empty=!0)},appendTypes=(j,_e)=>{const et=j.length;return et>0&&j[et-1]===_e?j:j.concat(_e)},normalizeTokens=j=>{const _e=[[]],et=[j],tt=[0],rt=[j.length];let nt=[];const ot=[nt];for(let it=0;it>-1;--it){for(let st=0;(st=tt[it]++)0?ut:["plain"],lt=dt):(ut=appendTypes(ut,dt.type),dt.alias&&(ut=appendTypes(ut,dt.alias)),lt=dt.content),typeof lt!="string"){it+=1,_e.push(ut),et.push(lt),tt.push(0),rt.push(lt.length);continue}const ft=lt.split(newlineRegex),pt=ft.length;nt.push({types:ut,content:ft[0]});for(let gt=1;gt{var nt,ot;const tt=et.target;if(tt==null)return;const{scrollTop:rt}=tt;(ot=(nt=this.linenoRef.current)==null?void 0:nt.scrollTo)==null||ot.call(nt,0,rt)});const tt=themeToDict(et.language,et.theme),rt=this.tokenize(et.code,et.language),nt=et.showLineno?`${Math.max(2,String(rt.length).length)*1.1}em`:void 0;this.state={linenoWidth:nt,themeDict:tt,tokens:rt},this.linenoRef={current:null}}shouldComponentUpdate(et,tt){const rt=this.props,nt=this.state;return nt.linenoWidth!==tt.linenoWidth||nt.themeDict!==tt.themeDict||nt.tokens!==tt.tokens||rt.code!==et.code||rt.codesRef!==et.codesRef||rt.collapsed!==et.collapsed||rt.language!==et.language||rt.maxLines!==et.maxLines||rt.showLineno!==et.showLineno||!isEqual$2(rt.theme,et.theme)||!isEqual$2(rt.highlightLinenos,et.highlightLinenos)}render(){const{linenoRef:et,onScroll:tt}=this,{codesRef:rt,collapsed:nt,highlightLinenos:ot,language:it,maxLines:st,showLineno:lt=!0}=this.props,{linenoWidth:ut,tokens:ct}=this.state,dt=ct.length,ft=st>0?Math.min(st,dt):dt,pt={...this.state.themeDict.root,backgroundColor:"none",...nt?{maxHeight:0}:{maxHeight:`calc(calc(${vars.lineHeightCode} * ${ft+.8}) + 6px)`,minHeight:"100%"}};return React.createElement("div",{className:cx(classes$2.container,it?`prism-code language-${it}`:"prism-code"),style:pt},lt&&React.createElement("div",{key:"linenos",className:classes$2.lineno,style:{width:ut},ref:et},React.createElement(HighlightLinenos,{countOfLines:dt,highlightLinenos:ot})),React.createElement("div",{key:"codes",ref:rt,className:classes$2.codes,onScroll:tt},React.createElement("div",{className:classes$2.codeWrapper},ct.map((gt,vt)=>{const bt=ot.includes(vt+1),_t=this.getLineProps({line:gt});return React.createElement("div",{..._t,key:vt,className:cx(classes$2.line,classes$2.codeLine,bt&&classes$2.highlightLine,_t.className)},gt.map((xt,yt)=>React.createElement("span",{...this.getTokenProps({token:xt}),key:yt})))}))))}componentDidMount(){var et,tt;(tt=(et=this.props).onLinenoWidthChange)==null||tt.call(et,this.state.linenoWidth)}componentDidUpdate(et,tt){var it,st;const rt=this.props,nt=this.state,ot=rt.language!==et.language||!isEqual$2(rt.theme,et.theme)?themeToDict(rt.language,rt.theme):nt.themeDict;if(rt.code!==et.code||rt.language!==et.language||ot!==tt.themeDict){const lt=this.tokenize(rt.code,rt.language),ut=rt.showLineno?`${Math.max(2,String(lt.length).length)*1.1}em`:void 0;this.setState({linenoWidth:ut,themeDict:ot,tokens:lt})}nt.linenoWidth!==tt.linenoWidth&&((st=(it=this.props).onLinenoWidthChange)==null||st.call(it,nt.linenoWidth))}tokenize(et,tt){const rt=tt?Prism.languages[tt]:void 0;if(rt){const nt={code:et,grammar:rt,language:tt,tokens:[]};return Prism.hooks.run("before-tokenize",nt),nt.tokens=Prism.tokenize(nt.code,nt.grammar),Prism.hooks.run("after-tokenize",nt),normalizeTokens(nt.tokens)}else return normalizeTokens([et])}getLineProps(et){const{themeDict:tt}=this.state,{key:rt,className:nt,style:ot,line:it,...st}=et,lt={...st,className:"token-line",style:void 0,key:void 0};return tt!==void 0&&(lt.style=tt.plain),ot!==void 0&&(lt.style=lt.style!==void 0?{...lt.style,...ot}:ot),rt!==void 0&&(lt.key=rt),nt&&(lt.className+=` ${nt}`),lt}getStyleForToken({types:et,empty:tt}){const{themeDict:rt}=this.state,nt=et.length;if(rt===void 0)return;if(nt===1&&et[0]==="plain")return tt?{display:"inline-block"}:void 0;if(nt===1&&!tt)return rt[et[0]];const ot=tt?{display:"inline-block"}:{};for(const it of et){const st=rt[it];Object.assign(ot,st)}return ot}getTokenProps(et){const{key:tt,className:rt,style:nt,token:ot,...it}=et,st={...it,className:`token ${ot.types.join(" ")}`,children:ot.content,style:this.getStyleForToken(ot),key:void 0};return nt!==void 0&&(st.style=st.style!==void 0?{...st.style,...nt}:nt),tt!==void 0&&(st.key=tt),rt&&(st.className+=` ${rt}`),st}}zr(HighlightContent,"displayName","HighlightContent"),zr(HighlightContent,"propTypes",{code:PropTypes$1.string.isRequired,codesRef:PropTypes$1.any,collapsed:PropTypes$1.bool.isRequired,language:PropTypes$1.string.isRequired,maxLines:PropTypes$1.number.isRequired,showLineno:PropTypes$1.bool.isRequired,theme:PropTypes$1.object.isRequired,highlightLinenos:PropTypes$1.array.isRequired,onLinenoWidthChange:PropTypes$1.func});class CodeHighlighter extends React.PureComponent{render(){const{lang:_e,value:et,darken:tt=!0,highlightLinenos:rt=[],maxLines:nt=-1,collapsed:ot=!1,showLineNo:it=!0,codesRef:st,onLinenoWidthChange:lt}=this.props,ut=this.props.theme??(tt?vscDarkTheme:vscLightTheme);return React.createElement(HighlightContent,{code:et,codesRef:st,collapsed:ot,highlightLinenos:rt,language:_e??"",maxLines:nt,showLineno:it,theme:ut,onLinenoWidthChange:lt})}}zr(CodeHighlighter,"displayName","YozoraCodeHighlighter"),zr(CodeHighlighter,"propTypes",{codesRef:PropTypes$1.any,collapsed:PropTypes$1.bool,darken:PropTypes$1.bool,highlightLinenos:PropTypes$1.arrayOf(PropTypes$1.number),lang:PropTypes$1.string,maxLines:PropTypes$1.number,onLinenoWidthChange:PropTypes$1.func,showLineNo:PropTypes$1.bool,theme:PropTypes$1.any,value:PropTypes$1.string.isRequired});const CopyButton$1=j=>{const{className:_e,delay:et=1500,calcContentForCopy:tt}=j,[rt,nt]=React.useState(0),ot=useStyles$g(),it=rt!==0,st=()=>{if(rt===0){nt(1);try{const lt=tt();copy$4(lt),nt(2)}catch{nt(3)}}};return React.useEffect(()=>{if(rt===2||rt===3){const lt=setTimeout(()=>nt(0),et);return()=>{lt&&clearTimeout(lt)}}},[rt,et]),jsxRuntimeExports.jsx(Button$2,{appearance:"transparent",className:mergeClasses(ot.copyButton,_e),disabled:it,as:"button",icon:rt===0?jsxRuntimeExports.jsx(Copy20Regular,{}):jsxRuntimeExports.jsx(CopyArrowRight20Regular,{}),onClick:st})},useStyles$g=makeStyles({copyButton:{cursor:"pointer"}});class CodeRendererInner extends React.PureComponent{constructor(){super(...arguments),this.calcContentForCopy=()=>this.props.value}render(){const{calcContentForCopy:_e}=this,{darken:et,lang:tt,value:rt,preferCodeWrap:nt,showCodeLineno:ot}=this.props;return jsxRuntimeExports.jsxs("code",{className:codeCls,"data-wrap":nt,children:[jsxRuntimeExports.jsx(CodeHighlighter,{lang:tt,value:rt,collapsed:!1,showLineNo:ot&&!nt,darken:et}),jsxRuntimeExports.jsx("div",{className:copyBtnCls,children:jsxRuntimeExports.jsx(CopyButton$1,{calcContentForCopy:_e})})]})}}const copyBtnCls=mergeStyles$1({position:"absolute",right:"4px",top:"4px",display:"none"}),codeCls=mergeStyles$1(astClasses.code,{position:"relative",display:"block",boxSizing:"border-box",borderRadius:"4px",margin:"0px 0px 1.25em 0px",backgroundColor:"var(--colorBgCode)",[`&:hover > .${copyBtnCls}`]:{display:"inline-block"},'&&[data-wrap="true"] > div':{whiteSpace:"pre-wrap",wordBreak:"keep-all"}}),CodeRenderer=j=>{const{lang:_e}=j,et=j.value.replace(/[\r\n]+$/,""),{viewmodel:tt}=useNodeRendererContext(),rt=useStateValue(tt.preferCodeWrap$),nt=useStateValue(tt.showCodeLineno$),it=useStateValue(tt.themeScheme$)==="darken";return jsxRuntimeExports.jsx(CodeRendererInner,{darken:it,lang:_e??"text",value:et,preferCodeWrap:rt,showCodeLineno:nt})};class DeleteRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("del",{className:cls$9,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$9=mergeStyles$1(astClasses.delete,{marginRight:"4px",color:"var(--colorDelete)",fontStyle:"italic",textDecoration:"line-through"});class EmphasisRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("em",{className:cls$8,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$8=mergeStyles$1(astClasses.emphasis,{fontStyle:"italic",margin:"0 6px 0 2px"});class HeadingRenderer extends React.Component{shouldComponentUpdate(_e){const et=this.props;return et.depth!==_e.depth||et.identifier!==_e.identifier||et.children!==_e.children||et.linkIcon!==_e.linkIcon}render(){const{depth:_e,identifier:et,children:tt,linkIcon:rt="¶"}=this.props,nt=et==null?void 0:encodeURIComponent(et),ot="h"+_e,it=ot,st=mergeStyles$1(astClasses.heading,classes$1.heading,classes$1[ot]);return jsxRuntimeExports.jsxs(it,{id:nt,className:st,children:[jsxRuntimeExports.jsx("p",{className:classes$1.content,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:tt})}),et&&jsxRuntimeExports.jsx("a",{className:classes$1.anchor,href:"#"+nt,children:rt})]})}}const anchorCls=mergeStyles$1({flex:"0 0 3rem",paddingLeft:"0.5rem",color:"var(--colorLink)",opacity:0,transition:"color 0.2s ease-in-out, opacity 0.2s ease-in-out",userSelect:"none",textDecoration:"none","> svg":{overflow:"hidden",display:"inline-block",verticalAlign:"middle",fill:"currentColor"}}),classes$1=mergeStyleSets({heading:{display:"flex",alignItems:"center",justifyContent:"flex-start",padding:"0px",margin:"0px 0px 1.25em 0px",marginBottom:"1em",lineHeight:"1.25",fontFamily:"var(--fontFamilyHeading)",color:"var(--colorHeading)",[`&:active .${anchorCls}`]:{opacity:.8,color:"var(--colorLinkActive)"},[`&&:hover .${anchorCls}`]:{opacity:.8,color:"var(--colorLinkHover)"}},anchor:anchorCls,content:{flex:"0 1 auto",minWidth:0,margin:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"pre-wrap",lineHeight:"1.7"},h1:{padding:"0.3rem 0",borderBottom:"1px solid var(--colorBorderHeading)",fontSize:"2rem",fontStyle:"normal",fontWeight:500},h2:{padding:"0.3rem 0",borderBottom:"1px solid var(--colorBorderHeading)",fontSize:"1.5rem",fontStyle:"normal",fontWeight:500,marginBottom:"0.875rem"},h3:{fontSize:"1.25rem",fontStyle:"normal",fontWeight:500},h4:{fontSize:"1rem",fontStyle:"normal",fontWeight:500},h5:{fontSize:"0.875rem",fontStyle:"normal",fontWeight:500},h6:{fontSize:"0.85rem",fontStyle:"normal",fontWeight:500}});class ImageRendererInner extends React.Component{shouldComponentUpdate(_e){const et=this.props;return et.src!==_e.src||et.alt!==_e.alt||et.title!==_e.title||et.srcSet!==_e.srcSet||et.sizes!==_e.sizes||et.loading!==_e.loading||et.className!==_e.className}render(){const{src:_e,alt:et,title:tt,srcSet:rt,sizes:nt,loading:ot,className:it}=this.props;return jsxRuntimeExports.jsxs("figure",{className:`${it} ${cls$7}`,children:[jsxRuntimeExports.jsx("img",{alt:et,src:_e,title:tt,srcSet:rt,sizes:nt,loading:ot}),tt&&jsxRuntimeExports.jsx("figcaption",{children:tt})]})}}const cls$7=mergeStyles$1({boxSizing:"border-box",maxWidth:"80%",display:"flex",flexDirection:"column",alignItems:"center",margin:0,"> img":{flex:"1 0 auto",boxSizing:"border-box",maxWidth:"100%",border:"1px solid var(--colorBorderImage)",boxShadow:"0 0 20px 1px rgba(126, 125, 150, 0.6)"},"> figcaption":{textAlign:"center",fontStyle:"italic",fontSize:"1em",color:"var(--colorImageTitle)"}}),ImageRenderer=j=>{const{url:_e,alt:et,title:tt,srcSet:rt,sizes:nt,loading:ot}=j;return jsxRuntimeExports.jsx(ImageRendererInner,{alt:et,src:_e,title:tt,srcSet:rt,sizes:nt,loading:ot,className:astClasses.image})},ImageReferenceRenderer=j=>{const{viewmodel:_e}=useNodeRendererContext(),et=useStateValue(_e.definitionMap$),{alt:tt,srcSet:rt,sizes:nt,loading:ot}=j,it=et[j.identifier],st=(it==null?void 0:it.url)??"",lt=it==null?void 0:it.title;return jsxRuntimeExports.jsx(ImageRendererInner,{alt:tt,src:st,title:lt,srcSet:rt,sizes:nt,loading:ot,className:astClasses.imageReference})};class InlineCodeRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.value!==_e.value}render(){return jsxRuntimeExports.jsx("code",{className:cls$6,children:this.props.value})}}const cls$6=mergeStyles$1(astClasses.inlineCode,{padding:"1px 4px",borderRadius:"4px",margin:0,background:"hsla(210deg, 15%, 60%, 0.15)",lineHeight:"1.375",color:"var(--colorInlineCode)",fontFamily:"var(--fontFamilyCode)",fontSize:"min(1rem, 18px)",fontWeight:500});class LinkRendererInner extends React.Component{shouldComponentUpdate(_e){const et=this.props;return et.url!==_e.url||et.title!==_e.title||et.childNodes!==_e.childNodes||et.className!==_e.className}render(){const{url:_e,title:et,childNodes:tt,className:rt}=this.props;return jsxRuntimeExports.jsx("a",{className:mergeStyles$1(cls$5,rt),href:_e,title:et,rel:"noopener, noreferrer",target:"_blank",children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:tt})})}}const cls$5=mergeStyles$1({padding:"0.2rem 0",color:"var(--colorLink)",textDecoration:"none",background:"linear-gradient(90deg, hsla(358deg, 100%, 62%, 0.8), hsla(048deg, 100%, 50%, 0.8), hsla(196deg, 100%, 53%, 0.8))",backgroundSize:"0 3px",backgroundRepeat:"no-repeat",backgroundPosition:"50% 100%",transition:"all 0.3s ease-in-out","&:active":{color:"var(--colorLinkActive)"},"&&:hover":{color:"var(--colorLinkHover)",backgroundSize:"100% 3px",backgroundPositionX:0},"&:visited":{color:"var(--colorLinkVisited)"}}),LinkRenderer=j=>{const{url:_e,title:et,children:tt}=j;return jsxRuntimeExports.jsx(LinkRendererInner,{url:_e,title:et,childNodes:tt,className:astClasses.link})},LinkReferenceRenderer=j=>{const{viewmodel:_e}=useNodeRendererContext(),tt=useStateValue(_e.definitionMap$)[j.identifier],rt=(tt==null?void 0:tt.url)??"",nt=tt==null?void 0:tt.title;return jsxRuntimeExports.jsx(LinkRendererInner,{url:rt,title:nt,childNodes:j.children,className:astClasses.linkReference})};class ListRenderer extends React.Component{shouldComponentUpdate(_e){const et=this.props;return et.ordered!==_e.ordered||et.orderType!==_e.orderType||et.start!==_e.start||et.children!==_e.children}render(){const{ordered:_e,orderType:et,start:tt,children:rt}=this.props;return _e?jsxRuntimeExports.jsx("ol",{className:cls$4,type:et,start:tt,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:rt})}):jsxRuntimeExports.jsx("ul",{className:cls$4,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:rt})})}}const cls$4=mergeStyles$1(astClasses.list,{padding:"0px",margin:"0 0 1em 2em",lineHeight:"2","> :last-child":{marginBottom:"0px"}});class ListItemRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("li",{className:cls$3,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$3=mergeStyles$1(astClasses.listItem,{position:"relative",padding:0,margin:0,"> :last-child":{marginBottom:0}});class ParagraphRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return _e.some(tt=>tt.type===ImageType$1||tt.type===ImageReferenceType)?jsxRuntimeExports.jsx("div",{className:paragraphDisplayCls,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})}):jsxRuntimeExports.jsx("p",{className:paragraphCls,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const paragraphCls=mergeStyles$1(astClasses.paragraph,{overflow:"hidden",padding:0,margin:"0px 0px 1.25em 0px",marginBottom:"1em",lineHeight:"1.8",hyphens:"auto",wordBreak:"normal",letterSpacing:"1px",overflowWrap:"break-word","> :last-child":{marginBottom:0}}),paragraphDisplayCls=mergeStyles$1(paragraphCls,{display:"flex",alignItems:"center",justifyContent:"center",padding:"1rem 0",margin:0});class StrongRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("strong",{className:cls$2,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$2=mergeStyles$1(astClasses.strong,{fontWeight:600});class TableRenderer extends React.Component{shouldComponentUpdate(_e){const et=this.props;return!isEqual$2(et.columns,_e.columns)||!isEqual$2(et.children,_e.children)}render(){const{columns:_e,children:et}=this.props,tt=_e.map(ot=>ot.align??void 0),[rt,...nt]=et.map(ot=>ot.children.map((it,st)=>jsxRuntimeExports.jsx(NodesRenderer,{nodes:it.children},st)));return jsxRuntimeExports.jsxs("table",{className:cls$1,children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsx("tr",{children:rt.map((ot,it)=>jsxRuntimeExports.jsx(Th,{align:tt[it],children:ot},it))})}),jsxRuntimeExports.jsx("tbody",{children:nt.map((ot,it)=>jsxRuntimeExports.jsx("tr",{children:ot.map((st,lt)=>jsxRuntimeExports.jsx("td",{align:tt[lt],children:st},lt))},it))})]})}}class Th extends React.Component{constructor(_e){super(_e),this.ref={current:null}}shouldComponentUpdate(_e){const et=this.props;return et.align!==_e.align||et.children!==_e.children}render(){const{align:_e,children:et}=this.props;return jsxRuntimeExports.jsx("th",{ref:this.ref,align:_e,children:et})}componentDidMount(){const _e=this.ref.current;_e&&_e.setAttribute("title",_e.innerText)}componentDidUpdate(){const _e=this.ref.current;_e&&_e.setAttribute("title",_e.innerText)}}const cls$1=mergeStyles$1(astClasses.table,{display:"block",overflow:"auto",width:"max-content",maxWidth:"100%",padding:0,borderCollapse:"collapse",borderRadius:"6px",borderSpacing:"0px",border:"1px solid var(--colorBorderTable)",margin:"0 auto 1.25em",lineHeight:"1.6","> thead":{backgroundColor:"var(--colorBgTableHead)",borderBottom:"1px solid #f0f0f0",th:{padding:"0.5rem 1rem",borderLeft:"1px solid var(--colorBorderTable)",wordBreak:"normal",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis","&:first-child":{borderLeft:"none"}}},"> tbody":{tr:{borderTop:"1px solid var(--colorBorderTable)",backgroundColor:"var(--colorBgTableOddRow)"},"tr:nth-child(2n)":{backgroundColor:"var(--colorBgTableEvenRow)"},td:{padding:"0.5rem 1rem",borderLeft:"1px solid var(--colorBorderTable)","&:first-child":{borderLeft:"none"}}}});class TextRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.value!==_e.value}render(){return jsxRuntimeExports.jsx(React.Fragment,{children:this.props.value})}}class ThematicBreakRenderer extends React.Component{shouldComponentUpdate(){return!1}render(){return jsxRuntimeExports.jsx("hr",{className:cls})}}const cls=mergeStyles$1(astClasses.thematicBreak,{boxSizing:"content-box",display:"block",height:0,width:"100%",padding:0,border:0,borderBottom:"1px solid #dadada",outline:0,margin:"1.5em 0px"});function buildNodeRendererMap(j){if(j==null)return defaultNodeRendererMap;let _e=!1;const et={};for(const[tt,rt]of Object.entries(j))rt&&rt!==defaultNodeRendererMap[tt]&&(_e=!0,et[tt]=rt);return _e?{...defaultNodeRendererMap,...et}:defaultNodeRendererMap}const defaultNodeRendererMap={[BlockquoteType]:BlockquoteRenderer,[BreakType]:BreakRenderer,[CodeType]:CodeRenderer,[DefinitionType]:()=>null,[DeleteType]:DeleteRenderer,[EmphasisType]:EmphasisRenderer,[HeadingType]:HeadingRenderer,[HtmlType]:()=>null,[ImageType$1]:ImageRenderer,[ImageReferenceType]:ImageReferenceRenderer,[InlineCodeType]:InlineCodeRenderer,[LinkType]:LinkRenderer,[LinkReferenceType]:LinkReferenceRenderer,[ListType]:ListRenderer,[ListItemType]:ListItemRenderer,[ParagraphType$1]:ParagraphRenderer,[StrongType]:StrongRenderer,[TableType]:TableRenderer,[TextType$1]:TextRenderer,[ThematicBreakType]:ThematicBreakRenderer,_fallback:function j(_e,et){return console.warn(`Cannot find render for \`${_e.type}\` type node with key \`${et}\`:`,_e),null}},ReactMarkdown=j=>{const{presetDefinitionMap:_e,customizedRendererMap:et,preferCodeWrap:tt=!1,showCodeLineno:rt=!0,text:nt,themeScheme:ot="lighten",className:it,style:st}=j,lt=React.useMemo(()=>parser.parse(nt),[nt]),ut=React.useMemo(()=>calcDefinitionMap(lt).definitionMap,[lt]),[ct]=React.useState(()=>new ReactMarkdownViewModel({definitionMap:{..._e,...ut},rendererMap:buildNodeRendererMap(et),preferCodeWrap:tt,showCodeLineno:rt,themeScheme:ot})),dt=React.useMemo(()=>({viewmodel:ct}),[ct]),ft=mergeClasses(rootCls,ot==="darken"&&astClasses.rootDarken,it);return React.useEffect(()=>{ct.preferCodeWrap$.next(tt)},[ct,tt]),React.useEffect(()=>{ct.showCodeLineno$.next(rt)},[ct,rt]),React.useEffect(()=>{ct.themeScheme$.next(ot)},[ct,ot]),jsxRuntimeExports.jsx("div",{className:ft,style:st,children:jsxRuntimeExports.jsx(NodeRendererContextType.Provider,{value:dt,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:lt.children})})})},rootCls=mergeStyles$1(astClasses.root,{wordBreak:"break-all",userSelect:"unset",[astClasses.listItem]:{[`> ${astClasses.list}`]:{marginLeft:"1.2em"}},"> :last-child":{marginBottom:0}}),BasicViewer=({styles:j,showEmpty:_e,emptyRender:et,previewRender:tt,rawRender:rt,headerRender:nt})=>{const ot=useClasses$n(),[it,st]=reactExports.useState("preview"),lt=reactExports.useCallback(ct=>{st(ct)},[]),ut=useLocStrings();return _e?et?et():jsxRuntimeExports.jsx(MessageBar,{intent:"info",children:ut["No content"]}):jsxRuntimeExports.jsxs("div",{className:j==null?void 0:j.root,children:[rt&&jsxRuntimeExports.jsxs("div",{className:ot.header,children:[jsxRuntimeExports.jsx("div",{style:{flex:1},children:nt==null?void 0:nt()}),jsxRuntimeExports.jsx("div",{className:ot.groupWrapper,children:jsxRuntimeExports.jsxs("div",{className:ot.buttonGroup,children:[jsxRuntimeExports.jsx(Button$2,{value:"preview",size:"small",appearance:it==="preview"?void 0:"transparent",onClick:()=>lt("preview"),children:ut.Preview}),jsxRuntimeExports.jsx(Button$2,{value:"raw",size:"small",appearance:it==="raw"?void 0:"transparent",onClick:()=>lt("raw"),children:ut.Raw})]})})]}),it==="preview"||!rt?tt():null,it==="raw"&&rt?rt():null]})},useClasses$n=makeStyles({header:{display:"flex",alignItems:"center",marginBottom:"12px"},groupWrapper:{display:"flex",flexDirection:"row-reverse"},buttonGroup:{display:"inline-flex",...shorthands.borderRadius("5px"),backgroundColor:tokens.colorNeutralBackground5}}),MarkdownViewer=({content:j})=>{const _e=useStyles$f();return jsxRuntimeExports.jsx(BasicViewer,{styles:_e,showEmpty:!j,previewRender:()=>jsxRuntimeExports.jsx(ReactMarkdown,{text:`${j}`}),rawRender:()=>jsxRuntimeExports.jsx("div",{style:{marginTop:6},children:`${j}`})})},useStyles$f=makeStyles({root:{wordBreak:"break-all",whiteSpace:"break-spaces",...shorthands.overflow("auto")}}),EmbeddingNodeInfo=()=>{var rt,nt,ot;const j=useSelectedSpan(),_e=((rt=j==null?void 0:j.attributes)==null?void 0:rt["llm.response.model"])??((nt=j==null?void 0:j.attributes)==null?void 0:nt["embedding.model"]),et=JSON.parse(((ot=j==null?void 0:j.attributes)==null?void 0:ot["embedding.embeddings"])??"[]")??[],tt=useLocStrings();return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("span",{children:_e})}),et.map((it,st)=>jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("i",{children:tt.Embedded_text})}),it["embedding.text"]?jsxRuntimeExports.jsx(MarkdownViewer,{content:it["embedding.text"]}):null]},st))]})},CollapsibleTextArea=({children:j})=>{const[_e,et]=reactExports.useState(!0),tt=useClasses$m();return jsxRuntimeExports.jsxs("div",{className:tt.wrapper,children:[jsxRuntimeExports.jsx(Button$2,{icon:_e?jsxRuntimeExports.jsx(TextWrapOff16Regular,{}):jsxRuntimeExports.jsx(TextWrap16Regular,{}),onClick:()=>et(!_e),size:"small"}),jsxRuntimeExports.jsx("pre",{className:`${_e&&tt.wrap} ${tt.pre}`,children:j})]})},useClasses$m=makeStyles({wrapper:{width:"95%",height:"100%",paddingLeft:tokens.spacingHorizontalM,color:tokens.colorNeutralForeground1,display:"flex",flexDirection:"column"},wrap:{wordBreak:"break-all",whiteSpace:"pre-wrap"},pre:{marginTop:0}}),ErrorsTab=()=>{var st;const j=useClasses$l(),_e=useSelectedSpan(),et=(_e==null?void 0:_e.events)??[],[tt,rt]=reactExports.useState((st=et[0])==null?void 0:st.name),nt=et.find(lt=>lt.name===tt),ot=useIsDark(),it=useLocStrings();return jsxRuntimeExports.jsx(Card,{style:{height:"100%"},children:et.length===0?jsxRuntimeExports.jsxs("div",{className:j.emptyWrapper,children:[jsxRuntimeExports.jsx(ShieldCheckmark24Regular,{}),jsxRuntimeExports.jsxs(Text$2,{className:j.emptyText,children:[" ",it.No_Events_found]})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx(TabList,{selectedValue:tt,onTabSelect:(lt,ut)=>{rt(ut.value)},children:et.map(lt=>jsxRuntimeExports.jsx(Tab$1,{value:lt.name,children:lt.name},lt.name))})}),jsxRuntimeExports.jsx("div",{className:j.wrapper,children:nt&&jsxRuntimeExports.jsx(JsonView,{src:nt,collapseStringsAfterLength:1e4,theme:"vscode",dark:ot,customizeNode:({node:lt,indexOrName:ut})=>{if(ut==="exception.message"||ut==="exception.stacktrace")return jsxRuntimeExports.jsx(CollapsibleTextArea,{children:lt})}})})]})})},useClasses$l=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%",...shorthands.overflow("auto"),...shorthands.gap("8px")},grid:{flexGrow:1},emptyWrapper:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"},emptyText:{paddingTop:tokens.spacingVerticalM},exceptionText:{width:"100%",paddingLeft:tokens.spacingHorizontalM,color:tokens.colorNeutralForeground1,...shorthands.margin("0")}}),useEvaluationTracesListRow=j=>{const[_e,et]=reactExports.useState([]),tt=reactExports.useMemo(()=>{const it={};return j.forEach(st=>{var lt;(lt=st==null?void 0:st.context)!=null&<.span_id&&(it[st.context.span_id]={...st,children:[],depth:0})}),j.forEach(st=>{var lt;if(st.parent_id&&((lt=st==null?void 0:st.context)!=null&<.span_id)&&st.parent_id!==""){const ut=it[st.parent_id],ct=it[st.context.span_id];ct.depth=ut.depth+1,ut.children.push(ct)}}),Object.values(it).filter(st=>!st.parent_id)},[j]),rt=reactExports.useCallback(it=>{if(_e.includes(it)){const lt=findRowById(it,tt);if(!lt)return;const ct=(lt.children?findAllDescendants(lt):[]).map(ft=>{var pt;return(pt=ft==null?void 0:ft.context)==null?void 0:pt.span_id}).filter(ft=>ft!==void 0),dt=_e.filter(ft=>ft!==it).filter(ft=>!ct.includes(ft));et(dt)}else et([..._e,it])},[_e,tt]),nt=reactExports.useMemo(()=>{const it=st=>st.reduce((lt,ut)=>{var ft,pt;const dt=((ft=ut==null?void 0:ut.context)!=null&&ft.span_id?_e.includes((pt=ut==null?void 0:ut.context)==null?void 0:pt.span_id):!1)?it(ut.children):[];return[...lt,ut,...dt]},[]);return it(tt)},[_e,tt]),ot=reactExports.useCallback(it=>it?_e.includes(it):!1,[_e]);return{rows:nt,toggleSubRows:rt,isRowExpanded:ot}},findAllDescendants=j=>{let _e=[...j.children];return j.children.forEach(et=>{_e=[..._e,...findAllDescendants(et)]}),_e},findRowById=(j,_e)=>{var et;for(const tt of _e){if(((et=tt==null?void 0:tt.context)==null?void 0:et.span_id)===j)return tt;const rt=findRowById(j,tt.children);if(rt)return rt}return null},CellExpander=({isExpanded:j=!1,onToggle:_e})=>{const et=useClasses$k();return jsxRuntimeExports.jsx("div",{className:et.wrapper,onClick:()=>_e&&_e(!j),children:j?jsxRuntimeExports.jsx(ChevronDown16Filled,{}):jsxRuntimeExports.jsx(ChevronRight16Filled,{})})},useClasses$k=makeStyles({wrapper:{cursor:"pointer",display:"flex"}}),UNDEFINED_VALUE_PLACEHOLDER="N/A",TRACE_POLLING_GAP=6e4,SPAN_POLLING_GAP=3e4,LOCAL_URL_PREFIX="";function KindText({kind:j}){return jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",size:"medium",children:j||UNDEFINED_VALUE_PLACEHOLDER})}function formatDecimal(j){return Math.abs(j=Math.round(j))>=1e21?j.toLocaleString("en").replace(/,/g,""):j.toString(10)}function formatDecimalParts(j,_e){if((et=(j=_e?j.toExponential(_e-1):j.toExponential()).indexOf("e"))<0)return null;var et,tt=j.slice(0,et);return[tt.length>1?tt[0]+tt.slice(2):tt,+j.slice(et+1)]}function exponent(j){return j=formatDecimalParts(Math.abs(j)),j?j[1]:NaN}function formatGroup(j,_e){return function(et,tt){for(var rt=et.length,nt=[],ot=0,it=j[0],st=0;rt>0&&it>0&&(st+it+1>tt&&(it=Math.max(1,tt-st)),nt.push(et.substring(rt-=it,rt+it)),!((st+=it+1)>tt));)it=j[ot=(ot+1)%j.length];return nt.reverse().join(_e)}}function formatNumerals(j){return function(_e){return _e.replace(/[0-9]/g,function(et){return j[+et]})}}var re$1=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function formatSpecifier(j){if(!(_e=re$1.exec(j)))throw new Error("invalid format: "+j);var _e;return new FormatSpecifier({fill:_e[1],align:_e[2],sign:_e[3],symbol:_e[4],zero:_e[5],width:_e[6],comma:_e[7],precision:_e[8]&&_e[8].slice(1),trim:_e[9],type:_e[10]})}formatSpecifier.prototype=FormatSpecifier.prototype;function FormatSpecifier(j){this.fill=j.fill===void 0?" ":j.fill+"",this.align=j.align===void 0?">":j.align+"",this.sign=j.sign===void 0?"-":j.sign+"",this.symbol=j.symbol===void 0?"":j.symbol+"",this.zero=!!j.zero,this.width=j.width===void 0?void 0:+j.width,this.comma=!!j.comma,this.precision=j.precision===void 0?void 0:+j.precision,this.trim=!!j.trim,this.type=j.type===void 0?"":j.type+""}FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function formatTrim(j){e:for(var _e=j.length,et=1,tt=-1,rt;et<_e;++et)switch(j[et]){case".":tt=rt=et;break;case"0":tt===0&&(tt=et),rt=et;break;default:if(!+j[et])break e;tt>0&&(tt=0);break}return tt>0?j.slice(0,tt)+j.slice(rt+1):j}var prefixExponent;function formatPrefixAuto(j,_e){var et=formatDecimalParts(j,_e);if(!et)return j+"";var tt=et[0],rt=et[1],nt=rt-(prefixExponent=Math.max(-8,Math.min(8,Math.floor(rt/3)))*3)+1,ot=tt.length;return nt===ot?tt:nt>ot?tt+new Array(nt-ot+1).join("0"):nt>0?tt.slice(0,nt)+"."+tt.slice(nt):"0."+new Array(1-nt).join("0")+formatDecimalParts(j,Math.max(0,_e+nt-1))[0]}function formatRounded(j,_e){var et=formatDecimalParts(j,_e);if(!et)return j+"";var tt=et[0],rt=et[1];return rt<0?"0."+new Array(-rt).join("0")+tt:tt.length>rt+1?tt.slice(0,rt+1)+"."+tt.slice(rt+1):tt+new Array(rt-tt.length+2).join("0")}const formatTypes={"%":(j,_e)=>(j*100).toFixed(_e),b:j=>Math.round(j).toString(2),c:j=>j+"",d:formatDecimal,e:(j,_e)=>j.toExponential(_e),f:(j,_e)=>j.toFixed(_e),g:(j,_e)=>j.toPrecision(_e),o:j=>Math.round(j).toString(8),p:(j,_e)=>formatRounded(j*100,_e),r:formatRounded,s:formatPrefixAuto,X:j=>Math.round(j).toString(16).toUpperCase(),x:j=>Math.round(j).toString(16)};function identity$4(j){return j}var map$2=Array.prototype.map,prefixes=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function formatLocale$1(j){var _e=j.grouping===void 0||j.thousands===void 0?identity$4:formatGroup(map$2.call(j.grouping,Number),j.thousands+""),et=j.currency===void 0?"":j.currency[0]+"",tt=j.currency===void 0?"":j.currency[1]+"",rt=j.decimal===void 0?".":j.decimal+"",nt=j.numerals===void 0?identity$4:formatNumerals(map$2.call(j.numerals,String)),ot=j.percent===void 0?"%":j.percent+"",it=j.minus===void 0?"−":j.minus+"",st=j.nan===void 0?"NaN":j.nan+"";function lt(ct){ct=formatSpecifier(ct);var dt=ct.fill,ft=ct.align,pt=ct.sign,gt=ct.symbol,vt=ct.zero,bt=ct.width,_t=ct.comma,xt=ct.precision,yt=ct.trim,Et=ct.type;Et==="n"?(_t=!0,Et="g"):formatTypes[Et]||(xt===void 0&&(xt=12),yt=!0,Et="g"),(vt||dt==="0"&&ft==="=")&&(vt=!0,dt="0",ft="=");var St=gt==="$"?et:gt==="#"&&/[boxX]/.test(Et)?"0"+Et.toLowerCase():"",$t=gt==="$"?tt:/[%p]/.test(Et)?ot:"",At=formatTypes[Et],wt=/[defgprs%]/.test(Et);xt=xt===void 0?6:/[gprs]/.test(Et)?Math.max(1,Math.min(21,xt)):Math.max(0,Math.min(20,xt));function Ct(It){var Ot=St,Nt=$t,Pt,Mt,Rt;if(Et==="c")Nt=At(It)+Nt,It="";else{It=+It;var Lt=It<0||1/It<0;if(It=isNaN(It)?st:At(Math.abs(It),xt),yt&&(It=formatTrim(It)),Lt&&+It==0&&pt!=="+"&&(Lt=!1),Ot=(Lt?pt==="("?pt:it:pt==="-"||pt==="("?"":pt)+Ot,Nt=(Et==="s"?prefixes[8+prefixExponent/3]:"")+Nt+(Lt&&pt==="("?")":""),wt){for(Pt=-1,Mt=It.length;++PtRt||Rt>57){Nt=(Rt===46?rt+It.slice(Pt+1):It.slice(Pt))+Nt,It=It.slice(0,Pt);break}}}_t&&!vt&&(It=_e(It,1/0));var jt=Ot.length+It.length+Nt.length,Gt=jt>1)+Ot+It+Nt+Gt.slice(jt);break;default:It=Gt+Ot+It+Nt;break}return nt(It)}return Ct.toString=function(){return ct+""},Ct}function ut(ct,dt){var ft=lt((ct=formatSpecifier(ct),ct.type="f",ct)),pt=Math.max(-8,Math.min(8,Math.floor(exponent(dt)/3)))*3,gt=Math.pow(10,-pt),vt=prefixes[8+pt/3];return function(bt){return ft(gt*bt)+vt}}return{format:lt,formatPrefix:ut}}var locale$1,format$1,formatPrefix;defaultLocale$1({thousands:",",grouping:[3],currency:["$",""]});function defaultLocale$1(j){return locale$1=formatLocale$1(j),format$1=locale$1.format,formatPrefix=locale$1.formatPrefix,locale$1}function precisionFixed(j){return Math.max(0,-exponent(Math.abs(j)))}function precisionPrefix(j,_e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(exponent(_e)/3)))*3-exponent(Math.abs(j)))}function precisionRound(j,_e){return j=Math.abs(j),_e=Math.abs(_e)-j,Math.max(0,exponent(_e)-exponent(j))+1}function formatInt(j){return Math.abs(j)<1e6?format$1(",")(j):format$1("0.2s")(j)}function formatFloat(j){const _e=Math.abs(j);return _e===0?"0.00":_e<.01?format$1(".2e")(j):_e<1e3?format$1("0.2f")(j):format$1("0.2s")(j)}function formatNumber(j){return Number.isInteger(j)?formatInt(j):formatFloat(j)}function createNumberFormatter(j){return _e=>typeof _e!="number"?"--":j(_e)}const intFormatter=createNumberFormatter(formatInt),floatFormatter=createNumberFormatter(formatFloat),numberFormatter=createNumberFormatter(formatNumber),LatencyText=({startTimeISOString:j,endTimeISOString:_e,textSize:et,tipTextSize:tt})=>{const rt=useClasses$j(),nt=j?new Date(j):void 0,ot=_e?new Date(_e):void 0,it=nt&&ot?ot.getTime()-nt.getTime():void 0,st=reactExports.useMemo(()=>it===void 0?"N/A":it===0?"0 ms":it<10?formatFloat(it)+"ms":formatFloat(it/1e3)+"s",[it]);return jsxRuntimeExports.jsx(Tooltip$1,{content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Text$2,{size:tt,weight:"bold",block:!0,children:"Start Time"}),jsxRuntimeExports.jsx(Text$2,{size:tt,block:!0,children:timeFormat$1(j)}),jsxRuntimeExports.jsx(Text$2,{size:tt,weight:"bold",block:!0,children:"End Time"}),jsxRuntimeExports.jsx(Text$2,{size:tt,block:!0,children:timeFormat$1(_e)})]}),relationship:"label",children:jsxRuntimeExports.jsxs("div",{className:rt.wrapper,children:[jsxRuntimeExports.jsx(Clock20Regular,{}),jsxRuntimeExports.jsx(Text$2,{size:et,children:st})]})})},useClasses$j=makeStyles({wrapper:{display:"inline-flex",flexDirection:"row",alignItems:"center","> svg":{marginRight:"5px"}}});function StatusText({statusCode:j,showText:_e=!1,textSize:et,tooltipContent:tt}){const rt=useClasses$i(),nt=useLocStrings();j=j||nt.unknown;const[ot,it]=reactExports.useMemo(()=>{switch(j==null?void 0:j.toLowerCase()){case"ok":case"completed":return[jsxRuntimeExports.jsx(CheckmarkCircle20Regular,{},"ok"),tokens.colorPaletteGreenForeground1];case"error":return[jsxRuntimeExports.jsx(DismissCircle20Regular,{},"error"),tokens.colorPaletteRedForeground1];case"unset":return[jsxRuntimeExports.jsx(ErrorCircle20Regular,{},"unset"),tokens.colorPaletteYellowForeground1];case"running":return[jsxRuntimeExports.jsx(ArrowClockwiseDashes20Regular,{className:rt.rotate},"running"),tokens.colorPaletteYellowForeground1];default:return[jsxRuntimeExports.jsx(QuestionCircle20Regular,{},"unknown"),tokens.colorPaletteYellowForeground1]}},[rt.rotate,j]);return jsxRuntimeExports.jsx(Tooltip$1,{content:tt??j??"",relationship:"label",children:jsxRuntimeExports.jsxs("div",{className:rt.wrapper,style:{color:it},children:[ot,_e&&jsxRuntimeExports.jsx(Text$2,{size:et,children:j})]})})}const useClasses$i=makeStyles({wrapper:{display:"inline-flex",flexDirection:"row",alignItems:"center",justifyContent:"center","> svg":{marginRight:"5px"}},rotate:{animationDuration:"2s",animationTimingFunction:"linear",animationIterationCount:"infinite",animationName:{from:{transform:"rotate(0deg)"},to:{transform:"rotate(360deg)"}}}});function TimeText({time:j}){const _e=timeFormat$1(j);return jsxRuntimeExports.jsx("time",{children:_e})}function TokenText({token:j,info:_e}){const et=useClasses$h(),tt=typeof j=="number"?intFormatter(j):j;return jsxRuntimeExports.jsxs("div",{className:et.wrapper,children:[jsxRuntimeExports.jsx(NumberCircle020Regular,{}),_e?jsxRuntimeExports.jsx(Tooltip$1,{content:_e,relationship:"description",children:jsxRuntimeExports.jsx("div",{style:{lineHeight:"30px",marginLeft:-24,paddingLeft:24},children:tt})}):jsxRuntimeExports.jsx(Text$2,{children:tt})]})}const useClasses$h=makeStyles({wrapper:{display:"inline-flex",flexDirection:"row",alignItems:"center","> svg":{marginRight:"5px"}}}),CellWrapper=({children:j})=>{const _e=useClasses$g();return jsxRuntimeExports.jsx("div",{className:_e.cellWrapper,children:j})},TextCellWrapper=({children:j})=>{const _e=useClasses$g();return jsxRuntimeExports.jsx("div",{className:_e.textCellWrapper,children:jsxRuntimeExports.jsx("p",{className:_e.textCellP,children:j})})},CellSkeleton=({height:j})=>{const _e=useClasses$g();return jsxRuntimeExports.jsx(Skeleton,{className:_e.textCellWrapper,children:jsxRuntimeExports.jsx(SkeletonItem,{style:{height:`${j??20}px`}})})},useClasses$g=makeStyles({cellWrapper:{display:"flex",flexDirection:"row",alignItems:"center",height:"100%"},textCellWrapper:{display:"flex",flexDirection:"row",alignItems:"center",height:"100%",width:"100%"},textCellP:{wordWrap:"break-word",maxWidth:"100%",lineHeight:tokens.lineHeightBase200,fontSize:tokens.fontSizeBase300,maxHeight:"100%",whiteSpace:"normal",...shorthands.padding(tokens.spacingVerticalS,tokens.spacingHorizontalXS)}}),isValidJson=j=>{if(typeof j=="string")return!1;try{return JSON.stringify(j),!0}catch{return!1}},TraceListJsonCell=({jsonObject:j,isViewDetailEnabled:_e=!1})=>{const et=isValidJson(j);return jsxRuntimeExports.jsx(CellWrapper,{children:et?jsxRuntimeExports.jsx(TraceListObjectCell,{object:j,isViewDetailEnabled:_e}):jsxRuntimeExports.jsx(TextCellWrapper,{children:formatText(String(j))})})},TraceListObjectCell=({object:j,isViewDetailEnabled:_e})=>{const et=useIsDark();return _e?jsxRuntimeExports.jsxs(Dialog,{children:[jsxRuntimeExports.jsx(DialogTrigger,{children:jsxRuntimeExports.jsx("div",{style:{overflow:"hidden",height:"100%",width:"100%",marginTop:"12px",lineHeight:"16px"},children:jsxRuntimeExports.jsx(JsonView,{src:j,enableClipboard:!1,collapsed:1,dark:et,theme:"vscode"})})}),jsxRuntimeExports.jsx(DialogSurface,{children:jsxRuntimeExports.jsx("div",{style:{height:"800px",width:"800ppx",marginTop:"12px",lineHeight:"16px",overflow:"auto"},children:jsxRuntimeExports.jsx(JsonView,{src:j,enableClipboard:!0,collapseStringsAfterLength:200,dark:et,theme:"vscode"})})})]}):jsxRuntimeExports.jsx("div",{style:{overflow:"hidden",height:"100%",width:"100%",marginTop:"12px",lineHeight:"16px"},children:jsxRuntimeExports.jsx(JsonView,{src:j,enableClipboard:!1,collapseStringsAfterLength:50,collapsed:1,dark:et,theme:"vscode"})})},MAX_LENGTH=80;function formatText(j){return j.length>MAX_LENGTH?`${j.slice(0,MAX_LENGTH)}...`:j}const useClasses$f=makeStyles({grid:{},row:{cursor:"pointer"},nameCell:{color:tokens.colorBrandForeground1,fontWeight:tokens.fontWeightSemibold,":hover":{...shorthands.textDecoration("underline")}},kindCell:{display:"flex",alignItems:"center",justifyContent:"flex-start",height:"100%",...shorthands.gap("4px")}}),EvaluationTracesList=({evaluationSpans:j,className:_e})=>{const et=useClasses$f(),tt=useIsDark(),{rows:rt,toggleSubRows:nt,isRowExpanded:ot}=useEvaluationTracesListRow(j),it=useLocStrings();return jsxRuntimeExports.jsx(DataGrid$1$1,{className:`${mergeStyles$1(et.grid,_e)} ${tt?"rdg-dark":"rdg-light"}`,rowClass:()=>et.row,columns:[{key:"kind",name:it.Kind,minWidth:150,maxWidth:300,renderCell:({row:st})=>{var ut,ct,dt;const lt=((ut=st==null?void 0:st.children)==null?void 0:ut.length)>0;return jsxRuntimeExports.jsxs("div",{className:et.kindCell,style:{paddingLeft:st.depth*16+(lt?0:20)},children:[lt&&jsxRuntimeExports.jsx(CellExpander,{isExpanded:ot((ct=st==null?void 0:st.context)==null?void 0:ct.span_id),onToggle:()=>{var ft,pt;(ft=st==null?void 0:st.context)!=null&&ft.span_id&&nt((pt=st==null?void 0:st.context)==null?void 0:pt.span_id)}}),jsxRuntimeExports.jsx(KindText,{kind:(dt=st.attributes)==null?void 0:dt.span_type})]})}},{key:"name",name:it.Name,minWidth:150,maxWidth:300,renderCell:({row:st})=>jsxRuntimeExports.jsx(Tooltip$1,{content:st.name??"",relationship:"label",children:jsxRuntimeExports.jsx("span",{className:et.nameCell,title:st.name,children:st.name})})},{key:"input",name:it.Input,minWidth:200,renderCell:({row:st})=>{var lt;return jsxRuntimeExports.jsx(TraceListJsonCell,{isViewDetailEnabled:!0,jsonObject:JSON.parse(((lt=st.attributes)==null?void 0:lt.inputs)??"{}")})}},{key:"output",name:it.Output,minWidth:200,renderCell:({row:st})=>{var lt;return jsxRuntimeExports.jsx(TraceListJsonCell,{isViewDetailEnabled:!0,jsonObject:JSON.parse(((lt=st.attributes)==null?void 0:lt.output)??"{}")})}},{key:"start_time",name:it.Start_time,minWidth:150,renderCell:({row:st})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:st.start_time})})},{key:"end_time",name:it.End_time,minWidth:150,renderCell:({row:st})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:st.end_time})})},{key:"latency",name:it.Latency,minWidth:120,renderCell:({row:st})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:st.start_time,endTimeISOString:st.end_time})})},{key:"total_tokens",name:it.Total_tokens,minWidth:120,renderCell:({row:st})=>{var lt;return jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TokenText,{token:Number.parseInt(((lt=st.attributes)==null?void 0:lt["__computed__.cumulative_token_count.total"])??"0")})})}},{key:"status",name:it.Status,minWidth:120,renderCell:({row:st})=>{var lt;return jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(StatusText,{statusCode:(lt=st.status)==null?void 0:lt.status_code})})}}],rows:rt,headerRowHeight:26,rowHeight:80,defaultColumnOptions:{resizable:!0}})},MetricTag=({tag:j})=>{const _e=useClasses$e(),et=reactExports.useMemo(()=>typeof j.value=="number"?formatNumber(j.value):j.value,[j.value]);return jsxRuntimeExports.jsxs(Badge$2,{className:_e.wrapper,size:"medium",shape:"rounded",appearance:"outline",children:[jsxRuntimeExports.jsxs("span",{className:_e.name,children:[j.name," "]}),jsxRuntimeExports.jsx("span",{className:_e.data,children:et})]})},useClasses$e=makeStyles({wrapper:{display:"inline-flex",fontSize:"12px",...shorthands.padding("0px","8px","1px"),...shorthands.borderColor(tokens.colorPaletteGreenBorder2),...shorthands.gap("0.5rem")},name:{color:tokens.colorPaletteGreenBorder2,fontWeight:tokens.fontWeightRegular},data:{color:tokens.colorNeutralForeground1,fontWeight:tokens.fontWeightRegular}}),EvaluationsTab=()=>{var st,lt,ut;const j=useClasses$d(),_e=useEvaluationSpansOfSelectedSpan(),[et,tt]=reactExports.useState((st=_e[0])==null?void 0:st.evaluationName),rt=((lt=_e.find(ct=>ct.evaluationName===et))==null?void 0:lt.evaluationTraces)??[],nt=useSelectedTrace(),ot=(nt==null?void 0:nt.evaluations)??{},it=((ut=ot[et??""])==null?void 0:ut.outputs)??{};return jsxRuntimeExports.jsxs(Card,{style:{height:"100%"},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx(TabList,{selectedValue:et,onTabSelect:(ct,dt)=>{tt(dt.value)},children:_e.map(ct=>jsxRuntimeExports.jsx(Tab$1,{value:ct.evaluationName,children:ct.evaluationName},ct.evaluationName))})}),jsxRuntimeExports.jsxs("div",{className:j.wrapper,children:[et&&ot[et]&&Object.keys(it).map(ct=>{const dt=it[ct];return dt?jsxRuntimeExports.jsx(MetricTag,{tag:{name:ct,value:dt}},ct):null}),jsxRuntimeExports.jsx(EvaluationTracesList,{evaluationSpans:rt,className:j.grid})]})]})},useClasses$d=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%",...shorthands.gap("8px")},grid:{flexGrow:1}}),useMessageCardClasses=makeStyles({card:{...shorthands.borderRadius("8px"),...shorthands.borderColor(tokens.colorNeutralStroke1),...shorthands.borderWidth("1px"),...shorthands.borderStyle("solid"),...shorthands.padding("16px"),...shorthands.margin("16px")}}),LLMNodeInvocationParametersTab=({invocationParameters:j})=>{const _e=useMessageCardClasses();return jsxRuntimeExports.jsx(Card,{className:_e.card,children:jsxRuntimeExports.jsx(JsonView,{src:j})})};var ChatMessageCategory=(j=>(j.System="system",j.Error="error",j.Chatbot="chatbot",j.User="user",j))(ChatMessageCategory||{}),ChatMessageType=(j=>(j.Message="message",j.SessionSplit="session-split",j))(ChatMessageType||{}),ChatboxLocator=(j=>(j.MessageBubble="chatbox-message-bubble",j.MessageContent="chatbox-message-content",j.MessageList="chatbox-message-list",j))(ChatboxLocator||{});const defaultLocStrings$1={CopyToClipboard:"Copy to clipboard",CopyToClipboard_Copying:"Copying...",CopyToClipboard_Copied:"Copied!",CopyToClipboard_Failed:"Failed!",Header_Clear:"Click to clear all chat histories",Header_Close:"Click to close chat box",Header_EnterFullScreen:"Click to enter full screen mode",Header_ExitFullScreen:"Click to exit full screen mode",Header_Title:"Chat",Input_Placeholder:"Input anything to test...",MessageError_HideDetail:"Hide Detail",MessageError_ShowDetail:"Show Detail",MessageStatus_TimeSpentDesc:"time spent",MessageStatus_TimeSpentDscCapitalized:"Time spent",MessageStatus_TimeSpent_Unit:"sec",MessageStatus_TokensDesc:"Total tokens for generating this",MessageStatus_TokensUint:"tokens",SessionSplit_Desc:"Your session start from here.",Tooltip_Bottom:"Only default variants will be used for chat, if you want to test variants please try bulk test. For chatbot and test app bot, it will only show the chat output.",Tooltip_TotalTokens:"Total tokens",Typing:"Generating chat output for you"};class ChatboxViewModel{constructor(_e){this.calcContentForCopy=ct=>this.calcContentForCopy$.getSnapshot()(ct),this.monitorInputContentChange=ct=>this.inputContentChangeTick$.subscribeStateChange(ct),this.notifyInputContentChange=()=>{this.inputContentChangeTick$.setState(ct=>ct+1)},this.sendMessage=ct=>{const dt=this.editorRef.current;if(!dt){console.log("!!!editorRef is not mounted.");return}const ft=ct??dt.getContent(),pt=this.sendMessage$.getSnapshot(),vt=this.makeUserMessage$.getSnapshot()(ft);this.messages$.setState(bt=>[...bt,vt]),dt.clear(),this.isOthersTyping$.next(!0),pt(ft,this,vt).then(bt=>{bt!==void 0&&this.messages$.setState(_t=>[..._t,bt])}).finally(()=>{this.isOthersTyping$.next(!1)})},this.setCalcContentForCopy=ct=>{this.calcContentForCopy$.next(ct)},this.setMakeUserMessage=ct=>{this.makeUserMessage$.next(ct)},this.setSendMessage=ct=>{this.sendMessage$.next(ct)},this.sessionSplit=ct=>{const dt={id:uuid_1.v4(),type:ChatMessageType.SessionSplit,history:[{category:ChatMessageCategory.System,from:"system",content:ct??"",timestamp:new Date().toISOString()}]};return this.messages$.setState(ft=>[...ft,dt]),dt};const{alias:et="",initialDisabled:tt=!1,initialMessages:rt=[],locStrings:nt=defaultLocStrings$1,calcContentForCopy:ot=ct=>typeof ct.content=="string"?ct.content:JSON.stringify(ct.content),makeUserMessage:it=ct=>({id:uuid_1.v4(),type:ChatMessageType.Message,history:[{category:ChatMessageCategory.User,from:this.alias$.getSnapshot(),timestamp:new Date().toISOString(),content:ct}]}),sendMessage:st=async ct=>({id:uuid_1.v4(),type:ChatMessageType.Message,history:[{category:ChatMessageCategory.Chatbot,from:"chatbot",timestamp:new Date().toISOString(),content:ct}]})}=_e;this.editorRef={current:null};const lt=new State(0),ut=Computed.fromObservables([lt],()=>{var ct;return(ct=this.editorRef.current)==null?void 0:ct.isEmpty()});this.alias$=new State(et),this.disabled$=new State(tt),this.inputContentChangeTick$=lt,this.isEditorEmpty$=ut,this.isOthersTyping$=new State(!1),this.locStrings$=new State(nt),this.messages$=new State(rt),this.calcContentForCopy$=new State(ot),this.makeUserMessage$=new State(it),this.sendMessage$=new State(st)}}const viewmodel=new ChatboxViewModel({sendMessage:()=>Promise.resolve({id:Date.now(),type:ChatMessageType.Message,history:[{category:ChatMessageCategory.System,from:"system",timestamp:new Date().toISOString(),content:"sendMessage not implemented!"}]})});React.createContext({viewmodel});function useEventCallback$1(j){const _e=reactExports.useRef(j);return reactExports.useLayoutEffect(()=>{_e.current=j}),reactExports.useCallback((...et)=>{const tt=_e.current;return tt(...et)},[])}const CopyButton=j=>{const{pendingText:_e,copyingText:et,copiedText:tt,failedText:rt,calcContentForCopy:nt,className:ot,delay:it=1500}=j,[st,lt]=React.useState(0),ut=useStyles$e(),ct=st===0?_e:st===1?et:st===2?tt:st===3?rt:"",dt=st!==0,ft=useEventCallback$1(()=>{if(st===0){lt(1);try{const pt=nt();copy$4(pt),lt(2)}catch{lt(3)}}});return React.useEffect(()=>{if(st===2||st===3){const pt=setTimeout(()=>lt(0),it);return()=>{pt&&clearTimeout(pt)}}},[st,it]),jsxRuntimeExports.jsx(Tooltip$1,{relationship:"label",withArrow:!0,content:ct,children:jsxRuntimeExports.jsx(Button$2,{appearance:"transparent",className:mergeClasses(ut.copyButton,ot),disabled:dt,as:"button",icon:st===0?jsxRuntimeExports.jsx(Copy20Regular,{}):jsxRuntimeExports.jsx(CopyArrowRight20Regular,{}),onClick:ft})})};CopyButton.displayName="CopyButton";const useStyles$e=makeStyles({copyButton:{cursor:"pointer"}}),defaultUploadPopoverLocStrings={Add:"Add",AddAnImage:"Add an image",PasteImageOrLinkHere:"Paste image or link here",UploadFromThisDevice:"Upload from this device"},ImageView=j=>{const{src:_e,alt:et,loading:tt=!1,width:rt,height:nt,styles:ot}=j;return _e?tt?jsxRuntimeExports.jsx("div",{children:"Loading..."}):jsxRuntimeExports.jsx("div",{className:ot==null?void 0:ot.root,children:jsxRuntimeExports.jsx("img",{className:ot==null?void 0:ot.image,src:_e,alt:et,width:rt,height:nt})}):jsxRuntimeExports.jsx("div",{children:"This image can not be previewed."})},ImageViewModal=j=>{const{src:_e,alt:et,visible:tt,loading:rt=!1,width:nt,height:ot,onDismiss:it}=j,st=useStyles$d(),lt=jsxRuntimeExports.jsxs("div",{className:st.container,children:[jsxRuntimeExports.jsxs("div",{className:st.header,children:[jsxRuntimeExports.jsx("h2",{className:st.heading,children:"Preview"}),jsxRuntimeExports.jsx(Button$2,{as:"button",appearance:"transparent",icon:jsxRuntimeExports.jsx(Dismiss24Regular,{}),className:st.dismissBtn,onClick:it})]}),jsxRuntimeExports.jsx("div",{className:st.main,children:jsxRuntimeExports.jsx(ImageView,{src:_e,alt:et,loading:rt,width:nt,height:ot,styles:{image:st.image}})})]});return jsxRuntimeExports.jsx(Modal,{isOpen:tt,isBlocking:!1,onDismiss:it,children:lt})},useStyles$d=makeStyles({container:{display:"flex",flexDirection:"column",flexWrap:"nowrap",...shorthands.padding("16px")},header:{...shorthands.flex(0,0,"auto"),display:"flex",flexDirection:"row",flexWrap:"nowrap",justifyContent:"space-between",marginBottom:"20px"},heading:{...shorthands.margin(0),fontWeight:FontWeights.semibold,fontSize:"inherit"},dismissBtn:{"&&":{fontSize:"16px",lineHeight:"16px",height:"16px",width:"16px",color:tokens.colorNeutralStroke1}},main:{...shorthands.overflow("auto"),display:"flex",justifyContent:"center",alignItems:"center"},image:{width:"auto",height:"auto",maxWidth:"60vw",maxHeight:"60vh"}}),IMAGE_WIDTH="48px",MASK_SELECTOR_CLASS_NAME="__MASK_SELECTOR_CLASS_NAME__",UploadPopoverImagePreview=j=>{const{image:_e,alt:et,isReadonly:tt,onClickDelete:rt}=j,[nt,ot]=React.useState(!1),it=useStyles$c(),st=React.useMemo(()=>{if(_e)return typeof _e=="string"?_e:URL.createObjectURL(_e)},[_e]),lt=React.useCallback(()=>{ot(ct=>!ct)},[]),ut=st||"";return jsxRuntimeExports.jsxs("div",{className:mergeClasses(it.root,tt?it.readonlyRoot:void 0),children:[jsxRuntimeExports.jsxs("div",{className:it.imageContainer,children:[jsxRuntimeExports.jsx("img",{decoding:"async",className:it.image,src:ut,alt:et}),jsxRuntimeExports.jsx("div",{"aria-hidden":!0,className:mergeClasses(it.mask,MASK_SELECTOR_CLASS_NAME),onClick:lt,role:"button",children:jsxRuntimeExports.jsx(ZoomIn20Regular,{})})]}),!tt&&jsxRuntimeExports.jsx(Button$2,{as:"button",className:it.closeButton,icon:jsxRuntimeExports.jsx(Dismiss20Regular,{}),onClick:rt}),jsxRuntimeExports.jsx(ImageViewModal,{src:ut,alt:et||"",visible:nt,onDismiss:lt})]})},useStyles$c=makeStyles({root:{boxSizing:"border-box",display:"flex",height:"32px",width:"80px",...shorthands.border("1px","solid",tokens.colorNeutralStroke2),...shorthands.borderRadius("4px")},readonlyRoot:{width:"48px"},imageContainer:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",width:IMAGE_WIDTH,[`:hover .${MASK_SELECTOR_CLASS_NAME}`]:{visibility:"visible"}},image:{maxWidth:"100%",maxHeight:"100%",width:"auto",height:"auto"},mask:{visibility:"hidden",cursor:"pointer",position:"absolute",top:0,left:0,width:`calc(${IMAGE_WIDTH} - 2px)`,height:"100%",backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",color:tokens.colorNeutralForegroundStaticInverted,...shorthands.borderRadius("4px",0,0,"4px")},closeButton:{width:"32px",...shorthands.border(0)}}),UploadPopoverTrigger=React.forwardRef((j,_e)=>jsxRuntimeExports.jsx(Button$2,{...j,ref:_e,as:"button",appearance:"transparent",size:"medium",icon:jsxRuntimeExports.jsx(Attach16Regular,{})}));UploadPopoverTrigger.displayName="UploadPopoverTrigger";const mergeStyleSlots=(j,..._e)=>{const et={...j};for(const tt of Object.keys(j))et[tt]=mergeClasses(j[tt],..._e.map(rt=>rt==null?void 0:rt[tt]));return et},UploadPopover=React.forwardRef(({isUploading:j,disabled:_e,trigger:et=jsxRuntimeExports.jsx(UploadPopoverTrigger,{}),locStrings:tt=defaultUploadPopoverLocStrings,styles:rt,events:nt,onUpload:ot,onRenderImagePreview:it},st)=>{const lt=mergeStyleSlots(useStyles$b(),rt),{onDelete:ut,onInputBlur:ct,onPaste:dt,onLocalUpload:ft}=nt??{};React.useImperativeHandle(st,()=>({open(){gt(!0)},close(){gt(!1)},reset:()=>{St()},retrieve:()=>_t}));const[pt,gt]=React.useState(!1),[vt,bt]=React.useState(""),[_t,xt]=React.useState(void 0),yt=React.useRef(null),Et=React.useCallback((Ot,Nt)=>{gt(Nt.open||!1)},[]),St=React.useCallback(()=>{bt(""),xt(void 0),yt.current&&(yt.current.value="")},[]),$t=React.useCallback(Ot=>{const Nt=Ot[0];xt(Nt),dt==null||dt(Nt)},[dt]),At=React.useCallback(Ot=>{Ot.clipboardData.files&&$t&&$t(Ot.clipboardData.files)},[$t]),wt=React.useCallback(()=>{ct==null||ct(vt),xt(vt)},[vt,ct]),Ct=React.useCallback(()=>{_t&&ot(_t)},[_t,ot]),It=React.useMemo(()=>it?it({cachedImage:_t,customerInputContent:vt,isReadonly:_e||j||!1}):jsxRuntimeExports.jsx(UploadPopoverImagePreview,{image:_t||vt,alt:vt||"",isReadonly:j,onClickDelete:()=>{St(),ut==null||ut()}}),[vt,_t,St,_e,j,ut,it]);return jsxRuntimeExports.jsxs(Popover,{positioning:"above-end",open:pt,onOpenChange:Et,children:[jsxRuntimeExports.jsx(PopoverTrigger,{disableButtonEnhancement:!0,children:et}),jsxRuntimeExports.jsxs(PopoverSurface,{className:lt.attachUploadPopover,children:[jsxRuntimeExports.jsxs("div",{className:lt.attachUploadHeader,children:[jsxRuntimeExports.jsx("span",{children:tt.AddAnImage}),jsxRuntimeExports.jsx(Button$2,{as:"button",disabled:_e,appearance:"transparent",icon:jsxRuntimeExports.jsx(Dismiss24Regular,{}),onClick:()=>{gt(!1)}})]}),jsxRuntimeExports.jsxs("div",{className:lt.attachUploadInputWrapper,children:[_t?It:jsxRuntimeExports.jsx(Input,{className:lt.attachUploadInput,value:vt,disabled:_e,placeholder:tt.PasteImageOrLinkHere,onChange:(Ot,Nt)=>{xt(void 0),bt(Nt.value)},onPaste:At,onBlur:wt}),jsxRuntimeExports.jsx(Button$2,{as:"button",disabled:_e||j||!_t&&!vt,className:lt.addButton,onClick:Ct,children:j?jsxRuntimeExports.jsx(Spinner,{size:"tiny"}):tt.Add})]}),jsxRuntimeExports.jsx("input",{tabIndex:-1,"aria-hidden":!0,ref:yt,disabled:_e,className:lt.invisibleFileInput,onChange:Ot=>{var Pt;const Nt=(Pt=Ot.target.files)==null?void 0:Pt[0];Nt&&(ft==null||ft(Nt)),xt(Nt)},type:"file",accept:"image/*"}),jsxRuntimeExports.jsx("div",{className:lt.triggerUploadButton,children:jsxRuntimeExports.jsx(Button$2,{as:"button",disabled:_e,appearance:"transparent",icon:jsxRuntimeExports.jsx(ArrowUpload24Regular,{}),onClick:()=>{var Ot;(Ot=yt.current)==null||Ot.click()},children:tt.UploadFromThisDevice})})]})]})});UploadPopover.displayName="UploadPopover";const useStyles$b=makeStyles({attachUploadPopover:{width:"400px",backgroundColor:tokens.colorNeutralBackground1,...shorthands.padding("12px")},attachUploadHeader:{display:"flex",justifyContent:"space-between",alignItems:"center",fontWeight:500,fontSize:"16px",lineHeight:"22px"},attachUploadInputWrapper:{marginTop:"8px",display:"flex",columnGap:"8px",justifyContent:"space-between"},attachUploadInput:{flexGrow:1},addButton:{minWidth:"52px"},invisibleFileInput:{display:"none"},triggerUploadButton:{marginTop:"8px",display:"flex",justifyContent:"space-between"}});function DefaultMessageContentRenderer(j){const{content:_e,className:et}=j,tt=useStyles$a(),rt=mergeClasses(tt.content,et);if(typeof _e=="string")return jsxRuntimeExports.jsx("p",{className:rt,children:_e});const nt=JSON.stringify(_e,null,2);return jsxRuntimeExports.jsx("pre",{className:rt,children:nt})}DefaultMessageContentRenderer.displayName="DefaultMessageContentRenderer";const useStyles$a=makeStyles({content:{...shorthands.overflow("auto"),wordBreak:"break-all",whiteSpace:"break-spaces"}});function DefaultMessageErrorRenderer(j){const{error:_e,locStrings:et,className:tt}=j,[rt,nt]=React.useState(!1),ot=useStyles$9(),it=mergeClasses(ot.errorMessageDetail,!rt&&ot.errorMessageDetailHidden,tt);return jsxRuntimeExports.jsxs(React.Fragment,{children:[jsxRuntimeExports.jsx("p",{children:jsxRuntimeExports.jsx(Link$1,{onClick:()=>nt(st=>!st),children:rt?et.MessageError_HideDetail:et.MessageError_ShowDetail})}),jsxRuntimeExports.jsx("p",{className:it,children:_e})]})}DefaultMessageErrorRenderer.displayName="DefaultMessageErrorRenderer";const useStyles$9=makeStyles({errorMessageDetail:{...shorthands.margin("0","0","0","0"),wordBreak:"break-word",whiteSpace:"break-spaces"},errorMessageDetailHidden:{display:"none"}});function DefaultMessagePaginationRenderer(j){const{message:_e,current:et,className:tt,setCurrent:rt}=j,nt=_e.history.length,ot=()=>{et>0&&rt(et-1)},it=()=>{et=Mt?Pt:""+Array(Mt+1-Lt.length).join(Rt)+Pt},yt={s:xt,z:function(Pt){var Mt=-Pt.utcOffset(),Rt=Math.abs(Mt),Lt=Math.floor(Rt/60),jt=Rt%60;return(Mt<=0?"+":"-")+xt(Lt,2,"0")+":"+xt(jt,2,"0")},m:function Pt(Mt,Rt){if(Mt.date()1)return Pt(Vt[0])}else{var Yt=Mt.name;St[Yt]=Mt,jt=Yt}return!Lt&&jt&&(Et=jt),jt||!Lt&&Et},Ct=function(Pt,Mt){if(At(Pt))return Pt.clone();var Rt=typeof Mt=="object"?Mt:{};return Rt.date=Pt,Rt.args=arguments,new Ot(Rt)},It=yt;It.l=wt,It.i=At,It.w=function(Pt,Mt){return Ct(Pt,{locale:Mt.$L,utc:Mt.$u,x:Mt.$x,$offset:Mt.$offset})};var Ot=function(){function Pt(Rt){this.$L=wt(Rt.locale,null,!0),this.parse(Rt),this.$x=this.$x||Rt.x||{},this[$t]=!0}var Mt=Pt.prototype;return Mt.parse=function(Rt){this.$d=function(Lt){var jt=Lt.date,Gt=Lt.utc;if(jt===null)return new Date(NaN);if(It.u(jt))return new Date;if(jt instanceof Date)return new Date(jt);if(typeof jt=="string"&&!/Z$/i.test(jt)){var Vt=jt.match(vt);if(Vt){var Yt=Vt[2]-1||0,Xt=(Vt[7]||"0").substring(0,3);return Gt?new Date(Date.UTC(Vt[1],Yt,Vt[3]||1,Vt[4]||0,Vt[5]||0,Vt[6]||0,Xt)):new Date(Vt[1],Yt,Vt[3]||1,Vt[4]||0,Vt[5]||0,Vt[6]||0,Xt)}}return new Date(jt)}(Rt),this.init()},Mt.init=function(){var Rt=this.$d;this.$y=Rt.getFullYear(),this.$M=Rt.getMonth(),this.$D=Rt.getDate(),this.$W=Rt.getDay(),this.$H=Rt.getHours(),this.$m=Rt.getMinutes(),this.$s=Rt.getSeconds(),this.$ms=Rt.getMilliseconds()},Mt.$utils=function(){return It},Mt.isValid=function(){return this.$d.toString()!==gt},Mt.isSame=function(Rt,Lt){var jt=Ct(Rt);return this.startOf(Lt)<=jt&&jt<=this.endOf(Lt)},Mt.isAfter=function(Rt,Lt){return Ct(Rt){const{duration:_e,tokens:et,locStrings:tt,className:rt}=j,nt=_e.toFixed(2).replace(/\.?0*$/,"");return jsxRuntimeExports.jsxs("div",{className:rt,children:[et>0&&jsxRuntimeExports.jsxs(React.Fragment,{children:[`${tt.MessageStatus_TokensDesc}: `,jsxRuntimeExports.jsx("b",{children:et}),` ${tt.MessageStatus_TokensUint}, `]}),`${et>0?tt.MessageStatus_TimeSpentDesc:tt.MessageStatus_TimeSpentDscCapitalized}: `,jsxRuntimeExports.jsx("b",{children:nt}),` ${tt.MessageStatus_TimeSpent_Unit}`]})};DefaultMessageStatusRenderer.displayName="DefaultMessageStatusRenderer";const EMPTY_CONTEXTUAL_MENU_ITEMS=[],defaultUseContextualMenuItems=j=>EMPTY_CONTEXTUAL_MENU_ITEMS;function DefaultMessageBubbleRenderer(j){const{MessageAvatarRenderer:_e,MessageContentRenderer:et=DefaultMessageContentRenderer,MessageErrorRenderer:tt=DefaultMessageErrorRenderer,MessagePaginationRenderer:rt=DefaultMessagePaginationRenderer,MessageSenderRenderer:nt=DefaultMessageSenderRenderer,MessageStatusRenderer:ot=DefaultMessageStatusRenderer,useMessageContextualMenuItems:it=defaultUseContextualMenuItems,initialPage:st=-1,locStrings:lt,message:ut,className:ct}=j,dt=useStyles$7(),[ft,pt]=React.useState((st%ut.history.length+ut.history.length)%ut.history.length),[gt,vt]=React.useState(!1),bt=React.useRef(null),_t=React.useRef(null),xt=React.useCallback(()=>{vt(!1)},[]),yt=React.useCallback(Ct=>{const It=bt.current,Ot=_t.current;if(It&&Ot){const Nt=Ct.clientX,Pt=Ct.clientY,Mt=It.getBoundingClientRect(),Rt=Mt.left+window.scrollX,Lt=Mt.top+window.scrollY,jt=Nt-Rt,Gt=Pt-Lt;Ot.style.left=`${jt}px`,Ot.style.top=`${Gt}px`}},[]),Et=React.useCallback(Ct=>{Ct.preventDefault(),yt(Ct),vt(!0)},[]),St=ut.history[ft],$t=St.category===ChatMessageCategory.User?"right":"left",At=it(St),wt=React.useCallback(()=>j.calcContentForCopy(St),[St,j.calcContentForCopy]);return React.useEffect(()=>{const Ct=()=>{vt(!1)};return document.addEventListener("mousedown",Ct),()=>document.removeEventListener("mousedown",Ct)},[]),jsxRuntimeExports.jsx("div",{className:dt.container,"data-chatbox-locator":ChatboxLocator.MessageBubble,"data-position":$t,children:jsxRuntimeExports.jsxs("div",{className:mergeClasses(dt.message,ct),"data-position":$t,children:[jsxRuntimeExports.jsx("div",{className:dt.avatar,children:_e&&jsxRuntimeExports.jsx(_e,{data:St,position:$t})}),jsxRuntimeExports.jsxs("div",{className:dt.main,children:[jsxRuntimeExports.jsx("div",{className:dt.sender,children:jsxRuntimeExports.jsx(nt,{data:St,position:$t})}),jsxRuntimeExports.jsxs("div",{ref:bt,className:dt.content,"data-category":St.category,"data-chatbox-locator":ChatboxLocator.MessageContent,onContextMenu:Et,onClick:yt,children:[jsxRuntimeExports.jsx(et,{content:St.content}),St.error&&jsxRuntimeExports.jsx(tt,{error:St.error,locStrings:lt,className:dt.error}),typeof St.duration=="number"&&typeof St.tokens=="number"&&jsxRuntimeExports.jsx(ot,{duration:St.duration,tokens:St.tokens,locStrings:lt,className:dt.status}),ut.history.length>1&&jsxRuntimeExports.jsx(rt,{className:dt.pagination,message:ut,current:ft,setCurrent:pt}),jsxRuntimeExports.jsx("div",{ref:_t,className:dt.contentMenuAnchor}),At.length>0&&jsxRuntimeExports.jsx(ContextualMenu,{items:At,hidden:!gt,target:_t,onItemClick:xt,onDismiss:xt,className:dt.contextualMenu}),jsxRuntimeExports.jsx("div",{className:mergeClasses(anchors.actions,dt.actions),children:jsxRuntimeExports.jsx(CopyButton,{calcContentForCopy:wt,pendingText:lt.CopyToClipboard,copyingText:lt.CopyToClipboard_Copying,copiedText:lt.CopyToClipboard_Copied,failedText:lt.CopyToClipboard_Failed,className:mergeClasses(anchors.actionButton,dt.actionButton)})})]})]})]})})}DefaultMessageBubbleRenderer.displayName="DefaultMessageBubbleRenderer";const anchors={actions:"chatbox-message-bubble-actions",actionButton:"chatbox-message-bubble-action-button"},useStyles$7=makeStyles({container:{...shorthands.margin("16px","0"),display:"flex",justifyContent:"flex-start",'&&[data-position="right"]':{justifyContent:"flex-end"},width:"100%"},message:{display:"flex",flexDirection:"row",'&&[data-position="right"]':{flexDirection:"row-reverse"},maxWidth:"calc(100% - 80px)"},avatar:{...shorthands.flex(0,0,"auto")},main:{...shorthands.flex(1,1,"auto"),display:"flex",flexDirection:"column",width:"100%"},sender:{...shorthands.flex(0,0,"auto")},content:{...shorthands.flex(1,1,"auto"),...shorthands.padding("12px","20px","12px","12px"),...shorthands.borderRadius("4px"),position:"relative",boxSizing:"border-box",minWidth:"48px",wordBreak:"break-word",lineHeight:"22px","> p":{...shorthands.margin(0)},[`&:hover > .${anchors.actions}`]:{display:"flex",visibility:"visible"},[`&&[data-category="${ChatMessageCategory.System}"]`]:{color:tokens.colorNeutralForeground4},[`&&[data-category="${ChatMessageCategory.Error}"]`]:{backgroundColor:tokens.colorPaletteRedBackground2,color:tokens.colorNeutralForeground1},[`&&[data-category="${ChatMessageCategory.Chatbot}"]`]:{backgroundColor:tokens.colorNeutralBackground4,color:tokens.colorNeutralForeground1},[`&&[data-category="${ChatMessageCategory.User}"]`]:{backgroundColor:tokens.colorBrandBackground2,color:tokens.colorNeutralForeground1}},contextualMenu:{width:"auto",minWidth:"180px"},contentMenuAnchor:{position:"absolute",top:"0px",left:"0px"},error:{...shorthands.borderTop("1px","solid",tokens.colorPaletteDarkRedBorderActive),marginTop:"8px !important",paddingTop:"8px"},status:{...shorthands.margin("10px","0","0","0"),...shorthands.borderTop("1px","solid",tokens.colorPaletteAnchorBackground2),fontSize:"12px",fontStyle:"italic"},pagination:{marginTop:"14px"},actions:{position:"absolute",right:"-5px",top:"0",display:"none",width:"32px",justifyContent:"space-between"},actionButton:{cursor:"pointer",width:"32px"}});function DefaultSessionSplitRenderer(j){const{locStrings:_e,className:et}=j,tt=useStyles$6();return jsxRuntimeExports.jsx("div",{className:mergeClasses(tt.sessionSplit,et),children:jsxRuntimeExports.jsxs("span",{children:["--- ",_e.SessionSplit_Desc," ---"]})})}DefaultSessionSplitRenderer.displayName="DefaultSessionSplitRenderer";const useStyles$6=makeStyles({sessionSplit:{display:"flex",justifyContent:"center",height:"24px",color:tokens.colorNeutralForeground4}});makeStyles({hintTyping:{...shorthands.overflow("hidden"),width:"1px",height:"1px"},typingDots:{...shorthands.transition("opacity","0.1s"),display:"flex",alignItems:"center",height:"22.5px"},typingDot:{...shorthands.borderRadius("50%"),...shorthands.margin("0","0","0","6px"),display:"inline-block",width:"6px",height:"6px",backgroundColor:tokens.colorNeutralStroke1,animationDuration:"1.5s",animationTimingFunction:"linear",animationIterationCount:"infinite",animationName:{"0%":{transform:"scale(1)"},"16.67%":{transform:"scale(0)"},"33.33%":{transform:"scale(0)"},"50%":{transform:"scale(0)"},"66.67%":{transform:"scale(1)"},"83.33%":{transform:"scale(1)"},"100%":{transform:"scale(1)"}},"&:nth-child(1)":{...shorthands.margin("0px")},"&:nth-child(2)":{animationDelay:"0.18s"},"&:nth-child(3)":{animationDelay:"0.36s"}}});makeStyles({toolbar:{display:"flex",justifyContent:"flex-end"}});makeStyles({input:{...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),boxSizing:"border-box",display:"grid",gridTemplateRows:"1fr auto"},editor:{boxSizing:"border-box"},editorInner:{...shorthands.border("0px"),boxSizing:"border-box"},editorToolbar:{boxSizing:"border-box",display:"flex",alignItems:"flex-end",justifyContent:"flex-end",height:"100%"}});function MessageListRenderer(j){const{MessageAvatarRenderer:_e,MessageContentRenderer:et,MessageErrorRenderer:tt,MessageSenderRenderer:rt,MessageBubbleRenderer:nt=DefaultMessageBubbleRenderer,SessionSplitRenderer:ot=DefaultSessionSplitRenderer,className:it,bubbleClassName:st,sessionSplitClassName:lt,locStrings:ut,messages:ct,calcContentForCopy:dt,useMessageContextualMenuItems:ft}=j,pt=useStyles$5();return jsxRuntimeExports.jsx("div",{className:mergeClasses(pt.container,it),"data-chatbox-locator":ChatboxLocator.MessageList,children:ct.map(gt=>{switch(gt.type){case ChatMessageType.Message:return jsxRuntimeExports.jsx(nt,{MessageAvatarRenderer:_e,MessageContentRenderer:et,MessageErrorRenderer:tt,MessageSenderRenderer:rt,calcContentForCopy:dt,locStrings:ut,message:gt,className:st,useMessageContextualMenuItems:ft},gt.id);case ChatMessageType.SessionSplit:return jsxRuntimeExports.jsx(ot,{locStrings:ut,className:lt},gt.id);default:return jsxRuntimeExports.jsx(React.Fragment,{},gt.id)}})})}MessageListRenderer.displayName="MessageListRenderer";const useStyles$5=makeStyles({container:{boxSizing:"border-box"}}),Zp=class Zp extends React.PureComponent{render(){const{elements:_e,deltaH:et,deltaW:tt,scaleH:rt,scaleW:nt,className:ot,elementClassName:it}=this.props;return jsxRuntimeExports.jsx("div",{className:ot,children:_e.map((st,lt)=>{const ut=(st.top-et)*rt,ct=(st.left-tt)*nt,dt=st.height*rt,ft=st.width*nt,pt={top:ut,left:ct,height:dt,width:ft};return st.backgroundColor&&(pt.backgroundColor=st.backgroundColor),jsxRuntimeExports.jsx("div",{className:it,style:pt},lt)})})}};Zp.displayName="MinimapOverview";let MinimapOverview=Zp;const MinimapViewport=j=>{const{scaleH:_e,sourceRootRef:et,sourceQuerySelector:tt,className:rt}=j,[nt,ot]=React.useState(0),[it,st]=React.useState(0),lt=useStyles$4();return React.useLayoutEffect(()=>{var ft,pt;const ut=(pt=(ft=et.current)==null?void 0:ft.querySelector(tt))==null?void 0:pt.parentElement;if(!ut)return()=>{};const{height:ct}=ut.getBoundingClientRect();st(ct);const dt=()=>{ot(ut.scrollTop||0)};return ut.addEventListener("scroll",dt),()=>ut.removeEventListener("scroll",dt)},[et.current]),jsxRuntimeExports.jsx("div",{className:mergeClasses(lt.viewport,rt),style:{position:"absolute",top:nt*_e,height:`${it*_e}px`}})};MinimapViewport.displayName="MinimapViewport";const useStyles$4=makeStyles({viewport:{display:"block",width:"100%",left:0,right:0,backgroundColor:"rgba(0, 0, 0, 0.15)"}}),Minimap=j=>{const{SCROLL_DELTA_THRESHOLD:_e=5,sourceRootRef:et,sourceQuerySelector:tt,sourceElementQuerySelector:rt,className:nt,overviewClassName:ot,overviewElementClassName:it,viewportClassName:st,style:lt}=j,[ut,ct]=React.useState([]),[dt,ft]=React.useState(0),[pt,gt]=React.useState(0),[vt,bt]=React.useState(0),[_t,xt]=React.useState(0),[yt,Et]=React.useState(0),[St,$t]=React.useState(0),[At,wt]=React.useState(0),[Ct,It]=React.useState(0),Ot=_t<=0?0:pt/_t||.1,Nt=vt<=0?0:Math.max(1/vt,Math.min(Ot,(dt-10)/vt||.1)),Pt=React.useRef(null),Mt=React.useRef(null),Rt=React.useRef(!1),Lt=useEventCallback$1(rr=>{var vr,Tr;if(rr.preventDefault(),rr.stopPropagation(),Rt.current=!0,!Mt.current)return;const cr=(Tr=(vr=et.current)==null?void 0:vr.querySelector(tt))==null?void 0:Tr.parentElement;if(cr){const Er=(rr.clientY-Mt.current.getBoundingClientRect().top)/Nt;Math.abs(cr.scrollTop-Er)>_e&&(cr.scrollTop=Er)}}),jt=useEventCallback$1(rr=>{var vr,Tr;if(rr.preventDefault(),rr.stopPropagation(),!Rt.current||!Mt.current)return;const cr=(Tr=(vr=et.current)==null?void 0:vr.querySelector(tt))==null?void 0:Tr.parentElement;if(cr){const Er=(rr.clientY-Mt.current.getBoundingClientRect().top)/Nt;Math.abs(cr.scrollTop-Er)>_e&&(cr.scrollTop=Er)}}),Gt=React.useCallback(rr=>{const cr=rr.querySelector(tt);if(!cr)return;const vr=cr.querySelectorAll(rt),Tr=[];for(let Er=0;Er{const rr=()=>{Rt.current=!1};return document.addEventListener("mouseup",rr),()=>document.removeEventListener("mouseup",rr)},[]),React.useLayoutEffect(()=>{const rr=Pt.current;if(!rr)return;const{height:cr,width:vr}=rr.getBoundingClientRect();ft(cr),gt(vr)},[]),React.useLayoutEffect(()=>{const rr=et.current;if(!rr)return()=>{};Gt(rr);const cr=new MutationObserver(vr=>{for(const Tr of vr)Tr.type==="childList"&&Gt(rr)});return cr.observe(rr,{childList:!0,subtree:!0}),()=>{cr.disconnect()}},[et.current,Gt]);const Vt=useStyles$3(),Yt=vt+yt-At,Xt=_t+St-Ct;return jsxRuntimeExports.jsx("div",{ref:Pt,className:mergeClasses(Vt.container,nt),style:lt,children:jsxRuntimeExports.jsxs("div",{ref:Mt,className:Vt.minimap,onMouseDown:Lt,onMouseMove:jt,children:[jsxRuntimeExports.jsx(MinimapOverview,{elements:ut,deltaH:Yt,deltaW:Xt,scaleH:Nt,scaleW:Ot,className:mergeClasses(Vt.overview,ot),elementClassName:mergeClasses(Vt.minimapElement,it)}),jsxRuntimeExports.jsx(MinimapViewport,{scaleH:Nt,sourceRootRef:et,sourceQuerySelector:tt,className:st})]})})};Minimap.displayName="Minimap";const useStyles$3=makeStyles({container:{height:"100%",width:"100%",...shorthands.overflow("hidden")},minimap:{position:"relative",width:"100%",height:"100%"},overview:{},minimapElement:{position:"absolute",backgroundColor:"#c292f9"}});makeStyles({editor:{...shorthands.padding("8px"),...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),boxSizing:"border-box",display:"block",width:"100%",userSelect:"none",position:"relative",'&[data-disabled="true"]':{backgroundColor:tokens.colorNeutralBackgroundDisabled}},textarea:{...shorthands.padding("0px"),...shorthands.overflow("hidden","auto"),...shorthands.borderWidth(0),...shorthands.outline(0,"solid","transparent"),backgroundColor:"transparent",boxSizing:"border-box",resize:"none",appearance:"none",overflowWrap:"break-word",lineHeight:"24px",height:"24px",width:"100%",wordBreak:"break-all",color:tokens.colorNeutralForeground1,userSelect:"text"}});var LexicalLink_prod={},LexicalUtils_prod={},LexicalSelection_prod={},Lexical_prod={};let ba={},ca={},da={},ea={},fa={},ka$1={},la={},ma={},oa={},pa={},qa={},ra={},sa={},ta={},ua={},va={},wa={},ya={},za={},Aa={},Ba={},Ca={},Da={},Ga={},Ha={},Ia={},Ja={},Ka={},La={},Ma={},Na={},Oa={},Pa={},Qa={},Ra={},Sa={};function n$6(j){let _e=new URLSearchParams;_e.append("code",j);for(let et=1;et{let _e=u$7();return _e!==null?_e.clone():null})}function ub(j,_e,et){pb=!0;let tt=100{let rt=u$7()||tb(j);var nt=new Map,ot=j.getRootElement(),it=j._editorState,st=j._blockCursorElement;let lt=!1,ut="";for(var ct=0;ct<_e.length;ct++){var dt=_e[ct],ft=dt.type,pt=dt.target,gt=vb(pt,it);if(!(gt===null&&pt!==ot||y$7(gt))){if(ft==="characterData"){if(dt=tt&&B$5(gt))e:{dt=rt,ft=pt;var vt=gt;if(C$5(dt)){var bt=dt.anchor.getNode();if(bt.is(vt)&&dt.format!==bt.getFormat()){dt=!1;break e}}dt=ft.nodeType===3&&vt.isAttached()}dt&&(vt=wb(j._window),ft=dt=null,vt!==null&&vt.anchorNode===pt&&(dt=vt.anchorOffset,ft=vt.focusOffset),pt=pt.nodeValue,pt!==null&&xb(gt,pt,dt,ft,!1))}else if(ft==="childList"){for(lt=!0,ft=dt.addedNodes,vt=0;vt{ub(j,_e,et)})}function Eb(j,_e){let et=j.__mode,tt=j.__format;j=j.__style;let rt=_e.__mode,nt=_e.__format;return _e=_e.__style,(et===null||et===rt)&&(tt===null||tt===nt)&&(j===null||j===_e)}function Fb(j,_e){let et=j.mergeWithSibling(_e),tt=F$3()._normalizedNodes;return tt.add(j.__key),tt.add(_e.__key),et}function Gb(j){if(j.__text===""&&j.isSimpleText()&&!j.isUnmergeable())j.remove();else{for(var _e;(_e=j.getPreviousSibling())!==null&&B$5(_e)&&_e.isSimpleText()&&!_e.isUnmergeable();)if(_e.__text==="")_e.remove();else{Eb(_e,j)&&(j=Fb(_e,j));break}for(var et;(et=j.getNextSibling())!==null&&B$5(et)&&et.isSimpleText()&&!et.isUnmergeable();)if(et.__text==="")et.remove();else{Eb(j,et)&&Fb(j,et);break}}}function Hb(j){return Ib(j.anchor),Ib(j.focus),j}function Ib(j){for(;j.type==="element";){var _e=j.getNode(),et=j.offset;if(et===_e.getChildrenSize()?(_e=_e.getChildAtIndex(et-1),et=!0):(_e=_e.getChildAtIndex(et),et=!1),B$5(_e)){j.set(_e.__key,et?_e.getTextContentSize():0,"text");break}else if(!E$3(_e))break;j.set(_e.__key,et?_e.getChildrenSize():0,"element")}}let Jb=1,Kb=typeof queueMicrotask=="function"?queueMicrotask:j=>{Promise.resolve().then(j)};function Rb(j){let _e=document.activeElement;if(_e===null)return!1;let et=_e.nodeName;return y$7(vb(j))&&(et==="INPUT"||et==="TEXTAREA"||_e.contentEditable==="true"&&_e.__lexicalEditor==null)}function Sb(j,_e,et){let tt=j.getRootElement();try{return tt!==null&&tt.contains(_e)&&tt.contains(et)&&_e!==null&&!Rb(_e)&&Tb(_e)===j}catch{return!1}}function Tb(j){for(;j!=null;){let _e=j.__lexicalEditor;if(_e!=null)return _e;j=Ub(j)}return null}function Vb(j){return j.isToken()||j.isSegmented()}function Wb(j){for(;j!=null;){if(j.nodeType===3)return j;j=j.firstChild}return null}function Xb(j,_e,et){let tt=gb[_e];return et!==null&&(j&tt)===(et&tt)||(j^=tt,_e==="subscript"?j&=~gb.superscript:_e==="superscript"&&(j&=~gb.subscript)),j}function Yb(j,_e){if(_e!=null)j.__key=_e;else{G$3(),99J$1().getTextContent())}function gc(j,_e){v$6(j,()=>{var et=$b();if(!et.isEmpty())if(_e==="root")J$1().markDirty();else{et=et._nodeMap;for(let[,tt]of et)tt.markDirty()}},j._pendingEditorState===null?{tag:"history-merge"}:void 0)}function J$1(){return $b()._nodeMap.get("root")}function zb(j){G$3();let _e=$b();j!==null&&(j.dirty=!0,j.setCachedNodes(null)),_e._selection=j}function hc(j){var _e=F$3(),et;e:{for(et=j;et!=null;){let tt=et[`__lexicalKey_${_e._key}`];if(tt!==void 0){et=tt;break e}et=Ub(et)}et=null}return et===null?(_e=_e.getRootElement(),j===_e?I$1("root"):null):I$1(et)}function ic(j){return/[\uD800-\uDBFF][\uDC00-\uDFFF]/g.test(j)}function jc(j){let _e=[];for(;j!==null;)_e.push(j),j=j._parentEditor;return _e}function kc(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function lc(j,_e,et){if(_e=wb(_e._window),_e!==null){var tt=_e.anchorNode,{anchorOffset:rt,focusOffset:nt}=_e;if(tt!==null&&(_e=tt.nodeType===3?tt.nodeValue:null,tt=vb(tt),_e!==null&&B$5(tt))){if(_e===cb&&et){let ot=et.length;_e=et,nt=rt=ot}_e!==null&&xb(tt,_e,rt,nt,j)}}}function xb(j,_e,et,tt,rt){let nt=j;if(nt.isAttached()&&(rt||!nt.isDirty())){let lt=nt.isComposing(),ut=_e;if((lt||rt)&&_e[_e.length-1]===cb&&(ut=_e.slice(0,-1)),_e=nt.getTextContent(),rt||ut!==_e)if(ut==="")if(H$2(null),Ya||Za||bb)nt.remove();else{let ct=F$3();setTimeout(()=>{ct.update(()=>{nt.isAttached()&&nt.remove()})},20)}else{rt=nt.getParent(),_e=mc();var ot=nt.getTextContentSize(),it=cc(),st=nt.getKey();nt.isToken()||it!==null&&st===it&&!lt||C$5(_e)&&(rt!==null&&!rt.canInsertTextBefore()&&_e.anchor.offset===0||_e.anchor.key===j.__key&&_e.anchor.offset===0&&!nt.canInsertTextBefore()&&!lt||_e.focus.key===j.__key&&_e.focus.offset===ot&&!nt.canInsertTextAfter()&&!lt)?nt.markDirty():(j=u$7(),C$5(j)&&et!==null&&tt!==null&&(j.setTextNodeRange(nt,et,nt,tt),nt.isSegmented()&&(et=nt.getTextContent(),et=K(et),nt.replace(et),nt=et)),nt.setTextContent(ut))}}}function nc(j,_e){if(_e.isSegmented())return!0;if(!j.isCollapsed())return!1;j=j.anchor.offset;let et=_e.getParentOrThrow(),tt=_e.isToken();return j===0?((j=!_e.canInsertTextBefore()||!et.canInsertTextBefore()||tt)||(_e=_e.getPreviousSibling(),j=(B$5(_e)||E$3(_e)&&_e.isInline())&&!_e.canInsertTextAfter()),j):j===_e.getTextContentSize()?!_e.canInsertTextAfter()||!et.canInsertTextAfter()||tt:!1}function oc(j,_e){j.__lexicalClassNameCache===void 0&&(j.__lexicalClassNameCache={});let et=j.__lexicalClassNameCache,tt=et[_e];return tt!==void 0?tt:(j=j[_e],typeof j=="string"?(j=j.split(" "),et[_e]=j):j)}function pc(j,_e,et,tt,rt){et.size!==0&&(et=tt.__type,tt=tt.__key,_e=_e.get(et),_e===void 0&&n$6(33,et),et=_e.klass,_e=j.get(et),_e===void 0&&(_e=new Map,j.set(et,_e)),j=_e.get(tt),et=j==="destroyed"&&rt==="created",(j===void 0||et)&&_e.set(tt,et?"updated":rt))}function qc(j,_e,et){let tt=j.getParent(),rt=et;return tt!==null&&(_e&&et===0?(rt=j.getIndexWithinParent(),j=tt):_e||et!==j.getChildrenSize()||(rt=j.getIndexWithinParent()+1,j=tt)),j.getChildAtIndex(_e?rt-1:rt)}function rc(j,_e){var et=j.offset;return j.type==="element"?(j=j.getNode(),qc(j,_e,et)):(j=j.getNode(),_e&&et===0||!_e&&et===j.getTextContentSize()?(et=_e?j.getPreviousSibling():j.getNextSibling(),et===null?qc(j.getParentOrThrow(),_e,j.getIndexWithinParent()+(_e?0:1)):et):null)}function Ab(j){return j=(j=Db(j).event)&&j.inputType,j==="insertFromPaste"||j==="insertFromPasteAsQuotation"}function sc(j){return!L(j)&&!j.isLastChild()&&!j.isInline()}function tc(j,_e){return j=j._keyToDOMMap.get(_e),j===void 0&&n$6(75,_e),j}function Ub(j){return j=j.assignedSlot||j.parentElement,j!==null&&j.nodeType===11?j.host:j}function uc(j,_e){for(j=j.getParent();j!==null;){if(j.is(_e))return!0;j=j.getParent()}return!1}function Db(j){return j=j._window,j===null&&n$6(78),j}function vc(j){for(j=j.getParentOrThrow();j!==null&&!wc(j);)j=j.getParentOrThrow();return j}function wc(j){return L(j)||E$3(j)&&j.isShadowRoot()}function xc(j){return j=j.constructor.clone(j),Yb(j,null),j}function yc(j){var _e=F$3();let et=j.constructor.getType();return _e=_e._nodes.get(et),_e===void 0&&n$6(97),_e=_e.replace,_e!==null?(_e=_e(j),_e instanceof j.constructor||n$6(98),_e):j}function zc(j,_e){j=j.getParent(),!L(j)||E$3(_e)||y$7(_e)||n$6(99)}function Ac(j){return(y$7(j)||E$3(j)&&!j.canBeEmpty())&&!j.isInline()}function Bc(j,_e,et){et.style.removeProperty("caret-color"),_e._blockCursorElement=null,_e=j.parentElement,_e!==null&&_e.removeChild(j)}function wb(j){return Ta?(j||window).getSelection():null}function Cc(j){return j.nodeType===1}function Dc(j){if(y$7(j)&&!j.isInline())return!0;if(!E$3(j)||wc(j))return!1;var _e=j.getFirstChild();return _e=_e===null||Ec(_e)||B$5(_e)||_e.isInline(),!j.isInline()&&j.canBeEmpty()!==!1&&_e}function Fc(j,_e){for(;j!==null&&j.getParent()!==null&&!_e(j);)j=j.getParentOrThrow();return _e(j)?j:null}function Gc(j,_e,et,tt,rt,nt){for(j=j.getFirstChild();j!==null;){let ot=j.__key;j.__parent===_e&&(E$3(j)&&Gc(j,ot,et,tt,rt,nt),et.has(ot)||nt.delete(ot),rt.push(ot)),j=j.getNextSibling()}}function Hc(j,_e,et,tt){j=j._nodeMap,_e=_e._nodeMap;let rt=[];for(let[nt]of tt){let ot=_e.get(nt);ot===void 0||ot.isAttached()||(E$3(ot)&&Gc(ot,nt,j,_e,rt,tt),j.has(nt)||tt.delete(nt),rt.push(nt))}for(let nt of rt)_e.delete(nt);for(let nt of et)tt=_e.get(nt),tt===void 0||tt.isAttached()||(j.has(nt)||et.delete(nt),_e.delete(nt))}let M="",N="",Ic="",Jc,O,Kc,Lc=!1,Mc=!1,Nc,Oc=null,Pc,Zc,$c,ad,bd,cd;function dd(j,_e){let et=$c.get(j);if(_e!==null){let tt=ed(j);tt.parentNode===_e&&_e.removeChild(tt)}ad.has(j)||O._keyToDOMMap.delete(j),E$3(et)&&(j=fd(et,$c),gd(j,0,j.length-1,null)),et!==void 0&&pc(cd,Kc,Nc,et,"destroyed")}function gd(j,_e,et,tt){for(;_e<=et;++_e){let rt=j[_e];rt!==void 0&&dd(rt,tt)}}function hd(j,_e){j.setProperty("text-align",_e)}function id$2(j,_e){var et=Jc.theme.indent;if(typeof et=="string"){let tt=j.classList.contains(et);0<_e&&!tt?j.classList.add(et):1>_e&&tt&&j.classList.remove(et)}et=getComputedStyle(j).getPropertyValue("--lexical-indent-base-value")||"40px",j.style.setProperty("padding-inline-start",_e===0?"":`calc(${_e} * ${et})`)}function jd(j,_e){j=j.style,_e===0?hd(j,""):_e===1?hd(j,"left"):_e===2?hd(j,"center"):_e===3?hd(j,"right"):_e===4?hd(j,"justify"):_e===5?hd(j,"start"):_e===6&&hd(j,"end")}function kd(j,_e,et){let tt=ad.get(j);tt===void 0&&n$6(60);let rt=tt.createDOM(Jc,O);var nt=O._keyToDOMMap;if(rt["__lexicalKey_"+O._key]=j,nt.set(j,rt),B$5(tt)?rt.setAttribute("data-lexical-text","true"):y$7(tt)&&rt.setAttribute("data-lexical-decorator","true"),E$3(tt)){if(j=tt.__indent,nt=tt.__size,j!==0&&id$2(rt,j),nt!==0){--nt,j=fd(tt,ad);var ot=N;N="",ld(j,tt,0,nt,rt,null),md(tt,rt),N=ot}j=tt.__format,j!==0&&jd(rt,j),tt.isInline()||nd(null,tt,rt),sc(tt)&&(M+=` +`,j[0].empty=!0)},appendTypes=(j,_e)=>{const et=j.length;return et>0&&j[et-1]===_e?j:j.concat(_e)},normalizeTokens=j=>{const _e=[[]],et=[j],tt=[0],rt=[j.length];let nt=[];const ot=[nt];for(let it=0;it>-1;--it){for(let st=0;(st=tt[it]++)0?ut:["plain"],lt=dt):(ut=appendTypes(ut,dt.type),dt.alias&&(ut=appendTypes(ut,dt.alias)),lt=dt.content),typeof lt!="string"){it+=1,_e.push(ut),et.push(lt),tt.push(0),rt.push(lt.length);continue}const ft=lt.split(newlineRegex),pt=ft.length;nt.push({types:ut,content:ft[0]});for(let gt=1;gt{var nt,ot;const tt=et.target;if(tt==null)return;const{scrollTop:rt}=tt;(ot=(nt=this.linenoRef.current)==null?void 0:nt.scrollTo)==null||ot.call(nt,0,rt)});const tt=themeToDict(et.language,et.theme),rt=this.tokenize(et.code,et.language),nt=et.showLineno?`${Math.max(2,String(rt.length).length)*1.1}em`:void 0;this.state={linenoWidth:nt,themeDict:tt,tokens:rt},this.linenoRef={current:null}}shouldComponentUpdate(et,tt){const rt=this.props,nt=this.state;return nt.linenoWidth!==tt.linenoWidth||nt.themeDict!==tt.themeDict||nt.tokens!==tt.tokens||rt.code!==et.code||rt.codesRef!==et.codesRef||rt.collapsed!==et.collapsed||rt.language!==et.language||rt.maxLines!==et.maxLines||rt.showLineno!==et.showLineno||!isEqual$2(rt.theme,et.theme)||!isEqual$2(rt.highlightLinenos,et.highlightLinenos)}render(){const{linenoRef:et,onScroll:tt}=this,{codesRef:rt,collapsed:nt,highlightLinenos:ot,language:it,maxLines:st,showLineno:lt=!0}=this.props,{linenoWidth:ut,tokens:ct}=this.state,dt=ct.length,ft=st>0?Math.min(st,dt):dt,pt={...this.state.themeDict.root,backgroundColor:"none",...nt?{maxHeight:0}:{maxHeight:`calc(calc(${vars.lineHeightCode} * ${ft+.8}) + 6px)`,minHeight:"100%"}};return React.createElement("div",{className:cx(classes$2.container,it?`prism-code language-${it}`:"prism-code"),style:pt},lt&&React.createElement("div",{key:"linenos",className:classes$2.lineno,style:{width:ut},ref:et},React.createElement(HighlightLinenos,{countOfLines:dt,highlightLinenos:ot})),React.createElement("div",{key:"codes",ref:rt,className:classes$2.codes,onScroll:tt},React.createElement("div",{className:classes$2.codeWrapper},ct.map((gt,mt)=>{const bt=ot.includes(mt+1),_t=this.getLineProps({line:gt});return React.createElement("div",{..._t,key:mt,className:cx(classes$2.line,classes$2.codeLine,bt&&classes$2.highlightLine,_t.className)},gt.map((xt,yt)=>React.createElement("span",{...this.getTokenProps({token:xt}),key:yt})))}))))}componentDidMount(){var et,tt;(tt=(et=this.props).onLinenoWidthChange)==null||tt.call(et,this.state.linenoWidth)}componentDidUpdate(et,tt){var it,st;const rt=this.props,nt=this.state,ot=rt.language!==et.language||!isEqual$2(rt.theme,et.theme)?themeToDict(rt.language,rt.theme):nt.themeDict;if(rt.code!==et.code||rt.language!==et.language||ot!==tt.themeDict){const lt=this.tokenize(rt.code,rt.language),ut=rt.showLineno?`${Math.max(2,String(lt.length).length)*1.1}em`:void 0;this.setState({linenoWidth:ut,themeDict:ot,tokens:lt})}nt.linenoWidth!==tt.linenoWidth&&((st=(it=this.props).onLinenoWidthChange)==null||st.call(it,nt.linenoWidth))}tokenize(et,tt){const rt=tt?Prism.languages[tt]:void 0;if(rt){const nt={code:et,grammar:rt,language:tt,tokens:[]};return Prism.hooks.run("before-tokenize",nt),nt.tokens=Prism.tokenize(nt.code,nt.grammar),Prism.hooks.run("after-tokenize",nt),normalizeTokens(nt.tokens)}else return normalizeTokens([et])}getLineProps(et){const{themeDict:tt}=this.state,{key:rt,className:nt,style:ot,line:it,...st}=et,lt={...st,className:"token-line",style:void 0,key:void 0};return tt!==void 0&&(lt.style=tt.plain),ot!==void 0&&(lt.style=lt.style!==void 0?{...lt.style,...ot}:ot),rt!==void 0&&(lt.key=rt),nt&&(lt.className+=` ${nt}`),lt}getStyleForToken({types:et,empty:tt}){const{themeDict:rt}=this.state,nt=et.length;if(rt===void 0)return;if(nt===1&&et[0]==="plain")return tt?{display:"inline-block"}:void 0;if(nt===1&&!tt)return rt[et[0]];const ot=tt?{display:"inline-block"}:{};for(const it of et){const st=rt[it];Object.assign(ot,st)}return ot}getTokenProps(et){const{key:tt,className:rt,style:nt,token:ot,...it}=et,st={...it,className:`token ${ot.types.join(" ")}`,children:ot.content,style:this.getStyleForToken(ot),key:void 0};return nt!==void 0&&(st.style=st.style!==void 0?{...st.style,...nt}:nt),tt!==void 0&&(st.key=tt),rt&&(st.className+=` ${rt}`),st}}Fr(HighlightContent,"displayName","HighlightContent"),Fr(HighlightContent,"propTypes",{code:PropTypes.string.isRequired,codesRef:PropTypes.any,collapsed:PropTypes.bool.isRequired,language:PropTypes.string.isRequired,maxLines:PropTypes.number.isRequired,showLineno:PropTypes.bool.isRequired,theme:PropTypes.object.isRequired,highlightLinenos:PropTypes.array.isRequired,onLinenoWidthChange:PropTypes.func});class CodeHighlighter extends React.PureComponent{render(){const{lang:_e,value:et,darken:tt=!0,highlightLinenos:rt=[],maxLines:nt=-1,collapsed:ot=!1,showLineNo:it=!0,codesRef:st,onLinenoWidthChange:lt}=this.props,ut=this.props.theme??(tt?vscDarkTheme:vscLightTheme);return React.createElement(HighlightContent,{code:et,codesRef:st,collapsed:ot,highlightLinenos:rt,language:_e??"",maxLines:nt,showLineno:it,theme:ut,onLinenoWidthChange:lt})}}Fr(CodeHighlighter,"displayName","YozoraCodeHighlighter"),Fr(CodeHighlighter,"propTypes",{codesRef:PropTypes.any,collapsed:PropTypes.bool,darken:PropTypes.bool,highlightLinenos:PropTypes.arrayOf(PropTypes.number),lang:PropTypes.string,maxLines:PropTypes.number,onLinenoWidthChange:PropTypes.func,showLineNo:PropTypes.bool,theme:PropTypes.any,value:PropTypes.string.isRequired});const CopyButton=j=>{const{className:_e,delay:et=1500,calcContentForCopy:tt}=j,[rt,nt]=React.useState(0),ot=useStyles$g(),it=rt!==0,st=()=>{if(rt===0){nt(1);try{const lt=tt();copy$4(lt),nt(2)}catch{nt(3)}}};return React.useEffect(()=>{if(rt===2||rt===3){const lt=setTimeout(()=>nt(0),et);return()=>{lt&&clearTimeout(lt)}}},[rt,et]),jsxRuntimeExports.jsx(Button$2,{appearance:"transparent",className:mergeClasses(ot.copyButton,_e),disabled:it,as:"button",icon:rt===0?jsxRuntimeExports.jsx(Copy20Regular,{}):jsxRuntimeExports.jsx(CopyArrowRight20Regular,{}),onClick:st})},useStyles$g=makeStyles({copyButton:{cursor:"pointer"}});class CodeRendererInner extends React.PureComponent{constructor(){super(...arguments),this.calcContentForCopy=()=>this.props.value}render(){const{calcContentForCopy:_e}=this,{darken:et,lang:tt,value:rt,preferCodeWrap:nt,showCodeLineno:ot}=this.props;return jsxRuntimeExports.jsxs("code",{className:codeCls,"data-wrap":nt,children:[jsxRuntimeExports.jsx(CodeHighlighter,{lang:tt,value:rt,collapsed:!1,showLineNo:ot&&!nt,darken:et}),jsxRuntimeExports.jsx("div",{className:copyBtnCls,children:jsxRuntimeExports.jsx(CopyButton,{calcContentForCopy:_e})})]})}}const copyBtnCls=mergeStyles$1({position:"absolute",right:"4px",top:"4px",display:"none"}),codeCls=mergeStyles$1(astClasses.code,{position:"relative",display:"block",boxSizing:"border-box",borderRadius:"4px",margin:"0px 0px 1.25em 0px",backgroundColor:"var(--colorBgCode)",[`&:hover > .${copyBtnCls}`]:{display:"inline-block"},'&&[data-wrap="true"] > div':{whiteSpace:"pre-wrap",wordBreak:"keep-all"}}),CodeRenderer=j=>{const{lang:_e}=j,et=j.value.replace(/[\r\n]+$/,""),{viewmodel:tt}=useNodeRendererContext(),rt=useStateValue(tt.preferCodeWrap$),nt=useStateValue(tt.showCodeLineno$),it=useStateValue(tt.themeScheme$)==="darken";return jsxRuntimeExports.jsx(CodeRendererInner,{darken:it,lang:_e??"text",value:et,preferCodeWrap:rt,showCodeLineno:nt})};class DeleteRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("del",{className:cls$9,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$9=mergeStyles$1(astClasses.delete,{marginRight:"4px",color:"var(--colorDelete)",fontStyle:"italic",textDecoration:"line-through"});class EmphasisRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("em",{className:cls$8,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$8=mergeStyles$1(astClasses.emphasis,{fontStyle:"italic",margin:"0 6px 0 2px"});class HeadingRenderer extends React.Component{shouldComponentUpdate(_e){const et=this.props;return et.depth!==_e.depth||et.identifier!==_e.identifier||et.children!==_e.children||et.linkIcon!==_e.linkIcon}render(){const{depth:_e,identifier:et,children:tt,linkIcon:rt="¶"}=this.props,nt=et==null?void 0:encodeURIComponent(et),ot="h"+_e,it=ot,st=mergeStyles$1(astClasses.heading,classes$1.heading,classes$1[ot]);return jsxRuntimeExports.jsxs(it,{id:nt,className:st,children:[jsxRuntimeExports.jsx("p",{className:classes$1.content,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:tt})}),et&&jsxRuntimeExports.jsx("a",{className:classes$1.anchor,href:"#"+nt,children:rt})]})}}const anchorCls=mergeStyles$1({flex:"0 0 3rem",paddingLeft:"0.5rem",color:"var(--colorLink)",opacity:0,transition:"color 0.2s ease-in-out, opacity 0.2s ease-in-out",userSelect:"none",textDecoration:"none","> svg":{overflow:"hidden",display:"inline-block",verticalAlign:"middle",fill:"currentColor"}}),classes$1=mergeStyleSets({heading:{display:"flex",alignItems:"center",justifyContent:"flex-start",padding:"0px",margin:"0px 0px 1.25em 0px",marginBottom:"1em",lineHeight:"1.25",fontFamily:"var(--fontFamilyHeading)",color:"var(--colorHeading)",[`&:active .${anchorCls}`]:{opacity:.8,color:"var(--colorLinkActive)"},[`&&:hover .${anchorCls}`]:{opacity:.8,color:"var(--colorLinkHover)"}},anchor:anchorCls,content:{flex:"0 1 auto",minWidth:0,margin:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"pre-wrap",lineHeight:"1.7"},h1:{padding:"0.3rem 0",borderBottom:"1px solid var(--colorBorderHeading)",fontSize:"2rem",fontStyle:"normal",fontWeight:500},h2:{padding:"0.3rem 0",borderBottom:"1px solid var(--colorBorderHeading)",fontSize:"1.5rem",fontStyle:"normal",fontWeight:500,marginBottom:"0.875rem"},h3:{fontSize:"1.25rem",fontStyle:"normal",fontWeight:500},h4:{fontSize:"1rem",fontStyle:"normal",fontWeight:500},h5:{fontSize:"0.875rem",fontStyle:"normal",fontWeight:500},h6:{fontSize:"0.85rem",fontStyle:"normal",fontWeight:500}});class ImageRendererInner extends React.Component{shouldComponentUpdate(_e){const et=this.props;return et.src!==_e.src||et.alt!==_e.alt||et.title!==_e.title||et.srcSet!==_e.srcSet||et.sizes!==_e.sizes||et.loading!==_e.loading||et.className!==_e.className}render(){const{src:_e,alt:et,title:tt,srcSet:rt,sizes:nt,loading:ot,className:it}=this.props;return jsxRuntimeExports.jsxs("figure",{className:`${it} ${cls$7}`,children:[jsxRuntimeExports.jsx("img",{alt:et,src:_e,title:tt,srcSet:rt,sizes:nt,loading:ot}),tt&&jsxRuntimeExports.jsx("figcaption",{children:tt})]})}}const cls$7=mergeStyles$1({boxSizing:"border-box",maxWidth:"80%",display:"flex",flexDirection:"column",alignItems:"center",margin:0,"> img":{flex:"1 0 auto",boxSizing:"border-box",maxWidth:"100%",border:"1px solid var(--colorBorderImage)",boxShadow:"0 0 20px 1px rgba(126, 125, 150, 0.6)"},"> figcaption":{textAlign:"center",fontStyle:"italic",fontSize:"1em",color:"var(--colorImageTitle)"}}),ImageRenderer=j=>{const{url:_e,alt:et,title:tt,srcSet:rt,sizes:nt,loading:ot}=j;return jsxRuntimeExports.jsx(ImageRendererInner,{alt:et,src:_e,title:tt,srcSet:rt,sizes:nt,loading:ot,className:astClasses.image})},ImageReferenceRenderer=j=>{const{viewmodel:_e}=useNodeRendererContext(),et=useStateValue(_e.definitionMap$),{alt:tt,srcSet:rt,sizes:nt,loading:ot}=j,it=et[j.identifier],st=(it==null?void 0:it.url)??"",lt=it==null?void 0:it.title;return jsxRuntimeExports.jsx(ImageRendererInner,{alt:tt,src:st,title:lt,srcSet:rt,sizes:nt,loading:ot,className:astClasses.imageReference})};class InlineCodeRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.value!==_e.value}render(){return jsxRuntimeExports.jsx("code",{className:cls$6,children:this.props.value})}}const cls$6=mergeStyles$1(astClasses.inlineCode,{padding:"1px 4px",borderRadius:"4px",margin:0,background:"hsla(210deg, 15%, 60%, 0.15)",lineHeight:"1.375",color:"var(--colorInlineCode)",fontFamily:"var(--fontFamilyCode)",fontSize:"min(1rem, 18px)",fontWeight:500});class LinkRendererInner extends React.Component{shouldComponentUpdate(_e){const et=this.props;return et.url!==_e.url||et.title!==_e.title||et.childNodes!==_e.childNodes||et.className!==_e.className}render(){const{url:_e,title:et,childNodes:tt,className:rt}=this.props;return jsxRuntimeExports.jsx("a",{className:mergeStyles$1(cls$5,rt),href:_e,title:et,rel:"noopener, noreferrer",target:"_blank",children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:tt})})}}const cls$5=mergeStyles$1({padding:"0.2rem 0",color:"var(--colorLink)",textDecoration:"none",background:"linear-gradient(90deg, hsla(358deg, 100%, 62%, 0.8), hsla(048deg, 100%, 50%, 0.8), hsla(196deg, 100%, 53%, 0.8))",backgroundSize:"0 3px",backgroundRepeat:"no-repeat",backgroundPosition:"50% 100%",transition:"all 0.3s ease-in-out","&:active":{color:"var(--colorLinkActive)"},"&&:hover":{color:"var(--colorLinkHover)",backgroundSize:"100% 3px",backgroundPositionX:0},"&:visited":{color:"var(--colorLinkVisited)"}}),LinkRenderer=j=>{const{url:_e,title:et,children:tt}=j;return jsxRuntimeExports.jsx(LinkRendererInner,{url:_e,title:et,childNodes:tt,className:astClasses.link})},LinkReferenceRenderer=j=>{const{viewmodel:_e}=useNodeRendererContext(),tt=useStateValue(_e.definitionMap$)[j.identifier],rt=(tt==null?void 0:tt.url)??"",nt=tt==null?void 0:tt.title;return jsxRuntimeExports.jsx(LinkRendererInner,{url:rt,title:nt,childNodes:j.children,className:astClasses.linkReference})};class ListRenderer extends React.Component{shouldComponentUpdate(_e){const et=this.props;return et.ordered!==_e.ordered||et.orderType!==_e.orderType||et.start!==_e.start||et.children!==_e.children}render(){const{ordered:_e,orderType:et,start:tt,children:rt}=this.props;return _e?jsxRuntimeExports.jsx("ol",{className:cls$4,type:et,start:tt,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:rt})}):jsxRuntimeExports.jsx("ul",{className:cls$4,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:rt})})}}const cls$4=mergeStyles$1(astClasses.list,{padding:"0px",margin:"0 0 1em 2em",lineHeight:"2","> :last-child":{marginBottom:"0px"}});class ListItemRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("li",{className:cls$3,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$3=mergeStyles$1(astClasses.listItem,{position:"relative",padding:0,margin:0,"> :last-child":{marginBottom:0}});class ParagraphRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return _e.some(tt=>tt.type===ImageType$1||tt.type===ImageReferenceType)?jsxRuntimeExports.jsx("div",{className:paragraphDisplayCls,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})}):jsxRuntimeExports.jsx("p",{className:paragraphCls,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const paragraphCls=mergeStyles$1(astClasses.paragraph,{overflow:"hidden",padding:0,margin:"0px 0px 1.25em 0px",marginBottom:"1em",lineHeight:"1.8",hyphens:"auto",wordBreak:"normal",letterSpacing:"1px",overflowWrap:"break-word","> :last-child":{marginBottom:0}}),paragraphDisplayCls=mergeStyles$1(paragraphCls,{display:"flex",alignItems:"center",justifyContent:"center",padding:"1rem 0",margin:0});class StrongRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.children!==_e.children}render(){const _e=this.props.children;return jsxRuntimeExports.jsx("strong",{className:cls$2,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:_e})})}}const cls$2=mergeStyles$1(astClasses.strong,{fontWeight:600});class TableRenderer extends React.Component{shouldComponentUpdate(_e){const et=this.props;return!isEqual$2(et.columns,_e.columns)||!isEqual$2(et.children,_e.children)}render(){const{columns:_e,children:et}=this.props,tt=_e.map(ot=>ot.align??void 0),[rt,...nt]=et.map(ot=>ot.children.map((it,st)=>jsxRuntimeExports.jsx(NodesRenderer,{nodes:it.children},st)));return jsxRuntimeExports.jsxs("table",{className:cls$1,children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsx("tr",{children:rt.map((ot,it)=>jsxRuntimeExports.jsx(Th,{align:tt[it],children:ot},it))})}),jsxRuntimeExports.jsx("tbody",{children:nt.map((ot,it)=>jsxRuntimeExports.jsx("tr",{children:ot.map((st,lt)=>jsxRuntimeExports.jsx("td",{align:tt[lt],children:st},lt))},it))})]})}}class Th extends React.Component{constructor(_e){super(_e),this.ref={current:null}}shouldComponentUpdate(_e){const et=this.props;return et.align!==_e.align||et.children!==_e.children}render(){const{align:_e,children:et}=this.props;return jsxRuntimeExports.jsx("th",{ref:this.ref,align:_e,children:et})}componentDidMount(){const _e=this.ref.current;_e&&_e.setAttribute("title",_e.innerText)}componentDidUpdate(){const _e=this.ref.current;_e&&_e.setAttribute("title",_e.innerText)}}const cls$1=mergeStyles$1(astClasses.table,{display:"block",overflow:"auto",width:"max-content",maxWidth:"100%",padding:0,borderCollapse:"collapse",borderRadius:"6px",borderSpacing:"0px",border:"1px solid var(--colorBorderTable)",margin:"0 auto 1.25em",lineHeight:"1.6","> thead":{backgroundColor:"var(--colorBgTableHead)",borderBottom:"1px solid #f0f0f0",th:{padding:"0.5rem 1rem",borderLeft:"1px solid var(--colorBorderTable)",wordBreak:"normal",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis","&:first-child":{borderLeft:"none"}}},"> tbody":{tr:{borderTop:"1px solid var(--colorBorderTable)",backgroundColor:"var(--colorBgTableOddRow)"},"tr:nth-child(2n)":{backgroundColor:"var(--colorBgTableEvenRow)"},td:{padding:"0.5rem 1rem",borderLeft:"1px solid var(--colorBorderTable)","&:first-child":{borderLeft:"none"}}}});class TextRenderer extends React.Component{shouldComponentUpdate(_e){return this.props.value!==_e.value}render(){return jsxRuntimeExports.jsx(React.Fragment,{children:this.props.value})}}class ThematicBreakRenderer extends React.Component{shouldComponentUpdate(){return!1}render(){return jsxRuntimeExports.jsx("hr",{className:cls})}}const cls=mergeStyles$1(astClasses.thematicBreak,{boxSizing:"content-box",display:"block",height:0,width:"100%",padding:0,border:0,borderBottom:"1px solid #dadada",outline:0,margin:"1.5em 0px"});function buildNodeRendererMap(j){if(j==null)return defaultNodeRendererMap;let _e=!1;const et={};for(const[tt,rt]of Object.entries(j))rt&&rt!==defaultNodeRendererMap[tt]&&(_e=!0,et[tt]=rt);return _e?{...defaultNodeRendererMap,...et}:defaultNodeRendererMap}const defaultNodeRendererMap={[BlockquoteType]:BlockquoteRenderer,[BreakType]:BreakRenderer,[CodeType]:CodeRenderer,[DefinitionType]:()=>null,[DeleteType]:DeleteRenderer,[EmphasisType]:EmphasisRenderer,[HeadingType]:HeadingRenderer,[HtmlType]:()=>null,[ImageType$1]:ImageRenderer,[ImageReferenceType]:ImageReferenceRenderer,[InlineCodeType]:InlineCodeRenderer,[LinkType]:LinkRenderer,[LinkReferenceType]:LinkReferenceRenderer,[ListType]:ListRenderer,[ListItemType]:ListItemRenderer,[ParagraphType$1]:ParagraphRenderer,[StrongType]:StrongRenderer,[TableType]:TableRenderer,[TextType$1]:TextRenderer,[ThematicBreakType]:ThematicBreakRenderer,_fallback:function j(_e,et){return console.warn(`Cannot find render for \`${_e.type}\` type node with key \`${et}\`:`,_e),null}},ReactMarkdown=j=>{const{presetDefinitionMap:_e,customizedRendererMap:et,preferCodeWrap:tt=!1,showCodeLineno:rt=!0,text:nt,themeScheme:ot="lighten",className:it,style:st}=j,lt=React.useMemo(()=>parser.parse(nt),[nt]),ut=React.useMemo(()=>calcDefinitionMap(lt).definitionMap,[lt]),[ct]=React.useState(()=>new ReactMarkdownViewModel({definitionMap:{..._e,...ut},rendererMap:buildNodeRendererMap(et),preferCodeWrap:tt,showCodeLineno:rt,themeScheme:ot})),dt=React.useMemo(()=>({viewmodel:ct}),[ct]),ft=mergeClasses(rootCls,ot==="darken"&&astClasses.rootDarken,it);return React.useEffect(()=>{ct.preferCodeWrap$.next(tt)},[ct,tt]),React.useEffect(()=>{ct.showCodeLineno$.next(rt)},[ct,rt]),React.useEffect(()=>{ct.themeScheme$.next(ot)},[ct,ot]),jsxRuntimeExports.jsx("div",{className:ft,style:st,children:jsxRuntimeExports.jsx(NodeRendererContextType.Provider,{value:dt,children:jsxRuntimeExports.jsx(NodesRenderer,{nodes:lt.children})})})},rootCls=mergeStyles$1(astClasses.root,{wordBreak:"break-all",userSelect:"unset",[astClasses.listItem]:{[`> ${astClasses.list}`]:{marginLeft:"1.2em"}},"> :last-child":{marginBottom:0}}),BasicViewer=({styles:j,showEmpty:_e,emptyRender:et,previewRender:tt,rawRender:rt,headerRender:nt})=>{const ot=useClasses$o(),[it,st]=reactExports.useState("preview"),lt=reactExports.useCallback(ct=>{st(ct)},[]),ut=useLocStrings();return _e?et?et():jsxRuntimeExports.jsx(MessageBar,{intent:"info",children:ut["No content"]}):jsxRuntimeExports.jsxs("div",{className:j==null?void 0:j.root,children:[rt&&jsxRuntimeExports.jsxs("div",{className:ot.header,children:[jsxRuntimeExports.jsx("div",{style:{flex:1},children:nt==null?void 0:nt()}),jsxRuntimeExports.jsx("div",{className:ot.groupWrapper,children:jsxRuntimeExports.jsxs("div",{className:ot.buttonGroup,children:[jsxRuntimeExports.jsx(Button$2,{value:"preview",size:"small",appearance:it==="preview"?void 0:"transparent",onClick:()=>lt("preview"),children:ut.Preview}),jsxRuntimeExports.jsx(Button$2,{value:"raw",size:"small",appearance:it==="raw"?void 0:"transparent",onClick:()=>lt("raw"),children:ut.Raw})]})})]}),it==="preview"||!rt?tt():null,it==="raw"&&rt?rt():null]})},useClasses$o=makeStyles({header:{display:"flex",alignItems:"center",marginBottom:"12px"},groupWrapper:{display:"flex",flexDirection:"row-reverse"},buttonGroup:{display:"inline-flex",...shorthands.borderRadius("5px"),backgroundColor:tokens.colorNeutralBackground5}}),MarkdownViewer=({content:j})=>{const _e=useStyles$f();return jsxRuntimeExports.jsx(BasicViewer,{styles:_e,showEmpty:!j,previewRender:()=>jsxRuntimeExports.jsx(ReactMarkdown,{text:`${j}`}),rawRender:()=>jsxRuntimeExports.jsx("div",{style:{marginTop:6},children:`${j}`})})},useStyles$f=makeStyles({root:{wordBreak:"break-all",whiteSpace:"break-spaces",...shorthands.overflow("auto")}}),EmbeddingNodeInfo=()=>{var rt,nt,ot;const j=useSelectedSpan(),_e=((rt=j==null?void 0:j.attributes)==null?void 0:rt["llm.response.model"])??((nt=j==null?void 0:j.attributes)==null?void 0:nt["embedding.model"]),et=JSON.parse(((ot=j==null?void 0:j.attributes)==null?void 0:ot["embedding.embeddings"])??"[]")??[],tt=useLocStrings();return jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("span",{children:_e})}),et.map((it,st)=>jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("i",{children:tt.Embedded_text})}),it["embedding.text"]?jsxRuntimeExports.jsx(MarkdownViewer,{content:it["embedding.text"]}):null]},st))]})},CollapsibleTextArea=({children:j})=>{const[_e,et]=reactExports.useState(!0),tt=useClasses$n();return jsxRuntimeExports.jsxs("div",{className:tt.wrapper,children:[jsxRuntimeExports.jsx(Button$2,{icon:_e?jsxRuntimeExports.jsx(TextWrapOff16Regular,{}):jsxRuntimeExports.jsx(TextWrap16Regular,{}),onClick:()=>et(!_e),size:"small"}),jsxRuntimeExports.jsx("pre",{className:`${_e&&tt.wrap} ${tt.pre}`,children:j})]})},useClasses$n=makeStyles({wrapper:{width:"95%",height:"100%",paddingLeft:tokens.spacingHorizontalM,color:tokens.colorNeutralForeground1,display:"flex",flexDirection:"column"},wrap:{wordBreak:"break-all",whiteSpace:"pre-wrap"},pre:{marginTop:0}}),ErrorsTab=()=>{var st;const j=useClasses$m(),_e=useSelectedSpan(),et=(_e==null?void 0:_e.events)??[],[tt,rt]=reactExports.useState((st=et[0])==null?void 0:st.name),nt=et.find(lt=>lt.name===tt),ot=useIsDark(),it=useLocStrings();return jsxRuntimeExports.jsx(Card,{style:{height:"100%"},children:et.length===0?jsxRuntimeExports.jsxs("div",{className:j.emptyWrapper,children:[jsxRuntimeExports.jsx(ShieldCheckmark24Regular,{}),jsxRuntimeExports.jsxs(Text$2,{className:j.emptyText,children:[" ",it.No_Events_found]})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx(TabList,{selectedValue:tt,onTabSelect:(lt,ut)=>{rt(ut.value)},children:et.map(lt=>jsxRuntimeExports.jsx(Tab$1,{value:lt.name,children:lt.name},lt.name))})}),jsxRuntimeExports.jsx("div",{className:j.wrapper,children:nt&&jsxRuntimeExports.jsx(JsonView,{src:nt,collapseStringsAfterLength:1e4,theme:"vscode",dark:ot,customizeNode:({node:lt,indexOrName:ut})=>{if(ut==="exception.message"||ut==="exception.stacktrace")return jsxRuntimeExports.jsx(CollapsibleTextArea,{children:lt})}})})]})})},useClasses$m=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%",...shorthands.overflow("auto"),...shorthands.gap("8px")},grid:{flexGrow:1},emptyWrapper:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"},emptyText:{paddingTop:tokens.spacingVerticalM},exceptionText:{width:"100%",paddingLeft:tokens.spacingHorizontalM,color:tokens.colorNeutralForeground1,...shorthands.margin("0")}}),useEvaluationTracesListRow=j=>{const[_e,et]=reactExports.useState([]),tt=reactExports.useMemo(()=>{const it={};return j.forEach(st=>{var lt;(lt=st==null?void 0:st.context)!=null&<.span_id&&(it[st.context.span_id]={...st,children:[],depth:0})}),j.forEach(st=>{var lt;if(st.parent_id&&((lt=st==null?void 0:st.context)!=null&<.span_id)&&st.parent_id!==""){const ut=it[st.parent_id],ct=it[st.context.span_id];ct.depth=ut.depth+1,ut.children.push(ct)}}),Object.values(it).filter(st=>!st.parent_id)},[j]),rt=reactExports.useCallback(it=>{if(_e.includes(it)){const lt=findRowById(it,tt);if(!lt)return;const ct=(lt.children?findAllDescendants(lt):[]).map(ft=>{var pt;return(pt=ft==null?void 0:ft.context)==null?void 0:pt.span_id}).filter(ft=>ft!==void 0),dt=_e.filter(ft=>ft!==it).filter(ft=>!ct.includes(ft));et(dt)}else et([..._e,it])},[_e,tt]),nt=reactExports.useMemo(()=>{const it=st=>st.reduce((lt,ut)=>{var ft,pt;const dt=((ft=ut==null?void 0:ut.context)!=null&&ft.span_id?_e.includes((pt=ut==null?void 0:ut.context)==null?void 0:pt.span_id):!1)?it(ut.children):[];return[...lt,ut,...dt]},[]);return it(tt)},[_e,tt]),ot=reactExports.useCallback(it=>it?_e.includes(it):!1,[_e]);return{rows:nt,toggleSubRows:rt,isRowExpanded:ot}},findAllDescendants=j=>{let _e=[...j.children];return j.children.forEach(et=>{_e=[..._e,...findAllDescendants(et)]}),_e},findRowById=(j,_e)=>{var et;for(const tt of _e){if(((et=tt==null?void 0:tt.context)==null?void 0:et.span_id)===j)return tt;const rt=findRowById(j,tt.children);if(rt)return rt}return null},CellExpander=({isExpanded:j=!1,onToggle:_e})=>{const et=useClasses$l();return jsxRuntimeExports.jsx("div",{className:et.wrapper,onClick:()=>_e&&_e(!j),children:j?jsxRuntimeExports.jsx(ChevronDown16Filled,{}):jsxRuntimeExports.jsx(ChevronRight16Filled,{})})},useClasses$l=makeStyles({wrapper:{cursor:"pointer",display:"flex"}}),UNDEFINED_VALUE_PLACEHOLDER="N/A",TRACE_POLLING_GAP=6e4,SPAN_POLLING_GAP=3e4,LOCAL_URL_PREFIX="";function KindText({kind:j}){return jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",size:"medium",children:j||UNDEFINED_VALUE_PLACEHOLDER})}function formatDecimal(j){return Math.abs(j=Math.round(j))>=1e21?j.toLocaleString("en").replace(/,/g,""):j.toString(10)}function formatDecimalParts(j,_e){if((et=(j=_e?j.toExponential(_e-1):j.toExponential()).indexOf("e"))<0)return null;var et,tt=j.slice(0,et);return[tt.length>1?tt[0]+tt.slice(2):tt,+j.slice(et+1)]}function exponent(j){return j=formatDecimalParts(Math.abs(j)),j?j[1]:NaN}function formatGroup(j,_e){return function(et,tt){for(var rt=et.length,nt=[],ot=0,it=j[0],st=0;rt>0&&it>0&&(st+it+1>tt&&(it=Math.max(1,tt-st)),nt.push(et.substring(rt-=it,rt+it)),!((st+=it+1)>tt));)it=j[ot=(ot+1)%j.length];return nt.reverse().join(_e)}}function formatNumerals(j){return function(_e){return _e.replace(/[0-9]/g,function(et){return j[+et]})}}var re$1=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function formatSpecifier(j){if(!(_e=re$1.exec(j)))throw new Error("invalid format: "+j);var _e;return new FormatSpecifier({fill:_e[1],align:_e[2],sign:_e[3],symbol:_e[4],zero:_e[5],width:_e[6],comma:_e[7],precision:_e[8]&&_e[8].slice(1),trim:_e[9],type:_e[10]})}formatSpecifier.prototype=FormatSpecifier.prototype;function FormatSpecifier(j){this.fill=j.fill===void 0?" ":j.fill+"",this.align=j.align===void 0?">":j.align+"",this.sign=j.sign===void 0?"-":j.sign+"",this.symbol=j.symbol===void 0?"":j.symbol+"",this.zero=!!j.zero,this.width=j.width===void 0?void 0:+j.width,this.comma=!!j.comma,this.precision=j.precision===void 0?void 0:+j.precision,this.trim=!!j.trim,this.type=j.type===void 0?"":j.type+""}FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function formatTrim(j){e:for(var _e=j.length,et=1,tt=-1,rt;et<_e;++et)switch(j[et]){case".":tt=rt=et;break;case"0":tt===0&&(tt=et),rt=et;break;default:if(!+j[et])break e;tt>0&&(tt=0);break}return tt>0?j.slice(0,tt)+j.slice(rt+1):j}var prefixExponent;function formatPrefixAuto(j,_e){var et=formatDecimalParts(j,_e);if(!et)return j+"";var tt=et[0],rt=et[1],nt=rt-(prefixExponent=Math.max(-8,Math.min(8,Math.floor(rt/3)))*3)+1,ot=tt.length;return nt===ot?tt:nt>ot?tt+new Array(nt-ot+1).join("0"):nt>0?tt.slice(0,nt)+"."+tt.slice(nt):"0."+new Array(1-nt).join("0")+formatDecimalParts(j,Math.max(0,_e+nt-1))[0]}function formatRounded(j,_e){var et=formatDecimalParts(j,_e);if(!et)return j+"";var tt=et[0],rt=et[1];return rt<0?"0."+new Array(-rt).join("0")+tt:tt.length>rt+1?tt.slice(0,rt+1)+"."+tt.slice(rt+1):tt+new Array(rt-tt.length+2).join("0")}const formatTypes={"%":(j,_e)=>(j*100).toFixed(_e),b:j=>Math.round(j).toString(2),c:j=>j+"",d:formatDecimal,e:(j,_e)=>j.toExponential(_e),f:(j,_e)=>j.toFixed(_e),g:(j,_e)=>j.toPrecision(_e),o:j=>Math.round(j).toString(8),p:(j,_e)=>formatRounded(j*100,_e),r:formatRounded,s:formatPrefixAuto,X:j=>Math.round(j).toString(16).toUpperCase(),x:j=>Math.round(j).toString(16)};function identity$4(j){return j}var map$2=Array.prototype.map,prefixes=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function formatLocale$1(j){var _e=j.grouping===void 0||j.thousands===void 0?identity$4:formatGroup(map$2.call(j.grouping,Number),j.thousands+""),et=j.currency===void 0?"":j.currency[0]+"",tt=j.currency===void 0?"":j.currency[1]+"",rt=j.decimal===void 0?".":j.decimal+"",nt=j.numerals===void 0?identity$4:formatNumerals(map$2.call(j.numerals,String)),ot=j.percent===void 0?"%":j.percent+"",it=j.minus===void 0?"−":j.minus+"",st=j.nan===void 0?"NaN":j.nan+"";function lt(ct){ct=formatSpecifier(ct);var dt=ct.fill,ft=ct.align,pt=ct.sign,gt=ct.symbol,mt=ct.zero,bt=ct.width,_t=ct.comma,xt=ct.precision,yt=ct.trim,Et=ct.type;Et==="n"?(_t=!0,Et="g"):formatTypes[Et]||(xt===void 0&&(xt=12),yt=!0,Et="g"),(mt||dt==="0"&&ft==="=")&&(mt=!0,dt="0",ft="=");var St=gt==="$"?et:gt==="#"&&/[boxX]/.test(Et)?"0"+Et.toLowerCase():"",Tt=gt==="$"?tt:/[%p]/.test(Et)?ot:"",kt=formatTypes[Et],$t=/[defgprs%]/.test(Et);xt=xt===void 0?6:/[gprs]/.test(Et)?Math.max(1,Math.min(21,xt)):Math.max(0,Math.min(20,xt));function Ct(It){var Nt=St,Ot=Tt,jt,Mt,Rt;if(Et==="c")Ot=kt(It)+Ot,It="";else{It=+It;var Lt=It<0||1/It<0;if(It=isNaN(It)?st:kt(Math.abs(It),xt),yt&&(It=formatTrim(It)),Lt&&+It==0&&pt!=="+"&&(Lt=!1),Nt=(Lt?pt==="("?pt:it:pt==="-"||pt==="("?"":pt)+Nt,Ot=(Et==="s"?prefixes[8+prefixExponent/3]:"")+Ot+(Lt&&pt==="("?")":""),$t){for(jt=-1,Mt=It.length;++jtRt||Rt>57){Ot=(Rt===46?rt+It.slice(jt+1):It.slice(jt))+Ot,It=It.slice(0,jt);break}}}_t&&!mt&&(It=_e(It,1/0));var Pt=Nt.length+It.length+Ot.length,Gt=Pt>1)+Nt+It+Ot+Gt.slice(Pt);break;default:It=Gt+Nt+It+Ot;break}return nt(It)}return Ct.toString=function(){return ct+""},Ct}function ut(ct,dt){var ft=lt((ct=formatSpecifier(ct),ct.type="f",ct)),pt=Math.max(-8,Math.min(8,Math.floor(exponent(dt)/3)))*3,gt=Math.pow(10,-pt),mt=prefixes[8+pt/3];return function(bt){return ft(gt*bt)+mt}}return{format:lt,formatPrefix:ut}}var locale$1,format,formatPrefix;defaultLocale$1({thousands:",",grouping:[3],currency:["$",""]});function defaultLocale$1(j){return locale$1=formatLocale$1(j),format=locale$1.format,formatPrefix=locale$1.formatPrefix,locale$1}function precisionFixed(j){return Math.max(0,-exponent(Math.abs(j)))}function precisionPrefix(j,_e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(exponent(_e)/3)))*3-exponent(Math.abs(j)))}function precisionRound(j,_e){return j=Math.abs(j),_e=Math.abs(_e)-j,Math.max(0,exponent(_e)-exponent(j))+1}function formatInt(j){return Math.abs(j)<1e6?format(",")(j):format("0.2s")(j)}function formatFloat(j){const _e=Math.abs(j);return _e===0?"0.00":_e<.01?format(".2e")(j):_e<1e3?format("0.2f")(j):format("0.2s")(j)}function formatNumber(j){return Number.isInteger(j)?formatInt(j):formatFloat(j)}function createNumberFormatter(j){return _e=>typeof _e!="number"?"--":j(_e)}const intFormatter=createNumberFormatter(formatInt),floatFormatter=createNumberFormatter(formatFloat),numberFormatter=createNumberFormatter(formatNumber),LatencyText=({startTimeISOString:j,endTimeISOString:_e,textSize:et,tipTextSize:tt})=>{const rt=useClasses$k(),nt=j?new Date(j):void 0,ot=_e?new Date(_e):void 0,it=nt&&ot?ot.getTime()-nt.getTime():void 0,st=reactExports.useMemo(()=>it===void 0?"N/A":it===0?"0 ms":it<10?formatFloat(it)+"ms":formatFloat(it/1e3)+"s",[it]);return jsxRuntimeExports.jsx(Tooltip$1,{content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Text$2,{size:tt,weight:"bold",block:!0,children:"Start Time"}),jsxRuntimeExports.jsx(Text$2,{size:tt,block:!0,children:timeFormat$1(j)}),jsxRuntimeExports.jsx(Text$2,{size:tt,weight:"bold",block:!0,children:"End Time"}),jsxRuntimeExports.jsx(Text$2,{size:tt,block:!0,children:timeFormat$1(_e)})]}),relationship:"label",children:jsxRuntimeExports.jsxs("div",{className:rt.wrapper,children:[jsxRuntimeExports.jsx(Clock20Regular,{}),jsxRuntimeExports.jsx(Text$2,{size:et,children:st})]})})},useClasses$k=makeStyles({wrapper:{display:"inline-flex",flexDirection:"row",alignItems:"center","> svg":{marginRight:"5px"}}});function StatusText({statusCode:j,showText:_e=!1,textSize:et,tooltipContent:tt}){const rt=useClasses$j(),nt=useLocStrings();j=j||nt.unknown;const[ot,it]=reactExports.useMemo(()=>{switch(j==null?void 0:j.toLowerCase()){case"ok":case"completed":return[jsxRuntimeExports.jsx(CheckmarkCircle20Regular,{},"ok"),tokens.colorPaletteGreenForeground1];case"error":return[jsxRuntimeExports.jsx(DismissCircle20Regular,{},"error"),tokens.colorPaletteRedForeground1];case"unset":return[jsxRuntimeExports.jsx(ErrorCircle20Regular,{},"unset"),tokens.colorPaletteYellowForeground1];case"running":return[jsxRuntimeExports.jsx(ArrowClockwiseDashes20Regular,{className:rt.rotate},"running"),tokens.colorPaletteYellowForeground1];default:return[jsxRuntimeExports.jsx(QuestionCircle20Regular,{},"unknown"),tokens.colorPaletteYellowForeground1]}},[rt.rotate,j]);return jsxRuntimeExports.jsx(Tooltip$1,{content:tt??j??"",relationship:"label",children:jsxRuntimeExports.jsxs("div",{className:rt.wrapper,style:{color:it},children:[ot,_e&&jsxRuntimeExports.jsx(Text$2,{size:et,children:j})]})})}const useClasses$j=makeStyles({wrapper:{display:"inline-flex",flexDirection:"row",alignItems:"center",justifyContent:"center","> svg":{marginRight:"5px"}},rotate:{animationDuration:"2s",animationTimingFunction:"linear",animationIterationCount:"infinite",animationName:{from:{transform:"rotate(0deg)"},to:{transform:"rotate(360deg)"}}}});function TimeText({time:j}){const _e=timeFormat$1(j);return jsxRuntimeExports.jsx("time",{children:_e})}function TokenText({token:j,info:_e}){const et=useClasses$i(),tt=typeof j=="number"?intFormatter(j):j;return jsxRuntimeExports.jsxs("div",{className:et.wrapper,children:[jsxRuntimeExports.jsx(NumberCircle020Regular,{}),_e?jsxRuntimeExports.jsx(Tooltip$1,{content:_e,relationship:"description",children:jsxRuntimeExports.jsx("div",{style:{lineHeight:"30px",marginLeft:-24,paddingLeft:24},children:tt})}):jsxRuntimeExports.jsx(Text$2,{children:tt})]})}const useClasses$i=makeStyles({wrapper:{display:"inline-flex",flexDirection:"row",alignItems:"center","> svg":{marginRight:"5px"}}}),CellWrapper=({children:j})=>{const _e=useClasses$h();return jsxRuntimeExports.jsx("div",{className:_e.cellWrapper,children:j})},TextCellWrapper=({children:j})=>{const _e=useClasses$h();return jsxRuntimeExports.jsx("div",{className:_e.textCellWrapper,children:jsxRuntimeExports.jsx("p",{className:_e.textCellP,children:j})})},CellSkeleton=({height:j})=>{const _e=useClasses$h();return jsxRuntimeExports.jsx(Skeleton,{className:_e.textCellWrapper,children:jsxRuntimeExports.jsx(SkeletonItem,{style:{height:`${j??20}px`}})})},useClasses$h=makeStyles({cellWrapper:{display:"flex",flexDirection:"row",alignItems:"center",height:"100%"},textCellWrapper:{display:"flex",flexDirection:"row",alignItems:"center",height:"100%",width:"100%"},textCellP:{wordWrap:"break-word",maxWidth:"100%",lineHeight:tokens.lineHeightBase200,fontSize:tokens.fontSizeBase300,maxHeight:"100%",whiteSpace:"normal",...shorthands.padding(tokens.spacingVerticalS,tokens.spacingHorizontalXS)}}),isValidJson=j=>{if(typeof j=="string")return!1;try{return JSON.stringify(j),!0}catch{return!1}},TraceListJsonCell=({jsonObject:j,isViewDetailEnabled:_e=!1})=>{const et=isValidJson(j);return jsxRuntimeExports.jsx(CellWrapper,{children:et?jsxRuntimeExports.jsx(TraceListObjectCell,{object:j,isViewDetailEnabled:_e}):jsxRuntimeExports.jsx(TextCellWrapper,{children:formatText(String(j))})})},TraceListObjectCell=({object:j,isViewDetailEnabled:_e})=>{const et=useIsDark();return _e?jsxRuntimeExports.jsxs(Dialog,{children:[jsxRuntimeExports.jsx(DialogTrigger,{children:jsxRuntimeExports.jsx("div",{style:{overflow:"hidden",height:"100%",width:"100%",marginTop:"12px",lineHeight:"16px"},children:jsxRuntimeExports.jsx(JsonView,{src:j,enableClipboard:!1,collapsed:1,dark:et,theme:"vscode"})})}),jsxRuntimeExports.jsx(DialogSurface,{children:jsxRuntimeExports.jsx("div",{style:{height:"800px",width:"800ppx",marginTop:"12px",lineHeight:"16px",overflow:"auto"},children:jsxRuntimeExports.jsx(JsonView,{src:j,enableClipboard:!0,collapseStringsAfterLength:200,dark:et,theme:"vscode"})})})]}):jsxRuntimeExports.jsx("div",{style:{overflow:"hidden",height:"100%",width:"100%",marginTop:"12px",lineHeight:"16px"},children:jsxRuntimeExports.jsx(JsonView,{src:j,enableClipboard:!1,collapseStringsAfterLength:50,collapsed:1,dark:et,theme:"vscode"})})},MAX_LENGTH=80;function formatText(j){return j.length>MAX_LENGTH?`${j.slice(0,MAX_LENGTH)}...`:j}const useClasses$g=makeStyles({grid:{},row:{cursor:"pointer"},nameCell:{color:tokens.colorBrandForeground1,fontWeight:tokens.fontWeightSemibold,":hover":{...shorthands.textDecoration("underline")}},kindCell:{display:"flex",alignItems:"center",justifyContent:"flex-start",height:"100%",...shorthands.gap("4px")}}),EvaluationTracesList=({evaluationSpans:j,className:_e})=>{const et=useClasses$g(),tt=useIsDark(),{rows:rt,toggleSubRows:nt,isRowExpanded:ot}=useEvaluationTracesListRow(j),it=useLocStrings();return jsxRuntimeExports.jsx(DataGrid$1$1,{className:`${mergeStyles$1(et.grid,_e)} ${tt?"rdg-dark":"rdg-light"}`,rowClass:()=>et.row,columns:[{key:"kind",name:it.Kind,minWidth:150,maxWidth:300,renderCell:({row:st})=>{var ut,ct,dt;const lt=((ut=st==null?void 0:st.children)==null?void 0:ut.length)>0;return jsxRuntimeExports.jsxs("div",{className:et.kindCell,style:{paddingLeft:st.depth*16+(lt?0:20)},children:[lt&&jsxRuntimeExports.jsx(CellExpander,{isExpanded:ot((ct=st==null?void 0:st.context)==null?void 0:ct.span_id),onToggle:()=>{var ft,pt;(ft=st==null?void 0:st.context)!=null&&ft.span_id&&nt((pt=st==null?void 0:st.context)==null?void 0:pt.span_id)}}),jsxRuntimeExports.jsx(KindText,{kind:(dt=st.attributes)==null?void 0:dt.span_type})]})}},{key:"name",name:it.Name,minWidth:150,maxWidth:300,renderCell:({row:st})=>jsxRuntimeExports.jsx(Tooltip$1,{content:st.name??"",relationship:"label",children:jsxRuntimeExports.jsx("span",{className:et.nameCell,title:st.name,children:st.name})})},{key:"input",name:it.Input,minWidth:200,renderCell:({row:st})=>{var lt;return jsxRuntimeExports.jsx(TraceListJsonCell,{isViewDetailEnabled:!0,jsonObject:JSON.parse(((lt=st.attributes)==null?void 0:lt.inputs)??"{}")})}},{key:"output",name:it.Output,minWidth:200,renderCell:({row:st})=>{var lt;return jsxRuntimeExports.jsx(TraceListJsonCell,{isViewDetailEnabled:!0,jsonObject:JSON.parse(((lt=st.attributes)==null?void 0:lt.output)??"{}")})}},{key:"start_time",name:it.Start_time,minWidth:150,renderCell:({row:st})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:st.start_time})})},{key:"end_time",name:it.End_time,minWidth:150,renderCell:({row:st})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:st.end_time})})},{key:"latency",name:it.Latency,minWidth:120,renderCell:({row:st})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:st.start_time,endTimeISOString:st.end_time})})},{key:"total_tokens",name:it.Total_tokens,minWidth:120,renderCell:({row:st})=>{var lt;return jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(TokenText,{token:Number.parseInt(((lt=st.attributes)==null?void 0:lt["__computed__.cumulative_token_count.total"])??"0")})})}},{key:"status",name:it.Status,minWidth:120,renderCell:({row:st})=>{var lt;return jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(StatusText,{statusCode:(lt=st.status)==null?void 0:lt.status_code})})}}],rows:rt,headerRowHeight:26,rowHeight:80,defaultColumnOptions:{resizable:!0}})},MetricTag=({tag:j})=>{const _e=useClasses$f(),[et,tt]=React.useState(!0),rt=reactExports.useMemo(()=>{if(typeof j.value=="number")return formatNumber(j.value);{const nt=j.value.toString();return et&&nt.length>20?nt.substring(0,20)+"...":nt}},[j.value,et]);return jsxRuntimeExports.jsxs(Badge$2,{className:_e.wrapper,size:"medium",shape:"rounded",appearance:"outline",onClick:()=>tt(!et),children:[jsxRuntimeExports.jsxs("span",{className:_e.name,children:[j.name," "]}),jsxRuntimeExports.jsx("span",{className:_e.data,children:rt})]})},useClasses$f=makeStyles({wrapper:{display:"inline-flex",fontSize:"12px",cursor:"pointer",...shorthands.padding("0px","8px","1px"),...shorthands.borderColor(tokens.colorPaletteGreenBorder2),...shorthands.gap("0.5rem")},name:{color:tokens.colorPaletteGreenBorder2,fontWeight:tokens.fontWeightRegular},data:{color:tokens.colorNeutralForeground1,fontWeight:tokens.fontWeightRegular}}),EvaluationsTab=()=>{var st,lt,ut;const j=useClasses$e(),_e=useEvaluationSpansOfSelectedSpan(),[et,tt]=reactExports.useState((st=_e[0])==null?void 0:st.evaluationName),rt=((lt=_e.find(ct=>ct.evaluationName===et))==null?void 0:lt.evaluationTraces)??[],nt=useSelectedTrace(),ot=(nt==null?void 0:nt.evaluations)??{},it=((ut=ot[et??""])==null?void 0:ut.outputs)??{};return jsxRuntimeExports.jsxs(Card,{style:{height:"100%"},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx(TabList,{selectedValue:et,onTabSelect:(ct,dt)=>{tt(dt.value)},children:_e.map(ct=>jsxRuntimeExports.jsx(Tab$1,{value:ct.evaluationName,children:ct.evaluationName},ct.evaluationName))})}),jsxRuntimeExports.jsxs("div",{className:j.wrapper,children:[et&&ot[et]&&Object.keys(it).map(ct=>{const dt=it[ct];return dt?jsxRuntimeExports.jsx(MetricTag,{tag:{name:ct,value:dt}},ct):null}),jsxRuntimeExports.jsx(EvaluationTracesList,{evaluationSpans:rt,className:j.grid})]})]})},useClasses$e=makeStyles({wrapper:{display:"flex",flexDirection:"column",height:"100%",...shorthands.gap("8px")},grid:{flexGrow:1}}),useMessageCardClasses=makeStyles({card:{...shorthands.borderRadius("8px"),...shorthands.borderColor(tokens.colorNeutralStroke1),...shorthands.borderWidth("1px"),...shorthands.borderStyle("solid"),...shorthands.padding("16px"),...shorthands.margin("16px")}}),LLMNodeInvocationParametersTab=({invocationParameters:j})=>{const _e=useMessageCardClasses();return jsxRuntimeExports.jsx(Card,{className:_e.card,children:jsxRuntimeExports.jsx(JsonView,{src:j})})};var ChatMessageCategory=(j=>(j.System="system",j.Error="error",j.Chatbot="chatbot",j.User="user",j))(ChatMessageCategory||{}),ChatMessageType=(j=>(j.Message="message",j.SessionSplit="session-split",j))(ChatMessageType||{}),CopyStatus=(j=>(j[j.PENDING=0]="PENDING",j[j.COPYING=1]="COPYING",j[j.COPIED=2]="COPIED",j[j.FAILED=3]="FAILED",j))(CopyStatus||{}),ChatboxLocator=(j=>(j.MessageBubble="chatbox-message-bubble",j.MessageContent="chatbox-message-content",j.MessageList="chatbox-message-list",j.MessageActionBar="chatbox-message-action-bar",j))(ChatboxLocator||{}),ChatboxSelector=(j=>(j.MessageBubble='[data-chatbox-locator="chatbox-message-bubble"]',j.MessageContent='[data-chatbox-locator="chatbox-message-content"]',j.MessageList='[data-chatbox-locator="chatbox-message-list"]',j.MessageActionBar='[data-chatbox-locator="chatbox-message-action-bar"]',j))(ChatboxSelector||{});const defaultLocStrings$1={CopyToClipboard:"Copy to clipboard",CopyToClipboard_Copying:"Copying...",CopyToClipboard_Copied:"Copied!",CopyToClipboard_Failed:"Failed!",Header_Clear:"Click to clear all chat histories",Header_Close:"Click to close chat box",Header_EnterFullScreen:"Click to enter full screen mode",Header_ExitFullScreen:"Click to exit full screen mode",Header_Title:"Chat",Input_Placeholder:"Input anything to test...",MessageError_HideDetail:"Hide Detail",MessageError_ShowDetail:"Show Detail",MessageStatus_TimeSpentDesc:"time spent",MessageStatus_TimeSpentDscCapitalized:"Time spent",MessageStatus_TimeSpent_Unit:"sec",MessageStatus_TokensDesc:"Total tokens for generating this",MessageStatus_TokensUint:"tokens",SessionSplit_Desc:"Your session start from here.",Tooltip_Bottom:"Only default variants will be used for chat, if you want to test variants please try bulk test. For chatbot and test app bot, it will only show the chat output.",Tooltip_TotalTokens:"Total tokens",Typing:"Generating chat output for you"};class ChatboxViewModel{constructor(_e){this.calcContentForCopy=ct=>this.calcContentForCopy$.getSnapshot()(ct),this.monitorInputContentChange=ct=>this.inputContentChangeTick$.subscribeStateChange(ct),this.notifyInputContentChange=()=>{this.inputContentChangeTick$.setState(ct=>ct+1)},this.sendMessage=ct=>{const dt=this.editorRef.current;if(!dt){console.log("!!!editorRef is not mounted.");return}const ft=ct??dt.getContent(),pt=this.sendMessage$.getSnapshot(),mt=this.makeUserMessage$.getSnapshot()(ft);this.messages$.setState(bt=>[...bt,mt]),dt.clear(),this.isOthersTyping$.next(!0),pt(ft,this,mt).then(bt=>{bt!==void 0&&this.messages$.setState(_t=>[..._t,bt])}).finally(()=>{this.isOthersTyping$.next(!1)})},this.setCalcContentForCopy=ct=>{this.calcContentForCopy$.next(ct)},this.setMakeUserMessage=ct=>{this.makeUserMessage$.next(ct)},this.setSendMessage=ct=>{this.sendMessage$.next(ct)},this.sessionSplit=ct=>{const dt={id:uuid_1.v4(),type:ChatMessageType.SessionSplit,history:[{category:ChatMessageCategory.System,from:"system",content:ct??"",timestamp:new Date().toISOString()}]};return this.messages$.setState(ft=>[...ft,dt]),dt};const{alias:et="",initialDisabled:tt=!1,initialMessages:rt=[],locStrings:nt=defaultLocStrings$1,calcContentForCopy:ot=ct=>typeof ct.content=="string"?ct.content:JSON.stringify(ct.content),makeUserMessage:it=ct=>({id:uuid_1.v4(),type:ChatMessageType.Message,history:[{category:ChatMessageCategory.User,from:this.alias$.getSnapshot(),timestamp:new Date().toISOString(),content:ct}]}),sendMessage:st=async ct=>({id:uuid_1.v4(),type:ChatMessageType.Message,history:[{category:ChatMessageCategory.Chatbot,from:"chatbot",timestamp:new Date().toISOString(),content:ct}]})}=_e;this.editorRef={current:null};const lt=new State(0),ut=Computed.fromObservables([lt],()=>{var ct;return(ct=this.editorRef.current)==null?void 0:ct.isEmpty()});this.alias$=new State(et),this.disabled$=new State(tt),this.inputContentChangeTick$=lt,this.isEditorEmpty$=ut,this.isOthersTyping$=new State(!1),this.locStrings$=new State(nt),this.messages$=new State(rt),this.calcContentForCopy$=new State(ot),this.makeUserMessage$=new State(it),this.sendMessage$=new State(st)}}const viewmodel=new ChatboxViewModel({sendMessage:()=>Promise.resolve({id:Date.now(),type:ChatMessageType.Message,history:[{category:ChatMessageCategory.System,from:"system",timestamp:new Date().toISOString(),content:"sendMessage not implemented!"}]})});React.createContext({viewmodel});function useEventCallback$1(j){const _e=reactExports.useRef(j);return reactExports.useLayoutEffect(()=>{_e.current=j}),reactExports.useCallback((...et)=>{const tt=_e.current;return tt(...et)},[])}function useCopyAction(j,_e){const[et,tt]=React.useState(CopyStatus.PENDING),rt=useEventCallback$3(ot=>{if(et===CopyStatus.PENDING){tt(CopyStatus.COPYING);try{const it=_e(ot);copy$4(it),tt(CopyStatus.COPIED)}catch{tt(CopyStatus.FAILED)}}});return React.useEffect(()=>{if(et===CopyStatus.COPIED||et===CopyStatus.FAILED){let ot=setTimeout(()=>{ot=void 0,tt(CopyStatus.PENDING)},1500);return()=>{ot&&clearTimeout(ot)}}},[et]),React.useMemo(()=>({key:"copy",group:2,icon:et===CopyStatus.PENDING?jsxRuntimeExports.jsx(Copy20Regular,{}):jsxRuntimeExports.jsx(CopyArrowRight20Regular,{}),tooltip:jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:j.CopyToClipboard}),disabled:et!==CopyStatus.PENDING,onClick:rt,condition:ot=>ot.category===ChatMessageCategory.Chatbot||ot.category===ChatMessageCategory.User||ot.category===ChatMessageCategory.Error}),[j,et,rt])}makeStyles({copyButton:{cursor:"pointer"}});const defaultUploadPopoverLocStrings={Add:"Add",AddAnImage:"Add an image",PasteImageOrLinkHere:"Paste image or link here",UploadFromThisDevice:"Upload from this device"},ImageView=j=>{const{src:_e,alt:et,loading:tt=!1,width:rt,height:nt,styles:ot}=j;return _e?tt?jsxRuntimeExports.jsx("div",{children:"Loading..."}):jsxRuntimeExports.jsx("div",{className:ot==null?void 0:ot.root,children:jsxRuntimeExports.jsx("img",{className:ot==null?void 0:ot.image,src:_e,alt:et,width:rt,height:nt})}):jsxRuntimeExports.jsx("div",{children:"This image can not be previewed."})},ImageViewModal=j=>{const{src:_e,alt:et,visible:tt,loading:rt=!1,width:nt,height:ot,onDismiss:it}=j,st=useStyles$e(),lt=jsxRuntimeExports.jsxs("div",{className:st.container,children:[jsxRuntimeExports.jsxs("div",{className:st.header,children:[jsxRuntimeExports.jsx("h2",{className:st.heading,children:"Preview"}),jsxRuntimeExports.jsx(Button$2,{as:"button",appearance:"transparent",icon:jsxRuntimeExports.jsx(Dismiss24Regular,{}),className:st.dismissBtn,onClick:it})]}),jsxRuntimeExports.jsx("div",{className:st.main,children:jsxRuntimeExports.jsx(ImageView,{src:_e,alt:et,loading:rt,width:nt,height:ot,styles:{image:st.image}})})]});return jsxRuntimeExports.jsx(Modal,{isOpen:tt,isBlocking:!1,onDismiss:it,children:lt})},useStyles$e=makeStyles({container:{display:"flex",flexDirection:"column",flexWrap:"nowrap",...shorthands.padding("16px")},header:{...shorthands.flex(0,0,"auto"),display:"flex",flexDirection:"row",flexWrap:"nowrap",justifyContent:"space-between",marginBottom:"20px"},heading:{...shorthands.margin(0),fontWeight:FontWeights.semibold,fontSize:"inherit"},dismissBtn:{"&&":{fontSize:"16px",lineHeight:"16px",height:"16px",width:"16px",color:tokens.colorNeutralStroke1}},main:{...shorthands.overflow("auto"),display:"flex",justifyContent:"center",alignItems:"center"},image:{width:"auto",height:"auto",maxWidth:"60vw",maxHeight:"60vh"}}),IMAGE_WIDTH="48px",MASK_SELECTOR_CLASS_NAME="__MASK_SELECTOR_CLASS_NAME__",UploadPopoverImagePreview=j=>{const{image:_e,alt:et,isReadonly:tt,onClickDelete:rt}=j,[nt,ot]=React.useState(!1),it=useStyles$d(),st=React.useMemo(()=>{if(_e)return typeof _e=="string"?_e:URL.createObjectURL(_e)},[_e]),lt=React.useCallback(()=>{ot(ct=>!ct)},[]),ut=st||"";return jsxRuntimeExports.jsxs("div",{className:mergeClasses(it.root,tt?it.readonlyRoot:void 0),children:[jsxRuntimeExports.jsxs("div",{className:it.imageContainer,children:[jsxRuntimeExports.jsx("img",{decoding:"async",className:it.image,src:ut,alt:et}),jsxRuntimeExports.jsx("div",{"aria-hidden":!0,className:mergeClasses(it.mask,MASK_SELECTOR_CLASS_NAME),onClick:lt,role:"button",children:jsxRuntimeExports.jsx(ZoomIn20Regular,{})})]}),!tt&&jsxRuntimeExports.jsx(Button$2,{as:"button",className:it.closeButton,icon:jsxRuntimeExports.jsx(Dismiss20Regular,{}),onClick:rt}),jsxRuntimeExports.jsx(ImageViewModal,{src:ut,alt:et||"",visible:nt,onDismiss:lt})]})},useStyles$d=makeStyles({root:{boxSizing:"border-box",display:"flex",height:"32px",width:"80px",...shorthands.border("1px","solid",tokens.colorNeutralStroke2),...shorthands.borderRadius("4px")},readonlyRoot:{width:"48px"},imageContainer:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",width:IMAGE_WIDTH,[`:hover .${MASK_SELECTOR_CLASS_NAME}`]:{visibility:"visible"}},image:{maxWidth:"100%",maxHeight:"100%",width:"auto",height:"auto"},mask:{visibility:"hidden",cursor:"pointer",position:"absolute",top:0,left:0,width:`calc(${IMAGE_WIDTH} - 2px)`,height:"100%",backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",color:tokens.colorNeutralForegroundStaticInverted,...shorthands.borderRadius("4px",0,0,"4px")},closeButton:{width:"32px",...shorthands.border(0)}}),UploadPopoverTrigger=React.forwardRef((j,_e)=>jsxRuntimeExports.jsx(Button$2,{...j,ref:_e,as:"button",appearance:"transparent",size:"medium",icon:jsxRuntimeExports.jsx(Attach16Regular,{})}));UploadPopoverTrigger.displayName="UploadPopoverTrigger";const mergeStyleSlots=(j,..._e)=>{const et={...j};for(const tt of Object.keys(j))et[tt]=mergeClasses(j[tt],..._e.map(rt=>rt==null?void 0:rt[tt]));return et},UploadPopover=React.forwardRef(({isUploading:j,disabled:_e,trigger:et=jsxRuntimeExports.jsx(UploadPopoverTrigger,{}),locStrings:tt=defaultUploadPopoverLocStrings,styles:rt,events:nt,onUpload:ot,onRenderImagePreview:it},st)=>{const lt=mergeStyleSlots(useStyles$c(),rt),{onDelete:ut,onInputBlur:ct,onPaste:dt,onLocalUpload:ft}=nt??{};React.useImperativeHandle(st,()=>({open(){gt(!0)},close(){gt(!1)},reset:()=>{St()},retrieve:()=>_t}));const[pt,gt]=React.useState(!1),[mt,bt]=React.useState(""),[_t,xt]=React.useState(void 0),yt=React.useRef(null),Et=React.useCallback((Nt,Ot)=>{gt(Ot.open||!1)},[]),St=React.useCallback(()=>{bt(""),xt(void 0),yt.current&&(yt.current.value="")},[]),Tt=React.useCallback(Nt=>{const Ot=Nt[0];xt(Ot),dt==null||dt(Ot)},[dt]),kt=React.useCallback(Nt=>{Nt.clipboardData.files&&Tt&&Tt(Nt.clipboardData.files)},[Tt]),$t=React.useCallback(()=>{ct==null||ct(mt),xt(mt)},[mt,ct]),Ct=React.useCallback(()=>{_t&&ot(_t)},[_t,ot]),It=React.useMemo(()=>it?it({cachedImage:_t,customerInputContent:mt,isReadonly:_e||j||!1}):jsxRuntimeExports.jsx(UploadPopoverImagePreview,{image:_t||mt,alt:mt||"",isReadonly:j,onClickDelete:()=>{St(),ut==null||ut()}}),[mt,_t,St,_e,j,ut,it]);return jsxRuntimeExports.jsxs(Popover,{positioning:"above-end",open:pt,onOpenChange:Et,children:[jsxRuntimeExports.jsx(PopoverTrigger,{disableButtonEnhancement:!0,children:et}),jsxRuntimeExports.jsxs(PopoverSurface,{className:lt.attachUploadPopover,children:[jsxRuntimeExports.jsxs("div",{className:lt.attachUploadHeader,children:[jsxRuntimeExports.jsx("span",{children:tt.AddAnImage}),jsxRuntimeExports.jsx(Button$2,{as:"button",disabled:_e,appearance:"transparent",icon:jsxRuntimeExports.jsx(Dismiss24Regular,{}),onClick:()=>{gt(!1)}})]}),jsxRuntimeExports.jsxs("div",{className:lt.attachUploadInputWrapper,children:[_t?It:jsxRuntimeExports.jsx(Input,{className:lt.attachUploadInput,value:mt,disabled:_e,placeholder:tt.PasteImageOrLinkHere,onChange:(Nt,Ot)=>{xt(void 0),bt(Ot.value)},onPaste:kt,onBlur:$t}),jsxRuntimeExports.jsx(Button$2,{as:"button",disabled:_e||j||!_t&&!mt,className:lt.addButton,onClick:Ct,children:j?jsxRuntimeExports.jsx(Spinner,{size:"tiny"}):tt.Add})]}),jsxRuntimeExports.jsx("input",{tabIndex:-1,"aria-hidden":!0,ref:yt,disabled:_e,className:lt.invisibleFileInput,onChange:Nt=>{var jt;const Ot=(jt=Nt.target.files)==null?void 0:jt[0];Ot&&(ft==null||ft(Ot)),xt(Ot)},type:"file",accept:"image/*"}),jsxRuntimeExports.jsx("div",{className:lt.triggerUploadButton,children:jsxRuntimeExports.jsx(Button$2,{as:"button",disabled:_e,appearance:"transparent",icon:jsxRuntimeExports.jsx(ArrowUpload24Regular,{}),onClick:()=>{var Nt;(Nt=yt.current)==null||Nt.click()},children:tt.UploadFromThisDevice})})]})]})});UploadPopover.displayName="UploadPopover";const useStyles$c=makeStyles({attachUploadPopover:{width:"400px",backgroundColor:tokens.colorNeutralBackground1,...shorthands.padding("12px")},attachUploadHeader:{display:"flex",justifyContent:"space-between",alignItems:"center",fontWeight:500,fontSize:"16px",lineHeight:"22px"},attachUploadInputWrapper:{marginTop:"8px",display:"flex",columnGap:"8px",justifyContent:"space-between"},attachUploadInput:{flexGrow:1},addButton:{minWidth:"52px"},invisibleFileInput:{display:"none"},triggerUploadButton:{marginTop:"8px",display:"flex",justifyContent:"space-between"}});function DefaultMessageContentRenderer(j){const{content:_e,className:et}=j,tt=useStyles$b(),rt=mergeClasses(tt.content,et);if(typeof _e=="string")return jsxRuntimeExports.jsx("p",{className:rt,children:_e});const nt=JSON.stringify(_e,null,2);return jsxRuntimeExports.jsx("pre",{className:rt,children:nt})}DefaultMessageContentRenderer.displayName="DefaultMessageContentRenderer";const useStyles$b=makeStyles({content:{...shorthands.overflow("auto"),wordBreak:"break-all",whiteSpace:"break-spaces"}});function DefaultMessageErrorRenderer(j){const{error:_e,locStrings:et,className:tt}=j,[rt,nt]=React.useState(!1),ot=useStyles$a(),it=mergeClasses(ot.errorMessageDetail,!rt&&ot.errorMessageDetailHidden,tt);return jsxRuntimeExports.jsxs(React.Fragment,{children:[jsxRuntimeExports.jsx("p",{children:jsxRuntimeExports.jsx(Link$1,{onClick:()=>nt(st=>!st),children:rt?et.MessageError_HideDetail:et.MessageError_ShowDetail})}),jsxRuntimeExports.jsx("p",{className:it,children:_e})]})}DefaultMessageErrorRenderer.displayName="DefaultMessageErrorRenderer";const useStyles$a=makeStyles({errorMessageDetail:{...shorthands.margin("0","0","0","0"),wordBreak:"break-word",whiteSpace:"break-spaces"},errorMessageDetailHidden:{display:"none"}}),useToolbarDefaultActions=()=>React.useMemo(()=>[],[]);function DefaultMessageActionBarRenderer(j){const{useMessageActions:_e=useToolbarDefaultActions,data:et,className:tt}=j,rt=_e(et),nt=useStyles$9(),ot=React.useMemo(()=>{const lt=rt.filter(ct=>!ct.condition||ct.condition(et)).sort((ct,dt)=>ct.group-dt.group),ut=[];for(let ct=0,dt;ct0))return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{});const st=[];for(let lt=0;ltmt(et)},dt)},dt))}lt+1{et>0&&rt(et-1)},it=()=>{et=Mt?jt:""+Array(Mt+1-Lt.length).join(Rt)+jt},yt={s:xt,z:function(jt){var Mt=-jt.utcOffset(),Rt=Math.abs(Mt),Lt=Math.floor(Rt/60),Pt=Rt%60;return(Mt<=0?"+":"-")+xt(Lt,2,"0")+":"+xt(Pt,2,"0")},m:function jt(Mt,Rt){if(Mt.date()1)return jt(qt[0])}else{var Yt=Mt.name;St[Yt]=Mt,Pt=Yt}return!Lt&&Pt&&(Et=Pt),Pt||!Lt&&Et},Ct=function(jt,Mt){if(kt(jt))return jt.clone();var Rt=typeof Mt=="object"?Mt:{};return Rt.date=jt,Rt.args=arguments,new Nt(Rt)},It=yt;It.l=$t,It.i=kt,It.w=function(jt,Mt){return Ct(jt,{locale:Mt.$L,utc:Mt.$u,x:Mt.$x,$offset:Mt.$offset})};var Nt=function(){function jt(Rt){this.$L=$t(Rt.locale,null,!0),this.parse(Rt),this.$x=this.$x||Rt.x||{},this[Tt]=!0}var Mt=jt.prototype;return Mt.parse=function(Rt){this.$d=function(Lt){var Pt=Lt.date,Gt=Lt.utc;if(Pt===null)return new Date(NaN);if(It.u(Pt))return new Date;if(Pt instanceof Date)return new Date(Pt);if(typeof Pt=="string"&&!/Z$/i.test(Pt)){var qt=Pt.match(mt);if(qt){var Yt=qt[2]-1||0,Xt=(qt[7]||"0").substring(0,3);return Gt?new Date(Date.UTC(qt[1],Yt,qt[3]||1,qt[4]||0,qt[5]||0,qt[6]||0,Xt)):new Date(qt[1],Yt,qt[3]||1,qt[4]||0,qt[5]||0,qt[6]||0,Xt)}}return new Date(Pt)}(Rt),this.init()},Mt.init=function(){var Rt=this.$d;this.$y=Rt.getFullYear(),this.$M=Rt.getMonth(),this.$D=Rt.getDate(),this.$W=Rt.getDay(),this.$H=Rt.getHours(),this.$m=Rt.getMinutes(),this.$s=Rt.getSeconds(),this.$ms=Rt.getMilliseconds()},Mt.$utils=function(){return It},Mt.isValid=function(){return this.$d.toString()!==gt},Mt.isSame=function(Rt,Lt){var Pt=Ct(Rt);return this.startOf(Lt)<=Pt&&Pt<=this.endOf(Lt)},Mt.isAfter=function(Rt,Lt){return Ct(Rt){const{duration:_e,tokens:et,locStrings:tt,className:rt}=j,nt=_e.toFixed(2).replace(/\.?0*$/,"");return jsxRuntimeExports.jsxs("div",{className:rt,children:[et>0&&jsxRuntimeExports.jsxs(React.Fragment,{children:[`${tt.MessageStatus_TokensDesc}: `,jsxRuntimeExports.jsx("b",{children:et}),` ${tt.MessageStatus_TokensUint}, `]}),`${et>0?tt.MessageStatus_TimeSpentDesc:tt.MessageStatus_TimeSpentDscCapitalized}: `,jsxRuntimeExports.jsx("b",{children:nt}),` ${tt.MessageStatus_TimeSpent_Unit}`]})};DefaultMessageStatusRenderer.displayName="DefaultMessageStatusRenderer";const EMPTY_CONTEXTUAL_MENU_ITEMS=[],defaultUseContextualMenuItems=j=>EMPTY_CONTEXTUAL_MENU_ITEMS;function DefaultMessageBubbleRenderer(j){const{MessageAvatarRenderer:_e,MessageContentRenderer:et=DefaultMessageContentRenderer,MessageErrorRenderer:tt=DefaultMessageErrorRenderer,MessageSenderRenderer:rt=DefaultMessageSenderRenderer,MessagePaginationRenderer:nt=DefaultMessagePaginationRenderer,MessageActionBarRenderer:ot=DefaultMessageActionBarRenderer,MessageStatusRenderer:it=DefaultMessageStatusRenderer,useMessageContextualMenuItems:st=defaultUseContextualMenuItems,useMessageActions:lt,initialPage:ut=-1,locStrings:ct,message:dt,className:ft}=j,pt=useStyles$7(),[gt,mt]=React.useState((ut%dt.history.length+dt.history.length)%dt.history.length),[bt,_t]=React.useState(!1),xt=React.useRef(null),yt=React.useRef(null),Et=React.useCallback(()=>{_t(!1)},[]),St=React.useCallback(It=>{const Nt=xt.current,Ot=yt.current;if(Nt&&Ot){const jt=It.clientX,Mt=It.clientY,Rt=Nt.getBoundingClientRect(),Lt=Rt.left+window.scrollX,Pt=Rt.top+window.scrollY,Gt=jt-Lt,qt=Mt-Pt;Ot.style.left=`${Gt}px`,Ot.style.top=`${qt}px`}},[]),Tt=React.useCallback(It=>{It.preventDefault(),St(It),_t(!0)},[]),kt=dt.history[gt],$t=kt.category===ChatMessageCategory.User?"right":"left",Ct=st(kt);return React.useEffect(()=>{const It=()=>{_t(!1)};return document.addEventListener("mousedown",It),()=>document.removeEventListener("mousedown",It)},[]),jsxRuntimeExports.jsx("div",{className:pt.container,"data-chatbox-locator":ChatboxLocator.MessageBubble,"data-position":$t,children:jsxRuntimeExports.jsxs("div",{className:mergeClasses(pt.message,ft),"data-position":$t,children:[jsxRuntimeExports.jsx("div",{className:pt.avatar,children:_e&&jsxRuntimeExports.jsx(_e,{data:kt,position:$t})}),jsxRuntimeExports.jsxs("div",{className:pt.main,children:[jsxRuntimeExports.jsx("div",{className:pt.sender,children:jsxRuntimeExports.jsx(rt,{data:kt,position:$t})}),jsxRuntimeExports.jsxs("div",{ref:xt,className:pt.content,"data-category":kt.category,"data-chatbox-locator":ChatboxLocator.MessageContent,onContextMenu:Tt,onClick:St,children:[jsxRuntimeExports.jsx(et,{content:kt.content,className:pt.contentMain}),kt.error&&jsxRuntimeExports.jsx(tt,{error:kt.error,locStrings:ct,className:pt.error}),typeof kt.duration=="number"&&typeof kt.tokens=="number"&&jsxRuntimeExports.jsx(it,{duration:kt.duration,tokens:kt.tokens,locStrings:ct,className:pt.status}),dt.history.length>1&&jsxRuntimeExports.jsx(nt,{className:pt.pagination,message:dt,current:gt,setCurrent:mt}),jsxRuntimeExports.jsx("div",{ref:yt,className:pt.contentMenuAnchor}),Ct.length>0&&jsxRuntimeExports.jsx(ContextualMenu,{items:Ct,hidden:!bt,target:yt,onItemClick:Et,onDismiss:Et,className:pt.contextualMenu}),jsxRuntimeExports.jsx("div",{className:pt.actionBar,"data-chatbox-locator":ChatboxLocator.MessageActionBar,children:jsxRuntimeExports.jsx(ot,{data:kt,locStrings:ct,useMessageActions:lt})})]})]})]})})}DefaultMessageBubbleRenderer.displayName="DefaultMessageBubbleRenderer";const useStyles$7=makeStyles({container:{...shorthands.margin("16px","0"),display:"flex",justifyContent:"flex-start",'&&[data-position="right"]':{justifyContent:"flex-end"},width:"100%"},message:{display:"flex",flexDirection:"row",'&&[data-position="right"]':{flexDirection:"row-reverse"},maxWidth:"calc(100% - 80px)"},avatar:{...shorthands.flex(0,0,"auto")},main:{...shorthands.flex(1,1,"auto"),display:"flex",flexDirection:"column",width:"100%"},sender:{...shorthands.flex(0,0,"auto")},content:{...shorthands.flex(1,1,"auto"),...shorthands.borderRadius("4px"),position:"relative",boxSizing:"border-box",minWidth:"48px",wordBreak:"break-word",lineHeight:"22px","> p":{...shorthands.margin(0)},[`&:hover > ${ChatboxSelector.MessageActionBar}`]:{display:"flex",visibility:"visible"},[`&&[data-category="${ChatMessageCategory.System}"]`]:{color:tokens.colorNeutralForeground4},[`&&[data-category="${ChatMessageCategory.Error}"]`]:{backgroundColor:tokens.colorPaletteRedBackground2,color:tokens.colorNeutralForeground1},[`&&[data-category="${ChatMessageCategory.Chatbot}"]`]:{backgroundColor:tokens.colorNeutralBackground4,color:tokens.colorNeutralForeground1},[`&&[data-category="${ChatMessageCategory.User}"]`]:{backgroundColor:tokens.colorBrandBackground2,color:tokens.colorNeutralForeground1}},contentMain:{...shorthands.padding("12px","20px","12px","12px")},contextualMenu:{width:"auto",minWidth:"180px"},contentMenuAnchor:{position:"absolute",top:"0px",left:"0px"},error:{...shorthands.borderTop("1px","solid",tokens.colorPaletteDarkRedBorderActive),marginTop:"8px !important",paddingTop:"8px"},pagination:{},status:{...shorthands.borderTop("1px","solid",tokens.colorNeutralStroke1),...shorthands.padding("0px","20px","0px","12px"),fontSize:"12px",fontStyle:"italic"},actionBar:{position:"absolute",right:"0px",top:"-32px",display:"none",justifyContent:"space-between"}});function DefaultSessionSplitRenderer(j){const{locStrings:_e,className:et}=j,tt=useStyles$6();return jsxRuntimeExports.jsx("div",{className:mergeClasses(tt.sessionSplit,et),children:jsxRuntimeExports.jsxs("span",{children:["--- ",_e.SessionSplit_Desc," ---"]})})}DefaultSessionSplitRenderer.displayName="DefaultSessionSplitRenderer";const useStyles$6=makeStyles({sessionSplit:{display:"flex",justifyContent:"center",height:"24px",color:tokens.colorNeutralForeground4}});makeStyles({hintTyping:{...shorthands.overflow("hidden"),width:"1px",height:"1px"},typingDots:{...shorthands.transition("opacity","0.1s"),display:"flex",alignItems:"center",height:"22.5px"},typingDot:{...shorthands.borderRadius("50%"),...shorthands.margin("0","0","0","6px"),display:"inline-block",width:"6px",height:"6px",backgroundColor:tokens.colorNeutralStroke1,animationDuration:"1.5s",animationTimingFunction:"linear",animationIterationCount:"infinite",animationName:{"0%":{transform:"scale(1)"},"16.67%":{transform:"scale(0)"},"33.33%":{transform:"scale(0)"},"50%":{transform:"scale(0)"},"66.67%":{transform:"scale(1)"},"83.33%":{transform:"scale(1)"},"100%":{transform:"scale(1)"}},"&:nth-child(1)":{...shorthands.margin("0px")},"&:nth-child(2)":{animationDelay:"0.18s"},"&:nth-child(3)":{animationDelay:"0.36s"}}});makeStyles({toolbar:{display:"flex",justifyContent:"flex-end"}});makeStyles({input:{...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),boxSizing:"border-box",display:"grid",gridTemplateRows:"1fr auto"},editor:{boxSizing:"border-box"},editorInner:{...shorthands.border("0px"),boxSizing:"border-box"},editorToolbar:{boxSizing:"border-box",display:"flex",alignItems:"flex-end",justifyContent:"flex-end",height:"100%"}});function MessageListRenderer(j){const{MessageAvatarRenderer:_e,MessageContentRenderer:et,MessageErrorRenderer:tt,MessageSenderRenderer:rt,MessageBubbleRenderer:nt=DefaultMessageBubbleRenderer,SessionSplitRenderer:ot=DefaultSessionSplitRenderer,className:it,bubbleClassName:st,sessionSplitClassName:lt,locStrings:ut,messages:ct,useMessageContextualMenuItems:dt,useMessageActions:ft}=j,pt=useStyles$5();return jsxRuntimeExports.jsx("div",{className:mergeClasses(pt.container,it),"data-chatbox-locator":ChatboxLocator.MessageList,children:ct.map(gt=>{switch(gt.type){case ChatMessageType.Message:return jsxRuntimeExports.jsx(nt,{MessageAvatarRenderer:_e,MessageContentRenderer:et,MessageErrorRenderer:tt,MessageSenderRenderer:rt,locStrings:ut,message:gt,className:st,useMessageContextualMenuItems:dt,useMessageActions:ft},gt.id);case ChatMessageType.SessionSplit:return jsxRuntimeExports.jsx(ot,{locStrings:ut,className:lt},gt.id);default:return jsxRuntimeExports.jsx(React.Fragment,{},gt.id)}})})}MessageListRenderer.displayName="MessageListRenderer";const useStyles$5=makeStyles({container:{boxSizing:"border-box"}}),Zp=class Zp extends React.PureComponent{render(){const{elements:_e,deltaH:et,deltaW:tt,scaleH:rt,scaleW:nt,className:ot,elementClassName:it}=this.props;return jsxRuntimeExports.jsx("div",{className:ot,children:_e.map((st,lt)=>{const ut=(st.top-et)*rt,ct=(st.left-tt)*nt,dt=st.height*rt,ft=st.width*nt,pt={top:ut,left:ct,height:dt,width:ft};return st.backgroundColor&&(pt.backgroundColor=st.backgroundColor),jsxRuntimeExports.jsx("div",{className:it,style:pt},lt)})})}};Zp.displayName="MinimapOverview";let MinimapOverview=Zp;const MinimapViewport=j=>{const{scaleH:_e,sourceRootRef:et,sourceQuerySelector:tt,className:rt}=j,[nt,ot]=React.useState(0),[it,st]=React.useState(0),lt=useStyles$4();return React.useLayoutEffect(()=>{var ft,pt;const ut=(pt=(ft=et.current)==null?void 0:ft.querySelector(tt))==null?void 0:pt.parentElement;if(!ut)return()=>{};const{height:ct}=ut.getBoundingClientRect();st(ct);const dt=()=>{ot(ut.scrollTop||0)};return ut.addEventListener("scroll",dt),()=>ut.removeEventListener("scroll",dt)},[et.current]),jsxRuntimeExports.jsx("div",{className:mergeClasses(lt.viewport,rt),style:{position:"absolute",top:nt*_e,height:`${it*_e}px`}})};MinimapViewport.displayName="MinimapViewport";const useStyles$4=makeStyles({viewport:{display:"block",width:"100%",left:0,right:0,backgroundColor:"rgba(0, 0, 0, 0.15)"}}),Minimap=j=>{const{SCROLL_DELTA_THRESHOLD:_e=5,sourceRootRef:et,sourceQuerySelector:tt,sourceElementQuerySelector:rt,className:nt,overviewClassName:ot,overviewElementClassName:it,viewportClassName:st,style:lt}=j,[ut,ct]=React.useState([]),[dt,ft]=React.useState(0),[pt,gt]=React.useState(0),[mt,bt]=React.useState(0),[_t,xt]=React.useState(0),[yt,Et]=React.useState(0),[St,Tt]=React.useState(0),[kt,$t]=React.useState(0),[Ct,It]=React.useState(0),Nt=_t<=0?0:pt/_t||.1,Ot=mt<=0?0:Math.max(1/mt,Math.min(Nt,(dt-10)/mt||.1)),jt=React.useRef(null),Mt=React.useRef(null),Rt=React.useRef(!1),Lt=useEventCallback$1(tr=>{var mr,Er;if(tr.preventDefault(),tr.stopPropagation(),Rt.current=!0,!Mt.current)return;const cr=(Er=(mr=et.current)==null?void 0:mr.querySelector(tt))==null?void 0:Er.parentElement;if(cr){const _r=(tr.clientY-Mt.current.getBoundingClientRect().top)/Ot;Math.abs(cr.scrollTop-_r)>_e&&(cr.scrollTop=_r)}}),Pt=useEventCallback$1(tr=>{var mr,Er;if(tr.preventDefault(),tr.stopPropagation(),!Rt.current||!Mt.current)return;const cr=(Er=(mr=et.current)==null?void 0:mr.querySelector(tt))==null?void 0:Er.parentElement;if(cr){const _r=(tr.clientY-Mt.current.getBoundingClientRect().top)/Ot;Math.abs(cr.scrollTop-_r)>_e&&(cr.scrollTop=_r)}}),Gt=React.useCallback(tr=>{const cr=tr.querySelector(tt);if(!cr)return;const mr=cr.querySelectorAll(rt),Er=[];for(let _r=0;_r{const tr=()=>{Rt.current=!1};return document.addEventListener("mouseup",tr),()=>document.removeEventListener("mouseup",tr)},[]),React.useLayoutEffect(()=>{const tr=jt.current;if(!tr)return;const{height:cr,width:mr}=tr.getBoundingClientRect();ft(cr),gt(mr)},[]),React.useLayoutEffect(()=>{const tr=et.current;if(!tr)return()=>{};Gt(tr);const cr=new MutationObserver(mr=>{for(const Er of mr)Er.type==="childList"&&Gt(tr)});return cr.observe(tr,{childList:!0,subtree:!0}),()=>{cr.disconnect()}},[et.current,Gt]);const qt=useStyles$3(),Yt=mt+yt-kt,Xt=_t+St-Ct;return jsxRuntimeExports.jsx("div",{ref:jt,className:mergeClasses(qt.container,nt),style:lt,children:jsxRuntimeExports.jsxs("div",{ref:Mt,className:qt.minimap,onMouseDown:Lt,onMouseMove:Pt,children:[jsxRuntimeExports.jsx(MinimapOverview,{elements:ut,deltaH:Yt,deltaW:Xt,scaleH:Ot,scaleW:Nt,className:mergeClasses(qt.overview,ot),elementClassName:mergeClasses(qt.minimapElement,it)}),jsxRuntimeExports.jsx(MinimapViewport,{scaleH:Ot,sourceRootRef:et,sourceQuerySelector:tt,className:st})]})})};Minimap.displayName="Minimap";const useStyles$3=makeStyles({container:{height:"100%",width:"100%",...shorthands.overflow("hidden")},minimap:{position:"relative",width:"100%",height:"100%"},overview:{},minimapElement:{position:"absolute",backgroundColor:"#c292f9"}});makeStyles({editor:{...shorthands.padding("8px"),...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),boxSizing:"border-box",display:"block",width:"100%",userSelect:"none",position:"relative",'&[data-disabled="true"]':{backgroundColor:tokens.colorNeutralBackgroundDisabled}},textarea:{...shorthands.padding("0px"),...shorthands.overflow("hidden","auto"),...shorthands.borderWidth(0),...shorthands.outline(0,"solid","transparent"),backgroundColor:"transparent",boxSizing:"border-box",resize:"none",appearance:"none",overflowWrap:"break-word",lineHeight:"24px",height:"24px",width:"100%",wordBreak:"break-all",color:tokens.colorNeutralForeground1,userSelect:"text"}});var LexicalLink_prod={},LexicalUtils_prod={},LexicalSelection_prod={},Lexical_prod={};let ba={},ca={},da={},ea={},fa={},ka$1={},la={},ma={},oa={},pa={},qa={},ra={},sa={},ta={},ua={},va={},wa={},ya={},za={},Aa={},Ba={},Ca={},Da={},Ga={},Ha={},Ia={},Ja={},Ka={},La={},Ma={},Na={},Oa={},Pa={},Qa={},Ra={},Sa={};function n$6(j){let _e=new URLSearchParams;_e.append("code",j);for(let et=1;et{let _e=u$7();return _e!==null?_e.clone():null})}function ub(j,_e,et){pb=!0;let tt=100{let rt=u$7()||tb(j);var nt=new Map,ot=j.getRootElement(),it=j._editorState,st=j._blockCursorElement;let lt=!1,ut="";for(var ct=0;ct<_e.length;ct++){var dt=_e[ct],ft=dt.type,pt=dt.target,gt=vb(pt,it);if(!(gt===null&&pt!==ot||y$7(gt))){if(ft==="characterData"){if(dt=tt&&B$5(gt))e:{dt=rt,ft=pt;var mt=gt;if(C$5(dt)){var bt=dt.anchor.getNode();if(bt.is(mt)&&dt.format!==bt.getFormat()){dt=!1;break e}}dt=ft.nodeType===3&&mt.isAttached()}dt&&(mt=wb(j._window),ft=dt=null,mt!==null&&mt.anchorNode===pt&&(dt=mt.anchorOffset,ft=mt.focusOffset),pt=pt.nodeValue,pt!==null&&xb(gt,pt,dt,ft,!1))}else if(ft==="childList"){for(lt=!0,ft=dt.addedNodes,mt=0;mt{ub(j,_e,et)})}function Eb(j,_e){let et=j.__mode,tt=j.__format;j=j.__style;let rt=_e.__mode,nt=_e.__format;return _e=_e.__style,(et===null||et===rt)&&(tt===null||tt===nt)&&(j===null||j===_e)}function Fb(j,_e){let et=j.mergeWithSibling(_e),tt=F$3()._normalizedNodes;return tt.add(j.__key),tt.add(_e.__key),et}function Gb(j){if(j.__text===""&&j.isSimpleText()&&!j.isUnmergeable())j.remove();else{for(var _e;(_e=j.getPreviousSibling())!==null&&B$5(_e)&&_e.isSimpleText()&&!_e.isUnmergeable();)if(_e.__text==="")_e.remove();else{Eb(_e,j)&&(j=Fb(_e,j));break}for(var et;(et=j.getNextSibling())!==null&&B$5(et)&&et.isSimpleText()&&!et.isUnmergeable();)if(et.__text==="")et.remove();else{Eb(j,et)&&Fb(j,et);break}}}function Hb(j){return Ib(j.anchor),Ib(j.focus),j}function Ib(j){for(;j.type==="element";){var _e=j.getNode(),et=j.offset;if(et===_e.getChildrenSize()?(_e=_e.getChildAtIndex(et-1),et=!0):(_e=_e.getChildAtIndex(et),et=!1),B$5(_e)){j.set(_e.__key,et?_e.getTextContentSize():0,"text");break}else if(!E$3(_e))break;j.set(_e.__key,et?_e.getChildrenSize():0,"element")}}let Jb=1,Kb=typeof queueMicrotask=="function"?queueMicrotask:j=>{Promise.resolve().then(j)};function Rb(j){let _e=document.activeElement;if(_e===null)return!1;let et=_e.nodeName;return y$7(vb(j))&&(et==="INPUT"||et==="TEXTAREA"||_e.contentEditable==="true"&&_e.__lexicalEditor==null)}function Sb(j,_e,et){let tt=j.getRootElement();try{return tt!==null&&tt.contains(_e)&&tt.contains(et)&&_e!==null&&!Rb(_e)&&Tb(_e)===j}catch{return!1}}function Tb(j){for(;j!=null;){let _e=j.__lexicalEditor;if(_e!=null)return _e;j=Ub(j)}return null}function Vb(j){return j.isToken()||j.isSegmented()}function Wb(j){for(;j!=null;){if(j.nodeType===3)return j;j=j.firstChild}return null}function Xb(j,_e,et){let tt=gb[_e];return et!==null&&(j&tt)===(et&tt)||(j^=tt,_e==="subscript"?j&=~gb.superscript:_e==="superscript"&&(j&=~gb.subscript)),j}function Yb(j,_e){if(_e!=null)j.__key=_e;else{G$3(),99J$1().getTextContent())}function gc(j,_e){v$6(j,()=>{var et=$b();if(!et.isEmpty())if(_e==="root")J$1().markDirty();else{et=et._nodeMap;for(let[,tt]of et)tt.markDirty()}},j._pendingEditorState===null?{tag:"history-merge"}:void 0)}function J$1(){return $b()._nodeMap.get("root")}function zb(j){G$3();let _e=$b();j!==null&&(j.dirty=!0,j.setCachedNodes(null)),_e._selection=j}function hc(j){var _e=F$3(),et;e:{for(et=j;et!=null;){let tt=et[`__lexicalKey_${_e._key}`];if(tt!==void 0){et=tt;break e}et=Ub(et)}et=null}return et===null?(_e=_e.getRootElement(),j===_e?I$1("root"):null):I$1(et)}function ic(j){return/[\uD800-\uDBFF][\uDC00-\uDFFF]/g.test(j)}function jc(j){let _e=[];for(;j!==null;)_e.push(j),j=j._parentEditor;return _e}function kc(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function lc(j,_e,et){if(_e=wb(_e._window),_e!==null){var tt=_e.anchorNode,{anchorOffset:rt,focusOffset:nt}=_e;if(tt!==null&&(_e=tt.nodeType===3?tt.nodeValue:null,tt=vb(tt),_e!==null&&B$5(tt))){if(_e===cb&&et){let ot=et.length;_e=et,nt=rt=ot}_e!==null&&xb(tt,_e,rt,nt,j)}}}function xb(j,_e,et,tt,rt){let nt=j;if(nt.isAttached()&&(rt||!nt.isDirty())){let lt=nt.isComposing(),ut=_e;if((lt||rt)&&_e[_e.length-1]===cb&&(ut=_e.slice(0,-1)),_e=nt.getTextContent(),rt||ut!==_e)if(ut==="")if(H$2(null),Ya||Za||bb)nt.remove();else{let ct=F$3();setTimeout(()=>{ct.update(()=>{nt.isAttached()&&nt.remove()})},20)}else{rt=nt.getParent(),_e=mc();var ot=nt.getTextContentSize(),it=cc(),st=nt.getKey();nt.isToken()||it!==null&&st===it&&!lt||C$5(_e)&&(rt!==null&&!rt.canInsertTextBefore()&&_e.anchor.offset===0||_e.anchor.key===j.__key&&_e.anchor.offset===0&&!nt.canInsertTextBefore()&&!lt||_e.focus.key===j.__key&&_e.focus.offset===ot&&!nt.canInsertTextAfter()&&!lt)?nt.markDirty():(j=u$7(),C$5(j)&&et!==null&&tt!==null&&(j.setTextNodeRange(nt,et,nt,tt),nt.isSegmented()&&(et=nt.getTextContent(),et=K(et),nt.replace(et),nt=et)),nt.setTextContent(ut))}}}function nc(j,_e){if(_e.isSegmented())return!0;if(!j.isCollapsed())return!1;j=j.anchor.offset;let et=_e.getParentOrThrow(),tt=_e.isToken();return j===0?((j=!_e.canInsertTextBefore()||!et.canInsertTextBefore()||tt)||(_e=_e.getPreviousSibling(),j=(B$5(_e)||E$3(_e)&&_e.isInline())&&!_e.canInsertTextAfter()),j):j===_e.getTextContentSize()?!_e.canInsertTextAfter()||!et.canInsertTextAfter()||tt:!1}function oc(j,_e){j.__lexicalClassNameCache===void 0&&(j.__lexicalClassNameCache={});let et=j.__lexicalClassNameCache,tt=et[_e];return tt!==void 0?tt:(j=j[_e],typeof j=="string"?(j=j.split(" "),et[_e]=j):j)}function pc(j,_e,et,tt,rt){et.size!==0&&(et=tt.__type,tt=tt.__key,_e=_e.get(et),_e===void 0&&n$6(33,et),et=_e.klass,_e=j.get(et),_e===void 0&&(_e=new Map,j.set(et,_e)),j=_e.get(tt),et=j==="destroyed"&&rt==="created",(j===void 0||et)&&_e.set(tt,et?"updated":rt))}function qc(j,_e,et){let tt=j.getParent(),rt=et;return tt!==null&&(_e&&et===0?(rt=j.getIndexWithinParent(),j=tt):_e||et!==j.getChildrenSize()||(rt=j.getIndexWithinParent()+1,j=tt)),j.getChildAtIndex(_e?rt-1:rt)}function rc(j,_e){var et=j.offset;return j.type==="element"?(j=j.getNode(),qc(j,_e,et)):(j=j.getNode(),_e&&et===0||!_e&&et===j.getTextContentSize()?(et=_e?j.getPreviousSibling():j.getNextSibling(),et===null?qc(j.getParentOrThrow(),_e,j.getIndexWithinParent()+(_e?0:1)):et):null)}function Ab(j){return j=(j=Db(j).event)&&j.inputType,j==="insertFromPaste"||j==="insertFromPasteAsQuotation"}function sc(j){return!L(j)&&!j.isLastChild()&&!j.isInline()}function tc(j,_e){return j=j._keyToDOMMap.get(_e),j===void 0&&n$6(75,_e),j}function Ub(j){return j=j.assignedSlot||j.parentElement,j!==null&&j.nodeType===11?j.host:j}function uc(j,_e){for(j=j.getParent();j!==null;){if(j.is(_e))return!0;j=j.getParent()}return!1}function Db(j){return j=j._window,j===null&&n$6(78),j}function vc(j){for(j=j.getParentOrThrow();j!==null&&!wc(j);)j=j.getParentOrThrow();return j}function wc(j){return L(j)||E$3(j)&&j.isShadowRoot()}function xc(j){return j=j.constructor.clone(j),Yb(j,null),j}function yc(j){var _e=F$3();let et=j.constructor.getType();return _e=_e._nodes.get(et),_e===void 0&&n$6(97),_e=_e.replace,_e!==null?(_e=_e(j),_e instanceof j.constructor||n$6(98),_e):j}function zc(j,_e){j=j.getParent(),!L(j)||E$3(_e)||y$7(_e)||n$6(99)}function Ac(j){return(y$7(j)||E$3(j)&&!j.canBeEmpty())&&!j.isInline()}function Bc(j,_e,et){et.style.removeProperty("caret-color"),_e._blockCursorElement=null,_e=j.parentElement,_e!==null&&_e.removeChild(j)}function wb(j){return Ta?(j||window).getSelection():null}function Cc(j){return j.nodeType===1}function Dc(j){if(y$7(j)&&!j.isInline())return!0;if(!E$3(j)||wc(j))return!1;var _e=j.getFirstChild();return _e=_e===null||Ec(_e)||B$5(_e)||_e.isInline(),!j.isInline()&&j.canBeEmpty()!==!1&&_e}function Fc(j,_e){for(;j!==null&&j.getParent()!==null&&!_e(j);)j=j.getParentOrThrow();return _e(j)?j:null}function Gc(j,_e,et,tt,rt,nt){for(j=j.getFirstChild();j!==null;){let ot=j.__key;j.__parent===_e&&(E$3(j)&&Gc(j,ot,et,tt,rt,nt),et.has(ot)||nt.delete(ot),rt.push(ot)),j=j.getNextSibling()}}function Hc(j,_e,et,tt){j=j._nodeMap,_e=_e._nodeMap;let rt=[];for(let[nt]of tt){let ot=_e.get(nt);ot===void 0||ot.isAttached()||(E$3(ot)&&Gc(ot,nt,j,_e,rt,tt),j.has(nt)||tt.delete(nt),rt.push(nt))}for(let nt of rt)_e.delete(nt);for(let nt of et)tt=_e.get(nt),tt===void 0||tt.isAttached()||(j.has(nt)||et.delete(nt),_e.delete(nt))}let M="",N="",Ic="",Jc,O,Kc,Lc=!1,Mc=!1,Nc,Oc=null,Pc,Zc,$c,ad,bd,cd;function dd(j,_e){let et=$c.get(j);if(_e!==null){let tt=ed(j);tt.parentNode===_e&&_e.removeChild(tt)}ad.has(j)||O._keyToDOMMap.delete(j),E$3(et)&&(j=fd(et,$c),gd(j,0,j.length-1,null)),et!==void 0&&pc(cd,Kc,Nc,et,"destroyed")}function gd(j,_e,et,tt){for(;_e<=et;++_e){let rt=j[_e];rt!==void 0&&dd(rt,tt)}}function hd(j,_e){j.setProperty("text-align",_e)}function id(j,_e){var et=Jc.theme.indent;if(typeof et=="string"){let tt=j.classList.contains(et);0<_e&&!tt?j.classList.add(et):1>_e&&tt&&j.classList.remove(et)}et=getComputedStyle(j).getPropertyValue("--lexical-indent-base-value")||"40px",j.style.setProperty("padding-inline-start",_e===0?"":`calc(${_e} * ${et})`)}function jd(j,_e){j=j.style,_e===0?hd(j,""):_e===1?hd(j,"left"):_e===2?hd(j,"center"):_e===3?hd(j,"right"):_e===4?hd(j,"justify"):_e===5?hd(j,"start"):_e===6&&hd(j,"end")}function kd(j,_e,et){let tt=ad.get(j);tt===void 0&&n$6(60);let rt=tt.createDOM(Jc,O);var nt=O._keyToDOMMap;if(rt["__lexicalKey_"+O._key]=j,nt.set(j,rt),B$5(tt)?rt.setAttribute("data-lexical-text","true"):y$7(tt)&&rt.setAttribute("data-lexical-decorator","true"),E$3(tt)){if(j=tt.__indent,nt=tt.__size,j!==0&&id(rt,j),nt!==0){--nt,j=fd(tt,ad);var ot=N;N="",ld(j,tt,0,nt,rt,null),md(tt,rt),N=ot}j=tt.__format,j!==0&&jd(rt,j),tt.isInline()||nd(null,tt,rt),sc(tt)&&(M+=` `,Ic+=` `)}else nt=tt.getTextContent(),y$7(tt)?(ot=tt.decorate(O,Jc),ot!==null&&od(j,ot),rt.contentEditable="false"):B$5(tt)&&(tt.isDirectionless()||(N+=nt)),M+=nt,Ic+=nt;return _e!==null&&(et!=null?_e.insertBefore(rt,et):(et=_e.__lexicalLineBreak,et!=null?_e.insertBefore(rt,et):_e.appendChild(rt))),pc(cd,Kc,Nc,tt,"created"),rt}function ld(j,_e,et,tt,rt,nt){let ot=M;for(M="";et<=tt;++et)kd(j[et],rt,nt);sc(_e)&&(M+=` -`),rt.__lexicalTextContent=M,M=ot+M}function pd(j,_e){return j=_e.get(j),Ec(j)||y$7(j)&&j.isInline()}function nd(j,_e,et){j=j!==null&&(j.__size===0||pd(j.__last,$c)),_e=_e.__size===0||pd(_e.__last,ad),j?_e||(_e=et.__lexicalLineBreak,_e!=null&&et.removeChild(_e),et.__lexicalLineBreak=null):_e&&(_e=document.createElement("br"),et.__lexicalLineBreak=_e,et.appendChild(_e))}function md(j,_e){var et=_e.__lexicalDir;if(_e.__lexicalDirTextContent!==N||et!==Oc){let nt=N==="";if(nt)var tt=Oc;else tt=N,tt=eb.test(tt)?"rtl":fb.test(tt)?"ltr":null;if(tt!==et){let ot=_e.classList,it=Jc.theme;var rt=et!==null?it[et]:void 0;let st=tt!==null?it[tt]:void 0;rt!==void 0&&(typeof rt=="string"&&(rt=rt.split(" "),rt=it[et]=rt),ot.remove(...rt)),tt===null||nt&&tt==="ltr"?_e.removeAttribute("dir"):(st!==void 0&&(typeof st=="string"&&(et=st.split(" "),st=it[tt]=et),st!==void 0&&ot.add(...st)),_e.dir=tt),Mc||(j.getWritable().__dir=tt)}Oc=tt,_e.__lexicalDirTextContent=N,_e.__lexicalDir=tt}}function fd(j,_e){let et=[];for(j=j.__first;j!==null;){let tt=_e.get(j);tt===void 0&&n$6(101),et.push(j),j=tt.__next}return et}function qd(j,_e){var et=$c.get(j),tt=ad.get(j);et!==void 0&&tt!==void 0||n$6(61);var rt=Lc||Zc.has(j)||Pc.has(j);let nt=tc(O,j);if(et===tt&&!rt)return E$3(et)?(tt=nt.__lexicalTextContent,tt!==void 0&&(M+=tt,Ic+=tt),tt=nt.__lexicalDirTextContent,tt!==void 0&&(N+=tt)):(tt=et.getTextContent(),B$5(et)&&!et.isDirectionless()&&(N+=tt),Ic+=tt,M+=tt),nt;if(et!==tt&&rt&&pc(cd,Kc,Nc,tt,"updated"),tt.updateDOM(et,nt,Jc))return tt=kd(j,null,null),_e===null&&n$6(62),_e.replaceChild(tt,nt),dd(j,null),tt;if(E$3(et)&&E$3(tt)){if(j=tt.__indent,j!==et.__indent&&id$2(nt,j),j=tt.__format,j!==et.__format&&jd(nt,j),rt){j=N,N="",rt=M;var ot=et.__size,it=tt.__size;if(M="",ot===1&&it===1){var st=et.__first;if(_e=tt.__first,st===_e)qd(st,nt);else{var lt=ed(st);_e=kd(_e,null,null),nt.replaceChild(_e,lt),dd(st,null)}}else{_e=fd(et,$c);var ut=fd(tt,ad);if(ot===0)it!==0&&ld(ut,tt,0,it-1,nt,null);else if(it===0)ot!==0&&(st=nt.__lexicalLineBreak==null,gd(_e,0,ot-1,st?null:nt),st&&(nt.textContent=""));else{var ct=_e;_e=ut,ut=ot-1,ot=it-1;let ft=nt.firstChild,pt=0;for(it=0;pt<=ut&&it<=ot;){var dt=ct[pt];let gt=_e[it];if(dt===gt)ft=rd(qd(gt,nt)),pt++,it++;else{st===void 0&&(st=new Set(ct)),lt===void 0&&(lt=new Set(_e));let vt=lt.has(dt),bt=st.has(gt);vt?(bt?(dt=tc(O,gt),dt===ft?ft=rd(qd(gt,nt)):(ft!=null?nt.insertBefore(dt,ft):nt.appendChild(dt),qd(gt,nt)),pt++):kd(gt,nt,ft),it++):(ft=rd(ed(dt)),dd(dt,nt),pt++)}}st=pt>ut,lt=it>ot,st&&!lt?(st=_e[ot+1],st=st===void 0?null:O.getElementByKey(st),ld(_e,tt,it,ot,nt,st)):lt&&!st&&gd(ct,pt,ut,nt)}}sc(tt)&&(M+=` +`),rt.__lexicalTextContent=M,M=ot+M}function pd(j,_e){return j=_e.get(j),Ec(j)||y$7(j)&&j.isInline()}function nd(j,_e,et){j=j!==null&&(j.__size===0||pd(j.__last,$c)),_e=_e.__size===0||pd(_e.__last,ad),j?_e||(_e=et.__lexicalLineBreak,_e!=null&&et.removeChild(_e),et.__lexicalLineBreak=null):_e&&(_e=document.createElement("br"),et.__lexicalLineBreak=_e,et.appendChild(_e))}function md(j,_e){var et=_e.__lexicalDir;if(_e.__lexicalDirTextContent!==N||et!==Oc){let nt=N==="";if(nt)var tt=Oc;else tt=N,tt=eb.test(tt)?"rtl":fb.test(tt)?"ltr":null;if(tt!==et){let ot=_e.classList,it=Jc.theme;var rt=et!==null?it[et]:void 0;let st=tt!==null?it[tt]:void 0;rt!==void 0&&(typeof rt=="string"&&(rt=rt.split(" "),rt=it[et]=rt),ot.remove(...rt)),tt===null||nt&&tt==="ltr"?_e.removeAttribute("dir"):(st!==void 0&&(typeof st=="string"&&(et=st.split(" "),st=it[tt]=et),st!==void 0&&ot.add(...st)),_e.dir=tt),Mc||(j.getWritable().__dir=tt)}Oc=tt,_e.__lexicalDirTextContent=N,_e.__lexicalDir=tt}}function fd(j,_e){let et=[];for(j=j.__first;j!==null;){let tt=_e.get(j);tt===void 0&&n$6(101),et.push(j),j=tt.__next}return et}function qd(j,_e){var et=$c.get(j),tt=ad.get(j);et!==void 0&&tt!==void 0||n$6(61);var rt=Lc||Zc.has(j)||Pc.has(j);let nt=tc(O,j);if(et===tt&&!rt)return E$3(et)?(tt=nt.__lexicalTextContent,tt!==void 0&&(M+=tt,Ic+=tt),tt=nt.__lexicalDirTextContent,tt!==void 0&&(N+=tt)):(tt=et.getTextContent(),B$5(et)&&!et.isDirectionless()&&(N+=tt),Ic+=tt,M+=tt),nt;if(et!==tt&&rt&&pc(cd,Kc,Nc,tt,"updated"),tt.updateDOM(et,nt,Jc))return tt=kd(j,null,null),_e===null&&n$6(62),_e.replaceChild(tt,nt),dd(j,null),tt;if(E$3(et)&&E$3(tt)){if(j=tt.__indent,j!==et.__indent&&id(nt,j),j=tt.__format,j!==et.__format&&jd(nt,j),rt){j=N,N="",rt=M;var ot=et.__size,it=tt.__size;if(M="",ot===1&&it===1){var st=et.__first;if(_e=tt.__first,st===_e)qd(st,nt);else{var lt=ed(st);_e=kd(_e,null,null),nt.replaceChild(_e,lt),dd(st,null)}}else{_e=fd(et,$c);var ut=fd(tt,ad);if(ot===0)it!==0&&ld(ut,tt,0,it-1,nt,null);else if(it===0)ot!==0&&(st=nt.__lexicalLineBreak==null,gd(_e,0,ot-1,st?null:nt),st&&(nt.textContent=""));else{var ct=_e;_e=ut,ut=ot-1,ot=it-1;let ft=nt.firstChild,pt=0;for(it=0;pt<=ut&&it<=ot;){var dt=ct[pt];let gt=_e[it];if(dt===gt)ft=rd(qd(gt,nt)),pt++,it++;else{st===void 0&&(st=new Set(ct)),lt===void 0&&(lt=new Set(_e));let mt=lt.has(dt),bt=st.has(gt);mt?(bt?(dt=tc(O,gt),dt===ft?ft=rd(qd(gt,nt)):(ft!=null?nt.insertBefore(dt,ft):nt.appendChild(dt),qd(gt,nt)),pt++):kd(gt,nt,ft),it++):(ft=rd(ed(dt)),dd(dt,nt),pt++)}}st=pt>ut,lt=it>ot,st&&!lt?(st=_e[ot+1],st=st===void 0?null:O.getElementByKey(st),ld(_e,tt,it,ot,nt,st)):lt&&!st&&gd(ct,pt,ut,nt)}}sc(tt)&&(M+=` `),nt.__lexicalTextContent=M,M=rt+M,md(tt,nt),N=j,L(tt)||tt.isInline()||nd(et,tt,nt)}sc(tt)&&(M+=` `,Ic+=` -`)}else et=tt.getTextContent(),y$7(tt)?(rt=tt.decorate(O,Jc),rt!==null&&od(j,rt)):B$5(tt)&&!tt.isDirectionless()&&(N+=et),M+=et,Ic+=et;return!Mc&&L(tt)&&tt.__cachedText!==Ic&&(tt.getWritable().__cachedText=Ic),nt}function od(j,_e){let et=O._pendingDecorators,tt=O._decorators;if(et===null){if(tt[j]===_e)return;et=ec(O)}et[j]=_e}function rd(j){return j=j.nextSibling,j!==null&&j===O._blockCursorElement&&(j=j.nextSibling),j}function ed(j){let _e=bd.get(j);return _e===void 0&&n$6(75,j),_e}let sd=Object.freeze({}),zd=[["keydown",td],["pointerdown",ud],["compositionstart",vd],["compositionend",wd],["input",xd],["click",yd],["cut",sd],["copy",sd],["dragstart",sd],["dragover",sd],["dragend",sd],["paste",sd],["focus",sd],["blur",sd],["drop",sd]];Xa&&zd.push(["beforeinput",(j,_e)=>Ad(j,_e)]);let Bd=0,Cd=0,Dd=0,Ed=null,Fd=0,Gd=!1,Hd=!1,Id=!1,Jd=!1,Kd=[0,"",0,"root",0];function Ld(j,_e,et,tt,rt){let nt=j.anchor,ot=j.focus,it=nt.getNode();var st=F$3();let lt=wb(st._window),ut=lt!==null?lt.anchorNode:null,ct=nt.key;st=st.getElementByKey(ct);let dt=et.length;return ct!==ot.key||!B$5(it)||(!rt&&(!Xa||Dddt||ic(et))&&nt.offset!==ot.offset&&!it.isComposing()||Vb(it)||it.isDirty()&&1{if(!et)zb(null);else if(Sb(_e,tt,nt)){var it=u$7();if(C$5(it)){var st=it.anchor,lt=st.getNode();if(it.isCollapsed()){j.type==="Range"&&j.anchorNode===j.focusNode&&(it.dirty=!0);var ut=Db(_e).event;ut=ut?ut.timeStamp:performance.now();let[gt,vt,bt,_t,xt]=Kd;var ct=J$1();ct=_e.isComposing()===!1&&ct.getTextContent()==="",ut{let et=u$7();var tt=wb(_e._window);let rt=mc();if(tt)if(C$5(et)){let ot=et.anchor;var nt=ot.getNode();ot.type==="element"&&ot.offset===0&&et.isCollapsed()&&!L(nt)&&J$1().getChildrenSize()===1&&nt.getTopLevelElementOrThrow().isEmpty()&&rt!==null&&et.is(rt)?(tt.removeAllRanges(),et.dirty=!0):j.detail!==3||et.isCollapsed()||(tt=et.focus.getNode(),nt!==tt&&(E$3(nt)?nt.select(0):nt.getParentOrThrow().select(0)))}else j.pointerType==="touch"&&(nt=tt.anchorNode,nt!==null&&(nt=nt.nodeType,nt===1||nt===3))&&(tt=Od(rt,tt,_e,j),zb(tt));R(_e,ca,j)})}function ud(j,_e){let et=j.target;j=j.pointerType,et instanceof Node&&j!=="touch"&&v$6(_e,()=>{y$7(vb(et))||(Hd=!0)})}function Pd(j){return j.getTargetRanges?(j=j.getTargetRanges(),j.length===0?null:j[0]):null}function Qd(j,_e){return j!==_e||E$3(j)||E$3(_e)||!j.isToken()||!_e.isToken()}function Ad(j,_e){let et=j.inputType,tt=Pd(j);et==="deleteCompositionText"||Wa&&Ab(_e)||et!=="insertCompositionText"&&v$6(_e,()=>{let rt=u$7();if(et==="deleteContentBackward"){if(rt===null){var nt=mc();if(!C$5(nt))return;zb(nt.clone())}if(C$5(rt)){$a&&H$2(rt.anchor.key),Cd===229&&j.timeStamp{v$6(_e,()=>{H$2(null)})},30),C$5(rt)&&(nt=rt.anchor.getNode(),nt.markDirty(),rt.format=nt.getFormat(),B$5(nt)||n$6(142),rt.style=nt.getStyle()),1>=rt.anchor.getNode().getTextContent().length&&(j.preventDefault(),R(_e,da,!0))):(H$2(null),j.preventDefault(),R(_e,da,!0));return}}if(C$5(rt)){nt=j.data,Ed!==null&&lc(!1,_e,Ed),rt.dirty&&Ed===null||!rt.isCollapsed()||L(rt.anchor.getNode())||tt===null||rt.applyDOMRange(tt),Ed=null;var ot=rt.focus,it=rt.anchor.getNode();if(ot=ot.getNode(),et==="insertText"||et==="insertTranspose")nt===` +`)}else et=tt.getTextContent(),y$7(tt)?(rt=tt.decorate(O,Jc),rt!==null&&od(j,rt)):B$5(tt)&&!tt.isDirectionless()&&(N+=et),M+=et,Ic+=et;return!Mc&&L(tt)&&tt.__cachedText!==Ic&&(tt.getWritable().__cachedText=Ic),nt}function od(j,_e){let et=O._pendingDecorators,tt=O._decorators;if(et===null){if(tt[j]===_e)return;et=ec(O)}et[j]=_e}function rd(j){return j=j.nextSibling,j!==null&&j===O._blockCursorElement&&(j=j.nextSibling),j}function ed(j){let _e=bd.get(j);return _e===void 0&&n$6(75,j),_e}let sd=Object.freeze({}),zd=[["keydown",td],["pointerdown",ud],["compositionstart",vd],["compositionend",wd],["input",xd],["click",yd],["cut",sd],["copy",sd],["dragstart",sd],["dragover",sd],["dragend",sd],["paste",sd],["focus",sd],["blur",sd],["drop",sd]];Xa&&zd.push(["beforeinput",(j,_e)=>Ad(j,_e)]);let Bd=0,Cd=0,Dd=0,Ed=null,Fd=0,Gd=!1,Hd=!1,Id=!1,Jd=!1,Kd=[0,"",0,"root",0];function Ld(j,_e,et,tt,rt){let nt=j.anchor,ot=j.focus,it=nt.getNode();var st=F$3();let lt=wb(st._window),ut=lt!==null?lt.anchorNode:null,ct=nt.key;st=st.getElementByKey(ct);let dt=et.length;return ct!==ot.key||!B$5(it)||(!rt&&(!Xa||Dddt||ic(et))&&nt.offset!==ot.offset&&!it.isComposing()||Vb(it)||it.isDirty()&&1{if(!et)zb(null);else if(Sb(_e,tt,nt)){var it=u$7();if(C$5(it)){var st=it.anchor,lt=st.getNode();if(it.isCollapsed()){j.type==="Range"&&j.anchorNode===j.focusNode&&(it.dirty=!0);var ut=Db(_e).event;ut=ut?ut.timeStamp:performance.now();let[gt,mt,bt,_t,xt]=Kd;var ct=J$1();ct=_e.isComposing()===!1&&ct.getTextContent()==="",ut{let et=u$7();var tt=wb(_e._window);let rt=mc();if(tt)if(C$5(et)){let ot=et.anchor;var nt=ot.getNode();ot.type==="element"&&ot.offset===0&&et.isCollapsed()&&!L(nt)&&J$1().getChildrenSize()===1&&nt.getTopLevelElementOrThrow().isEmpty()&&rt!==null&&et.is(rt)?(tt.removeAllRanges(),et.dirty=!0):j.detail!==3||et.isCollapsed()||(tt=et.focus.getNode(),nt!==tt&&(E$3(nt)?nt.select(0):nt.getParentOrThrow().select(0)))}else j.pointerType==="touch"&&(nt=tt.anchorNode,nt!==null&&(nt=nt.nodeType,nt===1||nt===3))&&(tt=Od(rt,tt,_e,j),zb(tt));R(_e,ca,j)})}function ud(j,_e){let et=j.target;j=j.pointerType,et instanceof Node&&j!=="touch"&&v$6(_e,()=>{y$7(vb(et))||(Hd=!0)})}function Pd(j){return j.getTargetRanges?(j=j.getTargetRanges(),j.length===0?null:j[0]):null}function Qd(j,_e){return j!==_e||E$3(j)||E$3(_e)||!j.isToken()||!_e.isToken()}function Ad(j,_e){let et=j.inputType,tt=Pd(j);et==="deleteCompositionText"||Wa&&Ab(_e)||et!=="insertCompositionText"&&v$6(_e,()=>{let rt=u$7();if(et==="deleteContentBackward"){if(rt===null){var nt=mc();if(!C$5(nt))return;zb(nt.clone())}if(C$5(rt)){$a&&H$2(rt.anchor.key),Cd===229&&j.timeStamp{v$6(_e,()=>{H$2(null)})},30),C$5(rt)&&(nt=rt.anchor.getNode(),nt.markDirty(),rt.format=nt.getFormat(),B$5(nt)||n$6(142),rt.style=nt.getStyle()),1>=rt.anchor.getNode().getTextContent().length&&(j.preventDefault(),R(_e,da,!0))):(H$2(null),j.preventDefault(),R(_e,da,!0));return}}if(C$5(rt)){nt=j.data,Ed!==null&&lc(!1,_e,Ed),rt.dirty&&Ed===null||!rt.isCollapsed()||L(rt.anchor.getNode())||tt===null||rt.applyDOMRange(tt),Ed=null;var ot=rt.focus,it=rt.anchor.getNode();if(ot=ot.getNode(),et==="insertText"||et==="insertTranspose")nt===` `?(j.preventDefault(),R(_e,ea,!1)):nt===` `?(j.preventDefault(),R(_e,fa,void 0)):nt==null&&j.dataTransfer?(nt=j.dataTransfer.getData("text/plain"),j.preventDefault(),rt.insertRawText(nt)):nt!=null&&Ld(rt,tt,nt,j.timeStamp,!0)?(j.preventDefault(),R(_e,ka$1,nt)):Ed=nt,Dd=j.timeStamp;else switch(j.preventDefault(),et){case"insertFromYank":case"insertFromDrop":case"insertReplacementText":R(_e,ka$1,j);break;case"insertFromComposition":H$2(null),R(_e,ka$1,j);break;case"insertLineBreak":H$2(null),R(_e,ea,!1);break;case"insertParagraph":H$2(null),Id&&!Za?(Id=!1,R(_e,ea,!1)):R(_e,fa,void 0);break;case"insertFromPaste":case"insertFromPasteAsQuotation":R(_e,la,j);break;case"deleteByComposition":Qd(it,ot)&&R(_e,ma,j);break;case"deleteByDrag":case"deleteByCut":R(_e,ma,j);break;case"deleteContent":R(_e,da,!1);break;case"deleteWordBackward":R(_e,oa,!0);break;case"deleteWordForward":R(_e,oa,!1);break;case"deleteHardLineBackward":case"deleteSoftLineBackward":R(_e,pa,!0);break;case"deleteContentForward":case"deleteHardLineForward":case"deleteSoftLineForward":R(_e,pa,!1);break;case"formatStrikeThrough":R(_e,qa,"strikethrough");break;case"formatBold":R(_e,qa,"bold");break;case"formatItalic":R(_e,qa,"italic");break;case"formatUnderline":R(_e,qa,"underline");break;case"historyUndo":R(_e,ra,void 0);break;case"historyRedo":R(_e,sa,void 0)}}})}function xd(j,_e){j.stopPropagation(),v$6(_e,()=>{var et=u$7(),tt=j.data,rt=Pd(j);if(tt!=null&&C$5(et)&&Ld(et,rt,tt,j.timeStamp,!1)){Jd&&(Rd(_e,tt),Jd=!1);var nt=et.anchor,ot=nt.getNode();if(rt=wb(_e._window),rt===null)return;let it=nt.offset;(nt=Xa&&!et.isCollapsed()&&B$5(ot)&&rt.anchorNode!==null)&&(ot=ot.getTextContent().slice(0,it)+tt+ot.getTextContent().slice(it+et.focus.offset),rt=rt.anchorNode,nt=ot===(rt.nodeType===3?rt.nodeValue:null)),nt||R(_e,ka$1,tt),tt=tt.length,Wa&&1{let et=u$7();if(C$5(et)&&!_e.isComposing()){let tt=et.anchor,rt=et.anchor.getNode();H$2(tt.key),(j.timeStamp{Rd(_e,j.data)})}function td(j,_e){if(Bd=j.timeStamp,Cd=j.keyCode,!_e.isComposing()){var{keyCode:et,shiftKey:tt,ctrlKey:rt,metaKey:nt,altKey:ot}=j;if(!R(_e,ta,j)){if(et!==39||rt||nt||ot)if(et!==39||ot||tt||!rt&&!nt)if(et!==37||rt||nt||ot)if(et!==37||ot||tt||!rt&&!nt)if(et!==38||rt||nt)if(et!==40||rt||nt)if(et===13&&tt)Id=!0,R(_e,Ba,j);else if(et===32)R(_e,Ca,j);else if(t$5&&rt&&et===79)j.preventDefault(),Id=!0,R(_e,ea,!0);else if(et!==13||tt){var it=t$5?ot||nt?!1:et===8||et===72&&rt:rt||ot||nt?!1:et===8;it?et===8?R(_e,Da,j):(j.preventDefault(),R(_e,da,!0)):et===27?R(_e,Ga,j):(it=t$5?tt||ot||nt?!1:et===46||et===68&&rt:rt||ot||nt?!1:et===46,it?et===46?R(_e,Ha,j):(j.preventDefault(),R(_e,da,!1)):et===8&&(t$5?ot:rt)?(j.preventDefault(),R(_e,oa,!0)):et===46&&(t$5?ot:rt)?(j.preventDefault(),R(_e,oa,!1)):t$5&&nt&&et===8?(j.preventDefault(),R(_e,pa,!0)):t$5&&nt&&et===46?(j.preventDefault(),R(_e,pa,!1)):et===66&&!ot&&(t$5?nt:rt)?(j.preventDefault(),R(_e,qa,"bold")):et===85&&!ot&&(t$5?nt:rt)?(j.preventDefault(),R(_e,qa,"underline")):et===73&&!ot&&(t$5?nt:rt)?(j.preventDefault(),R(_e,qa,"italic")):et!==9||ot||rt||nt?et===90&&!tt&&(t$5?nt:rt)?(j.preventDefault(),R(_e,ra,void 0)):(it=t$5?et===90&&nt&&tt:et===89&&rt||et===90&&rt&&tt,it?(j.preventDefault(),R(_e,sa,void 0)):Sd(_e._editorState._selection)?(it=tt?!1:et===67?t$5?nt:rt:!1,it?(j.preventDefault(),R(_e,Na,j)):(it=tt?!1:et===88?t$5?nt:rt:!1,it?(j.preventDefault(),R(_e,Oa,j)):et===65&&(t$5?nt:rt)&&(j.preventDefault(),R(_e,Pa,j)))):!Wa&&et===65&&(t$5?nt:rt)&&(j.preventDefault(),R(_e,Pa,j))):R(_e,Ia,j))}else Id=!1,R(_e,Ba,j);else R(_e,Aa,j);else R(_e,za,j);else R(_e,ya,j);else R(_e,wa,j);else R(_e,va,j);else R(_e,ua,j);(rt||tt||ot||nt)&&R(_e,Sa,j)}}}function Td(j){let _e=j.__lexicalEventHandles;return _e===void 0&&(_e=[],j.__lexicalEventHandles=_e),_e}let Ud=new Map;function Vd(j){var _e=j.target;let et=wb(_e==null?null:_e.nodeType===9?_e.defaultView:_e.ownerDocument.defaultView);if(et!==null){var tt=Tb(et.anchorNode);if(tt!==null){Hd&&(Hd=!1,v$6(tt,()=>{var it=mc(),st=et.anchorNode;st!==null&&(st=st.nodeType,st===1||st===3)&&(it=Od(it,et,tt,j),zb(it))})),_e=jc(tt),_e=_e[_e.length-1];var rt=_e._key,nt=Ud.get(rt),ot=nt||_e;ot!==tt&&Nd(et,ot,!1),Nd(et,tt,!0),tt!==_e?Ud.set(rt,tt):nt&&Ud.delete(rt)}}}function Wd(j,_e){Fd===0&&j.ownerDocument.addEventListener("selectionchange",Vd),Fd++,j.__lexicalEditor=_e;let et=Td(j);for(let tt=0;tt{it._lexicalHandled!==!0&&(it._lexicalHandled=!0,_e.isEditable()&&nt(it,_e))}:it=>{if(it._lexicalHandled!==!0&&(it._lexicalHandled=!0,_e.isEditable()))switch(rt){case"cut":return R(_e,Oa,it);case"copy":return R(_e,Na,it);case"paste":return R(_e,la,it);case"dragstart":return R(_e,Ka,it);case"dragover":return R(_e,La,it);case"dragend":return R(_e,Ma,it);case"focus":return R(_e,Qa,it);case"blur":return R(_e,Ra,it);case"drop":return R(_e,Ja,it)}};j.addEventListener(rt,ot),et.push(()=>{j.removeEventListener(rt,ot)})}}function Xd(j,_e,et){G$3();var tt=j.__key;let rt=j.getParent();if(rt!==null){var nt=u$7();if(C$5(nt)&&E$3(j)){var{anchor:ot,focus:it}=nt,st=ot.getNode(),lt=it.getNode();uc(st,j)&&ot.set(j.__key,0,"element"),uc(lt,j)&&it.set(j.__key,0,"element")}if(st=nt,lt=!1,C$5(st)&&_e){nt=st.anchor;let ut=st.focus;nt.key===tt&&(Yd(nt,j,rt,j.getPreviousSibling(),j.getNextSibling()),lt=!0),ut.key===tt&&(Yd(ut,j,rt,j.getPreviousSibling(),j.getNextSibling()),lt=!0)}else Sd(st)&&_e&&j.isSelected()&&j.selectPrevious();C$5(st)&&_e&&!lt?(tt=j.getIndexWithinParent(),ac(j),Zd(st,rt,tt,-1)):ac(j),et||wc(rt)||rt.canBeEmpty()||!rt.isEmpty()||Xd(rt,_e),_e&&L(rt)&&rt.isEmpty()&&rt.selectEnd()}}class $d{static getType(){n$6(64,this.name)}static clone(){n$6(65,this.name)}constructor(_e){this.__type=this.constructor.getType(),this.__next=this.__prev=this.__parent=null,Yb(this,_e)}getType(){return this.__type}isInline(){n$6(137,this.constructor.name)}isAttached(){for(var _e=this.__key;_e!==null;){if(_e==="root")return!0;if(_e=I$1(_e),_e===null)break;_e=_e.__parent}return!1}isSelected(_e){if(_e=_e||u$7(),_e==null)return!1;let et=_e.getNodes().some(tt=>tt.__key===this.__key);return B$5(this)?et:C$5(_e)&&_e.anchor.type==="element"&&_e.focus.type==="element"&&_e.anchor.key===_e.focus.key&&_e.anchor.offset===_e.focus.offset?!1:et}getKey(){return this.__key}getIndexWithinParent(){var _e=this.getParent();if(_e===null)return-1;_e=_e.getFirstChild();let et=0;for(;_e!==null;){if(this.is(_e))return et;et++,_e=_e.getNextSibling()}return-1}getParent(){let _e=this.getLatest().__parent;return _e===null?null:I$1(_e)}getParentOrThrow(){let _e=this.getParent();return _e===null&&n$6(66,this.__key),_e}getTopLevelElement(){let _e=this;for(;_e!==null;){let et=_e.getParent();if(wc(et))return E$3(_e)||n$6(138),_e;_e=et}return null}getTopLevelElementOrThrow(){let _e=this.getTopLevelElement();return _e===null&&n$6(67,this.__key),_e}getParents(){let _e=[],et=this.getParent();for(;et!==null;)_e.push(et),et=et.getParent();return _e}getParentKeys(){let _e=[],et=this.getParent();for(;et!==null;)_e.push(et.__key),et=et.getParent();return _e}getPreviousSibling(){let _e=this.getLatest().__prev;return _e===null?null:I$1(_e)}getPreviousSiblings(){let _e=[];var et=this.getParent();if(et===null)return _e;for(et=et.getFirstChild();et!==null&&!et.is(this);)_e.push(et),et=et.getNextSibling();return _e}getNextSibling(){let _e=this.getLatest().__next;return _e===null?null:I$1(_e)}getNextSiblings(){let _e=[],et=this.getNextSibling();for(;et!==null;)_e.push(et),et=et.getNextSibling();return _e}getCommonAncestor(_e){let et=this.getParents();var tt=_e.getParents();E$3(this)&&et.unshift(this),E$3(_e)&&tt.unshift(_e),_e=et.length;var rt=tt.length;if(_e===0||rt===0||et[_e-1]!==tt[rt-1])return null;for(tt=new Set(tt),rt=0;rt<_e;rt++){let nt=et[rt];if(tt.has(nt))return nt}return null}is(_e){return _e==null?!1:this.__key===_e.__key}isBefore(_e){if(this===_e)return!1;if(_e.isParentOf(this))return!0;if(this.isParentOf(_e))return!1;var et=this.getCommonAncestor(_e);let tt=this;for(;;){var rt=tt.getParentOrThrow();if(rt===et){rt=tt.getIndexWithinParent();break}tt=rt}for(tt=_e;;){if(_e=tt.getParentOrThrow(),_e===et){et=tt.getIndexWithinParent();break}tt=_e}return rt{it.append(pt)})),C$5(tt)&&(zb(tt),et=tt.anchor,tt=tt.focus,et.key===nt&&ae(et,it),tt.key===nt&&ae(tt,it)),cc()===nt&&H$2(ot),it}insertAfter(_e,et=!0){G$3(),zc(this,_e);var tt=this.getWritable();let rt=_e.getWritable();var nt=rt.getParent();let ot=u$7();var it=!1,st=!1;if(nt!==null){var lt=_e.getIndexWithinParent();ac(rt),C$5(ot)&&(st=nt.__key,it=ot.anchor,nt=ot.focus,it=it.type==="element"&&it.key===st&&it.offset===lt+1,st=nt.type==="element"&&nt.key===st&&nt.offset===lt+1)}nt=this.getNextSibling(),lt=this.getParentOrThrow().getWritable();let ut=rt.__key,ct=tt.__next;return nt===null?lt.__last=ut:nt.getWritable().__prev=ut,lt.__size++,tt.__next=ut,rt.__next=ct,rt.__prev=tt.__key,rt.__parent=tt.__parent,et&&C$5(ot)&&(et=this.getIndexWithinParent(),Zd(ot,lt,et+1),tt=lt.__key,it&&ot.anchor.set(tt,et+2,"element"),st&&ot.focus.set(tt,et+2,"element")),_e}insertBefore(_e,et=!0){G$3(),zc(this,_e);var tt=this.getWritable();let rt=_e.getWritable(),nt=rt.__key;ac(rt);let ot=this.getPreviousSibling(),it=this.getParentOrThrow().getWritable(),st=tt.__prev,lt=this.getIndexWithinParent();return ot===null?it.__first=nt:ot.getWritable().__next=nt,it.__size++,tt.__prev=nt,rt.__prev=st,rt.__next=tt.__key,rt.__parent=tt.__parent,tt=u$7(),et&&C$5(tt)&&(et=this.getParentOrThrow(),Zd(tt,et,lt)),_e}isParentRequired(){return!1}createParentElementNode(){return be()}selectStart(){return this.selectPrevious()}selectEnd(){return this.selectNext(0,0)}selectPrevious(_e,et){G$3();let tt=this.getPreviousSibling(),rt=this.getParentOrThrow();return tt===null?rt.select(0,0):E$3(tt)?tt.select():B$5(tt)?tt.select(_e,et):(_e=tt.getIndexWithinParent()+1,rt.select(_e,_e))}selectNext(_e,et){G$3();let tt=this.getNextSibling(),rt=this.getParentOrThrow();return tt===null?rt.select():E$3(tt)?tt.select(0,0):B$5(tt)?tt.select(_e,et):(_e=tt.getIndexWithinParent(),rt.select(_e,_e))}markDirty(){this.getWritable()}}function ce(j,_e,et){et=et||_e.getParentOrThrow().getLastChild();let tt=_e;for(_e=[_e];tt!==et;)tt.getNextSibling()||n$6(140),tt=tt.getNextSibling(),_e.push(tt);for(let rt of _e)j=j.insertAfter(rt)}class de extends $d{static getType(){return"linebreak"}static clone(_e){return new de(_e.__key)}constructor(_e){super(_e)}getTextContent(){return` -`}createDOM(){return document.createElement("br")}updateDOM(){return!1}static importDOM(){return{br:_e=>{e:{var et=_e.parentElement;if(et!==null){let tt=et.firstChild;if((tt===_e||tt.nextSibling===_e&&ee(tt))&&(et=et.lastChild,et===_e||et.previousSibling===_e&&ee(et))){_e=!0;break e}}_e=!1}return _e?null:{conversion:fe,priority:0}}}}static importJSON(){return ge()}exportJSON(){return{type:"linebreak",version:1}}}function fe(){return{node:ge()}}function ge(){return yc(new de)}function Ec(j){return j instanceof de}function ee(j){return j.nodeType===3&&/^( |\t|\r?\n)+$/.test(j.textContent||"")}function he(j,_e){return _e&16?"code":_e&128?"mark":_e&32?"sub":_e&64?"sup":null}function ie(j,_e){return _e&1?"strong":_e&2?"em":"span"}function je(j,_e,et,tt,rt){j=tt.classList,tt=oc(rt,"base"),tt!==void 0&&j.add(...tt),tt=oc(rt,"underlineStrikethrough");let nt=!1,ot=_e&8&&_e&4;var it=et&8&&et&4;tt!==void 0&&(it?(nt=!0,ot||j.add(...tt)):ot&&j.remove(...tt));for(let st in gb)it=gb[st],tt=oc(rt,st),tt!==void 0&&(et&it?!nt||st!=="underline"&&st!=="strikethrough"?(!(_e&it)||ot&&st==="underline"||st==="strikethrough")&&j.add(...tt):_e&it&&j.remove(...tt):_e&it&&j.remove(...tt))}function ke(j,_e,et){let tt=_e.firstChild;if(et=et.isComposing(),j+=et?cb:"",tt==null)_e.textContent=j;else if(_e=tt.nodeValue,_e!==j)if(et||Wa){et=_e.length;let rt=j.length,nt=0,ot=0;for(;nt({conversion:ne,priority:0}),b:()=>({conversion:oe,priority:0}),code:()=>({conversion:pe,priority:0}),em:()=>({conversion:pe,priority:0}),i:()=>({conversion:pe,priority:0}),s:()=>({conversion:pe,priority:0}),span:()=>({conversion:qe,priority:0}),strong:()=>({conversion:pe,priority:0}),sub:()=>({conversion:pe,priority:0}),sup:()=>({conversion:pe,priority:0}),u:()=>({conversion:pe,priority:0})}}static importJSON(_e){let et=K(_e.text);return et.setFormat(_e.format),et.setDetail(_e.detail),et.setMode(_e.mode),et.setStyle(_e.style),et}exportDOM(_e){return{element:_e}=super.exportDOM(_e),_e!==null&&Cc(_e)||n$6(132),_e.style.whiteSpace="pre-wrap",this.hasFormat("bold")&&(_e=le(_e,"b")),this.hasFormat("italic")&&(_e=le(_e,"i")),this.hasFormat("strikethrough")&&(_e=le(_e,"s")),this.hasFormat("underline")&&(_e=le(_e,"u")),{element:_e}}exportJSON(){return{detail:this.getDetail(),format:this.getFormat(),mode:this.getMode(),style:this.getStyle(),text:this.getTextContent(),type:"text",version:1}}selectionTransform(){}setFormat(_e){let et=this.getWritable();return et.__format=typeof _e=="string"?gb[_e]:_e,et}setDetail(_e){let et=this.getWritable();return et.__detail=typeof _e=="string"?hb[_e]:_e,et}setStyle(_e){let et=this.getWritable();return et.__style=_e,et}toggleFormat(_e){let et=this.getFormat();return _e=Xb(et,_e,null),this.setFormat(_e)}toggleDirectionless(){let _e=this.getWritable();return _e.__detail^=1,_e}toggleUnmergeable(){let _e=this.getWritable();return _e.__detail^=2,_e}setMode(_e){if(_e=nb[_e],this.__mode===_e)return this;let et=this.getWritable();return et.__mode=_e,et}setTextContent(_e){if(this.__text===_e)return this;let et=this.getWritable();return et.__text=_e,et}select(_e,et){G$3();let tt=u$7();var rt=this.getTextContent();let nt=this.__key;if(typeof rt=="string"?(rt=rt.length,_e===void 0&&(_e=rt),et===void 0&&(et=rt)):et=_e=0,C$5(tt))rt=cc(),rt!==tt.anchor.key&&rt!==tt.focus.key||H$2(nt),tt.setTextNodeRange(this,_e,this,et);else return re(nt,_e,nt,et,"text","text");return tt}selectStart(){return this.select(0,0)}selectEnd(){let _e=this.getTextContentSize();return this.select(_e,_e)}spliceText(_e,et,tt,rt){let nt=this.getWritable(),ot=nt.__text,it=tt.length,st=_e;0>st&&(st=it+st,0>st&&(st=0));let lt=u$7();return rt&&C$5(lt)&&(_e+=it,lt.setTextNodeRange(nt,_e,nt,_e)),et=ot.slice(0,st)+tt+ot.slice(st+et),nt.__text=et,nt}canInsertTextBefore(){return!0}canInsertTextAfter(){return!0}splitText(..._e){G$3();var et=this.getLatest(),tt=et.getTextContent(),rt=et.__key,nt=cc(),ot=new Set(_e);_e=[];for(var it=tt.length,st="",lt=0;ltut&&bt.offset<=pt&&(bt.key=vt,bt.offset-=ut,et.dirty=!0),_t.key===rt&&_t.type==="text"&&_t.offset>ut&&_t.offset<=pt&&(_t.key=vt,_t.offset-=ut,et.dirty=!0)}nt===rt&&H$2(vt),ut=pt,st.push(ft)}return rt=this.getPreviousSibling(),nt=this.getNextSibling(),rt!==null&&bc(rt),nt!==null&&bc(nt),rt=tt.getWritable(),nt=this.getIndexWithinParent(),it?(rt.splice(nt,0,st),this.remove()):rt.splice(nt,1,st),C$5(et)&&Zd(et,tt,nt,ot-1),st}mergeWithSibling(_e){var et=_e===this.getPreviousSibling();et||_e===this.getNextSibling()||n$6(50);var tt=this.__key;let rt=_e.__key,nt=this.__text,ot=nt.length;cc()===rt&&H$2(tt);let it=u$7();if(C$5(it)){let st=it.anchor,lt=it.focus;st!==null&&st.key===rt&&(se(st,et,tt,_e,ot),it.dirty=!0),lt!==null&<.key===rt&&(se(lt,et,tt,_e,ot),it.dirty=!0)}return tt=_e.__text,this.setTextContent(et?tt+nt:nt+tt),et=this.getWritable(),_e.remove(),et}isTextEntity(){return!1}}function qe(j){let _e=j.style.fontWeight==="700",et=j.style.textDecoration==="line-through",tt=j.style.fontStyle==="italic",rt=j.style.textDecoration==="underline",nt=j.style.verticalAlign;return{forChild:ot=>(B$5(ot)&&(_e&&ot.toggleFormat("bold"),et&&ot.toggleFormat("strikethrough"),tt&&ot.toggleFormat("italic"),rt&&ot.toggleFormat("underline"),nt==="sub"&&ot.toggleFormat("subscript"),nt==="super"&&ot.toggleFormat("superscript")),ot),node:null}}function oe(j){let _e=j.style.fontWeight==="normal";return{forChild:et=>(B$5(et)&&!_e&&et.toggleFormat("bold"),et),node:null}}let te=new WeakMap;function ne(j){j.parentElement===null&&n$6(129);for(var _e=j.textContent||"",et,tt=j.parentNode,rt=[j];tt!==null&&(et=te.get(tt))===void 0&&!(tt.nodeName==="PRE"||tt.nodeType===1&&tt.style!==void 0&&tt.style.whiteSpace!==void 0&&tt.style.whiteSpace.startsWith("pre"));)rt.push(tt),tt=tt.parentNode;for(et=et===void 0?tt:et,tt=0;tt{e:{var et=_e.parentElement;if(et!==null){let tt=et.firstChild;if((tt===_e||tt.nextSibling===_e&&ee(tt))&&(et=et.lastChild,et===_e||et.previousSibling===_e&&ee(et))){_e=!0;break e}}_e=!1}return _e?null:{conversion:fe,priority:0}}}}static importJSON(){return ge()}exportJSON(){return{type:"linebreak",version:1}}}function fe(){return{node:ge()}}function ge(){return yc(new de)}function Ec(j){return j instanceof de}function ee(j){return j.nodeType===3&&/^( |\t|\r?\n)+$/.test(j.textContent||"")}function he(j,_e){return _e&16?"code":_e&128?"mark":_e&32?"sub":_e&64?"sup":null}function ie(j,_e){return _e&1?"strong":_e&2?"em":"span"}function je(j,_e,et,tt,rt){j=tt.classList,tt=oc(rt,"base"),tt!==void 0&&j.add(...tt),tt=oc(rt,"underlineStrikethrough");let nt=!1,ot=_e&8&&_e&4;var it=et&8&&et&4;tt!==void 0&&(it?(nt=!0,ot||j.add(...tt)):ot&&j.remove(...tt));for(let st in gb)it=gb[st],tt=oc(rt,st),tt!==void 0&&(et&it?!nt||st!=="underline"&&st!=="strikethrough"?(!(_e&it)||ot&&st==="underline"||st==="strikethrough")&&j.add(...tt):_e&it&&j.remove(...tt):_e&it&&j.remove(...tt))}function ke(j,_e,et){let tt=_e.firstChild;if(et=et.isComposing(),j+=et?cb:"",tt==null)_e.textContent=j;else if(_e=tt.nodeValue,_e!==j)if(et||Wa){et=_e.length;let rt=j.length,nt=0,ot=0;for(;nt({conversion:ne,priority:0}),b:()=>({conversion:oe,priority:0}),code:()=>({conversion:pe,priority:0}),em:()=>({conversion:pe,priority:0}),i:()=>({conversion:pe,priority:0}),s:()=>({conversion:pe,priority:0}),span:()=>({conversion:qe,priority:0}),strong:()=>({conversion:pe,priority:0}),sub:()=>({conversion:pe,priority:0}),sup:()=>({conversion:pe,priority:0}),u:()=>({conversion:pe,priority:0})}}static importJSON(_e){let et=K(_e.text);return et.setFormat(_e.format),et.setDetail(_e.detail),et.setMode(_e.mode),et.setStyle(_e.style),et}exportDOM(_e){return{element:_e}=super.exportDOM(_e),_e!==null&&Cc(_e)||n$6(132),_e.style.whiteSpace="pre-wrap",this.hasFormat("bold")&&(_e=le(_e,"b")),this.hasFormat("italic")&&(_e=le(_e,"i")),this.hasFormat("strikethrough")&&(_e=le(_e,"s")),this.hasFormat("underline")&&(_e=le(_e,"u")),{element:_e}}exportJSON(){return{detail:this.getDetail(),format:this.getFormat(),mode:this.getMode(),style:this.getStyle(),text:this.getTextContent(),type:"text",version:1}}selectionTransform(){}setFormat(_e){let et=this.getWritable();return et.__format=typeof _e=="string"?gb[_e]:_e,et}setDetail(_e){let et=this.getWritable();return et.__detail=typeof _e=="string"?hb[_e]:_e,et}setStyle(_e){let et=this.getWritable();return et.__style=_e,et}toggleFormat(_e){let et=this.getFormat();return _e=Xb(et,_e,null),this.setFormat(_e)}toggleDirectionless(){let _e=this.getWritable();return _e.__detail^=1,_e}toggleUnmergeable(){let _e=this.getWritable();return _e.__detail^=2,_e}setMode(_e){if(_e=nb[_e],this.__mode===_e)return this;let et=this.getWritable();return et.__mode=_e,et}setTextContent(_e){if(this.__text===_e)return this;let et=this.getWritable();return et.__text=_e,et}select(_e,et){G$3();let tt=u$7();var rt=this.getTextContent();let nt=this.__key;if(typeof rt=="string"?(rt=rt.length,_e===void 0&&(_e=rt),et===void 0&&(et=rt)):et=_e=0,C$5(tt))rt=cc(),rt!==tt.anchor.key&&rt!==tt.focus.key||H$2(nt),tt.setTextNodeRange(this,_e,this,et);else return re(nt,_e,nt,et,"text","text");return tt}selectStart(){return this.select(0,0)}selectEnd(){let _e=this.getTextContentSize();return this.select(_e,_e)}spliceText(_e,et,tt,rt){let nt=this.getWritable(),ot=nt.__text,it=tt.length,st=_e;0>st&&(st=it+st,0>st&&(st=0));let lt=u$7();return rt&&C$5(lt)&&(_e+=it,lt.setTextNodeRange(nt,_e,nt,_e)),et=ot.slice(0,st)+tt+ot.slice(st+et),nt.__text=et,nt}canInsertTextBefore(){return!0}canInsertTextAfter(){return!0}splitText(..._e){G$3();var et=this.getLatest(),tt=et.getTextContent(),rt=et.__key,nt=cc(),ot=new Set(_e);_e=[];for(var it=tt.length,st="",lt=0;ltut&&bt.offset<=pt&&(bt.key=mt,bt.offset-=ut,et.dirty=!0),_t.key===rt&&_t.type==="text"&&_t.offset>ut&&_t.offset<=pt&&(_t.key=mt,_t.offset-=ut,et.dirty=!0)}nt===rt&&H$2(mt),ut=pt,st.push(ft)}return rt=this.getPreviousSibling(),nt=this.getNextSibling(),rt!==null&&bc(rt),nt!==null&&bc(nt),rt=tt.getWritable(),nt=this.getIndexWithinParent(),it?(rt.splice(nt,0,st),this.remove()):rt.splice(nt,1,st),C$5(et)&&Zd(et,tt,nt,ot-1),st}mergeWithSibling(_e){var et=_e===this.getPreviousSibling();et||_e===this.getNextSibling()||n$6(50);var tt=this.__key;let rt=_e.__key,nt=this.__text,ot=nt.length;cc()===rt&&H$2(tt);let it=u$7();if(C$5(it)){let st=it.anchor,lt=it.focus;st!==null&&st.key===rt&&(se(st,et,tt,_e,ot),it.dirty=!0),lt!==null&<.key===rt&&(se(lt,et,tt,_e,ot),it.dirty=!0)}return tt=_e.__text,this.setTextContent(et?tt+nt:nt+tt),et=this.getWritable(),_e.remove(),et}isTextEntity(){return!1}}function qe(j){let _e=j.style.fontWeight==="700",et=j.style.textDecoration==="line-through",tt=j.style.fontStyle==="italic",rt=j.style.textDecoration==="underline",nt=j.style.verticalAlign;return{forChild:ot=>(B$5(ot)&&(_e&&ot.toggleFormat("bold"),et&&ot.toggleFormat("strikethrough"),tt&&ot.toggleFormat("italic"),rt&&ot.toggleFormat("underline"),nt==="sub"&&ot.toggleFormat("subscript"),nt==="super"&&ot.toggleFormat("superscript")),ot),node:null}}function oe(j){let _e=j.style.fontWeight==="normal";return{forChild:et=>(B$5(et)&&!_e&&et.toggleFormat("bold"),et),node:null}}let te=new WeakMap;function ne(j){j.parentElement===null&&n$6(129);for(var _e=j.textContent||"",et,tt=j.parentNode,rt=[j];tt!==null&&(et=te.get(tt))===void 0&&!(tt.nodeName==="PRE"||tt.nodeType===1&&tt.style!==void 0&&tt.style.whiteSpace!==void 0&&tt.style.whiteSpace.startsWith("pre"));)rt.push(tt),tt=tt.parentNode;for(et=et===void 0?tt:et,tt=0;tt(B$5(et)&&!et.hasFormat(_e)&&et.toggleFormat(_e),et),node:null}}function K(j=""){return yc(new me(j))}function B$5(j){return j instanceof me}class He extends me{static getType(){return"tab"}static clone(_e){let et=new He(_e.__key);return et.__text=_e.__text,et.__format=_e.__format,et.__style=_e.__style,et}constructor(_e){super(" ",_e),this.__detail=2}static importDOM(){return null}static importJSON(_e){let et=ue();return et.setFormat(_e.format),et.setStyle(_e.style),et}exportJSON(){return{...super.exportJSON(),type:"tab",version:1}}setTextContent(){n$6(126)}setDetail(){n$6(127)}setMode(){n$6(128)}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}}function ue(){return yc(new He)}function Ie(j){return j instanceof He}class Je{constructor(_e,et,tt){this._selection=null,this.key=_e,this.offset=et,this.type=tt}is(_e){return this.key===_e.key&&this.offset===_e.offset&&this.type===_e.type}isBefore(_e){let et=this.getNode(),tt=_e.getNode(),rt=this.offset;if(_e=_e.offset,E$3(et)){var nt=et.getDescendantByIndex(rt);et=nt??et}return E$3(tt)&&(nt=tt.getDescendantByIndex(_e),tt=nt??tt),et===tt?rt<_e:et.isBefore(tt)}getNode(){let _e=I$1(this.key);return _e===null&&n$6(20),_e}set(_e,et,tt){let rt=this._selection,nt=this.key;this.key=_e,this.offset=et,this.type=tt,dc()||(cc()===nt&&H$2(_e),rt!==null&&(rt.setCachedNodes(null),rt.dirty=!0))}}function Ke(j,_e,et){return new Je(j,_e,et)}function Le(j,_e){let et=_e.__key,tt=j.offset,rt="element";if(B$5(_e))rt="text",_e=_e.getTextContentSize(),tt>_e&&(tt=_e);else if(!E$3(_e)){var nt=_e.getNextSibling();B$5(nt)?(et=nt.__key,tt=0,rt="text"):(nt=_e.getParent())&&(et=nt.__key,tt=_e.getIndexWithinParent()+1)}j.set(et,tt,rt)}function ae(j,_e){if(E$3(_e)){let et=_e.getLastDescendant();E$3(et)||B$5(et)?Le(j,et):Le(j,_e)}else Le(j,_e)}function Me(j,_e,et,tt){let rt=j.getNode(),nt=rt.getChildAtIndex(j.offset),ot=K(),it=L(rt)?be().append(ot):ot;ot.setFormat(et),ot.setStyle(tt),nt===null?rt.append(it):nt.insertBefore(it),j.is(_e)&&_e.set(ot.__key,0,"text"),j.set(ot.__key,0,"text")}function Ne(j,_e,et,tt){j.key=_e,j.offset=et,j.type=tt}class Oe{constructor(_e){this._cachedNodes=null,this._nodes=_e,this.dirty=!1}getCachedNodes(){return this._cachedNodes}setCachedNodes(_e){this._cachedNodes=_e}is(_e){if(!Sd(_e))return!1;let et=this._nodes,tt=_e._nodes;return et.size===tt.size&&Array.from(et).every(rt=>tt.has(rt))}isCollapsed(){return!1}isBackward(){return!1}getStartEndPoints(){return null}add(_e){this.dirty=!0,this._nodes.add(_e),this._cachedNodes=null}delete(_e){this.dirty=!0,this._nodes.delete(_e),this._cachedNodes=null}clear(){this.dirty=!0,this._nodes.clear(),this._cachedNodes=null}has(_e){return this._nodes.has(_e)}clone(){return new Oe(new Set(this._nodes))}extract(){return this.getNodes()}insertRawText(){}insertText(){}insertNodes(_e){let et=this.getNodes(),tt=et.length;var rt=et[tt-1];if(B$5(rt))rt=rt.select();else{let nt=rt.getIndexWithinParent()+1;rt=rt.getParentOrThrow().select(nt,nt)}for(rt.insertNodes(_e),_e=0;_e(E$3(it)||y$7(it))&&!it.isInline())){et=Ue(_e),_e=et.getLastDescendant();var nt=et.getChildren();et=E$3(tt)&&tt.isEmpty()?null:this.insertParagraph(),rt=nt[nt.length-1];var ot=nt[0];(it=>E$3(it)&&Dc(it)&&!it.isEmpty()&&E$3(tt)&&(!tt.isEmpty()||"__value"in tt&&"__checked"in tt))(ot)&&(E$3(tt)||n$6(135),tt.append(...ot.getChildren()),ot=nt[1]),ot&&ce(tt,ot),nt=Fc(_e,Dc),et&&E$3(nt)&&("__value"in et&&"__checked"in et||Dc(rt))&&(nt.append(...et.getChildren()),et.remove()),E$3(tt)&&tt.isEmpty()&&tt.remove(),_e.selectEnd(),_e=E$3(tt)?tt.getLastChild():null,Ec(_e)&&nt!==tt&&_e.remove()}else E$3(tt)||n$6(135),rt=Te(this),tt.splice(rt,0,_e),et.selectEnd()}}insertParagraph(){if(this.anchor.key==="root"){var _e=be();return J$1().splice(this.anchor.offset,0,[_e]),_e.select(),_e}var et=Te(this);return _e=Fc(this.anchor.getNode(),Dc),E$3(_e)||n$6(136),et=(et=_e.getChildAtIndex(et))?[et,...et.getNextSiblings()]:[],(_e=_e.insertNewAfter(this,!1))?(_e.append(...et),_e.selectStart(),_e):null}insertLineBreak(_e){var et=ge();this.insertNodes([et]),_e&&(_e=et.getParentOrThrow(),et=et.getIndexWithinParent(),_e.select(et,et))}extract(){var _e=this.getNodes(),et=_e.length,tt=et-1,rt=this.anchor;let nt=this.focus;var ot=_e[0];let it=_e[tt],[st,lt]=Qe(this);return et===0?[]:et===1?B$5(ot)&&!this.isCollapsed()?(_e=st>lt?lt:st,tt=ot.splitText(_e,st>lt?st:lt),_e=_e===0?tt[0]:tt[1],_e!=null?[_e]:[]):[ot]:(et=rt.isBefore(nt),B$5(ot)&&(rt=et?st:lt,rt===ot.getTextContentSize()?_e.shift():rt!==0&&([,ot]=ot.splitText(rt),_e[0]=ot)),B$5(it)&&(ot=it.getTextContent().length,et=et?lt:st,et===0?_e.pop():et!==ot&&([it]=it.splitText(et),_e[tt]=it)),_e)}modify(_e,et,tt){var rt=this.focus,nt=this.anchor,ot=_e==="move",it=rc(rt,et);if(y$7(it)&&!it.isIsolated())ot&&it.isKeyboardSelectable()?(et=Ve(),et.add(it.__key),zb(et)):(_e=et?it.getPreviousSibling():it.getNextSibling(),B$5(_e)?(it=_e.__key,et=et?_e.getTextContent().length:0,rt.set(it,et,"text"),ot&&nt.set(it,et,"text")):(tt=it.getParentOrThrow(),E$3(_e)?(tt=_e.__key,it=et?_e.getChildrenSize():0):(it=it.getIndexWithinParent(),tt=tt.__key,et||it++),rt.set(tt,it,"element"),ot&&nt.set(tt,it,"element")));else if(nt=F$3(),rt=wb(nt._window)){var st=nt._blockCursorElement,lt=nt._rootElement;if(lt===null||st===null||!E$3(it)||it.isInline()||it.canBeEmpty()||Bc(st,nt,lt),rt.modify(_e,et?"backward":"forward",tt),0et||lt){tt.splice(it,1),lt&&(ot=void 0);break}}_e=tt.join("").trim(),_e===""?j.remove():(j.setTextContent(_e),j.select(ot,ot))}function Ye(j,_e,et,tt){var rt=_e;if(j.nodeType===1){let it=!1;var nt=j.childNodes,ot=nt.length;rt===ot&&(it=!0,rt=ot-1);let st=nt[rt];if(ot=!1,st===tt._blockCursorElement?(st=nt[rt+1],ot=!0):tt._blockCursorElement!==null&&rt--,tt=hc(st),B$5(tt))rt=it?tt.getTextContentSize():0;else{if(nt=hc(j),nt===null)return null;if(E$3(nt)?(j=nt.getChildAtIndex(rt),(_e=E$3(j))&&(_e=j.getParent(),_e=et===null||_e===null||!_e.canBeEmpty()||_e!==et.getNode()),_e&&(et=it?j.getLastDescendant():j.getFirstDescendant(),et===null?(nt=j,rt=0):(j=et,nt=E$3(j)?j:j.getParentOrThrow())),B$5(j)?(tt=j,nt=null,rt=it?j.getTextContentSize():0):j!==nt&&it&&!ot&&rt++):(rt=nt.getIndexWithinParent(),rt=_e===0&&y$7(nt)&&hc(j)===nt?rt:rt+1,nt=nt.getParentOrThrow()),E$3(nt))return Ke(nt.__key,rt,"element")}}else tt=hc(j);return B$5(tt)?Ke(tt.__key,rt,"text"):null}function Ze(j,_e,et){var tt=j.offset,rt=j.getNode();tt===0?(tt=rt.getPreviousSibling(),rt=rt.getParent(),_e?(et||!_e)&&tt===null&&E$3(rt)&&rt.isInline()&&(_e=rt.getPreviousSibling(),B$5(_e)&&(j.key=_e.__key,j.offset=_e.getTextContent().length)):E$3(tt)&&!et&&tt.isInline()?(j.key=tt.__key,j.offset=tt.getChildrenSize(),j.type="element"):B$5(tt)&&(j.key=tt.__key,j.offset=tt.getTextContent().length)):tt===rt.getTextContent().length&&(tt=rt.getNextSibling(),rt=rt.getParent(),_e&&E$3(tt)&&tt.isInline()?(j.key=tt.__key,j.offset=0,j.type="element"):(et||_e)&&tt===null&&E$3(rt)&&rt.isInline()&&!rt.canInsertTextAfter()&&(_e=rt.getNextSibling(),B$5(_e)&&(j.key=_e.__key,j.offset=0)))}function Se(j,_e,et){if(j.type==="text"&&_e.type==="text"){var tt=j.isBefore(_e);let rt=j.is(_e);Ze(j,tt,rt),Ze(_e,!tt,rt),rt&&(_e.key=j.key,_e.offset=j.offset,_e.type=j.type),tt=F$3(),tt.isComposing()&&tt._compositionKey!==j.key&&C$5(et)&&(tt=et.anchor,et=et.focus,Ne(j,tt.key,tt.offset,tt.type),Ne(_e,et.key,et.offset,et.type))}}function Re(j,_e,et,tt,rt,nt){return j===null||et===null||!Sb(rt,j,et)||(_e=Ye(j,_e,C$5(nt)?nt.anchor:null,rt),_e===null)||(tt=Ye(et,tt,C$5(nt)?nt.focus:null,rt),tt===null||_e.type==="element"&&tt.type==="element"&&(j=hc(j),et=hc(et),y$7(j)&&y$7(et)))?null:(Se(_e,tt,nt),[_e,tt])}function re(j,_e,et,tt,rt,nt){let ot=$b();return j=new Pe(Ke(j,_e,rt),Ke(et,tt,nt),0,""),j.dirty=!0,ot._selection=j}function Ve(){return new Oe(new Set)}function $e(j){let _e=j.getEditorState()._selection,et=wb(j._window);return C$5(_e)||_e==null?Od(_e,et,j,null):_e.clone()}function Od(j,_e,et,tt){var rt=et._window;if(rt===null)return null;var nt=(rt=tt||rt.event)?rt.type:void 0;tt=nt==="selectionchange",rt=!pb&&(tt||nt==="beforeinput"||nt==="compositionstart"||nt==="compositionend"||nt==="click"&&rt&&rt.detail===3||nt==="drop"||nt===void 0);let ot;if(!C$5(j)||rt){if(_e===null)return null;if(rt=_e.anchorNode,nt=_e.focusNode,ot=_e.anchorOffset,_e=_e.focusOffset,tt&&C$5(j)&&!Sb(et,rt,nt))return j.clone()}else return j.clone();if(et=Re(rt,ot,nt,_e,et,j),et===null)return null;let[it,st]=et;return new Pe(it,st,C$5(j)?j.format:0,C$5(j)?j.style:"")}function u$7(){return $b()._selection}function mc(){return F$3()._editorState._selection}function Zd(j,_e,et,tt=1){var rt=j.anchor,nt=j.focus,ot=rt.getNode(),it=nt.getNode();if(_e.is(ot)||_e.is(it)){if(ot=_e.__key,j.isCollapsed())_e=rt.offset,(et<=_e&&0tt)&&(et=Math.max(0,_e+tt),rt.set(ot,et,"element"),nt.set(ot,et,"element"),af(j));else{let lt=j.isBackward();it=lt?nt:rt;var st=it.getNode();rt=lt?rt:nt,nt=rt.getNode(),_e.is(st)&&(st=it.offset,(et<=st&&0tt)&&it.set(ot,Math.max(0,st+tt),"element")),_e.is(nt)&&(_e=rt.offset,(et<=_e&&0tt)&&rt.set(ot,Math.max(0,_e+tt),"element"))}af(j)}}function af(j){var _e=j.anchor,et=_e.offset;let tt=j.focus;var rt=tt.offset,nt=_e.getNode(),ot=tt.getNode();if(j.isCollapsed())E$3(nt)&&(ot=nt.getChildrenSize(),ot=(rt=et>=ot)?nt.getChildAtIndex(ot-1):nt.getChildAtIndex(et),B$5(ot)&&(et=0,rt&&(et=ot.getTextContentSize()),_e.set(ot.__key,et,"text"),tt.set(ot.__key,et,"text")));else{if(E$3(nt)){let it=nt.getChildrenSize();et=(j=et>=it)?nt.getChildAtIndex(it-1):nt.getChildAtIndex(et),B$5(et)&&(nt=0,j&&(nt=et.getTextContentSize()),_e.set(et.__key,nt,"text"))}E$3(ot)&&(et=ot.getChildrenSize(),rt=(_e=rt>=et)?ot.getChildAtIndex(et-1):ot.getChildAtIndex(rt),B$5(rt)&&(ot=0,_e&&(ot=rt.getTextContentSize()),tt.set(rt.__key,ot,"text")))}}function bf(j,_e){if(_e=_e.getEditorState()._selection,j=j._selection,C$5(j)){var et=j.anchor;let tt=j.focus,rt;et.type==="text"&&(rt=et.getNode(),rt.selectionTransform(_e,j)),tt.type==="text"&&(et=tt.getNode(),rt!==et&&et.selectionTransform(_e,j))}}function Yd(j,_e,et,tt,rt){let nt=null,ot=0,it=null;tt!==null?(nt=tt.__key,B$5(tt)?(ot=tt.getTextContentSize(),it="text"):E$3(tt)&&(ot=tt.getChildrenSize(),it="element")):rt!==null&&(nt=rt.__key,B$5(rt)?it="text":E$3(rt)&&(it="element")),nt!==null&&it!==null?j.set(nt,ot,it):(ot=_e.getIndexWithinParent(),ot===-1&&(ot=et.getChildrenSize()),j.set(et.__key,ot,"element"))}function se(j,_e,et,tt,rt){j.type==="text"?(j.key=et,_e||(j.offset+=rt)):j.offset>tt.getIndexWithinParent()&&--j.offset}function Te(j){j.isCollapsed()||j.removeText();var _e=j.anchor;for(j=_e.getNode(),_e=_e.offset;!Dc(j);)[j,_e]=cf(j,_e);return _e}function cf(j,_e){var et=j.getParent();if(!et)return et=be(),J$1().append(et),et.select(),[J$1(),0];if(B$5(j)){var tt=j.splitText(_e);return tt.length===0?[et,j.getIndexWithinParent()]:(j=_e===0?0:1,j=tt[0].getIndexWithinParent()+j,[et,j])}return!E$3(j)||_e===0?[et,j.getIndexWithinParent()]:((tt=j.getChildAtIndex(_e))&&(_e=new Pe(Ke(j.__key,_e,"element"),Ke(j.__key,_e,"element"),0,""),(_e=j.insertNewAfter(_e))&&_e.append(tt,...tt.getNextSiblings())),[et,j.getIndexWithinParent()+1])}function Ue(j){let _e=be(),et=null;for(let tt=0;ttir&&(ur=Er-ir),ur!==0)if(Jt)sr.scrollBy(0,ur);else{let br=hr.scrollTop;hr.scrollTop+=ur;let Sr=hr.scrollTop-br;gr-=Sr,Er-=Sr}if(Jt)break;hr=Ub(hr)}}}Gd=!0}}else ot!==null&&Sb(j,Wr,Vr)&&It.removeAllRanges()}}e:{let Nr=j._blockCursorElement;if(C$5(it)&&it.isCollapsed()&&it.anchor.type==="element"&&tt.contains(document.activeElement)){let Wr=it.anchor,Vr=Wr.getNode(),Jr=Wr.offset,Yr=Vr.getChildrenSize(),jr=!1,Hr=null;if(Jr===Yr){let hn=Vr.getChildAtIndex(Jr-1);Ac(hn)&&(jr=!0)}else{let hn=Vr.getChildAtIndex(Jr);if(Ac(hn)){let pr=hn.getPreviousSibling();(pr===null||Ac(pr))&&(jr=!0,Hr=j.getElementByKey(hn.__key))}}if(jr){let hn=j.getElementByKey(Vr.__key);if(Nr===null){let pr=j._config.theme,sr=document.createElement("div");sr.contentEditable="false",sr.setAttribute("data-lexical-cursor","true");let Jt=pr.blockCursor;if(Jt!==void 0){if(typeof Jt=="string"){let ur=Jt.split(" ");Jt=pr.blockCursor=ur}Jt!==void 0&&sr.classList.add(...Jt)}j._blockCursorElement=Nr=sr}tt.style.caretColor="transparent",Hr===null?hn.appendChild(Nr):hn.insertBefore(Nr,Hr);break e}}Nr!==null&&Bc(Nr,j,tt)}ft!==null&&ft.observe(tt,ef)}finally{T=ct,S=lt}}if(pt!==null){var nr=pt;let Nr=Array.from(j._listeners.mutation),Wr=Nr.length;for(let Vr=0;Vr{nt=R(j,_e,et)}),nt}let tt=jc(j);for(let nt=4;0<=nt;nt--)for(let ot=0;ot{lf(j)}):(ot._flushSync=!1,it&&(tt.clear(),j._deferred=[],j._pendingEditorState=null))}function v$6(j,_e,et){j._updating?j._updates.push([_e,et]):of(j,_e,et)}class sf extends $d{constructor(_e){super(_e)}decorate(){n$6(47)}isIsolated(){return!1}isInline(){return!0}isKeyboardSelectable(){return!0}}function y$7(j){return j instanceof sf}class tf extends $d{constructor(_e){super(_e),this.__last=this.__first=null,this.__indent=this.__format=this.__size=0,this.__dir=null}getFormat(){return this.getLatest().__format}getFormatType(){let _e=this.getFormat();return mb[_e]||""}getIndent(){return this.getLatest().__indent}getChildren(){let _e=[],et=this.getFirstChild();for(;et!==null;)_e.push(et),et=et.getNextSibling();return _e}getChildrenKeys(){let _e=[],et=this.getFirstChild();for(;et!==null;)_e.push(et.__key),et=et.getNextSibling();return _e}getChildrenSize(){return this.getLatest().__size}isEmpty(){return this.getChildrenSize()===0}isDirty(){let _e=F$3()._dirtyElements;return _e!==null&&_e.has(this.__key)}isLastChild(){let _e=this.getLatest(),et=this.getParentOrThrow().getLastChild();return et!==null&&et.is(_e)}getAllTextNodes(){let _e=[],et=this.getFirstChild();for(;et!==null;){if(B$5(et)&&_e.push(et),E$3(et)){let tt=et.getAllTextNodes();_e.push(...tt)}et=et.getNextSibling()}return _e}getFirstDescendant(){let _e=this.getFirstChild();for(;_e!==null;){if(E$3(_e)){let et=_e.getFirstChild();if(et!==null){_e=et;continue}}break}return _e}getLastDescendant(){let _e=this.getLastChild();for(;_e!==null;){if(E$3(_e)){let et=_e.getLastChild();if(et!==null){_e=et;continue}}break}return _e}getDescendantByIndex(_e){let et=this.getChildren(),tt=et.length;return _e>=tt?(_e=et[tt-1],E$3(_e)&&_e.getLastDescendant()||_e||null):(_e=et[_e],E$3(_e)&&_e.getFirstDescendant()||_e||null)}getFirstChild(){let _e=this.getLatest().__first;return _e===null?null:I$1(_e)}getFirstChildOrThrow(){let _e=this.getFirstChild();return _e===null&&n$6(45,this.__key),_e}getLastChild(){let _e=this.getLatest().__last;return _e===null?null:I$1(_e)}getLastChildOrThrow(){let _e=this.getLastChild();return _e===null&&n$6(96,this.__key),_e}getChildAtIndex(_e){var et=this.getChildrenSize();let tt;if(_e=_e;){if(et===_e)return tt;tt=tt.getPreviousSibling(),et--}return null}getTextContent(){let _e="",et=this.getChildren(),tt=et.length;for(let rt=0;rt(E$3(it)||y$7(it))&&!it.isInline())){et=Ue(_e),_e=et.getLastDescendant();var nt=et.getChildren();et=E$3(tt)&&tt.isEmpty()?null:this.insertParagraph(),rt=nt[nt.length-1];var ot=nt[0];(it=>E$3(it)&&Dc(it)&&!it.isEmpty()&&E$3(tt)&&(!tt.isEmpty()||"__value"in tt&&"__checked"in tt))(ot)&&(E$3(tt)||n$6(135),tt.append(...ot.getChildren()),ot=nt[1]),ot&&ce(tt,ot),nt=Fc(_e,Dc),et&&E$3(nt)&&("__value"in et&&"__checked"in et||Dc(rt))&&(nt.append(...et.getChildren()),et.remove()),E$3(tt)&&tt.isEmpty()&&tt.remove(),_e.selectEnd(),_e=E$3(tt)?tt.getLastChild():null,Ec(_e)&&nt!==tt&&_e.remove()}else E$3(tt)||n$6(135),rt=Te(this),tt.splice(rt,0,_e),et.selectEnd()}}insertParagraph(){if(this.anchor.key==="root"){var _e=be();return J$1().splice(this.anchor.offset,0,[_e]),_e.select(),_e}var et=Te(this);return _e=Fc(this.anchor.getNode(),Dc),E$3(_e)||n$6(136),et=(et=_e.getChildAtIndex(et))?[et,...et.getNextSiblings()]:[],(_e=_e.insertNewAfter(this,!1))?(_e.append(...et),_e.selectStart(),_e):null}insertLineBreak(_e){var et=ge();this.insertNodes([et]),_e&&(_e=et.getParentOrThrow(),et=et.getIndexWithinParent(),_e.select(et,et))}extract(){var _e=this.getNodes(),et=_e.length,tt=et-1,rt=this.anchor;let nt=this.focus;var ot=_e[0];let it=_e[tt],[st,lt]=Qe(this);return et===0?[]:et===1?B$5(ot)&&!this.isCollapsed()?(_e=st>lt?lt:st,tt=ot.splitText(_e,st>lt?st:lt),_e=_e===0?tt[0]:tt[1],_e!=null?[_e]:[]):[ot]:(et=rt.isBefore(nt),B$5(ot)&&(rt=et?st:lt,rt===ot.getTextContentSize()?_e.shift():rt!==0&&([,ot]=ot.splitText(rt),_e[0]=ot)),B$5(it)&&(ot=it.getTextContent().length,et=et?lt:st,et===0?_e.pop():et!==ot&&([it]=it.splitText(et),_e[tt]=it)),_e)}modify(_e,et,tt){var rt=this.focus,nt=this.anchor,ot=_e==="move",it=rc(rt,et);if(y$7(it)&&!it.isIsolated())ot&&it.isKeyboardSelectable()?(et=Ve(),et.add(it.__key),zb(et)):(_e=et?it.getPreviousSibling():it.getNextSibling(),B$5(_e)?(it=_e.__key,et=et?_e.getTextContent().length:0,rt.set(it,et,"text"),ot&&nt.set(it,et,"text")):(tt=it.getParentOrThrow(),E$3(_e)?(tt=_e.__key,it=et?_e.getChildrenSize():0):(it=it.getIndexWithinParent(),tt=tt.__key,et||it++),rt.set(tt,it,"element"),ot&&nt.set(tt,it,"element")));else if(nt=F$3(),rt=wb(nt._window)){var st=nt._blockCursorElement,lt=nt._rootElement;if(lt===null||st===null||!E$3(it)||it.isInline()||it.canBeEmpty()||Bc(st,nt,lt),rt.modify(_e,et?"backward":"forward",tt),0et||lt){tt.splice(it,1),lt&&(ot=void 0);break}}_e=tt.join("").trim(),_e===""?j.remove():(j.setTextContent(_e),j.select(ot,ot))}function Ye(j,_e,et,tt){var rt=_e;if(j.nodeType===1){let it=!1;var nt=j.childNodes,ot=nt.length;rt===ot&&(it=!0,rt=ot-1);let st=nt[rt];if(ot=!1,st===tt._blockCursorElement?(st=nt[rt+1],ot=!0):tt._blockCursorElement!==null&&rt--,tt=hc(st),B$5(tt))rt=it?tt.getTextContentSize():0;else{if(nt=hc(j),nt===null)return null;if(E$3(nt)?(j=nt.getChildAtIndex(rt),(_e=E$3(j))&&(_e=j.getParent(),_e=et===null||_e===null||!_e.canBeEmpty()||_e!==et.getNode()),_e&&(et=it?j.getLastDescendant():j.getFirstDescendant(),et===null?(nt=j,rt=0):(j=et,nt=E$3(j)?j:j.getParentOrThrow())),B$5(j)?(tt=j,nt=null,rt=it?j.getTextContentSize():0):j!==nt&&it&&!ot&&rt++):(rt=nt.getIndexWithinParent(),rt=_e===0&&y$7(nt)&&hc(j)===nt?rt:rt+1,nt=nt.getParentOrThrow()),E$3(nt))return Ke(nt.__key,rt,"element")}}else tt=hc(j);return B$5(tt)?Ke(tt.__key,rt,"text"):null}function Ze(j,_e,et){var tt=j.offset,rt=j.getNode();tt===0?(tt=rt.getPreviousSibling(),rt=rt.getParent(),_e?(et||!_e)&&tt===null&&E$3(rt)&&rt.isInline()&&(_e=rt.getPreviousSibling(),B$5(_e)&&(j.key=_e.__key,j.offset=_e.getTextContent().length)):E$3(tt)&&!et&&tt.isInline()?(j.key=tt.__key,j.offset=tt.getChildrenSize(),j.type="element"):B$5(tt)&&(j.key=tt.__key,j.offset=tt.getTextContent().length)):tt===rt.getTextContent().length&&(tt=rt.getNextSibling(),rt=rt.getParent(),_e&&E$3(tt)&&tt.isInline()?(j.key=tt.__key,j.offset=0,j.type="element"):(et||_e)&&tt===null&&E$3(rt)&&rt.isInline()&&!rt.canInsertTextAfter()&&(_e=rt.getNextSibling(),B$5(_e)&&(j.key=_e.__key,j.offset=0)))}function Se(j,_e,et){if(j.type==="text"&&_e.type==="text"){var tt=j.isBefore(_e);let rt=j.is(_e);Ze(j,tt,rt),Ze(_e,!tt,rt),rt&&(_e.key=j.key,_e.offset=j.offset,_e.type=j.type),tt=F$3(),tt.isComposing()&&tt._compositionKey!==j.key&&C$5(et)&&(tt=et.anchor,et=et.focus,Ne(j,tt.key,tt.offset,tt.type),Ne(_e,et.key,et.offset,et.type))}}function Re(j,_e,et,tt,rt,nt){return j===null||et===null||!Sb(rt,j,et)||(_e=Ye(j,_e,C$5(nt)?nt.anchor:null,rt),_e===null)||(tt=Ye(et,tt,C$5(nt)?nt.focus:null,rt),tt===null||_e.type==="element"&&tt.type==="element"&&(j=hc(j),et=hc(et),y$7(j)&&y$7(et)))?null:(Se(_e,tt,nt),[_e,tt])}function re(j,_e,et,tt,rt,nt){let ot=$b();return j=new Pe(Ke(j,_e,rt),Ke(et,tt,nt),0,""),j.dirty=!0,ot._selection=j}function Ve(){return new Oe(new Set)}function $e(j){let _e=j.getEditorState()._selection,et=wb(j._window);return C$5(_e)||_e==null?Od(_e,et,j,null):_e.clone()}function Od(j,_e,et,tt){var rt=et._window;if(rt===null)return null;var nt=(rt=tt||rt.event)?rt.type:void 0;tt=nt==="selectionchange",rt=!pb&&(tt||nt==="beforeinput"||nt==="compositionstart"||nt==="compositionend"||nt==="click"&&rt&&rt.detail===3||nt==="drop"||nt===void 0);let ot;if(!C$5(j)||rt){if(_e===null)return null;if(rt=_e.anchorNode,nt=_e.focusNode,ot=_e.anchorOffset,_e=_e.focusOffset,tt&&C$5(j)&&!Sb(et,rt,nt))return j.clone()}else return j.clone();if(et=Re(rt,ot,nt,_e,et,j),et===null)return null;let[it,st]=et;return new Pe(it,st,C$5(j)?j.format:0,C$5(j)?j.style:"")}function u$7(){return $b()._selection}function mc(){return F$3()._editorState._selection}function Zd(j,_e,et,tt=1){var rt=j.anchor,nt=j.focus,ot=rt.getNode(),it=nt.getNode();if(_e.is(ot)||_e.is(it)){if(ot=_e.__key,j.isCollapsed())_e=rt.offset,(et<=_e&&0tt)&&(et=Math.max(0,_e+tt),rt.set(ot,et,"element"),nt.set(ot,et,"element"),af(j));else{let lt=j.isBackward();it=lt?nt:rt;var st=it.getNode();rt=lt?rt:nt,nt=rt.getNode(),_e.is(st)&&(st=it.offset,(et<=st&&0tt)&&it.set(ot,Math.max(0,st+tt),"element")),_e.is(nt)&&(_e=rt.offset,(et<=_e&&0tt)&&rt.set(ot,Math.max(0,_e+tt),"element"))}af(j)}}function af(j){var _e=j.anchor,et=_e.offset;let tt=j.focus;var rt=tt.offset,nt=_e.getNode(),ot=tt.getNode();if(j.isCollapsed())E$3(nt)&&(ot=nt.getChildrenSize(),ot=(rt=et>=ot)?nt.getChildAtIndex(ot-1):nt.getChildAtIndex(et),B$5(ot)&&(et=0,rt&&(et=ot.getTextContentSize()),_e.set(ot.__key,et,"text"),tt.set(ot.__key,et,"text")));else{if(E$3(nt)){let it=nt.getChildrenSize();et=(j=et>=it)?nt.getChildAtIndex(it-1):nt.getChildAtIndex(et),B$5(et)&&(nt=0,j&&(nt=et.getTextContentSize()),_e.set(et.__key,nt,"text"))}E$3(ot)&&(et=ot.getChildrenSize(),rt=(_e=rt>=et)?ot.getChildAtIndex(et-1):ot.getChildAtIndex(rt),B$5(rt)&&(ot=0,_e&&(ot=rt.getTextContentSize()),tt.set(rt.__key,ot,"text")))}}function bf(j,_e){if(_e=_e.getEditorState()._selection,j=j._selection,C$5(j)){var et=j.anchor;let tt=j.focus,rt;et.type==="text"&&(rt=et.getNode(),rt.selectionTransform(_e,j)),tt.type==="text"&&(et=tt.getNode(),rt!==et&&et.selectionTransform(_e,j))}}function Yd(j,_e,et,tt,rt){let nt=null,ot=0,it=null;tt!==null?(nt=tt.__key,B$5(tt)?(ot=tt.getTextContentSize(),it="text"):E$3(tt)&&(ot=tt.getChildrenSize(),it="element")):rt!==null&&(nt=rt.__key,B$5(rt)?it="text":E$3(rt)&&(it="element")),nt!==null&&it!==null?j.set(nt,ot,it):(ot=_e.getIndexWithinParent(),ot===-1&&(ot=et.getChildrenSize()),j.set(et.__key,ot,"element"))}function se(j,_e,et,tt,rt){j.type==="text"?(j.key=et,_e||(j.offset+=rt)):j.offset>tt.getIndexWithinParent()&&--j.offset}function Te(j){j.isCollapsed()||j.removeText();var _e=j.anchor;for(j=_e.getNode(),_e=_e.offset;!Dc(j);)[j,_e]=cf(j,_e);return _e}function cf(j,_e){var et=j.getParent();if(!et)return et=be(),J$1().append(et),et.select(),[J$1(),0];if(B$5(j)){var tt=j.splitText(_e);return tt.length===0?[et,j.getIndexWithinParent()]:(j=_e===0?0:1,j=tt[0].getIndexWithinParent()+j,[et,j])}return!E$3(j)||_e===0?[et,j.getIndexWithinParent()]:((tt=j.getChildAtIndex(_e))&&(_e=new Pe(Ke(j.__key,_e,"element"),Ke(j.__key,_e,"element"),0,""),(_e=j.insertNewAfter(_e))&&_e.append(tt,...tt.getNextSiblings())),[et,j.getIndexWithinParent()+1])}function Ue(j){let _e=be(),et=null;for(let tt=0;ttar&&(gr=_r-ar),gr!==0)if(ir)sr.scrollBy(0,gr);else{let wr=pr.scrollTop;pr.scrollTop+=gr;let Mr=pr.scrollTop-wr;hr-=Mr,_r-=Mr}if(ir)break;pr=Ub(pr)}}}Gd=!0}}else ot!==null&&Sb(j,Gr,qr)&&It.removeAllRanges()}}e:{let Nr=j._blockCursorElement;if(C$5(it)&&it.isCollapsed()&&it.anchor.type==="element"&&tt.contains(document.activeElement)){let Gr=it.anchor,qr=Gr.getNode(),Qr=Gr.offset,Yr=qr.getChildrenSize(),Pr=!1,Vr=null;if(Qr===Yr){let yn=qr.getChildAtIndex(Qr-1);Ac(yn)&&(Pr=!0)}else{let yn=qr.getChildAtIndex(Qr);if(Ac(yn)){let fr=yn.getPreviousSibling();(fr===null||Ac(fr))&&(Pr=!0,Vr=j.getElementByKey(yn.__key))}}if(Pr){let yn=j.getElementByKey(qr.__key);if(Nr===null){let fr=j._config.theme,sr=document.createElement("div");sr.contentEditable="false",sr.setAttribute("data-lexical-cursor","true");let ir=fr.blockCursor;if(ir!==void 0){if(typeof ir=="string"){let gr=ir.split(" ");ir=fr.blockCursor=gr}ir!==void 0&&sr.classList.add(...ir)}j._blockCursorElement=Nr=sr}tt.style.caretColor="transparent",Vr===null?yn.appendChild(Nr):yn.insertBefore(Nr,Vr);break e}}Nr!==null&&Bc(Nr,j,tt)}ft!==null&&ft.observe(tt,ef)}finally{T=ct,S=lt}}if(pt!==null){var rr=pt;let Nr=Array.from(j._listeners.mutation),Gr=Nr.length;for(let qr=0;qr{nt=R(j,_e,et)}),nt}let tt=jc(j);for(let nt=4;0<=nt;nt--)for(let ot=0;ot{lf(j)}):(ot._flushSync=!1,it&&(tt.clear(),j._deferred=[],j._pendingEditorState=null))}function v$6(j,_e,et){j._updating?j._updates.push([_e,et]):of(j,_e,et)}class sf extends $d{constructor(_e){super(_e)}decorate(){n$6(47)}isIsolated(){return!1}isInline(){return!0}isKeyboardSelectable(){return!0}}function y$7(j){return j instanceof sf}class tf extends $d{constructor(_e){super(_e),this.__last=this.__first=null,this.__indent=this.__format=this.__size=0,this.__dir=null}getFormat(){return this.getLatest().__format}getFormatType(){let _e=this.getFormat();return mb[_e]||""}getIndent(){return this.getLatest().__indent}getChildren(){let _e=[],et=this.getFirstChild();for(;et!==null;)_e.push(et),et=et.getNextSibling();return _e}getChildrenKeys(){let _e=[],et=this.getFirstChild();for(;et!==null;)_e.push(et.__key),et=et.getNextSibling();return _e}getChildrenSize(){return this.getLatest().__size}isEmpty(){return this.getChildrenSize()===0}isDirty(){let _e=F$3()._dirtyElements;return _e!==null&&_e.has(this.__key)}isLastChild(){let _e=this.getLatest(),et=this.getParentOrThrow().getLastChild();return et!==null&&et.is(_e)}getAllTextNodes(){let _e=[],et=this.getFirstChild();for(;et!==null;){if(B$5(et)&&_e.push(et),E$3(et)){let tt=et.getAllTextNodes();_e.push(...tt)}et=et.getNextSibling()}return _e}getFirstDescendant(){let _e=this.getFirstChild();for(;_e!==null;){if(E$3(_e)){let et=_e.getFirstChild();if(et!==null){_e=et;continue}}break}return _e}getLastDescendant(){let _e=this.getLastChild();for(;_e!==null;){if(E$3(_e)){let et=_e.getLastChild();if(et!==null){_e=et;continue}}break}return _e}getDescendantByIndex(_e){let et=this.getChildren(),tt=et.length;return _e>=tt?(_e=et[tt-1],E$3(_e)&&_e.getLastDescendant()||_e||null):(_e=et[_e],E$3(_e)&&_e.getFirstDescendant()||_e||null)}getFirstChild(){let _e=this.getLatest().__first;return _e===null?null:I$1(_e)}getFirstChildOrThrow(){let _e=this.getFirstChild();return _e===null&&n$6(45,this.__key),_e}getLastChild(){let _e=this.getLatest().__last;return _e===null?null:I$1(_e)}getLastChildOrThrow(){let _e=this.getLastChild();return _e===null&&n$6(96,this.__key),_e}getChildAtIndex(_e){var et=this.getChildrenSize();let tt;if(_e=_e;){if(et===_e)return tt;tt=tt.getPreviousSibling(),et--}return null}getTextContent(){let _e="",et=this.getChildren(),tt=et.length;for(let rt=0;rtet.remove()),_e}append(..._e){return this.splice(this.getChildrenSize(),0,_e)}setDirection(_e){let et=this.getWritable();return et.__dir=_e,et}setFormat(_e){return this.getWritable().__format=_e!==""?lb[_e]:0,this}setIndent(_e){return this.getWritable().__indent=_e,this}splice(_e,et,tt){let rt=tt.length,nt=this.getChildrenSize(),ot=this.getWritable(),it=ot.__key;var st=[],lt=[];let ut=this.getChildAtIndex(_e+et),ct=null,dt=nt-et+rt;if(_e!==0)if(_e===nt)ct=this.getLastChild();else{var ft=this.getChildAtIndex(_e);ft!==null&&(ct=ft.getPreviousSibling())}if(0({root:xf(J$1())}))}}class Df extends tf{static getType(){return"paragraph"}static clone(_e){return new Df(_e.__key)}createDOM(_e){let et=document.createElement("p");return _e=oc(_e.theme,"paragraph"),_e!==void 0&&et.classList.add(..._e),et}updateDOM(){return!1}static importDOM(){return{p:()=>({conversion:Ef,priority:0})}}exportDOM(_e){if({element:_e}=super.exportDOM(_e),_e&&Cc(_e)){this.isEmpty()&&_e.append(document.createElement("br"));var et=this.getFormatType();_e.style.textAlign=et,(et=this.getDirection())&&(_e.dir=et),et=this.getIndent(),0{Object.keys(nt).forEach(ot=>{let it=et.get(ot);it===void 0&&(it=[],et.set(ot,it)),it.push(nt[ot])})};return j.forEach(nt=>{nt=nt.klass.importDOM!=null?nt.klass.importDOM.bind(nt.klass):null,nt==null||tt.has(nt)||(tt.add(nt),nt=nt(),nt!==null&&rt(nt))}),_e&&rt(_e),et}class Gf{constructor(_e,et,tt,rt,nt,ot,it){this._parentEditor=et,this._rootElement=null,this._editorState=_e,this._compositionKey=this._pendingEditorState=null,this._deferred=[],this._keyToDOMMap=new Map,this._updates=[],this._updating=!1,this._listeners={decorator:new Set,editable:new Set,mutation:new Map,root:new Set,textcontent:new Set,update:new Set},this._commands=new Map,this._config=rt,this._nodes=tt,this._decorators={},this._pendingDecorators=null,this._dirtyType=0,this._cloneNotNeeded=new Set,this._dirtyLeaves=new Set,this._dirtyElements=new Map,this._normalizedNodes=new Set,this._updateTags=new Set,this._observer=null,this._key=kc(),this._onError=nt,this._htmlConversions=ot,this._editable=it,this._headless=et!==null&&et._headless,this._blockCursorElement=this._window=null}isComposing(){return this._compositionKey!=null}registerUpdateListener(_e){let et=this._listeners.update;return et.add(_e),()=>{et.delete(_e)}}registerEditableListener(_e){let et=this._listeners.editable;return et.add(_e),()=>{et.delete(_e)}}registerDecoratorListener(_e){let et=this._listeners.decorator;return et.add(_e),()=>{et.delete(_e)}}registerTextContentListener(_e){let et=this._listeners.textcontent;return et.add(_e),()=>{et.delete(_e)}}registerRootListener(_e){let et=this._listeners.root;return _e(this._rootElement,null),et.add(_e),()=>{_e(null,this._rootElement),et.delete(_e)}}registerCommand(_e,et,tt){tt===void 0&&n$6(35);let rt=this._commands;rt.has(_e)||rt.set(_e,[new Set,new Set,new Set,new Set,new Set]);let nt=rt.get(_e);nt===void 0&&n$6(36,String(_e));let ot=nt[tt];return ot.add(et),()=>{ot.delete(et),nt.every(it=>it.size===0)&&rt.delete(_e)}}registerMutationListener(_e,et){this._nodes.get(_e.getType())===void 0&&n$6(37,_e.name);let tt=this._listeners.mutation;return tt.set(et,_e),()=>{tt.delete(et)}}registerNodeTransformToKlass(_e,et){var tt=_e.getType();return tt=this._nodes.get(tt),tt===void 0&&n$6(37,_e.name),tt.transforms.add(et),tt}registerNodeTransform(_e,et){var tt=this.registerNodeTransformToKlass(_e,et);let rt=[tt];return tt=tt.replaceWithKlass,tt!=null&&(tt=this.registerNodeTransformToKlass(tt,et),rt.push(tt)),gc(this,_e.getType()),()=>{rt.forEach(nt=>nt.transforms.delete(et))}}hasNode(_e){return this._nodes.has(_e.getType())}hasNodes(_e){return _e.every(this.hasNode.bind(this))}dispatchCommand(_e,et){return R(this,_e,et)}getDecorators(){return this._decorators}getRootElement(){return this._rootElement}getKey(){return this._key}setRootElement(_e){let et=this._rootElement;if(_e!==et){let ot=oc(this._config.theme,"root");var tt=this._pendingEditorState||this._editorState;if(this._rootElement=_e,mf(this,et,_e,tt),et!==null){if(!this._config.disableEvents){Fd!==0&&(Fd--,Fd===0&&et.ownerDocument.removeEventListener("selectionchange",Vd));var rt=et.__lexicalEditor;if(rt!=null){if(rt._parentEditor!==null){var nt=jc(rt);nt=nt[nt.length-1]._key,Ud.get(nt)===rt&&Ud.delete(nt)}else Ud.delete(rt._key);et.__lexicalEditor=null}for(rt=Td(et),nt=0;nt{let rt=u$7(),nt=J$1();rt!==null?rt.dirty=!0:nt.getChildrenSize()!==0&&(et.defaultSelection==="rootStart"?nt.selectStart():nt.selectEnd())},{onUpdate:()=>{tt.removeAttribute("autocapitalize"),_e&&_e()},tag:"focus"}),this._pendingEditorState===null&&tt.removeAttribute("autocapitalize"))}blur(){var _e=this._rootElement;_e!==null&&_e.blur(),_e=wb(this._window),_e!==null&&_e.removeAllRanges()}isEditable(){return this._editable}setEditable(_e){this._editable!==_e&&(this._editable=_e,nf("editable",this,!0,_e))}toJSON(){return{editorState:this._editorState.toJSON()}}}Lexical_prod.$addUpdateTag=function(j){G$3(),F$3()._updateTags.add(j)};Lexical_prod.$applyNodeReplacement=yc;Lexical_prod.$copyNode=xc;Lexical_prod.$createLineBreakNode=ge;Lexical_prod.$createNodeSelection=Ve;Lexical_prod.$createParagraphNode=be;Lexical_prod.$createPoint=Ke;Lexical_prod.$createRangeSelection=function(){let j=Ke("root",0,"element"),_e=Ke("root",0,"element");return new Pe(j,_e,0,"")};Lexical_prod.$createTabNode=ue;Lexical_prod.$createTextNode=K;Lexical_prod.$getAdjacentNode=rc;Lexical_prod.$getCharacterOffsets=Qe;Lexical_prod.$getEditor=function(){return F$3()};Lexical_prod.$getNearestNodeFromDOMNode=vb;Lexical_prod.$getNearestRootOrShadowRoot=vc;Lexical_prod.$getNodeByKey=I$1;Lexical_prod.$getPreviousSelection=mc;Lexical_prod.$getRoot=J$1;Lexical_prod.$getSelection=u$7;Lexical_prod.$getTextContent=function(){let j=u$7();return j===null?"":j.getTextContent()};Lexical_prod.$hasAncestor=uc;Lexical_prod.$hasUpdateTag=function(j){return F$3()._updateTags.has(j)};Lexical_prod.$insertNodes=function(j){let _e=u$7()||mc();_e===null&&(_e=J$1().selectEnd()),_e.insertNodes(j)};Lexical_prod.$isBlockElementNode=function(j){return E$3(j)&&!j.isInline()};Lexical_prod.$isDecoratorNode=y$7;Lexical_prod.$isElementNode=E$3;Lexical_prod.$isInlineElementOrDecoratorNode=function(j){return E$3(j)&&j.isInline()||y$7(j)&&j.isInline()};Lexical_prod.$isLeafNode=function(j){return B$5(j)||Ec(j)||y$7(j)};Lexical_prod.$isLineBreakNode=Ec;Lexical_prod.$isNodeSelection=Sd;Lexical_prod.$isParagraphNode=function(j){return j instanceof Df};Lexical_prod.$isRangeSelection=C$5;Lexical_prod.$isRootNode=L;Lexical_prod.$isRootOrShadowRoot=wc;Lexical_prod.$isTabNode=Ie;Lexical_prod.$isTextNode=B$5;Lexical_prod.$nodesOfType=function(j){var _e=$b();let et=_e._readOnly,tt=j.getType();_e=_e._nodeMap;let rt=[];for(let[,nt]of _e)nt instanceof j&&nt.__type===tt&&(et||nt.isAttached())&&rt.push(nt);return rt};Lexical_prod.$normalizeSelection__EXPERIMENTAL=Hb;Lexical_prod.$parseSerializedNode=function(j){return jf(j,F$3()._nodes)};Lexical_prod.$selectAll=function(){var j=J$1();j=j.select(0,j.getChildrenSize()),zb(Hb(j))};Lexical_prod.$setCompositionKey=H$2;Lexical_prod.$setSelection=zb;Lexical_prod.$splitNode=function(j,_e){let et=j.getChildAtIndex(_e);et==null&&(et=j),wc(j)&&n$6(102);let tt=ot=>{const it=ot.getParentOrThrow(),st=wc(it),lt=ot!==et||st?xc(ot):ot;if(st)return E$3(ot)&&E$3(lt)||n$6(133),ot.insertAfter(lt),[ot,lt,lt];const[ut,ct,dt]=tt(it);return ot=ot.getNextSiblings(),dt.append(lt,...ot),[ut,ct,lt]},[rt,nt]=tt(et);return[rt,nt]};Lexical_prod.BLUR_COMMAND=Ra;Lexical_prod.CAN_REDO_COMMAND={};Lexical_prod.CAN_UNDO_COMMAND={};Lexical_prod.CLEAR_EDITOR_COMMAND={};Lexical_prod.CLEAR_HISTORY_COMMAND={};Lexical_prod.CLICK_COMMAND=ca;Lexical_prod.COMMAND_PRIORITY_CRITICAL=4;Lexical_prod.COMMAND_PRIORITY_EDITOR=0;Lexical_prod.COMMAND_PRIORITY_HIGH=3;Lexical_prod.COMMAND_PRIORITY_LOW=1;Lexical_prod.COMMAND_PRIORITY_NORMAL=2;Lexical_prod.CONTROLLED_TEXT_INSERTION_COMMAND=ka$1;Lexical_prod.COPY_COMMAND=Na;Lexical_prod.CUT_COMMAND=Oa;Lexical_prod.DELETE_CHARACTER_COMMAND=da;Lexical_prod.DELETE_LINE_COMMAND=pa;Lexical_prod.DELETE_WORD_COMMAND=oa;Lexical_prod.DRAGEND_COMMAND=Ma;Lexical_prod.DRAGOVER_COMMAND=La;Lexical_prod.DRAGSTART_COMMAND=Ka;Lexical_prod.DROP_COMMAND=Ja;Lexical_prod.DecoratorNode=sf;Lexical_prod.ElementNode=tf;Lexical_prod.FOCUS_COMMAND=Qa;Lexical_prod.FORMAT_ELEMENT_COMMAND={};Lexical_prod.FORMAT_TEXT_COMMAND=qa;Lexical_prod.INDENT_CONTENT_COMMAND={};Lexical_prod.INSERT_LINE_BREAK_COMMAND=ea;Lexical_prod.INSERT_PARAGRAPH_COMMAND=fa;Lexical_prod.INSERT_TAB_COMMAND={};Lexical_prod.KEY_ARROW_DOWN_COMMAND=Aa;Lexical_prod.KEY_ARROW_LEFT_COMMAND=wa;Lexical_prod.KEY_ARROW_RIGHT_COMMAND=ua;Lexical_prod.KEY_ARROW_UP_COMMAND=za;Lexical_prod.KEY_BACKSPACE_COMMAND=Da;Lexical_prod.KEY_DELETE_COMMAND=Ha;Lexical_prod.KEY_DOWN_COMMAND=ta;Lexical_prod.KEY_ENTER_COMMAND=Ba;Lexical_prod.KEY_ESCAPE_COMMAND=Ga;Lexical_prod.KEY_MODIFIER_COMMAND=Sa;Lexical_prod.KEY_SPACE_COMMAND=Ca;Lexical_prod.KEY_TAB_COMMAND=Ia;Lexical_prod.LineBreakNode=de;Lexical_prod.MOVE_TO_END=va;Lexical_prod.MOVE_TO_START=ya;Lexical_prod.OUTDENT_CONTENT_COMMAND={};Lexical_prod.PASTE_COMMAND=la;Lexical_prod.ParagraphNode=Df;Lexical_prod.REDO_COMMAND=sa;Lexical_prod.REMOVE_TEXT_COMMAND=ma;Lexical_prod.RootNode=vf;Lexical_prod.SELECTION_CHANGE_COMMAND=ba;Lexical_prod.SELECTION_INSERT_CLIPBOARD_NODES_COMMAND={};Lexical_prod.SELECT_ALL_COMMAND=Pa;Lexical_prod.TabNode=He;Lexical_prod.TextNode=me;Lexical_prod.UNDO_COMMAND=ra;Lexical_prod.createCommand=function(){return{}};Lexical_prod.createEditor=function(j){var _e=j||{},et=T,tt=_e.theme||{};let rt=j===void 0?et:_e.parentEditor||null,nt=_e.disableEvents||!1,ot=wf(),it=_e.namespace||(rt!==null?rt._config.namespace:kc()),st=_e.editorState,lt=[vf,me,de,He,Df,..._e.nodes||[]],{onError:ut,html:ct}=_e;if(_e=_e.editable!==void 0?_e.editable:!0,j===void 0&&et!==null)j=et._nodes;else for(j=new Map,et=0;et(ot instanceof Function?rt[nt]=ot(et[nt]):ot===null?delete rt[nt]:rt[nt]=ot,rt),{...et});let tt=A$1(_e);j.setStyle(tt),v$5.set(tt,_e)}function C$4(j){for(;j!==null&&!k$4.$isRootOrShadowRoot(j);){let _e=j.getLatest(),et=j.getParent();_e.getChildrenSize()===0&&j.remove(!0),j=et}}function D$2(j,_e,et,tt,rt=null){if(_e.length!==0){var nt=_e[0],ot=new Map,it=[];nt=k$4.$isElementNode(nt)?nt:nt.getParentOrThrow(),nt.isInline()&&(nt=nt.getParentOrThrow());for(var st=!1;nt!==null;){var lt=nt.getPreviousSibling();if(lt!==null){nt=lt,st=!0;break}if(nt=nt.getParentOrThrow(),k$4.$isRootOrShadowRoot(nt))break}lt=new Set;for(var ut=0;ut{pt.append(gt),dt.add(gt.getKey()),k$4.$isElementNode(gt)&>.getChildrenKeys().forEach(vt=>dt.add(vt))}),C$4(ft)}}else if(lt.has(ct.getKey())){if(!k$4.$isElementNode(ct))throw Error("Expected node in emptyElements to be an ElementNode");ft=tt(),ft.setFormat(ct.getFormatType()),ft.setIndent(ct.getIndent()),it.push(ft),ct.remove(!0)}}if(rt!==null)for(_e=0;_elt?lt:ut,j=pt==="element"?st:ut>lt?ut:lt,dt!==j&&(dt===0&&j===st?(B$4(rt,_e),rt.select(dt,j)):(et=rt.splitText(dt,j),et=dt===0?et[0]:et[1],B$4(et,_e),et.select(0,j-dt))));else for(k$4.$isTextNode(rt)&&dtut?ut:lt,ot=lt>ut?lt:ut):nt?(tt=et?ut:lt,ot=void 0):rt&&(et=et?lt:ut,tt=0,ot=et),_e.__text=_e.__text.slice(tt,ot)}}return _e};LexicalSelection_prod.$wrapNodes=function(j,_e,et=null){var tt=j.getStartEndPoints(),rt=tt?tt[0]:null;tt=j.getNodes();let nt=tt.length;if(rt!==null&&(nt===0||nt===1&&rt.type==="element"&&rt.getNode().getChildrenSize()===0)){j=rt.type==="text"?rt.getNode().getParentOrThrow():rt.getNode(),tt=j.getChildren();let it=_e();it.setFormat(j.getFormatType()),it.setIndent(j.getIndent()),tt.forEach(st=>it.append(st)),et&&(it=et.append(it)),j.replace(it)}else{rt=null;var ot=[];for(let it=0;it{let it=nt.top-ot.top;return 3>=Math.abs(it)?nt.left-ot.left:it});let rt;for(let nt=0;ntot.top&&rt.left+rt.width>ot.left||it?(_e.splice(nt--,1),tt--):rt=ot}return _e};LexicalSelection_prod.getStyleObjectFromCSS=z$3;LexicalSelection_prod.trimTextContentFromAnchor=function(j,_e,et){let tt=_e.getNode();if(k$4.$isElementNode(tt)){var rt=tt.getDescendantByIndex(_e.offset);rt!==null&&(tt=rt)}for(;0et.remove()),_e}append(..._e){return this.splice(this.getChildrenSize(),0,_e)}setDirection(_e){let et=this.getWritable();return et.__dir=_e,et}setFormat(_e){return this.getWritable().__format=_e!==""?lb[_e]:0,this}setIndent(_e){return this.getWritable().__indent=_e,this}splice(_e,et,tt){let rt=tt.length,nt=this.getChildrenSize(),ot=this.getWritable(),it=ot.__key;var st=[],lt=[];let ut=this.getChildAtIndex(_e+et),ct=null,dt=nt-et+rt;if(_e!==0)if(_e===nt)ct=this.getLastChild();else{var ft=this.getChildAtIndex(_e);ft!==null&&(ct=ft.getPreviousSibling())}if(0({root:xf(J$1())}))}}class Df extends tf{static getType(){return"paragraph"}static clone(_e){return new Df(_e.__key)}createDOM(_e){let et=document.createElement("p");return _e=oc(_e.theme,"paragraph"),_e!==void 0&&et.classList.add(..._e),et}updateDOM(){return!1}static importDOM(){return{p:()=>({conversion:Ef,priority:0})}}exportDOM(_e){if({element:_e}=super.exportDOM(_e),_e&&Cc(_e)){this.isEmpty()&&_e.append(document.createElement("br"));var et=this.getFormatType();_e.style.textAlign=et,(et=this.getDirection())&&(_e.dir=et),et=this.getIndent(),0{Object.keys(nt).forEach(ot=>{let it=et.get(ot);it===void 0&&(it=[],et.set(ot,it)),it.push(nt[ot])})};return j.forEach(nt=>{nt=nt.klass.importDOM!=null?nt.klass.importDOM.bind(nt.klass):null,nt==null||tt.has(nt)||(tt.add(nt),nt=nt(),nt!==null&&rt(nt))}),_e&&rt(_e),et}class Gf{constructor(_e,et,tt,rt,nt,ot,it){this._parentEditor=et,this._rootElement=null,this._editorState=_e,this._compositionKey=this._pendingEditorState=null,this._deferred=[],this._keyToDOMMap=new Map,this._updates=[],this._updating=!1,this._listeners={decorator:new Set,editable:new Set,mutation:new Map,root:new Set,textcontent:new Set,update:new Set},this._commands=new Map,this._config=rt,this._nodes=tt,this._decorators={},this._pendingDecorators=null,this._dirtyType=0,this._cloneNotNeeded=new Set,this._dirtyLeaves=new Set,this._dirtyElements=new Map,this._normalizedNodes=new Set,this._updateTags=new Set,this._observer=null,this._key=kc(),this._onError=nt,this._htmlConversions=ot,this._editable=it,this._headless=et!==null&&et._headless,this._blockCursorElement=this._window=null}isComposing(){return this._compositionKey!=null}registerUpdateListener(_e){let et=this._listeners.update;return et.add(_e),()=>{et.delete(_e)}}registerEditableListener(_e){let et=this._listeners.editable;return et.add(_e),()=>{et.delete(_e)}}registerDecoratorListener(_e){let et=this._listeners.decorator;return et.add(_e),()=>{et.delete(_e)}}registerTextContentListener(_e){let et=this._listeners.textcontent;return et.add(_e),()=>{et.delete(_e)}}registerRootListener(_e){let et=this._listeners.root;return _e(this._rootElement,null),et.add(_e),()=>{_e(null,this._rootElement),et.delete(_e)}}registerCommand(_e,et,tt){tt===void 0&&n$6(35);let rt=this._commands;rt.has(_e)||rt.set(_e,[new Set,new Set,new Set,new Set,new Set]);let nt=rt.get(_e);nt===void 0&&n$6(36,String(_e));let ot=nt[tt];return ot.add(et),()=>{ot.delete(et),nt.every(it=>it.size===0)&&rt.delete(_e)}}registerMutationListener(_e,et){this._nodes.get(_e.getType())===void 0&&n$6(37,_e.name);let tt=this._listeners.mutation;return tt.set(et,_e),()=>{tt.delete(et)}}registerNodeTransformToKlass(_e,et){var tt=_e.getType();return tt=this._nodes.get(tt),tt===void 0&&n$6(37,_e.name),tt.transforms.add(et),tt}registerNodeTransform(_e,et){var tt=this.registerNodeTransformToKlass(_e,et);let rt=[tt];return tt=tt.replaceWithKlass,tt!=null&&(tt=this.registerNodeTransformToKlass(tt,et),rt.push(tt)),gc(this,_e.getType()),()=>{rt.forEach(nt=>nt.transforms.delete(et))}}hasNode(_e){return this._nodes.has(_e.getType())}hasNodes(_e){return _e.every(this.hasNode.bind(this))}dispatchCommand(_e,et){return R(this,_e,et)}getDecorators(){return this._decorators}getRootElement(){return this._rootElement}getKey(){return this._key}setRootElement(_e){let et=this._rootElement;if(_e!==et){let ot=oc(this._config.theme,"root");var tt=this._pendingEditorState||this._editorState;if(this._rootElement=_e,mf(this,et,_e,tt),et!==null){if(!this._config.disableEvents){Fd!==0&&(Fd--,Fd===0&&et.ownerDocument.removeEventListener("selectionchange",Vd));var rt=et.__lexicalEditor;if(rt!=null){if(rt._parentEditor!==null){var nt=jc(rt);nt=nt[nt.length-1]._key,Ud.get(nt)===rt&&Ud.delete(nt)}else Ud.delete(rt._key);et.__lexicalEditor=null}for(rt=Td(et),nt=0;nt{let rt=u$7(),nt=J$1();rt!==null?rt.dirty=!0:nt.getChildrenSize()!==0&&(et.defaultSelection==="rootStart"?nt.selectStart():nt.selectEnd())},{onUpdate:()=>{tt.removeAttribute("autocapitalize"),_e&&_e()},tag:"focus"}),this._pendingEditorState===null&&tt.removeAttribute("autocapitalize"))}blur(){var _e=this._rootElement;_e!==null&&_e.blur(),_e=wb(this._window),_e!==null&&_e.removeAllRanges()}isEditable(){return this._editable}setEditable(_e){this._editable!==_e&&(this._editable=_e,nf("editable",this,!0,_e))}toJSON(){return{editorState:this._editorState.toJSON()}}}Lexical_prod.$addUpdateTag=function(j){G$3(),F$3()._updateTags.add(j)};Lexical_prod.$applyNodeReplacement=yc;Lexical_prod.$copyNode=xc;Lexical_prod.$createLineBreakNode=ge;Lexical_prod.$createNodeSelection=Ve;Lexical_prod.$createParagraphNode=be;Lexical_prod.$createPoint=Ke;Lexical_prod.$createRangeSelection=function(){let j=Ke("root",0,"element"),_e=Ke("root",0,"element");return new Pe(j,_e,0,"")};Lexical_prod.$createTabNode=ue;Lexical_prod.$createTextNode=K;Lexical_prod.$getAdjacentNode=rc;Lexical_prod.$getCharacterOffsets=Qe;Lexical_prod.$getEditor=function(){return F$3()};Lexical_prod.$getNearestNodeFromDOMNode=vb;Lexical_prod.$getNearestRootOrShadowRoot=vc;Lexical_prod.$getNodeByKey=I$1;Lexical_prod.$getPreviousSelection=mc;Lexical_prod.$getRoot=J$1;Lexical_prod.$getSelection=u$7;Lexical_prod.$getTextContent=function(){let j=u$7();return j===null?"":j.getTextContent()};Lexical_prod.$hasAncestor=uc;Lexical_prod.$hasUpdateTag=function(j){return F$3()._updateTags.has(j)};Lexical_prod.$insertNodes=function(j){let _e=u$7()||mc();_e===null&&(_e=J$1().selectEnd()),_e.insertNodes(j)};Lexical_prod.$isBlockElementNode=function(j){return E$3(j)&&!j.isInline()};Lexical_prod.$isDecoratorNode=y$7;Lexical_prod.$isElementNode=E$3;Lexical_prod.$isInlineElementOrDecoratorNode=function(j){return E$3(j)&&j.isInline()||y$7(j)&&j.isInline()};Lexical_prod.$isLeafNode=function(j){return B$5(j)||Ec(j)||y$7(j)};Lexical_prod.$isLineBreakNode=Ec;Lexical_prod.$isNodeSelection=Sd;Lexical_prod.$isParagraphNode=function(j){return j instanceof Df};Lexical_prod.$isRangeSelection=C$5;Lexical_prod.$isRootNode=L;Lexical_prod.$isRootOrShadowRoot=wc;Lexical_prod.$isTabNode=Ie;Lexical_prod.$isTextNode=B$5;Lexical_prod.$nodesOfType=function(j){var _e=$b();let et=_e._readOnly,tt=j.getType();_e=_e._nodeMap;let rt=[];for(let[,nt]of _e)nt instanceof j&&nt.__type===tt&&(et||nt.isAttached())&&rt.push(nt);return rt};Lexical_prod.$normalizeSelection__EXPERIMENTAL=Hb;Lexical_prod.$parseSerializedNode=function(j){return jf(j,F$3()._nodes)};Lexical_prod.$selectAll=function(){var j=J$1();j=j.select(0,j.getChildrenSize()),zb(Hb(j))};Lexical_prod.$setCompositionKey=H$2;Lexical_prod.$setSelection=zb;Lexical_prod.$splitNode=function(j,_e){let et=j.getChildAtIndex(_e);et==null&&(et=j),wc(j)&&n$6(102);let tt=ot=>{const it=ot.getParentOrThrow(),st=wc(it),lt=ot!==et||st?xc(ot):ot;if(st)return E$3(ot)&&E$3(lt)||n$6(133),ot.insertAfter(lt),[ot,lt,lt];const[ut,ct,dt]=tt(it);return ot=ot.getNextSiblings(),dt.append(lt,...ot),[ut,ct,lt]},[rt,nt]=tt(et);return[rt,nt]};Lexical_prod.BLUR_COMMAND=Ra;Lexical_prod.CAN_REDO_COMMAND={};Lexical_prod.CAN_UNDO_COMMAND={};Lexical_prod.CLEAR_EDITOR_COMMAND={};Lexical_prod.CLEAR_HISTORY_COMMAND={};Lexical_prod.CLICK_COMMAND=ca;Lexical_prod.COMMAND_PRIORITY_CRITICAL=4;Lexical_prod.COMMAND_PRIORITY_EDITOR=0;Lexical_prod.COMMAND_PRIORITY_HIGH=3;Lexical_prod.COMMAND_PRIORITY_LOW=1;Lexical_prod.COMMAND_PRIORITY_NORMAL=2;Lexical_prod.CONTROLLED_TEXT_INSERTION_COMMAND=ka$1;Lexical_prod.COPY_COMMAND=Na;Lexical_prod.CUT_COMMAND=Oa;Lexical_prod.DELETE_CHARACTER_COMMAND=da;Lexical_prod.DELETE_LINE_COMMAND=pa;Lexical_prod.DELETE_WORD_COMMAND=oa;Lexical_prod.DRAGEND_COMMAND=Ma;Lexical_prod.DRAGOVER_COMMAND=La;Lexical_prod.DRAGSTART_COMMAND=Ka;Lexical_prod.DROP_COMMAND=Ja;Lexical_prod.DecoratorNode=sf;Lexical_prod.ElementNode=tf;Lexical_prod.FOCUS_COMMAND=Qa;Lexical_prod.FORMAT_ELEMENT_COMMAND={};Lexical_prod.FORMAT_TEXT_COMMAND=qa;Lexical_prod.INDENT_CONTENT_COMMAND={};Lexical_prod.INSERT_LINE_BREAK_COMMAND=ea;Lexical_prod.INSERT_PARAGRAPH_COMMAND=fa;Lexical_prod.INSERT_TAB_COMMAND={};Lexical_prod.KEY_ARROW_DOWN_COMMAND=Aa;Lexical_prod.KEY_ARROW_LEFT_COMMAND=wa;Lexical_prod.KEY_ARROW_RIGHT_COMMAND=ua;Lexical_prod.KEY_ARROW_UP_COMMAND=za;Lexical_prod.KEY_BACKSPACE_COMMAND=Da;Lexical_prod.KEY_DELETE_COMMAND=Ha;Lexical_prod.KEY_DOWN_COMMAND=ta;Lexical_prod.KEY_ENTER_COMMAND=Ba;Lexical_prod.KEY_ESCAPE_COMMAND=Ga;Lexical_prod.KEY_MODIFIER_COMMAND=Sa;Lexical_prod.KEY_SPACE_COMMAND=Ca;Lexical_prod.KEY_TAB_COMMAND=Ia;Lexical_prod.LineBreakNode=de;Lexical_prod.MOVE_TO_END=va;Lexical_prod.MOVE_TO_START=ya;Lexical_prod.OUTDENT_CONTENT_COMMAND={};Lexical_prod.PASTE_COMMAND=la;Lexical_prod.ParagraphNode=Df;Lexical_prod.REDO_COMMAND=sa;Lexical_prod.REMOVE_TEXT_COMMAND=ma;Lexical_prod.RootNode=vf;Lexical_prod.SELECTION_CHANGE_COMMAND=ba;Lexical_prod.SELECTION_INSERT_CLIPBOARD_NODES_COMMAND={};Lexical_prod.SELECT_ALL_COMMAND=Pa;Lexical_prod.TabNode=He;Lexical_prod.TextNode=me;Lexical_prod.UNDO_COMMAND=ra;Lexical_prod.createCommand=function(){return{}};Lexical_prod.createEditor=function(j){var _e=j||{},et=T,tt=_e.theme||{};let rt=j===void 0?et:_e.parentEditor||null,nt=_e.disableEvents||!1,ot=wf(),it=_e.namespace||(rt!==null?rt._config.namespace:kc()),st=_e.editorState,lt=[vf,me,de,He,Df,..._e.nodes||[]],{onError:ut,html:ct}=_e;if(_e=_e.editable!==void 0?_e.editable:!0,j===void 0&&et!==null)j=et._nodes;else for(j=new Map,et=0;et(ot instanceof Function?rt[nt]=ot(et[nt]):ot===null?delete rt[nt]:rt[nt]=ot,rt),{...et});let tt=A$1(_e);j.setStyle(tt),v$5.set(tt,_e)}function C$4(j){for(;j!==null&&!k$4.$isRootOrShadowRoot(j);){let _e=j.getLatest(),et=j.getParent();_e.getChildrenSize()===0&&j.remove(!0),j=et}}function D$2(j,_e,et,tt,rt=null){if(_e.length!==0){var nt=_e[0],ot=new Map,it=[];nt=k$4.$isElementNode(nt)?nt:nt.getParentOrThrow(),nt.isInline()&&(nt=nt.getParentOrThrow());for(var st=!1;nt!==null;){var lt=nt.getPreviousSibling();if(lt!==null){nt=lt,st=!0;break}if(nt=nt.getParentOrThrow(),k$4.$isRootOrShadowRoot(nt))break}lt=new Set;for(var ut=0;ut{pt.append(gt),dt.add(gt.getKey()),k$4.$isElementNode(gt)&>.getChildrenKeys().forEach(mt=>dt.add(mt))}),C$4(ft)}}else if(lt.has(ct.getKey())){if(!k$4.$isElementNode(ct))throw Error("Expected node in emptyElements to be an ElementNode");ft=tt(),ft.setFormat(ct.getFormatType()),ft.setIndent(ct.getIndent()),it.push(ft),ct.remove(!0)}}if(rt!==null)for(_e=0;_elt?lt:ut,j=pt==="element"?st:ut>lt?ut:lt,dt!==j&&(dt===0&&j===st?(B$4(rt,_e),rt.select(dt,j)):(et=rt.splitText(dt,j),et=dt===0?et[0]:et[1],B$4(et,_e),et.select(0,j-dt))));else for(k$4.$isTextNode(rt)&&dtut?ut:lt,ot=lt>ut?lt:ut):nt?(tt=et?ut:lt,ot=void 0):rt&&(et=et?lt:ut,tt=0,ot=et),_e.__text=_e.__text.slice(tt,ot)}}return _e};LexicalSelection_prod.$wrapNodes=function(j,_e,et=null){var tt=j.getStartEndPoints(),rt=tt?tt[0]:null;tt=j.getNodes();let nt=tt.length;if(rt!==null&&(nt===0||nt===1&&rt.type==="element"&&rt.getNode().getChildrenSize()===0)){j=rt.type==="text"?rt.getNode().getParentOrThrow():rt.getNode(),tt=j.getChildren();let it=_e();it.setFormat(j.getFormatType()),it.setIndent(j.getIndent()),tt.forEach(st=>it.append(st)),et&&(it=et.append(it)),j.replace(it)}else{rt=null;var ot=[];for(let it=0;it{let it=nt.top-ot.top;return 3>=Math.abs(it)?nt.left-ot.left:it});let rt;for(let nt=0;ntot.top&&rt.left+rt.width>ot.left||it?(_e.splice(nt--,1),tt--):rt=ot}return _e};LexicalSelection_prod.getStyleObjectFromCSS=z$3;LexicalSelection_prod.trimTextContentFromAnchor=function(j,_e,et){let tt=_e.getNode();if(k$4.$isElementNode(tt)){var rt=tt.getDescendantByIndex(_e.offset);rt!==null&&(tt=rt)}for(;0=rt)it=tt.getParent(),tt.remove(),it==null||it.getChildrenSize()!==0||k$4.$isRootNode(it)||it.remove(),et-=rt+ot,tt=nt;else{let st=tt.getKey();ot=j.getEditorState().read(()=>{const ut=k$4.$getNodeByKey(st);return k$4.$isTextNode(ut)&&ut.isSimpleText()?ut.getTextContent():null}),nt=rt-et;let lt=it.slice(0,nt);ot!==null&&ot!==it?(et=k$4.$getPreviousSelection(),rt=tt,tt.isSimpleText()?tt.setTextContent(ot):(rt=k$4.$createTextNode(ot),tt.replace(rt)),k$4.$isRangeSelection(et)&&et.isCollapsed()&&(et=et.anchor.offset,rt.select(et,et))):tt.isSimpleText()?(ot=_e.key===st,it=_e.offset,it{j.forEach(_e=>_e())}}let E$1={attributes:!0,characterData:!0,childList:!0,subtree:!0};function F$1(j,_e,et){function tt(){if(ot===null)throw Error("Unexpected null rootDOMNode");if(it===null)throw Error("Unexpected null parentDOMNode");let{left:dt,top:ft}=ot.getBoundingClientRect();var pt=it;let gt=h$5.createRectsFromDOMRange(j,_e);ut.isConnected||pt.append(ut),pt=!1;for(let _t=0;_tgt.length;)lt.pop();pt&&et(lt)}function rt(){ot=it=null,st!==null&&st.disconnect(),st=null,ut.remove();for(let dt of lt)dt.remove();lt=[]}function nt(){let dt=j.getRootElement();if(dt===null)return rt();let ft=dt.parentElement;if(!(ft instanceof HTMLElement))return rt();rt(),ot=dt,it=ft,st=new MutationObserver(pt=>{let gt=j.getRootElement(),vt=gt&>.parentElement;if(gt!==ot||vt!==it)return nt();for(let bt of pt)if(!ut.contains(bt.target))return tt()}),st.observe(ft,E$1),tt()}let ot=null,it=null,st=null,lt=[],ut=document.createElement("div"),ct=j.registerRootListener(nt);return()=>{ct(),rt()}}function G$1(j,_e){for(let et of _e)if(j.type.startsWith(et))return!0;return!1}let H$1=(j,_e)=>{for(;j!==B$3.$getRoot()&&j!=null;){if(_e(j))return j;j=j.getParent()}return null};LexicalUtils_prod.$splitNode=B$3.$splitNode;LexicalUtils_prod.isHTMLAnchorElement=B$3.isHTMLAnchorElement;LexicalUtils_prod.isHTMLElement=B$3.isHTMLElement;LexicalUtils_prod.$dfs=function(j,_e){let et=[];j=(j||B$3.$getRoot()).getLatest(),_e=_e||(B$3.$isElementNode(j)?j.getLastDescendant():j);for(var tt=j,rt=0;(tt=tt.getParent())!==null;)rt++;for(tt=rt;j!==null&&!j.is(_e);)if(et.push({depth:tt,node:j}),B$3.$isElementNode(j)&&0B$3.$isElementNode(et)&&!et.isInline());return B$3.$isElementNode(_e)||C$3(4,j.__key),_e};LexicalUtils_prod.$getNearestNodeOfType=function(j,_e){for(;j!=null;){if(j instanceof _e)return j;j=j.getParent()}return null};LexicalUtils_prod.$insertFirst=function(j,_e){let et=j.getFirstChild();et!==null?et.insertBefore(_e):j.append(_e)};LexicalUtils_prod.$insertNodeToNearestRoot=function(j){var _e=B$3.$getSelection()||B$3.$getPreviousSelection();if(B$3.$isRangeSelection(_e)){var{focus:et}=_e;if(_e=et.getNode(),et=et.offset,B$3.$isRootOrShadowRoot(_e))et=_e.getChildAtIndex(et),et==null?_e.append(j):et.insertBefore(j),j.selectNext();else{let tt,rt;B$3.$isTextNode(_e)?(tt=_e.getParentOrThrow(),rt=_e.getIndexWithinParent(),0{typeof et=="string"&&(et=et.split(" ").filter(tt=>tt!==""),j.classList.add(...et))})};LexicalUtils_prod.isMimeType=G$1;LexicalUtils_prod.markSelection=function(j,_e){function et(st){st.read(()=>{var lt=B$3.$getSelection();if(B$3.$isRangeSelection(lt)){var{anchor:ut,focus:ct}=lt;lt=ut.getNode();var dt=lt.getKey(),ft=ut.offset,pt=ct.getNode(),gt=pt.getKey(),vt=ct.offset,bt=j.getElementByKey(dt),_t=j.getElementByKey(gt);if(dt=tt===null||bt===null||ft!==rt||dt!==tt.getKey()||lt!==tt&&(!(tt instanceof B$3.TextNode)||lt.updateDOM(tt,bt,j._config)),gt=nt===null||_t===null||vt!==ot||gt!==nt.getKey()||pt!==nt&&(!(nt instanceof B$3.TextNode)||pt.updateDOM(nt,_t,j._config)),dt||gt){bt=j.getElementByKey(ut.getNode().getKey());var xt=j.getElementByKey(ct.getNode().getKey());if(bt!==null&&xt!==null&&bt.tagName==="SPAN"&&xt.tagName==="SPAN"){if(gt=document.createRange(),ct.isBefore(ut)?(dt=xt,_t=ct.offset,xt=bt,bt=ut.offset):(dt=bt,_t=ut.offset,bt=ct.offset),dt=dt.firstChild,dt===null||(xt=xt.firstChild,xt===null))throw Error("Expected text node to be first child of span");gt.setStart(dt,_t),gt.setEnd(xt,bt),it(),it=F$1(j,gt,yt=>{for(let Et of yt){let St=Et.style;St.background!=="Highlight"&&(St.background="Highlight"),St.color!=="HighlightText"&&(St.color="HighlightText"),St.zIndex!=="-1"&&(St.zIndex="-1"),St.pointerEvents!=="none"&&(St.pointerEvents="none"),St.marginTop!=="-1.5px"&&(St.marginTop="-1.5px"),St.paddingTop!=="4px"&&(St.paddingTop="4px"),St.paddingBottom!=="0px"&&(St.paddingBottom="0px")}_e!==void 0&&_e(yt)})}}tt=lt,rt=ft,nt=pt,ot=vt}else ot=nt=rt=tt=null,it(),it=()=>{}})}let tt=null,rt=null,nt=null,ot=null,it=()=>{};return et(j.getEditorState()),D$1(j.registerUpdateListener(({editorState:st})=>et(st)),it,()=>{it()})};LexicalUtils_prod.mediaFileReader=function(j,_e){let et=j[Symbol.iterator]();return new Promise((tt,rt)=>{let nt=[],ot=()=>{const{done:it,value:st}=et.next();if(it)return tt(nt);const lt=new FileReader;lt.addEventListener("error",rt),lt.addEventListener("load",()=>{const ut=lt.result;typeof ut=="string"&&nt.push({file:st,result:ut}),ot()}),G$1(st,_e)?lt.readAsDataURL(st):ot()};ot()})};LexicalUtils_prod.mergeRegister=D$1;LexicalUtils_prod.objectKlassEquals=function(j,_e){return j!==null?Object.getPrototypeOf(j).constructor.name===_e.name:!1};LexicalUtils_prod.positionNodeOnRange=F$1;LexicalUtils_prod.registerNestedElementResolver=function(j,_e,et,tt){return j.registerNodeTransform(_e,rt=>{e:{for(var nt=rt.getChildren(),ot=0;ot{typeof et=="string"&&j.classList.remove(...et.split(" "))})};const LexicalUtils=LexicalUtils_prod;var LexicalUtils_1=LexicalUtils,l$3=LexicalUtils_1,m$6=Lexical_1;let n$5=new Set(["http:","https:","mailto:","sms:","tel:"]),p$5=class im extends m$6.ElementNode{static getType(){return"link"}static clone(_e){return new im(_e.__url,{rel:_e.__rel,target:_e.__target,title:_e.__title},_e.__key)}constructor(_e,et={},tt){super(tt);let{target:rt=null,rel:nt=null,title:ot=null}=et;this.__url=_e,this.__target=rt,this.__rel=nt,this.__title=ot}createDOM(_e){let et=document.createElement("a");return et.href=this.sanitizeUrl(this.__url),this.__target!==null&&(et.target=this.__target),this.__rel!==null&&(et.rel=this.__rel),this.__title!==null&&(et.title=this.__title),l$3.addClassNamesToElement(et,_e.theme.link),et}updateDOM(_e,et){let tt=this.__url,rt=this.__target,nt=this.__rel,ot=this.__title;return tt!==_e.__url&&(et.href=tt),rt!==_e.__target&&(rt?et.target=rt:et.removeAttribute("target")),nt!==_e.__rel&&(nt?et.rel=nt:et.removeAttribute("rel")),ot!==_e.__title&&(ot?et.title=ot:et.removeAttribute("title")),!1}static importDOM(){return{a:()=>({conversion:q$4,priority:1})}}static importJSON(_e){let et=r$5(_e.url,{rel:_e.rel,target:_e.target,title:_e.title});return et.setFormat(_e.format),et.setIndent(_e.indent),et.setDirection(_e.direction),et}sanitizeUrl(_e){try{let et=new URL(_e);if(!n$5.has(et.protocol))return"about:blank"}catch{}return _e}exportJSON(){return{...super.exportJSON(),rel:this.getRel(),target:this.getTarget(),title:this.getTitle(),type:"link",url:this.getURL(),version:1}}getURL(){return this.getLatest().__url}setURL(_e){this.getWritable().__url=_e}getTarget(){return this.getLatest().__target}setTarget(_e){this.getWritable().__target=_e}getRel(){return this.getLatest().__rel}setRel(_e){this.getWritable().__rel=_e}getTitle(){return this.getLatest().__title}setTitle(_e){this.getWritable().__title=_e}insertNewAfter(_e,et=!0){return _e=r$5(this.__url,{rel:this.__rel,target:this.__target,title:this.__title}),this.insertAfter(_e,et),_e}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}canBeEmpty(){return!1}isInline(){return!0}extractWithChild(_e,et){if(!m$6.$isRangeSelection(et))return!1;_e=et.anchor.getNode();let tt=et.focus.getNode();return this.isParentOf(_e)&&this.isParentOf(tt)&&0{if(nt=nt.getParent(),u$6(nt)){let ot=nt.getChildren();for(let it=0;it{var st=it.getParent();if(st!==ot&&st!==null&&(!m$6.$isElementNode(it)||it.isInline()))if(u$6(st))ot=st,st.setURL(j),et!==void 0&&st.setTarget(et),rt!==null&&ot.setRel(rt),tt!==void 0&&ot.setTitle(tt);else if(st.is(nt)||(nt=st,ot=r$5(j,{rel:rt,target:et,title:tt}),u$6(st)?it.getPreviousSibling()===null?st.insertBefore(ot):st.insertAfter(ot):it.insertBefore(ot)),u$6(it)){if(!it.is(ot)){if(ot!==null){st=it.getChildren();for(let lt=0;lt{var et=f$3.$getRoot();if(et.isEmpty()){let tt=f$3.$createParagraphNode();et.append(tt),et=m$5?document.activeElement:null,(f$3.$getSelection()!==null||et!==null&&et===j.getRootElement())&&tt.select()}},p$4);else if(_e!==null)switch(typeof _e){case"string":let et=j.parseEditorState(_e);j.setEditorState(et,p$4);break;case"object":j.setEditorState(_e,p$4);break;case"function":j.update(()=>{f$3.$getRoot().isEmpty()&&_e(j)},p$4)}}}LexicalComposer_prod.LexicalComposer=function({initialConfig:j,children:_e}){let et=g$6.useMemo(()=>{const{theme:tt,namespace:rt,editor__DEPRECATED:nt,nodes:ot,onError:it,editorState:st,html:lt}=j,ut=e.createLexicalComposerContext(null,tt);let ct=nt||null;if(ct===null){const dt=f$3.createEditor({editable:j.editable,html:lt,namespace:rt,nodes:ot,onError:ft=>it(ft,dt),theme:tt});q$3(dt,st),ct=dt}return[ct,ut]},[]);return n$4(()=>{let tt=j.editable,[rt]=et;rt.setEditable(tt!==void 0?tt:!0)},[]),g$6.createElement(e.LexicalComposerContext.Provider,{value:et},_e)};const LexicalComposer=LexicalComposer_prod;var LexicalComposer_1=LexicalComposer,LexicalContentEditable_prod={},c$5=LexicalComposerContext_1,h$4=reactExports;function n$3(){return n$3=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{xt.setRootElement($t)},[xt]);return p$3(()=>(Et(xt.isEditable()),xt.registerEditableListener($t=>{Et($t)})),[xt]),h$4.createElement("div",n$3({},_t,{"aria-activedescendant":yt?j:void 0,"aria-autocomplete":yt?_e:"none","aria-controls":yt?et:void 0,"aria-describedby":tt,"aria-expanded":yt&&ft==="combobox"?!!rt:void 0,"aria-label":nt,"aria-labelledby":ot,"aria-multiline":it,"aria-owns":yt?st:void 0,"aria-readonly":yt?void 0:!0,"aria-required":lt,autoCapitalize:ut,className:ct,contentEditable:yt,"data-testid":bt,id:dt,ref:St,role:ft,spellCheck:pt,style:gt,tabIndex:vt}))};const LexicalContentEditable=LexicalContentEditable_prod;var LexicalContentEditable_1=LexicalContentEditable,h$3=reactExports;function m$4(j,_e){return m$4=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(et,tt){return et.__proto__=tt,et},m$4(j,_e)}function n$2(j,_e){j.prototype=Object.create(_e.prototype),j.prototype.constructor=j,m$4(j,_e)}function r$4(j,_e){return j===void 0&&(j=[]),_e===void 0&&(_e=[]),j.length!==_e.length||j.some(function(et,tt){return!Object.is(et,_e[tt])})}var t$4={error:null},u$5=function(j){function _e(){for(var tt,rt=arguments.length,nt=Array(rt),ot=0;ot{let ut=Date.now();if(lt.has("historic"))return tt=0,et=ut,2;let ct=y$4(rt,nt,it,st,j.isComposing()),dt=(()=>{var ft=ot===null||ot.editor===j,pt=lt.has("history-push");if(!pt&&ft&<.has("history-merge"))return 0;if(rt===null)return 1;var gt=nt._selection;if(!(0{const ct=_e.current,dt=_e.redoStack,ft=_e.undoStack,pt=ct===null?null:ct.editorState;if(ct===null||ot!==pt){if(it=tt(it,ot,ct,st,lt,ut),it===1)dt.length!==0&&(_e.redoStack=[],j.dispatchCommand(x$4.CAN_REDO_COMMAND,!1)),ct!==null&&(ft.push({...ct}),j.dispatchCommand(x$4.CAN_UNDO_COMMAND,!0));else if(it===2)return;_e.current={editor:j,editorState:ot}}};let rt=c$4.mergeRegister(j.registerCommand(x$4.UNDO_COMMAND,()=>{let ot=_e.redoStack,it=_e.undoStack;if(it.length!==0){let st=_e.current,lt=it.pop();st!==null&&(ot.push(st),j.dispatchCommand(x$4.CAN_REDO_COMMAND,!0)),it.length===0&&j.dispatchCommand(x$4.CAN_UNDO_COMMAND,!1),_e.current=lt||null,lt&<.editor.setEditorState(lt.editorState,{tag:"historic"})}return!0},x$4.COMMAND_PRIORITY_EDITOR),j.registerCommand(x$4.REDO_COMMAND,()=>{let ot=_e.redoStack;var it=_e.undoStack;if(ot.length!==0){let st=_e.current;st!==null&&(it.push(st),j.dispatchCommand(x$4.CAN_UNDO_COMMAND,!0)),it=ot.pop(),ot.length===0&&j.dispatchCommand(x$4.CAN_REDO_COMMAND,!1),_e.current=it||null,it&&it.editor.setEditorState(it.editorState,{tag:"historic"})}return!0},x$4.COMMAND_PRIORITY_EDITOR),j.registerCommand(x$4.CLEAR_EDITOR_COMMAND,()=>(_e.undoStack=[],_e.redoStack=[],_e.current=null,!1),x$4.COMMAND_PRIORITY_EDITOR),j.registerCommand(x$4.CLEAR_HISTORY_COMMAND,()=>(_e.undoStack=[],_e.redoStack=[],_e.current=null,j.dispatchCommand(x$4.CAN_REDO_COMMAND,!1),j.dispatchCommand(x$4.CAN_UNDO_COMMAND,!1),!0),x$4.COMMAND_PRIORITY_EDITOR),j.registerUpdateListener(et)),nt=j.registerUpdateListener(et);return()=>{rt(),nt()}};const LexicalHistory=LexicalHistory_prod;var LexicalHistory_1=LexicalHistory,c$3=LexicalComposerContext_1,history=LexicalHistory_1,f$2=reactExports;function g$5(j,_e,et=1e3){let tt=f$2.useMemo(()=>_e||history.createEmptyHistoryState(),[_e]);f$2.useEffect(()=>history.registerHistory(j,tt,et),[et,j,tt])}LexicalHistoryPlugin_prod.createEmptyHistoryState=history.createEmptyHistoryState;LexicalHistoryPlugin_prod.HistoryPlugin=function({externalHistoryState:j}){let[_e]=c$3.useLexicalComposerContext();return g$5(_e,j),null};const LexicalHistoryPlugin=LexicalHistoryPlugin_prod;var LexicalHistoryPlugin_1=LexicalHistoryPlugin,LexicalOnChangePlugin_prod={},c$2=LexicalComposerContext_1,g$4=reactExports,h$2=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?g$4.useLayoutEffect:g$4.useEffect;LexicalOnChangePlugin_prod.OnChangePlugin=function({ignoreHistoryMergeTagChange:j=!0,ignoreSelectionChange:_e=!1,onChange:et}){let[tt]=c$2.useLexicalComposerContext();return h$2(()=>{if(et)return tt.registerUpdateListener(({editorState:rt,dirtyElements:nt,dirtyLeaves:ot,prevEditorState:it,tags:st})=>{_e&&nt.size===0&&ot.size===0||j&&st.has("history-merge")||it.isEmpty()||et(rt,tt,st)})},[tt,j,_e,et]),null};const LexicalOnChangePlugin=LexicalOnChangePlugin_prod;var LexicalOnChangePlugin_1=LexicalOnChangePlugin,LexicalRichTextPlugin_prod={},b$2=LexicalComposerContext_1,k$3=reactExports,l$2=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?k$3.useLayoutEffect:k$3.useEffect;function m$3(j){let[_e]=b$2.useLexicalComposerContext(),et=k$3.useMemo(()=>j(_e),[_e,j]),tt=k$3.useRef(et.initialValueFn()),[rt,nt]=k$3.useState(tt.current);return l$2(()=>{let{initialValueFn:ot,subscribe:it}=et,st=ot();return tt.current!==st&&(tt.current=st,nt(st)),it(lt=>{tt.current=lt,nt(lt)})},[et,j]),rt}function r$3(j){return{initialValueFn:()=>j.isEditable(),subscribe:_e=>j.registerEditableListener(_e)}}var useLexicalEditable_prod=function(){return m$3(r$3)};const useLexicalEditable=useLexicalEditable_prod;var useLexicalEditable_1=useLexicalEditable,LexicalText_prod={},g$3=Lexical_1;function r$2(j,_e=!0){return j?!1:(j=t$3(),_e&&(j=j.trim()),j==="")}function t$3(){return g$3.$getRoot().getTextContent()}function u$4(j){if(!r$2(j,!1))return!1;j=g$3.$getRoot().getChildren();let _e=j.length;if(1<_e)return!1;for(let tt=0;tt<_e;tt++){var et=j[tt];if(g$3.$isDecoratorNode(et))return!1;if(g$3.$isElementNode(et)){if(!g$3.$isParagraphNode(et)||et.__indent!==0)return!1;et=et.getChildren();let rt=et.length;for(let nt=0;ntu$4(j)};LexicalText_prod.$findTextIntersectionFromCharacters=function(j,_e){var et=j.getFirstChild();j=0;e:for(;et!==null;){if(g$3.$isElementNode(et)){var tt=et.getFirstChild();if(tt!==null){et=tt;continue}}else if(g$3.$isTextNode(et)){if(tt=et.getTextContentSize(),j+tt>_e)return{node:et,offset:_e-j};j+=tt}if(tt=et.getNextSibling(),tt!==null)et=tt;else{for(et=et.getParent();et!==null;){if(tt=et.getNextSibling(),tt!==null){et=tt;continue e}et=et.getParent()}break}}return null};LexicalText_prod.$isRootTextContentEmpty=r$2;LexicalText_prod.$isRootTextContentEmptyCurry=function(j,_e){return()=>r$2(j,_e)};LexicalText_prod.$rootTextContent=t$3;LexicalText_prod.registerLexicalTextEntity=function(j,_e,et,tt){let rt=ot=>{const it=g$3.$createTextNode(ot.getTextContent());it.setFormat(ot.getFormat()),ot.replace(it)},nt=j.registerNodeTransform(g$3.TextNode,ot=>{if(ot.isSimpleText()){var it=ot.getPreviousSibling(),st=ot.getTextContent(),lt=ot;if(g$3.$isTextNode(it)){var ut=it.getTextContent(),ct=_e(ut+st);if(it instanceof et){if(ct===null||it.getLatest().__mode!==0){rt(it);return}if(ct=ct.end-ut.length,0{var it=ot.getTextContent();const st=_e(it);st===null||st.start!==0?rt(ot):it.length>st.end?ot.splitText(st.end):(it=ot.getPreviousSibling(),g$3.$isTextNode(it)&&it.isTextEntity()&&(rt(it),rt(ot)),it=ot.getNextSibling(),g$3.$isTextNode(it)&&it.isTextEntity()&&(rt(it),ot instanceof et&&rt(ot)))}),[nt,j]};const LexicalText=LexicalText_prod;var LexicalText_1=LexicalText,LexicalDragon_prod={},g$2=Lexical_1;LexicalDragon_prod.registerDragonSupport=function(j){let _e=window.location.origin,et=tt=>{if(tt.origin===_e){var rt=j.getRootElement();if(document.activeElement===rt&&(rt=tt.data,typeof rt=="string")){try{var nt=JSON.parse(rt)}catch{return}if(nt&&nt.protocol==="nuanria_messaging"&&nt.type==="request"&&(nt=nt.payload)&&nt.functionId==="makeChanges"&&(nt=nt.args)){const[ot,it,st,lt,ut]=nt;j.update(()=>{const ct=g$2.$getSelection();if(g$2.$isRangeSelection(ct)){var dt=ct.anchor;let ft=dt.getNode(),pt=0,gt=0;g$2.$isTextNode(ft)&&0<=ot&&0<=it&&(pt=ot,gt=ot+it,ct.setTextNodeRange(ft,pt,ft,gt)),(pt!==gt||st!=="")&&(ct.insertRawText(st),ft=dt.getNode()),g$2.$isTextNode(ft)&&(pt=lt,gt=lt+ut,dt=ft.getTextContentSize(),pt=pt>dt?dt:pt,gt=gt>dt?dt:gt,ct.setTextNodeRange(ft,pt,ft,gt)),tt.stopImmediatePropagation()}})}}}};return window.addEventListener("message",et,!0),()=>{window.removeEventListener("message",et,!0)}};const LexicalDragon=LexicalDragon_prod;var LexicalDragon_1=LexicalDragon,LexicalRichText_prod={},LexicalClipboard_prod={},LexicalHtml_prod={},m$2=LexicalSelection_1,p$2=LexicalUtils_1,q$2=Lexical_1;function u$3(j,_e,et,tt=null){let rt=tt!==null?_e.isSelected(tt):!0,nt=q$2.$isElementNode(_e)&&_e.excludeFromCopy("html");var ot=_e;tt!==null&&(ot=m$2.$cloneWithProperties(_e),ot=q$2.$isTextNode(ot)&&tt!==null?m$2.$sliceSelectedTextNodeContent(tt,ot):ot);let it=q$2.$isElementNode(ot)?ot.getChildren():[];var st=j._nodes.get(ot.getType());st=st&&st.exportDOM!==void 0?st.exportDOM(j,ot):ot.exportDOM(j);let{element:lt,after:ut}=st;if(!lt)return!1;st=document.createDocumentFragment();for(let ct=0;ct"u"||typeof window>"u"&&typeof commonjsGlobal.window>"u")throw Error("To use $generateHtmlFromNodes in headless mode please initialize a headless browser implementation such as JSDom before calling this function.");let et=document.createElement("div"),tt=q$2.$getRoot().getChildren();for(let rt=0;rt=rt)it=tt.getParent(),tt.remove(),it==null||it.getChildrenSize()!==0||k$4.$isRootNode(it)||it.remove(),et-=rt+ot,tt=nt;else{let st=tt.getKey();ot=j.getEditorState().read(()=>{const ut=k$4.$getNodeByKey(st);return k$4.$isTextNode(ut)&&ut.isSimpleText()?ut.getTextContent():null}),nt=rt-et;let lt=it.slice(0,nt);ot!==null&&ot!==it?(et=k$4.$getPreviousSelection(),rt=tt,tt.isSimpleText()?tt.setTextContent(ot):(rt=k$4.$createTextNode(ot),tt.replace(rt)),k$4.$isRangeSelection(et)&&et.isCollapsed()&&(et=et.anchor.offset,rt.select(et,et))):tt.isSimpleText()?(ot=_e.key===st,it=_e.offset,it{j.forEach(_e=>_e())}}let E$1={attributes:!0,characterData:!0,childList:!0,subtree:!0};function F$1(j,_e,et){function tt(){if(ot===null)throw Error("Unexpected null rootDOMNode");if(it===null)throw Error("Unexpected null parentDOMNode");let{left:dt,top:ft}=ot.getBoundingClientRect();var pt=it;let gt=h$5.createRectsFromDOMRange(j,_e);ut.isConnected||pt.append(ut),pt=!1;for(let _t=0;_tgt.length;)lt.pop();pt&&et(lt)}function rt(){ot=it=null,st!==null&&st.disconnect(),st=null,ut.remove();for(let dt of lt)dt.remove();lt=[]}function nt(){let dt=j.getRootElement();if(dt===null)return rt();let ft=dt.parentElement;if(!(ft instanceof HTMLElement))return rt();rt(),ot=dt,it=ft,st=new MutationObserver(pt=>{let gt=j.getRootElement(),mt=gt&>.parentElement;if(gt!==ot||mt!==it)return nt();for(let bt of pt)if(!ut.contains(bt.target))return tt()}),st.observe(ft,E$1),tt()}let ot=null,it=null,st=null,lt=[],ut=document.createElement("div"),ct=j.registerRootListener(nt);return()=>{ct(),rt()}}function G$1(j,_e){for(let et of _e)if(j.type.startsWith(et))return!0;return!1}let H$1=(j,_e)=>{for(;j!==B$3.$getRoot()&&j!=null;){if(_e(j))return j;j=j.getParent()}return null};LexicalUtils_prod.$splitNode=B$3.$splitNode;LexicalUtils_prod.isHTMLAnchorElement=B$3.isHTMLAnchorElement;LexicalUtils_prod.isHTMLElement=B$3.isHTMLElement;LexicalUtils_prod.$dfs=function(j,_e){let et=[];j=(j||B$3.$getRoot()).getLatest(),_e=_e||(B$3.$isElementNode(j)?j.getLastDescendant():j);for(var tt=j,rt=0;(tt=tt.getParent())!==null;)rt++;for(tt=rt;j!==null&&!j.is(_e);)if(et.push({depth:tt,node:j}),B$3.$isElementNode(j)&&0B$3.$isElementNode(et)&&!et.isInline());return B$3.$isElementNode(_e)||C$3(4,j.__key),_e};LexicalUtils_prod.$getNearestNodeOfType=function(j,_e){for(;j!=null;){if(j instanceof _e)return j;j=j.getParent()}return null};LexicalUtils_prod.$insertFirst=function(j,_e){let et=j.getFirstChild();et!==null?et.insertBefore(_e):j.append(_e)};LexicalUtils_prod.$insertNodeToNearestRoot=function(j){var _e=B$3.$getSelection()||B$3.$getPreviousSelection();if(B$3.$isRangeSelection(_e)){var{focus:et}=_e;if(_e=et.getNode(),et=et.offset,B$3.$isRootOrShadowRoot(_e))et=_e.getChildAtIndex(et),et==null?_e.append(j):et.insertBefore(j),j.selectNext();else{let tt,rt;B$3.$isTextNode(_e)?(tt=_e.getParentOrThrow(),rt=_e.getIndexWithinParent(),0{typeof et=="string"&&(et=et.split(" ").filter(tt=>tt!==""),j.classList.add(...et))})};LexicalUtils_prod.isMimeType=G$1;LexicalUtils_prod.markSelection=function(j,_e){function et(st){st.read(()=>{var lt=B$3.$getSelection();if(B$3.$isRangeSelection(lt)){var{anchor:ut,focus:ct}=lt;lt=ut.getNode();var dt=lt.getKey(),ft=ut.offset,pt=ct.getNode(),gt=pt.getKey(),mt=ct.offset,bt=j.getElementByKey(dt),_t=j.getElementByKey(gt);if(dt=tt===null||bt===null||ft!==rt||dt!==tt.getKey()||lt!==tt&&(!(tt instanceof B$3.TextNode)||lt.updateDOM(tt,bt,j._config)),gt=nt===null||_t===null||mt!==ot||gt!==nt.getKey()||pt!==nt&&(!(nt instanceof B$3.TextNode)||pt.updateDOM(nt,_t,j._config)),dt||gt){bt=j.getElementByKey(ut.getNode().getKey());var xt=j.getElementByKey(ct.getNode().getKey());if(bt!==null&&xt!==null&&bt.tagName==="SPAN"&&xt.tagName==="SPAN"){if(gt=document.createRange(),ct.isBefore(ut)?(dt=xt,_t=ct.offset,xt=bt,bt=ut.offset):(dt=bt,_t=ut.offset,bt=ct.offset),dt=dt.firstChild,dt===null||(xt=xt.firstChild,xt===null))throw Error("Expected text node to be first child of span");gt.setStart(dt,_t),gt.setEnd(xt,bt),it(),it=F$1(j,gt,yt=>{for(let Et of yt){let St=Et.style;St.background!=="Highlight"&&(St.background="Highlight"),St.color!=="HighlightText"&&(St.color="HighlightText"),St.zIndex!=="-1"&&(St.zIndex="-1"),St.pointerEvents!=="none"&&(St.pointerEvents="none"),St.marginTop!=="-1.5px"&&(St.marginTop="-1.5px"),St.paddingTop!=="4px"&&(St.paddingTop="4px"),St.paddingBottom!=="0px"&&(St.paddingBottom="0px")}_e!==void 0&&_e(yt)})}}tt=lt,rt=ft,nt=pt,ot=mt}else ot=nt=rt=tt=null,it(),it=()=>{}})}let tt=null,rt=null,nt=null,ot=null,it=()=>{};return et(j.getEditorState()),D$1(j.registerUpdateListener(({editorState:st})=>et(st)),it,()=>{it()})};LexicalUtils_prod.mediaFileReader=function(j,_e){let et=j[Symbol.iterator]();return new Promise((tt,rt)=>{let nt=[],ot=()=>{const{done:it,value:st}=et.next();if(it)return tt(nt);const lt=new FileReader;lt.addEventListener("error",rt),lt.addEventListener("load",()=>{const ut=lt.result;typeof ut=="string"&&nt.push({file:st,result:ut}),ot()}),G$1(st,_e)?lt.readAsDataURL(st):ot()};ot()})};LexicalUtils_prod.mergeRegister=D$1;LexicalUtils_prod.objectKlassEquals=function(j,_e){return j!==null?Object.getPrototypeOf(j).constructor.name===_e.name:!1};LexicalUtils_prod.positionNodeOnRange=F$1;LexicalUtils_prod.registerNestedElementResolver=function(j,_e,et,tt){return j.registerNodeTransform(_e,rt=>{e:{for(var nt=rt.getChildren(),ot=0;ot{typeof et=="string"&&j.classList.remove(...et.split(" "))})};const LexicalUtils=LexicalUtils_prod;var LexicalUtils_1=LexicalUtils,l$3=LexicalUtils_1,m$6=Lexical_1;let n$5=new Set(["http:","https:","mailto:","sms:","tel:"]),p$5=class iv extends m$6.ElementNode{static getType(){return"link"}static clone(_e){return new iv(_e.__url,{rel:_e.__rel,target:_e.__target,title:_e.__title},_e.__key)}constructor(_e,et={},tt){super(tt);let{target:rt=null,rel:nt=null,title:ot=null}=et;this.__url=_e,this.__target=rt,this.__rel=nt,this.__title=ot}createDOM(_e){let et=document.createElement("a");return et.href=this.sanitizeUrl(this.__url),this.__target!==null&&(et.target=this.__target),this.__rel!==null&&(et.rel=this.__rel),this.__title!==null&&(et.title=this.__title),l$3.addClassNamesToElement(et,_e.theme.link),et}updateDOM(_e,et){let tt=this.__url,rt=this.__target,nt=this.__rel,ot=this.__title;return tt!==_e.__url&&(et.href=tt),rt!==_e.__target&&(rt?et.target=rt:et.removeAttribute("target")),nt!==_e.__rel&&(nt?et.rel=nt:et.removeAttribute("rel")),ot!==_e.__title&&(ot?et.title=ot:et.removeAttribute("title")),!1}static importDOM(){return{a:()=>({conversion:q$4,priority:1})}}static importJSON(_e){let et=r$5(_e.url,{rel:_e.rel,target:_e.target,title:_e.title});return et.setFormat(_e.format),et.setIndent(_e.indent),et.setDirection(_e.direction),et}sanitizeUrl(_e){try{let et=new URL(_e);if(!n$5.has(et.protocol))return"about:blank"}catch{}return _e}exportJSON(){return{...super.exportJSON(),rel:this.getRel(),target:this.getTarget(),title:this.getTitle(),type:"link",url:this.getURL(),version:1}}getURL(){return this.getLatest().__url}setURL(_e){this.getWritable().__url=_e}getTarget(){return this.getLatest().__target}setTarget(_e){this.getWritable().__target=_e}getRel(){return this.getLatest().__rel}setRel(_e){this.getWritable().__rel=_e}getTitle(){return this.getLatest().__title}setTitle(_e){this.getWritable().__title=_e}insertNewAfter(_e,et=!0){return _e=r$5(this.__url,{rel:this.__rel,target:this.__target,title:this.__title}),this.insertAfter(_e,et),_e}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}canBeEmpty(){return!1}isInline(){return!0}extractWithChild(_e,et){if(!m$6.$isRangeSelection(et))return!1;_e=et.anchor.getNode();let tt=et.focus.getNode();return this.isParentOf(_e)&&this.isParentOf(tt)&&0{if(nt=nt.getParent(),u$6(nt)){let ot=nt.getChildren();for(let it=0;it{var st=it.getParent();if(st!==ot&&st!==null&&(!m$6.$isElementNode(it)||it.isInline()))if(u$6(st))ot=st,st.setURL(j),et!==void 0&&st.setTarget(et),rt!==null&&ot.setRel(rt),tt!==void 0&&ot.setTitle(tt);else if(st.is(nt)||(nt=st,ot=r$5(j,{rel:rt,target:et,title:tt}),u$6(st)?it.getPreviousSibling()===null?st.insertBefore(ot):st.insertAfter(ot):it.insertBefore(ot)),u$6(it)){if(!it.is(ot)){if(ot!==null){st=it.getChildren();for(let lt=0;lt{var et=f$3.$getRoot();if(et.isEmpty()){let tt=f$3.$createParagraphNode();et.append(tt),et=m$5?document.activeElement:null,(f$3.$getSelection()!==null||et!==null&&et===j.getRootElement())&&tt.select()}},p$4);else if(_e!==null)switch(typeof _e){case"string":let et=j.parseEditorState(_e);j.setEditorState(et,p$4);break;case"object":j.setEditorState(_e,p$4);break;case"function":j.update(()=>{f$3.$getRoot().isEmpty()&&_e(j)},p$4)}}}LexicalComposer_prod.LexicalComposer=function({initialConfig:j,children:_e}){let et=g$6.useMemo(()=>{const{theme:tt,namespace:rt,editor__DEPRECATED:nt,nodes:ot,onError:it,editorState:st,html:lt}=j,ut=e.createLexicalComposerContext(null,tt);let ct=nt||null;if(ct===null){const dt=f$3.createEditor({editable:j.editable,html:lt,namespace:rt,nodes:ot,onError:ft=>it(ft,dt),theme:tt});q$3(dt,st),ct=dt}return[ct,ut]},[]);return n$4(()=>{let tt=j.editable,[rt]=et;rt.setEditable(tt!==void 0?tt:!0)},[]),g$6.createElement(e.LexicalComposerContext.Provider,{value:et},_e)};const LexicalComposer=LexicalComposer_prod;var LexicalComposer_1=LexicalComposer,LexicalContentEditable_prod={},c$5=LexicalComposerContext_1,h$4=reactExports;function n$3(){return n$3=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e{xt.setRootElement(Tt)},[xt]);return p$3(()=>(Et(xt.isEditable()),xt.registerEditableListener(Tt=>{Et(Tt)})),[xt]),h$4.createElement("div",n$3({},_t,{"aria-activedescendant":yt?j:void 0,"aria-autocomplete":yt?_e:"none","aria-controls":yt?et:void 0,"aria-describedby":tt,"aria-expanded":yt&&ft==="combobox"?!!rt:void 0,"aria-label":nt,"aria-labelledby":ot,"aria-multiline":it,"aria-owns":yt?st:void 0,"aria-readonly":yt?void 0:!0,"aria-required":lt,autoCapitalize:ut,className:ct,contentEditable:yt,"data-testid":bt,id:dt,ref:St,role:ft,spellCheck:pt,style:gt,tabIndex:mt}))};const LexicalContentEditable=LexicalContentEditable_prod;var LexicalContentEditable_1=LexicalContentEditable,h$3=reactExports;function m$4(j,_e){return m$4=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(et,tt){return et.__proto__=tt,et},m$4(j,_e)}function n$2(j,_e){j.prototype=Object.create(_e.prototype),j.prototype.constructor=j,m$4(j,_e)}function r$4(j,_e){return j===void 0&&(j=[]),_e===void 0&&(_e=[]),j.length!==_e.length||j.some(function(et,tt){return!Object.is(et,_e[tt])})}var t$4={error:null},u$5=function(j){function _e(){for(var tt,rt=arguments.length,nt=Array(rt),ot=0;ot{let ut=Date.now();if(lt.has("historic"))return tt=0,et=ut,2;let ct=y$4(rt,nt,it,st,j.isComposing()),dt=(()=>{var ft=ot===null||ot.editor===j,pt=lt.has("history-push");if(!pt&&ft&<.has("history-merge"))return 0;if(rt===null)return 1;var gt=nt._selection;if(!(0{const ct=_e.current,dt=_e.redoStack,ft=_e.undoStack,pt=ct===null?null:ct.editorState;if(ct===null||ot!==pt){if(it=tt(it,ot,ct,st,lt,ut),it===1)dt.length!==0&&(_e.redoStack=[],j.dispatchCommand(x$4.CAN_REDO_COMMAND,!1)),ct!==null&&(ft.push({...ct}),j.dispatchCommand(x$4.CAN_UNDO_COMMAND,!0));else if(it===2)return;_e.current={editor:j,editorState:ot}}};let rt=c$4.mergeRegister(j.registerCommand(x$4.UNDO_COMMAND,()=>{let ot=_e.redoStack,it=_e.undoStack;if(it.length!==0){let st=_e.current,lt=it.pop();st!==null&&(ot.push(st),j.dispatchCommand(x$4.CAN_REDO_COMMAND,!0)),it.length===0&&j.dispatchCommand(x$4.CAN_UNDO_COMMAND,!1),_e.current=lt||null,lt&<.editor.setEditorState(lt.editorState,{tag:"historic"})}return!0},x$4.COMMAND_PRIORITY_EDITOR),j.registerCommand(x$4.REDO_COMMAND,()=>{let ot=_e.redoStack;var it=_e.undoStack;if(ot.length!==0){let st=_e.current;st!==null&&(it.push(st),j.dispatchCommand(x$4.CAN_UNDO_COMMAND,!0)),it=ot.pop(),ot.length===0&&j.dispatchCommand(x$4.CAN_REDO_COMMAND,!1),_e.current=it||null,it&&it.editor.setEditorState(it.editorState,{tag:"historic"})}return!0},x$4.COMMAND_PRIORITY_EDITOR),j.registerCommand(x$4.CLEAR_EDITOR_COMMAND,()=>(_e.undoStack=[],_e.redoStack=[],_e.current=null,!1),x$4.COMMAND_PRIORITY_EDITOR),j.registerCommand(x$4.CLEAR_HISTORY_COMMAND,()=>(_e.undoStack=[],_e.redoStack=[],_e.current=null,j.dispatchCommand(x$4.CAN_REDO_COMMAND,!1),j.dispatchCommand(x$4.CAN_UNDO_COMMAND,!1),!0),x$4.COMMAND_PRIORITY_EDITOR),j.registerUpdateListener(et)),nt=j.registerUpdateListener(et);return()=>{rt(),nt()}};const LexicalHistory=LexicalHistory_prod;var LexicalHistory_1=LexicalHistory,c$3=LexicalComposerContext_1,history=LexicalHistory_1,f$2=reactExports;function g$5(j,_e,et=1e3){let tt=f$2.useMemo(()=>_e||history.createEmptyHistoryState(),[_e]);f$2.useEffect(()=>history.registerHistory(j,tt,et),[et,j,tt])}LexicalHistoryPlugin_prod.createEmptyHistoryState=history.createEmptyHistoryState;LexicalHistoryPlugin_prod.HistoryPlugin=function({externalHistoryState:j}){let[_e]=c$3.useLexicalComposerContext();return g$5(_e,j),null};const LexicalHistoryPlugin=LexicalHistoryPlugin_prod;var LexicalHistoryPlugin_1=LexicalHistoryPlugin,LexicalOnChangePlugin_prod={},c$2=LexicalComposerContext_1,g$4=reactExports,h$2=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?g$4.useLayoutEffect:g$4.useEffect;LexicalOnChangePlugin_prod.OnChangePlugin=function({ignoreHistoryMergeTagChange:j=!0,ignoreSelectionChange:_e=!1,onChange:et}){let[tt]=c$2.useLexicalComposerContext();return h$2(()=>{if(et)return tt.registerUpdateListener(({editorState:rt,dirtyElements:nt,dirtyLeaves:ot,prevEditorState:it,tags:st})=>{_e&&nt.size===0&&ot.size===0||j&&st.has("history-merge")||it.isEmpty()||et(rt,tt,st)})},[tt,j,_e,et]),null};const LexicalOnChangePlugin=LexicalOnChangePlugin_prod;var LexicalOnChangePlugin_1=LexicalOnChangePlugin,LexicalRichTextPlugin_prod={},b$2=LexicalComposerContext_1,k$3=reactExports,l$2=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?k$3.useLayoutEffect:k$3.useEffect;function m$3(j){let[_e]=b$2.useLexicalComposerContext(),et=k$3.useMemo(()=>j(_e),[_e,j]),tt=k$3.useRef(et.initialValueFn()),[rt,nt]=k$3.useState(tt.current);return l$2(()=>{let{initialValueFn:ot,subscribe:it}=et,st=ot();return tt.current!==st&&(tt.current=st,nt(st)),it(lt=>{tt.current=lt,nt(lt)})},[et,j]),rt}function r$3(j){return{initialValueFn:()=>j.isEditable(),subscribe:_e=>j.registerEditableListener(_e)}}var useLexicalEditable_prod=function(){return m$3(r$3)};const useLexicalEditable=useLexicalEditable_prod;var useLexicalEditable_1=useLexicalEditable,LexicalText_prod={},g$3=Lexical_1;function r$2(j,_e=!0){return j?!1:(j=t$3(),_e&&(j=j.trim()),j==="")}function t$3(){return g$3.$getRoot().getTextContent()}function u$4(j){if(!r$2(j,!1))return!1;j=g$3.$getRoot().getChildren();let _e=j.length;if(1<_e)return!1;for(let tt=0;tt<_e;tt++){var et=j[tt];if(g$3.$isDecoratorNode(et))return!1;if(g$3.$isElementNode(et)){if(!g$3.$isParagraphNode(et)||et.__indent!==0)return!1;et=et.getChildren();let rt=et.length;for(let nt=0;ntu$4(j)};LexicalText_prod.$findTextIntersectionFromCharacters=function(j,_e){var et=j.getFirstChild();j=0;e:for(;et!==null;){if(g$3.$isElementNode(et)){var tt=et.getFirstChild();if(tt!==null){et=tt;continue}}else if(g$3.$isTextNode(et)){if(tt=et.getTextContentSize(),j+tt>_e)return{node:et,offset:_e-j};j+=tt}if(tt=et.getNextSibling(),tt!==null)et=tt;else{for(et=et.getParent();et!==null;){if(tt=et.getNextSibling(),tt!==null){et=tt;continue e}et=et.getParent()}break}}return null};LexicalText_prod.$isRootTextContentEmpty=r$2;LexicalText_prod.$isRootTextContentEmptyCurry=function(j,_e){return()=>r$2(j,_e)};LexicalText_prod.$rootTextContent=t$3;LexicalText_prod.registerLexicalTextEntity=function(j,_e,et,tt){let rt=ot=>{const it=g$3.$createTextNode(ot.getTextContent());it.setFormat(ot.getFormat()),ot.replace(it)},nt=j.registerNodeTransform(g$3.TextNode,ot=>{if(ot.isSimpleText()){var it=ot.getPreviousSibling(),st=ot.getTextContent(),lt=ot;if(g$3.$isTextNode(it)){var ut=it.getTextContent(),ct=_e(ut+st);if(it instanceof et){if(ct===null||it.getLatest().__mode!==0){rt(it);return}if(ct=ct.end-ut.length,0{var it=ot.getTextContent();const st=_e(it);st===null||st.start!==0?rt(ot):it.length>st.end?ot.splitText(st.end):(it=ot.getPreviousSibling(),g$3.$isTextNode(it)&&it.isTextEntity()&&(rt(it),rt(ot)),it=ot.getNextSibling(),g$3.$isTextNode(it)&&it.isTextEntity()&&(rt(it),ot instanceof et&&rt(ot)))}),[nt,j]};const LexicalText=LexicalText_prod;var LexicalText_1=LexicalText,LexicalDragon_prod={},g$2=Lexical_1;LexicalDragon_prod.registerDragonSupport=function(j){let _e=window.location.origin,et=tt=>{if(tt.origin===_e){var rt=j.getRootElement();if(document.activeElement===rt&&(rt=tt.data,typeof rt=="string")){try{var nt=JSON.parse(rt)}catch{return}if(nt&&nt.protocol==="nuanria_messaging"&&nt.type==="request"&&(nt=nt.payload)&&nt.functionId==="makeChanges"&&(nt=nt.args)){const[ot,it,st,lt,ut]=nt;j.update(()=>{const ct=g$2.$getSelection();if(g$2.$isRangeSelection(ct)){var dt=ct.anchor;let ft=dt.getNode(),pt=0,gt=0;g$2.$isTextNode(ft)&&0<=ot&&0<=it&&(pt=ot,gt=ot+it,ct.setTextNodeRange(ft,pt,ft,gt)),(pt!==gt||st!=="")&&(ct.insertRawText(st),ft=dt.getNode()),g$2.$isTextNode(ft)&&(pt=lt,gt=lt+ut,dt=ft.getTextContentSize(),pt=pt>dt?dt:pt,gt=gt>dt?dt:gt,ct.setTextNodeRange(ft,pt,ft,gt)),tt.stopImmediatePropagation()}})}}}};return window.addEventListener("message",et,!0),()=>{window.removeEventListener("message",et,!0)}};const LexicalDragon=LexicalDragon_prod;var LexicalDragon_1=LexicalDragon,LexicalRichText_prod={},LexicalClipboard_prod={},LexicalHtml_prod={},m$2=LexicalSelection_1,p$2=LexicalUtils_1,q$2=Lexical_1;function u$3(j,_e,et,tt=null){let rt=tt!==null?_e.isSelected(tt):!0,nt=q$2.$isElementNode(_e)&&_e.excludeFromCopy("html");var ot=_e;tt!==null&&(ot=m$2.$cloneWithProperties(_e),ot=q$2.$isTextNode(ot)&&tt!==null?m$2.$sliceSelectedTextNodeContent(tt,ot):ot);let it=q$2.$isElementNode(ot)?ot.getChildren():[];var st=j._nodes.get(ot.getType());st=st&&st.exportDOM!==void 0?st.exportDOM(j,ot):ot.exportDOM(j);let{element:lt,after:ut}=st;if(!lt)return!1;st=document.createDocumentFragment();for(let ct=0;ct"u"||typeof window>"u"&&typeof commonjsGlobal.window>"u")throw Error("To use $generateHtmlFromNodes in headless mode please initialize a headless browser implementation such as JSDom before calling this function.");let et=document.createElement("div"),tt=q$2.$getRoot().getChildren();for(let rt=0;rt{j.update(()=>{ot(C$2(j,_e))})});var et=j.getRootElement();let tt=j._window==null?window.document:j._window.document,rt=u$2?(j._window||window).getSelection():null;if(et===null||rt===null)return!1;let nt=tt.createElement("span");return nt.style.cssText="position: fixed; top: -1000px;",nt.append(tt.createTextNode("#")),et.append(nt),et=new Range,et.setStart(nt,0),et.setEnd(nt,1),rt.removeAllRanges(),rt.addRange(et),new Promise(ot=>{let it=j.registerCommand(r$1.COPY_COMMAND,st=>(q$1.objectKlassEquals(st,ClipboardEvent)&&(it(),B$2!==null&&(window.clearTimeout(B$2),B$2=null),ot(C$2(j,st))),!0),r$1.COMMAND_PRIORITY_CRITICAL);B$2=window.setTimeout(()=>{it(),B$2=null,ot(!1)},50),tt.execCommand("copy"),nt.remove()})};const LexicalClipboard=LexicalClipboard_prod;var LexicalClipboard_1=LexicalClipboard,c$1=LexicalClipboard_1,g$1=LexicalSelection_1,h$1=LexicalUtils_1,k$2=Lexical_1;function l$1(j,_e){return typeof document.caretRangeFromPoint<"u"?(j=document.caretRangeFromPoint(j,_e),j===null?null:{node:j.startContainer,offset:j.startOffset}):document.caretPositionFromPoint!=="undefined"?(j=document.caretPositionFromPoint(j,_e),j===null?null:{node:j.offsetNode,offset:j.offset}):null}let n$1=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",p$1=n$1&&"documentMode"in document?document.documentMode:null,q=n$1&&"InputEvent"in window&&!p$1?"getTargetRanges"in new window.InputEvent("input"):!1,r=n$1&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),t$1=n$1&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,u$1=n$1&&/^(?=.*Chrome).*/i.test(navigator.userAgent),v$1=n$1&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!u$1,w$1=k$2.createCommand("DRAG_DROP_PASTE_FILE"),x$2=class sm extends k$2.ElementNode{static getType(){return"quote"}static clone(_e){return new sm(_e.__key)}constructor(_e){super(_e)}createDOM(_e){let et=document.createElement("blockquote");return h$1.addClassNamesToElement(et,_e.theme.quote),et}updateDOM(){return!1}static importDOM(){return{blockquote:()=>({conversion:y$2,priority:0})}}exportDOM(_e){if({element:_e}=super.exportDOM(_e),_e&&h$1.isHTMLElement(_e)){this.isEmpty()&&_e.append(document.createElement("br"));var et=this.getFormatType();_e.style.textAlign=et,(et=this.getDirection())&&(_e.dir=et)}return{element:_e}}static importJSON(_e){let et=z();return et.setFormat(_e.format),et.setIndent(_e.indent),et.setDirection(_e.direction),et}exportJSON(){return{...super.exportJSON(),type:"quote"}}insertNewAfter(_e,et){_e=k$2.$createParagraphNode();let tt=this.getDirection();return _e.setDirection(tt),this.insertAfter(_e,et),_e}collapseAtStart(){let _e=k$2.$createParagraphNode();return this.getChildren().forEach(et=>_e.append(et)),this.replace(_e),!0}};function z(){return k$2.$applyNodeReplacement(new x$2)}let B$1=class lm extends k$2.ElementNode{static getType(){return"heading"}static clone(_e){return new lm(_e.__tag,_e.__key)}constructor(_e,et){super(et),this.__tag=_e}getTag(){return this.__tag}createDOM(_e){let et=this.__tag,tt=document.createElement(et);return _e=_e.theme.heading,_e!==void 0&&h$1.addClassNamesToElement(tt,_e[et]),tt}updateDOM(){return!1}static importDOM(){return{h1:()=>({conversion:C$1,priority:0}),h2:()=>({conversion:C$1,priority:0}),h3:()=>({conversion:C$1,priority:0}),h4:()=>({conversion:C$1,priority:0}),h5:()=>({conversion:C$1,priority:0}),h6:()=>({conversion:C$1,priority:0}),p:_e=>(_e=_e.firstChild,_e!==null&&D(_e)?{conversion:()=>({node:null}),priority:3}:null),span:_e=>D(_e)?{conversion:()=>({node:E("h1")}),priority:3}:null}}exportDOM(_e){if({element:_e}=super.exportDOM(_e),_e&&h$1.isHTMLElement(_e)){this.isEmpty()&&_e.append(document.createElement("br"));var et=this.getFormatType();_e.style.textAlign=et,(et=this.getDirection())&&(_e.dir=et)}return{element:_e}}static importJSON(_e){let et=E(_e.tag);return et.setFormat(_e.format),et.setIndent(_e.indent),et.setDirection(_e.direction),et}exportJSON(){return{...super.exportJSON(),tag:this.getTag(),type:"heading",version:1}}insertNewAfter(_e,et=!0){let tt=_e?_e.anchor.offset:0,rt=tt!==this.getTextContentSize()&&_e?E(this.getTag()):k$2.$createParagraphNode(),nt=this.getDirection();return rt.setDirection(nt),this.insertAfter(rt,et),tt===0&&!this.isEmpty()&&_e&&(_e=k$2.$createParagraphNode(),_e.select(),this.replace(_e,!0)),rt}collapseAtStart(){let _e=this.isEmpty()?k$2.$createParagraphNode():E(this.getTag());return this.getChildren().forEach(et=>_e.append(et)),this.replace(_e),!0}extractWithChild(){return!0}};function D(j){return j.nodeName.toLowerCase()==="span"?j.style.fontSize==="26pt":!1}function C$1(j){let _e=j.nodeName.toLowerCase(),et=null;return(_e==="h1"||_e==="h2"||_e==="h3"||_e==="h4"||_e==="h5"||_e==="h6")&&(et=E(_e),j.style!==null&&et.setFormat(j.style.textAlign)),{node:et}}function y$2(j){let _e=z();return j.style!==null&&_e.setFormat(j.style.textAlign),{node:_e}}function E(j){return k$2.$applyNodeReplacement(new B$1(j))}function F(j,_e){j.preventDefault(),_e.update(()=>{let et=k$2.$getSelection(),tt=j instanceof InputEvent||j instanceof KeyboardEvent?null:j.clipboardData;tt!=null&&et!==null&&c$1.$insertDataTransferForRichText(tt,et,_e)},{tag:"paste"})}async function G(j,_e){await c$1.copyToClipboard(_e,h$1.objectKlassEquals(j,ClipboardEvent)?j:null),_e.update(()=>{let et=k$2.$getSelection();k$2.$isRangeSelection(et)?et.removeText():k$2.$isNodeSelection(et)&&et.getNodes().forEach(tt=>tt.remove())})}function H(j){let _e=null;if(j instanceof DragEvent?_e=j.dataTransfer:j instanceof ClipboardEvent&&(_e=j.clipboardData),_e===null)return[!1,[],!1];var et=_e.types;return j=et.includes("Files"),et=et.includes("text/html")||et.includes("text/plain"),[j,Array.from(_e.files),et]}function I(j){var _e=k$2.$getSelection();if(!k$2.$isRangeSelection(_e))return!1;let et=new Set;_e=_e.getNodes();for(let nt=0;nt<_e.length;nt++){var tt=_e[nt],rt=tt.getKey();et.has(rt)||(tt=h$1.$getNearestBlockElementAncestorOrThrow(tt),rt=tt.getKey(),tt.canIndent()&&!et.has(rt)&&(et.add(rt),j(tt)))}return 0{const _e=k$2.$getSelection();return k$2.$isNodeSelection(_e)?(_e.clear(),!0):!1},0),j.registerCommand(k$2.DELETE_CHARACTER_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.deleteCharacter(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.DELETE_WORD_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.deleteWord(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.DELETE_LINE_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.deleteLine(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.CONTROLLED_TEXT_INSERTION_COMMAND,_e=>{const et=k$2.$getSelection();if(typeof _e=="string")et!==null&&et.insertText(_e);else{if(et===null)return!1;const tt=_e.dataTransfer;tt!=null?c$1.$insertDataTransferForRichText(tt,et,j):k$2.$isRangeSelection(et)&&(_e=_e.data)&&et.insertText(_e)}return!0},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.REMOVE_TEXT_COMMAND,()=>{const _e=k$2.$getSelection();return k$2.$isRangeSelection(_e)?(_e.removeText(),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.FORMAT_TEXT_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.formatText(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.FORMAT_ELEMENT_COMMAND,_e=>{var et=k$2.$getSelection();if(!k$2.$isRangeSelection(et)&&!k$2.$isNodeSelection(et))return!1;et=et.getNodes();for(const tt of et)et=h$1.$findMatchingParent(tt,rt=>k$2.$isElementNode(rt)&&!rt.isInline()),et!==null&&et.setFormat(_e);return!0},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.INSERT_LINE_BREAK_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.insertLineBreak(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.INSERT_PARAGRAPH_COMMAND,()=>{const _e=k$2.$getSelection();return k$2.$isRangeSelection(_e)?(_e.insertParagraph(),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.INSERT_TAB_COMMAND,()=>(k$2.$insertNodes([k$2.$createTabNode()]),!0),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.INDENT_CONTENT_COMMAND,()=>I(_e=>{const et=_e.getIndent();_e.setIndent(et+1)}),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.OUTDENT_CONTENT_COMMAND,()=>I(_e=>{const et=_e.getIndent();0{var et=k$2.$getSelection();if(k$2.$isNodeSelection(et)&&!J(_e.target)){if(_e=et.getNodes(),0<_e.length)return _e[0].selectPrevious(),!0}else if(k$2.$isRangeSelection(et)&&(et=k$2.$getAdjacentNode(et.focus,!0),!_e.shiftKey&&k$2.$isDecoratorNode(et)&&!et.isIsolated()&&!et.isInline()))return et.selectPrevious(),_e.preventDefault(),!0;return!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.KEY_ARROW_DOWN_COMMAND,_e=>{var et=k$2.$getSelection();if(k$2.$isNodeSelection(et)){if(_e=et.getNodes(),0<_e.length)return _e[0].selectNext(0,0),!0}else if(k$2.$isRangeSelection(et)){let tt=et.focus;if(tt.key==="root"&&tt.offset===k$2.$getRoot().getChildrenSize())return _e.preventDefault(),!0;if(et=k$2.$getAdjacentNode(et.focus,!1),!_e.shiftKey&&k$2.$isDecoratorNode(et)&&!et.isIsolated()&&!et.isInline())return et.selectNext(),_e.preventDefault(),!0}return!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.KEY_ARROW_LEFT_COMMAND,_e=>{const et=k$2.$getSelection();if(k$2.$isNodeSelection(et)){var tt=et.getNodes();if(0{const et=k$2.$getSelection();if(k$2.$isNodeSelection(et)&&!J(_e.target)){var tt=et.getNodes();if(0{if(J(_e.target))return!1;const et=k$2.$getSelection();if(!k$2.$isRangeSelection(et))return!1;_e.preventDefault(),{anchor:_e}=et;const tt=_e.getNode();return et.isCollapsed()&&_e.offset===0&&!k$2.$isRootNode(tt)&&0{if(J(_e.target))return!1;const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(_e.preventDefault(),j.dispatchCommand(k$2.DELETE_CHARACTER_COMMAND,!1)):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.KEY_ENTER_COMMAND,_e=>{const et=k$2.$getSelection();if(!k$2.$isRangeSelection(et))return!1;if(_e!==null){if((t$1||r||v$1)&&q)return!1;if(_e.preventDefault(),_e.shiftKey)return j.dispatchCommand(k$2.INSERT_LINE_BREAK_COMMAND,!1)}return j.dispatchCommand(k$2.INSERT_PARAGRAPH_COMMAND,void 0)},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.KEY_ESCAPE_COMMAND,()=>{const _e=k$2.$getSelection();return k$2.$isRangeSelection(_e)?(j.blur(),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.DROP_COMMAND,_e=>{const[,et]=H(_e);if(0{[_e]=H(_e);const et=k$2.$getSelection();return!(_e&&!k$2.$isRangeSelection(et))},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.DRAGOVER_COMMAND,_e=>{var[et]=H(_e);const tt=k$2.$getSelection();return et&&!k$2.$isRangeSelection(tt)?!1:(et=l$1(_e.clientX,_e.clientY),et!==null&&(et=k$2.$getNearestNodeFromDOMNode(et.node),k$2.$isDecoratorNode(et)&&_e.preventDefault()),!0)},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.SELECT_ALL_COMMAND,()=>(k$2.$selectAll(),!0),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.COPY_COMMAND,_e=>(c$1.copyToClipboard(j,h$1.objectKlassEquals(_e,ClipboardEvent)?_e:null),!0),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.CUT_COMMAND,_e=>(G(_e,j),!0),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.PASTE_COMMAND,_e=>{const[,et,tt]=H(_e);return 0w(j));return v(()=>{function tt(){let rt=w(j);et(rt)}return tt(),n.mergeRegister(j.registerUpdateListener(()=>{tt()}),j.registerEditableListener(()=>{tt()}))},[j]),_e}function y$1(j,_e){let[et,tt]=l.useState(()=>j.getDecorators());return v(()=>j.registerDecoratorListener(rt=>{p.flushSync(()=>{tt(rt)})}),[j]),l.useEffect(()=>{tt(j.getDecorators())},[j]),l.useMemo(()=>{let rt=[],nt=Object.keys(et);for(let ot=0;otj._onError(ut)},l.createElement(l.Suspense,{fallback:null},et[it])),lt=j.getElementByKey(it);lt!==null&&rt.push(p.createPortal(st,lt,it))}return rt},[_e,et,j])}function B(j){v(()=>n.mergeRegister(u.registerRichText(j),t.registerDragonSupport(j)),[j])}function C({content:j}){var[_e]=b$1.useLexicalComposerContext();_e=x$1(_e);let et=g();return _e?typeof j=="function"?j(et):j:null}LexicalRichTextPlugin_prod.RichTextPlugin=function({contentEditable:j,placeholder:_e,ErrorBoundary:et}){let[tt]=b$1.useLexicalComposerContext();return et=y$1(tt,et),B(tt),l.createElement(l.Fragment,null,j,l.createElement(C,{content:_e}),et)};const LexicalRichTextPlugin=LexicalRichTextPlugin_prod;var LexicalRichTextPlugin_1=LexicalRichTextPlugin,RichEditorContentType=(j=>(j.IMAGE="image",j.TEXT="text",j))(RichEditorContentType||{});const FAKE_PROTOCOL="fake:",CAN_USE_DOM=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";var useLexicalNodeSelection_prod={},b=LexicalComposerContext_1,f=Lexical_1,h=reactExports;function k$1(j,_e){return j.getEditorState().read(()=>{let et=f.$getNodeByKey(_e);return et===null?!1:et.isSelected()})}useLexicalNodeSelection_prod.useLexicalNodeSelection=function(j){let[_e]=b.useLexicalComposerContext(),[et,tt]=h.useState(()=>k$1(_e,j));h.useEffect(()=>{let ot=!0,it=_e.registerUpdateListener(()=>{ot&&tt(k$1(_e,j))});return()=>{ot=!1,it()}},[_e,j]);let rt=h.useCallback(ot=>{_e.update(()=>{let it=f.$getSelection();f.$isNodeSelection(it)||(it=f.$createNodeSelection(),f.$setSelection(it)),f.$isNodeSelection(it)&&(ot?it.add(j):it.delete(j))})},[_e,j]),nt=h.useCallback(()=>{_e.update(()=>{const ot=f.$getSelection();f.$isNodeSelection(ot)&&ot.clear()})},[_e]);return[et,rt,nt]};const useLexicalNodeSelection=useLexicalNodeSelection_prod;var useLexicalNodeSelection_1=useLexicalNodeSelection;function useEventCallback(j){const _e=reactExports.useRef(j);return reactExports.useLayoutEffect(()=>{_e.current=j}),reactExports.useCallback((...et)=>{const tt=_e.current;return tt(...et)},[])}const INSERT_IMAGE_COMMAND=Lexical_1.createCommand("INSERT_IMAGE_COMMAND"),INSERT_MULTIPLE_NODES_COMMAND=Lexical_1.createCommand("INSERT_MULTIPLE_NODES_COMMAND"),RIGHT_CLICK_IMAGE_COMMAND=Lexical_1.createCommand("RIGHT_CLICK_IMAGE_COMMAND");class RichEditorViewModel extends ViewModel{constructor(_e){super(),this.editor$=new State(void 0),this.maxHeight$=new State(void 0),this.resolveUrlByPath$=new State(void 0),this.resolveUrlByFile$=new State(void 0),this._resetEditorState=_e.resetEditorState,this._replaceImageSrc=_e.replaceImageSrc,this._extractEditorData=_e.extractEditorData}get requiredEditor(){const _e=this.editor$.getSnapshot();if(!_e)throw new Error("[RichEditor] editor is not prepared.");return _e}focus(){this.requiredEditor.focus()}getContent(){const et=this.requiredEditor.getEditorState();return this._extractEditorData(et)}insert(_e){this.requiredEditor.dispatchCommand(INSERT_MULTIPLE_NODES_COMMAND,{nodes:_e})}isEmpty(){return this.requiredEditor.getEditorState().read(()=>{const rt=Lexical_1.$getRoot(),nt=rt.getFirstChild();return nt?rt.getChildrenSize()===1&&nt instanceof Lexical_1.ElementNode?nt.isEmpty():!1:!0})}replaceImageSrc(_e,et){const tt=this.editor$.getSnapshot();if(!tt)throw new Error("[RichEditor] editor is not prepared.");this._replaceImageSrc(tt,_e,et)}reset(_e){const et=this.requiredEditor;this._resetEditorState(_e)(et)}async resolveUrlByFile(_e){const et=this.resolveUrlByFile$.getSnapshot();return et?et(_e):""}async resolveUrlByPath(_e){if(_e.startsWith(FAKE_PROTOCOL))return _e;const et=this.resolveUrlByPath$.getSnapshot();return(et==null?void 0:et(_e))??_e}}const RichEditorContextType=reactExports.createContext({viewmodel:new RichEditorViewModel({extractEditorData:()=>[],resetEditorState:()=>()=>{},replaceImageSrc:()=>{}})}),useRichEditorContext=()=>{const j=reactExports.useContext(RichEditorContextType),_e=reactExports.useContext(LexicalComposerContext_1.LexicalComposerContext),et=(_e==null?void 0:_e[0])??void 0;return et&&j.viewmodel.editor$.next(et),j},useAutoResize=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext(),{viewmodel:_e}=useRichEditorContext(),et=useStateValue(_e.maxHeight$);return useEventCallback(()=>{if(et===void 0)return;const rt=j==null?void 0:j.getRootElement();if(rt){rt.style.height="24px";const nt=Math.min(et,rt.scrollHeight);rt.style.height=`${nt}px`}})},imageCache=new Set;function useSuspenseImage(j){imageCache.has(j)||new Promise(_e=>{const et=new Image;et.src=j,et.onload=()=>{imageCache.add(j),_e(null)}})}function LazyImage({alt:j,className:_e,imageRef:et,src:tt,width:rt,height:nt,maxWidth:ot,onLoad:it}){return useSuspenseImage(tt),jsxRuntimeExports.jsx("img",{className:_e||void 0,src:tt,alt:j,ref:et,style:{height:nt,maxWidth:ot,width:rt,border:"1px solid #E5E5E5"},draggable:!1,onLoad:it})}const ImageComponent=j=>{const{viewmodel:_e}=useRichEditorContext(),et=useAutoResize(),{src:tt,alt:rt,nodeKey:nt,width:ot,height:it,maxWidth:st,isImageNode:lt}=j,[ut,ct]=reactExports.useState(tt),dt=reactExports.useRef(null),ft=reactExports.useRef(null),[pt,gt,vt]=useLexicalNodeSelection_1.useLexicalNodeSelection(nt),[bt]=LexicalComposerContext_1.useLexicalComposerContext(),[_t,xt]=reactExports.useState(null),yt=reactExports.useRef(null),Et=reactExports.useCallback(Mt=>{if(pt&&Lexical_1.$isNodeSelection(Lexical_1.$getSelection())){Mt.preventDefault();const Lt=Lexical_1.$getNodeByKey(nt);lt(Lt)&&Lt.remove()}return!1},[pt,nt,lt]),St=reactExports.useCallback(Mt=>{const Rt=Lexical_1.$getSelection(),Lt=ft.current;return pt&&Lexical_1.$isNodeSelection(Rt)&&Rt.getNodes().length===1&&Lt!==null&&Lt!==document.activeElement?(Mt.preventDefault(),Lt.focus(),!0):!1},[pt]),$t=reactExports.useCallback(Mt=>Mt.target===dt.current?(Mt.preventDefault(),!0):!1,[]),At=reactExports.useCallback(Mt=>ft.current===Mt.target?(Lexical_1.$setSelection(null),bt.update(()=>{gt(!0);const Rt=bt.getRootElement();Rt!==null&&Rt.focus()}),!0):!1,[bt,gt]),wt=reactExports.useCallback(Mt=>{const Rt=Mt;return Rt.target===dt.current?(Rt.shiftKey?gt(!pt):(vt(),gt(!0)),!0):!1},[pt,gt,vt]),Ct=reactExports.useCallback(Mt=>{bt.getEditorState().read(()=>{const Rt=Lexical_1.$getSelection();Mt.target.tagName==="IMG"&&Lexical_1.$isRangeSelection(Rt)&&Rt.getNodes().length===1&&bt.dispatchCommand(RIGHT_CLICK_IMAGE_COMMAND,Mt)})},[bt]);reactExports.useEffect(()=>{let Mt=!1;return _e.resolveUrlByPath(tt).then(Rt=>{Mt||ct(Rt)}),()=>{Mt=!0}},[_e,tt]),reactExports.useEffect(()=>{let Mt=!0;const Rt=bt.getRootElement(),Lt=LexicalUtils_1.mergeRegister(bt.registerUpdateListener(({editorState:jt})=>{Mt&&xt(jt.read(Lexical_1.$getSelection))}),bt.registerCommand(Lexical_1.SELECTION_CHANGE_COMMAND,(jt,Gt)=>(yt.current=Gt,!1),Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.CLICK_COMMAND,wt,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(RIGHT_CLICK_IMAGE_COMMAND,wt,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.DRAGSTART_COMMAND,$t,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.KEY_DELETE_COMMAND,Et,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.KEY_BACKSPACE_COMMAND,Et,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.KEY_ENTER_COMMAND,St,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.KEY_ESCAPE_COMMAND,At,Lexical_1.COMMAND_PRIORITY_LOW));return Rt==null||Rt.addEventListener("contextmenu",Ct),()=>{Mt=!1,Lt(),Rt==null||Rt.removeEventListener("contextmenu",Ct)}},[bt,pt,nt,vt,Et,$t,St,At,wt,Ct,gt]);const It=pt&&Lexical_1.$isNodeSelection(_t),Nt=pt?`focused ${Lexical_1.$isNodeSelection(_t)?"draggable":""}`:void 0,Pt=(ut.startsWith(FAKE_PROTOCOL)?ut.slice(FAKE_PROTOCOL.length):ut).replace(/#[\s\S]*$/,"");return jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:null,children:jsxRuntimeExports.jsx("div",{draggable:It,children:jsxRuntimeExports.jsx(LazyImage,{className:Nt,src:Pt,alt:rt,imageRef:dt,width:ot,height:it,maxWidth:st,onLoad:et})})})};class ImageNode extends Lexical_1.DecoratorNode{constructor(_e,et,tt,rt,nt,ot){super(ot),this.src=_e,this.alt=et,this.maxWidth=tt,this.width=rt||"inherit",this.height=nt||"inherit"}static getType(){return RichEditorContentType.IMAGE}static clone(_e){return new ImageNode(_e.src,_e.alt,_e.maxWidth,_e.width,_e.height,_e.__key)}static importDOM(){return{img:_e=>({conversion:convertImageElement,priority:0})}}static importJSON(_e){const{alt:et,height:tt,width:rt,maxWidth:nt,src:ot}=_e;return $createImageNode({alt:et,height:tt,maxWidth:nt,src:ot,width:rt})}exportDOM(){const _e=document.createElement("img");return _e.setAttribute("src",this.src),_e.setAttribute("alt",this.alt),_e.setAttribute("width",this.width.toString()),_e.setAttribute("height",this.height.toString()),{element:_e}}exportJSON(){return{alt:this.getAltText(),height:this.height==="inherit"?0:this.height,maxWidth:this.maxWidth,src:this.getSrc(),type:RichEditorContentType.IMAGE,version:1,width:this.width==="inherit"?0:this.width}}setWidthAndHeight(_e,et){const tt=this.getWritable();tt.width=_e,tt.height=et}createDOM(_e){const et=document.createElement("span"),rt=_e.theme.image;return rt!==void 0&&(et.className=rt),et}updateDOM(){return!1}getSrc(){return this.src}getAltText(){return this.alt}decorate(){return jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:null,children:jsxRuntimeExports.jsx(ImageComponent,{src:this.src,alt:this.alt,width:this.width,height:this.height,maxWidth:this.maxWidth,nodeKey:this.getKey(),isImageNode:$isImageNode})})}}function $createImageNode({alt:j,height:_e,maxWidth:et=240,src:tt,width:rt,key:nt}){return Lexical_1.$applyNodeReplacement(new ImageNode(tt,j,et,rt,_e,nt))}function $isImageNode(j){return j instanceof ImageNode}function convertImageElement(j){if(j instanceof HTMLImageElement){const{alt:_e,src:et,width:tt,height:rt}=j;return et.startsWith("blob:")?null:{node:$createImageNode({alt:_e,height:rt,src:et,width:tt})}}return null}const CommandPlugin=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext();return React.useLayoutEffect(()=>LexicalUtils_1.mergeRegister(j.registerCommand(INSERT_MULTIPLE_NODES_COMMAND,_e=>{const{nodes:et}=_e;if(et.length===1&&et[0].type===RichEditorContentType.TEXT){const nt=et[0];return j.update(()=>{const ot=Lexical_1.$getSelection();ot&&ot.insertRawText(nt.value)}),!0}let tt;const rt=[];for(const nt of et)switch(nt.type){case RichEditorContentType.TEXT:{const ot=Lexical_1.$createTextNode(nt.value),it=Lexical_1.$createParagraphNode();tt=ot,it.append(ot),rt.push(it);break}case RichEditorContentType.IMAGE:{const ot=$createImageNode(nt),it=Lexical_1.$createParagraphNode();tt=ot,it.append(ot),rt.push(it);break}}return rt.length<=0||(Lexical_1.$insertNodes(rt),tt&&Lexical_1.$isRootOrShadowRoot(tt.getParentOrThrow())&&tt.selectEnd()),!0},Lexical_1.COMMAND_PRIORITY_EDITOR)),[j]),jsxRuntimeExports.jsx(React.Fragment,{})},ACCEPTABLE_IMAGE_TYPES=["image/","image/heic","image/heif","image/gif","image/webp"],DragDropPastePlugin=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext(),{viewmodel:_e}=useRichEditorContext();return reactExports.useLayoutEffect(()=>j.registerCommand(LexicalRichText_1.DRAG_DROP_PASTE,et=>{return tt(),!0;async function tt(){for(const rt of et)if(LexicalUtils_1.isMimeType(rt,ACCEPTABLE_IMAGE_TYPES)){const nt=rt.name,ot=await _e.resolveUrlByFile(rt);j.dispatchCommand(INSERT_IMAGE_COMMAND,{alt:nt,src:ot})}}},Lexical_1.COMMAND_PRIORITY_LOW),[j,_e]),jsxRuntimeExports.jsx(reactExports.Fragment,{})};class Point{constructor(_e,et){this._x=_e,this._y=et}get x(){return this._x}get y(){return this._y}equals(_e){return this.x===_e.x&&this.y===_e.y}calcDeltaXTo(_e){return this.x-_e.x}calcDeltaYTo(_e){return this.y-_e.y}calcHorizontalDistanceTo(_e){return Math.abs(this.calcDeltaXTo(_e))}calcVerticalDistance(_e){return Math.abs(this.calcDeltaYTo(_e))}calcDistanceTo(_e){const et=this.calcDeltaXTo(_e)**2,tt=this.calcDeltaYTo(_e)**2;return Math.sqrt(et+tt)}}function isPoint(j){return j instanceof Point}class Rect{constructor(_e,et,tt,rt){const[nt,ot]=et<=rt?[et,rt]:[rt,et],[it,st]=_e<=tt?[_e,tt]:[tt,_e];this._top=nt,this._right=st,this._left=it,this._bottom=ot}get top(){return this._top}get right(){return this._right}get bottom(){return this._bottom}get left(){return this._left}get width(){return Math.abs(this._left-this._right)}get height(){return Math.abs(this._bottom-this._top)}static fromLTRB(_e,et,tt,rt){return new Rect(_e,et,tt,rt)}static fromLWTH(_e,et,tt,rt){return new Rect(_e,tt,_e+et,tt+rt)}static fromPoints(_e,et){const{y:tt,x:rt}=_e,{y:nt,x:ot}=et;return Rect.fromLTRB(rt,tt,ot,nt)}static fromDOM(_e){const{top:et,width:tt,left:rt,height:nt}=_e.getBoundingClientRect();return Rect.fromLWTH(rt,tt,et,nt)}equals(_e){return _e.top===this._top&&_e.bottom===this._bottom&&_e.left===this._left&&_e.right===this._right}contains(_e){if(isPoint(_e)){const{x:et,y:tt}=_e,rt=ttthis._bottom,ot=etthis._right;return{reason:{isOnBottomSide:nt,isOnLeftSide:ot,isOnRightSide:it,isOnTopSide:rt},result:!rt&&!nt&&!ot&&!it}}else{const{top:et,left:tt,bottom:rt,right:nt}=_e;return et>=this._top&&et<=this._bottom&&rt>=this._top&&rt<=this._bottom&&tt>=this._left&&tt<=this._right&&nt>=this._left&&nt<=this._right}}intersectsWith(_e){const{left:et,top:tt,width:rt,height:nt}=_e,{left:ot,top:it,width:st,height:lt}=this,ut=et+rt>=ot+st?et+rt:ot+st,ct=tt+nt>=it+lt?tt+nt:it+lt,dt=et<=ot?et:ot,ft=tt<=it?tt:it;return ut-dt<=rt+st&&ct-ft<=nt+lt}generateNewRect({left:_e=this.left,top:et=this.top,right:tt=this.right,bottom:rt=this.bottom}){return new Rect(_e,et,tt,rt)}}const SPACE=4,TARGET_LINE_HALF_HEIGHT=2,DRAGGABLE_BLOCK_MENU_CLASSNAME="draggable-block-menu",DRAG_DATA_FORMAT="application/x-lexical-drag-block",TEXT_BOX_HORIZONTAL_PADDING=28,Downward=1,Upward=-1,Indeterminate=0,DraggableBlockPlugin=j=>{const{anchorElem:_e=document.body}=j,[et]=LexicalComposerContext_1.useLexicalComposerContext();return useDraggableBlockMenu(et,_e,et._editable)};let prevIndex=1/0;function getCurrentIndex(j){return j===0?1/0:prevIndex>=0&&prevIndexLexical_1.$getRoot().getChildrenKeys())}function getCollapsedMargins(j){const _e=(st,lt)=>st?parseFloat(window.getComputedStyle(st)[lt]):0,{marginTop:et,marginBottom:tt}=window.getComputedStyle(j),rt=_e(j.previousElementSibling,"marginBottom"),nt=_e(j.nextElementSibling,"marginTop"),ot=Math.max(parseFloat(et),rt);return{marginBottom:Math.max(parseFloat(tt),nt),marginTop:ot}}function getBlockElement(j,_e,et,tt=!1){const rt=j.getBoundingClientRect(),nt=getTopLevelNodeKeys(_e);let ot=null;return _e.getEditorState().read(()=>{if(tt){const lt=_e.getElementByKey(nt[0]),ut=_e.getElementByKey(nt[nt.length-1]),ct=lt==null?void 0:lt.getBoundingClientRect(),dt=ut==null?void 0:ut.getBoundingClientRect();if(ct&&dt&&(et.ydt.bottom&&(ot=ut),ot))return}let it=getCurrentIndex(nt.length),st=Indeterminate;for(;it>=0&&it{tt.transform=et})}function setTargetLine(j,_e,et,tt){const{top:rt,height:nt}=_e.getBoundingClientRect(),{top:ot,width:it}=tt.getBoundingClientRect(),{marginTop:st,marginBottom:lt}=getCollapsedMargins(_e);let ut=rt;et>=rt?ut+=nt+lt/2:ut-=st/2;const ct=ut-ot-TARGET_LINE_HALF_HEIGHT,dt=TEXT_BOX_HORIZONTAL_PADDING-SPACE,ft=j.style;ft.transform=`translate(${dt}px, ${ct}px)`,ft.width=`${it-(TEXT_BOX_HORIZONTAL_PADDING-SPACE)*2}px`,ft.opacity=".4"}function hideTargetLine(j){const _e=j==null?void 0:j.style;_e&&(_e.opacity="0",_e.transform="translate(-10000px, -10000px)")}function useDraggableBlockMenu(j,_e,et){const tt=_e.parentElement,rt=reactExports.useRef(null),nt=reactExports.useRef(null),ot=reactExports.useRef(!1),[it,st]=reactExports.useState(null);reactExports.useLayoutEffect(()=>{function ct(ft){const pt=ft.target;if(!isHTMLElement(pt)){st(null);return}if(isOnMenu(pt))return;const gt=getBlockElement(_e,j,ft);st(gt)}function dt(){st(null)}return tt==null||tt.addEventListener("mousemove",ct),tt==null||tt.addEventListener("mouseleave",dt),()=>{tt==null||tt.removeEventListener("mousemove",ct),tt==null||tt.removeEventListener("mouseleave",dt)}},[tt,_e,j]),reactExports.useEffect(()=>{rt.current&&setMenuPosition(it,rt.current,_e)},[_e,it]),reactExports.useEffect(()=>{function ct(ft){if(!ot.current)return!1;const[pt]=LexicalRichText_1.eventFiles(ft);if(pt)return!1;const{pageY:gt,target:vt}=ft;if(!isHTMLElement(vt))return!1;const bt=getBlockElement(_e,j,ft,!0),_t=nt.current;return bt===null||_t===null?!1:(setTargetLine(_t,bt,gt,_e),ft.preventDefault(),!0)}function dt(ft){if(!ot.current)return!1;const[pt]=LexicalRichText_1.eventFiles(ft);if(pt)return!1;const{target:gt,dataTransfer:vt,pageY:bt}=ft,_t=(vt==null?void 0:vt.getData(DRAG_DATA_FORMAT))||"",xt=Lexical_1.$getNodeByKey(_t);if(!xt||!isHTMLElement(gt))return!1;const yt=getBlockElement(_e,j,ft,!0);if(!yt)return!1;const Et=Lexical_1.$getNearestNodeFromDOMNode(yt);if(!Et)return!1;if(Et===xt)return!0;const St=yt.getBoundingClientRect().top;return bt>=St?Et.insertAfter(xt):Et.insertBefore(xt),st(null),!0}return LexicalUtils_1.mergeRegister(j.registerCommand(Lexical_1.DRAGOVER_COMMAND,ft=>ct(ft),Lexical_1.COMMAND_PRIORITY_LOW),j.registerCommand(Lexical_1.DROP_COMMAND,ft=>dt(ft),Lexical_1.COMMAND_PRIORITY_HIGH))},[_e,j]);const lt=ct=>{const dt=ct.dataTransfer;if(!dt||!it)return;setDragImage(dt,it);let ft="";j.update(()=>{const pt=Lexical_1.$getNearestNodeFromDOMNode(it);pt&&(ft=pt.getKey())}),ot.current=!0,dt.setData(DRAG_DATA_FORMAT,ft)},ut=()=>{ot.current=!1,hideTargetLine(nt.current)};return reactDomExports.createPortal(jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"icon draggable-block-menu",role:"button",ref:rt,draggable:!0,onDragStart:lt,onDragEnd:ut,children:jsxRuntimeExports.jsx("div",{className:et?"icon":""})}),jsxRuntimeExports.jsx("div",{className:"draggable-block-target-line",ref:nt})]}),_e)}const EditablePlugin=j=>{const{editable:_e}=j,[et]=LexicalComposerContext_1.useLexicalComposerContext();return reactExports.useEffect(()=>{et.setEditable(_e)},[et,_e]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},ImagesPlugin=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext();return reactExports.useLayoutEffect(()=>{if(!j.hasNodes([ImageNode]))throw new Error("[RichEditor] ImagesPlugin: ImageNode not registered on editor");return LexicalUtils_1.mergeRegister(j.registerCommand(INSERT_IMAGE_COMMAND,onInsertImage,Lexical_1.COMMAND_PRIORITY_EDITOR),j.registerCommand(Lexical_1.DRAGSTART_COMMAND,onDragStart,Lexical_1.COMMAND_PRIORITY_HIGH),j.registerCommand(Lexical_1.DRAGOVER_COMMAND,onDragover,Lexical_1.COMMAND_PRIORITY_LOW),j.registerCommand(Lexical_1.DROP_COMMAND,_e=>onDrop(_e,j),Lexical_1.COMMAND_PRIORITY_HIGH))},[j]),jsxRuntimeExports.jsx(reactExports.Fragment,{})};let _transparentImage;const getTransparentImage=()=>{if(_transparentImage===void 0){const j="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";_transparentImage=document.createElement("img"),_transparentImage.src=j}return _transparentImage};function onInsertImage(j){const _e=$createImageNode(j);return Lexical_1.$insertNodes([_e]),Lexical_1.$isRootOrShadowRoot(_e.getParentOrThrow())&&LexicalUtils_1.$wrapNodeInElement(_e,Lexical_1.$createParagraphNode).selectEnd(),!0}function onDragStart(j){const _e=getImageNodeInSelection();if(!_e)return!1;const et=j.dataTransfer;if(!et)return!1;const tt=getTransparentImage();return et.setData("text/plain","_"),et.setDragImage(tt,0,0),et.setData("application/x-lexical-drag",JSON.stringify({type:RichEditorContentType.IMAGE,data:{alt:_e.alt,height:_e.height,key:_e.getKey(),maxWidth:_e.maxWidth,src:_e.src,width:_e.width}})),!0}function onDragover(j){return getImageNodeInSelection()?(canDropImage(j)||j.preventDefault(),!0):!1}function onDrop(j,_e){const et=getImageNodeInSelection();if(!et)return!1;const tt=getDragImageData(j);if(!tt)return!1;if(j.preventDefault(),canDropImage(j)){const rt=getDragSelection(j);et.remove();const nt=Lexical_1.$createRangeSelection();rt!=null&&nt.applyDOMRange(rt),Lexical_1.$setSelection(nt),_e.dispatchCommand(INSERT_IMAGE_COMMAND,tt)}return!0}function getImageNodeInSelection(){const j=Lexical_1.$getSelection();if(!Lexical_1.$isNodeSelection(j))return null;const et=j.getNodes()[0];return $isImageNode(et)?et:null}function getDragImageData(j){var et;const _e=(et=j.dataTransfer)==null?void 0:et.getData("application/x-lexical-drag");if(!_e)return null;try{const{type:tt,data:rt}=JSON.parse(_e);return tt===RichEditorContentType.IMAGE?rt:null}catch{return null}}function canDropImage(j){const _e=j.target;return!!(_e&&_e instanceof HTMLElement&&!_e.closest("code, span.editor-image")&&_e.parentElement&&_e.parentElement.closest("div.ContentEditable__root"))}const getDOMSelection=j=>CAN_USE_DOM?(j||window).getSelection():null;function getDragSelection(j){const _e=j,et=_e.target,tt=et==null?null:et.nodeType===9?et.defaultView:et.ownerDocument.defaultView,rt=getDOMSelection(tt);let nt;if(document.caretRangeFromPoint)nt=document.caretRangeFromPoint(_e.clientX,_e.clientY);else if(_e.rangeParent&&rt!==null)rt.collapse(_e.rangeParent,_e.rangeOffset||0),nt=rt.getRangeAt(0);else throw Error("[RichEditor] ImagesPlugin: Cannot get the selection when dragging");return nt}const OnKeyDownPlugin=j=>{const[_e]=LexicalComposerContext_1.useLexicalComposerContext(),et=reactExports.useRef(j.onKeyDown);return reactExports.useLayoutEffect(()=>{const tt=rt=>{var nt;(nt=et.current)==null||nt.call(et,rt)};return _e.registerRootListener((rt,nt)=>{nt!==null&&nt.removeEventListener("keydown",tt),rt!==null&&rt.addEventListener("keydown",tt)})},[_e]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},PlainContentPastePlugin=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext();return reactExports.useLayoutEffect(()=>LexicalUtils_1.mergeRegister(j.registerUpdateListener(_e=>{_e.tags.has("paste")&&j.update(()=>{_e.dirtyLeaves.forEach(et=>{const tt=Lexical_1.$getNodeByKey(et);if(Lexical_1.$isTextNode(tt)){const rt=Lexical_1.$copyNode(tt);rt.setFormat(0),rt.setStyle(""),tt.replace(rt)}})})}),j.registerNodeTransform(Lexical_1.TextNode,_e=>{const et=_e.getParentOrThrow();if(LexicalLink_1.$isLinkNode(et)){const tt=Lexical_1.$createTextNode(et.__url);et.insertBefore(tt),et.remove()}})),[j]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},resetEditorState=j=>_e=>{_e.update(()=>{const et=Lexical_1.$getRoot();et.clear();for(const tt of j)if(tt!=null){if(typeof tt=="string"){const rt=Lexical_1.$createTextNode(tt),nt=Lexical_1.$createParagraphNode();nt.append(rt),et.append(nt);continue}if(typeof tt=="object"){switch(tt.type){case RichEditorContentType.IMAGE:{const rt=$createImageNode({alt:tt.alt,src:tt.src}),nt=Lexical_1.$createParagraphNode();nt.append(rt),et.append(nt);break}case RichEditorContentType.TEXT:{const rt=Lexical_1.$createTextNode(tt.value),nt=Lexical_1.$createParagraphNode();nt.append(rt),et.append(nt);break}default:throw console.log("item:",tt),new TypeError(`[resetEditorState] unknown rich-editor content type: ${tt.type}`)}continue}console.error("[resetEditorState] unknown rich-editor data:",tt)}})},RootType=Lexical_1.RootNode.getType(),ParagraphType=Lexical_1.ParagraphNode.getType(),TextType=Lexical_1.TextNode.getType(),ImageType=ImageNode.getType(),LineBreakType=Lexical_1.LineBreakNode.getType(),extractEditorData=j=>{const _e=j.toJSON(),et=[];for(const rt of _e.root.children)tt(rt);return et;function tt(rt){switch(rt.type){case ImageType:{const{src:nt,alt:ot}=rt;if(nt.startsWith(FAKE_PROTOCOL)){const it=et[et.length-1];(it==null?void 0:it.type)===RichEditorContentType.TEXT&&(it.value+=` +`?_e.insertParagraph():rt===" "?_e.insertNodes([r$1.$createTabNode()]):_e.insertText(rt);else _e.insertRawText(j)};LexicalClipboard_prod.$insertGeneratedNodes=y$3;LexicalClipboard_prod.copyToClipboard=async function(j,_e){if(B$2!==null)return!1;if(_e!==null)return new Promise(ot=>{j.update(()=>{ot(C$2(j,_e))})});var et=j.getRootElement();let tt=j._window==null?window.document:j._window.document,rt=u$2?(j._window||window).getSelection():null;if(et===null||rt===null)return!1;let nt=tt.createElement("span");return nt.style.cssText="position: fixed; top: -1000px;",nt.append(tt.createTextNode("#")),et.append(nt),et=new Range,et.setStart(nt,0),et.setEnd(nt,1),rt.removeAllRanges(),rt.addRange(et),new Promise(ot=>{let it=j.registerCommand(r$1.COPY_COMMAND,st=>(q$1.objectKlassEquals(st,ClipboardEvent)&&(it(),B$2!==null&&(window.clearTimeout(B$2),B$2=null),ot(C$2(j,st))),!0),r$1.COMMAND_PRIORITY_CRITICAL);B$2=window.setTimeout(()=>{it(),B$2=null,ot(!1)},50),tt.execCommand("copy"),nt.remove()})};const LexicalClipboard=LexicalClipboard_prod;var LexicalClipboard_1=LexicalClipboard,c$1=LexicalClipboard_1,g$1=LexicalSelection_1,h$1=LexicalUtils_1,k$2=Lexical_1;function l$1(j,_e){return typeof document.caretRangeFromPoint<"u"?(j=document.caretRangeFromPoint(j,_e),j===null?null:{node:j.startContainer,offset:j.startOffset}):document.caretPositionFromPoint!=="undefined"?(j=document.caretPositionFromPoint(j,_e),j===null?null:{node:j.offsetNode,offset:j.offset}):null}let n$1=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",p$1=n$1&&"documentMode"in document?document.documentMode:null,q=n$1&&"InputEvent"in window&&!p$1?"getTargetRanges"in new window.InputEvent("input"):!1,r=n$1&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),t$1=n$1&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,u$1=n$1&&/^(?=.*Chrome).*/i.test(navigator.userAgent),v$1=n$1&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!u$1,w$1=k$2.createCommand("DRAG_DROP_PASTE_FILE"),x$2=class sv extends k$2.ElementNode{static getType(){return"quote"}static clone(_e){return new sv(_e.__key)}constructor(_e){super(_e)}createDOM(_e){let et=document.createElement("blockquote");return h$1.addClassNamesToElement(et,_e.theme.quote),et}updateDOM(){return!1}static importDOM(){return{blockquote:()=>({conversion:y$2,priority:0})}}exportDOM(_e){if({element:_e}=super.exportDOM(_e),_e&&h$1.isHTMLElement(_e)){this.isEmpty()&&_e.append(document.createElement("br"));var et=this.getFormatType();_e.style.textAlign=et,(et=this.getDirection())&&(_e.dir=et)}return{element:_e}}static importJSON(_e){let et=z();return et.setFormat(_e.format),et.setIndent(_e.indent),et.setDirection(_e.direction),et}exportJSON(){return{...super.exportJSON(),type:"quote"}}insertNewAfter(_e,et){_e=k$2.$createParagraphNode();let tt=this.getDirection();return _e.setDirection(tt),this.insertAfter(_e,et),_e}collapseAtStart(){let _e=k$2.$createParagraphNode();return this.getChildren().forEach(et=>_e.append(et)),this.replace(_e),!0}};function z(){return k$2.$applyNodeReplacement(new x$2)}let B$1=class lv extends k$2.ElementNode{static getType(){return"heading"}static clone(_e){return new lv(_e.__tag,_e.__key)}constructor(_e,et){super(et),this.__tag=_e}getTag(){return this.__tag}createDOM(_e){let et=this.__tag,tt=document.createElement(et);return _e=_e.theme.heading,_e!==void 0&&h$1.addClassNamesToElement(tt,_e[et]),tt}updateDOM(){return!1}static importDOM(){return{h1:()=>({conversion:C$1,priority:0}),h2:()=>({conversion:C$1,priority:0}),h3:()=>({conversion:C$1,priority:0}),h4:()=>({conversion:C$1,priority:0}),h5:()=>({conversion:C$1,priority:0}),h6:()=>({conversion:C$1,priority:0}),p:_e=>(_e=_e.firstChild,_e!==null&&D(_e)?{conversion:()=>({node:null}),priority:3}:null),span:_e=>D(_e)?{conversion:()=>({node:E("h1")}),priority:3}:null}}exportDOM(_e){if({element:_e}=super.exportDOM(_e),_e&&h$1.isHTMLElement(_e)){this.isEmpty()&&_e.append(document.createElement("br"));var et=this.getFormatType();_e.style.textAlign=et,(et=this.getDirection())&&(_e.dir=et)}return{element:_e}}static importJSON(_e){let et=E(_e.tag);return et.setFormat(_e.format),et.setIndent(_e.indent),et.setDirection(_e.direction),et}exportJSON(){return{...super.exportJSON(),tag:this.getTag(),type:"heading",version:1}}insertNewAfter(_e,et=!0){let tt=_e?_e.anchor.offset:0,rt=tt!==this.getTextContentSize()&&_e?E(this.getTag()):k$2.$createParagraphNode(),nt=this.getDirection();return rt.setDirection(nt),this.insertAfter(rt,et),tt===0&&!this.isEmpty()&&_e&&(_e=k$2.$createParagraphNode(),_e.select(),this.replace(_e,!0)),rt}collapseAtStart(){let _e=this.isEmpty()?k$2.$createParagraphNode():E(this.getTag());return this.getChildren().forEach(et=>_e.append(et)),this.replace(_e),!0}extractWithChild(){return!0}};function D(j){return j.nodeName.toLowerCase()==="span"?j.style.fontSize==="26pt":!1}function C$1(j){let _e=j.nodeName.toLowerCase(),et=null;return(_e==="h1"||_e==="h2"||_e==="h3"||_e==="h4"||_e==="h5"||_e==="h6")&&(et=E(_e),j.style!==null&&et.setFormat(j.style.textAlign)),{node:et}}function y$2(j){let _e=z();return j.style!==null&&_e.setFormat(j.style.textAlign),{node:_e}}function E(j){return k$2.$applyNodeReplacement(new B$1(j))}function F(j,_e){j.preventDefault(),_e.update(()=>{let et=k$2.$getSelection(),tt=j instanceof InputEvent||j instanceof KeyboardEvent?null:j.clipboardData;tt!=null&&et!==null&&c$1.$insertDataTransferForRichText(tt,et,_e)},{tag:"paste"})}async function G(j,_e){await c$1.copyToClipboard(_e,h$1.objectKlassEquals(j,ClipboardEvent)?j:null),_e.update(()=>{let et=k$2.$getSelection();k$2.$isRangeSelection(et)?et.removeText():k$2.$isNodeSelection(et)&&et.getNodes().forEach(tt=>tt.remove())})}function H(j){let _e=null;if(j instanceof DragEvent?_e=j.dataTransfer:j instanceof ClipboardEvent&&(_e=j.clipboardData),_e===null)return[!1,[],!1];var et=_e.types;return j=et.includes("Files"),et=et.includes("text/html")||et.includes("text/plain"),[j,Array.from(_e.files),et]}function I(j){var _e=k$2.$getSelection();if(!k$2.$isRangeSelection(_e))return!1;let et=new Set;_e=_e.getNodes();for(let nt=0;nt<_e.length;nt++){var tt=_e[nt],rt=tt.getKey();et.has(rt)||(tt=h$1.$getNearestBlockElementAncestorOrThrow(tt),rt=tt.getKey(),tt.canIndent()&&!et.has(rt)&&(et.add(rt),j(tt)))}return 0{const _e=k$2.$getSelection();return k$2.$isNodeSelection(_e)?(_e.clear(),!0):!1},0),j.registerCommand(k$2.DELETE_CHARACTER_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.deleteCharacter(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.DELETE_WORD_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.deleteWord(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.DELETE_LINE_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.deleteLine(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.CONTROLLED_TEXT_INSERTION_COMMAND,_e=>{const et=k$2.$getSelection();if(typeof _e=="string")et!==null&&et.insertText(_e);else{if(et===null)return!1;const tt=_e.dataTransfer;tt!=null?c$1.$insertDataTransferForRichText(tt,et,j):k$2.$isRangeSelection(et)&&(_e=_e.data)&&et.insertText(_e)}return!0},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.REMOVE_TEXT_COMMAND,()=>{const _e=k$2.$getSelection();return k$2.$isRangeSelection(_e)?(_e.removeText(),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.FORMAT_TEXT_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.formatText(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.FORMAT_ELEMENT_COMMAND,_e=>{var et=k$2.$getSelection();if(!k$2.$isRangeSelection(et)&&!k$2.$isNodeSelection(et))return!1;et=et.getNodes();for(const tt of et)et=h$1.$findMatchingParent(tt,rt=>k$2.$isElementNode(rt)&&!rt.isInline()),et!==null&&et.setFormat(_e);return!0},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.INSERT_LINE_BREAK_COMMAND,_e=>{const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(et.insertLineBreak(_e),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.INSERT_PARAGRAPH_COMMAND,()=>{const _e=k$2.$getSelection();return k$2.$isRangeSelection(_e)?(_e.insertParagraph(),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.INSERT_TAB_COMMAND,()=>(k$2.$insertNodes([k$2.$createTabNode()]),!0),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.INDENT_CONTENT_COMMAND,()=>I(_e=>{const et=_e.getIndent();_e.setIndent(et+1)}),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.OUTDENT_CONTENT_COMMAND,()=>I(_e=>{const et=_e.getIndent();0{var et=k$2.$getSelection();if(k$2.$isNodeSelection(et)&&!J(_e.target)){if(_e=et.getNodes(),0<_e.length)return _e[0].selectPrevious(),!0}else if(k$2.$isRangeSelection(et)&&(et=k$2.$getAdjacentNode(et.focus,!0),!_e.shiftKey&&k$2.$isDecoratorNode(et)&&!et.isIsolated()&&!et.isInline()))return et.selectPrevious(),_e.preventDefault(),!0;return!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.KEY_ARROW_DOWN_COMMAND,_e=>{var et=k$2.$getSelection();if(k$2.$isNodeSelection(et)){if(_e=et.getNodes(),0<_e.length)return _e[0].selectNext(0,0),!0}else if(k$2.$isRangeSelection(et)){let tt=et.focus;if(tt.key==="root"&&tt.offset===k$2.$getRoot().getChildrenSize())return _e.preventDefault(),!0;if(et=k$2.$getAdjacentNode(et.focus,!1),!_e.shiftKey&&k$2.$isDecoratorNode(et)&&!et.isIsolated()&&!et.isInline())return et.selectNext(),_e.preventDefault(),!0}return!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.KEY_ARROW_LEFT_COMMAND,_e=>{const et=k$2.$getSelection();if(k$2.$isNodeSelection(et)){var tt=et.getNodes();if(0{const et=k$2.$getSelection();if(k$2.$isNodeSelection(et)&&!J(_e.target)){var tt=et.getNodes();if(0{if(J(_e.target))return!1;const et=k$2.$getSelection();if(!k$2.$isRangeSelection(et))return!1;_e.preventDefault(),{anchor:_e}=et;const tt=_e.getNode();return et.isCollapsed()&&_e.offset===0&&!k$2.$isRootNode(tt)&&0{if(J(_e.target))return!1;const et=k$2.$getSelection();return k$2.$isRangeSelection(et)?(_e.preventDefault(),j.dispatchCommand(k$2.DELETE_CHARACTER_COMMAND,!1)):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.KEY_ENTER_COMMAND,_e=>{const et=k$2.$getSelection();if(!k$2.$isRangeSelection(et))return!1;if(_e!==null){if((t$1||r||v$1)&&q)return!1;if(_e.preventDefault(),_e.shiftKey)return j.dispatchCommand(k$2.INSERT_LINE_BREAK_COMMAND,!1)}return j.dispatchCommand(k$2.INSERT_PARAGRAPH_COMMAND,void 0)},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.KEY_ESCAPE_COMMAND,()=>{const _e=k$2.$getSelection();return k$2.$isRangeSelection(_e)?(j.blur(),!0):!1},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.DROP_COMMAND,_e=>{const[,et]=H(_e);if(0{[_e]=H(_e);const et=k$2.$getSelection();return!(_e&&!k$2.$isRangeSelection(et))},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.DRAGOVER_COMMAND,_e=>{var[et]=H(_e);const tt=k$2.$getSelection();return et&&!k$2.$isRangeSelection(tt)?!1:(et=l$1(_e.clientX,_e.clientY),et!==null&&(et=k$2.$getNearestNodeFromDOMNode(et.node),k$2.$isDecoratorNode(et)&&_e.preventDefault()),!0)},k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.SELECT_ALL_COMMAND,()=>(k$2.$selectAll(),!0),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.COPY_COMMAND,_e=>(c$1.copyToClipboard(j,h$1.objectKlassEquals(_e,ClipboardEvent)?_e:null),!0),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.CUT_COMMAND,_e=>(G(_e,j),!0),k$2.COMMAND_PRIORITY_EDITOR),j.registerCommand(k$2.PASTE_COMMAND,_e=>{const[,et,tt]=H(_e);return 0w(j));return v(()=>{function tt(){let rt=w(j);et(rt)}return tt(),n.mergeRegister(j.registerUpdateListener(()=>{tt()}),j.registerEditableListener(()=>{tt()}))},[j]),_e}function y$1(j,_e){let[et,tt]=l.useState(()=>j.getDecorators());return v(()=>j.registerDecoratorListener(rt=>{p.flushSync(()=>{tt(rt)})}),[j]),l.useEffect(()=>{tt(j.getDecorators())},[j]),l.useMemo(()=>{let rt=[],nt=Object.keys(et);for(let ot=0;otj._onError(ut)},l.createElement(l.Suspense,{fallback:null},et[it])),lt=j.getElementByKey(it);lt!==null&&rt.push(p.createPortal(st,lt,it))}return rt},[_e,et,j])}function B(j){v(()=>n.mergeRegister(u.registerRichText(j),t.registerDragonSupport(j)),[j])}function C({content:j}){var[_e]=b$1.useLexicalComposerContext();_e=x$1(_e);let et=g();return _e?typeof j=="function"?j(et):j:null}LexicalRichTextPlugin_prod.RichTextPlugin=function({contentEditable:j,placeholder:_e,ErrorBoundary:et}){let[tt]=b$1.useLexicalComposerContext();return et=y$1(tt,et),B(tt),l.createElement(l.Fragment,null,j,l.createElement(C,{content:_e}),et)};const LexicalRichTextPlugin=LexicalRichTextPlugin_prod;var LexicalRichTextPlugin_1=LexicalRichTextPlugin,RichEditorContentType=(j=>(j.IMAGE="image",j.TEXT="text",j))(RichEditorContentType||{});const FAKE_PROTOCOL="fake:",CAN_USE_DOM=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";var useLexicalNodeSelection_prod={},b=LexicalComposerContext_1,f=Lexical_1,h=reactExports;function k$1(j,_e){return j.getEditorState().read(()=>{let et=f.$getNodeByKey(_e);return et===null?!1:et.isSelected()})}useLexicalNodeSelection_prod.useLexicalNodeSelection=function(j){let[_e]=b.useLexicalComposerContext(),[et,tt]=h.useState(()=>k$1(_e,j));h.useEffect(()=>{let ot=!0,it=_e.registerUpdateListener(()=>{ot&&tt(k$1(_e,j))});return()=>{ot=!1,it()}},[_e,j]);let rt=h.useCallback(ot=>{_e.update(()=>{let it=f.$getSelection();f.$isNodeSelection(it)||(it=f.$createNodeSelection(),f.$setSelection(it)),f.$isNodeSelection(it)&&(ot?it.add(j):it.delete(j))})},[_e,j]),nt=h.useCallback(()=>{_e.update(()=>{const ot=f.$getSelection();f.$isNodeSelection(ot)&&ot.clear()})},[_e]);return[et,rt,nt]};const useLexicalNodeSelection=useLexicalNodeSelection_prod;var useLexicalNodeSelection_1=useLexicalNodeSelection;function useEventCallback(j){const _e=reactExports.useRef(j);return reactExports.useLayoutEffect(()=>{_e.current=j}),reactExports.useCallback((...et)=>{const tt=_e.current;return tt(...et)},[])}const INSERT_IMAGE_COMMAND=Lexical_1.createCommand("INSERT_IMAGE_COMMAND"),INSERT_MULTIPLE_NODES_COMMAND=Lexical_1.createCommand("INSERT_MULTIPLE_NODES_COMMAND"),RIGHT_CLICK_IMAGE_COMMAND=Lexical_1.createCommand("RIGHT_CLICK_IMAGE_COMMAND");class RichEditorViewModel extends ViewModel{constructor(_e){super(),this.editor$=new State(void 0),this.maxHeight$=new State(void 0),this.resolveUrlByPath$=new State(void 0),this.resolveUrlByFile$=new State(void 0),this._resetEditorState=_e.resetEditorState,this._replaceImageSrc=_e.replaceImageSrc,this._extractEditorData=_e.extractEditorData}get requiredEditor(){const _e=this.editor$.getSnapshot();if(!_e)throw new Error("[RichEditor] editor is not prepared.");return _e}focus(){this.requiredEditor.focus()}getContent(){const et=this.requiredEditor.getEditorState();return this._extractEditorData(et)}insert(_e){this.requiredEditor.dispatchCommand(INSERT_MULTIPLE_NODES_COMMAND,{nodes:_e})}isEmpty(){return this.requiredEditor.getEditorState().read(()=>{const rt=Lexical_1.$getRoot(),nt=rt.getFirstChild();return nt?rt.getChildrenSize()===1&&nt instanceof Lexical_1.ElementNode?nt.isEmpty():!1:!0})}replaceImageSrc(_e,et){const tt=this.editor$.getSnapshot();if(!tt)throw new Error("[RichEditor] editor is not prepared.");this._replaceImageSrc(tt,_e,et)}reset(_e){const et=this.requiredEditor;this._resetEditorState(_e)(et)}async resolveUrlByFile(_e){const et=this.resolveUrlByFile$.getSnapshot();return et?et(_e):""}async resolveUrlByPath(_e){if(_e.startsWith(FAKE_PROTOCOL))return _e;const et=this.resolveUrlByPath$.getSnapshot();return(et==null?void 0:et(_e))??_e}}const RichEditorContextType=reactExports.createContext({viewmodel:new RichEditorViewModel({extractEditorData:()=>[],resetEditorState:()=>()=>{},replaceImageSrc:()=>{}})}),useRichEditorContext=()=>{const j=reactExports.useContext(RichEditorContextType),_e=reactExports.useContext(LexicalComposerContext_1.LexicalComposerContext),et=(_e==null?void 0:_e[0])??void 0;return et&&j.viewmodel.editor$.next(et),j},useAutoResize=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext(),{viewmodel:_e}=useRichEditorContext(),et=useStateValue(_e.maxHeight$);return useEventCallback(()=>{if(et===void 0)return;const rt=j==null?void 0:j.getRootElement();if(rt){rt.style.height="24px";const nt=Math.min(et,rt.scrollHeight);rt.style.height=`${nt}px`}})},imageCache=new Set;function useSuspenseImage(j){imageCache.has(j)||new Promise(_e=>{const et=new Image;et.src=j,et.onload=()=>{imageCache.add(j),_e(null)}})}function LazyImage({alt:j,className:_e,imageRef:et,src:tt,width:rt,height:nt,maxWidth:ot,onLoad:it}){return useSuspenseImage(tt),jsxRuntimeExports.jsx("img",{className:_e||void 0,src:tt,alt:j,ref:et,style:{height:nt,maxWidth:ot,width:rt,border:"1px solid #E5E5E5"},draggable:!1,onLoad:it})}const ImageComponent=j=>{const{viewmodel:_e}=useRichEditorContext(),et=useAutoResize(),{src:tt,alt:rt,nodeKey:nt,width:ot,height:it,maxWidth:st,isImageNode:lt}=j,[ut,ct]=reactExports.useState(tt),dt=reactExports.useRef(null),ft=reactExports.useRef(null),[pt,gt,mt]=useLexicalNodeSelection_1.useLexicalNodeSelection(nt),[bt]=LexicalComposerContext_1.useLexicalComposerContext(),[_t,xt]=reactExports.useState(null),yt=reactExports.useRef(null),Et=reactExports.useCallback(Mt=>{if(pt&&Lexical_1.$isNodeSelection(Lexical_1.$getSelection())){Mt.preventDefault();const Lt=Lexical_1.$getNodeByKey(nt);lt(Lt)&&Lt.remove()}return!1},[pt,nt,lt]),St=reactExports.useCallback(Mt=>{const Rt=Lexical_1.$getSelection(),Lt=ft.current;return pt&&Lexical_1.$isNodeSelection(Rt)&&Rt.getNodes().length===1&&Lt!==null&&Lt!==document.activeElement?(Mt.preventDefault(),Lt.focus(),!0):!1},[pt]),Tt=reactExports.useCallback(Mt=>Mt.target===dt.current?(Mt.preventDefault(),!0):!1,[]),kt=reactExports.useCallback(Mt=>ft.current===Mt.target?(Lexical_1.$setSelection(null),bt.update(()=>{gt(!0);const Rt=bt.getRootElement();Rt!==null&&Rt.focus()}),!0):!1,[bt,gt]),$t=reactExports.useCallback(Mt=>{const Rt=Mt;return Rt.target===dt.current?(Rt.shiftKey?gt(!pt):(mt(),gt(!0)),!0):!1},[pt,gt,mt]),Ct=reactExports.useCallback(Mt=>{bt.getEditorState().read(()=>{const Rt=Lexical_1.$getSelection();Mt.target.tagName==="IMG"&&Lexical_1.$isRangeSelection(Rt)&&Rt.getNodes().length===1&&bt.dispatchCommand(RIGHT_CLICK_IMAGE_COMMAND,Mt)})},[bt]);reactExports.useEffect(()=>{let Mt=!1;return _e.resolveUrlByPath(tt).then(Rt=>{Mt||ct(Rt)}),()=>{Mt=!0}},[_e,tt]),reactExports.useEffect(()=>{let Mt=!0;const Rt=bt.getRootElement(),Lt=LexicalUtils_1.mergeRegister(bt.registerUpdateListener(({editorState:Pt})=>{Mt&&xt(Pt.read(Lexical_1.$getSelection))}),bt.registerCommand(Lexical_1.SELECTION_CHANGE_COMMAND,(Pt,Gt)=>(yt.current=Gt,!1),Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.CLICK_COMMAND,$t,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(RIGHT_CLICK_IMAGE_COMMAND,$t,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.DRAGSTART_COMMAND,Tt,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.KEY_DELETE_COMMAND,Et,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.KEY_BACKSPACE_COMMAND,Et,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.KEY_ENTER_COMMAND,St,Lexical_1.COMMAND_PRIORITY_LOW),bt.registerCommand(Lexical_1.KEY_ESCAPE_COMMAND,kt,Lexical_1.COMMAND_PRIORITY_LOW));return Rt==null||Rt.addEventListener("contextmenu",Ct),()=>{Mt=!1,Lt(),Rt==null||Rt.removeEventListener("contextmenu",Ct)}},[bt,pt,nt,mt,Et,Tt,St,kt,$t,Ct,gt]);const It=pt&&Lexical_1.$isNodeSelection(_t),Ot=pt?`focused ${Lexical_1.$isNodeSelection(_t)?"draggable":""}`:void 0,jt=(ut.startsWith(FAKE_PROTOCOL)?ut.slice(FAKE_PROTOCOL.length):ut).replace(/#[\s\S]*$/,"");return jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:null,children:jsxRuntimeExports.jsx("div",{draggable:It,children:jsxRuntimeExports.jsx(LazyImage,{className:Ot,src:jt,alt:rt,imageRef:dt,width:ot,height:it,maxWidth:st,onLoad:et})})})};class ImageNode extends Lexical_1.DecoratorNode{constructor(_e,et,tt,rt,nt,ot){super(ot),this.src=_e,this.alt=et,this.maxWidth=tt,this.width=rt||"inherit",this.height=nt||"inherit"}static getType(){return RichEditorContentType.IMAGE}static clone(_e){return new ImageNode(_e.src,_e.alt,_e.maxWidth,_e.width,_e.height,_e.__key)}static importDOM(){return{img:_e=>({conversion:convertImageElement,priority:0})}}static importJSON(_e){const{alt:et,height:tt,width:rt,maxWidth:nt,src:ot}=_e;return $createImageNode({alt:et,height:tt,maxWidth:nt,src:ot,width:rt})}exportDOM(){const _e=document.createElement("img");return _e.setAttribute("src",this.src),_e.setAttribute("alt",this.alt),_e.setAttribute("width",this.width.toString()),_e.setAttribute("height",this.height.toString()),{element:_e}}exportJSON(){return{alt:this.getAltText(),height:this.height==="inherit"?0:this.height,maxWidth:this.maxWidth,src:this.getSrc(),type:RichEditorContentType.IMAGE,version:1,width:this.width==="inherit"?0:this.width}}setWidthAndHeight(_e,et){const tt=this.getWritable();tt.width=_e,tt.height=et}createDOM(_e){const et=document.createElement("span"),rt=_e.theme.image;return rt!==void 0&&(et.className=rt),et}updateDOM(){return!1}getSrc(){return this.src}getAltText(){return this.alt}decorate(){return jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:null,children:jsxRuntimeExports.jsx(ImageComponent,{src:this.src,alt:this.alt,width:this.width,height:this.height,maxWidth:this.maxWidth,nodeKey:this.getKey(),isImageNode:$isImageNode})})}}function $createImageNode({alt:j,height:_e,maxWidth:et=240,src:tt,width:rt,key:nt}){return Lexical_1.$applyNodeReplacement(new ImageNode(tt,j,et,rt,_e,nt))}function $isImageNode(j){return j instanceof ImageNode}function convertImageElement(j){if(j instanceof HTMLImageElement){const{alt:_e,src:et,width:tt,height:rt}=j;return et.startsWith("blob:")?null:{node:$createImageNode({alt:_e,height:rt,src:et,width:tt})}}return null}const CommandPlugin=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext();return React.useLayoutEffect(()=>LexicalUtils_1.mergeRegister(j.registerCommand(INSERT_MULTIPLE_NODES_COMMAND,_e=>{const{nodes:et}=_e;if(et.length===1&&et[0].type===RichEditorContentType.TEXT){const nt=et[0];return j.update(()=>{const ot=Lexical_1.$getSelection();ot&&ot.insertRawText(nt.value)}),!0}let tt;const rt=[];for(const nt of et)switch(nt.type){case RichEditorContentType.TEXT:{const ot=Lexical_1.$createTextNode(nt.value),it=Lexical_1.$createParagraphNode();tt=ot,it.append(ot),rt.push(it);break}case RichEditorContentType.IMAGE:{const ot=$createImageNode(nt),it=Lexical_1.$createParagraphNode();tt=ot,it.append(ot),rt.push(it);break}}return rt.length<=0||(Lexical_1.$insertNodes(rt),tt&&Lexical_1.$isRootOrShadowRoot(tt.getParentOrThrow())&&tt.selectEnd()),!0},Lexical_1.COMMAND_PRIORITY_EDITOR)),[j]),jsxRuntimeExports.jsx(React.Fragment,{})},ACCEPTABLE_IMAGE_TYPES=["image/","image/heic","image/heif","image/gif","image/webp"],DragDropPastePlugin=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext(),{viewmodel:_e}=useRichEditorContext();return reactExports.useLayoutEffect(()=>j.registerCommand(LexicalRichText_1.DRAG_DROP_PASTE,et=>{return tt(),!0;async function tt(){for(const rt of et)if(LexicalUtils_1.isMimeType(rt,ACCEPTABLE_IMAGE_TYPES)){const nt=rt.name,ot=await _e.resolveUrlByFile(rt);j.dispatchCommand(INSERT_IMAGE_COMMAND,{alt:nt,src:ot})}}},Lexical_1.COMMAND_PRIORITY_LOW),[j,_e]),jsxRuntimeExports.jsx(reactExports.Fragment,{})};class Point{constructor(_e,et){this._x=_e,this._y=et}get x(){return this._x}get y(){return this._y}equals(_e){return this.x===_e.x&&this.y===_e.y}calcDeltaXTo(_e){return this.x-_e.x}calcDeltaYTo(_e){return this.y-_e.y}calcHorizontalDistanceTo(_e){return Math.abs(this.calcDeltaXTo(_e))}calcVerticalDistance(_e){return Math.abs(this.calcDeltaYTo(_e))}calcDistanceTo(_e){const et=this.calcDeltaXTo(_e)**2,tt=this.calcDeltaYTo(_e)**2;return Math.sqrt(et+tt)}}function isPoint(j){return j instanceof Point}class Rect{constructor(_e,et,tt,rt){const[nt,ot]=et<=rt?[et,rt]:[rt,et],[it,st]=_e<=tt?[_e,tt]:[tt,_e];this._top=nt,this._right=st,this._left=it,this._bottom=ot}get top(){return this._top}get right(){return this._right}get bottom(){return this._bottom}get left(){return this._left}get width(){return Math.abs(this._left-this._right)}get height(){return Math.abs(this._bottom-this._top)}static fromLTRB(_e,et,tt,rt){return new Rect(_e,et,tt,rt)}static fromLWTH(_e,et,tt,rt){return new Rect(_e,tt,_e+et,tt+rt)}static fromPoints(_e,et){const{y:tt,x:rt}=_e,{y:nt,x:ot}=et;return Rect.fromLTRB(rt,tt,ot,nt)}static fromDOM(_e){const{top:et,width:tt,left:rt,height:nt}=_e.getBoundingClientRect();return Rect.fromLWTH(rt,tt,et,nt)}equals(_e){return _e.top===this._top&&_e.bottom===this._bottom&&_e.left===this._left&&_e.right===this._right}contains(_e){if(isPoint(_e)){const{x:et,y:tt}=_e,rt=ttthis._bottom,ot=etthis._right;return{reason:{isOnBottomSide:nt,isOnLeftSide:ot,isOnRightSide:it,isOnTopSide:rt},result:!rt&&!nt&&!ot&&!it}}else{const{top:et,left:tt,bottom:rt,right:nt}=_e;return et>=this._top&&et<=this._bottom&&rt>=this._top&&rt<=this._bottom&&tt>=this._left&&tt<=this._right&&nt>=this._left&&nt<=this._right}}intersectsWith(_e){const{left:et,top:tt,width:rt,height:nt}=_e,{left:ot,top:it,width:st,height:lt}=this,ut=et+rt>=ot+st?et+rt:ot+st,ct=tt+nt>=it+lt?tt+nt:it+lt,dt=et<=ot?et:ot,ft=tt<=it?tt:it;return ut-dt<=rt+st&&ct-ft<=nt+lt}generateNewRect({left:_e=this.left,top:et=this.top,right:tt=this.right,bottom:rt=this.bottom}){return new Rect(_e,et,tt,rt)}}const SPACE=4,TARGET_LINE_HALF_HEIGHT=2,DRAGGABLE_BLOCK_MENU_CLASSNAME="draggable-block-menu",DRAG_DATA_FORMAT="application/x-lexical-drag-block",TEXT_BOX_HORIZONTAL_PADDING=28,Downward=1,Upward=-1,Indeterminate=0,DraggableBlockPlugin=j=>{const{anchorElem:_e=document.body}=j,[et]=LexicalComposerContext_1.useLexicalComposerContext();return useDraggableBlockMenu(et,_e,et._editable)};let prevIndex=1/0;function getCurrentIndex(j){return j===0?1/0:prevIndex>=0&&prevIndexLexical_1.$getRoot().getChildrenKeys())}function getCollapsedMargins(j){const _e=(st,lt)=>st?parseFloat(window.getComputedStyle(st)[lt]):0,{marginTop:et,marginBottom:tt}=window.getComputedStyle(j),rt=_e(j.previousElementSibling,"marginBottom"),nt=_e(j.nextElementSibling,"marginTop"),ot=Math.max(parseFloat(et),rt);return{marginBottom:Math.max(parseFloat(tt),nt),marginTop:ot}}function getBlockElement(j,_e,et,tt=!1){const rt=j.getBoundingClientRect(),nt=getTopLevelNodeKeys(_e);let ot=null;return _e.getEditorState().read(()=>{if(tt){const lt=_e.getElementByKey(nt[0]),ut=_e.getElementByKey(nt[nt.length-1]),ct=lt==null?void 0:lt.getBoundingClientRect(),dt=ut==null?void 0:ut.getBoundingClientRect();if(ct&&dt&&(et.ydt.bottom&&(ot=ut),ot))return}let it=getCurrentIndex(nt.length),st=Indeterminate;for(;it>=0&&it{tt.transform=et})}function setTargetLine(j,_e,et,tt){const{top:rt,height:nt}=_e.getBoundingClientRect(),{top:ot,width:it}=tt.getBoundingClientRect(),{marginTop:st,marginBottom:lt}=getCollapsedMargins(_e);let ut=rt;et>=rt?ut+=nt+lt/2:ut-=st/2;const ct=ut-ot-TARGET_LINE_HALF_HEIGHT,dt=TEXT_BOX_HORIZONTAL_PADDING-SPACE,ft=j.style;ft.transform=`translate(${dt}px, ${ct}px)`,ft.width=`${it-(TEXT_BOX_HORIZONTAL_PADDING-SPACE)*2}px`,ft.opacity=".4"}function hideTargetLine(j){const _e=j==null?void 0:j.style;_e&&(_e.opacity="0",_e.transform="translate(-10000px, -10000px)")}function useDraggableBlockMenu(j,_e,et){const tt=_e.parentElement,rt=reactExports.useRef(null),nt=reactExports.useRef(null),ot=reactExports.useRef(!1),[it,st]=reactExports.useState(null);reactExports.useLayoutEffect(()=>{function ct(ft){const pt=ft.target;if(!isHTMLElement(pt)){st(null);return}if(isOnMenu(pt))return;const gt=getBlockElement(_e,j,ft);st(gt)}function dt(){st(null)}return tt==null||tt.addEventListener("mousemove",ct),tt==null||tt.addEventListener("mouseleave",dt),()=>{tt==null||tt.removeEventListener("mousemove",ct),tt==null||tt.removeEventListener("mouseleave",dt)}},[tt,_e,j]),reactExports.useEffect(()=>{rt.current&&setMenuPosition(it,rt.current,_e)},[_e,it]),reactExports.useEffect(()=>{function ct(ft){if(!ot.current)return!1;const[pt]=LexicalRichText_1.eventFiles(ft);if(pt)return!1;const{pageY:gt,target:mt}=ft;if(!isHTMLElement(mt))return!1;const bt=getBlockElement(_e,j,ft,!0),_t=nt.current;return bt===null||_t===null?!1:(setTargetLine(_t,bt,gt,_e),ft.preventDefault(),!0)}function dt(ft){if(!ot.current)return!1;const[pt]=LexicalRichText_1.eventFiles(ft);if(pt)return!1;const{target:gt,dataTransfer:mt,pageY:bt}=ft,_t=(mt==null?void 0:mt.getData(DRAG_DATA_FORMAT))||"",xt=Lexical_1.$getNodeByKey(_t);if(!xt||!isHTMLElement(gt))return!1;const yt=getBlockElement(_e,j,ft,!0);if(!yt)return!1;const Et=Lexical_1.$getNearestNodeFromDOMNode(yt);if(!Et)return!1;if(Et===xt)return!0;const St=yt.getBoundingClientRect().top;return bt>=St?Et.insertAfter(xt):Et.insertBefore(xt),st(null),!0}return LexicalUtils_1.mergeRegister(j.registerCommand(Lexical_1.DRAGOVER_COMMAND,ft=>ct(ft),Lexical_1.COMMAND_PRIORITY_LOW),j.registerCommand(Lexical_1.DROP_COMMAND,ft=>dt(ft),Lexical_1.COMMAND_PRIORITY_HIGH))},[_e,j]);const lt=ct=>{const dt=ct.dataTransfer;if(!dt||!it)return;setDragImage(dt,it);let ft="";j.update(()=>{const pt=Lexical_1.$getNearestNodeFromDOMNode(it);pt&&(ft=pt.getKey())}),ot.current=!0,dt.setData(DRAG_DATA_FORMAT,ft)},ut=()=>{ot.current=!1,hideTargetLine(nt.current)};return reactDomExports.createPortal(jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"icon draggable-block-menu",role:"button",ref:rt,draggable:!0,onDragStart:lt,onDragEnd:ut,children:jsxRuntimeExports.jsx("div",{className:et?"icon":""})}),jsxRuntimeExports.jsx("div",{className:"draggable-block-target-line",ref:nt})]}),_e)}const EditablePlugin=j=>{const{editable:_e}=j,[et]=LexicalComposerContext_1.useLexicalComposerContext();return reactExports.useEffect(()=>{et.setEditable(_e)},[et,_e]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},ImagesPlugin=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext();return reactExports.useLayoutEffect(()=>{if(!j.hasNodes([ImageNode]))throw new Error("[RichEditor] ImagesPlugin: ImageNode not registered on editor");return LexicalUtils_1.mergeRegister(j.registerCommand(INSERT_IMAGE_COMMAND,onInsertImage,Lexical_1.COMMAND_PRIORITY_EDITOR),j.registerCommand(Lexical_1.DRAGSTART_COMMAND,onDragStart,Lexical_1.COMMAND_PRIORITY_HIGH),j.registerCommand(Lexical_1.DRAGOVER_COMMAND,onDragover,Lexical_1.COMMAND_PRIORITY_LOW),j.registerCommand(Lexical_1.DROP_COMMAND,_e=>onDrop(_e,j),Lexical_1.COMMAND_PRIORITY_HIGH))},[j]),jsxRuntimeExports.jsx(reactExports.Fragment,{})};let _transparentImage;const getTransparentImage=()=>{if(_transparentImage===void 0){const j="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";_transparentImage=document.createElement("img"),_transparentImage.src=j}return _transparentImage};function onInsertImage(j){const _e=$createImageNode(j);return Lexical_1.$insertNodes([_e]),Lexical_1.$isRootOrShadowRoot(_e.getParentOrThrow())&&LexicalUtils_1.$wrapNodeInElement(_e,Lexical_1.$createParagraphNode).selectEnd(),!0}function onDragStart(j){const _e=getImageNodeInSelection();if(!_e)return!1;const et=j.dataTransfer;if(!et)return!1;const tt=getTransparentImage();return et.setData("text/plain","_"),et.setDragImage(tt,0,0),et.setData("application/x-lexical-drag",JSON.stringify({type:RichEditorContentType.IMAGE,data:{alt:_e.alt,height:_e.height,key:_e.getKey(),maxWidth:_e.maxWidth,src:_e.src,width:_e.width}})),!0}function onDragover(j){return getImageNodeInSelection()?(canDropImage(j)||j.preventDefault(),!0):!1}function onDrop(j,_e){const et=getImageNodeInSelection();if(!et)return!1;const tt=getDragImageData(j);if(!tt)return!1;if(j.preventDefault(),canDropImage(j)){const rt=getDragSelection(j);et.remove();const nt=Lexical_1.$createRangeSelection();rt!=null&&nt.applyDOMRange(rt),Lexical_1.$setSelection(nt),_e.dispatchCommand(INSERT_IMAGE_COMMAND,tt)}return!0}function getImageNodeInSelection(){const j=Lexical_1.$getSelection();if(!Lexical_1.$isNodeSelection(j))return null;const et=j.getNodes()[0];return $isImageNode(et)?et:null}function getDragImageData(j){var et;const _e=(et=j.dataTransfer)==null?void 0:et.getData("application/x-lexical-drag");if(!_e)return null;try{const{type:tt,data:rt}=JSON.parse(_e);return tt===RichEditorContentType.IMAGE?rt:null}catch{return null}}function canDropImage(j){const _e=j.target;return!!(_e&&_e instanceof HTMLElement&&!_e.closest("code, span.editor-image")&&_e.parentElement&&_e.parentElement.closest("div.ContentEditable__root"))}const getDOMSelection=j=>CAN_USE_DOM?(j||window).getSelection():null;function getDragSelection(j){const _e=j,et=_e.target,tt=et==null?null:et.nodeType===9?et.defaultView:et.ownerDocument.defaultView,rt=getDOMSelection(tt);let nt;if(document.caretRangeFromPoint)nt=document.caretRangeFromPoint(_e.clientX,_e.clientY);else if(_e.rangeParent&&rt!==null)rt.collapse(_e.rangeParent,_e.rangeOffset||0),nt=rt.getRangeAt(0);else throw Error("[RichEditor] ImagesPlugin: Cannot get the selection when dragging");return nt}const OnKeyDownPlugin=j=>{const[_e]=LexicalComposerContext_1.useLexicalComposerContext(),et=reactExports.useRef(j.onKeyDown);return reactExports.useLayoutEffect(()=>{const tt=rt=>{var nt;(nt=et.current)==null||nt.call(et,rt)};return _e.registerRootListener((rt,nt)=>{nt!==null&&nt.removeEventListener("keydown",tt),rt!==null&&rt.addEventListener("keydown",tt)})},[_e]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},PlainContentPastePlugin=()=>{const[j]=LexicalComposerContext_1.useLexicalComposerContext();return reactExports.useLayoutEffect(()=>LexicalUtils_1.mergeRegister(j.registerUpdateListener(_e=>{_e.tags.has("paste")&&j.update(()=>{_e.dirtyLeaves.forEach(et=>{const tt=Lexical_1.$getNodeByKey(et);if(Lexical_1.$isTextNode(tt)){const rt=Lexical_1.$copyNode(tt);rt.setFormat(0),rt.setStyle(""),tt.replace(rt)}})})}),j.registerNodeTransform(Lexical_1.TextNode,_e=>{const et=_e.getParentOrThrow();if(LexicalLink_1.$isLinkNode(et)){const tt=Lexical_1.$createTextNode(et.__url);et.insertBefore(tt),et.remove()}})),[j]),jsxRuntimeExports.jsx(reactExports.Fragment,{})},resetEditorState=j=>_e=>{_e.update(()=>{const et=Lexical_1.$getRoot();et.clear();for(const tt of j)if(tt!=null){if(typeof tt=="string"){const rt=Lexical_1.$createTextNode(tt),nt=Lexical_1.$createParagraphNode();nt.append(rt),et.append(nt);continue}if(typeof tt=="object"){switch(tt.type){case RichEditorContentType.IMAGE:{const rt=$createImageNode({alt:tt.alt,src:tt.src}),nt=Lexical_1.$createParagraphNode();nt.append(rt),et.append(nt);break}case RichEditorContentType.TEXT:{const rt=Lexical_1.$createTextNode(tt.value),nt=Lexical_1.$createParagraphNode();nt.append(rt),et.append(nt);break}default:throw console.log("item:",tt),new TypeError(`[resetEditorState] unknown rich-editor content type: ${tt.type}`)}continue}console.error("[resetEditorState] unknown rich-editor data:",tt)}})},RootType=Lexical_1.RootNode.getType(),ParagraphType=Lexical_1.ParagraphNode.getType(),TextType=Lexical_1.TextNode.getType(),ImageType=ImageNode.getType(),LineBreakType=Lexical_1.LineBreakNode.getType(),extractEditorData=j=>{const _e=j.toJSON(),et=[];for(const rt of _e.root.children)tt(rt);return et;function tt(rt){switch(rt.type){case ImageType:{const{src:nt,alt:ot}=rt;if(nt.startsWith(FAKE_PROTOCOL)){const it=et[et.length-1];(it==null?void 0:it.type)===RichEditorContentType.TEXT&&(it.value+=` `);break}et.push({type:RichEditorContentType.IMAGE,src:nt,alt:ot});break}case LineBreakType:{const nt=et[et.length-1];(nt==null?void 0:nt.type)===RichEditorContentType.TEXT&&(nt.value+=` -`);break}case ParagraphType:{const nt=rt.children;for(const ot of nt)tt(ot);break}case TextType:{const nt=rt.text,ot=et[et.length-1];(ot==null?void 0:ot.type)===RichEditorContentType.TEXT?ot.value+=nt:et.push({type:RichEditorContentType.TEXT,value:nt});break}default:throw new TypeError(`[RichEditor] [extractEditorData] Unknown node.type: (${rt.type})`)}}},replaceImageSrc=(j,_e,et)=>{j.update(()=>{const tt=Lexical_1.$getRoot();rt(tt);function rt(nt){switch(nt.getType()){case RootType:case ParagraphType:for(const ot of nt.getChildren())rt(ot);break;case ImageType:{const ot=nt;if(ot.getSrc()===_e){const it=$createImageNode({alt:ot.getAltText(),src:et});ot.replace(it)}break}}}})};class RichEditor extends reactExports.Component{constructor(_e){super(_e),this.state={floatingAnchorElem:null};const{editable:et=!0,initialContent:tt}=this.props;this.initialConfig={namespace:"react-simple-rich-editor",theme:{ltr:"ltr",rtl:"rtl",placeholder:classes.editorPlaceholder,paragraph:classes.editorParagraph},nodes:[ImageNode,LexicalLink_1.LinkNode],editable:et,editorState:tt?resetEditorState(tt):null,onError:rt=>{console.error(rt)}},this.onKeyDown=this.onKeyDown.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),this.onChange=this.onChange.bind(this),this.onEditorInputWrapperRef=this.onEditorInputWrapperRef.bind(this)}render(){const{initialConfig:_e,onKeyDown:et,onFocus:tt,onBlur:rt,onChange:nt,onEditorInputWrapperRef:ot}=this,{editable:it=!0,placeholder:st="Enter some text...",pluginsBeforeRichEditors:lt=[],pluginsAfterRichEditors:ut=[]}=this.props,{floatingAnchorElem:ct}=this.state,dt=mergeStyles$1(classes.editorContainer,this.props.editorContainerCls),ft=mergeStyles$1(classes.editorInput,this.props.editorInputCls),pt=mergeStyles$1(classes.editorInputBox,this.props.editorInputBoxCls),gt=mergeStyles$1(classes.editorPlaceholder,this.props.editorPlaceholderCls),vt=jsxRuntimeExports.jsx("div",{ref:ot,className:pt,children:jsxRuntimeExports.jsx(LexicalContentEditable_1.ContentEditable,{onFocus:tt,onBlur:rt,className:ft})});return jsxRuntimeExports.jsxs(LexicalComposer_1.LexicalComposer,{initialConfig:_e,children:[jsxRuntimeExports.jsx(EditablePlugin,{editable:it}),jsxRuntimeExports.jsx(CommandPlugin,{}),jsxRuntimeExports.jsxs("div",{className:dt,children:[lt,jsxRuntimeExports.jsx(LexicalRichTextPlugin_1.RichTextPlugin,{contentEditable:vt,placeholder:jsxRuntimeExports.jsx("div",{className:gt,children:st}),ErrorBoundary:LexicalErrorBoundary$1}),ut,jsxRuntimeExports.jsx(OnKeyDownPlugin,{onKeyDown:et}),jsxRuntimeExports.jsx(LexicalOnChangePlugin_1.OnChangePlugin,{onChange:nt}),jsxRuntimeExports.jsx(DragDropPastePlugin,{}),jsxRuntimeExports.jsx(PlainContentPastePlugin,{}),jsxRuntimeExports.jsx(ImagesPlugin,{}),jsxRuntimeExports.jsx(LexicalHistoryPlugin_1.HistoryPlugin,{}),ct&&jsxRuntimeExports.jsx(DraggableBlockPlugin,{anchorElem:ct})]})]})}onKeyDown(_e){var et,tt;(tt=(et=this.props).onKeyDown)==null||tt.call(et,_e)}onFocus(_e){var et,tt;(tt=(et=this.props).onFocus)==null||tt.call(et,_e)}onBlur(_e){var et,tt;(tt=(et=this.props).onBlur)==null||tt.call(et,_e)}onChange(_e){var et,tt;(tt=(et=this.props).onChange)==null||tt.call(et,_e)}onEditorInputWrapperRef(_e){_e!==null&&this.setState({floatingAnchorElem:_e})}}const classes=mergeStyleSets({editorContainer:{boxSizing:"border-box",position:"relative"},editorInputBox:{boxSizing:"border-box",overflow:"auto",border:"none",position:"relative",fontWeight:"400",textAlign:"left"},editorInput:{overflow:"auto",boxSizing:"border-box",resize:"none",fontSize:"15px",position:"relative",tabSize:"1",outline:"0","> :last-child":{marginBottom:0}},editorPlaceholder:{boxSizing:"border-box",color:"#999",overflow:"hidden",position:"absolute",textOverflow:"ellipsis",top:"0px",left:"0px",fontSize:"15px",userSelect:"none",display:"inline-block",pointerEvents:"none",width:"100%"},editorParagraph:{margin:"0 0 15px 0",position:"relative"}}),ReactRichEditor=reactExports.forwardRef((j,_e)=>{const[et]=reactExports.useState(()=>new RichEditorViewModel({extractEditorData,replaceImageSrc,resetEditorState})),tt=reactExports.useMemo(()=>({viewmodel:et}),[et]);return et.resolveUrlByFile$.next(j.resolveUrlByFile),et.resolveUrlByPath$.next(j.resolveUrlByPath),reactExports.useImperativeHandle(_e,()=>({focus:()=>{tt.viewmodel.focus()},getContent:()=>tt.viewmodel.getContent(),insert:rt=>{tt.viewmodel.insert(rt)},isEmpty:()=>tt.viewmodel.isEmpty(),replaceImageSrc:(rt,nt)=>{tt.viewmodel.replaceImageSrc(rt,nt)},reset:rt=>{tt.viewmodel.reset(rt)}})),jsxRuntimeExports.jsx(RichEditorContextType.Provider,{value:tt,children:jsxRuntimeExports.jsx(RichEditor,{...j})})});ReactRichEditor.displayName="ReactRichEditor";makeStyles({editor:{...shorthands.padding("8px"),...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),boxSizing:"border-box",display:"block",width:"100%",userSelect:"none",position:"relative"}});makeStyles({chatbox:{...shorthands.borderRadius("8px"),display:"flex",flexDirection:"column",alignItems:"stretch",backgroundColor:tokens.colorNeutralBackground1,width:"100%",height:"100%",boxShadow:"0px 6.4px 14.4px rgba(0, 0, 0, 0.132), 0px 1.2px 3.6px rgba(0, 0, 0, 0.108)","::-webkit-scrollbar":{width:"4px",backgroundColor:tokens.colorNeutralBackground1Hover},"::-webkit-scrollbar-thumb":{backgroundColor:tokens.colorScrollbarOverlay,...shorthands.border("1px","solid",tokens.colorNeutralBackground1),...shorthands.borderRadius("9999px")},"::-webkit-scrollbar-thumb:hover":{backgroundColor:tokens.colorNeutralForeground1Static},"::-webkit-scrollbar-track":{...shorthands.borderRadius("9999px"),backgroundColor:"transparent"}},header:{...shorthands.flex(0,0,"auto")},main:{...shorthands.flex(1,1,"auto"),...shorthands.overflow("hidden","auto")},footer:{...shorthands.flex(0,0,"auto")}});makeStyles({header:{},topbar:{...shorthands.padding("0px","16px"),...shorthands.borderBottom("1px","solid",tokens.colorNeutralBackground5),boxSizing:"border-box",display:"flex",justifyContent:"space-between",alignItems:"center",height:"48px"},toolbarTitle:{display:"flex",alignItems:"center",columnGap:"2px"},toolbarActionButton:{color:tokens.colorNeutralForeground2}});makeStyles({main:{...shorthands.padding("0","16px"),...shorthands.overflow("hidden","auto"),height:"100%"}});makeStyles({footer:{...shorthands.padding("16px"),boxSizing:"border-box"},footerContainer:{display:"flex"},leftToolbar:{...shorthands.flex(0,0,"auto")},editor:{...shorthands.flex(1),boxSizing:"border-box"},validation:{boxSizing:"border-box"},validationInner:{...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),...shorthands.margin("8px","0px"),...shorthands.padding("2px","8px"),backgroundColor:tokens.colorStatusWarningBackground1,color:tokens.colorStatusWarningForeground1}});function setMetaTag(j,_e){try{var et=global,tt=et.document;if(typeof tt<"u"&&tt.createElement&&tt.head&&tt.head.appendChild){var rt=tt.querySelector('html meta[name="'.concat(encodeURI(j),'"]'))||tt.createElement("meta");rt.setAttribute("name",j),rt.setAttribute("content",_e),tt.head.appendChild(rt)}}catch{}}function addVersionToMetaTag(){setMetaTag("react-scroll-to-bottom:version","4.2.0")}var check$1=function(j){return j&&j.Math===Math&&j},global$x=check$1(typeof globalThis=="object"&&globalThis)||check$1(typeof window=="object"&&window)||check$1(typeof self=="object"&&self)||check$1(typeof commonjsGlobal=="object"&&commonjsGlobal)||check$1(typeof commonjsGlobal=="object"&&commonjsGlobal)||function(){return this}()||Function("return this")(),fails$v=function(j){try{return!!j()}catch{return!0}},fails$u=fails$v,functionBindNative=!fails$u(function(){var j=(function(){}).bind();return typeof j!="function"||j.hasOwnProperty("prototype")}),NATIVE_BIND$3=functionBindNative,FunctionPrototype$5=Function.prototype,apply$3=FunctionPrototype$5.apply,call$c=FunctionPrototype$5.call,functionApply=typeof Reflect=="object"&&Reflect.apply||(NATIVE_BIND$3?call$c.bind(apply$3):function(){return call$c.apply(apply$3,arguments)}),NATIVE_BIND$2=functionBindNative,FunctionPrototype$4=Function.prototype,call$b=FunctionPrototype$4.call,uncurryThisWithBind=NATIVE_BIND$2&&FunctionPrototype$4.bind.bind(call$b,call$b),functionUncurryThis=NATIVE_BIND$2?uncurryThisWithBind:function(j){return function(){return call$b.apply(j,arguments)}},uncurryThis$l=functionUncurryThis,toString$f=uncurryThis$l({}.toString),stringSlice$1=uncurryThis$l("".slice),classofRaw$4=function(j){return stringSlice$1(toString$f(j),8,-1)},classofRaw$3=classofRaw$4,uncurryThis$k=functionUncurryThis,functionUncurryThisClause=function(j){if(classofRaw$3(j)==="Function")return uncurryThis$k(j)},documentAll=typeof document=="object"&&document.all,isCallable$t=typeof documentAll>"u"&&documentAll!==void 0?function(j){return typeof j=="function"||j===documentAll}:function(j){return typeof j=="function"},objectGetOwnPropertyDescriptor$1={},fails$t=fails$v,descriptors$1=!fails$t(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),NATIVE_BIND$1=functionBindNative,call$a=Function.prototype.call,functionCall=NATIVE_BIND$1?call$a.bind(call$a):function(){return call$a.apply(call$a,arguments)},objectPropertyIsEnumerable$1={},$propertyIsEnumerable$2={}.propertyIsEnumerable,getOwnPropertyDescriptor$9=Object.getOwnPropertyDescriptor,NASHORN_BUG$1=getOwnPropertyDescriptor$9&&!$propertyIsEnumerable$2.call({1:2},1);objectPropertyIsEnumerable$1.f=NASHORN_BUG$1?function j(_e){var et=getOwnPropertyDescriptor$9(this,_e);return!!et&&et.enumerable}:$propertyIsEnumerable$2;var createPropertyDescriptor$8=function(j,_e){return{enumerable:!(j&1),configurable:!(j&2),writable:!(j&4),value:_e}},uncurryThis$j=functionUncurryThis,fails$s=fails$v,classof$e=classofRaw$4,$Object$4=Object,split$1=uncurryThis$j("".split),indexedObject$1=fails$s(function(){return!$Object$4("z").propertyIsEnumerable(0)})?function(j){return classof$e(j)==="String"?split$1(j,""):$Object$4(j)}:$Object$4,isNullOrUndefined$4=function(j){return j==null},isNullOrUndefined$3=isNullOrUndefined$4,$TypeError$a=TypeError,requireObjectCoercible$8=function(j){if(isNullOrUndefined$3(j))throw new $TypeError$a("Can't call method on "+j);return j},IndexedObject$2=indexedObject$1,requireObjectCoercible$7=requireObjectCoercible$8,toIndexedObject$e=function(j){return IndexedObject$2(requireObjectCoercible$7(j))},isCallable$s=isCallable$t,isObject$h=function(j){return typeof j=="object"?j!==null:isCallable$s(j)},path$h={},path$g=path$h,global$w=global$x,isCallable$r=isCallable$t,aFunction$1=function(j){return isCallable$r(j)?j:void 0},getBuiltIn$f=function(j,_e){return arguments.length<2?aFunction$1(path$g[j])||aFunction$1(global$w[j]):path$g[j]&&path$g[j][_e]||global$w[j]&&global$w[j][_e]},uncurryThis$i=functionUncurryThis,objectIsPrototypeOf=uncurryThis$i({}.isPrototypeOf),engineUserAgent$1=typeof navigator<"u"&&String(navigator.userAgent)||"",global$v=global$x,userAgent$1=engineUserAgent$1,process$2=global$v.process,Deno$1=global$v.Deno,versions$1=process$2&&process$2.versions||Deno$1&&Deno$1.version,v8$1=versions$1&&versions$1.v8,match$1,version$1;v8$1&&(match$1=v8$1.split("."),version$1=match$1[0]>0&&match$1[0]<4?1:+(match$1[0]+match$1[1]));!version$1&&userAgent$1&&(match$1=userAgent$1.match(/Edge\/(\d+)/),(!match$1||match$1[1]>=74)&&(match$1=userAgent$1.match(/Chrome\/(\d+)/),match$1&&(version$1=+match$1[1])));var engineV8Version$1=version$1,V8_VERSION$3=engineV8Version$1,fails$r=fails$v,global$u=global$x,$String$4=global$u.String,symbolConstructorDetection=!!Object.getOwnPropertySymbols&&!fails$r(function(){var j=Symbol("symbol detection");return!$String$4(j)||!(Object(j)instanceof Symbol)||!Symbol.sham&&V8_VERSION$3&&V8_VERSION$3<41}),NATIVE_SYMBOL$7=symbolConstructorDetection,useSymbolAsUid$1=NATIVE_SYMBOL$7&&!Symbol.sham&&typeof Symbol.iterator=="symbol",getBuiltIn$e=getBuiltIn$f,isCallable$q=isCallable$t,isPrototypeOf$8=objectIsPrototypeOf,USE_SYMBOL_AS_UID$3=useSymbolAsUid$1,$Object$3=Object,isSymbol$8=USE_SYMBOL_AS_UID$3?function(j){return typeof j=="symbol"}:function(j){var _e=getBuiltIn$e("Symbol");return isCallable$q(_e)&&isPrototypeOf$8(_e.prototype,$Object$3(j))},$String$3=String,tryToString$6=function(j){try{return $String$3(j)}catch{return"Object"}},isCallable$p=isCallable$t,tryToString$5=tryToString$6,$TypeError$9=TypeError,aCallable$5=function(j){if(isCallable$p(j))return j;throw new $TypeError$9(tryToString$5(j)+" is not a function")},aCallable$4=aCallable$5,isNullOrUndefined$2=isNullOrUndefined$4,getMethod$6=function(j,_e){var et=j[_e];return isNullOrUndefined$2(et)?void 0:aCallable$4(et)},call$9=functionCall,isCallable$o=isCallable$t,isObject$g=isObject$h,$TypeError$8=TypeError,ordinaryToPrimitive$3=function(j,_e){var et,tt;if(_e==="string"&&isCallable$o(et=j.toString)&&!isObject$g(tt=call$9(et,j))||isCallable$o(et=j.valueOf)&&!isObject$g(tt=call$9(et,j))||_e!=="string"&&isCallable$o(et=j.toString)&&!isObject$g(tt=call$9(et,j)))return tt;throw new $TypeError$8("Can't convert object to primitive value")},shared$c={exports:{}},global$t=global$x,defineProperty$d=Object.defineProperty,defineGlobalProperty$1=function(j,_e){try{defineProperty$d(global$t,j,{value:_e,configurable:!0,writable:!0})}catch{global$t[j]=_e}return _e},global$s=global$x,defineGlobalProperty=defineGlobalProperty$1,SHARED$1="__core-js_shared__",store$7=global$s[SHARED$1]||defineGlobalProperty(SHARED$1,{}),sharedStore$1=store$7,store$6=sharedStore$1;(shared$c.exports=function(j,_e){return store$6[j]||(store$6[j]=_e!==void 0?_e:{})})("versions",[]).push({version:"3.35.1",mode:"pure",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.35.1/LICENSE",source:"https://github.com/zloirock/core-js"});var sharedExports$1=shared$c.exports,requireObjectCoercible$6=requireObjectCoercible$8,$Object$2=Object,toObject$c=function(j){return $Object$2(requireObjectCoercible$6(j))},uncurryThis$h=functionUncurryThis,toObject$b=toObject$c,hasOwnProperty$2=uncurryThis$h({}.hasOwnProperty),hasOwnProperty_1$1=Object.hasOwn||function j(_e,et){return hasOwnProperty$2(toObject$b(_e),et)},uncurryThis$g=functionUncurryThis,id$1=0,postfix$1=Math.random(),toString$e=uncurryThis$g(1 .toString),uid$6=function(j){return"Symbol("+(j===void 0?"":j)+")_"+toString$e(++id$1+postfix$1,36)},global$r=global$x,shared$b=sharedExports$1,hasOwn$k=hasOwnProperty_1$1,uid$5=uid$6,NATIVE_SYMBOL$6=symbolConstructorDetection,USE_SYMBOL_AS_UID$2=useSymbolAsUid$1,Symbol$5=global$r.Symbol,WellKnownSymbolsStore$3=shared$b("wks"),createWellKnownSymbol$1=USE_SYMBOL_AS_UID$2?Symbol$5.for||Symbol$5:Symbol$5&&Symbol$5.withoutSetter||uid$5,wellKnownSymbol$o=function(j){return hasOwn$k(WellKnownSymbolsStore$3,j)||(WellKnownSymbolsStore$3[j]=NATIVE_SYMBOL$6&&hasOwn$k(Symbol$5,j)?Symbol$5[j]:createWellKnownSymbol$1("Symbol."+j)),WellKnownSymbolsStore$3[j]},call$8=functionCall,isObject$f=isObject$h,isSymbol$7=isSymbol$8,getMethod$5=getMethod$6,ordinaryToPrimitive$2=ordinaryToPrimitive$3,wellKnownSymbol$n=wellKnownSymbol$o,$TypeError$7=TypeError,TO_PRIMITIVE$1=wellKnownSymbol$n("toPrimitive"),toPrimitive$9=function(j,_e){if(!isObject$f(j)||isSymbol$7(j))return j;var et=getMethod$5(j,TO_PRIMITIVE$1),tt;if(et){if(_e===void 0&&(_e="default"),tt=call$8(et,j,_e),!isObject$f(tt)||isSymbol$7(tt))return tt;throw new $TypeError$7("Can't convert object to primitive value")}return _e===void 0&&(_e="number"),ordinaryToPrimitive$2(j,_e)},toPrimitive$8=toPrimitive$9,isSymbol$6=isSymbol$8,toPropertyKey$8=function(j){var _e=toPrimitive$8(j,"string");return isSymbol$6(_e)?_e:_e+""},global$q=global$x,isObject$e=isObject$h,document$2=global$q.document,EXISTS$3=isObject$e(document$2)&&isObject$e(document$2.createElement),documentCreateElement$3=function(j){return EXISTS$3?document$2.createElement(j):{}},DESCRIPTORS$j=descriptors$1,fails$q=fails$v,createElement$1=documentCreateElement$3,ie8DomDefine$1=!DESCRIPTORS$j&&!fails$q(function(){return Object.defineProperty(createElement$1("div"),"a",{get:function(){return 7}}).a!==7}),DESCRIPTORS$i=descriptors$1,call$7=functionCall,propertyIsEnumerableModule$2=objectPropertyIsEnumerable$1,createPropertyDescriptor$7=createPropertyDescriptor$8,toIndexedObject$d=toIndexedObject$e,toPropertyKey$7=toPropertyKey$8,hasOwn$j=hasOwnProperty_1$1,IE8_DOM_DEFINE$3=ie8DomDefine$1,$getOwnPropertyDescriptor$3=Object.getOwnPropertyDescriptor;objectGetOwnPropertyDescriptor$1.f=DESCRIPTORS$i?$getOwnPropertyDescriptor$3:function j(_e,et){if(_e=toIndexedObject$d(_e),et=toPropertyKey$7(et),IE8_DOM_DEFINE$3)try{return $getOwnPropertyDescriptor$3(_e,et)}catch{}if(hasOwn$j(_e,et))return createPropertyDescriptor$7(!call$7(propertyIsEnumerableModule$2.f,_e,et),_e[et])};var fails$p=fails$v,isCallable$n=isCallable$t,replacement$1=/#|\.prototype\./,isForced$3=function(j,_e){var et=data$1[normalize$2(j)];return et===POLYFILL$1?!0:et===NATIVE$1?!1:isCallable$n(_e)?fails$p(_e):!!_e},normalize$2=isForced$3.normalize=function(j){return String(j).replace(replacement$1,".").toLowerCase()},data$1=isForced$3.data={},NATIVE$1=isForced$3.NATIVE="N",POLYFILL$1=isForced$3.POLYFILL="P",isForced_1$1=isForced$3,uncurryThis$f=functionUncurryThisClause,aCallable$3=aCallable$5,NATIVE_BIND=functionBindNative,bind$3=uncurryThis$f(uncurryThis$f.bind),functionBindContext=function(j,_e){return aCallable$3(j),_e===void 0?j:NATIVE_BIND?bind$3(j,_e):function(){return j.apply(_e,arguments)}},objectDefineProperty$1={},DESCRIPTORS$h=descriptors$1,fails$o=fails$v,v8PrototypeDefineBug=DESCRIPTORS$h&&fails$o(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),isObject$d=isObject$h,$String$2=String,$TypeError$6=TypeError,anObject$h=function(j){if(isObject$d(j))return j;throw new $TypeError$6($String$2(j)+" is not an object")},DESCRIPTORS$g=descriptors$1,IE8_DOM_DEFINE$2=ie8DomDefine$1,V8_PROTOTYPE_DEFINE_BUG$1=v8PrototypeDefineBug,anObject$g=anObject$h,toPropertyKey$6=toPropertyKey$8,$TypeError$5=TypeError,$defineProperty$2=Object.defineProperty,$getOwnPropertyDescriptor$2=Object.getOwnPropertyDescriptor,ENUMERABLE="enumerable",CONFIGURABLE$2="configurable",WRITABLE="writable";objectDefineProperty$1.f=DESCRIPTORS$g?V8_PROTOTYPE_DEFINE_BUG$1?function j(_e,et,tt){if(anObject$g(_e),et=toPropertyKey$6(et),anObject$g(tt),typeof _e=="function"&&et==="prototype"&&"value"in tt&&WRITABLE in tt&&!tt[WRITABLE]){var rt=$getOwnPropertyDescriptor$2(_e,et);rt&&rt[WRITABLE]&&(_e[et]=tt.value,tt={configurable:CONFIGURABLE$2 in tt?tt[CONFIGURABLE$2]:rt[CONFIGURABLE$2],enumerable:ENUMERABLE in tt?tt[ENUMERABLE]:rt[ENUMERABLE],writable:!1})}return $defineProperty$2(_e,et,tt)}:$defineProperty$2:function j(_e,et,tt){if(anObject$g(_e),et=toPropertyKey$6(et),anObject$g(tt),IE8_DOM_DEFINE$2)try{return $defineProperty$2(_e,et,tt)}catch{}if("get"in tt||"set"in tt)throw new $TypeError$5("Accessors not supported");return"value"in tt&&(_e[et]=tt.value),_e};var DESCRIPTORS$f=descriptors$1,definePropertyModule$6=objectDefineProperty$1,createPropertyDescriptor$6=createPropertyDescriptor$8,createNonEnumerableProperty$9=DESCRIPTORS$f?function(j,_e,et){return definePropertyModule$6.f(j,_e,createPropertyDescriptor$6(1,et))}:function(j,_e,et){return j[_e]=et,j},global$p=global$x,apply$2=functionApply,uncurryThis$e=functionUncurryThisClause,isCallable$m=isCallable$t,getOwnPropertyDescriptor$8=objectGetOwnPropertyDescriptor$1.f,isForced$2=isForced_1$1,path$f=path$h,bind$2=functionBindContext,createNonEnumerableProperty$8=createNonEnumerableProperty$9,hasOwn$i=hasOwnProperty_1$1,wrapConstructor=function(j){var _e=function(et,tt,rt){if(this instanceof _e){switch(arguments.length){case 0:return new j;case 1:return new j(et);case 2:return new j(et,tt)}return new j(et,tt,rt)}return apply$2(j,this,arguments)};return _e.prototype=j.prototype,_e},_export$1=function(j,_e){var et=j.target,tt=j.global,rt=j.stat,nt=j.proto,ot=tt?global$p:rt?global$p[et]:global$p[et]&&global$p[et].prototype,it=tt?path$f:path$f[et]||createNonEnumerableProperty$8(path$f,et,{})[et],st=it.prototype,lt,ut,ct,dt,ft,pt,gt,vt,bt;for(dt in _e)lt=isForced$2(tt?dt:et+(rt?".":"#")+dt,j.forced),ut=!lt&&ot&&hasOwn$i(ot,dt),pt=it[dt],ut&&(j.dontCallGetSet?(bt=getOwnPropertyDescriptor$8(ot,dt),gt=bt&&bt.value):gt=ot[dt]),ft=ut&>?gt:_e[dt],!(!lt&&!nt&&typeof pt==typeof ft)&&(j.bind&&ut?vt=bind$2(ft,global$p):j.wrap&&ut?vt=wrapConstructor(ft):nt&&isCallable$m(ft)?vt=uncurryThis$e(ft):vt=ft,(j.sham||ft&&ft.sham||pt&&pt.sham)&&createNonEnumerableProperty$8(vt,"sham",!0),createNonEnumerableProperty$8(it,dt,vt),nt&&(ct=et+"Prototype",hasOwn$i(path$f,ct)||createNonEnumerableProperty$8(path$f,ct,{}),createNonEnumerableProperty$8(path$f[ct],dt,ft),j.real&&st&&(lt||!st[dt])&&createNonEnumerableProperty$8(st,dt,ft)))},classof$d=classofRaw$4,isArray$f=Array.isArray||function j(_e){return classof$d(_e)==="Array"},$$s=_export$1,isArray$e=isArray$f;$$s({target:"Array",stat:!0},{isArray:isArray$e});var path$e=path$h,isArray$d=path$e.Array.isArray,parent$C=isArray$d,isArray$c=parent$C,parent$B=isArray$c,isArray$b=parent$B,parent$A=isArray$b,isArray$a=parent$A,isArray$9=isArray$a;const _Array$isArray$1=getDefaultExportFromCjs(isArray$9);function _arrayWithHoles$d(j){if(_Array$isArray$1(j))return j}var ceil$1=Math.ceil,floor$2=Math.floor,mathTrunc=Math.trunc||function j(_e){var et=+_e;return(et>0?floor$2:ceil$1)(et)},trunc=mathTrunc,toIntegerOrInfinity$9=function(j){var _e=+j;return _e!==_e||_e===0?0:trunc(_e)},toIntegerOrInfinity$8=toIntegerOrInfinity$9,min$6=Math.min,toLength$4=function(j){var _e=toIntegerOrInfinity$8(j);return _e>0?min$6(_e,9007199254740991):0},toLength$3=toLength$4,lengthOfArrayLike$9=function(j){return toLength$3(j.length)},$TypeError$4=TypeError,MAX_SAFE_INTEGER$1=9007199254740991,doesNotExceedSafeInteger$3=function(j){if(j>MAX_SAFE_INTEGER$1)throw $TypeError$4("Maximum allowed index exceeded");return j},toPropertyKey$5=toPropertyKey$8,definePropertyModule$5=objectDefineProperty$1,createPropertyDescriptor$5=createPropertyDescriptor$8,createProperty$5=function(j,_e,et){var tt=toPropertyKey$5(_e);tt in j?definePropertyModule$5.f(j,tt,createPropertyDescriptor$5(0,et)):j[tt]=et},wellKnownSymbol$m=wellKnownSymbol$o,TO_STRING_TAG$4=wellKnownSymbol$m("toStringTag"),test$1={};test$1[TO_STRING_TAG$4]="z";var toStringTagSupport$1=String(test$1)==="[object z]",TO_STRING_TAG_SUPPORT$5=toStringTagSupport$1,isCallable$l=isCallable$t,classofRaw$2=classofRaw$4,wellKnownSymbol$l=wellKnownSymbol$o,TO_STRING_TAG$3=wellKnownSymbol$l("toStringTag"),$Object$1=Object,CORRECT_ARGUMENTS$1=classofRaw$2(function(){return arguments}())==="Arguments",tryGet$1=function(j,_e){try{return j[_e]}catch{}},classof$c=TO_STRING_TAG_SUPPORT$5?classofRaw$2:function(j){var _e,et,tt;return j===void 0?"Undefined":j===null?"Null":typeof(et=tryGet$1(_e=$Object$1(j),TO_STRING_TAG$3))=="string"?et:CORRECT_ARGUMENTS$1?classofRaw$2(_e):(tt=classofRaw$2(_e))==="Object"&&isCallable$l(_e.callee)?"Arguments":tt},uncurryThis$d=functionUncurryThis,isCallable$k=isCallable$t,store$5=sharedStore$1,functionToString$1=uncurryThis$d(Function.toString);isCallable$k(store$5.inspectSource)||(store$5.inspectSource=function(j){return functionToString$1(j)});var inspectSource$4=store$5.inspectSource,uncurryThis$c=functionUncurryThis,fails$n=fails$v,isCallable$j=isCallable$t,classof$b=classof$c,getBuiltIn$d=getBuiltIn$f,inspectSource$3=inspectSource$4,noop$1=function(){},construct=getBuiltIn$d("Reflect","construct"),constructorRegExp=/^\s*(?:class|function)\b/,exec$2=uncurryThis$c(constructorRegExp.exec),INCORRECT_TO_STRING=!constructorRegExp.test(noop$1),isConstructorModern=function j(_e){if(!isCallable$j(_e))return!1;try{return construct(noop$1,[],_e),!0}catch{return!1}},isConstructorLegacy=function j(_e){if(!isCallable$j(_e))return!1;switch(classof$b(_e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return INCORRECT_TO_STRING||!!exec$2(constructorRegExp,inspectSource$3(_e))}catch{return!0}};isConstructorLegacy.sham=!0;var isConstructor$3=!construct||fails$n(function(){var j;return isConstructorModern(isConstructorModern.call)||!isConstructorModern(Object)||!isConstructorModern(function(){j=!0})||j})?isConstructorLegacy:isConstructorModern,isArray$8=isArray$f,isConstructor$2=isConstructor$3,isObject$c=isObject$h,wellKnownSymbol$k=wellKnownSymbol$o,SPECIES$3=wellKnownSymbol$k("species"),$Array$2=Array,arraySpeciesConstructor$1=function(j){var _e;return isArray$8(j)&&(_e=j.constructor,isConstructor$2(_e)&&(_e===$Array$2||isArray$8(_e.prototype))?_e=void 0:isObject$c(_e)&&(_e=_e[SPECIES$3],_e===null&&(_e=void 0))),_e===void 0?$Array$2:_e},arraySpeciesConstructor=arraySpeciesConstructor$1,arraySpeciesCreate$3=function(j,_e){return new(arraySpeciesConstructor(j))(_e===0?0:_e)},fails$m=fails$v,wellKnownSymbol$j=wellKnownSymbol$o,V8_VERSION$2=engineV8Version$1,SPECIES$2=wellKnownSymbol$j("species"),arrayMethodHasSpeciesSupport$4=function(j){return V8_VERSION$2>=51||!fails$m(function(){var _e=[],et=_e.constructor={};return et[SPECIES$2]=function(){return{foo:1}},_e[j](Boolean).foo!==1})},$$r=_export$1,fails$l=fails$v,isArray$7=isArray$f,isObject$b=isObject$h,toObject$a=toObject$c,lengthOfArrayLike$8=lengthOfArrayLike$9,doesNotExceedSafeInteger$2=doesNotExceedSafeInteger$3,createProperty$4=createProperty$5,arraySpeciesCreate$2=arraySpeciesCreate$3,arrayMethodHasSpeciesSupport$3=arrayMethodHasSpeciesSupport$4,wellKnownSymbol$i=wellKnownSymbol$o,V8_VERSION$1=engineV8Version$1,IS_CONCAT_SPREADABLE=wellKnownSymbol$i("isConcatSpreadable"),IS_CONCAT_SPREADABLE_SUPPORT=V8_VERSION$1>=51||!fails$l(function(){var j=[];return j[IS_CONCAT_SPREADABLE]=!1,j.concat()[0]!==j}),isConcatSpreadable=function(j){if(!isObject$b(j))return!1;var _e=j[IS_CONCAT_SPREADABLE];return _e!==void 0?!!_e:isArray$7(j)},FORCED$4=!IS_CONCAT_SPREADABLE_SUPPORT||!arrayMethodHasSpeciesSupport$3("concat");$$r({target:"Array",proto:!0,arity:1,forced:FORCED$4},{concat:function j(_e){var et=toObject$a(this),tt=arraySpeciesCreate$2(et,0),rt=0,nt,ot,it,st,lt;for(nt=-1,it=arguments.length;ntot;)if(it=rt[ot++],it!==it)return!0}else for(;nt>ot;ot++)if((j||ot in rt)&&rt[ot]===et)return j||ot||0;return!j&&-1}},arrayIncludes$1={includes:createMethod$4(!0),indexOf:createMethod$4(!1)},hiddenKeys$a={},uncurryThis$b=functionUncurryThis,hasOwn$h=hasOwnProperty_1$1,toIndexedObject$b=toIndexedObject$e,indexOf$5=arrayIncludes$1.indexOf,hiddenKeys$9=hiddenKeys$a,push$9=uncurryThis$b([].push),objectKeysInternal$1=function(j,_e){var et=toIndexedObject$b(j),tt=0,rt=[],nt;for(nt in et)!hasOwn$h(hiddenKeys$9,nt)&&hasOwn$h(et,nt)&&push$9(rt,nt);for(;_e.length>tt;)hasOwn$h(et,nt=_e[tt++])&&(~indexOf$5(rt,nt)||push$9(rt,nt));return rt},enumBugKeys$7=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],internalObjectKeys$3=objectKeysInternal$1,enumBugKeys$6=enumBugKeys$7,objectKeys$4=Object.keys||function j(_e){return internalObjectKeys$3(_e,enumBugKeys$6)},DESCRIPTORS$e=descriptors$1,V8_PROTOTYPE_DEFINE_BUG=v8PrototypeDefineBug,definePropertyModule$4=objectDefineProperty$1,anObject$f=anObject$h,toIndexedObject$a=toIndexedObject$e,objectKeys$3=objectKeys$4;objectDefineProperties$1.f=DESCRIPTORS$e&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function j(_e,et){anObject$f(_e);for(var tt=toIndexedObject$a(et),rt=objectKeys$3(et),nt=rt.length,ot=0,it;nt>ot;)definePropertyModule$4.f(_e,it=rt[ot++],tt[it]);return _e};var getBuiltIn$c=getBuiltIn$f,html$3=getBuiltIn$c("document","documentElement"),shared$a=sharedExports$1,uid$4=uid$6,keys$5=shared$a("keys"),sharedKey$7=function(j){return keys$5[j]||(keys$5[j]=uid$4(j))},anObject$e=anObject$h,definePropertiesModule$1=objectDefineProperties$1,enumBugKeys$5=enumBugKeys$7,hiddenKeys$8=hiddenKeys$a,html$2=html$3,documentCreateElement$2=documentCreateElement$3,sharedKey$6=sharedKey$7,GT$1=">",LT$1="<",PROTOTYPE$2="prototype",SCRIPT$1="script",IE_PROTO$2=sharedKey$6("IE_PROTO"),EmptyConstructor$1=function(){},scriptTag$1=function(j){return LT$1+SCRIPT$1+GT$1+j+LT$1+"/"+SCRIPT$1+GT$1},NullProtoObjectViaActiveX$1=function(j){j.write(scriptTag$1("")),j.close();var _e=j.parentWindow.Object;return j=null,_e},NullProtoObjectViaIFrame$1=function(){var j=documentCreateElement$2("iframe"),_e="java"+SCRIPT$1+":",et;return j.style.display="none",html$2.appendChild(j),j.src=String(_e),et=j.contentWindow.document,et.open(),et.write(scriptTag$1("document.F=Object")),et.close(),et.F},activeXDocument$1,NullProtoObject$1=function(){try{activeXDocument$1=new ActiveXObject("htmlfile")}catch{}NullProtoObject$1=typeof document<"u"?document.domain&&activeXDocument$1?NullProtoObjectViaActiveX$1(activeXDocument$1):NullProtoObjectViaIFrame$1():NullProtoObjectViaActiveX$1(activeXDocument$1);for(var j=enumBugKeys$5.length;j--;)delete NullProtoObject$1[PROTOTYPE$2][enumBugKeys$5[j]];return NullProtoObject$1()};hiddenKeys$8[IE_PROTO$2]=!0;var objectCreate$1=Object.create||function j(_e,et){var tt;return _e!==null?(EmptyConstructor$1[PROTOTYPE$2]=anObject$e(_e),tt=new EmptyConstructor$1,EmptyConstructor$1[PROTOTYPE$2]=null,tt[IE_PROTO$2]=_e):tt=NullProtoObject$1(),et===void 0?tt:definePropertiesModule$1.f(tt,et)},objectGetOwnPropertyNames$1={},internalObjectKeys$2=objectKeysInternal$1,enumBugKeys$4=enumBugKeys$7,hiddenKeys$7=enumBugKeys$4.concat("length","prototype");objectGetOwnPropertyNames$1.f=Object.getOwnPropertyNames||function j(_e){return internalObjectKeys$2(_e,hiddenKeys$7)};var objectGetOwnPropertyNamesExternal={},uncurryThis$a=functionUncurryThis,arraySlice$3=uncurryThis$a([].slice),classof$9=classofRaw$4,toIndexedObject$9=toIndexedObject$e,$getOwnPropertyNames$1=objectGetOwnPropertyNames$1.f,arraySlice$2=arraySlice$3,windowNames=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],getWindowNames=function(j){try{return $getOwnPropertyNames$1(j)}catch{return arraySlice$2(windowNames)}};objectGetOwnPropertyNamesExternal.f=function j(_e){return windowNames&&classof$9(_e)==="Window"?getWindowNames(_e):$getOwnPropertyNames$1(toIndexedObject$9(_e))};var objectGetOwnPropertySymbols$1={};objectGetOwnPropertySymbols$1.f=Object.getOwnPropertySymbols;var createNonEnumerableProperty$7=createNonEnumerableProperty$9,defineBuiltIn$4=function(j,_e,et,tt){return tt&&tt.enumerable?j[_e]=et:createNonEnumerableProperty$7(j,_e,et),j},defineProperty$c=objectDefineProperty$1,defineBuiltInAccessor$1=function(j,_e,et){return defineProperty$c.f(j,_e,et)},wellKnownSymbolWrapped={},wellKnownSymbol$h=wellKnownSymbol$o;wellKnownSymbolWrapped.f=wellKnownSymbol$h;var path$d=path$h,hasOwn$g=hasOwnProperty_1$1,wrappedWellKnownSymbolModule$1=wellKnownSymbolWrapped,defineProperty$b=objectDefineProperty$1.f,wellKnownSymbolDefine=function(j){var _e=path$d.Symbol||(path$d.Symbol={});hasOwn$g(_e,j)||defineProperty$b(_e,j,{value:wrappedWellKnownSymbolModule$1.f(j)})},call$6=functionCall,getBuiltIn$b=getBuiltIn$f,wellKnownSymbol$g=wellKnownSymbol$o,defineBuiltIn$3=defineBuiltIn$4,symbolDefineToPrimitive=function(){var j=getBuiltIn$b("Symbol"),_e=j&&j.prototype,et=_e&&_e.valueOf,tt=wellKnownSymbol$g("toPrimitive");_e&&!_e[tt]&&defineBuiltIn$3(_e,tt,function(rt){return call$6(et,this)},{arity:1})},TO_STRING_TAG_SUPPORT$4=toStringTagSupport$1,classof$8=classof$c,objectToString$1=TO_STRING_TAG_SUPPORT$4?{}.toString:function j(){return"[object "+classof$8(this)+"]"},TO_STRING_TAG_SUPPORT$3=toStringTagSupport$1,defineProperty$a=objectDefineProperty$1.f,createNonEnumerableProperty$6=createNonEnumerableProperty$9,hasOwn$f=hasOwnProperty_1$1,toString$c=objectToString$1,wellKnownSymbol$f=wellKnownSymbol$o,TO_STRING_TAG$2=wellKnownSymbol$f("toStringTag"),setToStringTag$6=function(j,_e,et,tt){var rt=et?j:j&&j.prototype;rt&&(hasOwn$f(rt,TO_STRING_TAG$2)||defineProperty$a(rt,TO_STRING_TAG$2,{configurable:!0,value:_e}),tt&&!TO_STRING_TAG_SUPPORT$3&&createNonEnumerableProperty$6(rt,"toString",toString$c))},global$o=global$x,isCallable$i=isCallable$t,WeakMap$4=global$o.WeakMap,weakMapBasicDetection=isCallable$i(WeakMap$4)&&/native code/.test(String(WeakMap$4)),NATIVE_WEAK_MAP$1=weakMapBasicDetection,global$n=global$x,isObject$a=isObject$h,createNonEnumerableProperty$5=createNonEnumerableProperty$9,hasOwn$e=hasOwnProperty_1$1,shared$9=sharedStore$1,sharedKey$5=sharedKey$7,hiddenKeys$6=hiddenKeys$a,OBJECT_ALREADY_INITIALIZED$1="Object already initialized",TypeError$2=global$n.TypeError,WeakMap$3=global$n.WeakMap,set$1,get$1,has$1,enforce$1=function(j){return has$1(j)?get$1(j):set$1(j,{})},getterFor$1=function(j){return function(_e){var et;if(!isObject$a(_e)||(et=get$1(_e)).type!==j)throw new TypeError$2("Incompatible receiver, "+j+" required");return et}};if(NATIVE_WEAK_MAP$1||shared$9.state){var store$4=shared$9.state||(shared$9.state=new WeakMap$3);store$4.get=store$4.get,store$4.has=store$4.has,store$4.set=store$4.set,set$1=function(j,_e){if(store$4.has(j))throw new TypeError$2(OBJECT_ALREADY_INITIALIZED$1);return _e.facade=j,store$4.set(j,_e),_e},get$1=function(j){return store$4.get(j)||{}},has$1=function(j){return store$4.has(j)}}else{var STATE$1=sharedKey$5("state");hiddenKeys$6[STATE$1]=!0,set$1=function(j,_e){if(hasOwn$e(j,STATE$1))throw new TypeError$2(OBJECT_ALREADY_INITIALIZED$1);return _e.facade=j,createNonEnumerableProperty$5(j,STATE$1,_e),_e},get$1=function(j){return hasOwn$e(j,STATE$1)?j[STATE$1]:{}},has$1=function(j){return hasOwn$e(j,STATE$1)}}var internalState$1={set:set$1,get:get$1,has:has$1,enforce:enforce$1,getterFor:getterFor$1},bind$1=functionBindContext,uncurryThis$9=functionUncurryThis,IndexedObject$1=indexedObject$1,toObject$9=toObject$c,lengthOfArrayLike$6=lengthOfArrayLike$9,arraySpeciesCreate$1=arraySpeciesCreate$3,push$8=uncurryThis$9([].push),createMethod$3=function(j){var _e=j===1,et=j===2,tt=j===3,rt=j===4,nt=j===6,ot=j===7,it=j===5||nt;return function(st,lt,ut,ct){for(var dt=toObject$9(st),ft=IndexedObject$1(dt),pt=lengthOfArrayLike$6(ft),gt=bind$1(lt,ut),vt=0,bt=ct||arraySpeciesCreate$1,_t=_e?bt(st,pt):et||ot?bt(st,0):void 0,xt,yt;pt>vt;vt++)if((it||vt in ft)&&(xt=ft[vt],yt=gt(xt,vt,dt),j))if(_e)_t[vt]=yt;else if(yt)switch(j){case 3:return!0;case 5:return xt;case 6:return vt;case 2:push$8(_t,xt)}else switch(j){case 4:return!1;case 7:push$8(_t,xt)}return nt?-1:tt||rt?rt:_t}},arrayIteration={forEach:createMethod$3(0),map:createMethod$3(1),filter:createMethod$3(2),some:createMethod$3(3),every:createMethod$3(4),find:createMethod$3(5),findIndex:createMethod$3(6),filterReject:createMethod$3(7)},$$q=_export$1,global$m=global$x,call$5=functionCall,uncurryThis$8=functionUncurryThis,DESCRIPTORS$d=descriptors$1,NATIVE_SYMBOL$5=symbolConstructorDetection,fails$k=fails$v,hasOwn$d=hasOwnProperty_1$1,isPrototypeOf$7=objectIsPrototypeOf,anObject$d=anObject$h,toIndexedObject$8=toIndexedObject$e,toPropertyKey$4=toPropertyKey$8,$toString$1=toString$d,createPropertyDescriptor$4=createPropertyDescriptor$8,nativeObjectCreate=objectCreate$1,objectKeys$2=objectKeys$4,getOwnPropertyNamesModule$2=objectGetOwnPropertyNames$1,getOwnPropertyNamesExternal=objectGetOwnPropertyNamesExternal,getOwnPropertySymbolsModule$3=objectGetOwnPropertySymbols$1,getOwnPropertyDescriptorModule$2=objectGetOwnPropertyDescriptor$1,definePropertyModule$3=objectDefineProperty$1,definePropertiesModule=objectDefineProperties$1,propertyIsEnumerableModule$1=objectPropertyIsEnumerable$1,defineBuiltIn$2=defineBuiltIn$4,defineBuiltInAccessor=defineBuiltInAccessor$1,shared$8=sharedExports$1,sharedKey$4=sharedKey$7,hiddenKeys$5=hiddenKeys$a,uid$3=uid$6,wellKnownSymbol$e=wellKnownSymbol$o,wrappedWellKnownSymbolModule=wellKnownSymbolWrapped,defineWellKnownSymbol$l=wellKnownSymbolDefine,defineSymbolToPrimitive$1=symbolDefineToPrimitive,setToStringTag$5=setToStringTag$6,InternalStateModule$3=internalState$1,$forEach$1=arrayIteration.forEach,HIDDEN=sharedKey$4("hidden"),SYMBOL="Symbol",PROTOTYPE$1="prototype",setInternalState$2=InternalStateModule$3.set,getInternalState$4=InternalStateModule$3.getterFor(SYMBOL),ObjectPrototype$1=Object[PROTOTYPE$1],$Symbol=global$m.Symbol,SymbolPrototype=$Symbol&&$Symbol[PROTOTYPE$1],RangeError$1=global$m.RangeError,TypeError$1=global$m.TypeError,QObject=global$m.QObject,nativeGetOwnPropertyDescriptor$1=getOwnPropertyDescriptorModule$2.f,nativeDefineProperty=definePropertyModule$3.f,nativeGetOwnPropertyNames=getOwnPropertyNamesExternal.f,nativePropertyIsEnumerable=propertyIsEnumerableModule$1.f,push$7=uncurryThis$8([].push),AllSymbols=shared$8("symbols"),ObjectPrototypeSymbols=shared$8("op-symbols"),WellKnownSymbolsStore$2=shared$8("wks"),USE_SETTER=!QObject||!QObject[PROTOTYPE$1]||!QObject[PROTOTYPE$1].findChild,fallbackDefineProperty=function(j,_e,et){var tt=nativeGetOwnPropertyDescriptor$1(ObjectPrototype$1,_e);tt&&delete ObjectPrototype$1[_e],nativeDefineProperty(j,_e,et),tt&&j!==ObjectPrototype$1&&nativeDefineProperty(ObjectPrototype$1,_e,tt)},setSymbolDescriptor=DESCRIPTORS$d&&fails$k(function(){return nativeObjectCreate(nativeDefineProperty({},"a",{get:function(){return nativeDefineProperty(this,"a",{value:7}).a}})).a!==7})?fallbackDefineProperty:nativeDefineProperty,wrap=function(j,_e){var et=AllSymbols[j]=nativeObjectCreate(SymbolPrototype);return setInternalState$2(et,{type:SYMBOL,tag:j,description:_e}),DESCRIPTORS$d||(et.description=_e),et},$defineProperty$1=function j(_e,et,tt){_e===ObjectPrototype$1&&$defineProperty$1(ObjectPrototypeSymbols,et,tt),anObject$d(_e);var rt=toPropertyKey$4(et);return anObject$d(tt),hasOwn$d(AllSymbols,rt)?(tt.enumerable?(hasOwn$d(_e,HIDDEN)&&_e[HIDDEN][rt]&&(_e[HIDDEN][rt]=!1),tt=nativeObjectCreate(tt,{enumerable:createPropertyDescriptor$4(0,!1)})):(hasOwn$d(_e,HIDDEN)||nativeDefineProperty(_e,HIDDEN,createPropertyDescriptor$4(1,nativeObjectCreate(null))),_e[HIDDEN][rt]=!0),setSymbolDescriptor(_e,rt,tt)):nativeDefineProperty(_e,rt,tt)},$defineProperties=function j(_e,et){anObject$d(_e);var tt=toIndexedObject$8(et),rt=objectKeys$2(tt).concat($getOwnPropertySymbols(tt));return $forEach$1(rt,function(nt){(!DESCRIPTORS$d||call$5($propertyIsEnumerable$1,tt,nt))&&$defineProperty$1(_e,nt,tt[nt])}),_e},$create=function j(_e,et){return et===void 0?nativeObjectCreate(_e):$defineProperties(nativeObjectCreate(_e),et)},$propertyIsEnumerable$1=function j(_e){var et=toPropertyKey$4(_e),tt=call$5(nativePropertyIsEnumerable,this,et);return this===ObjectPrototype$1&&hasOwn$d(AllSymbols,et)&&!hasOwn$d(ObjectPrototypeSymbols,et)?!1:tt||!hasOwn$d(this,et)||!hasOwn$d(AllSymbols,et)||hasOwn$d(this,HIDDEN)&&this[HIDDEN][et]?tt:!0},$getOwnPropertyDescriptor$1=function j(_e,et){var tt=toIndexedObject$8(_e),rt=toPropertyKey$4(et);if(!(tt===ObjectPrototype$1&&hasOwn$d(AllSymbols,rt)&&!hasOwn$d(ObjectPrototypeSymbols,rt))){var nt=nativeGetOwnPropertyDescriptor$1(tt,rt);return nt&&hasOwn$d(AllSymbols,rt)&&!(hasOwn$d(tt,HIDDEN)&&tt[HIDDEN][rt])&&(nt.enumerable=!0),nt}},$getOwnPropertyNames=function j(_e){var et=nativeGetOwnPropertyNames(toIndexedObject$8(_e)),tt=[];return $forEach$1(et,function(rt){!hasOwn$d(AllSymbols,rt)&&!hasOwn$d(hiddenKeys$5,rt)&&push$7(tt,rt)}),tt},$getOwnPropertySymbols=function(j){var _e=j===ObjectPrototype$1,et=nativeGetOwnPropertyNames(_e?ObjectPrototypeSymbols:toIndexedObject$8(j)),tt=[];return $forEach$1(et,function(rt){hasOwn$d(AllSymbols,rt)&&(!_e||hasOwn$d(ObjectPrototype$1,rt))&&push$7(tt,AllSymbols[rt])}),tt};NATIVE_SYMBOL$5||($Symbol=function(){if(isPrototypeOf$7(SymbolPrototype,this))throw new TypeError$1("Symbol is not a constructor");var _e=!arguments.length||arguments[0]===void 0?void 0:$toString$1(arguments[0]),et=uid$3(_e),tt=function(rt){var nt=this===void 0?global$m:this;nt===ObjectPrototype$1&&call$5(tt,ObjectPrototypeSymbols,rt),hasOwn$d(nt,HIDDEN)&&hasOwn$d(nt[HIDDEN],et)&&(nt[HIDDEN][et]=!1);var ot=createPropertyDescriptor$4(1,rt);try{setSymbolDescriptor(nt,et,ot)}catch(it){if(!(it instanceof RangeError$1))throw it;fallbackDefineProperty(nt,et,ot)}};return DESCRIPTORS$d&&USE_SETTER&&setSymbolDescriptor(ObjectPrototype$1,et,{configurable:!0,set:tt}),wrap(et,_e)},SymbolPrototype=$Symbol[PROTOTYPE$1],defineBuiltIn$2(SymbolPrototype,"toString",function(){return getInternalState$4(this).tag}),defineBuiltIn$2($Symbol,"withoutSetter",function(j){return wrap(uid$3(j),j)}),propertyIsEnumerableModule$1.f=$propertyIsEnumerable$1,definePropertyModule$3.f=$defineProperty$1,definePropertiesModule.f=$defineProperties,getOwnPropertyDescriptorModule$2.f=$getOwnPropertyDescriptor$1,getOwnPropertyNamesModule$2.f=getOwnPropertyNamesExternal.f=$getOwnPropertyNames,getOwnPropertySymbolsModule$3.f=$getOwnPropertySymbols,wrappedWellKnownSymbolModule.f=function(j){return wrap(wellKnownSymbol$e(j),j)},DESCRIPTORS$d&&defineBuiltInAccessor(SymbolPrototype,"description",{configurable:!0,get:function(){return getInternalState$4(this).description}}));$$q({global:!0,constructor:!0,wrap:!0,forced:!NATIVE_SYMBOL$5,sham:!NATIVE_SYMBOL$5},{Symbol:$Symbol});$forEach$1(objectKeys$2(WellKnownSymbolsStore$2),function(j){defineWellKnownSymbol$l(j)});$$q({target:SYMBOL,stat:!0,forced:!NATIVE_SYMBOL$5},{useSetter:function(){USE_SETTER=!0},useSimple:function(){USE_SETTER=!1}});$$q({target:"Object",stat:!0,forced:!NATIVE_SYMBOL$5,sham:!DESCRIPTORS$d},{create:$create,defineProperty:$defineProperty$1,defineProperties:$defineProperties,getOwnPropertyDescriptor:$getOwnPropertyDescriptor$1});$$q({target:"Object",stat:!0,forced:!NATIVE_SYMBOL$5},{getOwnPropertyNames:$getOwnPropertyNames});defineSymbolToPrimitive$1();setToStringTag$5($Symbol,SYMBOL);hiddenKeys$5[HIDDEN]=!0;var NATIVE_SYMBOL$4=symbolConstructorDetection,symbolRegistryDetection=NATIVE_SYMBOL$4&&!!Symbol.for&&!!Symbol.keyFor,$$p=_export$1,getBuiltIn$a=getBuiltIn$f,hasOwn$c=hasOwnProperty_1$1,toString$b=toString$d,shared$7=sharedExports$1,NATIVE_SYMBOL_REGISTRY$1=symbolRegistryDetection,StringToSymbolRegistry=shared$7("string-to-symbol-registry"),SymbolToStringRegistry$1=shared$7("symbol-to-string-registry");$$p({target:"Symbol",stat:!0,forced:!NATIVE_SYMBOL_REGISTRY$1},{for:function(j){var _e=toString$b(j);if(hasOwn$c(StringToSymbolRegistry,_e))return StringToSymbolRegistry[_e];var et=getBuiltIn$a("Symbol")(_e);return StringToSymbolRegistry[_e]=et,SymbolToStringRegistry$1[et]=_e,et}});var $$o=_export$1,hasOwn$b=hasOwnProperty_1$1,isSymbol$5=isSymbol$8,tryToString$4=tryToString$6,shared$6=sharedExports$1,NATIVE_SYMBOL_REGISTRY=symbolRegistryDetection,SymbolToStringRegistry=shared$6("symbol-to-string-registry");$$o({target:"Symbol",stat:!0,forced:!NATIVE_SYMBOL_REGISTRY},{keyFor:function j(_e){if(!isSymbol$5(_e))throw new TypeError(tryToString$4(_e)+" is not a symbol");if(hasOwn$b(SymbolToStringRegistry,_e))return SymbolToStringRegistry[_e]}});var uncurryThis$7=functionUncurryThis,isArray$6=isArray$f,isCallable$h=isCallable$t,classof$7=classofRaw$4,toString$a=toString$d,push$6=uncurryThis$7([].push),getJsonReplacerFunction=function(j){if(isCallable$h(j))return j;if(isArray$6(j)){for(var _e=j.length,et=[],tt=0;tt<_e;tt++){var rt=j[tt];typeof rt=="string"?push$6(et,rt):(typeof rt=="number"||classof$7(rt)==="Number"||classof$7(rt)==="String")&&push$6(et,toString$a(rt))}var nt=et.length,ot=!0;return function(it,st){if(ot)return ot=!1,st;if(isArray$6(this))return st;for(var lt=0;lt=_e.length)return j.target=void 0,createIterResultObject$1(void 0,!0);switch(j.kind){case"keys":return createIterResultObject$1(et,!1);case"values":return createIterResultObject$1(_e[et],!1)}return createIterResultObject$1([et,_e[et]],!1)},"values");Iterators$3.Arguments=Iterators$3.Array;var domIterables={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},DOMIterables$1=domIterables,global$k=global$x,setToStringTag=setToStringTag$6,Iterators$2=iterators;for(var COLLECTION_NAME in DOMIterables$1)setToStringTag(global$k[COLLECTION_NAME],COLLECTION_NAME),Iterators$2[COLLECTION_NAME]=Iterators$2.Array;var parent$z=symbol$4,symbol$3=parent$z,wellKnownSymbol$b=wellKnownSymbol$o,defineProperty$9=objectDefineProperty$1.f,METADATA=wellKnownSymbol$b("metadata"),FunctionPrototype$2=Function.prototype;FunctionPrototype$2[METADATA]===void 0&&defineProperty$9(FunctionPrototype$2,METADATA,{value:null});var defineWellKnownSymbol$7=wellKnownSymbolDefine;defineWellKnownSymbol$7("asyncDispose");var defineWellKnownSymbol$6=wellKnownSymbolDefine;defineWellKnownSymbol$6("dispose");var defineWellKnownSymbol$5=wellKnownSymbolDefine;defineWellKnownSymbol$5("metadata");var parent$y=symbol$3,symbol$2=parent$y,getBuiltIn$7=getBuiltIn$f,uncurryThis$5=functionUncurryThis,Symbol$4=getBuiltIn$7("Symbol"),keyFor=Symbol$4.keyFor,thisSymbolValue$1=uncurryThis$5(Symbol$4.prototype.valueOf),symbolIsRegistered=Symbol$4.isRegisteredSymbol||function j(_e){try{return keyFor(thisSymbolValue$1(_e))!==void 0}catch{return!1}},$$k=_export$1,isRegisteredSymbol$1=symbolIsRegistered;$$k({target:"Symbol",stat:!0},{isRegisteredSymbol:isRegisteredSymbol$1});var shared$5=sharedExports$1,getBuiltIn$6=getBuiltIn$f,uncurryThis$4=functionUncurryThis,isSymbol$3=isSymbol$8,wellKnownSymbol$a=wellKnownSymbol$o,Symbol$3=getBuiltIn$6("Symbol"),$isWellKnownSymbol=Symbol$3.isWellKnownSymbol,getOwnPropertyNames$1=getBuiltIn$6("Object","getOwnPropertyNames"),thisSymbolValue=uncurryThis$4(Symbol$3.prototype.valueOf),WellKnownSymbolsStore$1=shared$5("wks");for(var i=0,symbolKeys=getOwnPropertyNames$1(Symbol$3),symbolKeysLength=symbolKeys.length;i=nt?j?"":void 0:(ot=charCodeAt(tt,rt),ot<55296||ot>56319||rt+1===nt||(it=charCodeAt(tt,rt+1))<56320||it>57343?j?charAt$2(tt,rt):ot:j?stringSlice(tt,rt,rt+2):(ot-55296<<10)+(it-56320)+65536)}},stringMultibyte$1={codeAt:createMethod$2(!1),charAt:createMethod$2(!0)},charAt$1=stringMultibyte$1.charAt,toString$8=toString$d,InternalStateModule$1=internalState$1,defineIterator=iteratorDefine,createIterResultObject=createIterResultObject$2,STRING_ITERATOR="String Iterator",setInternalState=InternalStateModule$1.set,getInternalState$2=InternalStateModule$1.getterFor(STRING_ITERATOR);defineIterator(String,"String",function(j){setInternalState(this,{type:STRING_ITERATOR,string:toString$8(j),index:0})},function j(){var _e=getInternalState$2(this),et=_e.string,tt=_e.index,rt;return tt>=et.length?createIterResultObject(void 0,!0):(rt=charAt$1(et,tt),_e.index+=rt.length,createIterResultObject(rt,!1))});var classof$6=classof$c,getMethod$4=getMethod$6,isNullOrUndefined$1=isNullOrUndefined$4,Iterators$1=iterators,wellKnownSymbol$9=wellKnownSymbol$o,ITERATOR$2=wellKnownSymbol$9("iterator"),getIteratorMethod$7=function(j){if(!isNullOrUndefined$1(j))return getMethod$4(j,ITERATOR$2)||getMethod$4(j,"@@iterator")||Iterators$1[classof$6(j)]},getIteratorMethod$6=getIteratorMethod$7,getIteratorMethod_1=getIteratorMethod$6,parent$w=getIteratorMethod_1,getIteratorMethod$5=parent$w,parent$v=getIteratorMethod$5,getIteratorMethod$4=parent$v,parent$u=getIteratorMethod$4,getIteratorMethod$3=parent$u,getIteratorMethod$2=getIteratorMethod$3;const _getIteratorMethod=getDefaultExportFromCjs(getIteratorMethod$2);var DESCRIPTORS$b=descriptors$1,isArray$5=isArray$f,$TypeError$3=TypeError,getOwnPropertyDescriptor$7=Object.getOwnPropertyDescriptor,SILENT_ON_NON_WRITABLE_LENGTH_SET=DESCRIPTORS$b&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(j){return j instanceof TypeError}}(),arraySetLength=SILENT_ON_NON_WRITABLE_LENGTH_SET?function(j,_e){if(isArray$5(j)&&!getOwnPropertyDescriptor$7(j,"length").writable)throw new $TypeError$3("Cannot set read only .length");return j.length=_e}:function(j,_e){return j.length=_e},$$g=_export$1,toObject$6=toObject$c,lengthOfArrayLike$5=lengthOfArrayLike$9,setArrayLength$1=arraySetLength,doesNotExceedSafeInteger$1=doesNotExceedSafeInteger$3,fails$f=fails$v,INCORRECT_TO_LENGTH=fails$f(function(){return[].push.call({length:4294967296},1)!==4294967297}),properErrorOnNonWritableLength=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(j){return j instanceof TypeError}},FORCED$2=INCORRECT_TO_LENGTH||!properErrorOnNonWritableLength();$$g({target:"Array",proto:!0,arity:1,forced:FORCED$2},{push:function j(_e){var et=toObject$6(this),tt=lengthOfArrayLike$5(et),rt=arguments.length;doesNotExceedSafeInteger$1(tt+rt);for(var nt=0;nt1?arguments[1]:void 0,ot=nt!==void 0;ot&&(nt=bind(nt,rt>2?arguments[2]:void 0));var it=getIteratorMethod(et),st=0,lt,ut,ct,dt,ft,pt;if(it&&!(this===$Array&&isArrayIteratorMethod(it)))for(dt=getIterator(et,it),ft=dt.next,ut=tt?new this:[];!(ct=call(ft,dt)).done;st++)pt=ot?callWithSafeIterationClosing(dt,nt,[ct.value,st],!0):ct.value,createProperty$2(ut,st,pt);else for(lt=lengthOfArrayLike$3(et),ut=tt?new this(lt):$Array(lt);lt>st;st++)pt=ot?nt(et[st],st):et[st],createProperty$2(ut,st,pt);return ut.length=st,ut},wellKnownSymbol$6=wellKnownSymbol$o,ITERATOR=wellKnownSymbol$6("iterator"),SAFE_CLOSING=!1;try{var called=0,iteratorWithReturn={next:function(){return{done:!!called++}},return:function(){SAFE_CLOSING=!0}};iteratorWithReturn[ITERATOR]=function(){return this},Array.from(iteratorWithReturn,function(){throw 2})}catch(j){}var checkCorrectnessOfIteration$1=function(j,_e){try{if(!_e&&!SAFE_CLOSING)return!1}catch{return!1}var et=!1;try{var tt={};tt[ITERATOR]=function(){return{next:function(){return{done:et=!0}}}},j(tt)}catch{}return et},$$e=_export$1,from$5=arrayFrom,checkCorrectnessOfIteration=checkCorrectnessOfIteration$1,INCORRECT_ITERATION=!checkCorrectnessOfIteration(function(j){Array.from(j)});$$e({target:"Array",stat:!0,forced:INCORRECT_ITERATION},{from:from$5});var path$a=path$h,from$4=path$a.Array.from,parent$n=from$4,from$3=parent$n,parent$m=from$3,from$2=parent$m,parent$l=from$2,from$1=parent$l,from=from$1;const _Array$from=getDefaultExportFromCjs(from);function _arrayLikeToArray$k(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _unsupportedIterableToArray$k(j,_e){var et;if(j){if(typeof j=="string")return _arrayLikeToArray$k(j,_e);var tt=_sliceInstanceProperty(et=Object.prototype.toString.call(j)).call(et,8,-1);if(tt==="Object"&&j.constructor&&(tt=j.constructor.name),tt==="Map"||tt==="Set")return _Array$from(j);if(tt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(tt))return _arrayLikeToArray$k(j,_e)}}function _nonIterableRest$d(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _slicedToArray$c(j,_e){return _arrayWithHoles$d(j)||_iterableToArrayLimit$c(j,_e)||_unsupportedIterableToArray$k(j,_e)||_nonIterableRest$d()}var classnames$1={exports:{}};/*! - Copyright (c) 2018 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/(function(j){(function(){var _e={}.hasOwnProperty;function et(){for(var tt=[],rt=0;rt=74)&&(match=userAgent.match(/Chrome\/(\d+)/),match&&(version=match[1])));var engineV8Version=version&&+version,V8_VERSION=engineV8Version,fails$b=fails$e,nativeSymbol=!!Object.getOwnPropertySymbols&&!fails$b(function(){var j=Symbol();return!String(j)||!(Object(j)instanceof Symbol)||!Symbol.sham&&V8_VERSION&&V8_VERSION<41}),NATIVE_SYMBOL$1=nativeSymbol,useSymbolAsUid=NATIVE_SYMBOL$1&&!Symbol.sham&&typeof Symbol.iterator=="symbol",isCallable$a=isCallable$d,getBuiltIn$3=getBuiltIn$5,USE_SYMBOL_AS_UID$1=useSymbolAsUid,isSymbol$2=USE_SYMBOL_AS_UID$1?function(j){return typeof j=="symbol"}:function(j){var _e=getBuiltIn$3("Symbol");return isCallable$a(_e)&&Object(j)instanceof _e},tryToString$2=function(j){try{return String(j)}catch{return"Object"}},isCallable$9=isCallable$d,tryToString$1=tryToString$2,aCallable$1=function(j){if(isCallable$9(j))return j;throw TypeError(tryToString$1(j)+" is not a function")},aCallable=aCallable$1,getMethod$2=function(j,_e){var et=j[_e];return et==null?void 0:aCallable(et)},isCallable$8=isCallable$d,isObject$6=isObject$7,ordinaryToPrimitive$1=function(j,_e){var et,tt;if(_e==="string"&&isCallable$8(et=j.toString)&&!isObject$6(tt=et.call(j))||isCallable$8(et=j.valueOf)&&!isObject$6(tt=et.call(j))||_e!=="string"&&isCallable$8(et=j.toString)&&!isObject$6(tt=et.call(j)))return tt;throw TypeError("Can't convert object to primitive value")},shared$4={exports:{}},global$f=global$i,setGlobal$3=function(j,_e){try{Object.defineProperty(global$f,j,{value:_e,configurable:!0,writable:!0})}catch{global$f[j]=_e}return _e},global$e=global$i,setGlobal$2=setGlobal$3,SHARED="__core-js_shared__",store$3=global$e[SHARED]||setGlobal$2(SHARED,{}),sharedStore=store$3,store$2=sharedStore;(shared$4.exports=function(j,_e){return store$2[j]||(store$2[j]=_e!==void 0?_e:{})})("versions",[]).push({version:"3.18.3",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var sharedExports=shared$4.exports,requireObjectCoercible$2=requireObjectCoercible$4,toObject$4=function(j){return Object(requireObjectCoercible$2(j))},toObject$3=toObject$4,hasOwnProperty$1={}.hasOwnProperty,hasOwnProperty_1=Object.hasOwn||function j(_e,et){return hasOwnProperty$1.call(toObject$3(_e),et)},id=0,postfix=Math.random(),uid$2=function(j){return"Symbol("+String(j===void 0?"":j)+")_"+(++id+postfix).toString(36)},global$d=global$i,shared$3=sharedExports,hasOwn$8=hasOwnProperty_1,uid$1=uid$2,NATIVE_SYMBOL=nativeSymbol,USE_SYMBOL_AS_UID=useSymbolAsUid,WellKnownSymbolsStore=shared$3("wks"),Symbol$2=global$d.Symbol,createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol$2:Symbol$2&&Symbol$2.withoutSetter||uid$1,wellKnownSymbol$5=function(j){return(!hasOwn$8(WellKnownSymbolsStore,j)||!(NATIVE_SYMBOL||typeof WellKnownSymbolsStore[j]=="string"))&&(NATIVE_SYMBOL&&hasOwn$8(Symbol$2,j)?WellKnownSymbolsStore[j]=Symbol$2[j]:WellKnownSymbolsStore[j]=createWellKnownSymbol("Symbol."+j)),WellKnownSymbolsStore[j]},isObject$5=isObject$7,isSymbol$1=isSymbol$2,getMethod$1=getMethod$2,ordinaryToPrimitive=ordinaryToPrimitive$1,wellKnownSymbol$4=wellKnownSymbol$5,TO_PRIMITIVE=wellKnownSymbol$4("toPrimitive"),toPrimitive$1=function(j,_e){if(!isObject$5(j)||isSymbol$1(j))return j;var et=getMethod$1(j,TO_PRIMITIVE),tt;if(et){if(_e===void 0&&(_e="default"),tt=et.call(j,_e),!isObject$5(tt)||isSymbol$1(tt))return tt;throw TypeError("Can't convert object to primitive value")}return _e===void 0&&(_e="number"),ordinaryToPrimitive(j,_e)},toPrimitive=toPrimitive$1,isSymbol=isSymbol$2,toPropertyKey$2=function(j){var _e=toPrimitive(j,"string");return isSymbol(_e)?_e:String(_e)},global$c=global$i,isObject$4=isObject$7,document$1=global$c.document,EXISTS$1=isObject$4(document$1)&&isObject$4(document$1.createElement),documentCreateElement$1=function(j){return EXISTS$1?document$1.createElement(j):{}},DESCRIPTORS$9=descriptors,fails$a=fails$e,createElement=documentCreateElement$1,ie8DomDefine=!DESCRIPTORS$9&&!fails$a(function(){return Object.defineProperty(createElement("div"),"a",{get:function(){return 7}}).a!=7}),DESCRIPTORS$8=descriptors,propertyIsEnumerableModule=objectPropertyIsEnumerable,createPropertyDescriptor$1=createPropertyDescriptor$2,toIndexedObject$4=toIndexedObject$5,toPropertyKey$1=toPropertyKey$2,hasOwn$7=hasOwnProperty_1,IE8_DOM_DEFINE$1=ie8DomDefine,$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;objectGetOwnPropertyDescriptor.f=DESCRIPTORS$8?$getOwnPropertyDescriptor:function j(_e,et){if(_e=toIndexedObject$4(_e),et=toPropertyKey$1(et),IE8_DOM_DEFINE$1)try{return $getOwnPropertyDescriptor(_e,et)}catch{}if(hasOwn$7(_e,et))return createPropertyDescriptor$1(!propertyIsEnumerableModule.f.call(_e,et),_e[et])};var objectDefineProperty={},isObject$3=isObject$7,anObject$9=function(j){if(isObject$3(j))return j;throw TypeError(String(j)+" is not an object")},DESCRIPTORS$7=descriptors,IE8_DOM_DEFINE=ie8DomDefine,anObject$8=anObject$9,toPropertyKey=toPropertyKey$2,$defineProperty=Object.defineProperty;objectDefineProperty.f=DESCRIPTORS$7?$defineProperty:function j(_e,et,tt){if(anObject$8(_e),et=toPropertyKey(et),anObject$8(tt),IE8_DOM_DEFINE)try{return $defineProperty(_e,et,tt)}catch{}if("get"in tt||"set"in tt)throw TypeError("Accessors not supported");return"value"in tt&&(_e[et]=tt.value),_e};var DESCRIPTORS$6=descriptors,definePropertyModule$2=objectDefineProperty,createPropertyDescriptor=createPropertyDescriptor$2,createNonEnumerableProperty$4=DESCRIPTORS$6?function(j,_e,et){return definePropertyModule$2.f(j,_e,createPropertyDescriptor(1,et))}:function(j,_e,et){return j[_e]=et,j},redefine$5={exports:{}},isCallable$7=isCallable$d,store$1=sharedStore,functionToString=Function.toString;isCallable$7(store$1.inspectSource)||(store$1.inspectSource=function(j){return functionToString.call(j)});var inspectSource$2=store$1.inspectSource,global$b=global$i,isCallable$6=isCallable$d,inspectSource$1=inspectSource$2,WeakMap$2=global$b.WeakMap,nativeWeakMap=isCallable$6(WeakMap$2)&&/native code/.test(inspectSource$1(WeakMap$2)),shared$2=sharedExports,uid=uid$2,keys$4=shared$2("keys"),sharedKey$2=function(j){return keys$4[j]||(keys$4[j]=uid(j))},hiddenKeys$4={},NATIVE_WEAK_MAP=nativeWeakMap,global$a=global$i,isObject$2=isObject$7,createNonEnumerableProperty$3=createNonEnumerableProperty$4,hasOwn$6=hasOwnProperty_1,shared$1=sharedStore,sharedKey$1=sharedKey$2,hiddenKeys$3=hiddenKeys$4,OBJECT_ALREADY_INITIALIZED="Object already initialized",WeakMap$1=global$a.WeakMap,set,get,has,enforce=function(j){return has(j)?get(j):set(j,{})},getterFor=function(j){return function(_e){var et;if(!isObject$2(_e)||(et=get(_e)).type!==j)throw TypeError("Incompatible receiver, "+j+" required");return et}};if(NATIVE_WEAK_MAP||shared$1.state){var store=shared$1.state||(shared$1.state=new WeakMap$1),wmget=store.get,wmhas=store.has,wmset=store.set;set=function(j,_e){if(wmhas.call(store,j))throw new TypeError(OBJECT_ALREADY_INITIALIZED);return _e.facade=j,wmset.call(store,j,_e),_e},get=function(j){return wmget.call(store,j)||{}},has=function(j){return wmhas.call(store,j)}}else{var STATE=sharedKey$1("state");hiddenKeys$3[STATE]=!0,set=function(j,_e){if(hasOwn$6(j,STATE))throw new TypeError(OBJECT_ALREADY_INITIALIZED);return _e.facade=j,createNonEnumerableProperty$3(j,STATE,_e),_e},get=function(j){return hasOwn$6(j,STATE)?j[STATE]:{}},has=function(j){return hasOwn$6(j,STATE)}}var internalState={set,get,has,enforce,getterFor},DESCRIPTORS$5=descriptors,hasOwn$5=hasOwnProperty_1,FunctionPrototype$1=Function.prototype,getDescriptor=DESCRIPTORS$5&&Object.getOwnPropertyDescriptor,EXISTS=hasOwn$5(FunctionPrototype$1,"name"),PROPER=EXISTS&&(function j(){}).name==="something",CONFIGURABLE=EXISTS&&(!DESCRIPTORS$5||DESCRIPTORS$5&&getDescriptor(FunctionPrototype$1,"name").configurable),functionName={EXISTS,PROPER,CONFIGURABLE},global$9=global$i,isCallable$5=isCallable$d,hasOwn$4=hasOwnProperty_1,createNonEnumerableProperty$2=createNonEnumerableProperty$4,setGlobal$1=setGlobal$3,inspectSource=inspectSource$2,InternalStateModule=internalState,CONFIGURABLE_FUNCTION_NAME=functionName.CONFIGURABLE,getInternalState$1=InternalStateModule.get,enforceInternalState=InternalStateModule.enforce,TEMPLATE=String(String).split("String");(redefine$5.exports=function(j,_e,et,tt){var rt=tt?!!tt.unsafe:!1,nt=tt?!!tt.enumerable:!1,ot=tt?!!tt.noTargetGet:!1,it=tt&&tt.name!==void 0?tt.name:_e,st;if(isCallable$5(et)&&(String(it).slice(0,7)==="Symbol("&&(it="["+String(it).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!hasOwn$4(et,"name")||CONFIGURABLE_FUNCTION_NAME&&et.name!==it)&&createNonEnumerableProperty$2(et,"name",it),st=enforceInternalState(et),st.source||(st.source=TEMPLATE.join(typeof it=="string"?it:""))),j===global$9){nt?j[_e]=et:setGlobal$1(_e,et);return}else rt?!ot&&j[_e]&&(nt=!0):delete j[_e];nt?j[_e]=et:createNonEnumerableProperty$2(j,_e,et)})(Function.prototype,"toString",function j(){return isCallable$5(this)&&getInternalState$1(this).source||inspectSource(this)});var redefineExports=redefine$5.exports,objectGetOwnPropertyNames={},ceil=Math.ceil,floor$1=Math.floor,toIntegerOrInfinity$5=function(j){var _e=+j;return _e!==_e||_e===0?0:(_e>0?floor$1:ceil)(_e)},toIntegerOrInfinity$4=toIntegerOrInfinity$5,max$3=Math.max,min$4=Math.min,toAbsoluteIndex$2=function(j,_e){var et=toIntegerOrInfinity$4(j);return et<0?max$3(et+_e,0):min$4(et,_e)},toIntegerOrInfinity$3=toIntegerOrInfinity$5,min$3=Math.min,toLength$2=function(j){return j>0?min$3(toIntegerOrInfinity$3(j),9007199254740991):0},toLength$1=toLength$2,lengthOfArrayLike$2=function(j){return toLength$1(j.length)},toIndexedObject$3=toIndexedObject$5,toAbsoluteIndex$1=toAbsoluteIndex$2,lengthOfArrayLike$1=lengthOfArrayLike$2,createMethod$1=function(j){return function(_e,et,tt){var rt=toIndexedObject$3(_e),nt=lengthOfArrayLike$1(rt),ot=toAbsoluteIndex$1(tt,nt),it;if(j&&et!=et){for(;nt>ot;)if(it=rt[ot++],it!=it)return!0}else for(;nt>ot;ot++)if((j||ot in rt)&&rt[ot]===et)return j||ot||0;return!j&&-1}},arrayIncludes={includes:createMethod$1(!0),indexOf:createMethod$1(!1)},hasOwn$3=hasOwnProperty_1,toIndexedObject$2=toIndexedObject$5,indexOf$4=arrayIncludes.indexOf,hiddenKeys$2=hiddenKeys$4,objectKeysInternal=function(j,_e){var et=toIndexedObject$2(j),tt=0,rt=[],nt;for(nt in et)!hasOwn$3(hiddenKeys$2,nt)&&hasOwn$3(et,nt)&&rt.push(nt);for(;_e.length>tt;)hasOwn$3(et,nt=_e[tt++])&&(~indexOf$4(rt,nt)||rt.push(nt));return rt},enumBugKeys$3=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],internalObjectKeys$1=objectKeysInternal,enumBugKeys$2=enumBugKeys$3,hiddenKeys$1=enumBugKeys$2.concat("length","prototype");objectGetOwnPropertyNames.f=Object.getOwnPropertyNames||function j(_e){return internalObjectKeys$1(_e,hiddenKeys$1)};var objectGetOwnPropertySymbols={};objectGetOwnPropertySymbols.f=Object.getOwnPropertySymbols;var getBuiltIn$2=getBuiltIn$5,getOwnPropertyNamesModule$1=objectGetOwnPropertyNames,getOwnPropertySymbolsModule$1=objectGetOwnPropertySymbols,anObject$7=anObject$9,ownKeys$C=getBuiltIn$2("Reflect","ownKeys")||function j(_e){var et=getOwnPropertyNamesModule$1.f(anObject$7(_e)),tt=getOwnPropertySymbolsModule$1.f;return tt?et.concat(tt(_e)):et},hasOwn$2=hasOwnProperty_1,ownKeys$B=ownKeys$C,getOwnPropertyDescriptorModule$1=objectGetOwnPropertyDescriptor,definePropertyModule$1=objectDefineProperty,copyConstructorProperties$1=function(j,_e){for(var et=ownKeys$B(_e),tt=definePropertyModule$1.f,rt=getOwnPropertyDescriptorModule$1.f,nt=0;ntnt;)definePropertyModule.f(_e,ot=tt[nt++],et[ot]);return _e},getBuiltIn$1=getBuiltIn$5,html$1=getBuiltIn$1("document","documentElement"),anObject$4=anObject$9,defineProperties$5=objectDefineProperties,enumBugKeys=enumBugKeys$3,hiddenKeys=hiddenKeys$4,html=html$1,documentCreateElement=documentCreateElement$1,sharedKey=sharedKey$2,GT=">",LT="<",PROTOTYPE="prototype",SCRIPT="script",IE_PROTO=sharedKey("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(j){return LT+SCRIPT+GT+j+LT+"/"+SCRIPT+GT},NullProtoObjectViaActiveX=function(j){j.write(scriptTag("")),j.close();var _e=j.parentWindow.Object;return j=null,_e},NullProtoObjectViaIFrame=function(){var j=documentCreateElement("iframe"),_e="java"+SCRIPT+":",et;return j.style.display="none",html.appendChild(j),j.src=String(_e),et=j.contentWindow.document,et.open(),et.write(scriptTag("document.F=Object")),et.close(),et.F},activeXDocument,NullProtoObject=function(){try{activeXDocument=new ActiveXObject("htmlfile")}catch{}NullProtoObject=typeof document<"u"?document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame():NullProtoObjectViaActiveX(activeXDocument);for(var j=enumBugKeys.length;j--;)delete NullProtoObject[PROTOTYPE][enumBugKeys[j]];return NullProtoObject()};hiddenKeys[IE_PROTO]=!0;var objectCreate=Object.create||function j(_e,et){var tt;return _e!==null?(EmptyConstructor[PROTOTYPE]=anObject$4(_e),tt=new EmptyConstructor,EmptyConstructor[PROTOTYPE]=null,tt[IE_PROTO]=_e):tt=NullProtoObject(),et===void 0?tt:defineProperties$5(tt,et)},fails$7=fails$e,global$6=global$i,$RegExp$1=global$6.RegExp,regexpUnsupportedDotAll=fails$7(function(){var j=$RegExp$1(".","s");return!(j.dotAll&&j.exec(` -`)&&j.flags==="s")}),fails$6=fails$e,global$5=global$i,$RegExp=global$5.RegExp,regexpUnsupportedNcg=fails$6(function(){var j=$RegExp("(?b)","g");return j.exec("b").groups.a!=="b"||"b".replace(j,"$c")!=="bc"}),toString$5=toString$6,regexpFlags=regexpFlags$1,stickyHelpers=regexpStickyHelpers,shared=sharedExports,create=objectCreate,getInternalState=internalState.get,UNSUPPORTED_DOT_ALL=regexpUnsupportedDotAll,UNSUPPORTED_NCG=regexpUnsupportedNcg,nativeExec=RegExp.prototype.exec,nativeReplace=shared("native-string-replace",String.prototype.replace),patchedExec=nativeExec,UPDATES_LAST_INDEX_WRONG=function(){var j=/a/,_e=/b*/g;return nativeExec.call(j,"a"),nativeExec.call(_e,"a"),j.lastIndex!==0||_e.lastIndex!==0}(),UNSUPPORTED_Y=stickyHelpers.UNSUPPORTED_Y||stickyHelpers.BROKEN_CARET,NPCG_INCLUDED=/()??/.exec("")[1]!==void 0,PATCH=UPDATES_LAST_INDEX_WRONG||NPCG_INCLUDED||UNSUPPORTED_Y||UNSUPPORTED_DOT_ALL||UNSUPPORTED_NCG;PATCH&&(patchedExec=function(_e){var et=this,tt=getInternalState(et),rt=toString$5(_e),nt=tt.raw,ot,it,st,lt,ut,ct,dt;if(nt)return nt.lastIndex=et.lastIndex,ot=patchedExec.call(nt,rt),et.lastIndex=nt.lastIndex,ot;var ft=tt.groups,pt=UNSUPPORTED_Y&&et.sticky,gt=regexpFlags.call(et),vt=et.source,bt=0,_t=rt;if(pt&&(gt=gt.replace("y",""),gt.indexOf("g")===-1&&(gt+="g"),_t=rt.slice(et.lastIndex),et.lastIndex>0&&(!et.multiline||et.multiline&&rt.charAt(et.lastIndex-1)!==` -`)&&(vt="(?: "+vt+")",_t=" "+_t,bt++),it=new RegExp("^(?:"+vt+")",gt)),NPCG_INCLUDED&&(it=new RegExp("^"+vt+"$(?!\\s)",gt)),UPDATES_LAST_INDEX_WRONG&&(st=et.lastIndex),lt=nativeExec.call(pt?it:et,_t),pt?lt?(lt.input=lt.input.slice(bt),lt[0]=lt[0].slice(bt),lt.index=et.lastIndex,et.lastIndex+=lt[0].length):et.lastIndex=0:UPDATES_LAST_INDEX_WRONG&<&&(et.lastIndex=et.global?lt.index+lt[0].length:st),NPCG_INCLUDED&<&<.length>1&&nativeReplace.call(lt[0],it,function(){for(ut=1;ut=nt?j?"":void 0:(ot=tt.charCodeAt(rt),ot<55296||ot>56319||rt+1===nt||(it=tt.charCodeAt(rt+1))<56320||it>57343?j?tt.charAt(rt):ot:j?tt.slice(rt,rt+2):(ot-55296<<10)+(it-56320)+65536)}},stringMultibyte={codeAt:createMethod(!1),charAt:createMethod(!0)},charAt=stringMultibyte.charAt,advanceStringIndex$1=function(j,_e,et){return _e+(et?charAt(j,_e).length:1)},toObject$2=toObject$4,floor=Math.floor,replace="".replace,SUBSTITUTION_SYMBOLS=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,SUBSTITUTION_SYMBOLS_NO_NAMED=/\$([$&'`]|\d{1,2})/g,getSubstitution$1=function(j,_e,et,tt,rt,nt){var ot=et+j.length,it=tt.length,st=SUBSTITUTION_SYMBOLS_NO_NAMED;return rt!==void 0&&(rt=toObject$2(rt),st=SUBSTITUTION_SYMBOLS),replace.call(nt,st,function(lt,ut){var ct;switch(ut.charAt(0)){case"$":return"$";case"&":return j;case"`":return _e.slice(0,et);case"'":return _e.slice(ot);case"<":ct=rt[ut.slice(1,-1)];break;default:var dt=+ut;if(dt===0)return lt;if(dt>it){var ft=floor(dt/10);return ft===0?lt:ft<=it?tt[ft-1]===void 0?ut.charAt(1):tt[ft-1]+ut.charAt(1):lt}ct=tt[dt-1]}return ct===void 0?"":ct})},anObject$3=anObject$9,isCallable$2=isCallable$d,classof$2=classofRaw$1,regexpExec=regexpExec$2,regexpExecAbstract=function(j,_e){var et=j.exec;if(isCallable$2(et)){var tt=et.call(j,_e);return tt!==null&&anObject$3(tt),tt}if(classof$2(j)==="RegExp")return regexpExec.call(j,_e);throw TypeError("RegExp#exec called on incompatible receiver")},fixRegExpWellKnownSymbolLogic=fixRegexpWellKnownSymbolLogic,fails$4=fails$e,anObject$2=anObject$9,isCallable$1=isCallable$d,toIntegerOrInfinity$1=toIntegerOrInfinity$5,toLength=toLength$2,toString$3=toString$6,requireObjectCoercible=requireObjectCoercible$4,advanceStringIndex=advanceStringIndex$1,getMethod=getMethod$2,getSubstitution=getSubstitution$1,regExpExec=regexpExecAbstract,wellKnownSymbol=wellKnownSymbol$5,REPLACE=wellKnownSymbol("replace"),max$2=Math.max,min$2=Math.min,maybeToString=function(j){return j===void 0?j:String(j)},REPLACE_KEEPS_$0=function(){return"a".replace(/./,"$0")==="$0"}(),REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE=function(){return/./[REPLACE]?/./[REPLACE]("a","$0")==="":!1}(),REPLACE_SUPPORTS_NAMED_GROUPS=!fails$4(function(){var j=/./;return j.exec=function(){var _e=[];return _e.groups={a:"7"},_e},"".replace(j,"$")!=="7"});fixRegExpWellKnownSymbolLogic("replace",function(j,_e,et){var tt=REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE?"$":"$0";return[function(nt,ot){var it=requireObjectCoercible(this),st=nt==null?void 0:getMethod(nt,REPLACE);return st?st.call(nt,it,ot):_e.call(toString$3(it),nt,ot)},function(rt,nt){var ot=anObject$2(this),it=toString$3(rt);if(typeof nt=="string"&&nt.indexOf(tt)===-1&&nt.indexOf("$<")===-1){var st=et(_e,ot,it,nt);if(st.done)return st.value}var lt=isCallable$1(nt);lt||(nt=toString$3(nt));var ut=ot.global;if(ut){var ct=ot.unicode;ot.lastIndex=0}for(var dt=[];;){var ft=regExpExec(ot,it);if(ft===null||(dt.push(ft),!ut))break;var pt=toString$3(ft[0]);pt===""&&(ot.lastIndex=advanceStringIndex(it,toLength(ot.lastIndex),ct))}for(var gt="",vt=0,bt=0;bt=vt&&(gt+=it.slice(vt,xt)+At,vt=xt+_t.length)}return gt+it.slice(vt)}]},!REPLACE_SUPPORTS_NAMED_GROUPS||!REPLACE_KEEPS_$0||REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);var engineIsBun=typeof Bun=="function"&&Bun&&typeof Bun.version=="string",$TypeError$1=TypeError,validateArgumentsLength$1=function(j,_e){if(j<_e)throw new $TypeError$1("Not enough arguments");return j},global$4=global$x,apply=functionApply,isCallable=isCallable$t,ENGINE_IS_BUN=engineIsBun,USER_AGENT=engineUserAgent$1,arraySlice=arraySlice$3,validateArgumentsLength=validateArgumentsLength$1,Function$1=global$4.Function,WRAP=/MSIE .\./.test(USER_AGENT)||ENGINE_IS_BUN&&function(){var j=global$4.Bun.version.split(".");return j.length<3||j[0]==="0"&&(j[1]<3||j[1]==="3"&&j[2]==="0")}(),schedulersFix$2=function(j,_e){var et=_e?2:1;return WRAP?function(tt,rt){var nt=validateArgumentsLength(arguments.length,1)>et,ot=isCallable(tt)?tt:Function$1(tt),it=nt?arraySlice(arguments,et):[],st=nt?function(){apply(ot,this,it)}:ot;return _e?j(st,rt):j(st)}:j},$$b=_export$1,global$3=global$x,schedulersFix$1=schedulersFix$2,setInterval$3=schedulersFix$1(global$3.setInterval,!0);$$b({global:!0,bind:!0,forced:global$3.setInterval!==setInterval$3},{setInterval:setInterval$3});var $$a=_export$1,global$2=global$x,schedulersFix=schedulersFix$2,setTimeout$3=schedulersFix(global$2.setTimeout,!0);$$a({global:!0,bind:!0,forced:global$2.setTimeout!==setTimeout$3},{setTimeout:setTimeout$3});var path$8=path$h,setInterval$2=path$8.setInterval,setInterval$1=setInterval$2;const _setInterval=getDefaultExportFromCjs(setInterval$1);var fails$3=fails$v,arrayMethodIsStrict$2=function(j,_e){var et=[][j];return!!et&&fails$3(function(){et.call(null,_e||function(){return 1},1)})},$$9=_export$1,uncurryThis$2=functionUncurryThisClause,$indexOf=arrayIncludes$1.indexOf,arrayMethodIsStrict$1=arrayMethodIsStrict$2,nativeIndexOf=uncurryThis$2([].indexOf),NEGATIVE_ZERO=!!nativeIndexOf&&1/nativeIndexOf([1],1,-0)<0,FORCED$1=NEGATIVE_ZERO||!arrayMethodIsStrict$1("indexOf");$$9({target:"Array",proto:!0,forced:FORCED$1},{indexOf:function j(_e){var et=arguments.length>1?arguments[1]:void 0;return NEGATIVE_ZERO?nativeIndexOf(this,_e,et)||0:$indexOf(this,_e,et)}});var getBuiltInPrototypeMethod$4=getBuiltInPrototypeMethod$7,indexOf$3=getBuiltInPrototypeMethod$4("Array","indexOf"),isPrototypeOf$4=objectIsPrototypeOf,method$4=indexOf$3,ArrayPrototype$4=Array.prototype,indexOf$2=function(j){var _e=j.indexOf;return j===ArrayPrototype$4||isPrototypeOf$4(ArrayPrototype$4,j)&&_e===ArrayPrototype$4.indexOf?method$4:_e},parent$b=indexOf$2,indexOf$1=parent$b,indexOf=indexOf$1;const _indexOfInstanceProperty=getDefaultExportFromCjs(indexOf);var tryToString=tryToString$6,$TypeError=TypeError,deletePropertyOrThrow$1=function(j,_e){if(!delete j[_e])throw new $TypeError("Cannot delete property "+tryToString(_e)+" of "+tryToString(j))},$$8=_export$1,toObject$1=toObject$c,toAbsoluteIndex=toAbsoluteIndex$5,toIntegerOrInfinity=toIntegerOrInfinity$9,lengthOfArrayLike=lengthOfArrayLike$9,setArrayLength=arraySetLength,doesNotExceedSafeInteger=doesNotExceedSafeInteger$3,arraySpeciesCreate=arraySpeciesCreate$3,createProperty$1=createProperty$5,deletePropertyOrThrow=deletePropertyOrThrow$1,arrayMethodHasSpeciesSupport$1=arrayMethodHasSpeciesSupport$4,HAS_SPECIES_SUPPORT$1=arrayMethodHasSpeciesSupport$1("splice"),max$1=Math.max,min$1=Math.min;$$8({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT$1},{splice:function j(_e,et){var tt=toObject$1(this),rt=lengthOfArrayLike(tt),nt=toAbsoluteIndex(_e,rt),ot=arguments.length,it,st,lt,ut,ct,dt;for(ot===0?it=st=0:ot===1?(it=0,st=rt-nt):(it=ot-2,st=min$1(max$1(toIntegerOrInfinity(et),0),rt-nt)),doesNotExceedSafeInteger(rt+it-st),lt=arraySpeciesCreate(tt,st),ut=0;utrt-st+it;ut--)deletePropertyOrThrow(tt,ut-1)}else if(it>st)for(ut=rt-st;ut>nt;ut--)ct=ut+st-1,dt=ut+it-1,ct in tt?tt[dt]=tt[ct]:deletePropertyOrThrow(tt,dt);for(ut=0;ut1?arguments[1]:void 0)},$$6=_export$1,forEach$4=arrayForEach;$$6({target:"Array",proto:!0,forced:[].forEach!==forEach$4},{forEach:forEach$4});var getBuiltInPrototypeMethod$1=getBuiltInPrototypeMethod$7,forEach$3=getBuiltInPrototypeMethod$1("Array","forEach"),parent$7=forEach$3,forEach$2=parent$7,classof$1=classof$c,hasOwn$1=hasOwnProperty_1$1,isPrototypeOf$1=objectIsPrototypeOf,method$1=forEach$2,ArrayPrototype$1=Array.prototype,DOMIterables={DOMTokenList:!0,NodeList:!0},forEach$1=function(j){var _e=j.forEach;return j===ArrayPrototype$1||isPrototypeOf$1(ArrayPrototype$1,j)&&_e===ArrayPrototype$1.forEach||hasOwn$1(DOMIterables,classof$1(j))?method$1:_e},forEach=forEach$1;const _forEachInstanceProperty=getDefaultExportFromCjs(forEach);var $$5=_export$1,toObject=toObject$c,nativeKeys=objectKeys$4,fails$2=fails$v,FAILS_ON_PRIMITIVES=fails$2(function(){nativeKeys(1)});$$5({target:"Object",stat:!0,forced:FAILS_ON_PRIMITIVES},{keys:function j(_e){return nativeKeys(toObject(_e))}});var path$6=path$h,keys$3=path$6.Object.keys,parent$6=keys$3,keys$2=parent$6,keys$1=keys$2;const _Object$keys=getDefaultExportFromCjs(keys$1);var path$5=path$h,getOwnPropertySymbols$3=path$5.Object.getOwnPropertySymbols,parent$5=getOwnPropertySymbols$3,getOwnPropertySymbols$2=parent$5,getOwnPropertySymbols$1=getOwnPropertySymbols$2;const _Object$getOwnPropertySymbols=getDefaultExportFromCjs(getOwnPropertySymbols$1);var $$4=_export$1,$filter=arrayIteration.filter,arrayMethodHasSpeciesSupport=arrayMethodHasSpeciesSupport$4,HAS_SPECIES_SUPPORT=arrayMethodHasSpeciesSupport("filter");$$4({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT},{filter:function j(_e){return $filter(this,_e,arguments.length>1?arguments[1]:void 0)}});var getBuiltInPrototypeMethod=getBuiltInPrototypeMethod$7,filter$3=getBuiltInPrototypeMethod("Array","filter"),isPrototypeOf=objectIsPrototypeOf,method=filter$3,ArrayPrototype=Array.prototype,filter$2=function(j){var _e=j.filter;return j===ArrayPrototype||isPrototypeOf(ArrayPrototype,j)&&_e===ArrayPrototype.filter?method:_e},parent$4=filter$2,filter$1=parent$4,filter=filter$1;const _filterInstanceProperty=getDefaultExportFromCjs(filter);var getOwnPropertyDescriptor$4={exports:{}},$$3=_export$1,fails$1=fails$v,toIndexedObject$1=toIndexedObject$e,nativeGetOwnPropertyDescriptor=objectGetOwnPropertyDescriptor$1.f,DESCRIPTORS$3=descriptors$1,FORCED=!DESCRIPTORS$3||fails$1(function(){nativeGetOwnPropertyDescriptor(1)});$$3({target:"Object",stat:!0,forced:FORCED,sham:!DESCRIPTORS$3},{getOwnPropertyDescriptor:function j(_e,et){return nativeGetOwnPropertyDescriptor(toIndexedObject$1(_e),et)}});var path$4=path$h,Object$2=path$4.Object,getOwnPropertyDescriptor$3=getOwnPropertyDescriptor$4.exports=function j(_e,et){return Object$2.getOwnPropertyDescriptor(_e,et)};Object$2.getOwnPropertyDescriptor.sham&&(getOwnPropertyDescriptor$3.sham=!0);var getOwnPropertyDescriptorExports=getOwnPropertyDescriptor$4.exports,parent$3=getOwnPropertyDescriptorExports,getOwnPropertyDescriptor$2=parent$3,getOwnPropertyDescriptor$1=getOwnPropertyDescriptor$2;const _Object$getOwnPropertyDescriptor=getDefaultExportFromCjs(getOwnPropertyDescriptor$1);var getBuiltIn=getBuiltIn$f,uncurryThis=functionUncurryThis,getOwnPropertyNamesModule=objectGetOwnPropertyNames$1,getOwnPropertySymbolsModule=objectGetOwnPropertySymbols$1,anObject$1=anObject$h,concat=uncurryThis([].concat),ownKeys$A=getBuiltIn("Reflect","ownKeys")||function j(_e){var et=getOwnPropertyNamesModule.f(anObject$1(_e)),tt=getOwnPropertySymbolsModule.f;return tt?concat(et,tt(_e)):et},$$2=_export$1,DESCRIPTORS$2=descriptors$1,ownKeys$z=ownKeys$A,toIndexedObject=toIndexedObject$e,getOwnPropertyDescriptorModule=objectGetOwnPropertyDescriptor$1,createProperty=createProperty$5;$$2({target:"Object",stat:!0,sham:!DESCRIPTORS$2},{getOwnPropertyDescriptors:function j(_e){for(var et=toIndexedObject(_e),tt=getOwnPropertyDescriptorModule.f,rt=ownKeys$z(et),nt={},ot=0,it,st;rt.length>ot;)st=tt(et,it=rt[ot++]),st!==void 0&&createProperty(nt,it,st);return nt}});var path$3=path$h,getOwnPropertyDescriptors$2=path$3.Object.getOwnPropertyDescriptors,parent$2=getOwnPropertyDescriptors$2,getOwnPropertyDescriptors$1=parent$2,getOwnPropertyDescriptors=getOwnPropertyDescriptors$1;const _Object$getOwnPropertyDescriptors=getDefaultExportFromCjs(getOwnPropertyDescriptors);var defineProperties$4={exports:{}},$$1=_export$1,DESCRIPTORS$1=descriptors$1,defineProperties$3=objectDefineProperties$1.f;$$1({target:"Object",stat:!0,forced:Object.defineProperties!==defineProperties$3,sham:!DESCRIPTORS$1},{defineProperties:defineProperties$3});var path$2=path$h,Object$1=path$2.Object,defineProperties$2=defineProperties$4.exports=function j(_e,et){return Object$1.defineProperties(_e,et)};Object$1.defineProperties.sham&&(defineProperties$2.sham=!0);var definePropertiesExports=defineProperties$4.exports,parent$1=definePropertiesExports,defineProperties$1=parent$1,defineProperties=defineProperties$1;const _Object$defineProperties=getDefaultExportFromCjs(defineProperties);var defineProperty$1=defineProperty$5;const _Object$defineProperty=getDefaultExportFromCjs(defineProperty$1);function insertWithoutScoping(j,_e){if(j.inserted[_e.name]===void 0)return j.insert("",_e,j.sheet,!0)}function merge(j,_e,et){var tt=[],rt=getRegisteredStyles(j,tt,et);return tt.length<2?et:rt+_e(tt)}var createEmotion=function j(_e){var et=createCache(_e);et.sheet.speedy=function(it){this.isSpeedy=it},et.compat=!0;var tt=function(){for(var st=arguments.length,lt=new Array(st),ut=0;ut1&&arguments[1]!==void 0?arguments[1]:"white",et="background-color: ".concat(j,"; border-radius: 4px; padding: 2px 4px;");return _e&&(et+=" color: ".concat(_e,";")),[et,""]}function format(j,_e){for(var et,tt,rt=arguments.length,nt=new Array(rt>2?rt-2:0),ot=2;ot1&&arguments[1]!==void 0?arguments[1]:{},et=_e.force,tt=et===void 0?!1:et;return tt?function(){for(var rt=arguments.length,nt=new Array(rt),ot=0;ot_e?(j.apply(void 0,nt),et=it):(clearTimeout(tt),tt=_setTimeout(function(){j.apply(void 0,nt),et=_Date$now()},Math.max(0,_e-it+et)))}}var EventSpy=function j(_e){var et=_e.debounce,tt=_e.name,rt=_e.onEvent,nt=_e.target,ot=reactExports.useRef();ot.current=rt;var it=reactExports.useMemo(function(){return debounceFn(function(lt){var ut=ot.current;ut&&ut(lt)},et)},[et,ot]),st=reactExports.useCallback(function(lt){lt.timeStampLow=_Date$now(),it(lt)},[it]);return reactExports.useLayoutEffect(function(){return nt.addEventListener(tt,st,{passive:!0}),st({target:nt,type:tt}),function(){return nt.removeEventListener(tt,st)}},[tt,st,nt]),!1};EventSpy.defaultProps={debounce:200};var mathSign$1=Math.sign||function j(_e){var et=+_e;return et===0||et!==et?et:et<0?-1:1},$=_export$1,sign$4=mathSign$1;$({target:"Math",stat:!0},{sign:sign$4});var path=path$h,sign$3=path.Math.sign,parent=sign$3,sign$2=parent,sign$1=sign$2;const _Math$sign=getDefaultExportFromCjs(sign$1);function squareStepper(j,_e){var et=_Math$sign(_e-j),tt=Math.sqrt(Math.abs(_e-j)),rt=j+tt*et;return et>0?Math.min(_e,rt):Math.max(_e,rt)}function step(j,_e,et,tt){for(var rt=j,nt=0;nt4&&arguments[4]!==void 0?arguments[4]:_Date$now();(ct==="100%"||typeof ct=="number")&&(cancelAnimationFrame(ot.current),ot.current=requestAnimationFrame(function(){if(rt){var pt=ct==="100%"?rt.scrollHeight-rt.offsetHeight:ct,gt=step(ut,pt,squareStepper,(_Date$now()-ft)/5);Math.abs(pt-gt)<1.5&&(gt=pt),rt[lt]=gt,pt===gt?tt&&tt(!0):it(lt,ut,ct,dt+1,ft)}}))},[ot,tt,rt]),st=reactExports.useCallback(function(){cancelAnimationFrame(ot.current),tt&&tt(!1)},[tt]);return reactExports.useLayoutEffect(function(){return it(et,rt[et],nt,1),rt?(rt.addEventListener("pointerdown",st,{passive:!0}),rt.addEventListener("wheel",st,{passive:!0}),function(){rt.removeEventListener("pointerdown",st),rt.removeEventListener("wheel",st),cancelAnimationFrame(ot.current)}):function(){return cancelAnimationFrame(ot.current)}},[it,ot,st,et,rt,nt]),!1};SpineTo.propTypes={name:PropTypes.string.isRequired,onEnd:PropTypes.func,target:PropTypes.any.isRequired,value:PropTypes.oneOfType([PropTypes.number,PropTypes.oneOf(["100%"])]).isRequired};function useStateRef(j){var _e=reactExports.useState(j),et=_slicedToArray$c(_e,2),tt=et[0],rt=et[1],nt=reactExports.useRef(),ot=reactExports.useCallback(function(it){typeof it=="function"?ot(function(st){return it=it(st),nt.current=it,it}):(nt.current=it,ot(it))},[nt]);return nt.current=tt,[tt,rt,nt]}function ownKeys$y(j,_e){var et=_Object$keys(j);if(_Object$getOwnPropertySymbols){var tt=_Object$getOwnPropertySymbols(j);_e&&(tt=_filterInstanceProperty(tt).call(tt,function(rt){return _Object$getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$y(j){for(var _e=1;_e",{force:nt})},[nt]);it=it===MODE_TOP?MODE_TOP:MODE_BOTTOM;var ct=reactExports.useRef(0),dt=reactExports.useRef(ot),ft=useStateRef(it===MODE_TOP?0:"100%"),pt=_slicedToArray$c(ft,3),gt=pt[0],vt=pt[1],bt=pt[2],_t=useStateRef(null),xt=_slicedToArray$c(_t,3),yt=xt[0],Et=xt[1],St=xt[2],$t=reactExports.useRef(0),At=reactExports.useRef(0),wt=reactExports.useRef(0),Ct=reactExports.useState(!0),It=_slicedToArray$c(Ct,2),Ot=It[0],Nt=It[1],Pt=reactExports.useState(!0),Mt=_slicedToArray$c(Pt,2),Rt=Mt[0],Lt=Mt[1],jt=reactExports.useState(!0),Gt=_slicedToArray$c(jt,2),Vt=Gt[0],Yt=Gt[1],Xt=reactExports.useState(!1),rr=_slicedToArray$c(Xt,2),cr=rr[0],vr=rr[1],Tr=useStateRef(!0),gr=_slicedToArray$c(Tr,3),Er=gr[0],qt=gr[1],ir=gr[2],hr=reactExports.useRef([]),nr=reactExports.useCallback(function(Jt){var ur=St.current;return hr.current.push(Jt),ur&&Jt({scrollTop:ur.scrollTop}),function(){var br=hr.current,Sr=_indexOfInstanceProperty(br).call(br,Jt);~Sr&&_spliceInstanceProperty(br).call(br,Sr,1)}},[hr,St]),mr=reactExports.useCallback(function(){var Jt=bt.current;ut(function(){var ur;return _concatInstanceProperty(ur=["%cSpineTo%c: %conEnd%c is fired."]).call(ur,_toConsumableArray$b(styleConsole("magenta")),_toConsumableArray$b(styleConsole("orange")),[{animateTo:Jt}])}),ct.current=_Date$now(),isEnd(Jt,it)||qt(!1),vt(null)},[bt,ut,ct,it,vt,qt]),Ar=reactExports.useCallback(function(Jt){var ur=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},br=ur.behavior,Sr=St.current;if(typeof Jt!="number"&&Jt!=="100%")return console.warn('react-scroll-to-bottom: Arguments passed to scrollTo() must be either number or "100%".');ut(function(){var yr;return[_concatInstanceProperty(yr=["%cscrollTo%c: Will scroll to %c".concat(typeof Jt=="number"?Jt+"px":Jt.replace(/%/g,"%%"),"%c")]).call(yr,_toConsumableArray$b(styleConsole("lime","")),_toConsumableArray$b(styleConsole("purple"))),{behavior:br,nextAnimateTo:Jt,target:Sr}]}),br==="auto"?(mr(),Sr&&(Sr.scrollTop=Jt==="100%"?Sr.scrollHeight-Sr.offsetHeight:Jt)):(br!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollTo". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.'),vt(Jt)),isEnd(Jt,it)&&(ut(function(){var yr;return[_concatInstanceProperty(yr=["%cscrollTo%c: Scrolling to end, will set sticky to %ctrue%c."]).call(yr,_toConsumableArray$b(styleConsole("lime","")),_toConsumableArray$b(styleConsole("purple"))),[{mode:it,nextAnimateTo:Jt}]]}),qt(!0))},[ut,mr,it,vt,qt,St]),Or=reactExports.useCallback(function(){var Jt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ur=Jt.behavior;ut(function(){var br;return _concatInstanceProperty(br=["%cscrollToBottom%c: Called"]).call(br,_toConsumableArray$b(styleConsole("yellow","")))}),ur!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToBottom". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.'),Ar("100%",{behavior:ur||"smooth"})},[ut,Ar]),wr=reactExports.useCallback(function(){var Jt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ur=Jt.behavior;ut(function(){var br;return _concatInstanceProperty(br=["%cscrollToTop%c: Called"]).call(br,_toConsumableArray$b(styleConsole("yellow","")))}),ur!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToTop". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.'),Ar(0,{behavior:ur||"smooth"})},[ut,Ar]),Nr=reactExports.useCallback(function(){var Jt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ur=Jt.behavior;ut(function(){var Sr;return _concatInstanceProperty(Sr=["%cscrollToEnd%c: Called"]).call(Sr,_toConsumableArray$b(styleConsole("yellow","")))}),ur!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToEnd". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.');var br={behavior:ur||"smooth"};it===MODE_TOP?wr(br):Or(br)},[ut,it,Or,wr]),Wr=reactExports.useCallback(function(){var Jt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ur=Jt.behavior;ut(function(){var Sr;return _concatInstanceProperty(Sr=["%cscrollToStart%c: Called"]).call(Sr,_toConsumableArray$b(styleConsole("yellow","")))}),ur!=="smooth"&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToStart". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.');var br={behavior:ur||"smooth"};it===MODE_TOP?Or(br):wr(br)},[ut,it,Or,wr]),Vr=reactExports.useCallback(function(){var Jt=St.current;if(Jt){if(dt.current==="auto"){ut(function(){var xn;return _concatInstanceProperty(xn=["%ctarget changed%c: Initial scroll"]).call(xn,_toConsumableArray$b(styleConsole("blue")))}),Jt.scrollTop=it===MODE_TOP?0:Jt.scrollHeight-Jt.offsetHeight,dt.current=!1;return}var ur=$t.current,br=Jt.offsetHeight,Sr=Jt.scrollHeight,yr=Jt.scrollTop,Cr=it===MODE_TOP?0:Math.max(0,Sr-br-yr),Lr=Math.max(0,ur-yr),Xr=lt({maxValue:Cr,minValue:Lr,offsetHeight:br,scrollHeight:Sr,scrollTop:yr}),qr=Math.max(0,Math.min(Cr,Xr)),Qr;it===MODE_TOP||qr!==Cr?Qr=yr+qr:Qr="100%",ut(function(){var xn,wn,nn;return[_concatInstanceProperty(xn=[_concatInstanceProperty(wn=_concatInstanceProperty(nn="%cscrollToSticky%c: Will animate from %c".concat(ur,"px%c to %c")).call(nn,typeof Qr=="number"?Qr+"px":Qr.replace(/%/g,"%%"),"%c (%c")).call(wn,(Qr==="100%"?Cr:Qr)+ur,"px%c)")]).call(xn,_toConsumableArray$b(styleConsole("orange")),_toConsumableArray$b(styleConsole("purple")),_toConsumableArray$b(styleConsole("purple")),_toConsumableArray$b(styleConsole("purple"))),{animateFrom:ur,maxValue:Cr,minValue:Lr,nextAnimateTo:Qr,nextValue:qr,offsetHeight:br,rawNextValue:Xr,scrollHeight:Sr,scrollTop:yr}]}),Ar(Qr,{behavior:"smooth"})}},[$t,ut,it,lt,Ar,St]),Jr=reactExports.useCallback(function(Jt){var ur,br=Jt.timeStampLow,Sr=bt.current,yr=St.current,Cr=Sr!==null;if(!(br<=ct.current||!yr)){var Lr=computeViewState({mode:it,target:yr}),Xr=Lr.atBottom,qr=Lr.atEnd,Qr=Lr.atStart,xn=Lr.atTop;Nt(Xr),Lt(qr),vr(Qr),Yt(xn);var wn=yr.offsetHeight,nn=yr.scrollHeight,Ln=At.current,zn=wt.current,En=wn!==Ln,sn=nn!==zn;if(En&&(At.current=wn),sn&&(wt.current=nn),!En&&!sn){var Dn=Cr&&isEnd(Sr,it)||qr;ir.current!==Dn&&(ut(function(){var In,Cn,cn,Ur;return[_concatInstanceProperty(In=["%conScroll%c: %csetSticky%c(%c".concat(Dn,"%c)")]).call(In,_toConsumableArray$b(styleConsole("red")),_toConsumableArray$b(styleConsole("red")),_toConsumableArray$b(styleConsole("purple"))),_concatInstanceProperty(Cn=[_concatInstanceProperty(cn=_concatInstanceProperty(Ur="(animating = %c".concat(Cr,"%c && isEnd = %c")).call(Ur,isEnd(Sr,it),"%c) || atEnd = %c")).call(cn,qr,"%c")]).call(Cn,_toConsumableArray$b(styleConsole("purple")),_toConsumableArray$b(styleConsole("purple")),_toConsumableArray$b(styleConsole("purple")),[{animating:Cr,animateTo:Sr,atEnd:qr,mode:it,offsetHeight:yr.offsetHeight,scrollHeight:yr.scrollHeight,sticky:ir.current,nextSticky:Dn}])]}),qt(Dn))}else ir.current&&(ut(function(){var In;return[_concatInstanceProperty(In=["%conScroll%c: Size changed while sticky, calling %cscrollToSticky()%c"]).call(In,_toConsumableArray$b(styleConsole("red")),_toConsumableArray$b(styleConsole("orange")),[{offsetHeightChanged:En,scrollHeightChanged:sn}]),{nextOffsetHeight:wn,prevOffsetHeight:Ln,nextScrollHeight:nn,prevScrollHeight:zn}]}),Vr());var Mn=yr.scrollTop;_forEachInstanceProperty(ur=hr.current).call(ur,function(In){return In({scrollTop:Mn})})}},[bt,ut,ct,it,At,wt,hr,Vr,Nt,Lt,vr,Yt,qt,ir,St]);reactExports.useEffect(function(){if(yt){var Jt=!1,ur=setImmediateInterval(function(){var br=St.current,Sr=bt.current!==null;ir.current?computeViewState({mode:it,target:br}).atEnd?Jt=!1:Jt?_Date$now()-Jt>SCROLL_DECISION_DURATION&&(Sr||($t.current=br.scrollTop,ut(function(){var yr;return _concatInstanceProperty(yr=["%cInterval check%c: Should sticky but not at end, calling %cscrollToSticky()%c to scroll"]).call(yr,_toConsumableArray$b(styleConsole("navy")),_toConsumableArray$b(styleConsole("orange")))}),Vr()),Jt=!1):Jt=_Date$now():br.scrollHeight<=br.offsetHeight&&!ir.current&&(ut(function(){var yr;return[_concatInstanceProperty(yr=["%cInterval check%c: Container is emptied, setting sticky back to %ctrue%c"]).call(yr,_toConsumableArray$b(styleConsole("navy")),_toConsumableArray$b(styleConsole("purple"))),[{offsetHeight:br.offsetHeight,scrollHeight:br.scrollHeight,sticky:ir.current}]]}),qt(!0))},Math.max(MIN_CHECK_INTERVAL,et)||MIN_CHECK_INTERVAL);return function(){return clearInterval(ur)}}},[bt,et,ut,it,Vr,qt,ir,yt,St]);var Yr=reactExports.useMemo(function(){var Jt=emotionPool[st]||(emotionPool[st]=createEmotion({key:"react-scroll-to-bottom--css-"+useCSSKey(),nonce:st}));return function(ur){return Jt.css(ur)+""}},[st]),jr=reactExports.useMemo(function(){return{observeScrollPosition:nr,setTarget:Et,styleToClassName:Yr}},[nr,Et,Yr]),Hr=reactExports.useMemo(function(){return{atBottom:Ot,atEnd:Rt,atStart:cr,atTop:Vt,mode:it}},[Ot,Rt,cr,Vt,it]),hn=reactExports.useMemo(function(){var Jt=gt!==null;return{animating:Jt,animatingToEnd:Jt&&isEnd(gt,it),sticky:Er}},[gt,it,Er]),pr=reactExports.useMemo(function(){return _objectSpread$y(_objectSpread$y({},Hr),hn)},[Hr,hn]),sr=reactExports.useMemo(function(){return{scrollTo:Ar,scrollToBottom:Or,scrollToEnd:Nr,scrollToStart:Wr,scrollToTop:wr}},[Ar,Or,Nr,Wr,wr]);return reactExports.useEffect(function(){if(yt){var Jt=function(){wt.current=yt.scrollHeight};return yt.addEventListener("focus",Jt,{capture:!0,passive:!0}),function(){return yt.removeEventListener("focus",Jt)}}},[yt]),ut(function(){var Jt;return[_concatInstanceProperty(Jt=["%cRender%c: Render"]).call(Jt,_toConsumableArray$b(styleConsole("cyan",""))),{animateTo:gt,animating:gt!==null,sticky:Er,target:yt}]}),React.createElement(context.Provider,{value:jr},React.createElement(context$4.Provider,{value:sr},React.createElement(context$1.Provider,{value:pr},React.createElement(context$3.Provider,{value:Hr},React.createElement(context$2.Provider,{value:hn},tt,yt&&React.createElement(EventSpy,{debounce:rt,name:"scroll",onEvent:Jr,target:yt}),yt&>!==null&&React.createElement(SpineTo,{name:"scrollTop",onEnd:mr,target:yt,value:gt}))))))};Composer.defaultProps={checkInterval:100,children:void 0,debounce:17,debug:void 0,initialScrollBehavior:"smooth",mode:void 0,nonce:void 0,scroller:DEFAULT_SCROLLER};Composer.propTypes={checkInterval:PropTypes.number,children:PropTypes.any,debounce:PropTypes.number,debug:PropTypes.bool,initialScrollBehavior:PropTypes.oneOf(["auto","smooth"]),mode:PropTypes.oneOf(["bottom","top"]),nonce:PropTypes.string,scroller:PropTypes.func};var ROOT_STYLE$1={height:"100%",overflowY:"auto",width:"100%"},Panel=function j(_e){var et=_e.children,tt=_e.className,rt=reactExports.useContext(context),nt=rt.setTarget,ot=useStyleToClassName()(ROOT_STYLE$1);return React.createElement("div",{className:classNames(ot,(tt||"")+""),ref:nt},et)};Panel.defaultProps={children:void 0,className:void 0};Panel.propTypes={children:PropTypes.any,className:PropTypes.string};var ROOT_STYLE={position:"relative"},BasicScrollToBottomCore=function j(_e){var et=_e.children,tt=_e.className,rt=_e.followButtonClassName,nt=_e.scrollViewClassName,ot=useStyleToClassName()(ROOT_STYLE);return React.createElement("div",{className:classNames(ot,(tt||"")+"")},React.createElement(Panel,{className:(nt||"")+""},et),React.createElement(AutoHideFollowButton,{className:(rt||"")+""}))};BasicScrollToBottomCore.defaultProps={children:void 0,className:void 0,followButtonClassName:void 0,scrollViewClassName:void 0};BasicScrollToBottomCore.propTypes={children:PropTypes.any,className:PropTypes.string,followButtonClassName:PropTypes.string,scrollViewClassName:PropTypes.string};var BasicScrollToBottom=function j(_e){var et=_e.checkInterval,tt=_e.children,rt=_e.className,nt=_e.debounce,ot=_e.debug,it=_e.followButtonClassName,st=_e.initialScrollBehavior,lt=_e.mode,ut=_e.nonce,ct=_e.scroller,dt=_e.scrollViewClassName;return React.createElement(Composer,{checkInterval:et,debounce:nt,debug:ot,initialScrollBehavior:st,mode:lt,nonce:ut,scroller:ct},React.createElement(BasicScrollToBottomCore,{className:rt,followButtonClassName:it,scrollViewClassName:dt},tt))};BasicScrollToBottom.defaultProps={checkInterval:void 0,children:void 0,className:void 0,debounce:void 0,debug:void 0,followButtonClassName:void 0,initialScrollBehavior:"smooth",mode:void 0,nonce:void 0,scroller:void 0,scrollViewClassName:void 0};BasicScrollToBottom.propTypes={checkInterval:PropTypes.number,children:PropTypes.any,className:PropTypes.string,debounce:PropTypes.number,debug:PropTypes.bool,followButtonClassName:PropTypes.string,initialScrollBehavior:PropTypes.oneOf(["auto","smooth"]),mode:PropTypes.oneOf(["bottom","top"]),nonce:PropTypes.string,scroller:PropTypes.func,scrollViewClassName:PropTypes.string};addVersionToMetaTag();const capitalizeFirstLetter=j=>j.charAt(0).toUpperCase()+j.slice(1),getSenderNameByLLMMessage=j=>j.role&&j.name?`${j.role}: ${j.name}`:j.role?j.role:j.name?j.name:"user",defaultCalcContentForCopy=j=>JSON.stringify(j.content),messageRoleToCategory=j=>{switch(j){case"system":return ChatMessageCategory.System;case"user":return ChatMessageCategory.User;default:return ChatMessageCategory.Chatbot}};function MessageSenderRenderer(j){const{data:_e,position:et,className:tt}=j,rt=useStyles$2(),nt=_e.timestamp?dayjs(_e.timestamp).format("h:mm A"):null,[ot,it]=_e.from.split(": ");return jsxRuntimeExports.jsxs("div",{className:mergeClasses(rt.container,tt),"data-position":et,children:[jsxRuntimeExports.jsxs("span",{className:rt.name,"data-position":et,"data-category":_e.category,children:[ot,it&&jsxRuntimeExports.jsxs("span",{children:[": ",jsxRuntimeExports.jsx("strong",{children:it})]})]}),nt&&jsxRuntimeExports.jsx("span",{className:rt.time,children:nt})]})}MessageSenderRenderer.displayName="MessageSenderRenderer";const useStyles$2=makeStyles({container:{display:"flex",flexWrap:"nowrap",alignItems:"center",justifyContent:"flex-start",fontSize:"0.75rem",'&&[data-position="right"]':{justifyContent:"flex-end"},color:tokens.colorNeutralForeground3},name:{...shorthands.margin("0px","6px","0px","0px"),fontSize:tokens.fontSizeBase200,lineHeight:tokens.lineHeightBase200,[`&&[data-category="${ChatMessageCategory.System}"]`]:{...shorthands.margin("0px","6px","0px","12px")}},time:{}}),OpenAIIcon=()=>jsxRuntimeExports.jsxs("svg",{fill:"currentColor",width:"20px",height:"20px",viewBox:"0 0 2048 2048",role:"img",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("title",{children:"OpenAI icon"}),jsxRuntimeExports.jsx("path",{d:"M832 676l575 288v760l-575 288-575-288V964l575-288zm0 144l-368 184 368 183 368-183-368-184zm-447 825l383 191v-538l-383-191v538zm894 0v-538l-383 191v538l383-191zm577-733q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9zM704 496q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9zm1206-48q0 23-15 38t-39 16q-27 0-57 11t-58 28-54 37-45 40q-19 19-39 44t-38 54-28 59-11 57q0 23-15 38t-39 16q-23 0-38-15t-16-39q0-27-11-57t-28-58-37-54-40-45q-19-19-44-39t-54-38-59-28-57-11q-23 0-38-15t-16-39q0-23 15-38t39-16q27 0 57-11t58-28 54-37 45-40q19-19 39-44t38-54 28-59 11-57q0-23 15-38t39-16q23 0 38 15t16 39q0 27 11 57t28 58 37 54 40 45q19 19 44 39t54 38 59 28 57 11q23 0 38 15t16 39zm-438 212q38-65 92-119t120-93q-65-38-119-92t-93-120q-38 65-92 119t-120 93q65 38 119 92t93 120z"})]});var RichContentType=(j=>(j.TEXT="text",j.IMAGE_URL="image_url",j.IMAGE_FILE="image_file",j))(RichContentType||{});const ErrorMessage=({error:j})=>{const _e=useLocStrings();return jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[jsxRuntimeExports.jsx(ErrorCircle16Filled,{style:{color:tokens.colorStatusDangerForeground1}}),jsxRuntimeExports.jsxs("div",{children:[_e.Error,": ",j.message]})]})},RichTextChatboxMessageContent=j=>{const{content:_e,className:et}=j,tt=_e.map(lt=>lt.function_call).filter(Boolean),rt=reactExports.useMemo(()=>_e.map(lt=>weaveRichNodesIntoMarkup(lt.content??"")).join(` +`);break}case ParagraphType:{const nt=rt.children;for(const ot of nt)tt(ot);break}case TextType:{const nt=rt.text,ot=et[et.length-1];(ot==null?void 0:ot.type)===RichEditorContentType.TEXT?ot.value+=nt:et.push({type:RichEditorContentType.TEXT,value:nt});break}default:throw new TypeError(`[RichEditor] [extractEditorData] Unknown node.type: (${rt.type})`)}}},replaceImageSrc=(j,_e,et)=>{j.update(()=>{const tt=Lexical_1.$getRoot();rt(tt);function rt(nt){switch(nt.getType()){case RootType:case ParagraphType:for(const ot of nt.getChildren())rt(ot);break;case ImageType:{const ot=nt;if(ot.getSrc()===_e){const it=$createImageNode({alt:ot.getAltText(),src:et});ot.replace(it)}break}}}})};class RichEditor extends reactExports.Component{constructor(_e){super(_e),this.state={floatingAnchorElem:null};const{editable:et=!0,initialContent:tt}=this.props;this.initialConfig={namespace:"react-simple-rich-editor",theme:{ltr:"ltr",rtl:"rtl",placeholder:classes.editorPlaceholder,paragraph:classes.editorParagraph},nodes:[ImageNode,LexicalLink_1.LinkNode],editable:et,editorState:tt?resetEditorState(tt):null,onError:rt=>{console.error(rt)}},this.onKeyDown=this.onKeyDown.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),this.onChange=this.onChange.bind(this),this.onEditorInputWrapperRef=this.onEditorInputWrapperRef.bind(this)}render(){const{initialConfig:_e,onKeyDown:et,onFocus:tt,onBlur:rt,onChange:nt,onEditorInputWrapperRef:ot}=this,{editable:it=!0,placeholder:st="Enter some text...",pluginsBeforeRichEditors:lt=[],pluginsAfterRichEditors:ut=[]}=this.props,{floatingAnchorElem:ct}=this.state,dt=mergeStyles$1(classes.editorContainer,this.props.editorContainerCls),ft=mergeStyles$1(classes.editorInput,this.props.editorInputCls),pt=mergeStyles$1(classes.editorInputBox,this.props.editorInputBoxCls),gt=mergeStyles$1(classes.editorPlaceholder,this.props.editorPlaceholderCls),mt=jsxRuntimeExports.jsx("div",{ref:ot,className:pt,children:jsxRuntimeExports.jsx(LexicalContentEditable_1.ContentEditable,{onFocus:tt,onBlur:rt,className:ft})});return jsxRuntimeExports.jsxs(LexicalComposer_1.LexicalComposer,{initialConfig:_e,children:[jsxRuntimeExports.jsx(EditablePlugin,{editable:it}),jsxRuntimeExports.jsx(CommandPlugin,{}),jsxRuntimeExports.jsxs("div",{className:dt,children:[lt,jsxRuntimeExports.jsx(LexicalRichTextPlugin_1.RichTextPlugin,{contentEditable:mt,placeholder:jsxRuntimeExports.jsx("div",{className:gt,children:st}),ErrorBoundary:LexicalErrorBoundary$1}),ut,jsxRuntimeExports.jsx(OnKeyDownPlugin,{onKeyDown:et}),jsxRuntimeExports.jsx(LexicalOnChangePlugin_1.OnChangePlugin,{onChange:nt}),jsxRuntimeExports.jsx(DragDropPastePlugin,{}),jsxRuntimeExports.jsx(PlainContentPastePlugin,{}),jsxRuntimeExports.jsx(ImagesPlugin,{}),jsxRuntimeExports.jsx(LexicalHistoryPlugin_1.HistoryPlugin,{}),ct&&jsxRuntimeExports.jsx(DraggableBlockPlugin,{anchorElem:ct})]})]})}onKeyDown(_e){var et,tt;(tt=(et=this.props).onKeyDown)==null||tt.call(et,_e)}onFocus(_e){var et,tt;(tt=(et=this.props).onFocus)==null||tt.call(et,_e)}onBlur(_e){var et,tt;(tt=(et=this.props).onBlur)==null||tt.call(et,_e)}onChange(_e){var et,tt;(tt=(et=this.props).onChange)==null||tt.call(et,_e)}onEditorInputWrapperRef(_e){_e!==null&&this.setState({floatingAnchorElem:_e})}}const classes=mergeStyleSets({editorContainer:{boxSizing:"border-box",position:"relative"},editorInputBox:{boxSizing:"border-box",overflow:"auto",border:"none",position:"relative",fontWeight:"400",textAlign:"left"},editorInput:{overflow:"auto",boxSizing:"border-box",resize:"none",fontSize:"15px",position:"relative",tabSize:"1",outline:"0","> :last-child":{marginBottom:0}},editorPlaceholder:{boxSizing:"border-box",color:"#999",overflow:"hidden",position:"absolute",textOverflow:"ellipsis",top:"0px",left:"0px",fontSize:"15px",userSelect:"none",display:"inline-block",pointerEvents:"none",width:"100%"},editorParagraph:{margin:"0 0 15px 0",position:"relative"}}),ReactRichEditor=reactExports.forwardRef((j,_e)=>{const[et]=reactExports.useState(()=>new RichEditorViewModel({extractEditorData,replaceImageSrc,resetEditorState})),tt=reactExports.useMemo(()=>({viewmodel:et}),[et]);return et.resolveUrlByFile$.next(j.resolveUrlByFile),et.resolveUrlByPath$.next(j.resolveUrlByPath),reactExports.useImperativeHandle(_e,()=>({focus:()=>{tt.viewmodel.focus()},getContent:()=>tt.viewmodel.getContent(),insert:rt=>{tt.viewmodel.insert(rt)},isEmpty:()=>tt.viewmodel.isEmpty(),replaceImageSrc:(rt,nt)=>{tt.viewmodel.replaceImageSrc(rt,nt)},reset:rt=>{tt.viewmodel.reset(rt)}})),jsxRuntimeExports.jsx(RichEditorContextType.Provider,{value:tt,children:jsxRuntimeExports.jsx(RichEditor,{...j})})});ReactRichEditor.displayName="ReactRichEditor";makeStyles({editor:{...shorthands.padding("8px"),...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),boxSizing:"border-box",display:"block",width:"100%",userSelect:"none",position:"relative"}});makeStyles({chatbox:{...shorthands.borderRadius("8px"),display:"flex",flexDirection:"column",alignItems:"stretch",backgroundColor:tokens.colorNeutralBackground1,width:"100%",height:"100%",boxShadow:"0px 6.4px 14.4px rgba(0, 0, 0, 0.132), 0px 1.2px 3.6px rgba(0, 0, 0, 0.108)","::-webkit-scrollbar":{width:"4px",backgroundColor:tokens.colorNeutralBackground1Hover},"::-webkit-scrollbar-thumb":{backgroundColor:tokens.colorScrollbarOverlay,...shorthands.border("1px","solid",tokens.colorNeutralBackground1),...shorthands.borderRadius("9999px")},"::-webkit-scrollbar-thumb:hover":{backgroundColor:tokens.colorNeutralForeground1Static},"::-webkit-scrollbar-track":{...shorthands.borderRadius("9999px"),backgroundColor:"transparent"}},header:{...shorthands.flex(0,0,"auto")},main:{...shorthands.flex(1,1,"auto"),...shorthands.overflow("hidden","auto")},footer:{...shorthands.flex(0,0,"auto")}});makeStyles({header:{},topbar:{...shorthands.padding("0px","16px"),...shorthands.borderBottom("1px","solid",tokens.colorNeutralBackground5),boxSizing:"border-box",display:"flex",justifyContent:"space-between",alignItems:"center",height:"48px"},toolbarTitle:{display:"flex",alignItems:"center",columnGap:"2px"},toolbarActionButton:{color:tokens.colorNeutralForeground2}});makeStyles({main:{...shorthands.padding("0","16px"),...shorthands.overflow("hidden","auto"),height:"100%"}});makeStyles({footer:{...shorthands.padding("16px"),boxSizing:"border-box"},footerContainer:{display:"flex"},leftToolbar:{...shorthands.flex(0,0,"auto")},editor:{...shorthands.flex(1),boxSizing:"border-box"},validation:{boxSizing:"border-box"},validationInner:{...shorthands.border("1px","solid",tokens.colorNeutralBackground5),...shorthands.borderRadius("4px"),...shorthands.margin("8px","0px"),...shorthands.padding("2px","8px"),backgroundColor:tokens.colorStatusWarningBackground1,color:tokens.colorStatusWarningForeground1}});const capitalizeFirstLetter=j=>j.charAt(0).toUpperCase()+j.slice(1),getSenderNameByLLMMessage=j=>j.role&&j.name?`${j.role}: ${j.name}`:j.role?j.role:j.name?j.name:"user",defaultCalcContentForCopy=j=>JSON.stringify(j.content),messageRoleToCategory=j=>{switch(j){case"system":return ChatMessageCategory.System;case"user":return ChatMessageCategory.User;default:return ChatMessageCategory.Chatbot}};function MessageSenderRenderer(j){const{data:_e,position:et,className:tt}=j,rt=useStyles$2(),nt=_e.timestamp?dayjs(_e.timestamp).format("h:mm A"):null,[ot,it]=_e.from.split(": ");return jsxRuntimeExports.jsxs("div",{className:mergeClasses(rt.container,tt),"data-position":et,children:[jsxRuntimeExports.jsxs("span",{className:rt.name,"data-position":et,"data-category":_e.category,children:[ot,it&&jsxRuntimeExports.jsxs("span",{children:[": ",jsxRuntimeExports.jsx("strong",{children:it})]})]}),nt&&jsxRuntimeExports.jsx("span",{className:rt.time,children:nt})]})}MessageSenderRenderer.displayName="MessageSenderRenderer";const useStyles$2=makeStyles({container:{display:"flex",flexWrap:"nowrap",alignItems:"center",justifyContent:"flex-start",fontSize:"0.75rem",'&&[data-position="right"]':{justifyContent:"flex-end"},color:tokens.colorNeutralForeground3},name:{...shorthands.margin("0px","6px","0px","0px"),fontSize:tokens.fontSizeBase200,lineHeight:tokens.lineHeightBase200,[`&&[data-category="${ChatMessageCategory.System}"]`]:{...shorthands.margin("0px","6px","0px","12px")}},time:{}}),OpenAIIcon=()=>jsxRuntimeExports.jsxs("svg",{fill:"currentColor",width:"20px",height:"20px",viewBox:"0 0 2048 2048",role:"img",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("title",{children:"OpenAI icon"}),jsxRuntimeExports.jsx("path",{d:"M832 676l575 288v760l-575 288-575-288V964l575-288zm0 144l-368 184 368 183 368-183-368-184zm-447 825l383 191v-538l-383-191v538zm894 0v-538l-383 191v538l383-191zm577-733q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9zM704 496q-14 0-23-9t-9-23q0-23-9-43t-24-36-35-24-44-9q-14 0-23-9t-9-23q0-14 9-23t23-9q23 0 43-9t36-24 24-35 9-44q0-14 9-23t23-9q14 0 23 9t9 23q0 23 9 43t24 36 35 24 44 9q14 0 23 9t9 23q0 14-9 23t-23 9q-23 0-43 9t-36 24-24 35-9 44q0 14-9 23t-23 9zm1206-48q0 23-15 38t-39 16q-27 0-57 11t-58 28-54 37-45 40q-19 19-39 44t-38 54-28 59-11 57q0 23-15 38t-39 16q-23 0-38-15t-16-39q0-27-11-57t-28-58-37-54-40-45q-19-19-44-39t-54-38-59-28-57-11q-23 0-38-15t-16-39q0-23 15-38t39-16q27 0 57-11t58-28 54-37 45-40q19-19 39-44t38-54 28-59 11-57q0-23 15-38t39-16q23 0 38 15t16 39q0 27 11 57t28 58 37 54 40 45q19 19 44 39t54 38 59 28 57 11q23 0 38 15t16 39zm-438 212q38-65 92-119t120-93q-65-38-119-92t-93-120q-38 65-92 119t-120 93q65 38 119 92t93 120z"})]});var RichContentType=(j=>(j.TEXT="text",j.IMAGE_URL="image_url",j.IMAGE_FILE="image_file",j))(RichContentType||{});const ErrorMessage=({error:j})=>{const _e=useLocStrings();return jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[jsxRuntimeExports.jsx(ErrorCircle16Filled,{style:{color:tokens.colorStatusDangerForeground1}}),jsxRuntimeExports.jsxs("div",{children:[_e.Error,": ",j.message]})]})},RichTextChatboxMessageContent=j=>{const{content:_e,className:et}=j,tt=_e.map(lt=>lt.function_call).filter(Boolean),rt=reactExports.useMemo(()=>_e.map(lt=>weaveRichNodesIntoMarkup(lt.content??"")).join(` -`),[_e]),nt=useStyles$1(),ot=mergeClasses(nt.content,et),it=rt.length===0&&tt.length>0,st=useLocStrings();return jsxRuntimeExports.jsxs("div",{className:ot,children:[!it&&(typeof rt=="string"?jsxRuntimeExports.jsx(MarkdownViewer,{content:rt}):jsxRuntimeExports.jsx(ErrorMessage,{error:rt})),tt.length>0&&jsxRuntimeExports.jsx("h3",{children:st.Function_Calls}),tt.map(lt=>jsxRuntimeExports.jsx(JsonNodeCard,{title:(lt==null?void 0:lt.name)??"Function call",src:lt==null?void 0:lt.arguments},lt==null?void 0:lt.name))]})},useStyles$1=makeStyles({content:{...shorthands.overflow("auto"),wordBreak:"break-all",whiteSpace:"break-spaces"}});function weaveRichNodesIntoMarkup(j){if(typeof j=="string")return j;return Array.isArray(j)?j.map(_e).filter(Boolean).join(` +`),[_e]),nt=useStyles$1(),ot=mergeClasses(nt.content,et,"rich-text-chatbox-message-content"),it=rt.length===0&&tt.length>0,st=useLocStrings();return jsxRuntimeExports.jsxs("div",{className:ot,children:[!it&&(typeof rt=="string"?jsxRuntimeExports.jsx(MarkdownViewer,{content:rt}):jsxRuntimeExports.jsx(ErrorMessage,{error:rt})),tt.length>0&&jsxRuntimeExports.jsx("h3",{children:st.Function_Calls}),tt.map(lt=>jsxRuntimeExports.jsx(JsonNodeCard,{title:(lt==null?void 0:lt.name)??"Function call",src:lt==null?void 0:lt.arguments},lt==null?void 0:lt.name))]})},useStyles$1=makeStyles({content:{...shorthands.overflow("auto"),wordBreak:"break-all",whiteSpace:"break-spaces"}});function weaveRichNodesIntoMarkup(j){if(typeof j=="string")return j;return Array.isArray(j)?j.map(_e).filter(Boolean).join(` -`):new Error("content type is not supported");function _e(et){var tt,rt,nt,ot;switch(et.type){case RichContentType.TEXT:return et.text??"";case RichContentType.IMAGE_URL:return`![${(tt=et.image_url)==null?void 0:tt.url}](${(rt=et.image_url)==null?void 0:rt.url})`;case RichContentType.IMAGE_FILE:return`![${(nt=et.image_file)==null?void 0:nt.path}](${(ot=et.image_file)==null?void 0:ot.path})`;default:return""}}}const useAvatarStyles=makeStyles({avatar:{...shorthands.margin("16px","4px","4px","4px")}}),useMessagesContainerStyles=makeStyles({messagesContainer:{display:"flex",height:"100%"},minimap:{boxSizing:"border-box",...shorthands.flex("0 0 auto"),height:"100%",width:"64px"},minimapInner:{boxSizing:"border-box",...shorthands.border("1px","solid","rgba(0, 0, 128, 0.15)")}}),LLMNodeMessagesList=j=>{const _e=useSelectedSpan(),et=useMessagesContainerStyles(),tt=reactExports.useRef(null),rt=`[data-chatbox-locator="${ChatboxLocator.MessageList}"]`,nt=`[data-chatbox-locator="${ChatboxLocator.MessageContent}"]`,ot=j.messages.map((it,st)=>({id:st,type:ChatMessageType.Message,history:[{content:[{content:it.content??"",name:it.name,role:it.role,timestamp:it.timestamp,function_call:it.function_call}],category:messageRoleToCategory(it.role),from:capitalizeFirstLetter(getSenderNameByLLMMessage(it)),timestamp:it.role==="assistant"?_e==null?void 0:_e.start_time:_e==null?void 0:_e.end_time}]}));return jsxRuntimeExports.jsxs("div",{className:et.messagesContainer,children:[jsxRuntimeExports.jsx("div",{ref:tt,children:jsxRuntimeExports.jsx(ChatboxMessageList,{locStrings:defaultLocStrings$1,messages:ot,calcContentForCopy:defaultCalcContentForCopy})}),jsxRuntimeExports.jsx("div",{className:et.minimap,children:jsxRuntimeExports.jsx(Minimap,{className:et.minimapInner,sourceRootRef:tt,sourceQuerySelector:rt,sourceElementQuerySelector:nt})})]})},MessageAvatarRenderer=({data:j,className:_e})=>{const et=useAvatarStyles();return j.category===ChatMessageCategory.System?jsxRuntimeExports.jsx("div",{className:mergeClasses(et.avatar,_e),children:jsxRuntimeExports.jsx(Alert20Regular,{})}):j.category===ChatMessageCategory.User?jsxRuntimeExports.jsx("div",{className:mergeClasses(et.avatar,_e),children:jsxRuntimeExports.jsx(Person20Regular,{})}):j.category===ChatMessageCategory.Chatbot?jsxRuntimeExports.jsx("div",{className:mergeClasses(et.avatar,_e),children:jsxRuntimeExports.jsx(OpenAIIcon,{})}):null};function ChatboxMessageList(j){const{locStrings:_e,messages:et,calcContentForCopy:tt}=j,rt=useStyles();return jsxRuntimeExports.jsx(BasicScrollToBottom,{className:rt.main,initialScrollBehavior:"auto",children:jsxRuntimeExports.jsx(MessageListRenderer,{calcContentForCopy:tt,locStrings:_e,messages:et,MessageAvatarRenderer,MessageContentRenderer:RichTextChatboxMessageContent,MessageSenderRenderer})})}ChatboxMessageList.displayName="ChatboxMessageList";const useStyles=makeStyles({main:{...shorthands.padding("0","16px"),...shorthands.overflow("auto"),height:"100%"}}),useClasses$c=makeStyles({root:{height:"100%",display:"flex",flexDirection:"column",...shorthands.overflow("auto")},title:{fontSize:"14px",lineHeight:"20px",fontStyle:"italic",fontWeight:400,color:tokens.colorNeutralForeground1},card:{flexGrow:1}}),LLMNodePromptTemplateTab=({promptTemplate:j,templateVariables:_e})=>{const et=useClasses$c(),tt=useMessageCardClasses(),nt=useIsDark()?"vs-dark":"light",ot=useLocStrings();return jsxRuntimeExports.jsxs("div",{className:et.root,children:[jsxRuntimeExports.jsxs(Card,{className:mergeClasses(tt.card,et.card),children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{className:et.title,children:ot.prompt_template})}),jsxRuntimeExports.jsx(JinjaSyntaxHighlighter,{value:j,theme:nt})]}),jsxRuntimeExports.jsxs(Card,{className:tt.card,children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{className:et.title,children:ot.template_variables})}),jsxRuntimeExports.jsx(JsonView,{src:_e})]})]})},LLMNodeRaw=({inputs:j,outputs:_e})=>{const et=useLocStrings();return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[j&&jsxRuntimeExports.jsx(JsonNodeCard,{title:et.Input,src:j}),_e&&jsxRuntimeExports.jsx(JsonNodeCard,{title:et.Output,src:_e})]})},useLLMNodeClasses=makeStyles({root:{height:"100%",display:"flex"},content:{...shorthands.overflow("auto")}}),LLMNodeInfo=()=>{var vt,bt,_t,xt,yt;const j=useSelectedSpan(),_e=(vt=useParentSpanOfSelectedSpan())==null?void 0:vt.attributes,et=useNodeDetailClasses(),tt=JSON.parse(((bt=j==null?void 0:j.attributes)==null?void 0:bt.inputs)??"{}"),rt=(_t=j==null?void 0:j.attributes)==null?void 0:_t["llm.generated_message"],nt=_e==null?void 0:_e["prompt.template"],ot=JSON.parse((_e==null?void 0:_e["prompt.variables"])??"{}"),it=Object.keys(ot??{}),st={},{inputMessages:lt,outputMessages:ut}=useMessagesOfSelectedSpan();Object.keys(tt).forEach(Et=>{Et!=="messages"&&(it.includes(Et)||(st[Et]=tt[Et]))});const ct=[...lt,...ut],[dt,ft]=reactExports.useState("messages"),pt=useLLMNodeClasses(),gt=useLocStrings();return jsxRuntimeExports.jsxs(Card,{className:pt.root,children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:et.headerWrapper,children:[jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",children:gt.llm}),jsxRuntimeExports.jsx("div",{className:et.headerTitle,children:tt.model})]}),jsxRuntimeExports.jsxs(TabList,{selectedValue:dt,onTabSelect:(Et,{value:St})=>ft(St),children:[jsxRuntimeExports.jsx(Tab$1,{value:"messages",children:gt.Conversations}),jsxRuntimeExports.jsx(Tab$1,{value:"raw",children:gt["Input/Output_(JSON)"]}),nt&&jsxRuntimeExports.jsx(Tab$1,{value:"promptTemplate",children:gt.Prompt_Template}),jsxRuntimeExports.jsx(Tab$1,{value:"llmParameters",children:gt.LLM_Parameters})]})]})}),jsxRuntimeExports.jsxs("div",{className:pt.content,children:[dt==="messages"&&jsxRuntimeExports.jsx(LLMNodeMessagesList,{messages:ct}),dt==="promptTemplate"&&nt&&jsxRuntimeExports.jsx(LLMNodePromptTemplateTab,{promptTemplate:nt,templateVariables:ot}),dt==="llmParameters"&&jsxRuntimeExports.jsx(LLMNodeInvocationParametersTab,{invocationParameters:st}),dt==="raw"&&jsxRuntimeExports.jsx(LLMNodeRaw,{inputs:(xt=j==null?void 0:j.attributes)==null?void 0:xt.inputs,outputs:((yt=j==null?void 0:j.attributes)==null?void 0:yt.output)??rt})]})]})},getMimeTypeFromContentType=j=>{var et;return(et=/^\s*([^;\s]*)(?:;|\s|$)/.exec(j))==null?void 0:et[1].toLowerCase()},NodeHttpCard=({type:j})=>{const _e=useLocStrings(),et=useSelectedSpan(),tt=React.useMemo(()=>parseHttpSpanAttributes(et),[et]);if(!tt)return null;const{urlFull:rt}=tt,nt=parseInt(tt.status_code);let ot;nt>=200&&nt<300?ot="success":nt>=400?ot="danger":ot="warning";const it=jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[tt.status_code!==void 0?jsxRuntimeExports.jsxs(Badge$2,{appearance:"outline",color:ot,children:[_e.Status," ",jsxRuntimeExports.jsx("span",{style:{marginLeft:4},children:tt.status_code})]}):null,jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:tt.method}),jsxRuntimeExports.jsx("span",{children:rt})]}),st=j==="response"?tt.response:tt.request;return jsxRuntimeExports.jsx(Card,{style:{marginBottom:12},children:jsxRuntimeExports.jsx(NodeHttpItem,{type:j,header:it,data:st})})},NodeHttpItem=({type:j,header:_e,data:et})=>{const tt=useLocStrings(),{headers:rt,body:nt}=et,ot=JSON.stringify(et),it=j==="response",st=it?"Response":"Request";let lt;if(nt)if(it){const ut=getMimeTypeFromContentType(rt["content-type"]);lt=jsxRuntimeExports.jsx(HttpResponseContent,{mimeType:ut,body:nt})}else lt=jsxRuntimeExports.jsx(JsonNodeCard,{wrapperStyle:{background:tokens.colorNeutralBackground2},src:nt,title:tt[`${st} Body`]});return jsxRuntimeExports.jsx(BasicViewer,{showEmpty:!1,previewRender:()=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(JsonNodeCard,{wrapperStyle:{background:tokens.colorNeutralBackground2},src:rt,title:tt[`${st} Headers`]}),lt]}),rawRender:()=>jsxRuntimeExports.jsx(Card,{style:{wordBreak:"break-all"},children:ot}),headerRender:_e?()=>_e:void 0})},HttpResponseContent=({mimeType:j,body:_e=""})=>{const et=useLocStrings();return j!=null&&j.includes("json")?jsxRuntimeExports.jsx(JsonNodeCard,{wrapperStyle:{background:tokens.colorNeutralBackground2},src:_e,title:et["Response Body"]}):j==="text/event-stream"?jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12,background:tokens.colorNeutralBackground2},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:et["Response Body"]})})}),_e.split("data:").filter(tt=>!!tt).map((tt,rt)=>jsxRuntimeExports.jsxs("div",{children:["data: ",tt]},`${tt}-${rt}`))]}):jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12,background:tokens.colorNeutralBackground2},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:et["Response Body"]})})}),jsxRuntimeExports.jsx("div",{style:{wordBreak:"break-all"},children:_e})]})},NodeToken=({span:j,showDetail:_e=!0})=>{const et=useParseTraceOutput(j);if(!et||typeof et=="string")return null;const tt=et.usage;return!tt||typeof tt=="string"||!tt.total_tokens?null:jsxRuntimeExports.jsx(TokenText,{token:tt.total_tokens,info:_e?jsxRuntimeExports.jsxs("div",{style:{display:"flex",flexDirection:"column",rowGap:6},children:[jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Total tokens",value:tt.total_tokens??0}}),jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Prompt tokens",value:tt.prompt_tokens??0}}),jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Completion tokens",value:tt.completion_tokens??0}})]}):void 0})},SummaryToken=({trace:j,showDetail:_e=!0})=>{const{total_tokens:et,prompt_tokens:tt,completion_tokens:rt}=j;return jsxRuntimeExports.jsx(TokenText,{token:et,info:_e?jsxRuntimeExports.jsxs("div",{style:{display:"flex",flexDirection:"column",rowGap:6},children:[jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Total tokens",value:et}}),tt&&jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Prompt tokens",value:tt}}),rt&&jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Completion tokens",value:rt}})]}):void 0})},RetrievalNodeInfo=()=>{const j=useSelectedSpan(),_e=useLocStrings();if(!(j!=null&&j.attributes))return null;const et=j==null?void 0:j.attributes;let tt=[];if(typeof et["retrieval.documents"]=="string")try{tt=JSON.parse(et["retrieval.documents"])}catch{tt=[]}return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:_e.Query})})}),et["retrieval.query"]??""]}),jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:_e.Documents})})}),tt.map(rt=>jsxRuntimeExports.jsx(Document$1,{document:rt},rt["document.id"]))]})]})},Document$1=({document:j})=>{const _e=useRetrievalNodeDetailClasses(),[et,tt]=reactExports.useState(["content"]),rt=reactExports.useCallback((ot,it)=>{tt(it.openItems)},[]),nt=useLocStrings();return jsxRuntimeExports.jsxs(Card,{style:{background:tokens.colorNeutralBackground2},children:[jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",columnGap:6},children:[jsxRuntimeExports.jsx(Document16Regular,{}),jsxRuntimeExports.jsx("div",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:jsxRuntimeExports.jsx(Tooltip$1,{content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:"id"})," ",j["document.id"]]}),relationship:"description",children:jsxRuntimeExports.jsxs("span",{children:[nt.document," ",j["document.id"]]})})}),jsxRuntimeExports.jsx(Tooltip$1,{content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:nt.score})," ",j["document.score"]]}),relationship:"description",children:jsxRuntimeExports.jsxs(Badge$2,{appearance:"outline",children:["score ",floatFormatter(j["document.score"])]})})]}),jsxRuntimeExports.jsx(Divider$2,{}),jsxRuntimeExports.jsx(Card,{style:{background:tokens.colorNeutralBackground3},children:jsxRuntimeExports.jsx(Accordion,{openItems:et,onToggle:rt,collapsible:!0,multiple:!0,children:jsxRuntimeExports.jsxs(AccordionItem,{value:"content",children:[jsxRuntimeExports.jsx(AccordionHeader,{className:_e.accordionHeader,children:nt.content}),jsxRuntimeExports.jsx(AccordionPanel,{children:jsxRuntimeExports.jsx(MarkdownViewer,{content:j["document.content"]})})]})})}),jsxRuntimeExports.jsx(JsonNodeCard,{title:"metadata",src:j["document.metadata"],wrapperStyle:{background:tokens.colorNeutralBackground3}})]})},NodeDetail=({emptyTip:j=jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:"No Data"})})=>{var pt,gt,vt;const _e=useNodeDetailClasses(),et=useSelectedSpan(),tt=useEvaluationSpansOfSelectedSpan(),rt=useRootSpanIdOfSelectedSpans(),nt=useLocStrings(),ot=getToolTypeFromSpan(et),it=reactExports.useMemo(()=>{var bt;return rt===((bt=et==null?void 0:et.context)==null?void 0:bt.span_id)},[rt,et]),st=reactExports.useMemo(()=>(ot==null?void 0:ot.toLowerCase())==="http",[ot]),lt=st?"response":"info",[ut,ct]=reactExports.useState(lt),dt=((pt=et==null?void 0:et.events)==null?void 0:pt.length)??0,ft=tt.length??0;return et?jsxRuntimeExports.jsxs("div",{className:_e.wrapper,children:[((vt=(gt=et==null?void 0:et.status)==null?void 0:gt.status_code)==null?void 0:vt.toLowerCase())==="error"&&jsxRuntimeExports.jsx(MessageBar,{intent:"error",onClick:()=>{ct("error")},style:{cursor:"pointer"},children:jsxRuntimeExports.jsxs(MessageBarBody,{children:[jsxRuntimeExports.jsxs(MessageBarTitle,{children:[" ",nt.Error]}),et.status.message]})}),jsxRuntimeExports.jsxs("div",{className:_e.headerWrapper,children:[ot&&jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",children:`${ot}`}),jsxRuntimeExports.jsx("div",{className:_e.headerTitle,children:jsxRuntimeExports.jsx(Tooltip$1,{content:(et==null?void 0:et.name)||"",relationship:"description",children:jsxRuntimeExports.jsx("span",{children:et.name})})}),jsxRuntimeExports.jsx("div",{className:_e.headerItem,children:jsxRuntimeExports.jsx(NodeToken,{span:et,showDetail:!0})}),jsxRuntimeExports.jsx("div",{className:_e.headerItem,children:jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:et.start_time,endTimeISOString:et.end_time})})]}),jsxRuntimeExports.jsxs(TabList,{selectedValue:ut,onTabSelect:(bt,_t)=>{ct(_t.value)},children:[!st&&jsxRuntimeExports.jsx(Tab$1,{value:"info",children:nt.Detail}),st&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Tab$1,{value:"response",children:nt.Response}),jsxRuntimeExports.jsx(Tab$1,{value:"request",children:nt.Request})]}),jsxRuntimeExports.jsx(Tab$1,{value:"attr",children:nt.Raw_JSON}),it&&jsxRuntimeExports.jsxs(Tab$1,{value:"evaluations",children:[nt.Metrics," ",jsxRuntimeExports.jsx(CounterBadge,{appearance:"filled",color:"informative",count:ft,size:"small",showZero:!0})]}),jsxRuntimeExports.jsxs(Tab$1,{value:"error",children:[nt.Events," ",jsxRuntimeExports.jsx(CounterBadge,{appearance:"filled",color:dt>0?"danger":"informative",count:dt,size:"small",showZero:!0})]})]}),jsxRuntimeExports.jsx(Divider$2,{className:_e.tabDivider}),jsxRuntimeExports.jsxs("div",{className:_e.content,children:[!st&&ut==="info"&&jsxRuntimeExports.jsx(NodeInfoCard,{}),st&&ut==="response"&&jsxRuntimeExports.jsx(NodeHttpCard,{type:"response"}),st&&ut==="request"&&jsxRuntimeExports.jsx(NodeHttpCard,{type:"request"}),ut==="attr"&&jsxRuntimeExports.jsx(NodeAttrCard,{}),it&&ut==="evaluations"&&jsxRuntimeExports.jsx(EvaluationsTab,{}),ut==="error"&&jsxRuntimeExports.jsx(ErrorsTab,{})]})]}):j},NodeInfoCard=()=>{var et,tt,rt;const j=useSelectedSpan(),_e=(et=j==null?void 0:j.attributes)==null?void 0:et.function;switch((rt=(tt=j==null?void 0:j.attributes)==null?void 0:tt.span_type)==null?void 0:rt.toLowerCase()){case"llm":return _e!=null&&_e.startsWith("openai.resources.chat")||_e!=null&&_e.startsWith("openai.api_resources.chat")?jsxRuntimeExports.jsx(LLMNodeInfo,{}):jsxRuntimeExports.jsx(DefaultNodeInfo,{});case"retrieval":return jsxRuntimeExports.jsx(RetrievalNodeInfo,{});case"embedding":return jsxRuntimeExports.jsx(EmbeddingNodeInfo,{});default:return jsxRuntimeExports.jsx(DefaultNodeInfo,{})}},NodeAttrCard=()=>{const j=useSelectedSpan(),_e=useLocStrings();return j!=null&&j.attributes?jsxRuntimeExports.jsx(JsonNodeCard,{title:_e.Raw_JSON,src:j}):null};function isNil(j){return j==null}var isNil_1=isNil;const isNil$1=getDefaultExportFromCjs(isNil_1);var baseGetTag$1=_baseGetTag,isObjectLike$1=isObjectLike_1,numberTag="[object Number]";function isNumber$2(j){return typeof j=="number"||isObjectLike$1(j)&&baseGetTag$1(j)==numberTag}var isNumber_1=isNumber$2;const isNumber$3=getDefaultExportFromCjs(isNumber_1);var isNumber$1=isNumber_1;function isNaN$1(j){return isNumber$1(j)&&j!=+j}var _isNaN=isNaN$1;const isNan=getDefaultExportFromCjs(_isNaN);var mathSign=function j(_e){return _e===0?0:_e>0?1:-1},isPercent=function j(_e){return isString$1(_e)&&_e.indexOf("%")===_e.length-1},isNumber=function j(_e){return isNumber$3(_e)&&!isNan(_e)},isNumOrStr=function j(_e){return isNumber(_e)||isString$1(_e)},idCounter=0,uniqueId=function j(_e){var et=++idCounter;return"".concat(_e||"").concat(et)},getPercentValue=function j(_e,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,rt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!isNumber(_e)&&!isString$1(_e))return tt;var nt;if(isPercent(_e)){var ot=_e.indexOf("%");nt=et*parseFloat(_e.slice(0,ot))/100}else nt=+_e;return isNan(nt)&&(nt=tt),rt&&nt>et&&(nt=et),nt},getAnyElementOfObject=function j(_e){if(!_e)return null;var et=Object.keys(_e);return et&&et.length?_e[et[0]]:null},hasDuplicate=function j(_e){if(!Array.isArray(_e))return!1;for(var et=_e.length,tt={},rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$f(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var REACT_BROWSER_EVENT_MAP={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart"},getDisplayName=function j(_e){return typeof _e=="string"?_e:_e?_e.displayName||_e.name||"Component":""},lastChildren=null,lastResult=null,toArray=function j(_e){if(_e===lastChildren&&Array.isArray(lastResult))return lastResult;var et=[];return reactExports.Children.forEach(_e,function(tt){isNil$1(tt)||(reactIsExports.isFragment(tt)?et=et.concat(j(tt.props.children)):et.push(tt))}),lastResult=et,lastChildren=_e,et};function findAllByType(j,_e){var et=[],tt=[];return Array.isArray(_e)?tt=_e.map(function(rt){return getDisplayName(rt)}):tt=[getDisplayName(_e)],toArray(j).forEach(function(rt){var nt=get$5(rt,"type.displayName")||get$5(rt,"type.name");tt.indexOf(nt)!==-1&&et.push(rt)}),et}function findChildByType(j,_e){var et=findAllByType(j,_e);return et&&et[0]}var validateWidthHeight=function j(_e){if(!_e||!_e.props)return!1;var et=_e.props,tt=et.width,rt=et.height;return!(!isNumber(tt)||tt<=0||!isNumber(rt)||rt<=0)},SVG_TAGS=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],isSvgElement=function j(_e){return _e&&_e.type&&isString$1(_e.type)&&SVG_TAGS.indexOf(_e.type)>=0},isValidSpreadableProp=function j(_e,et,tt,rt){var nt,ot=(nt=FilteredElementKeyMap==null?void 0:FilteredElementKeyMap[rt])!==null&&nt!==void 0?nt:[];return!isFunction$6(_e)&&(rt&&ot.includes(et)||SVGElementPropKeys.includes(et))||tt&&EventKeys.includes(et)},filterProps=function j(_e,et,tt){if(!_e||typeof _e=="function"||typeof _e=="boolean")return null;var rt=_e;if(reactExports.isValidElement(_e)&&(rt=_e.props),!isObject$x(rt))return null;var nt={};return Object.keys(rt).forEach(function(ot){var it;isValidSpreadableProp((it=rt)===null||it===void 0?void 0:it[ot],ot,et,tt)&&(nt[ot]=rt[ot])}),nt},isChildrenEqual=function j(_e,et){if(_e===et)return!0;var tt=reactExports.Children.count(_e);if(tt!==reactExports.Children.count(et))return!1;if(tt===0)return!0;if(tt===1)return isSingleChildEqual(Array.isArray(_e)?_e[0]:_e,Array.isArray(et)?et[0]:et);for(var rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$e(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function Surface(j){var _e=j.children,et=j.width,tt=j.height,rt=j.viewBox,nt=j.className,ot=j.style,it=j.title,st=j.desc,lt=_objectWithoutProperties$e(j,_excluded$e),ut=rt||{width:et,height:tt,x:0,y:0},ct=clsx("recharts-surface",nt);return React.createElement("svg",_extends$n({},filterProps(lt,!0,"svg"),{className:ct,width:et,height:tt,style:ot,viewBox:"".concat(ut.x," ").concat(ut.y," ").concat(ut.width," ").concat(ut.height)}),React.createElement("title",null,it),React.createElement("desc",null,st),_e)}var _excluded$d=["children","className"];function _extends$m(){return _extends$m=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$d(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var Layer=React.forwardRef(function(j,_e){var et=j.children,tt=j.className,rt=_objectWithoutProperties$d(j,_excluded$d),nt=clsx("recharts-layer",tt);return React.createElement("g",_extends$m({className:nt},filterProps(rt,!0),{ref:_e}),et)}),warn=function j(_e,et){for(var tt=arguments.length,rt=new Array(tt>2?tt-2:0),nt=2;ntrt?0:rt+_e),et=et>rt?rt:et,et<0&&(et+=rt),rt=_e>et?0:et-_e>>>0,_e>>>=0;for(var nt=Array(rt);++tt=tt?j:baseSlice(j,_e,et)}var _castSlice=castSlice$1;function asciiToArray$1(j){return j.split("")}var _asciiToArray=asciiToArray$1,rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsVarRange="\\ufe0e\\ufe0f",rsAstral="["+rsAstralRange+"]",rsCombo="["+rsComboRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ="\\u200d",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");function unicodeToArray$1(j){return j.match(reUnicode)||[]}var _unicodeToArray=unicodeToArray$1,asciiToArray=_asciiToArray,hasUnicode$1=_hasUnicode,unicodeToArray=_unicodeToArray;function stringToArray$1(j){return hasUnicode$1(j)?unicodeToArray(j):asciiToArray(j)}var _stringToArray=stringToArray$1,castSlice=_castSlice,hasUnicode=_hasUnicode,stringToArray=_stringToArray,toString$1=toString_1;function createCaseFirst$1(j){return function(_e){_e=toString$1(_e);var et=hasUnicode(_e)?stringToArray(_e):void 0,tt=et?et[0]:_e.charAt(0),rt=et?castSlice(et,1).join(""):_e.slice(1);return tt[j]()+rt}}var _createCaseFirst=createCaseFirst$1,createCaseFirst=_createCaseFirst,upperFirst=createCaseFirst("toUpperCase"),upperFirst_1=upperFirst;const upperFirst$1=getDefaultExportFromCjs(upperFirst_1);function constant$1(j){return function(){return j}}const cos=Math.cos,sin=Math.sin,sqrt$1=Math.sqrt,pi$1=Math.PI,tau$1=2*pi$1,pi=Math.PI,tau=2*pi,epsilon=1e-6,tauEpsilon=tau-epsilon;function append(j){this._+=j[0];for(let _e=1,et=j.length;_e=0))throw new Error(`invalid digits: ${j}`);if(_e>15)return append;const et=10**_e;return function(tt){this._+=tt[0];for(let rt=1,nt=tt.length;rtepsilon)if(!(Math.abs(ct*st-lt*ut)>epsilon)||!nt)this._append`L${this._x1=_e},${this._y1=et}`;else{let ft=tt-ot,pt=rt-it,gt=st*st+lt*lt,vt=ft*ft+pt*pt,bt=Math.sqrt(gt),_t=Math.sqrt(dt),xt=nt*Math.tan((pi-Math.acos((gt+dt-vt)/(2*bt*_t)))/2),yt=xt/_t,Et=xt/bt;Math.abs(yt-1)>epsilon&&this._append`L${_e+yt*ut},${et+yt*ct}`,this._append`A${nt},${nt},0,0,${+(ct*ft>ut*pt)},${this._x1=_e+Et*st},${this._y1=et+Et*lt}`}}arc(_e,et,tt,rt,nt,ot){if(_e=+_e,et=+et,tt=+tt,ot=!!ot,tt<0)throw new Error(`negative radius: ${tt}`);let it=tt*Math.cos(rt),st=tt*Math.sin(rt),lt=_e+it,ut=et+st,ct=1^ot,dt=ot?rt-nt:nt-rt;this._x1===null?this._append`M${lt},${ut}`:(Math.abs(this._x1-lt)>epsilon||Math.abs(this._y1-ut)>epsilon)&&this._append`L${lt},${ut}`,tt&&(dt<0&&(dt=dt%tau+tau),dt>tauEpsilon?this._append`A${tt},${tt},0,1,${ct},${_e-it},${et-st}A${tt},${tt},0,1,${ct},${this._x1=lt},${this._y1=ut}`:dt>epsilon&&this._append`A${tt},${tt},0,${+(dt>=pi)},${ct},${this._x1=_e+tt*Math.cos(nt)},${this._y1=et+tt*Math.sin(nt)}`)}rect(_e,et,tt,rt){this._append`M${this._x0=this._x1=+_e},${this._y0=this._y1=+et}h${tt=+tt}v${+rt}h${-tt}Z`}toString(){return this._}}function withPath(j){let _e=3;return j.digits=function(et){if(!arguments.length)return _e;if(et==null)_e=null;else{const tt=Math.floor(et);if(!(tt>=0))throw new RangeError(`invalid digits: ${et}`);_e=tt}return j},()=>new Path(_e)}function array(j){return typeof j=="object"&&"length"in j?j:Array.from(j)}function Linear(j){this._context=j}Linear.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1,this._line?this._context.lineTo(j,_e):this._context.moveTo(j,_e);break;case 1:this._point=2;default:this._context.lineTo(j,_e);break}}};function curveLinear(j){return new Linear(j)}function x(j){return j[0]}function y(j){return j[1]}function shapeLine(j,_e){var et=constant$1(!0),tt=null,rt=curveLinear,nt=null,ot=withPath(it);j=typeof j=="function"?j:j===void 0?x:constant$1(j),_e=typeof _e=="function"?_e:_e===void 0?y:constant$1(_e);function it(st){var lt,ut=(st=array(st)).length,ct,dt=!1,ft;for(tt==null&&(nt=rt(ft=ot())),lt=0;lt<=ut;++lt)!(lt=ft;--pt)it.point(xt[pt],yt[pt]);it.lineEnd(),it.areaEnd()}bt&&(xt[dt]=+j(vt,dt,ct),yt[dt]=+_e(vt,dt,ct),it.point(tt?+tt(vt,dt,ct):xt[dt],et?+et(vt,dt,ct):yt[dt]))}if(_t)return it=null,_t+""||null}function ut(){return shapeLine().defined(rt).curve(ot).context(nt)}return lt.x=function(ct){return arguments.length?(j=typeof ct=="function"?ct:constant$1(+ct),tt=null,lt):j},lt.x0=function(ct){return arguments.length?(j=typeof ct=="function"?ct:constant$1(+ct),lt):j},lt.x1=function(ct){return arguments.length?(tt=ct==null?null:typeof ct=="function"?ct:constant$1(+ct),lt):tt},lt.y=function(ct){return arguments.length?(_e=typeof ct=="function"?ct:constant$1(+ct),et=null,lt):_e},lt.y0=function(ct){return arguments.length?(_e=typeof ct=="function"?ct:constant$1(+ct),lt):_e},lt.y1=function(ct){return arguments.length?(et=ct==null?null:typeof ct=="function"?ct:constant$1(+ct),lt):et},lt.lineX0=lt.lineY0=function(){return ut().x(j).y(_e)},lt.lineY1=function(){return ut().x(j).y(et)},lt.lineX1=function(){return ut().x(tt).y(_e)},lt.defined=function(ct){return arguments.length?(rt=typeof ct=="function"?ct:constant$1(!!ct),lt):rt},lt.curve=function(ct){return arguments.length?(ot=ct,nt!=null&&(it=ot(nt)),lt):ot},lt.context=function(ct){return arguments.length?(ct==null?nt=it=null:it=ot(nt=ct),lt):nt},lt}class Bump{constructor(_e,et){this._context=_e,this._x=et}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(_e,et){switch(_e=+_e,et=+et,this._point){case 0:{this._point=1,this._line?this._context.lineTo(_e,et):this._context.moveTo(_e,et);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+_e)/2,this._y0,this._x0,et,_e,et):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+et)/2,_e,this._y0,_e,et);break}}this._x0=_e,this._y0=et}}function bumpX(j){return new Bump(j,!0)}function bumpY(j){return new Bump(j,!1)}const symbolCircle={draw(j,_e){const et=sqrt$1(_e/pi$1);j.moveTo(et,0),j.arc(0,0,et,0,tau$1)}},symbolCross={draw(j,_e){const et=sqrt$1(_e/5)/2;j.moveTo(-3*et,-et),j.lineTo(-et,-et),j.lineTo(-et,-3*et),j.lineTo(et,-3*et),j.lineTo(et,-et),j.lineTo(3*et,-et),j.lineTo(3*et,et),j.lineTo(et,et),j.lineTo(et,3*et),j.lineTo(-et,3*et),j.lineTo(-et,et),j.lineTo(-3*et,et),j.closePath()}},tan30=sqrt$1(1/3),tan30_2=tan30*2,symbolDiamond={draw(j,_e){const et=sqrt$1(_e/tan30_2),tt=et*tan30;j.moveTo(0,-et),j.lineTo(tt,0),j.lineTo(0,et),j.lineTo(-tt,0),j.closePath()}},symbolSquare={draw(j,_e){const et=sqrt$1(_e),tt=-et/2;j.rect(tt,tt,et,et)}},ka=.8908130915292852,kr=sin(pi$1/10)/sin(7*pi$1/10),kx=sin(tau$1/10)*kr,ky=-cos(tau$1/10)*kr,symbolStar={draw(j,_e){const et=sqrt$1(_e*ka),tt=kx*et,rt=ky*et;j.moveTo(0,-et),j.lineTo(tt,rt);for(let nt=1;nt<5;++nt){const ot=tau$1*nt/5,it=cos(ot),st=sin(ot);j.lineTo(st*et,-it*et),j.lineTo(it*tt-st*rt,st*tt+it*rt)}j.closePath()}},sqrt3=sqrt$1(3),symbolTriangle={draw(j,_e){const et=-sqrt$1(_e/(sqrt3*3));j.moveTo(0,et*2),j.lineTo(-sqrt3*et,-et),j.lineTo(sqrt3*et,-et),j.closePath()}},c=-.5,s=sqrt$1(3)/2,k=1/sqrt$1(12),a=(k/2+1)*3,symbolWye={draw(j,_e){const et=sqrt$1(_e/a),tt=et/2,rt=et*k,nt=tt,ot=et*k+et,it=-nt,st=ot;j.moveTo(tt,rt),j.lineTo(nt,ot),j.lineTo(it,st),j.lineTo(c*tt-s*rt,s*tt+c*rt),j.lineTo(c*nt-s*ot,s*nt+c*ot),j.lineTo(c*it-s*st,s*it+c*st),j.lineTo(c*tt+s*rt,c*rt-s*tt),j.lineTo(c*nt+s*ot,c*ot-s*nt),j.lineTo(c*it+s*st,c*st-s*it),j.closePath()}};function Symbol$1(j,_e){let et=null,tt=withPath(rt);j=typeof j=="function"?j:constant$1(j||symbolCircle),_e=typeof _e=="function"?_e:constant$1(_e===void 0?64:+_e);function rt(){let nt;if(et||(et=nt=tt()),j.apply(this,arguments).draw(et,+_e.apply(this,arguments)),nt)return et=null,nt+""||null}return rt.type=function(nt){return arguments.length?(j=typeof nt=="function"?nt:constant$1(nt),rt):j},rt.size=function(nt){return arguments.length?(_e=typeof nt=="function"?nt:constant$1(+nt),rt):_e},rt.context=function(nt){return arguments.length?(et=nt??null,rt):et},rt}function noop(){}function point$2(j,_e,et){j._context.bezierCurveTo((2*j._x0+j._x1)/3,(2*j._y0+j._y1)/3,(j._x0+2*j._x1)/3,(j._y0+2*j._y1)/3,(j._x0+4*j._x1+_e)/6,(j._y0+4*j._y1+et)/6)}function Basis(j){this._context=j}Basis.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:point$2(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1,this._line?this._context.lineTo(j,_e):this._context.moveTo(j,_e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:point$2(this,j,_e);break}this._x0=this._x1,this._x1=j,this._y0=this._y1,this._y1=_e}};function curveBasis(j){return new Basis(j)}function BasisClosed(j){this._context=j}BasisClosed.prototype={areaStart:noop,areaEnd:noop,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1,this._x2=j,this._y2=_e;break;case 1:this._point=2,this._x3=j,this._y3=_e;break;case 2:this._point=3,this._x4=j,this._y4=_e,this._context.moveTo((this._x0+4*this._x1+j)/6,(this._y0+4*this._y1+_e)/6);break;default:point$2(this,j,_e);break}this._x0=this._x1,this._x1=j,this._y0=this._y1,this._y1=_e}};function curveBasisClosed(j){return new BasisClosed(j)}function BasisOpen(j){this._context=j}BasisOpen.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var et=(this._x0+4*this._x1+j)/6,tt=(this._y0+4*this._y1+_e)/6;this._line?this._context.lineTo(et,tt):this._context.moveTo(et,tt);break;case 3:this._point=4;default:point$2(this,j,_e);break}this._x0=this._x1,this._x1=j,this._y0=this._y1,this._y1=_e}};function curveBasisOpen(j){return new BasisOpen(j)}function LinearClosed(j){this._context=j}LinearClosed.prototype={areaStart:noop,areaEnd:noop,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(j,_e){j=+j,_e=+_e,this._point?this._context.lineTo(j,_e):(this._point=1,this._context.moveTo(j,_e))}};function curveLinearClosed(j){return new LinearClosed(j)}function sign(j){return j<0?-1:1}function slope3(j,_e,et){var tt=j._x1-j._x0,rt=_e-j._x1,nt=(j._y1-j._y0)/(tt||rt<0&&-0),ot=(et-j._y1)/(rt||tt<0&&-0),it=(nt*rt+ot*tt)/(tt+rt);return(sign(nt)+sign(ot))*Math.min(Math.abs(nt),Math.abs(ot),.5*Math.abs(it))||0}function slope2(j,_e){var et=j._x1-j._x0;return et?(3*(j._y1-j._y0)/et-_e)/2:_e}function point$1(j,_e,et){var tt=j._x0,rt=j._y0,nt=j._x1,ot=j._y1,it=(nt-tt)/3;j._context.bezierCurveTo(tt+it,rt+it*_e,nt-it,ot-it*et,nt,ot)}function MonotoneX(j){this._context=j}MonotoneX.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:point$1(this,this._t0,slope2(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(j,_e){var et=NaN;if(j=+j,_e=+_e,!(j===this._x1&&_e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(j,_e):this._context.moveTo(j,_e);break;case 1:this._point=2;break;case 2:this._point=3,point$1(this,slope2(this,et=slope3(this,j,_e)),et);break;default:point$1(this,this._t0,et=slope3(this,j,_e));break}this._x0=this._x1,this._x1=j,this._y0=this._y1,this._y1=_e,this._t0=et}}};function MonotoneY(j){this._context=new ReflectContext(j)}(MonotoneY.prototype=Object.create(MonotoneX.prototype)).point=function(j,_e){MonotoneX.prototype.point.call(this,_e,j)};function ReflectContext(j){this._context=j}ReflectContext.prototype={moveTo:function(j,_e){this._context.moveTo(_e,j)},closePath:function(){this._context.closePath()},lineTo:function(j,_e){this._context.lineTo(_e,j)},bezierCurveTo:function(j,_e,et,tt,rt,nt){this._context.bezierCurveTo(_e,j,tt,et,nt,rt)}};function monotoneX(j){return new MonotoneX(j)}function monotoneY(j){return new MonotoneY(j)}function Natural(j){this._context=j}Natural.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var j=this._x,_e=this._y,et=j.length;if(et)if(this._line?this._context.lineTo(j[0],_e[0]):this._context.moveTo(j[0],_e[0]),et===2)this._context.lineTo(j[1],_e[1]);else for(var tt=controlPoints(j),rt=controlPoints(_e),nt=0,ot=1;ot=0;--_e)rt[_e]=(ot[_e]-rt[_e+1])/nt[_e];for(nt[et-1]=(j[et]+rt[et-1])/2,_e=0;_e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1,this._line?this._context.lineTo(j,_e):this._context.moveTo(j,_e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,_e),this._context.lineTo(j,_e);else{var et=this._x*(1-this._t)+j*this._t;this._context.lineTo(et,this._y),this._context.lineTo(et,_e)}break}}this._x=j,this._y=_e}};function curveStep(j){return new Step(j,.5)}function stepBefore(j){return new Step(j,0)}function stepAfter(j){return new Step(j,1)}function stackOffsetNone(j,_e){if((ot=j.length)>1)for(var et=1,tt,rt,nt=j[_e[0]],ot,it=nt.length;et=0;)et[_e]=_e;return et}function stackValue(j,_e){return j[_e]}function stackSeries(j){const _e=[];return _e.key=j,_e}function shapeStack(){var j=constant$1([]),_e=stackOrderNone,et=stackOffsetNone,tt=stackValue;function rt(nt){var ot=Array.from(j.apply(this,arguments),stackSeries),it,st=ot.length,lt=-1,ut;for(const ct of nt)for(it=0,++lt;it0){for(var et,tt,rt=0,nt=j[0].length,ot;rt0){for(var et=0,tt=j[_e[0]],rt,nt=tt.length;et0)||!((nt=(rt=j[_e[0]]).length)>0))){for(var et=0,tt=1,rt,nt,ot;tt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$c(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var symbolFactories={symbolCircle,symbolCross,symbolDiamond,symbolSquare,symbolStar,symbolTriangle,symbolWye},RADIAN$2=Math.PI/180,getSymbolFactory=function j(_e){var et="symbol".concat(upperFirst$1(_e));return symbolFactories[et]||symbolCircle},calculateAreaSize=function j(_e,et,tt){if(et==="area")return _e;switch(tt){case"cross":return 5*_e*_e/9;case"diamond":return .5*_e*_e/Math.sqrt(3);case"square":return _e*_e;case"star":{var rt=18*RADIAN$2;return 1.25*_e*_e*(Math.tan(rt)-Math.tan(rt*2)*Math.pow(Math.tan(rt),2))}case"triangle":return Math.sqrt(3)*_e*_e/4;case"wye":return(21-10*Math.sqrt(3))*_e*_e/8;default:return Math.PI*_e*_e/4}},registerSymbol=function j(_e,et){symbolFactories["symbol".concat(upperFirst$1(_e))]=et},Symbols=function j(_e){var et=_e.type,tt=et===void 0?"circle":et,rt=_e.size,nt=rt===void 0?64:rt,ot=_e.sizeType,it=ot===void 0?"area":ot,st=_objectWithoutProperties$c(_e,_excluded$c),lt=_objectSpread$x(_objectSpread$x({},st),{},{type:tt,size:nt,sizeType:it}),ut=function(){var vt=getSymbolFactory(tt),bt=Symbol$1().type(vt).size(calculateAreaSize(nt,it,tt));return bt()},ct=lt.className,dt=lt.cx,ft=lt.cy,pt=filterProps(lt,!0);return dt===+dt&&ft===+ft&&nt===+nt?React.createElement("path",_extends$l({},pt,{className:clsx("recharts-symbols",ct),transform:"translate(".concat(dt,", ").concat(ft,")"),d:ut()})):null};Symbols.registerSymbol=registerSymbol;function _typeof$A(j){"@babel/helpers - typeof";return _typeof$A=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$A(j)}function _extends$k(){return _extends$k=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$a(j){return _getPrototypeOf$a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$a(j)}function _defineProperty$y(j,_e,et){return _e=_toPropertyKey$z(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$z(j){var _e=_toPrimitive$z(j,"string");return _typeof$A(_e)==="symbol"?_e:String(_e)}function _toPrimitive$z(j,_e){if(_typeof$A(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$A(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var SIZE=32,DefaultLegendContent=function(j){_inherits$a(et,j);var _e=_createSuper$a(et);function et(){return _classCallCheck$d(this,et),_e.apply(this,arguments)}return _createClass$d(et,[{key:"renderIcon",value:function(rt){var nt=this.props.inactiveColor,ot=SIZE/2,it=SIZE/6,st=SIZE/3,lt=rt.inactive?nt:rt.color;if(rt.type==="plainline")return React.createElement("line",{strokeWidth:4,fill:"none",stroke:lt,strokeDasharray:rt.payload.strokeDasharray,x1:0,y1:ot,x2:SIZE,y2:ot,className:"recharts-legend-icon"});if(rt.type==="line")return React.createElement("path",{strokeWidth:4,fill:"none",stroke:lt,d:"M0,".concat(ot,"h").concat(st,` +`):new Error("content type is not supported");function _e(et){var tt,rt,nt,ot;switch(et.type){case RichContentType.TEXT:return et.text??"";case RichContentType.IMAGE_URL:return`![${(tt=et.image_url)==null?void 0:tt.url}](${(rt=et.image_url)==null?void 0:rt.url})`;case RichContentType.IMAGE_FILE:return`![${(nt=et.image_file)==null?void 0:nt.path}](${(ot=et.image_file)==null?void 0:ot.path})`;default:return""}}}const useAvatarStyles=makeStyles({avatar:{...shorthands.margin("16px","4px","4px","4px")}}),useMessagesContainerStyles=makeStyles({messagesContainer:{display:"flex",height:"100%",width:"100%"},minimap:{boxSizing:"border-box",height:"100%",width:"64px"},minimapInner:{boxSizing:"border-box",width:"64px",...shorthands.border("1px","solid","rgba(0, 0, 128, 0.15)")}}),LLMNodeMessagesList=j=>{const _e=useSelectedSpan(),et=useMessagesContainerStyles(),tt=reactExports.useRef(null),rt=ChatboxSelector.MessageList,nt=ChatboxSelector.MessageContent,ot=j.messages.map((it,st)=>({id:st,type:ChatMessageType.Message,history:[{content:[{content:it.content??"",name:it.name,role:it.role,timestamp:it.timestamp,function_call:it.function_call}],category:messageRoleToCategory(it.role),from:capitalizeFirstLetter(getSenderNameByLLMMessage(it)),timestamp:it.role==="assistant"?_e==null?void 0:_e.start_time:_e==null?void 0:_e.end_time}]}));return reactExports.useEffect(()=>{const it=document.querySelectorAll(".rich-text-chatbox-message-content"),st=it[it.length-1];st&&st.scrollIntoView({block:"end"})},[]),jsxRuntimeExports.jsxs("div",{className:et.messagesContainer,children:[jsxRuntimeExports.jsx(ChatboxMessageList,{locStrings:defaultLocStrings$1,messages:ot,calcContentForCopy:defaultCalcContentForCopy,containerRef:tt}),jsxRuntimeExports.jsx("div",{className:et.minimap,children:jsxRuntimeExports.jsx(Minimap,{className:et.minimapInner,sourceRootRef:tt,sourceQuerySelector:rt,sourceElementQuerySelector:nt})})]})},MessageAvatarRenderer=({data:j,className:_e})=>{const et=useAvatarStyles();return j.category===ChatMessageCategory.System?jsxRuntimeExports.jsx("div",{className:mergeClasses(et.avatar,_e),children:jsxRuntimeExports.jsx(Alert20Regular,{})}):j.category===ChatMessageCategory.User?jsxRuntimeExports.jsx("div",{className:mergeClasses(et.avatar,_e),children:jsxRuntimeExports.jsx(Person20Regular,{})}):j.category===ChatMessageCategory.Chatbot?jsxRuntimeExports.jsx("div",{className:mergeClasses(et.avatar,_e),children:jsxRuntimeExports.jsx(OpenAIIcon,{})}):null};function ChatboxMessageList(j){const{locStrings:_e,messages:et,calcContentForCopy:tt,containerRef:rt}=j,nt=useCopyAction(_e,tt),ot=reactExports.useCallback(()=>[nt],[nt]),it=useStyles();return jsxRuntimeExports.jsx("div",{ref:rt,className:it.main,children:jsxRuntimeExports.jsx(MessageListRenderer,{locStrings:_e,messages:et,MessageAvatarRenderer,MessageContentRenderer:RichTextChatboxMessageContent,MessageSenderRenderer,useMessageActions:ot})})}ChatboxMessageList.displayName="ChatboxMessageList";const useStyles=makeStyles({main:{...shorthands.padding("0","16px"),...shorthands.overflow("auto"),...shorthands.flex(1),height:"100%"}}),useClasses$d=makeStyles({root:{height:"100%",display:"flex",flexDirection:"column",...shorthands.overflow("auto")},title:{fontSize:"14px",lineHeight:"20px",fontStyle:"italic",fontWeight:400,color:tokens.colorNeutralForeground1},card:{flexGrow:1}}),LLMNodePromptTemplateTab=({promptTemplate:j,templateVariables:_e})=>{const et=useClasses$d(),tt=useMessageCardClasses(),nt=useIsDark()?"vs-dark":"light",ot=useLocStrings();return jsxRuntimeExports.jsxs("div",{className:et.root,children:[jsxRuntimeExports.jsxs(Card,{className:mergeClasses(tt.card,et.card),children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{className:et.title,children:ot.prompt_template})}),jsxRuntimeExports.jsx(JinjaSyntaxHighlighter,{value:j,theme:nt})]}),jsxRuntimeExports.jsxs(Card,{className:tt.card,children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{className:et.title,children:ot.template_variables})}),jsxRuntimeExports.jsx(JsonView,{src:_e})]})]})},LLMNodeRaw=({inputs:j,outputs:_e})=>{const et=useLocStrings();return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[j&&jsxRuntimeExports.jsx(JsonNodeCard,{title:et.Input,src:j}),_e&&jsxRuntimeExports.jsx(JsonNodeCard,{title:et.Output,src:_e})]})},useLLMNodeClasses=makeStyles({root:{height:"100%",display:"flex"},content:{...shorthands.overflow("auto")}}),LLMNodeInfo=()=>{var mt,bt,_t,xt,yt;const j=useSelectedSpan(),_e=(mt=useParentSpanOfSelectedSpan())==null?void 0:mt.attributes,et=useNodeDetailClasses(),tt=JSON.parse(((bt=j==null?void 0:j.attributes)==null?void 0:bt.inputs)??"{}"),rt=(_t=j==null?void 0:j.attributes)==null?void 0:_t["llm.generated_message"],nt=_e==null?void 0:_e["prompt.template"],ot=JSON.parse((_e==null?void 0:_e["prompt.variables"])??"{}"),it=Object.keys(ot??{}),st={},{inputMessages:lt,outputMessages:ut}=useMessagesOfSelectedSpan();Object.keys(tt).forEach(Et=>{Et!=="messages"&&(it.includes(Et)||(st[Et]=tt[Et]))});const ct=[...lt,...ut],[dt,ft]=reactExports.useState("messages"),pt=useLLMNodeClasses(),gt=useLocStrings();return jsxRuntimeExports.jsxs(Card,{className:pt.root,children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:et.headerWrapper,children:[jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",children:gt.llm}),jsxRuntimeExports.jsx("div",{className:et.headerTitle,children:tt.model})]}),jsxRuntimeExports.jsxs(TabList,{selectedValue:dt,onTabSelect:(Et,{value:St})=>ft(St),children:[jsxRuntimeExports.jsx(Tab$1,{value:"messages",children:gt.Conversations}),jsxRuntimeExports.jsx(Tab$1,{value:"raw",children:gt["Input/Output_(JSON)"]}),nt&&jsxRuntimeExports.jsx(Tab$1,{value:"promptTemplate",children:gt.Prompt_Template}),jsxRuntimeExports.jsx(Tab$1,{value:"llmParameters",children:gt.LLM_Parameters})]})]})}),jsxRuntimeExports.jsxs("div",{className:pt.content,children:[dt==="messages"&&jsxRuntimeExports.jsx(LLMNodeMessagesList,{messages:ct}),dt==="promptTemplate"&&nt&&jsxRuntimeExports.jsx(LLMNodePromptTemplateTab,{promptTemplate:nt,templateVariables:ot}),dt==="llmParameters"&&jsxRuntimeExports.jsx(LLMNodeInvocationParametersTab,{invocationParameters:st}),dt==="raw"&&jsxRuntimeExports.jsx(LLMNodeRaw,{inputs:(xt=j==null?void 0:j.attributes)==null?void 0:xt.inputs,outputs:((yt=j==null?void 0:j.attributes)==null?void 0:yt.output)??rt})]})]})},getMimeTypeFromContentType=j=>{var et;return(et=/^\s*([^;\s]*)(?:;|\s|$)/.exec(j))==null?void 0:et[1].toLowerCase()},NodeHttpCard=({type:j})=>{const _e=useLocStrings(),et=useSelectedSpan(),tt=React.useMemo(()=>parseHttpSpanAttributes(et),[et]);if(!tt)return null;const{urlFull:rt}=tt,nt=parseInt(tt.status_code);let ot;nt>=200&&nt<300?ot="success":nt>=400?ot="danger":ot="warning";const it=jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[tt.status_code!==void 0?jsxRuntimeExports.jsxs(Badge$2,{appearance:"outline",color:ot,children:[_e.Status," ",jsxRuntimeExports.jsx("span",{style:{marginLeft:4},children:tt.status_code})]}):null,jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:tt.method}),jsxRuntimeExports.jsx("span",{children:rt})]}),st=j==="response"?tt.response:tt.request;return jsxRuntimeExports.jsx(Card,{style:{marginBottom:12},children:jsxRuntimeExports.jsx(NodeHttpItem,{type:j,header:it,data:st})})},NodeHttpItem=({type:j,header:_e,data:et})=>{const tt=useLocStrings(),{headers:rt,body:nt}=et,ot=JSON.stringify(et),it=j==="response",st=it?"Response":"Request";let lt;if(nt)if(it){const ut=getMimeTypeFromContentType(rt["content-type"]);lt=jsxRuntimeExports.jsx(HttpResponseContent,{mimeType:ut,body:nt})}else lt=jsxRuntimeExports.jsx(JsonNodeCard,{wrapperStyle:{background:tokens.colorNeutralBackground2},src:nt,title:tt[`${st} Body`]});return jsxRuntimeExports.jsx(BasicViewer,{showEmpty:!1,previewRender:()=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(JsonNodeCard,{wrapperStyle:{background:tokens.colorNeutralBackground2},src:rt,title:tt[`${st} Headers`]}),lt]}),rawRender:()=>jsxRuntimeExports.jsx(Card,{style:{wordBreak:"break-all"},children:ot}),headerRender:_e?()=>_e:void 0})},HttpResponseContent=({mimeType:j,body:_e=""})=>{const et=useLocStrings();return j!=null&&j.includes("json")?jsxRuntimeExports.jsx(JsonNodeCard,{wrapperStyle:{background:tokens.colorNeutralBackground2},src:_e,title:et["Response Body"]}):j==="text/event-stream"?jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12,background:tokens.colorNeutralBackground2},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:et["Response Body"]})})}),_e.split("data:").filter(tt=>!!tt).map((tt,rt)=>jsxRuntimeExports.jsxs("div",{children:["data: ",tt]},`${tt}-${rt}`))]}):jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12,background:tokens.colorNeutralBackground2},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:et["Response Body"]})})}),jsxRuntimeExports.jsx("div",{style:{wordBreak:"break-all"},children:_e})]})},NodeToken=({span:j,showDetail:_e=!0})=>{const et=useParseTraceOutput(j);if(!et||typeof et=="string")return null;const tt=et.usage;return!tt||typeof tt=="string"||!tt.total_tokens?null:jsxRuntimeExports.jsx(TokenText,{token:tt.total_tokens,info:_e?jsxRuntimeExports.jsxs("div",{style:{display:"flex",flexDirection:"column",rowGap:6},children:[jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Total tokens",value:tt.total_tokens??0}}),jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Prompt tokens",value:tt.prompt_tokens??0}}),jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Completion tokens",value:tt.completion_tokens??0}})]}):void 0})},SummaryToken=({trace:j,showDetail:_e=!0})=>{const{total_tokens:et,prompt_tokens:tt,completion_tokens:rt}=j;return jsxRuntimeExports.jsx(TokenText,{token:et,info:_e?jsxRuntimeExports.jsxs("div",{style:{display:"flex",flexDirection:"column",rowGap:6},children:[jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Total tokens",value:et}}),tt!==void 0&&jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Prompt tokens",value:tt}}),rt!==void 0&&jsxRuntimeExports.jsx(MetricTag,{tag:{name:"Completion tokens",value:rt}})]}):void 0})},RetrievalNodeInfo=()=>{const j=useSelectedSpan(),_e=useLocStrings();if(!(j!=null&&j.attributes))return null;const et=j==null?void 0:j.attributes;let tt=[];if(typeof et["retrieval.documents"]=="string")try{tt=JSON.parse(et["retrieval.documents"])}catch{tt=[]}return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:_e.Query})})}),et["retrieval.query"]??""]}),jsxRuntimeExports.jsxs(Card,{style:{marginBottom:12},children:[jsxRuntimeExports.jsx(CardHeader,{header:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:_e.Documents})})}),tt.map(rt=>jsxRuntimeExports.jsx(Document$1,{document:rt},rt["document.id"]))]})]})},Document$1=({document:j})=>{const _e=useRetrievalNodeDetailClasses(),[et,tt]=reactExports.useState(["content"]),rt=reactExports.useCallback((ot,it)=>{tt(it.openItems)},[]),nt=useLocStrings();return jsxRuntimeExports.jsxs(Card,{style:{background:tokens.colorNeutralBackground2},children:[jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",columnGap:6},children:[jsxRuntimeExports.jsx(Document16Regular,{}),jsxRuntimeExports.jsx("div",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:jsxRuntimeExports.jsx(Tooltip$1,{content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:"id"})," ",j["document.id"]]}),relationship:"description",children:jsxRuntimeExports.jsxs("span",{children:[nt.document," ",j["document.id"]]})})}),jsxRuntimeExports.jsx(Tooltip$1,{content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{style:{fontWeight:600},children:nt.score})," ",j["document.score"]]}),relationship:"description",children:jsxRuntimeExports.jsxs(Badge$2,{appearance:"outline",children:["score ",floatFormatter(j["document.score"])]})})]}),jsxRuntimeExports.jsx(Divider$2,{}),jsxRuntimeExports.jsx(Card,{style:{background:tokens.colorNeutralBackground3},children:jsxRuntimeExports.jsx(Accordion,{openItems:et,onToggle:rt,collapsible:!0,multiple:!0,children:jsxRuntimeExports.jsxs(AccordionItem,{value:"content",children:[jsxRuntimeExports.jsx(AccordionHeader,{className:_e.accordionHeader,children:nt.content}),jsxRuntimeExports.jsx(AccordionPanel,{children:jsxRuntimeExports.jsx(MarkdownViewer,{content:j["document.content"]})})]})})}),jsxRuntimeExports.jsx(JsonNodeCard,{title:"metadata",src:j["document.metadata"],wrapperStyle:{background:tokens.colorNeutralBackground3}})]})},NodeDetail=({emptyTip:j=jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:"No Data"})})=>{var pt,gt,mt;const _e=useNodeDetailClasses(),et=useSelectedSpan(),tt=useEvaluationSpansOfSelectedSpan(),rt=useRootSpanIdOfSelectedSpans(),nt=useLocStrings(),ot=getToolTypeFromSpan(et),it=reactExports.useMemo(()=>{var bt;return rt===((bt=et==null?void 0:et.context)==null?void 0:bt.span_id)},[rt,et]),st=reactExports.useMemo(()=>(ot==null?void 0:ot.toLowerCase())==="http",[ot]),lt=st?"response":"info",[ut,ct]=reactExports.useState(lt),dt=((pt=et==null?void 0:et.events)==null?void 0:pt.length)??0,ft=tt.length??0;return et?jsxRuntimeExports.jsxs("div",{className:_e.wrapper,children:[((mt=(gt=et==null?void 0:et.status)==null?void 0:gt.status_code)==null?void 0:mt.toLowerCase())==="error"&&jsxRuntimeExports.jsx(MessageBar,{intent:"error",onClick:()=>{ct("error")},style:{cursor:"pointer"},children:jsxRuntimeExports.jsxs(MessageBarBody,{children:[jsxRuntimeExports.jsxs(MessageBarTitle,{children:[" ",nt.Error]}),et.status.message]})}),jsxRuntimeExports.jsxs("div",{className:_e.headerWrapper,children:[ot&&jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",children:`${ot}`}),jsxRuntimeExports.jsx("div",{className:_e.headerTitle,children:jsxRuntimeExports.jsx(Tooltip$1,{content:(et==null?void 0:et.name)||"",relationship:"description",children:jsxRuntimeExports.jsx("span",{children:et.name})})}),jsxRuntimeExports.jsx("div",{className:_e.headerItem,children:jsxRuntimeExports.jsx(NodeToken,{span:et,showDetail:!0})}),jsxRuntimeExports.jsx("div",{className:_e.headerItem,children:jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:et.start_time,endTimeISOString:et.end_time})})]}),jsxRuntimeExports.jsxs(TabList,{selectedValue:ut,onTabSelect:(bt,_t)=>{ct(_t.value)},children:[!st&&jsxRuntimeExports.jsx(Tab$1,{value:"info",children:nt.Detail}),st&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Tab$1,{value:"response",children:nt.Response}),jsxRuntimeExports.jsx(Tab$1,{value:"request",children:nt.Request})]}),jsxRuntimeExports.jsx(Tab$1,{value:"attr",children:nt.Raw_JSON}),it&&jsxRuntimeExports.jsxs(Tab$1,{value:"evaluations",children:[nt.Metrics," ",jsxRuntimeExports.jsx(CounterBadge,{appearance:"filled",color:"informative",count:ft,size:"small",showZero:!0})]}),jsxRuntimeExports.jsxs(Tab$1,{value:"error",children:[nt.Events," ",jsxRuntimeExports.jsx(CounterBadge,{appearance:"filled",color:dt>0?"danger":"informative",count:dt,size:"small",showZero:!0})]})]}),jsxRuntimeExports.jsx(Divider$2,{className:_e.tabDivider}),jsxRuntimeExports.jsxs("div",{className:_e.content,children:[!st&&ut==="info"&&jsxRuntimeExports.jsx(NodeInfoCard,{}),st&&ut==="response"&&jsxRuntimeExports.jsx(NodeHttpCard,{type:"response"}),st&&ut==="request"&&jsxRuntimeExports.jsx(NodeHttpCard,{type:"request"}),ut==="attr"&&jsxRuntimeExports.jsx(NodeAttrCard,{}),it&&ut==="evaluations"&&jsxRuntimeExports.jsx(EvaluationsTab,{}),ut==="error"&&jsxRuntimeExports.jsx(ErrorsTab,{})]})]}):j},NodeInfoCard=()=>{var et,tt,rt;const j=useSelectedSpan(),_e=(et=j==null?void 0:j.attributes)==null?void 0:et.function;switch((rt=(tt=j==null?void 0:j.attributes)==null?void 0:tt.span_type)==null?void 0:rt.toLowerCase()){case"llm":return _e!=null&&_e.startsWith("openai.resources.chat")||_e!=null&&_e.startsWith("openai.api_resources.chat")?jsxRuntimeExports.jsx(LLMNodeInfo,{}):jsxRuntimeExports.jsx(DefaultNodeInfo,{});case"retrieval":return jsxRuntimeExports.jsx(RetrievalNodeInfo,{});case"embedding":return jsxRuntimeExports.jsx(EmbeddingNodeInfo,{});default:return jsxRuntimeExports.jsx(DefaultNodeInfo,{})}},NodeAttrCard=()=>{const j=useSelectedSpan(),_e=useLocStrings();return j!=null&&j.attributes?jsxRuntimeExports.jsx(JsonNodeCard,{title:_e.Raw_JSON,src:j}):null},EvaluationMetricItem=({evaluations:j})=>{const _e=useClasses$c(),et=React.useCallback(rt=>{if(!rt.trace_id)return;let nt=window.location.origin+window.location.pathname;nt.endsWith("/")&&(nt=nt.slice(0,-1));const ot=`${nt}/#trace=${rt.trace_id}&uiTraceId=${rt.trace_id}`;window.open(ot,"_blank")},[]);if(!j)return null;const tt=({outputs:rt})=>{if(!rt)return null;const nt=Object.keys(rt).map(ot=>{const it=rt[ot];if(it!=null)return jsxRuntimeExports.jsx(MetricTag,{tag:{name:ot,value:it}},ot)}).filter(ot=>ot!==void 0);return jsxRuntimeExports.jsx("div",{className:_e.tagWrapper,children:nt})};return jsxRuntimeExports.jsx("div",{className:_e.wrapper,children:Object.entries(j).map(([rt,nt])=>{const ot=nt.outputs;return ot?jsxRuntimeExports.jsxs("div",{className:_e.itemWrapper,children:[jsxRuntimeExports.jsxs(Text$2,{size:400,className:_e.title,onClick:()=>et(nt),children:[rt," ",jsxRuntimeExports.jsx(LinkMultiple16Regular,{})]}),jsxRuntimeExports.jsx(tt,{outputs:ot})]},rt):null})})},useClasses$c=makeStyles({wrapper:{display:"flex",...shorthands.gap("1rem")},itemWrapper:{display:"flex",flexDirection:"column",justifyContent:"space-between",height:"100%",...shorthands.flex(0,0,"auto")},tagWrapper:{display:"flex",flexDirection:"row",...shorthands.gap("0.5rem")},title:{color:tokens.colorNeutralForeground2,marginBottom:tokens.spacingVerticalS,display:"flex",alignItems:"center",cursor:"pointer","> svg":{marginLeft:tokens.spacingHorizontalXS,paddingTop:"3px"}}});function isNil(j){return j==null}var isNil_1=isNil;const isNil$1=getDefaultExportFromCjs(isNil_1);var baseGetTag$1=_baseGetTag,isObjectLike$1=isObjectLike_1,numberTag="[object Number]";function isNumber$2(j){return typeof j=="number"||isObjectLike$1(j)&&baseGetTag$1(j)==numberTag}var isNumber_1=isNumber$2;const isNumber$3=getDefaultExportFromCjs(isNumber_1);var isNumber$1=isNumber_1;function isNaN$1(j){return isNumber$1(j)&&j!=+j}var _isNaN=isNaN$1;const isNan=getDefaultExportFromCjs(_isNaN);var mathSign=function j(_e){return _e===0?0:_e>0?1:-1},isPercent=function j(_e){return isString$1(_e)&&_e.indexOf("%")===_e.length-1},isNumber=function j(_e){return isNumber$3(_e)&&!isNan(_e)},isNumOrStr=function j(_e){return isNumber(_e)||isString$1(_e)},idCounter=0,uniqueId=function j(_e){var et=++idCounter;return"".concat(_e||"").concat(et)},getPercentValue=function j(_e,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,rt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!isNumber(_e)&&!isString$1(_e))return tt;var nt;if(isPercent(_e)){var ot=_e.indexOf("%");nt=et*parseFloat(_e.slice(0,ot))/100}else nt=+_e;return isNan(nt)&&(nt=tt),rt&&nt>et&&(nt=et),nt},getAnyElementOfObject=function j(_e){if(!_e)return null;var et=Object.keys(_e);return et&&et.length?_e[et[0]]:null},hasDuplicate=function j(_e){if(!Array.isArray(_e))return!1;for(var et=_e.length,tt={},rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$f(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var REACT_BROWSER_EVENT_MAP={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart"},getDisplayName=function j(_e){return typeof _e=="string"?_e:_e?_e.displayName||_e.name||"Component":""},lastChildren=null,lastResult=null,toArray=function j(_e){if(_e===lastChildren&&Array.isArray(lastResult))return lastResult;var et=[];return reactExports.Children.forEach(_e,function(tt){isNil$1(tt)||(reactIsExports.isFragment(tt)?et=et.concat(j(tt.props.children)):et.push(tt))}),lastResult=et,lastChildren=_e,et};function findAllByType(j,_e){var et=[],tt=[];return Array.isArray(_e)?tt=_e.map(function(rt){return getDisplayName(rt)}):tt=[getDisplayName(_e)],toArray(j).forEach(function(rt){var nt=get$3(rt,"type.displayName")||get$3(rt,"type.name");tt.indexOf(nt)!==-1&&et.push(rt)}),et}function findChildByType(j,_e){var et=findAllByType(j,_e);return et&&et[0]}var validateWidthHeight=function j(_e){if(!_e||!_e.props)return!1;var et=_e.props,tt=et.width,rt=et.height;return!(!isNumber(tt)||tt<=0||!isNumber(rt)||rt<=0)},SVG_TAGS=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],isSvgElement=function j(_e){return _e&&_e.type&&isString$1(_e.type)&&SVG_TAGS.indexOf(_e.type)>=0},isValidSpreadableProp=function j(_e,et,tt,rt){var nt,ot=(nt=FilteredElementKeyMap==null?void 0:FilteredElementKeyMap[rt])!==null&&nt!==void 0?nt:[];return!isFunction$6(_e)&&(rt&&ot.includes(et)||SVGElementPropKeys.includes(et))||tt&&EventKeys.includes(et)},filterProps=function j(_e,et,tt){if(!_e||typeof _e=="function"||typeof _e=="boolean")return null;var rt=_e;if(reactExports.isValidElement(_e)&&(rt=_e.props),!isObject$h(rt))return null;var nt={};return Object.keys(rt).forEach(function(ot){var it;isValidSpreadableProp((it=rt)===null||it===void 0?void 0:it[ot],ot,et,tt)&&(nt[ot]=rt[ot])}),nt},isChildrenEqual=function j(_e,et){if(_e===et)return!0;var tt=reactExports.Children.count(_e);if(tt!==reactExports.Children.count(et))return!1;if(tt===0)return!0;if(tt===1)return isSingleChildEqual(Array.isArray(_e)?_e[0]:_e,Array.isArray(et)?et[0]:et);for(var rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$e(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function Surface(j){var _e=j.children,et=j.width,tt=j.height,rt=j.viewBox,nt=j.className,ot=j.style,it=j.title,st=j.desc,lt=_objectWithoutProperties$e(j,_excluded$e),ut=rt||{width:et,height:tt,x:0,y:0},ct=clsx("recharts-surface",nt);return React.createElement("svg",_extends$n({},filterProps(lt,!0,"svg"),{className:ct,width:et,height:tt,style:ot,viewBox:"".concat(ut.x," ").concat(ut.y," ").concat(ut.width," ").concat(ut.height)}),React.createElement("title",null,it),React.createElement("desc",null,st),_e)}var _excluded$d=["children","className"];function _extends$m(){return _extends$m=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$d(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var Layer=React.forwardRef(function(j,_e){var et=j.children,tt=j.className,rt=_objectWithoutProperties$d(j,_excluded$d),nt=clsx("recharts-layer",tt);return React.createElement("g",_extends$m({className:nt},filterProps(rt,!0),{ref:_e}),et)}),warn=function j(_e,et){for(var tt=arguments.length,rt=new Array(tt>2?tt-2:0),nt=2;ntrt?0:rt+_e),et=et>rt?rt:et,et<0&&(et+=rt),rt=_e>et?0:et-_e>>>0,_e>>>=0;for(var nt=Array(rt);++tt=tt?j:baseSlice(j,_e,et)}var _castSlice=castSlice$1;function asciiToArray$1(j){return j.split("")}var _asciiToArray=asciiToArray$1,rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsVarRange="\\ufe0e\\ufe0f",rsAstral="["+rsAstralRange+"]",rsCombo="["+rsComboRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ="\\u200d",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");function unicodeToArray$1(j){return j.match(reUnicode)||[]}var _unicodeToArray=unicodeToArray$1,asciiToArray=_asciiToArray,hasUnicode$1=_hasUnicode,unicodeToArray=_unicodeToArray;function stringToArray$1(j){return hasUnicode$1(j)?unicodeToArray(j):asciiToArray(j)}var _stringToArray=stringToArray$1,castSlice=_castSlice,hasUnicode=_hasUnicode,stringToArray=_stringToArray,toString$1=toString_1;function createCaseFirst$1(j){return function(_e){_e=toString$1(_e);var et=hasUnicode(_e)?stringToArray(_e):void 0,tt=et?et[0]:_e.charAt(0),rt=et?castSlice(et,1).join(""):_e.slice(1);return tt[j]()+rt}}var _createCaseFirst=createCaseFirst$1,createCaseFirst=_createCaseFirst,upperFirst=createCaseFirst("toUpperCase"),upperFirst_1=upperFirst;const upperFirst$1=getDefaultExportFromCjs(upperFirst_1);function constant$1(j){return function(){return j}}const cos=Math.cos,sin=Math.sin,sqrt$1=Math.sqrt,pi$1=Math.PI,tau$1=2*pi$1,pi=Math.PI,tau=2*pi,epsilon=1e-6,tauEpsilon=tau-epsilon;function append(j){this._+=j[0];for(let _e=1,et=j.length;_e=0))throw new Error(`invalid digits: ${j}`);if(_e>15)return append;const et=10**_e;return function(tt){this._+=tt[0];for(let rt=1,nt=tt.length;rtepsilon)if(!(Math.abs(ct*st-lt*ut)>epsilon)||!nt)this._append`L${this._x1=_e},${this._y1=et}`;else{let ft=tt-ot,pt=rt-it,gt=st*st+lt*lt,mt=ft*ft+pt*pt,bt=Math.sqrt(gt),_t=Math.sqrt(dt),xt=nt*Math.tan((pi-Math.acos((gt+dt-mt)/(2*bt*_t)))/2),yt=xt/_t,Et=xt/bt;Math.abs(yt-1)>epsilon&&this._append`L${_e+yt*ut},${et+yt*ct}`,this._append`A${nt},${nt},0,0,${+(ct*ft>ut*pt)},${this._x1=_e+Et*st},${this._y1=et+Et*lt}`}}arc(_e,et,tt,rt,nt,ot){if(_e=+_e,et=+et,tt=+tt,ot=!!ot,tt<0)throw new Error(`negative radius: ${tt}`);let it=tt*Math.cos(rt),st=tt*Math.sin(rt),lt=_e+it,ut=et+st,ct=1^ot,dt=ot?rt-nt:nt-rt;this._x1===null?this._append`M${lt},${ut}`:(Math.abs(this._x1-lt)>epsilon||Math.abs(this._y1-ut)>epsilon)&&this._append`L${lt},${ut}`,tt&&(dt<0&&(dt=dt%tau+tau),dt>tauEpsilon?this._append`A${tt},${tt},0,1,${ct},${_e-it},${et-st}A${tt},${tt},0,1,${ct},${this._x1=lt},${this._y1=ut}`:dt>epsilon&&this._append`A${tt},${tt},0,${+(dt>=pi)},${ct},${this._x1=_e+tt*Math.cos(nt)},${this._y1=et+tt*Math.sin(nt)}`)}rect(_e,et,tt,rt){this._append`M${this._x0=this._x1=+_e},${this._y0=this._y1=+et}h${tt=+tt}v${+rt}h${-tt}Z`}toString(){return this._}}function withPath(j){let _e=3;return j.digits=function(et){if(!arguments.length)return _e;if(et==null)_e=null;else{const tt=Math.floor(et);if(!(tt>=0))throw new RangeError(`invalid digits: ${et}`);_e=tt}return j},()=>new Path(_e)}function array(j){return typeof j=="object"&&"length"in j?j:Array.from(j)}function Linear(j){this._context=j}Linear.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1,this._line?this._context.lineTo(j,_e):this._context.moveTo(j,_e);break;case 1:this._point=2;default:this._context.lineTo(j,_e);break}}};function curveLinear(j){return new Linear(j)}function x(j){return j[0]}function y(j){return j[1]}function shapeLine(j,_e){var et=constant$1(!0),tt=null,rt=curveLinear,nt=null,ot=withPath(it);j=typeof j=="function"?j:j===void 0?x:constant$1(j),_e=typeof _e=="function"?_e:_e===void 0?y:constant$1(_e);function it(st){var lt,ut=(st=array(st)).length,ct,dt=!1,ft;for(tt==null&&(nt=rt(ft=ot())),lt=0;lt<=ut;++lt)!(lt=ft;--pt)it.point(xt[pt],yt[pt]);it.lineEnd(),it.areaEnd()}bt&&(xt[dt]=+j(mt,dt,ct),yt[dt]=+_e(mt,dt,ct),it.point(tt?+tt(mt,dt,ct):xt[dt],et?+et(mt,dt,ct):yt[dt]))}if(_t)return it=null,_t+""||null}function ut(){return shapeLine().defined(rt).curve(ot).context(nt)}return lt.x=function(ct){return arguments.length?(j=typeof ct=="function"?ct:constant$1(+ct),tt=null,lt):j},lt.x0=function(ct){return arguments.length?(j=typeof ct=="function"?ct:constant$1(+ct),lt):j},lt.x1=function(ct){return arguments.length?(tt=ct==null?null:typeof ct=="function"?ct:constant$1(+ct),lt):tt},lt.y=function(ct){return arguments.length?(_e=typeof ct=="function"?ct:constant$1(+ct),et=null,lt):_e},lt.y0=function(ct){return arguments.length?(_e=typeof ct=="function"?ct:constant$1(+ct),lt):_e},lt.y1=function(ct){return arguments.length?(et=ct==null?null:typeof ct=="function"?ct:constant$1(+ct),lt):et},lt.lineX0=lt.lineY0=function(){return ut().x(j).y(_e)},lt.lineY1=function(){return ut().x(j).y(et)},lt.lineX1=function(){return ut().x(tt).y(_e)},lt.defined=function(ct){return arguments.length?(rt=typeof ct=="function"?ct:constant$1(!!ct),lt):rt},lt.curve=function(ct){return arguments.length?(ot=ct,nt!=null&&(it=ot(nt)),lt):ot},lt.context=function(ct){return arguments.length?(ct==null?nt=it=null:it=ot(nt=ct),lt):nt},lt}class Bump{constructor(_e,et){this._context=_e,this._x=et}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(_e,et){switch(_e=+_e,et=+et,this._point){case 0:{this._point=1,this._line?this._context.lineTo(_e,et):this._context.moveTo(_e,et);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+_e)/2,this._y0,this._x0,et,_e,et):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+et)/2,_e,this._y0,_e,et);break}}this._x0=_e,this._y0=et}}function bumpX(j){return new Bump(j,!0)}function bumpY(j){return new Bump(j,!1)}const symbolCircle={draw(j,_e){const et=sqrt$1(_e/pi$1);j.moveTo(et,0),j.arc(0,0,et,0,tau$1)}},symbolCross={draw(j,_e){const et=sqrt$1(_e/5)/2;j.moveTo(-3*et,-et),j.lineTo(-et,-et),j.lineTo(-et,-3*et),j.lineTo(et,-3*et),j.lineTo(et,-et),j.lineTo(3*et,-et),j.lineTo(3*et,et),j.lineTo(et,et),j.lineTo(et,3*et),j.lineTo(-et,3*et),j.lineTo(-et,et),j.lineTo(-3*et,et),j.closePath()}},tan30=sqrt$1(1/3),tan30_2=tan30*2,symbolDiamond={draw(j,_e){const et=sqrt$1(_e/tan30_2),tt=et*tan30;j.moveTo(0,-et),j.lineTo(tt,0),j.lineTo(0,et),j.lineTo(-tt,0),j.closePath()}},symbolSquare={draw(j,_e){const et=sqrt$1(_e),tt=-et/2;j.rect(tt,tt,et,et)}},ka=.8908130915292852,kr=sin(pi$1/10)/sin(7*pi$1/10),kx=sin(tau$1/10)*kr,ky=-cos(tau$1/10)*kr,symbolStar={draw(j,_e){const et=sqrt$1(_e*ka),tt=kx*et,rt=ky*et;j.moveTo(0,-et),j.lineTo(tt,rt);for(let nt=1;nt<5;++nt){const ot=tau$1*nt/5,it=cos(ot),st=sin(ot);j.lineTo(st*et,-it*et),j.lineTo(it*tt-st*rt,st*tt+it*rt)}j.closePath()}},sqrt3=sqrt$1(3),symbolTriangle={draw(j,_e){const et=-sqrt$1(_e/(sqrt3*3));j.moveTo(0,et*2),j.lineTo(-sqrt3*et,-et),j.lineTo(sqrt3*et,-et),j.closePath()}},c=-.5,s=sqrt$1(3)/2,k=1/sqrt$1(12),a=(k/2+1)*3,symbolWye={draw(j,_e){const et=sqrt$1(_e/a),tt=et/2,rt=et*k,nt=tt,ot=et*k+et,it=-nt,st=ot;j.moveTo(tt,rt),j.lineTo(nt,ot),j.lineTo(it,st),j.lineTo(c*tt-s*rt,s*tt+c*rt),j.lineTo(c*nt-s*ot,s*nt+c*ot),j.lineTo(c*it-s*st,s*it+c*st),j.lineTo(c*tt+s*rt,c*rt-s*tt),j.lineTo(c*nt+s*ot,c*ot-s*nt),j.lineTo(c*it+s*st,c*st-s*it),j.closePath()}};function Symbol$1(j,_e){let et=null,tt=withPath(rt);j=typeof j=="function"?j:constant$1(j||symbolCircle),_e=typeof _e=="function"?_e:constant$1(_e===void 0?64:+_e);function rt(){let nt;if(et||(et=nt=tt()),j.apply(this,arguments).draw(et,+_e.apply(this,arguments)),nt)return et=null,nt+""||null}return rt.type=function(nt){return arguments.length?(j=typeof nt=="function"?nt:constant$1(nt),rt):j},rt.size=function(nt){return arguments.length?(_e=typeof nt=="function"?nt:constant$1(+nt),rt):_e},rt.context=function(nt){return arguments.length?(et=nt??null,rt):et},rt}function noop(){}function point$2(j,_e,et){j._context.bezierCurveTo((2*j._x0+j._x1)/3,(2*j._y0+j._y1)/3,(j._x0+2*j._x1)/3,(j._y0+2*j._y1)/3,(j._x0+4*j._x1+_e)/6,(j._y0+4*j._y1+et)/6)}function Basis(j){this._context=j}Basis.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:point$2(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1,this._line?this._context.lineTo(j,_e):this._context.moveTo(j,_e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:point$2(this,j,_e);break}this._x0=this._x1,this._x1=j,this._y0=this._y1,this._y1=_e}};function curveBasis(j){return new Basis(j)}function BasisClosed(j){this._context=j}BasisClosed.prototype={areaStart:noop,areaEnd:noop,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1,this._x2=j,this._y2=_e;break;case 1:this._point=2,this._x3=j,this._y3=_e;break;case 2:this._point=3,this._x4=j,this._y4=_e,this._context.moveTo((this._x0+4*this._x1+j)/6,(this._y0+4*this._y1+_e)/6);break;default:point$2(this,j,_e);break}this._x0=this._x1,this._x1=j,this._y0=this._y1,this._y1=_e}};function curveBasisClosed(j){return new BasisClosed(j)}function BasisOpen(j){this._context=j}BasisOpen.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var et=(this._x0+4*this._x1+j)/6,tt=(this._y0+4*this._y1+_e)/6;this._line?this._context.lineTo(et,tt):this._context.moveTo(et,tt);break;case 3:this._point=4;default:point$2(this,j,_e);break}this._x0=this._x1,this._x1=j,this._y0=this._y1,this._y1=_e}};function curveBasisOpen(j){return new BasisOpen(j)}function LinearClosed(j){this._context=j}LinearClosed.prototype={areaStart:noop,areaEnd:noop,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(j,_e){j=+j,_e=+_e,this._point?this._context.lineTo(j,_e):(this._point=1,this._context.moveTo(j,_e))}};function curveLinearClosed(j){return new LinearClosed(j)}function sign(j){return j<0?-1:1}function slope3(j,_e,et){var tt=j._x1-j._x0,rt=_e-j._x1,nt=(j._y1-j._y0)/(tt||rt<0&&-0),ot=(et-j._y1)/(rt||tt<0&&-0),it=(nt*rt+ot*tt)/(tt+rt);return(sign(nt)+sign(ot))*Math.min(Math.abs(nt),Math.abs(ot),.5*Math.abs(it))||0}function slope2(j,_e){var et=j._x1-j._x0;return et?(3*(j._y1-j._y0)/et-_e)/2:_e}function point$1(j,_e,et){var tt=j._x0,rt=j._y0,nt=j._x1,ot=j._y1,it=(nt-tt)/3;j._context.bezierCurveTo(tt+it,rt+it*_e,nt-it,ot-it*et,nt,ot)}function MonotoneX(j){this._context=j}MonotoneX.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:point$1(this,this._t0,slope2(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(j,_e){var et=NaN;if(j=+j,_e=+_e,!(j===this._x1&&_e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(j,_e):this._context.moveTo(j,_e);break;case 1:this._point=2;break;case 2:this._point=3,point$1(this,slope2(this,et=slope3(this,j,_e)),et);break;default:point$1(this,this._t0,et=slope3(this,j,_e));break}this._x0=this._x1,this._x1=j,this._y0=this._y1,this._y1=_e,this._t0=et}}};function MonotoneY(j){this._context=new ReflectContext(j)}(MonotoneY.prototype=Object.create(MonotoneX.prototype)).point=function(j,_e){MonotoneX.prototype.point.call(this,_e,j)};function ReflectContext(j){this._context=j}ReflectContext.prototype={moveTo:function(j,_e){this._context.moveTo(_e,j)},closePath:function(){this._context.closePath()},lineTo:function(j,_e){this._context.lineTo(_e,j)},bezierCurveTo:function(j,_e,et,tt,rt,nt){this._context.bezierCurveTo(_e,j,tt,et,nt,rt)}};function monotoneX(j){return new MonotoneX(j)}function monotoneY(j){return new MonotoneY(j)}function Natural(j){this._context=j}Natural.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var j=this._x,_e=this._y,et=j.length;if(et)if(this._line?this._context.lineTo(j[0],_e[0]):this._context.moveTo(j[0],_e[0]),et===2)this._context.lineTo(j[1],_e[1]);else for(var tt=controlPoints(j),rt=controlPoints(_e),nt=0,ot=1;ot=0;--_e)rt[_e]=(ot[_e]-rt[_e+1])/nt[_e];for(nt[et-1]=(j[et]+rt[et-1])/2,_e=0;_e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(j,_e){switch(j=+j,_e=+_e,this._point){case 0:this._point=1,this._line?this._context.lineTo(j,_e):this._context.moveTo(j,_e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,_e),this._context.lineTo(j,_e);else{var et=this._x*(1-this._t)+j*this._t;this._context.lineTo(et,this._y),this._context.lineTo(et,_e)}break}}this._x=j,this._y=_e}};function curveStep(j){return new Step(j,.5)}function stepBefore(j){return new Step(j,0)}function stepAfter(j){return new Step(j,1)}function stackOffsetNone(j,_e){if((ot=j.length)>1)for(var et=1,tt,rt,nt=j[_e[0]],ot,it=nt.length;et=0;)et[_e]=_e;return et}function stackValue(j,_e){return j[_e]}function stackSeries(j){const _e=[];return _e.key=j,_e}function shapeStack(){var j=constant$1([]),_e=stackOrderNone,et=stackOffsetNone,tt=stackValue;function rt(nt){var ot=Array.from(j.apply(this,arguments),stackSeries),it,st=ot.length,lt=-1,ut;for(const ct of nt)for(it=0,++lt;it0){for(var et,tt,rt=0,nt=j[0].length,ot;rt0){for(var et=0,tt=j[_e[0]],rt,nt=tt.length;et0)||!((nt=(rt=j[_e[0]]).length)>0))){for(var et=0,tt=1,rt,nt,ot;tt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$c(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var symbolFactories={symbolCircle,symbolCross,symbolDiamond,symbolSquare,symbolStar,symbolTriangle,symbolWye},RADIAN$2=Math.PI/180,getSymbolFactory=function j(_e){var et="symbol".concat(upperFirst$1(_e));return symbolFactories[et]||symbolCircle},calculateAreaSize=function j(_e,et,tt){if(et==="area")return _e;switch(tt){case"cross":return 5*_e*_e/9;case"diamond":return .5*_e*_e/Math.sqrt(3);case"square":return _e*_e;case"star":{var rt=18*RADIAN$2;return 1.25*_e*_e*(Math.tan(rt)-Math.tan(rt*2)*Math.pow(Math.tan(rt),2))}case"triangle":return Math.sqrt(3)*_e*_e/4;case"wye":return(21-10*Math.sqrt(3))*_e*_e/8;default:return Math.PI*_e*_e/4}},registerSymbol=function j(_e,et){symbolFactories["symbol".concat(upperFirst$1(_e))]=et},Symbols=function j(_e){var et=_e.type,tt=et===void 0?"circle":et,rt=_e.size,nt=rt===void 0?64:rt,ot=_e.sizeType,it=ot===void 0?"area":ot,st=_objectWithoutProperties$c(_e,_excluded$c),lt=_objectSpread$x(_objectSpread$x({},st),{},{type:tt,size:nt,sizeType:it}),ut=function(){var mt=getSymbolFactory(tt),bt=Symbol$1().type(mt).size(calculateAreaSize(nt,it,tt));return bt()},ct=lt.className,dt=lt.cx,ft=lt.cy,pt=filterProps(lt,!0);return dt===+dt&&ft===+ft&&nt===+nt?React.createElement("path",_extends$l({},pt,{className:clsx("recharts-symbols",ct),transform:"translate(".concat(dt,", ").concat(ft,")"),d:ut()})):null};Symbols.registerSymbol=registerSymbol;function _typeof$A(j){"@babel/helpers - typeof";return _typeof$A=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$A(j)}function _extends$k(){return _extends$k=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$a(j){return _getPrototypeOf$a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$a(j)}function _defineProperty$y(j,_e,et){return _e=_toPropertyKey$z(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$z(j){var _e=_toPrimitive$z(j,"string");return _typeof$A(_e)==="symbol"?_e:String(_e)}function _toPrimitive$z(j,_e){if(_typeof$A(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$A(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var SIZE=32,DefaultLegendContent=function(j){_inherits$a(et,j);var _e=_createSuper$a(et);function et(){return _classCallCheck$d(this,et),_e.apply(this,arguments)}return _createClass$d(et,[{key:"renderIcon",value:function(rt){var nt=this.props.inactiveColor,ot=SIZE/2,it=SIZE/6,st=SIZE/3,lt=rt.inactive?nt:rt.color;if(rt.type==="plainline")return React.createElement("line",{strokeWidth:4,fill:"none",stroke:lt,strokeDasharray:rt.payload.strokeDasharray,x1:0,y1:ot,x2:SIZE,y2:ot,className:"recharts-legend-icon"});if(rt.type==="line")return React.createElement("path",{strokeWidth:4,fill:"none",stroke:lt,d:"M0,".concat(ot,"h").concat(st,` A`).concat(it,",").concat(it,",0,1,1,").concat(2*st,",").concat(ot,` H`).concat(SIZE,"M").concat(2*st,",").concat(ot,` - A`).concat(it,",").concat(it,",0,1,1,").concat(st,",").concat(ot),className:"recharts-legend-icon"});if(rt.type==="rect")return React.createElement("path",{stroke:"none",fill:lt,d:"M0,".concat(SIZE/8,"h").concat(SIZE,"v").concat(SIZE*3/4,"h").concat(-SIZE,"z"),className:"recharts-legend-icon"});if(React.isValidElement(rt.legendIcon)){var ut=_objectSpread$w({},rt);return delete ut.legendIcon,React.cloneElement(rt.legendIcon,ut)}return React.createElement(Symbols,{fill:lt,cx:ot,cy:ot,size:SIZE,sizeType:"diameter",type:rt.type})}},{key:"renderItems",value:function(){var rt=this,nt=this.props,ot=nt.payload,it=nt.iconSize,st=nt.layout,lt=nt.formatter,ut=nt.inactiveColor,ct={x:0,y:0,width:SIZE,height:SIZE},dt={display:st==="horizontal"?"inline-block":"block",marginRight:10},ft={display:"inline-block",verticalAlign:"middle",marginRight:4};return ot.map(function(pt,gt){var vt,bt=pt.formatter||lt,_t=clsx((vt={"recharts-legend-item":!0},_defineProperty$y(vt,"legend-item-".concat(gt),!0),_defineProperty$y(vt,"inactive",pt.inactive),vt));if(pt.type==="none")return null;var xt=isFunction$6(pt.value)?null:pt.value;warn(!isFunction$6(pt.value),`The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: `);var yt=pt.inactive?ut:pt.color;return React.createElement("li",_extends$k({className:_t,style:dt,key:"legend-item-".concat(gt)},adaptEventsOfChild(rt.props,pt,gt)),React.createElement(Surface,{width:it,height:it,viewBox:ct,style:ft},rt.renderIcon(pt)),React.createElement("span",{className:"recharts-legend-item-text",style:{color:yt}},bt?bt(xt,pt,gt):xt))})}},{key:"render",value:function(){var rt=this.props,nt=rt.payload,ot=rt.layout,it=rt.align;if(!nt||!nt.length)return null;var st={padding:0,margin:0,textAlign:ot==="horizontal"?it:"left"};return React.createElement("ul",{className:"recharts-default-legend",style:st},this.renderItems())}}]),et}(reactExports.PureComponent);_defineProperty$y(DefaultLegendContent,"displayName","Legend");_defineProperty$y(DefaultLegendContent,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var baseIteratee$3=_baseIteratee,baseUniq=_baseUniq;function uniqBy(j,_e){return j&&j.length?baseUniq(j,baseIteratee$3(_e)):[]}var uniqBy_1=uniqBy;const uniqBy$1=getDefaultExportFromCjs(uniqBy_1);function getUniqPayload(j,_e,et){return _e===!0?uniqBy$1(j,et):isFunction$6(_e)?uniqBy$1(j,_e):j}function _typeof$z(j){"@babel/helpers - typeof";return _typeof$z=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$z(j)}var _excluded$b=["ref"];function ownKeys$v(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$v(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$9(j){return _getPrototypeOf$9=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$9(j)}function _defineProperty$x(j,_e,et){return _e=_toPropertyKey$y(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$y(j){var _e=_toPrimitive$y(j,"string");return _typeof$z(_e)==="symbol"?_e:String(_e)}function _toPrimitive$y(j,_e){if(_typeof$z(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$z(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}function _objectWithoutProperties$b(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$b(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$b(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function defaultUniqBy$1(j){return j.value}function renderContent$1(j,_e){if(React.isValidElement(j))return React.cloneElement(j,_e);if(typeof j=="function")return React.createElement(j,_e);_e.ref;var et=_objectWithoutProperties$b(_e,_excluded$b);return React.createElement(DefaultLegendContent,et)}var EPS$1=1,Legend=function(j){_inherits$9(et,j);var _e=_createSuper$9(et);function et(){var tt;_classCallCheck$c(this,et);for(var rt=arguments.length,nt=new Array(rt),ot=0;otEPS$1||Math.abs(nt.height-this.lastBoundingBox.height)>EPS$1)&&(this.lastBoundingBox.width=nt.width,this.lastBoundingBox.height=nt.height,rt&&rt(nt))}else(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,rt&&rt(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?_objectSpread$v({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(rt){var nt=this.props,ot=nt.layout,it=nt.align,st=nt.verticalAlign,lt=nt.margin,ut=nt.chartWidth,ct=nt.chartHeight,dt,ft;if(!rt||(rt.left===void 0||rt.left===null)&&(rt.right===void 0||rt.right===null))if(it==="center"&&ot==="vertical"){var pt=this.getBBoxSnapshot();dt={left:((ut||0)-pt.width)/2}}else dt=it==="right"?{right:lt&<.right||0}:{left:lt&<.left||0};if(!rt||(rt.top===void 0||rt.top===null)&&(rt.bottom===void 0||rt.bottom===null))if(st==="middle"){var gt=this.getBBoxSnapshot();ft={top:((ct||0)-gt.height)/2}}else ft=st==="bottom"?{bottom:lt&<.bottom||0}:{top:lt&<.top||0};return _objectSpread$v(_objectSpread$v({},dt),ft)}},{key:"render",value:function(){var rt=this,nt=this.props,ot=nt.content,it=nt.width,st=nt.height,lt=nt.wrapperStyle,ut=nt.payloadUniqBy,ct=nt.payload,dt=_objectSpread$v(_objectSpread$v({position:"absolute",width:it||"auto",height:st||"auto"},this.getDefaultPosition(lt)),lt);return React.createElement("div",{className:"recharts-legend-wrapper",style:dt,ref:function(pt){rt.wrapperNode=pt}},renderContent$1(ot,_objectSpread$v(_objectSpread$v({},this.props),{},{payload:getUniqPayload(ct,ut,defaultUniqBy$1)})))}}],[{key:"getWithHeight",value:function(rt,nt){var ot=rt.props.layout;return ot==="vertical"&&isNumber(rt.props.height)?{height:rt.props.height}:ot==="horizontal"?{width:rt.props.width||nt}:null}}]),et}(reactExports.PureComponent);_defineProperty$x(Legend,"displayName","Legend");_defineProperty$x(Legend,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});function _typeof$y(j){"@babel/helpers - typeof";return _typeof$y=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$y(j)}function _slicedToArray$b(j,_e){return _arrayWithHoles$c(j)||_iterableToArrayLimit$b(j,_e)||_unsupportedIterableToArray$j(j,_e)||_nonIterableRest$c()}function _nonIterableRest$c(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$j(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$j(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$j(j,_e)}}function _arrayLikeToArray$j(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$b(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$c(j){if(Array.isArray(j))return j}function ownKeys$u(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$u(j){for(var _e=1;_e0;)if(!et.equals(j[tt],_e[tt],tt,tt,j,_e,et))return!1;return!0}function areDatesEqual(j,_e){return sameValueZeroEqual(j.getTime(),_e.getTime())}function areMapsEqual(j,_e,et){if(j.size!==_e.size)return!1;for(var tt={},rt=j.entries(),nt=0,ot,it;(ot=rt.next())&&!ot.done;){for(var st=_e.entries(),lt=!1,ut=0;(it=st.next())&&!it.done;){var ct=ot.value,dt=ct[0],ft=ct[1],pt=it.value,gt=pt[0],vt=pt[1];!lt&&!tt[ut]&&(lt=et.equals(dt,gt,nt,ut,j,_e,et)&&et.equals(ft,vt,dt,gt,j,_e,et))&&(tt[ut]=!0),ut++}if(!lt)return!1;nt++}return!0}function areObjectsEqual(j,_e,et){var tt=keys(j),rt=tt.length;if(keys(_e).length!==rt)return!1;for(var nt;rt-- >0;)if(nt=tt[rt],nt===OWNER&&(j.$$typeof||_e.$$typeof)&&j.$$typeof!==_e.$$typeof||!hasOwn(_e,nt)||!et.equals(j[nt],_e[nt],nt,nt,j,_e,et))return!1;return!0}function areObjectsEqualStrict(j,_e,et){var tt=getStrictProperties(j),rt=tt.length;if(getStrictProperties(_e).length!==rt)return!1;for(var nt,ot,it;rt-- >0;)if(nt=tt[rt],nt===OWNER&&(j.$$typeof||_e.$$typeof)&&j.$$typeof!==_e.$$typeof||!hasOwn(_e,nt)||!et.equals(j[nt],_e[nt],nt,nt,j,_e,et)||(ot=getOwnPropertyDescriptor(j,nt),it=getOwnPropertyDescriptor(_e,nt),(ot||it)&&(!ot||!it||ot.configurable!==it.configurable||ot.enumerable!==it.enumerable||ot.writable!==it.writable)))return!1;return!0}function arePrimitiveWrappersEqual(j,_e){return sameValueZeroEqual(j.valueOf(),_e.valueOf())}function areRegExpsEqual(j,_e){return j.source===_e.source&&j.flags===_e.flags}function areSetsEqual(j,_e,et){if(j.size!==_e.size)return!1;for(var tt={},rt=j.values(),nt,ot;(nt=rt.next())&&!nt.done;){for(var it=_e.values(),st=!1,lt=0;(ot=it.next())&&!ot.done;)!st&&!tt[lt]&&(st=et.equals(nt.value,ot.value,nt.value,ot.value,j,_e,et))&&(tt[lt]=!0),lt++;if(!st)return!1}return!0}function areTypedArraysEqual(j,_e){var et=j.length;if(_e.length!==et)return!1;for(;et-- >0;)if(j[et]!==_e[et])return!1;return!0}var ARGUMENTS_TAG="[object Arguments]",BOOLEAN_TAG="[object Boolean]",DATE_TAG="[object Date]",MAP_TAG="[object Map]",NUMBER_TAG="[object Number]",OBJECT_TAG="[object Object]",REG_EXP_TAG="[object RegExp]",SET_TAG="[object Set]",STRING_TAG="[object String]",isArray$2=Array.isArray,isTypedArray=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,assign=Object.assign,getTag=Object.prototype.toString.call.bind(Object.prototype.toString);function createEqualityComparator(j){var _e=j.areArraysEqual,et=j.areDatesEqual,tt=j.areMapsEqual,rt=j.areObjectsEqual,nt=j.arePrimitiveWrappersEqual,ot=j.areRegExpsEqual,it=j.areSetsEqual,st=j.areTypedArraysEqual;return function(ut,ct,dt){if(ut===ct)return!0;if(ut==null||ct==null||typeof ut!="object"||typeof ct!="object")return ut!==ut&&ct!==ct;var ft=ut.constructor;if(ft!==ct.constructor)return!1;if(ft===Object)return rt(ut,ct,dt);if(isArray$2(ut))return _e(ut,ct,dt);if(isTypedArray!=null&&isTypedArray(ut))return st(ut,ct,dt);if(ft===Date)return et(ut,ct,dt);if(ft===RegExp)return ot(ut,ct,dt);if(ft===Map)return tt(ut,ct,dt);if(ft===Set)return it(ut,ct,dt);var pt=getTag(ut);return pt===DATE_TAG?et(ut,ct,dt):pt===REG_EXP_TAG?ot(ut,ct,dt):pt===MAP_TAG?tt(ut,ct,dt):pt===SET_TAG?it(ut,ct,dt):pt===OBJECT_TAG?typeof ut.then!="function"&&typeof ct.then!="function"&&rt(ut,ct,dt):pt===ARGUMENTS_TAG?rt(ut,ct,dt):pt===BOOLEAN_TAG||pt===NUMBER_TAG||pt===STRING_TAG?nt(ut,ct,dt):!1}}function createEqualityComparatorConfig(j){var _e=j.circular,et=j.createCustomConfig,tt=j.strict,rt={areArraysEqual:tt?areObjectsEqualStrict:areArraysEqual,areDatesEqual,areMapsEqual:tt?combineComparators(areMapsEqual,areObjectsEqualStrict):areMapsEqual,areObjectsEqual:tt?areObjectsEqualStrict:areObjectsEqual,arePrimitiveWrappersEqual,areRegExpsEqual,areSetsEqual:tt?combineComparators(areSetsEqual,areObjectsEqualStrict):areSetsEqual,areTypedArraysEqual:tt?areObjectsEqualStrict:areTypedArraysEqual};if(et&&(rt=assign({},rt,et(rt))),_e){var nt=createIsCircular(rt.areArraysEqual),ot=createIsCircular(rt.areMapsEqual),it=createIsCircular(rt.areObjectsEqual),st=createIsCircular(rt.areSetsEqual);rt=assign({},rt,{areArraysEqual:nt,areMapsEqual:ot,areObjectsEqual:it,areSetsEqual:st})}return rt}function createInternalEqualityComparator(j){return function(_e,et,tt,rt,nt,ot,it){return j(_e,et,it)}}function createIsEqual(j){var _e=j.circular,et=j.comparator,tt=j.createState,rt=j.equals,nt=j.strict;if(tt)return function(st,lt){var ut=tt(),ct=ut.cache,dt=ct===void 0?_e?new WeakMap:void 0:ct,ft=ut.meta;return et(st,lt,{cache:dt,equals:rt,meta:ft,strict:nt})};if(_e)return function(st,lt){return et(st,lt,{cache:new WeakMap,equals:rt,meta:void 0,strict:nt})};var ot={cache:void 0,equals:rt,meta:void 0,strict:nt};return function(st,lt){return et(st,lt,ot)}}var deepEqual=createCustomEqual();createCustomEqual({strict:!0});createCustomEqual({circular:!0});createCustomEqual({circular:!0,strict:!0});createCustomEqual({createInternalComparator:function(){return sameValueZeroEqual}});createCustomEqual({strict:!0,createInternalComparator:function(){return sameValueZeroEqual}});createCustomEqual({circular:!0,createInternalComparator:function(){return sameValueZeroEqual}});createCustomEqual({circular:!0,createInternalComparator:function(){return sameValueZeroEqual},strict:!0});function createCustomEqual(j){j===void 0&&(j={});var _e=j.circular,et=_e===void 0?!1:_e,tt=j.createInternalComparator,rt=j.createState,nt=j.strict,ot=nt===void 0?!1:nt,it=createEqualityComparatorConfig(j),st=createEqualityComparator(it),lt=tt?tt(st):createInternalEqualityComparator(st);return createIsEqual({circular:et,comparator:st,createState:rt,equals:lt,strict:ot})}function safeRequestAnimationFrame(j){typeof requestAnimationFrame<"u"&&requestAnimationFrame(j)}function setRafTimeout(j){var _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,et=-1,tt=function rt(nt){et<0&&(et=nt),nt-et>_e?(j(nt),et=-1):safeRequestAnimationFrame(rt)};requestAnimationFrame(tt)}function _typeof$x(j){"@babel/helpers - typeof";return _typeof$x=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$x(j)}function _toArray(j){return _arrayWithHoles$b(j)||_iterableToArray$b(j)||_unsupportedIterableToArray$i(j)||_nonIterableRest$b()}function _nonIterableRest$b(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. + A`).concat(it,",").concat(it,",0,1,1,").concat(st,",").concat(ot),className:"recharts-legend-icon"});if(rt.type==="rect")return React.createElement("path",{stroke:"none",fill:lt,d:"M0,".concat(SIZE/8,"h").concat(SIZE,"v").concat(SIZE*3/4,"h").concat(-SIZE,"z"),className:"recharts-legend-icon"});if(React.isValidElement(rt.legendIcon)){var ut=_objectSpread$w({},rt);return delete ut.legendIcon,React.cloneElement(rt.legendIcon,ut)}return React.createElement(Symbols,{fill:lt,cx:ot,cy:ot,size:SIZE,sizeType:"diameter",type:rt.type})}},{key:"renderItems",value:function(){var rt=this,nt=this.props,ot=nt.payload,it=nt.iconSize,st=nt.layout,lt=nt.formatter,ut=nt.inactiveColor,ct={x:0,y:0,width:SIZE,height:SIZE},dt={display:st==="horizontal"?"inline-block":"block",marginRight:10},ft={display:"inline-block",verticalAlign:"middle",marginRight:4};return ot.map(function(pt,gt){var mt,bt=pt.formatter||lt,_t=clsx((mt={"recharts-legend-item":!0},_defineProperty$y(mt,"legend-item-".concat(gt),!0),_defineProperty$y(mt,"inactive",pt.inactive),mt));if(pt.type==="none")return null;var xt=isFunction$6(pt.value)?null:pt.value;warn(!isFunction$6(pt.value),`The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: `);var yt=pt.inactive?ut:pt.color;return React.createElement("li",_extends$k({className:_t,style:dt,key:"legend-item-".concat(gt)},adaptEventsOfChild(rt.props,pt,gt)),React.createElement(Surface,{width:it,height:it,viewBox:ct,style:ft},rt.renderIcon(pt)),React.createElement("span",{className:"recharts-legend-item-text",style:{color:yt}},bt?bt(xt,pt,gt):xt))})}},{key:"render",value:function(){var rt=this.props,nt=rt.payload,ot=rt.layout,it=rt.align;if(!nt||!nt.length)return null;var st={padding:0,margin:0,textAlign:ot==="horizontal"?it:"left"};return React.createElement("ul",{className:"recharts-default-legend",style:st},this.renderItems())}}]),et}(reactExports.PureComponent);_defineProperty$y(DefaultLegendContent,"displayName","Legend");_defineProperty$y(DefaultLegendContent,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var baseIteratee$3=_baseIteratee,baseUniq=_baseUniq;function uniqBy(j,_e){return j&&j.length?baseUniq(j,baseIteratee$3(_e)):[]}var uniqBy_1=uniqBy;const uniqBy$1=getDefaultExportFromCjs(uniqBy_1);function getUniqPayload(j,_e,et){return _e===!0?uniqBy$1(j,et):isFunction$6(_e)?uniqBy$1(j,_e):j}function _typeof$z(j){"@babel/helpers - typeof";return _typeof$z=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$z(j)}var _excluded$b=["ref"];function ownKeys$v(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$v(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$9(j){return _getPrototypeOf$9=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$9(j)}function _defineProperty$x(j,_e,et){return _e=_toPropertyKey$y(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$y(j){var _e=_toPrimitive$y(j,"string");return _typeof$z(_e)==="symbol"?_e:String(_e)}function _toPrimitive$y(j,_e){if(_typeof$z(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$z(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}function _objectWithoutProperties$b(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$b(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$b(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function defaultUniqBy$1(j){return j.value}function renderContent$1(j,_e){if(React.isValidElement(j))return React.cloneElement(j,_e);if(typeof j=="function")return React.createElement(j,_e);_e.ref;var et=_objectWithoutProperties$b(_e,_excluded$b);return React.createElement(DefaultLegendContent,et)}var EPS$1=1,Legend=function(j){_inherits$9(et,j);var _e=_createSuper$9(et);function et(){var tt;_classCallCheck$c(this,et);for(var rt=arguments.length,nt=new Array(rt),ot=0;otEPS$1||Math.abs(nt.height-this.lastBoundingBox.height)>EPS$1)&&(this.lastBoundingBox.width=nt.width,this.lastBoundingBox.height=nt.height,rt&&rt(nt))}else(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,rt&&rt(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?_objectSpread$v({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(rt){var nt=this.props,ot=nt.layout,it=nt.align,st=nt.verticalAlign,lt=nt.margin,ut=nt.chartWidth,ct=nt.chartHeight,dt,ft;if(!rt||(rt.left===void 0||rt.left===null)&&(rt.right===void 0||rt.right===null))if(it==="center"&&ot==="vertical"){var pt=this.getBBoxSnapshot();dt={left:((ut||0)-pt.width)/2}}else dt=it==="right"?{right:lt&<.right||0}:{left:lt&<.left||0};if(!rt||(rt.top===void 0||rt.top===null)&&(rt.bottom===void 0||rt.bottom===null))if(st==="middle"){var gt=this.getBBoxSnapshot();ft={top:((ct||0)-gt.height)/2}}else ft=st==="bottom"?{bottom:lt&<.bottom||0}:{top:lt&<.top||0};return _objectSpread$v(_objectSpread$v({},dt),ft)}},{key:"render",value:function(){var rt=this,nt=this.props,ot=nt.content,it=nt.width,st=nt.height,lt=nt.wrapperStyle,ut=nt.payloadUniqBy,ct=nt.payload,dt=_objectSpread$v(_objectSpread$v({position:"absolute",width:it||"auto",height:st||"auto"},this.getDefaultPosition(lt)),lt);return React.createElement("div",{className:"recharts-legend-wrapper",style:dt,ref:function(pt){rt.wrapperNode=pt}},renderContent$1(ot,_objectSpread$v(_objectSpread$v({},this.props),{},{payload:getUniqPayload(ct,ut,defaultUniqBy$1)})))}}],[{key:"getWithHeight",value:function(rt,nt){var ot=rt.props.layout;return ot==="vertical"&&isNumber(rt.props.height)?{height:rt.props.height}:ot==="horizontal"?{width:rt.props.width||nt}:null}}]),et}(reactExports.PureComponent);_defineProperty$x(Legend,"displayName","Legend");_defineProperty$x(Legend,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});function _typeof$y(j){"@babel/helpers - typeof";return _typeof$y=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$y(j)}function _slicedToArray$b(j,_e){return _arrayWithHoles$c(j)||_iterableToArrayLimit$b(j,_e)||_unsupportedIterableToArray$j(j,_e)||_nonIterableRest$c()}function _nonIterableRest$c(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$j(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$j(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$j(j,_e)}}function _arrayLikeToArray$j(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$b(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$c(j){if(Array.isArray(j))return j}function ownKeys$u(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$u(j){for(var _e=1;_e0;)if(!et.equals(j[tt],_e[tt],tt,tt,j,_e,et))return!1;return!0}function areDatesEqual(j,_e){return sameValueZeroEqual(j.getTime(),_e.getTime())}function areMapsEqual(j,_e,et){if(j.size!==_e.size)return!1;for(var tt={},rt=j.entries(),nt=0,ot,it;(ot=rt.next())&&!ot.done;){for(var st=_e.entries(),lt=!1,ut=0;(it=st.next())&&!it.done;){var ct=ot.value,dt=ct[0],ft=ct[1],pt=it.value,gt=pt[0],mt=pt[1];!lt&&!tt[ut]&&(lt=et.equals(dt,gt,nt,ut,j,_e,et)&&et.equals(ft,mt,dt,gt,j,_e,et))&&(tt[ut]=!0),ut++}if(!lt)return!1;nt++}return!0}function areObjectsEqual(j,_e,et){var tt=keys(j),rt=tt.length;if(keys(_e).length!==rt)return!1;for(var nt;rt-- >0;)if(nt=tt[rt],nt===OWNER&&(j.$$typeof||_e.$$typeof)&&j.$$typeof!==_e.$$typeof||!hasOwn(_e,nt)||!et.equals(j[nt],_e[nt],nt,nt,j,_e,et))return!1;return!0}function areObjectsEqualStrict(j,_e,et){var tt=getStrictProperties(j),rt=tt.length;if(getStrictProperties(_e).length!==rt)return!1;for(var nt,ot,it;rt-- >0;)if(nt=tt[rt],nt===OWNER&&(j.$$typeof||_e.$$typeof)&&j.$$typeof!==_e.$$typeof||!hasOwn(_e,nt)||!et.equals(j[nt],_e[nt],nt,nt,j,_e,et)||(ot=getOwnPropertyDescriptor(j,nt),it=getOwnPropertyDescriptor(_e,nt),(ot||it)&&(!ot||!it||ot.configurable!==it.configurable||ot.enumerable!==it.enumerable||ot.writable!==it.writable)))return!1;return!0}function arePrimitiveWrappersEqual(j,_e){return sameValueZeroEqual(j.valueOf(),_e.valueOf())}function areRegExpsEqual(j,_e){return j.source===_e.source&&j.flags===_e.flags}function areSetsEqual(j,_e,et){if(j.size!==_e.size)return!1;for(var tt={},rt=j.values(),nt,ot;(nt=rt.next())&&!nt.done;){for(var it=_e.values(),st=!1,lt=0;(ot=it.next())&&!ot.done;)!st&&!tt[lt]&&(st=et.equals(nt.value,ot.value,nt.value,ot.value,j,_e,et))&&(tt[lt]=!0),lt++;if(!st)return!1}return!0}function areTypedArraysEqual(j,_e){var et=j.length;if(_e.length!==et)return!1;for(;et-- >0;)if(j[et]!==_e[et])return!1;return!0}var ARGUMENTS_TAG="[object Arguments]",BOOLEAN_TAG="[object Boolean]",DATE_TAG="[object Date]",MAP_TAG="[object Map]",NUMBER_TAG="[object Number]",OBJECT_TAG="[object Object]",REG_EXP_TAG="[object RegExp]",SET_TAG="[object Set]",STRING_TAG="[object String]",isArray$2=Array.isArray,isTypedArray=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,assign=Object.assign,getTag=Object.prototype.toString.call.bind(Object.prototype.toString);function createEqualityComparator(j){var _e=j.areArraysEqual,et=j.areDatesEqual,tt=j.areMapsEqual,rt=j.areObjectsEqual,nt=j.arePrimitiveWrappersEqual,ot=j.areRegExpsEqual,it=j.areSetsEqual,st=j.areTypedArraysEqual;return function(ut,ct,dt){if(ut===ct)return!0;if(ut==null||ct==null||typeof ut!="object"||typeof ct!="object")return ut!==ut&&ct!==ct;var ft=ut.constructor;if(ft!==ct.constructor)return!1;if(ft===Object)return rt(ut,ct,dt);if(isArray$2(ut))return _e(ut,ct,dt);if(isTypedArray!=null&&isTypedArray(ut))return st(ut,ct,dt);if(ft===Date)return et(ut,ct,dt);if(ft===RegExp)return ot(ut,ct,dt);if(ft===Map)return tt(ut,ct,dt);if(ft===Set)return it(ut,ct,dt);var pt=getTag(ut);return pt===DATE_TAG?et(ut,ct,dt):pt===REG_EXP_TAG?ot(ut,ct,dt):pt===MAP_TAG?tt(ut,ct,dt):pt===SET_TAG?it(ut,ct,dt):pt===OBJECT_TAG?typeof ut.then!="function"&&typeof ct.then!="function"&&rt(ut,ct,dt):pt===ARGUMENTS_TAG?rt(ut,ct,dt):pt===BOOLEAN_TAG||pt===NUMBER_TAG||pt===STRING_TAG?nt(ut,ct,dt):!1}}function createEqualityComparatorConfig(j){var _e=j.circular,et=j.createCustomConfig,tt=j.strict,rt={areArraysEqual:tt?areObjectsEqualStrict:areArraysEqual,areDatesEqual,areMapsEqual:tt?combineComparators(areMapsEqual,areObjectsEqualStrict):areMapsEqual,areObjectsEqual:tt?areObjectsEqualStrict:areObjectsEqual,arePrimitiveWrappersEqual,areRegExpsEqual,areSetsEqual:tt?combineComparators(areSetsEqual,areObjectsEqualStrict):areSetsEqual,areTypedArraysEqual:tt?areObjectsEqualStrict:areTypedArraysEqual};if(et&&(rt=assign({},rt,et(rt))),_e){var nt=createIsCircular(rt.areArraysEqual),ot=createIsCircular(rt.areMapsEqual),it=createIsCircular(rt.areObjectsEqual),st=createIsCircular(rt.areSetsEqual);rt=assign({},rt,{areArraysEqual:nt,areMapsEqual:ot,areObjectsEqual:it,areSetsEqual:st})}return rt}function createInternalEqualityComparator(j){return function(_e,et,tt,rt,nt,ot,it){return j(_e,et,it)}}function createIsEqual(j){var _e=j.circular,et=j.comparator,tt=j.createState,rt=j.equals,nt=j.strict;if(tt)return function(st,lt){var ut=tt(),ct=ut.cache,dt=ct===void 0?_e?new WeakMap:void 0:ct,ft=ut.meta;return et(st,lt,{cache:dt,equals:rt,meta:ft,strict:nt})};if(_e)return function(st,lt){return et(st,lt,{cache:new WeakMap,equals:rt,meta:void 0,strict:nt})};var ot={cache:void 0,equals:rt,meta:void 0,strict:nt};return function(st,lt){return et(st,lt,ot)}}var deepEqual=createCustomEqual();createCustomEqual({strict:!0});createCustomEqual({circular:!0});createCustomEqual({circular:!0,strict:!0});createCustomEqual({createInternalComparator:function(){return sameValueZeroEqual}});createCustomEqual({strict:!0,createInternalComparator:function(){return sameValueZeroEqual}});createCustomEqual({circular:!0,createInternalComparator:function(){return sameValueZeroEqual}});createCustomEqual({circular:!0,createInternalComparator:function(){return sameValueZeroEqual},strict:!0});function createCustomEqual(j){j===void 0&&(j={});var _e=j.circular,et=_e===void 0?!1:_e,tt=j.createInternalComparator,rt=j.createState,nt=j.strict,ot=nt===void 0?!1:nt,it=createEqualityComparatorConfig(j),st=createEqualityComparator(it),lt=tt?tt(st):createInternalEqualityComparator(st);return createIsEqual({circular:et,comparator:st,createState:rt,equals:lt,strict:ot})}function safeRequestAnimationFrame(j){typeof requestAnimationFrame<"u"&&requestAnimationFrame(j)}function setRafTimeout(j){var _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,et=-1,tt=function rt(nt){et<0&&(et=nt),nt-et>_e?(j(nt),et=-1):safeRequestAnimationFrame(rt)};requestAnimationFrame(tt)}function _typeof$x(j){"@babel/helpers - typeof";return _typeof$x=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$x(j)}function _toArray(j){return _arrayWithHoles$b(j)||_iterableToArray$b(j)||_unsupportedIterableToArray$i(j)||_nonIterableRest$b()}function _nonIterableRest$b(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$i(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$i(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$i(j,_e)}}function _arrayLikeToArray$i(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArray$b(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithHoles$b(j){if(Array.isArray(j))return j}function createAnimateManager(){var j={},_e=function(){return null},et=!1,tt=function rt(nt){if(!et){if(Array.isArray(nt)){if(!nt.length)return;var ot=nt,it=_toArray(ot),st=it[0],lt=it.slice(1);if(typeof st=="number"){setRafTimeout(rt.bind(null,lt),st);return}rt(st),setRafTimeout(rt.bind(null,lt));return}_typeof$x(nt)==="object"&&(j=nt,_e(j)),typeof nt=="function"&&nt()}};return{stop:function(){et=!0},start:function(nt){et=!1,tt(nt)},subscribe:function(nt){return _e=nt,function(){_e=function(){return null}}}}}function _typeof$w(j){"@babel/helpers - typeof";return _typeof$w=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$w(j)}function ownKeys$t(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$t(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}var ACCURACY=1e-4,cubicBezierFactor=function j(_e,et){return[0,3*_e,3*et-6*_e,3*_e-3*et+1]},multyTime=function j(_e,et){return _e.map(function(tt,rt){return tt*Math.pow(et,rt)}).reduce(function(tt,rt){return tt+rt})},cubicBezier=function j(_e,et){return function(tt){var rt=cubicBezierFactor(_e,et);return multyTime(rt,tt)}},derivativeCubicBezier=function j(_e,et){return function(tt){var rt=cubicBezierFactor(_e,et),nt=[].concat(_toConsumableArray$a(rt.map(function(ot,it){return ot*it}).slice(1)),[0]);return multyTime(nt,tt)}},configBezier=function j(){for(var _e=arguments.length,et=new Array(_e),tt=0;tt<_e;tt++)et[tt]=arguments[tt];var rt=et[0],nt=et[1],ot=et[2],it=et[3];if(et.length===1)switch(et[0]){case"linear":rt=0,nt=0,ot=1,it=1;break;case"ease":rt=.25,nt=.1,ot=.25,it=1;break;case"ease-in":rt=.42,nt=0,ot=1,it=1;break;case"ease-out":rt=.42,nt=0,ot=.58,it=1;break;case"ease-in-out":rt=0,nt=0,ot=.58,it=1;break;default:{var st=et[0].split("(");if(st[0]==="cubic-bezier"&&st[1].split(")")[0].split(",").length===4){var lt=st[1].split(")")[0].split(",").map(function(vt){return parseFloat(vt)}),ut=_slicedToArray$a(lt,4);rt=ut[0],nt=ut[1],ot=ut[2],it=ut[3]}}}var ct=cubicBezier(rt,ot),dt=cubicBezier(nt,it),ft=derivativeCubicBezier(rt,ot),pt=function(bt){return bt>1?1:bt<0?0:bt},gt=function(bt){for(var _t=bt>1?1:bt,xt=_t,yt=0;yt<8;++yt){var Et=ct(xt)-_t,St=ft(xt);if(Math.abs(Et-_t)0&&arguments[0]!==void 0?arguments[0]:{},et=_e.stiff,tt=et===void 0?100:et,rt=_e.damping,nt=rt===void 0?8:rt,ot=_e.dt,it=ot===void 0?17:ot,st=function(ut,ct,dt){var ft=-(ut-ct)*tt,pt=dt*nt,gt=dt+(ft-pt)*it/1e3,vt=dt*it/1e3+ut;return Math.abs(vt-ct)j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}var ACCURACY=1e-4,cubicBezierFactor=function j(_e,et){return[0,3*_e,3*et-6*_e,3*_e-3*et+1]},multyTime=function j(_e,et){return _e.map(function(tt,rt){return tt*Math.pow(et,rt)}).reduce(function(tt,rt){return tt+rt})},cubicBezier=function j(_e,et){return function(tt){var rt=cubicBezierFactor(_e,et);return multyTime(rt,tt)}},derivativeCubicBezier=function j(_e,et){return function(tt){var rt=cubicBezierFactor(_e,et),nt=[].concat(_toConsumableArray$a(rt.map(function(ot,it){return ot*it}).slice(1)),[0]);return multyTime(nt,tt)}},configBezier=function j(){for(var _e=arguments.length,et=new Array(_e),tt=0;tt<_e;tt++)et[tt]=arguments[tt];var rt=et[0],nt=et[1],ot=et[2],it=et[3];if(et.length===1)switch(et[0]){case"linear":rt=0,nt=0,ot=1,it=1;break;case"ease":rt=.25,nt=.1,ot=.25,it=1;break;case"ease-in":rt=.42,nt=0,ot=1,it=1;break;case"ease-out":rt=.42,nt=0,ot=.58,it=1;break;case"ease-in-out":rt=0,nt=0,ot=.58,it=1;break;default:{var st=et[0].split("(");if(st[0]==="cubic-bezier"&&st[1].split(")")[0].split(",").length===4){var lt=st[1].split(")")[0].split(",").map(function(mt){return parseFloat(mt)}),ut=_slicedToArray$a(lt,4);rt=ut[0],nt=ut[1],ot=ut[2],it=ut[3]}}}var ct=cubicBezier(rt,ot),dt=cubicBezier(nt,it),ft=derivativeCubicBezier(rt,ot),pt=function(bt){return bt>1?1:bt<0?0:bt},gt=function(bt){for(var _t=bt>1?1:bt,xt=_t,yt=0;yt<8;++yt){var Et=ct(xt)-_t,St=ft(xt);if(Math.abs(Et-_t)0&&arguments[0]!==void 0?arguments[0]:{},et=_e.stiff,tt=et===void 0?100:et,rt=_e.damping,nt=rt===void 0?8:rt,ot=_e.dt,it=ot===void 0?17:ot,st=function(ut,ct,dt){var ft=-(ut-ct)*tt,pt=dt*nt,gt=dt+(ft-pt)*it/1e3,mt=dt*it/1e3+ut;return Math.abs(mt-ct)j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$9(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$9(j){if(Array.isArray(j))return j}var alpha=function j(_e,et,tt){return _e+(et-_e)*tt},needContinue=function j(_e){var et=_e.from,tt=_e.to;return et!==tt},calStepperVals=function j(_e,et,tt){var rt=mapObject(function(nt,ot){if(needContinue(ot)){var it=_e(ot.from,ot.to,ot.velocity),st=_slicedToArray$9(it,2),lt=st[0],ut=st[1];return _objectSpread$s(_objectSpread$s({},ot),{},{from:lt,velocity:ut})}return ot},et);return tt<1?mapObject(function(nt,ot){return needContinue(ot)?_objectSpread$s(_objectSpread$s({},ot),{},{velocity:alpha(ot.velocity,rt[nt].velocity,tt),from:alpha(ot.from,rt[nt].from,tt)}):ot},et):j(_e,rt,tt-1)};const configUpdate=function(j,_e,et,tt,rt){var nt=getIntersectionKeys(j,_e),ot=nt.reduce(function(vt,bt){return _objectSpread$s(_objectSpread$s({},vt),{},_defineProperty$u({},bt,[j[bt],_e[bt]]))},{}),it=nt.reduce(function(vt,bt){return _objectSpread$s(_objectSpread$s({},vt),{},_defineProperty$u({},bt,{from:j[bt],velocity:0,to:_e[bt]}))},{}),st=-1,lt,ut,ct=function(){return null},dt=function(){return mapObject(function(bt,_t){return _t.from},it)},ft=function(){return!Object.values(it).filter(needContinue).length},pt=function(bt){lt||(lt=bt);var _t=bt-lt,xt=_t/et.dt;it=calStepperVals(et,it,xt),rt(_objectSpread$s(_objectSpread$s(_objectSpread$s({},j),_e),dt())),lt=bt,ft()||(st=requestAnimationFrame(ct))},gt=function(bt){ut||(ut=bt);var _t=(bt-ut)/tt,xt=mapObject(function(Et,St){return alpha.apply(void 0,_toConsumableArray$9(St).concat([et(_t)]))},ot);if(rt(_objectSpread$s(_objectSpread$s(_objectSpread$s({},j),_e),xt)),_t<1)st=requestAnimationFrame(ct);else{var yt=mapObject(function(Et,St){return alpha.apply(void 0,_toConsumableArray$9(St).concat([et(1)]))},ot);rt(_objectSpread$s(_objectSpread$s(_objectSpread$s({},j),_e),yt))}};return ct=et.isStepper?pt:gt,function(){return requestAnimationFrame(ct),function(){cancelAnimationFrame(st)}}};function _typeof$u(j){"@babel/helpers - typeof";return _typeof$u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$u(j)}var _excluded$a=["children","begin","duration","attributeName","easing","isActive","steps","from","to","canBegin","onAnimationEnd","shouldReAnimate","onAnimationReStart"];function _objectWithoutProperties$a(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$a(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$a(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _toConsumableArray$8(j){return _arrayWithoutHoles$8(j)||_iterableToArray$8(j)||_unsupportedIterableToArray$f(j)||_nonIterableSpread$8()}function _nonIterableSpread$8(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$f(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$f(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$f(j,_e)}}function _iterableToArray$8(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$8(j){if(Array.isArray(j))return _arrayLikeToArray$f(j)}function _arrayLikeToArray$f(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function ownKeys$r(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$r(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$8(j){return _getPrototypeOf$8=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$8(j)}var Animate=function(j){_inherits$8(et,j);var _e=_createSuper$8(et);function et(tt,rt){var nt;_classCallCheck$b(this,et),nt=_e.call(this,tt,rt);var ot=nt.props,it=ot.isActive,st=ot.attributeName,lt=ot.from,ut=ot.to,ct=ot.steps,dt=ot.children,ft=ot.duration;if(nt.handleStyleChange=nt.handleStyleChange.bind(_assertThisInitialized$8(nt)),nt.changeStyle=nt.changeStyle.bind(_assertThisInitialized$8(nt)),!it||ft<=0)return nt.state={style:{}},typeof dt=="function"&&(nt.state={style:ut}),_possibleConstructorReturn$8(nt);if(ct&&ct.length)nt.state={style:ct[0].style};else if(lt){if(typeof dt=="function")return nt.state={style:lt},_possibleConstructorReturn$8(nt);nt.state={style:st?_defineProperty$t({},st,lt):lt}}else nt.state={style:{}};return nt}return _createClass$b(et,[{key:"componentDidMount",value:function(){var rt=this.props,nt=rt.isActive,ot=rt.canBegin;this.mounted=!0,!(!nt||!ot)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(rt){var nt=this.props,ot=nt.isActive,it=nt.canBegin,st=nt.attributeName,lt=nt.shouldReAnimate,ut=nt.to,ct=nt.from,dt=this.state.style;if(it){if(!ot){var ft={style:st?_defineProperty$t({},st,ut):ut};this.state&&dt&&(st&&dt[st]!==ut||!st&&dt!==ut)&&this.setState(ft);return}if(!(deepEqual(rt.to,ut)&&rt.canBegin&&rt.isActive)){var pt=!rt.canBegin||!rt.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var gt=pt||lt?ct:rt.to;if(this.state&&dt){var vt={style:st?_defineProperty$t({},st,gt):gt};(st&&[st]!==gt||!st&&dt!==gt)&&this.setState(vt)}this.runAnimation(_objectSpread$r(_objectSpread$r({},this.props),{},{from:gt,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var rt=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),rt&&rt()}},{key:"handleStyleChange",value:function(rt){this.changeStyle(rt)}},{key:"changeStyle",value:function(rt){this.mounted&&this.setState({style:rt})}},{key:"runJSAnimation",value:function(rt){var nt=this,ot=rt.from,it=rt.to,st=rt.duration,lt=rt.easing,ut=rt.begin,ct=rt.onAnimationEnd,dt=rt.onAnimationStart,ft=configUpdate(ot,it,configEasing(lt),st,this.changeStyle),pt=function(){nt.stopJSAnimation=ft()};this.manager.start([dt,ut,pt,st,ct])}},{key:"runStepAnimation",value:function(rt){var nt=this,ot=rt.steps,it=rt.begin,st=rt.onAnimationStart,lt=ot[0],ut=lt.style,ct=lt.duration,dt=ct===void 0?0:ct,ft=function(gt,vt,bt){if(bt===0)return gt;var _t=vt.duration,xt=vt.easing,yt=xt===void 0?"ease":xt,Et=vt.style,St=vt.properties,$t=vt.onAnimationEnd,At=bt>0?ot[bt-1]:vt,wt=St||Object.keys(Et);if(typeof yt=="function"||yt==="spring")return[].concat(_toConsumableArray$8(gt),[nt.runJSAnimation.bind(nt,{from:At.style,to:Et,duration:_t,easing:yt}),_t]);var Ct=getTransitionVal(wt,_t,yt),It=_objectSpread$r(_objectSpread$r(_objectSpread$r({},At.style),Et),{},{transition:Ct});return[].concat(_toConsumableArray$8(gt),[It,_t,$t]).filter(identity$3)};return this.manager.start([st].concat(_toConsumableArray$8(ot.reduce(ft,[ut,Math.max(dt,it)])),[rt.onAnimationEnd]))}},{key:"runAnimation",value:function(rt){this.manager||(this.manager=createAnimateManager());var nt=rt.begin,ot=rt.duration,it=rt.attributeName,st=rt.to,lt=rt.easing,ut=rt.onAnimationStart,ct=rt.onAnimationEnd,dt=rt.steps,ft=rt.children,pt=this.manager;if(this.unSubscribe=pt.subscribe(this.handleStyleChange),typeof lt=="function"||typeof ft=="function"||lt==="spring"){this.runJSAnimation(rt);return}if(dt.length>1){this.runStepAnimation(rt);return}var gt=it?_defineProperty$t({},it,st):st,vt=getTransitionVal(Object.keys(gt),ot,lt);pt.start([ut,nt,_objectSpread$r(_objectSpread$r({},gt),{},{transition:vt}),ot,ct])}},{key:"render",value:function(){var rt=this.props,nt=rt.children;rt.begin;var ot=rt.duration;rt.attributeName,rt.easing;var it=rt.isActive;rt.steps,rt.from,rt.to,rt.canBegin,rt.onAnimationEnd,rt.shouldReAnimate,rt.onAnimationReStart;var st=_objectWithoutProperties$a(rt,_excluded$a),lt=reactExports.Children.count(nt),ut=translateStyle(this.state.style);if(typeof nt=="function")return nt(ut);if(!it||lt===0||ot<=0)return nt;var ct=function(ft){var pt=ft.props,gt=pt.style,vt=gt===void 0?{}:gt,bt=pt.className,_t=reactExports.cloneElement(ft,_objectSpread$r(_objectSpread$r({},st),{},{style:_objectSpread$r(_objectSpread$r({},vt),ut),className:bt}));return _t};return lt===1?ct(reactExports.Children.only(nt)):React.createElement("div",null,reactExports.Children.map(nt,function(dt){return ct(dt)}))}}]),et}(reactExports.PureComponent);Animate.displayName="Animate";Animate.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function j(){},onAnimationStart:function j(){}};Animate.propTypes={from:PropTypes$1.oneOfType([PropTypes$1.object,PropTypes$1.string]),to:PropTypes$1.oneOfType([PropTypes$1.object,PropTypes$1.string]),attributeName:PropTypes$1.string,duration:PropTypes$1.number,begin:PropTypes$1.number,easing:PropTypes$1.oneOfType([PropTypes$1.string,PropTypes$1.func]),steps:PropTypes$1.arrayOf(PropTypes$1.shape({duration:PropTypes$1.number.isRequired,style:PropTypes$1.object.isRequired,easing:PropTypes$1.oneOfType([PropTypes$1.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),PropTypes$1.func]),properties:PropTypes$1.arrayOf("string"),onAnimationEnd:PropTypes$1.func})),children:PropTypes$1.oneOfType([PropTypes$1.node,PropTypes$1.func]),isActive:PropTypes$1.bool,canBegin:PropTypes$1.bool,onAnimationEnd:PropTypes$1.func,shouldReAnimate:PropTypes$1.bool,onAnimationStart:PropTypes$1.func,onAnimationReStart:PropTypes$1.func};Number.isFinite===void 0&&(Number.isFinite=function(j){return typeof j=="number"&&isFinite(j)});PropTypes$1.object,PropTypes$1.object,PropTypes$1.object,PropTypes$1.element;PropTypes$1.object,PropTypes$1.object,PropTypes$1.object,PropTypes$1.oneOfType([PropTypes$1.array,PropTypes$1.element]),PropTypes$1.any;function _typeof$t(j){"@babel/helpers - typeof";return _typeof$t=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$t(j)}function _defineProperty$s(j,_e,et){return _e=_toPropertyKey$t(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$t(j){var _e=_toPrimitive$t(j,"string");return _typeof$t(_e)==="symbol"?_e:String(_e)}function _toPrimitive$t(j,_e){if(_typeof$t(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$t(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var CSS_CLASS_PREFIX="recharts-tooltip-wrapper",TOOLTIP_HIDDEN={visibility:"hidden"};function getTooltipCSSClassName(j){var _e,et=j.coordinate,tt=j.translateX,rt=j.translateY;return clsx(CSS_CLASS_PREFIX,(_e={},_defineProperty$s(_e,"".concat(CSS_CLASS_PREFIX,"-right"),isNumber(tt)&&et&&isNumber(et.x)&&tt>=et.x),_defineProperty$s(_e,"".concat(CSS_CLASS_PREFIX,"-left"),isNumber(tt)&&et&&isNumber(et.x)&&tt=et.y),_defineProperty$s(_e,"".concat(CSS_CLASS_PREFIX,"-top"),isNumber(rt)&&et&&isNumber(et.y)&&rtgt?Math.max(ut,st[tt]):Math.max(ct,st[tt])}function getTransformStyle(j){var _e=j.translateX,et=j.translateY,tt=j.useTranslate3d;return translateStyle({transform:tt?"translate3d(".concat(_e,"px, ").concat(et,"px, 0)"):"translate(".concat(_e,"px, ").concat(et,"px)")})}function getTooltipTranslate(j){var _e=j.allowEscapeViewBox,et=j.coordinate,tt=j.offsetTopLeft,rt=j.position,nt=j.reverseDirection,ot=j.tooltipBox,it=j.useTranslate3d,st=j.viewBox,lt,ut,ct;return ot.height>0&&ot.width>0&&et?(ut=getTooltipTranslateXY({allowEscapeViewBox:_e,coordinate:et,key:"x",offsetTopLeft:tt,position:rt,reverseDirection:nt,tooltipDimension:ot.width,viewBox:st,viewBoxDimension:st.width}),ct=getTooltipTranslateXY({allowEscapeViewBox:_e,coordinate:et,key:"y",offsetTopLeft:tt,position:rt,reverseDirection:nt,tooltipDimension:ot.height,viewBox:st,viewBoxDimension:st.height}),lt=getTransformStyle({translateX:ut,translateY:ct,useTranslate3d:it})):lt=TOOLTIP_HIDDEN,{cssProperties:lt,cssClasses:getTooltipCSSClassName({translateX:ut,translateY:ct,coordinate:et})}}function _typeof$s(j){"@babel/helpers - typeof";return _typeof$s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$s(j)}function ownKeys$q(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$q(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$7(j){return _getPrototypeOf$7=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$7(j)}function _defineProperty$r(j,_e,et){return _e=_toPropertyKey$s(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$s(j){var _e=_toPrimitive$s(j,"string");return _typeof$s(_e)==="symbol"?_e:String(_e)}function _toPrimitive$s(j,_e){if(_typeof$s(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$s(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var EPSILON=1,TooltipBoundingBox=function(j){_inherits$7(et,j);var _e=_createSuper$7(et);function et(){var tt;_classCallCheck$a(this,et);for(var rt=arguments.length,nt=new Array(rt),ot=0;otEPSILON||Math.abs(rt.height-this.lastBoundingBox.height)>EPSILON)&&(this.lastBoundingBox.width=rt.width,this.lastBoundingBox.height=rt.height)}else(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1)}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var rt,nt;this.props.active&&this.updateBBox(),this.state.dismissed&&(((rt=this.props.coordinate)===null||rt===void 0?void 0:rt.x)!==this.state.dismissedAtCoordinate.x||((nt=this.props.coordinate)===null||nt===void 0?void 0:nt.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var rt=this,nt=this.props,ot=nt.active,it=nt.allowEscapeViewBox,st=nt.animationDuration,lt=nt.animationEasing,ut=nt.children,ct=nt.coordinate,dt=nt.hasPayload,ft=nt.isAnimationActive,pt=nt.offset,gt=nt.position,vt=nt.reverseDirection,bt=nt.useTranslate3d,_t=nt.viewBox,xt=nt.wrapperStyle,yt=getTooltipTranslate({allowEscapeViewBox:it,coordinate:ct,offsetTopLeft:pt,position:gt,reverseDirection:vt,tooltipBox:{height:this.lastBoundingBox.height,width:this.lastBoundingBox.width},useTranslate3d:bt,viewBox:_t}),Et=yt.cssClasses,St=yt.cssProperties,$t=_objectSpread$q(_objectSpread$q(_objectSpread$q({},ft&&ot&&translateStyle({transition:"transform ".concat(st,"ms ").concat(lt)})),St),{},{pointerEvents:"none",visibility:!this.state.dismissed&&ot&&dt?"visible":"hidden",position:"absolute",top:0,left:0},xt);return React.createElement("div",{tabIndex:-1,role:"dialog",className:Et,style:$t,ref:function(wt){rt.wrapperNode=wt}},ut)}}]),et}(reactExports.PureComponent),parseIsSsrByDefault=function j(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Global={isSsr:parseIsSsrByDefault(),get:function j(_e){return Global[_e]},set:function j(_e,et){if(typeof _e=="string")Global[_e]=et;else{var tt=Object.keys(_e);tt&&tt.length&&tt.forEach(function(rt){Global[rt]=_e[rt]})}}};function _typeof$r(j){"@babel/helpers - typeof";return _typeof$r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$r(j)}function ownKeys$p(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$p(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$6(j){return _getPrototypeOf$6=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$6(j)}function _defineProperty$q(j,_e,et){return _e=_toPropertyKey$r(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$r(j){var _e=_toPrimitive$r(j,"string");return _typeof$r(_e)==="symbol"?_e:String(_e)}function _toPrimitive$r(j,_e){if(_typeof$r(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$r(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}function defaultUniqBy(j){return j.dataKey}function renderContent(j,_e){return React.isValidElement(j)?React.cloneElement(j,_e):typeof j=="function"?React.createElement(j,_e):React.createElement(DefaultTooltipContent,_e)}var Tooltip=function(j){_inherits$6(et,j);var _e=_createSuper$6(et);function et(){return _classCallCheck$9(this,et),_e.apply(this,arguments)}return _createClass$9(et,[{key:"render",value:function(){var rt=this.props,nt=rt.active,ot=rt.allowEscapeViewBox,it=rt.animationDuration,st=rt.animationEasing,lt=rt.content,ut=rt.coordinate,ct=rt.filterNull,dt=rt.isAnimationActive,ft=rt.offset,pt=rt.payload,gt=rt.payloadUniqBy,vt=rt.position,bt=rt.reverseDirection,_t=rt.useTranslate3d,xt=rt.viewBox,yt=rt.wrapperStyle,Et=pt??[];ct&&Et.length&&(Et=getUniqPayload(pt.filter(function($t){return $t.value!=null}),gt,defaultUniqBy));var St=Et.length>0;return React.createElement(TooltipBoundingBox,{allowEscapeViewBox:ot,animationDuration:it,animationEasing:st,isAnimationActive:dt,active:nt,coordinate:ut,hasPayload:St,offset:ft,position:vt,reverseDirection:bt,useTranslate3d:_t,viewBox:xt,wrapperStyle:yt},renderContent(lt,_objectSpread$p(_objectSpread$p({},this.props),{},{payload:Et})))}}]),et}(reactExports.PureComponent);_defineProperty$q(Tooltip,"displayName","Tooltip");_defineProperty$q(Tooltip,"defaultProps",{allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Global.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var isObject$1=isObject_1,now=now_1,toNumber=toNumber_1,FUNC_ERROR_TEXT$1="Expected a function",nativeMax=Math.max,nativeMin=Math.min;function debounce$1(j,_e,et){var tt,rt,nt,ot,it,st,lt=0,ut=!1,ct=!1,dt=!0;if(typeof j!="function")throw new TypeError(FUNC_ERROR_TEXT$1);_e=toNumber(_e)||0,isObject$1(et)&&(ut=!!et.leading,ct="maxWait"in et,nt=ct?nativeMax(toNumber(et.maxWait)||0,_e):nt,dt="trailing"in et?!!et.trailing:dt);function ft(St){var $t=tt,At=rt;return tt=rt=void 0,lt=St,ot=j.apply(At,$t),ot}function pt(St){return lt=St,it=setTimeout(bt,_e),ut?ft(St):ot}function gt(St){var $t=St-st,At=St-lt,wt=_e-$t;return ct?nativeMin(wt,nt-At):wt}function vt(St){var $t=St-st,At=St-lt;return st===void 0||$t>=_e||$t<0||ct&&At>=nt}function bt(){var St=now();if(vt(St))return _t(St);it=setTimeout(bt,gt(St))}function _t(St){return it=void 0,dt&&tt?ft(St):(tt=rt=void 0,ot)}function xt(){it!==void 0&&clearTimeout(it),lt=0,tt=st=rt=it=void 0}function yt(){return it===void 0?ot:_t(now())}function Et(){var St=now(),$t=vt(St);if(tt=arguments,rt=this,st=St,$t){if(it===void 0)return pt(st);if(ct)return clearTimeout(it),it=setTimeout(bt,_e),ft(st)}return it===void 0&&(it=setTimeout(bt,_e)),ot}return Et.cancel=xt,Et.flush=yt,Et}var debounce_1=debounce$1,debounce=debounce_1,isObject=isObject_1,FUNC_ERROR_TEXT="Expected a function";function throttle(j,_e,et){var tt=!0,rt=!0;if(typeof j!="function")throw new TypeError(FUNC_ERROR_TEXT);return isObject(et)&&(tt="leading"in et?!!et.leading:tt,rt="trailing"in et?!!et.trailing:rt),debounce(j,_e,{leading:tt,maxWait:_e,trailing:rt})}var throttle_1=throttle;const throttle$1=getDefaultExportFromCjs(throttle_1);var Cell=function j(_e){return null};Cell.displayName="Cell";function _typeof$q(j){"@babel/helpers - typeof";return _typeof$q=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$q(j)}function ownKeys$o(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$o(j){for(var _e=1;_e1&&arguments[1]!==void 0?arguments[1]:{};if(_e==null||Global.isSsr)return{width:0,height:0};var tt=removeInvalidKeys(et),rt=JSON.stringify({text:_e,copyStyle:tt});if(stringCache.widthCache[rt])return stringCache.widthCache[rt];try{var nt=document.getElementById(MEASUREMENT_SPAN_ID);nt||(nt=document.createElement("span"),nt.setAttribute("id",MEASUREMENT_SPAN_ID),nt.setAttribute("aria-hidden","true"),document.body.appendChild(nt));var ot=_objectSpread$o(_objectSpread$o({},SPAN_STYLE),tt);Object.assign(nt.style,ot),nt.textContent="".concat(_e);var it=nt.getBoundingClientRect(),st={width:it.width,height:it.height};return stringCache.widthCache[rt]=st,++stringCache.cacheCount>MAX_CACHE_NUM&&(stringCache.cacheCount=0,stringCache.widthCache={}),st}catch{return{width:0,height:0}}},getOffset=function j(_e){return{top:_e.top+window.scrollY-document.documentElement.clientTop,left:_e.left+window.scrollX-document.documentElement.clientLeft}};function _typeof$p(j){"@babel/helpers - typeof";return _typeof$p=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$p(j)}function _slicedToArray$8(j,_e){return _arrayWithHoles$8(j)||_iterableToArrayLimit$8(j,_e)||_unsupportedIterableToArray$e(j,_e)||_nonIterableRest$8()}function _nonIterableRest$8(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$e(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$e(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$e(j,_e)}}function _arrayLikeToArray$e(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$8(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$8(j){if(Array.isArray(j))return j}function _classCallCheck$8(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$8(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey$p(tt.key),tt)}}function _createClass$8(j,_e,et){return _e&&_defineProperties$8(j.prototype,_e),et&&_defineProperties$8(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _toPropertyKey$p(j){var _e=_toPrimitive$p(j,"string");return _typeof$p(_e)==="symbol"?_e:String(_e)}function _toPrimitive$p(j,_e){if(_typeof$p(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$p(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var MULTIPLY_OR_DIVIDE_REGEX=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,ADD_OR_SUBTRACT_REGEX=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,CSS_LENGTH_UNIT_REGEX=/^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/,NUM_SPLIT_REGEX=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,CONVERSION_RATES={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},FIXED_CSS_LENGTH_UNITS=Object.keys(CONVERSION_RATES),STR_NAN="NaN";function convertToPx(j,_e){return j*CONVERSION_RATES[_e]}var DecimalCSS=function(){function j(_e,et){_classCallCheck$8(this,j),this.num=_e,this.unit=et,this.num=_e,this.unit=et,Number.isNaN(_e)&&(this.unit=""),et!==""&&!CSS_LENGTH_UNIT_REGEX.test(et)&&(this.num=NaN,this.unit=""),FIXED_CSS_LENGTH_UNITS.includes(et)&&(this.num=convertToPx(_e,et),this.unit="px")}return _createClass$8(j,[{key:"add",value:function(et){return this.unit!==et.unit?new j(NaN,""):new j(this.num+et.num,this.unit)}},{key:"subtract",value:function(et){return this.unit!==et.unit?new j(NaN,""):new j(this.num-et.num,this.unit)}},{key:"multiply",value:function(et){return this.unit!==""&&et.unit!==""&&this.unit!==et.unit?new j(NaN,""):new j(this.num*et.num,this.unit||et.unit)}},{key:"divide",value:function(et){return this.unit!==""&&et.unit!==""&&this.unit!==et.unit?new j(NaN,""):new j(this.num/et.num,this.unit||et.unit)}},{key:"toString",value:function(){return"".concat(this.num).concat(this.unit)}},{key:"isNaN",value:function(){return Number.isNaN(this.num)}}],[{key:"parse",value:function(et){var tt,rt=(tt=NUM_SPLIT_REGEX.exec(et))!==null&&tt!==void 0?tt:[],nt=_slicedToArray$8(rt,3),ot=nt[1],it=nt[2];return new j(parseFloat(ot),it??"")}}]),j}();function calculateArithmetic(j){if(j.includes(STR_NAN))return STR_NAN;for(var _e=j;_e.includes("*")||_e.includes("/");){var et,tt=(et=MULTIPLY_OR_DIVIDE_REGEX.exec(_e))!==null&&et!==void 0?et:[],rt=_slicedToArray$8(tt,4),nt=rt[1],ot=rt[2],it=rt[3],st=DecimalCSS.parse(nt??""),lt=DecimalCSS.parse(it??""),ut=ot==="*"?st.multiply(lt):st.divide(lt);if(ut.isNaN())return STR_NAN;_e=_e.replace(MULTIPLY_OR_DIVIDE_REGEX,ut.toString())}for(;_e.includes("+")||/.-\d+(?:\.\d+)?/.test(_e);){var ct,dt=(ct=ADD_OR_SUBTRACT_REGEX.exec(_e))!==null&&ct!==void 0?ct:[],ft=_slicedToArray$8(dt,4),pt=ft[1],gt=ft[2],vt=ft[3],bt=DecimalCSS.parse(pt??""),_t=DecimalCSS.parse(vt??""),xt=gt==="+"?bt.add(_t):bt.subtract(_t);if(xt.isNaN())return STR_NAN;_e=_e.replace(ADD_OR_SUBTRACT_REGEX,xt.toString())}return _e}var PARENTHESES_REGEX=/\(([^()]*)\)/;function calculateParentheses(j){for(var _e=j;_e.includes("(");){var et=PARENTHESES_REGEX.exec(_e),tt=_slicedToArray$8(et,2),rt=tt[1];_e=_e.replace(PARENTHESES_REGEX,calculateArithmetic(rt))}return _e}function evaluateExpression(j){var _e=j.replace(/\s+/g,"");return _e=calculateParentheses(_e),_e=calculateArithmetic(_e),_e}function safeEvaluateExpression(j){try{return evaluateExpression(j)}catch{return STR_NAN}}function reduceCSSCalc(j){var _e=safeEvaluateExpression(j.slice(5,-1));return _e===STR_NAN?"":_e}var _excluded$9=["x","y","lineHeight","capHeight","scaleToFit","textAnchor","verticalAnchor","fill"],_excluded2$4=["dx","dy","angle","className","breakAll"];function _extends$j(){return _extends$j=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$9(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _slicedToArray$7(j,_e){return _arrayWithHoles$7(j)||_iterableToArrayLimit$7(j,_e)||_unsupportedIterableToArray$d(j,_e)||_nonIterableRest$7()}function _nonIterableRest$7(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$d(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$d(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$d(j,_e)}}function _arrayLikeToArray$d(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$7(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$7(j){if(Array.isArray(j))return j}var BREAKING_SPACES=/[ \f\n\r\t\v\u2028\u2029]+/,calculateWordWidths=function j(_e){var et=_e.children,tt=_e.breakAll,rt=_e.style;try{var nt=[];isNil$1(et)||(tt?nt=et.toString().split(""):nt=et.toString().split(BREAKING_SPACES));var ot=nt.map(function(st){return{word:st,width:getStringSize(st,rt).width}}),it=tt?0:getStringSize(" ",rt).width;return{wordsWithComputedWidth:ot,spaceWidth:it}}catch{return null}},calculateWordsByLines=function j(_e,et,tt,rt,nt){var ot=_e.maxLines,it=_e.children,st=_e.style,lt=_e.breakAll,ut=isNumber(ot),ct=it,dt=function(){var Mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return Mt.reduce(function(Rt,Lt){var jt=Lt.word,Gt=Lt.width,Vt=Rt[Rt.length-1];if(Vt&&(rt==null||nt||Vt.width+Gt+ttLt.width?Rt:Lt})};if(!ut)return ft;for(var gt="…",vt=function(Mt){var Rt=ct.slice(0,Mt),Lt=calculateWordWidths({breakAll:lt,style:st,children:Rt+gt}).wordsWithComputedWidth,jt=dt(Lt),Gt=jt.length>ot||pt(jt).width>Number(rt);return[Gt,jt]},bt=0,_t=ct.length-1,xt=0,yt;bt<=_t&&xt<=ct.length-1;){var Et=Math.floor((bt+_t)/2),St=Et-1,$t=vt(St),At=_slicedToArray$7($t,2),wt=At[0],Ct=At[1],It=vt(Et),Ot=_slicedToArray$7(It,1),Nt=Ot[0];if(!wt&&!Nt&&(bt=Et+1),wt&&Nt&&(_t=Et-1),!wt&&Nt){yt=Ct;break}xt++}return yt||ft},getWordsWithoutCalculate=function j(_e){var et=isNil$1(_e)?[]:_e.toString().split(BREAKING_SPACES);return[{words:et}]},getWordsByLines=function j(_e){var et=_e.width,tt=_e.scaleToFit,rt=_e.children,nt=_e.style,ot=_e.breakAll,it=_e.maxLines;if((et||tt)&&!Global.isSsr){var st,lt,ut=calculateWordWidths({breakAll:ot,children:rt,style:nt});if(ut){var ct=ut.wordsWithComputedWidth,dt=ut.spaceWidth;st=ct,lt=dt}else return getWordsWithoutCalculate(rt);return calculateWordsByLines({breakAll:ot,children:rt,maxLines:it,style:nt},st,lt,et,tt)}return getWordsWithoutCalculate(rt)},DEFAULT_FILL="#808080",Text$1=function j(_e){var et=_e.x,tt=et===void 0?0:et,rt=_e.y,nt=rt===void 0?0:rt,ot=_e.lineHeight,it=ot===void 0?"1em":ot,st=_e.capHeight,lt=st===void 0?"0.71em":st,ut=_e.scaleToFit,ct=ut===void 0?!1:ut,dt=_e.textAnchor,ft=dt===void 0?"start":dt,pt=_e.verticalAnchor,gt=pt===void 0?"end":pt,vt=_e.fill,bt=vt===void 0?DEFAULT_FILL:vt,_t=_objectWithoutProperties$9(_e,_excluded$9),xt=reactExports.useMemo(function(){return getWordsByLines({breakAll:_t.breakAll,children:_t.children,maxLines:_t.maxLines,scaleToFit:ct,style:_t.style,width:_t.width})},[_t.breakAll,_t.children,_t.maxLines,ct,_t.style,_t.width]),yt=_t.dx,Et=_t.dy,St=_t.angle,$t=_t.className,At=_t.breakAll,wt=_objectWithoutProperties$9(_t,_excluded2$4);if(!isNumOrStr(tt)||!isNumOrStr(nt))return null;var Ct=tt+(isNumber(yt)?yt:0),It=nt+(isNumber(Et)?Et:0),Ot;switch(gt){case"start":Ot=reduceCSSCalc("calc(".concat(lt,")"));break;case"middle":Ot=reduceCSSCalc("calc(".concat((xt.length-1)/2," * -").concat(it," + (").concat(lt," / 2))"));break;default:Ot=reduceCSSCalc("calc(".concat(xt.length-1," * -").concat(it,")"));break}var Nt=[];if(ct){var Pt=xt[0].width,Mt=_t.width;Nt.push("scale(".concat((isNumber(Mt)?Mt/Pt:1)/Pt,")"))}return St&&Nt.push("rotate(".concat(St,", ").concat(Ct,", ").concat(It,")")),Nt.length&&(wt.transform=Nt.join(" ")),React.createElement("text",_extends$j({},filterProps(wt,!0),{x:Ct,y:It,className:clsx("recharts-text",$t),textAnchor:ft,fill:bt.includes("url")?DEFAULT_FILL:bt}),xt.map(function(Rt,Lt){var jt=Rt.words.join(At?"":" ");return React.createElement("tspan",{x:Ct,dy:Lt===0?Ot:it,key:jt},jt)}))};function ascending(j,_e){return j==null||_e==null?NaN:j<_e?-1:j>_e?1:j>=_e?0:NaN}function descending(j,_e){return j==null||_e==null?NaN:_ej?1:_e>=j?0:NaN}function bisector(j){let _e,et,tt;j.length!==2?(_e=ascending,et=(it,st)=>ascending(j(it),st),tt=(it,st)=>j(it)-st):(_e=j===ascending||j===descending?j:zero$1,et=j,tt=j);function rt(it,st,lt=0,ut=it.length){if(lt>>1;et(it[ct],st)<0?lt=ct+1:ut=ct}while(lt>>1;et(it[ct],st)<=0?lt=ct+1:ut=ct}while(ltlt&&tt(it[ct-1],st)>-tt(it[ct],st)?ct-1:ct}return{left:rt,center:ot,right:nt}}function zero$1(){return 0}function number$2(j){return j===null?NaN:+j}function*numbers(j,_e){if(_e===void 0)for(let et of j)et!=null&&(et=+et)>=et&&(yield et);else{let et=-1;for(let tt of j)(tt=_e(tt,++et,j))!=null&&(tt=+tt)>=tt&&(yield tt)}}const ascendingBisect=bisector(ascending),bisectRight=ascendingBisect.right;bisector(number$2).center;const bisect=bisectRight;class InternMap extends Map{constructor(_e,et=keyof){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:et}}),_e!=null)for(const[tt,rt]of _e)this.set(tt,rt)}get(_e){return super.get(intern_get(this,_e))}has(_e){return super.has(intern_get(this,_e))}set(_e,et){return super.set(intern_set(this,_e),et)}delete(_e){return super.delete(intern_delete(this,_e))}}function intern_get({_intern:j,_key:_e},et){const tt=_e(et);return j.has(tt)?j.get(tt):et}function intern_set({_intern:j,_key:_e},et){const tt=_e(et);return j.has(tt)?j.get(tt):(j.set(tt,et),et)}function intern_delete({_intern:j,_key:_e},et){const tt=_e(et);return j.has(tt)&&(et=j.get(tt),j.delete(tt)),et}function keyof(j){return j!==null&&typeof j=="object"?j.valueOf():j}function compareDefined(j=ascending){if(j===ascending)return ascendingDefined;if(typeof j!="function")throw new TypeError("compare is not a function");return(_e,et)=>{const tt=j(_e,et);return tt||tt===0?tt:(j(et,et)===0)-(j(_e,_e)===0)}}function ascendingDefined(j,_e){return(j==null||!(j>=j))-(_e==null||!(_e>=_e))||(j<_e?-1:j>_e?1:0)}const e10=Math.sqrt(50),e5=Math.sqrt(10),e2=Math.sqrt(2);function tickSpec(j,_e,et){const tt=(_e-j)/Math.max(0,et),rt=Math.floor(Math.log10(tt)),nt=tt/Math.pow(10,rt),ot=nt>=e10?10:nt>=e5?5:nt>=e2?2:1;let it,st,lt;return rt<0?(lt=Math.pow(10,-rt)/ot,it=Math.round(j*lt),st=Math.round(_e*lt),it/lt_e&&--st,lt=-lt):(lt=Math.pow(10,rt)*ot,it=Math.round(j/lt),st=Math.round(_e/lt),it*lt_e&&--st),st0))return[];if(j===_e)return[j];const tt=_e=rt))return[];const it=nt-rt+1,st=new Array(it);if(tt)if(ot<0)for(let lt=0;lt=tt)&&(et=tt);else{let tt=-1;for(let rt of j)(rt=_e(rt,++tt,j))!=null&&(et=rt)&&(et=rt)}return et}function min(j,_e){let et;if(_e===void 0)for(const tt of j)tt!=null&&(et>tt||et===void 0&&tt>=tt)&&(et=tt);else{let tt=-1;for(let rt of j)(rt=_e(rt,++tt,j))!=null&&(et>rt||et===void 0&&rt>=rt)&&(et=rt)}return et}function quickselect(j,_e,et=0,tt=1/0,rt){if(_e=Math.floor(_e),et=Math.floor(Math.max(0,et)),tt=Math.floor(Math.min(j.length-1,tt)),!(et<=_e&&_e<=tt))return j;for(rt=rt===void 0?ascendingDefined:compareDefined(rt);tt>et;){if(tt-et>600){const st=tt-et+1,lt=_e-et+1,ut=Math.log(st),ct=.5*Math.exp(2*ut/3),dt=.5*Math.sqrt(ut*ct*(st-ct)/st)*(lt-st/2<0?-1:1),ft=Math.max(et,Math.floor(_e-lt*ct/st+dt)),pt=Math.min(tt,Math.floor(_e+(st-lt)*ct/st+dt));quickselect(j,_e,ft,pt,rt)}const nt=j[_e];let ot=et,it=tt;for(swap(j,et,_e),rt(j[tt],nt)>0&&swap(j,et,tt);ot0;)--it}rt(j[et],nt)===0?swap(j,et,it):(++it,swap(j,it,tt)),it<=_e&&(et=it+1),_e<=it&&(tt=it-1)}return j}function swap(j,_e,et){const tt=j[_e];j[_e]=j[et],j[et]=tt}function quantile$1(j,_e,et){if(j=Float64Array.from(numbers(j,et)),!(!(tt=j.length)||isNaN(_e=+_e))){if(_e<=0||tt<2)return min(j);if(_e>=1)return max(j);var tt,rt=(tt-1)*_e,nt=Math.floor(rt),ot=max(quickselect(j,nt).subarray(0,nt+1)),it=min(j.subarray(nt+1));return ot+(it-ot)*(rt-nt)}}function quantileSorted(j,_e,et=number$2){if(!(!(tt=j.length)||isNaN(_e=+_e))){if(_e<=0||tt<2)return+et(j[0],0,j);if(_e>=1)return+et(j[tt-1],tt-1,j);var tt,rt=(tt-1)*_e,nt=Math.floor(rt),ot=+et(j[nt],nt,j),it=+et(j[nt+1],nt+1,j);return ot+(it-ot)*(rt-nt)}}function range$1(j,_e,et){j=+j,_e=+_e,et=(rt=arguments.length)<2?(_e=j,j=0,1):rt<3?1:+et;for(var tt=-1,rt=Math.max(0,Math.ceil((_e-j)/et))|0,nt=new Array(rt);++tt>8&15|_e>>4&240,_e>>4&15|_e&240,(_e&15)<<4|_e&15,1):et===8?rgba(_e>>24&255,_e>>16&255,_e>>8&255,(_e&255)/255):et===4?rgba(_e>>12&15|_e>>8&240,_e>>8&15|_e>>4&240,_e>>4&15|_e&240,((_e&15)<<4|_e&15)/255):null):(_e=reRgbInteger.exec(j))?new Rgb(_e[1],_e[2],_e[3],1):(_e=reRgbPercent.exec(j))?new Rgb(_e[1]*255/100,_e[2]*255/100,_e[3]*255/100,1):(_e=reRgbaInteger.exec(j))?rgba(_e[1],_e[2],_e[3],_e[4]):(_e=reRgbaPercent.exec(j))?rgba(_e[1]*255/100,_e[2]*255/100,_e[3]*255/100,_e[4]):(_e=reHslPercent.exec(j))?hsla(_e[1],_e[2]/100,_e[3]/100,1):(_e=reHslaPercent.exec(j))?hsla(_e[1],_e[2]/100,_e[3]/100,_e[4]):named.hasOwnProperty(j)?rgbn(named[j]):j==="transparent"?new Rgb(NaN,NaN,NaN,0):null}function rgbn(j){return new Rgb(j>>16&255,j>>8&255,j&255,1)}function rgba(j,_e,et,tt){return tt<=0&&(j=_e=et=NaN),new Rgb(j,_e,et,tt)}function rgbConvert(j){return j instanceof Color||(j=color(j)),j?(j=j.rgb(),new Rgb(j.r,j.g,j.b,j.opacity)):new Rgb}function rgb$1(j,_e,et,tt){return arguments.length===1?rgbConvert(j):new Rgb(j,_e,et,tt??1)}function Rgb(j,_e,et,tt){this.r=+j,this.g=+_e,this.b=+et,this.opacity=+tt}define(Rgb,rgb$1,extend(Color,{brighter(j){return j=j==null?brighter:Math.pow(brighter,j),new Rgb(this.r*j,this.g*j,this.b*j,this.opacity)},darker(j){return j=j==null?darker:Math.pow(darker,j),new Rgb(this.r*j,this.g*j,this.b*j,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb}));function rgb_formatHex(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}`}function rgb_formatHex8(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb(){const j=clampa(this.opacity);return`${j===1?"rgb(":"rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${j===1?")":`, ${j})`}`}function clampa(j){return isNaN(j)?1:Math.max(0,Math.min(1,j))}function clampi(j){return Math.max(0,Math.min(255,Math.round(j)||0))}function hex(j){return j=clampi(j),(j<16?"0":"")+j.toString(16)}function hsla(j,_e,et,tt){return tt<=0?j=_e=et=NaN:et<=0||et>=1?j=_e=NaN:_e<=0&&(j=NaN),new Hsl(j,_e,et,tt)}function hslConvert(j){if(j instanceof Hsl)return new Hsl(j.h,j.s,j.l,j.opacity);if(j instanceof Color||(j=color(j)),!j)return new Hsl;if(j instanceof Hsl)return j;j=j.rgb();var _e=j.r/255,et=j.g/255,tt=j.b/255,rt=Math.min(_e,et,tt),nt=Math.max(_e,et,tt),ot=NaN,it=nt-rt,st=(nt+rt)/2;return it?(_e===nt?ot=(et-tt)/it+(et0&&st<1?0:ot,new Hsl(ot,it,st,j.opacity)}function hsl(j,_e,et,tt){return arguments.length===1?hslConvert(j):new Hsl(j,_e,et,tt??1)}function Hsl(j,_e,et,tt){this.h=+j,this.s=+_e,this.l=+et,this.opacity=+tt}define(Hsl,hsl,extend(Color,{brighter(j){return j=j==null?brighter:Math.pow(brighter,j),new Hsl(this.h,this.s,this.l*j,this.opacity)},darker(j){return j=j==null?darker:Math.pow(darker,j),new Hsl(this.h,this.s,this.l*j,this.opacity)},rgb(){var j=this.h%360+(this.h<0)*360,_e=isNaN(j)||isNaN(this.s)?0:this.s,et=this.l,tt=et+(et<.5?et:1-et)*_e,rt=2*et-tt;return new Rgb(hsl2rgb(j>=240?j-240:j+120,rt,tt),hsl2rgb(j,rt,tt),hsl2rgb(j<120?j+240:j-120,rt,tt),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const j=clampa(this.opacity);return`${j===1?"hsl(":"hsla("}${clamph(this.h)}, ${clampt(this.s)*100}%, ${clampt(this.l)*100}%${j===1?")":`, ${j})`}`}}));function clamph(j){return j=(j||0)%360,j<0?j+360:j}function clampt(j){return Math.max(0,Math.min(1,j||0))}function hsl2rgb(j,_e,et){return(j<60?_e+(et-_e)*j/60:j<180?et:j<240?_e+(et-_e)*(240-j)/60:_e)*255}const constant=j=>()=>j;function linear$1(j,_e){return function(et){return j+et*_e}}function exponential(j,_e,et){return j=Math.pow(j,et),_e=Math.pow(_e,et)-j,et=1/et,function(tt){return Math.pow(j+tt*_e,et)}}function gamma(j){return(j=+j)==1?nogamma:function(_e,et){return et-_e?exponential(_e,et,j):constant(isNaN(_e)?et:_e)}}function nogamma(j,_e){var et=_e-j;return et?linear$1(j,et):constant(isNaN(j)?_e:j)}const rgb=function j(_e){var et=gamma(_e);function tt(rt,nt){var ot=et((rt=rgb$1(rt)).r,(nt=rgb$1(nt)).r),it=et(rt.g,nt.g),st=et(rt.b,nt.b),lt=nogamma(rt.opacity,nt.opacity);return function(ut){return rt.r=ot(ut),rt.g=it(ut),rt.b=st(ut),rt.opacity=lt(ut),rt+""}}return tt.gamma=j,tt}(1);function numberArray(j,_e){_e||(_e=[]);var et=j?Math.min(_e.length,j.length):0,tt=_e.slice(),rt;return function(nt){for(rt=0;rtet&&(nt=_e.slice(et,nt),it[ot]?it[ot]+=nt:it[++ot]=nt),(tt=tt[0])===(rt=rt[0])?it[ot]?it[ot]+=rt:it[++ot]=rt:(it[++ot]=null,st.push({i:ot,x:interpolateNumber$1(tt,rt)})),et=reB.lastIndex;return et<_e.length&&(nt=_e.slice(et),it[ot]?it[ot]+=nt:it[++ot]=nt),it.length<2?st[0]?one(st[0].x):zero(_e):(_e=st.length,function(lt){for(var ut=0,ct;ut<_e;++ut)it[(ct=st[ut]).i]=ct.x(lt);return it.join("")})}function interpolate(j,_e){var et=typeof _e,tt;return _e==null||et==="boolean"?constant(_e):(et==="number"?interpolateNumber$1:et==="string"?(tt=color(_e))?(_e=tt,rgb):string:_e instanceof color?rgb:_e instanceof Date?date$1:isNumberArray(_e)?numberArray:Array.isArray(_e)?genericArray:typeof _e.valueOf!="function"&&typeof _e.toString!="function"||isNaN(_e)?object:interpolateNumber$1)(j,_e)}function interpolateRound(j,_e){return j=+j,_e=+_e,function(et){return Math.round(j*(1-et)+_e*et)}}function piecewise(j,_e){_e===void 0&&(_e=j,j=interpolate);for(var et=0,tt=_e.length-1,rt=_e[0],nt=new Array(tt<0?0:tt);et_e&&(et=j,j=_e,_e=et),function(tt){return Math.max(j,Math.min(_e,tt))}}function bimap(j,_e,et){var tt=j[0],rt=j[1],nt=_e[0],ot=_e[1];return rt2?polymap:bimap,st=lt=null,ct}function ct(dt){return dt==null||isNaN(dt=+dt)?nt:(st||(st=it(j.map(tt),_e,et)))(tt(ot(dt)))}return ct.invert=function(dt){return ot(rt((lt||(lt=it(_e,j.map(tt),interpolateNumber$1)))(dt)))},ct.domain=function(dt){return arguments.length?(j=Array.from(dt,number$1),ut()):j.slice()},ct.range=function(dt){return arguments.length?(_e=Array.from(dt),ut()):_e.slice()},ct.rangeRound=function(dt){return _e=Array.from(dt),et=interpolateRound,ut()},ct.clamp=function(dt){return arguments.length?(ot=dt?!0:identity$2,ut()):ot!==identity$2},ct.interpolate=function(dt){return arguments.length?(et=dt,ut()):et},ct.unknown=function(dt){return arguments.length?(nt=dt,ct):nt},function(dt,ft){return tt=dt,rt=ft,ut()}}function continuous(){return transformer$2()(identity$2,identity$2)}function tickFormat(j,_e,et,tt){var rt=tickStep(j,_e,et),nt;switch(tt=formatSpecifier(tt??",f"),tt.type){case"s":{var ot=Math.max(Math.abs(j),Math.abs(_e));return tt.precision==null&&!isNaN(nt=precisionPrefix(rt,ot))&&(tt.precision=nt),formatPrefix(tt,ot)}case"":case"e":case"g":case"p":case"r":{tt.precision==null&&!isNaN(nt=precisionRound(rt,Math.max(Math.abs(j),Math.abs(_e))))&&(tt.precision=nt-(tt.type==="e"));break}case"f":case"%":{tt.precision==null&&!isNaN(nt=precisionFixed(rt))&&(tt.precision=nt-(tt.type==="%")*2);break}}return format$1(tt)}function linearish(j){var _e=j.domain;return j.ticks=function(et){var tt=_e();return ticks(tt[0],tt[tt.length-1],et??10)},j.tickFormat=function(et,tt){var rt=_e();return tickFormat(rt[0],rt[rt.length-1],et??10,tt)},j.nice=function(et){et==null&&(et=10);var tt=_e(),rt=0,nt=tt.length-1,ot=tt[rt],it=tt[nt],st,lt,ut=10;for(it0;){if(lt=tickIncrement(ot,it,et),lt===st)return tt[rt]=ot,tt[nt]=it,_e(tt);if(lt>0)ot=Math.floor(ot/lt)*lt,it=Math.ceil(it/lt)*lt;else if(lt<0)ot=Math.ceil(ot*lt)/lt,it=Math.floor(it*lt)/lt;else break;st=lt}return j},j}function linear(){var j=continuous();return j.copy=function(){return copy$1(j,linear())},initRange.apply(j,arguments),linearish(j)}function identity$1(j){var _e;function et(tt){return tt==null||isNaN(tt=+tt)?_e:tt}return et.invert=et,et.domain=et.range=function(tt){return arguments.length?(j=Array.from(tt,number$1),et):j.slice()},et.unknown=function(tt){return arguments.length?(_e=tt,et):_e},et.copy=function(){return identity$1(j).unknown(_e)},j=arguments.length?Array.from(j,number$1):[0,1],linearish(et)}function nice(j,_e){j=j.slice();var et=0,tt=j.length-1,rt=j[et],nt=j[tt],ot;return ntMath.pow(j,_e)}function logp(j){return j===Math.E?Math.log:j===10&&Math.log10||j===2&&Math.log2||(j=Math.log(j),_e=>Math.log(_e)/j)}function reflect(j){return(_e,et)=>-j(-_e,et)}function loggish(j){const _e=j(transformLog,transformExp),et=_e.domain;let tt=10,rt,nt;function ot(){return rt=logp(tt),nt=powp(tt),et()[0]<0?(rt=reflect(rt),nt=reflect(nt),j(transformLogn,transformExpn)):j(transformLog,transformExp),_e}return _e.base=function(it){return arguments.length?(tt=+it,ot()):tt},_e.domain=function(it){return arguments.length?(et(it),ot()):et()},_e.ticks=it=>{const st=et();let lt=st[0],ut=st[st.length-1];const ct=ut0){for(;dt<=ft;++dt)for(pt=1;ptut)break;bt.push(gt)}}else for(;dt<=ft;++dt)for(pt=tt-1;pt>=1;--pt)if(gt=dt>0?pt/nt(-dt):pt*nt(dt),!(gtut)break;bt.push(gt)}bt.length*2{if(it==null&&(it=10),st==null&&(st=tt===10?"s":","),typeof st!="function"&&(!(tt%1)&&(st=formatSpecifier(st)).precision==null&&(st.trim=!0),st=format$1(st)),it===1/0)return st;const lt=Math.max(1,tt*it/_e.ticks().length);return ut=>{let ct=ut/nt(Math.round(rt(ut)));return ct*ttet(nice(et(),{floor:it=>nt(Math.floor(rt(it))),ceil:it=>nt(Math.ceil(rt(it)))})),_e}function log(){const j=loggish(transformer$2()).domain([1,10]);return j.copy=()=>copy$1(j,log()).base(j.base()),initRange.apply(j,arguments),j}function transformSymlog(j){return function(_e){return Math.sign(_e)*Math.log1p(Math.abs(_e/j))}}function transformSymexp(j){return function(_e){return Math.sign(_e)*Math.expm1(Math.abs(_e))*j}}function symlogish(j){var _e=1,et=j(transformSymlog(_e),transformSymexp(_e));return et.constant=function(tt){return arguments.length?j(transformSymlog(_e=+tt),transformSymexp(_e)):_e},linearish(et)}function symlog(){var j=symlogish(transformer$2());return j.copy=function(){return copy$1(j,symlog()).constant(j.constant())},initRange.apply(j,arguments)}function transformPow(j){return function(_e){return _e<0?-Math.pow(-_e,j):Math.pow(_e,j)}}function transformSqrt(j){return j<0?-Math.sqrt(-j):Math.sqrt(j)}function transformSquare(j){return j<0?-j*j:j*j}function powish(j){var _e=j(identity$2,identity$2),et=1;function tt(){return et===1?j(identity$2,identity$2):et===.5?j(transformSqrt,transformSquare):j(transformPow(et),transformPow(1/et))}return _e.exponent=function(rt){return arguments.length?(et=+rt,tt()):et},linearish(_e)}function pow(){var j=powish(transformer$2());return j.copy=function(){return copy$1(j,pow()).exponent(j.exponent())},initRange.apply(j,arguments),j}function sqrt(){return pow.apply(null,arguments).exponent(.5)}function square(j){return Math.sign(j)*j*j}function unsquare(j){return Math.sign(j)*Math.sqrt(Math.abs(j))}function radial(){var j=continuous(),_e=[0,1],et=!1,tt;function rt(nt){var ot=unsquare(j(nt));return isNaN(ot)?tt:et?Math.round(ot):ot}return rt.invert=function(nt){return j.invert(square(nt))},rt.domain=function(nt){return arguments.length?(j.domain(nt),rt):j.domain()},rt.range=function(nt){return arguments.length?(j.range((_e=Array.from(nt,number$1)).map(square)),rt):_e.slice()},rt.rangeRound=function(nt){return rt.range(nt).round(!0)},rt.round=function(nt){return arguments.length?(et=!!nt,rt):et},rt.clamp=function(nt){return arguments.length?(j.clamp(nt),rt):j.clamp()},rt.unknown=function(nt){return arguments.length?(tt=nt,rt):tt},rt.copy=function(){return radial(j.domain(),_e).round(et).clamp(j.clamp()).unknown(tt)},initRange.apply(rt,arguments),linearish(rt)}function quantile(){var j=[],_e=[],et=[],tt;function rt(){var ot=0,it=Math.max(1,_e.length);for(et=new Array(it-1);++ot0?et[it-1]:j[0],it=et?[tt[et-1],_e]:[tt[lt-1],tt[lt]]},ot.unknown=function(st){return arguments.length&&(nt=st),ot},ot.thresholds=function(){return tt.slice()},ot.copy=function(){return quantize().domain([j,_e]).range(rt).unknown(nt)},initRange.apply(linearish(ot),arguments)}function threshold(){var j=[.5],_e=[0,1],et,tt=1;function rt(nt){return nt!=null&&nt<=nt?_e[bisect(j,nt,0,tt)]:et}return rt.domain=function(nt){return arguments.length?(j=Array.from(nt),tt=Math.min(j.length,_e.length-1),rt):j.slice()},rt.range=function(nt){return arguments.length?(_e=Array.from(nt),tt=Math.min(j.length,_e.length-1),rt):_e.slice()},rt.invertExtent=function(nt){var ot=_e.indexOf(nt);return[j[ot-1],j[ot]]},rt.unknown=function(nt){return arguments.length?(et=nt,rt):et},rt.copy=function(){return threshold().domain(j).range(_e).unknown(et)},initRange.apply(rt,arguments)}const t0=new Date,t1=new Date;function timeInterval(j,_e,et,tt){function rt(nt){return j(nt=arguments.length===0?new Date:new Date(+nt)),nt}return rt.floor=nt=>(j(nt=new Date(+nt)),nt),rt.ceil=nt=>(j(nt=new Date(nt-1)),_e(nt,1),j(nt),nt),rt.round=nt=>{const ot=rt(nt),it=rt.ceil(nt);return nt-ot(_e(nt=new Date(+nt),ot==null?1:Math.floor(ot)),nt),rt.range=(nt,ot,it)=>{const st=[];if(nt=rt.ceil(nt),it=it==null?1:Math.floor(it),!(nt0))return st;let lt;do st.push(lt=new Date(+nt)),_e(nt,it),j(nt);while(lttimeInterval(ot=>{if(ot>=ot)for(;j(ot),!nt(ot);)ot.setTime(ot-1)},(ot,it)=>{if(ot>=ot)if(it<0)for(;++it<=0;)for(;_e(ot,-1),!nt(ot););else for(;--it>=0;)for(;_e(ot,1),!nt(ot););}),et&&(rt.count=(nt,ot)=>(t0.setTime(+nt),t1.setTime(+ot),j(t0),j(t1),Math.floor(et(t0,t1))),rt.every=nt=>(nt=Math.floor(nt),!isFinite(nt)||!(nt>0)?null:nt>1?rt.filter(tt?ot=>tt(ot)%nt===0:ot=>rt.count(0,ot)%nt===0):rt)),rt}const millisecond=timeInterval(()=>{},(j,_e)=>{j.setTime(+j+_e)},(j,_e)=>_e-j);millisecond.every=j=>(j=Math.floor(j),!isFinite(j)||!(j>0)?null:j>1?timeInterval(_e=>{_e.setTime(Math.floor(_e/j)*j)},(_e,et)=>{_e.setTime(+_e+et*j)},(_e,et)=>(et-_e)/j):millisecond);millisecond.range;const durationSecond=1e3,durationMinute=durationSecond*60,durationHour=durationMinute*60,durationDay=durationHour*24,durationWeek=durationDay*7,durationMonth=durationDay*30,durationYear=durationDay*365,second=timeInterval(j=>{j.setTime(j-j.getMilliseconds())},(j,_e)=>{j.setTime(+j+_e*durationSecond)},(j,_e)=>(_e-j)/durationSecond,j=>j.getUTCSeconds());second.range;const timeMinute=timeInterval(j=>{j.setTime(j-j.getMilliseconds()-j.getSeconds()*durationSecond)},(j,_e)=>{j.setTime(+j+_e*durationMinute)},(j,_e)=>(_e-j)/durationMinute,j=>j.getMinutes());timeMinute.range;const utcMinute=timeInterval(j=>{j.setUTCSeconds(0,0)},(j,_e)=>{j.setTime(+j+_e*durationMinute)},(j,_e)=>(_e-j)/durationMinute,j=>j.getUTCMinutes());utcMinute.range;const timeHour=timeInterval(j=>{j.setTime(j-j.getMilliseconds()-j.getSeconds()*durationSecond-j.getMinutes()*durationMinute)},(j,_e)=>{j.setTime(+j+_e*durationHour)},(j,_e)=>(_e-j)/durationHour,j=>j.getHours());timeHour.range;const utcHour=timeInterval(j=>{j.setUTCMinutes(0,0,0)},(j,_e)=>{j.setTime(+j+_e*durationHour)},(j,_e)=>(_e-j)/durationHour,j=>j.getUTCHours());utcHour.range;const timeDay=timeInterval(j=>j.setHours(0,0,0,0),(j,_e)=>j.setDate(j.getDate()+_e),(j,_e)=>(_e-j-(_e.getTimezoneOffset()-j.getTimezoneOffset())*durationMinute)/durationDay,j=>j.getDate()-1);timeDay.range;const utcDay=timeInterval(j=>{j.setUTCHours(0,0,0,0)},(j,_e)=>{j.setUTCDate(j.getUTCDate()+_e)},(j,_e)=>(_e-j)/durationDay,j=>j.getUTCDate()-1);utcDay.range;const unixDay=timeInterval(j=>{j.setUTCHours(0,0,0,0)},(j,_e)=>{j.setUTCDate(j.getUTCDate()+_e)},(j,_e)=>(_e-j)/durationDay,j=>Math.floor(j/durationDay));unixDay.range;function timeWeekday(j){return timeInterval(_e=>{_e.setDate(_e.getDate()-(_e.getDay()+7-j)%7),_e.setHours(0,0,0,0)},(_e,et)=>{_e.setDate(_e.getDate()+et*7)},(_e,et)=>(et-_e-(et.getTimezoneOffset()-_e.getTimezoneOffset())*durationMinute)/durationWeek)}const timeSunday=timeWeekday(0),timeMonday=timeWeekday(1),timeTuesday=timeWeekday(2),timeWednesday=timeWeekday(3),timeThursday=timeWeekday(4),timeFriday=timeWeekday(5),timeSaturday=timeWeekday(6);timeSunday.range;timeMonday.range;timeTuesday.range;timeWednesday.range;timeThursday.range;timeFriday.range;timeSaturday.range;function utcWeekday(j){return timeInterval(_e=>{_e.setUTCDate(_e.getUTCDate()-(_e.getUTCDay()+7-j)%7),_e.setUTCHours(0,0,0,0)},(_e,et)=>{_e.setUTCDate(_e.getUTCDate()+et*7)},(_e,et)=>(et-_e)/durationWeek)}const utcSunday=utcWeekday(0),utcMonday=utcWeekday(1),utcTuesday=utcWeekday(2),utcWednesday=utcWeekday(3),utcThursday=utcWeekday(4),utcFriday=utcWeekday(5),utcSaturday=utcWeekday(6);utcSunday.range;utcMonday.range;utcTuesday.range;utcWednesday.range;utcThursday.range;utcFriday.range;utcSaturday.range;const timeMonth=timeInterval(j=>{j.setDate(1),j.setHours(0,0,0,0)},(j,_e)=>{j.setMonth(j.getMonth()+_e)},(j,_e)=>_e.getMonth()-j.getMonth()+(_e.getFullYear()-j.getFullYear())*12,j=>j.getMonth());timeMonth.range;const utcMonth=timeInterval(j=>{j.setUTCDate(1),j.setUTCHours(0,0,0,0)},(j,_e)=>{j.setUTCMonth(j.getUTCMonth()+_e)},(j,_e)=>_e.getUTCMonth()-j.getUTCMonth()+(_e.getUTCFullYear()-j.getUTCFullYear())*12,j=>j.getUTCMonth());utcMonth.range;const timeYear=timeInterval(j=>{j.setMonth(0,1),j.setHours(0,0,0,0)},(j,_e)=>{j.setFullYear(j.getFullYear()+_e)},(j,_e)=>_e.getFullYear()-j.getFullYear(),j=>j.getFullYear());timeYear.every=j=>!isFinite(j=Math.floor(j))||!(j>0)?null:timeInterval(_e=>{_e.setFullYear(Math.floor(_e.getFullYear()/j)*j),_e.setMonth(0,1),_e.setHours(0,0,0,0)},(_e,et)=>{_e.setFullYear(_e.getFullYear()+et*j)});timeYear.range;const utcYear=timeInterval(j=>{j.setUTCMonth(0,1),j.setUTCHours(0,0,0,0)},(j,_e)=>{j.setUTCFullYear(j.getUTCFullYear()+_e)},(j,_e)=>_e.getUTCFullYear()-j.getUTCFullYear(),j=>j.getUTCFullYear());utcYear.every=j=>!isFinite(j=Math.floor(j))||!(j>0)?null:timeInterval(_e=>{_e.setUTCFullYear(Math.floor(_e.getUTCFullYear()/j)*j),_e.setUTCMonth(0,1),_e.setUTCHours(0,0,0,0)},(_e,et)=>{_e.setUTCFullYear(_e.getUTCFullYear()+et*j)});utcYear.range;function ticker(j,_e,et,tt,rt,nt){const ot=[[second,1,durationSecond],[second,5,5*durationSecond],[second,15,15*durationSecond],[second,30,30*durationSecond],[nt,1,durationMinute],[nt,5,5*durationMinute],[nt,15,15*durationMinute],[nt,30,30*durationMinute],[rt,1,durationHour],[rt,3,3*durationHour],[rt,6,6*durationHour],[rt,12,12*durationHour],[tt,1,durationDay],[tt,2,2*durationDay],[et,1,durationWeek],[_e,1,durationMonth],[_e,3,3*durationMonth],[j,1,durationYear]];function it(lt,ut,ct){const dt=utvt).right(ot,dt);if(ft===ot.length)return j.every(tickStep(lt/durationYear,ut/durationYear,ct));if(ft===0)return millisecond.every(Math.max(tickStep(lt,ut,ct),1));const[pt,gt]=ot[dt/ot[ft-1][2]53)return null;"w"in nr||(nr.w=1),"Z"in nr?(Ar=utcDate(newDate(nr.y,0,1)),Or=Ar.getUTCDay(),Ar=Or>4||Or===0?utcMonday.ceil(Ar):utcMonday(Ar),Ar=utcDay.offset(Ar,(nr.V-1)*7),nr.y=Ar.getUTCFullYear(),nr.m=Ar.getUTCMonth(),nr.d=Ar.getUTCDate()+(nr.w+6)%7):(Ar=localDate(newDate(nr.y,0,1)),Or=Ar.getDay(),Ar=Or>4||Or===0?timeMonday.ceil(Ar):timeMonday(Ar),Ar=timeDay.offset(Ar,(nr.V-1)*7),nr.y=Ar.getFullYear(),nr.m=Ar.getMonth(),nr.d=Ar.getDate()+(nr.w+6)%7)}else("W"in nr||"U"in nr)&&("w"in nr||(nr.w="u"in nr?nr.u%7:"W"in nr?1:0),Or="Z"in nr?utcDate(newDate(nr.y,0,1)).getUTCDay():localDate(newDate(nr.y,0,1)).getDay(),nr.m=0,nr.d="W"in nr?(nr.w+6)%7+nr.W*7-(Or+5)%7:nr.w+nr.U*7-(Or+6)%7);return"Z"in nr?(nr.H+=nr.Z/100|0,nr.M+=nr.Z%100,utcDate(nr)):localDate(nr)}}function At(qt,ir,hr,nr){for(var mr=0,Ar=ir.length,Or=hr.length,wr,Nr;mr=Or)return-1;if(wr=ir.charCodeAt(mr++),wr===37){if(wr=ir.charAt(mr++),Nr=Et[wr in pads?ir.charAt(mr++):wr],!Nr||(nr=Nr(qt,hr,nr))<0)return-1}else if(wr!=hr.charCodeAt(nr++))return-1}return nr}function wt(qt,ir,hr){var nr=lt.exec(ir.slice(hr));return nr?(qt.p=ut.get(nr[0].toLowerCase()),hr+nr[0].length):-1}function Ct(qt,ir,hr){var nr=ft.exec(ir.slice(hr));return nr?(qt.w=pt.get(nr[0].toLowerCase()),hr+nr[0].length):-1}function It(qt,ir,hr){var nr=ct.exec(ir.slice(hr));return nr?(qt.w=dt.get(nr[0].toLowerCase()),hr+nr[0].length):-1}function Ot(qt,ir,hr){var nr=bt.exec(ir.slice(hr));return nr?(qt.m=_t.get(nr[0].toLowerCase()),hr+nr[0].length):-1}function Nt(qt,ir,hr){var nr=gt.exec(ir.slice(hr));return nr?(qt.m=vt.get(nr[0].toLowerCase()),hr+nr[0].length):-1}function Pt(qt,ir,hr){return At(qt,_e,ir,hr)}function Mt(qt,ir,hr){return At(qt,et,ir,hr)}function Rt(qt,ir,hr){return At(qt,tt,ir,hr)}function Lt(qt){return ot[qt.getDay()]}function jt(qt){return nt[qt.getDay()]}function Gt(qt){return st[qt.getMonth()]}function Vt(qt){return it[qt.getMonth()]}function Yt(qt){return rt[+(qt.getHours()>=12)]}function Xt(qt){return 1+~~(qt.getMonth()/3)}function rr(qt){return ot[qt.getUTCDay()]}function cr(qt){return nt[qt.getUTCDay()]}function vr(qt){return st[qt.getUTCMonth()]}function Tr(qt){return it[qt.getUTCMonth()]}function gr(qt){return rt[+(qt.getUTCHours()>=12)]}function Er(qt){return 1+~~(qt.getUTCMonth()/3)}return{format:function(qt){var ir=St(qt+="",xt);return ir.toString=function(){return qt},ir},parse:function(qt){var ir=$t(qt+="",!1);return ir.toString=function(){return qt},ir},utcFormat:function(qt){var ir=St(qt+="",yt);return ir.toString=function(){return qt},ir},utcParse:function(qt){var ir=$t(qt+="",!0);return ir.toString=function(){return qt},ir}}}var pads={"-":"",_:" ",0:"0"},numberRe=/^\s*\d+/,percentRe=/^%/,requoteRe=/[\\^$*+?|[\]().{}]/g;function pad(j,_e,et){var tt=j<0?"-":"",rt=(tt?-j:j)+"",nt=rt.length;return tt+(nt[_e.toLowerCase(),et]))}function parseWeekdayNumberSunday(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+1));return tt?(j.w=+tt[0],et+tt[0].length):-1}function parseWeekdayNumberMonday(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+1));return tt?(j.u=+tt[0],et+tt[0].length):-1}function parseWeekNumberSunday(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.U=+tt[0],et+tt[0].length):-1}function parseWeekNumberISO(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.V=+tt[0],et+tt[0].length):-1}function parseWeekNumberMonday(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.W=+tt[0],et+tt[0].length):-1}function parseFullYear(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+4));return tt?(j.y=+tt[0],et+tt[0].length):-1}function parseYear(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.y=+tt[0]+(+tt[0]>68?1900:2e3),et+tt[0].length):-1}function parseZone(j,_e,et){var tt=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(_e.slice(et,et+6));return tt?(j.Z=tt[1]?0:-(tt[2]+(tt[3]||"00")),et+tt[0].length):-1}function parseQuarter(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+1));return tt?(j.q=tt[0]*3-3,et+tt[0].length):-1}function parseMonthNumber(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.m=tt[0]-1,et+tt[0].length):-1}function parseDayOfMonth(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.d=+tt[0],et+tt[0].length):-1}function parseDayOfYear(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+3));return tt?(j.m=0,j.d=+tt[0],et+tt[0].length):-1}function parseHour24(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.H=+tt[0],et+tt[0].length):-1}function parseMinutes(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.M=+tt[0],et+tt[0].length):-1}function parseSeconds(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.S=+tt[0],et+tt[0].length):-1}function parseMilliseconds(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+3));return tt?(j.L=+tt[0],et+tt[0].length):-1}function parseMicroseconds(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+6));return tt?(j.L=Math.floor(tt[0]/1e3),et+tt[0].length):-1}function parseLiteralPercent(j,_e,et){var tt=percentRe.exec(_e.slice(et,et+1));return tt?et+tt[0].length:-1}function parseUnixTimestamp(j,_e,et){var tt=numberRe.exec(_e.slice(et));return tt?(j.Q=+tt[0],et+tt[0].length):-1}function parseUnixTimestampSeconds(j,_e,et){var tt=numberRe.exec(_e.slice(et));return tt?(j.s=+tt[0],et+tt[0].length):-1}function formatDayOfMonth(j,_e){return pad(j.getDate(),_e,2)}function formatHour24(j,_e){return pad(j.getHours(),_e,2)}function formatHour12(j,_e){return pad(j.getHours()%12||12,_e,2)}function formatDayOfYear(j,_e){return pad(1+timeDay.count(timeYear(j),j),_e,3)}function formatMilliseconds(j,_e){return pad(j.getMilliseconds(),_e,3)}function formatMicroseconds(j,_e){return formatMilliseconds(j,_e)+"000"}function formatMonthNumber(j,_e){return pad(j.getMonth()+1,_e,2)}function formatMinutes(j,_e){return pad(j.getMinutes(),_e,2)}function formatSeconds(j,_e){return pad(j.getSeconds(),_e,2)}function formatWeekdayNumberMonday(j){var _e=j.getDay();return _e===0?7:_e}function formatWeekNumberSunday(j,_e){return pad(timeSunday.count(timeYear(j)-1,j),_e,2)}function dISO(j){var _e=j.getDay();return _e>=4||_e===0?timeThursday(j):timeThursday.ceil(j)}function formatWeekNumberISO(j,_e){return j=dISO(j),pad(timeThursday.count(timeYear(j),j)+(timeYear(j).getDay()===4),_e,2)}function formatWeekdayNumberSunday(j){return j.getDay()}function formatWeekNumberMonday(j,_e){return pad(timeMonday.count(timeYear(j)-1,j),_e,2)}function formatYear(j,_e){return pad(j.getFullYear()%100,_e,2)}function formatYearISO(j,_e){return j=dISO(j),pad(j.getFullYear()%100,_e,2)}function formatFullYear(j,_e){return pad(j.getFullYear()%1e4,_e,4)}function formatFullYearISO(j,_e){var et=j.getDay();return j=et>=4||et===0?timeThursday(j):timeThursday.ceil(j),pad(j.getFullYear()%1e4,_e,4)}function formatZone(j){var _e=j.getTimezoneOffset();return(_e>0?"-":(_e*=-1,"+"))+pad(_e/60|0,"0",2)+pad(_e%60,"0",2)}function formatUTCDayOfMonth(j,_e){return pad(j.getUTCDate(),_e,2)}function formatUTCHour24(j,_e){return pad(j.getUTCHours(),_e,2)}function formatUTCHour12(j,_e){return pad(j.getUTCHours()%12||12,_e,2)}function formatUTCDayOfYear(j,_e){return pad(1+utcDay.count(utcYear(j),j),_e,3)}function formatUTCMilliseconds(j,_e){return pad(j.getUTCMilliseconds(),_e,3)}function formatUTCMicroseconds(j,_e){return formatUTCMilliseconds(j,_e)+"000"}function formatUTCMonthNumber(j,_e){return pad(j.getUTCMonth()+1,_e,2)}function formatUTCMinutes(j,_e){return pad(j.getUTCMinutes(),_e,2)}function formatUTCSeconds(j,_e){return pad(j.getUTCSeconds(),_e,2)}function formatUTCWeekdayNumberMonday(j){var _e=j.getUTCDay();return _e===0?7:_e}function formatUTCWeekNumberSunday(j,_e){return pad(utcSunday.count(utcYear(j)-1,j),_e,2)}function UTCdISO(j){var _e=j.getUTCDay();return _e>=4||_e===0?utcThursday(j):utcThursday.ceil(j)}function formatUTCWeekNumberISO(j,_e){return j=UTCdISO(j),pad(utcThursday.count(utcYear(j),j)+(utcYear(j).getUTCDay()===4),_e,2)}function formatUTCWeekdayNumberSunday(j){return j.getUTCDay()}function formatUTCWeekNumberMonday(j,_e){return pad(utcMonday.count(utcYear(j)-1,j),_e,2)}function formatUTCYear(j,_e){return pad(j.getUTCFullYear()%100,_e,2)}function formatUTCYearISO(j,_e){return j=UTCdISO(j),pad(j.getUTCFullYear()%100,_e,2)}function formatUTCFullYear(j,_e){return pad(j.getUTCFullYear()%1e4,_e,4)}function formatUTCFullYearISO(j,_e){var et=j.getUTCDay();return j=et>=4||et===0?utcThursday(j):utcThursday.ceil(j),pad(j.getUTCFullYear()%1e4,_e,4)}function formatUTCZone(){return"+0000"}function formatLiteralPercent(){return"%"}function formatUnixTimestamp(j){return+j}function formatUnixTimestampSeconds(j){return Math.floor(+j/1e3)}var locale,timeFormat,utcFormat;defaultLocale({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function defaultLocale(j){return locale=formatLocale(j),timeFormat=locale.format,locale.parse,utcFormat=locale.utcFormat,locale.utcParse,locale}function date(j){return new Date(j)}function number(j){return j instanceof Date?+j:+new Date(+j)}function calendar(j,_e,et,tt,rt,nt,ot,it,st,lt){var ut=continuous(),ct=ut.invert,dt=ut.domain,ft=lt(".%L"),pt=lt(":%S"),gt=lt("%I:%M"),vt=lt("%I %p"),bt=lt("%a %d"),_t=lt("%b %d"),xt=lt("%B"),yt=lt("%Y");function Et(St){return(st(St)_e(rt/(j.length-1)))},et.quantiles=function(tt){return Array.from({length:tt+1},(rt,nt)=>quantile$1(j,nt/tt))},et.copy=function(){return sequentialQuantile(_e).domain(j)},initInterpolator.apply(et,arguments)}function transformer(){var j=0,_e=.5,et=1,tt=1,rt,nt,ot,it,st,lt=identity$2,ut,ct=!1,dt;function ft(gt){return isNaN(gt=+gt)?dt:(gt=.5+((gt=+ut(gt))-nt)*(tt*gtj.e^nt.s<0?1:-1;for(tt=nt.d.length,rt=j.d.length,_e=0,et=ttj.d[_e]^nt.s<0?1:-1;return tt===rt?0:tt>rt^nt.s<0?1:-1};P.decimalPlaces=P.dp=function(){var j=this,_e=j.d.length-1,et=(_e-j.e)*LOG_BASE;if(_e=j.d[_e],_e)for(;_e%10==0;_e/=10)et--;return et<0?0:et};P.dividedBy=P.div=function(j){return divide(this,new this.constructor(j))};P.dividedToIntegerBy=P.idiv=function(j){var _e=this,et=_e.constructor;return round(divide(_e,new et(j),0,1),et.precision)};P.equals=P.eq=function(j){return!this.cmp(j)};P.exponent=function(){return getBase10Exponent(this)};P.greaterThan=P.gt=function(j){return this.cmp(j)>0};P.greaterThanOrEqualTo=P.gte=function(j){return this.cmp(j)>=0};P.isInteger=P.isint=function(){return this.e>this.d.length-2};P.isNegative=P.isneg=function(){return this.s<0};P.isPositive=P.ispos=function(){return this.s>0};P.isZero=function(){return this.s===0};P.lessThan=P.lt=function(j){return this.cmp(j)<0};P.lessThanOrEqualTo=P.lte=function(j){return this.cmp(j)<1};P.logarithm=P.log=function(j){var _e,et=this,tt=et.constructor,rt=tt.precision,nt=rt+5;if(j===void 0)j=new tt(10);else if(j=new tt(j),j.s<1||j.eq(ONE))throw Error(decimalError+"NaN");if(et.s<1)throw Error(decimalError+(et.s?"NaN":"-Infinity"));return et.eq(ONE)?new tt(0):(external=!1,_e=divide(ln(et,nt),ln(j,nt),nt),external=!0,round(_e,rt))};P.minus=P.sub=function(j){var _e=this;return j=new _e.constructor(j),_e.s==j.s?subtract(_e,j):add(_e,(j.s=-j.s,j))};P.modulo=P.mod=function(j){var _e,et=this,tt=et.constructor,rt=tt.precision;if(j=new tt(j),!j.s)throw Error(decimalError+"NaN");return et.s?(external=!1,_e=divide(et,j,0,1).times(j),external=!0,et.minus(_e)):round(new tt(et),rt)};P.naturalExponential=P.exp=function(){return exp(this)};P.naturalLogarithm=P.ln=function(){return ln(this)};P.negated=P.neg=function(){var j=new this.constructor(this);return j.s=-j.s||0,j};P.plus=P.add=function(j){var _e=this;return j=new _e.constructor(j),_e.s==j.s?add(_e,j):subtract(_e,(j.s=-j.s,j))};P.precision=P.sd=function(j){var _e,et,tt,rt=this;if(j!==void 0&&j!==!!j&&j!==1&&j!==0)throw Error(invalidArgument+j);if(_e=getBase10Exponent(rt)+1,tt=rt.d.length-1,et=tt*LOG_BASE+1,tt=rt.d[tt],tt){for(;tt%10==0;tt/=10)et--;for(tt=rt.d[0];tt>=10;tt/=10)et++}return j&&_e>et?_e:et};P.squareRoot=P.sqrt=function(){var j,_e,et,tt,rt,nt,ot,it=this,st=it.constructor;if(it.s<1){if(!it.s)return new st(0);throw Error(decimalError+"NaN")}for(j=getBase10Exponent(it),external=!1,rt=Math.sqrt(+it),rt==0||rt==1/0?(_e=digitsToString(it.d),(_e.length+j)%2==0&&(_e+="0"),rt=Math.sqrt(_e),j=mathfloor((j+1)/2)-(j<0||j%2),rt==1/0?_e="5e"+j:(_e=rt.toExponential(),_e=_e.slice(0,_e.indexOf("e")+1)+j),tt=new st(_e)):tt=new st(rt.toString()),et=st.precision,rt=ot=et+3;;)if(nt=tt,tt=nt.plus(divide(it,nt,ot+2)).times(.5),digitsToString(nt.d).slice(0,ot)===(_e=digitsToString(tt.d)).slice(0,ot)){if(_e=_e.slice(ot-3,ot+1),rt==ot&&_e=="4999"){if(round(nt,et+1,0),nt.times(nt).eq(it)){tt=nt;break}}else if(_e!="9999")break;ot+=4}return external=!0,round(tt,et)};P.times=P.mul=function(j){var _e,et,tt,rt,nt,ot,it,st,lt,ut=this,ct=ut.constructor,dt=ut.d,ft=(j=new ct(j)).d;if(!ut.s||!j.s)return new ct(0);for(j.s*=ut.s,et=ut.e+j.e,st=dt.length,lt=ft.length,st=0;){for(_e=0,rt=st+tt;rt>tt;)it=nt[rt]+ft[tt]*dt[rt-tt-1]+_e,nt[rt--]=it%BASE|0,_e=it/BASE|0;nt[rt]=(nt[rt]+_e)%BASE|0}for(;!nt[--ot];)nt.pop();return _e?++et:nt.shift(),j.d=nt,j.e=et,external?round(j,ct.precision):j};P.toDecimalPlaces=P.todp=function(j,_e){var et=this,tt=et.constructor;return et=new tt(et),j===void 0?et:(checkInt32(j,0,MAX_DIGITS),_e===void 0?_e=tt.rounding:checkInt32(_e,0,8),round(et,j+getBase10Exponent(et)+1,_e))};P.toExponential=function(j,_e){var et,tt=this,rt=tt.constructor;return j===void 0?et=toString(tt,!0):(checkInt32(j,0,MAX_DIGITS),_e===void 0?_e=rt.rounding:checkInt32(_e,0,8),tt=round(new rt(tt),j+1,_e),et=toString(tt,!0,j+1)),et};P.toFixed=function(j,_e){var et,tt,rt=this,nt=rt.constructor;return j===void 0?toString(rt):(checkInt32(j,0,MAX_DIGITS),_e===void 0?_e=nt.rounding:checkInt32(_e,0,8),tt=round(new nt(rt),j+getBase10Exponent(rt)+1,_e),et=toString(tt.abs(),!1,j+getBase10Exponent(tt)+1),rt.isneg()&&!rt.isZero()?"-"+et:et)};P.toInteger=P.toint=function(){var j=this,_e=j.constructor;return round(new _e(j),getBase10Exponent(j)+1,_e.rounding)};P.toNumber=function(){return+this};P.toPower=P.pow=function(j){var _e,et,tt,rt,nt,ot,it=this,st=it.constructor,lt=12,ut=+(j=new st(j));if(!j.s)return new st(ONE);if(it=new st(it),!it.s){if(j.s<1)throw Error(decimalError+"Infinity");return it}if(it.eq(ONE))return it;if(tt=st.precision,j.eq(ONE))return round(it,tt);if(_e=j.e,et=j.d.length-1,ot=_e>=et,nt=it.s,ot){if((et=ut<0?-ut:ut)<=MAX_SAFE_INTEGER){for(rt=new st(ONE),_e=Math.ceil(tt/LOG_BASE+4),external=!1;et%2&&(rt=rt.times(it),truncate(rt.d,_e)),et=mathfloor(et/2),et!==0;)it=it.times(it),truncate(it.d,_e);return external=!0,j.s<0?new st(ONE).div(rt):round(rt,tt)}}else if(nt<0)throw Error(decimalError+"NaN");return nt=nt<0&&j.d[Math.max(_e,et)]&1?-1:1,it.s=1,external=!1,rt=j.times(ln(it,tt+lt)),external=!0,rt=exp(rt),rt.s=nt,rt};P.toPrecision=function(j,_e){var et,tt,rt=this,nt=rt.constructor;return j===void 0?(et=getBase10Exponent(rt),tt=toString(rt,et<=nt.toExpNeg||et>=nt.toExpPos)):(checkInt32(j,1,MAX_DIGITS),_e===void 0?_e=nt.rounding:checkInt32(_e,0,8),rt=round(new nt(rt),j,_e),et=getBase10Exponent(rt),tt=toString(rt,j<=et||et<=nt.toExpNeg,j)),tt};P.toSignificantDigits=P.tosd=function(j,_e){var et=this,tt=et.constructor;return j===void 0?(j=tt.precision,_e=tt.rounding):(checkInt32(j,1,MAX_DIGITS),_e===void 0?_e=tt.rounding:checkInt32(_e,0,8)),round(new tt(et),j,_e)};P.toString=P.valueOf=P.val=P.toJSON=P[Symbol.for("nodejs.util.inspect.custom")]=function(){var j=this,_e=getBase10Exponent(j),et=j.constructor;return toString(j,_e<=et.toExpNeg||_e>=et.toExpPos)};function add(j,_e){var et,tt,rt,nt,ot,it,st,lt,ut=j.constructor,ct=ut.precision;if(!j.s||!_e.s)return _e.s||(_e=new ut(j)),external?round(_e,ct):_e;if(st=j.d,lt=_e.d,ot=j.e,rt=_e.e,st=st.slice(),nt=ot-rt,nt){for(nt<0?(tt=st,nt=-nt,it=lt.length):(tt=lt,rt=ot,it=st.length),ot=Math.ceil(ct/LOG_BASE),it=ot>it?ot+1:it+1,nt>it&&(nt=it,tt.length=1),tt.reverse();nt--;)tt.push(0);tt.reverse()}for(it=st.length,nt=lt.length,it-nt<0&&(nt=it,tt=lt,lt=st,st=tt),et=0;nt;)et=(st[--nt]=st[nt]+lt[nt]+et)/BASE|0,st[nt]%=BASE;for(et&&(st.unshift(et),++rt),it=st.length;st[--it]==0;)st.pop();return _e.d=st,_e.e=rt,external?round(_e,ct):_e}function checkInt32(j,_e,et){if(j!==~~j||j<_e||j>et)throw Error(invalidArgument+j)}function digitsToString(j){var _e,et,tt,rt=j.length-1,nt="",ot=j[0];if(rt>0){for(nt+=ot,_e=1;_eot?1:-1;else for(it=st=0;itrt[it]?1:-1;break}return st}function et(tt,rt,nt){for(var ot=0;nt--;)tt[nt]-=ot,ot=tt[nt]1;)tt.shift()}return function(tt,rt,nt,ot){var it,st,lt,ut,ct,dt,ft,pt,gt,vt,bt,_t,xt,yt,Et,St,$t,At,wt=tt.constructor,Ct=tt.s==rt.s?1:-1,It=tt.d,Ot=rt.d;if(!tt.s)return new wt(tt);if(!rt.s)throw Error(decimalError+"Division by zero");for(st=tt.e-rt.e,$t=Ot.length,Et=It.length,ft=new wt(Ct),pt=ft.d=[],lt=0;Ot[lt]==(It[lt]||0);)++lt;if(Ot[lt]>(It[lt]||0)&&--st,nt==null?_t=nt=wt.precision:ot?_t=nt+(getBase10Exponent(tt)-getBase10Exponent(rt))+1:_t=nt,_t<0)return new wt(0);if(_t=_t/LOG_BASE+2|0,lt=0,$t==1)for(ut=0,Ot=Ot[0],_t++;(lt1&&(Ot=j(Ot,ut),It=j(It,ut),$t=Ot.length,Et=It.length),yt=$t,gt=It.slice(0,$t),vt=gt.length;vt<$t;)gt[vt++]=0;At=Ot.slice(),At.unshift(0),St=Ot[0],Ot[1]>=BASE/2&&++St;do ut=0,it=_e(Ot,gt,$t,vt),it<0?(bt=gt[0],$t!=vt&&(bt=bt*BASE+(gt[1]||0)),ut=bt/St|0,ut>1?(ut>=BASE&&(ut=BASE-1),ct=j(Ot,ut),dt=ct.length,vt=gt.length,it=_e(ct,gt,dt,vt),it==1&&(ut--,et(ct,$t16)throw Error(exponentOutOfRange+getBase10Exponent(j));if(!j.s)return new ut(ONE);for(_e==null?(external=!1,it=ct):it=_e,ot=new ut(.03125);j.abs().gte(.1);)j=j.times(ot),lt+=5;for(tt=Math.log(mathpow(2,lt))/Math.LN10*2+5|0,it+=tt,et=rt=nt=new ut(ONE),ut.precision=it;;){if(rt=round(rt.times(j),it),et=et.times(++st),ot=nt.plus(divide(rt,et,it)),digitsToString(ot.d).slice(0,it)===digitsToString(nt.d).slice(0,it)){for(;lt--;)nt=round(nt.times(nt),it);return ut.precision=ct,_e==null?(external=!0,round(nt,ct)):nt}nt=ot}}function getBase10Exponent(j){for(var _e=j.e*LOG_BASE,et=j.d[0];et>=10;et/=10)_e++;return _e}function getLn10(j,_e,et){if(_e>j.LN10.sd())throw external=!0,et&&(j.precision=et),Error(decimalError+"LN10 precision limit exceeded");return round(new j(j.LN10),_e)}function getZeroString(j){for(var _e="";j--;)_e+="0";return _e}function ln(j,_e){var et,tt,rt,nt,ot,it,st,lt,ut,ct=1,dt=10,ft=j,pt=ft.d,gt=ft.constructor,vt=gt.precision;if(ft.s<1)throw Error(decimalError+(ft.s?"NaN":"-Infinity"));if(ft.eq(ONE))return new gt(0);if(_e==null?(external=!1,lt=vt):lt=_e,ft.eq(10))return _e==null&&(external=!0),getLn10(gt,lt);if(lt+=dt,gt.precision=lt,et=digitsToString(pt),tt=et.charAt(0),nt=getBase10Exponent(ft),Math.abs(nt)<15e14){for(;tt<7&&tt!=1||tt==1&&et.charAt(1)>3;)ft=ft.times(j),et=digitsToString(ft.d),tt=et.charAt(0),ct++;nt=getBase10Exponent(ft),tt>1?(ft=new gt("0."+et),nt++):ft=new gt(tt+"."+et.slice(1))}else return st=getLn10(gt,lt+2,vt).times(nt+""),ft=ln(new gt(tt+"."+et.slice(1)),lt-dt).plus(st),gt.precision=vt,_e==null?(external=!0,round(ft,vt)):ft;for(it=ot=ft=divide(ft.minus(ONE),ft.plus(ONE),lt),ut=round(ft.times(ft),lt),rt=3;;){if(ot=round(ot.times(ut),lt),st=it.plus(divide(ot,new gt(rt),lt)),digitsToString(st.d).slice(0,lt)===digitsToString(it.d).slice(0,lt))return it=it.times(2),nt!==0&&(it=it.plus(getLn10(gt,lt+2,vt).times(nt+""))),it=divide(it,new gt(ct),lt),gt.precision=vt,_e==null?(external=!0,round(it,vt)):it;it=st,rt+=2}}function parseDecimal(j,_e){var et,tt,rt;for((et=_e.indexOf("."))>-1&&(_e=_e.replace(".","")),(tt=_e.search(/e/i))>0?(et<0&&(et=tt),et+=+_e.slice(tt+1),_e=_e.substring(0,tt)):et<0&&(et=_e.length),tt=0;_e.charCodeAt(tt)===48;)++tt;for(rt=_e.length;_e.charCodeAt(rt-1)===48;)--rt;if(_e=_e.slice(tt,rt),_e){if(rt-=tt,et=et-tt-1,j.e=mathfloor(et/LOG_BASE),j.d=[],tt=(et+1)%LOG_BASE,et<0&&(tt+=LOG_BASE),ttMAX_E||j.e<-MAX_E))throw Error(exponentOutOfRange+et)}else j.s=0,j.e=0,j.d=[0];return j}function round(j,_e,et){var tt,rt,nt,ot,it,st,lt,ut,ct=j.d;for(ot=1,nt=ct[0];nt>=10;nt/=10)ot++;if(tt=_e-ot,tt<0)tt+=LOG_BASE,rt=_e,lt=ct[ut=0];else{if(ut=Math.ceil((tt+1)/LOG_BASE),nt=ct.length,ut>=nt)return j;for(lt=nt=ct[ut],ot=1;nt>=10;nt/=10)ot++;tt%=LOG_BASE,rt=tt-LOG_BASE+ot}if(et!==void 0&&(nt=mathpow(10,ot-rt-1),it=lt/nt%10|0,st=_e<0||ct[ut+1]!==void 0||lt%nt,st=et<4?(it||st)&&(et==0||et==(j.s<0?3:2)):it>5||it==5&&(et==4||st||et==6&&(tt>0?rt>0?lt/mathpow(10,ot-rt):0:ct[ut-1])%10&1||et==(j.s<0?8:7))),_e<1||!ct[0])return st?(nt=getBase10Exponent(j),ct.length=1,_e=_e-nt-1,ct[0]=mathpow(10,(LOG_BASE-_e%LOG_BASE)%LOG_BASE),j.e=mathfloor(-_e/LOG_BASE)||0):(ct.length=1,ct[0]=j.e=j.s=0),j;if(tt==0?(ct.length=ut,nt=1,ut--):(ct.length=ut+1,nt=mathpow(10,LOG_BASE-tt),ct[ut]=rt>0?(lt/mathpow(10,ot-rt)%mathpow(10,rt)|0)*nt:0),st)for(;;)if(ut==0){(ct[0]+=nt)==BASE&&(ct[0]=1,++j.e);break}else{if(ct[ut]+=nt,ct[ut]!=BASE)break;ct[ut--]=0,nt=1}for(tt=ct.length;ct[--tt]===0;)ct.pop();if(external&&(j.e>MAX_E||j.e<-MAX_E))throw Error(exponentOutOfRange+getBase10Exponent(j));return j}function subtract(j,_e){var et,tt,rt,nt,ot,it,st,lt,ut,ct,dt=j.constructor,ft=dt.precision;if(!j.s||!_e.s)return _e.s?_e.s=-_e.s:_e=new dt(j),external?round(_e,ft):_e;if(st=j.d,ct=_e.d,tt=_e.e,lt=j.e,st=st.slice(),ot=lt-tt,ot){for(ut=ot<0,ut?(et=st,ot=-ot,it=ct.length):(et=ct,tt=lt,it=st.length),rt=Math.max(Math.ceil(ft/LOG_BASE),it)+2,ot>rt&&(ot=rt,et.length=1),et.reverse(),rt=ot;rt--;)et.push(0);et.reverse()}else{for(rt=st.length,it=ct.length,ut=rt0;--rt)st[it++]=0;for(rt=ct.length;rt>ot;){if(st[--rt]0?nt=nt.charAt(0)+"."+nt.slice(1)+getZeroString(tt):ot>1&&(nt=nt.charAt(0)+"."+nt.slice(1)),nt=nt+(rt<0?"e":"e+")+rt):rt<0?(nt="0."+getZeroString(-rt-1)+nt,et&&(tt=et-ot)>0&&(nt+=getZeroString(tt))):rt>=ot?(nt+=getZeroString(rt+1-ot),et&&(tt=et-rt-1)>0&&(nt=nt+"."+getZeroString(tt))):((tt=rt+1)0&&(rt+1===ot&&(nt+="."),nt+=getZeroString(tt))),j.s<0?"-"+nt:nt}function truncate(j,_e){if(j.length>_e)return j.length=_e,!0}function clone(j){var _e,et,tt;function rt(nt){var ot=this;if(!(ot instanceof rt))return new rt(nt);if(ot.constructor=rt,nt instanceof rt){ot.s=nt.s,ot.e=nt.e,ot.d=(nt=nt.d)?nt.slice():nt;return}if(typeof nt=="number"){if(nt*0!==0)throw Error(invalidArgument+nt);if(nt>0)ot.s=1;else if(nt<0)nt=-nt,ot.s=-1;else{ot.s=0,ot.e=0,ot.d=[0];return}if(nt===~~nt&&nt<1e7){ot.e=0,ot.d=[nt];return}return parseDecimal(ot,nt.toString())}else if(typeof nt!="string")throw Error(invalidArgument+nt);if(nt.charCodeAt(0)===45?(nt=nt.slice(1),ot.s=-1):ot.s=1,isDecimal.test(nt))parseDecimal(ot,nt);else throw Error(invalidArgument+nt)}if(rt.prototype=P,rt.ROUND_UP=0,rt.ROUND_DOWN=1,rt.ROUND_CEIL=2,rt.ROUND_FLOOR=3,rt.ROUND_HALF_UP=4,rt.ROUND_HALF_DOWN=5,rt.ROUND_HALF_EVEN=6,rt.ROUND_HALF_CEIL=7,rt.ROUND_HALF_FLOOR=8,rt.clone=clone,rt.config=rt.set=config,j===void 0&&(j={}),j)for(tt=["precision","rounding","toExpNeg","toExpPos","LN10"],_e=0;_e=rt[_e+1]&&tt<=rt[_e+2])this[et]=tt;else throw Error(invalidArgument+et+": "+tt);if((tt=j[et="LN10"])!==void 0)if(tt==Math.LN10)this[et]=new this(tt);else throw Error(invalidArgument+et+": "+tt);return this}var Decimal=clone(defaults);ONE=new Decimal(1);const Decimal$1=Decimal;function _toConsumableArray$7(j){return _arrayWithoutHoles$7(j)||_iterableToArray$7(j)||_unsupportedIterableToArray$c(j)||_nonIterableSpread$7()}function _nonIterableSpread$7(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$g(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$g(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$g(j,_e)}}function _arrayLikeToArray$g(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$9(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$9(j){if(Array.isArray(j))return j}var alpha=function j(_e,et,tt){return _e+(et-_e)*tt},needContinue=function j(_e){var et=_e.from,tt=_e.to;return et!==tt},calStepperVals=function j(_e,et,tt){var rt=mapObject(function(nt,ot){if(needContinue(ot)){var it=_e(ot.from,ot.to,ot.velocity),st=_slicedToArray$9(it,2),lt=st[0],ut=st[1];return _objectSpread$s(_objectSpread$s({},ot),{},{from:lt,velocity:ut})}return ot},et);return tt<1?mapObject(function(nt,ot){return needContinue(ot)?_objectSpread$s(_objectSpread$s({},ot),{},{velocity:alpha(ot.velocity,rt[nt].velocity,tt),from:alpha(ot.from,rt[nt].from,tt)}):ot},et):j(_e,rt,tt-1)};const configUpdate=function(j,_e,et,tt,rt){var nt=getIntersectionKeys(j,_e),ot=nt.reduce(function(mt,bt){return _objectSpread$s(_objectSpread$s({},mt),{},_defineProperty$u({},bt,[j[bt],_e[bt]]))},{}),it=nt.reduce(function(mt,bt){return _objectSpread$s(_objectSpread$s({},mt),{},_defineProperty$u({},bt,{from:j[bt],velocity:0,to:_e[bt]}))},{}),st=-1,lt,ut,ct=function(){return null},dt=function(){return mapObject(function(bt,_t){return _t.from},it)},ft=function(){return!Object.values(it).filter(needContinue).length},pt=function(bt){lt||(lt=bt);var _t=bt-lt,xt=_t/et.dt;it=calStepperVals(et,it,xt),rt(_objectSpread$s(_objectSpread$s(_objectSpread$s({},j),_e),dt())),lt=bt,ft()||(st=requestAnimationFrame(ct))},gt=function(bt){ut||(ut=bt);var _t=(bt-ut)/tt,xt=mapObject(function(Et,St){return alpha.apply(void 0,_toConsumableArray$9(St).concat([et(_t)]))},ot);if(rt(_objectSpread$s(_objectSpread$s(_objectSpread$s({},j),_e),xt)),_t<1)st=requestAnimationFrame(ct);else{var yt=mapObject(function(Et,St){return alpha.apply(void 0,_toConsumableArray$9(St).concat([et(1)]))},ot);rt(_objectSpread$s(_objectSpread$s(_objectSpread$s({},j),_e),yt))}};return ct=et.isStepper?pt:gt,function(){return requestAnimationFrame(ct),function(){cancelAnimationFrame(st)}}};function _typeof$u(j){"@babel/helpers - typeof";return _typeof$u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$u(j)}var _excluded$a=["children","begin","duration","attributeName","easing","isActive","steps","from","to","canBegin","onAnimationEnd","shouldReAnimate","onAnimationReStart"];function _objectWithoutProperties$a(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$a(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$a(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _toConsumableArray$8(j){return _arrayWithoutHoles$8(j)||_iterableToArray$8(j)||_unsupportedIterableToArray$f(j)||_nonIterableSpread$8()}function _nonIterableSpread$8(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$f(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$f(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$f(j,_e)}}function _iterableToArray$8(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$8(j){if(Array.isArray(j))return _arrayLikeToArray$f(j)}function _arrayLikeToArray$f(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function ownKeys$r(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$r(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$8(j){return _getPrototypeOf$8=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$8(j)}var Animate=function(j){_inherits$8(et,j);var _e=_createSuper$8(et);function et(tt,rt){var nt;_classCallCheck$b(this,et),nt=_e.call(this,tt,rt);var ot=nt.props,it=ot.isActive,st=ot.attributeName,lt=ot.from,ut=ot.to,ct=ot.steps,dt=ot.children,ft=ot.duration;if(nt.handleStyleChange=nt.handleStyleChange.bind(_assertThisInitialized$8(nt)),nt.changeStyle=nt.changeStyle.bind(_assertThisInitialized$8(nt)),!it||ft<=0)return nt.state={style:{}},typeof dt=="function"&&(nt.state={style:ut}),_possibleConstructorReturn$8(nt);if(ct&&ct.length)nt.state={style:ct[0].style};else if(lt){if(typeof dt=="function")return nt.state={style:lt},_possibleConstructorReturn$8(nt);nt.state={style:st?_defineProperty$t({},st,lt):lt}}else nt.state={style:{}};return nt}return _createClass$b(et,[{key:"componentDidMount",value:function(){var rt=this.props,nt=rt.isActive,ot=rt.canBegin;this.mounted=!0,!(!nt||!ot)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(rt){var nt=this.props,ot=nt.isActive,it=nt.canBegin,st=nt.attributeName,lt=nt.shouldReAnimate,ut=nt.to,ct=nt.from,dt=this.state.style;if(it){if(!ot){var ft={style:st?_defineProperty$t({},st,ut):ut};this.state&&dt&&(st&&dt[st]!==ut||!st&&dt!==ut)&&this.setState(ft);return}if(!(deepEqual(rt.to,ut)&&rt.canBegin&&rt.isActive)){var pt=!rt.canBegin||!rt.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var gt=pt||lt?ct:rt.to;if(this.state&&dt){var mt={style:st?_defineProperty$t({},st,gt):gt};(st&&[st]!==gt||!st&&dt!==gt)&&this.setState(mt)}this.runAnimation(_objectSpread$r(_objectSpread$r({},this.props),{},{from:gt,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var rt=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),rt&&rt()}},{key:"handleStyleChange",value:function(rt){this.changeStyle(rt)}},{key:"changeStyle",value:function(rt){this.mounted&&this.setState({style:rt})}},{key:"runJSAnimation",value:function(rt){var nt=this,ot=rt.from,it=rt.to,st=rt.duration,lt=rt.easing,ut=rt.begin,ct=rt.onAnimationEnd,dt=rt.onAnimationStart,ft=configUpdate(ot,it,configEasing(lt),st,this.changeStyle),pt=function(){nt.stopJSAnimation=ft()};this.manager.start([dt,ut,pt,st,ct])}},{key:"runStepAnimation",value:function(rt){var nt=this,ot=rt.steps,it=rt.begin,st=rt.onAnimationStart,lt=ot[0],ut=lt.style,ct=lt.duration,dt=ct===void 0?0:ct,ft=function(gt,mt,bt){if(bt===0)return gt;var _t=mt.duration,xt=mt.easing,yt=xt===void 0?"ease":xt,Et=mt.style,St=mt.properties,Tt=mt.onAnimationEnd,kt=bt>0?ot[bt-1]:mt,$t=St||Object.keys(Et);if(typeof yt=="function"||yt==="spring")return[].concat(_toConsumableArray$8(gt),[nt.runJSAnimation.bind(nt,{from:kt.style,to:Et,duration:_t,easing:yt}),_t]);var Ct=getTransitionVal($t,_t,yt),It=_objectSpread$r(_objectSpread$r(_objectSpread$r({},kt.style),Et),{},{transition:Ct});return[].concat(_toConsumableArray$8(gt),[It,_t,Tt]).filter(identity$3)};return this.manager.start([st].concat(_toConsumableArray$8(ot.reduce(ft,[ut,Math.max(dt,it)])),[rt.onAnimationEnd]))}},{key:"runAnimation",value:function(rt){this.manager||(this.manager=createAnimateManager());var nt=rt.begin,ot=rt.duration,it=rt.attributeName,st=rt.to,lt=rt.easing,ut=rt.onAnimationStart,ct=rt.onAnimationEnd,dt=rt.steps,ft=rt.children,pt=this.manager;if(this.unSubscribe=pt.subscribe(this.handleStyleChange),typeof lt=="function"||typeof ft=="function"||lt==="spring"){this.runJSAnimation(rt);return}if(dt.length>1){this.runStepAnimation(rt);return}var gt=it?_defineProperty$t({},it,st):st,mt=getTransitionVal(Object.keys(gt),ot,lt);pt.start([ut,nt,_objectSpread$r(_objectSpread$r({},gt),{},{transition:mt}),ot,ct])}},{key:"render",value:function(){var rt=this.props,nt=rt.children;rt.begin;var ot=rt.duration;rt.attributeName,rt.easing;var it=rt.isActive;rt.steps,rt.from,rt.to,rt.canBegin,rt.onAnimationEnd,rt.shouldReAnimate,rt.onAnimationReStart;var st=_objectWithoutProperties$a(rt,_excluded$a),lt=reactExports.Children.count(nt),ut=translateStyle(this.state.style);if(typeof nt=="function")return nt(ut);if(!it||lt===0||ot<=0)return nt;var ct=function(ft){var pt=ft.props,gt=pt.style,mt=gt===void 0?{}:gt,bt=pt.className,_t=reactExports.cloneElement(ft,_objectSpread$r(_objectSpread$r({},st),{},{style:_objectSpread$r(_objectSpread$r({},mt),ut),className:bt}));return _t};return lt===1?ct(reactExports.Children.only(nt)):React.createElement("div",null,reactExports.Children.map(nt,function(dt){return ct(dt)}))}}]),et}(reactExports.PureComponent);Animate.displayName="Animate";Animate.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function j(){},onAnimationStart:function j(){}};Animate.propTypes={from:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),to:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),attributeName:PropTypes.string,duration:PropTypes.number,begin:PropTypes.number,easing:PropTypes.oneOfType([PropTypes.string,PropTypes.func]),steps:PropTypes.arrayOf(PropTypes.shape({duration:PropTypes.number.isRequired,style:PropTypes.object.isRequired,easing:PropTypes.oneOfType([PropTypes.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),PropTypes.func]),properties:PropTypes.arrayOf("string"),onAnimationEnd:PropTypes.func})),children:PropTypes.oneOfType([PropTypes.node,PropTypes.func]),isActive:PropTypes.bool,canBegin:PropTypes.bool,onAnimationEnd:PropTypes.func,shouldReAnimate:PropTypes.bool,onAnimationStart:PropTypes.func,onAnimationReStart:PropTypes.func};Number.isFinite===void 0&&(Number.isFinite=function(j){return typeof j=="number"&&isFinite(j)});PropTypes.object,PropTypes.object,PropTypes.object,PropTypes.element;PropTypes.object,PropTypes.object,PropTypes.object,PropTypes.oneOfType([PropTypes.array,PropTypes.element]),PropTypes.any;function _typeof$t(j){"@babel/helpers - typeof";return _typeof$t=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$t(j)}function _defineProperty$s(j,_e,et){return _e=_toPropertyKey$t(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$t(j){var _e=_toPrimitive$t(j,"string");return _typeof$t(_e)==="symbol"?_e:String(_e)}function _toPrimitive$t(j,_e){if(_typeof$t(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$t(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var CSS_CLASS_PREFIX="recharts-tooltip-wrapper",TOOLTIP_HIDDEN={visibility:"hidden"};function getTooltipCSSClassName(j){var _e,et=j.coordinate,tt=j.translateX,rt=j.translateY;return clsx(CSS_CLASS_PREFIX,(_e={},_defineProperty$s(_e,"".concat(CSS_CLASS_PREFIX,"-right"),isNumber(tt)&&et&&isNumber(et.x)&&tt>=et.x),_defineProperty$s(_e,"".concat(CSS_CLASS_PREFIX,"-left"),isNumber(tt)&&et&&isNumber(et.x)&&tt=et.y),_defineProperty$s(_e,"".concat(CSS_CLASS_PREFIX,"-top"),isNumber(rt)&&et&&isNumber(et.y)&&rtgt?Math.max(ut,st[tt]):Math.max(ct,st[tt])}function getTransformStyle(j){var _e=j.translateX,et=j.translateY,tt=j.useTranslate3d;return translateStyle({transform:tt?"translate3d(".concat(_e,"px, ").concat(et,"px, 0)"):"translate(".concat(_e,"px, ").concat(et,"px)")})}function getTooltipTranslate(j){var _e=j.allowEscapeViewBox,et=j.coordinate,tt=j.offsetTopLeft,rt=j.position,nt=j.reverseDirection,ot=j.tooltipBox,it=j.useTranslate3d,st=j.viewBox,lt,ut,ct;return ot.height>0&&ot.width>0&&et?(ut=getTooltipTranslateXY({allowEscapeViewBox:_e,coordinate:et,key:"x",offsetTopLeft:tt,position:rt,reverseDirection:nt,tooltipDimension:ot.width,viewBox:st,viewBoxDimension:st.width}),ct=getTooltipTranslateXY({allowEscapeViewBox:_e,coordinate:et,key:"y",offsetTopLeft:tt,position:rt,reverseDirection:nt,tooltipDimension:ot.height,viewBox:st,viewBoxDimension:st.height}),lt=getTransformStyle({translateX:ut,translateY:ct,useTranslate3d:it})):lt=TOOLTIP_HIDDEN,{cssProperties:lt,cssClasses:getTooltipCSSClassName({translateX:ut,translateY:ct,coordinate:et})}}function _typeof$s(j){"@babel/helpers - typeof";return _typeof$s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$s(j)}function ownKeys$q(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$q(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$7(j){return _getPrototypeOf$7=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$7(j)}function _defineProperty$r(j,_e,et){return _e=_toPropertyKey$s(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$s(j){var _e=_toPrimitive$s(j,"string");return _typeof$s(_e)==="symbol"?_e:String(_e)}function _toPrimitive$s(j,_e){if(_typeof$s(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$s(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var EPSILON=1,TooltipBoundingBox=function(j){_inherits$7(et,j);var _e=_createSuper$7(et);function et(){var tt;_classCallCheck$a(this,et);for(var rt=arguments.length,nt=new Array(rt),ot=0;otEPSILON||Math.abs(rt.height-this.lastBoundingBox.height)>EPSILON)&&(this.lastBoundingBox.width=rt.width,this.lastBoundingBox.height=rt.height)}else(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1)}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var rt,nt;this.props.active&&this.updateBBox(),this.state.dismissed&&(((rt=this.props.coordinate)===null||rt===void 0?void 0:rt.x)!==this.state.dismissedAtCoordinate.x||((nt=this.props.coordinate)===null||nt===void 0?void 0:nt.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var rt=this,nt=this.props,ot=nt.active,it=nt.allowEscapeViewBox,st=nt.animationDuration,lt=nt.animationEasing,ut=nt.children,ct=nt.coordinate,dt=nt.hasPayload,ft=nt.isAnimationActive,pt=nt.offset,gt=nt.position,mt=nt.reverseDirection,bt=nt.useTranslate3d,_t=nt.viewBox,xt=nt.wrapperStyle,yt=getTooltipTranslate({allowEscapeViewBox:it,coordinate:ct,offsetTopLeft:pt,position:gt,reverseDirection:mt,tooltipBox:{height:this.lastBoundingBox.height,width:this.lastBoundingBox.width},useTranslate3d:bt,viewBox:_t}),Et=yt.cssClasses,St=yt.cssProperties,Tt=_objectSpread$q(_objectSpread$q(_objectSpread$q({},ft&&ot&&translateStyle({transition:"transform ".concat(st,"ms ").concat(lt)})),St),{},{pointerEvents:"none",visibility:!this.state.dismissed&&ot&&dt?"visible":"hidden",position:"absolute",top:0,left:0},xt);return React.createElement("div",{tabIndex:-1,role:"dialog",className:Et,style:Tt,ref:function($t){rt.wrapperNode=$t}},ut)}}]),et}(reactExports.PureComponent),parseIsSsrByDefault=function j(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Global={isSsr:parseIsSsrByDefault(),get:function j(_e){return Global[_e]},set:function j(_e,et){if(typeof _e=="string")Global[_e]=et;else{var tt=Object.keys(_e);tt&&tt.length&&tt.forEach(function(rt){Global[rt]=_e[rt]})}}};function _typeof$r(j){"@babel/helpers - typeof";return _typeof$r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$r(j)}function ownKeys$p(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$p(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$6(j){return _getPrototypeOf$6=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$6(j)}function _defineProperty$q(j,_e,et){return _e=_toPropertyKey$r(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$r(j){var _e=_toPrimitive$r(j,"string");return _typeof$r(_e)==="symbol"?_e:String(_e)}function _toPrimitive$r(j,_e){if(_typeof$r(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$r(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}function defaultUniqBy(j){return j.dataKey}function renderContent(j,_e){return React.isValidElement(j)?React.cloneElement(j,_e):typeof j=="function"?React.createElement(j,_e):React.createElement(DefaultTooltipContent,_e)}var Tooltip=function(j){_inherits$6(et,j);var _e=_createSuper$6(et);function et(){return _classCallCheck$9(this,et),_e.apply(this,arguments)}return _createClass$9(et,[{key:"render",value:function(){var rt=this.props,nt=rt.active,ot=rt.allowEscapeViewBox,it=rt.animationDuration,st=rt.animationEasing,lt=rt.content,ut=rt.coordinate,ct=rt.filterNull,dt=rt.isAnimationActive,ft=rt.offset,pt=rt.payload,gt=rt.payloadUniqBy,mt=rt.position,bt=rt.reverseDirection,_t=rt.useTranslate3d,xt=rt.viewBox,yt=rt.wrapperStyle,Et=pt??[];ct&&Et.length&&(Et=getUniqPayload(pt.filter(function(Tt){return Tt.value!=null}),gt,defaultUniqBy));var St=Et.length>0;return React.createElement(TooltipBoundingBox,{allowEscapeViewBox:ot,animationDuration:it,animationEasing:st,isAnimationActive:dt,active:nt,coordinate:ut,hasPayload:St,offset:ft,position:mt,reverseDirection:bt,useTranslate3d:_t,viewBox:xt,wrapperStyle:yt},renderContent(lt,_objectSpread$p(_objectSpread$p({},this.props),{},{payload:Et})))}}]),et}(reactExports.PureComponent);_defineProperty$q(Tooltip,"displayName","Tooltip");_defineProperty$q(Tooltip,"defaultProps",{allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Global.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var isObject$1=isObject_1,now=now_1,toNumber=toNumber_1,FUNC_ERROR_TEXT$1="Expected a function",nativeMax=Math.max,nativeMin=Math.min;function debounce$1(j,_e,et){var tt,rt,nt,ot,it,st,lt=0,ut=!1,ct=!1,dt=!0;if(typeof j!="function")throw new TypeError(FUNC_ERROR_TEXT$1);_e=toNumber(_e)||0,isObject$1(et)&&(ut=!!et.leading,ct="maxWait"in et,nt=ct?nativeMax(toNumber(et.maxWait)||0,_e):nt,dt="trailing"in et?!!et.trailing:dt);function ft(St){var Tt=tt,kt=rt;return tt=rt=void 0,lt=St,ot=j.apply(kt,Tt),ot}function pt(St){return lt=St,it=setTimeout(bt,_e),ut?ft(St):ot}function gt(St){var Tt=St-st,kt=St-lt,$t=_e-Tt;return ct?nativeMin($t,nt-kt):$t}function mt(St){var Tt=St-st,kt=St-lt;return st===void 0||Tt>=_e||Tt<0||ct&&kt>=nt}function bt(){var St=now();if(mt(St))return _t(St);it=setTimeout(bt,gt(St))}function _t(St){return it=void 0,dt&&tt?ft(St):(tt=rt=void 0,ot)}function xt(){it!==void 0&&clearTimeout(it),lt=0,tt=st=rt=it=void 0}function yt(){return it===void 0?ot:_t(now())}function Et(){var St=now(),Tt=mt(St);if(tt=arguments,rt=this,st=St,Tt){if(it===void 0)return pt(st);if(ct)return clearTimeout(it),it=setTimeout(bt,_e),ft(st)}return it===void 0&&(it=setTimeout(bt,_e)),ot}return Et.cancel=xt,Et.flush=yt,Et}var debounce_1=debounce$1,debounce=debounce_1,isObject=isObject_1,FUNC_ERROR_TEXT="Expected a function";function throttle(j,_e,et){var tt=!0,rt=!0;if(typeof j!="function")throw new TypeError(FUNC_ERROR_TEXT);return isObject(et)&&(tt="leading"in et?!!et.leading:tt,rt="trailing"in et?!!et.trailing:rt),debounce(j,_e,{leading:tt,maxWait:_e,trailing:rt})}var throttle_1=throttle;const throttle$1=getDefaultExportFromCjs(throttle_1);var Cell=function j(_e){return null};Cell.displayName="Cell";function _typeof$q(j){"@babel/helpers - typeof";return _typeof$q=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$q(j)}function ownKeys$o(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$o(j){for(var _e=1;_e1&&arguments[1]!==void 0?arguments[1]:{};if(_e==null||Global.isSsr)return{width:0,height:0};var tt=removeInvalidKeys(et),rt=JSON.stringify({text:_e,copyStyle:tt});if(stringCache.widthCache[rt])return stringCache.widthCache[rt];try{var nt=document.getElementById(MEASUREMENT_SPAN_ID);nt||(nt=document.createElement("span"),nt.setAttribute("id",MEASUREMENT_SPAN_ID),nt.setAttribute("aria-hidden","true"),document.body.appendChild(nt));var ot=_objectSpread$o(_objectSpread$o({},SPAN_STYLE),tt);Object.assign(nt.style,ot),nt.textContent="".concat(_e);var it=nt.getBoundingClientRect(),st={width:it.width,height:it.height};return stringCache.widthCache[rt]=st,++stringCache.cacheCount>MAX_CACHE_NUM&&(stringCache.cacheCount=0,stringCache.widthCache={}),st}catch{return{width:0,height:0}}},getOffset=function j(_e){return{top:_e.top+window.scrollY-document.documentElement.clientTop,left:_e.left+window.scrollX-document.documentElement.clientLeft}};function _typeof$p(j){"@babel/helpers - typeof";return _typeof$p=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$p(j)}function _slicedToArray$8(j,_e){return _arrayWithHoles$8(j)||_iterableToArrayLimit$8(j,_e)||_unsupportedIterableToArray$e(j,_e)||_nonIterableRest$8()}function _nonIterableRest$8(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$e(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$e(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$e(j,_e)}}function _arrayLikeToArray$e(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$8(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$8(j){if(Array.isArray(j))return j}function _classCallCheck$8(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$8(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey$p(tt.key),tt)}}function _createClass$8(j,_e,et){return _e&&_defineProperties$8(j.prototype,_e),et&&_defineProperties$8(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _toPropertyKey$p(j){var _e=_toPrimitive$p(j,"string");return _typeof$p(_e)==="symbol"?_e:String(_e)}function _toPrimitive$p(j,_e){if(_typeof$p(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$p(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var MULTIPLY_OR_DIVIDE_REGEX=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,ADD_OR_SUBTRACT_REGEX=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,CSS_LENGTH_UNIT_REGEX=/^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/,NUM_SPLIT_REGEX=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,CONVERSION_RATES={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},FIXED_CSS_LENGTH_UNITS=Object.keys(CONVERSION_RATES),STR_NAN="NaN";function convertToPx(j,_e){return j*CONVERSION_RATES[_e]}var DecimalCSS=function(){function j(_e,et){_classCallCheck$8(this,j),this.num=_e,this.unit=et,this.num=_e,this.unit=et,Number.isNaN(_e)&&(this.unit=""),et!==""&&!CSS_LENGTH_UNIT_REGEX.test(et)&&(this.num=NaN,this.unit=""),FIXED_CSS_LENGTH_UNITS.includes(et)&&(this.num=convertToPx(_e,et),this.unit="px")}return _createClass$8(j,[{key:"add",value:function(et){return this.unit!==et.unit?new j(NaN,""):new j(this.num+et.num,this.unit)}},{key:"subtract",value:function(et){return this.unit!==et.unit?new j(NaN,""):new j(this.num-et.num,this.unit)}},{key:"multiply",value:function(et){return this.unit!==""&&et.unit!==""&&this.unit!==et.unit?new j(NaN,""):new j(this.num*et.num,this.unit||et.unit)}},{key:"divide",value:function(et){return this.unit!==""&&et.unit!==""&&this.unit!==et.unit?new j(NaN,""):new j(this.num/et.num,this.unit||et.unit)}},{key:"toString",value:function(){return"".concat(this.num).concat(this.unit)}},{key:"isNaN",value:function(){return Number.isNaN(this.num)}}],[{key:"parse",value:function(et){var tt,rt=(tt=NUM_SPLIT_REGEX.exec(et))!==null&&tt!==void 0?tt:[],nt=_slicedToArray$8(rt,3),ot=nt[1],it=nt[2];return new j(parseFloat(ot),it??"")}}]),j}();function calculateArithmetic(j){if(j.includes(STR_NAN))return STR_NAN;for(var _e=j;_e.includes("*")||_e.includes("/");){var et,tt=(et=MULTIPLY_OR_DIVIDE_REGEX.exec(_e))!==null&&et!==void 0?et:[],rt=_slicedToArray$8(tt,4),nt=rt[1],ot=rt[2],it=rt[3],st=DecimalCSS.parse(nt??""),lt=DecimalCSS.parse(it??""),ut=ot==="*"?st.multiply(lt):st.divide(lt);if(ut.isNaN())return STR_NAN;_e=_e.replace(MULTIPLY_OR_DIVIDE_REGEX,ut.toString())}for(;_e.includes("+")||/.-\d+(?:\.\d+)?/.test(_e);){var ct,dt=(ct=ADD_OR_SUBTRACT_REGEX.exec(_e))!==null&&ct!==void 0?ct:[],ft=_slicedToArray$8(dt,4),pt=ft[1],gt=ft[2],mt=ft[3],bt=DecimalCSS.parse(pt??""),_t=DecimalCSS.parse(mt??""),xt=gt==="+"?bt.add(_t):bt.subtract(_t);if(xt.isNaN())return STR_NAN;_e=_e.replace(ADD_OR_SUBTRACT_REGEX,xt.toString())}return _e}var PARENTHESES_REGEX=/\(([^()]*)\)/;function calculateParentheses(j){for(var _e=j;_e.includes("(");){var et=PARENTHESES_REGEX.exec(_e),tt=_slicedToArray$8(et,2),rt=tt[1];_e=_e.replace(PARENTHESES_REGEX,calculateArithmetic(rt))}return _e}function evaluateExpression(j){var _e=j.replace(/\s+/g,"");return _e=calculateParentheses(_e),_e=calculateArithmetic(_e),_e}function safeEvaluateExpression(j){try{return evaluateExpression(j)}catch{return STR_NAN}}function reduceCSSCalc(j){var _e=safeEvaluateExpression(j.slice(5,-1));return _e===STR_NAN?"":_e}var _excluded$9=["x","y","lineHeight","capHeight","scaleToFit","textAnchor","verticalAnchor","fill"],_excluded2$4=["dx","dy","angle","className","breakAll"];function _extends$j(){return _extends$j=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$9(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _slicedToArray$7(j,_e){return _arrayWithHoles$7(j)||_iterableToArrayLimit$7(j,_e)||_unsupportedIterableToArray$d(j,_e)||_nonIterableRest$7()}function _nonIterableRest$7(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$d(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$d(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$d(j,_e)}}function _arrayLikeToArray$d(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$7(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$7(j){if(Array.isArray(j))return j}var BREAKING_SPACES=/[ \f\n\r\t\v\u2028\u2029]+/,calculateWordWidths=function j(_e){var et=_e.children,tt=_e.breakAll,rt=_e.style;try{var nt=[];isNil$1(et)||(tt?nt=et.toString().split(""):nt=et.toString().split(BREAKING_SPACES));var ot=nt.map(function(st){return{word:st,width:getStringSize(st,rt).width}}),it=tt?0:getStringSize(" ",rt).width;return{wordsWithComputedWidth:ot,spaceWidth:it}}catch{return null}},calculateWordsByLines=function j(_e,et,tt,rt,nt){var ot=_e.maxLines,it=_e.children,st=_e.style,lt=_e.breakAll,ut=isNumber(ot),ct=it,dt=function(){var Mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return Mt.reduce(function(Rt,Lt){var Pt=Lt.word,Gt=Lt.width,qt=Rt[Rt.length-1];if(qt&&(rt==null||nt||qt.width+Gt+ttLt.width?Rt:Lt})};if(!ut)return ft;for(var gt="…",mt=function(Mt){var Rt=ct.slice(0,Mt),Lt=calculateWordWidths({breakAll:lt,style:st,children:Rt+gt}).wordsWithComputedWidth,Pt=dt(Lt),Gt=Pt.length>ot||pt(Pt).width>Number(rt);return[Gt,Pt]},bt=0,_t=ct.length-1,xt=0,yt;bt<=_t&&xt<=ct.length-1;){var Et=Math.floor((bt+_t)/2),St=Et-1,Tt=mt(St),kt=_slicedToArray$7(Tt,2),$t=kt[0],Ct=kt[1],It=mt(Et),Nt=_slicedToArray$7(It,1),Ot=Nt[0];if(!$t&&!Ot&&(bt=Et+1),$t&&Ot&&(_t=Et-1),!$t&&Ot){yt=Ct;break}xt++}return yt||ft},getWordsWithoutCalculate=function j(_e){var et=isNil$1(_e)?[]:_e.toString().split(BREAKING_SPACES);return[{words:et}]},getWordsByLines=function j(_e){var et=_e.width,tt=_e.scaleToFit,rt=_e.children,nt=_e.style,ot=_e.breakAll,it=_e.maxLines;if((et||tt)&&!Global.isSsr){var st,lt,ut=calculateWordWidths({breakAll:ot,children:rt,style:nt});if(ut){var ct=ut.wordsWithComputedWidth,dt=ut.spaceWidth;st=ct,lt=dt}else return getWordsWithoutCalculate(rt);return calculateWordsByLines({breakAll:ot,children:rt,maxLines:it,style:nt},st,lt,et,tt)}return getWordsWithoutCalculate(rt)},DEFAULT_FILL="#808080",Text$1=function j(_e){var et=_e.x,tt=et===void 0?0:et,rt=_e.y,nt=rt===void 0?0:rt,ot=_e.lineHeight,it=ot===void 0?"1em":ot,st=_e.capHeight,lt=st===void 0?"0.71em":st,ut=_e.scaleToFit,ct=ut===void 0?!1:ut,dt=_e.textAnchor,ft=dt===void 0?"start":dt,pt=_e.verticalAnchor,gt=pt===void 0?"end":pt,mt=_e.fill,bt=mt===void 0?DEFAULT_FILL:mt,_t=_objectWithoutProperties$9(_e,_excluded$9),xt=reactExports.useMemo(function(){return getWordsByLines({breakAll:_t.breakAll,children:_t.children,maxLines:_t.maxLines,scaleToFit:ct,style:_t.style,width:_t.width})},[_t.breakAll,_t.children,_t.maxLines,ct,_t.style,_t.width]),yt=_t.dx,Et=_t.dy,St=_t.angle,Tt=_t.className,kt=_t.breakAll,$t=_objectWithoutProperties$9(_t,_excluded2$4);if(!isNumOrStr(tt)||!isNumOrStr(nt))return null;var Ct=tt+(isNumber(yt)?yt:0),It=nt+(isNumber(Et)?Et:0),Nt;switch(gt){case"start":Nt=reduceCSSCalc("calc(".concat(lt,")"));break;case"middle":Nt=reduceCSSCalc("calc(".concat((xt.length-1)/2," * -").concat(it," + (").concat(lt," / 2))"));break;default:Nt=reduceCSSCalc("calc(".concat(xt.length-1," * -").concat(it,")"));break}var Ot=[];if(ct){var jt=xt[0].width,Mt=_t.width;Ot.push("scale(".concat((isNumber(Mt)?Mt/jt:1)/jt,")"))}return St&&Ot.push("rotate(".concat(St,", ").concat(Ct,", ").concat(It,")")),Ot.length&&($t.transform=Ot.join(" ")),React.createElement("text",_extends$j({},filterProps($t,!0),{x:Ct,y:It,className:clsx("recharts-text",Tt),textAnchor:ft,fill:bt.includes("url")?DEFAULT_FILL:bt}),xt.map(function(Rt,Lt){var Pt=Rt.words.join(kt?"":" ");return React.createElement("tspan",{x:Ct,dy:Lt===0?Nt:it,key:Pt},Pt)}))};function ascending(j,_e){return j==null||_e==null?NaN:j<_e?-1:j>_e?1:j>=_e?0:NaN}function descending(j,_e){return j==null||_e==null?NaN:_ej?1:_e>=j?0:NaN}function bisector(j){let _e,et,tt;j.length!==2?(_e=ascending,et=(it,st)=>ascending(j(it),st),tt=(it,st)=>j(it)-st):(_e=j===ascending||j===descending?j:zero$1,et=j,tt=j);function rt(it,st,lt=0,ut=it.length){if(lt>>1;et(it[ct],st)<0?lt=ct+1:ut=ct}while(lt>>1;et(it[ct],st)<=0?lt=ct+1:ut=ct}while(ltlt&&tt(it[ct-1],st)>-tt(it[ct],st)?ct-1:ct}return{left:rt,center:ot,right:nt}}function zero$1(){return 0}function number$2(j){return j===null?NaN:+j}function*numbers(j,_e){if(_e===void 0)for(let et of j)et!=null&&(et=+et)>=et&&(yield et);else{let et=-1;for(let tt of j)(tt=_e(tt,++et,j))!=null&&(tt=+tt)>=tt&&(yield tt)}}const ascendingBisect=bisector(ascending),bisectRight=ascendingBisect.right;bisector(number$2).center;const bisect=bisectRight;class InternMap extends Map{constructor(_e,et=keyof){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:et}}),_e!=null)for(const[tt,rt]of _e)this.set(tt,rt)}get(_e){return super.get(intern_get(this,_e))}has(_e){return super.has(intern_get(this,_e))}set(_e,et){return super.set(intern_set(this,_e),et)}delete(_e){return super.delete(intern_delete(this,_e))}}function intern_get({_intern:j,_key:_e},et){const tt=_e(et);return j.has(tt)?j.get(tt):et}function intern_set({_intern:j,_key:_e},et){const tt=_e(et);return j.has(tt)?j.get(tt):(j.set(tt,et),et)}function intern_delete({_intern:j,_key:_e},et){const tt=_e(et);return j.has(tt)&&(et=j.get(tt),j.delete(tt)),et}function keyof(j){return j!==null&&typeof j=="object"?j.valueOf():j}function compareDefined(j=ascending){if(j===ascending)return ascendingDefined;if(typeof j!="function")throw new TypeError("compare is not a function");return(_e,et)=>{const tt=j(_e,et);return tt||tt===0?tt:(j(et,et)===0)-(j(_e,_e)===0)}}function ascendingDefined(j,_e){return(j==null||!(j>=j))-(_e==null||!(_e>=_e))||(j<_e?-1:j>_e?1:0)}const e10=Math.sqrt(50),e5=Math.sqrt(10),e2=Math.sqrt(2);function tickSpec(j,_e,et){const tt=(_e-j)/Math.max(0,et),rt=Math.floor(Math.log10(tt)),nt=tt/Math.pow(10,rt),ot=nt>=e10?10:nt>=e5?5:nt>=e2?2:1;let it,st,lt;return rt<0?(lt=Math.pow(10,-rt)/ot,it=Math.round(j*lt),st=Math.round(_e*lt),it/lt_e&&--st,lt=-lt):(lt=Math.pow(10,rt)*ot,it=Math.round(j/lt),st=Math.round(_e/lt),it*lt_e&&--st),st0))return[];if(j===_e)return[j];const tt=_e=rt))return[];const it=nt-rt+1,st=new Array(it);if(tt)if(ot<0)for(let lt=0;lt=tt)&&(et=tt);else{let tt=-1;for(let rt of j)(rt=_e(rt,++tt,j))!=null&&(et=rt)&&(et=rt)}return et}function min(j,_e){let et;if(_e===void 0)for(const tt of j)tt!=null&&(et>tt||et===void 0&&tt>=tt)&&(et=tt);else{let tt=-1;for(let rt of j)(rt=_e(rt,++tt,j))!=null&&(et>rt||et===void 0&&rt>=rt)&&(et=rt)}return et}function quickselect(j,_e,et=0,tt=1/0,rt){if(_e=Math.floor(_e),et=Math.floor(Math.max(0,et)),tt=Math.floor(Math.min(j.length-1,tt)),!(et<=_e&&_e<=tt))return j;for(rt=rt===void 0?ascendingDefined:compareDefined(rt);tt>et;){if(tt-et>600){const st=tt-et+1,lt=_e-et+1,ut=Math.log(st),ct=.5*Math.exp(2*ut/3),dt=.5*Math.sqrt(ut*ct*(st-ct)/st)*(lt-st/2<0?-1:1),ft=Math.max(et,Math.floor(_e-lt*ct/st+dt)),pt=Math.min(tt,Math.floor(_e+(st-lt)*ct/st+dt));quickselect(j,_e,ft,pt,rt)}const nt=j[_e];let ot=et,it=tt;for(swap(j,et,_e),rt(j[tt],nt)>0&&swap(j,et,tt);ot0;)--it}rt(j[et],nt)===0?swap(j,et,it):(++it,swap(j,it,tt)),it<=_e&&(et=it+1),_e<=it&&(tt=it-1)}return j}function swap(j,_e,et){const tt=j[_e];j[_e]=j[et],j[et]=tt}function quantile$1(j,_e,et){if(j=Float64Array.from(numbers(j,et)),!(!(tt=j.length)||isNaN(_e=+_e))){if(_e<=0||tt<2)return min(j);if(_e>=1)return max(j);var tt,rt=(tt-1)*_e,nt=Math.floor(rt),ot=max(quickselect(j,nt).subarray(0,nt+1)),it=min(j.subarray(nt+1));return ot+(it-ot)*(rt-nt)}}function quantileSorted(j,_e,et=number$2){if(!(!(tt=j.length)||isNaN(_e=+_e))){if(_e<=0||tt<2)return+et(j[0],0,j);if(_e>=1)return+et(j[tt-1],tt-1,j);var tt,rt=(tt-1)*_e,nt=Math.floor(rt),ot=+et(j[nt],nt,j),it=+et(j[nt+1],nt+1,j);return ot+(it-ot)*(rt-nt)}}function range$1(j,_e,et){j=+j,_e=+_e,et=(rt=arguments.length)<2?(_e=j,j=0,1):rt<3?1:+et;for(var tt=-1,rt=Math.max(0,Math.ceil((_e-j)/et))|0,nt=new Array(rt);++tt>8&15|_e>>4&240,_e>>4&15|_e&240,(_e&15)<<4|_e&15,1):et===8?rgba(_e>>24&255,_e>>16&255,_e>>8&255,(_e&255)/255):et===4?rgba(_e>>12&15|_e>>8&240,_e>>8&15|_e>>4&240,_e>>4&15|_e&240,((_e&15)<<4|_e&15)/255):null):(_e=reRgbInteger.exec(j))?new Rgb(_e[1],_e[2],_e[3],1):(_e=reRgbPercent.exec(j))?new Rgb(_e[1]*255/100,_e[2]*255/100,_e[3]*255/100,1):(_e=reRgbaInteger.exec(j))?rgba(_e[1],_e[2],_e[3],_e[4]):(_e=reRgbaPercent.exec(j))?rgba(_e[1]*255/100,_e[2]*255/100,_e[3]*255/100,_e[4]):(_e=reHslPercent.exec(j))?hsla(_e[1],_e[2]/100,_e[3]/100,1):(_e=reHslaPercent.exec(j))?hsla(_e[1],_e[2]/100,_e[3]/100,_e[4]):named.hasOwnProperty(j)?rgbn(named[j]):j==="transparent"?new Rgb(NaN,NaN,NaN,0):null}function rgbn(j){return new Rgb(j>>16&255,j>>8&255,j&255,1)}function rgba(j,_e,et,tt){return tt<=0&&(j=_e=et=NaN),new Rgb(j,_e,et,tt)}function rgbConvert(j){return j instanceof Color||(j=color(j)),j?(j=j.rgb(),new Rgb(j.r,j.g,j.b,j.opacity)):new Rgb}function rgb$1(j,_e,et,tt){return arguments.length===1?rgbConvert(j):new Rgb(j,_e,et,tt??1)}function Rgb(j,_e,et,tt){this.r=+j,this.g=+_e,this.b=+et,this.opacity=+tt}define(Rgb,rgb$1,extend(Color,{brighter(j){return j=j==null?brighter:Math.pow(brighter,j),new Rgb(this.r*j,this.g*j,this.b*j,this.opacity)},darker(j){return j=j==null?darker:Math.pow(darker,j),new Rgb(this.r*j,this.g*j,this.b*j,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb}));function rgb_formatHex(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}`}function rgb_formatHex8(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb(){const j=clampa(this.opacity);return`${j===1?"rgb(":"rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${j===1?")":`, ${j})`}`}function clampa(j){return isNaN(j)?1:Math.max(0,Math.min(1,j))}function clampi(j){return Math.max(0,Math.min(255,Math.round(j)||0))}function hex(j){return j=clampi(j),(j<16?"0":"")+j.toString(16)}function hsla(j,_e,et,tt){return tt<=0?j=_e=et=NaN:et<=0||et>=1?j=_e=NaN:_e<=0&&(j=NaN),new Hsl(j,_e,et,tt)}function hslConvert(j){if(j instanceof Hsl)return new Hsl(j.h,j.s,j.l,j.opacity);if(j instanceof Color||(j=color(j)),!j)return new Hsl;if(j instanceof Hsl)return j;j=j.rgb();var _e=j.r/255,et=j.g/255,tt=j.b/255,rt=Math.min(_e,et,tt),nt=Math.max(_e,et,tt),ot=NaN,it=nt-rt,st=(nt+rt)/2;return it?(_e===nt?ot=(et-tt)/it+(et0&&st<1?0:ot,new Hsl(ot,it,st,j.opacity)}function hsl(j,_e,et,tt){return arguments.length===1?hslConvert(j):new Hsl(j,_e,et,tt??1)}function Hsl(j,_e,et,tt){this.h=+j,this.s=+_e,this.l=+et,this.opacity=+tt}define(Hsl,hsl,extend(Color,{brighter(j){return j=j==null?brighter:Math.pow(brighter,j),new Hsl(this.h,this.s,this.l*j,this.opacity)},darker(j){return j=j==null?darker:Math.pow(darker,j),new Hsl(this.h,this.s,this.l*j,this.opacity)},rgb(){var j=this.h%360+(this.h<0)*360,_e=isNaN(j)||isNaN(this.s)?0:this.s,et=this.l,tt=et+(et<.5?et:1-et)*_e,rt=2*et-tt;return new Rgb(hsl2rgb(j>=240?j-240:j+120,rt,tt),hsl2rgb(j,rt,tt),hsl2rgb(j<120?j+240:j-120,rt,tt),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const j=clampa(this.opacity);return`${j===1?"hsl(":"hsla("}${clamph(this.h)}, ${clampt(this.s)*100}%, ${clampt(this.l)*100}%${j===1?")":`, ${j})`}`}}));function clamph(j){return j=(j||0)%360,j<0?j+360:j}function clampt(j){return Math.max(0,Math.min(1,j||0))}function hsl2rgb(j,_e,et){return(j<60?_e+(et-_e)*j/60:j<180?et:j<240?_e+(et-_e)*(240-j)/60:_e)*255}const constant=j=>()=>j;function linear$1(j,_e){return function(et){return j+et*_e}}function exponential(j,_e,et){return j=Math.pow(j,et),_e=Math.pow(_e,et)-j,et=1/et,function(tt){return Math.pow(j+tt*_e,et)}}function gamma(j){return(j=+j)==1?nogamma:function(_e,et){return et-_e?exponential(_e,et,j):constant(isNaN(_e)?et:_e)}}function nogamma(j,_e){var et=_e-j;return et?linear$1(j,et):constant(isNaN(j)?_e:j)}const rgb=function j(_e){var et=gamma(_e);function tt(rt,nt){var ot=et((rt=rgb$1(rt)).r,(nt=rgb$1(nt)).r),it=et(rt.g,nt.g),st=et(rt.b,nt.b),lt=nogamma(rt.opacity,nt.opacity);return function(ut){return rt.r=ot(ut),rt.g=it(ut),rt.b=st(ut),rt.opacity=lt(ut),rt+""}}return tt.gamma=j,tt}(1);function numberArray(j,_e){_e||(_e=[]);var et=j?Math.min(_e.length,j.length):0,tt=_e.slice(),rt;return function(nt){for(rt=0;rtet&&(nt=_e.slice(et,nt),it[ot]?it[ot]+=nt:it[++ot]=nt),(tt=tt[0])===(rt=rt[0])?it[ot]?it[ot]+=rt:it[++ot]=rt:(it[++ot]=null,st.push({i:ot,x:interpolateNumber$1(tt,rt)})),et=reB.lastIndex;return et<_e.length&&(nt=_e.slice(et),it[ot]?it[ot]+=nt:it[++ot]=nt),it.length<2?st[0]?one(st[0].x):zero(_e):(_e=st.length,function(lt){for(var ut=0,ct;ut<_e;++ut)it[(ct=st[ut]).i]=ct.x(lt);return it.join("")})}function interpolate(j,_e){var et=typeof _e,tt;return _e==null||et==="boolean"?constant(_e):(et==="number"?interpolateNumber$1:et==="string"?(tt=color(_e))?(_e=tt,rgb):string:_e instanceof color?rgb:_e instanceof Date?date$1:isNumberArray(_e)?numberArray:Array.isArray(_e)?genericArray:typeof _e.valueOf!="function"&&typeof _e.toString!="function"||isNaN(_e)?object:interpolateNumber$1)(j,_e)}function interpolateRound(j,_e){return j=+j,_e=+_e,function(et){return Math.round(j*(1-et)+_e*et)}}function piecewise(j,_e){_e===void 0&&(_e=j,j=interpolate);for(var et=0,tt=_e.length-1,rt=_e[0],nt=new Array(tt<0?0:tt);et_e&&(et=j,j=_e,_e=et),function(tt){return Math.max(j,Math.min(_e,tt))}}function bimap(j,_e,et){var tt=j[0],rt=j[1],nt=_e[0],ot=_e[1];return rt2?polymap:bimap,st=lt=null,ct}function ct(dt){return dt==null||isNaN(dt=+dt)?nt:(st||(st=it(j.map(tt),_e,et)))(tt(ot(dt)))}return ct.invert=function(dt){return ot(rt((lt||(lt=it(_e,j.map(tt),interpolateNumber$1)))(dt)))},ct.domain=function(dt){return arguments.length?(j=Array.from(dt,number$1),ut()):j.slice()},ct.range=function(dt){return arguments.length?(_e=Array.from(dt),ut()):_e.slice()},ct.rangeRound=function(dt){return _e=Array.from(dt),et=interpolateRound,ut()},ct.clamp=function(dt){return arguments.length?(ot=dt?!0:identity$2,ut()):ot!==identity$2},ct.interpolate=function(dt){return arguments.length?(et=dt,ut()):et},ct.unknown=function(dt){return arguments.length?(nt=dt,ct):nt},function(dt,ft){return tt=dt,rt=ft,ut()}}function continuous(){return transformer$2()(identity$2,identity$2)}function tickFormat(j,_e,et,tt){var rt=tickStep(j,_e,et),nt;switch(tt=formatSpecifier(tt??",f"),tt.type){case"s":{var ot=Math.max(Math.abs(j),Math.abs(_e));return tt.precision==null&&!isNaN(nt=precisionPrefix(rt,ot))&&(tt.precision=nt),formatPrefix(tt,ot)}case"":case"e":case"g":case"p":case"r":{tt.precision==null&&!isNaN(nt=precisionRound(rt,Math.max(Math.abs(j),Math.abs(_e))))&&(tt.precision=nt-(tt.type==="e"));break}case"f":case"%":{tt.precision==null&&!isNaN(nt=precisionFixed(rt))&&(tt.precision=nt-(tt.type==="%")*2);break}}return format(tt)}function linearish(j){var _e=j.domain;return j.ticks=function(et){var tt=_e();return ticks(tt[0],tt[tt.length-1],et??10)},j.tickFormat=function(et,tt){var rt=_e();return tickFormat(rt[0],rt[rt.length-1],et??10,tt)},j.nice=function(et){et==null&&(et=10);var tt=_e(),rt=0,nt=tt.length-1,ot=tt[rt],it=tt[nt],st,lt,ut=10;for(it0;){if(lt=tickIncrement(ot,it,et),lt===st)return tt[rt]=ot,tt[nt]=it,_e(tt);if(lt>0)ot=Math.floor(ot/lt)*lt,it=Math.ceil(it/lt)*lt;else if(lt<0)ot=Math.ceil(ot*lt)/lt,it=Math.floor(it*lt)/lt;else break;st=lt}return j},j}function linear(){var j=continuous();return j.copy=function(){return copy$1(j,linear())},initRange.apply(j,arguments),linearish(j)}function identity$1(j){var _e;function et(tt){return tt==null||isNaN(tt=+tt)?_e:tt}return et.invert=et,et.domain=et.range=function(tt){return arguments.length?(j=Array.from(tt,number$1),et):j.slice()},et.unknown=function(tt){return arguments.length?(_e=tt,et):_e},et.copy=function(){return identity$1(j).unknown(_e)},j=arguments.length?Array.from(j,number$1):[0,1],linearish(et)}function nice(j,_e){j=j.slice();var et=0,tt=j.length-1,rt=j[et],nt=j[tt],ot;return ntMath.pow(j,_e)}function logp(j){return j===Math.E?Math.log:j===10&&Math.log10||j===2&&Math.log2||(j=Math.log(j),_e=>Math.log(_e)/j)}function reflect(j){return(_e,et)=>-j(-_e,et)}function loggish(j){const _e=j(transformLog,transformExp),et=_e.domain;let tt=10,rt,nt;function ot(){return rt=logp(tt),nt=powp(tt),et()[0]<0?(rt=reflect(rt),nt=reflect(nt),j(transformLogn,transformExpn)):j(transformLog,transformExp),_e}return _e.base=function(it){return arguments.length?(tt=+it,ot()):tt},_e.domain=function(it){return arguments.length?(et(it),ot()):et()},_e.ticks=it=>{const st=et();let lt=st[0],ut=st[st.length-1];const ct=ut0){for(;dt<=ft;++dt)for(pt=1;ptut)break;bt.push(gt)}}else for(;dt<=ft;++dt)for(pt=tt-1;pt>=1;--pt)if(gt=dt>0?pt/nt(-dt):pt*nt(dt),!(gtut)break;bt.push(gt)}bt.length*2{if(it==null&&(it=10),st==null&&(st=tt===10?"s":","),typeof st!="function"&&(!(tt%1)&&(st=formatSpecifier(st)).precision==null&&(st.trim=!0),st=format(st)),it===1/0)return st;const lt=Math.max(1,tt*it/_e.ticks().length);return ut=>{let ct=ut/nt(Math.round(rt(ut)));return ct*ttet(nice(et(),{floor:it=>nt(Math.floor(rt(it))),ceil:it=>nt(Math.ceil(rt(it)))})),_e}function log(){const j=loggish(transformer$2()).domain([1,10]);return j.copy=()=>copy$1(j,log()).base(j.base()),initRange.apply(j,arguments),j}function transformSymlog(j){return function(_e){return Math.sign(_e)*Math.log1p(Math.abs(_e/j))}}function transformSymexp(j){return function(_e){return Math.sign(_e)*Math.expm1(Math.abs(_e))*j}}function symlogish(j){var _e=1,et=j(transformSymlog(_e),transformSymexp(_e));return et.constant=function(tt){return arguments.length?j(transformSymlog(_e=+tt),transformSymexp(_e)):_e},linearish(et)}function symlog(){var j=symlogish(transformer$2());return j.copy=function(){return copy$1(j,symlog()).constant(j.constant())},initRange.apply(j,arguments)}function transformPow(j){return function(_e){return _e<0?-Math.pow(-_e,j):Math.pow(_e,j)}}function transformSqrt(j){return j<0?-Math.sqrt(-j):Math.sqrt(j)}function transformSquare(j){return j<0?-j*j:j*j}function powish(j){var _e=j(identity$2,identity$2),et=1;function tt(){return et===1?j(identity$2,identity$2):et===.5?j(transformSqrt,transformSquare):j(transformPow(et),transformPow(1/et))}return _e.exponent=function(rt){return arguments.length?(et=+rt,tt()):et},linearish(_e)}function pow(){var j=powish(transformer$2());return j.copy=function(){return copy$1(j,pow()).exponent(j.exponent())},initRange.apply(j,arguments),j}function sqrt(){return pow.apply(null,arguments).exponent(.5)}function square(j){return Math.sign(j)*j*j}function unsquare(j){return Math.sign(j)*Math.sqrt(Math.abs(j))}function radial(){var j=continuous(),_e=[0,1],et=!1,tt;function rt(nt){var ot=unsquare(j(nt));return isNaN(ot)?tt:et?Math.round(ot):ot}return rt.invert=function(nt){return j.invert(square(nt))},rt.domain=function(nt){return arguments.length?(j.domain(nt),rt):j.domain()},rt.range=function(nt){return arguments.length?(j.range((_e=Array.from(nt,number$1)).map(square)),rt):_e.slice()},rt.rangeRound=function(nt){return rt.range(nt).round(!0)},rt.round=function(nt){return arguments.length?(et=!!nt,rt):et},rt.clamp=function(nt){return arguments.length?(j.clamp(nt),rt):j.clamp()},rt.unknown=function(nt){return arguments.length?(tt=nt,rt):tt},rt.copy=function(){return radial(j.domain(),_e).round(et).clamp(j.clamp()).unknown(tt)},initRange.apply(rt,arguments),linearish(rt)}function quantile(){var j=[],_e=[],et=[],tt;function rt(){var ot=0,it=Math.max(1,_e.length);for(et=new Array(it-1);++ot0?et[it-1]:j[0],it=et?[tt[et-1],_e]:[tt[lt-1],tt[lt]]},ot.unknown=function(st){return arguments.length&&(nt=st),ot},ot.thresholds=function(){return tt.slice()},ot.copy=function(){return quantize().domain([j,_e]).range(rt).unknown(nt)},initRange.apply(linearish(ot),arguments)}function threshold(){var j=[.5],_e=[0,1],et,tt=1;function rt(nt){return nt!=null&&nt<=nt?_e[bisect(j,nt,0,tt)]:et}return rt.domain=function(nt){return arguments.length?(j=Array.from(nt),tt=Math.min(j.length,_e.length-1),rt):j.slice()},rt.range=function(nt){return arguments.length?(_e=Array.from(nt),tt=Math.min(j.length,_e.length-1),rt):_e.slice()},rt.invertExtent=function(nt){var ot=_e.indexOf(nt);return[j[ot-1],j[ot]]},rt.unknown=function(nt){return arguments.length?(et=nt,rt):et},rt.copy=function(){return threshold().domain(j).range(_e).unknown(et)},initRange.apply(rt,arguments)}const t0=new Date,t1=new Date;function timeInterval(j,_e,et,tt){function rt(nt){return j(nt=arguments.length===0?new Date:new Date(+nt)),nt}return rt.floor=nt=>(j(nt=new Date(+nt)),nt),rt.ceil=nt=>(j(nt=new Date(nt-1)),_e(nt,1),j(nt),nt),rt.round=nt=>{const ot=rt(nt),it=rt.ceil(nt);return nt-ot(_e(nt=new Date(+nt),ot==null?1:Math.floor(ot)),nt),rt.range=(nt,ot,it)=>{const st=[];if(nt=rt.ceil(nt),it=it==null?1:Math.floor(it),!(nt0))return st;let lt;do st.push(lt=new Date(+nt)),_e(nt,it),j(nt);while(lttimeInterval(ot=>{if(ot>=ot)for(;j(ot),!nt(ot);)ot.setTime(ot-1)},(ot,it)=>{if(ot>=ot)if(it<0)for(;++it<=0;)for(;_e(ot,-1),!nt(ot););else for(;--it>=0;)for(;_e(ot,1),!nt(ot););}),et&&(rt.count=(nt,ot)=>(t0.setTime(+nt),t1.setTime(+ot),j(t0),j(t1),Math.floor(et(t0,t1))),rt.every=nt=>(nt=Math.floor(nt),!isFinite(nt)||!(nt>0)?null:nt>1?rt.filter(tt?ot=>tt(ot)%nt===0:ot=>rt.count(0,ot)%nt===0):rt)),rt}const millisecond=timeInterval(()=>{},(j,_e)=>{j.setTime(+j+_e)},(j,_e)=>_e-j);millisecond.every=j=>(j=Math.floor(j),!isFinite(j)||!(j>0)?null:j>1?timeInterval(_e=>{_e.setTime(Math.floor(_e/j)*j)},(_e,et)=>{_e.setTime(+_e+et*j)},(_e,et)=>(et-_e)/j):millisecond);millisecond.range;const durationSecond=1e3,durationMinute=durationSecond*60,durationHour=durationMinute*60,durationDay=durationHour*24,durationWeek=durationDay*7,durationMonth=durationDay*30,durationYear=durationDay*365,second=timeInterval(j=>{j.setTime(j-j.getMilliseconds())},(j,_e)=>{j.setTime(+j+_e*durationSecond)},(j,_e)=>(_e-j)/durationSecond,j=>j.getUTCSeconds());second.range;const timeMinute=timeInterval(j=>{j.setTime(j-j.getMilliseconds()-j.getSeconds()*durationSecond)},(j,_e)=>{j.setTime(+j+_e*durationMinute)},(j,_e)=>(_e-j)/durationMinute,j=>j.getMinutes());timeMinute.range;const utcMinute=timeInterval(j=>{j.setUTCSeconds(0,0)},(j,_e)=>{j.setTime(+j+_e*durationMinute)},(j,_e)=>(_e-j)/durationMinute,j=>j.getUTCMinutes());utcMinute.range;const timeHour=timeInterval(j=>{j.setTime(j-j.getMilliseconds()-j.getSeconds()*durationSecond-j.getMinutes()*durationMinute)},(j,_e)=>{j.setTime(+j+_e*durationHour)},(j,_e)=>(_e-j)/durationHour,j=>j.getHours());timeHour.range;const utcHour=timeInterval(j=>{j.setUTCMinutes(0,0,0)},(j,_e)=>{j.setTime(+j+_e*durationHour)},(j,_e)=>(_e-j)/durationHour,j=>j.getUTCHours());utcHour.range;const timeDay=timeInterval(j=>j.setHours(0,0,0,0),(j,_e)=>j.setDate(j.getDate()+_e),(j,_e)=>(_e-j-(_e.getTimezoneOffset()-j.getTimezoneOffset())*durationMinute)/durationDay,j=>j.getDate()-1);timeDay.range;const utcDay=timeInterval(j=>{j.setUTCHours(0,0,0,0)},(j,_e)=>{j.setUTCDate(j.getUTCDate()+_e)},(j,_e)=>(_e-j)/durationDay,j=>j.getUTCDate()-1);utcDay.range;const unixDay=timeInterval(j=>{j.setUTCHours(0,0,0,0)},(j,_e)=>{j.setUTCDate(j.getUTCDate()+_e)},(j,_e)=>(_e-j)/durationDay,j=>Math.floor(j/durationDay));unixDay.range;function timeWeekday(j){return timeInterval(_e=>{_e.setDate(_e.getDate()-(_e.getDay()+7-j)%7),_e.setHours(0,0,0,0)},(_e,et)=>{_e.setDate(_e.getDate()+et*7)},(_e,et)=>(et-_e-(et.getTimezoneOffset()-_e.getTimezoneOffset())*durationMinute)/durationWeek)}const timeSunday=timeWeekday(0),timeMonday=timeWeekday(1),timeTuesday=timeWeekday(2),timeWednesday=timeWeekday(3),timeThursday=timeWeekday(4),timeFriday=timeWeekday(5),timeSaturday=timeWeekday(6);timeSunday.range;timeMonday.range;timeTuesday.range;timeWednesday.range;timeThursday.range;timeFriday.range;timeSaturday.range;function utcWeekday(j){return timeInterval(_e=>{_e.setUTCDate(_e.getUTCDate()-(_e.getUTCDay()+7-j)%7),_e.setUTCHours(0,0,0,0)},(_e,et)=>{_e.setUTCDate(_e.getUTCDate()+et*7)},(_e,et)=>(et-_e)/durationWeek)}const utcSunday=utcWeekday(0),utcMonday=utcWeekday(1),utcTuesday=utcWeekday(2),utcWednesday=utcWeekday(3),utcThursday=utcWeekday(4),utcFriday=utcWeekday(5),utcSaturday=utcWeekday(6);utcSunday.range;utcMonday.range;utcTuesday.range;utcWednesday.range;utcThursday.range;utcFriday.range;utcSaturday.range;const timeMonth=timeInterval(j=>{j.setDate(1),j.setHours(0,0,0,0)},(j,_e)=>{j.setMonth(j.getMonth()+_e)},(j,_e)=>_e.getMonth()-j.getMonth()+(_e.getFullYear()-j.getFullYear())*12,j=>j.getMonth());timeMonth.range;const utcMonth=timeInterval(j=>{j.setUTCDate(1),j.setUTCHours(0,0,0,0)},(j,_e)=>{j.setUTCMonth(j.getUTCMonth()+_e)},(j,_e)=>_e.getUTCMonth()-j.getUTCMonth()+(_e.getUTCFullYear()-j.getUTCFullYear())*12,j=>j.getUTCMonth());utcMonth.range;const timeYear=timeInterval(j=>{j.setMonth(0,1),j.setHours(0,0,0,0)},(j,_e)=>{j.setFullYear(j.getFullYear()+_e)},(j,_e)=>_e.getFullYear()-j.getFullYear(),j=>j.getFullYear());timeYear.every=j=>!isFinite(j=Math.floor(j))||!(j>0)?null:timeInterval(_e=>{_e.setFullYear(Math.floor(_e.getFullYear()/j)*j),_e.setMonth(0,1),_e.setHours(0,0,0,0)},(_e,et)=>{_e.setFullYear(_e.getFullYear()+et*j)});timeYear.range;const utcYear=timeInterval(j=>{j.setUTCMonth(0,1),j.setUTCHours(0,0,0,0)},(j,_e)=>{j.setUTCFullYear(j.getUTCFullYear()+_e)},(j,_e)=>_e.getUTCFullYear()-j.getUTCFullYear(),j=>j.getUTCFullYear());utcYear.every=j=>!isFinite(j=Math.floor(j))||!(j>0)?null:timeInterval(_e=>{_e.setUTCFullYear(Math.floor(_e.getUTCFullYear()/j)*j),_e.setUTCMonth(0,1),_e.setUTCHours(0,0,0,0)},(_e,et)=>{_e.setUTCFullYear(_e.getUTCFullYear()+et*j)});utcYear.range;function ticker(j,_e,et,tt,rt,nt){const ot=[[second,1,durationSecond],[second,5,5*durationSecond],[second,15,15*durationSecond],[second,30,30*durationSecond],[nt,1,durationMinute],[nt,5,5*durationMinute],[nt,15,15*durationMinute],[nt,30,30*durationMinute],[rt,1,durationHour],[rt,3,3*durationHour],[rt,6,6*durationHour],[rt,12,12*durationHour],[tt,1,durationDay],[tt,2,2*durationDay],[et,1,durationWeek],[_e,1,durationMonth],[_e,3,3*durationMonth],[j,1,durationYear]];function it(lt,ut,ct){const dt=utmt).right(ot,dt);if(ft===ot.length)return j.every(tickStep(lt/durationYear,ut/durationYear,ct));if(ft===0)return millisecond.every(Math.max(tickStep(lt,ut,ct),1));const[pt,gt]=ot[dt/ot[ft-1][2]53)return null;"w"in rr||(rr.w=1),"Z"in rr?($r=utcDate(newDate(rr.y,0,1)),Rr=$r.getUTCDay(),$r=Rr>4||Rr===0?utcMonday.ceil($r):utcMonday($r),$r=utcDay.offset($r,(rr.V-1)*7),rr.y=$r.getUTCFullYear(),rr.m=$r.getUTCMonth(),rr.d=$r.getUTCDate()+(rr.w+6)%7):($r=localDate(newDate(rr.y,0,1)),Rr=$r.getDay(),$r=Rr>4||Rr===0?timeMonday.ceil($r):timeMonday($r),$r=timeDay.offset($r,(rr.V-1)*7),rr.y=$r.getFullYear(),rr.m=$r.getMonth(),rr.d=$r.getDate()+(rr.w+6)%7)}else("W"in rr||"U"in rr)&&("w"in rr||(rr.w="u"in rr?rr.u%7:"W"in rr?1:0),Rr="Z"in rr?utcDate(newDate(rr.y,0,1)).getUTCDay():localDate(newDate(rr.y,0,1)).getDay(),rr.m=0,rr.d="W"in rr?(rr.w+6)%7+rr.W*7-(Rr+5)%7:rr.w+rr.U*7-(Rr+6)%7);return"Z"in rr?(rr.H+=rr.Z/100|0,rr.M+=rr.Z%100,utcDate(rr)):localDate(rr)}}function kt(Ut,ar,pr,rr){for(var vr=0,$r=ar.length,Rr=pr.length,Cr,Nr;vr<$r;){if(rr>=Rr)return-1;if(Cr=ar.charCodeAt(vr++),Cr===37){if(Cr=ar.charAt(vr++),Nr=Et[Cr in pads?ar.charAt(vr++):Cr],!Nr||(rr=Nr(Ut,pr,rr))<0)return-1}else if(Cr!=pr.charCodeAt(rr++))return-1}return rr}function $t(Ut,ar,pr){var rr=lt.exec(ar.slice(pr));return rr?(Ut.p=ut.get(rr[0].toLowerCase()),pr+rr[0].length):-1}function Ct(Ut,ar,pr){var rr=ft.exec(ar.slice(pr));return rr?(Ut.w=pt.get(rr[0].toLowerCase()),pr+rr[0].length):-1}function It(Ut,ar,pr){var rr=ct.exec(ar.slice(pr));return rr?(Ut.w=dt.get(rr[0].toLowerCase()),pr+rr[0].length):-1}function Nt(Ut,ar,pr){var rr=bt.exec(ar.slice(pr));return rr?(Ut.m=_t.get(rr[0].toLowerCase()),pr+rr[0].length):-1}function Ot(Ut,ar,pr){var rr=gt.exec(ar.slice(pr));return rr?(Ut.m=mt.get(rr[0].toLowerCase()),pr+rr[0].length):-1}function jt(Ut,ar,pr){return kt(Ut,_e,ar,pr)}function Mt(Ut,ar,pr){return kt(Ut,et,ar,pr)}function Rt(Ut,ar,pr){return kt(Ut,tt,ar,pr)}function Lt(Ut){return ot[Ut.getDay()]}function Pt(Ut){return nt[Ut.getDay()]}function Gt(Ut){return st[Ut.getMonth()]}function qt(Ut){return it[Ut.getMonth()]}function Yt(Ut){return rt[+(Ut.getHours()>=12)]}function Xt(Ut){return 1+~~(Ut.getMonth()/3)}function tr(Ut){return ot[Ut.getUTCDay()]}function cr(Ut){return nt[Ut.getUTCDay()]}function mr(Ut){return st[Ut.getUTCMonth()]}function Er(Ut){return it[Ut.getUTCMonth()]}function hr(Ut){return rt[+(Ut.getUTCHours()>=12)]}function _r(Ut){return 1+~~(Ut.getUTCMonth()/3)}return{format:function(Ut){var ar=St(Ut+="",xt);return ar.toString=function(){return Ut},ar},parse:function(Ut){var ar=Tt(Ut+="",!1);return ar.toString=function(){return Ut},ar},utcFormat:function(Ut){var ar=St(Ut+="",yt);return ar.toString=function(){return Ut},ar},utcParse:function(Ut){var ar=Tt(Ut+="",!0);return ar.toString=function(){return Ut},ar}}}var pads={"-":"",_:" ",0:"0"},numberRe=/^\s*\d+/,percentRe=/^%/,requoteRe=/[\\^$*+?|[\]().{}]/g;function pad(j,_e,et){var tt=j<0?"-":"",rt=(tt?-j:j)+"",nt=rt.length;return tt+(nt[_e.toLowerCase(),et]))}function parseWeekdayNumberSunday(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+1));return tt?(j.w=+tt[0],et+tt[0].length):-1}function parseWeekdayNumberMonday(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+1));return tt?(j.u=+tt[0],et+tt[0].length):-1}function parseWeekNumberSunday(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.U=+tt[0],et+tt[0].length):-1}function parseWeekNumberISO(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.V=+tt[0],et+tt[0].length):-1}function parseWeekNumberMonday(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.W=+tt[0],et+tt[0].length):-1}function parseFullYear(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+4));return tt?(j.y=+tt[0],et+tt[0].length):-1}function parseYear(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.y=+tt[0]+(+tt[0]>68?1900:2e3),et+tt[0].length):-1}function parseZone(j,_e,et){var tt=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(_e.slice(et,et+6));return tt?(j.Z=tt[1]?0:-(tt[2]+(tt[3]||"00")),et+tt[0].length):-1}function parseQuarter(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+1));return tt?(j.q=tt[0]*3-3,et+tt[0].length):-1}function parseMonthNumber(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.m=tt[0]-1,et+tt[0].length):-1}function parseDayOfMonth(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.d=+tt[0],et+tt[0].length):-1}function parseDayOfYear(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+3));return tt?(j.m=0,j.d=+tt[0],et+tt[0].length):-1}function parseHour24(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.H=+tt[0],et+tt[0].length):-1}function parseMinutes(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.M=+tt[0],et+tt[0].length):-1}function parseSeconds(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+2));return tt?(j.S=+tt[0],et+tt[0].length):-1}function parseMilliseconds(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+3));return tt?(j.L=+tt[0],et+tt[0].length):-1}function parseMicroseconds(j,_e,et){var tt=numberRe.exec(_e.slice(et,et+6));return tt?(j.L=Math.floor(tt[0]/1e3),et+tt[0].length):-1}function parseLiteralPercent(j,_e,et){var tt=percentRe.exec(_e.slice(et,et+1));return tt?et+tt[0].length:-1}function parseUnixTimestamp(j,_e,et){var tt=numberRe.exec(_e.slice(et));return tt?(j.Q=+tt[0],et+tt[0].length):-1}function parseUnixTimestampSeconds(j,_e,et){var tt=numberRe.exec(_e.slice(et));return tt?(j.s=+tt[0],et+tt[0].length):-1}function formatDayOfMonth(j,_e){return pad(j.getDate(),_e,2)}function formatHour24(j,_e){return pad(j.getHours(),_e,2)}function formatHour12(j,_e){return pad(j.getHours()%12||12,_e,2)}function formatDayOfYear(j,_e){return pad(1+timeDay.count(timeYear(j),j),_e,3)}function formatMilliseconds(j,_e){return pad(j.getMilliseconds(),_e,3)}function formatMicroseconds(j,_e){return formatMilliseconds(j,_e)+"000"}function formatMonthNumber(j,_e){return pad(j.getMonth()+1,_e,2)}function formatMinutes(j,_e){return pad(j.getMinutes(),_e,2)}function formatSeconds(j,_e){return pad(j.getSeconds(),_e,2)}function formatWeekdayNumberMonday(j){var _e=j.getDay();return _e===0?7:_e}function formatWeekNumberSunday(j,_e){return pad(timeSunday.count(timeYear(j)-1,j),_e,2)}function dISO(j){var _e=j.getDay();return _e>=4||_e===0?timeThursday(j):timeThursday.ceil(j)}function formatWeekNumberISO(j,_e){return j=dISO(j),pad(timeThursday.count(timeYear(j),j)+(timeYear(j).getDay()===4),_e,2)}function formatWeekdayNumberSunday(j){return j.getDay()}function formatWeekNumberMonday(j,_e){return pad(timeMonday.count(timeYear(j)-1,j),_e,2)}function formatYear(j,_e){return pad(j.getFullYear()%100,_e,2)}function formatYearISO(j,_e){return j=dISO(j),pad(j.getFullYear()%100,_e,2)}function formatFullYear(j,_e){return pad(j.getFullYear()%1e4,_e,4)}function formatFullYearISO(j,_e){var et=j.getDay();return j=et>=4||et===0?timeThursday(j):timeThursday.ceil(j),pad(j.getFullYear()%1e4,_e,4)}function formatZone(j){var _e=j.getTimezoneOffset();return(_e>0?"-":(_e*=-1,"+"))+pad(_e/60|0,"0",2)+pad(_e%60,"0",2)}function formatUTCDayOfMonth(j,_e){return pad(j.getUTCDate(),_e,2)}function formatUTCHour24(j,_e){return pad(j.getUTCHours(),_e,2)}function formatUTCHour12(j,_e){return pad(j.getUTCHours()%12||12,_e,2)}function formatUTCDayOfYear(j,_e){return pad(1+utcDay.count(utcYear(j),j),_e,3)}function formatUTCMilliseconds(j,_e){return pad(j.getUTCMilliseconds(),_e,3)}function formatUTCMicroseconds(j,_e){return formatUTCMilliseconds(j,_e)+"000"}function formatUTCMonthNumber(j,_e){return pad(j.getUTCMonth()+1,_e,2)}function formatUTCMinutes(j,_e){return pad(j.getUTCMinutes(),_e,2)}function formatUTCSeconds(j,_e){return pad(j.getUTCSeconds(),_e,2)}function formatUTCWeekdayNumberMonday(j){var _e=j.getUTCDay();return _e===0?7:_e}function formatUTCWeekNumberSunday(j,_e){return pad(utcSunday.count(utcYear(j)-1,j),_e,2)}function UTCdISO(j){var _e=j.getUTCDay();return _e>=4||_e===0?utcThursday(j):utcThursday.ceil(j)}function formatUTCWeekNumberISO(j,_e){return j=UTCdISO(j),pad(utcThursday.count(utcYear(j),j)+(utcYear(j).getUTCDay()===4),_e,2)}function formatUTCWeekdayNumberSunday(j){return j.getUTCDay()}function formatUTCWeekNumberMonday(j,_e){return pad(utcMonday.count(utcYear(j)-1,j),_e,2)}function formatUTCYear(j,_e){return pad(j.getUTCFullYear()%100,_e,2)}function formatUTCYearISO(j,_e){return j=UTCdISO(j),pad(j.getUTCFullYear()%100,_e,2)}function formatUTCFullYear(j,_e){return pad(j.getUTCFullYear()%1e4,_e,4)}function formatUTCFullYearISO(j,_e){var et=j.getUTCDay();return j=et>=4||et===0?utcThursday(j):utcThursday.ceil(j),pad(j.getUTCFullYear()%1e4,_e,4)}function formatUTCZone(){return"+0000"}function formatLiteralPercent(){return"%"}function formatUnixTimestamp(j){return+j}function formatUnixTimestampSeconds(j){return Math.floor(+j/1e3)}var locale,timeFormat,utcFormat;defaultLocale({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function defaultLocale(j){return locale=formatLocale(j),timeFormat=locale.format,locale.parse,utcFormat=locale.utcFormat,locale.utcParse,locale}function date(j){return new Date(j)}function number(j){return j instanceof Date?+j:+new Date(+j)}function calendar(j,_e,et,tt,rt,nt,ot,it,st,lt){var ut=continuous(),ct=ut.invert,dt=ut.domain,ft=lt(".%L"),pt=lt(":%S"),gt=lt("%I:%M"),mt=lt("%I %p"),bt=lt("%a %d"),_t=lt("%b %d"),xt=lt("%B"),yt=lt("%Y");function Et(St){return(st(St)_e(rt/(j.length-1)))},et.quantiles=function(tt){return Array.from({length:tt+1},(rt,nt)=>quantile$1(j,nt/tt))},et.copy=function(){return sequentialQuantile(_e).domain(j)},initInterpolator.apply(et,arguments)}function transformer(){var j=0,_e=.5,et=1,tt=1,rt,nt,ot,it,st,lt=identity$2,ut,ct=!1,dt;function ft(gt){return isNaN(gt=+gt)?dt:(gt=.5+((gt=+ut(gt))-nt)*(tt*gtj.e^nt.s<0?1:-1;for(tt=nt.d.length,rt=j.d.length,_e=0,et=ttj.d[_e]^nt.s<0?1:-1;return tt===rt?0:tt>rt^nt.s<0?1:-1};P.decimalPlaces=P.dp=function(){var j=this,_e=j.d.length-1,et=(_e-j.e)*LOG_BASE;if(_e=j.d[_e],_e)for(;_e%10==0;_e/=10)et--;return et<0?0:et};P.dividedBy=P.div=function(j){return divide(this,new this.constructor(j))};P.dividedToIntegerBy=P.idiv=function(j){var _e=this,et=_e.constructor;return round(divide(_e,new et(j),0,1),et.precision)};P.equals=P.eq=function(j){return!this.cmp(j)};P.exponent=function(){return getBase10Exponent(this)};P.greaterThan=P.gt=function(j){return this.cmp(j)>0};P.greaterThanOrEqualTo=P.gte=function(j){return this.cmp(j)>=0};P.isInteger=P.isint=function(){return this.e>this.d.length-2};P.isNegative=P.isneg=function(){return this.s<0};P.isPositive=P.ispos=function(){return this.s>0};P.isZero=function(){return this.s===0};P.lessThan=P.lt=function(j){return this.cmp(j)<0};P.lessThanOrEqualTo=P.lte=function(j){return this.cmp(j)<1};P.logarithm=P.log=function(j){var _e,et=this,tt=et.constructor,rt=tt.precision,nt=rt+5;if(j===void 0)j=new tt(10);else if(j=new tt(j),j.s<1||j.eq(ONE))throw Error(decimalError+"NaN");if(et.s<1)throw Error(decimalError+(et.s?"NaN":"-Infinity"));return et.eq(ONE)?new tt(0):(external=!1,_e=divide(ln(et,nt),ln(j,nt),nt),external=!0,round(_e,rt))};P.minus=P.sub=function(j){var _e=this;return j=new _e.constructor(j),_e.s==j.s?subtract(_e,j):add(_e,(j.s=-j.s,j))};P.modulo=P.mod=function(j){var _e,et=this,tt=et.constructor,rt=tt.precision;if(j=new tt(j),!j.s)throw Error(decimalError+"NaN");return et.s?(external=!1,_e=divide(et,j,0,1).times(j),external=!0,et.minus(_e)):round(new tt(et),rt)};P.naturalExponential=P.exp=function(){return exp(this)};P.naturalLogarithm=P.ln=function(){return ln(this)};P.negated=P.neg=function(){var j=new this.constructor(this);return j.s=-j.s||0,j};P.plus=P.add=function(j){var _e=this;return j=new _e.constructor(j),_e.s==j.s?add(_e,j):subtract(_e,(j.s=-j.s,j))};P.precision=P.sd=function(j){var _e,et,tt,rt=this;if(j!==void 0&&j!==!!j&&j!==1&&j!==0)throw Error(invalidArgument+j);if(_e=getBase10Exponent(rt)+1,tt=rt.d.length-1,et=tt*LOG_BASE+1,tt=rt.d[tt],tt){for(;tt%10==0;tt/=10)et--;for(tt=rt.d[0];tt>=10;tt/=10)et++}return j&&_e>et?_e:et};P.squareRoot=P.sqrt=function(){var j,_e,et,tt,rt,nt,ot,it=this,st=it.constructor;if(it.s<1){if(!it.s)return new st(0);throw Error(decimalError+"NaN")}for(j=getBase10Exponent(it),external=!1,rt=Math.sqrt(+it),rt==0||rt==1/0?(_e=digitsToString(it.d),(_e.length+j)%2==0&&(_e+="0"),rt=Math.sqrt(_e),j=mathfloor((j+1)/2)-(j<0||j%2),rt==1/0?_e="5e"+j:(_e=rt.toExponential(),_e=_e.slice(0,_e.indexOf("e")+1)+j),tt=new st(_e)):tt=new st(rt.toString()),et=st.precision,rt=ot=et+3;;)if(nt=tt,tt=nt.plus(divide(it,nt,ot+2)).times(.5),digitsToString(nt.d).slice(0,ot)===(_e=digitsToString(tt.d)).slice(0,ot)){if(_e=_e.slice(ot-3,ot+1),rt==ot&&_e=="4999"){if(round(nt,et+1,0),nt.times(nt).eq(it)){tt=nt;break}}else if(_e!="9999")break;ot+=4}return external=!0,round(tt,et)};P.times=P.mul=function(j){var _e,et,tt,rt,nt,ot,it,st,lt,ut=this,ct=ut.constructor,dt=ut.d,ft=(j=new ct(j)).d;if(!ut.s||!j.s)return new ct(0);for(j.s*=ut.s,et=ut.e+j.e,st=dt.length,lt=ft.length,st=0;){for(_e=0,rt=st+tt;rt>tt;)it=nt[rt]+ft[tt]*dt[rt-tt-1]+_e,nt[rt--]=it%BASE|0,_e=it/BASE|0;nt[rt]=(nt[rt]+_e)%BASE|0}for(;!nt[--ot];)nt.pop();return _e?++et:nt.shift(),j.d=nt,j.e=et,external?round(j,ct.precision):j};P.toDecimalPlaces=P.todp=function(j,_e){var et=this,tt=et.constructor;return et=new tt(et),j===void 0?et:(checkInt32(j,0,MAX_DIGITS),_e===void 0?_e=tt.rounding:checkInt32(_e,0,8),round(et,j+getBase10Exponent(et)+1,_e))};P.toExponential=function(j,_e){var et,tt=this,rt=tt.constructor;return j===void 0?et=toString(tt,!0):(checkInt32(j,0,MAX_DIGITS),_e===void 0?_e=rt.rounding:checkInt32(_e,0,8),tt=round(new rt(tt),j+1,_e),et=toString(tt,!0,j+1)),et};P.toFixed=function(j,_e){var et,tt,rt=this,nt=rt.constructor;return j===void 0?toString(rt):(checkInt32(j,0,MAX_DIGITS),_e===void 0?_e=nt.rounding:checkInt32(_e,0,8),tt=round(new nt(rt),j+getBase10Exponent(rt)+1,_e),et=toString(tt.abs(),!1,j+getBase10Exponent(tt)+1),rt.isneg()&&!rt.isZero()?"-"+et:et)};P.toInteger=P.toint=function(){var j=this,_e=j.constructor;return round(new _e(j),getBase10Exponent(j)+1,_e.rounding)};P.toNumber=function(){return+this};P.toPower=P.pow=function(j){var _e,et,tt,rt,nt,ot,it=this,st=it.constructor,lt=12,ut=+(j=new st(j));if(!j.s)return new st(ONE);if(it=new st(it),!it.s){if(j.s<1)throw Error(decimalError+"Infinity");return it}if(it.eq(ONE))return it;if(tt=st.precision,j.eq(ONE))return round(it,tt);if(_e=j.e,et=j.d.length-1,ot=_e>=et,nt=it.s,ot){if((et=ut<0?-ut:ut)<=MAX_SAFE_INTEGER){for(rt=new st(ONE),_e=Math.ceil(tt/LOG_BASE+4),external=!1;et%2&&(rt=rt.times(it),truncate(rt.d,_e)),et=mathfloor(et/2),et!==0;)it=it.times(it),truncate(it.d,_e);return external=!0,j.s<0?new st(ONE).div(rt):round(rt,tt)}}else if(nt<0)throw Error(decimalError+"NaN");return nt=nt<0&&j.d[Math.max(_e,et)]&1?-1:1,it.s=1,external=!1,rt=j.times(ln(it,tt+lt)),external=!0,rt=exp(rt),rt.s=nt,rt};P.toPrecision=function(j,_e){var et,tt,rt=this,nt=rt.constructor;return j===void 0?(et=getBase10Exponent(rt),tt=toString(rt,et<=nt.toExpNeg||et>=nt.toExpPos)):(checkInt32(j,1,MAX_DIGITS),_e===void 0?_e=nt.rounding:checkInt32(_e,0,8),rt=round(new nt(rt),j,_e),et=getBase10Exponent(rt),tt=toString(rt,j<=et||et<=nt.toExpNeg,j)),tt};P.toSignificantDigits=P.tosd=function(j,_e){var et=this,tt=et.constructor;return j===void 0?(j=tt.precision,_e=tt.rounding):(checkInt32(j,1,MAX_DIGITS),_e===void 0?_e=tt.rounding:checkInt32(_e,0,8)),round(new tt(et),j,_e)};P.toString=P.valueOf=P.val=P.toJSON=P[Symbol.for("nodejs.util.inspect.custom")]=function(){var j=this,_e=getBase10Exponent(j),et=j.constructor;return toString(j,_e<=et.toExpNeg||_e>=et.toExpPos)};function add(j,_e){var et,tt,rt,nt,ot,it,st,lt,ut=j.constructor,ct=ut.precision;if(!j.s||!_e.s)return _e.s||(_e=new ut(j)),external?round(_e,ct):_e;if(st=j.d,lt=_e.d,ot=j.e,rt=_e.e,st=st.slice(),nt=ot-rt,nt){for(nt<0?(tt=st,nt=-nt,it=lt.length):(tt=lt,rt=ot,it=st.length),ot=Math.ceil(ct/LOG_BASE),it=ot>it?ot+1:it+1,nt>it&&(nt=it,tt.length=1),tt.reverse();nt--;)tt.push(0);tt.reverse()}for(it=st.length,nt=lt.length,it-nt<0&&(nt=it,tt=lt,lt=st,st=tt),et=0;nt;)et=(st[--nt]=st[nt]+lt[nt]+et)/BASE|0,st[nt]%=BASE;for(et&&(st.unshift(et),++rt),it=st.length;st[--it]==0;)st.pop();return _e.d=st,_e.e=rt,external?round(_e,ct):_e}function checkInt32(j,_e,et){if(j!==~~j||j<_e||j>et)throw Error(invalidArgument+j)}function digitsToString(j){var _e,et,tt,rt=j.length-1,nt="",ot=j[0];if(rt>0){for(nt+=ot,_e=1;_eot?1:-1;else for(it=st=0;itrt[it]?1:-1;break}return st}function et(tt,rt,nt){for(var ot=0;nt--;)tt[nt]-=ot,ot=tt[nt]1;)tt.shift()}return function(tt,rt,nt,ot){var it,st,lt,ut,ct,dt,ft,pt,gt,mt,bt,_t,xt,yt,Et,St,Tt,kt,$t=tt.constructor,Ct=tt.s==rt.s?1:-1,It=tt.d,Nt=rt.d;if(!tt.s)return new $t(tt);if(!rt.s)throw Error(decimalError+"Division by zero");for(st=tt.e-rt.e,Tt=Nt.length,Et=It.length,ft=new $t(Ct),pt=ft.d=[],lt=0;Nt[lt]==(It[lt]||0);)++lt;if(Nt[lt]>(It[lt]||0)&&--st,nt==null?_t=nt=$t.precision:ot?_t=nt+(getBase10Exponent(tt)-getBase10Exponent(rt))+1:_t=nt,_t<0)return new $t(0);if(_t=_t/LOG_BASE+2|0,lt=0,Tt==1)for(ut=0,Nt=Nt[0],_t++;(lt1&&(Nt=j(Nt,ut),It=j(It,ut),Tt=Nt.length,Et=It.length),yt=Tt,gt=It.slice(0,Tt),mt=gt.length;mt=BASE/2&&++St;do ut=0,it=_e(Nt,gt,Tt,mt),it<0?(bt=gt[0],Tt!=mt&&(bt=bt*BASE+(gt[1]||0)),ut=bt/St|0,ut>1?(ut>=BASE&&(ut=BASE-1),ct=j(Nt,ut),dt=ct.length,mt=gt.length,it=_e(ct,gt,dt,mt),it==1&&(ut--,et(ct,Tt16)throw Error(exponentOutOfRange+getBase10Exponent(j));if(!j.s)return new ut(ONE);for(_e==null?(external=!1,it=ct):it=_e,ot=new ut(.03125);j.abs().gte(.1);)j=j.times(ot),lt+=5;for(tt=Math.log(mathpow(2,lt))/Math.LN10*2+5|0,it+=tt,et=rt=nt=new ut(ONE),ut.precision=it;;){if(rt=round(rt.times(j),it),et=et.times(++st),ot=nt.plus(divide(rt,et,it)),digitsToString(ot.d).slice(0,it)===digitsToString(nt.d).slice(0,it)){for(;lt--;)nt=round(nt.times(nt),it);return ut.precision=ct,_e==null?(external=!0,round(nt,ct)):nt}nt=ot}}function getBase10Exponent(j){for(var _e=j.e*LOG_BASE,et=j.d[0];et>=10;et/=10)_e++;return _e}function getLn10(j,_e,et){if(_e>j.LN10.sd())throw external=!0,et&&(j.precision=et),Error(decimalError+"LN10 precision limit exceeded");return round(new j(j.LN10),_e)}function getZeroString(j){for(var _e="";j--;)_e+="0";return _e}function ln(j,_e){var et,tt,rt,nt,ot,it,st,lt,ut,ct=1,dt=10,ft=j,pt=ft.d,gt=ft.constructor,mt=gt.precision;if(ft.s<1)throw Error(decimalError+(ft.s?"NaN":"-Infinity"));if(ft.eq(ONE))return new gt(0);if(_e==null?(external=!1,lt=mt):lt=_e,ft.eq(10))return _e==null&&(external=!0),getLn10(gt,lt);if(lt+=dt,gt.precision=lt,et=digitsToString(pt),tt=et.charAt(0),nt=getBase10Exponent(ft),Math.abs(nt)<15e14){for(;tt<7&&tt!=1||tt==1&&et.charAt(1)>3;)ft=ft.times(j),et=digitsToString(ft.d),tt=et.charAt(0),ct++;nt=getBase10Exponent(ft),tt>1?(ft=new gt("0."+et),nt++):ft=new gt(tt+"."+et.slice(1))}else return st=getLn10(gt,lt+2,mt).times(nt+""),ft=ln(new gt(tt+"."+et.slice(1)),lt-dt).plus(st),gt.precision=mt,_e==null?(external=!0,round(ft,mt)):ft;for(it=ot=ft=divide(ft.minus(ONE),ft.plus(ONE),lt),ut=round(ft.times(ft),lt),rt=3;;){if(ot=round(ot.times(ut),lt),st=it.plus(divide(ot,new gt(rt),lt)),digitsToString(st.d).slice(0,lt)===digitsToString(it.d).slice(0,lt))return it=it.times(2),nt!==0&&(it=it.plus(getLn10(gt,lt+2,mt).times(nt+""))),it=divide(it,new gt(ct),lt),gt.precision=mt,_e==null?(external=!0,round(it,mt)):it;it=st,rt+=2}}function parseDecimal(j,_e){var et,tt,rt;for((et=_e.indexOf("."))>-1&&(_e=_e.replace(".","")),(tt=_e.search(/e/i))>0?(et<0&&(et=tt),et+=+_e.slice(tt+1),_e=_e.substring(0,tt)):et<0&&(et=_e.length),tt=0;_e.charCodeAt(tt)===48;)++tt;for(rt=_e.length;_e.charCodeAt(rt-1)===48;)--rt;if(_e=_e.slice(tt,rt),_e){if(rt-=tt,et=et-tt-1,j.e=mathfloor(et/LOG_BASE),j.d=[],tt=(et+1)%LOG_BASE,et<0&&(tt+=LOG_BASE),ttMAX_E||j.e<-MAX_E))throw Error(exponentOutOfRange+et)}else j.s=0,j.e=0,j.d=[0];return j}function round(j,_e,et){var tt,rt,nt,ot,it,st,lt,ut,ct=j.d;for(ot=1,nt=ct[0];nt>=10;nt/=10)ot++;if(tt=_e-ot,tt<0)tt+=LOG_BASE,rt=_e,lt=ct[ut=0];else{if(ut=Math.ceil((tt+1)/LOG_BASE),nt=ct.length,ut>=nt)return j;for(lt=nt=ct[ut],ot=1;nt>=10;nt/=10)ot++;tt%=LOG_BASE,rt=tt-LOG_BASE+ot}if(et!==void 0&&(nt=mathpow(10,ot-rt-1),it=lt/nt%10|0,st=_e<0||ct[ut+1]!==void 0||lt%nt,st=et<4?(it||st)&&(et==0||et==(j.s<0?3:2)):it>5||it==5&&(et==4||st||et==6&&(tt>0?rt>0?lt/mathpow(10,ot-rt):0:ct[ut-1])%10&1||et==(j.s<0?8:7))),_e<1||!ct[0])return st?(nt=getBase10Exponent(j),ct.length=1,_e=_e-nt-1,ct[0]=mathpow(10,(LOG_BASE-_e%LOG_BASE)%LOG_BASE),j.e=mathfloor(-_e/LOG_BASE)||0):(ct.length=1,ct[0]=j.e=j.s=0),j;if(tt==0?(ct.length=ut,nt=1,ut--):(ct.length=ut+1,nt=mathpow(10,LOG_BASE-tt),ct[ut]=rt>0?(lt/mathpow(10,ot-rt)%mathpow(10,rt)|0)*nt:0),st)for(;;)if(ut==0){(ct[0]+=nt)==BASE&&(ct[0]=1,++j.e);break}else{if(ct[ut]+=nt,ct[ut]!=BASE)break;ct[ut--]=0,nt=1}for(tt=ct.length;ct[--tt]===0;)ct.pop();if(external&&(j.e>MAX_E||j.e<-MAX_E))throw Error(exponentOutOfRange+getBase10Exponent(j));return j}function subtract(j,_e){var et,tt,rt,nt,ot,it,st,lt,ut,ct,dt=j.constructor,ft=dt.precision;if(!j.s||!_e.s)return _e.s?_e.s=-_e.s:_e=new dt(j),external?round(_e,ft):_e;if(st=j.d,ct=_e.d,tt=_e.e,lt=j.e,st=st.slice(),ot=lt-tt,ot){for(ut=ot<0,ut?(et=st,ot=-ot,it=ct.length):(et=ct,tt=lt,it=st.length),rt=Math.max(Math.ceil(ft/LOG_BASE),it)+2,ot>rt&&(ot=rt,et.length=1),et.reverse(),rt=ot;rt--;)et.push(0);et.reverse()}else{for(rt=st.length,it=ct.length,ut=rt0;--rt)st[it++]=0;for(rt=ct.length;rt>ot;){if(st[--rt]0?nt=nt.charAt(0)+"."+nt.slice(1)+getZeroString(tt):ot>1&&(nt=nt.charAt(0)+"."+nt.slice(1)),nt=nt+(rt<0?"e":"e+")+rt):rt<0?(nt="0."+getZeroString(-rt-1)+nt,et&&(tt=et-ot)>0&&(nt+=getZeroString(tt))):rt>=ot?(nt+=getZeroString(rt+1-ot),et&&(tt=et-rt-1)>0&&(nt=nt+"."+getZeroString(tt))):((tt=rt+1)0&&(rt+1===ot&&(nt+="."),nt+=getZeroString(tt))),j.s<0?"-"+nt:nt}function truncate(j,_e){if(j.length>_e)return j.length=_e,!0}function clone(j){var _e,et,tt;function rt(nt){var ot=this;if(!(ot instanceof rt))return new rt(nt);if(ot.constructor=rt,nt instanceof rt){ot.s=nt.s,ot.e=nt.e,ot.d=(nt=nt.d)?nt.slice():nt;return}if(typeof nt=="number"){if(nt*0!==0)throw Error(invalidArgument+nt);if(nt>0)ot.s=1;else if(nt<0)nt=-nt,ot.s=-1;else{ot.s=0,ot.e=0,ot.d=[0];return}if(nt===~~nt&&nt<1e7){ot.e=0,ot.d=[nt];return}return parseDecimal(ot,nt.toString())}else if(typeof nt!="string")throw Error(invalidArgument+nt);if(nt.charCodeAt(0)===45?(nt=nt.slice(1),ot.s=-1):ot.s=1,isDecimal.test(nt))parseDecimal(ot,nt);else throw Error(invalidArgument+nt)}if(rt.prototype=P,rt.ROUND_UP=0,rt.ROUND_DOWN=1,rt.ROUND_CEIL=2,rt.ROUND_FLOOR=3,rt.ROUND_HALF_UP=4,rt.ROUND_HALF_DOWN=5,rt.ROUND_HALF_EVEN=6,rt.ROUND_HALF_CEIL=7,rt.ROUND_HALF_FLOOR=8,rt.clone=clone,rt.config=rt.set=config,j===void 0&&(j={}),j)for(tt=["precision","rounding","toExpNeg","toExpPos","LN10"],_e=0;_e=rt[_e+1]&&tt<=rt[_e+2])this[et]=tt;else throw Error(invalidArgument+et+": "+tt);if((tt=j[et="LN10"])!==void 0)if(tt==Math.LN10)this[et]=new this(tt);else throw Error(invalidArgument+et+": "+tt);return this}var Decimal=clone(defaults);ONE=new Decimal(1);const Decimal$1=Decimal;function _toConsumableArray$7(j){return _arrayWithoutHoles$7(j)||_iterableToArray$7(j)||_unsupportedIterableToArray$c(j)||_nonIterableSpread$7()}function _nonIterableSpread$7(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$c(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$c(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$c(j,_e)}}function _iterableToArray$7(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$7(j){if(Array.isArray(j))return _arrayLikeToArray$c(j)}function _arrayLikeToArray$c(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}var identity=function j(_e){return _e},PLACE_HOLDER={"@@functional/placeholder":!0},isPlaceHolder=function j(_e){return _e===PLACE_HOLDER},curry0=function j(_e){return function et(){return arguments.length===0||arguments.length===1&&isPlaceHolder(arguments.length<=0?void 0:arguments[0])?et:_e.apply(void 0,arguments)}},curryN=function j(_e,et){return _e===1?et:curry0(function(){for(var tt=arguments.length,rt=new Array(tt),nt=0;nt=_e?et.apply(void 0,rt):j(_e-ot,curry0(function(){for(var it=arguments.length,st=new Array(it),lt=0;ltj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$6(j,_e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(j)))){var et=[],tt=!0,rt=!1,nt=void 0;try{for(var ot=j[Symbol.iterator](),it;!(tt=(it=ot.next()).done)&&(et.push(it.value),!(_e&&et.length===_e));tt=!0);}catch(st){rt=!0,nt=st}finally{try{!tt&&ot.return!=null&&ot.return()}finally{if(rt)throw nt}}return et}}function _arrayWithHoles$6(j){if(Array.isArray(j))return j}function getValidInterval(j){var _e=_slicedToArray$6(j,2),et=_e[0],tt=_e[1],rt=et,nt=tt;return et>tt&&(rt=tt,nt=et),[rt,nt]}function getFormatStep(j,_e,et){if(j.lte(0))return new Decimal$1(0);var tt=Arithmetic.getDigitCount(j.toNumber()),rt=new Decimal$1(10).pow(tt),nt=j.div(rt),ot=tt!==1?.05:.1,it=new Decimal$1(Math.ceil(nt.div(ot).toNumber())).add(et).mul(ot),st=it.mul(rt);return _e?st:new Decimal$1(Math.ceil(st))}function getTickOfSingleValue(j,_e,et){var tt=1,rt=new Decimal$1(j);if(!rt.isint()&&et){var nt=Math.abs(j);nt<1?(tt=new Decimal$1(10).pow(Arithmetic.getDigitCount(j)-1),rt=new Decimal$1(Math.floor(rt.div(tt).toNumber())).mul(tt)):nt>1&&(rt=new Decimal$1(Math.floor(j)))}else j===0?rt=new Decimal$1(Math.floor((_e-1)/2)):et||(rt=new Decimal$1(Math.floor(j)));var ot=Math.floor((_e-1)/2),it=compose(map(function(st){return rt.add(new Decimal$1(st-ot).mul(tt)).toNumber()}),range);return it(0,_e)}function calculateStep(j,_e,et,tt){var rt=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((_e-j)/(et-1)))return{step:new Decimal$1(0),tickMin:new Decimal$1(0),tickMax:new Decimal$1(0)};var nt=getFormatStep(new Decimal$1(_e).sub(j).div(et-1),tt,rt),ot;j<=0&&_e>=0?ot=new Decimal$1(0):(ot=new Decimal$1(j).add(_e).div(2),ot=ot.sub(new Decimal$1(ot).mod(nt)));var it=Math.ceil(ot.sub(j).div(nt).toNumber()),st=Math.ceil(new Decimal$1(_e).sub(ot).div(nt).toNumber()),lt=it+st+1;return lt>et?calculateStep(j,_e,et,tt,rt+1):(lt0?st+(et-lt):st,it=_e>0?it:it+(et-lt)),{step:nt,tickMin:ot.sub(new Decimal$1(it).mul(nt)),tickMax:ot.add(new Decimal$1(st).mul(nt))})}function getNiceTickValuesFn(j){var _e=_slicedToArray$6(j,2),et=_e[0],tt=_e[1],rt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,nt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,ot=Math.max(rt,2),it=getValidInterval([et,tt]),st=_slicedToArray$6(it,2),lt=st[0],ut=st[1];if(lt===-1/0||ut===1/0){var ct=ut===1/0?[lt].concat(_toConsumableArray$6(range(0,rt-1).map(function(){return 1/0}))):[].concat(_toConsumableArray$6(range(0,rt-1).map(function(){return-1/0})),[ut]);return et>tt?reverse(ct):ct}if(lt===ut)return getTickOfSingleValue(lt,rt,nt);var dt=calculateStep(lt,ut,ot,nt),ft=dt.step,pt=dt.tickMin,gt=dt.tickMax,vt=Arithmetic.rangeStep(pt,gt.add(new Decimal$1(.1).mul(ft)),ft);return et>tt?reverse(vt):vt}function getTickValuesFixedDomainFn(j,_e){var et=_slicedToArray$6(j,2),tt=et[0],rt=et[1],nt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,ot=getValidInterval([tt,rt]),it=_slicedToArray$6(ot,2),st=it[0],lt=it[1];if(st===-1/0||lt===1/0)return[tt,rt];if(st===lt)return[st];var ut=Math.max(_e,2),ct=getFormatStep(new Decimal$1(lt).sub(st).div(ut-1),nt,0),dt=[].concat(_toConsumableArray$6(Arithmetic.rangeStep(new Decimal$1(st),new Decimal$1(lt).sub(new Decimal$1(.99).mul(ct)),ct)),[lt]);return tt>rt?reverse(dt):dt}var getNiceTickValues=memoize(getNiceTickValuesFn),getTickValuesFixedDomain=memoize(getTickValuesFixedDomainFn),_excluded$8=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function _extends$i(){return _extends$i=Object.assign?Object.assign.bind():function(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$5(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$5(j){if(Array.isArray(j))return j}function _objectWithoutProperties$8(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$8(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$8(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function ErrorBar(j){var _e=j.offset,et=j.layout,tt=j.width,rt=j.dataKey,nt=j.data,ot=j.dataPointFormatter,it=j.xAxis,st=j.yAxis,lt=_objectWithoutProperties$8(j,_excluded$8),ut=filterProps(lt),ct=nt.map(function(dt){var ft=ot(dt,rt),pt=ft.x,gt=ft.y,vt=ft.value,bt=ft.errorVal;if(!bt)return null;var _t=[],xt,yt;if(Array.isArray(bt)){var Et=_slicedToArray$5(bt,2);xt=Et[0],yt=Et[1]}else xt=yt=bt;if(et==="vertical"){var St=it.scale,$t=gt+_e,At=$t+tt,wt=$t-tt,Ct=St(vt-xt),It=St(vt+yt);_t.push({x1:It,y1:At,x2:It,y2:wt}),_t.push({x1:Ct,y1:$t,x2:It,y2:$t}),_t.push({x1:Ct,y1:At,x2:Ct,y2:wt})}else if(et==="horizontal"){var Ot=st.scale,Nt=pt+_e,Pt=Nt-tt,Mt=Nt+tt,Rt=Ot(vt-xt),Lt=Ot(vt+yt);_t.push({x1:Pt,y1:Lt,x2:Mt,y2:Lt}),_t.push({x1:Nt,y1:Rt,x2:Nt,y2:Lt}),_t.push({x1:Pt,y1:Rt,x2:Mt,y2:Rt})}return React.createElement(Layer,_extends$i({className:"recharts-errorBar",key:"bar-".concat(_t.map(function(jt){return"".concat(jt.x1,"-").concat(jt.x2,"-").concat(jt.y1,"-").concat(jt.y2)}))},ut),_t.map(function(jt){return React.createElement("line",_extends$i({},jt,{key:"line-".concat(jt.x1,"-").concat(jt.x2,"-").concat(jt.y1,"-").concat(jt.y2)}))}))});return React.createElement(Layer,{className:"recharts-errorBars"},ct)}ErrorBar.defaultProps={stroke:"black",strokeWidth:1.5,width:5,offset:0,layout:"horizontal"};ErrorBar.displayName="ErrorBar";function _typeof$o(j){"@babel/helpers - typeof";return _typeof$o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$o(j)}function ownKeys$n(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$n(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function getValueByDataKey(j,_e,et){return isNil$1(j)||isNil$1(_e)?et:isNumOrStr(_e)?get$5(j,_e,et):isFunction$6(_e)?_e(j):et}function getDomainOfDataByKey(j,_e,et,tt){var rt=flatMap$1(j,function(it){return getValueByDataKey(it,_e)});if(et==="number"){var nt=rt.filter(function(it){return isNumber(it)||parseFloat(it)});return nt.length?[min$9(nt),max$8(nt)]:[1/0,-1/0]}var ot=tt?rt.filter(function(it){return!isNil$1(it)}):rt;return ot.map(function(it){return isNumOrStr(it)||it instanceof Date?it:""})}var calculateActiveTickIndex=function j(_e){var et,tt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],rt=arguments.length>2?arguments[2]:void 0,nt=arguments.length>3?arguments[3]:void 0,ot=-1,it=(et=tt==null?void 0:tt.length)!==null&&et!==void 0?et:0;if(it<=1)return 0;if(nt&&nt.axisType==="angleAxis"&&Math.abs(Math.abs(nt.range[1]-nt.range[0])-360)<=1e-6)for(var st=nt.range,lt=0;lt0?rt[lt-1].coordinate:rt[it-1].coordinate,ct=rt[lt].coordinate,dt=lt>=it-1?rt[0].coordinate:rt[lt+1].coordinate,ft=void 0;if(mathSign(ct-ut)!==mathSign(dt-ct)){var pt=[];if(mathSign(dt-ct)===mathSign(st[1]-st[0])){ft=dt;var gt=ct+st[1]-st[0];pt[0]=Math.min(gt,(gt+ut)/2),pt[1]=Math.max(gt,(gt+ut)/2)}else{ft=ut;var vt=dt+st[1]-st[0];pt[0]=Math.min(ct,(vt+ct)/2),pt[1]=Math.max(ct,(vt+ct)/2)}var bt=[Math.min(ct,(ft+ct)/2),Math.max(ct,(ft+ct)/2)];if(_e>bt[0]&&_e<=bt[1]||_e>=pt[0]&&_e<=pt[1]){ot=rt[lt].index;break}}else{var _t=Math.min(ut,dt),xt=Math.max(ut,dt);if(_e>(_t+ct)/2&&_e<=(xt+ct)/2){ot=rt[lt].index;break}}}else for(var yt=0;yt0&&yt(tt[yt].coordinate+tt[yt-1].coordinate)/2&&_e<=(tt[yt].coordinate+tt[yt+1].coordinate)/2||yt===it-1&&_e>(tt[yt].coordinate+tt[yt-1].coordinate)/2){ot=tt[yt].index;break}return ot},getMainColorOfGraphicItem=function j(_e){var et=_e,tt=et.type.displayName,rt=_e.props,nt=rt.stroke,ot=rt.fill,it;switch(tt){case"Line":it=nt;break;case"Area":case"Radar":it=nt&&nt!=="none"?nt:ot;break;default:it=ot;break}return it},getBarSizeList=function j(_e){var et=_e.barSize,tt=_e.stackGroups,rt=tt===void 0?{}:tt;if(!rt)return{};for(var nt={},ot=Object.keys(rt),it=0,st=ot.length;it=0});if(vt&&vt.length){var bt=vt[0].props.barSize,_t=vt[0].props[gt];nt[_t]||(nt[_t]=[]),nt[_t].push({item:vt[0],stackList:vt.slice(1),barSize:isNil$1(bt)?et:bt})}}return nt},getBarPosition=function j(_e){var et=_e.barGap,tt=_e.barCategoryGap,rt=_e.bandSize,nt=_e.sizeList,ot=nt===void 0?[]:nt,it=_e.maxBarSize,st=ot.length;if(st<1)return null;var lt=getPercentValue(et,rt,0,!0),ut,ct=[];if(ot[0].barSize===+ot[0].barSize){var dt=!1,ft=rt/st,pt=ot.reduce(function(yt,Et){return yt+Et.barSize||0},0);pt+=(st-1)*lt,pt>=rt&&(pt-=(st-1)*lt,lt=0),pt>=rt&&ft>0&&(dt=!0,ft*=.9,pt=st*ft);var gt=(rt-pt)/2>>0,vt={offset:gt-lt,size:0};ut=ot.reduce(function(yt,Et){var St={item:Et.item,position:{offset:vt.offset+vt.size+lt,size:dt?ft:Et.barSize}},$t=[].concat(_toConsumableArray$5(yt),[St]);return vt=$t[$t.length-1].position,Et.stackList&&Et.stackList.length&&Et.stackList.forEach(function(At){$t.push({item:At,position:vt})}),$t},ct)}else{var bt=getPercentValue(tt,rt,0,!0);rt-2*bt-(st-1)*lt<=0&&(lt=0);var _t=(rt-2*bt-(st-1)*lt)/st;_t>1&&(_t>>=0);var xt=it===+it?Math.min(_t,it):_t;ut=ot.reduce(function(yt,Et,St){var $t=[].concat(_toConsumableArray$5(yt),[{item:Et.item,position:{offset:bt+(_t+lt)*St+(_t-xt)/2,size:xt}}]);return Et.stackList&&Et.stackList.length&&Et.stackList.forEach(function(At){$t.push({item:At,position:$t[$t.length-1].position})}),$t},ct)}return ut},appendOffsetOfLegend=function j(_e,et,tt,rt){var nt=tt.children,ot=tt.width,it=tt.margin,st=ot-(it.left||0)-(it.right||0),lt=getLegendProps({children:nt,legendWidth:st});if(lt){var ut=rt||{},ct=ut.width,dt=ut.height,ft=lt.align,pt=lt.verticalAlign,gt=lt.layout;if((gt==="vertical"||gt==="horizontal"&&pt==="middle")&&ft!=="center"&&isNumber(_e[ft]))return _objectSpread$m(_objectSpread$m({},_e),{},_defineProperty$n({},ft,_e[ft]+(ct||0)));if((gt==="horizontal"||gt==="vertical"&&ft==="center")&&pt!=="middle"&&isNumber(_e[pt]))return _objectSpread$m(_objectSpread$m({},_e),{},_defineProperty$n({},pt,_e[pt]+(dt||0)))}return _e},isErrorBarRelevantForAxis=function j(_e,et,tt){return isNil$1(et)?!0:_e==="horizontal"?et==="yAxis":_e==="vertical"||tt==="x"?et==="xAxis":tt==="y"?et==="yAxis":!0},getDomainOfErrorBars=function j(_e,et,tt,rt,nt){var ot=et.props.children,it=findAllByType(ot,ErrorBar).filter(function(lt){return isErrorBarRelevantForAxis(rt,nt,lt.props.direction)});if(it&&it.length){var st=it.map(function(lt){return lt.props.dataKey});return _e.reduce(function(lt,ut){var ct=getValueByDataKey(ut,tt,0),dt=Array.isArray(ct)?[min$9(ct),max$8(ct)]:[ct,ct],ft=st.reduce(function(pt,gt){var vt=getValueByDataKey(ut,gt,0),bt=dt[0]-Math.abs(Array.isArray(vt)?vt[0]:vt),_t=dt[1]+Math.abs(Array.isArray(vt)?vt[1]:vt);return[Math.min(bt,pt[0]),Math.max(_t,pt[1])]},[1/0,-1/0]);return[Math.min(ft[0],lt[0]),Math.max(ft[1],lt[1])]},[1/0,-1/0])}return null},parseErrorBarsOfAxis=function j(_e,et,tt,rt,nt){var ot=et.map(function(it){return getDomainOfErrorBars(_e,it,tt,nt,rt)}).filter(function(it){return!isNil$1(it)});return ot&&ot.length?ot.reduce(function(it,st){return[Math.min(it[0],st[0]),Math.max(it[1],st[1])]},[1/0,-1/0]):null},getDomainOfItemsWithSameAxis=function j(_e,et,tt,rt,nt){var ot=et.map(function(st){var lt=st.props.dataKey;return tt==="number"&<&&getDomainOfErrorBars(_e,st,lt,rt)||getDomainOfDataByKey(_e,lt,tt,nt)});if(tt==="number")return ot.reduce(function(st,lt){return[Math.min(st[0],lt[0]),Math.max(st[1],lt[1])]},[1/0,-1/0]);var it={};return ot.reduce(function(st,lt){for(var ut=0,ct=lt.length;ut=2?mathSign(it[0]-it[1])*2*lt:lt,et&&(_e.ticks||_e.niceTicks)){var ut=(_e.ticks||_e.niceTicks).map(function(ct){var dt=nt?nt.indexOf(ct):ct;return{coordinate:rt(dt)+lt,value:ct,offset:lt}});return ut.filter(function(ct){return!isNan(ct.coordinate)})}return _e.isCategorical&&_e.categoricalDomain?_e.categoricalDomain.map(function(ct,dt){return{coordinate:rt(ct)+lt,value:ct,index:dt,offset:lt}}):rt.ticks&&!tt?rt.ticks(_e.tickCount).map(function(ct){return{coordinate:rt(ct)+lt,value:ct,offset:lt}}):rt.domain().map(function(ct,dt){return{coordinate:rt(ct)+lt,value:nt?nt[ct]:ct,index:dt,offset:lt}})},handlerWeakMap=new WeakMap,combineEventHandlers=function j(_e,et){if(typeof et!="function")return _e;handlerWeakMap.has(_e)||handlerWeakMap.set(_e,new WeakMap);var tt=handlerWeakMap.get(_e);if(tt.has(et))return tt.get(et);var rt=function(){_e.apply(void 0,arguments),et.apply(void 0,arguments)};return tt.set(et,rt),rt},parseScale=function j(_e,et,tt){var rt=_e.scale,nt=_e.type,ot=_e.layout,it=_e.axisType;if(rt==="auto")return ot==="radial"&&it==="radiusAxis"?{scale:band(),realScaleType:"band"}:ot==="radial"&&it==="angleAxis"?{scale:linear(),realScaleType:"linear"}:nt==="category"&&et&&(et.indexOf("LineChart")>=0||et.indexOf("AreaChart")>=0||et.indexOf("ComposedChart")>=0&&!tt)?{scale:point(),realScaleType:"point"}:nt==="category"?{scale:band(),realScaleType:"band"}:{scale:linear(),realScaleType:"linear"};if(isString$1(rt)){var st="scale".concat(upperFirst$1(rt));return{scale:(d3Scales[st]||point)(),realScaleType:d3Scales[st]?st:"point"}}return isFunction$6(rt)?{scale:rt}:{scale:point(),realScaleType:"point"}},EPS=1e-4,checkDomainOfScale=function j(_e){var et=_e.domain();if(!(!et||et.length<=2)){var tt=et.length,rt=_e.range(),nt=Math.min(rt[0],rt[1])-EPS,ot=Math.max(rt[0],rt[1])+EPS,it=_e(et[0]),st=_e(et[tt-1]);(itot||stot)&&_e.domain([et[0],et[tt-1]])}},offsetSign=function j(_e){var et=_e.length;if(!(et<=0))for(var tt=0,rt=_e[0].length;tt=0?(_e[it][tt][0]=nt,_e[it][tt][1]=nt+st,nt=_e[it][tt][1]):(_e[it][tt][0]=ot,_e[it][tt][1]=ot+st,ot=_e[it][tt][1])}},offsetPositive=function j(_e){var et=_e.length;if(!(et<=0))for(var tt=0,rt=_e[0].length;tt=0?(_e[ot][tt][0]=nt,_e[ot][tt][1]=nt+it,nt=_e[ot][tt][1]):(_e[ot][tt][0]=0,_e[ot][tt][1]=0)}},STACK_OFFSET_MAP={sign:offsetSign,expand:stackOffsetExpand,none:stackOffsetNone,silhouette:stackOffsetSilhouette,wiggle:stackOffsetWiggle,positive:offsetPositive},getStackedData=function j(_e,et,tt){var rt=et.map(function(it){return it.props.dataKey}),nt=STACK_OFFSET_MAP[tt],ot=shapeStack().keys(rt).value(function(it,st){return+getValueByDataKey(it,st,0)}).order(stackOrderNone).offset(nt);return ot(_e)},getStackGroupsByAxisId=function j(_e,et,tt,rt,nt,ot){if(!_e)return null;var it=ot?et.reverse():et,st={},lt=it.reduce(function(ct,dt){var ft=dt.props,pt=ft.stackId,gt=ft.hide;if(gt)return ct;var vt=dt.props[tt],bt=ct[vt]||{hasStack:!1,stackGroups:{}};if(isNumOrStr(pt)){var _t=bt.stackGroups[pt]||{numericAxisId:tt,cateAxisId:rt,items:[]};_t.items.push(dt),bt.hasStack=!0,bt.stackGroups[pt]=_t}else bt.stackGroups[uniqueId("_stackId_")]={numericAxisId:tt,cateAxisId:rt,items:[dt]};return _objectSpread$m(_objectSpread$m({},ct),{},_defineProperty$n({},vt,bt))},st),ut={};return Object.keys(lt).reduce(function(ct,dt){var ft=lt[dt];if(ft.hasStack){var pt={};ft.stackGroups=Object.keys(ft.stackGroups).reduce(function(gt,vt){var bt=ft.stackGroups[vt];return _objectSpread$m(_objectSpread$m({},gt),{},_defineProperty$n({},vt,{numericAxisId:tt,cateAxisId:rt,items:bt.items,stackedData:getStackedData(_e,bt.items,nt)}))},pt)}return _objectSpread$m(_objectSpread$m({},ct),{},_defineProperty$n({},dt,ft))},ut)},getTicksOfScale=function j(_e,et){var tt=et.realScaleType,rt=et.type,nt=et.tickCount,ot=et.originalDomain,it=et.allowDecimals,st=tt||et.scale;if(st!=="auto"&&st!=="linear")return null;if(nt&&rt==="number"&&ot&&(ot[0]==="auto"||ot[1]==="auto")){var lt=_e.domain();if(!lt.length)return null;var ut=getNiceTickValues(lt,nt,it);return _e.domain([min$9(ut),max$8(ut)]),{niceTicks:ut}}if(nt&&rt==="number"){var ct=_e.domain(),dt=getTickValuesFixedDomain(ct,nt,it);return{niceTicks:dt}}return null},getStackedDataOfItem=function j(_e,et){var tt=_e.props.stackId;if(isNumOrStr(tt)){var rt=et[tt];if(rt){var nt=rt.items.indexOf(_e);return nt>=0?rt.stackedData[nt]:null}}return null},getDomainOfSingle=function j(_e){return _e.reduce(function(et,tt){return[min$9(tt.concat([et[0]]).filter(isNumber)),max$8(tt.concat([et[1]]).filter(isNumber))]},[1/0,-1/0])},getDomainOfStackGroups=function j(_e,et,tt){return Object.keys(_e).reduce(function(rt,nt){var ot=_e[nt],it=ot.stackedData,st=it.reduce(function(lt,ut){var ct=getDomainOfSingle(ut.slice(et,tt+1));return[Math.min(lt[0],ct[0]),Math.max(lt[1],ct[1])]},[1/0,-1/0]);return[Math.min(st[0],rt[0]),Math.max(st[1],rt[1])]},[1/0,-1/0]).map(function(rt){return rt===1/0||rt===-1/0?0:rt})},MIN_VALUE_REG=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,MAX_VALUE_REG=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,parseSpecifiedDomain=function j(_e,et,tt){if(isFunction$6(_e))return _e(et,tt);if(!Array.isArray(_e))return et;var rt=[];if(isNumber(_e[0]))rt[0]=tt?_e[0]:Math.min(_e[0],et[0]);else if(MIN_VALUE_REG.test(_e[0])){var nt=+MIN_VALUE_REG.exec(_e[0])[1];rt[0]=et[0]-nt}else isFunction$6(_e[0])?rt[0]=_e[0](et[0]):rt[0]=et[0];if(isNumber(_e[1]))rt[1]=tt?_e[1]:Math.max(_e[1],et[1]);else if(MAX_VALUE_REG.test(_e[1])){var ot=+MAX_VALUE_REG.exec(_e[1])[1];rt[1]=et[1]+ot}else isFunction$6(_e[1])?rt[1]=_e[1](et[1]):rt[1]=et[1];return rt},getBandSizeOfAxis=function j(_e,et,tt){if(_e&&_e.scale&&_e.scale.bandwidth){var rt=_e.scale.bandwidth();if(!tt||rt>0)return rt}if(_e&&et&&et.length>=2){for(var nt=sortBy$1(et,function(ct){return ct.coordinate}),ot=1/0,it=1,st=nt.length;itj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$4(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$4(j){if(Array.isArray(j))return j}var RADIAN$1=Math.PI/180,radianToDegree=function j(_e){return _e*180/Math.PI},polarToCartesian=function j(_e,et,tt,rt){return{x:_e+Math.cos(-RADIAN$1*rt)*tt,y:et+Math.sin(-RADIAN$1*rt)*tt}},getMaxRadius=function j(_e,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(_e-(tt.left||0)-(tt.right||0)),Math.abs(et-(tt.top||0)-(tt.bottom||0)))/2},formatAxisMap=function j(_e,et,tt,rt,nt){var ot=_e.width,it=_e.height,st=_e.startAngle,lt=_e.endAngle,ut=getPercentValue(_e.cx,ot,ot/2),ct=getPercentValue(_e.cy,it,it/2),dt=getMaxRadius(ot,it,tt),ft=getPercentValue(_e.innerRadius,dt,0),pt=getPercentValue(_e.outerRadius,dt,dt*.8),gt=Object.keys(et);return gt.reduce(function(vt,bt){var _t=et[bt],xt=_t.domain,yt=_t.reversed,Et;if(isNil$1(_t.range))rt==="angleAxis"?Et=[st,lt]:rt==="radiusAxis"&&(Et=[ft,pt]),yt&&(Et=[Et[1],Et[0]]);else{Et=_t.range;var St=Et,$t=_slicedToArray$4(St,2);st=$t[0],lt=$t[1]}var At=parseScale(_t,nt),wt=At.realScaleType,Ct=At.scale;Ct.domain(xt).range(Et),checkDomainOfScale(Ct);var It=getTicksOfScale(Ct,_objectSpread$l(_objectSpread$l({},_t),{},{realScaleType:wt})),Ot=_objectSpread$l(_objectSpread$l(_objectSpread$l({},_t),It),{},{range:Et,radius:pt,realScaleType:wt,scale:Ct,cx:ut,cy:ct,innerRadius:ft,outerRadius:pt,startAngle:st,endAngle:lt});return _objectSpread$l(_objectSpread$l({},vt),{},_defineProperty$m({},bt,Ot))},{})},distanceBetweenPoints=function j(_e,et){var tt=_e.x,rt=_e.y,nt=et.x,ot=et.y;return Math.sqrt(Math.pow(tt-nt,2)+Math.pow(rt-ot,2))},getAngleOfPoint=function j(_e,et){var tt=_e.x,rt=_e.y,nt=et.cx,ot=et.cy,it=distanceBetweenPoints({x:tt,y:rt},{x:nt,y:ot});if(it<=0)return{radius:it};var st=(tt-nt)/it,lt=Math.acos(st);return rt>ot&&(lt=2*Math.PI-lt),{radius:it,angle:radianToDegree(lt),angleInRadian:lt}},formatAngleOfSector=function j(_e){var et=_e.startAngle,tt=_e.endAngle,rt=Math.floor(et/360),nt=Math.floor(tt/360),ot=Math.min(rt,nt);return{startAngle:et-ot*360,endAngle:tt-ot*360}},reverseFormatAngleOfSetor=function j(_e,et){var tt=et.startAngle,rt=et.endAngle,nt=Math.floor(tt/360),ot=Math.floor(rt/360),it=Math.min(nt,ot);return _e+it*360},inRangeOfSector=function j(_e,et){var tt=_e.x,rt=_e.y,nt=getAngleOfPoint({x:tt,y:rt},et),ot=nt.radius,it=nt.angle,st=et.innerRadius,lt=et.outerRadius;if(otlt)return!1;if(ot===0)return!0;var ut=formatAngleOfSector(et),ct=ut.startAngle,dt=ut.endAngle,ft=it,pt;if(ct<=dt){for(;ft>dt;)ft-=360;for(;ft=ct&&ft<=dt}else{for(;ft>ct;)ft-=360;for(;ft=dt&&ft<=ct}return pt?_objectSpread$l(_objectSpread$l({},et),{},{radius:ot,angle:reverseFormatAngleOfSetor(ft,et)}):null};function _typeof$l(j){"@babel/helpers - typeof";return _typeof$l=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$l(j)}var _excluded$7=["offset"];function _toConsumableArray$4(j){return _arrayWithoutHoles$4(j)||_iterableToArray$4(j)||_unsupportedIterableToArray$7(j)||_nonIterableSpread$4()}function _nonIterableSpread$4(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$7(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$7(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$7(j,_e)}}function _iterableToArray$4(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$4(j){if(Array.isArray(j))return _arrayLikeToArray$7(j)}function _arrayLikeToArray$7(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _objectWithoutProperties$7(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$7(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$7(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function ownKeys$k(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$k(j){for(var _e=1;_e=0?1:-1,xt,yt;rt==="insideStart"?(xt=ft+_t*ot,yt=gt):rt==="insideEnd"?(xt=pt-_t*ot,yt=!gt):rt==="end"&&(xt=pt+_t*ot,yt=gt),yt=bt<=0?yt:!yt;var Et=polarToCartesian(lt,ut,vt,xt),St=polarToCartesian(lt,ut,vt,xt+(yt?1:-1)*359),$t="M".concat(Et.x,",").concat(Et.y,` - A`).concat(vt,",").concat(vt,",0,1,").concat(yt?0:1,`, - `).concat(St.x,",").concat(St.y),At=isNil$1(_e.id)?uniqueId("recharts-radial-line-"):_e.id;return React.createElement("text",_extends$h({},tt,{dominantBaseline:"central",className:clsx("recharts-radial-bar-label",it)}),React.createElement("defs",null,React.createElement("path",{id:At,d:$t})),React.createElement("textPath",{xlinkHref:"#".concat(At)},et))},getAttrsOfPolarLabel=function j(_e){var et=_e.viewBox,tt=_e.offset,rt=_e.position,nt=et,ot=nt.cx,it=nt.cy,st=nt.innerRadius,lt=nt.outerRadius,ut=nt.startAngle,ct=nt.endAngle,dt=(ut+ct)/2;if(rt==="outside"){var ft=polarToCartesian(ot,it,lt+tt,dt),pt=ft.x,gt=ft.y;return{x:pt,y:gt,textAnchor:pt>=ot?"start":"end",verticalAnchor:"middle"}}if(rt==="center")return{x:ot,y:it,textAnchor:"middle",verticalAnchor:"middle"};if(rt==="centerTop")return{x:ot,y:it,textAnchor:"middle",verticalAnchor:"start"};if(rt==="centerBottom")return{x:ot,y:it,textAnchor:"middle",verticalAnchor:"end"};var vt=(st+lt)/2,bt=polarToCartesian(ot,it,vt,dt),_t=bt.x,xt=bt.y;return{x:_t,y:xt,textAnchor:"middle",verticalAnchor:"middle"}},getAttrsOfCartesianLabel=function j(_e){var et=_e.viewBox,tt=_e.parentViewBox,rt=_e.offset,nt=_e.position,ot=et,it=ot.x,st=ot.y,lt=ot.width,ut=ot.height,ct=ut>=0?1:-1,dt=ct*rt,ft=ct>0?"end":"start",pt=ct>0?"start":"end",gt=lt>=0?1:-1,vt=gt*rt,bt=gt>0?"end":"start",_t=gt>0?"start":"end";if(nt==="top"){var xt={x:it+lt/2,y:st-ct*rt,textAnchor:"middle",verticalAnchor:ft};return _objectSpread$k(_objectSpread$k({},xt),tt?{height:Math.max(st-tt.y,0),width:lt}:{})}if(nt==="bottom"){var yt={x:it+lt/2,y:st+ut+dt,textAnchor:"middle",verticalAnchor:pt};return _objectSpread$k(_objectSpread$k({},yt),tt?{height:Math.max(tt.y+tt.height-(st+ut),0),width:lt}:{})}if(nt==="left"){var Et={x:it-vt,y:st+ut/2,textAnchor:bt,verticalAnchor:"middle"};return _objectSpread$k(_objectSpread$k({},Et),tt?{width:Math.max(Et.x-tt.x,0),height:ut}:{})}if(nt==="right"){var St={x:it+lt+vt,y:st+ut/2,textAnchor:_t,verticalAnchor:"middle"};return _objectSpread$k(_objectSpread$k({},St),tt?{width:Math.max(tt.x+tt.width-St.x,0),height:ut}:{})}var $t=tt?{width:lt,height:ut}:{};return nt==="insideLeft"?_objectSpread$k({x:it+vt,y:st+ut/2,textAnchor:_t,verticalAnchor:"middle"},$t):nt==="insideRight"?_objectSpread$k({x:it+lt-vt,y:st+ut/2,textAnchor:bt,verticalAnchor:"middle"},$t):nt==="insideTop"?_objectSpread$k({x:it+lt/2,y:st+dt,textAnchor:"middle",verticalAnchor:pt},$t):nt==="insideBottom"?_objectSpread$k({x:it+lt/2,y:st+ut-dt,textAnchor:"middle",verticalAnchor:ft},$t):nt==="insideTopLeft"?_objectSpread$k({x:it+vt,y:st+dt,textAnchor:_t,verticalAnchor:pt},$t):nt==="insideTopRight"?_objectSpread$k({x:it+lt-vt,y:st+dt,textAnchor:bt,verticalAnchor:pt},$t):nt==="insideBottomLeft"?_objectSpread$k({x:it+vt,y:st+ut-dt,textAnchor:_t,verticalAnchor:ft},$t):nt==="insideBottomRight"?_objectSpread$k({x:it+lt-vt,y:st+ut-dt,textAnchor:bt,verticalAnchor:ft},$t):isObject$x(nt)&&(isNumber(nt.x)||isPercent(nt.x))&&(isNumber(nt.y)||isPercent(nt.y))?_objectSpread$k({x:it+getPercentValue(nt.x,lt),y:st+getPercentValue(nt.y,ut),textAnchor:"end",verticalAnchor:"end"},$t):_objectSpread$k({x:it+lt/2,y:st+ut/2,textAnchor:"middle",verticalAnchor:"middle"},$t)},isPolar=function j(_e){return"cx"in _e&&isNumber(_e.cx)};function Label(j){var _e=j.offset,et=_e===void 0?5:_e,tt=_objectWithoutProperties$7(j,_excluded$7),rt=_objectSpread$k({offset:et},tt),nt=rt.viewBox,ot=rt.position,it=rt.value,st=rt.children,lt=rt.content,ut=rt.className,ct=ut===void 0?"":ut,dt=rt.textBreakAll;if(!nt||isNil$1(it)&&isNil$1(st)&&!reactExports.isValidElement(lt)&&!isFunction$6(lt))return null;if(reactExports.isValidElement(lt))return reactExports.cloneElement(lt,rt);var ft;if(isFunction$6(lt)){if(ft=reactExports.createElement(lt,rt),reactExports.isValidElement(ft))return ft}else ft=getLabel(rt);var pt=isPolar(nt),gt=filterProps(rt,!0);if(pt&&(ot==="insideStart"||ot==="insideEnd"||ot==="end"))return renderRadialLabel(rt,ft,gt);var vt=pt?getAttrsOfPolarLabel(rt):getAttrsOfCartesianLabel(rt);return React.createElement(Text$1,_extends$h({className:clsx("recharts-label",ct)},gt,vt,{breakAll:dt}),ft)}Label.displayName="Label";var parseViewBox=function j(_e){var et=_e.cx,tt=_e.cy,rt=_e.angle,nt=_e.startAngle,ot=_e.endAngle,it=_e.r,st=_e.radius,lt=_e.innerRadius,ut=_e.outerRadius,ct=_e.x,dt=_e.y,ft=_e.top,pt=_e.left,gt=_e.width,vt=_e.height,bt=_e.clockWise,_t=_e.labelViewBox;if(_t)return _t;if(isNumber(gt)&&isNumber(vt)){if(isNumber(ct)&&isNumber(dt))return{x:ct,y:dt,width:gt,height:vt};if(isNumber(ft)&&isNumber(pt))return{x:ft,y:pt,width:gt,height:vt}}return isNumber(ct)&&isNumber(dt)?{x:ct,y:dt,width:0,height:0}:isNumber(et)&&isNumber(tt)?{cx:et,cy:tt,startAngle:nt||rt||0,endAngle:ot||rt||0,innerRadius:lt||0,outerRadius:ut||st||it||0,clockWise:bt}:_e.viewBox?_e.viewBox:{}},parseLabel=function j(_e,et){return _e?_e===!0?React.createElement(Label,{key:"label-implicit",viewBox:et}):isNumOrStr(_e)?React.createElement(Label,{key:"label-implicit",viewBox:et,value:_e}):reactExports.isValidElement(_e)?_e.type===Label?reactExports.cloneElement(_e,{key:"label-implicit",viewBox:et}):React.createElement(Label,{key:"label-implicit",content:_e,viewBox:et}):isFunction$6(_e)?React.createElement(Label,{key:"label-implicit",content:_e,viewBox:et}):isObject$x(_e)?React.createElement(Label,_extends$h({viewBox:et},_e,{key:"label-implicit"})):null:null},renderCallByParent$1=function j(_e,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!_e||!_e.children&&tt&&!_e.label)return null;var rt=_e.children,nt=parseViewBox(_e),ot=findAllByType(rt,Label).map(function(st,lt){return reactExports.cloneElement(st,{viewBox:et||nt,key:"label-".concat(lt)})});if(!tt)return ot;var it=parseLabel(_e.label,et||nt);return[it].concat(_toConsumableArray$4(ot))};Label.parseViewBox=parseViewBox;Label.renderCallByParent=renderCallByParent$1;function _typeof$k(j){"@babel/helpers - typeof";return _typeof$k=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$k(j)}var _excluded$6=["valueAccessor"],_excluded2$3=["data","dataKey","clockWise","id","textBreakAll"];function _toConsumableArray$3(j){return _arrayWithoutHoles$3(j)||_iterableToArray$3(j)||_unsupportedIterableToArray$6(j)||_nonIterableSpread$3()}function _nonIterableSpread$3(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$6(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$6(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$6(j,_e)}}function _iterableToArray$3(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$3(j){if(Array.isArray(j))return _arrayLikeToArray$6(j)}function _arrayLikeToArray$6(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _extends$g(){return _extends$g=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$6(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var defaultAccessor=function j(_e){return Array.isArray(_e.value)?last$1(_e.value):_e.value};function LabelList(j){var _e=j.valueAccessor,et=_e===void 0?defaultAccessor:_e,tt=_objectWithoutProperties$6(j,_excluded$6),rt=tt.data,nt=tt.dataKey,ot=tt.clockWise,it=tt.id,st=tt.textBreakAll,lt=_objectWithoutProperties$6(tt,_excluded2$3);return!rt||!rt.length?null:React.createElement(Layer,{className:"recharts-label-list"},rt.map(function(ut,ct){var dt=isNil$1(nt)?et(ut,ct):getValueByDataKey(ut&&ut.payload,nt),ft=isNil$1(it)?{}:{id:"".concat(it,"-").concat(ct)};return React.createElement(Label,_extends$g({},filterProps(ut,!0),lt,ft,{parentViewBox:ut.parentViewBox,value:dt,textBreakAll:st,viewBox:Label.parseViewBox(isNil$1(ot)?ut:_objectSpread$j(_objectSpread$j({},ut),{},{clockWise:ot})),key:"label-".concat(ct),index:ct}))}))}LabelList.displayName="LabelList";function parseLabelList(j,_e){return j?j===!0?React.createElement(LabelList,{key:"labelList-implicit",data:_e}):React.isValidElement(j)||isFunction$6(j)?React.createElement(LabelList,{key:"labelList-implicit",data:_e,content:j}):isObject$x(j)?React.createElement(LabelList,_extends$g({data:_e},j,{key:"labelList-implicit"})):null:null}function renderCallByParent(j,_e){var et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!j||!j.children&&et&&!j.label)return null;var tt=j.children,rt=findAllByType(tt,LabelList).map(function(ot,it){return reactExports.cloneElement(ot,{data:_e,key:"labelList-".concat(it)})});if(!et)return rt;var nt=parseLabelList(j.label,_e);return[nt].concat(_toConsumableArray$3(rt))}LabelList.renderCallByParent=renderCallByParent;function _typeof$j(j){"@babel/helpers - typeof";return _typeof$j=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$j(j)}function _extends$f(){return _extends$f=Object.assign?Object.assign.bind():function(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$6(j,_e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(j)))){var et=[],tt=!0,rt=!1,nt=void 0;try{for(var ot=j[Symbol.iterator](),it;!(tt=(it=ot.next()).done)&&(et.push(it.value),!(_e&&et.length===_e));tt=!0);}catch(st){rt=!0,nt=st}finally{try{!tt&&ot.return!=null&&ot.return()}finally{if(rt)throw nt}}return et}}function _arrayWithHoles$6(j){if(Array.isArray(j))return j}function getValidInterval(j){var _e=_slicedToArray$6(j,2),et=_e[0],tt=_e[1],rt=et,nt=tt;return et>tt&&(rt=tt,nt=et),[rt,nt]}function getFormatStep(j,_e,et){if(j.lte(0))return new Decimal$1(0);var tt=Arithmetic.getDigitCount(j.toNumber()),rt=new Decimal$1(10).pow(tt),nt=j.div(rt),ot=tt!==1?.05:.1,it=new Decimal$1(Math.ceil(nt.div(ot).toNumber())).add(et).mul(ot),st=it.mul(rt);return _e?st:new Decimal$1(Math.ceil(st))}function getTickOfSingleValue(j,_e,et){var tt=1,rt=new Decimal$1(j);if(!rt.isint()&&et){var nt=Math.abs(j);nt<1?(tt=new Decimal$1(10).pow(Arithmetic.getDigitCount(j)-1),rt=new Decimal$1(Math.floor(rt.div(tt).toNumber())).mul(tt)):nt>1&&(rt=new Decimal$1(Math.floor(j)))}else j===0?rt=new Decimal$1(Math.floor((_e-1)/2)):et||(rt=new Decimal$1(Math.floor(j)));var ot=Math.floor((_e-1)/2),it=compose(map(function(st){return rt.add(new Decimal$1(st-ot).mul(tt)).toNumber()}),range);return it(0,_e)}function calculateStep(j,_e,et,tt){var rt=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((_e-j)/(et-1)))return{step:new Decimal$1(0),tickMin:new Decimal$1(0),tickMax:new Decimal$1(0)};var nt=getFormatStep(new Decimal$1(_e).sub(j).div(et-1),tt,rt),ot;j<=0&&_e>=0?ot=new Decimal$1(0):(ot=new Decimal$1(j).add(_e).div(2),ot=ot.sub(new Decimal$1(ot).mod(nt)));var it=Math.ceil(ot.sub(j).div(nt).toNumber()),st=Math.ceil(new Decimal$1(_e).sub(ot).div(nt).toNumber()),lt=it+st+1;return lt>et?calculateStep(j,_e,et,tt,rt+1):(lt0?st+(et-lt):st,it=_e>0?it:it+(et-lt)),{step:nt,tickMin:ot.sub(new Decimal$1(it).mul(nt)),tickMax:ot.add(new Decimal$1(st).mul(nt))})}function getNiceTickValuesFn(j){var _e=_slicedToArray$6(j,2),et=_e[0],tt=_e[1],rt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,nt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,ot=Math.max(rt,2),it=getValidInterval([et,tt]),st=_slicedToArray$6(it,2),lt=st[0],ut=st[1];if(lt===-1/0||ut===1/0){var ct=ut===1/0?[lt].concat(_toConsumableArray$6(range(0,rt-1).map(function(){return 1/0}))):[].concat(_toConsumableArray$6(range(0,rt-1).map(function(){return-1/0})),[ut]);return et>tt?reverse(ct):ct}if(lt===ut)return getTickOfSingleValue(lt,rt,nt);var dt=calculateStep(lt,ut,ot,nt),ft=dt.step,pt=dt.tickMin,gt=dt.tickMax,mt=Arithmetic.rangeStep(pt,gt.add(new Decimal$1(.1).mul(ft)),ft);return et>tt?reverse(mt):mt}function getTickValuesFixedDomainFn(j,_e){var et=_slicedToArray$6(j,2),tt=et[0],rt=et[1],nt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,ot=getValidInterval([tt,rt]),it=_slicedToArray$6(ot,2),st=it[0],lt=it[1];if(st===-1/0||lt===1/0)return[tt,rt];if(st===lt)return[st];var ut=Math.max(_e,2),ct=getFormatStep(new Decimal$1(lt).sub(st).div(ut-1),nt,0),dt=[].concat(_toConsumableArray$6(Arithmetic.rangeStep(new Decimal$1(st),new Decimal$1(lt).sub(new Decimal$1(.99).mul(ct)),ct)),[lt]);return tt>rt?reverse(dt):dt}var getNiceTickValues=memoize(getNiceTickValuesFn),getTickValuesFixedDomain=memoize(getTickValuesFixedDomainFn),_excluded$8=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function _extends$i(){return _extends$i=Object.assign?Object.assign.bind():function(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$5(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$5(j){if(Array.isArray(j))return j}function _objectWithoutProperties$8(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$8(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$8(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function ErrorBar(j){var _e=j.offset,et=j.layout,tt=j.width,rt=j.dataKey,nt=j.data,ot=j.dataPointFormatter,it=j.xAxis,st=j.yAxis,lt=_objectWithoutProperties$8(j,_excluded$8),ut=filterProps(lt),ct=nt.map(function(dt){var ft=ot(dt,rt),pt=ft.x,gt=ft.y,mt=ft.value,bt=ft.errorVal;if(!bt)return null;var _t=[],xt,yt;if(Array.isArray(bt)){var Et=_slicedToArray$5(bt,2);xt=Et[0],yt=Et[1]}else xt=yt=bt;if(et==="vertical"){var St=it.scale,Tt=gt+_e,kt=Tt+tt,$t=Tt-tt,Ct=St(mt-xt),It=St(mt+yt);_t.push({x1:It,y1:kt,x2:It,y2:$t}),_t.push({x1:Ct,y1:Tt,x2:It,y2:Tt}),_t.push({x1:Ct,y1:kt,x2:Ct,y2:$t})}else if(et==="horizontal"){var Nt=st.scale,Ot=pt+_e,jt=Ot-tt,Mt=Ot+tt,Rt=Nt(mt-xt),Lt=Nt(mt+yt);_t.push({x1:jt,y1:Lt,x2:Mt,y2:Lt}),_t.push({x1:Ot,y1:Rt,x2:Ot,y2:Lt}),_t.push({x1:jt,y1:Rt,x2:Mt,y2:Rt})}return React.createElement(Layer,_extends$i({className:"recharts-errorBar",key:"bar-".concat(_t.map(function(Pt){return"".concat(Pt.x1,"-").concat(Pt.x2,"-").concat(Pt.y1,"-").concat(Pt.y2)}))},ut),_t.map(function(Pt){return React.createElement("line",_extends$i({},Pt,{key:"line-".concat(Pt.x1,"-").concat(Pt.x2,"-").concat(Pt.y1,"-").concat(Pt.y2)}))}))});return React.createElement(Layer,{className:"recharts-errorBars"},ct)}ErrorBar.defaultProps={stroke:"black",strokeWidth:1.5,width:5,offset:0,layout:"horizontal"};ErrorBar.displayName="ErrorBar";function _typeof$o(j){"@babel/helpers - typeof";return _typeof$o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$o(j)}function ownKeys$n(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$n(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function getValueByDataKey(j,_e,et){return isNil$1(j)||isNil$1(_e)?et:isNumOrStr(_e)?get$3(j,_e,et):isFunction$6(_e)?_e(j):et}function getDomainOfDataByKey(j,_e,et,tt){var rt=flatMap$1(j,function(it){return getValueByDataKey(it,_e)});if(et==="number"){var nt=rt.filter(function(it){return isNumber(it)||parseFloat(it)});return nt.length?[min$3(nt),max$3(nt)]:[1/0,-1/0]}var ot=tt?rt.filter(function(it){return!isNil$1(it)}):rt;return ot.map(function(it){return isNumOrStr(it)||it instanceof Date?it:""})}var calculateActiveTickIndex=function j(_e){var et,tt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],rt=arguments.length>2?arguments[2]:void 0,nt=arguments.length>3?arguments[3]:void 0,ot=-1,it=(et=tt==null?void 0:tt.length)!==null&&et!==void 0?et:0;if(it<=1)return 0;if(nt&&nt.axisType==="angleAxis"&&Math.abs(Math.abs(nt.range[1]-nt.range[0])-360)<=1e-6)for(var st=nt.range,lt=0;lt0?rt[lt-1].coordinate:rt[it-1].coordinate,ct=rt[lt].coordinate,dt=lt>=it-1?rt[0].coordinate:rt[lt+1].coordinate,ft=void 0;if(mathSign(ct-ut)!==mathSign(dt-ct)){var pt=[];if(mathSign(dt-ct)===mathSign(st[1]-st[0])){ft=dt;var gt=ct+st[1]-st[0];pt[0]=Math.min(gt,(gt+ut)/2),pt[1]=Math.max(gt,(gt+ut)/2)}else{ft=ut;var mt=dt+st[1]-st[0];pt[0]=Math.min(ct,(mt+ct)/2),pt[1]=Math.max(ct,(mt+ct)/2)}var bt=[Math.min(ct,(ft+ct)/2),Math.max(ct,(ft+ct)/2)];if(_e>bt[0]&&_e<=bt[1]||_e>=pt[0]&&_e<=pt[1]){ot=rt[lt].index;break}}else{var _t=Math.min(ut,dt),xt=Math.max(ut,dt);if(_e>(_t+ct)/2&&_e<=(xt+ct)/2){ot=rt[lt].index;break}}}else for(var yt=0;yt0&&yt(tt[yt].coordinate+tt[yt-1].coordinate)/2&&_e<=(tt[yt].coordinate+tt[yt+1].coordinate)/2||yt===it-1&&_e>(tt[yt].coordinate+tt[yt-1].coordinate)/2){ot=tt[yt].index;break}return ot},getMainColorOfGraphicItem=function j(_e){var et=_e,tt=et.type.displayName,rt=_e.props,nt=rt.stroke,ot=rt.fill,it;switch(tt){case"Line":it=nt;break;case"Area":case"Radar":it=nt&&nt!=="none"?nt:ot;break;default:it=ot;break}return it},getBarSizeList=function j(_e){var et=_e.barSize,tt=_e.stackGroups,rt=tt===void 0?{}:tt;if(!rt)return{};for(var nt={},ot=Object.keys(rt),it=0,st=ot.length;it=0});if(mt&&mt.length){var bt=mt[0].props.barSize,_t=mt[0].props[gt];nt[_t]||(nt[_t]=[]),nt[_t].push({item:mt[0],stackList:mt.slice(1),barSize:isNil$1(bt)?et:bt})}}return nt},getBarPosition=function j(_e){var et=_e.barGap,tt=_e.barCategoryGap,rt=_e.bandSize,nt=_e.sizeList,ot=nt===void 0?[]:nt,it=_e.maxBarSize,st=ot.length;if(st<1)return null;var lt=getPercentValue(et,rt,0,!0),ut,ct=[];if(ot[0].barSize===+ot[0].barSize){var dt=!1,ft=rt/st,pt=ot.reduce(function(yt,Et){return yt+Et.barSize||0},0);pt+=(st-1)*lt,pt>=rt&&(pt-=(st-1)*lt,lt=0),pt>=rt&&ft>0&&(dt=!0,ft*=.9,pt=st*ft);var gt=(rt-pt)/2>>0,mt={offset:gt-lt,size:0};ut=ot.reduce(function(yt,Et){var St={item:Et.item,position:{offset:mt.offset+mt.size+lt,size:dt?ft:Et.barSize}},Tt=[].concat(_toConsumableArray$5(yt),[St]);return mt=Tt[Tt.length-1].position,Et.stackList&&Et.stackList.length&&Et.stackList.forEach(function(kt){Tt.push({item:kt,position:mt})}),Tt},ct)}else{var bt=getPercentValue(tt,rt,0,!0);rt-2*bt-(st-1)*lt<=0&&(lt=0);var _t=(rt-2*bt-(st-1)*lt)/st;_t>1&&(_t>>=0);var xt=it===+it?Math.min(_t,it):_t;ut=ot.reduce(function(yt,Et,St){var Tt=[].concat(_toConsumableArray$5(yt),[{item:Et.item,position:{offset:bt+(_t+lt)*St+(_t-xt)/2,size:xt}}]);return Et.stackList&&Et.stackList.length&&Et.stackList.forEach(function(kt){Tt.push({item:kt,position:Tt[Tt.length-1].position})}),Tt},ct)}return ut},appendOffsetOfLegend=function j(_e,et,tt,rt){var nt=tt.children,ot=tt.width,it=tt.margin,st=ot-(it.left||0)-(it.right||0),lt=getLegendProps({children:nt,legendWidth:st});if(lt){var ut=rt||{},ct=ut.width,dt=ut.height,ft=lt.align,pt=lt.verticalAlign,gt=lt.layout;if((gt==="vertical"||gt==="horizontal"&&pt==="middle")&&ft!=="center"&&isNumber(_e[ft]))return _objectSpread$m(_objectSpread$m({},_e),{},_defineProperty$n({},ft,_e[ft]+(ct||0)));if((gt==="horizontal"||gt==="vertical"&&ft==="center")&&pt!=="middle"&&isNumber(_e[pt]))return _objectSpread$m(_objectSpread$m({},_e),{},_defineProperty$n({},pt,_e[pt]+(dt||0)))}return _e},isErrorBarRelevantForAxis=function j(_e,et,tt){return isNil$1(et)?!0:_e==="horizontal"?et==="yAxis":_e==="vertical"||tt==="x"?et==="xAxis":tt==="y"?et==="yAxis":!0},getDomainOfErrorBars=function j(_e,et,tt,rt,nt){var ot=et.props.children,it=findAllByType(ot,ErrorBar).filter(function(lt){return isErrorBarRelevantForAxis(rt,nt,lt.props.direction)});if(it&&it.length){var st=it.map(function(lt){return lt.props.dataKey});return _e.reduce(function(lt,ut){var ct=getValueByDataKey(ut,tt,0),dt=Array.isArray(ct)?[min$3(ct),max$3(ct)]:[ct,ct],ft=st.reduce(function(pt,gt){var mt=getValueByDataKey(ut,gt,0),bt=dt[0]-Math.abs(Array.isArray(mt)?mt[0]:mt),_t=dt[1]+Math.abs(Array.isArray(mt)?mt[1]:mt);return[Math.min(bt,pt[0]),Math.max(_t,pt[1])]},[1/0,-1/0]);return[Math.min(ft[0],lt[0]),Math.max(ft[1],lt[1])]},[1/0,-1/0])}return null},parseErrorBarsOfAxis=function j(_e,et,tt,rt,nt){var ot=et.map(function(it){return getDomainOfErrorBars(_e,it,tt,nt,rt)}).filter(function(it){return!isNil$1(it)});return ot&&ot.length?ot.reduce(function(it,st){return[Math.min(it[0],st[0]),Math.max(it[1],st[1])]},[1/0,-1/0]):null},getDomainOfItemsWithSameAxis=function j(_e,et,tt,rt,nt){var ot=et.map(function(st){var lt=st.props.dataKey;return tt==="number"&<&&getDomainOfErrorBars(_e,st,lt,rt)||getDomainOfDataByKey(_e,lt,tt,nt)});if(tt==="number")return ot.reduce(function(st,lt){return[Math.min(st[0],lt[0]),Math.max(st[1],lt[1])]},[1/0,-1/0]);var it={};return ot.reduce(function(st,lt){for(var ut=0,ct=lt.length;ut=2?mathSign(it[0]-it[1])*2*lt:lt,et&&(_e.ticks||_e.niceTicks)){var ut=(_e.ticks||_e.niceTicks).map(function(ct){var dt=nt?nt.indexOf(ct):ct;return{coordinate:rt(dt)+lt,value:ct,offset:lt}});return ut.filter(function(ct){return!isNan(ct.coordinate)})}return _e.isCategorical&&_e.categoricalDomain?_e.categoricalDomain.map(function(ct,dt){return{coordinate:rt(ct)+lt,value:ct,index:dt,offset:lt}}):rt.ticks&&!tt?rt.ticks(_e.tickCount).map(function(ct){return{coordinate:rt(ct)+lt,value:ct,offset:lt}}):rt.domain().map(function(ct,dt){return{coordinate:rt(ct)+lt,value:nt?nt[ct]:ct,index:dt,offset:lt}})},handlerWeakMap=new WeakMap,combineEventHandlers=function j(_e,et){if(typeof et!="function")return _e;handlerWeakMap.has(_e)||handlerWeakMap.set(_e,new WeakMap);var tt=handlerWeakMap.get(_e);if(tt.has(et))return tt.get(et);var rt=function(){_e.apply(void 0,arguments),et.apply(void 0,arguments)};return tt.set(et,rt),rt},parseScale=function j(_e,et,tt){var rt=_e.scale,nt=_e.type,ot=_e.layout,it=_e.axisType;if(rt==="auto")return ot==="radial"&&it==="radiusAxis"?{scale:band(),realScaleType:"band"}:ot==="radial"&&it==="angleAxis"?{scale:linear(),realScaleType:"linear"}:nt==="category"&&et&&(et.indexOf("LineChart")>=0||et.indexOf("AreaChart")>=0||et.indexOf("ComposedChart")>=0&&!tt)?{scale:point(),realScaleType:"point"}:nt==="category"?{scale:band(),realScaleType:"band"}:{scale:linear(),realScaleType:"linear"};if(isString$1(rt)){var st="scale".concat(upperFirst$1(rt));return{scale:(d3Scales[st]||point)(),realScaleType:d3Scales[st]?st:"point"}}return isFunction$6(rt)?{scale:rt}:{scale:point(),realScaleType:"point"}},EPS=1e-4,checkDomainOfScale=function j(_e){var et=_e.domain();if(!(!et||et.length<=2)){var tt=et.length,rt=_e.range(),nt=Math.min(rt[0],rt[1])-EPS,ot=Math.max(rt[0],rt[1])+EPS,it=_e(et[0]),st=_e(et[tt-1]);(itot||stot)&&_e.domain([et[0],et[tt-1]])}},offsetSign=function j(_e){var et=_e.length;if(!(et<=0))for(var tt=0,rt=_e[0].length;tt=0?(_e[it][tt][0]=nt,_e[it][tt][1]=nt+st,nt=_e[it][tt][1]):(_e[it][tt][0]=ot,_e[it][tt][1]=ot+st,ot=_e[it][tt][1])}},offsetPositive=function j(_e){var et=_e.length;if(!(et<=0))for(var tt=0,rt=_e[0].length;tt=0?(_e[ot][tt][0]=nt,_e[ot][tt][1]=nt+it,nt=_e[ot][tt][1]):(_e[ot][tt][0]=0,_e[ot][tt][1]=0)}},STACK_OFFSET_MAP={sign:offsetSign,expand:stackOffsetExpand,none:stackOffsetNone,silhouette:stackOffsetSilhouette,wiggle:stackOffsetWiggle,positive:offsetPositive},getStackedData=function j(_e,et,tt){var rt=et.map(function(it){return it.props.dataKey}),nt=STACK_OFFSET_MAP[tt],ot=shapeStack().keys(rt).value(function(it,st){return+getValueByDataKey(it,st,0)}).order(stackOrderNone).offset(nt);return ot(_e)},getStackGroupsByAxisId=function j(_e,et,tt,rt,nt,ot){if(!_e)return null;var it=ot?et.reverse():et,st={},lt=it.reduce(function(ct,dt){var ft=dt.props,pt=ft.stackId,gt=ft.hide;if(gt)return ct;var mt=dt.props[tt],bt=ct[mt]||{hasStack:!1,stackGroups:{}};if(isNumOrStr(pt)){var _t=bt.stackGroups[pt]||{numericAxisId:tt,cateAxisId:rt,items:[]};_t.items.push(dt),bt.hasStack=!0,bt.stackGroups[pt]=_t}else bt.stackGroups[uniqueId("_stackId_")]={numericAxisId:tt,cateAxisId:rt,items:[dt]};return _objectSpread$m(_objectSpread$m({},ct),{},_defineProperty$n({},mt,bt))},st),ut={};return Object.keys(lt).reduce(function(ct,dt){var ft=lt[dt];if(ft.hasStack){var pt={};ft.stackGroups=Object.keys(ft.stackGroups).reduce(function(gt,mt){var bt=ft.stackGroups[mt];return _objectSpread$m(_objectSpread$m({},gt),{},_defineProperty$n({},mt,{numericAxisId:tt,cateAxisId:rt,items:bt.items,stackedData:getStackedData(_e,bt.items,nt)}))},pt)}return _objectSpread$m(_objectSpread$m({},ct),{},_defineProperty$n({},dt,ft))},ut)},getTicksOfScale=function j(_e,et){var tt=et.realScaleType,rt=et.type,nt=et.tickCount,ot=et.originalDomain,it=et.allowDecimals,st=tt||et.scale;if(st!=="auto"&&st!=="linear")return null;if(nt&&rt==="number"&&ot&&(ot[0]==="auto"||ot[1]==="auto")){var lt=_e.domain();if(!lt.length)return null;var ut=getNiceTickValues(lt,nt,it);return _e.domain([min$3(ut),max$3(ut)]),{niceTicks:ut}}if(nt&&rt==="number"){var ct=_e.domain(),dt=getTickValuesFixedDomain(ct,nt,it);return{niceTicks:dt}}return null},getStackedDataOfItem=function j(_e,et){var tt=_e.props.stackId;if(isNumOrStr(tt)){var rt=et[tt];if(rt){var nt=rt.items.indexOf(_e);return nt>=0?rt.stackedData[nt]:null}}return null},getDomainOfSingle=function j(_e){return _e.reduce(function(et,tt){return[min$3(tt.concat([et[0]]).filter(isNumber)),max$3(tt.concat([et[1]]).filter(isNumber))]},[1/0,-1/0])},getDomainOfStackGroups=function j(_e,et,tt){return Object.keys(_e).reduce(function(rt,nt){var ot=_e[nt],it=ot.stackedData,st=it.reduce(function(lt,ut){var ct=getDomainOfSingle(ut.slice(et,tt+1));return[Math.min(lt[0],ct[0]),Math.max(lt[1],ct[1])]},[1/0,-1/0]);return[Math.min(st[0],rt[0]),Math.max(st[1],rt[1])]},[1/0,-1/0]).map(function(rt){return rt===1/0||rt===-1/0?0:rt})},MIN_VALUE_REG=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,MAX_VALUE_REG=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,parseSpecifiedDomain=function j(_e,et,tt){if(isFunction$6(_e))return _e(et,tt);if(!Array.isArray(_e))return et;var rt=[];if(isNumber(_e[0]))rt[0]=tt?_e[0]:Math.min(_e[0],et[0]);else if(MIN_VALUE_REG.test(_e[0])){var nt=+MIN_VALUE_REG.exec(_e[0])[1];rt[0]=et[0]-nt}else isFunction$6(_e[0])?rt[0]=_e[0](et[0]):rt[0]=et[0];if(isNumber(_e[1]))rt[1]=tt?_e[1]:Math.max(_e[1],et[1]);else if(MAX_VALUE_REG.test(_e[1])){var ot=+MAX_VALUE_REG.exec(_e[1])[1];rt[1]=et[1]+ot}else isFunction$6(_e[1])?rt[1]=_e[1](et[1]):rt[1]=et[1];return rt},getBandSizeOfAxis=function j(_e,et,tt){if(_e&&_e.scale&&_e.scale.bandwidth){var rt=_e.scale.bandwidth();if(!tt||rt>0)return rt}if(_e&&et&&et.length>=2){for(var nt=sortBy$1(et,function(ct){return ct.coordinate}),ot=1/0,it=1,st=nt.length;itj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$4(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$4(j){if(Array.isArray(j))return j}var RADIAN$1=Math.PI/180,radianToDegree=function j(_e){return _e*180/Math.PI},polarToCartesian=function j(_e,et,tt,rt){return{x:_e+Math.cos(-RADIAN$1*rt)*tt,y:et+Math.sin(-RADIAN$1*rt)*tt}},getMaxRadius=function j(_e,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(_e-(tt.left||0)-(tt.right||0)),Math.abs(et-(tt.top||0)-(tt.bottom||0)))/2},formatAxisMap=function j(_e,et,tt,rt,nt){var ot=_e.width,it=_e.height,st=_e.startAngle,lt=_e.endAngle,ut=getPercentValue(_e.cx,ot,ot/2),ct=getPercentValue(_e.cy,it,it/2),dt=getMaxRadius(ot,it,tt),ft=getPercentValue(_e.innerRadius,dt,0),pt=getPercentValue(_e.outerRadius,dt,dt*.8),gt=Object.keys(et);return gt.reduce(function(mt,bt){var _t=et[bt],xt=_t.domain,yt=_t.reversed,Et;if(isNil$1(_t.range))rt==="angleAxis"?Et=[st,lt]:rt==="radiusAxis"&&(Et=[ft,pt]),yt&&(Et=[Et[1],Et[0]]);else{Et=_t.range;var St=Et,Tt=_slicedToArray$4(St,2);st=Tt[0],lt=Tt[1]}var kt=parseScale(_t,nt),$t=kt.realScaleType,Ct=kt.scale;Ct.domain(xt).range(Et),checkDomainOfScale(Ct);var It=getTicksOfScale(Ct,_objectSpread$l(_objectSpread$l({},_t),{},{realScaleType:$t})),Nt=_objectSpread$l(_objectSpread$l(_objectSpread$l({},_t),It),{},{range:Et,radius:pt,realScaleType:$t,scale:Ct,cx:ut,cy:ct,innerRadius:ft,outerRadius:pt,startAngle:st,endAngle:lt});return _objectSpread$l(_objectSpread$l({},mt),{},_defineProperty$m({},bt,Nt))},{})},distanceBetweenPoints=function j(_e,et){var tt=_e.x,rt=_e.y,nt=et.x,ot=et.y;return Math.sqrt(Math.pow(tt-nt,2)+Math.pow(rt-ot,2))},getAngleOfPoint=function j(_e,et){var tt=_e.x,rt=_e.y,nt=et.cx,ot=et.cy,it=distanceBetweenPoints({x:tt,y:rt},{x:nt,y:ot});if(it<=0)return{radius:it};var st=(tt-nt)/it,lt=Math.acos(st);return rt>ot&&(lt=2*Math.PI-lt),{radius:it,angle:radianToDegree(lt),angleInRadian:lt}},formatAngleOfSector=function j(_e){var et=_e.startAngle,tt=_e.endAngle,rt=Math.floor(et/360),nt=Math.floor(tt/360),ot=Math.min(rt,nt);return{startAngle:et-ot*360,endAngle:tt-ot*360}},reverseFormatAngleOfSetor=function j(_e,et){var tt=et.startAngle,rt=et.endAngle,nt=Math.floor(tt/360),ot=Math.floor(rt/360),it=Math.min(nt,ot);return _e+it*360},inRangeOfSector=function j(_e,et){var tt=_e.x,rt=_e.y,nt=getAngleOfPoint({x:tt,y:rt},et),ot=nt.radius,it=nt.angle,st=et.innerRadius,lt=et.outerRadius;if(otlt)return!1;if(ot===0)return!0;var ut=formatAngleOfSector(et),ct=ut.startAngle,dt=ut.endAngle,ft=it,pt;if(ct<=dt){for(;ft>dt;)ft-=360;for(;ft=ct&&ft<=dt}else{for(;ft>ct;)ft-=360;for(;ft=dt&&ft<=ct}return pt?_objectSpread$l(_objectSpread$l({},et),{},{radius:ot,angle:reverseFormatAngleOfSetor(ft,et)}):null};function _typeof$l(j){"@babel/helpers - typeof";return _typeof$l=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$l(j)}var _excluded$7=["offset"];function _toConsumableArray$4(j){return _arrayWithoutHoles$4(j)||_iterableToArray$4(j)||_unsupportedIterableToArray$7(j)||_nonIterableSpread$4()}function _nonIterableSpread$4(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$7(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$7(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$7(j,_e)}}function _iterableToArray$4(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$4(j){if(Array.isArray(j))return _arrayLikeToArray$7(j)}function _arrayLikeToArray$7(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _objectWithoutProperties$7(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$7(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$7(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function ownKeys$k(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$k(j){for(var _e=1;_e=0?1:-1,xt,yt;rt==="insideStart"?(xt=ft+_t*ot,yt=gt):rt==="insideEnd"?(xt=pt-_t*ot,yt=!gt):rt==="end"&&(xt=pt+_t*ot,yt=gt),yt=bt<=0?yt:!yt;var Et=polarToCartesian(lt,ut,mt,xt),St=polarToCartesian(lt,ut,mt,xt+(yt?1:-1)*359),Tt="M".concat(Et.x,",").concat(Et.y,` + A`).concat(mt,",").concat(mt,",0,1,").concat(yt?0:1,`, + `).concat(St.x,",").concat(St.y),kt=isNil$1(_e.id)?uniqueId("recharts-radial-line-"):_e.id;return React.createElement("text",_extends$h({},tt,{dominantBaseline:"central",className:clsx("recharts-radial-bar-label",it)}),React.createElement("defs",null,React.createElement("path",{id:kt,d:Tt})),React.createElement("textPath",{xlinkHref:"#".concat(kt)},et))},getAttrsOfPolarLabel=function j(_e){var et=_e.viewBox,tt=_e.offset,rt=_e.position,nt=et,ot=nt.cx,it=nt.cy,st=nt.innerRadius,lt=nt.outerRadius,ut=nt.startAngle,ct=nt.endAngle,dt=(ut+ct)/2;if(rt==="outside"){var ft=polarToCartesian(ot,it,lt+tt,dt),pt=ft.x,gt=ft.y;return{x:pt,y:gt,textAnchor:pt>=ot?"start":"end",verticalAnchor:"middle"}}if(rt==="center")return{x:ot,y:it,textAnchor:"middle",verticalAnchor:"middle"};if(rt==="centerTop")return{x:ot,y:it,textAnchor:"middle",verticalAnchor:"start"};if(rt==="centerBottom")return{x:ot,y:it,textAnchor:"middle",verticalAnchor:"end"};var mt=(st+lt)/2,bt=polarToCartesian(ot,it,mt,dt),_t=bt.x,xt=bt.y;return{x:_t,y:xt,textAnchor:"middle",verticalAnchor:"middle"}},getAttrsOfCartesianLabel=function j(_e){var et=_e.viewBox,tt=_e.parentViewBox,rt=_e.offset,nt=_e.position,ot=et,it=ot.x,st=ot.y,lt=ot.width,ut=ot.height,ct=ut>=0?1:-1,dt=ct*rt,ft=ct>0?"end":"start",pt=ct>0?"start":"end",gt=lt>=0?1:-1,mt=gt*rt,bt=gt>0?"end":"start",_t=gt>0?"start":"end";if(nt==="top"){var xt={x:it+lt/2,y:st-ct*rt,textAnchor:"middle",verticalAnchor:ft};return _objectSpread$k(_objectSpread$k({},xt),tt?{height:Math.max(st-tt.y,0),width:lt}:{})}if(nt==="bottom"){var yt={x:it+lt/2,y:st+ut+dt,textAnchor:"middle",verticalAnchor:pt};return _objectSpread$k(_objectSpread$k({},yt),tt?{height:Math.max(tt.y+tt.height-(st+ut),0),width:lt}:{})}if(nt==="left"){var Et={x:it-mt,y:st+ut/2,textAnchor:bt,verticalAnchor:"middle"};return _objectSpread$k(_objectSpread$k({},Et),tt?{width:Math.max(Et.x-tt.x,0),height:ut}:{})}if(nt==="right"){var St={x:it+lt+mt,y:st+ut/2,textAnchor:_t,verticalAnchor:"middle"};return _objectSpread$k(_objectSpread$k({},St),tt?{width:Math.max(tt.x+tt.width-St.x,0),height:ut}:{})}var Tt=tt?{width:lt,height:ut}:{};return nt==="insideLeft"?_objectSpread$k({x:it+mt,y:st+ut/2,textAnchor:_t,verticalAnchor:"middle"},Tt):nt==="insideRight"?_objectSpread$k({x:it+lt-mt,y:st+ut/2,textAnchor:bt,verticalAnchor:"middle"},Tt):nt==="insideTop"?_objectSpread$k({x:it+lt/2,y:st+dt,textAnchor:"middle",verticalAnchor:pt},Tt):nt==="insideBottom"?_objectSpread$k({x:it+lt/2,y:st+ut-dt,textAnchor:"middle",verticalAnchor:ft},Tt):nt==="insideTopLeft"?_objectSpread$k({x:it+mt,y:st+dt,textAnchor:_t,verticalAnchor:pt},Tt):nt==="insideTopRight"?_objectSpread$k({x:it+lt-mt,y:st+dt,textAnchor:bt,verticalAnchor:pt},Tt):nt==="insideBottomLeft"?_objectSpread$k({x:it+mt,y:st+ut-dt,textAnchor:_t,verticalAnchor:ft},Tt):nt==="insideBottomRight"?_objectSpread$k({x:it+lt-mt,y:st+ut-dt,textAnchor:bt,verticalAnchor:ft},Tt):isObject$h(nt)&&(isNumber(nt.x)||isPercent(nt.x))&&(isNumber(nt.y)||isPercent(nt.y))?_objectSpread$k({x:it+getPercentValue(nt.x,lt),y:st+getPercentValue(nt.y,ut),textAnchor:"end",verticalAnchor:"end"},Tt):_objectSpread$k({x:it+lt/2,y:st+ut/2,textAnchor:"middle",verticalAnchor:"middle"},Tt)},isPolar=function j(_e){return"cx"in _e&&isNumber(_e.cx)};function Label(j){var _e=j.offset,et=_e===void 0?5:_e,tt=_objectWithoutProperties$7(j,_excluded$7),rt=_objectSpread$k({offset:et},tt),nt=rt.viewBox,ot=rt.position,it=rt.value,st=rt.children,lt=rt.content,ut=rt.className,ct=ut===void 0?"":ut,dt=rt.textBreakAll;if(!nt||isNil$1(it)&&isNil$1(st)&&!reactExports.isValidElement(lt)&&!isFunction$6(lt))return null;if(reactExports.isValidElement(lt))return reactExports.cloneElement(lt,rt);var ft;if(isFunction$6(lt)){if(ft=reactExports.createElement(lt,rt),reactExports.isValidElement(ft))return ft}else ft=getLabel(rt);var pt=isPolar(nt),gt=filterProps(rt,!0);if(pt&&(ot==="insideStart"||ot==="insideEnd"||ot==="end"))return renderRadialLabel(rt,ft,gt);var mt=pt?getAttrsOfPolarLabel(rt):getAttrsOfCartesianLabel(rt);return React.createElement(Text$1,_extends$h({className:clsx("recharts-label",ct)},gt,mt,{breakAll:dt}),ft)}Label.displayName="Label";var parseViewBox=function j(_e){var et=_e.cx,tt=_e.cy,rt=_e.angle,nt=_e.startAngle,ot=_e.endAngle,it=_e.r,st=_e.radius,lt=_e.innerRadius,ut=_e.outerRadius,ct=_e.x,dt=_e.y,ft=_e.top,pt=_e.left,gt=_e.width,mt=_e.height,bt=_e.clockWise,_t=_e.labelViewBox;if(_t)return _t;if(isNumber(gt)&&isNumber(mt)){if(isNumber(ct)&&isNumber(dt))return{x:ct,y:dt,width:gt,height:mt};if(isNumber(ft)&&isNumber(pt))return{x:ft,y:pt,width:gt,height:mt}}return isNumber(ct)&&isNumber(dt)?{x:ct,y:dt,width:0,height:0}:isNumber(et)&&isNumber(tt)?{cx:et,cy:tt,startAngle:nt||rt||0,endAngle:ot||rt||0,innerRadius:lt||0,outerRadius:ut||st||it||0,clockWise:bt}:_e.viewBox?_e.viewBox:{}},parseLabel=function j(_e,et){return _e?_e===!0?React.createElement(Label,{key:"label-implicit",viewBox:et}):isNumOrStr(_e)?React.createElement(Label,{key:"label-implicit",viewBox:et,value:_e}):reactExports.isValidElement(_e)?_e.type===Label?reactExports.cloneElement(_e,{key:"label-implicit",viewBox:et}):React.createElement(Label,{key:"label-implicit",content:_e,viewBox:et}):isFunction$6(_e)?React.createElement(Label,{key:"label-implicit",content:_e,viewBox:et}):isObject$h(_e)?React.createElement(Label,_extends$h({viewBox:et},_e,{key:"label-implicit"})):null:null},renderCallByParent$1=function j(_e,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!_e||!_e.children&&tt&&!_e.label)return null;var rt=_e.children,nt=parseViewBox(_e),ot=findAllByType(rt,Label).map(function(st,lt){return reactExports.cloneElement(st,{viewBox:et||nt,key:"label-".concat(lt)})});if(!tt)return ot;var it=parseLabel(_e.label,et||nt);return[it].concat(_toConsumableArray$4(ot))};Label.parseViewBox=parseViewBox;Label.renderCallByParent=renderCallByParent$1;function _typeof$k(j){"@babel/helpers - typeof";return _typeof$k=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$k(j)}var _excluded$6=["valueAccessor"],_excluded2$3=["data","dataKey","clockWise","id","textBreakAll"];function _toConsumableArray$3(j){return _arrayWithoutHoles$3(j)||_iterableToArray$3(j)||_unsupportedIterableToArray$6(j)||_nonIterableSpread$3()}function _nonIterableSpread$3(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$6(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$6(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$6(j,_e)}}function _iterableToArray$3(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$3(j){if(Array.isArray(j))return _arrayLikeToArray$6(j)}function _arrayLikeToArray$6(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _extends$g(){return _extends$g=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$6(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var defaultAccessor=function j(_e){return Array.isArray(_e.value)?last$1(_e.value):_e.value};function LabelList(j){var _e=j.valueAccessor,et=_e===void 0?defaultAccessor:_e,tt=_objectWithoutProperties$6(j,_excluded$6),rt=tt.data,nt=tt.dataKey,ot=tt.clockWise,it=tt.id,st=tt.textBreakAll,lt=_objectWithoutProperties$6(tt,_excluded2$3);return!rt||!rt.length?null:React.createElement(Layer,{className:"recharts-label-list"},rt.map(function(ut,ct){var dt=isNil$1(nt)?et(ut,ct):getValueByDataKey(ut&&ut.payload,nt),ft=isNil$1(it)?{}:{id:"".concat(it,"-").concat(ct)};return React.createElement(Label,_extends$g({},filterProps(ut,!0),lt,ft,{parentViewBox:ut.parentViewBox,value:dt,textBreakAll:st,viewBox:Label.parseViewBox(isNil$1(ot)?ut:_objectSpread$j(_objectSpread$j({},ut),{},{clockWise:ot})),key:"label-".concat(ct),index:ct}))}))}LabelList.displayName="LabelList";function parseLabelList(j,_e){return j?j===!0?React.createElement(LabelList,{key:"labelList-implicit",data:_e}):React.isValidElement(j)||isFunction$6(j)?React.createElement(LabelList,{key:"labelList-implicit",data:_e,content:j}):isObject$h(j)?React.createElement(LabelList,_extends$g({data:_e},j,{key:"labelList-implicit"})):null:null}function renderCallByParent(j,_e){var et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!j||!j.children&&et&&!j.label)return null;var tt=j.children,rt=findAllByType(tt,LabelList).map(function(ot,it){return reactExports.cloneElement(ot,{data:_e,key:"labelList-".concat(it)})});if(!et)return rt;var nt=parseLabelList(j.label,_e);return[nt].concat(_toConsumableArray$3(rt))}LabelList.renderCallByParent=renderCallByParent;function _typeof$j(j){"@babel/helpers - typeof";return _typeof$j=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$j(j)}function _extends$f(){return _extends$f=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e180),",").concat(+(ot>lt),`, `).concat(ct.x,",").concat(ct.y,` `);if(rt>0){var ft=polarToCartesian(et,tt,rt,ot),pt=polarToCartesian(et,tt,rt,lt);dt+="L ".concat(pt.x,",").concat(pt.y,` A `).concat(rt,",").concat(rt,`,0, `).concat(+(Math.abs(st)>180),",").concat(+(ot<=lt),`, - `).concat(ft.x,",").concat(ft.y," Z")}else dt+="L ".concat(et,",").concat(tt," Z");return dt},getSectorWithCorner=function j(_e){var et=_e.cx,tt=_e.cy,rt=_e.innerRadius,nt=_e.outerRadius,ot=_e.cornerRadius,it=_e.forceCornerRadius,st=_e.cornerIsExternal,lt=_e.startAngle,ut=_e.endAngle,ct=mathSign(ut-lt),dt=getTangentCircle({cx:et,cy:tt,radius:nt,angle:lt,sign:ct,cornerRadius:ot,cornerIsExternal:st}),ft=dt.circleTangency,pt=dt.lineTangency,gt=dt.theta,vt=getTangentCircle({cx:et,cy:tt,radius:nt,angle:ut,sign:-ct,cornerRadius:ot,cornerIsExternal:st}),bt=vt.circleTangency,_t=vt.lineTangency,xt=vt.theta,yt=st?Math.abs(lt-ut):Math.abs(lt-ut)-gt-xt;if(yt<0)return it?"M ".concat(pt.x,",").concat(pt.y,` + `).concat(ft.x,",").concat(ft.y," Z")}else dt+="L ".concat(et,",").concat(tt," Z");return dt},getSectorWithCorner=function j(_e){var et=_e.cx,tt=_e.cy,rt=_e.innerRadius,nt=_e.outerRadius,ot=_e.cornerRadius,it=_e.forceCornerRadius,st=_e.cornerIsExternal,lt=_e.startAngle,ut=_e.endAngle,ct=mathSign(ut-lt),dt=getTangentCircle({cx:et,cy:tt,radius:nt,angle:lt,sign:ct,cornerRadius:ot,cornerIsExternal:st}),ft=dt.circleTangency,pt=dt.lineTangency,gt=dt.theta,mt=getTangentCircle({cx:et,cy:tt,radius:nt,angle:ut,sign:-ct,cornerRadius:ot,cornerIsExternal:st}),bt=mt.circleTangency,_t=mt.lineTangency,xt=mt.theta,yt=st?Math.abs(lt-ut):Math.abs(lt-ut)-gt-xt;if(yt<0)return it?"M ".concat(pt.x,",").concat(pt.y,` a`).concat(ot,",").concat(ot,",0,0,1,").concat(ot*2,`,0 a`).concat(ot,",").concat(ot,",0,0,1,").concat(-ot*2,`,0 `):getSectorPath({cx:et,cy:tt,innerRadius:rt,outerRadius:nt,startAngle:lt,endAngle:ut});var Et="M ".concat(pt.x,",").concat(pt.y,` A`).concat(ot,",").concat(ot,",0,0,").concat(+(ct<0),",").concat(ft.x,",").concat(ft.y,` A`).concat(nt,",").concat(nt,",0,").concat(+(yt>180),",").concat(+(ct<0),",").concat(bt.x,",").concat(bt.y,` A`).concat(ot,",").concat(ot,",0,0,").concat(+(ct<0),",").concat(_t.x,",").concat(_t.y,` - `);if(rt>0){var St=getTangentCircle({cx:et,cy:tt,radius:rt,angle:lt,sign:ct,isExternal:!0,cornerRadius:ot,cornerIsExternal:st}),$t=St.circleTangency,At=St.lineTangency,wt=St.theta,Ct=getTangentCircle({cx:et,cy:tt,radius:rt,angle:ut,sign:-ct,isExternal:!0,cornerRadius:ot,cornerIsExternal:st}),It=Ct.circleTangency,Ot=Ct.lineTangency,Nt=Ct.theta,Pt=st?Math.abs(lt-ut):Math.abs(lt-ut)-wt-Nt;if(Pt<0&&ot===0)return"".concat(Et,"L").concat(et,",").concat(tt,"Z");Et+="L".concat(Ot.x,",").concat(Ot.y,` + `);if(rt>0){var St=getTangentCircle({cx:et,cy:tt,radius:rt,angle:lt,sign:ct,isExternal:!0,cornerRadius:ot,cornerIsExternal:st}),Tt=St.circleTangency,kt=St.lineTangency,$t=St.theta,Ct=getTangentCircle({cx:et,cy:tt,radius:rt,angle:ut,sign:-ct,isExternal:!0,cornerRadius:ot,cornerIsExternal:st}),It=Ct.circleTangency,Nt=Ct.lineTangency,Ot=Ct.theta,jt=st?Math.abs(lt-ut):Math.abs(lt-ut)-$t-Ot;if(jt<0&&ot===0)return"".concat(Et,"L").concat(et,",").concat(tt,"Z");Et+="L".concat(Nt.x,",").concat(Nt.y,` A`).concat(ot,",").concat(ot,",0,0,").concat(+(ct<0),",").concat(It.x,",").concat(It.y,` - A`).concat(rt,",").concat(rt,",0,").concat(+(Pt>180),",").concat(+(ct>0),",").concat($t.x,",").concat($t.y,` - A`).concat(ot,",").concat(ot,",0,0,").concat(+(ct<0),",").concat(At.x,",").concat(At.y,"Z")}else Et+="L".concat(et,",").concat(tt,"Z");return Et},defaultProps$2={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},Sector=function j(_e){var et=_objectSpread$i(_objectSpread$i({},defaultProps$2),_e),tt=et.cx,rt=et.cy,nt=et.innerRadius,ot=et.outerRadius,it=et.cornerRadius,st=et.forceCornerRadius,lt=et.cornerIsExternal,ut=et.startAngle,ct=et.endAngle,dt=et.className;if(ot0&&Math.abs(ut-ct)<360?vt=getSectorWithCorner({cx:tt,cy:rt,innerRadius:nt,outerRadius:ot,cornerRadius:Math.min(gt,pt/2),forceCornerRadius:st,cornerIsExternal:lt,startAngle:ut,endAngle:ct}):vt=getSectorPath({cx:tt,cy:rt,innerRadius:nt,outerRadius:ot,startAngle:ut,endAngle:ct}),React.createElement("path",_extends$f({},filterProps(et,!0),{className:ft,d:vt,role:"img"}))};function _typeof$i(j){"@babel/helpers - typeof";return _typeof$i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$i(j)}function _extends$e(){return _extends$e=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e180),",").concat(+(ct>0),",").concat(Tt.x,",").concat(Tt.y,` + A`).concat(ot,",").concat(ot,",0,0,").concat(+(ct<0),",").concat(kt.x,",").concat(kt.y,"Z")}else Et+="L".concat(et,",").concat(tt,"Z");return Et},defaultProps$2={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},Sector=function j(_e){var et=_objectSpread$i(_objectSpread$i({},defaultProps$2),_e),tt=et.cx,rt=et.cy,nt=et.innerRadius,ot=et.outerRadius,it=et.cornerRadius,st=et.forceCornerRadius,lt=et.cornerIsExternal,ut=et.startAngle,ct=et.endAngle,dt=et.className;if(ot0&&Math.abs(ut-ct)<360?mt=getSectorWithCorner({cx:tt,cy:rt,innerRadius:nt,outerRadius:ot,cornerRadius:Math.min(gt,pt/2),forceCornerRadius:st,cornerIsExternal:lt,startAngle:ut,endAngle:ct}):mt=getSectorPath({cx:tt,cy:rt,innerRadius:nt,outerRadius:ot,startAngle:ut,endAngle:ct}),React.createElement("path",_extends$f({},filterProps(et,!0),{className:ft,d:mt,role:"img"}))};function _typeof$i(j){"@babel/helpers - typeof";return _typeof$i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$i(j)}function _extends$e(){return _extends$e=Object.assign?Object.assign.bind():function(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$3(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$3(j){if(Array.isArray(j))return j}function ownKeys$g(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$g(j){for(var _e=1;_e=0?1:-1,st=tt>=0?1:-1,lt=rt>=0&&tt>=0||rt<0&&tt<0?1:0,ut;if(ot>0&&nt instanceof Array){for(var ct=[0,0,0,0],dt=0,ft=4;dtot?ot:nt[dt];ut="M".concat(_e,",").concat(et+it*ct[0]),ct[0]>0&&(ut+="A ".concat(ct[0],",").concat(ct[0],",0,0,").concat(lt,",").concat(_e+st*ct[0],",").concat(et)),ut+="L ".concat(_e+tt-st*ct[1],",").concat(et),ct[1]>0&&(ut+="A ".concat(ct[1],",").concat(ct[1],",0,0,").concat(lt,`, `).concat(_e+tt,",").concat(et+it*ct[1])),ut+="L ".concat(_e+tt,",").concat(et+rt-it*ct[2]),ct[2]>0&&(ut+="A ".concat(ct[2],",").concat(ct[2],",0,0,").concat(lt,`, `).concat(_e+tt-st*ct[2],",").concat(et+rt)),ut+="L ".concat(_e+st*ct[3],",").concat(et+rt),ct[3]>0&&(ut+="A ".concat(ct[3],",").concat(ct[3],",0,0,").concat(lt,`, @@ -1918,15 +1910,15 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho L `).concat(_e+tt,",").concat(et+rt-it*pt,` A `).concat(pt,",").concat(pt,",0,0,").concat(lt,",").concat(_e+tt-st*pt,",").concat(et+rt,` L `).concat(_e+st*pt,",").concat(et+rt,` - A `).concat(pt,",").concat(pt,",0,0,").concat(lt,",").concat(_e,",").concat(et+rt-it*pt," Z")}else ut="M ".concat(_e,",").concat(et," h ").concat(tt," v ").concat(rt," h ").concat(-tt," Z");return ut},isInRectangle=function j(_e,et){if(!_e||!et)return!1;var tt=_e.x,rt=_e.y,nt=et.x,ot=et.y,it=et.width,st=et.height;if(Math.abs(it)>0&&Math.abs(st)>0){var lt=Math.min(nt,nt+it),ut=Math.max(nt,nt+it),ct=Math.min(ot,ot+st),dt=Math.max(ot,ot+st);return tt>=lt&&tt<=ut&&rt>=ct&&rt<=dt}return!1},defaultProps$1={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Rectangle=function j(_e){var et=_objectSpread$g(_objectSpread$g({},defaultProps$1),_e),tt=reactExports.useRef(),rt=reactExports.useState(-1),nt=_slicedToArray$3(rt,2),ot=nt[0],it=nt[1];reactExports.useEffect(function(){if(tt.current&&tt.current.getTotalLength)try{var yt=tt.current.getTotalLength();yt&&it(yt)}catch{}},[]);var st=et.x,lt=et.y,ut=et.width,ct=et.height,dt=et.radius,ft=et.className,pt=et.animationEasing,gt=et.animationDuration,vt=et.animationBegin,bt=et.isAnimationActive,_t=et.isUpdateAnimationActive;if(st!==+st||lt!==+lt||ut!==+ut||ct!==+ct||ut===0||ct===0)return null;var xt=clsx("recharts-rectangle",ft);return _t?React.createElement(Animate,{canBegin:ot>0,from:{width:ut,height:ct,x:st,y:lt},to:{width:ut,height:ct,x:st,y:lt},duration:gt,animationEasing:pt,isActive:_t},function(yt){var Et=yt.width,St=yt.height,$t=yt.x,At=yt.y;return React.createElement(Animate,{canBegin:ot>0,from:"0px ".concat(ot===-1?1:ot,"px"),to:"".concat(ot,"px 0px"),attributeName:"strokeDasharray",begin:vt,duration:gt,isActive:bt,easing:pt},React.createElement("path",_extends$d({},filterProps(et,!0),{className:xt,d:getRectanglePath($t,At,Et,St,dt),ref:tt})))}):React.createElement("path",_extends$d({},filterProps(et,!0),{className:xt,d:getRectanglePath(st,lt,ut,ct,dt)}))},_excluded$5=["points","className","baseLinePoints","connectNulls"];function _extends$c(){return _extends$c=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$5(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _toConsumableArray$2(j){return _arrayWithoutHoles$2(j)||_iterableToArray$2(j)||_unsupportedIterableToArray$4(j)||_nonIterableSpread$2()}function _nonIterableSpread$2(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$4(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$4(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$4(j,_e)}}function _iterableToArray$2(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$2(j){if(Array.isArray(j))return _arrayLikeToArray$4(j)}function _arrayLikeToArray$4(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}var isValidatePoint=function j(_e){return _e&&_e.x===+_e.x&&_e.y===+_e.y},getParsedPoints=function j(){var _e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],et=[[]];return _e.forEach(function(tt){isValidatePoint(tt)?et[et.length-1].push(tt):et[et.length-1].length>0&&et.push([])}),isValidatePoint(_e[0])&&et[et.length-1].push(_e[0]),et[et.length-1].length<=0&&(et=et.slice(0,-1)),et},getSinglePolygonPath=function j(_e,et){var tt=getParsedPoints(_e);et&&(tt=[tt.reduce(function(nt,ot){return[].concat(_toConsumableArray$2(nt),_toConsumableArray$2(ot))},[])]);var rt=tt.map(function(nt){return nt.reduce(function(ot,it,st){return"".concat(ot).concat(st===0?"M":"L").concat(it.x,",").concat(it.y)},"")}).join("");return tt.length===1?"".concat(rt,"Z"):rt},getRanglePath=function j(_e,et,tt){var rt=getSinglePolygonPath(_e,tt);return"".concat(rt.slice(-1)==="Z"?rt.slice(0,-1):rt,"L").concat(getSinglePolygonPath(et.reverse(),tt).slice(1))},Polygon=function j(_e){var et=_e.points,tt=_e.className,rt=_e.baseLinePoints,nt=_e.connectNulls,ot=_objectWithoutProperties$5(_e,_excluded$5);if(!et||!et.length)return null;var it=clsx("recharts-polygon",tt);if(rt&&rt.length){var st=ot.stroke&&ot.stroke!=="none",lt=getRanglePath(et,rt,nt);return React.createElement("g",{className:it},React.createElement("path",_extends$c({},filterProps(ot,!0),{fill:lt.slice(-1)==="Z"?ot.fill:"none",stroke:"none",d:lt})),st?React.createElement("path",_extends$c({},filterProps(ot,!0),{fill:"none",d:getSinglePolygonPath(et,nt)})):null,st?React.createElement("path",_extends$c({},filterProps(ot,!0),{fill:"none",d:getSinglePolygonPath(rt,nt)})):null)}var ut=getSinglePolygonPath(et,nt);return React.createElement("path",_extends$c({},filterProps(ot,!0),{fill:ut.slice(-1)==="Z"?ot.fill:"none",className:it,d:ut}))};function _extends$b(){return _extends$b=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$4(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var getPath=function j(_e,et,tt,rt,nt,ot){return"M".concat(_e,",").concat(nt,"v").concat(rt,"M").concat(ot,",").concat(et,"h").concat(tt)},Cross=function j(_e){var et=_e.x,tt=et===void 0?0:et,rt=_e.y,nt=rt===void 0?0:rt,ot=_e.top,it=ot===void 0?0:ot,st=_e.left,lt=st===void 0?0:st,ut=_e.width,ct=ut===void 0?0:ut,dt=_e.height,ft=dt===void 0?0:dt,pt=_e.className,gt=_objectWithoutProperties$4(_e,_excluded$4),vt=_objectSpread$f({x:tt,y:nt,top:it,left:lt,width:ct,height:ft},gt);return!isNumber(tt)||!isNumber(nt)||!isNumber(ct)||!isNumber(ft)||!isNumber(it)||!isNumber(lt)?null:React.createElement("path",_extends$a({},filterProps(vt,!0),{className:clsx("recharts-cross",pt),d:getPath(tt,nt,ct,ft,it,lt)}))},baseExtremum=_baseExtremum,baseGt=_baseGt,baseIteratee$2=_baseIteratee;function maxBy(j,_e){return j&&j.length?baseExtremum(j,baseIteratee$2(_e),baseGt):void 0}var maxBy_1=maxBy;const maxBy$1=getDefaultExportFromCjs(maxBy_1);var _excluded$3=["cx","cy","angle","ticks","axisLine"],_excluded2$2=["ticks","tick","angle","tickFormatter","stroke"];function _typeof$f(j){"@babel/helpers - typeof";return _typeof$f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$f(j)}function _extends$9(){return _extends$9=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$3(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _classCallCheck$7(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$7(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey$f(tt.key),tt)}}function _createClass$7(j,_e,et){return _e&&_defineProperties$7(j.prototype,_e),et&&_defineProperties$7(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits$5(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf$5(j,_e)}function _setPrototypeOf$5(j,_e){return _setPrototypeOf$5=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$5(j,_e)}function _createSuper$5(j){var _e=_isNativeReflectConstruct$5();return function(){var tt=_getPrototypeOf$5(j),rt;if(_e){var nt=_getPrototypeOf$5(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn$5(this,rt)}}function _possibleConstructorReturn$5(j,_e){if(_e&&(_typeof$f(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$5(j)}function _assertThisInitialized$5(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$5(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$5(j){return _getPrototypeOf$5=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$5(j)}function _defineProperty$f(j,_e,et){return _e=_toPropertyKey$f(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$f(j){var _e=_toPrimitive$f(j,"string");return _typeof$f(_e)==="symbol"?_e:String(_e)}function _toPrimitive$f(j,_e){if(_typeof$f(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$f(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var PolarRadiusAxis=function(j){_inherits$5(et,j);var _e=_createSuper$5(et);function et(){return _classCallCheck$7(this,et),_e.apply(this,arguments)}return _createClass$7(et,[{key:"getTickValueCoord",value:function(rt){var nt=rt.coordinate,ot=this.props,it=ot.angle,st=ot.cx,lt=ot.cy;return polarToCartesian(st,lt,nt,it)}},{key:"getTickTextAnchor",value:function(){var rt=this.props.orientation,nt;switch(rt){case"left":nt="end";break;case"right":nt="start";break;default:nt="middle";break}return nt}},{key:"getViewBox",value:function(){var rt=this.props,nt=rt.cx,ot=rt.cy,it=rt.angle,st=rt.ticks,lt=maxBy$1(st,function(ct){return ct.coordinate||0}),ut=minBy$1(st,function(ct){return ct.coordinate||0});return{cx:nt,cy:ot,startAngle:it,endAngle:it,innerRadius:ut.coordinate||0,outerRadius:lt.coordinate||0}}},{key:"renderAxisLine",value:function(){var rt=this.props,nt=rt.cx,ot=rt.cy,it=rt.angle,st=rt.ticks,lt=rt.axisLine,ut=_objectWithoutProperties$3(rt,_excluded$3),ct=st.reduce(function(gt,vt){return[Math.min(gt[0],vt.coordinate),Math.max(gt[1],vt.coordinate)]},[1/0,-1/0]),dt=polarToCartesian(nt,ot,ct[0],it),ft=polarToCartesian(nt,ot,ct[1],it),pt=_objectSpread$e(_objectSpread$e(_objectSpread$e({},filterProps(ut)),{},{fill:"none"},filterProps(lt)),{},{x1:dt.x,y1:dt.y,x2:ft.x,y2:ft.y});return React.createElement("line",_extends$9({className:"recharts-polar-radius-axis-line"},pt))}},{key:"renderTicks",value:function(){var rt=this,nt=this.props,ot=nt.ticks,it=nt.tick,st=nt.angle,lt=nt.tickFormatter,ut=nt.stroke,ct=_objectWithoutProperties$3(nt,_excluded2$2),dt=this.getTickTextAnchor(),ft=filterProps(ct),pt=filterProps(it),gt=ot.map(function(vt,bt){var _t=rt.getTickValueCoord(vt),xt=_objectSpread$e(_objectSpread$e(_objectSpread$e(_objectSpread$e({textAnchor:dt,transform:"rotate(".concat(90-st,", ").concat(_t.x,", ").concat(_t.y,")")},ft),{},{stroke:"none",fill:ut},pt),{},{index:bt},_t),{},{payload:vt});return React.createElement(Layer,_extends$9({className:"recharts-polar-radius-axis-tick",key:"tick-".concat(vt.coordinate)},adaptEventsOfChild(rt.props,vt,bt)),et.renderTickItem(it,xt,lt?lt(vt.value,bt):vt.value))});return React.createElement(Layer,{className:"recharts-polar-radius-axis-ticks"},gt)}},{key:"render",value:function(){var rt=this.props,nt=rt.ticks,ot=rt.axisLine,it=rt.tick;return!nt||!nt.length?null:React.createElement(Layer,{className:"recharts-polar-radius-axis"},ot&&this.renderAxisLine(),it&&this.renderTicks(),Label.renderCallByParent(this.props,this.getViewBox()))}}],[{key:"renderTickItem",value:function(rt,nt,ot){var it;return React.isValidElement(rt)?it=React.cloneElement(rt,nt):isFunction$6(rt)?it=rt(nt):it=React.createElement(Text$1,_extends$9({},nt,{className:"recharts-polar-radius-axis-tick-value"}),ot),it}}]),et}(reactExports.PureComponent);_defineProperty$f(PolarRadiusAxis,"displayName","PolarRadiusAxis");_defineProperty$f(PolarRadiusAxis,"axisType","radiusAxis");_defineProperty$f(PolarRadiusAxis,"defaultProps",{type:"number",radiusAxisId:0,cx:0,cy:0,angle:0,orientation:"right",stroke:"#ccc",axisLine:!0,tick:!0,tickCount:5,allowDataOverflow:!1,scale:"auto",allowDuplicatedCategory:!0});function _typeof$e(j){"@babel/helpers - typeof";return _typeof$e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$e(j)}function _extends$8(){return _extends$8=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$4(j){return _getPrototypeOf$4=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$4(j)}function _defineProperty$e(j,_e,et){return _e=_toPropertyKey$e(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$e(j){var _e=_toPrimitive$e(j,"string");return _typeof$e(_e)==="symbol"?_e:String(_e)}function _toPrimitive$e(j,_e){if(_typeof$e(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$e(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var RADIAN=Math.PI/180,eps=1e-5,PolarAngleAxis=function(j){_inherits$4(et,j);var _e=_createSuper$4(et);function et(){return _classCallCheck$6(this,et),_e.apply(this,arguments)}return _createClass$6(et,[{key:"getTickLineCoord",value:function(rt){var nt=this.props,ot=nt.cx,it=nt.cy,st=nt.radius,lt=nt.orientation,ut=nt.tickSize,ct=ut||8,dt=polarToCartesian(ot,it,st,rt.coordinate),ft=polarToCartesian(ot,it,st+(lt==="inner"?-1:1)*ct,rt.coordinate);return{x1:dt.x,y1:dt.y,x2:ft.x,y2:ft.y}}},{key:"getTickTextAnchor",value:function(rt){var nt=this.props.orientation,ot=Math.cos(-rt.coordinate*RADIAN),it;return ot>eps?it=nt==="outer"?"start":"end":ot<-eps?it=nt==="outer"?"end":"start":it="middle",it}},{key:"renderAxisLine",value:function(){var rt=this.props,nt=rt.cx,ot=rt.cy,it=rt.radius,st=rt.axisLine,lt=rt.axisLineType,ut=_objectSpread$d(_objectSpread$d({},filterProps(this.props)),{},{fill:"none"},filterProps(st));if(lt==="circle")return React.createElement(Dot,_extends$8({className:"recharts-polar-angle-axis-line"},ut,{cx:nt,cy:ot,r:it}));var ct=this.props.ticks,dt=ct.map(function(ft){return polarToCartesian(nt,ot,it,ft.coordinate)});return React.createElement(Polygon,_extends$8({className:"recharts-polar-angle-axis-line"},ut,{points:dt}))}},{key:"renderTicks",value:function(){var rt=this,nt=this.props,ot=nt.ticks,it=nt.tick,st=nt.tickLine,lt=nt.tickFormatter,ut=nt.stroke,ct=filterProps(this.props),dt=filterProps(it),ft=_objectSpread$d(_objectSpread$d({},ct),{},{fill:"none"},filterProps(st)),pt=ot.map(function(gt,vt){var bt=rt.getTickLineCoord(gt),_t=rt.getTickTextAnchor(gt),xt=_objectSpread$d(_objectSpread$d(_objectSpread$d({textAnchor:_t},ct),{},{stroke:"none",fill:ut},dt),{},{index:vt,payload:gt,x:bt.x2,y:bt.y2});return React.createElement(Layer,_extends$8({className:"recharts-polar-angle-axis-tick",key:"tick-".concat(gt.coordinate)},adaptEventsOfChild(rt.props,gt,vt)),st&&React.createElement("line",_extends$8({className:"recharts-polar-angle-axis-tick-line"},ft,bt)),it&&et.renderTickItem(it,xt,lt?lt(gt.value,vt):gt.value))});return React.createElement(Layer,{className:"recharts-polar-angle-axis-ticks"},pt)}},{key:"render",value:function(){var rt=this.props,nt=rt.ticks,ot=rt.radius,it=rt.axisLine;return ot<=0||!nt||!nt.length?null:React.createElement(Layer,{className:"recharts-polar-angle-axis"},it&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(rt,nt,ot){var it;return React.isValidElement(rt)?it=React.cloneElement(rt,nt):isFunction$6(rt)?it=rt(nt):it=React.createElement(Text$1,_extends$8({},nt,{className:"recharts-polar-angle-axis-tick-value"}),ot),it}}]),et}(reactExports.PureComponent);_defineProperty$e(PolarAngleAxis,"displayName","PolarAngleAxis");_defineProperty$e(PolarAngleAxis,"axisType","angleAxis");_defineProperty$e(PolarAngleAxis,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var baseGetTag=_baseGetTag,isObjectLike=isObjectLike_1,boolTag="[object Boolean]";function isBoolean(j){return j===!0||j===!1||isObjectLike(j)&&baseGetTag(j)==boolTag}var isBoolean_1=isBoolean;const isBoolean$1=getDefaultExportFromCjs(isBoolean_1);function _typeof$d(j){"@babel/helpers - typeof";return _typeof$d=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$d(j)}function _extends$7(){return _extends$7=Object.assign?Object.assign.bind():function(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$2(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$2(j){if(Array.isArray(j))return j}function ownKeys$c(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$c(j){for(var _e=1;_e0,from:{upperWidth:0,lowerWidth:0,height:dt,x:st,y:lt},to:{upperWidth:ut,lowerWidth:ct,height:dt,x:st,y:lt},duration:gt,animationEasing:pt,isActive:bt},function(xt){var yt=xt.upperWidth,Et=xt.lowerWidth,St=xt.height,$t=xt.x,At=xt.y;return React.createElement(Animate,{canBegin:ot>0,from:"0px ".concat(ot===-1?1:ot,"px"),to:"".concat(ot,"px 0px"),attributeName:"strokeDasharray",begin:vt,duration:gt,easing:pt},React.createElement("path",_extends$7({},filterProps(et,!0),{className:_t,d:getTrapezoidPath($t,At,yt,Et,St),ref:tt})))}):React.createElement("g",null,React.createElement("path",_extends$7({},filterProps(et,!0),{className:_t,d:getTrapezoidPath(st,lt,ut,ct,dt)})))},_excluded$2=["option","shapeType","propTransformer","activeClassName","isActive"];function _typeof$c(j){"@babel/helpers - typeof";return _typeof$c=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$c(j)}function _objectWithoutProperties$2(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$2(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$2(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function ownKeys$b(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$b(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$3(j){return _getPrototypeOf$3=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$3(j)}function _defineProperty$b(j,_e,et){return _e=_toPropertyKey$b(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$b(j){var _e=_toPrimitive$b(j,"string");return _typeof$b(_e)==="symbol"?_e:String(_e)}function _toPrimitive$b(j,_e){if(_typeof$b(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$b(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var Pie=function(j){_inherits$3(et,j);var _e=_createSuper$3(et);function et(tt){var rt;return _classCallCheck$5(this,et),rt=_e.call(this,tt),_defineProperty$b(_assertThisInitialized$3(rt),"pieRef",null),_defineProperty$b(_assertThisInitialized$3(rt),"sectorRefs",[]),_defineProperty$b(_assertThisInitialized$3(rt),"id",uniqueId("recharts-pie-")),_defineProperty$b(_assertThisInitialized$3(rt),"handleAnimationEnd",function(){var nt=rt.props.onAnimationEnd;rt.setState({isAnimationFinished:!0}),isFunction$6(nt)&&nt()}),_defineProperty$b(_assertThisInitialized$3(rt),"handleAnimationStart",function(){var nt=rt.props.onAnimationStart;rt.setState({isAnimationFinished:!1}),isFunction$6(nt)&&nt()}),rt.state={isAnimationFinished:!tt.isAnimationActive,prevIsAnimationActive:tt.isAnimationActive,prevAnimationId:tt.animationId,sectorToFocus:0},rt}return _createClass$5(et,[{key:"isActiveIndex",value:function(rt){var nt=this.props.activeIndex;return Array.isArray(nt)?nt.indexOf(rt)!==-1:rt===nt}},{key:"hasActiveIndex",value:function(){var rt=this.props.activeIndex;return Array.isArray(rt)?rt.length!==0:rt||rt===0}},{key:"renderLabels",value:function(rt){var nt=this.props.isAnimationActive;if(nt&&!this.state.isAnimationFinished)return null;var ot=this.props,it=ot.label,st=ot.labelLine,lt=ot.dataKey,ut=ot.valueKey,ct=filterProps(this.props),dt=filterProps(it),ft=filterProps(st),pt=it&&it.offsetRadius||20,gt=rt.map(function(vt,bt){var _t=(vt.startAngle+vt.endAngle)/2,xt=polarToCartesian(vt.cx,vt.cy,vt.outerRadius+pt,_t),yt=_objectSpread$a(_objectSpread$a(_objectSpread$a(_objectSpread$a({},ct),vt),{},{stroke:"none"},dt),{},{index:bt,textAnchor:et.getTextAnchor(xt.x,vt.cx)},xt),Et=_objectSpread$a(_objectSpread$a(_objectSpread$a(_objectSpread$a({},ct),vt),{},{fill:"none",stroke:vt.fill},ft),{},{index:bt,points:[polarToCartesian(vt.cx,vt.cy,vt.outerRadius,_t),xt],key:"line"}),St=lt;return isNil$1(lt)&&isNil$1(ut)?St="value":isNil$1(lt)&&(St=ut),React.createElement(Layer,{key:"label-".concat(vt.startAngle,"-").concat(vt.endAngle)},st&&et.renderLabelLineItem(st,Et),et.renderLabelItem(it,yt,getValueByDataKey(vt,St)))});return React.createElement(Layer,{className:"recharts-pie-labels"},gt)}},{key:"renderSectorsStatically",value:function(rt){var nt=this,ot=this.props,it=ot.activeShape,st=ot.blendStroke,lt=ot.inactiveShape;return rt.map(function(ut,ct){if((ut==null?void 0:ut.startAngle)===0&&(ut==null?void 0:ut.endAngle)===0&&rt.length!==1)return null;var dt=nt.isActiveIndex(ct),ft=lt&&nt.hasActiveIndex()?lt:null,pt=dt?it:ft,gt=_objectSpread$a(_objectSpread$a({},ut),{},{stroke:st?ut.fill:ut.stroke,tabIndex:-1});return React.createElement(Layer,_extends$6({ref:function(bt){bt&&!nt.sectorRefs.includes(bt)&&nt.sectorRefs.push(bt)},tabIndex:-1,className:"recharts-pie-sector"},adaptEventsOfChild(nt.props,ut,ct),{key:"sector-".concat(ut==null?void 0:ut.startAngle,"-").concat(ut==null?void 0:ut.endAngle,"-").concat(ut.midAngle)}),React.createElement(Shape,_extends$6({option:pt,isActive:dt,shapeType:"sector"},gt)))})}},{key:"renderSectorsWithAnimation",value:function(){var rt=this,nt=this.props,ot=nt.sectors,it=nt.isAnimationActive,st=nt.animationBegin,lt=nt.animationDuration,ut=nt.animationEasing,ct=nt.animationId,dt=this.state,ft=dt.prevSectors,pt=dt.prevIsAnimationActive;return React.createElement(Animate,{begin:st,duration:lt,isActive:it,easing:ut,from:{t:0},to:{t:1},key:"pie-".concat(ct,"-").concat(pt),onAnimationStart:this.handleAnimationStart,onAnimationEnd:this.handleAnimationEnd},function(gt){var vt=gt.t,bt=[],_t=ot&&ot[0],xt=_t.startAngle;return ot.forEach(function(yt,Et){var St=ft&&ft[Et],$t=Et>0?get$5(yt,"paddingAngle",0):0;if(St){var At=interpolateNumber$2(St.endAngle-St.startAngle,yt.endAngle-yt.startAngle),wt=_objectSpread$a(_objectSpread$a({},yt),{},{startAngle:xt+$t,endAngle:xt+At(vt)+$t});bt.push(wt),xt=wt.endAngle}else{var Ct=yt.endAngle,It=yt.startAngle,Ot=interpolateNumber$2(0,Ct-It),Nt=Ot(vt),Pt=_objectSpread$a(_objectSpread$a({},yt),{},{startAngle:xt+$t,endAngle:xt+Nt+$t});bt.push(Pt),xt=Pt.endAngle}}),React.createElement(Layer,null,rt.renderSectorsStatically(bt))})}},{key:"attachKeyboardHandlers",value:function(rt){var nt=this;rt.onkeydown=function(ot){if(!ot.altKey)switch(ot.key){case"ArrowLeft":{var it=++nt.state.sectorToFocus%nt.sectorRefs.length;nt.sectorRefs[it].focus(),nt.setState({sectorToFocus:it});break}case"ArrowRight":{var st=--nt.state.sectorToFocus<0?nt.sectorRefs.length-1:nt.state.sectorToFocus%nt.sectorRefs.length;nt.sectorRefs[st].focus(),nt.setState({sectorToFocus:st});break}case"Escape":{nt.sectorRefs[nt.state.sectorToFocus].blur(),nt.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var rt=this.props,nt=rt.sectors,ot=rt.isAnimationActive,it=this.state.prevSectors;return ot&&nt&&nt.length&&(!it||!isEqual$1(it,nt))?this.renderSectorsWithAnimation():this.renderSectorsStatically(nt)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var rt=this,nt=this.props,ot=nt.hide,it=nt.sectors,st=nt.className,lt=nt.label,ut=nt.cx,ct=nt.cy,dt=nt.innerRadius,ft=nt.outerRadius,pt=nt.isAnimationActive,gt=this.state.isAnimationFinished;if(ot||!it||!it.length||!isNumber(ut)||!isNumber(ct)||!isNumber(dt)||!isNumber(ft))return null;var vt=clsx("recharts-pie",st);return React.createElement(Layer,{tabIndex:this.props.rootTabIndex,className:vt,ref:function(_t){rt.pieRef=_t}},this.renderSectors(),lt&&this.renderLabels(it),Label.renderCallByParent(this.props,null,!1),(!pt||gt)&&LabelList.renderCallByParent(this.props,it,!1))}}],[{key:"getDerivedStateFromProps",value:function(rt,nt){return nt.prevIsAnimationActive!==rt.isAnimationActive?{prevIsAnimationActive:rt.isAnimationActive,prevAnimationId:rt.animationId,curSectors:rt.sectors,prevSectors:[],isAnimationFinished:!0}:rt.isAnimationActive&&rt.animationId!==nt.prevAnimationId?{prevAnimationId:rt.animationId,curSectors:rt.sectors,prevSectors:nt.curSectors,isAnimationFinished:!0}:rt.sectors!==nt.curSectors?{curSectors:rt.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(rt,nt){return rt>nt?"start":rt0&&Math.abs(st)>0){var lt=Math.min(nt,nt+it),ut=Math.max(nt,nt+it),ct=Math.min(ot,ot+st),dt=Math.max(ot,ot+st);return tt>=lt&&tt<=ut&&rt>=ct&&rt<=dt}return!1},defaultProps$1={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Rectangle=function j(_e){var et=_objectSpread$g(_objectSpread$g({},defaultProps$1),_e),tt=reactExports.useRef(),rt=reactExports.useState(-1),nt=_slicedToArray$3(rt,2),ot=nt[0],it=nt[1];reactExports.useEffect(function(){if(tt.current&&tt.current.getTotalLength)try{var yt=tt.current.getTotalLength();yt&&it(yt)}catch{}},[]);var st=et.x,lt=et.y,ut=et.width,ct=et.height,dt=et.radius,ft=et.className,pt=et.animationEasing,gt=et.animationDuration,mt=et.animationBegin,bt=et.isAnimationActive,_t=et.isUpdateAnimationActive;if(st!==+st||lt!==+lt||ut!==+ut||ct!==+ct||ut===0||ct===0)return null;var xt=clsx("recharts-rectangle",ft);return _t?React.createElement(Animate,{canBegin:ot>0,from:{width:ut,height:ct,x:st,y:lt},to:{width:ut,height:ct,x:st,y:lt},duration:gt,animationEasing:pt,isActive:_t},function(yt){var Et=yt.width,St=yt.height,Tt=yt.x,kt=yt.y;return React.createElement(Animate,{canBegin:ot>0,from:"0px ".concat(ot===-1?1:ot,"px"),to:"".concat(ot,"px 0px"),attributeName:"strokeDasharray",begin:mt,duration:gt,isActive:bt,easing:pt},React.createElement("path",_extends$d({},filterProps(et,!0),{className:xt,d:getRectanglePath(Tt,kt,Et,St,dt),ref:tt})))}):React.createElement("path",_extends$d({},filterProps(et,!0),{className:xt,d:getRectanglePath(st,lt,ut,ct,dt)}))},_excluded$5=["points","className","baseLinePoints","connectNulls"];function _extends$c(){return _extends$c=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$5(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _toConsumableArray$2(j){return _arrayWithoutHoles$2(j)||_iterableToArray$2(j)||_unsupportedIterableToArray$4(j)||_nonIterableSpread$2()}function _nonIterableSpread$2(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$4(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$4(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$4(j,_e)}}function _iterableToArray$2(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$2(j){if(Array.isArray(j))return _arrayLikeToArray$4(j)}function _arrayLikeToArray$4(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}var isValidatePoint=function j(_e){return _e&&_e.x===+_e.x&&_e.y===+_e.y},getParsedPoints=function j(){var _e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],et=[[]];return _e.forEach(function(tt){isValidatePoint(tt)?et[et.length-1].push(tt):et[et.length-1].length>0&&et.push([])}),isValidatePoint(_e[0])&&et[et.length-1].push(_e[0]),et[et.length-1].length<=0&&(et=et.slice(0,-1)),et},getSinglePolygonPath=function j(_e,et){var tt=getParsedPoints(_e);et&&(tt=[tt.reduce(function(nt,ot){return[].concat(_toConsumableArray$2(nt),_toConsumableArray$2(ot))},[])]);var rt=tt.map(function(nt){return nt.reduce(function(ot,it,st){return"".concat(ot).concat(st===0?"M":"L").concat(it.x,",").concat(it.y)},"")}).join("");return tt.length===1?"".concat(rt,"Z"):rt},getRanglePath=function j(_e,et,tt){var rt=getSinglePolygonPath(_e,tt);return"".concat(rt.slice(-1)==="Z"?rt.slice(0,-1):rt,"L").concat(getSinglePolygonPath(et.reverse(),tt).slice(1))},Polygon=function j(_e){var et=_e.points,tt=_e.className,rt=_e.baseLinePoints,nt=_e.connectNulls,ot=_objectWithoutProperties$5(_e,_excluded$5);if(!et||!et.length)return null;var it=clsx("recharts-polygon",tt);if(rt&&rt.length){var st=ot.stroke&&ot.stroke!=="none",lt=getRanglePath(et,rt,nt);return React.createElement("g",{className:it},React.createElement("path",_extends$c({},filterProps(ot,!0),{fill:lt.slice(-1)==="Z"?ot.fill:"none",stroke:"none",d:lt})),st?React.createElement("path",_extends$c({},filterProps(ot,!0),{fill:"none",d:getSinglePolygonPath(et,nt)})):null,st?React.createElement("path",_extends$c({},filterProps(ot,!0),{fill:"none",d:getSinglePolygonPath(rt,nt)})):null)}var ut=getSinglePolygonPath(et,nt);return React.createElement("path",_extends$c({},filterProps(ot,!0),{fill:ut.slice(-1)==="Z"?ot.fill:"none",className:it,d:ut}))};function _extends$b(){return _extends$b=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$4(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}var getPath=function j(_e,et,tt,rt,nt,ot){return"M".concat(_e,",").concat(nt,"v").concat(rt,"M").concat(ot,",").concat(et,"h").concat(tt)},Cross=function j(_e){var et=_e.x,tt=et===void 0?0:et,rt=_e.y,nt=rt===void 0?0:rt,ot=_e.top,it=ot===void 0?0:ot,st=_e.left,lt=st===void 0?0:st,ut=_e.width,ct=ut===void 0?0:ut,dt=_e.height,ft=dt===void 0?0:dt,pt=_e.className,gt=_objectWithoutProperties$4(_e,_excluded$4),mt=_objectSpread$f({x:tt,y:nt,top:it,left:lt,width:ct,height:ft},gt);return!isNumber(tt)||!isNumber(nt)||!isNumber(ct)||!isNumber(ft)||!isNumber(it)||!isNumber(lt)?null:React.createElement("path",_extends$a({},filterProps(mt,!0),{className:clsx("recharts-cross",pt),d:getPath(tt,nt,ct,ft,it,lt)}))},baseExtremum=_baseExtremum,baseGt=_baseGt,baseIteratee$2=_baseIteratee;function maxBy(j,_e){return j&&j.length?baseExtremum(j,baseIteratee$2(_e),baseGt):void 0}var maxBy_1=maxBy;const maxBy$1=getDefaultExportFromCjs(maxBy_1);var _excluded$3=["cx","cy","angle","ticks","axisLine"],_excluded2$2=["ticks","tick","angle","tickFormatter","stroke"];function _typeof$f(j){"@babel/helpers - typeof";return _typeof$f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$f(j)}function _extends$9(){return _extends$9=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$3(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _classCallCheck$7(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$7(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey$f(tt.key),tt)}}function _createClass$7(j,_e,et){return _e&&_defineProperties$7(j.prototype,_e),et&&_defineProperties$7(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits$5(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf$5(j,_e)}function _setPrototypeOf$5(j,_e){return _setPrototypeOf$5=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$5(j,_e)}function _createSuper$5(j){var _e=_isNativeReflectConstruct$5();return function(){var tt=_getPrototypeOf$5(j),rt;if(_e){var nt=_getPrototypeOf$5(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn$5(this,rt)}}function _possibleConstructorReturn$5(j,_e){if(_e&&(_typeof$f(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$5(j)}function _assertThisInitialized$5(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$5(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$5(j){return _getPrototypeOf$5=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$5(j)}function _defineProperty$f(j,_e,et){return _e=_toPropertyKey$f(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$f(j){var _e=_toPrimitive$f(j,"string");return _typeof$f(_e)==="symbol"?_e:String(_e)}function _toPrimitive$f(j,_e){if(_typeof$f(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$f(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var PolarRadiusAxis=function(j){_inherits$5(et,j);var _e=_createSuper$5(et);function et(){return _classCallCheck$7(this,et),_e.apply(this,arguments)}return _createClass$7(et,[{key:"getTickValueCoord",value:function(rt){var nt=rt.coordinate,ot=this.props,it=ot.angle,st=ot.cx,lt=ot.cy;return polarToCartesian(st,lt,nt,it)}},{key:"getTickTextAnchor",value:function(){var rt=this.props.orientation,nt;switch(rt){case"left":nt="end";break;case"right":nt="start";break;default:nt="middle";break}return nt}},{key:"getViewBox",value:function(){var rt=this.props,nt=rt.cx,ot=rt.cy,it=rt.angle,st=rt.ticks,lt=maxBy$1(st,function(ct){return ct.coordinate||0}),ut=minBy$1(st,function(ct){return ct.coordinate||0});return{cx:nt,cy:ot,startAngle:it,endAngle:it,innerRadius:ut.coordinate||0,outerRadius:lt.coordinate||0}}},{key:"renderAxisLine",value:function(){var rt=this.props,nt=rt.cx,ot=rt.cy,it=rt.angle,st=rt.ticks,lt=rt.axisLine,ut=_objectWithoutProperties$3(rt,_excluded$3),ct=st.reduce(function(gt,mt){return[Math.min(gt[0],mt.coordinate),Math.max(gt[1],mt.coordinate)]},[1/0,-1/0]),dt=polarToCartesian(nt,ot,ct[0],it),ft=polarToCartesian(nt,ot,ct[1],it),pt=_objectSpread$e(_objectSpread$e(_objectSpread$e({},filterProps(ut)),{},{fill:"none"},filterProps(lt)),{},{x1:dt.x,y1:dt.y,x2:ft.x,y2:ft.y});return React.createElement("line",_extends$9({className:"recharts-polar-radius-axis-line"},pt))}},{key:"renderTicks",value:function(){var rt=this,nt=this.props,ot=nt.ticks,it=nt.tick,st=nt.angle,lt=nt.tickFormatter,ut=nt.stroke,ct=_objectWithoutProperties$3(nt,_excluded2$2),dt=this.getTickTextAnchor(),ft=filterProps(ct),pt=filterProps(it),gt=ot.map(function(mt,bt){var _t=rt.getTickValueCoord(mt),xt=_objectSpread$e(_objectSpread$e(_objectSpread$e(_objectSpread$e({textAnchor:dt,transform:"rotate(".concat(90-st,", ").concat(_t.x,", ").concat(_t.y,")")},ft),{},{stroke:"none",fill:ut},pt),{},{index:bt},_t),{},{payload:mt});return React.createElement(Layer,_extends$9({className:"recharts-polar-radius-axis-tick",key:"tick-".concat(mt.coordinate)},adaptEventsOfChild(rt.props,mt,bt)),et.renderTickItem(it,xt,lt?lt(mt.value,bt):mt.value))});return React.createElement(Layer,{className:"recharts-polar-radius-axis-ticks"},gt)}},{key:"render",value:function(){var rt=this.props,nt=rt.ticks,ot=rt.axisLine,it=rt.tick;return!nt||!nt.length?null:React.createElement(Layer,{className:"recharts-polar-radius-axis"},ot&&this.renderAxisLine(),it&&this.renderTicks(),Label.renderCallByParent(this.props,this.getViewBox()))}}],[{key:"renderTickItem",value:function(rt,nt,ot){var it;return React.isValidElement(rt)?it=React.cloneElement(rt,nt):isFunction$6(rt)?it=rt(nt):it=React.createElement(Text$1,_extends$9({},nt,{className:"recharts-polar-radius-axis-tick-value"}),ot),it}}]),et}(reactExports.PureComponent);_defineProperty$f(PolarRadiusAxis,"displayName","PolarRadiusAxis");_defineProperty$f(PolarRadiusAxis,"axisType","radiusAxis");_defineProperty$f(PolarRadiusAxis,"defaultProps",{type:"number",radiusAxisId:0,cx:0,cy:0,angle:0,orientation:"right",stroke:"#ccc",axisLine:!0,tick:!0,tickCount:5,allowDataOverflow:!1,scale:"auto",allowDuplicatedCategory:!0});function _typeof$e(j){"@babel/helpers - typeof";return _typeof$e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$e(j)}function _extends$8(){return _extends$8=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$4(j){return _getPrototypeOf$4=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$4(j)}function _defineProperty$e(j,_e,et){return _e=_toPropertyKey$e(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$e(j){var _e=_toPrimitive$e(j,"string");return _typeof$e(_e)==="symbol"?_e:String(_e)}function _toPrimitive$e(j,_e){if(_typeof$e(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$e(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var RADIAN=Math.PI/180,eps=1e-5,PolarAngleAxis=function(j){_inherits$4(et,j);var _e=_createSuper$4(et);function et(){return _classCallCheck$6(this,et),_e.apply(this,arguments)}return _createClass$6(et,[{key:"getTickLineCoord",value:function(rt){var nt=this.props,ot=nt.cx,it=nt.cy,st=nt.radius,lt=nt.orientation,ut=nt.tickSize,ct=ut||8,dt=polarToCartesian(ot,it,st,rt.coordinate),ft=polarToCartesian(ot,it,st+(lt==="inner"?-1:1)*ct,rt.coordinate);return{x1:dt.x,y1:dt.y,x2:ft.x,y2:ft.y}}},{key:"getTickTextAnchor",value:function(rt){var nt=this.props.orientation,ot=Math.cos(-rt.coordinate*RADIAN),it;return ot>eps?it=nt==="outer"?"start":"end":ot<-eps?it=nt==="outer"?"end":"start":it="middle",it}},{key:"renderAxisLine",value:function(){var rt=this.props,nt=rt.cx,ot=rt.cy,it=rt.radius,st=rt.axisLine,lt=rt.axisLineType,ut=_objectSpread$d(_objectSpread$d({},filterProps(this.props)),{},{fill:"none"},filterProps(st));if(lt==="circle")return React.createElement(Dot,_extends$8({className:"recharts-polar-angle-axis-line"},ut,{cx:nt,cy:ot,r:it}));var ct=this.props.ticks,dt=ct.map(function(ft){return polarToCartesian(nt,ot,it,ft.coordinate)});return React.createElement(Polygon,_extends$8({className:"recharts-polar-angle-axis-line"},ut,{points:dt}))}},{key:"renderTicks",value:function(){var rt=this,nt=this.props,ot=nt.ticks,it=nt.tick,st=nt.tickLine,lt=nt.tickFormatter,ut=nt.stroke,ct=filterProps(this.props),dt=filterProps(it),ft=_objectSpread$d(_objectSpread$d({},ct),{},{fill:"none"},filterProps(st)),pt=ot.map(function(gt,mt){var bt=rt.getTickLineCoord(gt),_t=rt.getTickTextAnchor(gt),xt=_objectSpread$d(_objectSpread$d(_objectSpread$d({textAnchor:_t},ct),{},{stroke:"none",fill:ut},dt),{},{index:mt,payload:gt,x:bt.x2,y:bt.y2});return React.createElement(Layer,_extends$8({className:"recharts-polar-angle-axis-tick",key:"tick-".concat(gt.coordinate)},adaptEventsOfChild(rt.props,gt,mt)),st&&React.createElement("line",_extends$8({className:"recharts-polar-angle-axis-tick-line"},ft,bt)),it&&et.renderTickItem(it,xt,lt?lt(gt.value,mt):gt.value))});return React.createElement(Layer,{className:"recharts-polar-angle-axis-ticks"},pt)}},{key:"render",value:function(){var rt=this.props,nt=rt.ticks,ot=rt.radius,it=rt.axisLine;return ot<=0||!nt||!nt.length?null:React.createElement(Layer,{className:"recharts-polar-angle-axis"},it&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(rt,nt,ot){var it;return React.isValidElement(rt)?it=React.cloneElement(rt,nt):isFunction$6(rt)?it=rt(nt):it=React.createElement(Text$1,_extends$8({},nt,{className:"recharts-polar-angle-axis-tick-value"}),ot),it}}]),et}(reactExports.PureComponent);_defineProperty$e(PolarAngleAxis,"displayName","PolarAngleAxis");_defineProperty$e(PolarAngleAxis,"axisType","angleAxis");_defineProperty$e(PolarAngleAxis,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var baseGetTag=_baseGetTag,isObjectLike=isObjectLike_1,boolTag="[object Boolean]";function isBoolean(j){return j===!0||j===!1||isObjectLike(j)&&baseGetTag(j)==boolTag}var isBoolean_1=isBoolean;const isBoolean$1=getDefaultExportFromCjs(isBoolean_1);function _typeof$d(j){"@babel/helpers - typeof";return _typeof$d=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$d(j)}function _extends$7(){return _extends$7=Object.assign?Object.assign.bind():function(j){for(var _e=1;_ej.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$2(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$2(j){if(Array.isArray(j))return j}function ownKeys$c(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$c(j){for(var _e=1;_e0,from:{upperWidth:0,lowerWidth:0,height:dt,x:st,y:lt},to:{upperWidth:ut,lowerWidth:ct,height:dt,x:st,y:lt},duration:gt,animationEasing:pt,isActive:bt},function(xt){var yt=xt.upperWidth,Et=xt.lowerWidth,St=xt.height,Tt=xt.x,kt=xt.y;return React.createElement(Animate,{canBegin:ot>0,from:"0px ".concat(ot===-1?1:ot,"px"),to:"".concat(ot,"px 0px"),attributeName:"strokeDasharray",begin:mt,duration:gt,easing:pt},React.createElement("path",_extends$7({},filterProps(et,!0),{className:_t,d:getTrapezoidPath(Tt,kt,yt,Et,St),ref:tt})))}):React.createElement("g",null,React.createElement("path",_extends$7({},filterProps(et,!0),{className:_t,d:getTrapezoidPath(st,lt,ut,ct,dt)})))},_excluded$2=["option","shapeType","propTransformer","activeClassName","isActive"];function _typeof$c(j){"@babel/helpers - typeof";return _typeof$c=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$c(j)}function _objectWithoutProperties$2(j,_e){if(j==null)return{};var et=_objectWithoutPropertiesLoose$2(j,_e),tt,rt;if(Object.getOwnPropertySymbols){var nt=Object.getOwnPropertySymbols(j);for(rt=0;rt=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$2(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function ownKeys$b(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$b(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$3(j){return _getPrototypeOf$3=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$3(j)}function _defineProperty$b(j,_e,et){return _e=_toPropertyKey$b(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$b(j){var _e=_toPrimitive$b(j,"string");return _typeof$b(_e)==="symbol"?_e:String(_e)}function _toPrimitive$b(j,_e){if(_typeof$b(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$b(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var Pie=function(j){_inherits$3(et,j);var _e=_createSuper$3(et);function et(tt){var rt;return _classCallCheck$5(this,et),rt=_e.call(this,tt),_defineProperty$b(_assertThisInitialized$3(rt),"pieRef",null),_defineProperty$b(_assertThisInitialized$3(rt),"sectorRefs",[]),_defineProperty$b(_assertThisInitialized$3(rt),"id",uniqueId("recharts-pie-")),_defineProperty$b(_assertThisInitialized$3(rt),"handleAnimationEnd",function(){var nt=rt.props.onAnimationEnd;rt.setState({isAnimationFinished:!0}),isFunction$6(nt)&&nt()}),_defineProperty$b(_assertThisInitialized$3(rt),"handleAnimationStart",function(){var nt=rt.props.onAnimationStart;rt.setState({isAnimationFinished:!1}),isFunction$6(nt)&&nt()}),rt.state={isAnimationFinished:!tt.isAnimationActive,prevIsAnimationActive:tt.isAnimationActive,prevAnimationId:tt.animationId,sectorToFocus:0},rt}return _createClass$5(et,[{key:"isActiveIndex",value:function(rt){var nt=this.props.activeIndex;return Array.isArray(nt)?nt.indexOf(rt)!==-1:rt===nt}},{key:"hasActiveIndex",value:function(){var rt=this.props.activeIndex;return Array.isArray(rt)?rt.length!==0:rt||rt===0}},{key:"renderLabels",value:function(rt){var nt=this.props.isAnimationActive;if(nt&&!this.state.isAnimationFinished)return null;var ot=this.props,it=ot.label,st=ot.labelLine,lt=ot.dataKey,ut=ot.valueKey,ct=filterProps(this.props),dt=filterProps(it),ft=filterProps(st),pt=it&&it.offsetRadius||20,gt=rt.map(function(mt,bt){var _t=(mt.startAngle+mt.endAngle)/2,xt=polarToCartesian(mt.cx,mt.cy,mt.outerRadius+pt,_t),yt=_objectSpread$a(_objectSpread$a(_objectSpread$a(_objectSpread$a({},ct),mt),{},{stroke:"none"},dt),{},{index:bt,textAnchor:et.getTextAnchor(xt.x,mt.cx)},xt),Et=_objectSpread$a(_objectSpread$a(_objectSpread$a(_objectSpread$a({},ct),mt),{},{fill:"none",stroke:mt.fill},ft),{},{index:bt,points:[polarToCartesian(mt.cx,mt.cy,mt.outerRadius,_t),xt],key:"line"}),St=lt;return isNil$1(lt)&&isNil$1(ut)?St="value":isNil$1(lt)&&(St=ut),React.createElement(Layer,{key:"label-".concat(mt.startAngle,"-").concat(mt.endAngle)},st&&et.renderLabelLineItem(st,Et),et.renderLabelItem(it,yt,getValueByDataKey(mt,St)))});return React.createElement(Layer,{className:"recharts-pie-labels"},gt)}},{key:"renderSectorsStatically",value:function(rt){var nt=this,ot=this.props,it=ot.activeShape,st=ot.blendStroke,lt=ot.inactiveShape;return rt.map(function(ut,ct){if((ut==null?void 0:ut.startAngle)===0&&(ut==null?void 0:ut.endAngle)===0&&rt.length!==1)return null;var dt=nt.isActiveIndex(ct),ft=lt&&nt.hasActiveIndex()?lt:null,pt=dt?it:ft,gt=_objectSpread$a(_objectSpread$a({},ut),{},{stroke:st?ut.fill:ut.stroke,tabIndex:-1});return React.createElement(Layer,_extends$6({ref:function(bt){bt&&!nt.sectorRefs.includes(bt)&&nt.sectorRefs.push(bt)},tabIndex:-1,className:"recharts-pie-sector"},adaptEventsOfChild(nt.props,ut,ct),{key:"sector-".concat(ut==null?void 0:ut.startAngle,"-").concat(ut==null?void 0:ut.endAngle,"-").concat(ut.midAngle)}),React.createElement(Shape,_extends$6({option:pt,isActive:dt,shapeType:"sector"},gt)))})}},{key:"renderSectorsWithAnimation",value:function(){var rt=this,nt=this.props,ot=nt.sectors,it=nt.isAnimationActive,st=nt.animationBegin,lt=nt.animationDuration,ut=nt.animationEasing,ct=nt.animationId,dt=this.state,ft=dt.prevSectors,pt=dt.prevIsAnimationActive;return React.createElement(Animate,{begin:st,duration:lt,isActive:it,easing:ut,from:{t:0},to:{t:1},key:"pie-".concat(ct,"-").concat(pt),onAnimationStart:this.handleAnimationStart,onAnimationEnd:this.handleAnimationEnd},function(gt){var mt=gt.t,bt=[],_t=ot&&ot[0],xt=_t.startAngle;return ot.forEach(function(yt,Et){var St=ft&&ft[Et],Tt=Et>0?get$3(yt,"paddingAngle",0):0;if(St){var kt=interpolateNumber$2(St.endAngle-St.startAngle,yt.endAngle-yt.startAngle),$t=_objectSpread$a(_objectSpread$a({},yt),{},{startAngle:xt+Tt,endAngle:xt+kt(mt)+Tt});bt.push($t),xt=$t.endAngle}else{var Ct=yt.endAngle,It=yt.startAngle,Nt=interpolateNumber$2(0,Ct-It),Ot=Nt(mt),jt=_objectSpread$a(_objectSpread$a({},yt),{},{startAngle:xt+Tt,endAngle:xt+Ot+Tt});bt.push(jt),xt=jt.endAngle}}),React.createElement(Layer,null,rt.renderSectorsStatically(bt))})}},{key:"attachKeyboardHandlers",value:function(rt){var nt=this;rt.onkeydown=function(ot){if(!ot.altKey)switch(ot.key){case"ArrowLeft":{var it=++nt.state.sectorToFocus%nt.sectorRefs.length;nt.sectorRefs[it].focus(),nt.setState({sectorToFocus:it});break}case"ArrowRight":{var st=--nt.state.sectorToFocus<0?nt.sectorRefs.length-1:nt.state.sectorToFocus%nt.sectorRefs.length;nt.sectorRefs[st].focus(),nt.setState({sectorToFocus:st});break}case"Escape":{nt.sectorRefs[nt.state.sectorToFocus].blur(),nt.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var rt=this.props,nt=rt.sectors,ot=rt.isAnimationActive,it=this.state.prevSectors;return ot&&nt&&nt.length&&(!it||!isEqual$1(it,nt))?this.renderSectorsWithAnimation():this.renderSectorsStatically(nt)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var rt=this,nt=this.props,ot=nt.hide,it=nt.sectors,st=nt.className,lt=nt.label,ut=nt.cx,ct=nt.cy,dt=nt.innerRadius,ft=nt.outerRadius,pt=nt.isAnimationActive,gt=this.state.isAnimationFinished;if(ot||!it||!it.length||!isNumber(ut)||!isNumber(ct)||!isNumber(dt)||!isNumber(ft))return null;var mt=clsx("recharts-pie",st);return React.createElement(Layer,{tabIndex:this.props.rootTabIndex,className:mt,ref:function(_t){rt.pieRef=_t}},this.renderSectors(),lt&&this.renderLabels(it),Label.renderCallByParent(this.props,null,!1),(!pt||gt)&&LabelList.renderCallByParent(this.props,it,!1))}}],[{key:"getDerivedStateFromProps",value:function(rt,nt){return nt.prevIsAnimationActive!==rt.isAnimationActive?{prevIsAnimationActive:rt.isAnimationActive,prevAnimationId:rt.animationId,curSectors:rt.sectors,prevSectors:[],isAnimationFinished:!0}:rt.isAnimationActive&&rt.animationId!==nt.prevAnimationId?{prevAnimationId:rt.animationId,curSectors:rt.sectors,prevSectors:nt.curSectors,isAnimationFinished:!0}:rt.sectors!==nt.curSectors?{curSectors:rt.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(rt,nt){return rt>nt?"start":rt=360?_t:_t-1)*st,yt=vt-_t*ft-xt,Et=tt.reduce(function(At,wt){var Ct=getValueByDataKey(wt,bt,0);return At+(isNumber(Ct)?Ct:0)},0),St;if(Et>0){var $t;St=tt.map(function(At,wt){var Ct=getValueByDataKey(At,bt,0),It=getValueByDataKey(At,ut,wt),Ot=(isNumber(Ct)?Ct:0)/Et,Nt;wt?Nt=$t.endAngle+mathSign(gt)*st*(Ct!==0?1:0):Nt=ot;var Pt=Nt+mathSign(gt)*((Ct!==0?ft:0)+Ot*yt),Mt=(Nt+Pt)/2,Rt=(pt.innerRadius+pt.outerRadius)/2,Lt=[{name:It,value:Ct,payload:At,dataKey:bt,type:dt}],jt=polarToCartesian(pt.cx,pt.cy,Rt,Mt);return $t=_objectSpread$a(_objectSpread$a(_objectSpread$a({percent:Ot,cornerRadius:nt,name:It,tooltipPayload:Lt,midAngle:Mt,middleRadius:Rt,tooltipPosition:jt},At),pt),{},{value:getValueByDataKey(At,bt),startAngle:Nt,endAngle:Pt,payload:At,paddingAngle:mathSign(gt)*st}),$t})}return _objectSpread$a(_objectSpread$a({},pt),{},{sectors:St,data:tt})});function _typeof$a(j){"@babel/helpers - typeof";return _typeof$a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$a(j)}function ownKeys$9(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$9(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$2(j){return _getPrototypeOf$2=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$2(j)}function _defineProperty$9(j,_e,et){return _e=_toPropertyKey$9(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$9(j){var _e=_toPrimitive$9(j,"string");return _typeof$9(_e)==="symbol"?_e:String(_e)}function _toPrimitive$9(j,_e){if(_typeof$9(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$9(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var createScale=function j(_e){var et=_e.data,tt=_e.startIndex,rt=_e.endIndex,nt=_e.x,ot=_e.width,it=_e.travellerWidth;if(!et||!et.length)return{};var st=et.length,lt=point().domain(range$4(0,st)).range([nt,nt+ot-it]),ut=lt.domain().map(function(ct){return lt(ct)});return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,isTravellerFocused:!1,startX:lt(tt),endX:lt(rt),scale:lt,scaleValues:ut}},isTouch=function j(_e){return _e.changedTouches&&!!_e.changedTouches.length},Brush=function(j){_inherits$2(et,j);var _e=_createSuper$2(et);function et(tt){var rt;return _classCallCheck$4(this,et),rt=_e.call(this,tt),_defineProperty$9(_assertThisInitialized$2(rt),"handleDrag",function(nt){rt.leaveTimer&&(clearTimeout(rt.leaveTimer),rt.leaveTimer=null),rt.state.isTravellerMoving?rt.handleTravellerMove(nt):rt.state.isSlideMoving&&rt.handleSlideDrag(nt)}),_defineProperty$9(_assertThisInitialized$2(rt),"handleTouchMove",function(nt){nt.changedTouches!=null&&nt.changedTouches.length>0&&rt.handleDrag(nt.changedTouches[0])}),_defineProperty$9(_assertThisInitialized$2(rt),"handleDragEnd",function(){rt.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var nt=rt.props,ot=nt.endIndex,it=nt.onDragEnd,st=nt.startIndex;it==null||it({endIndex:ot,startIndex:st})}),rt.detachDragEndListener()}),_defineProperty$9(_assertThisInitialized$2(rt),"handleLeaveWrapper",function(){(rt.state.isTravellerMoving||rt.state.isSlideMoving)&&(rt.leaveTimer=window.setTimeout(rt.handleDragEnd,rt.props.leaveTimeOut))}),_defineProperty$9(_assertThisInitialized$2(rt),"handleEnterSlideOrTraveller",function(){rt.setState({isTextActive:!0})}),_defineProperty$9(_assertThisInitialized$2(rt),"handleLeaveSlideOrTraveller",function(){rt.setState({isTextActive:!1})}),_defineProperty$9(_assertThisInitialized$2(rt),"handleSlideDragStart",function(nt){var ot=isTouch(nt)?nt.changedTouches[0]:nt;rt.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:ot.pageX}),rt.attachDragEndListener()}),rt.travellerDragStartHandlers={startX:rt.handleTravellerDragStart.bind(_assertThisInitialized$2(rt),"startX"),endX:rt.handleTravellerDragStart.bind(_assertThisInitialized$2(rt),"endX")},rt.state={},rt}return _createClass$4(et,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(rt){var nt=rt.startX,ot=rt.endX,it=this.state.scaleValues,st=this.props,lt=st.gap,ut=st.data,ct=ut.length-1,dt=Math.min(nt,ot),ft=Math.max(nt,ot),pt=et.getIndexInRange(it,dt),gt=et.getIndexInRange(it,ft);return{startIndex:pt-pt%lt,endIndex:gt===ct?ct:gt-gt%lt}}},{key:"getTextOfTick",value:function(rt){var nt=this.props,ot=nt.data,it=nt.tickFormatter,st=nt.dataKey,lt=getValueByDataKey(ot[rt],st,rt);return isFunction$6(it)?it(lt,rt):lt}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(rt){var nt=this.state,ot=nt.slideMoveStartX,it=nt.startX,st=nt.endX,lt=this.props,ut=lt.x,ct=lt.width,dt=lt.travellerWidth,ft=lt.startIndex,pt=lt.endIndex,gt=lt.onChange,vt=rt.pageX-ot;vt>0?vt=Math.min(vt,ut+ct-dt-st,ut+ct-dt-it):vt<0&&(vt=Math.max(vt,ut-it,ut-st));var bt=this.getIndex({startX:it+vt,endX:st+vt});(bt.startIndex!==ft||bt.endIndex!==pt)&>&>(bt),this.setState({startX:it+vt,endX:st+vt,slideMoveStartX:rt.pageX})}},{key:"handleTravellerDragStart",value:function(rt,nt){var ot=isTouch(nt)?nt.changedTouches[0]:nt;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:rt,brushMoveStartX:ot.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(rt){var nt,ot=this.state,it=ot.brushMoveStartX,st=ot.movingTravellerId,lt=ot.endX,ut=ot.startX,ct=this.state[st],dt=this.props,ft=dt.x,pt=dt.width,gt=dt.travellerWidth,vt=dt.onChange,bt=dt.gap,_t=dt.data,xt={startX:this.state.startX,endX:this.state.endX},yt=rt.pageX-it;yt>0?yt=Math.min(yt,ft+pt-gt-ct):yt<0&&(yt=Math.max(yt,ft-ct)),xt[st]=ct+yt;var Et=this.getIndex(xt),St=Et.startIndex,$t=Et.endIndex,At=function(){var Ct=_t.length-1;return st==="startX"&&(lt>ut?St%bt===0:$t%bt===0)||ltut?$t%bt===0:St%bt===0)||lt>ut&&$t===Ct};this.setState((nt={},_defineProperty$9(nt,st,ct+yt),_defineProperty$9(nt,"brushMoveStartX",rt.pageX),nt),function(){vt&&At()&&vt(Et)})}},{key:"handleTravellerMoveKeyboard",value:function(rt,nt){var ot=this,it=this.state,st=it.scaleValues,lt=it.startX,ut=it.endX,ct=this.state[nt],dt=st.indexOf(ct);if(dt!==-1){var ft=dt+rt;if(!(ft===-1||ft>=st.length)){var pt=st[ft];nt==="startX"&&pt>=ut||nt==="endX"&&pt<=lt||this.setState(_defineProperty$9({},nt,pt),function(){ot.props.onChange(ot.getIndex({startX:ot.state.startX,endX:ot.state.endX}))})}}}},{key:"renderBackground",value:function(){var rt=this.props,nt=rt.x,ot=rt.y,it=rt.width,st=rt.height,lt=rt.fill,ut=rt.stroke;return React.createElement("rect",{stroke:ut,fill:lt,x:nt,y:ot,width:it,height:st})}},{key:"renderPanorama",value:function(){var rt=this.props,nt=rt.x,ot=rt.y,it=rt.width,st=rt.height,lt=rt.data,ut=rt.children,ct=rt.padding,dt=reactExports.Children.only(ut);return dt?React.cloneElement(dt,{x:nt,y:ot,width:it,height:st,margin:ct,compact:!0,data:lt}):null}},{key:"renderTravellerLayer",value:function(rt,nt){var ot=this,it=this.props,st=it.y,lt=it.travellerWidth,ut=it.height,ct=it.traveller,dt=it.ariaLabel,ft=it.data,pt=it.startIndex,gt=it.endIndex,vt=Math.max(rt,this.props.x),bt=_objectSpread$8(_objectSpread$8({},filterProps(this.props)),{},{x:vt,y:st,width:lt,height:ut}),_t=dt||"Min value: ".concat(ft[pt].name,", Max value: ").concat(ft[gt].name);return React.createElement(Layer,{tabIndex:0,role:"slider","aria-label":_t,"aria-valuenow":rt,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[nt],onTouchStart:this.travellerDragStartHandlers[nt],onKeyDown:function(yt){["ArrowLeft","ArrowRight"].includes(yt.key)&&(yt.preventDefault(),yt.stopPropagation(),ot.handleTravellerMoveKeyboard(yt.key==="ArrowRight"?1:-1,nt))},onFocus:function(){ot.setState({isTravellerFocused:!0})},onBlur:function(){ot.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},et.renderTraveller(ct,bt))}},{key:"renderSlide",value:function(rt,nt){var ot=this.props,it=ot.y,st=ot.height,lt=ot.stroke,ut=ot.travellerWidth,ct=Math.min(rt,nt)+ut,dt=Math.max(Math.abs(nt-rt)-ut,0);return React.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:lt,fillOpacity:.2,x:ct,y:it,width:dt,height:st})}},{key:"renderText",value:function(){var rt=this.props,nt=rt.startIndex,ot=rt.endIndex,it=rt.y,st=rt.height,lt=rt.travellerWidth,ut=rt.stroke,ct=this.state,dt=ct.startX,ft=ct.endX,pt=5,gt={pointerEvents:"none",fill:ut};return React.createElement(Layer,{className:"recharts-brush-texts"},React.createElement(Text$1,_extends$5({textAnchor:"end",verticalAnchor:"middle",x:Math.min(dt,ft)-pt,y:it+st/2},gt),this.getTextOfTick(nt)),React.createElement(Text$1,_extends$5({textAnchor:"start",verticalAnchor:"middle",x:Math.max(dt,ft)+lt+pt,y:it+st/2},gt),this.getTextOfTick(ot)))}},{key:"render",value:function(){var rt=this.props,nt=rt.data,ot=rt.className,it=rt.children,st=rt.x,lt=rt.y,ut=rt.width,ct=rt.height,dt=rt.alwaysShowText,ft=this.state,pt=ft.startX,gt=ft.endX,vt=ft.isTextActive,bt=ft.isSlideMoving,_t=ft.isTravellerMoving,xt=ft.isTravellerFocused;if(!nt||!nt.length||!isNumber(st)||!isNumber(lt)||!isNumber(ut)||!isNumber(ct)||ut<=0||ct<=0)return null;var yt=clsx("recharts-brush",ot),Et=React.Children.count(it)===1,St=generatePrefixStyle("userSelect","none");return React.createElement(Layer,{className:yt,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:St},this.renderBackground(),Et&&this.renderPanorama(),this.renderSlide(pt,gt),this.renderTravellerLayer(pt,"startX"),this.renderTravellerLayer(gt,"endX"),(vt||bt||_t||xt||dt)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(rt){var nt=rt.x,ot=rt.y,it=rt.width,st=rt.height,lt=rt.stroke,ut=Math.floor(ot+st/2)-1;return React.createElement(React.Fragment,null,React.createElement("rect",{x:nt,y:ot,width:it,height:st,fill:lt,stroke:"none"}),React.createElement("line",{x1:nt+1,y1:ut,x2:nt+it-1,y2:ut,fill:"none",stroke:"#fff"}),React.createElement("line",{x1:nt+1,y1:ut+2,x2:nt+it-1,y2:ut+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(rt,nt){var ot;return React.isValidElement(rt)?ot=React.cloneElement(rt,nt):isFunction$6(rt)?ot=rt(nt):ot=et.renderDefaultTraveller(nt),ot}},{key:"getDerivedStateFromProps",value:function(rt,nt){var ot=rt.data,it=rt.width,st=rt.x,lt=rt.travellerWidth,ut=rt.updateId,ct=rt.startIndex,dt=rt.endIndex;if(ot!==nt.prevData||ut!==nt.prevUpdateId)return _objectSpread$8({prevData:ot,prevTravellerWidth:lt,prevUpdateId:ut,prevX:st,prevWidth:it},ot&&ot.length?createScale({data:ot,width:it,x:st,travellerWidth:lt,startIndex:ct,endIndex:dt}):{scale:null,scaleValues:null});if(nt.scale&&(it!==nt.prevWidth||st!==nt.prevX||lt!==nt.prevTravellerWidth)){nt.scale.range([st,st+it-lt]);var ft=nt.scale.domain().map(function(pt){return nt.scale(pt)});return{prevData:ot,prevTravellerWidth:lt,prevUpdateId:ut,prevX:st,prevWidth:it,startX:nt.scale(rt.startIndex),endX:nt.scale(rt.endIndex),scaleValues:ft}}return null}},{key:"getIndexInRange",value:function(rt,nt){for(var ot=rt.length,it=0,st=ot-1;st-it>1;){var lt=Math.floor((it+st)/2);rt[lt]>nt?st=lt:it=lt}return nt>=rt[st]?st:it}}]),et}(reactExports.PureComponent);_defineProperty$9(Brush,"displayName","Brush");_defineProperty$9(Brush,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var baseEach$1=_baseEach;function baseSome$1(j,_e){var et;return baseEach$1(j,function(tt,rt,nt){return et=_e(tt,rt,nt),!et}),!!et}var _baseSome=baseSome$1,arraySome=_arraySome,baseIteratee$1=_baseIteratee,baseSome=_baseSome,isArray$1=isArray_1,isIterateeCall$1=_isIterateeCall;function some(j,_e,et){var tt=isArray$1(j)?arraySome:baseSome;return et&&isIterateeCall$1(j,_e,et)&&(_e=void 0),tt(j,baseIteratee$1(_e))}var some_1=some;const some$1=getDefaultExportFromCjs(some_1);var ifOverflowMatches=function j(_e,et){var tt=_e.alwaysShow,rt=_e.ifOverflow;return tt&&(rt="extendDomain"),rt===et};function arrayEvery$1(j,_e){for(var et=-1,tt=j==null?0:j.length;++et1&&arguments[1]!==void 0?arguments[1]:{},rt=tt.bandAware,nt=tt.position;if(et!==void 0){if(nt)switch(nt){case"start":return this.scale(et);case"middle":{var ot=this.bandwidth?this.bandwidth()/2:0;return this.scale(et)+ot}case"end":{var it=this.bandwidth?this.bandwidth():0;return this.scale(et)+it}default:return this.scale(et)}if(rt){var st=this.bandwidth?this.bandwidth()/2:0;return this.scale(et)+st}return this.scale(et)}}},{key:"isInRange",value:function(et){var tt=this.range(),rt=tt[0],nt=tt[tt.length-1];return rt<=nt?et>=rt&&et<=nt:et>=nt&&et<=rt}}],[{key:"create",value:function(et){return new j(et)}}]),j}();_defineProperty$8(ScaleHelper,"EPS",1e-4);var createLabeledScales=function j(_e){var et=Object.keys(_e).reduce(function(tt,rt){return _objectSpread$7(_objectSpread$7({},tt),{},_defineProperty$8({},rt,ScaleHelper.create(_e[rt])))},{});return _objectSpread$7(_objectSpread$7({},et),{},{apply:function(rt){var nt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ot=nt.bandAware,it=nt.position;return mapValues$1(rt,function(st,lt){return et[lt].apply(st,{bandAware:ot,position:it})})},isInRange:function(rt){return every$1(rt,function(nt,ot){return et[ot].isInRange(nt)})}})};function normalizeAngle(j){return(j%180+180)%180}var getAngledRectangleWidth=function j(_e){var et=_e.width,tt=_e.height,rt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,nt=normalizeAngle(rt),ot=nt*Math.PI/180,it=Math.atan(tt/et),st=ot>it&&otj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$1(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$1(j){if(Array.isArray(j))return j}function _extends$4(){return _extends$4=Object.assign?Object.assign.bind():function(j){for(var _e=1;_ej*rt)return!1;var nt=et();return j*(_e-j*nt/2-tt)>=0&&j*(_e+j*nt/2-rt)<=0}function getNumberIntervalTicks(j,_e){return getEveryNthWithCondition(j,_e+1)}function getEquidistantTicks(j,_e,et,tt,rt){for(var nt=(tt||[]).slice(),ot=_e.start,it=_e.end,st=0,lt=1,ut=ot,ct=function(){var pt=tt==null?void 0:tt[st];if(pt===void 0)return{v:getEveryNthWithCondition(tt,lt)};var gt=st,vt,bt=function(){return vt===void 0&&(vt=et(pt,gt)),vt},_t=pt.coordinate,xt=st===0||isVisible(j,_t,bt,ut,it);xt||(st=0,ut=ot,lt+=1),xt&&(ut=_t+j*(bt()/2+rt),st+=lt)},dt;lt<=nt.length;)if(dt=ct(),dt)return dt.v;return[]}function _typeof$4(j){"@babel/helpers - typeof";return _typeof$4=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$4(j)}function ownKeys$3(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$3(j){for(var _e=1;_e0?ft.coordinate-vt*j:ft.coordinate})}else nt[dt]=ft=_objectSpread$3(_objectSpread$3({},ft),{},{tickCoord:ft.coordinate});var bt=isVisible(j,ft.tickCoord,gt,it,st);bt&&(st=ft.tickCoord-j*(gt()/2+rt),nt[dt]=_objectSpread$3(_objectSpread$3({},ft),{},{isShow:!0}))},ut=ot-1;ut>=0;ut--)lt(ut);return nt}function getTicksStart(j,_e,et,tt,rt,nt){var ot=(tt||[]).slice(),it=ot.length,st=_e.start,lt=_e.end;if(nt){var ut=tt[it-1],ct=et(ut,it-1),dt=j*(ut.coordinate+j*ct/2-lt);ot[it-1]=ut=_objectSpread$3(_objectSpread$3({},ut),{},{tickCoord:dt>0?ut.coordinate-dt*j:ut.coordinate});var ft=isVisible(j,ut.tickCoord,function(){return ct},st,lt);ft&&(lt=ut.tickCoord-j*(ct/2+rt),ot[it-1]=_objectSpread$3(_objectSpread$3({},ut),{},{isShow:!0}))}for(var pt=nt?it-1:it,gt=function(_t){var xt=ot[_t],yt,Et=function(){return yt===void 0&&(yt=et(xt,_t)),yt};if(_t===0){var St=j*(xt.coordinate-j*Et()/2-st);ot[_t]=xt=_objectSpread$3(_objectSpread$3({},xt),{},{tickCoord:St<0?xt.coordinate-St*j:xt.coordinate})}else ot[_t]=xt=_objectSpread$3(_objectSpread$3({},xt),{},{tickCoord:xt.coordinate});var $t=isVisible(j,xt.tickCoord,Et,st,lt);$t&&(st=xt.tickCoord+j*(Et()/2+rt),ot[_t]=_objectSpread$3(_objectSpread$3({},xt),{},{isShow:!0}))},vt=0;vt=2?mathSign(rt[1].coordinate-rt[0].coordinate):1,bt=getTickBoundaries(nt,vt,ft);return st==="equidistantPreserveStart"?getEquidistantTicks(vt,bt,gt,rt,ot):(st==="preserveStart"||st==="preserveStartEnd"?dt=getTicksStart(vt,bt,gt,rt,ot,st==="preserveStartEnd"):dt=getTicksEnd(vt,bt,gt,rt,ot),dt.filter(function(_t){return _t.isShow}))}var _excluded$1=["viewBox"],_excluded2$1=["viewBox"],_excluded3=["ticks"];function _typeof$3(j){"@babel/helpers - typeof";return _typeof$3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$3(j)}function _extends$1(){return _extends$1=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$1(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _classCallCheck$2(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$2(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey$3(tt.key),tt)}}function _createClass$2(j,_e,et){return _e&&_defineProperties$2(j.prototype,_e),et&&_defineProperties$2(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits$1(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf$1(j,_e)}function _setPrototypeOf$1(j,_e){return _setPrototypeOf$1=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$1(j,_e)}function _createSuper$1(j){var _e=_isNativeReflectConstruct$1();return function(){var tt=_getPrototypeOf$1(j),rt;if(_e){var nt=_getPrototypeOf$1(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn$1(this,rt)}}function _possibleConstructorReturn$1(j,_e){if(_e&&(_typeof$3(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$1(j)}function _assertThisInitialized$1(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$1(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$1(j){return _getPrototypeOf$1=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$1(j)}function _defineProperty$3(j,_e,et){return _e=_toPropertyKey$3(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$3(j){var _e=_toPrimitive$3(j,"string");return _typeof$3(_e)==="symbol"?_e:String(_e)}function _toPrimitive$3(j,_e){if(_typeof$3(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$3(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var CartesianAxis=function(j){_inherits$1(et,j);var _e=_createSuper$1(et);function et(tt){var rt;return _classCallCheck$2(this,et),rt=_e.call(this,tt),rt.state={fontSize:"",letterSpacing:""},rt}return _createClass$2(et,[{key:"shouldComponentUpdate",value:function(rt,nt){var ot=rt.viewBox,it=_objectWithoutProperties$1(rt,_excluded$1),st=this.props,lt=st.viewBox,ut=_objectWithoutProperties$1(st,_excluded2$1);return!shallowEqual(ot,lt)||!shallowEqual(it,ut)||!shallowEqual(nt,this.state)}},{key:"componentDidMount",value:function(){var rt=this.layerReference;if(rt){var nt=rt.getElementsByClassName("recharts-cartesian-axis-tick-value")[0];nt&&this.setState({fontSize:window.getComputedStyle(nt).fontSize,letterSpacing:window.getComputedStyle(nt).letterSpacing})}}},{key:"getTickLineCoord",value:function(rt){var nt=this.props,ot=nt.x,it=nt.y,st=nt.width,lt=nt.height,ut=nt.orientation,ct=nt.tickSize,dt=nt.mirror,ft=nt.tickMargin,pt,gt,vt,bt,_t,xt,yt=dt?-1:1,Et=rt.tickSize||ct,St=isNumber(rt.tickCoord)?rt.tickCoord:rt.coordinate;switch(ut){case"top":pt=gt=rt.coordinate,bt=it+ +!dt*lt,vt=bt-yt*Et,xt=vt-yt*ft,_t=St;break;case"left":vt=bt=rt.coordinate,gt=ot+ +!dt*st,pt=gt-yt*Et,_t=pt-yt*ft,xt=St;break;case"right":vt=bt=rt.coordinate,gt=ot+ +dt*st,pt=gt+yt*Et,_t=pt+yt*ft,xt=St;break;default:pt=gt=rt.coordinate,bt=it+ +dt*lt,vt=bt+yt*Et,xt=vt+yt*ft,_t=St;break}return{line:{x1:pt,y1:vt,x2:gt,y2:bt},tick:{x:_t,y:xt}}}},{key:"getTickTextAnchor",value:function(){var rt=this.props,nt=rt.orientation,ot=rt.mirror,it;switch(nt){case"left":it=ot?"start":"end";break;case"right":it=ot?"end":"start";break;default:it="middle";break}return it}},{key:"getTickVerticalAnchor",value:function(){var rt=this.props,nt=rt.orientation,ot=rt.mirror,it="end";switch(nt){case"left":case"right":it="middle";break;case"top":it=ot?"start":"end";break;default:it=ot?"end":"start";break}return it}},{key:"renderAxisLine",value:function(){var rt=this.props,nt=rt.x,ot=rt.y,it=rt.width,st=rt.height,lt=rt.orientation,ut=rt.mirror,ct=rt.axisLine,dt=_objectSpread$2(_objectSpread$2(_objectSpread$2({},filterProps(this.props)),filterProps(ct)),{},{fill:"none"});if(lt==="top"||lt==="bottom"){var ft=+(lt==="top"&&!ut||lt==="bottom"&&ut);dt=_objectSpread$2(_objectSpread$2({},dt),{},{x1:nt,y1:ot+ft*st,x2:nt+it,y2:ot+ft*st})}else{var pt=+(lt==="left"&&!ut||lt==="right"&&ut);dt=_objectSpread$2(_objectSpread$2({},dt),{},{x1:nt+pt*it,y1:ot,x2:nt+pt*it,y2:ot+st})}return React.createElement("line",_extends$1({},dt,{className:clsx("recharts-cartesian-axis-line",get$5(ct,"className"))}))}},{key:"renderTicks",value:function(rt,nt,ot){var it=this,st=this.props,lt=st.tickLine,ut=st.stroke,ct=st.tick,dt=st.tickFormatter,ft=st.unit,pt=getTicks(_objectSpread$2(_objectSpread$2({},this.props),{},{ticks:rt}),nt,ot),gt=this.getTickTextAnchor(),vt=this.getTickVerticalAnchor(),bt=filterProps(this.props),_t=filterProps(ct),xt=_objectSpread$2(_objectSpread$2({},bt),{},{fill:"none"},filterProps(lt)),yt=pt.map(function(Et,St){var $t=it.getTickLineCoord(Et),At=$t.line,wt=$t.tick,Ct=_objectSpread$2(_objectSpread$2(_objectSpread$2(_objectSpread$2({textAnchor:gt,verticalAnchor:vt},bt),{},{stroke:"none",fill:ut},_t),wt),{},{index:St,payload:Et,visibleTicksCount:pt.length,tickFormatter:dt});return React.createElement(Layer,_extends$1({className:"recharts-cartesian-axis-tick",key:"tick-".concat(Et.value,"-").concat(Et.coordinate,"-").concat(Et.tickCoord)},adaptEventsOfChild(it.props,Et,St)),lt&&React.createElement("line",_extends$1({},xt,At,{className:clsx("recharts-cartesian-axis-tick-line",get$5(lt,"className"))})),ct&&et.renderTickItem(ct,Ct,"".concat(isFunction$6(dt)?dt(Et.value,St):Et.value).concat(ft||"")))});return React.createElement("g",{className:"recharts-cartesian-axis-ticks"},yt)}},{key:"render",value:function(){var rt=this,nt=this.props,ot=nt.axisLine,it=nt.width,st=nt.height,lt=nt.ticksGenerator,ut=nt.className,ct=nt.hide;if(ct)return null;var dt=this.props,ft=dt.ticks,pt=_objectWithoutProperties$1(dt,_excluded3),gt=ft;return isFunction$6(lt)&&(gt=ft&&ft.length>0?lt(this.props):lt(pt)),it<=0||st<=0||!gt||!gt.length?null:React.createElement(Layer,{className:clsx("recharts-cartesian-axis",ut),ref:function(bt){rt.layerReference=bt}},ot&&this.renderAxisLine(),this.renderTicks(gt,this.state.fontSize,this.state.letterSpacing),Label.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(rt,nt,ot){var it;return React.isValidElement(rt)?it=React.cloneElement(rt,nt):isFunction$6(rt)?it=rt(nt):it=React.createElement(Text$1,_extends$1({},nt,{className:"recharts-cartesian-axis-tick-value"}),ot),it}}]),et}(reactExports.Component);_defineProperty$3(CartesianAxis,"displayName","CartesianAxis");_defineProperty$3(CartesianAxis,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var prefix="Invariant failed";function invariant(j,_e){if(!j)throw new Error(prefix)}function _toConsumableArray$1(j){return _arrayWithoutHoles$1(j)||_iterableToArray$1(j)||_unsupportedIterableToArray$1(j)||_nonIterableSpread$1()}function _nonIterableSpread$1(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$1(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$1(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$1(j,_e)}}function _iterableToArray$1(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$1(j){if(Array.isArray(j))return _arrayLikeToArray$1(j)}function _arrayLikeToArray$1(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}var detectReferenceElementsDomain=function j(_e,et,tt,rt,nt){var ot=findAllByType(_e,ReferenceLine),it=findAllByType(_e,ReferenceDot),st=[].concat(_toConsumableArray$1(ot),_toConsumableArray$1(it)),lt=findAllByType(_e,ReferenceArea),ut="".concat(rt,"Id"),ct=rt[0],dt=et;if(st.length&&(dt=st.reduce(function(gt,vt){if(vt.props[ut]===tt&&ifOverflowMatches(vt.props,"extendDomain")&&isNumber(vt.props[ct])){var bt=vt.props[ct];return[Math.min(gt[0],bt),Math.max(gt[1],bt)]}return gt},dt)),lt.length){var ft="".concat(ct,"1"),pt="".concat(ct,"2");dt=lt.reduce(function(gt,vt){if(vt.props[ut]===tt&&ifOverflowMatches(vt.props,"extendDomain")&&isNumber(vt.props[ft])&&isNumber(vt.props[pt])){var bt=vt.props[ft],_t=vt.props[pt];return[Math.min(gt[0],bt,_t),Math.max(gt[1],bt,_t)]}return gt},dt)}return nt&&nt.length&&(dt=nt.reduce(function(gt,vt){return isNumber(vt)?[Math.min(gt[0],vt),Math.max(gt[1],vt)]:gt},dt)),dt},eventCenter=new EventEmitter,SYNC_EVENT="recharts.syncMouseEvents";function _typeof$2(j){"@babel/helpers - typeof";return _typeof$2=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$2(j)}function _classCallCheck$1(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$1(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey$2(tt.key),tt)}}function _createClass$1(j,_e,et){return _e&&_defineProperties$1(j.prototype,_e),et&&_defineProperties$1(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _defineProperty$2(j,_e,et){return _e=_toPropertyKey$2(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$2(j){var _e=_toPrimitive$2(j,"string");return _typeof$2(_e)==="symbol"?_e:String(_e)}function _toPrimitive$2(j,_e){if(_typeof$2(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$2(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var AccessibilityManager=function(){function j(){_classCallCheck$1(this,j),_defineProperty$2(this,"activeIndex",0),_defineProperty$2(this,"coordinateList",[]),_defineProperty$2(this,"layout","horizontal")}return _createClass$1(j,[{key:"setDetails",value:function(et){var tt=et.coordinateList,rt=tt===void 0?[]:tt,nt=et.container,ot=nt===void 0?null:nt,it=et.layout,st=it===void 0?null:it,lt=et.offset,ut=lt===void 0?null:lt,ct=et.mouseHandlerCallback,dt=ct===void 0?null:ct;this.coordinateList=rt??this.coordinateList,this.container=ot??this.container,this.layout=st??this.layout,this.offset=ut??this.offset,this.mouseHandlerCallback=dt??this.mouseHandlerCallback,this.activeIndex=Math.min(Math.max(this.activeIndex,0),this.coordinateList.length-1)}},{key:"focus",value:function(){this.spoofMouse()}},{key:"keyboardEvent",value:function(et){if(this.coordinateList.length!==0)switch(et.key){case"ArrowRight":{if(this.layout!=="horizontal")return;this.activeIndex=Math.min(this.activeIndex+1,this.coordinateList.length-1),this.spoofMouse();break}case"ArrowLeft":{if(this.layout!=="horizontal")return;this.activeIndex=Math.max(this.activeIndex-1,0),this.spoofMouse();break}}}},{key:"spoofMouse",value:function(){var et,tt;if(this.layout==="horizontal"&&this.coordinateList.length!==0){var rt=this.container.getBoundingClientRect(),nt=rt.x,ot=rt.y,it=rt.height,st=this.coordinateList[this.activeIndex].coordinate,lt=((et=window)===null||et===void 0?void 0:et.scrollX)||0,ut=((tt=window)===null||tt===void 0?void 0:tt.scrollY)||0,ct=nt+st+lt,dt=ot+this.offset.top+it/2+ut;this.mouseHandlerCallback({pageX:ct,pageY:dt})}}}]),j}();function isDomainSpecifiedByUser(j,_e,et){if(et==="number"&&_e===!0&&Array.isArray(j)){var tt=j==null?void 0:j[0],rt=j==null?void 0:j[1];if(tt&&rt&&isNumber(tt)&&isNumber(rt))return!0}return!1}function getCursorRectangle(j,_e,et,tt){var rt=tt/2;return{stroke:"none",fill:"#ccc",x:j==="horizontal"?_e.x-rt:et.left+.5,y:j==="horizontal"?et.top+.5:_e.y-rt,width:j==="horizontal"?tt:et.width-1,height:j==="horizontal"?et.height-1:tt}}function getRadialCursorPoints(j){var _e=j.cx,et=j.cy,tt=j.radius,rt=j.startAngle,nt=j.endAngle,ot=polarToCartesian(_e,et,tt,rt),it=polarToCartesian(_e,et,tt,nt);return{points:[ot,it],cx:_e,cy:et,radius:tt,startAngle:rt,endAngle:nt}}function getCursorPoints(j,_e,et){var tt,rt,nt,ot;if(j==="horizontal")tt=_e.x,nt=tt,rt=et.top,ot=et.top+et.height;else if(j==="vertical")rt=_e.y,ot=rt,tt=et.left,nt=et.left+et.width;else if(_e.cx!=null&&_e.cy!=null)if(j==="centric"){var it=_e.cx,st=_e.cy,lt=_e.innerRadius,ut=_e.outerRadius,ct=_e.angle,dt=polarToCartesian(it,st,lt,ct),ft=polarToCartesian(it,st,ut,ct);tt=dt.x,rt=dt.y,nt=ft.x,ot=ft.y}else return getRadialCursorPoints(_e);return[{x:tt,y:rt},{x:nt,y:ot}]}function _typeof$1(j){"@babel/helpers - typeof";return _typeof$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$1(j)}function ownKeys$1(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$1(j){for(var _e=1;_e=360?_t:_t-1)*st,yt=mt-_t*ft-xt,Et=tt.reduce(function(kt,$t){var Ct=getValueByDataKey($t,bt,0);return kt+(isNumber(Ct)?Ct:0)},0),St;if(Et>0){var Tt;St=tt.map(function(kt,$t){var Ct=getValueByDataKey(kt,bt,0),It=getValueByDataKey(kt,ut,$t),Nt=(isNumber(Ct)?Ct:0)/Et,Ot;$t?Ot=Tt.endAngle+mathSign(gt)*st*(Ct!==0?1:0):Ot=ot;var jt=Ot+mathSign(gt)*((Ct!==0?ft:0)+Nt*yt),Mt=(Ot+jt)/2,Rt=(pt.innerRadius+pt.outerRadius)/2,Lt=[{name:It,value:Ct,payload:kt,dataKey:bt,type:dt}],Pt=polarToCartesian(pt.cx,pt.cy,Rt,Mt);return Tt=_objectSpread$a(_objectSpread$a(_objectSpread$a({percent:Nt,cornerRadius:nt,name:It,tooltipPayload:Lt,midAngle:Mt,middleRadius:Rt,tooltipPosition:Pt},kt),pt),{},{value:getValueByDataKey(kt,bt),startAngle:Ot,endAngle:jt,payload:kt,paddingAngle:mathSign(gt)*st}),Tt})}return _objectSpread$a(_objectSpread$a({},pt),{},{sectors:St,data:tt})});function _typeof$a(j){"@babel/helpers - typeof";return _typeof$a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$a(j)}function ownKeys$9(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$9(j){for(var _e=1;_e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$2(j){return _getPrototypeOf$2=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$2(j)}function _defineProperty$9(j,_e,et){return _e=_toPropertyKey$9(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$9(j){var _e=_toPrimitive$9(j,"string");return _typeof$9(_e)==="symbol"?_e:String(_e)}function _toPrimitive$9(j,_e){if(_typeof$9(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$9(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var createScale=function j(_e){var et=_e.data,tt=_e.startIndex,rt=_e.endIndex,nt=_e.x,ot=_e.width,it=_e.travellerWidth;if(!et||!et.length)return{};var st=et.length,lt=point().domain(range$4(0,st)).range([nt,nt+ot-it]),ut=lt.domain().map(function(ct){return lt(ct)});return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,isTravellerFocused:!1,startX:lt(tt),endX:lt(rt),scale:lt,scaleValues:ut}},isTouch=function j(_e){return _e.changedTouches&&!!_e.changedTouches.length},Brush=function(j){_inherits$2(et,j);var _e=_createSuper$2(et);function et(tt){var rt;return _classCallCheck$4(this,et),rt=_e.call(this,tt),_defineProperty$9(_assertThisInitialized$2(rt),"handleDrag",function(nt){rt.leaveTimer&&(clearTimeout(rt.leaveTimer),rt.leaveTimer=null),rt.state.isTravellerMoving?rt.handleTravellerMove(nt):rt.state.isSlideMoving&&rt.handleSlideDrag(nt)}),_defineProperty$9(_assertThisInitialized$2(rt),"handleTouchMove",function(nt){nt.changedTouches!=null&&nt.changedTouches.length>0&&rt.handleDrag(nt.changedTouches[0])}),_defineProperty$9(_assertThisInitialized$2(rt),"handleDragEnd",function(){rt.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var nt=rt.props,ot=nt.endIndex,it=nt.onDragEnd,st=nt.startIndex;it==null||it({endIndex:ot,startIndex:st})}),rt.detachDragEndListener()}),_defineProperty$9(_assertThisInitialized$2(rt),"handleLeaveWrapper",function(){(rt.state.isTravellerMoving||rt.state.isSlideMoving)&&(rt.leaveTimer=window.setTimeout(rt.handleDragEnd,rt.props.leaveTimeOut))}),_defineProperty$9(_assertThisInitialized$2(rt),"handleEnterSlideOrTraveller",function(){rt.setState({isTextActive:!0})}),_defineProperty$9(_assertThisInitialized$2(rt),"handleLeaveSlideOrTraveller",function(){rt.setState({isTextActive:!1})}),_defineProperty$9(_assertThisInitialized$2(rt),"handleSlideDragStart",function(nt){var ot=isTouch(nt)?nt.changedTouches[0]:nt;rt.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:ot.pageX}),rt.attachDragEndListener()}),rt.travellerDragStartHandlers={startX:rt.handleTravellerDragStart.bind(_assertThisInitialized$2(rt),"startX"),endX:rt.handleTravellerDragStart.bind(_assertThisInitialized$2(rt),"endX")},rt.state={},rt}return _createClass$4(et,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(rt){var nt=rt.startX,ot=rt.endX,it=this.state.scaleValues,st=this.props,lt=st.gap,ut=st.data,ct=ut.length-1,dt=Math.min(nt,ot),ft=Math.max(nt,ot),pt=et.getIndexInRange(it,dt),gt=et.getIndexInRange(it,ft);return{startIndex:pt-pt%lt,endIndex:gt===ct?ct:gt-gt%lt}}},{key:"getTextOfTick",value:function(rt){var nt=this.props,ot=nt.data,it=nt.tickFormatter,st=nt.dataKey,lt=getValueByDataKey(ot[rt],st,rt);return isFunction$6(it)?it(lt,rt):lt}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(rt){var nt=this.state,ot=nt.slideMoveStartX,it=nt.startX,st=nt.endX,lt=this.props,ut=lt.x,ct=lt.width,dt=lt.travellerWidth,ft=lt.startIndex,pt=lt.endIndex,gt=lt.onChange,mt=rt.pageX-ot;mt>0?mt=Math.min(mt,ut+ct-dt-st,ut+ct-dt-it):mt<0&&(mt=Math.max(mt,ut-it,ut-st));var bt=this.getIndex({startX:it+mt,endX:st+mt});(bt.startIndex!==ft||bt.endIndex!==pt)&>&>(bt),this.setState({startX:it+mt,endX:st+mt,slideMoveStartX:rt.pageX})}},{key:"handleTravellerDragStart",value:function(rt,nt){var ot=isTouch(nt)?nt.changedTouches[0]:nt;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:rt,brushMoveStartX:ot.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(rt){var nt,ot=this.state,it=ot.brushMoveStartX,st=ot.movingTravellerId,lt=ot.endX,ut=ot.startX,ct=this.state[st],dt=this.props,ft=dt.x,pt=dt.width,gt=dt.travellerWidth,mt=dt.onChange,bt=dt.gap,_t=dt.data,xt={startX:this.state.startX,endX:this.state.endX},yt=rt.pageX-it;yt>0?yt=Math.min(yt,ft+pt-gt-ct):yt<0&&(yt=Math.max(yt,ft-ct)),xt[st]=ct+yt;var Et=this.getIndex(xt),St=Et.startIndex,Tt=Et.endIndex,kt=function(){var Ct=_t.length-1;return st==="startX"&&(lt>ut?St%bt===0:Tt%bt===0)||ltut?Tt%bt===0:St%bt===0)||lt>ut&&Tt===Ct};this.setState((nt={},_defineProperty$9(nt,st,ct+yt),_defineProperty$9(nt,"brushMoveStartX",rt.pageX),nt),function(){mt&&kt()&&mt(Et)})}},{key:"handleTravellerMoveKeyboard",value:function(rt,nt){var ot=this,it=this.state,st=it.scaleValues,lt=it.startX,ut=it.endX,ct=this.state[nt],dt=st.indexOf(ct);if(dt!==-1){var ft=dt+rt;if(!(ft===-1||ft>=st.length)){var pt=st[ft];nt==="startX"&&pt>=ut||nt==="endX"&&pt<=lt||this.setState(_defineProperty$9({},nt,pt),function(){ot.props.onChange(ot.getIndex({startX:ot.state.startX,endX:ot.state.endX}))})}}}},{key:"renderBackground",value:function(){var rt=this.props,nt=rt.x,ot=rt.y,it=rt.width,st=rt.height,lt=rt.fill,ut=rt.stroke;return React.createElement("rect",{stroke:ut,fill:lt,x:nt,y:ot,width:it,height:st})}},{key:"renderPanorama",value:function(){var rt=this.props,nt=rt.x,ot=rt.y,it=rt.width,st=rt.height,lt=rt.data,ut=rt.children,ct=rt.padding,dt=reactExports.Children.only(ut);return dt?React.cloneElement(dt,{x:nt,y:ot,width:it,height:st,margin:ct,compact:!0,data:lt}):null}},{key:"renderTravellerLayer",value:function(rt,nt){var ot=this,it=this.props,st=it.y,lt=it.travellerWidth,ut=it.height,ct=it.traveller,dt=it.ariaLabel,ft=it.data,pt=it.startIndex,gt=it.endIndex,mt=Math.max(rt,this.props.x),bt=_objectSpread$8(_objectSpread$8({},filterProps(this.props)),{},{x:mt,y:st,width:lt,height:ut}),_t=dt||"Min value: ".concat(ft[pt].name,", Max value: ").concat(ft[gt].name);return React.createElement(Layer,{tabIndex:0,role:"slider","aria-label":_t,"aria-valuenow":rt,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[nt],onTouchStart:this.travellerDragStartHandlers[nt],onKeyDown:function(yt){["ArrowLeft","ArrowRight"].includes(yt.key)&&(yt.preventDefault(),yt.stopPropagation(),ot.handleTravellerMoveKeyboard(yt.key==="ArrowRight"?1:-1,nt))},onFocus:function(){ot.setState({isTravellerFocused:!0})},onBlur:function(){ot.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},et.renderTraveller(ct,bt))}},{key:"renderSlide",value:function(rt,nt){var ot=this.props,it=ot.y,st=ot.height,lt=ot.stroke,ut=ot.travellerWidth,ct=Math.min(rt,nt)+ut,dt=Math.max(Math.abs(nt-rt)-ut,0);return React.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:lt,fillOpacity:.2,x:ct,y:it,width:dt,height:st})}},{key:"renderText",value:function(){var rt=this.props,nt=rt.startIndex,ot=rt.endIndex,it=rt.y,st=rt.height,lt=rt.travellerWidth,ut=rt.stroke,ct=this.state,dt=ct.startX,ft=ct.endX,pt=5,gt={pointerEvents:"none",fill:ut};return React.createElement(Layer,{className:"recharts-brush-texts"},React.createElement(Text$1,_extends$5({textAnchor:"end",verticalAnchor:"middle",x:Math.min(dt,ft)-pt,y:it+st/2},gt),this.getTextOfTick(nt)),React.createElement(Text$1,_extends$5({textAnchor:"start",verticalAnchor:"middle",x:Math.max(dt,ft)+lt+pt,y:it+st/2},gt),this.getTextOfTick(ot)))}},{key:"render",value:function(){var rt=this.props,nt=rt.data,ot=rt.className,it=rt.children,st=rt.x,lt=rt.y,ut=rt.width,ct=rt.height,dt=rt.alwaysShowText,ft=this.state,pt=ft.startX,gt=ft.endX,mt=ft.isTextActive,bt=ft.isSlideMoving,_t=ft.isTravellerMoving,xt=ft.isTravellerFocused;if(!nt||!nt.length||!isNumber(st)||!isNumber(lt)||!isNumber(ut)||!isNumber(ct)||ut<=0||ct<=0)return null;var yt=clsx("recharts-brush",ot),Et=React.Children.count(it)===1,St=generatePrefixStyle("userSelect","none");return React.createElement(Layer,{className:yt,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:St},this.renderBackground(),Et&&this.renderPanorama(),this.renderSlide(pt,gt),this.renderTravellerLayer(pt,"startX"),this.renderTravellerLayer(gt,"endX"),(mt||bt||_t||xt||dt)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(rt){var nt=rt.x,ot=rt.y,it=rt.width,st=rt.height,lt=rt.stroke,ut=Math.floor(ot+st/2)-1;return React.createElement(React.Fragment,null,React.createElement("rect",{x:nt,y:ot,width:it,height:st,fill:lt,stroke:"none"}),React.createElement("line",{x1:nt+1,y1:ut,x2:nt+it-1,y2:ut,fill:"none",stroke:"#fff"}),React.createElement("line",{x1:nt+1,y1:ut+2,x2:nt+it-1,y2:ut+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(rt,nt){var ot;return React.isValidElement(rt)?ot=React.cloneElement(rt,nt):isFunction$6(rt)?ot=rt(nt):ot=et.renderDefaultTraveller(nt),ot}},{key:"getDerivedStateFromProps",value:function(rt,nt){var ot=rt.data,it=rt.width,st=rt.x,lt=rt.travellerWidth,ut=rt.updateId,ct=rt.startIndex,dt=rt.endIndex;if(ot!==nt.prevData||ut!==nt.prevUpdateId)return _objectSpread$8({prevData:ot,prevTravellerWidth:lt,prevUpdateId:ut,prevX:st,prevWidth:it},ot&&ot.length?createScale({data:ot,width:it,x:st,travellerWidth:lt,startIndex:ct,endIndex:dt}):{scale:null,scaleValues:null});if(nt.scale&&(it!==nt.prevWidth||st!==nt.prevX||lt!==nt.prevTravellerWidth)){nt.scale.range([st,st+it-lt]);var ft=nt.scale.domain().map(function(pt){return nt.scale(pt)});return{prevData:ot,prevTravellerWidth:lt,prevUpdateId:ut,prevX:st,prevWidth:it,startX:nt.scale(rt.startIndex),endX:nt.scale(rt.endIndex),scaleValues:ft}}return null}},{key:"getIndexInRange",value:function(rt,nt){for(var ot=rt.length,it=0,st=ot-1;st-it>1;){var lt=Math.floor((it+st)/2);rt[lt]>nt?st=lt:it=lt}return nt>=rt[st]?st:it}}]),et}(reactExports.PureComponent);_defineProperty$9(Brush,"displayName","Brush");_defineProperty$9(Brush,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var baseEach$1=_baseEach;function baseSome$1(j,_e){var et;return baseEach$1(j,function(tt,rt,nt){return et=_e(tt,rt,nt),!et}),!!et}var _baseSome=baseSome$1,arraySome=_arraySome,baseIteratee$1=_baseIteratee,baseSome=_baseSome,isArray$1=isArray_1,isIterateeCall$1=_isIterateeCall;function some(j,_e,et){var tt=isArray$1(j)?arraySome:baseSome;return et&&isIterateeCall$1(j,_e,et)&&(_e=void 0),tt(j,baseIteratee$1(_e))}var some_1=some;const some$1=getDefaultExportFromCjs(some_1);var ifOverflowMatches=function j(_e,et){var tt=_e.alwaysShow,rt=_e.ifOverflow;return tt&&(rt="extendDomain"),rt===et};function arrayEvery$1(j,_e){for(var et=-1,tt=j==null?0:j.length;++et1&&arguments[1]!==void 0?arguments[1]:{},rt=tt.bandAware,nt=tt.position;if(et!==void 0){if(nt)switch(nt){case"start":return this.scale(et);case"middle":{var ot=this.bandwidth?this.bandwidth()/2:0;return this.scale(et)+ot}case"end":{var it=this.bandwidth?this.bandwidth():0;return this.scale(et)+it}default:return this.scale(et)}if(rt){var st=this.bandwidth?this.bandwidth()/2:0;return this.scale(et)+st}return this.scale(et)}}},{key:"isInRange",value:function(et){var tt=this.range(),rt=tt[0],nt=tt[tt.length-1];return rt<=nt?et>=rt&&et<=nt:et>=nt&&et<=rt}}],[{key:"create",value:function(et){return new j(et)}}]),j}();_defineProperty$8(ScaleHelper,"EPS",1e-4);var createLabeledScales=function j(_e){var et=Object.keys(_e).reduce(function(tt,rt){return _objectSpread$7(_objectSpread$7({},tt),{},_defineProperty$8({},rt,ScaleHelper.create(_e[rt])))},{});return _objectSpread$7(_objectSpread$7({},et),{},{apply:function(rt){var nt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ot=nt.bandAware,it=nt.position;return mapValues$1(rt,function(st,lt){return et[lt].apply(st,{bandAware:ot,position:it})})},isInRange:function(rt){return every$1(rt,function(nt,ot){return et[ot].isInRange(nt)})}})};function normalizeAngle(j){return(j%180+180)%180}var getAngledRectangleWidth=function j(_e){var et=_e.width,tt=_e.height,rt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,nt=normalizeAngle(rt),ot=nt*Math.PI/180,it=Math.atan(tt/et),st=ot>it&&otj.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function _iterableToArrayLimit$1(j,_e){var et=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(et!=null){var tt,rt,nt,ot,it=[],st=!0,lt=!1;try{if(nt=(et=et.call(j)).next,_e===0){if(Object(et)!==et)return;st=!1}else for(;!(st=(tt=nt.call(et)).done)&&(it.push(tt.value),it.length!==_e);st=!0);}catch(ut){lt=!0,rt=ut}finally{try{if(!st&&et.return!=null&&(ot=et.return(),Object(ot)!==ot))return}finally{if(lt)throw rt}}return it}}function _arrayWithHoles$1(j){if(Array.isArray(j))return j}function _extends$4(){return _extends$4=Object.assign?Object.assign.bind():function(j){for(var _e=1;_ej*rt)return!1;var nt=et();return j*(_e-j*nt/2-tt)>=0&&j*(_e+j*nt/2-rt)<=0}function getNumberIntervalTicks(j,_e){return getEveryNthWithCondition(j,_e+1)}function getEquidistantTicks(j,_e,et,tt,rt){for(var nt=(tt||[]).slice(),ot=_e.start,it=_e.end,st=0,lt=1,ut=ot,ct=function(){var pt=tt==null?void 0:tt[st];if(pt===void 0)return{v:getEveryNthWithCondition(tt,lt)};var gt=st,mt,bt=function(){return mt===void 0&&(mt=et(pt,gt)),mt},_t=pt.coordinate,xt=st===0||isVisible(j,_t,bt,ut,it);xt||(st=0,ut=ot,lt+=1),xt&&(ut=_t+j*(bt()/2+rt),st+=lt)},dt;lt<=nt.length;)if(dt=ct(),dt)return dt.v;return[]}function _typeof$4(j){"@babel/helpers - typeof";return _typeof$4=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$4(j)}function ownKeys$3(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$3(j){for(var _e=1;_e0?ft.coordinate-mt*j:ft.coordinate})}else nt[dt]=ft=_objectSpread$3(_objectSpread$3({},ft),{},{tickCoord:ft.coordinate});var bt=isVisible(j,ft.tickCoord,gt,it,st);bt&&(st=ft.tickCoord-j*(gt()/2+rt),nt[dt]=_objectSpread$3(_objectSpread$3({},ft),{},{isShow:!0}))},ut=ot-1;ut>=0;ut--)lt(ut);return nt}function getTicksStart(j,_e,et,tt,rt,nt){var ot=(tt||[]).slice(),it=ot.length,st=_e.start,lt=_e.end;if(nt){var ut=tt[it-1],ct=et(ut,it-1),dt=j*(ut.coordinate+j*ct/2-lt);ot[it-1]=ut=_objectSpread$3(_objectSpread$3({},ut),{},{tickCoord:dt>0?ut.coordinate-dt*j:ut.coordinate});var ft=isVisible(j,ut.tickCoord,function(){return ct},st,lt);ft&&(lt=ut.tickCoord-j*(ct/2+rt),ot[it-1]=_objectSpread$3(_objectSpread$3({},ut),{},{isShow:!0}))}for(var pt=nt?it-1:it,gt=function(_t){var xt=ot[_t],yt,Et=function(){return yt===void 0&&(yt=et(xt,_t)),yt};if(_t===0){var St=j*(xt.coordinate-j*Et()/2-st);ot[_t]=xt=_objectSpread$3(_objectSpread$3({},xt),{},{tickCoord:St<0?xt.coordinate-St*j:xt.coordinate})}else ot[_t]=xt=_objectSpread$3(_objectSpread$3({},xt),{},{tickCoord:xt.coordinate});var Tt=isVisible(j,xt.tickCoord,Et,st,lt);Tt&&(st=xt.tickCoord+j*(Et()/2+rt),ot[_t]=_objectSpread$3(_objectSpread$3({},xt),{},{isShow:!0}))},mt=0;mt=2?mathSign(rt[1].coordinate-rt[0].coordinate):1,bt=getTickBoundaries(nt,mt,ft);return st==="equidistantPreserveStart"?getEquidistantTicks(mt,bt,gt,rt,ot):(st==="preserveStart"||st==="preserveStartEnd"?dt=getTicksStart(mt,bt,gt,rt,ot,st==="preserveStartEnd"):dt=getTicksEnd(mt,bt,gt,rt,ot),dt.filter(function(_t){return _t.isShow}))}var _excluded$1=["viewBox"],_excluded2$1=["viewBox"],_excluded3=["ticks"];function _typeof$3(j){"@babel/helpers - typeof";return _typeof$3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$3(j)}function _extends$1(){return _extends$1=Object.assign?Object.assign.bind():function(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose$1(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _classCallCheck$2(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$2(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey$3(tt.key),tt)}}function _createClass$2(j,_e,et){return _e&&_defineProperties$2(j.prototype,_e),et&&_defineProperties$2(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits$1(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf$1(j,_e)}function _setPrototypeOf$1(j,_e){return _setPrototypeOf$1=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf$1(j,_e)}function _createSuper$1(j){var _e=_isNativeReflectConstruct$1();return function(){var tt=_getPrototypeOf$1(j),rt;if(_e){var nt=_getPrototypeOf$1(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn$1(this,rt)}}function _possibleConstructorReturn$1(j,_e){if(_e&&(_typeof$3(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$1(j)}function _assertThisInitialized$1(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$1(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$1(j){return _getPrototypeOf$1=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf$1(j)}function _defineProperty$3(j,_e,et){return _e=_toPropertyKey$3(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$3(j){var _e=_toPrimitive$3(j,"string");return _typeof$3(_e)==="symbol"?_e:String(_e)}function _toPrimitive$3(j,_e){if(_typeof$3(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$3(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var CartesianAxis=function(j){_inherits$1(et,j);var _e=_createSuper$1(et);function et(tt){var rt;return _classCallCheck$2(this,et),rt=_e.call(this,tt),rt.state={fontSize:"",letterSpacing:""},rt}return _createClass$2(et,[{key:"shouldComponentUpdate",value:function(rt,nt){var ot=rt.viewBox,it=_objectWithoutProperties$1(rt,_excluded$1),st=this.props,lt=st.viewBox,ut=_objectWithoutProperties$1(st,_excluded2$1);return!shallowEqual(ot,lt)||!shallowEqual(it,ut)||!shallowEqual(nt,this.state)}},{key:"componentDidMount",value:function(){var rt=this.layerReference;if(rt){var nt=rt.getElementsByClassName("recharts-cartesian-axis-tick-value")[0];nt&&this.setState({fontSize:window.getComputedStyle(nt).fontSize,letterSpacing:window.getComputedStyle(nt).letterSpacing})}}},{key:"getTickLineCoord",value:function(rt){var nt=this.props,ot=nt.x,it=nt.y,st=nt.width,lt=nt.height,ut=nt.orientation,ct=nt.tickSize,dt=nt.mirror,ft=nt.tickMargin,pt,gt,mt,bt,_t,xt,yt=dt?-1:1,Et=rt.tickSize||ct,St=isNumber(rt.tickCoord)?rt.tickCoord:rt.coordinate;switch(ut){case"top":pt=gt=rt.coordinate,bt=it+ +!dt*lt,mt=bt-yt*Et,xt=mt-yt*ft,_t=St;break;case"left":mt=bt=rt.coordinate,gt=ot+ +!dt*st,pt=gt-yt*Et,_t=pt-yt*ft,xt=St;break;case"right":mt=bt=rt.coordinate,gt=ot+ +dt*st,pt=gt+yt*Et,_t=pt+yt*ft,xt=St;break;default:pt=gt=rt.coordinate,bt=it+ +dt*lt,mt=bt+yt*Et,xt=mt+yt*ft,_t=St;break}return{line:{x1:pt,y1:mt,x2:gt,y2:bt},tick:{x:_t,y:xt}}}},{key:"getTickTextAnchor",value:function(){var rt=this.props,nt=rt.orientation,ot=rt.mirror,it;switch(nt){case"left":it=ot?"start":"end";break;case"right":it=ot?"end":"start";break;default:it="middle";break}return it}},{key:"getTickVerticalAnchor",value:function(){var rt=this.props,nt=rt.orientation,ot=rt.mirror,it="end";switch(nt){case"left":case"right":it="middle";break;case"top":it=ot?"start":"end";break;default:it=ot?"end":"start";break}return it}},{key:"renderAxisLine",value:function(){var rt=this.props,nt=rt.x,ot=rt.y,it=rt.width,st=rt.height,lt=rt.orientation,ut=rt.mirror,ct=rt.axisLine,dt=_objectSpread$2(_objectSpread$2(_objectSpread$2({},filterProps(this.props)),filterProps(ct)),{},{fill:"none"});if(lt==="top"||lt==="bottom"){var ft=+(lt==="top"&&!ut||lt==="bottom"&&ut);dt=_objectSpread$2(_objectSpread$2({},dt),{},{x1:nt,y1:ot+ft*st,x2:nt+it,y2:ot+ft*st})}else{var pt=+(lt==="left"&&!ut||lt==="right"&&ut);dt=_objectSpread$2(_objectSpread$2({},dt),{},{x1:nt+pt*it,y1:ot,x2:nt+pt*it,y2:ot+st})}return React.createElement("line",_extends$1({},dt,{className:clsx("recharts-cartesian-axis-line",get$3(ct,"className"))}))}},{key:"renderTicks",value:function(rt,nt,ot){var it=this,st=this.props,lt=st.tickLine,ut=st.stroke,ct=st.tick,dt=st.tickFormatter,ft=st.unit,pt=getTicks(_objectSpread$2(_objectSpread$2({},this.props),{},{ticks:rt}),nt,ot),gt=this.getTickTextAnchor(),mt=this.getTickVerticalAnchor(),bt=filterProps(this.props),_t=filterProps(ct),xt=_objectSpread$2(_objectSpread$2({},bt),{},{fill:"none"},filterProps(lt)),yt=pt.map(function(Et,St){var Tt=it.getTickLineCoord(Et),kt=Tt.line,$t=Tt.tick,Ct=_objectSpread$2(_objectSpread$2(_objectSpread$2(_objectSpread$2({textAnchor:gt,verticalAnchor:mt},bt),{},{stroke:"none",fill:ut},_t),$t),{},{index:St,payload:Et,visibleTicksCount:pt.length,tickFormatter:dt});return React.createElement(Layer,_extends$1({className:"recharts-cartesian-axis-tick",key:"tick-".concat(Et.value,"-").concat(Et.coordinate,"-").concat(Et.tickCoord)},adaptEventsOfChild(it.props,Et,St)),lt&&React.createElement("line",_extends$1({},xt,kt,{className:clsx("recharts-cartesian-axis-tick-line",get$3(lt,"className"))})),ct&&et.renderTickItem(ct,Ct,"".concat(isFunction$6(dt)?dt(Et.value,St):Et.value).concat(ft||"")))});return React.createElement("g",{className:"recharts-cartesian-axis-ticks"},yt)}},{key:"render",value:function(){var rt=this,nt=this.props,ot=nt.axisLine,it=nt.width,st=nt.height,lt=nt.ticksGenerator,ut=nt.className,ct=nt.hide;if(ct)return null;var dt=this.props,ft=dt.ticks,pt=_objectWithoutProperties$1(dt,_excluded3),gt=ft;return isFunction$6(lt)&&(gt=ft&&ft.length>0?lt(this.props):lt(pt)),it<=0||st<=0||!gt||!gt.length?null:React.createElement(Layer,{className:clsx("recharts-cartesian-axis",ut),ref:function(bt){rt.layerReference=bt}},ot&&this.renderAxisLine(),this.renderTicks(gt,this.state.fontSize,this.state.letterSpacing),Label.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(rt,nt,ot){var it;return React.isValidElement(rt)?it=React.cloneElement(rt,nt):isFunction$6(rt)?it=rt(nt):it=React.createElement(Text$1,_extends$1({},nt,{className:"recharts-cartesian-axis-tick-value"}),ot),it}}]),et}(reactExports.Component);_defineProperty$3(CartesianAxis,"displayName","CartesianAxis");_defineProperty$3(CartesianAxis,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var prefix="Invariant failed";function invariant(j,_e){if(!j)throw new Error(prefix)}function _toConsumableArray$1(j){return _arrayWithoutHoles$1(j)||_iterableToArray$1(j)||_unsupportedIterableToArray$1(j)||_nonIterableSpread$1()}function _nonIterableSpread$1(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$1(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray$1(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$1(j,_e)}}function _iterableToArray$1(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$1(j){if(Array.isArray(j))return _arrayLikeToArray$1(j)}function _arrayLikeToArray$1(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}var detectReferenceElementsDomain=function j(_e,et,tt,rt,nt){var ot=findAllByType(_e,ReferenceLine),it=findAllByType(_e,ReferenceDot),st=[].concat(_toConsumableArray$1(ot),_toConsumableArray$1(it)),lt=findAllByType(_e,ReferenceArea),ut="".concat(rt,"Id"),ct=rt[0],dt=et;if(st.length&&(dt=st.reduce(function(gt,mt){if(mt.props[ut]===tt&&ifOverflowMatches(mt.props,"extendDomain")&&isNumber(mt.props[ct])){var bt=mt.props[ct];return[Math.min(gt[0],bt),Math.max(gt[1],bt)]}return gt},dt)),lt.length){var ft="".concat(ct,"1"),pt="".concat(ct,"2");dt=lt.reduce(function(gt,mt){if(mt.props[ut]===tt&&ifOverflowMatches(mt.props,"extendDomain")&&isNumber(mt.props[ft])&&isNumber(mt.props[pt])){var bt=mt.props[ft],_t=mt.props[pt];return[Math.min(gt[0],bt,_t),Math.max(gt[1],bt,_t)]}return gt},dt)}return nt&&nt.length&&(dt=nt.reduce(function(gt,mt){return isNumber(mt)?[Math.min(gt[0],mt),Math.max(gt[1],mt)]:gt},dt)),dt},eventCenter=new EventEmitter,SYNC_EVENT="recharts.syncMouseEvents";function _typeof$2(j){"@babel/helpers - typeof";return _typeof$2=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$2(j)}function _classCallCheck$1(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$1(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey$2(tt.key),tt)}}function _createClass$1(j,_e,et){return _e&&_defineProperties$1(j.prototype,_e),et&&_defineProperties$1(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _defineProperty$2(j,_e,et){return _e=_toPropertyKey$2(_e),_e in j?Object.defineProperty(j,_e,{value:et,enumerable:!0,configurable:!0,writable:!0}):j[_e]=et,j}function _toPropertyKey$2(j){var _e=_toPrimitive$2(j,"string");return _typeof$2(_e)==="symbol"?_e:String(_e)}function _toPrimitive$2(j,_e){if(_typeof$2(j)!=="object"||j===null)return j;var et=j[Symbol.toPrimitive];if(et!==void 0){var tt=et.call(j,_e||"default");if(_typeof$2(tt)!=="object")return tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(_e==="string"?String:Number)(j)}var AccessibilityManager=function(){function j(){_classCallCheck$1(this,j),_defineProperty$2(this,"activeIndex",0),_defineProperty$2(this,"coordinateList",[]),_defineProperty$2(this,"layout","horizontal")}return _createClass$1(j,[{key:"setDetails",value:function(et){var tt=et.coordinateList,rt=tt===void 0?[]:tt,nt=et.container,ot=nt===void 0?null:nt,it=et.layout,st=it===void 0?null:it,lt=et.offset,ut=lt===void 0?null:lt,ct=et.mouseHandlerCallback,dt=ct===void 0?null:ct;this.coordinateList=rt??this.coordinateList,this.container=ot??this.container,this.layout=st??this.layout,this.offset=ut??this.offset,this.mouseHandlerCallback=dt??this.mouseHandlerCallback,this.activeIndex=Math.min(Math.max(this.activeIndex,0),this.coordinateList.length-1)}},{key:"focus",value:function(){this.spoofMouse()}},{key:"keyboardEvent",value:function(et){if(this.coordinateList.length!==0)switch(et.key){case"ArrowRight":{if(this.layout!=="horizontal")return;this.activeIndex=Math.min(this.activeIndex+1,this.coordinateList.length-1),this.spoofMouse();break}case"ArrowLeft":{if(this.layout!=="horizontal")return;this.activeIndex=Math.max(this.activeIndex-1,0),this.spoofMouse();break}}}},{key:"spoofMouse",value:function(){var et,tt;if(this.layout==="horizontal"&&this.coordinateList.length!==0){var rt=this.container.getBoundingClientRect(),nt=rt.x,ot=rt.y,it=rt.height,st=this.coordinateList[this.activeIndex].coordinate,lt=((et=window)===null||et===void 0?void 0:et.scrollX)||0,ut=((tt=window)===null||tt===void 0?void 0:tt.scrollY)||0,ct=nt+st+lt,dt=ot+this.offset.top+it/2+ut;this.mouseHandlerCallback({pageX:ct,pageY:dt})}}}]),j}();function isDomainSpecifiedByUser(j,_e,et){if(et==="number"&&_e===!0&&Array.isArray(j)){var tt=j==null?void 0:j[0],rt=j==null?void 0:j[1];if(tt&&rt&&isNumber(tt)&&isNumber(rt))return!0}return!1}function getCursorRectangle(j,_e,et,tt){var rt=tt/2;return{stroke:"none",fill:"#ccc",x:j==="horizontal"?_e.x-rt:et.left+.5,y:j==="horizontal"?et.top+.5:_e.y-rt,width:j==="horizontal"?tt:et.width-1,height:j==="horizontal"?et.height-1:tt}}function getRadialCursorPoints(j){var _e=j.cx,et=j.cy,tt=j.radius,rt=j.startAngle,nt=j.endAngle,ot=polarToCartesian(_e,et,tt,rt),it=polarToCartesian(_e,et,tt,nt);return{points:[ot,it],cx:_e,cy:et,radius:tt,startAngle:rt,endAngle:nt}}function getCursorPoints(j,_e,et){var tt,rt,nt,ot;if(j==="horizontal")tt=_e.x,nt=tt,rt=et.top,ot=et.top+et.height;else if(j==="vertical")rt=_e.y,ot=rt,tt=et.left,nt=et.left+et.width;else if(_e.cx!=null&&_e.cy!=null)if(j==="centric"){var it=_e.cx,st=_e.cy,lt=_e.innerRadius,ut=_e.outerRadius,ct=_e.angle,dt=polarToCartesian(it,st,lt,ct),ft=polarToCartesian(it,st,ut,ct);tt=dt.x,rt=dt.y,nt=ft.x,ot=ft.y}else return getRadialCursorPoints(_e);return[{x:tt,y:rt},{x:nt,y:ot}]}function _typeof$1(j){"@babel/helpers - typeof";return _typeof$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_e){return typeof _e}:function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$1(j)}function ownKeys$1(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$1(j){for(var _e=1;_e=0)&&Object.prototype.propertyIsEnumerable.call(j,tt)&&(et[tt]=j[tt])}return et}function _objectWithoutPropertiesLoose(j,_e){if(j==null)return{};var et={},tt=Object.keys(j),rt,nt;for(nt=0;nt=0)&&(et[rt]=j[rt]);return et}function _classCallCheck(j,_e){if(!(j instanceof _e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(j,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty(j,_toPropertyKey(tt.key),tt)}}function _createClass(j,_e,et){return _e&&_defineProperties(j.prototype,_e),et&&_defineProperties(j,et),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits(j,_e){if(typeof _e!="function"&&_e!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_e&&_e.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),_e&&_setPrototypeOf(j,_e)}function _setPrototypeOf(j,_e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(tt,rt){return tt.__proto__=rt,tt},_setPrototypeOf(j,_e)}function _createSuper(j){var _e=_isNativeReflectConstruct();return function(){var tt=_getPrototypeOf(j),rt;if(_e){var nt=_getPrototypeOf(this).constructor;rt=Reflect.construct(tt,arguments,nt)}else rt=tt.apply(this,arguments);return _possibleConstructorReturn(this,rt)}}function _possibleConstructorReturn(j,_e){if(_e&&(_typeof(_e)==="object"||typeof _e=="function"))return _e;if(_e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(j)}function _assertThisInitialized(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf(j){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(et){return et.__proto__||Object.getPrototypeOf(et)},_getPrototypeOf(j)}function _toConsumableArray(j){return _arrayWithoutHoles(j)||_iterableToArray(j)||_unsupportedIterableToArray(j)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray(j,_e)}}function _iterableToArray(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles(j){if(Array.isArray(j))return _arrayLikeToArray(j)}function _arrayLikeToArray(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function ownKeys(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread(j){for(var _e=1;_e0?ot:_e&&_e.length&&isNumber(rt)&&isNumber(nt)?_e.slice(rt,nt+1):[]};function getDefaultDomainByAxisType(j){return j==="number"?[0,"auto"]:void 0}var getTooltipContent=function j(_e,et,tt,rt){var nt=_e.graphicalItems,ot=_e.tooltipAxis,it=getDisplayedData(et,_e);return tt<0||!nt||!nt.length||tt>=it.length?null:nt.reduce(function(st,lt){var ut,ct=lt.props.hide;if(ct)return st;var dt=(ut=lt.props.data)!==null&&ut!==void 0?ut:et;dt&&_e.dataStartIndex+_e.dataEndIndex!==0&&(dt=dt.slice(_e.dataStartIndex,_e.dataEndIndex+1));var ft;if(ot.dataKey&&!ot.allowDuplicatedCategory){var pt=dt===void 0?it:dt;ft=findEntryInArray(pt,ot.dataKey,rt)}else ft=dt&&dt[tt]||it[tt];return ft?[].concat(_toConsumableArray(st),[getTooltipItem(lt,ft)]):st},[])},getTooltipData=function j(_e,et,tt,rt){var nt=rt||{x:_e.chartX,y:_e.chartY},ot=calculateTooltipPos(nt,tt),it=_e.orderedTooltipTicks,st=_e.tooltipAxis,lt=_e.tooltipTicks,ut=calculateActiveTickIndex(ot,it,lt,st);if(ut>=0&<){var ct=lt[ut]&<[ut].value,dt=getTooltipContent(_e,et,ut,ct),ft=getActiveCoordinate(tt,it,ut,nt);return{activeTooltipIndex:ut,activeLabel:ct,activePayload:dt,activeCoordinate:ft}}return null},getAxisMapByAxes=function j(_e,et){var tt=et.axes,rt=et.graphicalItems,nt=et.axisType,ot=et.axisIdKey,it=et.stackGroups,st=et.dataStartIndex,lt=et.dataEndIndex,ut=_e.layout,ct=_e.children,dt=_e.stackOffset,ft=isCategoricalAxis(ut,nt);return tt.reduce(function(pt,gt){var vt,bt=gt.props,_t=bt.type,xt=bt.dataKey,yt=bt.allowDataOverflow,Et=bt.allowDuplicatedCategory,St=bt.scale,$t=bt.ticks,At=bt.includeHidden,wt=gt.props[ot];if(pt[wt])return pt;var Ct=getDisplayedData(_e.data,{graphicalItems:rt.filter(function(Xt){return Xt.props[ot]===wt}),dataStartIndex:st,dataEndIndex:lt}),It=Ct.length,Ot,Nt,Pt;isDomainSpecifiedByUser(gt.props.domain,yt,_t)&&(Ot=parseSpecifiedDomain(gt.props.domain,null,yt),ft&&(_t==="number"||St!=="auto")&&(Pt=getDomainOfDataByKey(Ct,xt,"category")));var Mt=getDefaultDomainByAxisType(_t);if(!Ot||Ot.length===0){var Rt,Lt=(Rt=gt.props.domain)!==null&&Rt!==void 0?Rt:Mt;if(xt){if(Ot=getDomainOfDataByKey(Ct,xt,_t),_t==="category"&&ft){var jt=hasDuplicate(Ot);Et&&jt?(Nt=Ot,Ot=range$4(0,It)):Et||(Ot=parseDomainOfCategoryAxis(Lt,Ot,gt).reduce(function(Xt,rr){return Xt.indexOf(rr)>=0?Xt:[].concat(_toConsumableArray(Xt),[rr])},[]))}else if(_t==="category")Et?Ot=Ot.filter(function(Xt){return Xt!==""&&!isNil$1(Xt)}):Ot=parseDomainOfCategoryAxis(Lt,Ot,gt).reduce(function(Xt,rr){return Xt.indexOf(rr)>=0||rr===""||isNil$1(rr)?Xt:[].concat(_toConsumableArray(Xt),[rr])},[]);else if(_t==="number"){var Gt=parseErrorBarsOfAxis(Ct,rt.filter(function(Xt){return Xt.props[ot]===wt&&(At||!Xt.props.hide)}),xt,nt,ut);Gt&&(Ot=Gt)}ft&&(_t==="number"||St!=="auto")&&(Pt=getDomainOfDataByKey(Ct,xt,"category"))}else ft?Ot=range$4(0,It):it&&it[wt]&&it[wt].hasStack&&_t==="number"?Ot=dt==="expand"?[0,1]:getDomainOfStackGroups(it[wt].stackGroups,st,lt):Ot=getDomainOfItemsWithSameAxis(Ct,rt.filter(function(Xt){return Xt.props[ot]===wt&&(At||!Xt.props.hide)}),_t,ut,!0);if(_t==="number")Ot=detectReferenceElementsDomain(ct,Ot,wt,nt,$t),Lt&&(Ot=parseSpecifiedDomain(Lt,Ot,yt));else if(_t==="category"&&Lt){var Vt=Lt,Yt=Ot.every(function(Xt){return Vt.indexOf(Xt)>=0});Yt&&(Ot=Vt)}}return _objectSpread(_objectSpread({},pt),{},_defineProperty({},wt,_objectSpread(_objectSpread({},gt.props),{},{axisType:nt,domain:Ot,categoricalDomain:Pt,duplicateDomain:Nt,originalDomain:(vt=gt.props.domain)!==null&&vt!==void 0?vt:Mt,isCategorical:ft,layout:ut})))},{})},getAxisMapByItems=function j(_e,et){var tt=et.graphicalItems,rt=et.Axis,nt=et.axisType,ot=et.axisIdKey,it=et.stackGroups,st=et.dataStartIndex,lt=et.dataEndIndex,ut=_e.layout,ct=_e.children,dt=getDisplayedData(_e.data,{graphicalItems:tt,dataStartIndex:st,dataEndIndex:lt}),ft=dt.length,pt=isCategoricalAxis(ut,nt),gt=-1;return tt.reduce(function(vt,bt){var _t=bt.props[ot],xt=getDefaultDomainByAxisType("number");if(!vt[_t]){gt++;var yt;return pt?yt=range$4(0,ft):it&&it[_t]&&it[_t].hasStack?(yt=getDomainOfStackGroups(it[_t].stackGroups,st,lt),yt=detectReferenceElementsDomain(ct,yt,_t,nt)):(yt=parseSpecifiedDomain(xt,getDomainOfItemsWithSameAxis(dt,tt.filter(function(Et){return Et.props[ot]===_t&&!Et.props.hide}),"number",ut),rt.defaultProps.allowDataOverflow),yt=detectReferenceElementsDomain(ct,yt,_t,nt)),_objectSpread(_objectSpread({},vt),{},_defineProperty({},_t,_objectSpread(_objectSpread({axisType:nt},rt.defaultProps),{},{hide:!0,orientation:get$5(ORIENT_MAP,"".concat(nt,".").concat(gt%2),null),domain:yt,originalDomain:xt,isCategorical:pt,layout:ut})))}return vt},{})},getAxisMap=function j(_e,et){var tt=et.axisType,rt=tt===void 0?"xAxis":tt,nt=et.AxisComp,ot=et.graphicalItems,it=et.stackGroups,st=et.dataStartIndex,lt=et.dataEndIndex,ut=_e.children,ct="".concat(rt,"Id"),dt=findAllByType(ut,nt),ft={};return dt&&dt.length?ft=getAxisMapByAxes(_e,{axes:dt,graphicalItems:ot,axisType:rt,axisIdKey:ct,stackGroups:it,dataStartIndex:st,dataEndIndex:lt}):ot&&ot.length&&(ft=getAxisMapByItems(_e,{Axis:nt,graphicalItems:ot,axisType:rt,axisIdKey:ct,stackGroups:it,dataStartIndex:st,dataEndIndex:lt})),ft},tooltipTicksGenerator=function j(_e){var et=getAnyElementOfObject(_e),tt=getTicksOfAxis(et,!1,!0);return{tooltipTicks:tt,orderedTooltipTicks:sortBy$1(tt,function(rt){return rt.coordinate}),tooltipAxis:et,tooltipAxisBandSize:getBandSizeOfAxis(et,tt)}},createDefaultState=function j(_e){var et=_e.children,tt=_e.defaultShowTooltip,rt=findChildByType(et,Brush),nt=0,ot=0;return _e.data&&_e.data.length!==0&&(ot=_e.data.length-1),rt&&rt.props&&(rt.props.startIndex>=0&&(nt=rt.props.startIndex),rt.props.endIndex>=0&&(ot=rt.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:nt,dataEndIndex:ot,activeTooltipIndex:-1,isTooltipActive:!!tt}},hasGraphicalBarItem=function j(_e){return!_e||!_e.length?!1:_e.some(function(et){var tt=getDisplayName(et&&et.type);return tt&&tt.indexOf("Bar")>=0})},getAxisNameByLayout=function j(_e){return _e==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:_e==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:_e==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},calculateOffset=function j(_e,et){var tt=_e.props,rt=_e.graphicalItems,nt=_e.xAxisMap,ot=nt===void 0?{}:nt,it=_e.yAxisMap,st=it===void 0?{}:it,lt=tt.width,ut=tt.height,ct=tt.children,dt=tt.margin||{},ft=findChildByType(ct,Brush),pt=findChildByType(ct,Legend),gt=Object.keys(st).reduce(function(Et,St){var $t=st[St],At=$t.orientation;return!$t.mirror&&!$t.hide?_objectSpread(_objectSpread({},Et),{},_defineProperty({},At,Et[At]+$t.width)):Et},{left:dt.left||0,right:dt.right||0}),vt=Object.keys(ot).reduce(function(Et,St){var $t=ot[St],At=$t.orientation;return!$t.mirror&&!$t.hide?_objectSpread(_objectSpread({},Et),{},_defineProperty({},At,get$5(Et,"".concat(At))+$t.height)):Et},{top:dt.top||0,bottom:dt.bottom||0}),bt=_objectSpread(_objectSpread({},vt),gt),_t=bt.bottom;ft&&(bt.bottom+=ft.props.height||Brush.defaultProps.height),pt&&et&&(bt=appendOffsetOfLegend(bt,rt,tt,et));var xt=lt-bt.left-bt.right,yt=ut-bt.top-bt.bottom;return _objectSpread(_objectSpread({brushBottom:_t},bt),{},{width:Math.max(xt,0),height:Math.max(yt,0)})},generateCategoricalChart=function j(_e){var et,tt=_e.chartName,rt=_e.GraphicalChild,nt=_e.defaultTooltipEventType,ot=nt===void 0?"axis":nt,it=_e.validateTooltipEventTypes,st=it===void 0?["axis"]:it,lt=_e.axisComponents,ut=_e.legendContent,ct=_e.formatAxisMap,dt=_e.defaultProps,ft=function(vt,bt){var _t=bt.graphicalItems,xt=bt.stackGroups,yt=bt.offset,Et=bt.updateId,St=bt.dataStartIndex,$t=bt.dataEndIndex,At=vt.barSize,wt=vt.layout,Ct=vt.barGap,It=vt.barCategoryGap,Ot=vt.maxBarSize,Nt=getAxisNameByLayout(wt),Pt=Nt.numericAxisName,Mt=Nt.cateAxisName,Rt=hasGraphicalBarItem(_t),Lt=Rt&&getBarSizeList({barSize:At,stackGroups:xt}),jt=[];return _t.forEach(function(Gt,Vt){var Yt=getDisplayedData(vt.data,{graphicalItems:[Gt],dataStartIndex:St,dataEndIndex:$t}),Xt=Gt.props,rr=Xt.dataKey,cr=Xt.maxBarSize,vr=Gt.props["".concat(Pt,"Id")],Tr=Gt.props["".concat(Mt,"Id")],gr={},Er=lt.reduce(function(Yr,jr){var Hr,hn=bt["".concat(jr.axisType,"Map")],pr=Gt.props["".concat(jr.axisType,"Id")];hn&&hn[pr]||jr.axisType==="zAxis"||invariant(!1);var sr=hn[pr];return _objectSpread(_objectSpread({},Yr),{},(Hr={},_defineProperty(Hr,jr.axisType,sr),_defineProperty(Hr,"".concat(jr.axisType,"Ticks"),getTicksOfAxis(sr)),Hr))},gr),qt=Er[Mt],ir=Er["".concat(Mt,"Ticks")],hr=xt&&xt[vr]&&xt[vr].hasStack&&getStackedDataOfItem(Gt,xt[vr].stackGroups),nr=getDisplayName(Gt.type).indexOf("Bar")>=0,mr=getBandSizeOfAxis(qt,ir),Ar=[];if(nr){var Or,wr,Nr=isNil$1(cr)?Ot:cr,Wr=(Or=(wr=getBandSizeOfAxis(qt,ir,!0))!==null&&wr!==void 0?wr:Nr)!==null&&Or!==void 0?Or:0;Ar=getBarPosition({barGap:Ct,barCategoryGap:It,bandSize:Wr!==mr?Wr:mr,sizeList:Lt[Tr],maxBarSize:Nr}),Wr!==mr&&(Ar=Ar.map(function(Yr){return _objectSpread(_objectSpread({},Yr),{},{position:_objectSpread(_objectSpread({},Yr.position),{},{offset:Yr.position.offset-Wr/2})})}))}var Vr=Gt&&Gt.type&&Gt.type.getComposedData;if(Vr){var Jr;jt.push({props:_objectSpread(_objectSpread({},Vr(_objectSpread(_objectSpread({},Er),{},{displayedData:Yt,props:vt,dataKey:rr,item:Gt,bandSize:mr,barPosition:Ar,offset:yt,stackedData:hr,layout:wt,dataStartIndex:St,dataEndIndex:$t}))),{},(Jr={key:Gt.key||"item-".concat(Vt)},_defineProperty(Jr,Pt,Er[Pt]),_defineProperty(Jr,Mt,Er[Mt]),_defineProperty(Jr,"animationId",Et),Jr)),childIndex:parseChildIndex(Gt,vt.children),item:Gt})}}),jt},pt=function(vt,bt){var _t=vt.props,xt=vt.dataStartIndex,yt=vt.dataEndIndex,Et=vt.updateId;if(!validateWidthHeight({props:_t}))return null;var St=_t.children,$t=_t.layout,At=_t.stackOffset,wt=_t.data,Ct=_t.reverseStackOrder,It=getAxisNameByLayout($t),Ot=It.numericAxisName,Nt=It.cateAxisName,Pt=findAllByType(St,rt),Mt=getStackGroupsByAxisId(wt,Pt,"".concat(Ot,"Id"),"".concat(Nt,"Id"),At,Ct),Rt=lt.reduce(function(Yt,Xt){var rr="".concat(Xt.axisType,"Map");return _objectSpread(_objectSpread({},Yt),{},_defineProperty({},rr,getAxisMap(_t,_objectSpread(_objectSpread({},Xt),{},{graphicalItems:Pt,stackGroups:Xt.axisType===Ot&&Mt,dataStartIndex:xt,dataEndIndex:yt}))))},{}),Lt=calculateOffset(_objectSpread(_objectSpread({},Rt),{},{props:_t,graphicalItems:Pt}),bt==null?void 0:bt.legendBBox);Object.keys(Rt).forEach(function(Yt){Rt[Yt]=ct(_t,Rt[Yt],Lt,Yt.replace("Map",""),tt)});var jt=Rt["".concat(Nt,"Map")],Gt=tooltipTicksGenerator(jt),Vt=ft(_t,_objectSpread(_objectSpread({},Rt),{},{dataStartIndex:xt,dataEndIndex:yt,updateId:Et,graphicalItems:Pt,stackGroups:Mt,offset:Lt}));return _objectSpread(_objectSpread({formattedGraphicalItems:Vt,graphicalItems:Pt,offset:Lt,stackGroups:Mt},Gt),Rt)};return et=function(gt){_inherits(bt,gt);var vt=_createSuper(bt);function bt(_t){var xt,yt,Et;return _classCallCheck(this,bt),Et=vt.call(this,_t),_defineProperty(_assertThisInitialized(Et),"eventEmitterSymbol",Symbol("rechartsEventEmitter")),_defineProperty(_assertThisInitialized(Et),"accessibilityManager",new AccessibilityManager),_defineProperty(_assertThisInitialized(Et),"handleLegendBBoxUpdate",function(St){if(St){var $t=Et.state,At=$t.dataStartIndex,wt=$t.dataEndIndex,Ct=$t.updateId;Et.setState(_objectSpread({legendBBox:St},pt({props:Et.props,dataStartIndex:At,dataEndIndex:wt,updateId:Ct},_objectSpread(_objectSpread({},Et.state),{},{legendBBox:St}))))}}),_defineProperty(_assertThisInitialized(Et),"handleReceiveSyncEvent",function(St,$t,At){if(Et.props.syncId===St){if(At===Et.eventEmitterSymbol&&typeof Et.props.syncMethod!="function")return;Et.applySyncEvent($t)}}),_defineProperty(_assertThisInitialized(Et),"handleBrushChange",function(St){var $t=St.startIndex,At=St.endIndex;if($t!==Et.state.dataStartIndex||At!==Et.state.dataEndIndex){var wt=Et.state.updateId;Et.setState(function(){return _objectSpread({dataStartIndex:$t,dataEndIndex:At},pt({props:Et.props,dataStartIndex:$t,dataEndIndex:At,updateId:wt},Et.state))}),Et.triggerSyncEvent({dataStartIndex:$t,dataEndIndex:At})}}),_defineProperty(_assertThisInitialized(Et),"handleMouseEnter",function(St){var $t=Et.getMouseInfo(St);if($t){var At=_objectSpread(_objectSpread({},$t),{},{isTooltipActive:!0});Et.setState(At),Et.triggerSyncEvent(At);var wt=Et.props.onMouseEnter;isFunction$6(wt)&&wt(At,St)}}),_defineProperty(_assertThisInitialized(Et),"triggeredAfterMouseMove",function(St){var $t=Et.getMouseInfo(St),At=$t?_objectSpread(_objectSpread({},$t),{},{isTooltipActive:!0}):{isTooltipActive:!1};Et.setState(At),Et.triggerSyncEvent(At);var wt=Et.props.onMouseMove;isFunction$6(wt)&&wt(At,St)}),_defineProperty(_assertThisInitialized(Et),"handleItemMouseEnter",function(St){Et.setState(function(){return{isTooltipActive:!0,activeItem:St,activePayload:St.tooltipPayload,activeCoordinate:St.tooltipPosition||{x:St.cx,y:St.cy}}})}),_defineProperty(_assertThisInitialized(Et),"handleItemMouseLeave",function(){Et.setState(function(){return{isTooltipActive:!1}})}),_defineProperty(_assertThisInitialized(Et),"handleMouseMove",function(St){St.persist(),Et.throttleTriggeredAfterMouseMove(St)}),_defineProperty(_assertThisInitialized(Et),"handleMouseLeave",function(St){var $t={isTooltipActive:!1};Et.setState($t),Et.triggerSyncEvent($t);var At=Et.props.onMouseLeave;isFunction$6(At)&&At($t,St)}),_defineProperty(_assertThisInitialized(Et),"handleOuterEvent",function(St){var $t=getReactEventByType(St),At=get$5(Et.props,"".concat($t));if($t&&isFunction$6(At)){var wt,Ct;/.*touch.*/i.test($t)?Ct=Et.getMouseInfo(St.changedTouches[0]):Ct=Et.getMouseInfo(St),At((wt=Ct)!==null&&wt!==void 0?wt:{},St)}}),_defineProperty(_assertThisInitialized(Et),"handleClick",function(St){var $t=Et.getMouseInfo(St);if($t){var At=_objectSpread(_objectSpread({},$t),{},{isTooltipActive:!0});Et.setState(At),Et.triggerSyncEvent(At);var wt=Et.props.onClick;isFunction$6(wt)&&wt(At,St)}}),_defineProperty(_assertThisInitialized(Et),"handleMouseDown",function(St){var $t=Et.props.onMouseDown;if(isFunction$6($t)){var At=Et.getMouseInfo(St);$t(At,St)}}),_defineProperty(_assertThisInitialized(Et),"handleMouseUp",function(St){var $t=Et.props.onMouseUp;if(isFunction$6($t)){var At=Et.getMouseInfo(St);$t(At,St)}}),_defineProperty(_assertThisInitialized(Et),"handleTouchMove",function(St){St.changedTouches!=null&&St.changedTouches.length>0&&Et.throttleTriggeredAfterMouseMove(St.changedTouches[0])}),_defineProperty(_assertThisInitialized(Et),"handleTouchStart",function(St){St.changedTouches!=null&&St.changedTouches.length>0&&Et.handleMouseDown(St.changedTouches[0])}),_defineProperty(_assertThisInitialized(Et),"handleTouchEnd",function(St){St.changedTouches!=null&&St.changedTouches.length>0&&Et.handleMouseUp(St.changedTouches[0])}),_defineProperty(_assertThisInitialized(Et),"triggerSyncEvent",function(St){Et.props.syncId!==void 0&&eventCenter.emit(SYNC_EVENT,Et.props.syncId,St,Et.eventEmitterSymbol)}),_defineProperty(_assertThisInitialized(Et),"applySyncEvent",function(St){var $t=Et.props,At=$t.layout,wt=$t.syncMethod,Ct=Et.state.updateId,It=St.dataStartIndex,Ot=St.dataEndIndex;if(St.dataStartIndex!==void 0||St.dataEndIndex!==void 0)Et.setState(_objectSpread({dataStartIndex:It,dataEndIndex:Ot},pt({props:Et.props,dataStartIndex:It,dataEndIndex:Ot,updateId:Ct},Et.state)));else if(St.activeTooltipIndex!==void 0){var Nt=St.chartX,Pt=St.chartY,Mt=St.activeTooltipIndex,Rt=Et.state,Lt=Rt.offset,jt=Rt.tooltipTicks;if(!Lt)return;if(typeof wt=="function")Mt=wt(jt,St);else if(wt==="value"){Mt=-1;for(var Gt=0;Gt=0){var hr,nr;if(Nt.dataKey&&!Nt.allowDuplicatedCategory){var mr=typeof Nt.dataKey=="function"?ir:"payload.".concat(Nt.dataKey.toString());hr=findEntryInArray(Gt,mr,Mt),nr=Vt&&Yt&&findEntryInArray(Yt,mr,Mt)}else hr=Gt==null?void 0:Gt[Pt],nr=Vt&&Yt&&Yt[Pt];if(Tr||vr){var Ar=St.props.activeIndex!==void 0?St.props.activeIndex:Pt;return[reactExports.cloneElement(St,_objectSpread(_objectSpread(_objectSpread({},wt.props),Er),{},{activeIndex:Ar})),null,null]}if(!isNil$1(hr))return[qt].concat(_toConsumableArray(Et.renderActivePoints({item:wt,activePoint:hr,basePoint:nr,childIndex:Pt,isRange:Vt})))}else{var Or,wr=(Or=Et.getItemByXY(Et.state.activeCoordinate))!==null&&Or!==void 0?Or:{graphicalItem:qt},Nr=wr.graphicalItem,Wr=Nr.item,Vr=Wr===void 0?St:Wr,Jr=Nr.childIndex,Yr=_objectSpread(_objectSpread(_objectSpread({},wt.props),Er),{},{activeIndex:Jr});return[reactExports.cloneElement(Vr,Yr),null,null]}return Vt?[qt,null,null]:[qt,null]}),_defineProperty(_assertThisInitialized(Et),"renderCustomized",function(St,$t,At){return reactExports.cloneElement(St,_objectSpread(_objectSpread({key:"recharts-customized-".concat(At)},Et.props),Et.state))}),_defineProperty(_assertThisInitialized(Et),"renderMap",{CartesianGrid:{handler:Et.renderGrid,once:!0},ReferenceArea:{handler:Et.renderReferenceElement},ReferenceLine:{handler:Et.renderReferenceElement},ReferenceDot:{handler:Et.renderReferenceElement},XAxis:{handler:Et.renderXAxis},YAxis:{handler:Et.renderYAxis},Brush:{handler:Et.renderBrush,once:!0},Bar:{handler:Et.renderGraphicChild},Line:{handler:Et.renderGraphicChild},Area:{handler:Et.renderGraphicChild},Radar:{handler:Et.renderGraphicChild},RadialBar:{handler:Et.renderGraphicChild},Scatter:{handler:Et.renderGraphicChild},Pie:{handler:Et.renderGraphicChild},Funnel:{handler:Et.renderGraphicChild},Tooltip:{handler:Et.renderCursor,once:!0},PolarGrid:{handler:Et.renderPolarGrid,once:!0},PolarAngleAxis:{handler:Et.renderPolarAxis},PolarRadiusAxis:{handler:Et.renderPolarAxis},Customized:{handler:Et.renderCustomized}}),Et.clipPathId="".concat((xt=_t.id)!==null&&xt!==void 0?xt:uniqueId("recharts"),"-clip"),Et.throttleTriggeredAfterMouseMove=throttle$1(Et.triggeredAfterMouseMove,(yt=_t.throttleDelay)!==null&&yt!==void 0?yt:1e3/60),Et.state={},Et}return _createClass(bt,[{key:"componentDidMount",value:function(){var xt,yt;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(xt=this.props.margin.left)!==null&&xt!==void 0?xt:0,top:(yt=this.props.margin.top)!==null&&yt!==void 0?yt:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout})}},{key:"getSnapshotBeforeUpdate",value:function(xt,yt){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==yt.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==xt.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==xt.margin){var Et,St;this.accessibilityManager.setDetails({offset:{left:(Et=this.props.margin.left)!==null&&Et!==void 0?Et:0,top:(St=this.props.margin.top)!==null&&St!==void 0?St:0}})}return null}},{key:"componentDidUpdate",value:function(){}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var xt=findChildByType(this.props.children,Tooltip);if(xt&&typeof xt.props.shared=="boolean"){var yt=xt.props.shared?"axis":"item";return st.indexOf(yt)>=0?yt:ot}return ot}},{key:"getMouseInfo",value:function(xt){if(!this.container)return null;var yt=this.container,Et=yt.getBoundingClientRect(),St=getOffset(Et),$t={chartX:Math.round(xt.pageX-St.left),chartY:Math.round(xt.pageY-St.top)},At=Et.width/yt.offsetWidth||1,wt=this.inRange($t.chartX,$t.chartY,At);if(!wt)return null;var Ct=this.state,It=Ct.xAxisMap,Ot=Ct.yAxisMap,Nt=this.getTooltipEventType();if(Nt!=="axis"&&It&&Ot){var Pt=getAnyElementOfObject(It).scale,Mt=getAnyElementOfObject(Ot).scale,Rt=Pt&&Pt.invert?Pt.invert($t.chartX):null,Lt=Mt&&Mt.invert?Mt.invert($t.chartY):null;return _objectSpread(_objectSpread({},$t),{},{xValue:Rt,yValue:Lt})}var jt=getTooltipData(this.state,this.props.data,this.props.layout,wt);return jt?_objectSpread(_objectSpread({},$t),jt):null}},{key:"inRange",value:function(xt,yt){var Et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,St=this.props.layout,$t=xt/Et,At=yt/Et;if(St==="horizontal"||St==="vertical"){var wt=this.state.offset,Ct=$t>=wt.left&&$t<=wt.left+wt.width&&At>=wt.top&&At<=wt.top+wt.height;return Ct?{x:$t,y:At}:null}var It=this.state,Ot=It.angleAxisMap,Nt=It.radiusAxisMap;if(Ot&&Nt){var Pt=getAnyElementOfObject(Ot);return inRangeOfSector({x:$t,y:At},Pt)}return null}},{key:"parseEventsOfWrapper",value:function(){var xt=this.props.children,yt=this.getTooltipEventType(),Et=findChildByType(xt,Tooltip),St={};Et&&yt==="axis"&&(Et.props.trigger==="click"?St={onClick:this.handleClick}:St={onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd});var $t=adaptEventHandlers(this.props,this.handleOuterEvent);return _objectSpread(_objectSpread({},$t),St)}},{key:"addListener",value:function(){eventCenter.on(SYNC_EVENT,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){eventCenter.removeListener(SYNC_EVENT,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(xt,yt,Et){for(var St=this.state.formattedGraphicalItems,$t=0,At=St.length;$t{const et=useClasses$b(),tt=reactExports.useMemo(()=>mergeClasses(et.wrapper,_e&&et.horizontal),[et,_e]),rt=reactExports.useMemo(()=>mergeClasses(et.tagsWrapper,_e&&et.tagsWrapperHorizontal),[et,_e]),nt=reactExports.useMemo(()=>{let ot;switch(j.type){case"custom":ot=j.content;break;case"text":ot=jsxRuntimeExports.jsx(Text$2,{size:500,children:j.data});break;case"number":ot=jsxRuntimeExports.jsx(Text$2,{size:500,children:numberFormatter(j.data)});break;case"status":ot=jsxRuntimeExports.jsx(StatusText,{statusCode:j.status,textSize:500,showText:!0});break;case"time":{ot=jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:j.startTimeISOStr,endTimeISOString:j.endTimeISOStr,textSize:500});break}case"score":{const it=[{data:j.score,color:tokens.colorNeutralForeground3},{data:1-j.score,color:tokens.colorNeutralBackground4}];ot=jsxRuntimeExports.jsxs("div",{className:et.scoreWrapper,children:[jsxRuntimeExports.jsx(PieChart,{width:24,height:24,children:jsxRuntimeExports.jsx(Pie,{data:it,dataKey:"data",cx:"50%",cy:"50%",innerRadius:8,outerRadius:11,strokeWidth:0,stroke:"transparent",children:it.map((st,lt)=>jsxRuntimeExports.jsx(Cell,{fill:st.color},`cell-${lt}`))})}),jsxRuntimeExports.jsx(Text$2,{size:500,children:j.score})]});break}case"tags":ot=jsxRuntimeExports.jsx("div",{className:rt,children:j.tags.map((it,st)=>jsxRuntimeExports.jsx(MetricTag,{tag:it},st))});break;default:ot=null}return ot},[j,et,rt]);return jsxRuntimeExports.jsxs("div",{className:tt,children:[jsxRuntimeExports.jsx(Text$2,{size:400,className:et.title,children:j.title}),jsxRuntimeExports.jsx("div",{className:et.data,children:nt})]})},useClasses$b=makeStyles({wrapper:{display:"flex",flexDirection:"column",justifyContent:"space-between",...shorthands.flex(0,0,"auto")},horizontal:{flexDirection:"row",alignItems:"center",...shorthands.flex(0,0,"auto")},title:{color:tokens.colorNeutralForeground2,marginBottom:tokens.spacingVerticalXS},data:{color:tokens.colorNeutralForeground1},tagsWrapper:{display:"flex",flexDirection:"row",...shorthands.gap("0.5rem")},tagsWrapperHorizontal:{flexDirection:"column"},timeWrapper:{display:"flex",flexDirection:"row",alignItems:"center",justifyItems:"center","> svg":{marginRight:"5px"}},scoreWrapper:{display:"flex",flexDirection:"row",alignItems:"center","> :first-child":{marginRight:"8px"}}}),TraceDetailMetrics=()=>{const j=useClasses$a(),_e=useSelectedTrace(),et=useLocStrings(),tt=reactExports.useMemo(()=>{const rt=_e;if(!rt)return[];const nt=convertToTraceListRow(rt),ot=[{title:et.Status,type:"status",status:rt.status??UNDEFINED_VALUE_PLACEHOLDER},{title:et.Total_Tokens,type:"custom",content:jsxRuntimeExports.jsx("div",{className:j.token,children:jsxRuntimeExports.jsx(SummaryToken,{trace:nt})})},{title:et.Latency,type:"time",startTimeISOStr:rt.start_time,endTimeISOStr:rt.end_time}];return rt.evaluations&&Object.entries(rt.evaluations).forEach(([it,st])=>{const lt=[],ut=st.outputs;ut&&(Object.keys(ut).forEach(ct=>{const dt=ut[ct];dt!=null&<.push({name:ct,value:ut[ct]})}),ot.push({title:it,type:"tags",tags:lt}))}),ot},[_e,j.token]);return jsxRuntimeExports.jsx("div",{className:j.wrapper,children:tt.map((rt,nt)=>jsxRuntimeExports.jsx(MetricItem,{data:rt},nt))})},useClasses$a=makeStyles({wrapper:{display:"flex",alignItems:"stretch",height:"48px",width:"100%",...shorthands.margin("16px"),...shorthands.gap("1rem")},token:{"& div":{fontSize:"20px",fontWeight:400}}}),useClasses$9=makeStyles({root:{height:"100%",width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"nowrap",cursor:"pointer"},left:{display:"flex",flexWrap:"nowrap",maxWidth:"{(TREE_NODE_WIDTH * 2) / 3}px",...shorthands.overflow("hidden"),textOverflow:"ellipsis",whiteSpace:"nowrap",...shorthands.margin("0px","10px","0px","0px"),alignItems:"center"},spanName:shorthands.margin("0px","0px","0px","4px"),lastInputMessage:{...shorthands.margin("0px","0px","0px","4px"),fontSize:"12px",color:tokens.colorNeutralForeground2},lastInputMessageLabel:shorthands.margin("0px","4px","0px","0px"),right:{display:"flex",flexWrap:"nowrap",...shorthands.padding("0px","10px","0px","0px"),...shorthands.gap(tokens.spacingHorizontalS)}}),TreeNode=({node:j,span:_e})=>{var ct,dt,ft,pt;const et=getToolTypeFromSpan(_e),tt=bitset.has(GraphNodeStatus.Selected)(j.status),rt=bitset.has(GraphNodeStatus.Activated)(j.status),nt=useLastInputMessageBySpanId(((ct=_e.context)==null?void 0:ct.span_id)??""),ot=useLocStrings(),it=useClasses$9();let st=tokens.colorNeutralStroke1,lt=tokens.colorNeutralBackground4,ut=1;return tt&&(st=tokens.colorBrandStroke2,ut=2,lt=tokens.colorNeutralBackground4Selected),rt&&(lt=tokens.colorNeutralBackground4Hover),jsxRuntimeExports.jsx("foreignObject",{x:j.x,y:j.y,width:TREE_NODE_WIDTH,height:TREE_NODE_HEIGHT,style:{border:`${ut}px solid ${st}`,backgroundColor:lt,borderRadius:10,paddingLeft:10},children:jsxRuntimeExports.jsxs("div",{className:it.root,children:[jsxRuntimeExports.jsxs("div",{className:it.left,children:[et&&jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",children:`${et}`}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(Tooltip$1,{content:_e.name??"",relationship:"label",children:jsxRuntimeExports.jsx("div",{className:it.spanName,children:`${_e.name}`})}),nt&&jsxRuntimeExports.jsxs("div",{className:it.lastInputMessage,children:[jsxRuntimeExports.jsx("span",{className:it.lastInputMessageLabel,children:ot["Last input:"]}),getSenderNameByLLMMessage(nt)]})]})]}),jsxRuntimeExports.jsxs("div",{className:it.right,children:[((ft=(dt=_e==null?void 0:_e.status)==null?void 0:dt.status_code)==null?void 0:ft.toLowerCase())==="error"&&jsxRuntimeExports.jsx(StatusText,{statusCode:(pt=_e.status)==null?void 0:pt.status_code,tooltipContent:_e.status.message}),jsxRuntimeExports.jsx(NodeToken,{span:_e}),jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:_e.start_time,endTimeISOString:_e.end_time})]})]})})};class NodeConfig{constructor(_e){this.options=_e}render(_e){const et=this.options.spans.find(tt=>{var rt;return((rt=tt==null?void 0:tt.context)==null?void 0:rt.span_id)===_e.model.id});return et?jsxRuntimeExports.jsx(TreeNode,{node:_e.model,span:et}):null}getMinHeight(){return 0}getMinWidth(){return 0}}const TreeView=()=>{const j=useSpansOfSelectedTrace(),_e=useSetSelectedSpanId(),et=useSelectedSpanId(),tt=st=>(lt,ut)=>(ut&&ut.type===GraphNodeEvent.Click&&_e(ut.node.id),st(lt,ut)),rt=GraphConfigBuilder.default().registerNode(()=>new NodeConfig({spans:j})).registerPort(()=>new PortConfig).registerEdge(()=>new EdgeConfig).build(),nt=new Set;nt.add(GraphFeatures.ClickNodeToSelect),nt.add(GraphFeatures.CanvasVerticalScrollable),nt.add(GraphFeatures.LimitBoundary),nt.add(GraphFeatures.InvisibleScrollbar);const[ot,it]=useGraphReducer({data:GraphModel.empty(),settings:{features:nt,graphConfig:rt,canvasBoundaryPadding:{top:0,bottom:TREE_NODE_HEIGHT}}},tt);return reactExports.useEffect(()=>{const{graph:st,rootIds:lt}=spansToGraphModel(j,{});it({type:GraphCanvasEvent.SetData,data:st.selectNodes(ut=>ut.id===lt[0])}),_e(lt[0])},[]),reactExports.useEffect(()=>{et&&it({type:GraphNodeEvent.Select,nodes:[et]})},[et]),jsxRuntimeExports.jsx(TreeGraph,{state:ot,dispatch:it})},TraceDetail=()=>{const j=useClasses$8(),_e=useSelectedSpanId(),et=reactExports.useRef(null),tt=useTraceDetailRefreshKey(),rt=useIsGanttChartOpen(),nt=useTraceDetailViewStatus(),ot=useTraceDetailLoadingComponent(),it=useTraceDetailErrorComponent(),st=useLocStrings();return reactExports.useEffect(()=>{var lt;rt&&((lt=et.current)==null||lt.updateSize({height:400,width:"100%"}))},[rt]),nt===ViewStatus.error?jsxRuntimeExports.jsx(it,{}):nt===ViewStatus.loading?jsxRuntimeExports.jsx(ot,{}):nt===ViewStatus.hidden?null:jsxRuntimeExports.jsxs("div",{className:j.root,children:[jsxRuntimeExports.jsxs("div",{className:j.container,children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(TraceDetailMetrics,{},tt),jsxRuntimeExports.jsx(Divider$2,{})]}),jsxRuntimeExports.jsxs("div",{className:j.content,children:[jsxRuntimeExports.jsx(Resizable,{enable:{right:!0},minWidth:100,maxWidth:"60%",defaultSize:{width:TREE_NODE_WIDTH+2*TREE_NODE_INDENT+32,height:"100%"},handleComponent:{right:jsxRuntimeExports.jsx("div",{className:j.resizeBar})},children:jsxRuntimeExports.jsx("div",{className:j.leftPane,children:jsxRuntimeExports.jsx(TreeView,{},tt)})}),jsxRuntimeExports.jsx("div",{className:j.rightPane,children:jsxRuntimeExports.jsx(NodeDetail,{emptyTip:jsxRuntimeExports.jsx(MessageBar,{intent:"error",children:st.No_span_data})},tt)},`${_e}`)]})]}),rt&&jsxRuntimeExports.jsx("div",{className:j.bottomPane,children:jsxRuntimeExports.jsx(Resizable,{ref:et,className:j.ganttContainer,defaultSize:{height:0,width:"100%"},enable:{top:!0},handleComponent:{top:jsxRuntimeExports.jsx("div",{className:j.resizeBarBottom})},children:jsxRuntimeExports.jsx(GanttView,{},tt)})})]})},useClasses$8=makeStyles({root:{width:"100%",height:"100%"},container:{display:"flex",flexDirection:"column",height:"100%",width:"100%"},summary:{display:"flex",alignItems:"stretch",height:"48px",width:"100%",...shorthands.margin("16px"),...shorthands.gap("1rem")},content:{...shorthands.flex(1),display:"flex"},leftPane:{height:"100%",...shorthands.margin("16px",0,0,"16px")},rightPane:{position:"relative",width:"100%",height:"100%",...shorthands.flex(1),...shorthands.overflow("hidden")},bottomPane:{position:"absolute",backgroundColor:tokens.colorNeutralBackground1,bottom:0,width:"100%"},ganttContainer:{...shorthands.padding("16px")},resizeBar:{position:"absolute",top:0,bottom:0,right:"5px",width:"6px",backgroundColor:tokens.colorNeutralBackground3,"::before":{content:"''",position:"absolute",top:"50%",right:"1px",marginTop:"-12px",height:"24px",width:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed},"::after":{content:"''",position:"absolute",top:"50%",left:"1px",marginTop:"-12px",height:"24px",width:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed}},resizeBarBottom:{position:"absolute",left:0,right:0,bottom:"5px",height:"6px",backgroundColor:tokens.colorNeutralBackground3,"::before":{content:"''",position:"absolute",left:"50%",bottom:"1px",marginLeft:"-12px",width:"24px",height:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed},"::after":{content:"''",position:"absolute",left:"50%",top:"1px",marginLeft:"-12px",width:"24px",height:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed}}}),useClasses$7=makeStyles({title:{...shorthands.flex(1),...shorthands.padding("8px","16px"),lineHeight:"28px",fontSize:"18px",fontWeight:600}}),TraceDetailTitle=()=>{const j=useClasses$7(),_e=useLocStrings(),et=useSelectedTrace();return jsxRuntimeExports.jsx("div",{className:j.title,children:(et==null?void 0:et.name)??_e.Trace_Detail})},TraceFilter=()=>{const j=useClasses$6(),_e=useTableColumnNames(),[et,tt]=[useTableHiddenColumnKeys(),useSetTableHiddenColumnKeys()],rt=useTraceListShowMetrics(),nt=reactExports.useMemo(()=>[..._e.normalColumns,..._e.evaluationColumns].filter(st=>!et.includes(st.key)).map(st=>st.key),[et,_e]),ot=(it,st)=>{const{optionValue:lt}=st;lt&&tt(et.includes(lt)?et.filter(ut=>ut!==lt):[...et,lt])};return jsxRuntimeExports.jsxs("div",{className:j.wrapper,children:[jsxRuntimeExports.jsx(Input,{className:j.filter,disabled:!0,placeholder:"NOT implement yet"}),jsxRuntimeExports.jsxs(Combobox,{className:j.chooser,multiselect:!0,placeholder:"Columns Filter",selectedOptions:nt,onOptionSelect:ot,children:[jsxRuntimeExports.jsx(OptionGroup,{label:"Trace Info",children:_e.normalColumns.map(it=>jsxRuntimeExports.jsx(Option$2,{value:it.key,children:it.name},it.key))}),rt&&jsxRuntimeExports.jsx(OptionGroup,{label:"Metrics",children:_e.evaluationColumns.map(it=>jsxRuntimeExports.jsx(Option$2,{value:it.key,children:it.name},it.key))})]})]})},useClasses$6=makeStyles({wrapper:{display:"flex",...shorthands.gap("1rem"),...shorthands.margin(tokens.spacingVerticalM)},filter:{flexGrow:1},chooser:{width:"100px"}}),useDebugFunctions=()=>{const j=useGetAllTraces(),_e=useGetAllSpans(),et=useSelectedTrace(),tt=useSpansOfSelectedTrace();reactExports.useEffect(()=>{window.printTracesAndSpans=()=>{const rt=j();console.log("traces",rt);const nt=_e();console.log("spans",nt)},window.printSelectedTrace=()=>{console.log("selectedTrace",et)},window.printSpansOfSelectedTrace=()=>{console.log("spansOfSelectedTrace",tt)}},[j,_e,et,tt])},useOnClickTraceRow=()=>{const j=useSetSelectedTraceId();return(_e,et)=>{j(_e==null?void 0:_e.trace_id)}};function useResolvedElement(j,_e){var et=reactExports.useRef(null),tt=reactExports.useRef(null);tt.current=_e;var rt=reactExports.useRef(null);reactExports.useEffect(function(){nt()});var nt=reactExports.useCallback(function(){var ot=rt.current,it=tt.current,st=ot||(it?it instanceof Element?it:it.current:null);et.current&&et.current.element===st&&et.current.subscriber===j||(et.current&&et.current.cleanup&&et.current.cleanup(),et.current={element:st,subscriber:j,cleanup:st?j(st):void 0})},[j]);return reactExports.useEffect(function(){return function(){et.current&&et.current.cleanup&&(et.current.cleanup(),et.current=null)}},[]),reactExports.useCallback(function(ot){rt.current=ot,nt()},[nt])}function extractSize(j,_e,et){return j[_e]?j[_e][0]?j[_e][0][et]:j[_e][et]:_e==="contentBoxSize"?j.contentRect[et==="inlineSize"?"width":"height"]:void 0}function useResizeObserver(j){j===void 0&&(j={});var _e=j.onResize,et=reactExports.useRef(void 0);et.current=_e;var tt=j.round||Math.round,rt=reactExports.useRef(),nt=reactExports.useState({width:void 0,height:void 0}),ot=nt[0],it=nt[1],st=reactExports.useRef(!1);reactExports.useEffect(function(){return st.current=!1,function(){st.current=!0}},[]);var lt=reactExports.useRef({width:void 0,height:void 0}),ut=useResolvedElement(reactExports.useCallback(function(ct){return(!rt.current||rt.current.box!==j.box||rt.current.round!==tt)&&(rt.current={box:j.box,round:tt,instance:new ResizeObserver(function(dt){var ft=dt[0],pt=j.box==="border-box"?"borderBoxSize":j.box==="device-pixel-content-box"?"devicePixelContentBoxSize":"contentBoxSize",gt=extractSize(ft,pt,"inlineSize"),vt=extractSize(ft,pt,"blockSize"),bt=gt?tt(gt):void 0,_t=vt?tt(vt):void 0;if(lt.current.width!==bt||lt.current.height!==_t){var xt={width:bt,height:_t};lt.current.width=bt,lt.current.height=_t,et.current?et.current(xt):st.current||it(xt)}})}),rt.current.instance.observe(ct,{box:j.box}),function(){rt.current&&rt.current.instance.unobserve(ct)}},[j.box,tt]),j.ref);return reactExports.useMemo(function(){return{ref:ut,width:ot.width,height:ot.height}},[ut,ot.width,ot.height])}const genStatusChecker=j=>_e=>_e===void 0?!1:_e.toLowerCase()===j.toLowerCase(),checkStatus=(j,_e)=>j===void 0?!1:j.toLowerCase()===_e.toLowerCase(),useTraceListRows=()=>useTraces().map(_e=>convertToTraceListRow(_e)),BASIC_WIDTH=200,getColumnChildrenCount=j=>j.children?j==null?void 0:j.children.reduce((_e,et)=>_e+getColumnChildrenCount(et),0):j.minWidth??BASIC_WIDTH,useTraceListColumns=()=>{const{ref:j,width:_e}=useResizeObserver(),et=useClasses$5(),tt=useTraceListRows(),rt=useOnClickTraceRow(),nt=useSetTableColumnNames(),ot=useTableHiddenColumnKeys(),it=useLocStrings(),st=useTraceListColumnModifier(),lt=genStatusChecker("running"),ut=useSortableColumns(),ct=reactExports.useMemo(()=>{const gt=[];return tt.forEach(vt=>{Object.entries(vt.evaluations??{}).forEach(([bt,_t])=>{!gt.includes(bt)&&_t.display_name&>.push(_t.display_name)})}),gt.map(vt=>{const bt=[],_t=[];return tt.forEach(xt=>{var St;const yt=(St=xt.evaluations)==null?void 0:St[vt];if(!yt||!yt.outputs)return;const Et=yt.outputs;Object.keys(Et).forEach($t=>{const At=Et[$t];!bt.includes($t)&&At!==null&&(bt.push($t),_t.push({key:`evaluation-${vt}-${$t}-value`,name:$t,renderCell:({row:wt})=>{var Ot,Nt,Pt;if(lt(wt.status))return jsxRuntimeExports.jsx(CellSkeleton,{});let Ct;const It=(Pt=(Nt=(Ot=wt==null?void 0:wt.evaluations)==null?void 0:Ot[vt])==null?void 0:Nt.outputs)==null?void 0:Pt[$t];return It===void 0?Ct="N/A":typeof It=="number"?Ct=formatNumber(It):Ct=`${It}`,Ct}}))})}),{name:vt,key:`evaluation-${vt}`,children:_t}})},[tt]),dt=reactExports.useMemo(()=>{let vt=[...[{key:"kind",name:it.Kind,minWidth:120,maxWidth:200,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{}):jsxRuntimeExports.jsx(KindText,{kind:Et.kind})},{key:"name",name:it.Name,minWidth:150,maxWidth:300,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{}):jsxRuntimeExports.jsx(Tooltip$1,{content:Et.name??"",relationship:"label",children:jsxRuntimeExports.jsx("span",{className:et.nameCell,title:Et.name,onClick:()=>{rt(Et,"name")},children:Et.name})})},{key:"input",name:it.Input,minWidth:300,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{height:40}):jsxRuntimeExports.jsx(TraceListJsonCell,{jsonObject:Et.inputs})},{key:"output",name:it.Output,minWidth:300,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{height:40}):jsxRuntimeExports.jsx(TraceListJsonCell,{jsonObject:Et.outputs})},{key:"start_time",name:it.Start_time,minWidth:150,maxWidth:300,renderCell:({row:Et})=>jsxRuntimeExports.jsx(TextCellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:Et.start_time})})},{key:"end_time",name:it.End_time,minWidth:150,maxWidth:300,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{height:40}):jsxRuntimeExports.jsx(TextCellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:Et.end_time})})},{key:"latency",name:it.Latency,minWidth:120,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{}):jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:Et.start_time,endTimeISOString:Et.end_time})})},{key:"total_tokens",name:it.Total_tokens,minWidth:120,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{}):jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(SummaryToken,{trace:Et})})},{key:"status",name:it.Status,minWidth:120,renderCell:({row:Et})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(StatusText,{statusCode:Et.status})})}],{key:"evaluations",name:"Metrics",minWidth:450,children:ct}];vt=st?st(vt,tt):vt;const bt=vt.filter(Et=>Et.key!=="evaluations"),_t=vt.find(Et=>Et.key==="evaluations");nt({normalColumns:bt.map(Et=>({name:Et.name,key:Et.key})).filter(Et=>!UN_FILTERABLE_COLUMNS.includes(Et.name)),evaluationColumns:_t.children.map(Et=>({name:Et.name,key:Et.key}))});const xt=bt.filter(Et=>!ot.includes(Et.key)),yt={..._t,children:_t.children.filter(Et=>!ot.includes(Et.key))};return[...xt,yt]},[et.nameCell,ct,ot,rt,nt,tt]),ft=dt.reduce((gt,vt)=>gt+getColumnChildrenCount(vt),0),pt=gt=>{if(gt.children)return{...gt,children:gt.children.map(pt)};const vt=gt.minWidth??BASIC_WIDTH,bt=_e?(_e-24)/ft*vt:200;return{...gt,width:bt,minWidth:bt}};return{columns:dt.map(pt).map(gt=>{const vt=gt.key;return vt?{...gt,key:gt.key,sortable:!!(vt&&ut.includes(vt))}:gt}),ref:j}},useClasses$5=makeStyles({typeBadge:{...shorthands.padding(tokens.spacingVerticalXXS,tokens.spacingHorizontalS)},latencyWrapper:{display:"flex",flexDirection:"row",alignItems:"center",justifyItems:"center","> svg":{marginRight:"5px"}},nameCell:{color:tokens.colorBrandForeground1,fontWeight:tokens.fontWeightSemibold,":hover":{...shorthands.textDecoration("underline")}}}),UN_FILTERABLE_COLUMNS=["Kind","Name"];function TraceList({onRowClick:j,className:_e}){const et=useClasses$4(),tt=useTraceListRows(),{columns:rt,ref:nt}=useTraceListColumns(),ot=useTraceListViewStatus(),it=useTraceListLoadingComponent(),st=useTraceListErrorComponent(),lt=useIsDark();useDebugFunctions();const ut=useSortColumn(),ct=useSetSortColumn(),dt=ut?[ut]:[],ft=useOnClickTraceRow(),pt=reactExports.useCallback(gt=>{const{row:vt,column:bt}=gt;ft(vt,bt.key),j==null||j(vt)},[ft,j]);return ot===ViewStatus.error?jsxRuntimeExports.jsx(st,{}):ot===ViewStatus.loading?jsxRuntimeExports.jsx(it,{}):jsxRuntimeExports.jsx("div",{ref:nt,className:et.root,children:jsxRuntimeExports.jsx(DataGrid$1$1,{className:`${et.grid} ${_e??""} ${lt?"rdg-dark":"rdg-light"}`,renderers:{noRowsFallback:jsxRuntimeExports.jsxs("div",{style:{textAlign:"center",gridColumn:"1/-1",display:"flex",alignItems:"center",justifyContent:"center"},children:[jsxRuntimeExports.jsx(TextBulletListSquareWarning24Regular,{}),jsxRuntimeExports.jsx(Text$2,{style:{paddingLeft:"1rem"},children:"No traces found."})]})},rowClass:()=>et.row,columns:rt,rows:tt,headerRowHeight:26,rowHeight:80,onCellClick:pt,defaultColumnOptions:{resizable:!0},sortColumns:dt,onSortColumnsChange:gt=>{var vt;ct((vt=gt.slice(-1))==null?void 0:vt[0])}})})}const useClasses$4=makeStyles({root:{display:"flex",flexDirection:"column",flexGrow:1},grid:{},row:{cursor:"pointer"}}),defaultLocStrings=new Proxy({},{get:(j,_e)=>_e.replace(/_/g," ")}),RegistryWrapper=createRegistry({name:"TraceView"}),TraceViewWrapper=({isDark:j=!1,viewModel:_e,children:et,locStrings:tt=defaultLocStrings,TraceListLoading:rt,TraceListError:nt,TraceDetailLoading:ot,TraceDetailError:it})=>{const st=React.useCallback(lt=>{lt.register(TraceViewModelToken,{useValue:_e}),rt&<.register(traceListLoadingInjectionToken,{useValue:rt}),nt&<.register(traceListErrorInjectionToken,{useValue:nt}),ot&<.register(traceDetailLoadingInjectionToken,{useValue:ot}),it&<.register(traceDetailErrorInjectionToken,{useValue:it}),tt&<.register(locStringsInjectionToken,{useValue:tt})},[]);return jsxRuntimeExports.jsx(TraceViewThemeContext.Provider,{value:j,children:jsxRuntimeExports.jsx(RegistryWrapper,{onInitialize:st,children:et})})},DefaultDetailContainer=({isOpen:j,setIsOpen:_e,header:et=null,content:tt})=>jsxRuntimeExports.jsxs(OverlayDrawer,{position:"end",style:{width:"calc(100% - 160px)"},open:j,onOpenChange:(rt,nt)=>_e(nt.open),children:[et,jsxRuntimeExports.jsx("div",{style:{width:"100%",height:"calc(100vh - 40px)"},children:tt})]}),DefaultDetailHeader=({setIsTraceDetailOpen:j,viewModel:_e,showRefresh:et=!0,showGantt:tt=!0,showCopyUrl:rt=!1,showStreamSwitch:nt=!1,isStreaming:ot,onIsStreamingChange:it})=>{const st=useClasses$3(),lt=useLocStrings(),ut=useIsGanttChartOpen();return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:st.header,children:[jsxRuntimeExports.jsx(TraceDetailTitle,{}),nt&&ot!==void 0&&it!==void 0&&jsxRuntimeExports.jsx(StreamSwitcher,{style:{marginRight:"16px",marginTop:"4px"},isStreaming:ot,onIsStreamingChange:it}),rt?jsxRuntimeExports.jsx(Tooltip$1,{content:lt["Copy URL"],relationship:"description",children:jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Copy URL",icon:jsxRuntimeExports.jsx(SendCopy20Regular,{}),onClick:()=>navigator.clipboard.writeText(window.location.href)})}):null,et?jsxRuntimeExports.jsx(Tooltip$1,{content:lt["Refresh Data"],relationship:"description",children:jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Refresh",icon:jsxRuntimeExports.jsx(ArrowClockwise16Regular,{}),onClick:()=>_e.refreshSpans()})}):null,tt?jsxRuntimeExports.jsx(Tooltip$1,{content:lt[ut?"Hide Gantt":"Show Gantt"],relationship:"description",children:jsxRuntimeExports.jsx(Button$2,{style:{color:ut?tokens.colorBrandForeground1:""},appearance:"subtle","aria-label":"Close",icon:jsxRuntimeExports.jsx(GanttChart20Regular,{}),onClick:()=>_e.toggleIsGanttChartOpen()})}):null,jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Close",icon:jsxRuntimeExports.jsx(Dismiss24Regular,{}),onClick:()=>j(!1)})]}),jsxRuntimeExports.jsx(Divider$2,{})]})},useClasses$3=makeStyles({header:{display:"flex",width:"100%"},wrapper:{display:"flex",flexDirection:"column",height:"100%"},divider:{flexGrow:0,...shorthands.margin("16px",0)},grid:{flexGrow:1}});function useDarkMode(){const[j,_e]=reactExports.useState(!1);return reactExports.useEffect(()=>{const et=window.matchMedia("(prefers-color-scheme: dark)");_e(et.matches);const tt=rt=>{_e(rt.matches)};return et.addEventListener("change",tt),()=>{et.removeEventListener("change",tt)}},[]),j}const token="%[a-f0-9]{2}",singleMatcher=new RegExp("("+token+")|([^%]+?)","gi"),multiMatcher=new RegExp("("+token+")+","gi");function decodeComponents(j,_e){try{return[decodeURIComponent(j.join(""))]}catch{}if(j.length===1)return j;_e=_e||1;const et=j.slice(0,_e),tt=j.slice(_e);return Array.prototype.concat.call([],decodeComponents(et),decodeComponents(tt))}function decode$1(j){try{return decodeURIComponent(j)}catch{let _e=j.match(singleMatcher)||[];for(let et=1;et<_e.length;et++)j=decodeComponents(_e,et).join(""),_e=j.match(singleMatcher)||[];return j}}function customDecodeURIComponent(j){const _e={"%FE%FF":"��","%FF%FE":"��"};let et=multiMatcher.exec(j);for(;et;){try{_e[et[0]]=decodeURIComponent(et[0])}catch{const rt=decode$1(et[0]);rt!==et[0]&&(_e[et[0]]=rt)}et=multiMatcher.exec(j)}_e["%C2"]="�";const tt=Object.keys(_e);for(const rt of tt)j=j.replace(new RegExp(rt,"g"),_e[rt]);return j}function decodeUriComponent(j){if(typeof j!="string")throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof j+"`");try{return decodeURIComponent(j)}catch{return customDecodeURIComponent(j)}}function splitOnFirst(j,_e){if(!(typeof j=="string"&&typeof _e=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(j===""||_e==="")return[];const et=j.indexOf(_e);return et===-1?[]:[j.slice(0,et),j.slice(et+_e.length)]}function includeKeys(j,_e){const et={};if(Array.isArray(_e))for(const tt of _e){const rt=Object.getOwnPropertyDescriptor(j,tt);rt!=null&&rt.enumerable&&Object.defineProperty(et,tt,rt)}else for(const tt of Reflect.ownKeys(j)){const rt=Object.getOwnPropertyDescriptor(j,tt);if(rt.enumerable){const nt=j[tt];_e(tt,nt,j)&&Object.defineProperty(et,tt,rt)}}return et}const isNullOrUndefined=j=>j==null,strictUriEncode=j=>encodeURIComponent(j).replaceAll(/[!'()*]/g,_e=>`%${_e.charCodeAt(0).toString(16).toUpperCase()}`),encodeFragmentIdentifier=Symbol("encodeFragmentIdentifier");function encoderForArrayFormat(j){switch(j.arrayFormat){case"index":return _e=>(et,tt)=>{const rt=et.length;return tt===void 0||j.skipNull&&tt===null||j.skipEmptyString&&tt===""?et:tt===null?[...et,[encode(_e,j),"[",rt,"]"].join("")]:[...et,[encode(_e,j),"[",encode(rt,j),"]=",encode(tt,j)].join("")]};case"bracket":return _e=>(et,tt)=>tt===void 0||j.skipNull&&tt===null||j.skipEmptyString&&tt===""?et:tt===null?[...et,[encode(_e,j),"[]"].join("")]:[...et,[encode(_e,j),"[]=",encode(tt,j)].join("")];case"colon-list-separator":return _e=>(et,tt)=>tt===void 0||j.skipNull&&tt===null||j.skipEmptyString&&tt===""?et:tt===null?[...et,[encode(_e,j),":list="].join("")]:[...et,[encode(_e,j),":list=",encode(tt,j)].join("")];case"comma":case"separator":case"bracket-separator":{const _e=j.arrayFormat==="bracket-separator"?"[]=":"=";return et=>(tt,rt)=>rt===void 0||j.skipNull&&rt===null||j.skipEmptyString&&rt===""?tt:(rt=rt===null?"":rt,tt.length===0?[[encode(et,j),_e,encode(rt,j)].join("")]:[[tt,encode(rt,j)].join(j.arrayFormatSeparator)])}default:return _e=>(et,tt)=>tt===void 0||j.skipNull&&tt===null||j.skipEmptyString&&tt===""?et:tt===null?[...et,encode(_e,j)]:[...et,[encode(_e,j),"=",encode(tt,j)].join("")]}}function parserForArrayFormat(j){let _e;switch(j.arrayFormat){case"index":return(et,tt,rt)=>{if(_e=/\[(\d*)]$/.exec(et),et=et.replace(/\[\d*]$/,""),!_e){rt[et]=tt;return}rt[et]===void 0&&(rt[et]={}),rt[et][_e[1]]=tt};case"bracket":return(et,tt,rt)=>{if(_e=/(\[])$/.exec(et),et=et.replace(/\[]$/,""),!_e){rt[et]=tt;return}if(rt[et]===void 0){rt[et]=[tt];return}rt[et]=[...rt[et],tt]};case"colon-list-separator":return(et,tt,rt)=>{if(_e=/(:list)$/.exec(et),et=et.replace(/:list$/,""),!_e){rt[et]=tt;return}if(rt[et]===void 0){rt[et]=[tt];return}rt[et]=[...rt[et],tt]};case"comma":case"separator":return(et,tt,rt)=>{const nt=typeof tt=="string"&&tt.includes(j.arrayFormatSeparator),ot=typeof tt=="string"&&!nt&&decode(tt,j).includes(j.arrayFormatSeparator);tt=ot?decode(tt,j):tt;const it=nt||ot?tt.split(j.arrayFormatSeparator).map(st=>decode(st,j)):tt===null?tt:decode(tt,j);rt[et]=it};case"bracket-separator":return(et,tt,rt)=>{const nt=/(\[])$/.test(et);if(et=et.replace(/\[]$/,""),!nt){rt[et]=tt&&decode(tt,j);return}const ot=tt===null?[]:tt.split(j.arrayFormatSeparator).map(it=>decode(it,j));if(rt[et]===void 0){rt[et]=ot;return}rt[et]=[...rt[et],...ot]};default:return(et,tt,rt)=>{if(rt[et]===void 0){rt[et]=tt;return}rt[et]=[...[rt[et]].flat(),tt]}}}function validateArrayFormatSeparator(j){if(typeof j!="string"||j.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function encode(j,_e){return _e.encode?_e.strict?strictUriEncode(j):encodeURIComponent(j):j}function decode(j,_e){return _e.decode?decodeUriComponent(j):j}function keysSorter(j){return Array.isArray(j)?j.sort():typeof j=="object"?keysSorter(Object.keys(j)).sort((_e,et)=>Number(_e)-Number(et)).map(_e=>j[_e]):j}function removeHash(j){const _e=j.indexOf("#");return _e!==-1&&(j=j.slice(0,_e)),j}function getHash(j){let _e="";const et=j.indexOf("#");return et!==-1&&(_e=j.slice(et)),_e}function parseValue(j,_e){return _e.parseNumbers&&!Number.isNaN(Number(j))&&typeof j=="string"&&j.trim()!==""?j=Number(j):_e.parseBooleans&&j!==null&&(j.toLowerCase()==="true"||j.toLowerCase()==="false")&&(j=j.toLowerCase()==="true"),j}function extract(j){j=removeHash(j);const _e=j.indexOf("?");return _e===-1?"":j.slice(_e+1)}function parse(j,_e){_e={decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1,..._e},validateArrayFormatSeparator(_e.arrayFormatSeparator);const et=parserForArrayFormat(_e),tt=Object.create(null);if(typeof j!="string"||(j=j.trim().replace(/^[?#&]/,""),!j))return tt;for(const rt of j.split("&")){if(rt==="")continue;const nt=_e.decode?rt.replaceAll("+"," "):rt;let[ot,it]=splitOnFirst(nt,"=");ot===void 0&&(ot=nt),it=it===void 0?null:["comma","separator","bracket-separator"].includes(_e.arrayFormat)?it:decode(it,_e),et(decode(ot,_e),it,tt)}for(const[rt,nt]of Object.entries(tt))if(typeof nt=="object"&&nt!==null)for(const[ot,it]of Object.entries(nt))nt[ot]=parseValue(it,_e);else tt[rt]=parseValue(nt,_e);return _e.sort===!1?tt:(_e.sort===!0?Object.keys(tt).sort():Object.keys(tt).sort(_e.sort)).reduce((rt,nt)=>{const ot=tt[nt];return rt[nt]=ot&&typeof ot=="object"&&!Array.isArray(ot)?keysSorter(ot):ot,rt},Object.create(null))}function stringify(j,_e){if(!j)return"";_e={encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:",",..._e},validateArrayFormatSeparator(_e.arrayFormatSeparator);const et=ot=>_e.skipNull&&isNullOrUndefined(j[ot])||_e.skipEmptyString&&j[ot]==="",tt=encoderForArrayFormat(_e),rt={};for(const[ot,it]of Object.entries(j))et(ot)||(rt[ot]=it);const nt=Object.keys(rt);return _e.sort!==!1&&nt.sort(_e.sort),nt.map(ot=>{const it=j[ot];return it===void 0?"":it===null?encode(ot,_e):Array.isArray(it)?it.length===0&&_e.arrayFormat==="bracket-separator"?encode(ot,_e)+"[]":it.reduce(tt(ot),[]).join("&"):encode(ot,_e)+"="+encode(it,_e)}).filter(ot=>ot.length>0).join("&")}function parseUrl(j,_e){var rt;_e={decode:!0,..._e};let[et,tt]=splitOnFirst(j,"#");return et===void 0&&(et=j),{url:((rt=et==null?void 0:et.split("?"))==null?void 0:rt[0])??"",query:parse(extract(j),_e),..._e&&_e.parseFragmentIdentifier&&tt?{fragmentIdentifier:decode(tt,_e)}:{}}}function stringifyUrl(j,_e){_e={encode:!0,strict:!0,[encodeFragmentIdentifier]:!0,..._e};const et=removeHash(j.url).split("?")[0]||"",tt=extract(j.url),rt={...parse(tt,{sort:!1}),...j.query};let nt=stringify(rt,_e);nt&&(nt=`?${nt}`);let ot=getHash(j.url);if(typeof j.fragmentIdentifier=="string"){const it=new URL(et);it.hash=j.fragmentIdentifier,ot=_e[encodeFragmentIdentifier]?it.hash:`#${j.fragmentIdentifier}`}return`${et}${nt}${ot}`}function pick(j,_e,et){et={parseFragmentIdentifier:!0,[encodeFragmentIdentifier]:!1,...et};const{url:tt,query:rt,fragmentIdentifier:nt}=parseUrl(j,et);return stringifyUrl({url:tt,query:includeKeys(rt,_e),fragmentIdentifier:nt},et)}function exclude(j,_e,et){const tt=Array.isArray(_e)?rt=>!_e.includes(rt):(rt,nt)=>!_e(rt,nt);return pick(j,tt,et)}const queryString=Object.freeze(Object.defineProperty({__proto__:null,exclude,extract,parse,parseUrl,pick,stringify,stringifyUrl},Symbol.toStringTag,{value:"Module"}));function useHashObject(){const[j,_e]=reactExports.useState(()=>queryString.parse(window.location.hash.substring(1))),et=reactExports.useCallback(tt=>{_e(rt=>{const nt={...rt,...tt},ot=queryString.stringify(nt);return window.location.hash=ot,nt})},[]);return reactExports.useEffect(()=>{const tt=()=>{_e(queryString.parse(window.location.hash.substring(1)))};return window.addEventListener("hashchange",tt),()=>window.removeEventListener("hashchange",tt)},[]),[j,et]}function genLocalUrlParamsWithHash(j){return isNotNullOrUndefined(j)?isNotNullOrUndefined(j.session)?`session=${j.session}`:isNotNullOrUndefined(j.experiment)?`experiment=${j.experiment}`:isNotNullOrUndefined(j.run)?`run=${j.run}`:"":""}function isNotNullOrUndefined(j){return j!=null}const getSummariesSignature=j=>j.flatMap(tt=>[`${tt.line_run_id}_${tt.status}`,...Object.values(tt.evaluations??[]).map(rt=>`${rt.trace_id}_${rt.status}`)]).sort().join(","),useLocalFetchSummaries=(j,_e,et)=>{const[tt,rt]=reactExports.useState(!0),nt=useLocalFetchSummariesFunc(j,_e);reactExports.useEffect(()=>{tt&&j.setTraceListStatus(ViewStatus.loading),nt().finally(()=>{tt&&(rt(!1),j.setTraceListStatus(ViewStatus.loaded))});let ot;return et&&(ot=setInterval(nt,TRACE_POLLING_GAP)),()=>{ot&&clearInterval(ot)}},[_e,et])},useLocalFetchSummary=j=>reactExports.useCallback(async et=>fetch(`${LOCAL_URL_PREFIX}/v1.0/LineRuns/${et}`).then(tt=>tt.json()).then(tt=>{tt&&(j.appendTraces([tt]),j.setTraceListStatus(ViewStatus.loaded))}).catch(tt=>{j.setTraceListStatus(ViewStatus.error),j.appendTraces([]),console.error("Error:",tt)}),[j]),useLocalFetchSummariesFunc=(j,_e)=>{const[et,tt]=reactExports.useState(void 0);return async()=>{const nt=genLocalUrlParamsWithHash(_e),ot=nt!==""?`?${nt}`:"";return fetch(`${LOCAL_URL_PREFIX}/v1.0/LineRuns/list${ot}`).then(it=>it.json()).then(it=>{if(!it&&Array.isArray(it))throw new Error("No new traces");const st=getSummariesSignature(it);(et===void 0||st!==et)&&(tt(st),j.traces$.clear(),j.appendTraces(it))}).catch(it=>{j.setTraceListStatus(ViewStatus.error),j.appendTraces([]),console.error("Error:",it)})}},useLocalRefreshTraces=(j,_e)=>{const et=useLocalFetchSummariesFunc(j,_e);return reactExports.useCallback(()=>{j.setTraceListStatus(ViewStatus.loading),et().then(()=>{j.setTraceListStatus(ViewStatus.loaded)})},[et,j])},useLocalTraceDetailDidOpen=(j,_e)=>{const et=useLocalFetchSummary(j);return reactExports.useCallback(async rt=>{if(!rt)return;let nt=j.getTraceById(rt);nt||(await et(rt),nt=j.getTraceById(rt));const ot=[rt,...Object.values((nt==null?void 0:nt.evaluations)??[]).map(it=>it.trace_id)].filter(it=>it!==void 0);_e({uiTraceId:rt}),j.setTraceDetailStatus(ViewStatus.loading),fetchLocalSpans(ot,j)},[j])},useLocalOnTraceDetailClose=j=>reactExports.useCallback(()=>{j({uiTraceId:void 0})},[j]),fetchLocalSpans=(j,_e)=>{fetch(`${LOCAL_URL_PREFIX}/v1.0/Spans/list?trace_ids=${j.join(",")}`).then(et=>et.json()).then(et=>{_e.appendSpans(et),_e.setTraceDetailStatus(ViewStatus.loaded)}).catch(et=>{console.error("Error:",et),_e.setTraceDetailStatus(ViewStatus.error)})},useLocalOnRefreshSpans=j=>{const _e=useLocalFetchSummary(j);return reactExports.useCallback((tt,rt)=>{const nt=[tt,...Object.values((rt==null?void 0:rt.evaluations)??[]).map(ot=>ot.trace_id)].filter(ot=>ot!==void 0);_e(tt),fetchLocalSpans(nt,j)},[_e,j])},LocalCommonHeader=({isStreaming:j,onIsStreamingChange:_e,streamLabelName:et,showRefresh:tt=!1})=>{const rt=useClasses$2(),nt=useLocStrings(),ot=useTraceViewModel();return jsxRuntimeExports.jsxs("div",{className:rt.wrapper,children:[jsxRuntimeExports.jsx("div",{className:rt.main}),tt&&jsxRuntimeExports.jsx(Tooltip$1,{content:nt["Refresh Data"],relationship:"description",children:jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Refresh",icon:jsxRuntimeExports.jsx(ArrowClockwise16Regular,{}),onClick:()=>ot.refreshTraces()})}),jsxRuntimeExports.jsx(StreamSwitcher,{isStreaming:j,onIsStreamingChange:_e,labelName:et})]})},useClasses$2=makeStyles({wrapper:{display:"flex",...shorthands.padding(tokens.spacingVerticalXXS,tokens.spacingHorizontalL)},main:{...shorthands.flex(1)}}),LocalTraceView=j=>{const{viewModel:_e,isDark:et}=j;return jsxRuntimeExports.jsx(TraceViewWrapper,{viewModel:_e,isDark:et,children:jsxRuntimeExports.jsx(TraceViewContent,{...j})})},TraceViewContent=({viewModel:j,isStreaming:_e,onIsStreamingChange:et})=>{const tt=useClasses$1(),rt=useIsTraceDetailOpen(),nt=useSetIsTraceDetailOpen(),[ot,it]=React.useState(!1),[st,lt]=React.useState(!1),ut=useSelectedTrace(),ct=useLocalFetchSummary(j);return reactExports.useEffect(()=>{let dt;return ot&&rt&&ut&&st&&(dt=setInterval(()=>{const ft=[ut==null?void 0:ut.trace_id,...Object.values((ut==null?void 0:ut.evaluations)??[]).map(pt=>pt.trace_id)].filter(pt=>pt!==void 0);fetchLocalSpans(ft,j),ut.trace_id&&ct(ut.trace_id)},SPAN_POLLING_GAP)),()=>{dt&&clearInterval(dt)}},[st,ut,rt,j,ot,ct]),reactExports.useEffect(()=>{rt&&ut&&(checkStatus(ut.status,"Running")?it(!0):it(!1))},[ct,rt,ut]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:tt.wrapper,children:[jsxRuntimeExports.jsx(LocalCommonHeader,{isStreaming:_e,onIsStreamingChange:et,showRefresh:!0}),jsxRuntimeExports.jsx(TraceFilter,{}),jsxRuntimeExports.jsx(TraceList,{className:tt.grid,onRowClick:()=>{nt(!0)}})]}),jsxRuntimeExports.jsx(DefaultDetailContainer,{isOpen:rt,setIsOpen:nt,header:jsxRuntimeExports.jsx(DefaultDetailHeader,{setIsTraceDetailOpen:nt,viewModel:j,showStreamSwitch:ot,isStreaming:st,onIsStreamingChange:lt}),content:jsxRuntimeExports.jsx(TraceDetail,{})})]})},useClasses$1=makeStyles({header:{display:"flex",width:"100%"},wrapper:{display:"flex",flexDirection:"column",height:"100%"},divider:{flexGrow:0,...shorthands.margin("16px",0)},grid:{flexGrow:1}});var define_import_meta_env_default={BASE_URL:"/v1.0/ui/traces/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};window.TraceView_Version=define_import_meta_env_default.VITE_TRACE_VIEW_BUILD_VERSION;const TraceViewApp=()=>{const[j,_e]=useHashObject(),[et,tt]=reactExports.useState(!1),rt=useClasses(),nt=useDarkMode(),ot=React.useMemo(()=>new TraceViewModel,[]),it=useLocalTraceDetailDidOpen(ot,_e),st=useLocalOnTraceDetailClose(_e),lt=useLocalRefreshTraces(ot,j),ut=useLocalOnRefreshSpans(ot);return useLocalFetchSummaries(ot,j,et),reactExports.useEffect(()=>{ot.traceDetailDidOpen(it),ot.traceDetailDidClose(st),ot.setOnRefreshTraces(lt),ot.onRefreshSpans(ut),isNotNullOrUndefined(j.uiTraceId)&&ot.setTraceDetailOpen(!0,j.uiTraceId)},[ot,j.uiTraceId]),jsxRuntimeExports.jsxs(FluentProvider,{theme:nt?webDarkTheme:webLightTheme,style:{height:"100%",width:"100%"},children:[jsxRuntimeExports.jsx("style",{dangerouslySetInnerHTML:{__html:` +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray(j,_e){if(j){if(typeof j=="string")return _arrayLikeToArray(j,_e);var et=Object.prototype.toString.call(j).slice(8,-1);if(et==="Object"&&j.constructor&&(et=j.constructor.name),et==="Map"||et==="Set")return Array.from(j);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray(j,_e)}}function _iterableToArray(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles(j){if(Array.isArray(j))return _arrayLikeToArray(j)}function _arrayLikeToArray(j,_e){(_e==null||_e>j.length)&&(_e=j.length);for(var et=0,tt=new Array(_e);et<_e;et++)tt[et]=j[et];return tt}function ownKeys(j,_e){var et=Object.keys(j);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(j);_e&&(tt=tt.filter(function(rt){return Object.getOwnPropertyDescriptor(j,rt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread(j){for(var _e=1;_e0?ot:_e&&_e.length&&isNumber(rt)&&isNumber(nt)?_e.slice(rt,nt+1):[]};function getDefaultDomainByAxisType(j){return j==="number"?[0,"auto"]:void 0}var getTooltipContent=function j(_e,et,tt,rt){var nt=_e.graphicalItems,ot=_e.tooltipAxis,it=getDisplayedData(et,_e);return tt<0||!nt||!nt.length||tt>=it.length?null:nt.reduce(function(st,lt){var ut,ct=lt.props.hide;if(ct)return st;var dt=(ut=lt.props.data)!==null&&ut!==void 0?ut:et;dt&&_e.dataStartIndex+_e.dataEndIndex!==0&&(dt=dt.slice(_e.dataStartIndex,_e.dataEndIndex+1));var ft;if(ot.dataKey&&!ot.allowDuplicatedCategory){var pt=dt===void 0?it:dt;ft=findEntryInArray(pt,ot.dataKey,rt)}else ft=dt&&dt[tt]||it[tt];return ft?[].concat(_toConsumableArray(st),[getTooltipItem(lt,ft)]):st},[])},getTooltipData=function j(_e,et,tt,rt){var nt=rt||{x:_e.chartX,y:_e.chartY},ot=calculateTooltipPos(nt,tt),it=_e.orderedTooltipTicks,st=_e.tooltipAxis,lt=_e.tooltipTicks,ut=calculateActiveTickIndex(ot,it,lt,st);if(ut>=0&<){var ct=lt[ut]&<[ut].value,dt=getTooltipContent(_e,et,ut,ct),ft=getActiveCoordinate(tt,it,ut,nt);return{activeTooltipIndex:ut,activeLabel:ct,activePayload:dt,activeCoordinate:ft}}return null},getAxisMapByAxes=function j(_e,et){var tt=et.axes,rt=et.graphicalItems,nt=et.axisType,ot=et.axisIdKey,it=et.stackGroups,st=et.dataStartIndex,lt=et.dataEndIndex,ut=_e.layout,ct=_e.children,dt=_e.stackOffset,ft=isCategoricalAxis(ut,nt);return tt.reduce(function(pt,gt){var mt,bt=gt.props,_t=bt.type,xt=bt.dataKey,yt=bt.allowDataOverflow,Et=bt.allowDuplicatedCategory,St=bt.scale,Tt=bt.ticks,kt=bt.includeHidden,$t=gt.props[ot];if(pt[$t])return pt;var Ct=getDisplayedData(_e.data,{graphicalItems:rt.filter(function(Xt){return Xt.props[ot]===$t}),dataStartIndex:st,dataEndIndex:lt}),It=Ct.length,Nt,Ot,jt;isDomainSpecifiedByUser(gt.props.domain,yt,_t)&&(Nt=parseSpecifiedDomain(gt.props.domain,null,yt),ft&&(_t==="number"||St!=="auto")&&(jt=getDomainOfDataByKey(Ct,xt,"category")));var Mt=getDefaultDomainByAxisType(_t);if(!Nt||Nt.length===0){var Rt,Lt=(Rt=gt.props.domain)!==null&&Rt!==void 0?Rt:Mt;if(xt){if(Nt=getDomainOfDataByKey(Ct,xt,_t),_t==="category"&&ft){var Pt=hasDuplicate(Nt);Et&&Pt?(Ot=Nt,Nt=range$4(0,It)):Et||(Nt=parseDomainOfCategoryAxis(Lt,Nt,gt).reduce(function(Xt,tr){return Xt.indexOf(tr)>=0?Xt:[].concat(_toConsumableArray(Xt),[tr])},[]))}else if(_t==="category")Et?Nt=Nt.filter(function(Xt){return Xt!==""&&!isNil$1(Xt)}):Nt=parseDomainOfCategoryAxis(Lt,Nt,gt).reduce(function(Xt,tr){return Xt.indexOf(tr)>=0||tr===""||isNil$1(tr)?Xt:[].concat(_toConsumableArray(Xt),[tr])},[]);else if(_t==="number"){var Gt=parseErrorBarsOfAxis(Ct,rt.filter(function(Xt){return Xt.props[ot]===$t&&(kt||!Xt.props.hide)}),xt,nt,ut);Gt&&(Nt=Gt)}ft&&(_t==="number"||St!=="auto")&&(jt=getDomainOfDataByKey(Ct,xt,"category"))}else ft?Nt=range$4(0,It):it&&it[$t]&&it[$t].hasStack&&_t==="number"?Nt=dt==="expand"?[0,1]:getDomainOfStackGroups(it[$t].stackGroups,st,lt):Nt=getDomainOfItemsWithSameAxis(Ct,rt.filter(function(Xt){return Xt.props[ot]===$t&&(kt||!Xt.props.hide)}),_t,ut,!0);if(_t==="number")Nt=detectReferenceElementsDomain(ct,Nt,$t,nt,Tt),Lt&&(Nt=parseSpecifiedDomain(Lt,Nt,yt));else if(_t==="category"&&Lt){var qt=Lt,Yt=Nt.every(function(Xt){return qt.indexOf(Xt)>=0});Yt&&(Nt=qt)}}return _objectSpread(_objectSpread({},pt),{},_defineProperty({},$t,_objectSpread(_objectSpread({},gt.props),{},{axisType:nt,domain:Nt,categoricalDomain:jt,duplicateDomain:Ot,originalDomain:(mt=gt.props.domain)!==null&&mt!==void 0?mt:Mt,isCategorical:ft,layout:ut})))},{})},getAxisMapByItems=function j(_e,et){var tt=et.graphicalItems,rt=et.Axis,nt=et.axisType,ot=et.axisIdKey,it=et.stackGroups,st=et.dataStartIndex,lt=et.dataEndIndex,ut=_e.layout,ct=_e.children,dt=getDisplayedData(_e.data,{graphicalItems:tt,dataStartIndex:st,dataEndIndex:lt}),ft=dt.length,pt=isCategoricalAxis(ut,nt),gt=-1;return tt.reduce(function(mt,bt){var _t=bt.props[ot],xt=getDefaultDomainByAxisType("number");if(!mt[_t]){gt++;var yt;return pt?yt=range$4(0,ft):it&&it[_t]&&it[_t].hasStack?(yt=getDomainOfStackGroups(it[_t].stackGroups,st,lt),yt=detectReferenceElementsDomain(ct,yt,_t,nt)):(yt=parseSpecifiedDomain(xt,getDomainOfItemsWithSameAxis(dt,tt.filter(function(Et){return Et.props[ot]===_t&&!Et.props.hide}),"number",ut),rt.defaultProps.allowDataOverflow),yt=detectReferenceElementsDomain(ct,yt,_t,nt)),_objectSpread(_objectSpread({},mt),{},_defineProperty({},_t,_objectSpread(_objectSpread({axisType:nt},rt.defaultProps),{},{hide:!0,orientation:get$3(ORIENT_MAP,"".concat(nt,".").concat(gt%2),null),domain:yt,originalDomain:xt,isCategorical:pt,layout:ut})))}return mt},{})},getAxisMap=function j(_e,et){var tt=et.axisType,rt=tt===void 0?"xAxis":tt,nt=et.AxisComp,ot=et.graphicalItems,it=et.stackGroups,st=et.dataStartIndex,lt=et.dataEndIndex,ut=_e.children,ct="".concat(rt,"Id"),dt=findAllByType(ut,nt),ft={};return dt&&dt.length?ft=getAxisMapByAxes(_e,{axes:dt,graphicalItems:ot,axisType:rt,axisIdKey:ct,stackGroups:it,dataStartIndex:st,dataEndIndex:lt}):ot&&ot.length&&(ft=getAxisMapByItems(_e,{Axis:nt,graphicalItems:ot,axisType:rt,axisIdKey:ct,stackGroups:it,dataStartIndex:st,dataEndIndex:lt})),ft},tooltipTicksGenerator=function j(_e){var et=getAnyElementOfObject(_e),tt=getTicksOfAxis(et,!1,!0);return{tooltipTicks:tt,orderedTooltipTicks:sortBy$1(tt,function(rt){return rt.coordinate}),tooltipAxis:et,tooltipAxisBandSize:getBandSizeOfAxis(et,tt)}},createDefaultState=function j(_e){var et=_e.children,tt=_e.defaultShowTooltip,rt=findChildByType(et,Brush),nt=0,ot=0;return _e.data&&_e.data.length!==0&&(ot=_e.data.length-1),rt&&rt.props&&(rt.props.startIndex>=0&&(nt=rt.props.startIndex),rt.props.endIndex>=0&&(ot=rt.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:nt,dataEndIndex:ot,activeTooltipIndex:-1,isTooltipActive:!!tt}},hasGraphicalBarItem=function j(_e){return!_e||!_e.length?!1:_e.some(function(et){var tt=getDisplayName(et&&et.type);return tt&&tt.indexOf("Bar")>=0})},getAxisNameByLayout=function j(_e){return _e==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:_e==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:_e==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},calculateOffset=function j(_e,et){var tt=_e.props,rt=_e.graphicalItems,nt=_e.xAxisMap,ot=nt===void 0?{}:nt,it=_e.yAxisMap,st=it===void 0?{}:it,lt=tt.width,ut=tt.height,ct=tt.children,dt=tt.margin||{},ft=findChildByType(ct,Brush),pt=findChildByType(ct,Legend),gt=Object.keys(st).reduce(function(Et,St){var Tt=st[St],kt=Tt.orientation;return!Tt.mirror&&!Tt.hide?_objectSpread(_objectSpread({},Et),{},_defineProperty({},kt,Et[kt]+Tt.width)):Et},{left:dt.left||0,right:dt.right||0}),mt=Object.keys(ot).reduce(function(Et,St){var Tt=ot[St],kt=Tt.orientation;return!Tt.mirror&&!Tt.hide?_objectSpread(_objectSpread({},Et),{},_defineProperty({},kt,get$3(Et,"".concat(kt))+Tt.height)):Et},{top:dt.top||0,bottom:dt.bottom||0}),bt=_objectSpread(_objectSpread({},mt),gt),_t=bt.bottom;ft&&(bt.bottom+=ft.props.height||Brush.defaultProps.height),pt&&et&&(bt=appendOffsetOfLegend(bt,rt,tt,et));var xt=lt-bt.left-bt.right,yt=ut-bt.top-bt.bottom;return _objectSpread(_objectSpread({brushBottom:_t},bt),{},{width:Math.max(xt,0),height:Math.max(yt,0)})},generateCategoricalChart=function j(_e){var et,tt=_e.chartName,rt=_e.GraphicalChild,nt=_e.defaultTooltipEventType,ot=nt===void 0?"axis":nt,it=_e.validateTooltipEventTypes,st=it===void 0?["axis"]:it,lt=_e.axisComponents,ut=_e.legendContent,ct=_e.formatAxisMap,dt=_e.defaultProps,ft=function(mt,bt){var _t=bt.graphicalItems,xt=bt.stackGroups,yt=bt.offset,Et=bt.updateId,St=bt.dataStartIndex,Tt=bt.dataEndIndex,kt=mt.barSize,$t=mt.layout,Ct=mt.barGap,It=mt.barCategoryGap,Nt=mt.maxBarSize,Ot=getAxisNameByLayout($t),jt=Ot.numericAxisName,Mt=Ot.cateAxisName,Rt=hasGraphicalBarItem(_t),Lt=Rt&&getBarSizeList({barSize:kt,stackGroups:xt}),Pt=[];return _t.forEach(function(Gt,qt){var Yt=getDisplayedData(mt.data,{graphicalItems:[Gt],dataStartIndex:St,dataEndIndex:Tt}),Xt=Gt.props,tr=Xt.dataKey,cr=Xt.maxBarSize,mr=Gt.props["".concat(jt,"Id")],Er=Gt.props["".concat(Mt,"Id")],hr={},_r=lt.reduce(function(Yr,Pr){var Vr,yn=bt["".concat(Pr.axisType,"Map")],fr=Gt.props["".concat(Pr.axisType,"Id")];yn&&yn[fr]||Pr.axisType==="zAxis"||invariant(!1);var sr=yn[fr];return _objectSpread(_objectSpread({},Yr),{},(Vr={},_defineProperty(Vr,Pr.axisType,sr),_defineProperty(Vr,"".concat(Pr.axisType,"Ticks"),getTicksOfAxis(sr)),Vr))},hr),Ut=_r[Mt],ar=_r["".concat(Mt,"Ticks")],pr=xt&&xt[mr]&&xt[mr].hasStack&&getStackedDataOfItem(Gt,xt[mr].stackGroups),rr=getDisplayName(Gt.type).indexOf("Bar")>=0,vr=getBandSizeOfAxis(Ut,ar),$r=[];if(rr){var Rr,Cr,Nr=isNil$1(cr)?Nt:cr,Gr=(Rr=(Cr=getBandSizeOfAxis(Ut,ar,!0))!==null&&Cr!==void 0?Cr:Nr)!==null&&Rr!==void 0?Rr:0;$r=getBarPosition({barGap:Ct,barCategoryGap:It,bandSize:Gr!==vr?Gr:vr,sizeList:Lt[Er],maxBarSize:Nr}),Gr!==vr&&($r=$r.map(function(Yr){return _objectSpread(_objectSpread({},Yr),{},{position:_objectSpread(_objectSpread({},Yr.position),{},{offset:Yr.position.offset-Gr/2})})}))}var qr=Gt&&Gt.type&&Gt.type.getComposedData;if(qr){var Qr;Pt.push({props:_objectSpread(_objectSpread({},qr(_objectSpread(_objectSpread({},_r),{},{displayedData:Yt,props:mt,dataKey:tr,item:Gt,bandSize:vr,barPosition:$r,offset:yt,stackedData:pr,layout:$t,dataStartIndex:St,dataEndIndex:Tt}))),{},(Qr={key:Gt.key||"item-".concat(qt)},_defineProperty(Qr,jt,_r[jt]),_defineProperty(Qr,Mt,_r[Mt]),_defineProperty(Qr,"animationId",Et),Qr)),childIndex:parseChildIndex(Gt,mt.children),item:Gt})}}),Pt},pt=function(mt,bt){var _t=mt.props,xt=mt.dataStartIndex,yt=mt.dataEndIndex,Et=mt.updateId;if(!validateWidthHeight({props:_t}))return null;var St=_t.children,Tt=_t.layout,kt=_t.stackOffset,$t=_t.data,Ct=_t.reverseStackOrder,It=getAxisNameByLayout(Tt),Nt=It.numericAxisName,Ot=It.cateAxisName,jt=findAllByType(St,rt),Mt=getStackGroupsByAxisId($t,jt,"".concat(Nt,"Id"),"".concat(Ot,"Id"),kt,Ct),Rt=lt.reduce(function(Yt,Xt){var tr="".concat(Xt.axisType,"Map");return _objectSpread(_objectSpread({},Yt),{},_defineProperty({},tr,getAxisMap(_t,_objectSpread(_objectSpread({},Xt),{},{graphicalItems:jt,stackGroups:Xt.axisType===Nt&&Mt,dataStartIndex:xt,dataEndIndex:yt}))))},{}),Lt=calculateOffset(_objectSpread(_objectSpread({},Rt),{},{props:_t,graphicalItems:jt}),bt==null?void 0:bt.legendBBox);Object.keys(Rt).forEach(function(Yt){Rt[Yt]=ct(_t,Rt[Yt],Lt,Yt.replace("Map",""),tt)});var Pt=Rt["".concat(Ot,"Map")],Gt=tooltipTicksGenerator(Pt),qt=ft(_t,_objectSpread(_objectSpread({},Rt),{},{dataStartIndex:xt,dataEndIndex:yt,updateId:Et,graphicalItems:jt,stackGroups:Mt,offset:Lt}));return _objectSpread(_objectSpread({formattedGraphicalItems:qt,graphicalItems:jt,offset:Lt,stackGroups:Mt},Gt),Rt)};return et=function(gt){_inherits(bt,gt);var mt=_createSuper(bt);function bt(_t){var xt,yt,Et;return _classCallCheck(this,bt),Et=mt.call(this,_t),_defineProperty(_assertThisInitialized(Et),"eventEmitterSymbol",Symbol("rechartsEventEmitter")),_defineProperty(_assertThisInitialized(Et),"accessibilityManager",new AccessibilityManager),_defineProperty(_assertThisInitialized(Et),"handleLegendBBoxUpdate",function(St){if(St){var Tt=Et.state,kt=Tt.dataStartIndex,$t=Tt.dataEndIndex,Ct=Tt.updateId;Et.setState(_objectSpread({legendBBox:St},pt({props:Et.props,dataStartIndex:kt,dataEndIndex:$t,updateId:Ct},_objectSpread(_objectSpread({},Et.state),{},{legendBBox:St}))))}}),_defineProperty(_assertThisInitialized(Et),"handleReceiveSyncEvent",function(St,Tt,kt){if(Et.props.syncId===St){if(kt===Et.eventEmitterSymbol&&typeof Et.props.syncMethod!="function")return;Et.applySyncEvent(Tt)}}),_defineProperty(_assertThisInitialized(Et),"handleBrushChange",function(St){var Tt=St.startIndex,kt=St.endIndex;if(Tt!==Et.state.dataStartIndex||kt!==Et.state.dataEndIndex){var $t=Et.state.updateId;Et.setState(function(){return _objectSpread({dataStartIndex:Tt,dataEndIndex:kt},pt({props:Et.props,dataStartIndex:Tt,dataEndIndex:kt,updateId:$t},Et.state))}),Et.triggerSyncEvent({dataStartIndex:Tt,dataEndIndex:kt})}}),_defineProperty(_assertThisInitialized(Et),"handleMouseEnter",function(St){var Tt=Et.getMouseInfo(St);if(Tt){var kt=_objectSpread(_objectSpread({},Tt),{},{isTooltipActive:!0});Et.setState(kt),Et.triggerSyncEvent(kt);var $t=Et.props.onMouseEnter;isFunction$6($t)&&$t(kt,St)}}),_defineProperty(_assertThisInitialized(Et),"triggeredAfterMouseMove",function(St){var Tt=Et.getMouseInfo(St),kt=Tt?_objectSpread(_objectSpread({},Tt),{},{isTooltipActive:!0}):{isTooltipActive:!1};Et.setState(kt),Et.triggerSyncEvent(kt);var $t=Et.props.onMouseMove;isFunction$6($t)&&$t(kt,St)}),_defineProperty(_assertThisInitialized(Et),"handleItemMouseEnter",function(St){Et.setState(function(){return{isTooltipActive:!0,activeItem:St,activePayload:St.tooltipPayload,activeCoordinate:St.tooltipPosition||{x:St.cx,y:St.cy}}})}),_defineProperty(_assertThisInitialized(Et),"handleItemMouseLeave",function(){Et.setState(function(){return{isTooltipActive:!1}})}),_defineProperty(_assertThisInitialized(Et),"handleMouseMove",function(St){St.persist(),Et.throttleTriggeredAfterMouseMove(St)}),_defineProperty(_assertThisInitialized(Et),"handleMouseLeave",function(St){var Tt={isTooltipActive:!1};Et.setState(Tt),Et.triggerSyncEvent(Tt);var kt=Et.props.onMouseLeave;isFunction$6(kt)&&kt(Tt,St)}),_defineProperty(_assertThisInitialized(Et),"handleOuterEvent",function(St){var Tt=getReactEventByType(St),kt=get$3(Et.props,"".concat(Tt));if(Tt&&isFunction$6(kt)){var $t,Ct;/.*touch.*/i.test(Tt)?Ct=Et.getMouseInfo(St.changedTouches[0]):Ct=Et.getMouseInfo(St),kt(($t=Ct)!==null&&$t!==void 0?$t:{},St)}}),_defineProperty(_assertThisInitialized(Et),"handleClick",function(St){var Tt=Et.getMouseInfo(St);if(Tt){var kt=_objectSpread(_objectSpread({},Tt),{},{isTooltipActive:!0});Et.setState(kt),Et.triggerSyncEvent(kt);var $t=Et.props.onClick;isFunction$6($t)&&$t(kt,St)}}),_defineProperty(_assertThisInitialized(Et),"handleMouseDown",function(St){var Tt=Et.props.onMouseDown;if(isFunction$6(Tt)){var kt=Et.getMouseInfo(St);Tt(kt,St)}}),_defineProperty(_assertThisInitialized(Et),"handleMouseUp",function(St){var Tt=Et.props.onMouseUp;if(isFunction$6(Tt)){var kt=Et.getMouseInfo(St);Tt(kt,St)}}),_defineProperty(_assertThisInitialized(Et),"handleTouchMove",function(St){St.changedTouches!=null&&St.changedTouches.length>0&&Et.throttleTriggeredAfterMouseMove(St.changedTouches[0])}),_defineProperty(_assertThisInitialized(Et),"handleTouchStart",function(St){St.changedTouches!=null&&St.changedTouches.length>0&&Et.handleMouseDown(St.changedTouches[0])}),_defineProperty(_assertThisInitialized(Et),"handleTouchEnd",function(St){St.changedTouches!=null&&St.changedTouches.length>0&&Et.handleMouseUp(St.changedTouches[0])}),_defineProperty(_assertThisInitialized(Et),"triggerSyncEvent",function(St){Et.props.syncId!==void 0&&eventCenter.emit(SYNC_EVENT,Et.props.syncId,St,Et.eventEmitterSymbol)}),_defineProperty(_assertThisInitialized(Et),"applySyncEvent",function(St){var Tt=Et.props,kt=Tt.layout,$t=Tt.syncMethod,Ct=Et.state.updateId,It=St.dataStartIndex,Nt=St.dataEndIndex;if(St.dataStartIndex!==void 0||St.dataEndIndex!==void 0)Et.setState(_objectSpread({dataStartIndex:It,dataEndIndex:Nt},pt({props:Et.props,dataStartIndex:It,dataEndIndex:Nt,updateId:Ct},Et.state)));else if(St.activeTooltipIndex!==void 0){var Ot=St.chartX,jt=St.chartY,Mt=St.activeTooltipIndex,Rt=Et.state,Lt=Rt.offset,Pt=Rt.tooltipTicks;if(!Lt)return;if(typeof $t=="function")Mt=$t(Pt,St);else if($t==="value"){Mt=-1;for(var Gt=0;Gt=0){var pr,rr;if(Ot.dataKey&&!Ot.allowDuplicatedCategory){var vr=typeof Ot.dataKey=="function"?ar:"payload.".concat(Ot.dataKey.toString());pr=findEntryInArray(Gt,vr,Mt),rr=qt&&Yt&&findEntryInArray(Yt,vr,Mt)}else pr=Gt==null?void 0:Gt[jt],rr=qt&&Yt&&Yt[jt];if(Er||mr){var $r=St.props.activeIndex!==void 0?St.props.activeIndex:jt;return[reactExports.cloneElement(St,_objectSpread(_objectSpread(_objectSpread({},$t.props),_r),{},{activeIndex:$r})),null,null]}if(!isNil$1(pr))return[Ut].concat(_toConsumableArray(Et.renderActivePoints({item:$t,activePoint:pr,basePoint:rr,childIndex:jt,isRange:qt})))}else{var Rr,Cr=(Rr=Et.getItemByXY(Et.state.activeCoordinate))!==null&&Rr!==void 0?Rr:{graphicalItem:Ut},Nr=Cr.graphicalItem,Gr=Nr.item,qr=Gr===void 0?St:Gr,Qr=Nr.childIndex,Yr=_objectSpread(_objectSpread(_objectSpread({},$t.props),_r),{},{activeIndex:Qr});return[reactExports.cloneElement(qr,Yr),null,null]}return qt?[Ut,null,null]:[Ut,null]}),_defineProperty(_assertThisInitialized(Et),"renderCustomized",function(St,Tt,kt){return reactExports.cloneElement(St,_objectSpread(_objectSpread({key:"recharts-customized-".concat(kt)},Et.props),Et.state))}),_defineProperty(_assertThisInitialized(Et),"renderMap",{CartesianGrid:{handler:Et.renderGrid,once:!0},ReferenceArea:{handler:Et.renderReferenceElement},ReferenceLine:{handler:Et.renderReferenceElement},ReferenceDot:{handler:Et.renderReferenceElement},XAxis:{handler:Et.renderXAxis},YAxis:{handler:Et.renderYAxis},Brush:{handler:Et.renderBrush,once:!0},Bar:{handler:Et.renderGraphicChild},Line:{handler:Et.renderGraphicChild},Area:{handler:Et.renderGraphicChild},Radar:{handler:Et.renderGraphicChild},RadialBar:{handler:Et.renderGraphicChild},Scatter:{handler:Et.renderGraphicChild},Pie:{handler:Et.renderGraphicChild},Funnel:{handler:Et.renderGraphicChild},Tooltip:{handler:Et.renderCursor,once:!0},PolarGrid:{handler:Et.renderPolarGrid,once:!0},PolarAngleAxis:{handler:Et.renderPolarAxis},PolarRadiusAxis:{handler:Et.renderPolarAxis},Customized:{handler:Et.renderCustomized}}),Et.clipPathId="".concat((xt=_t.id)!==null&&xt!==void 0?xt:uniqueId("recharts"),"-clip"),Et.throttleTriggeredAfterMouseMove=throttle$1(Et.triggeredAfterMouseMove,(yt=_t.throttleDelay)!==null&&yt!==void 0?yt:1e3/60),Et.state={},Et}return _createClass(bt,[{key:"componentDidMount",value:function(){var xt,yt;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(xt=this.props.margin.left)!==null&&xt!==void 0?xt:0,top:(yt=this.props.margin.top)!==null&&yt!==void 0?yt:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout})}},{key:"getSnapshotBeforeUpdate",value:function(xt,yt){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==yt.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==xt.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==xt.margin){var Et,St;this.accessibilityManager.setDetails({offset:{left:(Et=this.props.margin.left)!==null&&Et!==void 0?Et:0,top:(St=this.props.margin.top)!==null&&St!==void 0?St:0}})}return null}},{key:"componentDidUpdate",value:function(){}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var xt=findChildByType(this.props.children,Tooltip);if(xt&&typeof xt.props.shared=="boolean"){var yt=xt.props.shared?"axis":"item";return st.indexOf(yt)>=0?yt:ot}return ot}},{key:"getMouseInfo",value:function(xt){if(!this.container)return null;var yt=this.container,Et=yt.getBoundingClientRect(),St=getOffset(Et),Tt={chartX:Math.round(xt.pageX-St.left),chartY:Math.round(xt.pageY-St.top)},kt=Et.width/yt.offsetWidth||1,$t=this.inRange(Tt.chartX,Tt.chartY,kt);if(!$t)return null;var Ct=this.state,It=Ct.xAxisMap,Nt=Ct.yAxisMap,Ot=this.getTooltipEventType();if(Ot!=="axis"&&It&&Nt){var jt=getAnyElementOfObject(It).scale,Mt=getAnyElementOfObject(Nt).scale,Rt=jt&&jt.invert?jt.invert(Tt.chartX):null,Lt=Mt&&Mt.invert?Mt.invert(Tt.chartY):null;return _objectSpread(_objectSpread({},Tt),{},{xValue:Rt,yValue:Lt})}var Pt=getTooltipData(this.state,this.props.data,this.props.layout,$t);return Pt?_objectSpread(_objectSpread({},Tt),Pt):null}},{key:"inRange",value:function(xt,yt){var Et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,St=this.props.layout,Tt=xt/Et,kt=yt/Et;if(St==="horizontal"||St==="vertical"){var $t=this.state.offset,Ct=Tt>=$t.left&&Tt<=$t.left+$t.width&&kt>=$t.top&&kt<=$t.top+$t.height;return Ct?{x:Tt,y:kt}:null}var It=this.state,Nt=It.angleAxisMap,Ot=It.radiusAxisMap;if(Nt&&Ot){var jt=getAnyElementOfObject(Nt);return inRangeOfSector({x:Tt,y:kt},jt)}return null}},{key:"parseEventsOfWrapper",value:function(){var xt=this.props.children,yt=this.getTooltipEventType(),Et=findChildByType(xt,Tooltip),St={};Et&&yt==="axis"&&(Et.props.trigger==="click"?St={onClick:this.handleClick}:St={onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd});var Tt=adaptEventHandlers(this.props,this.handleOuterEvent);return _objectSpread(_objectSpread({},Tt),St)}},{key:"addListener",value:function(){eventCenter.on(SYNC_EVENT,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){eventCenter.removeListener(SYNC_EVENT,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(xt,yt,Et){for(var St=this.state.formattedGraphicalItems,Tt=0,kt=St.length;Tt{const et=useClasses$b(),tt=reactExports.useMemo(()=>mergeClasses(et.wrapper,_e&&et.horizontal),[et,_e]),rt=reactExports.useMemo(()=>mergeClasses(et.tagsWrapper,_e&&et.tagsWrapperHorizontal),[et,_e]),nt=reactExports.useMemo(()=>{let ot;switch(j.type){case"custom":ot=j.content;break;case"text":ot=jsxRuntimeExports.jsx(Text$2,{size:500,children:j.data});break;case"number":ot=jsxRuntimeExports.jsx(Text$2,{size:500,children:numberFormatter(j.data)});break;case"status":ot=jsxRuntimeExports.jsx(StatusText,{statusCode:j.status,textSize:500,showText:!0});break;case"time":{ot=jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:j.startTimeISOStr,endTimeISOString:j.endTimeISOStr,textSize:500});break}case"score":{const it=[{data:j.score,color:tokens.colorNeutralForeground3},{data:1-j.score,color:tokens.colorNeutralBackground4}];ot=jsxRuntimeExports.jsxs("div",{className:et.scoreWrapper,children:[jsxRuntimeExports.jsx(PieChart,{width:24,height:24,children:jsxRuntimeExports.jsx(Pie,{data:it,dataKey:"data",cx:"50%",cy:"50%",innerRadius:8,outerRadius:11,strokeWidth:0,stroke:"transparent",children:it.map((st,lt)=>jsxRuntimeExports.jsx(Cell,{fill:st.color},`cell-${lt}`))})}),jsxRuntimeExports.jsx(Text$2,{size:500,children:j.score})]});break}case"tags":ot=jsxRuntimeExports.jsx("div",{className:rt,children:j.tags.map((it,st)=>jsxRuntimeExports.jsx(MetricTag,{tag:it},st))});break;default:ot=null}return ot},[j,et,rt]);return jsxRuntimeExports.jsxs("div",{className:tt,children:[jsxRuntimeExports.jsx(Text$2,{size:400,className:et.title,children:j.title}),jsxRuntimeExports.jsx("div",{className:et.data,children:nt})]})},useClasses$b=makeStyles({wrapper:{display:"flex",flexDirection:"column",justifyContent:"space-between",...shorthands.flex(0,0,"auto")},horizontal:{flexDirection:"row",alignItems:"center",...shorthands.flex(0,0,"auto")},title:{color:tokens.colorNeutralForeground2,marginBottom:tokens.spacingVerticalXS},data:{color:tokens.colorNeutralForeground1},tagsWrapper:{display:"flex",flexDirection:"row",...shorthands.gap("0.5rem")},tagsWrapperHorizontal:{flexDirection:"column"},timeWrapper:{display:"flex",flexDirection:"row",alignItems:"center",justifyItems:"center","> svg":{marginRight:"5px"}},scoreWrapper:{display:"flex",flexDirection:"row",alignItems:"center","> :first-child":{marginRight:"8px"}}}),TraceDetailMetrics=()=>{const j=useClasses$a(),_e=useSelectedTrace(),et=useLocStrings(),tt=reactExports.useMemo(()=>{const rt=_e;if(!rt)return[];const nt=convertToTraceListRow(rt);return[{title:et.Status,type:"status",status:rt.status??UNDEFINED_VALUE_PLACEHOLDER},{title:et.Total_Tokens,type:"custom",content:jsxRuntimeExports.jsx("div",{className:j.token,children:jsxRuntimeExports.jsx(SummaryToken,{trace:nt})})},{title:et.Latency,type:"time",startTimeISOStr:rt.start_time,endTimeISOStr:rt.end_time}]},[_e,j.token]);return jsxRuntimeExports.jsxs("div",{className:j.wrapper,children:[tt.map((rt,nt)=>jsxRuntimeExports.jsx(MetricItem,{data:rt},nt)),(_e==null?void 0:_e.evaluations)&&jsxRuntimeExports.jsx(EvaluationMetricItem,{evaluations:_e.evaluations})]})},useClasses$a=makeStyles({wrapper:{display:"flex",alignItems:"stretch",height:"48px",width:"100%",...shorthands.margin("16px"),...shorthands.gap("1rem")},token:{"& div":{fontSize:"20px",fontWeight:400}}}),useClasses$9=makeStyles({root:{height:"100%",width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"nowrap",cursor:"pointer"},left:{display:"flex",flexWrap:"nowrap",maxWidth:"{(TREE_NODE_WIDTH * 2) / 3}px",...shorthands.overflow("hidden"),textOverflow:"ellipsis",whiteSpace:"nowrap",...shorthands.margin("0px","10px","0px","0px"),alignItems:"center"},spanName:shorthands.margin("0px","0px","0px","4px"),lastInputMessage:{...shorthands.margin("0px","0px","0px","4px"),fontSize:"12px",color:tokens.colorNeutralForeground2},lastInputMessageLabel:shorthands.margin("0px","4px","0px","0px"),right:{display:"flex",flexWrap:"nowrap",...shorthands.padding("0px","10px","0px","0px"),...shorthands.gap(tokens.spacingHorizontalS)}}),TreeNode=({node:j,span:_e})=>{var ct,dt,ft,pt;const et=getToolTypeFromSpan(_e),tt=bitset.has(GraphNodeStatus.Selected)(j.status),rt=bitset.has(GraphNodeStatus.Activated)(j.status),nt=useLastInputMessageBySpanId(((ct=_e.context)==null?void 0:ct.span_id)??""),ot=useLocStrings(),it=useClasses$9();let st=tokens.colorNeutralStroke1,lt=tokens.colorNeutralBackground4,ut=1;return tt&&(st=tokens.colorBrandStroke2,ut=2,lt=tokens.colorNeutralBackground4Selected),rt&&(lt=tokens.colorNeutralBackground4Hover),jsxRuntimeExports.jsx("foreignObject",{x:j.x,y:j.y,width:TREE_NODE_WIDTH,height:TREE_NODE_HEIGHT,style:{border:`${ut}px solid ${st}`,backgroundColor:lt,borderRadius:10,paddingLeft:10},children:jsxRuntimeExports.jsxs("div",{className:it.root,children:[jsxRuntimeExports.jsxs("div",{className:it.left,children:[et&&jsxRuntimeExports.jsx(Badge$2,{appearance:"outline",children:`${et}`}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(Tooltip$1,{content:_e.name??"",relationship:"label",children:jsxRuntimeExports.jsx("div",{className:it.spanName,children:`${_e.name}`})}),nt&&jsxRuntimeExports.jsxs("div",{className:it.lastInputMessage,children:[jsxRuntimeExports.jsx("span",{className:it.lastInputMessageLabel,children:ot["Last input:"]}),getSenderNameByLLMMessage(nt)]})]})]}),jsxRuntimeExports.jsxs("div",{className:it.right,children:[((ft=(dt=_e==null?void 0:_e.status)==null?void 0:dt.status_code)==null?void 0:ft.toLowerCase())==="error"&&jsxRuntimeExports.jsx(StatusText,{statusCode:(pt=_e.status)==null?void 0:pt.status_code,tooltipContent:_e.status.message}),jsxRuntimeExports.jsx(NodeToken,{span:_e}),jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:_e.start_time,endTimeISOString:_e.end_time})]})]})})};class NodeConfig{constructor(_e){this.options=_e}render(_e){const et=this.options.spans.find(tt=>{var rt;return((rt=tt==null?void 0:tt.context)==null?void 0:rt.span_id)===_e.model.id});return et?jsxRuntimeExports.jsx(TreeNode,{node:_e.model,span:et}):null}getMinHeight(){return 0}getMinWidth(){return 0}}const TreeView=()=>{const j=useSpansOfSelectedTrace(),_e=useSetSelectedSpanId(),et=useSelectedSpanId(),tt=st=>(lt,ut)=>(ut&&ut.type===GraphNodeEvent.Click&&_e(ut.node.id),st(lt,ut)),rt=GraphConfigBuilder.default().registerNode(()=>new NodeConfig({spans:j})).registerPort(()=>new PortConfig).registerEdge(()=>new EdgeConfig).build(),nt=new Set;nt.add(GraphFeatures.ClickNodeToSelect),nt.add(GraphFeatures.CanvasVerticalScrollable),nt.add(GraphFeatures.LimitBoundary),nt.add(GraphFeatures.InvisibleScrollbar);const[ot,it]=useGraphReducer({data:GraphModel.empty(),settings:{features:nt,graphConfig:rt,canvasBoundaryPadding:{top:0,bottom:TREE_NODE_HEIGHT}}},tt);return reactExports.useEffect(()=>{const{graph:st,rootIds:lt}=spansToGraphModel(j,{});it({type:GraphCanvasEvent.SetData,data:st.selectNodes(ut=>ut.id===lt[0])}),_e(lt[0])},[]),reactExports.useEffect(()=>{et&&it({type:GraphNodeEvent.Select,nodes:[et]})},[et]),jsxRuntimeExports.jsx(TreeGraph,{state:ot,dispatch:it})},TraceDetail=()=>{const j=useClasses$8(),_e=useSelectedSpanId(),et=reactExports.useRef(null),tt=useTraceDetailRefreshKey(),rt=useIsGanttChartOpen(),nt=useTraceDetailViewStatus(),ot=useTraceDetailLoadingComponent(),it=useTraceDetailErrorComponent(),st=useLocStrings();return reactExports.useEffect(()=>{var lt;rt&&((lt=et.current)==null||lt.updateSize({height:400,width:"100%"}))},[rt]),nt===ViewStatus.error?jsxRuntimeExports.jsx(it,{}):nt===ViewStatus.loading?jsxRuntimeExports.jsx(ot,{}):nt===ViewStatus.hidden?null:jsxRuntimeExports.jsxs("div",{className:j.root,children:[jsxRuntimeExports.jsxs("div",{className:j.container,children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(TraceDetailMetrics,{},tt),jsxRuntimeExports.jsx(Divider$2,{})]}),jsxRuntimeExports.jsxs("div",{className:j.content,children:[jsxRuntimeExports.jsx(Resizable,{enable:{right:!0},minWidth:100,maxWidth:"60%",defaultSize:{width:TREE_NODE_WIDTH+2*TREE_NODE_INDENT+32,height:"100%"},handleComponent:{right:jsxRuntimeExports.jsx("div",{className:j.resizeBar})},children:jsxRuntimeExports.jsx("div",{className:j.leftPane,children:jsxRuntimeExports.jsx(TreeView,{},tt)})}),jsxRuntimeExports.jsx("div",{className:j.rightPane,children:jsxRuntimeExports.jsx(NodeDetail,{emptyTip:jsxRuntimeExports.jsx(MessageBar,{intent:"error",children:st.No_span_data})},tt)},`${_e}`)]})]}),rt&&jsxRuntimeExports.jsx("div",{className:j.bottomPane,children:jsxRuntimeExports.jsx(Resizable,{ref:et,className:j.ganttContainer,defaultSize:{height:0,width:"100%"},enable:{top:!0},handleComponent:{top:jsxRuntimeExports.jsx("div",{className:j.resizeBarBottom})},children:jsxRuntimeExports.jsx(GanttView,{},tt)})})]})},useClasses$8=makeStyles({root:{width:"100%",height:"100%"},container:{display:"flex",flexDirection:"column",height:"100%",width:"100%"},summary:{display:"flex",alignItems:"stretch",height:"48px",width:"100%",...shorthands.margin("16px"),...shorthands.gap("1rem")},content:{...shorthands.flex(1),display:"flex"},leftPane:{height:"100%",...shorthands.margin("16px",0,0,"16px")},rightPane:{position:"relative",width:"100%",height:"100%",...shorthands.flex(1),...shorthands.overflow("hidden")},bottomPane:{position:"absolute",backgroundColor:tokens.colorNeutralBackground1,bottom:0,width:"100%"},ganttContainer:{...shorthands.padding("16px")},resizeBar:{position:"absolute",top:0,bottom:0,right:"5px",width:"6px",backgroundColor:tokens.colorNeutralBackground3,"::before":{content:"''",position:"absolute",top:"50%",right:"1px",marginTop:"-12px",height:"24px",width:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed},"::after":{content:"''",position:"absolute",top:"50%",left:"1px",marginTop:"-12px",height:"24px",width:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed}},resizeBarBottom:{position:"absolute",left:0,right:0,bottom:"5px",height:"6px",backgroundColor:tokens.colorNeutralBackground3,"::before":{content:"''",position:"absolute",left:"50%",bottom:"1px",marginLeft:"-12px",width:"24px",height:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed},"::after":{content:"''",position:"absolute",left:"50%",top:"1px",marginLeft:"-12px",width:"24px",height:"1px",backgroundColor:tokens.colorNeutralBackground3Pressed}}}),useClasses$7=makeStyles({title:{...shorthands.flex(1),...shorthands.padding("8px","16px"),lineHeight:"28px",fontSize:"18px",fontWeight:600}}),TraceDetailTitle=()=>{const j=useClasses$7(),_e=useLocStrings(),et=useSelectedTrace();return jsxRuntimeExports.jsx("div",{className:j.title,children:(et==null?void 0:et.name)??_e.Trace_Detail})},TraceFilter=()=>{const j=useClasses$6(),_e=useTableColumnNames(),[et,tt]=[useTableHiddenColumnKeys(),useSetTableHiddenColumnKeys()],rt=useTraceListShowMetrics(),nt=reactExports.useMemo(()=>[..._e.normalColumns,..._e.evaluationColumns].filter(st=>!et.includes(st.key)).map(st=>st.key),[et,_e]),ot=(it,st)=>{const{optionValue:lt}=st;lt&&tt(et.includes(lt)?et.filter(ut=>ut!==lt):[...et,lt])};return jsxRuntimeExports.jsxs("div",{className:j.wrapper,children:[jsxRuntimeExports.jsx(Input,{className:j.filter,disabled:!0,placeholder:"NOT implement yet"}),jsxRuntimeExports.jsxs(Combobox,{className:j.chooser,multiselect:!0,placeholder:"Columns Filter",selectedOptions:nt,onOptionSelect:ot,children:[jsxRuntimeExports.jsx(OptionGroup,{label:"Trace Info",children:_e.normalColumns.map(it=>jsxRuntimeExports.jsx(Option$2,{value:it.key,children:it.name},it.key))}),rt&&jsxRuntimeExports.jsx(OptionGroup,{label:"Metrics",children:_e.evaluationColumns.map(it=>jsxRuntimeExports.jsx(Option$2,{value:it.key,children:it.name},it.key))})]})]})},useClasses$6=makeStyles({wrapper:{display:"flex",...shorthands.gap("1rem"),...shorthands.margin(tokens.spacingVerticalM)},filter:{flexGrow:1},chooser:{width:"100px"}}),useDebugFunctions=()=>{const j=useGetAllTraces(),_e=useGetAllSpans(),et=useSelectedTrace(),tt=useSpansOfSelectedTrace();reactExports.useEffect(()=>{window.printTracesAndSpans=()=>{const rt=j();console.log("traces",rt);const nt=_e();console.log("spans",nt)},window.printSelectedTrace=()=>{console.log("selectedTrace",et)},window.printSpansOfSelectedTrace=()=>{console.log("spansOfSelectedTrace",tt)}},[j,_e,et,tt])},useOnClickTraceRow=()=>{const j=useSetSelectedTraceId();return(_e,et)=>{j(_e==null?void 0:_e.trace_id)}};function useResolvedElement(j,_e){var et=reactExports.useRef(null),tt=reactExports.useRef(null);tt.current=_e;var rt=reactExports.useRef(null);reactExports.useEffect(function(){nt()});var nt=reactExports.useCallback(function(){var ot=rt.current,it=tt.current,st=ot||(it?it instanceof Element?it:it.current:null);et.current&&et.current.element===st&&et.current.subscriber===j||(et.current&&et.current.cleanup&&et.current.cleanup(),et.current={element:st,subscriber:j,cleanup:st?j(st):void 0})},[j]);return reactExports.useEffect(function(){return function(){et.current&&et.current.cleanup&&(et.current.cleanup(),et.current=null)}},[]),reactExports.useCallback(function(ot){rt.current=ot,nt()},[nt])}function extractSize(j,_e,et){return j[_e]?j[_e][0]?j[_e][0][et]:j[_e][et]:_e==="contentBoxSize"?j.contentRect[et==="inlineSize"?"width":"height"]:void 0}function useResizeObserver(j){j===void 0&&(j={});var _e=j.onResize,et=reactExports.useRef(void 0);et.current=_e;var tt=j.round||Math.round,rt=reactExports.useRef(),nt=reactExports.useState({width:void 0,height:void 0}),ot=nt[0],it=nt[1],st=reactExports.useRef(!1);reactExports.useEffect(function(){return st.current=!1,function(){st.current=!0}},[]);var lt=reactExports.useRef({width:void 0,height:void 0}),ut=useResolvedElement(reactExports.useCallback(function(ct){return(!rt.current||rt.current.box!==j.box||rt.current.round!==tt)&&(rt.current={box:j.box,round:tt,instance:new ResizeObserver(function(dt){var ft=dt[0],pt=j.box==="border-box"?"borderBoxSize":j.box==="device-pixel-content-box"?"devicePixelContentBoxSize":"contentBoxSize",gt=extractSize(ft,pt,"inlineSize"),mt=extractSize(ft,pt,"blockSize"),bt=gt?tt(gt):void 0,_t=mt?tt(mt):void 0;if(lt.current.width!==bt||lt.current.height!==_t){var xt={width:bt,height:_t};lt.current.width=bt,lt.current.height=_t,et.current?et.current(xt):st.current||it(xt)}})}),rt.current.instance.observe(ct,{box:j.box}),function(){rt.current&&rt.current.instance.unobserve(ct)}},[j.box,tt]),j.ref);return reactExports.useMemo(function(){return{ref:ut,width:ot.width,height:ot.height}},[ut,ot.width,ot.height])}const genStatusChecker=j=>_e=>_e===void 0?!1:_e.toLowerCase()===j.toLowerCase(),checkStatus=(j,_e)=>j===void 0?!1:j.toLowerCase()===_e.toLowerCase(),useTraceListRows=()=>useTraces().map(_e=>convertToTraceListRow(_e)),BASIC_WIDTH=200,getColumnChildrenCount=j=>j.children?j==null?void 0:j.children.reduce((_e,et)=>_e+getColumnChildrenCount(et),0):j.minWidth??BASIC_WIDTH,useTraceListColumns=()=>{const{ref:j,width:_e}=useResizeObserver(),et=useClasses$5(),tt=useTraceListRows(),rt=useOnClickTraceRow(),nt=useSetTableColumnNames(),ot=useTableHiddenColumnKeys(),it=useLocStrings(),st=useTraceListColumnModifier(),lt=genStatusChecker("running"),ut=useSortableColumns(),ct=reactExports.useMemo(()=>{const gt=[];return tt.forEach(mt=>{Object.entries(mt.evaluations??{}).forEach(([bt,_t])=>{!gt.includes(bt)&&_t.display_name&>.push(_t.display_name)})}),gt.map(mt=>{const bt=[],_t=[];return tt.forEach(xt=>{var St;const yt=(St=xt.evaluations)==null?void 0:St[mt];if(!yt||!yt.outputs)return;const Et=yt.outputs;Object.keys(Et).forEach(Tt=>{const kt=Et[Tt];!bt.includes(Tt)&&kt!==null&&(bt.push(Tt),_t.push({key:`evaluation-${mt}-${Tt}-value`,name:Tt,renderCell:({row:$t})=>{var Nt,Ot,jt;if(lt($t.status))return jsxRuntimeExports.jsx(CellSkeleton,{});let Ct;const It=(jt=(Ot=(Nt=$t==null?void 0:$t.evaluations)==null?void 0:Nt[mt])==null?void 0:Ot.outputs)==null?void 0:jt[Tt];return It===void 0?Ct="N/A":typeof It=="number"?Ct=formatNumber(It):Ct=`${It}`,Ct}}))})}),{name:mt,key:`evaluation-${mt}`,children:_t}})},[tt]),dt=reactExports.useMemo(()=>{let mt=[...[{key:"kind",name:it.Kind,minWidth:120,maxWidth:200,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{}):jsxRuntimeExports.jsx(KindText,{kind:Et.kind})},{key:"name",name:it.Name,minWidth:150,maxWidth:300,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{}):jsxRuntimeExports.jsx(Tooltip$1,{content:Et.name??"",relationship:"label",children:jsxRuntimeExports.jsx("span",{className:et.nameCell,title:Et.name,onClick:()=>{rt(Et,"name")},children:Et.name})})},{key:"input",name:it.Input,minWidth:300,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{height:40}):jsxRuntimeExports.jsx(TraceListJsonCell,{jsonObject:Et.inputs})},{key:"output",name:it.Output,minWidth:300,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{height:40}):jsxRuntimeExports.jsx(TraceListJsonCell,{jsonObject:Et.outputs})},{key:"start_time",name:it.Start_time,minWidth:150,maxWidth:300,renderCell:({row:Et})=>jsxRuntimeExports.jsx(TextCellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:Et.start_time})})},{key:"end_time",name:it.End_time,minWidth:150,maxWidth:300,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{height:40}):jsxRuntimeExports.jsx(TextCellWrapper,{children:jsxRuntimeExports.jsx(TimeText,{time:Et.end_time})})},{key:"latency",name:it.Latency,minWidth:120,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{}):jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(LatencyText,{startTimeISOString:Et.start_time,endTimeISOString:Et.end_time})})},{key:"total_tokens",name:it.Total_tokens,minWidth:120,renderCell:({row:Et})=>lt(Et.status)?jsxRuntimeExports.jsx(CellSkeleton,{}):jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(SummaryToken,{trace:Et})})},{key:"status",name:it.Status,minWidth:120,renderCell:({row:Et})=>jsxRuntimeExports.jsx(CellWrapper,{children:jsxRuntimeExports.jsx(StatusText,{statusCode:Et.status})})}],{key:"evaluations",name:"Metrics",minWidth:450,children:ct}];mt=st?st(mt,tt):mt;const bt=mt.filter(Et=>Et.key!=="evaluations"),_t=mt.find(Et=>Et.key==="evaluations");nt({normalColumns:bt.map(Et=>({name:Et.name,key:Et.key})).filter(Et=>!UN_FILTERABLE_COLUMNS.includes(Et.name)),evaluationColumns:_t.children.map(Et=>({name:Et.name,key:Et.key}))});const xt=bt.filter(Et=>!ot.includes(Et.key)),yt={..._t,children:_t.children.filter(Et=>!ot.includes(Et.key))};return[...xt,yt]},[et.nameCell,ct,ot,rt,nt,tt]),ft=dt.reduce((gt,mt)=>gt+getColumnChildrenCount(mt),0),pt=gt=>{if(gt.children)return{...gt,children:gt.children.map(pt)};const mt=gt.minWidth??BASIC_WIDTH,bt=_e?(_e-24)/ft*mt:200;return{...gt,width:bt,minWidth:bt}};return{columns:dt.map(pt).map(gt=>{const mt=gt.key;return mt?{...gt,key:gt.key,sortable:!!(mt&&ut.includes(mt))}:gt}),ref:j}},useClasses$5=makeStyles({typeBadge:{...shorthands.padding(tokens.spacingVerticalXXS,tokens.spacingHorizontalS)},latencyWrapper:{display:"flex",flexDirection:"row",alignItems:"center",justifyItems:"center","> svg":{marginRight:"5px"}},nameCell:{color:tokens.colorBrandForeground1,fontWeight:tokens.fontWeightSemibold,":hover":{...shorthands.textDecoration("underline")}}}),UN_FILTERABLE_COLUMNS=["Kind","Name"];function TraceList({onRowClick:j,className:_e}){const et=useClasses$4(),tt=useTraceListRows(),{columns:rt,ref:nt}=useTraceListColumns(),ot=useTraceListViewStatus(),it=useTraceListLoadingComponent(),st=useTraceListErrorComponent(),lt=useIsDark();useDebugFunctions();const ut=useSortColumn(),ct=useSetSortColumn(),dt=ut?[ut]:[],ft=useOnClickTraceRow(),pt=reactExports.useCallback(gt=>{const{row:mt,column:bt}=gt;ft(mt,bt.key),j==null||j(mt)},[ft,j]);return ot===ViewStatus.error?jsxRuntimeExports.jsx(st,{}):ot===ViewStatus.loading?jsxRuntimeExports.jsx(it,{}):jsxRuntimeExports.jsx("div",{ref:nt,className:et.root,children:jsxRuntimeExports.jsx(DataGrid$1$1,{className:`${et.grid} ${_e??""} ${lt?"rdg-dark":"rdg-light"}`,renderers:{noRowsFallback:jsxRuntimeExports.jsxs("div",{style:{textAlign:"center",gridColumn:"1/-1",display:"flex",alignItems:"center",justifyContent:"center"},children:[jsxRuntimeExports.jsx(TextBulletListSquareWarning24Regular,{}),jsxRuntimeExports.jsx(Text$2,{style:{paddingLeft:"1rem"},children:"No traces found."})]})},rowClass:()=>et.row,columns:rt,rows:tt,headerRowHeight:26,rowHeight:80,onCellClick:pt,defaultColumnOptions:{resizable:!0},sortColumns:dt,onSortColumnsChange:gt=>{var mt;ct((mt=gt.slice(-1))==null?void 0:mt[0])}})})}const useClasses$4=makeStyles({root:{display:"flex",flexDirection:"column",flexGrow:1},grid:{},row:{cursor:"pointer"}}),defaultLocStrings=new Proxy({},{get:(j,_e)=>_e.replace(/_/g," ")}),RegistryWrapper=createRegistry({name:"TraceView"}),TraceViewWrapper=({isDark:j=!1,viewModel:_e,children:et,locStrings:tt=defaultLocStrings,TraceListLoading:rt,TraceListError:nt,TraceDetailLoading:ot,TraceDetailError:it})=>{const st=React.useCallback(lt=>{lt.register(TraceViewModelToken,{useValue:_e}),rt&<.register(traceListLoadingInjectionToken,{useValue:rt}),nt&<.register(traceListErrorInjectionToken,{useValue:nt}),ot&<.register(traceDetailLoadingInjectionToken,{useValue:ot}),it&<.register(traceDetailErrorInjectionToken,{useValue:it}),tt&<.register(locStringsInjectionToken,{useValue:tt})},[]);return jsxRuntimeExports.jsx(TraceViewThemeContext.Provider,{value:j,children:jsxRuntimeExports.jsx(RegistryWrapper,{onInitialize:st,children:et})})},DefaultDetailContainer=({isOpen:j,setIsOpen:_e,header:et=null,content:tt})=>jsxRuntimeExports.jsxs(OverlayDrawer,{position:"end",style:{width:"calc(100% - 160px)"},open:j,onOpenChange:(rt,nt)=>_e(nt.open),children:[et,jsxRuntimeExports.jsx("div",{style:{width:"100%",height:"calc(100vh - 40px)"},children:tt})]}),DefaultDetailHeader=({setIsTraceDetailOpen:j,viewModel:_e,showRefresh:et=!0,showGantt:tt=!0,showCopyUrl:rt=!1,showStreamSwitch:nt=!1,isStreaming:ot,onIsStreamingChange:it})=>{const st=useClasses$3(),lt=useLocStrings(),ut=useIsGanttChartOpen();return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:st.header,children:[jsxRuntimeExports.jsx(TraceDetailTitle,{}),nt&&ot!==void 0&&it!==void 0&&jsxRuntimeExports.jsx(StreamSwitcher,{style:{marginRight:"16px",marginTop:"4px"},isStreaming:ot,onIsStreamingChange:it}),rt?jsxRuntimeExports.jsx(Tooltip$1,{content:lt["Copy URL"],relationship:"description",children:jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Copy URL",icon:jsxRuntimeExports.jsx(SendCopy20Regular,{}),onClick:()=>{const ct=window.location.href;if(navigator.clipboard)navigator.clipboard.writeText(ct);else{const dt=document.createElement("textarea");dt.value=ct,document.body.appendChild(dt),dt.select();try{document.execCommand("copy")}catch(ft){console.error("Fallback: Oops, unable to copy",ft)}document.body.removeChild(dt)}}})}):null,et?jsxRuntimeExports.jsx(Tooltip$1,{content:lt["Refresh Data"],relationship:"description",children:jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Refresh",icon:jsxRuntimeExports.jsx(ArrowClockwise16Regular,{}),onClick:()=>_e.refreshSpans()})}):null,tt?jsxRuntimeExports.jsx(Tooltip$1,{content:lt[ut?"Hide Gantt":"Show Gantt"],relationship:"description",children:jsxRuntimeExports.jsx(Button$2,{style:{color:ut?tokens.colorBrandForeground1:""},appearance:"subtle","aria-label":"Close",icon:jsxRuntimeExports.jsx(GanttChart20Regular,{}),onClick:()=>_e.toggleIsGanttChartOpen()})}):null,jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Close",icon:jsxRuntimeExports.jsx(Dismiss24Regular,{}),onClick:()=>j(!1)})]}),jsxRuntimeExports.jsx(Divider$2,{})]})},useClasses$3=makeStyles({header:{display:"flex",width:"100%"},wrapper:{display:"flex",flexDirection:"column",height:"100%"},divider:{flexGrow:0,...shorthands.margin("16px",0)},grid:{flexGrow:1}});function useDarkMode(){const[j,_e]=reactExports.useState(!1);return reactExports.useEffect(()=>{const et=window.matchMedia("(prefers-color-scheme: dark)");_e(et.matches);const tt=rt=>{_e(rt.matches)};return et.addEventListener("change",tt),()=>{et.removeEventListener("change",tt)}},[]),j}const token="%[a-f0-9]{2}",singleMatcher=new RegExp("("+token+")|([^%]+?)","gi"),multiMatcher=new RegExp("("+token+")+","gi");function decodeComponents(j,_e){try{return[decodeURIComponent(j.join(""))]}catch{}if(j.length===1)return j;_e=_e||1;const et=j.slice(0,_e),tt=j.slice(_e);return Array.prototype.concat.call([],decodeComponents(et),decodeComponents(tt))}function decode$1(j){try{return decodeURIComponent(j)}catch{let _e=j.match(singleMatcher)||[];for(let et=1;et<_e.length;et++)j=decodeComponents(_e,et).join(""),_e=j.match(singleMatcher)||[];return j}}function customDecodeURIComponent(j){const _e={"%FE%FF":"��","%FF%FE":"��"};let et=multiMatcher.exec(j);for(;et;){try{_e[et[0]]=decodeURIComponent(et[0])}catch{const rt=decode$1(et[0]);rt!==et[0]&&(_e[et[0]]=rt)}et=multiMatcher.exec(j)}_e["%C2"]="�";const tt=Object.keys(_e);for(const rt of tt)j=j.replace(new RegExp(rt,"g"),_e[rt]);return j}function decodeUriComponent(j){if(typeof j!="string")throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof j+"`");try{return decodeURIComponent(j)}catch{return customDecodeURIComponent(j)}}function splitOnFirst(j,_e){if(!(typeof j=="string"&&typeof _e=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(j===""||_e==="")return[];const et=j.indexOf(_e);return et===-1?[]:[j.slice(0,et),j.slice(et+_e.length)]}function includeKeys(j,_e){const et={};if(Array.isArray(_e))for(const tt of _e){const rt=Object.getOwnPropertyDescriptor(j,tt);rt!=null&&rt.enumerable&&Object.defineProperty(et,tt,rt)}else for(const tt of Reflect.ownKeys(j)){const rt=Object.getOwnPropertyDescriptor(j,tt);if(rt.enumerable){const nt=j[tt];_e(tt,nt,j)&&Object.defineProperty(et,tt,rt)}}return et}const isNullOrUndefined=j=>j==null,strictUriEncode=j=>encodeURIComponent(j).replaceAll(/[!'()*]/g,_e=>`%${_e.charCodeAt(0).toString(16).toUpperCase()}`),encodeFragmentIdentifier=Symbol("encodeFragmentIdentifier");function encoderForArrayFormat(j){switch(j.arrayFormat){case"index":return _e=>(et,tt)=>{const rt=et.length;return tt===void 0||j.skipNull&&tt===null||j.skipEmptyString&&tt===""?et:tt===null?[...et,[encode(_e,j),"[",rt,"]"].join("")]:[...et,[encode(_e,j),"[",encode(rt,j),"]=",encode(tt,j)].join("")]};case"bracket":return _e=>(et,tt)=>tt===void 0||j.skipNull&&tt===null||j.skipEmptyString&&tt===""?et:tt===null?[...et,[encode(_e,j),"[]"].join("")]:[...et,[encode(_e,j),"[]=",encode(tt,j)].join("")];case"colon-list-separator":return _e=>(et,tt)=>tt===void 0||j.skipNull&&tt===null||j.skipEmptyString&&tt===""?et:tt===null?[...et,[encode(_e,j),":list="].join("")]:[...et,[encode(_e,j),":list=",encode(tt,j)].join("")];case"comma":case"separator":case"bracket-separator":{const _e=j.arrayFormat==="bracket-separator"?"[]=":"=";return et=>(tt,rt)=>rt===void 0||j.skipNull&&rt===null||j.skipEmptyString&&rt===""?tt:(rt=rt===null?"":rt,tt.length===0?[[encode(et,j),_e,encode(rt,j)].join("")]:[[tt,encode(rt,j)].join(j.arrayFormatSeparator)])}default:return _e=>(et,tt)=>tt===void 0||j.skipNull&&tt===null||j.skipEmptyString&&tt===""?et:tt===null?[...et,encode(_e,j)]:[...et,[encode(_e,j),"=",encode(tt,j)].join("")]}}function parserForArrayFormat(j){let _e;switch(j.arrayFormat){case"index":return(et,tt,rt)=>{if(_e=/\[(\d*)]$/.exec(et),et=et.replace(/\[\d*]$/,""),!_e){rt[et]=tt;return}rt[et]===void 0&&(rt[et]={}),rt[et][_e[1]]=tt};case"bracket":return(et,tt,rt)=>{if(_e=/(\[])$/.exec(et),et=et.replace(/\[]$/,""),!_e){rt[et]=tt;return}if(rt[et]===void 0){rt[et]=[tt];return}rt[et]=[...rt[et],tt]};case"colon-list-separator":return(et,tt,rt)=>{if(_e=/(:list)$/.exec(et),et=et.replace(/:list$/,""),!_e){rt[et]=tt;return}if(rt[et]===void 0){rt[et]=[tt];return}rt[et]=[...rt[et],tt]};case"comma":case"separator":return(et,tt,rt)=>{const nt=typeof tt=="string"&&tt.includes(j.arrayFormatSeparator),ot=typeof tt=="string"&&!nt&&decode(tt,j).includes(j.arrayFormatSeparator);tt=ot?decode(tt,j):tt;const it=nt||ot?tt.split(j.arrayFormatSeparator).map(st=>decode(st,j)):tt===null?tt:decode(tt,j);rt[et]=it};case"bracket-separator":return(et,tt,rt)=>{const nt=/(\[])$/.test(et);if(et=et.replace(/\[]$/,""),!nt){rt[et]=tt&&decode(tt,j);return}const ot=tt===null?[]:tt.split(j.arrayFormatSeparator).map(it=>decode(it,j));if(rt[et]===void 0){rt[et]=ot;return}rt[et]=[...rt[et],...ot]};default:return(et,tt,rt)=>{if(rt[et]===void 0){rt[et]=tt;return}rt[et]=[...[rt[et]].flat(),tt]}}}function validateArrayFormatSeparator(j){if(typeof j!="string"||j.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function encode(j,_e){return _e.encode?_e.strict?strictUriEncode(j):encodeURIComponent(j):j}function decode(j,_e){return _e.decode?decodeUriComponent(j):j}function keysSorter(j){return Array.isArray(j)?j.sort():typeof j=="object"?keysSorter(Object.keys(j)).sort((_e,et)=>Number(_e)-Number(et)).map(_e=>j[_e]):j}function removeHash(j){const _e=j.indexOf("#");return _e!==-1&&(j=j.slice(0,_e)),j}function getHash(j){let _e="";const et=j.indexOf("#");return et!==-1&&(_e=j.slice(et)),_e}function parseValue(j,_e){return _e.parseNumbers&&!Number.isNaN(Number(j))&&typeof j=="string"&&j.trim()!==""?j=Number(j):_e.parseBooleans&&j!==null&&(j.toLowerCase()==="true"||j.toLowerCase()==="false")&&(j=j.toLowerCase()==="true"),j}function extract(j){j=removeHash(j);const _e=j.indexOf("?");return _e===-1?"":j.slice(_e+1)}function parse(j,_e){_e={decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1,..._e},validateArrayFormatSeparator(_e.arrayFormatSeparator);const et=parserForArrayFormat(_e),tt=Object.create(null);if(typeof j!="string"||(j=j.trim().replace(/^[?#&]/,""),!j))return tt;for(const rt of j.split("&")){if(rt==="")continue;const nt=_e.decode?rt.replaceAll("+"," "):rt;let[ot,it]=splitOnFirst(nt,"=");ot===void 0&&(ot=nt),it=it===void 0?null:["comma","separator","bracket-separator"].includes(_e.arrayFormat)?it:decode(it,_e),et(decode(ot,_e),it,tt)}for(const[rt,nt]of Object.entries(tt))if(typeof nt=="object"&&nt!==null)for(const[ot,it]of Object.entries(nt))nt[ot]=parseValue(it,_e);else tt[rt]=parseValue(nt,_e);return _e.sort===!1?tt:(_e.sort===!0?Object.keys(tt).sort():Object.keys(tt).sort(_e.sort)).reduce((rt,nt)=>{const ot=tt[nt];return rt[nt]=ot&&typeof ot=="object"&&!Array.isArray(ot)?keysSorter(ot):ot,rt},Object.create(null))}function stringify(j,_e){if(!j)return"";_e={encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:",",..._e},validateArrayFormatSeparator(_e.arrayFormatSeparator);const et=ot=>_e.skipNull&&isNullOrUndefined(j[ot])||_e.skipEmptyString&&j[ot]==="",tt=encoderForArrayFormat(_e),rt={};for(const[ot,it]of Object.entries(j))et(ot)||(rt[ot]=it);const nt=Object.keys(rt);return _e.sort!==!1&&nt.sort(_e.sort),nt.map(ot=>{const it=j[ot];return it===void 0?"":it===null?encode(ot,_e):Array.isArray(it)?it.length===0&&_e.arrayFormat==="bracket-separator"?encode(ot,_e)+"[]":it.reduce(tt(ot),[]).join("&"):encode(ot,_e)+"="+encode(it,_e)}).filter(ot=>ot.length>0).join("&")}function parseUrl(j,_e){var rt;_e={decode:!0,..._e};let[et,tt]=splitOnFirst(j,"#");return et===void 0&&(et=j),{url:((rt=et==null?void 0:et.split("?"))==null?void 0:rt[0])??"",query:parse(extract(j),_e),..._e&&_e.parseFragmentIdentifier&&tt?{fragmentIdentifier:decode(tt,_e)}:{}}}function stringifyUrl(j,_e){_e={encode:!0,strict:!0,[encodeFragmentIdentifier]:!0,..._e};const et=removeHash(j.url).split("?")[0]||"",tt=extract(j.url),rt={...parse(tt,{sort:!1}),...j.query};let nt=stringify(rt,_e);nt&&(nt=`?${nt}`);let ot=getHash(j.url);if(typeof j.fragmentIdentifier=="string"){const it=new URL(et);it.hash=j.fragmentIdentifier,ot=_e[encodeFragmentIdentifier]?it.hash:`#${j.fragmentIdentifier}`}return`${et}${nt}${ot}`}function pick(j,_e,et){et={parseFragmentIdentifier:!0,[encodeFragmentIdentifier]:!1,...et};const{url:tt,query:rt,fragmentIdentifier:nt}=parseUrl(j,et);return stringifyUrl({url:tt,query:includeKeys(rt,_e),fragmentIdentifier:nt},et)}function exclude(j,_e,et){const tt=Array.isArray(_e)?rt=>!_e.includes(rt):(rt,nt)=>!_e(rt,nt);return pick(j,tt,et)}const queryString=Object.freeze(Object.defineProperty({__proto__:null,exclude,extract,parse,parseUrl,pick,stringify,stringifyUrl},Symbol.toStringTag,{value:"Module"}));function useHashObject(){const[j,_e]=reactExports.useState(()=>queryString.parse(window.location.hash.substring(1))),et=reactExports.useCallback(tt=>{_e(rt=>{const nt={...rt,...tt},ot=queryString.stringify(nt);return window.location.hash=ot,nt})},[]);return reactExports.useEffect(()=>{const tt=()=>{_e(queryString.parse(window.location.hash.substring(1)))};return window.addEventListener("hashchange",tt),()=>window.removeEventListener("hashchange",tt)},[]),[j,et]}function genLocalUrlParamsWithHash(j){return isNotNullOrUndefined(j)?isNotNullOrUndefined(j.session)?`session=${j.session}`:isNotNullOrUndefined(j.experiment)?`experiment=${j.experiment}`:isNotNullOrUndefined(j.run)?`run=${j.run}`:isNotNullOrUndefined(j.trace)?`trace_ids=${j.trace}`:"":""}function isNotNullOrUndefined(j){return j!=null}const getSummariesSignature=j=>j.flatMap(tt=>[`${tt.line_run_id}_${tt.status}`,...Object.values(tt.evaluations??[]).map(rt=>`${rt.trace_id}_${rt.status}`)]).sort().join(","),useLocalFetchSummaries=(j,_e,et)=>{const[tt,rt]=reactExports.useState(!0),nt=useLocalFetchSummariesFunc(j,_e);reactExports.useEffect(()=>{tt&&j.setTraceListStatus(ViewStatus.loading),nt().finally(()=>{tt&&(rt(!1),j.setTraceListStatus(ViewStatus.loaded))});let ot;return et&&(ot=setInterval(nt,TRACE_POLLING_GAP)),()=>{ot&&clearInterval(ot)}},[_e,et])},useLocalFetchSummary=j=>reactExports.useCallback(async et=>fetch(`${LOCAL_URL_PREFIX}/v1.0/LineRuns/list?trace_ids=${et}`).then(tt=>tt.json()).then(tt=>{tt&&(j.appendTraces([tt]),j.setTraceListStatus(ViewStatus.loaded))}).catch(tt=>{j.setTraceListStatus(ViewStatus.error),j.appendTraces([]),console.error("Error:",tt)}),[j]),useLocalFetchSummariesFunc=(j,_e)=>{const[et,tt]=reactExports.useState(void 0);return async()=>{const nt=genLocalUrlParamsWithHash(_e),ot=nt!==""?`?${nt}`:"";return fetch(`${LOCAL_URL_PREFIX}/v1.0/LineRuns/list${ot}`).then(it=>it.json()).then(it=>{if(!it&&Array.isArray(it))throw new Error("No new traces");const st=getSummariesSignature(it);(et===void 0||st!==et)&&(tt(st),j.traces$.clear(),j.appendTraces(it))}).catch(it=>{j.setTraceListStatus(ViewStatus.error),j.appendTraces([]),console.error("Error:",it)})}},useLocalRefreshTraces=(j,_e)=>{const et=useLocalFetchSummariesFunc(j,_e);return reactExports.useCallback(()=>{j.setTraceListStatus(ViewStatus.loading),et().then(()=>{j.setTraceListStatus(ViewStatus.loaded)})},[et,j])},useLocalTraceDetailDidOpen=(j,_e)=>{const et=useLocalFetchSummary(j);return reactExports.useCallback(async rt=>{if(!rt)return;let nt=j.getTraceById(rt);nt||(await et(rt),nt=j.getTraceById(rt));const ot=[rt,...Object.values((nt==null?void 0:nt.evaluations)??[]).map(it=>it.trace_id)].filter(it=>it!==void 0);_e({uiTraceId:rt}),j.setTraceDetailStatus(ViewStatus.loading),fetchLocalSpans(ot,j)},[j])},useLocalOnTraceDetailClose=j=>reactExports.useCallback(()=>{j({uiTraceId:void 0})},[j]),fetchLocalSpans=(j,_e)=>{fetch(`${LOCAL_URL_PREFIX}/v1.0/Spans/list?trace_ids=${j.join(",")}`).then(et=>et.json()).then(et=>{_e.appendSpans(et),_e.setTraceDetailStatus(ViewStatus.loaded)}).catch(et=>{console.error("Error:",et),_e.setTraceDetailStatus(ViewStatus.error)})},useLocalOnRefreshSpans=j=>{const _e=useLocalFetchSummary(j);return reactExports.useCallback((tt,rt)=>{const nt=[tt,...Object.values((rt==null?void 0:rt.evaluations)??[]).map(ot=>ot.trace_id)].filter(ot=>ot!==void 0);_e(tt),fetchLocalSpans(nt,j)},[_e,j])},LocalCommonHeader=({isStreaming:j,onIsStreamingChange:_e,streamLabelName:et,showRefresh:tt=!1})=>{const rt=useClasses$2(),nt=useLocStrings(),ot=useTraceViewModel();return jsxRuntimeExports.jsxs("div",{className:rt.wrapper,children:[jsxRuntimeExports.jsx("div",{className:rt.main}),tt&&jsxRuntimeExports.jsx(Tooltip$1,{content:nt["Refresh Data"],relationship:"description",children:jsxRuntimeExports.jsx(Button$2,{appearance:"subtle","aria-label":"Refresh",icon:jsxRuntimeExports.jsx(ArrowClockwise16Regular,{}),onClick:()=>ot.refreshTraces()})}),jsxRuntimeExports.jsx(StreamSwitcher,{isStreaming:j,onIsStreamingChange:_e,labelName:et})]})},useClasses$2=makeStyles({wrapper:{display:"flex",...shorthands.padding(tokens.spacingVerticalXXS,tokens.spacingHorizontalL)},main:{...shorthands.flex(1)}}),LocalTraceView=j=>{const{viewModel:_e,isDark:et}=j;return jsxRuntimeExports.jsx(TraceViewWrapper,{viewModel:_e,isDark:et,children:jsxRuntimeExports.jsx(TraceViewContent,{...j})})},TraceViewContent=({viewModel:j,isStreaming:_e,onIsStreamingChange:et})=>{const tt=useClasses$1(),rt=useIsTraceDetailOpen(),nt=useSetIsTraceDetailOpen(),[ot,it]=React.useState(!1),[st,lt]=React.useState(!1),ut=useSelectedTrace(),ct=useLocalFetchSummary(j);return reactExports.useEffect(()=>{let dt;return ot&&rt&&ut&&st&&(dt=setInterval(()=>{const ft=[ut==null?void 0:ut.trace_id,...Object.values((ut==null?void 0:ut.evaluations)??[]).map(pt=>pt.trace_id)].filter(pt=>pt!==void 0);fetchLocalSpans(ft,j),ut.trace_id&&ct(ut.trace_id)},SPAN_POLLING_GAP)),()=>{dt&&clearInterval(dt)}},[st,ut,rt,j,ot,ct]),reactExports.useEffect(()=>{rt&&ut&&(checkStatus(ut.status,"Running")?it(!0):it(!1))},[ct,rt,ut]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:tt.wrapper,children:[jsxRuntimeExports.jsx(LocalCommonHeader,{isStreaming:_e,onIsStreamingChange:et,showRefresh:!0}),jsxRuntimeExports.jsx(TraceFilter,{}),jsxRuntimeExports.jsx(TraceList,{className:tt.grid,onRowClick:()=>{nt(!0)}})]}),jsxRuntimeExports.jsx(DefaultDetailContainer,{isOpen:rt,setIsOpen:nt,header:jsxRuntimeExports.jsx(DefaultDetailHeader,{setIsTraceDetailOpen:nt,viewModel:j,showStreamSwitch:ot,isStreaming:st,onIsStreamingChange:lt}),content:jsxRuntimeExports.jsx(TraceDetail,{})})]})},useClasses$1=makeStyles({header:{display:"flex",width:"100%"},wrapper:{display:"flex",flexDirection:"column",height:"100%"},divider:{flexGrow:0,...shorthands.margin("16px",0)},grid:{flexGrow:1}});var define_import_meta_env_default={BASE_URL:"/v1.0/ui/traces/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};window.TraceView_Version=define_import_meta_env_default.VITE_TRACE_VIEW_BUILD_VERSION;const TraceViewApp=()=>{const[j,_e]=useHashObject(),[et,tt]=reactExports.useState(!1),rt=useClasses(),nt=useDarkMode(),ot=React.useMemo(()=>new TraceViewModel,[]),it=useLocalTraceDetailDidOpen(ot,_e),st=useLocalOnTraceDetailClose(_e),lt=useLocalRefreshTraces(ot,j),ut=useLocalOnRefreshSpans(ot);return useLocalFetchSummaries(ot,j,et),reactExports.useEffect(()=>{ot.traceDetailDidOpen(it),ot.traceDetailDidClose(st),ot.setOnRefreshTraces(lt),ot.onRefreshSpans(ut),isNotNullOrUndefined(j.uiTraceId)&&ot.setTraceDetailOpen(!0,j.uiTraceId)},[ot,j.uiTraceId]),jsxRuntimeExports.jsxs(FluentProvider,{theme:nt?webDarkTheme:webLightTheme,style:{height:"100%",width:"100%"},children:[jsxRuntimeExports.jsx("style",{dangerouslySetInnerHTML:{__html:` html, body { height: 100%; diff --git a/src/promptflow/promptflow/_sdk/_service/static/index.html b/src/promptflow/promptflow/_sdk/_service/static/index.html index 1aa14f0e7c3..9e6f76a00a5 100644 --- a/src/promptflow/promptflow/_sdk/_service/static/index.html +++ b/src/promptflow/promptflow/_sdk/_service/static/index.html @@ -5,7 +5,7 @@ Trace View - + diff --git a/src/promptflow/promptflow/_sdk/entities/_trace.py b/src/promptflow/promptflow/_sdk/entities/_trace.py index 953827cf38c..4911ae8a7c5 100644 --- a/src/promptflow/promptflow/_sdk/entities/_trace.py +++ b/src/promptflow/promptflow/_sdk/entities/_trace.py @@ -310,7 +310,11 @@ def _generate_line_run_placeholder(spans: typing.List[Span]) -> "LineRun": ) @staticmethod - def _from_spans(spans: typing.List[Span], run: typing.Optional[str] = None) -> typing.Optional["LineRun"]: + def _from_spans( + spans: typing.List[Span], + run: typing.Optional[str] = None, + trace_id: typing.Optional[str] = None, + ) -> typing.Optional["LineRun"]: main_line_run_data: _LineRunData = None evaluations = dict() for span in spans: @@ -326,6 +330,12 @@ def _from_spans(spans: typing.List[Span], run: typing.Optional[str] = None) -> t main_line_run_data = line_run_data else: evaluations[span.name] = line_run_data + elif trace_id is not None: + # `trace_id` is specified, if matched, this should be the main line run + if trace_id == span.trace_id: + main_line_run_data = line_run_data + else: + evaluations[span.name] = line_run_data else: if ( SpanAttributeFieldName.REFERENCED_LINE_RUN_ID in attributes diff --git a/src/promptflow/promptflow/_sdk/operations/_trace_operations.py b/src/promptflow/promptflow/_sdk/operations/_trace_operations.py index c94b9b41bba..a9e3493dd0c 100644 --- a/src/promptflow/promptflow/_sdk/operations/_trace_operations.py +++ b/src/promptflow/promptflow/_sdk/operations/_trace_operations.py @@ -29,7 +29,10 @@ def list_spans( def get_line_run(self, line_run_id: str) -> LineRun: orm_spans = ORMLineRun.get_line_run(line_run_id=line_run_id) - line_run = LineRun._from_spans([Span._from_orm_object(orm_span) for orm_span in orm_spans]) + line_run = LineRun._from_spans( + spans=[Span._from_orm_object(orm_span) for orm_span in orm_spans], + trace_id=line_run_id, + ) return line_run def list_line_runs( diff --git a/src/promptflow/tests/sdk_pfs_test/e2etests/test_trace.py b/src/promptflow/tests/sdk_pfs_test/e2etests/test_trace.py index 47c0ab6d897..06585384299 100644 --- a/src/promptflow/tests/sdk_pfs_test/e2etests/test_trace.py +++ b/src/promptflow/tests/sdk_pfs_test/e2etests/test_trace.py @@ -31,7 +31,7 @@ def persist_a_span( session_id: str, custom_attributes: typing.Optional[typing.Dict] = None, parent_span_id: typing.Optional[str] = None, -) -> None: +) -> Span: if custom_attributes is None: custom_attributes = {} span = Span( @@ -65,7 +65,7 @@ def persist_a_span( if parent_span_id is not None: span.parent_span_id = parent_span_id span._persist() - return + return span # flask-restx uses marshmallow before response, so we do need this test class to execute end-to-end test @@ -146,6 +146,18 @@ def test_list_evaluation_line_runs(self, pfs_op: PFSOperations, mock_session_id: line_runs = pfs_op.list_line_runs(runs=[mock_batch_run_id]).json assert len(line_runs) == 1 + def test_list_eval_line_run_with_trace_id(self, pfs_op: PFSOperations, mock_session_id: str) -> None: + mock_batch_run = str(uuid.uuid4()) + mock_ref_batch_run = str(uuid.uuid4()) + batch_run_attrs = { + SpanAttributeFieldName.BATCH_RUN_ID: mock_batch_run, + SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID: mock_ref_batch_run, + SpanAttributeFieldName.LINE_NUMBER: "0", + } + span = persist_a_span(session_id=mock_session_id, custom_attributes=batch_run_attrs) + line_runs = pfs_op.list_line_runs(trace_ids=[span.trace_id]).json + assert len(line_runs) == 1 + def test_list_running_line_run(self, pfs_op: PFSOperations, mock_session_id: str) -> None: mock_batch_run_id = str(uuid.uuid4()) mock_parent_span_id = str(uuid.uuid4()) diff --git a/src/promptflow/tests/sdk_pfs_test/utils.py b/src/promptflow/tests/sdk_pfs_test/utils.py index 7ebfb202216..c3061c37c24 100644 --- a/src/promptflow/tests/sdk_pfs_test/utils.py +++ b/src/promptflow/tests/sdk_pfs_test/utils.py @@ -232,12 +232,20 @@ def create_telemetry(self, *, body, headers, status_code=None): # trace APIs # LineRuns - def list_line_runs(self, *, session_id: Optional[str] = None, runs: Optional[List[str]] = None): + def list_line_runs( + self, + *, + session_id: Optional[str] = None, + runs: Optional[List[str]] = None, + trace_ids: Optional[List[str]] = None, + ): query_string = {} if session_id is not None: query_string["session"] = session_id if runs is not None: query_string["run"] = ",".join(runs) + if trace_ids is not None: + query_string["trace_ids"] = ",".join(trace_ids) response = self._client.get( f"{self.LINE_RUNS_PREFIX}/list", query_string=query_string, From 858b6b3598dda897aac079a952e71d07689e20be Mon Sep 17 00:00:00 2001 From: chw-microsoft <95913588+chw-microsoft@users.noreply.github.com> Date: Thu, 14 Mar 2024 10:36:23 +0800 Subject: [PATCH 046/204] Fixing the recording mode error + fixing the assistant tests (#2341) # Description 1) Fixing the recording mode enable conditional error 2) Fix a flaky test # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .github/workflows/promptflow-executor-e2e-test.yml | 2 +- .github/workflows/promptflow-executor-unit-test.yml | 2 +- src/promptflow/tests/executor/e2etests/test_assistant.py | 2 -- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/promptflow-executor-e2e-test.yml b/.github/workflows/promptflow-executor-e2e-test.yml index 93cb0cea278..369638389a5 100644 --- a/.github/workflows/promptflow-executor-e2e-test.yml +++ b/.github/workflows/promptflow-executor-e2e-test.yml @@ -79,7 +79,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Set test mode - run: echo "PROMPT_FLOW_TEST_MODE=$(if [[ "${{ github.event_name }}" == "pull_request" ]]; then echo replay; else echo live; fi)" >> $GITHUB_ENV + run: echo "PROMPT_FLOW_TEST_MODE=$(if [[ "${{ github.event_name }}" == "pull_request_target" ]]; then echo replay; else echo live; fi)" >> $GITHUB_ENV - name: checkout uses: actions/checkout@v4 with: diff --git a/.github/workflows/promptflow-executor-unit-test.yml b/.github/workflows/promptflow-executor-unit-test.yml index c2aeedb1f0b..7b7d705c282 100644 --- a/.github/workflows/promptflow-executor-unit-test.yml +++ b/.github/workflows/promptflow-executor-unit-test.yml @@ -79,7 +79,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Set test mode - run: echo "PROMPT_FLOW_TEST_MODE=$(if [[ "${{ github.event_name }}" == "pull_request" ]]; then echo replay; else echo live; fi)" >> $GITHUB_ENV + run: echo "PROMPT_FLOW_TEST_MODE=$(if [[ "${{ github.event_name }}" == "pull_request_target" ]]; then echo replay; else echo live; fi)" >> $GITHUB_ENV - name: checkout uses: actions/checkout@v4 with: diff --git a/src/promptflow/tests/executor/e2etests/test_assistant.py b/src/promptflow/tests/executor/e2etests/test_assistant.py index 5f947a9325d..5a32fd16414 100644 --- a/src/promptflow/tests/executor/e2etests/test_assistant.py +++ b/src/promptflow/tests/executor/e2etests/test_assistant.py @@ -24,8 +24,6 @@ def test_assistant_tool_with_connection(self, flow_folder, line_input, dev_conne assert flow_result.run_info.status == Status.Completed assert len(flow_result.output["answer"]["content"]) == 1 assert flow_result.output["answer"]["content"][0]["type"] == "text" - name = line_input["name"] - assert f"Thanks for your help, {name}!" == flow_result.output["answer"]["content"][0]["text"]["value"] assert flow_result.output["thread_id"] @pytest.mark.parametrize( From 13ae5c2957654455be8b19bd1e3a3d02df14d633 Mon Sep 17 00:00:00 2001 From: Ying Chen Date: Thu, 14 Mar 2024 11:23:52 +0800 Subject: [PATCH 047/204] Fix pfs stop takes long time even pfs is not started (#2257) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Ying Chen <2601502859@qq.com> --- .../promptflow/_sdk/_service/app.py | 30 ++++++++------- .../promptflow/_sdk/_service/entry.py | 27 +++++++++++--- .../promptflow/_sdk/_service/utils/utils.py | 37 +++++++++++++------ .../tests/sdk_pfs_test/e2etests/test_cli.py | 10 ++--- 4 files changed, 69 insertions(+), 35 deletions(-) diff --git a/src/promptflow/promptflow/_sdk/_service/app.py b/src/promptflow/promptflow/_sdk/_service/app.py index e706dd8ab92..f72079039bd 100644 --- a/src/promptflow/promptflow/_sdk/_service/app.py +++ b/src/promptflow/promptflow/_sdk/_service/app.py @@ -111,9 +111,9 @@ def log_before_request_info(): else: request_body = request.get_data() + app.logger.info("Request coming in: %s", request.url) app.logger.debug( - "Last request time: %s, Headers: %s, Body: %s", - app.config["last_request_time"], + "Headers: %s, Body: %s", request.headers, request_body, ) @@ -129,17 +129,21 @@ def log_after_request_info(response): # Start a monitor process using detach mode. It will stop pfs service if no request to pfs service in 1h in # python scenario. For C# scenario, pfs will live until the process is killed manually. def monitor_request(): - while True: - time.sleep(PF_SERVICE_MONITOR_SECOND) - if "last_request_time" in app.config and datetime.now() - app.config["last_request_time"] > timedelta( - hours=PF_SERVICE_HOUR_TIMEOUT - ): - # Todo: check if we have any not complete work? like persist all traces. - port = get_port_from_config() - if port: - app.logger.info(f"Try auto stop pfs service in port {port} since no request to app within 1h") - kill_exist_service(port) - break + with app.app_context(): + while True: + time.sleep(PF_SERVICE_MONITOR_SECOND) + if "last_request_time" in app.config and datetime.now() - app.config[ + "last_request_time" + ] > timedelta(hours=PF_SERVICE_HOUR_TIMEOUT): + # Todo: check if we have any not complete work? like persist all traces. + app.logger.warning(f"Last http request time: {app.config['last_request_time']} was made 1h ago") + port = get_port_from_config() + if port: + app.logger.info( + f"Try auto stop pfs service in port {port} since no request to app within 1h" + ) + kill_exist_service(port) + break if not is_run_from_built_binary(): monitor_thread = ThreadWithContextVars(target=monitor_request, daemon=True) diff --git a/src/promptflow/promptflow/_sdk/_service/entry.py b/src/promptflow/promptflow/_sdk/_service/entry.py index 564480a634d..9d1d6124435 100644 --- a/src/promptflow/promptflow/_sdk/_service/entry.py +++ b/src/promptflow/promptflow/_sdk/_service/entry.py @@ -13,7 +13,7 @@ from promptflow._cli._utils import _get_cli_activity_name, cli_exception_and_telemetry_handler from promptflow._constants import PF_NO_INTERACTIVE_LOGIN -from promptflow._sdk._constants import LOGGER_NAME, PF_SERVICE_DEBUG, PF_SERVICE_WORKER_NUM +from promptflow._sdk._constants import PF_SERVICE_DEBUG, PF_SERVICE_WORKER_NUM from promptflow._sdk._service.app import create_app from promptflow._sdk._service.utils.utils import ( check_pfs_service_status, @@ -69,6 +69,12 @@ def add_stop_service_action(subparsers): description="Stop promptflow service.", help="pfs stop", ) + stop_pfs_parser.add_argument( + "-d", + "--debug", + action="store_true", + help="The flag to turn on debug mode for pfs.", + ) stop_pfs_parser.set_defaults(action="stop") @@ -113,7 +119,7 @@ def validate_port(port, force_start): app.logger.setLevel(logging.DEBUG) else: app.logger.setLevel(logging.INFO) - print(f"Start Prompt Flow Service on http://localhost:{port}, version: {get_promptflow_sdk_version()}") + app.logger.info(f"Start Prompt Flow Service on {port}, version: {get_promptflow_sdk_version()}") waitress.serve(app, host="127.0.0.1", port=port, threads=PF_SERVICE_WORKER_NUM) else: # Start a pfs process using detach mode. It will start a new process and create a new app. So we use environment @@ -161,16 +167,22 @@ def validate_port(port, force_start): subprocess.Popen(cmd, stdout=subprocess.DEVNULL, start_new_session=True) is_healthy = check_pfs_service_status(port) if is_healthy: - print(f"Start Prompt Flow Service on http://localhost:{port}, version: {get_promptflow_sdk_version()}") + message = f"Start Prompt Flow Service on {port}, version: {get_promptflow_sdk_version()}" + print(message) + logger.info(message) else: logger.warning(f"Pfs service start failed in {port}.") def stop_service(): port = get_port_from_config() - if port is not None: + if port is not None and is_port_in_use(port): kill_exist_service(port) - print(f"Pfs service stop in {port}.") + message = f"Pfs service stop in {port}." + else: + message = "Pfs service is not started." + logger.debug(message) + print(message) def main(): @@ -205,6 +217,10 @@ def entry(command_args): def run_command(args): + # --debug, enable debug logging + if hasattr(args, "debug") and args.debug: + for handler in logger.handlers: + handler.setLevel(logging.DEBUG) if args.version: print_pf_version() return @@ -215,7 +231,6 @@ def run_command(args): print(status) return else: - logger = logging.getLogger(LOGGER_NAME) logger.warning("Promptflow service is not started.") sys.exit(1) elif args.action == "start": diff --git a/src/promptflow/promptflow/_sdk/_service/utils/utils.py b/src/promptflow/promptflow/_sdk/_service/utils/utils.py index 5e8d0a25e24..2e01e57e27e 100644 --- a/src/promptflow/promptflow/_sdk/_service/utils/utils.py +++ b/src/promptflow/promptflow/_sdk/_service/utils/utils.py @@ -4,8 +4,10 @@ import getpass import hashlib import os +import platform import re import socket +import subprocess import sys import time from dataclasses import InitVar, dataclass, field @@ -96,6 +98,9 @@ def dump_port_to_config(port): def is_port_in_use(port: int): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + # OS will wait for timeout when connecting to an unused port, so it will take about 2s. Set timeout here to + # avoid long waiting time + s.settimeout(0.1) return s.connect_ex(("localhost", port)) == 0 @@ -106,13 +111,24 @@ def get_random_port(): def _get_process_by_port(port): - for proc in psutil.process_iter(["pid", "connections", "create_time"]): - try: - for connection in proc.connections(): - if connection.laddr.port == port: - return proc - except psutil.AccessDenied: - pass + if platform.system() == "Windows": + command = f"netstat -ano | findstr :{port}" + result = subprocess.run(command, shell=True, capture_output=True, text=True) + if result.returncode == 0: + output = result.stdout.strip() + lines = output.split("\n") + for line in lines: + if "LISTENING" in line: + pid = line.split()[-1] # get the PID + return psutil.Process(int(pid)) + else: # Linux and macOS + command = f"lsof -i :{port} -sTCP:LISTEN | awk 'NR>1 {{print $2}}'" + result = subprocess.run(command, shell=True, capture_output=True, text=True) + if result.returncode == 0: + output = result.stdout.strip() + pid = output.split("\n")[0] # get the first PID + if pid != "": + return psutil.Process(int(pid)) def kill_exist_service(port): @@ -126,7 +142,7 @@ def get_started_service_info(port): service_info = {} proc = _get_process_by_port(port) if proc: - create_time = proc.info["create_time"] + create_time = proc.create_time() process_uptime = datetime.now() - datetime.fromtimestamp(create_time) service_info["create_time"] = str(datetime.fromtimestamp(create_time)) service_info["uptime"] = str(process_uptime) @@ -159,9 +175,8 @@ def is_pfs_service_healthy(pfs_port) -> bool: return is_healthy except Exception: # pylint: disable=broad-except pass - logger.warning( - f"Promptflow service can't be reached through port {pfs_port}, will try to start/force restart " - f"promptflow service." + logger.debug( + f"Promptflow service can't be reached through port {pfs_port}, will try to (force) start promptflow service." ) return False diff --git a/src/promptflow/tests/sdk_pfs_test/e2etests/test_cli.py b/src/promptflow/tests/sdk_pfs_test/e2etests/test_cli.py index 8d605e2c611..48a2d189695 100644 --- a/src/promptflow/tests/sdk_pfs_test/e2etests/test_cli.py +++ b/src/promptflow/tests/sdk_pfs_test/e2etests/test_cli.py @@ -4,7 +4,6 @@ import subprocess import sys -from time import sleep import pytest import requests @@ -64,12 +63,13 @@ def test_start_service(self): def test_show_service_status(self, capsys): with pytest.raises(SystemExit): self._run_pfs_command("show-status") - start_pfs = subprocess.Popen("pfs start", shell=True) # Wait for service to be started - sleep(5) + start_pfs.wait() + assert self._is_service_healthy() self._run_pfs_command("show-status") output, _ = capsys.readouterr() assert str(get_port_from_config()) in output - start_pfs.terminate() - start_pfs.wait(10) + self._run_pfs_command("stop") + output, _ = capsys.readouterr() + assert str(get_port_from_config()) in output From 9cc11fa0cea88bbda25df43f193e5fb7a6465f55 Mon Sep 17 00:00:00 2001 From: Min Shi <39176492+Jasmin3q@users.noreply.github.com> Date: Thu, 14 Mar 2024 11:56:51 +0800 Subject: [PATCH 048/204] [Executor] Change root_run_id and parent_run_id in resume previous result (#2292) # Description Currently, the resume run with image have problem in showing the image from previous run result on azure. Because the UI find the image base on the root_run_id, the resumed image with previous root_run_id will not show. In this PR, we update the resumed result with the new root_run_id and parent_run_id to prevent the problem above. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [x] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Min Shi --- .../promptflow/batch/_batch_engine.py | 9 ++++++- .../executor/e2etests/test_batch_engine.py | 25 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/promptflow/promptflow/batch/_batch_engine.py b/src/promptflow/promptflow/batch/_batch_engine.py index 439ffc52c0e..09cefec9098 100644 --- a/src/promptflow/promptflow/batch/_batch_engine.py +++ b/src/promptflow/promptflow/batch/_batch_engine.py @@ -194,10 +194,12 @@ def run( # resolve output dir output_dir = resolve_dir_to_absolute(self._working_dir, output_dir) + run_id = run_id or str(uuid.uuid4()) + previous_run_results = None if resume_from_run_storage and resume_from_run_output_dir: previous_run_results = self._copy_previous_run_result( - resume_from_run_storage, resume_from_run_output_dir, batch_inputs, output_dir + resume_from_run_storage, resume_from_run_output_dir, batch_inputs, output_dir, run_id ) # run flow in batch mode @@ -232,6 +234,7 @@ def _copy_previous_run_result( resume_from_run_output_dir: Path, batch_inputs: List, output_dir: Path, + run_id: str, ) -> List[LineResult]: """Duplicate the previous debug_info from resume_from_run_storage and output from resume_from_run_output_dir to the storage of new run, @@ -243,6 +246,10 @@ def _copy_previous_run_result( previous_run_info: FlowRunInfo = resume_from_run_storage.load_flow_run_info(i) if previous_run_info and previous_run_info.status == Status.Completed: + # UI uses root_run_id to link the base path in datastore with the run_info of line. + # Thus the root_run_id needs to be the current batch run id. + previous_run_info.root_run_id = run_id + previous_run_info.parent_run_id = run_id # Load previous node run info previous_node_run_infos = resume_from_run_storage.load_node_run_info_for_line(i) previous_node_run_infos_dict = {node_run.node: node_run for node_run in previous_node_run_infos} diff --git a/src/promptflow/tests/executor/e2etests/test_batch_engine.py b/src/promptflow/tests/executor/e2etests/test_batch_engine.py index 0617105f6b1..c73e50e5964 100644 --- a/src/promptflow/tests/executor/e2etests/test_batch_engine.py +++ b/src/promptflow/tests/executor/e2etests/test_batch_engine.py @@ -1,4 +1,5 @@ import asyncio +import glob import multiprocessing import os import traceback @@ -423,10 +424,12 @@ def test_batch_resume(self, flow_folder, resume_from_run_name, dev_connections): mock_resume_from_run = MockRun(resume_from_run_name, run_folder) resume_from_run_storage = LocalStorageOperations(mock_resume_from_run) resume_from_run_output_dir = resume_from_run_storage.outputs_folder + resume_run_id = mock_resume_from_run.name + "_resume" resume_run_batch_results = batch_engine.run( input_dirs, inputs_mapping, output_dir, + resume_run_id, resume_from_run_storage=resume_from_run_storage, resume_from_run_output_dir=resume_from_run_output_dir, ) @@ -435,6 +438,12 @@ def test_batch_resume(self, flow_folder, resume_from_run_name, dev_connections): assert resume_run_batch_results.total_lines == nlines assert resume_run_batch_results.completed_lines == nlines + jsonl_files = glob.glob(os.path.join(run_storage._run_infos_folder, "*.jsonl")) + for file_path in jsonl_files: + contents = load_jsonl(file_path) + for content in contents: + assert content["run_info"]["root_run_id"] == resume_run_id + @pytest.mark.parametrize( "flow_folder, resume_from_run_name", [("classification_accuracy_evaluation", "classification_accuracy_evaluation_default_20240208_152402_694000")], @@ -458,10 +467,12 @@ def test_batch_resume_aggregation(self, flow_folder, resume_from_run_name, dev_c mock_resume_from_run = MockRun(resume_from_run_name, run_folder) resume_from_run_storage = LocalStorageOperations(mock_resume_from_run) resume_from_run_output_dir = resume_from_run_storage.outputs_folder + resume_run_id = mock_resume_from_run.name + "_resume" resume_run_batch_results = batch_engine.run( input_dirs, inputs_mapping, output_dir, + resume_run_id, resume_from_run_storage=resume_from_run_storage, resume_from_run_output_dir=resume_from_run_output_dir, ) @@ -471,6 +482,12 @@ def test_batch_resume_aggregation(self, flow_folder, resume_from_run_name, dev_c assert resume_run_batch_results.completed_lines == nlines assert resume_run_batch_results.metrics == {"accuracy": 0.67} + jsonl_files = glob.glob(os.path.join(run_storage._run_infos_folder, "*.jsonl")) + for file_path in jsonl_files: + contents = load_jsonl(file_path) + for content in contents: + assert content["run_info"]["root_run_id"] == resume_run_id + @pytest.mark.parametrize( "flow_folder, resume_from_run_name", [("eval_flow_with_image_resume", "eval_flow_with_image_resume_default_20240305_111258_103000")], @@ -490,10 +507,12 @@ def test_batch_resume_aggregation_with_image(self, flow_folder, resume_from_run_ mock_resume_from_run = MockRun(resume_from_run_name, run_folder) resume_from_run_storage = LocalStorageOperations(mock_resume_from_run) resume_from_run_output_dir = resume_from_run_storage.outputs_folder + resume_run_id = mock_resume_from_run.name + "_resume" resume_run_batch_results = batch_engine.run( input_dirs, inputs_mapping, output_dir, + resume_run_id, resume_from_run_storage=resume_from_run_storage, resume_from_run_output_dir=resume_from_run_output_dir, ) @@ -502,3 +521,9 @@ def test_batch_resume_aggregation_with_image(self, flow_folder, resume_from_run_ assert resume_run_batch_results.total_lines == nlines assert resume_run_batch_results.completed_lines == nlines assert resume_run_batch_results.metrics == {"image_count": 3} + + jsonl_files = glob.glob(os.path.join(run_storage._run_infos_folder, "*.jsonl")) + for file_path in jsonl_files: + contents = load_jsonl(file_path) + for content in contents: + assert content["run_info"]["root_run_id"] == resume_run_id From 01e314e183085abe10d0e8e99a278056e0a4355a Mon Sep 17 00:00:00 2001 From: Donghui Zhang <95021229+doz-msft@users.noreply.github.com> Date: Thu, 14 Mar 2024 12:05:14 +0800 Subject: [PATCH 049/204] [Internal] Update Runtime change log for 20240306.v5 (#2337) # Description Update Runtime change log for 20240306.v5 # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- docs/cloud/azureai/runtime-change-log.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/cloud/azureai/runtime-change-log.md b/docs/cloud/azureai/runtime-change-log.md index 9013a396de0..22db26d5e9a 100644 --- a/docs/cloud/azureai/runtime-change-log.md +++ b/docs/cloud/azureai/runtime-change-log.md @@ -15,6 +15,16 @@ You can check the runtime image version from the flow execution log: ## Change log Default runtime image is continuously updated, and here we record the new features and fixed bugs of each image version. +### 20240306.v5 + +#### New features +- Support "seed" parameter for built-in LLM tools and GPT-4V tools. + +#### Bugs fixed +- Handle ClientAuthenticationError properly. +- Fix appending blob exceeded size limit error by truncating debug info. + + ### 20240228.v3 #### New features From d9eaa62e526254562a2c7f1e6a22208272dd6af9 Mon Sep 17 00:00:00 2001 From: Philip Gao Date: Thu, 14 Mar 2024 12:58:58 +0800 Subject: [PATCH 050/204] Create a core/_flow.py of middle layer of protected flows. (#2306) # Description Create a layer # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .github/actions/step_sdk_setup/action.yml | 28 +- scripts/docs/promptflow.core.rst | 12 + src/promptflow/promptflow/_constants.py | 6 + .../promptflow/_sdk/_load_functions.py | 6 +- src/promptflow/promptflow/_sdk/_pf_client.py | 4 +- .../_submitter/experiment_orchestrator.py | 4 +- .../_sdk/_submitter/run_submitter.py | 10 +- .../_sdk/_submitter/test_submitter.py | 12 +- .../promptflow/_sdk/_submitter/utils.py | 16 +- src/promptflow/promptflow/_sdk/_utils.py | 88 +--- .../promptflow/_sdk/entities/_eager_flow.py | 73 +-- .../promptflow/_sdk/entities/_flow.py | 336 +++----------- .../_sdk/operations/_flow_operations.py | 20 +- .../operations/_local_storage_operations.py | 4 +- .../azure/operations/_flow_operations.py | 8 +- src/promptflow/promptflow/core/__init__.py | 3 +- src/promptflow/promptflow/core/_connection.py | 8 +- src/promptflow/promptflow/core/_errors.py | 45 ++ src/promptflow/promptflow/core/_flow.py | 423 ++++++++++++++++++ .../_flow_context_resolver.py | 0 src/promptflow/promptflow/core/_utils.py | 121 +++++ src/promptflow/promptflow/exceptions.py | 1 + .../e2etests/test_flow_as_func.py | 16 +- .../tests/sdk_cli_test/unittests/test_flow.py | 10 +- .../tests/test_configs/notebooks/dummy.ipynb | 6 +- 25 files changed, 762 insertions(+), 498 deletions(-) create mode 100644 src/promptflow/promptflow/core/_errors.py create mode 100644 src/promptflow/promptflow/core/_flow.py rename src/promptflow/promptflow/{_sdk/operations => core}/_flow_context_resolver.py (100%) create mode 100644 src/promptflow/promptflow/core/_utils.py diff --git a/.github/actions/step_sdk_setup/action.yml b/.github/actions/step_sdk_setup/action.yml index a82ab436051..e12e803b84c 100644 --- a/.github/actions/step_sdk_setup/action.yml +++ b/.github/actions/step_sdk_setup/action.yml @@ -16,20 +16,6 @@ runs: shell: pwsh run: | pip uninstall -y promptflow promptflow-sdk promptflow-tools - - name: 'Build and install: promptflow with extra' - if: inputs.setupType == 'promptflow_with_extra' - shell: pwsh - run: | - Set-PSDebug -Trace 1 - pip install -r ./dev_requirements.txt - echo "########### pip list (Before) ###########" - pip list - python ./setup.py bdist_wheel - $package = Get-ChildItem ./dist | ? { $_.Name.Contains('.whl')} - pip install $($package.FullName + "[azure,executable,azureml-serving,executor-service]") - echo "########### pip freeze (After) ###########" - pip freeze - working-directory: ${{ inputs.scriptPath }} - name: 'Build and install: promptflow-sdk' if: inputs.setupType == 'promptflow_dev' shell: pwsh @@ -52,3 +38,17 @@ runs: echo "########### pip freeze (After) ###########" pip freeze working-directory: src/promptflow-tools + - name: 'Build and install: promptflow with extra' + if: inputs.setupType == 'promptflow_with_extra' + shell: pwsh + run: | + Set-PSDebug -Trace 1 + pip install -r ./dev_requirements.txt + echo "########### pip list (Before) ###########" + pip list + python ./setup.py bdist_wheel + $package = Get-ChildItem ./dist | ? { $_.Name.Contains('.whl')} + pip install --force-reinstall $($package.FullName + "[azure,executable,azureml-serving,executor-service]") + echo "########### pip freeze (After) ###########" + pip freeze + working-directory: ${{ inputs.scriptPath }} diff --git a/scripts/docs/promptflow.core.rst b/scripts/docs/promptflow.core.rst index 9d8068f4218..d31af1507ce 100644 --- a/scripts/docs/promptflow.core.rst +++ b/scripts/docs/promptflow.core.rst @@ -18,3 +18,15 @@ promptflow.core package :undoc-members: :show-inheritance: :noindex: + +.. autoclass:: promptflow.core.Flow + :members: + :undoc-members: + :show-inheritance: + :noindex: + +.. autoclass:: promptflow.core.AsyncFlow + :members: + :undoc-members: + :show-inheritance: + :noindex: \ No newline at end of file diff --git a/src/promptflow/promptflow/_constants.py b/src/promptflow/promptflow/_constants.py index bba94c0fa2e..2c50199bd21 100644 --- a/src/promptflow/promptflow/_constants.py +++ b/src/promptflow/promptflow/_constants.py @@ -22,6 +22,8 @@ LANGUAGE_KEY = "language" USER_AGENT_OVERRIDE_KEY = "user_agent_override" +DEFAULT_FLOW_YAML_FILE_NAME = "flow.dag.yaml" + # Tool meta info ICON_DARK = "icon_dark" ICON_LIGHT = "icon_light" @@ -32,6 +34,10 @@ PF_MAIN_MODULE_NAME = "__pf_main__" DEFAULT_ENCODING = "utf-8" +FLOW_META_JSON = "flow.json" +FLOW_META_JSON_GEN_TIMEOUT = 60 +PROMPT_FLOW_DIR_NAME = ".promptflow" +FLOW_TOOLS_JSON = "flow.tools.json" # Constants related to execution LINE_NUMBER_KEY = "line_number" # Using the same key with portal. diff --git a/src/promptflow/promptflow/_sdk/_load_functions.py b/src/promptflow/promptflow/_sdk/_load_functions.py index f4ebdc1a7ce..f428f11a47a 100644 --- a/src/promptflow/promptflow/_sdk/_load_functions.py +++ b/src/promptflow/promptflow/_sdk/_load_functions.py @@ -68,7 +68,6 @@ def load_common( def load_flow( source: Union[str, PathLike, IO[AnyStr]], - is_async_call: Optional[bool] = None, **kwargs, ) -> Flow: """Load flow from YAML file. @@ -77,13 +76,10 @@ def load_flow( If the source is a path, it will be open and read. An exception is raised if the file does not exist. :type source: Union[PathLike, str] - :param is_async_call: Optional argument to indicate the return value is an async function. - If True, the return value is an async function, otherwise, it is a sync function. - :type is_async_call: bool :return: A Flow object :rtype: Flow """ - return Flow.load(source, is_async_call=is_async_call, **kwargs) + return Flow.load(source, **kwargs) def load_run( diff --git a/src/promptflow/promptflow/_sdk/_pf_client.py b/src/promptflow/promptflow/_sdk/_pf_client.py index 0f1a8e3b7ad..4b2ac9df60b 100644 --- a/src/promptflow/promptflow/_sdk/_pf_client.py +++ b/src/promptflow/promptflow/_sdk/_pf_client.py @@ -15,7 +15,7 @@ from ._user_agent import USER_AGENT from ._utils import ClientUserAgentUtil, setup_user_agent_to_operation_context from .entities import Run -from .entities._eager_flow import EagerFlow +from .entities._eager_flow import FlexFlow from .operations import RunOperations from .operations._connection_operations import ConnectionOperations from .operations._experiment_operations import ExperimentOperations @@ -158,7 +158,7 @@ def run( # load flow object for validation and early failure flow_obj = load_flow(source=flow) # validate param conflicts - if isinstance(flow_obj, EagerFlow): + if isinstance(flow_obj, FlexFlow): if variant or connections: logger.warning("variant and connections are not supported for eager flow, will be ignored") variant, connections = None, None diff --git a/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py b/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py index bd2c71c3761..70f94033e22 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py +++ b/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py @@ -54,7 +54,7 @@ from promptflow._sdk._utils import overwrite_null_std_logger from promptflow._sdk.entities import Run from promptflow._sdk.entities._experiment import Experiment, ExperimentTemplate -from promptflow._sdk.entities._flow import ProtectedFlow +from promptflow._sdk.entities._flow import Flow from promptflow._sdk.operations import RunOperations from promptflow._sdk.operations._local_storage_operations import LocalStorageOperations from promptflow._utils.inputs_mapping_utils import apply_inputs_mapping @@ -102,7 +102,7 @@ def test( node for node in template.nodes if node.type == ExperimentNodeType.FLOW - and ProtectedFlow._get_flow_definition(node.path) == ProtectedFlow._get_flow_definition(flow_path) + and Flow._get_flow_definition(node.path) == Flow._get_flow_definition(flow_path) ] if not start_nodes: raise ExperimentValueError(f"Flow {flow_path.as_posix()} not found in experiment {template.dir_name!r}.") diff --git a/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py b/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py index 6be4a5c85a0..88434d89259 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py +++ b/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py @@ -11,7 +11,7 @@ from promptflow._core.operation_context import OperationContext from promptflow._sdk._constants import ContextAttributeKey, FlowRunProperties from promptflow._sdk._utils import parse_variant -from promptflow._sdk.entities._flow import ProtectedFlow +from promptflow._sdk.entities._flow import Flow from promptflow._sdk.entities._run import Run from promptflow._sdk.operations._local_storage_operations import LocalStorageOperations from promptflow._utils.context_utils import _change_working_dir @@ -23,7 +23,7 @@ from ..._utils.logger_utils import LoggerFactory from .._configuration import Configuration from .._load_functions import load_flow -from ..entities._eager_flow import EagerFlow +from ..entities._eager_flow import FlexFlow from .utils import SubmitterHelper, variant_overwrite_context logger = LoggerFactory.get_logger(name=__name__) @@ -102,9 +102,7 @@ def _validate_inputs(cls, run: Run): error = ValidationException("Either run or data or resume from run must be specified for flow run.") raise UserErrorException(message=str(error), error=error) - def _submit_bulk_run( - self, flow: Union[ProtectedFlow, EagerFlow], run: Run, local_storage: LocalStorageOperations - ) -> dict: + def _submit_bulk_run(self, flow: Union[Flow, FlexFlow], run: Run, local_storage: LocalStorageOperations) -> dict: logger.info(f"Submitting run {run.name}, log path: {local_storage.logger.file_path}") run_id = run.name if flow.language == FlowLanguage.CSharp: @@ -141,7 +139,7 @@ def _submit_bulk_run( flow.path, flow.code, connections=connections, - entry=flow.entry if isinstance(flow, EagerFlow) else None, + entry=flow.entry if isinstance(flow, FlexFlow) else None, storage=local_storage, log_path=local_storage.logger.file_path, resume_from_run_storage=resume_from_run_storage, diff --git a/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py b/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py index 50a9da179a6..24c9f262710 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py +++ b/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py @@ -13,7 +13,7 @@ from promptflow._internal import ConnectionManager from promptflow._sdk._constants import PROMPT_FLOW_DIR_NAME from promptflow._sdk._utils import dump_flow_result, parse_variant -from promptflow._sdk.entities._flow import FlowBase, FlowContext, ProtectedFlow +from promptflow._sdk.entities._flow import Flow, FlowBase, FlowContext from promptflow._sdk.operations._local_storage_operations import LoggerOperations from promptflow._utils.context_utils import _change_working_dir from promptflow._utils.exception_utils import ErrorResponse @@ -30,7 +30,7 @@ from ..._utils.logger_utils import get_cli_sdk_logger from ...batch import APIBasedExecutorProxy, CSharpExecutorProxy from .._configuration import Configuration -from ..entities._eager_flow import EagerFlow +from ..entities._eager_flow import FlexFlow from .utils import ( SubmitterHelper, print_chat_output, @@ -62,12 +62,12 @@ class TestSubmitter: def __init__( self, - flow: Union[ProtectedFlow, EagerFlow], + flow: Union[Flow, FlexFlow], flow_context: FlowContext, client=None, ): self._flow = flow - self.entry = flow.entry if isinstance(flow, EagerFlow) else None + self.entry = flow.entry if isinstance(flow, FlexFlow) else None self._origin_flow = flow self._dataplane_flow = None self.flow_context = flow_context @@ -162,7 +162,7 @@ def _resolve_variant(self): def _resolve_connections(cls, flow: FlowBase, client): if flow.language == FlowLanguage.CSharp: # TODO: check if this is a shared logic - if isinstance(flow, EagerFlow): + if isinstance(flow, FlexFlow): # connection overrides are not supported for eager flow for now return {} @@ -183,7 +183,7 @@ def _resolve_connections(cls, flow: FlowBase, client): raise UserErrorException(f"Unsupported flow language {flow.language}") @classmethod - def _resolve_environment_variables(cls, environment_variable_overrides, flow: ProtectedFlow, client): + def _resolve_environment_variables(cls, environment_variable_overrides, flow: Flow, client): return SubmitterHelper.load_and_resolve_environment_variables( flow=flow, environment_variable_overrides=environment_variable_overrides, client=client ) diff --git a/src/promptflow/promptflow/_sdk/_submitter/utils.py b/src/promptflow/promptflow/_sdk/_submitter/utils.py index 4aa84604e16..3765d1c2611 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/utils.py +++ b/src/promptflow/promptflow/_sdk/_submitter/utils.py @@ -45,8 +45,8 @@ get_used_connection_names_from_dict, update_dict_value_with_connections, ) -from promptflow._sdk.entities._eager_flow import EagerFlow -from promptflow._sdk.entities._flow import Flow, ProtectedFlow +from promptflow._sdk.entities._eager_flow import FlexFlow +from promptflow._sdk.entities._flow import Flow from promptflow._utils.context_utils import _change_working_dir from promptflow._utils.flow_utils import dump_flow_dag, load_flow_dag from promptflow._utils.logger_utils import FileHandler, get_cli_sdk_logger @@ -172,7 +172,7 @@ def variant_overwrite_context( if flow.additional_includes: # Merge the flow folder and additional includes to temp folder for both eager flow & dag flow. with _merge_local_code_and_additional_includes(code_path=flow_dir_path) as temp_dir: - if not isinstance(flow, EagerFlow): + if not isinstance(flow, FlexFlow): # always overwrite variant since we need to overwrite default variant if not specified. overwrite_variant(flow_dag, tuning_node, variant, drop_node_variants=drop_node_variants) overwrite_connections(flow_dag, connections, working_dir=flow_dir_path) @@ -181,7 +181,7 @@ def variant_overwrite_context( dump_flow_dag(flow_dag, Path(temp_dir)) flow = load_flow(temp_dir) yield flow - elif isinstance(flow, EagerFlow): + elif isinstance(flow, FlexFlow): # eager flow don't support overwrite variant yield flow else: @@ -192,7 +192,7 @@ def variant_overwrite_context( overwrite_connections(flow_dag, connections, working_dir=flow_dir_path) overwrite_flow(flow_dag, overrides) flow_path = dump_flow_dag(flow_dag, Path(temp_dir)) - flow = ProtectedFlow(code=flow_dir_path, path=flow_path, dag=flow_dag) + flow = Flow(code=flow_dir_path, path=flow_path, dag=flow_dag) yield flow @@ -208,11 +208,11 @@ def init_env(cls, environment_variables): @staticmethod def resolve_connections(flow: Flow, client=None, connections_to_ignore=None) -> dict: # TODO 2856400: use resolve_used_connections instead of this function to avoid using executable in control-plane - from promptflow._sdk.entities._eager_flow import EagerFlow + from promptflow._sdk.entities._eager_flow import FlexFlow from .._pf_client import PFClient - if isinstance(flow, EagerFlow): + if isinstance(flow, FlexFlow): # TODO(2898247): support prompt flow management connection for eager flow return {} @@ -226,7 +226,7 @@ def resolve_connections(flow: Flow, client=None, connections_to_ignore=None) -> ) @staticmethod - def resolve_used_connections(flow: ProtectedFlow, tools_meta: dict, client, connections_to_ignore=None) -> dict: + def resolve_used_connections(flow: Flow, tools_meta: dict, client, connections_to_ignore=None) -> dict: from .._pf_client import PFClient client = client or PFClient() diff --git a/src/promptflow/promptflow/_sdk/_utils.py b/src/promptflow/promptflow/_sdk/_utils.py index 0d16f5ec717..f68ee6429ac 100644 --- a/src/promptflow/promptflow/_sdk/_utils.py +++ b/src/promptflow/promptflow/_sdk/_utils.py @@ -5,7 +5,6 @@ import datetime import hashlib import json -import multiprocessing import os import platform import re @@ -37,8 +36,6 @@ AZURE_WORKSPACE_REGEX_FORMAT, DAG_FILE_NAME, DEFAULT_ENCODING, - FLOW_META_JSON, - FLOW_META_JSON_GEN_TIMEOUT, FLOW_TOOLS_JSON, FLOW_TOOLS_JSON_GEN_TIMEOUT, HOME_PROMPT_FLOW_DIR, @@ -59,7 +56,6 @@ ) from promptflow._sdk._errors import ( DecryptConnectionError, - GenerateFlowMetaJsonError, GenerateFlowToolsJsonError, StoreConnectionEncryptionKeyError, UnsecureConnectionError, @@ -71,6 +67,7 @@ from promptflow._utils.utils import _match_reference from promptflow._utils.yaml_utils import dump_yaml, load_yaml, load_yaml_string from promptflow.contracts.tool import ToolType +from promptflow.core._utils import generate_flow_meta as _generate_flow_meta from promptflow.exceptions import ErrorTarget, UserErrorException logger = get_cli_sdk_logger() @@ -1143,86 +1140,6 @@ def _generate_meta_from_file(working_dir, source_path, entry, meta_dict, excepti exception_list.append(str(e)) -def _generate_flow_meta( - flow_directory: Path, - source_path: str, - entry: str, - timeout: int, - *, - load_in_subprocess: bool = True, -) -> Dict[str, dict]: - """Generate tool meta from files. - - :param flow_directory: flow directory - :param tools: tool list - :param raise_error: whether raise error when generate meta failed - :param timeout: timeout for generate meta - :param include_errors_in_output: whether include errors in output - :param load_in_subprocess: whether load tool meta with subprocess to prevent system path disturb. Default is True. - If set to False, will load tool meta in sync mode and timeout need to be handled outside current process. - :return: tool meta dict - """ - if load_in_subprocess: - # use multiprocess generate to avoid system path disturb - manager = multiprocessing.Manager() - meta_dict = manager.dict() - exception_list = manager.list() - p = multiprocessing.Process( - target=_generate_meta_from_file, args=(flow_directory, source_path, entry, meta_dict, exception_list) - ) - p.start() - p.join(timeout=timeout) - if p.is_alive(): - logger.warning(f"Generate meta timeout after {timeout} seconds, terminate the process.") - p.terminate() - p.join() - else: - meta_dict, exception_list = {}, [] - - # There is no built-in method to forcefully stop a running thread/coroutine in Python - # because abruptly stopping a thread can cause issues like resource leaks, - # deadlocks, or inconsistent states. - # Caller needs to handle the timeout outside current process. - logger.warning( - "Generate meta in current process and timeout won't take effect. " - "Please handle timeout manually outside current process." - ) - _generate_meta_from_file(flow_directory, source_path, entry, meta_dict, exception_list) - # directly raise error if failed to generate meta - if len(exception_list) > 0: - error_message = "Generate meta failed, detail error:\n" + str(exception_list) - raise GenerateFlowMetaJsonError(error_message) - return dict(meta_dict) - - -def generate_flow_meta( - flow_directory: Union[str, Path], - source_path: str, - entry: str, - dump: bool = True, - timeout: int = FLOW_META_JSON_GEN_TIMEOUT, - load_in_subprocess: bool = True, -) -> dict: - """Generate flow.json for a flow directory.""" - - flow_meta = _generate_flow_meta( - flow_directory=flow_directory, - source_path=source_path, - entry=entry, - timeout=timeout, - load_in_subprocess=load_in_subprocess, - ) - - if dump: - # dump as flow.tools.json - promptflow_folder = flow_directory / PROMPT_FLOW_DIR_NAME - promptflow_folder.mkdir(exist_ok=True) - with open(promptflow_folder / FLOW_META_JSON, mode="w", encoding=DEFAULT_ENCODING) as f: - json.dump(flow_meta, f, indent=4) - - return flow_meta - - def extract_workspace_triad_from_trace_provider(trace_provider: str) -> AzureMLWorkspaceTriad: match = re.match(AZURE_WORKSPACE_REGEX_FORMAT, trace_provider) if not match or len(match.groups()) != 5: @@ -1244,3 +1161,6 @@ def overwrite_null_std_logger(): sys.stdout = open(os.devnull, "w") if sys.stderr is None: sys.stderr = sys.stdout + + +generate_flow_meta = _generate_flow_meta diff --git a/src/promptflow/promptflow/_sdk/entities/_eager_flow.py b/src/promptflow/promptflow/_sdk/entities/_eager_flow.py index 65c8a55a052..86ee743a701 100644 --- a/src/promptflow/promptflow/_sdk/entities/_eager_flow.py +++ b/src/promptflow/promptflow/_sdk/entities/_eager_flow.py @@ -1,40 +1,20 @@ # --------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -from os import PathLike from pathlib import Path -from typing import Dict, Optional, Union +from typing import Dict from promptflow._constants import LANGUAGE_KEY, FlowLanguage from promptflow._sdk._constants import BASE_PATH_CONTEXT_KEY -from promptflow._sdk._utils import generate_flow_meta -from promptflow._sdk.entities._flow import FlowBase from promptflow._sdk.entities._validation import SchemaValidatableMixin +from promptflow.core._flow import FlexFlow as FlexFlowCore from promptflow.exceptions import ErrorTarget, UserErrorException -class EagerFlow(FlowBase, SchemaValidatableMixin): - """This class is used to represent an eager flow.""" - - def __init__( - self, - path: Union[str, PathLike], - code: Union[str, PathLike], - entry: str, - data: dict, - **kwargs, - ): - # flow.dag.yaml file path or entry.py file path - path = Path(path) - # flow.dag.yaml file's folder or entry.py's folder - code = Path(code) - # entry function name - self.entry = entry - # entry file name - self.entry_file = self._resolve_entry_file(entry=entry, working_dir=code) - # TODO(2910062): support eager flow execution cache - super().__init__(data=data, path=path, code=code, content_hash=None, **kwargs) +class FlexFlow(FlexFlowCore, SchemaValidatableMixin): + __doc__ = FlexFlowCore.__doc__ + # region properties @property def language(self) -> str: return self._data.get(LANGUAGE_KEY, FlowLanguage.Python) @@ -43,17 +23,18 @@ def language(self) -> str: def additional_includes(self) -> list: return self._data.get("additional_includes", []) + # endregion + + # region overrides @classmethod def _load(cls, path: Path, data: dict, raise_error=True, **kwargs): # raise validation error on unknown fields if raise_error: + # Abstract here. The actual validation is done in subclass. data = cls._create_schema_for_validation(context={BASE_PATH_CONTEXT_KEY: path.parent}).load(data) - entry = data.get("entry") - code = path.parent + return super()._load(path=path, data=data, **kwargs) - if entry is None: - raise UserErrorException(f"Entry function is not specified for flow {path}") - return cls(path=path, code=code, entry=entry, data=data, **kwargs) + # endregion overrides # region SchemaValidatableMixin @classmethod @@ -77,34 +58,4 @@ def _dump_for_validation(self) -> Dict: # Flow is read-only in control plane, so we always dump the flow from file return self._data - # endregion - - @classmethod - def _resolve_entry_file(cls, entry: str, working_dir: Path) -> Optional[str]: - """Resolve entry file from entry. - If entry is a local file, e.g. my.local.file:entry_function, return the local file: my/local/file.py - and executor will import it from local file. - Else, assume the entry is from a package e.g. external.module:entry, return None - and executor will try import it from package. - """ - try: - entry_file = f'{entry.split(":")[0].replace(".", "/")}.py' - except Exception as e: - raise UserErrorException(f"Entry function {entry} is not valid: {e}") - entry_file = working_dir / entry_file - if entry_file.exists(): - return entry_file.resolve().absolute().as_posix() - # when entry file not found in working directory, return None since it can come from package - return None - - def _init_executable(self, **kwargs): - from promptflow.contracts.flow import EagerFlow as ExecutableEagerFlow - - # TODO(2991934): support environment variables here - meta_dict = generate_flow_meta( - flow_directory=self.code, - source_path=self.entry_file, - entry=self.entry, - dump=False, - ) - return ExecutableEagerFlow.deserialize(meta_dict) + # endregion SchemaValidatableMixin diff --git a/src/promptflow/promptflow/_sdk/entities/_flow.py b/src/promptflow/promptflow/_sdk/entities/_flow.py index 390d262f960..74089df517c 100644 --- a/src/promptflow/promptflow/_sdk/entities/_flow.py +++ b/src/promptflow/promptflow/_sdk/entities/_flow.py @@ -2,240 +2,31 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -import abc -import json -from os import PathLike from pathlib import Path -from typing import Dict, Optional, Tuple, Union +from typing import Dict, Optional, Tuple -from marshmallow import Schema - -from promptflow._constants import LANGUAGE_KEY, FlowLanguage -from promptflow._sdk._constants import ( - BASE_PATH_CONTEXT_KEY, - DAG_FILE_NAME, - DEFAULT_ENCODING, +from promptflow._constants import ( + DEFAULT_FLOW_YAML_FILE_NAME, FLOW_TOOLS_JSON, + LANGUAGE_KEY, PROMPT_FLOW_DIR_NAME, + FlowLanguage, ) -from promptflow._sdk.entities._connection import _Connection +from promptflow._sdk._constants import BASE_PATH_CONTEXT_KEY from promptflow._sdk.entities._validation import SchemaValidatableMixin -from promptflow._utils.flow_utils import resolve_flow_path from promptflow._utils.logger_utils import get_cli_sdk_logger -from promptflow._utils.yaml_utils import load_yaml, load_yaml_string +from promptflow._utils.yaml_utils import load_yaml +from promptflow.core._flow import AsyncFlow as AsyncFlowCore +from promptflow.core._flow import Flow as FlowCore +from promptflow.core._flow import FlowBase as FlowBaseCore +from promptflow.core._flow import FlowContext as FlowContextCore from promptflow.exceptions import ErrorTarget, UserErrorException logger = get_cli_sdk_logger() -class FlowContext: - """Flow context entity. the settings on this context will be applied to the flow when executing. - - :param connections: Connections for the flow. - :type connections: Optional[Dict[str, Dict]] - :param variant: Variant of the flow. - :type variant: Optional[str] - :param variant: Overrides of the flow. - :type variant: Optional[Dict[str, Dict]] - :param streaming: Whether the flow's output need to be return in streaming mode. - :type streaming: Optional[bool] - """ - - def __init__( - self, - *, - connections=None, - variant=None, - overrides=None, - streaming=None, - ): - self.connections, self._connection_objs = connections or {}, {} - self.variant = variant - self.overrides = overrides or {} - self.streaming = streaming - # TODO: introduce connection provider support - - def _resolve_connections(self): - # resolve connections and create placeholder for connection objects - for _, v in self.connections.items(): - if isinstance(v, dict): - for k, conn in v.items(): - if isinstance(conn, _Connection): - name = self._get_connection_obj_name(conn) - v[k] = name - self._connection_objs[name] = conn - - @classmethod - def _get_connection_obj_name(cls, connection: _Connection): - # create a unique connection name for connection obj - # will generate same name if connection has same content - connection_dict = connection._to_dict() - connection_name = f"connection_{hash(json.dumps(connection_dict, sort_keys=True))}" - return connection_name - - def _to_dict(self): - return { - "connections": self.connections, - "variant": self.variant, - "overrides": self.overrides, - "streaming": self.streaming, - } - - def __eq__(self, other): - if isinstance(other, FlowContext): - return self._to_dict() == other._to_dict() - return False - - def __hash__(self): - self._resolve_connections() - return hash(json.dumps(self._to_dict(), sort_keys=True)) - - -class FlowBase(abc.ABC): - def __init__(self, *, data: dict, code: Path, path: Path, **kwargs): - self._context = FlowContext() - # flow.dag.yaml's content if provided - self._data = data - # working directory of the flow - self._code = Path(code).resolve() - # flow file path, can be script file or flow definition YAML file - self._path = Path(path).resolve() - # hash of flow's entry file, used to skip invoke if entry file is not changed - self._content_hash = kwargs.pop("content_hash", None) - super().__init__(**kwargs) - - @property - def context(self) -> FlowContext: - return self._context - - @context.setter - def context(self, val): - if not isinstance(val, FlowContext): - raise UserErrorException("context must be a FlowContext object, got {type(val)} instead.") - self._context = val - - @property - def code(self) -> Path: - """Working directory of the flow.""" - return self._code - - @property - def path(self) -> Path: - """Flow file path. Can be script file or flow definition YAML file.""" - return self._path - - @property - def language(self) -> str: - """Language of the flow.""" - return self._data.get(LANGUAGE_KEY, FlowLanguage.Python) - - @property - def additional_includes(self) -> list: - """Additional includes of the flow.""" - return self._data.get("additional_includes", []) - - @classmethod - # pylint: disable=unused-argument - def _resolve_cls_and_type(cls, data, params_override): - """Resolve the class to use for deserializing the data. Return current class if no override is provided. - :param data: Data to deserialize. - :type data: dict - :param params_override: Parameters to override, defaults to None - :type params_override: typing.Optional[list] - :return: Class to use for deserializing the data & its "type". Type will be None if no override is provided. - :rtype: tuple[class, typing.Optional[str]] - """ - return cls, "flow" - - -class Flow(FlowBase): - """This class is used to represent a flow.""" - - def __init__( - self, - code: Union[str, PathLike], - path: Union[str, PathLike], - dag: dict, - **kwargs, - ): - self.variant = kwargs.pop("variant", None) or {} - super().__init__(data=dag, code=code, path=path, **kwargs) - - @classmethod - def _is_eager_flow(cls, data: dict): - """Check if the flow is an eager flow. Use field 'entry' to determine.""" - # If entry specified, it's an eager flow. - return data.get("entry") - - @classmethod - def load( - cls, - source: Union[str, PathLike], - entry: str = None, - raise_error=True, - **kwargs, - ): - from promptflow._sdk.entities._eager_flow import EagerFlow - - source_path = Path(source) - if not source_path.exists(): - raise UserErrorException(f"Source {source_path.absolute().as_posix()} does not exist") - flow_path = resolve_flow_path(source_path) - if not flow_path.exists(): - raise UserErrorException(f"Flow file {flow_path.absolute().as_posix()} does not exist") - if flow_path.suffix in [".yaml", ".yml"]: - # read flow file to get hash - with open(flow_path, "r", encoding=DEFAULT_ENCODING) as f: - flow_content = f.read() - data = load_yaml_string(flow_content) - content_hash = hash(flow_content) - is_eager_flow = cls._is_eager_flow(data) - is_async_call = kwargs.pop("is_async_call", False) - if is_eager_flow: - return EagerFlow._load(path=flow_path, data=data, raise_error=raise_error, **kwargs) - else: - # TODO: schema validation and warning on unknown fields - if is_async_call: - return AsyncProtectedFlow._load(path=flow_path, dag=data, content_hash=content_hash, **kwargs) - else: - return ProtectedFlow._load(path=flow_path, dag=data, content_hash=content_hash, **kwargs) - # if non-YAML file is provided, raise user error exception - raise UserErrorException("Source must be a directory or a 'flow.dag.yaml' file") - - def _init_executable(self, tuning_node=None, variant=None): - from promptflow._sdk._submitter import variant_overwrite_context - from promptflow.contracts.flow import Flow as ExecutableFlow - - if not tuning_node and not variant: - # for DAG flow, use data to init executable to improve performance - return ExecutableFlow._from_dict(flow_dag=self._data, working_dir=self.code) - - # TODO: check if there is potential bug here - # this is a little wired: - # 1. the executable is created from a temp folder when there is additional includes - # 2. after the executable is returned, the temp folder is deleted - with variant_overwrite_context(self, tuning_node, variant) as flow: - - return ExecutableFlow.from_yaml(flow_file=flow.path, working_dir=flow.code) - - def __eq__(self, other): - if isinstance(other, Flow): - return self._content_hash == other._content_hash and self.context == other.context - return False - - def __hash__(self): - return hash(self.context) ^ self._content_hash - - -class ProtectedFlow(Flow, SchemaValidatableMixin): - """This class is used to hide internal interfaces from user. - - User interface should be carefully designed to avoid breaking changes, while developers may need to change internal - interfaces to improve the code quality. On the other hand, making all internal interfaces private will make it - strange to use them everywhere inside this package. - - Ideally, developers should always initialize ProtectedFlow object instead of Flow object. - """ +class Flow(FlowCore, SchemaValidatableMixin): + __doc__ = FlowCore.__doc__ def __init__( self, @@ -247,25 +38,18 @@ def __init__( ): super().__init__(path=path, code=code, dag=dag, **kwargs) - self._flow_dir, self._dag_file_name = self._get_flow_definition(self.code) self._executable = None self._params_override = params_override + self._flow_dir, self._dag_file_name = self._get_flow_definition(self.code) - @classmethod - def _load(cls, path: Path, dag: dict, **kwargs): - return cls(path=path, code=path.parent, dag=dag, **kwargs) - - @property - def flow_dag_path(self) -> Path: - return self._flow_dir / self._dag_file_name - + # region properties @property def name(self) -> str: return self._flow_dir.name @property - def display_name(self) -> str: - return self._data.get("display_name", self.name) + def flow_dag_path(self) -> Path: + return self._flow_dir / self._dag_file_name @property def tools_meta_path(self) -> Path: @@ -273,6 +57,20 @@ def tools_meta_path(self) -> Path: target_path.parent.mkdir(parents=True, exist_ok=True) return target_path + @property + def language(self) -> str: + return self._data.get(LANGUAGE_KEY, FlowLanguage.Python) + + @property + def additional_includes(self) -> list: + return self._data.get("additional_includes", []) + + @property + def display_name(self) -> str: + return self._data.get("display_name", self._flow_dir.name) + + # endregion + @classmethod def _get_flow_definition(cls, flow, base_path=None) -> Tuple[Path, str]: if base_path: @@ -280,8 +78,8 @@ def _get_flow_definition(cls, flow, base_path=None) -> Tuple[Path, str]: else: flow_path = Path(flow) - if flow_path.is_dir() and (flow_path / DAG_FILE_NAME).is_file(): - return flow_path, DAG_FILE_NAME + if flow_path.is_dir() and (flow_path / DEFAULT_FLOW_YAML_FILE_NAME).is_file(): + return flow_path, DEFAULT_FLOW_YAML_FILE_NAME elif flow_path.is_file(): return flow_path.parent, flow_path.name @@ -289,7 +87,7 @@ def _get_flow_definition(cls, flow, base_path=None) -> Tuple[Path, str]: # region SchemaValidatableMixin @classmethod - def _create_schema_for_validation(cls, context) -> Schema: + def _create_schema_for_validation(cls, context) -> "Schema": # import here to avoid circular import from ..schemas._flow import FlowSchema @@ -331,27 +129,37 @@ def outputs(self): # endregion - def __call__(self, *args, **kwargs): - """Calling flow as a function, the inputs should be provided with key word arguments. - Returns the output of the flow. - The function call throws UserErrorException: if the flow is not valid or the inputs are not valid. - SystemErrorException: if the flow execution failed due to unexpected executor error. + # region overrides: + def _init_executable(self, tuning_node=None, variant=None): + from promptflow._sdk._submitter import variant_overwrite_context + from promptflow.contracts.flow import Flow as ExecutableFlow - :param args: positional arguments are not supported. - :param kwargs: flow inputs with key word arguments. - :return: - """ + if not tuning_node and not variant: + # for DAG flow, use data to init executable to improve performance + return super()._init_executable() - if args: - raise UserErrorException("Flow can only be called with keyword arguments.") + # TODO: check if there is potential bug here + # this is a little wired: + # 1. the executable is created from a temp folder when there is additional includes + # 2. after the executable is returned, the temp folder is deleted + with variant_overwrite_context(self, tuning_node, variant) as flow: + + return ExecutableFlow.from_yaml(flow_file=flow.path, working_dir=flow.code) + + @classmethod + def _dispatch_flow_creation(cls, is_eager_flow, flow_path, data, content_hash, raise_error=True, **kwargs): + """Dispatch flow load to eager flow or async flow.""" + from promptflow._sdk.entities._eager_flow import FlexFlow - result = self.invoke(inputs=kwargs) - return result.output + if is_eager_flow: + return FlexFlow._load(path=flow_path, data=data, raise_error=raise_error, **kwargs) + else: + # TODO: schema validation and warning on unknown fields + return Flow._load(path=flow_path, dag=data, content_hash=content_hash, **kwargs) def invoke(self, inputs: dict) -> "LineResult": """Invoke a flow and get a LineResult object.""" from promptflow._sdk._submitter import TestSubmitter - from promptflow._sdk.operations._flow_context_resolver import FlowContextResolver if self.language == FlowLanguage.CSharp: with TestSubmitter(flow=self, flow_context=self.context).init( @@ -360,27 +168,15 @@ def invoke(self, inputs: dict) -> "LineResult": result = submitter.flow_test(inputs=inputs, allow_generator_output=self.context.streaming) return result else: - invoker = FlowContextResolver.resolve(flow=self) - result = invoker._invoke( - data=inputs, - ) - return result - + return super().invoke(inputs=inputs) -class AsyncProtectedFlow(ProtectedFlow): - """This class is used to represent an async flow.""" - async def __call__(self, *args, **kwargs): - if args: - raise UserErrorException("Flow can only be called with keyword arguments.") - - result = await self.invoke_async(inputs=kwargs) - return result.output +class AsyncFlow(Flow, AsyncFlowCore): + __doc__ = AsyncFlowCore.__doc__ async def invoke_async(self, inputs: dict) -> "LineResult": """Invoke a flow and get a LineResult object.""" from promptflow._sdk._submitter import TestSubmitter - from promptflow._sdk.operations._flow_context_resolver import FlowContextResolver if self.language == FlowLanguage.CSharp: # Sync C# calling @@ -391,8 +187,8 @@ async def invoke_async(self, inputs: dict) -> "LineResult": result = submitter.flow_test(inputs=inputs, allow_generator_output=self.context.streaming) return result else: - invoker = FlowContextResolver.resolve_async_invoker(flow=self) - result = await invoker._invoke_async( - data=inputs, - ) - return result + return await super().invoke_async(inputs=inputs) + + +FlowContext = FlowContextCore +FlowBase = FlowBaseCore diff --git a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py index f8cbd22c7b4..b80a24a0813 100644 --- a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py +++ b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py @@ -37,8 +37,8 @@ logger, parse_variant, ) -from promptflow._sdk.entities._eager_flow import EagerFlow -from promptflow._sdk.entities._flow import Flow, FlowBase, ProtectedFlow +from promptflow._sdk.entities._eager_flow import FlexFlow +from promptflow._sdk.entities._flow import Flow, FlowBase from promptflow._sdk.entities._validation import ValidationResult from promptflow._utils.context_utils import _change_working_dir from promptflow._utils.yaml_utils import dump_yaml, load_yaml @@ -155,8 +155,6 @@ def _test( :param allow_generator_output: Whether return streaming output when flow has streaming output. :return: Executor result """ - from promptflow._sdk._load_functions import load_flow - inputs = inputs or {} output_path = kwargs.get("output_path", None) session = kwargs.pop("session", None) @@ -164,7 +162,7 @@ def _test( run_id = kwargs.get("run_id", str(uuid.uuid4())) flow: FlowBase = load_flow(flow) - if isinstance(flow, EagerFlow): + if isinstance(flow, FlexFlow): if variant or node: logger.warning("variant and node are not supported for eager flow, will be ignored") variant, node = None, None @@ -178,7 +176,7 @@ def _test( stream_output=stream_output, session=session, ) as submitter: - if isinstance(flow, EagerFlow): + if isinstance(flow, FlexFlow): # TODO(2897153): support chat eager flow # set is chat flow to True to allow generator output is_chat_flow, chat_history_input_name = False, None @@ -685,12 +683,12 @@ def validate(self, flow: Union[str, PathLike], *, raise_error: bool = False, **k :rtype: ValidationResult """ - flow_entity: ProtectedFlow = load_flow(source=flow, raise_error=False) + flow_entity: Flow = load_flow(source=flow, raise_error=False) # TODO: put off this if we do path existence check in FlowSchema on fields other than additional_includes validation_result = flow_entity._validate() - if isinstance(flow_entity, ProtectedFlow): + if isinstance(flow_entity, Flow): # only DAG flow has tools meta source_path_mapping = {} flow_tools, tools_errors = self._generate_tools_meta( @@ -751,7 +749,7 @@ def _generate_tools_meta( :rtype: Tuple[dict, dict] """ flow: FlowBase = load_flow(source=flow) - if not isinstance(flow, ProtectedFlow): + if not isinstance(flow, Flow): # No tools meta for eager flow return {}, {} @@ -830,8 +828,8 @@ def _generate_flow_meta( :return: dict of flow meta :rtype: Tuple[dict, dict] """ - flow: Union[ProtectedFlow, EagerFlow] = load_flow(source=flow) - if not isinstance(flow, EagerFlow): + flow: Union[Flow, FlexFlow] = load_flow(source=flow) + if not isinstance(flow, FlexFlow): # No flow meta for DAG flow return {} diff --git a/src/promptflow/promptflow/_sdk/operations/_local_storage_operations.py b/src/promptflow/promptflow/_sdk/operations/_local_storage_operations.py index 0fef27a51b3..ad4aa9b7297 100644 --- a/src/promptflow/promptflow/_sdk/operations/_local_storage_operations.py +++ b/src/promptflow/promptflow/_sdk/operations/_local_storage_operations.py @@ -36,7 +36,7 @@ write_open, ) from promptflow._sdk.entities import Run -from promptflow._sdk.entities._eager_flow import EagerFlow +from promptflow._sdk.entities._eager_flow import FlexFlow from promptflow._sdk.entities._flow import Flow from promptflow._utils.dataclass_serializer import serialize from promptflow._utils.exception_utils import PromptflowExceptionPresenter @@ -237,7 +237,7 @@ def _calculate_eager_mode(cls, run: Run) -> bool: if run._run_source == RunInfoSources.LOCAL: try: flow_obj = load_flow(source=run.flow) - return isinstance(flow_obj, EagerFlow) + return isinstance(flow_obj, FlexFlow) except Exception as e: # For run with incomplete flow snapshot, ignore load flow error to make sure it can still show. logger.debug(f"Failed to load flow from {run.flow} due to {e}.") diff --git a/src/promptflow/promptflow/azure/operations/_flow_operations.py b/src/promptflow/promptflow/azure/operations/_flow_operations.py index 91c2dafdb0d..911df4a8279 100644 --- a/src/promptflow/promptflow/azure/operations/_flow_operations.py +++ b/src/promptflow/promptflow/azure/operations/_flow_operations.py @@ -244,7 +244,7 @@ def _validate_flow_creation_parameters(source, flow_display_name=None, flow_type @staticmethod def _validate_flow_schema(source, display_name=None, type=None, **kwargs): """Validate the flow schema.""" - from promptflow._sdk.entities._flow import ProtectedFlow + from promptflow._sdk.entities._flow import Flow params_override = copy.deepcopy(kwargs) if display_name is not None: @@ -252,7 +252,7 @@ def _validate_flow_schema(source, display_name=None, type=None, **kwargs): if type is not None: params_override["type"] = type - flow_entity = ProtectedFlow.load(source=source, params_override=params_override) + flow_entity = Flow.load(source=source, params_override=params_override) flow_entity._validate(raise_error=True) # raise error if validation failed flow_dict = flow_entity._dump_for_validation() return flow_dict @@ -601,10 +601,10 @@ def _try_resolve_code_for_flow_to_file_share(cls, flow: Flow, ops: OperationOrch @classmethod def _generate_meta_for_eager_flow(cls, code): from promptflow import load_flow as load_local_flow - from promptflow._sdk.entities._eager_flow import EagerFlow + from promptflow._sdk.entities._eager_flow import FlexFlow flow = load_local_flow(code.path) - if isinstance(flow, EagerFlow) and flow.language == FlowLanguage.Python: + if isinstance(flow, FlexFlow) and flow.language == FlowLanguage.Python: # TODO: support generate meta for CSharp flow generate_flow_meta( flow_directory=code.path, diff --git a/src/promptflow/promptflow/core/__init__.py b/src/promptflow/promptflow/core/__init__.py index d9637135d7c..c1ebf0e1df3 100644 --- a/src/promptflow/promptflow/core/__init__.py +++ b/src/promptflow/promptflow/core/__init__.py @@ -7,9 +7,10 @@ # flake8: noqa from promptflow._core.tool import ToolProvider, tool +from promptflow.core._flow import AsyncFlow, Flow # backward compatibility log_flow_metric = log_metric # TODO: Add the Flow class -__all__ = ["log_metric", "ToolProvider", "tool"] +__all__ = ["log_metric", "ToolProvider", "tool", "Flow", "AsyncFlow"] diff --git a/src/promptflow/promptflow/core/_connection.py b/src/promptflow/promptflow/core/_connection.py index bf210857703..cc27be7aabc 100644 --- a/src/promptflow/promptflow/core/_connection.py +++ b/src/promptflow/promptflow/core/_connection.py @@ -12,6 +12,7 @@ from promptflow._utils.logger_utils import LoggerFactory from promptflow._utils.utils import in_jupyter_notebook from promptflow.contracts.types import Secret +from promptflow.core._errors import RequiredEnvironmentVariablesNotSetError from promptflow.exceptions import UserErrorException logger = LoggerFactory.get_logger(name=__name__) @@ -700,10 +701,3 @@ def _convert_to_custom_strong_type(self, module=None, to_class=None) -> CustomSt connection_instance = custom_defined_connection_class(configs=self.configs, secrets=self.secrets) return connection_instance - - -class RequiredEnvironmentVariablesNotSetError(UserErrorException): - """Exception raised if connection from_env required env vars not found.""" - - def __init__(self, env_vars: list, cls_name: str): - super().__init__(f"Required environment variables {env_vars} to build {cls_name} not set.") diff --git a/src/promptflow/promptflow/core/_errors.py b/src/promptflow/promptflow/core/_errors.py new file mode 100644 index 00000000000..d1eb09f8ed5 --- /dev/null +++ b/src/promptflow/promptflow/core/_errors.py @@ -0,0 +1,45 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +from promptflow.exceptions import ErrorTarget, SystemErrorException, UserErrorException + + +class CoreError(UserErrorException): + """Core base class, target default is CORE.""" + + def __init__( + self, + message="", + message_format="", + target: ErrorTarget = ErrorTarget.CORE, + module=None, + **kwargs, + ): + super().__init__(message=message, message_format=message_format, target=target, module=module, **kwargs) + + +class CoreInternalError(SystemErrorException): + """Core internal error.""" + + def __init__( + self, + message="", + message_format="", + target: ErrorTarget = ErrorTarget.CORE, + module=None, + **kwargs, + ): + super().__init__(message=message, message_format=message_format, target=target, module=module, **kwargs) + + +class GenerateFlowMetaJsonError(CoreError): + """Exception raised if flow json generation failed.""" + + pass + + +class RequiredEnvironmentVariablesNotSetError(CoreError): + """Exception raised if connection from_env required env vars not found.""" + + def __init__(self, env_vars: list, cls_name: str): + super().__init__(f"Required environment variables {env_vars} to build {cls_name} not set.") diff --git a/src/promptflow/promptflow/core/_flow.py b/src/promptflow/promptflow/core/_flow.py new file mode 100644 index 00000000000..d6ca9ec91de --- /dev/null +++ b/src/promptflow/promptflow/core/_flow.py @@ -0,0 +1,423 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import abc +import json +from os import PathLike +from pathlib import Path +from typing import Optional, Union + +from promptflow._constants import DEFAULT_ENCODING +from promptflow._utils.flow_utils import resolve_flow_path +from promptflow._utils.yaml_utils import load_yaml_string +from promptflow.core._connection import _Connection +from promptflow.core._utils import generate_flow_meta +from promptflow.exceptions import UserErrorException + + +class FlowContext: + """Flow context entity. the settings on this context will be applied to the flow when executing. + + :param connections: Connections for the flow. + :type connections: Optional[Dict[str, Dict]] + :param variant: Variant of the flow. + :type variant: Optional[str] + :param variant: Overrides of the flow. + :type variant: Optional[Dict[str, Dict]] + :param streaming: Whether the flow's output need to be return in streaming mode. + :type streaming: Optional[bool] + """ + + def __init__( + self, + *, + connections=None, + variant=None, + overrides=None, + streaming=None, + ): + self.connections, self._connection_objs = connections or {}, {} + self.variant = variant + self.overrides = overrides or {} + self.streaming = streaming + # TODO: introduce connection provider support + + def _resolve_connections(self): + # resolve connections and create placeholder for connection objects + for _, v in self.connections.items(): + if isinstance(v, dict): + for k, conn in v.items(): + if isinstance(conn, _Connection): # Core COnnection + name = self._get_connection_obj_name(conn) + v[k] = name + self._connection_objs[name] = conn + + @classmethod + def _get_connection_obj_name(cls, connection: _Connection): + # create a unique connection name for connection obj + # will generate same name if connection has same content + connection_dict = connection._to_dict() + connection_name = f"connection_{hash(json.dumps(connection_dict, sort_keys=True))}" + return connection_name + + def _to_dict(self): + return { + "connections": self.connections, + "variant": self.variant, + "overrides": self.overrides, + "streaming": self.streaming, + } + + def __eq__(self, other): + if isinstance(other, FlowContext): + return self._to_dict() == other._to_dict() + return False + + def __hash__(self): + self._resolve_connections() + return hash(json.dumps(self._to_dict(), sort_keys=True)) + + +class FlowBase(abc.ABC): + def __init__(self, *, data: dict, code: Path, path: Path, **kwargs): + self._context = FlowContext() + # flow.dag.yaml's content if provided + self._data = data + # working directory of the flow + self._code = Path(code).resolve() + # flow file path, can be script file or flow definition YAML file + self._path = Path(path).resolve() + # hash of flow's entry file, used to skip invoke if entry file is not changed + self._content_hash = kwargs.pop("content_hash", None) + super().__init__(**kwargs) + + @property + def context(self) -> FlowContext: + return self._context + + @context.setter + def context(self, val): + if not isinstance(val, FlowContext): + raise UserErrorException("context must be a FlowContext object, got {type(val)} instead.") + self._context = val + + @property + def code(self) -> Path: + """Working directory of the flow.""" + return self._code + + @property + def path(self) -> Path: + """Flow file path. Can be script file or flow definition YAML file.""" + return self._path + + @classmethod + # pylint: disable=unused-argument + def _resolve_cls_and_type(cls, data, params_override): + """Resolve the class to use for deserializing the data. Return current class if no override is provided. + :param data: Data to deserialize. + :type data: dict + :param params_override: Parameters to override, defaults to None + :type params_override: typing.Optional[list] + :return: Class to use for deserializing the data & its "type". Type will be None if no override is provided. + :rtype: tuple[class, typing.Optional[str]] + """ + return cls, "flow" + + +class Flow(FlowBase): + """A Flow in the context of PromptFlow is a sequence of steps that define a task. + Each step in the flow could be a prompt that is sent to a language model, or simply a function task, + and the output of one step can be used as the input to the next. + Flows can be used to build complex applications with language models. + + Simple Example: + + .. code-block:: python + + from promptflow.core import Flow + flow = Flow.load(source="path/to/flow.dag.yaml") + result = flow(input_a=1, input_b=2) + + """ + + def __init__( + self, + code: Union[str, PathLike], + path: Union[str, PathLike], + dag: dict, + **kwargs, + ): + self.variant = kwargs.pop("variant", None) or {} + super().__init__(data=dag, code=code, path=path, **kwargs) + + @classmethod + def _load(cls, path: Path, dag: dict, **kwargs): + return cls(code=path.parent, path=path, dag=dag, **kwargs) + + @classmethod + def _is_eager_flow(cls, data: dict): + """Check if the flow is an non-dag flow. Use field 'entry' to determine.""" + # If entry specified, it's an non-dag flow. + return data.get("entry") + + @classmethod + def _dispatch_flow_creation(cls, is_eager_flow, flow_path, data, content_hash, raise_error=True, **kwargs): + """Dispatch flow load to non-dag flow or async flow.""" + if is_eager_flow: + return FlexFlow._load(path=flow_path, data=data, raise_error=raise_error, **kwargs) + else: + # TODO: schema validation and warning on unknown fields + return Flow._load(path=flow_path, dag=data, content_hash=content_hash, **kwargs) + + @classmethod + def _load_prepare(cls, source: Union[str, PathLike]): + source_path = Path(source) + if not source_path.exists(): + raise UserErrorException(f"Source {source_path.absolute().as_posix()} does not exist") + flow_path = resolve_flow_path(source_path) + if not flow_path.exists(): + raise UserErrorException(f"Flow file {flow_path.absolute().as_posix()} does not exist") + if flow_path.suffix not in [".yaml", ".yml"]: + raise UserErrorException("Source must be a directory or a 'flow.dag.yaml' file") + return source_path, flow_path + + @classmethod + def load( + cls, + source: Union[str, PathLike], + raise_error=True, + **kwargs, + ) -> "Flow": + """ + Load flow from YAML file. + + :param source: The local yaml source of a flow. Must be a path to a local file. + If the source is a path, it will be open and read. + An exception is raised if the file does not exist. + :type source: Union[PathLike, str] + :param raise_error: Argument for non-dag flow raise validation error on unknown fields. + :type raise_error: bool + :return: A Flow object + :rtype: Flow + """ + _, flow_path = cls._load_prepare(source) + with open(flow_path, "r", encoding=DEFAULT_ENCODING) as f: + flow_content = f.read() + data = load_yaml_string(flow_content) + content_hash = hash(flow_content) + is_eager_flow = cls._is_eager_flow(data) + return cls._dispatch_flow_creation( + is_eager_flow, flow_path, data, content_hash, raise_error=raise_error, **kwargs + ) + + def _init_executable(self): + from promptflow.contracts.flow import Flow as ExecutableFlow + + # for DAG flow, use data to init executable to improve performance + return ExecutableFlow._from_dict(flow_dag=self._data, working_dir=self.code) + + def __eq__(self, other): + if isinstance(other, Flow): + return self._content_hash == other._content_hash and self.context == other.context + return False + + def __hash__(self): + return hash(self.context) ^ self._content_hash + + def __call__(self, *args, **kwargs): + """Calling flow as a function, the inputs should be provided with key word arguments. + Returns the output of the flow. + The function call throws UserErrorException: if the flow is not valid or the inputs are not valid. + SystemErrorException: if the flow execution failed due to unexpected executor error. + + :param args: positional arguments are not supported. + :param kwargs: flow inputs with key word arguments. + :return: + """ + + if args: + raise UserErrorException("Flow can only be called with keyword arguments.") + + result = self.invoke(inputs=kwargs) + return result.output + + def invoke(self, inputs: dict) -> "LineResult": + """Invoke a flow and get a LineResult object.""" + from promptflow.core._flow_context_resolver import FlowContextResolver + + invoker = FlowContextResolver.resolve(flow=self) + result = invoker._invoke( + data=inputs, + ) + return result + + +class FlexFlow(Flow): + """A FlexFlow represents an non-dag flow, which uses codes to define the flow. + FlexFlow basically behave like a Flow, but its entry function should be provided in the flow.dag.yaml file. + Load of this non-dag flow is provided, but direct call of it will cause exceptions. + """ + + def __init__( + self, + path: Union[str, PathLike], + code: Union[str, PathLike], + entry: str, + data: dict, + **kwargs, + ): + # flow.dag.yaml file path or entry.py file path + path = Path(path) + # flow.dag.yaml file's folder or entry.py's folder + code = Path(code) + # entry function name + self.entry = entry + # entry file name + self.entry_file = self._resolve_entry_file(entry=entry, working_dir=code) + # TODO(2910062): support non-dag flow execution cache + super().__init__(code=code, path=path, dag=data, content_hash=None, **kwargs) + + @classmethod + def _load(cls, path: Path, data: dict, **kwargs): + entry = data.get("entry") + code = path.parent + + if entry is None: + raise UserErrorException(f"Entry function is not specified for flow {path}") + return cls(path=path, code=code, entry=entry, data=data, **kwargs) + + # region overrides + @classmethod + def load( + cls, + source: Union[str, PathLike], + raise_error=True, + **kwargs, + ) -> "FlexFlow": + """ + Direct load non-dag flow from YAML file. + + :param source: The local yaml source of a flow. Must be a path to a local file. + If the source is a path, it will be open and read. + An exception is raised if the file does not exist. + :type source: Union[PathLike, str] + :param raise_error: Argument for non-dag flow raise validation error on unknown fields. + :type raise_error: bool + :return: A EagerFlow object + :rtype: EagerFlow + """ + _, flow_path = cls._load_prepare(source) + with open(flow_path, "r", encoding=DEFAULT_ENCODING) as f: + flow_content = f.read() + data = load_yaml_string(flow_content) + is_eager_flow = cls._is_eager_flow(data) + if not is_eager_flow: + raise UserErrorException("Please load an non-dag flow with EagerFlow.load method.") + return cls._load(path=flow_path, data=data, **kwargs) + + def _init_executable(self): + from promptflow.contracts.flow import EagerFlow as ExecutableEagerFlow + + # TODO(2991934): support environment variables here + meta_dict = generate_flow_meta( + flow_directory=self.code, + source_path=self.entry_file, + entry=self.entry, + dump=False, + ) + return ExecutableEagerFlow.deserialize(meta_dict) + + def __call__(self, *args, **kwargs): + """Direct call of non-dag flow WILL cause exceptions.""" + raise UserErrorException("FlexFlow can not be called as a function.") + + # endregion + + @classmethod + def _resolve_entry_file(cls, entry: str, working_dir: Path) -> Optional[str]: + """Resolve entry file from entry. + If entry is a local file, e.g. my.local.file:entry_function, return the local file: my/local/file.py + and executor will import it from local file. + Else, assume the entry is from a package e.g. external.module:entry, return None + and executor will try import it from package. + """ + try: + entry_file = f'{entry.split(":")[0].replace(".", "/")}.py' + except Exception as e: + raise UserErrorException(f"Entry function {entry} is not valid: {e}") + entry_file = working_dir / entry_file + if entry_file.exists(): + return entry_file.resolve().absolute().as_posix() + # when entry file not found in working directory, return None since it can come from package + return None + + +class AsyncFlow(Flow): + """Async flow is based on Flow, which is used to invoke flow in async mode. + + Simple Example: + + .. code-block:: python + + from promptflow.core import class AsyncFlow + flow = AsyncFlow.load(source="path/to/flow.dag.yaml") + result = await flow(input_a=1, input_b=2) + + """ + + # region overrides + @classmethod + def load( + cls, + source: Union[str, PathLike], + raise_error=True, + **kwargs, + ) -> "AsyncFlow": + """ + Direct load flow from YAML file. + + :param source: The local yaml source of a flow. Must be a path to a local file. + If the source is a path, it will be open and read. + An exception is raised if the file does not exist. + :type source: Union[PathLike, str] + :param raise_error: Argument for non-dag flow raise validation error on unknown fields. + :type raise_error: bool + :return: An AsyncFlow object + :rtype: AsyncFlow + """ + _, flow_path = cls._load_prepare(source) + with open(flow_path, "r", encoding=DEFAULT_ENCODING) as f: + flow_content = f.read() + data = load_yaml_string(flow_content) + content_hash = hash(flow_content) + return cls._load(path=flow_path, dag=data, content_hash=content_hash, **kwargs) + + # endregion + + async def __call__(self, *args, **kwargs): + """Calling flow as a function in async, the inputs should be provided with key word arguments. + Returns the output of the flow. + The function call throws UserErrorException: if the flow is not valid or the inputs are not valid. + SystemErrorException: if the flow execution failed due to unexpected executor error. + + :param args: positional arguments are not supported. + :param kwargs: flow inputs with key word arguments. + :return: + """ + if args: + raise UserErrorException("Flow can only be called with keyword arguments.") + + result = await self.invoke_async(inputs=kwargs) + return result.output + + async def invoke_async(self, inputs: dict) -> "LineResult": + """Invoke a flow and get a LineResult object.""" + from promptflow.core._flow_context_resolver import FlowContextResolver + + invoker = FlowContextResolver.resolve_async_invoker(flow=self) + result = await invoker._invoke_async( + data=inputs, + ) + return result diff --git a/src/promptflow/promptflow/_sdk/operations/_flow_context_resolver.py b/src/promptflow/promptflow/core/_flow_context_resolver.py similarity index 100% rename from src/promptflow/promptflow/_sdk/operations/_flow_context_resolver.py rename to src/promptflow/promptflow/core/_flow_context_resolver.py diff --git a/src/promptflow/promptflow/core/_utils.py b/src/promptflow/promptflow/core/_utils.py new file mode 100644 index 00000000000..80011e0f787 --- /dev/null +++ b/src/promptflow/promptflow/core/_utils.py @@ -0,0 +1,121 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +import json +import multiprocessing +from pathlib import Path +from typing import Dict, Union + +from promptflow._constants import ( + DEFAULT_ENCODING, + DEFAULT_FLOW_YAML_FILE_NAME, + FLOW_META_JSON, + FLOW_META_JSON_GEN_TIMEOUT, + PROMPT_FLOW_DIR_NAME, +) +from promptflow._utils.context_utils import _change_working_dir, inject_sys_path +from promptflow._utils.logger_utils import LoggerFactory +from promptflow.core._errors import GenerateFlowMetaJsonError + +logger = LoggerFactory.get_logger(name=__name__) + + +def _generate_meta_from_file(working_dir, source_path, entry, meta_dict, exception_list): + from promptflow._core.tool_meta_generator import generate_flow_meta_dict_by_file + + with _change_working_dir(working_dir), inject_sys_path(working_dir): + try: + result = generate_flow_meta_dict_by_file( + path=source_path, + entry=entry, + ) + meta_dict.update(result) + except Exception as e: + exception_list.append(str(e)) + + +def _generate_flow_meta( + flow_directory: Path, + source_path: str, + entry: str, + timeout: int, + *, + load_in_subprocess: bool = True, +) -> Dict[str, dict]: + """Generate tool meta from files. + + :param flow_directory: flow directory + :param tools: tool list + :param raise_error: whether raise error when generate meta failed + :param timeout: timeout for generate meta + :param include_errors_in_output: whether include errors in output + :param load_in_subprocess: whether load tool meta with subprocess to prevent system path disturb. Default is True. + If set to False, will load tool meta in sync mode and timeout need to be handled outside current process. + :return: tool meta dict + """ + if load_in_subprocess: + # use multiprocess generate to avoid system path disturb + manager = multiprocessing.Manager() + meta_dict = manager.dict() + exception_list = manager.list() + p = multiprocessing.Process( + target=_generate_meta_from_file, args=(flow_directory, source_path, entry, meta_dict, exception_list) + ) + p.start() + p.join(timeout=timeout) + if p.is_alive(): + logger.warning(f"Generate meta timeout after {timeout} seconds, terminate the process.") + p.terminate() + p.join() + else: + meta_dict, exception_list = {}, [] + + # There is no built-in method to forcefully stop a running thread/coroutine in Python + # because abruptly stopping a thread can cause issues like resource leaks, + # deadlocks, or inconsistent states. + # Caller needs to handle the timeout outside current process. + logger.warning( + "Generate meta in current process and timeout won't take effect. " + "Please handle timeout manually outside current process." + ) + _generate_meta_from_file(flow_directory, source_path, entry, meta_dict, exception_list) + # directly raise error if failed to generate meta + if len(exception_list) > 0: + error_message = "Generate meta failed, detail error:\n" + str(exception_list) + raise GenerateFlowMetaJsonError(error_message) + return dict(meta_dict) + + +def generate_flow_meta( + flow_directory: Union[str, Path], + source_path: str, + entry: str, + dump: bool = True, + timeout: int = FLOW_META_JSON_GEN_TIMEOUT, + load_in_subprocess: bool = True, +) -> dict: + """Generate flow.json for a flow directory.""" + + flow_meta = _generate_flow_meta( + flow_directory=flow_directory, + source_path=source_path, + entry=entry, + timeout=timeout, + load_in_subprocess=load_in_subprocess, + ) + + if dump: + # dump as flow.tools.json + promptflow_folder = flow_directory / PROMPT_FLOW_DIR_NAME + promptflow_folder.mkdir(exist_ok=True) + with open(promptflow_folder / FLOW_META_JSON, mode="w", encoding=DEFAULT_ENCODING) as f: + json.dump(flow_meta, f, indent=4) + + return flow_meta + + +def resolve_flow_path(flow_path: Path): + """Resolve given flow path to dag file path.""" + if flow_path.is_dir(): + flow_path = flow_path / DEFAULT_FLOW_YAML_FILE_NAME + return flow_path diff --git a/src/promptflow/promptflow/exceptions.py b/src/promptflow/promptflow/exceptions.py index 33330a95d6f..314743f93cf 100644 --- a/src/promptflow/promptflow/exceptions.py +++ b/src/promptflow/promptflow/exceptions.py @@ -22,6 +22,7 @@ class ErrorTarget(str, Enum): EXECUTOR = "Executor" BATCH = "Batch" + CORE = "Core" FLOW_EXECUTOR = "FlowExecutor" NODE_EXECUTOR = "NodeExecutor" TOOL = "Tool" diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_as_func.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_as_func.py index 71d3206d210..7660710b14d 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_as_func.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_as_func.py @@ -14,8 +14,8 @@ from promptflow import load_flow from promptflow._sdk._errors import ConnectionNotFoundError, InvalidFlowError from promptflow._sdk.entities import CustomConnection -from promptflow._sdk.operations._flow_context_resolver import FlowContextResolver from promptflow._utils.flow_utils import dump_flow_dag, load_flow_dag +from promptflow.core._flow_context_resolver import FlowContextResolver from promptflow.entities import FlowContext from promptflow.exceptions import UserErrorException @@ -52,15 +52,17 @@ def test_flow_as_a_func(self, test_folder): ], ) async def test_flow_as_a_func_asynckw(self, async_call_folder): - f = load_flow(async_call_folder, is_async_call=True) + from promptflow.core._flow import AsyncFlow + + f = AsyncFlow.load(async_call_folder) result = await f(key="PATH") assert result["output"] is not None @pytest.mark.asyncio async def test_flow_as_a_func_real_async(self): - from promptflow._sdk.entities._flow import AsyncProtectedFlow + from promptflow.core._flow import AsyncFlow - original_async_func = AsyncProtectedFlow.invoke_async + original_async_func = AsyncFlow.invoke_async # Modify the original function and retrieve the time info. run_info_group = [] @@ -73,9 +75,9 @@ async def parse_invoke_async(*args, **kwargs): node_run_infos_group.append(obj.node_run_infos) return obj - with mock.patch("promptflow._sdk.entities._flow.AsyncProtectedFlow.invoke_async", parse_invoke_async): - f_async_tools = load_flow(f"{FLOWS_DIR}/async_tools", is_async_call=True) - f_env_var_async = load_flow(f"{FLOWS_DIR}/print_env_var_async", is_async_call=True) + with mock.patch("promptflow.core._flow.AsyncFlow.invoke_async", parse_invoke_async): + f_async_tools = AsyncFlow.load(f"{FLOWS_DIR}/async_tools") + f_env_var_async = AsyncFlow.load(f"{FLOWS_DIR}/print_env_var_async") time_start = datetime.now() results = await asyncio.gather( diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_flow.py b/src/promptflow/tests/sdk_cli_test/unittests/test_flow.py index 4fded942c94..4f259591754 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_flow.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_flow.py @@ -7,8 +7,8 @@ from marshmallow import ValidationError from promptflow import load_flow -from promptflow._sdk.entities._eager_flow import EagerFlow -from promptflow._sdk.entities._flow import ProtectedFlow +from promptflow._sdk.entities._eager_flow import FlexFlow +from promptflow._sdk.entities._flow import Flow FLOWS_DIR = Path("./tests/test_configs/flows") EAGER_FLOWS_DIR = Path("./tests/test_configs/eager_flows") @@ -26,7 +26,7 @@ class TestRun: ) def test_eager_flow_load(self, kwargs): flow = load_flow(**kwargs) - assert isinstance(flow, EagerFlow) + assert isinstance(flow, FlexFlow) @pytest.mark.parametrize( "kwargs", @@ -37,11 +37,11 @@ def test_eager_flow_load(self, kwargs): ) def test_dag_flow_load(self, kwargs): flow = load_flow(**kwargs) - assert isinstance(flow, ProtectedFlow) + assert isinstance(flow, Flow) def test_flow_load_advanced(self): flow = load_flow(source=EAGER_FLOWS_DIR / "flow_with_environment") - assert isinstance(flow, EagerFlow) + assert isinstance(flow, FlexFlow) assert flow._data["environment"] == {"python_requirements_txt": "requirements.txt"} @pytest.mark.parametrize( diff --git a/src/promptflow/tests/test_configs/notebooks/dummy.ipynb b/src/promptflow/tests/test_configs/notebooks/dummy.ipynb index 3a05c0bdfdd..35adbd9c479 100644 --- a/src/promptflow/tests/test_configs/notebooks/dummy.ipynb +++ b/src/promptflow/tests/test_configs/notebooks/dummy.ipynb @@ -89,12 +89,12 @@ "outputs": [], "source": [ "# Load sync flow as an async function\n", - "from promptflow import load_flow\n", - "f_async = load_flow(\"../flows/print_env_var\", is_async_call=True)\n", + "from promptflow.core import AsyncFlow, Flow\n", + "f_async = AsyncFlow.load(\"../flows/print_env_var\")\n", "output = await f_async(key=\"PATH\")\n", "\n", "# Load sync flow as a sync function\n", - "f_sync = load_flow(\"../flows/print_env_var\")\n", + "f_sync = Flow.load(\"../flows/print_env_var\")\n", "output = f_sync(key=\"PATH\")" ] } From f545907a5c8547560656cbc7393eb6fbf599ab90 Mon Sep 17 00:00:00 2001 From: Ying Chen Date: Thu, 14 Mar 2024 14:18:50 +0800 Subject: [PATCH 051/204] Auotomate pyinstaller hidden import and metafile for msi build (#2280) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. https://github.com/microsoft/promptflow/actions/runs/8226515639/job/22493072217 # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Ying Chen <2601502859@qq.com> Co-authored-by: zhangxingzhi --- .github/workflows/build_msi_installer.yml | 6 ++ scripts/installer/windows/README.md | 12 +-- .../windows/scripts/generate_dependency.py | 84 +++++++++++++++++++ ...promptflow.spec => promptflow.spec.jinja2} | 29 +++++-- 4 files changed, 118 insertions(+), 13 deletions(-) create mode 100644 scripts/installer/windows/scripts/generate_dependency.py rename scripts/installer/windows/scripts/{promptflow.spec => promptflow.spec.jinja2} (67%) diff --git a/.github/workflows/build_msi_installer.yml b/.github/workflows/build_msi_installer.yml index 5513f34ca82..f252d5d6d04 100644 --- a/.github/workflows/build_msi_installer.yml +++ b/.github/workflows/build_msi_installer.yml @@ -109,6 +109,12 @@ jobs: scriptPath: ${{ env.testWorkingDirectory }} + - name: Generate promptflow spec file to config pyinstaller + working-directory: ${{ github.workspace }}/scripts/installer/windows/scripts + run: | + python generate_dependency.py + Get-Content promptflow.spec + - name: Build Pyinstaller project working-directory: ${{ github.workspace }}/scripts/installer/windows/scripts run: | diff --git a/scripts/installer/windows/README.md b/scripts/installer/windows/README.md index 95657c1c821..7a8564bcd3b 100644 --- a/scripts/installer/windows/README.md +++ b/scripts/installer/windows/README.md @@ -20,14 +20,16 @@ Trigger the [workflow](https://github.com/microsoft/promptflow/actions/workflows 5. We recommend creating a clean virtual Python environment and installing all dependencies using src/promptflow/setup.py. - `python -m venv venv` - `venv\Scripts\activate` - - `pip install promptflow[azure,executable] promptflow-tools` + - `pip install promptflow[azure,executable,azureml-serving,executor-service] promptflow-tools` ### Building 1. Update the version number `$(env.CLI_VERSION)` and `$(env.FILE_VERSION)` in `product.wxs`, `promptflow.wixproj` and `version_info.txt`. -2. `cd scripts/installer/windows/scripts` and run `pyinstaller promptflow.spec`. -3. `cd scripts/installer/windows` and Run `msbuild /t:rebuild /p:Configuration=Release /p:Platform=x64 promptflow.wixproj`. -4. The unsigned MSI will be in the `scripts/installer/windows/out` folder. +2. `cd scripts/installer/windows/scripts` and run `python generate_dependency.py`. +3. run `pyinstaller promptflow.spec`. +4. `cd scripts/installer/windows` and Run `msbuild /t:rebuild /p:Configuration=Release /p:Platform=x64 promptflow.wixproj`. +5. The unsigned MSI will be in the `scripts/installer/windows/out` folder. ## Notes -- If you encounter "Access is denied" error when running promptflow. Please follow the [link](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-deployment-implement?view=o365-worldwide#customize-attack-surface-reduction-rules) to add the executable to the Windows Defender Attack Surface Reduction (ASR) rule. \ No newline at end of file +- If you encounter "Access is denied" error when running promptflow. Please follow the [link](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-deployment-implement?view=o365-worldwide#customize-attack-surface-reduction-rules) to add the executable to the Windows Defender Attack Surface Reduction (ASR) rule. +Or you can add promptflow installation folder to the Windows Defender exclusion list. \ No newline at end of file diff --git a/scripts/installer/windows/scripts/generate_dependency.py b/scripts/installer/windows/scripts/generate_dependency.py new file mode 100644 index 00000000000..4f06c4672a6 --- /dev/null +++ b/scripts/installer/windows/scripts/generate_dependency.py @@ -0,0 +1,84 @@ +import ast +import re +import subprocess +import copy +from pathlib import Path +from promptflow._sdk._utils import render_jinja_template + + +def extract_requirements(file_path): + with open(file_path, 'r') as file: + tree = ast.parse(file.read()) + + install_requires = [] + extras_requires = {} + for node in ast.walk(tree): + if isinstance(node, ast.Assign) and node.targets[0].id == 'REQUIRES': + install_requires = [elt.s for elt in node.value.elts] + elif isinstance(node, ast.Call) and getattr(node.func, 'id', None) == 'setup': + for keyword in node.keywords: + if keyword.arg == 'extras_require': + extras_requires = ast.literal_eval(keyword.value) + return install_requires, extras_requires + + +def extract_package_names(packages): + package_names = [] + for package in packages: + match = re.match(r'^([a-zA-Z0-9-_.]+)', package) + if match: + package_names.append(match.group(1)) + return package_names + + +def get_package_dependencies(package_name_list): + dependencies = [] + for package_name in package_name_list: + result = subprocess.run(['pip', 'show', package_name], stdout=subprocess.PIPE) + lines = result.stdout.decode('utf-8', errors="ignore").splitlines() + for line in lines: + if line.startswith('Requires'): + dependency = line.split(': ')[1].split(', ') + if dependency != ['']: + dependencies.extend(dependency) + break + return dependencies + + +if __name__ == '__main__': + dependencies = [] + install_requires, extras_requires = extract_requirements('../../../../src/promptflow/setup.py') + install_requires_names = extract_package_names(install_requires) + dependencies.extend(install_requires_names) + + for key in extras_requires: + extras_require_names = extract_package_names(extras_requires[key]) + dependencies.extend(extras_require_names) + direct_package_dependencies = get_package_dependencies(dependencies) + all_packages = list(set(dependencies) | set(direct_package_dependencies)) + hidden_imports = copy.deepcopy(all_packages) + meta_packages = copy.deepcopy(all_packages) + + special_packages = ["streamlit-quill", "flask-cors", "flask-restx"] + for i in range(len(hidden_imports)): + # need special handeling because it use _ to import + if hidden_imports[i] in special_packages: + hidden_imports[i] = hidden_imports[i].replace('-', '_').lower() + else: + hidden_imports[i] = hidden_imports[i].replace('-', '.').lower() + + hidden_imports.remove("azure.storage.file.share") + hidden_imports.append("azure.storage.fileshare") + hidden_imports.remove("azure.storage.file.datalake") + hidden_imports.append("azure.storage.filedatalake") + + render_context = { + "hidden_imports": hidden_imports, + "all_packages": all_packages, + "meta_packages": meta_packages, + } + # always use unix line ending + Path("./promptflow.spec").write_bytes( + render_jinja_template("./promptflow.spec.jinja2", **render_context) + .encode("utf-8") + .replace(b"\r\n", b"\n"),) diff --git a/scripts/installer/windows/scripts/promptflow.spec b/scripts/installer/windows/scripts/promptflow.spec.jinja2 similarity index 67% rename from scripts/installer/windows/scripts/promptflow.spec rename to scripts/installer/windows/scripts/promptflow.spec.jinja2 index a1f3955be85..4c78a22f8b7 100644 --- a/scripts/installer/windows/scripts/promptflow.spec +++ b/scripts/installer/windows/scripts/promptflow.spec.jinja2 @@ -1,25 +1,38 @@ # -*- mode: python ; coding: utf-8 -*- -from PyInstaller.utils.hooks import collect_data_files -from PyInstaller.utils.hooks import copy_metadata +from PyInstaller.utils.hooks import collect_data_files, collect_all, copy_metadata datas = [('../resources/CLI_LICENSE.rtf', '.'), ('../../../../src/promptflow/NOTICE.txt', '.'), ('../../../../src/promptflow/promptflow/_sdk/data/executable/', './promptflow/_sdk/data/executable/'), ('../../../../src/promptflow-tools/promptflow/tools/', './promptflow/tools/'), ('./pf.bat', '.'), ('./pfs.bat', '.'), ('./pfazure.bat', '.'), ('./pfsvc.bat', '.')] -datas += collect_data_files('streamlit') -datas += copy_metadata('streamlit') + +all_packages = {{all_packages}} +meta_packages = {{meta_packages}} + +for package in all_packages: + datas += collect_data_files(package) + +for package in meta_packages: + datas += copy_metadata(package) + +opentelemetry_datas, opentelemetry_binaries, opentelemetry_hiddenimports = collect_all('opentelemetry') +datas += opentelemetry_datas datas += collect_data_files('streamlit_quill') datas += collect_data_files('promptflow') -datas += copy_metadata('opentelemetry-sdk') -hidden_imports = ['streamlit.runtime.scriptrunner.magic_funcs', 'win32timezone', 'promptflow', 'opentelemetry.exporter.otlp.proto.http'] +datas += copy_metadata('promptflow') +hidden_imports = ['win32timezone', 'promptflow', 'opentelemetry.context.contextvars_context', 'streamlit.runtime.scriptrunner.magic_funcs'] + {{hidden_imports}} + +hidden_imports += opentelemetry_hiddenimports +binaries = [] +binaries += opentelemetry_binaries block_cipher = None pfcli_a = Analysis( ['pfcli.py'], pathex=[], - binaries=[], + binaries=binaries, datas=datas, hiddenimports=hidden_imports, hookspath=[], @@ -62,4 +75,4 @@ coll = COLLECT( upx=True, upx_exclude=[], name='promptflow', -) +) \ No newline at end of file From cc4a1c6fea4d6d59ff562b96968aab34dd9de4bd Mon Sep 17 00:00:00 2001 From: Honglin Date: Thu, 14 Mar 2024 14:33:41 +0800 Subject: [PATCH 052/204] [Internal] Postpone the operation to get default datastore (#2335) # Description - Postpone the operation to get default datastore to improve the efficiency of azure PFClient initialization. - Handle invalid workspace type like "hub". # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .../azure/operations/_run_operations.py | 13 +- .../e2etests/test_run_operations.py | 13 +- ...rations_TestFlowRun_test_download_run.yaml | 4069 ++++++++++++----- ..._operations_TestFlowRun_test_run_bulk.yaml | 522 ++- ...TestFlowRun_test_wrong_workspace_type.yaml | 46 + 5 files changed, 3339 insertions(+), 1324 deletions(-) create mode 100644 src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_wrong_workspace_type.yaml diff --git a/src/promptflow/promptflow/azure/operations/_run_operations.py b/src/promptflow/promptflow/azure/operations/_run_operations.py index e85e520abbc..6df3bf4ed09 100644 --- a/src/promptflow/promptflow/azure/operations/_run_operations.py +++ b/src/promptflow/promptflow/azure/operations/_run_operations.py @@ -103,7 +103,6 @@ def __init__( self._credential = credential self._flow_operations = flow_operations self._orchestrators = OperationOrchestrator(self._all_operations, self._operation_scope, self._operation_config) - self._workspace_default_datastore = self._datastore_operations.get_default() @property def _data_operations(self): @@ -119,6 +118,18 @@ def _run_history_endpoint_url(self): endpoint = self._service_caller._service_endpoint return endpoint + "history/v1.0" + self._service_caller._common_azure_url_pattern + @cached_property + def _workspace_default_datastore(self): + kind = self._workspace._kind + # for a normal workspace the kind is "default", for an ai project it's "project". Except these two values, it + # can also be "hub" which is not a supported workspace type to get default datastore. + if kind not in ["default", "project"]: + raise RunOperationParameterError( + "Failed to get default workspace datastore. Please make sure you are using the right workspace which " + f"is either an azure machine learning studio workspace or an azure ai project. Got {kind!r} instead." + ) + return self._datastore_operations.get_default() + def _get_run_portal_url(self, run_id: str): """Get the portal url for the run.""" portal_url, run_info = None, None diff --git a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_run_operations.py b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_run_operations.py index f45c20e6719..6f648e71fcd 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_run_operations.py +++ b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_run_operations.py @@ -18,9 +18,10 @@ import pytest from azure.ai.ml import ManagedIdentityConfiguration from azure.ai.ml.entities import IdentityConfiguration +from pytest_mock import MockFixture from promptflow._sdk._constants import DownloadedRun, RunStatus -from promptflow._sdk._errors import InvalidRunError, InvalidRunStatusError, RunNotFoundError +from promptflow._sdk._errors import InvalidRunError, InvalidRunStatusError, RunNotFoundError, RunOperationParameterError from promptflow._sdk._load_functions import load_run from promptflow._sdk.entities import Run from promptflow._utils.flow_utils import get_flow_lineage_id @@ -1207,7 +1208,8 @@ def test_automatic_runtime_with_managed_identity(self, pf, randstr: Callable[[st user_assigned_identities=[ ManagedIdentityConfiguration(client_id="fake_client_id", resource_id="fake_resource_id") ], - ) + ), + _kind="default", # make the mocked workspace pass the datastore check ) def submit(*args, **kwargs): @@ -1226,3 +1228,10 @@ def submit(*args, **kwargs): params_override=[{"name": run_id}], ) pf.runs.create_or_update(run=run) + + def test_wrong_workspace_type(self, pf: PFClient, mocker: MockFixture): + # test wrong workspace type "hub" + mocker.patch.object(pf.runs._workspace, "_kind", "hub") + with pytest.raises(RunOperationParameterError, match="Failed to get default workspace datastore"): + datastore = pf.runs._workspace_default_datastore + assert datastore diff --git a/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_download_run.yaml b/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_download_run.yaml index 2a2bfb0fa23..a19404e3d13 100644 --- a/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_download_run.yaml +++ b/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_download_run.yaml @@ -5,12 +5,12 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 - Python/3.10.13 (Windows-10-10.0.22631-SP0) + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000 response: @@ -32,14 +32,14 @@ interactions: - no-cache strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked vary: - - Accept-Encoding,Accept-Encoding + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE x-content-type-options: - nosniff x-request-time: - - '0.027' + - '0.020' status: code: 200 message: OK @@ -49,12 +49,12 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 - Python/3.10.13 (Windows-10-10.0.22631-SP0) + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores?count=30&isDefault=true&orderByAsc=false response: @@ -84,14 +84,14 @@ interactions: - no-cache strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked vary: - - Accept-Encoding,Accept-Encoding + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE x-content-type-options: - nosniff x-request-time: - - '0.108' + - '0.069' status: code: 200 message: OK @@ -101,12 +101,12 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 - Python/3.10.13 (Windows-10-10.0.22631-SP0) + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore response: @@ -136,14 +136,14 @@ interactions: - no-cache strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked vary: - - Accept-Encoding,Accept-Encoding + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE x-content-type-options: - nosniff x-request-time: - - '0.071' + - '0.086' status: code: 200 message: OK @@ -153,14 +153,14 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive Content-Length: - '0' User-Agent: - - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 - Python/3.10.13 (Windows-10-10.0.22631-SP0) + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore/listSecrets response: @@ -179,14 +179,12 @@ interactions: - no-cache strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding + x-cache: + - CONFIG_NOCACHE x-content-type-options: - nosniff x-request-time: - - '0.179' + - '0.075' status: code: 200 message: OK @@ -196,13 +194,13 @@ interactions: Accept: - application/xml Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:10:24 GMT + - Wed, 13 Mar 2024 08:39:40 GMT x-ms-version: - '2023-11-03' method: HEAD @@ -246,13 +244,13 @@ interactions: Accept: - application/xml Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:10:26 GMT + - Wed, 13 Mar 2024 08:39:41 GMT x-ms-version: - '2023-11-03' method: HEAD @@ -280,12 +278,12 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 - Python/3.10.13 (Windows-10-10.0.22631-SP0) + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore response: @@ -315,14 +313,14 @@ interactions: - no-cache strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked vary: - - Accept-Encoding,Accept-Encoding + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE x-content-type-options: - nosniff x-request-time: - - '0.067' + - '0.084' status: code: 200 message: OK @@ -332,14 +330,14 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive Content-Length: - '0' User-Agent: - - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 - Python/3.10.13 (Windows-10-10.0.22631-SP0) + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore/listSecrets response: @@ -358,14 +356,12 @@ interactions: - no-cache strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding + x-cache: + - CONFIG_NOCACHE x-content-type-options: - nosniff x-request-time: - - '0.099' + - '0.086' status: code: 200 message: OK @@ -375,13 +371,13 @@ interactions: Accept: - application/xml Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:10:29 GMT + - Wed, 13 Mar 2024 08:39:45 GMT x-ms-version: - '2023-11-03' method: HEAD @@ -399,7 +395,7 @@ interactions: content-type: - application/octet-stream last-modified: - - Tue, 19 Dec 2023 06:05:25 GMT + - Fri, 08 Mar 2024 20:43:29 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 vary: @@ -407,9 +403,9 @@ interactions: x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Tue, 19 Dec 2023 06:05:25 GMT + - Fri, 08 Mar 2024 20:43:29 GMT x-ms-meta-name: - - 7b68bf5e-6ef4-4eb3-9f49-28f9a5baad87 + - b03f97dc-2031-4aef-b0fb-c57011d59435 x-ms-meta-upload_status: - completed x-ms-meta-version: @@ -425,13 +421,13 @@ interactions: Accept: - application/xml Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:10:30 GMT + - Wed, 13 Mar 2024 08:39:46 GMT x-ms-version: - '2023-11-03' method: HEAD @@ -457,25 +453,25 @@ interactions: body: '{"flowDefinitionDataStoreName": "workspaceblobstore", "flowDefinitionBlobPath": "LocalUpload/000000000000000000000000000000000000/hello-world/flow.dag.yaml", "runId": "batch_run_name", "runDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", - "runExperimentName": "", "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/000000000000000000000000000000000000/webClassification3.jsonl"}, - "inputsMapping": {"name": "${data.url}"}, "connections": {}, "environmentVariables": - {}, "runtimeName": "fake-runtime-name", "sessionId": "000000000000000000000000000000000000000000000000", + "runExperimentName": "", "sessionId": "000000000000000000000000000000000000000000000000", "sessionSetupMode": "SystemWait", "flowLineageId": "0000000000000000000000000000000000000000000000000000000000000000", - "runDisplayNameGenerationType": "UserProvidedMacro"}' + "runtimeName": "fake-runtime-name", "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/000000000000000000000000000000000000/webClassification3.jsonl"}, + "inputsMapping": {"name": "${data.url}"}, "connections": {}, "environmentVariables": + {}, "runDisplayNameGenerationType": "UserProvidedMacro"}' headers: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive Content-Length: - - '812' + - '806' Content-Type: - application/json User-Agent: - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown - Python/3.10.13 (Windows-10-10.0.22631-SP0) + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: POST uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/submit response: @@ -489,11 +485,11 @@ interactions: content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload x-content-type-options: - nosniff x-request-time: - - '6.897' + - '4.273' status: code: 200 message: OK @@ -503,178 +499,32 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown - Python/3.10.13 (Windows-10-10.0.22631-SP0) + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name response: body: - string: '{"flowGraph": {"nodes": [{"name": "hello_world", "type": "python", - "source": {"type": "code", "path": "hello_world.py"}, "inputs": {"name": "${inputs.name}"}, - "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Content Safety - (Text Analyze)", "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "hate_category": {"type": ["string"], "default": "medium_sensitivity", "enum": - ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "self_harm_category": {"type": ["string"], "default": "medium_sensitivity", - "enum": ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "sexual_category": {"type": ["string"], "default": "medium_sensitivity", "enum": - ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "text": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "violence_category": {"type": ["string"], - "default": "medium_sensitivity", "enum": ["disable", "low_sensitivity", "medium_sensitivity", - "high_sensitivity"], "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}}, "description": "Use Azure Content Safety to detect - harmful content.", "module": "promptflow.tools.azure_content_safety", "function": - "analyze_text", "is_builtin": true, "package": "promptflow-tools", "package_version": - "0.0.216", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], - "tool_state": "stable"}, {"name": "Embedding", "type": "python", "inputs": - {"connection": {"type": ["AzureOpenAIConnection", "OpenAIConnection"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "deployment_name": - {"type": ["string"], "enabled_by": "connection", "enabled_by_type": ["AzureOpenAIConnection"], - "model_list": ["text-embedding-ada-002", "text-search-ada-doc-001", "text-search-ada-query-001"], - "capabilities": {"completion": false, "chat_completion": false, "embeddings": - true}, "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default"}, "input": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "model": {"type": ["string"], "enum": ["text-embedding-ada-002", - "text-search-ada-doc-001", "text-search-ada-query-001"], "enabled_by": "connection", - "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use Open AI''s embedding - model to create an embedding vector representing the input text.", "module": - "promptflow.tools.embedding", "function": "embedding", "is_builtin": true, - "package": "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Open Source LLM", "type": "custom_llm", - "inputs": {"api": {"type": ["string"], "enum": ["chat", "completion"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "connection": {"type": - ["CustomConnection"], "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "deployment_name": {"type": ["string"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "endpoint_name": - {"type": ["string"], "default": "-- please enter an endpoint name --", "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_new_tokens": - {"type": ["int"], "default": 500, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "model_kwargs": {"type": ["object"], "default": - "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default", "advanced": true}, "temperature": {"type": ["double"], "default": - 1.0, "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default"}, "top_p": {"type": ["double"], "default": 1.0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default", "advanced": true}}, - "description": "Use an Open Source model from the Azure Model catalog, deployed - to an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": - "promptflow.tools.open_source_llm", "class_name": "OpenSourceLLM", "function": - "call", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACgElEQVR4nGWSz2vcVRTFP/e9NzOZ1KDGohASslLEH6VLV0ak4l/QpeDCrfQPcNGliODKnVm4EBdBsIjQIlhciKW0ycKFVCSNbYnjdDLtmPnmO/nO9917XcxMkjYX3uLx7nnn3HOuMK2Nix4fP78ZdrYXVkLVWjf3l3B1B+HpcjzGFtmqa6cePz7/x0dnn1n5qhj3iBJPYREIURAJuCtpY8PjReDbrf9WG7H1fuefwQU9qKztTcMJT+PNnEFvjGVDBDlSsH6p/9MLzy6+NxwVqI8RAg4IPmWedMckdLYP6O6UpIaQfvyyXG012+e79/ZfHukoS1ISMT2hGTB1RkUmNgQ5QZ0w+a2VWDq73MbdEWmfnnv6UWe7oNzPaLapl5CwuLTXK9WUGBuCjqekzhP+z52ZXOrKMD3OJg0Hh778aiOuvpnYvp05d6GJO4iAO4QAe/eV36/X5LFRV4Zmn+AdkqlL8Vjp3oVioOz+WTPzzYEgsN+fgPLYyJVheSbPPVl2ikeGZRjtG52/8rHuaV9VOlpP2OtKyVndcRVCSqOhsvxa4vW359i6OuKdD+aP8Q4SYPdOzS/flGjt1JUSaMqZ5nwa1Y8qWb/Ud/eZZkHisYezEM0m+fcelDr8F1SqW2LNK6r1jXQwyLzy1hxvrLXZulry7ocL+FS6G4QIu3fG/Px1gdYeW7LIgXU2P/115TOA5G7e3Rmj2aS/m7l5pThiZzrCcE/d1XHzbln373nw7y6veeoUm5KCNKT/IPPwbiY1hYd/l5MIT65BMFt87sU4v9D7/JMflr44uV6hGh1+L4RCkg6z5iK2tAhNLeLsNGwYA4fDYnC/drvuuFxe86NV/x+Ut27g0FvykgAAAABJRU5ErkJggg==", - "is_builtin": true, "package": "promptflow-tools", "package_version": "0.0.216", - "enable_kwargs": false, "tool_state": "stable"}, {"name": "OpenAI GPT-4V", - "type": "custom_llm", "inputs": {"connection": {"type": ["OpenAIConnection"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "frequency_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_tokens": {"type": - ["int"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], - "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}, - "presence_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "stop": {"type": - ["list"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "temperature": {"type": ["double"], "default": 1, - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use OpenAI GPT-4V to leverage - vision ability.", "module": "promptflow.tools.openai_gpt4v", "class_name": - "OpenAI", "function": "chat", "is_builtin": true, "package": "promptflow-tools", - "package_version": "0.0.216", "default_prompt": "# system:\nAs an AI assistant, - your task involves interpreting images and responding to questions about the - image.\nRemember to provide accurate answers based on the information present - in the image.\n\n# user:\nCan you tell me what the image depicts?\n![image]({{image_input}})\n", - "enable_kwargs": false, "tool_state": "stable"}, {"name": "Serp API", "type": - "python", "inputs": {"connection": {"type": ["SerpConnection"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "engine": {"type": - ["string"], "default": "google", "enum": ["google", "bing"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "location": {"type": - ["string"], "default": "", "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "num": {"type": ["int"], "default": "10", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "query": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "safe": {"type": ["string"], "default": "off", - "enum": ["active", "off"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use Serp API to obtain search - results from a specific search engine.", "module": "promptflow.tools.serpapi", - "class_name": "SerpAPI", "function": "search", "is_builtin": true, "package": - "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": false, - "tool_state": "stable"}, {"name": "Faiss Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "top_k": {"type": ["int"], "default": "3", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "vector": {"type": ["list"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Search vector based query - from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", - "class_name": "FaissIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector DB Lookup", "type": "python", - "inputs": {"class_name": {"type": ["string"], "enabled_by": "connection", - "enabled_by_type": ["WeaviateConnection"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "collection_name": {"type": ["string"], "enabled_by": - "connection", "enabled_by_type": ["QdrantConnection"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "connection": {"type": - ["CognitiveSearchConnection", "QdrantConnection", "WeaviateConnection"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "index_name": {"type": - ["string"], "enabled_by": "connection", "enabled_by_type": ["CognitiveSearchConnection"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "search_filters": {"type": ["object"], "enabled_by": "connection", "enabled_by_type": - ["CognitiveSearchConnection", "QdrantConnection"], "allow_manual_entry": false, - "is_multi_select": false, "input_type": "default"}, "search_params": {"type": - ["object"], "enabled_by": "connection", "enabled_by_type": ["CognitiveSearchConnection", - "QdrantConnection"], "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "text_field": {"type": ["string"], "enabled_by": - "connection", "enabled_by_type": ["CognitiveSearchConnection", "QdrantConnection", - "WeaviateConnection"], "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "top_k": {"type": ["int"], "default": "3", "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "vector": {"type": - ["list"], "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default"}, "vector_field": {"type": ["string"], "enabled_by": "connection", - "enabled_by_type": ["CognitiveSearchConnection"], "allow_manual_entry": false, - "is_multi_select": false, "input_type": "default"}}, "description": "Search - vector based query from existing Vector Database.", "module": "promptflow_vectordb.tool.vector_db_lookup", - "class_name": "VectorDBLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "query": {"type": ["object"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": - ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}}, "description": "Search text or vector based query - from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", - "class_name": "VectorIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "hello_world.py", "type": "python", - "inputs": {"name": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "source": "hello_world.py", "function": - "hello_world", "is_builtin": false, "enable_kwargs": false, "tool_state": - "stable"}], "inputs": {"name": {"type": "string", "default": "hod", "is_chat_input": - false}}, "outputs": {"result": {"type": "string", "reference": "${hello_world.output}", - "evaluation_only": false, "is_chat_output": false}}}, "flowRunResourceId": - "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, - "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "test-runtime-ci", + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", - "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "4debf50d-5af4-4fd7-9e55-e2796fcf44bb", "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' headers: connection: - keep-alive content-length: - - '12912' + - '952' content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -682,7 +532,7 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.237' + - '0.183' status: code: 200 message: OK @@ -692,119 +542,1236 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown - Python/3.10.13 (Windows-10-10.0.22631-SP0) + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name response: body: - string: '{"flowGraph": {"nodes": [{"name": "hello_world", "type": "python", - "source": {"type": "code", "path": "hello_world.py"}, "inputs": {"name": "${inputs.name}"}, - "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Content Safety - (Text Analyze)", "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "hate_category": {"type": ["string"], "default": "medium_sensitivity", "enum": - ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "self_harm_category": {"type": ["string"], "default": "medium_sensitivity", - "enum": ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "sexual_category": {"type": ["string"], "default": "medium_sensitivity", "enum": - ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "text": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "violence_category": {"type": ["string"], - "default": "medium_sensitivity", "enum": ["disable", "low_sensitivity", "medium_sensitivity", - "high_sensitivity"], "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}}, "description": "Use Azure Content Safety to detect - harmful content.", "module": "promptflow.tools.azure_content_safety", "function": - "analyze_text", "is_builtin": true, "package": "promptflow-tools", "package_version": - "0.0.216", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], - "tool_state": "stable"}, {"name": "Embedding", "type": "python", "inputs": - {"connection": {"type": ["AzureOpenAIConnection", "OpenAIConnection"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "deployment_name": - {"type": ["string"], "enabled_by": "connection", "enabled_by_type": ["AzureOpenAIConnection"], - "model_list": ["text-embedding-ada-002", "text-search-ada-doc-001", "text-search-ada-query-001"], - "capabilities": {"completion": false, "chat_completion": false, "embeddings": - true}, "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default"}, "input": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "model": {"type": ["string"], "enum": ["text-embedding-ada-002", - "text-search-ada-doc-001", "text-search-ada-query-001"], "enabled_by": "connection", - "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use Open AI''s embedding - model to create an embedding vector representing the input text.", "module": - "promptflow.tools.embedding", "function": "embedding", "is_builtin": true, - "package": "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Open Source LLM", "type": "custom_llm", - "inputs": {"api": {"type": ["string"], "enum": ["chat", "completion"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "connection": {"type": - ["CustomConnection"], "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "deployment_name": {"type": ["string"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "endpoint_name": - {"type": ["string"], "default": "-- please enter an endpoint name --", "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_new_tokens": - {"type": ["int"], "default": 500, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "model_kwargs": {"type": ["object"], "default": - "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default", "advanced": true}, "temperature": {"type": ["double"], "default": - 1.0, "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default"}, "top_p": {"type": ["double"], "default": 1.0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default", "advanced": true}}, - "description": "Use an Open Source model from the Azure Model catalog, deployed - to an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": - "promptflow.tools.open_source_llm", "class_name": "OpenSourceLLM", "function": + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.160' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.176' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.160' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.174' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.160' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.276' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.303' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.221' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.187' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.156' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.201' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.168' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.177' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '952' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.236' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowGraph": {"nodes": [{"name": "hello_world", "type": "python", + "source": {"type": "code", "path": "hello_world.py"}, "inputs": {"name": "${inputs.name}"}, + "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Azure OpenAI + GPT-4 Turbo with Vision", "type": "custom_llm", "inputs": {"connection": {"type": + ["AzureOpenAIConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 0}}, "deployment_name": + {"type": ["string"], "enabled_by": "connection", "dynamic_list": {"func_path": + "promptflow.tools.aoai_gpt4v.list_deployment_names", "func_kwargs": [{"name": + "connection", "reference": "${inputs.connection}", "type": ["AzureOpenAIConnection"]}]}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, + "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use Azure OpenAI GPT-4 Turbo with Vision to leverage AOAI vision ability.", + "module": "promptflow.tools.aoai_gpt4v", "class_name": "AzureOpenAI", "function": + "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Content Safety (Text Analyze)", + "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "hate_category": {"type": ["string"], "default": "medium_sensitivity", "enum": + ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "self_harm_category": {"type": ["string"], "default": "medium_sensitivity", + "enum": ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "sexual_category": {"type": ["string"], "default": "medium_sensitivity", "enum": + ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "text": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "violence_category": {"type": ["string"], + "default": "medium_sensitivity", "enum": ["disable", "low_sensitivity", "medium_sensitivity", + "high_sensitivity"], "allow_manual_entry": false, "is_multi_select": false, + "input_type": "default"}}, "description": "Use Azure Content Safety to detect + harmful content.", "module": "promptflow.tools.azure_content_safety", "function": + "analyze_text", "is_builtin": true, "package": "promptflow-tools", "package_version": + "1.4.0rc1", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], + "tool_state": "stable"}, {"name": "Embedding", "type": "python", "inputs": + {"connection": {"type": ["AzureOpenAIConnection", "OpenAIConnection"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "deployment_name": + {"type": ["string"], "enabled_by": "connection", "enabled_by_type": ["AzureOpenAIConnection"], + "model_list": ["text-embedding-ada-002", "text-search-ada-doc-001", "text-search-ada-query-001"], + "capabilities": {"completion": false, "chat_completion": false, "embeddings": + true}, "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default"}, "input": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "model": {"type": ["string"], "enum": ["text-embedding-ada-002", + "text-search-ada-doc-001", "text-search-ada-query-001"], "enabled_by": "connection", + "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": true, "is_multi_select": + false, "input_type": "default"}}, "description": "Use Open AI''s embedding + model to create an embedding vector representing the input text.", "module": + "promptflow.tools.embedding", "function": "embedding", "is_builtin": true, + "package": "promptflow-tools", "package_version": "1.4.0rc1", "enable_kwargs": + false, "tool_state": "stable"}, {"name": "Open Model LLM", "type": "custom_llm", + "inputs": {"api": {"type": ["string"], "enum": ["chat", "completion"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 2}}, "deployment_name": {"type": ["string"], "default": "", "dynamic_list": + {"func_path": "promptflow.tools.open_model_llm.list_deployment_names", "func_kwargs": + [{"name": "endpoint", "optional": true, "reference": "${inputs.endpoint}", + "type": ["string"]}]}, "allow_manual_entry": true, "is_multi_select": false, + "input_type": "default", "ui_hints": {"index": 1}}, "endpoint_name": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow.tools.open_model_llm.list_endpoint_names"}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "max_new_tokens": {"type": ["int"], "default": + 500, "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "ui_hints": {"index": 4}}, "model_kwargs": {"type": ["object"], + "default": "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "advanced": true, "ui_hints": {"index": 6}}, "temperature": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}, "top_p": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "advanced": true, "ui_hints": {"index": 5}}}, + "description": "Use an open model from the Azure Model catalog, deployed to + an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": + "promptflow.tools.open_model_llm", "class_name": "OpenModelLLM", "function": + "call", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACgElEQVR4nGWSz2vcVRTFP/e9NzOZ1KDGohASslLEH6VLV0ak4l/QpeDCrfQPcNGliODKnVm4EBdBsIjQIlhciKW0ycKFVCSNbYnjdDLtmPnmO/nO9917XcxMkjYX3uLx7nnn3HOuMK2Nix4fP78ZdrYXVkLVWjf3l3B1B+HpcjzGFtmqa6cePz7/x0dnn1n5qhj3iBJPYREIURAJuCtpY8PjReDbrf9WG7H1fuefwQU9qKztTcMJT+PNnEFvjGVDBDlSsH6p/9MLzy6+NxwVqI8RAg4IPmWedMckdLYP6O6UpIaQfvyyXG012+e79/ZfHukoS1ISMT2hGTB1RkUmNgQ5QZ0w+a2VWDq73MbdEWmfnnv6UWe7oNzPaLapl5CwuLTXK9WUGBuCjqekzhP+z52ZXOrKMD3OJg0Hh778aiOuvpnYvp05d6GJO4iAO4QAe/eV36/X5LFRV4Zmn+AdkqlL8Vjp3oVioOz+WTPzzYEgsN+fgPLYyJVheSbPPVl2ikeGZRjtG52/8rHuaV9VOlpP2OtKyVndcRVCSqOhsvxa4vW359i6OuKdD+aP8Q4SYPdOzS/flGjt1JUSaMqZ5nwa1Y8qWb/Ud/eZZkHisYezEM0m+fcelDr8F1SqW2LNK6r1jXQwyLzy1hxvrLXZulry7ocL+FS6G4QIu3fG/Px1gdYeW7LIgXU2P/115TOA5G7e3Rmj2aS/m7l5pThiZzrCcE/d1XHzbln373nw7y6veeoUm5KCNKT/IPPwbiY1hYd/l5MIT65BMFt87sU4v9D7/JMflr44uV6hGh1+L4RCkg6z5iK2tAhNLeLsNGwYA4fDYnC/drvuuFxe86NV/x+Ut27g0FvykgAAAABJRU5ErkJggg==", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "enable_kwargs": false, "tool_state": "stable"}, {"name": "OpenAI GPT-4V", + "type": "custom_llm", "inputs": {"connection": {"type": ["OpenAIConnection"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, + "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use OpenAI GPT-4V to leverage vision ability.", "module": "promptflow.tools.openai_gpt4v", + "class_name": "OpenAI", "function": "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Serp API", "type": "python", "inputs": + {"connection": {"type": ["SerpConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "engine": {"type": ["string"], "default": + "google", "enum": ["google", "bing"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "location": {"type": ["string"], "default": + "", "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "num": {"type": ["int"], "default": "10", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "safe": {"type": + ["string"], "default": "off", "enum": ["active", "off"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Use Serp API to obtain search results from a specific search engine.", "module": + "promptflow.tools.serpapi", "class_name": "SerpAPI", "function": "search", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "enable_kwargs": false, "tool_state": "stable"}, {"name": "Index Lookup", + "type": "python", "inputs": {"acs_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_embedding_field": {"type": ["string"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Collection(Edm.Single)", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_index_connection": {"type": ["CognitiveSearchConnection"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "acs_index_name": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_indices", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "acs_metadata_field": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Azure AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "aoai_embedding_connection": {"type": + ["AzureOpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["Azure OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "embedding_deployment": {"type": ["string"], "enabled_by": + "embedding_type", "enabled_by_value": ["Azure OpenAI"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_aoai_embedding_deployments", + "func_kwargs": [{"name": "aoai_connection", "optional": false, "reference": + "${inputs.aoai_embedding_connection}", "type": ["AzurOpenAIConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "embedding_model": {"type": ["string"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI", "Hugging Face"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_embedding_models", + "func_kwargs": [{"name": "embedding_type", "optional": false, "reference": + "${inputs.embedding_type}", "type": ["string"]}]}, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "embedding_type": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search", "FAISS", "Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_embedding_types", + "func_kwargs": [{"name": "index_type", "optional": false, "reference": "${inputs.index_type}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "faiss_index_path": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["FAISS"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "index_type": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_index_types"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_asset_id": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Registered Index"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_registered_mlindices"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_content": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "generated_by": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.forward_mapping", + "func_kwargs": [{"name": "index_type", "reference": "${inputs.index_type}", + "type": ["string"]}, {"name": "mlindex_asset_id", "optional": true, "reference": + "${inputs.mlindex_asset_id}", "type": ["string"]}, {"name": "mlindex_path", + "optional": true, "reference": "${inputs.mlindex_path}", "type": ["string"]}, + {"name": "acs_index_connection", "optional": true, "reference": "${inputs.acs_index_connection}", + "type": ["CognitiveSearchConnection"]}, {"name": "acs_index_name", "optional": + true, "reference": "${inputs.acs_index_name}", "type": ["string"]}, {"name": + "acs_content_field", "optional": true, "reference": "${inputs.acs_content_field}", + "type": ["string"]}, {"name": "acs_embedding_field", "optional": true, "reference": + "${inputs.acs_embedding_field}", "type": ["string"]}, {"name": "acs_metadata_field", + "optional": true, "reference": "${inputs.acs_metadata_field}", "type": ["string"]}, + {"name": "semantic_configuration", "optional": true, "reference": "${inputs.semantic_configuration}", + "type": ["string"]}, {"name": "faiss_index_path", "optional": true, "reference": + "${inputs.faiss_index_path}", "type": ["string"]}, {"name": "pinecone_index_connection", + "optional": true, "reference": "${inputs.pinecone_index_connection}", "type": + ["string"]}, {"name": "pinecone_index_name", "optional": true, "reference": + "${inputs.pinecone_index_name}", "type": ["string"]}, {"name": "pinecone_content_field", + "optional": true, "reference": "${inputs.pinecone_content_field}", "type": + ["string"]}, {"name": "pinecone_metadata_field", "optional": true, "reference": + "${inputs.pinecone_metadata_field}", "type": ["string"]}, {"name": "embedding_type", + "optional": true, "reference": "${inputs.embedding_type}", "type": ["string"]}, + {"name": "aoai_embedding_connection", "optional": true, "reference": "${inputs.aoai_embedding_connection}", + "type": ["AzureOpenAIConnection"]}, {"name": "oai_embedding_connection", "optional": + true, "reference": "${inputs.oai_embedding_connection}", "type": ["string"]}, + {"name": "embedding_model", "optional": true, "reference": "${inputs.embedding_model}", + "type": ["string"]}, {"name": "embedding_deployment", "optional": true, "reference": + "${inputs.embedding_deployment}", "type": ["string"]}], "reverse_func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.reverse_mapping"}, "input_type": + "default"}, "mlindex_path": {"type": ["string"], "enabled_by": "index_type", + "enabled_by_value": ["MLIndex file from path"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "oai_embedding_connection": + {"type": ["OpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "pinecone_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Pinecone"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_index_connection": + {"type": ["PineconeConnection"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_connections"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "pinecone_index_name": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_indices", + "func_kwargs": [{"name": "pinecone_connection_name", "optional": false, "reference": + "${inputs.pinecone_index_connection}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_metadata_field": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Pinecone"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "queries": {"type": ["object"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query_type": {"type": ["string"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_query_types", + "func_kwargs": [{"name": "mlindex_content", "optional": false, "reference": + "${inputs.mlindex_content}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "semantic_configuration": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_semantic_configurations", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "top_k": {"type": ["int"], "default": 3, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search an AzureML Vector Index for relevant results using one or more text + queries.", "module": "promptflow_vectordb.tool.common_index_lookup", "function": + "search", "is_builtin": true, "package": "promptflow_vectordb", "package_version": + "0.2.4", "enable_kwargs": false, "tool_state": "preview"}, {"name": "Faiss + Index Lookup", "type": "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": + ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, + "input_type": "default"}, "vector": {"type": ["list"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search vector based query from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", + "class_name": "FaissIndexLookup", "function": "search", "is_builtin": true, + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector DB Lookup", "type": "python", + "inputs": {"class_name": {"type": ["string"], "enabled_by": "connection", + "enabled_by_type": ["WeaviateConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "collection_name": {"type": ["string"], "enabled_by": + "connection", "enabled_by_type": ["QdrantConnection"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "connection": {"type": + ["CognitiveSearchConnection", "QdrantConnection", "WeaviateConnection"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "index_name": {"type": + ["string"], "enabled_by": "connection", "enabled_by_type": ["CognitiveSearchConnection"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "search_filters": {"type": ["object"], "enabled_by": "connection", "enabled_by_type": + ["CognitiveSearchConnection", "QdrantConnection"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default"}, "search_params": {"type": + ["object"], "enabled_by": "connection", "enabled_by_type": ["CognitiveSearchConnection", + "QdrantConnection"], "allow_manual_entry": false, "is_multi_select": false, + "input_type": "default"}, "text_field": {"type": ["string"], "enabled_by": + "connection", "enabled_by_type": ["CognitiveSearchConnection", "QdrantConnection", + "WeaviateConnection"], "allow_manual_entry": false, "is_multi_select": false, + "input_type": "default"}, "top_k": {"type": ["int"], "default": "3", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "vector": {"type": + ["list"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default"}, "vector_field": {"type": ["string"], "enabled_by": "connection", + "enabled_by_type": ["CognitiveSearchConnection"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default"}}, "description": "Search + vector based query from existing Vector Database.", "module": "promptflow_vectordb.tool.vector_db_lookup", + "class_name": "VectorDBLookup", "function": "search", "is_builtin": true, + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector Index Lookup", "type": + "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default"}, "query": {"type": ["object"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "top_k": {"type": ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}}, "description": "Search text or vector based + query from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", + "class_name": "VectorIndexLookup", "function": "search", "is_builtin": true, + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "hello_world.py", "type": "python", + "inputs": {"name": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}}, "source": "hello_world.py", "function": + "hello_world", "is_builtin": false, "enable_kwargs": false, "tool_state": + "stable"}], "inputs": {"name": {"type": "string", "default": "hod", "is_chat_input": + false}}, "outputs": {"result": {"type": "string", "reference": "${hello_world.output}", + "evaluation_only": false, "is_chat_output": false}}}, "flowRunResourceId": + "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", + "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", + "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", + "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", + "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "6f5e65d2-6446-4f71-a1fa-838ae87e6bd5", + "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '27205' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.283' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name + response: + body: + string: '{"flowGraph": {"nodes": [{"name": "hello_world", "type": "python", + "source": {"type": "code", "path": "hello_world.py"}, "inputs": {"name": "${inputs.name}"}, + "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Azure OpenAI + GPT-4 Turbo with Vision", "type": "custom_llm", "inputs": {"connection": {"type": + ["AzureOpenAIConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 0}}, "deployment_name": + {"type": ["string"], "enabled_by": "connection", "dynamic_list": {"func_path": + "promptflow.tools.aoai_gpt4v.list_deployment_names", "func_kwargs": [{"name": + "connection", "reference": "${inputs.connection}", "type": ["AzureOpenAIConnection"]}]}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, + "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use Azure OpenAI GPT-4 Turbo with Vision to leverage AOAI vision ability.", + "module": "promptflow.tools.aoai_gpt4v", "class_name": "AzureOpenAI", "function": + "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Content Safety (Text Analyze)", + "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "hate_category": {"type": ["string"], "default": "medium_sensitivity", "enum": + ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "self_harm_category": {"type": ["string"], "default": "medium_sensitivity", + "enum": ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "sexual_category": {"type": ["string"], "default": "medium_sensitivity", "enum": + ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "text": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "violence_category": {"type": ["string"], + "default": "medium_sensitivity", "enum": ["disable", "low_sensitivity", "medium_sensitivity", + "high_sensitivity"], "allow_manual_entry": false, "is_multi_select": false, + "input_type": "default"}}, "description": "Use Azure Content Safety to detect + harmful content.", "module": "promptflow.tools.azure_content_safety", "function": + "analyze_text", "is_builtin": true, "package": "promptflow-tools", "package_version": + "1.4.0rc1", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], + "tool_state": "stable"}, {"name": "Embedding", "type": "python", "inputs": + {"connection": {"type": ["AzureOpenAIConnection", "OpenAIConnection"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "deployment_name": + {"type": ["string"], "enabled_by": "connection", "enabled_by_type": ["AzureOpenAIConnection"], + "model_list": ["text-embedding-ada-002", "text-search-ada-doc-001", "text-search-ada-query-001"], + "capabilities": {"completion": false, "chat_completion": false, "embeddings": + true}, "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default"}, "input": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "model": {"type": ["string"], "enum": ["text-embedding-ada-002", + "text-search-ada-doc-001", "text-search-ada-query-001"], "enabled_by": "connection", + "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": true, "is_multi_select": + false, "input_type": "default"}}, "description": "Use Open AI''s embedding + model to create an embedding vector representing the input text.", "module": + "promptflow.tools.embedding", "function": "embedding", "is_builtin": true, + "package": "promptflow-tools", "package_version": "1.4.0rc1", "enable_kwargs": + false, "tool_state": "stable"}, {"name": "Open Model LLM", "type": "custom_llm", + "inputs": {"api": {"type": ["string"], "enum": ["chat", "completion"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 2}}, "deployment_name": {"type": ["string"], "default": "", "dynamic_list": + {"func_path": "promptflow.tools.open_model_llm.list_deployment_names", "func_kwargs": + [{"name": "endpoint", "optional": true, "reference": "${inputs.endpoint}", + "type": ["string"]}]}, "allow_manual_entry": true, "is_multi_select": false, + "input_type": "default", "ui_hints": {"index": 1}}, "endpoint_name": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow.tools.open_model_llm.list_endpoint_names"}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "max_new_tokens": {"type": ["int"], "default": + 500, "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "ui_hints": {"index": 4}}, "model_kwargs": {"type": ["object"], + "default": "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "advanced": true, "ui_hints": {"index": 6}}, "temperature": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}, "top_p": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "advanced": true, "ui_hints": {"index": 5}}}, + "description": "Use an open model from the Azure Model catalog, deployed to + an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": + "promptflow.tools.open_model_llm", "class_name": "OpenModelLLM", "function": "call", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACgElEQVR4nGWSz2vcVRTFP/e9NzOZ1KDGohASslLEH6VLV0ak4l/QpeDCrfQPcNGliODKnVm4EBdBsIjQIlhciKW0ycKFVCSNbYnjdDLtmPnmO/nO9917XcxMkjYX3uLx7nnn3HOuMK2Nix4fP78ZdrYXVkLVWjf3l3B1B+HpcjzGFtmqa6cePz7/x0dnn1n5qhj3iBJPYREIURAJuCtpY8PjReDbrf9WG7H1fuefwQU9qKztTcMJT+PNnEFvjGVDBDlSsH6p/9MLzy6+NxwVqI8RAg4IPmWedMckdLYP6O6UpIaQfvyyXG012+e79/ZfHukoS1ISMT2hGTB1RkUmNgQ5QZ0w+a2VWDq73MbdEWmfnnv6UWe7oNzPaLapl5CwuLTXK9WUGBuCjqekzhP+z52ZXOrKMD3OJg0Hh778aiOuvpnYvp05d6GJO4iAO4QAe/eV36/X5LFRV4Zmn+AdkqlL8Vjp3oVioOz+WTPzzYEgsN+fgPLYyJVheSbPPVl2ikeGZRjtG52/8rHuaV9VOlpP2OtKyVndcRVCSqOhsvxa4vW359i6OuKdD+aP8Q4SYPdOzS/flGjt1JUSaMqZ5nwa1Y8qWb/Ud/eZZkHisYezEM0m+fcelDr8F1SqW2LNK6r1jXQwyLzy1hxvrLXZulry7ocL+FS6G4QIu3fG/Px1gdYeW7LIgXU2P/115TOA5G7e3Rmj2aS/m7l5pThiZzrCcE/d1XHzbln373nw7y6veeoUm5KCNKT/IPPwbiY1hYd/l5MIT65BMFt87sU4v9D7/JMflr44uV6hGh1+L4RCkg6z5iK2tAhNLeLsNGwYA4fDYnC/drvuuFxe86NV/x+Ut27g0FvykgAAAABJRU5ErkJggg==", - "is_builtin": true, "package": "promptflow-tools", "package_version": "0.0.216", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", "enable_kwargs": false, "tool_state": "stable"}, {"name": "OpenAI GPT-4V", "type": "custom_llm", "inputs": {"connection": {"type": ["OpenAIConnection"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "frequency_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_tokens": {"type": - ["int"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], - "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}, - "presence_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "stop": {"type": - ["list"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "temperature": {"type": ["double"], "default": 1, - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use OpenAI GPT-4V to leverage - vision ability.", "module": "promptflow.tools.openai_gpt4v", "class_name": - "OpenAI", "function": "chat", "is_builtin": true, "package": "promptflow-tools", - "package_version": "0.0.216", "default_prompt": "# system:\nAs an AI assistant, - your task involves interpreting images and responding to questions about the - image.\nRemember to provide accurate answers based on the information present - in the image.\n\n# user:\nCan you tell me what the image depicts?\n![image]({{image_input}})\n", - "enable_kwargs": false, "tool_state": "stable"}, {"name": "Serp API", "type": - "python", "inputs": {"connection": {"type": ["SerpConnection"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "engine": {"type": - ["string"], "default": "google", "enum": ["google", "bing"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "location": {"type": - ["string"], "default": "", "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "num": {"type": ["int"], "default": "10", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "query": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "safe": {"type": ["string"], "default": "off", - "enum": ["active", "off"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use Serp API to obtain search - results from a specific search engine.", "module": "promptflow.tools.serpapi", - "class_name": "SerpAPI", "function": "search", "is_builtin": true, "package": - "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": false, - "tool_state": "stable"}, {"name": "Faiss Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "top_k": {"type": ["int"], "default": "3", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "vector": {"type": ["list"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Search vector based query - from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use OpenAI GPT-4V to leverage vision ability.", "module": "promptflow.tools.openai_gpt4v", + "class_name": "OpenAI", "function": "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Serp API", "type": "python", "inputs": + {"connection": {"type": ["SerpConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "engine": {"type": ["string"], "default": + "google", "enum": ["google", "bing"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "location": {"type": ["string"], "default": + "", "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "num": {"type": ["int"], "default": "10", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "safe": {"type": + ["string"], "default": "off", "enum": ["active", "off"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Use Serp API to obtain search results from a specific search engine.", "module": + "promptflow.tools.serpapi", "class_name": "SerpAPI", "function": "search", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "enable_kwargs": false, "tool_state": "stable"}, {"name": "Index Lookup", + "type": "python", "inputs": {"acs_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_embedding_field": {"type": ["string"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Collection(Edm.Single)", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_index_connection": {"type": ["CognitiveSearchConnection"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "acs_index_name": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_indices", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "acs_metadata_field": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Azure AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "aoai_embedding_connection": {"type": + ["AzureOpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["Azure OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "embedding_deployment": {"type": ["string"], "enabled_by": + "embedding_type", "enabled_by_value": ["Azure OpenAI"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_aoai_embedding_deployments", + "func_kwargs": [{"name": "aoai_connection", "optional": false, "reference": + "${inputs.aoai_embedding_connection}", "type": ["AzurOpenAIConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "embedding_model": {"type": ["string"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI", "Hugging Face"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_embedding_models", + "func_kwargs": [{"name": "embedding_type", "optional": false, "reference": + "${inputs.embedding_type}", "type": ["string"]}]}, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "embedding_type": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search", "FAISS", "Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_embedding_types", + "func_kwargs": [{"name": "index_type", "optional": false, "reference": "${inputs.index_type}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "faiss_index_path": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["FAISS"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "index_type": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_index_types"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_asset_id": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Registered Index"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_registered_mlindices"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_content": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "generated_by": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.forward_mapping", + "func_kwargs": [{"name": "index_type", "reference": "${inputs.index_type}", + "type": ["string"]}, {"name": "mlindex_asset_id", "optional": true, "reference": + "${inputs.mlindex_asset_id}", "type": ["string"]}, {"name": "mlindex_path", + "optional": true, "reference": "${inputs.mlindex_path}", "type": ["string"]}, + {"name": "acs_index_connection", "optional": true, "reference": "${inputs.acs_index_connection}", + "type": ["CognitiveSearchConnection"]}, {"name": "acs_index_name", "optional": + true, "reference": "${inputs.acs_index_name}", "type": ["string"]}, {"name": + "acs_content_field", "optional": true, "reference": "${inputs.acs_content_field}", + "type": ["string"]}, {"name": "acs_embedding_field", "optional": true, "reference": + "${inputs.acs_embedding_field}", "type": ["string"]}, {"name": "acs_metadata_field", + "optional": true, "reference": "${inputs.acs_metadata_field}", "type": ["string"]}, + {"name": "semantic_configuration", "optional": true, "reference": "${inputs.semantic_configuration}", + "type": ["string"]}, {"name": "faiss_index_path", "optional": true, "reference": + "${inputs.faiss_index_path}", "type": ["string"]}, {"name": "pinecone_index_connection", + "optional": true, "reference": "${inputs.pinecone_index_connection}", "type": + ["string"]}, {"name": "pinecone_index_name", "optional": true, "reference": + "${inputs.pinecone_index_name}", "type": ["string"]}, {"name": "pinecone_content_field", + "optional": true, "reference": "${inputs.pinecone_content_field}", "type": + ["string"]}, {"name": "pinecone_metadata_field", "optional": true, "reference": + "${inputs.pinecone_metadata_field}", "type": ["string"]}, {"name": "embedding_type", + "optional": true, "reference": "${inputs.embedding_type}", "type": ["string"]}, + {"name": "aoai_embedding_connection", "optional": true, "reference": "${inputs.aoai_embedding_connection}", + "type": ["AzureOpenAIConnection"]}, {"name": "oai_embedding_connection", "optional": + true, "reference": "${inputs.oai_embedding_connection}", "type": ["string"]}, + {"name": "embedding_model", "optional": true, "reference": "${inputs.embedding_model}", + "type": ["string"]}, {"name": "embedding_deployment", "optional": true, "reference": + "${inputs.embedding_deployment}", "type": ["string"]}], "reverse_func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.reverse_mapping"}, "input_type": + "default"}, "mlindex_path": {"type": ["string"], "enabled_by": "index_type", + "enabled_by_value": ["MLIndex file from path"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "oai_embedding_connection": + {"type": ["OpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "pinecone_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Pinecone"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_index_connection": + {"type": ["PineconeConnection"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_connections"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "pinecone_index_name": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_indices", + "func_kwargs": [{"name": "pinecone_connection_name", "optional": false, "reference": + "${inputs.pinecone_index_connection}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_metadata_field": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Pinecone"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "queries": {"type": ["object"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query_type": {"type": ["string"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_query_types", + "func_kwargs": [{"name": "mlindex_content", "optional": false, "reference": + "${inputs.mlindex_content}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "semantic_configuration": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_semantic_configurations", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "top_k": {"type": ["int"], "default": 3, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search an AzureML Vector Index for relevant results using one or more text + queries.", "module": "promptflow_vectordb.tool.common_index_lookup", "function": + "search", "is_builtin": true, "package": "promptflow_vectordb", "package_version": + "0.2.4", "enable_kwargs": false, "tool_state": "preview"}, {"name": "Faiss + Index Lookup", "type": "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": + ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, + "input_type": "default"}, "vector": {"type": ["list"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search vector based query from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", "class_name": "FaissIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector DB Lookup", "type": "python", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector DB Lookup", "type": "python", "inputs": {"class_name": {"type": ["string"], "enabled_by": "connection", "enabled_by_type": ["WeaviateConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "collection_name": {"type": ["string"], "enabled_by": @@ -830,17 +1797,17 @@ interactions: "is_multi_select": false, "input_type": "default"}}, "description": "Search vector based query from existing Vector Database.", "module": "promptflow_vectordb.tool.vector_db_lookup", "class_name": "VectorDBLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "query": {"type": ["object"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": - ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}}, "description": "Search text or vector based query - from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector Index Lookup", "type": + "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default"}, "query": {"type": ["object"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "top_k": {"type": ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}}, "description": "Search text or vector based + query from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", "class_name": "VectorIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "hello_world.py", "type": "python", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "hello_world.py", "type": "python", "inputs": {"name": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}}, "source": "hello_world.py", "function": "hello_world", "is_builtin": false, "enable_kwargs": false, "tool_state": @@ -850,20 +1817,20 @@ interactions: "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, - "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "test-runtime-ci", + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", - "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "4debf50d-5af4-4fd7-9e55-e2796fcf44bb", + "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "6f5e65d2-6446-4f71-a1fa-838ae87e6bd5", "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' headers: connection: - keep-alive content-length: - - '12912' + - '27205' content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -871,7 +1838,7 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.354' + - '0.252' status: code: 200 message: OK @@ -881,20 +1848,51 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown - Python/3.10.13 (Windows-10-10.0.22631-SP0) + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name response: body: string: '{"flowGraph": {"nodes": [{"name": "hello_world", "type": "python", "source": {"type": "code", "path": "hello_world.py"}, "inputs": {"name": "${inputs.name}"}, - "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Content Safety - (Text Analyze)", "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], + "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Azure OpenAI + GPT-4 Turbo with Vision", "type": "custom_llm", "inputs": {"connection": {"type": + ["AzureOpenAIConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 0}}, "deployment_name": + {"type": ["string"], "enabled_by": "connection", "dynamic_list": {"func_path": + "promptflow.tools.aoai_gpt4v.list_deployment_names", "func_kwargs": [{"name": + "connection", "reference": "${inputs.connection}", "type": ["AzureOpenAIConnection"]}]}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, + "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use Azure OpenAI GPT-4 Turbo with Vision to leverage AOAI vision ability.", + "module": "promptflow.tools.aoai_gpt4v", "class_name": "AzureOpenAI", "function": + "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Content Safety (Text Analyze)", + "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "hate_category": {"type": ["string"], "default": "medium_sensitivity", "enum": ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], @@ -912,7 +1910,7 @@ interactions: "input_type": "default"}}, "description": "Use Azure Content Safety to detect harmful content.", "module": "promptflow.tools.azure_content_safety", "function": "analyze_text", "is_builtin": true, "package": "promptflow-tools", "package_version": - "0.0.216", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], + "1.4.0rc1", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], "tool_state": "stable"}, {"name": "Embedding", "type": "python", "inputs": {"connection": {"type": ["AzureOpenAIConnection", "OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "deployment_name": @@ -923,77 +1921,209 @@ interactions: "default"}, "input": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "model": {"type": ["string"], "enum": ["text-embedding-ada-002", "text-search-ada-doc-001", "text-search-ada-query-001"], "enabled_by": "connection", - "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": + "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}}, "description": "Use Open AI''s embedding model to create an embedding vector representing the input text.", "module": "promptflow.tools.embedding", "function": "embedding", "is_builtin": true, - "package": "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Open Source LLM", "type": "custom_llm", + "package": "promptflow-tools", "package_version": "1.4.0rc1", "enable_kwargs": + false, "tool_state": "stable"}, {"name": "Open Model LLM", "type": "custom_llm", "inputs": {"api": {"type": ["string"], "enum": ["chat", "completion"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "connection": {"type": - ["CustomConnection"], "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "deployment_name": {"type": ["string"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "endpoint_name": - {"type": ["string"], "default": "-- please enter an endpoint name --", "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_new_tokens": - {"type": ["int"], "default": 500, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "model_kwargs": {"type": ["object"], "default": - "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default", "advanced": true}, "temperature": {"type": ["double"], "default": - 1.0, "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default"}, "top_p": {"type": ["double"], "default": 1.0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default", "advanced": true}}, - "description": "Use an Open Source model from the Azure Model catalog, deployed - to an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": - "promptflow.tools.open_source_llm", "class_name": "OpenSourceLLM", "function": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 2}}, "deployment_name": {"type": ["string"], "default": "", "dynamic_list": + {"func_path": "promptflow.tools.open_model_llm.list_deployment_names", "func_kwargs": + [{"name": "endpoint", "optional": true, "reference": "${inputs.endpoint}", + "type": ["string"]}]}, "allow_manual_entry": true, "is_multi_select": false, + "input_type": "default", "ui_hints": {"index": 1}}, "endpoint_name": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow.tools.open_model_llm.list_endpoint_names"}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "max_new_tokens": {"type": ["int"], "default": + 500, "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "ui_hints": {"index": 4}}, "model_kwargs": {"type": ["object"], + "default": "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "advanced": true, "ui_hints": {"index": 6}}, "temperature": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}, "top_p": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "advanced": true, "ui_hints": {"index": 5}}}, + "description": "Use an open model from the Azure Model catalog, deployed to + an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": + "promptflow.tools.open_model_llm", "class_name": "OpenModelLLM", "function": "call", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACgElEQVR4nGWSz2vcVRTFP/e9NzOZ1KDGohASslLEH6VLV0ak4l/QpeDCrfQPcNGliODKnVm4EBdBsIjQIlhciKW0ycKFVCSNbYnjdDLtmPnmO/nO9917XcxMkjYX3uLx7nnn3HOuMK2Nix4fP78ZdrYXVkLVWjf3l3B1B+HpcjzGFtmqa6cePz7/x0dnn1n5qhj3iBJPYREIURAJuCtpY8PjReDbrf9WG7H1fuefwQU9qKztTcMJT+PNnEFvjGVDBDlSsH6p/9MLzy6+NxwVqI8RAg4IPmWedMckdLYP6O6UpIaQfvyyXG012+e79/ZfHukoS1ISMT2hGTB1RkUmNgQ5QZ0w+a2VWDq73MbdEWmfnnv6UWe7oNzPaLapl5CwuLTXK9WUGBuCjqekzhP+z52ZXOrKMD3OJg0Hh778aiOuvpnYvp05d6GJO4iAO4QAe/eV36/X5LFRV4Zmn+AdkqlL8Vjp3oVioOz+WTPzzYEgsN+fgPLYyJVheSbPPVl2ikeGZRjtG52/8rHuaV9VOlpP2OtKyVndcRVCSqOhsvxa4vW359i6OuKdD+aP8Q4SYPdOzS/flGjt1JUSaMqZ5nwa1Y8qWb/Ud/eZZkHisYezEM0m+fcelDr8F1SqW2LNK6r1jXQwyLzy1hxvrLXZulry7ocL+FS6G4QIu3fG/Px1gdYeW7LIgXU2P/115TOA5G7e3Rmj2aS/m7l5pThiZzrCcE/d1XHzbln373nw7y6veeoUm5KCNKT/IPPwbiY1hYd/l5MIT65BMFt87sU4v9D7/JMflr44uV6hGh1+L4RCkg6z5iK2tAhNLeLsNGwYA4fDYnC/drvuuFxe86NV/x+Ut27g0FvykgAAAABJRU5ErkJggg==", - "is_builtin": true, "package": "promptflow-tools", "package_version": "0.0.216", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", "enable_kwargs": false, "tool_state": "stable"}, {"name": "OpenAI GPT-4V", "type": "custom_llm", "inputs": {"connection": {"type": ["OpenAIConnection"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "frequency_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_tokens": {"type": - ["int"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], - "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}, - "presence_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "stop": {"type": - ["list"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "temperature": {"type": ["double"], "default": 1, - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use OpenAI GPT-4V to leverage - vision ability.", "module": "promptflow.tools.openai_gpt4v", "class_name": - "OpenAI", "function": "chat", "is_builtin": true, "package": "promptflow-tools", - "package_version": "0.0.216", "default_prompt": "# system:\nAs an AI assistant, - your task involves interpreting images and responding to questions about the - image.\nRemember to provide accurate answers based on the information present - in the image.\n\n# user:\nCan you tell me what the image depicts?\n![image]({{image_input}})\n", - "enable_kwargs": false, "tool_state": "stable"}, {"name": "Serp API", "type": - "python", "inputs": {"connection": {"type": ["SerpConnection"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "engine": {"type": - ["string"], "default": "google", "enum": ["google", "bing"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "location": {"type": - ["string"], "default": "", "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "num": {"type": ["int"], "default": "10", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "query": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "safe": {"type": ["string"], "default": "off", - "enum": ["active", "off"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use Serp API to obtain search - results from a specific search engine.", "module": "promptflow.tools.serpapi", - "class_name": "SerpAPI", "function": "search", "is_builtin": true, "package": - "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": false, - "tool_state": "stable"}, {"name": "Faiss Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "top_k": {"type": ["int"], "default": "3", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "vector": {"type": ["list"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Search vector based query - from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use OpenAI GPT-4V to leverage vision ability.", "module": "promptflow.tools.openai_gpt4v", + "class_name": "OpenAI", "function": "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Serp API", "type": "python", "inputs": + {"connection": {"type": ["SerpConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "engine": {"type": ["string"], "default": + "google", "enum": ["google", "bing"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "location": {"type": ["string"], "default": + "", "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "num": {"type": ["int"], "default": "10", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "safe": {"type": + ["string"], "default": "off", "enum": ["active", "off"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Use Serp API to obtain search results from a specific search engine.", "module": + "promptflow.tools.serpapi", "class_name": "SerpAPI", "function": "search", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "enable_kwargs": false, "tool_state": "stable"}, {"name": "Index Lookup", + "type": "python", "inputs": {"acs_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_embedding_field": {"type": ["string"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Collection(Edm.Single)", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_index_connection": {"type": ["CognitiveSearchConnection"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "acs_index_name": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_indices", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "acs_metadata_field": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Azure AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "aoai_embedding_connection": {"type": + ["AzureOpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["Azure OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "embedding_deployment": {"type": ["string"], "enabled_by": + "embedding_type", "enabled_by_value": ["Azure OpenAI"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_aoai_embedding_deployments", + "func_kwargs": [{"name": "aoai_connection", "optional": false, "reference": + "${inputs.aoai_embedding_connection}", "type": ["AzurOpenAIConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "embedding_model": {"type": ["string"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI", "Hugging Face"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_embedding_models", + "func_kwargs": [{"name": "embedding_type", "optional": false, "reference": + "${inputs.embedding_type}", "type": ["string"]}]}, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "embedding_type": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search", "FAISS", "Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_embedding_types", + "func_kwargs": [{"name": "index_type", "optional": false, "reference": "${inputs.index_type}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "faiss_index_path": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["FAISS"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "index_type": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_index_types"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_asset_id": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Registered Index"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_registered_mlindices"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_content": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "generated_by": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.forward_mapping", + "func_kwargs": [{"name": "index_type", "reference": "${inputs.index_type}", + "type": ["string"]}, {"name": "mlindex_asset_id", "optional": true, "reference": + "${inputs.mlindex_asset_id}", "type": ["string"]}, {"name": "mlindex_path", + "optional": true, "reference": "${inputs.mlindex_path}", "type": ["string"]}, + {"name": "acs_index_connection", "optional": true, "reference": "${inputs.acs_index_connection}", + "type": ["CognitiveSearchConnection"]}, {"name": "acs_index_name", "optional": + true, "reference": "${inputs.acs_index_name}", "type": ["string"]}, {"name": + "acs_content_field", "optional": true, "reference": "${inputs.acs_content_field}", + "type": ["string"]}, {"name": "acs_embedding_field", "optional": true, "reference": + "${inputs.acs_embedding_field}", "type": ["string"]}, {"name": "acs_metadata_field", + "optional": true, "reference": "${inputs.acs_metadata_field}", "type": ["string"]}, + {"name": "semantic_configuration", "optional": true, "reference": "${inputs.semantic_configuration}", + "type": ["string"]}, {"name": "faiss_index_path", "optional": true, "reference": + "${inputs.faiss_index_path}", "type": ["string"]}, {"name": "pinecone_index_connection", + "optional": true, "reference": "${inputs.pinecone_index_connection}", "type": + ["string"]}, {"name": "pinecone_index_name", "optional": true, "reference": + "${inputs.pinecone_index_name}", "type": ["string"]}, {"name": "pinecone_content_field", + "optional": true, "reference": "${inputs.pinecone_content_field}", "type": + ["string"]}, {"name": "pinecone_metadata_field", "optional": true, "reference": + "${inputs.pinecone_metadata_field}", "type": ["string"]}, {"name": "embedding_type", + "optional": true, "reference": "${inputs.embedding_type}", "type": ["string"]}, + {"name": "aoai_embedding_connection", "optional": true, "reference": "${inputs.aoai_embedding_connection}", + "type": ["AzureOpenAIConnection"]}, {"name": "oai_embedding_connection", "optional": + true, "reference": "${inputs.oai_embedding_connection}", "type": ["string"]}, + {"name": "embedding_model", "optional": true, "reference": "${inputs.embedding_model}", + "type": ["string"]}, {"name": "embedding_deployment", "optional": true, "reference": + "${inputs.embedding_deployment}", "type": ["string"]}], "reverse_func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.reverse_mapping"}, "input_type": + "default"}, "mlindex_path": {"type": ["string"], "enabled_by": "index_type", + "enabled_by_value": ["MLIndex file from path"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "oai_embedding_connection": + {"type": ["OpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "pinecone_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Pinecone"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_index_connection": + {"type": ["PineconeConnection"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_connections"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "pinecone_index_name": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_indices", + "func_kwargs": [{"name": "pinecone_connection_name", "optional": false, "reference": + "${inputs.pinecone_index_connection}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_metadata_field": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Pinecone"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "queries": {"type": ["object"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query_type": {"type": ["string"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_query_types", + "func_kwargs": [{"name": "mlindex_content", "optional": false, "reference": + "${inputs.mlindex_content}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "semantic_configuration": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_semantic_configurations", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "top_k": {"type": ["int"], "default": 3, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search an AzureML Vector Index for relevant results using one or more text + queries.", "module": "promptflow_vectordb.tool.common_index_lookup", "function": + "search", "is_builtin": true, "package": "promptflow_vectordb", "package_version": + "0.2.4", "enable_kwargs": false, "tool_state": "preview"}, {"name": "Faiss + Index Lookup", "type": "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": + ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, + "input_type": "default"}, "vector": {"type": ["list"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search vector based query from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", "class_name": "FaissIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector DB Lookup", "type": "python", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector DB Lookup", "type": "python", "inputs": {"class_name": {"type": ["string"], "enabled_by": "connection", "enabled_by_type": ["WeaviateConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "collection_name": {"type": ["string"], "enabled_by": @@ -1019,17 +2149,17 @@ interactions: "is_multi_select": false, "input_type": "default"}}, "description": "Search vector based query from existing Vector Database.", "module": "promptflow_vectordb.tool.vector_db_lookup", "class_name": "VectorDBLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "query": {"type": ["object"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": - ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}}, "description": "Search text or vector based query - from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector Index Lookup", "type": + "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default"}, "query": {"type": ["object"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "top_k": {"type": ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}}, "description": "Search text or vector based + query from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", "class_name": "VectorIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "hello_world.py", "type": "python", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "hello_world.py", "type": "python", "inputs": {"name": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}}, "source": "hello_world.py", "function": "hello_world", "is_builtin": false, "enable_kwargs": false, "tool_state": @@ -1039,20 +2169,20 @@ interactions: "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, - "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "test-runtime-ci", + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", - "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "4debf50d-5af4-4fd7-9e55-e2796fcf44bb", + "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "6f5e65d2-6446-4f71-a1fa-838ae87e6bd5", "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' headers: connection: - keep-alive content-length: - - '12912' + - '27205' content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -1060,7 +2190,7 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.341' + - '0.262' status: code: 200 message: OK @@ -1070,20 +2200,51 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown - Python/3.10.13 (Windows-10-10.0.22631-SP0) + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name response: body: string: '{"flowGraph": {"nodes": [{"name": "hello_world", "type": "python", "source": {"type": "code", "path": "hello_world.py"}, "inputs": {"name": "${inputs.name}"}, - "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Content Safety - (Text Analyze)", "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], + "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Azure OpenAI + GPT-4 Turbo with Vision", "type": "custom_llm", "inputs": {"connection": {"type": + ["AzureOpenAIConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 0}}, "deployment_name": + {"type": ["string"], "enabled_by": "connection", "dynamic_list": {"func_path": + "promptflow.tools.aoai_gpt4v.list_deployment_names", "func_kwargs": [{"name": + "connection", "reference": "${inputs.connection}", "type": ["AzureOpenAIConnection"]}]}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, + "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use Azure OpenAI GPT-4 Turbo with Vision to leverage AOAI vision ability.", + "module": "promptflow.tools.aoai_gpt4v", "class_name": "AzureOpenAI", "function": + "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Content Safety (Text Analyze)", + "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "hate_category": {"type": ["string"], "default": "medium_sensitivity", "enum": ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], @@ -1101,7 +2262,7 @@ interactions: "input_type": "default"}}, "description": "Use Azure Content Safety to detect harmful content.", "module": "promptflow.tools.azure_content_safety", "function": "analyze_text", "is_builtin": true, "package": "promptflow-tools", "package_version": - "0.0.216", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], + "1.4.0rc1", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], "tool_state": "stable"}, {"name": "Embedding", "type": "python", "inputs": {"connection": {"type": ["AzureOpenAIConnection", "OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "deployment_name": @@ -1112,77 +2273,209 @@ interactions: "default"}, "input": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "model": {"type": ["string"], "enum": ["text-embedding-ada-002", "text-search-ada-doc-001", "text-search-ada-query-001"], "enabled_by": "connection", - "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": + "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}}, "description": "Use Open AI''s embedding model to create an embedding vector representing the input text.", "module": "promptflow.tools.embedding", "function": "embedding", "is_builtin": true, - "package": "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Open Source LLM", "type": "custom_llm", + "package": "promptflow-tools", "package_version": "1.4.0rc1", "enable_kwargs": + false, "tool_state": "stable"}, {"name": "Open Model LLM", "type": "custom_llm", "inputs": {"api": {"type": ["string"], "enum": ["chat", "completion"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "connection": {"type": - ["CustomConnection"], "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "deployment_name": {"type": ["string"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "endpoint_name": - {"type": ["string"], "default": "-- please enter an endpoint name --", "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_new_tokens": - {"type": ["int"], "default": 500, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "model_kwargs": {"type": ["object"], "default": - "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default", "advanced": true}, "temperature": {"type": ["double"], "default": - 1.0, "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default"}, "top_p": {"type": ["double"], "default": 1.0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default", "advanced": true}}, - "description": "Use an Open Source model from the Azure Model catalog, deployed - to an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": - "promptflow.tools.open_source_llm", "class_name": "OpenSourceLLM", "function": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 2}}, "deployment_name": {"type": ["string"], "default": "", "dynamic_list": + {"func_path": "promptflow.tools.open_model_llm.list_deployment_names", "func_kwargs": + [{"name": "endpoint", "optional": true, "reference": "${inputs.endpoint}", + "type": ["string"]}]}, "allow_manual_entry": true, "is_multi_select": false, + "input_type": "default", "ui_hints": {"index": 1}}, "endpoint_name": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow.tools.open_model_llm.list_endpoint_names"}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "max_new_tokens": {"type": ["int"], "default": + 500, "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "ui_hints": {"index": 4}}, "model_kwargs": {"type": ["object"], + "default": "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "advanced": true, "ui_hints": {"index": 6}}, "temperature": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}, "top_p": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "advanced": true, "ui_hints": {"index": 5}}}, + "description": "Use an open model from the Azure Model catalog, deployed to + an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": + "promptflow.tools.open_model_llm", "class_name": "OpenModelLLM", "function": "call", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACgElEQVR4nGWSz2vcVRTFP/e9NzOZ1KDGohASslLEH6VLV0ak4l/QpeDCrfQPcNGliODKnVm4EBdBsIjQIlhciKW0ycKFVCSNbYnjdDLtmPnmO/nO9917XcxMkjYX3uLx7nnn3HOuMK2Nix4fP78ZdrYXVkLVWjf3l3B1B+HpcjzGFtmqa6cePz7/x0dnn1n5qhj3iBJPYREIURAJuCtpY8PjReDbrf9WG7H1fuefwQU9qKztTcMJT+PNnEFvjGVDBDlSsH6p/9MLzy6+NxwVqI8RAg4IPmWedMckdLYP6O6UpIaQfvyyXG012+e79/ZfHukoS1ISMT2hGTB1RkUmNgQ5QZ0w+a2VWDq73MbdEWmfnnv6UWe7oNzPaLapl5CwuLTXK9WUGBuCjqekzhP+z52ZXOrKMD3OJg0Hh778aiOuvpnYvp05d6GJO4iAO4QAe/eV36/X5LFRV4Zmn+AdkqlL8Vjp3oVioOz+WTPzzYEgsN+fgPLYyJVheSbPPVl2ikeGZRjtG52/8rHuaV9VOlpP2OtKyVndcRVCSqOhsvxa4vW359i6OuKdD+aP8Q4SYPdOzS/flGjt1JUSaMqZ5nwa1Y8qWb/Ud/eZZkHisYezEM0m+fcelDr8F1SqW2LNK6r1jXQwyLzy1hxvrLXZulry7ocL+FS6G4QIu3fG/Px1gdYeW7LIgXU2P/115TOA5G7e3Rmj2aS/m7l5pThiZzrCcE/d1XHzbln373nw7y6veeoUm5KCNKT/IPPwbiY1hYd/l5MIT65BMFt87sU4v9D7/JMflr44uV6hGh1+L4RCkg6z5iK2tAhNLeLsNGwYA4fDYnC/drvuuFxe86NV/x+Ut27g0FvykgAAAABJRU5ErkJggg==", - "is_builtin": true, "package": "promptflow-tools", "package_version": "0.0.216", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", "enable_kwargs": false, "tool_state": "stable"}, {"name": "OpenAI GPT-4V", "type": "custom_llm", "inputs": {"connection": {"type": ["OpenAIConnection"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "frequency_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_tokens": {"type": - ["int"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], - "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}, - "presence_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "stop": {"type": - ["list"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "temperature": {"type": ["double"], "default": 1, - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use OpenAI GPT-4V to leverage - vision ability.", "module": "promptflow.tools.openai_gpt4v", "class_name": - "OpenAI", "function": "chat", "is_builtin": true, "package": "promptflow-tools", - "package_version": "0.0.216", "default_prompt": "# system:\nAs an AI assistant, - your task involves interpreting images and responding to questions about the - image.\nRemember to provide accurate answers based on the information present - in the image.\n\n# user:\nCan you tell me what the image depicts?\n![image]({{image_input}})\n", - "enable_kwargs": false, "tool_state": "stable"}, {"name": "Serp API", "type": - "python", "inputs": {"connection": {"type": ["SerpConnection"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "engine": {"type": - ["string"], "default": "google", "enum": ["google", "bing"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "location": {"type": - ["string"], "default": "", "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "num": {"type": ["int"], "default": "10", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "query": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "safe": {"type": ["string"], "default": "off", - "enum": ["active", "off"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use Serp API to obtain search - results from a specific search engine.", "module": "promptflow.tools.serpapi", - "class_name": "SerpAPI", "function": "search", "is_builtin": true, "package": - "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": false, - "tool_state": "stable"}, {"name": "Faiss Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "top_k": {"type": ["int"], "default": "3", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "vector": {"type": ["list"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Search vector based query - from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use OpenAI GPT-4V to leverage vision ability.", "module": "promptflow.tools.openai_gpt4v", + "class_name": "OpenAI", "function": "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Serp API", "type": "python", "inputs": + {"connection": {"type": ["SerpConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "engine": {"type": ["string"], "default": + "google", "enum": ["google", "bing"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "location": {"type": ["string"], "default": + "", "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "num": {"type": ["int"], "default": "10", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "safe": {"type": + ["string"], "default": "off", "enum": ["active", "off"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Use Serp API to obtain search results from a specific search engine.", "module": + "promptflow.tools.serpapi", "class_name": "SerpAPI", "function": "search", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "enable_kwargs": false, "tool_state": "stable"}, {"name": "Index Lookup", + "type": "python", "inputs": {"acs_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_embedding_field": {"type": ["string"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Collection(Edm.Single)", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_index_connection": {"type": ["CognitiveSearchConnection"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "acs_index_name": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_indices", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "acs_metadata_field": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Azure AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "aoai_embedding_connection": {"type": + ["AzureOpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["Azure OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "embedding_deployment": {"type": ["string"], "enabled_by": + "embedding_type", "enabled_by_value": ["Azure OpenAI"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_aoai_embedding_deployments", + "func_kwargs": [{"name": "aoai_connection", "optional": false, "reference": + "${inputs.aoai_embedding_connection}", "type": ["AzurOpenAIConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "embedding_model": {"type": ["string"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI", "Hugging Face"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_embedding_models", + "func_kwargs": [{"name": "embedding_type", "optional": false, "reference": + "${inputs.embedding_type}", "type": ["string"]}]}, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "embedding_type": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search", "FAISS", "Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_embedding_types", + "func_kwargs": [{"name": "index_type", "optional": false, "reference": "${inputs.index_type}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "faiss_index_path": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["FAISS"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "index_type": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_index_types"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_asset_id": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Registered Index"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_registered_mlindices"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_content": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "generated_by": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.forward_mapping", + "func_kwargs": [{"name": "index_type", "reference": "${inputs.index_type}", + "type": ["string"]}, {"name": "mlindex_asset_id", "optional": true, "reference": + "${inputs.mlindex_asset_id}", "type": ["string"]}, {"name": "mlindex_path", + "optional": true, "reference": "${inputs.mlindex_path}", "type": ["string"]}, + {"name": "acs_index_connection", "optional": true, "reference": "${inputs.acs_index_connection}", + "type": ["CognitiveSearchConnection"]}, {"name": "acs_index_name", "optional": + true, "reference": "${inputs.acs_index_name}", "type": ["string"]}, {"name": + "acs_content_field", "optional": true, "reference": "${inputs.acs_content_field}", + "type": ["string"]}, {"name": "acs_embedding_field", "optional": true, "reference": + "${inputs.acs_embedding_field}", "type": ["string"]}, {"name": "acs_metadata_field", + "optional": true, "reference": "${inputs.acs_metadata_field}", "type": ["string"]}, + {"name": "semantic_configuration", "optional": true, "reference": "${inputs.semantic_configuration}", + "type": ["string"]}, {"name": "faiss_index_path", "optional": true, "reference": + "${inputs.faiss_index_path}", "type": ["string"]}, {"name": "pinecone_index_connection", + "optional": true, "reference": "${inputs.pinecone_index_connection}", "type": + ["string"]}, {"name": "pinecone_index_name", "optional": true, "reference": + "${inputs.pinecone_index_name}", "type": ["string"]}, {"name": "pinecone_content_field", + "optional": true, "reference": "${inputs.pinecone_content_field}", "type": + ["string"]}, {"name": "pinecone_metadata_field", "optional": true, "reference": + "${inputs.pinecone_metadata_field}", "type": ["string"]}, {"name": "embedding_type", + "optional": true, "reference": "${inputs.embedding_type}", "type": ["string"]}, + {"name": "aoai_embedding_connection", "optional": true, "reference": "${inputs.aoai_embedding_connection}", + "type": ["AzureOpenAIConnection"]}, {"name": "oai_embedding_connection", "optional": + true, "reference": "${inputs.oai_embedding_connection}", "type": ["string"]}, + {"name": "embedding_model", "optional": true, "reference": "${inputs.embedding_model}", + "type": ["string"]}, {"name": "embedding_deployment", "optional": true, "reference": + "${inputs.embedding_deployment}", "type": ["string"]}], "reverse_func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.reverse_mapping"}, "input_type": + "default"}, "mlindex_path": {"type": ["string"], "enabled_by": "index_type", + "enabled_by_value": ["MLIndex file from path"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "oai_embedding_connection": + {"type": ["OpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "pinecone_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Pinecone"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_index_connection": + {"type": ["PineconeConnection"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_connections"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "pinecone_index_name": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_indices", + "func_kwargs": [{"name": "pinecone_connection_name", "optional": false, "reference": + "${inputs.pinecone_index_connection}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_metadata_field": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Pinecone"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "queries": {"type": ["object"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query_type": {"type": ["string"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_query_types", + "func_kwargs": [{"name": "mlindex_content", "optional": false, "reference": + "${inputs.mlindex_content}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "semantic_configuration": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_semantic_configurations", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "top_k": {"type": ["int"], "default": 3, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search an AzureML Vector Index for relevant results using one or more text + queries.", "module": "promptflow_vectordb.tool.common_index_lookup", "function": + "search", "is_builtin": true, "package": "promptflow_vectordb", "package_version": + "0.2.4", "enable_kwargs": false, "tool_state": "preview"}, {"name": "Faiss + Index Lookup", "type": "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": + ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, + "input_type": "default"}, "vector": {"type": ["list"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search vector based query from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", "class_name": "FaissIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector DB Lookup", "type": "python", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector DB Lookup", "type": "python", "inputs": {"class_name": {"type": ["string"], "enabled_by": "connection", "enabled_by_type": ["WeaviateConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "collection_name": {"type": ["string"], "enabled_by": @@ -1208,17 +2501,17 @@ interactions: "is_multi_select": false, "input_type": "default"}}, "description": "Search vector based query from existing Vector Database.", "module": "promptflow_vectordb.tool.vector_db_lookup", "class_name": "VectorDBLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "query": {"type": ["object"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": - ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}}, "description": "Search text or vector based query - from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector Index Lookup", "type": + "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default"}, "query": {"type": ["object"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "top_k": {"type": ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}}, "description": "Search text or vector based + query from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", "class_name": "VectorIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "hello_world.py", "type": "python", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "hello_world.py", "type": "python", "inputs": {"name": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}}, "source": "hello_world.py", "function": "hello_world", "is_builtin": false, "enable_kwargs": false, "tool_state": @@ -1228,20 +2521,20 @@ interactions: "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, - "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "test-runtime-ci", + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", - "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "4debf50d-5af4-4fd7-9e55-e2796fcf44bb", + "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "6f5e65d2-6446-4f71-a1fa-838ae87e6bd5", "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' headers: connection: - keep-alive content-length: - - '12912' + - '27205' content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -1249,7 +2542,7 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.210' + - '0.265' status: code: 200 message: OK @@ -1259,20 +2552,51 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown - Python/3.10.13 (Windows-10-10.0.22631-SP0) + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name response: body: string: '{"flowGraph": {"nodes": [{"name": "hello_world", "type": "python", "source": {"type": "code", "path": "hello_world.py"}, "inputs": {"name": "${inputs.name}"}, - "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Content Safety - (Text Analyze)", "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], + "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Azure OpenAI + GPT-4 Turbo with Vision", "type": "custom_llm", "inputs": {"connection": {"type": + ["AzureOpenAIConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 0}}, "deployment_name": + {"type": ["string"], "enabled_by": "connection", "dynamic_list": {"func_path": + "promptflow.tools.aoai_gpt4v.list_deployment_names", "func_kwargs": [{"name": + "connection", "reference": "${inputs.connection}", "type": ["AzureOpenAIConnection"]}]}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, + "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use Azure OpenAI GPT-4 Turbo with Vision to leverage AOAI vision ability.", + "module": "promptflow.tools.aoai_gpt4v", "class_name": "AzureOpenAI", "function": + "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Content Safety (Text Analyze)", + "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "hate_category": {"type": ["string"], "default": "medium_sensitivity", "enum": ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], @@ -1290,7 +2614,7 @@ interactions: "input_type": "default"}}, "description": "Use Azure Content Safety to detect harmful content.", "module": "promptflow.tools.azure_content_safety", "function": "analyze_text", "is_builtin": true, "package": "promptflow-tools", "package_version": - "0.0.216", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], + "1.4.0rc1", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], "tool_state": "stable"}, {"name": "Embedding", "type": "python", "inputs": {"connection": {"type": ["AzureOpenAIConnection", "OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "deployment_name": @@ -1301,77 +2625,209 @@ interactions: "default"}, "input": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "model": {"type": ["string"], "enum": ["text-embedding-ada-002", "text-search-ada-doc-001", "text-search-ada-query-001"], "enabled_by": "connection", - "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": + "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}}, "description": "Use Open AI''s embedding model to create an embedding vector representing the input text.", "module": "promptflow.tools.embedding", "function": "embedding", "is_builtin": true, - "package": "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Open Source LLM", "type": "custom_llm", + "package": "promptflow-tools", "package_version": "1.4.0rc1", "enable_kwargs": + false, "tool_state": "stable"}, {"name": "Open Model LLM", "type": "custom_llm", "inputs": {"api": {"type": ["string"], "enum": ["chat", "completion"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "connection": {"type": - ["CustomConnection"], "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "deployment_name": {"type": ["string"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "endpoint_name": - {"type": ["string"], "default": "-- please enter an endpoint name --", "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_new_tokens": - {"type": ["int"], "default": 500, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "model_kwargs": {"type": ["object"], "default": - "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default", "advanced": true}, "temperature": {"type": ["double"], "default": - 1.0, "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default"}, "top_p": {"type": ["double"], "default": 1.0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default", "advanced": true}}, - "description": "Use an Open Source model from the Azure Model catalog, deployed - to an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": - "promptflow.tools.open_source_llm", "class_name": "OpenSourceLLM", "function": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 2}}, "deployment_name": {"type": ["string"], "default": "", "dynamic_list": + {"func_path": "promptflow.tools.open_model_llm.list_deployment_names", "func_kwargs": + [{"name": "endpoint", "optional": true, "reference": "${inputs.endpoint}", + "type": ["string"]}]}, "allow_manual_entry": true, "is_multi_select": false, + "input_type": "default", "ui_hints": {"index": 1}}, "endpoint_name": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow.tools.open_model_llm.list_endpoint_names"}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "max_new_tokens": {"type": ["int"], "default": + 500, "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "ui_hints": {"index": 4}}, "model_kwargs": {"type": ["object"], + "default": "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "advanced": true, "ui_hints": {"index": 6}}, "temperature": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}, "top_p": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "advanced": true, "ui_hints": {"index": 5}}}, + "description": "Use an open model from the Azure Model catalog, deployed to + an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": + "promptflow.tools.open_model_llm", "class_name": "OpenModelLLM", "function": "call", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACgElEQVR4nGWSz2vcVRTFP/e9NzOZ1KDGohASslLEH6VLV0ak4l/QpeDCrfQPcNGliODKnVm4EBdBsIjQIlhciKW0ycKFVCSNbYnjdDLtmPnmO/nO9917XcxMkjYX3uLx7nnn3HOuMK2Nix4fP78ZdrYXVkLVWjf3l3B1B+HpcjzGFtmqa6cePz7/x0dnn1n5qhj3iBJPYREIURAJuCtpY8PjReDbrf9WG7H1fuefwQU9qKztTcMJT+PNnEFvjGVDBDlSsH6p/9MLzy6+NxwVqI8RAg4IPmWedMckdLYP6O6UpIaQfvyyXG012+e79/ZfHukoS1ISMT2hGTB1RkUmNgQ5QZ0w+a2VWDq73MbdEWmfnnv6UWe7oNzPaLapl5CwuLTXK9WUGBuCjqekzhP+z52ZXOrKMD3OJg0Hh778aiOuvpnYvp05d6GJO4iAO4QAe/eV36/X5LFRV4Zmn+AdkqlL8Vjp3oVioOz+WTPzzYEgsN+fgPLYyJVheSbPPVl2ikeGZRjtG52/8rHuaV9VOlpP2OtKyVndcRVCSqOhsvxa4vW359i6OuKdD+aP8Q4SYPdOzS/flGjt1JUSaMqZ5nwa1Y8qWb/Ud/eZZkHisYezEM0m+fcelDr8F1SqW2LNK6r1jXQwyLzy1hxvrLXZulry7ocL+FS6G4QIu3fG/Px1gdYeW7LIgXU2P/115TOA5G7e3Rmj2aS/m7l5pThiZzrCcE/d1XHzbln373nw7y6veeoUm5KCNKT/IPPwbiY1hYd/l5MIT65BMFt87sU4v9D7/JMflr44uV6hGh1+L4RCkg6z5iK2tAhNLeLsNGwYA4fDYnC/drvuuFxe86NV/x+Ut27g0FvykgAAAABJRU5ErkJggg==", - "is_builtin": true, "package": "promptflow-tools", "package_version": "0.0.216", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", "enable_kwargs": false, "tool_state": "stable"}, {"name": "OpenAI GPT-4V", "type": "custom_llm", "inputs": {"connection": {"type": ["OpenAIConnection"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "frequency_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_tokens": {"type": - ["int"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], - "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}, - "presence_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "stop": {"type": - ["list"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "temperature": {"type": ["double"], "default": 1, - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use OpenAI GPT-4V to leverage - vision ability.", "module": "promptflow.tools.openai_gpt4v", "class_name": - "OpenAI", "function": "chat", "is_builtin": true, "package": "promptflow-tools", - "package_version": "0.0.216", "default_prompt": "# system:\nAs an AI assistant, - your task involves interpreting images and responding to questions about the - image.\nRemember to provide accurate answers based on the information present - in the image.\n\n# user:\nCan you tell me what the image depicts?\n![image]({{image_input}})\n", - "enable_kwargs": false, "tool_state": "stable"}, {"name": "Serp API", "type": - "python", "inputs": {"connection": {"type": ["SerpConnection"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "engine": {"type": - ["string"], "default": "google", "enum": ["google", "bing"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "location": {"type": - ["string"], "default": "", "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "num": {"type": ["int"], "default": "10", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "query": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "safe": {"type": ["string"], "default": "off", - "enum": ["active", "off"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use Serp API to obtain search - results from a specific search engine.", "module": "promptflow.tools.serpapi", - "class_name": "SerpAPI", "function": "search", "is_builtin": true, "package": - "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": false, - "tool_state": "stable"}, {"name": "Faiss Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "top_k": {"type": ["int"], "default": "3", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "vector": {"type": ["list"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Search vector based query - from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use OpenAI GPT-4V to leverage vision ability.", "module": "promptflow.tools.openai_gpt4v", + "class_name": "OpenAI", "function": "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Serp API", "type": "python", "inputs": + {"connection": {"type": ["SerpConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "engine": {"type": ["string"], "default": + "google", "enum": ["google", "bing"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "location": {"type": ["string"], "default": + "", "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "num": {"type": ["int"], "default": "10", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "safe": {"type": + ["string"], "default": "off", "enum": ["active", "off"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Use Serp API to obtain search results from a specific search engine.", "module": + "promptflow.tools.serpapi", "class_name": "SerpAPI", "function": "search", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "enable_kwargs": false, "tool_state": "stable"}, {"name": "Index Lookup", + "type": "python", "inputs": {"acs_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_embedding_field": {"type": ["string"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Collection(Edm.Single)", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_index_connection": {"type": ["CognitiveSearchConnection"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "acs_index_name": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_indices", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "acs_metadata_field": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Azure AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "aoai_embedding_connection": {"type": + ["AzureOpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["Azure OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "embedding_deployment": {"type": ["string"], "enabled_by": + "embedding_type", "enabled_by_value": ["Azure OpenAI"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_aoai_embedding_deployments", + "func_kwargs": [{"name": "aoai_connection", "optional": false, "reference": + "${inputs.aoai_embedding_connection}", "type": ["AzurOpenAIConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "embedding_model": {"type": ["string"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI", "Hugging Face"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_embedding_models", + "func_kwargs": [{"name": "embedding_type", "optional": false, "reference": + "${inputs.embedding_type}", "type": ["string"]}]}, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "embedding_type": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search", "FAISS", "Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_embedding_types", + "func_kwargs": [{"name": "index_type", "optional": false, "reference": "${inputs.index_type}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "faiss_index_path": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["FAISS"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "index_type": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_index_types"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_asset_id": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Registered Index"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_registered_mlindices"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_content": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "generated_by": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.forward_mapping", + "func_kwargs": [{"name": "index_type", "reference": "${inputs.index_type}", + "type": ["string"]}, {"name": "mlindex_asset_id", "optional": true, "reference": + "${inputs.mlindex_asset_id}", "type": ["string"]}, {"name": "mlindex_path", + "optional": true, "reference": "${inputs.mlindex_path}", "type": ["string"]}, + {"name": "acs_index_connection", "optional": true, "reference": "${inputs.acs_index_connection}", + "type": ["CognitiveSearchConnection"]}, {"name": "acs_index_name", "optional": + true, "reference": "${inputs.acs_index_name}", "type": ["string"]}, {"name": + "acs_content_field", "optional": true, "reference": "${inputs.acs_content_field}", + "type": ["string"]}, {"name": "acs_embedding_field", "optional": true, "reference": + "${inputs.acs_embedding_field}", "type": ["string"]}, {"name": "acs_metadata_field", + "optional": true, "reference": "${inputs.acs_metadata_field}", "type": ["string"]}, + {"name": "semantic_configuration", "optional": true, "reference": "${inputs.semantic_configuration}", + "type": ["string"]}, {"name": "faiss_index_path", "optional": true, "reference": + "${inputs.faiss_index_path}", "type": ["string"]}, {"name": "pinecone_index_connection", + "optional": true, "reference": "${inputs.pinecone_index_connection}", "type": + ["string"]}, {"name": "pinecone_index_name", "optional": true, "reference": + "${inputs.pinecone_index_name}", "type": ["string"]}, {"name": "pinecone_content_field", + "optional": true, "reference": "${inputs.pinecone_content_field}", "type": + ["string"]}, {"name": "pinecone_metadata_field", "optional": true, "reference": + "${inputs.pinecone_metadata_field}", "type": ["string"]}, {"name": "embedding_type", + "optional": true, "reference": "${inputs.embedding_type}", "type": ["string"]}, + {"name": "aoai_embedding_connection", "optional": true, "reference": "${inputs.aoai_embedding_connection}", + "type": ["AzureOpenAIConnection"]}, {"name": "oai_embedding_connection", "optional": + true, "reference": "${inputs.oai_embedding_connection}", "type": ["string"]}, + {"name": "embedding_model", "optional": true, "reference": "${inputs.embedding_model}", + "type": ["string"]}, {"name": "embedding_deployment", "optional": true, "reference": + "${inputs.embedding_deployment}", "type": ["string"]}], "reverse_func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.reverse_mapping"}, "input_type": + "default"}, "mlindex_path": {"type": ["string"], "enabled_by": "index_type", + "enabled_by_value": ["MLIndex file from path"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "oai_embedding_connection": + {"type": ["OpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "pinecone_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Pinecone"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_index_connection": + {"type": ["PineconeConnection"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_connections"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "pinecone_index_name": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_indices", + "func_kwargs": [{"name": "pinecone_connection_name", "optional": false, "reference": + "${inputs.pinecone_index_connection}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_metadata_field": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Pinecone"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "queries": {"type": ["object"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query_type": {"type": ["string"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_query_types", + "func_kwargs": [{"name": "mlindex_content", "optional": false, "reference": + "${inputs.mlindex_content}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "semantic_configuration": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_semantic_configurations", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "top_k": {"type": ["int"], "default": 3, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search an AzureML Vector Index for relevant results using one or more text + queries.", "module": "promptflow_vectordb.tool.common_index_lookup", "function": + "search", "is_builtin": true, "package": "promptflow_vectordb", "package_version": + "0.2.4", "enable_kwargs": false, "tool_state": "preview"}, {"name": "Faiss + Index Lookup", "type": "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": + ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, + "input_type": "default"}, "vector": {"type": ["list"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search vector based query from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", "class_name": "FaissIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector DB Lookup", "type": "python", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector DB Lookup", "type": "python", "inputs": {"class_name": {"type": ["string"], "enabled_by": "connection", "enabled_by_type": ["WeaviateConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "collection_name": {"type": ["string"], "enabled_by": @@ -1397,17 +2853,17 @@ interactions: "is_multi_select": false, "input_type": "default"}}, "description": "Search vector based query from existing Vector Database.", "module": "promptflow_vectordb.tool.vector_db_lookup", "class_name": "VectorDBLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "query": {"type": ["object"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": - ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}}, "description": "Search text or vector based query - from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector Index Lookup", "type": + "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default"}, "query": {"type": ["object"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "top_k": {"type": ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}}, "description": "Search text or vector based + query from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", "class_name": "VectorIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "hello_world.py", "type": "python", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "hello_world.py", "type": "python", "inputs": {"name": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}}, "source": "hello_world.py", "function": "hello_world", "is_builtin": false, "enable_kwargs": false, "tool_state": @@ -1417,20 +2873,20 @@ interactions: "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, - "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "test-runtime-ci", + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", - "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "4debf50d-5af4-4fd7-9e55-e2796fcf44bb", + "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "6f5e65d2-6446-4f71-a1fa-838ae87e6bd5", "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' headers: connection: - keep-alive content-length: - - '12912' + - '27205' content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -1438,7 +2894,7 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.312' + - '0.238' status: code: 200 message: OK @@ -1448,20 +2904,51 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown - Python/3.10.13 (Windows-10-10.0.22631-SP0) + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name response: body: string: '{"flowGraph": {"nodes": [{"name": "hello_world", "type": "python", "source": {"type": "code", "path": "hello_world.py"}, "inputs": {"name": "${inputs.name}"}, - "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Content Safety - (Text Analyze)", "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], + "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Azure OpenAI + GPT-4 Turbo with Vision", "type": "custom_llm", "inputs": {"connection": {"type": + ["AzureOpenAIConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 0}}, "deployment_name": + {"type": ["string"], "enabled_by": "connection", "dynamic_list": {"func_path": + "promptflow.tools.aoai_gpt4v.list_deployment_names", "func_kwargs": [{"name": + "connection", "reference": "${inputs.connection}", "type": ["AzureOpenAIConnection"]}]}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, + "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use Azure OpenAI GPT-4 Turbo with Vision to leverage AOAI vision ability.", + "module": "promptflow.tools.aoai_gpt4v", "class_name": "AzureOpenAI", "function": + "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Content Safety (Text Analyze)", + "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "hate_category": {"type": ["string"], "default": "medium_sensitivity", "enum": ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], @@ -1479,7 +2966,7 @@ interactions: "input_type": "default"}}, "description": "Use Azure Content Safety to detect harmful content.", "module": "promptflow.tools.azure_content_safety", "function": "analyze_text", "is_builtin": true, "package": "promptflow-tools", "package_version": - "0.0.216", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], + "1.4.0rc1", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], "tool_state": "stable"}, {"name": "Embedding", "type": "python", "inputs": {"connection": {"type": ["AzureOpenAIConnection", "OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "deployment_name": @@ -1490,77 +2977,209 @@ interactions: "default"}, "input": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "model": {"type": ["string"], "enum": ["text-embedding-ada-002", "text-search-ada-doc-001", "text-search-ada-query-001"], "enabled_by": "connection", - "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": + "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}}, "description": "Use Open AI''s embedding model to create an embedding vector representing the input text.", "module": "promptflow.tools.embedding", "function": "embedding", "is_builtin": true, - "package": "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Open Source LLM", "type": "custom_llm", + "package": "promptflow-tools", "package_version": "1.4.0rc1", "enable_kwargs": + false, "tool_state": "stable"}, {"name": "Open Model LLM", "type": "custom_llm", "inputs": {"api": {"type": ["string"], "enum": ["chat", "completion"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "connection": {"type": - ["CustomConnection"], "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "deployment_name": {"type": ["string"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "endpoint_name": - {"type": ["string"], "default": "-- please enter an endpoint name --", "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_new_tokens": - {"type": ["int"], "default": 500, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "model_kwargs": {"type": ["object"], "default": - "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default", "advanced": true}, "temperature": {"type": ["double"], "default": - 1.0, "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default"}, "top_p": {"type": ["double"], "default": 1.0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default", "advanced": true}}, - "description": "Use an Open Source model from the Azure Model catalog, deployed - to an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": - "promptflow.tools.open_source_llm", "class_name": "OpenSourceLLM", "function": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 2}}, "deployment_name": {"type": ["string"], "default": "", "dynamic_list": + {"func_path": "promptflow.tools.open_model_llm.list_deployment_names", "func_kwargs": + [{"name": "endpoint", "optional": true, "reference": "${inputs.endpoint}", + "type": ["string"]}]}, "allow_manual_entry": true, "is_multi_select": false, + "input_type": "default", "ui_hints": {"index": 1}}, "endpoint_name": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow.tools.open_model_llm.list_endpoint_names"}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "max_new_tokens": {"type": ["int"], "default": + 500, "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "ui_hints": {"index": 4}}, "model_kwargs": {"type": ["object"], + "default": "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "advanced": true, "ui_hints": {"index": 6}}, "temperature": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}, "top_p": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "advanced": true, "ui_hints": {"index": 5}}}, + "description": "Use an open model from the Azure Model catalog, deployed to + an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": + "promptflow.tools.open_model_llm", "class_name": "OpenModelLLM", "function": "call", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACgElEQVR4nGWSz2vcVRTFP/e9NzOZ1KDGohASslLEH6VLV0ak4l/QpeDCrfQPcNGliODKnVm4EBdBsIjQIlhciKW0ycKFVCSNbYnjdDLtmPnmO/nO9917XcxMkjYX3uLx7nnn3HOuMK2Nix4fP78ZdrYXVkLVWjf3l3B1B+HpcjzGFtmqa6cePz7/x0dnn1n5qhj3iBJPYREIURAJuCtpY8PjReDbrf9WG7H1fuefwQU9qKztTcMJT+PNnEFvjGVDBDlSsH6p/9MLzy6+NxwVqI8RAg4IPmWedMckdLYP6O6UpIaQfvyyXG012+e79/ZfHukoS1ISMT2hGTB1RkUmNgQ5QZ0w+a2VWDq73MbdEWmfnnv6UWe7oNzPaLapl5CwuLTXK9WUGBuCjqekzhP+z52ZXOrKMD3OJg0Hh778aiOuvpnYvp05d6GJO4iAO4QAe/eV36/X5LFRV4Zmn+AdkqlL8Vjp3oVioOz+WTPzzYEgsN+fgPLYyJVheSbPPVl2ikeGZRjtG52/8rHuaV9VOlpP2OtKyVndcRVCSqOhsvxa4vW359i6OuKdD+aP8Q4SYPdOzS/flGjt1JUSaMqZ5nwa1Y8qWb/Ud/eZZkHisYezEM0m+fcelDr8F1SqW2LNK6r1jXQwyLzy1hxvrLXZulry7ocL+FS6G4QIu3fG/Px1gdYeW7LIgXU2P/115TOA5G7e3Rmj2aS/m7l5pThiZzrCcE/d1XHzbln373nw7y6veeoUm5KCNKT/IPPwbiY1hYd/l5MIT65BMFt87sU4v9D7/JMflr44uV6hGh1+L4RCkg6z5iK2tAhNLeLsNGwYA4fDYnC/drvuuFxe86NV/x+Ut27g0FvykgAAAABJRU5ErkJggg==", - "is_builtin": true, "package": "promptflow-tools", "package_version": "0.0.216", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", "enable_kwargs": false, "tool_state": "stable"}, {"name": "OpenAI GPT-4V", "type": "custom_llm", "inputs": {"connection": {"type": ["OpenAIConnection"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "frequency_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_tokens": {"type": - ["int"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], - "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}, - "presence_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "stop": {"type": - ["list"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "temperature": {"type": ["double"], "default": 1, - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use OpenAI GPT-4V to leverage - vision ability.", "module": "promptflow.tools.openai_gpt4v", "class_name": - "OpenAI", "function": "chat", "is_builtin": true, "package": "promptflow-tools", - "package_version": "0.0.216", "default_prompt": "# system:\nAs an AI assistant, - your task involves interpreting images and responding to questions about the - image.\nRemember to provide accurate answers based on the information present - in the image.\n\n# user:\nCan you tell me what the image depicts?\n![image]({{image_input}})\n", - "enable_kwargs": false, "tool_state": "stable"}, {"name": "Serp API", "type": - "python", "inputs": {"connection": {"type": ["SerpConnection"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "engine": {"type": - ["string"], "default": "google", "enum": ["google", "bing"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "location": {"type": - ["string"], "default": "", "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "num": {"type": ["int"], "default": "10", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "query": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "safe": {"type": ["string"], "default": "off", - "enum": ["active", "off"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use Serp API to obtain search - results from a specific search engine.", "module": "promptflow.tools.serpapi", - "class_name": "SerpAPI", "function": "search", "is_builtin": true, "package": - "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": false, - "tool_state": "stable"}, {"name": "Faiss Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "top_k": {"type": ["int"], "default": "3", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "vector": {"type": ["list"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Search vector based query - from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use OpenAI GPT-4V to leverage vision ability.", "module": "promptflow.tools.openai_gpt4v", + "class_name": "OpenAI", "function": "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Serp API", "type": "python", "inputs": + {"connection": {"type": ["SerpConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "engine": {"type": ["string"], "default": + "google", "enum": ["google", "bing"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "location": {"type": ["string"], "default": + "", "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "num": {"type": ["int"], "default": "10", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "safe": {"type": + ["string"], "default": "off", "enum": ["active", "off"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Use Serp API to obtain search results from a specific search engine.", "module": + "promptflow.tools.serpapi", "class_name": "SerpAPI", "function": "search", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "enable_kwargs": false, "tool_state": "stable"}, {"name": "Index Lookup", + "type": "python", "inputs": {"acs_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_embedding_field": {"type": ["string"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Collection(Edm.Single)", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_index_connection": {"type": ["CognitiveSearchConnection"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "acs_index_name": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_indices", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "acs_metadata_field": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Azure AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "aoai_embedding_connection": {"type": + ["AzureOpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["Azure OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "embedding_deployment": {"type": ["string"], "enabled_by": + "embedding_type", "enabled_by_value": ["Azure OpenAI"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_aoai_embedding_deployments", + "func_kwargs": [{"name": "aoai_connection", "optional": false, "reference": + "${inputs.aoai_embedding_connection}", "type": ["AzurOpenAIConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "embedding_model": {"type": ["string"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI", "Hugging Face"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_embedding_models", + "func_kwargs": [{"name": "embedding_type", "optional": false, "reference": + "${inputs.embedding_type}", "type": ["string"]}]}, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "embedding_type": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search", "FAISS", "Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_embedding_types", + "func_kwargs": [{"name": "index_type", "optional": false, "reference": "${inputs.index_type}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "faiss_index_path": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["FAISS"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "index_type": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_index_types"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_asset_id": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Registered Index"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_registered_mlindices"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_content": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "generated_by": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.forward_mapping", + "func_kwargs": [{"name": "index_type", "reference": "${inputs.index_type}", + "type": ["string"]}, {"name": "mlindex_asset_id", "optional": true, "reference": + "${inputs.mlindex_asset_id}", "type": ["string"]}, {"name": "mlindex_path", + "optional": true, "reference": "${inputs.mlindex_path}", "type": ["string"]}, + {"name": "acs_index_connection", "optional": true, "reference": "${inputs.acs_index_connection}", + "type": ["CognitiveSearchConnection"]}, {"name": "acs_index_name", "optional": + true, "reference": "${inputs.acs_index_name}", "type": ["string"]}, {"name": + "acs_content_field", "optional": true, "reference": "${inputs.acs_content_field}", + "type": ["string"]}, {"name": "acs_embedding_field", "optional": true, "reference": + "${inputs.acs_embedding_field}", "type": ["string"]}, {"name": "acs_metadata_field", + "optional": true, "reference": "${inputs.acs_metadata_field}", "type": ["string"]}, + {"name": "semantic_configuration", "optional": true, "reference": "${inputs.semantic_configuration}", + "type": ["string"]}, {"name": "faiss_index_path", "optional": true, "reference": + "${inputs.faiss_index_path}", "type": ["string"]}, {"name": "pinecone_index_connection", + "optional": true, "reference": "${inputs.pinecone_index_connection}", "type": + ["string"]}, {"name": "pinecone_index_name", "optional": true, "reference": + "${inputs.pinecone_index_name}", "type": ["string"]}, {"name": "pinecone_content_field", + "optional": true, "reference": "${inputs.pinecone_content_field}", "type": + ["string"]}, {"name": "pinecone_metadata_field", "optional": true, "reference": + "${inputs.pinecone_metadata_field}", "type": ["string"]}, {"name": "embedding_type", + "optional": true, "reference": "${inputs.embedding_type}", "type": ["string"]}, + {"name": "aoai_embedding_connection", "optional": true, "reference": "${inputs.aoai_embedding_connection}", + "type": ["AzureOpenAIConnection"]}, {"name": "oai_embedding_connection", "optional": + true, "reference": "${inputs.oai_embedding_connection}", "type": ["string"]}, + {"name": "embedding_model", "optional": true, "reference": "${inputs.embedding_model}", + "type": ["string"]}, {"name": "embedding_deployment", "optional": true, "reference": + "${inputs.embedding_deployment}", "type": ["string"]}], "reverse_func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.reverse_mapping"}, "input_type": + "default"}, "mlindex_path": {"type": ["string"], "enabled_by": "index_type", + "enabled_by_value": ["MLIndex file from path"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "oai_embedding_connection": + {"type": ["OpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "pinecone_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Pinecone"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_index_connection": + {"type": ["PineconeConnection"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_connections"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "pinecone_index_name": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_indices", + "func_kwargs": [{"name": "pinecone_connection_name", "optional": false, "reference": + "${inputs.pinecone_index_connection}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_metadata_field": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Pinecone"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "queries": {"type": ["object"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query_type": {"type": ["string"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_query_types", + "func_kwargs": [{"name": "mlindex_content", "optional": false, "reference": + "${inputs.mlindex_content}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "semantic_configuration": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_semantic_configurations", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "top_k": {"type": ["int"], "default": 3, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search an AzureML Vector Index for relevant results using one or more text + queries.", "module": "promptflow_vectordb.tool.common_index_lookup", "function": + "search", "is_builtin": true, "package": "promptflow_vectordb", "package_version": + "0.2.4", "enable_kwargs": false, "tool_state": "preview"}, {"name": "Faiss + Index Lookup", "type": "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": + ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, + "input_type": "default"}, "vector": {"type": ["list"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search vector based query from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", "class_name": "FaissIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector DB Lookup", "type": "python", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector DB Lookup", "type": "python", "inputs": {"class_name": {"type": ["string"], "enabled_by": "connection", "enabled_by_type": ["WeaviateConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "collection_name": {"type": ["string"], "enabled_by": @@ -1586,17 +3205,17 @@ interactions: "is_multi_select": false, "input_type": "default"}}, "description": "Search vector based query from existing Vector Database.", "module": "promptflow_vectordb.tool.vector_db_lookup", "class_name": "VectorDBLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "query": {"type": ["object"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": - ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}}, "description": "Search text or vector based query - from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector Index Lookup", "type": + "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default"}, "query": {"type": ["object"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "top_k": {"type": ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}}, "description": "Search text or vector based + query from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", "class_name": "VectorIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "hello_world.py", "type": "python", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "hello_world.py", "type": "python", "inputs": {"name": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}}, "source": "hello_world.py", "function": "hello_world", "is_builtin": false, "enable_kwargs": false, "tool_state": @@ -1606,20 +3225,20 @@ interactions: "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, - "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "test-runtime-ci", + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", - "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "4debf50d-5af4-4fd7-9e55-e2796fcf44bb", + "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "6f5e65d2-6446-4f71-a1fa-838ae87e6bd5", "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' headers: connection: - keep-alive content-length: - - '12912' + - '27205' content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -1627,7 +3246,7 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.282' + - '0.378' status: code: 200 message: OK @@ -1637,7 +3256,7 @@ interactions: Accept: - '*/*' Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive Content-Length: @@ -1653,18 +3272,18 @@ interactions: string: '{"value": [{"dataContainerId": "dcid.batch_run_name", "name": "__pf__.nodes.hello_world.completed", "columns": {"__pf__.nodes.hello_world.completed": "Double"}, "properties": {"uxMetricType": "azureml.v1.scalar", "dataLocation": null}, "namespace": - null, "standardSchemaId": null, "value": [{"metricId": "92eb9fc0-0a90-4bbc-8eb9-450adfe1f519", - "createdUtc": "2024-01-12T08:10:54.937+00:00", "step": 0, "data": {"__pf__.nodes.hello_world.completed": + null, "standardSchemaId": null, "value": [{"metricId": "2fea77aa-70be-4b3c-b28f-3d62ed7bff02", + "createdUtc": "2024-03-13T08:44:26.539+00:00", "step": 0, "data": {"__pf__.nodes.hello_world.completed": 3.0}}]}, {"dataContainerId": "dcid.batch_run_name", "name": "__pf__.lines.completed", "columns": {"__pf__.lines.completed": "Double"}, "properties": {"uxMetricType": "azureml.v1.scalar", "dataLocation": null}, "namespace": null, "standardSchemaId": - null, "value": [{"metricId": "ca4eb89a-6347-481b-b055-91d58b273e50", "createdUtc": - "2024-01-12T08:10:55.288+00:00", "step": 0, "data": {"__pf__.lines.completed": + null, "value": [{"metricId": "cc2f98d0-8b17-4e21-ac41-28685f4d5658", "createdUtc": + "2024-03-13T08:44:26.937+00:00", "step": 0, "data": {"__pf__.lines.completed": 3.0}}]}, {"dataContainerId": "dcid.batch_run_name", "name": "__pf__.lines.failed", "columns": {"__pf__.lines.failed": "Double"}, "properties": {"uxMetricType": "azureml.v1.scalar", "dataLocation": null}, "namespace": null, "standardSchemaId": - null, "value": [{"metricId": "1d4bbc09-1eff-4be2-b11b-1d5b7da937ce", "createdUtc": - "2024-01-12T08:10:55.754+00:00", "step": 0, "data": {"__pf__.lines.failed": + null, "value": [{"metricId": "88899526-d48b-4e62-88fd-6ddefc783742", "createdUtc": + "2024-03-13T08:44:27.367+00:00", "step": 0, "data": {"__pf__.lines.failed": 0.0}}]}]}' headers: connection: @@ -1674,7 +3293,7 @@ interactions: content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -1682,7 +3301,7 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.071' + - '0.062' status: code: 200 message: OK @@ -1692,20 +3311,51 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown - Python/3.10.13 (Windows-10-10.0.22631-SP0) + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name response: body: string: '{"flowGraph": {"nodes": [{"name": "hello_world", "type": "python", "source": {"type": "code", "path": "hello_world.py"}, "inputs": {"name": "${inputs.name}"}, - "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Content Safety - (Text Analyze)", "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], + "tool": "hello_world.py", "reduce": false}], "tools": [{"name": "Azure OpenAI + GPT-4 Turbo with Vision", "type": "custom_llm", "inputs": {"connection": {"type": + ["AzureOpenAIConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 0}}, "deployment_name": + {"type": ["string"], "enabled_by": "connection", "dynamic_list": {"func_path": + "promptflow.tools.aoai_gpt4v.list_deployment_names", "func_kwargs": [{"name": + "connection", "reference": "${inputs.connection}", "type": ["AzureOpenAIConnection"]}]}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, + "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use Azure OpenAI GPT-4 Turbo with Vision to leverage AOAI vision ability.", + "module": "promptflow.tools.aoai_gpt4v", "class_name": "AzureOpenAI", "function": + "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Content Safety (Text Analyze)", + "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "hate_category": {"type": ["string"], "default": "medium_sensitivity", "enum": ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], @@ -1723,7 +3373,7 @@ interactions: "input_type": "default"}}, "description": "Use Azure Content Safety to detect harmful content.", "module": "promptflow.tools.azure_content_safety", "function": "analyze_text", "is_builtin": true, "package": "promptflow-tools", "package_version": - "0.0.216", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], + "1.4.0rc1", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], "tool_state": "stable"}, {"name": "Embedding", "type": "python", "inputs": {"connection": {"type": ["AzureOpenAIConnection", "OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "deployment_name": @@ -1734,77 +3384,209 @@ interactions: "default"}, "input": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "model": {"type": ["string"], "enum": ["text-embedding-ada-002", "text-search-ada-doc-001", "text-search-ada-query-001"], "enabled_by": "connection", - "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": + "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}}, "description": "Use Open AI''s embedding model to create an embedding vector representing the input text.", "module": "promptflow.tools.embedding", "function": "embedding", "is_builtin": true, - "package": "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Open Source LLM", "type": "custom_llm", + "package": "promptflow-tools", "package_version": "1.4.0rc1", "enable_kwargs": + false, "tool_state": "stable"}, {"name": "Open Model LLM", "type": "custom_llm", "inputs": {"api": {"type": ["string"], "enum": ["chat", "completion"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "connection": {"type": - ["CustomConnection"], "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "deployment_name": {"type": ["string"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "endpoint_name": - {"type": ["string"], "default": "-- please enter an endpoint name --", "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_new_tokens": - {"type": ["int"], "default": 500, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "model_kwargs": {"type": ["object"], "default": - "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default", "advanced": true}, "temperature": {"type": ["double"], "default": - 1.0, "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default"}, "top_p": {"type": ["double"], "default": 1.0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default", "advanced": true}}, - "description": "Use an Open Source model from the Azure Model catalog, deployed - to an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": - "promptflow.tools.open_source_llm", "class_name": "OpenSourceLLM", "function": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 2}}, "deployment_name": {"type": ["string"], "default": "", "dynamic_list": + {"func_path": "promptflow.tools.open_model_llm.list_deployment_names", "func_kwargs": + [{"name": "endpoint", "optional": true, "reference": "${inputs.endpoint}", + "type": ["string"]}]}, "allow_manual_entry": true, "is_multi_select": false, + "input_type": "default", "ui_hints": {"index": 1}}, "endpoint_name": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow.tools.open_model_llm.list_endpoint_names"}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "max_new_tokens": {"type": ["int"], "default": + 500, "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "ui_hints": {"index": 4}}, "model_kwargs": {"type": ["object"], + "default": "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "advanced": true, "ui_hints": {"index": 6}}, "temperature": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}, "top_p": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "advanced": true, "ui_hints": {"index": 5}}}, + "description": "Use an open model from the Azure Model catalog, deployed to + an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": + "promptflow.tools.open_model_llm", "class_name": "OpenModelLLM", "function": "call", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACgElEQVR4nGWSz2vcVRTFP/e9NzOZ1KDGohASslLEH6VLV0ak4l/QpeDCrfQPcNGliODKnVm4EBdBsIjQIlhciKW0ycKFVCSNbYnjdDLtmPnmO/nO9917XcxMkjYX3uLx7nnn3HOuMK2Nix4fP78ZdrYXVkLVWjf3l3B1B+HpcjzGFtmqa6cePz7/x0dnn1n5qhj3iBJPYREIURAJuCtpY8PjReDbrf9WG7H1fuefwQU9qKztTcMJT+PNnEFvjGVDBDlSsH6p/9MLzy6+NxwVqI8RAg4IPmWedMckdLYP6O6UpIaQfvyyXG012+e79/ZfHukoS1ISMT2hGTB1RkUmNgQ5QZ0w+a2VWDq73MbdEWmfnnv6UWe7oNzPaLapl5CwuLTXK9WUGBuCjqekzhP+z52ZXOrKMD3OJg0Hh778aiOuvpnYvp05d6GJO4iAO4QAe/eV36/X5LFRV4Zmn+AdkqlL8Vjp3oVioOz+WTPzzYEgsN+fgPLYyJVheSbPPVl2ikeGZRjtG52/8rHuaV9VOlpP2OtKyVndcRVCSqOhsvxa4vW359i6OuKdD+aP8Q4SYPdOzS/flGjt1JUSaMqZ5nwa1Y8qWb/Ud/eZZkHisYezEM0m+fcelDr8F1SqW2LNK6r1jXQwyLzy1hxvrLXZulry7ocL+FS6G4QIu3fG/Px1gdYeW7LIgXU2P/115TOA5G7e3Rmj2aS/m7l5pThiZzrCcE/d1XHzbln373nw7y6veeoUm5KCNKT/IPPwbiY1hYd/l5MIT65BMFt87sU4v9D7/JMflr44uV6hGh1+L4RCkg6z5iK2tAhNLeLsNGwYA4fDYnC/drvuuFxe86NV/x+Ut27g0FvykgAAAABJRU5ErkJggg==", - "is_builtin": true, "package": "promptflow-tools", "package_version": "0.0.216", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", "enable_kwargs": false, "tool_state": "stable"}, {"name": "OpenAI GPT-4V", "type": "custom_llm", "inputs": {"connection": {"type": ["OpenAIConnection"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "frequency_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_tokens": {"type": - ["int"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], - "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}, - "presence_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "stop": {"type": - ["list"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "temperature": {"type": ["double"], "default": 1, - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "seed": {"type": ["int"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 8}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 5}}, + "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 2}}, "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use OpenAI GPT-4V to leverage - vision ability.", "module": "promptflow.tools.openai_gpt4v", "class_name": - "OpenAI", "function": "chat", "is_builtin": true, "package": "promptflow-tools", - "package_version": "0.0.216", "default_prompt": "# system:\nAs an AI assistant, - your task involves interpreting images and responding to questions about the - image.\nRemember to provide accurate answers based on the information present - in the image.\n\n# user:\nCan you tell me what the image depicts?\n![image]({{image_input}})\n", - "enable_kwargs": false, "tool_state": "stable"}, {"name": "Serp API", "type": - "python", "inputs": {"connection": {"type": ["SerpConnection"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "engine": {"type": - ["string"], "default": "google", "enum": ["google", "bing"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "location": {"type": - ["string"], "default": "", "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "num": {"type": ["int"], "default": "10", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "query": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "safe": {"type": ["string"], "default": "off", - "enum": ["active", "off"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use Serp API to obtain search - results from a specific search engine.", "module": "promptflow.tools.serpapi", - "class_name": "SerpAPI", "function": "search", "is_builtin": true, "package": - "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": false, - "tool_state": "stable"}, {"name": "Faiss Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "top_k": {"type": ["int"], "default": "3", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "vector": {"type": ["list"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Search vector based query - from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", + false, "input_type": "default", "ui_hints": {"index": 3}}}, "description": + "Use OpenAI GPT-4V to leverage vision ability.", "module": "promptflow.tools.openai_gpt4v", + "class_name": "OpenAI", "function": "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Serp API", "type": "python", "inputs": + {"connection": {"type": ["SerpConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "engine": {"type": ["string"], "default": + "google", "enum": ["google", "bing"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "location": {"type": ["string"], "default": + "", "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "num": {"type": ["int"], "default": "10", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "safe": {"type": + ["string"], "default": "off", "enum": ["active", "off"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Use Serp API to obtain search results from a specific search engine.", "module": + "promptflow.tools.serpapi", "class_name": "SerpAPI", "function": "search", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.4.0rc1", + "enable_kwargs": false, "tool_state": "stable"}, {"name": "Index Lookup", + "type": "python", "inputs": {"acs_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_embedding_field": {"type": ["string"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Collection(Edm.Single)", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_index_connection": {"type": ["CognitiveSearchConnection"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "acs_index_name": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_indices", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "acs_metadata_field": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Azure AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "aoai_embedding_connection": {"type": + ["AzureOpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["Azure OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "embedding_deployment": {"type": ["string"], "enabled_by": + "embedding_type", "enabled_by_value": ["Azure OpenAI"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_aoai_embedding_deployments", + "func_kwargs": [{"name": "aoai_connection", "optional": false, "reference": + "${inputs.aoai_embedding_connection}", "type": ["AzurOpenAIConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "embedding_model": {"type": ["string"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI", "Hugging Face"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_embedding_models", + "func_kwargs": [{"name": "embedding_type", "optional": false, "reference": + "${inputs.embedding_type}", "type": ["string"]}]}, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "embedding_type": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search", "FAISS", "Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_embedding_types", + "func_kwargs": [{"name": "index_type", "optional": false, "reference": "${inputs.index_type}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "faiss_index_path": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["FAISS"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "index_type": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_index_types"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_asset_id": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Registered Index"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_registered_mlindices"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_content": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "generated_by": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.forward_mapping", + "func_kwargs": [{"name": "index_type", "reference": "${inputs.index_type}", + "type": ["string"]}, {"name": "mlindex_asset_id", "optional": true, "reference": + "${inputs.mlindex_asset_id}", "type": ["string"]}, {"name": "mlindex_path", + "optional": true, "reference": "${inputs.mlindex_path}", "type": ["string"]}, + {"name": "acs_index_connection", "optional": true, "reference": "${inputs.acs_index_connection}", + "type": ["CognitiveSearchConnection"]}, {"name": "acs_index_name", "optional": + true, "reference": "${inputs.acs_index_name}", "type": ["string"]}, {"name": + "acs_content_field", "optional": true, "reference": "${inputs.acs_content_field}", + "type": ["string"]}, {"name": "acs_embedding_field", "optional": true, "reference": + "${inputs.acs_embedding_field}", "type": ["string"]}, {"name": "acs_metadata_field", + "optional": true, "reference": "${inputs.acs_metadata_field}", "type": ["string"]}, + {"name": "semantic_configuration", "optional": true, "reference": "${inputs.semantic_configuration}", + "type": ["string"]}, {"name": "faiss_index_path", "optional": true, "reference": + "${inputs.faiss_index_path}", "type": ["string"]}, {"name": "pinecone_index_connection", + "optional": true, "reference": "${inputs.pinecone_index_connection}", "type": + ["string"]}, {"name": "pinecone_index_name", "optional": true, "reference": + "${inputs.pinecone_index_name}", "type": ["string"]}, {"name": "pinecone_content_field", + "optional": true, "reference": "${inputs.pinecone_content_field}", "type": + ["string"]}, {"name": "pinecone_metadata_field", "optional": true, "reference": + "${inputs.pinecone_metadata_field}", "type": ["string"]}, {"name": "embedding_type", + "optional": true, "reference": "${inputs.embedding_type}", "type": ["string"]}, + {"name": "aoai_embedding_connection", "optional": true, "reference": "${inputs.aoai_embedding_connection}", + "type": ["AzureOpenAIConnection"]}, {"name": "oai_embedding_connection", "optional": + true, "reference": "${inputs.oai_embedding_connection}", "type": ["string"]}, + {"name": "embedding_model", "optional": true, "reference": "${inputs.embedding_model}", + "type": ["string"]}, {"name": "embedding_deployment", "optional": true, "reference": + "${inputs.embedding_deployment}", "type": ["string"]}], "reverse_func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.reverse_mapping"}, "input_type": + "default"}, "mlindex_path": {"type": ["string"], "enabled_by": "index_type", + "enabled_by_value": ["MLIndex file from path"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "oai_embedding_connection": + {"type": ["OpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "pinecone_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Pinecone"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_index_connection": + {"type": ["PineconeConnection"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_connections"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "pinecone_index_name": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_indices", + "func_kwargs": [{"name": "pinecone_connection_name", "optional": false, "reference": + "${inputs.pinecone_index_connection}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_metadata_field": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Pinecone"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "queries": {"type": ["object"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query_type": {"type": ["string"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_query_types", + "func_kwargs": [{"name": "mlindex_content", "optional": false, "reference": + "${inputs.mlindex_content}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "semantic_configuration": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_semantic_configurations", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "top_k": {"type": ["int"], "default": 3, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search an AzureML Vector Index for relevant results using one or more text + queries.", "module": "promptflow_vectordb.tool.common_index_lookup", "function": + "search", "is_builtin": true, "package": "promptflow_vectordb", "package_version": + "0.2.4", "enable_kwargs": false, "tool_state": "preview"}, {"name": "Faiss + Index Lookup", "type": "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": + ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, + "input_type": "default"}, "vector": {"type": ["list"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search vector based query from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", "class_name": "FaissIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector DB Lookup", "type": "python", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector DB Lookup", "type": "python", "inputs": {"class_name": {"type": ["string"], "enabled_by": "connection", "enabled_by_type": ["WeaviateConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "collection_name": {"type": ["string"], "enabled_by": @@ -1830,17 +3612,17 @@ interactions: "is_multi_select": false, "input_type": "default"}}, "description": "Search vector based query from existing Vector Database.", "module": "promptflow_vectordb.tool.vector_db_lookup", "class_name": "VectorDBLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "query": {"type": ["object"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": - ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}}, "description": "Search text or vector based query - from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "Vector Index Lookup", "type": + "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default"}, "query": {"type": ["object"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "top_k": {"type": ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}}, "description": "Search text or vector based + query from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", "class_name": "VectorIndexLookup", "function": "search", "is_builtin": true, - "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "hello_world.py", "type": "python", + "package": "promptflow_vectordb", "package_version": "0.2.4", "enable_kwargs": + false, "tool_state": "deprecated"}, {"name": "hello_world.py", "type": "python", "inputs": {"name": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}}, "source": "hello_world.py", "function": "hello_world", "is_builtin": false, "enable_kwargs": false, "tool_state": @@ -1850,20 +3632,20 @@ interactions: "azureml://locations/eastus/workspaces/00000/flows/batch_run_name/flowRuns/batch_run_name", "flowRunId": "batch_run_name", "flowRunDisplayName": "sdk-cli-test-fixture-batch-run-without-llm", "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl"}, - "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "test-runtime-ci", + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", "inputsMapping": {"name": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": "promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts", - "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "4debf50d-5af4-4fd7-9e55-e2796fcf44bb", + "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "6f5e65d2-6446-4f71-a1fa-838ae87e6bd5", "studioPortalEndpoint": "https://ml.azure.com/runs/batch_run_name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' headers: connection: - keep-alive content-length: - - '12912' + - '27205' content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -1871,47 +3653,53 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.282' + - '0.226' status: code: 200 message: OK - request: - body: '{"snapshotOrAssetId": "4debf50d-5af4-4fd7-9e55-e2796fcf44bb"}' + body: '{"value": "azureml://locations/eastus/workspaces/00000/data/azureml_batch_run_name_output_data_debug_info/versions/1"}' headers: accept: - '*/*' accept-encoding: - - gzip, deflate + - gzip, deflate, br connection: - keep-alive content-length: - - '61' + - '171' content-type: - application/json host: - eastus.api.azureml.ms user-agent: - - python-httpx/0.25.2 + - python-httpx/0.27.0 method: POST - uri: https://eastus.api.azureml.ms/content/v2.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/snapshots/sas + uri: https://eastus.api.azureml.ms/data/v1.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/dataversion/getByAssetId response: - content: '{"name": "", "hash": null, "type": "Directory", "timestamp": "0001-01-01T00:00:00+00:00", - "sasUrl": null, "absoluteUrl": null, "sizeBytes": 0, "sizeSet": false, "children": - {"flow.dag.yaml": {"name": "flow.dag.yaml", "hash": "5199B74F23A82968D2476DFE529EAA50", - "type": "File", "timestamp": "0001-01-01T00:00:00+00:00", "sasUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/batch_run_name/flow.dag.yaml?sv=2019-07-07&sr=b&sig=XAEfHSf9iPDaX6S7OeeQzpvJQw%2B9OUEQu7xLv03shTU%3D&st=2024-01-12T08%3A01%3A35Z&se=2024-01-12T16%3A11%3A35Z&sp=r&rscd=filename%3Dflow.dag.yaml", - "absoluteUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/batch_run_name/flow.dag.yaml", - "sizeBytes": 266, "sizeSet": true, "children": {}}, "hello_world.py": {"name": - "hello_world.py", "hash": "F9B1E040145CBA4E286861114DCF2A7A", "type": "File", - "timestamp": "0001-01-01T00:00:00+00:00", "sasUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/batch_run_name/hello_world.py?sv=2019-07-07&sr=b&sig=9MDOTxuI383BaX%2FtV1kT3rs9LsBeFjxPce90PXBdJrc%3D&st=2024-01-12T08%3A01%3A35Z&se=2024-01-12T16%3A11%3A35Z&sp=r&rscd=filename%3Dhello_world.py", - "absoluteUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/batch_run_name/hello_world.py", - "sizeBytes": 111, "sizeSet": true, "children": {}}}}' + content: '{"dataVersion": {"assetId": "azureml://locations/eastus/workspaces/00000/data/azureml_batch_run_name_output_data_debug_info/versions/1", + "dataContainerName": "azureml_batch_run_name_output_data_debug_info", "dataType": + "UriFolder", "dataUri": "azureml://subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/workspaces/00000/datastores/workspaceblobstore/paths/promptflow/PromptFlowArtifacts/batch_run_name/", + "versionId": "1", "mutableProps": {"dataExpiryTime": null, "description": null, + "tags": null, "isArchived": false, "stage": "Logged", "autoDeleteSetting": null}, + "referencedDataUris": null, "properties": null, "initialAssetId": "azureml://locations/eastus/workspaces/00000/data/azureml_batch_run_name_output_data_debug_info/versions/1", + "isRegistered": false, "runId": "batch_run_name", "originAssetId": null}, "entityMetadata": + {"etag": "\"2900823e-0000-0100-0000-65f1676c0000\"", "createdTime": "2024-03-13T08:44:28.9783357+00:00", + "modifiedTime": "2024-03-13T08:44:28.9882856+00:00", "createdBy": {"userObjectId": + "00000000-0000-0000-0000-000000000000", "userPuId": "10032000324F7449", "userIdp": + null, "userAltSecId": null, "userIss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", + "userTenantId": "00000000-0000-0000-0000-000000000000", "userName": "Honglin + Du", "upn": "username@microsoft.com"}, "modifiedBy": null}, "legacyDatasetId": + "313e85d7-3d1e-4cce-a392-813fe5ebdd32", "isV2": true, "legacyDatasetType": null, + "legacyDataflowType": null, "legacyDataflow": null, "legacySavedDatasetId": + null, "putAssetLROResponseDto": null}' headers: connection: - keep-alive content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -1919,51 +3707,46 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.080' + - '0.034' http_version: HTTP/1.1 status_code: 200 - request: - body: '{"value": "azureml://locations/eastus/workspaces/00000/data/azureml_batch_run_name_output_data_debug_info/versions/1"}' + body: '{"snapshotOrAssetId": "6f5e65d2-6446-4f71-a1fa-838ae87e6bd5"}' headers: accept: - '*/*' accept-encoding: - - gzip, deflate + - gzip, deflate, br connection: - keep-alive content-length: - - '171' + - '61' content-type: - application/json host: - eastus.api.azureml.ms user-agent: - - python-httpx/0.25.2 + - python-httpx/0.27.0 method: POST - uri: https://eastus.api.azureml.ms/data/v1.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/dataversion/getByAssetId + uri: https://eastus.api.azureml.ms/content/v2.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/snapshots/sas response: - content: '{"dataVersion": {"assetId": "azureml://locations/eastus/workspaces/00000/data/azureml_batch_run_name_output_data_debug_info/versions/1", - "dataContainerName": "azureml_batch_run_name_output_data_debug_info", "dataType": - "UriFolder", "dataUri": "azureml://subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/workspaces/00000/datastores/workspaceblobstore/paths/promptflow/PromptFlowArtifacts/batch_run_name/", - "versionId": "1", "mutableProps": {"dataExpiryTime": null, "description": null, - "tags": null, "isArchived": false, "stage": "Logged", "autoDeleteSetting": null}, - "referencedDataUris": null, "properties": null, "initialAssetId": "azureml://locations/eastus/workspaces/00000/data/azureml_batch_run_name_output_data_debug_info/versions/1", - "isRegistered": false, "runId": "batch_run_name", "originAssetId": null}, "entityMetadata": - {"etag": "\"4f06df3c-0000-0100-0000-65a0f4100000\"", "createdTime": "2024-01-12T08:10:56.2930893+00:00", - "modifiedTime": "2024-01-12T08:10:56.304512+00:00", "createdBy": {"userObjectId": - "00000000-0000-0000-0000-000000000000", "userPuId": null, "userIdp": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", - "userAltSecId": null, "userIss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", - "userTenantId": "00000000-0000-0000-0000-000000000000", "userName": "18a66f5f-dbdf-4c17-9dd7-1634712a9cbe", - "upn": null}, "modifiedBy": null}, "legacyDatasetId": "0f5cc294-584d-4082-a8ed-da5a862ed2ac", - "isV2": true, "legacyDatasetType": null, "legacyDataflowType": null, "legacyDataflow": - null, "legacySavedDatasetId": null, "putAssetLROResponseDto": null}' + content: '{"name": "", "hash": null, "type": "Directory", "timestamp": "0001-01-01T00:00:00+00:00", + "sasUrl": null, "absoluteUrl": null, "sizeBytes": 0, "sizeSet": false, "children": + {"flow.dag.yaml": {"name": "flow.dag.yaml", "hash": "5199B74F23A82968D2476DFE529EAA50", + "type": "File", "timestamp": "0001-01-01T00:00:00+00:00", "sasUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/batch_run_name/flow.dag.yaml?sv=2019-07-07&sr=b&sig=mcuAXCNkzCUywVxdBuYJrs7hO6bvMaBpVNikXIpWvh4%3D&st=2024-03-13T08%3A35%3A11Z&se=2024-03-13T16%3A45%3A11Z&sp=r&rscd=filename%3Dflow.dag.yaml", + "absoluteUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/batch_run_name/flow.dag.yaml", + "sizeBytes": 266, "sizeSet": true, "children": {}}, "hello_world.py": {"name": + "hello_world.py", "hash": "045378AFD5EC066939A963EAE5CDF40C", "type": "File", + "timestamp": "0001-01-01T00:00:00+00:00", "sasUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/batch_run_name/hello_world.py?sv=2019-07-07&sr=b&sig=%2BWDz2ika63t1D4HBP80UkxvIewn55OCelZLbKZCz7u8%3D&st=2024-03-13T08%3A35%3A11Z&se=2024-03-13T16%3A45%3A11Z&sp=r&rscd=filename%3Dhello_world.py", + "absoluteUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/batch_run_name/hello_world.py", + "sizeBytes": 176, "sizeSet": true, "children": {}}}}' headers: connection: - keep-alive content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -1971,7 +3754,7 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.963' + - '0.112' http_version: HTTP/1.1 status_code: 200 - request: @@ -1980,9 +3763,9 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:11:35 GMT + - Wed, 13 Mar 2024 08:45:11 GMT x-ms-range: - bytes=0-33554431 x-ms-version: @@ -2005,7 +3788,7 @@ interactions: content-type: - application/octet-stream last-modified: - - Fri, 12 Jan 2024 08:10:38 GMT + - Wed, 13 Mar 2024 08:44:05 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 vary: @@ -2015,19 +3798,19 @@ interactions: x-ms-blob-type: - BlockBlob x-ms-copy-completion-time: - - Fri, 12 Jan 2024 08:10:38 GMT + - Wed, 13 Mar 2024 08:44:05 GMT x-ms-copy-id: - - 047f8a8a-91df-4fe7-819d-3daa4fdf3f91 + - 8792fd41-c4ac-438f-9fd0-75f030600b67 x-ms-copy-progress: - 266/266 x-ms-copy-source: - - https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/LocalUpload/36774154bc3ecde4aa21054b3052221f/hello-world/flow.dag.yaml + - https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/LocalUpload/922d1eede3b291e1a7a5cb704ed3eeb7/hello-world/flow.dag.yaml x-ms-copy-status: - success x-ms-creation-time: - - Fri, 12 Jan 2024 08:10:38 GMT + - Wed, 13 Mar 2024 08:44:05 GMT x-ms-meta-name: - - 7b68bf5e-6ef4-4eb3-9f49-28f9a5baad87 + - b03f97dc-2031-4aef-b0fb-c57011d59435 x-ms-meta-upload_status: - completed x-ms-meta-version: @@ -2043,76 +3826,9 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) - x-ms-date: - - Fri, 12 Jan 2024 08:11:37 GMT - x-ms-version: - - '2023-11-03' - method: GET - uri: https://fake_account_name.blob.core.windows.net/fake-container-name?comp=list&prefix=promptflow%2FPromptFlowArtifacts%2Fbatch_run_name%2F&restype=container - response: - body: - string: "\uFEFFpromptflow/PromptFlowArtifacts/batch_run_name/promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts/000000000_000000024.jsonlFri, - 12 Jan 2024 08:10:53 GMTFri, 12 Jan 2024 08:10:53 - GMT0x8DC1345FF66A6054004application/octet-streamAppendBlobunlockedavailabletruepromptflow/PromptFlowArtifacts/batch_run_name/flow_outputs/output.jsonlFri, - 12 Jan 2024 08:10:56 GMTFri, 12 Jan 2024 08:10:56 - GMT0x8DC134600EACDCB267application/octet-streamRhzWn41vAT8bekG2OuHirg==BlockBlobHottrueunlockedavailabletruepromptflow/PromptFlowArtifacts/batch_run_name/instance_results.jsonlFri, - 12 Jan 2024 08:10:53 GMTFri, 12 Jan 2024 08:10:53 - GMT0x8DC1345FF6B5BA6597application/octet-streamAppendBlobunlockedavailabletruepromptflow/PromptFlowArtifacts/batch_run_name/meta.jsonFri, - 12 Jan 2024 08:10:52 GMTFri, 12 Jan 2024 08:10:52 - GMT0x8DC1345FE937ADE18application/octet-stream/u1NXUpgXMFDmZEw835qnw==BlockBlobHottrueunlockedavailabletruepromptflow/PromptFlowArtifacts/batch_run_name/node_artifacts/hello_world/000000000.jsonlFri, - 12 Jan 2024 08:10:53 GMTFri, 12 Jan 2024 08:10:53 - GMT0x8DC1345FF4D6E191198application/octet-streamDSgFq8oOaGajvyQtRsalPQ==BlockBlobHottrueunlockedavailabletruepromptflow/PromptFlowArtifacts/batch_run_name/node_artifacts/hello_world/000000001.jsonlFri, - 12 Jan 2024 08:10:53 GMTFri, 12 Jan 2024 08:10:53 - GMT0x8DC1345FF53CF8C1198application/octet-streamnK3XJ818HLYvfiuQPMZhqg==BlockBlobHottrueunlockedavailabletruepromptflow/PromptFlowArtifacts/batch_run_name/node_artifacts/hello_world/000000002.jsonlFri, - 12 Jan 2024 08:10:53 GMTFri, 12 Jan 2024 08:10:53 - GMT0x8DC1345FF62650D1197application/octet-streamuNDmrXkZIRdBycvMcJlF5w==BlockBlobHottrueunlockedavailabletrue" - headers: - content-type: - - application/xml - server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 - transfer-encoding: - - chunked - vary: - - Origin - x-ms-version: - - '2023-11-03' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/xml - User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:11:37 GMT + - Wed, 13 Mar 2024 08:45:11 GMT x-ms-range: - bytes=0-33554431 x-ms-version: @@ -2121,39 +3837,40 @@ interactions: uri: https://fake_account_name.blob.core.windows.net/fake-container-name/runs/batch_run_name/hello_world.py response: body: - string: "from promptflow import tool\r\n\r\n\r\n@tool\r\ndef hello_world(name: - str) -> str:\r\n return f\"Hello World {name}!\"\r\n" + string: "import time\r\n\r\nfrom promptflow import tool\r\n\r\n\r\n@tool\r\ndef + hello_world(name: str) -> str:\r\n # Sleep for 1.2 seconds\r\n time.sleep(1.2)\r\n + \ return f\"Hello World {name}!\"\r\n" headers: accept-ranges: - bytes content-length: - - '111' + - '176' content-range: - - bytes 0-110/111 + - bytes 0-175/176 content-type: - application/octet-stream last-modified: - - Fri, 12 Jan 2024 08:10:38 GMT + - Wed, 13 Mar 2024 08:44:05 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 vary: - Origin x-ms-blob-content-md5: - - +bHgQBRcuk4oaGERTc8qeg== + - BFN4r9XsBmk5qWPq5c30DA== x-ms-blob-type: - BlockBlob x-ms-copy-completion-time: - - Fri, 12 Jan 2024 08:10:38 GMT + - Wed, 13 Mar 2024 08:44:05 GMT x-ms-copy-id: - - 7663b9c2-f799-4710-b23f-e5995c6563eb + - 182c52ee-736e-4691-8c0f-9237ca91588f x-ms-copy-progress: - - 111/111 + - 176/176 x-ms-copy-source: - - https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/LocalUpload/36774154bc3ecde4aa21054b3052221f/hello-world/hello_world.py + - https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/LocalUpload/922d1eede3b291e1a7a5cb704ed3eeb7/hello-world/hello_world.py x-ms-copy-status: - success x-ms-creation-time: - - Fri, 12 Jan 2024 08:10:38 GMT + - Wed, 13 Mar 2024 08:44:05 GMT x-ms-version: - '2023-11-03' status: @@ -2165,59 +3882,76 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:11:38 GMT - x-ms-range: - - bytes=0-33554431 + - Wed, 13 Mar 2024 08:45:09 GMT x-ms-version: - '2023-11-03' method: GET - uri: https://fake_account_name.blob.core.windows.net/fake-container-name/promptflow/PromptFlowArtifacts/batch_run_name/flow_outputs/output.jsonl + uri: https://fake_account_name.blob.core.windows.net/fake-container-name?comp=list&prefix=promptflow%2FPromptFlowArtifacts%2Fbatch_run_name%2F&restype=container response: body: - string: '{"line_number": 0, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"} - - {"line_number": 1, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"} - - {"line_number": 2, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"} - - ' + string: "\uFEFFpromptflow/PromptFlowArtifacts/batch_run_name/promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts/000000000_000000024.jsonlWed, + 13 Mar 2024 08:44:24 GMTWed, 13 Mar 2024 08:44:24 + GMT0x8DC4339C905B9D05512application/octet-streamAppendBlobunlockedavailabletruepromptflow/PromptFlowArtifacts/batch_run_name/flow_outputs/output.jsonlWed, + 13 Mar 2024 08:44:29 GMTWed, 13 Mar 2024 08:44:29 + GMT0x8DC4339CBC40E02267application/octet-streamRhzWn41vAT8bekG2OuHirg==BlockBlobHottrueunlockedavailabletruepromptflow/PromptFlowArtifacts/batch_run_name/instance_results.jsonlWed, + 13 Mar 2024 08:44:24 GMTWed, 13 Mar 2024 08:44:24 + GMT0x8DC4339C909D3EC597application/octet-streamAppendBlobunlockedavailabletruepromptflow/PromptFlowArtifacts/batch_run_name/meta.jsonWed, + 13 Mar 2024 08:44:15 GMTWed, 13 Mar 2024 08:44:15 + GMT0x8DC4339C382891818application/octet-stream/u1NXUpgXMFDmZEw835qnw==BlockBlobHottrueunlockedavailabletruepromptflow/PromptFlowArtifacts/batch_run_name/node_artifacts/hello_world/000000000.jsonlWed, + 13 Mar 2024 08:44:24 GMTWed, 13 Mar 2024 08:44:24 + GMT0x8DC4339C8EF64C41281application/octet-streamX7Dda8zdobGRdfrWZWRihg==BlockBlobHottrueunlockedavailabletruepromptflow/PromptFlowArtifacts/batch_run_name/node_artifacts/hello_world/000000001.jsonlWed, + 13 Mar 2024 08:44:24 GMTWed, 13 Mar 2024 08:44:24 + GMT0x8DC4339C8E8DC6D1281application/octet-streamVHJp2pmSnqb6k6w6lspR3Q==BlockBlobHottrueunlockedavailabletruepromptflow/PromptFlowArtifacts/batch_run_name/node_artifacts/hello_world/000000002.jsonlWed, + 13 Mar 2024 08:44:24 GMTWed, 13 Mar 2024 08:44:24 + GMT0x8DC4339C900B66D1281application/octet-streamCbUEGjmYaiSQG1UUvfb+xA==BlockBlobHottrueunlockedavailabletrue" headers: - accept-ranges: - - bytes - content-length: - - '267' - content-range: - - bytes 0-266/267 content-type: - - application/octet-stream - last-modified: - - Fri, 12 Jan 2024 08:10:56 GMT + - application/xml server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked vary: - Origin - x-ms-blob-content-md5: - - RhzWn41vAT8bekG2OuHirg== - x-ms-blob-type: - - BlockBlob - x-ms-creation-time: - - Fri, 12 Jan 2024 08:10:56 GMT x-ms-version: - '2023-11-03' status: - code: 206 - message: Partial Content + code: 200 + message: OK - request: body: null headers: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:11:38 GMT + - Wed, 13 Mar 2024 08:45:12 GMT x-ms-range: - bytes=0-33554431 x-ms-version: @@ -2226,38 +3960,48 @@ interactions: uri: https://fake_account_name.blob.core.windows.net/fake-container-name/promptflow/PromptFlowArtifacts/batch_run_name/flow_artifacts/000000000_000000024.jsonl response: body: - string: '{"line_number": 0, "run_info": {"run_id": "batch_run_name_0", "status": + string: '{"line_number": 1, "run_info": {"run_id": "batch_run_name_1", "status": "Completed", "error": null, "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g", - "line_number": 0}, "output": {"result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, + "line_number": 1}, "output": {"result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, "metrics": null, "request": null, "parent_run_id": "batch_run_name", "root_run_id": "batch_run_name", "source_run_id": null, "flow_id": "default_flow_id", "start_time": - "2024-01-12T08:10:53.633044Z", "end_time": "2024-01-12T08:10:53.639618Z", - "index": 0, "api_calls": [{"name": "hello_world", "type": "Tool", "inputs": - {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g"}, "output": "Hello - World https://www.youtube.com/watch?v=o5ZQyXaAv1g!", "start_time": 1705047053.63676, - "end_time": 1705047053.637577, "error": null, "children": null, "node_name": - "hello_world"}], "variant_id": "", "name": "", "description": "", "tags": - null, "system_metrics": {"duration": 0.006574, "prompt_tokens": 0, "completion_tokens": + "2024-03-13T08:44:23.023856Z", "end_time": "2024-03-13T08:44:24.240836Z", + "index": 1, "api_calls": [{"name": "flow", "node_name": "flow", "type": "Flow", + "start_time": 1710319463.023856, "end_time": 1710319464.240836, "children": + [{"name": "hello_world", "type": "Tool", "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g"}, + "output": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!", "start_time": + 1710319463.03124, "end_time": 1710319464.234362, "error": null, "children": + [], "node_name": "hello_world", "parent_id": "", "id": "e7d0ac4e-fecf-4e4b-88d1-3f7b7a71e9c2", + "system_metrics": {}}], "system_metrics": {"duration": 1.21698, "prompt_tokens": + 0, "completion_tokens": 0, "total_tokens": 0}, "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g", + "line_number": 1}, "output": {"result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, + "error": null}], "variant_id": "", "name": "", "description": "", "tags": + null, "system_metrics": {"duration": 1.21698, "prompt_tokens": 0, "completion_tokens": 0, "total_tokens": 0}, "result": {"result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, - "upload_metrics": false}, "start_time": "2024-01-12T08:10:53.633044", "end_time": - "2024-01-12T08:10:53.639618", "name": "", "description": "", "status": "Completed", + "upload_metrics": false}, "start_time": "2024-03-13T08:44:23.023856", "end_time": + "2024-03-13T08:44:24.240836", "name": "", "description": "", "status": "Completed", "tags": null} - {"line_number": 1, "run_info": {"run_id": "batch_run_name_1", "status": "Completed", + {"line_number": 0, "run_info": {"run_id": "batch_run_name_0", "status": "Completed", "error": null, "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g", - "line_number": 1}, "output": {"result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, + "line_number": 0}, "output": {"result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, "metrics": null, "request": null, "parent_run_id": "batch_run_name", "root_run_id": "batch_run_name", "source_run_id": null, "flow_id": "default_flow_id", "start_time": - "2024-01-12T08:10:53.645944Z", "end_time": "2024-01-12T08:10:53.653897Z", - "index": 1, "api_calls": [{"name": "hello_world", "type": "Tool", "inputs": - {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g"}, "output": "Hello - World https://www.youtube.com/watch?v=o5ZQyXaAv1g!", "start_time": 1705047053.650148, - "end_time": 1705047053.65095, "error": null, "children": null, "node_name": - "hello_world"}], "variant_id": "", "name": "", "description": "", "tags": - null, "system_metrics": {"duration": 0.007953, "prompt_tokens": 0, "completion_tokens": + "2024-03-13T08:44:23.023052Z", "end_time": "2024-03-13T08:44:24.244426Z", + "index": 0, "api_calls": [{"name": "flow", "node_name": "flow", "type": "Flow", + "start_time": 1710319463.023052, "end_time": 1710319464.244426, "children": + [{"name": "hello_world", "type": "Tool", "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g"}, + "output": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!", "start_time": + 1710319463.034291, "end_time": 1710319464.237185, "error": null, "children": + [], "node_name": "hello_world", "parent_id": "", "id": "913982e5-4992-401e-9408-c778963f75a5", + "system_metrics": {}}], "system_metrics": {"duration": 1.221374, "prompt_tokens": + 0, "completion_tokens": 0, "total_tokens": 0}, "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g", + "line_number": 0}, "output": {"result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, + "error": null}], "variant_id": "", "name": "", "description": "", "tags": + null, "system_metrics": {"duration": 1.221374, "prompt_tokens": 0, "completion_tokens": 0, "total_tokens": 0}, "result": {"result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, - "upload_metrics": false}, "start_time": "2024-01-12T08:10:53.645944", "end_time": - "2024-01-12T08:10:53.653897", "name": "", "description": "", "status": "Completed", + "upload_metrics": false}, "start_time": "2024-03-13T08:44:23.023052", "end_time": + "2024-03-13T08:44:24.244426", "name": "", "description": "", "status": "Completed", "tags": null} {"line_number": 2, "run_info": {"run_id": "batch_run_name_2", "status": "Completed", @@ -2265,16 +4009,21 @@ interactions: "line_number": 2}, "output": {"result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, "metrics": null, "request": null, "parent_run_id": "batch_run_name", "root_run_id": "batch_run_name", "source_run_id": null, "flow_id": "default_flow_id", "start_time": - "2024-01-12T08:10:53.765205Z", "end_time": "2024-01-12T08:10:53.771326Z", - "index": 2, "api_calls": [{"name": "hello_world", "type": "Tool", "inputs": - {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g"}, "output": "Hello - World https://www.youtube.com/watch?v=o5ZQyXaAv1g!", "start_time": 1705047053.76852, - "end_time": 1705047053.76944, "error": null, "children": null, "node_name": - "hello_world"}], "variant_id": "", "name": "", "description": "", "tags": - null, "system_metrics": {"duration": 0.006121, "prompt_tokens": 0, "completion_tokens": + "2024-03-13T08:44:23.024656Z", "end_time": "2024-03-13T08:44:24.246126Z", + "index": 2, "api_calls": [{"name": "flow", "node_name": "flow", "type": "Flow", + "start_time": 1710319463.024656, "end_time": 1710319464.246126, "children": + [{"name": "hello_world", "type": "Tool", "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g"}, + "output": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!", "start_time": + 1710319463.034395, "end_time": 1710319464.237248, "error": null, "children": + [], "node_name": "hello_world", "parent_id": "", "id": "73a1ded2-1110-41b9-b9ce-4c93a4ea36fb", + "system_metrics": {}}], "system_metrics": {"duration": 1.22147, "prompt_tokens": + 0, "completion_tokens": 0, "total_tokens": 0}, "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g", + "line_number": 2}, "output": {"result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, + "error": null}], "variant_id": "", "name": "", "description": "", "tags": + null, "system_metrics": {"duration": 1.22147, "prompt_tokens": 0, "completion_tokens": 0, "total_tokens": 0}, "result": {"result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, - "upload_metrics": false}, "start_time": "2024-01-12T08:10:53.765205", "end_time": - "2024-01-12T08:10:53.771326", "name": "", "description": "", "status": "Completed", + "upload_metrics": false}, "start_time": "2024-03-13T08:44:23.024656", "end_time": + "2024-03-13T08:44:24.246126", "name": "", "description": "", "status": "Completed", "tags": null} ' @@ -2282,13 +4031,13 @@ interactions: accept-ranges: - bytes content-length: - - '4004' + - '5512' content-range: - - bytes 0-4003/4004 + - bytes 0-5511/5512 content-type: - application/octet-stream last-modified: - - Fri, 12 Jan 2024 08:10:53 GMT + - Wed, 13 Mar 2024 08:44:24 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 vary: @@ -2298,7 +4047,7 @@ interactions: x-ms-blob-type: - AppendBlob x-ms-creation-time: - - Fri, 12 Jan 2024 08:10:53 GMT + - Wed, 13 Mar 2024 08:44:24 GMT x-ms-version: - '2023-11-03' status: @@ -2310,39 +4059,45 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:11:38 GMT + - Wed, 13 Mar 2024 08:45:12 GMT x-ms-range: - bytes=0-33554431 x-ms-version: - '2023-11-03' method: GET - uri: https://fake_account_name.blob.core.windows.net/fake-container-name/promptflow/PromptFlowArtifacts/batch_run_name/meta.json + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/promptflow/PromptFlowArtifacts/batch_run_name/flow_outputs/output.jsonl response: body: - string: '{"batch_size": 25}' + string: '{"line_number": 0, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"} + + {"line_number": 1, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"} + + {"line_number": 2, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"} + + ' headers: accept-ranges: - bytes content-length: - - '18' + - '267' content-range: - - bytes 0-17/18 + - bytes 0-266/267 content-type: - application/octet-stream last-modified: - - Fri, 12 Jan 2024 08:10:52 GMT + - Wed, 13 Mar 2024 08:44:29 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 vary: - Origin x-ms-blob-content-md5: - - /u1NXUpgXMFDmZEw835qnw== + - RhzWn41vAT8bekG2OuHirg== x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Fri, 12 Jan 2024 08:10:52 GMT + - Wed, 13 Mar 2024 08:44:29 GMT x-ms-version: - '2023-11-03' status: @@ -2354,9 +4109,9 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:11:38 GMT + - Wed, 13 Mar 2024 08:45:12 GMT x-ms-range: - bytes=0-33554431 x-ms-version: @@ -2365,12 +4120,12 @@ interactions: uri: https://fake_account_name.blob.core.windows.net/fake-container-name/promptflow/PromptFlowArtifacts/batch_run_name/instance_results.jsonl response: body: - string: '{"line_number": 0, "status": "Completed", "inputs.name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g", - "inputs.line_number": 0, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"} - - {"line_number": 1, "status": "Completed", "inputs.name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g", + string: '{"line_number": 1, "status": "Completed", "inputs.name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g", "inputs.line_number": 1, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"} + {"line_number": 0, "status": "Completed", "inputs.name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g", + "inputs.line_number": 0, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"} + {"line_number": 2, "status": "Completed", "inputs.name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g", "inputs.line_number": 2, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"} @@ -2385,7 +4140,7 @@ interactions: content-type: - application/octet-stream last-modified: - - Fri, 12 Jan 2024 08:10:53 GMT + - Wed, 13 Mar 2024 08:44:24 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 vary: @@ -2395,7 +4150,51 @@ interactions: x-ms-blob-type: - AppendBlob x-ms-creation-time: - - Fri, 12 Jan 2024 08:10:53 GMT + - Wed, 13 Mar 2024 08:44:24 GMT + x-ms-version: + - '2023-11-03' + status: + code: 206 + message: Partial Content +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Wed, 13 Mar 2024 08:45:12 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2023-11-03' + method: GET + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/promptflow/PromptFlowArtifacts/batch_run_name/meta.json + response: + body: + string: '{"batch_size": 25}' + headers: + accept-ranges: + - bytes + content-length: + - '18' + content-range: + - bytes 0-17/18 + content-type: + - application/octet-stream + last-modified: + - Wed, 13 Mar 2024 08:44:15 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - /u1NXUpgXMFDmZEw835qnw== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 Mar 2024 08:44:15 GMT x-ms-version: - '2023-11-03' status: @@ -2407,9 +4206,9 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:11:38 GMT + - Wed, 13 Mar 2024 08:45:12 GMT x-ms-range: - bytes=0-33554431 x-ms-version: @@ -2422,37 +4221,38 @@ interactions: "hello_world", "flow_run_id": "batch_run_name", "run_id": "batch_run_name_hello_world_2", "status": "Completed", "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g"}, "output": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!", "metrics": - null, "error": null, "parent_run_id": "batch_run_name_2", "start_time": "2024-01-12T08:10:53.767614Z", - "end_time": "2024-01-12T08:10:53.769841Z", "index": 2, "api_calls": [{"name": + null, "error": null, "parent_run_id": "batch_run_name_2", "start_time": "2024-03-13T08:44:23.033474Z", + "end_time": "2024-03-13T08:44:24.238194Z", "index": 2, "api_calls": [{"name": "hello_world", "type": "Tool", "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g"}, "output": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!", "start_time": - 1705047053.76852, "end_time": 1705047053.76944, "error": null, "children": - null, "node_name": "hello_world"}], "variant_id": "", "cached_run_id": null, - "cached_flow_run_id": null, "logs": {"stdout": "", "stderr": ""}, "system_metrics": - {"duration": 0.002227}, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, - "start_time": "2024-01-12T08:10:53.767614", "end_time": "2024-01-12T08:10:53.769841", + 1710319463.034395, "end_time": 1710319464.237248, "error": null, "children": + [], "node_name": "hello_world", "parent_id": "", "id": "73a1ded2-1110-41b9-b9ce-4c93a4ea36fb", + "system_metrics": {}}], "variant_id": "", "cached_run_id": null, "cached_flow_run_id": + null, "logs": {"stdout": "", "stderr": ""}, "system_metrics": {"duration": + 1.20472}, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, + "start_time": "2024-03-13T08:44:23.033474", "end_time": "2024-03-13T08:44:24.238194", "status": "Completed"}' headers: accept-ranges: - bytes content-length: - - '1197' + - '1281' content-range: - - bytes 0-1196/1197 + - bytes 0-1280/1281 content-type: - application/octet-stream last-modified: - - Fri, 12 Jan 2024 08:10:53 GMT + - Wed, 13 Mar 2024 08:44:24 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 vary: - Origin x-ms-blob-content-md5: - - uNDmrXkZIRdBycvMcJlF5w== + - CbUEGjmYaiSQG1UUvfb+xA== x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Fri, 12 Jan 2024 08:10:53 GMT + - Wed, 13 Mar 2024 08:44:24 GMT x-ms-version: - '2023-11-03' status: @@ -2464,9 +4264,9 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:11:38 GMT + - Wed, 13 Mar 2024 08:45:12 GMT x-ms-range: - bytes=0-33554431 x-ms-version: @@ -2479,37 +4279,38 @@ interactions: "hello_world", "flow_run_id": "batch_run_name", "run_id": "batch_run_name_hello_world_1", "status": "Completed", "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g"}, "output": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!", "metrics": - null, "error": null, "parent_run_id": "batch_run_name_1", "start_time": "2024-01-12T08:10:53.648117Z", - "end_time": "2024-01-12T08:10:53.651426Z", "index": 1, "api_calls": [{"name": + null, "error": null, "parent_run_id": "batch_run_name_1", "start_time": "2024-03-13T08:44:23.030155Z", + "end_time": "2024-03-13T08:44:24.235301Z", "index": 1, "api_calls": [{"name": "hello_world", "type": "Tool", "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g"}, "output": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!", "start_time": - 1705047053.650148, "end_time": 1705047053.65095, "error": null, "children": - null, "node_name": "hello_world"}], "variant_id": "", "cached_run_id": null, - "cached_flow_run_id": null, "logs": {"stdout": "", "stderr": ""}, "system_metrics": - {"duration": 0.003309}, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, - "start_time": "2024-01-12T08:10:53.648117", "end_time": "2024-01-12T08:10:53.651426", + 1710319463.03124, "end_time": 1710319464.234362, "error": null, "children": + [], "node_name": "hello_world", "parent_id": "", "id": "e7d0ac4e-fecf-4e4b-88d1-3f7b7a71e9c2", + "system_metrics": {}}], "variant_id": "", "cached_run_id": null, "cached_flow_run_id": + null, "logs": {"stdout": "", "stderr": ""}, "system_metrics": {"duration": + 1.205146}, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, + "start_time": "2024-03-13T08:44:23.030155", "end_time": "2024-03-13T08:44:24.235301", "status": "Completed"}' headers: accept-ranges: - bytes content-length: - - '1198' + - '1281' content-range: - - bytes 0-1197/1198 + - bytes 0-1280/1281 content-type: - application/octet-stream last-modified: - - Fri, 12 Jan 2024 08:10:53 GMT + - Wed, 13 Mar 2024 08:44:24 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 vary: - Origin x-ms-blob-content-md5: - - nK3XJ818HLYvfiuQPMZhqg== + - VHJp2pmSnqb6k6w6lspR3Q== x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Fri, 12 Jan 2024 08:10:53 GMT + - Wed, 13 Mar 2024 08:44:24 GMT x-ms-version: - '2023-11-03' status: @@ -2521,9 +4322,9 @@ interactions: Accept: - application/xml User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:11:38 GMT + - Wed, 13 Mar 2024 08:45:12 GMT x-ms-range: - bytes=0-33554431 x-ms-version: @@ -2536,37 +4337,38 @@ interactions: "hello_world", "flow_run_id": "batch_run_name", "run_id": "batch_run_name_hello_world_0", "status": "Completed", "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g"}, "output": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!", "metrics": - null, "error": null, "parent_run_id": "batch_run_name_0", "start_time": "2024-01-12T08:10:53.635835Z", - "end_time": "2024-01-12T08:10:53.638034Z", "index": 0, "api_calls": [{"name": + null, "error": null, "parent_run_id": "batch_run_name_0", "start_time": "2024-03-13T08:44:23.030490Z", + "end_time": "2024-03-13T08:44:24.238110Z", "index": 0, "api_calls": [{"name": "hello_world", "type": "Tool", "inputs": {"name": "https://www.youtube.com/watch?v=o5ZQyXaAv1g"}, "output": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!", "start_time": - 1705047053.63676, "end_time": 1705047053.637577, "error": null, "children": - null, "node_name": "hello_world"}], "variant_id": "", "cached_run_id": null, - "cached_flow_run_id": null, "logs": {"stdout": "", "stderr": ""}, "system_metrics": - {"duration": 0.002199}, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, - "start_time": "2024-01-12T08:10:53.635835", "end_time": "2024-01-12T08:10:53.638034", + 1710319463.034291, "end_time": 1710319464.237185, "error": null, "children": + [], "node_name": "hello_world", "parent_id": "", "id": "913982e5-4992-401e-9408-c778963f75a5", + "system_metrics": {}}], "variant_id": "", "cached_run_id": null, "cached_flow_run_id": + null, "logs": {"stdout": "", "stderr": ""}, "system_metrics": {"duration": + 1.20762}, "result": "Hello World https://www.youtube.com/watch?v=o5ZQyXaAv1g!"}, + "start_time": "2024-03-13T08:44:23.030490", "end_time": "2024-03-13T08:44:24.238110", "status": "Completed"}' headers: accept-ranges: - bytes content-length: - - '1198' + - '1281' content-range: - - bytes 0-1197/1198 + - bytes 0-1280/1281 content-type: - application/octet-stream last-modified: - - Fri, 12 Jan 2024 08:10:53 GMT + - Wed, 13 Mar 2024 08:44:24 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 vary: - Origin x-ms-blob-content-md5: - - DSgFq8oOaGajvyQtRsalPQ== + - X7Dda8zdobGRdfrWZWRihg== x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Fri, 12 Jan 2024 08:10:53 GMT + - Wed, 13 Mar 2024 08:44:24 GMT x-ms-version: - '2023-11-03' status: @@ -2579,7 +4381,7 @@ interactions: accept: - '*/*' accept-encoding: - - gzip, deflate + - gzip, deflate, br connection: - keep-alive content-length: @@ -2589,50 +4391,49 @@ interactions: host: - eastus.api.azureml.ms user-agent: - - python-httpx/0.25.2 + - python-httpx/0.27.0 method: POST uri: https://eastus.api.azureml.ms/history/v1.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/rundata response: - content: '{"runMetadata": {"runNumber": 1705047036, "rootRunId": "batch_run_name", - "createdUtc": "2024-01-12T08:10:36.1767992+00:00", "createdBy": {"userObjectId": - "00000000-0000-0000-0000-000000000000", "userPuId": null, "userIdp": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", - "userAltSecId": null, "userIss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", - "userTenantId": "00000000-0000-0000-0000-000000000000", "userName": "4cbd0e2e-aae4-4099-b4ba-94d3a4910587", - "upn": null}, "userId": "00000000-0000-0000-0000-000000000000", "token": null, - "tokenExpiryTimeUtc": null, "error": null, "warnings": null, "revision": 6, - "statusRevision": 3, "runUuid": "bf13babe-39fb-4e3e-86c8-7d96d72ee03b", "parentRunUuid": - null, "rootRunUuid": "bf13babe-39fb-4e3e-86c8-7d96d72ee03b", "lastStartTimeUtc": - null, "currentComputeTime": null, "computeDuration": "00:00:03.7064057", "effectiveStartTimeUtc": + content: '{"runMetadata": {"runNumber": 1710319192, "rootRunId": "batch_run_name", + "createdUtc": "2024-03-13T08:39:52.2097359+00:00", "createdBy": {"userObjectId": + "00000000-0000-0000-0000-000000000000", "userPuId": "10032000324F7449", "userIdp": + null, "userAltSecId": null, "userIss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", + "userTenantId": "00000000-0000-0000-0000-000000000000", "userName": "Honglin + Du", "upn": null}, "userId": "00000000-0000-0000-0000-000000000000", "token": + null, "tokenExpiryTimeUtc": null, "error": null, "warnings": null, "revision": + 6, "statusRevision": 3, "runUuid": "bc375de9-e008-40f2-a2d3-6ab1acc09ad0", "parentRunUuid": + null, "rootRunUuid": "bc375de9-e008-40f2-a2d3-6ab1acc09ad0", "lastStartTimeUtc": + null, "currentComputeTime": null, "computeDuration": "00:00:11.9663018", "effectiveStartTimeUtc": null, "lastModifiedBy": {"userObjectId": "00000000-0000-0000-0000-000000000000", - "userPuId": null, "userIdp": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", - "userAltSecId": null, "userIss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", - "userTenantId": "00000000-0000-0000-0000-000000000000", "userName": "18a66f5f-dbdf-4c17-9dd7-1634712a9cbe", - "upn": null}, "lastModifiedUtc": "2024-01-12T08:10:56.1285338+00:00", "duration": - "00:00:03.7064057", "cancelationReason": null, "currentAttemptId": 1, "runId": - "batch_run_name", "parentRunId": null, "experimentId": "b1e733a1-2a5f-4c17-bc34-4d66d2858228", - "status": "Completed", "startTimeUtc": "2024-01-12T08:10:53.2515507+00:00", - "endTimeUtc": "2024-01-12T08:10:56.9579564+00:00", "scheduleId": null, "displayName": + "userPuId": "10032000324F7449", "userIdp": null, "userAltSecId": null, "userIss": + "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", "userTenantId": + "00000000-0000-0000-0000-000000000000", "userName": "Honglin Du", "upn": "username@microsoft.com"}, + "lastModifiedUtc": "2024-03-13T08:44:27.9108527+00:00", "duration": "00:00:11.9663018", + "cancelationReason": null, "currentAttemptId": 1, "runId": "batch_run_name", + "parentRunId": null, "experimentId": "b1e733a1-2a5f-4c17-bc34-4d66d2858228", + "status": "Completed", "startTimeUtc": "2024-03-13T08:44:17.6823005+00:00", + "endTimeUtc": "2024-03-13T08:44:29.6486023+00:00", "scheduleId": null, "displayName": "sdk-cli-test-fixture-batch-run-without-llm", "name": null, "dataContainerId": "dcid.batch_run_name", "description": null, "hidden": false, "runType": "azureml.promptflow.FlowRun", "runTypeV2": {"orchestrator": null, "traits": [], "attribution": "PromptFlow", - "computeType": "AmlcDsi"}, "properties": {"azureml.promptflow.runtime_name": - "test-runtime-ci", "azureml.promptflow.runtime_version": "20231204.v4", "azureml.promptflow.definition_file_name": - "flow.dag.yaml", "azureml.promptflow.session_id": "bee356189f7e7f18671a79369c78df4cfb1bbd0c99069074", - "azureml.promptflow.flow_lineage_id": "f7ee724d91e4f4a7501bdc0b66995bc8b57f86b3a526fa2a81c34ebcccbbd912", + "computeType": null}, "properties": {"azureml.promptflow.runtime_name": "automatic", + "azureml.promptflow.runtime_version": "20240306.v5", "azureml.promptflow.definition_file_name": + "flow.dag.yaml", "azureml.promptflow.flow_lineage_id": "f19900c5ab3df0dabfcf927fec52c0305ae6271bf36dc3d4935bb9137e86252e", "azureml.promptflow.flow_definition_datastore_name": "workspaceblobstore", "azureml.promptflow.flow_definition_blob_path": - "LocalUpload/36774154bc3ecde4aa21054b3052221f/hello-world/flow.dag.yaml", "azureml.promptflow.input_data": + "LocalUpload/922d1eede3b291e1a7a5cb704ed3eeb7/hello-world/flow.dag.yaml", "azureml.promptflow.input_data": "azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl", "azureml.promptflow.inputs_mapping": "{\"name\":\"${data.url}\"}", "_azureml.evaluation_run": - "promptflow.BatchRun", "azureml.promptflow.snapshot_id": "4debf50d-5af4-4fd7-9e55-e2796fcf44bb", - "azureml.promptflow.total_tokens": "0", "_azureml.evaluate_artifacts": "[{\"path\": - \"instance_results.jsonl\", \"type\": \"table\"}]"}, "parameters": {}, "actionUris": - {}, "scriptName": null, "target": null, "uniqueChildRunComputeTargets": [], - "tags": {}, "settings": {}, "services": {}, "inputDatasets": [], "outputDatasets": - [], "runDefinition": null, "jobSpecification": null, "primaryMetricName": null, - "createdFrom": null, "cancelUri": null, "completeUri": null, "diagnosticsUri": - null, "computeRequest": null, "compute": null, "retainForLifetimeOfWorkspace": - false, "queueingInfo": null, "inputs": null, "outputs": {"debug_info": {"assetId": - "azureml://locations/eastus/workspaces/00000/data/azureml_batch_run_name_output_data_debug_info/versions/1", + "promptflow.BatchRun", "azureml.promptflow.session_id": "4a6867a952826a2a51729e6bb4bf21ac65b46eec3ae5ed10", + "azureml.promptflow.snapshot_id": "6f5e65d2-6446-4f71-a1fa-838ae87e6bd5", "azureml.promptflow.total_tokens": + "0", "_azureml.evaluate_artifacts": "[{\"path\": \"instance_results.jsonl\", + \"type\": \"table\"}]"}, "parameters": {}, "actionUris": {}, "scriptName": null, + "target": null, "uniqueChildRunComputeTargets": [], "tags": {}, "settings": + {}, "services": {}, "inputDatasets": [], "outputDatasets": [], "runDefinition": + null, "jobSpecification": null, "primaryMetricName": null, "createdFrom": null, + "cancelUri": null, "completeUri": null, "diagnosticsUri": null, "computeRequest": + null, "compute": null, "retainForLifetimeOfWorkspace": false, "queueingInfo": + null, "inputs": null, "outputs": {"debug_info": {"assetId": "azureml://locations/eastus/workspaces/00000/data/azureml_batch_run_name_output_data_debug_info/versions/1", "type": "UriFolder"}, "flow_outputs": {"assetId": "azureml://locations/eastus/workspaces/00000/data/azureml_batch_run_name_output_data_flow_outputs/versions/1", "type": "UriFolder"}}}, "runDefinition": null, "jobSpecification": null, "systemSettings": null}' @@ -2642,7 +4443,7 @@ interactions: content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -2650,7 +4451,7 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.050' + - '0.031' http_version: HTTP/1.1 status_code: 200 - request: @@ -2659,121 +4460,115 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive Content-Type: - application/json User-Agent: - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown - Python/3.10.13 (Windows-10-10.0.22631-SP0) + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/batch_run_name/logContent response: body: - string: '"2024-01-12 08:10:40 +0000 78 promptflow-runtime INFO [batch_run_name] - Receiving v2 bulk run request afa4241f-f534-4374-a02d-7756e119f3f7: {\"flow_id\": + string: '"2024-03-13 08:44:08 +0000 86 promptflow-runtime INFO [batch_run_name] + Receiving v2 bulk run request e3ab1f8b-8b17-4c8b-ae58-efb3c27ab45c: {\"flow_id\": \"batch_run_name\", \"flow_run_id\": \"batch_run_name\", \"flow_source\": - {\"flow_source_type\": 1, \"flow_source_info\": {\"snapshot_id\": \"4debf50d-5af4-4fd7-9e55-e2796fcf44bb\"}, - \"flow_dag_file\": \"flow.dag.yaml\"}, \"log_path\": \"https://promptfloweast4063704120.blob.core.windows.net/azureml/ExperimentRun/dcid.batch_run_name/logs/azureml/executionlogs.txt?sv=2019-07-07&sr=b&sig=**data_scrubbed**&skoid=55b92eba-d7c7-4afd-ab76-7bb1cd345283&sktid=00000000-0000-0000-0000-000000000000&skt=2024-01-12T07%3A53%3A03Z&ske=2024-01-13T16%3A03%3A03Z&sks=b&skv=2019-07-07&st=2024-01-12T08%3A00%3A39Z&se=2024-01-12T16%3A10%3A39Z&sp=rcw\", + {\"flow_source_type\": 1, \"flow_source_info\": {\"snapshot_id\": \"6f5e65d2-6446-4f71-a1fa-838ae87e6bd5\"}, + \"flow_dag_file\": \"flow.dag.yaml\"}, \"log_path\": \"https://promptfloweast4063704120.blob.core.windows.net/azureml/ExperimentRun/dcid.batch_run_name/logs/azureml/executionlogs.txt?sv=2019-07-07&sr=b&sig=**data_scrubbed**&skoid=55b92eba-d7c7-4afd-ab76-7bb1cd345283&sktid=00000000-0000-0000-0000-000000000000&skt=2024-03-13T03%3A08%3A24Z&ske=2024-03-14T11%3A18%3A24Z&sks=b&skv=2019-07-07&st=2024-03-13T08%3A34%3A07Z&se=2024-03-13T16%3A44%3A07Z&sp=rcw\", \"app_insights_instrumentation_key\": \"InstrumentationKey=**data_scrubbed**;IngestionEndpoint=https://eastus-6.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus.livediagnostics.monitor.azure.com/\", - \"data_inputs\": {\"data\": \"azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl\"}, + \"batch_timeout_sec\": 36000, \"data_inputs\": {\"data\": \"azureml://datastores/workspaceblobstore/paths/LocalUpload/74c11bba717480b2d6b04b8e746d09d7/webClassification3.jsonl\"}, \"inputs_mapping\": {\"name\": \"${data.url}\"}, \"azure_storage_setting\": {\"azure_storage_mode\": 1, \"storage_account_name\": \"promptfloweast4063704120\", \"blob_container_name\": \"azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5\", \"flow_artifacts_root_path\": \"promptflow/PromptFlowArtifacts/batch_run_name\", - \"blob_container_sas_token\": \"?sv=2019-07-07&sr=c&sig=**data_scrubbed**&skoid=55b92eba-d7c7-4afd-ab76-7bb1cd345283&sktid=00000000-0000-0000-0000-000000000000&skt=2024-01-12T08%3A10%3A40Z&ske=2024-01-19T08%3A10%3A40Z&sks=b&skv=2019-07-07&se=2024-01-19T08%3A10%3A40Z&sp=racwl\", - \"output_datastore_name\": \"workspaceblobstore\"}}\n2024-01-12 08:10:40 +0000 78 - promptflow-runtime INFO Runtime version: 20231204.v4. PromptFlow version: - 1.2.0rc1\n2024-01-12 08:10:40 +0000 78 promptflow-runtime INFO Updating - batch_run_name to Status.Preparing...\n2024-01-12 08:10:41 +0000 78 promptflow-runtime - INFO Downloading snapshot to /mnt/host/service/app/39415/requests/batch_run_name\n2024-01-12 - 08:10:41 +0000 78 promptflow-runtime INFO Get snapshot sas url for - 4debf50d-5af4-4fd7-9e55-e2796fcf44bb...\n2024-01-12 08:10:47 +0000 78 - promptflow-runtime INFO Downloading snapshot 4debf50d-5af4-4fd7-9e55-e2796fcf44bb - from uri https://promptfloweast4063704120.blob.core.windows.net/snapshotzips/promptflow-eastus:3e123da1-f9a5-4c91-9234-8d9ffbb39ff5:snapshotzip/4debf50d-5af4-4fd7-9e55-e2796fcf44bb.zip...\n2024-01-12 - 08:10:47 +0000 78 promptflow-runtime INFO Downloaded file /mnt/host/service/app/39415/requests/batch_run_name/4debf50d-5af4-4fd7-9e55-e2796fcf44bb.zip - with size 495 for snapshot 4debf50d-5af4-4fd7-9e55-e2796fcf44bb.\n2024-01-12 - 08:10:47 +0000 78 promptflow-runtime INFO Download snapshot 4debf50d-5af4-4fd7-9e55-e2796fcf44bb - completed.\n2024-01-12 08:10:47 +0000 78 promptflow-runtime INFO Successfully - download snapshot to /mnt/host/service/app/39415/requests/batch_run_name\n2024-01-12 - 08:10:47 +0000 78 promptflow-runtime INFO About to execute a python - flow.\n2024-01-12 08:10:47 +0000 78 promptflow-runtime INFO Use spawn - method to start child process.\n2024-01-12 08:10:47 +0000 78 promptflow-runtime - INFO Starting to check process 3638 status for run batch_run_name\n2024-01-12 - 08:10:47 +0000 78 promptflow-runtime INFO Start checking run status - for run batch_run_name\n2024-01-12 08:10:51 +0000 3638 promptflow-runtime - INFO [78--3638] Start processing flowV2......\n2024-01-12 08:10:51 +0000 3638 - promptflow-runtime INFO Runtime version: 20231204.v4. PromptFlow version: - 1.2.0rc1\n2024-01-12 08:10:51 +0000 3638 promptflow-runtime INFO Setting - mlflow tracking uri...\n2024-01-12 08:10:51 +0000 3638 promptflow-runtime - INFO Validating ''AzureML Data Scientist'' user authentication...\n2024-01-12 - 08:10:52 +0000 3638 promptflow-runtime INFO Successfully validated - ''AzureML Data Scientist'' user authentication.\n2024-01-12 08:10:52 +0000 3638 - promptflow-runtime INFO Using AzureMLRunStorageV2\n2024-01-12 08:10:52 - +0000 3638 promptflow-runtime INFO Setting mlflow tracking uri to ''azureml://eastus.api.azureml.ms/mlflow/v1.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus''\n2024-01-12 - 08:10:52 +0000 3638 promptflow-runtime INFO Initialized blob service - client for AzureMLRunTracker.\n2024-01-12 08:10:52 +0000 3638 promptflow-runtime - INFO Setting mlflow tracking uri to ''azureml://eastus.api.azureml.ms/mlflow/v1.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus''\n2024-01-12 - 08:10:52 +0000 3638 promptflow-runtime INFO Resolve data from url finished - in 0.49738570116460323 seconds\n2024-01-12 08:10:53 +0000 3638 promptflow-runtime - INFO Starting the aml run ''batch_run_name''...\n2024-01-12 08:10:53 +0000 3638 - execution.bulk INFO Using fork, process count: 3\n2024-01-12 08:10:53 - +0000 3680 execution.bulk INFO Process 3680 started.\n2024-01-12 - 08:10:53 +0000 3690 execution.bulk INFO Process 3690 started.\n2024-01-12 - 08:10:53 +0000 3638 execution.bulk INFO Process name: ForkProcess-46:2, - Process id: 3680, Line number: 0 start execution.\n2024-01-12 08:10:53 +0000 3638 - execution.bulk INFO Process name: ForkProcess-46:3, Process id: 3690, - Line number: 1 start execution.\n2024-01-12 08:10:53 +0000 3638 execution.bulk INFO Process - name: ForkProcess-46:2, Process id: 3680, Line number: 0 completed.\n2024-01-12 - 08:10:53 +0000 3685 execution.bulk INFO Process 3685 started.\n2024-01-12 - 08:10:53 +0000 3638 execution.bulk INFO Finished 1 / 3 lines.\n2024-01-12 - 08:10:53 +0000 3638 execution.bulk INFO Process name: ForkProcess-46:4, - Process id: 3685, Line number: 2 start execution.\n2024-01-12 08:10:53 +0000 3638 - execution.bulk INFO Average execution time for completed lines: 0.22 - seconds. Estimated time for incomplete lines: 0.44 seconds.\n2024-01-12 08:10:53 - +0000 3638 execution.bulk INFO Process name: ForkProcess-46:3, - Process id: 3690, Line number: 1 completed.\n2024-01-12 08:10:53 +0000 3638 - execution.bulk INFO Finished 2 / 3 lines.\n2024-01-12 08:10:53 +0000 3638 - execution.bulk INFO Average execution time for completed lines: 0.14 - seconds. Estimated time for incomplete lines: 0.14 seconds.\n2024-01-12 08:10:53 - +0000 3638 execution.bulk INFO Process name: ForkProcess-46:4, - Process id: 3685, Line number: 2 completed.\n2024-01-12 08:10:53 +0000 3638 - execution.bulk INFO Finished 3 / 3 lines.\n2024-01-12 08:10:53 +0000 3638 - execution.bulk INFO Average execution time for completed lines: 0.11 - seconds. Estimated time for incomplete lines: 0.0 seconds.\n2024-01-12 08:10:56 - +0000 3638 execution.bulk INFO Upload status summary metrics for - run batch_run_name finished in 1.1332635823637247 seconds\n2024-01-12 08:10:56 - +0000 3638 promptflow-runtime INFO Successfully write run properties - {\"azureml.promptflow.total_tokens\": 0, \"_azureml.evaluate_artifacts\": - \"[{\\\"path\\\": \\\"instance_results.jsonl\\\", \\\"type\\\": \\\"table\\\"}]\"} - with run id ''batch_run_name''\n2024-01-12 08:10:56 +0000 3638 execution.bulk INFO Upload - RH properties for run batch_run_name finished in 0.0716887628659606 seconds\n2024-01-12 - 08:10:56 +0000 3638 promptflow-runtime INFO Creating unregistered output - Asset for Run batch_run_name...\n2024-01-12 08:10:56 +0000 3638 promptflow-runtime - INFO Created debug_info Asset: azureml://locations/eastus/workspaces/00000/data/azureml_batch_run_name_output_data_debug_info/versions/1\n2024-01-12 - 08:10:56 +0000 3638 promptflow-runtime INFO Creating unregistered output - Asset for Run batch_run_name...\n2024-01-12 08:10:56 +0000 3638 promptflow-runtime - INFO Created flow_outputs output Asset: azureml://locations/eastus/workspaces/00000/data/azureml_batch_run_name_output_data_flow_outputs/versions/1\n2024-01-12 - 08:10:56 +0000 3638 promptflow-runtime INFO Creating Artifact for Run - batch_run_name...\n2024-01-12 08:10:56 +0000 3638 promptflow-runtime INFO Created - instance_results.jsonl Artifact.\n2024-01-12 08:10:56 +0000 3638 promptflow-runtime - INFO Patching batch_run_name...\n2024-01-12 08:10:56 +0000 3638 promptflow-runtime - INFO Ending the aml run ''batch_run_name'' with status ''Completed''...\n2024-01-12 - 08:10:58 +0000 78 promptflow-runtime INFO Process 3638 finished\n2024-01-12 - 08:10:58 +0000 78 promptflow-runtime INFO [78] Child process finished!\n2024-01-12 - 08:10:58 +0000 78 promptflow-runtime INFO [batch_run_name] End processing - bulk run\n2024-01-12 08:10:58 +0000 78 promptflow-runtime INFO Cleanup - working dir /mnt/host/service/app/39415/requests/batch_run_name for bulk run\n"' + \"blob_container_sas_token\": \"?sv=2019-07-07&sr=c&sig=**data_scrubbed**&skoid=55b92eba-d7c7-4afd-ab76-7bb1cd345283&sktid=00000000-0000-0000-0000-000000000000&skt=2024-03-13T08%3A44%3A07Z&ske=2024-03-20T08%3A44%3A07Z&sks=b&skv=2019-07-07&se=2024-03-20T08%3A44%3A07Z&sp=racwl\", + \"output_datastore_name\": \"workspaceblobstore\"}}\n2024-03-13 08:44:08 +0000 86 + promptflow-runtime INFO Runtime version: 20240306.v5. PromptFlow version: + 1.7.0rc2\n2024-03-13 08:44:08 +0000 86 promptflow-runtime INFO Updating + batch_run_name to Status.Preparing...\n2024-03-13 08:44:08 +0000 86 promptflow-runtime + INFO Downloading snapshot to /mnt/host/service/app/44361/requests/batch_run_name\n2024-03-13 + 08:44:08 +0000 86 promptflow-runtime INFO Get snapshot sas url for + 6f5e65d2-6446-4f71-a1fa-838ae87e6bd5.\n2024-03-13 08:44:08 +0000 86 promptflow-runtime + INFO Snapshot 6f5e65d2-6446-4f71-a1fa-838ae87e6bd5 contains 2 files.\n2024-03-13 + 08:44:08 +0000 86 promptflow-runtime INFO Download snapshot 6f5e65d2-6446-4f71-a1fa-838ae87e6bd5 + completed.\n2024-03-13 08:44:08 +0000 86 promptflow-runtime INFO Successfully + download snapshot to /mnt/host/service/app/44361/requests/batch_run_name\n2024-03-13 + 08:44:08 +0000 86 promptflow-runtime INFO About to execute a python + flow.\n2024-03-13 08:44:08 +0000 86 promptflow-runtime INFO Use spawn + method to start child process.\n2024-03-13 08:44:09 +0000 86 promptflow-runtime + INFO Starting to check process 141 status for run batch_run_name\n2024-03-13 + 08:44:09 +0000 86 promptflow-runtime INFO Start checking run status + for run batch_run_name\n2024-03-13 08:44:14 +0000 141 promptflow-runtime + INFO [86--141] Start processing flowV2......\n2024-03-13 08:44:14 +0000 141 + promptflow-runtime INFO Runtime version: 20240306.v5. PromptFlow version: + 1.7.0rc2\n2024-03-13 08:44:14 +0000 141 promptflow-runtime INFO Setting + mlflow tracking uri...\n2024-03-13 08:44:14 +0000 141 promptflow-runtime + INFO Validating ''AzureML Data Scientist'' user authentication...\n2024-03-13 + 08:44:15 +0000 141 promptflow-runtime INFO Successfully validated + ''AzureML Data Scientist'' user authentication.\n2024-03-13 08:44:15 +0000 141 + promptflow-runtime INFO Using AzureMLRunStorageV2\n2024-03-13 08:44:15 + +0000 141 promptflow-runtime INFO Setting mlflow tracking uri to ''azureml://eastus.api.azureml.ms/mlflow/v1.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus''\n2024-03-13 + 08:44:15 +0000 141 promptflow-runtime INFO Initialized blob service + client.\n2024-03-13 08:44:15 +0000 141 promptflow-runtime INFO Blob + service client has api version: 2023-11-03\n2024-03-13 08:44:15 +0000 141 + promptflow-runtime INFO Setting mlflow tracking uri to ''azureml://eastus.api.azureml.ms/mlflow/v1.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus''\n2024-03-13 + 08:44:17 +0000 141 promptflow-runtime INFO Resolve data from url finished + in 2.1435543020002115 seconds\n2024-03-13 08:44:17 +0000 141 promptflow-runtime + INFO Starting the aml run ''batch_run_name''...\n2024-03-13 08:44:17 +0000 141 + execution.bulk INFO Skipped the execution of 0 existing results.\n2024-03-13 + 08:44:17 +0000 141 execution.bulk INFO The timeout for the batch + run is 36000 seconds.\n2024-03-13 08:44:17 +0000 141 execution.bulk INFO Set + process count to 3 by taking the minimum value among the factors of {''default_worker_count'': + 4, ''row_count'': 3}.\n2024-03-13 08:44:23 +0000 141 execution.bulk INFO Process + name(ForkProcess-2:2:1)-Process id(276)-Line number(0) start execution.\n2024-03-13 + 08:44:23 +0000 141 execution.bulk INFO Process name(ForkProcess-2:2:3)-Process + id(287)-Line number(2) start execution.\n2024-03-13 08:44:23 +0000 141 + execution.bulk INFO Process name(ForkProcess-2:2:2)-Process id(284)-Line + number(1) start execution.\n2024-03-13 08:44:24 +0000 141 execution.bulk INFO Process + name(ForkProcess-2:2:2)-Process id(284)-Line number(1) completed.\n2024-03-13 + 08:44:24 +0000 141 execution.bulk INFO Process name(ForkProcess-2:2:1)-Process + id(276)-Line number(0) completed.\n2024-03-13 08:44:24 +0000 141 execution.bulk INFO Process + name(ForkProcess-2:2:3)-Process id(287)-Line number(2) completed.\n2024-03-13 + 08:44:25 +0000 141 execution.bulk INFO Finished 3 / 3 lines.\n2024-03-13 + 08:44:25 +0000 141 execution.bulk INFO Average execution time + for completed lines: 2.33 seconds. Estimated time for incomplete lines: 0.0 + seconds.\n2024-03-13 08:44:25 +0000 284 execution.bulk WARNING Error + occurred while shutting down tracer provider: ''ProxyTracerProvider'' object + has no attribute ''shutdown''\n2024-03-13 08:44:25 +0000 276 execution.bulk WARNING Error + occurred while shutting down tracer provider: ''ProxyTracerProvider'' object + has no attribute ''shutdown''\n2024-03-13 08:44:25 +0000 287 execution.bulk WARNING Error + occurred while shutting down tracer provider: ''ProxyTracerProvider'' object + has no attribute ''shutdown''\n2024-03-13 08:44:26 +0000 141 promptflow-runtime + INFO Post processing batch result...\n2024-03-13 08:44:27 +0000 141 + execution.bulk INFO Upload status summary metrics for run batch_run_name + finished in 1.3172062629996617 seconds\n2024-03-13 08:44:27 +0000 141 + promptflow-runtime INFO Successfully write run properties {\"azureml.promptflow.total_tokens\": + 0, \"_azureml.evaluate_artifacts\": \"[{\\\"path\\\": \\\"instance_results.jsonl\\\", + \\\"type\\\": \\\"table\\\"}]\"} with run id ''batch_run_name''\n2024-03-13 + 08:44:27 +0000 141 execution.bulk INFO Upload RH properties for + run batch_run_name finished in 0.06942473199978849 seconds\n2024-03-13 08:44:27 + +0000 141 promptflow-runtime INFO Creating unregistered output Asset + for Run batch_run_name...\n2024-03-13 08:44:29 +0000 141 promptflow-runtime + INFO Created debug_info Asset: azureml://locations/eastus/workspaces/00000/data/azureml_batch_run_name_output_data_debug_info/versions/1\n2024-03-13 + 08:44:29 +0000 141 promptflow-runtime INFO Creating unregistered output + Asset for Run batch_run_name...\n2024-03-13 08:44:29 +0000 141 promptflow-runtime + INFO Created flow_outputs output Asset: azureml://locations/eastus/workspaces/00000/data/azureml_batch_run_name_output_data_flow_outputs/versions/1\n2024-03-13 + 08:44:29 +0000 141 promptflow-runtime INFO Creating Artifact for Run + batch_run_name...\n2024-03-13 08:44:29 +0000 141 promptflow-runtime INFO Created + instance_results.jsonl Artifact.\n2024-03-13 08:44:29 +0000 141 promptflow-runtime + INFO Patching batch_run_name...\n2024-03-13 08:44:29 +0000 141 promptflow-runtime + INFO Ending the aml run ''batch_run_name'' with status ''Completed''...\n"' headers: connection: - keep-alive content-length: - - '9817' + - '9155' content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -2781,7 +4576,7 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.576' + - '0.516' status: code: 200 message: OK diff --git a/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_run_bulk.yaml b/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_run_bulk.yaml index e925ad5d334..e57162bbe69 100644 --- a/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_run_bulk.yaml +++ b/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_run_bulk.yaml @@ -5,12 +5,12 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 - Python/3.10.13 (Windows-10-10.0.22631-SP0) + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000 response: @@ -32,14 +32,14 @@ interactions: - no-cache strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked vary: - - Accept-Encoding,Accept-Encoding + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE x-content-type-options: - nosniff x-request-time: - - '0.027' + - '0.018' status: code: 200 message: OK @@ -49,12 +49,12 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 - Python/3.10.13 (Windows-10-10.0.22631-SP0) + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores?count=30&isDefault=true&orderByAsc=false response: @@ -84,14 +84,14 @@ interactions: - no-cache strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked vary: - - Accept-Encoding,Accept-Encoding + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE x-content-type-options: - nosniff x-request-time: - - '0.214' + - '0.556' status: code: 200 message: OK @@ -101,12 +101,12 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 - Python/3.10.13 (Windows-10-10.0.22631-SP0) + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore response: @@ -136,14 +136,14 @@ interactions: - no-cache strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked vary: - - Accept-Encoding,Accept-Encoding + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE x-content-type-options: - nosniff x-request-time: - - '0.066' + - '0.514' status: code: 200 message: OK @@ -153,14 +153,14 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive Content-Length: - '0' User-Agent: - - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 - Python/3.10.13 (Windows-10-10.0.22631-SP0) + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore/listSecrets response: @@ -179,14 +179,12 @@ interactions: - no-cache strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding + x-cache: + - CONFIG_NOCACHE x-content-type-options: - nosniff x-request-time: - - '0.192' + - '0.184' status: code: 200 message: OK @@ -196,13 +194,13 @@ interactions: Accept: - application/xml Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:39:26 GMT + - Wed, 13 Mar 2024 08:36:46 GMT x-ms-version: - '2023-11-03' method: HEAD @@ -246,13 +244,13 @@ interactions: Accept: - application/xml Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:39:27 GMT + - Wed, 13 Mar 2024 08:36:48 GMT x-ms-version: - '2023-11-03' method: HEAD @@ -280,12 +278,12 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 - Python/3.10.13 (Windows-10-10.0.22631-SP0) + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore response: @@ -315,14 +313,14 @@ interactions: - no-cache strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked vary: - - Accept-Encoding,Accept-Encoding + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE x-content-type-options: - nosniff x-request-time: - - '0.093' + - '0.090' status: code: 200 message: OK @@ -332,14 +330,14 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive Content-Length: - '0' User-Agent: - - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 - Python/3.10.13 (Windows-10-10.0.22631-SP0) + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore/listSecrets response: @@ -358,14 +356,12 @@ interactions: - no-cache strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding + x-cache: + - CONFIG_NOCACHE x-content-type-options: - nosniff x-request-time: - - '0.081' + - '0.120' status: code: 200 message: OK @@ -375,13 +371,13 @@ interactions: Accept: - application/xml Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:39:31 GMT + - Wed, 13 Mar 2024 08:36:51 GMT x-ms-version: - '2023-11-03' method: HEAD @@ -425,13 +421,13 @@ interactions: Accept: - application/xml Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) x-ms-date: - - Fri, 12 Jan 2024 08:39:32 GMT + - Wed, 13 Mar 2024 08:36:53 GMT x-ms-version: - '2023-11-03' method: HEAD @@ -457,25 +453,25 @@ interactions: body: '{"flowDefinitionDataStoreName": "workspaceblobstore", "flowDefinitionBlobPath": "LocalUpload/000000000000000000000000000000000000/web_classification/flow.dag.yaml", "runId": "name", "runDisplayName": "name", "runExperimentName": "", "nodeVariant": - "${summarize_text_content.variant_0}", "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/000000000000000000000000000000000000/webClassification1.jsonl"}, - "inputsMapping": {"url": "${data.url}"}, "connections": {}, "environmentVariables": - {}, "runtimeName": "fake-runtime-name", "sessionId": "000000000000000000000000000000000000000000000000", + "${summarize_text_content.variant_0}", "sessionId": "000000000000000000000000000000000000000000000000", "sessionSetupMode": "SystemWait", "flowLineageId": "0000000000000000000000000000000000000000000000000000000000000000", - "runDisplayNameGenerationType": "UserProvidedMacro"}' + "runtimeName": "fake-runtime-name", "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/000000000000000000000000000000000000/webClassification1.jsonl"}, + "inputsMapping": {"url": "${data.url}"}, "connections": {}, "environmentVariables": + {}, "runDisplayNameGenerationType": "UserProvidedMacro"}' headers: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive Content-Length: - - '873' + - '864' Content-Type: - application/json User-Agent: - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown - Python/3.10.13 (Windows-10-10.0.22631-SP0) + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: POST uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/submit response: @@ -489,11 +485,11 @@ interactions: content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload x-content-type-options: - nosniff x-request-time: - - '6.880' + - '13.164' status: code: 200 message: OK @@ -503,12 +499,12 @@ interactions: Accept: - application/json Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown - Python/3.10.13 (Windows-10-10.0.22631-SP0) + Python/3.9.18 (Windows-10-10.0.22631-SP0) method: GET uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/name response: @@ -536,26 +532,54 @@ interactions: "1", "logit_bias": "", "text": "${fetch_text_content_from_url.output}"}, "tool": "summarize_text_content.jinja2", "reduce": false, "api": "chat", "provider": "AzureOpenAI", "connection": "azure_open_ai_connection", "module": "promptflow.tools.aoai"}], - "tools": [{"name": "Content Safety (Text Analyze)", "type": "python", "inputs": - {"connection": {"type": ["AzureContentSafetyConnection"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "hate_category": - {"type": ["string"], "default": "medium_sensitivity", "enum": ["disable", - "low_sensitivity", "medium_sensitivity", "high_sensitivity"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "self_harm_category": - {"type": ["string"], "default": "medium_sensitivity", "enum": ["disable", - "low_sensitivity", "medium_sensitivity", "high_sensitivity"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "sexual_category": - {"type": ["string"], "default": "medium_sensitivity", "enum": ["disable", - "low_sensitivity", "medium_sensitivity", "high_sensitivity"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "text": {"type": - ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default"}, "violence_category": {"type": ["string"], "default": "medium_sensitivity", + "tools": [{"name": "Azure OpenAI GPT-4 Turbo with Vision", "type": "custom_llm", + "inputs": {"connection": {"type": ["AzureOpenAIConnection"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 0}}, "deployment_name": {"type": ["string"], "enabled_by": "connection", "dynamic_list": + {"func_path": "promptflow.tools.aoai_gpt4v.list_deployment_names", "func_kwargs": + [{"name": "connection", "reference": "${inputs.connection}", "type": ["AzureOpenAIConnection"]}]}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 5}}, "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 2}}, "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 3}}}, + "description": "Use Azure OpenAI GPT-4 Turbo with Vision to leverage AOAI + vision ability.", "module": "promptflow.tools.aoai_gpt4v", "class_name": "AzureOpenAI", + "function": "chat", "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.2.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Content Safety (Text Analyze)", + "type": "python", "inputs": {"connection": {"type": ["AzureContentSafetyConnection"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "hate_category": {"type": ["string"], "default": "medium_sensitivity", "enum": + ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "self_harm_category": {"type": ["string"], "default": "medium_sensitivity", "enum": ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}}, - "description": "Use Azure Content Safety to detect harmful content.", "module": - "promptflow.tools.azure_content_safety", "function": "analyze_text", "is_builtin": - true, "package": "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": - false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "sexual_category": {"type": ["string"], "default": "medium_sensitivity", "enum": + ["disable", "low_sensitivity", "medium_sensitivity", "high_sensitivity"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "text": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "violence_category": {"type": ["string"], + "default": "medium_sensitivity", "enum": ["disable", "low_sensitivity", "medium_sensitivity", + "high_sensitivity"], "allow_manual_entry": false, "is_multi_select": false, + "input_type": "default"}}, "description": "Use Azure Content Safety to detect + harmful content.", "module": "promptflow.tools.azure_content_safety", "function": + "analyze_text", "is_builtin": true, "package": "promptflow-tools", "package_version": + "1.2.0rc1", "enable_kwargs": false, "deprecated_tools": ["content_safety_text.tools.content_safety_text_tool.analyze_text"], "tool_state": "stable"}, {"name": "Embedding", "type": "python", "inputs": {"connection": {"type": ["AzureOpenAIConnection", "OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "deployment_name": @@ -566,77 +590,208 @@ interactions: "default"}, "input": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "model": {"type": ["string"], "enum": ["text-embedding-ada-002", "text-search-ada-doc-001", "text-search-ada-query-001"], "enabled_by": "connection", - "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": false, "is_multi_select": + "enabled_by_type": ["OpenAIConnection"], "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}}, "description": "Use Open AI''s embedding model to create an embedding vector representing the input text.", "module": "promptflow.tools.embedding", "function": "embedding", "is_builtin": true, - "package": "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Open Source LLM", "type": "custom_llm", + "package": "promptflow-tools", "package_version": "1.2.0rc1", "enable_kwargs": + false, "tool_state": "stable"}, {"name": "Open Model LLM", "type": "custom_llm", "inputs": {"api": {"type": ["string"], "enum": ["chat", "completion"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "connection": {"type": - ["CustomConnection"], "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "deployment_name": {"type": ["string"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "endpoint_name": - {"type": ["string"], "default": "-- please enter an endpoint name --", "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_new_tokens": - {"type": ["int"], "default": 500, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "model_kwargs": {"type": ["object"], "default": - "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default", "advanced": true}, "temperature": {"type": ["double"], "default": - 1.0, "allow_manual_entry": false, "is_multi_select": false, "input_type": - "default"}, "top_p": {"type": ["double"], "default": 1.0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default", "advanced": true}}, - "description": "Use an Open Source model from the Azure Model catalog, deployed - to an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": - "promptflow.tools.open_source_llm", "class_name": "OpenSourceLLM", "function": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 2}}, "deployment_name": {"type": ["string"], "default": "", "dynamic_list": + {"func_path": "promptflow.tools.open_model_llm.list_deployment_names", "func_kwargs": + [{"name": "endpoint", "optional": true, "reference": "${inputs.endpoint}", + "type": ["string"]}]}, "allow_manual_entry": true, "is_multi_select": false, + "input_type": "default", "ui_hints": {"index": 1}}, "endpoint_name": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow.tools.open_model_llm.list_endpoint_names"}, + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "max_new_tokens": {"type": ["int"], "default": + 500, "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "ui_hints": {"index": 4}}, "model_kwargs": {"type": ["object"], + "default": "{}", "allow_manual_entry": false, "is_multi_select": false, "input_type": + "default", "advanced": true, "ui_hints": {"index": 6}}, "temperature": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "ui_hints": {"index": 3}}, "top_p": {"type": + ["double"], "default": 1.0, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default", "advanced": true, "ui_hints": {"index": 5}}}, + "description": "Use an open model from the Azure Model catalog, deployed to + an AzureML Online Endpoint for LLM Chat or Completion API calls.", "module": + "promptflow.tools.open_model_llm", "class_name": "OpenModelLLM", "function": "call", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACgElEQVR4nGWSz2vcVRTFP/e9NzOZ1KDGohASslLEH6VLV0ak4l/QpeDCrfQPcNGliODKnVm4EBdBsIjQIlhciKW0ycKFVCSNbYnjdDLtmPnmO/nO9917XcxMkjYX3uLx7nnn3HOuMK2Nix4fP78ZdrYXVkLVWjf3l3B1B+HpcjzGFtmqa6cePz7/x0dnn1n5qhj3iBJPYREIURAJuCtpY8PjReDbrf9WG7H1fuefwQU9qKztTcMJT+PNnEFvjGVDBDlSsH6p/9MLzy6+NxwVqI8RAg4IPmWedMckdLYP6O6UpIaQfvyyXG012+e79/ZfHukoS1ISMT2hGTB1RkUmNgQ5QZ0w+a2VWDq73MbdEWmfnnv6UWe7oNzPaLapl5CwuLTXK9WUGBuCjqekzhP+z52ZXOrKMD3OJg0Hh778aiOuvpnYvp05d6GJO4iAO4QAe/eV36/X5LFRV4Zmn+AdkqlL8Vjp3oVioOz+WTPzzYEgsN+fgPLYyJVheSbPPVl2ikeGZRjtG52/8rHuaV9VOlpP2OtKyVndcRVCSqOhsvxa4vW359i6OuKdD+aP8Q4SYPdOzS/flGjt1JUSaMqZ5nwa1Y8qWb/Ud/eZZkHisYezEM0m+fcelDr8F1SqW2LNK6r1jXQwyLzy1hxvrLXZulry7ocL+FS6G4QIu3fG/Px1gdYeW7LIgXU2P/115TOA5G7e3Rmj2aS/m7l5pThiZzrCcE/d1XHzbln373nw7y6veeoUm5KCNKT/IPPwbiY1hYd/l5MIT65BMFt87sU4v9D7/JMflr44uV6hGh1+L4RCkg6z5iK2tAhNLeLsNGwYA4fDYnC/drvuuFxe86NV/x+Ut27g0FvykgAAAABJRU5ErkJggg==", - "is_builtin": true, "package": "promptflow-tools", "package_version": "0.0.216", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.2.0rc1", "enable_kwargs": false, "tool_state": "stable"}, {"name": "OpenAI GPT-4V", "type": "custom_llm", "inputs": {"connection": {"type": ["OpenAIConnection"], - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "frequency_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "max_tokens": {"type": - ["int"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], - "allow_manual_entry": true, "is_multi_select": false, "input_type": "default"}, - "presence_penalty": {"type": ["double"], "default": 0, "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "stop": {"type": - ["list"], "default": "", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}, "temperature": {"type": ["double"], "default": 1, - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use OpenAI GPT-4V to leverage - vision ability.", "module": "promptflow.tools.openai_gpt4v", "class_name": - "OpenAI", "function": "chat", "is_builtin": true, "package": "promptflow-tools", - "package_version": "0.0.216", "default_prompt": "# system:\nAs an AI assistant, - your task involves interpreting images and responding to questions about the - image.\nRemember to provide accurate answers based on the information present - in the image.\n\n# user:\nCan you tell me what the image depicts?\n![image]({{image_input}})\n", - "enable_kwargs": false, "tool_state": "stable"}, {"name": "Serp API", "type": - "python", "inputs": {"connection": {"type": ["SerpConnection"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "engine": {"type": - ["string"], "default": "google", "enum": ["google", "bing"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "location": {"type": - ["string"], "default": "", "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "num": {"type": ["int"], "default": "10", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "query": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "safe": {"type": ["string"], "default": "off", - "enum": ["active", "off"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Use Serp API to obtain search - results from a specific search engine.", "module": "promptflow.tools.serpapi", - "class_name": "SerpAPI", "function": "search", "is_builtin": true, "package": - "promptflow-tools", "package_version": "0.0.216", "enable_kwargs": false, - "tool_state": "stable"}, {"name": "Faiss Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "top_k": {"type": ["int"], "default": "3", - "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, - "vector": {"type": ["list"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}}, "description": "Search vector based query - from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 0}}, "frequency_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 7}}, "max_tokens": {"type": ["int"], "default": 512, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 4}}, "model": {"type": ["string"], "enum": ["gpt-4-vision-preview"], + "allow_manual_entry": true, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 1}}, "presence_penalty": {"type": ["double"], "default": + 0, "allow_manual_entry": false, "is_multi_select": false, "input_type": "default", + "ui_hints": {"index": 6}}, "stop": {"type": ["list"], "default": "", "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 5}}, "temperature": {"type": ["double"], "default": 1, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default", "ui_hints": {"index": + 2}}, "top_p": {"type": ["double"], "default": 1, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default", "ui_hints": {"index": 3}}}, + "description": "Use OpenAI GPT-4V to leverage vision ability.", "module": + "promptflow.tools.openai_gpt4v", "class_name": "OpenAI", "function": "chat", + "icon": {"dark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVR4nJXSzW3CQBAF4DUSTjk+Al1AD0ikESslpBIEheRALhEpgAYSWV8OGUublf/yLuP3PPNmdndS+gdwXZrYDmh7fGE/W+wXbaYd8IYm4rxJPnZ0boI3wZcdJxs/n+AwV7DFK7aFyfQdYIMLPvES8YJNf5yp4jMeeEYdWh38gXOR35YGHe5xabvQdsHv6PLi8qV6gycc8YH3iMfQu6Lh4ASr+F5Hh3XwVWnQYzUkVlX1nccplAb1SN6Y/sfgmlK64VS8wimldIv/0yj2QLkHizG0iWP4AVAfQ34DVQONAAAAAElFTkSuQmCC", + "light": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAx0lEQVR4nJWSwQ2CQBBFX0jAcjgqXUgPJNiIsQQrIVCIFy8GC6ABDcGDX7Mus9n1Xz7zZ+fPsLPwH4bUg0dD2wMPcbR48Uxq4AKU4iSTDwZ1LhWXipN/B3V0J6hjBTvgLHZNonewBXrgDpzEvXSIjN0BE3AACmmF4kl5F6tNzcCoLpW0SvGovFvsb4oZ2AANcAOu4ka6axCcINN3rg654sww+CYsPD0OwjcozFNh/Qcd78tqVbCIW+n+Fky472Bh/Q6SYb1EEy8tDzd+9IsVPAAAAABJRU5ErkJggg=="}, + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.2.0rc1", + "default_prompt": "# system:\nAs an AI assistant, your task involves interpreting + images and responding to questions about the image.\nRemember to provide accurate + answers based on the information present in the image.\n\n# user:\nCan you + tell me what the image depicts?\n![image]({{image_input}})\n", "enable_kwargs": + false, "tool_state": "preview"}, {"name": "Serp API", "type": "python", "inputs": + {"connection": {"type": ["SerpConnection"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "engine": {"type": ["string"], "default": + "google", "enum": ["google", "bing"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "location": {"type": ["string"], "default": + "", "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "num": {"type": ["int"], "default": "10", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "safe": {"type": + ["string"], "default": "off", "enum": ["active", "off"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Use Serp API to obtain search results from a specific search engine.", "module": + "promptflow.tools.serpapi", "class_name": "SerpAPI", "function": "search", + "is_builtin": true, "package": "promptflow-tools", "package_version": "1.2.0rc1", + "enable_kwargs": false, "tool_state": "stable"}, {"name": "Index Lookup", + "type": "python", "inputs": {"acs_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_embedding_field": {"type": ["string"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Collection(Edm.Single)", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "acs_index_connection": {"type": ["CognitiveSearchConnection"], + "enabled_by": "index_type", "enabled_by_value": ["Azure AI Search"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "acs_index_name": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_indices", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "acs_metadata_field": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Azure AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_fields", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}, {"default": "Edm.String", "name": "field_data_type", + "optional": false, "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": + false, "input_type": "uionly_hidden"}, "aoai_embedding_connection": {"type": + ["AzureOpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["Azure OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "embedding_deployment": {"type": ["string"], "enabled_by": + "embedding_type", "enabled_by_value": ["Azure OpenAI"], "dynamic_list": {"func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.list_aoai_embedding_deployments", + "func_kwargs": [{"name": "aoai_connection", "optional": false, "reference": + "${inputs.aoai_embedding_connection}", "type": ["AzurOpenAIConnection"]}]}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "embedding_model": {"type": ["string"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI", "Hugging Face"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_embedding_models", + "func_kwargs": [{"name": "embedding_type", "optional": false, "reference": + "${inputs.embedding_type}", "type": ["string"]}]}, "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "embedding_type": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search", "FAISS", "Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_embedding_types", + "func_kwargs": [{"name": "index_type", "optional": false, "reference": "${inputs.index_type}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "faiss_index_path": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["FAISS"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "index_type": {"type": + ["string"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_index_types"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_asset_id": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Registered Index"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_registered_mlindices"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "mlindex_content": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": + false, "generated_by": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.forward_mapping", + "func_kwargs": [{"name": "index_type", "reference": "${inputs.index_type}", + "type": ["string"]}, {"name": "mlindex_asset_id", "optional": true, "reference": + "${inputs.mlindex_asset_id}", "type": ["string"]}, {"name": "mlindex_path", + "optional": true, "reference": "${inputs.mlindex_path}", "type": ["string"]}, + {"name": "acs_index_connection", "optional": true, "reference": "${inputs.acs_index_connection}", + "type": ["CognitiveSearchConnection"]}, {"name": "acs_index_name", "optional": + true, "reference": "${inputs.acs_index_name}", "type": ["string"]}, {"name": + "acs_content_field", "optional": true, "reference": "${inputs.acs_content_field}", + "type": ["string"]}, {"name": "acs_embedding_field", "optional": true, "reference": + "${inputs.acs_embedding_field}", "type": ["string"]}, {"name": "acs_metadata_field", + "optional": true, "reference": "${inputs.acs_metadata_field}", "type": ["string"]}, + {"name": "semantic_configuration", "optional": true, "reference": "${inputs.semantic_configuration}", + "type": ["string"]}, {"name": "faiss_index_path", "optional": true, "reference": + "${inputs.faiss_index_path}", "type": ["string"]}, {"name": "pinecone_index_connection", + "optional": true, "reference": "${inputs.pinecone_index_connection}", "type": + ["string"]}, {"name": "pinecone_index_name", "optional": true, "reference": + "${inputs.pinecone_index_name}", "type": ["string"]}, {"name": "pinecone_content_field", + "optional": true, "reference": "${inputs.pinecone_content_field}", "type": + ["string"]}, {"name": "pinecone_metadata_field", "optional": true, "reference": + "${inputs.pinecone_metadata_field}", "type": ["string"]}, {"name": "embedding_type", + "optional": true, "reference": "${inputs.embedding_type}", "type": ["string"]}, + {"name": "aoai_embedding_connection", "optional": true, "reference": "${inputs.aoai_embedding_connection}", + "type": ["AzureOpenAIConnection"]}, {"name": "oai_embedding_connection", "optional": + true, "reference": "${inputs.oai_embedding_connection}", "type": ["string"]}, + {"name": "embedding_model", "optional": true, "reference": "${inputs.embedding_model}", + "type": ["string"]}, {"name": "embedding_deployment", "optional": true, "reference": + "${inputs.embedding_deployment}", "type": ["string"]}], "reverse_func_path": + "promptflow_vectordb.tool.common_index_lookup_utils.reverse_mapping"}, "input_type": + "default"}, "mlindex_path": {"type": ["string"], "enabled_by": "index_type", + "enabled_by_value": ["MLIndex file from path"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "oai_embedding_connection": + {"type": ["OpenAIConnection"], "enabled_by": "embedding_type", "enabled_by_value": + ["OpenAI"], "allow_manual_entry": false, "is_multi_select": false, "input_type": + "uionly_hidden"}, "pinecone_content_field": {"type": ["string"], "enabled_by": + "index_type", "enabled_by_value": ["Pinecone"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_index_connection": + {"type": ["PineconeConnection"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_connections"}, + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "pinecone_index_name": {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": + ["Pinecone"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_pinecone_indices", + "func_kwargs": [{"name": "pinecone_connection_name", "optional": false, "reference": + "${inputs.pinecone_index_connection}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "uionly_hidden"}, "pinecone_metadata_field": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Pinecone"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "uionly_hidden"}, + "queries": {"type": ["object"], "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}, "query_type": {"type": ["string"], "dynamic_list": + {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_available_query_types", + "func_kwargs": [{"name": "mlindex_content", "optional": false, "reference": + "${inputs.mlindex_content}", "type": ["string"]}]}, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "semantic_configuration": + {"type": ["string"], "enabled_by": "index_type", "enabled_by_value": ["Azure + AI Search"], "dynamic_list": {"func_path": "promptflow_vectordb.tool.common_index_lookup_utils.list_acs_index_semantic_configurations", + "func_kwargs": [{"name": "acs_connection", "optional": false, "reference": + "${inputs.acs_index_connection}", "type": ["CognitiveSearchConnection"]}, + {"name": "acs_index_name", "optional": false, "reference": "${inputs.acs_index_name}", + "type": ["string"]}]}, "allow_manual_entry": false, "is_multi_select": false, + "input_type": "uionly_hidden"}, "top_k": {"type": ["int"], "default": 3, "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search an AzureML Vector Index for relevant results using one or more text + queries.", "module": "promptflow_vectordb.tool.common_index_lookup", "function": + "search", "is_builtin": true, "package": "promptflow-vectordb", "package_version": + "0.0.1", "enable_kwargs": false, "tool_state": "preview"}, {"name": "Faiss + Index Lookup", "type": "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": + ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, + "input_type": "default"}, "vector": {"type": ["list"], "allow_manual_entry": + false, "is_multi_select": false, "input_type": "default"}}, "description": + "Search vector based query from the FAISS index file.", "module": "promptflow_vectordb.tool.faiss_index_lookup", "class_name": "FaissIndexLookup", "function": "search", "is_builtin": true, "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector DB Lookup", "type": "python", + false, "tool_state": "deprecated"}, {"name": "Vector DB Lookup", "type": "python", "inputs": {"class_name": {"type": ["string"], "enabled_by": "connection", "enabled_by_type": ["WeaviateConnection"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "collection_name": {"type": ["string"], "enabled_by": @@ -663,16 +818,16 @@ interactions: vector based query from existing Vector Database.", "module": "promptflow_vectordb.tool.vector_db_lookup", "class_name": "VectorDBLookup", "function": "search", "is_builtin": true, "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "Vector Index Lookup", "type": "python", - "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": - false, "input_type": "default"}, "query": {"type": ["object"], "allow_manual_entry": - false, "is_multi_select": false, "input_type": "default"}, "top_k": {"type": - ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": false, - "input_type": "default"}}, "description": "Search text or vector based query - from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", + false, "tool_state": "deprecated"}, {"name": "Vector Index Lookup", "type": + "python", "inputs": {"path": {"type": ["string"], "allow_manual_entry": false, + "is_multi_select": false, "input_type": "default"}, "query": {"type": ["object"], + "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, + "top_k": {"type": ["int"], "default": "3", "allow_manual_entry": false, "is_multi_select": + false, "input_type": "default"}}, "description": "Search text or vector based + query from AzureML Vector Index.", "module": "promptflow_vectordb.tool.vector_index_lookup", "class_name": "VectorIndexLookup", "function": "search", "is_builtin": true, "package": "promptflow-vectordb", "package_version": "0.0.1", "enable_kwargs": - false, "tool_state": "stable"}, {"name": "classify_with_llm.jinja2", "type": + false, "tool_state": "deprecated"}, {"name": "classify_with_llm.jinja2", "type": "prompt", "inputs": {"examples": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, "input_type": "default"}, "text_content": {"type": ["string"], "allow_manual_entry": false, "is_multi_select": false, @@ -703,20 +858,20 @@ interactions: "evaluation_only": false, "is_chat_output": false}}}, "flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/name/flowRuns/name", "flowRunId": "name", "flowRunDisplayName": "name", "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/107bd3498e44deb2dccc53d2208d32b2/webClassification1.jsonl"}, - "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "test-runtime-ci", + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "hod-ci", "inputsMapping": {"url": "${data.url}"}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": "promptflow/PromptFlowArtifacts/name/flow_artifacts", - "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "f8f59233-47fa-48df-a9e1-fc6866b7597e", + "flowDagFileRelativePath": "flow.dag.yaml", "flowSnapshotId": "33e47f3a-be15-4250-bd03-15082ce96cb0", "studioPortalEndpoint": "https://ml.azure.com/runs/name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' headers: connection: - keep-alive content-length: - - '16239' + - '30261' content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -724,7 +879,7 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.210' + - '0.270' status: code: 200 message: OK @@ -735,7 +890,7 @@ interactions: Accept: - '*/*' Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive Content-Length: @@ -748,37 +903,36 @@ interactions: uri: https://eastus.api.azureml.ms/history/v1.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/rundata response: body: - string: '{"runMetadata": {"runNumber": 1705048778, "rootRunId": "name", "createdUtc": - "2024-01-12T08:39:38.859607+00:00", "createdBy": {"userObjectId": "00000000-0000-0000-0000-000000000000", - "userPuId": null, "userIdp": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", - "userAltSecId": null, "userIss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", - "userTenantId": "00000000-0000-0000-0000-000000000000", "userName": "4cbd0e2e-aae4-4099-b4ba-94d3a4910587", - "upn": null}, "userId": "00000000-0000-0000-0000-000000000000", "token": null, - "tokenExpiryTimeUtc": null, "error": null, "warnings": null, "revision": 3, - "statusRevision": 1, "runUuid": "ead544d1-f5d3-4eb1-b931-ab04cd0e1b39", "parentRunUuid": - null, "rootRunUuid": "ead544d1-f5d3-4eb1-b931-ab04cd0e1b39", "lastStartTimeUtc": + string: '{"runMetadata": {"runNumber": 1710319022, "rootRunId": "name", "createdUtc": + "2024-03-13T08:37:02.0408389+00:00", "createdBy": {"userObjectId": "00000000-0000-0000-0000-000000000000", + "userPuId": "10032000324F7449", "userIdp": null, "userAltSecId": null, "userIss": + "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", "userTenantId": + "00000000-0000-0000-0000-000000000000", "userName": "Honglin Du", "upn": null}, + "userId": "00000000-0000-0000-0000-000000000000", "token": null, "tokenExpiryTimeUtc": + null, "error": null, "warnings": null, "revision": 3, "statusRevision": 1, + "runUuid": "b8932d6b-0bbe-41be-994b-cf86bf1be136", "parentRunUuid": null, + "rootRunUuid": "b8932d6b-0bbe-41be-994b-cf86bf1be136", "lastStartTimeUtc": null, "currentComputeTime": "00:00:00", "computeDuration": null, "effectiveStartTimeUtc": null, "lastModifiedBy": {"userObjectId": "00000000-0000-0000-0000-000000000000", - "userPuId": null, "userIdp": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", - "userAltSecId": null, "userIss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", - "userTenantId": "00000000-0000-0000-0000-000000000000", "userName": "4cbd0e2e-aae4-4099-b4ba-94d3a4910587", - "upn": null}, "lastModifiedUtc": "2024-01-12T08:39:43.2026482+00:00", "duration": - null, "cancelationReason": null, "currentAttemptId": 1, "runId": "name", "parentRunId": + "userPuId": "10032000324F7449", "userIdp": null, "userAltSecId": null, "userIss": + "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", "userTenantId": + "00000000-0000-0000-0000-000000000000", "userName": "Honglin Du", "upn": null}, + "lastModifiedUtc": "2024-03-13T08:37:09.8840657+00:00", "duration": null, + "cancelationReason": null, "currentAttemptId": 1, "runId": "name", "parentRunId": null, "experimentId": "d30efbeb-f81d-4cfa-b5cc-a0570a049009", "status": "Preparing", "startTimeUtc": null, "endTimeUtc": null, "scheduleId": null, "displayName": "name", "name": null, "dataContainerId": "dcid.name", "description": null, "hidden": false, "runType": "azureml.promptflow.FlowRun", "runTypeV2": {"orchestrator": null, "traits": [], "attribution": "PromptFlow", "computeType": "AmlcDsi"}, - "properties": {"azureml.promptflow.runtime_name": "test-runtime-ci", "azureml.promptflow.runtime_version": - "20231204.v4", "azureml.promptflow.definition_file_name": "flow.dag.yaml", - "azureml.promptflow.session_id": "4dd8f4d5f44dfeb817d3438cf84bd739215d87afd9458597", - "azureml.promptflow.flow_lineage_id": "af1a6951de9be2ce13d3b58b23dbd8b6a0cd8fd4918ad9cb22b28fb8395fbcb0", + "properties": {"azureml.promptflow.runtime_name": "hod-ci", "azureml.promptflow.runtime_version": + "20240222.v3", "azureml.promptflow.definition_file_name": "flow.dag.yaml", + "azureml.promptflow.flow_lineage_id": "97280ab0e0bfee2b7b9a66a5e6391fa0f52550ecf78501ac8bd57d5e31eddfd6", "azureml.promptflow.node_variant": "${summarize_text_content.variant_0}", "azureml.promptflow.flow_definition_datastore_name": "workspaceblobstore", "azureml.promptflow.flow_definition_blob_path": "LocalUpload/a1fa6ef1ead7ff3ce76b36250f6f5461/web_classification/flow.dag.yaml", "azureml.promptflow.input_data": "azureml://datastores/workspaceblobstore/paths/LocalUpload/107bd3498e44deb2dccc53d2208d32b2/webClassification1.jsonl", "azureml.promptflow.inputs_mapping": "{\"url\":\"${data.url}\"}", "_azureml.evaluation_run": - "promptflow.BatchRun", "azureml.promptflow.snapshot_id": "f8f59233-47fa-48df-a9e1-fc6866b7597e"}, + "promptflow.BatchRun", "azureml.promptflow.snapshot_id": "33e47f3a-be15-4250-bd03-15082ce96cb0"}, "parameters": {}, "actionUris": {}, "scriptName": null, "target": null, "uniqueChildRunComputeTargets": [], "tags": {}, "settings": {}, "services": {}, "inputDatasets": [], "outputDatasets": [], "runDefinition": null, "jobSpecification": null, "primaryMetricName": @@ -790,11 +944,11 @@ interactions: connection: - keep-alive content-length: - - '4010' + - '3769' content-type: - application/json; charset=utf-8 strict-transport-security: - - max-age=15724800; includeSubDomains; preload + - max-age=31536000; includeSubDomains; preload transfer-encoding: - chunked vary: @@ -802,7 +956,7 @@ interactions: x-content-type-options: - nosniff x-request-time: - - '0.037' + - '0.057' status: code: 200 message: OK diff --git a/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_wrong_workspace_type.yaml b/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_wrong_workspace_type.yaml new file mode 100644 index 00000000000..e665bad3d43 --- /dev/null +++ b/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_wrong_workspace_type.yaml @@ -0,0 +1,46 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000 + response: + body: + string: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000", + "name": "00000", "type": "Microsoft.MachineLearningServices/workspaces", "location": + "eastus", "tags": {}, "etag": null, "kind": "Default", "sku": {"name": "Basic", + "tier": "Basic"}, "properties": {"discoveryUrl": "https://eastus.api.azureml.ms/discovery"}}' + headers: + cache-control: + - no-cache + content-length: + - '3630' + content-type: + - application/json; charset=utf-8 + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-request-time: + - '0.024' + status: + code: 200 + message: OK +version: 1 From a26f39fc51680e505f47994c269a2e96dbce7a67 Mon Sep 17 00:00:00 2001 From: riddle xu Date: Thu, 14 Mar 2024 16:10:44 +0800 Subject: [PATCH 053/204] [Internal] Add param to support disable local trace for cloud mode (#2339) # Description In this PR, we revise trace_collector for runtime to use. - Add param cloud_trace_only to disable local trace. And for cloud mode, we need sync mode to make sure trace written to cosmos db before return. - Support pass in credential to work in some specific region. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Yangtong Xu --- .../_sdk/_service/apis/collector.py | 58 ++++++++++++++----- .../azure/_storage/cosmosdb/client.py | 27 +++++++-- 2 files changed, 63 insertions(+), 22 deletions(-) diff --git a/src/promptflow/promptflow/_sdk/_service/apis/collector.py b/src/promptflow/promptflow/_sdk/_service/apis/collector.py index 647f8a64a11..6df88bfaef1 100644 --- a/src/promptflow/promptflow/_sdk/_service/apis/collector.py +++ b/src/promptflow/promptflow/_sdk/_service/apis/collector.py @@ -11,7 +11,7 @@ import logging import traceback from datetime import datetime -from typing import Callable +from typing import Callable, Optional from flask import request from google.protobuf.json_format import MessageToJson @@ -29,14 +29,25 @@ from promptflow._utils.thread_utils import ThreadWithContextVars -def trace_collector(get_created_by_info_with_cache: Callable, logger: logging.Logger): - """ +def trace_collector( + get_created_by_info_with_cache: Callable, + logger: logging.Logger, + cloud_trace_only: bool = False, + credential: Optional[object] = None, +): + """Collect traces from OTLP/HTTP endpoint and write to local/remote storage. + This function is target to be reused in other places, so pass in get_created_by_info_with_cache and logger to avoid app related dependencies. - Args: - get_created_by_info_with_cache (Callable): A function that retrieves information about the creator of the trace. - logger (logging.Logger): The logger object used for logging. + :param get_created_by_info_with_cache: A function that retrieves information about the creator of the trace. + :type get_created_by_info_with_cache: Callable + :param logger: The logger object used for logging. + :type logger: logging.Logger + :param cloud_trace_only: If True, only write trace to cosmosdb and skip local trace. Default is False. + :type cloud_trace_only: bool + :param credential: The credential object used to authenticate with cosmosdb. Default is None. + :type credential: Optional[object] """ content_type = request.headers.get("Content-Type") # binary protobuf encoding @@ -60,13 +71,19 @@ def trace_collector(get_created_by_info_with_cache: Callable, logger: logging.Lo for span in scope_span.spans: # TODO: persist with batch span = Span._from_protobuf_object(span, resource=resource) - span._persist() + if not cloud_trace_only: + span._persist() all_spans.append(span) - # Create a new thread to write trace to cosmosdb to avoid blocking the main thread - ThreadWithContextVars( - target=_try_write_trace_to_cosmosdb, args=(all_spans, get_created_by_info_with_cache, logger) - ).start() + if cloud_trace_only: + # If we only trace to cloud, we should make sure the data writing is success before return. + _try_write_trace_to_cosmosdb(all_spans, get_created_by_info_with_cache, logger, credential) + else: + # Create a new thread to write trace to cosmosdb to avoid blocking the main thread + ThreadWithContextVars( + target=_try_write_trace_to_cosmosdb, + args=(all_spans, get_created_by_info_with_cache, logger, credential), + ).start() return "Traces received", 200 # JSON protobuf encoding @@ -74,7 +91,9 @@ def trace_collector(get_created_by_info_with_cache: Callable, logger: logging.Lo raise NotImplementedError -def _try_write_trace_to_cosmosdb(all_spans, get_created_by_info_with_cache: Callable, logger: logging.Logger): +def _try_write_trace_to_cosmosdb( + all_spans, get_created_by_info_with_cache: Callable, logger: logging.Logger, credential: Optional[object] = None +): if not all_spans: return try: @@ -96,7 +115,8 @@ def _try_write_trace_to_cosmosdb(all_spans, get_created_by_info_with_cache: Call # Load span and summary clients first time may slow. # So, we load 2 client in parallel for warm up. span_client_thread = ThreadWithContextVars( - target=get_client, args=(CosmosDBContainerName.SPAN, subscription_id, resource_group_name, workspace_name) + target=get_client, + args=(CosmosDBContainerName.SPAN, subscription_id, resource_group_name, workspace_name, credential), ) span_client_thread.start() @@ -104,7 +124,7 @@ def _try_write_trace_to_cosmosdb(all_spans, get_created_by_info_with_cache: Call created_by_thread = ThreadWithContextVars(target=get_created_by_info_with_cache) created_by_thread.start() - get_client(CosmosDBContainerName.LINE_SUMMARY, subscription_id, resource_group_name, workspace_name) + get_client(CosmosDBContainerName.LINE_SUMMARY, subscription_id, resource_group_name, workspace_name, credential) span_client_thread.join() created_by_thread.join() @@ -112,12 +132,18 @@ def _try_write_trace_to_cosmosdb(all_spans, get_created_by_info_with_cache: Call created_by = get_created_by_info_with_cache() for span in all_spans: - span_client = get_client(CosmosDBContainerName.SPAN, subscription_id, resource_group_name, workspace_name) + span_client = get_client( + CosmosDBContainerName.SPAN, subscription_id, resource_group_name, workspace_name, credential + ) result = SpanCosmosDB(span, created_by).persist(span_client) # None means the span already exists, then we don't need to persist the summary also. if result is not None: line_summary_client = get_client( - CosmosDBContainerName.LINE_SUMMARY, subscription_id, resource_group_name, workspace_name + CosmosDBContainerName.LINE_SUMMARY, + subscription_id, + resource_group_name, + workspace_name, + credential, ) Summary(span, created_by, logger).persist(line_summary_client) logger.info( diff --git a/src/promptflow/promptflow/azure/_storage/cosmosdb/client.py b/src/promptflow/promptflow/azure/_storage/cosmosdb/client.py index c91dc3b27e6..5a5c9d6f8d1 100644 --- a/src/promptflow/promptflow/azure/_storage/cosmosdb/client.py +++ b/src/promptflow/promptflow/azure/_storage/cosmosdb/client.py @@ -5,6 +5,7 @@ import ast import datetime import threading +from typing import Optional client_map = {} _thread_lock = threading.Lock() @@ -12,7 +13,13 @@ _token_timeout = 60 * 4 # Will try to refresh token if exceed 4 minutes -def get_client(container_name: str, subscription_id: str, resource_group_name: str, workspace_name: str): +def get_client( + container_name: str, + subscription_id: str, + resource_group_name: str, + workspace_name: str, + credential: Optional[object] = None, +): client_key = _get_db_client_key(container_name, subscription_id, resource_group_name, workspace_name) container_client = _get_client_from_map(client_key) if container_client is None: @@ -21,7 +28,13 @@ def get_client(container_name: str, subscription_id: str, resource_group_name: s with container_lock: container_client = _get_client_from_map(client_key) if container_client is None: - token = _get_resource_token(container_name, subscription_id, resource_group_name, workspace_name) + if credential is None: + from azure.identity import DefaultAzureCredential + + credential = DefaultAzureCredential() + token = _get_resource_token( + container_name, subscription_id, resource_group_name, workspace_name, credential + ) container_client = _init_container_client( endpoint=token["accountEndpoint"], database_name=token["databaseName"], @@ -57,14 +70,16 @@ def _get_container_lock(client_key: str): def _get_resource_token( - container_name: str, subscription_id: str, resource_group_name: str, workspace_name: str + container_name: str, + subscription_id: str, + resource_group_name: str, + workspace_name: str, + credential: Optional[object], ) -> object: - from azure.identity import DefaultAzureCredential - from promptflow.azure import PFClient pf_client = PFClient( - credential=DefaultAzureCredential(), + credential=credential, subscription_id=subscription_id, resource_group_name=resource_group_name, workspace_name=workspace_name, From c25be3660507dae08a7afb51590fa8ccbcd863d3 Mon Sep 17 00:00:00 2001 From: chw-microsoft <95913588+chw-microsoft@users.noreply.github.com> Date: Thu, 14 Mar 2024 18:19:54 +0800 Subject: [PATCH 054/204] CI test failure fixing (#2348) # Description There are several test failures, made some change to fix: 1) openai new version 1.14.0 has breaking change 2) recording items for exectuion outdated. 3) Some timeout test case replace # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .../test_line_execution_process_pool.py | 2 +- .../add_message_and_run.py | 10 +- .../add_message_and_run.py | 14 +-- .../add_message_and_run.py | 10 +- .../add_message_and_run.py | 10 +- .../executor_node_cache.shelve.bak | 101 +++++++++--------- .../executor_node_cache.shelve.dat | Bin 180941 -> 185118 bytes .../executor_node_cache.shelve.dir | 101 +++++++++--------- 8 files changed, 126 insertions(+), 122 deletions(-) diff --git a/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py b/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py index 7379daa42fc..f8b453514bd 100644 --- a/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py +++ b/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py @@ -26,7 +26,7 @@ from ...utils import get_flow_sample_inputs, get_yaml_file -SAMPLE_FLOW = "web_classification_no_variants" +SAMPLE_FLOW = "hello-world" def get_line_inputs(flow_folder=""): diff --git a/src/promptflow/tests/test_configs/flows/assistant-tool-with-connection/add_message_and_run.py b/src/promptflow/tests/test_configs/flows/assistant-tool-with-connection/add_message_and_run.py index 22fa4ef4900..f967123d3a9 100644 --- a/src/promptflow/tests/test_configs/flows/assistant-tool-with-connection/add_message_and_run.py +++ b/src/promptflow/tests/test_configs/flows/assistant-tool-with-connection/add_message_and_run.py @@ -3,7 +3,7 @@ from typing import Union from openai import AsyncAzureOpenAI, AsyncOpenAI -from openai.types.beta.threads import MessageContentImageFile, MessageContentText +from openai.types.beta.threads import TextContentBlock, ImageFileContentBlock from promptflow import tool from promptflow.connections import OpenAIConnection, AzureOpenAIConnection @@ -194,13 +194,13 @@ async def get_openai_file_references(content: list, download_image: bool, file_id_references = {} file_id = None for item in content: - if isinstance(item, MessageContentImageFile): + if isinstance(item, ImageFileContentBlock): file_id = item.image_file.file_id if download_image: file_id_references[file_id] = { "content": await download_openai_image(file_id, conn), } - elif isinstance(item, MessageContentText): + elif isinstance(item, TextContentBlock): for annotation in item.text.annotations: if annotation.type == "file_path": file_id = annotation.file_path.file_id @@ -223,10 +223,10 @@ async def get_openai_file_references(content: list, download_image: bool, def to_pf_content(content: list): pf_content = [] for item in content: - if isinstance(item, MessageContentImageFile): + if isinstance(item, ImageFileContentBlock): file_id = item.image_file.file_id pf_content.append({"type": "image_file", "image_file": {"file_id": file_id}}) - elif isinstance(item, MessageContentText): + elif isinstance(item, TextContentBlock): text_dict = {"type": "text", "text": {"value": item.text.value, "annotations": []}} for annotation in item.text.annotations: annotation_dict = { diff --git a/src/promptflow/tests/test_configs/flows/assistant-with-file/add_message_and_run.py b/src/promptflow/tests/test_configs/flows/assistant-with-file/add_message_and_run.py index 5def67f33e3..f967123d3a9 100644 --- a/src/promptflow/tests/test_configs/flows/assistant-with-file/add_message_and_run.py +++ b/src/promptflow/tests/test_configs/flows/assistant-with-file/add_message_and_run.py @@ -3,14 +3,16 @@ from typing import Union from openai import AsyncAzureOpenAI, AsyncOpenAI -from openai.types.beta.threads import MessageContentImageFile, MessageContentText +from openai.types.beta.threads import TextContentBlock, ImageFileContentBlock -from promptflow import tool, trace +from promptflow import tool from promptflow.connections import OpenAIConnection, AzureOpenAIConnection from promptflow.contracts.multimedia import Image from promptflow.contracts.types import AssistantDefinition from promptflow.exceptions import SystemErrorException from promptflow.executor._assistant_tool_invoker import AssistantToolInvoker +from promptflow.tracing import trace + from get_assistant_client import get_assistant_client URL_PREFIX = "https://platform.openai.com/files/" @@ -192,13 +194,13 @@ async def get_openai_file_references(content: list, download_image: bool, file_id_references = {} file_id = None for item in content: - if isinstance(item, MessageContentImageFile): + if isinstance(item, ImageFileContentBlock): file_id = item.image_file.file_id if download_image: file_id_references[file_id] = { "content": await download_openai_image(file_id, conn), } - elif isinstance(item, MessageContentText): + elif isinstance(item, TextContentBlock): for annotation in item.text.annotations: if annotation.type == "file_path": file_id = annotation.file_path.file_id @@ -221,10 +223,10 @@ async def get_openai_file_references(content: list, download_image: bool, def to_pf_content(content: list): pf_content = [] for item in content: - if isinstance(item, MessageContentImageFile): + if isinstance(item, ImageFileContentBlock): file_id = item.image_file.file_id pf_content.append({"type": "image_file", "image_file": {"file_id": file_id}}) - elif isinstance(item, MessageContentText): + elif isinstance(item, TextContentBlock): text_dict = {"type": "text", "text": {"value": item.text.value, "annotations": []}} for annotation in item.text.annotations: annotation_dict = { diff --git a/src/promptflow/tests/test_configs/flows/chat-with-assistant-no-file/add_message_and_run.py b/src/promptflow/tests/test_configs/flows/chat-with-assistant-no-file/add_message_and_run.py index 22fa4ef4900..f967123d3a9 100644 --- a/src/promptflow/tests/test_configs/flows/chat-with-assistant-no-file/add_message_and_run.py +++ b/src/promptflow/tests/test_configs/flows/chat-with-assistant-no-file/add_message_and_run.py @@ -3,7 +3,7 @@ from typing import Union from openai import AsyncAzureOpenAI, AsyncOpenAI -from openai.types.beta.threads import MessageContentImageFile, MessageContentText +from openai.types.beta.threads import TextContentBlock, ImageFileContentBlock from promptflow import tool from promptflow.connections import OpenAIConnection, AzureOpenAIConnection @@ -194,13 +194,13 @@ async def get_openai_file_references(content: list, download_image: bool, file_id_references = {} file_id = None for item in content: - if isinstance(item, MessageContentImageFile): + if isinstance(item, ImageFileContentBlock): file_id = item.image_file.file_id if download_image: file_id_references[file_id] = { "content": await download_openai_image(file_id, conn), } - elif isinstance(item, MessageContentText): + elif isinstance(item, TextContentBlock): for annotation in item.text.annotations: if annotation.type == "file_path": file_id = annotation.file_path.file_id @@ -223,10 +223,10 @@ async def get_openai_file_references(content: list, download_image: bool, def to_pf_content(content: list): pf_content = [] for item in content: - if isinstance(item, MessageContentImageFile): + if isinstance(item, ImageFileContentBlock): file_id = item.image_file.file_id pf_content.append({"type": "image_file", "image_file": {"file_id": file_id}}) - elif isinstance(item, MessageContentText): + elif isinstance(item, TextContentBlock): text_dict = {"type": "text", "text": {"value": item.text.value, "annotations": []}} for annotation in item.text.annotations: annotation_dict = { diff --git a/src/promptflow/tests/test_configs/flows/food-calorie-assistant/add_message_and_run.py b/src/promptflow/tests/test_configs/flows/food-calorie-assistant/add_message_and_run.py index 22fa4ef4900..f967123d3a9 100644 --- a/src/promptflow/tests/test_configs/flows/food-calorie-assistant/add_message_and_run.py +++ b/src/promptflow/tests/test_configs/flows/food-calorie-assistant/add_message_and_run.py @@ -3,7 +3,7 @@ from typing import Union from openai import AsyncAzureOpenAI, AsyncOpenAI -from openai.types.beta.threads import MessageContentImageFile, MessageContentText +from openai.types.beta.threads import TextContentBlock, ImageFileContentBlock from promptflow import tool from promptflow.connections import OpenAIConnection, AzureOpenAIConnection @@ -194,13 +194,13 @@ async def get_openai_file_references(content: list, download_image: bool, file_id_references = {} file_id = None for item in content: - if isinstance(item, MessageContentImageFile): + if isinstance(item, ImageFileContentBlock): file_id = item.image_file.file_id if download_image: file_id_references[file_id] = { "content": await download_openai_image(file_id, conn), } - elif isinstance(item, MessageContentText): + elif isinstance(item, TextContentBlock): for annotation in item.text.annotations: if annotation.type == "file_path": file_id = annotation.file_path.file_id @@ -223,10 +223,10 @@ async def get_openai_file_references(content: list, download_image: bool, def to_pf_content(content: list): pf_content = [] for item in content: - if isinstance(item, MessageContentImageFile): + if isinstance(item, ImageFileContentBlock): file_id = item.image_file.file_id pf_content.append({"type": "image_file", "image_file": {"file_id": file_id}}) - elif isinstance(item, MessageContentText): + elif isinstance(item, TextContentBlock): text_dict = {"type": "text", "text": {"value": item.text.value, "annotations": []}} for annotation in item.text.annotations: annotation_dict = { diff --git a/src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.bak b/src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.bak index 9e23f46a458..32349d105f9 100644 --- a/src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.bak +++ b/src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.bak @@ -1,53 +1,54 @@ -'a39e1ce4b790d5f51a71b7954da374a122edc4d2', (0, 2301) +'5f3cec876019a3516ad01ca9bcbb1d6c9591a74c', (0, 2309) '2099eee58cd39735bbcd938b495796ff447a17d3', (2560, 157) '38141182f6399a7f596d73107dcbd121501219a2', (3072, 133) -'b1819393b9f02f21401eb1435fb51f0c02c11bb0', (3584, 2291) +'fdfd9c386e1b07379506da59509512fcde3a2fc6', (3584, 2231) '3017c80cde2268206d17c30f1c6dd3a16d9867f9', (6144, 2191) -'24a109f42c3175c0badb2d40dc4b8b9deed5b60a', (8704, 4547) -'da89c3f252bff8cee1f46b4ffb11b508f5dafed7', (13824, 5048) -'c8fcd047770466d76018d8b9656c18b7a87a9dcf', (18944, 2255) -'e4f7a047269c444e33a89f094307767b97475ccc', (21504, 4392) -'f173c36f4792d6fb496e628514edccc5f937382b', (26112, 4548) -'5c272a0b426134732f42f67767096f8792c41ebc', (30720, 283) -'e8e1674ac83858d73f1a1e8262ea56438b147139', (31232, 294) -'933e076838f15c00e80794240ad2c1a0f75941d5', (31744, 542) -'d0e237933cdc902b96e9e944745c3eb9b1f12407', (32768, 283) -'f1150fae34eb9648bd121fe55558d1525bd0254b', (33280, 542) -'1b014d42608391bf3548202e097decd8166a2510', (34304, 283) -'e1735237514ffb84070e84fd11523c0cc93760be', (34816, 542) -'95e5e2c9dc4a106736c70b22cc5ed86aa0b04312', (35840, 283) -'48d6d474193f747fdcca28cba96092258198d4d7', (36352, 542) -'01df3b72b51a36445ba94a529916bf86fc307ac1', (37376, 3437) -'9e373617b4d40bb1ac3d8fadb323aae24957fd71', (40960, 128) -'cf605817e44b7ed8ce00f3ff58e7f21fac99e0c7', (41472, 128) -'64685e19a6bdd72a9e002093cf2e3c1393eeaa51', (41984, 128) -'dbf9f54b3da5ae9e3b946dcf7d195b8dc3ed1415', (42496, 128) -'78db392f8a442b9e63339f2454c81b5b7be7e974', (43008, 4641) -'57db20fbcc7e86f9effb33cdd00850d8b86258f7', (48128, 289) -'97bf39858b6395b0e9c6676143d777d912197c18', (48640, 548) -'7c7edd84e2dd7f7c7af6374720844a6c0bf5552d', (49664, 2286) -'8c3cbe09f920c842fce5bc9e4ee254ac559ada3b', (52224, 279) -'2091a190c8e94bc83d4066e5a5c1933629f4a06f', (52736, 1919) -'361444d87d654911b2fa853ae8c11830b7f3ec24', (54784, 11419) -'a45e28cb72572050138c19265926fc6e33a69f21', (66560, 175) -'b24d8ba91cd37366f094b9639ac62abf6959d061', (67072, 2197) -'36ab404d39145e7df0982bd9c49a75a7eefa855e', (69632, 4454) -'e05d79bb351a4beead644a3fa5c203a4fa7f131e', (74240, 4794) -'6f4e17cced160b889254f15c9a913e74ebeff880', (79360, 5745) -'29883aab3380795f9c6bf814ecc8f093e1f941ad', (85504, 1643) -'a68113985cf3c8e5944c5882521109e191c24adb', (87552, 9510) -'3d982549f39f7844cd3773fb5f43f4383e6f879b', (97280, 1470) -'9295fa73d6f8c5d6f425254f7f1ad0483effd57d', (98816, 1945) -'b5777fa652af861561772389790b026717a7aa10', (100864, 19953) -'60a96dac245341585a5d657ccdad64434baf23b2', (120832, 1634) -'ea48203d881e43bd9e027a19525ba88816c9a639', (122880, 14573) -'e5b5eaa6e92bdad0b061d1b5fde61e569a661a29', (137728, 2314) -'ef38300dd5c59e99d68f95a12a9beb32bdee32bf', (140288, 2350) -'730e04ba60759eb79c0db0059a55a0d188323533', (142848, 2279) -'053a7ba4b0940da18d0857ec4f6d8b527e485dd8', (145408, 2278) -'51f3414ef59ee27fde0cf69a2dd29984a3dd8b2b', (147968, 2413) -'c4331b7ebc4b21889adea89d15c489db74646963', (150528, 2457) -'e53962d6670e3c446a659b93e8ff5900f82bce76', (153088, 14372) -'88efb82c7a3e76703285c179dae795a5735a6b83', (167936, 1446) -'4f61708b4926f08aa49deef878665e0da9291b41', (169472, 1517) -'463f142f3d6eef90b2d44db8596cb300905b916a', (171008, 9933) +'51eede8148bd49256c917c8e5663247b87c976e9', (8704, 4271) +'84abeb41abe29286414f4376694521e76617a7cf', (13312, 4570) +'c8fcd047770466d76018d8b9656c18b7a87a9dcf', (17920, 2255) +'8304ac0af7a3e04c1ef9d9e34dba81abfe3ba211', (20480, 5219) +'26362f74d29264a83042aecd52b775fc13912631', (26112, 5368) +'e8e1674ac83858d73f1a1e8262ea56438b147139', (31744, 294) +'d0e237933cdc902b96e9e944745c3eb9b1f12407', (32256, 283) +'f1150fae34eb9648bd121fe55558d1525bd0254b', (32768, 542) +'5c272a0b426134732f42f67767096f8792c41ebc', (33792, 283) +'933e076838f15c00e80794240ad2c1a0f75941d5', (34304, 542) +'1b014d42608391bf3548202e097decd8166a2510', (35328, 283) +'e1735237514ffb84070e84fd11523c0cc93760be', (35840, 542) +'95e5e2c9dc4a106736c70b22cc5ed86aa0b04312', (36864, 283) +'48d6d474193f747fdcca28cba96092258198d4d7', (37376, 542) +'b24cdd82dc74eeccc80b3fa2c499d4c0a26f63ad', (38400, 3361) +'79b019d7c272dbdfc8264e8e42b2c88d7aa7c951', (41984, 2192) +'a349156be51c5a57fec0a191a86b0ac325182e2b', (44544, 5109) +'860566a0617883a0d15824f4d3d937711077a750', (49664, 5440) +'9e373617b4d40bb1ac3d8fadb323aae24957fd71', (55296, 128) +'cf605817e44b7ed8ce00f3ff58e7f21fac99e0c7', (55808, 128) +'dbf9f54b3da5ae9e3b946dcf7d195b8dc3ed1415', (56320, 128) +'64685e19a6bdd72a9e002093cf2e3c1393eeaa51', (56832, 128) +'b5e83f63387d282a57ed97e5ffd046924d1e0a02', (57344, 4365) +'57db20fbcc7e86f9effb33cdd00850d8b86258f7', (61952, 289) +'97bf39858b6395b0e9c6676143d777d912197c18', (62464, 548) +'3c3df2f48ea517ad935af2317bf4cf9c695f4bd3', (63488, 2160) +'8c3cbe09f920c842fce5bc9e4ee254ac559ada3b', (66048, 279) +'1ff794a0c436dac94abb52ba035199a77dc2c6df', (66560, 1822) +'65d5cd602532b66149a484a14ee76d36669a94a7', (68608, 10541) +'a45e28cb72572050138c19265926fc6e33a69f21', (79360, 175) +'b24d8ba91cd37366f094b9639ac62abf6959d061', (79872, 2197) +'eab8f6fef5b132782cc63fb2c52593538d423f08', (82432, 4495) +'d1026d4d409f2734806bfd7461598705f0f02e58', (87040, 4835) +'e5b5eaa6e92bdad0b061d1b5fde61e569a661a29', (92160, 2311) +'ef38300dd5c59e99d68f95a12a9beb32bdee32bf', (94720, 2351) +'730e04ba60759eb79c0db0059a55a0d188323533', (97280, 2279) +'053a7ba4b0940da18d0857ec4f6d8b527e485dd8', (99840, 2278) +'63d81777218235d6a415720bf8c4d9263ddff3e6', (102400, 2409) +'349da7d95a34054754a6ee3c991ccea907b11658', (104960, 2432) +'4db719dc04b938e6cc977f5870bb14b97241c0b4', (107520, 5742) +'f4f563f0b2610973f5ba75e3784d178bad1efe48', (119296, 1631) +'b75211be0f183bda2048a62d7c9be3412f14b264', (121344, 9495) +'c9775462bf698743415361acf2f970617074ec45', (132096, 1459) +'16fcc5fb6e93c9ef8b107620d8067fd19b491a29', (133632, 1807) +'f2707e7ba1b59a2aefb18e024762af77054b1522', (135680, 15435) +'ad585ee1806aae44c095f4b3e473e472bb8be141', (151552, 1622) +'ea48203d881e43bd9e027a19525ba88816c9a639', (153600, 14573) +'e53962d6670e3c446a659b93e8ff5900f82bce76', (168448, 14568) +'c6604890d3723b578cc9098cad1c56522a78df6f', (183296, 1822) diff --git a/src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.dat b/src/promptflow/tests/test_configs/node_recordings/executor_node_cache.shelve.dat index 7070ff55d0ea32b29bd234cc0bbe3ba5967aaf3a..cbdeebb63b441d9acbbcd5f40374973277fa5076 100644 GIT binary patch literal 185118 zcmeEv2YejIbvI?Io_g=n3YNr^1RN?0U`rHmAV3h62Y@_MfKGdN3+w@Rw>P`DD3sTh zY|Av=d+#lYOI+h#;$CArae8qQCvjqbDUQ>e;^h0kH@kPci#vdnNQo4WKj|<#J2N{o z@6F7cS0CE!h)vPtS(`R($`wm?S)AdBr^x4mk=62IbMgYbn=h4HI=8lzZ8L3%Gn3~c ztDsqyI8^H1e7_H+eRa)~Z$33gW!vIe5qz#j;i`i%9YYJRLA> zMKv`=Rdg+1nzQqYYFRm}tQN~LalY+{3!?hD+@5V|rnpd#B>w`{_Ul?vQHx5hn8{_) znqp)!wrMphWnDvSy1Jw(oyxMhYAIzy$!cm|S}(k7))iOlq!i!26z4pZn9))tt*GY9tK#xOszd*hm*Qs*?b|4@S}AZv zwE%&Wr~k?%RS;JtBluHLS5jqTQ7c;F>d{SSaGz4DId6$;X2rGgan3Gg#C6HbP&|$a z%4_AEQM6(ibgit3>uv6-VV4QvZpawaxm>KgTGCKPSIhj9%2aAb;>fHv6cIPx@vykb z5jRH}6H}>dE>ljWgyM)>qRFS=tGTRbO5TnHHJ3pTTDm*Z+sF6q8cOuFZ|hvvhm-xI zBG;i7%1Lc#zj&&|QQgR8fYGHKpR`jjS z5$)W!jwsfV0KN>Bu{bd6Sqlq+7LQ_;v`lU;mr<--*;WZ$SZ7)JN?X#*TzOS7=J?rL zd@*IWu}trpmE4@N>aOU#VJzl~^SnY-1;bJ^_sEleuIYm>h2HQB5fCH{7Y zf(3?^Y}om%lGc=hL7N3NQ8IJDp_nr66}0Sm>_TNru`Oy73t5RynTDOtYZlgenKB1$ zY!`RXr`2p0O9IR+`T(Bht@O`NNw5qvL)_yM6cZRvB)&h z=ZLsmkg}YX75zsTzbzMo#4foG)HzKI*gPMWmY+-Ms#y?&j@TX5`;X|pLPK(=u(TCh z&5J#b7!H>hvH1&2IUGCK=ftQZ#=>RBZQIhjbqs$Zs>k#@^=3@K-h@c#G)`46ecqa~ zVsg(9KmBt}uW{;4$xSQ0pk>NpI(ae83-48xZA$E8P|0HtlU1D8Ow1_`z5Qdn>TNnO zMKZLiEA>IJkA(}HG(6_%e^1Dbbyx) z9AjQ)YWOV--3R2Xs8M}ZPwDq#R?-QP;aTDL+2oa|>NXexzBVi795El|*4-kxBJFDW z@FpFok&EiUh=njP7Hu7n&WE!Lwhr(X!`X(d1EQsHwyOgQ)B0wN z!AgiSkAY88dCH{da1nO$B8(?^n204ihRoCT-$S+OKO*0l9&85zNW|f?Vdk@-{3tC? zdm{VfBcJx?@Z1(aNUWB1>}RxxiE{%d{do)!5PW$9J3F-(Sp%Z;lbi7ct89u3PHVVe z5+0X-b>LqG^X6F(>I~+yYJvIe0GQ9=En(M+ma*yZjm2WP4-ir7UyA2d;2ded`Eh}C z?T@Sj|C8+g_f8Dp_}~AA;-io4%0`z*zC_~wM}HevxD$GXJGkRONBq$4@vip8URC7V z63hGZdnd&F!0B{_djMCsJ}@(~-tA4^Tr9e7E#an<#f_}2SejO#i;i06yU1M5w7@Wt z*QT7j0Tm2nnOa_3!qtMVNB&ETLYxj$0LxqLZK~a~WJNs^h>t5cz%{5c-c2xU1rJr+|fon;dS6biws=YiMMY-6UyM zV%apw$th|Y?!l;yd!~Cm#E=^|HoEhl5;wM=oU%8z;hHzLowaUkFIaP9yI)V8vNyI# z+}SqczILnL)VQ(Lrpz9n+&c6hUBYaWxc^b4^m4gm^|ZDwFE7Umxr}L8#vGWmMxj+J zw%AtdGPY@B*=qG}3d{{&b3eQuEzN1=jGiikg$4F53j|Vg;8&#RTj9&%_aQcjRQ~N+ z0Yf}TJRUxzCct_$i6gmRep_j8SH>rs6=I&)U{XOQa6576E#(=?sMqC6V|5ZrC4X`; zSE3`KpyrB-+f(mlpgH&R{LY_N*7@g^t5<{@19P>Yaff=-xHx&^#Jf>Vt2|=Z$e}@# zG^H{ZZ5TYispPbS9Dt|j>5nG?E!0pAW*>rzfrv}}$pZ^-XA)n#N$ z-o0emPGDBb^eQ)>!+EQKliaK<5i=YG%Z8oN@scK=nvE;-YC$$NxmpB+xuBZm5?BOu zs2iAE2{07(I;&>Dgtv0(T%NejbC4N83_@*1Fdu`}!6O44Xli7>nz?q|;A~sy7fCvD zrba{!wdH-RPt7daC1ecr?xhAHjsoH1iHTHYB97cXd)1pMLNo%++T01#KqmEZQa4Jd zNS~?Q-iTU)EI>)yt3)=<6L%VAxfb1@^3MDG(J{BnLt!oQj@khr$R~-i6qm;3jXv%DoBMV z3pCYz)gDY%Mv9l%;FhtZs){)1o+|PPir7NSSmm@@LQircl|dD&WCG$0 zWf~%e0w{3Q!(y-G zha}U)P==-ezBL&@nM2sfP`&ypj``J0$}%!GO*V_(@LcWR2raWf&XktX>7XmvMG0JP zR~c2!MXg-QOKivXJISjORrlpA$WI{2wzE0jqax$D4w>$+|6>UaSdZHfDh-&Lrr=mF z<_#4&*a@mLy(??uR))2Va)Y_KvXY@%co+fh7D*0=^fYQ_7J+dPoVlnOX>fcWAF}SK zzfy<(BmVD+;{Uw}ZBIyL49hNn8ps{Oc|_FCqP7aT012f@(u`|9s2X+NR7*N<9jxBL z1+yA9r#zR_R4fLsVhrm@DT1=WJswq7LE+G%mhx=ogrHG+j}4C)0z`<`(>M8Zke^d{ z-@}Iy@EQLaL?{#bn281vS|u?WL?}^#lHO&qq(OulL@-w|q(Ou>h|mTRda@9qxDyiD zvD#BlR`<=<)4w;cc0)tm^3keW4jKFBO}%enzFpJuLrdl9m5#xszRcdv%;_YndoN^l z!!BLhQ@Q=FyBzv8Ka1Ww5s4arGm`BHmZ9t7fC$-u( zHC(wQ_mF^6js!$M_Xb^~`#6aTaRY_Uk>#t*tl|obteMN8BUVG|$C|#Ugw*dHpF36c zH1Dq^^&9=(88yUyqb*NaBlkO(a zLM{Ulpsp5+TE1C`LO8(X=%o-r;Fv@y8Uek3jtl3Q#OmwKKIINcyZAB%+ z8LKBUoq$!5CxQigcQrO|81s3J1+c_h)mrK7YIT`nJ9F8)akRy(5^NvlR$~P))H4u~ zR7VP%Ci#vvX%yH1!N7t_@i|yBvKbX51z6n>tI%wtbt(5NU}5Oi%;4WL#u{cU)Ao;(|d3H^f9}i5Yt? z*O=STRh;9>5?Fy9VBFbZ{^9SUYX^Qd?hPlKDOLV}-Y^g$rXM%K}mcaW|VctRn5y`MTDvV&TW~Sz~ zBII-YA;?{68hE`)D>#z9$0Fm?QxnruJ&^~SNY!fIFjt#;lqRgIre>uH6dnYH8I7{~ zfWl1|mRj zqJ9w`24)WY-;TD9PM#LL0OZK5!=rB@l7Z$NO(&bgWL5!s5UFedRqaKkRYGuI3+_ij zoXd8wSO9nl0Z^w{O+@e#{POCuRd4#;T`UX&O#K=NsOCy;DQ1}St!mn8?dWXljJ0)b z+uk0UX;%tF<`07tQ|>ggiKd)S7~zr4R256H|Ke7GX<<7puO1))lftaG)}RKc<(BA) z`07S6zlvc=^C%1QU3dLMKnNo(7-6!4B9$iUJFl%MOHwukD?}Jk(H#I=rJLvKAn;AV zwAoC`-D#@L%t3iC4H3SaUaMkymN889jMM^MYb6P-BJv^5rb`nx1KN}zb5q=z888SB zsTay9*}h5?0D6>QOqR=FWR;~CQ=}+>wF$7_kQxFhT88GBEF0-oLxMDn3p-2IT8t)v z-nfG$yIJ1%ym_t|$FU$DNK~(v^)Sdg5yL3tKML03QaVPsUe2l58q}g1GmX{|9^q)j zDTQe%lJzm4>d4cxumtEb$xDtAE3fX&ELNpSOMhbGI=HM{^IXAnlT+mJl49&2Dtf0}uNay7~5JJgF)}GSq89#9A#x6@s44Yi0{B)p^{cTPz)FVlC`tLd~}@Wp5N)ySwJn3z_YD zo4!pyzRKf22q=$(syx119T7w!-iVYRJ@iUw(($O2Ng5TnDe#>Ew#P2gnP#21 zjX!qYdFMqU_@DoyKj)nXRZLuXhq6Rk6mnpPL5q&^Ycy6*bDZ+gOwl3&ldc=Pit}JE z=#hFAyteDTr+nOJnJwi=J57)BV4L%pKGKVJz(r8}?nCN)XXl0= z@wc= z!G!EpB<(?@!CB&%a%1$Uj}1_AD$n9+$Ew zf*x#MFrz#g9&AXX5Js&SRPJDck@xKKl&Gu4pS^=WK4M78VKBef1k($`P&Lv^3cFB& zc2oGY-dd62}!ctHOB>_{2~j&l`m_3dIkRhHXNV_kO7B7NIV%7#YYF z!P>||Ggbvd43-GcEG(`@cH6~yXcI)BAB?&~WR8eJLzby(`N$Atn5&UJDsCT<5qm`| zV1CSbsL!qBGDc)fql*@mw~$^|4r0Ej@|a=5iB)96;HL@b-`n%he4oVXQ^CFLS5mRIsEoF^@_Xrq*BjTc= zhX?EZ^^8FCxkXz46(vi+8dd`G9`5mc86(1L8KYF>EwlQ@!wtp>mjMX=*n0i&-W}bl zq|y`Q_n<5J1o6VH!wGbYW2H}M<&eGJoG z`3CQE)4a(w^v6Mt9nXJt=)Z>kck)Ly^uOI5@>u>f=tysiXwZ?~On{C%$}O}(NAk_8 zK}R;|$j3|@RaamA)Z;?fH0a1DoQ`a$fIluCce^JKuI^sZI`;1#90=88dFp;68v| zz$!7U;=rxZ*GT~)M()(s<*t&qHqR#%)P&q&y9{N|#egSKuh&y3q8Q|10{3sJNk%AVwa(JqSPvpIA&#V*tym!me#*g%_wrz`~vwJATdx zadpAqVE0_^J%5=rMsV$}h^k|eF29JGZ~uWwB^`KD5@VBUO<875j4HdJCIf}_>!7w+ zf{O-dhrzW~WGm*_k1v>0DB}w^(Ecn)a^{ntgT~0-jBk%f$#xI6`P+mn1%y zpgKe>9I$tM-wXC#uGUzj8?)oCygFY1^9cH!;4l)jX=b2*;5okzb4gvD8|V|b^AFGV zZ84Hr5dS9xTvFev^jxxLy=sz^#rlC#tBXx4$jgAo01Ay}9aa{)fSm$e2=66fH1Iwy z^*~)l6$YH6)yFOlTo$j7U&WK`@wpmu=##}!8ysuvF$m)8y4Jq`RFy+hoCEUePYc`U zTYGf2rp?CeT0!)wZL^~azAJY5=W&mVH6V{S%*nhYeEL^1N_SLZesB1xV`q+OQ7yZNajYsNplGf!`HF$Q! zB=hrW8az9q^Vag70!mK}o}HhE*5KJa*?4vh>nJyf)=6(2weR4_p;f)l>@-()4Yn`m zd*|8k}uZ)@vYYEg*I4Z=Xa7)2&nl+vU48&={yGt=ZF zWhSF9&n#OrQr<$bno}u#!9QFuUh%hz@LzToGPR`9y8>h?}NN-@^OH9Ekro2fes*e z|BeR!Cl$~hYY5u&;E&VWd%V9-G$uX{YoM|3c^KdL>z{$6S^t&&zy0{{|Luy?NMEZYO!hH7|#Vuu+7{YrL0zcR=s)3rA=l_W9 zB3aVJwrHiiJrCiyEbCEIkMt}1POM2>`|QE^unjt zyp6~L^`b946&>2owwTga_c9`mLpY?k&aIR_7$q9Top8hJh>J;g|2$Nncopy=RV<53 z^hojnHHqAEsz6)Rf{MqIvc*$Z1*9cwQ)YG)R1LZ01Fw%3Xjv>HQuS{;l z9dQ-=HBL?J%MTDe6IErOWTihwGwYB8=DC7H%xNdOgkLUQG zF9zH7gFAnQa`=}74}Vip+%SAbl4uhdsY2X%BzXy*U?&K($BdSO?{zg_UKKYDBA5Rq zFU21OQ~+ueGpm&XH&+YLR1*FOB}p~JEevaKt}W3tE1nv4#I4clq~BI|(r@Q+!J60$ z3L&;6??S5-!k$bzT@=7PNPL42LeKBHhX5j)L}-vr6bH9J=Af3i!x4ANuTu~dn6}dl z7#zMpG|R%U6QyY1nk8Bs5sNaqR2pn`M4PXEyElVSrWPG*I^3DO6U|RiXW11uj9b}p z8Vt!}^ROaD=nnRVM{zX}d8Jo$**r6ZA!4f|w)sA_-T$c_Tudw41<^e#dZI~qTiTR? z&;6WjiKp>6s^}%2uGuyZgJ1`roLO=AthgsQu$`(6{JYl&ncn1eXq1*iF@^XN-cn0> zOF;Ck8E-s!BdQR9FtV{0ib~-@r&6mw43b@r81RjA&<~Q`VUP?tVowMp!;Tp7)gSfG z)7Y9Wjvp&XCTwmH{YM~VvDXm^-^V8XADgNIWqMZZ3j$?-7$`}(ZvFUuAbBsQkI==p zn#ru5Lu+7R!OeRSUgv=RFo$PrVp<5a;^2$kwTO<1gA&+44uYE{?sLS9ug|lLEEJt$ z9xL_!H8Ye--sJWIEu`@^_}HU%$R%e5iVuV_N}Uzy5MVO?iOVv&Rr;g>B{en*^>&9; z1`$cboFnF|n}c3=bI4gdp9OU#RW=q8CPFNbl_?#(DLM+o;;hKaNBV#$Brn4&IOIdr z3_dJl9P&mJMG0Owgha4DVPq)ggqn+Sh@==S{>%IW-3YHHyj`m0YC{oGy5nIX9AV1Q zr&4gQP)?btp|md{!#3tMMOyeyNpb9wkv zwIaxfh?mcbS48zI^cTV!_>~Fqs^k^H${aJN3}qYf>M=XbSWap-ygV%NnlW3)Cts_- zOh-en!yM{!`nhQ8^$GC?ooev=Hzuzle1rc0B9frIgToK-mwJeAa>Sc0*}z+(`m=OL ze;5tCH6h-{4X6_RfGzO!Al|;`<#iPN-oeY;Jv-l-yx2u>imT-=GVv~+H5pSAy(nVC z!SF!zy?cx?58u!yiz~K@8MY1YjB#%N5roH(7)=4Ut>VOH_CKL^{d{7@V?>m zYFM4WfB1jbdO!cb=s9Qby#2bImJdet_v;_f--l`WP(pmTIuWYa%p{hc$1Dv|AgFxu?cA6laBb5+%P0?Fw>tt!t2k1XJ2+n@EN&I)j3Uk z)@Ecz9L~8Ef|V4+=N$3*sQ&3Ay06d|!zv+lChD&@&9t=x4_=*9EC%){6 zuY}8d)wXTb#g4B<_4nwu{&v`}FYE8bWPCj#zQL2hhlboUQ%p#GGf9eT!L3nz%Z?%Q z$^5U*{f}-qa~k4lrKA^l1<#%r_%-3CwjEUAYhOtlSUGDwA+uM4MO3WbY^(iD>h*GqUAOLdzKN$8tzhdW)-|F36uxnbOK2 zGz=-28|c>!{B}yWjBcUbaJaIneD5KpUtPT=GLfUdbeqH`fW3MZu6<#~L%!h29uWb+ z@M=)T!J>j7GjO3x=9WAk+PLsy)qny4A>ul=B^NKCWiw^8X4xh9b;eMr4lcVCfC=Gm zTz@hg0cugxN(vqB@JEy*?B@s1Ju=8DszuI=G6=Snr`UU57Dc*45I6WK;!nyDc)s`Y zSmn1Ae39Jy!r>El*qw~Y#axLh!!=HkJVnu_EMHY8raJl_cNkd>y`^A&MTEb?@cD|5 zR%Co584-;~h&dh*wBgH>A z$~{WP!VmYTr;4lqvYesaTE3(_L+Q;fk=O7nuvUd5CVtn8mgP|!naY*nfxH)9y$v(c znWUlyZj`YSyy{MTk_aibo84qW{hdH5@q=O?acEL3`B17gh zGtxgk6d6y%hx*-DDt{jy#v4*zg1gkMxMJiPCu3 zlT(Y!T248@HR8HmT(wbw1&OyTToRdGkev%kZ2=q{1S!Vcng0pV986`bxFqA20y42}BIjO#V=_Bh@broq=G zEIzt9Qj9bpJ_is);6dK;U0k9VeY6?izC+Oz-Iv@KY^&~Z01y3@;{a)P?ncqhu~T@* zLQENlU-SYu=lLRAHWawdN8ACd+A?8f588L%6*-r$euKTllLz_AoMFQ^ zY*fvL);@2flDL%}1rw=^&1;G#AA1@FBqe|Fa@?543}V57$)_NufL`e{J|r0jSW7YN zmvnV^yW3Lj6&&Lu!a+KRz=5kgHc*f7u!k*Pj;tlacR?kuoxYm(pnp!ne|6};6UqO7 z5vE}x4|0UgF>Wy6%=f89O8M05qUgb2F8d0nN&L!4yl^O&WF|R!(JdRxm%>LmH0!O5OJvxqf(p?zTpJ{zV(IRTL=8VH^@+$f1+d> zWN3p7ZIGc2GE`}hp$#(hlqEwq^#A^YPX5PCUictLmBb}s@$;oY@$+SM#Lt&krOUO& z&sS6nRK(9$O7ZhmVHwfYK^f7>?mlAI=>B5o;O@*sStRxxSlQPHC&u#=hS4^6;@wA( zT>ND5|Nc_|w(9>qc*}LKt<5-8-8(C>o#dsp*?059#cJ&(7>?i9+)4wLs#j8q@m>3- z2;LW6KkMA*s?OiT%`|jR6D>qrX)G}4hoB`i5L2?z=r;_Bkki4<&g5HXJd0 zz7G|^EAd+4^D*3qjbT^NRC25iF0R)QPqPb1cK=>Mx(X{M{F!=F>@hj$J_%k8m`l*% zf;)I%tGALc4;7XNO_AH5>h!M%bvTgs0ie42!u?~IZy~4W9^ZsGSzrlfi3wD}UWOPW zx}VwdSOEq1^Zj-9f^a|C?L1wvfqa%mdPooi&+~k_%fZvVt6-tub2k8enFytfOhjSYA_AvBMW;xCZH$O^zZ$# z$P_*r+U1sW5QZTvN}vUFRz}iT*3u+1W4>agNy+2{`G&8j;dZ7T!*K~t!0C%nl7LW{ zWLh}M(U?1WR*0sDCU^9!O`zKlE(N_IA2&D@ns_eAWiV!g|76sx2G2Q^c4vf=?woM4 zf1rt(t4%a9O>)c|_CTXBHV|{H?ZLFkE{mr~zt;{y#p=Rjs?qhn6^ zV22(XAu?#EGR}X9X5eHA8KB1iYZ;vgY55rBGO{oP{8cG8Vav7zRS6312 zy^L_a9H57^aPX3(|6D+Vfl6o`xCV=>WRyrXf*Y#_`Y9P%(h!$jf+_*gCDgA86S!m- z(3f;Yr5VC}M%87Vq(-h-N$PW={j4Vfq~6LeV^nh#!btW;%`hRaW?P_^O>!j+glB?e zRF&95B;Lic%L46CoO`=wrl52W^)P-1dYq<#_Z8hBF%-%DW0CRcsfp>Sp2&mM71UE% zDixGQ7Go+@+Tm=wNAc8NmY0`f2%ucH(;8`rwL%w?9CWu%$5Sg?lY{N!`#L7J*#{49 z9he;Lo+>X#{A-{`85RDgp2k0ua4`aztA!na!)qb-h&kwk1CZ8h*}c z$>6fo@N-^NMoBbZ7lXV*pN=y>3i;O`8K?wSvzm?(u0zcVTLZ#T#!RC%v|@18tNA3p*s;0rhE1t=o>E_YRvl>Lh*T25iM4th_G(4 z^^kHZXbd7wBprms24sP%Cf&slvdul6dqP7tS8_`+!<=tb(^jibQ^`M3JxYU572;qt z_*B^03ELWcssN9%!KXUK`BW8(5SE>5Z4fUW-1({3)4w;IbV8uvhqz19PUxhU0Zr(` zcIW(jX3uJJaB_O@?m;m*xOb%2KCN7ccY)~dQ}6 zUh440HO!3eAKhNlkN7~?k9dQXilu$Z{;R|P-HZX{vMXZq@L9g2=FC~)KC(&b*=#Zu z^7VaAz>eo!)F(7%%IEC^AhpCBA# z(Asbf$w~XBqQt{e+5#c3#%>*0m`s>gqqZJ3W6LgHaOpQayq}nz$T$!yNSd>E& zjoBoFTW$r4I$GW+N!1c4ljSX6WuAO0P7WO~?eqn7#ELb7!k!{QVTVL{U~K!+%D{rw zxwvv*EScNgxo2geyKCaaTlJ8I6nlQVi}@1LJymnq^IJ>M^BcB`jhy0bks(_^Jzy9 zg#Cg+S9*6?`*|qf7Yu6C!{HJmA-`bIp&kpD8MkdqXASC!s2VbsCo%oek^7&q6Q${!>;jp0wg`g;qR5!(t3pLX;V{YdBDL zEnja-r=>8W4*!>oCv!y{(d}Zh^xOxx8!4i!*7x#u6v1C#h^C={4wv6>spGZ!IC#Ks zM1iQqhddhipKK8Gv!u_O6=zEc1&bulsU?yOyB55lMhMW8023dFHPDCxQELsH&Utm# z|B2-PpCbOB$g45wV)ZESg_t)s^ceBYlT=yo)bbdyXSi?bz`)l1yN6f0Ck~b}2l}j) z-8(V~U7SvL%WXKJs(Sbm|NKlT;<&iZ(v&8C-6YM4z*m7|Q+SQg;3OU#DH!B1bIJ86 zOAh&9%D_GqnS)414CJWL=PDH>87u+8-tq!z5Vyy*D^jc+SsyUZW)4PbuvSNa1h{OI zd>?S`!CHccTK+6-kI3AS{1Cz+t!tv-KETBx^$#{3EzCaRHhd$2zXRAZkQ-NN^eHW) zR5&ECN?=yOUdlv36%$(NaLeEuQ0yeqmuy_I*S}(a>6E=<@2sUSIow?1hCK}PZy1(8 zAQ=y8RDaT3u=V|oEB2FsaI8cB1@8aEb3HCs|L370@9NJ|nt0F5G{t_I$>_^7%hn7; zBj5|n!OA~Xk@L)0X2$nohGZ@l|01RdT%6BaGgQHvsdd4xnHejsHr&vM#wU5a>UJ{cs~$q+)|16)3heu&z}9-zV6}7;$m;#*m%*34;6P6r$(%W zRrPeD%twGj`*pYx&q=3IY1j@IVZ{rBdTCQn-oRFOMk0NPvPb6dz)pBw%V#TrBT5>4 zaOL2hAdQXemXnBHJy(z5NI#85Le2V}n1H$>q3@ou^y;NG>D6m$(W`fa=+#r(x~B<_ zlBUT`QbQnweXG{Lqd5O5sAd+9+E-Hu=#n>9Np%HMAPPe2hD);qvEdOH^BgG%HW8jl zoGT*>uEO0+L7XQ;a>>XsAif$pzzrQ>=>EW=49-Zzek8pkt+-&20#QQ;*j0*Z_(p2@ zMj{teVaGNN-$4Hqx$y#-<_J?Kv>u5oC-)Vxgz>W=VdW&Q12C<<%v>eq4Y*pyuLimpvWe%FS zrCHhHQvXz73Ru}YF$AS_?}orTFgr-Y<_mAH@Nt+mu)9(8C2a-%8L=79DR8JLU0RZu zlD5cdeb=Wc<-!eGS=p)-az*HjgKU)SK4n=2a|IE`AhC3#fR+g<<`JYaw#5NAi@or2 zbk`=n0ehY2L4#{WjBSp!eXD-UBjPqzbfdtF8l5KM_T&HxOnJ{rv|ykcI8o?pB%I`a z-O+o8;3zg(#HdqE54B3PxrTVS$Z2c-J5Y z$bqKP-HwO=2*-(@q)7RRLmI+CymB{0qs2`0P8wRXa_60kQ1+kakcYCL0j@i^S74)O z)y^5MxC9RT+)O@~p0N;0w55bupwM?SQhR!a`(wF(d>!f7zLk5jj7VKL5V;?whFEgN z6Vwq8qeyO`mS@PAzzd3Aot|ymI_3Ou9BA$ov^fy+TG*Po+N12HKM2gp4uS9HKg|_T zKI$nVzrX}a;D~RA+B@3XxHAZfSC(*Mx2bHJf&N(Karq3`J?NaUZtU36&Al)+{w8;X zLNcGQ4|ea6!$#!p>KE_esGtZ@A6Sk(%9D62iij=DFY(kDL^MNgWmh5zSDzsw?f_H% zPDk7oWo>1c-;`|&0rCg!K#i5p5 zR>aq4^~Z13=DNGucWmo!$zhn zvfP5ry$FR8v)nSNWo-5|H5k7Z)`s*FdxiVb@?P$aHy6~E7Ho=lceZcs+}76C_B8Cl znY^9V5Ja{gu0&xv^)ynQq2Q}x=&;xmziOq$n+Tf07U?nB62o=hjKt3=8deceAjIfl zF&006rKMnD{1nMVj0Ybl;^*w5<8gXY>^&?J8XsaQIOjI#2oaNv5-K7r=LB2?GZuQQ zQA}5`P_9m~4~Vqi5lNSZ(7=qziUWL3PK-}ZiG%FA2cAg9eQs6UMI&Mc)n*-WKP%rN zns*Lg;P5L5(Vmh8V-(~YvJp#*Owcb7A2DYl;sJ@X>||M}`c=sraVF1~F#FgPTQu8> zxu!enA;czyAx}Z1$CBGnsI^tTX|2)>R%@6~NnV=Et-b?7WRf@0sb9*qkQNjs^loyH z+|starLDaMaDy}XWsw~#3+-VsXQlNPomSVpBlM__HI>7f+Ko+IEX2>$>F;9v#`U|K zKP(FIi+jP$!Kik5a477Iyq> z`5CbkKU=mgmTN56mBV5+w8{^KR{4W9sy*YdaN-e?*SGY-+jdzzGae!C9W4huJu7}~ zFTrRW#AfeM>jWYgK@+V#*4`0o6Av90563S_woD@KOc9q{t7Qbf?Zva>m#nm4uXFSA zl=qzY*(I(ko_kn462IPGX+lyYE&C+s#Pj0U`|G;|iw9Y8IDWSK{pTMRN8%Uxn;M@K zFNj~{uWeZ3h4FJ-D@XC7!{Wuk9`_<_w|Ggg#}vw2yfl73^xQPFM=fNxb%~c97B7!q z?*CT8Mi`-jCSDQ0-2Xw?RdV(#UEbXdGOeyM+0z1C_mBi<6f)ITVdGv69NYYv{{HSxB?;_Woe z*uMx@B&xh)P0l;xmsE8>TH9i6v3BvU!{XiXt5A`bev6vJ^7Pb0#Cz(#`IY#KA8bmK zkMtB8*eev^D1Cv3w0rCFB;sfz>Xg7m8sQC42@`Le>A^M@i;=^l>?T@TEwm%v_ zv!lCftN7Sq@f#Y1X_aHdJ=Mg=`yPgmw+EX%X%J@bz6UW`d7fZt6it)smZ!;u{>Nj9 z|3T-d)iYB(aj`#Uigcwt0l`0-oMxpuIkYB1Q&Z0m%uF%hz?`Bz#Go$&HSGJpGuGC%ZF_ro+C#Dn>57L%_+Zb$KZI7KfF71BwS~$P zVl?4YM@SJCRd{j>L@}{o9Kc%!IgkL)3~?Hfi;ML`%2DIw+6AQBzC&8KxjX zQRAZV3GjC=0CS@V3a`TB`J{A(qJt+0k(v0^toU^DG8D>LDful?4Pg#wK-yGgFylKz9KR%td_}3n6Vxd!04}9eF#jI(q$cd)gy<#-= zG!c1zQc0YeAaVLKu1BAfOjtIU_)79?nCd6V;JymI(w zw43HM;-L|l88tAnTRV0R*4%R(v#pCD^>w^G9^d|a0A2#>83}- zDqee?B>{$I<Y^-HBkdAdl^;P*p(M4$j~y+!VoQ7FQO>Ntd{(m-scCOo zsi^##r7$p$`D-2neb*6+cC|9H!<{xX|wDSiAnKdDhI!gfG42OLhe zqLhI`yNCw}&Y-NtpJdS*RJ#>d>_&C*O}eh75%m>#z&WGfV$vJ>$9S*wVk-QLZ7^@7 z)jVETGL_D4Tk$*vCMC5IHyE#xs-pFzZ9)J{Ehp2)3jXwK;5p#$BwQ2ZmA+~ZCMzSw zOV?3mHBo7kcNNs{9m3DJUCx7*NvWdNZ$fU3WVL%<$M6y=55af4vh$QNxd@In{?baJ z>FtLcl0w}oYo6sg=ZhWHBOG&wM6y52;$XsfvoC>W3b_^5euXT(yo$`YhS0ckIpifY zxKBvuEM3bYA9C=l2Beb6p<1+Z35r;eB%Gtw5_*yosSF|lEj9wnQl|4D@j>mQ9u|8g zACJ^MTKyW$H{KD0*h4Qbn;H2u@Tq+$L`%&@iAushq4B(7Q@5*A?1}G@*}q!EPJ_iR zv7%ZA&pbXKx>aAwlVk#NSMpGSX1pGTTNx^55p>(6*<6D=gjVeN6o=C7%Fqsc$ci+qua74Q_n6wML;syf`|nf4|I?p?@FebM z4w%8F_;lDwCVzX$FpVFN;u%bbJ68-8UR~zJ~L8Nkn{A`e)RSK>_ezJkxNkD#X z=*sa2o&1kEpDb+=mkjRoyvV>c-=?CtbodNu-_E)*;<6(wItdGQ#N~q?b(XvoDJa-L zi0zXWi7ToFh__DC9C2lmDv7I-5&Wr&k;K)fm@CKZn6=tJJ$OLdw{`!Xu-7iHic=v1#qXW6?uL%kayK;ky)$a~8yZbEB2ak7i{gohK=B0d ze|`z7<}vDjgY8Hb;INGCiJUkc@CYd?oB$Q@I=&5Wf)YJ_5f+)!FiwF18iX_uq|iyf zq~>jYs3_((DNyMyQ@k$MR=SDjg7jo?7V;mT`v+HPl(HeCnuEnMC;JDQm?PgrT69e@ z9`lAhz@ZDdQAS(agK3l9mH5>L@fkXfnn+a`AE>9_9yuQB?GOU3ki$I|)i$)-iT!60?a=>;UFC8K2LVF^m`(N8DL{F$ zBk^TD2XO>sY4F5a)eiOq2mFC2TDv{sDz}GSq{yXGL22mHF{U~puPDc=(H=s@(_W#y z&h-1XB|iwT88n3r|Yg0;9*LvKBVM>va*T5Y`!a`Tyr1J{q) zoCnlq)dzTv#g1E4fbP6UmVL)pvqyW7Q@lr`$lMb=QfUJ#iRFkLn>6%epztP~S zd7I%A!c!yZ-Kp}g4*xIU+++56n&5y-oGix%nS6V)oi zcM-dxYP}0)0>wU%&i~Y6OrdBXx(d#N)cGdPM6fRTx&W&$5?AvXFf3pU(xXgUP+`rp zY-3pm2~Dm9i|_xYtKVJRgd9X50&m<`=s-!mhpkT7X;Y=xOrg25!3I!>S$-(n#vHx$@Z*sR)r}uWAA>6*S6|rS_6I++&jd@5r)0T)z%U0JURNS#~CsJMnr6#727Z@{cOZJ*`5$Pk`(0B zSGfe+1&CHqvwO@=+d4kble~(6?U`wzHO&O1B$fCyM?75~3jnz$?smjI63ZZ7KslHI z?>xdlv!IT^lGl4BaMd}u_Op3D$N^;vHt7Y?=ZJVz-+4s$73!DhZ)q#=&MkI1Vjx^% z(B>~J<=}4!A_=kE5kuiJdu-d%yL1eHII3^a@6d0<1dJras7~WlB|fvC(5x8S^VQG) zT+<^gt>nGJ+bYJTGu`w8#4}+PglJ+i zgsPSLDSpqET=FtEEfI4Hh&k zCue0Qia;p`^#hod*@U>CXNBLV*xVcI4Pn_Zo&fM4m=&rc(ot^REh3j{W_Xhh)W}A4 zV1yP1#+W?#0gM} zH#g`+Y;5><-08p9g8pN->ZF-Y(K*0#BlTps4J?qiKrrW^YD9(-qXwd0q)pXajS=gQw_?c@q5T$4dD#g8bG67L5$(;A z2gM~l;uGAzDvR&d2feiG)YRA2m=k&6fd@z&AG!5G>J9>YaMTSNkA|NdcK$U3v5Y)I zJMkCYA#*bkaNOKM#5B_5!_-8n?K|*-z9R>MFTs-l7<|DIK?e~7k_~yBv|AsPDd-U} zk1Q}Qk2Ti0eQS58a;LIw`_9T>s(F-Evtv!wGEJclc5H3mvAwgMt9o7W@_ZA^4cs4X zZ{2!F@WXfBS;<`I({8Eo$9Kd!;E%eqeOr512Rtjc?+A2b?OR`mm;)1eT)2VE)2M({ zTq^mGDdzcIHY+ao@%*l+$Md@~!1KE*#4V`JT?>+YSA$`2jU%oN@%*lH#Pt=P-wic* zerB>Q**m|zu+^G4WEo?6@Alq9%i~=Iabtkzchju6`KWp&d439dbBiOIqB=V8)LJ~h zTdO?3+k8B~+rvD+EkT}NbmLBJ#Ph4f-JrgK^LK8t1KT11$ZKCBPTiHluO*&}mNopn zSPlMO>l*%ETYdgsyCXW*+|<^Fn75xXsN`w3p zpm5eD|MvIyC9^}j_NAusJ{JZl`AWnVqk6t&(zfGGe;$0tQ z_e7C@L;$W!{(Y^Ec=zNd|1Pgd{(ZX^`S-&o75R4qNWXCqfHyVBzjbK2NAv2q(|`Ze zkpDLH|MD*HHSz@O{~aIIt$=Eu;_*GZ8d`=`b;XEyltSkHwHhrjovk{mxtH4KkC{de8whW=l}{^RkZ|JK+4dt6nwYSW4BZ5<6#F<_tkXh}tJ zU^O{9XCE{dx(Bv(k7)yiE-|=2zWa0{6)6JJ(UXdVdkwPiWFZSTR46=k$-)b3l7(Na zMHYVdNktZ(>I#K*=)Yr)|KNyoeCEODO4rC7H&~n(Fc6L;Z@>;l2EP=lN>wPn5Sj5- ztm0zuj;F4%y}Y36f0?=_oiblo&6HM~7X_U%U;O;A2jxqKFOm9Jtd4c*thmglj&*rG zb*w7_>R4CKimQ%B?o@upS8l;01^BFC zgw|AF)##}(##~1itbG>Eo2VtcsE4%RnWSJ|pNq-@nQ3*{(iq}-${ z`Yrlq=%qY8A?~iPa&-?>k#qw6PDk9!nm)a#zD5aea%xmpJ9p)+{=J9#)P1F)zT)7( zfo-{6lcGKqy1i*t)MtP3KDs~@ZTm3SE>kt~;gO;qLW6-6eID(a>E!OD1jgQ$nFmFQd)-juV^>funL?R(3b($;LX23Lf zN@`h2E5qrqa^ODM+Wz(MG3kf{mi*kos6M6d)~5lu`x0V?zp3iVp8xy;%s)5t(G@WN zoYimP6%w-fgrzeUI*cZld2sqfUl4@!3lri+RYFsR>{5O1ml>Nl?k z>bE%Jtv*n{%@J=8f%+XGP`|SZ>UV`f{ccCRC#t{Wi0&)&D*;gdsv~|aT;jbUP`}R+ z?+=&xKn2vlUIq0B6XHV~g8IYjg8CyKs6Q&F@?$|z|3*T5yb9`1IO3BGlusQas6S1h z{tScqvyS*2xAA!o)L(GKZ*tBT3Dgj-Zc>I2Gdr-Rzbt$A6$bQI6XI*N0R8p#0R0U| zeA5T$Z#m-IAwYj81nA$Y0{XjQK!48>-;e6wIimXt{dNG*zvGA>giHKx2++Uhh~E#F z`GX3e|F8<^KT3!{-Vo4#vM!+i)C2UN$*KHd5YT^~5Pwkx^j|vSM+}m`Iz~YMH39l> z7|=g<#NToof9C=ECyw|j=lnkcG1x)Q^GtGzZ(JHJc|mgb9$R+QvrE^o99rP&JFWiqymUwo`;-- z8KDv$IcJ`aC&#>i%Uk?>lle|ZH^u4JdD~L_zEy$`Ml-Y!*5Kfs-MV@2cir?r0H?R<_a~sz=8{d(h zLCo8^!j`%fqFjMG<~a&6@8BwT)~#|ERdGoOvzdx{^rG2os9E1n#48700q2`S#-}VUnY&4Uz8v6)L59;3aB{camPDs3aIlp>^_v)3Lh>QiX?N!K?LwGe(kC?B) zZ^C>nv(0uiED8@w^`1y#enX^NskGms#^oNLGRJW;`X#x8Qd}puCj| ztp}91Q2`eyZ>KZ^3$G9vI7+4{-QTHh-MZKOIJF1d`vmQ6B746!>>N;z4{y{BFxmT zc%`(=&m%jCj$fc09@TGBiZ;J5B9Sn^M2`|9{rn#D%gA333BQ8(j`>ym`Zm9>apu=K zGqCx616iTX@0-Y~0{UBc3U7YjMxJAS2fxt;ZeSr;=eM|yZ}a;uSNLAt3g71nfz9u? zxytXd ze@Z1P2>54sa?BrcSzybbbK;l~@Gq!6AmCrpUqZkiA>o*R#Vw)9zvhHQz`x;FKlWbz zEhi*v5l)-Tzr%A7^L|1(Je;3WiZJj0A(1fuo*rvp-ajCJJ86UT&k5o!;ZcRu|k%)0;yT$s5fGp1gz&I};m z4af>1-;KzsBHvAT3M1dm$a72uztIJ5U?EuN7Ovw%z9z2l)VdXJdUbo5? zs^TGEl!{f5?+!dA%scVBA@bcth1Ns9W-8z!UkjxfR57H2$k&RTgxN+VD#+K4C&%pI zvcQy1P8<{Rby0gjzOD3^kZ&6jxH5A~XmST9B=U9hs~+#w(>USdu{<3aLDajOa(F!V zP>N7*ClU$sUV5y7dcDYB5B2)+-ZA6&^`TxrXYS(60O}1OD};K3$f}~=ZajriZwPsg zxd*?|1#Vy=SZA2)_)u?zD~#5yFvb-Es5j14ChAt%OI1A7OHi>2>P_M)VNT(9L)4q5 zLhGU4J}Tg%-hN6msEC^$M7;yZNtg$zLY!daQwZi^yLO_40V{ zm<9a$P_M|D24@CPuY{}+>Ir03QP0Fv81*dVIc6EZ(FJZ`Ay~)eIzH4};tI=kE39yZ z0P3xBl|yx_JV;eM)O!XMtDv5Pr-b=T{BDSP&!R%>q25DOz(u`>Db1jIHc~;%oRFyZVt(}!@6}5= z5n*is_Rep<3^_sEdpYIsfL=i>r`f%@cocVgr z4B*}ykQKtcHzKQwdvC&1828?cJjZ+sexnQAz(TOjTe*%8_uj@8-d?xDJGeps_uk1> z-c`5CyQzwYd+(uQ72Nw3JSEIu#qWl=_iI#WJ=}XQ6>xFyeUxTUy&tI{?tK6`3G>&f zLzJ{kT-hCZ;j`X|@b0(qlrVn>zZ>G+52(<3c=x+hz{R`Yqcnr+_mK+X-5($)Vg4bNsNmfn z;mI-on9Bl5{)7|9gm-^R?E&xpjQ$ed{SXOUmANG}`4^m!c=wn5>POzIzv6^@+(LQA z{A*+cQSWakhsX0{N)hV)EfNXy@941x>iq=y>!IFH@!m22AAWtP_xGIn51bi5y?;bj z2=)F6Syj~g8J@zZ_s__4%%9^oy1)%A1nc|@*YTm=zjB3tt6SmUxk3Q-{)4OhqHdM{ zq$(cj{TCIhpx%GuDPjH(em6wDUs9ptmUhatb*lgJSEI) z@Vg;cuBAfjfrYHXJg{6(X$H#;NCm-iBXSbvO;m!$x0bbhGhT&Q%L=j@9=;&iel-7{ z)cW5?PKf^Z#yYbht?!7q3fh@hJK`FtWs^!}a~TTHBBSzPm)exeitE>E0#EMQJugYgIEq9zxmFEfM zRnQ72g?p)Sds|rJ_V%DV&Mg~vVk38)QS^;<#;I?2ktWpj_&kncb`m_~szh#BlxgjB&hXG!ZkqMr+0;;jj>t-ccYcI;}ljt}fu zXJ;1Oh`Upz2E@}i%#NQ95O)WO0C7)+0uVbx$G?o_sNa1=_Z8|3C}_nU(T`v)ffBny z3R(lCJ02>tn@;o&9m7Y+oh|xP*PN3nX;Z@w^A)9>bZJ(GqB zzu(QhA^h9W?`8tnHtC2dUJ29n{BG_WKBtCx)BfQL*P1sahp%Ah9+0yF74vb{$)b`)5VU5f9X`wNRm<4b(_SDY_24Zw3LDwRJ@8ghqKV8{u{UUWD5TW+U7V zAc}B1!R!U;caved7}fXc*CVFR2t1~feM3GW3Jlq>#8(t+`Q0=cr}CpYk{{PPbj>no$~6le0;A!F~I zB^L{vp0}u3wWY1CU7Q_0p3fQGv^MPCxq~}@vL?Rsd12G9NYM1_{O9whrQ7WbX2pf_ zkwfiWRL{=qV!0=}q4qAB6_FT!vlbaz|VdI^C~yU?`S!Pxq^n1XgiP z;M~4;R$Lb_=eiyX{4D(%|9*G_9_yHM-RR%@ZmNHr-RuZuo&DyPSs9Rz0ThVib?f@J zUAH;ncHb$r#Szhv8u1;WQ|iv@DRo!)lxlVaLhjvhME4bn1x~3}N3?}Yw1-Zq4ur%D zm+9KrwrgwXK;Je?CSq6X*JA&>K|c$7-;M-aW!DXt*Ms9uCp_SzS_kOwM)hP9V4gt; z#Fp-k^kj0NZE4rgWLtNCA=hiii(RAI$Ve_>7sWj~Fkxri!%Ie5^r4&=OYvTOP&(Dd z2jjH}xqiRF)UGi3HZaEUAW!FFFbO&Hrij>W>%fY#A`#Wcj_AHZlL5F(&)C5d`$BNv?}%i$l>ojYkD<%RmN^6DSc0YZIX41W2uz|1CNm5s%Msp)3fS;=^-DO9+qH&eVBhe zKPMrc%gyt$eZ&#Zi_)?^d<rIY$bGXb~ zD&TsnA6#!sh_`PDu6NV{*E@aSdY1&(yMy3*PeS}k6c3(2ZP|EE0#yzhz~K$KD-{xKH`Xv`e61kNBl+zW*-m1>=RX(eKHKQPdVb#QT^jb zbYG#*1Yjo3!-6F~AA;Ez*kCMJ=8F}WeaR2AFDJxTHiX$%>%i=5KA3%7!t5JCn0+%L zzEy?Uw;k~vp7Y;22AF-9VD>$R+4mjs+g$&5f-nR3Zxg6a@dF0e@2&@~-y@5%>W=sa zj`+h6xc(>vu0O7V>rcYq`cp^zSyca{Bf7894+G%(b4UC|xWr$E!1W_Xz>F-|%3oK& z^*4TS{Wu~1c0+LeT^(@!#0RdQN^rr@%)cZ4eM0<06z@f+KWA|L zizEJ(>;GF2Tx_h0YlHZAhSz_r2d`f^;y-=x`Y%WPcL-kp6N1+-tMGz>8CjoK!wdhP zXJPg~NAzkrX<^0`w`)rD6c9oVTbD)kV9_)2CI~*ZEOXd=EL`{;D(n&~&0&+XDkiY)nZqV$L3}W8#z%uF z!S-hrtYFi#5Mr-xr>TbNg*~qOR&+|M$2E?q}3!{%~rJP!R9ge^O$O~RILBpkLjV{CaEH|L{pr3I{HDzFtAW6RwrwjQ?J z!>#V5#u$EdL1C*j$L!@yKNHpLLske|;>fB(z8_CvY}ti8#~i?Kbb%XK2-X?oIzD0Q zZmuv?x56H-5WtpUt};@$$|zOwuw{&j`LJai&k1t^zZ+u9UMf@@TN3oDa@R2@>5;Kz z3aQ}UGL4*sxsOUzuw_4<95zy8@E(wrjuu-EQd_{5`{*xW%M3R+%dG(U?&pLbTU;u@ zOyLb<$^%HOhbb!FL-mdts$xopGqao-z!VKxAxxP=Ruxm`@f5}s9eIwK!*6tf8(0X| zS>QT8Oj+a#`MMPfTp@rdMXqAhtx}>Y9;OH?=ED>d&k57Q?}nICrb4wb#imzPOj)8w z#*}5Gf|#;`oP@bbB`TP52v3grAeRMbpTUWvy(*gywFOLhCjBK$c@`3m`4G2)<{svR zA5&=hJQgKevoX3n2j$j7m*;Y`kNp4kzB|5&W80tHgcK4&APETxNkj=Kp@b3$A%qdV zg#e-#V;S3cEsX75Nj3%+S!snNhtGR| z{N8)^AG>G1bIxeJ^WEuZ22%^urHsIG0xfje0#FoPDgX-8r4mBXbg2RiR^-9e?xqCX zR-0{P6G4}1GT0v1poR=Abg3niy0|9wXd>y-fNBwRX@szoeB0WkOEaj(p-T%!h3V3Y zL840=NLIS+0K`cSZ(+LZ0t}Y#kuK!#9>eJG7Ayf!N4o6AJJMwz2)eePQi0^IAR&@2 zRIp@v$fu2%au8G!G3821@hVIx%#^DMyoNvvQ?3OliYeCt6lTix5Q=8X4S?y|jc~QQ zDFL_D<|eXTPMDG%cvneqq-y7nlg z0?9o_LL^g;$AV>XibsLdV!b)p+T)->jClftM2vY7;&tsQOfbxtrwM$9Knr7@1t^L! z&jA!>%<~Y6X3PtK>Dr5MwYw<+x7Fq)vWZ~K%Vh9MT!UB1z`~f<$mI37CU2mLWXzkW z7QvXeAS`^{Far||&1!FhY8=MAgHd6|yo*6%Ob8?^WBv_@lYHO8jCmh0=>P{={Gnm= zcgvQKKph$LG2W3e|DohQp;REbPf3Vm49*SNCX zA*5@^kS^rxu_XNMqUAVD3y9JM??{y6L4X}(C>2PqD+!TAf&aGCQ1Xu>o^%6+L_9f( z((8`Ngn80~z>^8I@Z=PLqIhyDK;b;^38847oCX;5@!@KBQvzWiX}%JQ;#_HyMg|t1ILKr|T$71tB6%_i)gpK@8NyC&3S8Ue$y8K|&68;u73Rrw3=&UffMn&# zOhBC4EYvW0av6klZ8qsb#$Has-!4z)U|PVFxp+sO%mYE!oRkVAH=l$Ep14m0gcz~_ zghUKk2=ThM2onf1WHEubvLR~pZ7D!e3|R(Hm?6s{6wQzofC;xcHznY<+N>m-2!YmD#d0I8`WDQ7G zhGYTaBnP}OL$U$WwH(rgEX_5H{%%R4f;uup!#gs>1A=hC!?9W)B{$i~DBPta4;9VH z=F^EQ`G6(j$~sE30ItTYyS5(0$QQW*!cJ`?T-$w-Ix59}k()3o{317FkY1!8BXv-;u%vr}d*%UZI~r_ESxxa|Q?8Zk}eNfRa4 zER$;?A)+L~LZH)7rnSPINYVyEB9iQYcwO5G*N6gT7lFG8v{X5J0E#M50sw_GWG{rG z3zU6;L6;t`b~h#9w%S}lHW3BN0Wvrk*WgMruoNg)k;&C@O|C%`NtA0*ErKZ5LD;EX z57%~yasw*G{tj-$sPK1i69$PWH-lt{bxUEQ+yaQx@WV5SavNaM84rkZ2O0fsqTC7U zSfJd6cO=T)l-xfl6-e$L5+Vwedr>i}K)DaFL|nNa;&qL~RTL;e5F=mY0}zHyZQ$DO zi+l)`V!z0TF)I8bAHg8K$VWl4zR1S_agq-o{otVm$`havRiHcx(Eq;+VgI+T|E&10 zum6m<9xq}cUKh1HEdJ@Ct0x;RA=9(t6kR>lT>IJ6T1_ufJ!>aT@s7?=wFxsOO}}{U zw2SA@ADuhQr=Dh69eR3_+AH2Ozz*-^%Mm_-QLYI*10Lv1UF~gG;2F+}wI=Xvvzk}W zp|@l>cfe5sv@w5HP6jLjUFA{xM63?%yJP|s^j+Y{%fG$+7Y`*2kA@AlO&&UFsM^m* zi&>MCa|_Z^vb~w9$*{goO95Y){U zUFi$Q2=q~Gusrc%r#d$NLeoodaLlr1c-+k2;;do3G;$sB_?XKXS-iEyj>xse6XMd) z=Sj&(kN6-KQdpe`Bs6?VfP_=x`BhAv)jft^#k5(+AL>^zeO7Ou0u-5{j8@=<&9p@wB#hg;PzU|KSk7ij}lPKKzxd$^Xq& zNu2WkaL<2%_x86BfawF@aQFb2RXJXA?eeB)W!W-va?)(>oHgklI0Z&mPq2e;7k=_S zPr9ad1!u5c5STz3wv<({P~SEk%yMkGS?MXBboE4^Q6qcP*XH8BgFY=??H2YF2%j8t zQW(UcwQRM!)qS8x#gdZ%&(+dB>Dj62$+_v-DOuhE_2g-Q(%+Kqa9a)O`#_<@W-iT+x*Lk+C zo)cAPkxL*o=)oJY@1fp^OBYO;eR=l$sngakT|Z&Xg~OJtosh9QbKQ(gwV$Ql>Yt>Z z`?sFT@J1W}PeZN)3OoRm>0R-~T2B2C4gu(mI4GjR8XR3=4Y7J74sHJ-+Ve)d0G`dL z2;kX9pf}>B@N|on0$Y9x9`Xp4A-IJ2V2ud~S!t|Gmx<}ADZo}+rq`C0zS;|Ss0E>d z&B+JX7@$!fb>t!biWkQ4R~&VSzvAfl4jvbwJK<@_q;S2uIx{^h&6Dg&M@Q4xN7oqs zitQg-<5S=VSfa|=p{o(wPu3^m=0lH=5?OM#EebQLNP;NyyT^=cA$CgN8le0jW3o@RU0m9tJi zv|de~buQ(u%Xlj(b|pzkR#w7WS>;qy>8((FT7r5tJxN`S4u*&N4=GTu0yV(N5Ey|D z43;ci<5M7~v!da(J_WKjI~vaMDUhSN(XeXNtCXjj9egeOD*cuD%0lv2^f*;7{SSxK ztG-zNih2Ldbt`1S|M!0#^*?0Mq4ock|1tG{5_IySijf#?0P{q!l!%j9#c6bBL!koR zOtz@zKp)y000u8`bAoA{GXt( z8I+`wqu`;1&CtZoisU>SA=^SF9SBL{(Aa$W73yGroOiMHbbAbRy*{kB-_Co$93ceaOksTT(FB zr|9Zby8;;vj{W@(ZSbXJD2px{u3env%u**Wo0OTge!`4VQ?l33R;Me_$eVE(v@@D| zGvPO9(TQ>Jo8U8ujbGy+y2}qUEpZUt97u4kuFj)>0=jQ852BlY=s|P~s4ecz$;nDi zP07mgs0+cP516+|VG6v>#dHwe5~sQpeC}c%M7J!`uX1^GLv)3aT2i7W(@O9k^cX+q zvMbBL!+tqr961l-Z>A^%W_Ak3+~FMR<$?5t#6E~FO@Xfq|Cw|n_0?8tWH?oY{wrcY zCe_Q38{q4ISPaNQ2CP*uN6E1eSp=0c95V-qs;f{J1LDCZGp?Y6CNosUm=mz?xbb*C z6XtX?<#da#wo)44IB4Yb4qe?z2)GG~ZPU`Ay4Y>a>OIEu z1t_ccI@Nu#vU-1_tiD254@6}3L0!EvDyy%G%Id4bSq&%1Sxax@2)U~&lnABkEm?g7 zxdvJ_Zi>q4n|1XTyJFS3)y(SK!dXqn#I={zcP7m0yJS}1ZM;hG6O1hH?{TX4hO_!U zU4`T0;Pc~$nbkqe>IW#RAJo-{D2<0@RzISvj}r2jnbqjV^|&>wpD>>9Ny_S{oa)oD zvig}sS^cc8J{OVIX*V<4QI$%vzlD~louaTS5YeK%kti~pt&65h}HG^xPr3nAdc*5@~vwv`^KgP=J z|NS0*ShNcdKf!}Y|GswEVEFeXsL%~BKch}JT>R+wPK1F=3o{~J{O~uiez&;z^^q=q zhf~oTZhrlRn;%s77B@dg@^pF*stw4g&+zC&_K@qIEGtqq*iExH=vo*=j(kKSa^^!G zkqe)by!K+S$v8SL{&~}pzI;?FU}K-ok<-a*&su4a3!k+x(FVdZn&pXRhfq|JVmUW% z0K`|gtu}+mCOnly?t419@7dk442F_HcIj(h=^@698E;4g1q(2B8a^9#5r;8 zQEwEalBg^qCqGdf86JE@y)pP$k@XKb^Et_x&n%kg2swFv9FXBs!{{)28QOS!JfI%K zJ5tX9f^g(RexdiBD6;5KIh_ubBkE0|DA6MEz{zw|F^$N=i;j>ps5c$ska{yfaB4F# zNMDepEvn4|JVC{!T?X;6h!3ve>Wfa1)3rGSMh=LQe_j;z=HU!cKs8zWX-NFWuhMW>shFmO23INdtvIOLr9(;2RzAu;New|nu6&8^)m5})N@mk zYbYg1GK&PG)LTnY*)l4J1W|1&I6bB10%RqhiU|Ej8cIk$4+u`pi@_M=^8ucSe0dPB zYx!`EAm2Iy3kbB3Z#_U!~2cHZME4G#Qi3F#NHECPOi?W|s+9zBLKB?3)&^lK z^L8LY|ISX7ka@d65NF86VBQ{xO~kwa#Ovfx7s0%J1n!4xRE>)cc2Ueb08p5D2O$*A zyek2d2ggwYZmZ4JWD~)>YslbQxZ2&Z46Y*s3-higlN;ii+=wQUc{ib&$-J8(Bo2ye zk9oI(YC`7Sh6;jtx1&s1bq7dR=G_U1lg^F{Gw*J|MWzHvJF#>F=1giBE^OW3p{0MfO8 zz%{nXk!T`|y`xagEcQA>NE{N^9`}v`)r8zT78L~djzgKUstZWgV()lBoa8ANF7~Oc0z}Zw$sL_s#-55%YKY+sA>kpx5 z?wt!5Y;gluyPFblTWtoCO$7JsWN=vQZX@DnU z-gJo9wHa`YVBSmuXAx*&-emwqF>f|NVdh;9p=jpK0Zb=fHoKb=a9eHWkxc~ioMbQ` zuCWc!$1SSVTSz90;+iZ*6UjVW5*KFPQV5A7;@V^0a!^gkycMV*n3seyWz|ZMtfgKu zAWk|pF3h|Xz~s?!K$BF%=x|ECG%!KtrQ;o$x0;g7pp+mRRALV+RSpV3NU$k98hJOVRSg`s|FKf-*&ts z`_PXKy33RjBw0s-!9Mh2)5$rF2KO2%N_28Fz2u~3WnMFA82?TSO31uc5S$vir^RC4 z4!{#JZzsg-+Ag?8FmE@3dkD0YdjWu=n70?8F!T07D4Kcu0fP-_;A$s_wFIP^PT<7f9A(?`=Swbaq^reD4A# z50C>o{M#@(9P+&fCP=>b@s8yCfRg->Qi3EuBEcZv#}xG+8TAPX;bQMo2wR!=86x!W ze2x+_?+Xx|+LsuN!Mv{kPsF^hAzs(MfolZwz9sNG0xit@9-t`Z{Qyvyc|SrZnt49~ zrfWaL)$XPQ+*X@k$R>h$zmmakaSeVa0}J#1Ad^4in*4<(l6l5iadILz;+(kln1{#5 zC1f6+EGL020)cRs-Zc4yywdn^j zkxNCi{$y}&T!R5*V4>bXGO@=sIS)-F_0C5%v(Os^A*VJNu0(?bD+0A4sFY|8!BA8X zh28}yQz7P3f_@|t3ZHmGo=JcrjcM!FrA`S z%cu+zWWAfMDG;_YFB1{^cibo;^VWdi)Uq%bgL!KKPsF@zh=<)?;2OcaTmn@BEzHvZ ziejDzpfK~i5Q=7=4=`QJgR9+53An8``D7Epyme$y5Z7Qm8CaONflM~WHPO*TGH(;A znatY^A*betYrD)VM5RQ`D?$ZP_!Xl}Sycj(m3gIrIJGj=Fqu~lAzj--xL29%I`jUd1_ ztr(0!y=K4@QLhE!b*&Yy5!7oVa0h`F>g@z5ih8>M3R7=4grcdp2QXa=z}4=i1l(4e zy<`(Xy?tb`Kd!+QWMHA*0Wvul*W^kxk<_~i)lBML4I!s?4P4u$-nFQdhd@rJ!NxqjLCuL!j8?rVUec=ruJ zVcvZUp=jQH2bivX4_CXJ5^!5>eju9&-u*}hKgBipnG7tv`-Mz?jcf87nn>RLj%p_F z{(z8E`xCD1^6oEGO2oTP(Cd=CI|60Os(*lF<=v5hIJKit!{l9O2*G(OqzfcDhJ?f7 z-LaS+@a{OgBk#I^06k_(36ea41cP^7De6QS)r|x=gWa-hL5^k~LG#0R)y`qXzzWhi-Az2coDWospi6n{4E0T3>+v5Bg3+>GVJT@4w0a z`!KeD=?(8Jy!{I-kj-7~%M#~$! zJ$KYn?`k+B9?wuR_Wtsyy}|eUZ#|XaeTyEy)7`}his!VIL0ZN9*LmeO0;!v5cI_%203ME2mLgaX+u}@2s#$@YK3E?AdO=TK3 zB8DsQ@54SVxZ%bCa9y6^RA(yqe_FREn>BMu95?36A~y?|9djF%%j0bzFeh>wmAO&; zYj+!!dB8R&?eqm~TM%y>m4z{neP0yo*!RVF>^tP{663AF?q7>x3z9|fR+c%{<@8o4 zenon^a+o#jfxBWp@AB(ISViX4u7|1Mk+W`>uOpwobJO-SHSt(s-59ers%2? z4QCqLs8F85MlDAwbCuc3EaeQ`XI5R~RI})RIAj}@wXwEQ$?j+hK#}u5Dh{N3#u!lW8(Y@GIRC^{t?LLh+E&etH_%yEH`aax2*mcs1APKF#s|}=O;N$=z zY*)!}8w$K)*q=cXGTyyAL_%S|j}0LY_isYw-6u~CpupV|DjXzif9r7@39F?}#YN8n z06KHJxg034{cpbKCn3LfWr&3OzMm1ox9;5HK!i7peh2QLT#`C4NP@4b%0P-X{9!|c z`)}P4Ai=k~I|(f9%v}ILRK@hy3}j8;lprBB$DM0Kfn`tp*<~Qr{~(0d&AHV;D%ZXk z!YGz2Q?A*uFNg@A_j;Zolnm=i0&9Hk`T#{0R-PF`fmJ^7tc#F>yC=gP5O>pUenK|f z_O6SBop(M#0;}r2)J90f(vX3S*RF98QoT5n1hy}Gg&z@C^n%?*LgmQ+1W@4BqZWrq zm|k#9kc5IMIerqV2j1x-Ve?~)9VoDZ-ABS5gw2=T5dqf)2+eb^a1m1f z*=IHqw)pl0P~hckN05+O@#=WZ_oHnTwMDzgPr{lj$A?I$`k>Z~M#uoMrQEgzWfsc#x2qsrfEK(mvQ3Af)l6j|^nz#~W;ju(GS~fIFCP z7&|sdNXaQr8$$hEFE|k4b8h*_Pl7MAAV@-8?^YKH#hu=?kx>7r8YH3U-aGv$u!c9& z93*(eTjieKXBtTDz_}0uDHor2PmqKwzgXrXVe^#t454&?8UUc0>m~;xEbGfz zE);l5_M1UMc9&xV8j$=kPx(pkpD`pzf}Rs}k4idJ` ze8h$VPkZ%uLnt`sM?*-J>8z2(#k`*|29(Qg{nCX3+xF)xAwueo3i=6IKH+${LsZeC z;s6O7Wl6HV=P*Aa-223GisH2weoY7~>NVU!QC0WcNKvf()?6DREbEOo3E}Inyw5s=_YbtfF@C#3FJ zdw`JbqE2D!|9z#4qEz3ta0g}2oKZFs)Q68YkhvlUS-GrtWDUX_IxP>8a^ulA7|J=j zeL+O{xJ&y7P++Z(e&9!em)vkh00rif_0G2E`U3z+mTW@!9)H_~2(O>@3`OzD*WBVK zqQSA_`K_GvoY;V0COPIIBa z8e};inAFWdh)LSEBwL^laD^LV?%5aL`Z4Cfmn05@ySq zanE}#E<)-jGz3UcMa9bZupTx-GH>w&QQ$e1o#75b-p*6~By2vbQxFB#lGY4&5X!rK z5<-FRlb_W=`vfDZg`MT6D6(S%15o2-&fIFE+cAB_Cq1kDV^NO zg#z2SJ|FHNH2?Z*2n8OP@vff)_VQ1JFj?!d#_M;wD5~t?pWqJ4^9Rfipun2m$Ow^; zqI?1_D*$^7eyVQ?JxO^^p^s5jeEKm83 zqS#8=es27@EI?7MA8sRomw85p5aAo29&1B^Rm#ex>E!1f6g5q>Dp~#W*BCmji`E%Y zwU<5NM;%ruE5xc!a}A_O)~C(V+;!h=pbN?+l2HXOml{Yx(E}lj;wyJlk-!RN1GwSl zq98`Gom)=xlaNt-zso@Ew}w#Qt)j8SE8XrOA(ab%g*!y85%mQx;r$$lu$EiCr6^YC zx|amLxO{*gqj+7}C_^wy?EHT^To}dbKF>6S9kQ*SA{s(`da%y0G8?5uHETm?#na^% zS9Y6 zY$RO%{W%6Adq8}-tOrYf`^iN*GMjko_&tX5uBq=RiCB!NvJD&#)SggB0FnaMH`#7-StS2bYuz1>VoG4NO_w4tTHz*B^_2I zS|B{{mA?q#MIW}>P?^_nE%&3qWQUh)vUOS|J2lP=H5cjZnO_t_f!AI)#70QtrNiJ3 z=CzWvDKbiz-M8AIHV5kPE%U1lq2+}gHbQo%9~VS{6^X_zs}Q-vvzDX>FpA4e;Rly5 z2LO;MvI_8z$_^sJ8bp(r`D7z7)7QsEQI+4`1b2Mq&F{NNkWF+}A?deQl*U{+FfU4{ z;HpaqVI^IE_oF#0I`s(~31$CyEPw)Un7qkPLZ%q;0uuXS7ZA7jA{XZ^>Dt+nHAPOu;Hbv@w+-o4Ma-3xAyha!4_+>w3Z`rK@LWYVK z5l`y>j2{uMiY@~)OFv!oN?5rZYG{?Yyh+x24f!o(&Lk69k!Uva^>4mr!<3m{4nCMA zz?R*G6vgXhd3f^fER+D@Oer@cQ{aB_4i)vBE%zyEX)@Ej@I22#gb+Bzwv_Y zep0TvQ6SfLpqhm>>+`de^iOkG~WG>uN@@RXb;#>xc{3Q8yzU{4b$E-goX({ zU4-QMUnYT-Ecwbnc6ts5JE8KG3r_HpAiGpN~xJi8Py!fbz4pQDI+x$$9 zlcWZIrYNT8)dWz7HJ*8P5CuM`-wSXDp;4CVb-uwyl-ajhCWp@2coQjyN5g8qe%3HI zN5isT>>2_HMl;0d6H66&!SlzB3}6(ilVc!lqLsq*e?9D{C@rnOjRe2!?-cdR3?RZY zMJtZg2-e;Ik!&?dlJNYV|1`{ti{_BPYl~<3$=oAGv3R+xlG;S0lx2K>egJjY=8b7C z5~}0}QczK6BP3OHg_zkqFnihS?tajLI(%`?Y(ENYS<$2b31!!xZ6hJvu9MBD{c@;E zHh@{KXwvX27M456YSYz&T_nh=gsEqp7C?mSvT0qit9ytLS%9$8y5$Z+l0~DPZxWfp z%tmRU9F;YPL))%c2u6@{ie#_sjq>H@z|?J70n!P`@q|FPA6$gwzf$N&ffX)3B1A}= zq|G+LI)05Dw<(fiDXJV|O440q#n#B*DqUaX!gN^WGo$?|@RskcBZTjg?Uu4p{|-=8 z!~XYdB;<TLhy--8&%+J^c4BvjQsYa>CuBi%sCpPE4kFIxIpkfI8eE=H91 zm##vPAFTiCNej4k>S|I>JSQ9AswuL=?{wT`FFla=oFPD?S+}8yaAQLpHwR_E*5Ci7LqZ81m&1HFD-Ni5Mc$^?)Oua>{s$qQNOeOV;^==RBexU9VArLKj|l-NLCYt zNiW(EVU0H*0e~%|_;1WlN@fXgwjU;>pVb7{!`Jw}NMhu`k|m*L;Y9 zsMR->IZ)tR&91$uq?q^IS6mcT+kCGf)Y*>kBf@-rzJfbgm5Xrzw)M=DU4#^`>ls9W zl|Q^LM1ncSSdlc{j|i_BG}=W`vw!X!K!L9i=4{>9lO2QDeIa@V1JRLnPE6-@{MBW;yh+PjoBz{Bw$36eX)#zFv&{bF-{#tyyL01b#c3 z1eSl(v0wzxT=>d~0Tg)EUoSdH*e>cFUY9gKga}KPV}oWdz#QJ+^~(2TWq!G=VfA*h z;tk!?0%*<`-9I3R0$X2tEeYIL@=rt9b@6xyMagoNt#9icK*SvGW5pRK+6a+jgS>8A z=O7}iSiBZy*3{+<%UW3smdb&S)pCTqHf5}X%-8iC2X{zkZvWLb6nM29=P%y=Re+G} z6Y^XruqxSXE|cS9Tjjt)UE4tiDc8tpl-l#}vXNEUam^u$s(-nMgAkM0CCNNMQR#9v zr+EBeKOqgGGs4ql?O7uG1uegBG^{-D%p`%;io$`Hy^#^>gpXP#XNorpLh>{@7bGbsaqj*!*31rU9QMK%kHU%*q-YVwJS>?+|8;JQ;R?d1L zKss_%gqgXsN49ePauCeydseT!*iTk#&Km)Dc+^e)nL$E!3~qA}k|#$m+cv%BC&Zka z@U;#K5K?niV+aMlKr}O$=h|ULl$`hEJLPPSS^CL=7jBky`%e7XNM~c#tA0$7<;`@u zP~hcXKWHF@qD{g#%9#jrNT+_}_cl_l4ekn&P&wpu7YPA>N`QpMSM?AHJLIT{92(-y zVw8^;i2+i+b<+2w%*?4(pO``5vVi5AW&Kqv<|cTJ9H%`^_IH}}EC>E5lhZ@2P&8B7 zy4{5~imJHr_y7vLUUWuym8i{`N3?{QUsm)JG5Pjc-8YZKPJeo z>D?_zg8a}}og4wKlcSdfvVKpIr9|7V60+iz?=T0N^ONPcXyu&qD2kQ++#O=zC**i0 zpYPn|K!mrRKh#e`^MU6AB$y+d6+bq)2=U5Eu2Rn}HbR;=erX6wzkm4=Vf$XLF$CWd z)re{pFN)=h!97+Y`uN-{`USjB63HCpEBx-x5G81iOPKu06OCl%t$V}xt^8+ic93#Y z?b|jIw#*$s0?*4z4Iskh<~`olqp{N8!~alH&3(Jx4cl`;iGnhdOL--kg`H|IiI z-g?PTNb}SzxWhl~l`Yn`8@9O!x%$G@Are+gbERQ=kP!dCXB{MX#0&um=Ye@s;}i$!XmU1bvaA+1 zh(01Wr(gDoN{LmAB8{1|e|u8;xiB48Dd)1(&f|lK@R5A4pM;Xa=R+hkywm`9h${VI zppAsxayV9g@vKn{L@~dZ%3yQl%=v~cTSA7p7)s>TVpxUc%5S&!CrlWgr${WFV3Wnz zKa-<7+#Ibm+qtr($!dphaiKXc>;HO)(%E{-B)9`2hZdOssRe$DQsfwUmK>Q_AnW1X zGB27%*O}+Zy3r|1sb#WYu6bo^h!T|4WAFjawX9U zSy8yBFEx}GUUQ)Xt(aVpVh%v^`b{503`F@K``krB^{-#~QQ&z`J?0=GAZJ1X;{9-Q z#Z9rC^jj|rx%yLQhRAA?942g%Z8S}NIDk=1wh(!_?Ayr+J#LPfnbRHW=O2?5HwzWH z1cNop2Jc3>>ZDf8ZiTCtM?`CjT`fvz<~?&4JO%uNvSekAvL3FM!x-C}5BO1sO_c5T zGEr`^n!NKI6tzn(NLeM82Jj}?8Im({-0W0sx#V^iSydb{8}5*D)#cavNyxgtH9*2% zIV8|32C%vL5t&{2!fyFCQm#q2krmH8@e4m9e6kqQW;HUus$Ts%h*508NMDF_T88Uz z2j%kq%YrDd3c2#4ahl>MWWB7N{Bv&%5#o_GYMmS^Gv`9hmR*w=Dq}4ha||oLDD?PR zIXqJ*>mt8cyT@APx`syCt2PHDnz#KJq+d5XoyqUDxCoK6>*jJZX0AVK+*wanJW2Ky zs<(aSAS-hT;S@R4TD; zDi)itRbRb82;V0rZCI{cMHLwHY6uf##q!gue*GOABH@OQ>~rwq56>WFUMl87xj7uN zQVxV~d2Ce>&Drz|KeUn1`01Ahk|m}bnReAwLU^&9pl;aEDbNXj^a{ZZR@3tl11ZSx zhbYP;m0QG0MrL+LR5`S;O)N@fjj|20{=AzUWG;tM+2VpS0N}TZdZZYF94u$`a`3E0 zj!~Jj0i|-0TB{r)HCF|ii%m)&@i{PM=KFF{h=eUELk%GyhC}#8Clm%Ls^F_fZ6xH# zwU%jef@t`$2SXUeYvrne1CmHvMN^s=)xQcVm`!p>vYQ;uRppT6ePU9Sx2~)3qcYRP zcn_<*Jt;uu;lb(cA2>+IE9Y2>cAw}XopQNCGa%N+@~wr_NI6{gwuxRfTmSs-09vtH zv51e$2~WPQWp4F<0D`IUc zo^;?(upL!@7*T~AHyB9qoA3ECitm*D09l~%rn8R?P*j~*EyBzd99OJZOjgXSo3_Xw zHAg1GCAO%oSV`v3kRJTjHF8{5PBn9L$gNmRYO#PU*-8fwbfFc?5Ti|e-;jMaO2?e6 zyHXD44-zYd*-km5Yc9%=WgXim7r&H?8C~X;t211poyn)jLZ}{1 znT-|C!~L>wSSiKwJN_s*`;F}#gHT~luPzfyT4~V zYN^>Nm+K81L?efpQ~E`6jeuKr5ca;FXPB4BMJp|PKXG(IN)*cF6?wAf?GcNJnQQ|v zb2_M6j(Hr?*k)y2Avw&QQ$$yYZ5B(?SfR|6?Q(pjD)VzcDL0F0NtP<-2Uf^YSh<3X z?~u#()QrDr0h`1Iv|O2pdMfXqc;VmZS2+ zZhlOV)vTQBLV?$OkscypyIAAK)UW3R32B=8se^=?e=G=*FgCT#PeSS2m)lTamEB)+ zkJXkriJ3D+IF!-WsV8_!*ABjKvo*BD6I9zB2v+n({AA=JxK zT~=FcgIt1P&PLWw`Nct2e$o2ka{8CIh&RS}i)I+xUwWsZoF{&ZuMk6J;V)O_GV{w7 z;^sOpv%Ojw_&j9%sBBru@|k6ep-nCurCiSJakFDs{q7AeGB;PfdC%!=BcxSkcfA-# zXE#Z*mCF$za|yh;EM2~EW-jVUy~1VuM2Vc3&r7>v17MHcDTCn)ipe z5MhOHy$g3xUN7b}nCvF=@WT(f+D1BNzhJ#wve)QnF`}Ae->ONBRo%CWkLcg)k`vHvN4TBFD!VbAq++4Wol|%jw4_3KIS(Q`YVwF&OgtzqR z;4OVLXo*v>dqsJSo#7*&*5u^ef;4b<&rD5DU+2|Ql9Salb+vaw_v5po+>g&rQqQp~ zrz<^`Uf`u^bEnFp@yka%Bo%vFwDawI6Eq@}=t-o40mI4jfRRr}N9 z`#dQb>FT*wpE$!8K9>94LR9af4ghDnfx2q9qkr6ahF5v61}?Z>>4JYgc;%k}KkLo$ zresNQ(5xeT3jD`|m9rH1KZe+q^OZsHUkr7s7by6!6g$j_9d1{8flum5%DJF1!l{lV zjYGUqFQm5@$1PAD)!~*3nGpT=U-th@QajJSWk8DI>zSfuc+?Kp&lN#<%`o;a%U-$m zyuw*r~Pk0F(uAlIMbhv&36FOW!;U#pqe!}O_;ra)uEKjCe3xPHP*=y3gnm(bz*3Drc0>nAXw!}SwhLWk=oyo3(dPk0F(uAj6NsKfOW z>W2>3Pk0F(uAlG{I$S@I2_3GV;gbeBTt9JXWQXe~yo3(dPiQxFxPAf?I$S^DC3Luc z!spQ8`Ux+g!}SwhLWk=oyo3(dPk0F(uAlG{I$S^DCH!A?{p<e1xl>?!cTA>DA$=P{t3 znv?BK&-SXvF6j#)JmK4$;#p(M^w_*PHgQ&bx-DNx@zQzDYt-X>y4uCA98G@6K2N%) z9uH?aJHU8uR(gsj-KM4I!a>}&Rq0td`D44-EPn$RC@I-%Jhs(2nynzmr`hlz@xiv) znQPMf3{+3>86MedbJEhY)UM=yoRRAtGIG=quTNW*qn=2|LR-!WUw6o%<0pmB7w-&D z<;}@W&Q-gI!6N|7R(pVZ^GP7(!oj5J*{SKtx#`&{S>6Km@rD!XqME0M(-Gjw$!VFXUhpUHqpN+*GtB!Pa)$Z3wPS{-E}S=iURK81 zg)=T(wdkUyUgx~DdA?ELY)))Z@KAD(dTx^XH;xa7lhutg%){q|!vmZj>kRWj#);UF zS?XYVL&h2AL!!?xA8I|r{DLUAccAIeRJbIkhEJ0g9|Sy103 z!yJzgPq>M|*r-heE=f|y!AGbZ3+3yjPIY|zEd&^O<--p+5}jc_L02b6oMApmS0_iE zVLm154D+c*j-{+lSEogvVLn|~XV{e~6-tECOv@SOvvl>cXpPxXXP95Et8=1t=HeOV zV-@)K=h>B^${^(eWeB_ir&FD;;D2g8#eBic>c_rKS7MYT3nMpsSQPUV^TqUa8ii%@ zYB)bRU4xAoAh(x9o?^Zou%u~#hXW0(j zlfgA>ppOn3H{J`JH11MXD#`FxQk`lVy%ma2PjHI)>LfJ-&ljiE#Xb|C5oa*(I6>7GHG}LEV&>-0JDo_k-dqX z#Fmxbd+)vXUY*{{rPoVxNiOA*yGzggzxQT40Z{zgvSkbWNsHOpnc3NS-?Z1}j+M4p z5lR1HL1+${fh!axB;U-%uRu6O* zhI_k|KDXF4?He|%UAJb<2Bk|GuBZh~=`NR*9<5v`EzHn+CrSoKm5tI&xiV2G&BZ!f zmHwM{+_yr+BP}g;B0d!DR@Mv^?X8JZdN=)Ig8!IIl~Orf7N_=Z`UBG8FLe|yMR8jH zQL@o1hNjMl(+_a#nMf_p7)-^GW=5S)S4z`b(G+J6tT-xlD&oq9W@^Q(mM&{WwNP0Q zXZ0eM|5B&nX9DlHkYK?}aJHX-3N4f-^ObZaubScGc z8tpctR>TE^{3&VGm^8(OG;^Nfl$dN$17PLwpxmvUMqKYOivG@Z^R)uh? zWJ^@%d~0Q)tRaoAR``<6dO2eWMEV8A#HCl=DVl6?S)2i!PUrI3N;)krx5X9l)FbfL zd`_%NtwMl`%c2G?8)p0Zjp3}8-7~zfd;89j4Y`H6wL`Os&K<_+u((n}TQB9a=m_y~ zan(W9ijv2~)u_!iwrGy)s6b0Rbu!*NkuT;=J&g}GOGVM@({Q!ZMRVG`XzO3WAAq(8 z{xYU$ALM#CJyLWmU5T`lHqt}`vQNiEC+fDw7Hhd~>*DBs9e~+LNzo=Iv}`3ms}&Xk z{VUKVo6*^nyr~!(2!Xzm({j`o-ELPVk}92D_r0&QDx+q;I7tO5@qPj)+VIPK@Vh&@+tY%j7lYkTr8{Sybtf&R_V=8h1qZ5kbAtpbu zz{!kKse%GA9C0ZXbsB*(+P`e%sVEh#0GDDjqhdar*5)gQ3bNgh>07<#U>1=dQ7`Z+?W*IsWZcw@ddN^1mxU2Xk{!NFG!@$MjB_# zPEVjT%>XJ*t57jTk1e*y!5+Ot6I*T3D|?hor{%=90}N18o7IdwMwLDZWOYIl+bwPn zQ!7lQb=8;={kGT<*S8(e1BnJ?S2wkJOD%{&TkMRc7_#^cvw2K67{A0#wn#?P3|p3| zU$5iyN8);`-l4al0Y;NzmrmcQ%D&5EOHS<4I38|;!Ncyx|6=zOS&T&Mgx^gqn@f3Lt--2eN(zQn+N+p^K-kvEap|Iu$_ z3wIc9;dXTHQWv!Oj`h9yME7WC_l7Nl>dx{8Bhh^%ZQ(R*;WmQ@k^}dH_cSHmjhPCT zakJR$#64~e7Is*2D+Ac& zO=`rRxeELodY5TUf7o4C&6%c! z55o@9-QQ7cwN^Nsc6~AZ_{OfU&aUsghwQGex9YBMQ?*^+-HUd8=m`(uUEeBa*EiPK z_0?J09n_;5>p$9rSq5?c;|S@MO4;mMy?SnLu5~7#HA-e_0^HWp%xbOJVwtPKG|QFd z%+>Brf!Vr?_JD+m)Te%?dG5EHJAe6IewYdQ-Vw8E~uY6;>mlc=5y2`7%vGGitsF zPBYikeHbdvc|AW1hLt*hZn|1YxG-f~X-4A;b!V_~a=#PL1~kpP#b+aiKANN{UR$)` z*z2`|Md zLui!>J<5am4;c#>@y*ICakY`KQnIo-9#Z4uXDFdesxz{v;e}#WF=texQU;4aV`eEa zw1{9x>Q+|G(wv;n@_#mF9>{lYZpl?=EXu6ZIlVM&97{ z0hQ&xY_po3w#tau+Ic=0j1nTLj>CGXjEwY} z>gDZF%Mi>c8EXLzqfA;@d?77o13TEs%C`khNhR@ZM@zog((c{LmJO!QY34K)?KUeV zm2WdyXq7D$3K|wmX2l`_8a;Mfl{n?Na~pdk%)hP^MvLkw_p=u&>bE0aeRbVue!@*J|{A^1O zJYKwM8XQXeQct1g?LlLqDHUbWz3k^axKTdBnDa^9++j)>9_hn&B~i>wejZC$Ft@1> zAu^#El{};bIVGu0K#B_~la@pLh@s{*fJ%Y`yj8>z711Lr=;gGUj@-$HRC-nPk|BsS zlu?KpAk?FeKxg;jaZA;s-p|#-Gg>^m@N%OEXt<#dAK683Mpttn;RS*XnkbYksSy2s;ET$iyI$ zH1H{XBOu?R2tZ~Z1~O##A0^PfJofdJvKBSANv^VckyHdJmasi2<3%7TB5NC^_LipMJTNT<$9NwC5=UBi5AR0LK=(E#v-(_2t8aD zp|N3Jb}V$&lGT0odGz;u)^2F1TRy<*mZO=8ZJ7;LpJ>}SJvY2go!hX(m@v(4#mOT{ zR<|GOsQu1zxXar#FJ^KQm#sO-CFzk%@Aho zAj*@wScu>j{8C$$K3+Lf7Lov(6_=MISL#0JF4qg2=hZ*pes4CQ2Rck>EZLWn{ zE*J80Z|jH+Nr@ElNN7`n)mgxHmPLT5AGQ>J^}=<7SP?s9sL2uo6GfsLywP`ADoz}D zAk_9UL9m`4cfzSGb}iKQ#MGl*4L6ZPDwFF2bxLf9{OT|-+~WbtMxfV_U{phu3TDZb z`g*)N{w|l5$NUn~y*CdhX=X!*wZ0B(zV)H1!+K9OY39I}kE$Zh9N7JcMe@ueS&Q{h zsuq858Dx2Vlq^|NFMi01nMtj9B@~QT>AN4sV&(^d|MwU0|6u=RC>7P5CWagqBiRBO zNWj!WRVE=sDJl>MW6H%7$O+v=#sp+n(m;c4e!3tsg6yD~W_4V$5M+S+4-qi5e2QA3 zS%E+f%Iiol)U#EAw29R7luS?oiuix7csIx^Y>i=>bSvd72O#={ya+3SPzk7~)MlE~ zGG(YAF-y@aQt~$!n(6JCQbn)DYy23P;@ilAjTS;GM4oesHm{Nel-U&W@$oid z^m8g+N|Z}E=x9~IwTJY`U7tv~?+jXi1b8grD-|bcbydh%GtMdtT>i;CENv902&^`+ zZsfH_31&lBcB&+R$UtC*99V(y`hu-=wBl5W)-@0lVi_V|Af*OehOSaYXTd7gu%H5W z*cA$6@dEZQp0aqF7gJd7nOIa(Sbh{WSpl|%cxNteW=mv~f`>&kGAEF$BTAvMI1`{N zm&#T_HMl*rc`P_hfU?SG$$AYzs+_lGP?wCEHS*HLN$S=)Dr;CcLO;U!UX<^ORrm$+ z&G@Q`0)(N?T8$-oU}LxV)R9X}G{h`;-)aWRcUXav4AWgX(*kZ$OHFD;$Y=RQkh@be zaDS6lkfeLj8rwNKGBi5U6}zno3tw%rWGpmwDNX2AP0dOZR^<>BXElo23ER9Z|2N^o9!B^sK`0bE_H zF1i!nuTp>-F(;>!elh(_BGh~Y1rpbhk{(CRD@k% z!7;!yA>ViUKLo_k#DozpYnoDO+ME=$d1Y40CShd?qdXp43^&fvLE){JLE9-jmfgcI zWHv^s(#OpTbO&@4sF z+fp^kZy0WTmfg|ZTB~X_6GyAXaTr`!F~nU40PZlsb|=53^v@(Xf|EMzOz#5|g=U(d ze6cG=CgY)9c8E7aBNzArhnlIvSa)Vrn#H`ykVdTh40R5v=ER*0OA6Ly&I71W#mS++ znr6vp_P?X8HAYqpi6EcGS;!E+xmS9;1R$7U%aq5Of=4&PvfnJStD$?7Vh48%{~6Er zi`Xd`A6Y4#W_Z#Ra^L1oZCEWh^L&)+;|vH=FUn1h?}0T2CNO69IG^HkzG$^nIhe+N1lSijNo5K}93 zM;t{eX48~>h;*fm@Tw6#D1or87*L{6u?Po zF?FbkwwTbx&#Q$N-r1Fkt2eHh$V_F|1L5oR``38n>mlP2>?)S~$GXeAoiD=L*!?2q zr*}L9t2X{BWthGS+%*0wWeeF%u=eiKFFWCc6Jjy^=YRBb!U<5t2E(HdOL!CN+hB)6 zi!pJ( z(XVf)aK7;`^uEyZ;rwKgY*k>s;?^Y`kadmL*)K7i+AU)Q47_O~#-)p&%e>B2R@-Sl z(zB%v4;w2v{T%x-aDOF#oDd1Fva>}&Bs2|(cS1WP63>GTjm=Sn#@Zc^BX34{~E?`Ewq30`e%v!U+G7h(ypIC3hy zU_nj*^N~Vn2CmFviG8GDpVTDZ2kQDoXem#}w&sgqZRMaDuYw^8OC|#SDz8ix5jWr3&mtph_73?cAOR?bAu6qKuII45gk9dU3u-b?X&tacm zjEz{Z2w1>fzOqlg21@yP+6DEaq+Dsny#)}El8T(=I z0eO5fsqa~kJM}5hP=^48833VX!2qDcb|VUG&=;P;V2!0hoWd++x$7lniR?Xoi%9MO z}ISFZGB0HJsSlAoX7WIe`e0Cq2+j|F(bE7=SHS9;Q9J@dNYOMbn_8+OA zR)T=DnJZ!QOZr0&dk3=ivc3SlMa=yutVk}$p_PLjHOph2;$hHHml5k5 zPrzFp@n|RVS?SmYW#QYrYFAI%PhZX%I);#J% zQUCvb(La&{Z!P12T3hGF_M7bFs_H>Kl(yduJ@AM38GZwkoynVub8GUtnrxriyQbIZ z9=>VE?%tt+BZ;HfiTz<%4;;!KWFAp}ifHJ9A1;U3EyvbV$maQ7eyDVUYvR#g_MB)Y~%$W)C}?}I%OHE@psq4D=%w7|jie{cTpxX&a1qM@YY0lMZpn0=m&sy zF!VpHh<3=v{|6C?4?rJita}2WZv?#-IGFzLjsKnZ|M=he0ARl{{(IzJ6gU|AFB<Dh#91cik8FM&sn4B>>&MlP9C3x8`Zi0V5Tbx3=yU^BMLH^3&L!wv_r|PlP zt%%v`)DEW+7x`EfSecML3#y^zn!U;^*VA#uX&lB3=L?mz^D<~38IvZS-3GS@O*lA{ zKS(-Vrnfi6Y;hXie>%PYc)ZPR3vov3Xx!rDQ%#(iIs?HfrHivr$1yy+tqF~$k$>-| zuA7@ot5{rUYHpf?v&Ds`@#esL;p>@S+uQ^%8SKy$N0&BrHLdSJdOCL$;R#j8C+He( z;J4KlXQO`SgmjzF#cS!C-XqTM-SmqI z{tKMJbV2W?KcFo9rNF~qQ4|;UAC;oDiS$%1E;_(1fohk<#e=CBp3JE8=}KuDPI$#7 z11pZI?lw{BMN0llorWJc+y>2x*@ZNm_o{`;g1FRAK!w6FX1*fTWtwbp8NU>^QHHoY zMWu) zW?O-4647Cc&Nw5_D{zf1)&}ygbBO`HOtF4Zg*T+GMukVnpC+G*12sI>9K8X&TUDQIk)WuFMP(lW8 zgV`XJL-UeH#YKpk7#EWf!sx+<%QM`(I!&PfjZL%M(IE}P$AXx)MZq5&W@-)&MN=B{ z(hMR>rh@d5DTL+)&8j&0?W5;S2*Qo@fE4(Af+b2QrJTlr*-)+}a2zCgXg z%?T%2YQ--oCMs9mDbP)3<(H;ikF0aHn2)D$eA$Y8PAsHWAwb1tQBKQ-*}lQy#QgNS z&1TN5blhZ=j9zshGqq)+yMI9JlRZ~2(K%q^wsCR$LDhLe5OXC>9Bxnax;voEKj-V~B`}XN`+z$MrMyr@-LyIZ5%{)S2PT zeEvcON<89ugI0!z4N}?Q{$Yye4_Z22`2zi!ItqFrmL7UcpGHwHN{Scjl!KqYBy~1{ zP`auor6A0H00kclAYN*VmzlDFm&f(T>UZjQp@3H;#Vff0Rbmnl!Xi$*YWtgODA>K4 z`?oWBzJ^x-vJ-jzN4%C>O&+v|S`;zj;PbG6eBB_!5l5c@Zm*BPz{{WJ=WtTzcF0jm z9}{l?_1|cVH!=0!9OpHR-)r6F&s+LWt7825*8YDj_O<%9fm2}niFSRvY?gP#^|$J8 z(cgw14Uw%Y(UUfnfAGH|aIPz{H4X@)f;$yb>cwGPR0X>lD6LNSn zwRxO;FFt9DPeoJQD`$q;JS^4W1WkO}7N3cx`K)DGs)LTt#q|aK_4;l4tMu3CE72IA zPl_*aWALmY2hudJq`sIURk-kYDZXU2BJyzitFixEiF)R9^I~QHF@d?|=yBoP(nKYW z<LrmYEIz4-Nkhky9!g{vSww3G2Vr^<6ml$G#~$haq7C zBh4Z?7#|>wtLJtUX-I;bk{xrz|G z_-86oL%4?l);<{#d|#Z0QJ`}|P$1P0vS7b@;ktoq=$&TBCm}|TG<4#eYSK}O;d*-X z^c_)9E$IvCj6rT9=X61N3<)@jIP=x74#OnSAXI014WG`4!(i#$UsRF~NOsR3l;5Q} z$2hWv0!ySC2MszB^K)!*F0*o3Vt$^Kn4e!&Vt#>Si>Fzvb>Xj_hksRoU0x zTC%U3gR-x&<;uRsA^W<;7U{Ttxh-z3CHqqQt2>uisOnr|f7H1|MpyML+GQdsCUuYg zdL7|ceq2o1V!Dd(s{r8_z%diofr(<293@K!t;^A9Vd)^S5sfx29W<>(qam^)nH5uY zHm>i6+tZbBe7Z+pg>RTkih2HqMO?XsYBH;R4FS!4*=z9sNUbhk#QL~htd!E$ z(u|fSJNf%;0`LSBJ><9mG2K!h01fDd6+ksC9t`~tH;M&CQpb!#3{BkXG_MPft0s~@ zJ|vPpA$3v}7Z8U55+8s*(69oi)(4K{xElTcP|AOvi1r>TKqrrO%`-SzGrx~`2RJ)>Z1N z^63%86G5SL&II(Mi5EZi_u zdVz{F^k*x1Xz0P10P2%a#WSUy4Gug}v(v@W99VfcSCsl>si<9v4hywP(xxLmVV|_V zQOrDPEOHOVd9_+Ghx1f$x-F?tgByqwQWh5ulNmKb2Up8y?)fj|*3Eqxy}|v4EHvyh zI0u;ys6o%pz_%B%-ez!m4DsxoL7<>O<&-|p4Au_1ul!vF|Ld7Eh=Brpc6>4PO}SJ$ z>sQI;*&jJhRmI7?lNJ;(CF?M26|fi9U}Cg>k!tUTDyrQZrF}|3m$hrKrdBPu4cFDx zs=Yp!_<<0arFIMHv_RmL7acM9!j^x$e;%~39{tNB@ z$-eM@+4|p&g50e?75D(`cpAI@#WWAb)S&;NT>oE+_q%5St29|FG=EpH$W|t4uAPFx zrYTN@Y0*iG6s68X-fm9e*pp5e7A(TBzQA?@2D*z)Nl)>uM(Lv<<4l*useYt1B|R-{ zN_u+0l=O^6rle=qG$lRDw-l{zN_w`RAYw}Ta21U08pv0Mc1&&FzGh<~H83!`E4QJ& zy*;;fn{_0u%*p0`7z@N^1%~CcP*!2G2;{clTtu=gl90xlRaq!mU9s41oz|K;-lS%5 zT51v2yg2+&o`0AtWh*6PQ!KU_wx?M1(piIZs!100Wlby40v=0RGB+(0E4^Ao~7Z$R6NX<)H>`pY!0Bq=h z&oy+wjoh4S(9!fXYQjZLLkHZ~>2K(Odv4Q~$Ls39qq^6$hYqXD7MI3(FERsr0&Gm0 zq^lP8cLeuscaZd$`+Tz%LO5o;j^cS<|*gX;E&wQlq#lyAYyy1g`AyHbaA@ z%GMHug;zE!S2`t80+P0N5A~rxy1OQ}2Vj3y5EYgz18bXH2|blG60~`^6NCZ81aW{A z>7+^We**bQ0P3hN6yU>8S*y(Ci!frrlqgxC-~)jfq{3E%c4;jAtbh}wPOAB0>y@?* z=XA`?Cx36Nc+>7yoCmi<;SEp>!DOGdD)|D0(waFo zQ_4=my$v7W1T#7Cy)mTp!c9nTHpl1BOw@C)f zc%mIZ5qNofN1LP$y(Rc=az`0YI{p$znjxk~T^!Guae4?UH^a=T0?J8WkJrl|_ZIIm zohS-kbw7}``X_AIu#wx(sa)_QWCOajK2&YEaf56^xUXWzqOt~Ro^+|0g5**)O@0+E zGtFaGnq1?Nw=4EW8AlwNR^D7C-R2EKbtC4ue+!KUT?!8h56_V>Caz%?mfIMjIjdJH z<@uNk#F%J-bwMlp$Rrm=PNUNBFWLs4c@$3^x~7tjh-h~*Z+Jl(w~9ool-~I+Wgl5wUT< z=t`WFkesuY5gNF!O`PO7GizaYQ`aR<#UN8~oZzmWB4>Bk?-w^D9_eP=p%o`9y4aL> zq?-{wuPElm#LD)K8$|bhu{iXDrcCK%0L11mmn)Z!q%f>bB>sqoMx%KNd=Gxmfu30bo z_KWR_^M)%%K3i$Q+)@NQjY`X~1|PX_6)O4@=b^vTLrg@@L(_e@Bhd^muPqppukUPM z+qtf-t?gP&0c_tmY-M^%Gno3!Ye_SyP*QVZV80kloIT&-HUza`3&s}OSc;uBpA03A zE0)Y6)PKZH`$aNw;(W`DiSM68J~14=9Z4Lwg=Xi`VKKU2?9zA+O+ziJL^GJ!&5%&d zY(6hiaB4@4RJT8iJst{W{}y`zq?>Iq<}6_}@W*muoTurbox>yI7WSrP83mDcvcg0> zCT>MG)fO4nhfbp%@dkLyWKU;VnXnbn1!!2BT5O1}06w&sVj?FoOTEDqntnd}F(rc^ znu%L9_)&HS3w0kPTCJFA#Kd4~9lm1qYWZZfzhp62M_I?KX?|KAn4iQXJJ|%FT1XQM z4SGGgL1#-1Yn zTvWfh<^4h=PU+5OHGI_;mo5enETcS9nTeAp_vOoE9y>vDI#Jm#tWZap4Rw^cP)C{H zFBTHV%GZc}iDPBy;r)mTq{Ru87AZVq{oJ z-2r!xO`O+FG}?)^Zg=16p#^}asI<4XceJ*N$L$w)B~DGX48zp9Sb(d_mK{)O6L%+0 zoo~Td=fshko7kT?w#<3OJ^RIh#09}jLvlgXvP+UqJU($jFu${2aw#jGkT}+P{}cC% zCnX*kENbVlcyi*A!Q3UduS^{0SmcVQ?iWuB*SOor>f-6)8mkodjKqmh0@REybtboN zjd}My=2)+;|$sGNh#BmAPT;jR=#q+|S?Bw-6`T5~bcFOQR z`2~q%J6kulwr>zG+%H~~IJw&b8KCscs+8iziIde(#7h!aZq~4mHL%X+b&+ZU%V`FTJW>F%>_8-dwJrt;76$(`HI9b6EIoU z#4GoUS5Y%#{35JKsJwbn%xe;-g2m<>#k;z#wXL;Xymr5MUE(Ta@ zdDUCkYN$o-Zp7=CllTohHLBu``^B3Qm(+L(8n*@eI8D5H=_GGS#D+287PLXi@Yem} zZHbF(6icTE(=7J(B~!d3aS8?l6(ePuGNqB}o%_YR5=}KqHcBN(`B7^meD^`6dQal= zHg(;G_O)8B1)R;!mNlx{-m+0u*R|xiqeisd~m<`P~tcmlA$jwKI{iSl2{s+AKfoLwrK6~@kMKoPb7}+?C9tepWH7# zrNK_on+u((S=_t%IXHUwwkB7~2ygf|-_}IJMe>U;9jTIk6em4JLazuOp;a6X0R3I4 zOJuPfHS-hL0V|VOyA%~nc~~9b2^PI%K0sCgu!;dCiIYr=0kdnYH~^!5=xTJAG4yw5 zvBbkk)bJP~U9vPQ&|#yar4i`as(@8MD`=Kt-~4n^P}W|Cp8-tz$)E3pmws zk1d$XW8(}3=1>u+X)~8Kr)A3Mq~S89<-`KEMHnYA)U`I*&5GYR)UhK?Q_H{9SP=_` zE`_K2uGOo{1$ChndRXW-G_|jW{+_HxwjC|+UZ?isWMt;C2lSjN&`T`gp+8Ty4L zH-^p0Je=|?P7!d$04;NN#84u|Z0OZkxqK;8DoxW~vBYOVn5HKdDZB4Uy}@Y2Px z;?B{Lq0tfatlP$#vRFt>!pqSZI_y{z`q&tdI_62ZWb|fWdaTJFD@NcsH#gS`23f_* zNO)o~Np6x>k0#RdYg4`LJ9l*qt+V#-UAuL7VB<(-E{e;+tvi%qa-g%IjO4S^N1nT> zdbDr`xN7vk7*UNJsxhCRZ7ms-tJRFTx}&qLv$bu_y7leRX5W=J;fI+<&`R&nh#VE< z04~K8@I9Zw8r12p7@o-`Ke&ugY$KZwH(zD}Y>p!BqIftUzGHrt?udh0D#EbDH_OOa z&d89T!RU$Mz!w&NSAd=(CU`ZQQ~*q*GQqpUpk-Dl+4Avlr-%jN~~*>UkX_I#7a0T>l}8xB+{ zV(pF-4nBVm3s&9Dq{nmm0<#CL%0$Zs@kMqrlctkmG7Dh8rQznTNNh~x|5E?Gl643T z@-ns_;>%g$C=>f4Mi;byMU9EC^sne&vHfQ&Ph7EId^IV)rr(>m_qHY$4K#J#hP_jc zj`dnB%p^KF8!tSkP0L{=%WQ%y^Xu3&eo^w*X^a=&NZkv1JWM|Bn}8R|Vl$=Og7}s# z{!OaZviRZKjH$&m6W<9*v%i~q8VWeLVTZ@b~Cl?6!)%DM~h)F5NmaJatQpAa@h`~iG;v{Lh6+9^9WX6PZnqtX- zdDr21g36(%(V=`p4f@jwmlGQJxg;Y32I7PP5(t4qwA6aHK1}F1NLezC*)$ziAgYj3 zYI;}HSxX%l=k+hZ`W14C{%9umt0<9H3Etk zKRlf;(>jPmi0%%I&PlVzV+!r?DYnrDSDwJfsyleuff?^wWy)FhmrJ3BNCu zGQ?4&s3=#Ow28oDx3VNH1MfCN>OKq5@r6nQ)^$h_LwnGv5y zRD&ImRTZiJAP%dvQREil)q;a7bMY%#jtkQcGEF2IFD1h}X(z$Le?nkh^rZN&G#x+7dLSTD20Ub8Pr81>?{Pbwx8sm2u zPC^RGX1@l*-k0JbHuR)Y>j%6tc~n9E?mk?0T9pD=&J-$YJq82~2>R7?D~5;AuL(cf z0{3ABGz(nl!$)?}o6*%ANO*x@gC+_ki>mE6 zv8yYB$esn9g`7ucm#Fa5;GVxP05|`koJoct86#G^1+3B!f7n(5`07lpUC$bs~8djXtSmhnc z1z)7>8tcD9>Hpy&;{WYOSa=ebx{IeFAQ^v+}vHUF2 zQrSmHWBJ)wem0h$tO9TtEI*fY<@)tb{$tK(!(mhf;#~pu7aPpAvWi?Q)NUZ^#sv&K z*U%_NS{lTJDnJNTD#pa6(9(vW>@s=uMLG?UA)Nt_qZ+P=ryhZYC{!X>rB)$8C1sJZ zWy5UWuHn6AD%Y0WJUz6feP~Vh#GF>_-Po5A{YR3+sH@RF{f;~2E^oWMn7v8-wSzpm z%G*rB{S+y)Lj#X?s@TC{_6{oJII46-ZO&u6@upoXLfI-Sd1ove25ST+iY32#ZRA;% zAmAtjfXhHic}POs+UloNk@Gj`$NGgpv}=NSsHlsNr*hN)9sU=+OiKL2@43&yezNf* z0}^T&Xbm0ADOAMN05gMfs2~Yd&1-McNLbFfQ&7+|*?AZJLJtny1pkxp9U8Iu8Q>=bxDH@1veR zsUAUv7@Y2|*rC(akMXcAHKXoNRs9;iO+O5ep!7x<@=7aA1=fxb(l}NMvueTO8&83{ ziFE2KWH{jX1!&^7Ak7_2i~QqgU{V;XGxtDQ$f(GEfns67(8QB_6KOj(wemMFSp!$= zYjF)m4L-7#7-z1;6tAJ#v58c=@q$`*2(kOa3;{wQ|HTa}1X_;JGLCI8BpJvOS!016 zR%PW<*(#_|Yz2L^c`SKM$gZjwSLj%XKnM!CY2KQ_>MSGODr1#TX8H6pr{`(OMus#2 zEpAtEz%P(*2Am%xD}VVQWC!my!X2J?-)WXI9kG;^*!OJ^HeRLpQRpqVTlnTNNqt zV0{V2)Jf3-dv(_yfOh<3&q2HaayUhzLJ0IRvgC1Eh*`-`%H1VBnU%&CWWLAdU2a}B z@Sp^&YJkbERxKayKF(+mCY>mE-fVWw1j#Ap|Bp^~*Wv+erjDILq#HH3502K2cQ|%~ z`#=y~%zf}WW-SN&?|UBoJ^%jWr#|$Zl09(j)X}!hy=x2BzNya6eOtB-_2hSVZZ~=+ z_Y56L?9|4=)a2X66gYc$i!>y_%&m!s$-&eweaQ0Esvk`KhN=fszpuelduZ^~A}Usg z_3iz{|67LZ{|hDiPa#!xl^6XJRsoU@6O0KJ4gaKGtE}1`7X{1oh5ws zxHu=i^i&SdTvl;9A|Fj~oH!Rk((`O_end!mfh{idgrpax2t(pxd5D5eD)y$hWLzjR zf}J_$#HBb}ex-h~^lqA&0uNC%;r4W7mD0WR1o%OkQ8u8rFD|Qn-XIBR>zr=CYFu1t zi+GjO?XT)zkvbc%^Nc$31?aVs^Ff|`uC~QBfyt-Y7A^9t!Hh&Ym@u{;V3S4@nz1a< zSuF{uPQc}!#nwRNYR zQ>?eehG?3NmSw4C-4hqPA}20hJ1(w^>zAVaFVUOyi*TOF^+|Ca($+}Fkh_X zL_!AudX|AbLQPC;!8>`@r+03Xp5E9}RP->R87!x*Y}f+hPZQ#6Vn+4YHVsdJ!=O z)8vRq3=S?j6?12b4!{Z=fH^d1=|J91dY6vYOzOw0cZuPo7}2S%WSKaQ)YJhdl{_4d z4sw5mC9*azb^&?hM-TSH5Q=6@v0Ijws)xrtw%BXR*WDb~`}9$L7YH|&6yy9(Rljum z^V`0y=_^^nMK0w!*S5e4B~uc&=uO;1vRFou$-krX0F?-IbdlE4yXa$Xm8Gj;Xk?Ni z%Wq%=Z861VOw)G|NeVXn;t`FDAPMVMLrYPVbfUzd?zDAT zR!`_Lw6&2GrmWTIppN#`ohGc*YeF2-HXG>DbGDd|bm@gim)_@h>D!`R`gU8`aed){ z9!T`4P?vtRE$)b>xHHnFA7hKhM$smMA1|Bo31Lb< zF)5zpQ~JracnZ_xsmrAF(}>bfXG%ZA7SH4|p5;>d*|vBN$2^xPO(w(S??^l^OzP*$ z`n`Zj{lcVpQ8iM(xE`rrVvCmsNc}QfygWkcS42qtN}trPijw-(ws=ikf5ibkkm$7` zQoqg?uaBm9Lxj|Cw8fjEY2NIS`Yk@G-;$s~1aUwNoP$_-l6JbJsQr7NMOz3-) z;?va#{h4}%{;VxN7a;WKZSjQ&p}!a*^p|`>e>qC%uh`k|40E}?%YoAO6tLjO1^e&Q4Qr?&VRljPr* zN$8&wp?|@I{-rJcgUk4pOXy$Q;x`=gpG0W#Q12{|#c#vZ{++Di@0r?vNQ(ceM(sb= zqxPR{@!tVz|Bo&HH$v?{N2vW5pW1(oQu}YV_p zSkBwVQMg7@8jnDnOLk)=CvfI%<7nI^jbm_KivGs2l&H=GZX8Dmt%a0^4{b2bQz6GftuME*UpYrC&_%#%T!H#_3!Viadh@ zJkJ|v@}sldM`v@unFin|%{T`UA;=i#QVf63c@)CbZ=8=n(zt+b`7=Tb0OLZ$*FlhR z5uV$|#kl%7GA`jrg(GQU<}UG#OA!?Yl+lDJ4^zfvxQoEbxEyh|aRsjNDK20toM#p1 zp+k%1(%-m}GsJ6VxQa7S#oV2MaW!YTre>CA%Hpgdj224fE*Xth+$D|GxGo93HcC_v zdhL|JfnEoNnN*z!g`u|wF-c=BrSPD)4tKV(p3?#+8#u5m=xwC(0KG2yCFos?fNfmI zC85acIUu2T13%j2KDv-(#oe8h%){Md zaF;Y5i|dlOdmJUIhr7EdfrGodDa@qWk5CwQ_aG)|9H0~)?jDaj+js(}1xTLAfo0+D zNmL$i_hkAd+&u*W+juIMgd(5D0g1b(^P^|DkDkea*kBlK&qA#Hgl8jkm+>52lg4u? zRzgibHL$}ro`(nZu=adBw~ZIzD)+F)3la1Q@gm$MjThs(Bq3fxiRuyJrIf%S#LFnm zgm^hZVM4qDF-hZ*6vy(w)73I87%KIZ`wAT5^LJU zMIo`k#pB|VgQ}I}2P>$}rM75_>!<)MwN3^&Atng$Sugh+@rnS)bybw(dZl!I==cm2 z2O}17(ngwS0A5Vsu{S2JLfu$qKy_=ToiI6%B5P~18R~Pk#C%>FuQxY|mPKsl)+*fS z)lwD|;61n17KV_Rp{^*PGa?FDGfq;6fcgF)|MU@x7tFjB5TWlLl0O1ud@eMOcQDn+4 za^+IuGlxjM)0dx$a%1KPo({ji8uLHxDkQ|={BI3zc7vRJrUo=ovp5%o9KJb*DWmW| z1UpciBShN9i0qz$^fs$*avTA&D`0Vq>>$u@ZBcV-OIusJIF?0#zJp(J+`x*X7K#3k z@7?sPMf!s$L`DCxu;~B9d;D4JBsnakS^yq}< z4Gn>zBqq+lC~~GP&WggvcWb&WquHAiQu z7F)E&^{Wr)fkdlAvs9Zc+M_8tBC}K{oxc|;W$n_k{dJKEef>D82wVtaoUdP`pNp|? zV^Vb0p4P9$bf*&zc&gSx`WxcA=hOdaDx_{c}!MC>*fGV1({FBXl3~>3&m`?nzq=$Mu~D^gyDK5Zy;@u`8Nl zcZBXKTkMIZ*-NXFbvkH?d3cMyP4CsWx-&5mOw}*k{vukFR2ipkfo29RM5t{7{th7K zzj#nbU!z94RTd6Oe-J1v>G$v;CH)`|=H-LN!zAHB*NMDR%8&ez@^2Z`K|;NE5T7E+ zRH#R$8BzrB$yBmMIYK58A(P>g$&8YzVhby-ivxNf(QJrJtOyWEu@E8CK3m)tE#-EP zOi%>y$@HkCc(lG0neM1TraJ>^Cz1tT1xfk8D3^E-cGCiKj z^aNWxk@G((L?%|k7|}KHWCqMr>XGZIws=~ATu-;fGa}@AW`tbN^2zn=D7l_v3+M(s z^MD>m^t=$co^Oj6L{q#lLarCt;>FQ4FY(Cr(jd8BmJ}~vl3cH-L9SN@$n`2ou2+Z2 z^_rx3txqngCxBk@hGmfJjYO_DF}dDs3n&U8|69Z4B0j0R)DdrEn!UXq&E8>)cLr$o zE?c}iLbLZoX!c&8X77vA?ESX*KwN*%0X>lDgCUwp^?-1Sk3?wpQC1iTr}?-?vrhzR z_Q|C9)RHv2w+78V9iZ7~B+Wh>rrGC`;`2VuzF>jtN6GaATl_GtfA@eMNc5u+ zxqfVmpF~sqG(xVQ*#c?=;ZlC?k?R*ha{V$X{$ojU{i+7JejOm!ZzQ>(Xb>C`f14D) z^U3vlTl|5W`@fb!u0ImF{>0?^Z(IBi=l|a@xmZ~Vwr%3iOs~Jxqt{<;@wY(t`nxUu z5uw*VBlP;0PcJAKkVkV*c{HS9@XrIfpHylX@S@uhC9eeA+Gg#7xE@Y=3^BAr>ZGh$ zV6*x_H1YA2*ja-(ngrhb7StnHVwPj|g6d>todch;ta-r1WrczeeOa|2$$AAIm07>Q zRW3N&X3c_wC%17Hz7G^P&Zb|iR#@}EW^Dr^y>TAm!_;TB7P)z34FtjfD50$An1&vONy2fMbhiZhVP zLG=uA&JdEjk^X_rDhJiGTtiu0v@}!6{%VMo50b2Ou+#`3brPzsUJcen@D{KJ>mASn z*&wZhFj`3aAZd`sfsdB8xU-FQoEGGjN(TqKs%6y#Ld!-flh8s62R3UPFj}O-L12-~ zTVsdEz*-257E(c|hZa&!u#FpW4WNaz5^RGs5h7?wAS!|uQcmzGzXf+uv}{G3ZIBv5 ze2NR03g_9zc>+?}fO10B45VTZ8C6K%z&1!Xq53;WL%~A}D=GxgLh1=ggLD#>L<^}b z)EHYxXCW}QkiLQ(TSgHIqh%Ljk_IU$_-LUGrOiqTOkPq%SjO1GY6(CKt0WLwNF%{E zNDG0BBSnPp*y1b%j9c-9kwSV2^^ij93bv7@f|%a4C}2edo3#)kNSQ#o2vSHn!AFXY zyC_mfS;00~Q(=k=m82ErgN6%Y27p$=VDI7t&a$2ba6J*t@ATA1?bj@*a+)Vm+NV zQdo$l^H5TD`#rowqhTOkCOfYw6Q45Y>oflEM}p=uUVZ}8yq zEUHQXF3-k&l64!FgbS-aREG;GKLp@Hx(*U9r0)=h3#mOM4N`aT;X-N;wn2IgJQBQ= z0|z|~v5EuWLJAHHmsfCcq}Ra3y@~_DX^01wyeX9#Xu-yq+W9 zz>y)Oyb)0mq`V1HK2qL{yC_oLf;iiFE3WY=E?_F0=WU!PFa^DxGrXf_hIev?(1PV% zoaNm$v%H70xC@r|QnCP2-iQ07@qS#FM9K#!QFWwzkRJI1%ZKQe7c3t}D2$YkASP*i zlv23dH{)ZtvyG2)T8spr;J`s6<&#tvkn$<|r77rM1Z?BeTndW&31nME?^LTC>U!Veg#C(w>zr>Lt#C#c15yX52Q9fe6in}OczJ@s4 z_&TofDK20toaY;yCxDo5a)xi!%m*vkDy0BP*&0{1LbIh!az9&F-hZCO5p+JINaIB z@thWvJ%IxU4U`y_1)!WrzXX(%5P$^%mxAIR$$=nH@Xae)jZ+ZMI5`!8dN?@^&tX15 z#rQZmgCo!6$PiA>LR17NXCunT$vL=-;^bV!VULe%e2NR03gJ6 zLkK4qbCyeLW>F}Mi<3(!SpX+ZxKA3F;kqPFE~iA*adHJc@^P|?ZW$+6A{53+95G4b zDoWwugq%9t#x6dV_8UfpA<5EyuI|rgTNf;f7XPk5*P!A_- z@Z2`mQZYVG)^X%|jtt>s1EL~0*@!3~CtbLU;^bPy!JGis_!Ji~70z=#=Lz8C2F|dl zW`-L%LkK6`oMm&(ED6fu;-rU?1#q$j_eo92r8$UPMI@axnT4LP(agIj*lM?ONP>6Q^vKq!om8N?)w zBBk&UQo1;HhqLP1!&Uz)p!$7(=zrDH#|bFn#Kh^)(Ky2vXG&(Fr`dg$ zEzb6Izs^ZDVe#ha0Zp!3r%w&{+_bHtj;!rY4Q}3-8cmfG=Cn9Bq#btNxH!L79pGK2 zhEC80sL+MBxG1ip4i{I`3A)7V<8UTJo^_;l5M0TG-Dxxhw1X~7-H3!ZH1gn80ZDVv z-wG=|t%+7~xy8C{0rx0SuQ60ON4dhru^@H)$Vl%qBs^r%?Nzq8I?SIH*Mz4X(d^AR zq9ronh*n#yj_cPP&;yC!Y{s8q98WXh6!0_?oKhTLGvPGrFo)Dt9bX^OG}|yPHpbyW z<}&z@xfI$-T}g3mZ9TK=7O7QVzx{NmJYZ;0WD1E-K^)Gibn6T^fhoX6OF!E zs#SCC$Kv|+`exGe)Hmtp;2Xx1@GV2%ut=>s&DyfQ;-9$n{+O3)jQ@x7{Krc{XZZhj z9DrqT0yUX)RB*z)GFd9+lqu-cn>BpopNG8NoI+9gKx~|>T!0_*0(=5#wcL;X0h#c} z<6Gl6rw8~rr`%L#Pv5}S(b1lL6MGD8N9W{Lv#)bvc=(9&Kl)VQ4~GD1&2V^UXgGjL z4T9KI`2_GL26IyvP7c%;;I zb*H@RBU9cD<6@I*Ep=m3bl0BlHuJ!a7bNPf4S1^I*`C)1?COkXYF8L1wnf$k4~0X6 zUQ)waDixg8_f)l(+FNT{zd1Oqk1cmvAIG$Qi!IVH^@8$qt!Z8DZ>ln_XZp`wJgsN@ zyDS~l&0#_WDBuz;qpNxrQ{qHYOzIx>^*Ymfeq2nEb~KmnEG6WEwt#6J(11%cAObGY zwjIy|bT3&t^w`VMXkqDtwlJd6rlsFxi%K*avpT#6%G%GyVd*snYpJ-thwb3zl472} zVbQd{P|aHEfjcs&G5=#^E{fB_=0m670$$et?=nl2oN0WdAs((JfY`up@(iJs%qOXQZuF=$f8#idb$CJdO-BOU8G zE^WdHAZ>+cBjoLNY4hgocCXaW4{c-Pq2|Y>)Bc;oMKaCuX!W;3=OB*ytG|YA~N;%jFX}7)jUdFqhE=Uc571f)}Da3VFK2P z>V4RJ#c2zMz1NkCE!7JNvc=tT{V@mhK%)JjK7EfZ4n$KtKGLV9 z(NMUQCy@+-k@aMs)K5u@r!GnAr`09((_KgPZFI!#dN;c z7N6!aKI78)v*b&ZO8q?1nFem&0E;h#Y5hf6!7nkbznp}X4^KAXKK<2twEmhcz8;|U zH*E3E2(7;rq4mG{wElLK*59$kcjNlE4(NeI-wVtD*I{EslLf0Y!!_G$eaTfp82RQc^PY5hB*_3xS1f3O9t zfl$UDU0VN%Jc&{aY<;A6+AB@*zhOfES=R0^Oz6KR#owwC`tS7!{SRCGGeGEn+2a4g zgl5~GFs<2@s7G$c#3yVJv=U>GW92io0^tKwN8#${IRZ1rQa ztxvpamJ=z9Gvu?KkB1O8?MX_Do+YMv={>a0OfTJv%E?|@0MQiVcoz*!`Rryi$!0(v za@fkpW*Z-(G~4(r4?@!YXndUQfe1)!`XlXrxX2692o9oxo<-?xm+&LU@i9)V#BB&& zY}>;CW4j*07<&^!x0QMZlCfqreJOqVq z&a|9)iVc1+d>IKUmw?y9MQ-7eP~=t)@bZMsc^t2z^tL{JNfvIpDa}Wto?>&ch?fiv(ug~B{eJQbnP zDvceDCXJ_43J-kGz@2S8lhXnz&*H$c!1rt_58!(a{Sx?|i-65uM|sA5J{Kv$_X2+O zLXN@PUc>>%1HF_|Nk^k0^t}YBU+lHz@LxT%<(br})vm9D_%n=72Nw zv22vhY{K*IXOT#L(dQ^c;QKrRNj9L79}?O|8ehcIdf@vKp4-NkaSed)D;)V%jtmWb zUqe&`d|yYD558~UE(*SHBF;9xg=>6@3z!P$`8UoJ0N=Mc!*^HdA_j`Wy2lvr`aX=oO1c|)yN8E>z z_a}M^(K2x5?tOc;4&93wx6Y+@LB zWEPV&$ONVu@-9VuJ>)gvxy{xw0pwlIkyqdvnQ+PMC4xM%fANt=wl7iSktGZ~Uf>#^ z;sU0^dB`dzggmm2u?;eMsh)w%V8RTypg~O4caVjQhdeTi@y9%}je&~`T)F+~A&(4X z>W+D2GUFnT3}+;%$lN77=50hw(&(ZT-h_KC?i>RdLLS+}EE9QTF+<2Bn;AwPnaE(r z%q5}7%^Z-(BU2dL=y4xy;ec~`4D^qr9ZYDg*NY_bd)UT>20gNFNg8C?QVn`!-%<~H zWcdQ$7PtnWN2V{1-AkCoLbfdt=#iO=4?VJVi9(MoUmUZSDK20toQJGlLeLACxm3+S z7B3O#?csNj!AiVp7BXV-phtEuKJ>`qCCL^qOG1x~U+O}SjA2~psTAhix9xM8+2O*d@n(KJ@CC0&u!ynxCX%Ya*lijM}`)AuS8S?e6K>3 z558C9E(*TaAkH>ki)(y}3z!P$c^&5oY%^ZZ8QxGc!y7q62z+niEN`xv!O1>ajK znFqeN;Vx;s9oHqn_YO)_4}9;W1P=J#MPVk@yAcY5?>&e~8t^7z8>^Ghv&BOd0Yd~`vOOPkt0LU`x2re(EBo?eCT}zcTwnl z6>+xlHC*FUT) zAJ-+J_XA2)4|+eO1P=6mL}4b?j}Zz(?H3ua0e#4Lc(|zU`)@qAjsL+l0KNa^$Uk#r2zq}(R0Mi|MU)S{zu_(ly}u*QHvWNY ze2NR03g`JJ=LtaXU!39pYGzmgpFfe+-cg9MjYr^G{T(YQiwnJ@DVYboV{ixm5x6c1 zz2hiRJ?I@z2^{F1Kw&0T452XePDD)7IEhkt&^sA-@GZeuq^1EO6381r_nD# z?{oyPS>}>Z0b`5P|Ok1d_&ubXx^{ z7a_hL_%6nCNRe?3fKTDbOF1$Gz9vLPz;_vMrnlpsPy=yp2bImL*l*I*KD<$*5w;FdzqYc+3!PicS>VdC=5;)-Nq%f0e z4MJh?twl`ISVt*5@U6!k&Zp$GK*~lAEDL;HR35;0E&USsu0sI(WiAOt-oOC~zD@k- zM)y%S2PA(5b~MIj+=r2upcwv~9tsiiwjcn%5OiAwdA*3QhrDfg4ly#W0pxAx$bOCt zA#VqwBFGy+l#jeY+(nVM6LGdNgll|?3z!P$xry@xkeB2P!!-p10tb2H6lPN0f>0QFX~ZOrTPcNyJQa61oRZT5 zCRq+F3wb#z56IK#mykDs0Jh6q5{lG0Ad#2nM^o;jX%09uE^TrPhzLV(hGO`8iWDN~ zl@Lf8WxA~bJ%RXo&@=GdHcVUt(5rBy#gQTC%_1rSy*Whr(3{6y6nYDYgQo{v<5OI~ zR5;IVoF@Ri+c|?>GsB}eLkN10<}7#A%yK7XaiRAZO6CoEkHuZmcpR=vLhmk0R1bQ0 zQvwHi`zg$%x(A^!^bQ~`Pb!$Y#h)k|8e(N!~080R|=;AuvFeNg!bxaM#wg zT5Z)kT9;avs#WV!b=>RHy4JO}|8vf}_hsH>5~TlH5F&bjw3_q==0J@?*o zs{ufFnR0?GYYFJ8S4S+rWYrT8EpA$tBg5%v0Fqhx_9KO!=l~*AzD5AajwU>fqI?H| z-j?zm0zQl)!*7`K9UT$0NrKE39`JG zfUbP^5$k@*;so>-7Z#{Gf^cruya$j%kMkfR)V$vUNOnAgr%^QTVW79Ad5-`eMv&n* zO!Iz6#K(we(!AdTDMIre2U4@1EmSmyr(I_Gp#0g zmJ*mW?~jz^xmJ@rk4dEFy?|nd=KTrIk{vI??+G>UB@}8)^Ik>)p?R+$rlR^YAhYJZ z3Y28WYbar8-s^DYafC<~)Z`5UC#89BVt$}`Z{ZO&?`;6kTc(^K%XbOrn)e>D{vuiL z6VNBHh;`A94}fOYz7LT?kMt2D)V{w0NOt@UPorqx$3SmO`#u4_$MGrrhH2ktMEsnH zChhwINDjIQyM^}_E zw67bS!JKQ71ywnNz)5Lecgzp8uLmAc`_2Ra9cIc2vOJ4`u6@0T)myUq5D+~LF!#=e zbF=34MG8GmKSZc`=Kx4{oQtPXG_OC<+tR%AfDf~&;Wte4E+FCnBAPVsLLfzG-asHV zYn}pUk(xIMXdcI4_>Iq|46@B>hESR?%^OMyE^0NwFiK$3yy282zSSfnFp1Q>ktk-= zd!yhi*)bY^PpElgP^c}DvCRtFEi3Cnc z^Cn?_pm~$=h?+MA0Q8nAC&+Rt0bTPhCDvtbMTsooqS&LyHr_2vO7LiOeYsaf?Fz*(f~B>~OjSO~xI z*_1)HIn5$U6Q+8LDZ!Ff6D*|!Ce>R;Ns?PlvK*60)mwpLhU%?^vt-8=@OwhlTZKYx zsUE%vsd{S=Q&Fu2WLCX(KuLC7i4unDrN9})P$XHFM^wEu0MK2g zoFK~#0=nwiiM2tpG6}@dO6&08BMuc9W);jr3O!dgB2>W~0LhMAJdL7)8-d=I3g!Xd zIC?C`?x301HJh1ycVQWOxiUm0R5s&YVP6|4YC zvSSBI7%Er^XCB8+k_COKB5+bFxC`?G72J(SR6!pA=r&VMkmX(ix(e+1~op?mey9)sHnJFj8@@@jU=G{ZAUrW|+2#9tULM=J&1%g@i?n4Sa z&;5u{^*8|7t^iM?sNMrWZ%g$a1U^ithTkyNdx(e+6Var4j{qq`^&SOMv+Dg0&LUOs zF`#)IzlY!WY|0?poaS*#6Q+7kP=Y60P4E;YFsa@jD9O{UCV2*vNY#55#SGQ^Bb+5W zo`c^Ls^0S`)RyYKfC57G{)Cu{>P0|i)q4pj$&Qy%!ce_e;LPLrGs%LUyh`AtRPQy+ z4^;1UJfiA_06?dia)K=1B%rI_Tf}->vfd#eJbV=4%keId%*yv3Qs{~Pf(VuGeE`Xh z5AZaK@_h*Owv_K9;Cmc@h2Jpc`x_BICZb9CJ^@mM@_h=VX65?~&LWlXbD((~U%+pC zHf4})PV;w46Q+D$Qi88qP4G1(Fe%?Rl;qo1lYECsr1Jd(#SG>99?p^-|AgNYD&N0Q zs4eAd2P@>I^0h}yMfEd4X65Sulw?OolrWU96P$S*okzh z^#eXkr-t7!y*rnP{fTJOyYqk)p?Bv4safwXfU`)w8vrzq<3jk2&!!Br&1nWwnlQan zD8Zms6AY#VCcPU%NrtwXD@>a5S892#8gzH z0h#q~3{YU_L6k7`?qWEDT?j}Plw=%%lhV6H%n$T#JRVW+CIEmQGvx$XP9mV|-DF}- zk*rGy#4R>!+f<4hqcG>tA}H8Ob6Ip z5HsK`*)bD-PgoGMP^hhfn2iFWAm$*Zf|v`)ToChslI)m|68JhIUIU&lc*0V+2 zwzD9}Fua3ydf>EPDOzv+lme&qp|F+HoyB?SQKF}vtxwVw(bM{#ID}Q)Oo$cGoKc+C z4+0!vj5mE&u@NqA}$l9P? zV2Z3ZAVs_I2i=t(QfnaGjpBhAa4Ouu;AoM-hcv&*q4b*cK#CVd2CW*lnC@ev-RZPt z+O^>)zKK*J8}W)3={dw{@o;Y=Fs3)&+bEnAem)f1JP3e_af0UyRZ)r|gs>|=!&c0+ z(Jca*j)@Y;G@(Tx(~Db=Cx_AE+6-ix7!gfve2O*!?p5sy;kYIyYm-`!qc#~nShorn zn9@e2qg~?BrZzWi8U|K1Pe|7;H@9foG^07wAYz;;yosiVjJv!_4HKFXKJi?e>Ct9E zFlv*;Z1c1?jiRYW$jrm$DN%*TpAQRF)Qi+1@B$VjYe_0Tr_B`YZ{dP3TZv7!C_Dn- z;;4a4m$ViYaA|lT(`6C*m%kBWL%Xu_^HN)hPo50gwwywJgSM?~Es*IINnN4@GF_F_ zqh%n|)k$Yl>8{b=3WWb&4Z%RKfVZ+PS-X`});7{Jv|Q<>M3tylU(} zg9I{Pzb8bXWXO9uD8$VWQ20onIROMbdwP|Hz`j?0rx4g6WvV9s0SF+oq^H$_fL-IQ#E6z)5;(}EQ4pY$3WLAX49c#wd5_imk1y5)NXDcpOY#jV4+5bZ29HuRsx59^%w!R zyVn|pC{=4hI%S&UMhj8)uF4|7j^|zJMG7l@Cf-V5*Z98#5b(VdSA_`7EAA2`P&_-| zOJMKtUs(xke{_`v0V_Vz0geE+FT6c~fM2_8Faeg?={7G?*nuM@3Ie`q?RqZ)w)dfp zR-!m2zpPXIzx*JC6t?%TOW+8=eOpH_0q=1q9D!0ha;gsYFTL7Il)4W;R0!;J9}OVj zmF!@UC^h2M@#-%oDa6|8nCvBxbKSHMf!%M{SPV(!(DKM?d?k zclR?Er0^xTzw0I7&MFQPsJ)=kN}#OW%L;+IN3;AgdN?`l!H+4{PRR$11#%jCUOQ2}|tPp{6*H|loUH6V53ab~w zY{v%$USzRq`NdKc^@J((6_Q5%AqN_aq9h@3GB-6qft9Br5`L%X>LUlp~dB zGy|n*%Hv)F-t)!;33&2@Rs#Mmqb&$n?d&aZ1mUXXXDLKEBn$4)-_H*atM0embWr~4 z6IP_KLz7nMVA&C$&MNr%O+;zFu^oSY8e}17m-wjpo>7N`NMU7}EeHjA+A`<0M5!*Wu_9n; zw{Is3bA6Z_LJF7H;<*=>>#Tj%&s&hi{GVN}Q);h%Er1lh!q?40ph%QEYk04#6)9{> zk5AzUGRNn=r4Xg&scBZC6bfBsyTupBD*Ge@2U68eyD>;Ifn7~R;aAD`eE9250c5eQ z^>-7C)i`E^h;sPa8D0eU-`XdI04q;g97GDM%3G!okmb(yE^Pz?+?apr9Gzw4b705y z7G$x*mNUHwcy-PvAp-Ai?x+xOdp__YU`+#yLIlbNmRSkZ-ua$|z%}b$(m~@H6;`6u zT>mf}A;a>5-&u%ql{Uvqpjvzvtakr2g(#l1fgu9Z-@L^_z_;LG1p&`^;U79E9{8mW z(q%q5vbtFI6>>m$#~pvOB4B&|`Fw~dwHg!b1Cqu&DY(hQ*Nplqf^p5&akvYnF`T< zv4(S|Scy{H)D$FexSP+5fNy$gJRAWO9{7b70o&BQgO@0^UE>2p*(cf*w)u_gti;mX zH^C8vol7Pv1hj`b>y)LU1X-nQcVr8~{q5F;NVvZ9&AM>@5qA(N{Ibi31`x2uN8a`# z;N>@;7eK(QvfbJ9hoL|KO0F~^+`oI(iWFX#^dzzPtQ&9l5@r9m?<@$|MrjD`Z2!1I zEaQb2`5y%W$f!MYg2dV?a%P2JTpuFJo)7GBgiC1eo?}J8{IZ@8%c8Z?#T-U!|{Db=J|m--bx0VpcmV0=9K?5gY;R|MuGu0v?$E zx|aZZ?kl1&+3K1kd~d$l}#2&V?g@P5W;R5vc0DGC-hI)P8)sXfL=+C_htWv$g$wm4sQP zP<6g3;p`A5XEjov4+io`hL`{A)gZCl1qjg;mafP6z%GmwS=YTtAmS@^J_$tWf=qSZuwtpX=Y-5g=CMJ9`N59nSF~ zr0}gzOjQuDU9xd$=<~FNSaXF{$?BfIQI~1FVw29QS@@V2Wmt)95O=p*s#8j3d%9mH zx8C9yAXy-Xz0-0s^TXjnO9U%m~ zQ5Z{nS9W%gD7#jE3rAq(i1vb)^C1?bumiV$Ml4oqy_W!ARXNOyEMB`~q7IB2yXe;z zE3#PaM_D>JC~b9{FogKLV6C3YFiK0SH-<13x63cC;@T$^q_E5*|FROxDL=j9&l4=f zI{ZMHmw;4Jc1$#XJW-gS+_P>;0A+YtcAsjTl%CG0oy4% zYd&FPv!=Tr4w8(lAz5v3V1R_@%Film`x=sArNRQ?h0p(sD7^HYMg@g=ov+f1fXNOo zcS!4Wx9rp;PjFaC=IHX$5CUHF^Dzoh>MtJ)M@U{HmDVO%9@%}XNl+{(!*?#wo~1*|G`nPRt7;h53a^%-qrl%yJL1 z5^L9Ix55$cdHY*d0@6fhRZ{(qiQ1T}*DQ;WDZc(vqOkHF|L|gRR@(P5g}{!VJsLp3 z{j;`t31nrz4@Z#M^{2cLQR?Hlg+QI?zVX?jyTp}*BVJ@Nmu#}PUbUJieET>}XXW6k zag=fY>bW2Re}{*N!t2v+@FInmUD3&kfbEhhVf2zJI?N7{jM2?;Pf87vuuHzNJ0I+! z5T!xB-YwfwtVrQi!qvdGi*jf6B01kAU({}Khdf`neVY4L^M3#P5apBpm zUz#GdUmnvbjnYrzTUKu+8L#Z89NTe6fG7#VBH}4SpY$SyYog1*jM~p5dL^tE1eHU4Y2b_39)#ctPd~gc&ARO9rjGH9o|nx z=q?KaR(J0uR-!ni%fhhm4>lel7E6`g|N4vfc}ckXuD5~&w67F6LO#2?93{Xj-`$0z zxxCl+pI8V~J04IF-2dq<^%ewt%iLFV;Gf>lN|ZwHa|BrV>W_8GA?LNhb|`$^itb(l zvP;D?Z4C3_#XN=80hD3&=U*5^z?Tep295yg zWvyQ89<8&CzSUakI&0z$B;4!`tN!FEJ-Oix%X_v*2uR?~5Z))2F3N%zT{b>|ELJOh zAWgzbVV*xfmr^N*chdK$tZA>XnriO115V(N+SoDPh`xa{@@= z9%)*aAMO<*imX6bMeRBZQBsA`&bNs|VTMs!BE7PPJGANQm5>N>wn^=ky-~i-a7_I& zH$XB0=}!ps{JWJXMbDRb5wMa~?L$Oql4`R@XdS;%`fW<3FGZ6srWB8rQn4I)t%}X1 zR?LU(dUBE%0YC8h&xyhhOS@&q#5V%O@?Z6)LZCo=o@}k~tFx85%(Le6`3x3?0IPG)vo zuz0TMQt?XLFLdDo@yRf0c<@bktyM5N&wAu-F9GRY;gxa(!6ki+<-(20*S-1x$imgj zW%pk;zP#qqJcU?CKbaCDQ2o@s0Ro3MbXEwYeeZxHBtLr3T|orAYRGyEQ39gYVs+Nb ziN*FvPtJkfe+;1vH=M)!3kT>FkErlj?e%klBvULiG*s(I&db1o9CTfuXM?~D8IUJe{!ZMb!Z1p)UNU3<|;G1o=UTZvV(|6U!`D($^UVeUa6 z!x2(d3O@kzo!`ewl(J3zf(TgULz_Yb3?E}v$~-Spc=f1BR$?vsx>EoFzfvS;n?9Lk zAxfzjIb!>SCx;t#f?G7TOnv=QJ^3El^F97#P*3jL`(6<9VYzZt=wSKAN~D_J&nyV^Y!L>b;x)h9%t?u_1E0^6nQyTBV##`yZEm_C zfE2^s$I3F#REQ#dgS>W6ryx>TnRqSCXsL}6mW{F+tdNe54bnqiW1DKBCg=d0=`%J`OEfw93V+Pvv}V0RdJcDhIyfrOZ$} zywx3YqiBJ3{%7@-3Z3uZ?!DtDq%45;rNUsPpO6RDwa=p?CX7oMxuD`@fsd7dn!VzwDn|DEwC$0be1^4CcIPtj?0-p8Sv;%`s{}>3HErU3dJ< zul0Pk=Dy&?3|ZlVWGez*`N@Mir9{{ye5)LZFkCuyyrXwW^v8rx4BY=R{iOvY$En0Kt6qYda%7%W1^wKnZSF9(0LXKB9 z{4SL!eD~9e7c*oxUeGg0Kz?YfR(gPIrT4N}w(mAsOEeuWr&N5`Ys`Ylc^~N)-L+%{ zvDl8UdjSV7A^n+rdGcWkQh4LY1TTU8*Zd(s!0>QZec50oic1c1RXA@~h_Zj{-*li3 z`Lh=(?D%ulI&iPnbXKEyQLIQf_gJ~;<8znj7w}rCNQRfMoFaR}}&~mkuMq3v<&0Na1quj(Y}tZy}2O-g!~C{<@6l7uaE@O!1fo zownonJ3$gR#zGIg@<%UG_RqpB@z=VQc;xIKqup%EFZ6z`UV; zwuNLIax`g{Y!V+eUdBso$TPjD+x5VuX>B)sFk?$356;>d>-I}j3 zW4NDEF?E8?625;Xy*u3SRvLD$v@}`GxSdu^&UXxbF+}*!%6rUIe`G@kcEL z0&*lIAl?r*X55s?LBGwilB?^xAVjHVN;hGHw9y>eLjhzlX(94T*|(Dedff1t8N(gg zNAFQ8Zd59A3I^LR4c@JC)=7;R-D+-L9v0RXyFt{@%ys@@xC?kdS+lZw*$(fOZj62V zukoS`n<4G@9irZ1)rBK0#5yb|q@;R60WByV7 zp*l*%Q)FLZ@174Wl**VwI9s|}%dUJrKrHFwWEJ(l^&-Wvm)Tf$okA2@aD27!k+Xxc z_fWe0d`iU{#bgtf_VF`B;m5_G4J(kdr~*@72w{e-On!QMUwlnLO0(f3`y9ONo%2YT zSBSAtZn#6%OGo(5N7I6soXwl?jzXaRgTLvNTruRx9M{hw3NMob)c!5)0`2gkR}0-> z)%_mUDaD!I5V4$6_<)$n$c*lYCS41A#H3VKFKv*`BW|@&a_L58tBQ930j^cr+ol8Q zEN6And3HehsEpBo3OPxwQMyQtS%Jo6lZuDk7R;Hs|8_-)z)o9&4g$g*!Y6kx2@7XAcDmtU6MVeH&>G`$@|2hC~w?U z&}z_C2w|4?|a)qGA=pBQhMY}E6G&K8JYnxH2hJqM13ki~t%EyqjcEDvK6jdZ>meo$5-23z3nGhG#Pw4UuzB-Wh6rSOudpECdluaSM*zDE?hO*y?)EDL>Ly=lLBRHj ziN@TRAY3DcwfQwKy$d3ce7l^!q+N4mh$!`PepX}fYztA!DX4`lH?_F%3gY} zH}zYsFgoROzM)?jIm{T+FO_oyvSkP1*o%dF@^U$8<-oD`E$vVxO62s4LfP|nib=#w z+5pTL4%#by9xaS*wxb7Rhoy72=nApzVoDk-k%h8P`d4;medHzK{bE>>rOWYwE2S4! z&LHCl<+Ob{kCN{_uV09gSM5&>AmG))rsW&utVyFwwL`edn4Iar3gjw;Et8(rlWTI6 zW7j)9y_g}ZUcc0efLH(39wM+$%yDDdCrg4vX_)hYg+TSsR)h#lO>goNsCad;f`IMn z^(QNV1GiL#2vmvgEi(#NmOHQOa-%MMT+U*UQ-+!0GPyxaP2y9gEV59B4PtzN?H4op zx$nCVL&)NqD0l9C-~xq&OJ#SzLE8Mr@Nbzccj+hQasZ!Ki5>@+lTEnv$Fsv?syJ&9 zy)Cv~E-@(*mM7mKd;`WO!%AoL*6(mr*MnBPF&-Q=lR}h6S=@EP zkIrtD%2p{oK*kh!V_Ld=;mnxSlYX^TzeKql-rPMt+l!ar#d7&k>9^fNMA<6W3RJ%} z#)=eH^2+OQ1mVqMOoPd8GH<^5Q8y?gWAqC)%PD*HmIFGgLH4a0gtwB-UF8a3DmMNf zp9c}}onpQ-+kN@*5V1DOZnE*E?D^et5@v=2XRGw;Ny~v3%X#h%axP(m^a#1d%oHAw zlQ+GuKWw3E8J+Yp>7m~`=&b;zgf%(zEoKSXX{npO zLi$`-A>A3I^3$^I=`O8*#EP-=+_a80HMO8P1D3mIrKj3Axg56CRPB5Ztm!@nQiky; zj*BzZX?KCZfQTi>7p71D#X=usoG%LPO-!44j=%l z_p~8ue_Ae_3#;xmeStSEkku|SuZc@-svwR^YVTIziATfgQh1Ir@#-jbBs@hzvUahGH%r{HI(Hmw z5vF!f&rNYOfav`%3G z9y*imxSe(ftn%yvvgsncL)X=~PuTQ4XOZ23+qfwk@?mq2B3Lu3Xl}a`7h*eM0l$(4 zm{#z^lKun*!$GLFLc3y1PlqS~u&h5Ktt&r2*9p6@&a~yGyK`-@X~R@yrPGdqBR1qa zlp@uhN4e$M?HQQbrr$u=CDR~ugR;@)QWN6hAZ0}UkO}bM0?WirP9=e?yaGribD=A2 zbiz3&Y;TL>4JK0qt?A@ zb$gJ=(|SOibq1jD7$j%TW$$jFzvj>wJyW!^^g7SF|@9ZUj1r2&)mNoeMQI#5RC1BluOP zre0&`qR1m7 z;oe3;n?&~pO;Xp@^Wlwwev4`abQh|Z77CYOeAmriY{UnfsEkq)wFI>@Sp!C}8|~sK zaZ1Lvh*L7I^*AMo9&LP^M#F>%qhVr-HYr~1OmRvkCqoR9R!xRWs1=3_Ol>Pp$)yyS zq$9j1P(!+ewuJmYEkZ!JOEl$bm zr2bLjl&ncQ(9!~1n{=C7h0;dhoooRR_X40*{~K0QMVE3ts8W^;HZP5WOp4*%o!->#Vb7qkEVi}qilG$O~1 zb*V~0K6E@{2B10g+`nr8t{Cgyw01+<@_A{K(`oU?Xm(X#&~127jXfED=) zS$Dx76;^D3WcL)6Ql8nB#P#FG{tzP(#9}t0Bg<8+g_(b+%0|2hqS^f) zwGjvZa2xU05jNr)v=UES8!-<2iD)5$tr)Wrp=N8>?muq-?FajBg#+9_;HJYm5q)k7 zbPdvS?Hd*727z-$CMMiRM49SHxAaI;P*rn#@4RxE_ubT|W+YULK|)uU0xZd$0o5eNZGReR$ygYj*Js-6FA4 zlm&Mgeya(dIIGo)VejIGZo%8hwZrwnF^58S_{oCmy~Tq#^K%RBx=%_xGG!A79yjq2 z3HCx;t{YxWJmx(D7*c;rZf z*v6%WROH2{BqSy#P8mOL(zpqU<0nrZH^p=tExBPgMDCZk|B5$|96UymYQ1#-qwe$T zouc&#^ZA|Kn$NGV$>-NE!d37?e17MEx8Pil)<44Mcb-Q(-|+ce5XI-WV(sQk*TPGd ztXY~{n7DS;>Qy;wCvToJafUX)v z&b^CUIQPc3?%W&a(GuHq?v0Od?oCM1CQ9etq-1S!>(0F?mSTG%N`5 zWghMF2ThLTyt)R05ToICWwMq+Z-w~l z+i>osrf61=W{cw7O9ST~s0M@|28{q0pSeiwZWT&;LnJxVtwQmtk>o753MHByNzT!o zdsL>m@#=-J?LnNnL|vp_0MD>7S<9nmXyM$;kLKJf_+NGIk%iax&wt$hYlzu@WO2sq zKf~0cmXvJ5Q)d5xXC-F-Y0$W|Y5q;znC@7RRhXQal)h%>g0brOHS>#Cr5CT*_&;m@ zjT{Mz)4KVG?3non8?M+3?c}!$v+Pcl`8N~{z&6dlx>m+^fBNQMpQz^FkqP8M-#1mho-HfERa{_~ zYaOF(^6K}U)5>~of1Q6s3EgN{xulWKI^yQ8cr*P>S1`70h5bs5-Cd15)U)u3yEO}? z_+z`e20<+#M2d{365G`k-bQR!S9l3V{I=MxuJATuySl%_!~0gTU0vaA#CCOsmtchTl{+59c6CKxWo%bhXhCATy249{?dl3IA-1b4 z)CsX&UEw9fc6Ei%A-1b4XoB3ct9h50*siYdT4KAp!UwW_Ksy@qWwBjdK_z0ly249{ z?dl5OMQm4B(1h5ot~ecr#ddXtmk`_46+VdAuCDMBV!OJ+=MdY~6*M8Xt1G;O*siYd z5@Nf$!b^zl>IxO3+=D!}t1FI9$Xx?@Y*$x!8?jwo;RA{7>I#|=+tn3bLTp!8_#9%p zy249{?dl3I;is{yD=vr2uy67wwS$Fgw4E!g9&27C=Jxdt+p1M;;|hz=eCLFb!*_7? z@AE^1U)Y1-f@HuFy+@2NI)zQ|he)SArC)#y2V%=H~ zvGbO`wW>dDv^u6*9YWEc4caicrQT`>o$fnBU!#|bOY{6{ z_gL^;aQywB{e$(N2XTW;_={No*;VfU3X3V@k=N0YpKJH~I_q28`F&l)UYvg4VBEmf zWpn1xhMf6IrajN@!0jJs>(lwL;cJfH4Oyt2eH~$^9EV@+>a#4(wcB7H2eGYanjN-@ zof@Z@{)VqmZFxCP+T*o2-|bLTdv3vKWl>g+eb8{f+wSWm)~I$5-=xp)i`!`1BsLoM zCvEbb5w?q`e=hq(e_UTDSAIciK^UQZ9)3F=oj~_5_ML@$RM_*`_44)WM@LtxKo^L>CSo!^F<_(A8o8T)Pe;jUqY zGVYI?3j25D!kxw8-okVO_xbPD=v~#$ZPe#(bsA^^Y~qmTvgf&AN61{4-2rb6H|9kJ zfe#Bx#ZIWJ&b4Rwt9)H$P*r@juvsQ3MmMKDcSEXbb8JLubzYS^-{5t2+BZSKhn9@4 zg<0_3f*!YELCky$HVGH2iRw6Ye6>0Qn;$5A+VeZZzrZv14ZGUI7x8r&O<_-6BaP_x zeqZmF+g`#e7R{G$fVt?6bo!Q;eqYb#uOXtDBZceLyvMEaad+`WHhxNE<2RfNK!4IS z)uyKFznU(s|%lu8PfMt8xKMgYXGhqpB+^3|(JEhvjyP?kkf+-{qA{XHNi{z?d1 zyH;JL-&#Zqto)cQFx3BVMz8-{sasE?Sr~-Pg3W=u0Hx*YyZpH9xw%Saetw3M4V%L| z^;V&)Y!%{s{ihQ{?3_Ihr1O;mYACR}Ke>v$v%aY_d`hxP4{sM1wQK()RPjCGyDoq| z&h4rCmg1oO9i6ayFn$F;o!bABu@ee&r=%~;pFVS@GikxNblbvlNi);tr#r`Hy3Mu! z;Fh)ja8Tu+LhX5 z>InVTBASsQQJWE{{~sKt+qIB&wD>O(#diAD|2t35`acDVW4PI3iqZi{O;_D{IeuRs zv#C6jsI7#^!M=ccUbvCpZ1cg+J{^E3Z9ITcZMs$s<&*jneiW;CYL$9v)XL1nFjr>b zEc~L{_Tb=`HbzZQN48N}s~73fiB#-5t0Tj@UfB5NEt-_HdCD3!XHiai{@S$sN#j=L zO<9z){0hH13c6fFS~j}W1Mie!&xPPdz&}IplFg!XSn=^`y)Us#{cjS1T*L8qSSdf1jdRnOR_j#+RtT3etd`1(flC7`2= zdaYi(n69Je)%@b=M*qLw@sjZJS+1@OKaKNs0HeaMu34;hU97GPzlAvcQPlN|)l~Ra ztU9la*YNLm@3vN{o~Vj!Vwe>d zD`Y>P>Oy#^N_{wLA($BELI`J_-i6QwJfs_-r*f)G;V)I{`%z25#4wjaIP3H-g$~e% zJjErD-MxLgc2(Iu;5S-1L}QyuBZ|Q3T_#-=n+sg3r@E2I9!upiuC;QB!Zw#nOM%n7 zTsq?Zho|~uSwV%evb92q!ZsI5OM%n7P&z9GHV2Ghom!hVdlMB)acjjAg>5dDmI9}D zv2*}eJzkpXzc6Qn@_PTDe4Fo6Du8!0BBs9l#rZ zs>|eUDwB6wE0ZW}bD6XhIK9iHvp#xqs*9y7Y&uw#-3@-Dn#NJs=3;3naJm-@m|%`m zZiJ1dVj0s~u|#2;i>0N&>0T^F`R?3P-eFlv#j>omVu`{w7fVZl)4NzYC~2qsQ*lw5 zxLYfeC~R|?v=lhq%OvlVJ6sM>nKZUmCQ;btGHEGrdY8%1l)BAb6t=lUS_+)r zCDKVr!@0hv*!2}pr81(mQi;Mgmr6^4)4NpK!<4#HI>4U2kV<4xYb6qeZ7z|P0;hF} mEN)pG`ZSC6YM&oC+2O~ZaR8Hm! Date: Thu, 14 Mar 2024 18:28:19 +0800 Subject: [PATCH 055/204] [internal][tracing] Placeholder for `promptflow-tracing` (#2268) # Description This PR targets to create a placeholder for upcoming tracing package `promptflow-tracing`. **Switch to `pyproject.toml` and `Poetry`** In `promptflow-tracing`, we plan to follow [PEP 518](https://peps.python.org/pep-0518/) to use `pyproject.toml`, and leverage [Poetry](https://python-poetry.org/) to manage dependencies and package. In short, with Poetry installed, one can easily set up environment with `poetry install` under `src/promptflow-tracing`, our CI workflows may also benefit from this (included in this pull request). **Versioning** Different from before, now we make version declared in `pyproject.toml`, and in code, use `importlib.metadata.version` to get it. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Clement Wang <47586720+wangchao1230@users.noreply.github.com> --- .github/workflows/promptflow-tracing-test.yml | 93 +++++++++++++++++++ .gitignore | 3 + src/promptflow-tracing/README.md | 13 +++ .../promptflow/tracing/__init__.py | 9 ++ .../promptflow/tracing/_start_trace.py | 8 ++ .../promptflow/tracing/_trace.py | 8 ++ .../promptflow/tracing/_version.py | 7 ++ src/promptflow-tracing/pyproject.toml | 84 +++++++++++++++++ .../tests/unittests/test_start_trace.py | 19 ++++ 9 files changed, 244 insertions(+) create mode 100644 .github/workflows/promptflow-tracing-test.yml create mode 100644 src/promptflow-tracing/README.md create mode 100644 src/promptflow-tracing/promptflow/tracing/__init__.py create mode 100644 src/promptflow-tracing/promptflow/tracing/_start_trace.py create mode 100644 src/promptflow-tracing/promptflow/tracing/_trace.py create mode 100644 src/promptflow-tracing/promptflow/tracing/_version.py create mode 100644 src/promptflow-tracing/pyproject.toml create mode 100644 src/promptflow-tracing/tests/unittests/test_start_trace.py diff --git a/.github/workflows/promptflow-tracing-test.yml b/.github/workflows/promptflow-tracing-test.yml new file mode 100644 index 00000000000..59ed48fe01d --- /dev/null +++ b/.github/workflows/promptflow-tracing-test.yml @@ -0,0 +1,93 @@ +name: promptflow-tracing-test + +on: + schedule: + - cron: "40 18 * * *" # 2:40 Beijing Time (GMT+8) every day + pull_request: + paths: + - src/promptflow-tracing/** + - .github/workflows/promptflow-tracing-test.yml + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + WORKING_DIRECTORY: ${{ github.workspace }}/src/promptflow-tracing + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: snok/install-poetry@v1 + - name: build + run: poetry build + working-directory: ${{ env.WORKING_DIRECTORY }} + - uses: actions/upload-artifact@v4 + with: + name: promptflow-tracing + path: ${{ env.WORKING_DIRECTORY }}/dist/promptflow_tracing-*.whl + + test: + needs: build + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + python-version: ['3.8', '3.9', '3.10', '3.11'] + fail-fast: false + # snok/install-poetry need this to support Windows + defaults: + run: + shell: bash + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/download-artifact@v4 + with: + name: promptflow-tracing + - name: install promptflow-tracing from wheel + # wildcard expansion (*) does not work in Windows, so leverage python to find and install + run: python -m pip install $(python -c "import glob; print(glob.glob('promptflow_tracing-*.whl')[0])") + - uses: snok/install-poetry@v1 + - name: install test dependency group + run: poetry install --only test + working-directory: ${{ env.WORKING_DIRECTORY }} + - name: test + run: poetry run pytest + working-directory: ${{ env.WORKING_DIRECTORY }} + - name: upload coverage report + uses: actions/upload-artifact@v4 + with: + name: report-${{ matrix.os }}-py${{ matrix.python-version }} + path: | + ${{ env.WORKING_DIRECTORY }}/*.xml + ${{ env.WORKING_DIRECTORY }}/htmlcov/ + + report: + needs: test + runs-on: ubuntu-latest + permissions: + checks: write + pull-requests: write + contents: read + issues: read + steps: + - uses: actions/download-artifact@v4 + with: + path: artifacts + - uses: EnricoMi/publish-unit-test-result-action@v2 + with: + check_name: promptflow-tracing test result + comment_title: promptflow-tracing test result + files: "artifacts/**/test-results.xml" # align with `--junit-xml` in pyproject.toml + - uses: irongut/CodeCoverageSummary@v1.3.0 + with: + filename: "artifacts/report-ubuntu-latest-py3.9/coverage.xml" + badge: true + fail_below_min: true + format: markdown + hide_complexity: true + output: both + thresholds: 40 80 diff --git a/.gitignore b/.gitignore index 85b40811f1a..30720143403 100644 --- a/.gitignore +++ b/.gitignore @@ -185,3 +185,6 @@ config.json # chat-with-pdf's prebuilt index !.pdfs/ !.index/ + +# Poetry +poetry.lock diff --git a/src/promptflow-tracing/README.md b/src/promptflow-tracing/README.md new file mode 100644 index 00000000000..b903cbf7476 --- /dev/null +++ b/src/promptflow-tracing/README.md @@ -0,0 +1,13 @@ +# Prompt flow tracing + +Prompt flow tracing. + +# Release History + +## 0.1.0b2 (Upcoming) + +- First preview version. + +## 0.1.0b1 (2024.03.08) + +- Stub version in PyPI. diff --git a/src/promptflow-tracing/promptflow/tracing/__init__.py b/src/promptflow-tracing/promptflow/tracing/__init__.py new file mode 100644 index 00000000000..290d077cc37 --- /dev/null +++ b/src/promptflow-tracing/promptflow/tracing/__init__.py @@ -0,0 +1,9 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +from ._start_trace import start_trace +from ._trace import trace +from ._version import __version__ + +__all__ = ["__version__", "start_trace", "trace"] diff --git a/src/promptflow-tracing/promptflow/tracing/_start_trace.py b/src/promptflow-tracing/promptflow/tracing/_start_trace.py new file mode 100644 index 00000000000..051ea9a2755 --- /dev/null +++ b/src/promptflow-tracing/promptflow/tracing/_start_trace.py @@ -0,0 +1,8 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + + +def start_trace(): + # placeholder + pass diff --git a/src/promptflow-tracing/promptflow/tracing/_trace.py b/src/promptflow-tracing/promptflow/tracing/_trace.py new file mode 100644 index 00000000000..e1a0b9c0a00 --- /dev/null +++ b/src/promptflow-tracing/promptflow/tracing/_trace.py @@ -0,0 +1,8 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + + +def trace(): + # placeholder + pass diff --git a/src/promptflow-tracing/promptflow/tracing/_version.py b/src/promptflow-tracing/promptflow/tracing/_version.py new file mode 100644 index 00000000000..fa16431e71f --- /dev/null +++ b/src/promptflow-tracing/promptflow/tracing/_version.py @@ -0,0 +1,7 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import importlib.metadata + +__version__ = importlib.metadata.version("promptflow-tracing") diff --git a/src/promptflow-tracing/pyproject.toml b/src/promptflow-tracing/pyproject.toml new file mode 100644 index 00000000000..07b58c43430 --- /dev/null +++ b/src/promptflow-tracing/pyproject.toml @@ -0,0 +1,84 @@ +[tool.poetry] +name = "promptflow-tracing" +version = "0.1.0b2" +description = "Prompt flow tracing" + +license = "MIT" + +authors = [ + "Microsoft Corporation " +] + +repository = "https://github.com/microsoft/promptflow" +homepage = "https://microsoft.github.io/promptflow/" + +readme = ["README.md"] +keywords = ["telemetry"] + +classifiers = [ + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", +] + +packages = [ + { include = "promptflow" } +] + +[tool.poetry.urls] +"Bug Reports" = "https://github.com/microsoft/promptflow/issues" + +[tool.poetry.dependencies] +python = "<4.0,>=3.8" +openai = "*" +tiktoken = ">=0.4.0" +opentelemetry-sdk = ">=1.22.0,<2.0.0" + +[tool.poetry.group.dev.dependencies] +pre-commit = "*" + +[tool.poetry.group.test.dependencies] +pytest = "*" +pytest-cov = "*" +pytest-xdist = "*" + +[build-system] +requires = ["poetry-core>=1.5.0"] +build-backend = "poetry.core.masonry.api" + +[tool.pytest.ini_options] +markers = [ + "unittest", +] +# junit - analyse and publish test results (https://github.com/EnricoMi/publish-unit-test-result-action) +# durations - list the slowest test durations +addopts = """ +--junit-xml=test-results.xml \ +--cov=promptflow \ +--cov-config=pyproject.toml \ +--cov-report=term \ +--cov-report=html \ +--cov-report=xml \ +--dist loadfile \ +--log-level=info \ +--log-format="%(asctime)s %(levelname)s %(message)s" \ +--log-date-format="[%Y-%m-%d %H:%M:%S]" \ +--durations=5 \ +-ra \ +-vv +""" +testpaths = ["tests"] + +[tool.coverage.run] +omit = [ + "__init__.py", +] + +[tool.black] +line-length = 120 diff --git a/src/promptflow-tracing/tests/unittests/test_start_trace.py b/src/promptflow-tracing/tests/unittests/test_start_trace.py new file mode 100644 index 00000000000..4a37d4a61ff --- /dev/null +++ b/src/promptflow-tracing/tests/unittests/test_start_trace.py @@ -0,0 +1,19 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import pytest + + +@pytest.mark.unittest +class TestStartTrace: + def test_import(self): + from promptflow.tracing import start_trace + + assert callable(start_trace) + + def test_adhoc_for_coverage(self): + from promptflow.tracing import start_trace, trace + + start_trace() + trace() From cb2b5d22f760fa526acfe0fbf070422c316aeac0 Mon Sep 17 00:00:00 2001 From: Xingzhi Zhang <37076709+elliotzh@users.noreply.github.com> Date: Thu, 14 Mar 2024 18:58:28 +0800 Subject: [PATCH 056/204] feat: enable multi container based on environment variable (#2313) # Description This pull request primarily introduces the ability to enable multi-container functionality and expands the capabilities of the Azure Machine Learning Designer Service Client. The most significant changes include the addition of a new constant, the creation of a function to check if multi-container functionality is enabled, and the extension of the Azure Machine Learning Designer Service Client's operations. **Addition of Multi-Container Functionality:** * [`src/promptflow/promptflow/_constants.py`](diffhunk://#diff-0d3cf5f31883ff073bf1e11cb2e17db5cc8fe6e5e38cbb4af7b99f37ac31d41aR14): Added a new constant `ENABLE_MULTI_CONTAINER_KEY` to enable multi-container functionality. * [`src/promptflow/promptflow/_sdk/_utils.py`](diffhunk://#diff-47208ac35b30920275fcd5e55d662647ef360129359bdc77fddd2a2157b6f47eL35-R41): Imported the new constant and added a new function `is_multi_container_enabled()` to check if multi-container functionality is enabled. [[1]](diffhunk://#diff-47208ac35b30920275fcd5e55d662647ef360129359bdc77fddd2a2157b6f47eL35-R41) [[2]](diffhunk://#diff-47208ac35b30920275fcd5e55d662647ef360129359bdc77fddd2a2157b6f47eR983-R988) * [`src/promptflow/promptflow/_sdk/entities/_run.py`](diffhunk://#diff-14f4d7a1d9b077c7b749230a92628782f990e1fc7cb741b20ff894f868327020R43): Imported the new function and used it in the `_to_rest_object()` method. [[1]](diffhunk://#diff-14f4d7a1d9b077c7b749230a92628782f990e1fc7cb741b20ff894f868327020R43) [[2]](diffhunk://#diff-14f4d7a1d9b077c7b749230a92628782f990e1fc7cb741b20ff894f868327020R593) **Expansion of Azure Machine Learning Designer Service Client Operations:** * `src/promptflow/promptflow/azure/_restclient/flow/_azure_machine_learning_designer_service_client.py`, `src/promptflow/promptflow/azure/_restclient/flow/aio/_azure_machine_learning_designer_service_client.py`: Added `ExperimentsOperations` and `ExperimentTemplatesOperations` to the Azure Machine Learning Designer Service Client's operations. [[1]](diffhunk://#diff-0d897b1801e67d281d2e78b96e4735815629d7341c4ba5bb328326bd917719d9L15-R15) [[2]](diffhunk://#diff-0d897b1801e67d281d2e78b96e4735815629d7341c4ba5bb328326bd917719d9R32-R35) [[3]](diffhunk://#diff-0d897b1801e67d281d2e78b96e4735815629d7341c4ba5bb328326bd917719d9R75-R76) [[4]](diffhunk://#diff-b86b4b5a24655b993946a74b33780deb5eeab5452feb269e74456ba3871de495L16-R16) [[5]](diffhunk://#diff-b86b4b5a24655b993946a74b33780deb5eeab5452feb269e74456ba3871de495R27-R30) [[6]](diffhunk://#diff-b86b4b5a24655b993946a74b33780deb5eeab5452feb269e74456ba3871de495R69-R70) * [`src/promptflow/promptflow/azure/_restclient/flow/aio/operations/__init__.py`](diffhunk://#diff-f5d068b386d3698c8836998d281dbf65844be98620f017683ab25632bd7f4e29R10-R11): Imported the new operations. [[1]](diffhunk://#diff-f5d068b386d3698c8836998d281dbf65844be98620f017683ab25632bd7f4e29R10-R11) [[2]](diffhunk://#diff-f5d068b386d3698c8836998d281dbf65844be98620f017683ab25632bd7f4e29R24-R25) * [`src/promptflow/promptflow/azure/_restclient/flow/aio/operations/_experiment_templates_operations.py`](diffhunk://#diff-ac47ed666715906825cc330909c705299ad504c397818b964e5313c12e84fb8fR1-R171): Added a new file to implement the `ExperimentTemplatesOperations`. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [x] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [x] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- src/promptflow/promptflow/_constants.py | 1 + src/promptflow/promptflow/_sdk/_utils.py | 14 +- .../promptflow/_sdk/entities/_run.py | 2 + .../promptflow/azure/_restclient/README.md | 1 + ...achine_learning_designer_service_client.py | 8 +- ...achine_learning_designer_service_client.py | 8 +- .../flow/aio/operations/__init__.py | 4 + .../_experiment_templates_operations.py | 171 + .../aio/operations/_experiments_operations.py | 179 + .../flow/aio/operations/_tools_operations.py | 85 +- .../azure/_restclient/flow/models/__init__.py | 34 + ..._learning_designer_service_client_enums.py | 13 +- .../azure/_restclient/flow/models/_models.py | 618 +- .../_restclient/flow/models/_models_py3.py | 702 +- .../_restclient/flow/operations/__init__.py | 4 + .../_experiment_templates_operations.py | 249 + .../operations/_experiments_operations.py | 267 + .../flow/operations/_tools_operations.py | 135 - .../promptflow/azure/_restclient/swagger.json | 61672 ++++++++-------- .../azure/operations/_run_operations.py | 8 +- 20 files changed, 33271 insertions(+), 30904 deletions(-) create mode 100644 src/promptflow/promptflow/azure/_restclient/flow/aio/operations/_experiment_templates_operations.py create mode 100644 src/promptflow/promptflow/azure/_restclient/flow/aio/operations/_experiments_operations.py create mode 100644 src/promptflow/promptflow/azure/_restclient/flow/operations/_experiment_templates_operations.py create mode 100644 src/promptflow/promptflow/azure/_restclient/flow/operations/_experiments_operations.py diff --git a/src/promptflow/promptflow/_constants.py b/src/promptflow/promptflow/_constants.py index 2c50199bd21..f2cb38c038a 100644 --- a/src/promptflow/promptflow/_constants.py +++ b/src/promptflow/promptflow/_constants.py @@ -11,6 +11,7 @@ PROMPTFLOW_SECRETS_FILE = "PROMPTFLOW_SECRETS_FILE" PF_NO_INTERACTIVE_LOGIN = "PF_NO_INTERACTIVE_LOGIN" PF_RUN_AS_BUILT_BINARY = "PF_RUN_AS_BUILT_BINARY" +ENABLE_MULTI_CONTAINER_KEY = "PF_ENABLE_MULTI_CONTAINER" PF_LOGGING_LEVEL = "PF_LOGGING_LEVEL" OPENAI_API_KEY = "openai-api-key" BING_API_KEY = "bing-api-key" diff --git a/src/promptflow/promptflow/_sdk/_utils.py b/src/promptflow/promptflow/_sdk/_utils.py index f68ee6429ac..47900ee8ce0 100644 --- a/src/promptflow/promptflow/_sdk/_utils.py +++ b/src/promptflow/promptflow/_sdk/_utils.py @@ -31,7 +31,13 @@ from marshmallow import ValidationError import promptflow -from promptflow._constants import EXTENSION_UA, PF_NO_INTERACTIVE_LOGIN, PF_USER_AGENT, USER_AGENT +from promptflow._constants import ( + ENABLE_MULTI_CONTAINER_KEY, + EXTENSION_UA, + PF_NO_INTERACTIVE_LOGIN, + PF_USER_AGENT, + USER_AGENT, +) from promptflow._sdk._constants import ( AZURE_WORKSPACE_REGEX_FORMAT, DAG_FILE_NAME, @@ -971,6 +977,12 @@ def is_from_cli(): return CLI_UA in ClientUserAgentUtil.get_user_agent() +def is_multi_container_enabled(): + if ENABLE_MULTI_CONTAINER_KEY in os.environ: + return os.environ[ENABLE_MULTI_CONTAINER_KEY].lower() == "true" + return None + + def is_url(value: Union[PathLike, str]) -> bool: try: result = urlparse(str(value)) diff --git a/src/promptflow/promptflow/_sdk/entities/_run.py b/src/promptflow/promptflow/_sdk/entities/_run.py index 6aca4d32ae0..aba9575a8cb 100644 --- a/src/promptflow/promptflow/_sdk/entities/_run.py +++ b/src/promptflow/promptflow/_sdk/entities/_run.py @@ -40,6 +40,7 @@ from promptflow._sdk._orm import RunInfo as ORMRun from promptflow._sdk._utils import ( _sanitize_python_variable_name, + is_multi_container_enabled, is_remote_uri, parse_remote_flow_pattern, parse_variant, @@ -589,6 +590,7 @@ def _to_rest_object(self): session_setup_mode=SessionSetupModeEnum.SYSTEM_WAIT, compute_name=compute_name, identity=identity_resource_id, + enable_multi_container=is_multi_container_enabled(), ) if str(self.flow).startswith(REMOTE_URI_PREFIX): diff --git a/src/promptflow/promptflow/azure/_restclient/README.md b/src/promptflow/promptflow/azure/_restclient/README.md index cbb1b00ff8d..9a4b0eeec55 100644 --- a/src/promptflow/promptflow/azure/_restclient/README.md +++ b/src/promptflow/promptflow/azure/_restclient/README.md @@ -22,6 +22,7 @@ Download swagger.json from [here](https://int.api.azureml-test.ms/flow/swagger/v - 2024.2.2 - [Support specify compute instance as session compute](https://github.com/microsoft/promptflow/pull/1925) - 2024.2.5 - [Support retrieve Cosmos token](https://github.com/microsoft/promptflow/pull/1972) - 2024.2.19 - [Update SDK restclient](https://github.com/microsoft/promptflow/pull/2165) +- 2024.3.14 - [Add enable_multi_container](https://github.com/microsoft/promptflow/pull/2313) ## Troubleshooting diff --git a/src/promptflow/promptflow/azure/_restclient/flow/_azure_machine_learning_designer_service_client.py b/src/promptflow/promptflow/azure/_restclient/flow/_azure_machine_learning_designer_service_client.py index 9911fa57f17..4278f9314e6 100644 --- a/src/promptflow/promptflow/azure/_restclient/flow/_azure_machine_learning_designer_service_client.py +++ b/src/promptflow/promptflow/azure/_restclient/flow/_azure_machine_learning_designer_service_client.py @@ -12,7 +12,7 @@ from . import models from ._configuration import AzureMachineLearningDesignerServiceClientConfiguration -from .operations import BulkRunsOperations, ConnectionOperations, ConnectionsOperations, FlowRuntimesOperations, FlowRuntimesWorkspaceIndependentOperations, FlowSessionsOperations, FlowsOperations, FlowsProviderOperations, ToolsOperations, TraceSessionsOperations +from .operations import BulkRunsOperations, ConnectionOperations, ConnectionsOperations, ExperimentTemplatesOperations, ExperimentsOperations, FlowRuntimesOperations, FlowRuntimesWorkspaceIndependentOperations, FlowSessionsOperations, FlowsOperations, FlowsProviderOperations, ToolsOperations, TraceSessionsOperations if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -29,6 +29,10 @@ class AzureMachineLearningDesignerServiceClient(object): :vartype connection: flow.operations.ConnectionOperations :ivar connections: ConnectionsOperations operations :vartype connections: flow.operations.ConnectionsOperations + :ivar experiments: ExperimentsOperations operations + :vartype experiments: flow.operations.ExperimentsOperations + :ivar experiment_templates: ExperimentTemplatesOperations operations + :vartype experiment_templates: flow.operations.ExperimentTemplatesOperations :ivar flow_runtimes: FlowRuntimesOperations operations :vartype flow_runtimes: flow.operations.FlowRuntimesOperations :ivar flow_runtimes_workspace_independent: FlowRuntimesWorkspaceIndependentOperations @@ -68,6 +72,8 @@ def __init__( self.bulk_runs = BulkRunsOperations(self._client, self._config, self._serialize, self._deserialize) self.connection = ConnectionOperations(self._client, self._config, self._serialize, self._deserialize) self.connections = ConnectionsOperations(self._client, self._config, self._serialize, self._deserialize) + self.experiments = ExperimentsOperations(self._client, self._config, self._serialize, self._deserialize) + self.experiment_templates = ExperimentTemplatesOperations(self._client, self._config, self._serialize, self._deserialize) self.flow_runtimes = FlowRuntimesOperations(self._client, self._config, self._serialize, self._deserialize) self.flow_runtimes_workspace_independent = FlowRuntimesWorkspaceIndependentOperations(self._client, self._config, self._serialize, self._deserialize) self.flows = FlowsOperations(self._client, self._config, self._serialize, self._deserialize) diff --git a/src/promptflow/promptflow/azure/_restclient/flow/aio/_azure_machine_learning_designer_service_client.py b/src/promptflow/promptflow/azure/_restclient/flow/aio/_azure_machine_learning_designer_service_client.py index 4066ccb21c3..e9f3a30193c 100644 --- a/src/promptflow/promptflow/azure/_restclient/flow/aio/_azure_machine_learning_designer_service_client.py +++ b/src/promptflow/promptflow/azure/_restclient/flow/aio/_azure_machine_learning_designer_service_client.py @@ -13,7 +13,7 @@ from .. import models from ._configuration import AzureMachineLearningDesignerServiceClientConfiguration -from .operations import BulkRunsOperations, ConnectionOperations, ConnectionsOperations, FlowRuntimesOperations, FlowRuntimesWorkspaceIndependentOperations, FlowSessionsOperations, FlowsOperations, FlowsProviderOperations, ToolsOperations, TraceSessionsOperations +from .operations import BulkRunsOperations, ConnectionOperations, ConnectionsOperations, ExperimentTemplatesOperations, ExperimentsOperations, FlowRuntimesOperations, FlowRuntimesWorkspaceIndependentOperations, FlowSessionsOperations, FlowsOperations, FlowsProviderOperations, ToolsOperations, TraceSessionsOperations class AzureMachineLearningDesignerServiceClient: """AzureMachineLearningDesignerServiceClient. @@ -24,6 +24,10 @@ class AzureMachineLearningDesignerServiceClient: :vartype connection: flow.aio.operations.ConnectionOperations :ivar connections: ConnectionsOperations operations :vartype connections: flow.aio.operations.ConnectionsOperations + :ivar experiments: ExperimentsOperations operations + :vartype experiments: flow.aio.operations.ExperimentsOperations + :ivar experiment_templates: ExperimentTemplatesOperations operations + :vartype experiment_templates: flow.aio.operations.ExperimentTemplatesOperations :ivar flow_runtimes: FlowRuntimesOperations operations :vartype flow_runtimes: flow.aio.operations.FlowRuntimesOperations :ivar flow_runtimes_workspace_independent: FlowRuntimesWorkspaceIndependentOperations @@ -62,6 +66,8 @@ def __init__( self.bulk_runs = BulkRunsOperations(self._client, self._config, self._serialize, self._deserialize) self.connection = ConnectionOperations(self._client, self._config, self._serialize, self._deserialize) self.connections = ConnectionsOperations(self._client, self._config, self._serialize, self._deserialize) + self.experiments = ExperimentsOperations(self._client, self._config, self._serialize, self._deserialize) + self.experiment_templates = ExperimentTemplatesOperations(self._client, self._config, self._serialize, self._deserialize) self.flow_runtimes = FlowRuntimesOperations(self._client, self._config, self._serialize, self._deserialize) self.flow_runtimes_workspace_independent = FlowRuntimesWorkspaceIndependentOperations(self._client, self._config, self._serialize, self._deserialize) self.flows = FlowsOperations(self._client, self._config, self._serialize, self._deserialize) diff --git a/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/__init__.py b/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/__init__.py index ee2ed88a873..c18cf94c582 100644 --- a/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/__init__.py +++ b/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/__init__.py @@ -7,6 +7,8 @@ from ._bulk_runs_operations import BulkRunsOperations from ._connection_operations import ConnectionOperations from ._connections_operations import ConnectionsOperations +from ._experiments_operations import ExperimentsOperations +from ._experiment_templates_operations import ExperimentTemplatesOperations from ._flow_runtimes_operations import FlowRuntimesOperations from ._flow_runtimes_workspace_independent_operations import FlowRuntimesWorkspaceIndependentOperations from ._flows_operations import FlowsOperations @@ -19,6 +21,8 @@ 'BulkRunsOperations', 'ConnectionOperations', 'ConnectionsOperations', + 'ExperimentsOperations', + 'ExperimentTemplatesOperations', 'FlowRuntimesOperations', 'FlowRuntimesWorkspaceIndependentOperations', 'FlowsOperations', diff --git a/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/_experiment_templates_operations.py b/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/_experiment_templates_operations.py new file mode 100644 index 00000000000..32a3e158c02 --- /dev/null +++ b/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/_experiment_templates_operations.py @@ -0,0 +1,171 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.8.0, generator: @autorest/python@5.12.2) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import functools +from typing import Any, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse +from azure.core.rest import HttpRequest +from azure.core.tracing.decorator_async import distributed_trace_async + +from ... import models as _models +from ..._vendor import _convert_request +from ...operations._experiment_templates_operations import build_create_experiment_template_request, build_get_experiment_template_request +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class ExperimentTemplatesOperations: + """ExperimentTemplatesOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~flow.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + @distributed_trace_async + async def create_experiment_template( + self, + subscription_id: str, + resource_group_name: str, + workspace_name: str, + experiment_template_id: str, + body: Optional["_models.CreateExperimentTemplateRequest"] = None, + **kwargs: Any + ) -> "_models.ExperimentTemplateDto": + """create_experiment_template. + + :param subscription_id: The Azure Subscription ID. + :type subscription_id: str + :param resource_group_name: The Name of the resource group in which the workspace is located. + :type resource_group_name: str + :param workspace_name: The name of the workspace. + :type workspace_name: str + :param experiment_template_id: + :type experiment_template_id: str + :param body: + :type body: ~flow.models.CreateExperimentTemplateRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ExperimentTemplateDto, or the result of cls(response) + :rtype: ~flow.models.ExperimentTemplateDto + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ExperimentTemplateDto"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + content_type = kwargs.pop('content_type', "application/json") # type: Optional[str] + + if body is not None: + _json = self._serialize.body(body, 'CreateExperimentTemplateRequest') + else: + _json = None + + request = build_create_experiment_template_request( + subscription_id=subscription_id, + resource_group_name=resource_group_name, + workspace_name=workspace_name, + experiment_template_id=experiment_template_id, + content_type=content_type, + json=_json, + template_url=self.create_experiment_template.metadata['url'], + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('ExperimentTemplateDto', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + create_experiment_template.metadata = {'url': '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/ExperimentTemplates/{experimentTemplateId}'} # type: ignore + + + @distributed_trace_async + async def get_experiment_template( + self, + subscription_id: str, + resource_group_name: str, + workspace_name: str, + experiment_template_id: str, + **kwargs: Any + ) -> "_models.ExperimentTemplateDto": + """get_experiment_template. + + :param subscription_id: The Azure Subscription ID. + :type subscription_id: str + :param resource_group_name: The Name of the resource group in which the workspace is located. + :type resource_group_name: str + :param workspace_name: The name of the workspace. + :type workspace_name: str + :param experiment_template_id: + :type experiment_template_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ExperimentTemplateDto, or the result of cls(response) + :rtype: ~flow.models.ExperimentTemplateDto + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ExperimentTemplateDto"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + + request = build_get_experiment_template_request( + subscription_id=subscription_id, + resource_group_name=resource_group_name, + workspace_name=workspace_name, + experiment_template_id=experiment_template_id, + template_url=self.get_experiment_template.metadata['url'], + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('ExperimentTemplateDto', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get_experiment_template.metadata = {'url': '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/ExperimentTemplates/{experimentTemplateId}'} # type: ignore + diff --git a/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/_experiments_operations.py b/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/_experiments_operations.py new file mode 100644 index 00000000000..1686528a2e8 --- /dev/null +++ b/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/_experiments_operations.py @@ -0,0 +1,179 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.8.0, generator: @autorest/python@5.12.2) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import functools +from typing import Any, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse +from azure.core.rest import HttpRequest +from azure.core.tracing.decorator_async import distributed_trace_async + +from ... import models as _models +from ..._vendor import _convert_request +from ...operations._experiments_operations import build_get_experiment_request, build_submit_experiment_request +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class ExperimentsOperations: + """ExperimentsOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~flow.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + @distributed_trace_async + async def submit_experiment( + self, + subscription_id: str, + resource_group_name: str, + workspace_name: str, + experiment_id: str, + experiment_name: Optional[str] = None, + description: Optional[str] = None, + body: Optional["_models.SubmitExperimentRequest"] = None, + **kwargs: Any + ) -> "_models.FlowDto": + """submit_experiment. + + :param subscription_id: The Azure Subscription ID. + :type subscription_id: str + :param resource_group_name: The Name of the resource group in which the workspace is located. + :type resource_group_name: str + :param workspace_name: The name of the workspace. + :type workspace_name: str + :param experiment_id: + :type experiment_id: str + :param experiment_name: + :type experiment_name: str + :param description: + :type description: str + :param body: + :type body: ~flow.models.SubmitExperimentRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FlowDto, or the result of cls(response) + :rtype: ~flow.models.FlowDto + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FlowDto"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + content_type = kwargs.pop('content_type', "application/json") # type: Optional[str] + + if body is not None: + _json = self._serialize.body(body, 'SubmitExperimentRequest') + else: + _json = None + + request = build_submit_experiment_request( + subscription_id=subscription_id, + resource_group_name=resource_group_name, + workspace_name=workspace_name, + experiment_id=experiment_id, + content_type=content_type, + json=_json, + experiment_name=experiment_name, + description=description, + template_url=self.submit_experiment.metadata['url'], + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('FlowDto', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + submit_experiment.metadata = {'url': '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Experiments/{experimentId}'} # type: ignore + + + @distributed_trace_async + async def get_experiment( + self, + subscription_id: str, + resource_group_name: str, + workspace_name: str, + experiment_id: str, + **kwargs: Any + ) -> "_models.ExperimentDefinition": + """get_experiment. + + :param subscription_id: The Azure Subscription ID. + :type subscription_id: str + :param resource_group_name: The Name of the resource group in which the workspace is located. + :type resource_group_name: str + :param workspace_name: The name of the workspace. + :type workspace_name: str + :param experiment_id: + :type experiment_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ExperimentDefinition, or the result of cls(response) + :rtype: ~flow.models.ExperimentDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ExperimentDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + + request = build_get_experiment_request( + subscription_id=subscription_id, + resource_group_name=resource_group_name, + workspace_name=workspace_name, + experiment_id=experiment_id, + template_url=self.get_experiment.metadata['url'], + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('ExperimentDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get_experiment.metadata = {'url': '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Experiments/{experimentId}'} # type: ignore + diff --git a/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/_tools_operations.py b/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/_tools_operations.py index 3b4392625d8..73baf4989d7 100644 --- a/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/_tools_operations.py +++ b/src/promptflow/promptflow/azure/_restclient/flow/aio/operations/_tools_operations.py @@ -15,7 +15,7 @@ from ... import models as _models from ..._vendor import _convert_request -from ...operations._tools_operations import build_get_dynamic_list_request, build_get_package_tools_request, build_get_tool_meta_request, build_get_tool_meta_v2_request, build_get_tool_setting_request, build_retrieve_tool_func_result_request +from ...operations._tools_operations import build_get_dynamic_list_request, build_get_package_tools_request, build_get_tool_meta_v2_request, build_get_tool_setting_request, build_retrieve_tool_func_result_request T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -96,89 +96,6 @@ async def get_tool_setting( get_tool_setting.metadata = {'url': '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/setting'} # type: ignore - @distributed_trace_async - async def get_tool_meta( - self, - subscription_id: str, - resource_group_name: str, - workspace_name: str, - tool_name: str, - tool_type: str, - endpoint_name: Optional[str] = None, - flow_runtime_name: Optional[str] = None, - flow_id: Optional[str] = None, - data: Optional[str] = None, - **kwargs: Any - ) -> str: - """get_tool_meta. - - :param subscription_id: The Azure Subscription ID. - :type subscription_id: str - :param resource_group_name: The Name of the resource group in which the workspace is located. - :type resource_group_name: str - :param workspace_name: The name of the workspace. - :type workspace_name: str - :param tool_name: - :type tool_name: str - :param tool_type: - :type tool_type: str - :param endpoint_name: - :type endpoint_name: str - :param flow_runtime_name: - :type flow_runtime_name: str - :param flow_id: - :type flow_id: str - :param data: - :type data: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: str, or the result of cls(response) - :rtype: str - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType[str] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - - content_type = kwargs.pop('content_type', "text/plain") # type: Optional[str] - - _content = data - - request = build_get_tool_meta_request( - subscription_id=subscription_id, - resource_group_name=resource_group_name, - workspace_name=workspace_name, - content_type=content_type, - tool_name=tool_name, - tool_type=tool_type, - content=_content, - endpoint_name=endpoint_name, - flow_runtime_name=flow_runtime_name, - flow_id=flow_id, - template_url=self.get_tool_meta.metadata['url'], - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error) - - deserialized = self._deserialize('str', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - get_tool_meta.metadata = {'url': '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/meta'} # type: ignore - - @distributed_trace_async async def get_tool_meta_v2( self, diff --git a/src/promptflow/promptflow/azure/_restclient/flow/models/__init__.py b/src/promptflow/promptflow/azure/_restclient/flow/models/__init__.py index 6e58479b934..b7719f602d8 100644 --- a/src/promptflow/promptflow/azure/_restclient/flow/models/__init__.py +++ b/src/promptflow/promptflow/azure/_restclient/flow/models/__init__.py @@ -194,6 +194,7 @@ from ._models_py3 import BatchGetComponentRequest from ._models_py3 import Binding from ._models_py3 import BulkTestDto + from ._models_py3 import ChatGroupRole from ._models_py3 import CloudError from ._models_py3 import CloudPrioritySetting from ._models_py3 import CloudSettings @@ -239,6 +240,7 @@ from ._models_py3 import ControlInput from ._models_py3 import ControlOutput from ._models_py3 import CopyDataTask + from ._models_py3 import CreateExperimentTemplateRequest from ._models_py3 import CreateFlowRequest from ._models_py3 import CreateFlowRuntimeRequest from ._models_py3 import CreateFlowSessionRequest @@ -320,7 +322,12 @@ from ._models_py3 import ExecutionDataPath from ._models_py3 import ExecutionGlobsOptions from ._models_py3 import ExperimentComputeMetaInfo + from ._models_py3 import ExperimentData + from ._models_py3 import ExperimentDefinition + from ._models_py3 import ExperimentDefinitionSource from ._models_py3 import ExperimentInfo + from ._models_py3 import ExperimentNode + from ._models_py3 import ExperimentTemplateDto from ._models_py3 import ExportComponentMetaInfo from ._models_py3 import ExportDataTask from ._models_py3 import FeaturizationSettings @@ -330,6 +337,7 @@ from ._models_py3 import Flow from ._models_py3 import FlowAnnotations from ._models_py3 import FlowBaseDto + from ._models_py3 import FlowDiagnostics from ._models_py3 import FlowDto from ._models_py3 import FlowEnvironment from ._models_py3 import FlowFeature @@ -593,6 +601,7 @@ from ._models_py3 import SessionApplication from ._models_py3 import SessionApplicationRunCommandResult from ._models_py3 import SessionProperties + from ._models_py3 import SessionRuntimeResources from ._models_py3 import SetupFlowSessionRequest from ._models_py3 import SharingScope from ._models_py3 import Snapshot @@ -634,6 +643,7 @@ from ._models_py3 import SubStatusPeriod from ._models_py3 import SubmitBulkRunRequest from ._models_py3 import SubmitBulkRunResponse + from ._models_py3 import SubmitExperimentRequest from ._models_py3 import SubmitFlowRequest from ._models_py3 import SubmitPipelineRunRequest from ._models_py3 import SweepEarlyTerminationPolicy @@ -890,6 +900,7 @@ from ._models import BatchGetComponentRequest # type: ignore from ._models import Binding # type: ignore from ._models import BulkTestDto # type: ignore + from ._models import ChatGroupRole # type: ignore from ._models import CloudError # type: ignore from ._models import CloudPrioritySetting # type: ignore from ._models import CloudSettings # type: ignore @@ -935,6 +946,7 @@ from ._models import ControlInput # type: ignore from ._models import ControlOutput # type: ignore from ._models import CopyDataTask # type: ignore + from ._models import CreateExperimentTemplateRequest # type: ignore from ._models import CreateFlowRequest # type: ignore from ._models import CreateFlowRuntimeRequest # type: ignore from ._models import CreateFlowSessionRequest # type: ignore @@ -1016,7 +1028,12 @@ from ._models import ExecutionDataPath # type: ignore from ._models import ExecutionGlobsOptions # type: ignore from ._models import ExperimentComputeMetaInfo # type: ignore + from ._models import ExperimentData # type: ignore + from ._models import ExperimentDefinition # type: ignore + from ._models import ExperimentDefinitionSource # type: ignore from ._models import ExperimentInfo # type: ignore + from ._models import ExperimentNode # type: ignore + from ._models import ExperimentTemplateDto # type: ignore from ._models import ExportComponentMetaInfo # type: ignore from ._models import ExportDataTask # type: ignore from ._models import FeaturizationSettings # type: ignore @@ -1026,6 +1043,7 @@ from ._models import Flow # type: ignore from ._models import FlowAnnotations # type: ignore from ._models import FlowBaseDto # type: ignore + from ._models import FlowDiagnostics # type: ignore from ._models import FlowDto # type: ignore from ._models import FlowEnvironment # type: ignore from ._models import FlowFeature # type: ignore @@ -1289,6 +1307,7 @@ from ._models import SessionApplication # type: ignore from ._models import SessionApplicationRunCommandResult # type: ignore from ._models import SessionProperties # type: ignore + from ._models import SessionRuntimeResources # type: ignore from ._models import SetupFlowSessionRequest # type: ignore from ._models import SharingScope # type: ignore from ._models import Snapshot # type: ignore @@ -1330,6 +1349,7 @@ from ._models import SubStatusPeriod # type: ignore from ._models import SubmitBulkRunRequest # type: ignore from ._models import SubmitBulkRunResponse # type: ignore + from ._models import SubmitExperimentRequest # type: ignore from ._models import SubmitFlowRequest # type: ignore from ._models import SubmitPipelineRunRequest # type: ignore from ._models import SweepEarlyTerminationPolicy # type: ignore @@ -1497,6 +1517,8 @@ EntityStatus, ErrorHandlingMode, ExecutionPhase, + ExperimentDefinitionSourceType, + ExperimentNodeType, FeaturizationMode, FlowFeatureStateEnum, FlowLanguage, @@ -1803,6 +1825,7 @@ 'BatchGetComponentRequest', 'Binding', 'BulkTestDto', + 'ChatGroupRole', 'CloudError', 'CloudPrioritySetting', 'CloudSettings', @@ -1848,6 +1871,7 @@ 'ControlInput', 'ControlOutput', 'CopyDataTask', + 'CreateExperimentTemplateRequest', 'CreateFlowRequest', 'CreateFlowRuntimeRequest', 'CreateFlowSessionRequest', @@ -1929,7 +1953,12 @@ 'ExecutionDataPath', 'ExecutionGlobsOptions', 'ExperimentComputeMetaInfo', + 'ExperimentData', + 'ExperimentDefinition', + 'ExperimentDefinitionSource', 'ExperimentInfo', + 'ExperimentNode', + 'ExperimentTemplateDto', 'ExportComponentMetaInfo', 'ExportDataTask', 'FeaturizationSettings', @@ -1939,6 +1968,7 @@ 'Flow', 'FlowAnnotations', 'FlowBaseDto', + 'FlowDiagnostics', 'FlowDto', 'FlowEnvironment', 'FlowFeature', @@ -2202,6 +2232,7 @@ 'SessionApplication', 'SessionApplicationRunCommandResult', 'SessionProperties', + 'SessionRuntimeResources', 'SetupFlowSessionRequest', 'SharingScope', 'Snapshot', @@ -2243,6 +2274,7 @@ 'SubStatusPeriod', 'SubmitBulkRunRequest', 'SubmitBulkRunResponse', + 'SubmitExperimentRequest', 'SubmitFlowRequest', 'SubmitPipelineRunRequest', 'SweepEarlyTerminationPolicy', @@ -2408,6 +2440,8 @@ 'EntityStatus', 'ErrorHandlingMode', 'ExecutionPhase', + 'ExperimentDefinitionSourceType', + 'ExperimentNodeType', 'FeaturizationMode', 'FlowFeatureStateEnum', 'FlowLanguage', diff --git a/src/promptflow/promptflow/azure/_restclient/flow/models/_azure_machine_learning_designer_service_client_enums.py b/src/promptflow/promptflow/azure/_restclient/flow/models/_azure_machine_learning_designer_service_client_enums.py index 925a76ca14d..9ae900f2c39 100644 --- a/src/promptflow/promptflow/azure/_restclient/flow/models/_azure_machine_learning_designer_service_client_enums.py +++ b/src/promptflow/promptflow/azure/_restclient/flow/models/_azure_machine_learning_designer_service_client_enums.py @@ -439,10 +439,8 @@ class AssetType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): DATASET = "Dataset" DATA_STORE = "DataStore" SAMPLE_GRAPH = "SampleGraph" - FLOW_TOOL = "FlowTool" FLOW_TOOL_SETTING = "FlowToolSetting" FLOW_CONNECTION = "FlowConnection" - FLOW_SAMPLE = "FlowSample" FLOW_RUNTIME_SPEC = "FlowRuntimeSpec" class AutoDeleteCondition(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): @@ -857,6 +855,16 @@ class ExecutionPhase(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): INITIALIZATION = "Initialization" FINALIZATION = "Finalization" +class ExperimentDefinitionSourceType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): + + DATA_URI = "DataUri" + DEFINITION = "Definition" + +class ExperimentNodeType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): + + FLOW = "Flow" + CHAT_GROUP = "ChatGroup" + class FeaturizationMode(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): AUTO = "Auto" @@ -1699,6 +1707,7 @@ class ToolState(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): STABLE = "Stable" PREVIEW = "Preview" DEPRECATED = "Deprecated" + ARCHIVED = "Archived" class ToolType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): diff --git a/src/promptflow/promptflow/azure/_restclient/flow/models/_models.py b/src/promptflow/promptflow/azure/_restclient/flow/models/_models.py index feb65cc6b06..594323e20a5 100644 --- a/src/promptflow/promptflow/azure/_restclient/flow/models/_models.py +++ b/src/promptflow/promptflow/azure/_restclient/flow/models/_models.py @@ -8022,8 +8022,7 @@ class AssetVersionPublishRequest(msrest.serialization.Model): """AssetVersionPublishRequest. :ivar asset_type: Possible values include: "Component", "Model", "Environment", "Dataset", - "DataStore", "SampleGraph", "FlowTool", "FlowToolSetting", "FlowConnection", "FlowSample", - "FlowRuntimeSpec". + "DataStore", "SampleGraph", "FlowToolSetting", "FlowConnection", "FlowRuntimeSpec". :vartype asset_type: str or ~flow.models.AssetType :ivar asset_source_type: Possible values include: "Unknown", "Local", "GithubFile", "GithubFolder", "DevopsArtifactsZip". @@ -8065,8 +8064,7 @@ def __init__( ): """ :keyword asset_type: Possible values include: "Component", "Model", "Environment", "Dataset", - "DataStore", "SampleGraph", "FlowTool", "FlowToolSetting", "FlowConnection", "FlowSample", - "FlowRuntimeSpec". + "DataStore", "SampleGraph", "FlowToolSetting", "FlowConnection", "FlowRuntimeSpec". :paramtype asset_type: str or ~flow.models.AssetType :keyword asset_source_type: Possible values include: "Unknown", "Local", "GithubFile", "GithubFolder", "DevopsArtifactsZip". @@ -9192,6 +9190,101 @@ def __init__( self.batch_data_input = kwargs.get('batch_data_input', None) +class ChatGroupRole(msrest.serialization.Model): + """ChatGroupRole. + + :ivar name: + :vartype name: str + :ivar role: + :vartype role: str + :ivar stop_signal: + :vartype stop_signal: str + :ivar path: + :vartype path: str + :ivar variant: + :vartype variant: str + :ivar connections: This is a dictionary. + :vartype connections: dict[str, dict[str, str]] + :ivar environment_variables: This is a dictionary. + :vartype environment_variables: dict[str, str] + :ivar display_name: + :vartype display_name: str + :ivar description: + :vartype description: str + :ivar tags: A set of tags. This is a dictionary. + :vartype tags: dict[str, str] + :ivar properties: This is a dictionary. + :vartype properties: dict[str, str] + :ivar resources: + :vartype resources: ~flow.models.SessionRuntimeResources + :ivar inputs: Dictionary of :code:``. + :vartype inputs: dict[str, any] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'role': {'key': 'role', 'type': 'str'}, + 'stop_signal': {'key': 'stop_signal', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + 'variant': {'key': 'variant', 'type': 'str'}, + 'connections': {'key': 'connections', 'type': '{{str}}'}, + 'environment_variables': {'key': 'environment_variables', 'type': '{str}'}, + 'display_name': {'key': 'display_name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'properties': {'key': 'properties', 'type': '{str}'}, + 'resources': {'key': 'resources', 'type': 'SessionRuntimeResources'}, + 'inputs': {'key': 'inputs', 'type': '{object}'}, + } + + def __init__( + self, + **kwargs + ): + """ + :keyword name: + :paramtype name: str + :keyword role: + :paramtype role: str + :keyword stop_signal: + :paramtype stop_signal: str + :keyword path: + :paramtype path: str + :keyword variant: + :paramtype variant: str + :keyword connections: This is a dictionary. + :paramtype connections: dict[str, dict[str, str]] + :keyword environment_variables: This is a dictionary. + :paramtype environment_variables: dict[str, str] + :keyword display_name: + :paramtype display_name: str + :keyword description: + :paramtype description: str + :keyword tags: A set of tags. This is a dictionary. + :paramtype tags: dict[str, str] + :keyword properties: This is a dictionary. + :paramtype properties: dict[str, str] + :keyword resources: + :paramtype resources: ~flow.models.SessionRuntimeResources + :keyword inputs: Dictionary of :code:``. + :paramtype inputs: dict[str, any] + """ + super(ChatGroupRole, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.role = kwargs.get('role', None) + self.stop_signal = kwargs.get('stop_signal', None) + self.path = kwargs.get('path', None) + self.variant = kwargs.get('variant', None) + self.connections = kwargs.get('connections', None) + self.environment_variables = kwargs.get('environment_variables', None) + self.display_name = kwargs.get('display_name', None) + self.description = kwargs.get('description', None) + self.tags = kwargs.get('tags', None) + self.properties = kwargs.get('properties', None) + self.resources = kwargs.get('resources', None) + self.inputs = kwargs.get('inputs', None) + + class CloudError(msrest.serialization.Model): """CloudError. @@ -11583,6 +11676,29 @@ def __init__( self.location = kwargs.get('location', None) +class CreateExperimentTemplateRequest(msrest.serialization.Model): + """CreateExperimentTemplateRequest. + + :ivar experiment_definition_source: + :vartype experiment_definition_source: ~flow.models.ExperimentDefinitionSource + """ + + _attribute_map = { + 'experiment_definition_source': {'key': 'experimentDefinitionSource', 'type': 'ExperimentDefinitionSource'}, + } + + def __init__( + self, + **kwargs + ): + """ + :keyword experiment_definition_source: + :paramtype experiment_definition_source: ~flow.models.ExperimentDefinitionSource + """ + super(CreateExperimentTemplateRequest, self).__init__(**kwargs) + self.experiment_definition_source = kwargs.get('experiment_definition_source', None) + + class CreateFlowRequest(msrest.serialization.Model): """CreateFlowRequest. @@ -16114,6 +16230,117 @@ def __init__( self.compute_type = kwargs.get('compute_type', None) +class ExperimentData(msrest.serialization.Model): + """ExperimentData. + + :ivar name: + :vartype name: str + :ivar path: + :vartype path: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + """ + :keyword name: + :paramtype name: str + :keyword path: + :paramtype path: str + """ + super(ExperimentData, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.path = kwargs.get('path', None) + + +class ExperimentDefinition(msrest.serialization.Model): + """ExperimentDefinition. + + :ivar name: + :vartype name: str + :ivar description: + :vartype description: str + :ivar inputs: + :vartype inputs: list[~flow.models.FlowInputDefinition] + :ivar data: + :vartype data: list[~flow.models.ExperimentData] + :ivar nodes: + :vartype nodes: list[~flow.models.ExperimentNode] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'inputs': {'key': 'inputs', 'type': '[FlowInputDefinition]'}, + 'data': {'key': 'data', 'type': '[ExperimentData]'}, + 'nodes': {'key': 'nodes', 'type': '[ExperimentNode]'}, + } + + def __init__( + self, + **kwargs + ): + """ + :keyword name: + :paramtype name: str + :keyword description: + :paramtype description: str + :keyword inputs: + :paramtype inputs: list[~flow.models.FlowInputDefinition] + :keyword data: + :paramtype data: list[~flow.models.ExperimentData] + :keyword nodes: + :paramtype nodes: list[~flow.models.ExperimentNode] + """ + super(ExperimentDefinition, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.description = kwargs.get('description', None) + self.inputs = kwargs.get('inputs', None) + self.data = kwargs.get('data', None) + self.nodes = kwargs.get('nodes', None) + + +class ExperimentDefinitionSource(msrest.serialization.Model): + """ExperimentDefinitionSource. + + :ivar source_type: Possible values include: "DataUri", "Definition". + :vartype source_type: str or ~flow.models.ExperimentDefinitionSourceType + :ivar experiment_definition_data_uri: + :vartype experiment_definition_data_uri: str + :ivar experiment_definition: + :vartype experiment_definition: ~flow.models.ExperimentDefinition + """ + + _attribute_map = { + 'source_type': {'key': 'sourceType', 'type': 'str'}, + 'experiment_definition_data_uri': {'key': 'experimentDefinitionDataUri', 'type': 'str'}, + 'experiment_definition': {'key': 'experimentDefinition', 'type': 'ExperimentDefinition'}, + } + + def __init__( + self, + **kwargs + ): + """ + :keyword source_type: Possible values include: "DataUri", "Definition". + :paramtype source_type: str or ~flow.models.ExperimentDefinitionSourceType + :keyword experiment_definition_data_uri: + :paramtype experiment_definition_data_uri: str + :keyword experiment_definition: + :paramtype experiment_definition: ~flow.models.ExperimentDefinition + """ + super(ExperimentDefinitionSource, self).__init__(**kwargs) + self.source_type = kwargs.get('source_type', None) + self.experiment_definition_data_uri = kwargs.get('experiment_definition_data_uri', None) + self.experiment_definition = kwargs.get('experiment_definition', None) + + class ExperimentInfo(msrest.serialization.Model): """ExperimentInfo. @@ -16143,6 +16370,178 @@ def __init__( self.experiment_id = kwargs.get('experiment_id', None) +class ExperimentNode(msrest.serialization.Model): + """ExperimentNode. + + :ivar name: + :vartype name: str + :ivar type: Possible values include: "Flow", "ChatGroup". + :vartype type: str or ~flow.models.ExperimentNodeType + :ivar max_turns: + :vartype max_turns: int + :ivar roles: + :vartype roles: list[~flow.models.ChatGroupRole] + :ivar path: + :vartype path: str + :ivar variant: + :vartype variant: str + :ivar connections: This is a dictionary. + :vartype connections: dict[str, dict[str, str]] + :ivar environment_variables: This is a dictionary. + :vartype environment_variables: dict[str, str] + :ivar display_name: + :vartype display_name: str + :ivar description: + :vartype description: str + :ivar tags: A set of tags. This is a dictionary. + :vartype tags: dict[str, str] + :ivar properties: This is a dictionary. + :vartype properties: dict[str, str] + :ivar resources: + :vartype resources: ~flow.models.SessionRuntimeResources + :ivar inputs: Dictionary of :code:``. + :vartype inputs: dict[str, any] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'max_turns': {'key': 'max_turns', 'type': 'int'}, + 'roles': {'key': 'roles', 'type': '[ChatGroupRole]'}, + 'path': {'key': 'path', 'type': 'str'}, + 'variant': {'key': 'variant', 'type': 'str'}, + 'connections': {'key': 'connections', 'type': '{{str}}'}, + 'environment_variables': {'key': 'environment_variables', 'type': '{str}'}, + 'display_name': {'key': 'display_name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'properties': {'key': 'properties', 'type': '{str}'}, + 'resources': {'key': 'resources', 'type': 'SessionRuntimeResources'}, + 'inputs': {'key': 'inputs', 'type': '{object}'}, + } + + def __init__( + self, + **kwargs + ): + """ + :keyword name: + :paramtype name: str + :keyword type: Possible values include: "Flow", "ChatGroup". + :paramtype type: str or ~flow.models.ExperimentNodeType + :keyword max_turns: + :paramtype max_turns: int + :keyword roles: + :paramtype roles: list[~flow.models.ChatGroupRole] + :keyword path: + :paramtype path: str + :keyword variant: + :paramtype variant: str + :keyword connections: This is a dictionary. + :paramtype connections: dict[str, dict[str, str]] + :keyword environment_variables: This is a dictionary. + :paramtype environment_variables: dict[str, str] + :keyword display_name: + :paramtype display_name: str + :keyword description: + :paramtype description: str + :keyword tags: A set of tags. This is a dictionary. + :paramtype tags: dict[str, str] + :keyword properties: This is a dictionary. + :paramtype properties: dict[str, str] + :keyword resources: + :paramtype resources: ~flow.models.SessionRuntimeResources + :keyword inputs: Dictionary of :code:``. + :paramtype inputs: dict[str, any] + """ + super(ExperimentNode, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.type = kwargs.get('type', None) + self.max_turns = kwargs.get('max_turns', None) + self.roles = kwargs.get('roles', None) + self.path = kwargs.get('path', None) + self.variant = kwargs.get('variant', None) + self.connections = kwargs.get('connections', None) + self.environment_variables = kwargs.get('environment_variables', None) + self.display_name = kwargs.get('display_name', None) + self.description = kwargs.get('description', None) + self.tags = kwargs.get('tags', None) + self.properties = kwargs.get('properties', None) + self.resources = kwargs.get('resources', None) + self.inputs = kwargs.get('inputs', None) + + +class ExperimentTemplateDto(msrest.serialization.Model): + """ExperimentTemplateDto. + + :ivar id: + :vartype id: str + :ivar created_date: + :vartype created_date: ~datetime.datetime + :ivar last_modified_date: + :vartype last_modified_date: ~datetime.datetime + :ivar owner: + :vartype owner: ~flow.models.SchemaContractsCreatedBy + :ivar name: + :vartype name: str + :ivar description: + :vartype description: str + :ivar inputs: + :vartype inputs: list[~flow.models.FlowInputDefinition] + :ivar data: + :vartype data: list[~flow.models.ExperimentData] + :ivar nodes: + :vartype nodes: list[~flow.models.ExperimentNode] + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'created_date': {'key': 'createdDate', 'type': 'iso-8601'}, + 'last_modified_date': {'key': 'lastModifiedDate', 'type': 'iso-8601'}, + 'owner': {'key': 'owner', 'type': 'SchemaContractsCreatedBy'}, + 'name': {'key': 'name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'inputs': {'key': 'inputs', 'type': '[FlowInputDefinition]'}, + 'data': {'key': 'data', 'type': '[ExperimentData]'}, + 'nodes': {'key': 'nodes', 'type': '[ExperimentNode]'}, + } + + def __init__( + self, + **kwargs + ): + """ + :keyword id: + :paramtype id: str + :keyword created_date: + :paramtype created_date: ~datetime.datetime + :keyword last_modified_date: + :paramtype last_modified_date: ~datetime.datetime + :keyword owner: + :paramtype owner: ~flow.models.SchemaContractsCreatedBy + :keyword name: + :paramtype name: str + :keyword description: + :paramtype description: str + :keyword inputs: + :paramtype inputs: list[~flow.models.FlowInputDefinition] + :keyword data: + :paramtype data: list[~flow.models.ExperimentData] + :keyword nodes: + :paramtype nodes: list[~flow.models.ExperimentNode] + """ + super(ExperimentTemplateDto, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.created_date = kwargs.get('created_date', None) + self.last_modified_date = kwargs.get('last_modified_date', None) + self.owner = kwargs.get('owner', None) + self.name = kwargs.get('name', None) + self.description = kwargs.get('description', None) + self.inputs = kwargs.get('inputs', None) + self.data = kwargs.get('data', None) + self.nodes = kwargs.get('nodes', None) + + class ExportComponentMetaInfo(msrest.serialization.Model): """ExportComponentMetaInfo. @@ -16602,6 +17001,8 @@ class FlowBaseDto(msrest.serialization.Model): :vartype max_idle_time_seconds: long :ivar identity: :vartype identity: str + :ivar flow_diagnostics: + :vartype flow_diagnostics: ~flow.models.FlowDiagnostics """ _attribute_map = { @@ -16620,6 +17021,7 @@ class FlowBaseDto(msrest.serialization.Model): 'vm_size': {'key': 'vmSize', 'type': 'str'}, 'max_idle_time_seconds': {'key': 'maxIdleTimeSeconds', 'type': 'long'}, 'identity': {'key': 'identity', 'type': 'str'}, + 'flow_diagnostics': {'key': 'flowDiagnostics', 'type': 'FlowDiagnostics'}, } def __init__( @@ -16657,6 +17059,8 @@ def __init__( :paramtype max_idle_time_seconds: long :keyword identity: :paramtype identity: str + :keyword flow_diagnostics: + :paramtype flow_diagnostics: ~flow.models.FlowDiagnostics """ super(FlowBaseDto, self).__init__(**kwargs) self.flow_id = kwargs.get('flow_id', None) @@ -16674,6 +17078,54 @@ def __init__( self.vm_size = kwargs.get('vm_size', None) self.max_idle_time_seconds = kwargs.get('max_idle_time_seconds', None) self.identity = kwargs.get('identity', None) + self.flow_diagnostics = kwargs.get('flow_diagnostics', None) + + +class FlowDiagnostics(msrest.serialization.Model): + """FlowDiagnostics. + + :ivar datastore: + :vartype datastore: str + :ivar artifact_origin: + :vartype artifact_origin: str + :ivar container: + :vartype container: str + :ivar session_log_relative_path: + :vartype session_log_relative_path: str + :ivar session_artifact_id: + :vartype session_artifact_id: str + """ + + _attribute_map = { + 'datastore': {'key': 'datastore', 'type': 'str'}, + 'artifact_origin': {'key': 'artifactOrigin', 'type': 'str'}, + 'container': {'key': 'container', 'type': 'str'}, + 'session_log_relative_path': {'key': 'sessionLogRelativePath', 'type': 'str'}, + 'session_artifact_id': {'key': 'sessionArtifactId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + """ + :keyword datastore: + :paramtype datastore: str + :keyword artifact_origin: + :paramtype artifact_origin: str + :keyword container: + :paramtype container: str + :keyword session_log_relative_path: + :paramtype session_log_relative_path: str + :keyword session_artifact_id: + :paramtype session_artifact_id: str + """ + super(FlowDiagnostics, self).__init__(**kwargs) + self.datastore = kwargs.get('datastore', None) + self.artifact_origin = kwargs.get('artifact_origin', None) + self.container = kwargs.get('container', None) + self.session_log_relative_path = kwargs.get('session_log_relative_path', None) + self.session_artifact_id = kwargs.get('session_artifact_id', None) class FlowDto(msrest.serialization.Model): @@ -16725,6 +17177,8 @@ class FlowDto(msrest.serialization.Model): :vartype max_idle_time_seconds: long :ivar identity: :vartype identity: str + :ivar flow_diagnostics: + :vartype flow_diagnostics: ~flow.models.FlowDiagnostics """ _attribute_map = { @@ -16751,6 +17205,7 @@ class FlowDto(msrest.serialization.Model): 'vm_size': {'key': 'vmSize', 'type': 'str'}, 'max_idle_time_seconds': {'key': 'maxIdleTimeSeconds', 'type': 'long'}, 'identity': {'key': 'identity', 'type': 'str'}, + 'flow_diagnostics': {'key': 'flowDiagnostics', 'type': 'FlowDiagnostics'}, } def __init__( @@ -16804,6 +17259,8 @@ def __init__( :paramtype max_idle_time_seconds: long :keyword identity: :paramtype identity: str + :keyword flow_diagnostics: + :paramtype flow_diagnostics: ~flow.models.FlowDiagnostics """ super(FlowDto, self).__init__(**kwargs) self.timestamp = kwargs.get('timestamp', None) @@ -16829,6 +17286,7 @@ def __init__( self.vm_size = kwargs.get('vm_size', None) self.max_idle_time_seconds = kwargs.get('max_idle_time_seconds', None) self.identity = kwargs.get('identity', None) + self.flow_diagnostics = kwargs.get('flow_diagnostics', None) class FlowEnvironment(msrest.serialization.Model): @@ -18155,6 +18613,16 @@ def __init__( class FlowRunSettingsBase(msrest.serialization.Model): """FlowRunSettingsBase. + :ivar batch_inputs: + :vartype batch_inputs: list[dict[str, any]] + :ivar input_universal_link: + :vartype input_universal_link: str + :ivar data_inputs: This is a dictionary. + :vartype data_inputs: dict[str, str] + :ivar flow_run_output_directory: + :vartype flow_run_output_directory: str + :ivar connection_overrides: + :vartype connection_overrides: list[~flow.models.ConnectionOverrideSetting] :ivar flow_run_display_name: :vartype flow_run_display_name: str :ivar description: @@ -18188,19 +18656,14 @@ class FlowRunSettingsBase(msrest.serialization.Model): :vartype promptflow_engine_type: str or ~flow.models.PromptflowEngineType :ivar experiment_node_name: :vartype experiment_node_name: str - :ivar batch_inputs: - :vartype batch_inputs: list[dict[str, any]] - :ivar input_universal_link: - :vartype input_universal_link: str - :ivar data_inputs: This is a dictionary. - :vartype data_inputs: dict[str, str] - :ivar flow_run_output_directory: - :vartype flow_run_output_directory: str - :ivar connection_overrides: - :vartype connection_overrides: list[~flow.models.ConnectionOverrideSetting] """ _attribute_map = { + 'batch_inputs': {'key': 'batch_inputs', 'type': '[{object}]'}, + 'input_universal_link': {'key': 'inputUniversalLink', 'type': 'str'}, + 'data_inputs': {'key': 'dataInputs', 'type': '{str}'}, + 'flow_run_output_directory': {'key': 'flowRunOutputDirectory', 'type': 'str'}, + 'connection_overrides': {'key': 'connectionOverrides', 'type': '[ConnectionOverrideSetting]'}, 'flow_run_display_name': {'key': 'flowRunDisplayName', 'type': 'str'}, 'description': {'key': 'description', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, @@ -18217,11 +18680,6 @@ class FlowRunSettingsBase(msrest.serialization.Model): 'timeout_in_seconds': {'key': 'timeoutInSeconds', 'type': 'int'}, 'promptflow_engine_type': {'key': 'promptflowEngineType', 'type': 'str'}, 'experiment_node_name': {'key': 'experimentNodeName', 'type': 'str'}, - 'batch_inputs': {'key': 'batch_inputs', 'type': '[{object}]'}, - 'input_universal_link': {'key': 'inputUniversalLink', 'type': 'str'}, - 'data_inputs': {'key': 'dataInputs', 'type': '{str}'}, - 'flow_run_output_directory': {'key': 'flowRunOutputDirectory', 'type': 'str'}, - 'connection_overrides': {'key': 'connectionOverrides', 'type': '[ConnectionOverrideSetting]'}, } def __init__( @@ -18229,6 +18687,16 @@ def __init__( **kwargs ): """ + :keyword batch_inputs: + :paramtype batch_inputs: list[dict[str, any]] + :keyword input_universal_link: + :paramtype input_universal_link: str + :keyword data_inputs: This is a dictionary. + :paramtype data_inputs: dict[str, str] + :keyword flow_run_output_directory: + :paramtype flow_run_output_directory: str + :keyword connection_overrides: + :paramtype connection_overrides: list[~flow.models.ConnectionOverrideSetting] :keyword flow_run_display_name: :paramtype flow_run_display_name: str :keyword description: @@ -18262,18 +18730,13 @@ def __init__( :paramtype promptflow_engine_type: str or ~flow.models.PromptflowEngineType :keyword experiment_node_name: :paramtype experiment_node_name: str - :keyword batch_inputs: - :paramtype batch_inputs: list[dict[str, any]] - :keyword input_universal_link: - :paramtype input_universal_link: str - :keyword data_inputs: This is a dictionary. - :paramtype data_inputs: dict[str, str] - :keyword flow_run_output_directory: - :paramtype flow_run_output_directory: str - :keyword connection_overrides: - :paramtype connection_overrides: list[~flow.models.ConnectionOverrideSetting] """ super(FlowRunSettingsBase, self).__init__(**kwargs) + self.batch_inputs = kwargs.get('batch_inputs', None) + self.input_universal_link = kwargs.get('input_universal_link', None) + self.data_inputs = kwargs.get('data_inputs', None) + self.flow_run_output_directory = kwargs.get('flow_run_output_directory', None) + self.connection_overrides = kwargs.get('connection_overrides', None) self.flow_run_display_name = kwargs.get('flow_run_display_name', None) self.description = kwargs.get('description', None) self.tags = kwargs.get('tags', None) @@ -18290,11 +18753,6 @@ def __init__( self.timeout_in_seconds = kwargs.get('timeout_in_seconds', None) self.promptflow_engine_type = kwargs.get('promptflow_engine_type', None) self.experiment_node_name = kwargs.get('experiment_node_name', None) - self.batch_inputs = kwargs.get('batch_inputs', None) - self.input_universal_link = kwargs.get('input_universal_link', None) - self.data_inputs = kwargs.get('data_inputs', None) - self.flow_run_output_directory = kwargs.get('flow_run_output_directory', None) - self.connection_overrides = kwargs.get('connection_overrides', None) class FlowRunStatusResponse(msrest.serialization.Model): @@ -18760,8 +19218,6 @@ class FlowSnapshot(msrest.serialization.Model): :vartype environment_variables: dict[str, any] :ivar language: Possible values include: "Python", "CSharp", "TypeScript", "JavaScript". :vartype language: str or ~flow.models.FlowLanguage - :ivar path: - :vartype path: str :ivar entry: :vartype entry: str """ @@ -18774,7 +19230,6 @@ class FlowSnapshot(msrest.serialization.Model): 'environment': {'key': 'environment', 'type': 'FlowEnvironment'}, 'environment_variables': {'key': 'environment_variables', 'type': '{object}'}, 'language': {'key': 'language', 'type': 'str'}, - 'path': {'key': 'path', 'type': 'str'}, 'entry': {'key': 'entry', 'type': 'str'}, } @@ -18797,8 +19252,6 @@ def __init__( :paramtype environment_variables: dict[str, any] :keyword language: Possible values include: "Python", "CSharp", "TypeScript", "JavaScript". :paramtype language: str or ~flow.models.FlowLanguage - :keyword path: - :paramtype path: str :keyword entry: :paramtype entry: str """ @@ -18810,7 +19263,6 @@ def __init__( self.environment = kwargs.get('environment', None) self.environment_variables = kwargs.get('environment_variables', None) self.language = kwargs.get('language', None) - self.path = kwargs.get('path', None) self.entry = kwargs.get('entry', None) @@ -21532,7 +21984,7 @@ class InputDefinition(msrest.serialization.Model): :ivar description: :vartype description: str :ivar enum: - :vartype enum: list[str] + :vartype enum: list[any] :ivar enabled_by: :vartype enabled_by: str :ivar enabled_by_type: @@ -21564,7 +22016,7 @@ class InputDefinition(msrest.serialization.Model): 'type': {'key': 'type', 'type': '[str]'}, 'default': {'key': 'default', 'type': 'object'}, 'description': {'key': 'description', 'type': 'str'}, - 'enum': {'key': 'enum', 'type': '[str]'}, + 'enum': {'key': 'enum', 'type': '[object]'}, 'enabled_by': {'key': 'enabled_by', 'type': 'str'}, 'enabled_by_type': {'key': 'enabled_by_type', 'type': '[str]'}, 'enabled_by_value': {'key': 'enabled_by_value', 'type': '[object]'}, @@ -21593,7 +22045,7 @@ def __init__( :keyword description: :paramtype description: str :keyword enum: - :paramtype enum: list[str] + :paramtype enum: list[any] :keyword enabled_by: :paramtype enabled_by: str :keyword enabled_by_type: @@ -34483,6 +34935,53 @@ def __init__( self.last_alive_time = kwargs.get('last_alive_time', None) +class SessionRuntimeResources(msrest.serialization.Model): + """SessionRuntimeResources. + + :ivar vm_size: + :vartype vm_size: str + :ivar max_idle_time_seconds: + :vartype max_idle_time_seconds: long + :ivar identity: + :vartype identity: str + :ivar compute_name: + :vartype compute_name: str + :ivar enable_multi_container: + :vartype enable_multi_container: bool + """ + + _attribute_map = { + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'max_idle_time_seconds': {'key': 'maxIdleTimeSeconds', 'type': 'long'}, + 'identity': {'key': 'identity', 'type': 'str'}, + 'compute_name': {'key': 'computeName', 'type': 'str'}, + 'enable_multi_container': {'key': 'enableMultiContainer', 'type': 'bool'}, + } + + def __init__( + self, + **kwargs + ): + """ + :keyword vm_size: + :paramtype vm_size: str + :keyword max_idle_time_seconds: + :paramtype max_idle_time_seconds: long + :keyword identity: + :paramtype identity: str + :keyword compute_name: + :paramtype compute_name: str + :keyword enable_multi_container: + :paramtype enable_multi_container: bool + """ + super(SessionRuntimeResources, self).__init__(**kwargs) + self.vm_size = kwargs.get('vm_size', None) + self.max_idle_time_seconds = kwargs.get('max_idle_time_seconds', None) + self.identity = kwargs.get('identity', None) + self.compute_name = kwargs.get('compute_name', None) + self.enable_multi_container = kwargs.get('enable_multi_container', None) + + class SetupFlowSessionRequest(msrest.serialization.Model): """SetupFlowSessionRequest. @@ -36751,6 +37250,35 @@ def __init__( self.variant_run_to_evaluation_runs_id_mapping = kwargs.get('variant_run_to_evaluation_runs_id_mapping', None) +class SubmitExperimentRequest(msrest.serialization.Model): + """SubmitExperimentRequest. + + :ivar experiment_template_id: + :vartype experiment_template_id: str + :ivar experiment_definition_source: + :vartype experiment_definition_source: ~flow.models.ExperimentDefinitionSource + """ + + _attribute_map = { + 'experiment_template_id': {'key': 'experimentTemplateId', 'type': 'str'}, + 'experiment_definition_source': {'key': 'experimentDefinitionSource', 'type': 'ExperimentDefinitionSource'}, + } + + def __init__( + self, + **kwargs + ): + """ + :keyword experiment_template_id: + :paramtype experiment_template_id: str + :keyword experiment_definition_source: + :paramtype experiment_definition_source: ~flow.models.ExperimentDefinitionSource + """ + super(SubmitExperimentRequest, self).__init__(**kwargs) + self.experiment_template_id = kwargs.get('experiment_template_id', None) + self.experiment_definition_source = kwargs.get('experiment_definition_source', None) + + class SubmitFlowRequest(msrest.serialization.Model): """SubmitFlowRequest. @@ -37872,7 +38400,7 @@ class Tool(msrest.serialization.Model): :vartype enable_kwargs: bool :ivar deprecated_tools: :vartype deprecated_tools: list[str] - :ivar tool_state: Possible values include: "Stable", "Preview", "Deprecated". + :ivar tool_state: Possible values include: "Stable", "Preview", "Deprecated", "Archived". :vartype tool_state: str or ~flow.models.ToolState """ @@ -37958,7 +38486,7 @@ def __init__( :paramtype enable_kwargs: bool :keyword deprecated_tools: :paramtype deprecated_tools: list[str] - :keyword tool_state: Possible values include: "Stable", "Preview", "Deprecated". + :keyword tool_state: Possible values include: "Stable", "Preview", "Deprecated", "Archived". :paramtype tool_state: str or ~flow.models.ToolState """ super(Tool, self).__init__(**kwargs) diff --git a/src/promptflow/promptflow/azure/_restclient/flow/models/_models_py3.py b/src/promptflow/promptflow/azure/_restclient/flow/models/_models_py3.py index 4ab05dae203..6a1748949ba 100644 --- a/src/promptflow/promptflow/azure/_restclient/flow/models/_models_py3.py +++ b/src/promptflow/promptflow/azure/_restclient/flow/models/_models_py3.py @@ -9051,8 +9051,7 @@ class AssetVersionPublishRequest(msrest.serialization.Model): """AssetVersionPublishRequest. :ivar asset_type: Possible values include: "Component", "Model", "Environment", "Dataset", - "DataStore", "SampleGraph", "FlowTool", "FlowToolSetting", "FlowConnection", "FlowSample", - "FlowRuntimeSpec". + "DataStore", "SampleGraph", "FlowToolSetting", "FlowConnection", "FlowRuntimeSpec". :vartype asset_type: str or ~flow.models.AssetType :ivar asset_source_type: Possible values include: "Unknown", "Local", "GithubFile", "GithubFolder", "DevopsArtifactsZip". @@ -9105,8 +9104,7 @@ def __init__( ): """ :keyword asset_type: Possible values include: "Component", "Model", "Environment", "Dataset", - "DataStore", "SampleGraph", "FlowTool", "FlowToolSetting", "FlowConnection", "FlowSample", - "FlowRuntimeSpec". + "DataStore", "SampleGraph", "FlowToolSetting", "FlowConnection", "FlowRuntimeSpec". :paramtype asset_type: str or ~flow.models.AssetType :keyword asset_source_type: Possible values include: "Unknown", "Local", "GithubFile", "GithubFolder", "DevopsArtifactsZip". @@ -10364,6 +10362,115 @@ def __init__( self.batch_data_input = batch_data_input +class ChatGroupRole(msrest.serialization.Model): + """ChatGroupRole. + + :ivar name: + :vartype name: str + :ivar role: + :vartype role: str + :ivar stop_signal: + :vartype stop_signal: str + :ivar path: + :vartype path: str + :ivar variant: + :vartype variant: str + :ivar connections: This is a dictionary. + :vartype connections: dict[str, dict[str, str]] + :ivar environment_variables: This is a dictionary. + :vartype environment_variables: dict[str, str] + :ivar display_name: + :vartype display_name: str + :ivar description: + :vartype description: str + :ivar tags: A set of tags. This is a dictionary. + :vartype tags: dict[str, str] + :ivar properties: This is a dictionary. + :vartype properties: dict[str, str] + :ivar resources: + :vartype resources: ~flow.models.SessionRuntimeResources + :ivar inputs: Dictionary of :code:``. + :vartype inputs: dict[str, any] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'role': {'key': 'role', 'type': 'str'}, + 'stop_signal': {'key': 'stop_signal', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + 'variant': {'key': 'variant', 'type': 'str'}, + 'connections': {'key': 'connections', 'type': '{{str}}'}, + 'environment_variables': {'key': 'environment_variables', 'type': '{str}'}, + 'display_name': {'key': 'display_name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'properties': {'key': 'properties', 'type': '{str}'}, + 'resources': {'key': 'resources', 'type': 'SessionRuntimeResources'}, + 'inputs': {'key': 'inputs', 'type': '{object}'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + role: Optional[str] = None, + stop_signal: Optional[str] = None, + path: Optional[str] = None, + variant: Optional[str] = None, + connections: Optional[Dict[str, Dict[str, str]]] = None, + environment_variables: Optional[Dict[str, str]] = None, + display_name: Optional[str] = None, + description: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + properties: Optional[Dict[str, str]] = None, + resources: Optional["SessionRuntimeResources"] = None, + inputs: Optional[Dict[str, Any]] = None, + **kwargs + ): + """ + :keyword name: + :paramtype name: str + :keyword role: + :paramtype role: str + :keyword stop_signal: + :paramtype stop_signal: str + :keyword path: + :paramtype path: str + :keyword variant: + :paramtype variant: str + :keyword connections: This is a dictionary. + :paramtype connections: dict[str, dict[str, str]] + :keyword environment_variables: This is a dictionary. + :paramtype environment_variables: dict[str, str] + :keyword display_name: + :paramtype display_name: str + :keyword description: + :paramtype description: str + :keyword tags: A set of tags. This is a dictionary. + :paramtype tags: dict[str, str] + :keyword properties: This is a dictionary. + :paramtype properties: dict[str, str] + :keyword resources: + :paramtype resources: ~flow.models.SessionRuntimeResources + :keyword inputs: Dictionary of :code:``. + :paramtype inputs: dict[str, any] + """ + super(ChatGroupRole, self).__init__(**kwargs) + self.name = name + self.role = role + self.stop_signal = stop_signal + self.path = path + self.variant = variant + self.connections = connections + self.environment_variables = environment_variables + self.display_name = display_name + self.description = description + self.tags = tags + self.properties = properties + self.resources = resources + self.inputs = inputs + + class CloudError(msrest.serialization.Model): """CloudError. @@ -13054,6 +13161,31 @@ def __init__( self.location = location +class CreateExperimentTemplateRequest(msrest.serialization.Model): + """CreateExperimentTemplateRequest. + + :ivar experiment_definition_source: + :vartype experiment_definition_source: ~flow.models.ExperimentDefinitionSource + """ + + _attribute_map = { + 'experiment_definition_source': {'key': 'experimentDefinitionSource', 'type': 'ExperimentDefinitionSource'}, + } + + def __init__( + self, + *, + experiment_definition_source: Optional["ExperimentDefinitionSource"] = None, + **kwargs + ): + """ + :keyword experiment_definition_source: + :paramtype experiment_definition_source: ~flow.models.ExperimentDefinitionSource + """ + super(CreateExperimentTemplateRequest, self).__init__(**kwargs) + self.experiment_definition_source = experiment_definition_source + + class CreateFlowRequest(msrest.serialization.Model): """CreateFlowRequest. @@ -18185,6 +18317,130 @@ def __init__( self.compute_type = compute_type +class ExperimentData(msrest.serialization.Model): + """ExperimentData. + + :ivar name: + :vartype name: str + :ivar path: + :vartype path: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'path': {'key': 'path', 'type': 'str'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + path: Optional[str] = None, + **kwargs + ): + """ + :keyword name: + :paramtype name: str + :keyword path: + :paramtype path: str + """ + super(ExperimentData, self).__init__(**kwargs) + self.name = name + self.path = path + + +class ExperimentDefinition(msrest.serialization.Model): + """ExperimentDefinition. + + :ivar name: + :vartype name: str + :ivar description: + :vartype description: str + :ivar inputs: + :vartype inputs: list[~flow.models.FlowInputDefinition] + :ivar data: + :vartype data: list[~flow.models.ExperimentData] + :ivar nodes: + :vartype nodes: list[~flow.models.ExperimentNode] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'inputs': {'key': 'inputs', 'type': '[FlowInputDefinition]'}, + 'data': {'key': 'data', 'type': '[ExperimentData]'}, + 'nodes': {'key': 'nodes', 'type': '[ExperimentNode]'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + description: Optional[str] = None, + inputs: Optional[List["FlowInputDefinition"]] = None, + data: Optional[List["ExperimentData"]] = None, + nodes: Optional[List["ExperimentNode"]] = None, + **kwargs + ): + """ + :keyword name: + :paramtype name: str + :keyword description: + :paramtype description: str + :keyword inputs: + :paramtype inputs: list[~flow.models.FlowInputDefinition] + :keyword data: + :paramtype data: list[~flow.models.ExperimentData] + :keyword nodes: + :paramtype nodes: list[~flow.models.ExperimentNode] + """ + super(ExperimentDefinition, self).__init__(**kwargs) + self.name = name + self.description = description + self.inputs = inputs + self.data = data + self.nodes = nodes + + +class ExperimentDefinitionSource(msrest.serialization.Model): + """ExperimentDefinitionSource. + + :ivar source_type: Possible values include: "DataUri", "Definition". + :vartype source_type: str or ~flow.models.ExperimentDefinitionSourceType + :ivar experiment_definition_data_uri: + :vartype experiment_definition_data_uri: str + :ivar experiment_definition: + :vartype experiment_definition: ~flow.models.ExperimentDefinition + """ + + _attribute_map = { + 'source_type': {'key': 'sourceType', 'type': 'str'}, + 'experiment_definition_data_uri': {'key': 'experimentDefinitionDataUri', 'type': 'str'}, + 'experiment_definition': {'key': 'experimentDefinition', 'type': 'ExperimentDefinition'}, + } + + def __init__( + self, + *, + source_type: Optional[Union[str, "ExperimentDefinitionSourceType"]] = None, + experiment_definition_data_uri: Optional[str] = None, + experiment_definition: Optional["ExperimentDefinition"] = None, + **kwargs + ): + """ + :keyword source_type: Possible values include: "DataUri", "Definition". + :paramtype source_type: str or ~flow.models.ExperimentDefinitionSourceType + :keyword experiment_definition_data_uri: + :paramtype experiment_definition_data_uri: str + :keyword experiment_definition: + :paramtype experiment_definition: ~flow.models.ExperimentDefinition + """ + super(ExperimentDefinitionSource, self).__init__(**kwargs) + self.source_type = source_type + self.experiment_definition_data_uri = experiment_definition_data_uri + self.experiment_definition = experiment_definition + + class ExperimentInfo(msrest.serialization.Model): """ExperimentInfo. @@ -18217,6 +18473,203 @@ def __init__( self.experiment_id = experiment_id +class ExperimentNode(msrest.serialization.Model): + """ExperimentNode. + + :ivar name: + :vartype name: str + :ivar type: Possible values include: "Flow", "ChatGroup". + :vartype type: str or ~flow.models.ExperimentNodeType + :ivar max_turns: + :vartype max_turns: int + :ivar roles: + :vartype roles: list[~flow.models.ChatGroupRole] + :ivar path: + :vartype path: str + :ivar variant: + :vartype variant: str + :ivar connections: This is a dictionary. + :vartype connections: dict[str, dict[str, str]] + :ivar environment_variables: This is a dictionary. + :vartype environment_variables: dict[str, str] + :ivar display_name: + :vartype display_name: str + :ivar description: + :vartype description: str + :ivar tags: A set of tags. This is a dictionary. + :vartype tags: dict[str, str] + :ivar properties: This is a dictionary. + :vartype properties: dict[str, str] + :ivar resources: + :vartype resources: ~flow.models.SessionRuntimeResources + :ivar inputs: Dictionary of :code:``. + :vartype inputs: dict[str, any] + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'max_turns': {'key': 'max_turns', 'type': 'int'}, + 'roles': {'key': 'roles', 'type': '[ChatGroupRole]'}, + 'path': {'key': 'path', 'type': 'str'}, + 'variant': {'key': 'variant', 'type': 'str'}, + 'connections': {'key': 'connections', 'type': '{{str}}'}, + 'environment_variables': {'key': 'environment_variables', 'type': '{str}'}, + 'display_name': {'key': 'display_name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'properties': {'key': 'properties', 'type': '{str}'}, + 'resources': {'key': 'resources', 'type': 'SessionRuntimeResources'}, + 'inputs': {'key': 'inputs', 'type': '{object}'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + type: Optional[Union[str, "ExperimentNodeType"]] = None, + max_turns: Optional[int] = None, + roles: Optional[List["ChatGroupRole"]] = None, + path: Optional[str] = None, + variant: Optional[str] = None, + connections: Optional[Dict[str, Dict[str, str]]] = None, + environment_variables: Optional[Dict[str, str]] = None, + display_name: Optional[str] = None, + description: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + properties: Optional[Dict[str, str]] = None, + resources: Optional["SessionRuntimeResources"] = None, + inputs: Optional[Dict[str, Any]] = None, + **kwargs + ): + """ + :keyword name: + :paramtype name: str + :keyword type: Possible values include: "Flow", "ChatGroup". + :paramtype type: str or ~flow.models.ExperimentNodeType + :keyword max_turns: + :paramtype max_turns: int + :keyword roles: + :paramtype roles: list[~flow.models.ChatGroupRole] + :keyword path: + :paramtype path: str + :keyword variant: + :paramtype variant: str + :keyword connections: This is a dictionary. + :paramtype connections: dict[str, dict[str, str]] + :keyword environment_variables: This is a dictionary. + :paramtype environment_variables: dict[str, str] + :keyword display_name: + :paramtype display_name: str + :keyword description: + :paramtype description: str + :keyword tags: A set of tags. This is a dictionary. + :paramtype tags: dict[str, str] + :keyword properties: This is a dictionary. + :paramtype properties: dict[str, str] + :keyword resources: + :paramtype resources: ~flow.models.SessionRuntimeResources + :keyword inputs: Dictionary of :code:``. + :paramtype inputs: dict[str, any] + """ + super(ExperimentNode, self).__init__(**kwargs) + self.name = name + self.type = type + self.max_turns = max_turns + self.roles = roles + self.path = path + self.variant = variant + self.connections = connections + self.environment_variables = environment_variables + self.display_name = display_name + self.description = description + self.tags = tags + self.properties = properties + self.resources = resources + self.inputs = inputs + + +class ExperimentTemplateDto(msrest.serialization.Model): + """ExperimentTemplateDto. + + :ivar id: + :vartype id: str + :ivar created_date: + :vartype created_date: ~datetime.datetime + :ivar last_modified_date: + :vartype last_modified_date: ~datetime.datetime + :ivar owner: + :vartype owner: ~flow.models.SchemaContractsCreatedBy + :ivar name: + :vartype name: str + :ivar description: + :vartype description: str + :ivar inputs: + :vartype inputs: list[~flow.models.FlowInputDefinition] + :ivar data: + :vartype data: list[~flow.models.ExperimentData] + :ivar nodes: + :vartype nodes: list[~flow.models.ExperimentNode] + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'created_date': {'key': 'createdDate', 'type': 'iso-8601'}, + 'last_modified_date': {'key': 'lastModifiedDate', 'type': 'iso-8601'}, + 'owner': {'key': 'owner', 'type': 'SchemaContractsCreatedBy'}, + 'name': {'key': 'name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'inputs': {'key': 'inputs', 'type': '[FlowInputDefinition]'}, + 'data': {'key': 'data', 'type': '[ExperimentData]'}, + 'nodes': {'key': 'nodes', 'type': '[ExperimentNode]'}, + } + + def __init__( + self, + *, + id: Optional[str] = None, + created_date: Optional[datetime.datetime] = None, + last_modified_date: Optional[datetime.datetime] = None, + owner: Optional["SchemaContractsCreatedBy"] = None, + name: Optional[str] = None, + description: Optional[str] = None, + inputs: Optional[List["FlowInputDefinition"]] = None, + data: Optional[List["ExperimentData"]] = None, + nodes: Optional[List["ExperimentNode"]] = None, + **kwargs + ): + """ + :keyword id: + :paramtype id: str + :keyword created_date: + :paramtype created_date: ~datetime.datetime + :keyword last_modified_date: + :paramtype last_modified_date: ~datetime.datetime + :keyword owner: + :paramtype owner: ~flow.models.SchemaContractsCreatedBy + :keyword name: + :paramtype name: str + :keyword description: + :paramtype description: str + :keyword inputs: + :paramtype inputs: list[~flow.models.FlowInputDefinition] + :keyword data: + :paramtype data: list[~flow.models.ExperimentData] + :keyword nodes: + :paramtype nodes: list[~flow.models.ExperimentNode] + """ + super(ExperimentTemplateDto, self).__init__(**kwargs) + self.id = id + self.created_date = created_date + self.last_modified_date = last_modified_date + self.owner = owner + self.name = name + self.description = description + self.inputs = inputs + self.data = data + self.nodes = nodes + + class ExportComponentMetaInfo(msrest.serialization.Model): """ExportComponentMetaInfo. @@ -18732,6 +19185,8 @@ class FlowBaseDto(msrest.serialization.Model): :vartype max_idle_time_seconds: long :ivar identity: :vartype identity: str + :ivar flow_diagnostics: + :vartype flow_diagnostics: ~flow.models.FlowDiagnostics """ _attribute_map = { @@ -18750,6 +19205,7 @@ class FlowBaseDto(msrest.serialization.Model): 'vm_size': {'key': 'vmSize', 'type': 'str'}, 'max_idle_time_seconds': {'key': 'maxIdleTimeSeconds', 'type': 'long'}, 'identity': {'key': 'identity', 'type': 'str'}, + 'flow_diagnostics': {'key': 'flowDiagnostics', 'type': 'FlowDiagnostics'}, } def __init__( @@ -18770,6 +19226,7 @@ def __init__( vm_size: Optional[str] = None, max_idle_time_seconds: Optional[int] = None, identity: Optional[str] = None, + flow_diagnostics: Optional["FlowDiagnostics"] = None, **kwargs ): """ @@ -18803,6 +19260,8 @@ def __init__( :paramtype max_idle_time_seconds: long :keyword identity: :paramtype identity: str + :keyword flow_diagnostics: + :paramtype flow_diagnostics: ~flow.models.FlowDiagnostics """ super(FlowBaseDto, self).__init__(**kwargs) self.flow_id = flow_id @@ -18820,6 +19279,60 @@ def __init__( self.vm_size = vm_size self.max_idle_time_seconds = max_idle_time_seconds self.identity = identity + self.flow_diagnostics = flow_diagnostics + + +class FlowDiagnostics(msrest.serialization.Model): + """FlowDiagnostics. + + :ivar datastore: + :vartype datastore: str + :ivar artifact_origin: + :vartype artifact_origin: str + :ivar container: + :vartype container: str + :ivar session_log_relative_path: + :vartype session_log_relative_path: str + :ivar session_artifact_id: + :vartype session_artifact_id: str + """ + + _attribute_map = { + 'datastore': {'key': 'datastore', 'type': 'str'}, + 'artifact_origin': {'key': 'artifactOrigin', 'type': 'str'}, + 'container': {'key': 'container', 'type': 'str'}, + 'session_log_relative_path': {'key': 'sessionLogRelativePath', 'type': 'str'}, + 'session_artifact_id': {'key': 'sessionArtifactId', 'type': 'str'}, + } + + def __init__( + self, + *, + datastore: Optional[str] = None, + artifact_origin: Optional[str] = None, + container: Optional[str] = None, + session_log_relative_path: Optional[str] = None, + session_artifact_id: Optional[str] = None, + **kwargs + ): + """ + :keyword datastore: + :paramtype datastore: str + :keyword artifact_origin: + :paramtype artifact_origin: str + :keyword container: + :paramtype container: str + :keyword session_log_relative_path: + :paramtype session_log_relative_path: str + :keyword session_artifact_id: + :paramtype session_artifact_id: str + """ + super(FlowDiagnostics, self).__init__(**kwargs) + self.datastore = datastore + self.artifact_origin = artifact_origin + self.container = container + self.session_log_relative_path = session_log_relative_path + self.session_artifact_id = session_artifact_id class FlowDto(msrest.serialization.Model): @@ -18871,6 +19384,8 @@ class FlowDto(msrest.serialization.Model): :vartype max_idle_time_seconds: long :ivar identity: :vartype identity: str + :ivar flow_diagnostics: + :vartype flow_diagnostics: ~flow.models.FlowDiagnostics """ _attribute_map = { @@ -18897,6 +19412,7 @@ class FlowDto(msrest.serialization.Model): 'vm_size': {'key': 'vmSize', 'type': 'str'}, 'max_idle_time_seconds': {'key': 'maxIdleTimeSeconds', 'type': 'long'}, 'identity': {'key': 'identity', 'type': 'str'}, + 'flow_diagnostics': {'key': 'flowDiagnostics', 'type': 'FlowDiagnostics'}, } def __init__( @@ -18925,6 +19441,7 @@ def __init__( vm_size: Optional[str] = None, max_idle_time_seconds: Optional[int] = None, identity: Optional[str] = None, + flow_diagnostics: Optional["FlowDiagnostics"] = None, **kwargs ): """ @@ -18974,6 +19491,8 @@ def __init__( :paramtype max_idle_time_seconds: long :keyword identity: :paramtype identity: str + :keyword flow_diagnostics: + :paramtype flow_diagnostics: ~flow.models.FlowDiagnostics """ super(FlowDto, self).__init__(**kwargs) self.timestamp = timestamp @@ -18999,6 +19518,7 @@ def __init__( self.vm_size = vm_size self.max_idle_time_seconds = max_idle_time_seconds self.identity = identity + self.flow_diagnostics = flow_diagnostics class FlowEnvironment(msrest.serialization.Model): @@ -20502,6 +21022,16 @@ def __init__( class FlowRunSettingsBase(msrest.serialization.Model): """FlowRunSettingsBase. + :ivar batch_inputs: + :vartype batch_inputs: list[dict[str, any]] + :ivar input_universal_link: + :vartype input_universal_link: str + :ivar data_inputs: This is a dictionary. + :vartype data_inputs: dict[str, str] + :ivar flow_run_output_directory: + :vartype flow_run_output_directory: str + :ivar connection_overrides: + :vartype connection_overrides: list[~flow.models.ConnectionOverrideSetting] :ivar flow_run_display_name: :vartype flow_run_display_name: str :ivar description: @@ -20535,19 +21065,14 @@ class FlowRunSettingsBase(msrest.serialization.Model): :vartype promptflow_engine_type: str or ~flow.models.PromptflowEngineType :ivar experiment_node_name: :vartype experiment_node_name: str - :ivar batch_inputs: - :vartype batch_inputs: list[dict[str, any]] - :ivar input_universal_link: - :vartype input_universal_link: str - :ivar data_inputs: This is a dictionary. - :vartype data_inputs: dict[str, str] - :ivar flow_run_output_directory: - :vartype flow_run_output_directory: str - :ivar connection_overrides: - :vartype connection_overrides: list[~flow.models.ConnectionOverrideSetting] """ _attribute_map = { + 'batch_inputs': {'key': 'batch_inputs', 'type': '[{object}]'}, + 'input_universal_link': {'key': 'inputUniversalLink', 'type': 'str'}, + 'data_inputs': {'key': 'dataInputs', 'type': '{str}'}, + 'flow_run_output_directory': {'key': 'flowRunOutputDirectory', 'type': 'str'}, + 'connection_overrides': {'key': 'connectionOverrides', 'type': '[ConnectionOverrideSetting]'}, 'flow_run_display_name': {'key': 'flowRunDisplayName', 'type': 'str'}, 'description': {'key': 'description', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, @@ -20564,16 +21089,16 @@ class FlowRunSettingsBase(msrest.serialization.Model): 'timeout_in_seconds': {'key': 'timeoutInSeconds', 'type': 'int'}, 'promptflow_engine_type': {'key': 'promptflowEngineType', 'type': 'str'}, 'experiment_node_name': {'key': 'experimentNodeName', 'type': 'str'}, - 'batch_inputs': {'key': 'batch_inputs', 'type': '[{object}]'}, - 'input_universal_link': {'key': 'inputUniversalLink', 'type': 'str'}, - 'data_inputs': {'key': 'dataInputs', 'type': '{str}'}, - 'flow_run_output_directory': {'key': 'flowRunOutputDirectory', 'type': 'str'}, - 'connection_overrides': {'key': 'connectionOverrides', 'type': '[ConnectionOverrideSetting]'}, } def __init__( self, *, + batch_inputs: Optional[List[Dict[str, Any]]] = None, + input_universal_link: Optional[str] = None, + data_inputs: Optional[Dict[str, str]] = None, + flow_run_output_directory: Optional[str] = None, + connection_overrides: Optional[List["ConnectionOverrideSetting"]] = None, flow_run_display_name: Optional[str] = None, description: Optional[str] = None, tags: Optional[Dict[str, str]] = None, @@ -20590,14 +21115,19 @@ def __init__( timeout_in_seconds: Optional[int] = None, promptflow_engine_type: Optional[Union[str, "PromptflowEngineType"]] = None, experiment_node_name: Optional[str] = None, - batch_inputs: Optional[List[Dict[str, Any]]] = None, - input_universal_link: Optional[str] = None, - data_inputs: Optional[Dict[str, str]] = None, - flow_run_output_directory: Optional[str] = None, - connection_overrides: Optional[List["ConnectionOverrideSetting"]] = None, **kwargs ): """ + :keyword batch_inputs: + :paramtype batch_inputs: list[dict[str, any]] + :keyword input_universal_link: + :paramtype input_universal_link: str + :keyword data_inputs: This is a dictionary. + :paramtype data_inputs: dict[str, str] + :keyword flow_run_output_directory: + :paramtype flow_run_output_directory: str + :keyword connection_overrides: + :paramtype connection_overrides: list[~flow.models.ConnectionOverrideSetting] :keyword flow_run_display_name: :paramtype flow_run_display_name: str :keyword description: @@ -20631,18 +21161,13 @@ def __init__( :paramtype promptflow_engine_type: str or ~flow.models.PromptflowEngineType :keyword experiment_node_name: :paramtype experiment_node_name: str - :keyword batch_inputs: - :paramtype batch_inputs: list[dict[str, any]] - :keyword input_universal_link: - :paramtype input_universal_link: str - :keyword data_inputs: This is a dictionary. - :paramtype data_inputs: dict[str, str] - :keyword flow_run_output_directory: - :paramtype flow_run_output_directory: str - :keyword connection_overrides: - :paramtype connection_overrides: list[~flow.models.ConnectionOverrideSetting] """ super(FlowRunSettingsBase, self).__init__(**kwargs) + self.batch_inputs = batch_inputs + self.input_universal_link = input_universal_link + self.data_inputs = data_inputs + self.flow_run_output_directory = flow_run_output_directory + self.connection_overrides = connection_overrides self.flow_run_display_name = flow_run_display_name self.description = description self.tags = tags @@ -20659,11 +21184,6 @@ def __init__( self.timeout_in_seconds = timeout_in_seconds self.promptflow_engine_type = promptflow_engine_type self.experiment_node_name = experiment_node_name - self.batch_inputs = batch_inputs - self.input_universal_link = input_universal_link - self.data_inputs = data_inputs - self.flow_run_output_directory = flow_run_output_directory - self.connection_overrides = connection_overrides class FlowRunStatusResponse(msrest.serialization.Model): @@ -21194,8 +21714,6 @@ class FlowSnapshot(msrest.serialization.Model): :vartype environment_variables: dict[str, any] :ivar language: Possible values include: "Python", "CSharp", "TypeScript", "JavaScript". :vartype language: str or ~flow.models.FlowLanguage - :ivar path: - :vartype path: str :ivar entry: :vartype entry: str """ @@ -21208,7 +21726,6 @@ class FlowSnapshot(msrest.serialization.Model): 'environment': {'key': 'environment', 'type': 'FlowEnvironment'}, 'environment_variables': {'key': 'environment_variables', 'type': '{object}'}, 'language': {'key': 'language', 'type': 'str'}, - 'path': {'key': 'path', 'type': 'str'}, 'entry': {'key': 'entry', 'type': 'str'}, } @@ -21222,7 +21739,6 @@ def __init__( environment: Optional["FlowEnvironment"] = None, environment_variables: Optional[Dict[str, Any]] = None, language: Optional[Union[str, "FlowLanguage"]] = None, - path: Optional[str] = None, entry: Optional[str] = None, **kwargs ): @@ -21241,8 +21757,6 @@ def __init__( :paramtype environment_variables: dict[str, any] :keyword language: Possible values include: "Python", "CSharp", "TypeScript", "JavaScript". :paramtype language: str or ~flow.models.FlowLanguage - :keyword path: - :paramtype path: str :keyword entry: :paramtype entry: str """ @@ -21254,7 +21768,6 @@ def __init__( self.environment = environment self.environment_variables = environment_variables self.language = language - self.path = path self.entry = entry @@ -24335,7 +24848,7 @@ class InputDefinition(msrest.serialization.Model): :ivar description: :vartype description: str :ivar enum: - :vartype enum: list[str] + :vartype enum: list[any] :ivar enabled_by: :vartype enabled_by: str :ivar enabled_by_type: @@ -24367,7 +24880,7 @@ class InputDefinition(msrest.serialization.Model): 'type': {'key': 'type', 'type': '[str]'}, 'default': {'key': 'default', 'type': 'object'}, 'description': {'key': 'description', 'type': 'str'}, - 'enum': {'key': 'enum', 'type': '[str]'}, + 'enum': {'key': 'enum', 'type': '[object]'}, 'enabled_by': {'key': 'enabled_by', 'type': 'str'}, 'enabled_by_type': {'key': 'enabled_by_type', 'type': '[str]'}, 'enabled_by_value': {'key': 'enabled_by_value', 'type': '[object]'}, @@ -24389,7 +24902,7 @@ def __init__( type: Optional[List[Union[str, "ValueType"]]] = None, default: Optional[Any] = None, description: Optional[str] = None, - enum: Optional[List[str]] = None, + enum: Optional[List[Any]] = None, enabled_by: Optional[str] = None, enabled_by_type: Optional[List[Union[str, "ValueType"]]] = None, enabled_by_value: Optional[List[Any]] = None, @@ -24414,7 +24927,7 @@ def __init__( :keyword description: :paramtype description: str :keyword enum: - :paramtype enum: list[str] + :paramtype enum: list[any] :keyword enabled_by: :paramtype enabled_by: str :keyword enabled_by_type: @@ -39033,6 +39546,59 @@ def __init__( self.last_alive_time = last_alive_time +class SessionRuntimeResources(msrest.serialization.Model): + """SessionRuntimeResources. + + :ivar vm_size: + :vartype vm_size: str + :ivar max_idle_time_seconds: + :vartype max_idle_time_seconds: long + :ivar identity: + :vartype identity: str + :ivar compute_name: + :vartype compute_name: str + :ivar enable_multi_container: + :vartype enable_multi_container: bool + """ + + _attribute_map = { + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'max_idle_time_seconds': {'key': 'maxIdleTimeSeconds', 'type': 'long'}, + 'identity': {'key': 'identity', 'type': 'str'}, + 'compute_name': {'key': 'computeName', 'type': 'str'}, + 'enable_multi_container': {'key': 'enableMultiContainer', 'type': 'bool'}, + } + + def __init__( + self, + *, + vm_size: Optional[str] = None, + max_idle_time_seconds: Optional[int] = None, + identity: Optional[str] = None, + compute_name: Optional[str] = None, + enable_multi_container: Optional[bool] = None, + **kwargs + ): + """ + :keyword vm_size: + :paramtype vm_size: str + :keyword max_idle_time_seconds: + :paramtype max_idle_time_seconds: long + :keyword identity: + :paramtype identity: str + :keyword compute_name: + :paramtype compute_name: str + :keyword enable_multi_container: + :paramtype enable_multi_container: bool + """ + super(SessionRuntimeResources, self).__init__(**kwargs) + self.vm_size = vm_size + self.max_idle_time_seconds = max_idle_time_seconds + self.identity = identity + self.compute_name = compute_name + self.enable_multi_container = enable_multi_container + + class SetupFlowSessionRequest(msrest.serialization.Model): """SetupFlowSessionRequest. @@ -41597,6 +42163,38 @@ def __init__( self.variant_run_to_evaluation_runs_id_mapping = variant_run_to_evaluation_runs_id_mapping +class SubmitExperimentRequest(msrest.serialization.Model): + """SubmitExperimentRequest. + + :ivar experiment_template_id: + :vartype experiment_template_id: str + :ivar experiment_definition_source: + :vartype experiment_definition_source: ~flow.models.ExperimentDefinitionSource + """ + + _attribute_map = { + 'experiment_template_id': {'key': 'experimentTemplateId', 'type': 'str'}, + 'experiment_definition_source': {'key': 'experimentDefinitionSource', 'type': 'ExperimentDefinitionSource'}, + } + + def __init__( + self, + *, + experiment_template_id: Optional[str] = None, + experiment_definition_source: Optional["ExperimentDefinitionSource"] = None, + **kwargs + ): + """ + :keyword experiment_template_id: + :paramtype experiment_template_id: str + :keyword experiment_definition_source: + :paramtype experiment_definition_source: ~flow.models.ExperimentDefinitionSource + """ + super(SubmitExperimentRequest, self).__init__(**kwargs) + self.experiment_template_id = experiment_template_id + self.experiment_definition_source = experiment_definition_source + + class SubmitFlowRequest(msrest.serialization.Model): """SubmitFlowRequest. @@ -42848,7 +43446,7 @@ class Tool(msrest.serialization.Model): :vartype enable_kwargs: bool :ivar deprecated_tools: :vartype deprecated_tools: list[str] - :ivar tool_state: Possible values include: "Stable", "Preview", "Deprecated". + :ivar tool_state: Possible values include: "Stable", "Preview", "Deprecated", "Archived". :vartype tool_state: str or ~flow.models.ToolState """ @@ -42960,7 +43558,7 @@ def __init__( :paramtype enable_kwargs: bool :keyword deprecated_tools: :paramtype deprecated_tools: list[str] - :keyword tool_state: Possible values include: "Stable", "Preview", "Deprecated". + :keyword tool_state: Possible values include: "Stable", "Preview", "Deprecated", "Archived". :paramtype tool_state: str or ~flow.models.ToolState """ super(Tool, self).__init__(**kwargs) diff --git a/src/promptflow/promptflow/azure/_restclient/flow/operations/__init__.py b/src/promptflow/promptflow/azure/_restclient/flow/operations/__init__.py index ee2ed88a873..c18cf94c582 100644 --- a/src/promptflow/promptflow/azure/_restclient/flow/operations/__init__.py +++ b/src/promptflow/promptflow/azure/_restclient/flow/operations/__init__.py @@ -7,6 +7,8 @@ from ._bulk_runs_operations import BulkRunsOperations from ._connection_operations import ConnectionOperations from ._connections_operations import ConnectionsOperations +from ._experiments_operations import ExperimentsOperations +from ._experiment_templates_operations import ExperimentTemplatesOperations from ._flow_runtimes_operations import FlowRuntimesOperations from ._flow_runtimes_workspace_independent_operations import FlowRuntimesWorkspaceIndependentOperations from ._flows_operations import FlowsOperations @@ -19,6 +21,8 @@ 'BulkRunsOperations', 'ConnectionOperations', 'ConnectionsOperations', + 'ExperimentsOperations', + 'ExperimentTemplatesOperations', 'FlowRuntimesOperations', 'FlowRuntimesWorkspaceIndependentOperations', 'FlowsOperations', diff --git a/src/promptflow/promptflow/azure/_restclient/flow/operations/_experiment_templates_operations.py b/src/promptflow/promptflow/azure/_restclient/flow/operations/_experiment_templates_operations.py new file mode 100644 index 00000000000..6edffd04d58 --- /dev/null +++ b/src/promptflow/promptflow/azure/_restclient/flow/operations/_experiment_templates_operations.py @@ -0,0 +1,249 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.8.0, generator: @autorest/python@5.12.2) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import functools +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpResponse +from azure.core.rest import HttpRequest +from azure.core.tracing.decorator import distributed_trace +from msrest import Serializer + +from .. import models as _models +from .._vendor import _convert_request, _format_url_section + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +_SERIALIZER = Serializer() +_SERIALIZER.client_side_validation = False +# fmt: off + +def build_create_experiment_template_request( + subscription_id, # type: str + resource_group_name, # type: str + workspace_name, # type: str + experiment_template_id, # type: str + **kwargs # type: Any +): + # type: (...) -> HttpRequest + content_type = kwargs.pop('content_type', None) # type: Optional[str] + + accept = "application/json" + # Construct URL + url = kwargs.pop("template_url", '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/ExperimentTemplates/{experimentTemplateId}') + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, 'str'), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, 'str'), + "workspaceName": _SERIALIZER.url("workspace_name", workspace_name, 'str'), + "experimentTemplateId": _SERIALIZER.url("experiment_template_id", experiment_template_id, 'str'), + } + + url = _format_url_section(url, **path_format_arguments) + + # Construct headers + header_parameters = kwargs.pop("headers", {}) # type: Dict[str, Any] + if content_type is not None: + header_parameters['Content-Type'] = _SERIALIZER.header("content_type", content_type, 'str') + header_parameters['Accept'] = _SERIALIZER.header("accept", accept, 'str') + + return HttpRequest( + method="POST", + url=url, + headers=header_parameters, + **kwargs + ) + + +def build_get_experiment_template_request( + subscription_id, # type: str + resource_group_name, # type: str + workspace_name, # type: str + experiment_template_id, # type: str + **kwargs # type: Any +): + # type: (...) -> HttpRequest + accept = "application/json" + # Construct URL + url = kwargs.pop("template_url", '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/ExperimentTemplates/{experimentTemplateId}') + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, 'str'), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, 'str'), + "workspaceName": _SERIALIZER.url("workspace_name", workspace_name, 'str'), + "experimentTemplateId": _SERIALIZER.url("experiment_template_id", experiment_template_id, 'str'), + } + + url = _format_url_section(url, **path_format_arguments) + + # Construct headers + header_parameters = kwargs.pop("headers", {}) # type: Dict[str, Any] + header_parameters['Accept'] = _SERIALIZER.header("accept", accept, 'str') + + return HttpRequest( + method="GET", + url=url, + headers=header_parameters, + **kwargs + ) + +# fmt: on +class ExperimentTemplatesOperations(object): + """ExperimentTemplatesOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~flow.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + @distributed_trace + def create_experiment_template( + self, + subscription_id, # type: str + resource_group_name, # type: str + workspace_name, # type: str + experiment_template_id, # type: str + body=None, # type: Optional["_models.CreateExperimentTemplateRequest"] + **kwargs # type: Any + ): + # type: (...) -> "_models.ExperimentTemplateDto" + """create_experiment_template. + + :param subscription_id: The Azure Subscription ID. + :type subscription_id: str + :param resource_group_name: The Name of the resource group in which the workspace is located. + :type resource_group_name: str + :param workspace_name: The name of the workspace. + :type workspace_name: str + :param experiment_template_id: + :type experiment_template_id: str + :param body: + :type body: ~flow.models.CreateExperimentTemplateRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ExperimentTemplateDto, or the result of cls(response) + :rtype: ~flow.models.ExperimentTemplateDto + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ExperimentTemplateDto"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + content_type = kwargs.pop('content_type', "application/json") # type: Optional[str] + + if body is not None: + _json = self._serialize.body(body, 'CreateExperimentTemplateRequest') + else: + _json = None + + request = build_create_experiment_template_request( + subscription_id=subscription_id, + resource_group_name=resource_group_name, + workspace_name=workspace_name, + experiment_template_id=experiment_template_id, + content_type=content_type, + json=_json, + template_url=self.create_experiment_template.metadata['url'], + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('ExperimentTemplateDto', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + create_experiment_template.metadata = {'url': '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/ExperimentTemplates/{experimentTemplateId}'} # type: ignore + + + @distributed_trace + def get_experiment_template( + self, + subscription_id, # type: str + resource_group_name, # type: str + workspace_name, # type: str + experiment_template_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ExperimentTemplateDto" + """get_experiment_template. + + :param subscription_id: The Azure Subscription ID. + :type subscription_id: str + :param resource_group_name: The Name of the resource group in which the workspace is located. + :type resource_group_name: str + :param workspace_name: The name of the workspace. + :type workspace_name: str + :param experiment_template_id: + :type experiment_template_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ExperimentTemplateDto, or the result of cls(response) + :rtype: ~flow.models.ExperimentTemplateDto + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ExperimentTemplateDto"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + + request = build_get_experiment_template_request( + subscription_id=subscription_id, + resource_group_name=resource_group_name, + workspace_name=workspace_name, + experiment_template_id=experiment_template_id, + template_url=self.get_experiment_template.metadata['url'], + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('ExperimentTemplateDto', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get_experiment_template.metadata = {'url': '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/ExperimentTemplates/{experimentTemplateId}'} # type: ignore + diff --git a/src/promptflow/promptflow/azure/_restclient/flow/operations/_experiments_operations.py b/src/promptflow/promptflow/azure/_restclient/flow/operations/_experiments_operations.py new file mode 100644 index 00000000000..bc8b7b47580 --- /dev/null +++ b/src/promptflow/promptflow/azure/_restclient/flow/operations/_experiments_operations.py @@ -0,0 +1,267 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.8.0, generator: @autorest/python@5.12.2) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import functools +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpResponse +from azure.core.rest import HttpRequest +from azure.core.tracing.decorator import distributed_trace +from msrest import Serializer + +from .. import models as _models +from .._vendor import _convert_request, _format_url_section + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +_SERIALIZER = Serializer() +_SERIALIZER.client_side_validation = False +# fmt: off + +def build_submit_experiment_request( + subscription_id, # type: str + resource_group_name, # type: str + workspace_name, # type: str + experiment_id, # type: str + **kwargs # type: Any +): + # type: (...) -> HttpRequest + content_type = kwargs.pop('content_type', None) # type: Optional[str] + experiment_name = kwargs.pop('experiment_name', None) # type: Optional[str] + description = kwargs.pop('description', None) # type: Optional[str] + + accept = "application/json" + # Construct URL + url = kwargs.pop("template_url", '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Experiments/{experimentId}') + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, 'str'), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, 'str'), + "workspaceName": _SERIALIZER.url("workspace_name", workspace_name, 'str'), + "experimentId": _SERIALIZER.url("experiment_id", experiment_id, 'str'), + } + + url = _format_url_section(url, **path_format_arguments) + + # Construct parameters + query_parameters = kwargs.pop("params", {}) # type: Dict[str, Any] + if experiment_name is not None: + query_parameters['experimentName'] = _SERIALIZER.query("experiment_name", experiment_name, 'str') + if description is not None: + query_parameters['description'] = _SERIALIZER.query("description", description, 'str') + + # Construct headers + header_parameters = kwargs.pop("headers", {}) # type: Dict[str, Any] + if content_type is not None: + header_parameters['Content-Type'] = _SERIALIZER.header("content_type", content_type, 'str') + header_parameters['Accept'] = _SERIALIZER.header("accept", accept, 'str') + + return HttpRequest( + method="POST", + url=url, + params=query_parameters, + headers=header_parameters, + **kwargs + ) + + +def build_get_experiment_request( + subscription_id, # type: str + resource_group_name, # type: str + workspace_name, # type: str + experiment_id, # type: str + **kwargs # type: Any +): + # type: (...) -> HttpRequest + accept = "application/json" + # Construct URL + url = kwargs.pop("template_url", '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Experiments/{experimentId}') + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, 'str'), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, 'str'), + "workspaceName": _SERIALIZER.url("workspace_name", workspace_name, 'str'), + "experimentId": _SERIALIZER.url("experiment_id", experiment_id, 'str'), + } + + url = _format_url_section(url, **path_format_arguments) + + # Construct headers + header_parameters = kwargs.pop("headers", {}) # type: Dict[str, Any] + header_parameters['Accept'] = _SERIALIZER.header("accept", accept, 'str') + + return HttpRequest( + method="GET", + url=url, + headers=header_parameters, + **kwargs + ) + +# fmt: on +class ExperimentsOperations(object): + """ExperimentsOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~flow.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = _models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + @distributed_trace + def submit_experiment( + self, + subscription_id, # type: str + resource_group_name, # type: str + workspace_name, # type: str + experiment_id, # type: str + experiment_name=None, # type: Optional[str] + description=None, # type: Optional[str] + body=None, # type: Optional["_models.SubmitExperimentRequest"] + **kwargs # type: Any + ): + # type: (...) -> "_models.FlowDto" + """submit_experiment. + + :param subscription_id: The Azure Subscription ID. + :type subscription_id: str + :param resource_group_name: The Name of the resource group in which the workspace is located. + :type resource_group_name: str + :param workspace_name: The name of the workspace. + :type workspace_name: str + :param experiment_id: + :type experiment_id: str + :param experiment_name: + :type experiment_name: str + :param description: + :type description: str + :param body: + :type body: ~flow.models.SubmitExperimentRequest + :keyword callable cls: A custom type or function that will be passed the direct response + :return: FlowDto, or the result of cls(response) + :rtype: ~flow.models.FlowDto + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.FlowDto"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + content_type = kwargs.pop('content_type', "application/json") # type: Optional[str] + + if body is not None: + _json = self._serialize.body(body, 'SubmitExperimentRequest') + else: + _json = None + + request = build_submit_experiment_request( + subscription_id=subscription_id, + resource_group_name=resource_group_name, + workspace_name=workspace_name, + experiment_id=experiment_id, + content_type=content_type, + json=_json, + experiment_name=experiment_name, + description=description, + template_url=self.submit_experiment.metadata['url'], + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('FlowDto', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + submit_experiment.metadata = {'url': '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Experiments/{experimentId}'} # type: ignore + + + @distributed_trace + def get_experiment( + self, + subscription_id, # type: str + resource_group_name, # type: str + workspace_name, # type: str + experiment_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "_models.ExperimentDefinition" + """get_experiment. + + :param subscription_id: The Azure Subscription ID. + :type subscription_id: str + :param resource_group_name: The Name of the resource group in which the workspace is located. + :type resource_group_name: str + :param workspace_name: The name of the workspace. + :type workspace_name: str + :param experiment_id: + :type experiment_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ExperimentDefinition, or the result of cls(response) + :rtype: ~flow.models.ExperimentDefinition + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["_models.ExperimentDefinition"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + + + request = build_get_experiment_request( + subscription_id=subscription_id, + resource_group_name=resource_group_name, + workspace_name=workspace_name, + experiment_id=experiment_id, + template_url=self.get_experiment.metadata['url'], + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error) + + deserialized = self._deserialize('ExperimentDefinition', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get_experiment.metadata = {'url': '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Experiments/{experimentId}'} # type: ignore + diff --git a/src/promptflow/promptflow/azure/_restclient/flow/operations/_tools_operations.py b/src/promptflow/promptflow/azure/_restclient/flow/operations/_tools_operations.py index ddf08d83507..f8145505355 100644 --- a/src/promptflow/promptflow/azure/_restclient/flow/operations/_tools_operations.py +++ b/src/promptflow/promptflow/azure/_restclient/flow/operations/_tools_operations.py @@ -57,57 +57,6 @@ def build_get_tool_setting_request( ) -def build_get_tool_meta_request( - subscription_id, # type: str - resource_group_name, # type: str - workspace_name, # type: str - **kwargs # type: Any -): - # type: (...) -> HttpRequest - content_type = kwargs.pop('content_type', None) # type: Optional[str] - tool_name = kwargs.pop('tool_name') # type: str - tool_type = kwargs.pop('tool_type') # type: str - endpoint_name = kwargs.pop('endpoint_name', None) # type: Optional[str] - flow_runtime_name = kwargs.pop('flow_runtime_name', None) # type: Optional[str] - flow_id = kwargs.pop('flow_id', None) # type: Optional[str] - - accept = "application/json" - # Construct URL - url = kwargs.pop("template_url", '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/meta') - path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, 'str'), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, 'str'), - "workspaceName": _SERIALIZER.url("workspace_name", workspace_name, 'str'), - } - - url = _format_url_section(url, **path_format_arguments) - - # Construct parameters - query_parameters = kwargs.pop("params", {}) # type: Dict[str, Any] - query_parameters['toolName'] = _SERIALIZER.query("tool_name", tool_name, 'str') - query_parameters['toolType'] = _SERIALIZER.query("tool_type", tool_type, 'str') - if endpoint_name is not None: - query_parameters['endpointName'] = _SERIALIZER.query("endpoint_name", endpoint_name, 'str') - if flow_runtime_name is not None: - query_parameters['flowRuntimeName'] = _SERIALIZER.query("flow_runtime_name", flow_runtime_name, 'str') - if flow_id is not None: - query_parameters['flowId'] = _SERIALIZER.query("flow_id", flow_id, 'str') - - # Construct headers - header_parameters = kwargs.pop("headers", {}) # type: Dict[str, Any] - if content_type is not None: - header_parameters['Content-Type'] = _SERIALIZER.header("content_type", content_type, 'str') - header_parameters['Accept'] = _SERIALIZER.header("accept", accept, 'str') - - return HttpRequest( - method="POST", - url=url, - params=query_parameters, - headers=header_parameters, - **kwargs - ) - - def build_get_tool_meta_v2_request( subscription_id, # type: str resource_group_name, # type: str @@ -359,90 +308,6 @@ def get_tool_setting( get_tool_setting.metadata = {'url': '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/setting'} # type: ignore - @distributed_trace - def get_tool_meta( - self, - subscription_id, # type: str - resource_group_name, # type: str - workspace_name, # type: str - tool_name, # type: str - tool_type, # type: str - endpoint_name=None, # type: Optional[str] - flow_runtime_name=None, # type: Optional[str] - flow_id=None, # type: Optional[str] - data=None, # type: Optional[str] - **kwargs # type: Any - ): - # type: (...) -> str - """get_tool_meta. - - :param subscription_id: The Azure Subscription ID. - :type subscription_id: str - :param resource_group_name: The Name of the resource group in which the workspace is located. - :type resource_group_name: str - :param workspace_name: The name of the workspace. - :type workspace_name: str - :param tool_name: - :type tool_name: str - :param tool_type: - :type tool_type: str - :param endpoint_name: - :type endpoint_name: str - :param flow_runtime_name: - :type flow_runtime_name: str - :param flow_id: - :type flow_id: str - :param data: - :type data: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: str, or the result of cls(response) - :rtype: str - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType[str] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - - content_type = kwargs.pop('content_type', "text/plain") # type: Optional[str] - - _content = data - - request = build_get_tool_meta_request( - subscription_id=subscription_id, - resource_group_name=resource_group_name, - workspace_name=workspace_name, - content_type=content_type, - tool_name=tool_name, - tool_type=tool_type, - content=_content, - endpoint_name=endpoint_name, - flow_runtime_name=flow_runtime_name, - flow_id=flow_id, - template_url=self.get_tool_meta.metadata['url'], - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) - raise HttpResponseError(response=response, model=error) - - deserialized = self._deserialize('str', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - get_tool_meta.metadata = {'url': '/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/meta'} # type: ignore - - @distributed_trace def get_tool_meta_v2( self, diff --git a/src/promptflow/promptflow/azure/_restclient/swagger.json b/src/promptflow/promptflow/azure/_restclient/swagger.json index 25ad2944275..60451e6d236 100644 --- a/src/promptflow/promptflow/azure/_restclient/swagger.json +++ b/src/promptflow/promptflow/azure/_restclient/swagger.json @@ -1,31637 +1,32145 @@ { "openapi": "3.0.1", "info": { - "title": "Azure Machine Learning Designer Service Client", - "version": "1.0.0" + "title": "Azure Machine Learning Designer Service Client", + "version": "1.0.0" }, "paths": { - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/submit": { - "post": { - "tags": [ - "BulkRuns" - ], - "operationId": "BulkRuns_SubmitBulkRun", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubmitBulkRunRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "202": { - "description": "Accepted", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "204": { - "description": "No Content", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/submit": { + "post": { + "tags": [ + "BulkRuns" + ], + "operationId": "BulkRuns_SubmitBulkRun", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/resume": { - "post": { - "tags": [ - "BulkRuns" - ], - "operationId": "BulkRuns_ResumeBulkRun", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResumeBulkRunRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubmitBulkRunRequest" } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/{flowRunId}/cancel": { - "post": { - "tags": [ - "BulkRuns" - ], - "operationId": "BulkRuns_CancelFlowRun", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } } - } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/{flowRunId}": { - "get": { - "tags": [ - "BulkRuns" - ], - "operationId": "BulkRuns_GetFlowRunInfo", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRunInfo" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "204": { + "description": "No Content", + "content": { + "application/json": { + "schema": { + "type": "string" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/{flowRunId}/childRuns": { - "get": { - "tags": [ - "BulkRuns" - ], - "operationId": "BulkRuns_GetFlowChildRuns", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "index", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "startIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": {} - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/resume": { + "post": { + "tags": [ + "BulkRuns" + ], + "operationId": "BulkRuns_ResumeBulkRun", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResumeBulkRunRequest" } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/{flowRunId}/nodeRuns/{nodeName}": { - "get": { - "tags": [ - "BulkRuns" - ], - "operationId": "BulkRuns_GetFlowNodeRuns", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "nodeName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "index", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "startIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "aggregation", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": {} - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/{flowRunId}/nodeRuns/{nodeName}/basePath": { - "get": { - "tags": [ - "BulkRuns" - ], - "operationId": "BulkRuns_GetFlowNodeRunBasePath", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "nodeName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRunBasePath" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/{flowRunId}/cancel": { + "post": { + "tags": [ + "BulkRuns" + ], + "operationId": "BulkRuns_CancelFlowRun", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/{flowRunId}/logContent": { - "get": { - "tags": [ - "BulkRuns" - ], - "operationId": "BulkRuns_GetFlowRunLogContent", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/{flowRunId}": { + "get": { + "tags": [ + "BulkRuns" + ], + "operationId": "BulkRuns_GetFlowRunInfo", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRunInfo" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connection/{connectionName}": { - "post": { - "tags": [ - "Connection" - ], - "operationId": "Connection_CreateConnection", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "connectionName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateOrUpdateConnectionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConnectionEntity" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/{flowRunId}/childRuns": { + "get": { + "tags": [ + "BulkRuns" + ], + "operationId": "BulkRuns_GetFlowChildRuns", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startIndex", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endIndex", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { } + } } - }, - "put": { - "tags": [ - "Connection" - ], - "operationId": "Connection_UpdateConnection", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "connectionName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateOrUpdateConnectionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConnectionEntity" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/{flowRunId}/nodeRuns/{nodeName}": { + "get": { + "tags": [ + "BulkRuns" + ], + "operationId": "BulkRuns_GetFlowNodeRuns", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "get": { - "tags": [ - "Connection" - ], - "operationId": "Connection_GetConnection", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "connectionName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConnectionEntity" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + { + "name": "nodeName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startIndex", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endIndex", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "aggregation", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { } + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/{flowRunId}/nodeRuns/{nodeName}/basePath": { + "get": { + "tags": [ + "BulkRuns" + ], + "operationId": "BulkRuns_GetFlowNodeRunBasePath", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "delete": { - "tags": [ - "Connection" - ], - "operationId": "Connection_DeleteConnection", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "connectionName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "connectionScope", - "in": "query", - "schema": { - "$ref": "#/components/schemas/ConnectionScope" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConnectionEntity" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + { + "name": "nodeName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRunBasePath" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/BulkRuns/{flowRunId}/logContent": { + "get": { + "tags": [ + "BulkRuns" + ], + "operationId": "BulkRuns_GetFlowRunLogContent", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connection/{connectionName}": { + "post": { + "tags": [ + "Connection" + ], + "operationId": "Connection_CreateConnection", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "connectionName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrUpdateConnectionRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionEntity" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } + } }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connection": { - "get": { - "tags": [ - "Connection" - ], - "operationId": "Connection_ListConnections", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionEntity" - } - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "put": { + "tags": [ + "Connection" + ], + "operationId": "Connection_UpdateConnection", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "connectionName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrUpdateConnectionRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionEntity" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } + } }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connection/specs": { - "get": { - "tags": [ - "Connection" - ], - "operationId": "Connection_ListConnectionSpecs", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionSpec" - } - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "get": { + "tags": [ + "Connection" + ], + "operationId": "Connection_GetConnection", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "connectionName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionEntity" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } + } }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connections/{connectionName}": { - "post": { - "tags": [ - "Connections" - ], - "operationId": "Connections_CreateConnection", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "connectionName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateOrUpdateConnectionRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConnectionDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "delete": { + "tags": [ + "Connection" + ], + "operationId": "Connection_DeleteConnection", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "connectionName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "connectionScope", + "in": "query", + "schema": { + "$ref": "#/components/schemas/ConnectionScope" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionEntity" + } } - }, - "put": { - "tags": [ - "Connections" - ], - "operationId": "Connections_UpdateConnection", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "connectionName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateOrUpdateConnectionRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConnectionDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } - }, - "get": { - "tags": [ - "Connections" - ], - "operationId": "Connections_GetConnection", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "connectionName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConnectionDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connection": { + "get": { + "tags": [ + "Connection" + ], + "operationId": "Connection_ListConnections", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionEntity" + } + } } - }, - "delete": { - "tags": [ - "Connections" - ], - "operationId": "Connections_DeleteConnection", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "connectionName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConnectionDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connections/{connectionName}/listsecrets": { - "get": { - "tags": [ - "Connections" - ], - "operationId": "Connections_GetConnectionWithSecrets", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "connectionName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConnectionDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connection/specs": { + "get": { + "tags": [ + "Connection" + ], + "operationId": "Connection_ListConnectionSpecs", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionSpec" + } + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connections": { - "get": { - "tags": [ - "Connections" - ], - "operationId": "Connections_ListConnections", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionDto" - } - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connections/{connectionName}": { + "post": { + "tags": [ + "Connections" + ], + "operationId": "Connections_CreateConnection", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "connectionName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrUpdateConnectionRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionDto" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } + } }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connections/specs": { - "get": { - "tags": [ - "Connections" - ], - "operationId": "Connections_ListConnectionSpecs", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WorkspaceConnectionSpec" - } - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "put": { + "tags": [ + "Connections" + ], + "operationId": "Connections_UpdateConnection", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "connectionName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrUpdateConnectionRequestDto" } + } } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionDto" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connections/{connectionName}/AzureOpenAIDeployments": { - "get": { - "tags": [ - "Connections" - ], - "operationId": "Connections_ListAzureOpenAIDeployments", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "connectionName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AzureOpenAIDeploymentDto" - } - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "get": { + "tags": [ + "Connections" + ], + "operationId": "Connections_GetConnection", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "connectionName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionDto" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } + } }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes/{runtimeName}": { - "post": { - "tags": [ - "FlowRuntimes" - ], - "operationId": "FlowRuntimes_CreateRuntime", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "runtimeName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "asyncCall", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "msiToken", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "skipPortCheck", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateFlowRuntimeRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRuntimeDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "delete": { + "tags": [ + "Connections" + ], + "operationId": "Connections_DeleteConnection", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "connectionName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionDto" + } } - }, - "put": { - "tags": [ - "FlowRuntimes" - ], - "operationId": "FlowRuntimes_UpdateRuntime", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "runtimeName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "asyncCall", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "msiToken", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "skipPortCheck", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateFlowRuntimeRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRuntimeDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } - }, - "get": { - "tags": [ - "FlowRuntimes" - ], - "operationId": "FlowRuntimes_GetRuntime", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "runtimeName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRuntimeDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connections/{connectionName}/listsecrets": { + "get": { + "tags": [ + "Connections" + ], + "operationId": "Connections_GetConnectionWithSecrets", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "connectionName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionDto" + } } - }, - "delete": { - "tags": [ - "FlowRuntimes" - ], - "operationId": "FlowRuntimes_DeleteRuntime", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "runtimeName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "asyncCall", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "msiToken", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRuntimeDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes/checkCiAvailability": { - "get": { - "tags": [ - "FlowRuntimes" - ], - "operationId": "FlowRuntimes_CheckCiAvailability", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "computeInstanceName", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "customAppName", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AvailabilityResponse" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connections": { + "get": { + "tags": [ + "Connections" + ], + "operationId": "Connections_ListConnections", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes/checkMirAvailability": { - "get": { - "tags": [ - "FlowRuntimes" - ], - "operationId": "FlowRuntimes_CheckMirAvailability", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "endpointName", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "deploymentName", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AvailabilityResponse" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionDto" + } + } } - } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes/{runtimeName}/needUpgrade": { - "get": { - "tags": [ - "FlowRuntimes" - ], - "operationId": "FlowRuntimes_CheckRuntimeUpgrade", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "runtimeName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "boolean" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes/{runtimeName}/capability": { - "get": { - "tags": [ - "FlowRuntimes" - ], - "operationId": "FlowRuntimes_GetRuntimeCapability", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "runtimeName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRuntimeCapability" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connections/specs": { + "get": { + "tags": [ + "Connections" + ], + "operationId": "Connections_ListConnectionSpecs", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes/latestConfig": { - "get": { - "tags": [ - "FlowRuntimes" - ], - "operationId": "FlowRuntimes_GetRuntimeLatestConfig", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RuntimeConfiguration" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WorkspaceConnectionSpec" + } + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes": { - "get": { - "tags": [ - "FlowRuntimes" - ], - "operationId": "FlowRuntimes_ListRuntimes", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FlowRuntimeDto" - } - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Connections/{connectionName}/AzureOpenAIDeployments": { + "get": { + "tags": [ + "Connections" + ], + "operationId": "Connections_ListAzureOpenAIDeployments", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "connectionName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureOpenAIDeploymentDto" + } + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/runtimes/latestConfig": { - "get": { - "tags": [ - "FlowRuntimesWorkspaceIndependent" - ], - "operationId": "FlowRuntimesWorkspaceIndependent_GetRuntimeLatestConfig", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RuntimeConfiguration" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Experiments/{experimentId}": { + "post": { + "tags": [ + "Experiments" + ], + "operationId": "Experiments_SubmitExperiment", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "experimentId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "experimentName", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubmitExperimentRequest" } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows": { - "post": { - "tags": [ - "Flows" - ], - "operationId": "Flows_CreateFlow", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "experimentId", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateFlowRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowDto" + } } - }, - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_ListFlows", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "experimentId", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "ownedOnly", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "flowType", - "in": "query", - "schema": { - "$ref": "#/components/schemas/FlowType" - } - }, - { - "name": "listViewType", - "in": "query", - "schema": { - "$ref": "#/components/schemas/ListViewType" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FlowBaseDto" - } - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } + } }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}": { - "put": { - "tags": [ - "Flows" - ], - "operationId": "Flows_UpdateFlow", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "experimentId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateFlowRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } - }, - "patch": { - "tags": [ - "Flows" - ], - "operationId": "Flows_PatchFlow", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "experimentId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json-patch+json": { - "schema": { - "$ref": "#/components/schemas/PatchFlowRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "get": { + "tags": [ + "Experiments" + ], + "operationId": "Experiments_GetExperiment", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "experimentId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExperimentDefinition" + } } - }, - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetFlow", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "experimentId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/submit": { - "post": { - "tags": [ - "Flows" - ], - "operationId": "Flows_SubmitFlow", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "experimentId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "endpointName", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubmitFlowRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRunResult" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/ExperimentTemplates/{experimentTemplateId}": { + "post": { + "tags": [ + "ExperimentTemplates" + ], + "operationId": "ExperimentTemplates_CreateExperimentTemplate", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "experimentTemplateId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateExperimentTemplateRequest" } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/{flowRunId}/status": { - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetFlowRunStatus", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "experimentId", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRunResult" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExperimentTemplateDto" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } + } }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/runs/{flowRunId}": { - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetFlowRunInfo", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "experimentId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRunInfo" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "get": { + "tags": [ + "ExperimentTemplates" + ], + "operationId": "ExperimentTemplates_GetExperimentTemplate", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "experimentTemplateId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExperimentTemplateDto" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/runs/{flowRunId}/childRuns": { - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetFlowChildRuns", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "index", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "startIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": {} - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes/{runtimeName}": { + "post": { + "tags": [ + "FlowRuntimes" + ], + "operationId": "FlowRuntimes_CreateRuntime", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "runtimeName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "asyncCall", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "msiToken", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "skipPortCheck", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFlowRuntimeRequest" } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/runs/{flowRunId}/nodeRuns/{nodeName}": { - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetFlowNodeRuns", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "nodeName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "index", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "startIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "aggregation", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": {} - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRuntimeDto" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } + } }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/runs/{flowRunId}/nodeRuns/{nodeName}/basePath": { - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetFlowNodeRunBasePath", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "nodeName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRunBasePath" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "put": { + "tags": [ + "FlowRuntimes" + ], + "operationId": "FlowRuntimes_UpdateRuntime", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "runtimeName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "asyncCall", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "msiToken", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "skipPortCheck", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFlowRuntimeRequest" } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/bulkTests": { - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_ListBulkTests", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "experimentId", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/BulkTestDto" - } - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRuntimeDto" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } + } }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/bulkTests/{bulkTestId}": { - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetBulkTest", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "bulkTestId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BulkTestDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "get": { + "tags": [ + "FlowRuntimes" + ], + "operationId": "FlowRuntimes_GetRuntime", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "runtimeName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRuntimeDto" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } + } }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/DeployReservedEnvironmentVariableNames": { - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetFlowDeployReservedEnvironmentVariableNames", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "delete": { + "tags": [ + "FlowRuntimes" + ], + "operationId": "FlowRuntimes_DeleteRuntime", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "runtimeName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "asyncCall", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "msiToken", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRuntimeDto" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/deploy": { - "post": { - "tags": [ - "Flows" - ], - "operationId": "Flows_DeployFlow", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "asyncCall", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "msiToken", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeployFlowRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes/checkCiAvailability": { + "get": { + "tags": [ + "FlowRuntimes" + ], + "operationId": "FlowRuntimes_CheckCiAvailability", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "computeInstanceName", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "customAppName", + "in": "query", + "required": true, + "schema": { + "type": "string" + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/runs/{flowRunId}/logContent": { - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetFlowRunLogContent", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AvailabilityResponse" + } } - } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/runs/{flowRunId}/cancel": { - "post": { - "tags": [ - "Flows" - ], - "operationId": "Flows_CancelFlowRun", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/flowTests/{flowRunId}/cancel": { - "post": { - "tags": [ - "Flows" - ], - "operationId": "Flows_CancelFlowTest", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "flowRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes/checkMirAvailability": { + "get": { + "tags": [ + "FlowRuntimes" + ], + "operationId": "FlowRuntimes_CheckMirAvailability", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "endpointName", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "deploymentName", + "in": "query", + "required": true, + "schema": { + "type": "string" + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/bulkTests/{bulkTestRunId}/cancel": { - "post": { - "tags": [ - "Flows" - ], - "operationId": "Flows_CancelBulkTestRun", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "bulkTestRunId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AvailabilityResponse" + } } - } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/FlowSnapshot": { - "post": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetFlowSnapshot", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateFlowRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowSnapshot" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/connectionOverride": { - "post": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetConnectionOverrideSettings", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "runtimeName", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowGraphReference" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionOverrideSetting" - } - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes/{runtimeName}/needUpgrade": { + "get": { + "tags": [ + "FlowRuntimes" + ], + "operationId": "FlowRuntimes_CheckRuntimeUpgrade", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "runtimeName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/flowInputs": { - "post": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetFlowInputs", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowGraphReference" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowInputDefinition" - }, - "description": "This is a dictionary" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes/{runtimeName}/capability": { + "get": { + "tags": [ + "FlowRuntimes" + ], + "operationId": "FlowRuntimes_GetRuntimeCapability", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "runtimeName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRuntimeCapability" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/LoadAsComponent": { - "post": { - "tags": [ - "Flows" - ], - "operationId": "Flows_LoadAsComponent", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LoadFlowAsComponentRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes/latestConfig": { + "get": { + "tags": [ + "FlowRuntimes" + ], + "operationId": "FlowRuntimes_GetRuntimeLatestConfig", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RuntimeConfiguration" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/flowTools": { - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetFlowTools", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "flowRuntimeName", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "experimentId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowToolsDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowRuntimes": { + "get": { + "tags": [ + "FlowRuntimes" + ], + "operationId": "FlowRuntimes_ListRuntimes", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FlowRuntimeDto" + } + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/sessions": { - "post": { - "tags": [ - "Flows" - ], - "operationId": "Flows_SetupFlowSession", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "experimentId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SetupFlowSessionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IActionResult" - } - } - } - }, - "202": { - "description": "Accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IActionResult" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/runtimes/latestConfig": { + "get": { + "tags": [ + "FlowRuntimesWorkspaceIndependent" + ], + "operationId": "FlowRuntimesWorkspaceIndependent_GetRuntimeLatestConfig", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RuntimeConfiguration" + } } - }, - "delete": { - "tags": [ - "Flows" - ], - "operationId": "Flows_DeleteFlowSession", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "experimentId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IActionResult" - } - } - } - }, - "202": { - "description": "Accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IActionResult" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/sessions/status": { - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_GetFlowSessionStatus", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "experimentId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowSessionDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows": { + "post": { + "tags": [ + "Flows" + ], + "operationId": "Flows_CreateFlow", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "experimentId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFlowRequest" } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/sessions/pipPackages": { - "get": { - "tags": [ - "Flows" - ], - "operationId": "Flows_ListFlowSessionPipPackages", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "experimentId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowDto" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } + } }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowSessions/{sessionId}": { - "post": { - "tags": [ - "FlowSessions" - ], - "operationId": "FlowSessions_CreateFlowSession", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "sessionId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateFlowSessionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IActionResult" - } - } - } - }, - "202": { - "description": "Accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IActionResult" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_ListFlows", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "experimentId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ownedOnly", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "flowType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/FlowType" + } + }, + { + "name": "listViewType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/ListViewType" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FlowBaseDto" + } + } } - }, - "get": { - "tags": [ - "FlowSessions" - ], - "operationId": "FlowSessions_GetFlowSession", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "sessionId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTrainingSessionDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}": { + "put": { + "tags": [ + "Flows" + ], + "operationId": "Flows_UpdateFlow", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "delete": { - "tags": [ - "FlowSessions" - ], - "operationId": "FlowSessions_DeleteFlowSession", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "sessionId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IActionResult" - } - } - } - }, - "202": { - "description": "Accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IActionResult" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + { + "name": "experimentId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFlowRequest" } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowSessions/{sessionId}/pipPackages": { - "get": { - "tags": [ - "FlowSessions" - ], - "operationId": "FlowSessions_ListFlowSessionPipPackages", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "sessionId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } + } }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowSessions/{sessionId}/{actionType}/locations/{location}/operations/{operationId}": { - "get": { - "tags": [ - "FlowSessions" - ], - "operationId": "FlowSessions_PollOperationStatus", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "sessionId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "actionType", - "in": "path", - "required": true, - "schema": { - "$ref": "#/components/schemas/SetupFlowSessionAction" - } - }, - { - "name": "location", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "operationId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "api-version", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "type", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IActionResult" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "patch": { + "tags": [ + "Flows" + ], + "operationId": "Flows_PatchFlow", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "experimentId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/PatchFlowRequest" } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowSessions/standbypools": { - "get": { - "tags": [ - "FlowSessions" - ], - "operationId": "FlowSessions_GetStandbyPools", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StandbyPoolProperties" - } - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } + } }, - "/flow/v1.0/flows/getIndexEntities": { - "post": { - "tags": [ - "FlowsProvider" - ], - "operationId": "FlowsProvider_GetIndexEntityById", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnversionedEntityRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnversionedEntityResponseDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetFlow", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "experimentId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowDto" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/v1.0/flows/rebuildIndex": { - "post": { - "tags": [ - "FlowsProvider" - ], - "operationId": "FlowsProvider_GetUpdatedEntityIdsForWorkspace", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnversionedRebuildIndexDto" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnversionedRebuildResponseDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/submit": { + "post": { + "tags": [ + "Flows" + ], + "operationId": "Flows_SubmitFlow", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "experimentId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "endpointName", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubmitFlowRequest" } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/setting": { - "get": { - "tags": [ - "Tools" - ], - "operationId": "Tools_GetToolSetting", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ToolSetting" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRunResult" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/meta": { - "post": { - "tags": [ - "Tools" - ], - "operationId": "Tools_GetToolMeta", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "toolName", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "toolType", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "endpointName", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "flowRuntimeName", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "flowId", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "text/plain": { - "schema": { - "type": "string" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/{flowRunId}/status": { + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetFlowRunStatus", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "experimentId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRunResult" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/meta-v2": { - "post": { - "tags": [ - "Tools" - ], - "operationId": "Tools_GetToolMetaV2", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowRuntimeName", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "flowId", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GenerateToolMetaRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ToolMetaDto" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/runs/{flowRunId}": { + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetFlowRunInfo", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "experimentId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRunInfo" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/packageTools": { - "get": { - "tags": [ - "Tools" - ], - "operationId": "Tools_GetPackageTools", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowRuntimeName", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "flowId", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Tool" - } - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/runs/{flowRunId}/childRuns": { + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetFlowChildRuns", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startIndex", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endIndex", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { } + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/dynamicList": { - "post": { - "tags": [ - "Tools" - ], - "operationId": "Tools_GetDynamicList", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowRuntimeName", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "flowId", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetDynamicListRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": {} - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/runs/{flowRunId}/nodeRuns/{nodeName}": { + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetFlowNodeRuns", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nodeName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "index", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startIndex", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endIndex", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "aggregation", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { } + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/RetrieveToolFuncResult": { - "post": { - "tags": [ - "Tools" - ], - "operationId": "Tools_RetrieveToolFuncResult", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "flowRuntimeName", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "flowId", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RetrieveToolFuncResultRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ToolFuncResponse" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/runs/{flowRunId}/nodeRuns/{nodeName}/basePath": { + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetFlowNodeRunBasePath", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "nodeName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRunBasePath" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/TraceSessions/initialize": { - "post": { - "tags": [ - "TraceSessions" - ], - "operationId": "TraceSessions_InitTraceSessionAsync", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "overwrite", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TraceCosmosResourceDtos" - } - } - } - }, - "202": { - "description": "Accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IActionResult" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/bulkTests": { + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_ListBulkTests", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "experimentId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BulkTestDto" + } + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/TraceSessions/cleanup": { - "post": { - "tags": [ - "TraceSessions" - ], - "operationId": "TraceSessions_CleanupTraceSessionAsync", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IActionResult" - } - } - } - }, - "202": { - "description": "Accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IActionResult" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/bulkTests/{bulkTestId}": { + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetBulkTest", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "bulkTestId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkTestDto" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/TraceSessions/operation/{operationType}/{operationId}": { - "get": { - "tags": [ - "TraceSessions" - ], - "operationId": "TraceSessions_PollTraceSessionStatus", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "operationId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "operationType", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/DeployReservedEnvironmentVariableNames": { + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetFlowDeployReservedEnvironmentVariableNames", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/TraceSessions/attachDb": { - "post": { - "tags": [ - "TraceSessions" - ], - "operationId": "TraceSessions_AttachCosmosAccount", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "overwrite", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AttachCosmosRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IActionResult" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/deploy": { + "post": { + "tags": [ + "Flows" + ], + "operationId": "Flows_DeployFlow", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "asyncCall", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "msiToken", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeployFlowRequest" } + } } - }, - "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/TraceSessions/container/{containerName}/resourceToken": { - "get": { - "tags": [ - "TraceSessions" - ], - "operationId": "TraceSessions_GetCosmosResourceToken", - "parameters": [ - { - "$ref": "#/components/parameters/subscriptionIdParameter" - }, - { - "$ref": "#/components/parameters/resourceGroupNameParameter" - }, - { - "$ref": "#/components/parameters/workspaceNameParameter" - }, - { - "name": "containerName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "acquireWrite", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorResponse" - } - } - } - } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } } + } } - }, - "components": { - "schemas": { - "ACIAdvanceSettings": { - "type": "object", - "properties": { - "containerResourceRequirements": { - "$ref": "#/components/schemas/ContainerResourceRequirements" - }, - "appInsightsEnabled": { - "type": "boolean", - "nullable": true - }, - "sslEnabled": { - "type": "boolean", - "nullable": true - }, - "sslCertificate": { - "type": "string", - "nullable": true - }, - "sslKey": { - "type": "string", - "nullable": true - }, - "cName": { - "type": "string", - "nullable": true - }, - "dnsNameLabel": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/runs/{flowRunId}/logContent": { + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetFlowRunLogContent", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "AEVAAssetType": { - "enum": [ - "UriFile", - "UriFolder", - "MLTable", - "CustomModel", - "MLFlowModel", - "TritonModel", - "OpenAIModel" - ], + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/runs/{flowRunId}/cancel": { + "post": { + "tags": [ + "Flows" + ], + "operationId": "Flows_CancelFlowRun", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/flowTests/{flowRunId}/cancel": { + "post": { + "tags": [ + "Flows" + ], + "operationId": "Flows_CancelFlowTest", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { "type": "string" + } }, - "AEVAComputeConfiguration": { - "type": "object", - "properties": { - "target": { - "type": "string", - "nullable": true - }, - "instanceCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "isLocal": { - "type": "boolean" - }, - "location": { - "type": "string", - "nullable": true - }, - "isClusterless": { - "type": "boolean" - }, - "instanceType": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - }, - "isPreemptable": { - "type": "boolean" - } - }, - "additionalProperties": false + { + "name": "flowRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/bulkTests/{bulkTestRunId}/cancel": { + "post": { + "tags": [ + "Flows" + ], + "operationId": "Flows_CancelBulkTestRun", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "bulkTestRunId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/FlowSnapshot": { + "post": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetFlowSnapshot", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFlowRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowSnapshot" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/connectionOverride": { + "post": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetConnectionOverrideSettings", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "runtimeName", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowGraphReference" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionOverrideSetting" + } + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/flowInputs": { + "post": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetFlowInputs", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowGraphReference" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowInputDefinition" + }, + "description": "This is a dictionary" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/LoadAsComponent": { + "post": { + "tags": [ + "Flows" + ], + "operationId": "Flows_LoadAsComponent", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LoadFlowAsComponentRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/flowTools": { + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetFlowTools", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "AEVADataStoreMode": { - "enum": [ - "None", - "Mount", - "Download", - "Upload", - "Direct", - "Hdfs", - "Link" - ], + { + "name": "flowRuntimeName", + "in": "query", + "schema": { "type": "string" + } }, - "AEVAIdentityType": { - "enum": [ - "UserIdentity", - "Managed", - "AMLToken" - ], + { + "name": "experimentId", + "in": "query", + "required": true, + "schema": { "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowToolsDto" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/sessions": { + "post": { + "tags": [ + "Flows" + ], + "operationId": "Flows_SetupFlowSession", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "AEVAResourceConfiguration": { - "type": "object", - "properties": { - "instanceCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "instanceType": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - }, - "locations": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "instancePriority": { - "type": "string", - "nullable": true - }, - "quotaEnforcementResourceId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + { + "name": "experimentId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetupFlowSessionRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IActionResult" + } + } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IActionResult" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Flows" + ], + "operationId": "Flows_DeleteFlowSession", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "AISuperComputerConfiguration": { - "type": "object", - "properties": { - "instanceType": { - "type": "string", - "nullable": true - }, - "instanceTypes": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "imageVersion": { - "type": "string", - "nullable": true - }, - "location": { - "type": "string", - "nullable": true - }, - "locations": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "aiSuperComputerStorageData": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AISuperComputerStorageReferenceConfiguration" - }, - "nullable": true - }, - "interactive": { - "type": "boolean" - }, - "scalePolicy": { - "$ref": "#/components/schemas/AISuperComputerScalePolicy" - }, - "virtualClusterArmId": { - "type": "string", - "nullable": true - }, - "tensorboardLogDirectory": { - "type": "string", - "nullable": true - }, - "sshPublicKey": { - "type": "string", - "nullable": true - }, - "sshPublicKeys": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "enableAzmlInt": { - "type": "boolean" - }, - "priority": { - "type": "string", - "nullable": true - }, - "slaTier": { - "type": "string", - "nullable": true - }, - "suspendOnIdleTimeHours": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "userAlias": { - "type": "string", - "nullable": true - }, - "quotaEnforcementResourceId": { - "type": "string", - "nullable": true - }, - "modelComputeSpecificationId": { - "type": "string", - "nullable": true - }, - "groupPolicyName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + { + "name": "experimentId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IActionResult" + } + } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IActionResult" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/sessions/status": { + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_GetFlowSessionStatus", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "AISuperComputerScalePolicy": { - "type": "object", - "properties": { - "autoScaleInstanceTypeCountSet": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - }, - "autoScaleIntervalInSec": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "maxInstanceTypeCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "minInstanceTypeCount": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + { + "name": "experimentId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowSessionDto" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Flows/{flowId}/sessions/pipPackages": { + "get": { + "tags": [ + "Flows" + ], + "operationId": "Flows_ListFlowSessionPipPackages", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "AISuperComputerStorageReferenceConfiguration": { - "type": "object", - "properties": { - "containerName": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + { + "name": "experimentId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowSessions/{sessionId}": { + "post": { + "tags": [ + "FlowSessions" + ], + "operationId": "FlowSessions_CreateFlowSession", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "sessionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFlowSessionRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IActionResult" + } + } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IActionResult" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + }, + "get": { + "tags": [ + "FlowSessions" + ], + "operationId": "FlowSessions_GetFlowSession", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "sessionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTrainingSessionDto" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + }, + "delete": { + "tags": [ + "FlowSessions" + ], + "operationId": "FlowSessions_DeleteFlowSession", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "sessionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IActionResult" + } + } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IActionResult" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowSessions/{sessionId}/pipPackages": { + "get": { + "tags": [ + "FlowSessions" + ], + "operationId": "FlowSessions_ListFlowSessionPipPackages", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "sessionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowSessions/{sessionId}/{actionType}/locations/{location}/operations/{operationId}": { + "get": { + "tags": [ + "FlowSessions" + ], + "operationId": "FlowSessions_PollOperationStatus", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "sessionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "actionType", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/SetupFlowSessionAction" + } + }, + { + "name": "location", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "AKSAdvanceSettings": { - "type": "object", - "properties": { - "autoScaler": { - "$ref": "#/components/schemas/AutoScaler" - }, - "containerResourceRequirements": { - "$ref": "#/components/schemas/ContainerResourceRequirements" - }, - "appInsightsEnabled": { - "type": "boolean", - "nullable": true - }, - "scoringTimeoutMs": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "numReplicas": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + { + "name": "operationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "AKSReplicaStatus": { - "type": "object", - "properties": { - "desiredReplicas": { - "type": "integer", - "format": "int32" - }, - "updatedReplicas": { - "type": "integer", - "format": "int32" - }, - "availableReplicas": { - "type": "integer", - "format": "int32" - }, - "error": { - "$ref": "#/components/schemas/ModelManagementErrorResponse" - } - }, - "additionalProperties": false + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } }, - "AMLComputeConfiguration": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "vmPriority": { - "$ref": "#/components/schemas/VmPriority" - }, - "retainCluster": { - "type": "boolean" - }, - "clusterMaxNodeCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "osType": { - "type": "string", - "nullable": true - }, - "virtualMachineImage": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + { + "name": "type", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IActionResult" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/FlowSessions/standbypools": { + "get": { + "tags": [ + "FlowSessions" + ], + "operationId": "FlowSessions_GetStandbyPools", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandbyPoolProperties" + } + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/v1.0/flows/getIndexEntities": { + "post": { + "tags": [ + "FlowsProvider" + ], + "operationId": "FlowsProvider_GetIndexEntityById", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnversionedEntityRequestDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnversionedEntityResponseDto" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/v1.0/flows/rebuildIndex": { + "post": { + "tags": [ + "FlowsProvider" + ], + "operationId": "FlowsProvider_GetUpdatedEntityIdsForWorkspace", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnversionedRebuildIndexDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnversionedRebuildResponseDto" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/setting": { + "get": { + "tags": [ + "Tools" + ], + "operationId": "Tools_GetToolSetting", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ToolSetting" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/meta-v2": { + "post": { + "tags": [ + "Tools" + ], + "operationId": "Tools_GetToolMetaV2", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowRuntimeName", + "in": "query", + "schema": { + "type": "string" + } }, - "APCloudConfiguration": { - "type": "object", - "properties": { - "referencedAPModuleGuid": { - "type": "string", - "nullable": true - }, - "userAlias": { - "type": "string", - "nullable": true - }, - "aetherModuleType": { - "type": "string", - "nullable": true - }, - "allowOverwrite": { - "type": "boolean", - "nullable": true - }, - "destinationExpirationDays": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "shouldRespectLineBoundaries": { - "type": "boolean", - "nullable": true - } - }, - "additionalProperties": false + { + "name": "flowId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GenerateToolMetaRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ToolMetaDto" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/packageTools": { + "get": { + "tags": [ + "Tools" + ], + "operationId": "Tools_GetPackageTools", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowRuntimeName", + "in": "query", + "schema": { + "type": "string" + } }, - "ActionType": { - "enum": [ - "SendValidationRequest", - "GetValidationStatus", - "SubmitBulkRun", - "LogRunResult", - "LogRunTerminatedEvent", - "SubmitFlowRun" - ], + { + "name": "flowId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Tool" + } + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/dynamicList": { + "post": { + "tags": [ + "Tools" + ], + "operationId": "Tools_GetDynamicList", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowRuntimeName", + "in": "query", + "schema": { "type": "string" + } }, - "Activate": { - "type": "object", - "properties": { - "when": { - "type": "string", - "nullable": true - }, - "is": { - "nullable": true - } - }, - "additionalProperties": false + { + "name": "flowId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetDynamicListRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { } + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/Tools/RetrieveToolFuncResult": { + "post": { + "tags": [ + "Tools" + ], + "operationId": "Tools_RetrieveToolFuncResult", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "flowRuntimeName", + "in": "query", + "schema": { + "type": "string" + } }, - "AdditionalErrorInfo": { - "type": "object", - "properties": { - "type": { - "type": "string", - "nullable": true - }, - "info": { - "nullable": true - } - }, - "additionalProperties": false + { + "name": "flowId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RetrieveToolFuncResultRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ToolFuncResponse" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/TraceSessions/initialize": { + "post": { + "tags": [ + "TraceSessions" + ], + "operationId": "TraceSessions_InitTraceSessionAsync", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "overwrite", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TraceCosmosResourceDtos" + } + } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IActionResult" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/TraceSessions/cleanup": { + "post": { + "tags": [ + "TraceSessions" + ], + "operationId": "TraceSessions_CleanupTraceSessionAsync", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + } + ], + "responses": { + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IActionResult" + } + } + } + }, + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IActionResult" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/TraceSessions/operation/{operationType}/{operationId}": { + "get": { + "tags": [ + "TraceSessions" + ], + "operationId": "TraceSessions_PollTraceSessionStatus", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "operationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "AdhocTriggerScheduledCommandJobRequest": { - "type": "object", - "properties": { - "jobName": { - "type": "string", - "nullable": true - }, - "jobDisplayName": { - "type": "string", - "nullable": true - }, - "triggerTimeString": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + { + "name": "operationType", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/TraceSessions/attachDb": { + "post": { + "tags": [ + "TraceSessions" + ], + "operationId": "TraceSessions_AttachCosmosAccount", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "overwrite", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AttachCosmosRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IActionResult" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/flow/api/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/TraceSessions/container/{containerName}/resourceToken": { + "get": { + "tags": [ + "TraceSessions" + ], + "operationId": "TraceSessions_GetCosmosResourceToken", + "parameters": [ + { + "$ref": "#/components/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/components/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/components/parameters/workspaceNameParameter" + }, + { + "name": "containerName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "acquireWrite", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ACIAdvanceSettings": { + "type": "object", + "properties": { + "containerResourceRequirements": { + "$ref": "#/components/schemas/ContainerResourceRequirements" + }, + "appInsightsEnabled": { + "type": "boolean", + "nullable": true + }, + "sslEnabled": { + "type": "boolean", + "nullable": true + }, + "sslCertificate": { + "type": "string", + "nullable": true + }, + "sslKey": { + "type": "string", + "nullable": true + }, + "cName": { + "type": "string", + "nullable": true + }, + "dnsNameLabel": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AEVAAssetType": { + "enum": [ + "UriFile", + "UriFolder", + "MLTable", + "CustomModel", + "MLFlowModel", + "TritonModel", + "OpenAIModel" + ], + "type": "string" + }, + "AEVAComputeConfiguration": { + "type": "object", + "properties": { + "target": { + "type": "string", + "nullable": true + }, + "instanceCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isLocal": { + "type": "boolean" + }, + "location": { + "type": "string", + "nullable": true + }, + "isClusterless": { + "type": "boolean" + }, + "instanceType": { + "type": "string", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + }, + "isPreemptable": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "AEVADataStoreMode": { + "enum": [ + "None", + "Mount", + "Download", + "Upload", + "Direct", + "Hdfs", + "Link" + ], + "type": "string" + }, + "AEVAIdentityType": { + "enum": [ + "UserIdentity", + "Managed", + "AMLToken" + ], + "type": "string" + }, + "AEVAResourceConfiguration": { + "type": "object", + "properties": { + "instanceCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "instanceType": { + "type": "string", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + }, + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "AdhocTriggerScheduledSparkJobRequest": { - "type": "object", - "properties": { - "jobName": { - "type": "string", - "nullable": true - }, - "jobDisplayName": { - "type": "string", - "nullable": true - }, - "triggerTimeString": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "instancePriority": { + "type": "string", + "nullable": true }, - "AetherAPCloudConfiguration": { - "type": "object", - "properties": { - "referencedAPModuleGuid": { - "type": "string", - "nullable": true - }, - "userAlias": { - "type": "string", - "nullable": true - }, - "aetherModuleType": { - "type": "string", - "nullable": true - }, - "allowOverwrite": { - "type": "boolean", - "nullable": true - }, - "destinationExpirationDays": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "shouldRespectLineBoundaries": { - "type": "boolean", - "nullable": true - } - }, - "additionalProperties": false + "quotaEnforcementResourceId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AISuperComputerConfiguration": { + "type": "object", + "properties": { + "instanceType": { + "type": "string", + "nullable": true + }, + "instanceTypes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "AetherAmlDataset": { - "type": "object", - "properties": { - "registeredDataSetReference": { - "$ref": "#/components/schemas/AetherRegisteredDataSetReference" - }, - "savedDataSetReference": { - "$ref": "#/components/schemas/AetherSavedDataSetReference" - }, - "additionalTransformations": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "AetherAmlSparkCloudSetting": { - "type": "object", - "properties": { - "entry": { - "$ref": "#/components/schemas/AetherEntrySetting" - }, - "files": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "archives": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "jars": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "pyFiles": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "driverMemory": { - "type": "string", - "nullable": true - }, - "driverCores": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "executorMemory": { - "type": "string", - "nullable": true - }, - "executorCores": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "numberExecutors": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "environmentAssetId": { - "type": "string", - "nullable": true - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "inlineEnvironmentDefinitionString": { - "type": "string", - "nullable": true - }, - "conf": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "compute": { - "type": "string", - "nullable": true - }, - "resources": { - "$ref": "#/components/schemas/AetherResourcesSetting" - }, - "identity": { - "$ref": "#/components/schemas/AetherIdentitySetting" - } - }, - "additionalProperties": false + "imageVersion": { + "type": "string", + "nullable": true }, - "AetherArgumentAssignment": { - "type": "object", - "properties": { - "valueType": { - "$ref": "#/components/schemas/AetherArgumentValueType" - }, - "value": { - "type": "string", - "nullable": true - }, - "nestedArgumentList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherArgumentAssignment" - }, - "nullable": true - }, - "stringInterpolationArgumentList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherArgumentAssignment" - }, - "nullable": true - } - }, - "additionalProperties": false + "location": { + "type": "string", + "nullable": true }, - "AetherArgumentValueType": { - "enum": [ - "Literal", - "Parameter", - "Input", - "Output", - "NestedList", - "StringInterpolationList" - ], + "locations": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "AetherAssetDefinition": { - "type": "object", - "properties": { - "path": { - "type": "string", - "nullable": true - }, - "type": { - "$ref": "#/components/schemas/AetherAssetType" - }, - "assetId": { - "type": "string", - "nullable": true - }, - "initialAssetId": { - "type": "string", - "nullable": true - }, - "serializedAssetId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "aiSuperComputerStorageData": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AISuperComputerStorageReferenceConfiguration" + }, + "nullable": true }, - "AetherAssetOutputSettings": { - "type": "object", - "properties": { - "path": { - "type": "string", - "nullable": true - }, - "PathParameterAssignment": { - "$ref": "#/components/schemas/AetherParameterAssignment" - }, - "type": { - "$ref": "#/components/schemas/AetherAssetType" - }, - "options": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataStoreMode": { - "$ref": "#/components/schemas/AetherDataStoreMode" - }, - "name": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "interactive": { + "type": "boolean" }, - "AetherAssetType": { - "enum": [ - "UriFile", - "UriFolder", - "MLTable", - "CustomModel", - "MLFlowModel", - "TritonModel", - "OpenAIModel" - ], - "type": "string" + "scalePolicy": { + "$ref": "#/components/schemas/AISuperComputerScalePolicy" }, - "AetherAutoFeaturizeConfiguration": { - "type": "object", - "properties": { - "featurizationConfig": { - "$ref": "#/components/schemas/AetherFeaturizationSettings" - } - }, - "additionalProperties": false + "virtualClusterArmId": { + "type": "string", + "nullable": true }, - "AetherAutoMLComponentConfiguration": { - "type": "object", - "properties": { - "autoTrainConfig": { - "$ref": "#/components/schemas/AetherAutoTrainConfiguration" - }, - "autoFeaturizeConfig": { - "$ref": "#/components/schemas/AetherAutoFeaturizeConfiguration" - } - }, - "additionalProperties": false + "tensorboardLogDirectory": { + "type": "string", + "nullable": true }, - "AetherAutoTrainConfiguration": { - "type": "object", - "properties": { - "generalSettings": { - "$ref": "#/components/schemas/AetherGeneralSettings" - }, - "limitSettings": { - "$ref": "#/components/schemas/AetherLimitSettings" - }, - "dataSettings": { - "$ref": "#/components/schemas/AetherDataSettings" - }, - "forecastingSettings": { - "$ref": "#/components/schemas/AetherForecastingSettings" - }, - "trainingSettings": { - "$ref": "#/components/schemas/AetherTrainingSettings" - }, - "sweepSettings": { - "$ref": "#/components/schemas/AetherSweepSettings" - }, - "imageModelSettings": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "computeConfiguration": { - "$ref": "#/components/schemas/AetherComputeConfiguration" - }, - "resourceConfigurtion": { - "$ref": "#/components/schemas/AetherResourceConfiguration" - }, - "environmentId": { - "type": "string", - "nullable": true - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "sshPublicKey": { + "type": "string", + "nullable": true }, - "AetherAzureBlobReference": { - "type": "object", - "properties": { - "container": { - "type": "string", - "nullable": true - }, - "sasToken": { - "type": "string", - "nullable": true - }, - "uri": { - "type": "string", - "nullable": true - }, - "account": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "pathType": { - "$ref": "#/components/schemas/AetherFileBasedPathType" - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "sshPublicKeys": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "AetherAzureDataLakeGen2Reference": { - "type": "object", - "properties": { - "fileSystemName": { - "type": "string", - "nullable": true - }, - "uri": { - "type": "string", - "nullable": true - }, - "account": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "pathType": { - "$ref": "#/components/schemas/AetherFileBasedPathType" - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "enableAzmlInt": { + "type": "boolean" }, - "AetherAzureDataLakeReference": { - "type": "object", - "properties": { - "tenant": { - "type": "string", - "nullable": true - }, - "subscription": { - "type": "string", - "nullable": true - }, - "resourceGroup": { - "type": "string", - "nullable": true - }, - "dataLakeUri": { - "type": "string", - "nullable": true - }, - "uri": { - "type": "string", - "nullable": true - }, - "account": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "pathType": { - "$ref": "#/components/schemas/AetherFileBasedPathType" - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "priority": { + "type": "string", + "nullable": true }, - "AetherAzureDatabaseReference": { - "type": "object", - "properties": { - "serverUri": { - "type": "string", - "nullable": true - }, - "databaseName": { - "type": "string", - "nullable": true - }, - "tableName": { - "type": "string", - "nullable": true - }, - "sqlQuery": { - "type": "string", - "nullable": true - }, - "storedProcedureName": { - "type": "string", - "nullable": true - }, - "storedProcedureParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherStoredProcedureParameter" - }, - "nullable": true - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "slaTier": { + "type": "string", + "nullable": true }, - "AetherAzureFilesReference": { - "type": "object", - "properties": { - "share": { - "type": "string", - "nullable": true - }, - "uri": { - "type": "string", - "nullable": true - }, - "account": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "pathType": { - "$ref": "#/components/schemas/AetherFileBasedPathType" - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "suspendOnIdleTimeHours": { + "type": "integer", + "format": "int64", + "nullable": true }, - "AetherBatchAiComputeInfo": { - "type": "object", - "properties": { - "batchAiSubscriptionId": { - "type": "string", - "nullable": true - }, - "batchAiResourceGroup": { - "type": "string", - "nullable": true - }, - "batchAiWorkspaceName": { - "type": "string", - "nullable": true - }, - "clusterName": { - "type": "string", - "nullable": true - }, - "nativeSharedDirectory": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "userAlias": { + "type": "string", + "nullable": true }, - "AetherBuildArtifactInfo": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/AetherBuildSourceType" - }, - "cloudBuildDropPathInfo": { - "$ref": "#/components/schemas/AetherCloudBuildDropPathInfo" - }, - "vsoBuildArtifactInfo": { - "$ref": "#/components/schemas/AetherVsoBuildArtifactInfo" - } - }, - "additionalProperties": false + "quotaEnforcementResourceId": { + "type": "string", + "nullable": true }, - "AetherBuildSourceType": { - "enum": [ - "CloudBuild", - "Vso", - "VsoGit" - ], + "modelComputeSpecificationId": { + "type": "string", + "nullable": true + }, + "groupPolicyName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AISuperComputerScalePolicy": { + "type": "object", + "properties": { + "autoScaleInstanceTypeCountSet": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "autoScaleIntervalInSec": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxInstanceTypeCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "minInstanceTypeCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "AISuperComputerStorageReferenceConfiguration": { + "type": "object", + "properties": { + "containerName": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AKSAdvanceSettings": { + "type": "object", + "properties": { + "autoScaler": { + "$ref": "#/components/schemas/AutoScaler" + }, + "containerResourceRequirements": { + "$ref": "#/components/schemas/ContainerResourceRequirements" + }, + "appInsightsEnabled": { + "type": "boolean", + "nullable": true + }, + "scoringTimeoutMs": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "numReplicas": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "AKSReplicaStatus": { + "type": "object", + "properties": { + "desiredReplicas": { + "type": "integer", + "format": "int32" + }, + "updatedReplicas": { + "type": "integer", + "format": "int32" + }, + "availableReplicas": { + "type": "integer", + "format": "int32" + }, + "error": { + "$ref": "#/components/schemas/ModelManagementErrorResponse" + } + }, + "additionalProperties": false + }, + "AMLComputeConfiguration": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "vmPriority": { + "$ref": "#/components/schemas/VmPriority" + }, + "retainCluster": { + "type": "boolean" + }, + "clusterMaxNodeCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "osType": { + "type": "string", + "nullable": true + }, + "virtualMachineImage": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "APCloudConfiguration": { + "type": "object", + "properties": { + "referencedAPModuleGuid": { + "type": "string", + "nullable": true + }, + "userAlias": { + "type": "string", + "nullable": true + }, + "aetherModuleType": { + "type": "string", + "nullable": true + }, + "allowOverwrite": { + "type": "boolean", + "nullable": true + }, + "destinationExpirationDays": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "shouldRespectLineBoundaries": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "ActionType": { + "enum": [ + "SendValidationRequest", + "GetValidationStatus", + "SubmitBulkRun", + "LogRunResult", + "LogRunTerminatedEvent", + "SubmitFlowRun" + ], + "type": "string" + }, + "Activate": { + "type": "object", + "properties": { + "when": { + "type": "string", + "nullable": true + }, + "is": { + "nullable": true + } + }, + "additionalProperties": false + }, + "AdditionalErrorInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "info": { + "nullable": true + } + }, + "additionalProperties": false + }, + "AdhocTriggerScheduledCommandJobRequest": { + "type": "object", + "properties": { + "jobName": { + "type": "string", + "nullable": true + }, + "jobDisplayName": { + "type": "string", + "nullable": true + }, + "triggerTimeString": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AdhocTriggerScheduledSparkJobRequest": { + "type": "object", + "properties": { + "jobName": { + "type": "string", + "nullable": true + }, + "jobDisplayName": { + "type": "string", + "nullable": true + }, + "triggerTimeString": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherAPCloudConfiguration": { + "type": "object", + "properties": { + "referencedAPModuleGuid": { + "type": "string", + "nullable": true + }, + "userAlias": { + "type": "string", + "nullable": true + }, + "aetherModuleType": { + "type": "string", + "nullable": true + }, + "allowOverwrite": { + "type": "boolean", + "nullable": true + }, + "destinationExpirationDays": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "shouldRespectLineBoundaries": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherAmlDataset": { + "type": "object", + "properties": { + "registeredDataSetReference": { + "$ref": "#/components/schemas/AetherRegisteredDataSetReference" + }, + "savedDataSetReference": { + "$ref": "#/components/schemas/AetherSavedDataSetReference" + }, + "additionalTransformations": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherAmlSparkCloudSetting": { + "type": "object", + "properties": { + "entry": { + "$ref": "#/components/schemas/AetherEntrySetting" + }, + "files": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "AetherCloudBuildDropPathInfo": { - "type": "object", - "properties": { - "buildInfo": { - "$ref": "#/components/schemas/AetherCloudBuildInfo" - }, - "root": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "archives": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "AetherCloudBuildInfo": { - "type": "object", - "properties": { - "queueInfo": { - "$ref": "#/components/schemas/AetherCloudBuildQueueInfo" - }, - "buildId": { - "type": "string", - "nullable": true - }, - "dropUrl": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "jars": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "AetherCloudBuildQueueInfo": { - "type": "object", - "properties": { - "buildQueue": { - "type": "string", - "nullable": true - }, - "buildRole": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "pyFiles": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "driverMemory": { + "type": "string", + "nullable": true + }, + "driverCores": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "executorMemory": { + "type": "string", + "nullable": true + }, + "executorCores": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "numberExecutors": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "environmentAssetId": { + "type": "string", + "nullable": true + }, + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "inlineEnvironmentDefinitionString": { + "type": "string", + "nullable": true + }, + "conf": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "compute": { + "type": "string", + "nullable": true + }, + "resources": { + "$ref": "#/components/schemas/AetherResourcesSetting" + }, + "identity": { + "$ref": "#/components/schemas/AetherIdentitySetting" + } + }, + "additionalProperties": false + }, + "AetherArgumentAssignment": { + "type": "object", + "properties": { + "valueType": { + "$ref": "#/components/schemas/AetherArgumentValueType" + }, + "value": { + "type": "string", + "nullable": true + }, + "nestedArgumentList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherArgumentAssignment" + }, + "nullable": true + }, + "stringInterpolationArgumentList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherArgumentAssignment" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherArgumentValueType": { + "enum": [ + "Literal", + "Parameter", + "Input", + "Output", + "NestedList", + "StringInterpolationList" + ], + "type": "string" + }, + "AetherAssetDefinition": { + "type": "object", + "properties": { + "path": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/AetherAssetType" + }, + "assetId": { + "type": "string", + "nullable": true + }, + "initialAssetId": { + "type": "string", + "nullable": true + }, + "serializedAssetId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherAssetOutputSettings": { + "type": "object", + "properties": { + "path": { + "type": "string", + "nullable": true + }, + "PathParameterAssignment": { + "$ref": "#/components/schemas/AetherParameterAssignment" + }, + "type": { + "$ref": "#/components/schemas/AetherAssetType" + }, + "options": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "AetherCloudPrioritySetting": { - "type": "object", - "properties": { - "scopePriority": { - "$ref": "#/components/schemas/AetherPriorityConfiguration" - }, - "AmlComputePriority": { - "$ref": "#/components/schemas/AetherPriorityConfiguration" - }, - "ItpPriority": { - "$ref": "#/components/schemas/AetherPriorityConfiguration" - }, - "SingularityPriority": { - "$ref": "#/components/schemas/AetherPriorityConfiguration" - } - }, - "additionalProperties": false + "dataStoreMode": { + "$ref": "#/components/schemas/AetherDataStoreMode" }, - "AetherCloudSettings": { - "type": "object", - "properties": { - "linkedSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherParameterAssignment" - }, - "nullable": true - }, - "priorityConfig": { - "$ref": "#/components/schemas/AetherPriorityConfiguration" - }, - "hdiRunConfig": { - "$ref": "#/components/schemas/AetherHdiRunConfiguration" - }, - "subGraphConfig": { - "$ref": "#/components/schemas/AetherSubGraphConfiguration" - }, - "autoMLComponentConfig": { - "$ref": "#/components/schemas/AetherAutoMLComponentConfiguration" - }, - "apCloudConfig": { - "$ref": "#/components/schemas/AetherAPCloudConfiguration" - }, - "scopeCloudConfig": { - "$ref": "#/components/schemas/AetherScopeCloudConfiguration" - }, - "esCloudConfig": { - "$ref": "#/components/schemas/AetherEsCloudConfiguration" - }, - "dataTransferCloudConfig": { - "$ref": "#/components/schemas/AetherDataTransferCloudConfiguration" - }, - "amlSparkCloudSetting": { - "$ref": "#/components/schemas/AetherAmlSparkCloudSetting" - }, - "dataTransferV2CloudSetting": { - "$ref": "#/components/schemas/AetherDataTransferV2CloudSetting" - } - }, - "additionalProperties": false + "name": { + "type": "string", + "nullable": true }, - "AetherColumnTransformer": { - "type": "object", - "properties": { - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "parameters": { - "nullable": true - } - }, - "additionalProperties": false + "version": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherAssetType": { + "enum": [ + "UriFile", + "UriFolder", + "MLTable", + "CustomModel", + "MLFlowModel", + "TritonModel", + "OpenAIModel" + ], + "type": "string" + }, + "AetherAutoFeaturizeConfiguration": { + "type": "object", + "properties": { + "featurizationConfig": { + "$ref": "#/components/schemas/AetherFeaturizationSettings" + } + }, + "additionalProperties": false + }, + "AetherAutoMLComponentConfiguration": { + "type": "object", + "properties": { + "autoTrainConfig": { + "$ref": "#/components/schemas/AetherAutoTrainConfiguration" + }, + "autoFeaturizeConfig": { + "$ref": "#/components/schemas/AetherAutoFeaturizeConfiguration" + } + }, + "additionalProperties": false + }, + "AetherAutoTrainConfiguration": { + "type": "object", + "properties": { + "generalSettings": { + "$ref": "#/components/schemas/AetherGeneralSettings" + }, + "limitSettings": { + "$ref": "#/components/schemas/AetherLimitSettings" + }, + "dataSettings": { + "$ref": "#/components/schemas/AetherDataSettings" + }, + "forecastingSettings": { + "$ref": "#/components/schemas/AetherForecastingSettings" + }, + "trainingSettings": { + "$ref": "#/components/schemas/AetherTrainingSettings" + }, + "sweepSettings": { + "$ref": "#/components/schemas/AetherSweepSettings" + }, + "imageModelSettings": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "computeConfiguration": { + "$ref": "#/components/schemas/AetherComputeConfiguration" + }, + "resourceConfigurtion": { + "$ref": "#/components/schemas/AetherResourceConfiguration" + }, + "environmentId": { + "type": "string", + "nullable": true + }, + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherAzureBlobReference": { + "type": "object", + "properties": { + "container": { + "type": "string", + "nullable": true + }, + "sasToken": { + "type": "string", + "nullable": true + }, + "uri": { + "type": "string", + "nullable": true + }, + "account": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "pathType": { + "$ref": "#/components/schemas/AetherFileBasedPathType" + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherAzureDataLakeGen2Reference": { + "type": "object", + "properties": { + "fileSystemName": { + "type": "string", + "nullable": true + }, + "uri": { + "type": "string", + "nullable": true + }, + "account": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "pathType": { + "$ref": "#/components/schemas/AetherFileBasedPathType" + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherAzureDataLakeReference": { + "type": "object", + "properties": { + "tenant": { + "type": "string", + "nullable": true + }, + "subscription": { + "type": "string", + "nullable": true + }, + "resourceGroup": { + "type": "string", + "nullable": true + }, + "dataLakeUri": { + "type": "string", + "nullable": true + }, + "uri": { + "type": "string", + "nullable": true + }, + "account": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "pathType": { + "$ref": "#/components/schemas/AetherFileBasedPathType" + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherAzureDatabaseReference": { + "type": "object", + "properties": { + "serverUri": { + "type": "string", + "nullable": true + }, + "databaseName": { + "type": "string", + "nullable": true + }, + "tableName": { + "type": "string", + "nullable": true + }, + "sqlQuery": { + "type": "string", + "nullable": true + }, + "storedProcedureName": { + "type": "string", + "nullable": true + }, + "storedProcedureParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherStoredProcedureParameter" + }, + "nullable": true + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherAzureFilesReference": { + "type": "object", + "properties": { + "share": { + "type": "string", + "nullable": true + }, + "uri": { + "type": "string", + "nullable": true + }, + "account": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "pathType": { + "$ref": "#/components/schemas/AetherFileBasedPathType" + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherBatchAiComputeInfo": { + "type": "object", + "properties": { + "batchAiSubscriptionId": { + "type": "string", + "nullable": true + }, + "batchAiResourceGroup": { + "type": "string", + "nullable": true + }, + "batchAiWorkspaceName": { + "type": "string", + "nullable": true + }, + "clusterName": { + "type": "string", + "nullable": true + }, + "nativeSharedDirectory": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherBuildArtifactInfo": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/AetherBuildSourceType" }, - "AetherComputeConfiguration": { - "type": "object", - "properties": { - "target": { - "type": "string", - "nullable": true - }, - "instanceCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "isLocal": { - "type": "boolean" - }, - "location": { - "type": "string", - "nullable": true - }, - "isClusterless": { - "type": "boolean" - }, - "instanceType": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - }, - "isPreemptable": { - "type": "boolean" - } - }, - "additionalProperties": false + "cloudBuildDropPathInfo": { + "$ref": "#/components/schemas/AetherCloudBuildDropPathInfo" }, - "AetherComputeSetting": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "computeType": { - "$ref": "#/components/schemas/AetherComputeType" - }, - "batchAiComputeInfo": { - "$ref": "#/components/schemas/AetherBatchAiComputeInfo" - }, - "remoteDockerComputeInfo": { - "$ref": "#/components/schemas/AetherRemoteDockerComputeInfo" - }, - "hdiClusterComputeInfo": { - "$ref": "#/components/schemas/AetherHdiClusterComputeInfo" - }, - "mlcComputeInfo": { - "$ref": "#/components/schemas/AetherMlcComputeInfo" - }, - "databricksComputeInfo": { - "$ref": "#/components/schemas/AetherDatabricksComputeInfo" - } - }, - "additionalProperties": false + "vsoBuildArtifactInfo": { + "$ref": "#/components/schemas/AetherVsoBuildArtifactInfo" + } + }, + "additionalProperties": false + }, + "AetherBuildSourceType": { + "enum": [ + "CloudBuild", + "Vso", + "VsoGit" + ], + "type": "string" + }, + "AetherCloudBuildDropPathInfo": { + "type": "object", + "properties": { + "buildInfo": { + "$ref": "#/components/schemas/AetherCloudBuildInfo" + }, + "root": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherCloudBuildInfo": { + "type": "object", + "properties": { + "queueInfo": { + "$ref": "#/components/schemas/AetherCloudBuildQueueInfo" + }, + "buildId": { + "type": "string", + "nullable": true + }, + "dropUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherCloudBuildQueueInfo": { + "type": "object", + "properties": { + "buildQueue": { + "type": "string", + "nullable": true + }, + "buildRole": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherCloudPrioritySetting": { + "type": "object", + "properties": { + "scopePriority": { + "$ref": "#/components/schemas/AetherPriorityConfiguration" }, - "AetherComputeType": { - "enum": [ - "BatchAi", - "MLC", - "HdiCluster", - "RemoteDocker", - "Databricks", - "Aisc" - ], - "type": "string" + "AmlComputePriority": { + "$ref": "#/components/schemas/AetherPriorityConfiguration" }, - "AetherControlFlowType": { - "enum": [ - "None", - "DoWhile", - "ParallelFor" - ], - "type": "string" + "ItpPriority": { + "$ref": "#/components/schemas/AetherPriorityConfiguration" }, - "AetherControlInput": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "defaultValue": { - "$ref": "#/components/schemas/AetherControlInputValue" - } - }, - "additionalProperties": false + "SingularityPriority": { + "$ref": "#/components/schemas/AetherPriorityConfiguration" + } + }, + "additionalProperties": false + }, + "AetherCloudSettings": { + "type": "object", + "properties": { + "linkedSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherParameterAssignment" + }, + "nullable": true }, - "AetherControlInputValue": { - "enum": [ - "None", - "False", - "True", - "Skipped" - ], - "type": "string" + "priorityConfig": { + "$ref": "#/components/schemas/AetherPriorityConfiguration" }, - "AetherControlOutput": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "hdiRunConfig": { + "$ref": "#/components/schemas/AetherHdiRunConfiguration" }, - "AetherControlType": { - "enum": [ - "IfElse" - ], - "type": "string" + "subGraphConfig": { + "$ref": "#/components/schemas/AetherSubGraphConfiguration" }, - "AetherCopyDataTask": { - "type": "object", - "properties": { - "DataCopyMode": { - "$ref": "#/components/schemas/AetherDataCopyMode" - } - }, - "additionalProperties": false + "autoMLComponentConfig": { + "$ref": "#/components/schemas/AetherAutoMLComponentConfiguration" }, - "AetherCosmosReference": { - "type": "object", - "properties": { - "cluster": { - "type": "string", - "nullable": true - }, - "vc": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "apCloudConfig": { + "$ref": "#/components/schemas/AetherAPCloudConfiguration" }, - "AetherCreatedBy": { - "type": "object", - "properties": { - "userObjectId": { - "type": "string", - "nullable": true - }, - "userTenantId": { - "type": "string", - "nullable": true - }, - "userName": { - "type": "string", - "nullable": true - }, - "puid": { - "type": "string", - "nullable": true - }, - "iss": { - "type": "string", - "nullable": true - }, - "idp": { - "type": "string", - "nullable": true - }, - "altsecId": { - "type": "string", - "nullable": true - }, - "sourceIp": { - "type": "string", - "nullable": true - }, - "skipRegistryPrivateLinkCheck": { - "type": "boolean" - } - }, - "additionalProperties": false + "scopeCloudConfig": { + "$ref": "#/components/schemas/AetherScopeCloudConfiguration" }, - "AetherCustomReference": { - "type": "object", - "properties": { - "amlDataStoreName": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "esCloudConfig": { + "$ref": "#/components/schemas/AetherEsCloudConfiguration" }, - "AetherDBFSReference": { - "type": "object", - "properties": { - "relativePath": { - "type": "string", - "nullable": true - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "dataTransferCloudConfig": { + "$ref": "#/components/schemas/AetherDataTransferCloudConfiguration" }, - "AetherDataCopyMode": { - "enum": [ - "MergeWithOverwrite", - "FailIfConflict" - ], + "amlSparkCloudSetting": { + "$ref": "#/components/schemas/AetherAmlSparkCloudSetting" + }, + "dataTransferV2CloudSetting": { + "$ref": "#/components/schemas/AetherDataTransferV2CloudSetting" + } + }, + "additionalProperties": false + }, + "AetherColumnTransformer": { + "type": "object", + "properties": { + "fields": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "AetherDataLocation": { - "type": "object", - "properties": { - "storageType": { - "$ref": "#/components/schemas/AetherDataLocationStorageType" - }, - "storageId": { - "type": "string", - "nullable": true - }, - "uri": { - "type": "string", - "nullable": true - }, - "dataStoreName": { - "type": "string", - "nullable": true - }, - "dataReference": { - "$ref": "#/components/schemas/AetherDataReference" - }, - "amlDataset": { - "$ref": "#/components/schemas/AetherAmlDataset" - }, - "assetDefinition": { - "$ref": "#/components/schemas/AetherAssetDefinition" - }, - "isCompliant": { - "type": "boolean" - }, - "reuseCalculationFields": { - "$ref": "#/components/schemas/AetherDataLocationReuseCalculationFields" - } - }, - "additionalProperties": false + "parameters": { + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherComputeConfiguration": { + "type": "object", + "properties": { + "target": { + "type": "string", + "nullable": true + }, + "instanceCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isLocal": { + "type": "boolean" + }, + "location": { + "type": "string", + "nullable": true + }, + "isClusterless": { + "type": "boolean" + }, + "instanceType": { + "type": "string", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + }, + "isPreemptable": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "AetherComputeSetting": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true }, - "AetherDataLocationReuseCalculationFields": { - "type": "object", - "properties": { - "dataStoreName": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "dataExperimentId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "computeType": { + "$ref": "#/components/schemas/AetherComputeType" }, - "AetherDataLocationStorageType": { - "enum": [ - "Cosmos", - "AzureBlob", - "Artifact", - "Snapshot", - "SavedAmlDataset", - "Asset" - ], - "type": "string" + "batchAiComputeInfo": { + "$ref": "#/components/schemas/AetherBatchAiComputeInfo" }, - "AetherDataPath": { - "type": "object", - "properties": { - "dataStoreName": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "sqlDataPath": { - "$ref": "#/components/schemas/AetherSqlDataPath" - } - }, - "additionalProperties": false + "remoteDockerComputeInfo": { + "$ref": "#/components/schemas/AetherRemoteDockerComputeInfo" }, - "AetherDataReference": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/AetherDataReferenceType" - }, - "azureBlobReference": { - "$ref": "#/components/schemas/AetherAzureBlobReference" - }, - "azureDataLakeReference": { - "$ref": "#/components/schemas/AetherAzureDataLakeReference" - }, - "azureFilesReference": { - "$ref": "#/components/schemas/AetherAzureFilesReference" - }, - "cosmosReference": { - "$ref": "#/components/schemas/AetherCosmosReference" - }, - "phillyHdfsReference": { - "$ref": "#/components/schemas/AetherPhillyHdfsReference" - }, - "azureSqlDatabaseReference": { - "$ref": "#/components/schemas/AetherAzureDatabaseReference" - }, - "azurePostgresDatabaseReference": { - "$ref": "#/components/schemas/AetherAzureDatabaseReference" - }, - "azureDataLakeGen2Reference": { - "$ref": "#/components/schemas/AetherAzureDataLakeGen2Reference" - }, - "dbfsReference": { - "$ref": "#/components/schemas/AetherDBFSReference" - }, - "azureMySqlDatabaseReference": { - "$ref": "#/components/schemas/AetherAzureDatabaseReference" - }, - "customReference": { - "$ref": "#/components/schemas/AetherCustomReference" - }, - "hdfsReference": { - "$ref": "#/components/schemas/AetherHdfsReference" - } - }, - "additionalProperties": false - }, - "AetherDataReferenceType": { - "enum": [ - "None", - "AzureBlob", - "AzureDataLake", - "AzureFiles", - "Cosmos", - "PhillyHdfs", - "AzureSqlDatabase", - "AzurePostgresDatabase", - "AzureDataLakeGen2", - "DBFS", - "AzureMySqlDatabase", - "Custom", - "Hdfs" - ], - "type": "string" - }, - "AetherDataSetDefinition": { - "type": "object", - "properties": { - "dataTypeShortName": { - "type": "string", - "nullable": true - }, - "parameterName": { - "type": "string", - "nullable": true - }, - "value": { - "$ref": "#/components/schemas/AetherDataSetDefinitionValue" - } - }, - "additionalProperties": false + "hdiClusterComputeInfo": { + "$ref": "#/components/schemas/AetherHdiClusterComputeInfo" }, - "AetherDataSetDefinitionValue": { - "type": "object", - "properties": { - "literalValue": { - "$ref": "#/components/schemas/AetherDataPath" - }, - "dataSetReference": { - "$ref": "#/components/schemas/AetherRegisteredDataSetReference" - }, - "savedDataSetReference": { - "$ref": "#/components/schemas/AetherSavedDataSetReference" - }, - "assetDefinition": { - "$ref": "#/components/schemas/AetherAssetDefinition" - } - }, - "additionalProperties": false + "mlcComputeInfo": { + "$ref": "#/components/schemas/AetherMlcComputeInfo" }, - "AetherDataSettings": { - "type": "object", - "properties": { - "targetColumnName": { - "type": "string", - "nullable": true - }, - "weightColumnName": { - "type": "string", - "nullable": true - }, - "positiveLabel": { - "type": "string", - "nullable": true - }, - "validationData": { - "$ref": "#/components/schemas/AetherValidationDataSettings" - }, - "testData": { - "$ref": "#/components/schemas/AetherTestDataSettings" - } - }, - "additionalProperties": false + "databricksComputeInfo": { + "$ref": "#/components/schemas/AetherDatabricksComputeInfo" + } + }, + "additionalProperties": false + }, + "AetherComputeType": { + "enum": [ + "BatchAi", + "MLC", + "HdiCluster", + "RemoteDocker", + "Databricks", + "Aisc" + ], + "type": "string" + }, + "AetherControlFlowType": { + "enum": [ + "None", + "DoWhile", + "ParallelFor" + ], + "type": "string" + }, + "AetherControlInput": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "defaultValue": { + "$ref": "#/components/schemas/AetherControlInputValue" + } + }, + "additionalProperties": false + }, + "AetherControlInputValue": { + "enum": [ + "None", + "False", + "True", + "Skipped" + ], + "type": "string" + }, + "AetherControlOutput": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherControlType": { + "enum": [ + "IfElse" + ], + "type": "string" + }, + "AetherCopyDataTask": { + "type": "object", + "properties": { + "DataCopyMode": { + "$ref": "#/components/schemas/AetherDataCopyMode" + } + }, + "additionalProperties": false + }, + "AetherCosmosReference": { + "type": "object", + "properties": { + "cluster": { + "type": "string", + "nullable": true + }, + "vc": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherCreatedBy": { + "type": "object", + "properties": { + "userObjectId": { + "type": "string", + "nullable": true + }, + "userTenantId": { + "type": "string", + "nullable": true + }, + "userName": { + "type": "string", + "nullable": true + }, + "puid": { + "type": "string", + "nullable": true + }, + "iss": { + "type": "string", + "nullable": true + }, + "idp": { + "type": "string", + "nullable": true + }, + "altsecId": { + "type": "string", + "nullable": true + }, + "sourceIp": { + "type": "string", + "nullable": true + }, + "skipRegistryPrivateLinkCheck": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "AetherCustomReference": { + "type": "object", + "properties": { + "amlDataStoreName": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherDBFSReference": { + "type": "object", + "properties": { + "relativePath": { + "type": "string", + "nullable": true + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherDataCopyMode": { + "enum": [ + "MergeWithOverwrite", + "FailIfConflict" + ], + "type": "string" + }, + "AetherDataLocation": { + "type": "object", + "properties": { + "storageType": { + "$ref": "#/components/schemas/AetherDataLocationStorageType" }, - "AetherDataStoreMode": { - "enum": [ - "None", - "Mount", - "Download", - "Upload", - "Direct", - "Hdfs", - "Link" - ], - "type": "string" + "storageId": { + "type": "string", + "nullable": true }, - "AetherDataTransferCloudConfiguration": { - "type": "object", - "properties": { - "AllowOverwrite": { - "type": "boolean", - "nullable": true - } - }, - "additionalProperties": false + "uri": { + "type": "string", + "nullable": true }, - "AetherDataTransferSink": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/AetherDataTransferStorageType" - }, - "fileSystem": { - "$ref": "#/components/schemas/AetherFileSystem" - }, - "databaseSink": { - "$ref": "#/components/schemas/AetherDatabaseSink" - } - }, - "additionalProperties": false + "dataStoreName": { + "type": "string", + "nullable": true }, - "AetherDataTransferSource": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/AetherDataTransferStorageType" - }, - "fileSystem": { - "$ref": "#/components/schemas/AetherFileSystem" - }, - "databaseSource": { - "$ref": "#/components/schemas/AetherDatabaseSource" - } - }, - "additionalProperties": false + "dataReference": { + "$ref": "#/components/schemas/AetherDataReference" }, - "AetherDataTransferStorageType": { - "enum": [ - "DataBase", - "FileSystem" - ], - "type": "string" + "amlDataset": { + "$ref": "#/components/schemas/AetherAmlDataset" }, - "AetherDataTransferTaskType": { - "enum": [ - "ImportData", - "ExportData", - "CopyData" - ], - "type": "string" + "assetDefinition": { + "$ref": "#/components/schemas/AetherAssetDefinition" }, - "AetherDataTransferV2CloudSetting": { - "type": "object", - "properties": { - "taskType": { - "$ref": "#/components/schemas/AetherDataTransferTaskType" - }, - "ComputeName": { - "type": "string", - "nullable": true - }, - "CopyDataTask": { - "$ref": "#/components/schemas/AetherCopyDataTask" - }, - "ImportDataTask": { - "$ref": "#/components/schemas/AetherImportDataTask" - }, - "ExportDataTask": { - "$ref": "#/components/schemas/AetherExportDataTask" - }, - "DataTransferSources": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AetherDataTransferSource" - }, - "description": "This is a dictionary", - "nullable": true - }, - "DataTransferSinks": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AetherDataTransferSink" - }, - "description": "This is a dictionary", - "nullable": true - }, - "DataCopyMode": { - "$ref": "#/components/schemas/AetherDataCopyMode" - } - }, - "additionalProperties": false + "isCompliant": { + "type": "boolean" }, - "AetherDatabaseSink": { - "type": "object", - "properties": { - "connection": { - "type": "string", - "nullable": true - }, - "table": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "reuseCalculationFields": { + "$ref": "#/components/schemas/AetherDataLocationReuseCalculationFields" + } + }, + "additionalProperties": false + }, + "AetherDataLocationReuseCalculationFields": { + "type": "object", + "properties": { + "dataStoreName": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "dataExperimentId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherDataLocationStorageType": { + "enum": [ + "Cosmos", + "AzureBlob", + "Artifact", + "Snapshot", + "SavedAmlDataset", + "Asset" + ], + "type": "string" + }, + "AetherDataPath": { + "type": "object", + "properties": { + "dataStoreName": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "sqlDataPath": { + "$ref": "#/components/schemas/AetherSqlDataPath" + } + }, + "additionalProperties": false + }, + "AetherDataReference": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/AetherDataReferenceType" }, - "AetherDatabaseSource": { - "type": "object", - "properties": { - "connection": { - "type": "string", - "nullable": true - }, - "query": { - "type": "string", - "nullable": true - }, - "storedProcedureName": { - "type": "string", - "nullable": true - }, - "storedProcedureParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherStoredProcedureParameter" - }, - "nullable": true - } - }, - "additionalProperties": false + "azureBlobReference": { + "$ref": "#/components/schemas/AetherAzureBlobReference" }, - "AetherDatabricksComputeInfo": { - "type": "object", - "properties": { - "existingClusterId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "azureDataLakeReference": { + "$ref": "#/components/schemas/AetherAzureDataLakeReference" }, - "AetherDatasetOutput": { - "type": "object", - "properties": { - "datasetType": { - "$ref": "#/components/schemas/AetherDatasetType" - }, - "datasetRegistration": { - "$ref": "#/components/schemas/AetherDatasetRegistration" - }, - "datasetOutputOptions": { - "$ref": "#/components/schemas/AetherDatasetOutputOptions" - } - }, - "additionalProperties": false + "azureFilesReference": { + "$ref": "#/components/schemas/AetherAzureFilesReference" }, - "AetherDatasetOutputOptions": { - "type": "object", - "properties": { - "sourceGlobs": { - "$ref": "#/components/schemas/AetherGlobsOptions" - }, - "pathOnDatastore": { - "type": "string", - "nullable": true - }, - "PathOnDatastoreParameterAssignment": { - "$ref": "#/components/schemas/AetherParameterAssignment" - } - }, - "additionalProperties": false + "cosmosReference": { + "$ref": "#/components/schemas/AetherCosmosReference" }, - "AetherDatasetRegistration": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "createNewVersion": { - "type": "boolean" - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "additionalTransformations": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "phillyHdfsReference": { + "$ref": "#/components/schemas/AetherPhillyHdfsReference" }, - "AetherDatasetType": { - "enum": [ - "File", - "Tabular" - ], - "type": "string" + "azureSqlDatabaseReference": { + "$ref": "#/components/schemas/AetherAzureDatabaseReference" }, - "AetherDatastoreSetting": { - "type": "object", - "properties": { - "dataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "azurePostgresDatabaseReference": { + "$ref": "#/components/schemas/AetherAzureDatabaseReference" }, - "AetherDoWhileControlFlowInfo": { - "type": "object", - "properties": { - "outputPortNameToInputPortNamesMapping": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "nullable": true - }, - "conditionOutputPortName": { - "type": "string", - "nullable": true - }, - "runSettings": { - "$ref": "#/components/schemas/AetherDoWhileControlFlowRunSettings" - } - }, - "additionalProperties": false + "azureDataLakeGen2Reference": { + "$ref": "#/components/schemas/AetherAzureDataLakeGen2Reference" }, - "AetherDoWhileControlFlowRunSettings": { - "type": "object", - "properties": { - "maxLoopIterationCount": { - "$ref": "#/components/schemas/AetherParameterAssignment" - } - }, - "additionalProperties": false + "dbfsReference": { + "$ref": "#/components/schemas/AetherDBFSReference" }, - "AetherDockerSettingConfiguration": { - "type": "object", - "properties": { - "useDocker": { - "type": "boolean", - "nullable": true - }, - "sharedVolumes": { - "type": "boolean", - "nullable": true - }, - "shmSize": { - "type": "string", - "nullable": true - }, - "arguments": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "azureMySqlDatabaseReference": { + "$ref": "#/components/schemas/AetherAzureDatabaseReference" }, - "AetherEarlyTerminationPolicyType": { - "enum": [ - "Bandit", - "MedianStopping", - "TruncationSelection" - ], - "type": "string" + "customReference": { + "$ref": "#/components/schemas/AetherCustomReference" }, - "AetherEntityInterfaceDocumentation": { - "type": "object", - "properties": { - "inputsDocumentation": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "outputsDocumentation": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "parametersDocumentation": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "hdfsReference": { + "$ref": "#/components/schemas/AetherHdfsReference" + } + }, + "additionalProperties": false + }, + "AetherDataReferenceType": { + "enum": [ + "None", + "AzureBlob", + "AzureDataLake", + "AzureFiles", + "Cosmos", + "PhillyHdfs", + "AzureSqlDatabase", + "AzurePostgresDatabase", + "AzureDataLakeGen2", + "DBFS", + "AzureMySqlDatabase", + "Custom", + "Hdfs" + ], + "type": "string" + }, + "AetherDataSetDefinition": { + "type": "object", + "properties": { + "dataTypeShortName": { + "type": "string", + "nullable": true + }, + "parameterName": { + "type": "string", + "nullable": true + }, + "value": { + "$ref": "#/components/schemas/AetherDataSetDefinitionValue" + } + }, + "additionalProperties": false + }, + "AetherDataSetDefinitionValue": { + "type": "object", + "properties": { + "literalValue": { + "$ref": "#/components/schemas/AetherDataPath" }, - "AetherEntityStatus": { - "enum": [ - "Active", - "Deprecated", - "Disabled" - ], - "type": "string" + "dataSetReference": { + "$ref": "#/components/schemas/AetherRegisteredDataSetReference" }, - "AetherEntrySetting": { - "type": "object", - "properties": { - "file": { - "type": "string", - "nullable": true - }, - "className": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "savedDataSetReference": { + "$ref": "#/components/schemas/AetherSavedDataSetReference" }, - "AetherEnvironmentConfiguration": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "useEnvironmentDefinition": { - "type": "boolean" - }, - "environmentDefinitionString": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "assetDefinition": { + "$ref": "#/components/schemas/AetherAssetDefinition" + } + }, + "additionalProperties": false + }, + "AetherDataSettings": { + "type": "object", + "properties": { + "targetColumnName": { + "type": "string", + "nullable": true + }, + "weightColumnName": { + "type": "string", + "nullable": true + }, + "positiveLabel": { + "type": "string", + "nullable": true + }, + "validationData": { + "$ref": "#/components/schemas/AetherValidationDataSettings" + }, + "testData": { + "$ref": "#/components/schemas/AetherTestDataSettings" + } + }, + "additionalProperties": false + }, + "AetherDataStoreMode": { + "enum": [ + "None", + "Mount", + "Download", + "Upload", + "Direct", + "Hdfs", + "Link" + ], + "type": "string" + }, + "AetherDataTransferCloudConfiguration": { + "type": "object", + "properties": { + "AllowOverwrite": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherDataTransferSink": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/AetherDataTransferStorageType" }, - "AetherEsCloudConfiguration": { - "type": "object", - "properties": { - "enableOutputToFileBasedOnDataTypeId": { - "type": "boolean", - "nullable": true - }, - "amlComputePriorityInternal": { - "$ref": "#/components/schemas/AetherPriorityConfiguration" - }, - "itpPriorityInternal": { - "$ref": "#/components/schemas/AetherPriorityConfiguration" - }, - "singularityPriorityInternal": { - "$ref": "#/components/schemas/AetherPriorityConfiguration" - }, - "environment": { - "$ref": "#/components/schemas/AetherEnvironmentConfiguration" - }, - "hyperDriveConfiguration": { - "$ref": "#/components/schemas/AetherHyperDriveConfiguration" - }, - "k8sConfig": { - "$ref": "#/components/schemas/AetherK8sConfiguration" - }, - "resourceConfig": { - "$ref": "#/components/schemas/AetherResourceConfiguration" - }, - "torchDistributedConfig": { - "$ref": "#/components/schemas/AetherTorchDistributedConfiguration" - }, - "targetSelectorConfig": { - "$ref": "#/components/schemas/AetherTargetSelectorConfiguration" - }, - "dockerConfig": { - "$ref": "#/components/schemas/AetherDockerSettingConfiguration" - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "maxRunDurationSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "identity": { - "$ref": "#/components/schemas/AetherIdentitySetting" - }, - "applicationEndpoints": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ApplicationEndpointConfiguration" - }, - "nullable": true - }, - "runConfig": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "fileSystem": { + "$ref": "#/components/schemas/AetherFileSystem" }, - "AetherExecutionEnvironment": { - "enum": [ - "ExeWorkerMachine", - "DockerContainerWithoutNetwork", - "DockerContainerWithNetwork", - "HyperVWithoutNetwork", - "HyperVWithNetwork" - ], - "type": "string" + "databaseSink": { + "$ref": "#/components/schemas/AetherDatabaseSink" + } + }, + "additionalProperties": false + }, + "AetherDataTransferSource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/AetherDataTransferStorageType" }, - "AetherExecutionPhase": { - "enum": [ - "Execution", - "Initialization", - "Finalization" - ], - "type": "string" + "fileSystem": { + "$ref": "#/components/schemas/AetherFileSystem" }, - "AetherExportDataTask": { - "type": "object", - "properties": { - "DataTransferSink": { - "$ref": "#/components/schemas/AetherDataTransferSink" - } - }, - "additionalProperties": false + "databaseSource": { + "$ref": "#/components/schemas/AetherDatabaseSource" + } + }, + "additionalProperties": false + }, + "AetherDataTransferStorageType": { + "enum": [ + "DataBase", + "FileSystem" + ], + "type": "string" + }, + "AetherDataTransferTaskType": { + "enum": [ + "ImportData", + "ExportData", + "CopyData" + ], + "type": "string" + }, + "AetherDataTransferV2CloudSetting": { + "type": "object", + "properties": { + "taskType": { + "$ref": "#/components/schemas/AetherDataTransferTaskType" }, - "AetherFeaturizationMode": { - "enum": [ - "Auto", - "Custom", - "Off" - ], - "type": "string" + "ComputeName": { + "type": "string", + "nullable": true }, - "AetherFeaturizationSettings": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/components/schemas/AetherFeaturizationMode" - }, - "blockedTransformers": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "columnPurposes": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "dropColumns": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "transformerParams": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherColumnTransformer" - }, - "nullable": true - }, - "nullable": true - }, - "datasetLanguage": { - "type": "string", - "nullable": true - }, - "enableDnnFeaturization": { - "type": "boolean", - "nullable": true - } - }, - "additionalProperties": false + "CopyDataTask": { + "$ref": "#/components/schemas/AetherCopyDataTask" }, - "AetherFileBasedPathType": { - "enum": [ - "Unknown", - "File", - "Folder" - ], - "type": "string" + "ImportDataTask": { + "$ref": "#/components/schemas/AetherImportDataTask" }, - "AetherFileSystem": { - "type": "object", - "properties": { - "connection": { - "type": "string", - "nullable": true - }, - "path": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "ExportDataTask": { + "$ref": "#/components/schemas/AetherExportDataTask" + }, + "DataTransferSources": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AetherDataTransferSource" + }, + "description": "This is a dictionary", + "nullable": true + }, + "DataTransferSinks": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AetherDataTransferSink" + }, + "description": "This is a dictionary", + "nullable": true }, - "AetherForecastHorizon": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/components/schemas/AetherForecastHorizonMode" - }, - "value": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "DataCopyMode": { + "$ref": "#/components/schemas/AetherDataCopyMode" + } + }, + "additionalProperties": false + }, + "AetherDatabaseSink": { + "type": "object", + "properties": { + "connection": { + "type": "string", + "nullable": true + }, + "table": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherDatabaseSource": { + "type": "object", + "properties": { + "connection": { + "type": "string", + "nullable": true + }, + "query": { + "type": "string", + "nullable": true + }, + "storedProcedureName": { + "type": "string", + "nullable": true + }, + "storedProcedureParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherStoredProcedureParameter" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherDatabricksComputeInfo": { + "type": "object", + "properties": { + "existingClusterId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherDatasetOutput": { + "type": "object", + "properties": { + "datasetType": { + "$ref": "#/components/schemas/AetherDatasetType" }, - "AetherForecastHorizonMode": { - "enum": [ - "Auto", - "Custom" - ], - "type": "string" + "datasetRegistration": { + "$ref": "#/components/schemas/AetherDatasetRegistration" }, - "AetherForecastingSettings": { - "type": "object", - "properties": { - "countryOrRegionForHolidays": { - "type": "string", - "nullable": true - }, - "timeColumnName": { - "type": "string", - "nullable": true - }, - "targetLags": { - "$ref": "#/components/schemas/AetherTargetLags" - }, - "targetRollingWindowSize": { - "$ref": "#/components/schemas/AetherTargetRollingWindowSize" - }, - "forecastHorizon": { - "$ref": "#/components/schemas/AetherForecastHorizon" - }, - "timeSeriesIdColumnNames": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "frequency": { - "type": "string", - "nullable": true - }, - "featureLags": { - "type": "string", - "nullable": true - }, - "seasonality": { - "$ref": "#/components/schemas/AetherSeasonality" - }, - "shortSeriesHandlingConfig": { - "$ref": "#/components/schemas/AetherShortSeriesHandlingConfiguration" - }, - "useStl": { - "$ref": "#/components/schemas/AetherUseStl" - }, - "targetAggregateFunction": { - "$ref": "#/components/schemas/AetherTargetAggregationFunction" - }, - "cvStepSize": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "featuresUnknownAtForecastTime": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "datasetOutputOptions": { + "$ref": "#/components/schemas/AetherDatasetOutputOptions" + } + }, + "additionalProperties": false + }, + "AetherDatasetOutputOptions": { + "type": "object", + "properties": { + "sourceGlobs": { + "$ref": "#/components/schemas/AetherGlobsOptions" + }, + "pathOnDatastore": { + "type": "string", + "nullable": true + }, + "PathOnDatastoreParameterAssignment": { + "$ref": "#/components/schemas/AetherParameterAssignment" + } + }, + "additionalProperties": false + }, + "AetherDatasetRegistration": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "createNewVersion": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "additionalTransformations": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherDatasetType": { + "enum": [ + "File", + "Tabular" + ], + "type": "string" + }, + "AetherDatastoreSetting": { + "type": "object", + "properties": { + "dataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherDoWhileControlFlowInfo": { + "type": "object", + "properties": { + "outputPortNameToInputPortNamesMapping": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "nullable": true + }, + "conditionOutputPortName": { + "type": "string", + "nullable": true + }, + "runSettings": { + "$ref": "#/components/schemas/AetherDoWhileControlFlowRunSettings" + } + }, + "additionalProperties": false + }, + "AetherDoWhileControlFlowRunSettings": { + "type": "object", + "properties": { + "maxLoopIterationCount": { + "$ref": "#/components/schemas/AetherParameterAssignment" + } + }, + "additionalProperties": false + }, + "AetherDockerSettingConfiguration": { + "type": "object", + "properties": { + "useDocker": { + "type": "boolean", + "nullable": true + }, + "sharedVolumes": { + "type": "boolean", + "nullable": true + }, + "shmSize": { + "type": "string", + "nullable": true + }, + "arguments": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherEarlyTerminationPolicyType": { + "enum": [ + "Bandit", + "MedianStopping", + "TruncationSelection" + ], + "type": "string" + }, + "AetherEntityInterfaceDocumentation": { + "type": "object", + "properties": { + "inputsDocumentation": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "outputsDocumentation": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "parametersDocumentation": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherEntityStatus": { + "enum": [ + "Active", + "Deprecated", + "Disabled" + ], + "type": "string" + }, + "AetherEntrySetting": { + "type": "object", + "properties": { + "file": { + "type": "string", + "nullable": true + }, + "className": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherEnvironmentConfiguration": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + }, + "useEnvironmentDefinition": { + "type": "boolean" + }, + "environmentDefinitionString": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherEsCloudConfiguration": { + "type": "object", + "properties": { + "enableOutputToFileBasedOnDataTypeId": { + "type": "boolean", + "nullable": true }, - "AetherGeneralSettings": { - "type": "object", - "properties": { - "primaryMetric": { - "$ref": "#/components/schemas/AetherPrimaryMetrics" - }, - "taskType": { - "$ref": "#/components/schemas/AetherTaskType" - }, - "logVerbosity": { - "$ref": "#/components/schemas/AetherLogVerbosity" - } - }, - "additionalProperties": false + "amlComputePriorityInternal": { + "$ref": "#/components/schemas/AetherPriorityConfiguration" }, - "AetherGlobsOptions": { - "type": "object", - "properties": { - "globPatterns": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "itpPriorityInternal": { + "$ref": "#/components/schemas/AetherPriorityConfiguration" }, - "AetherGraphControlNode": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "controlType": { - "$ref": "#/components/schemas/AetherControlType" - }, - "controlParameter": { - "$ref": "#/components/schemas/AetherParameterAssignment" - }, - "runAttribution": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "singularityPriorityInternal": { + "$ref": "#/components/schemas/AetherPriorityConfiguration" }, - "AetherGraphControlReferenceNode": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "comment": { - "type": "string", - "nullable": true - }, - "controlFlowType": { - "$ref": "#/components/schemas/AetherControlFlowType" - }, - "referenceNodeId": { - "type": "string", - "nullable": true - }, - "doWhileControlFlowInfo": { - "$ref": "#/components/schemas/AetherDoWhileControlFlowInfo" - }, - "parallelForControlFlowInfo": { - "$ref": "#/components/schemas/AetherParallelForControlFlowInfo" - }, - "runAttribution": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "environment": { + "$ref": "#/components/schemas/AetherEnvironmentConfiguration" }, - "AetherGraphDatasetNode": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "datasetId": { - "type": "string", - "nullable": true - }, - "dataPathParameterName": { - "type": "string", - "nullable": true - }, - "dataSetDefinition": { - "$ref": "#/components/schemas/AetherDataSetDefinition" - } - }, - "additionalProperties": false + "hyperDriveConfiguration": { + "$ref": "#/components/schemas/AetherHyperDriveConfiguration" }, - "AetherGraphEdge": { - "type": "object", - "properties": { - "sourceOutputPort": { - "$ref": "#/components/schemas/AetherPortInfo" - }, - "destinationInputPort": { - "$ref": "#/components/schemas/AetherPortInfo" - } - }, - "additionalProperties": false + "k8sConfig": { + "$ref": "#/components/schemas/AetherK8sConfiguration" }, - "AetherGraphEntity": { - "type": "object", - "properties": { - "moduleNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherGraphModuleNode" - }, - "nullable": true - }, - "datasetNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherGraphDatasetNode" - }, - "nullable": true - }, - "subGraphNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherGraphReferenceNode" - }, - "nullable": true - }, - "controlReferenceNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherGraphControlReferenceNode" - }, - "nullable": true - }, - "controlNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherGraphControlNode" - }, - "nullable": true - }, - "edges": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherGraphEdge" - }, - "nullable": true - }, - "defaultCompute": { - "$ref": "#/components/schemas/AetherComputeSetting" - }, - "defaultDatastore": { - "$ref": "#/components/schemas/AetherDatastoreSetting" - }, - "defaultCloudPriority": { - "$ref": "#/components/schemas/AetherCloudPrioritySetting" - }, - "parentSubGraphModuleIds": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "workspaceId": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - }, - "entityStatus": { - "$ref": "#/components/schemas/AetherEntityStatus" - } - }, - "additionalProperties": false + "resourceConfig": { + "$ref": "#/components/schemas/AetherResourceConfiguration" }, - "AetherGraphModuleNode": { - "type": "object", - "properties": { - "cloudPriority": { - "type": "integer", - "format": "int32" - }, - "defaultDataRetentionHint": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "complianceCluster": { - "type": "string", - "nullable": true - }, - "euclidWorkspaceId": { - "type": "string", - "nullable": true - }, - "attachedModules": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "acceptableMachineClusters": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "customDataLocationId": { - "type": "string", - "nullable": true - }, - "alertTimeoutDuration": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "runconfig": { - "type": "string", - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "moduleId": { - "type": "string", - "nullable": true - }, - "comment": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "moduleParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherParameterAssignment" - }, - "nullable": true - }, - "moduleMetadataParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherParameterAssignment" - }, - "nullable": true - }, - "moduleOutputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherOutputSetting" - }, - "nullable": true - }, - "moduleInputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherInputSetting" - }, - "nullable": true - }, - "useGraphDefaultCompute": { - "type": "boolean" - }, - "useGraphDefaultDatastore": { - "type": "boolean" - }, - "regenerateOutput": { - "type": "boolean" - }, - "controlInputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherControlInput" - }, - "nullable": true - }, - "cloudSettings": { - "$ref": "#/components/schemas/AetherCloudSettings" - }, - "executionPhase": { - "$ref": "#/components/schemas/AetherExecutionPhase" - }, - "runAttribution": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "torchDistributedConfig": { + "$ref": "#/components/schemas/AetherTorchDistributedConfiguration" }, - "AetherGraphReferenceNode": { - "type": "object", - "properties": { - "graphId": { - "type": "string", - "nullable": true - }, - "defaultCompute": { - "$ref": "#/components/schemas/AetherComputeSetting" - }, - "defaultDatastore": { - "$ref": "#/components/schemas/AetherDatastoreSetting" - }, - "id": { - "type": "string", - "nullable": true - }, - "moduleId": { - "type": "string", - "nullable": true - }, - "comment": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "moduleParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherParameterAssignment" - }, - "nullable": true - }, - "moduleMetadataParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherParameterAssignment" - }, - "nullable": true - }, - "moduleOutputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherOutputSetting" - }, - "nullable": true - }, - "moduleInputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherInputSetting" - }, - "nullable": true - }, - "useGraphDefaultCompute": { - "type": "boolean" - }, - "useGraphDefaultDatastore": { - "type": "boolean" - }, - "regenerateOutput": { - "type": "boolean" - }, - "controlInputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherControlInput" - }, - "nullable": true - }, - "cloudSettings": { - "$ref": "#/components/schemas/AetherCloudSettings" - }, - "executionPhase": { - "$ref": "#/components/schemas/AetherExecutionPhase" - }, - "runAttribution": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "targetSelectorConfig": { + "$ref": "#/components/schemas/AetherTargetSelectorConfiguration" }, - "AetherHdfsReference": { - "type": "object", - "properties": { - "amlDataStoreName": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "dockerConfig": { + "$ref": "#/components/schemas/AetherDockerSettingConfiguration" }, - "AetherHdiClusterComputeInfo": { - "type": "object", - "properties": { - "address": { - "type": "string", - "nullable": true - }, - "username": { - "type": "string", - "nullable": true - }, - "password": { - "type": "string", - "nullable": true - }, - "privateKey": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true }, - "AetherHdiRunConfiguration": { - "type": "object", - "properties": { - "file": { - "type": "string", - "nullable": true - }, - "className": { - "type": "string", - "nullable": true - }, - "files": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "archives": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "jars": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "pyFiles": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "computeName": { - "type": "string", - "nullable": true - }, - "queue": { - "type": "string", - "nullable": true - }, - "driverMemory": { - "type": "string", - "nullable": true - }, - "driverCores": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "executorMemory": { - "type": "string", - "nullable": true - }, - "executorCores": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "numberExecutors": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "conf": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "maxRunDurationSeconds": { + "type": "integer", + "format": "int32", + "nullable": true }, - "AetherHyperDriveConfiguration": { - "type": "object", - "properties": { - "hyperDriveRunConfig": { - "type": "string", - "nullable": true - }, - "primaryMetricGoal": { - "type": "string", - "nullable": true - }, - "primaryMetricName": { - "type": "string", - "nullable": true - }, - "arguments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherArgumentAssignment" - }, - "nullable": true - } - }, - "additionalProperties": false + "identity": { + "$ref": "#/components/schemas/AetherIdentitySetting" }, - "AetherIdentitySetting": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/AetherIdentityType" - }, - "clientId": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "objectId": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "msiResourceId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "applicationEndpoints": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ApplicationEndpointConfiguration" + }, + "nullable": true }, - "AetherIdentityType": { - "enum": [ - "UserIdentity", - "Managed", - "AMLToken" - ], + "runConfig": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherExecutionEnvironment": { + "enum": [ + "ExeWorkerMachine", + "DockerContainerWithoutNetwork", + "DockerContainerWithNetwork", + "HyperVWithoutNetwork", + "HyperVWithNetwork" + ], + "type": "string" + }, + "AetherExecutionPhase": { + "enum": [ + "Execution", + "Initialization", + "Finalization" + ], + "type": "string" + }, + "AetherExportDataTask": { + "type": "object", + "properties": { + "DataTransferSink": { + "$ref": "#/components/schemas/AetherDataTransferSink" + } + }, + "additionalProperties": false + }, + "AetherFeaturizationMode": { + "enum": [ + "Auto", + "Custom", + "Off" + ], + "type": "string" + }, + "AetherFeaturizationSettings": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/AetherFeaturizationMode" + }, + "blockedTransformers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "columnPurposes": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "dropColumns": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true + }, + "transformerParams": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherColumnTransformer" + }, + "nullable": true + }, + "nullable": true + }, + "datasetLanguage": { + "type": "string", + "nullable": true + }, + "enableDnnFeaturization": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherFileBasedPathType": { + "enum": [ + "Unknown", + "File", + "Folder" + ], + "type": "string" + }, + "AetherFileSystem": { + "type": "object", + "properties": { + "connection": { + "type": "string", + "nullable": true + }, + "path": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherForecastHorizon": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/AetherForecastHorizonMode" + }, + "value": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "AetherForecastHorizonMode": { + "enum": [ + "Auto", + "Custom" + ], + "type": "string" + }, + "AetherForecastingSettings": { + "type": "object", + "properties": { + "countryOrRegionForHolidays": { + "type": "string", + "nullable": true }, - "AetherImportDataTask": { - "type": "object", - "properties": { - "DataTransferSource": { - "$ref": "#/components/schemas/AetherDataTransferSource" - } - }, - "additionalProperties": false + "timeColumnName": { + "type": "string", + "nullable": true }, - "AetherInputSetting": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "dataStoreMode": { - "$ref": "#/components/schemas/AetherDataStoreMode" - }, - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "options": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "additionalTransformations": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "targetLags": { + "$ref": "#/components/schemas/AetherTargetLags" }, - "AetherInteractiveConfig": { - "type": "object", - "properties": { - "isSSHEnabled": { - "type": "boolean", - "nullable": true - }, - "sshPublicKey": { - "type": "string", - "nullable": true - }, - "isIPythonEnabled": { - "type": "boolean", - "nullable": true - }, - "isTensorBoardEnabled": { - "type": "boolean", - "nullable": true - }, - "interactivePort": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "targetRollingWindowSize": { + "$ref": "#/components/schemas/AetherTargetRollingWindowSize" }, - "AetherK8sConfiguration": { - "type": "object", - "properties": { - "maxRetryCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "resourceConfiguration": { - "$ref": "#/components/schemas/AetherResourceConfig" - }, - "priorityConfiguration": { - "$ref": "#/components/schemas/AetherPriorityConfig" - }, - "interactiveConfiguration": { - "$ref": "#/components/schemas/AetherInteractiveConfig" - } - }, - "additionalProperties": false + "forecastHorizon": { + "$ref": "#/components/schemas/AetherForecastHorizon" }, - "AetherLegacyDataPath": { - "type": "object", - "properties": { - "dataStoreName": { - "type": "string", - "nullable": true - }, - "dataStoreMode": { - "$ref": "#/components/schemas/AetherDataStoreMode" - }, - "relativePath": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "timeSeriesIdColumnNames": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "AetherLimitSettings": { - "type": "object", - "properties": { - "maxTrials": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "timeout": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "trialTimeout": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "maxConcurrentTrials": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "maxCoresPerTrial": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "exitScore": { - "type": "number", - "format": "double", - "nullable": true - }, - "enableEarlyTermination": { - "type": "boolean", - "nullable": true - }, - "maxNodes": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false - }, - "AetherLogVerbosity": { - "enum": [ - "NotSet", - "Debug", - "Info", - "Warning", - "Error", - "Critical" - ], - "type": "string" + "frequency": { + "type": "string", + "nullable": true }, - "AetherMlcComputeInfo": { - "type": "object", - "properties": { - "mlcComputeType": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "featureLags": { + "type": "string", + "nullable": true }, - "AetherModuleDeploymentSource": { - "enum": [ - "Client", - "AutoDeployment", - "Vsts" - ], - "type": "string" + "seasonality": { + "$ref": "#/components/schemas/AetherSeasonality" }, - "AetherModuleEntity": { - "type": "object", - "properties": { - "lastUpdatedBy": { - "$ref": "#/components/schemas/AetherCreatedBy" - }, - "displayName": { - "type": "string", - "nullable": true - }, - "moduleExecutionType": { - "type": "string", - "nullable": true - }, - "moduleType": { - "$ref": "#/components/schemas/AetherModuleType" - }, - "moduleTypeVersion": { - "type": "string", - "nullable": true - }, - "resourceRequirements": { - "$ref": "#/components/schemas/AetherResourceModel" - }, - "machineCluster": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "defaultComplianceCluster": { - "type": "string", - "nullable": true - }, - "repositoryType": { - "$ref": "#/components/schemas/AetherRepositoryType" - }, - "relativePathToSourceCode": { - "type": "string", - "nullable": true - }, - "commitId": { - "type": "string", - "nullable": true - }, - "codeReviewLink": { - "type": "string", - "nullable": true - }, - "unitTestsAvailable": { - "type": "boolean" - }, - "isCompressed": { - "type": "boolean" - }, - "executionEnvironment": { - "$ref": "#/components/schemas/AetherExecutionEnvironment" - }, - "isOutputMarkupEnabled": { - "type": "boolean" - }, - "dockerImageId": { - "type": "string", - "nullable": true - }, - "dockerImageReference": { - "type": "string", - "nullable": true - }, - "dockerImageSecurityGroups": { - "type": "string", - "nullable": true - }, - "extendedProperties": { - "$ref": "#/components/schemas/AetherModuleExtendedProperties" - }, - "deploymentSource": { - "$ref": "#/components/schemas/AetherModuleDeploymentSource" - }, - "deploymentSourceMetadata": { - "type": "string", - "nullable": true - }, - "identifierHash": { - "type": "string", - "nullable": true - }, - "identifierHashV2": { - "type": "string", - "nullable": true - }, - "kvTags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "createdBy": { - "$ref": "#/components/schemas/AetherCreatedBy" - }, - "runconfig": { - "type": "string", - "nullable": true - }, - "cloudSettings": { - "$ref": "#/components/schemas/AetherCloudSettings" - }, - "category": { - "type": "string", - "nullable": true - }, - "stepType": { - "type": "string", - "nullable": true - }, - "stage": { - "type": "string", - "nullable": true - }, - "uploadState": { - "$ref": "#/components/schemas/AetherUploadState" - }, - "sourceCodeLocation": { - "type": "string", - "nullable": true - }, - "sizeInBytes": { - "type": "integer", - "format": "int64" - }, - "downloadLocation": { - "type": "string", - "nullable": true - }, - "dataLocation": { - "$ref": "#/components/schemas/AetherDataLocation" - }, - "scriptingRuntimeId": { - "type": "string", - "nullable": true - }, - "interfaceDocumentation": { - "$ref": "#/components/schemas/AetherEntityInterfaceDocumentation" - }, - "isEyesOn": { - "type": "boolean" - }, - "complianceCluster": { - "type": "string", - "nullable": true - }, - "isDeterministic": { - "type": "boolean" - }, - "informationUrl": { - "type": "string", - "nullable": true - }, - "isExperimentIdInParameters": { - "type": "boolean" - }, - "interfaceString": { - "type": "string", - "nullable": true - }, - "defaultParameters": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "structuredInterface": { - "$ref": "#/components/schemas/AetherStructuredInterface" - }, - "familyId": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "hash": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "sequenceNumberInFamily": { - "type": "integer", - "format": "int32" - }, - "owner": { - "type": "string", - "nullable": true - }, - "azureTenantId": { - "type": "string", - "nullable": true - }, - "azureUserId": { - "type": "string", - "nullable": true - }, - "collaborators": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "workspaceId": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - }, - "entityStatus": { - "$ref": "#/components/schemas/AetherEntityStatus" - } - }, - "additionalProperties": false + "shortSeriesHandlingConfig": { + "$ref": "#/components/schemas/AetherShortSeriesHandlingConfiguration" }, - "AetherModuleExtendedProperties": { - "type": "object", - "properties": { - "autoDeployedArtifact": { - "$ref": "#/components/schemas/AetherBuildArtifactInfo" - }, - "scriptNeedsApproval": { - "type": "boolean" - } - }, - "additionalProperties": false + "useStl": { + "$ref": "#/components/schemas/AetherUseStl" }, - "AetherModuleHashVersion": { - "enum": [ - "IdentifierHash", - "IdentifierHashV2" - ], - "type": "string" + "targetAggregateFunction": { + "$ref": "#/components/schemas/AetherTargetAggregationFunction" }, - "AetherModuleType": { - "enum": [ - "None", - "BatchInferencing" - ], - "type": "string" + "cvStepSize": { + "type": "integer", + "format": "int32", + "nullable": true }, - "AetherNCrossValidationMode": { - "enum": [ - "Auto", - "Custom" - ], + "featuresUnknownAtForecastTime": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherGeneralSettings": { + "type": "object", + "properties": { + "primaryMetric": { + "$ref": "#/components/schemas/AetherPrimaryMetrics" }, - "AetherNCrossValidations": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/components/schemas/AetherNCrossValidationMode" - }, - "value": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "taskType": { + "$ref": "#/components/schemas/AetherTaskType" }, - "AetherOutputSetting": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "dataStoreName": { - "type": "string", - "nullable": true - }, - "DataStoreNameParameterAssignment": { - "$ref": "#/components/schemas/AetherParameterAssignment" - }, - "dataStoreMode": { - "$ref": "#/components/schemas/AetherDataStoreMode" - }, - "DataStoreModeParameterAssignment": { - "$ref": "#/components/schemas/AetherParameterAssignment" - }, - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "PathOnComputeParameterAssignment": { - "$ref": "#/components/schemas/AetherParameterAssignment" - }, - "overwrite": { - "type": "boolean" - }, - "dataReferenceName": { - "type": "string", - "nullable": true - }, - "webServicePort": { - "type": "string", - "nullable": true - }, - "datasetRegistration": { - "$ref": "#/components/schemas/AetherDatasetRegistration" - }, - "datasetOutputOptions": { - "$ref": "#/components/schemas/AetherDatasetOutputOptions" - }, - "AssetOutputSettings": { - "$ref": "#/components/schemas/AetherAssetOutputSettings" - }, - "parameterName": { - "type": "string", - "nullable": true - }, - "AssetOutputSettingsParameterName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "logVerbosity": { + "$ref": "#/components/schemas/AetherLogVerbosity" + } + }, + "additionalProperties": false + }, + "AetherGlobsOptions": { + "type": "object", + "properties": { + "globPatterns": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherGraphControlNode": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "controlType": { + "$ref": "#/components/schemas/AetherControlType" + }, + "controlParameter": { + "$ref": "#/components/schemas/AetherParameterAssignment" + }, + "runAttribution": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherGraphControlReferenceNode": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true }, - "AetherParallelForControlFlowInfo": { - "type": "object", - "properties": { - "parallelForItemsInput": { - "$ref": "#/components/schemas/AetherParameterAssignment" - } - }, - "additionalProperties": false + "name": { + "type": "string", + "nullable": true }, - "AetherParameterAssignment": { - "type": "object", - "properties": { - "valueType": { - "$ref": "#/components/schemas/AetherParameterValueType" - }, - "assignmentsToConcatenate": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherParameterAssignment" - }, - "nullable": true - }, - "dataPathAssignment": { - "$ref": "#/components/schemas/AetherLegacyDataPath" - }, - "dataSetDefinitionValueAssignment": { - "$ref": "#/components/schemas/AetherDataSetDefinitionValue" - }, - "name": { - "type": "string", - "nullable": true - }, - "value": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "AetherParameterType": { - "enum": [ - "Int", - "Double", - "Bool", - "String", - "Undefined" - ], - "type": "string" - }, - "AetherParameterValueType": { - "enum": [ - "Literal", - "GraphParameterName", - "Concatenate", - "Input", - "DataPath", - "DataSetDefinition" - ], - "type": "string" - }, - "AetherPhillyHdfsReference": { - "type": "object", - "properties": { - "cluster": { - "type": "string", - "nullable": true - }, - "vc": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "comment": { + "type": "string", + "nullable": true }, - "AetherPortInfo": { - "type": "object", - "properties": { - "nodeId": { - "type": "string", - "nullable": true - }, - "portName": { - "type": "string", - "nullable": true - }, - "graphPortName": { - "type": "string", - "nullable": true - }, - "isParameter": { - "type": "boolean" - }, - "webServicePort": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "AetherPrimaryMetrics": { - "enum": [ - "AUCWeighted", - "Accuracy", - "NormMacroRecall", - "AveragePrecisionScoreWeighted", - "PrecisionScoreWeighted", - "SpearmanCorrelation", - "NormalizedRootMeanSquaredError", - "R2Score", - "NormalizedMeanAbsoluteError", - "NormalizedRootMeanSquaredLogError", - "MeanAveragePrecision", - "Iou" - ], - "type": "string" - }, - "AetherPriorityConfig": { - "type": "object", - "properties": { - "jobPriority": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "isPreemptible": { - "type": "boolean", - "nullable": true - }, - "nodeCountSet": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - }, - "scaleInterval": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "controlFlowType": { + "$ref": "#/components/schemas/AetherControlFlowType" }, - "AetherPriorityConfiguration": { - "type": "object", - "properties": { - "cloudPriority": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "stringTypePriority": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "referenceNodeId": { + "type": "string", + "nullable": true }, - "AetherRegisteredDataSetReference": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "doWhileControlFlowInfo": { + "$ref": "#/components/schemas/AetherDoWhileControlFlowInfo" }, - "AetherRemoteDockerComputeInfo": { - "type": "object", - "properties": { - "address": { - "type": "string", - "nullable": true - }, - "username": { - "type": "string", - "nullable": true - }, - "password": { - "type": "string", - "nullable": true - }, - "privateKey": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "parallelForControlFlowInfo": { + "$ref": "#/components/schemas/AetherParallelForControlFlowInfo" }, - "AetherRepositoryType": { - "enum": [ - "None", - "Other", - "Git", - "SourceDepot", - "Cosmos" - ], + "runAttribution": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherGraphDatasetNode": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "datasetId": { + "type": "string", + "nullable": true + }, + "dataPathParameterName": { + "type": "string", + "nullable": true + }, + "dataSetDefinition": { + "$ref": "#/components/schemas/AetherDataSetDefinition" + } + }, + "additionalProperties": false + }, + "AetherGraphEdge": { + "type": "object", + "properties": { + "sourceOutputPort": { + "$ref": "#/components/schemas/AetherPortInfo" + }, + "destinationInputPort": { + "$ref": "#/components/schemas/AetherPortInfo" + } + }, + "additionalProperties": false + }, + "AetherGraphEntity": { + "type": "object", + "properties": { + "moduleNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherGraphModuleNode" + }, + "nullable": true + }, + "datasetNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherGraphDatasetNode" + }, + "nullable": true + }, + "subGraphNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherGraphReferenceNode" + }, + "nullable": true + }, + "controlReferenceNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherGraphControlReferenceNode" + }, + "nullable": true + }, + "controlNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherGraphControlNode" + }, + "nullable": true + }, + "edges": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherGraphEdge" + }, + "nullable": true + }, + "defaultCompute": { + "$ref": "#/components/schemas/AetherComputeSetting" + }, + "defaultDatastore": { + "$ref": "#/components/schemas/AetherDatastoreSetting" + }, + "defaultCloudPriority": { + "$ref": "#/components/schemas/AetherCloudPrioritySetting" + }, + "parentSubGraphModuleIds": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "AetherResourceAssignment": { - "type": "object", - "properties": { - "attributes": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AetherResourceAttributeAssignment" - }, - "nullable": true - } - }, - "additionalProperties": false + "id": { + "type": "string", + "nullable": true }, - "AetherResourceAttributeAssignment": { - "type": "object", - "properties": { - "attribute": { - "$ref": "#/components/schemas/AetherResourceAttributeDefinition" - }, - "operator": { - "$ref": "#/components/schemas/AetherResourceOperator" - }, - "value": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "workspaceId": { + "type": "string", + "nullable": true }, - "AetherResourceAttributeDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "$ref": "#/components/schemas/AetherResourceValueType" - }, - "units": { - "type": "string", - "nullable": true - }, - "allowedOperators": { - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherResourceOperator" - }, - "nullable": true - } - }, - "additionalProperties": false + "etag": { + "type": "string", + "nullable": true }, - "AetherResourceConfig": { - "type": "object", - "properties": { - "gpuCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "cpuCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "memoryRequestInGB": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "AetherResourceConfiguration": { - "type": "object", - "properties": { - "instanceCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "instanceType": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - }, - "locations": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "instancePriority": { - "type": "string", - "nullable": true - }, - "quotaEnforcementResourceId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "createdDate": { + "type": "string", + "format": "date-time" }, - "AetherResourceModel": { - "type": "object", - "properties": { - "resources": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherResourceAssignment" - }, - "nullable": true - } - }, - "additionalProperties": false + "lastModifiedDate": { + "type": "string", + "format": "date-time" }, - "AetherResourceOperator": { - "enum": [ - "Equal", - "Contain", - "GreaterOrEqual" - ], + "entityStatus": { + "$ref": "#/components/schemas/AetherEntityStatus" + } + }, + "additionalProperties": false + }, + "AetherGraphModuleNode": { + "type": "object", + "properties": { + "cloudPriority": { + "type": "integer", + "format": "int32" + }, + "defaultDataRetentionHint": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "complianceCluster": { + "type": "string", + "nullable": true + }, + "euclidWorkspaceId": { + "type": "string", + "nullable": true + }, + "attachedModules": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "AetherResourceValueType": { - "enum": [ - "String", - "Double" - ], + "acceptableMachineClusters": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "customDataLocationId": { + "type": "string", + "nullable": true + }, + "alertTimeoutDuration": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "runconfig": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "moduleId": { + "type": "string", + "nullable": true + }, + "comment": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "moduleParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherParameterAssignment" + }, + "nullable": true + }, + "moduleMetadataParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherParameterAssignment" + }, + "nullable": true + }, + "moduleOutputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherOutputSetting" + }, + "nullable": true + }, + "moduleInputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherInputSetting" + }, + "nullable": true + }, + "useGraphDefaultCompute": { + "type": "boolean" + }, + "useGraphDefaultDatastore": { + "type": "boolean" + }, + "regenerateOutput": { + "type": "boolean" + }, + "controlInputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherControlInput" + }, + "nullable": true + }, + "cloudSettings": { + "$ref": "#/components/schemas/AetherCloudSettings" + }, + "executionPhase": { + "$ref": "#/components/schemas/AetherExecutionPhase" + }, + "runAttribution": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherGraphReferenceNode": { + "type": "object", + "properties": { + "graphId": { + "type": "string", + "nullable": true + }, + "defaultCompute": { + "$ref": "#/components/schemas/AetherComputeSetting" + }, + "defaultDatastore": { + "$ref": "#/components/schemas/AetherDatastoreSetting" + }, + "id": { + "type": "string", + "nullable": true + }, + "moduleId": { + "type": "string", + "nullable": true + }, + "comment": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "moduleParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherParameterAssignment" + }, + "nullable": true + }, + "moduleMetadataParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherParameterAssignment" + }, + "nullable": true + }, + "moduleOutputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherOutputSetting" + }, + "nullable": true + }, + "moduleInputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherInputSetting" + }, + "nullable": true + }, + "useGraphDefaultCompute": { + "type": "boolean" + }, + "useGraphDefaultDatastore": { + "type": "boolean" + }, + "regenerateOutput": { + "type": "boolean" + }, + "controlInputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherControlInput" + }, + "nullable": true + }, + "cloudSettings": { + "$ref": "#/components/schemas/AetherCloudSettings" + }, + "executionPhase": { + "$ref": "#/components/schemas/AetherExecutionPhase" + }, + "runAttribution": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherHdfsReference": { + "type": "object", + "properties": { + "amlDataStoreName": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherHdiClusterComputeInfo": { + "type": "object", + "properties": { + "address": { + "type": "string", + "nullable": true + }, + "username": { + "type": "string", + "nullable": true + }, + "password": { + "type": "string", + "nullable": true + }, + "privateKey": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherHdiRunConfiguration": { + "type": "object", + "properties": { + "file": { + "type": "string", + "nullable": true + }, + "className": { + "type": "string", + "nullable": true + }, + "files": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "AetherResourcesSetting": { - "type": "object", - "properties": { - "instanceSize": { - "type": "string", - "nullable": true - }, - "sparkVersion": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "archives": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "AetherSamplingAlgorithmType": { - "enum": [ - "Random", - "Grid", - "Bayesian" - ], + "jars": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "AetherSavedDataSetReference": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "pyFiles": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "computeName": { + "type": "string", + "nullable": true + }, + "queue": { + "type": "string", + "nullable": true + }, + "driverMemory": { + "type": "string", + "nullable": true + }, + "driverCores": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "executorMemory": { + "type": "string", + "nullable": true + }, + "executorCores": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "numberExecutors": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "conf": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherHyperDriveConfiguration": { + "type": "object", + "properties": { + "hyperDriveRunConfig": { + "type": "string", + "nullable": true + }, + "primaryMetricGoal": { + "type": "string", + "nullable": true + }, + "primaryMetricName": { + "type": "string", + "nullable": true + }, + "arguments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherArgumentAssignment" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherIdentitySetting": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/AetherIdentityType" + }, + "clientId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "objectId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "msiResourceId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherIdentityType": { + "enum": [ + "UserIdentity", + "Managed", + "AMLToken" + ], + "type": "string" + }, + "AetherImportDataTask": { + "type": "object", + "properties": { + "DataTransferSource": { + "$ref": "#/components/schemas/AetherDataTransferSource" + } + }, + "additionalProperties": false + }, + "AetherInputSetting": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "dataStoreMode": { + "$ref": "#/components/schemas/AetherDataStoreMode" + }, + "pathOnCompute": { + "type": "string", + "nullable": true + }, + "options": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "AetherScopeCloudConfiguration": { - "type": "object", - "properties": { - "inputPathSuffixes": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AetherArgumentAssignment" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputPathSuffixes": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AetherArgumentAssignment" - }, - "description": "This is a dictionary", - "nullable": true - }, - "userAlias": { - "type": "string", - "nullable": true - }, - "tokens": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "autoToken": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "vcp": { - "type": "number", - "format": "float", - "nullable": true - } - }, - "additionalProperties": false + "additionalTransformations": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherInteractiveConfig": { + "type": "object", + "properties": { + "isSSHEnabled": { + "type": "boolean", + "nullable": true + }, + "sshPublicKey": { + "type": "string", + "nullable": true + }, + "isIPythonEnabled": { + "type": "boolean", + "nullable": true + }, + "isTensorBoardEnabled": { + "type": "boolean", + "nullable": true + }, + "interactivePort": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherK8sConfiguration": { + "type": "object", + "properties": { + "maxRetryCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "resourceConfiguration": { + "$ref": "#/components/schemas/AetherResourceConfig" + }, + "priorityConfiguration": { + "$ref": "#/components/schemas/AetherPriorityConfig" + }, + "interactiveConfiguration": { + "$ref": "#/components/schemas/AetherInteractiveConfig" + } + }, + "additionalProperties": false + }, + "AetherLegacyDataPath": { + "type": "object", + "properties": { + "dataStoreName": { + "type": "string", + "nullable": true + }, + "dataStoreMode": { + "$ref": "#/components/schemas/AetherDataStoreMode" + }, + "relativePath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherLimitSettings": { + "type": "object", + "properties": { + "maxTrials": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "timeout": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "trialTimeout": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "maxConcurrentTrials": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxCoresPerTrial": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "exitScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "enableEarlyTermination": { + "type": "boolean", + "nullable": true + }, + "maxNodes": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherLogVerbosity": { + "enum": [ + "NotSet", + "Debug", + "Info", + "Warning", + "Error", + "Critical" + ], + "type": "string" + }, + "AetherMlcComputeInfo": { + "type": "object", + "properties": { + "mlcComputeType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherModuleDeploymentSource": { + "enum": [ + "Client", + "AutoDeployment", + "Vsts" + ], + "type": "string" + }, + "AetherModuleEntity": { + "type": "object", + "properties": { + "lastUpdatedBy": { + "$ref": "#/components/schemas/AetherCreatedBy" }, - "AetherSeasonality": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/components/schemas/AetherSeasonalityMode" - }, - "value": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "displayName": { + "type": "string", + "nullable": true }, - "AetherSeasonalityMode": { - "enum": [ - "Auto", - "Custom" - ], - "type": "string" + "moduleExecutionType": { + "type": "string", + "nullable": true }, - "AetherShortSeriesHandlingConfiguration": { - "enum": [ - "Auto", - "Pad", - "Drop" - ], - "type": "string" + "moduleType": { + "$ref": "#/components/schemas/AetherModuleType" }, - "AetherSqlDataPath": { - "type": "object", - "properties": { - "sqlTableName": { - "type": "string", - "nullable": true - }, - "sqlQuery": { - "type": "string", - "nullable": true - }, - "sqlStoredProcedureName": { - "type": "string", - "nullable": true - }, - "sqlStoredProcedureParams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherStoredProcedureParameter" - }, - "nullable": true - } - }, - "additionalProperties": false + "moduleTypeVersion": { + "type": "string", + "nullable": true }, - "AetherStackEnsembleSettings": { - "type": "object", - "properties": { - "stackMetaLearnerType": { - "$ref": "#/components/schemas/AetherStackMetaLearnerType" - }, - "stackMetaLearnerTrainPercentage": { - "type": "number", - "format": "double", - "nullable": true - }, - "stackMetaLearnerKWargs": { - "nullable": true - } - }, - "additionalProperties": false - }, - "AetherStackMetaLearnerType": { - "enum": [ - "None", - "LogisticRegression", - "LogisticRegressionCV", - "LightGBMClassifier", - "ElasticNet", - "ElasticNetCV", - "LightGBMRegressor", - "LinearRegression" - ], - "type": "string" - }, - "AetherStoredProcedureParameter": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "value": { - "type": "string", - "nullable": true - }, - "type": { - "$ref": "#/components/schemas/AetherStoredProcedureParameterType" - } - }, - "additionalProperties": false + "resourceRequirements": { + "$ref": "#/components/schemas/AetherResourceModel" }, - "AetherStoredProcedureParameterType": { - "enum": [ - "String", - "Int", - "Decimal", - "Guid", - "Boolean", - "Date" - ], + "machineCluster": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "AetherStructuredInterface": { - "type": "object", - "properties": { - "commandLinePattern": { - "type": "string", - "nullable": true - }, - "inputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherStructuredInterfaceInput" - }, - "nullable": true - }, - "outputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherStructuredInterfaceOutput" - }, - "nullable": true - }, - "controlOutputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherControlOutput" - }, - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherStructuredInterfaceParameter" - }, - "nullable": true - }, - "metadataParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherStructuredInterfaceParameter" - }, - "nullable": true - }, - "arguments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherArgumentAssignment" - }, - "nullable": true - } - }, - "additionalProperties": false + "defaultComplianceCluster": { + "type": "string", + "nullable": true }, - "AetherStructuredInterfaceInput": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "label": { - "type": "string", - "nullable": true - }, - "dataTypeIdsList": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "isOptional": { - "type": "boolean" - }, - "description": { - "type": "string", - "nullable": true - }, - "skipProcessing": { - "type": "boolean" - }, - "isResource": { - "type": "boolean" - }, - "dataStoreMode": { - "$ref": "#/components/schemas/AetherDataStoreMode" - }, - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "overwrite": { - "type": "boolean" - }, - "dataReferenceName": { - "type": "string", - "nullable": true - }, - "datasetTypes": { - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/components/schemas/AetherDatasetType" - }, - "nullable": true - }, - "additionalTransformations": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "repositoryType": { + "$ref": "#/components/schemas/AetherRepositoryType" }, - "AetherStructuredInterfaceOutput": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "label": { - "type": "string", - "nullable": true - }, - "dataTypeId": { - "type": "string", - "nullable": true - }, - "passThroughDataTypeInputName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "skipProcessing": { - "type": "boolean" - }, - "isArtifact": { - "type": "boolean" - }, - "dataStoreName": { - "type": "string", - "nullable": true - }, - "dataStoreMode": { - "$ref": "#/components/schemas/AetherDataStoreMode" - }, - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "overwrite": { - "type": "boolean" - }, - "dataReferenceName": { - "type": "string", - "nullable": true - }, - "trainingOutput": { - "$ref": "#/components/schemas/AetherTrainingOutput" - }, - "datasetOutput": { - "$ref": "#/components/schemas/AetherDatasetOutput" - }, - "AssetOutputSettings": { - "$ref": "#/components/schemas/AetherAssetOutputSettings" - }, - "earlyAvailable": { - "type": "boolean" - } - }, - "additionalProperties": false + "relativePathToSourceCode": { + "type": "string", + "nullable": true }, - "AetherStructuredInterfaceParameter": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "label": { - "type": "string", - "nullable": true - }, - "parameterType": { - "$ref": "#/components/schemas/AetherParameterType" - }, - "isOptional": { - "type": "boolean" - }, - "defaultValue": { - "type": "string", - "nullable": true - }, - "lowerBound": { - "type": "string", - "nullable": true - }, - "upperBound": { - "type": "string", - "nullable": true - }, - "enumValues": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "enumValuesToArgumentStrings": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "setEnvironmentVariable": { - "type": "boolean" - }, - "environmentVariableOverride": { - "type": "string", - "nullable": true - }, - "enabledByParameterName": { - "type": "string", - "nullable": true - }, - "enabledByParameterValues": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "uiHint": { - "$ref": "#/components/schemas/AetherUIParameterHint" - }, - "groupNames": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "argumentName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "commitId": { + "type": "string", + "nullable": true }, - "AetherSubGraphConfiguration": { - "type": "object", - "properties": { - "graphId": { - "type": "string", - "nullable": true - }, - "graphDraftId": { - "type": "string", - "nullable": true - }, - "defaultComputeInternal": { - "$ref": "#/components/schemas/AetherComputeSetting" - }, - "defaultDatastoreInternal": { - "$ref": "#/components/schemas/AetherDatastoreSetting" - }, - "DefaultCloudPriority": { - "$ref": "#/components/schemas/AetherCloudPrioritySetting" - }, - "UserAlias": { - "type": "string", - "nullable": true - }, - "IsDynamic": { - "type": "boolean", - "default": false, - "nullable": true - } - }, - "additionalProperties": false + "codeReviewLink": { + "type": "string", + "nullable": true }, - "AetherSweepEarlyTerminationPolicy": { - "type": "object", - "properties": { - "policyType": { - "$ref": "#/components/schemas/AetherEarlyTerminationPolicyType" - }, - "evaluationInterval": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "delayEvaluation": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "slackFactor": { - "type": "number", - "format": "float", - "nullable": true - }, - "slackAmount": { - "type": "number", - "format": "float", - "nullable": true - }, - "truncationPercentage": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "unitTestsAvailable": { + "type": "boolean" }, - "AetherSweepSettings": { - "type": "object", - "properties": { - "limits": { - "$ref": "#/components/schemas/AetherSweepSettingsLimits" - }, - "searchSpace": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "nullable": true - }, - "samplingAlgorithm": { - "$ref": "#/components/schemas/AetherSamplingAlgorithmType" - }, - "earlyTermination": { - "$ref": "#/components/schemas/AetherSweepEarlyTerminationPolicy" - } - }, - "additionalProperties": false + "isCompressed": { + "type": "boolean" }, - "AetherSweepSettingsLimits": { - "type": "object", - "properties": { - "maxTotalTrials": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "maxConcurrentTrials": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "executionEnvironment": { + "$ref": "#/components/schemas/AetherExecutionEnvironment" }, - "AetherTabularTrainingMode": { - "enum": [ - "Distributed", - "NonDistributed", - "Auto" - ], - "type": "string" + "isOutputMarkupEnabled": { + "type": "boolean" }, - "AetherTargetAggregationFunction": { - "enum": [ - "Sum", - "Max", - "Min", - "Mean" - ], - "type": "string" + "dockerImageId": { + "type": "string", + "nullable": true }, - "AetherTargetLags": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/components/schemas/AetherTargetLagsMode" - }, - "values": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - } - }, - "additionalProperties": false + "dockerImageReference": { + "type": "string", + "nullable": true }, - "AetherTargetLagsMode": { - "enum": [ - "Auto", - "Custom" - ], - "type": "string" + "dockerImageSecurityGroups": { + "type": "string", + "nullable": true }, - "AetherTargetRollingWindowSize": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/components/schemas/AetherTargetRollingWindowSizeMode" - }, - "value": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "extendedProperties": { + "$ref": "#/components/schemas/AetherModuleExtendedProperties" }, - "AetherTargetRollingWindowSizeMode": { - "enum": [ - "Auto", - "Custom" - ], - "type": "string" + "deploymentSource": { + "$ref": "#/components/schemas/AetherModuleDeploymentSource" }, - "AetherTargetSelectorConfiguration": { - "type": "object", - "properties": { - "lowPriorityVMTolerant": { - "type": "boolean" - }, - "clusterBlockList": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "computeType": { - "type": "string", - "nullable": true - }, - "instanceType": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "instanceTypes": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "myResourceOnly": { - "type": "boolean" - }, - "planId": { - "type": "string", - "nullable": true - }, - "planRegionId": { - "type": "string", - "nullable": true - }, - "region": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "regions": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "vcBlockList": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "AetherTaskType": { - "enum": [ - "Classification", - "Regression", - "Forecasting", - "ImageClassification", - "ImageClassificationMultilabel", - "ImageObjectDetection", - "ImageInstanceSegmentation", - "TextClassification", - "TextMultiLabeling", - "TextNER", - "TextClassificationMultilabel" - ], - "type": "string" - }, - "AetherTestDataSettings": { - "type": "object", - "properties": { - "testDataSize": { - "type": "number", - "format": "double", - "nullable": true - } - }, - "additionalProperties": false + "deploymentSourceMetadata": { + "type": "string", + "nullable": true }, - "AetherTorchDistributedConfiguration": { - "type": "object", - "properties": { - "processCountPerNode": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "identifierHash": { + "type": "string", + "nullable": true }, - "AetherTrainingOutput": { - "type": "object", - "properties": { - "trainingOutputType": { - "$ref": "#/components/schemas/AetherTrainingOutputType" - }, - "iteration": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "metric": { - "type": "string", - "nullable": true - }, - "modelFile": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "identifierHashV2": { + "type": "string", + "nullable": true }, - "AetherTrainingOutputType": { - "enum": [ - "Metrics", - "Model" - ], + "kvTags": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "AetherTrainingSettings": { - "type": "object", - "properties": { - "blockListModels": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "allowListModels": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "enableDnnTraining": { - "type": "boolean", - "nullable": true - }, - "enableOnnxCompatibleModels": { - "type": "boolean", - "nullable": true - }, - "stackEnsembleSettings": { - "$ref": "#/components/schemas/AetherStackEnsembleSettings" - }, - "enableStackEnsemble": { - "type": "boolean", - "nullable": true - }, - "enableVoteEnsemble": { - "type": "boolean", - "nullable": true - }, - "ensembleModelDownloadTimeout": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "enableModelExplainability": { - "type": "boolean", - "nullable": true - }, - "trainingMode": { - "$ref": "#/components/schemas/AetherTabularTrainingMode" - } - }, - "additionalProperties": false + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "AetherUIAzureOpenAIDeploymentNameSelector": { - "type": "object", - "properties": { - "Capabilities": { - "$ref": "#/components/schemas/AetherUIAzureOpenAIModelCapabilities" - } - }, - "additionalProperties": false + "createdBy": { + "$ref": "#/components/schemas/AetherCreatedBy" }, - "AetherUIAzureOpenAIModelCapabilities": { - "type": "object", - "properties": { - "Completion": { - "type": "boolean", - "nullable": true - }, - "ChatCompletion": { - "type": "boolean", - "nullable": true - }, - "Embeddings": { - "type": "boolean", - "nullable": true - } - }, - "additionalProperties": false + "runconfig": { + "type": "string", + "nullable": true }, - "AetherUIColumnPicker": { - "type": "object", - "properties": { - "columnPickerFor": { - "type": "string", - "nullable": true - }, - "columnSelectionCategories": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "singleColumnSelection": { - "type": "boolean" - } - }, - "additionalProperties": false + "cloudSettings": { + "$ref": "#/components/schemas/AetherCloudSettings" }, - "AetherUIJsonEditor": { - "type": "object", - "properties": { - "jsonSchema": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "category": { + "type": "string", + "nullable": true }, - "AetherUIParameterHint": { - "type": "object", - "properties": { - "uiWidgetType": { - "$ref": "#/components/schemas/AetherUIWidgetTypeEnum" - }, - "columnPicker": { - "$ref": "#/components/schemas/AetherUIColumnPicker" - }, - "uiScriptLanguage": { - "$ref": "#/components/schemas/AetherUIScriptLanguageEnum" - }, - "jsonEditor": { - "$ref": "#/components/schemas/AetherUIJsonEditor" - }, - "PromptFlowConnectionSelector": { - "$ref": "#/components/schemas/AetherUIPromptFlowConnectionSelector" - }, - "AzureOpenAIDeploymentNameSelector": { - "$ref": "#/components/schemas/AetherUIAzureOpenAIDeploymentNameSelector" - }, - "UxIgnore": { - "type": "boolean" - }, - "Anonymous": { - "type": "boolean" - } - }, - "additionalProperties": false + "stepType": { + "type": "string", + "nullable": true }, - "AetherUIPromptFlowConnectionSelector": { - "type": "object", - "properties": { - "PromptFlowConnectionType": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "AetherUIScriptLanguageEnum": { - "enum": [ - "None", - "Python", - "R", - "Json", - "Sql" - ], - "type": "string" - }, - "AetherUIWidgetTypeEnum": { - "enum": [ - "Default", - "Mode", - "ColumnPicker", - "Credential", - "Script", - "ComputeSelection", - "JsonEditor", - "SearchSpaceParameter", - "SectionToggle", - "YamlEditor", - "EnableRuntimeSweep", - "DataStoreSelection", - "InstanceTypeSelection", - "ConnectionSelection", - "PromptFlowConnectionSelection", - "AzureOpenAIDeploymentNameSelection" - ], - "type": "string" - }, - "AetherUploadState": { - "enum": [ - "Uploading", - "Completed", - "Canceled", - "Failed" - ], - "type": "string" - }, - "AetherUseStl": { - "enum": [ - "Season", - "SeasonTrend" - ], - "type": "string" - }, - "AetherValidationDataSettings": { - "type": "object", - "properties": { - "nCrossValidations": { - "$ref": "#/components/schemas/AetherNCrossValidations" - }, - "validationDataSize": { - "type": "number", - "format": "double", - "nullable": true - }, - "cvSplitColumnNames": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "validationType": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "stage": { + "type": "string", + "nullable": true }, - "AetherVsoBuildArtifactInfo": { - "type": "object", - "properties": { - "buildInfo": { - "$ref": "#/components/schemas/AetherVsoBuildInfo" - }, - "downloadUrl": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "uploadState": { + "$ref": "#/components/schemas/AetherUploadState" }, - "AetherVsoBuildDefinitionInfo": { - "type": "object", - "properties": { - "accountName": { - "type": "string", - "nullable": true - }, - "projectId": { - "type": "string", - "format": "uuid" - }, - "buildDefinitionId": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "sourceCodeLocation": { + "type": "string", + "nullable": true }, - "AetherVsoBuildInfo": { - "type": "object", - "properties": { - "definitionInfo": { - "$ref": "#/components/schemas/AetherVsoBuildDefinitionInfo" - }, - "buildId": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "sizeInBytes": { + "type": "integer", + "format": "int64" }, - "AmlDataset": { - "type": "object", - "properties": { - "registeredDataSetReference": { - "$ref": "#/components/schemas/RegisteredDataSetReference" - }, - "savedDataSetReference": { - "$ref": "#/components/schemas/SavedDataSetReference" - }, - "additionalTransformations": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "downloadLocation": { + "type": "string", + "nullable": true }, - "AmlK8sConfiguration": { - "type": "object", - "properties": { - "resourceConfiguration": { - "$ref": "#/components/schemas/ResourceConfiguration" - }, - "priorityConfiguration": { - "$ref": "#/components/schemas/AmlK8sPriorityConfiguration" - }, - "interactiveConfiguration": { - "$ref": "#/components/schemas/InteractiveConfiguration" - } - }, - "additionalProperties": false + "dataLocation": { + "$ref": "#/components/schemas/AetherDataLocation" }, - "AmlK8sPriorityConfiguration": { - "type": "object", - "properties": { - "jobPriority": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "isPreemptible": { - "type": "boolean", - "nullable": true - }, - "nodeCountSet": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - }, - "scaleInterval": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "scriptingRuntimeId": { + "type": "string", + "nullable": true }, - "AmlSparkCloudSetting": { - "type": "object", - "properties": { - "entry": { - "$ref": "#/components/schemas/EntrySetting" - }, - "files": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "archives": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "jars": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "pyFiles": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "driverMemory": { - "type": "string", - "nullable": true - }, - "driverCores": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "executorMemory": { - "type": "string", - "nullable": true - }, - "executorCores": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "numberExecutors": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "environmentAssetId": { - "type": "string", - "nullable": true - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "inlineEnvironmentDefinitionString": { - "type": "string", - "nullable": true - }, - "conf": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "compute": { - "type": "string", - "nullable": true - }, - "resources": { - "$ref": "#/components/schemas/ResourcesSetting" - }, - "identity": { - "$ref": "#/components/schemas/IdentitySetting" - } - }, - "additionalProperties": false + "interfaceDocumentation": { + "$ref": "#/components/schemas/AetherEntityInterfaceDocumentation" }, - "ApiAndParameters": { - "type": "object", - "properties": { - "api": { - "type": "string", - "nullable": true - }, - "parameters": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowToolSettingParameter" - }, - "description": "This is a dictionary", - "nullable": true - }, - "default_prompt": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "isEyesOn": { + "type": "boolean" }, - "ApplicationEndpointConfiguration": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/ApplicationEndpointType" - }, - "port": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "nodes": { - "$ref": "#/components/schemas/Nodes" - } - }, - "additionalProperties": false - }, - "ApplicationEndpointType": { - "enum": [ - "Jupyter", - "JupyterLab", - "SSH", - "TensorBoard", - "VSCode", - "Theia", - "Grafana", - "Custom", - "RayDashboard" - ], - "type": "string" - }, - "ArgumentAssignment": { - "type": "object", - "properties": { - "valueType": { - "$ref": "#/components/schemas/ArgumentValueType" - }, - "value": { - "type": "string", - "nullable": true - }, - "nestedArgumentList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ArgumentAssignment" - }, - "nullable": true - }, - "stringInterpolationArgumentList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ArgumentAssignment" - }, - "nullable": true - } - }, - "additionalProperties": false + "complianceCluster": { + "type": "string", + "nullable": true }, - "ArgumentValueType": { - "enum": [ - "Literal", - "Parameter", - "Input", - "Output", - "NestedList", - "StringInterpolationList" - ], - "type": "string" + "isDeterministic": { + "type": "boolean" }, - "Asset": { - "type": "object", - "properties": { - "assetId": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "informationUrl": { + "type": "string", + "nullable": true }, - "AssetDefinition": { - "type": "object", - "properties": { - "path": { - "type": "string", - "nullable": true - }, - "type": { - "$ref": "#/components/schemas/AEVAAssetType" - }, - "assetId": { - "type": "string", - "nullable": true - }, - "serializedAssetId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "isExperimentIdInParameters": { + "type": "boolean" }, - "AssetNameAndVersionIdentifier": { - "type": "object", - "properties": { - "assetName": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "feedName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "interfaceString": { + "type": "string", + "nullable": true }, - "AssetOutputSettings": { - "type": "object", - "properties": { - "path": { - "type": "string", - "nullable": true - }, - "PathParameterAssignment": { - "$ref": "#/components/schemas/ParameterAssignment" - }, - "type": { - "$ref": "#/components/schemas/AEVAAssetType" - }, - "options": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataStoreMode": { - "$ref": "#/components/schemas/AEVADataStoreMode" - }, - "name": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "defaultParameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "AssetOutputSettingsParameter": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "documentation": { - "type": "string", - "nullable": true - }, - "defaultValue": { - "$ref": "#/components/schemas/AssetOutputSettings" - } - }, - "additionalProperties": false + "structuredInterface": { + "$ref": "#/components/schemas/AetherStructuredInterface" }, - "AssetPublishResult": { - "type": "object", - "properties": { - "feedName": { - "type": "string", - "nullable": true - }, - "assetName": { - "type": "string", - "nullable": true - }, - "assetVersion": { - "type": "string", - "nullable": true - }, - "stepName": { - "type": "string", - "nullable": true - }, - "status": { - "type": "string", - "nullable": true - }, - "errorMessage": { - "type": "string", - "nullable": true - }, - "createdTime": { - "type": "string", - "format": "date-time" - }, - "lastUpdatedTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "regionalPublishResults": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AssetPublishSingleRegionResult" - }, - "nullable": true - } - }, - "additionalProperties": false + "familyId": { + "type": "string", + "nullable": true }, - "AssetPublishSingleRegionResult": { - "type": "object", - "properties": { - "stepName": { - "type": "string", - "nullable": true - }, - "status": { - "type": "string", - "nullable": true - }, - "errorMessage": { - "type": "string", - "nullable": true - }, - "lastUpdatedTime": { - "type": "string", - "format": "date-time" - }, - "totalSteps": { - "type": "integer", - "format": "int32" - }, - "finishedSteps": { - "type": "integer", - "format": "int32" - }, - "remainingSteps": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false - }, - "AssetScopeTypes": { - "enum": [ - "Workspace", - "Global", - "All", - "Feed" - ], - "type": "string" - }, - "AssetSourceType": { - "enum": [ - "Unknown", - "Local", - "GithubFile", - "GithubFolder", - "DevopsArtifactsZip" - ], - "type": "string" - }, - "AssetType": { - "enum": [ - "Component", - "Model", - "Environment", - "Dataset", - "DataStore", - "SampleGraph", - "FlowTool", - "FlowToolSetting", - "FlowConnection", - "FlowSample", - "FlowRuntimeSpec" - ], - "type": "string" - }, - "AssetTypeMetaInfo": { - "type": "object", - "properties": { - "consumptionMode": { - "$ref": "#/components/schemas/ConsumeMode" - } - }, - "additionalProperties": false + "name": { + "type": "string", + "nullable": true }, - "AssetVersionPublishRequest": { - "type": "object", - "properties": { - "assetType": { - "$ref": "#/components/schemas/AssetType" - }, - "assetSourceType": { - "$ref": "#/components/schemas/AssetSourceType" - }, - "yamlFile": { - "type": "string", - "nullable": true - }, - "sourceZipUrl": { - "type": "string", - "nullable": true - }, - "sourceZipFile": { - "type": "string", - "format": "binary", - "nullable": true - }, - "feedName": { - "type": "string", - "nullable": true - }, - "setAsDefaultVersion": { - "type": "boolean" - }, - "referencedAssets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssetNameAndVersionIdentifier" - }, - "nullable": true - }, - "flowFile": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "hash": { + "type": "string", + "nullable": true }, - "AssignedUser": { - "type": "object", - "properties": { - "objectId": { - "type": "string", - "nullable": true - }, - "tenantId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "description": { + "type": "string", + "nullable": true }, - "AttachCosmosRequest": { - "type": "object", - "properties": { - "accountEndpoint": { - "type": "string", - "nullable": true - }, - "resourceArmId": { - "type": "string", - "nullable": true - }, - "databaseName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "version": { + "type": "string", + "nullable": true }, - "AuthKeys": { - "type": "object", - "properties": { - "primaryKey": { - "type": "string", - "nullable": true - }, - "secondaryKey": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "sequenceNumberInFamily": { + "type": "integer", + "format": "int32" }, - "AutoClusterComputeSpecification": { - "type": "object", - "properties": { - "instanceSize": { - "type": "string", - "nullable": true - }, - "instancePriority": { - "type": "string", - "nullable": true - }, - "osType": { - "type": "string", - "nullable": true - }, - "location": { - "type": "string", - "nullable": true - }, - "runtimeVersion": { - "type": "string", - "nullable": true - }, - "quotaEnforcementResourceId": { - "type": "string", - "nullable": true - }, - "modelComputeSpecificationId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "owner": { + "type": "string", + "nullable": true }, - "AutoDeleteCondition": { - "enum": [ - "CreatedGreaterThan", - "LastAccessedGreaterThan" - ], - "type": "string" + "azureTenantId": { + "type": "string", + "nullable": true }, - "AutoDeleteSetting": { - "type": "object", - "properties": { - "condition": { - "$ref": "#/components/schemas/AutoDeleteCondition" - }, - "value": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "azureUserId": { + "type": "string", + "nullable": true }, - "AutoFeaturizeConfiguration": { - "type": "object", - "properties": { - "featurizationConfig": { - "$ref": "#/components/schemas/FeaturizationSettings" - } - }, - "additionalProperties": false + "collaborators": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "AutoMLComponentConfiguration": { - "type": "object", - "properties": { - "autoTrainConfig": { - "$ref": "#/components/schemas/AutoTrainConfiguration" - }, - "autoFeaturizeConfig": { - "$ref": "#/components/schemas/AutoFeaturizeConfiguration" - } - }, - "additionalProperties": false + "id": { + "type": "string", + "nullable": true }, - "AutoScaler": { - "type": "object", - "properties": { - "autoscaleEnabled": { - "type": "boolean", - "nullable": true - }, - "minReplicas": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "maxReplicas": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "targetUtilization": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "refreshPeriodInSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "workspaceId": { + "type": "string", + "nullable": true }, - "AutoTrainConfiguration": { - "type": "object", - "properties": { - "generalSettings": { - "$ref": "#/components/schemas/GeneralSettings" - }, - "limitSettings": { - "$ref": "#/components/schemas/LimitSettings" - }, - "dataSettings": { - "$ref": "#/components/schemas/DataSettings" - }, - "forecastingSettings": { - "$ref": "#/components/schemas/ForecastingSettings" - }, - "trainingSettings": { - "$ref": "#/components/schemas/TrainingSettings" - }, - "sweepSettings": { - "$ref": "#/components/schemas/SweepSettings" - }, - "imageModelSettings": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "computeConfiguration": { - "$ref": "#/components/schemas/AEVAComputeConfiguration" - }, - "resourceConfigurtion": { - "$ref": "#/components/schemas/AEVAResourceConfiguration" - }, - "environmentId": { - "type": "string", - "nullable": true - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "etag": { + "type": "string", + "nullable": true }, - "AutologgerSettings": { - "type": "object", - "properties": { - "mlFlowAutologger": { - "$ref": "#/components/schemas/MLFlowAutologgerState" - } - }, - "additionalProperties": false + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "AvailabilityResponse": { - "type": "object", - "properties": { - "isAvailable": { - "type": "boolean" - }, - "error": { - "$ref": "#/components/schemas/ErrorResponse" - } - }, - "additionalProperties": false + "createdDate": { + "type": "string", + "format": "date-time" }, - "AzureBlobReference": { - "type": "object", - "properties": { - "container": { - "type": "string", - "nullable": true - }, - "sasToken": { - "type": "string", - "nullable": true - }, - "uri": { - "type": "string", - "nullable": true - }, - "account": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "lastModifiedDate": { + "type": "string", + "format": "date-time" }, - "AzureDataLakeGen2Reference": { - "type": "object", - "properties": { - "fileSystemName": { - "type": "string", - "nullable": true - }, - "uri": { - "type": "string", - "nullable": true - }, - "account": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "entityStatus": { + "$ref": "#/components/schemas/AetherEntityStatus" + } + }, + "additionalProperties": false + }, + "AetherModuleExtendedProperties": { + "type": "object", + "properties": { + "autoDeployedArtifact": { + "$ref": "#/components/schemas/AetherBuildArtifactInfo" + }, + "scriptNeedsApproval": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "AetherModuleHashVersion": { + "enum": [ + "IdentifierHash", + "IdentifierHashV2" + ], + "type": "string" + }, + "AetherModuleType": { + "enum": [ + "None", + "BatchInferencing" + ], + "type": "string" + }, + "AetherNCrossValidationMode": { + "enum": [ + "Auto", + "Custom" + ], + "type": "string" + }, + "AetherNCrossValidations": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/AetherNCrossValidationMode" + }, + "value": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "AetherOutputSetting": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true }, - "AzureDataLakeReference": { - "type": "object", - "properties": { - "tenant": { - "type": "string", - "nullable": true - }, - "subscription": { - "type": "string", - "nullable": true - }, - "resourceGroup": { - "type": "string", - "nullable": true - }, - "uri": { - "type": "string", - "nullable": true - }, - "account": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "dataStoreName": { + "type": "string", + "nullable": true }, - "AzureDatabaseReference": { - "type": "object", - "properties": { - "tableName": { - "type": "string", - "nullable": true - }, - "sqlQuery": { - "type": "string", - "nullable": true - }, - "storedProcedureName": { - "type": "string", - "nullable": true - }, - "storedProcedureParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StoredProcedureParameter" - }, - "nullable": true - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "DataStoreNameParameterAssignment": { + "$ref": "#/components/schemas/AetherParameterAssignment" }, - "AzureFilesReference": { - "type": "object", - "properties": { - "share": { - "type": "string", - "nullable": true - }, - "uri": { - "type": "string", - "nullable": true - }, - "account": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "dataStoreMode": { + "$ref": "#/components/schemas/AetherDataStoreMode" }, - "AzureMLModuleVersionDescriptor": { - "type": "object", - "properties": { - "moduleVersionId": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "DataStoreModeParameterAssignment": { + "$ref": "#/components/schemas/AetherParameterAssignment" }, - "AzureOpenAIDeploymentDto": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "modelName": { - "type": "string", - "nullable": true - }, - "capabilities": { - "$ref": "#/components/schemas/AzureOpenAIModelCapabilities" - } - }, - "additionalProperties": false + "pathOnCompute": { + "type": "string", + "nullable": true }, - "AzureOpenAIModelCapabilities": { - "type": "object", - "properties": { - "completion": { - "type": "boolean", - "nullable": true - }, - "chat_completion": { - "type": "boolean", - "nullable": true - }, - "embeddings": { - "type": "boolean", - "nullable": true - } - }, - "additionalProperties": false + "PathOnComputeParameterAssignment": { + "$ref": "#/components/schemas/AetherParameterAssignment" }, - "BatchAiComputeInfo": { - "type": "object", - "properties": { - "batchAiSubscriptionId": { - "type": "string", - "nullable": true - }, - "batchAiResourceGroup": { - "type": "string", - "nullable": true - }, - "batchAiWorkspaceName": { - "type": "string", - "nullable": true - }, - "clusterName": { - "type": "string", - "nullable": true - }, - "nativeSharedDirectory": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "overwrite": { + "type": "boolean" }, - "BatchDataInput": { - "type": "object", - "properties": { - "dataUri": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "dataReferenceName": { + "type": "string", + "nullable": true }, - "BatchExportComponentSpecResponse": { - "type": "object", - "properties": { - "componentSpecMetaInfos": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ComponentSpecMetaInfo" - }, - "nullable": true - }, - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ErrorResponse" - }, - "nullable": true - } - }, - "additionalProperties": false + "webServicePort": { + "type": "string", + "nullable": true }, - "BatchExportRawComponentResponse": { - "type": "object", - "properties": { - "rawComponentDtos": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RawComponentDto" - }, - "nullable": true - }, - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ErrorResponse" - }, - "nullable": true - } - }, - "additionalProperties": false + "datasetRegistration": { + "$ref": "#/components/schemas/AetherDatasetRegistration" }, - "BatchGetComponentHashesRequest": { - "type": "object", - "properties": { - "moduleHashVersion": { - "$ref": "#/components/schemas/AetherModuleHashVersion" - }, - "moduleEntities": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AetherModuleEntity" - }, - "nullable": true - } - }, - "additionalProperties": false + "datasetOutputOptions": { + "$ref": "#/components/schemas/AetherDatasetOutputOptions" }, - "BatchGetComponentRequest": { - "type": "object", - "properties": { - "versionIds": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "nameAndVersions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ComponentNameMetaInfo" - }, - "nullable": true - } - }, - "additionalProperties": false + "AssetOutputSettings": { + "$ref": "#/components/schemas/AetherAssetOutputSettings" }, - "Binding": { - "type": "object", - "properties": { - "bindingType": { - "$ref": "#/components/schemas/BindingType" - } - }, - "additionalProperties": false + "parameterName": { + "type": "string", + "nullable": true }, - "BindingType": { - "enum": [ - "Basic" - ], + "AssetOutputSettingsParameterName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherParallelForControlFlowInfo": { + "type": "object", + "properties": { + "parallelForItemsInput": { + "$ref": "#/components/schemas/AetherParameterAssignment" + } + }, + "additionalProperties": false + }, + "AetherParameterAssignment": { + "type": "object", + "properties": { + "valueType": { + "$ref": "#/components/schemas/AetherParameterValueType" + }, + "assignmentsToConcatenate": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherParameterAssignment" + }, + "nullable": true + }, + "dataPathAssignment": { + "$ref": "#/components/schemas/AetherLegacyDataPath" + }, + "dataSetDefinitionValueAssignment": { + "$ref": "#/components/schemas/AetherDataSetDefinitionValue" + }, + "name": { + "type": "string", + "nullable": true + }, + "value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherParameterType": { + "enum": [ + "Int", + "Double", + "Bool", + "String", + "Undefined" + ], + "type": "string" + }, + "AetherParameterValueType": { + "enum": [ + "Literal", + "GraphParameterName", + "Concatenate", + "Input", + "DataPath", + "DataSetDefinition" + ], + "type": "string" + }, + "AetherPhillyHdfsReference": { + "type": "object", + "properties": { + "cluster": { + "type": "string", + "nullable": true + }, + "vc": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherPortInfo": { + "type": "object", + "properties": { + "nodeId": { + "type": "string", + "nullable": true + }, + "portName": { + "type": "string", + "nullable": true + }, + "graphPortName": { + "type": "string", + "nullable": true + }, + "isParameter": { + "type": "boolean" + }, + "webServicePort": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherPrimaryMetrics": { + "enum": [ + "AUCWeighted", + "Accuracy", + "NormMacroRecall", + "AveragePrecisionScoreWeighted", + "PrecisionScoreWeighted", + "SpearmanCorrelation", + "NormalizedRootMeanSquaredError", + "R2Score", + "NormalizedMeanAbsoluteError", + "NormalizedRootMeanSquaredLogError", + "MeanAveragePrecision", + "Iou" + ], + "type": "string" + }, + "AetherPriorityConfig": { + "type": "object", + "properties": { + "jobPriority": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isPreemptible": { + "type": "boolean", + "nullable": true + }, + "nodeCountSet": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "scaleInterval": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherPriorityConfiguration": { + "type": "object", + "properties": { + "cloudPriority": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stringTypePriority": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherRegisteredDataSetReference": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherRemoteDockerComputeInfo": { + "type": "object", + "properties": { + "address": { + "type": "string", + "nullable": true + }, + "username": { + "type": "string", + "nullable": true + }, + "password": { + "type": "string", + "nullable": true + }, + "privateKey": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherRepositoryType": { + "enum": [ + "None", + "Other", + "Git", + "SourceDepot", + "Cosmos" + ], + "type": "string" + }, + "AetherResourceAssignment": { + "type": "object", + "properties": { + "attributes": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AetherResourceAttributeAssignment" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherResourceAttributeAssignment": { + "type": "object", + "properties": { + "attribute": { + "$ref": "#/components/schemas/AetherResourceAttributeDefinition" + }, + "operator": { + "$ref": "#/components/schemas/AetherResourceOperator" + }, + "value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherResourceAttributeDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/AetherResourceValueType" + }, + "units": { + "type": "string", + "nullable": true + }, + "allowedOperators": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherResourceOperator" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherResourceConfig": { + "type": "object", + "properties": { + "gpuCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "cpuCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "memoryRequestInGB": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherResourceConfiguration": { + "type": "object", + "properties": { + "instanceCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "instanceType": { + "type": "string", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + }, + "locations": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "BuildContextLocationType": { - "enum": [ - "Git", - "StorageAccount" - ], - "type": "string" + "instancePriority": { + "type": "string", + "nullable": true }, - "BulkTestDto": { - "type": "object", - "properties": { - "bulkTestId": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "runtime": { - "type": "string", - "nullable": true - }, - "createdBy": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - }, - "createdOn": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "evaluationCount": { - "type": "integer", - "format": "int32" - }, - "variantCount": { - "type": "integer", - "format": "int32" - }, - "flowSubmitRunSettings": { - "$ref": "#/components/schemas/FlowSubmitRunSettings" - }, - "inputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowInputDefinition" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowOutputDefinition" - }, - "description": "This is a dictionary", - "nullable": true - }, - "batch_inputs": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary" - }, - "nullable": true - }, - "batchDataInput": { - "$ref": "#/components/schemas/BatchDataInput" - } - }, - "additionalProperties": false + "quotaEnforcementResourceId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherResourceModel": { + "type": "object", + "properties": { + "resources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherResourceAssignment" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherResourceOperator": { + "enum": [ + "Equal", + "Contain", + "GreaterOrEqual" + ], + "type": "string" + }, + "AetherResourceValueType": { + "enum": [ + "String", + "Double" + ], + "type": "string" + }, + "AetherResourcesSetting": { + "type": "object", + "properties": { + "instanceSize": { + "type": "string", + "nullable": true + }, + "sparkVersion": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherSamplingAlgorithmType": { + "enum": [ + "Random", + "Grid", + "Bayesian" + ], + "type": "string" + }, + "AetherSavedDataSetReference": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherScopeCloudConfiguration": { + "type": "object", + "properties": { + "inputPathSuffixes": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AetherArgumentAssignment" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputPathSuffixes": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AetherArgumentAssignment" + }, + "description": "This is a dictionary", + "nullable": true + }, + "userAlias": { + "type": "string", + "nullable": true + }, + "tokens": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "autoToken": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "vcp": { + "type": "number", + "format": "float", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherSeasonality": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/AetherSeasonalityMode" + }, + "value": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "AetherSeasonalityMode": { + "enum": [ + "Auto", + "Custom" + ], + "type": "string" + }, + "AetherShortSeriesHandlingConfiguration": { + "enum": [ + "Auto", + "Pad", + "Drop" + ], + "type": "string" + }, + "AetherSqlDataPath": { + "type": "object", + "properties": { + "sqlTableName": { + "type": "string", + "nullable": true + }, + "sqlQuery": { + "type": "string", + "nullable": true + }, + "sqlStoredProcedureName": { + "type": "string", + "nullable": true + }, + "sqlStoredProcedureParams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherStoredProcedureParameter" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherStackEnsembleSettings": { + "type": "object", + "properties": { + "stackMetaLearnerType": { + "$ref": "#/components/schemas/AetherStackMetaLearnerType" + }, + "stackMetaLearnerTrainPercentage": { + "type": "number", + "format": "double", + "nullable": true + }, + "stackMetaLearnerKWargs": { + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherStackMetaLearnerType": { + "enum": [ + "None", + "LogisticRegression", + "LogisticRegressionCV", + "LightGBMClassifier", + "ElasticNet", + "ElasticNetCV", + "LightGBMRegressor", + "LinearRegression" + ], + "type": "string" + }, + "AetherStoredProcedureParameter": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "value": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/AetherStoredProcedureParameterType" + } + }, + "additionalProperties": false + }, + "AetherStoredProcedureParameterType": { + "enum": [ + "String", + "Int", + "Decimal", + "Guid", + "Boolean", + "Date" + ], + "type": "string" + }, + "AetherStructuredInterface": { + "type": "object", + "properties": { + "commandLinePattern": { + "type": "string", + "nullable": true + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherStructuredInterfaceInput" + }, + "nullable": true + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherStructuredInterfaceOutput" + }, + "nullable": true + }, + "controlOutputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherControlOutput" + }, + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherStructuredInterfaceParameter" + }, + "nullable": true + }, + "metadataParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherStructuredInterfaceParameter" + }, + "nullable": true + }, + "arguments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherArgumentAssignment" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherStructuredInterfaceInput": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "label": { + "type": "string", + "nullable": true + }, + "dataTypeIdsList": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "CloudError": { - "type": "object", - "properties": { - "code": { - "type": "string", - "nullable": true - }, - "message": { - "type": "string", - "nullable": true - }, - "target": { - "type": "string", - "nullable": true - }, - "details": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CloudError" - }, - "nullable": true, - "readOnly": true - }, - "additionalInfo": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdditionalErrorInfo" - }, - "nullable": true, - "readOnly": true - } - }, - "additionalProperties": false + "isOptional": { + "type": "boolean" }, - "CloudPrioritySetting": { - "type": "object", - "properties": { - "scopePriority": { - "$ref": "#/components/schemas/PriorityConfiguration" - }, - "AmlComputePriority": { - "$ref": "#/components/schemas/PriorityConfiguration" - }, - "ItpPriority": { - "$ref": "#/components/schemas/PriorityConfiguration" - }, - "SingularityPriority": { - "$ref": "#/components/schemas/PriorityConfiguration" - } - }, - "additionalProperties": false + "description": { + "type": "string", + "nullable": true }, - "CloudSettings": { - "type": "object", - "properties": { - "linkedSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParameterAssignment" - }, - "nullable": true - }, - "priorityConfig": { - "$ref": "#/components/schemas/PriorityConfiguration" - }, - "hdiRunConfig": { - "$ref": "#/components/schemas/HdiRunConfiguration" - }, - "subGraphConfig": { - "$ref": "#/components/schemas/SubGraphConfiguration" - }, - "autoMLComponentConfig": { - "$ref": "#/components/schemas/AutoMLComponentConfiguration" - }, - "apCloudConfig": { - "$ref": "#/components/schemas/APCloudConfiguration" - }, - "scopeCloudConfig": { - "$ref": "#/components/schemas/ScopeCloudConfiguration" - }, - "esCloudConfig": { - "$ref": "#/components/schemas/EsCloudConfiguration" - }, - "dataTransferCloudConfig": { - "$ref": "#/components/schemas/DataTransferCloudConfiguration" - }, - "amlSparkCloudSetting": { - "$ref": "#/components/schemas/AmlSparkCloudSetting" - }, - "dataTransferV2CloudSetting": { - "$ref": "#/components/schemas/DataTransferV2CloudSetting" - } - }, - "additionalProperties": false + "skipProcessing": { + "type": "boolean" }, - "CollieRunSettings": { - "type": "object", - "properties": { - "amlComputeName": { - "type": "string", - "nullable": true - }, - "nodeCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "managedIdentityClientId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "isResource": { + "type": "boolean" }, - "ColumnTransformer": { - "type": "object", - "properties": { - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "parameters": { - "nullable": true - } - }, - "additionalProperties": false + "dataStoreMode": { + "$ref": "#/components/schemas/AetherDataStoreMode" }, - "CommandJob": { - "type": "object", - "properties": { - "jobType": { - "$ref": "#/components/schemas/JobType" - }, - "codeId": { - "type": "string", - "nullable": true - }, - "command": { - "minLength": 1, - "type": "string", - "nullable": true - }, - "environmentId": { - "type": "string", - "nullable": true - }, - "inputDataBindings": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/InputDataBinding" - }, - "nullable": true - }, - "outputDataBindings": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/OutputDataBinding" - }, - "nullable": true - }, - "distribution": { - "$ref": "#/components/schemas/DistributionConfiguration" - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "parameters": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - }, - "autologgerSettings": { - "$ref": "#/components/schemas/MfeInternalAutologgerSettings" - }, - "limits": { - "$ref": "#/components/schemas/CommandJobLimits" - }, - "provisioningState": { - "$ref": "#/components/schemas/JobProvisioningState" - }, - "parentJobName": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "experimentName": { - "type": "string", - "nullable": true - }, - "status": { - "$ref": "#/components/schemas/JobStatus" - }, - "interactionEndpoints": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/JobEndpoint" - }, - "nullable": true - }, - "identity": { - "$ref": "#/components/schemas/MfeInternalIdentityConfiguration" - }, - "compute": { - "$ref": "#/components/schemas/ComputeConfiguration" - }, - "priority": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "output": { - "$ref": "#/components/schemas/JobOutputArtifacts" - }, - "isArchived": { - "type": "boolean" - }, - "schedule": { - "$ref": "#/components/schemas/ScheduleBase" - }, - "componentId": { - "type": "string", - "nullable": true - }, - "notificationSetting": { - "$ref": "#/components/schemas/NotificationSetting" - }, - "secretsConfiguration": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/MfeInternalSecretConfiguration" - }, - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "pathOnCompute": { + "type": "string", + "nullable": true }, - "CommandJobLimits": { - "type": "object", - "properties": { - "jobLimitsType": { - "$ref": "#/components/schemas/JobLimitsType" - }, - "timeout": { - "type": "string", - "format": "date-span", - "nullable": true - } - }, - "additionalProperties": false + "overwrite": { + "type": "boolean" }, - "CommandReturnCodeConfig": { - "type": "object", - "properties": { - "returnCode": { - "$ref": "#/components/schemas/SuccessfulCommandReturnCode" - }, - "successfulReturnCodes": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - } - }, - "additionalProperties": false + "dataReferenceName": { + "type": "string", + "nullable": true }, - "Communicator": { - "enum": [ - "None", - "ParameterServer", - "Gloo", - "Mpi", - "Nccl", - "ParallelTask" - ], - "type": "string" + "datasetTypes": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/AetherDatasetType" + }, + "nullable": true }, - "ComponentConfiguration": { - "type": "object", - "properties": { - "componentIdentifier": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "additionalTransformations": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherStructuredInterfaceOutput": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true }, - "ComponentInput": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "optional": { - "type": "boolean" - }, - "description": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - }, - "default": { - "type": "string", - "nullable": true - }, - "enum": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "min": { - "type": "string", - "nullable": true - }, - "max": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "label": { + "type": "string", + "nullable": true }, - "ComponentJob": { - "type": "object", - "properties": { - "compute": { - "$ref": "#/components/schemas/ComputeConfiguration" - }, - "componentId": { - "type": "string", - "nullable": true - }, - "inputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ComponentJobInput" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ComponentJobOutput" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "dataTypeId": { + "type": "string", + "nullable": true }, - "ComponentJobInput": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/InputData" - }, - "inputBinding": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "passThroughDataTypeInputName": { + "type": "string", + "nullable": true }, - "ComponentJobOutput": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/MfeInternalOutputData" - }, - "outputBinding": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "description": { + "type": "string", + "nullable": true }, - "ComponentNameAndDefaultVersion": { - "type": "object", - "properties": { - "componentName": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "feedName": { - "type": "string", - "nullable": true - }, - "registryName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "skipProcessing": { + "type": "boolean" }, - "ComponentNameMetaInfo": { - "type": "object", - "properties": { - "feedName": { - "type": "string", - "nullable": true - }, - "componentName": { - "type": "string", - "nullable": true - }, - "componentVersion": { - "type": "string", - "nullable": true - }, - "registryName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "isArtifact": { + "type": "boolean" }, - "ComponentOutput": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "dataStoreName": { + "type": "string", + "nullable": true }, - "ComponentPreflightResult": { - "type": "object", - "properties": { - "errorDetails": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RootError" - }, - "nullable": true - } - }, - "additionalProperties": false + "dataStoreMode": { + "$ref": "#/components/schemas/AetherDataStoreMode" }, - "ComponentRegistrationTypeEnum": { - "enum": [ - "Normal", - "AnonymousAmlModule", - "AnonymousAmlModuleVersion", - "ModuleEntityOnly" - ], - "type": "string" + "pathOnCompute": { + "type": "string", + "nullable": true }, - "ComponentSpecMetaInfo": { - "type": "object", - "properties": { - "componentSpec": { - "nullable": true - }, - "componentVersion": { - "type": "string", - "nullable": true - }, - "isAnonymous": { - "type": "boolean" - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "componentName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "isArchived": { - "type": "boolean" - } - }, - "additionalProperties": false + "overwrite": { + "type": "boolean" }, - "ComponentType": { - "enum": [ - "Unknown", - "CommandComponent", - "Command" - ], + "dataReferenceName": { + "type": "string", + "nullable": true + }, + "trainingOutput": { + "$ref": "#/components/schemas/AetherTrainingOutput" + }, + "datasetOutput": { + "$ref": "#/components/schemas/AetherDatasetOutput" + }, + "AssetOutputSettings": { + "$ref": "#/components/schemas/AetherAssetOutputSettings" + }, + "earlyAvailable": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "AetherStructuredInterfaceParameter": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "label": { + "type": "string", + "nullable": true + }, + "parameterType": { + "$ref": "#/components/schemas/AetherParameterType" + }, + "isOptional": { + "type": "boolean" + }, + "defaultValue": { + "type": "string", + "nullable": true + }, + "lowerBound": { + "type": "string", + "nullable": true + }, + "upperBound": { + "type": "string", + "nullable": true + }, + "enumValues": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "ComponentUpdateRequest": { - "type": "object", - "properties": { - "originalModuleEntity": { - "$ref": "#/components/schemas/ModuleEntity" - }, - "updateModuleEntity": { - "$ref": "#/components/schemas/ModuleEntity" - }, - "moduleName": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "overwriteWithOriginalNameAndVersion": { - "type": "boolean", - "nullable": true - }, - "snapshotId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "enumValuesToArgumentStrings": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "ComponentValidationRequest": { - "type": "object", - "properties": { - "componentIdentifier": { - "type": "string", - "nullable": true - }, - "computeIdentity": { - "$ref": "#/components/schemas/ComputeIdentityDto" - }, - "executionContextDto": { - "$ref": "#/components/schemas/ExecutionContextDto" - }, - "environmentDefinition": { - "$ref": "#/components/schemas/EnvironmentDefinitionDto" - }, - "dataPortDtos": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataPortDto" - }, - "nullable": true - } - }, - "additionalProperties": false + "description": { + "type": "string", + "nullable": true }, - "ComponentValidationResponse": { - "type": "object", - "properties": { - "status": { - "$ref": "#/components/schemas/ValidationStatus" - }, - "error": { - "$ref": "#/components/schemas/ErrorResponse" - } - }, - "additionalProperties": false + "setEnvironmentVariable": { + "type": "boolean" }, - "Compute": { - "type": "object", - "properties": { - "target": { - "type": "string", - "nullable": true - }, - "targetType": { - "type": "string", - "nullable": true - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "instanceType": { - "type": "string", - "nullable": true - }, - "instanceCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "gpuCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "priority": { - "type": "string", - "nullable": true - }, - "region": { - "type": "string", - "nullable": true - }, - "armId": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "environmentVariableOverride": { + "type": "string", + "nullable": true }, - "ComputeConfiguration": { - "type": "object", - "properties": { - "target": { - "type": "string", - "nullable": true - }, - "instanceCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "maxInstanceCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "isLocal": { - "type": "boolean" - }, - "location": { - "type": "string", - "nullable": true - }, - "isClusterless": { - "type": "boolean" - }, - "instanceType": { - "type": "string", - "nullable": true - }, - "instancePriority": { - "type": "string", - "nullable": true - }, - "jobPriority": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "shmSize": { - "type": "string", - "nullable": true - }, - "dockerArgs": { - "type": "string", - "nullable": true - }, - "locations": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "enabledByParameterName": { + "type": "string", + "nullable": true }, - "ComputeContract": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "location": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "identity": { - "$ref": "#/components/schemas/ComputeIdentityContract" - }, - "properties": { - "$ref": "#/components/schemas/ComputeProperties" - } - }, - "additionalProperties": false - }, - "ComputeDetails": { - "type": "object" - }, - "ComputeEnvironmentType": { - "enum": [ - "ACI", - "AKS", - "AMLCOMPUTE", - "IOT", - "AKSENDPOINT", - "MIRSINGLEMODEL", - "MIRAMLCOMPUTE", - "MIRGA", - "AMLARC", - "BATCHAMLCOMPUTE", - "UNKNOWN" - ], - "type": "string" - }, - "ComputeIdentityContract": { - "type": "object", - "properties": { - "type": { - "type": "string", - "nullable": true - }, - "systemIdentityUrl": { - "type": "string", - "nullable": true - }, - "principalId": { - "type": "string", - "nullable": true - }, - "tenantId": { - "type": "string", - "nullable": true - }, - "clientId": { - "type": "string", - "nullable": true - }, - "clientSecretUrl": { - "type": "string", - "nullable": true - }, - "userAssignedIdentities": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ComputeRPUserAssignedIdentity" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "enabledByParameterValues": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "ComputeIdentityDto": { - "type": "object", - "properties": { - "computeName": { - "type": "string", - "nullable": true - }, - "computeTargetType": { - "$ref": "#/components/schemas/ComputeTargetType" - }, - "intellectualPropertyPublisher": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "uiHint": { + "$ref": "#/components/schemas/AetherUIParameterHint" }, - "ComputeInfo": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "computeType": { - "$ref": "#/components/schemas/ComputeEnvironmentType" - }, - "isSslEnabled": { - "type": "boolean" - }, - "isGpuType": { - "type": "boolean" - }, - "clusterPurpose": { - "type": "string", - "nullable": true - }, - "publicIpAddress": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "groupNames": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "ComputeProperties": { - "required": [ - "computeType" - ], - "type": "object", - "properties": { - "createdOn": { - "type": "string", - "format": "date-time" - }, - "modifiedOn": { - "type": "string", - "format": "date-time" - }, - "disableLocalAuth": { - "type": "boolean" - }, - "description": { - "type": "string", - "nullable": true - }, - "resourceId": { - "type": "string", - "nullable": true - }, - "computeType": { - "minLength": 1, - "type": "string" - }, - "computeLocation": { - "type": "string", - "nullable": true - }, - "provisioningState": { - "$ref": "#/components/schemas/ProvisioningState" - }, - "provisioningErrors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ODataErrorResponse" - }, - "nullable": true - }, - "provisioningWarnings": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "isAttachedCompute": { - "type": "boolean" - }, - "properties": { - "$ref": "#/components/schemas/ComputeDetails" - }, - "status": { - "$ref": "#/components/schemas/ComputeStatus" - }, - "warnings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ComputeWarning" - }, - "nullable": true - } - }, - "additionalProperties": false + "argumentName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherSubGraphConfiguration": { + "type": "object", + "properties": { + "graphId": { + "type": "string", + "nullable": true + }, + "graphDraftId": { + "type": "string", + "nullable": true + }, + "defaultComputeInternal": { + "$ref": "#/components/schemas/AetherComputeSetting" + }, + "defaultDatastoreInternal": { + "$ref": "#/components/schemas/AetherDatastoreSetting" + }, + "DefaultCloudPriority": { + "$ref": "#/components/schemas/AetherCloudPrioritySetting" + }, + "UserAlias": { + "type": "string", + "nullable": true + }, + "IsDynamic": { + "type": "boolean", + "default": false, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherSweepEarlyTerminationPolicy": { + "type": "object", + "properties": { + "policyType": { + "$ref": "#/components/schemas/AetherEarlyTerminationPolicyType" + }, + "evaluationInterval": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "delayEvaluation": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "slackFactor": { + "type": "number", + "format": "float", + "nullable": true + }, + "slackAmount": { + "type": "number", + "format": "float", + "nullable": true + }, + "truncationPercentage": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherSweepSettings": { + "type": "object", + "properties": { + "limits": { + "$ref": "#/components/schemas/AetherSweepSettingsLimits" + }, + "searchSpace": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "nullable": true }, - "ComputeRPUserAssignedIdentity": { - "type": "object", - "properties": { - "principalId": { - "type": "string", - "nullable": true - }, - "tenantId": { - "type": "string", - "nullable": true - }, - "clientId": { - "type": "string", - "nullable": true - }, - "clientSecretUrl": { - "type": "string", - "nullable": true - }, - "resourceId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "samplingAlgorithm": { + "$ref": "#/components/schemas/AetherSamplingAlgorithmType" }, - "ComputeRequest": { - "type": "object", - "properties": { - "nodeCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "gpuCount": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "earlyTermination": { + "$ref": "#/components/schemas/AetherSweepEarlyTerminationPolicy" + } + }, + "additionalProperties": false + }, + "AetherSweepSettingsLimits": { + "type": "object", + "properties": { + "maxTotalTrials": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxConcurrentTrials": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherTabularTrainingMode": { + "enum": [ + "Distributed", + "NonDistributed", + "Auto" + ], + "type": "string" + }, + "AetherTargetAggregationFunction": { + "enum": [ + "Sum", + "Max", + "Min", + "Mean" + ], + "type": "string" + }, + "AetherTargetLags": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/AetherTargetLagsMode" + }, + "values": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherTargetLagsMode": { + "enum": [ + "Auto", + "Custom" + ], + "type": "string" + }, + "AetherTargetRollingWindowSize": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/AetherTargetRollingWindowSizeMode" + }, + "value": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "AetherTargetRollingWindowSizeMode": { + "enum": [ + "Auto", + "Custom" + ], + "type": "string" + }, + "AetherTargetSelectorConfiguration": { + "type": "object", + "properties": { + "lowPriorityVMTolerant": { + "type": "boolean" + }, + "clusterBlockList": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "ComputeSetting": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "computeType": { - "$ref": "#/components/schemas/ComputeType" - }, - "batchAiComputeInfo": { - "$ref": "#/components/schemas/BatchAiComputeInfo" - }, - "remoteDockerComputeInfo": { - "$ref": "#/components/schemas/RemoteDockerComputeInfo" - }, - "hdiClusterComputeInfo": { - "$ref": "#/components/schemas/HdiClusterComputeInfo" - }, - "mlcComputeInfo": { - "$ref": "#/components/schemas/MlcComputeInfo" - }, - "databricksComputeInfo": { - "$ref": "#/components/schemas/DatabricksComputeInfo" - } - }, - "additionalProperties": false + "computeType": { + "type": "string", + "nullable": true }, - "ComputeStatus": { - "type": "object", - "properties": { - "isStatusAvailable": { - "type": "boolean", - "readOnly": true - }, - "detailedStatus": { - "nullable": true - }, - "error": { - "$ref": "#/components/schemas/ODataError" - } - }, - "additionalProperties": false + "instanceType": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "ComputeStatusDetail": { - "type": "object", - "properties": { - "provisioningState": { - "type": "string", - "nullable": true - }, - "provisioningErrorMessage": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "ComputeTargetType": { - "enum": [ - "Local", - "Remote", - "HdiCluster", - "ContainerInstance", - "AmlCompute", - "ComputeInstance", - "Cmk8s", - "SynapseSpark", - "Kubernetes", - "Aisc", - "GlobalJobDispatcher", - "Databricks", - "MockedCompute" - ], - "type": "string" - }, - "ComputeType": { - "enum": [ - "BatchAi", - "MLC", - "HdiCluster", - "RemoteDocker", - "Databricks", - "Aisc" - ], - "type": "string" - }, - "ComputeWarning": { - "type": "object", - "properties": { - "title": { - "type": "string", - "nullable": true - }, - "message": { - "type": "string", - "nullable": true - }, - "code": { - "type": "string", - "nullable": true - }, - "severity": { - "$ref": "#/components/schemas/SeverityLevel" - } - }, - "additionalProperties": false - }, - "ConfigValueType": { - "enum": [ - "String", - "Secret" - ], - "type": "string" - }, - "ConnectionAuthMode": { - "enum": [ - "Key", - "MeidToken" - ], - "type": "string" - }, - "ConnectionCategory": { - "enum": [ - "PythonFeed", - "ACR", - "Git", - "S3", - "Snowflake", - "AzureSqlDb", - "AzureSynapseAnalytics", - "AzureMySqlDb", - "AzurePostgresDb", - "AzureDataLakeGen2", - "Redis", - "ApiKey", - "AzureOpenAI", - "CognitiveSearch", - "CognitiveService", - "CustomKeys", - "AzureBlob", - "AzureOneLake", - "CosmosDb", - "CosmosDbMongoDbApi", - "AzureDataExplorer", - "AzureMariaDb", - "AzureDatabricksDeltaLake", - "AzureSqlMi", - "AzureTableStorage", - "AmazonRdsForOracle", - "AmazonRdsForSqlServer", - "AmazonRedshift", - "Db2", - "Drill", - "GoogleBigQuery", - "Greenplum", - "Hbase", - "Hive", - "Impala", - "Informix", - "MariaDb", - "MicrosoftAccess", - "MySql", - "Netezza", - "Oracle", - "Phoenix", - "PostgreSql", - "Presto", - "SapOpenHub", - "SapBw", - "SapHana", - "SapTable", - "Spark", - "SqlServer", - "Sybase", - "Teradata", - "Vertica", - "Cassandra", - "Couchbase", - "MongoDbV2", - "MongoDbAtlas", - "AmazonS3Compatible", - "FileServer", - "FtpServer", - "GoogleCloudStorage", - "Hdfs", - "OracleCloudStorage", - "Sftp", - "GenericHttp", - "ODataRest", - "Odbc", - "GenericRest", - "AmazonMws", - "Concur", - "Dynamics", - "DynamicsAx", - "DynamicsCrm", - "GoogleAdWords", - "Hubspot", - "Jira", - "Magento", - "Marketo", - "Office365", - "Eloqua", - "Responsys", - "OracleServiceCloud", - "PayPal", - "QuickBooks", - "Salesforce", - "SalesforceServiceCloud", - "SalesforceMarketingCloud", - "SapCloudForCustomer", - "SapEcc", - "ServiceNow", - "SharePointOnlineList", - "Shopify", - "Square", - "WebTable", - "Xero", - "Zoho", - "GenericContainerRegistry", - "OpenAI", - "Serp", - "BingLLMSearch", - "Serverless" - ], - "type": "string" - }, - "ConnectionConfigSpec": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "configValueType": { - "$ref": "#/components/schemas/ConfigValueType" - }, - "description": { - "type": "string", - "nullable": true - }, - "defaultValue": { - "type": "string", - "nullable": true - }, - "enumValues": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "isOptional": { - "type": "boolean" - }, - "supportedAuthModes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionAuthMode" - }, - "nullable": true - } - }, - "additionalProperties": false + "instanceTypes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "ConnectionDto": { - "type": "object", - "properties": { - "connectionName": { - "type": "string", - "nullable": true - }, - "connectionType": { - "$ref": "#/components/schemas/ConnectionType" - }, - "configs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "customConfigs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/CustomConnectionConfig" - }, - "description": "This is a dictionary", - "nullable": true - }, - "expiryTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "owner": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - }, - "createdDate": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time", - "nullable": true - } - }, - "additionalProperties": false + "myResourceOnly": { + "type": "boolean" }, - "ConnectionEntity": { - "type": "object", - "properties": { - "connectionId": { - "type": "string", - "nullable": true - }, - "connectionName": { - "type": "string", - "nullable": true - }, - "connectionType": { - "$ref": "#/components/schemas/ConnectionType" - }, - "connectionScope": { - "$ref": "#/components/schemas/ConnectionScope" - }, - "configs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "customConfigs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/CustomConnectionConfig" - }, - "description": "This is a dictionary", - "nullable": true - }, - "expiryTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "secretName": { - "type": "string", - "nullable": true - }, - "owner": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "planId": { + "type": "string", + "nullable": true }, - "ConnectionOverrideSetting": { - "type": "object", - "properties": { - "connectionSourceType": { - "$ref": "#/components/schemas/ConnectionSourceType" - }, - "nodeName": { - "type": "string", - "nullable": true - }, - "nodeInputName": { - "type": "string", - "nullable": true - }, - "nodeDeploymentNameInput": { - "type": "string", - "nullable": true - }, - "nodeModelInput": { - "type": "string", - "nullable": true - }, - "connectionName": { - "type": "string", - "nullable": true - }, - "deploymentName": { - "type": "string", - "nullable": true - }, - "model": { - "type": "string", - "nullable": true - }, - "connectionTypes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionType" - }, - "nullable": true - }, - "capabilities": { - "$ref": "#/components/schemas/AzureOpenAIModelCapabilities" - }, - "modelEnum": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "planRegionId": { + "type": "string", + "nullable": true }, - "ConnectionScope": { - "enum": [ - "User", - "WorkspaceShared" - ], + "region": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "ConnectionSourceType": { - "enum": [ - "Node", - "NodeInput" - ], + "regions": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "ConnectionSpec": { - "type": "object", - "properties": { - "connectionType": { - "$ref": "#/components/schemas/ConnectionType" - }, - "configSpecs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionConfigSpec" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "ConnectionType": { - "enum": [ - "OpenAI", - "AzureOpenAI", - "Serp", - "Bing", - "AzureContentModerator", - "Custom", - "AzureContentSafety", - "CognitiveSearch", - "SubstrateLLM", - "Pinecone", - "Qdrant", - "Weaviate", - "FormRecognizer", - "Serverless" - ], - "type": "string" - }, - "ConsumeMode": { - "enum": [ - "Reference", - "Copy", - "CopyAndAutoUpgrade" - ], - "type": "string" - }, - "ContainerInstanceConfiguration": { - "type": "object", - "properties": { - "region": { - "type": "string", - "nullable": true - }, - "cpuCores": { - "type": "number", - "format": "double" - }, - "memoryGb": { - "type": "number", - "format": "double" - } - }, - "additionalProperties": false + "vcBlockList": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherTaskType": { + "enum": [ + "Classification", + "Regression", + "Forecasting", + "ImageClassification", + "ImageClassificationMultilabel", + "ImageObjectDetection", + "ImageInstanceSegmentation", + "TextClassification", + "TextMultiLabeling", + "TextNER", + "TextClassificationMultilabel" + ], + "type": "string" + }, + "AetherTestDataSettings": { + "type": "object", + "properties": { + "testDataSize": { + "type": "number", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherTorchDistributedConfiguration": { + "type": "object", + "properties": { + "processCountPerNode": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherTrainingOutput": { + "type": "object", + "properties": { + "trainingOutputType": { + "$ref": "#/components/schemas/AetherTrainingOutputType" + }, + "iteration": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "metric": { + "type": "string", + "nullable": true + }, + "modelFile": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherTrainingOutputType": { + "enum": [ + "Metrics", + "Model" + ], + "type": "string" + }, + "AetherTrainingSettings": { + "type": "object", + "properties": { + "blockListModels": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "ContainerRegistry": { - "type": "object", - "properties": { - "address": { - "type": "string", - "nullable": true - }, - "username": { - "type": "string", - "nullable": true - }, - "password": { - "type": "string", - "nullable": true - }, - "credentialType": { - "type": "string", - "nullable": true - }, - "registryIdentity": { - "$ref": "#/components/schemas/RegistryIdentity" - } - }, - "additionalProperties": false + "allowListModels": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "ContainerResourceRequirements": { - "type": "object", - "properties": { - "cpu": { - "type": "number", - "format": "double", - "nullable": true - }, - "cpuLimit": { - "type": "number", - "format": "double", - "nullable": true - }, - "memoryInGB": { - "type": "number", - "format": "double", - "nullable": true - }, - "memoryInGBLimit": { - "type": "number", - "format": "double", - "nullable": true - }, - "gpuEnabled": { - "type": "boolean", - "nullable": true - }, - "gpu": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "fpga": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "enableDnnTraining": { + "type": "boolean", + "nullable": true }, - "ControlFlowType": { - "enum": [ - "None", - "DoWhile", - "ParallelFor" - ], - "type": "string" + "enableOnnxCompatibleModels": { + "type": "boolean", + "nullable": true }, - "ControlInput": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "defaultValue": { - "$ref": "#/components/schemas/ControlInputValue" - } - }, - "additionalProperties": false + "stackEnsembleSettings": { + "$ref": "#/components/schemas/AetherStackEnsembleSettings" }, - "ControlInputValue": { - "enum": [ - "None", - "False", - "True", - "Skipped" - ], - "type": "string" + "enableStackEnsemble": { + "type": "boolean", + "nullable": true }, - "ControlOutput": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "enableVoteEnsemble": { + "type": "boolean", + "nullable": true + }, + "ensembleModelDownloadTimeout": { + "type": "string", + "format": "date-span", + "nullable": true }, - "ControlType": { - "enum": [ - "IfElse" - ], + "enableModelExplainability": { + "type": "boolean", + "nullable": true + }, + "trainingMode": { + "$ref": "#/components/schemas/AetherTabularTrainingMode" + } + }, + "additionalProperties": false + }, + "AetherUIAzureOpenAIDeploymentNameSelector": { + "type": "object", + "properties": { + "Capabilities": { + "$ref": "#/components/schemas/AetherUIAzureOpenAIModelCapabilities" + } + }, + "additionalProperties": false + }, + "AetherUIAzureOpenAIModelCapabilities": { + "type": "object", + "properties": { + "Completion": { + "type": "boolean", + "nullable": true + }, + "ChatCompletion": { + "type": "boolean", + "nullable": true + }, + "Embeddings": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherUIColumnPicker": { + "type": "object", + "properties": { + "columnPickerFor": { + "type": "string", + "nullable": true + }, + "columnSelectionCategories": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "CopyDataTask": { - "type": "object", - "properties": { - "DataCopyMode": { - "$ref": "#/components/schemas/DataCopyMode" - } - }, - "additionalProperties": false + "singleColumnSelection": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "AetherUIJsonEditor": { + "type": "object", + "properties": { + "jsonSchema": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherUIParameterHint": { + "type": "object", + "properties": { + "uiWidgetType": { + "$ref": "#/components/schemas/AetherUIWidgetTypeEnum" }, - "CreateFlowRequest": { - "type": "object", - "properties": { - "flowName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "details": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "flow": { - "$ref": "#/components/schemas/Flow" - }, - "flowDefinitionFilePath": { - "type": "string", - "nullable": true - }, - "flowType": { - "$ref": "#/components/schemas/FlowType" - }, - "flowRunSettings": { - "$ref": "#/components/schemas/FlowRunSettings" - }, - "isArchived": { - "type": "boolean" - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "maxIdleTimeSeconds": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "identity": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "columnPicker": { + "$ref": "#/components/schemas/AetherUIColumnPicker" }, - "CreateFlowRuntimeRequest": { - "type": "object", - "properties": { - "runtimeType": { - "$ref": "#/components/schemas/RuntimeType" - }, - "identity": { - "$ref": "#/components/schemas/ManagedServiceIdentity" - }, - "instanceType": { - "type": "string", - "nullable": true - }, - "fromExistingEndpoint": { - "type": "boolean" - }, - "fromExistingDeployment": { - "type": "boolean" - }, - "endpointName": { - "type": "string", - "nullable": true - }, - "deploymentName": { - "type": "string", - "nullable": true - }, - "computeInstanceName": { - "type": "string", - "nullable": true - }, - "fromExistingCustomApp": { - "type": "boolean" - }, - "customAppName": { - "type": "string", - "nullable": true - }, - "runtimeDescription": { - "type": "string", - "nullable": true - }, - "environment": { - "type": "string", - "nullable": true - }, - "instanceCount": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "uiScriptLanguage": { + "$ref": "#/components/schemas/AetherUIScriptLanguageEnum" }, - "CreateFlowSessionRequest": { - "type": "object", - "properties": { - "pythonPipRequirements": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "baseImage": { - "type": "string", - "nullable": true - }, - "action": { - "$ref": "#/components/schemas/SetupFlowSessionAction" - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "maxIdleTimeSeconds": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "identity": { - "type": "string", - "nullable": true - }, - "computeName": { - "type": "string", - "nullable": true - }, - "enableMultiContainer": { - "type": "boolean" - } - }, - "additionalProperties": false + "jsonEditor": { + "$ref": "#/components/schemas/AetherUIJsonEditor" }, - "CreateInferencePipelineRequest": { - "type": "object", - "properties": { - "moduleNodeId": { - "type": "string", - "nullable": true - }, - "portName": { - "type": "string", - "nullable": true - }, - "trainingPipelineDraftName": { - "type": "string", - "nullable": true - }, - "trainingPipelineRunDisplayName": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "pipelineType": { - "$ref": "#/components/schemas/PipelineType" - }, - "pipelineDraftMode": { - "$ref": "#/components/schemas/PipelineDraftMode" - }, - "graphComponentsMode": { - "$ref": "#/components/schemas/GraphComponentsMode" - }, - "subPipelinesInfo": { - "$ref": "#/components/schemas/SubPipelinesInfo" - }, - "flattenedSubGraphs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/PipelineSubDraft" - }, - "nullable": true - }, - "pipelineParameters": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataPathAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/LegacyDataPath" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataSetDefinitionValueAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - }, - "description": "This is a dictionary", - "nullable": true - }, - "assetOutputSettingsAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AssetOutputSettings" - }, - "description": "This is a dictionary", - "nullable": true - }, - "graph": { - "$ref": "#/components/schemas/GraphDraftEntity" - }, - "pipelineRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameterAssignment" - }, - "nullable": true - }, - "moduleNodeRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeRunSetting" - }, - "nullable": true - }, - "moduleNodeUIInputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" - }, - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "continueRunOnStepFailure": { - "type": "boolean", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "enforceRerun": { - "type": "boolean", - "nullable": true - }, - "datasetAccessModes": { - "$ref": "#/components/schemas/DatasetAccessModes" - } - }, - "additionalProperties": false + "PromptFlowConnectionSelector": { + "$ref": "#/components/schemas/AetherUIPromptFlowConnectionSelector" }, - "CreateOrUpdateConnectionRequest": { - "type": "object", - "properties": { - "connectionType": { - "$ref": "#/components/schemas/ConnectionType" - }, - "connectionScope": { - "$ref": "#/components/schemas/ConnectionScope" - }, - "configs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "customConfigs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/CustomConnectionConfig" - }, - "description": "This is a dictionary", - "nullable": true - }, - "expiryTime": { - "type": "string", - "format": "date-time", - "nullable": true - } - }, - "additionalProperties": false - }, - "CreateOrUpdateConnectionRequestDto": { - "type": "object", - "properties": { - "connectionType": { - "$ref": "#/components/schemas/ConnectionType" - }, - "configs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "customConfigs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/CustomConnectionConfig" - }, - "description": "This is a dictionary", - "nullable": true - }, - "expiryTime": { - "type": "string", - "format": "date-time", - "nullable": true - } - }, - "additionalProperties": false - }, - "CreatePipelineDraftRequest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "pipelineType": { - "$ref": "#/components/schemas/PipelineType" - }, - "pipelineDraftMode": { - "$ref": "#/components/schemas/PipelineDraftMode" - }, - "graphComponentsMode": { - "$ref": "#/components/schemas/GraphComponentsMode" - }, - "subPipelinesInfo": { - "$ref": "#/components/schemas/SubPipelinesInfo" - }, - "flattenedSubGraphs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/PipelineSubDraft" - }, - "nullable": true - }, - "pipelineParameters": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataPathAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/LegacyDataPath" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataSetDefinitionValueAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - }, - "description": "This is a dictionary", - "nullable": true - }, - "assetOutputSettingsAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AssetOutputSettings" - }, - "description": "This is a dictionary", - "nullable": true - }, - "graph": { - "$ref": "#/components/schemas/GraphDraftEntity" - }, - "pipelineRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameterAssignment" - }, - "nullable": true - }, - "moduleNodeRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeRunSetting" - }, - "nullable": true - }, - "moduleNodeUIInputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" - }, - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "continueRunOnStepFailure": { - "type": "boolean", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "enforceRerun": { - "type": "boolean", - "nullable": true - }, - "datasetAccessModes": { - "$ref": "#/components/schemas/DatasetAccessModes" - } - }, - "additionalProperties": false - }, - "CreatePipelineJobScheduleDto": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "pipelineJobName": { - "type": "string", - "nullable": true - }, - "pipelineJobRuntimeSettings": { - "$ref": "#/components/schemas/PipelineJobRuntimeBasicSettings" - }, - "displayName": { - "type": "string", - "nullable": true - }, - "triggerType": { - "$ref": "#/components/schemas/TriggerType" - }, - "recurrence": { - "$ref": "#/components/schemas/Recurrence" - }, - "cron": { - "$ref": "#/components/schemas/Cron" - }, - "status": { - "$ref": "#/components/schemas/ScheduleStatus" - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false - }, - "CreatePublishedPipelineRequest": { - "type": "object", - "properties": { - "usePipelineEndpoint": { - "type": "boolean" - }, - "pipelineName": { - "type": "string", - "nullable": true - }, - "pipelineDescription": { - "type": "string", - "nullable": true - }, - "useExistingPipelineEndpoint": { - "type": "boolean" - }, - "pipelineEndpointName": { - "type": "string", - "nullable": true - }, - "pipelineEndpointDescription": { - "type": "string", - "nullable": true - }, - "setAsDefaultPipelineForEndpoint": { - "type": "boolean" - }, - "stepTags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "experimentName": { - "type": "string", - "nullable": true - }, - "pipelineParameters": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataPathAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/LegacyDataPath" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataSetDefinitionValueAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - }, - "description": "This is a dictionary", - "nullable": true - }, - "assetOutputSettingsAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AssetOutputSettings" - }, - "description": "This is a dictionary", - "nullable": true - }, - "enableNotification": { - "type": "boolean", - "nullable": true - }, - "subPipelinesInfo": { - "$ref": "#/components/schemas/SubPipelinesInfo" - }, - "displayName": { - "type": "string", - "nullable": true - }, - "runId": { - "type": "string", - "nullable": true - }, - "parentRunId": { - "type": "string", - "nullable": true - }, - "graph": { - "$ref": "#/components/schemas/GraphDraftEntity" - }, - "pipelineRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameterAssignment" - }, - "nullable": true - }, - "moduleNodeRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeRunSetting" - }, - "nullable": true - }, - "moduleNodeUIInputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" - }, - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "continueRunOnStepFailure": { - "type": "boolean", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "enforceRerun": { - "type": "boolean", - "nullable": true - }, - "datasetAccessModes": { - "$ref": "#/components/schemas/DatasetAccessModes" - } - }, - "additionalProperties": false - }, - "CreateRealTimeEndpointRequest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "computeInfo": { - "$ref": "#/components/schemas/ComputeInfo" - }, - "description": { - "type": "string", - "nullable": true - }, - "linkedPipelineDraftId": { - "type": "string", - "nullable": true - }, - "linkedPipelineRunId": { - "type": "string", - "nullable": true - }, - "aksAdvanceSettings": { - "$ref": "#/components/schemas/AKSAdvanceSettings" - }, - "aciAdvanceSettings": { - "$ref": "#/components/schemas/ACIAdvanceSettings" - }, - "linkedTrainingPipelineRunId": { - "type": "string", - "nullable": true - }, - "linkedExperimentName": { - "type": "string", - "nullable": true - }, - "graphNodesRunIdMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "workflow": { - "$ref": "#/components/schemas/PipelineGraph" - }, - "inputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InputOutputPortMetadata" - }, - "nullable": true - }, - "outputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InputOutputPortMetadata" - }, - "nullable": true - }, - "exampleRequest": { - "$ref": "#/components/schemas/ExampleRequest" - }, - "userStorageConnectionString": { - "type": "string", - "nullable": true - }, - "userStorageEndpointUri": { - "type": "string", - "format": "uri", - "nullable": true - }, - "userStorageWorkspaceSaiToken": { - "type": "string", - "nullable": true - }, - "userStorageContainerName": { - "type": "string", - "nullable": true - }, - "pipelineRunId": { - "type": "string", - "nullable": true - }, - "rootPipelineRunId": { - "type": "string", - "nullable": true - }, - "experimentName": { - "type": "string", - "nullable": true - }, - "experimentId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "CreatedBy": { - "type": "object", - "properties": { - "userObjectId": { - "type": "string", - "nullable": true - }, - "userTenantId": { - "type": "string", - "nullable": true - }, - "userName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "CreatedFromDto": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/CreatedFromType" - }, - "locationType": { - "$ref": "#/components/schemas/CreatedFromLocationType" - }, - "location": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "AzureOpenAIDeploymentNameSelector": { + "$ref": "#/components/schemas/AetherUIAzureOpenAIDeploymentNameSelector" }, - "CreatedFromLocationType": { - "enum": [ - "ArtifactId" - ], - "type": "string" + "UxIgnore": { + "type": "boolean" }, - "CreatedFromType": { - "enum": [ - "Notebook" - ], + "Anonymous": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "AetherUIPromptFlowConnectionSelector": { + "type": "object", + "properties": { + "PromptFlowConnectionType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherUIScriptLanguageEnum": { + "enum": [ + "None", + "Python", + "R", + "Json", + "Sql" + ], + "type": "string" + }, + "AetherUIWidgetTypeEnum": { + "enum": [ + "Default", + "Mode", + "ColumnPicker", + "Credential", + "Script", + "ComputeSelection", + "JsonEditor", + "SearchSpaceParameter", + "SectionToggle", + "YamlEditor", + "EnableRuntimeSweep", + "DataStoreSelection", + "InstanceTypeSelection", + "ConnectionSelection", + "PromptFlowConnectionSelection", + "AzureOpenAIDeploymentNameSelection" + ], + "type": "string" + }, + "AetherUploadState": { + "enum": [ + "Uploading", + "Completed", + "Canceled", + "Failed" + ], + "type": "string" + }, + "AetherUseStl": { + "enum": [ + "Season", + "SeasonTrend" + ], + "type": "string" + }, + "AetherValidationDataSettings": { + "type": "object", + "properties": { + "nCrossValidations": { + "$ref": "#/components/schemas/AetherNCrossValidations" + }, + "validationDataSize": { + "type": "number", + "format": "double", + "nullable": true + }, + "cvSplitColumnNames": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "CreationContext": { - "type": "object", - "properties": { - "createdTime": { - "type": "string", - "format": "date-time" - }, - "createdBy": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - }, - "creationSource": { - "type": "string", - "nullable": true - } - } - }, - "Cron": { - "type": "object", - "properties": { - "expression": { - "type": "string", - "nullable": true - }, - "endTime": { - "type": "string", - "nullable": true - }, - "startTime": { - "type": "string", - "nullable": true - }, - "timeZone": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "CustomConnectionConfig": { - "type": "object", - "properties": { - "configValueType": { - "$ref": "#/components/schemas/ConfigValueType" - }, - "value": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "CustomReference": { - "type": "object", - "properties": { - "amlDataStoreName": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "DBFSReference": { - "type": "object", - "properties": { - "relativePath": { - "type": "string", - "nullable": true - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "validationType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherVsoBuildArtifactInfo": { + "type": "object", + "properties": { + "buildInfo": { + "$ref": "#/components/schemas/AetherVsoBuildInfo" + }, + "downloadUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AetherVsoBuildDefinitionInfo": { + "type": "object", + "properties": { + "accountName": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "string", + "format": "uuid" + }, + "buildDefinitionId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "AetherVsoBuildInfo": { + "type": "object", + "properties": { + "definitionInfo": { + "$ref": "#/components/schemas/AetherVsoBuildDefinitionInfo" + }, + "buildId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "AmlDataset": { + "type": "object", + "properties": { + "registeredDataSetReference": { + "$ref": "#/components/schemas/RegisteredDataSetReference" + }, + "savedDataSetReference": { + "$ref": "#/components/schemas/SavedDataSetReference" + }, + "additionalTransformations": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AmlK8sConfiguration": { + "type": "object", + "properties": { + "resourceConfiguration": { + "$ref": "#/components/schemas/ResourceConfiguration" }, - "Data": { - "type": "object", - "properties": { - "dataLocation": { - "$ref": "#/components/schemas/ExecutionDataLocation" - }, - "mechanism": { - "$ref": "#/components/schemas/DeliveryMechanism" - }, - "environmentVariableName": { - "type": "string", - "nullable": true - }, - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "overwrite": { - "type": "boolean" - }, - "options": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "priorityConfiguration": { + "$ref": "#/components/schemas/AmlK8sPriorityConfiguration" }, - "DataBindingMode": { - "enum": [ - "Mount", - "Download", - "Upload", - "ReadOnlyMount", - "ReadWriteMount", - "Direct", - "EvalMount", - "EvalDownload" - ], + "interactiveConfiguration": { + "$ref": "#/components/schemas/InteractiveConfiguration" + } + }, + "additionalProperties": false + }, + "AmlK8sPriorityConfiguration": { + "type": "object", + "properties": { + "jobPriority": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isPreemptible": { + "type": "boolean", + "nullable": true + }, + "nodeCountSet": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "scaleInterval": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "AmlSparkCloudSetting": { + "type": "object", + "properties": { + "entry": { + "$ref": "#/components/schemas/EntrySetting" + }, + "files": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "DataCategory": { - "enum": [ - "All", - "Dataset", - "Model" - ], + "archives": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "DataCopyMode": { - "enum": [ - "MergeWithOverwrite", - "FailIfConflict" - ], + "jars": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "DataInfo": { - "type": "object", - "properties": { - "feedName": { - "type": "string", - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "dataSourceType": { - "$ref": "#/components/schemas/DataSourceType" - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "dataTypeId": { - "type": "string", - "nullable": true - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "modifiedDate": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "registeredBy": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "createdByStudio": { - "type": "boolean", - "nullable": true - }, - "dataReferenceType": { - "$ref": "#/components/schemas/DataReferenceType" - }, - "datasetType": { - "type": "string", - "nullable": true - }, - "savedDatasetId": { - "type": "string", - "nullable": true - }, - "datasetVersionId": { - "type": "string", - "nullable": true - }, - "isVisible": { - "type": "boolean" - }, - "isRegistered": { - "type": "boolean" - }, - "properties": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary", - "nullable": true - }, - "connectionString": { - "type": "string", - "nullable": true - }, - "containerName": { - "type": "string", - "nullable": true - }, - "dataStorageEndpointUri": { - "type": "string", - "format": "uri", - "nullable": true - }, - "workspaceSaiToken": { - "type": "string", - "nullable": true - }, - "amlDatasetDataFlow": { - "type": "string", - "nullable": true - }, - "systemData": { - "$ref": "#/components/schemas/SystemData" - }, - "armId": { - "type": "string", - "nullable": true - }, - "assetId": { - "type": "string", - "nullable": true - }, - "assetUri": { - "type": "string", - "nullable": true - }, - "assetType": { - "type": "string", - "nullable": true - }, - "isDataV2": { - "type": "boolean", - "nullable": true - }, - "assetScopeType": { - "$ref": "#/components/schemas/AssetScopeTypes" - }, - "pipelineRunId": { - "type": "string", - "nullable": true - }, - "moduleNodeId": { - "type": "string", - "nullable": true - }, - "outputPortName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "DataLocation": { - "type": "object", - "properties": { - "storageType": { - "$ref": "#/components/schemas/DataLocationStorageType" - }, - "storageId": { - "type": "string", - "nullable": true - }, - "uri": { - "type": "string", - "nullable": true - }, - "dataStoreName": { - "type": "string", - "nullable": true - }, - "dataReference": { - "$ref": "#/components/schemas/DataReference" - }, - "amlDataset": { - "$ref": "#/components/schemas/AmlDataset" - }, - "assetDefinition": { - "$ref": "#/components/schemas/AssetDefinition" - } - }, - "additionalProperties": false - }, - "DataLocationStorageType": { - "enum": [ - "None", - "AzureBlob", - "Artifact", - "Snapshot", - "SavedAmlDataset", - "Asset" - ], + "pyFiles": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true + }, + "driverMemory": { + "type": "string", + "nullable": true + }, + "driverCores": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "executorMemory": { + "type": "string", + "nullable": true + }, + "executorCores": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "numberExecutors": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "environmentAssetId": { + "type": "string", + "nullable": true + }, + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "inlineEnvironmentDefinitionString": { + "type": "string", + "nullable": true + }, + "conf": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "compute": { + "type": "string", + "nullable": true + }, + "resources": { + "$ref": "#/components/schemas/ResourcesSetting" + }, + "identity": { + "$ref": "#/components/schemas/IdentitySetting" + } + }, + "additionalProperties": false + }, + "ApiAndParameters": { + "type": "object", + "properties": { + "api": { + "type": "string", + "nullable": true + }, + "parameters": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowToolSettingParameter" + }, + "description": "This is a dictionary", + "nullable": true + }, + "default_prompt": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ApplicationEndpointConfiguration": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ApplicationEndpointType" + }, + "port": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "nodes": { + "$ref": "#/components/schemas/Nodes" + } + }, + "additionalProperties": false + }, + "ApplicationEndpointType": { + "enum": [ + "Jupyter", + "JupyterLab", + "SSH", + "TensorBoard", + "VSCode", + "Theia", + "Grafana", + "Custom", + "RayDashboard" + ], + "type": "string" + }, + "ArgumentAssignment": { + "type": "object", + "properties": { + "valueType": { + "$ref": "#/components/schemas/ArgumentValueType" + }, + "value": { + "type": "string", + "nullable": true + }, + "nestedArgumentList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArgumentAssignment" + }, + "nullable": true + }, + "stringInterpolationArgumentList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArgumentAssignment" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ArgumentValueType": { + "enum": [ + "Literal", + "Parameter", + "Input", + "Output", + "NestedList", + "StringInterpolationList" + ], + "type": "string" + }, + "Asset": { + "type": "object", + "properties": { + "assetId": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AssetDefinition": { + "type": "object", + "properties": { + "path": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/AEVAAssetType" + }, + "assetId": { + "type": "string", + "nullable": true + }, + "serializedAssetId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AssetNameAndVersionIdentifier": { + "type": "object", + "properties": { + "assetName": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + }, + "feedName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AssetOutputSettings": { + "type": "object", + "properties": { + "path": { + "type": "string", + "nullable": true + }, + "PathParameterAssignment": { + "$ref": "#/components/schemas/ParameterAssignment" + }, + "type": { + "$ref": "#/components/schemas/AEVAAssetType" + }, + "options": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "DataPath": { - "type": "object", - "properties": { - "dataStoreName": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "sqlDataPath": { - "$ref": "#/components/schemas/SqlDataPath" - } - }, - "additionalProperties": false + "dataStoreMode": { + "$ref": "#/components/schemas/AEVADataStoreMode" }, - "DataPathParameter": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "documentation": { - "type": "string", - "nullable": true - }, - "defaultValue": { - "$ref": "#/components/schemas/LegacyDataPath" - }, - "isOptional": { - "type": "boolean" - }, - "dataTypeId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "name": { + "type": "string", + "nullable": true }, - "DataPortDto": { - "type": "object", - "properties": { - "dataPortType": { - "$ref": "#/components/schemas/DataPortType" - }, - "dataPortName": { - "type": "string", - "nullable": true - }, - "dataStoreName": { - "type": "string", - "nullable": true - }, - "dataStoreIntellectualPropertyAccessMode": { - "$ref": "#/components/schemas/IntellectualPropertyAccessMode" - }, - "dataStoreIntellectualPropertyPublisher": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "DataPortType": { - "enum": [ - "Input", - "Output" - ], + "version": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AssetOutputSettingsParameter": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "documentation": { + "type": "string", + "nullable": true + }, + "defaultValue": { + "$ref": "#/components/schemas/AssetOutputSettings" + } + }, + "additionalProperties": false + }, + "AssetPublishResult": { + "type": "object", + "properties": { + "feedName": { + "type": "string", + "nullable": true + }, + "assetName": { + "type": "string", + "nullable": true + }, + "assetVersion": { + "type": "string", + "nullable": true + }, + "stepName": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "nullable": true + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "createdTime": { + "type": "string", + "format": "date-time" + }, + "lastUpdatedTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "regionalPublishResults": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AssetPublishSingleRegionResult" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AssetPublishSingleRegionResult": { + "type": "object", + "properties": { + "stepName": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "nullable": true + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "lastUpdatedTime": { + "type": "string", + "format": "date-time" + }, + "totalSteps": { + "type": "integer", + "format": "int32" + }, + "finishedSteps": { + "type": "integer", + "format": "int32" + }, + "remainingSteps": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "AssetScopeTypes": { + "enum": [ + "Workspace", + "Global", + "All", + "Feed" + ], + "type": "string" + }, + "AssetSourceType": { + "enum": [ + "Unknown", + "Local", + "GithubFile", + "GithubFolder", + "DevopsArtifactsZip" + ], + "type": "string" + }, + "AssetType": { + "enum": [ + "Component", + "Model", + "Environment", + "Dataset", + "DataStore", + "SampleGraph", + "FlowToolSetting", + "FlowConnection", + "FlowRuntimeSpec" + ], + "type": "string" + }, + "AssetTypeMetaInfo": { + "type": "object", + "properties": { + "consumptionMode": { + "$ref": "#/components/schemas/ConsumeMode" + } + }, + "additionalProperties": false + }, + "AssetVersionPublishRequest": { + "type": "object", + "properties": { + "assetType": { + "$ref": "#/components/schemas/AssetType" + }, + "assetSourceType": { + "$ref": "#/components/schemas/AssetSourceType" + }, + "yamlFile": { + "type": "string", + "nullable": true + }, + "sourceZipUrl": { + "type": "string", + "nullable": true + }, + "sourceZipFile": { + "type": "string", + "format": "binary", + "nullable": true + }, + "feedName": { + "type": "string", + "nullable": true + }, + "setAsDefaultVersion": { + "type": "boolean" + }, + "referencedAssets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssetNameAndVersionIdentifier" + }, + "nullable": true + }, + "flowFile": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AssignedUser": { + "type": "object", + "properties": { + "objectId": { + "type": "string", + "nullable": true + }, + "tenantId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AttachCosmosRequest": { + "type": "object", + "properties": { + "accountEndpoint": { + "type": "string", + "nullable": true + }, + "resourceArmId": { + "type": "string", + "nullable": true + }, + "databaseName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AuthKeys": { + "type": "object", + "properties": { + "primaryKey": { + "type": "string", + "nullable": true + }, + "secondaryKey": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AutoClusterComputeSpecification": { + "type": "object", + "properties": { + "instanceSize": { + "type": "string", + "nullable": true + }, + "instancePriority": { + "type": "string", + "nullable": true + }, + "osType": { + "type": "string", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "runtimeVersion": { + "type": "string", + "nullable": true + }, + "quotaEnforcementResourceId": { + "type": "string", + "nullable": true + }, + "modelComputeSpecificationId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AutoDeleteCondition": { + "enum": [ + "CreatedGreaterThan", + "LastAccessedGreaterThan" + ], + "type": "string" + }, + "AutoDeleteSetting": { + "type": "object", + "properties": { + "condition": { + "$ref": "#/components/schemas/AutoDeleteCondition" + }, + "value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AutoFeaturizeConfiguration": { + "type": "object", + "properties": { + "featurizationConfig": { + "$ref": "#/components/schemas/FeaturizationSettings" + } + }, + "additionalProperties": false + }, + "AutoMLComponentConfiguration": { + "type": "object", + "properties": { + "autoTrainConfig": { + "$ref": "#/components/schemas/AutoTrainConfiguration" + }, + "autoFeaturizeConfig": { + "$ref": "#/components/schemas/AutoFeaturizeConfiguration" + } + }, + "additionalProperties": false + }, + "AutoScaler": { + "type": "object", + "properties": { + "autoscaleEnabled": { + "type": "boolean", + "nullable": true + }, + "minReplicas": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxReplicas": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "targetUtilization": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "refreshPeriodInSeconds": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "AutoTrainConfiguration": { + "type": "object", + "properties": { + "generalSettings": { + "$ref": "#/components/schemas/GeneralSettings" + }, + "limitSettings": { + "$ref": "#/components/schemas/LimitSettings" + }, + "dataSettings": { + "$ref": "#/components/schemas/DataSettings" + }, + "forecastingSettings": { + "$ref": "#/components/schemas/ForecastingSettings" + }, + "trainingSettings": { + "$ref": "#/components/schemas/TrainingSettings" + }, + "sweepSettings": { + "$ref": "#/components/schemas/SweepSettings" + }, + "imageModelSettings": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "computeConfiguration": { + "$ref": "#/components/schemas/AEVAComputeConfiguration" + }, + "resourceConfigurtion": { + "$ref": "#/components/schemas/AEVAResourceConfiguration" + }, + "environmentId": { + "type": "string", + "nullable": true + }, + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "AutologgerSettings": { + "type": "object", + "properties": { + "mlFlowAutologger": { + "$ref": "#/components/schemas/MLFlowAutologgerState" + } + }, + "additionalProperties": false + }, + "AvailabilityResponse": { + "type": "object", + "properties": { + "isAvailable": { + "type": "boolean" + }, + "error": { + "$ref": "#/components/schemas/ErrorResponse" + } + }, + "additionalProperties": false + }, + "AzureBlobReference": { + "type": "object", + "properties": { + "container": { + "type": "string", + "nullable": true + }, + "sasToken": { + "type": "string", + "nullable": true + }, + "uri": { + "type": "string", + "nullable": true + }, + "account": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AzureDataLakeGen2Reference": { + "type": "object", + "properties": { + "fileSystemName": { + "type": "string", + "nullable": true + }, + "uri": { + "type": "string", + "nullable": true + }, + "account": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AzureDataLakeReference": { + "type": "object", + "properties": { + "tenant": { + "type": "string", + "nullable": true + }, + "subscription": { + "type": "string", + "nullable": true + }, + "resourceGroup": { + "type": "string", + "nullable": true + }, + "uri": { + "type": "string", + "nullable": true + }, + "account": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AzureDatabaseReference": { + "type": "object", + "properties": { + "tableName": { + "type": "string", + "nullable": true + }, + "sqlQuery": { + "type": "string", + "nullable": true + }, + "storedProcedureName": { + "type": "string", + "nullable": true + }, + "storedProcedureParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StoredProcedureParameter" + }, + "nullable": true + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AzureFilesReference": { + "type": "object", + "properties": { + "share": { + "type": "string", + "nullable": true + }, + "uri": { + "type": "string", + "nullable": true + }, + "account": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AzureMLModuleVersionDescriptor": { + "type": "object", + "properties": { + "moduleVersionId": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "AzureOpenAIDeploymentDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "modelName": { + "type": "string", + "nullable": true + }, + "capabilities": { + "$ref": "#/components/schemas/AzureOpenAIModelCapabilities" + } + }, + "additionalProperties": false + }, + "AzureOpenAIModelCapabilities": { + "type": "object", + "properties": { + "completion": { + "type": "boolean", + "nullable": true + }, + "chat_completion": { + "type": "boolean", + "nullable": true + }, + "embeddings": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "BatchAiComputeInfo": { + "type": "object", + "properties": { + "batchAiSubscriptionId": { + "type": "string", + "nullable": true + }, + "batchAiResourceGroup": { + "type": "string", + "nullable": true + }, + "batchAiWorkspaceName": { + "type": "string", + "nullable": true + }, + "clusterName": { + "type": "string", + "nullable": true + }, + "nativeSharedDirectory": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "BatchDataInput": { + "type": "object", + "properties": { + "dataUri": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "BatchExportComponentSpecResponse": { + "type": "object", + "properties": { + "componentSpecMetaInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ComponentSpecMetaInfo" + }, + "nullable": true + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "BatchExportRawComponentResponse": { + "type": "object", + "properties": { + "rawComponentDtos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RawComponentDto" + }, + "nullable": true + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "BatchGetComponentHashesRequest": { + "type": "object", + "properties": { + "moduleHashVersion": { + "$ref": "#/components/schemas/AetherModuleHashVersion" + }, + "moduleEntities": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AetherModuleEntity" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "BatchGetComponentRequest": { + "type": "object", + "properties": { + "versionIds": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true + }, + "nameAndVersions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ComponentNameMetaInfo" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Binding": { + "type": "object", + "properties": { + "bindingType": { + "$ref": "#/components/schemas/BindingType" + } + }, + "additionalProperties": false + }, + "BindingType": { + "enum": [ + "Basic" + ], + "type": "string" + }, + "BuildContextLocationType": { + "enum": [ + "Git", + "StorageAccount" + ], + "type": "string" + }, + "BulkTestDto": { + "type": "object", + "properties": { + "bulkTestId": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "runtime": { + "type": "string", + "nullable": true + }, + "createdBy": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + }, + "createdOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "evaluationCount": { + "type": "integer", + "format": "int32" + }, + "variantCount": { + "type": "integer", + "format": "int32" + }, + "flowSubmitRunSettings": { + "$ref": "#/components/schemas/FlowSubmitRunSettings" + }, + "inputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowInputDefinition" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowOutputDefinition" + }, + "description": "This is a dictionary", + "nullable": true + }, + "batch_inputs": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary" + }, + "nullable": true + }, + "batchDataInput": { + "$ref": "#/components/schemas/BatchDataInput" + } + }, + "additionalProperties": false + }, + "ChatGroupRole": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "role": { + "type": "string", + "nullable": true + }, + "stop_signal": { + "type": "string", + "nullable": true + }, + "path": { + "type": "string", + "nullable": true + }, + "variant": { + "type": "string", + "nullable": true + }, + "connections": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary" + }, + "description": "This is a dictionary", + "nullable": true + }, + "environment_variables": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "DataReference": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/DataReferenceType" - }, - "azureBlobReference": { - "$ref": "#/components/schemas/AzureBlobReference" - }, - "azureDataLakeReference": { - "$ref": "#/components/schemas/AzureDataLakeReference" - }, - "azureFilesReference": { - "$ref": "#/components/schemas/AzureFilesReference" - }, - "azureSqlDatabaseReference": { - "$ref": "#/components/schemas/AzureDatabaseReference" - }, - "azurePostgresDatabaseReference": { - "$ref": "#/components/schemas/AzureDatabaseReference" - }, - "azureDataLakeGen2Reference": { - "$ref": "#/components/schemas/AzureDataLakeGen2Reference" - }, - "dbfsReference": { - "$ref": "#/components/schemas/DBFSReference" - }, - "azureMySqlDatabaseReference": { - "$ref": "#/components/schemas/AzureDatabaseReference" - }, - "customReference": { - "$ref": "#/components/schemas/CustomReference" - }, - "hdfsReference": { - "$ref": "#/components/schemas/HdfsReference" - } - }, - "additionalProperties": false - }, - "DataReferenceConfiguration": { - "type": "object", - "properties": { - "dataStoreName": { - "type": "string", - "nullable": true - }, - "mode": { - "$ref": "#/components/schemas/DataStoreMode" - }, - "pathOnDataStore": { - "type": "string", - "nullable": true - }, - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "overwrite": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "DataReferenceType": { - "enum": [ - "None", - "AzureBlob", - "AzureDataLake", - "AzureFiles", - "AzureSqlDatabase", - "AzurePostgresDatabase", - "AzureDataLakeGen2", - "DBFS", - "AzureMySqlDatabase", - "Custom", - "Hdfs" - ], - "type": "string" - }, - "DataSetDefinition": { - "type": "object", - "properties": { - "dataTypeShortName": { - "type": "string", - "nullable": true - }, - "parameterName": { - "type": "string", - "nullable": true - }, - "value": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - } - }, - "additionalProperties": false - }, - "DataSetDefinitionValue": { - "type": "object", - "properties": { - "literalValue": { - "$ref": "#/components/schemas/DataPath" - }, - "dataSetReference": { - "$ref": "#/components/schemas/RegisteredDataSetReference" - }, - "savedDataSetReference": { - "$ref": "#/components/schemas/SavedDataSetReference" - }, - "assetDefinition": { - "$ref": "#/components/schemas/AssetDefinition" - } - }, - "additionalProperties": false - }, - "DataSetPathParameter": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "documentation": { - "type": "string", - "nullable": true - }, - "defaultValue": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - }, - "isOptional": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "DataSettings": { - "type": "object", - "properties": { - "targetColumnName": { - "type": "string", - "nullable": true - }, - "weightColumnName": { - "type": "string", - "nullable": true - }, - "positiveLabel": { - "type": "string", - "nullable": true - }, - "validationData": { - "$ref": "#/components/schemas/ValidationDataSettings" - }, - "testData": { - "$ref": "#/components/schemas/TestDataSettings" - } - }, - "additionalProperties": false - }, - "DataSourceType": { - "enum": [ - "None", - "PipelineDataSource", - "AmlDataset", - "GlobalDataset", - "FeedModel", - "FeedDataset", - "AmlDataVersion", - "AMLModelVersion" - ], - "type": "string" - }, - "DataStoreMode": { - "enum": [ - "Mount", - "Download", - "Upload" - ], - "type": "string" - }, - "DataTransferCloudConfiguration": { - "type": "object", - "properties": { - "AllowOverwrite": { - "type": "boolean", - "nullable": true - } - }, - "additionalProperties": false - }, - "DataTransferSink": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/DataTransferStorageType" - }, - "fileSystem": { - "$ref": "#/components/schemas/FileSystem" - }, - "databaseSink": { - "$ref": "#/components/schemas/DatabaseSink" - } - }, - "additionalProperties": false + "display_name": { + "type": "string", + "nullable": true }, - "DataTransferSource": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/DataTransferStorageType" - }, - "fileSystem": { - "$ref": "#/components/schemas/FileSystem" - }, - "databaseSource": { - "$ref": "#/components/schemas/DatabaseSource" - } - }, - "additionalProperties": false + "description": { + "type": "string", + "nullable": true }, - "DataTransferStorageType": { - "enum": [ - "DataBase", - "FileSystem" - ], + "tags": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "DataTransferTaskType": { - "enum": [ - "ImportData", - "ExportData", - "CopyData" - ], + "properties": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "resources": { + "$ref": "#/components/schemas/SessionRuntimeResources" + }, + "inputs": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "CloudError": { + "type": "object", + "properties": { + "code": { + "type": "string", + "nullable": true + }, + "message": { + "type": "string", + "nullable": true + }, + "target": { + "type": "string", + "nullable": true + }, + "details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CloudError" + }, + "nullable": true, + "readOnly": true + }, + "additionalInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AdditionalErrorInfo" + }, + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false + }, + "CloudPrioritySetting": { + "type": "object", + "properties": { + "scopePriority": { + "$ref": "#/components/schemas/PriorityConfiguration" }, - "DataTransferV2CloudSetting": { - "type": "object", - "properties": { - "taskType": { - "$ref": "#/components/schemas/DataTransferTaskType" - }, - "ComputeName": { - "type": "string", - "nullable": true - }, - "CopyDataTask": { - "$ref": "#/components/schemas/CopyDataTask" - }, - "ImportDataTask": { - "$ref": "#/components/schemas/ImportDataTask" - }, - "ExportDataTask": { - "$ref": "#/components/schemas/ExportDataTask" - }, - "DataTransferSources": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DataTransferSource" - }, - "description": "This is a dictionary", - "nullable": true - }, - "DataTransferSinks": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DataTransferSink" - }, - "description": "This is a dictionary", - "nullable": true - }, - "DataCopyMode": { - "$ref": "#/components/schemas/DataCopyMode" - } - }, - "additionalProperties": false + "AmlComputePriority": { + "$ref": "#/components/schemas/PriorityConfiguration" }, - "DataTypeCreationInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "isDirectory": { - "type": "boolean" - }, - "fileExtension": { - "type": "string", - "nullable": true - }, - "parentDataTypeIds": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "ItpPriority": { + "$ref": "#/components/schemas/PriorityConfiguration" }, - "DataTypeMechanism": { - "enum": [ - "ErrorWhenNotExisting", - "RegisterWhenNotExisting", - "RegisterBuildinDataTypeOnly" - ], - "type": "string" + "SingularityPriority": { + "$ref": "#/components/schemas/PriorityConfiguration" + } + }, + "additionalProperties": false + }, + "CloudSettings": { + "type": "object", + "properties": { + "linkedSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParameterAssignment" + }, + "nullable": true }, - "DatabaseSink": { - "type": "object", - "properties": { - "connection": { - "type": "string", - "nullable": true - }, - "table": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "priorityConfig": { + "$ref": "#/components/schemas/PriorityConfiguration" }, - "DatabaseSource": { - "type": "object", - "properties": { - "connection": { - "type": "string", - "nullable": true - }, - "query": { - "type": "string", - "nullable": true - }, - "storedProcedureName": { - "type": "string", - "nullable": true - }, - "storedProcedureParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StoredProcedureParameter" - }, - "nullable": true - } - }, - "additionalProperties": false + "hdiRunConfig": { + "$ref": "#/components/schemas/HdiRunConfiguration" }, - "DatabricksComputeInfo": { - "type": "object", - "properties": { - "existingClusterId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "subGraphConfig": { + "$ref": "#/components/schemas/SubGraphConfiguration" }, - "DatabricksConfiguration": { - "type": "object", - "properties": { - "workers": { - "type": "integer", - "format": "int32" - }, - "minimumWorkerCount": { - "type": "integer", - "format": "int32" - }, - "maxMumWorkerCount": { - "type": "integer", - "format": "int32" - }, - "sparkVersion": { - "type": "string", - "nullable": true - }, - "nodeTypeId": { - "type": "string", - "nullable": true - }, - "sparkConf": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "sparkEnvVars": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "clusterLogConfDbfsPath": { - "type": "string", - "nullable": true - }, - "dbfsInitScripts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InitScriptInfoDto" - }, - "nullable": true - }, - "instancePoolId": { - "type": "string", - "nullable": true - }, - "timeoutSeconds": { - "type": "integer", - "format": "int32" - }, - "notebookTask": { - "$ref": "#/components/schemas/NoteBookTaskDto" - }, - "sparkPythonTask": { - "$ref": "#/components/schemas/SparkPythonTaskDto" - }, - "sparkJarTask": { - "$ref": "#/components/schemas/SparkJarTaskDto" - }, - "sparkSubmitTask": { - "$ref": "#/components/schemas/SparkSubmitTaskDto" - }, - "jarLibraries": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "eggLibraries": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "whlLibraries": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "pypiLibraries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PythonPyPiOrRCranLibraryDto" - }, - "nullable": true - }, - "rCranLibraries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PythonPyPiOrRCranLibraryDto" - }, - "nullable": true - }, - "mavenLibraries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MavenLibraryDto" - }, - "nullable": true - }, - "libraries": { - "type": "array", - "items": {}, - "nullable": true - }, - "linkedADBWorkspaceMetadata": { - "$ref": "#/components/schemas/LinkedADBWorkspaceMetadata" - }, - "databrickResourceId": { - "type": "string", - "nullable": true - }, - "autoScale": { - "type": "boolean" - } - }, - "additionalProperties": false + "autoMLComponentConfig": { + "$ref": "#/components/schemas/AutoMLComponentConfiguration" }, - "DatacacheConfiguration": { - "type": "object", - "properties": { - "datacacheId": { - "type": "string", - "format": "uuid" - }, - "datacacheStore": { - "type": "string", - "nullable": true - }, - "datasetId": { - "type": "string", - "format": "uuid" - }, - "mode": { - "$ref": "#/components/schemas/DatacacheMode" - }, - "replica": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "failureFallback": { - "type": "boolean" - }, - "pathOnCompute": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "DatacacheMode": { - "enum": [ - "Mount" - ], - "type": "string" - }, - "DatasetAccessModes": { - "enum": [ - "Default", - "DatasetInDpv2", - "AssetInDpv2", - "DatasetInDesignerUI", - "DatasetInDpv2WithDatasetInDesignerUI", - "Dataset", - "AssetInDpv2WithDatasetInDesignerUI", - "DatasetAndAssetInDpv2WithDatasetInDesignerUI", - "AssetInDesignerUI", - "AssetInDpv2WithAssetInDesignerUI", - "Asset" - ], - "type": "string" - }, - "DatasetConsumptionType": { - "enum": [ - "RunInput", - "Reference" - ], - "type": "string" - }, - "DatasetDeliveryMechanism": { - "enum": [ - "Direct", - "Mount", - "Download", - "Hdfs" - ], - "type": "string" - }, - "DatasetIdentifier": { - "type": "object", - "properties": { - "savedId": { - "type": "string", - "nullable": true - }, - "registeredId": { - "type": "string", - "nullable": true - }, - "registeredVersion": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "apCloudConfig": { + "$ref": "#/components/schemas/APCloudConfiguration" }, - "DatasetInputDetails": { - "type": "object", - "properties": { - "inputName": { - "type": "string", - "nullable": true - }, - "mechanism": { - "$ref": "#/components/schemas/DatasetDeliveryMechanism" - }, - "pathOnCompute": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "scopeCloudConfig": { + "$ref": "#/components/schemas/ScopeCloudConfiguration" }, - "DatasetLineage": { - "type": "object", - "properties": { - "identifier": { - "$ref": "#/components/schemas/DatasetIdentifier" - }, - "consumptionType": { - "$ref": "#/components/schemas/DatasetConsumptionType" - }, - "inputDetails": { - "$ref": "#/components/schemas/DatasetInputDetails" - } - }, - "additionalProperties": false + "esCloudConfig": { + "$ref": "#/components/schemas/EsCloudConfiguration" }, - "DatasetOutput": { - "type": "object", - "properties": { - "datasetType": { - "$ref": "#/components/schemas/DatasetType" - }, - "datasetRegistration": { - "$ref": "#/components/schemas/DatasetRegistration" - }, - "datasetOutputOptions": { - "$ref": "#/components/schemas/DatasetOutputOptions" - } - }, - "additionalProperties": false + "dataTransferCloudConfig": { + "$ref": "#/components/schemas/DataTransferCloudConfiguration" }, - "DatasetOutputDetails": { - "type": "object", - "properties": { - "outputName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "amlSparkCloudSetting": { + "$ref": "#/components/schemas/AmlSparkCloudSetting" }, - "DatasetOutputOptions": { - "type": "object", - "properties": { - "sourceGlobs": { - "$ref": "#/components/schemas/GlobsOptions" - }, - "pathOnDatastore": { - "type": "string", - "nullable": true - }, - "PathOnDatastoreParameterAssignment": { - "$ref": "#/components/schemas/ParameterAssignment" - } - }, - "additionalProperties": false + "dataTransferV2CloudSetting": { + "$ref": "#/components/schemas/DataTransferV2CloudSetting" + } + }, + "additionalProperties": false + }, + "CollieRunSettings": { + "type": "object", + "properties": { + "amlComputeName": { + "type": "string", + "nullable": true + }, + "nodeCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "managedIdentityClientId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ColumnTransformer": { + "type": "object", + "properties": { + "fields": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "DatasetOutputType": { - "enum": [ - "RunOutput", - "Reference" - ], + "parameters": { + "nullable": true + } + }, + "additionalProperties": false + }, + "CommandJob": { + "type": "object", + "properties": { + "jobType": { + "$ref": "#/components/schemas/JobType" + }, + "codeId": { + "type": "string", + "nullable": true + }, + "command": { + "minLength": 1, + "type": "string", + "nullable": true + }, + "environmentId": { + "type": "string", + "nullable": true + }, + "inputDataBindings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/InputDataBinding" + }, + "nullable": true + }, + "outputDataBindings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/OutputDataBinding" + }, + "nullable": true + }, + "distribution": { + "$ref": "#/components/schemas/DistributionConfiguration" + }, + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "parameters": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + }, + "autologgerSettings": { + "$ref": "#/components/schemas/MfeInternalAutologgerSettings" + }, + "limits": { + "$ref": "#/components/schemas/CommandJobLimits" + }, + "provisioningState": { + "$ref": "#/components/schemas/JobProvisioningState" + }, + "parentJobName": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "experimentName": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/JobStatus" + }, + "interactionEndpoints": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/JobEndpoint" + }, + "nullable": true + }, + "identity": { + "$ref": "#/components/schemas/MfeInternalIdentityConfiguration" + }, + "compute": { + "$ref": "#/components/schemas/ComputeConfiguration" + }, + "priority": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "output": { + "$ref": "#/components/schemas/JobOutputArtifacts" + }, + "isArchived": { + "type": "boolean" + }, + "schedule": { + "$ref": "#/components/schemas/ScheduleBase" + }, + "componentId": { + "type": "string", + "nullable": true + }, + "notificationSetting": { + "$ref": "#/components/schemas/NotificationSetting" + }, + "secretsConfiguration": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/MfeInternalSecretConfiguration" + }, + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "DatasetRegistration": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "createNewVersion": { - "type": "boolean" - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "additionalTransformations": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "CommandJobLimits": { + "type": "object", + "properties": { + "jobLimitsType": { + "$ref": "#/components/schemas/JobLimitsType" + }, + "timeout": { + "type": "string", + "format": "date-span", + "nullable": true + } + }, + "additionalProperties": false + }, + "CommandReturnCodeConfig": { + "type": "object", + "properties": { + "returnCode": { + "$ref": "#/components/schemas/SuccessfulCommandReturnCode" + }, + "successfulReturnCodes": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Communicator": { + "enum": [ + "None", + "ParameterServer", + "Gloo", + "Mpi", + "Nccl", + "ParallelTask" + ], + "type": "string" + }, + "ComponentConfiguration": { + "type": "object", + "properties": { + "componentIdentifier": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComponentInput": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "optional": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + }, + "default": { + "type": "string", + "nullable": true + }, + "enum": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "DatasetRegistrationOptions": { - "type": "object", - "properties": { - "additionalTransformation": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "min": { + "type": "string", + "nullable": true }, - "DatasetType": { - "enum": [ - "File", - "Tabular" - ], + "max": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComponentJob": { + "type": "object", + "properties": { + "compute": { + "$ref": "#/components/schemas/ComputeConfiguration" + }, + "componentId": { + "type": "string", + "nullable": true + }, + "inputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ComponentJobInput" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ComponentJobOutput" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComponentJobInput": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/InputData" + }, + "inputBinding": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComponentJobOutput": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/MfeInternalOutputData" + }, + "outputBinding": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComponentNameAndDefaultVersion": { + "type": "object", + "properties": { + "componentName": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + }, + "feedName": { + "type": "string", + "nullable": true + }, + "registryName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComponentNameMetaInfo": { + "type": "object", + "properties": { + "feedName": { + "type": "string", + "nullable": true + }, + "componentName": { + "type": "string", + "nullable": true + }, + "componentVersion": { + "type": "string", + "nullable": true + }, + "registryName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComponentOutput": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComponentPreflightResult": { + "type": "object", + "properties": { + "errorDetails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RootError" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ComponentRegistrationTypeEnum": { + "enum": [ + "Normal", + "AnonymousAmlModule", + "AnonymousAmlModuleVersion", + "ModuleEntityOnly" + ], + "type": "string" + }, + "ComponentSpecMetaInfo": { + "type": "object", + "properties": { + "componentSpec": { + "nullable": true + }, + "componentVersion": { + "type": "string", + "nullable": true + }, + "isAnonymous": { + "type": "boolean" + }, + "properties": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "DatastoreSetting": { - "type": "object", - "properties": { - "dataStoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "DbfsStorageInfoDto": { - "type": "object", - "properties": { - "destination": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "componentName": { + "type": "string", + "nullable": true }, - "DebugInfoResponse": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type.", - "nullable": true - }, - "message": { - "type": "string", - "description": "The message.", - "nullable": true - }, - "stackTrace": { - "type": "string", - "description": "The stack trace.", - "nullable": true - }, - "innerException": { - "$ref": "#/components/schemas/DebugInfoResponse" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary", - "nullable": true - }, - "errorResponse": { - "$ref": "#/components/schemas/ErrorResponse" - } - }, - "additionalProperties": false, - "description": "Internal debugging information not intended for external clients." + "description": { + "type": "string", + "nullable": true }, - "DeliveryMechanism": { - "enum": [ - "Direct", - "Mount", - "Download", - "Hdfs" - ], + "isArchived": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ComponentType": { + "enum": [ + "Unknown", + "CommandComponent", + "Command" + ], + "type": "string" + }, + "ComponentUpdateRequest": { + "type": "object", + "properties": { + "originalModuleEntity": { + "$ref": "#/components/schemas/ModuleEntity" + }, + "updateModuleEntity": { + "$ref": "#/components/schemas/ModuleEntity" + }, + "moduleName": { + "type": "string", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "DeployFlowRequest": { - "type": "object", - "properties": { - "sourceResourceId": { - "type": "string", - "nullable": true - }, - "sourceFlowRunId": { - "type": "string", - "nullable": true - }, - "sourceFlowId": { - "type": "string", - "nullable": true - }, - "flow": { - "$ref": "#/components/schemas/Flow" - }, - "flowType": { - "$ref": "#/components/schemas/FlowType" - }, - "flowSubmitRunSettings": { - "$ref": "#/components/schemas/FlowSubmitRunSettings" - }, - "outputNamesIncludedInEndpointResponse": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "endpointName": { - "type": "string", - "nullable": true - }, - "endpointDescription": { - "type": "string", - "nullable": true - }, - "authMode": { - "$ref": "#/components/schemas/EndpointAuthMode" - }, - "identity": { - "$ref": "#/components/schemas/ManagedServiceIdentity" - }, - "endpointTags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "enablePublicNetworkAccess": { - "type": "boolean", - "nullable": true - }, - "connectionOverrides": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionOverrideSetting" - }, - "nullable": true - }, - "useWorkspaceConnection": { - "type": "boolean" - }, - "deploymentName": { - "type": "string", - "nullable": true - }, - "environment": { - "type": "string", - "nullable": true - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "deploymentTags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "appInsightsEnabled": { - "type": "boolean" - }, - "enableModelDataCollector": { - "type": "boolean" - }, - "skipUpdateTrafficToFull": { - "type": "boolean" - }, - "enableStreamingResponse": { - "type": "boolean" - }, - "instanceType": { - "type": "string", - "nullable": true - }, - "instanceCount": { - "type": "integer", - "format": "int32" - }, - "autoGrantConnectionPermission": { - "type": "boolean" - } - }, - "additionalProperties": false + "overwriteWithOriginalNameAndVersion": { + "type": "boolean", + "nullable": true }, - "DeploymentInfo": { - "type": "object", - "properties": { - "operationId": { - "type": "string", - "nullable": true - }, - "serviceId": { - "type": "string", - "nullable": true - }, - "serviceName": { - "type": "string", - "nullable": true - }, - "statusDetail": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "snapshotId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComponentValidationRequest": { + "type": "object", + "properties": { + "componentIdentifier": { + "type": "string", + "nullable": true + }, + "computeIdentity": { + "$ref": "#/components/schemas/ComputeIdentityDto" + }, + "executionContextDto": { + "$ref": "#/components/schemas/ExecutionContextDto" + }, + "environmentDefinition": { + "$ref": "#/components/schemas/EnvironmentDefinitionDto" + }, + "dataPortDtos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataPortDto" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ComponentValidationResponse": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/ValidationStatus" + }, + "error": { + "$ref": "#/components/schemas/ErrorResponse" + } + }, + "additionalProperties": false + }, + "Compute": { + "type": "object", + "properties": { + "target": { + "type": "string", + "nullable": true + }, + "targetType": { + "type": "string", + "nullable": true + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "instanceType": { + "type": "string", + "nullable": true + }, + "instanceCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "gpuCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "priority": { + "type": "string", + "nullable": true + }, + "region": { + "type": "string", + "nullable": true + }, + "armId": { + "type": "string", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComputeConfiguration": { + "type": "object", + "properties": { + "target": { + "type": "string", + "nullable": true + }, + "instanceCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxInstanceCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isLocal": { + "type": "boolean" + }, + "location": { + "type": "string", + "nullable": true + }, + "isClusterless": { + "type": "boolean" + }, + "instanceType": { + "type": "string", + "nullable": true + }, + "instancePriority": { + "type": "string", + "nullable": true + }, + "jobPriority": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "shmSize": { + "type": "string", + "nullable": true + }, + "dockerArgs": { + "type": "string", + "nullable": true + }, + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ComputeContract": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "location": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "DistributionConfiguration": { - "type": "object", - "properties": { - "distributionType": { - "$ref": "#/components/schemas/DistributionType" - } - }, - "additionalProperties": false + "identity": { + "$ref": "#/components/schemas/ComputeIdentityContract" }, - "DistributionParameter": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "label": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "inputType": { - "$ref": "#/components/schemas/DistributionParameterEnum" - } - }, - "additionalProperties": false + "properties": { + "$ref": "#/components/schemas/ComputeProperties" + } + }, + "additionalProperties": false + }, + "ComputeDetails": { + "type": "object" + }, + "ComputeEnvironmentType": { + "enum": [ + "ACI", + "AKS", + "AMLCOMPUTE", + "IOT", + "AKSENDPOINT", + "MIRSINGLEMODEL", + "MIRAMLCOMPUTE", + "MIRGA", + "AMLARC", + "BATCHAMLCOMPUTE", + "UNKNOWN" + ], + "type": "string" + }, + "ComputeIdentityContract": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "systemIdentityUrl": { + "type": "string", + "nullable": true + }, + "principalId": { + "type": "string", + "nullable": true + }, + "tenantId": { + "type": "string", + "nullable": true + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecretUrl": { + "type": "string", + "nullable": true + }, + "userAssignedIdentities": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ComputeRPUserAssignedIdentity" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComputeIdentityDto": { + "type": "object", + "properties": { + "computeName": { + "type": "string", + "nullable": true + }, + "computeTargetType": { + "$ref": "#/components/schemas/ComputeTargetType" + }, + "intellectualPropertyPublisher": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComputeInfo": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true }, - "DistributionParameterEnum": { - "enum": [ - "Text", - "Number" - ], - "type": "string" + "computeType": { + "$ref": "#/components/schemas/ComputeEnvironmentType" }, - "DistributionType": { - "enum": [ - "PyTorch", - "TensorFlow", - "Mpi", - "Ray" - ], - "type": "string" + "isSslEnabled": { + "type": "boolean" }, - "DoWhileControlFlowInfo": { - "type": "object", - "properties": { - "outputPortNameToInputPortNamesMapping": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "nullable": true - }, - "conditionOutputPortName": { - "type": "string", - "nullable": true - }, - "runSettings": { - "$ref": "#/components/schemas/DoWhileControlFlowRunSettings" - } - }, - "additionalProperties": false + "isGpuType": { + "type": "boolean" }, - "DoWhileControlFlowRunSettings": { - "type": "object", - "properties": { - "maxLoopIterationCount": { - "$ref": "#/components/schemas/ParameterAssignment" - } - }, - "additionalProperties": false + "clusterPurpose": { + "type": "string", + "nullable": true }, - "DockerBuildContext": { - "type": "object", - "properties": { - "locationType": { - "$ref": "#/components/schemas/BuildContextLocationType" - }, - "location": { - "type": "string", - "nullable": true - }, - "dockerfilePath": { - "type": "string", - "default": "Dockerfile", - "nullable": true - } - }, - "additionalProperties": false + "publicIpAddress": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComputeProperties": { + "required": [ + "computeType" + ], + "type": "object", + "properties": { + "createdOn": { + "type": "string", + "format": "date-time" + }, + "modifiedOn": { + "type": "string", + "format": "date-time" + }, + "disableLocalAuth": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "resourceId": { + "type": "string", + "nullable": true + }, + "computeType": { + "minLength": 1, + "type": "string" + }, + "computeLocation": { + "type": "string", + "nullable": true + }, + "provisioningState": { + "$ref": "#/components/schemas/ProvisioningState" + }, + "provisioningErrors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ODataErrorResponse" + }, + "nullable": true + }, + "provisioningWarnings": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "DockerConfiguration": { - "type": "object", - "properties": { - "useDocker": { - "type": "boolean", - "nullable": true - }, - "sharedVolumes": { - "type": "boolean", - "nullable": true - }, - "arguments": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "isAttachedCompute": { + "type": "boolean" }, - "DockerImagePlatform": { - "type": "object", - "properties": { - "os": { - "type": "string", - "nullable": true - }, - "architecture": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "properties": { + "$ref": "#/components/schemas/ComputeDetails" }, - "DockerSection": { - "type": "object", - "properties": { - "baseImage": { - "type": "string", - "nullable": true - }, - "platform": { - "$ref": "#/components/schemas/DockerImagePlatform" - }, - "baseDockerfile": { - "type": "string", - "nullable": true - }, - "buildContext": { - "$ref": "#/components/schemas/DockerBuildContext" - }, - "baseImageRegistry": { - "$ref": "#/components/schemas/ContainerRegistry" - } - }, - "additionalProperties": false + "status": { + "$ref": "#/components/schemas/ComputeStatus" }, - "DockerSettingConfiguration": { - "type": "object", - "properties": { - "useDocker": { - "type": "boolean", - "nullable": true - }, - "sharedVolumes": { - "type": "boolean", - "nullable": true - }, - "shmSize": { - "type": "string", - "nullable": true - }, - "arguments": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "warnings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ComputeWarning" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ComputeRPUserAssignedIdentity": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "nullable": true + }, + "tenantId": { + "type": "string", + "nullable": true + }, + "clientId": { + "type": "string", + "nullable": true + }, + "clientSecretUrl": { + "type": "string", + "nullable": true + }, + "resourceId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComputeRequest": { + "type": "object", + "properties": { + "nodeCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "gpuCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComputeSetting": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true }, - "DownloadResourceInfo": { - "type": "object", - "properties": { - "downloadUrl": { - "type": "string", - "nullable": true - }, - "size": { - "type": "integer", - "format": "int64" - } - }, - "additionalProperties": false + "computeType": { + "$ref": "#/components/schemas/ComputeType" }, - "EPRPipelineRunErrorClassificationRequest": { - "type": "object", - "properties": { - "rootRunId": { - "type": "string", - "nullable": true - }, - "runId": { - "type": "string", - "nullable": true - }, - "taskResult": { - "type": "string", - "nullable": true - }, - "failureType": { - "type": "string", - "nullable": true - }, - "failureName": { - "type": "string", - "nullable": true - }, - "responsibleTeam": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "batchAiComputeInfo": { + "$ref": "#/components/schemas/BatchAiComputeInfo" }, - "ETag": { - "type": "object", - "additionalProperties": false + "remoteDockerComputeInfo": { + "$ref": "#/components/schemas/RemoteDockerComputeInfo" }, - "EarlyTerminationPolicyType": { - "enum": [ - "Bandit", - "MedianStopping", - "TruncationSelection" - ], - "type": "string" + "hdiClusterComputeInfo": { + "$ref": "#/components/schemas/HdiClusterComputeInfo" }, - "EmailNotificationEnableType": { - "enum": [ - "JobCompleted", - "JobFailed", - "JobCancelled" - ], - "type": "string" + "mlcComputeInfo": { + "$ref": "#/components/schemas/MlcComputeInfo" }, - "EndpointAuthMode": { - "enum": [ - "AMLToken", - "Key", - "AADToken" - ], + "databricksComputeInfo": { + "$ref": "#/components/schemas/DatabricksComputeInfo" + } + }, + "additionalProperties": false + }, + "ComputeStatus": { + "type": "object", + "properties": { + "isStatusAvailable": { + "type": "boolean", + "readOnly": true + }, + "detailedStatus": { + "nullable": true + }, + "error": { + "$ref": "#/components/schemas/ODataError" + } + }, + "additionalProperties": false + }, + "ComputeStatusDetail": { + "type": "object", + "properties": { + "provisioningState": { + "type": "string", + "nullable": true + }, + "provisioningErrorMessage": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ComputeTargetType": { + "enum": [ + "Local", + "Remote", + "HdiCluster", + "ContainerInstance", + "AmlCompute", + "ComputeInstance", + "Cmk8s", + "SynapseSpark", + "Kubernetes", + "Aisc", + "GlobalJobDispatcher", + "Databricks", + "MockedCompute" + ], + "type": "string" + }, + "ComputeType": { + "enum": [ + "BatchAi", + "MLC", + "HdiCluster", + "RemoteDocker", + "Databricks", + "Aisc" + ], + "type": "string" + }, + "ComputeWarning": { + "type": "object", + "properties": { + "title": { + "type": "string", + "nullable": true + }, + "message": { + "type": "string", + "nullable": true + }, + "code": { + "type": "string", + "nullable": true + }, + "severity": { + "$ref": "#/components/schemas/SeverityLevel" + } + }, + "additionalProperties": false + }, + "ConfigValueType": { + "enum": [ + "String", + "Secret" + ], + "type": "string" + }, + "ConnectionAuthMode": { + "enum": [ + "Key", + "MeidToken" + ], + "type": "string" + }, + "ConnectionCategory": { + "enum": [ + "PythonFeed", + "ACR", + "Git", + "S3", + "Snowflake", + "AzureSqlDb", + "AzureSynapseAnalytics", + "AzureMySqlDb", + "AzurePostgresDb", + "AzureDataLakeGen2", + "Redis", + "ApiKey", + "AzureOpenAI", + "CognitiveSearch", + "CognitiveService", + "CustomKeys", + "AzureBlob", + "AzureOneLake", + "CosmosDb", + "CosmosDbMongoDbApi", + "AzureDataExplorer", + "AzureMariaDb", + "AzureDatabricksDeltaLake", + "AzureSqlMi", + "AzureTableStorage", + "AmazonRdsForOracle", + "AmazonRdsForSqlServer", + "AmazonRedshift", + "Db2", + "Drill", + "GoogleBigQuery", + "Greenplum", + "Hbase", + "Hive", + "Impala", + "Informix", + "MariaDb", + "MicrosoftAccess", + "MySql", + "Netezza", + "Oracle", + "Phoenix", + "PostgreSql", + "Presto", + "SapOpenHub", + "SapBw", + "SapHana", + "SapTable", + "Spark", + "SqlServer", + "Sybase", + "Teradata", + "Vertica", + "Cassandra", + "Couchbase", + "MongoDbV2", + "MongoDbAtlas", + "AmazonS3Compatible", + "FileServer", + "FtpServer", + "GoogleCloudStorage", + "Hdfs", + "OracleCloudStorage", + "Sftp", + "GenericHttp", + "ODataRest", + "Odbc", + "GenericRest", + "AmazonMws", + "Concur", + "Dynamics", + "DynamicsAx", + "DynamicsCrm", + "GoogleAdWords", + "Hubspot", + "Jira", + "Magento", + "Marketo", + "Office365", + "Eloqua", + "Responsys", + "OracleServiceCloud", + "PayPal", + "QuickBooks", + "Salesforce", + "SalesforceServiceCloud", + "SalesforceMarketingCloud", + "SapCloudForCustomer", + "SapEcc", + "ServiceNow", + "SharePointOnlineList", + "Shopify", + "Square", + "WebTable", + "Xero", + "Zoho", + "GenericContainerRegistry", + "OpenAI", + "Serp", + "BingLLMSearch", + "Serverless" + ], + "type": "string" + }, + "ConnectionConfigSpec": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "configValueType": { + "$ref": "#/components/schemas/ConfigValueType" + }, + "description": { + "type": "string", + "nullable": true + }, + "defaultValue": { + "type": "string", + "nullable": true + }, + "enumValues": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "isOptional": { + "type": "boolean" + }, + "supportedAuthModes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionAuthMode" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ConnectionDto": { + "type": "object", + "properties": { + "connectionName": { + "type": "string", + "nullable": true + }, + "connectionType": { + "$ref": "#/components/schemas/ConnectionType" + }, + "configs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "customConfigs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/CustomConnectionConfig" + }, + "description": "This is a dictionary", + "nullable": true + }, + "expiryTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "owner": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + }, + "createdDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "ConnectionEntity": { + "type": "object", + "properties": { + "connectionId": { + "type": "string", + "nullable": true + }, + "connectionName": { + "type": "string", + "nullable": true + }, + "connectionType": { + "$ref": "#/components/schemas/ConnectionType" + }, + "connectionScope": { + "$ref": "#/components/schemas/ConnectionScope" + }, + "configs": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "customConfigs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/CustomConnectionConfig" + }, + "description": "This is a dictionary", + "nullable": true + }, + "expiryTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "secretName": { + "type": "string", + "nullable": true + }, + "owner": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "ConnectionOverrideSetting": { + "type": "object", + "properties": { + "connectionSourceType": { + "$ref": "#/components/schemas/ConnectionSourceType" + }, + "nodeName": { + "type": "string", + "nullable": true + }, + "nodeInputName": { + "type": "string", + "nullable": true + }, + "nodeDeploymentNameInput": { + "type": "string", + "nullable": true + }, + "nodeModelInput": { + "type": "string", + "nullable": true + }, + "connectionName": { + "type": "string", + "nullable": true + }, + "deploymentName": { + "type": "string", + "nullable": true + }, + "model": { + "type": "string", + "nullable": true + }, + "connectionTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionType" + }, + "nullable": true + }, + "capabilities": { + "$ref": "#/components/schemas/AzureOpenAIModelCapabilities" + }, + "modelEnum": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ConnectionScope": { + "enum": [ + "User", + "WorkspaceShared" + ], + "type": "string" + }, + "ConnectionSourceType": { + "enum": [ + "Node", + "NodeInput" + ], + "type": "string" + }, + "ConnectionSpec": { + "type": "object", + "properties": { + "connectionType": { + "$ref": "#/components/schemas/ConnectionType" + }, + "configSpecs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionConfigSpec" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ConnectionType": { + "enum": [ + "OpenAI", + "AzureOpenAI", + "Serp", + "Bing", + "AzureContentModerator", + "Custom", + "AzureContentSafety", + "CognitiveSearch", + "SubstrateLLM", + "Pinecone", + "Qdrant", + "Weaviate", + "FormRecognizer", + "Serverless" + ], + "type": "string" + }, + "ConsumeMode": { + "enum": [ + "Reference", + "Copy", + "CopyAndAutoUpgrade" + ], + "type": "string" + }, + "ContainerInstanceConfiguration": { + "type": "object", + "properties": { + "region": { + "type": "string", + "nullable": true + }, + "cpuCores": { + "type": "number", + "format": "double" + }, + "memoryGb": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "ContainerRegistry": { + "type": "object", + "properties": { + "address": { + "type": "string", + "nullable": true + }, + "username": { + "type": "string", + "nullable": true + }, + "password": { + "type": "string", + "nullable": true + }, + "credentialType": { + "type": "string", + "nullable": true + }, + "registryIdentity": { + "$ref": "#/components/schemas/RegistryIdentity" + } + }, + "additionalProperties": false + }, + "ContainerResourceRequirements": { + "type": "object", + "properties": { + "cpu": { + "type": "number", + "format": "double", + "nullable": true + }, + "cpuLimit": { + "type": "number", + "format": "double", + "nullable": true + }, + "memoryInGB": { + "type": "number", + "format": "double", + "nullable": true + }, + "memoryInGBLimit": { + "type": "number", + "format": "double", + "nullable": true + }, + "gpuEnabled": { + "type": "boolean", + "nullable": true + }, + "gpu": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fpga": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "ControlFlowType": { + "enum": [ + "None", + "DoWhile", + "ParallelFor" + ], + "type": "string" + }, + "ControlInput": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "defaultValue": { + "$ref": "#/components/schemas/ControlInputValue" + } + }, + "additionalProperties": false + }, + "ControlInputValue": { + "enum": [ + "None", + "False", + "True", + "Skipped" + ], + "type": "string" + }, + "ControlOutput": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ControlType": { + "enum": [ + "IfElse" + ], + "type": "string" + }, + "CopyDataTask": { + "type": "object", + "properties": { + "DataCopyMode": { + "$ref": "#/components/schemas/DataCopyMode" + } + }, + "additionalProperties": false + }, + "CreateExperimentTemplateRequest": { + "type": "object", + "properties": { + "experimentDefinitionSource": { + "$ref": "#/components/schemas/ExperimentDefinitionSource" + } + }, + "additionalProperties": false + }, + "CreateFlowRequest": { + "type": "object", + "properties": { + "flowName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "details": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "flow": { + "$ref": "#/components/schemas/Flow" + }, + "flowDefinitionFilePath": { + "type": "string", + "nullable": true + }, + "flowType": { + "$ref": "#/components/schemas/FlowType" + }, + "flowRunSettings": { + "$ref": "#/components/schemas/FlowRunSettings" + }, + "isArchived": { + "type": "boolean" + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "maxIdleTimeSeconds": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "identity": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "CreateFlowRuntimeRequest": { + "type": "object", + "properties": { + "runtimeType": { + "$ref": "#/components/schemas/RuntimeType" }, - "EndpointSetting": { - "type": "object", - "properties": { - "type": { - "type": "string", - "nullable": true - }, - "port": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "sslThumbprint": { - "type": "string", - "nullable": true - }, - "endpoint": { - "type": "string", - "nullable": true - }, - "proxyEndpoint": { - "type": "string", - "nullable": true - }, - "status": { - "type": "string", - "nullable": true - }, - "errorMessage": { - "type": "string", - "nullable": true - }, - "enabled": { - "type": "boolean", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "nodes": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "identity": { + "$ref": "#/components/schemas/ManagedServiceIdentity" }, - "EntityInterface": { - "type": "object", - "properties": { - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Parameter" - }, - "nullable": true - }, - "ports": { - "$ref": "#/components/schemas/NodePortInterface" - }, - "metadataParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Parameter" - }, - "nullable": true - }, - "dataPathParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataPathParameter" - }, - "nullable": true - }, - "dataPathParameterList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataSetPathParameter" - }, - "nullable": true - }, - "AssetOutputSettingsParameterList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssetOutputSettingsParameter" - }, - "nullable": true - } - }, - "additionalProperties": false + "instanceType": { + "type": "string", + "nullable": true }, - "EntityKind": { - "enum": [ - "Invalid", - "LineageRoot", - "Versioned", - "Unversioned" - ], - "type": "string" + "fromExistingEndpoint": { + "type": "boolean" }, - "EntityStatus": { - "enum": [ - "Active", - "Deprecated", - "Disabled" - ], - "type": "string" + "fromExistingDeployment": { + "type": "boolean" }, - "EntityUsage": { - "type": "object", - "properties": { - "totalCount": { - "type": "integer", - "format": "int64", - "nullable": true - } - }, - "additionalProperties": false + "endpointName": { + "type": "string", + "nullable": true }, - "EntrySetting": { - "type": "object", - "properties": { - "file": { - "type": "string", - "nullable": true - }, - "className": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "deploymentName": { + "type": "string", + "nullable": true }, - "EnumParameterRule": { - "type": "object", - "properties": { - "validValues": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "computeInstanceName": { + "type": "string", + "nullable": true }, - "EnvironmentConfiguration": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "useEnvironmentDefinition": { - "type": "boolean" - }, - "environmentDefinitionString": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "fromExistingCustomApp": { + "type": "boolean" }, - "EnvironmentDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "assetId": { - "type": "string", - "nullable": true - }, - "autoRebuild": { - "type": "boolean", - "nullable": true - }, - "python": { - "$ref": "#/components/schemas/PythonSection" - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "docker": { - "$ref": "#/components/schemas/DockerSection" - }, - "spark": { - "$ref": "#/components/schemas/SparkSection" - }, - "r": { - "$ref": "#/components/schemas/RSection" - }, - "inferencingStackVersion": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "customAppName": { + "type": "string", + "nullable": true }, - "EnvironmentDefinitionDto": { - "type": "object", - "properties": { - "environmentName": { - "type": "string", - "nullable": true - }, - "environmentVersion": { - "type": "string", - "nullable": true - }, - "intellectualPropertyPublisher": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "runtimeDescription": { + "type": "string", + "nullable": true }, - "ErrorAdditionalInfo": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The additional info type.", - "nullable": true - }, - "info": { - "description": "The additional info.", - "nullable": true - } - }, - "additionalProperties": false, - "description": "The resource management error additional info." + "environment": { + "type": "string", + "nullable": true }, - "ErrorHandlingMode": { - "enum": [ - "DefaultInterpolation", - "CustomerFacingInterpolation" - ], + "instanceCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "CreateFlowSessionRequest": { + "type": "object", + "properties": { + "pythonPipRequirements": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "ErrorResponse": { - "type": "object", - "properties": { - "error": { - "$ref": "#/components/schemas/RootError" - }, - "correlation": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "description": "Dictionary containing correlation details for the error.", - "nullable": true - }, - "environment": { - "type": "string", - "description": "The hosting environment.", - "nullable": true - }, - "location": { - "type": "string", - "description": "The Azure region.", - "nullable": true - }, - "time": { - "type": "string", - "description": "The time in UTC.", - "format": "date-time" - }, - "componentName": { - "type": "string", - "description": "Component name where error originated/encountered.", - "nullable": true - } - }, - "description": "The error response." + "baseImage": { + "type": "string", + "nullable": true }, - "EsCloudConfiguration": { - "type": "object", - "properties": { - "enableOutputToFileBasedOnDataTypeId": { - "type": "boolean", - "nullable": true - }, - "environment": { - "$ref": "#/components/schemas/EnvironmentConfiguration" - }, - "hyperDriveConfiguration": { - "$ref": "#/components/schemas/HyperDriveConfiguration" - }, - "k8sConfig": { - "$ref": "#/components/schemas/K8sConfiguration" - }, - "resourceConfig": { - "$ref": "#/components/schemas/AEVAResourceConfiguration" - }, - "torchDistributedConfig": { - "$ref": "#/components/schemas/TorchDistributedConfiguration" - }, - "targetSelectorConfig": { - "$ref": "#/components/schemas/TargetSelectorConfiguration" - }, - "dockerConfig": { - "$ref": "#/components/schemas/DockerSettingConfiguration" - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "maxRunDurationSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "identity": { - "$ref": "#/components/schemas/IdentitySetting" - }, - "applicationEndpoints": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ApplicationEndpointConfiguration" - }, - "nullable": true - }, - "runConfig": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "action": { + "$ref": "#/components/schemas/SetupFlowSessionAction" }, - "EvaluationFlowRunSettings": { - "type": "object", - "properties": { - "flowRunId": { - "type": "string", - "nullable": true - }, - "upstreamVariantRunVariants": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/VariantIdentifier" - }, - "description": "This is a dictionary", - "nullable": true - }, - "batch_inputs": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary" - }, - "nullable": true - }, - "inputUniversalLink": { - "type": "string", - "nullable": true - }, - "dataInputs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "flowRunOutputDirectory": { - "type": "string", - "nullable": true - }, - "connectionOverrides": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionOverrideSetting" - }, - "nullable": true - }, - "flowRunDisplayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "runtimeName": { - "type": "string", - "nullable": true - }, - "batchDataInput": { - "$ref": "#/components/schemas/BatchDataInput" - }, - "inputsMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "connections": { - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary" - }, - "description": "This is a dictionary", - "nullable": true - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputDataStore": { - "type": "string", - "nullable": true - }, - "runDisplayNameGenerationType": { - "$ref": "#/components/schemas/RunDisplayNameGenerationType" - }, - "collieRunSettings": { - "$ref": "#/components/schemas/CollieRunSettings" - }, - "workerCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "timeoutInSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "promptflowEngineType": { - "$ref": "#/components/schemas/PromptflowEngineType" - }, - "experimentNodeName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "vmSize": { + "type": "string", + "nullable": true }, - "ExampleRequest": { - "type": "object", - "properties": { - "inputs": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "array", - "items": {} - } - }, - "description": "This is a dictionary", - "nullable": true - }, - "globalParameters": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "maxIdleTimeSeconds": { + "type": "integer", + "format": "int64", + "nullable": true }, - "ExecutionContextDto": { - "type": "object", - "properties": { - "executable": { - "type": "string", - "nullable": true - }, - "userCode": { - "type": "string", - "nullable": true - }, - "arguments": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "identity": { + "type": "string", + "nullable": true }, - "ExecutionDataLocation": { - "type": "object", - "properties": { - "dataset": { - "$ref": "#/components/schemas/RunDatasetReference" - }, - "dataPath": { - "$ref": "#/components/schemas/ExecutionDataPath" - }, - "uri": { - "$ref": "#/components/schemas/UriReference" - }, - "type": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "computeName": { + "type": "string", + "nullable": true }, - "ExecutionDataPath": { - "type": "object", - "properties": { - "datastoreName": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "enableMultiContainer": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "CreateInferencePipelineRequest": { + "type": "object", + "properties": { + "moduleNodeId": { + "type": "string", + "nullable": true + }, + "portName": { + "type": "string", + "nullable": true + }, + "trainingPipelineDraftName": { + "type": "string", + "nullable": true + }, + "trainingPipelineRunDisplayName": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "pipelineType": { + "$ref": "#/components/schemas/PipelineType" + }, + "pipelineDraftMode": { + "$ref": "#/components/schemas/PipelineDraftMode" + }, + "graphComponentsMode": { + "$ref": "#/components/schemas/GraphComponentsMode" + }, + "subPipelinesInfo": { + "$ref": "#/components/schemas/SubPipelinesInfo" + }, + "flattenedSubGraphs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/PipelineSubDraft" + }, + "nullable": true + }, + "pipelineParameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataPathAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/LegacyDataPath" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataSetDefinitionValueAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + }, + "description": "This is a dictionary", + "nullable": true + }, + "assetOutputSettingsAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AssetOutputSettings" + }, + "description": "This is a dictionary", + "nullable": true + }, + "graph": { + "$ref": "#/components/schemas/GraphDraftEntity" + }, + "pipelineRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameterAssignment" + }, + "nullable": true + }, + "moduleNodeRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeRunSetting" + }, + "nullable": true + }, + "moduleNodeUIInputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" + }, + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "ExecutionGlobsOptions": { - "type": "object", - "properties": { - "globPatterns": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "continueRunOnStepFailure": { + "type": "boolean", + "nullable": true }, - "ExecutionPhase": { - "enum": [ - "Execution", - "Initialization", - "Finalization" - ], - "type": "string" + "description": { + "type": "string", + "nullable": true }, - "ExperimentComputeMetaInfo": { - "type": "object", - "properties": { - "currentNodeCount": { - "type": "integer", - "format": "int32" - }, - "targetNodeCount": { - "type": "integer", - "format": "int32" - }, - "maxNodeCount": { - "type": "integer", - "format": "int32" - }, - "minNodeCount": { - "type": "integer", - "format": "int32" - }, - "idleNodeCount": { - "type": "integer", - "format": "int32" - }, - "runningNodeCount": { - "type": "integer", - "format": "int32" - }, - "preparingNodeCount": { - "type": "integer", - "format": "int32" - }, - "unusableNodeCount": { - "type": "integer", - "format": "int32" - }, - "leavingNodeCount": { - "type": "integer", - "format": "int32" - }, - "preemptedNodeCount": { - "type": "integer", - "format": "int32" - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "location": { - "type": "string", - "nullable": true - }, - "provisioningState": { - "type": "string", - "nullable": true - }, - "state": { - "type": "string", - "nullable": true - }, - "osType": { - "type": "string", - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "createdByStudio": { - "type": "boolean" - }, - "isGpuType": { - "type": "boolean" - }, - "resourceId": { - "type": "string", - "nullable": true - }, - "computeType": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "ExperimentInfo": { - "type": "object", - "properties": { - "experimentName": { - "type": "string", - "nullable": true - }, - "experimentId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "enforceRerun": { + "type": "boolean", + "nullable": true }, - "ExportComponentMetaInfo": { - "type": "object", - "properties": { - "moduleEntity": { - "$ref": "#/components/schemas/ModuleEntity" - }, - "moduleVersion": { - "type": "string", - "nullable": true - }, - "isAnonymous": { - "type": "boolean", - "nullable": true - } - }, - "additionalProperties": false + "datasetAccessModes": { + "$ref": "#/components/schemas/DatasetAccessModes" + } + }, + "additionalProperties": false + }, + "CreateOrUpdateConnectionRequest": { + "type": "object", + "properties": { + "connectionType": { + "$ref": "#/components/schemas/ConnectionType" + }, + "connectionScope": { + "$ref": "#/components/schemas/ConnectionScope" + }, + "configs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "customConfigs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/CustomConnectionConfig" + }, + "description": "This is a dictionary", + "nullable": true + }, + "expiryTime": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "CreateOrUpdateConnectionRequestDto": { + "type": "object", + "properties": { + "connectionType": { + "$ref": "#/components/schemas/ConnectionType" + }, + "configs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "customConfigs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/CustomConnectionConfig" + }, + "description": "This is a dictionary", + "nullable": true + }, + "expiryTime": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "CreatePipelineDraftRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "pipelineType": { + "$ref": "#/components/schemas/PipelineType" + }, + "pipelineDraftMode": { + "$ref": "#/components/schemas/PipelineDraftMode" + }, + "graphComponentsMode": { + "$ref": "#/components/schemas/GraphComponentsMode" + }, + "subPipelinesInfo": { + "$ref": "#/components/schemas/SubPipelinesInfo" + }, + "flattenedSubGraphs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/PipelineSubDraft" + }, + "nullable": true + }, + "pipelineParameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataPathAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/LegacyDataPath" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataSetDefinitionValueAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + }, + "description": "This is a dictionary", + "nullable": true + }, + "assetOutputSettingsAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AssetOutputSettings" + }, + "description": "This is a dictionary", + "nullable": true + }, + "graph": { + "$ref": "#/components/schemas/GraphDraftEntity" + }, + "pipelineRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameterAssignment" + }, + "nullable": true + }, + "moduleNodeRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeRunSetting" + }, + "nullable": true + }, + "moduleNodeUIInputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" + }, + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "ExportDataTask": { - "type": "object", - "properties": { - "DataTransferSink": { - "$ref": "#/components/schemas/DataTransferSink" - } - }, - "additionalProperties": false + "continueRunOnStepFailure": { + "type": "boolean", + "nullable": true }, - "ExtensibleObject": { - "type": "object" + "description": { + "type": "string", + "nullable": true }, - "FeaturizationMode": { - "enum": [ - "Auto", - "Custom", - "Off" - ], + "properties": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "FeaturizationSettings": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/components/schemas/FeaturizationMode" - }, - "blockedTransformers": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "columnPurposes": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "dropColumns": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "transformerParams": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ColumnTransformer" - }, - "nullable": true - }, - "nullable": true - }, - "datasetLanguage": { - "type": "string", - "nullable": true - }, - "enableDnnFeaturization": { - "type": "boolean", - "nullable": true - } - }, - "additionalProperties": false + "enforceRerun": { + "type": "boolean", + "nullable": true }, - "FeedDto": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "sharingScopes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SharingScope" - }, - "nullable": true - }, - "supportedAssetTypes": { - "type": "object", - "properties": { - "Component": { - "$ref": "#/components/schemas/AssetTypeMetaInfo" - }, - "Model": { - "$ref": "#/components/schemas/AssetTypeMetaInfo" - }, - "Environment": { - "$ref": "#/components/schemas/AssetTypeMetaInfo" - }, - "Dataset": { - "$ref": "#/components/schemas/AssetTypeMetaInfo" - }, - "DataStore": { - "$ref": "#/components/schemas/AssetTypeMetaInfo" - }, - "SampleGraph": { - "$ref": "#/components/schemas/AssetTypeMetaInfo" - }, - "FlowTool": { - "$ref": "#/components/schemas/AssetTypeMetaInfo" - }, - "FlowToolSetting": { - "$ref": "#/components/schemas/AssetTypeMetaInfo" - }, - "FlowConnection": { - "$ref": "#/components/schemas/AssetTypeMetaInfo" - }, - "FlowSample": { - "$ref": "#/components/schemas/AssetTypeMetaInfo" - }, - "FlowRuntimeSpec": { - "$ref": "#/components/schemas/AssetTypeMetaInfo" - } - }, - "additionalProperties": false, - "nullable": true - }, - "regionalWorkspaceStorage": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": "This is a dictionary", - "nullable": true - }, - "intellectualPropertyPublisher": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "datasetAccessModes": { + "$ref": "#/components/schemas/DatasetAccessModes" + } + }, + "additionalProperties": false + }, + "CreatePipelineJobScheduleDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true }, - "FileSystem": { - "type": "object", - "properties": { - "connection": { - "type": "string", - "nullable": true - }, - "path": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "pipelineJobName": { + "type": "string", + "nullable": true }, - "Flow": { - "type": "object", - "properties": { - "sourceResourceId": { - "type": "string", - "nullable": true - }, - "flowGraph": { - "$ref": "#/components/schemas/FlowGraph" - }, - "nodeVariants": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/NodeVariant" - }, - "description": "This is a dictionary", - "nullable": true - }, - "flowGraphLayout": { - "$ref": "#/components/schemas/FlowGraphLayout" - }, - "bulkTestData": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "evaluationFlows": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowGraphReference" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "pipelineJobRuntimeSettings": { + "$ref": "#/components/schemas/PipelineJobRuntimeBasicSettings" }, - "FlowAnnotations": { - "type": "object", - "properties": { - "flowName": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - }, - "owner": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - }, - "isArchived": { - "type": "boolean" - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "maxIdleTimeSeconds": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "archived": { - "type": "boolean" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - } + "displayName": { + "type": "string", + "nullable": true }, - "FlowBaseDto": { - "type": "object", - "properties": { - "flowId": { - "type": "string", - "nullable": true - }, - "flowName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "flowType": { - "$ref": "#/components/schemas/FlowType" - }, - "experimentId": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - }, - "owner": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - }, - "flowResourceId": { - "type": "string", - "nullable": true - }, - "isArchived": { - "type": "boolean" - }, - "flowDefinitionFilePath": { - "type": "string", - "nullable": true - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "maxIdleTimeSeconds": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "identity": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "triggerType": { + "$ref": "#/components/schemas/TriggerType" }, - "FlowDto": { - "type": "object", - "properties": { - "timestamp": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "eTag": { - "$ref": "#/components/schemas/ETag" - }, - "flow": { - "$ref": "#/components/schemas/Flow" - }, - "flowRunSettings": { - "$ref": "#/components/schemas/FlowRunSettings" - }, - "flowRunResult": { - "$ref": "#/components/schemas/FlowRunResult" - }, - "flowTestMode": { - "$ref": "#/components/schemas/FlowTestMode" - }, - "flowTestInfos": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowTestInfo" - }, - "nullable": true - }, - "studioPortalEndpoint": { - "type": "string", - "nullable": true - }, - "flowId": { - "type": "string", - "nullable": true - }, - "flowName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "flowType": { - "$ref": "#/components/schemas/FlowType" - }, - "experimentId": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - }, - "owner": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - }, - "flowResourceId": { - "type": "string", - "nullable": true - }, - "isArchived": { - "type": "boolean" - }, - "flowDefinitionFilePath": { - "type": "string", - "nullable": true - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "maxIdleTimeSeconds": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "identity": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "recurrence": { + "$ref": "#/components/schemas/Recurrence" }, - "FlowEnvironment": { - "type": "object", - "properties": { - "image": { - "type": "string", - "nullable": true - }, - "python_requirements_txt": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "cron": { + "$ref": "#/components/schemas/Cron" }, - "FlowFeature": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "state": { - "type": "object", - "properties": { - "Runtime": { - "$ref": "#/components/schemas/FlowFeatureStateEnum" - }, - "Executor": { - "$ref": "#/components/schemas/FlowFeatureStateEnum" - }, - "PFS": { - "$ref": "#/components/schemas/FlowFeatureStateEnum" - } - }, - "additionalProperties": false, - "nullable": true - } - }, - "additionalProperties": false + "status": { + "$ref": "#/components/schemas/ScheduleStatus" }, - "FlowFeatureStateEnum": { - "enum": [ - "Ready", - "E2ETest" - ], + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "FlowGraph": { - "type": "object", - "properties": { - "nodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Node" - }, - "nullable": true - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tool" - }, - "nullable": true - }, - "codes": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "inputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowInputDefinition" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowOutputDefinition" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "CreatePublishedPipelineRequest": { + "type": "object", + "properties": { + "usePipelineEndpoint": { + "type": "boolean" }, - "FlowGraphAnnotationNode": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "content": { - "type": "string", - "nullable": true - }, - "mentionedNodeNames": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "structuredContent": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "pipelineName": { + "type": "string", + "nullable": true }, - "FlowGraphLayout": { - "type": "object", - "properties": { - "nodeLayouts": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowNodeLayout" - }, - "description": "This is a dictionary", - "nullable": true - }, - "extendedData": { - "type": "string", - "nullable": true - }, - "annotationNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FlowGraphAnnotationNode" - }, - "nullable": true - }, - "orientation": { - "$ref": "#/components/schemas/Orientation" - } - }, - "additionalProperties": false + "pipelineDescription": { + "type": "string", + "nullable": true }, - "FlowGraphReference": { - "type": "object", - "properties": { - "flowGraph": { - "$ref": "#/components/schemas/FlowGraph" - }, - "referenceResourceId": { - "type": "string", - "nullable": true - }, - "variant": { - "$ref": "#/components/schemas/VariantIdentifier" - } - }, - "additionalProperties": false + "useExistingPipelineEndpoint": { + "type": "boolean" }, - "FlowIndexEntity": { - "type": "object", - "properties": { - "schemaId": { - "type": "string", - "nullable": true - }, - "entityId": { - "type": "string", - "nullable": true - }, - "kind": { - "$ref": "#/components/schemas/EntityKind" - }, - "annotations": { - "$ref": "#/components/schemas/FlowAnnotations" - }, - "properties": { - "$ref": "#/components/schemas/FlowProperties" - }, - "internal": { - "$ref": "#/components/schemas/ExtensibleObject" - }, - "updateSequence": { - "type": "integer", - "format": "int64" - }, - "type": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "entityContainerId": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "entityObjectId": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "resourceType": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "relationships": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Relationship" - }, - "nullable": true - }, - "assetId": { - "type": "string", - "nullable": true - }, - "usage": { - "$ref": "#/components/schemas/EntityUsage" - }, - "isAFragment": { - "type": "boolean" - }, - "fragmentId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "pipelineEndpointName": { + "type": "string", + "nullable": true }, - "FlowInputDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "$ref": "#/components/schemas/ValueType" - }, - "default": { - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "is_chat_input": { - "type": "boolean" - }, - "is_chat_history": { - "type": "boolean", - "nullable": true - } - }, - "additionalProperties": false + "pipelineEndpointDescription": { + "type": "string", + "nullable": true + }, + "setAsDefaultPipelineForEndpoint": { + "type": "boolean" }, - "FlowLanguage": { - "enum": [ - "Python", - "CSharp", - "TypeScript", - "JavaScript" - ], + "stepTags": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "FlowNode": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "$ref": "#/components/schemas/ToolType" - }, - "source": { - "$ref": "#/components/schemas/NodeSource" - }, - "inputs": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - }, - "activate": { - "$ref": "#/components/schemas/Activate" - }, - "use_variants": { - "type": "boolean" - }, - "comment": { - "type": "string", - "nullable": true - }, - "api": { - "type": "string", - "nullable": true - }, - "provider": { - "type": "string", - "nullable": true - }, - "connection": { - "type": "string", - "nullable": true - }, - "module": { - "type": "string", - "nullable": true - }, - "aggregation": { - "type": "boolean" - } - }, - "additionalProperties": false + "experimentName": { + "type": "string", + "nullable": true }, - "FlowNodeLayout": { - "type": "object", - "properties": { - "x": { - "type": "number", - "format": "float" - }, - "y": { - "type": "number", - "format": "float" - }, - "width": { - "type": "number", - "format": "float" - }, - "height": { - "type": "number", - "format": "float" - }, - "index": { - "type": "integer", - "format": "int32" - }, - "extendedData": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "pipelineParameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataPathAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/LegacyDataPath" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataSetDefinitionValueAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + }, + "description": "This is a dictionary", + "nullable": true + }, + "assetOutputSettingsAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AssetOutputSettings" + }, + "description": "This is a dictionary", + "nullable": true + }, + "enableNotification": { + "type": "boolean", + "nullable": true + }, + "subPipelinesInfo": { + "$ref": "#/components/schemas/SubPipelinesInfo" + }, + "displayName": { + "type": "string", + "nullable": true + }, + "runId": { + "type": "string", + "nullable": true + }, + "parentRunId": { + "type": "string", + "nullable": true + }, + "graph": { + "$ref": "#/components/schemas/GraphDraftEntity" + }, + "pipelineRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameterAssignment" + }, + "nullable": true + }, + "moduleNodeRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeRunSetting" + }, + "nullable": true + }, + "moduleNodeUIInputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" + }, + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "FlowNodeVariant": { - "type": "object", - "properties": { - "default_variant_id": { - "type": "string", - "nullable": true - }, - "variants": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowVariantNode" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "continueRunOnStepFailure": { + "type": "boolean", + "nullable": true }, - "FlowOutputDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "$ref": "#/components/schemas/ValueType" - }, - "description": { - "type": "string", - "nullable": true - }, - "reference": { - "type": "string", - "nullable": true - }, - "evaluation_only": { - "type": "boolean" - }, - "is_chat_output": { - "type": "boolean" - } - }, - "additionalProperties": false + "description": { + "type": "string", + "nullable": true }, - "FlowPatchOperationType": { - "enum": [ - "ArchiveFlow", - "RestoreFlow", - "ExportFlowToFile" - ], + "properties": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "FlowProperties": { - "type": "object", - "properties": { - "flowId": { - "type": "string", - "nullable": true - }, - "experimentId": { - "type": "string", - "nullable": true - }, - "flowType": { - "$ref": "#/components/schemas/FlowType" - }, - "flowDefinitionFilePath": { - "type": "string", - "nullable": true - }, - "creationContext": { - "$ref": "#/components/schemas/CreationContext" - } - } + "enforceRerun": { + "type": "boolean", + "nullable": true }, - "FlowRunBasePath": { - "type": "object", - "properties": { - "outputDatastoreName": { - "type": "string", - "nullable": true - }, - "basePath": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "datasetAccessModes": { + "$ref": "#/components/schemas/DatasetAccessModes" + } + }, + "additionalProperties": false + }, + "CreateRealTimeEndpointRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true }, - "FlowRunInfo": { - "type": "object", - "properties": { - "flowGraph": { - "$ref": "#/components/schemas/FlowGraph" - }, - "flowGraphLayout": { - "$ref": "#/components/schemas/FlowGraphLayout" - }, - "flowName": { - "type": "string", - "nullable": true - }, - "flowRunResourceId": { - "type": "string", - "nullable": true - }, - "flowRunId": { - "type": "string", - "nullable": true - }, - "flowRunDisplayName": { - "type": "string", - "nullable": true - }, - "batchInputs": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary" - }, - "nullable": true - }, - "batchDataInput": { - "$ref": "#/components/schemas/BatchDataInput" - }, - "flowRunType": { - "$ref": "#/components/schemas/FlowRunTypeEnum" - }, - "flowType": { - "$ref": "#/components/schemas/FlowType" - }, - "runtimeName": { - "type": "string", - "nullable": true - }, - "bulkTestId": { - "type": "string", - "nullable": true - }, - "createdBy": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - }, - "createdOn": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "inputsMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputDatastoreName": { - "type": "string", - "nullable": true - }, - "childRunBasePath": { - "type": "string", - "nullable": true - }, - "workingDirectory": { - "type": "string", - "nullable": true - }, - "flowDagFileRelativePath": { - "type": "string", - "nullable": true - }, - "flowSnapshotId": { - "type": "string", - "nullable": true - }, - "studioPortalEndpoint": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "FlowRunMode": { - "enum": [ - "Flow", - "SingleNode", - "FromNode", - "BulkTest", - "Eval", - "PairwiseEval", - "ExperimentTest", - "ExperimentEval" - ], - "type": "string" - }, - "FlowRunResult": { - "type": "object", - "properties": { - "flow_runs": { - "type": "array", - "items": {}, - "nullable": true - }, - "node_runs": { - "type": "array", - "items": {}, - "nullable": true - }, - "errorResponse": { - "$ref": "#/components/schemas/ErrorResponse" - }, - "flowName": { - "type": "string", - "nullable": true - }, - "flowRunDisplayName": { - "type": "string", - "nullable": true - }, - "flowRunId": { - "type": "string", - "nullable": true - }, - "flowGraph": { - "$ref": "#/components/schemas/FlowGraph" - }, - "flowGraphLayout": { - "$ref": "#/components/schemas/FlowGraphLayout" - }, - "flowRunResourceId": { - "type": "string", - "nullable": true - }, - "bulkTestId": { - "type": "string", - "nullable": true - }, - "batchInputs": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary" - }, - "nullable": true - }, - "batchDataInput": { - "$ref": "#/components/schemas/BatchDataInput" - }, - "createdBy": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - }, - "createdOn": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "flowRunType": { - "$ref": "#/components/schemas/FlowRunTypeEnum" - }, - "flowType": { - "$ref": "#/components/schemas/FlowType" - }, - "runtimeName": { - "type": "string", - "nullable": true - }, - "amlComputeName": { - "type": "string", - "nullable": true - }, - "flowRunLogs": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "flowTestMode": { - "$ref": "#/components/schemas/FlowTestMode" - }, - "flowTestInfos": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowTestInfo" - }, - "nullable": true - }, - "workingDirectory": { - "type": "string", - "nullable": true - }, - "flowDagFileRelativePath": { - "type": "string", - "nullable": true - }, - "flowSnapshotId": { - "type": "string", - "nullable": true - }, - "variantRunToEvaluationRunsIdMapping": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "computeInfo": { + "$ref": "#/components/schemas/ComputeInfo" }, - "FlowRunSettings": { - "type": "object", - "properties": { - "runMode": { - "$ref": "#/components/schemas/FlowRunMode" - }, - "tuningNodeNames": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "tuningNodeSettings": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TuningNodeSetting" - }, - "description": "This is a dictionary", - "nullable": true - }, - "baselineVariantId": { - "type": "string", - "nullable": true - }, - "defaultVariantId": { - "type": "string", - "nullable": true - }, - "variants": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Node" - } - }, - "description": "This is a dictionary", - "nullable": true - }, - "nodeName": { - "type": "string", - "nullable": true - }, - "isDefaultVariant": { - "type": "boolean" - }, - "nodeVariantId": { - "type": "string", - "nullable": true - }, - "nodeOutputPaths": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "baseFlowRunId": { - "type": "string", - "nullable": true - }, - "flowTestInfos": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowTestInfo" - }, - "nullable": true - }, - "bulkTestId": { - "type": "string", - "nullable": true - }, - "evaluationFlowRunSettings": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/EvaluationFlowRunSettings" - }, - "description": "This is a dictionary", - "nullable": true - }, - "bulkTestFlowId": { - "type": "string", - "nullable": true - }, - "bulkTestFlowRunIds": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "batch_inputs": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary" - }, - "nullable": true - }, - "inputUniversalLink": { - "type": "string", - "nullable": true - }, - "dataInputs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "flowRunOutputDirectory": { - "type": "string", - "nullable": true - }, - "connectionOverrides": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionOverrideSetting" - }, - "nullable": true - }, - "flowRunDisplayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "runtimeName": { - "type": "string", - "nullable": true - }, - "batchDataInput": { - "$ref": "#/components/schemas/BatchDataInput" - }, - "inputsMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "connections": { - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary" - }, - "description": "This is a dictionary", - "nullable": true - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputDataStore": { - "type": "string", - "nullable": true - }, - "runDisplayNameGenerationType": { - "$ref": "#/components/schemas/RunDisplayNameGenerationType" - }, - "collieRunSettings": { - "$ref": "#/components/schemas/CollieRunSettings" - }, - "workerCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "timeoutInSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "promptflowEngineType": { - "$ref": "#/components/schemas/PromptflowEngineType" - }, - "experimentNodeName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "description": { + "type": "string", + "nullable": true }, - "FlowRunSettingsBase": { - "type": "object", - "properties": { - "flowRunDisplayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "runtimeName": { - "type": "string", - "nullable": true - }, - "batchDataInput": { - "$ref": "#/components/schemas/BatchDataInput" - }, - "inputsMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "connections": { - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary" - }, - "description": "This is a dictionary", - "nullable": true - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputDataStore": { - "type": "string", - "nullable": true - }, - "runDisplayNameGenerationType": { - "$ref": "#/components/schemas/RunDisplayNameGenerationType" - }, - "collieRunSettings": { - "$ref": "#/components/schemas/CollieRunSettings" - }, - "workerCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "timeoutInSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "promptflowEngineType": { - "$ref": "#/components/schemas/PromptflowEngineType" - }, - "experimentNodeName": { - "type": "string", - "nullable": true - }, - "batch_inputs": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary" - }, - "nullable": true - }, - "inputUniversalLink": { - "type": "string", - "nullable": true - }, - "dataInputs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "flowRunOutputDirectory": { - "type": "string", - "nullable": true - }, - "connectionOverrides": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionOverrideSetting" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "FlowRunStatusEnum": { - "enum": [ - "Started", - "Completed", - "Failed", - "Cancelled", - "NotStarted", - "Running", - "Queued", - "Paused", - "Unapproved", - "Starting", - "Preparing", - "CancelRequested", - "Pausing", - "Finalizing", - "Canceled", - "Bypassed" - ], - "type": "string" - }, - "FlowRunStatusResponse": { - "type": "object", - "properties": { - "flowRunStatus": { - "$ref": "#/components/schemas/FlowRunStatusEnum" - }, - "lastCheckedTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "flowRunCreatedTime": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "linkedPipelineDraftId": { + "type": "string", + "nullable": true }, - "FlowRunTypeEnum": { - "enum": [ - "FlowRun", - "EvaluationRun", - "PairwiseEvaluationRun", - "SingleNodeRun", - "FromNodeRun" - ], - "type": "string" + "linkedPipelineRunId": { + "type": "string", + "nullable": true }, - "FlowRuntimeCapability": { - "type": "object", - "properties": { - "flowFeatures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FlowFeature" - }, - "nullable": true - } - }, - "additionalProperties": false + "aksAdvanceSettings": { + "$ref": "#/components/schemas/AKSAdvanceSettings" }, - "FlowRuntimeDto": { - "type": "object", - "properties": { - "runtimeName": { - "type": "string", - "nullable": true - }, - "runtimeDescription": { - "type": "string", - "nullable": true - }, - "runtimeType": { - "$ref": "#/components/schemas/RuntimeType" - }, - "environment": { - "type": "string", - "nullable": true - }, - "status": { - "$ref": "#/components/schemas/RuntimeStatusEnum" - }, - "statusMessage": { - "type": "string", - "nullable": true - }, - "error": { - "$ref": "#/components/schemas/ErrorResponse" - }, - "fromExistingEndpoint": { - "type": "boolean" - }, - "endpointName": { - "type": "string", - "nullable": true - }, - "fromExistingDeployment": { - "type": "boolean" - }, - "deploymentName": { - "type": "string", - "nullable": true - }, - "identity": { - "$ref": "#/components/schemas/ManagedServiceIdentity" - }, - "instanceType": { - "type": "string", - "nullable": true - }, - "instanceCount": { - "type": "integer", - "format": "int32" - }, - "computeInstanceName": { - "type": "string", - "nullable": true - }, - "dockerImage": { - "type": "string", - "nullable": true - }, - "publishedPort": { - "type": "integer", - "format": "int32" - }, - "targetPort": { - "type": "integer", - "format": "int32" - }, - "fromExistingCustomApp": { - "type": "boolean" - }, - "customAppName": { - "type": "string", - "nullable": true - }, - "assignedTo": { - "$ref": "#/components/schemas/AssignedUser" - }, - "endpointUrl": { - "type": "string", - "nullable": true - }, - "createdOn": { - "type": "string", - "format": "date-time" - }, - "modifiedOn": { - "type": "string", - "format": "date-time" - }, - "owner": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - } - }, - "additionalProperties": false + "aciAdvanceSettings": { + "$ref": "#/components/schemas/ACIAdvanceSettings" }, - "FlowSessionDto": { - "type": "object", - "properties": { - "sessionId": { - "type": "string", - "nullable": true - }, - "baseImage": { - "type": "string", - "nullable": true - }, - "packages": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "maxIdleTimeSeconds": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "computeName": { - "type": "string", - "nullable": true - }, - "flowFeatures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FlowFeature" - }, - "nullable": true - }, - "runtimeName": { - "type": "string", - "nullable": true - }, - "runtimeDescription": { - "type": "string", - "nullable": true - }, - "runtimeType": { - "$ref": "#/components/schemas/RuntimeType" - }, - "environment": { - "type": "string", - "nullable": true - }, - "status": { - "$ref": "#/components/schemas/RuntimeStatusEnum" - }, - "statusMessage": { - "type": "string", - "nullable": true - }, - "error": { - "$ref": "#/components/schemas/ErrorResponse" - }, - "fromExistingEndpoint": { - "type": "boolean" - }, - "endpointName": { - "type": "string", - "nullable": true - }, - "fromExistingDeployment": { - "type": "boolean" - }, - "deploymentName": { - "type": "string", - "nullable": true - }, - "identity": { - "$ref": "#/components/schemas/ManagedServiceIdentity" - }, - "instanceType": { - "type": "string", - "nullable": true - }, - "instanceCount": { - "type": "integer", - "format": "int32" - }, - "computeInstanceName": { - "type": "string", - "nullable": true - }, - "dockerImage": { - "type": "string", - "nullable": true - }, - "publishedPort": { - "type": "integer", - "format": "int32" - }, - "targetPort": { - "type": "integer", - "format": "int32" - }, - "fromExistingCustomApp": { - "type": "boolean" - }, - "customAppName": { - "type": "string", - "nullable": true - }, - "assignedTo": { - "$ref": "#/components/schemas/AssignedUser" - }, - "endpointUrl": { - "type": "string", - "nullable": true - }, - "createdOn": { - "type": "string", - "format": "date-time" - }, - "modifiedOn": { - "type": "string", - "format": "date-time" - }, - "owner": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - } - }, - "additionalProperties": false - }, - "FlowSnapshot": { - "type": "object", - "properties": { - "inputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowInputDefinition" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowOutputDefinition" - }, - "description": "This is a dictionary", - "nullable": true - }, - "nodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FlowNode" - }, - "nullable": true - }, - "node_variants": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowNodeVariant" - }, - "description": "This is a dictionary", - "nullable": true - }, - "environment": { - "$ref": "#/components/schemas/FlowEnvironment" - }, - "environment_variables": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary", - "nullable": true - }, - "language": { - "$ref": "#/components/schemas/FlowLanguage" - }, - "path": { - "type": "string", - "nullable": true - }, - "entry": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "FlowSubmitRunSettings": { - "type": "object", - "properties": { - "nodeInputs": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary", - "nullable": true - }, - "runMode": { - "$ref": "#/components/schemas/FlowRunMode" - }, - "tuningNodeNames": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "tuningNodeSettings": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TuningNodeSetting" - }, - "description": "This is a dictionary", - "nullable": true - }, - "baselineVariantId": { - "type": "string", - "nullable": true - }, - "defaultVariantId": { - "type": "string", - "nullable": true - }, - "variants": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Node" - } - }, - "description": "This is a dictionary", - "nullable": true - }, - "nodeName": { - "type": "string", - "nullable": true - }, - "isDefaultVariant": { - "type": "boolean" - }, - "nodeVariantId": { - "type": "string", - "nullable": true - }, - "nodeOutputPaths": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "baseFlowRunId": { - "type": "string", - "nullable": true - }, - "flowTestInfos": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowTestInfo" - }, - "nullable": true - }, - "bulkTestId": { - "type": "string", - "nullable": true - }, - "evaluationFlowRunSettings": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/EvaluationFlowRunSettings" - }, - "description": "This is a dictionary", - "nullable": true - }, - "bulkTestFlowId": { - "type": "string", - "nullable": true - }, - "bulkTestFlowRunIds": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "batch_inputs": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary" - }, - "nullable": true - }, - "inputUniversalLink": { - "type": "string", - "nullable": true - }, - "dataInputs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "flowRunOutputDirectory": { - "type": "string", - "nullable": true - }, - "connectionOverrides": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionOverrideSetting" - }, - "nullable": true - }, - "flowRunDisplayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "runtimeName": { - "type": "string", - "nullable": true - }, - "batchDataInput": { - "$ref": "#/components/schemas/BatchDataInput" - }, - "inputsMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "connections": { - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary" - }, - "description": "This is a dictionary", - "nullable": true - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputDataStore": { - "type": "string", - "nullable": true - }, - "runDisplayNameGenerationType": { - "$ref": "#/components/schemas/RunDisplayNameGenerationType" - }, - "collieRunSettings": { - "$ref": "#/components/schemas/CollieRunSettings" - }, - "workerCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "timeoutInSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "promptflowEngineType": { - "$ref": "#/components/schemas/PromptflowEngineType" - }, - "experimentNodeName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "linkedTrainingPipelineRunId": { + "type": "string", + "nullable": true }, - "FlowTestInfo": { - "type": "object", - "properties": { - "variantId": { - "type": "string", - "nullable": true - }, - "tuningNodeName": { - "type": "string", - "nullable": true - }, - "flowRunId": { - "type": "string", - "nullable": true - }, - "flowTestStorageSetting": { - "$ref": "#/components/schemas/FlowTestStorageSetting" - }, - "flowRunType": { - "$ref": "#/components/schemas/FlowRunTypeEnum" - }, - "variantRunId": { - "type": "string", - "nullable": true - }, - "evaluationName": { - "type": "string", - "nullable": true - }, - "outputUniversalLink": { - "type": "string", - "nullable": true - }, - "experimentNodeName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "linkedExperimentName": { + "type": "string", + "nullable": true }, - "FlowTestMode": { - "enum": [ - "Sync", - "Async" - ], + "graphNodesRunIdMapping": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "workflow": { + "$ref": "#/components/schemas/PipelineGraph" + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InputOutputPortMetadata" + }, + "nullable": true + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InputOutputPortMetadata" + }, + "nullable": true + }, + "exampleRequest": { + "$ref": "#/components/schemas/ExampleRequest" + }, + "userStorageConnectionString": { + "type": "string", + "nullable": true + }, + "userStorageEndpointUri": { + "type": "string", + "format": "uri", + "nullable": true + }, + "userStorageWorkspaceSaiToken": { + "type": "string", + "nullable": true + }, + "userStorageContainerName": { + "type": "string", + "nullable": true + }, + "pipelineRunId": { + "type": "string", + "nullable": true + }, + "rootPipelineRunId": { + "type": "string", + "nullable": true + }, + "experimentName": { + "type": "string", + "nullable": true + }, + "experimentId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "CreatedBy": { + "type": "object", + "properties": { + "userObjectId": { + "type": "string", + "nullable": true + }, + "userTenantId": { + "type": "string", + "nullable": true + }, + "userName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "CreatedFromDto": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/CreatedFromType" + }, + "locationType": { + "$ref": "#/components/schemas/CreatedFromLocationType" + }, + "location": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "CreatedFromLocationType": { + "enum": [ + "ArtifactId" + ], + "type": "string" + }, + "CreatedFromType": { + "enum": [ + "Notebook" + ], + "type": "string" + }, + "CreationContext": { + "type": "object", + "properties": { + "createdTime": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + }, + "creationSource": { + "type": "string", + "nullable": true + } + } + }, + "Cron": { + "type": "object", + "properties": { + "expression": { + "type": "string", + "nullable": true + }, + "endTime": { + "type": "string", + "nullable": true + }, + "startTime": { + "type": "string", + "nullable": true + }, + "timeZone": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "CustomConnectionConfig": { + "type": "object", + "properties": { + "configValueType": { + "$ref": "#/components/schemas/ConfigValueType" + }, + "value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "CustomReference": { + "type": "object", + "properties": { + "amlDataStoreName": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DBFSReference": { + "type": "object", + "properties": { + "relativePath": { + "type": "string", + "nullable": true + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Data": { + "type": "object", + "properties": { + "dataLocation": { + "$ref": "#/components/schemas/ExecutionDataLocation" + }, + "mechanism": { + "$ref": "#/components/schemas/DeliveryMechanism" + }, + "environmentVariableName": { + "type": "string", + "nullable": true + }, + "pathOnCompute": { + "type": "string", + "nullable": true + }, + "overwrite": { + "type": "boolean" + }, + "options": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "DataBindingMode": { + "enum": [ + "Mount", + "Download", + "Upload", + "ReadOnlyMount", + "ReadWriteMount", + "Direct", + "EvalMount", + "EvalDownload" + ], + "type": "string" + }, + "DataCategory": { + "enum": [ + "All", + "Dataset", + "Model" + ], + "type": "string" + }, + "DataCopyMode": { + "enum": [ + "MergeWithOverwrite", + "FailIfConflict" + ], + "type": "string" + }, + "DataInfo": { + "type": "object", + "properties": { + "feedName": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "dataSourceType": { + "$ref": "#/components/schemas/DataSourceType" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "dataTypeId": { + "type": "string", + "nullable": true + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "modifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "registeredBy": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "createdByStudio": { + "type": "boolean", + "nullable": true + }, + "dataReferenceType": { + "$ref": "#/components/schemas/DataReferenceType" + }, + "datasetType": { + "type": "string", + "nullable": true + }, + "savedDatasetId": { + "type": "string", + "nullable": true + }, + "datasetVersionId": { + "type": "string", + "nullable": true + }, + "isVisible": { + "type": "boolean" + }, + "isRegistered": { + "type": "boolean" + }, + "properties": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary", + "nullable": true + }, + "connectionString": { + "type": "string", + "nullable": true + }, + "containerName": { + "type": "string", + "nullable": true + }, + "dataStorageEndpointUri": { + "type": "string", + "format": "uri", + "nullable": true + }, + "workspaceSaiToken": { + "type": "string", + "nullable": true + }, + "amlDatasetDataFlow": { + "type": "string", + "nullable": true + }, + "systemData": { + "$ref": "#/components/schemas/SystemData" }, - "FlowTestStorageSetting": { - "type": "object", - "properties": { - "storageAccountName": { - "type": "string", - "nullable": true - }, - "blobContainerName": { - "type": "string", - "nullable": true - }, - "flowArtifactsRootPath": { - "type": "string", - "nullable": true - }, - "outputDatastoreName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "armId": { + "type": "string", + "nullable": true + }, + "assetId": { + "type": "string", + "nullable": true + }, + "assetUri": { + "type": "string", + "nullable": true + }, + "assetType": { + "type": "string", + "nullable": true + }, + "isDataV2": { + "type": "boolean", + "nullable": true + }, + "assetScopeType": { + "$ref": "#/components/schemas/AssetScopeTypes" + }, + "pipelineRunId": { + "type": "string", + "nullable": true + }, + "moduleNodeId": { + "type": "string", + "nullable": true + }, + "outputPortName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DataLocation": { + "type": "object", + "properties": { + "storageType": { + "$ref": "#/components/schemas/DataLocationStorageType" }, - "FlowToolSettingParameter": { - "type": "object", - "properties": { - "type": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ValueType" - }, - "nullable": true - }, - "default": { - "type": "string", - "nullable": true - }, - "advanced": { - "type": "boolean", - "nullable": true - }, - "enum": { - "type": "array", - "items": {}, - "nullable": true - }, - "model_list": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "capabilities": { - "$ref": "#/components/schemas/AzureOpenAIModelCapabilities" - }, - "allow_manual_entry": { - "type": "boolean", - "nullable": true - }, - "ui_hints": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "storageId": { + "type": "string", + "nullable": true }, - "FlowToolsDto": { - "type": "object", - "properties": { - "package": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Tool" - }, - "description": "This is a dictionary", - "nullable": true - }, - "code": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Tool" - }, - "description": "This is a dictionary", - "nullable": true - }, - "errors": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ErrorResponse" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "uri": { + "type": "string", + "nullable": true }, - "FlowType": { - "enum": [ - "Default", - "Evaluation", - "Chat", - "Rag" - ], - "type": "string" + "dataStoreName": { + "type": "string", + "nullable": true }, - "FlowVariantNode": { - "type": "object", - "properties": { - "node": { - "$ref": "#/components/schemas/FlowNode" - }, - "description": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "dataReference": { + "$ref": "#/components/schemas/DataReference" }, - "ForecastHorizon": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/components/schemas/ForecastHorizonMode" - }, - "value": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "amlDataset": { + "$ref": "#/components/schemas/AmlDataset" }, - "ForecastHorizonMode": { - "enum": [ - "Auto", - "Custom" - ], - "type": "string" + "assetDefinition": { + "$ref": "#/components/schemas/AssetDefinition" + } + }, + "additionalProperties": false + }, + "DataLocationStorageType": { + "enum": [ + "None", + "AzureBlob", + "Artifact", + "Snapshot", + "SavedAmlDataset", + "Asset" + ], + "type": "string" + }, + "DataPath": { + "type": "object", + "properties": { + "dataStoreName": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "sqlDataPath": { + "$ref": "#/components/schemas/SqlDataPath" + } + }, + "additionalProperties": false + }, + "DataPathParameter": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "documentation": { + "type": "string", + "nullable": true + }, + "defaultValue": { + "$ref": "#/components/schemas/LegacyDataPath" + }, + "isOptional": { + "type": "boolean" + }, + "dataTypeId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DataPortDto": { + "type": "object", + "properties": { + "dataPortType": { + "$ref": "#/components/schemas/DataPortType" + }, + "dataPortName": { + "type": "string", + "nullable": true + }, + "dataStoreName": { + "type": "string", + "nullable": true + }, + "dataStoreIntellectualPropertyAccessMode": { + "$ref": "#/components/schemas/IntellectualPropertyAccessMode" + }, + "dataStoreIntellectualPropertyPublisher": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DataPortType": { + "enum": [ + "Input", + "Output" + ], + "type": "string" + }, + "DataReference": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DataReferenceType" }, - "ForecastingSettings": { - "type": "object", - "properties": { - "countryOrRegionForHolidays": { - "type": "string", - "nullable": true - }, - "timeColumnName": { - "type": "string", - "nullable": true - }, - "targetLags": { - "$ref": "#/components/schemas/TargetLags" - }, - "targetRollingWindowSize": { - "$ref": "#/components/schemas/TargetRollingWindowSize" - }, - "forecastHorizon": { - "$ref": "#/components/schemas/ForecastHorizon" - }, - "timeSeriesIdColumnNames": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "frequency": { - "type": "string", - "nullable": true - }, - "featureLags": { - "type": "string", - "nullable": true - }, - "seasonality": { - "$ref": "#/components/schemas/Seasonality" - }, - "shortSeriesHandlingConfig": { - "$ref": "#/components/schemas/ShortSeriesHandlingConfiguration" - }, - "useStl": { - "$ref": "#/components/schemas/UseStl" - }, - "targetAggregateFunction": { - "$ref": "#/components/schemas/TargetAggregationFunction" - }, - "cvStepSize": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "featuresUnknownAtForecastTime": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "Framework": { - "enum": [ - "Python", - "PySpark", - "Cntk", - "TensorFlow", - "PyTorch", - "PySparkInteractive", - "R" - ], - "type": "string" - }, - "Frequency": { - "enum": [ - "Month", - "Week", - "Day", - "Hour", - "Minute" - ], - "type": "string" - }, - "GeneralSettings": { - "type": "object", - "properties": { - "primaryMetric": { - "$ref": "#/components/schemas/PrimaryMetrics" - }, - "taskType": { - "$ref": "#/components/schemas/TaskType" - }, - "logVerbosity": { - "$ref": "#/components/schemas/LogVerbosity" - } - }, - "additionalProperties": false + "azureBlobReference": { + "$ref": "#/components/schemas/AzureBlobReference" }, - "GeneratePipelineComponentRequest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "moduleScope": { - "$ref": "#/components/schemas/ModuleScope" - }, - "isDeterministic": { - "type": "boolean", - "nullable": true - }, - "category": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "setAsDefaultVersion": { - "type": "boolean" - }, - "registryName": { - "type": "string", - "nullable": true - }, - "graph": { - "$ref": "#/components/schemas/GraphDraftEntity" - }, - "pipelineRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameterAssignment" - }, - "nullable": true - }, - "moduleNodeRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeRunSetting" - }, - "nullable": true - }, - "moduleNodeUIInputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" - }, - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "continueRunOnStepFailure": { - "type": "boolean", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "enforceRerun": { - "type": "boolean", - "nullable": true - }, - "datasetAccessModes": { - "$ref": "#/components/schemas/DatasetAccessModes" - } - }, - "additionalProperties": false + "azureDataLakeReference": { + "$ref": "#/components/schemas/AzureDataLakeReference" }, - "GenerateToolMetaRequest": { - "type": "object", - "properties": { - "tools": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ToolSourceMeta" - }, - "description": "This is a dictionary", - "nullable": true - }, - "working_dir": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "azureFilesReference": { + "$ref": "#/components/schemas/AzureFilesReference" }, - "GetDynamicListRequest": { - "type": "object", - "properties": { - "func_path": { - "type": "string", - "nullable": true - }, - "func_kwargs": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "azureSqlDatabaseReference": { + "$ref": "#/components/schemas/AzureDatabaseReference" }, - "GetRunDataResultDto": { - "type": "object", - "properties": { - "runMetadata": { - "$ref": "#/components/schemas/RunDto" - }, - "runDefinition": { - "nullable": true - }, - "jobSpecification": { - "nullable": true - }, - "systemSettings": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "azurePostgresDatabaseReference": { + "$ref": "#/components/schemas/AzureDatabaseReference" }, - "GetTrainingSessionDto": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/components/schemas/SessionProperties" - }, - "compute": { - "$ref": "#/components/schemas/ComputeContract" - } - }, - "additionalProperties": false + "azureDataLakeGen2Reference": { + "$ref": "#/components/schemas/AzureDataLakeGen2Reference" }, - "GlobalJobDispatcherConfiguration": { - "type": "object", - "properties": { - "vmSize": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "computeType": { - "$ref": "#/components/schemas/GlobalJobDispatcherSupportedComputeType" - }, - "region": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "myResourceOnly": { - "type": "boolean" - }, - "redispatchAllowed": { - "type": "boolean", - "nullable": true - }, - "lowPriorityVMTolerant": { - "type": "boolean" - }, - "vcList": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "planId": { - "type": "string", - "nullable": true - }, - "planRegionId": { - "type": "string", - "nullable": true - }, - "vcBlockList": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "clusterBlockList": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "dbfsReference": { + "$ref": "#/components/schemas/DBFSReference" }, - "GlobalJobDispatcherSupportedComputeType": { - "enum": [ - "AmlCompute", - "AmlK8s" - ], - "type": "string" + "azureMySqlDatabaseReference": { + "$ref": "#/components/schemas/AzureDatabaseReference" }, - "GlobsOptions": { - "type": "object", - "properties": { - "globPatterns": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "customReference": { + "$ref": "#/components/schemas/CustomReference" }, - "GraphAnnotationNode": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "content": { - "type": "string", - "nullable": true - }, - "mentionedNodeNames": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "structuredContent": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "hdfsReference": { + "$ref": "#/components/schemas/HdfsReference" + } + }, + "additionalProperties": false + }, + "DataReferenceConfiguration": { + "type": "object", + "properties": { + "dataStoreName": { + "type": "string", + "nullable": true + }, + "mode": { + "$ref": "#/components/schemas/DataStoreMode" + }, + "pathOnDataStore": { + "type": "string", + "nullable": true + }, + "pathOnCompute": { + "type": "string", + "nullable": true + }, + "overwrite": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "DataReferenceType": { + "enum": [ + "None", + "AzureBlob", + "AzureDataLake", + "AzureFiles", + "AzureSqlDatabase", + "AzurePostgresDatabase", + "AzureDataLakeGen2", + "DBFS", + "AzureMySqlDatabase", + "Custom", + "Hdfs" + ], + "type": "string" + }, + "DataSetDefinition": { + "type": "object", + "properties": { + "dataTypeShortName": { + "type": "string", + "nullable": true + }, + "parameterName": { + "type": "string", + "nullable": true + }, + "value": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + } + }, + "additionalProperties": false + }, + "DataSetDefinitionValue": { + "type": "object", + "properties": { + "literalValue": { + "$ref": "#/components/schemas/DataPath" }, - "GraphComponentsMode": { - "enum": [ - "Normal", - "AllDesignerBuildin", - "ContainsDesignerBuildin" - ], - "type": "string" + "dataSetReference": { + "$ref": "#/components/schemas/RegisteredDataSetReference" }, - "GraphControlNode": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "controlType": { - "$ref": "#/components/schemas/ControlType" - }, - "controlParameter": { - "$ref": "#/components/schemas/ParameterAssignment" - }, - "runAttribution": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "savedDataSetReference": { + "$ref": "#/components/schemas/SavedDataSetReference" }, - "GraphControlReferenceNode": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "comment": { - "type": "string", - "nullable": true - }, - "controlFlowType": { - "$ref": "#/components/schemas/ControlFlowType" - }, - "referenceNodeId": { - "type": "string", - "nullable": true - }, - "doWhileControlFlowInfo": { - "$ref": "#/components/schemas/DoWhileControlFlowInfo" - }, - "parallelForControlFlowInfo": { - "$ref": "#/components/schemas/ParallelForControlFlowInfo" - }, - "runAttribution": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "assetDefinition": { + "$ref": "#/components/schemas/AssetDefinition" + } + }, + "additionalProperties": false + }, + "DataSetPathParameter": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "documentation": { + "type": "string", + "nullable": true + }, + "defaultValue": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + }, + "isOptional": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "DataSettings": { + "type": "object", + "properties": { + "targetColumnName": { + "type": "string", + "nullable": true + }, + "weightColumnName": { + "type": "string", + "nullable": true + }, + "positiveLabel": { + "type": "string", + "nullable": true + }, + "validationData": { + "$ref": "#/components/schemas/ValidationDataSettings" + }, + "testData": { + "$ref": "#/components/schemas/TestDataSettings" + } + }, + "additionalProperties": false + }, + "DataSourceType": { + "enum": [ + "None", + "PipelineDataSource", + "AmlDataset", + "GlobalDataset", + "FeedModel", + "FeedDataset", + "AmlDataVersion", + "AMLModelVersion" + ], + "type": "string" + }, + "DataStoreMode": { + "enum": [ + "Mount", + "Download", + "Upload" + ], + "type": "string" + }, + "DataTransferCloudConfiguration": { + "type": "object", + "properties": { + "AllowOverwrite": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "DataTransferSink": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DataTransferStorageType" }, - "GraphDatasetNode": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "datasetId": { - "type": "string", - "nullable": true - }, - "dataPathParameterName": { - "type": "string", - "nullable": true - }, - "dataSetDefinition": { - "$ref": "#/components/schemas/DataSetDefinition" - } - }, - "additionalProperties": false - }, - "GraphDatasetsLoadModes": { - "enum": [ - "SkipDatasetsLoad", - "V1RegisteredDataset", - "V1SavedDataset", - "PersistDatasetsInfo", - "SubmissionNeededUpstreamDatasetOnly", - "SubmissionNeededInCompleteDatasetOnly", - "V2Asset", - "Submission", - "AllRegisteredData", - "AllData" - ], - "type": "string" - }, - "GraphDraftEntity": { - "type": "object", - "properties": { - "moduleNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNode" - }, - "nullable": true - }, - "datasetNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphDatasetNode" - }, - "nullable": true - }, - "subGraphNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphReferenceNode" - }, - "nullable": true - }, - "controlReferenceNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphControlReferenceNode" - }, - "nullable": true - }, - "controlNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphControlNode" - }, - "nullable": true - }, - "edges": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphEdge" - }, - "nullable": true - }, - "entityInterface": { - "$ref": "#/components/schemas/EntityInterface" - }, - "graphLayout": { - "$ref": "#/components/schemas/GraphLayout" - }, - "createdBy": { - "$ref": "#/components/schemas/CreatedBy" - }, - "lastUpdatedBy": { - "$ref": "#/components/schemas/CreatedBy" - }, - "defaultCompute": { - "$ref": "#/components/schemas/ComputeSetting" - }, - "defaultDatastore": { - "$ref": "#/components/schemas/DatastoreSetting" - }, - "defaultCloudPriority": { - "$ref": "#/components/schemas/CloudPrioritySetting" - }, - "extendedProperties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "parentSubGraphModuleIds": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "fileSystem": { + "$ref": "#/components/schemas/FileSystem" }, - "GraphEdge": { - "type": "object", - "properties": { - "sourceOutputPort": { - "$ref": "#/components/schemas/PortInfo" - }, - "destinationInputPort": { - "$ref": "#/components/schemas/PortInfo" - } - }, - "additionalProperties": false + "databaseSink": { + "$ref": "#/components/schemas/DatabaseSink" + } + }, + "additionalProperties": false + }, + "DataTransferSource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/DataTransferStorageType" }, - "GraphLayout": { - "type": "object", - "properties": { - "nodeLayouts": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/NodeLayout" - }, - "description": "This is a dictionary", - "nullable": true - }, - "extendedData": { - "type": "string", - "nullable": true - }, - "annotationNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphAnnotationNode" - }, - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "fileSystem": { + "$ref": "#/components/schemas/FileSystem" }, - "GraphLayoutCreationInfo": { - "type": "object", - "properties": { - "nodeLayouts": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/NodeLayout" - }, - "description": "This is a dictionary", - "nullable": true - }, - "extendedData": { - "type": "string", - "nullable": true - }, - "annotationNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphAnnotationNode" - }, - "nullable": true - } - }, - "additionalProperties": false + "databaseSource": { + "$ref": "#/components/schemas/DatabaseSource" + } + }, + "additionalProperties": false + }, + "DataTransferStorageType": { + "enum": [ + "DataBase", + "FileSystem" + ], + "type": "string" + }, + "DataTransferTaskType": { + "enum": [ + "ImportData", + "ExportData", + "CopyData" + ], + "type": "string" + }, + "DataTransferV2CloudSetting": { + "type": "object", + "properties": { + "taskType": { + "$ref": "#/components/schemas/DataTransferTaskType" }, - "GraphModuleNode": { - "type": "object", - "properties": { - "moduleType": { - "$ref": "#/components/schemas/ModuleType" - }, - "runconfig": { - "type": "string", - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "moduleId": { - "type": "string", - "nullable": true - }, - "comment": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "moduleParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParameterAssignment" - }, - "nullable": true - }, - "moduleMetadataParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParameterAssignment" - }, - "nullable": true - }, - "moduleOutputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OutputSetting" - }, - "nullable": true - }, - "moduleInputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InputSetting" - }, - "nullable": true - }, - "useGraphDefaultCompute": { - "type": "boolean" - }, - "useGraphDefaultDatastore": { - "type": "boolean" - }, - "regenerateOutput": { - "type": "boolean" - }, - "controlInputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ControlInput" - }, - "nullable": true - }, - "cloudSettings": { - "$ref": "#/components/schemas/CloudSettings" - }, - "executionPhase": { - "$ref": "#/components/schemas/ExecutionPhase" - }, - "runAttribution": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "ComputeName": { + "type": "string", + "nullable": true }, - "GraphModuleNodeRunSetting": { - "type": "object", - "properties": { - "nodeId": { - "type": "string", - "nullable": true - }, - "moduleId": { - "type": "string", - "nullable": true - }, - "stepType": { - "type": "string", - "nullable": true - }, - "runSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameterAssignment" - }, - "nullable": true - } - }, - "additionalProperties": false + "CopyDataTask": { + "$ref": "#/components/schemas/CopyDataTask" }, - "GraphModuleNodeUIInputSetting": { - "type": "object", - "properties": { - "nodeId": { - "type": "string", - "nullable": true - }, - "moduleId": { - "type": "string", - "nullable": true - }, - "moduleInputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UIInputSetting" - }, - "nullable": true - } - }, - "additionalProperties": false + "ImportDataTask": { + "$ref": "#/components/schemas/ImportDataTask" }, - "GraphNodeStatusInfo": { - "type": "object", - "properties": { - "status": { - "$ref": "#/components/schemas/TaskStatusCode" - }, - "runStatus": { - "$ref": "#/components/schemas/RunStatus" - }, - "isBypassed": { - "type": "boolean" - }, - "hasFailedChildRun": { - "type": "boolean" - }, - "partiallyExecuted": { - "type": "boolean" - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "aetherStartTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "aetherEndTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "aetherCreationTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "runHistoryStartTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "runHistoryEndTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "runHistoryCreationTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "reuseInfo": { - "$ref": "#/components/schemas/TaskReuseInfo" - }, - "controlFlowInfo": { - "$ref": "#/components/schemas/TaskControlFlowInfo" - }, - "statusCode": { - "$ref": "#/components/schemas/TaskStatusCode" - }, - "statusDetail": { - "type": "string", - "nullable": true - }, - "creationTime": { - "type": "string", - "format": "date-time" - }, - "scheduleTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "startTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "endTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "requestId": { - "type": "string", - "nullable": true - }, - "runId": { - "type": "string", - "nullable": true - }, - "dataContainerId": { - "type": "string", - "nullable": true - }, - "realTimeLogPath": { - "type": "string", - "nullable": true - }, - "hasWarnings": { - "type": "boolean" - }, - "compositeNodeId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "ExportDataTask": { + "$ref": "#/components/schemas/ExportDataTask" + }, + "DataTransferSources": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DataTransferSource" + }, + "description": "This is a dictionary", + "nullable": true + }, + "DataTransferSinks": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DataTransferSink" + }, + "description": "This is a dictionary", + "nullable": true }, - "GraphReferenceNode": { - "type": "object", - "properties": { - "graphId": { - "type": "string", - "nullable": true - }, - "defaultCompute": { - "$ref": "#/components/schemas/ComputeSetting" - }, - "defaultDatastore": { - "$ref": "#/components/schemas/DatastoreSetting" - }, - "id": { - "type": "string", - "nullable": true - }, - "moduleId": { - "type": "string", - "nullable": true - }, - "comment": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "moduleParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParameterAssignment" - }, - "nullable": true - }, - "moduleMetadataParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParameterAssignment" - }, - "nullable": true - }, - "moduleOutputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OutputSetting" - }, - "nullable": true - }, - "moduleInputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InputSetting" - }, - "nullable": true - }, - "useGraphDefaultCompute": { - "type": "boolean" - }, - "useGraphDefaultDatastore": { - "type": "boolean" - }, - "regenerateOutput": { - "type": "boolean" - }, - "controlInputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ControlInput" - }, - "nullable": true - }, - "cloudSettings": { - "$ref": "#/components/schemas/CloudSettings" - }, - "executionPhase": { - "$ref": "#/components/schemas/ExecutionPhase" - }, - "runAttribution": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "DataCopyMode": { + "$ref": "#/components/schemas/DataCopyMode" + } + }, + "additionalProperties": false + }, + "DataTypeCreationInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "isDirectory": { + "type": "boolean" + }, + "fileExtension": { + "type": "string", + "nullable": true + }, + "parentDataTypeIds": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "DataTypeMechanism": { + "enum": [ + "ErrorWhenNotExisting", + "RegisterWhenNotExisting", + "RegisterBuildinDataTypeOnly" + ], + "type": "string" + }, + "DatabaseSink": { + "type": "object", + "properties": { + "connection": { + "type": "string", + "nullable": true + }, + "table": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DatabaseSource": { + "type": "object", + "properties": { + "connection": { + "type": "string", + "nullable": true + }, + "query": { + "type": "string", + "nullable": true + }, + "storedProcedureName": { + "type": "string", + "nullable": true + }, + "storedProcedureParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StoredProcedureParameter" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "DatabricksComputeInfo": { + "type": "object", + "properties": { + "existingClusterId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DatabricksConfiguration": { + "type": "object", + "properties": { + "workers": { + "type": "integer", + "format": "int32" + }, + "minimumWorkerCount": { + "type": "integer", + "format": "int32" + }, + "maxMumWorkerCount": { + "type": "integer", + "format": "int32" + }, + "sparkVersion": { + "type": "string", + "nullable": true + }, + "nodeTypeId": { + "type": "string", + "nullable": true + }, + "sparkConf": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "sparkEnvVars": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "clusterLogConfDbfsPath": { + "type": "string", + "nullable": true + }, + "dbfsInitScripts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InitScriptInfoDto" + }, + "nullable": true + }, + "instancePoolId": { + "type": "string", + "nullable": true + }, + "timeoutSeconds": { + "type": "integer", + "format": "int32" + }, + "notebookTask": { + "$ref": "#/components/schemas/NoteBookTaskDto" + }, + "sparkPythonTask": { + "$ref": "#/components/schemas/SparkPythonTaskDto" + }, + "sparkJarTask": { + "$ref": "#/components/schemas/SparkJarTaskDto" + }, + "sparkSubmitTask": { + "$ref": "#/components/schemas/SparkSubmitTaskDto" + }, + "jarLibraries": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "GraphSdkCodeType": { - "enum": [ - "Python", - "JupyterNotebook", - "Unknown" - ], + "eggLibraries": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "HdfsReference": { - "type": "object", - "properties": { - "amlDataStoreName": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "whlLibraries": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "pypiLibraries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PythonPyPiOrRCranLibraryDto" + }, + "nullable": true + }, + "rCranLibraries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PythonPyPiOrRCranLibraryDto" + }, + "nullable": true + }, + "mavenLibraries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MavenLibraryDto" + }, + "nullable": true + }, + "libraries": { + "type": "array", + "items": { }, + "nullable": true + }, + "linkedADBWorkspaceMetadata": { + "$ref": "#/components/schemas/LinkedADBWorkspaceMetadata" + }, + "databrickResourceId": { + "type": "string", + "nullable": true + }, + "autoScale": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "DatacacheConfiguration": { + "type": "object", + "properties": { + "datacacheId": { + "type": "string", + "format": "uuid" + }, + "datacacheStore": { + "type": "string", + "nullable": true + }, + "datasetId": { + "type": "string", + "format": "uuid" + }, + "mode": { + "$ref": "#/components/schemas/DatacacheMode" + }, + "replica": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "failureFallback": { + "type": "boolean" + }, + "pathOnCompute": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DatacacheMode": { + "enum": [ + "Mount" + ], + "type": "string" + }, + "DatasetAccessModes": { + "enum": [ + "Default", + "DatasetInDpv2", + "AssetInDpv2", + "DatasetInDesignerUI", + "DatasetInDpv2WithDatasetInDesignerUI", + "Dataset", + "AssetInDpv2WithDatasetInDesignerUI", + "DatasetAndAssetInDpv2WithDatasetInDesignerUI", + "AssetInDesignerUI", + "AssetInDpv2WithAssetInDesignerUI", + "Asset" + ], + "type": "string" + }, + "DatasetConsumptionType": { + "enum": [ + "RunInput", + "Reference" + ], + "type": "string" + }, + "DatasetDeliveryMechanism": { + "enum": [ + "Direct", + "Mount", + "Download", + "Hdfs" + ], + "type": "string" + }, + "DatasetIdentifier": { + "type": "object", + "properties": { + "savedId": { + "type": "string", + "nullable": true + }, + "registeredId": { + "type": "string", + "nullable": true + }, + "registeredVersion": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DatasetInputDetails": { + "type": "object", + "properties": { + "inputName": { + "type": "string", + "nullable": true + }, + "mechanism": { + "$ref": "#/components/schemas/DatasetDeliveryMechanism" + }, + "pathOnCompute": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DatasetLineage": { + "type": "object", + "properties": { + "identifier": { + "$ref": "#/components/schemas/DatasetIdentifier" }, - "HdiClusterComputeInfo": { - "type": "object", - "properties": { - "address": { - "type": "string", - "nullable": true - }, - "username": { - "type": "string", - "nullable": true - }, - "password": { - "type": "string", - "nullable": true - }, - "privateKey": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "consumptionType": { + "$ref": "#/components/schemas/DatasetConsumptionType" }, - "HdiConfiguration": { - "type": "object", - "properties": { - "yarnDeployMode": { - "$ref": "#/components/schemas/YarnDeployMode" - } - }, - "additionalProperties": false + "inputDetails": { + "$ref": "#/components/schemas/DatasetInputDetails" + } + }, + "additionalProperties": false + }, + "DatasetOutput": { + "type": "object", + "properties": { + "datasetType": { + "$ref": "#/components/schemas/DatasetType" }, - "HdiRunConfiguration": { - "type": "object", - "properties": { - "file": { - "type": "string", - "nullable": true - }, - "className": { - "type": "string", - "nullable": true - }, - "files": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "archives": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "jars": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "pyFiles": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "computeName": { - "type": "string", - "nullable": true - }, - "queue": { - "type": "string", - "nullable": true - }, - "driverMemory": { - "type": "string", - "nullable": true - }, - "driverCores": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "executorMemory": { - "type": "string", - "nullable": true - }, - "executorCores": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "numberExecutors": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "conf": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "datasetRegistration": { + "$ref": "#/components/schemas/DatasetRegistration" }, - "HistoryConfiguration": { - "type": "object", - "properties": { - "outputCollection": { - "type": "boolean", - "default": true - }, - "directoriesToWatch": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "logs" - ], - "nullable": true - }, - "enableMLflowTracking": { - "type": "boolean", - "default": true - } - } + "datasetOutputOptions": { + "$ref": "#/components/schemas/DatasetOutputOptions" + } + }, + "additionalProperties": false + }, + "DatasetOutputDetails": { + "type": "object", + "properties": { + "outputName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DatasetOutputOptions": { + "type": "object", + "properties": { + "sourceGlobs": { + "$ref": "#/components/schemas/GlobsOptions" + }, + "pathOnDatastore": { + "type": "string", + "nullable": true + }, + "PathOnDatastoreParameterAssignment": { + "$ref": "#/components/schemas/ParameterAssignment" + } + }, + "additionalProperties": false + }, + "DatasetOutputType": { + "enum": [ + "RunOutput", + "Reference" + ], + "type": "string" + }, + "DatasetRegistration": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "createNewVersion": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "additionalTransformations": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DatasetRegistrationOptions": { + "type": "object", + "properties": { + "additionalTransformation": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DatasetType": { + "enum": [ + "File", + "Tabular" + ], + "type": "string" + }, + "DatastoreSetting": { + "type": "object", + "properties": { + "dataStoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DbfsStorageInfoDto": { + "type": "object", + "properties": { + "destination": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DebugInfoResponse": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type.", + "nullable": true + }, + "message": { + "type": "string", + "description": "The message.", + "nullable": true + }, + "stackTrace": { + "type": "string", + "description": "The stack trace.", + "nullable": true + }, + "innerException": { + "$ref": "#/components/schemas/DebugInfoResponse" + }, + "data": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary", + "nullable": true + }, + "errorResponse": { + "$ref": "#/components/schemas/ErrorResponse" + } + }, + "additionalProperties": false, + "description": "Internal debugging information not intended for external clients." + }, + "DeliveryMechanism": { + "enum": [ + "Direct", + "Mount", + "Download", + "Hdfs" + ], + "type": "string" + }, + "DeployFlowRequest": { + "type": "object", + "properties": { + "sourceResourceId": { + "type": "string", + "nullable": true }, - "HttpStatusCode": { - "enum": [ - "Continue", - "SwitchingProtocols", - "Processing", - "EarlyHints", - "OK", - "Created", - "Accepted", - "NonAuthoritativeInformation", - "NoContent", - "ResetContent", - "PartialContent", - "MultiStatus", - "AlreadyReported", - "IMUsed", - "MultipleChoices", - "Ambiguous", - "MovedPermanently", - "Moved", - "Found", - "Redirect", - "SeeOther", - "RedirectMethod", - "NotModified", - "UseProxy", - "Unused", - "TemporaryRedirect", - "RedirectKeepVerb", - "PermanentRedirect", - "BadRequest", - "Unauthorized", - "PaymentRequired", - "Forbidden", - "NotFound", - "MethodNotAllowed", - "NotAcceptable", - "ProxyAuthenticationRequired", - "RequestTimeout", - "Conflict", - "Gone", - "LengthRequired", - "PreconditionFailed", - "RequestEntityTooLarge", - "RequestUriTooLong", - "UnsupportedMediaType", - "RequestedRangeNotSatisfiable", - "ExpectationFailed", - "MisdirectedRequest", - "UnprocessableEntity", - "Locked", - "FailedDependency", - "UpgradeRequired", - "PreconditionRequired", - "TooManyRequests", - "RequestHeaderFieldsTooLarge", - "UnavailableForLegalReasons", - "InternalServerError", - "NotImplemented", - "BadGateway", - "ServiceUnavailable", - "GatewayTimeout", - "HttpVersionNotSupported", - "VariantAlsoNegotiates", - "InsufficientStorage", - "LoopDetected", - "NotExtended", - "NetworkAuthenticationRequired" - ], - "type": "string" - }, - "HyperDriveConfiguration": { - "type": "object", - "properties": { - "hyperDriveRunConfig": { - "type": "string", - "nullable": true - }, - "primaryMetricGoal": { - "type": "string", - "nullable": true - }, - "primaryMetricName": { - "type": "string", - "nullable": true - }, - "arguments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ArgumentAssignment" - }, - "nullable": true - } - }, - "additionalProperties": false + "sourceFlowRunId": { + "type": "string", + "nullable": true }, - "IActionResult": { - "type": "object", - "additionalProperties": false + "sourceFlowId": { + "type": "string", + "nullable": true }, - "ICheckableLongRunningOperationResponse": { - "type": "object", - "properties": { - "completionResult": { - "$ref": "#/components/schemas/LongRunningNullResponse" - }, - "location": { - "type": "string", - "format": "uri", - "nullable": true - }, - "operationResult": { - "type": "string", - "format": "uri", - "nullable": true - } - }, - "additionalProperties": false + "flow": { + "$ref": "#/components/schemas/Flow" }, - "IdentityConfiguration": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/IdentityType" - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "secret": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "flowType": { + "$ref": "#/components/schemas/FlowType" }, - "IdentitySetting": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/AEVAIdentityType" - }, - "clientId": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "objectId": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "msiResourceId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "flowSubmitRunSettings": { + "$ref": "#/components/schemas/FlowSubmitRunSettings" }, - "IdentityType": { - "enum": [ - "Managed", - "ServicePrincipal", - "AMLToken" - ], + "outputNamesIncludedInEndpointResponse": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "ImportDataTask": { - "type": "object", - "properties": { - "DataTransferSource": { - "$ref": "#/components/schemas/DataTransferSource" - } - }, - "additionalProperties": false + "endpointName": { + "type": "string", + "nullable": true }, - "IndexedErrorResponse": { - "type": "object", - "properties": { - "code": { - "type": "string", - "nullable": true - }, - "errorCodeHierarchy": { - "type": "string", - "nullable": true - }, - "message": { - "type": "string", - "nullable": true - }, - "time": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "componentName": { - "type": "string", - "nullable": true - }, - "severity": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "detailsUri": { - "type": "string", - "format": "uri", - "nullable": true - }, - "referenceCode": { - "type": "string", - "nullable": true - } - } + "endpointDescription": { + "type": "string", + "nullable": true }, - "InitScriptInfoDto": { - "type": "object", - "properties": { - "dbfs": { - "$ref": "#/components/schemas/DbfsStorageInfoDto" - } - }, - "additionalProperties": false + "authMode": { + "$ref": "#/components/schemas/EndpointAuthMode" }, - "InnerErrorDetails": { - "type": "object", - "properties": { - "code": { - "type": "string", - "nullable": true - }, - "message": { - "type": "string", - "nullable": true - }, - "target": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "identity": { + "$ref": "#/components/schemas/ManagedServiceIdentity" }, - "InnerErrorResponse": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The error code.", - "nullable": true - }, - "innerError": { - "$ref": "#/components/schemas/InnerErrorResponse" - } - }, - "additionalProperties": false, - "description": "A nested structure of errors." + "endpointTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "enablePublicNetworkAccess": { + "type": "boolean", + "nullable": true + }, + "connectionOverrides": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionOverrideSetting" + }, + "nullable": true + }, + "useWorkspaceConnection": { + "type": "boolean" + }, + "deploymentName": { + "type": "string", + "nullable": true + }, + "environment": { + "type": "string", + "nullable": true + }, + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "InputAsset": { - "type": "object", - "properties": { - "asset": { - "$ref": "#/components/schemas/Asset" - }, - "mechanism": { - "$ref": "#/components/schemas/DeliveryMechanism" - }, - "environmentVariableName": { - "type": "string", - "nullable": true - }, - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "overwrite": { - "type": "boolean" - }, - "options": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "deploymentTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "InputData": { - "type": "object", - "properties": { - "datasetId": { - "type": "string", - "nullable": true - }, - "mode": { - "$ref": "#/components/schemas/DataBindingMode" - }, - "value": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "appInsightsEnabled": { + "type": "boolean" }, - "InputDataBinding": { - "type": "object", - "properties": { - "dataId": { - "type": "string", - "nullable": true - }, - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "mode": { - "$ref": "#/components/schemas/DataBindingMode" - }, - "description": { - "type": "string", - "nullable": true - }, - "uri": { - "$ref": "#/components/schemas/MfeInternalUriReference" - }, - "value": { - "type": "string", - "nullable": true - }, - "assetUri": { - "type": "string", - "nullable": true - }, - "jobInputType": { - "$ref": "#/components/schemas/JobInputType" - } - }, - "additionalProperties": false + "enableModelDataCollector": { + "type": "boolean" }, - "InputDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ValueType" - }, - "nullable": true - }, - "default": { - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "enum": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "enabled_by": { - "type": "string", - "nullable": true - }, - "enabled_by_type": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ValueType" - }, - "nullable": true - }, - "enabled_by_value": { - "type": "array", - "items": {}, - "nullable": true - }, - "model_list": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "capabilities": { - "$ref": "#/components/schemas/AzureOpenAIModelCapabilities" - }, - "dynamic_list": { - "$ref": "#/components/schemas/ToolInputDynamicList" - }, - "allow_manual_entry": { - "type": "boolean" - }, - "is_multi_select": { - "type": "boolean" - }, - "generated_by": { - "$ref": "#/components/schemas/ToolInputGeneratedBy" - }, - "input_type": { - "$ref": "#/components/schemas/InputType" - }, - "advanced": { - "type": "boolean", - "nullable": true - }, - "ui_hints": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "skipUpdateTrafficToFull": { + "type": "boolean" }, - "InputOutputPortMetadata": { - "type": "object", - "properties": { - "graphModuleNodeId": { - "type": "string", - "nullable": true - }, - "portName": { - "type": "string", - "nullable": true - }, - "schema": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "id": { - "type": "string", - "nullable": true, - "readOnly": true - } - }, - "additionalProperties": false + "enableStreamingResponse": { + "type": "boolean" }, - "InputSetting": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "dataStoreMode": { - "$ref": "#/components/schemas/AEVADataStoreMode" - }, - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "options": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "additionalTransformations": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "instanceType": { + "type": "string", + "nullable": true }, - "InputType": { - "enum": [ - "default", - "uionly_hidden" - ], - "type": "string" + "instanceCount": { + "type": "integer", + "format": "int32" }, - "IntellectualPropertyAccessMode": { - "enum": [ - "ReadOnly", - "ReadWrite" - ], + "autoGrantConnectionPermission": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "DeploymentInfo": { + "type": "object", + "properties": { + "operationId": { + "type": "string", + "nullable": true + }, + "serviceId": { + "type": "string", + "nullable": true + }, + "serviceName": { + "type": "string", + "nullable": true + }, + "statusDetail": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DistributionConfiguration": { + "type": "object", + "properties": { + "distributionType": { + "$ref": "#/components/schemas/DistributionType" + } + }, + "additionalProperties": false + }, + "DistributionParameter": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "label": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "inputType": { + "$ref": "#/components/schemas/DistributionParameterEnum" + } + }, + "additionalProperties": false + }, + "DistributionParameterEnum": { + "enum": [ + "Text", + "Number" + ], + "type": "string" + }, + "DistributionType": { + "enum": [ + "PyTorch", + "TensorFlow", + "Mpi", + "Ray" + ], + "type": "string" + }, + "DoWhileControlFlowInfo": { + "type": "object", + "properties": { + "outputPortNameToInputPortNamesMapping": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "nullable": true + }, + "conditionOutputPortName": { + "type": "string", + "nullable": true + }, + "runSettings": { + "$ref": "#/components/schemas/DoWhileControlFlowRunSettings" + } + }, + "additionalProperties": false + }, + "DoWhileControlFlowRunSettings": { + "type": "object", + "properties": { + "maxLoopIterationCount": { + "$ref": "#/components/schemas/ParameterAssignment" + } + }, + "additionalProperties": false + }, + "DockerBuildContext": { + "type": "object", + "properties": { + "locationType": { + "$ref": "#/components/schemas/BuildContextLocationType" + }, + "location": { + "type": "string", + "nullable": true + }, + "dockerfilePath": { + "type": "string", + "default": "Dockerfile", + "nullable": true + } + }, + "additionalProperties": false + }, + "DockerConfiguration": { + "type": "object", + "properties": { + "useDocker": { + "type": "boolean", + "nullable": true + }, + "sharedVolumes": { + "type": "boolean", + "nullable": true + }, + "arguments": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "DockerImagePlatform": { + "type": "object", + "properties": { + "os": { + "type": "string", + "nullable": true + }, + "architecture": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "DockerSection": { + "type": "object", + "properties": { + "baseImage": { + "type": "string", + "nullable": true }, - "IntellectualPropertyPublisherInformation": { - "type": "object", - "properties": { - "intellectualPropertyPublisher": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "platform": { + "$ref": "#/components/schemas/DockerImagePlatform" }, - "InteractiveConfig": { - "type": "object", - "properties": { - "isSSHEnabled": { - "type": "boolean", - "nullable": true - }, - "sshPublicKey": { - "type": "string", - "nullable": true - }, - "isIPythonEnabled": { - "type": "boolean", - "nullable": true - }, - "isTensorBoardEnabled": { - "type": "boolean", - "nullable": true - }, - "interactivePort": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "baseDockerfile": { + "type": "string", + "nullable": true }, - "InteractiveConfiguration": { - "type": "object", - "properties": { - "isSSHEnabled": { - "type": "boolean", - "nullable": true - }, - "sshPublicKey": { - "type": "string", - "nullable": true - }, - "isIPythonEnabled": { - "type": "boolean", - "nullable": true - }, - "isTensorBoardEnabled": { - "type": "boolean", - "nullable": true - }, - "interactivePort": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "buildContext": { + "$ref": "#/components/schemas/DockerBuildContext" }, - "JobCost": { - "type": "object", - "properties": { - "chargedCpuCoreSeconds": { - "type": "number", - "format": "double", - "nullable": true - }, - "chargedCpuMemoryMegabyteSeconds": { - "type": "number", - "format": "double", - "nullable": true - }, - "chargedGpuSeconds": { - "type": "number", - "format": "double", - "nullable": true - }, - "chargedNodeUtilizationSeconds": { - "type": "number", - "format": "double", - "nullable": true - } - } + "baseImageRegistry": { + "$ref": "#/components/schemas/ContainerRegistry" + } + }, + "additionalProperties": false + }, + "DockerSettingConfiguration": { + "type": "object", + "properties": { + "useDocker": { + "type": "boolean", + "nullable": true + }, + "sharedVolumes": { + "type": "boolean", + "nullable": true + }, + "shmSize": { + "type": "string", + "nullable": true + }, + "arguments": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "DownloadResourceInfo": { + "type": "object", + "properties": { + "downloadUrl": { + "type": "string", + "nullable": true + }, + "size": { + "type": "integer", + "format": "int64" + } + }, + "additionalProperties": false + }, + "EPRPipelineRunErrorClassificationRequest": { + "type": "object", + "properties": { + "rootRunId": { + "type": "string", + "nullable": true + }, + "runId": { + "type": "string", + "nullable": true + }, + "taskResult": { + "type": "string", + "nullable": true + }, + "failureType": { + "type": "string", + "nullable": true + }, + "failureName": { + "type": "string", + "nullable": true + }, + "responsibleTeam": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ETag": { + "type": "object", + "additionalProperties": false + }, + "EarlyTerminationPolicyType": { + "enum": [ + "Bandit", + "MedianStopping", + "TruncationSelection" + ], + "type": "string" + }, + "EmailNotificationEnableType": { + "enum": [ + "JobCompleted", + "JobFailed", + "JobCancelled" + ], + "type": "string" + }, + "EndpointAuthMode": { + "enum": [ + "AMLToken", + "Key", + "AADToken" + ], + "type": "string" + }, + "EndpointSetting": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "port": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sslThumbprint": { + "type": "string", + "nullable": true + }, + "endpoint": { + "type": "string", + "nullable": true + }, + "proxyEndpoint": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "nullable": true + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "enabled": { + "type": "boolean", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "nodes": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "EntityInterface": { + "type": "object", + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Parameter" + }, + "nullable": true + }, + "ports": { + "$ref": "#/components/schemas/NodePortInterface" + }, + "metadataParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Parameter" + }, + "nullable": true + }, + "dataPathParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataPathParameter" + }, + "nullable": true + }, + "dataPathParameterList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataSetPathParameter" + }, + "nullable": true + }, + "AssetOutputSettingsParameterList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssetOutputSettingsParameter" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "EntityKind": { + "enum": [ + "Invalid", + "LineageRoot", + "Versioned", + "Unversioned" + ], + "type": "string" + }, + "EntityStatus": { + "enum": [ + "Active", + "Deprecated", + "Disabled" + ], + "type": "string" + }, + "EntityUsage": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false + }, + "EntrySetting": { + "type": "object", + "properties": { + "file": { + "type": "string", + "nullable": true + }, + "className": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "EnumParameterRule": { + "type": "object", + "properties": { + "validValues": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "EnvironmentConfiguration": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + }, + "useEnvironmentDefinition": { + "type": "boolean" + }, + "environmentDefinitionString": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "EnvironmentDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + }, + "assetId": { + "type": "string", + "nullable": true + }, + "autoRebuild": { + "type": "boolean", + "nullable": true + }, + "python": { + "$ref": "#/components/schemas/PythonSection" + }, + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "docker": { + "$ref": "#/components/schemas/DockerSection" + }, + "spark": { + "$ref": "#/components/schemas/SparkSection" + }, + "r": { + "$ref": "#/components/schemas/RSection" + }, + "inferencingStackVersion": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "EnvironmentDefinitionDto": { + "type": "object", + "properties": { + "environmentName": { + "type": "string", + "nullable": true + }, + "environmentVersion": { + "type": "string", + "nullable": true + }, + "intellectualPropertyPublisher": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ErrorAdditionalInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The additional info type.", + "nullable": true + }, + "info": { + "description": "The additional info.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The resource management error additional info." + }, + "ErrorHandlingMode": { + "enum": [ + "DefaultInterpolation", + "CustomerFacingInterpolation" + ], + "type": "string" + }, + "ErrorResponse": { + "type": "object", + "properties": { + "error": { + "$ref": "#/components/schemas/RootError" + }, + "correlation": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Dictionary containing correlation details for the error.", + "nullable": true + }, + "environment": { + "type": "string", + "description": "The hosting environment.", + "nullable": true + }, + "location": { + "type": "string", + "description": "The Azure region.", + "nullable": true + }, + "time": { + "type": "string", + "description": "The time in UTC.", + "format": "date-time" + }, + "componentName": { + "type": "string", + "description": "Component name where error originated/encountered.", + "nullable": true + } + }, + "description": "The error response." + }, + "EsCloudConfiguration": { + "type": "object", + "properties": { + "enableOutputToFileBasedOnDataTypeId": { + "type": "boolean", + "nullable": true + }, + "environment": { + "$ref": "#/components/schemas/EnvironmentConfiguration" + }, + "hyperDriveConfiguration": { + "$ref": "#/components/schemas/HyperDriveConfiguration" + }, + "k8sConfig": { + "$ref": "#/components/schemas/K8sConfiguration" + }, + "resourceConfig": { + "$ref": "#/components/schemas/AEVAResourceConfiguration" + }, + "torchDistributedConfig": { + "$ref": "#/components/schemas/TorchDistributedConfiguration" + }, + "targetSelectorConfig": { + "$ref": "#/components/schemas/TargetSelectorConfiguration" + }, + "dockerConfig": { + "$ref": "#/components/schemas/DockerSettingConfiguration" + }, + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "maxRunDurationSeconds": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "identity": { + "$ref": "#/components/schemas/IdentitySetting" + }, + "applicationEndpoints": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ApplicationEndpointConfiguration" + }, + "nullable": true + }, + "runConfig": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "EvaluationFlowRunSettings": { + "type": "object", + "properties": { + "flowRunId": { + "type": "string", + "nullable": true + }, + "upstreamVariantRunVariants": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/VariantIdentifier" + }, + "description": "This is a dictionary", + "nullable": true + }, + "batch_inputs": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary" + }, + "nullable": true + }, + "inputUniversalLink": { + "type": "string", + "nullable": true + }, + "dataInputs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "flowRunOutputDirectory": { + "type": "string", + "nullable": true + }, + "connectionOverrides": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionOverrideSetting" + }, + "nullable": true + }, + "flowRunDisplayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "JobEndpoint": { - "type": "object", - "properties": { - "type": { - "type": "string", - "nullable": true - }, - "port": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "endpoint": { - "type": "string", - "nullable": true - }, - "status": { - "type": "string", - "nullable": true - }, - "errorMessage": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "nodes": { - "$ref": "#/components/schemas/MfeInternalNodes" - } - }, - "additionalProperties": false + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "JobInput": { - "required": [ - "jobInputType" - ], - "type": "object", - "properties": { - "jobInputType": { - "$ref": "#/components/schemas/JobInputType" - }, - "description": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "JobInputType": { - "enum": [ - "Dataset", - "Uri", - "Literal", - "UriFile", - "UriFolder", - "MLTable", - "CustomModel", - "MLFlowModel", - "TritonModel" - ], - "type": "string" - }, - "JobLimitsType": { - "enum": [ - "Command", - "Sweep" - ], - "type": "string" - }, - "JobOutput": { - "required": [ - "jobOutputType" - ], - "type": "object", - "properties": { - "jobOutputType": { - "$ref": "#/components/schemas/JobOutputType" - }, - "description": { - "type": "string", - "nullable": true - }, - "autoDeleteSetting": { - "$ref": "#/components/schemas/AutoDeleteSetting" - } - }, - "additionalProperties": false + "runtimeName": { + "type": "string", + "nullable": true }, - "JobOutputArtifacts": { - "type": "object", - "properties": { - "datastoreId": { - "type": "string", - "nullable": true - }, - "path": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "JobOutputType": { - "enum": [ - "Uri", - "Dataset", - "UriFile", - "UriFolder", - "MLTable", - "CustomModel", - "MLFlowModel", - "TritonModel" - ], - "type": "string" - }, - "JobProvisioningState": { - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "InProgress" - ], - "type": "string" - }, - "JobScheduleDto": { - "type": "object", - "properties": { - "jobType": { - "$ref": "#/components/schemas/JobType" - }, - "systemData": { - "$ref": "#/components/schemas/SystemData" - }, - "name": { - "type": "string", - "nullable": true - }, - "jobDefinitionId": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "triggerType": { - "$ref": "#/components/schemas/TriggerType" - }, - "recurrence": { - "$ref": "#/components/schemas/Recurrence" - }, - "cron": { - "$ref": "#/components/schemas/Cron" - }, - "status": { - "$ref": "#/components/schemas/ScheduleStatus" - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false - }, - "JobStatus": { - "enum": [ - "NotStarted", - "Starting", - "Provisioning", - "Preparing", - "Queued", - "Running", - "Finalizing", - "CancelRequested", - "Completed", - "Failed", - "Canceled", - "NotResponding", - "Paused", - "Unknown", - "Scheduled" - ], - "type": "string" - }, - "JobType": { - "enum": [ - "Command", - "Sweep", - "Labeling", - "Pipeline", - "Data", - "AutoML", - "Spark", - "Base", - "FineTuning" - ], - "type": "string" - }, - "K8sConfiguration": { - "type": "object", - "properties": { - "maxRetryCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "resourceConfiguration": { - "$ref": "#/components/schemas/ResourceConfig" - }, - "priorityConfiguration": { - "$ref": "#/components/schemas/PriorityConfig" - }, - "interactiveConfiguration": { - "$ref": "#/components/schemas/InteractiveConfig" - } - }, - "additionalProperties": false + "batchDataInput": { + "$ref": "#/components/schemas/BatchDataInput" }, - "KeyType": { - "enum": [ - "Primary", - "Secondary" - ], + "inputsMapping": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "KeyValuePairComponentNameMetaInfoErrorResponse": { - "type": "object", - "properties": { - "key": { - "$ref": "#/components/schemas/ComponentNameMetaInfo" - }, - "value": { - "$ref": "#/components/schemas/ErrorResponse" - } - }, - "additionalProperties": false - }, - "KeyValuePairComponentNameMetaInfoModuleDto": { + "connections": { + "type": "object", + "additionalProperties": { "type": "object", - "properties": { - "key": { - "$ref": "#/components/schemas/ComponentNameMetaInfo" - }, - "value": { - "$ref": "#/components/schemas/ModuleDto" - } + "additionalProperties": { + "type": "string" }, - "additionalProperties": false + "description": "This is a dictionary" + }, + "description": "This is a dictionary", + "nullable": true }, - "KeyValuePairStringObject": { - "type": "object", - "properties": { - "key": { - "type": "string", - "nullable": true - }, - "value": { - "nullable": true - } - }, - "additionalProperties": false + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "KubernetesConfiguration": { - "type": "object", - "properties": { - "instanceType": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "outputDataStore": { + "type": "string", + "nullable": true }, - "Kwarg": { - "type": "object", - "properties": { - "key": { - "type": "string", - "nullable": true - }, - "value": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "runDisplayNameGenerationType": { + "$ref": "#/components/schemas/RunDisplayNameGenerationType" }, - "LegacyDataPath": { - "type": "object", - "properties": { - "dataStoreName": { - "type": "string", - "nullable": true - }, - "dataStoreMode": { - "$ref": "#/components/schemas/AEVADataStoreMode" - }, - "relativePath": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "collieRunSettings": { + "$ref": "#/components/schemas/CollieRunSettings" }, - "LimitSettings": { - "type": "object", - "properties": { - "maxTrials": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "timeout": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "trialTimeout": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "maxConcurrentTrials": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "maxCoresPerTrial": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "exitScore": { - "type": "number", - "format": "double", - "nullable": true - }, - "enableEarlyTermination": { - "type": "boolean", - "nullable": true - }, - "maxNodes": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "workerCount": { + "type": "integer", + "format": "int32", + "nullable": true }, - "LinkedADBWorkspaceMetadata": { - "type": "object", - "properties": { - "workspaceId": { - "type": "string", - "nullable": true - }, - "region": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "timeoutInSeconds": { + "type": "integer", + "format": "int32", + "nullable": true }, - "LinkedPipelineInfo": { - "type": "object", - "properties": { - "pipelineType": { - "$ref": "#/components/schemas/PipelineType" - }, - "moduleNodeId": { - "type": "string", - "nullable": true - }, - "portName": { - "type": "string", - "nullable": true - }, - "linkedPipelineDraftId": { - "type": "string", - "nullable": true - }, - "linkedPipelineRunId": { - "type": "string", - "nullable": true - }, - "isDirectLink": { - "type": "boolean" - } - }, - "additionalProperties": false + "promptflowEngineType": { + "$ref": "#/components/schemas/PromptflowEngineType" }, - "ListViewType": { - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], + "experimentNodeName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ExampleRequest": { + "type": "object", + "properties": { + "inputs": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "array", + "items": { } + } + }, + "description": "This is a dictionary", + "nullable": true + }, + "globalParameters": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "ExecutionContextDto": { + "type": "object", + "properties": { + "executable": { + "type": "string", + "nullable": true + }, + "userCode": { + "type": "string", + "nullable": true + }, + "arguments": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ExecutionDataLocation": { + "type": "object", + "properties": { + "dataset": { + "$ref": "#/components/schemas/RunDatasetReference" + }, + "dataPath": { + "$ref": "#/components/schemas/ExecutionDataPath" + }, + "uri": { + "$ref": "#/components/schemas/UriReference" + }, + "type": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ExecutionDataPath": { + "type": "object", + "properties": { + "datastoreName": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ExecutionGlobsOptions": { + "type": "object", + "properties": { + "globPatterns": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ExecutionPhase": { + "enum": [ + "Execution", + "Initialization", + "Finalization" + ], + "type": "string" + }, + "ExperimentComputeMetaInfo": { + "type": "object", + "properties": { + "currentNodeCount": { + "type": "integer", + "format": "int32" + }, + "targetNodeCount": { + "type": "integer", + "format": "int32" + }, + "maxNodeCount": { + "type": "integer", + "format": "int32" + }, + "minNodeCount": { + "type": "integer", + "format": "int32" + }, + "idleNodeCount": { + "type": "integer", + "format": "int32" + }, + "runningNodeCount": { + "type": "integer", + "format": "int32" + }, + "preparingNodeCount": { + "type": "integer", + "format": "int32" + }, + "unusableNodeCount": { + "type": "integer", + "format": "int32" + }, + "leavingNodeCount": { + "type": "integer", + "format": "int32" + }, + "preemptedNodeCount": { + "type": "integer", + "format": "int32" + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "provisioningState": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "osType": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "createdByStudio": { + "type": "boolean" + }, + "isGpuType": { + "type": "boolean" + }, + "resourceId": { + "type": "string", + "nullable": true + }, + "computeType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ExperimentData": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "path": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ExperimentDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FlowInputDefinition" + }, + "nullable": true + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExperimentData" + }, + "nullable": true + }, + "nodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExperimentNode" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ExperimentDefinitionSource": { + "type": "object", + "properties": { + "sourceType": { + "$ref": "#/components/schemas/ExperimentDefinitionSourceType" + }, + "experimentDefinitionDataUri": { + "type": "string", + "nullable": true + }, + "experimentDefinition": { + "$ref": "#/components/schemas/ExperimentDefinition" + } + }, + "additionalProperties": false + }, + "ExperimentDefinitionSourceType": { + "enum": [ + "DataUri", + "Definition" + ], + "type": "string" + }, + "ExperimentInfo": { + "type": "object", + "properties": { + "experimentName": { + "type": "string", + "nullable": true + }, + "experimentId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ExperimentNode": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ExperimentNodeType" + }, + "max_turns": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChatGroupRole" + }, + "nullable": true + }, + "path": { + "type": "string", + "nullable": true + }, + "variant": { + "type": "string", + "nullable": true + }, + "connections": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary" + }, + "description": "This is a dictionary", + "nullable": true + }, + "environment_variables": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "LoadFlowAsComponentRequest": { - "type": "object", - "properties": { - "componentName": { - "type": "string", - "nullable": true - }, - "componentVersion": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "isDeterministic": { - "type": "boolean" - }, - "flowDefinitionFilePath": { - "type": "string", - "nullable": true - }, - "flowDefinitionResourceId": { - "type": "string", - "nullable": true - }, - "flowDefinitionDataStoreName": { - "type": "string", - "nullable": true - }, - "flowDefinitionBlobPath": { - "type": "string", - "nullable": true - }, - "flowDefinitionDataUri": { - "type": "string", - "nullable": true - }, - "nodeVariant": { - "type": "string", - "nullable": true - }, - "inputsMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "connections": { - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary" - }, - "description": "This is a dictionary", - "nullable": true - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "runtimeName": { - "type": "string", - "nullable": true - }, - "sessionId": { - "type": "string", - "nullable": true - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "maxIdleTimeSeconds": { - "type": "integer", - "format": "int64", - "nullable": true - } - }, - "additionalProperties": false + "display_name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true }, - "LogLevel": { - "enum": [ - "Trace", - "Debug", - "Information", - "Warning", - "Error", - "Critical", - "None" - ], + "tags": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "LogRunTerminatedEventDto": { - "type": "object", - "properties": { - "nextActionIntervalInSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "actionType": { - "$ref": "#/components/schemas/ActionType" - }, - "lastCheckedTime": { - "type": "string", - "format": "date-time", - "nullable": true - } + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "resources": { + "$ref": "#/components/schemas/SessionRuntimeResources" + }, + "inputs": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ExperimentNodeType": { + "enum": [ + "Flow", + "ChatGroup" + ], + "type": "string" + }, + "ExperimentTemplateDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "owner": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FlowInputDefinition" + }, + "nullable": true + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExperimentData" + }, + "nullable": true + }, + "nodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExperimentNode" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ExportComponentMetaInfo": { + "type": "object", + "properties": { + "moduleEntity": { + "$ref": "#/components/schemas/ModuleEntity" + }, + "moduleVersion": { + "type": "string", + "nullable": true + }, + "isAnonymous": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "ExportDataTask": { + "type": "object", + "properties": { + "DataTransferSink": { + "$ref": "#/components/schemas/DataTransferSink" + } + }, + "additionalProperties": false + }, + "ExtensibleObject": { + "type": "object" + }, + "FeaturizationMode": { + "enum": [ + "Auto", + "Custom", + "Off" + ], + "type": "string" + }, + "FeaturizationSettings": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/FeaturizationMode" + }, + "blockedTransformers": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "columnPurposes": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "dropColumns": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "transformerParams": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ColumnTransformer" + }, + "nullable": true + }, + "nullable": true + }, + "datasetLanguage": { + "type": "string", + "nullable": true + }, + "enableDnnFeaturization": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "FeedDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "sharingScopes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SharingScope" + }, + "nullable": true + }, + "supportedAssetTypes": { + "type": "object", + "properties": { + "Component": { + "$ref": "#/components/schemas/AssetTypeMetaInfo" + }, + "Model": { + "$ref": "#/components/schemas/AssetTypeMetaInfo" + }, + "Environment": { + "$ref": "#/components/schemas/AssetTypeMetaInfo" + }, + "Dataset": { + "$ref": "#/components/schemas/AssetTypeMetaInfo" }, - "additionalProperties": false + "DataStore": { + "$ref": "#/components/schemas/AssetTypeMetaInfo" + }, + "SampleGraph": { + "$ref": "#/components/schemas/AssetTypeMetaInfo" + }, + "FlowTool": { + "$ref": "#/components/schemas/AssetTypeMetaInfo" + }, + "FlowToolSetting": { + "$ref": "#/components/schemas/AssetTypeMetaInfo" + }, + "FlowConnection": { + "$ref": "#/components/schemas/AssetTypeMetaInfo" + }, + "FlowSample": { + "$ref": "#/components/schemas/AssetTypeMetaInfo" + }, + "FlowRuntimeSpec": { + "$ref": "#/components/schemas/AssetTypeMetaInfo" + } + }, + "additionalProperties": false, + "nullable": true + }, + "regionalWorkspaceStorage": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "This is a dictionary", + "nullable": true }, - "LogVerbosity": { - "enum": [ - "NotSet", - "Debug", - "Info", - "Warning", - "Error", - "Critical" - ], + "intellectualPropertyPublisher": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FileSystem": { + "type": "object", + "properties": { + "connection": { + "type": "string", + "nullable": true + }, + "path": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Flow": { + "type": "object", + "properties": { + "sourceResourceId": { + "type": "string", + "nullable": true + }, + "flowGraph": { + "$ref": "#/components/schemas/FlowGraph" + }, + "nodeVariants": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/NodeVariant" + }, + "description": "This is a dictionary", + "nullable": true + }, + "flowGraphLayout": { + "$ref": "#/components/schemas/FlowGraphLayout" + }, + "bulkTestData": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "evaluationFlows": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowGraphReference" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowAnnotations": { + "type": "object", + "properties": { + "flowName": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + }, + "owner": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + }, + "isArchived": { + "type": "boolean" + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "maxIdleTimeSeconds": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "archived": { + "type": "boolean" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + } + }, + "FlowBaseDto": { + "type": "object", + "properties": { + "flowId": { + "type": "string", + "nullable": true + }, + "flowName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "flowType": { + "$ref": "#/components/schemas/FlowType" + }, + "experimentId": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + }, + "owner": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + }, + "flowResourceId": { + "type": "string", + "nullable": true + }, + "isArchived": { + "type": "boolean" + }, + "flowDefinitionFilePath": { + "type": "string", + "nullable": true + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "maxIdleTimeSeconds": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "identity": { + "type": "string", + "nullable": true + }, + "flowDiagnostics": { + "$ref": "#/components/schemas/FlowDiagnostics" + } + }, + "additionalProperties": false + }, + "FlowDiagnostics": { + "type": "object", + "properties": { + "datastore": { + "type": "string", + "nullable": true + }, + "artifactOrigin": { + "type": "string", + "nullable": true + }, + "container": { + "type": "string", + "nullable": true + }, + "sessionLogRelativePath": { + "type": "string", + "nullable": true + }, + "sessionArtifactId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowDto": { + "type": "object", + "properties": { + "timestamp": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "eTag": { + "$ref": "#/components/schemas/ETag" + }, + "flow": { + "$ref": "#/components/schemas/Flow" + }, + "flowRunSettings": { + "$ref": "#/components/schemas/FlowRunSettings" + }, + "flowRunResult": { + "$ref": "#/components/schemas/FlowRunResult" + }, + "flowTestMode": { + "$ref": "#/components/schemas/FlowTestMode" + }, + "flowTestInfos": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowTestInfo" + }, + "nullable": true + }, + "studioPortalEndpoint": { + "type": "string", + "nullable": true + }, + "flowId": { + "type": "string", + "nullable": true + }, + "flowName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "flowType": { + "$ref": "#/components/schemas/FlowType" + }, + "experimentId": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + }, + "owner": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + }, + "flowResourceId": { + "type": "string", + "nullable": true + }, + "isArchived": { + "type": "boolean" + }, + "flowDefinitionFilePath": { + "type": "string", + "nullable": true + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "maxIdleTimeSeconds": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "identity": { + "type": "string", + "nullable": true + }, + "flowDiagnostics": { + "$ref": "#/components/schemas/FlowDiagnostics" + } + }, + "additionalProperties": false + }, + "FlowEnvironment": { + "type": "object", + "properties": { + "image": { + "type": "string", + "nullable": true + }, + "python_requirements_txt": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowFeature": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "state": { + "type": "object", + "properties": { + "Runtime": { + "$ref": "#/components/schemas/FlowFeatureStateEnum" + }, + "Executor": { + "$ref": "#/components/schemas/FlowFeatureStateEnum" + }, + "PFS": { + "$ref": "#/components/schemas/FlowFeatureStateEnum" + } + }, + "additionalProperties": false, + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowFeatureStateEnum": { + "enum": [ + "Ready", + "E2ETest" + ], + "type": "string" + }, + "FlowGraph": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Node" + }, + "nullable": true + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tool" + }, + "nullable": true + }, + "codes": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "inputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowInputDefinition" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowOutputDefinition" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowGraphAnnotationNode": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "content": { + "type": "string", + "nullable": true + }, + "mentionedNodeNames": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "LongRunningNullResponse": { - "type": "object", - "additionalProperties": false + "structuredContent": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowGraphLayout": { + "type": "object", + "properties": { + "nodeLayouts": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowNodeLayout" + }, + "description": "This is a dictionary", + "nullable": true + }, + "extendedData": { + "type": "string", + "nullable": true + }, + "annotationNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FlowGraphAnnotationNode" + }, + "nullable": true + }, + "orientation": { + "$ref": "#/components/schemas/Orientation" + } + }, + "additionalProperties": false + }, + "FlowGraphReference": { + "type": "object", + "properties": { + "flowGraph": { + "$ref": "#/components/schemas/FlowGraph" + }, + "referenceResourceId": { + "type": "string", + "nullable": true + }, + "variant": { + "$ref": "#/components/schemas/VariantIdentifier" + } + }, + "additionalProperties": false + }, + "FlowIndexEntity": { + "type": "object", + "properties": { + "schemaId": { + "type": "string", + "nullable": true + }, + "entityId": { + "type": "string", + "nullable": true + }, + "kind": { + "$ref": "#/components/schemas/EntityKind" + }, + "annotations": { + "$ref": "#/components/schemas/FlowAnnotations" + }, + "properties": { + "$ref": "#/components/schemas/FlowProperties" + }, + "internal": { + "$ref": "#/components/schemas/ExtensibleObject" + }, + "updateSequence": { + "type": "integer", + "format": "int64" + }, + "type": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "entityContainerId": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "entityObjectId": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "resourceType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "relationships": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Relationship" + }, + "nullable": true + }, + "assetId": { + "type": "string", + "nullable": true + }, + "usage": { + "$ref": "#/components/schemas/EntityUsage" + }, + "isAFragment": { + "type": "boolean" + }, + "fragmentId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowInputDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true }, - "LongRunningOperationUriResponse": { - "type": "object", - "properties": { - "location": { - "type": "string", - "format": "uri", - "nullable": true - }, - "operationResult": { - "type": "string", - "format": "uri", - "nullable": true - } - }, - "additionalProperties": false + "type": { + "$ref": "#/components/schemas/ValueType" + }, + "default": { + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "is_chat_input": { + "type": "boolean" }, - "LongRunningUpdateRegistryComponentRequest": { + "is_chat_history": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowLanguage": { + "enum": [ + "Python", + "CSharp", + "TypeScript", + "JavaScript" + ], + "type": "string" + }, + "FlowNode": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ToolType" + }, + "source": { + "$ref": "#/components/schemas/NodeSource" + }, + "inputs": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + }, + "activate": { + "$ref": "#/components/schemas/Activate" + }, + "use_variants": { + "type": "boolean" + }, + "comment": { + "type": "string", + "nullable": true + }, + "api": { + "type": "string", + "nullable": true + }, + "provider": { + "type": "string", + "nullable": true + }, + "connection": { + "type": "string", + "nullable": true + }, + "module": { + "type": "string", + "nullable": true + }, + "aggregation": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FlowNodeLayout": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float" + }, + "y": { + "type": "number", + "format": "float" + }, + "width": { + "type": "number", + "format": "float" + }, + "height": { + "type": "number", + "format": "float" + }, + "index": { + "type": "integer", + "format": "int32" + }, + "extendedData": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowNodeVariant": { + "type": "object", + "properties": { + "default_variant_id": { + "type": "string", + "nullable": true + }, + "variants": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowVariantNode" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowOutputDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ValueType" + }, + "description": { + "type": "string", + "nullable": true + }, + "reference": { + "type": "string", + "nullable": true + }, + "evaluation_only": { + "type": "boolean" + }, + "is_chat_output": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FlowPatchOperationType": { + "enum": [ + "ArchiveFlow", + "RestoreFlow", + "ExportFlowToFile" + ], + "type": "string" + }, + "FlowProperties": { + "type": "object", + "properties": { + "flowId": { + "type": "string", + "nullable": true + }, + "experimentId": { + "type": "string", + "nullable": true + }, + "flowType": { + "$ref": "#/components/schemas/FlowType" + }, + "flowDefinitionFilePath": { + "type": "string", + "nullable": true + }, + "creationContext": { + "$ref": "#/components/schemas/CreationContext" + } + } + }, + "FlowRunBasePath": { + "type": "object", + "properties": { + "outputDatastoreName": { + "type": "string", + "nullable": true + }, + "basePath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowRunInfo": { + "type": "object", + "properties": { + "flowGraph": { + "$ref": "#/components/schemas/FlowGraph" + }, + "flowGraphLayout": { + "$ref": "#/components/schemas/FlowGraphLayout" + }, + "flowName": { + "type": "string", + "nullable": true + }, + "flowRunResourceId": { + "type": "string", + "nullable": true + }, + "flowRunId": { + "type": "string", + "nullable": true + }, + "flowRunDisplayName": { + "type": "string", + "nullable": true + }, + "batchInputs": { + "type": "array", + "items": { "type": "object", - "properties": { - "displayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "registryName": { - "type": "string", - "nullable": true - }, - "componentName": { - "type": "string", - "nullable": true - }, - "componentVersion": { - "type": "string", - "nullable": true - }, - "updateType": { - "$ref": "#/components/schemas/LongRunningUpdateType" - } - }, - "additionalProperties": false + "additionalProperties": { }, + "description": "This is a dictionary" + }, + "nullable": true }, - "LongRunningUpdateType": { - "enum": [ - "EnableModule", - "DisableModule", - "UpdateDisplayName", - "UpdateDescription", - "UpdateTags" - ], - "type": "string" + "batchDataInput": { + "$ref": "#/components/schemas/BatchDataInput" + }, + "flowRunType": { + "$ref": "#/components/schemas/FlowRunTypeEnum" + }, + "flowType": { + "$ref": "#/components/schemas/FlowType" + }, + "runtimeName": { + "type": "string", + "nullable": true + }, + "bulkTestId": { + "type": "string", + "nullable": true }, - "MLFlowAutologgerState": { - "enum": [ - "Enabled", - "Disabled" - ], + "createdBy": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + }, + "createdOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "inputsMapping": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "ManagedServiceIdentity": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/ManagedServiceIdentityType" - }, - "principalId": { - "type": "string", - "format": "uuid" - }, - "tenantId": { - "type": "string", - "format": "uuid" - }, - "userAssignedIdentities": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/UserAssignedIdentity" - }, - "nullable": true - } - }, - "additionalProperties": false + "outputDatastoreName": { + "type": "string", + "nullable": true }, - "ManagedServiceIdentityType": { - "enum": [ - "SystemAssigned", - "UserAssigned", - "SystemAssignedUserAssigned", - "None" - ], + "childRunBasePath": { + "type": "string", + "nullable": true + }, + "workingDirectory": { + "type": "string", + "nullable": true + }, + "flowDagFileRelativePath": { + "type": "string", + "nullable": true + }, + "flowSnapshotId": { + "type": "string", + "nullable": true + }, + "studioPortalEndpoint": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowRunMode": { + "enum": [ + "Flow", + "SingleNode", + "FromNode", + "BulkTest", + "Eval", + "PairwiseEval", + "ExperimentTest", + "ExperimentEval" + ], + "type": "string" + }, + "FlowRunResult": { + "type": "object", + "properties": { + "flow_runs": { + "type": "array", + "items": { }, + "nullable": true + }, + "node_runs": { + "type": "array", + "items": { }, + "nullable": true + }, + "errorResponse": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "flowName": { + "type": "string", + "nullable": true + }, + "flowRunDisplayName": { + "type": "string", + "nullable": true + }, + "flowRunId": { + "type": "string", + "nullable": true + }, + "flowGraph": { + "$ref": "#/components/schemas/FlowGraph" + }, + "flowGraphLayout": { + "$ref": "#/components/schemas/FlowGraphLayout" + }, + "flowRunResourceId": { + "type": "string", + "nullable": true + }, + "bulkTestId": { + "type": "string", + "nullable": true + }, + "batchInputs": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary" + }, + "nullable": true + }, + "batchDataInput": { + "$ref": "#/components/schemas/BatchDataInput" + }, + "createdBy": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + }, + "createdOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "flowRunType": { + "$ref": "#/components/schemas/FlowRunTypeEnum" + }, + "flowType": { + "$ref": "#/components/schemas/FlowType" + }, + "runtimeName": { + "type": "string", + "nullable": true + }, + "amlComputeName": { + "type": "string", + "nullable": true + }, + "flowRunLogs": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "flowTestMode": { + "$ref": "#/components/schemas/FlowTestMode" + }, + "flowTestInfos": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowTestInfo" + }, + "nullable": true + }, + "workingDirectory": { + "type": "string", + "nullable": true + }, + "flowDagFileRelativePath": { + "type": "string", + "nullable": true + }, + "flowSnapshotId": { + "type": "string", + "nullable": true + }, + "variantRunToEvaluationRunsIdMapping": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowRunSettings": { + "type": "object", + "properties": { + "runMode": { + "$ref": "#/components/schemas/FlowRunMode" + }, + "tuningNodeNames": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "tuningNodeSettings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TuningNodeSetting" + }, + "description": "This is a dictionary", + "nullable": true + }, + "baselineVariantId": { + "type": "string", + "nullable": true + }, + "defaultVariantId": { + "type": "string", + "nullable": true + }, + "variants": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Node" + } + }, + "description": "This is a dictionary", + "nullable": true + }, + "nodeName": { + "type": "string", + "nullable": true + }, + "isDefaultVariant": { + "type": "boolean" + }, + "nodeVariantId": { + "type": "string", + "nullable": true + }, + "nodeOutputPaths": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "baseFlowRunId": { + "type": "string", + "nullable": true + }, + "flowTestInfos": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowTestInfo" + }, + "nullable": true + }, + "bulkTestId": { + "type": "string", + "nullable": true + }, + "evaluationFlowRunSettings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/EvaluationFlowRunSettings" + }, + "description": "This is a dictionary", + "nullable": true + }, + "bulkTestFlowId": { + "type": "string", + "nullable": true + }, + "bulkTestFlowRunIds": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "MavenLibraryDto": { + "batch_inputs": { + "type": "array", + "items": { "type": "object", - "properties": { - "coordinates": { - "type": "string", - "nullable": true - }, - "repo": { - "type": "string", - "nullable": true - }, - "exclusions": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "additionalProperties": { }, + "description": "This is a dictionary" + }, + "nullable": true }, - "MetricProperties": { - "type": "object", - "properties": { - "uxMetricType": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "inputUniversalLink": { + "type": "string", + "nullable": true }, - "MetricSchemaDto": { - "type": "object", - "properties": { - "numProperties": { - "type": "integer", - "format": "int32" - }, - "properties": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetricSchemaPropertyDto" - }, - "nullable": true - } - }, - "additionalProperties": false + "dataInputs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "flowRunOutputDirectory": { + "type": "string", + "nullable": true + }, + "connectionOverrides": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionOverrideSetting" + }, + "nullable": true + }, + "flowRunDisplayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "MetricSchemaPropertyDto": { - "type": "object", - "properties": { - "propertyId": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "MetricV2Dto": { - "type": "object", - "properties": { - "dataContainerId": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "columns": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/MetricValueType" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "$ref": "#/components/schemas/MetricProperties" - }, - "namespace": { - "type": "string", - "nullable": true - }, - "standardSchemaId": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "value": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetricV2Value" - }, - "nullable": true - }, - "continuationToken": { - "type": "string", - "description": "The token used in retrieving the next page. If null, there are no additional pages.", - "nullable": true - }, - "nextLink": { - "type": "string", - "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", - "nullable": true - } - }, - "additionalProperties": false + "runtimeName": { + "type": "string", + "nullable": true }, - "MetricV2Value": { - "type": "object", - "properties": { - "metricId": { - "type": "string", - "nullable": true - }, - "createdUtc": { - "type": "string", - "format": "date-time" - }, - "step": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "data": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - }, - "sasUri": { - "type": "string", - "format": "uri", - "nullable": true - } - }, - "additionalProperties": false + "batchDataInput": { + "$ref": "#/components/schemas/BatchDataInput" }, - "MetricValueType": { - "enum": [ - "Int", - "Double", - "String", - "Bool", - "Artifact", - "Histogram", - "Malformed" - ], + "inputsMapping": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "MfeInternalAutologgerSettings": { + "connections": { + "type": "object", + "additionalProperties": { "type": "object", - "properties": { - "mlflowAutologger": { - "$ref": "#/components/schemas/MfeInternalMLFlowAutologgerState" - } + "additionalProperties": { + "type": "string" }, - "additionalProperties": false + "description": "This is a dictionary" + }, + "description": "This is a dictionary", + "nullable": true }, - "MfeInternalIdentityConfiguration": { - "type": "object", - "properties": { - "identityType": { - "$ref": "#/components/schemas/MfeInternalIdentityType" - } - }, - "additionalProperties": false + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputDataStore": { + "type": "string", + "nullable": true + }, + "runDisplayNameGenerationType": { + "$ref": "#/components/schemas/RunDisplayNameGenerationType" + }, + "collieRunSettings": { + "$ref": "#/components/schemas/CollieRunSettings" }, - "MfeInternalIdentityType": { - "enum": [ - "Managed", - "AMLToken", - "UserIdentity" - ], + "workerCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "timeoutInSeconds": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "promptflowEngineType": { + "$ref": "#/components/schemas/PromptflowEngineType" + }, + "experimentNodeName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowRunSettingsBase": { + "type": "object", + "properties": { + "batch_inputs": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary" + }, + "nullable": true + }, + "inputUniversalLink": { + "type": "string", + "nullable": true + }, + "dataInputs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "flowRunOutputDirectory": { + "type": "string", + "nullable": true + }, + "connectionOverrides": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionOverrideSetting" + }, + "nullable": true + }, + "flowRunDisplayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "MfeInternalMLFlowAutologgerState": { - "enum": [ - "Enabled", - "Disabled" - ], + "properties": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "MfeInternalNodes": { - "type": "object", - "properties": { - "nodesValueType": { - "$ref": "#/components/schemas/MfeInternalNodesValueType" - } - }, - "additionalProperties": false + "runtimeName": { + "type": "string", + "nullable": true + }, + "batchDataInput": { + "$ref": "#/components/schemas/BatchDataInput" }, - "MfeInternalNodesValueType": { - "enum": [ - "All" - ], + "inputsMapping": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "MfeInternalOutputData": { + "connections": { + "type": "object", + "additionalProperties": { "type": "object", - "properties": { - "datasetName": { - "type": "string", - "nullable": true - }, - "datastore": { - "type": "string", - "nullable": true - }, - "datapath": { - "type": "string", - "nullable": true - }, - "mode": { - "$ref": "#/components/schemas/DataBindingMode" - } + "additionalProperties": { + "type": "string" }, - "additionalProperties": false + "description": "This is a dictionary" + }, + "description": "This is a dictionary", + "nullable": true }, - "MfeInternalPipelineType": { - "enum": [ - "AzureML" - ], + "environmentVariables": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "MfeInternalScheduleStatus": { - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" + "outputDataStore": { + "type": "string", + "nullable": true }, - "MfeInternalSecretConfiguration": { - "type": "object", - "properties": { - "workspaceSecretName": { - "type": "string", - "nullable": true - }, - "uri": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "runDisplayNameGenerationType": { + "$ref": "#/components/schemas/RunDisplayNameGenerationType" }, - "MfeInternalUriReference": { - "type": "object", - "properties": { - "file": { - "type": "string", - "nullable": true - }, - "folder": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "collieRunSettings": { + "$ref": "#/components/schemas/CollieRunSettings" }, - "MfeInternalV20211001ComponentJob": { - "type": "object", - "properties": { - "computeId": { - "type": "string", - "nullable": true - }, - "componentId": { - "type": "string", - "nullable": true - }, - "inputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/JobInput" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/JobOutput" - }, - "description": "This is a dictionary", - "nullable": true - }, - "overrides": { - "nullable": true - } - }, - "additionalProperties": false + "workerCount": { + "type": "integer", + "format": "int32", + "nullable": true }, - "MinMaxParameterRule": { - "type": "object", - "properties": { - "min": { - "type": "number", - "format": "double", - "nullable": true - }, - "max": { - "type": "number", - "format": "double", - "nullable": true - } - }, - "additionalProperties": false + "timeoutInSeconds": { + "type": "integer", + "format": "int32", + "nullable": true }, - "MlcComputeInfo": { - "type": "object", - "properties": { - "mlcComputeType": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "promptflowEngineType": { + "$ref": "#/components/schemas/PromptflowEngineType" }, - "ModelDto": { - "type": "object", - "properties": { - "feedName": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "amlDataStoreName": { - "type": "string", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "systemData": { - "$ref": "#/components/schemas/SystemData" - }, - "armId": { - "type": "string", - "nullable": true - }, - "onlineEndpointYamlStr": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "experimentNodeName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowRunStatusEnum": { + "enum": [ + "Started", + "Completed", + "Failed", + "Cancelled", + "NotStarted", + "Running", + "Queued", + "Paused", + "Unapproved", + "Starting", + "Preparing", + "CancelRequested", + "Pausing", + "Finalizing", + "Canceled", + "Bypassed" + ], + "type": "string" + }, + "FlowRunStatusResponse": { + "type": "object", + "properties": { + "flowRunStatus": { + "$ref": "#/components/schemas/FlowRunStatusEnum" + }, + "lastCheckedTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "flowRunCreatedTime": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "FlowRunTypeEnum": { + "enum": [ + "FlowRun", + "EvaluationRun", + "PairwiseEvaluationRun", + "SingleNodeRun", + "FromNodeRun" + ], + "type": "string" + }, + "FlowRuntimeCapability": { + "type": "object", + "properties": { + "flowFeatures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FlowFeature" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowRuntimeDto": { + "type": "object", + "properties": { + "runtimeName": { + "type": "string", + "nullable": true }, - "ModelManagementErrorResponse": { - "type": "object", - "properties": { - "code": { - "type": "string", - "nullable": true - }, - "statusCode": { - "type": "integer", - "format": "int32" - }, - "message": { - "type": "string", - "nullable": true - }, - "target": { - "type": "string", - "nullable": true - }, - "details": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InnerErrorDetails" - }, - "nullable": true - }, - "correlation": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "runtimeDescription": { + "type": "string", + "nullable": true }, - "ModifyPipelineJobScheduleDto": { - "type": "object", - "properties": { - "pipelineJobName": { - "type": "string", - "nullable": true - }, - "pipelineJobRuntimeSettings": { - "$ref": "#/components/schemas/PipelineJobRuntimeBasicSettings" - }, - "displayName": { - "type": "string", - "nullable": true - }, - "triggerType": { - "$ref": "#/components/schemas/TriggerType" - }, - "recurrence": { - "$ref": "#/components/schemas/Recurrence" - }, - "cron": { - "$ref": "#/components/schemas/Cron" - }, - "status": { - "$ref": "#/components/schemas/ScheduleStatus" - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "runtimeType": { + "$ref": "#/components/schemas/RuntimeType" }, - "ModuleDto": { - "type": "object", - "properties": { - "namespace": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "dictTags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "moduleVersionId": { - "type": "string", - "nullable": true - }, - "feedName": { - "type": "string", - "nullable": true - }, - "registryName": { - "type": "string", - "nullable": true - }, - "moduleName": { - "type": "string", - "nullable": true - }, - "moduleVersion": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "owner": { - "type": "string", - "nullable": true - }, - "jobType": { - "type": "string", - "nullable": true - }, - "defaultVersion": { - "type": "string", - "nullable": true - }, - "familyId": { - "type": "string", - "nullable": true - }, - "helpDocument": { - "type": "string", - "nullable": true - }, - "codegenBy": { - "type": "string", - "nullable": true - }, - "armId": { - "type": "string", - "nullable": true - }, - "moduleScope": { - "$ref": "#/components/schemas/ModuleScope" - }, - "moduleEntity": { - "$ref": "#/components/schemas/ModuleEntity" - }, - "inputTypes": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "outputTypes": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "entityStatus": { - "$ref": "#/components/schemas/EntityStatus" - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - }, - "yamlLink": { - "type": "string", - "nullable": true - }, - "yamlLinkWithCommitSha": { - "type": "string", - "nullable": true - }, - "moduleSourceType": { - "$ref": "#/components/schemas/ModuleSourceType" - }, - "registeredBy": { - "type": "string", - "nullable": true - }, - "versions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AzureMLModuleVersionDescriptor" - }, - "nullable": true - }, - "isDefaultModuleVersion": { - "type": "boolean", - "nullable": true - }, - "systemData": { - "$ref": "#/components/schemas/SystemData" - }, - "systemMeta": { - "$ref": "#/components/schemas/SystemMeta" - }, - "snapshotId": { - "type": "string", - "nullable": true - }, - "entry": { - "type": "string", - "nullable": true - }, - "osType": { - "type": "string", - "nullable": true - }, - "requireGpu": { - "type": "boolean", - "nullable": true - }, - "modulePythonInterface": { - "$ref": "#/components/schemas/ModulePythonInterface" - }, - "environmentAssetId": { - "type": "string", - "nullable": true - }, - "runSettingParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameter" - }, - "nullable": true - }, - "supportedUIInputDataDeliveryModes": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UIInputDataDeliveryMode" - }, - "nullable": true - }, - "nullable": true - }, - "outputSettingSpecs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/OutputSettingSpec" - }, - "nullable": true - }, - "yamlStr": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "ModuleDtoFields": { - "enum": [ - "Definition", - "YamlStr", - "RegistrationContext", - "RunSettingParameters", - "RunDefinition", - "All", - "Default", - "Basic", - "Minimal" - ], - "type": "string" - }, - "ModuleDtoWithErrors": { - "type": "object", - "properties": { - "versionIdToModuleDto": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ModuleDto" - }, - "description": "This is a dictionary", - "nullable": true - }, - "nameAndVersionToModuleDto": { - "type": "array", - "items": { - "$ref": "#/components/schemas/KeyValuePairComponentNameMetaInfoModuleDto" - }, - "nullable": true - }, - "versionIdToError": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ErrorResponse" - }, - "description": "This is a dictionary", - "nullable": true - }, - "nameAndVersionToError": { - "type": "array", - "items": { - "$ref": "#/components/schemas/KeyValuePairComponentNameMetaInfoErrorResponse" - }, - "nullable": true - } - }, - "additionalProperties": false + "environment": { + "type": "string", + "nullable": true }, - "ModuleDtoWithValidateStatus": { - "type": "object", - "properties": { - "existingModuleEntity": { - "$ref": "#/components/schemas/ModuleEntity" - }, - "status": { - "$ref": "#/components/schemas/ModuleInfoFromYamlStatusEnum" - }, - "statusDetails": { - "type": "string", - "nullable": true - }, - "errorDetails": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "serializedModuleInfo": { - "type": "string", - "nullable": true - }, - "namespace": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "dictTags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "moduleVersionId": { - "type": "string", - "nullable": true - }, - "feedName": { - "type": "string", - "nullable": true - }, - "registryName": { - "type": "string", - "nullable": true - }, - "moduleName": { - "type": "string", - "nullable": true - }, - "moduleVersion": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "owner": { - "type": "string", - "nullable": true - }, - "jobType": { - "type": "string", - "nullable": true - }, - "defaultVersion": { - "type": "string", - "nullable": true - }, - "familyId": { - "type": "string", - "nullable": true - }, - "helpDocument": { - "type": "string", - "nullable": true - }, - "codegenBy": { - "type": "string", - "nullable": true - }, - "armId": { - "type": "string", - "nullable": true - }, - "moduleScope": { - "$ref": "#/components/schemas/ModuleScope" - }, - "moduleEntity": { - "$ref": "#/components/schemas/ModuleEntity" - }, - "inputTypes": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "outputTypes": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "entityStatus": { - "$ref": "#/components/schemas/EntityStatus" - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - }, - "yamlLink": { - "type": "string", - "nullable": true - }, - "yamlLinkWithCommitSha": { - "type": "string", - "nullable": true - }, - "moduleSourceType": { - "$ref": "#/components/schemas/ModuleSourceType" - }, - "registeredBy": { - "type": "string", - "nullable": true - }, - "versions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AzureMLModuleVersionDescriptor" - }, - "nullable": true - }, - "isDefaultModuleVersion": { - "type": "boolean", - "nullable": true - }, - "systemData": { - "$ref": "#/components/schemas/SystemData" - }, - "systemMeta": { - "$ref": "#/components/schemas/SystemMeta" - }, - "snapshotId": { - "type": "string", - "nullable": true - }, - "entry": { - "type": "string", - "nullable": true - }, - "osType": { - "type": "string", - "nullable": true - }, - "requireGpu": { - "type": "boolean", - "nullable": true - }, - "modulePythonInterface": { - "$ref": "#/components/schemas/ModulePythonInterface" - }, - "environmentAssetId": { - "type": "string", - "nullable": true - }, - "runSettingParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameter" - }, - "nullable": true - }, - "supportedUIInputDataDeliveryModes": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UIInputDataDeliveryMode" - }, - "nullable": true - }, - "nullable": true - }, - "outputSettingSpecs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/OutputSettingSpec" - }, - "nullable": true - }, - "yamlStr": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "status": { + "$ref": "#/components/schemas/RuntimeStatusEnum" }, - "ModuleEntity": { - "type": "object", - "properties": { - "displayName": { - "type": "string", - "nullable": true - }, - "moduleExecutionType": { - "type": "string", - "nullable": true - }, - "moduleType": { - "$ref": "#/components/schemas/ModuleType" - }, - "moduleTypeVersion": { - "type": "string", - "nullable": true - }, - "uploadState": { - "$ref": "#/components/schemas/UploadState" - }, - "isDeterministic": { - "type": "boolean" - }, - "structuredInterface": { - "$ref": "#/components/schemas/StructuredInterface" - }, - "dataLocation": { - "$ref": "#/components/schemas/DataLocation" - }, - "identifierHash": { - "type": "string", - "nullable": true - }, - "identifierHashV2": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "createdBy": { - "$ref": "#/components/schemas/CreatedBy" - }, - "lastUpdatedBy": { - "$ref": "#/components/schemas/CreatedBy" - }, - "runconfig": { - "type": "string", - "nullable": true - }, - "cloudSettings": { - "$ref": "#/components/schemas/CloudSettings" - }, - "category": { - "type": "string", - "nullable": true - }, - "stepType": { - "type": "string", - "nullable": true - }, - "stage": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "hash": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "entityStatus": { - "$ref": "#/components/schemas/EntityStatus" - }, - "id": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "statusMessage": { + "type": "string", + "nullable": true }, - "ModuleInfoFromYamlStatusEnum": { - "enum": [ - "NewModule", - "NewVersion", - "Conflict", - "ParseError", - "ProcessRequestError" - ], - "type": "string" + "error": { + "$ref": "#/components/schemas/ErrorResponse" }, - "ModulePythonInterface": { - "type": "object", - "properties": { - "inputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PythonInterfaceMapping" - }, - "nullable": true - }, - "outputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PythonInterfaceMapping" - }, - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PythonInterfaceMapping" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "ModuleRunSettingTypes": { - "enum": [ - "All", - "Released", - "Default", - "Testing", - "Legacy", - "Preview", - "UxFull", - "Integration", - "UxIntegration", - "Full" - ], - "type": "string" - }, - "ModuleScope": { - "enum": [ - "All", - "Global", - "Workspace", - "Anonymous", - "Step", - "Draft", - "Feed", - "Registry", - "SystemAutoCreated" - ], - "type": "string" - }, - "ModuleSourceType": { - "enum": [ - "Unknown", - "Local", - "GithubFile", - "GithubFolder", - "DevopsArtifactsZip", - "SerializedModuleInfo" - ], - "type": "string" - }, - "ModuleType": { - "enum": [ - "None", - "BatchInferencing" - ], - "type": "string" - }, - "ModuleUpdateOperationType": { - "enum": [ - "SetDefaultVersion", - "EnableModule", - "DisableModule", - "UpdateDisplayName", - "UpdateDescription", - "UpdateTags" - ], - "type": "string" - }, - "ModuleWorkingMechanism": { - "enum": [ - "Normal", - "OutputToDataset" - ], - "type": "string" - }, - "MpiConfiguration": { - "type": "object", - "properties": { - "processCountPerNode": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "fromExistingEndpoint": { + "type": "boolean" }, - "NCrossValidationMode": { - "enum": [ - "Auto", - "Custom" - ], - "type": "string" + "endpointName": { + "type": "string", + "nullable": true }, - "NCrossValidations": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/components/schemas/NCrossValidationMode" - }, - "value": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "fromExistingDeployment": { + "type": "boolean" }, - "Node": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "$ref": "#/components/schemas/ToolType" - }, - "source": { - "$ref": "#/components/schemas/NodeSource" - }, - "inputs": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - }, - "tool": { - "type": "string", - "nullable": true - }, - "reduce": { - "type": "boolean" - }, - "activate": { - "$ref": "#/components/schemas/Activate" - }, - "use_variants": { - "type": "boolean" - }, - "comment": { - "type": "string", - "nullable": true - }, - "api": { - "type": "string", - "nullable": true - }, - "provider": { - "type": "string", - "nullable": true - }, - "connection": { - "type": "string", - "nullable": true - }, - "module": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "deploymentName": { + "type": "string", + "nullable": true }, - "NodeCompositionMode": { - "enum": [ - "None", - "OnlySequential", - "Full" - ], - "type": "string" + "identity": { + "$ref": "#/components/schemas/ManagedServiceIdentity" }, - "NodeInputPort": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "documentation": { - "type": "string", - "nullable": true - }, - "dataTypesIds": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "isOptional": { - "type": "boolean" - } - }, - "additionalProperties": false + "instanceType": { + "type": "string", + "nullable": true }, - "NodeLayout": { - "type": "object", - "properties": { - "x": { - "type": "number", - "format": "float" - }, - "y": { - "type": "number", - "format": "float" - }, - "width": { - "type": "number", - "format": "float" - }, - "height": { - "type": "number", - "format": "float" - }, - "extendedData": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "instanceCount": { + "type": "integer", + "format": "int32" }, - "NodeOutputPort": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "documentation": { - "type": "string", - "nullable": true - }, - "dataTypeId": { - "type": "string", - "nullable": true - }, - "passThroughInputName": { - "type": "string", - "nullable": true - }, - "EarlyAvailable": { - "type": "boolean" - }, - "dataStoreMode": { - "$ref": "#/components/schemas/AEVADataStoreMode" - } - }, - "additionalProperties": false + "computeInstanceName": { + "type": "string", + "nullable": true }, - "NodePortInterface": { - "type": "object", - "properties": { - "inputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NodeInputPort" - }, - "nullable": true - }, - "outputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NodeOutputPort" - }, - "nullable": true - }, - "controlOutputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ControlOutput" - }, - "nullable": true - } - }, - "additionalProperties": false + "dockerImage": { + "type": "string", + "nullable": true }, - "NodeSource": { - "type": "object", - "properties": { - "type": { - "type": "string", - "nullable": true - }, - "tool": { - "type": "string", - "nullable": true - }, - "path": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "publishedPort": { + "type": "integer", + "format": "int32" }, - "NodeTelemetryMetaInfo": { - "type": "object", - "properties": { - "pipelineRunId": { - "type": "string", - "nullable": true - }, - "nodeId": { - "type": "string", - "nullable": true - }, - "versionId": { - "type": "string", - "nullable": true - }, - "nodeType": { - "type": "string", - "nullable": true - }, - "nodeSource": { - "type": "string", - "nullable": true - }, - "isAnonymous": { - "type": "boolean" - }, - "isPipelineComponent": { - "type": "boolean" - } - }, - "additionalProperties": false + "targetPort": { + "type": "integer", + "format": "int32" }, - "NodeVariant": { - "type": "object", - "properties": { - "variants": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/VariantNode" - }, - "description": "This is a dictionary", - "nullable": true - }, - "defaultVariantId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "fromExistingCustomApp": { + "type": "boolean" }, - "Nodes": { - "required": [ - "nodes_value_type" - ], - "type": "object", - "properties": { - "nodes_value_type": { - "$ref": "#/components/schemas/NodesValueType" - }, - "values": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - } - }, - "additionalProperties": false + "customAppName": { + "type": "string", + "nullable": true + }, + "assignedTo": { + "$ref": "#/components/schemas/AssignedUser" }, - "NodesValueType": { - "enum": [ - "All", - "Custom" - ], + "endpointUrl": { + "type": "string", + "nullable": true + }, + "createdOn": { + "type": "string", + "format": "date-time" + }, + "modifiedOn": { + "type": "string", + "format": "date-time" + }, + "owner": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + } + }, + "additionalProperties": false + }, + "FlowSessionDto": { + "type": "object", + "properties": { + "sessionId": { + "type": "string", + "nullable": true + }, + "baseImage": { + "type": "string", + "nullable": true + }, + "packages": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "NoteBookTaskDto": { - "type": "object", - "properties": { - "notebook_path": { - "type": "string", - "nullable": true - }, - "base_parameters": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "vmSize": { + "type": "string", + "nullable": true }, - "NotificationSetting": { - "type": "object", - "properties": { - "emails": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "emailOn": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EmailNotificationEnableType" - }, - "nullable": true - }, - "webhooks": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Webhook" - }, - "nullable": true - } - }, - "additionalProperties": false + "maxIdleTimeSeconds": { + "type": "integer", + "format": "int64", + "nullable": true }, - "ODataError": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Gets or sets a language-independent, service-defined error code.\r\nThis code serves as a sub-status for the HTTP error code specified\r\nin the response.", - "nullable": true - }, - "message": { - "type": "string", - "description": "Gets or sets a human-readable, language-dependent representation of the error.\r\nThe `Content-Language` header MUST contain the language code from [RFC5646]\r\ncorresponding to the language in which the value for message is written.", - "nullable": true - }, - "target": { - "type": "string", - "description": "Gets or sets the target of the particular error\r\n(for example, the name of the property in error).", - "nullable": true - }, - "details": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ODataErrorDetail" - }, - "description": "Gets or sets additional details about the error.", - "nullable": true - }, - "innererror": { - "$ref": "#/components/schemas/ODataInnerError" - } - }, - "additionalProperties": false, - "description": "Represents OData v4 error object." + "computeName": { + "type": "string", + "nullable": true }, - "ODataErrorDetail": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Gets or sets a language-independent, service-defined error code.", - "nullable": true - }, - "message": { - "type": "string", - "description": "Gets or sets a human-readable, language-dependent representation of the error.", - "nullable": true - }, - "target": { - "type": "string", - "description": "Gets or sets the target of the particular error\r\n(for example, the name of the property in error).", - "nullable": true - } - }, - "additionalProperties": false, - "description": "Represents additional error details." + "flowFeatures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FlowFeature" + }, + "nullable": true }, - "ODataErrorResponse": { - "type": "object", - "properties": { - "error": { - "$ref": "#/components/schemas/ODataError" - } - }, - "additionalProperties": false, - "description": "Represents OData v4 compliant error response message." + "runtimeName": { + "type": "string", + "nullable": true }, - "ODataInnerError": { - "type": "object", - "properties": { - "clientRequestId": { - "type": "string", - "description": "Gets or sets the client provided request ID.", - "nullable": true - }, - "serviceRequestId": { - "type": "string", - "description": "Gets or sets the server generated request ID.", - "nullable": true - }, - "trace": { - "type": "string", - "description": "Gets or sets the exception stack trace.\r\nDO NOT INCLUDE IT IN PRODUCTION ENVIRONMENT.", - "nullable": true - }, - "context": { - "type": "string", - "description": "Gets or sets additional context for the exception.\r\nDO NOT INCLUDE IT IN PRODUCTION ENVIRONMENT.", - "nullable": true - } - }, - "additionalProperties": false, - "description": "The contents of this object are service-defined.\r\nUsually this object contains information that will help debug the service\r\nand SHOULD only be used in development environments in order to guard\r\nagainst potential security concerns around information disclosure." + "runtimeDescription": { + "type": "string", + "nullable": true }, - "Orientation": { - "enum": [ - "Horizontal", - "Vertical" - ], - "type": "string" + "runtimeType": { + "$ref": "#/components/schemas/RuntimeType" }, - "OutputData": { - "type": "object", - "properties": { - "outputLocation": { - "$ref": "#/components/schemas/ExecutionDataLocation" - }, - "mechanism": { - "$ref": "#/components/schemas/OutputMechanism" - }, - "additionalOptions": { - "$ref": "#/components/schemas/OutputOptions" - }, - "environmentVariableName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "environment": { + "type": "string", + "nullable": true }, - "OutputDataBinding": { - "type": "object", - "properties": { - "datastoreId": { - "type": "string", - "nullable": true - }, - "pathOnDatastore": { - "type": "string", - "nullable": true - }, - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "uri": { - "$ref": "#/components/schemas/MfeInternalUriReference" - }, - "mode": { - "$ref": "#/components/schemas/DataBindingMode" - }, - "assetUri": { - "type": "string", - "nullable": true - }, - "isAssetJobOutput": { - "type": "boolean", - "nullable": true - }, - "jobOutputType": { - "$ref": "#/components/schemas/JobOutputType" - }, - "assetName": { - "type": "string", - "nullable": true - }, - "assetVersion": { - "type": "string", - "nullable": true - }, - "autoDeleteSetting": { - "$ref": "#/components/schemas/AutoDeleteSetting" - } - }, - "additionalProperties": false + "status": { + "$ref": "#/components/schemas/RuntimeStatusEnum" }, - "OutputDatasetLineage": { - "type": "object", - "properties": { - "identifier": { - "$ref": "#/components/schemas/DatasetIdentifier" - }, - "outputType": { - "$ref": "#/components/schemas/DatasetOutputType" - }, - "outputDetails": { - "$ref": "#/components/schemas/DatasetOutputDetails" - } - }, - "additionalProperties": false + "statusMessage": { + "type": "string", + "nullable": true }, - "OutputDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ValueType" - }, - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "isProperty": { - "type": "boolean" - } - }, - "additionalProperties": false + "error": { + "$ref": "#/components/schemas/ErrorResponse" }, - "OutputMechanism": { - "enum": [ - "Upload", - "Mount", - "Hdfs", - "Link", - "Direct" - ], - "type": "string" + "fromExistingEndpoint": { + "type": "boolean" }, - "OutputOptions": { - "type": "object", - "properties": { - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "registrationOptions": { - "$ref": "#/components/schemas/RegistrationOptions" - }, - "uploadOptions": { - "$ref": "#/components/schemas/UploadOptions" - }, - "mountOptions": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "endpointName": { + "type": "string", + "nullable": true }, - "OutputSetting": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "dataStoreName": { - "type": "string", - "nullable": true - }, - "DataStoreNameParameterAssignment": { - "$ref": "#/components/schemas/ParameterAssignment" - }, - "dataStoreMode": { - "$ref": "#/components/schemas/AEVADataStoreMode" - }, - "DataStoreModeParameterAssignment": { - "$ref": "#/components/schemas/ParameterAssignment" - }, - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "PathOnComputeParameterAssignment": { - "$ref": "#/components/schemas/ParameterAssignment" - }, - "overwrite": { - "type": "boolean" - }, - "dataReferenceName": { - "type": "string", - "nullable": true - }, - "webServicePort": { - "type": "string", - "nullable": true - }, - "datasetRegistration": { - "$ref": "#/components/schemas/DatasetRegistration" - }, - "datasetOutputOptions": { - "$ref": "#/components/schemas/DatasetOutputOptions" - }, - "AssetOutputSettings": { - "$ref": "#/components/schemas/AssetOutputSettings" - }, - "parameterName": { - "type": "string", - "nullable": true - }, - "AssetOutputSettingsParameterName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "fromExistingDeployment": { + "type": "boolean" }, - "OutputSettingSpec": { - "type": "object", - "properties": { - "supportedDataStoreModes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AEVADataStoreMode" - }, - "nullable": true - }, - "defaultAssetOutputPath": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "deploymentName": { + "type": "string", + "nullable": true }, - "PaginatedDataInfoList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataInfo" - }, - "description": "An array of objects of type DataInfo.", - "nullable": true - }, - "continuationToken": { - "type": "string", - "description": "The token used in retrieving the next page. If null, there are no additional pages.", - "nullable": true - }, - "nextLink": { - "type": "string", - "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", - "nullable": true - } - }, - "additionalProperties": false, - "description": "A paginated list of DataInfos." + "identity": { + "$ref": "#/components/schemas/ManagedServiceIdentity" }, - "PaginatedModelDtoList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ModelDto" - }, - "description": "An array of objects of type ModelDto.", - "nullable": true - }, - "continuationToken": { - "type": "string", - "description": "The token used in retrieving the next page. If null, there are no additional pages.", - "nullable": true - }, - "nextLink": { - "type": "string", - "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", - "nullable": true - } - }, - "additionalProperties": false, - "description": "A paginated list of ModelDtos." + "instanceType": { + "type": "string", + "nullable": true }, - "PaginatedModuleDtoList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ModuleDto" - }, - "description": "An array of objects of type ModuleDto.", - "nullable": true - }, - "continuationToken": { - "type": "string", - "description": "The token used in retrieving the next page. If null, there are no additional pages.", - "nullable": true - }, - "nextLink": { - "type": "string", - "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", - "nullable": true - } - }, - "additionalProperties": false, - "description": "A paginated list of ModuleDtos." + "instanceCount": { + "type": "integer", + "format": "int32" }, - "PaginatedPipelineDraftSummaryList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PipelineDraftSummary" - }, - "description": "An array of objects of type PipelineDraftSummary.", - "nullable": true - }, - "continuationToken": { - "type": "string", - "description": "The token used in retrieving the next page. If null, there are no additional pages.", - "nullable": true - }, - "nextLink": { - "type": "string", - "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", - "nullable": true - } - }, - "additionalProperties": false, - "description": "A paginated list of PipelineDraftSummarys." + "computeInstanceName": { + "type": "string", + "nullable": true }, - "PaginatedPipelineEndpointSummaryList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PipelineEndpointSummary" - }, - "description": "An array of objects of type PipelineEndpointSummary.", - "nullable": true - }, - "continuationToken": { - "type": "string", - "description": "The token used in retrieving the next page. If null, there are no additional pages.", - "nullable": true - }, - "nextLink": { - "type": "string", - "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", - "nullable": true - } - }, - "additionalProperties": false, - "description": "A paginated list of PipelineEndpointSummarys." + "dockerImage": { + "type": "string", + "nullable": true }, - "PaginatedPipelineRunSummaryList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PipelineRunSummary" - }, - "description": "An array of objects of type PipelineRunSummary.", - "nullable": true - }, - "continuationToken": { - "type": "string", - "description": "The token used in retrieving the next page. If null, there are no additional pages.", - "nullable": true - }, - "nextLink": { - "type": "string", - "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", - "nullable": true - } - }, - "additionalProperties": false, - "description": "A paginated list of PipelineRunSummarys." + "publishedPort": { + "type": "integer", + "format": "int32" }, - "PaginatedPublishedPipelineSummaryList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PublishedPipelineSummary" - }, - "description": "An array of objects of type PublishedPipelineSummary.", - "nullable": true - }, - "continuationToken": { - "type": "string", - "description": "The token used in retrieving the next page. If null, there are no additional pages.", - "nullable": true - }, - "nextLink": { - "type": "string", - "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", - "nullable": true - } - }, - "additionalProperties": false, - "description": "A paginated list of PublishedPipelineSummarys." + "targetPort": { + "type": "integer", + "format": "int32" }, - "ParallelForControlFlowInfo": { - "type": "object", - "properties": { - "parallelForItemsInput": { - "$ref": "#/components/schemas/ParameterAssignment" - } - }, - "additionalProperties": false + "fromExistingCustomApp": { + "type": "boolean" }, - "ParallelTaskConfiguration": { - "type": "object", - "properties": { - "maxRetriesPerWorker": { - "type": "integer", - "format": "int32" - }, - "workerCountPerNode": { - "type": "integer", - "format": "int32" - }, - "terminalExitCodes": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - }, - "configuration": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "customAppName": { + "type": "string", + "nullable": true }, - "Parameter": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "documentation": { - "type": "string", - "nullable": true - }, - "defaultValue": { - "type": "string", - "nullable": true - }, - "isOptional": { - "type": "boolean" - }, - "minMaxRules": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MinMaxParameterRule" - }, - "nullable": true - }, - "enumRules": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EnumParameterRule" - }, - "nullable": true - }, - "type": { - "$ref": "#/components/schemas/ParameterType" - }, - "label": { - "type": "string", - "nullable": true - }, - "groupNames": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "argumentName": { - "type": "string", - "nullable": true - }, - "uiHint": { - "$ref": "#/components/schemas/UIParameterHint" - } - }, - "additionalProperties": false + "assignedTo": { + "$ref": "#/components/schemas/AssignedUser" }, - "ParameterAssignment": { - "type": "object", - "properties": { - "valueType": { - "$ref": "#/components/schemas/ParameterValueType" - }, - "assignmentsToConcatenate": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParameterAssignment" - }, - "nullable": true - }, - "dataPathAssignment": { - "$ref": "#/components/schemas/LegacyDataPath" - }, - "dataSetDefinitionValueAssignment": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - }, - "name": { - "type": "string", - "nullable": true - }, - "value": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "endpointUrl": { + "type": "string", + "nullable": true }, - "ParameterDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - }, - "value": { - "type": "string", - "nullable": true - }, - "isOptional": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "ParameterType": { - "enum": [ - "Int", - "Double", - "Bool", - "String", - "Undefined" - ], - "type": "string" - }, - "ParameterValueType": { - "enum": [ - "Literal", - "GraphParameterName", - "Concatenate", - "Input", - "DataPath", - "DataSetDefinition" - ], - "type": "string" - }, - "PatchFlowRequest": { - "type": "object", - "properties": { - "flowPatchOperationType": { - "$ref": "#/components/schemas/FlowPatchOperationType" - }, - "flowDefinitionFilePath": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "createdOn": { + "type": "string", + "format": "date-time" }, - "Pipeline": { - "type": "object", - "properties": { - "runId": { - "type": "string", - "nullable": true - }, - "continueRunOnStepFailure": { - "type": "boolean" - }, - "defaultDatastoreName": { - "type": "string", - "nullable": true - }, - "componentJobs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ComponentJob" - }, - "description": "This is a dictionary", - "nullable": true - }, - "inputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/PipelineInput" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/PipelineOutput" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "modifiedOn": { + "type": "string", + "format": "date-time" + }, + "owner": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + } + }, + "additionalProperties": false + }, + "FlowSnapshot": { + "type": "object", + "properties": { + "inputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowInputDefinition" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowOutputDefinition" + }, + "description": "This is a dictionary", + "nullable": true + }, + "nodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FlowNode" + }, + "nullable": true + }, + "node_variants": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowNodeVariant" + }, + "description": "This is a dictionary", + "nullable": true + }, + "environment": { + "$ref": "#/components/schemas/FlowEnvironment" + }, + "environment_variables": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary", + "nullable": true + }, + "language": { + "$ref": "#/components/schemas/FlowLanguage" + }, + "entry": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowSubmitRunSettings": { + "type": "object", + "properties": { + "nodeInputs": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary", + "nullable": true + }, + "runMode": { + "$ref": "#/components/schemas/FlowRunMode" + }, + "tuningNodeNames": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "tuningNodeSettings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TuningNodeSetting" + }, + "description": "This is a dictionary", + "nullable": true + }, + "baselineVariantId": { + "type": "string", + "nullable": true + }, + "defaultVariantId": { + "type": "string", + "nullable": true + }, + "variants": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Node" + } + }, + "description": "This is a dictionary", + "nullable": true + }, + "nodeName": { + "type": "string", + "nullable": true + }, + "isDefaultVariant": { + "type": "boolean" + }, + "nodeVariantId": { + "type": "string", + "nullable": true + }, + "nodeOutputPaths": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "baseFlowRunId": { + "type": "string", + "nullable": true + }, + "flowTestInfos": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowTestInfo" + }, + "nullable": true + }, + "bulkTestId": { + "type": "string", + "nullable": true + }, + "evaluationFlowRunSettings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/EvaluationFlowRunSettings" + }, + "description": "This is a dictionary", + "nullable": true + }, + "bulkTestFlowId": { + "type": "string", + "nullable": true + }, + "bulkTestFlowRunIds": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "PipelineDraft": { + "batch_inputs": { + "type": "array", + "items": { "type": "object", - "properties": { - "graphDraftId": { - "type": "string", - "nullable": true - }, - "sourcePipelineRunId": { - "type": "string", - "nullable": true - }, - "latestPipelineRunId": { - "type": "string", - "nullable": true - }, - "latestRunExperimentName": { - "type": "string", - "nullable": true - }, - "latestRunExperimentId": { - "type": "string", - "nullable": true - }, - "isLatestRunExperimentArchived": { - "type": "boolean", - "nullable": true - }, - "status": { - "$ref": "#/components/schemas/PipelineStatus" - }, - "graphDetail": { - "$ref": "#/components/schemas/PipelineRunGraphDetail" - }, - "realTimeEndpointInfo": { - "$ref": "#/components/schemas/RealTimeEndpointInfo" - }, - "linkedPipelinesInfo": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LinkedPipelineInfo" - }, - "nullable": true - }, - "nodesInDraft": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "studioMigrationInfo": { - "$ref": "#/components/schemas/StudioMigrationInfo" - }, - "flattenedSubGraphs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/PipelineSubDraft" - }, - "nullable": true - }, - "pipelineRunSettingParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameter" - }, - "nullable": true - }, - "pipelineRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameterAssignment" - }, - "nullable": true - }, - "continueRunOnStepFailure": { - "type": "boolean" - }, - "continueRunOnFailedOptionalInput": { - "type": "boolean" - }, - "defaultCompute": { - "$ref": "#/components/schemas/ComputeSetting" - }, - "defaultDatastore": { - "$ref": "#/components/schemas/DatastoreSetting" - }, - "defaultCloudPriority": { - "$ref": "#/components/schemas/CloudPrioritySetting" - }, - "enforceRerun": { - "type": "boolean", - "nullable": true - }, - "pipelineParameters": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataPathAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/LegacyDataPath" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataSetDefinitionValueAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - }, - "description": "This is a dictionary", - "nullable": true - }, - "assetOutputSettingsAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AssetOutputSettings" - }, - "description": "This is a dictionary", - "nullable": true - }, - "pipelineTimeout": { - "type": "integer", - "format": "int32" - }, - "identityConfig": { - "$ref": "#/components/schemas/IdentitySetting" - }, - "graphComponentsMode": { - "$ref": "#/components/schemas/GraphComponentsMode" - }, - "name": { - "type": "string", - "nullable": true - }, - "lastEditedBy": { - "type": "string", - "nullable": true - }, - "createdBy": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "pipelineType": { - "$ref": "#/components/schemas/PipelineType" - }, - "pipelineDraftMode": { - "$ref": "#/components/schemas/PipelineDraftMode" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "entityStatus": { - "$ref": "#/components/schemas/EntityStatus" - }, - "id": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "additionalProperties": { }, + "description": "This is a dictionary" + }, + "nullable": true + }, + "inputUniversalLink": { + "type": "string", + "nullable": true + }, + "dataInputs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "flowRunOutputDirectory": { + "type": "string", + "nullable": true + }, + "connectionOverrides": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionOverrideSetting" + }, + "nullable": true + }, + "flowRunDisplayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "runtimeName": { + "type": "string", + "nullable": true + }, + "batchDataInput": { + "$ref": "#/components/schemas/BatchDataInput" }, - "PipelineDraftMode": { - "enum": [ - "None", - "Normal", - "Custom" - ], + "inputsMapping": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "PipelineDraftStepDetails": { + "connections": { + "type": "object", + "additionalProperties": { "type": "object", - "properties": { - "runId": { - "type": "string", - "nullable": true - }, - "target": { - "type": "string", - "nullable": true - }, - "status": { - "$ref": "#/components/schemas/RunStatus" - }, - "statusDetail": { - "type": "string", - "nullable": true - }, - "parentRunId": { - "type": "string", - "nullable": true - }, - "startTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "endTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "isReused": { - "type": "boolean", - "nullable": true - }, - "reusedRunId": { - "type": "string", - "nullable": true - }, - "reusedPipelineRunId": { - "type": "string", - "nullable": true - }, - "logs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputLog": { - "type": "string", - "nullable": true - }, - "runConfiguration": { - "$ref": "#/components/schemas/RunConfiguration" - }, - "outputs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "portOutputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/PortOutputInfo" - }, - "description": "This is a dictionary", - "nullable": true - }, - "isExperimentArchived": { - "type": "boolean", - "nullable": true - } + "additionalProperties": { + "type": "string" }, - "additionalProperties": false + "description": "This is a dictionary" + }, + "description": "This is a dictionary", + "nullable": true }, - "PipelineDraftSummary": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "lastEditedBy": { - "type": "string", - "nullable": true - }, - "createdBy": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "pipelineType": { - "$ref": "#/components/schemas/PipelineType" - }, - "pipelineDraftMode": { - "$ref": "#/components/schemas/PipelineDraftMode" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "entityStatus": { - "$ref": "#/components/schemas/EntityStatus" - }, - "id": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "PipelineEndpoint": { - "type": "object", - "properties": { - "defaultVersion": { - "type": "string", - "nullable": true - }, - "defaultPipelineId": { - "type": "string", - "nullable": true - }, - "defaultGraphId": { - "type": "string", - "nullable": true - }, - "restEndpoint": { - "type": "string", - "nullable": true - }, - "publishedDate": { - "type": "string", - "format": "date-time" - }, - "publishedBy": { - "type": "string", - "nullable": true - }, - "parameters": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataSetDefinitionValueAssignment": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - }, - "description": "This is a dictionary", - "nullable": true - }, - "defaultPipelineName": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "updatedBy": { - "type": "string", - "nullable": true - }, - "swaggerUrl": { - "type": "string", - "nullable": true - }, - "lastRunTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "lastRunStatus": { - "$ref": "#/components/schemas/PipelineRunStatusCode" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "entityStatus": { - "$ref": "#/components/schemas/EntityStatus" - }, - "id": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "outputDataStore": { + "type": "string", + "nullable": true }, - "PipelineEndpointSummary": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "updatedBy": { - "type": "string", - "nullable": true - }, - "swaggerUrl": { - "type": "string", - "nullable": true - }, - "lastRunTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "lastRunStatus": { - "$ref": "#/components/schemas/PipelineRunStatusCode" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "entityStatus": { - "$ref": "#/components/schemas/EntityStatus" - }, - "id": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "runDisplayNameGenerationType": { + "$ref": "#/components/schemas/RunDisplayNameGenerationType" }, - "PipelineGraph": { - "type": "object", - "properties": { - "graphModuleDtos": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ModuleDto" - }, - "nullable": true - }, - "graphDataSources": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataInfo" - }, - "nullable": true - }, - "graphs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/PipelineGraph" - }, - "description": "This is a dictionary", - "nullable": true - }, - "graphDrafts": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/PipelineGraph" - }, - "description": "This is a dictionary", - "nullable": true - }, - "moduleNodeRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeRunSetting" - }, - "nullable": true - }, - "moduleNodeUIInputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" - }, - "nullable": true - }, - "subPipelinesInfo": { - "$ref": "#/components/schemas/SubPipelinesInfo" - }, - "referencedNodeId": { - "type": "string", - "nullable": true - }, - "pipelineRunSettingParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameter" - }, - "nullable": true - }, - "pipelineRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameterAssignment" - }, - "nullable": true - }, - "realTimeEndpointInfo": { - "$ref": "#/components/schemas/RealTimeEndpointInfo" - }, - "nodeTelemetryMetaInfos": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NodeTelemetryMetaInfo" - }, - "nullable": true - }, - "graphComponentsMode": { - "$ref": "#/components/schemas/GraphComponentsMode" - }, - "moduleNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNode" - }, - "nullable": true - }, - "datasetNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphDatasetNode" - }, - "nullable": true - }, - "subGraphNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphReferenceNode" - }, - "nullable": true - }, - "controlReferenceNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphControlReferenceNode" - }, - "nullable": true - }, - "controlNodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphControlNode" - }, - "nullable": true - }, - "edges": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphEdge" - }, - "nullable": true - }, - "entityInterface": { - "$ref": "#/components/schemas/EntityInterface" - }, - "graphLayout": { - "$ref": "#/components/schemas/GraphLayout" - }, - "createdBy": { - "$ref": "#/components/schemas/CreatedBy" - }, - "lastUpdatedBy": { - "$ref": "#/components/schemas/CreatedBy" - }, - "defaultCompute": { - "$ref": "#/components/schemas/ComputeSetting" - }, - "defaultDatastore": { - "$ref": "#/components/schemas/DatastoreSetting" - }, - "defaultCloudPriority": { - "$ref": "#/components/schemas/CloudPrioritySetting" - }, - "extendedProperties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "parentSubGraphModuleIds": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "collieRunSettings": { + "$ref": "#/components/schemas/CollieRunSettings" }, - "PipelineInput": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/InputData" - } - }, - "additionalProperties": false + "workerCount": { + "type": "integer", + "format": "int32", + "nullable": true }, - "PipelineJob": { - "type": "object", - "properties": { - "jobType": { - "$ref": "#/components/schemas/JobType" - }, - "pipelineJobType": { - "$ref": "#/components/schemas/MfeInternalPipelineType" - }, - "pipeline": { - "$ref": "#/components/schemas/Pipeline" - }, - "computeId": { - "type": "string", - "nullable": true - }, - "runId": { - "type": "string", - "nullable": true - }, - "settings": { - "nullable": true - }, - "componentJobs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/MfeInternalV20211001ComponentJob" - }, - "description": "This is a dictionary", - "nullable": true - }, - "inputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/JobInput" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/JobOutput" - }, - "description": "This is a dictionary", - "nullable": true - }, - "bindings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Binding" - }, - "nullable": true - }, - "jobs": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary", - "nullable": true - }, - "inputBindings": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/InputDataBinding" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputBindings": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/OutputDataBinding" - }, - "description": "This is a dictionary", - "nullable": true - }, - "sourceJobId": { - "type": "string", - "nullable": true - }, - "provisioningState": { - "$ref": "#/components/schemas/JobProvisioningState" - }, - "parentJobName": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "experimentName": { - "type": "string", - "nullable": true - }, - "status": { - "$ref": "#/components/schemas/JobStatus" - }, - "interactionEndpoints": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/JobEndpoint" - }, - "nullable": true - }, - "identity": { - "$ref": "#/components/schemas/MfeInternalIdentityConfiguration" - }, - "compute": { - "$ref": "#/components/schemas/ComputeConfiguration" - }, - "priority": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "output": { - "$ref": "#/components/schemas/JobOutputArtifacts" - }, - "isArchived": { - "type": "boolean" - }, - "schedule": { - "$ref": "#/components/schemas/ScheduleBase" - }, - "componentId": { - "type": "string", - "nullable": true - }, - "notificationSetting": { - "$ref": "#/components/schemas/NotificationSetting" - }, - "secretsConfiguration": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/MfeInternalSecretConfiguration" - }, - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "timeoutInSeconds": { + "type": "integer", + "format": "int32", + "nullable": true }, - "PipelineJobRuntimeBasicSettings": { - "type": "object", - "properties": { - "pipelineRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameterAssignment" - }, - "nullable": true - }, - "experimentName": { - "type": "string", - "nullable": true - }, - "pipelineJobName": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "triggerTimeString": { - "type": "string", - "nullable": true - }, - "pipelineParameters": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataPathAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/LegacyDataPath" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataSetDefinitionValueAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - }, - "description": "This is a dictionary", - "nullable": true - }, - "assetOutputSettingsAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AssetOutputSettings" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "promptflowEngineType": { + "$ref": "#/components/schemas/PromptflowEngineType" }, - "PipelineJobScheduleDto": { - "type": "object", - "properties": { - "systemData": { - "$ref": "#/components/schemas/SystemData" - }, - "name": { - "type": "string", - "nullable": true - }, - "pipelineJobName": { - "type": "string", - "nullable": true - }, - "pipelineJobRuntimeSettings": { - "$ref": "#/components/schemas/PipelineJobRuntimeBasicSettings" - }, - "displayName": { - "type": "string", - "nullable": true - }, - "triggerType": { - "$ref": "#/components/schemas/TriggerType" - }, - "recurrence": { - "$ref": "#/components/schemas/Recurrence" - }, - "cron": { - "$ref": "#/components/schemas/Cron" - }, - "status": { - "$ref": "#/components/schemas/ScheduleStatus" - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "experimentNodeName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowTestInfo": { + "type": "object", + "properties": { + "variantId": { + "type": "string", + "nullable": true + }, + "tuningNodeName": { + "type": "string", + "nullable": true + }, + "flowRunId": { + "type": "string", + "nullable": true + }, + "flowTestStorageSetting": { + "$ref": "#/components/schemas/FlowTestStorageSetting" + }, + "flowRunType": { + "$ref": "#/components/schemas/FlowRunTypeEnum" + }, + "variantRunId": { + "type": "string", + "nullable": true + }, + "evaluationName": { + "type": "string", + "nullable": true + }, + "outputUniversalLink": { + "type": "string", + "nullable": true + }, + "experimentNodeName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowTestMode": { + "enum": [ + "Sync", + "Async" + ], + "type": "string" + }, + "FlowTestStorageSetting": { + "type": "object", + "properties": { + "storageAccountName": { + "type": "string", + "nullable": true + }, + "blobContainerName": { + "type": "string", + "nullable": true + }, + "flowArtifactsRootPath": { + "type": "string", + "nullable": true + }, + "outputDatastoreName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowToolSettingParameter": { + "type": "object", + "properties": { + "type": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueType" + }, + "nullable": true + }, + "default": { + "type": "string", + "nullable": true + }, + "advanced": { + "type": "boolean", + "nullable": true + }, + "enum": { + "type": "array", + "items": { }, + "nullable": true + }, + "model_list": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "PipelineOutput": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/MfeInternalOutputData" - } - }, - "additionalProperties": false + "capabilities": { + "$ref": "#/components/schemas/AzureOpenAIModelCapabilities" }, - "PipelineRun": { - "type": "object", - "properties": { - "pipelineId": { - "type": "string", - "nullable": true - }, - "runSource": { - "type": "string", - "nullable": true - }, - "runType": { - "$ref": "#/components/schemas/RunType" - }, - "parameters": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataPathAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/LegacyDataPath" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataSetDefinitionValueAssignment": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - }, - "description": "This is a dictionary", - "nullable": true - }, - "assetOutputSettingsAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AssetOutputSettings" - }, - "description": "This is a dictionary", - "nullable": true - }, - "totalSteps": { - "type": "integer", - "format": "int32" - }, - "logs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "userAlias": { - "type": "string", - "nullable": true - }, - "enforceRerun": { - "type": "boolean", - "nullable": true - }, - "continueRunOnFailedOptionalInput": { - "type": "boolean" - }, - "defaultCompute": { - "$ref": "#/components/schemas/ComputeSetting" - }, - "defaultDatastore": { - "$ref": "#/components/schemas/DatastoreSetting" - }, - "defaultCloudPriority": { - "$ref": "#/components/schemas/CloudPrioritySetting" - }, - "pipelineTimeoutSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "continueRunOnStepFailure": { - "type": "boolean" - }, - "identityConfig": { - "$ref": "#/components/schemas/IdentitySetting" - }, - "description": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "runNumber": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "statusCode": { - "$ref": "#/components/schemas/PipelineStatusCode" - }, - "runStatus": { - "$ref": "#/components/schemas/RunStatus" - }, - "statusDetail": { - "type": "string", - "nullable": true - }, - "startTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "endTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "graphId": { - "type": "string", - "nullable": true - }, - "experimentId": { - "type": "string", - "nullable": true - }, - "experimentName": { - "type": "string", - "nullable": true - }, - "isExperimentArchived": { - "type": "boolean", - "nullable": true - }, - "submittedBy": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "stepTags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "aetherStartTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "aetherEndTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "runHistoryStartTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "runHistoryEndTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "uniqueChildRunComputeTargets": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "entityStatus": { - "$ref": "#/components/schemas/EntityStatus" - }, - "id": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "allow_manual_entry": { + "type": "boolean", + "nullable": true }, - "PipelineRunGraphDetail": { - "type": "object", - "properties": { - "graph": { - "$ref": "#/components/schemas/PipelineGraph" - }, - "graphNodesStatus": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/GraphNodeStatusInfo" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "ui_hints": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowToolsDto": { + "type": "object", + "properties": { + "package": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Tool" + }, + "description": "This is a dictionary", + "nullable": true + }, + "code": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Tool" + }, + "description": "This is a dictionary", + "nullable": true + }, + "errors": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "FlowType": { + "enum": [ + "Default", + "Evaluation", + "Chat", + "Rag" + ], + "type": "string" + }, + "FlowVariantNode": { + "type": "object", + "properties": { + "node": { + "$ref": "#/components/schemas/FlowNode" + }, + "description": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ForecastHorizon": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/ForecastHorizonMode" + }, + "value": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "ForecastHorizonMode": { + "enum": [ + "Auto", + "Custom" + ], + "type": "string" + }, + "ForecastingSettings": { + "type": "object", + "properties": { + "countryOrRegionForHolidays": { + "type": "string", + "nullable": true }, - "PipelineRunGraphStatus": { - "type": "object", - "properties": { - "status": { - "$ref": "#/components/schemas/PipelineStatus" - }, - "graphNodesStatus": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/GraphNodeStatusInfo" - }, - "description": "This is a dictionary", - "nullable": true - }, - "experimentId": { - "type": "string", - "nullable": true - }, - "isExperimentArchived": { - "type": "boolean", - "nullable": true - } - }, - "additionalProperties": false + "timeColumnName": { + "type": "string", + "nullable": true }, - "PipelineRunProfile": { - "type": "object", - "properties": { - "runId": { - "type": "string", - "nullable": true - }, - "nodeId": { - "type": "string", - "nullable": true - }, - "runUrl": { - "type": "string", - "nullable": true - }, - "experimentName": { - "type": "string", - "nullable": true - }, - "experimentId": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "status": { - "$ref": "#/components/schemas/PipelineRunStatus" - }, - "createTime": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "startTime": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "endTime": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "profilingTime": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "stepRunsProfile": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StepRunProfile" - }, - "nullable": true - }, - "subPipelineRunProfile": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PipelineRunProfile" - }, - "nullable": true - } - }, - "additionalProperties": false + "targetLags": { + "$ref": "#/components/schemas/TargetLags" }, - "PipelineRunStatus": { - "type": "object", - "properties": { - "statusCode": { - "$ref": "#/components/schemas/PipelineRunStatusCode" - }, - "statusDetail": { - "type": "string", - "nullable": true - }, - "creationTime": { - "type": "string", - "format": "date-time" - }, - "endTime": { - "type": "string", - "format": "date-time", - "nullable": true - } - }, - "additionalProperties": false + "targetRollingWindowSize": { + "$ref": "#/components/schemas/TargetRollingWindowSize" + }, + "forecastHorizon": { + "$ref": "#/components/schemas/ForecastHorizon" }, - "PipelineRunStatusCode": { - "enum": [ - "NotStarted", - "Running", - "Failed", - "Finished", - "Canceled", - "Queued", - "CancelRequested" - ], + "timeSeriesIdColumnNames": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "PipelineRunStepDetails": { - "type": "object", - "properties": { - "runId": { - "type": "string", - "nullable": true - }, - "target": { - "type": "string", - "nullable": true - }, - "status": { - "$ref": "#/components/schemas/RunStatus" - }, - "statusDetail": { - "type": "string", - "nullable": true - }, - "parentRunId": { - "type": "string", - "nullable": true - }, - "startTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "endTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "isReused": { - "type": "boolean", - "nullable": true - }, - "logs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "snapshotInfo": { - "$ref": "#/components/schemas/SnapshotInfo" - }, - "inputDatasets": { - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/components/schemas/DatasetLineage" - }, - "nullable": true - }, - "outputDatasets": { - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/components/schemas/OutputDatasetLineage" - }, - "nullable": true - } - }, - "additionalProperties": false + "frequency": { + "type": "string", + "nullable": true }, - "PipelineRunSummary": { - "type": "object", - "properties": { - "description": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "runNumber": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "statusCode": { - "$ref": "#/components/schemas/PipelineStatusCode" - }, - "runStatus": { - "$ref": "#/components/schemas/RunStatus" - }, - "statusDetail": { - "type": "string", - "nullable": true - }, - "startTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "endTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "graphId": { - "type": "string", - "nullable": true - }, - "experimentId": { - "type": "string", - "nullable": true - }, - "experimentName": { - "type": "string", - "nullable": true - }, - "isExperimentArchived": { - "type": "boolean", - "nullable": true - }, - "submittedBy": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "stepTags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "aetherStartTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "aetherEndTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "runHistoryStartTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "runHistoryEndTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "uniqueChildRunComputeTargets": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "entityStatus": { - "$ref": "#/components/schemas/EntityStatus" - }, - "id": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "featureLags": { + "type": "string", + "nullable": true }, - "PipelineStatus": { - "type": "object", - "properties": { - "statusCode": { - "$ref": "#/components/schemas/PipelineStatusCode" - }, - "runStatus": { - "$ref": "#/components/schemas/RunStatus" - }, - "statusDetail": { - "type": "string", - "nullable": true - }, - "startTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "endTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "isTerminalState": { - "type": "boolean", - "readOnly": true - } - }, - "additionalProperties": false - }, - "PipelineStatusCode": { - "enum": [ - "NotStarted", - "InDraft", - "Preparing", - "Running", - "Failed", - "Finished", - "Canceled", - "Throttled", - "Unknown" - ], - "type": "string" - }, - "PipelineStepRun": { - "type": "object", - "properties": { - "stepName": { - "type": "string", - "nullable": true - }, - "runNumber": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "runId": { - "type": "string", - "nullable": true - }, - "startTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "endTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "runStatus": { - "$ref": "#/components/schemas/RunStatus" - }, - "computeTarget": { - "type": "string", - "nullable": true - }, - "computeType": { - "type": "string", - "nullable": true - }, - "runType": { - "type": "string", - "nullable": true - }, - "stepType": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "isReused": { - "type": "boolean", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "seasonality": { + "$ref": "#/components/schemas/Seasonality" }, - "PipelineStepRunOutputs": { - "type": "object", - "properties": { - "outputs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "portOutputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/PortOutputInfo" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "shortSeriesHandlingConfig": { + "$ref": "#/components/schemas/ShortSeriesHandlingConfiguration" }, - "PipelineSubDraft": { - "type": "object", - "properties": { - "parentGraphDraftId": { - "type": "string", - "nullable": true - }, - "parentNodeId": { - "type": "string", - "nullable": true - }, - "graphDetail": { - "$ref": "#/components/schemas/PipelineRunGraphDetail" - }, - "moduleDto": { - "$ref": "#/components/schemas/ModuleDto" - }, - "name": { - "type": "string", - "nullable": true - }, - "lastEditedBy": { - "type": "string", - "nullable": true - }, - "createdBy": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "pipelineType": { - "$ref": "#/components/schemas/PipelineType" - }, - "pipelineDraftMode": { - "$ref": "#/components/schemas/PipelineDraftMode" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "entityStatus": { - "$ref": "#/components/schemas/EntityStatus" - }, - "id": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "useStl": { + "$ref": "#/components/schemas/UseStl" + }, + "targetAggregateFunction": { + "$ref": "#/components/schemas/TargetAggregationFunction" }, - "PipelineType": { - "enum": [ - "TrainingPipeline", - "RealTimeInferencePipeline", - "BatchInferencePipeline", - "Unknown" - ], + "cvStepSize": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "featuresUnknownAtForecastTime": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Framework": { + "enum": [ + "Python", + "PySpark", + "Cntk", + "TensorFlow", + "PyTorch", + "PySparkInteractive", + "R" + ], + "type": "string" + }, + "Frequency": { + "enum": [ + "Month", + "Week", + "Day", + "Hour", + "Minute" + ], + "type": "string" + }, + "GeneralSettings": { + "type": "object", + "properties": { + "primaryMetric": { + "$ref": "#/components/schemas/PrimaryMetrics" }, - "PolicyValidationResponse": { - "type": "object", - "properties": { - "errorResponse": { - "$ref": "#/components/schemas/ErrorResponse" - }, - "nextActionIntervalInSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "actionType": { - "$ref": "#/components/schemas/ActionType" - } - }, - "additionalProperties": false + "taskType": { + "$ref": "#/components/schemas/TaskType" }, - "PortAction": { - "enum": [ - "Promote", - "ViewInDataStore", - "Visualize", - "GetSchema", - "CreateInferenceGraph", - "RegisterModel", - "PromoteAsTabular" - ], + "logVerbosity": { + "$ref": "#/components/schemas/LogVerbosity" + } + }, + "additionalProperties": false + }, + "GeneratePipelineComponentRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "moduleScope": { + "$ref": "#/components/schemas/ModuleScope" + }, + "isDeterministic": { + "type": "boolean", + "nullable": true + }, + "category": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + }, + "setAsDefaultVersion": { + "type": "boolean" + }, + "registryName": { + "type": "string", + "nullable": true + }, + "graph": { + "$ref": "#/components/schemas/GraphDraftEntity" + }, + "pipelineRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameterAssignment" + }, + "nullable": true + }, + "moduleNodeRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeRunSetting" + }, + "nullable": true + }, + "moduleNodeUIInputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" + }, + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "PortInfo": { - "type": "object", - "properties": { - "nodeId": { - "type": "string", - "nullable": true - }, - "portName": { - "type": "string", - "nullable": true - }, - "graphPortName": { - "type": "string", - "nullable": true - }, - "isParameter": { - "type": "boolean" - }, - "webServicePort": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "continueRunOnStepFailure": { + "type": "boolean", + "nullable": true }, - "PortOutputInfo": { - "type": "object", - "properties": { - "containerUri": { - "type": "string", - "format": "uri", - "nullable": true - }, - "relativePath": { - "type": "string", - "nullable": true - }, - "previewParams": { - "type": "string", - "nullable": true - }, - "modelOutputPath": { - "type": "string", - "nullable": true - }, - "dataStoreName": { - "type": "string", - "nullable": true - }, - "dataReferenceType": { - "$ref": "#/components/schemas/DataReferenceType" - }, - "isFile": { - "type": "boolean" - }, - "supportedActions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PortAction" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "PrimaryMetrics": { - "enum": [ - "AUCWeighted", - "Accuracy", - "NormMacroRecall", - "AveragePrecisionScoreWeighted", - "PrecisionScoreWeighted", - "SpearmanCorrelation", - "NormalizedRootMeanSquaredError", - "R2Score", - "NormalizedMeanAbsoluteError", - "NormalizedRootMeanSquaredLogError", - "MeanAveragePrecision", - "Iou" - ], - "type": "string" - }, - "PriorityConfig": { - "type": "object", - "properties": { - "jobPriority": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "isPreemptible": { - "type": "boolean", - "nullable": true - }, - "nodeCountSet": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - }, - "scaleInterval": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "description": { + "type": "string", + "nullable": true }, - "PriorityConfiguration": { - "type": "object", - "properties": { - "cloudPriority": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "stringTypePriority": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "PromoteDataSetRequest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "moduleNodeId": { - "type": "string", - "nullable": true - }, - "stepRunId": { - "type": "string", - "nullable": true - }, - "outputPortName": { - "type": "string", - "nullable": true - }, - "modelOutputPath": { - "type": "string", - "nullable": true - }, - "dataTypeId": { - "type": "string", - "nullable": true - }, - "datasetType": { - "type": "string", - "nullable": true - }, - "dataStoreName": { - "type": "string", - "nullable": true - }, - "outputRelativePath": { - "type": "string", - "nullable": true - }, - "pipelineRunId": { - "type": "string", - "nullable": true - }, - "rootPipelineRunId": { - "type": "string", - "nullable": true - }, - "experimentName": { - "type": "string", - "nullable": true - }, - "experimentId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "enforceRerun": { + "type": "boolean", + "nullable": true }, - "PromptflowEngineType": { - "enum": [ - "FastEngine", - "ScalableEngine" - ], + "datasetAccessModes": { + "$ref": "#/components/schemas/DatasetAccessModes" + } + }, + "additionalProperties": false + }, + "GenerateToolMetaRequest": { + "type": "object", + "properties": { + "tools": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ToolSourceMeta" + }, + "description": "This is a dictionary", + "nullable": true + }, + "working_dir": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "GetDynamicListRequest": { + "type": "object", + "properties": { + "func_path": { + "type": "string", + "nullable": true + }, + "func_kwargs": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "GetRunDataResultDto": { + "type": "object", + "properties": { + "runMetadata": { + "$ref": "#/components/schemas/RunDto" + }, + "runDefinition": { + "nullable": true + }, + "jobSpecification": { + "nullable": true + }, + "systemSettings": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "GetTrainingSessionDto": { + "type": "object", + "properties": { + "properties": { + "$ref": "#/components/schemas/SessionProperties" + }, + "compute": { + "$ref": "#/components/schemas/ComputeContract" + } + }, + "additionalProperties": false + }, + "GlobalJobDispatcherConfiguration": { + "type": "object", + "properties": { + "vmSize": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "ProviderEntity": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "nullable": true - }, - "module": { - "type": "string", - "nullable": true - }, - "connection_type": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionType" - }, - "nullable": true - }, - "apis": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ApiAndParameters" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "ProvisioningState": { - "enum": [ - "Unknown", - "Updating", - "Creating", - "Deleting", - "Accepted", - "Succeeded", - "Failed", - "Canceled" - ], - "type": "string" - }, - "PublishedPipeline": { - "type": "object", - "properties": { - "totalRunSteps": { - "type": "integer", - "format": "int32" - }, - "totalRuns": { - "type": "integer", - "format": "int32" - }, - "parameters": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataSetDefinitionValueAssignment": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - }, - "description": "This is a dictionary", - "nullable": true - }, - "restEndpoint": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "graphId": { - "type": "string", - "nullable": true - }, - "publishedDate": { - "type": "string", - "format": "date-time" - }, - "lastRunTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "lastRunStatus": { - "$ref": "#/components/schemas/PipelineRunStatusCode" - }, - "publishedBy": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "isDefault": { - "type": "boolean", - "nullable": true - }, - "entityStatus": { - "$ref": "#/components/schemas/EntityStatus" - }, - "id": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "computeType": { + "$ref": "#/components/schemas/GlobalJobDispatcherSupportedComputeType" }, - "PublishedPipelineSummary": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "graphId": { - "type": "string", - "nullable": true - }, - "publishedDate": { - "type": "string", - "format": "date-time" - }, - "lastRunTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "lastRunStatus": { - "$ref": "#/components/schemas/PipelineRunStatusCode" - }, - "publishedBy": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "isDefault": { - "type": "boolean", - "nullable": true - }, - "entityStatus": { - "$ref": "#/components/schemas/EntityStatus" - }, - "id": { - "type": "string", - "nullable": true - }, - "etag": { - "type": "string", - "nullable": true - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "region": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "PyTorchConfiguration": { - "type": "object", - "properties": { - "communicationBackend": { - "type": "string", - "nullable": true - }, - "processCount": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "myResourceOnly": { + "type": "boolean" }, - "PythonInterfaceMapping": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "nameInYaml": { - "type": "string", - "nullable": true - }, - "argumentName": { - "type": "string", - "nullable": true - }, - "commandLineOption": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "redispatchAllowed": { + "type": "boolean", + "nullable": true }, - "PythonPyPiOrRCranLibraryDto": { - "type": "object", - "properties": { - "package": { - "type": "string", - "nullable": true - }, - "repo": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "lowPriorityVMTolerant": { + "type": "boolean" }, - "PythonSection": { - "type": "object", - "properties": { - "interpreterPath": { - "type": "string", - "nullable": true - }, - "userManagedDependencies": { - "type": "boolean" - }, - "condaDependencies": { - "nullable": true - }, - "baseCondaEnvironment": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "vcList": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "QueueingInfo": { - "type": "object", - "properties": { - "code": { - "type": "string", - "nullable": true - }, - "message": { - "type": "string", - "nullable": true - }, - "lastRefreshTimestamp": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "planId": { + "type": "string", + "nullable": true }, - "RCranPackage": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "repository": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "planRegionId": { + "type": "string", + "nullable": true }, - "RGitHubPackage": { - "type": "object", - "properties": { - "repository": { - "type": "string", - "nullable": true - }, - "authToken": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "vcBlockList": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "RSection": { - "type": "object", - "properties": { - "rVersion": { - "type": "string", - "nullable": true - }, - "userManaged": { - "type": "boolean" - }, - "rscriptPath": { - "type": "string", - "nullable": true - }, - "snapshotDate": { - "type": "string", - "nullable": true - }, - "cranPackages": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RCranPackage" - }, - "nullable": true - }, - "gitHubPackages": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RGitHubPackage" - }, - "nullable": true - }, - "customUrlPackages": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "bioConductorPackages": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "clusterBlockList": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "GlobalJobDispatcherSupportedComputeType": { + "enum": [ + "AmlCompute", + "AmlK8s" + ], + "type": "string" + }, + "GlobsOptions": { + "type": "object", + "properties": { + "globPatterns": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "GraphAnnotationNode": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "content": { + "type": "string", + "nullable": true + }, + "mentionedNodeNames": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "RawComponentDto": { - "type": "object", - "properties": { - "componentSchema": { - "type": "string", - "nullable": true - }, - "isAnonymous": { - "type": "boolean" - }, - "name": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "type": { - "$ref": "#/components/schemas/ComponentType" - }, - "componentTypeVersion": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "isDeterministic": { - "type": "boolean" - }, - "successfulReturnCode": { - "type": "string", - "nullable": true - }, - "inputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ComponentInput" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ComponentOutput" - }, - "description": "This is a dictionary", - "nullable": true - }, - "command": { - "type": "string", - "nullable": true - }, - "environmentName": { - "type": "string", - "nullable": true - }, - "environmentVersion": { - "type": "string", - "nullable": true - }, - "snapshotId": { - "type": "string", - "nullable": true - }, - "createdBy": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - }, - "lastModifiedBy": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - }, - "createdDate": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "componentInternalId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "structuredContent": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "GraphComponentsMode": { + "enum": [ + "Normal", + "AllDesignerBuildin", + "ContainsDesignerBuildin" + ], + "type": "string" + }, + "GraphControlNode": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "controlType": { + "$ref": "#/components/schemas/ControlType" + }, + "controlParameter": { + "$ref": "#/components/schemas/ParameterAssignment" + }, + "runAttribution": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "GraphControlReferenceNode": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true }, - "RayConfiguration": { - "type": "object", - "properties": { - "port": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "address": { - "type": "string", - "nullable": true - }, - "includeDashboard": { - "type": "boolean", - "nullable": true - }, - "dashboardPort": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "headNodeAdditionalArgs": { - "type": "string", - "nullable": true - }, - "workerNodeAdditionalArgs": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "name": { + "type": "string", + "nullable": true }, - "RealTimeEndpoint": { - "type": "object", - "properties": { - "createdBy": { - "type": "string", - "nullable": true - }, - "kvTags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "state": { - "$ref": "#/components/schemas/WebServiceState" - }, - "error": { - "$ref": "#/components/schemas/ModelManagementErrorResponse" - }, - "computeType": { - "$ref": "#/components/schemas/ComputeEnvironmentType" - }, - "imageId": { - "type": "string", - "nullable": true - }, - "cpu": { - "type": "number", - "format": "double", - "nullable": true - }, - "memoryInGB": { - "type": "number", - "format": "double", - "nullable": true - }, - "maxConcurrentRequestsPerContainer": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "numReplicas": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "eventHubEnabled": { - "type": "boolean", - "nullable": true - }, - "storageEnabled": { - "type": "boolean", - "nullable": true - }, - "appInsightsEnabled": { - "type": "boolean", - "nullable": true - }, - "autoScaleEnabled": { - "type": "boolean", - "nullable": true - }, - "minReplicas": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "maxReplicas": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "targetUtilization": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "refreshPeriodInSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "scoringUri": { - "type": "string", - "format": "uri", - "nullable": true - }, - "deploymentStatus": { - "$ref": "#/components/schemas/AKSReplicaStatus" - }, - "scoringTimeoutMs": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "authEnabled": { - "type": "boolean", - "nullable": true - }, - "aadAuthEnabled": { - "type": "boolean", - "nullable": true - }, - "region": { - "type": "string", - "nullable": true - }, - "primaryKey": { - "type": "string", - "nullable": true - }, - "secondaryKey": { - "type": "string", - "nullable": true - }, - "swaggerUri": { - "type": "string", - "format": "uri", - "nullable": true - }, - "linkedPipelineDraftId": { - "type": "string", - "nullable": true - }, - "linkedPipelineRunId": { - "type": "string", - "nullable": true - }, - "warning": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "createdTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "updatedTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "computeName": { - "type": "string", - "nullable": true - }, - "updatedBy": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "comment": { + "type": "string", + "nullable": true }, - "RealTimeEndpointInfo": { - "type": "object", - "properties": { - "webServiceInputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebServicePort" - }, - "nullable": true - }, - "webServiceOutputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebServicePort" - }, - "nullable": true - }, - "deploymentsInfo": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeploymentInfo" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "RealTimeEndpointInternalStepCode": { - "enum": [ - "AboutToDeploy", - "WaitAksComputeReady", - "RegisterModels", - "CreateServiceFromModels", - "UpdateServiceFromModels", - "WaitServiceCreating", - "FetchServiceRelatedInfo", - "TestWithSampleData", - "AboutToDelete", - "DeleteDeployment", - "DeleteAsset", - "DeleteImage", - "DeleteModel", - "DeleteServiceRecord" - ], - "type": "string" - }, - "RealTimeEndpointOpCode": { - "enum": [ - "Create", - "Update", - "Delete" - ], - "type": "string" - }, - "RealTimeEndpointOpStatusCode": { - "enum": [ - "Ongoing", - "Succeeded", - "Failed", - "SucceededWithWarning" - ], - "type": "string" - }, - "RealTimeEndpointStatus": { - "type": "object", - "properties": { - "lastOperation": { - "$ref": "#/components/schemas/RealTimeEndpointOpCode" - }, - "lastOperationStatus": { - "$ref": "#/components/schemas/RealTimeEndpointOpStatusCode" - }, - "internalStep": { - "$ref": "#/components/schemas/RealTimeEndpointInternalStepCode" - }, - "statusDetail": { - "type": "string", - "nullable": true - }, - "deploymentState": { - "type": "string", - "nullable": true - }, - "serviceId": { - "type": "string", - "nullable": true - }, - "linkedPipelineDraftId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "controlFlowType": { + "$ref": "#/components/schemas/ControlFlowType" }, - "RealTimeEndpointSummary": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "createdTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "updatedTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "computeType": { - "$ref": "#/components/schemas/ComputeEnvironmentType" - }, - "computeName": { - "type": "string", - "nullable": true - }, - "updatedBy": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "referenceNodeId": { + "type": "string", + "nullable": true }, - "RealTimeEndpointTestRequest": { - "type": "object", - "properties": { - "endPoint": { - "type": "string", - "nullable": true - }, - "authKey": { - "type": "string", - "nullable": true - }, - "payload": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "doWhileControlFlowInfo": { + "$ref": "#/components/schemas/DoWhileControlFlowInfo" }, - "Recurrence": { - "type": "object", - "properties": { - "frequency": { - "$ref": "#/components/schemas/Frequency" - }, - "interval": { - "type": "integer", - "format": "int32" - }, - "schedule": { - "$ref": "#/components/schemas/RecurrenceSchedule" - }, - "endTime": { - "type": "string", - "nullable": true - }, - "startTime": { - "type": "string", - "nullable": true - }, - "timeZone": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "parallelForControlFlowInfo": { + "$ref": "#/components/schemas/ParallelForControlFlowInfo" }, - "RecurrenceFrequency": { - "enum": [ - "Minute", - "Hour", - "Day", - "Week", - "Month" - ], + "runAttribution": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "GraphDatasetNode": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "datasetId": { + "type": "string", + "nullable": true + }, + "dataPathParameterName": { + "type": "string", + "nullable": true + }, + "dataSetDefinition": { + "$ref": "#/components/schemas/DataSetDefinition" + } + }, + "additionalProperties": false + }, + "GraphDatasetsLoadModes": { + "enum": [ + "SkipDatasetsLoad", + "V1RegisteredDataset", + "V1SavedDataset", + "PersistDatasetsInfo", + "SubmissionNeededUpstreamDatasetOnly", + "SubmissionNeededInCompleteDatasetOnly", + "V2Asset", + "Submission", + "AllRegisteredData", + "AllData" + ], + "type": "string" + }, + "GraphDraftEntity": { + "type": "object", + "properties": { + "moduleNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNode" + }, + "nullable": true + }, + "datasetNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphDatasetNode" + }, + "nullable": true + }, + "subGraphNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphReferenceNode" + }, + "nullable": true + }, + "controlReferenceNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphControlReferenceNode" + }, + "nullable": true + }, + "controlNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphControlNode" + }, + "nullable": true + }, + "edges": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphEdge" + }, + "nullable": true + }, + "entityInterface": { + "$ref": "#/components/schemas/EntityInterface" + }, + "graphLayout": { + "$ref": "#/components/schemas/GraphLayout" + }, + "createdBy": { + "$ref": "#/components/schemas/CreatedBy" + }, + "lastUpdatedBy": { + "$ref": "#/components/schemas/CreatedBy" + }, + "defaultCompute": { + "$ref": "#/components/schemas/ComputeSetting" + }, + "defaultDatastore": { + "$ref": "#/components/schemas/DatastoreSetting" + }, + "defaultCloudPriority": { + "$ref": "#/components/schemas/CloudPrioritySetting" + }, + "extendedProperties": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "RecurrencePattern": { - "type": "object", - "properties": { - "hours": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - }, - "minutes": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - }, - "weekdays": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Weekday" - }, - "nullable": true - } - }, - "additionalProperties": false + "parentSubGraphModuleIds": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "RecurrenceSchedule": { - "type": "object", - "properties": { - "hours": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - }, - "minutes": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - }, - "weekDays": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WeekDays" - }, - "nullable": true - }, - "monthDays": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - } - }, - "additionalProperties": false + "id": { + "type": "string", + "nullable": true }, - "RegenerateServiceKeysRequest": { - "type": "object", - "properties": { - "keyType": { - "$ref": "#/components/schemas/KeyType" - }, - "keyValue": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "etag": { + "type": "string", + "nullable": true }, - "RegisterComponentMetaInfo": { - "type": "object", - "properties": { - "amlModuleName": { - "type": "string", - "nullable": true - }, - "nameOnlyDisplayInfo": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "moduleVersionId": { - "type": "string", - "nullable": true - }, - "snapshotId": { - "type": "string", - "nullable": true - }, - "componentRegistrationType": { - "$ref": "#/components/schemas/ComponentRegistrationTypeEnum" - }, - "moduleEntityFromYaml": { - "$ref": "#/components/schemas/ModuleEntity" - }, - "setAsDefaultVersion": { - "type": "boolean" - }, - "dataTypesFromYaml": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataTypeCreationInfo" - }, - "nullable": true - }, - "dataTypeMechanism": { - "$ref": "#/components/schemas/DataTypeMechanism" - }, - "identifierHash": { - "type": "string", - "nullable": true - }, - "identifierHashes": { - "type": "object", - "properties": { - "IdentifierHash": { - "type": "string" - }, - "IdentifierHashV2": { - "type": "string" - } - }, - "additionalProperties": false, - "nullable": true - }, - "contentHash": { - "type": "string", - "nullable": true - }, - "extraHash": { - "type": "string", - "nullable": true - }, - "extraHashes": { - "type": "object", - "properties": { - "IdentifierHash": { - "type": "string" - }, - "IdentifierHashV2": { - "type": "string" - } - }, - "additionalProperties": false, - "nullable": true - }, - "registration": { - "type": "boolean", - "nullable": true - }, - "validateOnly": { - "type": "boolean" - }, - "skipWorkspaceRelatedCheck": { - "type": "boolean" - }, - "intellectualPropertyProtectedWorkspaceComponentRegistrationAllowedPublisher": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "systemManagedRegistration": { - "type": "boolean" - }, - "allowDupNameBetweenInputAndOuputPort": { - "type": "boolean" - }, - "moduleSource": { - "type": "string", - "nullable": true - }, - "moduleScope": { - "type": "string", - "nullable": true - }, - "moduleAdditionalIncludesCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "moduleOSType": { - "type": "string", - "nullable": true - }, - "moduleCodegenBy": { - "type": "string", - "nullable": true - }, - "moduleClientSource": { - "type": "string", - "nullable": true - }, - "moduleIsBuiltin": { - "type": "boolean" - }, - "moduleRegisterEventExtensionFields": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "createdDate": { + "type": "string", + "format": "date-time" }, - "RegisterRegistryComponentMetaInfo": { - "type": "object", - "properties": { - "registryName": { - "type": "string", - "nullable": true - }, - "intellectualPropertyPublisherInformation": { - "$ref": "#/components/schemas/IntellectualPropertyPublisherInformation" - }, - "blobReferenceData": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/RegistryBlobReferenceData" - }, - "description": "This is a dictionary", - "nullable": true - }, - "amlModuleName": { - "type": "string", - "nullable": true - }, - "nameOnlyDisplayInfo": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "moduleVersionId": { - "type": "string", - "nullable": true - }, - "snapshotId": { - "type": "string", - "nullable": true - }, - "componentRegistrationType": { - "$ref": "#/components/schemas/ComponentRegistrationTypeEnum" - }, - "moduleEntityFromYaml": { - "$ref": "#/components/schemas/ModuleEntity" - }, - "setAsDefaultVersion": { - "type": "boolean" - }, - "dataTypesFromYaml": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataTypeCreationInfo" - }, - "nullable": true - }, - "dataTypeMechanism": { - "$ref": "#/components/schemas/DataTypeMechanism" - }, - "identifierHash": { - "type": "string", - "nullable": true - }, - "identifierHashes": { - "type": "object", - "properties": { - "IdentifierHash": { - "type": "string" - }, - "IdentifierHashV2": { - "type": "string" - } - }, - "additionalProperties": false, - "nullable": true - }, - "contentHash": { - "type": "string", - "nullable": true - }, - "extraHash": { - "type": "string", - "nullable": true - }, - "extraHashes": { - "type": "object", - "properties": { - "IdentifierHash": { - "type": "string" - }, - "IdentifierHashV2": { - "type": "string" - } - }, - "additionalProperties": false, - "nullable": true - }, - "registration": { - "type": "boolean", - "nullable": true - }, - "validateOnly": { - "type": "boolean" - }, - "skipWorkspaceRelatedCheck": { - "type": "boolean" - }, - "intellectualPropertyProtectedWorkspaceComponentRegistrationAllowedPublisher": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "systemManagedRegistration": { - "type": "boolean" - }, - "allowDupNameBetweenInputAndOuputPort": { - "type": "boolean" - }, - "moduleSource": { - "type": "string", - "nullable": true - }, - "moduleScope": { - "type": "string", - "nullable": true - }, - "moduleAdditionalIncludesCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "moduleOSType": { - "type": "string", - "nullable": true - }, - "moduleCodegenBy": { - "type": "string", - "nullable": true - }, - "moduleClientSource": { - "type": "string", - "nullable": true - }, - "moduleIsBuiltin": { - "type": "boolean" - }, - "moduleRegisterEventExtensionFields": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "GraphEdge": { + "type": "object", + "properties": { + "sourceOutputPort": { + "$ref": "#/components/schemas/PortInfo" + }, + "destinationInputPort": { + "$ref": "#/components/schemas/PortInfo" + } + }, + "additionalProperties": false + }, + "GraphLayout": { + "type": "object", + "properties": { + "nodeLayouts": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/NodeLayout" + }, + "description": "This is a dictionary", + "nullable": true + }, + "extendedData": { + "type": "string", + "nullable": true + }, + "annotationNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphAnnotationNode" + }, + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "etag": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "GraphLayoutCreationInfo": { + "type": "object", + "properties": { + "nodeLayouts": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/NodeLayout" + }, + "description": "This is a dictionary", + "nullable": true + }, + "extendedData": { + "type": "string", + "nullable": true + }, + "annotationNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphAnnotationNode" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "GraphModuleNode": { + "type": "object", + "properties": { + "moduleType": { + "$ref": "#/components/schemas/ModuleType" + }, + "runconfig": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "moduleId": { + "type": "string", + "nullable": true + }, + "comment": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "moduleParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParameterAssignment" + }, + "nullable": true + }, + "moduleMetadataParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParameterAssignment" + }, + "nullable": true + }, + "moduleOutputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OutputSetting" + }, + "nullable": true + }, + "moduleInputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InputSetting" + }, + "nullable": true + }, + "useGraphDefaultCompute": { + "type": "boolean" + }, + "useGraphDefaultDatastore": { + "type": "boolean" + }, + "regenerateOutput": { + "type": "boolean" + }, + "controlInputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ControlInput" + }, + "nullable": true + }, + "cloudSettings": { + "$ref": "#/components/schemas/CloudSettings" + }, + "executionPhase": { + "$ref": "#/components/schemas/ExecutionPhase" + }, + "runAttribution": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "GraphModuleNodeRunSetting": { + "type": "object", + "properties": { + "nodeId": { + "type": "string", + "nullable": true + }, + "moduleId": { + "type": "string", + "nullable": true + }, + "stepType": { + "type": "string", + "nullable": true + }, + "runSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameterAssignment" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "GraphModuleNodeUIInputSetting": { + "type": "object", + "properties": { + "nodeId": { + "type": "string", + "nullable": true + }, + "moduleId": { + "type": "string", + "nullable": true + }, + "moduleInputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UIInputSetting" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "GraphNodeStatusInfo": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/TaskStatusCode" }, - "RegisteredDataSetReference": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "runStatus": { + "$ref": "#/components/schemas/RunStatus" }, - "RegistrationOptions": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "datasetRegistrationOptions": { - "$ref": "#/components/schemas/DatasetRegistrationOptions" - } - }, - "additionalProperties": false + "isBypassed": { + "type": "boolean" }, - "RegistryBlobReferenceData": { - "type": "object", - "properties": { - "dataReferenceId": { - "type": "string", - "nullable": true - }, - "data": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "hasFailedChildRun": { + "type": "boolean" }, - "RegistryIdentity": { - "type": "object", - "properties": { - "resourceId": { - "type": "string", - "nullable": true - }, - "clientId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "partiallyExecuted": { + "type": "boolean" }, - "Relationship": { - "type": "object", - "properties": { - "relationType": { - "type": "string", - "nullable": true - }, - "targetEntityId": { - "type": "string", - "nullable": true - }, - "assetId": { - "type": "string", - "nullable": true - }, - "entityType": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "direction": { - "type": "string", - "nullable": true - }, - "entityContainerId": { - "type": "string", - "nullable": true, - "readOnly": true - } - } + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "aetherStartTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "aetherEndTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "aetherCreationTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "runHistoryStartTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "runHistoryEndTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "runHistoryCreationTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "reuseInfo": { + "$ref": "#/components/schemas/TaskReuseInfo" + }, + "controlFlowInfo": { + "$ref": "#/components/schemas/TaskControlFlowInfo" + }, + "statusCode": { + "$ref": "#/components/schemas/TaskStatusCode" + }, + "statusDetail": { + "type": "string", + "nullable": true + }, + "creationTime": { + "type": "string", + "format": "date-time" + }, + "scheduleTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "startTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "requestId": { + "type": "string", + "nullable": true + }, + "runId": { + "type": "string", + "nullable": true + }, + "dataContainerId": { + "type": "string", + "nullable": true + }, + "realTimeLogPath": { + "type": "string", + "nullable": true + }, + "hasWarnings": { + "type": "boolean" + }, + "compositeNodeId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "GraphReferenceNode": { + "type": "object", + "properties": { + "graphId": { + "type": "string", + "nullable": true + }, + "defaultCompute": { + "$ref": "#/components/schemas/ComputeSetting" + }, + "defaultDatastore": { + "$ref": "#/components/schemas/DatastoreSetting" + }, + "id": { + "type": "string", + "nullable": true + }, + "moduleId": { + "type": "string", + "nullable": true + }, + "comment": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "moduleParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParameterAssignment" + }, + "nullable": true + }, + "moduleMetadataParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParameterAssignment" + }, + "nullable": true + }, + "moduleOutputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OutputSetting" + }, + "nullable": true + }, + "moduleInputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InputSetting" + }, + "nullable": true + }, + "useGraphDefaultCompute": { + "type": "boolean" + }, + "useGraphDefaultDatastore": { + "type": "boolean" + }, + "regenerateOutput": { + "type": "boolean" + }, + "controlInputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ControlInput" + }, + "nullable": true + }, + "cloudSettings": { + "$ref": "#/components/schemas/CloudSettings" + }, + "executionPhase": { + "$ref": "#/components/schemas/ExecutionPhase" + }, + "runAttribution": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "GraphSdkCodeType": { + "enum": [ + "Python", + "JupyterNotebook", + "Unknown" + ], + "type": "string" + }, + "HdfsReference": { + "type": "object", + "properties": { + "amlDataStoreName": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "HdiClusterComputeInfo": { + "type": "object", + "properties": { + "address": { + "type": "string", + "nullable": true + }, + "username": { + "type": "string", + "nullable": true + }, + "password": { + "type": "string", + "nullable": true + }, + "privateKey": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "HdiConfiguration": { + "type": "object", + "properties": { + "yarnDeployMode": { + "$ref": "#/components/schemas/YarnDeployMode" + } + }, + "additionalProperties": false + }, + "HdiRunConfiguration": { + "type": "object", + "properties": { + "file": { + "type": "string", + "nullable": true + }, + "className": { + "type": "string", + "nullable": true + }, + "files": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "RemoteDockerComputeInfo": { - "type": "object", - "properties": { - "address": { - "type": "string", - "nullable": true - }, - "username": { - "type": "string", - "nullable": true - }, - "password": { - "type": "string", - "nullable": true - }, - "privateKey": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "archives": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "ResourceConfig": { - "type": "object", - "properties": { - "gpuCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "cpuCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "memoryRequestInGB": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "jars": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "ResourceConfiguration": { - "type": "object", - "properties": { - "gpuCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "cpuCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "memoryRequestInGB": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "pyFiles": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "computeName": { + "type": "string", + "nullable": true + }, + "queue": { + "type": "string", + "nullable": true + }, + "driverMemory": { + "type": "string", + "nullable": true + }, + "driverCores": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "executorMemory": { + "type": "string", + "nullable": true + }, + "executorCores": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "numberExecutors": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "conf": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "HistoryConfiguration": { + "type": "object", + "properties": { + "outputCollection": { + "type": "boolean", + "default": true + }, + "directoriesToWatch": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "logs" + ], + "nullable": true + }, + "enableMLflowTracking": { + "type": "boolean", + "default": true + } + } + }, + "HttpStatusCode": { + "enum": [ + "Continue", + "SwitchingProtocols", + "Processing", + "EarlyHints", + "OK", + "Created", + "Accepted", + "NonAuthoritativeInformation", + "NoContent", + "ResetContent", + "PartialContent", + "MultiStatus", + "AlreadyReported", + "IMUsed", + "MultipleChoices", + "Ambiguous", + "MovedPermanently", + "Moved", + "Found", + "Redirect", + "SeeOther", + "RedirectMethod", + "NotModified", + "UseProxy", + "Unused", + "TemporaryRedirect", + "RedirectKeepVerb", + "PermanentRedirect", + "BadRequest", + "Unauthorized", + "PaymentRequired", + "Forbidden", + "NotFound", + "MethodNotAllowed", + "NotAcceptable", + "ProxyAuthenticationRequired", + "RequestTimeout", + "Conflict", + "Gone", + "LengthRequired", + "PreconditionFailed", + "RequestEntityTooLarge", + "RequestUriTooLong", + "UnsupportedMediaType", + "RequestedRangeNotSatisfiable", + "ExpectationFailed", + "MisdirectedRequest", + "UnprocessableEntity", + "Locked", + "FailedDependency", + "UpgradeRequired", + "PreconditionRequired", + "TooManyRequests", + "RequestHeaderFieldsTooLarge", + "UnavailableForLegalReasons", + "InternalServerError", + "NotImplemented", + "BadGateway", + "ServiceUnavailable", + "GatewayTimeout", + "HttpVersionNotSupported", + "VariantAlsoNegotiates", + "InsufficientStorage", + "LoopDetected", + "NotExtended", + "NetworkAuthenticationRequired" + ], + "type": "string" + }, + "HyperDriveConfiguration": { + "type": "object", + "properties": { + "hyperDriveRunConfig": { + "type": "string", + "nullable": true + }, + "primaryMetricGoal": { + "type": "string", + "nullable": true + }, + "primaryMetricName": { + "type": "string", + "nullable": true + }, + "arguments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArgumentAssignment" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "IActionResult": { + "type": "object", + "additionalProperties": false + }, + "ICheckableLongRunningOperationResponse": { + "type": "object", + "properties": { + "completionResult": { + "$ref": "#/components/schemas/LongRunningNullResponse" + }, + "location": { + "type": "string", + "format": "uri", + "nullable": true + }, + "operationResult": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "additionalProperties": false + }, + "IdentityConfiguration": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/IdentityType" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "ResourcesSetting": { - "type": "object", - "properties": { - "instanceSize": { - "type": "string", - "nullable": true - }, - "sparkVersion": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "secret": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "IdentitySetting": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/AEVAIdentityType" + }, + "clientId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "objectId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "msiResourceId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "IdentityType": { + "enum": [ + "Managed", + "ServicePrincipal", + "AMLToken" + ], + "type": "string" + }, + "ImportDataTask": { + "type": "object", + "properties": { + "DataTransferSource": { + "$ref": "#/components/schemas/DataTransferSource" + } + }, + "additionalProperties": false + }, + "IndexedErrorResponse": { + "type": "object", + "properties": { + "code": { + "type": "string", + "nullable": true + }, + "errorCodeHierarchy": { + "type": "string", + "nullable": true + }, + "message": { + "type": "string", + "nullable": true + }, + "time": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "componentName": { + "type": "string", + "nullable": true + }, + "severity": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "detailsUri": { + "type": "string", + "format": "uri", + "nullable": true + }, + "referenceCode": { + "type": "string", + "nullable": true + } + } + }, + "InitScriptInfoDto": { + "type": "object", + "properties": { + "dbfs": { + "$ref": "#/components/schemas/DbfsStorageInfoDto" + } + }, + "additionalProperties": false + }, + "InnerErrorDetails": { + "type": "object", + "properties": { + "code": { + "type": "string", + "nullable": true + }, + "message": { + "type": "string", + "nullable": true + }, + "target": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "InnerErrorResponse": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "nullable": true + }, + "innerError": { + "$ref": "#/components/schemas/InnerErrorResponse" + } + }, + "additionalProperties": false, + "description": "A nested structure of errors." + }, + "InputAsset": { + "type": "object", + "properties": { + "asset": { + "$ref": "#/components/schemas/Asset" + }, + "mechanism": { + "$ref": "#/components/schemas/DeliveryMechanism" + }, + "environmentVariableName": { + "type": "string", + "nullable": true + }, + "pathOnCompute": { + "type": "string", + "nullable": true + }, + "overwrite": { + "type": "boolean" + }, + "options": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "InputData": { + "type": "object", + "properties": { + "datasetId": { + "type": "string", + "nullable": true + }, + "mode": { + "$ref": "#/components/schemas/DataBindingMode" + }, + "value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "InputDataBinding": { + "type": "object", + "properties": { + "dataId": { + "type": "string", + "nullable": true }, - "ResumeBulkRunRequest": { - "type": "object", - "properties": { - "runId": { - "type": "string", - "nullable": true - }, - "runDisplayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "resumeFromRunId": { - "type": "string", - "nullable": true - }, - "runtimeName": { - "type": "string", - "nullable": true - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "maxIdleTimeSeconds": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "identity": { - "type": "string", - "nullable": true - }, - "computeName": { - "type": "string", - "nullable": true - }, - "enableMultiContainer": { - "type": "boolean" - } - }, - "additionalProperties": false + "pathOnCompute": { + "type": "string", + "nullable": true }, - "RetrieveToolFuncResultRequest": { - "type": "object", - "properties": { - "func_path": { - "type": "string", - "nullable": true - }, - "func_kwargs": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary", - "nullable": true - }, - "func_call_scenario": { - "$ref": "#/components/schemas/ToolFuncCallScenario" - } - }, - "additionalProperties": false + "mode": { + "$ref": "#/components/schemas/DataBindingMode" }, - "RetryConfiguration": { - "type": "object", - "properties": { - "maxRetryCount": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "description": { + "type": "string", + "nullable": true }, - "RootError": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The service-defined error code. Supported error codes: ServiceError, UserError, ValidationError, AzureStorageError, TransientError, RequestThrottled.", - "nullable": true - }, - "severity": { - "type": "integer", - "description": "The Severity of error", - "format": "int32", - "nullable": true - }, - "message": { - "type": "string", - "description": "A human-readable representation of the error.", - "nullable": true - }, - "messageFormat": { - "type": "string", - "description": "An unformatted version of the message with no variable substitution.", - "nullable": true - }, - "messageParameters": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "description": "Value substitutions corresponding to the contents of MessageFormat.", - "nullable": true - }, - "referenceCode": { - "type": "string", - "description": "This code can optionally be set by the system generating the error.\r\nIt should be used to classify the problem and identify the module and code area where the failure occured.", - "nullable": true - }, - "detailsUri": { - "type": "string", - "description": "A URI which points to more details about the context of the error.", - "format": "uri", - "nullable": true - }, - "target": { - "type": "string", - "description": "The target of the error (e.g., the name of the property in error).", - "nullable": true - }, - "details": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RootError" - }, - "description": "The related errors that occurred during the request.", - "nullable": true - }, - "innerError": { - "$ref": "#/components/schemas/InnerErrorResponse" - }, - "additionalInfo": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ErrorAdditionalInfo" - }, - "description": "The error additional info.", - "nullable": true - } - }, - "additionalProperties": false, - "description": "The root error." + "uri": { + "$ref": "#/components/schemas/MfeInternalUriReference" }, - "RunAnnotations": { - "type": "object", - "properties": { - "displayName": { - "type": "string", - "nullable": true - }, - "status": { - "type": "string", - "nullable": true - }, - "primaryMetricName": { - "type": "string", - "nullable": true - }, - "estimatedCost": { - "type": "number", - "format": "double", - "nullable": true - }, - "primaryMetricSummary": { - "$ref": "#/components/schemas/RunIndexMetricSummary" - }, - "metrics": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/RunIndexMetricSummarySystemObject" - }, - "nullable": true - }, - "parameters": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - }, - "settings": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "modifiedTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "retainForLifetimeOfWorkspace": { - "type": "boolean", - "nullable": true - }, - "error": { - "$ref": "#/components/schemas/IndexedErrorResponse" - }, - "resourceMetricSummary": { - "$ref": "#/components/schemas/RunIndexResourceMetricSummary" - }, - "jobCost": { - "$ref": "#/components/schemas/JobCost" - }, - "computeDuration": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "computeDurationMilliseconds": { - "type": "number", - "format": "double", - "nullable": true - }, - "effectiveStartTimeUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "archived": { - "type": "boolean" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - } + "value": { + "type": "string", + "nullable": true }, - "RunCommandsCommandResult": { - "type": "object", - "properties": { - "command": { - "type": "string", - "nullable": true - }, - "arguments": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "exit_code": { - "type": "integer", - "format": "int32" - }, - "stdout": { - "type": "string", - "nullable": true - }, - "stderr": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "assetUri": { + "type": "string", + "nullable": true }, - "RunConfiguration": { - "type": "object", - "properties": { - "script": { - "type": "string", - "nullable": true - }, - "scriptType": { - "$ref": "#/components/schemas/ScriptType" - }, - "command": { - "type": "string", - "nullable": true - }, - "useAbsolutePath": { - "type": "boolean" - }, - "arguments": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "framework": { - "$ref": "#/components/schemas/Framework" - }, - "communicator": { - "$ref": "#/components/schemas/Communicator" - }, - "target": { - "type": "string", - "nullable": true - }, - "autoClusterComputeSpecification": { - "$ref": "#/components/schemas/AutoClusterComputeSpecification" - }, - "dataReferences": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DataReferenceConfiguration" - }, - "nullable": true - }, - "data": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Data" - }, - "nullable": true - }, - "inputAssets": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/InputAsset" - }, - "nullable": true - }, - "outputData": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/OutputData" - }, - "nullable": true - }, - "datacaches": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DatacacheConfiguration" - }, - "nullable": true - }, - "jobName": { - "type": "string", - "nullable": true - }, - "maxRunDurationSeconds": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "nodeCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "maxNodeCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "instanceTypes": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "priority": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "credentialPassthrough": { - "type": "boolean" - }, - "identity": { - "$ref": "#/components/schemas/IdentityConfiguration" - }, - "environment": { - "$ref": "#/components/schemas/EnvironmentDefinition" - }, - "history": { - "$ref": "#/components/schemas/HistoryConfiguration" - }, - "spark": { - "$ref": "#/components/schemas/SparkConfiguration" - }, - "parallelTask": { - "$ref": "#/components/schemas/ParallelTaskConfiguration" - }, - "tensorflow": { - "$ref": "#/components/schemas/TensorflowConfiguration" - }, - "mpi": { - "$ref": "#/components/schemas/MpiConfiguration" - }, - "pyTorch": { - "$ref": "#/components/schemas/PyTorchConfiguration" - }, - "ray": { - "$ref": "#/components/schemas/RayConfiguration" - }, - "hdi": { - "$ref": "#/components/schemas/HdiConfiguration" - }, - "docker": { - "$ref": "#/components/schemas/DockerConfiguration" - }, - "commandReturnCodeConfig": { - "$ref": "#/components/schemas/CommandReturnCodeConfig" - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "applicationEndpoints": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ApplicationEndpointConfiguration" - }, - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParameterDefinition" - }, - "nullable": true - }, - "autologgerSettings": { - "$ref": "#/components/schemas/AutologgerSettings" - }, - "dataBricks": { - "$ref": "#/components/schemas/DatabricksConfiguration" - }, - "trainingDiagnosticConfig": { - "$ref": "#/components/schemas/TrainingDiagnosticConfiguration" - }, - "secretsConfiguration": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/SecretConfiguration" - }, - "nullable": true - } - }, - "additionalProperties": false + "jobInputType": { + "$ref": "#/components/schemas/JobInputType" + } + }, + "additionalProperties": false + }, + "InputDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "type": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueType" + }, + "nullable": true + }, + "default": { + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "enum": { + "type": "array", + "items": { }, + "nullable": true + }, + "enabled_by": { + "type": "string", + "nullable": true + }, + "enabled_by_type": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueType" + }, + "nullable": true + }, + "enabled_by_value": { + "type": "array", + "items": { }, + "nullable": true + }, + "model_list": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "RunDatasetReference": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "capabilities": { + "$ref": "#/components/schemas/AzureOpenAIModelCapabilities" }, - "RunDefinition": { - "type": "object", - "properties": { - "configuration": { - "$ref": "#/components/schemas/RunConfiguration" - }, - "snapshotId": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "snapshots": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Snapshot" - }, - "nullable": true - }, - "parentRunId": { - "type": "string", - "nullable": true - }, - "runType": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "environmentAssetId": { - "type": "string", - "nullable": true - }, - "primaryMetricName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "cancelReason": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "dynamic_list": { + "$ref": "#/components/schemas/ToolInputDynamicList" }, - "RunDetailsDto": { - "type": "object", - "properties": { - "runId": { - "type": "string", - "nullable": true - }, - "runUuid": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "parentRunUuid": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "rootRunUuid": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "target": { - "type": "string", - "nullable": true - }, - "status": { - "type": "string", - "nullable": true - }, - "parentRunId": { - "type": "string", - "nullable": true - }, - "dataContainerId": { - "type": "string", - "nullable": true - }, - "createdTimeUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "startTimeUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "endTimeUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "error": { - "$ref": "#/components/schemas/ErrorResponse" - }, - "warnings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunDetailsWarningDto" - }, - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "parameters": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - }, - "services": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/EndpointSetting" - }, - "description": "This is a dictionary", - "nullable": true - }, - "inputDatasets": { - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/components/schemas/DatasetLineage" - }, - "nullable": true - }, - "outputDatasets": { - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/components/schemas/OutputDatasetLineage" - }, - "nullable": true - }, - "runDefinition": { - "nullable": true - }, - "logFiles": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "jobCost": { - "$ref": "#/components/schemas/JobCost" - }, - "revision": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "runTypeV2": { - "$ref": "#/components/schemas/RunTypeV2" - }, - "settings": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "computeRequest": { - "$ref": "#/components/schemas/ComputeRequest" - }, - "compute": { - "$ref": "#/components/schemas/Compute" - }, - "createdBy": { - "$ref": "#/components/schemas/User" - }, - "computeDuration": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "effectiveStartTimeUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "runNumber": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "rootRunId": { - "type": "string", - "nullable": true - }, - "experimentId": { - "type": "string", - "nullable": true - }, - "userId": { - "type": "string", - "nullable": true - }, - "statusRevision": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "currentComputeTime": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "lastStartTimeUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "lastModifiedBy": { - "$ref": "#/components/schemas/User" - }, - "lastModifiedUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "duration": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "inputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TypedAssetReference" - }, - "nullable": true - }, - "outputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TypedAssetReference" - }, - "nullable": true - }, - "currentAttemptId": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "allow_manual_entry": { + "type": "boolean" }, - "RunDetailsWarningDto": { - "type": "object", - "properties": { - "source": { - "type": "string", - "nullable": true - }, - "message": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "is_multi_select": { + "type": "boolean" + }, + "generated_by": { + "$ref": "#/components/schemas/ToolInputGeneratedBy" + }, + "input_type": { + "$ref": "#/components/schemas/InputType" + }, + "advanced": { + "type": "boolean", + "nullable": true }, - "RunDisplayNameGenerationType": { - "enum": [ - "AutoAppend", - "UserProvidedMacro" - ], + "ui_hints": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "InputOutputPortMetadata": { + "type": "object", + "properties": { + "graphModuleNodeId": { + "type": "string", + "nullable": true + }, + "portName": { + "type": "string", + "nullable": true + }, + "schema": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false + }, + "InputSetting": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "dataStoreMode": { + "$ref": "#/components/schemas/AEVADataStoreMode" + }, + "pathOnCompute": { + "type": "string", + "nullable": true + }, + "options": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "RunDto": { - "type": "object", - "properties": { - "runNumber": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "rootRunId": { - "type": "string", - "nullable": true - }, - "createdUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "createdBy": { - "$ref": "#/components/schemas/User" - }, - "userId": { - "type": "string", - "nullable": true - }, - "token": { - "type": "string", - "nullable": true - }, - "tokenExpiryTimeUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "error": { - "$ref": "#/components/schemas/ErrorResponse" - }, - "warnings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunDetailsWarningDto" - }, - "nullable": true - }, - "revision": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "statusRevision": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "runUuid": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "parentRunUuid": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "rootRunUuid": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "lastStartTimeUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "currentComputeTime": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "computeDuration": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "effectiveStartTimeUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "lastModifiedBy": { - "$ref": "#/components/schemas/User" - }, - "lastModifiedUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "duration": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "cancelationReason": { - "type": "string", - "nullable": true - }, - "currentAttemptId": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "runId": { - "type": "string", - "nullable": true - }, - "parentRunId": { - "type": "string", - "nullable": true - }, - "experimentId": { - "type": "string", - "nullable": true - }, - "status": { - "type": "string", - "nullable": true - }, - "startTimeUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "endTimeUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduleId": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "dataContainerId": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "hidden": { - "type": "boolean", - "nullable": true - }, - "runType": { - "type": "string", - "nullable": true - }, - "runTypeV2": { - "$ref": "#/components/schemas/RunTypeV2" - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "parameters": { - "type": "object", - "additionalProperties": { - "nullable": true - }, - "nullable": true - }, - "actionUris": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "scriptName": { - "type": "string", - "nullable": true - }, - "target": { - "type": "string", - "nullable": true - }, - "uniqueChildRunComputeTargets": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "settings": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "services": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/EndpointSetting" - }, - "nullable": true - }, - "inputDatasets": { - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/components/schemas/DatasetLineage" - }, - "nullable": true - }, - "outputDatasets": { - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/components/schemas/OutputDatasetLineage" - }, - "nullable": true - }, - "runDefinition": { - "nullable": true - }, - "jobSpecification": { - "nullable": true - }, - "primaryMetricName": { - "type": "string", - "nullable": true - }, - "createdFrom": { - "$ref": "#/components/schemas/CreatedFromDto" - }, - "cancelUri": { - "type": "string", - "nullable": true - }, - "completeUri": { - "type": "string", - "nullable": true - }, - "diagnosticsUri": { - "type": "string", - "nullable": true - }, - "computeRequest": { - "$ref": "#/components/schemas/ComputeRequest" - }, - "compute": { - "$ref": "#/components/schemas/Compute" - }, - "retainForLifetimeOfWorkspace": { - "type": "boolean", - "nullable": true - }, - "queueingInfo": { - "$ref": "#/components/schemas/QueueingInfo" - }, - "inputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TypedAssetReference" - }, - "nullable": true - }, - "outputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TypedAssetReference" - }, - "nullable": true - } - }, - "additionalProperties": false + "additionalTransformations": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "InputType": { + "enum": [ + "default", + "uionly_hidden" + ], + "type": "string" + }, + "IntellectualPropertyAccessMode": { + "enum": [ + "ReadOnly", + "ReadWrite" + ], + "type": "string" + }, + "IntellectualPropertyPublisherInformation": { + "type": "object", + "properties": { + "intellectualPropertyPublisher": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "InteractiveConfig": { + "type": "object", + "properties": { + "isSSHEnabled": { + "type": "boolean", + "nullable": true + }, + "sshPublicKey": { + "type": "string", + "nullable": true + }, + "isIPythonEnabled": { + "type": "boolean", + "nullable": true + }, + "isTensorBoardEnabled": { + "type": "boolean", + "nullable": true + }, + "interactivePort": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "InteractiveConfiguration": { + "type": "object", + "properties": { + "isSSHEnabled": { + "type": "boolean", + "nullable": true + }, + "sshPublicKey": { + "type": "string", + "nullable": true + }, + "isIPythonEnabled": { + "type": "boolean", + "nullable": true + }, + "isTensorBoardEnabled": { + "type": "boolean", + "nullable": true + }, + "interactivePort": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "JobCost": { + "type": "object", + "properties": { + "chargedCpuCoreSeconds": { + "type": "number", + "format": "double", + "nullable": true + }, + "chargedCpuMemoryMegabyteSeconds": { + "type": "number", + "format": "double", + "nullable": true + }, + "chargedGpuSeconds": { + "type": "number", + "format": "double", + "nullable": true + }, + "chargedNodeUtilizationSeconds": { + "type": "number", + "format": "double", + "nullable": true + } + } + }, + "JobEndpoint": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "port": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "endpoint": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "nullable": true + }, + "errorMessage": { + "type": "string", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "RunIndexEntity": { - "type": "object", - "properties": { - "schemaId": { - "type": "string", - "nullable": true - }, - "entityId": { - "type": "string", - "nullable": true - }, - "kind": { - "$ref": "#/components/schemas/EntityKind" - }, - "annotations": { - "$ref": "#/components/schemas/RunAnnotations" - }, - "properties": { - "$ref": "#/components/schemas/RunProperties" - }, - "internal": { - "$ref": "#/components/schemas/ExtensibleObject" - }, - "updateSequence": { - "type": "integer", - "format": "int64" - }, - "type": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "entityContainerId": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "entityObjectId": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "resourceType": { - "type": "string", - "nullable": true, - "readOnly": true - }, - "relationships": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Relationship" - }, - "nullable": true - }, - "assetId": { - "type": "string", - "nullable": true - }, - "usage": { - "$ref": "#/components/schemas/EntityUsage" - }, - "isAFragment": { - "type": "boolean" - }, - "fragmentId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "nodes": { + "$ref": "#/components/schemas/MfeInternalNodes" + } + }, + "additionalProperties": false + }, + "JobInput": { + "required": [ + "jobInputType" + ], + "type": "object", + "properties": { + "jobInputType": { + "$ref": "#/components/schemas/JobInputType" + }, + "description": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JobInputType": { + "enum": [ + "Dataset", + "Uri", + "Literal", + "UriFile", + "UriFolder", + "MLTable", + "CustomModel", + "MLFlowModel", + "TritonModel" + ], + "type": "string" + }, + "JobLimitsType": { + "enum": [ + "Command", + "Sweep" + ], + "type": "string" + }, + "JobOutput": { + "required": [ + "jobOutputType" + ], + "type": "object", + "properties": { + "jobOutputType": { + "$ref": "#/components/schemas/JobOutputType" + }, + "description": { + "type": "string", + "nullable": true + }, + "autoDeleteSetting": { + "$ref": "#/components/schemas/AutoDeleteSetting" + } + }, + "additionalProperties": false + }, + "JobOutputArtifacts": { + "type": "object", + "properties": { + "datastoreId": { + "type": "string", + "nullable": true + }, + "path": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "JobOutputType": { + "enum": [ + "Uri", + "Dataset", + "UriFile", + "UriFolder", + "MLTable", + "CustomModel", + "MLFlowModel", + "TritonModel" + ], + "type": "string" + }, + "JobProvisioningState": { + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "InProgress" + ], + "type": "string" + }, + "JobScheduleDto": { + "type": "object", + "properties": { + "jobType": { + "$ref": "#/components/schemas/JobType" }, - "RunIndexMetricSummary": { - "type": "object", - "properties": { - "count": { - "type": "integer", - "format": "int64" - }, - "lastValue": { - "nullable": true - }, - "minimumValue": { - "nullable": true - }, - "maximumValue": { - "nullable": true - }, - "metricType": { - "type": "string", - "nullable": true - } - } + "systemData": { + "$ref": "#/components/schemas/SystemData" }, - "RunIndexMetricSummarySystemObject": { - "type": "object", - "properties": { - "count": { - "type": "integer", - "format": "int64" - }, - "lastValue": { - "nullable": true - }, - "minimumValue": { - "nullable": true - }, - "maximumValue": { - "nullable": true - }, - "metricType": { - "type": "string", - "nullable": true - } - } + "name": { + "type": "string", + "nullable": true }, - "RunIndexResourceMetricSummary": { - "type": "object", - "properties": { - "gpuUtilizationPercentLastHour": { - "type": "number", - "format": "double", - "nullable": true - }, - "gpuMemoryUtilizationPercentLastHour": { - "type": "number", - "format": "double", - "nullable": true - }, - "gpuEnergyJoules": { - "type": "number", - "format": "double", - "nullable": true - }, - "resourceMetricNames": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - } + "jobDefinitionId": { + "type": "string", + "nullable": true }, - "RunMetricDto": { - "type": "object", - "properties": { - "runId": { - "type": "string", - "nullable": true - }, - "metricId": { - "type": "string", - "format": "uuid" - }, - "dataContainerId": { - "type": "string", - "nullable": true - }, - "metricType": { - "type": "string", - "nullable": true - }, - "createdUtc": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "label": { - "type": "string", - "nullable": true - }, - "numCells": { - "type": "integer", - "format": "int32" - }, - "dataLocation": { - "type": "string", - "nullable": true - }, - "cells": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary" - }, - "nullable": true - }, - "schema": { - "$ref": "#/components/schemas/MetricSchemaDto" - } - }, - "additionalProperties": false + "displayName": { + "type": "string", + "nullable": true }, - "RunMetricsTypesDto": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "triggerType": { + "$ref": "#/components/schemas/TriggerType" }, - "RunProperties": { - "type": "object", - "properties": { - "dataContainerId": { - "type": "string", - "nullable": true - }, - "targetName": { - "type": "string", - "nullable": true - }, - "runName": { - "type": "string", - "nullable": true - }, - "experimentName": { - "type": "string", - "nullable": true - }, - "runId": { - "type": "string", - "nullable": true - }, - "parentRunId": { - "type": "string", - "nullable": true - }, - "rootRunId": { - "type": "string", - "nullable": true - }, - "runType": { - "type": "string", - "nullable": true - }, - "runTypeV2": { - "$ref": "#/components/schemas/RunTypeV2Index" - }, - "scriptName": { - "type": "string", - "nullable": true - }, - "experimentId": { - "type": "string", - "nullable": true - }, - "runUuid": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "parentRunUuid": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "runNumber": { - "type": "integer", - "format": "int32" - }, - "startTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "endTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "computeRequest": { - "$ref": "#/components/schemas/ComputeRequest" - }, - "compute": { - "$ref": "#/components/schemas/Compute" - }, - "userProperties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "actionUris": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "duration": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "durationMilliseconds": { - "type": "number", - "format": "double", - "nullable": true - }, - "creationContext": { - "$ref": "#/components/schemas/CreationContext" - } - } + "recurrence": { + "$ref": "#/components/schemas/Recurrence" }, - "RunSettingParameter": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "label": { - "type": "string", - "nullable": true - }, - "parameterType": { - "$ref": "#/components/schemas/RunSettingParameterType" - }, - "isOptional": { - "type": "boolean", - "nullable": true - }, - "defaultValue": { - "type": "string", - "nullable": true - }, - "lowerBound": { - "type": "string", - "nullable": true - }, - "upperBound": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "runSettingUIHint": { - "$ref": "#/components/schemas/RunSettingUIParameterHint" - }, - "argumentName": { - "type": "string", - "nullable": true - }, - "sectionName": { - "type": "string", - "nullable": true - }, - "sectionDescription": { - "type": "string", - "nullable": true - }, - "sectionArgumentName": { - "type": "string", - "nullable": true - }, - "examples": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "enumValues": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "enumValuesToArgumentStrings": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "enabledByParameterName": { - "type": "string", - "nullable": true - }, - "enabledByParameterValues": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "disabledByParameters": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "moduleRunSettingType": { - "$ref": "#/components/schemas/ModuleRunSettingTypes" - }, - "linkedParameterDefaultValueMapping": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "linkedParameterKeyName": { - "type": "string", - "nullable": true - }, - "supportLinkSetting": { - "type": "boolean" - } - }, - "additionalProperties": false + "cron": { + "$ref": "#/components/schemas/Cron" }, - "RunSettingParameterAssignment": { - "type": "object", - "properties": { - "useGraphDefaultCompute": { - "type": "boolean", - "nullable": true - }, - "mlcComputeType": { - "type": "string", - "nullable": true - }, - "computeRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameterAssignment" - }, - "nullable": true - }, - "linkedParameterName": { - "type": "string", - "nullable": true - }, - "valueType": { - "$ref": "#/components/schemas/ParameterValueType" - }, - "assignmentsToConcatenate": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParameterAssignment" - }, - "nullable": true - }, - "dataPathAssignment": { - "$ref": "#/components/schemas/LegacyDataPath" - }, - "dataSetDefinitionValueAssignment": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - }, - "name": { - "type": "string", - "nullable": true - }, - "value": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "RunSettingParameterType": { - "enum": [ - "Undefined", - "Int", - "Double", - "Bool", - "String", - "JsonString", - "YamlString", - "StringList" - ], - "type": "string" - }, - "RunSettingUIParameterHint": { - "type": "object", - "properties": { - "uiWidgetType": { - "$ref": "#/components/schemas/RunSettingUIWidgetTypeEnum" - }, - "jsonEditor": { - "$ref": "#/components/schemas/UIJsonEditor" - }, - "yamlEditor": { - "$ref": "#/components/schemas/UIYamlEditor" - }, - "computeSelection": { - "$ref": "#/components/schemas/UIComputeSelection" - }, - "hyperparameterConfiguration": { - "$ref": "#/components/schemas/UIHyperparameterConfiguration" - }, - "uxIgnore": { - "type": "boolean" - }, - "anonymous": { - "type": "boolean" - }, - "supportReset": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "RunSettingUIWidgetTypeEnum": { - "enum": [ - "Default", - "ComputeSelection", - "JsonEditor", - "Mode", - "SearchSpaceParameter", - "SectionToggle", - "YamlEditor", - "EnableRuntimeSweep", - "DataStoreSelection", - "Checkbox", - "MultipleSelection", - "HyperparameterConfiguration", - "JsonTextBox", - "Connection", - "Static" - ], - "type": "string" - }, - "RunStatus": { - "enum": [ - "NotStarted", - "Unapproved", - "Pausing", - "Paused", - "Starting", - "Preparing", - "Queued", - "Running", - "Finalizing", - "CancelRequested", - "Completed", - "Failed", - "Canceled" - ], - "type": "string" - }, - "RunStatusPeriod": { + "status": { + "$ref": "#/components/schemas/ScheduleStatus" + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "JobStatus": { + "enum": [ + "NotStarted", + "Starting", + "Provisioning", + "Preparing", + "Queued", + "Running", + "Finalizing", + "CancelRequested", + "Completed", + "Failed", + "Canceled", + "NotResponding", + "Paused", + "Unknown", + "Scheduled" + ], + "type": "string" + }, + "JobType": { + "enum": [ + "Command", + "Sweep", + "Labeling", + "Pipeline", + "Data", + "AutoML", + "Spark", + "Base", + "FineTuning" + ], + "type": "string" + }, + "K8sConfiguration": { + "type": "object", + "properties": { + "maxRetryCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "resourceConfiguration": { + "$ref": "#/components/schemas/ResourceConfig" + }, + "priorityConfiguration": { + "$ref": "#/components/schemas/PriorityConfig" + }, + "interactiveConfiguration": { + "$ref": "#/components/schemas/InteractiveConfig" + } + }, + "additionalProperties": false + }, + "KeyType": { + "enum": [ + "Primary", + "Secondary" + ], + "type": "string" + }, + "KeyValuePairComponentNameMetaInfoErrorResponse": { + "type": "object", + "properties": { + "key": { + "$ref": "#/components/schemas/ComponentNameMetaInfo" + }, + "value": { + "$ref": "#/components/schemas/ErrorResponse" + } + }, + "additionalProperties": false + }, + "KeyValuePairComponentNameMetaInfoModuleDto": { + "type": "object", + "properties": { + "key": { + "$ref": "#/components/schemas/ComponentNameMetaInfo" + }, + "value": { + "$ref": "#/components/schemas/ModuleDto" + } + }, + "additionalProperties": false + }, + "KeyValuePairStringObject": { + "type": "object", + "properties": { + "key": { + "type": "string", + "nullable": true + }, + "value": { + "nullable": true + } + }, + "additionalProperties": false + }, + "KubernetesConfiguration": { + "type": "object", + "properties": { + "instanceType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Kwarg": { + "type": "object", + "properties": { + "key": { + "type": "string", + "nullable": true + }, + "value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LegacyDataPath": { + "type": "object", + "properties": { + "dataStoreName": { + "type": "string", + "nullable": true + }, + "dataStoreMode": { + "$ref": "#/components/schemas/AEVADataStoreMode" + }, + "relativePath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LimitSettings": { + "type": "object", + "properties": { + "maxTrials": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "timeout": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "trialTimeout": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "maxConcurrentTrials": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxCoresPerTrial": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "exitScore": { + "type": "number", + "format": "double", + "nullable": true + }, + "enableEarlyTermination": { + "type": "boolean", + "nullable": true + }, + "maxNodes": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "LinkedADBWorkspaceMetadata": { + "type": "object", + "properties": { + "workspaceId": { + "type": "string", + "nullable": true + }, + "region": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "LinkedPipelineInfo": { + "type": "object", + "properties": { + "pipelineType": { + "$ref": "#/components/schemas/PipelineType" + }, + "moduleNodeId": { + "type": "string", + "nullable": true + }, + "portName": { + "type": "string", + "nullable": true + }, + "linkedPipelineDraftId": { + "type": "string", + "nullable": true + }, + "linkedPipelineRunId": { + "type": "string", + "nullable": true + }, + "isDirectLink": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ListViewType": { + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "type": "string" + }, + "LoadFlowAsComponentRequest": { + "type": "object", + "properties": { + "componentName": { + "type": "string", + "nullable": true + }, + "componentVersion": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "isDeterministic": { + "type": "boolean" + }, + "flowDefinitionFilePath": { + "type": "string", + "nullable": true + }, + "flowDefinitionResourceId": { + "type": "string", + "nullable": true + }, + "flowDefinitionDataStoreName": { + "type": "string", + "nullable": true + }, + "flowDefinitionBlobPath": { + "type": "string", + "nullable": true + }, + "flowDefinitionDataUri": { + "type": "string", + "nullable": true + }, + "nodeVariant": { + "type": "string", + "nullable": true + }, + "inputsMapping": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "connections": { + "type": "object", + "additionalProperties": { "type": "object", - "properties": { - "status": { - "$ref": "#/components/schemas/RunStatus" - }, - "subPeriods": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubStatusPeriod" - }, - "nullable": true - }, - "start": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "end": { - "type": "integer", - "format": "int64", - "nullable": true - } + "additionalProperties": { + "type": "string" }, - "additionalProperties": false + "description": "This is a dictionary" + }, + "description": "This is a dictionary", + "nullable": true + }, + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "runtimeName": { + "type": "string", + "nullable": true + }, + "sessionId": { + "type": "string", + "nullable": true + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "maxIdleTimeSeconds": { + "type": "integer", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false + }, + "LogLevel": { + "enum": [ + "Trace", + "Debug", + "Information", + "Warning", + "Error", + "Critical", + "None" + ], + "type": "string" + }, + "LogRunTerminatedEventDto": { + "type": "object", + "properties": { + "nextActionIntervalInSeconds": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "actionType": { + "$ref": "#/components/schemas/ActionType" + }, + "lastCheckedTime": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "LogVerbosity": { + "enum": [ + "NotSet", + "Debug", + "Info", + "Warning", + "Error", + "Critical" + ], + "type": "string" + }, + "LongRunningNullResponse": { + "type": "object", + "additionalProperties": false + }, + "LongRunningOperationUriResponse": { + "type": "object", + "properties": { + "location": { + "type": "string", + "format": "uri", + "nullable": true + }, + "operationResult": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "additionalProperties": false + }, + "LongRunningUpdateRegistryComponentRequest": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "registryName": { + "type": "string", + "nullable": true + }, + "componentName": { + "type": "string", + "nullable": true + }, + "componentVersion": { + "type": "string", + "nullable": true + }, + "updateType": { + "$ref": "#/components/schemas/LongRunningUpdateType" + } + }, + "additionalProperties": false + }, + "LongRunningUpdateType": { + "enum": [ + "EnableModule", + "DisableModule", + "UpdateDisplayName", + "UpdateDescription", + "UpdateTags" + ], + "type": "string" + }, + "MLFlowAutologgerState": { + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string" + }, + "ManagedServiceIdentity": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ManagedServiceIdentityType" + }, + "principalId": { + "type": "string", + "format": "uuid" + }, + "tenantId": { + "type": "string", + "format": "uuid" + }, + "userAssignedIdentities": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/UserAssignedIdentity" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ManagedServiceIdentityType": { + "enum": [ + "SystemAssigned", + "UserAssigned", + "SystemAssignedUserAssigned", + "None" + ], + "type": "string" + }, + "MavenLibraryDto": { + "type": "object", + "properties": { + "coordinates": { + "type": "string", + "nullable": true + }, + "repo": { + "type": "string", + "nullable": true + }, + "exclusions": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "MetricProperties": { + "type": "object", + "properties": { + "uxMetricType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "MetricSchemaDto": { + "type": "object", + "properties": { + "numProperties": { + "type": "integer", + "format": "int32" + }, + "properties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetricSchemaPropertyDto" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "MetricSchemaPropertyDto": { + "type": "object", + "properties": { + "propertyId": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "MetricV2Dto": { + "type": "object", + "properties": { + "dataContainerId": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "columns": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/MetricValueType" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "$ref": "#/components/schemas/MetricProperties" + }, + "namespace": { + "type": "string", + "nullable": true + }, + "standardSchemaId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetricV2Value" + }, + "nullable": true + }, + "continuationToken": { + "type": "string", + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "nullable": true + }, + "nextLink": { + "type": "string", + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "nullable": true + } + }, + "additionalProperties": false + }, + "MetricV2Value": { + "type": "object", + "properties": { + "metricId": { + "type": "string", + "nullable": true + }, + "createdUtc": { + "type": "string", + "format": "date-time" + }, + "step": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "data": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + }, + "sasUri": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "additionalProperties": false + }, + "MetricValueType": { + "enum": [ + "Int", + "Double", + "String", + "Bool", + "Artifact", + "Histogram", + "Malformed" + ], + "type": "string" + }, + "MfeInternalAutologgerSettings": { + "type": "object", + "properties": { + "mlflowAutologger": { + "$ref": "#/components/schemas/MfeInternalMLFlowAutologgerState" + } + }, + "additionalProperties": false + }, + "MfeInternalIdentityConfiguration": { + "type": "object", + "properties": { + "identityType": { + "$ref": "#/components/schemas/MfeInternalIdentityType" + } + }, + "additionalProperties": false + }, + "MfeInternalIdentityType": { + "enum": [ + "Managed", + "AMLToken", + "UserIdentity" + ], + "type": "string" + }, + "MfeInternalMLFlowAutologgerState": { + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string" + }, + "MfeInternalNodes": { + "type": "object", + "properties": { + "nodesValueType": { + "$ref": "#/components/schemas/MfeInternalNodesValueType" + } + }, + "additionalProperties": false + }, + "MfeInternalNodesValueType": { + "enum": [ + "All" + ], + "type": "string" + }, + "MfeInternalOutputData": { + "type": "object", + "properties": { + "datasetName": { + "type": "string", + "nullable": true + }, + "datastore": { + "type": "string", + "nullable": true + }, + "datapath": { + "type": "string", + "nullable": true + }, + "mode": { + "$ref": "#/components/schemas/DataBindingMode" + } + }, + "additionalProperties": false + }, + "MfeInternalPipelineType": { + "enum": [ + "AzureML" + ], + "type": "string" + }, + "MfeInternalScheduleStatus": { + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string" + }, + "MfeInternalSecretConfiguration": { + "type": "object", + "properties": { + "workspaceSecretName": { + "type": "string", + "nullable": true + }, + "uri": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "MfeInternalUriReference": { + "type": "object", + "properties": { + "file": { + "type": "string", + "nullable": true + }, + "folder": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "MfeInternalV20211001ComponentJob": { + "type": "object", + "properties": { + "computeId": { + "type": "string", + "nullable": true + }, + "componentId": { + "type": "string", + "nullable": true + }, + "inputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/JobInput" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/JobOutput" + }, + "description": "This is a dictionary", + "nullable": true + }, + "overrides": { + "nullable": true + } + }, + "additionalProperties": false + }, + "MinMaxParameterRule": { + "type": "object", + "properties": { + "min": { + "type": "number", + "format": "double", + "nullable": true + }, + "max": { + "type": "number", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false + }, + "MlcComputeInfo": { + "type": "object", + "properties": { + "mlcComputeType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ModelDto": { + "type": "object", + "properties": { + "feedName": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "amlDataStoreName": { + "type": "string", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + }, + "systemData": { + "$ref": "#/components/schemas/SystemData" + }, + "armId": { + "type": "string", + "nullable": true + }, + "onlineEndpointYamlStr": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ModelManagementErrorResponse": { + "type": "object", + "properties": { + "code": { + "type": "string", + "nullable": true + }, + "statusCode": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string", + "nullable": true + }, + "target": { + "type": "string", + "nullable": true + }, + "details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InnerErrorDetails" + }, + "nullable": true + }, + "correlation": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ModifyPipelineJobScheduleDto": { + "type": "object", + "properties": { + "pipelineJobName": { + "type": "string", + "nullable": true + }, + "pipelineJobRuntimeSettings": { + "$ref": "#/components/schemas/PipelineJobRuntimeBasicSettings" + }, + "displayName": { + "type": "string", + "nullable": true + }, + "triggerType": { + "$ref": "#/components/schemas/TriggerType" + }, + "recurrence": { + "$ref": "#/components/schemas/Recurrence" + }, + "cron": { + "$ref": "#/components/schemas/Cron" + }, + "status": { + "$ref": "#/components/schemas/ScheduleStatus" + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "ModuleDto": { + "type": "object", + "properties": { + "namespace": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "dictTags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "moduleVersionId": { + "type": "string", + "nullable": true + }, + "feedName": { + "type": "string", + "nullable": true + }, + "registryName": { + "type": "string", + "nullable": true + }, + "moduleName": { + "type": "string", + "nullable": true + }, + "moduleVersion": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "owner": { + "type": "string", + "nullable": true + }, + "jobType": { + "type": "string", + "nullable": true + }, + "defaultVersion": { + "type": "string", + "nullable": true + }, + "familyId": { + "type": "string", + "nullable": true + }, + "helpDocument": { + "type": "string", + "nullable": true + }, + "codegenBy": { + "type": "string", + "nullable": true + }, + "armId": { + "type": "string", + "nullable": true + }, + "moduleScope": { + "$ref": "#/components/schemas/ModuleScope" + }, + "moduleEntity": { + "$ref": "#/components/schemas/ModuleEntity" + }, + "inputTypes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "outputTypes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "entityStatus": { + "$ref": "#/components/schemas/EntityStatus" + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + }, + "yamlLink": { + "type": "string", + "nullable": true + }, + "yamlLinkWithCommitSha": { + "type": "string", + "nullable": true + }, + "moduleSourceType": { + "$ref": "#/components/schemas/ModuleSourceType" + }, + "registeredBy": { + "type": "string", + "nullable": true + }, + "versions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureMLModuleVersionDescriptor" + }, + "nullable": true + }, + "isDefaultModuleVersion": { + "type": "boolean", + "nullable": true + }, + "systemData": { + "$ref": "#/components/schemas/SystemData" + }, + "systemMeta": { + "$ref": "#/components/schemas/SystemMeta" + }, + "snapshotId": { + "type": "string", + "nullable": true + }, + "entry": { + "type": "string", + "nullable": true + }, + "osType": { + "type": "string", + "nullable": true + }, + "requireGpu": { + "type": "boolean", + "nullable": true + }, + "modulePythonInterface": { + "$ref": "#/components/schemas/ModulePythonInterface" + }, + "environmentAssetId": { + "type": "string", + "nullable": true + }, + "runSettingParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameter" + }, + "nullable": true + }, + "supportedUIInputDataDeliveryModes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UIInputDataDeliveryMode" + }, + "nullable": true + }, + "nullable": true + }, + "outputSettingSpecs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/OutputSettingSpec" + }, + "nullable": true + }, + "yamlStr": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ModuleDtoFields": { + "enum": [ + "Definition", + "YamlStr", + "RegistrationContext", + "RunSettingParameters", + "RunDefinition", + "All", + "Default", + "Basic", + "Minimal" + ], + "type": "string" + }, + "ModuleDtoWithErrors": { + "type": "object", + "properties": { + "versionIdToModuleDto": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ModuleDto" + }, + "description": "This is a dictionary", + "nullable": true + }, + "nameAndVersionToModuleDto": { + "type": "array", + "items": { + "$ref": "#/components/schemas/KeyValuePairComponentNameMetaInfoModuleDto" + }, + "nullable": true + }, + "versionIdToError": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "description": "This is a dictionary", + "nullable": true + }, + "nameAndVersionToError": { + "type": "array", + "items": { + "$ref": "#/components/schemas/KeyValuePairComponentNameMetaInfoErrorResponse" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ModuleDtoWithValidateStatus": { + "type": "object", + "properties": { + "existingModuleEntity": { + "$ref": "#/components/schemas/ModuleEntity" + }, + "status": { + "$ref": "#/components/schemas/ModuleInfoFromYamlStatusEnum" + }, + "statusDetails": { + "type": "string", + "nullable": true + }, + "errorDetails": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "serializedModuleInfo": { + "type": "string", + "nullable": true + }, + "namespace": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "dictTags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "moduleVersionId": { + "type": "string", + "nullable": true + }, + "feedName": { + "type": "string", + "nullable": true + }, + "registryName": { + "type": "string", + "nullable": true + }, + "moduleName": { + "type": "string", + "nullable": true + }, + "moduleVersion": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "owner": { + "type": "string", + "nullable": true + }, + "jobType": { + "type": "string", + "nullable": true + }, + "defaultVersion": { + "type": "string", + "nullable": true + }, + "familyId": { + "type": "string", + "nullable": true + }, + "helpDocument": { + "type": "string", + "nullable": true + }, + "codegenBy": { + "type": "string", + "nullable": true + }, + "armId": { + "type": "string", + "nullable": true + }, + "moduleScope": { + "$ref": "#/components/schemas/ModuleScope" + }, + "moduleEntity": { + "$ref": "#/components/schemas/ModuleEntity" + }, + "inputTypes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "outputTypes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "entityStatus": { + "$ref": "#/components/schemas/EntityStatus" + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + }, + "yamlLink": { + "type": "string", + "nullable": true + }, + "yamlLinkWithCommitSha": { + "type": "string", + "nullable": true + }, + "moduleSourceType": { + "$ref": "#/components/schemas/ModuleSourceType" + }, + "registeredBy": { + "type": "string", + "nullable": true + }, + "versions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureMLModuleVersionDescriptor" + }, + "nullable": true + }, + "isDefaultModuleVersion": { + "type": "boolean", + "nullable": true + }, + "systemData": { + "$ref": "#/components/schemas/SystemData" + }, + "systemMeta": { + "$ref": "#/components/schemas/SystemMeta" + }, + "snapshotId": { + "type": "string", + "nullable": true + }, + "entry": { + "type": "string", + "nullable": true + }, + "osType": { + "type": "string", + "nullable": true + }, + "requireGpu": { + "type": "boolean", + "nullable": true + }, + "modulePythonInterface": { + "$ref": "#/components/schemas/ModulePythonInterface" + }, + "environmentAssetId": { + "type": "string", + "nullable": true + }, + "runSettingParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameter" + }, + "nullable": true + }, + "supportedUIInputDataDeliveryModes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UIInputDataDeliveryMode" + }, + "nullable": true + }, + "nullable": true + }, + "outputSettingSpecs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/OutputSettingSpec" + }, + "nullable": true + }, + "yamlStr": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ModuleEntity": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "nullable": true + }, + "moduleExecutionType": { + "type": "string", + "nullable": true + }, + "moduleType": { + "$ref": "#/components/schemas/ModuleType" + }, + "moduleTypeVersion": { + "type": "string", + "nullable": true + }, + "uploadState": { + "$ref": "#/components/schemas/UploadState" + }, + "isDeterministic": { + "type": "boolean" + }, + "structuredInterface": { + "$ref": "#/components/schemas/StructuredInterface" + }, + "dataLocation": { + "$ref": "#/components/schemas/DataLocation" + }, + "identifierHash": { + "type": "string", + "nullable": true + }, + "identifierHashV2": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "createdBy": { + "$ref": "#/components/schemas/CreatedBy" + }, + "lastUpdatedBy": { + "$ref": "#/components/schemas/CreatedBy" + }, + "runconfig": { + "type": "string", + "nullable": true + }, + "cloudSettings": { + "$ref": "#/components/schemas/CloudSettings" + }, + "category": { + "type": "string", + "nullable": true + }, + "stepType": { + "type": "string", + "nullable": true + }, + "stage": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "hash": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "entityStatus": { + "$ref": "#/components/schemas/EntityStatus" + }, + "id": { + "type": "string", + "nullable": true + }, + "etag": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "ModuleInfoFromYamlStatusEnum": { + "enum": [ + "NewModule", + "NewVersion", + "Conflict", + "ParseError", + "ProcessRequestError" + ], + "type": "string" + }, + "ModulePythonInterface": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PythonInterfaceMapping" + }, + "nullable": true + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PythonInterfaceMapping" + }, + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PythonInterfaceMapping" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ModuleRunSettingTypes": { + "enum": [ + "All", + "Released", + "Default", + "Testing", + "Legacy", + "Preview", + "UxFull", + "Integration", + "UxIntegration", + "Full" + ], + "type": "string" + }, + "ModuleScope": { + "enum": [ + "All", + "Global", + "Workspace", + "Anonymous", + "Step", + "Draft", + "Feed", + "Registry", + "SystemAutoCreated" + ], + "type": "string" + }, + "ModuleSourceType": { + "enum": [ + "Unknown", + "Local", + "GithubFile", + "GithubFolder", + "DevopsArtifactsZip", + "SerializedModuleInfo" + ], + "type": "string" + }, + "ModuleType": { + "enum": [ + "None", + "BatchInferencing" + ], + "type": "string" + }, + "ModuleUpdateOperationType": { + "enum": [ + "SetDefaultVersion", + "EnableModule", + "DisableModule", + "UpdateDisplayName", + "UpdateDescription", + "UpdateTags" + ], + "type": "string" + }, + "ModuleWorkingMechanism": { + "enum": [ + "Normal", + "OutputToDataset" + ], + "type": "string" + }, + "MpiConfiguration": { + "type": "object", + "properties": { + "processCountPerNode": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "NCrossValidationMode": { + "enum": [ + "Auto", + "Custom" + ], + "type": "string" + }, + "NCrossValidations": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/NCrossValidationMode" + }, + "value": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Node": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ToolType" + }, + "source": { + "$ref": "#/components/schemas/NodeSource" + }, + "inputs": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + }, + "tool": { + "type": "string", + "nullable": true + }, + "reduce": { + "type": "boolean" + }, + "activate": { + "$ref": "#/components/schemas/Activate" + }, + "use_variants": { + "type": "boolean" + }, + "comment": { + "type": "string", + "nullable": true + }, + "api": { + "type": "string", + "nullable": true + }, + "provider": { + "type": "string", + "nullable": true + }, + "connection": { + "type": "string", + "nullable": true + }, + "module": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "NodeCompositionMode": { + "enum": [ + "None", + "OnlySequential", + "Full" + ], + "type": "string" + }, + "NodeInputPort": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "documentation": { + "type": "string", + "nullable": true + }, + "dataTypesIds": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "isOptional": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "NodeLayout": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float" + }, + "y": { + "type": "number", + "format": "float" + }, + "width": { + "type": "number", + "format": "float" + }, + "height": { + "type": "number", + "format": "float" + }, + "extendedData": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "NodeOutputPort": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "documentation": { + "type": "string", + "nullable": true + }, + "dataTypeId": { + "type": "string", + "nullable": true + }, + "passThroughInputName": { + "type": "string", + "nullable": true + }, + "EarlyAvailable": { + "type": "boolean" + }, + "dataStoreMode": { + "$ref": "#/components/schemas/AEVADataStoreMode" + } + }, + "additionalProperties": false + }, + "NodePortInterface": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NodeInputPort" + }, + "nullable": true + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NodeOutputPort" + }, + "nullable": true + }, + "controlOutputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ControlOutput" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "NodeSource": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "tool": { + "type": "string", + "nullable": true + }, + "path": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "NodeTelemetryMetaInfo": { + "type": "object", + "properties": { + "pipelineRunId": { + "type": "string", + "nullable": true + }, + "nodeId": { + "type": "string", + "nullable": true + }, + "versionId": { + "type": "string", + "nullable": true + }, + "nodeType": { + "type": "string", + "nullable": true + }, + "nodeSource": { + "type": "string", + "nullable": true + }, + "isAnonymous": { + "type": "boolean" + }, + "isPipelineComponent": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "NodeVariant": { + "type": "object", + "properties": { + "variants": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/VariantNode" + }, + "description": "This is a dictionary", + "nullable": true + }, + "defaultVariantId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Nodes": { + "required": [ + "nodes_value_type" + ], + "type": "object", + "properties": { + "nodes_value_type": { + "$ref": "#/components/schemas/NodesValueType" + }, + "values": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "NodesValueType": { + "enum": [ + "All", + "Custom" + ], + "type": "string" + }, + "NoteBookTaskDto": { + "type": "object", + "properties": { + "notebook_path": { + "type": "string", + "nullable": true + }, + "base_parameters": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "NotificationSetting": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "emailOn": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmailNotificationEnableType" + }, + "nullable": true + }, + "webhooks": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Webhook" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ODataError": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Gets or sets a language-independent, service-defined error code.\r\nThis code serves as a sub-status for the HTTP error code specified\r\nin the response.", + "nullable": true + }, + "message": { + "type": "string", + "description": "Gets or sets a human-readable, language-dependent representation of the error.\r\nThe `Content-Language` header MUST contain the language code from [RFC5646]\r\ncorresponding to the language in which the value for message is written.", + "nullable": true + }, + "target": { + "type": "string", + "description": "Gets or sets the target of the particular error\r\n(for example, the name of the property in error).", + "nullable": true + }, + "details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ODataErrorDetail" + }, + "description": "Gets or sets additional details about the error.", + "nullable": true + }, + "innererror": { + "$ref": "#/components/schemas/ODataInnerError" + } + }, + "additionalProperties": false, + "description": "Represents OData v4 error object." + }, + "ODataErrorDetail": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Gets or sets a language-independent, service-defined error code.", + "nullable": true + }, + "message": { + "type": "string", + "description": "Gets or sets a human-readable, language-dependent representation of the error.", + "nullable": true + }, + "target": { + "type": "string", + "description": "Gets or sets the target of the particular error\r\n(for example, the name of the property in error).", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Represents additional error details." + }, + "ODataErrorResponse": { + "type": "object", + "properties": { + "error": { + "$ref": "#/components/schemas/ODataError" + } + }, + "additionalProperties": false, + "description": "Represents OData v4 compliant error response message." + }, + "ODataInnerError": { + "type": "object", + "properties": { + "clientRequestId": { + "type": "string", + "description": "Gets or sets the client provided request ID.", + "nullable": true + }, + "serviceRequestId": { + "type": "string", + "description": "Gets or sets the server generated request ID.", + "nullable": true + }, + "trace": { + "type": "string", + "description": "Gets or sets the exception stack trace.\r\nDO NOT INCLUDE IT IN PRODUCTION ENVIRONMENT.", + "nullable": true + }, + "context": { + "type": "string", + "description": "Gets or sets additional context for the exception.\r\nDO NOT INCLUDE IT IN PRODUCTION ENVIRONMENT.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The contents of this object are service-defined.\r\nUsually this object contains information that will help debug the service\r\nand SHOULD only be used in development environments in order to guard\r\nagainst potential security concerns around information disclosure." + }, + "Orientation": { + "enum": [ + "Horizontal", + "Vertical" + ], + "type": "string" + }, + "OutputData": { + "type": "object", + "properties": { + "outputLocation": { + "$ref": "#/components/schemas/ExecutionDataLocation" + }, + "mechanism": { + "$ref": "#/components/schemas/OutputMechanism" + }, + "additionalOptions": { + "$ref": "#/components/schemas/OutputOptions" + }, + "environmentVariableName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "OutputDataBinding": { + "type": "object", + "properties": { + "datastoreId": { + "type": "string", + "nullable": true + }, + "pathOnDatastore": { + "type": "string", + "nullable": true + }, + "pathOnCompute": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "uri": { + "$ref": "#/components/schemas/MfeInternalUriReference" + }, + "mode": { + "$ref": "#/components/schemas/DataBindingMode" + }, + "assetUri": { + "type": "string", + "nullable": true + }, + "isAssetJobOutput": { + "type": "boolean", + "nullable": true + }, + "jobOutputType": { + "$ref": "#/components/schemas/JobOutputType" + }, + "assetName": { + "type": "string", + "nullable": true + }, + "assetVersion": { + "type": "string", + "nullable": true + }, + "autoDeleteSetting": { + "$ref": "#/components/schemas/AutoDeleteSetting" + } + }, + "additionalProperties": false + }, + "OutputDatasetLineage": { + "type": "object", + "properties": { + "identifier": { + "$ref": "#/components/schemas/DatasetIdentifier" + }, + "outputType": { + "$ref": "#/components/schemas/DatasetOutputType" + }, + "outputDetails": { + "$ref": "#/components/schemas/DatasetOutputDetails" + } + }, + "additionalProperties": false + }, + "OutputDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "type": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueType" + }, + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "isProperty": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "OutputMechanism": { + "enum": [ + "Upload", + "Mount", + "Hdfs", + "Link", + "Direct" + ], + "type": "string" + }, + "OutputOptions": { + "type": "object", + "properties": { + "pathOnCompute": { + "type": "string", + "nullable": true + }, + "registrationOptions": { + "$ref": "#/components/schemas/RegistrationOptions" + }, + "uploadOptions": { + "$ref": "#/components/schemas/UploadOptions" + }, + "mountOptions": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "OutputSetting": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "dataStoreName": { + "type": "string", + "nullable": true + }, + "DataStoreNameParameterAssignment": { + "$ref": "#/components/schemas/ParameterAssignment" + }, + "dataStoreMode": { + "$ref": "#/components/schemas/AEVADataStoreMode" + }, + "DataStoreModeParameterAssignment": { + "$ref": "#/components/schemas/ParameterAssignment" + }, + "pathOnCompute": { + "type": "string", + "nullable": true + }, + "PathOnComputeParameterAssignment": { + "$ref": "#/components/schemas/ParameterAssignment" + }, + "overwrite": { + "type": "boolean" + }, + "dataReferenceName": { + "type": "string", + "nullable": true + }, + "webServicePort": { + "type": "string", + "nullable": true + }, + "datasetRegistration": { + "$ref": "#/components/schemas/DatasetRegistration" + }, + "datasetOutputOptions": { + "$ref": "#/components/schemas/DatasetOutputOptions" + }, + "AssetOutputSettings": { + "$ref": "#/components/schemas/AssetOutputSettings" + }, + "parameterName": { + "type": "string", + "nullable": true + }, + "AssetOutputSettingsParameterName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "OutputSettingSpec": { + "type": "object", + "properties": { + "supportedDataStoreModes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AEVADataStoreMode" + }, + "nullable": true + }, + "defaultAssetOutputPath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "PaginatedDataInfoList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataInfo" + }, + "description": "An array of objects of type DataInfo.", + "nullable": true + }, + "continuationToken": { + "type": "string", + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "nullable": true + }, + "nextLink": { + "type": "string", + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A paginated list of DataInfos." + }, + "PaginatedModelDtoList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelDto" + }, + "description": "An array of objects of type ModelDto.", + "nullable": true + }, + "continuationToken": { + "type": "string", + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "nullable": true + }, + "nextLink": { + "type": "string", + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A paginated list of ModelDtos." + }, + "PaginatedModuleDtoList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ModuleDto" + }, + "description": "An array of objects of type ModuleDto.", + "nullable": true + }, + "continuationToken": { + "type": "string", + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "nullable": true + }, + "nextLink": { + "type": "string", + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A paginated list of ModuleDtos." + }, + "PaginatedPipelineDraftSummaryList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineDraftSummary" + }, + "description": "An array of objects of type PipelineDraftSummary.", + "nullable": true + }, + "continuationToken": { + "type": "string", + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "nullable": true + }, + "nextLink": { + "type": "string", + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A paginated list of PipelineDraftSummarys." + }, + "PaginatedPipelineEndpointSummaryList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineEndpointSummary" + }, + "description": "An array of objects of type PipelineEndpointSummary.", + "nullable": true + }, + "continuationToken": { + "type": "string", + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "nullable": true + }, + "nextLink": { + "type": "string", + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A paginated list of PipelineEndpointSummarys." + }, + "PaginatedPipelineRunSummaryList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineRunSummary" + }, + "description": "An array of objects of type PipelineRunSummary.", + "nullable": true + }, + "continuationToken": { + "type": "string", + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "nullable": true + }, + "nextLink": { + "type": "string", + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A paginated list of PipelineRunSummarys." + }, + "PaginatedPublishedPipelineSummaryList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublishedPipelineSummary" + }, + "description": "An array of objects of type PublishedPipelineSummary.", + "nullable": true + }, + "continuationToken": { + "type": "string", + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "nullable": true + }, + "nextLink": { + "type": "string", + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "A paginated list of PublishedPipelineSummarys." + }, + "ParallelForControlFlowInfo": { + "type": "object", + "properties": { + "parallelForItemsInput": { + "$ref": "#/components/schemas/ParameterAssignment" + } + }, + "additionalProperties": false + }, + "ParallelTaskConfiguration": { + "type": "object", + "properties": { + "maxRetriesPerWorker": { + "type": "integer", + "format": "int32" + }, + "workerCountPerNode": { + "type": "integer", + "format": "int32" + }, + "terminalExitCodes": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "configuration": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Parameter": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "documentation": { + "type": "string", + "nullable": true + }, + "defaultValue": { + "type": "string", + "nullable": true + }, + "isOptional": { + "type": "boolean" + }, + "minMaxRules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MinMaxParameterRule" + }, + "nullable": true + }, + "enumRules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnumParameterRule" + }, + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ParameterType" + }, + "label": { + "type": "string", + "nullable": true + }, + "groupNames": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "argumentName": { + "type": "string", + "nullable": true + }, + "uiHint": { + "$ref": "#/components/schemas/UIParameterHint" + } + }, + "additionalProperties": false + }, + "ParameterAssignment": { + "type": "object", + "properties": { + "valueType": { + "$ref": "#/components/schemas/ParameterValueType" + }, + "assignmentsToConcatenate": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParameterAssignment" + }, + "nullable": true + }, + "dataPathAssignment": { + "$ref": "#/components/schemas/LegacyDataPath" + }, + "dataSetDefinitionValueAssignment": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + }, + "name": { + "type": "string", + "nullable": true + }, + "value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ParameterDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + }, + "value": { + "type": "string", + "nullable": true + }, + "isOptional": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ParameterType": { + "enum": [ + "Int", + "Double", + "Bool", + "String", + "Undefined" + ], + "type": "string" + }, + "ParameterValueType": { + "enum": [ + "Literal", + "GraphParameterName", + "Concatenate", + "Input", + "DataPath", + "DataSetDefinition" + ], + "type": "string" + }, + "PatchFlowRequest": { + "type": "object", + "properties": { + "flowPatchOperationType": { + "$ref": "#/components/schemas/FlowPatchOperationType" + }, + "flowDefinitionFilePath": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Pipeline": { + "type": "object", + "properties": { + "runId": { + "type": "string", + "nullable": true + }, + "continueRunOnStepFailure": { + "type": "boolean" + }, + "defaultDatastoreName": { + "type": "string", + "nullable": true + }, + "componentJobs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ComponentJob" + }, + "description": "This is a dictionary", + "nullable": true + }, + "inputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/PipelineInput" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/PipelineOutput" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "PipelineDraft": { + "type": "object", + "properties": { + "graphDraftId": { + "type": "string", + "nullable": true + }, + "sourcePipelineRunId": { + "type": "string", + "nullable": true + }, + "latestPipelineRunId": { + "type": "string", + "nullable": true + }, + "latestRunExperimentName": { + "type": "string", + "nullable": true + }, + "latestRunExperimentId": { + "type": "string", + "nullable": true + }, + "isLatestRunExperimentArchived": { + "type": "boolean", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/PipelineStatus" + }, + "graphDetail": { + "$ref": "#/components/schemas/PipelineRunGraphDetail" + }, + "realTimeEndpointInfo": { + "$ref": "#/components/schemas/RealTimeEndpointInfo" + }, + "linkedPipelinesInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LinkedPipelineInfo" + }, + "nullable": true + }, + "nodesInDraft": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "studioMigrationInfo": { + "$ref": "#/components/schemas/StudioMigrationInfo" + }, + "flattenedSubGraphs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/PipelineSubDraft" + }, + "nullable": true + }, + "pipelineRunSettingParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameter" + }, + "nullable": true + }, + "pipelineRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameterAssignment" + }, + "nullable": true + }, + "continueRunOnStepFailure": { + "type": "boolean" + }, + "continueRunOnFailedOptionalInput": { + "type": "boolean" + }, + "defaultCompute": { + "$ref": "#/components/schemas/ComputeSetting" + }, + "defaultDatastore": { + "$ref": "#/components/schemas/DatastoreSetting" + }, + "defaultCloudPriority": { + "$ref": "#/components/schemas/CloudPrioritySetting" + }, + "enforceRerun": { + "type": "boolean", + "nullable": true + }, + "pipelineParameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataPathAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/LegacyDataPath" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataSetDefinitionValueAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + }, + "description": "This is a dictionary", + "nullable": true + }, + "assetOutputSettingsAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AssetOutputSettings" + }, + "description": "This is a dictionary", + "nullable": true + }, + "pipelineTimeout": { + "type": "integer", + "format": "int32" + }, + "identityConfig": { + "$ref": "#/components/schemas/IdentitySetting" + }, + "graphComponentsMode": { + "$ref": "#/components/schemas/GraphComponentsMode" + }, + "name": { + "type": "string", + "nullable": true + }, + "lastEditedBy": { + "type": "string", + "nullable": true + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "pipelineType": { + "$ref": "#/components/schemas/PipelineType" + }, + "pipelineDraftMode": { + "$ref": "#/components/schemas/PipelineDraftMode" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "entityStatus": { + "$ref": "#/components/schemas/EntityStatus" + }, + "id": { + "type": "string", + "nullable": true + }, + "etag": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "PipelineDraftMode": { + "enum": [ + "None", + "Normal", + "Custom" + ], + "type": "string" + }, + "PipelineDraftStepDetails": { + "type": "object", + "properties": { + "runId": { + "type": "string", + "nullable": true + }, + "target": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/RunStatus" + }, + "statusDetail": { + "type": "string", + "nullable": true + }, + "parentRunId": { + "type": "string", + "nullable": true + }, + "startTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isReused": { + "type": "boolean", + "nullable": true + }, + "reusedRunId": { + "type": "string", + "nullable": true + }, + "reusedPipelineRunId": { + "type": "string", + "nullable": true + }, + "logs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputLog": { + "type": "string", + "nullable": true + }, + "runConfiguration": { + "$ref": "#/components/schemas/RunConfiguration" + }, + "outputs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "portOutputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/PortOutputInfo" + }, + "description": "This is a dictionary", + "nullable": true + }, + "isExperimentArchived": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "PipelineDraftSummary": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "lastEditedBy": { + "type": "string", + "nullable": true + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "pipelineType": { + "$ref": "#/components/schemas/PipelineType" + }, + "pipelineDraftMode": { + "$ref": "#/components/schemas/PipelineDraftMode" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "entityStatus": { + "$ref": "#/components/schemas/EntityStatus" + }, + "id": { + "type": "string", + "nullable": true + }, + "etag": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "PipelineEndpoint": { + "type": "object", + "properties": { + "defaultVersion": { + "type": "string", + "nullable": true + }, + "defaultPipelineId": { + "type": "string", + "nullable": true + }, + "defaultGraphId": { + "type": "string", + "nullable": true + }, + "restEndpoint": { + "type": "string", + "nullable": true + }, + "publishedDate": { + "type": "string", + "format": "date-time" + }, + "publishedBy": { + "type": "string", + "nullable": true + }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataSetDefinitionValueAssignment": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + }, + "description": "This is a dictionary", + "nullable": true + }, + "defaultPipelineName": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "updatedBy": { + "type": "string", + "nullable": true + }, + "swaggerUrl": { + "type": "string", + "nullable": true + }, + "lastRunTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastRunStatus": { + "$ref": "#/components/schemas/PipelineRunStatusCode" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "entityStatus": { + "$ref": "#/components/schemas/EntityStatus" + }, + "id": { + "type": "string", + "nullable": true + }, + "etag": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "PipelineEndpointSummary": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "updatedBy": { + "type": "string", + "nullable": true + }, + "swaggerUrl": { + "type": "string", + "nullable": true + }, + "lastRunTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastRunStatus": { + "$ref": "#/components/schemas/PipelineRunStatusCode" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "entityStatus": { + "$ref": "#/components/schemas/EntityStatus" + }, + "id": { + "type": "string", + "nullable": true + }, + "etag": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "PipelineGraph": { + "type": "object", + "properties": { + "graphModuleDtos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ModuleDto" + }, + "nullable": true + }, + "graphDataSources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataInfo" + }, + "nullable": true + }, + "graphs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/PipelineGraph" + }, + "description": "This is a dictionary", + "nullable": true + }, + "graphDrafts": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/PipelineGraph" + }, + "description": "This is a dictionary", + "nullable": true + }, + "moduleNodeRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeRunSetting" + }, + "nullable": true + }, + "moduleNodeUIInputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" + }, + "nullable": true + }, + "subPipelinesInfo": { + "$ref": "#/components/schemas/SubPipelinesInfo" + }, + "referencedNodeId": { + "type": "string", + "nullable": true + }, + "pipelineRunSettingParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameter" + }, + "nullable": true + }, + "pipelineRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameterAssignment" + }, + "nullable": true + }, + "realTimeEndpointInfo": { + "$ref": "#/components/schemas/RealTimeEndpointInfo" + }, + "nodeTelemetryMetaInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NodeTelemetryMetaInfo" + }, + "nullable": true + }, + "graphComponentsMode": { + "$ref": "#/components/schemas/GraphComponentsMode" + }, + "moduleNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNode" + }, + "nullable": true + }, + "datasetNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphDatasetNode" + }, + "nullable": true + }, + "subGraphNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphReferenceNode" + }, + "nullable": true + }, + "controlReferenceNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphControlReferenceNode" + }, + "nullable": true + }, + "controlNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphControlNode" + }, + "nullable": true + }, + "edges": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphEdge" + }, + "nullable": true + }, + "entityInterface": { + "$ref": "#/components/schemas/EntityInterface" + }, + "graphLayout": { + "$ref": "#/components/schemas/GraphLayout" + }, + "createdBy": { + "$ref": "#/components/schemas/CreatedBy" + }, + "lastUpdatedBy": { + "$ref": "#/components/schemas/CreatedBy" + }, + "defaultCompute": { + "$ref": "#/components/schemas/ComputeSetting" + }, + "defaultDatastore": { + "$ref": "#/components/schemas/DatastoreSetting" + }, + "defaultCloudPriority": { + "$ref": "#/components/schemas/CloudPrioritySetting" + }, + "extendedProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "parentSubGraphModuleIds": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "etag": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "PipelineInput": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/InputData" + } + }, + "additionalProperties": false + }, + "PipelineJob": { + "type": "object", + "properties": { + "jobType": { + "$ref": "#/components/schemas/JobType" + }, + "pipelineJobType": { + "$ref": "#/components/schemas/MfeInternalPipelineType" + }, + "pipeline": { + "$ref": "#/components/schemas/Pipeline" + }, + "computeId": { + "type": "string", + "nullable": true + }, + "runId": { + "type": "string", + "nullable": true + }, + "settings": { + "nullable": true + }, + "componentJobs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/MfeInternalV20211001ComponentJob" + }, + "description": "This is a dictionary", + "nullable": true + }, + "inputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/JobInput" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/JobOutput" + }, + "description": "This is a dictionary", + "nullable": true + }, + "bindings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Binding" + }, + "nullable": true + }, + "jobs": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary", + "nullable": true + }, + "inputBindings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/InputDataBinding" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputBindings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/OutputDataBinding" + }, + "description": "This is a dictionary", + "nullable": true + }, + "sourceJobId": { + "type": "string", + "nullable": true + }, + "provisioningState": { + "$ref": "#/components/schemas/JobProvisioningState" + }, + "parentJobName": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "experimentName": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/JobStatus" + }, + "interactionEndpoints": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/JobEndpoint" + }, + "nullable": true + }, + "identity": { + "$ref": "#/components/schemas/MfeInternalIdentityConfiguration" + }, + "compute": { + "$ref": "#/components/schemas/ComputeConfiguration" + }, + "priority": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "output": { + "$ref": "#/components/schemas/JobOutputArtifacts" + }, + "isArchived": { + "type": "boolean" + }, + "schedule": { + "$ref": "#/components/schemas/ScheduleBase" + }, + "componentId": { + "type": "string", + "nullable": true + }, + "notificationSetting": { + "$ref": "#/components/schemas/NotificationSetting" + }, + "secretsConfiguration": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/MfeInternalSecretConfiguration" + }, + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "PipelineJobRuntimeBasicSettings": { + "type": "object", + "properties": { + "pipelineRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameterAssignment" + }, + "nullable": true + }, + "experimentName": { + "type": "string", + "nullable": true + }, + "pipelineJobName": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "triggerTimeString": { + "type": "string", + "nullable": true + }, + "pipelineParameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataPathAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/LegacyDataPath" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataSetDefinitionValueAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + }, + "description": "This is a dictionary", + "nullable": true + }, + "assetOutputSettingsAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AssetOutputSettings" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "PipelineJobScheduleDto": { + "type": "object", + "properties": { + "systemData": { + "$ref": "#/components/schemas/SystemData" + }, + "name": { + "type": "string", + "nullable": true + }, + "pipelineJobName": { + "type": "string", + "nullable": true + }, + "pipelineJobRuntimeSettings": { + "$ref": "#/components/schemas/PipelineJobRuntimeBasicSettings" + }, + "displayName": { + "type": "string", + "nullable": true + }, + "triggerType": { + "$ref": "#/components/schemas/TriggerType" + }, + "recurrence": { + "$ref": "#/components/schemas/Recurrence" + }, + "cron": { + "$ref": "#/components/schemas/Cron" + }, + "status": { + "$ref": "#/components/schemas/ScheduleStatus" + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "PipelineOutput": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/MfeInternalOutputData" + } + }, + "additionalProperties": false + }, + "PipelineRun": { + "type": "object", + "properties": { + "pipelineId": { + "type": "string", + "nullable": true + }, + "runSource": { + "type": "string", + "nullable": true + }, + "runType": { + "$ref": "#/components/schemas/RunType" + }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataPathAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/LegacyDataPath" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataSetDefinitionValueAssignment": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + }, + "description": "This is a dictionary", + "nullable": true + }, + "assetOutputSettingsAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AssetOutputSettings" + }, + "description": "This is a dictionary", + "nullable": true + }, + "totalSteps": { + "type": "integer", + "format": "int32" + }, + "logs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "userAlias": { + "type": "string", + "nullable": true + }, + "enforceRerun": { + "type": "boolean", + "nullable": true + }, + "continueRunOnFailedOptionalInput": { + "type": "boolean" + }, + "defaultCompute": { + "$ref": "#/components/schemas/ComputeSetting" + }, + "defaultDatastore": { + "$ref": "#/components/schemas/DatastoreSetting" + }, + "defaultCloudPriority": { + "$ref": "#/components/schemas/CloudPrioritySetting" + }, + "pipelineTimeoutSeconds": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "continueRunOnStepFailure": { + "type": "boolean" + }, + "identityConfig": { + "$ref": "#/components/schemas/IdentitySetting" + }, + "description": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "runNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "statusCode": { + "$ref": "#/components/schemas/PipelineStatusCode" + }, + "runStatus": { + "$ref": "#/components/schemas/RunStatus" + }, + "statusDetail": { + "type": "string", + "nullable": true + }, + "startTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "graphId": { + "type": "string", + "nullable": true + }, + "experimentId": { + "type": "string", + "nullable": true + }, + "experimentName": { + "type": "string", + "nullable": true + }, + "isExperimentArchived": { + "type": "boolean", + "nullable": true + }, + "submittedBy": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "stepTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "aetherStartTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "aetherEndTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "runHistoryStartTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "runHistoryEndTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "uniqueChildRunComputeTargets": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "entityStatus": { + "$ref": "#/components/schemas/EntityStatus" + }, + "id": { + "type": "string", + "nullable": true + }, + "etag": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "PipelineRunGraphDetail": { + "type": "object", + "properties": { + "graph": { + "$ref": "#/components/schemas/PipelineGraph" + }, + "graphNodesStatus": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/GraphNodeStatusInfo" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "PipelineRunGraphStatus": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/PipelineStatus" + }, + "graphNodesStatus": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/GraphNodeStatusInfo" + }, + "description": "This is a dictionary", + "nullable": true + }, + "experimentId": { + "type": "string", + "nullable": true + }, + "isExperimentArchived": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "PipelineRunProfile": { + "type": "object", + "properties": { + "runId": { + "type": "string", + "nullable": true + }, + "nodeId": { + "type": "string", + "nullable": true + }, + "runUrl": { + "type": "string", + "nullable": true + }, + "experimentName": { + "type": "string", + "nullable": true + }, + "experimentId": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/PipelineRunStatus" + }, + "createTime": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "startTime": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "endTime": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "profilingTime": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "stepRunsProfile": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StepRunProfile" + }, + "nullable": true + }, + "subPipelineRunProfile": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineRunProfile" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "PipelineRunStatus": { + "type": "object", + "properties": { + "statusCode": { + "$ref": "#/components/schemas/PipelineRunStatusCode" + }, + "statusDetail": { + "type": "string", + "nullable": true + }, + "creationTime": { + "type": "string", + "format": "date-time" + }, + "endTime": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "PipelineRunStatusCode": { + "enum": [ + "NotStarted", + "Running", + "Failed", + "Finished", + "Canceled", + "Queued", + "CancelRequested" + ], + "type": "string" + }, + "PipelineRunStepDetails": { + "type": "object", + "properties": { + "runId": { + "type": "string", + "nullable": true + }, + "target": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/RunStatus" + }, + "statusDetail": { + "type": "string", + "nullable": true + }, + "parentRunId": { + "type": "string", + "nullable": true + }, + "startTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isReused": { + "type": "boolean", + "nullable": true + }, + "logs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "snapshotInfo": { + "$ref": "#/components/schemas/SnapshotInfo" + }, + "inputDatasets": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/DatasetLineage" + }, + "nullable": true + }, + "outputDatasets": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/OutputDatasetLineage" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "PipelineRunSummary": { + "type": "object", + "properties": { + "description": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "runNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "statusCode": { + "$ref": "#/components/schemas/PipelineStatusCode" + }, + "runStatus": { + "$ref": "#/components/schemas/RunStatus" + }, + "statusDetail": { + "type": "string", + "nullable": true + }, + "startTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "graphId": { + "type": "string", + "nullable": true + }, + "experimentId": { + "type": "string", + "nullable": true + }, + "experimentName": { + "type": "string", + "nullable": true + }, + "isExperimentArchived": { + "type": "boolean", + "nullable": true + }, + "submittedBy": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "stepTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "aetherStartTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "aetherEndTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "runHistoryStartTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "runHistoryEndTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "uniqueChildRunComputeTargets": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "entityStatus": { + "$ref": "#/components/schemas/EntityStatus" + }, + "id": { + "type": "string", + "nullable": true + }, + "etag": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "PipelineStatus": { + "type": "object", + "properties": { + "statusCode": { + "$ref": "#/components/schemas/PipelineStatusCode" + }, + "runStatus": { + "$ref": "#/components/schemas/RunStatus" + }, + "statusDetail": { + "type": "string", + "nullable": true + }, + "startTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isTerminalState": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false + }, + "PipelineStatusCode": { + "enum": [ + "NotStarted", + "InDraft", + "Preparing", + "Running", + "Failed", + "Finished", + "Canceled", + "Throttled", + "Unknown" + ], + "type": "string" + }, + "PipelineStepRun": { + "type": "object", + "properties": { + "stepName": { + "type": "string", + "nullable": true + }, + "runNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "runId": { + "type": "string", + "nullable": true + }, + "startTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "runStatus": { + "$ref": "#/components/schemas/RunStatus" + }, + "computeTarget": { + "type": "string", + "nullable": true + }, + "computeType": { + "type": "string", + "nullable": true + }, + "runType": { + "type": "string", + "nullable": true + }, + "stepType": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "isReused": { + "type": "boolean", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "PipelineStepRunOutputs": { + "type": "object", + "properties": { + "outputs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "portOutputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/PortOutputInfo" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "PipelineSubDraft": { + "type": "object", + "properties": { + "parentGraphDraftId": { + "type": "string", + "nullable": true + }, + "parentNodeId": { + "type": "string", + "nullable": true + }, + "graphDetail": { + "$ref": "#/components/schemas/PipelineRunGraphDetail" + }, + "moduleDto": { + "$ref": "#/components/schemas/ModuleDto" + }, + "name": { + "type": "string", + "nullable": true + }, + "lastEditedBy": { + "type": "string", + "nullable": true + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "pipelineType": { + "$ref": "#/components/schemas/PipelineType" + }, + "pipelineDraftMode": { + "$ref": "#/components/schemas/PipelineDraftMode" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "entityStatus": { + "$ref": "#/components/schemas/EntityStatus" + }, + "id": { + "type": "string", + "nullable": true + }, + "etag": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "PipelineType": { + "enum": [ + "TrainingPipeline", + "RealTimeInferencePipeline", + "BatchInferencePipeline", + "Unknown" + ], + "type": "string" + }, + "PolicyValidationResponse": { + "type": "object", + "properties": { + "errorResponse": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "nextActionIntervalInSeconds": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "actionType": { + "$ref": "#/components/schemas/ActionType" + } + }, + "additionalProperties": false + }, + "PortAction": { + "enum": [ + "Promote", + "ViewInDataStore", + "Visualize", + "GetSchema", + "CreateInferenceGraph", + "RegisterModel", + "PromoteAsTabular" + ], + "type": "string" + }, + "PortInfo": { + "type": "object", + "properties": { + "nodeId": { + "type": "string", + "nullable": true + }, + "portName": { + "type": "string", + "nullable": true + }, + "graphPortName": { + "type": "string", + "nullable": true + }, + "isParameter": { + "type": "boolean" + }, + "webServicePort": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "PortOutputInfo": { + "type": "object", + "properties": { + "containerUri": { + "type": "string", + "format": "uri", + "nullable": true + }, + "relativePath": { + "type": "string", + "nullable": true + }, + "previewParams": { + "type": "string", + "nullable": true + }, + "modelOutputPath": { + "type": "string", + "nullable": true + }, + "dataStoreName": { + "type": "string", + "nullable": true + }, + "dataReferenceType": { + "$ref": "#/components/schemas/DataReferenceType" + }, + "isFile": { + "type": "boolean" + }, + "supportedActions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PortAction" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "PrimaryMetrics": { + "enum": [ + "AUCWeighted", + "Accuracy", + "NormMacroRecall", + "AveragePrecisionScoreWeighted", + "PrecisionScoreWeighted", + "SpearmanCorrelation", + "NormalizedRootMeanSquaredError", + "R2Score", + "NormalizedMeanAbsoluteError", + "NormalizedRootMeanSquaredLogError", + "MeanAveragePrecision", + "Iou" + ], + "type": "string" + }, + "PriorityConfig": { + "type": "object", + "properties": { + "jobPriority": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isPreemptible": { + "type": "boolean", + "nullable": true + }, + "nodeCountSet": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "scaleInterval": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "PriorityConfiguration": { + "type": "object", + "properties": { + "cloudPriority": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "stringTypePriority": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "PromoteDataSetRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "moduleNodeId": { + "type": "string", + "nullable": true + }, + "stepRunId": { + "type": "string", + "nullable": true + }, + "outputPortName": { + "type": "string", + "nullable": true + }, + "modelOutputPath": { + "type": "string", + "nullable": true + }, + "dataTypeId": { + "type": "string", + "nullable": true + }, + "datasetType": { + "type": "string", + "nullable": true + }, + "dataStoreName": { + "type": "string", + "nullable": true + }, + "outputRelativePath": { + "type": "string", + "nullable": true + }, + "pipelineRunId": { + "type": "string", + "nullable": true + }, + "rootPipelineRunId": { + "type": "string", + "nullable": true + }, + "experimentName": { + "type": "string", + "nullable": true + }, + "experimentId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "PromptflowEngineType": { + "enum": [ + "FastEngine", + "ScalableEngine" + ], + "type": "string" + }, + "ProviderEntity": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "nullable": true + }, + "module": { + "type": "string", + "nullable": true + }, + "connection_type": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionType" + }, + "nullable": true + }, + "apis": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiAndParameters" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ProvisioningState": { + "enum": [ + "Unknown", + "Updating", + "Creating", + "Deleting", + "Accepted", + "Succeeded", + "Failed", + "Canceled" + ], + "type": "string" + }, + "PublishedPipeline": { + "type": "object", + "properties": { + "totalRunSteps": { + "type": "integer", + "format": "int32" + }, + "totalRuns": { + "type": "integer", + "format": "int32" + }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataSetDefinitionValueAssignment": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + }, + "description": "This is a dictionary", + "nullable": true + }, + "restEndpoint": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "graphId": { + "type": "string", + "nullable": true + }, + "publishedDate": { + "type": "string", + "format": "date-time" + }, + "lastRunTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastRunStatus": { + "$ref": "#/components/schemas/PipelineRunStatusCode" + }, + "publishedBy": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + }, + "isDefault": { + "type": "boolean", + "nullable": true + }, + "entityStatus": { + "$ref": "#/components/schemas/EntityStatus" + }, + "id": { + "type": "string", + "nullable": true + }, + "etag": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" }, - "RunType": { - "enum": [ - "HTTP", - "SDK", - "Schedule", - "Portal" - ], + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "PublishedPipelineSummary": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "graphId": { + "type": "string", + "nullable": true + }, + "publishedDate": { + "type": "string", + "format": "date-time" + }, + "lastRunTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastRunStatus": { + "$ref": "#/components/schemas/PipelineRunStatusCode" + }, + "publishedBy": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "RunTypeV2": { - "type": "object", - "properties": { - "orchestrator": { - "type": "string", - "nullable": true - }, - "traits": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "attribution": { - "type": "string", - "nullable": true - }, - "computeType": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "RunTypeV2Index": { - "type": "object", - "properties": { - "orchestrator": { - "type": "string", - "nullable": true - }, - "traits": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "attribution": { - "type": "string", - "nullable": true - }, - "computeType": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "version": { + "type": "string", + "nullable": true }, - "RuntimeConfiguration": { - "type": "object", - "properties": { - "baseImage": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "isDefault": { + "type": "boolean", + "nullable": true }, - "RuntimeStatusEnum": { - "enum": [ - "Unavailable", - "Failed", - "NotExist", - "Starting", - "Stopping" - ], - "type": "string" + "entityStatus": { + "$ref": "#/components/schemas/EntityStatus" }, - "RuntimeType": { - "enum": [ - "ManagedOnlineEndpoint", - "ComputeInstance", - "TrainingSession" - ], + "id": { + "type": "string", + "nullable": true + }, + "etag": { + "type": "string", + "nullable": true + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "PyTorchConfiguration": { + "type": "object", + "properties": { + "communicationBackend": { + "type": "string", + "nullable": true + }, + "processCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "PythonInterfaceMapping": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "nameInYaml": { + "type": "string", + "nullable": true + }, + "argumentName": { + "type": "string", + "nullable": true + }, + "commandLineOption": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "PythonPyPiOrRCranLibraryDto": { + "type": "object", + "properties": { + "package": { + "type": "string", + "nullable": true + }, + "repo": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "PythonSection": { + "type": "object", + "properties": { + "interpreterPath": { + "type": "string", + "nullable": true + }, + "userManagedDependencies": { + "type": "boolean" + }, + "condaDependencies": { + "nullable": true + }, + "baseCondaEnvironment": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "QueueingInfo": { + "type": "object", + "properties": { + "code": { + "type": "string", + "nullable": true + }, + "message": { + "type": "string", + "nullable": true + }, + "lastRefreshTimestamp": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "RCranPackage": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + }, + "repository": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RGitHubPackage": { + "type": "object", + "properties": { + "repository": { + "type": "string", + "nullable": true + }, + "authToken": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RSection": { + "type": "object", + "properties": { + "rVersion": { + "type": "string", + "nullable": true + }, + "userManaged": { + "type": "boolean" + }, + "rscriptPath": { + "type": "string", + "nullable": true + }, + "snapshotDate": { + "type": "string", + "nullable": true + }, + "cranPackages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RCranPackage" + }, + "nullable": true + }, + "gitHubPackages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RGitHubPackage" + }, + "nullable": true + }, + "customUrlPackages": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "SampleMeta": { - "type": "object", - "properties": { - "image": { - "type": "string", - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "docLink": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "feedName": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "bioConductorPackages": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "RawComponentDto": { + "type": "object", + "properties": { + "componentSchema": { + "type": "string", + "nullable": true + }, + "isAnonymous": { + "type": "boolean" + }, + "name": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ComponentType" + }, + "componentTypeVersion": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "SamplingAlgorithmType": { - "enum": [ - "Random", - "Grid", - "Bayesian" - ], + "properties": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "isDeterministic": { + "type": "boolean" + }, + "successfulReturnCode": { + "type": "string", + "nullable": true + }, + "inputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ComponentInput" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ComponentOutput" + }, + "description": "This is a dictionary", + "nullable": true + }, + "command": { + "type": "string", + "nullable": true + }, + "environmentName": { + "type": "string", + "nullable": true + }, + "environmentVersion": { + "type": "string", + "nullable": true + }, + "snapshotId": { + "type": "string", + "nullable": true + }, + "createdBy": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + }, + "lastModifiedBy": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + }, + "createdDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "componentInternalId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RayConfiguration": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "address": { + "type": "string", + "nullable": true + }, + "includeDashboard": { + "type": "boolean", + "nullable": true + }, + "dashboardPort": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "headNodeAdditionalArgs": { + "type": "string", + "nullable": true + }, + "workerNodeAdditionalArgs": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RealTimeEndpoint": { + "type": "object", + "properties": { + "createdBy": { + "type": "string", + "nullable": true + }, + "kvTags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "state": { + "$ref": "#/components/schemas/WebServiceState" + }, + "error": { + "$ref": "#/components/schemas/ModelManagementErrorResponse" + }, + "computeType": { + "$ref": "#/components/schemas/ComputeEnvironmentType" + }, + "imageId": { + "type": "string", + "nullable": true + }, + "cpu": { + "type": "number", + "format": "double", + "nullable": true + }, + "memoryInGB": { + "type": "number", + "format": "double", + "nullable": true + }, + "maxConcurrentRequestsPerContainer": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "numReplicas": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "eventHubEnabled": { + "type": "boolean", + "nullable": true + }, + "storageEnabled": { + "type": "boolean", + "nullable": true + }, + "appInsightsEnabled": { + "type": "boolean", + "nullable": true + }, + "autoScaleEnabled": { + "type": "boolean", + "nullable": true + }, + "minReplicas": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxReplicas": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "targetUtilization": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "refreshPeriodInSeconds": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "scoringUri": { + "type": "string", + "format": "uri", + "nullable": true + }, + "deploymentStatus": { + "$ref": "#/components/schemas/AKSReplicaStatus" + }, + "scoringTimeoutMs": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "authEnabled": { + "type": "boolean", + "nullable": true + }, + "aadAuthEnabled": { + "type": "boolean", + "nullable": true + }, + "region": { + "type": "string", + "nullable": true + }, + "primaryKey": { + "type": "string", + "nullable": true + }, + "secondaryKey": { + "type": "string", + "nullable": true + }, + "swaggerUri": { + "type": "string", + "format": "uri", + "nullable": true + }, + "linkedPipelineDraftId": { + "type": "string", + "nullable": true + }, + "linkedPipelineRunId": { + "type": "string", + "nullable": true + }, + "warning": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "createdTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updatedTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "computeName": { + "type": "string", + "nullable": true + }, + "updatedBy": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RealTimeEndpointInfo": { + "type": "object", + "properties": { + "webServiceInputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebServicePort" + }, + "nullable": true + }, + "webServiceOutputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebServicePort" + }, + "nullable": true + }, + "deploymentsInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeploymentInfo" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "RealTimeEndpointInternalStepCode": { + "enum": [ + "AboutToDeploy", + "WaitAksComputeReady", + "RegisterModels", + "CreateServiceFromModels", + "UpdateServiceFromModels", + "WaitServiceCreating", + "FetchServiceRelatedInfo", + "TestWithSampleData", + "AboutToDelete", + "DeleteDeployment", + "DeleteAsset", + "DeleteImage", + "DeleteModel", + "DeleteServiceRecord" + ], + "type": "string" + }, + "RealTimeEndpointOpCode": { + "enum": [ + "Create", + "Update", + "Delete" + ], + "type": "string" + }, + "RealTimeEndpointOpStatusCode": { + "enum": [ + "Ongoing", + "Succeeded", + "Failed", + "SucceededWithWarning" + ], + "type": "string" + }, + "RealTimeEndpointStatus": { + "type": "object", + "properties": { + "lastOperation": { + "$ref": "#/components/schemas/RealTimeEndpointOpCode" }, - "SavePipelineDraftRequest": { - "type": "object", - "properties": { - "uiWidgetMetaInfos": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UIWidgetMetaInfo" - }, - "nullable": true - }, - "webServiceInputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebServicePort" - }, - "nullable": true - }, - "webServiceOutputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebServicePort" - }, - "nullable": true - }, - "nodesInDraft": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "pipelineType": { - "$ref": "#/components/schemas/PipelineType" - }, - "pipelineDraftMode": { - "$ref": "#/components/schemas/PipelineDraftMode" - }, - "graphComponentsMode": { - "$ref": "#/components/schemas/GraphComponentsMode" - }, - "subPipelinesInfo": { - "$ref": "#/components/schemas/SubPipelinesInfo" - }, - "flattenedSubGraphs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/PipelineSubDraft" - }, - "nullable": true - }, - "pipelineParameters": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataPathAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/LegacyDataPath" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataSetDefinitionValueAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - }, - "description": "This is a dictionary", - "nullable": true - }, - "assetOutputSettingsAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AssetOutputSettings" - }, - "description": "This is a dictionary", - "nullable": true - }, - "graph": { - "$ref": "#/components/schemas/GraphDraftEntity" - }, - "pipelineRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameterAssignment" - }, - "nullable": true - }, - "moduleNodeRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeRunSetting" - }, - "nullable": true - }, - "moduleNodeUIInputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" - }, - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "continueRunOnStepFailure": { - "type": "boolean", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "enforceRerun": { - "type": "boolean", - "nullable": true - }, - "datasetAccessModes": { - "$ref": "#/components/schemas/DatasetAccessModes" - } - }, - "additionalProperties": false + "lastOperationStatus": { + "$ref": "#/components/schemas/RealTimeEndpointOpStatusCode" }, - "SavedDataSetReference": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "internalStep": { + "$ref": "#/components/schemas/RealTimeEndpointInternalStepCode" }, - "ScheduleBase": { - "type": "object", - "properties": { - "scheduleStatus": { - "$ref": "#/components/schemas/MfeInternalScheduleStatus" - }, - "scheduleType": { - "$ref": "#/components/schemas/ScheduleType" - }, - "endTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "startTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "timeZone": { - "type": "string", - "nullable": true - }, - "expression": { - "type": "string", - "nullable": true - }, - "frequency": { - "$ref": "#/components/schemas/RecurrenceFrequency" - }, - "interval": { - "type": "integer", - "format": "int32" - }, - "pattern": { - "$ref": "#/components/schemas/RecurrencePattern" - } - }, - "additionalProperties": false + "statusDetail": { + "type": "string", + "nullable": true }, - "ScheduleProvisioningStatus": { - "enum": [ - "Creating", - "Updating", - "Deleting", - "Succeeded", - "Failed", - "Canceled" - ], - "type": "string" + "deploymentState": { + "type": "string", + "nullable": true }, - "ScheduleStatus": { - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string" + "serviceId": { + "type": "string", + "nullable": true + }, + "linkedPipelineDraftId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RealTimeEndpointSummary": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "createdTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updatedTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "computeType": { + "$ref": "#/components/schemas/ComputeEnvironmentType" + }, + "computeName": { + "type": "string", + "nullable": true + }, + "updatedBy": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RealTimeEndpointTestRequest": { + "type": "object", + "properties": { + "endPoint": { + "type": "string", + "nullable": true + }, + "authKey": { + "type": "string", + "nullable": true + }, + "payload": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Recurrence": { + "type": "object", + "properties": { + "frequency": { + "$ref": "#/components/schemas/Frequency" + }, + "interval": { + "type": "integer", + "format": "int32" + }, + "schedule": { + "$ref": "#/components/schemas/RecurrenceSchedule" + }, + "endTime": { + "type": "string", + "nullable": true + }, + "startTime": { + "type": "string", + "nullable": true + }, + "timeZone": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RecurrenceFrequency": { + "enum": [ + "Minute", + "Hour", + "Day", + "Week", + "Month" + ], + "type": "string" + }, + "RecurrencePattern": { + "type": "object", + "properties": { + "hours": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "minutes": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "weekdays": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Weekday" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "RecurrenceSchedule": { + "type": "object", + "properties": { + "hours": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "minutes": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "weekDays": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WeekDays" + }, + "nullable": true + }, + "monthDays": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "RegenerateServiceKeysRequest": { + "type": "object", + "properties": { + "keyType": { + "$ref": "#/components/schemas/KeyType" + }, + "keyValue": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RegisterComponentMetaInfo": { + "type": "object", + "properties": { + "amlModuleName": { + "type": "string", + "nullable": true + }, + "nameOnlyDisplayInfo": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + }, + "moduleVersionId": { + "type": "string", + "nullable": true + }, + "snapshotId": { + "type": "string", + "nullable": true + }, + "componentRegistrationType": { + "$ref": "#/components/schemas/ComponentRegistrationTypeEnum" + }, + "moduleEntityFromYaml": { + "$ref": "#/components/schemas/ModuleEntity" + }, + "setAsDefaultVersion": { + "type": "boolean" + }, + "dataTypesFromYaml": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataTypeCreationInfo" + }, + "nullable": true + }, + "dataTypeMechanism": { + "$ref": "#/components/schemas/DataTypeMechanism" + }, + "identifierHash": { + "type": "string", + "nullable": true + }, + "identifierHashes": { + "type": "object", + "properties": { + "IdentifierHash": { + "type": "string" + }, + "IdentifierHashV2": { + "type": "string" + } + }, + "additionalProperties": false, + "nullable": true + }, + "contentHash": { + "type": "string", + "nullable": true + }, + "extraHash": { + "type": "string", + "nullable": true + }, + "extraHashes": { + "type": "object", + "properties": { + "IdentifierHash": { + "type": "string" + }, + "IdentifierHashV2": { + "type": "string" + } + }, + "additionalProperties": false, + "nullable": true + }, + "registration": { + "type": "boolean", + "nullable": true }, - "ScheduleType": { - "enum": [ - "Cron", - "Recurrence" - ], + "validateOnly": { + "type": "boolean" + }, + "skipWorkspaceRelatedCheck": { + "type": "boolean" + }, + "intellectualPropertyProtectedWorkspaceComponentRegistrationAllowedPublisher": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true + }, + "systemManagedRegistration": { + "type": "boolean" + }, + "allowDupNameBetweenInputAndOuputPort": { + "type": "boolean" + }, + "moduleSource": { + "type": "string", + "nullable": true + }, + "moduleScope": { + "type": "string", + "nullable": true + }, + "moduleAdditionalIncludesCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "moduleOSType": { + "type": "string", + "nullable": true + }, + "moduleCodegenBy": { + "type": "string", + "nullable": true + }, + "moduleClientSource": { + "type": "string", + "nullable": true + }, + "moduleIsBuiltin": { + "type": "boolean" + }, + "moduleRegisterEventExtensionFields": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "RegisterRegistryComponentMetaInfo": { + "type": "object", + "properties": { + "registryName": { + "type": "string", + "nullable": true + }, + "intellectualPropertyPublisherInformation": { + "$ref": "#/components/schemas/IntellectualPropertyPublisherInformation" + }, + "blobReferenceData": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/RegistryBlobReferenceData" + }, + "description": "This is a dictionary", + "nullable": true + }, + "amlModuleName": { + "type": "string", + "nullable": true + }, + "nameOnlyDisplayInfo": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + }, + "moduleVersionId": { + "type": "string", + "nullable": true + }, + "snapshotId": { + "type": "string", + "nullable": true + }, + "componentRegistrationType": { + "$ref": "#/components/schemas/ComponentRegistrationTypeEnum" + }, + "moduleEntityFromYaml": { + "$ref": "#/components/schemas/ModuleEntity" + }, + "setAsDefaultVersion": { + "type": "boolean" + }, + "dataTypesFromYaml": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataTypeCreationInfo" + }, + "nullable": true + }, + "dataTypeMechanism": { + "$ref": "#/components/schemas/DataTypeMechanism" + }, + "identifierHash": { + "type": "string", + "nullable": true + }, + "identifierHashes": { + "type": "object", + "properties": { + "IdentifierHash": { + "type": "string" + }, + "IdentifierHashV2": { + "type": "string" + } + }, + "additionalProperties": false, + "nullable": true + }, + "contentHash": { + "type": "string", + "nullable": true + }, + "extraHash": { + "type": "string", + "nullable": true + }, + "extraHashes": { + "type": "object", + "properties": { + "IdentifierHash": { + "type": "string" + }, + "IdentifierHashV2": { + "type": "string" + } + }, + "additionalProperties": false, + "nullable": true }, - "SchemaContractsCreatedBy": { - "type": "object", - "properties": { - "userObjectId": { - "type": "string", - "nullable": true - }, - "userTenantId": { - "type": "string", - "nullable": true - }, - "userName": { - "type": "string", - "nullable": true - }, - "userPrincipalName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "registration": { + "type": "boolean", + "nullable": true }, - "ScopeCloudConfiguration": { - "type": "object", - "properties": { - "inputPathSuffixes": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ArgumentAssignment" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputPathSuffixes": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ArgumentAssignment" - }, - "description": "This is a dictionary", - "nullable": true - }, - "userAlias": { - "type": "string", - "nullable": true - }, - "tokens": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "autoToken": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "vcp": { - "type": "number", - "format": "float", - "nullable": true - } - }, - "additionalProperties": false + "validateOnly": { + "type": "boolean" }, - "ScopeType": { - "enum": [ - "Global", - "Tenant", - "Subscription", - "ResourceGroup", - "Workspace" - ], + "skipWorkspaceRelatedCheck": { + "type": "boolean" + }, + "intellectualPropertyProtectedWorkspaceComponentRegistrationAllowedPublisher": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "systemManagedRegistration": { + "type": "boolean" + }, + "allowDupNameBetweenInputAndOuputPort": { + "type": "boolean" + }, + "moduleSource": { + "type": "string", + "nullable": true + }, + "moduleScope": { + "type": "string", + "nullable": true + }, + "moduleAdditionalIncludesCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "moduleOSType": { + "type": "string", + "nullable": true + }, + "moduleCodegenBy": { + "type": "string", + "nullable": true + }, + "moduleClientSource": { + "type": "string", + "nullable": true + }, + "moduleIsBuiltin": { + "type": "boolean" + }, + "moduleRegisterEventExtensionFields": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "RegisteredDataSetReference": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RegistrationOptions": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "datasetRegistrationOptions": { + "$ref": "#/components/schemas/DatasetRegistrationOptions" + } + }, + "additionalProperties": false + }, + "RegistryBlobReferenceData": { + "type": "object", + "properties": { + "dataReferenceId": { + "type": "string", + "nullable": true + }, + "data": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RegistryIdentity": { + "type": "object", + "properties": { + "resourceId": { + "type": "string", + "nullable": true + }, + "clientId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Relationship": { + "type": "object", + "properties": { + "relationType": { + "type": "string", + "nullable": true + }, + "targetEntityId": { + "type": "string", + "nullable": true + }, + "assetId": { + "type": "string", + "nullable": true + }, + "entityType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "direction": { + "type": "string", + "nullable": true + }, + "entityContainerId": { + "type": "string", + "nullable": true, + "readOnly": true + } + } + }, + "RemoteDockerComputeInfo": { + "type": "object", + "properties": { + "address": { + "type": "string", + "nullable": true + }, + "username": { + "type": "string", + "nullable": true + }, + "password": { + "type": "string", + "nullable": true + }, + "privateKey": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ResourceConfig": { + "type": "object", + "properties": { + "gpuCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "cpuCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "memoryRequestInGB": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "ResourceConfiguration": { + "type": "object", + "properties": { + "gpuCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "cpuCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "memoryRequestInGB": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "ResourcesSetting": { + "type": "object", + "properties": { + "instanceSize": { + "type": "string", + "nullable": true + }, + "sparkVersion": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ResumeBulkRunRequest": { + "type": "object", + "properties": { + "runId": { + "type": "string", + "nullable": true + }, + "runDisplayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "resumeFromRunId": { + "type": "string", + "nullable": true + }, + "runtimeName": { + "type": "string", + "nullable": true + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "maxIdleTimeSeconds": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "identity": { + "type": "string", + "nullable": true + }, + "computeName": { + "type": "string", + "nullable": true }, - "ScriptType": { - "enum": [ - "Python", - "Notebook" - ], + "enableMultiContainer": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "RetrieveToolFuncResultRequest": { + "type": "object", + "properties": { + "func_path": { + "type": "string", + "nullable": true + }, + "func_kwargs": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary", + "nullable": true + }, + "func_call_scenario": { + "$ref": "#/components/schemas/ToolFuncCallScenario" + } + }, + "additionalProperties": false + }, + "RetryConfiguration": { + "type": "object", + "properties": { + "maxRetryCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "RootError": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The service-defined error code. Supported error codes: ServiceError, UserError, ValidationError, AzureStorageError, TransientError, RequestThrottled.", + "nullable": true + }, + "severity": { + "type": "integer", + "description": "The Severity of error", + "format": "int32", + "nullable": true + }, + "message": { + "type": "string", + "description": "A human-readable representation of the error.", + "nullable": true + }, + "messageFormat": { + "type": "string", + "description": "An unformatted version of the message with no variable substitution.", + "nullable": true + }, + "messageParameters": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Value substitutions corresponding to the contents of MessageFormat.", + "nullable": true + }, + "referenceCode": { + "type": "string", + "description": "This code can optionally be set by the system generating the error.\r\nIt should be used to classify the problem and identify the module and code area where the failure occured.", + "nullable": true + }, + "detailsUri": { + "type": "string", + "description": "A URI which points to more details about the context of the error.", + "format": "uri", + "nullable": true + }, + "target": { + "type": "string", + "description": "The target of the error (e.g., the name of the property in error).", + "nullable": true + }, + "details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RootError" + }, + "description": "The related errors that occurred during the request.", + "nullable": true + }, + "innerError": { + "$ref": "#/components/schemas/InnerErrorResponse" + }, + "additionalInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ErrorAdditionalInfo" + }, + "description": "The error additional info.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "The root error." + }, + "RunAnnotations": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "nullable": true + }, + "primaryMetricName": { + "type": "string", + "nullable": true + }, + "estimatedCost": { + "type": "number", + "format": "double", + "nullable": true + }, + "primaryMetricSummary": { + "$ref": "#/components/schemas/RunIndexMetricSummary" + }, + "metrics": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/RunIndexMetricSummarySystemObject" + }, + "nullable": true + }, + "parameters": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + }, + "settings": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "modifiedTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "retainForLifetimeOfWorkspace": { + "type": "boolean", + "nullable": true + }, + "error": { + "$ref": "#/components/schemas/IndexedErrorResponse" + }, + "resourceMetricSummary": { + "$ref": "#/components/schemas/RunIndexResourceMetricSummary" + }, + "jobCost": { + "$ref": "#/components/schemas/JobCost" + }, + "computeDuration": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "computeDurationMilliseconds": { + "type": "number", + "format": "double", + "nullable": true + }, + "effectiveStartTimeUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "archived": { + "type": "boolean" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + } + }, + "RunCommandsCommandResult": { + "type": "object", + "properties": { + "command": { + "type": "string", + "nullable": true + }, + "arguments": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "Seasonality": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/components/schemas/SeasonalityMode" - }, - "value": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "exit_code": { + "type": "integer", + "format": "int32" }, - "SeasonalityMode": { - "enum": [ - "Auto", - "Custom" - ], + "stdout": { + "type": "string", + "nullable": true + }, + "stderr": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RunConfiguration": { + "type": "object", + "properties": { + "script": { + "type": "string", + "nullable": true + }, + "scriptType": { + "$ref": "#/components/schemas/ScriptType" + }, + "command": { + "type": "string", + "nullable": true + }, + "useAbsolutePath": { + "type": "boolean" + }, + "arguments": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "framework": { + "$ref": "#/components/schemas/Framework" + }, + "communicator": { + "$ref": "#/components/schemas/Communicator" + }, + "target": { + "type": "string", + "nullable": true + }, + "autoClusterComputeSpecification": { + "$ref": "#/components/schemas/AutoClusterComputeSpecification" + }, + "dataReferences": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DataReferenceConfiguration" + }, + "nullable": true + }, + "data": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Data" + }, + "nullable": true + }, + "inputAssets": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/InputAsset" + }, + "nullable": true + }, + "outputData": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/OutputData" + }, + "nullable": true + }, + "datacaches": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DatacacheConfiguration" + }, + "nullable": true + }, + "jobName": { + "type": "string", + "nullable": true + }, + "maxRunDurationSeconds": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "nodeCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxNodeCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "instanceTypes": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "SecretConfiguration": { - "type": "object", - "properties": { - "workspace_secret_name": { - "type": "string", - "nullable": true - }, - "uri": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "priority": { + "type": "integer", + "format": "int32", + "nullable": true }, - "SegmentedResult`1": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FlowIndexEntity" - }, - "nullable": true - }, - "continuationToken": { - "type": "string", - "nullable": true - }, - "count": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "nextLink": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "credentialPassthrough": { + "type": "boolean" }, - "ServiceLogRequest": { - "type": "object", - "properties": { - "logLevel": { - "$ref": "#/components/schemas/LogLevel" - }, - "message": { - "type": "string", - "nullable": true - }, - "timestamp": { - "type": "string", - "format": "date-time", - "nullable": true - } - }, - "additionalProperties": false + "identity": { + "$ref": "#/components/schemas/IdentityConfiguration" }, - "SessionApplication": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - }, - "image": { - "type": "string", - "nullable": true - }, - "envVars": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "pythonPipRequirements": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Volume" - }, - "nullable": true - }, - "setupResults": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SessionApplicationRunCommandResult" - }, - "nullable": true - }, - "port": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "environment": { + "$ref": "#/components/schemas/EnvironmentDefinition" }, - "SessionApplicationRunCommandResult": { - "type": "object", - "properties": { - "command": { - "type": "string", - "nullable": true - }, - "arguments": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "exitCode": { - "type": "integer", - "format": "int32" - }, - "stdOut": { - "type": "string", - "nullable": true - }, - "stdErr": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "history": { + "$ref": "#/components/schemas/HistoryConfiguration" }, - "SessionConfigModeEnum": { - "enum": [ - "Default", - "ForceInstallPackage", - "ForceReset" - ], - "type": "string" + "spark": { + "$ref": "#/components/schemas/SparkConfiguration" }, - "SessionProperties": { - "type": "object", - "properties": { - "sessionId": { - "type": "string", - "nullable": true - }, - "subscriptionId": { - "type": "string", - "nullable": true - }, - "resourceGroupName": { - "type": "string", - "nullable": true - }, - "workspaceName": { - "type": "string", - "nullable": true - }, - "existingUserComputeInstanceName": { - "type": "string", - "nullable": true - }, - "userObjectId": { - "type": "string", - "nullable": true - }, - "userTenantId": { - "type": "string", - "nullable": true - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "maxIdleTimeSeconds": { - "type": "integer", - "format": "int64" - }, - "applications": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SessionApplication" - }, - "nullable": true - }, - "application": { - "$ref": "#/components/schemas/SessionApplication" - }, - "lastAliveTime": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false + "parallelTask": { + "$ref": "#/components/schemas/ParallelTaskConfiguration" + }, + "tensorflow": { + "$ref": "#/components/schemas/TensorflowConfiguration" + }, + "mpi": { + "$ref": "#/components/schemas/MpiConfiguration" + }, + "pyTorch": { + "$ref": "#/components/schemas/PyTorchConfiguration" + }, + "ray": { + "$ref": "#/components/schemas/RayConfiguration" + }, + "hdi": { + "$ref": "#/components/schemas/HdiConfiguration" + }, + "docker": { + "$ref": "#/components/schemas/DockerConfiguration" + }, + "commandReturnCodeConfig": { + "$ref": "#/components/schemas/CommandReturnCodeConfig" }, - "SessionSetupModeEnum": { - "enum": [ - "ClientWait", - "SystemWait" - ], + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "applicationEndpoints": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ApplicationEndpointConfiguration" + }, + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParameterDefinition" + }, + "nullable": true + }, + "autologgerSettings": { + "$ref": "#/components/schemas/AutologgerSettings" + }, + "dataBricks": { + "$ref": "#/components/schemas/DatabricksConfiguration" + }, + "trainingDiagnosticConfig": { + "$ref": "#/components/schemas/TrainingDiagnosticConfiguration" + }, + "secretsConfiguration": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/SecretConfiguration" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "RunDatasetReference": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RunDefinition": { + "type": "object", + "properties": { + "configuration": { + "$ref": "#/components/schemas/RunConfiguration" + }, + "snapshotId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "snapshots": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Snapshot" + }, + "nullable": true + }, + "parentRunId": { + "type": "string", + "nullable": true + }, + "runType": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "environmentAssetId": { + "type": "string", + "nullable": true + }, + "primaryMetricName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "cancelReason": { + "type": "string", + "nullable": true + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "RunDetailsDto": { + "type": "object", + "properties": { + "runId": { + "type": "string", + "nullable": true + }, + "runUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "parentRunUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "rootRunUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "target": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "nullable": true + }, + "parentRunId": { + "type": "string", + "nullable": true + }, + "dataContainerId": { + "type": "string", + "nullable": true + }, + "createdTimeUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "startTimeUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTimeUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "error": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "warnings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunDetailsWarningDto" + }, + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "SetupFlowSessionAction": { - "enum": [ - "Install", - "Reset", - "Update", - "Delete" - ], + "properties": { + "type": "object", + "additionalProperties": { "type": "string" - }, - "SetupFlowSessionRequest": { - "type": "object", - "properties": { - "action": { - "$ref": "#/components/schemas/SetupFlowSessionAction" - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "maxIdleTimeSeconds": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "identity": { - "type": "string", - "nullable": true - }, - "computeName": { - "type": "string", - "nullable": true - }, - "enableMultiContainer": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "SeverityLevel": { - "enum": [ - "Critical", - "Error", - "Warning", - "Info" - ], + }, + "description": "This is a dictionary", + "nullable": true + }, + "parameters": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + }, + "services": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/EndpointSetting" + }, + "description": "This is a dictionary", + "nullable": true + }, + "inputDatasets": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/DatasetLineage" + }, + "nullable": true + }, + "outputDatasets": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/OutputDatasetLineage" + }, + "nullable": true + }, + "runDefinition": { + "nullable": true + }, + "logFiles": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "SharingScope": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/ScopeType" - }, - "identifier": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "ShortSeriesHandlingConfiguration": { - "enum": [ - "Auto", - "Pad", - "Drop" - ], - "type": "string" + "jobCost": { + "$ref": "#/components/schemas/JobCost" }, - "Snapshot": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid", - "nullable": true - }, - "directoryName": { - "type": "string", - "nullable": true - }, - "snapshotAssetId": { - "type": "string", - "nullable": true - }, - "snapshotEntityId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "revision": { + "type": "integer", + "format": "int64", + "nullable": true }, - "SnapshotInfo": { - "type": "object", - "properties": { - "rootDownloadUrl": { - "type": "string", - "nullable": true - }, - "snapshots": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DownloadResourceInfo" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "runTypeV2": { + "$ref": "#/components/schemas/RunTypeV2" }, - "SourceCodeDataReference": { - "type": "object", - "properties": { - "dataStoreName": { - "type": "string", - "nullable": true - }, - "path": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "settings": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "computeRequest": { + "$ref": "#/components/schemas/ComputeRequest" + }, + "compute": { + "$ref": "#/components/schemas/Compute" + }, + "createdBy": { + "$ref": "#/components/schemas/User" + }, + "computeDuration": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "effectiveStartTimeUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "runNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "rootRunId": { + "type": "string", + "nullable": true + }, + "experimentId": { + "type": "string", + "nullable": true + }, + "userId": { + "type": "string", + "nullable": true + }, + "statusRevision": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "currentComputeTime": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "lastStartTimeUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastModifiedBy": { + "$ref": "#/components/schemas/User" + }, + "lastModifiedUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "duration": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "inputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TypedAssetReference" + }, + "nullable": true + }, + "outputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TypedAssetReference" + }, + "nullable": true + }, + "currentAttemptId": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "RunDetailsWarningDto": { + "type": "object", + "properties": { + "source": { + "type": "string", + "nullable": true + }, + "message": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RunDisplayNameGenerationType": { + "enum": [ + "AutoAppend", + "UserProvidedMacro" + ], + "type": "string" + }, + "RunDto": { + "type": "object", + "properties": { + "runNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "rootRunId": { + "type": "string", + "nullable": true + }, + "createdUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "$ref": "#/components/schemas/User" + }, + "userId": { + "type": "string", + "nullable": true + }, + "token": { + "type": "string", + "nullable": true + }, + "tokenExpiryTimeUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "error": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "warnings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunDetailsWarningDto" + }, + "nullable": true + }, + "revision": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "statusRevision": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "runUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "parentRunUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "rootRunUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "lastStartTimeUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "currentComputeTime": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "computeDuration": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "effectiveStartTimeUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastModifiedBy": { + "$ref": "#/components/schemas/User" + }, + "lastModifiedUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "duration": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "cancelationReason": { + "type": "string", + "nullable": true + }, + "currentAttemptId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "runId": { + "type": "string", + "nullable": true + }, + "parentRunId": { + "type": "string", + "nullable": true + }, + "experimentId": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "nullable": true + }, + "startTimeUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTimeUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduleId": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "dataContainerId": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "hidden": { + "type": "boolean", + "nullable": true + }, + "runType": { + "type": "string", + "nullable": true + }, + "runTypeV2": { + "$ref": "#/components/schemas/RunTypeV2" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "parameters": { + "type": "object", + "additionalProperties": { + "nullable": true + }, + "nullable": true + }, + "actionUris": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "scriptName": { + "type": "string", + "nullable": true + }, + "target": { + "type": "string", + "nullable": true + }, + "uniqueChildRunComputeTargets": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "SparkConfiguration": { - "type": "object", - "properties": { - "configuration": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "files": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "archives": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "jars": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "pyFiles": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "sparkPoolResourceId": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "settings": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "services": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/EndpointSetting" + }, + "nullable": true + }, + "inputDatasets": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/DatasetLineage" + }, + "nullable": true + }, + "outputDatasets": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/OutputDatasetLineage" + }, + "nullable": true + }, + "runDefinition": { + "nullable": true + }, + "jobSpecification": { + "nullable": true + }, + "primaryMetricName": { + "type": "string", + "nullable": true + }, + "createdFrom": { + "$ref": "#/components/schemas/CreatedFromDto" + }, + "cancelUri": { + "type": "string", + "nullable": true + }, + "completeUri": { + "type": "string", + "nullable": true + }, + "diagnosticsUri": { + "type": "string", + "nullable": true + }, + "computeRequest": { + "$ref": "#/components/schemas/ComputeRequest" + }, + "compute": { + "$ref": "#/components/schemas/Compute" + }, + "retainForLifetimeOfWorkspace": { + "type": "boolean", + "nullable": true + }, + "queueingInfo": { + "$ref": "#/components/schemas/QueueingInfo" + }, + "inputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TypedAssetReference" + }, + "nullable": true + }, + "outputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TypedAssetReference" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "RunIndexEntity": { + "type": "object", + "properties": { + "schemaId": { + "type": "string", + "nullable": true + }, + "entityId": { + "type": "string", + "nullable": true + }, + "kind": { + "$ref": "#/components/schemas/EntityKind" + }, + "annotations": { + "$ref": "#/components/schemas/RunAnnotations" + }, + "properties": { + "$ref": "#/components/schemas/RunProperties" + }, + "internal": { + "$ref": "#/components/schemas/ExtensibleObject" + }, + "updateSequence": { + "type": "integer", + "format": "int64" + }, + "type": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "entityContainerId": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "entityObjectId": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "resourceType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "relationships": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Relationship" + }, + "nullable": true + }, + "assetId": { + "type": "string", + "nullable": true + }, + "usage": { + "$ref": "#/components/schemas/EntityUsage" + }, + "isAFragment": { + "type": "boolean" + }, + "fragmentId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RunIndexMetricSummary": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int64" }, - "SparkJarTaskDto": { - "type": "object", - "properties": { - "main_class_name": { - "type": "string", - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "lastValue": { + "nullable": true }, - "SparkJob": { - "type": "object", - "properties": { - "jobType": { - "$ref": "#/components/schemas/JobType" - }, - "resources": { - "$ref": "#/components/schemas/SparkResourceConfiguration" - }, - "args": { - "type": "string", - "nullable": true - }, - "codeId": { - "type": "string", - "nullable": true - }, - "entry": { - "$ref": "#/components/schemas/SparkJobEntry" - }, - "pyFiles": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "jars": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "files": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "archives": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "environmentId": { - "type": "string", - "nullable": true - }, - "inputDataBindings": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/InputDataBinding" - }, - "nullable": true - }, - "outputDataBindings": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/OutputDataBinding" - }, - "nullable": true - }, - "conf": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "provisioningState": { - "$ref": "#/components/schemas/JobProvisioningState" - }, - "parentJobName": { - "type": "string", - "nullable": true - }, - "displayName": { - "type": "string", - "nullable": true - }, - "experimentName": { - "type": "string", - "nullable": true - }, - "status": { - "$ref": "#/components/schemas/JobStatus" - }, - "interactionEndpoints": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/JobEndpoint" - }, - "nullable": true - }, - "identity": { - "$ref": "#/components/schemas/MfeInternalIdentityConfiguration" - }, - "compute": { - "$ref": "#/components/schemas/ComputeConfiguration" - }, - "priority": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "output": { - "$ref": "#/components/schemas/JobOutputArtifacts" - }, - "isArchived": { - "type": "boolean" - }, - "schedule": { - "$ref": "#/components/schemas/ScheduleBase" - }, - "componentId": { - "type": "string", - "nullable": true - }, - "notificationSetting": { - "$ref": "#/components/schemas/NotificationSetting" - }, - "secretsConfiguration": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/MfeInternalSecretConfiguration" - }, - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "minimumValue": { + "nullable": true }, - "SparkJobEntry": { - "type": "object", - "properties": { - "file": { - "type": "string", - "nullable": true - }, - "className": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "maximumValue": { + "nullable": true }, - "SparkMavenPackage": { - "type": "object", - "properties": { - "group": { - "type": "string", - "nullable": true - }, - "artifact": { - "type": "string", - "nullable": true - }, - "version": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "metricType": { + "type": "string", + "nullable": true + } + } + }, + "RunIndexMetricSummarySystemObject": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int64" }, - "SparkPythonTaskDto": { - "type": "object", - "properties": { - "python_file": { - "type": "string", - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "lastValue": { + "nullable": true }, - "SparkResourceConfiguration": { - "type": "object", - "properties": { - "instanceType": { - "type": "string", - "nullable": true - }, - "runtimeVersion": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "minimumValue": { + "nullable": true }, - "SparkSection": { - "type": "object", - "properties": { - "repositories": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "packages": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SparkMavenPackage" - }, - "nullable": true - }, - "precachePackages": { - "type": "boolean" - } - }, - "additionalProperties": false + "maximumValue": { + "nullable": true }, - "SparkSubmitTaskDto": { - "type": "object", - "properties": { - "parameters": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "metricType": { + "type": "string", + "nullable": true + } + } + }, + "RunIndexResourceMetricSummary": { + "type": "object", + "properties": { + "gpuUtilizationPercentLastHour": { + "type": "number", + "format": "double", + "nullable": true + }, + "gpuMemoryUtilizationPercentLastHour": { + "type": "number", + "format": "double", + "nullable": true + }, + "gpuEnergyJoules": { + "type": "number", + "format": "double", + "nullable": true + }, + "resourceMetricNames": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + }, + "RunMetricDto": { + "type": "object", + "properties": { + "runId": { + "type": "string", + "nullable": true + }, + "metricId": { + "type": "string", + "format": "uuid" + }, + "dataContainerId": { + "type": "string", + "nullable": true + }, + "metricType": { + "type": "string", + "nullable": true + }, + "createdUtc": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "label": { + "type": "string", + "nullable": true + }, + "numCells": { + "type": "integer", + "format": "int32" + }, + "dataLocation": { + "type": "string", + "nullable": true + }, + "cells": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary" + }, + "nullable": true + }, + "schema": { + "$ref": "#/components/schemas/MetricSchemaDto" + } + }, + "additionalProperties": false + }, + "RunMetricsTypesDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RunProperties": { + "type": "object", + "properties": { + "dataContainerId": { + "type": "string", + "nullable": true + }, + "targetName": { + "type": "string", + "nullable": true + }, + "runName": { + "type": "string", + "nullable": true + }, + "experimentName": { + "type": "string", + "nullable": true + }, + "runId": { + "type": "string", + "nullable": true + }, + "parentRunId": { + "type": "string", + "nullable": true + }, + "rootRunId": { + "type": "string", + "nullable": true + }, + "runType": { + "type": "string", + "nullable": true + }, + "runTypeV2": { + "$ref": "#/components/schemas/RunTypeV2Index" + }, + "scriptName": { + "type": "string", + "nullable": true + }, + "experimentId": { + "type": "string", + "nullable": true + }, + "runUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "parentRunUuid": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "runNumber": { + "type": "integer", + "format": "int32" + }, + "startTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "computeRequest": { + "$ref": "#/components/schemas/ComputeRequest" + }, + "compute": { + "$ref": "#/components/schemas/Compute" + }, + "userProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "SqlDataPath": { - "type": "object", - "properties": { - "sqlTableName": { - "type": "string", - "nullable": true - }, - "sqlQuery": { - "type": "string", - "nullable": true - }, - "sqlStoredProcedureName": { - "type": "string", - "nullable": true - }, - "sqlStoredProcedureParams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StoredProcedureParameter" - }, - "nullable": true - } - }, - "additionalProperties": false + "actionUris": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "duration": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "durationMilliseconds": { + "type": "number", + "format": "double", + "nullable": true + }, + "creationContext": { + "$ref": "#/components/schemas/CreationContext" + } + } + }, + "RunSettingParameter": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "label": { + "type": "string", + "nullable": true + }, + "parameterType": { + "$ref": "#/components/schemas/RunSettingParameterType" + }, + "isOptional": { + "type": "boolean", + "nullable": true + }, + "defaultValue": { + "type": "string", + "nullable": true + }, + "lowerBound": { + "type": "string", + "nullable": true + }, + "upperBound": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "runSettingUIHint": { + "$ref": "#/components/schemas/RunSettingUIParameterHint" + }, + "argumentName": { + "type": "string", + "nullable": true + }, + "sectionName": { + "type": "string", + "nullable": true + }, + "sectionDescription": { + "type": "string", + "nullable": true + }, + "sectionArgumentName": { + "type": "string", + "nullable": true + }, + "examples": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "StackEnsembleSettings": { - "type": "object", - "properties": { - "stackMetaLearnerType": { - "$ref": "#/components/schemas/StackMetaLearnerType" - }, - "stackMetaLearnerTrainPercentage": { - "type": "number", - "format": "double", - "nullable": true - }, - "stackMetaLearnerKWargs": { - "nullable": true - } - }, - "additionalProperties": false - }, - "StackMetaLearnerType": { - "enum": [ - "None", - "LogisticRegression", - "LogisticRegressionCV", - "LightGBMClassifier", - "ElasticNet", - "ElasticNetCV", - "LightGBMRegressor", - "LinearRegression" - ], - "type": "string" - }, - "StandbyPoolProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "count": { - "type": "integer", - "format": "int32" - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "standbyAvailableInstances": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StandbyPoolResourceStatus" - }, - "nullable": true - } - }, - "additionalProperties": false + "enumValues": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "StandbyPoolResourceStatus": { - "type": "object", - "properties": { - "status": { - "type": "string", - "nullable": true - }, - "error": { - "$ref": "#/components/schemas/CloudError" - } - }, - "additionalProperties": false + "enumValuesToArgumentStrings": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "StartRunResult": { - "required": [ - "runId" - ], - "type": "object", - "properties": { - "runId": { - "minLength": 1, - "type": "string" - } - }, - "additionalProperties": false + "enabledByParameterName": { + "type": "string", + "nullable": true }, - "StepRunProfile": { - "type": "object", - "properties": { - "stepRunId": { - "type": "string", - "nullable": true - }, - "stepRunNumber": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "runUrl": { - "type": "string", - "nullable": true - }, - "computeTarget": { - "type": "string", - "nullable": true - }, - "computeTargetUrl": { - "type": "string", - "nullable": true - }, - "nodeId": { - "type": "string", - "nullable": true - }, - "nodeName": { - "type": "string", - "nullable": true - }, - "stepName": { - "type": "string", - "nullable": true - }, - "createTime": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "startTime": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "endTime": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "status": { - "$ref": "#/components/schemas/RunStatus" - }, - "statusDetail": { - "type": "string", - "nullable": true - }, - "isReused": { - "type": "boolean" - }, - "reusedPipelineRunId": { - "type": "string", - "nullable": true - }, - "reusedStepRunId": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "statusTimeline": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunStatusPeriod" - }, - "nullable": true - } - }, - "additionalProperties": false + "enabledByParameterValues": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "StorageAuthType": { - "enum": [ - "MSI", - "ConnectionString", - "SAS" - ], + "disabledByParameters": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true + }, + "moduleRunSettingType": { + "$ref": "#/components/schemas/ModuleRunSettingTypes" + }, + "linkedParameterDefaultValueMapping": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "linkedParameterKeyName": { + "type": "string", + "nullable": true + }, + "supportLinkSetting": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "RunSettingParameterAssignment": { + "type": "object", + "properties": { + "useGraphDefaultCompute": { + "type": "boolean", + "nullable": true + }, + "mlcComputeType": { + "type": "string", + "nullable": true + }, + "computeRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameterAssignment" + }, + "nullable": true + }, + "linkedParameterName": { + "type": "string", + "nullable": true + }, + "valueType": { + "$ref": "#/components/schemas/ParameterValueType" + }, + "assignmentsToConcatenate": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParameterAssignment" + }, + "nullable": true + }, + "dataPathAssignment": { + "$ref": "#/components/schemas/LegacyDataPath" + }, + "dataSetDefinitionValueAssignment": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + }, + "name": { + "type": "string", + "nullable": true + }, + "value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RunSettingParameterType": { + "enum": [ + "Undefined", + "Int", + "Double", + "Bool", + "String", + "JsonString", + "YamlString", + "StringList" + ], + "type": "string" + }, + "RunSettingUIParameterHint": { + "type": "object", + "properties": { + "uiWidgetType": { + "$ref": "#/components/schemas/RunSettingUIWidgetTypeEnum" }, - "StorageInfo": { - "type": "object", - "properties": { - "storageAuthType": { - "$ref": "#/components/schemas/StorageAuthType" - }, - "connectionString": { - "type": "string", - "nullable": true - }, - "sasToken": { - "type": "string", - "nullable": true - }, - "accountName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "jsonEditor": { + "$ref": "#/components/schemas/UIJsonEditor" }, - "StoredProcedureParameter": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "value": { - "type": "string", - "nullable": true - }, - "type": { - "$ref": "#/components/schemas/StoredProcedureParameterType" - } - }, - "additionalProperties": false + "yamlEditor": { + "$ref": "#/components/schemas/UIYamlEditor" }, - "StoredProcedureParameterType": { - "enum": [ - "String", - "Int", - "Decimal", - "Guid", - "Boolean", - "Date" - ], - "type": "string" + "computeSelection": { + "$ref": "#/components/schemas/UIComputeSelection" }, - "Stream": { - "type": "object", - "properties": { - "canRead": { - "type": "boolean", - "readOnly": true - }, - "canWrite": { - "type": "boolean", - "readOnly": true - }, - "canSeek": { - "type": "boolean", - "readOnly": true - }, - "canTimeout": { - "type": "boolean", - "readOnly": true - }, - "length": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "position": { - "type": "integer", - "format": "int64" - }, - "readTimeout": { - "type": "integer", - "format": "int32" - }, - "writeTimeout": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "hyperparameterConfiguration": { + "$ref": "#/components/schemas/UIHyperparameterConfiguration" }, - "StructuredInterface": { - "type": "object", - "properties": { - "commandLinePattern": { - "type": "string", - "nullable": true - }, - "inputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StructuredInterfaceInput" - }, - "nullable": true - }, - "outputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StructuredInterfaceOutput" - }, - "nullable": true - }, - "controlOutputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ControlOutput" - }, - "nullable": true - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StructuredInterfaceParameter" - }, - "nullable": true - }, - "metadataParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StructuredInterfaceParameter" - }, - "nullable": true - }, - "arguments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ArgumentAssignment" - }, - "nullable": true - } - }, - "additionalProperties": false + "uxIgnore": { + "type": "boolean" }, - "StructuredInterfaceInput": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "label": { - "type": "string", - "nullable": true - }, - "dataTypeIdsList": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "isOptional": { - "type": "boolean" - }, - "description": { - "type": "string", - "nullable": true - }, - "skipProcessing": { - "type": "boolean" - }, - "isResource": { - "type": "boolean" - }, - "dataStoreMode": { - "$ref": "#/components/schemas/AEVADataStoreMode" - }, - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "overwrite": { - "type": "boolean" - }, - "dataReferenceName": { - "type": "string", - "nullable": true - }, - "datasetTypes": { - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/components/schemas/DatasetType" - }, - "nullable": true - } - }, - "additionalProperties": false + "anonymous": { + "type": "boolean" }, - "StructuredInterfaceOutput": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "label": { - "type": "string", - "nullable": true - }, - "dataTypeId": { - "type": "string", - "nullable": true - }, - "passThroughDataTypeInputName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "skipProcessing": { - "type": "boolean" - }, - "IsArtifact": { - "type": "boolean" - }, - "dataStoreName": { - "type": "string", - "nullable": true - }, - "dataStoreMode": { - "$ref": "#/components/schemas/AEVADataStoreMode" - }, - "pathOnCompute": { - "type": "string", - "nullable": true - }, - "overwrite": { - "type": "boolean" - }, - "dataReferenceName": { - "type": "string", - "nullable": true - }, - "trainingOutput": { - "$ref": "#/components/schemas/TrainingOutput" - }, - "datasetOutput": { - "$ref": "#/components/schemas/DatasetOutput" - }, - "AssetOutputSettings": { - "$ref": "#/components/schemas/AssetOutputSettings" - }, - "EarlyAvailable": { - "type": "boolean" - } - }, - "additionalProperties": false + "supportReset": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "RunSettingUIWidgetTypeEnum": { + "enum": [ + "Default", + "ComputeSelection", + "JsonEditor", + "Mode", + "SearchSpaceParameter", + "SectionToggle", + "YamlEditor", + "EnableRuntimeSweep", + "DataStoreSelection", + "Checkbox", + "MultipleSelection", + "HyperparameterConfiguration", + "JsonTextBox", + "Connection", + "Static" + ], + "type": "string" + }, + "RunStatus": { + "enum": [ + "NotStarted", + "Unapproved", + "Pausing", + "Paused", + "Starting", + "Preparing", + "Queued", + "Running", + "Finalizing", + "CancelRequested", + "Completed", + "Failed", + "Canceled" + ], + "type": "string" + }, + "RunStatusPeriod": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/RunStatus" + }, + "subPeriods": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubStatusPeriod" + }, + "nullable": true + }, + "start": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "end": { + "type": "integer", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false + }, + "RunType": { + "enum": [ + "HTTP", + "SDK", + "Schedule", + "Portal" + ], + "type": "string" + }, + "RunTypeV2": { + "type": "object", + "properties": { + "orchestrator": { + "type": "string", + "nullable": true + }, + "traits": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "StructuredInterfaceParameter": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "label": { - "type": "string", - "nullable": true - }, - "parameterType": { - "$ref": "#/components/schemas/ParameterType" - }, - "isOptional": { - "type": "boolean" - }, - "defaultValue": { - "type": "string", - "nullable": true - }, - "lowerBound": { - "type": "string", - "nullable": true - }, - "upperBound": { - "type": "string", - "nullable": true - }, - "enumValues": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "enumValuesToArgumentStrings": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "setEnvironmentVariable": { - "type": "boolean" - }, - "environmentVariableOverride": { - "type": "string", - "nullable": true - }, - "enabledByParameterName": { - "type": "string", - "nullable": true - }, - "enabledByParameterValues": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "uiHint": { - "$ref": "#/components/schemas/UIParameterHint" - }, - "groupNames": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "argumentName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "attribution": { + "type": "string", + "nullable": true }, - "StudioMigrationInfo": { - "type": "object", - "properties": { - "sourceWorkspaceId": { - "type": "string", - "nullable": true - }, - "sourceExperimentId": { - "type": "string", - "nullable": true - }, - "sourceExperimentLink": { - "type": "string", - "nullable": true - }, - "failedNodeIdList": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "errorMessage": { - "type": "string", - "nullable": true, - "readOnly": true - } - }, - "additionalProperties": false + "computeType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RunTypeV2Index": { + "type": "object", + "properties": { + "orchestrator": { + "type": "string", + "nullable": true + }, + "traits": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "attribution": { + "type": "string", + "nullable": true + }, + "computeType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RuntimeConfiguration": { + "type": "object", + "properties": { + "baseImage": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "RuntimeStatusEnum": { + "enum": [ + "Unavailable", + "Failed", + "NotExist", + "Starting", + "Stopping" + ], + "type": "string" + }, + "RuntimeType": { + "enum": [ + "ManagedOnlineEndpoint", + "ComputeInstance", + "TrainingSession" + ], + "type": "string" + }, + "SampleMeta": { + "type": "object", + "properties": { + "image": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "docLink": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "SubGraphConcatenateAssignment": { - "type": "object", - "properties": { - "concatenateParameter": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ParameterAssignment" - }, - "nullable": true - }, - "parameterAssignments": { - "$ref": "#/components/schemas/SubPipelineParameterAssignment" - } - }, - "additionalProperties": false + "createdAt": { + "type": "string", + "format": "date-time" }, - "SubGraphConfiguration": { - "type": "object", - "properties": { - "graphId": { - "type": "string", - "nullable": true - }, - "graphDraftId": { - "type": "string", - "nullable": true - }, - "DefaultCloudPriority": { - "$ref": "#/components/schemas/CloudPrioritySetting" - }, - "IsDynamic": { - "type": "boolean", - "default": false, - "nullable": true - } - }, - "additionalProperties": false + "updatedAt": { + "type": "string", + "format": "date-time" }, - "SubGraphConnectionInfo": { - "type": "object", - "properties": { - "nodeId": { - "type": "string", - "nullable": true - }, - "portName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "feedName": { + "type": "string", + "nullable": true }, - "SubGraphDataPathParameterAssignment": { - "type": "object", - "properties": { - "dataSetPathParameter": { - "$ref": "#/components/schemas/DataSetPathParameter" - }, - "dataSetPathParameterAssignments": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "version": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SamplingAlgorithmType": { + "enum": [ + "Random", + "Grid", + "Bayesian" + ], + "type": "string" + }, + "SavePipelineDraftRequest": { + "type": "object", + "properties": { + "uiWidgetMetaInfos": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UIWidgetMetaInfo" + }, + "nullable": true + }, + "webServiceInputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebServicePort" + }, + "nullable": true + }, + "webServiceOutputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebServicePort" + }, + "nullable": true + }, + "nodesInDraft": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "SubGraphInfo": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "defaultComputeTarget": { - "$ref": "#/components/schemas/ComputeSetting" - }, - "defaultDataStore": { - "$ref": "#/components/schemas/DatastoreSetting" - }, - "id": { - "type": "string", - "nullable": true - }, - "parentGraphId": { - "type": "string", - "nullable": true - }, - "pipelineDefinitionId": { - "type": "string", - "nullable": true - }, - "subGraphParameterAssignment": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubGraphParameterAssignment" - }, - "nullable": true - }, - "subGraphConcatenateAssignment": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubGraphConcatenateAssignment" - }, - "nullable": true - }, - "subGraphDataPathParameterAssignment": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubGraphDataPathParameterAssignment" - }, - "nullable": true - }, - "subGraphDefaultComputeTargetNodes": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "subGraphDefaultDataStoreNodes": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "inputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubGraphPortInfo" - }, - "nullable": true - }, - "outputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubGraphPortInfo" - }, - "nullable": true - } - }, - "additionalProperties": false + "name": { + "type": "string", + "nullable": true }, - "SubGraphParameterAssignment": { - "type": "object", - "properties": { - "parameter": { - "$ref": "#/components/schemas/Parameter" - }, - "parameterAssignments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubPipelineParameterAssignment" - }, - "nullable": true - } - }, - "additionalProperties": false + "pipelineType": { + "$ref": "#/components/schemas/PipelineType" }, - "SubGraphPortInfo": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "internal": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubGraphConnectionInfo" - }, - "nullable": true - }, - "external": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubGraphConnectionInfo" - }, - "nullable": true - } - }, - "additionalProperties": false + "pipelineDraftMode": { + "$ref": "#/components/schemas/PipelineDraftMode" }, - "SubPipelineDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "defaultComputeTarget": { - "$ref": "#/components/schemas/ComputeSetting" - }, - "defaultDataStore": { - "$ref": "#/components/schemas/DatastoreSetting" - }, - "pipelineFunctionName": { - "type": "string", - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "parentDefinitionId": { - "type": "string", - "nullable": true - }, - "fromModuleName": { - "type": "string", - "nullable": true - }, - "parameterList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Kwarg" - }, - "nullable": true - } - }, - "additionalProperties": false + "graphComponentsMode": { + "$ref": "#/components/schemas/GraphComponentsMode" }, - "SubPipelineParameterAssignment": { - "type": "object", - "properties": { - "nodeId": { - "type": "string", - "nullable": true - }, - "parameterName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "subPipelinesInfo": { + "$ref": "#/components/schemas/SubPipelinesInfo" }, - "SubPipelinesInfo": { - "type": "object", - "properties": { - "subGraphInfo": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubGraphInfo" - }, - "nullable": true - }, - "nodeIdToSubGraphIdMapping": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "subPipelineDefinition": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubPipelineDefinition" - }, - "nullable": true - } - }, - "additionalProperties": false + "flattenedSubGraphs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/PipelineSubDraft" + }, + "nullable": true }, - "SubStatusPeriod": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "subPeriods": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubStatusPeriod" - }, - "nullable": true - }, - "start": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "end": { - "type": "integer", - "format": "int64", - "nullable": true - } - }, - "additionalProperties": false + "pipelineParameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataPathAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/LegacyDataPath" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataSetDefinitionValueAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + }, + "description": "This is a dictionary", + "nullable": true + }, + "assetOutputSettingsAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AssetOutputSettings" + }, + "description": "This is a dictionary", + "nullable": true + }, + "graph": { + "$ref": "#/components/schemas/GraphDraftEntity" + }, + "pipelineRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameterAssignment" + }, + "nullable": true + }, + "moduleNodeRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeRunSetting" + }, + "nullable": true + }, + "moduleNodeUIInputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" + }, + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "SubmitBulkRunRequest": { - "type": "object", - "properties": { - "flowDefinitionFilePath": { - "type": "string", - "nullable": true - }, - "flowDefinitionResourceId": { - "type": "string", - "nullable": true - }, - "flowDefinitionDataStoreName": { - "type": "string", - "nullable": true - }, - "flowDefinitionBlobPath": { - "type": "string", - "nullable": true - }, - "flowDefinitionDataUri": { - "type": "string", - "nullable": true - }, - "runId": { - "type": "string", - "nullable": true - }, - "runDisplayName": { - "type": "string", - "nullable": true - }, - "runExperimentName": { - "type": "string", - "nullable": true - }, - "nodeVariant": { - "type": "string", - "nullable": true - }, - "variantRunId": { - "type": "string", - "nullable": true - }, - "baselineRunId": { - "type": "string", - "nullable": true - }, - "sessionId": { - "type": "string", - "nullable": true - }, - "sessionSetupMode": { - "$ref": "#/components/schemas/SessionSetupModeEnum" - }, - "sessionConfigMode": { - "$ref": "#/components/schemas/SessionConfigModeEnum" - }, - "flowLineageId": { - "type": "string", - "nullable": true - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "maxIdleTimeSeconds": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "identity": { - "type": "string", - "nullable": true - }, - "computeName": { - "type": "string", - "nullable": true - }, - "enableMultiContainer": { - "type": "boolean" - }, - "flowRunDisplayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "runtimeName": { - "type": "string", - "nullable": true - }, - "batchDataInput": { - "$ref": "#/components/schemas/BatchDataInput" - }, - "inputsMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "connections": { - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary" - }, - "description": "This is a dictionary", - "nullable": true - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputDataStore": { - "type": "string", - "nullable": true - }, - "runDisplayNameGenerationType": { - "$ref": "#/components/schemas/RunDisplayNameGenerationType" - }, - "collieRunSettings": { - "$ref": "#/components/schemas/CollieRunSettings" - }, - "workerCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "timeoutInSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "promptflowEngineType": { - "$ref": "#/components/schemas/PromptflowEngineType" - }, - "experimentNodeName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "continueRunOnStepFailure": { + "type": "boolean", + "nullable": true }, - "SubmitBulkRunResponse": { - "type": "object", - "properties": { - "nextActionIntervalInSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "actionType": { - "$ref": "#/components/schemas/ActionType" - }, - "flow_runs": { - "type": "array", - "items": {}, - "nullable": true - }, - "node_runs": { - "type": "array", - "items": {}, - "nullable": true - }, - "errorResponse": { - "$ref": "#/components/schemas/ErrorResponse" - }, - "flowName": { - "type": "string", - "nullable": true - }, - "flowRunDisplayName": { - "type": "string", - "nullable": true - }, - "flowRunId": { - "type": "string", - "nullable": true - }, - "flowGraph": { - "$ref": "#/components/schemas/FlowGraph" - }, - "flowGraphLayout": { - "$ref": "#/components/schemas/FlowGraphLayout" - }, - "flowRunResourceId": { - "type": "string", - "nullable": true - }, - "bulkTestId": { - "type": "string", - "nullable": true - }, - "batchInputs": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary" - }, - "nullable": true - }, - "batchDataInput": { - "$ref": "#/components/schemas/BatchDataInput" - }, - "createdBy": { - "$ref": "#/components/schemas/SchemaContractsCreatedBy" - }, - "createdOn": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "flowRunType": { - "$ref": "#/components/schemas/FlowRunTypeEnum" - }, - "flowType": { - "$ref": "#/components/schemas/FlowType" - }, - "runtimeName": { - "type": "string", - "nullable": true - }, - "amlComputeName": { - "type": "string", - "nullable": true - }, - "flowRunLogs": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "flowTestMode": { - "$ref": "#/components/schemas/FlowTestMode" - }, - "flowTestInfos": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowTestInfo" - }, - "nullable": true - }, - "workingDirectory": { - "type": "string", - "nullable": true - }, - "flowDagFileRelativePath": { - "type": "string", - "nullable": true - }, - "flowSnapshotId": { - "type": "string", - "nullable": true - }, - "variantRunToEvaluationRunsIdMapping": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "description": { + "type": "string", + "nullable": true }, - "SubmitFlowRequest": { - "type": "object", - "properties": { - "flowRunId": { - "type": "string", - "nullable": true - }, - "flowRunDisplayName": { - "type": "string", - "nullable": true - }, - "flowId": { - "type": "string", - "nullable": true - }, - "flow": { - "$ref": "#/components/schemas/Flow" - }, - "flowSubmitRunSettings": { - "$ref": "#/components/schemas/FlowSubmitRunSettings" - }, - "asyncSubmission": { - "type": "boolean" - }, - "useWorkspaceConnection": { - "type": "boolean" - }, - "enableAsyncFlowTest": { - "type": "boolean" - }, - "runDisplayNameGenerationType": { - "$ref": "#/components/schemas/RunDisplayNameGenerationType" - } - }, - "additionalProperties": false + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "SubmitPipelineRunRequest": { - "type": "object", - "properties": { - "computeTarget": { - "type": "string", - "nullable": true - }, - "flattenedSubGraphs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/PipelineSubDraft" - }, - "nullable": true - }, - "stepTags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "experimentName": { - "type": "string", - "nullable": true - }, - "pipelineParameters": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataPathAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/LegacyDataPath" - }, - "description": "This is a dictionary", - "nullable": true - }, - "dataSetDefinitionValueAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DataSetDefinitionValue" - }, - "description": "This is a dictionary", - "nullable": true - }, - "assetOutputSettingsAssignments": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AssetOutputSettings" - }, - "description": "This is a dictionary", - "nullable": true - }, - "enableNotification": { - "type": "boolean", - "nullable": true - }, - "subPipelinesInfo": { - "$ref": "#/components/schemas/SubPipelinesInfo" - }, - "displayName": { - "type": "string", - "nullable": true - }, - "runId": { - "type": "string", - "nullable": true - }, - "parentRunId": { - "type": "string", - "nullable": true - }, - "graph": { - "$ref": "#/components/schemas/GraphDraftEntity" - }, - "pipelineRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameterAssignment" - }, - "nullable": true - }, - "moduleNodeRunSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeRunSetting" - }, - "nullable": true - }, - "moduleNodeUIInputSettings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" - }, - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "continueRunOnStepFailure": { - "type": "boolean", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "enforceRerun": { - "type": "boolean", - "nullable": true - }, - "datasetAccessModes": { - "$ref": "#/components/schemas/DatasetAccessModes" - } - }, - "additionalProperties": false + "enforceRerun": { + "type": "boolean", + "nullable": true + }, + "datasetAccessModes": { + "$ref": "#/components/schemas/DatasetAccessModes" + } + }, + "additionalProperties": false + }, + "SavedDataSetReference": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ScheduleBase": { + "type": "object", + "properties": { + "scheduleStatus": { + "$ref": "#/components/schemas/MfeInternalScheduleStatus" + }, + "scheduleType": { + "$ref": "#/components/schemas/ScheduleType" + }, + "endTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "startTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "expression": { + "type": "string", + "nullable": true + }, + "frequency": { + "$ref": "#/components/schemas/RecurrenceFrequency" + }, + "interval": { + "type": "integer", + "format": "int32" + }, + "pattern": { + "$ref": "#/components/schemas/RecurrencePattern" + } + }, + "additionalProperties": false + }, + "ScheduleProvisioningStatus": { + "enum": [ + "Creating", + "Updating", + "Deleting", + "Succeeded", + "Failed", + "Canceled" + ], + "type": "string" + }, + "ScheduleStatus": { + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string" + }, + "ScheduleType": { + "enum": [ + "Cron", + "Recurrence" + ], + "type": "string" + }, + "SchemaContractsCreatedBy": { + "type": "object", + "properties": { + "userObjectId": { + "type": "string", + "nullable": true + }, + "userTenantId": { + "type": "string", + "nullable": true + }, + "userName": { + "type": "string", + "nullable": true + }, + "userPrincipalName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ScopeCloudConfiguration": { + "type": "object", + "properties": { + "inputPathSuffixes": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ArgumentAssignment" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputPathSuffixes": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ArgumentAssignment" + }, + "description": "This is a dictionary", + "nullable": true + }, + "userAlias": { + "type": "string", + "nullable": true + }, + "tokens": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "autoToken": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "vcp": { + "type": "number", + "format": "float", + "nullable": true + } + }, + "additionalProperties": false + }, + "ScopeType": { + "enum": [ + "Global", + "Tenant", + "Subscription", + "ResourceGroup", + "Workspace" + ], + "type": "string" + }, + "ScriptType": { + "enum": [ + "Python", + "Notebook" + ], + "type": "string" + }, + "Seasonality": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/SeasonalityMode" + }, + "value": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "SeasonalityMode": { + "enum": [ + "Auto", + "Custom" + ], + "type": "string" + }, + "SecretConfiguration": { + "type": "object", + "properties": { + "workspace_secret_name": { + "type": "string", + "nullable": true + }, + "uri": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SegmentedResult`1": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FlowIndexEntity" + }, + "nullable": true + }, + "continuationToken": { + "type": "string", + "nullable": true + }, + "count": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "nextLink": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ServiceLogRequest": { + "type": "object", + "properties": { + "logLevel": { + "$ref": "#/components/schemas/LogLevel" + }, + "message": { + "type": "string", + "nullable": true + }, + "timestamp": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "SessionApplication": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + }, + "image": { + "type": "string", + "nullable": true + }, + "envVars": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "pythonPipRequirements": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Volume" + }, + "nullable": true + }, + "setupResults": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionApplicationRunCommandResult" + }, + "nullable": true + }, + "port": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "SessionApplicationRunCommandResult": { + "type": "object", + "properties": { + "command": { + "type": "string", + "nullable": true + }, + "arguments": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "exitCode": { + "type": "integer", + "format": "int32" + }, + "stdOut": { + "type": "string", + "nullable": true + }, + "stdErr": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SessionConfigModeEnum": { + "enum": [ + "Default", + "ForceInstallPackage", + "ForceReset" + ], + "type": "string" + }, + "SessionProperties": { + "type": "object", + "properties": { + "sessionId": { + "type": "string", + "nullable": true + }, + "subscriptionId": { + "type": "string", + "nullable": true + }, + "resourceGroupName": { + "type": "string", + "nullable": true + }, + "workspaceName": { + "type": "string", + "nullable": true + }, + "existingUserComputeInstanceName": { + "type": "string", + "nullable": true + }, + "userObjectId": { + "type": "string", + "nullable": true + }, + "userTenantId": { + "type": "string", + "nullable": true + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "maxIdleTimeSeconds": { + "type": "integer", + "format": "int64" + }, + "applications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionApplication" + }, + "nullable": true + }, + "application": { + "$ref": "#/components/schemas/SessionApplication" + }, + "lastAliveTime": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "SessionRuntimeResources": { + "type": "object", + "properties": { + "vmSize": { + "type": "string", + "nullable": true + }, + "maxIdleTimeSeconds": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "identity": { + "type": "string", + "nullable": true + }, + "computeName": { + "type": "string", + "nullable": true + }, + "enableMultiContainer": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SessionSetupModeEnum": { + "enum": [ + "ClientWait", + "SystemWait" + ], + "type": "string" + }, + "SetupFlowSessionAction": { + "enum": [ + "Install", + "Reset", + "Update", + "Delete" + ], + "type": "string" + }, + "SetupFlowSessionRequest": { + "type": "object", + "properties": { + "action": { + "$ref": "#/components/schemas/SetupFlowSessionAction" + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "maxIdleTimeSeconds": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "identity": { + "type": "string", + "nullable": true + }, + "computeName": { + "type": "string", + "nullable": true + }, + "enableMultiContainer": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SeverityLevel": { + "enum": [ + "Critical", + "Error", + "Warning", + "Info" + ], + "type": "string" + }, + "SharingScope": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ScopeType" + }, + "identifier": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ShortSeriesHandlingConfiguration": { + "enum": [ + "Auto", + "Pad", + "Drop" + ], + "type": "string" + }, + "Snapshot": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "directoryName": { + "type": "string", + "nullable": true + }, + "snapshotAssetId": { + "type": "string", + "nullable": true + }, + "snapshotEntityId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SnapshotInfo": { + "type": "object", + "properties": { + "rootDownloadUrl": { + "type": "string", + "nullable": true + }, + "snapshots": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DownloadResourceInfo" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "SourceCodeDataReference": { + "type": "object", + "properties": { + "dataStoreName": { + "type": "string", + "nullable": true + }, + "path": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SparkConfiguration": { + "type": "object", + "properties": { + "configuration": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "files": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "SuccessfulCommandReturnCode": { - "enum": [ - "Zero", - "ZeroOrGreater" - ], + "archives": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "SweepEarlyTerminationPolicy": { - "type": "object", - "properties": { - "policyType": { - "$ref": "#/components/schemas/EarlyTerminationPolicyType" - }, - "evaluationInterval": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "delayEvaluation": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "slackFactor": { - "type": "number", - "format": "float", - "nullable": true - }, - "slackAmount": { - "type": "number", - "format": "float", - "nullable": true - }, - "truncationPercentage": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "jars": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "SweepSettings": { - "type": "object", - "properties": { - "limits": { - "$ref": "#/components/schemas/SweepSettingsLimits" - }, - "searchSpace": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "nullable": true - }, - "samplingAlgorithm": { - "$ref": "#/components/schemas/SamplingAlgorithmType" - }, - "earlyTermination": { - "$ref": "#/components/schemas/SweepEarlyTerminationPolicy" - } - }, - "additionalProperties": false + "pyFiles": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "SweepSettingsLimits": { - "type": "object", - "properties": { - "maxTotalTrials": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "maxConcurrentTrials": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "sparkPoolResourceId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SparkJarTaskDto": { + "type": "object", + "properties": { + "main_class_name": { + "type": "string", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SparkJob": { + "type": "object", + "properties": { + "jobType": { + "$ref": "#/components/schemas/JobType" }, - "SystemData": { - "type": "object", - "properties": { - "createdAt": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "createdBy": { - "type": "string", - "nullable": true - }, - "createdByType": { - "$ref": "#/components/schemas/UserType" - }, - "lastModifiedAt": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "lastModifiedBy": { - "type": "string", - "nullable": true - }, - "lastModifiedByType": { - "$ref": "#/components/schemas/UserType" - } - }, - "additionalProperties": false + "resources": { + "$ref": "#/components/schemas/SparkResourceConfiguration" }, - "SystemMeta": { - "type": "object", - "properties": { - "identifierHash": { - "type": "string", - "nullable": true - }, - "extraHash": { - "type": "string", - "nullable": true - }, - "contentHash": { - "type": "string", - "nullable": true - }, - "identifierHashes": { - "type": "object", - "properties": { - "IdentifierHash": { - "type": "string" - }, - "IdentifierHashV2": { - "type": "string" - } - }, - "additionalProperties": false, - "nullable": true - }, - "extraHashes": { - "type": "object", - "properties": { - "IdentifierHash": { - "type": "string" - }, - "IdentifierHashV2": { - "type": "string" - } - }, - "additionalProperties": false, - "nullable": true - } - }, - "additionalProperties": false + "args": { + "type": "string", + "nullable": true }, - "TabularTrainingMode": { - "enum": [ - "Distributed", - "NonDistributed", - "Auto" - ], - "type": "string" + "codeId": { + "type": "string", + "nullable": true }, - "TargetAggregationFunction": { - "enum": [ - "Sum", - "Max", - "Min", - "Mean" - ], + "entry": { + "$ref": "#/components/schemas/SparkJobEntry" + }, + "pyFiles": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "TargetLags": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/components/schemas/TargetLagsMode" - }, - "values": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - } - }, - "additionalProperties": false + "jars": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "TargetLagsMode": { - "enum": [ - "Auto", - "Custom" - ], + "files": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "TargetRollingWindowSize": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/components/schemas/TargetRollingWindowSizeMode" - }, - "value": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "archives": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "environmentId": { + "type": "string", + "nullable": true + }, + "inputDataBindings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/InputDataBinding" + }, + "nullable": true + }, + "outputDataBindings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/OutputDataBinding" + }, + "nullable": true + }, + "conf": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "provisioningState": { + "$ref": "#/components/schemas/JobProvisioningState" + }, + "parentJobName": { + "type": "string", + "nullable": true + }, + "displayName": { + "type": "string", + "nullable": true + }, + "experimentName": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/JobStatus" + }, + "interactionEndpoints": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/JobEndpoint" + }, + "nullable": true + }, + "identity": { + "$ref": "#/components/schemas/MfeInternalIdentityConfiguration" + }, + "compute": { + "$ref": "#/components/schemas/ComputeConfiguration" + }, + "priority": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "output": { + "$ref": "#/components/schemas/JobOutputArtifacts" + }, + "isArchived": { + "type": "boolean" + }, + "schedule": { + "$ref": "#/components/schemas/ScheduleBase" + }, + "componentId": { + "type": "string", + "nullable": true + }, + "notificationSetting": { + "$ref": "#/components/schemas/NotificationSetting" + }, + "secretsConfiguration": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/MfeInternalSecretConfiguration" + }, + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "TargetRollingWindowSizeMode": { - "enum": [ - "Auto", - "Custom" - ], + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "SparkJobEntry": { + "type": "object", + "properties": { + "file": { + "type": "string", + "nullable": true + }, + "className": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SparkMavenPackage": { + "type": "object", + "properties": { + "group": { + "type": "string", + "nullable": true + }, + "artifact": { + "type": "string", + "nullable": true + }, + "version": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SparkPythonTaskDto": { + "type": "object", + "properties": { + "python_file": { + "type": "string", + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SparkResourceConfiguration": { + "type": "object", + "properties": { + "instanceType": { + "type": "string", + "nullable": true + }, + "runtimeVersion": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SparkSection": { + "type": "object", + "properties": { + "repositories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "packages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SparkMavenPackage" + }, + "nullable": true + }, + "precachePackages": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SparkSubmitTaskDto": { + "type": "object", + "properties": { + "parameters": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SqlDataPath": { + "type": "object", + "properties": { + "sqlTableName": { + "type": "string", + "nullable": true + }, + "sqlQuery": { + "type": "string", + "nullable": true + }, + "sqlStoredProcedureName": { + "type": "string", + "nullable": true + }, + "sqlStoredProcedureParams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StoredProcedureParameter" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "StackEnsembleSettings": { + "type": "object", + "properties": { + "stackMetaLearnerType": { + "$ref": "#/components/schemas/StackMetaLearnerType" + }, + "stackMetaLearnerTrainPercentage": { + "type": "number", + "format": "double", + "nullable": true + }, + "stackMetaLearnerKWargs": { + "nullable": true + } + }, + "additionalProperties": false + }, + "StackMetaLearnerType": { + "enum": [ + "None", + "LogisticRegression", + "LogisticRegressionCV", + "LightGBMClassifier", + "ElasticNet", + "ElasticNetCV", + "LightGBMRegressor", + "LinearRegression" + ], + "type": "string" + }, + "StandbyPoolProperties": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "count": { + "type": "integer", + "format": "int32" + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "standbyAvailableInstances": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandbyPoolResourceStatus" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "StandbyPoolResourceStatus": { + "type": "object", + "properties": { + "status": { + "type": "string", + "nullable": true + }, + "error": { + "$ref": "#/components/schemas/CloudError" + } + }, + "additionalProperties": false + }, + "StartRunResult": { + "required": [ + "runId" + ], + "type": "object", + "properties": { + "runId": { + "minLength": 1, + "type": "string" + } + }, + "additionalProperties": false + }, + "StepRunProfile": { + "type": "object", + "properties": { + "stepRunId": { + "type": "string", + "nullable": true + }, + "stepRunNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "runUrl": { + "type": "string", + "nullable": true + }, + "computeTarget": { + "type": "string", + "nullable": true + }, + "computeTargetUrl": { + "type": "string", + "nullable": true + }, + "nodeId": { + "type": "string", + "nullable": true + }, + "nodeName": { + "type": "string", + "nullable": true + }, + "stepName": { + "type": "string", + "nullable": true + }, + "createTime": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "startTime": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "endTime": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/RunStatus" + }, + "statusDetail": { + "type": "string", + "nullable": true + }, + "isReused": { + "type": "boolean" + }, + "reusedPipelineRunId": { + "type": "string", + "nullable": true + }, + "reusedStepRunId": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "statusTimeline": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunStatusPeriod" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "StorageAuthType": { + "enum": [ + "MSI", + "ConnectionString", + "SAS" + ], + "type": "string" + }, + "StorageInfo": { + "type": "object", + "properties": { + "storageAuthType": { + "$ref": "#/components/schemas/StorageAuthType" + }, + "connectionString": { + "type": "string", + "nullable": true + }, + "sasToken": { + "type": "string", + "nullable": true + }, + "accountName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "StoredProcedureParameter": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "value": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/StoredProcedureParameterType" + } + }, + "additionalProperties": false + }, + "StoredProcedureParameterType": { + "enum": [ + "String", + "Int", + "Decimal", + "Guid", + "Boolean", + "Date" + ], + "type": "string" + }, + "Stream": { + "type": "object", + "properties": { + "canRead": { + "type": "boolean", + "readOnly": true + }, + "canWrite": { + "type": "boolean", + "readOnly": true + }, + "canSeek": { + "type": "boolean", + "readOnly": true + }, + "canTimeout": { + "type": "boolean", + "readOnly": true + }, + "length": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "position": { + "type": "integer", + "format": "int64" + }, + "readTimeout": { + "type": "integer", + "format": "int32" + }, + "writeTimeout": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "StructuredInterface": { + "type": "object", + "properties": { + "commandLinePattern": { + "type": "string", + "nullable": true + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StructuredInterfaceInput" + }, + "nullable": true + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StructuredInterfaceOutput" + }, + "nullable": true + }, + "controlOutputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ControlOutput" + }, + "nullable": true + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StructuredInterfaceParameter" + }, + "nullable": true + }, + "metadataParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StructuredInterfaceParameter" + }, + "nullable": true + }, + "arguments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArgumentAssignment" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "StructuredInterfaceInput": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "label": { + "type": "string", + "nullable": true + }, + "dataTypeIdsList": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "TargetSelectorConfiguration": { - "type": "object", - "properties": { - "lowPriorityVMTolerant": { - "type": "boolean" - }, - "clusterBlockList": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "computeType": { - "type": "string", - "nullable": true - }, - "instanceType": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "instanceTypes": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "myResourceOnly": { - "type": "boolean" - }, - "planId": { - "type": "string", - "nullable": true - }, - "planRegionId": { - "type": "string", - "nullable": true - }, - "region": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "regions": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "vcBlockList": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "isOptional": { + "type": "boolean" }, - "Task": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "exception": { - "nullable": true, - "readOnly": true - }, - "status": { - "$ref": "#/components/schemas/TaskStatus" - }, - "isCanceled": { - "type": "boolean", - "readOnly": true - }, - "isCompleted": { - "type": "boolean", - "readOnly": true - }, - "isCompletedSuccessfully": { - "type": "boolean", - "readOnly": true - }, - "creationOptions": { - "$ref": "#/components/schemas/TaskCreationOptions" - }, - "asyncState": { - "nullable": true, - "readOnly": true - }, - "isFaulted": { - "type": "boolean", - "readOnly": true - } - }, - "additionalProperties": false + "description": { + "type": "string", + "nullable": true }, - "TaskControlFlowInfo": { - "type": "object", - "properties": { - "controlFlowType": { - "$ref": "#/components/schemas/ControlFlowType" - }, - "iterationIndex": { - "type": "integer", - "format": "int32" - }, - "itemName": { - "type": "string", - "nullable": true - }, - "parametersOverwritten": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "isReused": { - "type": "boolean" - } - }, - "additionalProperties": false + "skipProcessing": { + "type": "boolean" + }, + "isResource": { + "type": "boolean" + }, + "dataStoreMode": { + "$ref": "#/components/schemas/AEVADataStoreMode" + }, + "pathOnCompute": { + "type": "string", + "nullable": true + }, + "overwrite": { + "type": "boolean" + }, + "dataReferenceName": { + "type": "string", + "nullable": true + }, + "datasetTypes": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/DatasetType" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "StructuredInterfaceOutput": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "label": { + "type": "string", + "nullable": true + }, + "dataTypeId": { + "type": "string", + "nullable": true + }, + "passThroughDataTypeInputName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "skipProcessing": { + "type": "boolean" + }, + "IsArtifact": { + "type": "boolean" + }, + "dataStoreName": { + "type": "string", + "nullable": true + }, + "dataStoreMode": { + "$ref": "#/components/schemas/AEVADataStoreMode" + }, + "pathOnCompute": { + "type": "string", + "nullable": true + }, + "overwrite": { + "type": "boolean" + }, + "dataReferenceName": { + "type": "string", + "nullable": true + }, + "trainingOutput": { + "$ref": "#/components/schemas/TrainingOutput" + }, + "datasetOutput": { + "$ref": "#/components/schemas/DatasetOutput" + }, + "AssetOutputSettings": { + "$ref": "#/components/schemas/AssetOutputSettings" }, - "TaskCreationOptions": { - "enum": [ - "None", - "PreferFairness", - "LongRunning", - "AttachedToParent", - "DenyChildAttach", - "HideScheduler", - "RunContinuationsAsynchronously" - ], + "EarlyAvailable": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "StructuredInterfaceParameter": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "label": { + "type": "string", + "nullable": true + }, + "parameterType": { + "$ref": "#/components/schemas/ParameterType" + }, + "isOptional": { + "type": "boolean" + }, + "defaultValue": { + "type": "string", + "nullable": true + }, + "lowerBound": { + "type": "string", + "nullable": true + }, + "upperBound": { + "type": "string", + "nullable": true + }, + "enumValues": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "TaskReuseInfo": { - "type": "object", - "properties": { - "experimentId": { - "type": "string", - "nullable": true - }, - "pipelineRunId": { - "type": "string", - "nullable": true - }, - "nodeId": { - "type": "string", - "nullable": true - }, - "requestId": { - "type": "string", - "nullable": true - }, - "runId": { - "type": "string", - "nullable": true - }, - "nodeStartTime": { - "type": "string", - "format": "date-time" - }, - "nodeEndTime": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false - }, - "TaskStatus": { - "enum": [ - "Created", - "WaitingForActivation", - "WaitingToRun", - "Running", - "WaitingForChildrenToComplete", - "RanToCompletion", - "Canceled", - "Faulted" - ], - "type": "string" - }, - "TaskStatusCode": { - "enum": [ - "NotStarted", - "Queued", - "Running", - "Failed", - "Finished", - "Canceled", - "PartiallyExecuted", - "Bypassed" - ], - "type": "string" - }, - "TaskType": { - "enum": [ - "Classification", - "Regression", - "Forecasting", - "ImageClassification", - "ImageClassificationMultilabel", - "ImageObjectDetection", - "ImageInstanceSegmentation", - "TextClassification", - "TextMultiLabeling", - "TextNER", - "TextClassificationMultilabel" - ], - "type": "string" - }, - "TensorflowConfiguration": { - "type": "object", - "properties": { - "workerCount": { - "type": "integer", - "format": "int32" - }, - "parameterServerCount": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "enumValuesToArgumentStrings": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "TestDataSettings": { - "type": "object", - "properties": { - "testDataSize": { - "type": "number", - "format": "double", - "nullable": true - } - }, - "additionalProperties": false + "description": { + "type": "string", + "nullable": true }, - "Tool": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "type": { - "$ref": "#/components/schemas/ToolType" - }, - "inputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/InputDefinition" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputs": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/OutputDefinition" - }, - "description": "This is a dictionary", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "connection_type": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionType" - }, - "nullable": true - }, - "module": { - "type": "string", - "nullable": true - }, - "class_name": { - "type": "string", - "nullable": true - }, - "source": { - "type": "string", - "nullable": true - }, - "lkgCode": { - "type": "string", - "nullable": true - }, - "code": { - "type": "string", - "nullable": true - }, - "function": { - "type": "string", - "nullable": true - }, - "action_type": { - "type": "string", - "nullable": true - }, - "provider_config": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/InputDefinition" - }, - "description": "This is a dictionary", - "nullable": true - }, - "function_config": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/InputDefinition" - }, - "description": "This is a dictionary", - "nullable": true - }, - "icon": { - "nullable": true - }, - "category": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary", - "nullable": true - }, - "is_builtin": { - "type": "boolean" - }, - "package": { - "type": "string", - "nullable": true - }, - "package_version": { - "type": "string", - "nullable": true - }, - "default_prompt": { - "type": "string", - "nullable": true - }, - "enable_kwargs": { - "type": "boolean" - }, - "deprecated_tools": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "tool_state": { - "$ref": "#/components/schemas/ToolState" - } - }, - "additionalProperties": false + "setEnvironmentVariable": { + "type": "boolean" + }, + "environmentVariableOverride": { + "type": "string", + "nullable": true }, - "ToolFuncCallScenario": { - "enum": [ - "generated_by", - "reverse_generated_by", - "dynamic_list" - ], + "enabledByParameterName": { + "type": "string", + "nullable": true + }, + "enabledByParameterValues": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "ToolFuncResponse": { - "type": "object", - "properties": { - "result": { - "nullable": true - }, - "logs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "uiHint": { + "$ref": "#/components/schemas/UIParameterHint" }, - "ToolInputDynamicList": { - "type": "object", - "properties": { - "func_path": { - "type": "string", - "nullable": true - }, - "func_kwargs": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary" - }, - "nullable": true - } - }, - "additionalProperties": false + "groupNames": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "ToolInputGeneratedBy": { - "type": "object", - "properties": { - "func_path": { - "type": "string", - "nullable": true - }, - "func_kwargs": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary" - }, - "nullable": true - }, - "reverse_func_path": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "argumentName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "StudioMigrationInfo": { + "type": "object", + "properties": { + "sourceWorkspaceId": { + "type": "string", + "nullable": true + }, + "sourceExperimentId": { + "type": "string", + "nullable": true + }, + "sourceExperimentLink": { + "type": "string", + "nullable": true + }, + "failedNodeIdList": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "errorMessage": { + "type": "string", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false + }, + "SubGraphConcatenateAssignment": { + "type": "object", + "properties": { + "concatenateParameter": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParameterAssignment" + }, + "nullable": true + }, + "parameterAssignments": { + "$ref": "#/components/schemas/SubPipelineParameterAssignment" + } + }, + "additionalProperties": false + }, + "SubGraphConfiguration": { + "type": "object", + "properties": { + "graphId": { + "type": "string", + "nullable": true + }, + "graphDraftId": { + "type": "string", + "nullable": true + }, + "DefaultCloudPriority": { + "$ref": "#/components/schemas/CloudPrioritySetting" + }, + "IsDynamic": { + "type": "boolean", + "default": false, + "nullable": true + } + }, + "additionalProperties": false + }, + "SubGraphConnectionInfo": { + "type": "object", + "properties": { + "nodeId": { + "type": "string", + "nullable": true + }, + "portName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SubGraphDataPathParameterAssignment": { + "type": "object", + "properties": { + "dataSetPathParameter": { + "$ref": "#/components/schemas/DataSetPathParameter" + }, + "dataSetPathParameterAssignments": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SubGraphInfo": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "defaultComputeTarget": { + "$ref": "#/components/schemas/ComputeSetting" + }, + "defaultDataStore": { + "$ref": "#/components/schemas/DatastoreSetting" + }, + "id": { + "type": "string", + "nullable": true + }, + "parentGraphId": { + "type": "string", + "nullable": true + }, + "pipelineDefinitionId": { + "type": "string", + "nullable": true + }, + "subGraphParameterAssignment": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubGraphParameterAssignment" + }, + "nullable": true + }, + "subGraphConcatenateAssignment": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubGraphConcatenateAssignment" + }, + "nullable": true + }, + "subGraphDataPathParameterAssignment": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubGraphDataPathParameterAssignment" + }, + "nullable": true + }, + "subGraphDefaultComputeTargetNodes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "subGraphDefaultDataStoreNodes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubGraphPortInfo" + }, + "nullable": true + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubGraphPortInfo" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SubGraphParameterAssignment": { + "type": "object", + "properties": { + "parameter": { + "$ref": "#/components/schemas/Parameter" + }, + "parameterAssignments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubPipelineParameterAssignment" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SubGraphPortInfo": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "internal": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubGraphConnectionInfo" + }, + "nullable": true + }, + "external": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubGraphConnectionInfo" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SubPipelineDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "defaultComputeTarget": { + "$ref": "#/components/schemas/ComputeSetting" + }, + "defaultDataStore": { + "$ref": "#/components/schemas/DatastoreSetting" + }, + "pipelineFunctionName": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "parentDefinitionId": { + "type": "string", + "nullable": true + }, + "fromModuleName": { + "type": "string", + "nullable": true + }, + "parameterList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Kwarg" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SubPipelineParameterAssignment": { + "type": "object", + "properties": { + "nodeId": { + "type": "string", + "nullable": true + }, + "parameterName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SubPipelinesInfo": { + "type": "object", + "properties": { + "subGraphInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubGraphInfo" + }, + "nullable": true + }, + "nodeIdToSubGraphIdMapping": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "subPipelineDefinition": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubPipelineDefinition" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SubStatusPeriod": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "subPeriods": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubStatusPeriod" + }, + "nullable": true + }, + "start": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "end": { + "type": "integer", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false + }, + "SubmitBulkRunRequest": { + "type": "object", + "properties": { + "flowDefinitionFilePath": { + "type": "string", + "nullable": true + }, + "flowDefinitionResourceId": { + "type": "string", + "nullable": true + }, + "flowDefinitionDataStoreName": { + "type": "string", + "nullable": true + }, + "flowDefinitionBlobPath": { + "type": "string", + "nullable": true + }, + "flowDefinitionDataUri": { + "type": "string", + "nullable": true + }, + "runId": { + "type": "string", + "nullable": true + }, + "runDisplayName": { + "type": "string", + "nullable": true + }, + "runExperimentName": { + "type": "string", + "nullable": true + }, + "nodeVariant": { + "type": "string", + "nullable": true + }, + "variantRunId": { + "type": "string", + "nullable": true + }, + "baselineRunId": { + "type": "string", + "nullable": true + }, + "sessionId": { + "type": "string", + "nullable": true + }, + "sessionSetupMode": { + "$ref": "#/components/schemas/SessionSetupModeEnum" + }, + "sessionConfigMode": { + "$ref": "#/components/schemas/SessionConfigModeEnum" + }, + "flowLineageId": { + "type": "string", + "nullable": true + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "maxIdleTimeSeconds": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "identity": { + "type": "string", + "nullable": true + }, + "computeName": { + "type": "string", + "nullable": true + }, + "enableMultiContainer": { + "type": "boolean" + }, + "flowRunDisplayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "ToolMetaDto": { - "type": "object", - "properties": { - "tools": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Tool" - }, - "description": "This is a dictionary", - "nullable": true - }, - "errors": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/ErrorResponse" - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "ToolSetting": { - "type": "object", - "properties": { - "providers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProviderEntity" - }, - "nullable": true - } - }, - "additionalProperties": false + "runtimeName": { + "type": "string", + "nullable": true }, - "ToolSourceMeta": { + "batchDataInput": { + "$ref": "#/components/schemas/BatchDataInput" + }, + "inputsMapping": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "connections": { + "type": "object", + "additionalProperties": { "type": "object", - "properties": { - "tool_type": { - "type": "string", - "nullable": true - } + "additionalProperties": { + "type": "string" }, - "additionalProperties": false + "description": "This is a dictionary" + }, + "description": "This is a dictionary", + "nullable": true }, - "ToolState": { - "enum": [ - "Stable", - "Preview", - "Deprecated" - ], + "environmentVariables": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "ToolType": { - "enum": [ - "llm", - "python", - "action", - "prompt", - "custom_llm", - "csharp", - "typescript" - ], - "type": "string" + "outputDataStore": { + "type": "string", + "nullable": true }, - "TorchDistributedConfiguration": { - "type": "object", - "properties": { - "processCountPerNode": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "runDisplayNameGenerationType": { + "$ref": "#/components/schemas/RunDisplayNameGenerationType" }, - "TraceCosmosResourceDto": { - "type": "object", - "properties": { - "accountEndpoint": { - "type": "string", - "nullable": true - }, - "databaseName": { - "type": "string", - "nullable": true - }, - "containerName": { - "type": "string", - "nullable": true - }, - "resourceUrl": { - "type": "string", - "nullable": true - }, - "resourceToken": { - "type": "string", - "nullable": true - }, - "permissionMode": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "collieRunSettings": { + "$ref": "#/components/schemas/CollieRunSettings" }, - "TraceCosmosResourceDtos": { - "type": "object", - "properties": { - "resourceTokens": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TraceCosmosResourceDto" - }, - "nullable": true - } - }, - "additionalProperties": false + "workerCount": { + "type": "integer", + "format": "int32", + "nullable": true }, - "TrainingDiagnosticConfiguration": { - "type": "object", - "properties": { - "jobHeartBeatTimeoutSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - } - }, - "additionalProperties": false + "timeoutInSeconds": { + "type": "integer", + "format": "int32", + "nullable": true }, - "TrainingOutput": { - "type": "object", - "properties": { - "trainingOutputType": { - "$ref": "#/components/schemas/TrainingOutputType" - }, - "iteration": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "metric": { - "type": "string", - "nullable": true - }, - "modelFile": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "promptflowEngineType": { + "$ref": "#/components/schemas/PromptflowEngineType" }, - "TrainingOutputType": { - "enum": [ - "Metrics", - "Model" - ], - "type": "string" + "experimentNodeName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "SubmitBulkRunResponse": { + "type": "object", + "properties": { + "nextActionIntervalInSeconds": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "actionType": { + "$ref": "#/components/schemas/ActionType" + }, + "flow_runs": { + "type": "array", + "items": { }, + "nullable": true + }, + "node_runs": { + "type": "array", + "items": { }, + "nullable": true + }, + "errorResponse": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "flowName": { + "type": "string", + "nullable": true + }, + "flowRunDisplayName": { + "type": "string", + "nullable": true + }, + "flowRunId": { + "type": "string", + "nullable": true + }, + "flowGraph": { + "$ref": "#/components/schemas/FlowGraph" + }, + "flowGraphLayout": { + "$ref": "#/components/schemas/FlowGraphLayout" + }, + "flowRunResourceId": { + "type": "string", + "nullable": true + }, + "bulkTestId": { + "type": "string", + "nullable": true + }, + "batchInputs": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary" + }, + "nullable": true + }, + "batchDataInput": { + "$ref": "#/components/schemas/BatchDataInput" + }, + "createdBy": { + "$ref": "#/components/schemas/SchemaContractsCreatedBy" + }, + "createdOn": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "flowRunType": { + "$ref": "#/components/schemas/FlowRunTypeEnum" + }, + "flowType": { + "$ref": "#/components/schemas/FlowType" + }, + "runtimeName": { + "type": "string", + "nullable": true + }, + "amlComputeName": { + "type": "string", + "nullable": true + }, + "flowRunLogs": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "flowTestMode": { + "$ref": "#/components/schemas/FlowTestMode" + }, + "flowTestInfos": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowTestInfo" + }, + "nullable": true + }, + "workingDirectory": { + "type": "string", + "nullable": true + }, + "flowDagFileRelativePath": { + "type": "string", + "nullable": true + }, + "flowSnapshotId": { + "type": "string", + "nullable": true + }, + "variantRunToEvaluationRunsIdMapping": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "SubmitExperimentRequest": { + "type": "object", + "properties": { + "experimentTemplateId": { + "type": "string", + "nullable": true + }, + "experimentDefinitionSource": { + "$ref": "#/components/schemas/ExperimentDefinitionSource" + } + }, + "additionalProperties": false + }, + "SubmitFlowRequest": { + "type": "object", + "properties": { + "flowRunId": { + "type": "string", + "nullable": true }, - "TrainingSettings": { - "type": "object", - "properties": { - "blockListModels": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "allowListModels": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "enableDnnTraining": { - "type": "boolean", - "nullable": true - }, - "enableOnnxCompatibleModels": { - "type": "boolean", - "nullable": true - }, - "stackEnsembleSettings": { - "$ref": "#/components/schemas/StackEnsembleSettings" - }, - "enableStackEnsemble": { - "type": "boolean", - "nullable": true - }, - "enableVoteEnsemble": { - "type": "boolean", - "nullable": true - }, - "ensembleModelDownloadTimeout": { - "type": "string", - "format": "date-span", - "nullable": true - }, - "enableModelExplainability": { - "type": "boolean", - "nullable": true - }, - "trainingMode": { - "$ref": "#/components/schemas/TabularTrainingMode" - } - }, - "additionalProperties": false + "flowRunDisplayName": { + "type": "string", + "nullable": true }, - "TriggerAsyncOperationStatus": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "operationType": { - "$ref": "#/components/schemas/TriggerOperationType" - }, - "provisioningStatus": { - "$ref": "#/components/schemas/ScheduleProvisioningStatus" - }, - "createdTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "endTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "error": { - "$ref": "#/components/schemas/ErrorResponse" - }, - "statusCode": { - "$ref": "#/components/schemas/HttpStatusCode" - } - }, - "additionalProperties": false + "flowId": { + "type": "string", + "nullable": true }, - "TriggerOperationType": { - "enum": [ - "Create", - "Update", - "Delete", - "CreateOrUpdate" - ], + "flow": { + "$ref": "#/components/schemas/Flow" + }, + "flowSubmitRunSettings": { + "$ref": "#/components/schemas/FlowSubmitRunSettings" + }, + "asyncSubmission": { + "type": "boolean" + }, + "useWorkspaceConnection": { + "type": "boolean" + }, + "enableAsyncFlowTest": { + "type": "boolean" + }, + "runDisplayNameGenerationType": { + "$ref": "#/components/schemas/RunDisplayNameGenerationType" + } + }, + "additionalProperties": false + }, + "SubmitPipelineRunRequest": { + "type": "object", + "properties": { + "computeTarget": { + "type": "string", + "nullable": true + }, + "flattenedSubGraphs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/PipelineSubDraft" + }, + "nullable": true + }, + "stepTags": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "experimentName": { + "type": "string", + "nullable": true }, - "TriggerType": { - "enum": [ - "Recurrence", - "Cron" - ], + "pipelineParameters": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataPathAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/LegacyDataPath" + }, + "description": "This is a dictionary", + "nullable": true + }, + "dataSetDefinitionValueAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/DataSetDefinitionValue" + }, + "description": "This is a dictionary", + "nullable": true + }, + "assetOutputSettingsAssignments": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AssetOutputSettings" + }, + "description": "This is a dictionary", + "nullable": true + }, + "enableNotification": { + "type": "boolean", + "nullable": true + }, + "subPipelinesInfo": { + "$ref": "#/components/schemas/SubPipelinesInfo" + }, + "displayName": { + "type": "string", + "nullable": true + }, + "runId": { + "type": "string", + "nullable": true + }, + "parentRunId": { + "type": "string", + "nullable": true + }, + "graph": { + "$ref": "#/components/schemas/GraphDraftEntity" + }, + "pipelineRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameterAssignment" + }, + "nullable": true + }, + "moduleNodeRunSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeRunSetting" + }, + "nullable": true + }, + "moduleNodeUIInputSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GraphModuleNodeUIInputSetting" + }, + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "TuningNodeRunSetting": { - "type": "object", - "properties": { - "simulationFlow": { - "$ref": "#/components/schemas/FlowGraphReference" - }, - "simulationFlowRunSetting": { - "$ref": "#/components/schemas/FlowRunSettingsBase" - }, - "batch_inputs": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "This is a dictionary" - }, - "nullable": true - }, - "inputUniversalLink": { - "type": "string", - "nullable": true - }, - "dataInputs": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "flowRunOutputDirectory": { - "type": "string", - "nullable": true - }, - "connectionOverrides": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionOverrideSetting" - }, - "nullable": true - }, - "flowRunDisplayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "runtimeName": { - "type": "string", - "nullable": true - }, - "batchDataInput": { - "$ref": "#/components/schemas/BatchDataInput" - }, - "inputsMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "connections": { - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary" - }, - "description": "This is a dictionary", - "nullable": true - }, - "environmentVariables": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "This is a dictionary", - "nullable": true - }, - "outputDataStore": { - "type": "string", - "nullable": true - }, - "runDisplayNameGenerationType": { - "$ref": "#/components/schemas/RunDisplayNameGenerationType" - }, - "collieRunSettings": { - "$ref": "#/components/schemas/CollieRunSettings" - }, - "workerCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "timeoutInSeconds": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "promptflowEngineType": { - "$ref": "#/components/schemas/PromptflowEngineType" - }, - "experimentNodeName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "continueRunOnStepFailure": { + "type": "boolean", + "nullable": true }, - "TuningNodeSetting": { - "type": "object", - "properties": { - "variantIds": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "tuningNodeRunSettings": { - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TuningNodeRunSetting" - } - }, - "description": "This is a dictionary", - "nullable": true - } - }, - "additionalProperties": false + "description": { + "type": "string", + "nullable": true }, - "TypedAssetReference": { - "type": "object", - "properties": { - "assetId": { - "type": "string", - "nullable": true - }, - "type": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "UIAzureOpenAIDeploymentNameSelector": { - "type": "object", - "properties": { - "Capabilities": { - "$ref": "#/components/schemas/UIAzureOpenAIModelCapabilities" - } - }, - "additionalProperties": false + "enforceRerun": { + "type": "boolean", + "nullable": true }, - "UIAzureOpenAIModelCapabilities": { - "type": "object", - "properties": { - "Completion": { - "type": "boolean", - "nullable": true - }, - "ChatCompletion": { - "type": "boolean", - "nullable": true - }, - "Embeddings": { - "type": "boolean", - "nullable": true - } - }, - "additionalProperties": false + "datasetAccessModes": { + "$ref": "#/components/schemas/DatasetAccessModes" + } + }, + "additionalProperties": false + }, + "SuccessfulCommandReturnCode": { + "enum": [ + "Zero", + "ZeroOrGreater" + ], + "type": "string" + }, + "SweepEarlyTerminationPolicy": { + "type": "object", + "properties": { + "policyType": { + "$ref": "#/components/schemas/EarlyTerminationPolicyType" + }, + "evaluationInterval": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "delayEvaluation": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "slackFactor": { + "type": "number", + "format": "float", + "nullable": true + }, + "slackAmount": { + "type": "number", + "format": "float", + "nullable": true + }, + "truncationPercentage": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "SweepSettings": { + "type": "object", + "properties": { + "limits": { + "$ref": "#/components/schemas/SweepSettingsLimits" + }, + "searchSpace": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "nullable": true }, - "UIColumnPicker": { - "type": "object", - "properties": { - "columnPickerFor": { - "type": "string", - "nullable": true - }, - "columnSelectionCategories": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "singleColumnSelection": { - "type": "boolean" - } - }, - "additionalProperties": false + "samplingAlgorithm": { + "$ref": "#/components/schemas/SamplingAlgorithmType" }, - "UIComputeSelection": { - "type": "object", - "properties": { - "computeTypes": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "requireGpu": { - "type": "boolean", - "nullable": true - }, - "osTypes": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "supportServerless": { - "type": "boolean" - }, - "computeRunSettingsMapping": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RunSettingParameter" - }, - "nullable": true - }, - "nullable": true - } - }, - "additionalProperties": false + "earlyTermination": { + "$ref": "#/components/schemas/SweepEarlyTerminationPolicy" + } + }, + "additionalProperties": false + }, + "SweepSettingsLimits": { + "type": "object", + "properties": { + "maxTotalTrials": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxConcurrentTrials": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "SystemData": { + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "createdByType": { + "$ref": "#/components/schemas/UserType" + }, + "lastModifiedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastModifiedBy": { + "type": "string", + "nullable": true + }, + "lastModifiedByType": { + "$ref": "#/components/schemas/UserType" + } + }, + "additionalProperties": false + }, + "SystemMeta": { + "type": "object", + "properties": { + "identifierHash": { + "type": "string", + "nullable": true + }, + "extraHash": { + "type": "string", + "nullable": true + }, + "contentHash": { + "type": "string", + "nullable": true + }, + "identifierHashes": { + "type": "object", + "properties": { + "IdentifierHash": { + "type": "string" + }, + "IdentifierHashV2": { + "type": "string" + } + }, + "additionalProperties": false, + "nullable": true + }, + "extraHashes": { + "type": "object", + "properties": { + "IdentifierHash": { + "type": "string" + }, + "IdentifierHashV2": { + "type": "string" + } + }, + "additionalProperties": false, + "nullable": true + } + }, + "additionalProperties": false + }, + "TabularTrainingMode": { + "enum": [ + "Distributed", + "NonDistributed", + "Auto" + ], + "type": "string" + }, + "TargetAggregationFunction": { + "enum": [ + "Sum", + "Max", + "Min", + "Mean" + ], + "type": "string" + }, + "TargetLags": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/TargetLagsMode" + }, + "values": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "TargetLagsMode": { + "enum": [ + "Auto", + "Custom" + ], + "type": "string" + }, + "TargetRollingWindowSize": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/TargetRollingWindowSizeMode" + }, + "value": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "TargetRollingWindowSizeMode": { + "enum": [ + "Auto", + "Custom" + ], + "type": "string" + }, + "TargetSelectorConfiguration": { + "type": "object", + "properties": { + "lowPriorityVMTolerant": { + "type": "boolean" + }, + "clusterBlockList": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "UIHyperparameterConfiguration": { - "type": "object", - "properties": { - "modelNameToHyperParameterAndDistributionMapping": { - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - }, - "nullable": true - }, - "nullable": true - }, - "distributionParametersMapping": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DistributionParameter" - }, - "nullable": true - }, - "nullable": true - }, - "jsonSchema": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "computeType": { + "type": "string", + "nullable": true }, - "UIInputDataDeliveryMode": { - "enum": [ - "Read-only mount", - "Read-write mount", - "Download", - "Direct", - "Evaluate mount", - "Evaluate download", - "Hdfs" - ], + "instanceType": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "UIInputSetting": { - "type": "object", - "properties": { - "name": { - "type": "string", - "nullable": true - }, - "dataDeliveryMode": { - "$ref": "#/components/schemas/UIInputDataDeliveryMode" - }, - "pathOnCompute": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "instanceTypes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "UIJsonEditor": { - "type": "object", - "properties": { - "jsonSchema": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "myResourceOnly": { + "type": "boolean" }, - "UIParameterHint": { - "type": "object", - "properties": { - "uiWidgetType": { - "$ref": "#/components/schemas/UIWidgetTypeEnum" - }, - "columnPicker": { - "$ref": "#/components/schemas/UIColumnPicker" - }, - "uiScriptLanguage": { - "$ref": "#/components/schemas/UIScriptLanguageEnum" - }, - "jsonEditor": { - "$ref": "#/components/schemas/UIJsonEditor" - }, - "PromptFlowConnectionSelector": { - "$ref": "#/components/schemas/UIPromptFlowConnectionSelector" - }, - "AzureOpenAIDeploymentNameSelector": { - "$ref": "#/components/schemas/UIAzureOpenAIDeploymentNameSelector" - }, - "UxIgnore": { - "type": "boolean" - }, - "Anonymous": { - "type": "boolean" - } - }, - "additionalProperties": false + "planId": { + "type": "string", + "nullable": true }, - "UIPromptFlowConnectionSelector": { - "type": "object", - "properties": { - "PromptFlowConnectionType": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "planRegionId": { + "type": "string", + "nullable": true }, - "UIScriptLanguageEnum": { - "enum": [ - "None", - "Python", - "R", - "Json", - "Sql" - ], + "region": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "UIWidgetMetaInfo": { - "type": "object", - "properties": { - "moduleNodeId": { - "type": "string", - "nullable": true - }, - "metaModuleId": { - "type": "string", - "nullable": true - }, - "parameterName": { - "type": "string", - "nullable": true - }, - "uiWidgetType": { - "$ref": "#/components/schemas/UIWidgetTypeEnum" - } - }, - "additionalProperties": false - }, - "UIWidgetTypeEnum": { - "enum": [ - "Default", - "Mode", - "ColumnPicker", - "Credential", - "Script", - "ComputeSelection", - "JsonEditor", - "SearchSpaceParameter", - "SectionToggle", - "YamlEditor", - "EnableRuntimeSweep", - "DataStoreSelection", - "InstanceTypeSelection", - "ConnectionSelection", - "PromptFlowConnectionSelection", - "AzureOpenAIDeploymentNameSelection" - ], - "type": "string" - }, - "UIYamlEditor": { - "type": "object", - "properties": { - "jsonSchema": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "UnversionedEntityRequestDto": { - "type": "object", - "properties": { - "unversionedEntityIds": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false + "regions": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "UnversionedEntityResponseDto": { - "type": "object", - "properties": { - "unversionedEntities": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FlowIndexEntity" - }, - "nullable": true - }, - "unversionedEntityJsonSchema": { - "nullable": true - }, - "normalizedRequestCharge": { - "type": "number", - "format": "double" - }, - "normalizedRequestChargePeriod": { - "type": "string", - "format": "date-span" - } - }, - "additionalProperties": false + "vcBlockList": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Task": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "exception": { + "nullable": true, + "readOnly": true + }, + "status": { + "$ref": "#/components/schemas/TaskStatus" + }, + "isCanceled": { + "type": "boolean", + "readOnly": true + }, + "isCompleted": { + "type": "boolean", + "readOnly": true + }, + "isCompletedSuccessfully": { + "type": "boolean", + "readOnly": true + }, + "creationOptions": { + "$ref": "#/components/schemas/TaskCreationOptions" + }, + "asyncState": { + "nullable": true, + "readOnly": true + }, + "isFaulted": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false + }, + "TaskControlFlowInfo": { + "type": "object", + "properties": { + "controlFlowType": { + "$ref": "#/components/schemas/ControlFlowType" + }, + "iterationIndex": { + "type": "integer", + "format": "int32" + }, + "itemName": { + "type": "string", + "nullable": true + }, + "parametersOverwritten": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "isReused": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TaskCreationOptions": { + "enum": [ + "None", + "PreferFairness", + "LongRunning", + "AttachedToParent", + "DenyChildAttach", + "HideScheduler", + "RunContinuationsAsynchronously" + ], + "type": "string" + }, + "TaskReuseInfo": { + "type": "object", + "properties": { + "experimentId": { + "type": "string", + "nullable": true + }, + "pipelineRunId": { + "type": "string", + "nullable": true + }, + "nodeId": { + "type": "string", + "nullable": true + }, + "requestId": { + "type": "string", + "nullable": true + }, + "runId": { + "type": "string", + "nullable": true + }, + "nodeStartTime": { + "type": "string", + "format": "date-time" + }, + "nodeEndTime": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "TaskStatus": { + "enum": [ + "Created", + "WaitingForActivation", + "WaitingToRun", + "Running", + "WaitingForChildrenToComplete", + "RanToCompletion", + "Canceled", + "Faulted" + ], + "type": "string" + }, + "TaskStatusCode": { + "enum": [ + "NotStarted", + "Queued", + "Running", + "Failed", + "Finished", + "Canceled", + "PartiallyExecuted", + "Bypassed" + ], + "type": "string" + }, + "TaskType": { + "enum": [ + "Classification", + "Regression", + "Forecasting", + "ImageClassification", + "ImageClassificationMultilabel", + "ImageObjectDetection", + "ImageInstanceSegmentation", + "TextClassification", + "TextMultiLabeling", + "TextNER", + "TextClassificationMultilabel" + ], + "type": "string" + }, + "TensorflowConfiguration": { + "type": "object", + "properties": { + "workerCount": { + "type": "integer", + "format": "int32" + }, + "parameterServerCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "TestDataSettings": { + "type": "object", + "properties": { + "testDataSize": { + "type": "number", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false + }, + "Tool": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/ToolType" + }, + "inputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/InputDefinition" + }, + "description": "This is a dictionary", + "nullable": true + }, + "outputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/OutputDefinition" + }, + "description": "This is a dictionary", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "connection_type": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionType" + }, + "nullable": true + }, + "module": { + "type": "string", + "nullable": true + }, + "class_name": { + "type": "string", + "nullable": true + }, + "source": { + "type": "string", + "nullable": true + }, + "lkgCode": { + "type": "string", + "nullable": true + }, + "code": { + "type": "string", + "nullable": true + }, + "function": { + "type": "string", + "nullable": true + }, + "action_type": { + "type": "string", + "nullable": true + }, + "provider_config": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/InputDefinition" + }, + "description": "This is a dictionary", + "nullable": true + }, + "function_config": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/InputDefinition" + }, + "description": "This is a dictionary", + "nullable": true + }, + "icon": { + "nullable": true + }, + "category": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary", + "nullable": true + }, + "is_builtin": { + "type": "boolean" + }, + "package": { + "type": "string", + "nullable": true + }, + "package_version": { + "type": "string", + "nullable": true + }, + "default_prompt": { + "type": "string", + "nullable": true + }, + "enable_kwargs": { + "type": "boolean" + }, + "deprecated_tools": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "UnversionedRebuildIndexDto": { - "type": "object", - "properties": { - "continuationToken": { - "type": "string", - "nullable": true - }, - "entityCount": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "entityContainerType": { - "type": "string", - "nullable": true - }, - "entityType": { - "type": "string", - "nullable": true - }, - "resourceId": { - "type": "string", - "nullable": true - }, - "workspaceId": { - "type": "string", - "nullable": true - }, - "immutableResourceId": { - "type": "string", - "format": "uuid" - }, - "startTime": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "endTime": { - "type": "string", - "format": "date-time", - "nullable": true - } - }, - "additionalProperties": false + "tool_state": { + "$ref": "#/components/schemas/ToolState" + } + }, + "additionalProperties": false + }, + "ToolFuncCallScenario": { + "enum": [ + "generated_by", + "reverse_generated_by", + "dynamic_list" + ], + "type": "string" + }, + "ToolFuncResponse": { + "type": "object", + "properties": { + "result": { + "nullable": true + }, + "logs": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "ToolInputDynamicList": { + "type": "object", + "properties": { + "func_path": { + "type": "string", + "nullable": true + }, + "func_kwargs": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ToolInputGeneratedBy": { + "type": "object", + "properties": { + "func_path": { + "type": "string", + "nullable": true + }, + "func_kwargs": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary" + }, + "nullable": true + }, + "reverse_func_path": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ToolMetaDto": { + "type": "object", + "properties": { + "tools": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Tool" + }, + "description": "This is a dictionary", + "nullable": true + }, + "errors": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "ToolSetting": { + "type": "object", + "properties": { + "providers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProviderEntity" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "ToolSourceMeta": { + "type": "object", + "properties": { + "tool_type": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ToolState": { + "enum": [ + "Stable", + "Preview", + "Deprecated", + "Archived" + ], + "type": "string" + }, + "ToolType": { + "enum": [ + "llm", + "python", + "action", + "prompt", + "custom_llm", + "csharp", + "typescript" + ], + "type": "string" + }, + "TorchDistributedConfiguration": { + "type": "object", + "properties": { + "processCountPerNode": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "TraceCosmosResourceDto": { + "type": "object", + "properties": { + "accountEndpoint": { + "type": "string", + "nullable": true + }, + "databaseName": { + "type": "string", + "nullable": true + }, + "containerName": { + "type": "string", + "nullable": true + }, + "resourceUrl": { + "type": "string", + "nullable": true + }, + "resourceToken": { + "type": "string", + "nullable": true + }, + "permissionMode": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "TraceCosmosResourceDtos": { + "type": "object", + "properties": { + "resourceTokens": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TraceCosmosResourceDto" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "TrainingDiagnosticConfiguration": { + "type": "object", + "properties": { + "jobHeartBeatTimeoutSeconds": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "TrainingOutput": { + "type": "object", + "properties": { + "trainingOutputType": { + "$ref": "#/components/schemas/TrainingOutputType" + }, + "iteration": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "metric": { + "type": "string", + "nullable": true + }, + "modelFile": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "TrainingOutputType": { + "enum": [ + "Metrics", + "Model" + ], + "type": "string" + }, + "TrainingSettings": { + "type": "object", + "properties": { + "blockListModels": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "UnversionedRebuildResponseDto": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/components/schemas/SegmentedResult`1" - }, - "unversionedEntitySchema": { - "nullable": true - }, - "normalizedRequestCharge": { - "type": "number", - "format": "double" - }, - "normalizedRequestChargePeriod": { - "type": "string", - "format": "date-span" - } - }, - "additionalProperties": false + "allowListModels": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "UpdateComponentRequest": { - "type": "object", - "properties": { - "displayName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "moduleUpdateOperationType": { - "$ref": "#/components/schemas/ModuleUpdateOperationType" - }, - "moduleVersion": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "enableDnnTraining": { + "type": "boolean", + "nullable": true }, - "UpdateFlowRequest": { - "type": "object", - "properties": { - "flowRunResult": { - "$ref": "#/components/schemas/FlowRunResult" - }, - "flowTestMode": { - "$ref": "#/components/schemas/FlowTestMode" - }, - "flowTestInfos": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/FlowTestInfo" - }, - "nullable": true - }, - "flowName": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "details": { - "type": "string", - "nullable": true - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "nullable": true - }, - "flow": { - "$ref": "#/components/schemas/Flow" - }, - "flowDefinitionFilePath": { - "type": "string", - "nullable": true - }, - "flowType": { - "$ref": "#/components/schemas/FlowType" - }, - "flowRunSettings": { - "$ref": "#/components/schemas/FlowRunSettings" - }, - "isArchived": { - "type": "boolean" - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "maxIdleTimeSeconds": { - "type": "integer", - "format": "int64", - "nullable": true - }, - "identity": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "enableOnnxCompatibleModels": { + "type": "boolean", + "nullable": true }, - "UpdateFlowRuntimeRequest": { - "type": "object", - "properties": { - "runtimeDescription": { - "type": "string", - "nullable": true - }, - "environment": { - "type": "string", - "nullable": true - }, - "instanceCount": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false + "stackEnsembleSettings": { + "$ref": "#/components/schemas/StackEnsembleSettings" }, - "UpdateFlowStatusRequest": { - "type": "object", - "properties": { - "flowRunStatus": { - "$ref": "#/components/schemas/FlowRunStatusEnum" - }, - "errorResponse": { - "$ref": "#/components/schemas/ErrorResponse" - } - }, - "additionalProperties": false + "enableStackEnsemble": { + "type": "boolean", + "nullable": true }, - "UpdateRegistryComponentRequest": { - "type": "object", - "properties": { - "registryName": { - "type": "string", - "nullable": true - }, - "componentName": { - "type": "string", - "nullable": true - }, - "componentVersion": { - "type": "string", - "nullable": true - }, - "updateType": { - "$ref": "#/components/schemas/UpdateType" - } - }, - "additionalProperties": false + "enableVoteEnsemble": { + "type": "boolean", + "nullable": true }, - "UpdateType": { - "enum": [ - "SetDefaultVersion" - ], + "ensembleModelDownloadTimeout": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "enableModelExplainability": { + "type": "boolean", + "nullable": true + }, + "trainingMode": { + "$ref": "#/components/schemas/TabularTrainingMode" + } + }, + "additionalProperties": false + }, + "TriggerAsyncOperationStatus": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "operationType": { + "$ref": "#/components/schemas/TriggerOperationType" + }, + "provisioningStatus": { + "$ref": "#/components/schemas/ScheduleProvisioningStatus" + }, + "createdTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "error": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "statusCode": { + "$ref": "#/components/schemas/HttpStatusCode" + } + }, + "additionalProperties": false + }, + "TriggerOperationType": { + "enum": [ + "Create", + "Update", + "Delete", + "CreateOrUpdate" + ], + "type": "string" + }, + "TriggerType": { + "enum": [ + "Recurrence", + "Cron" + ], + "type": "string" + }, + "TuningNodeRunSetting": { + "type": "object", + "properties": { + "simulationFlow": { + "$ref": "#/components/schemas/FlowGraphReference" + }, + "simulationFlowRunSetting": { + "$ref": "#/components/schemas/FlowRunSettingsBase" + }, + "batch_inputs": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { }, + "description": "This is a dictionary" + }, + "nullable": true + }, + "inputUniversalLink": { + "type": "string", + "nullable": true + }, + "dataInputs": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "flowRunOutputDirectory": { + "type": "string", + "nullable": true + }, + "connectionOverrides": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionOverrideSetting" + }, + "nullable": true + }, + "flowRunDisplayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "UploadOptions": { - "type": "object", - "properties": { - "overwrite": { - "type": "boolean" - }, - "sourceGlobs": { - "$ref": "#/components/schemas/ExecutionGlobsOptions" - } - }, - "additionalProperties": false + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "This is a dictionary", + "nullable": true + }, + "runtimeName": { + "type": "string", + "nullable": true + }, + "batchDataInput": { + "$ref": "#/components/schemas/BatchDataInput" }, - "UploadState": { - "enum": [ - "Uploading", - "Completed", - "Canceled", - "Failed" - ], + "inputsMapping": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "UriReference": { + "connections": { + "type": "object", + "additionalProperties": { "type": "object", - "properties": { - "path": { - "type": "string", - "nullable": true - }, - "isFile": { - "type": "boolean" - } + "additionalProperties": { + "type": "string" }, - "additionalProperties": false + "description": "This is a dictionary" + }, + "description": "This is a dictionary", + "nullable": true }, - "UseStl": { - "enum": [ - "Season", - "SeasonTrend" - ], + "environmentVariables": { + "type": "object", + "additionalProperties": { "type": "string" + }, + "description": "This is a dictionary", + "nullable": true }, - "User": { - "type": "object", - "properties": { - "userObjectId": { - "type": "string", - "description": "A user or service principal's object ID.\r\nThis is EUPI and may only be logged to warm path telemetry.", - "nullable": true - }, - "userPuId": { - "type": "string", - "description": "A user or service principal's PuID.\r\nThis is PII and should never be logged.", - "nullable": true - }, - "userIdp": { - "type": "string", - "description": "A user identity provider. Eg live.com\r\nThis is PII and should never be logged.", - "nullable": true - }, - "userAltSecId": { - "type": "string", - "description": "A user alternate sec id. This represents the user in a different identity provider system Eg.1:live.com:puid\r\nThis is PII and should never be logged.", - "nullable": true - }, - "userIss": { - "type": "string", - "description": "The issuer which issed the token for this user.\r\nThis is PII and should never be logged.", - "nullable": true - }, - "userTenantId": { - "type": "string", - "description": "A user or service principal's tenant ID.", - "nullable": true - }, - "userName": { - "type": "string", - "description": "A user's full name or a service principal's app ID.\r\nThis is PII and should never be logged.", - "nullable": true - }, - "upn": { - "type": "string", - "description": "A user's Principal name (upn)\r\nThis is PII andshould never be logged", - "nullable": true - } - }, - "additionalProperties": false + "outputDataStore": { + "type": "string", + "nullable": true }, - "UserAssignedIdentity": { - "type": "object", - "properties": { - "principalId": { - "type": "string", - "format": "uuid" - }, - "clientId": { - "type": "string", - "format": "uuid" - } - }, - "additionalProperties": false + "runDisplayNameGenerationType": { + "$ref": "#/components/schemas/RunDisplayNameGenerationType" }, - "UserType": { - "enum": [ - "User", - "Application", - "ManagedIdentity", - "Key" - ], - "type": "string" + "collieRunSettings": { + "$ref": "#/components/schemas/CollieRunSettings" }, - "ValidationDataSettings": { - "type": "object", - "properties": { - "nCrossValidations": { - "$ref": "#/components/schemas/NCrossValidations" - }, - "validationDataSize": { - "type": "number", - "format": "double", - "nullable": true - }, - "cvSplitColumnNames": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "validationType": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "ValidationStatus": { - "enum": [ - "Succeeded", - "Failed" - ], - "type": "string" - }, - "ValueType": { - "enum": [ - "int", - "double", - "bool", - "string", - "secret", - "prompt_template", - "object", - "list", - "BingConnection", - "OpenAIConnection", - "AzureOpenAIConnection", - "AzureContentModeratorConnection", - "CustomConnection", - "AzureContentSafetyConnection", - "SerpConnection", - "CognitiveSearchConnection", - "SubstrateLLMConnection", - "PineconeConnection", - "QdrantConnection", - "WeaviateConnection", - "function_list", - "function_str", - "FormRecognizerConnection", - "file_path", - "image", - "assistant_definition", - "ServerlessConnection" - ], - "type": "string" - }, - "VariantIdentifier": { - "type": "object", - "properties": { - "variantId": { - "type": "string", - "nullable": true - }, - "tuningNodeName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "workerCount": { + "type": "integer", + "format": "int32", + "nullable": true }, - "VariantNode": { - "type": "object", - "properties": { - "node": { - "$ref": "#/components/schemas/Node" - }, - "description": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "timeoutInSeconds": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "promptflowEngineType": { + "$ref": "#/components/schemas/PromptflowEngineType" }, - "VmPriority": { - "enum": [ - "Dedicated", - "Lowpriority" - ], + "experimentNodeName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "TuningNodeSetting": { + "type": "object", + "properties": { + "variantIds": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true }, - "Volume": { + "tuningNodeRunSettings": { + "type": "object", + "additionalProperties": { "type": "object", - "properties": { - "type": { - "type": "string", - "nullable": true - }, - "source": { - "type": "string", - "nullable": true - }, - "target": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "additionalProperties": { + "$ref": "#/components/schemas/TuningNodeRunSetting" + } + }, + "description": "This is a dictionary", + "nullable": true + } + }, + "additionalProperties": false + }, + "TypedAssetReference": { + "type": "object", + "properties": { + "assetId": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "UIAzureOpenAIDeploymentNameSelector": { + "type": "object", + "properties": { + "Capabilities": { + "$ref": "#/components/schemas/UIAzureOpenAIModelCapabilities" + } + }, + "additionalProperties": false + }, + "UIAzureOpenAIModelCapabilities": { + "type": "object", + "properties": { + "Completion": { + "type": "boolean", + "nullable": true + }, + "ChatCompletion": { + "type": "boolean", + "nullable": true + }, + "Embeddings": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "UIColumnPicker": { + "type": "object", + "properties": { + "columnPickerFor": { + "type": "string", + "nullable": true + }, + "columnSelectionCategories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "WebServiceComputeMetaInfo": { - "type": "object", - "properties": { - "nodeCount": { - "type": "integer", - "format": "int32" - }, - "isSslEnabled": { - "type": "boolean" - }, - "aksNotFound": { - "type": "boolean" - }, - "clusterPurpose": { - "type": "string", - "nullable": true - }, - "publicIpAddress": { - "type": "string", - "nullable": true - }, - "vmSize": { - "type": "string", - "nullable": true - }, - "location": { - "type": "string", - "nullable": true - }, - "provisioningState": { - "type": "string", - "nullable": true - }, - "state": { - "type": "string", - "nullable": true - }, - "osType": { - "type": "string", - "nullable": true - }, - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "createdByStudio": { - "type": "boolean" - }, - "isGpuType": { - "type": "boolean" - }, - "resourceId": { - "type": "string", - "nullable": true - }, - "computeType": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "singleColumnSelection": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "UIComputeSelection": { + "type": "object", + "properties": { + "computeTypes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "WebServicePort": { - "type": "object", - "properties": { - "nodeId": { - "type": "string", - "nullable": true - }, - "portName": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "requireGpu": { + "type": "boolean", + "nullable": true }, - "WebServiceState": { - "enum": [ - "Transitioning", - "Healthy", - "Unhealthy", - "Failed", - "Unschedulable" - ], + "osTypes": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true + }, + "supportServerless": { + "type": "boolean" + }, + "computeRunSettingsMapping": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RunSettingParameter" + }, + "nullable": true + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "UIHyperparameterConfiguration": { + "type": "object", + "properties": { + "modelNameToHyperParameterAndDistributionMapping": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "nullable": true + }, + "nullable": true + }, + "distributionParametersMapping": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DistributionParameter" + }, + "nullable": true + }, + "nullable": true + }, + "jsonSchema": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "UIInputDataDeliveryMode": { + "enum": [ + "Read-only mount", + "Read-write mount", + "Download", + "Direct", + "Evaluate mount", + "Evaluate download", + "Hdfs" + ], + "type": "string" + }, + "UIInputSetting": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "dataDeliveryMode": { + "$ref": "#/components/schemas/UIInputDataDeliveryMode" + }, + "pathOnCompute": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "UIJsonEditor": { + "type": "object", + "properties": { + "jsonSchema": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "UIParameterHint": { + "type": "object", + "properties": { + "uiWidgetType": { + "$ref": "#/components/schemas/UIWidgetTypeEnum" }, - "Webhook": { - "type": "object", - "properties": { - "webhookType": { - "$ref": "#/components/schemas/WebhookType" - }, - "eventType": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "WebhookType": { - "enum": [ - "AzureDevOps" - ], - "type": "string" - }, - "WeekDays": { - "enum": [ - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - "Sunday" - ], - "type": "string" - }, - "Weekday": { - "enum": [ - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - "Sunday" - ], - "type": "string" - }, - "WorkspaceConnectionSpec": { - "type": "object", - "properties": { - "connectionCategory": { - "$ref": "#/components/schemas/ConnectionCategory" - }, - "flowValueType": { - "$ref": "#/components/schemas/ValueType" - }, - "connectionType": { - "$ref": "#/components/schemas/ConnectionType" - }, - "connectionTypeDisplayName": { - "type": "string", - "nullable": true - }, - "configSpecs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectionConfigSpec" - }, - "nullable": true - }, - "module": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false + "columnPicker": { + "$ref": "#/components/schemas/UIColumnPicker" }, - "YarnDeployMode": { - "enum": [ - "None", - "Client", - "Cluster" - ], + "uiScriptLanguage": { + "$ref": "#/components/schemas/UIScriptLanguageEnum" + }, + "jsonEditor": { + "$ref": "#/components/schemas/UIJsonEditor" + }, + "PromptFlowConnectionSelector": { + "$ref": "#/components/schemas/UIPromptFlowConnectionSelector" + }, + "AzureOpenAIDeploymentNameSelector": { + "$ref": "#/components/schemas/UIAzureOpenAIDeploymentNameSelector" + }, + "UxIgnore": { + "type": "boolean" + }, + "Anonymous": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "UIPromptFlowConnectionSelector": { + "type": "object", + "properties": { + "PromptFlowConnectionType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "UIScriptLanguageEnum": { + "enum": [ + "None", + "Python", + "R", + "Json", + "Sql" + ], + "type": "string" + }, + "UIWidgetMetaInfo": { + "type": "object", + "properties": { + "moduleNodeId": { + "type": "string", + "nullable": true + }, + "metaModuleId": { + "type": "string", + "nullable": true + }, + "parameterName": { + "type": "string", + "nullable": true + }, + "uiWidgetType": { + "$ref": "#/components/schemas/UIWidgetTypeEnum" + } + }, + "additionalProperties": false + }, + "UIWidgetTypeEnum": { + "enum": [ + "Default", + "Mode", + "ColumnPicker", + "Credential", + "Script", + "ComputeSelection", + "JsonEditor", + "SearchSpaceParameter", + "SectionToggle", + "YamlEditor", + "EnableRuntimeSweep", + "DataStoreSelection", + "InstanceTypeSelection", + "ConnectionSelection", + "PromptFlowConnectionSelection", + "AzureOpenAIDeploymentNameSelection" + ], + "type": "string" + }, + "UIYamlEditor": { + "type": "object", + "properties": { + "jsonSchema": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "UnversionedEntityRequestDto": { + "type": "object", + "properties": { + "unversionedEntityIds": { + "type": "array", + "items": { "type": "string" + }, + "nullable": true } + }, + "additionalProperties": false }, - "parameters": { - "subscriptionIdParameter": { - "name": "subscriptionId", - "in": "path", - "description": "The Azure Subscription ID.", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - }, - "x-ms-parameter-location": "method" + "UnversionedEntityResponseDto": { + "type": "object", + "properties": { + "unversionedEntities": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FlowIndexEntity" + }, + "nullable": true + }, + "unversionedEntityJsonSchema": { + "nullable": true + }, + "normalizedRequestCharge": { + "type": "number", + "format": "double" + }, + "normalizedRequestChargePeriod": { + "type": "string", + "format": "date-span" + } + }, + "additionalProperties": false + }, + "UnversionedRebuildIndexDto": { + "type": "object", + "properties": { + "continuationToken": { + "type": "string", + "nullable": true + }, + "entityCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "entityContainerType": { + "type": "string", + "nullable": true + }, + "entityType": { + "type": "string", + "nullable": true + }, + "resourceId": { + "type": "string", + "nullable": true + }, + "workspaceId": { + "type": "string", + "nullable": true + }, + "immutableResourceId": { + "type": "string", + "format": "uuid" + }, + "startTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "UnversionedRebuildResponseDto": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/components/schemas/SegmentedResult`1" + }, + "unversionedEntitySchema": { + "nullable": true + }, + "normalizedRequestCharge": { + "type": "number", + "format": "double" + }, + "normalizedRequestChargePeriod": { + "type": "string", + "format": "date-span" + } + }, + "additionalProperties": false + }, + "UpdateComponentRequest": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "moduleUpdateOperationType": { + "$ref": "#/components/schemas/ModuleUpdateOperationType" + }, + "moduleVersion": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "UpdateFlowRequest": { + "type": "object", + "properties": { + "flowRunResult": { + "$ref": "#/components/schemas/FlowRunResult" + }, + "flowTestMode": { + "$ref": "#/components/schemas/FlowTestMode" + }, + "flowTestInfos": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/FlowTestInfo" + }, + "nullable": true + }, + "flowName": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "details": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "flow": { + "$ref": "#/components/schemas/Flow" + }, + "flowDefinitionFilePath": { + "type": "string", + "nullable": true + }, + "flowType": { + "$ref": "#/components/schemas/FlowType" + }, + "flowRunSettings": { + "$ref": "#/components/schemas/FlowRunSettings" + }, + "isArchived": { + "type": "boolean" + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "maxIdleTimeSeconds": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "identity": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "UpdateFlowRuntimeRequest": { + "type": "object", + "properties": { + "runtimeDescription": { + "type": "string", + "nullable": true + }, + "environment": { + "type": "string", + "nullable": true + }, + "instanceCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "UpdateFlowStatusRequest": { + "type": "object", + "properties": { + "flowRunStatus": { + "$ref": "#/components/schemas/FlowRunStatusEnum" + }, + "errorResponse": { + "$ref": "#/components/schemas/ErrorResponse" + } + }, + "additionalProperties": false + }, + "UpdateRegistryComponentRequest": { + "type": "object", + "properties": { + "registryName": { + "type": "string", + "nullable": true + }, + "componentName": { + "type": "string", + "nullable": true + }, + "componentVersion": { + "type": "string", + "nullable": true + }, + "updateType": { + "$ref": "#/components/schemas/UpdateType" + } + }, + "additionalProperties": false + }, + "UpdateType": { + "enum": [ + "SetDefaultVersion" + ], + "type": "string" + }, + "UploadOptions": { + "type": "object", + "properties": { + "overwrite": { + "type": "boolean" + }, + "sourceGlobs": { + "$ref": "#/components/schemas/ExecutionGlobsOptions" + } + }, + "additionalProperties": false + }, + "UploadState": { + "enum": [ + "Uploading", + "Completed", + "Canceled", + "Failed" + ], + "type": "string" + }, + "UriReference": { + "type": "object", + "properties": { + "path": { + "type": "string", + "nullable": true + }, + "isFile": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "UseStl": { + "enum": [ + "Season", + "SeasonTrend" + ], + "type": "string" + }, + "User": { + "type": "object", + "properties": { + "userObjectId": { + "type": "string", + "description": "A user or service principal's object ID.\r\nThis is EUPI and may only be logged to warm path telemetry.", + "nullable": true + }, + "userPuId": { + "type": "string", + "description": "A user or service principal's PuID.\r\nThis is PII and should never be logged.", + "nullable": true + }, + "userIdp": { + "type": "string", + "description": "A user identity provider. Eg live.com\r\nThis is PII and should never be logged.", + "nullable": true + }, + "userAltSecId": { + "type": "string", + "description": "A user alternate sec id. This represents the user in a different identity provider system Eg.1:live.com:puid\r\nThis is PII and should never be logged.", + "nullable": true + }, + "userIss": { + "type": "string", + "description": "The issuer which issed the token for this user.\r\nThis is PII and should never be logged.", + "nullable": true + }, + "userTenantId": { + "type": "string", + "description": "A user or service principal's tenant ID.", + "nullable": true + }, + "userName": { + "type": "string", + "description": "A user's full name or a service principal's app ID.\r\nThis is PII and should never be logged.", + "nullable": true + }, + "upn": { + "type": "string", + "description": "A user's Principal name (upn)\r\nThis is PII andshould never be logged", + "nullable": true + } + }, + "additionalProperties": false + }, + "UserAssignedIdentity": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "format": "uuid" + }, + "clientId": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "UserType": { + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "type": "string" + }, + "ValidationDataSettings": { + "type": "object", + "properties": { + "nCrossValidations": { + "$ref": "#/components/schemas/NCrossValidations" + }, + "validationDataSize": { + "type": "number", + "format": "double", + "nullable": true + }, + "cvSplitColumnNames": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true }, - "resourceGroupNameParameter": { - "name": "resourceGroupName", - "in": "path", - "description": "The Name of the resource group in which the workspace is located.", - "required": true, - "schema": { - "type": "string" - }, - "x-ms-parameter-location": "method" + "validationType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "ValidationStatus": { + "enum": [ + "Succeeded", + "Failed" + ], + "type": "string" + }, + "ValueType": { + "enum": [ + "int", + "double", + "bool", + "string", + "secret", + "prompt_template", + "object", + "list", + "BingConnection", + "OpenAIConnection", + "AzureOpenAIConnection", + "AzureContentModeratorConnection", + "CustomConnection", + "AzureContentSafetyConnection", + "SerpConnection", + "CognitiveSearchConnection", + "SubstrateLLMConnection", + "PineconeConnection", + "QdrantConnection", + "WeaviateConnection", + "function_list", + "function_str", + "FormRecognizerConnection", + "file_path", + "image", + "assistant_definition", + "ServerlessConnection" + ], + "type": "string" + }, + "VariantIdentifier": { + "type": "object", + "properties": { + "variantId": { + "type": "string", + "nullable": true + }, + "tuningNodeName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "VariantNode": { + "type": "object", + "properties": { + "node": { + "$ref": "#/components/schemas/Node" + }, + "description": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "VmPriority": { + "enum": [ + "Dedicated", + "Lowpriority" + ], + "type": "string" + }, + "Volume": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "source": { + "type": "string", + "nullable": true + }, + "target": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "WebServiceComputeMetaInfo": { + "type": "object", + "properties": { + "nodeCount": { + "type": "integer", + "format": "int32" }, - "workspaceNameParameter": { - "name": "workspaceName", - "in": "path", - "description": "The name of the workspace.", - "required": true, - "schema": { - "type": "string" - }, - "x-ms-parameter-location": "method" - } - }, - "securitySchemes": { - "azure_auth": { - "type": "oauth2", - "flows": { - "implicit": { - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - } + "isSslEnabled": { + "type": "boolean" + }, + "aksNotFound": { + "type": "boolean" + }, + "clusterPurpose": { + "type": "string", + "nullable": true + }, + "publicIpAddress": { + "type": "string", + "nullable": true + }, + "vmSize": { + "type": "string", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "provisioningState": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "osType": { + "type": "string", + "nullable": true + }, + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "createdByStudio": { + "type": "boolean" + }, + "isGpuType": { + "type": "boolean" + }, + "resourceId": { + "type": "string", + "nullable": true + }, + "computeType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "WebServicePort": { + "type": "object", + "properties": { + "nodeId": { + "type": "string", + "nullable": true + }, + "portName": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "WebServiceState": { + "enum": [ + "Transitioning", + "Healthy", + "Unhealthy", + "Failed", + "Unschedulable" + ], + "type": "string" + }, + "Webhook": { + "type": "object", + "properties": { + "webhookType": { + "$ref": "#/components/schemas/WebhookType" + }, + "eventType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "WebhookType": { + "enum": [ + "AzureDevOps" + ], + "type": "string" + }, + "WeekDays": { + "enum": [ + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday" + ], + "type": "string" + }, + "Weekday": { + "enum": [ + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday" + ], + "type": "string" + }, + "WorkspaceConnectionSpec": { + "type": "object", + "properties": { + "connectionCategory": { + "$ref": "#/components/schemas/ConnectionCategory" + }, + "flowValueType": { + "$ref": "#/components/schemas/ValueType" + }, + "connectionType": { + "$ref": "#/components/schemas/ConnectionType" + }, + "connectionTypeDisplayName": { + "type": "string", + "nullable": true + }, + "configSpecs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectionConfigSpec" + }, + "nullable": true + }, + "module": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "YarnDeployMode": { + "enum": [ + "None", + "Client", + "Cluster" + ], + "type": "string" + } + }, + "parameters": { + "subscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The Azure Subscription ID.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "x-ms-parameter-location": "method" + }, + "resourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The Name of the resource group in which the workspace is located.", + "required": true, + "schema": { + "type": "string" + }, + "x-ms-parameter-location": "method" + }, + "workspaceNameParameter": { + "name": "workspaceName", + "in": "path", + "description": "The name of the workspace.", + "required": true, + "schema": { + "type": "string" + }, + "x-ms-parameter-location": "method" + } + }, + "securitySchemes": { + "azure_auth": { + "type": "oauth2", + "flows": { + "implicit": { + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } } + } } + } }, "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } + { + "azure_auth": [ + "user_impersonation" + ] + } ] } \ No newline at end of file diff --git a/src/promptflow/promptflow/azure/operations/_run_operations.py b/src/promptflow/promptflow/azure/operations/_run_operations.py index 6df3bf4ed09..b7bc28dcde0 100644 --- a/src/promptflow/promptflow/azure/operations/_run_operations.py +++ b/src/promptflow/promptflow/azure/operations/_run_operations.py @@ -46,7 +46,12 @@ ) from promptflow._sdk._errors import InvalidRunStatusError, RunNotFoundError, RunOperationParameterError from promptflow._sdk._telemetry import ActivityType, WorkspaceTelemetryMixin, monitor_operation -from promptflow._sdk._utils import incremental_print, is_remote_uri, print_red_error +from promptflow._sdk._utils import ( + incremental_print, + is_multi_container_enabled, + is_remote_uri, + print_red_error, +) from promptflow._sdk.entities import Run from promptflow._utils.async_utils import async_run_allowing_running_loop from promptflow._utils.logger_utils import get_cli_sdk_logger @@ -1012,6 +1017,7 @@ def _build_resume_request_rest_object( vm_size=resources.get("instance_type"), identity=identity, compute_name=resources.get("compute"), + enable_multi_container=is_multi_container_enabled(), ) return rest_obj From 75ef3e8e608c481e5bdfd90123604bd03eb089da Mon Sep 17 00:00:00 2001 From: Heyi Tang Date: Thu, 14 Mar 2024 19:03:57 +0800 Subject: [PATCH 057/204] [Internal] Update connection not found message to make it more clear (#2350) # Description This pull request includes changes to the `src/promptflow/promptflow/executor/_tool_resolver.py` and `src/promptflow/tests/executor/e2etests/test_executor_happypath.py` files to improve error messaging and testing. The main changes are: * [`src/promptflow/promptflow/executor/_tool_resolver.py`](diffhunk://#diff-714d8202b40acb4053e3f9b366ee4972b32f98afc8a2efe8a1750842f1facc65L350-R351): The error message in the `ConnectionNotFound` exception raised in the `_get_llm_node_connection` method has been updated to include the name of the missing connection. This change will make it easier to debug issues related to missing connections. * [`src/promptflow/tests/executor/e2etests/test_executor_happypath.py`](diffhunk://#diff-44d4009e9df8029bb88432b7a843d3a887764cd6a67070afc49557334af3cbaaL182-R182): The assertion in the `test_executor_node_overrides` method has been updated to reflect the change in the error message. This ensures that the test will still pass with the updated error messaging. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. Co-authored-by: Heyi Co-authored-by: Brynn Yin <24237253+brynn-code@users.noreply.github.com> --- src/promptflow/promptflow/executor/_tool_resolver.py | 3 ++- .../tests/executor/e2etests/test_executor_happypath.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/promptflow/promptflow/executor/_tool_resolver.py b/src/promptflow/promptflow/executor/_tool_resolver.py index d9f7a4ba25e..d77dfcda138 100644 --- a/src/promptflow/promptflow/executor/_tool_resolver.py +++ b/src/promptflow/promptflow/executor/_tool_resolver.py @@ -347,7 +347,8 @@ def _get_llm_node_connection(self, node: Node): connection = self._connection_manager.get(node.connection) if connection is None: raise ConnectionNotFound( - message_format="Connection of LLM node '{node_name}' is not found.", + message_format="Connection '{connection}' of LLM node '{node_name}' is not found.", + connection=node.connection, node_name=node.name, target=ErrorTarget.EXECUTOR, ) diff --git a/src/promptflow/tests/executor/e2etests/test_executor_happypath.py b/src/promptflow/tests/executor/e2etests/test_executor_happypath.py index 2a4c527aa50..ed60eff72aa 100644 --- a/src/promptflow/tests/executor/e2etests/test_executor_happypath.py +++ b/src/promptflow/tests/executor/e2etests/test_executor_happypath.py @@ -179,7 +179,7 @@ def test_executor_node_overrides(self, dev_connections): raise_ex=True, ) assert isinstance(e.value.inner_exception, ConnectionNotFound) - assert "Connection of LLM node 'classify_with_llm' is not found." in str(e.value) + assert "Connection 'dummy_connection' of LLM node 'classify_with_llm' is not found." in str(e.value) @pytest.mark.parametrize( "flow_folder", From 599008499ba1bd3e8b0f41f5a6481f7ea2fec50f Mon Sep 17 00:00:00 2001 From: Ying Chen Date: Fri, 15 Mar 2024 11:21:41 +0800 Subject: [PATCH 058/204] Fix auto stop pfs time bug in detach mode (#2356) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- src/promptflow/promptflow/_sdk/_service/app.py | 6 ++++-- src/promptflow/promptflow/_sdk/_service/entry.py | 11 +++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/promptflow/promptflow/_sdk/_service/app.py b/src/promptflow/promptflow/_sdk/_service/app.py index f72079039bd..e2eb3454f93 100644 --- a/src/promptflow/promptflow/_sdk/_service/app.py +++ b/src/promptflow/promptflow/_sdk/_service/app.py @@ -136,11 +136,13 @@ def monitor_request(): "last_request_time" ] > timedelta(hours=PF_SERVICE_HOUR_TIMEOUT): # Todo: check if we have any not complete work? like persist all traces. - app.logger.warning(f"Last http request time: {app.config['last_request_time']} was made 1h ago") + app.logger.warning(f"Last http request time: {app.config['last_request_time']} was made " + f"{PF_SERVICE_HOUR_TIMEOUT}h ago") port = get_port_from_config() if port: app.logger.info( - f"Try auto stop pfs service in port {port} since no request to app within 1h" + f"Try auto stop pfs service in port {port} since no request to app within " + f"{PF_SERVICE_HOUR_TIMEOUT}h" ) kill_exist_service(port) break diff --git a/src/promptflow/promptflow/_sdk/_service/entry.py b/src/promptflow/promptflow/_sdk/_service/entry.py index 9d1d6124435..f68cd451385 100644 --- a/src/promptflow/promptflow/_sdk/_service/entry.py +++ b/src/promptflow/promptflow/_sdk/_service/entry.py @@ -31,8 +31,13 @@ logger = get_cli_sdk_logger() +app = None + + def get_app(environ, start_response): - app, _ = create_app() + global app + if app is None: + app, _ = create_app() if os.environ.get(PF_SERVICE_DEBUG) == "true": app.logger.setLevel(logging.DEBUG) else: @@ -114,7 +119,9 @@ def validate_port(port, force_start): if is_run_from_built_binary(): # For msi installer, use sdk api to start pfs since it's not supported to invoke waitress by cli directly # after packaged by Pyinstaller. - app, _ = create_app() + global app + if app is None: + app, _ = create_app() if os.environ.get(PF_SERVICE_DEBUG) == "true": app.logger.setLevel(logging.DEBUG) else: From 6922513b8ff78aaf4b56540970c76675b38eeb57 Mon Sep 17 00:00:00 2001 From: Zhengfei Wang <38847871+zhengfeiwang@users.noreply.github.com> Date: Fri, 15 Mar 2024 11:59:36 +0800 Subject: [PATCH 059/204] [internal][tracing] Validate `trace.provider` in pf config (#2355) # Description This PR targets to validate `trace.provider` value: 1. valid ARM resource id for Azure ML workspace 2. the workspace exists 3. the workspace corresponding Cosmos DB is initialized ![image](https://github.com/microsoft/promptflow/assets/38847871/415f2960-37b3-4842-bc71-a2e3eeb5ce71) While Azure CLI is not login, clear error message will be raised from `MLClient` init ![image](https://github.com/microsoft/promptflow/assets/38847871/3de37893-b89a-47cb-9d08-2f4f91cb09e0) # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .../promptflow/_sdk/_configuration.py | 17 ++++- .../promptflow/azure/_utils/_tracing.py | 72 +++++++++++++++++++ 2 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 src/promptflow/promptflow/azure/_utils/_tracing.py diff --git a/src/promptflow/promptflow/_sdk/_configuration.py b/src/promptflow/promptflow/_sdk/_configuration.py index 77c8361231a..8874426cae0 100644 --- a/src/promptflow/promptflow/_sdk/_configuration.py +++ b/src/promptflow/promptflow/_sdk/_configuration.py @@ -20,7 +20,7 @@ from promptflow._sdk._utils import call_from_extension, gen_uuid_by_compute_info, read_write_by_user from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow._utils.yaml_utils import dump_yaml, load_yaml -from promptflow.exceptions import ErrorTarget, ValidationException +from promptflow.exceptions import ErrorTarget, UserErrorException, ValidationException logger = get_cli_sdk_logger() @@ -217,6 +217,21 @@ def _validate(key: str, value: str) -> None: "if you want to specify run output path under flow directory, " "please use its child folder, e.g. '${flow_directory}/.runs'." ) + elif key == Configuration.TRACE_PROVIDER: + try: + from promptflow.azure._utils._tracing import validate_trace_provider + + validate_trace_provider(value) + except ImportError: + msg = ( + '"promptflow[azure]" is required to validate trace provider, ' + 'please install it by running "pip install promptflow[azure]" with your version.' + ) + raise UserErrorException( + message=msg, + target=ErrorTarget.CONTROL_PLANE_SDK, + no_personal_data_message=msg, + ) return def get_user_agent(self) -> Optional[str]: diff --git a/src/promptflow/promptflow/azure/_utils/_tracing.py b/src/promptflow/promptflow/azure/_utils/_tracing.py new file mode 100644 index 00000000000..13865d697a0 --- /dev/null +++ b/src/promptflow/promptflow/azure/_utils/_tracing.py @@ -0,0 +1,72 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import typing + +from azure.ai.ml import MLClient +from azure.core.exceptions import ResourceNotFoundError +from azure.identity import AzureCliCredential, DefaultAzureCredential + +from promptflow._constants import CosmosDBContainerName +from promptflow._sdk._tracing import get_ws_tracing_base_url +from promptflow._sdk._utils import extract_workspace_triad_from_trace_provider +from promptflow.azure import PFClient +from promptflow.azure._restclient.flow_service_caller import FlowRequestException +from promptflow.exceptions import ErrorTarget, UserErrorException + + +def _get_credential() -> typing.Union[AzureCliCredential, DefaultAzureCredential]: + try: + credential = AzureCliCredential() + credential.get_token("https://management.azure.com/.default") + return credential + except Exception: + return DefaultAzureCredential() + + +def _create_trace_provider_value_user_error(message: str) -> UserErrorException: + return UserErrorException(message=message, target=ErrorTarget.CONTROL_PLANE_SDK) + + +def validate_trace_provider(value: str) -> None: + """Validate `trace.provider` in pf config. + + 1. the value is a valid ARM resource ID for Azure ML workspace + 2. the workspace exists + 3. the workspace Cosmos DB is initialized + """ + # valid Azure ML workspace ARM resource ID; otherwise, a ValueError will be raised + try: + workspace_triad = extract_workspace_triad_from_trace_provider(value) + except ValueError as e: + raise _create_trace_provider_value_user_error(str(e)) + + # the workspace exists + ml_client = MLClient( + credential=_get_credential(), + subscription_id=workspace_triad.subscription_id, + resource_group_name=workspace_triad.resource_group_name, + workspace_name=workspace_triad.workspace_name, + ) + try: + ml_client.workspaces.get(name=workspace_triad.workspace_name) + except ResourceNotFoundError as e: + raise _create_trace_provider_value_user_error(str(e)) + + # the workspace Cosmos DB is initialized + # call PFS API to try to retrieve the token + # otherwise, print the trace ui and hint the user to init the Cosmos DB from Azure portal + pf_client = PFClient(ml_client=ml_client) + try: + pf_client._traces._get_cosmos_db_token(container_name=CosmosDBContainerName.SPAN) + except FlowRequestException as e: + ws_tracing_url = get_ws_tracing_base_url(workspace_triad) + msg = ( + f"Failed attempt to retrieve the Cosmos DB token: {str(e)}, " + "this might because you have not initialized the Cosmos DB for the given workspace, " + "or it's still be initializing.\n" + f"Please open the following link to manually initialize it: {ws_tracing_url}; " + "when it's done, retry the command to set the trace provider again." + ) + raise _create_trace_provider_value_user_error(msg) From 3728f50f98785738f74b5f72893288b160caca0a Mon Sep 17 00:00:00 2001 From: Lina Tang Date: Fri, 15 Mar 2024 14:10:33 +0800 Subject: [PATCH 060/204] [Tracing] Remove dependency of promptflow.tracing on promptflow (#2301) # Description This PR focuses on removing the dependency of promptflow.tracing on promptflow by migrating certain files and encapsulating promptflow-specific logic. The changes enhance the modularity and the separation of concerns within the codebase. This refinement ensures that promptflow.tracing operates independently, improving the maintainability and potential reusability of the tracing functionality. ## Key Changes: **File Relocation**: - Transferred `_thread_local_singleton.py`, `_openai_injector.py`, `_generator_proxy.py` and `_operation_context.py` from promptflow to promptflow.tracing to reduce coupling. - Corresponding test files have been moved to test_tracing to align with their source modules. **Utility Functions**: - Introduced a new _utils.py in promptflow.tracing containing essential utility functions: - serialize(): For serialization of objects. - get_input_names_for_prompt_template(): To retrieve input names applicable to a prompt template. - get_prompt_param_name_from_func(): To determine prompt parameter names from functions. **Imports Concealment**: - Certain promptflow-specific imports within promptflow.tracing have been hidden to prevent unnecessary exposure. These include default_json_encoder, ConnectionType, and PromptTemplate. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --------- Co-authored-by: Lina Tang --- .../_core/flow_execution_context.py | 2 +- .../promptflow/_core/run_tracker.py | 2 +- .../promptflow/_internal/__init__.py | 4 +- .../_sdk/_submitter/run_submitter.py | 2 +- src/promptflow/promptflow/_sdk/_tracing.py | 4 +- src/promptflow/promptflow/_sdk/_utils.py | 5 +- .../promptflow/_utils/dataclass_serializer.py | 2 +- .../promptflow/_utils/exception_utils.py | 3 +- .../promptflow/_utils/execution_utils.py | 46 +++ .../promptflow/_utils/run_tracker_utils.py | 2 +- .../promptflow/batch/_batch_engine.py | 4 +- .../batch/_python_executor_proxy.py | 2 +- .../executor/_line_execution_process_pool.py | 2 +- .../promptflow/executor/_process_manager.py | 2 +- .../executor/_service/utils/process_utils.py | 2 +- .../executor/_service/utils/service_utils.py | 3 +- .../promptflow/executor/flow_executor.py | 36 +- .../tracing/_integrations/__init__.py | 0 .../{ => _integrations}/_openai_injector.py | 8 +- .../_operation_context.py} | 66 +--- .../promptflow/tracing/_start_trace.py | 2 +- .../_thread_local_singleton.py} | 0 src/promptflow/promptflow/tracing/_trace.py | 20 +- src/promptflow/promptflow/tracing/_tracer.py | 32 +- src/promptflow/promptflow/tracing/_utils.py | 84 +++++ src/promptflow/promptflow/tracing/_version.py | 5 + .../contracts}/generator_proxy.py | 0 src/promptflow/tests/executor/conftest.py | 2 +- .../tests/executor/e2etests/test_telemetry.py | 4 +- src/promptflow/tests/executor/record_utils.py | 10 +- .../unittests/_core/test_api_injector.py | 308 +---------------- .../unittests/_core/test_operation_context.py | 36 +- .../unittests/_core/test_run_tracker.py | 2 +- .../executor/unittests/_core/test_tracer.py | 2 +- .../_utils/test_dataclass_serializer.py | 12 +- .../unittests/_utils/test_exception_utils.py | 7 +- .../_utils/test_run_tracker_utils.py | 2 +- .../_service/utils/test_process_utils.py | 2 +- .../_service/utils/test_service_utils.py | 2 +- .../tests/sdk_cli_azure_test/conftest.py | 2 +- .../e2etests/test_cli_with_azure.py | 2 +- .../e2etests/test_telemetry.py | 4 +- src/promptflow/tests/sdk_cli_test/conftest.py | 10 +- .../tests/sdk_cli_test/e2etests/test_cli.py | 2 +- .../sdk_cli_test/e2etests/test_flow_serve.py | 2 +- .../openai_inject_recording.py | 6 +- .../recording_utilities/record_storage.py | 2 +- .../sdk_cli_test/unittests/test_trace.py | 2 +- .../flow_with_context.py | 2 +- .../tests/tracing_test/e2etests/test_trace.py | 2 +- .../unittests}/test_generator_proxy.py | 2 +- .../unittests/test_openai_injector.py | 311 ++++++++++++++++++ 52 files changed, 604 insertions(+), 474 deletions(-) create mode 100644 src/promptflow/promptflow/tracing/_integrations/__init__.py rename src/promptflow/promptflow/tracing/{ => _integrations}/_openai_injector.py (98%) rename src/promptflow/promptflow/{_core/operation_context.py => tracing/_operation_context.py} (68%) rename src/promptflow/promptflow/{_core/thread_local_singleton.py => tracing/_thread_local_singleton.py} (100%) create mode 100644 src/promptflow/promptflow/tracing/_utils.py create mode 100644 src/promptflow/promptflow/tracing/_version.py rename src/promptflow/promptflow/{_core => tracing/contracts}/generator_proxy.py (100%) rename src/promptflow/tests/{executor/unittests/_core => tracing_test/unittests}/test_generator_proxy.py (94%) create mode 100644 src/promptflow/tests/tracing_test/unittests/test_openai_injector.py diff --git a/src/promptflow/promptflow/_core/flow_execution_context.py b/src/promptflow/promptflow/_core/flow_execution_context.py index 3acf5c258a3..2ea6259a4a0 100644 --- a/src/promptflow/promptflow/_core/flow_execution_context.py +++ b/src/promptflow/promptflow/_core/flow_execution_context.py @@ -21,10 +21,10 @@ from promptflow.contracts.flow import Node from promptflow.contracts.run_info import RunInfo from promptflow.exceptions import PromptflowException +from promptflow.tracing._thread_local_singleton import ThreadLocalSingleton from promptflow.tracing._tracer import Tracer from .run_tracker import RunTracker -from .thread_local_singleton import ThreadLocalSingleton class FlowExecutionContext(ThreadLocalSingleton): diff --git a/src/promptflow/promptflow/_core/run_tracker.py b/src/promptflow/promptflow/_core/run_tracker.py index 2d28a40bb47..2dfff25a3d6 100644 --- a/src/promptflow/promptflow/_core/run_tracker.py +++ b/src/promptflow/promptflow/_core/run_tracker.py @@ -11,7 +11,6 @@ from promptflow._core._errors import FlowOutputUnserializable, RunRecordNotFound, ToolCanceledError from promptflow._core.log_manager import NodeLogManager -from promptflow._core.thread_local_singleton import ThreadLocalSingleton from promptflow._utils.dataclass_serializer import serialize from promptflow._utils.exception_utils import ExceptionPresenter from promptflow._utils.logger_utils import flow_logger @@ -24,6 +23,7 @@ from promptflow.exceptions import ErrorTarget from promptflow.storage import AbstractRunStorage from promptflow.storage._run_storage import DummyRunStorage +from promptflow.tracing._thread_local_singleton import ThreadLocalSingleton class RunTracker(ThreadLocalSingleton): diff --git a/src/promptflow/promptflow/_internal/__init__.py b/src/promptflow/promptflow/_internal/__init__.py index 3ce0b60d170..e8933b92317 100644 --- a/src/promptflow/promptflow/_internal/__init__.py +++ b/src/promptflow/promptflow/_internal/__init__.py @@ -13,7 +13,6 @@ from promptflow._core.flow_execution_context import FlowExecutionContext from promptflow._core.log_manager import NodeLogManager, NodeLogWriter from promptflow._core.metric_logger import add_metric_logger -from promptflow._core.operation_context import OperationContext from promptflow._core.run_tracker import RunRecordNotFound, RunTracker from promptflow._core.tool import ToolInvoker, ToolProvider, tool from promptflow._core.tool_meta_generator import ( @@ -110,5 +109,6 @@ from promptflow.executor._errors import InputNotFound from promptflow.executor._tool_invoker import DefaultToolInvoker from promptflow.storage._run_storage import DefaultRunStorage -from promptflow.tracing._openai_injector import inject_openai_api +from promptflow.tracing._integrations._openai_injector import inject_openai_api +from promptflow.tracing._operation_context import OperationContext from promptflow.tracing._tracer import Tracer diff --git a/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py b/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py index 88434d89259..dadeef171fa 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py +++ b/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py @@ -8,7 +8,6 @@ from typing import Union from promptflow._constants import FlowLanguage -from promptflow._core.operation_context import OperationContext from promptflow._sdk._constants import ContextAttributeKey, FlowRunProperties from promptflow._sdk._utils import parse_variant from promptflow._sdk.entities._flow import Flow @@ -19,6 +18,7 @@ from promptflow.contracts.run_info import Status from promptflow.contracts.run_mode import RunMode from promptflow.exceptions import UserErrorException, ValidationException +from promptflow.tracing._operation_context import OperationContext from ..._utils.logger_utils import LoggerFactory from .._configuration import Configuration diff --git a/src/promptflow/promptflow/_sdk/_tracing.py b/src/promptflow/promptflow/_sdk/_tracing.py index 3c389fe71cd..05d83c5560e 100644 --- a/src/promptflow/promptflow/_sdk/_tracing.py +++ b/src/promptflow/promptflow/_sdk/_tracing.py @@ -20,7 +20,6 @@ SpanResourceAttributesFieldName, TraceEnvironmentVariableName, ) -from promptflow._core.operation_context import OperationContext from promptflow._sdk._configuration import Configuration from promptflow._sdk._constants import ( PF_TRACE_CONTEXT, @@ -32,7 +31,8 @@ from promptflow._sdk._service.utils.utils import get_port_from_config, is_pfs_service_healthy, is_port_in_use from promptflow._sdk._utils import extract_workspace_triad_from_trace_provider from promptflow._utils.logger_utils import get_cli_sdk_logger -from promptflow.tracing._openai_injector import inject_openai_api +from promptflow.tracing._integrations._openai_injector import inject_openai_api +from promptflow.tracing._operation_context import OperationContext from promptflow.tracing._start_trace import _force_set_tracer_provider, _is_tracer_provider_set logger = get_cli_sdk_logger() diff --git a/src/promptflow/promptflow/_sdk/_utils.py b/src/promptflow/promptflow/_sdk/_utils.py index 47900ee8ce0..18a1a95704a 100644 --- a/src/promptflow/promptflow/_sdk/_utils.py +++ b/src/promptflow/promptflow/_sdk/_utils.py @@ -75,6 +75,7 @@ from promptflow.contracts.tool import ToolType from promptflow.core._utils import generate_flow_meta as _generate_flow_meta from promptflow.exceptions import ErrorTarget, UserErrorException +from promptflow.tracing._operation_context import OperationContext logger = get_cli_sdk_logger() @@ -759,14 +760,10 @@ class ClientUserAgentUtil: @classmethod def _get_context(cls): - from promptflow._core.operation_context import OperationContext - return OperationContext.get_instance() @classmethod def get_user_agent(cls): - from promptflow._core.operation_context import OperationContext - context = cls._get_context() # directly get from context since client side won't need promptflow/xxx. return context.get(OperationContext.USER_AGENT_KEY, "").strip() diff --git a/src/promptflow/promptflow/_utils/dataclass_serializer.py b/src/promptflow/promptflow/_utils/dataclass_serializer.py index b5a09b4b97d..3d7602bff9f 100644 --- a/src/promptflow/promptflow/_utils/dataclass_serializer.py +++ b/src/promptflow/promptflow/_utils/dataclass_serializer.py @@ -8,8 +8,8 @@ from typing import Any, Callable, Dict, List, Type, TypeVar from promptflow._constants import DEFAULT_OUTPUT_NAME -from promptflow._core.generator_proxy import GeneratorProxy from promptflow.contracts.tool import ConnectionType +from promptflow.tracing.contracts.generator_proxy import GeneratorProxy T = TypeVar("T") diff --git a/src/promptflow/promptflow/_utils/exception_utils.py b/src/promptflow/promptflow/_utils/exception_utils.py index 8e40f331638..a4a5be5e9ef 100644 --- a/src/promptflow/promptflow/_utils/exception_utils.py +++ b/src/promptflow/promptflow/_utils/exception_utils.py @@ -10,6 +10,7 @@ from types import TracebackType, FrameType from promptflow.exceptions import PromptflowException, SystemErrorException, UserErrorException, ValidationException +from promptflow.tracing._operation_context import OperationContext ADDITIONAL_INFO_USER_EXECUTION_ERROR = "ToolExecutionErrorDetails" ADDITIONAL_INFO_USER_CODE_STACKTRACE = "UserCodeStackTrace" @@ -107,8 +108,6 @@ def get_user_execution_error_info(self): return user_execution_error_info def to_dict(self): - from promptflow._core.operation_context import OperationContext - return { "error": self._error_dict, "correlation": None, # TODO: to be implemented diff --git a/src/promptflow/promptflow/_utils/execution_utils.py b/src/promptflow/promptflow/_utils/execution_utils.py index bcf90c9ec97..f76f4a39398 100644 --- a/src/promptflow/promptflow/_utils/execution_utils.py +++ b/src/promptflow/promptflow/_utils/execution_utils.py @@ -7,6 +7,7 @@ from promptflow.contracts.flow import Flow, FlowInputDefinition, InputAssignment, InputValueType from promptflow.contracts.run_info import FlowRunInfo, Status from promptflow.executor import _input_assignment_parser +from promptflow.tracing._operation_context import OperationContext def apply_default_value_for_input(inputs: Dict[str, FlowInputDefinition], line_inputs: Mapping) -> Dict[str, Any]: @@ -69,3 +70,48 @@ def _parse_aggregation_input(nodes_outputs: dict, aggregation_input_property: st """Parse the value of the aggregation input from the nodes outputs.""" assign = InputAssignment.deserialize(aggregation_input_property) return _input_assignment_parser.parse_value(assign, nodes_outputs, {}) + + +def set_batch_input_source_from_inputs_mapping(inputs_mapping): + """Infer the batch input source from the input mapping and set it in the OperationContext instance. + + This method analyzes the `inputs_mapping` to ascertain the origin of the inputs for a batch operation. + The `inputs_mapping` should be a dictionary with keys representing input names and values specifying the sources + of these inputs. Inputs can originate from direct data or from the outputs of a previous run. + + The `inputs_mapping` is dictated entirely by the external caller. For more details on column mapping, refer to + https://aka.ms/pf/column-mapping. The mapping can include references to both the inputs and outputs of previous + runs, using a reserved source name 'run' to indicate such references. However, this method specifically checks + for references to outputs of previous runs, which are denoted by values starting with "${run.outputs". When such + a reference is found, the `batch_input_source` attribute of the OperationContext instance is set to "Run" to + reflect that the batch operation is utilizing outputs from a prior run. + + If no values in the `inputs_mapping` start with "${run.outputs", it is inferred that the inputs do not derive + from a previous run, and the `batch_input_source` is set to "Data". + + Examples of `inputs_mapping`: + - Referencing a previous run's output: + {'input1': '${run.outputs.some_output}', 'input2': 'direct_data'} + In this case, 'input1' is sourced from a prior run's output, and 'input2' is from direct data. + The `batch_input_source` would be set to "Run". + + - Sourcing directly from data: + {'input1': 'data_source1', 'input2': 'data_source2'} + Since no values start with "${run.outputs", the `batch_input_source` is set to "Data". + + Args: + inputs_mapping (Mapping[str, str]): A dictionary mapping input names to their sources, where the sources + can be either direct data or outputs from a previous run. The structure and content of this mapping are + entirely under the control of the external caller. + + Returns: + None + """ + + if inputs_mapping and any( + isinstance(value, str) and value.startswith("${run.outputs") for value in inputs_mapping.values() + ): + batch_input_source = "Run" + else: + batch_input_source = "Data" + OperationContext.get_instance()["batch_input_source"] = batch_input_source diff --git a/src/promptflow/promptflow/_utils/run_tracker_utils.py b/src/promptflow/promptflow/_utils/run_tracker_utils.py index 0a846555eef..1f44535db36 100644 --- a/src/promptflow/promptflow/_utils/run_tracker_utils.py +++ b/src/promptflow/promptflow/_utils/run_tracker_utils.py @@ -3,7 +3,7 @@ # --------------------------------------------------------- from copy import deepcopy -from promptflow._core.generator_proxy import GeneratorProxy +from promptflow.tracing.contracts.generator_proxy import GeneratorProxy def _deep_copy_and_extract_items_from_generator_proxy(value: object) -> object: diff --git a/src/promptflow/promptflow/batch/_batch_engine.py b/src/promptflow/promptflow/batch/_batch_engine.py index 09cefec9098..1165b0ee224 100644 --- a/src/promptflow/promptflow/batch/_batch_engine.py +++ b/src/promptflow/promptflow/batch/_batch_engine.py @@ -12,7 +12,6 @@ from promptflow._constants import LANGUAGE_KEY, LINE_NUMBER_KEY, LINE_TIMEOUT_SEC, OUTPUT_FILE_NAME, FlowLanguage from promptflow._core._errors import ResumeCopyError, UnexpectedError -from promptflow._core.operation_context import OperationContext from promptflow._utils.async_utils import async_run_allowing_running_loop from promptflow._utils.context_utils import _change_working_dir from promptflow._utils.execution_utils import ( @@ -21,6 +20,7 @@ extract_aggregation_inputs, get_aggregation_inputs_properties, handle_line_failures, + set_batch_input_source_from_inputs_mapping, ) from promptflow._utils.logger_utils import bulk_logger from promptflow._utils.multimedia_utils import persist_multimedia_data @@ -185,7 +185,7 @@ def run( ) # set batch input source from input mapping - OperationContext.get_instance().set_batch_input_source_from_inputs_mapping(inputs_mapping) + set_batch_input_source_from_inputs_mapping(inputs_mapping) # if using eager flow, the self._flow is none, so we need to get inputs definition from executor inputs = self._executor_proxy.get_inputs_definition() if self._is_eager_flow else self._flow.inputs # resolve input data from input dirs and apply inputs mapping diff --git a/src/promptflow/promptflow/batch/_python_executor_proxy.py b/src/promptflow/promptflow/batch/_python_executor_proxy.py index d3c1e60303d..2ab8be0ce03 100644 --- a/src/promptflow/promptflow/batch/_python_executor_proxy.py +++ b/src/promptflow/promptflow/batch/_python_executor_proxy.py @@ -6,7 +6,6 @@ from typing import Any, List, Mapping, Optional, Tuple from promptflow._core._errors import UnexpectedError -from promptflow._core.operation_context import OperationContext from promptflow._core.run_tracker import RunTracker from promptflow._utils.logger_utils import bulk_logger from promptflow.batch._base_executor_proxy import AbstractExecutorProxy @@ -16,6 +15,7 @@ from promptflow.executor._result import AggregationResult, LineResult from promptflow.executor._script_executor import ScriptExecutor from promptflow.storage._run_storage import AbstractRunStorage +from promptflow.tracing._operation_context import OperationContext class PythonExecutorProxy(AbstractExecutorProxy): diff --git a/src/promptflow/promptflow/executor/_line_execution_process_pool.py b/src/promptflow/promptflow/executor/_line_execution_process_pool.py index 43dba237ca9..87baf5ab85c 100644 --- a/src/promptflow/promptflow/executor/_line_execution_process_pool.py +++ b/src/promptflow/promptflow/executor/_line_execution_process_pool.py @@ -22,7 +22,6 @@ from promptflow._constants import LINE_NUMBER_KEY, LINE_TIMEOUT_SEC from promptflow._core._errors import ProcessPoolError, UnexpectedError -from promptflow._core.operation_context import OperationContext from promptflow._core.run_tracker import RunTracker from promptflow._utils.dataclass_serializer import convert_eager_flow_output_to_dict from promptflow._utils.exception_utils import ExceptionPresenter @@ -46,6 +45,7 @@ from promptflow.executor._script_executor import ScriptExecutor from promptflow.executor.flow_executor import DEFAULT_CONCURRENCY_BULK, FlowExecutor from promptflow.storage._queue_run_storage import QueueRunStorage +from promptflow.tracing._operation_context import OperationContext TERMINATE_SIGNAL = "terminate" diff --git a/src/promptflow/promptflow/executor/_process_manager.py b/src/promptflow/promptflow/executor/_process_manager.py index 8a65c1b02c1..acce0f8d864 100644 --- a/src/promptflow/promptflow/executor/_process_manager.py +++ b/src/promptflow/promptflow/executor/_process_manager.py @@ -10,7 +10,6 @@ import psutil -from promptflow._core.operation_context import OperationContext from promptflow._core.run_tracker import RunTracker from promptflow._utils.logger_utils import LogContext, bulk_logger from promptflow.executor._errors import ( @@ -21,6 +20,7 @@ from promptflow.executor._script_executor import ScriptExecutor from promptflow.executor.flow_executor import FlowExecutor from promptflow.storage import AbstractRunStorage +from promptflow.tracing._operation_context import OperationContext @dataclass diff --git a/src/promptflow/promptflow/executor/_service/utils/process_utils.py b/src/promptflow/promptflow/executor/_service/utils/process_utils.py index a49c9039810..32017f464d9 100644 --- a/src/promptflow/promptflow/executor/_service/utils/process_utils.py +++ b/src/promptflow/promptflow/executor/_service/utils/process_utils.py @@ -13,13 +13,13 @@ import psutil from promptflow._core._errors import UnexpectedError -from promptflow._core.operation_context import OperationContext from promptflow._utils.exception_utils import ExceptionPresenter, JsonSerializedPromptflowException from promptflow._utils.logger_utils import service_logger from promptflow._utils.process_utils import block_terminate_signal_to_parent from promptflow.exceptions import ErrorTarget from promptflow.executor._service._errors import ExecutionCanceledError, ExecutionTimeoutError from promptflow.executor._service.utils.process_manager import ProcessManager +from promptflow.tracing._operation_context import OperationContext LONG_WAIT_TIMEOUT = timedelta(days=1).total_seconds() SHORT_WAIT_TIMEOUT = 10 diff --git a/src/promptflow/promptflow/executor/_service/utils/service_utils.py b/src/promptflow/promptflow/executor/_service/utils/service_utils.py index 6f49033681e..dfbb6173b30 100644 --- a/src/promptflow/promptflow/executor/_service/utils/service_utils.py +++ b/src/promptflow/promptflow/executor/_service/utils/service_utils.py @@ -7,11 +7,11 @@ from typing import Any, Mapping, Union from promptflow._core.connection_manager import ConnectionManager -from promptflow._core.operation_context import OperationContext from promptflow._utils.exception_utils import ErrorResponse, ExceptionPresenter, JsonSerializedPromptflowException from promptflow._utils.logger_utils import LogContext, service_logger from promptflow._version import VERSION from promptflow.executor._service.contracts.execution_request import BaseExecutionRequest +from promptflow.tracing._operation_context import OperationContext def get_log_context(request: BaseExecutionRequest, enable_service_logger: bool = False) -> LogContext: @@ -32,6 +32,7 @@ def update_and_get_operation_context(context_dict: Mapping[str, Any]) -> Operati # update user agent to operation context executor_user_agent = get_executor_version() operation_context.append_user_agent(executor_user_agent) + operation_context.append_user_agent(f"promptflow/{VERSION}") return operation_context diff --git a/src/promptflow/promptflow/executor/flow_executor.py b/src/promptflow/promptflow/executor/flow_executor.py index 76ae6d59d49..da8c2fe0a5a 100644 --- a/src/promptflow/promptflow/executor/flow_executor.py +++ b/src/promptflow/promptflow/executor/flow_executor.py @@ -21,7 +21,6 @@ from promptflow._core.cache_manager import AbstractCacheManager from promptflow._core.flow_execution_context import FlowExecutionContext from promptflow._core.metric_logger import add_metric_logger, remove_metric_logger -from promptflow._core.operation_context import OperationContext from promptflow._core.run_tracker import RunTracker from promptflow._core.tool import STREAMING_OPTION_PARAMETER_ATTR from promptflow._core.tools_manager import ToolsManager @@ -40,6 +39,7 @@ ) from promptflow._utils.utils import get_int_env_var, transpose from promptflow._utils.yaml_utils import load_yaml +from promptflow._version import VERSION from promptflow.contracts.flow import Flow, FlowInputDefinition, InputAssignment, InputValueType, Node from promptflow.contracts.run_info import FlowRunInfo, Status from promptflow.contracts.run_mode import RunMode @@ -57,7 +57,8 @@ from promptflow.executor.flow_validator import FlowValidator from promptflow.storage import AbstractRunStorage from promptflow.storage._run_storage import DefaultRunStorage -from promptflow.tracing._openai_injector import inject_openai_api +from promptflow.tracing._integrations._openai_injector import inject_openai_api +from promptflow.tracing._operation_context import OperationContext from promptflow.tracing._trace import ( enrich_span_with_context, enrich_span_with_input, @@ -126,10 +127,6 @@ def __init__( :param flow_file: The path to the file containing the Flow definition. :type flow_file: str or None """ - # Inject OpenAI API to make sure traces and headers injection works and - # update OpenAI API configs from environment variables. - inject_openai_api() - self._flow = flow self._flow_id = flow.id or str(uuid.uuid4()) self._connections = connections @@ -321,13 +318,23 @@ def load_and_exec_node( :param raise_ex: Whether to raise exceptions or not. Default is False. :type raise_ex: Optional[bool] """ - # Inject OpenAI API to make sure traces and headers injection works and - # update OpenAI API configs from environment variables. - inject_openai_api() - OperationContext.get_instance().run_mode = RunMode.SingleNode.name - dependency_nodes_outputs = dependency_nodes_outputs or {} + @contextlib.contextmanager + def update_operation_context(): + operation_context = OperationContext.get_instance() + original_context = operation_context.copy() + try: + operation_context.append_user_agent(f"promptflow/{VERSION}") + operation_context.set_default_tracing_keys({"run_mode", "root_run_id", "flow_id", "batch_input_source"}) + operation_context["run_mode"] = RunMode.SingleNode.name + # Inject OpenAI API to make sure traces and headers injection works and + # update OpenAI API configs from environment variables. + inject_openai_api() + yield + finally: + OperationContext.set_instance(original_context) + dependency_nodes_outputs = dependency_nodes_outputs or {} # Load the node from the flow file working_dir = Flow._resolve_working_dir(flow_file, working_dir) with open(working_dir / flow_file, "r") as fin: @@ -388,7 +395,7 @@ def load_and_exec_node( sub_dir = "." if output_sub_dir is None else output_sub_dir storage = DefaultRunStorage(base_dir=working_dir, sub_dir=Path(sub_dir)) run_tracker = RunTracker(storage) - with run_tracker.node_log_manager: + with run_tracker.node_log_manager, update_operation_context(): # Will generate node run in context context = FlowExecutionContext( name=flow.name, @@ -778,10 +785,15 @@ def _update_operation_context(self, run_id: str, line_number: int): else: values_for_otel = {"line_run_id": run_id} try: + operation_context.append_user_agent(f"promptflow/{VERSION}") + operation_context.set_default_tracing_keys({"run_mode", "root_run_id", "flow_id", "batch_input_source"}) operation_context.run_mode = original_mode or RunMode.Test.name operation_context.update(values_for_context) for k, v in values_for_otel.items(): operation_context._add_otel_attributes(k, v) + # Inject OpenAI API to make sure traces and headers injection works and + # update OpenAI API configs from environment variables. + inject_openai_api() yield finally: OperationContext.set_instance(original_context) diff --git a/src/promptflow/promptflow/tracing/_integrations/__init__.py b/src/promptflow/promptflow/tracing/_integrations/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/promptflow/promptflow/tracing/_openai_injector.py b/src/promptflow/promptflow/tracing/_integrations/_openai_injector.py similarity index 98% rename from src/promptflow/promptflow/tracing/_openai_injector.py rename to src/promptflow/promptflow/tracing/_integrations/_openai_injector.py index f9946ef5407..c35f53a1843 100644 --- a/src/promptflow/promptflow/tracing/_openai_injector.py +++ b/src/promptflow/promptflow/tracing/_integrations/_openai_injector.py @@ -12,10 +12,9 @@ import openai -from promptflow._core.operation_context import OperationContext - -from ._trace import _traced_async, _traced_sync -from .contracts.trace import TraceType +from .._operation_context import OperationContext +from .._trace import _traced_async, _traced_sync +from ..contracts.trace import TraceType USER_AGENT_HEADER = "x-ms-useragent" @@ -46,6 +45,7 @@ def get_aoai_telemetry_headers() -> dict: Returns: A dictionary of http headers. """ + # get promptflow info from operation context operation_context = OperationContext.get_instance() tracking_info = operation_context._get_tracking_info() diff --git a/src/promptflow/promptflow/_core/operation_context.py b/src/promptflow/promptflow/tracing/_operation_context.py similarity index 68% rename from src/promptflow/promptflow/_core/operation_context.py rename to src/promptflow/promptflow/tracing/_operation_context.py index ddb5ef067c7..91e6b2dc337 100644 --- a/src/promptflow/promptflow/_core/operation_context.py +++ b/src/promptflow/promptflow/tracing/_operation_context.py @@ -3,9 +3,9 @@ # --------------------------------------------------------- import copy from contextvars import ContextVar -from typing import Dict, Mapping +from typing import Dict -from promptflow._version import VERSION +from ._version import VERSION class OperationContext(Dict): @@ -18,15 +18,16 @@ class OperationContext(Dict): """ _CONTEXT_KEY = "operation_context" - _OTEL_ATTRIBUTES = "_otel_attributes" _current_context = ContextVar(_CONTEXT_KEY, default=None) USER_AGENT_KEY = "user_agent" REQUEST_ID_KEY = "request_id" - _DEFAULT_TRACKING_KEYS = {"run_mode", "root_run_id", "flow_id", "batch_input_source"} + _DEFAULT_TRACING_KEYS = "_default_tracing_keys" + _OTEL_ATTRIBUTES = "_otel_attributes" _TRACKING_KEYS = "_tracking_keys" def copy(self): - ctx = OperationContext(self) + ctx = OperationContext() + ctx.update(self) ctx[OperationContext._OTEL_ATTRIBUTES] = copy.copy(self._get_otel_attributes()) return ctx @@ -65,8 +66,8 @@ def get_instance(cls): # create a new instance and set it in the current context instance = OperationContext() cls._current_context.set(instance) - if cls._TRACKING_KEYS not in instance: - instance[cls._TRACKING_KEYS] = copy.copy(cls._DEFAULT_TRACKING_KEYS) + if cls._TRACKING_KEYS not in instance and cls._DEFAULT_TRACING_KEYS in instance: + instance[cls._TRACKING_KEYS] = copy.copy(instance[cls._DEFAULT_TRACING_KEYS]) return instance @classmethod @@ -137,7 +138,7 @@ def get_user_agent(self): def parts(): if OperationContext.USER_AGENT_KEY in self: yield self.get(OperationContext.USER_AGENT_KEY) - yield f"promptflow/{VERSION}" + yield f"promptflow-tracing/{VERSION}" # strip to avoid leading or trailing spaces, which may cause error when sending request ua = " ".join(parts()).strip() @@ -166,47 +167,14 @@ def get_request_id(self): return self.get(OperationContext.REQUEST_ID_KEY) return "unknown" - def set_batch_input_source_from_inputs_mapping(self, inputs_mapping: Mapping[str, str]): - """Infer the batch input source from the input mapping and set it in the OperationContext instance. - - This method analyzes the `inputs_mapping` to ascertain the origin of the inputs for a batch operation. - The `inputs_mapping` should be a dictionary with keys representing input names and values specifying the sources - of these inputs. Inputs can originate from direct data or from the outputs of a previous run. - - The `inputs_mapping` is dictated entirely by the external caller. For more details on column mapping, refer to - https://aka.ms/pf/column-mapping. The mapping can include references to both the inputs and outputs of previous - runs, using a reserved source name 'run' to indicate such references. However, this method specifically checks - for references to outputs of previous runs, which are denoted by values starting with "${run.outputs". When such - a reference is found, the `batch_input_source` attribute of the OperationContext instance is set to "Run" to - reflect that the batch operation is utilizing outputs from a prior run. - - If no values in the `inputs_mapping` start with "${run.outputs", it is inferred that the inputs do not derive - from a previous run, and the `batch_input_source` is set to "Data". - - Examples of `inputs_mapping`: - - Referencing a previous run's output: - {'input1': '${run.outputs.some_output}', 'input2': 'direct_data'} - In this case, 'input1' is sourced from a prior run's output, and 'input2' is from direct data. - The `batch_input_source` would be set to "Run". - - - Sourcing directly from data: - {'input1': 'data_source1', 'input2': 'data_source2'} - Since no values start with "${run.outputs", the `batch_input_source` is set to "Data". - - Args: - inputs_mapping (Mapping[str, str]): A dictionary mapping input names to their sources, where the sources - can be either direct data or outputs from a previous run. The structure and content of this mapping are - entirely under the control of the external caller. - - Returns: - None - """ - if inputs_mapping and any( - isinstance(value, str) and value.startswith("${run.outputs") for value in inputs_mapping.values() - ): - self.batch_input_source = "Run" + def set_default_tracing_keys(self, keys: set): + self[self._DEFAULT_TRACING_KEYS] = keys + if not hasattr(self, self._TRACKING_KEYS): + self[self._TRACKING_KEYS] = copy.copy(keys) else: - self.batch_input_source = "Data" + for key in keys: + if key not in self[self._TRACKING_KEYS]: + self[self._TRACKING_KEYS].add(key) def get_context_dict(self): """Get the context dictionary. @@ -221,5 +189,5 @@ def get_context_dict(self): return dict(self) def _get_tracking_info(self): - keys = getattr(self, self._TRACKING_KEYS, self._DEFAULT_TRACKING_KEYS) + keys = getattr(self, self._TRACKING_KEYS, getattr(self, self._DEFAULT_TRACING_KEYS, [])) return {k: v for k, v in self.items() if k in keys} diff --git a/src/promptflow/promptflow/tracing/_start_trace.py b/src/promptflow/promptflow/tracing/_start_trace.py index 6df681793e4..7c99687ee7e 100644 --- a/src/promptflow/promptflow/tracing/_start_trace.py +++ b/src/promptflow/promptflow/tracing/_start_trace.py @@ -14,7 +14,7 @@ RESOURCE_ATTRIBUTES_SERVICE_NAME, ResourceAttributesFieldName, ) -from ._openai_injector import inject_openai_api +from ._integrations._openai_injector import inject_openai_api def start_trace( diff --git a/src/promptflow/promptflow/_core/thread_local_singleton.py b/src/promptflow/promptflow/tracing/_thread_local_singleton.py similarity index 100% rename from src/promptflow/promptflow/_core/thread_local_singleton.py rename to src/promptflow/promptflow/tracing/_thread_local_singleton.py diff --git a/src/promptflow/promptflow/tracing/_trace.py b/src/promptflow/promptflow/tracing/_trace.py index f5d2d5b81d2..5f5b542a43f 100644 --- a/src/promptflow/promptflow/tracing/_trace.py +++ b/src/promptflow/promptflow/tracing/_trace.py @@ -17,13 +17,10 @@ from opentelemetry.trace.span import NonRecordingSpan from opentelemetry.trace.status import StatusCode -from promptflow._core.generator_proxy import GeneratorProxy -from promptflow._core.operation_context import OperationContext -from promptflow._utils.dataclass_serializer import serialize -from promptflow._utils.tool_utils import get_inputs_for_prompt_template, get_prompt_param_name_from_func - -from .._utils.utils import default_json_encoder +from ._operation_context import OperationContext from ._tracer import Tracer, _create_trace_from_function_call, get_node_name_from_context +from ._utils import get_input_names_for_prompt_template, get_prompt_param_name_from_func, serialize +from .contracts.generator_proxy import GeneratorProxy from .contracts.trace import TraceType IS_LEGACY_OPENAI = version("openai").startswith("0.") @@ -101,7 +98,9 @@ def enrich_span_with_prompt_info(span, func, kwargs): prompt_tpl_param_name = get_prompt_param_name_from_func(func) if prompt_tpl_param_name is not None: prompt_tpl = kwargs.get(prompt_tpl_param_name) - prompt_vars = {key: kwargs.get(key) for key in get_inputs_for_prompt_template(prompt_tpl) if key in kwargs} + prompt_vars = { + name: kwargs.get(name) for name in get_input_names_for_prompt_template(prompt_tpl) if name in kwargs + } prompt_info = {"prompt.template": prompt_tpl, "prompt.variables": serialize_attribute(prompt_vars)} span.set_attributes(prompt_info) except Exception as e: @@ -239,7 +238,12 @@ def serialize_attribute(value): try: serializable = Tracer.to_serializable(value) serialized_value = serialize(serializable) - return json.dumps(serialized_value, indent=2, default=default_json_encoder) + try: + from promptflow._utils.utils import default_json_encoder + + return json.dumps(serialized_value, indent=2, default=default_json_encoder) + except ImportError: + return json.dumps(serialized_value, indent=2) except Exception as e: logging.warning(f"Failed to serialize attribute: {e}") return None diff --git a/src/promptflow/promptflow/tracing/_tracer.py b/src/promptflow/promptflow/tracing/_tracer.py index edac45b283e..51af3057dca 100644 --- a/src/promptflow/promptflow/tracing/_tracer.py +++ b/src/promptflow/promptflow/tracing/_tracer.py @@ -7,12 +7,9 @@ from datetime import datetime from typing import Dict, List, Optional -from promptflow._core.generator_proxy import GeneratorProxy, generate_from_proxy -from promptflow._core.thread_local_singleton import ThreadLocalSingleton -from promptflow._utils.dataclass_serializer import serialize -from promptflow.contracts.tool import ConnectionType - -from .._utils.utils import default_json_encoder +from ._thread_local_singleton import ThreadLocalSingleton +from ._utils import serialize +from .contracts.generator_proxy import GeneratorProxy, generate_from_proxy from .contracts.trace import Trace, TraceType @@ -68,7 +65,12 @@ def to_serializable(obj): return obj try: obj = serialize(obj) - json.dumps(obj, default=default_json_encoder) + try: + from promptflow._utils.utils import default_json_encoder + + json.dumps(obj, default=default_json_encoder) + except ImportError: + json.dumps(obj) except Exception: # We don't want to fail the whole function call because of a serialization error, # so we simply convert it to str if it cannot be serialized. @@ -157,10 +159,18 @@ def _create_trace_from_function_call( sig = inspect.signature(f).parameters all_kwargs = {**{k: v for k, v in zip(sig.keys(), args)}, **kwargs} - all_kwargs = { - k: ConnectionType.serialize_conn(v) if ConnectionType.is_connection_value(v) else v - for k, v in all_kwargs.items() - } + try: + # We have removed the dependency of tracing on promptflow, so need to check if the ConnectionType is + # available before using it. + from promptflow.contracts.tool import ConnectionType + + all_kwargs = { + k: ConnectionType.serialize_conn(v) if ConnectionType.is_connection_value(v) else v + for k, v in all_kwargs.items() + } + except ImportError: + pass + # TODO: put parameters in self to inputs for builtin tools all_kwargs.pop("self", None) for key in args_to_ignore: diff --git a/src/promptflow/promptflow/tracing/_utils.py b/src/promptflow/promptflow/tracing/_utils.py new file mode 100644 index 00000000000..ed33278a634 --- /dev/null +++ b/src/promptflow/promptflow/tracing/_utils.py @@ -0,0 +1,84 @@ +import re +from dataclasses import fields, is_dataclass +from datetime import datetime +from enum import Enum +from jinja2 import Environment, meta +from typing import Callable, Dict + +from .contracts.generator_proxy import GeneratorProxy + + +def serialize(value: object, remove_null: bool = False, serialization_funcs: Dict[type, Callable] = None) -> dict: + if serialization_funcs: + for cls, f in serialization_funcs.items(): + if isinstance(value, cls): + return f(value) + if isinstance(value, datetime): + return value.isoformat() + "Z" + if isinstance(value, Enum): + return value.value + if isinstance(value, list): + return [serialize(v, remove_null, serialization_funcs) for v in value] + if isinstance(value, GeneratorProxy): + # TODO: The current implementation of the serialize function is not self-explanatory, as value.items is mutable + # whereas the serialize function should deal with a fixed object. We should rename the function to + # to_serializable to better reflect its purpose. + return value.items + try: + from promptflow.contracts.tool import ConnectionType + + # Note that custom connection check should before dict check + if ConnectionType.is_connection_value(value): + return ConnectionType.serialize_conn(value) + except ImportError: + pass + if isinstance(value, dict): + return {k: serialize(v, remove_null, serialization_funcs) for k, v in value.items()} + if is_dataclass(value): + if hasattr(value, "serialize"): + result = value.serialize() + else: + result = { + f.name: serialize(getattr(value, f.name), remove_null, serialization_funcs) for f in fields(value) + } + if not remove_null: + return result + null_keys = [k for k, v in result.items() if v is None] + for k in null_keys: + result.pop(k) + return result + try: + from pydantic import BaseModel + + if isinstance(value, BaseModel): # Handle pydantic model, which is used in langchain + return value.dict() + except ImportError: + # Ignore ImportError if pydantic is not installed + pass + return value + + +def get_input_names_for_prompt_template(template_str): + input_names = [] + env = Environment() + template = env.parse(template_str) + input_names.extend(sorted(meta.find_undeclared_variables(template), key=lambda x: template_str.find(x))) + + # currently we only support image type + pattern = r"\!\[(\s*image\s*)\]\(\{\{\s*([^{}]+)\s*\}\}\)" + matches = re.finditer(pattern, template_str) + for match in matches: + input_names.append(match.group(2).strip()) + + return input_names + + +def get_prompt_param_name_from_func(f): + """Get the param name of prompt template on provider.""" + + try: + from promptflow.contracts.types import PromptTemplate + + return next((k for k, annotation in f.__annotations__.items() if annotation == PromptTemplate), None) + except ImportError: + return None diff --git a/src/promptflow/promptflow/tracing/_version.py b/src/promptflow/promptflow/tracing/_version.py new file mode 100644 index 00000000000..68ee238ac5d --- /dev/null +++ b/src/promptflow/promptflow/tracing/_version.py @@ -0,0 +1,5 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +VERSION = "0.0.1" diff --git a/src/promptflow/promptflow/_core/generator_proxy.py b/src/promptflow/promptflow/tracing/contracts/generator_proxy.py similarity index 100% rename from src/promptflow/promptflow/_core/generator_proxy.py rename to src/promptflow/promptflow/tracing/contracts/generator_proxy.py diff --git a/src/promptflow/tests/executor/conftest.py b/src/promptflow/tests/executor/conftest.py index ad8c7f3dfa3..3ac613c5808 100644 --- a/src/promptflow/tests/executor/conftest.py +++ b/src/promptflow/tests/executor/conftest.py @@ -25,7 +25,7 @@ from promptflow.executor._line_execution_process_pool import _process_wrapper from promptflow.executor._process_manager import create_spawned_fork_process_manager from promptflow.executor._service.app import app -from promptflow.tracing._openai_injector import inject_openai_api +from promptflow.tracing._integrations._openai_injector import inject_openai_api PROMPTFLOW_ROOT = Path(__file__) / "../../.." diff --git a/src/promptflow/tests/executor/e2etests/test_telemetry.py b/src/promptflow/tests/executor/e2etests/test_telemetry.py index d2005398ec7..12214f5eb25 100644 --- a/src/promptflow/tests/executor/e2etests/test_telemetry.py +++ b/src/promptflow/tests/executor/e2etests/test_telemetry.py @@ -9,13 +9,13 @@ import pytest from promptflow._constants import OUTPUT_FILE_NAME -from promptflow._core.operation_context import OperationContext from promptflow.batch._batch_engine import BatchEngine from promptflow.batch._result import BatchResult from promptflow.contracts.run_mode import RunMode from promptflow.executor import FlowExecutor from promptflow.executor._line_execution_process_pool import _process_wrapper from promptflow.executor._process_manager import create_spawned_fork_process_manager +from promptflow.tracing._operation_context import OperationContext from ..process_utils import override_process_pool_targets from ..utils import get_flow_folder, get_flow_inputs_file, get_yaml_file, load_jsonl @@ -126,10 +126,10 @@ def test_executor_openai_telemetry_with_batch_run(self, dev_connections, recordi operation_context = OperationContext.get_instance() operation_context.clear() + operation_context.set_default_tracing_keys({"default_dummy_key"}) # Set user-defined properties `scenario` in context operation_context.scenario = "test" operation_context.dummy_key = "dummy_value" - operation_context._tracking_keys = OperationContext._DEFAULT_TRACKING_KEYS operation_context._tracking_keys.add("dummy_key") with override_process_pool_targets(mock_process_wrapper, mock_process_manager): diff --git a/src/promptflow/tests/executor/record_utils.py b/src/promptflow/tests/executor/record_utils.py index 1f9b478b696..39e8e68a60f 100644 --- a/src/promptflow/tests/executor/record_utils.py +++ b/src/promptflow/tests/executor/record_utils.py @@ -11,7 +11,7 @@ mock_tool, ) -from promptflow.tracing._openai_injector import inject_openai_api +from promptflow.tracing._integrations._openai_injector import inject_openai_api PROMPTFLOW_ROOT = Path(__file__) / "../../.." RECORDINGS_TEST_CONFIGS_ROOT = Path(PROMPTFLOW_ROOT / "tests/test_configs/node_recordings").resolve() @@ -41,8 +41,8 @@ def start_patches(patch_targets): "promptflow._core.tool.tool": mocked_tool, "promptflow._internal.tool": mocked_tool, "promptflow.tool": mocked_tool, - "promptflow.tracing._openai_injector.inject_sync": inject_sync_with_recording, - "promptflow.tracing._openai_injector.inject_async": inject_async_with_recording, + "promptflow.tracing._integrations._openai_injector.inject_sync": inject_sync_with_recording, + "promptflow.tracing._integrations._openai_injector.inject_async": inject_async_with_recording, } start_patches(patch_targets) inject_openai_api() @@ -50,8 +50,8 @@ def start_patches(patch_targets): if is_live(): # For live mode, we setup openai_injector mock for token collection purpose patch_targets = { - "promptflow.tracing._openai_injector.inject_sync": inject_sync_with_recording, - "promptflow.tracing._openai_injector.inject_async": inject_async_with_recording, + "promptflow.tracing._integrations._openai_injector.inject_sync": inject_sync_with_recording, + "promptflow.tracing._integrations._openai_injector.inject_async": inject_async_with_recording, } start_patches(patch_targets) inject_openai_api() diff --git a/src/promptflow/tests/executor/unittests/_core/test_api_injector.py b/src/promptflow/tests/executor/unittests/_core/test_api_injector.py index 939b3eaf9cc..cf1d10a58d4 100644 --- a/src/promptflow/tests/executor/unittests/_core/test_api_injector.py +++ b/src/promptflow/tests/executor/unittests/_core/test_api_injector.py @@ -1,33 +1,24 @@ import json -import logging from collections import namedtuple from importlib.metadata import version -from types import GeneratorType -from unittest.mock import MagicMock, patch +from unittest.mock import patch import openai import pytest -from promptflow._core.operation_context import OperationContext -from promptflow._version import VERSION from promptflow.connections import AzureOpenAIConnection from promptflow.exceptions import UserErrorException from promptflow.tools.aoai import AzureOpenAI from promptflow.tools.embedding import embedding -from promptflow.tracing._openai_injector import ( +from promptflow.tracing._integrations._openai_injector import ( PROMPTFLOW_HEADER, USER_AGENT_HEADER, - _generate_api_and_injector, - _openai_api_list, get_aoai_telemetry_headers, - inject_async, inject_openai_api, inject_operation_headers, - inject_sync, - recover_openai_api, ) -from promptflow.tracing._tracer import Tracer -from promptflow.tracing.contracts.trace import TraceType +from promptflow.tracing._operation_context import OperationContext +from promptflow.tracing._version import VERSION IS_LEGACY_OPENAI = version("openai").startswith("0.") @@ -91,107 +82,6 @@ async def f(**kwargs): assert await f(**kwargs_2) == {headers: aoai_tools_headers} -@pytest.mark.unittest -def test_aoai_generator_proxy_sync(): - def mock_aoai(**kwargs): - # check if args has a stream parameter - if "stream" in kwargs and kwargs["stream"]: - # stream parameter is true, yield a string - def generator(): - yield "This is a yielded string" - - return generator() - else: - # stream parameter is false or not given, return a string - return "This is a returned string" - - if IS_LEGACY_OPENAI: - apis = ["openai.Completion.create", "openai.ChatCompletion.create", "openai.Embedding.create"] - else: - apis = [ - "openai.resources.Completions.create", - "openai.resources.chat.Completions.create", - "openai.resources.Embeddings.create", - ] - - with patch(apis[0], new=mock_aoai), patch(apis[1], new=mock_aoai), patch(apis[2], new=mock_aoai): - Tracer.start_tracing("mock_run_id") - inject_openai_api() - - if IS_LEGACY_OPENAI: - return_string = openai.Completion.create(stream=False) - return_generator = openai.Completion.create(stream=True) - else: - return_string = openai.resources.Completions.create(stream=False) - return_generator = openai.resources.Completions.create(stream=True) - - assert return_string == "This is a returned string" - assert isinstance(return_generator, GeneratorType) - - for _ in return_generator: - pass - - traces = Tracer.end_tracing() - assert len(traces) == 2 - for trace in traces: - assert trace["type"] == "LLM" - if trace["inputs"]["stream"]: - assert trace["output"] == ["This is a yielded string"] - else: - assert trace["output"] == "This is a returned string" - - -@pytest.mark.unittest -@pytest.mark.asyncio -async def test_aoai_generator_proxy_async(): - async def mock_aoai(**kwargs): - # check if args has a stream parameter - if "stream" in kwargs and kwargs["stream"]: - # stream parameter is true, yield a string - def generator(): - yield "This is a yielded string" - - return generator() - else: - # stream parameter is false or not given, return a string - return "This is a returned string" - - if IS_LEGACY_OPENAI: - apis = ["openai.Completion.acreate", "openai.ChatCompletion.acreate", "openai.Embedding.acreate"] - else: - apis = [ - "openai.resources.AsyncCompletions.create", - "openai.resources.chat.AsyncCompletions.create", - "openai.resources.AsyncEmbeddings.create", - ] - - with patch(apis[0], new=mock_aoai), patch(apis[1], new=mock_aoai), patch(apis[2], new=mock_aoai): - Tracer.start_tracing("mock_run_id") - inject_openai_api() - - if IS_LEGACY_OPENAI: - return_string = await openai.Completion.acreate(stream=False) - return_generator = await openai.Completion.acreate(stream=True) - else: - return_string = await openai.resources.AsyncCompletions.create(stream=False) - return_generator = await openai.resources.AsyncCompletions.create(stream=True) - - assert return_string == "This is a returned string" - assert isinstance(return_generator, GeneratorType) - - for _ in return_generator: - pass - - traces = Tracer.end_tracing() - assert len(traces) == 2 - for trace in traces: - assert trace["type"] == "LLM" - if trace["inputs"]["stream"]: - assert trace["output"] == ["This is a yielded string"] - else: - assert trace["output"] == "This is a returned string" - - @pytest.mark.unittest def test_aoai_call_inject(): if IS_LEGACY_OPENAI: @@ -306,130 +196,11 @@ def mock_chat(*args, **kwargs): ) -# The new generator-based test function -@pytest.mark.parametrize( - "is_legacy, expected_apis_with_injectors", - [ - ( - True, - [ - ( - ( - ("openai", "Completion", "create", TraceType.LLM), - ("openai", "ChatCompletion", "create", TraceType.LLM), - ("openai", "Embedding", "create", TraceType.EMBEDDING), - ), - inject_sync, - ), - ( - ( - ("openai", "Completion", "acreate", TraceType.LLM), - ("openai", "ChatCompletion", "acreate", TraceType.LLM), - ("openai", "Embedding", "acreate", TraceType.EMBEDDING), - ), - inject_async, - ), - ], - ), - ( - False, - [ - ( - ( - ("openai.resources.chat", "Completions", "create", TraceType.LLM), - ("openai.resources", "Completions", "create", TraceType.LLM), - ("openai.resources", "Embeddings", "create", TraceType.EMBEDDING), - ), - inject_sync, - ), - ( - ( - ("openai.resources.chat", "AsyncCompletions", "create", TraceType.LLM), - ("openai.resources", "AsyncCompletions", "create", TraceType.LLM), - ("openai.resources", "AsyncEmbeddings", "create", TraceType.EMBEDDING), - ), - inject_async, - ), - ], - ), - ], -) -def test_api_list(is_legacy, expected_apis_with_injectors): - with patch("promptflow.tracing._openai_injector.IS_LEGACY_OPENAI", is_legacy): - # Using list comprehension to get all items from the generator - actual_apis_with_injectors = list(_openai_api_list()) - # Assert that the actual list matches the expected list - assert actual_apis_with_injectors == expected_apis_with_injectors - - -@pytest.mark.parametrize( - "apis_with_injectors, expected_output, expected_logs", - [ - ( - [((("MockModule", "MockAPI", "create", TraceType.LLM),), inject_sync)], - [(MockAPI, "create", TraceType.LLM, inject_sync)], - [], - ), - ( - [((("MockModule", "MockAPI", "create", TraceType.LLM),), inject_async)], - [(MockAPI, "create", TraceType.LLM, inject_async)], - [], - ), - ], -) -def test_generate_api_and_injector(apis_with_injectors, expected_output, expected_logs, caplog): - with patch("importlib.import_module", return_value=MagicMock(MockAPI=MockAPI)) as mock_import_module: - # Capture the logs - with caplog.at_level(logging.WARNING): - # Run the generator and collect the output - result = list(_generate_api_and_injector(apis_with_injectors)) - - # Check if the result matches the expected output - assert result == expected_output - - # Check if the logs match the expected logs - assert len(caplog.records) == len(expected_logs) - for record, expected_message in zip(caplog.records, expected_logs): - assert expected_message in record.message - - mock_import_module.assert_called_with("MockModule") - - -def test_generate_api_and_injector_attribute_error_logging(caplog): - apis = [ - ((("NonExistentModule", "NonExistentAPI", "create", TraceType.LLM),), MagicMock()), - ((("MockModuleMissingMethod", "MockAPIMissingMethod", "missing_method", "missing_trace_type"),), MagicMock()), - ] - - # Set up the side effect for the mock - def import_module_effect(name): - if name == "MockModuleMissingMethod": - module = MagicMock() - delattr(module, "MockAPIMissingMethod") # Use delattr to remove the attribute - return module - else: - raise ModuleNotFoundError(f"No module named '{name}'") - - with patch("importlib.import_module") as mock_import_module: - mock_import_module.side_effect = import_module_effect - with caplog.at_level(logging.WARNING): - list(_generate_api_and_injector(apis)) - - assert len(caplog.records) == 2 - assert "An unexpected error occurred" in caplog.records[0].message - assert "NonExistentModule" in caplog.records[0].message - assert "does not have the class" in caplog.records[1].message - assert "MockAPIMissingMethod" in caplog.records[1].message - - # Verify that `importlib.import_module` was called with correct module names - mock_import_module.assert_any_call("NonExistentModule") - mock_import_module.assert_any_call("MockModuleMissingMethod") - - @pytest.mark.unittest def test_get_aoai_telemetry_headers(): # create a mock operation context mock_operation_context = OperationContext.get_instance() + mock_operation_context.set_default_tracing_keys({"flow_id", "root_run_id"}) mock_operation_context.user_agent = "test-user-agent" mock_operation_context.update( { @@ -439,7 +210,7 @@ def test_get_aoai_telemetry_headers(): ) # patch the OperationContext.get_instance method to return the mock operation context - with patch("promptflow._core.operation_context.OperationContext.get_instance") as mock_get_instance: + with patch("promptflow.tracing._operation_context.OperationContext.get_instance") as mock_get_instance: mock_get_instance.return_value = mock_operation_context # call the function under test and get the headers @@ -452,7 +223,8 @@ def test_get_aoai_telemetry_headers(): assert "_" not in key # assert that the headers are correct - assert headers[USER_AGENT_HEADER] == f"test-user-agent promptflow/{VERSION}" + ua = f"test-user-agent promptflow-tracing/{VERSION}" + assert headers[USER_AGENT_HEADER] == ua promptflow_headers = json.loads(headers[PROMPTFLOW_HEADER]) assert promptflow_headers["flow_id"] == "test-flow-id" assert promptflow_headers["root_run_id"] == "test-root-run-id" @@ -467,67 +239,3 @@ def test_get_aoai_telemetry_headers(): headers = get_aoai_telemetry_headers() promptflow_headers = json.loads(headers[PROMPTFLOW_HEADER]) assert promptflow_headers["dummy_key"] == "dummy_value" # telemetry key inserted - - -@pytest.mark.unittest -def test_inject_and_recover_openai_api(): - class FakeAPIWithoutOriginal: - @staticmethod - def create(): - pass - - class FakeAPIWithOriginal: - @staticmethod - def create(): - pass - - def dummy_api(): - pass - - # Real injector function that adds an _original attribute - def injector(f, trace_type): - def wrapper_fun(*args, **kwargs): - return f(*args, **kwargs) - - wrapper_fun._original = f - return wrapper_fun - - # Set an _original attribute for the create method of FakeAPIWithOriginal - FakeAPIWithOriginal.create._original = dummy_api - - # Store the original create methods before injection - original_api_without_original = FakeAPIWithoutOriginal.create - original_api_with_original = FakeAPIWithOriginal.create - - # Mock the generator function to yield our mocked api and method - with patch( - "promptflow.tracing._openai_injector.available_openai_apis_and_injectors", - return_value=[ - (FakeAPIWithoutOriginal, "create", TraceType.LLM, injector), - (FakeAPIWithOriginal, "create", TraceType.LLM, injector), - ], - ): - # Call the function to inject the APIs - inject_openai_api() - - # Check that the _original attribute was set for the method that didn't have it - assert hasattr(FakeAPIWithoutOriginal.create, "_original") - # Ensure the _original attribute points to the correct original method - assert FakeAPIWithoutOriginal.create._original is original_api_without_original - - # Check that the injector was not applied again to the method that already had an _original attribute - # The _original attribute should still point to the mock, not the original method - assert getattr(FakeAPIWithOriginal.create, "_original") is not FakeAPIWithOriginal.create - # The original method should remain unchanged - assert FakeAPIWithOriginal.create is original_api_with_original - - # Call the function to recover the APIs - recover_openai_api() - - # Check that the _original attribute was removed for the method that didn't have it - assert not hasattr(FakeAPIWithoutOriginal.create, "_original") - assert not hasattr(FakeAPIWithOriginal.create, "_original") - - # The original methods should be restored - assert FakeAPIWithoutOriginal.create is original_api_without_original - assert FakeAPIWithOriginal.create is dummy_api diff --git a/src/promptflow/tests/executor/unittests/_core/test_operation_context.py b/src/promptflow/tests/executor/unittests/_core/test_operation_context.py index 97741a60e40..a8470ec2c59 100644 --- a/src/promptflow/tests/executor/unittests/_core/test_operation_context.py +++ b/src/promptflow/tests/executor/unittests/_core/test_operation_context.py @@ -2,9 +2,10 @@ import pytest -from promptflow._core.operation_context import OperationContext from promptflow._version import VERSION from promptflow.contracts.run_mode import RunMode +from promptflow.tracing._operation_context import OperationContext +from promptflow.tracing._version import VERSION as TRACING_VERSION def set_run_mode(context: OperationContext, run_mode: RunMode): @@ -18,11 +19,12 @@ def set_run_mode(context: OperationContext, run_mode: RunMode): @pytest.mark.unittest class TestOperationContext: def test_get_user_agent(self): - operation_context = OperationContext() - assert operation_context.get_user_agent() == f"promptflow/{VERSION}" + OperationContext.get_instance().append_user_agent(f"promptflow/{VERSION}") + operation_context = OperationContext.get_instance() + assert operation_context.get_user_agent() == f"promptflow/{VERSION} promptflow-tracing/{TRACING_VERSION}" operation_context.user_agent = "test_agent/0.0.2" - assert operation_context.get_user_agent() == f"test_agent/0.0.2 promptflow/{VERSION}" + assert operation_context.get_user_agent() == f"test_agent/0.0.2 promptflow-tracing/{TRACING_VERSION}" @pytest.mark.parametrize( "run_mode, expected", @@ -101,32 +103,6 @@ def test_get_instance(self): context2 = OperationContext.get_instance() assert context1 is context2 - def test_set_batch_input_source_from_inputs_mapping_run(self): - input_mapping = {"input1": "${run.outputs.output1}", "input2": "${run.outputs.output2}"} - context = OperationContext() - context.set_batch_input_source_from_inputs_mapping(input_mapping) - assert context.batch_input_source == "Run" - - def test_set_batch_input_source_from_inputs_mapping_data(self): - input_mapping = {"url": "${data.url}"} - context = OperationContext() - context.set_batch_input_source_from_inputs_mapping(input_mapping) - assert context.batch_input_source == "Data" - - def test_set_batch_input_source_from_inputs_mapping_none(self): - input_mapping = None - context = OperationContext() - assert not hasattr(context, "batch_input_source") - context.set_batch_input_source_from_inputs_mapping(input_mapping) - assert context.batch_input_source == "Data" - - def test_set_batch_input_source_from_inputs_mapping_empty(self): - input_mapping = {} - context = OperationContext() - assert not hasattr(context, "batch_input_source") - context.set_batch_input_source_from_inputs_mapping(input_mapping) - assert context.batch_input_source == "Data" - def test_different_thread_have_different_instance(self): # create a list to store the OperationContext instances from each thread instances = [] diff --git a/src/promptflow/tests/executor/unittests/_core/test_run_tracker.py b/src/promptflow/tests/executor/unittests/_core/test_run_tracker.py index 06a106d4a9c..694c22e2c64 100644 --- a/src/promptflow/tests/executor/unittests/_core/test_run_tracker.py +++ b/src/promptflow/tests/executor/unittests/_core/test_run_tracker.py @@ -1,10 +1,10 @@ import pytest from promptflow._core._errors import RunRecordNotFound -from promptflow._core.generator_proxy import GeneratorProxy from promptflow._core.run_tracker import RunTracker from promptflow.connections import AzureOpenAIConnection from promptflow.contracts.run_info import Status +from promptflow.tracing.contracts.generator_proxy import GeneratorProxy class UnserializableClass: diff --git a/src/promptflow/tests/executor/unittests/_core/test_tracer.py b/src/promptflow/tests/executor/unittests/_core/test_tracer.py index 4be6e1ce87e..f1351b1765c 100644 --- a/src/promptflow/tests/executor/unittests/_core/test_tracer.py +++ b/src/promptflow/tests/executor/unittests/_core/test_tracer.py @@ -3,11 +3,11 @@ import pytest from opentelemetry.trace.status import StatusCode -from promptflow._core.generator_proxy import GeneratorProxy from promptflow.connections import AzureOpenAIConnection from promptflow.tracing import trace from promptflow.tracing._trace import _traced from promptflow.tracing._tracer import Tracer, _create_trace_from_function_call +from promptflow.tracing.contracts.generator_proxy import GeneratorProxy from promptflow.tracing.contracts.trace import Trace, TraceType from ...utils import prepare_memory_exporter diff --git a/src/promptflow/tests/executor/unittests/_utils/test_dataclass_serializer.py b/src/promptflow/tests/executor/unittests/_utils/test_dataclass_serializer.py index 6e717cd1158..40e1e636e5c 100644 --- a/src/promptflow/tests/executor/unittests/_utils/test_dataclass_serializer.py +++ b/src/promptflow/tests/executor/unittests/_utils/test_dataclass_serializer.py @@ -1,8 +1,11 @@ -import pytest -from datetime import datetime +import sys from dataclasses import dataclass +from datetime import datetime from typing import Dict, List -from promptflow._core.generator_proxy import GeneratorProxy + +import pytest +from unittest.mock import patch, Mock + from promptflow._utils.dataclass_serializer import ( get_type, serialize, @@ -13,8 +16,7 @@ from promptflow.contracts.run_info import RunInfo, Status from promptflow._core.connection_manager import ConnectionManager from promptflow.storage.run_records import NodeRunRecord -from unittest.mock import patch, Mock -import sys +from promptflow.tracing.contracts.generator_proxy import GeneratorProxy def get_connection_dict(): diff --git a/src/promptflow/tests/executor/unittests/_utils/test_exception_utils.py b/src/promptflow/tests/executor/unittests/_utils/test_exception_utils.py index 612add30833..6caefc0a5b2 100644 --- a/src/promptflow/tests/executor/unittests/_utils/test_exception_utils.py +++ b/src/promptflow/tests/executor/unittests/_utils/test_exception_utils.py @@ -5,7 +5,6 @@ import pytest from promptflow._core._errors import ToolExecutionError -from promptflow._core.operation_context import OperationContext from promptflow._utils.exception_utils import ( ErrorResponse, ExceptionPresenter, @@ -15,6 +14,7 @@ last_frame_info, remove_suffix, ) +from promptflow._version import VERSION from promptflow.exceptions import ( ErrorTarget, PromptflowException, @@ -22,6 +22,7 @@ UserErrorException, ValidationException, ) +from promptflow.tracing._operation_context import OperationContext def set_inner_exception_by_parameter(): @@ -331,6 +332,8 @@ def test_error_codes(self, raise_exception_func, error_class, expected_error_cod @pytest.mark.unittest class TestErrorResponse: def test_from_error_dict(self): + OperationContext.get_instance().append_user_agent(f"promptflow/{VERSION}") + error_dict = { "code": "UserError", "message": "Flow run failed.", @@ -367,6 +370,8 @@ def test_to_simplied_dict(self): } def test_from_exception(self): + OperationContext.get_instance().append_user_agent(f"promptflow/{VERSION}") + with pytest.raises(CustomizedException) as e: raise_general_exception() diff --git a/src/promptflow/tests/executor/unittests/_utils/test_run_tracker_utils.py b/src/promptflow/tests/executor/unittests/_utils/test_run_tracker_utils.py index a420b0daab8..2d41546f7e2 100644 --- a/src/promptflow/tests/executor/unittests/_utils/test_run_tracker_utils.py +++ b/src/promptflow/tests/executor/unittests/_utils/test_run_tracker_utils.py @@ -1,7 +1,7 @@ import pytest -from promptflow._core.generator_proxy import GeneratorProxy from promptflow._utils.run_tracker_utils import _deep_copy_and_extract_items_from_generator_proxy +from promptflow.tracing.contracts.generator_proxy import GeneratorProxy @pytest.mark.unittest diff --git a/src/promptflow/tests/executor/unittests/executor/_service/utils/test_process_utils.py b/src/promptflow/tests/executor/unittests/executor/_service/utils/test_process_utils.py index 6d1aae1692a..bbb3f3fa504 100644 --- a/src/promptflow/tests/executor/unittests/executor/_service/utils/test_process_utils.py +++ b/src/promptflow/tests/executor/unittests/executor/_service/utils/test_process_utils.py @@ -6,7 +6,6 @@ import pytest from promptflow._core._errors import UnexpectedError -from promptflow._core.operation_context import OperationContext from promptflow._utils.exception_utils import JsonSerializedPromptflowException from promptflow.exceptions import ErrorTarget from promptflow.executor._service._errors import ExecutionTimeoutError @@ -15,6 +14,7 @@ exception_wrapper, invoke_sync_function_in_process, ) +from promptflow.tracing._operation_context import OperationContext MOCK_CONTEXT_DICT = {"context_test_key": "test_value"} diff --git a/src/promptflow/tests/executor/unittests/executor/_service/utils/test_service_utils.py b/src/promptflow/tests/executor/unittests/executor/_service/utils/test_service_utils.py index e741ef23951..0e19e159ba4 100644 --- a/src/promptflow/tests/executor/unittests/executor/_service/utils/test_service_utils.py +++ b/src/promptflow/tests/executor/unittests/executor/_service/utils/test_service_utils.py @@ -67,7 +67,7 @@ def test_update_and_get_operation_context(self, monkeypatch): monkeypatch.setenv("BUILD_INFO", '{"build_number": "20240131.v1"}') operation_context = update_and_get_operation_context(context_dict) - assert operation_context.user_agent == "dummy_user_agent promptflow-executor/20240131.v1" + assert operation_context.user_agent == "dummy_user_agent promptflow-executor/20240131.v1 promptflow/0.0.1" assert operation_context.request_id == "dummy_request_id" def test_get_executor_version(self, monkeypatch): diff --git a/src/promptflow/tests/sdk_cli_azure_test/conftest.py b/src/promptflow/tests/sdk_cli_azure_test/conftest.py index cf96549be84..088f7991d6f 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/conftest.py +++ b/src/promptflow/tests/sdk_cli_azure_test/conftest.py @@ -108,7 +108,7 @@ def remote_client(subscription_id: str, resource_group_name: str, workspace_name workspace_name=workspace_name, ) assert "promptflow-sdk" in ClientUserAgentUtil.get_user_agent() - assert "promptflow/" not in ClientUserAgentUtil.get_user_agent() + assert "promptflow-test" not in ClientUserAgentUtil.get_user_agent() yield client diff --git a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_cli_with_azure.py b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_cli_with_azure.py index dc916064a4b..3e8c09e08f6 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_cli_with_azure.py +++ b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_cli_with_azure.py @@ -11,11 +11,11 @@ from mock.mock import patch from promptflow._constants import PF_USER_AGENT -from promptflow._core.operation_context import OperationContext from promptflow._sdk._utils import ClientUserAgentUtil from promptflow._sdk.entities import Run from promptflow._utils.utils import environment_variable_overwrite, parse_ua_to_dict from promptflow.azure import PFClient +from promptflow.tracing._operation_context import OperationContext from .._azure_utils import DEFAULT_TEST_TIMEOUT, PYTEST_TIMEOUT_METHOD from ..recording_utilities import is_live diff --git a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py index 5296fc3c9f3..dbcef17e872 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py +++ b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py @@ -18,7 +18,6 @@ from promptflow import load_run from promptflow._constants import PF_USER_AGENT -from promptflow._core.operation_context import OperationContext from promptflow._sdk._configuration import Configuration from promptflow._sdk._errors import RunNotFoundError from promptflow._sdk._telemetry import ( @@ -32,6 +31,7 @@ from promptflow._sdk._telemetry.logging_handler import get_promptflow_sdk_log_handler from promptflow._sdk._utils import ClientUserAgentUtil, call_from_extension from promptflow._utils.utils import environment_variable_overwrite, parse_ua_to_dict +from promptflow.tracing._operation_context import OperationContext from .._azure_utils import DEFAULT_TEST_TIMEOUT, PYTEST_TIMEOUT_METHOD @@ -90,8 +90,6 @@ def test_logging_handler(self): assert handler._is_telemetry_enabled is False def test_call_from_extension(self): - from promptflow._core.operation_context import OperationContext - assert call_from_extension() is False with environment_variable_overwrite(PF_USER_AGENT, "prompt-flow-extension/1.0.0"): assert call_from_extension() is True diff --git a/src/promptflow/tests/sdk_cli_test/conftest.py b/src/promptflow/tests/sdk_cli_test/conftest.py index 249e71d6f1f..334dea46578 100644 --- a/src/promptflow/tests/sdk_cli_test/conftest.py +++ b/src/promptflow/tests/sdk_cli_test/conftest.py @@ -19,7 +19,7 @@ from promptflow._utils.utils import is_in_ci_pipeline from promptflow.executor._line_execution_process_pool import _process_wrapper from promptflow.executor._process_manager import create_spawned_fork_process_manager -from promptflow.tracing._openai_injector import inject_openai_api +from promptflow.tracing._integrations._openai_injector import inject_openai_api from .recording_utilities import ( RecordStorage, @@ -305,15 +305,15 @@ def start_patches(patch_targets): "promptflow._core.tool.tool": mocked_tool, "promptflow._internal.tool": mocked_tool, "promptflow.tool": mocked_tool, - "promptflow.tracing._openai_injector.inject_sync": inject_sync_with_recording, - "promptflow.tracing._openai_injector.inject_async": inject_async_with_recording, + "promptflow.tracing._integrations._openai_injector.inject_sync": inject_sync_with_recording, + "promptflow.tracing._integrations._openai_injector.inject_async": inject_async_with_recording, } start_patches(patch_targets) if is_live() and is_in_ci_pipeline(): patch_targets = { - "promptflow.tracing._openai_injector.inject_sync": inject_sync_with_recording, - "promptflow.tracing._openai_injector.inject_async": inject_async_with_recording, + "promptflow.tracing._integrations._openai_injector.inject_sync": inject_sync_with_recording, + "promptflow.tracing._integrations._openai_injector.inject_async": inject_async_with_recording, } start_patches(patch_targets) diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_cli.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_cli.py index f3f5f9911f5..9917494e1f2 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_cli.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_cli.py @@ -20,7 +20,6 @@ from promptflow._cli._pf.entry import main from promptflow._constants import PF_USER_AGENT -from promptflow._core.operation_context import OperationContext from promptflow._sdk._constants import LOGGER_NAME, SCRUBBED_VALUE, ExperimentStatus from promptflow._sdk._errors import RunNotFoundError from promptflow._sdk._utils import ClientUserAgentUtil, setup_user_agent_to_operation_context @@ -29,6 +28,7 @@ from promptflow._utils.context_utils import _change_working_dir from promptflow._utils.utils import environment_variable_overwrite, parse_ua_to_dict from promptflow._utils.yaml_utils import dump_yaml, load_yaml +from promptflow.tracing._operation_context import OperationContext from ..recording_utilities import is_live diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py index e5119957933..3d49c6b1bf6 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py @@ -4,9 +4,9 @@ import pytest -from promptflow._core.operation_context import OperationContext from promptflow._sdk._serving.utils import load_feedback_swagger from promptflow._sdk._serving.constants import FEEDBACK_TRACE_FIELD_NAME +from promptflow.tracing._operation_context import OperationContext from opentelemetry import trace from opentelemetry.sdk.resources import SERVICE_NAME, Resource from opentelemetry.sdk.trace import TracerProvider diff --git a/src/promptflow/tests/sdk_cli_test/recording_utilities/openai_inject_recording.py b/src/promptflow/tests/sdk_cli_test/recording_utilities/openai_inject_recording.py index bcf6fc368c3..f71c7ce24af 100644 --- a/src/promptflow/tests/sdk_cli_test/recording_utilities/openai_inject_recording.py +++ b/src/promptflow/tests/sdk_cli_test/recording_utilities/openai_inject_recording.py @@ -1,6 +1,10 @@ import functools -from promptflow.tracing._openai_injector import inject_function_async, inject_function_sync, inject_operation_headers +from promptflow.tracing._integrations._openai_injector import ( + inject_function_async, + inject_function_sync, + inject_operation_headers, +) from .mock_tool import call_func, call_func_async diff --git a/src/promptflow/tests/sdk_cli_test/recording_utilities/record_storage.py b/src/promptflow/tests/sdk_cli_test/recording_utilities/record_storage.py index 5b890a6c75b..a3aa686ae71 100644 --- a/src/promptflow/tests/sdk_cli_test/recording_utilities/record_storage.py +++ b/src/promptflow/tests/sdk_cli_test/recording_utilities/record_storage.py @@ -13,8 +13,8 @@ from filelock import FileLock from openai import NotFoundError -from promptflow._core.generator_proxy import GeneratorProxy from promptflow.exceptions import PromptflowException +from promptflow.tracing.contracts.generator_proxy import GeneratorProxy from .constants import ENVIRON_TEST_MODE, RecordMode diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py b/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py index 4ad92b165d6..fb0a36e7e10 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_trace.py @@ -22,10 +22,10 @@ SpanResourceFieldName, TraceEnvironmentVariableName, ) -from promptflow._core.operation_context import OperationContext from promptflow._sdk._constants import PF_TRACE_CONTEXT, PF_TRACE_CONTEXT_ATTR, ContextAttributeKey from promptflow._sdk._tracing import start_trace_with_devkit from promptflow._sdk.entities._trace import Span +from promptflow.tracing._operation_context import OperationContext from promptflow.tracing._start_trace import _is_tracer_provider_set, setup_exporter_from_environ, start_trace MOCK_PROMPTFLOW_SERVICE_PORT = "23333" diff --git a/src/promptflow/tests/test_configs/eager_flows/flow_with_operation_context/flow_with_context.py b/src/promptflow/tests/test_configs/eager_flows/flow_with_operation_context/flow_with_context.py index eb8d5d532a5..46acf67a974 100644 --- a/src/promptflow/tests/test_configs/eager_flows/flow_with_operation_context/flow_with_context.py +++ b/src/promptflow/tests/test_configs/eager_flows/flow_with_operation_context/flow_with_context.py @@ -1,4 +1,4 @@ -from promptflow._core.operation_context import OperationContext +from promptflow.tracing._operation_context import OperationContext def my_flow(): diff --git a/src/promptflow/tests/tracing_test/e2etests/test_trace.py b/src/promptflow/tests/tracing_test/e2etests/test_trace.py index 14f1ab0df26..03fcda4a0c4 100644 --- a/src/promptflow/tests/tracing_test/e2etests/test_trace.py +++ b/src/promptflow/tests/tracing_test/e2etests/test_trace.py @@ -4,7 +4,7 @@ import pytest from opentelemetry.trace.status import StatusCode -from promptflow.tracing._openai_injector import inject_openai_api +from promptflow.tracing._integrations._openai_injector import inject_openai_api from promptflow.tracing.contracts.trace import TraceType from ..utils import execute_function_in_subprocess, prepare_memory_exporter diff --git a/src/promptflow/tests/executor/unittests/_core/test_generator_proxy.py b/src/promptflow/tests/tracing_test/unittests/test_generator_proxy.py similarity index 94% rename from src/promptflow/tests/executor/unittests/_core/test_generator_proxy.py rename to src/promptflow/tests/tracing_test/unittests/test_generator_proxy.py index 6ed5fe2e0c6..de8435f8fc1 100644 --- a/src/promptflow/tests/executor/unittests/_core/test_generator_proxy.py +++ b/src/promptflow/tests/tracing_test/unittests/test_generator_proxy.py @@ -1,6 +1,6 @@ import pytest -from promptflow._core.generator_proxy import GeneratorProxy, generate_from_proxy +from promptflow.tracing.contracts.generator_proxy import GeneratorProxy, generate_from_proxy def generator(): diff --git a/src/promptflow/tests/tracing_test/unittests/test_openai_injector.py b/src/promptflow/tests/tracing_test/unittests/test_openai_injector.py new file mode 100644 index 00000000000..1de2ad104de --- /dev/null +++ b/src/promptflow/tests/tracing_test/unittests/test_openai_injector.py @@ -0,0 +1,311 @@ +import logging +from importlib.metadata import version +from types import GeneratorType +from unittest.mock import MagicMock, patch + +import openai +import pytest + +from promptflow.tracing._integrations._openai_injector import ( + _generate_api_and_injector, + _openai_api_list, + inject_async, + inject_openai_api, + inject_sync, + recover_openai_api, +) +from promptflow.tracing._tracer import Tracer +from promptflow.tracing.contracts.trace import TraceType + +IS_LEGACY_OPENAI = version("openai").startswith("0.") + + +# Mock classes and functions for test +class MockAPI: + def create(self): + pass + + +@pytest.mark.unittest +def test_openai_generator_proxy_sync(): + def mock_openai(**kwargs): + # check if args has a stream parameter + if "stream" in kwargs and kwargs["stream"]: + # stream parameter is true, yield a string + def generator(): + yield "This is a yielded string" + + return generator() + else: + # stream parameter is false or not given, return a string + return "This is a returned string" + + if IS_LEGACY_OPENAI: + apis = ["openai.Completion.create", "openai.ChatCompletion.create", "openai.Embedding.create"] + else: + apis = [ + "openai.resources.Completions.create", + "openai.resources.chat.Completions.create", + "openai.resources.Embeddings.create", + ] + + with patch(apis[0], new=mock_openai), patch(apis[1], new=mock_openai), patch(apis[2], new=mock_openai): + Tracer.start_tracing("mock_run_id") + inject_openai_api() + + if IS_LEGACY_OPENAI: + return_string = openai.Completion.create(stream=False) + return_generator = openai.Completion.create(stream=True) + else: + return_string = openai.resources.Completions.create(stream=False) + return_generator = openai.resources.Completions.create(stream=True) + + assert return_string == "This is a returned string" + assert isinstance(return_generator, GeneratorType) + + for _ in return_generator: + pass + + traces = Tracer.end_tracing() + assert len(traces) == 2 + for trace in traces: + assert trace["type"] == "LLM" + if trace["inputs"]["stream"]: + assert trace["output"] == ["This is a yielded string"] + else: + assert trace["output"] == "This is a returned string" + + +@pytest.mark.unittest +@pytest.mark.asyncio +async def test_openai_generator_proxy_async(): + async def mock_openai(**kwargs): + # check if args has a stream parameter + if "stream" in kwargs and kwargs["stream"]: + # stream parameter is true, yield a string + def generator(): + yield "This is a yielded string" + + return generator() + else: + # stream parameter is false or not given, return a string + return "This is a returned string" + + if IS_LEGACY_OPENAI: + apis = ["openai.Completion.acreate", "openai.ChatCompletion.acreate", "openai.Embedding.acreate"] + else: + apis = [ + "openai.resources.AsyncCompletions.create", + "openai.resources.chat.AsyncCompletions.create", + "openai.resources.AsyncEmbeddings.create", + ] + + with patch(apis[0], new=mock_openai), patch(apis[1], new=mock_openai), patch(apis[2], new=mock_openai): + Tracer.start_tracing("mock_run_id") + inject_openai_api() + + if IS_LEGACY_OPENAI: + return_string = await openai.Completion.acreate(stream=False) + return_generator = await openai.Completion.acreate(stream=True) + else: + return_string = await openai.resources.AsyncCompletions.create(stream=False) + return_generator = await openai.resources.AsyncCompletions.create(stream=True) + + assert return_string == "This is a returned string" + assert isinstance(return_generator, GeneratorType) + + for _ in return_generator: + pass + + traces = Tracer.end_tracing() + assert len(traces) == 2 + for trace in traces: + assert trace["type"] == "LLM" + if trace["inputs"]["stream"]: + assert trace["output"] == ["This is a yielded string"] + else: + assert trace["output"] == "This is a returned string" + + +# The new generator-based test function +@pytest.mark.parametrize( + "is_legacy, expected_apis_with_injectors", + [ + ( + True, + [ + ( + ( + ("openai", "Completion", "create", TraceType.LLM), + ("openai", "ChatCompletion", "create", TraceType.LLM), + ("openai", "Embedding", "create", TraceType.EMBEDDING), + ), + inject_sync, + ), + ( + ( + ("openai", "Completion", "acreate", TraceType.LLM), + ("openai", "ChatCompletion", "acreate", TraceType.LLM), + ("openai", "Embedding", "acreate", TraceType.EMBEDDING), + ), + inject_async, + ), + ], + ), + ( + False, + [ + ( + ( + ("openai.resources.chat", "Completions", "create", TraceType.LLM), + ("openai.resources", "Completions", "create", TraceType.LLM), + ("openai.resources", "Embeddings", "create", TraceType.EMBEDDING), + ), + inject_sync, + ), + ( + ( + ("openai.resources.chat", "AsyncCompletions", "create", TraceType.LLM), + ("openai.resources", "AsyncCompletions", "create", TraceType.LLM), + ("openai.resources", "AsyncEmbeddings", "create", TraceType.EMBEDDING), + ), + inject_async, + ), + ], + ), + ], +) +def test_api_list(is_legacy, expected_apis_with_injectors): + with patch("promptflow.tracing._integrations._openai_injector.IS_LEGACY_OPENAI", is_legacy): + # Using list comprehension to get all items from the generator + actual_apis_with_injectors = list(_openai_api_list()) + # Assert that the actual list matches the expected list + assert actual_apis_with_injectors == expected_apis_with_injectors + + +@pytest.mark.parametrize( + "apis_with_injectors, expected_output, expected_logs", + [ + ( + [((("MockModule", "MockAPI", "create", TraceType.LLM),), inject_sync)], + [(MockAPI, "create", TraceType.LLM, inject_sync)], + [], + ), + ( + [((("MockModule", "MockAPI", "create", TraceType.LLM),), inject_async)], + [(MockAPI, "create", TraceType.LLM, inject_async)], + [], + ), + ], +) +def test_generate_api_and_injector(apis_with_injectors, expected_output, expected_logs, caplog): + with patch("importlib.import_module", return_value=MagicMock(MockAPI=MockAPI)) as mock_import_module: + # Capture the logs + with caplog.at_level(logging.WARNING): + # Run the generator and collect the output + result = list(_generate_api_and_injector(apis_with_injectors)) + + # Check if the result matches the expected output + assert result == expected_output + + # Check if the logs match the expected logs + assert len(caplog.records) == len(expected_logs) + for record, expected_message in zip(caplog.records, expected_logs): + assert expected_message in record.message + + mock_import_module.assert_called_with("MockModule") + + +def test_generate_api_and_injector_attribute_error_logging(caplog): + apis = [ + ((("NonExistentModule", "NonExistentAPI", "create", TraceType.LLM),), MagicMock()), + ((("MockModuleMissingMethod", "MockAPIMissingMethod", "missing_method", "missing_trace_type"),), MagicMock()), + ] + + # Set up the side effect for the mock + def import_module_effect(name): + if name == "MockModuleMissingMethod": + module = MagicMock() + delattr(module, "MockAPIMissingMethod") # Use delattr to remove the attribute + return module + else: + raise ModuleNotFoundError(f"No module named '{name}'") + + with patch("importlib.import_module") as mock_import_module: + mock_import_module.side_effect = import_module_effect + with caplog.at_level(logging.WARNING): + list(_generate_api_and_injector(apis)) + + assert len(caplog.records) == 2 + assert "An unexpected error occurred" in caplog.records[0].message + assert "NonExistentModule" in caplog.records[0].message + assert "does not have the class" in caplog.records[1].message + assert "MockAPIMissingMethod" in caplog.records[1].message + + # Verify that `importlib.import_module` was called with correct module names + mock_import_module.assert_any_call("NonExistentModule") + mock_import_module.assert_any_call("MockModuleMissingMethod") + + +@pytest.mark.unittest +def test_inject_and_recover_openai_api(): + class FakeAPIWithoutOriginal: + @staticmethod + def create(): + pass + + class FakeAPIWithOriginal: + @staticmethod + def create(): + pass + + def dummy_api(): + pass + + # Real injector function that adds an _original attribute + def injector(f, trace_type): + def wrapper_fun(*args, **kwargs): + return f(*args, **kwargs) + + wrapper_fun._original = f + return wrapper_fun + + # Set an _original attribute for the create method of FakeAPIWithOriginal + FakeAPIWithOriginal.create._original = dummy_api + + # Store the original create methods before injection + original_api_without_original = FakeAPIWithoutOriginal.create + original_api_with_original = FakeAPIWithOriginal.create + + # Mock the generator function to yield our mocked api and method + with patch( + "promptflow.tracing._integrations._openai_injector.available_openai_apis_and_injectors", + return_value=[ + (FakeAPIWithoutOriginal, "create", TraceType.LLM, injector), + (FakeAPIWithOriginal, "create", TraceType.LLM, injector), + ], + ): + # Call the function to inject the APIs + inject_openai_api() + + # Check that the _original attribute was set for the method that didn't have it + assert hasattr(FakeAPIWithoutOriginal.create, "_original") + # Ensure the _original attribute points to the correct original method + assert FakeAPIWithoutOriginal.create._original is original_api_without_original + + # Check that the injector was not applied again to the method that already had an _original attribute + # The _original attribute should still point to the mock, not the original method + assert getattr(FakeAPIWithOriginal.create, "_original") is not FakeAPIWithOriginal.create + # The original method should remain unchanged + assert FakeAPIWithOriginal.create is original_api_with_original + + # Call the function to recover the APIs + recover_openai_api() + + # Check that the _original attribute was removed for the method that didn't have it + assert not hasattr(FakeAPIWithoutOriginal.create, "_original") + assert not hasattr(FakeAPIWithOriginal.create, "_original") + + # The original methods should be restored + assert FakeAPIWithoutOriginal.create is original_api_without_original + assert FakeAPIWithOriginal.create is dummy_api From 3b013e71c146c0b757158dbfd6d47d9944dc59e1 Mon Sep 17 00:00:00 2001 From: Brynn Yin <24237253+brynn-code@users.noreply.github.com> Date: Fri, 15 Mar 2024 15:10:47 +0800 Subject: [PATCH 061/204] [Internal] Move _sdk/serving to core/_serving (#2347) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Signed-off-by: Brynn Yin --- .../create-service-with-flow/simple_score.py | 2 +- .../distribute-flow-as-executable-app/main.py | 39 +-- scripts/compliance-check/user_exclusion.xml | 2 +- src/promptflow/MANIFEST.in | 2 +- src/promptflow/promptflow/_cli/_pf/_flow.py | 2 +- .../promptflow/_internal/__init__.py | 20 +- src/promptflow/promptflow/_sdk/_mlflow.py | 2 +- .../promptflow/_sdk/_serving/app.py | 248 +---------------- .../docker/runit/promptflow-serve/run.jinja2 | 2 +- .../promptflow/core/_flow_context_resolver.py | 2 +- .../{_sdk => core}/_serving/__init__.py | 0 .../{_sdk => core}/_serving/_errors.py | 0 .../promptflow/core/_serving/app.py | 253 ++++++++++++++++++ .../_serving/blueprint/__init__.py | 0 .../_serving/blueprint/monitor_blueprint.py | 7 +- .../blueprint/static_web_blueprint.py | 7 +- .../{_sdk => core}/_serving/constants.py | 0 .../_serving/extension/__init__.py | 0 .../_serving/extension/azureml_extension.py | 14 +- .../_serving/extension/default_extension.py | 14 +- .../_serving/extension/extension_factory.py | 8 +- .../_serving/extension/extension_type.py | 0 .../otel_exporter_provider_factory.py | 7 +- .../{_sdk => core}/_serving/flow_invoker.py | 8 +- .../{_sdk => core}/_serving/flow_result.py | 0 .../_serving/monitor/__init__.py | 0 .../_serving/monitor/data_collector.py | 0 .../_serving/monitor/flow_monitor.py | 31 ++- .../_serving/monitor/mdc_exporter.py | 0 .../_serving/monitor/metrics.py | 3 +- .../_serving/monitor/streaming_monitor.py | 4 +- .../_serving/resources/feedback_swagger.json | 2 +- .../_serving/response_creator.py | 2 +- .../{_sdk => core}/_serving/static/index.html | 0 .../{_sdk => core}/_serving/static/index.js | 2 +- .../{_sdk => core}/_serving/swagger.py | 0 .../{_sdk => core}/_serving/utils.py | 21 +- src/promptflow/tests/executor/.coveragerc | 1 + .../tests/sdk_cli_azure_test/conftest.py | 6 +- .../e2etests/test_global_config.py | 4 +- src/promptflow/tests/sdk_cli_test/conftest.py | 4 +- .../sdk_cli_test/e2etests/test_flow_serve.py | 14 +- .../unittests/test_flow_invoker.py | 4 +- .../unittests/test_mlflow_dependencies.py | 2 +- .../export/linux/runit/promptflow-serve/run | 2 +- src/promptflow/tests/tracing_test/.coveragerc | 1 + 46 files changed, 388 insertions(+), 354 deletions(-) rename src/promptflow/promptflow/{_sdk => core}/_serving/__init__.py (100%) rename src/promptflow/promptflow/{_sdk => core}/_serving/_errors.py (100%) create mode 100644 src/promptflow/promptflow/core/_serving/app.py rename src/promptflow/promptflow/{_sdk => core}/_serving/blueprint/__init__.py (100%) rename src/promptflow/promptflow/{_sdk => core}/_serving/blueprint/monitor_blueprint.py (86%) rename src/promptflow/promptflow/{_sdk => core}/_serving/blueprint/static_web_blueprint.py (93%) rename src/promptflow/promptflow/{_sdk => core}/_serving/constants.py (100%) rename src/promptflow/promptflow/{_sdk => core}/_serving/extension/__init__.py (100%) rename src/promptflow/promptflow/{_sdk => core}/_serving/extension/azureml_extension.py (94%) rename src/promptflow/promptflow/{_sdk => core}/_serving/extension/default_extension.py (91%) rename src/promptflow/promptflow/{_sdk => core}/_serving/extension/extension_factory.py (79%) rename src/promptflow/promptflow/{_sdk => core}/_serving/extension/extension_type.py (100%) rename src/promptflow/promptflow/{_sdk => core}/_serving/extension/otel_exporter_provider_factory.py (97%) rename src/promptflow/promptflow/{_sdk => core}/_serving/flow_invoker.py (97%) rename src/promptflow/promptflow/{_sdk => core}/_serving/flow_result.py (100%) rename src/promptflow/promptflow/{_sdk => core}/_serving/monitor/__init__.py (100%) rename src/promptflow/promptflow/{_sdk => core}/_serving/monitor/data_collector.py (100%) rename src/promptflow/promptflow/{_sdk => core}/_serving/monitor/flow_monitor.py (90%) rename src/promptflow/promptflow/{_sdk => core}/_serving/monitor/mdc_exporter.py (100%) rename src/promptflow/promptflow/{_sdk => core}/_serving/monitor/metrics.py (99%) rename src/promptflow/promptflow/{_sdk => core}/_serving/monitor/streaming_monitor.py (94%) rename src/promptflow/promptflow/{_sdk => core}/_serving/resources/feedback_swagger.json (99%) rename src/promptflow/promptflow/{_sdk => core}/_serving/response_creator.py (98%) rename src/promptflow/promptflow/{_sdk => core}/_serving/static/index.html (100%) rename src/promptflow/promptflow/{_sdk => core}/_serving/static/index.js (99%) rename src/promptflow/promptflow/{_sdk => core}/_serving/swagger.py (100%) rename src/promptflow/promptflow/{_sdk => core}/_serving/utils.py (97%) diff --git a/examples/tutorials/flow-deploy/create-service-with-flow/simple_score.py b/examples/tutorials/flow-deploy/create-service-with-flow/simple_score.py index acd1c33e008..fccbc65820b 100644 --- a/examples/tutorials/flow-deploy/create-service-with-flow/simple_score.py +++ b/examples/tutorials/flow-deploy/create-service-with-flow/simple_score.py @@ -72,7 +72,7 @@ def score(): # data in request will be passed to flow as kwargs result_dict = f(**data) # Note: if specified streaming=True in the flow context, the result will be a generator - # reference promptflow._sdk._serving.response_creator.ResponseCreator on how to handle it in app. + # reference promptflow.core._serving.response_creator.ResponseCreator on how to handle it in app. return jsonify(result_dict) diff --git a/examples/tutorials/flow-deploy/distribute-flow-as-executable-app/main.py b/examples/tutorials/flow-deploy/distribute-flow-as-executable-app/main.py index 89d4def2fea..5aa743d6ab2 100644 --- a/examples/tutorials/flow-deploy/distribute-flow-as-executable-app/main.py +++ b/examples/tutorials/flow-deploy/distribute-flow-as-executable-app/main.py @@ -2,14 +2,15 @@ import json import os import re -import streamlit as st from pathlib import Path -from streamlit_quill import st_quill # noqa: F401 + +import streamlit as st from bs4 import BeautifulSoup, NavigableString, Tag +from streamlit_quill import st_quill # noqa: F401 from promptflow._sdk._utils import print_yellow_warning -from promptflow._sdk._serving.flow_invoker import FlowInvoker -from promptflow._utils.multimedia_utils import is_multimedia_dict, MIME_PATTERN +from promptflow._utils.multimedia_utils import MIME_PATTERN, is_multimedia_dict +from promptflow.core._serving.flow_invoker import FlowInvoker invoker = None @@ -20,7 +21,7 @@ def clear_chat() -> None: def show_image(image, key=None): if not image.startswith("data:image"): - st.image(key + ',' + image) + st.image(key + "," + image) else: st.image(image) @@ -50,12 +51,12 @@ def is_dict_contains_rich_text(rich_text): elif isinstance(rich_text_value, dict): result |= is_dict_contains_rich_text(rich_text_value) elif re.match(MIME_PATTERN, rich_text_key) or ( - isinstance(rich_text_value, str) and rich_text_value.startswith("data:image")): + isinstance(rich_text_value, str) and rich_text_value.startswith("data:image") + ): result = True return result def render_message(role, message_items): - def item_render_message(value, key=None): if key and re.match(MIME_PATTERN, key): show_image(value, key) @@ -154,8 +155,8 @@ def extract_content(node): if text: return [text] elif isinstance(node, Tag): - if node.name == 'img': - prefix, base64_str = node['src'].split(',', 1) + if node.name == "img": + prefix, base64_str = node["src"].split(",", 1) return [{prefix: base64_str}] else: result = [] @@ -165,16 +166,16 @@ def extract_content(node): return [] def parse_html_content(html_content): - soup = BeautifulSoup(html_content, 'html.parser') + soup = BeautifulSoup(html_content, "html.parser") result = [] - for p in soup.find_all('p'): + for p in soup.find_all("p"): result.extend(extract_content(p)) return result def parse_image_content(image_content, image_type): if image_content is not None: file_contents = image_content.read() - image_content = base64.b64encode(file_contents).decode('utf-8') + image_content = base64.b64encode(file_contents).decode("utf-8") prefix = f"data:{image_type};base64" return {prefix: image_content} @@ -184,7 +185,7 @@ def parse_image_content(image_content, image_type): with container: show_conversation() - with st.form(key='input_form', clear_on_submit=True): + with st.form(key="input_form", clear_on_submit=True): settings_path = os.path.join(os.path.dirname(__file__), "settings.json") if os.path.exists(settings_path): with open(settings_path, "r") as file: @@ -195,15 +196,17 @@ def parse_image_content(image_content, image_type): label=environment_variable, type="password", placeholder=f"Please input {environment_variable} here. If you input before, you can leave it " - f"blank.") + f"blank.", + ) if secret_input != "": os.environ[environment_variable] = secret_input - url = st.text_input(label='url', - placeholder='https://play.google.com/store/apps/details?id=com.twitter.android') + url = st.text_input( + label="url", placeholder="https://play.google.com/store/apps/details?id=com.twitter.android" + ) cols = st.columns(7) - submit_bt = cols[0].form_submit_button(label='Submit') - clear_bt = cols[1].form_submit_button(label='Clear') + submit_bt = cols[0].form_submit_button(label="Submit") + clear_bt = cols[1].form_submit_button(label="Clear") if submit_bt: submit(url=url) diff --git a/scripts/compliance-check/user_exclusion.xml b/scripts/compliance-check/user_exclusion.xml index 722280eef37..1db96c0e0ed 100644 --- a/scripts/compliance-check/user_exclusion.xml +++ b/scripts/compliance-check/user_exclusion.xml @@ -1,7 +1,7 @@ - SRC\PROMPTFLOW\PROMPTFLOW\_SDK\_SERVING\STATIC\INDEX.JS + SRC\PROMPTFLOW\PROMPTFLOW\CORE\_SERVING\STATIC\INDEX.JS .MIN.JS SRC\PROMPTFLOW\PROMPTFLOW\_SDK\_SERVICE\STATIC\ diff --git a/src/promptflow/MANIFEST.in b/src/promptflow/MANIFEST.in index 1ffc2cbaad3..8b9985714a2 100644 --- a/src/promptflow/MANIFEST.in +++ b/src/promptflow/MANIFEST.in @@ -1,5 +1,5 @@ include promptflow/azure/resources/* -include promptflow/_sdk/_serving/static/* +include promptflow/core/_serving/static/* include promptflow/_sdk/_service/static/* include promptflow/_sdk/_service/static/assets/* recursive-include promptflow/_cli/data * diff --git a/src/promptflow/promptflow/_cli/_pf/_flow.py b/src/promptflow/promptflow/_cli/_pf/_flow.py index 915b7d07af1..8067967592a 100644 --- a/src/promptflow/promptflow/_cli/_pf/_flow.py +++ b/src/promptflow/promptflow/_cli/_pf/_flow.py @@ -556,7 +556,7 @@ def _resolve_python_flow_additional_includes(source) -> Path: def serve_flow_python(args, source): - from promptflow._sdk._serving.app import create_app + from promptflow.core._serving.app import create_app static_folder = args.static_folder if static_folder: diff --git a/src/promptflow/promptflow/_internal/__init__.py b/src/promptflow/promptflow/_internal/__init__.py index e8933b92317..75857b2790c 100644 --- a/src/promptflow/promptflow/_internal/__init__.py +++ b/src/promptflow/promptflow/_internal/__init__.py @@ -41,16 +41,6 @@ retrieve_tool_func_result, ) from promptflow._sdk._constants import LOCAL_MGMT_DB_PATH -from promptflow._sdk._serving.response_creator import ResponseCreator -from promptflow._sdk._serving.swagger import generate_swagger -from promptflow._sdk._serving.utils import ( - get_output_fields_to_remove, - get_sample_json, - handle_error_to_response, - load_request_data, - streaming_response_required, - validate_request_data, -) from promptflow._sdk._utils import ( get_used_connection_names_from_environment_variables, setup_user_agent_to_operation_context, @@ -106,6 +96,16 @@ ) from promptflow._version import VERSION from promptflow.batch._csharp_base_executor_proxy import CSharpBaseExecutorProxy +from promptflow.core._serving.response_creator import ResponseCreator +from promptflow.core._serving.swagger import generate_swagger +from promptflow.core._serving.utils import ( + get_output_fields_to_remove, + get_sample_json, + handle_error_to_response, + load_request_data, + streaming_response_required, + validate_request_data, +) from promptflow.executor._errors import InputNotFound from promptflow.executor._tool_invoker import DefaultToolInvoker from promptflow.storage._run_storage import DefaultRunStorage diff --git a/src/promptflow/promptflow/_sdk/_mlflow.py b/src/promptflow/promptflow/_sdk/_mlflow.py index 771d0e699d8..bd06be81301 100644 --- a/src/promptflow/promptflow/_sdk/_mlflow.py +++ b/src/promptflow/promptflow/_sdk/_mlflow.py @@ -6,10 +6,10 @@ original function/module names the same as before, otherwise mldesigner will be broken by this change. """ from promptflow._sdk._constants import DAG_FILE_NAME -from promptflow._sdk._serving.flow_invoker import FlowInvoker from promptflow._sdk._submitter import remove_additional_includes from promptflow._sdk._utils import _merge_local_code_and_additional_includes from promptflow._sdk.entities._flow import Flow +from promptflow.core._serving.flow_invoker import FlowInvoker __all__ = [ "Flow", diff --git a/src/promptflow/promptflow/_sdk/_serving/app.py b/src/promptflow/promptflow/_sdk/_serving/app.py index 8335ad8dc95..3857bdae9a3 100644 --- a/src/promptflow/promptflow/_sdk/_serving/app.py +++ b/src/promptflow/promptflow/_sdk/_serving/app.py @@ -2,249 +2,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -import json -import logging -import mimetypes -import os -from typing import Dict +from promptflow.core._serving.app import create_app -from flask import Flask, g, jsonify, request - -from promptflow._sdk._load_functions import load_flow -from promptflow._sdk._serving.extension.extension_factory import ExtensionFactory -from promptflow._sdk._serving.flow_invoker import FlowInvoker -from promptflow._sdk._serving.response_creator import ResponseCreator -from promptflow._sdk._serving.constants import FEEDBACK_TRACE_FIELD_NAME, FEEDBACK_TRACE_SPAN_NAME -from promptflow._sdk._serving.utils import ( - enable_monitoring, - get_output_fields_to_remove, - get_sample_json, - handle_error_to_response, - load_request_data, - streaming_response_required, - try_extract_trace_context, - serialize_attribute_value, - load_feedback_swagger, -) -from promptflow._sdk._utils import setup_user_agent_to_operation_context -from promptflow._utils.exception_utils import ErrorResponse -from promptflow._utils.logger_utils import LoggerFactory -from promptflow._version import VERSION -from promptflow.contracts.run_info import Status -from promptflow.exceptions import SystemErrorException -from promptflow.storage._run_storage import DummyRunStorage -from opentelemetry import context, baggage - -from .swagger import generate_swagger - -logger = LoggerFactory.get_logger("pfserving-app", target_stdout=True) -USER_AGENT = f"promptflow-local-serving/{VERSION}" - - -class PromptflowServingApp(Flask): - def init(self, **kwargs): - with self.app_context(): - # default to local, can be override when creating the app - self.extension = ExtensionFactory.create_extension(logger, **kwargs) - - self.flow_invoker: FlowInvoker = None - # parse promptflow project path - self.project_path = self.extension.get_flow_project_path() - logger.info(f"Project path: {self.project_path}") - self.flow_entity = load_flow(self.project_path) - self.flow = self.flow_entity._init_executable() - - # enable environment_variables - environment_variables = kwargs.get("environment_variables", {}) - os.environ.update(environment_variables) - default_environment_variables = self.flow.get_environment_variables_with_overrides() - self.set_default_environment_variables(default_environment_variables) - - self.flow_name = self.extension.get_flow_name() - self.flow.name = self.flow_name - conn_data_override, conn_name_override = self.extension.get_override_connections(self.flow) - self.connections_override = conn_data_override - self.connections_name_override = conn_name_override - - self.flow_monitor = self.extension.get_flow_monitor() - - self.connection_provider = self.extension.get_connection_provider() - self.credential = self.extension.get_credential() - self.sample = get_sample_json(self.project_path, logger) - self.init_swagger() - # try to initialize the flow invoker - try: - self.init_invoker_if_not_exist() - except Exception as e: - if self.extension.raise_ex_on_invoker_initialization_failure(e): - raise e - # ensure response has the correct content type - mimetypes.add_type("application/javascript", ".js") - mimetypes.add_type("text/css", ".css") - setup_user_agent_to_operation_context(self.extension.get_user_agent()) - - add_default_routes(self) - # register blueprints - blue_prints = self.extension.get_blueprints() - for blue_print in blue_prints: - self.register_blueprint(blue_print) - - def init_invoker_if_not_exist(self): - if self.flow_invoker: - return - logger.info("Promptflow executor starts initializing...") - self.flow_invoker = FlowInvoker( - self.project_path, - connection_provider=self.connection_provider, - streaming=streaming_response_required, - raise_ex=False, - connections=self.connections_override, - connections_name_overrides=self.connections_name_override, - # for serving, we don't need to persist intermediate result, this is to avoid memory leak. - storage=DummyRunStorage(), - credential=self.credential, - ) - self.flow = self.flow_invoker.flow - # Set the flow name as folder name - self.flow.name = self.flow_name - self.response_fields_to_remove = get_output_fields_to_remove(self.flow, logger) - logger.info("Promptflow executor initializing succeed!") - - def init_swagger(self): - self.response_fields_to_remove = get_output_fields_to_remove(self.flow, logger) - self.swagger = generate_swagger(self.flow, self.sample, self.response_fields_to_remove) - data = load_feedback_swagger() - self.swagger['paths']['/feedback'] = data - - def set_default_environment_variables(self, default_environment_variables: Dict[str, str] = None): - if default_environment_variables is None: - return - for key, value in default_environment_variables.items(): - if key not in os.environ: - os.environ[key] = value - - -def add_default_routes(app: PromptflowServingApp): - @app.errorhandler(Exception) - def handle_error(e): - err_resp, resp_code = handle_error_to_response(e, logger) - app.flow_monitor.handle_error(e, resp_code) - return err_resp, resp_code - - @app.route("/score", methods=["POST"]) - @enable_monitoring - def score(): - """process a flow request in the runtime.""" - raw_data = request.get_data() - logger.debug(f"PromptFlow executor received data: {raw_data}") - app.init_invoker_if_not_exist() - if app.flow.inputs.keys().__len__() == 0: - data = {} - logger.info("Flow has no input, request data will be ignored.") - else: - logger.info("Start loading request data...") - data = load_request_data(app.flow, raw_data, logger) - # set context data - g.data = data - g.flow_id = app.flow.id or app.flow.name - run_id = g.get("req_id", None) - # TODO: refine this once we can directly set the input/output log level to DEBUG in flow_invoker. - disable_data_logging = logger.level >= logging.INFO - # try parse trace context and attach it as current context if exist - ctx = try_extract_trace_context(logger) - token = context.attach(ctx) if ctx else None - try: - flow_result = app.flow_invoker.invoke(data, run_id=run_id, disable_input_output_logging=disable_data_logging) # noqa - g.flow_result = flow_result - finally: - # detach trace context if exist - if token: - context.detach(token) - - # check flow result, if failed, return error response - if flow_result.run_info.status != Status.Completed: - if flow_result.run_info.error: - err = ErrorResponse(flow_result.run_info.error) - g.err_code = err.innermost_error_code - return jsonify(err.to_simplified_dict()), err.response_code - else: - # in case of run failed but can't find any error, return 500 - exception = SystemErrorException("Flow execution failed without error message.") - return jsonify(ErrorResponse.from_exception(exception).to_simplified_dict()), 500 - - intermediate_output = flow_result.output or {} - # remove evaluation only fields - result_output = {k: v for k, v in intermediate_output.items() if k not in app.response_fields_to_remove} - - response_creator = ResponseCreator( - flow_run_result=result_output, - accept_mimetypes=request.accept_mimetypes, - response_original_value=flow_result.response_original_value, - ) - app.flow_monitor.setup_streaming_monitor_if_needed(response_creator, data, intermediate_output) - return response_creator.create_response() - - @app.route("/swagger.json", methods=["GET"]) - def swagger(): - """Get the swagger object.""" - return jsonify(app.swagger) - - @app.route("/health", methods=["GET"]) - def health(): - """Check if the runtime is alive.""" - return {"status": "Healthy", "version": VERSION} - - @app.route("/version", methods=["GET"]) - def version(): - """Check the runtime's version.""" - build_info = os.environ.get("BUILD_INFO", "") - try: - build_info_dict = json.loads(build_info) - version = build_info_dict["build_number"] - except Exception: - version = VERSION - return {"status": "Healthy", "build_info": build_info, "version": version} - - @app.route("/feedback", methods=["POST"]) - def feedback(): - ctx = try_extract_trace_context(logger) - from opentelemetry import trace - open_telemetry_tracer = trace.get_tracer_provider().get_tracer("promptflow") - token = context.attach(ctx) if ctx else None - try: - with open_telemetry_tracer.start_as_current_span(FEEDBACK_TRACE_SPAN_NAME) as span: - data = request.get_data(as_text=True) - should_flatten = request.args.get('flatten', 'false').lower() == 'true' - if should_flatten: - try: - # try flatten the data to avoid data too big issue (especially for app insights scenario) - data = json.loads(data) - for k in data: - span.set_attribute(k, serialize_attribute_value(data[k])) - except Exception as e: - logger.warning(f"Failed to flatten the feedback, fall back to non-flattern mode. Error: {e}.") - span.set_attribute(FEEDBACK_TRACE_FIELD_NAME, data) - else: - span.set_attribute(FEEDBACK_TRACE_FIELD_NAME, data) - # add baggage data if exist - data = baggage.get_all() - if data: - for k, v in data.items(): - span.set_attribute(k, v) - finally: - if token: - context.detach(token) - return {"status": "Feedback received."} - - -def create_app(**kwargs): - app = PromptflowServingApp(__name__) - if __name__ != "__main__": - app.logger.handlers = logger.handlers - app.logger.setLevel(logger.level) - app.init(**kwargs) - return app - - -if __name__ == "__main__": - create_app().run() +# Keep this for backward compatibility, will be removed after runtime is updated +create_app = create_app diff --git a/src/promptflow/promptflow/_sdk/data/docker/runit/promptflow-serve/run.jinja2 b/src/promptflow/promptflow/_sdk/data/docker/runit/promptflow-serve/run.jinja2 index fde584c9e29..3ae52985eff 100644 --- a/src/promptflow/promptflow/_sdk/data/docker/runit/promptflow-serve/run.jinja2 +++ b/src/promptflow/promptflow/_sdk/data/docker/runit/promptflow-serve/run.jinja2 @@ -15,4 +15,4 @@ pf connection create --file /{{ connection_yaml_path }} {% endfor %} echo "start promptflow serving with worker_num: 8, worker_threads: 1" cd /flow -gunicorn -w 8 --threads 1 -b "0.0.0.0:8080" --timeout 300 "promptflow._sdk._serving.app:create_app()" \ No newline at end of file +gunicorn -w 8 --threads 1 -b "0.0.0.0:8080" --timeout 300 "promptflow.core._serving.app:create_app()" diff --git a/src/promptflow/promptflow/core/_flow_context_resolver.py b/src/promptflow/promptflow/core/_flow_context_resolver.py index 5e771374714..615aeb6e9f3 100644 --- a/src/promptflow/promptflow/core/_flow_context_resolver.py +++ b/src/promptflow/promptflow/core/_flow_context_resolver.py @@ -114,7 +114,7 @@ def _resolve_connection_objs(self, flow_context: FlowContext): def _create_invoker( self, flow_context: FlowContext, is_async_call=False ) -> Union["FlowInvoker", "AsyncFlowInvoker"]: - from promptflow._sdk._serving.flow_invoker import AsyncFlowInvoker, FlowInvoker + from promptflow.core._serving.flow_invoker import AsyncFlowInvoker, FlowInvoker connections = self._resolve_connection_objs(flow_context=flow_context) # use updated flow dag to create new flow object for invoker diff --git a/src/promptflow/promptflow/_sdk/_serving/__init__.py b/src/promptflow/promptflow/core/_serving/__init__.py similarity index 100% rename from src/promptflow/promptflow/_sdk/_serving/__init__.py rename to src/promptflow/promptflow/core/_serving/__init__.py diff --git a/src/promptflow/promptflow/_sdk/_serving/_errors.py b/src/promptflow/promptflow/core/_serving/_errors.py similarity index 100% rename from src/promptflow/promptflow/_sdk/_serving/_errors.py rename to src/promptflow/promptflow/core/_serving/_errors.py diff --git a/src/promptflow/promptflow/core/_serving/app.py b/src/promptflow/promptflow/core/_serving/app.py new file mode 100644 index 00000000000..80248fe5d8b --- /dev/null +++ b/src/promptflow/promptflow/core/_serving/app.py @@ -0,0 +1,253 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import json +import logging +import mimetypes +import os +from typing import Dict + +from flask import Flask, g, jsonify, request +from opentelemetry import baggage, context + +from promptflow._sdk._load_functions import load_flow +from promptflow._sdk._utils import setup_user_agent_to_operation_context +from promptflow._utils.exception_utils import ErrorResponse +from promptflow._utils.logger_utils import LoggerFactory +from promptflow._version import VERSION +from promptflow.contracts.run_info import Status +from promptflow.core._serving.constants import FEEDBACK_TRACE_FIELD_NAME, FEEDBACK_TRACE_SPAN_NAME +from promptflow.core._serving.extension.extension_factory import ExtensionFactory +from promptflow.core._serving.flow_invoker import FlowInvoker +from promptflow.core._serving.response_creator import ResponseCreator +from promptflow.core._serving.utils import ( + enable_monitoring, + get_output_fields_to_remove, + get_sample_json, + handle_error_to_response, + load_feedback_swagger, + load_request_data, + serialize_attribute_value, + streaming_response_required, + try_extract_trace_context, +) +from promptflow.exceptions import SystemErrorException +from promptflow.storage._run_storage import DummyRunStorage + +from .swagger import generate_swagger + +logger = LoggerFactory.get_logger("pfserving-app", target_stdout=True) +USER_AGENT = f"promptflow-local-serving/{VERSION}" + + +class PromptflowServingApp(Flask): + def init(self, **kwargs): + with self.app_context(): + # default to local, can be override when creating the app + self.extension = ExtensionFactory.create_extension(logger, **kwargs) + + self.flow_invoker: FlowInvoker = None + # parse promptflow project path + self.project_path = self.extension.get_flow_project_path() + logger.info(f"Project path: {self.project_path}") + self.flow_entity = load_flow(self.project_path) + self.flow = self.flow_entity._init_executable() + + # enable environment_variables + environment_variables = kwargs.get("environment_variables", {}) + os.environ.update(environment_variables) + default_environment_variables = self.flow.get_environment_variables_with_overrides() + self.set_default_environment_variables(default_environment_variables) + + self.flow_name = self.extension.get_flow_name() + self.flow.name = self.flow_name + conn_data_override, conn_name_override = self.extension.get_override_connections(self.flow) + self.connections_override = conn_data_override + self.connections_name_override = conn_name_override + + self.flow_monitor = self.extension.get_flow_monitor() + + self.connection_provider = self.extension.get_connection_provider() + self.credential = self.extension.get_credential() + self.sample = get_sample_json(self.project_path, logger) + self.init_swagger() + # try to initialize the flow invoker + try: + self.init_invoker_if_not_exist() + except Exception as e: + if self.extension.raise_ex_on_invoker_initialization_failure(e): + raise e + # ensure response has the correct content type + mimetypes.add_type("application/javascript", ".js") + mimetypes.add_type("text/css", ".css") + setup_user_agent_to_operation_context(self.extension.get_user_agent()) + + add_default_routes(self) + # register blueprints + blue_prints = self.extension.get_blueprints() + for blue_print in blue_prints: + self.register_blueprint(blue_print) + + def init_invoker_if_not_exist(self): + if self.flow_invoker: + return + logger.info("Promptflow executor starts initializing...") + self.flow_invoker = FlowInvoker( + self.project_path, + connection_provider=self.connection_provider, + streaming=streaming_response_required, + raise_ex=False, + connections=self.connections_override, + connections_name_overrides=self.connections_name_override, + # for serving, we don't need to persist intermediate result, this is to avoid memory leak. + storage=DummyRunStorage(), + credential=self.credential, + ) + self.flow = self.flow_invoker.flow + # Set the flow name as folder name + self.flow.name = self.flow_name + self.response_fields_to_remove = get_output_fields_to_remove(self.flow, logger) + logger.info("Promptflow executor initializing succeed!") + + def init_swagger(self): + self.response_fields_to_remove = get_output_fields_to_remove(self.flow, logger) + self.swagger = generate_swagger(self.flow, self.sample, self.response_fields_to_remove) + data = load_feedback_swagger() + self.swagger["paths"]["/feedback"] = data + + def set_default_environment_variables(self, default_environment_variables: Dict[str, str] = None): + if default_environment_variables is None: + return + for key, value in default_environment_variables.items(): + if key not in os.environ: + os.environ[key] = value + + +def add_default_routes(app: PromptflowServingApp): + @app.errorhandler(Exception) + def handle_error(e): + err_resp, resp_code = handle_error_to_response(e, logger) + app.flow_monitor.handle_error(e, resp_code) + return err_resp, resp_code + + @app.route("/score", methods=["POST"]) + @enable_monitoring + def score(): + """process a flow request in the runtime.""" + raw_data = request.get_data() + logger.debug(f"PromptFlow executor received data: {raw_data}") + app.init_invoker_if_not_exist() + if app.flow.inputs.keys().__len__() == 0: + data = {} + logger.info("Flow has no input, request data will be ignored.") + else: + logger.info("Start loading request data...") + data = load_request_data(app.flow, raw_data, logger) + # set context data + g.data = data + g.flow_id = app.flow.id or app.flow.name + run_id = g.get("req_id", None) + # TODO: refine this once we can directly set the input/output log level to DEBUG in flow_invoker. + disable_data_logging = logger.level >= logging.INFO + # try parse trace context and attach it as current context if exist + ctx = try_extract_trace_context(logger) + token = context.attach(ctx) if ctx else None + try: + flow_result = app.flow_invoker.invoke( + data, run_id=run_id, disable_input_output_logging=disable_data_logging + ) # noqa + g.flow_result = flow_result + finally: + # detach trace context if exist + if token: + context.detach(token) + + # check flow result, if failed, return error response + if flow_result.run_info.status != Status.Completed: + if flow_result.run_info.error: + err = ErrorResponse(flow_result.run_info.error) + g.err_code = err.innermost_error_code + return jsonify(err.to_simplified_dict()), err.response_code + else: + # in case of run failed but can't find any error, return 500 + exception = SystemErrorException("Flow execution failed without error message.") + return jsonify(ErrorResponse.from_exception(exception).to_simplified_dict()), 500 + + intermediate_output = flow_result.output or {} + # remove evaluation only fields + result_output = {k: v for k, v in intermediate_output.items() if k not in app.response_fields_to_remove} + + response_creator = ResponseCreator( + flow_run_result=result_output, + accept_mimetypes=request.accept_mimetypes, + response_original_value=flow_result.response_original_value, + ) + app.flow_monitor.setup_streaming_monitor_if_needed(response_creator, data, intermediate_output) + return response_creator.create_response() + + @app.route("/swagger.json", methods=["GET"]) + def swagger(): + """Get the swagger object.""" + return jsonify(app.swagger) + + @app.route("/health", methods=["GET"]) + def health(): + """Check if the runtime is alive.""" + return {"status": "Healthy", "version": VERSION} + + @app.route("/version", methods=["GET"]) + def version(): + """Check the runtime's version.""" + build_info = os.environ.get("BUILD_INFO", "") + try: + build_info_dict = json.loads(build_info) + version = build_info_dict["build_number"] + except Exception: + version = VERSION + return {"status": "Healthy", "build_info": build_info, "version": version} + + @app.route("/feedback", methods=["POST"]) + def feedback(): + ctx = try_extract_trace_context(logger) + from opentelemetry import trace + + open_telemetry_tracer = trace.get_tracer_provider().get_tracer("promptflow") + token = context.attach(ctx) if ctx else None + try: + with open_telemetry_tracer.start_as_current_span(FEEDBACK_TRACE_SPAN_NAME) as span: + data = request.get_data(as_text=True) + should_flatten = request.args.get("flatten", "false").lower() == "true" + if should_flatten: + try: + # try flatten the data to avoid data too big issue (especially for app insights scenario) + data = json.loads(data) + for k in data: + span.set_attribute(k, serialize_attribute_value(data[k])) + except Exception as e: + logger.warning(f"Failed to flatten the feedback, fall back to non-flattern mode. Error: {e}.") + span.set_attribute(FEEDBACK_TRACE_FIELD_NAME, data) + else: + span.set_attribute(FEEDBACK_TRACE_FIELD_NAME, data) + # add baggage data if exist + data = baggage.get_all() + if data: + for k, v in data.items(): + span.set_attribute(k, v) + finally: + if token: + context.detach(token) + return {"status": "Feedback received."} + + +def create_app(**kwargs): + app = PromptflowServingApp(__name__) + if __name__ != "__main__": + app.logger.handlers = logger.handlers + app.logger.setLevel(logger.level) + app.init(**kwargs) + return app + + +if __name__ == "__main__": + create_app().run() diff --git a/src/promptflow/promptflow/_sdk/_serving/blueprint/__init__.py b/src/promptflow/promptflow/core/_serving/blueprint/__init__.py similarity index 100% rename from src/promptflow/promptflow/_sdk/_serving/blueprint/__init__.py rename to src/promptflow/promptflow/core/_serving/blueprint/__init__.py diff --git a/src/promptflow/promptflow/_sdk/_serving/blueprint/monitor_blueprint.py b/src/promptflow/promptflow/core/_serving/blueprint/monitor_blueprint.py similarity index 86% rename from src/promptflow/promptflow/_sdk/_serving/blueprint/monitor_blueprint.py rename to src/promptflow/promptflow/core/_serving/blueprint/monitor_blueprint.py index aea4408dbb9..a086ac01bcb 100644 --- a/src/promptflow/promptflow/_sdk/_serving/blueprint/monitor_blueprint.py +++ b/src/promptflow/promptflow/core/_serving/blueprint/monitor_blueprint.py @@ -2,8 +2,11 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -from flask import Blueprint, current_app as app, request -from promptflow._sdk._serving.monitor.flow_monitor import FlowMonitor +from flask import Blueprint +from flask import current_app as app +from flask import request + +from promptflow.core._serving.monitor.flow_monitor import FlowMonitor def is_monitoring_enabled() -> bool: diff --git a/src/promptflow/promptflow/_sdk/_serving/blueprint/static_web_blueprint.py b/src/promptflow/promptflow/core/_serving/blueprint/static_web_blueprint.py similarity index 93% rename from src/promptflow/promptflow/_sdk/_serving/blueprint/static_web_blueprint.py rename to src/promptflow/promptflow/core/_serving/blueprint/static_web_blueprint.py index 7507c8292b6..ef4be2e2967 100644 --- a/src/promptflow/promptflow/_sdk/_serving/blueprint/static_web_blueprint.py +++ b/src/promptflow/promptflow/core/_serving/blueprint/static_web_blueprint.py @@ -2,10 +2,13 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- +from pathlib import Path + import flask +from flask import Blueprint +from flask import current_app as app +from flask import request, url_for from jinja2 import Template -from pathlib import Path -from flask import Blueprint, request, url_for, current_app as app def construct_staticweb_blueprint(static_folder): diff --git a/src/promptflow/promptflow/_sdk/_serving/constants.py b/src/promptflow/promptflow/core/_serving/constants.py similarity index 100% rename from src/promptflow/promptflow/_sdk/_serving/constants.py rename to src/promptflow/promptflow/core/_serving/constants.py diff --git a/src/promptflow/promptflow/_sdk/_serving/extension/__init__.py b/src/promptflow/promptflow/core/_serving/extension/__init__.py similarity index 100% rename from src/promptflow/promptflow/_sdk/_serving/extension/__init__.py rename to src/promptflow/promptflow/core/_serving/extension/__init__.py diff --git a/src/promptflow/promptflow/_sdk/_serving/extension/azureml_extension.py b/src/promptflow/promptflow/core/_serving/extension/azureml_extension.py similarity index 94% rename from src/promptflow/promptflow/_sdk/_serving/extension/azureml_extension.py rename to src/promptflow/promptflow/core/_serving/extension/azureml_extension.py index ed212905a79..25494061b31 100644 --- a/src/promptflow/promptflow/_sdk/_serving/extension/azureml_extension.py +++ b/src/promptflow/promptflow/core/_serving/extension/azureml_extension.py @@ -7,14 +7,14 @@ import re from typing import Any, Tuple -from promptflow._sdk._serving._errors import InvalidConnectionData, MissingConnectionProvider -from promptflow._sdk._serving.extension.default_extension import AppExtension -from promptflow._sdk._serving.monitor.data_collector import FlowDataCollector -from promptflow._sdk._serving.extension.extension_type import ExtensionType -from promptflow._sdk._serving.utils import decode_dict, get_pf_serving_env, normalize_connection_name from promptflow._utils.retry_utils import retry from promptflow._version import VERSION from promptflow.contracts.flow import Flow +from promptflow.core._serving._errors import InvalidConnectionData, MissingConnectionProvider +from promptflow.core._serving.extension.default_extension import AppExtension +from promptflow.core._serving.extension.extension_type import ExtensionType +from promptflow.core._serving.monitor.data_collector import FlowDataCollector +from promptflow.core._serving.utils import decode_dict, get_pf_serving_env, normalize_connection_name USER_AGENT = f"promptflow-cloud-serving/{VERSION}" AML_DEPLOYMENT_RESOURCE_ID_REGEX = "/subscriptions/(.*)/resourceGroups/(.*)/providers/Microsoft.MachineLearningServices/workspaces/(.*)/onlineEndpoints/(.*)/deployments/(.*)" # noqa: E501 @@ -25,7 +25,9 @@ class AzureMLExtension(AppExtension): """AzureMLExtension is used to create extension for azureml serving.""" def __init__(self, logger, **kwargs): - super().__init__(logger=logger, extension_type=ExtensionType.AZUREML, collector=FlowDataCollector(logger), **kwargs) # noqa: E501 + super().__init__( + logger=logger, extension_type=ExtensionType.AZUREML, collector=FlowDataCollector(logger), **kwargs + ) # noqa: E501 # parse promptflow project path project_path: str = get_pf_serving_env("PROMPTFLOW_PROJECT_PATH") if not project_path: diff --git a/src/promptflow/promptflow/_sdk/_serving/extension/default_extension.py b/src/promptflow/promptflow/core/_serving/extension/default_extension.py similarity index 91% rename from src/promptflow/promptflow/_sdk/_serving/extension/default_extension.py rename to src/promptflow/promptflow/core/_serving/extension/default_extension.py index d519dd5b558..48cf2135908 100644 --- a/src/promptflow/promptflow/_sdk/_serving/extension/default_extension.py +++ b/src/promptflow/promptflow/core/_serving/extension/default_extension.py @@ -10,14 +10,14 @@ from promptflow._constants import DEFAULT_ENCODING from promptflow._sdk._configuration import Configuration -from promptflow._sdk._serving.blueprint.monitor_blueprint import construct_monitor_blueprint -from promptflow._sdk._serving.blueprint.static_web_blueprint import construct_staticweb_blueprint -from promptflow._sdk._serving.monitor.flow_monitor import FlowMonitor -from promptflow._sdk._serving.extension.extension_type import ExtensionType -from promptflow._sdk._serving.extension.otel_exporter_provider_factory import OTelExporterProviderFactory from promptflow._utils.yaml_utils import load_yaml from promptflow._version import VERSION from promptflow.contracts.flow import Flow +from promptflow.core._serving.blueprint.monitor_blueprint import construct_monitor_blueprint +from promptflow.core._serving.blueprint.static_web_blueprint import construct_staticweb_blueprint +from promptflow.core._serving.extension.extension_type import ExtensionType +from promptflow.core._serving.extension.otel_exporter_provider_factory import OTelExporterProviderFactory +from promptflow.core._serving.monitor.flow_monitor import FlowMonitor USER_AGENT = f"promptflow-local-serving/{VERSION}" DEFAULT_STATIC_PATH = Path(__file__).parent.parent / "static" @@ -90,7 +90,9 @@ def get_flow_monitor(self) -> FlowMonitor: custom_dimensions = self.get_metrics_common_dimensions() metric_exporters = OTelExporterProviderFactory.get_metrics_exporters(self.logger, self.extension_type) trace_exporters = OTelExporterProviderFactory.get_trace_exporters(self.logger, self.extension_type) - self.flow_monitor = FlowMonitor(self.logger, self.get_flow_name(), self.data_collector, custom_dimensions, metric_exporters, trace_exporters) # noqa: E501 + self.flow_monitor = FlowMonitor( + self.logger, self.get_flow_name(), self.data_collector, custom_dimensions, metric_exporters, trace_exporters + ) # noqa: E501 return self.flow_monitor def _get_mlflow_project_path(self, project_path: str): diff --git a/src/promptflow/promptflow/_sdk/_serving/extension/extension_factory.py b/src/promptflow/promptflow/core/_serving/extension/extension_factory.py similarity index 79% rename from src/promptflow/promptflow/_sdk/_serving/extension/extension_factory.py rename to src/promptflow/promptflow/core/_serving/extension/extension_factory.py index c65a3362a1e..6725c820d5e 100644 --- a/src/promptflow/promptflow/_sdk/_serving/extension/extension_factory.py +++ b/src/promptflow/promptflow/core/_serving/extension/extension_factory.py @@ -2,8 +2,8 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -from promptflow._sdk._serving.extension.default_extension import AppExtension -from promptflow._sdk._serving.extension.extension_type import ExtensionType +from promptflow.core._serving.extension.default_extension import AppExtension +from promptflow.core._serving.extension.extension_type import ExtensionType class ExtensionFactory: @@ -19,10 +19,10 @@ def create_extension(logger, **kwargs) -> AppExtension: if extension_type == ExtensionType.AZUREML: logger.info("Enable AzureML extension.") - from promptflow._sdk._serving.extension.azureml_extension import AzureMLExtension + from promptflow.core._serving.extension.azureml_extension import AzureMLExtension return AzureMLExtension(logger=logger, **kwargs) else: - from promptflow._sdk._serving.extension.default_extension import DefaultAppExtension + from promptflow.core._serving.extension.default_extension import DefaultAppExtension return DefaultAppExtension(logger=logger, **kwargs) diff --git a/src/promptflow/promptflow/_sdk/_serving/extension/extension_type.py b/src/promptflow/promptflow/core/_serving/extension/extension_type.py similarity index 100% rename from src/promptflow/promptflow/_sdk/_serving/extension/extension_type.py rename to src/promptflow/promptflow/core/_serving/extension/extension_type.py diff --git a/src/promptflow/promptflow/_sdk/_serving/extension/otel_exporter_provider_factory.py b/src/promptflow/promptflow/core/_serving/extension/otel_exporter_provider_factory.py similarity index 97% rename from src/promptflow/promptflow/_sdk/_serving/extension/otel_exporter_provider_factory.py rename to src/promptflow/promptflow/core/_serving/extension/otel_exporter_provider_factory.py index 48e586a2ab6..779499f2ff3 100644 --- a/src/promptflow/promptflow/_sdk/_serving/extension/otel_exporter_provider_factory.py +++ b/src/promptflow/promptflow/core/_serving/extension/otel_exporter_provider_factory.py @@ -5,8 +5,9 @@ import os from abc import abstractmethod from enum import Enum -from promptflow._sdk._serving.extension.extension_type import ExtensionType -from promptflow._sdk._serving.monitor.mdc_exporter import MdcExporter + +from promptflow.core._serving.extension.extension_type import ExtensionType +from promptflow.core._serving.monitor.mdc_exporter import MdcExporter class ExporterType(Enum): @@ -52,6 +53,7 @@ def __init__(self, logger) -> None: def get_exporter(self, **kwargs): try: from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter + return AzureMonitorTraceExporter.from_connection_string(self.app_insight_connection_string) except ImportError: return None @@ -75,6 +77,7 @@ def __init__(self, logger) -> None: def get_exporter(self, **kwargs): try: from azure.monitor.opentelemetry.exporter import AzureMonitorMetricExporter + return AzureMonitorMetricExporter.from_connection_string(self.app_insight_connection_string) except ImportError: return None diff --git a/src/promptflow/promptflow/_sdk/_serving/flow_invoker.py b/src/promptflow/promptflow/core/_serving/flow_invoker.py similarity index 97% rename from src/promptflow/promptflow/_sdk/_serving/flow_invoker.py rename to src/promptflow/promptflow/core/_serving/flow_invoker.py index 5174f93a990..5a580561d64 100644 --- a/src/promptflow/promptflow/_sdk/_serving/flow_invoker.py +++ b/src/promptflow/promptflow/core/_serving/flow_invoker.py @@ -7,9 +7,6 @@ from promptflow import PFClient from promptflow._sdk._load_functions import load_flow -from promptflow._sdk._serving._errors import UnexpectedConnectionProviderReturn, UnsupportedConnectionProvider -from promptflow._sdk._serving.flow_result import FlowResult -from promptflow._sdk._serving.utils import validate_request_data from promptflow._sdk._utils import ( dump_flow_result, get_local_connections_from_executable, @@ -17,12 +14,15 @@ resolve_connections_environment_variable_reference, update_environment_variables_with_connections, ) -from promptflow._sdk.entities._connection import _Connection from promptflow._sdk.entities._flow import Flow from promptflow._sdk.operations._flow_operations import FlowOperations from promptflow._utils.dataclass_serializer import convert_eager_flow_output_to_dict from promptflow._utils.logger_utils import LoggerFactory from promptflow._utils.multimedia_utils import convert_multimedia_data_to_base64, persist_multimedia_data +from promptflow.core._connection import _Connection +from promptflow.core._serving._errors import UnexpectedConnectionProviderReturn, UnsupportedConnectionProvider +from promptflow.core._serving.flow_result import FlowResult +from promptflow.core._serving.utils import validate_request_data from promptflow.executor import FlowExecutor from promptflow.storage._run_storage import DefaultRunStorage diff --git a/src/promptflow/promptflow/_sdk/_serving/flow_result.py b/src/promptflow/promptflow/core/_serving/flow_result.py similarity index 100% rename from src/promptflow/promptflow/_sdk/_serving/flow_result.py rename to src/promptflow/promptflow/core/_serving/flow_result.py diff --git a/src/promptflow/promptflow/_sdk/_serving/monitor/__init__.py b/src/promptflow/promptflow/core/_serving/monitor/__init__.py similarity index 100% rename from src/promptflow/promptflow/_sdk/_serving/monitor/__init__.py rename to src/promptflow/promptflow/core/_serving/monitor/__init__.py diff --git a/src/promptflow/promptflow/_sdk/_serving/monitor/data_collector.py b/src/promptflow/promptflow/core/_serving/monitor/data_collector.py similarity index 100% rename from src/promptflow/promptflow/_sdk/_serving/monitor/data_collector.py rename to src/promptflow/promptflow/core/_serving/monitor/data_collector.py diff --git a/src/promptflow/promptflow/_sdk/_serving/monitor/flow_monitor.py b/src/promptflow/promptflow/core/_serving/monitor/flow_monitor.py similarity index 90% rename from src/promptflow/promptflow/_sdk/_serving/monitor/flow_monitor.py rename to src/promptflow/promptflow/core/_serving/monitor/flow_monitor.py index b647bcd5e5f..b5facc02748 100644 --- a/src/promptflow/promptflow/_sdk/_serving/monitor/flow_monitor.py +++ b/src/promptflow/promptflow/core/_serving/monitor/flow_monitor.py @@ -4,25 +4,29 @@ import time from typing import Dict -from promptflow._sdk._serving.monitor.data_collector import FlowDataCollector -from promptflow._sdk._serving.monitor.streaming_monitor import StreamingMonitor -from promptflow._sdk._serving.monitor.metrics import MetricsRecorder, ResponseType -from promptflow._sdk._serving.utils import streaming_response_required, get_cost_up_to_now -from promptflow._sdk._serving.flow_result import FlowResult + +from flask import g, request + from promptflow._utils.exception_utils import ErrorResponse -from flask import request, g +from promptflow.core._serving.flow_result import FlowResult +from promptflow.core._serving.monitor.data_collector import FlowDataCollector +from promptflow.core._serving.monitor.metrics import MetricsRecorder, ResponseType +from promptflow.core._serving.monitor.streaming_monitor import StreamingMonitor +from promptflow.core._serving.utils import get_cost_up_to_now, streaming_response_required class FlowMonitor: """FlowMonitor is used to collect metrics & data for promptflow serving.""" - def __init__(self, - logger, - default_flow_name, - data_collector: FlowDataCollector, - custom_dimensions: Dict[str, str], - metric_exporters=None, - trace_exporters=None): + def __init__( + self, + logger, + default_flow_name, + data_collector: FlowDataCollector, + custom_dimensions: Dict[str, str], + metric_exporters=None, + trace_exporters=None, + ): self.data_collector = data_collector self.logger = logger self.metrics_recorder = self.setup_metrics_recorder(custom_dimensions, metric_exporters) @@ -32,6 +36,7 @@ def __init__(self, def setup_metrics_recorder(self, custom_dimensions, metric_exporters): if metric_exporters: from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader + exporter_names = [n.__class__.__name__ for n in metric_exporters] self.logger.info(f"Enable {len(metric_exporters)} metric exporters: {exporter_names}.") readers = [] diff --git a/src/promptflow/promptflow/_sdk/_serving/monitor/mdc_exporter.py b/src/promptflow/promptflow/core/_serving/monitor/mdc_exporter.py similarity index 100% rename from src/promptflow/promptflow/_sdk/_serving/monitor/mdc_exporter.py rename to src/promptflow/promptflow/core/_serving/monitor/mdc_exporter.py diff --git a/src/promptflow/promptflow/_sdk/_serving/monitor/metrics.py b/src/promptflow/promptflow/core/_serving/monitor/metrics.py similarity index 99% rename from src/promptflow/promptflow/_sdk/_serving/monitor/metrics.py rename to src/promptflow/promptflow/core/_serving/monitor/metrics.py index 365f91c0136..39deea9ae5d 100644 --- a/src/promptflow/promptflow/_sdk/_serving/monitor/metrics.py +++ b/src/promptflow/promptflow/core/_serving/monitor/metrics.py @@ -3,12 +3,11 @@ # --------------------------------------------------------- from enum import Enum -from typing import Dict, Sequence, Set, List, Any +from typing import Any, Dict, List, Sequence, Set from promptflow._utils.exception_utils import ErrorResponse from promptflow.contracts.run_info import FlowRunInfo, RunInfo, Status - # define metrics dimension keys FLOW_KEY = "flow" RUN_STATUS_KEY = "run_status" diff --git a/src/promptflow/promptflow/_sdk/_serving/monitor/streaming_monitor.py b/src/promptflow/promptflow/core/_serving/monitor/streaming_monitor.py similarity index 94% rename from src/promptflow/promptflow/_sdk/_serving/monitor/streaming_monitor.py rename to src/promptflow/promptflow/core/_serving/monitor/streaming_monitor.py index cca9b46cdb8..a559e435278 100644 --- a/src/promptflow/promptflow/_sdk/_serving/monitor/streaming_monitor.py +++ b/src/promptflow/promptflow/core/_serving/monitor/streaming_monitor.py @@ -2,8 +2,8 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -from promptflow._sdk._serving.utils import get_cost_up_to_now -from promptflow._sdk._serving.monitor.metrics import ResponseType +from promptflow.core._serving.monitor.metrics import ResponseType +from promptflow.core._serving.utils import get_cost_up_to_now class StreamingMonitor: diff --git a/src/promptflow/promptflow/_sdk/_serving/resources/feedback_swagger.json b/src/promptflow/promptflow/core/_serving/resources/feedback_swagger.json similarity index 99% rename from src/promptflow/promptflow/_sdk/_serving/resources/feedback_swagger.json rename to src/promptflow/promptflow/core/_serving/resources/feedback_swagger.json index da07f19b1f3..04cc096158a 100644 --- a/src/promptflow/promptflow/_sdk/_serving/resources/feedback_swagger.json +++ b/src/promptflow/promptflow/core/_serving/resources/feedback_swagger.json @@ -44,4 +44,4 @@ } } ] -} \ No newline at end of file +} diff --git a/src/promptflow/promptflow/_sdk/_serving/response_creator.py b/src/promptflow/promptflow/core/_serving/response_creator.py similarity index 98% rename from src/promptflow/promptflow/_sdk/_serving/response_creator.py rename to src/promptflow/promptflow/core/_serving/response_creator.py index fc9c745e437..5405aa9e9b8 100644 --- a/src/promptflow/promptflow/_sdk/_serving/response_creator.py +++ b/src/promptflow/promptflow/core/_serving/response_creator.py @@ -10,7 +10,7 @@ from werkzeug.datastructures import MIMEAccept from promptflow._constants import DEFAULT_OUTPUT_NAME -from promptflow._sdk._serving._errors import MultipleStreamOutputFieldsNotSupported, NotAcceptable +from promptflow.core._serving._errors import MultipleStreamOutputFieldsNotSupported, NotAcceptable class ResponseCreator: diff --git a/src/promptflow/promptflow/_sdk/_serving/static/index.html b/src/promptflow/promptflow/core/_serving/static/index.html similarity index 100% rename from src/promptflow/promptflow/_sdk/_serving/static/index.html rename to src/promptflow/promptflow/core/_serving/static/index.html diff --git a/src/promptflow/promptflow/_sdk/_serving/static/index.js b/src/promptflow/promptflow/core/_serving/static/index.js similarity index 99% rename from src/promptflow/promptflow/_sdk/_serving/static/index.js rename to src/promptflow/promptflow/core/_serving/static/index.js index 67d8e0adb2d..8a1430886fe 100644 --- a/src/promptflow/promptflow/_sdk/_serving/static/index.js +++ b/src/promptflow/promptflow/core/_serving/static/index.js @@ -29,7 +29,7 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */var mE=function(e,t){return mE=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(n[o]=r[o])},mE(e,t)};function yi(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");mE(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var oe=function(){return oe=Object.assign||function(t){for(var n,r=1,o=arguments.length;r=0;s--)(a=e[s])&&(i=(o<3?a(i):o>3?a(t,n,i):a(t,n))||i);return o>3&&i&&Object.defineProperty(t,n,i),i}function Yi(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,i;r"u"?j1.none:j1.insertNode,defaultPrefix:"css",namespace:void 0,cspSettings:void 0},t),this._classNameToArgs=(r=n==null?void 0:n.classNameToArgs)!==null&&r!==void 0?r:this._classNameToArgs,this._counter=(o=n==null?void 0:n.counter)!==null&&o!==void 0?o:this._counter,this._keyToClassName=(a=(i=this._config.classNameCache)!==null&&i!==void 0?i:n==null?void 0:n.keyToClassName)!==null&&a!==void 0?a:this._keyToClassName,this._preservedRules=(s=n==null?void 0:n.preservedRules)!==null&&s!==void 0?s:this._preservedRules,this._rules=(l=n==null?void 0:n.rules)!==null&&l!==void 0?l:this._rules}return e.getInstance=function(){if(vf=Lf[V8],!vf||vf._lastStyleElement&&vf._lastStyleElement.ownerDocument!==document){var t=(Lf==null?void 0:Lf.FabricConfig)||{},n=new e(t.mergeStyles,t.serializedStylesheet);vf=n,Lf[V8]=n}return vf},e.prototype.serialize=function(){return JSON.stringify({classNameToArgs:this._classNameToArgs,counter:this._counter,keyToClassName:this._keyToClassName,preservedRules:this._preservedRules,rules:this._rules})},e.prototype.setConfig=function(t){this._config=oe(oe({},this._config),t)},e.prototype.onReset=function(t){var n=this;return this._onResetCallbacks.push(t),function(){n._onResetCallbacks=n._onResetCallbacks.filter(function(r){return r!==t})}},e.prototype.onInsertRule=function(t){var n=this;return this._onInsertRuleCallbacks.push(t),function(){n._onInsertRuleCallbacks=n._onInsertRuleCallbacks.filter(function(r){return r!==t})}},e.prototype.getClassName=function(t){var n=this._config.namespace,r=t||this._config.defaultPrefix;return(n?n+"-":"")+r+"-"+this._counter++},e.prototype.cacheClassName=function(t,n,r,o){this._keyToClassName[n]=t,this._classNameToArgs[t]={args:r,rules:o}},e.prototype.classNameFromKey=function(t){return this._keyToClassName[t]},e.prototype.getClassNameCache=function(){return this._keyToClassName},e.prototype.argsFromClassName=function(t){var n=this._classNameToArgs[t];return n&&n.args},e.prototype.insertedRulesFromClassName=function(t){var n=this._classNameToArgs[t];return n&&n.rules},e.prototype.insertRule=function(t,n){var r=this._config.injectionMode,o=r!==j1.none?this._getStyleElement():void 0;if(n&&this._preservedRules.push(t),o)switch(r){case j1.insertNode:var i=o.sheet;try{i.insertRule(t,i.cssRules.length)}catch{}break;case j1.appendChild:o.appendChild(document.createTextNode(t));break}else this._rules.push(t);this._config.onInsertRule&&this._config.onInsertRule(t),this._onInsertRuleCallbacks.forEach(function(a){return a()})},e.prototype.getRules=function(t){return(t?this._preservedRules.join(""):"")+this._rules.join("")},e.prototype.reset=function(){this._rules=[],this._counter=0,this._classNameToArgs={},this._keyToClassName={},this._onResetCallbacks.forEach(function(t){return t()})},e.prototype.resetKeys=function(){this._keyToClassName={}},e.prototype._getStyleElement=function(){var t=this;return!this._styleElement&&typeof document<"u"&&(this._styleElement=this._createStyleElement(),bG||window.requestAnimationFrame(function(){t._styleElement=void 0})),this._styleElement},e.prototype._createStyleElement=function(){var t=document.head,n=document.createElement("style"),r=null;n.setAttribute("data-merge-styles","true");var o=this._config.cspSettings;if(o&&o.nonce&&n.setAttribute("nonce",o.nonce),this._lastStyleElement)r=this._lastStyleElement.nextElementSibling;else{var i=this._findPlaceholderStyleTag();i?r=i.nextElementSibling:r=t.childNodes[0]}return t.insertBefore(n,t.contains(r)?r:null),this._lastStyleElement=n,n},e.prototype._findPlaceholderStyleTag=function(){var t=document.head;return t?t.querySelector("style[data-merge-styles]"):null},e}();function mF(){for(var e=[],t=0;t=0)i(u.split(" "));else{var d=o.argsFromClassName(u);d?i(d):n.indexOf(u)===-1&&n.push(u)}else Array.isArray(u)?i(u):typeof u=="object"&&r.push(u)}}return i(e),{classes:n,objects:r}}function gF(e){cd!==e&&(cd=e)}function vF(){return cd===void 0&&(cd=typeof document<"u"&&!!document.documentElement&&document.documentElement.getAttribute("dir")==="rtl"),cd}var cd;cd=vF();function Eb(){return{rtl:vF()}}var Y8={};function yG(e,t){var n=e[t];n.charAt(0)!=="-"&&(e[t]=Y8[n]=Y8[n]||n.replace(/([A-Z])/g,"-$1").toLowerCase())}var vm;function EG(){var e;if(!vm){var t=typeof document<"u"?document:void 0,n=typeof navigator<"u"?navigator:void 0,r=(e=n==null?void 0:n.userAgent)===null||e===void 0?void 0:e.toLowerCase();t?vm={isWebkit:!!(t&&"WebkitAppearance"in t.documentElement.style),isMoz:!!(r&&r.indexOf("firefox")>-1),isOpera:!!(r&&r.indexOf("opera")>-1),isMs:!!(n&&(/rv:11.0/i.test(n.userAgent)||/Edge\/\d./i.test(navigator.userAgent)))}:vm={isWebkit:!0,isMoz:!0,isOpera:!0,isMs:!0}}return vm}var Q8={"user-select":1};function _G(e,t){var n=EG(),r=e[t];if(Q8[r]){var o=e[t+1];Q8[r]&&(n.isWebkit&&e.push("-webkit-"+r,o),n.isMoz&&e.push("-moz-"+r,o),n.isMs&&e.push("-ms-"+r,o),n.isOpera&&e.push("-o-"+r,o))}}var TG=["column-count","font-weight","flex","flex-grow","flex-shrink","fill-opacity","opacity","order","z-index","zoom"];function wG(e,t){var n=e[t],r=e[t+1];if(typeof r=="number"){var o=TG.indexOf(n)>-1,i=n.indexOf("--")>-1,a=o||i?"":"px";e[t+1]=""+r+a}}var bm,Wl="left",Gl="right",kG="@noflip",X8=(bm={},bm[Wl]=Gl,bm[Gl]=Wl,bm),Z8={"w-resize":"e-resize","sw-resize":"se-resize","nw-resize":"ne-resize"};function SG(e,t,n){if(e.rtl){var r=t[n];if(!r)return;var o=t[n+1];if(typeof o=="string"&&o.indexOf(kG)>=0)t[n+1]=o.replace(/\s*(?:\/\*\s*)?\@noflip\b(?:\s*\*\/)?\s*?/g,"");else if(r.indexOf(Wl)>=0)t[n]=r.replace(Wl,Gl);else if(r.indexOf(Gl)>=0)t[n]=r.replace(Gl,Wl);else if(String(o).indexOf(Wl)>=0)t[n+1]=o.replace(Wl,Gl);else if(String(o).indexOf(Gl)>=0)t[n+1]=o.replace(Gl,Wl);else if(X8[r])t[n]=X8[r];else if(Z8[o])t[n+1]=Z8[o];else switch(r){case"margin":case"padding":t[n+1]=CG(o);break;case"box-shadow":t[n+1]=xG(o,0);break}}}function xG(e,t){var n=e.split(" "),r=parseInt(n[t],10);return n[0]=n[0].replace(String(r),String(r*-1)),n.join(" ")}function CG(e){if(typeof e=="string"){var t=e.split(" ");if(t.length===4)return t[0]+" "+t[3]+" "+t[2]+" "+t[1]}return e}function AG(e){for(var t=[],n=0,r=0,o=0;on&&t.push(e.substring(n,o)),n=o+1);break}return n-1&&t.push([r.index,r.index+r[0].length,r[1].split(",").map(function(o){return":global("+o.trim()+")"}).join(", ")]);return t.reverse().reduce(function(o,i){var a=i[0],s=i[1],l=i[2],u=o.slice(0,a),d=o.slice(s);return u+l+d},e)}function J8(e,t){return e.indexOf(":global(")>=0?e.replace(bF,"$1"):e.indexOf(":")===0?t+e:e.indexOf("&")<0?t+" "+e:e}function ex(e,t,n,r){t===void 0&&(t={__order:[]}),n.indexOf("@")===0?(n=n+"{"+e,fd([r],t,n)):n.indexOf(",")>-1?IG(n).split(",").map(function(o){return o.trim()}).forEach(function(o){return fd([r],t,J8(o,e))}):fd([r],t,J8(n,e))}function fd(e,t,n){t===void 0&&(t={__order:[]}),n===void 0&&(n="&");var r=Qi.getInstance(),o=t[n];o||(o={},t[n]=o,t.__order.push(n));for(var i=0,a=e;i0){n.subComponentStyles={};var p=n.subComponentStyles,m=function(v){if(r.hasOwnProperty(v)){var _=r[v];p[v]=function(b){return jc.apply(void 0,_.map(function(E){return typeof E=="function"?E(b):E}))}}};for(var u in r)m(u)}return n}function q0(){for(var e=[],t=0;t"u")){var t=e;return t&&t.ownerDocument&&t.ownerDocument.defaultView?t.ownerDocument.defaultView:gE}}var _b=function(){function e(t,n){this._timeoutIds=null,this._immediateIds=null,this._intervalIds=null,this._animationFrameIds=null,this._isDisposed=!1,this._parent=t||null,this._onErrorHandler=n,this._noop=function(){}}return e.prototype.dispose=function(){var t;if(this._isDisposed=!0,this._parent=null,this._timeoutIds){for(t in this._timeoutIds)this._timeoutIds.hasOwnProperty(t)&&this.clearTimeout(parseInt(t,10));this._timeoutIds=null}if(this._immediateIds){for(t in this._immediateIds)this._immediateIds.hasOwnProperty(t)&&this.clearImmediate(parseInt(t,10));this._immediateIds=null}if(this._intervalIds){for(t in this._intervalIds)this._intervalIds.hasOwnProperty(t)&&this.clearInterval(parseInt(t,10));this._intervalIds=null}if(this._animationFrameIds){for(t in this._animationFrameIds)this._animationFrameIds.hasOwnProperty(t)&&this.cancelAnimationFrame(parseInt(t,10));this._animationFrameIds=null}},e.prototype.setTimeout=function(t,n){var r=this,o=0;return this._isDisposed||(this._timeoutIds||(this._timeoutIds={}),o=setTimeout(function(){try{r._timeoutIds&&delete r._timeoutIds[o],t.apply(r._parent)}catch(i){r._logError(i)}},n),this._timeoutIds[o]=!0),o},e.prototype.clearTimeout=function(t){this._timeoutIds&&this._timeoutIds[t]&&(clearTimeout(t),delete this._timeoutIds[t])},e.prototype.setImmediate=function(t,n){var r=this,o=0,i=ur(n);if(!this._isDisposed){this._immediateIds||(this._immediateIds={});var a=function(){try{r._immediateIds&&delete r._immediateIds[o],t.apply(r._parent)}catch(s){r._logError(s)}};o=i.setTimeout(a,0),this._immediateIds[o]=!0}return o},e.prototype.clearImmediate=function(t,n){var r=ur(n);this._immediateIds&&this._immediateIds[t]&&(r.clearTimeout(t),delete this._immediateIds[t])},e.prototype.setInterval=function(t,n){var r=this,o=0;return this._isDisposed||(this._intervalIds||(this._intervalIds={}),o=setInterval(function(){try{t.apply(r._parent)}catch(i){r._logError(i)}},n),this._intervalIds[o]=!0),o},e.prototype.clearInterval=function(t){this._intervalIds&&this._intervalIds[t]&&(clearInterval(t),delete this._intervalIds[t])},e.prototype.throttle=function(t,n,r){var o=this;if(this._isDisposed)return this._noop;var i=n||0,a=!0,s=!0,l=0,u,d,h=null;r&&typeof r.leading=="boolean"&&(a=r.leading),r&&typeof r.trailing=="boolean"&&(s=r.trailing);var p=function(v){var _=Date.now(),b=_-l,E=a?i-b:i;return b>=i&&(!v||a)?(l=_,h&&(o.clearTimeout(h),h=null),u=t.apply(o._parent,d)):h===null&&s&&(h=o.setTimeout(p,E)),u},m=function(){for(var v=[],_=0;_=a&&(P=!0),d=A);var I=A-d,j=a-I,H=A-h,K=!1;return u!==null&&(H>=u&&v?K=!0:j=Math.min(j,u-H)),I>=a||K||P?b(A):(v===null||!C)&&l&&(v=o.setTimeout(E,j)),p},w=function(){return!!v},k=function(){w()&&_(Date.now())},y=function(){return w()&&b(Date.now()),p},F=function(){for(var C=[],A=0;A-1)for(var a=n.split(/[ ,]+/),s=0;s"u")){var t=e;return t&&t.ownerDocument?t.ownerDocument:document}}var Z5;Fo({overflow:"hidden !important"});function MG(){if(Z5===void 0){var e=document.createElement("div");e.style.setProperty("width","100px"),e.style.setProperty("height","100px"),e.style.setProperty("overflow","scroll"),e.style.setProperty("position","absolute"),e.style.setProperty("top","-9999px"),document.body.appendChild(e),Z5=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return Z5}var LG=void 0;function xF(e){console&&console.warn&&console.warn(e)}function CF(e,t,n,r,o){if(o===!0&&!1)for(var i,a;i1?r[1]:""}return this.__className},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"_disposables",{get:function(){return this.__disposables||(this.__disposables=[]),this.__disposables},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"_async",{get:function(){return this.__async||(this.__async=new _b(this),this._disposables.push(this.__async)),this.__async},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"_events",{get:function(){return this.__events||(this.__events=new Ws(this),this._disposables.push(this.__events)),this.__events},enumerable:!1,configurable:!0}),t.prototype._resolveRef=function(n){var r=this;return this.__resolves||(this.__resolves={}),this.__resolves[n]||(this.__resolves[n]=function(o){return r[n]=o}),this.__resolves[n]},t.prototype._updateComponentRef=function(n,r){r===void 0&&(r={}),n&&r&&n.componentRef!==r.componentRef&&(this._setComponentRef(n.componentRef,null),this._setComponentRef(r.componentRef,this))},t.prototype._warnDeprecations=function(n){this.className,this.props},t.prototype._warnMutuallyExclusive=function(n){this.className,this.props},t.prototype._warnConditionallyRequiredProps=function(n,r,o){CF(this.className,this.props,n,r,o)},t.prototype._setComponentRef=function(n,r){!this._skipComponentRefResolution&&n&&(typeof n=="function"&&n(r),typeof n=="object"&&(n.current=r))},t})(T.Component);function jG(e,t,n){for(var r=0,o=n.length;r-1&&o._virtual.children.splice(i,1)}n._virtual.parent=r||void 0,r&&(r._virtual||(r._virtual={children:[]}),r._virtual.children.push(n))}var JG="data-is-focusable",eK="data-is-visible",tK="data-focuszone-id",nK="data-is-sub-focuszone";function rK(e,t,n){return xh(e,t,!0,!1,!1,n)}function oK(e,t,n){return jf(e,t,!0,!1,!0,n)}function iK(e){var t=xh(e,e,!0,!1,!1,!0);return t?(lK(t),!0):!1}function jf(e,t,n,r,o,i,a,s){if(!t||!a&&t===e)return null;var l=RF(t);if(o&&l&&(i||!(OF(t)||DF(t)))){var u=jf(e,t.lastElementChild,!0,!0,!0,i,a,s);if(u){if(s&&EE(u,!0)||!s)return u;var d=jf(e,u.previousElementSibling,!0,!0,!0,i,a,s);if(d)return d;for(var h=u.parentElement;h&&h!==t;){var p=jf(e,h.previousElementSibling,!0,!0,!0,i,a,s);if(p)return p;h=h.parentElement}}}if(n&&l&&EE(t,s))return t;var m=jf(e,t.previousElementSibling,!0,!0,!0,i,a,s);return m||(r?null:jf(e,t.parentElement,!0,!1,!1,i,a,s))}function xh(e,t,n,r,o,i,a,s){if(!t||t===e&&o&&!a)return null;var l=RF(t);if(n&&l&&EE(t,s))return t;if(!o&&l&&(i||!(OF(t)||DF(t)))){var u=xh(e,t.firstElementChild,!0,!0,!1,i,a,s);if(u)return u}if(t===e)return null;var d=xh(e,t.nextElementSibling,!0,!0,!1,i,a,s);return d||(r?null:xh(e,t.parentElement,!1,!1,!0,i,a,s))}function RF(e){if(!e||!e.getAttribute)return!1;var t=e.getAttribute(eK);return t!=null?t==="true":e.offsetHeight!==0||e.offsetParent!==null||e.isVisible===!0}function EE(e,t){if(!e||e.disabled)return!1;var n=0,r=null;e&&e.getAttribute&&(r=e.getAttribute("tabIndex"),r&&(n=parseInt(r,10)));var o=e.getAttribute?e.getAttribute(JG):null,i=r!==null&&n>=0,a=!!e&&o!=="false"&&(e.tagName==="A"||e.tagName==="BUTTON"||e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.tagName==="SELECT"||o==="true"||i);return t?n!==-1&&a:a}function OF(e){return!!(e&&e.getAttribute&&e.getAttribute(tK))}function DF(e){return!!(e&&e.getAttribute&&e.getAttribute(nK)==="true")}function aK(e){var t=ss(e),n=t&&t.activeElement;return!!(n&&bE(e,n))}function sK(e,t){return YG(e,t)!=="true"}var bf=void 0;function lK(e){if(e){if(bf){bf=e;return}bf=e;var t=ur(e);t&&t.requestAnimationFrame(function(){bf&&bf.focus(),bf=void 0})}}function zf(e,t,n,r){return e.addEventListener(t,n,r),function(){return e.removeEventListener(t,n,r)}}var uK=50,cK=5,yg=0,e2=Qi.getInstance();e2&&e2.onReset&&e2.onReset(function(){return yg++});var ym="__retval__";function ml(e){e===void 0&&(e={});var t=new Map,n=0,r=0,o=yg,i=function(a,s){var l;if(s===void 0&&(s={}),e.useStaticStyles&&typeof a=="function"&&a.__noStyleOverride__)return a(s);r++;var u=t,d=s.theme,h=d&&d.rtl!==void 0?d.rtl:ls(),p=e.disableCaching;if(o!==yg&&(o=yg,t=new Map,n=0),e.disableCaching||(u=nx(t,a),u=nx(u,s)),(p||!u[ym])&&(a===void 0?u[ym]={}:u[ym]=wF([typeof a=="function"?a(s):a],{rtl:!!h,specificityMultiplier:e.useStaticStyles?cK:void 0}),p||n++),n>(e.cacheSize||uK)){var m=ur();!((l=m==null?void 0:m.FabricConfig)===null||l===void 0)&&l.enableClassNameCacheFullWarning&&(console.warn("Styles are being recalculated too frequently. Cache miss rate is "+n+"/"+r+"."),console.trace()),t.clear(),n=0,e.disableCaching=!0}return u[ym]};return i}function t2(e,t){return t=fK(t),e.has(t)||e.set(t,new Map),e.get(t)}function nx(e,t){if(typeof t=="function"){var n=t.__cachedInputs__;if(n)for(var r=0,o=t.__cachedInputs__;r"u"?null:WeakMap;function hK(){Eg++}function Cr(e,t,n){if(t===void 0&&(t=100),n===void 0&&(n=!1),!r0)return e;if(!rx){var r=Qi.getInstance();r&&r.onReset&&Qi.getInstance().onReset(hK),rx=!0}var o,i=0,a=Eg;return function(){for(var l=[],u=0;u0&&i>t)&&(o=ox(),i=0,a=Eg),d=o;for(var h=0;h=0||l.indexOf("data-")===0||l.indexOf("aria-")===0;u&&(!n||(n==null?void 0:n.indexOf(l))===-1)&&(o[l]=e[l])}return o}function Tb(e){NK(e,{componentDidMount:PK,componentDidUpdate:MK,componentWillUnmount:LK})}function PK(){av(this.props.componentRef,this)}function MK(e){e.componentRef!==this.props.componentRef&&(av(e.componentRef,null),av(this.props.componentRef,this))}function LK(){av(this.props.componentRef,null)}function av(e,t){e&&(typeof e=="object"?e.current=t:typeof e=="function"&&e(t))}var ca,jK=(ca={},ca[qt.up]=1,ca[qt.down]=1,ca[qt.left]=1,ca[qt.right]=1,ca[qt.home]=1,ca[qt.end]=1,ca[qt.tab]=1,ca[qt.pageUp]=1,ca[qt.pageDown]=1,ca);function zK(e){return!!jK[e]}var Go="ms-Fabric--isFocusVisible",ax="ms-Fabric--isFocusHidden";function dd(e,t){var n=t?ur(t):ur();if(n){var r=n.document.body.classList;r.add(e?Go:ax),r.remove(e?ax:Go)}}var sx=new WeakMap;function lx(e,t){var n,r=sx.get(e);return r?n=r+t:n=1,sx.set(e,n),n}function jF(e){T.useEffect(function(){var t,n=ur(e==null?void 0:e.current);if(!(!n||((t=n.FabricConfig)===null||t===void 0?void 0:t.disableFocusRects)===!0)){var r=lx(n,1);return r<=1&&(n.addEventListener("mousedown",ux,!0),n.addEventListener("pointerdown",cx,!0),n.addEventListener("keydown",fx,!0)),function(){var o;!n||((o=n.FabricConfig)===null||o===void 0?void 0:o.disableFocusRects)===!0||(r=lx(n,-1),r===0&&(n.removeEventListener("mousedown",ux,!0),n.removeEventListener("pointerdown",cx,!0),n.removeEventListener("keydown",fx,!0)))}}},[e])}var HK=function(e){return jF(e.rootRef),null};function ux(e){dd(!1,e.target)}function cx(e){e.pointerType!=="mouse"&&dd(!1,e.target)}function fx(e){zK(e.which)&&dd(!0,e.target)}function UK(e){var t=null;try{var n=ur();t=n?n.localStorage.getItem(e):null}catch{}return t}var tc,dx="language";function qK(e){if(e===void 0&&(e="sessionStorage"),tc===void 0){var t=ss(),n=e==="localStorage"?UK(dx):e==="sessionStorage"?FF(dx):void 0;n&&(tc=n),tc===void 0&&t&&(tc=t.documentElement.getAttribute("lang")),tc===void 0&&(tc="en")}return tc}function hx(e){for(var t=[],n=1;n-1;e[r]=i?o:zF(e[r]||{},o,n)}else e[r]=o}return n.pop(),e}var px=function(){return!window||!window.navigator||!window.navigator.userAgent?!1:/iPad|iPhone|iPod/i.test(window.navigator.userAgent)},$K=["TEMPLATE","STYLE","SCRIPT"];function WK(e){var t=ss(e);if(!t)return function(){};for(var n=[];e!==t.body&&e.parentElement;){for(var r=0,o=e.parentElement.children;r"u"||e){var n=ur(),r=(t=n==null?void 0:n.navigator)===null||t===void 0?void 0:t.userAgent;r2=!!r&&r.indexOf("Macintosh")!==-1}return!!r2}function KK(e){var t=Od(function(n){var r=Od(function(o){return function(i){return n(i,o)}});return function(o,i){return e(o,i?r(i):n)}});return t}var VK=Od(KK);function HF(e,t){return VK(e)(t)}var YK=["theme","styles"];function gl(e,t,n,r,o){r=r||{scope:"",fields:void 0};var i=r.scope,a=r.fields,s=a===void 0?YK:a,l=T.forwardRef(function(d,h){var p=T.useRef(),m=CK(s,i),v=m.styles;m.dir;var _=pl(m,["styles","dir"]),b=n?n(d):void 0,E=p.current&&p.current.__cachedInputs__||[],w=d.styles;if(!p.current||v!==E[1]||w!==E[2]){var k=function(y){return kF(y,t,v,w)};k.__cachedInputs__=[t,v,w],k.__noStyleOverride__=!v&&!w,p.current=k}return T.createElement(e,oe({ref:h},_,b,d,{styles:p.current}))});l.displayName="Styled"+(e.displayName||e.name);var u=o?T.memo(l):l;return l.displayName&&(u.displayName=l.displayName),u}function S4(e,t){for(var n=oe({},t),r=0,o=Object.keys(e);r=0;s--)(a=e[s])&&(i=(o<3?a(i):o>3?a(t,n,i):a(t,n))||i);return o>3&&i&&Object.defineProperty(t,n,i),i}function Yi(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,i;r"u"?j1.none:j1.insertNode,defaultPrefix:"css",namespace:void 0,cspSettings:void 0},t),this._classNameToArgs=(r=n==null?void 0:n.classNameToArgs)!==null&&r!==void 0?r:this._classNameToArgs,this._counter=(o=n==null?void 0:n.counter)!==null&&o!==void 0?o:this._counter,this._keyToClassName=(a=(i=this._config.classNameCache)!==null&&i!==void 0?i:n==null?void 0:n.keyToClassName)!==null&&a!==void 0?a:this._keyToClassName,this._preservedRules=(s=n==null?void 0:n.preservedRules)!==null&&s!==void 0?s:this._preservedRules,this._rules=(l=n==null?void 0:n.rules)!==null&&l!==void 0?l:this._rules}return e.getInstance=function(){if(vf=Lf[V8],!vf||vf._lastStyleElement&&vf._lastStyleElement.ownerDocument!==document){var t=(Lf==null?void 0:Lf.FabricConfig)||{},n=new e(t.mergeStyles,t.serializedStylesheet);vf=n,Lf[V8]=n}return vf},e.prototype.serialize=function(){return JSON.stringify({classNameToArgs:this._classNameToArgs,counter:this._counter,keyToClassName:this._keyToClassName,preservedRules:this._preservedRules,rules:this._rules})},e.prototype.setConfig=function(t){this._config=oe(oe({},this._config),t)},e.prototype.onReset=function(t){var n=this;return this._onResetCallbacks.push(t),function(){n._onResetCallbacks=n._onResetCallbacks.filter(function(r){return r!==t})}},e.prototype.onInsertRule=function(t){var n=this;return this._onInsertRuleCallbacks.push(t),function(){n._onInsertRuleCallbacks=n._onInsertRuleCallbacks.filter(function(r){return r!==t})}},e.prototype.getClassName=function(t){var n=this._config.namespace,r=t||this._config.defaultPrefix;return(n?n+"-":"")+r+"-"+this._counter++},e.prototype.cacheClassName=function(t,n,r,o){this._keyToClassName[n]=t,this._classNameToArgs[t]={args:r,rules:o}},e.prototype.classNameFromKey=function(t){return this._keyToClassName[t]},e.prototype.getClassNameCache=function(){return this._keyToClassName},e.prototype.argsFromClassName=function(t){var n=this._classNameToArgs[t];return n&&n.args},e.prototype.insertedRulesFromClassName=function(t){var n=this._classNameToArgs[t];return n&&n.rules},e.prototype.insertRule=function(t,n){var r=this._config.injectionMode,o=r!==j1.none?this._getStyleElement():void 0;if(n&&this._preservedRules.push(t),o)switch(r){case j1.insertNode:var i=o.sheet;try{i.insertRule(t,i.cssRules.length)}catch{}break;case j1.appendChild:o.appendChild(document.createTextNode(t));break}else this._rules.push(t);this._config.onInsertRule&&this._config.onInsertRule(t),this._onInsertRuleCallbacks.forEach(function(a){return a()})},e.prototype.getRules=function(t){return(t?this._preservedRules.join(""):"")+this._rules.join("")},e.prototype.reset=function(){this._rules=[],this._counter=0,this._classNameToArgs={},this._keyToClassName={},this._onResetCallbacks.forEach(function(t){return t()})},e.prototype.resetKeys=function(){this._keyToClassName={}},e.prototype._getStyleElement=function(){var t=this;return!this._styleElement&&typeof document<"u"&&(this._styleElement=this._createStyleElement(),bG||window.requestAnimationFrame(function(){t._styleElement=void 0})),this._styleElement},e.prototype._createStyleElement=function(){var t=document.head,n=document.createElement("style"),r=null;n.setAttribute("data-merge-styles","true");var o=this._config.cspSettings;if(o&&o.nonce&&n.setAttribute("nonce",o.nonce),this._lastStyleElement)r=this._lastStyleElement.nextElementSibling;else{var i=this._findPlaceholderStyleTag();i?r=i.nextElementSibling:r=t.childNodes[0]}return t.insertBefore(n,t.contains(r)?r:null),this._lastStyleElement=n,n},e.prototype._findPlaceholderStyleTag=function(){var t=document.head;return t?t.querySelector("style[data-merge-styles]"):null},e}();function mF(){for(var e=[],t=0;t=0)i(u.split(" "));else{var d=o.argsFromClassName(u);d?i(d):n.indexOf(u)===-1&&n.push(u)}else Array.isArray(u)?i(u):typeof u=="object"&&r.push(u)}}return i(e),{classes:n,objects:r}}function gF(e){cd!==e&&(cd=e)}function vF(){return cd===void 0&&(cd=typeof document<"u"&&!!document.documentElement&&document.documentElement.getAttribute("dir")==="rtl"),cd}var cd;cd=vF();function Eb(){return{rtl:vF()}}var Y8={};function yG(e,t){var n=e[t];n.charAt(0)!=="-"&&(e[t]=Y8[n]=Y8[n]||n.replace(/([A-Z])/g,"-$1").toLowerCase())}var vm;function EG(){var e;if(!vm){var t=typeof document<"u"?document:void 0,n=typeof navigator<"u"?navigator:void 0,r=(e=n==null?void 0:n.userAgent)===null||e===void 0?void 0:e.toLowerCase();t?vm={isWebkit:!!(t&&"WebkitAppearance"in t.documentElement.style),isMoz:!!(r&&r.indexOf("firefox")>-1),isOpera:!!(r&&r.indexOf("opera")>-1),isMs:!!(n&&(/rv:11.0/i.test(n.userAgent)||/Edge\/\d./i.test(navigator.userAgent)))}:vm={isWebkit:!0,isMoz:!0,isOpera:!0,isMs:!0}}return vm}var Q8={"user-select":1};function _G(e,t){var n=EG(),r=e[t];if(Q8[r]){var o=e[t+1];Q8[r]&&(n.isWebkit&&e.push("-webkit-"+r,o),n.isMoz&&e.push("-moz-"+r,o),n.isMs&&e.push("-ms-"+r,o),n.isOpera&&e.push("-o-"+r,o))}}var TG=["column-count","font-weight","flex","flex-grow","flex-shrink","fill-opacity","opacity","order","z-index","zoom"];function wG(e,t){var n=e[t],r=e[t+1];if(typeof r=="number"){var o=TG.indexOf(n)>-1,i=n.indexOf("--")>-1,a=o||i?"":"px";e[t+1]=""+r+a}}var bm,Wl="left",Gl="right",kG="@noflip",X8=(bm={},bm[Wl]=Gl,bm[Gl]=Wl,bm),Z8={"w-resize":"e-resize","sw-resize":"se-resize","nw-resize":"ne-resize"};function SG(e,t,n){if(e.rtl){var r=t[n];if(!r)return;var o=t[n+1];if(typeof o=="string"&&o.indexOf(kG)>=0)t[n+1]=o.replace(/\s*(?:\/\*\s*)?\@noflip\b(?:\s*\*\/)?\s*?/g,"");else if(r.indexOf(Wl)>=0)t[n]=r.replace(Wl,Gl);else if(r.indexOf(Gl)>=0)t[n]=r.replace(Gl,Wl);else if(String(o).indexOf(Wl)>=0)t[n+1]=o.replace(Wl,Gl);else if(String(o).indexOf(Gl)>=0)t[n+1]=o.replace(Gl,Wl);else if(X8[r])t[n]=X8[r];else if(Z8[o])t[n+1]=Z8[o];else switch(r){case"margin":case"padding":t[n+1]=CG(o);break;case"box-shadow":t[n+1]=xG(o,0);break}}}function xG(e,t){var n=e.split(" "),r=parseInt(n[t],10);return n[0]=n[0].replace(String(r),String(r*-1)),n.join(" ")}function CG(e){if(typeof e=="string"){var t=e.split(" ");if(t.length===4)return t[0]+" "+t[3]+" "+t[2]+" "+t[1]}return e}function AG(e){for(var t=[],n=0,r=0,o=0;on&&t.push(e.substring(n,o)),n=o+1);break}return n-1&&t.push([r.index,r.index+r[0].length,r[1].split(",").map(function(o){return":global("+o.trim()+")"}).join(", ")]);return t.reverse().reduce(function(o,i){var a=i[0],s=i[1],l=i[2],u=o.slice(0,a),d=o.slice(s);return u+l+d},e)}function J8(e,t){return e.indexOf(":global(")>=0?e.replace(bF,"$1"):e.indexOf(":")===0?t+e:e.indexOf("&")<0?t+" "+e:e}function ex(e,t,n,r){t===void 0&&(t={__order:[]}),n.indexOf("@")===0?(n=n+"{"+e,fd([r],t,n)):n.indexOf(",")>-1?IG(n).split(",").map(function(o){return o.trim()}).forEach(function(o){return fd([r],t,J8(o,e))}):fd([r],t,J8(n,e))}function fd(e,t,n){t===void 0&&(t={__order:[]}),n===void 0&&(n="&");var r=Qi.getInstance(),o=t[n];o||(o={},t[n]=o,t.__order.push(n));for(var i=0,a=e;i0){n.subComponentStyles={};var p=n.subComponentStyles,m=function(v){if(r.hasOwnProperty(v)){var _=r[v];p[v]=function(b){return jc.apply(void 0,_.map(function(E){return typeof E=="function"?E(b):E}))}}};for(var u in r)m(u)}return n}function q0(){for(var e=[],t=0;t"u")){var t=e;return t&&t.ownerDocument&&t.ownerDocument.defaultView?t.ownerDocument.defaultView:gE}}var _b=function(){function e(t,n){this._timeoutIds=null,this._immediateIds=null,this._intervalIds=null,this._animationFrameIds=null,this._isDisposed=!1,this._parent=t||null,this._onErrorHandler=n,this._noop=function(){}}return e.prototype.dispose=function(){var t;if(this._isDisposed=!0,this._parent=null,this._timeoutIds){for(t in this._timeoutIds)this._timeoutIds.hasOwnProperty(t)&&this.clearTimeout(parseInt(t,10));this._timeoutIds=null}if(this._immediateIds){for(t in this._immediateIds)this._immediateIds.hasOwnProperty(t)&&this.clearImmediate(parseInt(t,10));this._immediateIds=null}if(this._intervalIds){for(t in this._intervalIds)this._intervalIds.hasOwnProperty(t)&&this.clearInterval(parseInt(t,10));this._intervalIds=null}if(this._animationFrameIds){for(t in this._animationFrameIds)this._animationFrameIds.hasOwnProperty(t)&&this.cancelAnimationFrame(parseInt(t,10));this._animationFrameIds=null}},e.prototype.setTimeout=function(t,n){var r=this,o=0;return this._isDisposed||(this._timeoutIds||(this._timeoutIds={}),o=setTimeout(function(){try{r._timeoutIds&&delete r._timeoutIds[o],t.apply(r._parent)}catch(i){r._logError(i)}},n),this._timeoutIds[o]=!0),o},e.prototype.clearTimeout=function(t){this._timeoutIds&&this._timeoutIds[t]&&(clearTimeout(t),delete this._timeoutIds[t])},e.prototype.setImmediate=function(t,n){var r=this,o=0,i=ur(n);if(!this._isDisposed){this._immediateIds||(this._immediateIds={});var a=function(){try{r._immediateIds&&delete r._immediateIds[o],t.apply(r._parent)}catch(s){r._logError(s)}};o=i.setTimeout(a,0),this._immediateIds[o]=!0}return o},e.prototype.clearImmediate=function(t,n){var r=ur(n);this._immediateIds&&this._immediateIds[t]&&(r.clearTimeout(t),delete this._immediateIds[t])},e.prototype.setInterval=function(t,n){var r=this,o=0;return this._isDisposed||(this._intervalIds||(this._intervalIds={}),o=setInterval(function(){try{t.apply(r._parent)}catch(i){r._logError(i)}},n),this._intervalIds[o]=!0),o},e.prototype.clearInterval=function(t){this._intervalIds&&this._intervalIds[t]&&(clearInterval(t),delete this._intervalIds[t])},e.prototype.throttle=function(t,n,r){var o=this;if(this._isDisposed)return this._noop;var i=n||0,a=!0,s=!0,l=0,u,d,h=null;r&&typeof r.leading=="boolean"&&(a=r.leading),r&&typeof r.trailing=="boolean"&&(s=r.trailing);var p=function(v){var _=Date.now(),b=_-l,E=a?i-b:i;return b>=i&&(!v||a)?(l=_,h&&(o.clearTimeout(h),h=null),u=t.apply(o._parent,d)):h===null&&s&&(h=o.setTimeout(p,E)),u},m=function(){for(var v=[],_=0;_=a&&(P=!0),d=A);var I=A-d,j=a-I,H=A-h,K=!1;return u!==null&&(H>=u&&v?K=!0:j=Math.min(j,u-H)),I>=a||K||P?b(A):(v===null||!C)&&l&&(v=o.setTimeout(E,j)),p},w=function(){return!!v},k=function(){w()&&_(Date.now())},y=function(){return w()&&b(Date.now()),p},F=function(){for(var C=[],A=0;A-1)for(var a=n.split(/[ ,]+/),s=0;s"u")){var t=e;return t&&t.ownerDocument?t.ownerDocument:document}}var Z5;Fo({overflow:"hidden !important"});function MG(){if(Z5===void 0){var e=document.createElement("div");e.style.setProperty("width","100px"),e.style.setProperty("height","100px"),e.style.setProperty("overflow","scroll"),e.style.setProperty("position","absolute"),e.style.setProperty("top","-9999px"),document.body.appendChild(e),Z5=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return Z5}var LG=void 0;function xF(e){console&&console.warn&&console.warn(e)}function CF(e,t,n,r,o){if(o===!0&&!1)for(var i,a;i1?r[1]:""}return this.__className},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"_disposables",{get:function(){return this.__disposables||(this.__disposables=[]),this.__disposables},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"_async",{get:function(){return this.__async||(this.__async=new _b(this),this._disposables.push(this.__async)),this.__async},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"_events",{get:function(){return this.__events||(this.__events=new Ws(this),this._disposables.push(this.__events)),this.__events},enumerable:!1,configurable:!0}),t.prototype._resolveRef=function(n){var r=this;return this.__resolves||(this.__resolves={}),this.__resolves[n]||(this.__resolves[n]=function(o){return r[n]=o}),this.__resolves[n]},t.prototype._updateComponentRef=function(n,r){r===void 0&&(r={}),n&&r&&n.componentRef!==r.componentRef&&(this._setComponentRef(n.componentRef,null),this._setComponentRef(r.componentRef,this))},t.prototype._warnDeprecations=function(n){this.className,this.props},t.prototype._warnMutuallyExclusive=function(n){this.className,this.props},t.prototype._warnConditionallyRequiredProps=function(n,r,o){CF(this.className,this.props,n,r,o)},t.prototype._setComponentRef=function(n,r){!this._skipComponentRefResolution&&n&&(typeof n=="function"&&n(r),typeof n=="object"&&(n.current=r))},t})(T.Component);function jG(e,t,n){for(var r=0,o=n.length;r-1&&o._virtual.children.splice(i,1)}n._virtual.parent=r||void 0,r&&(r._virtual||(r._virtual={children:[]}),r._virtual.children.push(n))}var JG="data-is-focusable",eK="data-is-visible",tK="data-focuszone-id",nK="data-is-sub-focuszone";function rK(e,t,n){return xh(e,t,!0,!1,!1,n)}function oK(e,t,n){return jf(e,t,!0,!1,!0,n)}function iK(e){var t=xh(e,e,!0,!1,!1,!0);return t?(lK(t),!0):!1}function jf(e,t,n,r,o,i,a,s){if(!t||!a&&t===e)return null;var l=RF(t);if(o&&l&&(i||!(OF(t)||DF(t)))){var u=jf(e,t.lastElementChild,!0,!0,!0,i,a,s);if(u){if(s&&EE(u,!0)||!s)return u;var d=jf(e,u.previousElementSibling,!0,!0,!0,i,a,s);if(d)return d;for(var h=u.parentElement;h&&h!==t;){var p=jf(e,h.previousElementSibling,!0,!0,!0,i,a,s);if(p)return p;h=h.parentElement}}}if(n&&l&&EE(t,s))return t;var m=jf(e,t.previousElementSibling,!0,!0,!0,i,a,s);return m||(r?null:jf(e,t.parentElement,!0,!1,!1,i,a,s))}function xh(e,t,n,r,o,i,a,s){if(!t||t===e&&o&&!a)return null;var l=RF(t);if(n&&l&&EE(t,s))return t;if(!o&&l&&(i||!(OF(t)||DF(t)))){var u=xh(e,t.firstElementChild,!0,!0,!1,i,a,s);if(u)return u}if(t===e)return null;var d=xh(e,t.nextElementSibling,!0,!0,!1,i,a,s);return d||(r?null:xh(e,t.parentElement,!1,!1,!0,i,a,s))}function RF(e){if(!e||!e.getAttribute)return!1;var t=e.getAttribute(eK);return t!=null?t==="true":e.offsetHeight!==0||e.offsetParent!==null||e.isVisible===!0}function EE(e,t){if(!e||e.disabled)return!1;var n=0,r=null;e&&e.getAttribute&&(r=e.getAttribute("tabIndex"),r&&(n=parseInt(r,10)));var o=e.getAttribute?e.getAttribute(JG):null,i=r!==null&&n>=0,a=!!e&&o!=="false"&&(e.tagName==="A"||e.tagName==="BUTTON"||e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.tagName==="SELECT"||o==="true"||i);return t?n!==-1&&a:a}function OF(e){return!!(e&&e.getAttribute&&e.getAttribute(tK))}function DF(e){return!!(e&&e.getAttribute&&e.getAttribute(nK)==="true")}function aK(e){var t=ss(e),n=t&&t.activeElement;return!!(n&&bE(e,n))}function sK(e,t){return YG(e,t)!=="true"}var bf=void 0;function lK(e){if(e){if(bf){bf=e;return}bf=e;var t=ur(e);t&&t.requestAnimationFrame(function(){bf&&bf.focus(),bf=void 0})}}function zf(e,t,n,r){return e.addEventListener(t,n,r),function(){return e.removeEventListener(t,n,r)}}var uK=50,cK=5,yg=0,e2=Qi.getInstance();e2&&e2.onReset&&e2.onReset(function(){return yg++});var ym="__retval__";function ml(e){e===void 0&&(e={});var t=new Map,n=0,r=0,o=yg,i=function(a,s){var l;if(s===void 0&&(s={}),e.useStaticStyles&&typeof a=="function"&&a.__noStyleOverride__)return a(s);r++;var u=t,d=s.theme,h=d&&d.rtl!==void 0?d.rtl:ls(),p=e.disableCaching;if(o!==yg&&(o=yg,t=new Map,n=0),e.disableCaching||(u=nx(t,a),u=nx(u,s)),(p||!u[ym])&&(a===void 0?u[ym]={}:u[ym]=wF([typeof a=="function"?a(s):a],{rtl:!!h,specificityMultiplier:e.useStaticStyles?cK:void 0}),p||n++),n>(e.cacheSize||uK)){var m=ur();!((l=m==null?void 0:m.FabricConfig)===null||l===void 0)&&l.enableClassNameCacheFullWarning&&(console.warn("Styles are being recalculated too frequently. Cache miss rate is "+n+"/"+r+"."),console.trace()),t.clear(),n=0,e.disableCaching=!0}return u[ym]};return i}function t2(e,t){return t=fK(t),e.has(t)||e.set(t,new Map),e.get(t)}function nx(e,t){if(typeof t=="function"){var n=t.__cachedInputs__;if(n)for(var r=0,o=t.__cachedInputs__;r"u"?null:WeakMap;function hK(){Eg++}function Cr(e,t,n){if(t===void 0&&(t=100),n===void 0&&(n=!1),!r0)return e;if(!rx){var r=Qi.getInstance();r&&r.onReset&&Qi.getInstance().onReset(hK),rx=!0}var o,i=0,a=Eg;return function(){for(var l=[],u=0;u0&&i>t)&&(o=ox(),i=0,a=Eg),d=o;for(var h=0;h=0||l.indexOf("data-")===0||l.indexOf("aria-")===0;u&&(!n||(n==null?void 0:n.indexOf(l))===-1)&&(o[l]=e[l])}return o}function Tb(e){NK(e,{componentDidMount:PK,componentDidUpdate:MK,componentWillUnmount:LK})}function PK(){av(this.props.componentRef,this)}function MK(e){e.componentRef!==this.props.componentRef&&(av(e.componentRef,null),av(this.props.componentRef,this))}function LK(){av(this.props.componentRef,null)}function av(e,t){e&&(typeof e=="object"?e.current=t:typeof e=="function"&&e(t))}var ca,jK=(ca={},ca[qt.up]=1,ca[qt.down]=1,ca[qt.left]=1,ca[qt.right]=1,ca[qt.home]=1,ca[qt.end]=1,ca[qt.tab]=1,ca[qt.pageUp]=1,ca[qt.pageDown]=1,ca);function zK(e){return!!jK[e]}var Go="ms-Fabric--isFocusVisible",ax="ms-Fabric--isFocusHidden";function dd(e,t){var n=t?ur(t):ur();if(n){var r=n.document.body.classList;r.add(e?Go:ax),r.remove(e?ax:Go)}}var sx=new WeakMap;function lx(e,t){var n,r=sx.get(e);return r?n=r+t:n=1,sx.set(e,n),n}function jF(e){T.useEffect(function(){var t,n=ur(e==null?void 0:e.current);if(!(!n||((t=n.FabricConfig)===null||t===void 0?void 0:t.disableFocusRects)===!0)){var r=lx(n,1);return r<=1&&(n.addEventListener("mousedown",ux,!0),n.addEventListener("pointerdown",cx,!0),n.addEventListener("keydown",fx,!0)),function(){var o;!n||((o=n.FabricConfig)===null||o===void 0?void 0:o.disableFocusRects)===!0||(r=lx(n,-1),r===0&&(n.removeEventListener("mousedown",ux,!0),n.removeEventListener("pointerdown",cx,!0),n.removeEventListener("keydown",fx,!0)))}}},[e])}var HK=function(e){return jF(e.rootRef),null};function ux(e){dd(!1,e.target)}function cx(e){e.pointerType!=="mouse"&&dd(!1,e.target)}function fx(e){zK(e.which)&&dd(!0,e.target)}function UK(e){var t=null;try{var n=ur();t=n?n.localStorage.getItem(e):null}catch{}return t}var tc,dx="language";function qK(e){if(e===void 0&&(e="sessionStorage"),tc===void 0){var t=ss(),n=e==="localStorage"?UK(dx):e==="sessionStorage"?FF(dx):void 0;n&&(tc=n),tc===void 0&&t&&(tc=t.documentElement.getAttribute("lang")),tc===void 0&&(tc="en")}return tc}function hx(e){for(var t=[],n=1;n-1;e[r]=i?o:zF(e[r]||{},o,n)}else e[r]=o}return n.pop(),e}var px=function(){return!window||!window.navigator||!window.navigator.userAgent?!1:/iPad|iPhone|iPod/i.test(window.navigator.userAgent)},$K=["TEMPLATE","STYLE","SCRIPT"];function WK(e){var t=ss(e);if(!t)return function(){};for(var n=[];e!==t.body&&e.parentElement;){for(var r=0,o=e.parentElement.children;r"u"||e){var n=ur(),r=(t=n==null?void 0:n.navigator)===null||t===void 0?void 0:t.userAgent;r2=!!r&&r.indexOf("Macintosh")!==-1}return!!r2}function KK(e){var t=Od(function(n){var r=Od(function(o){return function(i){return n(i,o)}});return function(o,i){return e(o,i?r(i):n)}});return t}var VK=Od(KK);function HF(e,t){return VK(e)(t)}var YK=["theme","styles"];function gl(e,t,n,r,o){r=r||{scope:"",fields:void 0};var i=r.scope,a=r.fields,s=a===void 0?YK:a,l=T.forwardRef(function(d,h){var p=T.useRef(),m=CK(s,i),v=m.styles;m.dir;var _=pl(m,["styles","dir"]),b=n?n(d):void 0,E=p.current&&p.current.__cachedInputs__||[],w=d.styles;if(!p.current||v!==E[1]||w!==E[2]){var k=function(y){return kF(y,t,v,w)};k.__cachedInputs__=[t,v,w],k.__noStyleOverride__=!v&&!w,p.current=k}return T.createElement(e,oe({ref:h},_,b,d,{styles:p.current}))});l.displayName="Styled"+(e.displayName||e.name);var u=o?T.memo(l):l;return l.displayName&&(u.displayName=l.displayName),u}function S4(e,t){for(var n=oe({},t),r=0,o=Object.keys(e);rr?" (+ "+(z1.length-r)+" more)":"")),i2=void 0,z1=[]},n)))}function tV(e,t,n,r,o){o===void 0&&(o=!1);var i=oe({primaryButtonBorder:"transparent",errorText:r?"#F1707B":"#a4262c",messageText:r?"#F3F2F1":"#323130",messageLink:r?"#6CB8F6":"#005A9E",messageLinkHovered:r?"#82C7FF":"#004578",infoIcon:r?"#C8C6C4":"#605e5c",errorIcon:r?"#F1707B":"#A80000",blockingIcon:r?"#442726":"#FDE7E9",warningIcon:r?"#C8C6C4":"#797775",severeWarningIcon:r?"#FCE100":"#D83B01",successIcon:r?"#92C353":"#107C10",infoBackground:r?"#323130":"#f3f2f1",errorBackground:r?"#442726":"#FDE7E9",blockingBackground:r?"#442726":"#FDE7E9",warningBackground:r?"#433519":"#FFF4CE",severeWarningBackground:r?"#4F2A0F":"#FED9CC",successBackground:r?"#393D1B":"#DFF6DD",warningHighlight:r?"#fff100":"#ffb900",successText:r?"#92c353":"#107C10"},n),a=UF(e,t,i,r);return nV(a,o)}function UF(e,t,n,r,o){var i={},a=e||{},s=a.white,l=a.black,u=a.themePrimary,d=a.themeDark,h=a.themeDarker,p=a.themeDarkAlt,m=a.themeLighter,v=a.neutralLight,_=a.neutralLighter,b=a.neutralDark,E=a.neutralQuaternary,w=a.neutralQuaternaryAlt,k=a.neutralPrimary,y=a.neutralSecondary,F=a.neutralSecondaryAlt,C=a.neutralTertiary,A=a.neutralTertiaryAlt,P=a.neutralLighterAlt,I=a.accent;return s&&(i.bodyBackground=s,i.bodyFrameBackground=s,i.accentButtonText=s,i.buttonBackground=s,i.primaryButtonText=s,i.primaryButtonTextHovered=s,i.primaryButtonTextPressed=s,i.inputBackground=s,i.inputForegroundChecked=s,i.listBackground=s,i.menuBackground=s,i.cardStandoutBackground=s),l&&(i.bodyTextChecked=l,i.buttonTextCheckedHovered=l),u&&(i.link=u,i.primaryButtonBackground=u,i.inputBackgroundChecked=u,i.inputIcon=u,i.inputFocusBorderAlt=u,i.menuIcon=u,i.menuHeader=u,i.accentButtonBackground=u),d&&(i.primaryButtonBackgroundPressed=d,i.inputBackgroundCheckedHovered=d,i.inputIconHovered=d),h&&(i.linkHovered=h),p&&(i.primaryButtonBackgroundHovered=p),m&&(i.inputPlaceholderBackgroundChecked=m),v&&(i.bodyBackgroundChecked=v,i.bodyFrameDivider=v,i.bodyDivider=v,i.variantBorder=v,i.buttonBackgroundCheckedHovered=v,i.buttonBackgroundPressed=v,i.listItemBackgroundChecked=v,i.listHeaderBackgroundPressed=v,i.menuItemBackgroundPressed=v,i.menuItemBackgroundChecked=v),_&&(i.bodyBackgroundHovered=_,i.buttonBackgroundHovered=_,i.buttonBackgroundDisabled=_,i.buttonBorderDisabled=_,i.primaryButtonBackgroundDisabled=_,i.disabledBackground=_,i.listItemBackgroundHovered=_,i.listHeaderBackgroundHovered=_,i.menuItemBackgroundHovered=_),E&&(i.primaryButtonTextDisabled=E,i.disabledSubtext=E),w&&(i.listItemBackgroundCheckedHovered=w),C&&(i.disabledBodyText=C,i.variantBorderHovered=(n==null?void 0:n.variantBorderHovered)||C,i.buttonTextDisabled=C,i.inputIconDisabled=C,i.disabledText=C),k&&(i.bodyText=k,i.actionLink=k,i.buttonText=k,i.inputBorderHovered=k,i.inputText=k,i.listText=k,i.menuItemText=k),P&&(i.bodyStandoutBackground=P,i.defaultStateBackground=P),b&&(i.actionLinkHovered=b,i.buttonTextHovered=b,i.buttonTextChecked=b,i.buttonTextPressed=b,i.inputTextHovered=b,i.menuItemTextHovered=b),y&&(i.bodySubtext=y,i.focusBorder=y,i.inputBorder=y,i.smallInputBorder=y,i.inputPlaceholderText=y),F&&(i.buttonBorder=F),A&&(i.disabledBodySubtext=A,i.disabledBorder=A,i.buttonBackgroundChecked=A,i.menuDivider=A),I&&(i.accentButtonBackground=I),t!=null&&t.elevation4&&(i.cardShadow=t.elevation4),!r&&(t!=null&&t.elevation8)?i.cardShadowHovered=t.elevation8:i.variantBorderHovered&&(i.cardShadowHovered="0 0 1px "+i.variantBorderHovered),i=oe(oe({},i),n),i}function nV(e,t){var n="";return t===!0&&(n=" /* @deprecated */"),e.listTextColor=e.listText+n,e.menuItemBackgroundChecked+=n,e.warningHighlight+=n,e.warningText=e.messageText+n,e.successText+=n,e}function rV(e,t){var n,r,o;t===void 0&&(t={});var i=hx({},e,t,{semanticColors:UF(t.palette,t.effects,t.semanticColors,t.isInverted===void 0?e.isInverted:t.isInverted)});if(!((n=t.palette)===null||n===void 0)&&n.themePrimary&&!(!((r=t.palette)===null||r===void 0)&&r.accent)&&(i.palette.accent=t.palette.themePrimary),t.defaultFontStyle)for(var a=0,s=Object.keys(i.fonts);a"u"?global:window,_x=Ch&&Ch.CSPSettings&&Ch.CSPSettings.nonce,gi=VV();function VV(){var e=Ch.__themeState__||{theme:void 0,lastStyleElement:void 0,registeredStyles:[]};return e.runState||(e=lv({},e,{perf:{count:0,duration:0},runState:{flushTimer:0,mode:0,buffer:[]}})),e.registeredThemableStyles||(e=lv({},e,{registeredThemableStyles:[]})),Ch.__themeState__=e,e}function YV(e,t){gi.loadStyles?gi.loadStyles(VF(e).styleString,e):ZV(e)}function KF(e){gi.theme=e,XV()}function QV(e){e===void 0&&(e=3),(e===3||e===2)&&(Tx(gi.registeredStyles),gi.registeredStyles=[]),(e===3||e===1)&&(Tx(gi.registeredThemableStyles),gi.registeredThemableStyles=[])}function Tx(e){e.forEach(function(t){var n=t&&t.styleElement;n&&n.parentElement&&n.parentElement.removeChild(n)})}function XV(){if(gi.theme){for(var e=[],t=0,n=gi.registeredThemableStyles;t0&&(QV(1),YV([].concat.apply([],e)))}}function VF(e){var t=gi.theme,n=!1,r=(e||[]).map(function(o){var i=o.theme;if(i){n=!0;var a=t?t[i]:void 0,s=o.defaultValue||"inherit";return t&&!a&&console&&!(i in t)&&typeof DEBUG<"u"&&DEBUG&&console.warn('Theming value not provided for "'+i+'". Falling back to "'+s+'".'),a||s}else return o.rawString});return{styleString:r.join(""),themable:n}}function ZV(e){if(!(typeof document>"u")){var t=document.getElementsByTagName("head")[0],n=document.createElement("style"),r=VF(e),o=r.styleString,i=r.themable;n.setAttribute("data-load-themed-styles","true"),_x&&n.setAttribute("nonce",_x),n.appendChild(document.createTextNode(o)),gi.perf.count++,t.appendChild(n);var a=document.createEvent("HTMLEvents");a.initEvent("styleinsert",!0,!1),a.args={newStyle:n},document.dispatchEvent(a);var s={styleElement:n,themableStyle:e};i?gi.registeredThemableStyles.push(s):gi.registeredStyles.push(s)}}var La=Sb({}),JV=[],_E="theme";function YF(){var e,t,n,r=ur();!((t=r==null?void 0:r.FabricConfig)===null||t===void 0)&&t.legacyTheme?eY(r.FabricConfig.legacyTheme):$i.getSettings([_E]).theme||(!((n=r==null?void 0:r.FabricConfig)===null||n===void 0)&&n.theme&&(La=Sb(r.FabricConfig.theme)),$i.applySettings((e={},e[_E]=La,e)))}YF();function eY(e,t){var n;return t===void 0&&(t=!1),La=Sb(e,t),KF(oe(oe(oe(oe({},La.palette),La.semanticColors),La.effects),tY(La))),$i.applySettings((n={},n[_E]=La,n)),JV.forEach(function(r){try{r(La)}catch{}}),La}function tY(e){for(var t={},n=0,r=Object.keys(e.fonts);nt.bottom||e.leftt.right)}function uv(e,t){var n=[];return e.topt.bottom&&n.push(Je.bottom),e.leftt.right&&n.push(Je.right),n}function po(e,t){return e[Je[t]]}function Sx(e,t,n){return e[Je[t]]=n,e}function a0(e,t){var n=Xd(t);return(po(e,n.positiveEdge)+po(e,n.negativeEdge))/2}function xb(e,t){return e>0?t:t*-1}function TE(e,t){return xb(e,po(t,e))}function Qs(e,t,n){var r=po(e,n)-po(t,n);return xb(n,r)}function Md(e,t,n,r){r===void 0&&(r=!0);var o=po(e,t)-n,i=Sx(e,t,n);return r&&(i=Sx(e,t*-1,po(e,t*-1)-o)),i}function s0(e,t,n,r){return r===void 0&&(r=0),Md(e,n,po(t,n)+xb(n,r))}function nY(e,t,n,r){r===void 0&&(r=0);var o=n*-1,i=xb(o,r);return Md(e,n*-1,po(t,n)+i)}function cv(e,t,n){var r=TE(n,e);return r>TE(n,t)}function rY(e,t){for(var n=uv(e,t),r=0,o=0,i=n;o0&&(i.indexOf(s*-1)>-1?s=s*-1:(l=s,s=i.slice(-1)[0]),a=fv(e,t,{targetEdge:s,alignmentEdge:l},o))}return a=fv(e,t,{targetEdge:d,alignmentEdge:h},o),{elementRectangle:a,targetEdge:d,alignmentEdge:h}}function iY(e,t,n,r){var o=e.alignmentEdge,i=e.targetEdge,a=e.elementRectangle,s=o*-1,l=fv(a,t,{targetEdge:i,alignmentEdge:s},n,r);return{elementRectangle:l,targetEdge:i,alignmentEdge:s}}function aY(e,t,n,r,o,i,a){o===void 0&&(o=0);var s=r.alignmentEdge,l=r.alignTargetEdge,u={elementRectangle:e,targetEdge:r.targetEdge,alignmentEdge:s};!i&&!a&&(u=oY(e,t,n,r,o));var d=uv(u.elementRectangle,n),h=i?-u.targetEdge:void 0;if(d.length>0)if(l)if(u.alignmentEdge&&d.indexOf(u.alignmentEdge*-1)>-1){var p=iY(u,t,o,a);if(x4(p.elementRectangle,n))return p;u=s2(uv(p.elementRectangle,n),u,n,h)}else u=s2(d,u,n,h);else u=s2(d,u,n,h);return u}function s2(e,t,n,r){for(var o=0,i=e;oMath.abs(Qs(e,n,t*-1))?t*-1:t}function sY(e,t,n){return n!==void 0&&po(e,t)===po(n,t)}function lY(e,t,n,r,o,i,a,s){var l={},u=C4(t),d=i?n:n*-1,h=o||Xd(n).positiveEdge;return(!a||sY(e,TY(h),r))&&(h=XF(e,h,r)),l[Je[d]]=Qs(e,u,d),l[Je[h]]=Qs(e,u,h),s&&(l[Je[d*-1]]=Qs(e,u,d*-1),l[Je[h*-1]]=Qs(e,u,h*-1)),l}function uY(e){return Math.sqrt(e*e*2)}function cY(e,t,n){if(e===void 0&&(e=hr.bottomAutoEdge),n)return{alignmentEdge:n.alignmentEdge,isAuto:n.isAuto,targetEdge:n.targetEdge};var r=oe({},kx[e]);return ls()?(r.alignmentEdge&&r.alignmentEdge%2===0&&(r.alignmentEdge=r.alignmentEdge*-1),t!==void 0?kx[t]:r):r}function fY(e,t,n,r,o){return e.isAuto&&(e.alignmentEdge=ZF(e.targetEdge,t,n)),e.alignTargetEdge=o,e}function ZF(e,t,n){var r=a0(t,e),o=a0(n,e),i=Xd(e),a=i.positiveEdge,s=i.negativeEdge;return r<=o?a:s}function dY(e,t,n,r,o,i,a){var s=fv(e,t,r,o,a);return x4(s,n)?{elementRectangle:s,targetEdge:r.targetEdge,alignmentEdge:r.alignmentEdge}:aY(s,t,n,r,o,i,a)}function hY(e,t,n){var r=e.targetEdge*-1,o=new ts(0,e.elementRectangle.width,0,e.elementRectangle.height),i={},a=XF(e.elementRectangle,e.alignmentEdge?e.alignmentEdge:Xd(r).positiveEdge,n),s=Qs(e.elementRectangle,e.targetRectangle,r),l=s>Math.abs(po(t,r));return i[Je[r]]=po(t,r),i[Je[a]]=Qs(t,o,a),{elementPosition:oe({},i),closestEdge:ZF(e.targetEdge,t,o),targetEdge:r,hideBeak:!l}}function pY(e,t){var n=t.targetRectangle,r=Xd(t.targetEdge),o=r.positiveEdge,i=r.negativeEdge,a=a0(n,t.targetEdge),s=new ts(e/2,t.elementRectangle.width-e/2,e/2,t.elementRectangle.height-e/2),l=new ts(0,e,0,e);return l=Md(l,t.targetEdge*-1,-e/2),l=QF(l,t.targetEdge*-1,a-TE(o,t.elementRectangle)),cv(l,s,o)?cv(l,s,i)||(l=s0(l,s,i)):l=s0(l,s,o),l}function C4(e){var t=e.getBoundingClientRect();return new ts(t.left,t.right,t.top,t.bottom)}function mY(e){return new ts(e.left,e.right,e.top,e.bottom)}function gY(e,t){var n;if(t){if(t.preventDefault){var r=t;n=new ts(r.clientX,r.clientX,r.clientY,r.clientY)}else if(t.getBoundingClientRect)n=C4(t);else{var o=t,i=o.left||o.x,a=o.top||o.y,s=o.right||i,l=o.bottom||a;n=new ts(i,s,a,l)}if(!x4(n,e))for(var u=uv(n,e),d=0,h=u;d=r&&o&&u.top<=o&&u.bottom>=o&&(a={top:u.top,left:u.left,right:u.right,bottom:u.bottom,width:u.width,height:u.height})}return a}function kY(e,t){return wY(e,t)}function A4(e){var t=T.useRef();return t.current===void 0&&(t.current={value:typeof e=="function"?e():e}),t.current.value}function Zd(){var e=A4(function(){return new _b});return T.useEffect(function(){return function(){return e.dispose()}},[e]),e}function eI(e,t){var n=T.useRef(t);return n.current||(n.current=cu(e)),n.current}function G0(){for(var e=[],t=0;t0&&u>l&&(s=u-l>1)}o!==s&&i(s)}}),function(){return n.dispose()}}),o}function CY(e){var t=e.originalElement,n=e.containsFocus;t&&n&&t!==ur()&&setTimeout(function(){var r;(r=t.focus)===null||r===void 0||r.call(t)},0)}function AY(e,t){var n=e.onRestoreFocus,r=n===void 0?CY:n,o=T.useRef(),i=T.useRef(!1);T.useEffect(function(){return o.current=ss().activeElement,aK(t.current)&&(i.current=!0),function(){var a;r==null||r({originalElement:o.current,containsFocus:i.current,documentContainsFocus:((a=ss())===null||a===void 0?void 0:a.hasFocus())||!1}),o.current=void 0}},[]),l0(t,"focus",T.useCallback(function(){i.current=!0},[]),!0),l0(t,"blur",T.useCallback(function(a){t.current&&a.relatedTarget&&!t.current.contains(a.relatedTarget)&&(i.current=!1)},[]),!0)}function NY(e,t){var n=String(e["aria-modal"]).toLowerCase()==="true"&&e.enableAriaHiddenSiblings;T.useEffect(function(){if(n&&t.current){var r=WK(t.current);return r}},[t,n])}var oI=T.forwardRef(function(e,t){var n=S4({shouldRestoreFocus:!0,enableAriaHiddenSiblings:!0},e),r=T.useRef(),o=G0(r,t);NY(n,r),AY(n,r);var i=n.role,a=n.className,s=n.ariaLabel,l=n.ariaLabelledBy,u=n.ariaDescribedBy,d=n.style,h=n.children,p=n.onDismiss,m=xY(n,r),v=T.useCallback(function(b){switch(b.which){case qt.escape:p&&(p(b),b.preventDefault(),b.stopPropagation());break}},[p]),_=N4();return l0(_,"keydown",v),T.createElement("div",oe({ref:o},Zr(n,W0),{className:a,role:i,"aria-label":s,"aria-labelledby":l,"aria-describedby":u,onKeyDown:v,style:oe({overflowY:m?"scroll":void 0,outline:"none"},d)}),h)});oI.displayName="Popup";var yf,FY="CalloutContentBase",IY=(yf={},yf[Je.top]=bc.slideUpIn10,yf[Je.bottom]=bc.slideDownIn10,yf[Je.left]=bc.slideLeftIn10,yf[Je.right]=bc.slideRightIn10,yf),xx={top:0,left:0},BY={opacity:0,filter:"opacity(0)",pointerEvents:"none"},RY=["role","aria-roledescription"],iI={preventDismissOnLostFocus:!1,preventDismissOnScroll:!1,preventDismissOnResize:!1,isBeakVisible:!0,beakWidth:16,gapSpace:0,minPagePadding:8,directionalHint:hr.bottomAutoEdge},OY=ml({disableCaching:!0});function DY(e,t,n){var r=e.bounds,o=e.minPagePadding,i=o===void 0?iI.minPagePadding:o,a=e.target,s=T.useState(!1),l=s[0],u=s[1],d=T.useRef(),h=T.useCallback(function(){if(!d.current||l){var m=typeof r=="function"?n?r(a,n):void 0:r;!m&&n&&(m=kY(t.current,n),m={top:m.top+i,left:m.left+i,right:m.right-i,bottom:m.bottom-i,width:m.width-i*2,height:m.height-i*2}),d.current=m,l&&u(!1)}return d.current},[r,i,a,t,n,l]),p=Zd();return l0(n,"resize",p.debounce(function(){u(!0)},500,{leading:!0})),h}function PY(e,t,n){var r,o=e.calloutMaxHeight,i=e.finalHeight,a=e.directionalHint,s=e.directionalHintFixed,l=e.hidden,u=T.useState(),d=u[0],h=u[1],p=(r=n==null?void 0:n.elementPosition)!==null&&r!==void 0?r:{},m=p.top,v=p.bottom;return T.useEffect(function(){var _,b=(_=t())!==null&&_!==void 0?_:{},E=b.top,w=b.bottom;!o&&!l?typeof m=="number"&&w?h(w-m):typeof v=="number"&&typeof E=="number"&&w&&h(w-E-v):h(o||void 0)},[v,o,i,a,s,t,l,n,m]),d}function MY(e,t,n,r,o){var i=T.useState(),a=i[0],s=i[1],l=T.useRef(0),u=T.useRef(),d=Zd(),h=e.hidden,p=e.target,m=e.finalHeight,v=e.calloutMaxHeight,_=e.onPositioned,b=e.directionalHint;return T.useEffect(function(){if(h)s(void 0),l.current=0;else{var E=d.requestAnimationFrame(function(){var w,k;if(t.current&&n){var y=oe(oe({},e),{target:r.current,bounds:o()}),F=n.cloneNode(!0);F.style.maxHeight=v?""+v:"",F.style.visibility="hidden",(w=n.parentElement)===null||w===void 0||w.appendChild(F);var C=u.current===p?a:void 0,A=m?_Y(y,t.current,F,C):EY(y,t.current,F,C);(k=n.parentElement)===null||k===void 0||k.removeChild(F),!a&&A||a&&A&&!HY(a,A)&&l.current<5?(l.current++,s(A)):l.current>0&&(l.current=0,_==null||_(a))}},n);return u.current=p,function(){d.cancelAnimationFrame(E),u.current=void 0}}},[h,b,d,n,v,t,r,m,o,_,a,e,p]),a}function LY(e,t,n){var r=e.hidden,o=e.setInitialFocus,i=Zd(),a=!!t;T.useEffect(function(){if(!r&&o&&a&&n){var s=i.requestAnimationFrame(function(){return iK(n)},n);return function(){return i.cancelAnimationFrame(s)}}},[r,a,i,n,o])}function jY(e,t,n,r,o){var i=e.hidden,a=e.onDismiss,s=e.preventDismissOnScroll,l=e.preventDismissOnResize,u=e.preventDismissOnLostFocus,d=e.dismissOnTargetClick,h=e.shouldDismissOnWindowFocus,p=e.preventDismissOnEvent,m=T.useRef(!1),v=Zd(),_=A4([function(){m.current=!0},function(){m.current=!1}]),b=!!t;return T.useEffect(function(){var E=function(A){b&&!s&&y(A)},w=function(A){!l&&!(p&&p(A))&&(a==null||a(A))},k=function(A){u||y(A)},y=function(A){var P=A.composedPath?A.composedPath():[],I=P.length>0?P[0]:A.target,j=n.current&&!bE(n.current,I);if(j&&m.current){m.current=!1;return}if(!r.current&&j||A.target!==o&&j&&(!r.current||"stopPropagation"in r.current||d||I!==r.current&&!bE(r.current,I))){if(p&&p(A))return;a==null||a(A)}},F=function(A){h&&(p&&!p(A)||!p&&!u)&&!(o!=null&&o.document.hasFocus())&&A.relatedTarget===null&&(a==null||a(A))},C=new Promise(function(A){v.setTimeout(function(){if(!i&&o){var P=[zf(o,"scroll",E,!0),zf(o,"resize",w,!0),zf(o.document.documentElement,"focus",k,!0),zf(o.document.documentElement,"click",k,!0),zf(o,"blur",F,!0)];A(function(){P.forEach(function(I){return I()})})}},0)});return function(){C.then(function(A){return A()})}},[i,v,n,r,o,a,h,d,u,l,s,b,p]),_}var aI=T.memo(T.forwardRef(function(e,t){var n=S4(iI,e),r=n.styles,o=n.style,i=n.ariaLabel,a=n.ariaDescribedBy,s=n.ariaLabelledBy,l=n.className,u=n.isBeakVisible,d=n.children,h=n.beakWidth,p=n.calloutWidth,m=n.calloutMaxWidth,v=n.calloutMinWidth,_=n.doNotLayer,b=n.finalHeight,E=n.hideOverflow,w=E===void 0?!!b:E,k=n.backgroundColor,y=n.calloutMaxHeight,F=n.onScroll,C=n.shouldRestoreFocus,A=C===void 0?!0:C,P=n.target,I=n.hidden,j=n.onLayerMounted,H=T.useRef(null),K=T.useState(null),U=K[0],pe=K[1],se=T.useCallback(function(tr){pe(tr)},[]),J=G0(H,t),$=rI(n.target,{current:U}),_e=$[0],ve=$[1],fe=DY(n,_e,ve),R=MY(n,H,U,_e,fe),L=PY(n,fe,R),Ae=jY(n,R,H,_e,ve),Ue=Ae[0],Ve=Ae[1],Le=(R==null?void 0:R.elementPosition.top)&&(R==null?void 0:R.elementPosition.bottom),st=oe(oe({},R==null?void 0:R.elementPosition),{maxHeight:L});if(Le&&(st.bottom=void 0),LY(n,R,U),T.useEffect(function(){I||j==null||j()},[I]),!ve)return null;var We=w,rt=u&&!!P,Zt=OY(r,{theme:n.theme,className:l,overflowYHidden:We,calloutWidth:p,positions:R,beakWidth:h,backgroundColor:k,calloutMaxWidth:m,calloutMinWidth:v,doNotLayer:_}),qn=oe(oe({maxHeight:y||"100%"},o),We&&{overflowY:"hidden"}),er=n.hidden?{visibility:"hidden"}:void 0;return T.createElement("div",{ref:J,className:Zt.container,style:er},T.createElement("div",oe({},Zr(n,W0,RY),{className:Ys(Zt.root,R&&R.targetEdge&&IY[R.targetEdge]),style:R?oe({},st):BY,tabIndex:-1,ref:se}),rt&&T.createElement("div",{className:Zt.beak,style:zY(R)}),rt&&T.createElement("div",{className:Zt.beakCurtain}),T.createElement(oI,{role:n.role,"aria-roledescription":n["aria-roledescription"],ariaDescribedBy:a,ariaLabel:i,ariaLabelledBy:s,className:Zt.calloutMain,onDismiss:n.onDismiss,onMouseDown:Ue,onMouseUp:Ve,onRestoreFocus:n.onRestoreFocus,onScroll:F,shouldRestoreFocus:A,style:qn},d)))}),function(e,t){return!t.shouldUpdateWhenHidden&&e.hidden&&t.hidden?!0:T4(e,t)});function zY(e){var t,n,r=oe(oe({},(t=e==null?void 0:e.beakPosition)===null||t===void 0?void 0:t.elementPosition),{display:!((n=e==null?void 0:e.beakPosition)===null||n===void 0)&&n.hideBeak?"none":void 0});return!r.top&&!r.bottom&&!r.left&&!r.right&&(r.left=xx.left,r.top=xx.top),r}function HY(e,t){return Cx(e.elementPosition,t.elementPosition)&&Cx(e.beakPosition.elementPosition,t.beakPosition.elementPosition)}function Cx(e,t){for(var n in t)if(t.hasOwnProperty(n)){var r=e[n],o=t[n];if(r!==void 0&&o!==void 0){if(r.toFixed(2)!==o.toFixed(2))return!1}else return!1}return!0}aI.displayName=FY;function UY(e){return{height:e,width:e}}var qY={container:"ms-Callout-container",root:"ms-Callout",beak:"ms-Callout-beak",beakCurtain:"ms-Callout-beakCurtain",calloutMain:"ms-Callout-main"},$Y=function(e){var t,n=e.theme,r=e.className,o=e.overflowYHidden,i=e.calloutWidth,a=e.beakWidth,s=e.backgroundColor,l=e.calloutMaxWidth,u=e.calloutMinWidth,d=e.doNotLayer,h=hs(qY,n),p=n.semanticColors,m=n.effects;return{container:[h.container,{position:"relative"}],root:[h.root,n.fonts.medium,{position:"absolute",display:"flex",zIndex:d?Dd.Layer:void 0,boxSizing:"border-box",borderRadius:m.roundedCorner2,boxShadow:m.elevation16,selectors:(t={},t[Ao]={borderWidth:1,borderStyle:"solid",borderColor:"WindowText"},t)},GV(),r,!!i&&{width:i},!!l&&{maxWidth:l},!!u&&{minWidth:u}],beak:[h.beak,{position:"absolute",backgroundColor:p.menuBackground,boxShadow:"inherit",border:"inherit",boxSizing:"border-box",transform:"rotate(45deg)"},UY(a),s&&{backgroundColor:s}],beakCurtain:[h.beakCurtain,{position:"absolute",top:0,right:0,bottom:0,left:0,backgroundColor:p.menuBackground,borderRadius:m.roundedCorner2}],calloutMain:[h.calloutMain,{backgroundColor:p.menuBackground,overflowX:"hidden",overflowY:"auto",position:"relative",width:"100%",borderRadius:m.roundedCorner2},o&&{overflowY:"hidden"},s&&{backgroundColor:s}]}},WY=gl(aI,$Y,void 0,{scope:"CalloutContent"}),sI={exports:{}},ea={},lI={exports:{}},uI={};/** @license React v0.20.2 * scheduler.production.min.js * diff --git a/src/promptflow/promptflow/_sdk/_serving/swagger.py b/src/promptflow/promptflow/core/_serving/swagger.py similarity index 100% rename from src/promptflow/promptflow/_sdk/_serving/swagger.py rename to src/promptflow/promptflow/core/_serving/swagger.py diff --git a/src/promptflow/promptflow/_sdk/_serving/utils.py b/src/promptflow/promptflow/core/_serving/utils.py similarity index 97% rename from src/promptflow/promptflow/_sdk/_serving/utils.py rename to src/promptflow/promptflow/core/_serving/utils.py index 910647dfac8..616f412a2ae 100644 --- a/src/promptflow/promptflow/_sdk/_serving/utils.py +++ b/src/promptflow/promptflow/core/_serving/utils.py @@ -1,27 +1,28 @@ # --------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- +import base64 import json import os import time -import base64 import zlib from pathlib import Path + from flask import jsonify, request +from opentelemetry.baggage.propagation import W3CBaggagePropagator +from opentelemetry.context import Context +from opentelemetry.propagate import extract, set_global_textmap +from opentelemetry.propagators.composite import CompositePropagator +from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator -from promptflow._sdk._serving._errors import ( +from promptflow._utils.exception_utils import ErrorResponse, ExceptionPresenter +from promptflow.contracts.flow import Flow as FlowContract +from promptflow.core._serving._errors import ( JsonPayloadRequiredForMultipleInputFields, MissingRequiredFlowInput, NotAcceptable, ) -from promptflow._utils.exception_utils import ErrorResponse, ExceptionPresenter -from promptflow.contracts.flow import Flow as FlowContract from promptflow.exceptions import ErrorTarget -from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator -from opentelemetry.baggage.propagation import W3CBaggagePropagator -from opentelemetry.context import Context -from opentelemetry.propagate import set_global_textmap, extract -from opentelemetry.propagators.composite import CompositePropagator DEFAULT_RESOURCE_PATH = Path(__file__).parent / "resources" # configure global propagator @@ -173,7 +174,7 @@ def serialize_attribute_value(v): def load_feedback_swagger(): feedback_swagger_path = DEFAULT_RESOURCE_PATH / "feedback_swagger.json" # Open the JSON file - with open(feedback_swagger_path, 'r') as file: + with open(feedback_swagger_path, "r") as file: # Load JSON data from the file data = json.load(file) return data diff --git a/src/promptflow/tests/executor/.coveragerc b/src/promptflow/tests/executor/.coveragerc index f191b51a5d5..b1e76acddf2 100644 --- a/src/promptflow/tests/executor/.coveragerc +++ b/src/promptflow/tests/executor/.coveragerc @@ -4,6 +4,7 @@ omit = */promptflow/_sdk/* */promptflow/_telemetry/* */promptflow/azure/* + */promptflow/core/* */promptflow/entities/* */promptflow/operations/* *__init__.py* diff --git a/src/promptflow/tests/sdk_cli_azure_test/conftest.py b/src/promptflow/tests/sdk_cli_azure_test/conftest.py index 088f7991d6f..869f3f33d35 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/conftest.py +++ b/src/promptflow/tests/sdk_cli_azure_test/conftest.py @@ -150,7 +150,7 @@ def runtime(runtime_name: str) -> str: @pytest.fixture def flow_serving_client_remote_connection(mocker: MockerFixture, remote_workspace_resource_id): - from promptflow._sdk._serving.app import create_app as create_serving_app + from promptflow.core._serving.app import create_app as create_serving_app model_path = (Path(MODEL_ROOT) / "basic-with-connection").resolve().absolute().as_posix() mocker.patch.dict(os.environ, {"PROMPTFLOW_PROJECT_PATH": model_path}) @@ -216,7 +216,7 @@ def serving_client_with_connection_data_override(mocker: MockerFixture, remote_w def create_serving_client_with_connections(model_name, mocker: MockerFixture, connections: dict = {}): - from promptflow._sdk._serving.app import create_app as create_serving_app + from promptflow.core._serving.app import create_app as create_serving_app model_path = (Path(MODEL_ROOT) / model_name).resolve().absolute().as_posix() mocker.patch.dict(os.environ, {"PROMPTFLOW_PROJECT_PATH": model_path}) @@ -228,7 +228,7 @@ def create_serving_client_with_connections(model_name, mocker: MockerFixture, co ) # Set credential to None for azureml extension type # As we mock app in github workflow, which do not have managed identity credential - func = "promptflow._sdk._serving.extension.azureml_extension._get_managed_identity_credential_with_retry" + func = "promptflow.core._serving.extension.azureml_extension._get_managed_identity_credential_with_retry" with mock.patch(func) as mock_cred_func: mock_cred_func.return_value = None app = create_serving_app( diff --git a/src/promptflow/tests/sdk_cli_global_config_test/e2etests/test_global_config.py b/src/promptflow/tests/sdk_cli_global_config_test/e2etests/test_global_config.py index 4388430dac3..0e4637d7ad8 100644 --- a/src/promptflow/tests/sdk_cli_global_config_test/e2etests/test_global_config.py +++ b/src/promptflow/tests/sdk_cli_global_config_test/e2etests/test_global_config.py @@ -5,8 +5,8 @@ from promptflow._sdk._load_functions import load_flow from promptflow._sdk._utils import get_local_connections_from_executable -from promptflow._sdk.operations._flow_context_resolver import FlowContextResolver from promptflow._sdk.operations._local_azure_connection_operations import LocalAzureConnectionOperations +from promptflow.core._flow_context_resolver import FlowContextResolver FLOWS_DIR = Path(__file__).parent.parent.parent / "test_configs" / "flows" DATAS_DIR = Path(__file__).parent.parent.parent / "test_configs" / "datas" @@ -41,5 +41,5 @@ def assert_client(client, **kwargs): return get_local_connections_from_executable(client=client, **kwargs) flow = load_flow(source=f"{FLOWS_DIR}/web_classification") - with mock.patch("promptflow._sdk._serving.flow_invoker.get_local_connections_from_executable", assert_client): + with mock.patch("promptflow.core._serving.flow_invoker.get_local_connections_from_executable", assert_client): FlowContextResolver.resolve(flow=flow) diff --git a/src/promptflow/tests/sdk_cli_test/conftest.py b/src/promptflow/tests/sdk_cli_test/conftest.py index 334dea46578..5f309a4875f 100644 --- a/src/promptflow/tests/sdk_cli_test/conftest.py +++ b/src/promptflow/tests/sdk_cli_test/conftest.py @@ -13,10 +13,10 @@ from promptflow import PFClient from promptflow._sdk._configuration import Configuration from promptflow._sdk._constants import EXPERIMENT_CREATED_ON_INDEX_NAME, EXPERIMENT_TABLE_NAME, LOCAL_MGMT_DB_PATH -from promptflow._sdk._serving.app import create_app as create_serving_app from promptflow._sdk.entities import AzureOpenAIConnection as AzureOpenAIConnectionEntity from promptflow._sdk.entities._connection import CustomConnection, _Connection from promptflow._utils.utils import is_in_ci_pipeline +from promptflow.core._serving.app import create_app as create_serving_app from promptflow.executor._line_execution_process_pool import _process_wrapper from promptflow.executor._process_manager import create_spawned_fork_process_manager from promptflow.tracing._integrations._openai_injector import inject_openai_api @@ -132,7 +132,7 @@ def flow_serving_client(mocker: MockerFixture): @pytest.fixture def flow_serving_client_with_encoded_connection(mocker: MockerFixture): from promptflow._core.connection_manager import ConnectionManager - from promptflow._sdk._serving.utils import encode_dict + from promptflow.core._serving.utils import encode_dict connection_dict = json.loads(open(CONNECTION_FILE, "r").read()) connection_manager = ConnectionManager(connection_dict) diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py index 3d49c6b1bf6..30424277c36 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_serve.py @@ -3,16 +3,16 @@ import re import pytest - -from promptflow._sdk._serving.utils import load_feedback_swagger -from promptflow._sdk._serving.constants import FEEDBACK_TRACE_FIELD_NAME -from promptflow.tracing._operation_context import OperationContext from opentelemetry import trace from opentelemetry.sdk.resources import SERVICE_NAME, Resource from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import SimpleSpanProcessor from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter +from promptflow.core._serving.constants import FEEDBACK_TRACE_FIELD_NAME +from promptflow.core._serving.utils import load_feedback_swagger +from promptflow.tracing._operation_context import OperationContext + @pytest.mark.usefixtures("recording_injection", "setup_local_connection") @pytest.mark.e2etest @@ -105,9 +105,9 @@ def test_feedback_with_trace_context(flow_serving_client): trace_ctx_parent_id = "f3f3f3f3f3f3f3f3" trace_ctx_flags = "01" trace_parent = f"{trace_ctx_version}-{trace_ctx_trace_id}-{trace_ctx_parent_id}-{trace_ctx_flags}" - response = flow_serving_client.post("/feedback", - headers={"traceparent": trace_parent, "baggage": "userId=alice"}, - data=feedback_data) + response = flow_serving_client.post( + "/feedback", headers={"traceparent": trace_parent, "baggage": "userId=alice"}, data=feedback_data + ) assert response.status_code == 200 spans = exporter.get_finished_spans() assert len(spans) == 1 diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_flow_invoker.py b/src/promptflow/tests/sdk_cli_test/unittests/test_flow_invoker.py index 6f5087acf56..b952205f2dc 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_flow_invoker.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_flow_invoker.py @@ -5,8 +5,8 @@ import pytest -from promptflow._sdk._serving._errors import UnexpectedConnectionProviderReturn, UnsupportedConnectionProvider -from promptflow._sdk._serving.flow_invoker import FlowInvoker +from promptflow.core._serving._errors import UnexpectedConnectionProviderReturn, UnsupportedConnectionProvider +from promptflow.core._serving.flow_invoker import FlowInvoker from promptflow.exceptions import UserErrorException PROMOTFLOW_ROOT = Path(__file__).parent.parent.parent.parent diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_mlflow_dependencies.py b/src/promptflow/tests/sdk_cli_test/unittests/test_mlflow_dependencies.py index ee486ae7b40..ddd542b9ea0 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_mlflow_dependencies.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_mlflow_dependencies.py @@ -13,6 +13,6 @@ class TestMLFlowDependencies: def test_mlflow_dependencies(self): assert module.DAG_FILE_NAME == "flow.dag.yaml" assert module.Flow == promptflow._sdk.entities._flow.Flow - assert module.FlowInvoker == promptflow._sdk._serving.flow_invoker.FlowInvoker + assert module.FlowInvoker == promptflow.core._serving.flow_invoker.FlowInvoker assert module.remove_additional_includes is not None assert module._merge_local_code_and_additional_includes is not None diff --git a/src/promptflow/tests/test_configs/flows/export/linux/runit/promptflow-serve/run b/src/promptflow/tests/test_configs/flows/export/linux/runit/promptflow-serve/run index 1d09ef532da..89587dcfba3 100644 --- a/src/promptflow/tests/test_configs/flows/export/linux/runit/promptflow-serve/run +++ b/src/promptflow/tests/test_configs/flows/export/linux/runit/promptflow-serve/run @@ -8,4 +8,4 @@ ls /connections pf connection create --file /connections/custom_connection.yaml echo "start promptflow serving with worker_num: 8, worker_threads: 1" cd /flow -gunicorn -w 8 --threads 1 -b "0.0.0.0:8080" --timeout 300 "promptflow._sdk._serving.app:create_app()" \ No newline at end of file +gunicorn -w 8 --threads 1 -b "0.0.0.0:8080" --timeout 300 "promptflow.core._serving.app:create_app()" \ No newline at end of file diff --git a/src/promptflow/tests/tracing_test/.coveragerc b/src/promptflow/tests/tracing_test/.coveragerc index a3bb8988488..2b65a5ad17f 100644 --- a/src/promptflow/tests/tracing_test/.coveragerc +++ b/src/promptflow/tests/tracing_test/.coveragerc @@ -10,6 +10,7 @@ omit = */promptflow/azure/* */promptflow/batch/* */promptflow/contracts/* + */promptflow/core/* */promptflow/entities/* */promptflow/executor/* */promptflow/integrations/* From a795270061ac184ea97abb5aaabd346fcac597e0 Mon Sep 17 00:00:00 2001 From: Philip Gao Date: Fri, 15 Mar 2024 15:11:56 +0800 Subject: [PATCH 062/204] [Layer the repo] Create dummy folders to separate, use import linter to restrict dependency. (#2359) # Description Create dummy folders to separate, use import linter to restrict dependency. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .../workflows/promptflow-import-linter.yml | 52 ++++++++++ src/promptflow-azure/README.md | 9 ++ .../promptflow/azure/__init__.py | 7 ++ .../promptflow/azure/_version.py | 7 ++ src/promptflow-azure/pyproject.toml | 92 ++++++++++++++++++ src/promptflow-azure/tests/unittests/test.py | 11 +++ src/promptflow-core/README.md | 9 ++ .../promptflow/core/__init__.py | 7 ++ .../promptflow/core/_version.py | 7 ++ src/promptflow-core/pyproject.toml | 94 +++++++++++++++++++ src/promptflow-core/tests/unittests/test.py | 11 +++ src/promptflow-devkit/README.md | 9 ++ .../promptflow/devkit/__init__.py | 7 ++ .../promptflow/devkit/_version.py | 7 ++ src/promptflow-devkit/pyproject.toml | 92 ++++++++++++++++++ src/promptflow-devkit/tests/unittests/test.py | 11 +++ src/promptflow-tracing/pyproject.toml | 11 +++ 17 files changed, 443 insertions(+) create mode 100644 .github/workflows/promptflow-import-linter.yml create mode 100644 src/promptflow-azure/README.md create mode 100644 src/promptflow-azure/promptflow/azure/__init__.py create mode 100644 src/promptflow-azure/promptflow/azure/_version.py create mode 100644 src/promptflow-azure/pyproject.toml create mode 100644 src/promptflow-azure/tests/unittests/test.py create mode 100644 src/promptflow-core/README.md create mode 100644 src/promptflow-core/promptflow/core/__init__.py create mode 100644 src/promptflow-core/promptflow/core/_version.py create mode 100644 src/promptflow-core/pyproject.toml create mode 100644 src/promptflow-core/tests/unittests/test.py create mode 100644 src/promptflow-devkit/README.md create mode 100644 src/promptflow-devkit/promptflow/devkit/__init__.py create mode 100644 src/promptflow-devkit/promptflow/devkit/_version.py create mode 100644 src/promptflow-devkit/pyproject.toml create mode 100644 src/promptflow-devkit/tests/unittests/test.py diff --git a/.github/workflows/promptflow-import-linter.yml b/.github/workflows/promptflow-import-linter.yml new file mode 100644 index 00000000000..df52dc8719b --- /dev/null +++ b/.github/workflows/promptflow-import-linter.yml @@ -0,0 +1,52 @@ +name: promptflow-import-linter + +on: + pull_request: + paths: + - src/promptflow-tracing/** + - src/promptflow-core/** + - src/promptflow-devkit/** + - src/promptflow-azure/** + - .github/workflows/promptflow-import-linter.yml + workflow_dispatch: + +env: + WORKING_DIRECTORY: ${{ github.workspace }} + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: snok/install-poetry@v1 + - name: Install all packages + run: | + cd ${{ env.WORKING_DIRECTORY }}/src/promptflow-tracing + touch ./promptflow/__init__.py + poetry install --with dev + cd ${{ env.WORKING_DIRECTORY }}/src/promptflow-core + touch ./promptflow/__init__.py + poetry install --with dev + cd ${{ env.WORKING_DIRECTORY }}/src/promptflow-devkit + touch ./promptflow/__init__.py + poetry install --with dev + cd ${{ env.WORKING_DIRECTORY }}/src/promptflow-azure + touch ./promptflow/__init__.py + poetry install --with dev + working-directory: ${{ env.WORKING_DIRECTORY }} + - name: import lint + run: | + echo "=== Running import lint in promptflow-tracing ===" + cd ${{ env.WORKING_DIRECTORY }}/src/promptflow-tracing + poetry run lint-imports + echo "=== Running import lint in promptflow-core ===" + cd ${{ env.WORKING_DIRECTORY }}/src/promptflow-core + poetry run lint-imports + echo "=== Running import lint in promptflow-devkit ===" + cd ${{ env.WORKING_DIRECTORY }}/src/promptflow-devkit + poetry run lint-imports + echo "=== Running import lint in promptflow-azure ===" + cd ${{ env.WORKING_DIRECTORY }}/src/promptflow-azure + poetry run lint-imports + working-directory: ${{ env.WORKING_DIRECTORY }} + diff --git a/src/promptflow-azure/README.md b/src/promptflow-azure/README.md new file mode 100644 index 00000000000..34b0f8d14fd --- /dev/null +++ b/src/promptflow-azure/README.md @@ -0,0 +1,9 @@ +# Prompt flow azure + +Prompt flow azure. + +# Release History + +## 0.1.0b1 (Upcoming) + +- Stub version in PyPI. diff --git a/src/promptflow-azure/promptflow/azure/__init__.py b/src/promptflow-azure/promptflow/azure/__init__.py new file mode 100644 index 00000000000..555fb331eb2 --- /dev/null +++ b/src/promptflow-azure/promptflow/azure/__init__.py @@ -0,0 +1,7 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +from ._version import __version__ + +__all__ = ["__version__"] diff --git a/src/promptflow-azure/promptflow/azure/_version.py b/src/promptflow-azure/promptflow/azure/_version.py new file mode 100644 index 00000000000..e3acf771296 --- /dev/null +++ b/src/promptflow-azure/promptflow/azure/_version.py @@ -0,0 +1,7 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import importlib.metadata + +__version__ = importlib.metadata.version("promptflow-azure") diff --git a/src/promptflow-azure/pyproject.toml b/src/promptflow-azure/pyproject.toml new file mode 100644 index 00000000000..ac8c409b00c --- /dev/null +++ b/src/promptflow-azure/pyproject.toml @@ -0,0 +1,92 @@ +[tool.poetry] +name = "promptflow-azure" +version = "0.1.0b1" +description = "Prompt flow azure" + +license = "MIT" + +authors = [ + "Microsoft Corporation " +] + +repository = "https://github.com/microsoft/promptflow" +homepage = "https://microsoft.github.io/promptflow/" + +readme = ["README.md"] +keywords = ["azure"] + +classifiers = [ + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", +] + +packages = [ + { include = "promptflow" } +] + +[tool.poetry.urls] +"Bug Reports" = "https://github.com/microsoft/promptflow/issues" + +[tool.poetry.dependencies] +python = "<4.0,>=3.8" + +[tool.poetry.group.dev.dependencies] +pre-commit = "*" +import-linter = "*" + +[tool.poetry.group.test.dependencies] +pytest = "*" +pytest-cov = "*" +pytest-xdist = "*" + +[build-system] +requires = ["poetry-core>=1.5.0"] +build-backend = "poetry.core.masonry.api" + +[tool.pytest.ini_options] +markers = [ + "unittest", +] +# junit - analyse and publish test results (https://github.com/EnricoMi/publish-unit-test-result-action) +# durations - list the slowest test durations +addopts = """ +--junit-xml=test-results.xml \ +--cov=promptflow \ +--cov-config=pyproject.toml \ +--cov-report=term \ +--cov-report=html \ +--cov-report=xml \ +--dist loadfile \ +--log-level=info \ +--log-format="%(asctime)s %(levelname)s %(message)s" \ +--log-date-format="[%Y-%m-%d %H:%M:%S]" \ +--durations=5 \ +-ra \ +-vv +""" +testpaths = ["tests"] + +[tool.coverage.run] +omit = [ + "__init__.py", +] + +[tool.black] +line-length = 120 + +[tool.importlinter] +root_package = "promptflow" +include_external_packages = "True" + +[[tool.importlinter.contracts]] +name = "Contract forbidden modules" +type = "forbidden" +source_modules = ["promptflow.azure"] +forbidden_modules = [] diff --git a/src/promptflow-azure/tests/unittests/test.py b/src/promptflow-azure/tests/unittests/test.py new file mode 100644 index 00000000000..226a2ed4261 --- /dev/null +++ b/src/promptflow-azure/tests/unittests/test.py @@ -0,0 +1,11 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import pytest + + +@pytest.mark.unittest +class TestStartTrace: + def test_import(self): + assert True diff --git a/src/promptflow-core/README.md b/src/promptflow-core/README.md new file mode 100644 index 00000000000..6fba560fe03 --- /dev/null +++ b/src/promptflow-core/README.md @@ -0,0 +1,9 @@ +# Prompt flow core + +Prompt flow core. + +# Release History + +## 0.1.0b1 (Upcoming) + +- Stub version in PyPI. diff --git a/src/promptflow-core/promptflow/core/__init__.py b/src/promptflow-core/promptflow/core/__init__.py new file mode 100644 index 00000000000..555fb331eb2 --- /dev/null +++ b/src/promptflow-core/promptflow/core/__init__.py @@ -0,0 +1,7 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +from ._version import __version__ + +__all__ = ["__version__"] diff --git a/src/promptflow-core/promptflow/core/_version.py b/src/promptflow-core/promptflow/core/_version.py new file mode 100644 index 00000000000..f8cedcc6bd9 --- /dev/null +++ b/src/promptflow-core/promptflow/core/_version.py @@ -0,0 +1,7 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import importlib.metadata + +__version__ = importlib.metadata.version("promptflow-core") diff --git a/src/promptflow-core/pyproject.toml b/src/promptflow-core/pyproject.toml new file mode 100644 index 00000000000..9914d7aafa0 --- /dev/null +++ b/src/promptflow-core/pyproject.toml @@ -0,0 +1,94 @@ +[tool.poetry] +name = "promptflow-core" +version = "0.1.0b1" +description = "Prompt flow core" + +license = "MIT" + +authors = [ + "Microsoft Corporation " +] + +repository = "https://github.com/microsoft/promptflow" +homepage = "https://microsoft.github.io/promptflow/" + +readme = ["README.md"] +keywords = ["core"] + +classifiers = [ + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", +] + +packages = [ + { include = "promptflow" } +] + +[tool.poetry.urls] +"Bug Reports" = "https://github.com/microsoft/promptflow/issues" + +[tool.poetry.dependencies] +python = "<4.0,>=3.8" + +[tool.poetry.group.dev.dependencies] +pre-commit = "*" +import-linter = "*" + +[tool.poetry.group.test.dependencies] +pytest = "*" +pytest-cov = "*" +pytest-xdist = "*" + +[build-system] +requires = [ + "poetry-core>=1.5.0", +] +build-backend = "poetry.core.masonry.api" + +[tool.pytest.ini_options] +markers = [ + "unittest", +] +# junit - analyse and publish test results (https://github.com/EnricoMi/publish-unit-test-result-action) +# durations - list the slowest test durations +addopts = """ +--junit-xml=test-results.xml \ +--cov=promptflow \ +--cov-config=pyproject.toml \ +--cov-report=term \ +--cov-report=html \ +--cov-report=xml \ +--dist loadfile \ +--log-level=info \ +--log-format="%(asctime)s %(levelname)s %(message)s" \ +--log-date-format="[%Y-%m-%d %H:%M:%S]" \ +--durations=5 \ +-ra \ +-vv +""" +testpaths = ["tests"] + +[tool.coverage.run] +omit = [ + "__init__.py", +] + +[tool.black] +line-length = 120 + +[tool.importlinter] +root_package = "promptflow" +include_external_packages = "True" + +[[tool.importlinter.contracts]] +name = "Contract forbidden modules" +type = "forbidden" +source_modules = ["promptflow.core"] +forbidden_modules = ["promptflow.devkit", "promptflow.azure"] diff --git a/src/promptflow-core/tests/unittests/test.py b/src/promptflow-core/tests/unittests/test.py new file mode 100644 index 00000000000..226a2ed4261 --- /dev/null +++ b/src/promptflow-core/tests/unittests/test.py @@ -0,0 +1,11 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import pytest + + +@pytest.mark.unittest +class TestStartTrace: + def test_import(self): + assert True diff --git a/src/promptflow-devkit/README.md b/src/promptflow-devkit/README.md new file mode 100644 index 00000000000..826f57242d4 --- /dev/null +++ b/src/promptflow-devkit/README.md @@ -0,0 +1,9 @@ +# Prompt flow devkit + +Prompt flow devkit. + +# Release History + +## 0.1.0b1 (Upcoming) + +- Stub version in PyPI. diff --git a/src/promptflow-devkit/promptflow/devkit/__init__.py b/src/promptflow-devkit/promptflow/devkit/__init__.py new file mode 100644 index 00000000000..555fb331eb2 --- /dev/null +++ b/src/promptflow-devkit/promptflow/devkit/__init__.py @@ -0,0 +1,7 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +from ._version import __version__ + +__all__ = ["__version__"] diff --git a/src/promptflow-devkit/promptflow/devkit/_version.py b/src/promptflow-devkit/promptflow/devkit/_version.py new file mode 100644 index 00000000000..e59d8f07748 --- /dev/null +++ b/src/promptflow-devkit/promptflow/devkit/_version.py @@ -0,0 +1,7 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import importlib.metadata + +__version__ = importlib.metadata.version("promptflow-devkit") diff --git a/src/promptflow-devkit/pyproject.toml b/src/promptflow-devkit/pyproject.toml new file mode 100644 index 00000000000..2f59b331fcb --- /dev/null +++ b/src/promptflow-devkit/pyproject.toml @@ -0,0 +1,92 @@ +[tool.poetry] +name = "promptflow-devkit" +version = "0.1.0b1" +description = "Prompt flow devkit" + +license = "MIT" + +authors = [ + "Microsoft Corporation " +] + +repository = "https://github.com/microsoft/promptflow" +homepage = "https://microsoft.github.io/promptflow/" + +readme = ["README.md"] +keywords = ["devkit"] + +classifiers = [ + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", +] + +packages = [ + { include = "promptflow" } +] + +[tool.poetry.urls] +"Bug Reports" = "https://github.com/microsoft/promptflow/issues" + +[tool.poetry.dependencies] +python = "<4.0,>=3.8" + +[tool.poetry.group.dev.dependencies] +pre-commit = "*" +import-linter = "*" + +[tool.poetry.group.test.dependencies] +pytest = "*" +pytest-cov = "*" +pytest-xdist = "*" + +[build-system] +requires = ["poetry-core>=1.5.0"] +build-backend = "poetry.core.masonry.api" + +[tool.pytest.ini_options] +markers = [ + "unittest", +] +# junit - analyse and publish test results (https://github.com/EnricoMi/publish-unit-test-result-action) +# durations - list the slowest test durations +addopts = """ +--junit-xml=test-results.xml \ +--cov=promptflow \ +--cov-config=pyproject.toml \ +--cov-report=term \ +--cov-report=html \ +--cov-report=xml \ +--dist loadfile \ +--log-level=info \ +--log-format="%(asctime)s %(levelname)s %(message)s" \ +--log-date-format="[%Y-%m-%d %H:%M:%S]" \ +--durations=5 \ +-ra \ +-vv +""" +testpaths = ["tests"] + +[tool.coverage.run] +omit = [ + "__init__.py", +] + +[tool.black] +line-length = 120 + +[tool.importlinter] +root_package = "promptflow" +include_external_packages = "True" + +[[tool.importlinter.contracts]] +name = "Contract forbidden modules" +type = "forbidden" +source_modules = ["promptflow.devkit"] +forbidden_modules = ["promptflow.azure"] diff --git a/src/promptflow-devkit/tests/unittests/test.py b/src/promptflow-devkit/tests/unittests/test.py new file mode 100644 index 00000000000..226a2ed4261 --- /dev/null +++ b/src/promptflow-devkit/tests/unittests/test.py @@ -0,0 +1,11 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +import pytest + + +@pytest.mark.unittest +class TestStartTrace: + def test_import(self): + assert True diff --git a/src/promptflow-tracing/pyproject.toml b/src/promptflow-tracing/pyproject.toml index 07b58c43430..3c90fb9d279 100644 --- a/src/promptflow-tracing/pyproject.toml +++ b/src/promptflow-tracing/pyproject.toml @@ -42,12 +42,23 @@ opentelemetry-sdk = ">=1.22.0,<2.0.0" [tool.poetry.group.dev.dependencies] pre-commit = "*" +import-linter = "*" [tool.poetry.group.test.dependencies] pytest = "*" pytest-cov = "*" pytest-xdist = "*" +[tool.importlinter] +root_package = "promptflow" +include_external_packages = "True" + +[[tool.importlinter.contracts]] +name = "Contract forbidden modules" +type = "forbidden" +source_modules = ["promptflow.tracing"] +forbidden_modules = ["promptflow.devkit", "promptflow.azure", "promptflow.core"] + [build-system] requires = ["poetry-core>=1.5.0"] build-backend = "poetry.core.masonry.api" From 7d921ad08d7c59fc78c663ce948e4aad8d3be624 Mon Sep 17 00:00:00 2001 From: Yao <46446115+16oeahr@users.noreply.github.com> Date: Fri, 15 Mar 2024 16:09:26 +0800 Subject: [PATCH 063/204] [BugFix] Do not dynamic list azure deployment names for aoai vision tool in local (#2305) # Description Do not dynamic list azure deployment names in local - Original local error: ![image](https://github.com/microsoft/promptflow/assets/46446115/601226ae-2f98-465e-adb6-7625425e4140) - Local after code change: test tool package: ```cmd pip install --upgrade promptflow_tools==0.0.331 --extra-index-url https://azuremlsdktestpypi.azureedge.net/test-promptflow/ ``` 1) would not show above error if workspace triple is not set in local ![image](https://github.com/microsoft/promptflow/assets/46446115/8ffe72ef-cc9b-4352-bfe4-9a49aa923362) 2) and the aoai vision tool can run successfully: ![image](https://github.com/microsoft/promptflow/assets/46446115/d264abf4-2c1a-4c73-9863-0f9fe84b1431) - Portal after code change(should not effect portal): experiment link: https://ml.azure.com/prompts/flow/54ee9268-b711-420d-8da1-20bb2aed93e6/c637d992-8150-4b15-a6fb-df88b25e90e9/details?wsid=/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourcegroups/promptflow/workspaces/yaopfeus&tid=72f988bf-86f1-41af-91ab-2d7cd011db47 Screenshot with: 1) the deployment names can be listed on portal: 2) The aoai vision tool can run successfully: ![image](https://github.com/microsoft/promptflow/assets/46446115/388cf32f-74dc-4787-a9f8-b52226c4fd51) # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [x] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: yalu4 --- src/promptflow-tools/promptflow/tools/aoai_gpt4v.py | 6 +++--- src/promptflow-tools/promptflow/tools/common.py | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/promptflow-tools/promptflow/tools/aoai_gpt4v.py b/src/promptflow-tools/promptflow/tools/aoai_gpt4v.py index ddd0b06cd87..b2f4aaacff7 100644 --- a/src/promptflow-tools/promptflow/tools/aoai_gpt4v.py +++ b/src/promptflow-tools/promptflow/tools/aoai_gpt4v.py @@ -10,9 +10,9 @@ def list_deployment_names( - subscription_id, - resource_group_name, - workspace_name, + subscription_id=None, + resource_group_name=None, + workspace_name=None, connection="" ) -> List[Dict[str, str]]: res = [] diff --git a/src/promptflow-tools/promptflow/tools/common.py b/src/promptflow-tools/promptflow/tools/common.py index fc4aed17dad..0192e0aa20e 100644 --- a/src/promptflow-tools/promptflow/tools/common.py +++ b/src/promptflow-tools/promptflow/tools/common.py @@ -253,21 +253,21 @@ def get_workspace_triad(): def list_deployment_connections( - subscription_id, - resource_group_name, - workspace_name, + subscription_id=None, + resource_group_name=None, + workspace_name=None, connection="", ): try: - # Do not support dynamic list for local. + # Do not support dynamic list if azure packages are not installed. from azure.mgmt.cognitiveservices import CognitiveServicesManagementClient from promptflow.azure.operations._arm_connection_operations import \ ArmConnectionOperations, OpenURLFailedUserError except ImportError: return None - # For local, subscription_id is None. Does not support dynamic list for local. - if not subscription_id: + # Do not support dynamic list if the workspace triple is set in the local. + if not subscription_id or not resource_group_name or not workspace_name: return None try: From b702ae6d04aad72b3c1e6e16180e408498cbd32f Mon Sep 17 00:00:00 2001 From: Heyi Tang Date: Fri, 15 Mar 2024 16:12:27 +0800 Subject: [PATCH 064/204] [Internal] Add test case for rasie_ex=True (#2366) # Description Add two test cases for raise_ex=True scenario. This pull request includes changes to the `src/promptflow/tests/executor/e2etests/test_executor_execution_failures.py` file. The changes include the importation of the `ToolExecutionError` from `promptflow._core._errors` and the addition of a new test case `test_executor_exec_line_fail_with_exception` to handle execution failures. Here are the key changes: * [`src/promptflow/tests/executor/e2etests/test_executor_execution_failures.py`](diffhunk://#diff-8de4be68b2077aca220c3542234a1562f1e4b76ffdd1d2746e40b0a860387ef4R5): Imported `ToolExecutionError` from `promptflow._core._errors` to handle tool execution errors. * [`src/promptflow/tests/executor/e2etests/test_executor_execution_failures.py`](diffhunk://#diff-8de4be68b2077aca220c3542234a1562f1e4b76ffdd1d2746e40b0a860387ef4R118-R143): Added a new test case `test_executor_exec_line_fail_with_exception`. This test case is designed to handle execution failures by raising a `ToolExecutionError` exception. It uses the `parametrize` decorator from `pytest` to run the test case with different parameters. The test case asserts that the error codes are correct, the error message starts with the expected string, the error message contains the expected message, and the stack trace matches the expected stack trace. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Heyi --- .../test_executor_execution_failures.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/promptflow/tests/executor/e2etests/test_executor_execution_failures.py b/src/promptflow/tests/executor/e2etests/test_executor_execution_failures.py index 7a5d5078224..6fbf4510b7c 100644 --- a/src/promptflow/tests/executor/e2etests/test_executor_execution_failures.py +++ b/src/promptflow/tests/executor/e2etests/test_executor_execution_failures.py @@ -2,6 +2,7 @@ from promptflow.contracts.run_info import Status from promptflow.executor import FlowExecutor +from promptflow._core._errors import ToolExecutionError from ..utils import ( get_yaml_file, @@ -114,3 +115,29 @@ def test_executor_exec_line_fail(self, flow_folder, failed_node_name, message): assert len(stacktrace) == len(expected_stack_trace) for expected_item, actual_item in zip(expected_stack_trace, stacktrace): assert expected_item in actual_item + + @pytest.mark.parametrize( + "flow_folder, failed_node_name, message", + [ + ("sync_tools_failures", "sync_fail", "In tool raise_an_exception: dummy_input"), + ("async_tools_failures", "async_fail", "In tool raise_an_exception_async: dummy_input"), + ], + ) + def test_executor_exec_line_fail_with_exception(self, flow_folder, failed_node_name, message): + yaml_file = get_yaml_file(flow_folder) + # Here we set raise_ex to True to make sure the exception is raised and we can check the error detail. + executor = FlowExecutor.create(yaml_file, {}, raise_ex=True) + with pytest.raises(ToolExecutionError) as e: + executor.exec_line({}) + ex = e.value + assert ex.error_codes == ["UserError", "ToolExecutionError"] + ex_str = str(ex) + assert ex_str.startswith(f"Execution failure in '{failed_node_name}'") + assert message in ex_str + expected_stack_trace = expected_stack_traces[flow_folder] + stacktrace = ex.tool_traceback.split("\n") + # Remove "^^^^^^^^" lines as they are not part of actual stack trace + stacktrace = [line for line in stacktrace if "^^^^^^^^" not in line] + assert len(stacktrace) == len(expected_stack_trace) + for expected_item, actual_item in zip(expected_stack_trace, stacktrace): + assert expected_item in actual_item From 59b19c6f8e56407a4e72a2fec940c19dece5e6d2 Mon Sep 17 00:00:00 2001 From: Robben Wang <350053002@qq.com> Date: Fri, 15 Mar 2024 17:02:17 +0800 Subject: [PATCH 065/204] Create running placeholder item in LineSummary table (#2243) # Description Create a running placeholder item in LineSummary table. Then if line run needs to execute a long time, customer could see it in advance in UI. ![image](https://github.com/microsoft/promptflow/assets/17527303/5f768dd1-6a55-448b-80b1-ab0345af24a6) ![image](https://github.com/microsoft/promptflow/assets/17527303/da77ae9e-d1a2-443b-9214-a3c59e3710b5) This PR also add special logic for inserting evaluations. We only insert it after find the main flow is `Ok`. Because when main flow is finished, we need to invoke upsert_item, which will override existing `evaluations`. Only insert evaluations when main flow is `Ok` could avoid missing data. # All Promptflow Contribution checklist: - [X] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [X] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [X] Title of the pull request is clear and informative. - [X] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [X] Pull request includes test coverage for the included changes. --------- Co-authored-by: robbenwang --- src/promptflow/promptflow/_constants.py | 1 + .../azure/_storage/cosmosdb/summary.py | 174 ++++++++---- .../unittests/test_summary.py | 265 +++++++++++++----- 3 files changed, 305 insertions(+), 135 deletions(-) diff --git a/src/promptflow/promptflow/_constants.py b/src/promptflow/promptflow/_constants.py index f2cb38c038a..6ecd6b986b8 100644 --- a/src/promptflow/promptflow/_constants.py +++ b/src/promptflow/promptflow/_constants.py @@ -76,6 +76,7 @@ class AvailableIDE: OTEL_RESOURCE_SERVICE_NAME = "promptflow" DEFAULT_SPAN_TYPE = "default" RUNNING_LINE_RUN_STATUS = "Running" +OK_LINE_RUN_STATUS = "Ok" class TraceEnvironmentVariableName: diff --git a/src/promptflow/promptflow/azure/_storage/cosmosdb/summary.py b/src/promptflow/promptflow/azure/_storage/cosmosdb/summary.py index 42dde3beaf8..01e73bd7d38 100644 --- a/src/promptflow/promptflow/azure/_storage/cosmosdb/summary.py +++ b/src/promptflow/promptflow/azure/_storage/cosmosdb/summary.py @@ -4,7 +4,16 @@ import typing from dataclasses import asdict, dataclass, field -from promptflow._constants import SpanAttributeFieldName, SpanFieldName, SpanStatusFieldName +from azure.cosmos import ContainerProxy +from azure.cosmos.exceptions import CosmosResourceExistsError, CosmosResourceNotFoundError + +from promptflow._constants import ( + OK_LINE_RUN_STATUS, + RUNNING_LINE_RUN_STATUS, + SpanAttributeFieldName, + SpanFieldName, + SpanStatusFieldName, +) from promptflow._sdk._utils import json_loads_parse_const_as_str from promptflow._sdk.entities._trace import Span @@ -19,17 +28,17 @@ class SummaryLine: partition_key: str session_id: str trace_id: str - root_span_id: str - inputs: typing.Dict - outputs: typing.Dict - start_time: datetime.datetime - end_time: datetime.datetime - status: str - latency: float - name: str - kind: str - created_by: typing.Dict - cumulative_token_count: typing.Optional[typing.Dict[str, int]] + root_span_id: str = "" + inputs: typing.Dict = field(default_factory=dict) + outputs: typing.Dict = field(default_factory=dict) + start_time: str = "" + end_time: str = "" + status: str = "" + latency: float = 0.0 + name: str = "" + kind: str = "" + created_by: typing.Dict = field(default_factory=dict) + cumulative_token_count: typing.Optional[typing.Dict[str, int]] = field(default_factory=dict) evaluations: typing.Dict = field(default_factory=dict) # Only for batch run batch_run_id: str = None @@ -64,13 +73,14 @@ def __init__(self, span: Span, created_by: typing.Dict, logger: logging.Logger) self.created_by = created_by self.logger = logger - def persist(self, client): + def persist(self, client: ContainerProxy): if self.span.parent_span_id: - # This is not the root span + # For non root span, write a placeholder item to LineSummary table. + self._persist_running_item(client) return attributes = self.span._content[SpanFieldName.ATTRIBUTES] - # Persist span as a line run, since even evaluation is a line run, could be referenced by other evaluations. + # Persist root span as a line run. self._persist_line_run(client) if ( @@ -87,14 +97,39 @@ def persist(self, client): SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID in attributes and SpanAttributeFieldName.LINE_NUMBER in attributes ): - # Add sleep to wait for main run to be persisted. - # We receive requests to persist main flow first and then evaluation, - # but init cosmosDB client is time consuming, and the later request will reuse the same client, so it's - # possible that the main run is not persisted when we start to patch evaluation to it. - time.sleep(1) - self._insert_evaluation(client) - - def _persist_line_run(self, client): + self._insert_evaluation_with_retry(client) + + # When there is the first span for line run, write placeholder item to LineSummary table. + def _persist_running_item(self, client: ContainerProxy): + trace_id = self.span.trace_id + session_id = self.span.session_id + + item = SummaryLine( + id=trace_id, + partition_key=session_id, + session_id=session_id, + trace_id=trace_id, + status=RUNNING_LINE_RUN_STATUS, + created_by=self.created_by, + start_time=self.span._content[SpanFieldName.START_TIME], + ) + attributes: dict = self.span._content[SpanFieldName.ATTRIBUTES] + if SpanAttributeFieldName.LINE_RUN_ID in attributes: + item.line_run_id = attributes[SpanAttributeFieldName.LINE_RUN_ID] + elif SpanAttributeFieldName.BATCH_RUN_ID in attributes and SpanAttributeFieldName.LINE_NUMBER in attributes: + item.batch_run_id = attributes[SpanAttributeFieldName.BATCH_RUN_ID] + item.line_number = attributes[SpanAttributeFieldName.LINE_NUMBER] + try: + client.read_item(item.id, item.partition_key) + except CosmosResourceNotFoundError: + # Only create when for not exist situation. + try: + client.create_item(body=asdict(item)) + except CosmosResourceExistsError: + # Ignore conflict error. + return + + def _persist_line_run(self, client: ContainerProxy): attributes: dict = self.span._content[SpanFieldName.ATTRIBUTES] session_id = self.span.session_id @@ -125,8 +160,8 @@ def _persist_line_run(self, client): session_id=session_id, trace_id=self.span.trace_id, root_span_id=self.span.span_id, - inputs=json_loads_parse_const_as_str(attributes.get(SpanAttributeFieldName.INPUTS, "null")), - outputs=json_loads_parse_const_as_str(attributes.get(SpanAttributeFieldName.OUTPUT, "null")), + inputs=json_loads_parse_const_as_str(attributes.get(SpanAttributeFieldName.INPUTS, "{}")), + outputs=json_loads_parse_const_as_str(attributes.get(SpanAttributeFieldName.OUTPUT, "{}")), start_time=start_time, end_time=end_time, status=self.span._content[SpanFieldName.STATUS][SpanStatusFieldName.STATUS_CODE], @@ -143,54 +178,71 @@ def _persist_line_run(self, client): item.line_number = attributes[SpanAttributeFieldName.LINE_NUMBER] self.logger.info(f"Persist main run for LineSummary id: {item.id}") - return client.create_item(body=asdict(item)) - - def _insert_evaluation(self, client): + # Use upsert because we may create running item in advance. + return client.upsert_item(body=asdict(item)) + + def _insert_evaluation_with_retry(self, client: ContainerProxy): + for attempt in range(3): + try: + # We receive requests to persist main flow first and then evaluation, + # but init cosmosDB client could be time consuming, and the later request will reuse the same client, + # so it's possible that the main run is not persisted when we start to patch evaluation to it. + self._insert_evaluation(client) + break + except InsertEvaluationsRetriableException as e: + if attempt == 2: # If this is the last attempt, ignore and just return + self.logger.error(f"Error while inserting evaluation: {e}") + return + time.sleep(1) + + def _insert_evaluation(self, client: ContainerProxy): attributes: dict = self.span._content[SpanFieldName.ATTRIBUTES] partition_key = self.span.session_id name = self.span.name item = LineEvaluation( trace_id=self.span.trace_id, root_span_id=self.span.span_id, - outputs=json_loads_parse_const_as_str(attributes[SpanAttributeFieldName.OUTPUT]), + outputs=json_loads_parse_const_as_str(attributes.get(SpanAttributeFieldName.OUTPUT, "{}")), name=name, created_by=self.created_by, ) - if SpanAttributeFieldName.REFERENCED_LINE_RUN_ID in attributes: - # Query to get item id from line run id. - line_run_id = attributes[SpanAttributeFieldName.REFERENCED_LINE_RUN_ID] - query = "SELECT * FROM c WHERE c.line_run_id = @line_run_id" - parameters = [ - {"name": "@line_run_id", "value": line_run_id}, - ] - items = list(client.query_items(query=query, parameters=parameters, partition_key=partition_key)) - if items: - main_id = items[0]["id"] - else: - self.logger.error(f"Cannot find main run for line run id: {line_run_id}") - return - line_run_id = attributes[SpanAttributeFieldName.LINE_RUN_ID] - item.line_run_id = line_run_id - else: - # Query to get item id from batch run id and line number. - referenced_batch_run_id = attributes[SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID] - line_number = attributes[SpanAttributeFieldName.LINE_NUMBER] - query = "SELECT * FROM c WHERE c.batch_run_id = @batch_run_id AND c.line_number = @line_number" - parameters = [ - {"name": "@batch_run_id", "value": referenced_batch_run_id}, - {"name": "@line_number", "value": line_number}, - ] - items = list(client.query_items(query=query, parameters=parameters, partition_key=partition_key)) - if items: - main_id = items[0]["id"] - else: - self.logger.error( - f"Cannot find main run for batch run id: {referenced_batch_run_id} and line number: {line_number}" + + # None is the default value for the field. + referenced_line_run_id = attributes.get(SpanAttributeFieldName.REFERENCED_LINE_RUN_ID, None) + referenced_batch_run_id = attributes.get(SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID, None) + line_number = attributes.get(SpanAttributeFieldName.LINE_NUMBER, None) + + query = ( + "SELECT * FROM c WHERE " + "c.line_run_id = @line_run_id AND c.batch_run_id = @batch_run_id AND c.line_number = @line_number" + ) + parameters = [ + {"name": "@line_run_id", "value": referenced_line_run_id}, + {"name": "@batch_run_id", "value": referenced_batch_run_id}, + {"name": "@line_number", "value": line_number}, + ] + query_results = list(client.query_items(query=query, parameters=parameters, partition_key=partition_key)) + + if query_results: + current_status = query_results[0].get("status", "") + if current_status != OK_LINE_RUN_STATUS: + raise InsertEvaluationsRetriableException( + f"Main run status is {current_status}, cannot patch evaluation now." ) - return + main_id = query_results[0]["id"] + else: + raise InsertEvaluationsRetriableException(f"Cannot find main run by parameter {parameters}.") + + if SpanAttributeFieldName.LINE_RUN_ID in attributes: + item.line_run_id = attributes[SpanAttributeFieldName.LINE_RUN_ID] + else: item.batch_run_id = attributes[SpanAttributeFieldName.BATCH_RUN_ID] - item.line_number = attributes[SpanAttributeFieldName.LINE_NUMBER] + item.line_number = line_number patch_operations = [{"op": "add", "path": f"/evaluations/{name}", "value": asdict(item)}] self.logger.info(f"Insert evaluation for LineSummary main_id: {main_id}") return client.patch_item(item=main_id, partition_key=partition_key, patch_operations=patch_operations) + + +class InsertEvaluationsRetriableException(Exception): + pass diff --git a/src/promptflow/tests/sdk_cli_azure_test/unittests/test_summary.py b/src/promptflow/tests/sdk_cli_azure_test/unittests/test_summary.py index 08dbbb1ca71..7185f292e7a 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/unittests/test_summary.py +++ b/src/promptflow/tests/sdk_cli_azure_test/unittests/test_summary.py @@ -2,11 +2,17 @@ from unittest import mock import pytest +from azure.cosmos.exceptions import CosmosResourceExistsError, CosmosResourceNotFoundError from flask import Flask -from promptflow._constants import SpanAttributeFieldName, SpanFieldName +from promptflow._constants import OK_LINE_RUN_STATUS, SpanAttributeFieldName, SpanFieldName from promptflow._sdk.entities._trace import Span -from promptflow.azure._storage.cosmosdb.summary import LineEvaluation, Summary, SummaryLine +from promptflow.azure._storage.cosmosdb.summary import ( + InsertEvaluationsRetriableException, + LineEvaluation, + Summary, + SummaryLine, +) @pytest.mark.unittest @@ -22,7 +28,7 @@ def setup_data(self): kind="client", start_time="2022-01-01T00:00:00Z", end_time="2022-01-01T00:01:00Z", - status={"status_code": "OK"}, + status={"status_code": OK_LINE_RUN_STATUS}, attributes={"key1": "value1", "key2": "value2"}, resource={"type": "resource_type", "name": "resource_name"}, span_type="custom", @@ -40,54 +46,56 @@ def setup_data(self): yield def test_non_root_span_does_not_persist(self): - with mock.patch.object(self.summary, "_persist_line_run") as mock_persist_line_run, mock.patch.object( - self.summary, "_insert_evaluation" - ) as mock_insert_evaluation: - mock_client = mock.Mock() - self.summary.span.parent_span_id = "parent_span_id" - self.summary.persist(mock_client) - mock_persist_line_run.assert_not_called() - mock_insert_evaluation.assert_not_called() - - def test_aggregate_run_does_not_persist(self): - with mock.patch.object(self.summary, "_persist_line_run") as mock_persist_line_run, mock.patch.object( - self.summary, "_insert_evaluation" - ) as mock_insert_evaluation: - mock_client = mock.Mock() - self.summary.span.parent_span_id = None - attributes = self.summary.span._content[SpanFieldName.ATTRIBUTES] - attributes.pop(SpanAttributeFieldName.LINE_RUN_ID, None) - attributes.pop(SpanAttributeFieldName.BATCH_RUN_ID, None) + mock_client = mock.Mock() + self.summary.span.parent_span_id = "parent_span_id" + + with mock.patch.multiple( + self.summary, + _persist_running_item=mock.DEFAULT, + _persist_line_run=mock.DEFAULT, + _insert_evaluation_with_retry=mock.DEFAULT, + ) as values: self.summary.persist(mock_client) - mock_persist_line_run.assert_called_once() - mock_insert_evaluation.assert_not_called() - - def test_non_evaluation_span_persists_as_main_run(self): - with mock.patch.object(self.summary, "_persist_line_run") as mock_persist_line_run, mock.patch.object( - self.summary, "_insert_evaluation" - ) as mock_insert_evaluation: - mock_client = mock.Mock() - self.summary.span.parent_span_id = None - self.summary.span._content[SpanFieldName.ATTRIBUTES][SpanAttributeFieldName.LINE_RUN_ID] = "line_run_id" + values["_persist_running_item"].assert_called_once() + values["_persist_line_run"].assert_not_called() + values["_insert_evaluation_with_retry"].assert_not_called() + + def test_root_span_persist_main_line(self): + mock_client = mock.Mock() + self.summary.span.parent_span_id = None + attributes = self.summary.span._content[SpanFieldName.ATTRIBUTES] + attributes.pop(SpanAttributeFieldName.LINE_RUN_ID, None) + attributes.pop(SpanAttributeFieldName.BATCH_RUN_ID, None) + with mock.patch.multiple( + self.summary, + _persist_running_item=mock.DEFAULT, + _persist_line_run=mock.DEFAULT, + _insert_evaluation_with_retry=mock.DEFAULT, + ) as values: self.summary.persist(mock_client) - mock_persist_line_run.assert_called_once() - mock_insert_evaluation.assert_not_called() - - def test_non_evaluation_span_persists_with_referenced_line_run_id(self): - with mock.patch.object(self.summary, "_persist_line_run") as mock_persist_line_run, mock.patch.object( - self.summary, "_insert_evaluation" - ) as mock_insert_evaluation: - mock_client = mock.Mock() - self.summary.span.parent_span_id = None - self.summary.span._content[SpanFieldName.ATTRIBUTES][SpanAttributeFieldName.LINE_RUN_ID] = "line_run_id" - self.summary.span._content[SpanFieldName.ATTRIBUTES][ - SpanAttributeFieldName.REFERENCED_LINE_RUN_ID - ] = "main_line_run_id" + values["_persist_running_item"].assert_not_called() + values["_persist_line_run"].assert_called_once() + values["_insert_evaluation_with_retry"].assert_not_called() + + def test_root_evaluation_span_insert(self): + mock_client = mock.Mock() + self.summary.span.parent_span_id = None + self.summary.span._content[SpanFieldName.ATTRIBUTES][SpanAttributeFieldName.LINE_RUN_ID] = "line_run_id" + self.summary.span._content[SpanFieldName.ATTRIBUTES][ + SpanAttributeFieldName.REFERENCED_LINE_RUN_ID + ] = "main_line_run_id" + with mock.patch.multiple( + self.summary, + _persist_running_item=mock.DEFAULT, + _persist_line_run=mock.DEFAULT, + _insert_evaluation_with_retry=mock.DEFAULT, + ) as values: self.summary.persist(mock_client) - mock_persist_line_run.assert_called_once() - mock_insert_evaluation.assert_called_once() + values["_persist_running_item"].assert_not_called() + values["_persist_line_run"].assert_called_once() + values["_insert_evaluation_with_retry"].assert_called_once() - def test_insert_evaluation_line_run_not_exist(self): + def test_insert_evaluation_not_found(self): client = mock.Mock() self.summary.span._content = { SpanFieldName.ATTRIBUTES: { @@ -98,11 +106,28 @@ def test_insert_evaluation_line_run_not_exist(self): } client.query_items.return_value = [] - self.summary._insert_evaluation(client) + with pytest.raises(InsertEvaluationsRetriableException): + self.summary._insert_evaluation(client) + client.query_items.assert_called_once() + client.patch_item.assert_not_called() + + def test_insert_evaluation_not_finished(self): + client = mock.Mock() + self.summary.span._content = { + SpanFieldName.ATTRIBUTES: { + SpanAttributeFieldName.REFERENCED_LINE_RUN_ID: "referenced_line_run_id", + SpanAttributeFieldName.LINE_RUN_ID: "line_run_id", + SpanAttributeFieldName.OUTPUT: '{"output_key": "output_value"}', + } + } + + client.query_items.return_value = [{"id": "main_id"}] + with pytest.raises(InsertEvaluationsRetriableException): + self.summary._insert_evaluation(client) client.query_items.assert_called_once() client.patch_item.assert_not_called() - def test_insert_evaluation_line_run_normal(self): + def test_insert_evaluation_normal(self): client = mock.Mock() self.summary.span._content = { SpanFieldName.ATTRIBUTES: { @@ -123,7 +148,7 @@ def test_insert_evaluation_line_run_normal(self): {"op": "add", "path": f"/evaluations/{self.summary.span.name}", "value": asdict(expected_item)} ] - client.query_items.return_value = [{"id": "main_id"}] + client.query_items.return_value = [{"id": "main_id", "status": OK_LINE_RUN_STATUS}] self.summary._insert_evaluation(client) client.query_items.assert_called_once() client.patch_item.assert_called_once_with( @@ -132,49 +157,85 @@ def test_insert_evaluation_line_run_normal(self): patch_operations=expected_patch_operations, ) - def test_insert_evaluation_batch_run_not_exist(self): + def test_insert_evaluation_query_line(self): client = mock.Mock() self.summary.span._content = { SpanFieldName.ATTRIBUTES: { - SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID: "referenced_batch_run_id", - SpanAttributeFieldName.BATCH_RUN_ID: "batch_run_id", - SpanAttributeFieldName.LINE_NUMBER: "1", + SpanAttributeFieldName.REFERENCED_LINE_RUN_ID: "referenced_line_run_id", + SpanAttributeFieldName.LINE_RUN_ID: "line_run_id", SpanAttributeFieldName.OUTPUT: '{"output_key": "output_value"}', } } - - client.query_items.return_value = [] + client.query_items.return_value = [{"id": "main_id", "status": OK_LINE_RUN_STATUS}] self.summary._insert_evaluation(client) - client.query_items.assert_called_once() - client.patch_item.assert_not_called() + client.query_items.assert_called_once_with( + query=( + "SELECT * FROM c WHERE " + "c.line_run_id = @line_run_id AND c.batch_run_id = @batch_run_id AND c.line_number = @line_number" + ), + parameters=[ + {"name": "@line_run_id", "value": "referenced_line_run_id"}, + {"name": "@batch_run_id", "value": None}, + {"name": "@line_number", "value": None}, + ], + partition_key="test_session_id", + ) - def test_insert_evaluation_batch_run_normal(self): + expected_item = LineEvaluation( + line_run_id="line_run_id", + trace_id=self.summary.span.trace_id, + root_span_id=self.summary.span.span_id, + outputs={"output_key": "output_value"}, + name=self.summary.span.name, + created_by=self.FAKE_CREATED_BY, + ) + expected_patch_operations = [ + {"op": "add", "path": f"/evaluations/{self.summary.span.name}", "value": asdict(expected_item)} + ] + client.patch_item.assert_called_once_with( + item="main_id", + partition_key="test_session_id", + patch_operations=expected_patch_operations, + ) + + def test_insert_evaluation_query_batch_run(self): client = mock.Mock() self.summary.span._content = { SpanFieldName.ATTRIBUTES: { SpanAttributeFieldName.REFERENCED_BATCH_RUN_ID: "referenced_batch_run_id", SpanAttributeFieldName.BATCH_RUN_ID: "batch_run_id", - SpanAttributeFieldName.LINE_NUMBER: "1", + SpanAttributeFieldName.LINE_NUMBER: 1, SpanAttributeFieldName.OUTPUT: '{"output_key": "output_value"}', } } + client.query_items.return_value = [{"id": "main_id", "status": OK_LINE_RUN_STATUS}] + + self.summary._insert_evaluation(client) + client.query_items.assert_called_once_with( + query=( + "SELECT * FROM c WHERE " + "c.line_run_id = @line_run_id AND c.batch_run_id = @batch_run_id AND c.line_number = @line_number" + ), + parameters=[ + {"name": "@line_run_id", "value": None}, + {"name": "@batch_run_id", "value": "referenced_batch_run_id"}, + {"name": "@line_number", "value": 1}, + ], + partition_key="test_session_id", + ) + expected_item = LineEvaluation( batch_run_id="batch_run_id", - line_number="1", + line_number=1, trace_id=self.summary.span.trace_id, root_span_id=self.summary.span.span_id, outputs={"output_key": "output_value"}, name=self.summary.span.name, created_by=self.FAKE_CREATED_BY, ) - expected_patch_operations = [ {"op": "add", "path": f"/evaluations/{self.summary.span.name}", "value": asdict(expected_item)} ] - - client.query_items.return_value = [{"id": "main_id"}] - self.summary._insert_evaluation(client) - client.query_items.assert_called_once() client.patch_item.assert_called_once_with( item="main_id", partition_key="test_session_id", @@ -207,7 +268,7 @@ def test_persist_line_run(self): outputs={"output_key": "output_value"}, start_time="2022-01-01T00:00:00Z", end_time="2022-01-01T00:01:00Z", - status="OK", + status=OK_LINE_RUN_STATUS, latency=60.0, name=self.summary.span.name, kind="promptflow.TraceType.Flow", @@ -219,9 +280,8 @@ def test_persist_line_run(self): }, ) - with mock.patch.object(client, "create_item") as mock_create_item: - self.summary._persist_line_run(client) - mock_create_item.assert_called_once_with(body=asdict(expected_item)) + self.summary._persist_line_run(client) + client.upsert_item.assert_called_once_with(body=asdict(expected_item)) def test_persist_batch_run(self): client = mock.Mock() @@ -251,7 +311,7 @@ def test_persist_batch_run(self): outputs={"output_key": "output_value"}, start_time="2022-01-01T00:00:00Z", end_time="2022-01-01T00:01:00Z", - status="OK", + status=OK_LINE_RUN_STATUS, latency=60.0, name=self.summary.span.name, created_by=self.FAKE_CREATED_BY, @@ -263,6 +323,63 @@ def test_persist_batch_run(self): }, ) - with mock.patch.object(client, "create_item") as mock_create_item: - self.summary._persist_line_run(client) - mock_create_item.assert_called_once_with(body=asdict(expected_item)) + self.summary._persist_line_run(client) + client.upsert_item.assert_called_once_with(body=asdict(expected_item)) + + def test_insert_evaluation_with_retry_success(self): + client = mock.Mock() + with mock.patch.object(self.summary, "_insert_evaluation") as mock_insert_evaluation: + self.summary._insert_evaluation_with_retry(client) + mock_insert_evaluation.assert_called_once_with(client) + + def test_insert_evaluation_with_retry_exception(self): + client = mock.Mock() + with mock.patch.object(self.summary, "_insert_evaluation") as mock_insert_evaluation: + mock_insert_evaluation.side_effect = InsertEvaluationsRetriableException() + with mock.patch("time.sleep") as mock_sleep: + self.summary._insert_evaluation_with_retry(client) + mock_insert_evaluation.assert_called_with(client) + assert mock_insert_evaluation.call_count == 3 + assert mock_sleep.call_count == 2 + + def test_insert_evaluation_with_non_retry_exception(self): + client = mock.Mock() + with mock.patch.object(self.summary, "_insert_evaluation") as mock_insert_evaluation: + mock_insert_evaluation.side_effect = Exception() + with pytest.raises(Exception): + self.summary._insert_evaluation_with_retry(client) + assert mock_insert_evaluation.call_count == 1 + + def test_persist_running_item_create_item(self): + client = mock.Mock() + client.read_item.side_effect = CosmosResourceNotFoundError + + self.summary._persist_running_item(client) + + client.read_item.assert_called_once_with(self.summary.span.trace_id, self.summary.span.session_id) + client.create_item.assert_called_once() + + def test_persist_running_item_create_item_conflict_error(self): + client = mock.Mock() + client.read_item.side_effect = CosmosResourceNotFoundError + client.create_item.side_effect = CosmosResourceExistsError + + self.summary._persist_running_item(client) + + client.read_item.assert_called_once_with(self.summary.span.trace_id, self.summary.span.session_id) + client.create_item.assert_called_once() + + def test_persist_running_item_item_already_exists(self): + client = mock.Mock() + item = SummaryLine( + id=self.summary.span.trace_id, + partition_key=self.summary.span.session_id, + session_id=self.summary.span.session_id, + trace_id=self.summary.span.trace_id, + ) + client.read_item.return_value = item + + self.summary._persist_running_item(client) + + client.read_item.assert_called_once_with(item.id, item.partition_key) + client.create_item.assert_not_called() From 32aaf725f639250aab9b9b91f044240b66c56096 Mon Sep 17 00:00:00 2001 From: chenyang Date: Fri, 15 Mar 2024 17:26:49 +0800 Subject: [PATCH 066/204] distinguish flow type in telemetry (#2293) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. Need to distinguish the type of flow when **creating a run** in telemetry. I will add a "**flow_type**" field to **custom_dimensions** for differentiation # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --------- Co-authored-by: Philip Gao --- src/promptflow/promptflow/_constants.py | 7 + .../promptflow/_sdk/_telemetry/activity.py | 17 +- .../promptflow/_sdk/entities/_run.py | 13 + .../_sdk/operations/_run_operations.py | 12 + .../azure/operations/_run_operations.py | 12 + .../e2etests/test_telemetry.py | 54 +++ .../sdk_cli_test/e2etests/test_telemetry.py | 63 +++ ...etry_TestTelemetry_test_run_yaml_type.yaml | 402 ++++++++++++++++++ 8 files changed, 579 insertions(+), 1 deletion(-) create mode 100644 src/promptflow/tests/sdk_cli_test/e2etests/test_telemetry.py create mode 100644 src/promptflow/tests/test_configs/recordings/test_telemetry_TestTelemetry_test_run_yaml_type.yaml diff --git a/src/promptflow/promptflow/_constants.py b/src/promptflow/promptflow/_constants.py index 6ecd6b986b8..53facb646da 100644 --- a/src/promptflow/promptflow/_constants.py +++ b/src/promptflow/promptflow/_constants.py @@ -52,6 +52,13 @@ class FlowLanguage: CSharp = "csharp" +class FlowType: + """The enum of flow type.""" + + DAG_FLOW = "dag" + FLEX_FLOW = "flex" + + class AvailableIDE: VS = "vs" VS_CODE = "vsc" diff --git a/src/promptflow/promptflow/_sdk/_telemetry/activity.py b/src/promptflow/promptflow/_sdk/_telemetry/activity.py index 4693780c67e..09de82d7ed0 100644 --- a/src/promptflow/promptflow/_sdk/_telemetry/activity.py +++ b/src/promptflow/promptflow/_sdk/_telemetry/activity.py @@ -184,6 +184,17 @@ def log_activity( raise exception +def extract_telemetry_info(self, *args, **kwargs): + """Extract pf telemetry info from given telemetry mix-in instance.""" + result = {} + try: + if isinstance(self, TelemetryMixin): + return self._get_telemetry_values(*args, **kwargs) + except Exception: + pass + return result + + def update_activity_name(activity_name, kwargs=None, args=None): """Update activity name according to kwargs. For flow test, we want to know if it's node test.""" if activity_name == "pf.flows.test": @@ -227,8 +238,12 @@ def wrapper(self, *args, **kwargs): logger = get_telemetry_logger() + if "activity_name" not in kwargs: + custom_dimensions.update(extract_telemetry_info(self, *args, **kwargs, activity_name=activity_name)) + else: + custom_dimensions.update(extract_telemetry_info(self, *args, **kwargs)) + if isinstance(self, TelemetryMixin): - custom_dimensions.update(self._get_telemetry_values()) user_agent = self._get_user_agent_override() else: user_agent = None diff --git a/src/promptflow/promptflow/_sdk/entities/_run.py b/src/promptflow/promptflow/_sdk/entities/_run.py index aba9575a8cb..29754a4f08a 100644 --- a/src/promptflow/promptflow/_sdk/entities/_run.py +++ b/src/promptflow/promptflow/_sdk/entities/_run.py @@ -745,3 +745,16 @@ def _copy(self, **kwargs): } logger.debug(f"Run init params: {init_params}") return Run(**init_params) + + @functools.cached_property + def _flow_type(self) -> str: + """Get flow type of run.""" + + from promptflow import load_flow + from promptflow._constants import FlowType + from promptflow._sdk.entities._eager_flow import FlexFlow + + flow_obj = load_flow(source=self.flow) + if isinstance(flow_obj, FlexFlow): + return FlowType.FLEX_FLOW + return FlowType.DAG_FLOW diff --git a/src/promptflow/promptflow/_sdk/operations/_run_operations.py b/src/promptflow/promptflow/_sdk/operations/_run_operations.py index 9f81e5104ab..acbb8e12016 100644 --- a/src/promptflow/promptflow/_sdk/operations/_run_operations.py +++ b/src/promptflow/promptflow/_sdk/operations/_run_operations.py @@ -435,3 +435,15 @@ def _get_local_storage(self, run: Union[str, Run]) -> LocalStorageOperations: if isinstance(run, str): run = self.get(name=run) return LocalStorageOperations(run) + + def _get_telemetry_values(self, *args, **kwargs): + activity_name = kwargs.get("activity_name", None) + telemetry_values = super()._get_telemetry_values(*args, **kwargs) + try: + if activity_name == "pf.runs.create_or_update": + run: Run = kwargs.get("run", None) or args[0] + telemetry_values["flow_type"] = run._flow_type + except Exception as e: + logger.error(f"Failed to get telemetry values: {str(e)}") + + return telemetry_values diff --git a/src/promptflow/promptflow/azure/operations/_run_operations.py b/src/promptflow/promptflow/azure/operations/_run_operations.py index b7bc28dcde0..e53ad30bec3 100644 --- a/src/promptflow/promptflow/azure/operations/_run_operations.py +++ b/src/promptflow/promptflow/azure/operations/_run_operations.py @@ -1074,3 +1074,15 @@ def _resolve_identity(self, run: Run): run._identity[IdentityKeys.RESOURCE_ID] = resource_id else: raise UserErrorException(f"Identity type {identity_type!r} is not supported.") + + def _get_telemetry_values(self, *args, **kwargs): + activity_name = kwargs.get("activity_name", None) + telemetry_values = super()._get_telemetry_values(*args, **kwargs) + try: + if activity_name == "pfazure.runs.create_or_update": + run: Run = kwargs.get("run", None) or args[0] + telemetry_values["flow_type"] = run._flow_type + except Exception as e: + logger.error(f"Failed to get telemetry values: {str(e)}") + + return telemetry_values diff --git a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py index dbcef17e872..6de09fdfb18 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py +++ b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py @@ -34,6 +34,7 @@ from promptflow.tracing._operation_context import OperationContext from .._azure_utils import DEFAULT_TEST_TIMEOUT, PYTEST_TIMEOUT_METHOD +from ..recording_utilities import is_live @contextlib.contextmanager @@ -403,3 +404,56 @@ def assert_flow_test(*args, **kwargs): mock_logger.side_effect = assert_flow_test pf.flows.test(temp_dir, inputs={"key": "API_BASE"}) + + @pytest.mark.skipif( + condition=not is_live(), reason="Live mode can run successfully, but an error will be reported when recording." + ) + def test_run_yaml_type(self, pf, randstr: Callable[[str], str]): + from promptflow._constants import FlowType + from promptflow._sdk._configuration import Configuration + from promptflow._sdk._telemetry.logging_handler import PromptFlowSDKExporter + + envelope = None + flow_type = None + config = Configuration.get_instance() + custom_dimensions = { + "python_version": platform.python_version(), + "installation_id": config.get_or_set_installation_id(), + } + log_to_envelope = PromptFlowSDKExporter( + connection_string="InstrumentationKey=00000000-0000-0000-0000-000000000000", + custom_dimensions=custom_dimensions, + )._log_to_envelope + + def log_event(log_data): + nonlocal envelope + envelope = log_to_envelope(log_data) + + def check_evelope(): + assert envelope.data.base_data.name.startswith("pfazure.runs.create_or_update") + custom_dimensions = pydash.get(envelope, "data.base_data.properties") + assert isinstance(custom_dimensions, dict) + assert "flow_type" in custom_dimensions + assert custom_dimensions["flow_type"] == flow_type + + with patch.object(PromptFlowSDKExporter, "_log_to_envelope", side_effect=log_event), patch( + "promptflow._sdk._telemetry.telemetry.get_telemetry_logger", side_effect=get_telemetry_logger + ): + flow_type = FlowType.DAG_FLOW + pf.run( + flow="./tests/test_configs/flows/print_input_flow", + data="./tests/test_configs/datas/print_input_flow.jsonl", + name=randstr("name"), + ) + logger = get_telemetry_logger() + logger.handlers[0].flush() + check_evelope() + + flow_type = FlowType.FLEX_FLOW + pf.run( + flow="./tests/test_configs/eager_flows/simple_with_req", + data="./tests/test_configs/datas/simple_eager_flow_data.jsonl", + name=randstr("name"), + ) + logger.handlers[0].flush() + check_evelope() diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_telemetry.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_telemetry.py new file mode 100644 index 00000000000..2c729f592ad --- /dev/null +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_telemetry.py @@ -0,0 +1,63 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +import platform +from unittest.mock import patch + +import pydash +import pytest + +from promptflow._sdk._telemetry import get_telemetry_logger + + +@pytest.mark.usefixtures("use_secrets_config_file", "setup_local_connection") +@pytest.mark.sdk_test +@pytest.mark.e2etest +class TestTelemetry: + def test_run_yaml_type(self, pf): + from promptflow._constants import FlowType + from promptflow._sdk._configuration import Configuration + from promptflow._sdk._telemetry.logging_handler import PromptFlowSDKExporter + + envelope = None + flow_type = None + config = Configuration.get_instance() + custom_dimensions = { + "python_version": platform.python_version(), + "installation_id": config.get_or_set_installation_id(), + } + log_to_envelope = PromptFlowSDKExporter( + connection_string="InstrumentationKey=00000000-0000-0000-0000-000000000000", + custom_dimensions=custom_dimensions, + )._log_to_envelope + + def log_event(log_data): + nonlocal envelope + envelope = log_to_envelope(log_data) + + def check_evelope(): + assert envelope.data.base_data.name.startswith("pf.runs.create_or_update") + custom_dimensions = pydash.get(envelope, "data.base_data.properties") + assert isinstance(custom_dimensions, dict) + assert "flow_type" in custom_dimensions + assert custom_dimensions["flow_type"] == flow_type + + with patch.object(PromptFlowSDKExporter, "_log_to_envelope", side_effect=log_event), patch( + "promptflow._sdk._telemetry.telemetry.get_telemetry_logger", side_effect=get_telemetry_logger + ): + flow_type = FlowType.DAG_FLOW + pf.run( + flow="./tests/test_configs/flows/print_input_flow", + data="./tests/test_configs/datas/print_input_flow.jsonl", + ) + logger = get_telemetry_logger() + logger.handlers[0].flush() + check_evelope() + + flow_type = FlowType.FLEX_FLOW + pf.run( + flow="./tests/test_configs/eager_flows/simple_with_req", + data="./tests/test_configs/datas/simple_eager_flow_data.jsonl", + ) + logger.handlers[0].flush() + check_evelope() diff --git a/src/promptflow/tests/test_configs/recordings/test_telemetry_TestTelemetry_test_run_yaml_type.yaml b/src/promptflow/tests/test_configs/recordings/test_telemetry_TestTelemetry_test_run_yaml_type.yaml new file mode 100644 index 00000000000..d0fa2a91255 --- /dev/null +++ b/src/promptflow/tests/test_configs/recordings/test_telemetry_TestTelemetry_test_run_yaml_type.yaml @@ -0,0 +1,402 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000 + response: + body: + string: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000", + "name": "00000", "type": "Microsoft.MachineLearningServices/workspaces", "location": + "eastus2euap", "tags": {}, "etag": null, "kind": "Default", "sku": {"name": + "Basic", "tier": "Basic"}, "properties": {"discoveryUrl": "https://eastus.api.azureml.ms/discovery"}}' + headers: + cache-control: + - no-cache + content-length: + - '3649' + content-type: + - application/json; charset=utf-8 + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-request-time: + - '0.043' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores?count=30&isDefault=true&orderByAsc=false + response: + body: + string: '{"value": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore", + "name": "workspaceblobstore", "type": "Microsoft.MachineLearningServices/workspaces/datastores", + "properties": {"description": null, "tags": null, "properties": null, "isDefault": + true, "credentials": {"credentialsType": "AccountKey"}, "intellectualProperty": + null, "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroup": + "00000", "datastoreType": "AzureBlob", "accountName": "fake_account_name", + "containerName": "fake-container-name", "endpoint": "core.windows.net", "protocol": + "https", "serviceDataAccessAuthIdentity": "WorkspaceSystemAssignedIdentity"}, + "systemData": {"createdAt": "2023-09-22T05:26:30.7527337+00:00", "createdBy": + "779301c0-18b2-4cdc-801b-a0a3368fee0a", "createdByType": "Application", "lastModifiedAt": + "2024-01-10T09:29:14.5412854+00:00", "lastModifiedBy": "Philip Gao", "lastModifiedByType": + "User"}}]}' + headers: + cache-control: + - no-cache + content-length: + - '1345' + content-type: + - application/json; charset=utf-8 + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-request-time: + - '0.611' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore + response: + body: + string: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore", + "name": "workspaceblobstore", "type": "Microsoft.MachineLearningServices/workspaces/datastores", + "properties": {"description": null, "tags": null, "properties": null, "isDefault": + true, "credentials": {"credentialsType": "AccountKey"}, "intellectualProperty": + null, "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroup": + "00000", "datastoreType": "AzureBlob", "accountName": "fake_account_name", + "containerName": "fake-container-name", "endpoint": "core.windows.net", "protocol": + "https", "serviceDataAccessAuthIdentity": "WorkspaceSystemAssignedIdentity"}, + "systemData": {"createdAt": "2023-09-22T05:26:30.7527337+00:00", "createdBy": + "779301c0-18b2-4cdc-801b-a0a3368fee0a", "createdByType": "Application", "lastModifiedAt": + "2024-01-10T09:29:14.5412854+00:00", "lastModifiedBy": "Philip Gao", "lastModifiedByType": + "User"}}' + headers: + cache-control: + - no-cache + content-length: + - '1200' + content-type: + - application/json; charset=utf-8 + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-request-time: + - '0.062' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore/listSecrets + response: + body: + string: '{"secretsType": "AccountKey", "key": "dGhpcyBpcyBmYWtlIGtleQ=="}' + headers: + cache-control: + - no-cache + content-length: + - '134' + content-type: + - application/json; charset=utf-8 + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-request-time: + - '0.170' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Tue, 12 Mar 2024 07:38:17 GMT + x-ms-version: + - '2023-11-03' + method: HEAD + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/LocalUpload/000000000000000000000000000000000000/print_input_flow.jsonl + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '56' + content-md5: + - I/k2vLbQ+WkABQncQUd5Rg== + content-type: + - application/octet-stream + last-modified: + - Tue, 26 Dec 2023 03:34:26 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Tue, 26 Dec 2023 03:34:26 GMT + x-ms-meta-name: + - 489008dc-84bd-4bee-82db-0bb80f7ad272 + x-ms-meta-upload_status: + - completed + x-ms-meta-version: + - b7185e71-1e33-43b7-b8be-43bdd40e6731 + x-ms-version: + - '2023-11-03' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.9.18 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Tue, 12 Mar 2024 07:38:18 GMT + x-ms-version: + - '2023-11-03' + method: HEAD + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/az-ml-artifacts/000000000000000000000000000000000000/print_input_flow.jsonl + response: + body: + string: '' + headers: + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + vary: + - Origin + x-ms-error-code: + - BlobNotFound + x-ms-version: + - '2023-11-03' + status: + code: 404 + message: The specified blob does not exist. +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore + response: + body: + string: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore", + "name": "workspaceblobstore", "type": "Microsoft.MachineLearningServices/workspaces/datastores", + "properties": {"description": null, "tags": null, "properties": null, "isDefault": + true, "credentials": {"credentialsType": "AccountKey"}, "intellectualProperty": + null, "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroup": + "00000", "datastoreType": "AzureBlob", "accountName": "fake_account_name", + "containerName": "fake-container-name", "endpoint": "core.windows.net", "protocol": + "https", "serviceDataAccessAuthIdentity": "WorkspaceSystemAssignedIdentity"}, + "systemData": {"createdAt": "2023-09-22T05:26:30.7527337+00:00", "createdBy": + "779301c0-18b2-4cdc-801b-a0a3368fee0a", "createdByType": "Application", "lastModifiedAt": + "2024-01-10T09:29:14.5412854+00:00", "lastModifiedBy": "Philip Gao", "lastModifiedByType": + "User"}}' + headers: + cache-control: + - no-cache + content-length: + - '1200' + content-type: + - application/json; charset=utf-8 + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-request-time: + - '0.068' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - promptflow-sdk/0.0.1 azure-ai-ml/1.13.0 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore/listSecrets + response: + body: + string: '{"secretsType": "AccountKey", "key": "dGhpcyBpcyBmYWtlIGtleQ=="}' + headers: + cache-control: + - no-cache + content-length: + - '134' + content-type: + - application/json; charset=utf-8 + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-request-time: + - '0.065' + status: + code: 200 + message: OK +- request: + body: '[null]' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '6' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azuremonitorclient/unknown Python/3.9.18 (Windows-10-10.0.22631-SP0) + method: POST + uri: https://dc.services.visualstudio.com/v2.1/track + response: + body: + string: '{"itemsReceived": 0, "itemsAccepted": 0, "appId": null, "errors": []}' + headers: + content-type: + - application/json; charset=utf-8 + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000 + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +version: 1 From c0a4c7ba1399d1d3c45ee07d7ee997a4b8fd92d8 Mon Sep 17 00:00:00 2001 From: Han Wang Date: Fri, 15 Mar 2024 18:08:48 +0800 Subject: [PATCH 067/204] [SDK] Support override deployment_name and model for python tools (#2229) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. This pull request primarily focuses on enhancing the functionality of the `promptflow` package by introducing the ability to override the "deployment_name" and "model" in the Python tool. The changes also include the addition of new test cases to verify the new functionality and updates to the changelog. Here are the key changes: **Bug Fixes and New Features:** * [`src/promptflow/CHANGELOG.md`](diffhunk://#diff-41ec3f7c4b5d4c0e670407d3c00a03a6966d7ebf617b1536473e33a12e2bc765R14-R17): Added a new "Bugs Fixed" section in the changelog to document the new feature that allows the "deployment_name" to be overridden in the Python tool. **Codebase Enhancements:** * [`src/promptflow/promptflow/_sdk/_submitter/utils.py`](diffhunk://#diff-38c78274ff4a19381a2129bfd86174d225e0d8537b48c80aa8f6feaca25083abL114-L133): Modified the `overwrite_connections` function to support the overriding of "deployment_name" and "model" in the Python tool. The function now checks for these fields in the connection dictionary and updates the node inputs accordingly. **Test Cases:** * [`src/promptflow/tests/sdk_cli_test/e2etests/test_flow_run.py`](diffhunk://#diff-94a59a05643476869fa3c6bc45466f1582944a935488075e2e63b6a6a196958fR1362-R1399): Added new test cases - `test_run_with_deployment_overwrite` and `test_deployment_overwrite_failure` to validate the new feature of overriding "deployment_name" and "model". **Test Configurations:** * [`src/promptflow/tests/test_configs/flows/python_tool_deployment_name/flow.dag.yaml`](diffhunk://#diff-f162e17c4af9093d53552b797644d9b1c0b1bf4274910b5f506e4f00caef43acR1-R15): Added a new test configuration file to support the new test cases. * [`src/promptflow/tests/test_configs/flows/python_tool_deployment_name/print_env.py`](diffhunk://#diff-13ed50acd4c00cd4318ccf9d70b3c571b1df072a7e54882c9e84b2124d944ed9R1-R7): Added a new Python tool `get_result` to be used in the new test cases. This tool accepts "key", "deployment_name", and "model" as inputs. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- src/promptflow/CHANGELOG.md | 1 + .../promptflow/_sdk/_submitter/utils.py | 90 +++++++++++++----- .../sdk_cli_test/e2etests/test_flow_run.py | 51 +++++++++- .../deployment_name_not_enabled/flow.dag.yaml | 16 ++++ .../deployment_name_not_enabled/print_env.py | 17 ++++ .../python_tool_deployment_name/flow.dag.yaml | 16 ++++ .../python_tool_deployment_name/print_env.py | 25 +++++ .../node_recordings/node_cache.shelve.bak | 3 + .../node_recordings/node_cache.shelve.dat | Bin 358030 -> 385699 bytes .../node_recordings/node_cache.shelve.dir | 3 + 10 files changed, 199 insertions(+), 23 deletions(-) create mode 100644 src/promptflow/tests/test_configs/flows/deployment_name_not_enabled/flow.dag.yaml create mode 100644 src/promptflow/tests/test_configs/flows/deployment_name_not_enabled/print_env.py create mode 100644 src/promptflow/tests/test_configs/flows/python_tool_deployment_name/flow.dag.yaml create mode 100644 src/promptflow/tests/test_configs/flows/python_tool_deployment_name/print_env.py diff --git a/src/promptflow/CHANGELOG.md b/src/promptflow/CHANGELOG.md index d5c1a3c7680..6288cc886ea 100644 --- a/src/promptflow/CHANGELOG.md +++ b/src/promptflow/CHANGELOG.md @@ -16,6 +16,7 @@ ### Bugs Fixed - [SDK/CLI] environment variable `PF_HOME_DIRECTORY` doesn't work for run details & logs. +- [SDK/CLI] Support override hard coded "deployment_name" and "model". - [SDK] `connection.provider` config doesn't work when calling flow as a function. ## 1.6.0 (2024.03.01) diff --git a/src/promptflow/promptflow/_sdk/_submitter/utils.py b/src/promptflow/promptflow/_sdk/_submitter/utils.py index 3765d1c2611..11cf59c3178 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/utils.py +++ b/src/promptflow/promptflow/_sdk/_submitter/utils.py @@ -102,6 +102,9 @@ def overwrite_connections(flow_dag: dict, connections: dict, working_dir: PathLi # Load executable flow to check if connection is LLM connection executable_flow = ExecutableFlow._from_dict(flow_dag=flow_dag, working_dir=Path(working_dir)) + # generate tool meta for deployment name, model override + # tools_meta = generate_flow_tools_json(flow_directory=working_dir, dump=False, used_packages_only=True) + node_name_2_node = {node["name"]: node for node in flow_dag[NODES]} for node_name, connection_dict in connections.items(): @@ -111,30 +114,73 @@ def overwrite_connections(flow_dag: dict, connections: dict, working_dir: PathLi raise InvalidFlowError(f"Invalid connection overwrite format: {connection_dict}, only dict is supported.") node = node_name_2_node[node_name] executable_node = executable_flow.get_node(node_name=node_name) + + # override connections if executable_flow.is_llm_node(executable_node): - unsupported_keys = connection_dict.keys() - SUPPORTED_CONNECTION_FIELDS - if unsupported_keys: - raise InvalidFlowError( - f"Unsupported llm connection overwrite keys: {unsupported_keys}," - f" only {SUPPORTED_CONNECTION_FIELDS} are supported." - ) - try: - connection = connection_dict.get(ConnectionFields.CONNECTION) - if connection: - node[ConnectionFields.CONNECTION] = connection - deploy_name = connection_dict.get(ConnectionFields.DEPLOYMENT_NAME) - if deploy_name: - node[INPUTS][ConnectionFields.DEPLOYMENT_NAME] = deploy_name - except KeyError as e: - raise InvalidFlowError( - f"Failed to overwrite llm node {node_name} with connections {connections}" - ) from e + override_llm_connections( + node=node, + connection_dict=connection_dict, + node_name=node_name, + ) + else: + override_python_connections( + node=node, + connection_dict=connection_dict, + tools_meta={}, + executable_flow=executable_flow, + node_name=node_name, + ) + + +def override_llm_connections(node: dict, connection_dict: dict, node_name: str): + """apply connection override on llm node.""" + try: + # override connection + connection = connection_dict.get(ConnectionFields.CONNECTION.value) + if connection: + logger.debug(f"Overwriting connection for node {node_name} with {connection}") + node[ConnectionFields.CONNECTION] = connection + connection_dict.pop(ConnectionFields.CONNECTION.value) + # override deployment_name and model + for field in [ConnectionFields.DEPLOYMENT_NAME.value, ConnectionFields.MODEL.value]: + if field in connection_dict: + logger.debug(f"Overwriting {field} for node {node_name} with {connection_dict[field]}") + node[INPUTS][field] = connection_dict[field] + connection_dict.pop(field) + except KeyError as e: + raise InvalidFlowError(f"Failed to overwrite llm node {node_name} with connections {connection_dict}") from e + if connection_dict: + raise InvalidFlowError( + f"Unsupported llm connection overwrite keys: {connection_dict.keys()}," + f" only {SUPPORTED_CONNECTION_FIELDS} are supported." + ) + + +def override_python_connections( + node: dict, connection_dict: dict, tools_meta: dict, executable_flow: ExecutableFlow, node_name: str +): + """apply connection override on python node.""" + connection_inputs = executable_flow.get_connection_input_names_for_node(node_name=node_name) + consumed_connections = set() + for c, v in connection_dict.items(): + if c in connection_inputs: + logger.debug(f"Overwriting connection for node {node_name} with {c}:{v}") + node[INPUTS][c] = v + consumed_connections.add(c) else: - connection_inputs = executable_flow.get_connection_input_names_for_node(node_name=node_name) - for c, v in connection_dict.items(): - if c not in connection_inputs: - raise InvalidFlowError(f"Connection with name {c} not found in node {node_name}'s inputs") - node[INPUTS][c] = v + # TODO(3021931): check if input c is enabled by connection instead of hard code + logger.debug(f"Overwriting enabled by connection input for node {node_name} with {c}:{v}") + for field in [ConnectionFields.DEPLOYMENT_NAME.value, ConnectionFields.MODEL.value]: + if field in connection_dict: + logger.debug(f"Overwriting {field} for node {node_name} with {connection_dict[field]}") + node[INPUTS][field] = connection_dict[field] + consumed_connections.add(field) + unused_connections = connection_dict.keys() - consumed_connections + if unused_connections: + raise InvalidFlowError( + f"Unsupported llm connection overwrite keys: {unused_connections}," + f" only {SUPPORTED_CONNECTION_FIELDS} are supported." + ) def overwrite_flow(flow_dag: dict, params_overrides: dict): diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_run.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_run.py index 25ef12d8772..0482fb3b221 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_run.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_run.py @@ -359,7 +359,7 @@ def test_custom_connection_overwrite(self, local_client, local_custom_connection data=f"{DATAS_DIR}/env_var_names.jsonl", connections={"print_env": {"new_connection": "test_custom_connection"}}, ) - assert "Connection with name new_connection not found" in str(e.value) + assert "Unsupported llm connection overwrite keys" in str(e.value) def test_basic_flow_with_package_tool_with_custom_strong_type_connection( self, install_custom_tool_pkg, local_client, pf @@ -1359,3 +1359,52 @@ def test_eager_flow_run_with_evc(self, pf): # convert DataFrame to dict details_dict = details.to_dict(orient="list") assert details_dict == {"inputs.line_number": [0], "outputs.output": ["Hello world! azure"]} + + def test_run_with_deployment_overwrite(self, pf): + run = pf.run( + flow=f"{FLOWS_DIR}/python_tool_deployment_name", + data=f"{DATAS_DIR}/env_var_names.jsonl", + column_mapping={"key": "${data.key}"}, + connections={"print_env": {"deployment_name": "my_deployment_name", "model": "my_model"}}, + ) + run_dict = run._to_dict() + assert "error" not in run_dict, run_dict["error"] + details = pf.get_details(run.name) + # convert DataFrame to dict + details_dict = details.to_dict(orient="list") + assert details_dict == { + "inputs.key": ["API_BASE"], + "inputs.line_number": [0], + "outputs.output": [{"deployment_name": "my_deployment_name", "model": "my_model"}], + } + + # TODO(3021931): this should fail. + run = pf.run( + flow=f"{FLOWS_DIR}/deployment_name_not_enabled", + data=f"{DATAS_DIR}/env_var_names.jsonl", + column_mapping={"env": "${data.key}"}, + connections={"print_env": {"deployment_name": "my_deployment_name", "model": "my_model"}}, + ) + run_dict = run._to_dict() + assert "error" not in run_dict, run_dict["error"] + + def test_deployment_overwrite_failure(self, local_client, local_aoai_connection, pf): + # deployment name not exist + run = pf.run( + flow=f"{FLOWS_DIR}/web_classification", + data=f"{DATAS_DIR}/webClassification1.jsonl", + connections={"classify_with_llm": {"deployment_name": "not_exist"}}, + ) + run_dict = run._to_dict() + assert "error" in run_dict + assert "The API deployment for this resource does not exist." in run_dict["error"]["message"] + + # deployment name not a param + run = pf.run( + flow=f"{FLOWS_DIR}/print_env_var", + data=f"{DATAS_DIR}/env_var_names.jsonl", + connections={"print_env": {"deployment_name": "not_exist"}}, + ) + run_dict = run._to_dict() + assert "error" in run_dict + assert "get_env_var() got an unexpected keyword argument" in run_dict["error"]["message"] diff --git a/src/promptflow/tests/test_configs/flows/deployment_name_not_enabled/flow.dag.yaml b/src/promptflow/tests/test_configs/flows/deployment_name_not_enabled/flow.dag.yaml new file mode 100644 index 00000000000..cb8d77178af --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/deployment_name_not_enabled/flow.dag.yaml @@ -0,0 +1,16 @@ +inputs: + key: + type: string +outputs: + output: + type: string + reference: ${print_env.output} +nodes: +- name: print_env + type: python + source: + type: code + path: print_env.py + inputs: + generate_question_prompt: ${inputs.key} + connection: azure_open_ai_connection diff --git a/src/promptflow/tests/test_configs/flows/deployment_name_not_enabled/print_env.py b/src/promptflow/tests/test_configs/flows/deployment_name_not_enabled/print_env.py new file mode 100644 index 00000000000..2cdf856084c --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/deployment_name_not_enabled/print_env.py @@ -0,0 +1,17 @@ +from typing import Union + + +from promptflow import tool +from promptflow.connections import AzureOpenAIConnection, OpenAIConnection + + +@tool() +def generate_question( + connection: Union[OpenAIConnection, AzureOpenAIConnection], + generate_question_prompt: str, + deployment_name: str = "", + model: str = "", + context: str = None, + temperature: float = 0.2 +): + return {"deployment_name": deployment_name, "model": model} diff --git a/src/promptflow/tests/test_configs/flows/python_tool_deployment_name/flow.dag.yaml b/src/promptflow/tests/test_configs/flows/python_tool_deployment_name/flow.dag.yaml new file mode 100644 index 00000000000..5177f6de7db --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/python_tool_deployment_name/flow.dag.yaml @@ -0,0 +1,16 @@ +inputs: + key: + type: string +outputs: + output: + type: object + reference: ${print_env.output} +nodes: +- name: print_env + type: python + source: + type: code + path: print_env.py + inputs: + generate_question_prompt: ${inputs.key} + connection: azure_open_ai_connection \ No newline at end of file diff --git a/src/promptflow/tests/test_configs/flows/python_tool_deployment_name/print_env.py b/src/promptflow/tests/test_configs/flows/python_tool_deployment_name/print_env.py new file mode 100644 index 00000000000..aa5df50e099 --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/python_tool_deployment_name/print_env.py @@ -0,0 +1,25 @@ +from typing import Union + + +from promptflow import tool +from promptflow._core.tool import InputSetting +from promptflow.connections import AzureOpenAIConnection, OpenAIConnection + + +@tool(input_settings={ + "deployment_name": InputSetting(enabled_by="connection", enabled_by_type=["AzureOpenAIConnection"], capabilities={ + "completion": False, + "chat_completion": True, + "embeddings": False + }), + "model": InputSetting(enabled_by="connection", enabled_by_type=["OpenAIConnection"]), +}) +def generate_question( + connection: Union[OpenAIConnection, AzureOpenAIConnection], + generate_question_prompt: str, + deployment_name: str = "", + model: str = "", + context: str = None, + temperature: float = 0.2 +): + return {"deployment_name": deployment_name, "model": model} diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak index af1063657e1..41e1daada98 100644 --- a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak +++ b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak @@ -67,3 +67,6 @@ 'e86cb445b6fd5c7ac664953d9ff006a4e9285d22', (349184, 4531) 'dbf350596085a5cd5aa1be0709da430507bf06f3', (353792, 1922) '05a77a24b6a04713e8035183d5bcbe516a7c6201', (355840, 2190) +'f982607f0b16462076e95b085628f125a9ce13fd', (358400, 4018) +'7f6b2e7803bfbecbf55a8d5eba3cd51fd9d3c672', (362496, 11456) +'e9aa82ac7a0a8b507f6882b04757cd67ff7130b4', (374272, 11427) diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dat b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dat index 26271bb132b297a2b3aad4fdc697aae499e051e6..9dfe47f9d4dee16d2a8fd1e853fd3609d37e81f0 100644 GIT binary patch delta 11201 zcmeHNYit}>6<*Ko`t8_G>!eX)ce0J^MD?t_-t}uy1Dkc8ZX7qZlQh|Ma(DKwXX@FR z={#a@t+0)hDycLoMSI%;eozoU_=i9(s-P|W04mXf6bQ7XKvi0ahfqa9h(D+*=gzFx zyNMf|=0S_RKRk2K+$b?;2+C^gT0Ks?oiQQ3* z?CPS<(=(`}lJ@{%&k&LSAgs*2Os72M>s{4sFK>Am0|a2C6Q_c%{p z@CS=;Z`jg&8tVqAik+8Cv3RkEy)Dd6iIMVLSzbhXj`kM!JudDqf2%d{f`#NOKh&R=z&pS+ulQscIq`E;z&vedta@Zeh3SonO15$VWDi3V4$7@@?ZzESl4t36gXiAE$Xbq z?sQNq(+LLJx@?>??x!US^~|V!ndOp;jc4r^u$!D_E>RAitg)L-)kJcc@}nA8v)+=@ zB1q>g$700ijOk6>^|8k0DA;S}9M!Z|} zi^s+7;!#heHoM95THefSn24;?z9Tq!93tU&d%d^;%vOqo4Pd8WW?-Dx6b3&i&Tsjk zqdE$LXT96#^A+2>x}SY6GTLynz3cD)3fxgRG&4OpGaX+c^nUNl^!Jr(3%%oyUR&fX zRL12S7J2Dj)xuF_xrdNSPXGxbW;wq7cDJspIxDD|0*{us-#i#?bUd*bj0A27W1 zjA2by^Eo)UCRB5eYAKnXUbd&ihIXLgD>1nrLfBGAHVceRQ8HLKe^g5sAik*(8^KIi z*G$6f{w$kUE!Oqw0?t5h8UxD=XmpemmntK}WCz)tq*x|4dRaJYkb&8GB$+H?b1IdL zMGCOc^DLT0k`nGYL(eSNi0zgosomuQ**(9+yB;HU1H?rEr%|miM~?k8=@BdR z--9dt8d-LaBx5#|jHhNG2{2OgND+~eN@&^`GEwTVieTZhsmZ)4s!Hh*jYLw0WMWQ3 z!W_*wQr_;S+{um7Bdp~^y{z-XE6hk)2zDhQ9=yR)EbY0GqM;bHncGm#4_ujKNx|&U zP}Ir3%5)1$3aXUt22138`)ABX=O3>!O3`FC6;@QjwGgjQy!I>hjmnqIuA~T%>iQ;I zajuQd@t-rN3RRvFXUp;67KMYtN5zAi5DpsQU;?|;AV-BWKPZ}}wg6{-{oy6r(qV5m zL55{o22Xvghz`21d*@iStmIOqzyuOEM z<_crhEe*L3E3>8ugrz}{Ot}PqWORh~Y=oW)WJE9;8qjOGF^93nA$dwVjcLzTq)9o> ztp*H}gZz61%C;dPjR%HMgzJxFV_Ymc9N|V{!=v25P$t$d2&2MiW)zq?&s=0S*AVAL z@9~?9OxRD!&A(vo05W|PNU}~*4Moak>FiAlT+V>mXI(+7TXnl>?4Ox}e%Nl{Azf5y zjD-zEh9F7AO5632)5{^W} zQ7U`eF>VS9B}MLmVw<}UfiWc87C7)(piz?Sl4>>gyo3?X?|#K}g5~`i9$C`L!!RyoJvIt%Kt z945}!e$8}HH%NNxqdhlQ_4GP&N4#1QzE+B+m%f(F2o@C$MTEjVMBZS!j?yvhl~X5-JQVfG_R0y7M+;_=46XnpKvUqebk|Cob~(ZM z{%cGRb^NDar+!cW`bpApw!F@q-iCAu3RAwHr%|y#8X4pxL($Rx0e)m8GSc54Is@aJ zKfKOtgKeXayGXJDsYv2ziA$%iqfRu3^A&Fn_XZPked51I$UrpKKMZ`Zcuai24I!l% zN_HJ;@%a`*rQFsC#n}^!A&TO_Tga;-A*BkHx>Mo+{>gC=cU8U zad;LxJCAM+o#|zlc~F&I#sMmwZE7k6aURdAdOj6ma~1@>G-SA54x9=dR3SE`U|cE$ zd12{AfI}%K30^A+IirGQuQ92sP_UNA= zGkS^JG{6T?B)G^Gi=lxyI!3+NO>jkBtY~C0u zD=c*8B)EkOi&Cd3AAlj}@pqWMwq;ZjzD5Q{oHyTLlI;~3Cy@KY5ohPS%x1tp({{50 zMpr)A0hEJM(gf$Au;Y5k;61<-QZ&V|asW$Ru-o8#LvS=#<_MOV|UU`9?g;|EcZ9Kq?n@6+?Q@8H1~E1ntT4av&;*PE8SJB8Zi49cN5;#gm+s)?;;A7 z_ZJhS)E8+t9|E)pDR<^IgO-0DIRv=^^K<4vJdw`iR$8OK5hBI*~(76Vf zT{mpE2AEwP=UfBKJpBAq2bk@+PQVP%vcY)t(+QXj4hh4;Ksw9CFiLZ=;X%ZWX0k(E zYyiiy*-R!H8K$-L{}M2R?O82gw&TVDW*cq_U{MtCODlt$F4Ff2!_r!-u{5suaL1;nW5K=jU$}Tc+_(zZ?8Jk?ORL1a zI#!Y Dzpwwk delta 19 acmZ2{RJ`x4XhREQ3sVbo3(FSPzA^w&JqKq1 diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir index af1063657e1..41e1daada98 100644 --- a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir +++ b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir @@ -67,3 +67,6 @@ 'e86cb445b6fd5c7ac664953d9ff006a4e9285d22', (349184, 4531) 'dbf350596085a5cd5aa1be0709da430507bf06f3', (353792, 1922) '05a77a24b6a04713e8035183d5bcbe516a7c6201', (355840, 2190) +'f982607f0b16462076e95b085628f125a9ce13fd', (358400, 4018) +'7f6b2e7803bfbecbf55a8d5eba3cd51fd9d3c672', (362496, 11456) +'e9aa82ac7a0a8b507f6882b04757cd67ff7130b4', (374272, 11427) From 4ba00ec93a46f6596305deb91758a195654ff34c Mon Sep 17 00:00:00 2001 From: Xingzhi Zhang <37076709+elliotzh@users.noreply.github.com> Date: Fri, 15 Mar 2024 18:16:22 +0800 Subject: [PATCH 068/204] fix: generate flow.json for pfazure run create csharp (#2329) # Description In this PR, we tried to: 1. generate `flow.json` for csharp eager flow on `pfazure run create`; 2. centralize the entry to generate flow metadata (to ExecutorProxy); 3. add ExecutorProxyFactory to unify multi-language solution. Specifically, the most important changes are: Refactoring of flow metadata generation: * [`src/promptflow/promptflow/_sdk/operations/_flow_operations.py`](diffhunk://#diff-afdd40a5d0519512dcf9be48bd46c4caaa2291b808687de77896989af63f47e4R836-R850): Introduced the `ExecutorProxyFactory` class to generate flow metadata instead of the previously used `generate_flow_meta` function. This allows for more flexibility in handling different programming languages. * [`src/promptflow/promptflow/azure/operations/_flow_operations.py`](diffhunk://#diff-a72221b577d007aa2384a86beaf12e1663879bec50f332f62ff6e41f4fa6186eL484-R492): Updated the `_try_resolve_code_for_flow` and `_try_resolve_code_for_flow_to_file_share` methods to use the `ExecutorProxyFactory` class for generating flow metadata. [[1]](diffhunk://#diff-a72221b577d007aa2384a86beaf12e1663879bec50f332f62ff6e41f4fa6186eL484-R492) [[2]](diffhunk://#diff-a72221b577d007aa2384a86beaf12e1663879bec50f332f62ff6e41f4fa6186eL600-L614) Introduction of `get_flow_definition` function: * [`src/promptflow/promptflow/_sdk/entities/_utils.py`](diffhunk://#diff-331a4a1555ab64b45ab05f1f484b30ea3965227fefb254d7128e26c52b1d8b77R1-R41): Created a new function, `get_flow_definition`, to resolve the flow directory path and the file name of the target yaml file. This function replaces the previously used `_get_flow_definition` method in the `FlowBase` class. Removal of redundant code: * [`src/promptflow/promptflow/_sdk/entities/_flow.py`](diffhunk://#diff-339752a6e9c04159a62708efed6b385bd91b016a0f0d2edeb32024fd19886a2bL250-R245): Removed the `_get_flow_definition` method and updated the `__init__` method to use the new `get_flow_definition` function. [[1]](diffhunk://#diff-339752a6e9c04159a62708efed6b385bd91b016a0f0d2edeb32024fd19886a2bL250-R245) [[2]](diffhunk://#diff-339752a6e9c04159a62708efed6b385bd91b016a0f0d2edeb32024fd19886a2bL276-L289) * [`src/promptflow/promptflow/azure/operations/_flow_operations.py`](diffhunk://#diff-a72221b577d007aa2384a86beaf12e1663879bec50f332f62ff6e41f4fa6186eL600-L614): Removed the `_generate_meta_for_eager_flow` method as it is now handled by the `ExecutorProxyFactory` class. Changes to import statements: * Various files: Updated import statements to reflect the new `ExecutorProxyFactory` class and the `get_flow_definition` function. The import of the `generate_flow_meta` function was removed where it was no longer needed. [[1]](diffhunk://#diff-a3ae1f06ba94fbc323e6ee5242bfa59703e23e15c6cdc6e1780fae99264c819bL57-R57) [[2]](diffhunk://#diff-a3ae1f06ba94fbc323e6ee5242bfa59703e23e15c6cdc6e1780fae99264c819bL104-R104) [[3]](diffhunk://#diff-e3499cf713c66612d91723759de1c5076c22689b2ce2c89678f82de624b57c2cL110-R116) [[4]](diffhunk://#diff-d9dd2c09a149b11eb54626edf065287eeb7b1a28e39719b8dd95377770f64138R31) [[5]](diffhunk://#diff-d9dd2c09a149b11eb54626edf065287eeb7b1a28e39719b8dd95377770f64138L173-R174) [[6]](diffhunk://#diff-d9dd2c09a149b11eb54626edf065287eeb7b1a28e39719b8dd95377770f64138L243-R251) [[7]](diffhunk://#diff-53d7ff49a8720f52ee715a6f63d5e389750e44c578a907076d435e541f0163eeL10) [[8]](diffhunk://#diff-53d7ff49a8720f52ee715a6f63d5e389750e44c578a907076d435e541f0163eeR100-R113) [[9]](diffhunk://#diff-339752a6e9c04159a62708efed6b385bd91b016a0f0d2edeb32024fd19886a2bL9-R16) [[10]](diffhunk://#diff-339752a6e9c04159a62708efed6b385bd91b016a0f0d2edeb32024fd19886a2bL250-R245) [[11]](diffhunk://#diff-afdd40a5d0519512dcf9be48bd46c4caaa2291b808687de77896989af63f47e4L34) [[12]](diffhunk://#diff-afdd40a5d0519512dcf9be48bd46c4caaa2291b808687de77896989af63f47e4L412-R411) [[13]](diffhunk://#diff-a72221b577d007aa2384a86beaf12e1663879bec50f332f62ff6e41f4fa6186eL27) [[14]](diffhunk://#diff-a72221b577d007aa2384a86beaf12e1663879bec50f332f62ff6e41f4fa6186eL38-R47) [[15]](diffhunk://#diff-44ac8eeb30a630bd24987e92f8bd5a180d57a3ad067db5d937561f21771e14c5L10-R16) [[16]](diffhunk://#diff-44ac8eeb30a630bd24987e92f8bd5a180d57a3ad067db5d937561f21771e14c5L32-R71) # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .../_submitter/experiment_orchestrator.py | 5 +- .../_sdk/_submitter/run_submitter.py | 11 +- .../_sdk/_submitter/test_submitter.py | 13 +- .../promptflow/_sdk/entities/_eager_flow.py | 36 +++- .../promptflow/_sdk/entities/_flow.py | 31 +--- .../_sdk/operations/_flow_operations.py | 22 ++- .../promptflow/_utils/flow_utils.py | 83 ++++++++- .../azure/operations/_flow_operations.py | 29 ++- .../promptflow/batch/_base_executor_proxy.py | 174 ++++++++++++++---- .../promptflow/batch/_batch_engine.py | 36 +--- .../batch/_csharp_executor_proxy.py | 30 +-- .../batch/_executor_proxy_factory.py | 53 ++++++ .../batch/_python_executor_proxy.py | 38 +++- src/promptflow/promptflow/core/_flow.py | 22 +-- .../promptflow/executor/flow_executor.py | 17 +- .../e2etests/test_csharp_executor_proxy.py | 3 +- .../unittests/batch/test_batch_engine.py | 11 +- .../batch/test_csharp_executor_proxy.py | 9 +- 18 files changed, 431 insertions(+), 192 deletions(-) create mode 100644 src/promptflow/promptflow/batch/_executor_proxy_factory.py diff --git a/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py b/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py index 70f94033e22..ece6bdd911b 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py +++ b/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py @@ -54,9 +54,9 @@ from promptflow._sdk._utils import overwrite_null_std_logger from promptflow._sdk.entities import Run from promptflow._sdk.entities._experiment import Experiment, ExperimentTemplate -from promptflow._sdk.entities._flow import Flow from promptflow._sdk.operations import RunOperations from promptflow._sdk.operations._local_storage_operations import LocalStorageOperations +from promptflow._utils.flow_utils import resolve_flow_path from promptflow._utils.inputs_mapping_utils import apply_inputs_mapping from promptflow._utils.load_data import load_data from promptflow._utils.logger_utils import get_cli_sdk_logger @@ -101,8 +101,7 @@ def test( start_nodes = [ node for node in template.nodes - if node.type == ExperimentNodeType.FLOW - and Flow._get_flow_definition(node.path) == Flow._get_flow_definition(flow_path) + if node.type == ExperimentNodeType.FLOW and resolve_flow_path(node.path) == resolve_flow_path(flow_path) ] if not start_nodes: raise ExperimentValueError(f"Flow {flow_path.as_posix()} not found in experiment {template.dir_name!r}.") diff --git a/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py b/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py index dadeef171fa..3cd99b54363 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py +++ b/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py @@ -105,11 +105,14 @@ def _validate_inputs(cls, run: Run): def _submit_bulk_run(self, flow: Union[Flow, FlexFlow], run: Run, local_storage: LocalStorageOperations) -> dict: logger.info(f"Submitting run {run.name}, log path: {local_storage.logger.file_path}") run_id = run.name - if flow.language == FlowLanguage.CSharp: - # TODO: consider moving this to Operations - from promptflow.batch import CSharpExecutorProxy + # for python, we can get metadata in-memory, so no need to dump them first + if flow.language != FlowLanguage.Python: + from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory - CSharpExecutorProxy.generate_metadata(flow_file=Path(flow.path), assembly_folder=Path(flow.code)) + # variants are resolved in the context, so we can't move this logic to Operations for now + ExecutorProxyFactory().get_executor_proxy_cls(flow.language).dump_metadata( + flow_file=Path(flow.path), working_dir=Path(flow.code) + ) # TODO: shall we resolve connections here? connections = [] else: diff --git a/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py b/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py index 24c9f262710..a32855bee0a 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py +++ b/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py @@ -29,6 +29,7 @@ from ..._utils.dataclass_serializer import convert_eager_flow_output_to_dict from ..._utils.logger_utils import get_cli_sdk_logger from ...batch import APIBasedExecutorProxy, CSharpExecutorProxy +from ...batch._executor_proxy_factory import ExecutorProxyFactory from .._configuration import Configuration from ..entities._eager_flow import FlexFlow from .utils import ( @@ -171,7 +172,7 @@ def _resolve_connections(cls, flow: FlowBase, client): return SubmitterHelper.resolve_used_connections( flow=flow, - tools_meta=CSharpExecutorProxy.get_tool_metadata( + tools_meta=CSharpExecutorProxy.generate_flow_tools_json( flow_file=flow.flow_dag_path, working_dir=flow.code, ), @@ -241,9 +242,13 @@ def init( # temp flow is generated, will use self.flow instead of self._origin_flow in the following context self._within_init_context = True - if self.flow.language == FlowLanguage.CSharp: - # TODO: consider move this to Operations - CSharpExecutorProxy.generate_metadata(self.flow.path, self.flow.code) + # Python flow may get metadata in-memory, so no need to dump them first + if self.flow.language != FlowLanguage.Python: + # variant is resolve in the context, so we can't move this to Operations for now + ExecutorProxyFactory().get_executor_proxy_cls(self.flow.language).dump_metadata( + flow_file=self.flow.path, + working_dir=self.flow.code, + ) self._target_node = target_node self._enable_stream_output = stream_output diff --git a/src/promptflow/promptflow/_sdk/entities/_eager_flow.py b/src/promptflow/promptflow/_sdk/entities/_eager_flow.py index 86ee743a701..0610715c7b4 100644 --- a/src/promptflow/promptflow/_sdk/entities/_eager_flow.py +++ b/src/promptflow/promptflow/_sdk/entities/_eager_flow.py @@ -2,7 +2,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- from pathlib import Path -from typing import Dict +from typing import Dict, Optional from promptflow._constants import LANGUAGE_KEY, FlowLanguage from promptflow._sdk._constants import BASE_PATH_CONTEXT_KEY @@ -59,3 +59,37 @@ def _dump_for_validation(self) -> Dict: return self._data # endregion SchemaValidatableMixin + + @classmethod + def _resolve_entry_file(cls, entry: str, working_dir: Path) -> Optional[str]: + """Resolve entry file from entry. + If entry is a local file, e.g. my.local.file:entry_function, return the local file: my/local/file.py + and executor will import it from local file. + Else, assume the entry is from a package e.g. external.module:entry, return None + and executor will try import it from package. + """ + try: + entry_file = f'{entry.split(":")[0].replace(".", "/")}.py' + except Exception as e: + raise UserErrorException(f"Entry function {entry} is not valid: {e}") + entry_file = working_dir / entry_file + if entry_file.exists(): + return entry_file.resolve().absolute().as_posix() + # when entry file not found in working directory, return None since it can come from package + return None + + def _init_executable(self, **kwargs): + # TODO(2991934): support environment variables here + from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory + from promptflow.contracts.flow import EagerFlow as ExecutableEagerFlow + + meta_dict = ( + ExecutorProxyFactory() + .get_executor_proxy_cls(self.language) + .generate_flow_json( + flow_file=self.path, + working_dir=self.code, + dump=False, + ) + ) + return ExecutableEagerFlow.deserialize(meta_dict) diff --git a/src/promptflow/promptflow/_sdk/entities/_flow.py b/src/promptflow/promptflow/_sdk/entities/_flow.py index 74089df517c..a55f865133c 100644 --- a/src/promptflow/promptflow/_sdk/entities/_flow.py +++ b/src/promptflow/promptflow/_sdk/entities/_flow.py @@ -3,17 +3,14 @@ # --------------------------------------------------------- from pathlib import Path -from typing import Dict, Optional, Tuple - -from promptflow._constants import ( - DEFAULT_FLOW_YAML_FILE_NAME, - FLOW_TOOLS_JSON, - LANGUAGE_KEY, - PROMPT_FLOW_DIR_NAME, - FlowLanguage, -) +from typing import Dict, Optional + +from marshmallow import Schema + +from promptflow._constants import FLOW_TOOLS_JSON, LANGUAGE_KEY, PROMPT_FLOW_DIR_NAME, FlowLanguage from promptflow._sdk._constants import BASE_PATH_CONTEXT_KEY from promptflow._sdk.entities._validation import SchemaValidatableMixin +from promptflow._utils.flow_utils import resolve_flow_path from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow._utils.yaml_utils import load_yaml from promptflow.core._flow import AsyncFlow as AsyncFlowCore @@ -38,9 +35,9 @@ def __init__( ): super().__init__(path=path, code=code, dag=dag, **kwargs) + self._flow_dir, self._dag_file_name = resolve_flow_path(self.code) self._executable = None self._params_override = params_override - self._flow_dir, self._dag_file_name = self._get_flow_definition(self.code) # region properties @property @@ -71,20 +68,6 @@ def display_name(self) -> str: # endregion - @classmethod - def _get_flow_definition(cls, flow, base_path=None) -> Tuple[Path, str]: - if base_path: - flow_path = Path(base_path) / flow - else: - flow_path = Path(flow) - - if flow_path.is_dir() and (flow_path / DEFAULT_FLOW_YAML_FILE_NAME).is_file(): - return flow_path, DEFAULT_FLOW_YAML_FILE_NAME - elif flow_path.is_file(): - return flow_path.parent, flow_path.name - - raise ValueError(f"Can't find flow with path {flow_path.as_posix()}.") - # region SchemaValidatableMixin @classmethod def _create_schema_for_validation(cls, context) -> "Schema": diff --git a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py index b80a24a0813..8266e46548b 100644 --- a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py +++ b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py @@ -31,7 +31,6 @@ _merge_local_code_and_additional_includes, copy_tree_respect_template_and_ignore_file, dump_flow_result, - generate_flow_meta, generate_flow_tools_json, generate_random_string, logger, @@ -408,7 +407,7 @@ def _export_flow_connections( return self._migrate_connections( connection_names=SubmitterHelper.get_used_connection_names( - tools_meta=CSharpExecutorProxy.get_tool_metadata( + tools_meta=CSharpExecutorProxy.generate_flow_tools_json( flow_file=flow.flow_dag_path, working_dir=flow.code, ), @@ -834,11 +833,16 @@ def _generate_flow_meta( return {} with self._resolve_additional_includes(flow.path) as new_flow_dag_path: - return generate_flow_meta( - flow_directory=new_flow_dag_path.parent, - source_path=flow.entry_file, - entry=flow.entry, - dump=dump, - timeout=timeout, - load_in_subprocess=load_in_subprocess, + from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory + + return ( + ExecutorProxyFactory() + .get_executor_proxy_cls(flow.language) + .generate_flow_json( + flow_file=new_flow_dag_path, + working_dir=new_flow_dag_path.parent, + dump=dump, + timeout=timeout, + load_in_subprocess=load_in_subprocess, + ) ) diff --git a/src/promptflow/promptflow/_utils/flow_utils.py b/src/promptflow/promptflow/_utils/flow_utils.py index 4e8044fa7e0..0c15da0bece 100644 --- a/src/promptflow/promptflow/_utils/flow_utils.py +++ b/src/promptflow/promptflow/_utils/flow_utils.py @@ -5,11 +5,12 @@ import os from os import PathLike from pathlib import Path -from typing import Union +from typing import Optional, Tuple, Union from promptflow._sdk._constants import DAG_FILE_NAME, DEFAULT_ENCODING from promptflow._utils.logger_utils import LoggerFactory from promptflow._utils.yaml_utils import dump_yaml, load_yaml +from promptflow.exceptions import UserErrorException logger = LoggerFactory.get_logger(name=__name__) @@ -46,16 +47,45 @@ def get_flow_lineage_id(flow_dir: Union[str, PathLike]): return lineage_id -def resolve_flow_path(flow_path: Path): - """Resolve given flow path to dag file path.""" - if flow_path.is_dir(): - flow_path = flow_path / DAG_FILE_NAME - return flow_path +def resolve_flow_path( + flow_path: Union[str, Path, PathLike], base_path: Union[str, Path, PathLike, None] = None, new: bool = False +) -> Tuple[Path, str]: + """Resolve flow path and return the flow directory path and the file name of the target yaml. + + :param flow_path: The path of the flow directory or the flow yaml file. It can either point to a + flow directory or a flow yaml file. + :type flow_path: Union[str, Path, PathLike] + :param base_path: The base path to resolve the flow path. If not specified, the flow path will be + resolved based on the current working directory. + :type base_path: Union[str, Path, PathLike] + :param new: If True, the function will return the flow directory path and the file name of the + target yaml that should be created. If False, the function will try to find the existing + target yaml and raise FileNotFoundError if not found. + :return: The flow directory path and the file name of the target yaml. + :rtype: Tuple[Path, str] + """ + if base_path: + flow_path = Path(base_path) / flow_path + else: + flow_path = Path(flow_path) + + if new: + if flow_path.is_dir(): + return flow_path, DAG_FILE_NAME + return flow_path.parent, flow_path.name + + if flow_path.is_dir() and (flow_path / DAG_FILE_NAME).is_file(): + return flow_path, DAG_FILE_NAME + elif flow_path.is_file(): + return flow_path.parent, flow_path.name + + raise FileNotFoundError(f"Can't find flow with path {flow_path.as_posix()}.") def load_flow_dag(flow_path: Path): """Load flow dag from given flow path.""" - flow_path = resolve_flow_path(flow_path) + flow_dir, file_name = resolve_flow_path(flow_path) + flow_path = flow_dir / file_name if not flow_path.exists(): raise FileNotFoundError(f"Flow file {flow_path} not found") with open(flow_path, "r", encoding=DEFAULT_ENCODING) as f: @@ -65,7 +95,44 @@ def load_flow_dag(flow_path: Path): def dump_flow_dag(flow_dag: dict, flow_path: Path): """Dump flow dag to given flow path.""" - flow_path = resolve_flow_path(flow_path) + flow_dir, flow_filename = resolve_flow_path(flow_path, new=True) + flow_path = flow_dir / flow_filename with open(flow_path, "w", encoding=DEFAULT_ENCODING) as f: dump_yaml(flow_dag, f) return flow_path + + +def is_flex_flow( + *, file_path: Union[str, Path, None] = None, yaml_dict: Optional[dict] = None, working_dir: Optional[Path] = None +): + """Check if the flow is a flex flow.""" + if file_path is None and yaml_dict is None: + raise UserErrorException("Either file_path or yaml_dict should be provided.") + if file_path is not None and yaml_dict is not None: + raise UserErrorException("Only one of file_path and yaml_dict should be provided.") + if file_path is not None: + file_path = Path(file_path) + if working_dir is not None and not file_path.is_absolute(): + file_path = working_dir / file_path + if file_path.suffix.lower() not in [".yaml", ".yml"]: + return False + yaml_dict = load_yaml(file_path) + return isinstance(yaml_dict, dict) and "entry" in yaml_dict + + +def resolve_entry_file(entry: str, working_dir: Path) -> Optional[str]: + """Resolve entry file from entry. + If entry is a local file, e.g. my.local.file:entry_function, return the local file: my/local/file.py + and executor will import it from local file. + Else, assume the entry is from a package e.g. external.module:entry, return None + and executor will try import it from package. + """ + try: + entry_file = f'{entry.split(":")[0].replace(".", "/")}.py' + except Exception as e: + raise UserErrorException(f"Entry function {entry} is not valid: {e}") + entry_file = working_dir / entry_file + if entry_file.exists(): + return entry_file.resolve().absolute().as_posix() + # when entry file not found in working directory, return None since it can come from package + return None diff --git a/src/promptflow/promptflow/azure/operations/_flow_operations.py b/src/promptflow/promptflow/azure/operations/_flow_operations.py index 911df4a8279..5cf82c25354 100644 --- a/src/promptflow/promptflow/azure/operations/_flow_operations.py +++ b/src/promptflow/promptflow/azure/operations/_flow_operations.py @@ -24,7 +24,6 @@ from azure.ai.ml.operations._operation_orchestrator import OperationOrchestrator from azure.core.exceptions import HttpResponseError -from promptflow._constants import FlowLanguage from promptflow._sdk._constants import ( CLIENT_FLOW_TYPE_2_SERVICE_FLOW_TYPE, DAG_FILE_NAME, @@ -35,8 +34,9 @@ ) from promptflow._sdk._errors import FlowOperationError from promptflow._sdk._telemetry import ActivityType, WorkspaceTelemetryMixin, monitor_operation -from promptflow._sdk._utils import PromptflowIgnoreFile, generate_flow_meta +from promptflow._sdk._utils import PromptflowIgnoreFile from promptflow._sdk._vendor._asset_utils import traverse_directory +from promptflow._utils.flow_utils import resolve_flow_path from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow.azure._constants._flow import DEFAULT_STORAGE from promptflow.azure._entities._flow import Flow @@ -44,6 +44,7 @@ from promptflow.azure._restclient.flow_service_caller import FlowServiceCaller from promptflow.azure.operations._artifact_utilities import _get_datastore_name, get_datastore_info from promptflow.azure.operations._fileshare_storeage_helper import FlowFileStorageClient +from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory from promptflow.exceptions import SystemErrorException, UserErrorException logger = get_cli_sdk_logger() @@ -481,7 +482,14 @@ def _try_resolve_code_for_flow(cls, flow: Flow, ops: OperationOrchestrator, igno return if flow._code_uploaded: return - cls._generate_meta_for_eager_flow(code=code) + + # generate .promptflow/flow.json for eager flow and .promptflow/flow.dag.yaml for non-eager flow + flow_directory, flow_file = resolve_flow_path(code.path) + ExecutorProxyFactory().get_executor_proxy_cls(flow.language).dump_metadata( + flow_file=flow_directory / flow_file, + working_dir=flow_directory, + ) + if ignore_tools_json: ignore_file = code._ignore_file if isinstance(ignore_file, PromptflowIgnoreFile): @@ -597,18 +605,3 @@ def _try_resolve_code_for_flow_to_file_share(cls, flow: Flow, ops: OperationOrch flow._code_uploaded = True # endregion - - @classmethod - def _generate_meta_for_eager_flow(cls, code): - from promptflow import load_flow as load_local_flow - from promptflow._sdk.entities._eager_flow import FlexFlow - - flow = load_local_flow(code.path) - if isinstance(flow, FlexFlow) and flow.language == FlowLanguage.Python: - # TODO: support generate meta for CSharp flow - generate_flow_meta( - flow_directory=code.path, - source_path=flow.entry_file, - entry=flow.entry, - dump=True, - ) diff --git a/src/promptflow/promptflow/batch/_base_executor_proxy.py b/src/promptflow/promptflow/batch/_base_executor_proxy.py index 2ddef43823a..04368eb25e2 100644 --- a/src/promptflow/promptflow/batch/_base_executor_proxy.py +++ b/src/promptflow/promptflow/batch/_base_executor_proxy.py @@ -7,15 +7,22 @@ from datetime import datetime from json import JSONDecodeError from pathlib import Path -from typing import Any, Mapping, Optional +from typing import Any, Dict, Mapping, NoReturn, Optional import httpx from promptflow._constants import DEFAULT_ENCODING, LINE_TIMEOUT_SEC from promptflow._core._errors import MetaFileNotFound, MetaFileReadError, NotSupported, UnexpectedError -from promptflow._sdk._constants import FLOW_META_JSON, FLOW_TOOLS_JSON, PROMPT_FLOW_DIR_NAME +from promptflow._sdk._constants import ( + FLOW_META_JSON, + FLOW_META_JSON_GEN_TIMEOUT, + FLOW_TOOLS_JSON, + FLOW_TOOLS_JSON_GEN_TIMEOUT, + PROMPT_FLOW_DIR_NAME, +) from promptflow._utils.async_utils import async_run_allowing_running_loop from promptflow._utils.exception_utils import ErrorResponse, ExceptionPresenter +from promptflow._utils.flow_utils import is_flex_flow from promptflow._utils.logger_utils import bulk_logger from promptflow._utils.utils import load_json from promptflow.batch._errors import ExecutorServiceUnhealthy @@ -29,31 +36,80 @@ class AbstractExecutorProxy: @classmethod - def get_tool_metadata(cls, flow_file: Path, working_dir: Optional[Path] = None) -> dict: - """Generate tool metadata file for the specified flow.""" - return cls._get_tool_metadata(flow_file, working_dir or flow_file.parent) + def dump_metadata(cls, flow_file: Path, working_dir: Path) -> NoReturn: + """Generate metadata for a specific flow.""" + cls.generate_flow_tools_json(flow_file, working_dir, dump=True) + cls.generate_flow_json(flow_file, working_dir, dump=True) - def _get_flow_meta(self) -> dict: - """Get the flow metadata from""" - raise NotImplementedError() + @classmethod + def generate_flow_tools_json( + cls, + flow_file: Path, + working_dir: Path, + dump: bool = True, + timeout: int = FLOW_TOOLS_JSON_GEN_TIMEOUT, + load_in_subprocess: bool = True, + ) -> dict: + """Generate flow.tools.json for the specified flow.""" + if is_flex_flow(file_path=flow_file, working_dir=working_dir): + return {} + else: + return cls._generate_flow_tools_json(flow_file, working_dir, dump, timeout, load_in_subprocess) - def get_inputs_definition(self) -> Mapping[str, Any]: - """Get the inputs definition of an eager flow""" - from promptflow.contracts.flow import FlowInputDefinition + @classmethod + def _generate_flow_tools_json( + cls, + flow_file: Path, + working_dir: Path, + dump: bool = True, + timeout: int = FLOW_TOOLS_JSON_GEN_TIMEOUT, + load_in_subprocess: bool = True, + ) -> dict: + raise NotImplementedError() - flow_meta = self._get_flow_meta() - inputs = {} - for key, value in flow_meta.get("inputs", {}).items(): - # TODO: update this after we determine whether to accept list here or now - _type = value.get("type") - if isinstance(_type, list): - _type = _type[0] - value["type"] = _type - inputs[key] = FlowInputDefinition.deserialize(value) - return inputs + @classmethod + def generate_flow_json( + cls, + flow_file: Path, + working_dir: Path, + dump: bool = True, + timeout: int = FLOW_META_JSON_GEN_TIMEOUT, + load_in_subprocess: bool = True, + ) -> Dict[str, Any]: + """Generate metadata for a specific flow. + + :param flow_file: The path of the flow file. + :type flow_file: Path + :param working_dir: The working directory to generate the flow metadata. It will impact the packages to load + and the location of generated flow.json file when dump is True. + :type working_dir: Path + :param dump: Whether to dump the metadata to .promptflow/flow.json. + :type dump: bool + :param timeout: The timeout for the flow execution. Default timeout is 60 seconds. + :type timeout: int + :param load_in_subprocess: Whether to load the flow in a subprocess. This parameter works for Python flow only. + :type load_in_subprocess: bool + :return: The metadata of the flow. + :rtype: Dict[str, Any] + """ + if is_flex_flow(file_path=flow_file, working_dir=working_dir): + return cls._generate_flow_json(flow_file, working_dir, dump, timeout, load_in_subprocess) + else: + return {} @classmethod - def _get_tool_metadata(cls, flow_file: Path, working_dir: Path) -> dict: + def _generate_flow_json( + cls, + flow_file: Path, + working_dir: Path, + dump: bool = True, + timeout: int = FLOW_META_JSON_GEN_TIMEOUT, + load_in_subprocess: bool = True, + ) -> Dict[str, Any]: + raise NotImplementedError() + + def get_inputs_definition(self): + """Get the inputs definition of an eager flow""" raise NotImplementedError() @classmethod @@ -174,35 +230,75 @@ async def destroy_if_all_generators_exhausted(self): def _get_flow_meta(self) -> dict: flow_meta_json_path = self.working_dir / PROMPT_FLOW_DIR_NAME / FLOW_META_JSON - if not flow_meta_json_path.is_file(): - raise MetaFileNotFound( - message_format=( - # TODO: pf flow validate should be able to generate flow.json - "Failed to fetch meta of inputs: cannot find {file_path}, please retry." - ), - file_path=flow_meta_json_path.absolute().as_posix(), - ) + return self._read_json_content(flow_meta_json_path, "meta of flow") + + @classmethod + def dump_metadata(cls, flow_file: Path, working_dir: Path) -> NoReturn: + # In abstract class, dump_metadata may redirect to generate_tools_json and generate_flow_json + # However, for APIBasedExecutorProxy, we can't get the meta in current process, so generate_tools_json + # and generate_flow_json should rely on the metadata file dumped by dump_metadata instead. - with open(flow_meta_json_path, mode="r", encoding=DEFAULT_ENCODING) as flow_meta_json_path: - return json.load(flow_meta_json_path) + # for local, they should override this method and dump metadata, like via a subprocess command + # for cloud, they will assume that metadata has already been dumped into the flow directory so do nothing here + return + + def get_inputs_definition(self): + """Get the inputs definition of an eager flow""" + from promptflow.contracts.flow import FlowInputDefinition + + flow_meta = self._get_flow_meta() + inputs = {} + for key, value in flow_meta.get("inputs", {}).items(): + # TODO: update this after we determine whether to accept list here or now + _type = value.get("type") + if isinstance(_type, list): + _type = _type[0] + value["type"] = _type + inputs[key] = FlowInputDefinition.deserialize(value) + return inputs @classmethod - def _get_tool_metadata(cls, flow_file: Path, working_dir: Path) -> dict: + def _generate_flow_tools_json( + cls, + flow_file: Path, + working_dir: Path, + dump: bool = True, + timeout: int = FLOW_TOOLS_JSON_GEN_TIMEOUT, + load_in_subprocess: bool = True, + ) -> dict: flow_tools_json_path = working_dir / PROMPT_FLOW_DIR_NAME / FLOW_TOOLS_JSON - if flow_tools_json_path.is_file(): - with open(flow_tools_json_path, mode="r", encoding=DEFAULT_ENCODING) as f: + return cls._read_json_content(flow_tools_json_path, "meta of tools") + + @classmethod + def _generate_flow_json( + cls, + flow_file: Path, + working_dir: Path, + dump: bool = True, + timeout: int = FLOW_META_JSON_GEN_TIMEOUT, + load_in_subprocess: bool = True, + ) -> Dict[str, Any]: + flow_json_path = working_dir / PROMPT_FLOW_DIR_NAME / FLOW_META_JSON + return cls._read_json_content(flow_json_path, "meta of tools") + + @classmethod + def _read_json_content(cls, file_path: Path, target: str) -> dict: + if file_path.is_file(): + with open(file_path, mode="r", encoding=DEFAULT_ENCODING) as f: try: return json.load(f) except json.JSONDecodeError: raise MetaFileReadError( - message_format="Failed to fetch meta of tools: {file_path} is not a valid json file.", - file_path=flow_tools_json_path.absolute().as_posix(), + message_format="Failed to fetch {target_obj}: {file_path} is not a valid json file.", + file_path=file_path.absolute().as_posix(), + target_obj=target, ) raise MetaFileNotFound( message_format=( - "Failed to fetch meta of tools: cannot find {file_path}, please build the flow project first." + "Failed to fetch meta of tools: cannot find {file_path}, " + "please build the flow project with extension first." ), - file_path=flow_tools_json_path.absolute().as_posix(), + file_path=file_path.absolute().as_posix(), ) @property diff --git a/src/promptflow/promptflow/batch/_batch_engine.py b/src/promptflow/promptflow/batch/_batch_engine.py index 1165b0ee224..b2e9cb86364 100644 --- a/src/promptflow/promptflow/batch/_batch_engine.py +++ b/src/promptflow/promptflow/batch/_batch_engine.py @@ -22,6 +22,7 @@ handle_line_failures, set_batch_input_source_from_inputs_mapping, ) +from promptflow._utils.flow_utils import is_flex_flow from promptflow._utils.logger_utils import bulk_logger from promptflow._utils.multimedia_utils import persist_multimedia_data from promptflow._utils.utils import ( @@ -32,10 +33,9 @@ transpose, ) from promptflow._utils.yaml_utils import load_yaml -from promptflow.batch._base_executor_proxy import AbstractExecutorProxy from promptflow.batch._batch_inputs_processor import BatchInputsProcessor -from promptflow.batch._csharp_executor_proxy import CSharpExecutorProxy from promptflow.batch._errors import BatchRunTimeoutError +from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory from promptflow.batch._python_executor_proxy import PythonExecutorProxy from promptflow.batch._result import BatchResult from promptflow.contracts.flow import Flow @@ -52,26 +52,6 @@ class BatchEngine: """This class is used to execute flows in batch mode""" - executor_proxy_classes: Mapping[str, AbstractExecutorProxy] = { - FlowLanguage.Python: PythonExecutorProxy, - FlowLanguage.CSharp: CSharpExecutorProxy, - } - - @classmethod - def register_executor(cls, type: str, executor_proxy_cls: AbstractExecutorProxy): - """Register a executor proxy class for a specific program language. - - This method allows users to register a executor proxy class for a particular - programming language. The executor proxy class will be used when creating an instance - of the BatchEngine for flows written in the specified language. - - :param type: The flow program language of the executor proxy, - :type type: str - :param executor_proxy_cls: The executor proxy class to be registered. - :type executor_proxy_cls: ~promptflow.batch.AbstractExecutorProxy - """ - cls.executor_proxy_classes[type] = executor_proxy_cls - def __init__( self, flow_file: Path, @@ -162,13 +142,12 @@ def run( self._start_time = datetime.utcnow() with _change_working_dir(self._working_dir): # create executor proxy instance according to the flow program language - executor_proxy_cls = self.executor_proxy_classes[self._program_language] - self._executor_proxy: AbstractExecutorProxy = async_run_allowing_running_loop( - executor_proxy_cls.create, - self._flow_file, - self._working_dir, + self._executor_proxy = ExecutorProxyFactory().create_executor_proxy( + flow_file=self._flow_file, + working_dir=self._working_dir, connections=self._connections, storage=self._storage, + language=self._program_language, **self._kwargs, ) try: @@ -501,6 +480,5 @@ def _check_eager_flow_and_language_from_yaml(self): return True, FlowLanguage.CSharp with open(flow_file, "r", encoding="utf-8") as fin: flow_dag = load_yaml(fin) - is_eager_flow = "entry" in flow_dag language = flow_dag.get(LANGUAGE_KEY, FlowLanguage.Python) - return is_eager_flow, language + return is_flex_flow(yaml_dict=flow_dag), language diff --git a/src/promptflow/promptflow/batch/_csharp_executor_proxy.py b/src/promptflow/promptflow/batch/_csharp_executor_proxy.py index fe8bd299d55..07cc1ce9151 100644 --- a/src/promptflow/promptflow/batch/_csharp_executor_proxy.py +++ b/src/promptflow/promptflow/batch/_csharp_executor_proxy.py @@ -5,9 +5,10 @@ import subprocess import uuid from pathlib import Path -from typing import Optional +from typing import NoReturn, Optional from promptflow._core._errors import UnexpectedError +from promptflow._utils.flow_utils import is_flex_flow from promptflow.batch._csharp_base_executor_proxy import CSharpBaseExecutorProxy from promptflow.storage._run_storage import AbstractRunStorage @@ -46,9 +47,9 @@ def chat_output_name(self) -> Optional[str]: return self._chat_output_name @classmethod - def generate_metadata(cls, flow_file: Path, assembly_folder: Path): - """Generate metadata for the flow and save them to files under .promptflow folder. - including flow.json and flow.tools.json. + def dump_metadata(cls, flow_file: Path, working_dir: Path) -> NoReturn: + """In csharp, we need to generate metadata based on a dotnet command for now and the metadata will + always be dumped. """ command = [ "dotnet", @@ -62,24 +63,25 @@ def generate_metadata(cls, flow_file: Path, assembly_folder: Path): try: subprocess.check_output( command, - cwd=assembly_folder, + cwd=working_dir, ) except subprocess.CalledProcessError as e: raise UnexpectedError( - message_format=f"Failed to generate flow meta for csharp flow.\n" - f"Command: {' '.join(command)}\n" - f"Working directory: {assembly_folder.as_posix()}\n" - f"Return code: {e.returncode}\n" - f"Output: {e.output}", + message_format="Failed to generate flow meta for csharp flow.\n" + "Command: {command}\n" + "Working directory: {working_directory}\n" + "Return code: {return_code}\n" + "Output: {output}", + command=" ".join(command), + working_directory=working_dir.as_posix(), + return_code=e.returncode, + output=e.output, ) @classmethod def get_outputs_definition(cls, flow_file: Path, working_dir: Path) -> dict: - from promptflow._utils.yaml_utils import load_yaml - - flow_data = load_yaml(flow_file) # TODO: no outputs definition for eager flow for now - if flow_data.get("entry", None) is not None: + if is_flex_flow(file_path=flow_file, working_dir=working_dir): return {} # TODO: get this from self._get_flow_meta for both eager flow and non-eager flow then remove diff --git a/src/promptflow/promptflow/batch/_executor_proxy_factory.py b/src/promptflow/promptflow/batch/_executor_proxy_factory.py new file mode 100644 index 00000000000..c62b75d75bf --- /dev/null +++ b/src/promptflow/promptflow/batch/_executor_proxy_factory.py @@ -0,0 +1,53 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +from typing import Dict, Type + +from promptflow._constants import FlowLanguage +from promptflow._utils.async_utils import async_run_allowing_running_loop + +from ._base_executor_proxy import AbstractExecutorProxy +from ._csharp_executor_proxy import CSharpExecutorProxy +from ._python_executor_proxy import PythonExecutorProxy + + +class ExecutorProxyFactory: + executor_proxy_classes: Dict[str, Type[AbstractExecutorProxy]] = { + FlowLanguage.Python: PythonExecutorProxy, + FlowLanguage.CSharp: CSharpExecutorProxy, + } + + def __init__(self): + pass + + def get_executor_proxy_cls(self, language: str) -> Type[AbstractExecutorProxy]: + return self.executor_proxy_classes[language] + + @classmethod + def register_executor(cls, language: str, executor_proxy_cls: Type[AbstractExecutorProxy]): + """Register a executor proxy class for a specific program language. + + This method allows users to register a executor proxy class for a particular + programming language. The executor proxy class will be used when creating an instance + of the BatchEngine for flows written in the specified language. + + :param language: The flow program language of the executor proxy, + :type language: str + :param executor_proxy_cls: The executor proxy class to be registered. + :type executor_proxy_cls: ~promptflow.batch.AbstractExecutorProxy + """ + cls.executor_proxy_classes[language] = executor_proxy_cls + + def create_executor_proxy( + self, flow_file, working_dir, connections, storage, language: str, **kwargs + ) -> AbstractExecutorProxy: + executor_proxy_cls = self.get_executor_proxy_cls(language) + return async_run_allowing_running_loop( + executor_proxy_cls.create, + flow_file, + working_dir, + connections=connections, + storage=storage, + **kwargs, + ) diff --git a/src/promptflow/promptflow/batch/_python_executor_proxy.py b/src/promptflow/promptflow/batch/_python_executor_proxy.py index 2ab8be0ce03..bb4fe033c3e 100644 --- a/src/promptflow/promptflow/batch/_python_executor_proxy.py +++ b/src/promptflow/promptflow/batch/_python_executor_proxy.py @@ -3,13 +3,17 @@ # --------------------------------------------------------- from pathlib import Path -from typing import Any, List, Mapping, Optional, Tuple +from typing import Any, Dict, List, Mapping, Optional, Tuple from promptflow._core._errors import UnexpectedError from promptflow._core.run_tracker import RunTracker +from promptflow._sdk._constants import FLOW_META_JSON_GEN_TIMEOUT, FLOW_TOOLS_JSON_GEN_TIMEOUT +from promptflow._utils.flow_utils import resolve_entry_file from promptflow._utils.logger_utils import bulk_logger +from promptflow._utils.yaml_utils import load_yaml from promptflow.batch._base_executor_proxy import AbstractExecutorProxy from promptflow.contracts.run_mode import RunMode +from promptflow.core._utils import generate_flow_meta from promptflow.executor import FlowExecutor from promptflow.executor._line_execution_process_pool import LineExecutionProcessPool from promptflow.executor._result import AggregationResult, LineResult @@ -22,6 +26,26 @@ class PythonExecutorProxy(AbstractExecutorProxy): def __init__(self, flow_executor: FlowExecutor): self._flow_executor = flow_executor + @classmethod + def _generate_flow_json( + cls, + flow_file: Path, + working_dir: Path, + dump: bool = True, + timeout: int = FLOW_META_JSON_GEN_TIMEOUT, + load_in_subprocess: bool = True, + ) -> Dict[str, Any]: + flow_dag = load_yaml(flow_file) + # generate flow.json only for eager flow for now + return generate_flow_meta( + flow_directory=working_dir, + source_path=resolve_entry_file(entry=flow_dag.get("entry"), working_dir=working_dir), + entry=flow_dag.get("entry"), + dump=dump, + timeout=timeout, + load_in_subprocess=load_in_subprocess, + ) + @classmethod async def create( cls, @@ -89,11 +113,19 @@ def get_inputs_definition(self): return self._flow_executor.get_inputs_definition() @classmethod - def _get_tool_metadata(cls, flow_file: Path, working_dir: Path) -> dict: + def _generate_flow_tools_json( + cls, + flow_file: Path, + working_dir: Path, + dump: bool = True, + timeout: int = FLOW_TOOLS_JSON_GEN_TIMEOUT, + load_in_subprocess: bool = True, + ) -> dict: from promptflow._sdk._utils import generate_flow_tools_json return generate_flow_tools_json( flow_directory=working_dir, - dump=False, + dump=dump, + timeout=timeout, used_packages_only=True, ) diff --git a/src/promptflow/promptflow/core/_flow.py b/src/promptflow/promptflow/core/_flow.py index d6ca9ec91de..06288eb08f1 100644 --- a/src/promptflow/promptflow/core/_flow.py +++ b/src/promptflow/promptflow/core/_flow.py @@ -9,7 +9,7 @@ from typing import Optional, Union from promptflow._constants import DEFAULT_ENCODING -from promptflow._utils.flow_utils import resolve_flow_path +from promptflow._utils.flow_utils import is_flex_flow, resolve_entry_file, resolve_flow_path from promptflow._utils.yaml_utils import load_yaml_string from promptflow.core._connection import _Connection from promptflow.core._utils import generate_flow_meta @@ -156,12 +156,6 @@ def __init__( def _load(cls, path: Path, dag: dict, **kwargs): return cls(code=path.parent, path=path, dag=dag, **kwargs) - @classmethod - def _is_eager_flow(cls, data: dict): - """Check if the flow is an non-dag flow. Use field 'entry' to determine.""" - # If entry specified, it's an non-dag flow. - return data.get("entry") - @classmethod def _dispatch_flow_creation(cls, is_eager_flow, flow_path, data, content_hash, raise_error=True, **kwargs): """Dispatch flow load to non-dag flow or async flow.""" @@ -176,9 +170,13 @@ def _load_prepare(cls, source: Union[str, PathLike]): source_path = Path(source) if not source_path.exists(): raise UserErrorException(f"Source {source_path.absolute().as_posix()} does not exist") - flow_path = resolve_flow_path(source_path) + + flow_dir, flow_filename = resolve_flow_path(source_path, new=True) + flow_path = flow_dir / flow_filename + if not flow_path.exists(): raise UserErrorException(f"Flow file {flow_path.absolute().as_posix()} does not exist") + if flow_path.suffix not in [".yaml", ".yml"]: raise UserErrorException("Source must be a directory or a 'flow.dag.yaml' file") return source_path, flow_path @@ -207,9 +205,8 @@ def load( flow_content = f.read() data = load_yaml_string(flow_content) content_hash = hash(flow_content) - is_eager_flow = cls._is_eager_flow(data) return cls._dispatch_flow_creation( - is_eager_flow, flow_path, data, content_hash, raise_error=raise_error, **kwargs + is_flex_flow(yaml_dict=data), flow_path, data, content_hash, raise_error=raise_error, **kwargs ) def _init_executable(self): @@ -275,7 +272,7 @@ def __init__( # entry function name self.entry = entry # entry file name - self.entry_file = self._resolve_entry_file(entry=entry, working_dir=code) + self.entry_file = resolve_entry_file(entry=entry, working_dir=code) # TODO(2910062): support non-dag flow execution cache super().__init__(code=code, path=path, dag=data, content_hash=None, **kwargs) @@ -312,8 +309,7 @@ def load( with open(flow_path, "r", encoding=DEFAULT_ENCODING) as f: flow_content = f.read() data = load_yaml_string(flow_content) - is_eager_flow = cls._is_eager_flow(data) - if not is_eager_flow: + if not is_flex_flow(yaml_dict=data): raise UserErrorException("Please load an non-dag flow with EagerFlow.load method.") return cls._load(path=flow_path, data=data, **kwargs) diff --git a/src/promptflow/promptflow/executor/flow_executor.py b/src/promptflow/promptflow/executor/flow_executor.py index da8c2fe0a5a..3fff3992324 100644 --- a/src/promptflow/promptflow/executor/flow_executor.py +++ b/src/promptflow/promptflow/executor/flow_executor.py @@ -31,6 +31,7 @@ extract_aggregation_inputs, get_aggregation_inputs_properties, ) +from promptflow._utils.flow_utils import is_flex_flow from promptflow._utils.logger_utils import flow_logger, logger from promptflow._utils.multimedia_utils import ( load_multimedia_data, @@ -196,7 +197,7 @@ def create( :return: A new instance of FlowExecutor. :rtype: ~promptflow.executor.flow_executor.FlowExecutor """ - if cls._is_eager_flow_yaml(flow_file, working_dir): + if is_flex_flow(file_path=flow_file, working_dir=working_dir): from ._script_executor import ScriptExecutor return ScriptExecutor( @@ -273,16 +274,6 @@ def _create_from_flow( logger.debug("The flow executor is initialized successfully.") return executor - @classmethod - def _is_eager_flow_yaml(cls, flow_file: Path, working_dir: Optional[Path] = None): - if Path(flow_file).suffix.lower() in [".yaml", ".yml"]: - flow_file = working_dir / flow_file if working_dir else flow_file - with open(flow_file, "r", encoding="utf-8") as fin: - flow_dag = load_yaml(fin) - if "entry" in flow_dag: - return True - return False - @classmethod def load_and_exec_node( cls, @@ -665,9 +656,7 @@ def _exec_in_thread(self, args) -> LineResult: thread_name = current_thread().name self._processing_idx[line_number] = thread_name self._run_tracker._activate_in_context() - results = self._exec( - inputs, run_id=run_id, line_number=line_number, validate_inputs=validate_inputs - ) + results = self._exec(inputs, run_id=run_id, line_number=line_number, validate_inputs=validate_inputs) self._run_tracker._deactivate_in_context() self._processing_idx.pop(line_number) self._completed_idx[line_number] = thread_name diff --git a/src/promptflow/tests/executor/e2etests/test_csharp_executor_proxy.py b/src/promptflow/tests/executor/e2etests/test_csharp_executor_proxy.py index 3ad8db55b5b..aee868c6c02 100644 --- a/src/promptflow/tests/executor/e2etests/test_csharp_executor_proxy.py +++ b/src/promptflow/tests/executor/e2etests/test_csharp_executor_proxy.py @@ -11,6 +11,7 @@ from promptflow._utils.exception_utils import ExceptionPresenter from promptflow.batch._batch_engine import BatchEngine from promptflow.batch._csharp_executor_proxy import CSharpExecutorProxy +from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory from promptflow.batch._result import BatchResult from promptflow.contracts.run_info import Status from promptflow.exceptions import ErrorTarget, ValidationException @@ -24,7 +25,7 @@ @pytest.mark.unittest class TestCSharpExecutorProxy: def setup_method(self): - BatchEngine.register_executor(FlowLanguage.CSharp, MockCSharpExecutorProxy) + ExecutorProxyFactory.register_executor(FlowLanguage.CSharp, MockCSharpExecutorProxy) def test_batch(self): # submit a batch run diff --git a/src/promptflow/tests/executor/unittests/batch/test_batch_engine.py b/src/promptflow/tests/executor/unittests/batch/test_batch_engine.py index cddc8c5789f..30dfc75f224 100644 --- a/src/promptflow/tests/executor/unittests/batch/test_batch_engine.py +++ b/src/promptflow/tests/executor/unittests/batch/test_batch_engine.py @@ -6,6 +6,7 @@ from promptflow._core._errors import UnexpectedError from promptflow.batch import APIBasedExecutorProxy, BatchEngine, CSharpExecutorProxy, PythonExecutorProxy +from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory from promptflow.contracts.run_info import Status from promptflow.exceptions import ErrorTarget from promptflow.executor._errors import ConnectionNotFound @@ -52,16 +53,16 @@ def test_batch_engine_run_error(self, side_effect, ex_type, ex_target, ex_codes, def test_register_executor(self): # assert original values - assert BatchEngine.executor_proxy_classes["python"] == PythonExecutorProxy - assert BatchEngine.executor_proxy_classes["csharp"] == CSharpExecutorProxy + assert ExecutorProxyFactory.executor_proxy_classes["python"] == PythonExecutorProxy + assert ExecutorProxyFactory.executor_proxy_classes["csharp"] == CSharpExecutorProxy class MockJSExecutorProxy(APIBasedExecutorProxy): pass # register new proxy - BatchEngine.register_executor("js", MockJSExecutorProxy) - assert BatchEngine.executor_proxy_classes["js"] == MockJSExecutorProxy - assert len(BatchEngine.executor_proxy_classes) == 3 + ExecutorProxyFactory.register_executor("js", MockJSExecutorProxy) + assert ExecutorProxyFactory.executor_proxy_classes["js"] == MockJSExecutorProxy + assert len(ExecutorProxyFactory.executor_proxy_classes) == 3 def test_cancel(self): batch_engine = BatchEngine(get_yaml_file("print_input_flow")) diff --git a/src/promptflow/tests/executor/unittests/batch/test_csharp_executor_proxy.py b/src/promptflow/tests/executor/unittests/batch/test_csharp_executor_proxy.py index f78747378bd..2b2c8aea343 100644 --- a/src/promptflow/tests/executor/unittests/batch/test_csharp_executor_proxy.py +++ b/src/promptflow/tests/executor/unittests/batch/test_csharp_executor_proxy.py @@ -22,6 +22,9 @@ async def get_executor_proxy(): return await CSharpExecutorProxy.create(flow_file, working_dir) +DUMMY_FLOW_FILE = get_yaml_file("csharp_flow") + + @pytest.mark.unittest class TestCSharpExecutorProxy: @pytest.mark.asyncio @@ -105,13 +108,13 @@ def test_get_tool_metadata_succeed(self): with open(tool_meta_file, "w") as file: json.dump(expected_tool_meta, file, indent=4) - tool_meta = CSharpExecutorProxy.get_tool_metadata("", working_dir) + tool_meta = CSharpExecutorProxy.generate_flow_tools_json(DUMMY_FLOW_FILE, working_dir) assert tool_meta == expected_tool_meta def test_get_tool_metadata_failed_with_file_not_found(self): working_dir = Path(mkdtemp()) with pytest.raises(MetaFileNotFound): - CSharpExecutorProxy.get_tool_metadata("", working_dir) + CSharpExecutorProxy.generate_flow_tools_json(DUMMY_FLOW_FILE, working_dir) def test_get_tool_metadata_failed_with_content_not_json(self): working_dir = Path(mkdtemp()) @@ -120,7 +123,7 @@ def test_get_tool_metadata_failed_with_content_not_json(self): tool_meta_file.touch() with pytest.raises(MetaFileReadError): - CSharpExecutorProxy.get_tool_metadata("", working_dir) + CSharpExecutorProxy.generate_flow_tools_json(DUMMY_FLOW_FILE, working_dir) def test_find_available_port(self): port = CSharpExecutorProxy.find_available_port() From a8bee4b05ad361320c6cace51c29b7b7c0ab5f75 Mon Sep 17 00:00:00 2001 From: Lina Tang Date: Fri, 15 Mar 2024 18:17:55 +0800 Subject: [PATCH 069/204] [Executor] Disable long runing logging by default (#2362) # Description Issue: #2316 This PR introduces a change to the logging behavior for long-running nodes. Previously, if a node executed for an extended period, a stack trace would be automatically logged, potentially cluttering the flow execution logs. To address this, we have now disabled long-running logging by default. Users who wish to enable logging for long-running tasks can do so by setting the PF_LONG_RUNNING_LOGGING_INTERVAL environment variable. When this variable is defined, the system will log stack traces in the specified intervals for tasks that exceed the expected runtime. ## Key Changes: * [`src/promptflow/promptflow/_constants.py`](diffhunk://#diff-0d3cf5f31883ff073bf1e11cb2e17db5cc8fe6e5e38cbb4af7b99f37ac31d41aR47-R49): Added `PF_LONG_RUNNING_LOGGING_INTERVAL` as a new environment variable. * [`src/promptflow/promptflow/_utils/utils.py`](diffhunk://#diff-d12fdd7b90cc1748f1d3e1237b4f357ba7f66740445d117beeb68ed174d1e86eR399-R420): Added `try_get_long_running_logging_interval` function to fetch and validate the logging interval from the environment variable. * [`src/promptflow/promptflow/_core/flow_execution_context.py`](diffhunk://#diff-8a45b6238b72974b62aa211aec63ef4cbeadfa8277f84525442c245a16ee4461L169-R190): Updated `invoke_tool` method to use the new logging interval. * [`src/promptflow/promptflow/executor/_async_nodes_scheduler.py`](diffhunk://#diff-aea06244ab378a5cbd47d27ba6d92c433df3089d077871b1e6aaa1b47cd3c73fR61-R66): Updated `execute` and `monitor_long_running_coroutine` methods to use the new logging interval. * [`src/promptflow/tests/executor/e2etests/test_executor_happypath.py`](diffhunk://#diff-44d4009e9df8029bb88432b7a843d3a887764cd6a67070afc49557334af3cbaaL100-R100): Updated the test to use the new environment variable. * [`src/promptflow/tests/executor/e2etests/test_logs.py`](diffhunk://#diff-1a19d8e55ebdc42bc8032fbf6025ceb4870857ef940322043695e3e8ee2847c7R156): Updated multiple tests to use the new environment variable. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --------- Co-authored-by: Lina Tang --- src/promptflow/promptflow/_constants.py | 3 ++ .../_core/flow_execution_context.py | 13 +++++-- src/promptflow/promptflow/_utils/utils.py | 24 +++++++++++- .../executor/_async_nodes_scheduler.py | 36 ++++++------------ .../e2etests/test_executor_happypath.py | 16 +++++++- .../tests/executor/e2etests/test_logs.py | 37 ++++++++++++++----- 6 files changed, 88 insertions(+), 41 deletions(-) diff --git a/src/promptflow/promptflow/_constants.py b/src/promptflow/promptflow/_constants.py index 53facb646da..4b55fe0e98e 100644 --- a/src/promptflow/promptflow/_constants.py +++ b/src/promptflow/promptflow/_constants.py @@ -44,6 +44,9 @@ LINE_NUMBER_KEY = "line_number" # Using the same key with portal. LINE_TIMEOUT_SEC = 600 +# Environment variables +PF_LONG_RUNNING_LOGGING_INTERVAL = "PF_LONG_RUNNING_LOGGING_INTERVAL" + class FlowLanguage: """The enum of tool source type.""" diff --git a/src/promptflow/promptflow/_core/flow_execution_context.py b/src/promptflow/promptflow/_core/flow_execution_context.py index 2ea6259a4a0..b1843bc8767 100644 --- a/src/promptflow/promptflow/_core/flow_execution_context.py +++ b/src/promptflow/promptflow/_core/flow_execution_context.py @@ -17,7 +17,7 @@ from promptflow._core.cache_manager import AbstractCacheManager, CacheInfo, CacheResult from promptflow._utils.logger_utils import flow_logger, logger from promptflow._utils.thread_utils import RepeatLogTimer -from promptflow._utils.utils import generate_elapsed_time_messages +from promptflow._utils.utils import generate_elapsed_time_messages, try_get_long_running_logging_interval from promptflow.contracts.flow import Node from promptflow.contracts.run_info import RunInfo from promptflow.exceptions import PromptflowException @@ -26,6 +26,8 @@ from .run_tracker import RunTracker +DEFAULT_LOGGING_INTERVAL = 60 + class FlowExecutionContext(ThreadLocalSingleton): """The context for a flow execution.""" @@ -82,7 +84,7 @@ def invoke_tool(self, node: Node, f: Callable, kwargs): if not hit_cache: Tracer.start_tracing(node_run_id, node.name) - result = self._invoke_tool_with_timer(node, f, kwargs) + result = self._invoke_tool_inner(node, f, kwargs) traces = Tracer.end_tracing(node_run_id) self._run_tracker.end_run(node_run_id, result=result, traces=traces) @@ -166,14 +168,17 @@ async def _invoke_tool_async_inner(self, node: Node, f: Callable, kwargs): # and shows stack trace in the error message to make it easy for user to troubleshoot. raise ToolExecutionError(node_name=node.name, module=module) from e - def _invoke_tool_with_timer(self, node: Node, f: Callable, kwargs): + def _invoke_tool_inner(self, node: Node, f: Callable, kwargs): module = f.func.__module__ if isinstance(f, functools.partial) else f.__module__ node_name = node.name try: + if ( + interval_seconds := try_get_long_running_logging_interval(flow_logger, DEFAULT_LOGGING_INTERVAL) + ) is None: + return f(**kwargs) logging_name = node_name if self._line_number is not None: logging_name = f"{node_name} in line {self._line_number}" - interval_seconds = 60 start_time = time.perf_counter() thread_id = threading.current_thread().ident with RepeatLogTimer( diff --git a/src/promptflow/promptflow/_utils/utils.py b/src/promptflow/promptflow/_utils/utils.py index 844913829e7..02d787280e0 100644 --- a/src/promptflow/promptflow/_utils/utils.py +++ b/src/promptflow/promptflow/_utils/utils.py @@ -20,7 +20,7 @@ from pathlib import Path from typing import Any, Dict, Iterable, Iterator, List, Optional, TypeVar, Union -from promptflow._constants import DEFAULT_ENCODING +from promptflow._constants import DEFAULT_ENCODING, PF_LONG_RUNNING_LOGGING_INTERVAL from promptflow.contracts.multimedia import PFBytes from promptflow.contracts.types import AssistantDefinition @@ -396,3 +396,25 @@ def prepare_folder(path: Union[str, Path]) -> Path: path = Path(path) path.mkdir(parents=True, exist_ok=True) return path + + +def try_get_long_running_logging_interval(logger: logging.Logger, default_interval: int): + logging_interval_in_env = os.environ.get(PF_LONG_RUNNING_LOGGING_INTERVAL, None) + if logging_interval_in_env: + try: + value = int(logging_interval_in_env) + if value <= 0: + raise ValueError + logger.info( + f"Using value of {PF_LONG_RUNNING_LOGGING_INTERVAL} in environment variable as " + f"logging interval: {logging_interval_in_env}" + ) + return value + except ValueError: + logger.warning( + f"Value of {PF_LONG_RUNNING_LOGGING_INTERVAL} in environment variable " + f"('{logging_interval_in_env}') is invalid, use default value {default_interval}" + ) + return default_interval + # If the environment variable is not set, return none to disable the long running logging + return None diff --git a/src/promptflow/promptflow/executor/_async_nodes_scheduler.py b/src/promptflow/promptflow/executor/_async_nodes_scheduler.py index 664016a698c..01b2e926f34 100644 --- a/src/promptflow/promptflow/executor/_async_nodes_scheduler.py +++ b/src/promptflow/promptflow/executor/_async_nodes_scheduler.py @@ -18,7 +18,7 @@ from promptflow._core.tools_manager import ToolsManager from promptflow._utils.logger_utils import flow_logger from promptflow._utils.thread_utils import ThreadWithContextVars -from promptflow._utils.utils import extract_user_frame_summaries, set_context +from promptflow._utils.utils import extract_user_frame_summaries, set_context, try_get_long_running_logging_interval from promptflow.contracts.flow import Node from promptflow.executor._dag_manager import DAGManager from promptflow.executor._errors import NoNodeExecutedError @@ -58,12 +58,15 @@ async def execute( # Semaphore should be created in the loop, otherwise it will not work. loop = asyncio.get_running_loop() self._semaphore = asyncio.Semaphore(self._node_concurrency) - monitor = ThreadWithContextVars( - target=monitor_long_running_coroutine, - args=(loop, self._task_start_time, self._task_last_log_time, self._dag_manager_completed_event), - daemon=True, - ) - monitor.start() + if (interval := try_get_long_running_logging_interval(flow_logger, DEFAULT_TASK_LOGGING_INTERVAL)) is not None: + monitor = ThreadWithContextVars( + target=monitor_long_running_coroutine, + args=( + interval, loop, self._task_start_time, self._task_last_log_time, self._dag_manager_completed_event + ), + daemon=True, + ) + monitor.start() # Set the name of scheduler tasks to avoid monitoring its duration task = asyncio.current_task() @@ -223,6 +226,7 @@ def log_stack_recursively(task: asyncio.Task, elapse_time: float): def monitor_long_running_coroutine( + logging_interval: int, loop: asyncio.AbstractEventLoop, task_start_time: dict, task_last_log_time: dict, @@ -230,24 +234,6 @@ def monitor_long_running_coroutine( ): flow_logger.info("monitor_long_running_coroutine started") - logging_interval = DEFAULT_TASK_LOGGING_INTERVAL - logging_interval_in_env = os.environ.get("PF_TASK_PEEKING_INTERVAL") - if logging_interval_in_env: - try: - value = int(logging_interval_in_env) - if value <= 0: - raise ValueError - logging_interval = value - flow_logger.info( - f"Using value of PF_TASK_PEEKING_INTERVAL in environment variable as " - f"logging interval: {logging_interval_in_env}" - ) - except ValueError: - flow_logger.warning( - f"Value of PF_TASK_PEEKING_INTERVAL in environment variable ('{logging_interval_in_env}') " - f"is invalid, use default value {DEFAULT_TASK_LOGGING_INTERVAL}" - ) - while not dag_manager_completed_event.is_set(): running_tasks = [task for task in asyncio.all_tasks(loop) if not task.done()] # get duration of running tasks diff --git a/src/promptflow/tests/executor/e2etests/test_executor_happypath.py b/src/promptflow/tests/executor/e2etests/test_executor_happypath.py index ed60eff72aa..87a411bae98 100644 --- a/src/promptflow/tests/executor/e2etests/test_executor_happypath.py +++ b/src/promptflow/tests/executor/e2etests/test_executor_happypath.py @@ -97,8 +97,9 @@ def test_long_running_log(self, dev_connections, capsys): from promptflow._utils.logger_utils import flow_logger flow_logger.addHandler(logging.StreamHandler(sys.stdout)) - os.environ["PF_TASK_PEEKING_INTERVAL"] = "1" + # Test long running tasks with log + os.environ["PF_LONG_RUNNING_LOGGING_INTERVAL"] = "1" executor = FlowExecutor.create(get_yaml_file("async_tools"), dev_connections) executor.exec_line(self.get_line_inputs()) captured = capsys.readouterr() @@ -110,8 +111,19 @@ def test_long_running_log(self, dev_connections, capsys): assert re.match( expected_long_running_str_2, captured.out, re.DOTALL ), "flow_logger should contain long running async tool log" + os.environ.pop("PF_LONG_RUNNING_LOGGING_INTERVAL") + + # Test long running tasks without log + executor.exec_line(self.get_line_inputs()) + captured = capsys.readouterr() + assert not re.match( + expected_long_running_str_1, captured.out, re.DOTALL + ), "flow_logger should not contain long running async tool log" + assert not re.match( + expected_long_running_str_2, captured.out, re.DOTALL + ), "flow_logger should not contain long running async tool log" + flow_logger.handlers.pop() - os.environ.pop("PF_TASK_PEEKING_INTERVAL") @pytest.mark.parametrize( "flow_folder, node_name, flow_inputs, dependency_nodes_outputs", diff --git a/src/promptflow/tests/executor/e2etests/test_logs.py b/src/promptflow/tests/executor/e2etests/test_logs.py index 89a0b6f47bc..4e39001bc6d 100644 --- a/src/promptflow/tests/executor/e2etests/test_logs.py +++ b/src/promptflow/tests/executor/e2etests/test_logs.py @@ -1,3 +1,4 @@ +import os from pathlib import Path from tempfile import mkdtemp @@ -152,19 +153,13 @@ def test_node_logs_in_executor_logs(self, folder_name): assert all(node_log in log_content for node_log in node_logs_list) def test_long_run_log(self): - executor = FlowExecutor.create(get_yaml_file("long_run"), {}) - file_path = Path(mkdtemp()) / "flow.log" - with LogContext(file_path): - flow_result = executor.exec_line({}, index=0) - node_run = flow_result.node_run_infos["long_run_node"] - assert node_run.status == Status.Completed - with open(file_path) as fin: - lines = fin.readlines() - lines = [line for line in lines if line.strip()] + # Test long running tasks with log + os.environ["PF_LONG_RUNNING_LOGGING_INTERVAL"] = "60" target_texts = [ "INFO Start executing nodes in thread pool mode.", "INFO Start to run 1 nodes with concurrency level 16.", "INFO Executing node long_run_node.", + "INFO Using value of PF_LONG_RUNNING_LOGGING_INTERVAL in environment variable", "WARNING long_run_node in line 0 has been running for 60 seconds, stacktrace of thread", "in wrapped", "output = func(*args, **kwargs)", @@ -176,6 +171,28 @@ def test_long_run_log(self): "time.sleep(61)", "INFO Node long_run_node completes.", ] + self.assert_long_run_log(target_texts) + os.environ.pop("PF_LONG_RUNNING_LOGGING_INTERVAL") + + # Test long running tasks without log + target_texts = [ + "INFO Start executing nodes in thread pool mode.", + "INFO Start to run 1 nodes with concurrency level 16.", + "INFO Executing node long_run_node.", + "INFO Node long_run_node completes.", + ] + self.assert_long_run_log(target_texts) + + def assert_long_run_log(self, target_texts): + executor = FlowExecutor.create(get_yaml_file("long_run"), {}) + file_path = Path(mkdtemp()) / "flow.log" + with LogContext(file_path): + flow_result = executor.exec_line({}, index=0) + node_run = flow_result.node_run_infos["long_run_node"] + assert node_run.status == Status.Completed + with open(file_path) as fin: + lines = fin.readlines() + lines = [line for line in lines if line.strip()] msg = f"Got {len(lines)} lines in {file_path}, expected {len(target_texts)}." assert len(lines) == len(target_texts), msg for actual, expected in zip(lines, target_texts): @@ -237,6 +254,7 @@ def test_activate_config_log(self): assert all(log in log_content for log in logs_list) def test_async_log_in_worker_thread(self): + os.environ["PF_LONG_RUNNING_LOGGING_INTERVAL"] = "60" logs_directory = Path(mkdtemp()) log_path = str(logs_directory / "flow.log") with LogContext(log_path, run_mode=RunMode.Test): @@ -246,3 +264,4 @@ def test_async_log_in_worker_thread(self): # Below log is created by worker thread logs_list = ["INFO monitor_long_running_coroutine started"] assert all(log in log_content for log in logs_list) + os.environ.pop("PF_LONG_RUNNING_LOGGING_INTERVAL") From 4cf6b54cdcf9261baae6266667d42d7753a176b0 Mon Sep 17 00:00:00 2001 From: Lina Tang Date: Fri, 15 Mar 2024 18:58:08 +0800 Subject: [PATCH 070/204] [Tracing] Remove dependence of tracing on jinja2 (#2369) # Description Since the promptflow-tracing package should only depend on openai and opentelemetry, we should remove the dependence of tracing on jinja2. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Lina Tang --- src/promptflow/promptflow/tracing/_utils.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/promptflow/promptflow/tracing/_utils.py b/src/promptflow/promptflow/tracing/_utils.py index ed33278a634..59862461aeb 100644 --- a/src/promptflow/promptflow/tracing/_utils.py +++ b/src/promptflow/promptflow/tracing/_utils.py @@ -2,7 +2,6 @@ from dataclasses import fields, is_dataclass from datetime import datetime from enum import Enum -from jinja2 import Environment, meta from typing import Callable, Dict from .contracts.generator_proxy import GeneratorProxy @@ -59,6 +58,13 @@ def serialize(value: object, remove_null: bool = False, serialization_funcs: Dic def get_input_names_for_prompt_template(template_str): + try: + # We need to parse jinja template only when the promptflow is installed and run flow with PromptTemplate + # type input, so using try-catch to avoid the dependency of jinja2 when it's not needed. + from jinja2 import Environment, meta + except ImportError: + return [] + input_names = [] env = Environment() template = env.parse(template_str) From dd5f2d5637f6893abb0e16922261441df49e2389 Mon Sep 17 00:00:00 2001 From: Young Park Date: Sun, 17 Mar 2024 21:41:34 -0400 Subject: [PATCH 071/204] Skipping test_open_model_llm.TestOpenModelLLM tests as they require new test resources (#2377) # Description This PR skips the test_open_model_llm tests to unblock `tools_tests` gated pipeline as they require new test resources. # All Promptflow Contribution checklist: - [X] **The pull request does not introduce [breaking changes].** - [X] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [X] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [X] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [X] Title of the pull request is clear and informative. - [X] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [X] Pull request includes test coverage for the included changes. --- src/promptflow-tools/tests/test_open_model_llm.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/promptflow-tools/tests/test_open_model_llm.py b/src/promptflow-tools/tests/test_open_model_llm.py index 89d12e3981c..80a44066d0b 100644 --- a/src/promptflow-tools/tests/test_open_model_llm.py +++ b/src/promptflow-tools/tests/test_open_model_llm.py @@ -102,6 +102,7 @@ def completion_endpoints_provider(endpoints_provider: Dict[str, List[str]]) -> D return completion_endpoints +@pytest.mark.skip("Skipping - requires new test resources") @pytest.mark.usefixtures("use_secrets_config_file") class TestOpenModelLLM: stateless_os_llm = OpenModelLLM() From f03d5fe404f63f8fbaca6bed8311cba87ac7f873 Mon Sep 17 00:00:00 2001 From: Min Shi <39176492+Jasmin3q@users.noreply.github.com> Date: Mon, 18 Mar 2024 11:12:39 +0800 Subject: [PATCH 072/204] [Executor] Refine _exec in batch engine (#2345) - Seperate previous_line_results and line_results as input and output for clarity. - Move line_results and aggr_results to the end of the param list and add default value. - Avoid unnecessary log when not in a resume run. # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Min Shi --- .../promptflow/batch/_batch_engine.py | 51 ++++++++++++++++--- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/src/promptflow/promptflow/batch/_batch_engine.py b/src/promptflow/promptflow/batch/_batch_engine.py index b2e9cb86364..50c67b21e9f 100644 --- a/src/promptflow/promptflow/batch/_batch_engine.py +++ b/src/promptflow/promptflow/batch/_batch_engine.py @@ -283,10 +283,17 @@ async def _exec_in_task( # so we pass empty line results list and aggr results and update them in _exec so that when the batch # run is canceled we can get the current completed line results and aggr results. line_results: List[LineResult] = [] - line_results.extend(previous_line_results or []) aggr_result = AggregationResult({}, {}, {}) task = asyncio.create_task( - self._exec(line_results, aggr_result, batch_inputs, run_id, output_dir, raise_on_line_failure) + self._exec( + batch_inputs, + run_id, + output_dir, + raise_on_line_failure, + previous_line_results, + line_results, + aggr_result, + ) ) while not task.done(): # check whether the task is completed or canceled every 1s @@ -301,13 +308,36 @@ async def _exec_in_task( async def _exec( self, - line_results: List[LineResult], - aggr_result: AggregationResult, batch_inputs: List[Dict[str, Any]], run_id: str = None, output_dir: Path = None, raise_on_line_failure: bool = False, + previous_line_results: List[LineResult] = None, + line_results: List[LineResult] = [], + aggr_result: AggregationResult = AggregationResult({}, {}, {}), ) -> BatchResult: + """ + Asynchronously execute batch processing of inputs with potential resumption from previous results, + and aggregate outputs accordingly. Empty list `line_results` and `aggr_result` is passed to ensure + their current state can be retrieved when batch run is canceled. + + :param batch_inputs: A list of dictionaries representing the inputs for all lines of the batch. + :type batch_inputs: List[Mapping[str, Any]] + :param run_id: An optional unique identifier for the run. If not provided, a new UUID will be generated. + :type run_id: Optional[str] + :param output_dir: An optional path to a directory where outputs will be persisted. + :type output_dir: Optional[Path] + :param raise_on_line_failure: A flag indicating whether to raise an exception on individual line failures. + :type raise_on_line_failure: bool + :param previous_line_results: An optional list of previous line results to resume from. + :type previous_line_results: Optional[List[~promptflow.executor._result.LineResult]] + :param line_results: An output parameter to be populated with the results of processing all lines in the batch. + :type line_results: List[~promptflow.executor._result.LineResult] + :param aggr_result: An output parameter to be populated with the aggregated results of all lines in the batch. + :type aggr_result: ~promptflow.executor._result.AggregationResult + :return: A `BatchResult` object containing information about the execution of the batch. + :rtype: ~promptflow.batch._result.BatchResult + """ # ensure executor health before execution await self._executor_proxy.ensure_executor_health() # apply default value in early stage, so we can use it both in line and aggregation nodes execution. @@ -317,9 +347,16 @@ async def _exec( apply_default_value_for_input(self._flow.inputs, each_line_input) for each_line_input in batch_inputs ] - existing_results_line_numbers = set([r.run_info.index for r in line_results]) - bulk_logger.info(f"Skipped the execution of {len(existing_results_line_numbers)} existing results.") - inputs_to_run = [input for input in batch_inputs if input[LINE_NUMBER_KEY] not in existing_results_line_numbers] + # if there are existing results resumed from previous run, we should skip the execution of these lines + if previous_line_results: + line_results.extend(previous_line_results) + existing_results_line_numbers = set([r.run_info.index for r in previous_line_results]) + bulk_logger.info(f"Skipped the execution of {len(existing_results_line_numbers)} existing results.") + inputs_to_run = [ + input for input in batch_inputs if input[LINE_NUMBER_KEY] not in existing_results_line_numbers + ] + else: + inputs_to_run = batch_inputs run_id = run_id or str(uuid.uuid4()) From 413dbc2043fb017f46f1222586c5aab763f68e14 Mon Sep 17 00:00:00 2001 From: Peiwen Gao <111329184+PeiwenGaoMS@users.noreply.github.com> Date: Mon, 18 Mar 2024 14:10:35 +0800 Subject: [PATCH 073/204] [Internal][Executor] Add batch run related apis for executor server (#2122) # Description ## App Launch `uvicorn promptflow.executor._service.app:app --host 0.0.0.0 --port 8000 --reload` ## Currently Ready APIs **batch.py** - /initialize: init the process pool to wait for execution requests - /execution: execute one line in process pool - /aggregation: execute aggregation nodes - /finalize: close the process pool **execution.py** - /execution/flow: for flow test - /execution/node: for single node run **tool.py** - /tool/package_tools: list package tools - /tool/meta: generate tool meta **common.py** - /health: get server status - /version: get executor version and feature list # Main Changes This pull request includes changes to the `promptflow` package, specifically the `multimedia_utils.py`, `_python_executor_proxy.py`, `_line_execution_process_pool.py`, `_process_manager.py`, `_errors.py`, `batch.py`, `app.py`, `batch_request.py`, and `execution_request.py` files. The changes mainly focus on the handling of multimedia data in batch runs and the initialization of batch runs. Handling of multimedia data in batch runs: * [`src/promptflow/promptflow/_utils/multimedia_utils.py`](diffhunk://#diff-46760b7ed265c4b29c9cc4111fb19da9b815717e4d7180f61e0d0da023d2a8f9L7-R16): Added `Union` to the import statement from `typing` and imported `FlowRunInfo` and `RunInfo` from `promptflow.contracts.run_info`. Also added a new function `process_multimedia_in_run_info` to persist multimedia data in run info to file and update the run info with the file path. [[1]](diffhunk://#diff-46760b7ed265c4b29c9cc4111fb19da9b815717e4d7180f61e0d0da023d2a8f9L7-R16) [[2]](diffhunk://#diff-46760b7ed265c4b29c9cc4111fb19da9b815717e4d7180f61e0d0da023d2a8f9R263-R279) * [`src/promptflow/promptflow/executor/_line_execution_process_pool.py`](diffhunk://#diff-c14422c33faa9e44145738152120929455da4e4f05d4fc7b59158423fa609bc1R19): Added `mkdtemp` to the import statement from `tempfile` and imported `ServiceQueueRunStorage` from `promptflow.storage._queue_run_storage`. Also added a new parameter `serialize_multimedia_during_execution` to the `LineExecutionProcessPool` class and updated several methods to handle multimedia data during execution. [[1]](diffhunk://#diff-c14422c33faa9e44145738152120929455da4e4f05d4fc7b59158423fa609bc1R19) [[2]](diffhunk://#diff-c14422c33faa9e44145738152120929455da4e4f05d4fc7b59158423fa609bc1L48-R81) [[3]](diffhunk://#diff-c14422c33faa9e44145738152120929455da4e4f05d4fc7b59158423fa609bc1R103-R109) [[4]](diffhunk://#diff-c14422c33faa9e44145738152120929455da4e4f05d4fc7b59158423fa609bc1R170-R171) [[5]](diffhunk://#diff-c14422c33faa9e44145738152120929455da4e4f05d4fc7b59158423fa609bc1R576-R581) [[6]](diffhunk://#diff-c14422c33faa9e44145738152120929455da4e4f05d4fc7b59158423fa609bc1R649-R650) [[7]](diffhunk://#diff-c14422c33faa9e44145738152120929455da4e4f05d4fc7b59158423fa609bc1L638-R671) [[8]](diffhunk://#diff-c14422c33faa9e44145738152120929455da4e4f05d4fc7b59158423fa609bc1L656-R692) * [`src/promptflow/promptflow/executor/_process_manager.py`](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258R9): Added `Path` to the import statement from `pathlib` and added new parameters `output_dir` and `serialize_multimedia` to the `ProcessManager` class. [[1]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258R9) [[2]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258R68-R69) [[3]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258R80-R81) [[4]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258R209-R210) [[5]](diffhunk://#diff-fb203fa9d75078068758d8934fd7711b63934b15faa6cee7c3c4d16ab3347258R374-R375) Initialization of batch runs: * [`src/promptflow/promptflow/executor/_service/_errors.py`](diffhunk://#diff-f89131a27c96f14dde04bfaa5d055220eb3b966f6dc40312bb09730e3b539f8bR34-R39): Added a new exception `UninitializedError` which is raised when batch coordinator is not initialized. * [`src/promptflow/promptflow/executor/_service/apis/batch.py`](diffhunk://#diff-9bf4b9cd63a7301ac221f4372d8f17bac8f7cfaecb5921e7a6860d6adf4e4f8cR1-R59): Added new API endpoints for initializing, executing, aggregating, and finalizing batch runs. * [`src/promptflow/promptflow/executor/_service/app.py`](diffhunk://#diff-e6bfdc3fdaada257b87c7e783dad24a5757b211b7a9231ac7e26bbe841133289R19): Included the batch router in the FastAPI application. * [`src/promptflow/promptflow/executor/_service/contracts/batch_request.py`](diffhunk://#diff-ddeb4fb0659c7defc52e6c0d3129814f3ff32024ff47be3d0d19b91bb4251a54R1-R36): Added new request models `InitializationRequest`, `LineExecutionRequest`, and `AggregationRequest` for handling batch runs. * [`src/promptflow/promptflow/executor/_service/contracts/execution_request.py`](diffhunk://#diff-dd9d37fb5742cebf79e208aae0a7a2defad253ab4d5020eb2c6f609cdf9a3dffL16): Moved the `run_id` attribute from `BaseExecutionRequest` to `FlowExecutionRequest`. [[1]](diffhunk://#diff-dd9d37fb5742cebf79e208aae0a7a2defad253ab4d5020eb2c6f609cdf9a3dffL16) [[2]](diffhunk://#diff-dd9d37fb5742cebf79e208aae0a7a2defad253ab4d5020eb2c6f609cdf9a3dffR39) Other changes: * `src/promptflow/promptflow/_utils/multimedia_utils.py`, `src/promptflow/promptflow/batch/_python_executor_proxy.py`, `src/promptflow/promptflow/executor/_line_execution_process_pool.py`: Made several changes to function parameters and import statements. [[1]](diffhunk://#diff-46760b7ed265c4b29c9cc4111fb19da9b815717e4d7180f61e0d0da023d2a8f9L156-R158) [[2]](diffhunk://#diff-46760b7ed265c4b29c9cc4111fb19da9b815717e4d7180f61e0d0da023d2a8f9L170-R173) [[3]](diffhunk://#diff-8c42522c7186705de9a6651343af6006be02b7342f72467c2785f23f93ea669eL73-R79) [[4]](diffhunk://#diff-c14422c33faa9e44145738152120929455da4e4f05d4fc7b59158423fa609bc1R576-R581) [[5]](diffhunk://#diff-c14422c33faa9e44145738152120929455da4e4f05d4fc7b59158423fa609bc1R649-R650) [[6]](diffhunk://#diff-c14422c33faa9e44145738152120929455da4e4f05d4fc7b59158423fa609bc1L638-R671) [[7]](diffhunk://#diff-c14422c33faa9e44145738152120929455da4e4f05d4fc7b59158423fa609bc1L656-R692) * [`src/promptflow/promptflow/executor/_service/_errors.py`](diffhunk://#diff-f89131a27c96f14dde04bfaa5d055220eb3b966f6dc40312bb09730e3b539f8bL5-R10): Added a new exception `FlowFilePathInvalid`. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --- .../promptflow/_utils/multimedia_utils.py | 27 ++++- src/promptflow/promptflow/batch/__init__.py | 4 + .../promptflow/batch/_batch_engine.py | 7 ++ .../batch/_executor_proxy_factory.py | 7 +- .../batch/_python_executor_proxy.py | 10 +- .../executor/_line_execution_process_pool.py | 57 +++++++++-- .../promptflow/executor/_process_manager.py | 9 ++ .../promptflow/executor/_service/_errors.py | 10 +- .../executor/_service/apis/batch.py | 60 +++++++++++ .../promptflow/executor/_service/app.py | 2 + .../_service/contracts/batch_request.py | 36 +++++++ .../_service/contracts/execution_request.py | 24 ++++- .../_service/utils/batch_coordinator.py | 92 +++++++++++++++++ .../promptflow/executor/flow_executor.py | 2 + .../promptflow/storage/_queue_run_storage.py | 23 +++++ .../executor/e2etests/test_batch_engine.py | 30 +----- .../executor/e2etests/test_batch_server.py | 99 +++++++++++++++++++ .../tests/executor/e2etests/test_logs.py | 30 +----- .../contracts/test_execution_request.py | 2 +- .../test_line_execution_process_pool.py | 42 ++++---- src/promptflow/tests/executor/utils.py | 28 ++++++ 21 files changed, 496 insertions(+), 105 deletions(-) create mode 100644 src/promptflow/promptflow/executor/_service/apis/batch.py create mode 100644 src/promptflow/promptflow/executor/_service/contracts/batch_request.py create mode 100644 src/promptflow/promptflow/executor/_service/utils/batch_coordinator.py create mode 100644 src/promptflow/tests/executor/e2etests/test_batch_server.py diff --git a/src/promptflow/promptflow/_utils/multimedia_utils.py b/src/promptflow/promptflow/_utils/multimedia_utils.py index f62c54e8741..22c9ee3c793 100644 --- a/src/promptflow/promptflow/_utils/multimedia_utils.py +++ b/src/promptflow/promptflow/_utils/multimedia_utils.py @@ -4,7 +4,7 @@ import uuid from functools import partial from pathlib import Path -from typing import Any, Callable, Dict +from typing import Any, Callable, Dict, Union from urllib.parse import urlparse import requests @@ -12,6 +12,8 @@ from promptflow._utils._errors import InvalidImageInput, LoadMultimediaDataError from promptflow.contracts.flow import FlowInputDefinition from promptflow.contracts.multimedia import Image, PFBytes +from promptflow.contracts.run_info import FlowRunInfo +from promptflow.contracts.run_info import RunInfo as NodeRunInfo from promptflow.contracts.tool import ValueType from promptflow.exceptions import ErrorTarget @@ -153,7 +155,7 @@ def _save_image_to_file( return image_reference -def get_file_reference_encoder(folder_path: Path, relative_path: Path = None, *, use_absolute_path=False) -> Callable: +def get_file_reference_encoder(folder_path: Path, relative_path: Path = None, use_absolute_path=False) -> Callable: def pfbytes_file_reference_encoder(obj): """Dumps PFBytes to a file and returns its reference.""" if obj.source_url: @@ -167,8 +169,8 @@ def pfbytes_file_reference_encoder(obj): return pfbytes_file_reference_encoder -def persist_multimedia_data(value: Any, base_dir: Path, sub_dir: Path = None): - pfbytes_file_reference_encoder = get_file_reference_encoder(base_dir, sub_dir) +def persist_multimedia_data(value: Any, base_dir: Path, sub_dir: Path = None, use_absolute_path=False): + pfbytes_file_reference_encoder = get_file_reference_encoder(base_dir, sub_dir, use_absolute_path=use_absolute_path) serialization_funcs = {Image: partial(Image.serialize, **{"encoder": pfbytes_file_reference_encoder})} return _process_recursively(value, process_funcs=serialization_funcs) @@ -258,3 +260,20 @@ def resolve_image_path(input_dir: Path, image_dict: dict): if resource == "path": image_dict[key] = str(input_dir / image_dict[key]) return image_dict + + +def process_multimedia_in_run_info( + run_info: Union[FlowRunInfo, NodeRunInfo], base_dir: Path, sub_dir: Path = None, use_absolute_path=False +): + """Persist multimedia data in run info to file and update the run info with the file path. + + If sub_dir is not None, the multimedia file path will be sub_dir/file_name, otherwise file_name. + If use_absolute_path is True, the multimedia file path will be absolute path. + """ + if run_info.inputs: + run_info.inputs = persist_multimedia_data(run_info.inputs, base_dir, sub_dir, use_absolute_path) + if run_info.output: + run_info.output = persist_multimedia_data(run_info.output, base_dir, sub_dir, use_absolute_path) + run_info.result = None + if run_info.api_calls: + run_info.api_calls = persist_multimedia_data(run_info.api_calls, base_dir, sub_dir, use_absolute_path) diff --git a/src/promptflow/promptflow/batch/__init__.py b/src/promptflow/promptflow/batch/__init__.py index 745a2d2f381..2472cee396a 100644 --- a/src/promptflow/promptflow/batch/__init__.py +++ b/src/promptflow/promptflow/batch/__init__.py @@ -5,7 +5,9 @@ # flake8: noqa from ._base_executor_proxy import AbstractExecutorProxy, APIBasedExecutorProxy from ._batch_engine import BatchEngine +from ._csharp_base_executor_proxy import CSharpBaseExecutorProxy from ._csharp_executor_proxy import CSharpExecutorProxy +from ._executor_proxy_factory import ExecutorProxyFactory from ._python_executor_proxy import PythonExecutorProxy from ._result import BatchResult @@ -14,6 +16,8 @@ "APIBasedExecutorProxy", "BatchEngine", "CSharpExecutorProxy", + "CSharpBaseExecutorProxy", + "ExecutorProxyFactory", "PythonExecutorProxy", "BatchResult", ] diff --git a/src/promptflow/promptflow/batch/_batch_engine.py b/src/promptflow/promptflow/batch/_batch_engine.py index 50c67b21e9f..bfd0eb6e625 100644 --- a/src/promptflow/promptflow/batch/_batch_engine.py +++ b/src/promptflow/promptflow/batch/_batch_engine.py @@ -100,6 +100,13 @@ def __init__( self._batch_timeout_sec = batch_timeout_sec or get_int_env_var("PF_BATCH_TIMEOUT_SEC") self._line_timeout_sec = line_timeout_sec or get_int_env_var("PF_LINE_TIMEOUT_SEC", LINE_TIMEOUT_SEC) self._worker_count = worker_count or get_int_env_var("PF_WORKER_COUNT") + # update kwargs with worker_count and line_timeout_sec + self._kwargs.update( + { + "worker_count": self._worker_count, + "line_timeout_sec": self._line_timeout_sec, + } + ) # set it to True when the batch run is canceled self._is_canceled = False diff --git a/src/promptflow/promptflow/batch/_executor_proxy_factory.py b/src/promptflow/promptflow/batch/_executor_proxy_factory.py index c62b75d75bf..d581689ffe3 100644 --- a/src/promptflow/promptflow/batch/_executor_proxy_factory.py +++ b/src/promptflow/promptflow/batch/_executor_proxy_factory.py @@ -6,10 +6,9 @@ from promptflow._constants import FlowLanguage from promptflow._utils.async_utils import async_run_allowing_running_loop - -from ._base_executor_proxy import AbstractExecutorProxy -from ._csharp_executor_proxy import CSharpExecutorProxy -from ._python_executor_proxy import PythonExecutorProxy +from promptflow.batch._base_executor_proxy import AbstractExecutorProxy +from promptflow.batch._csharp_executor_proxy import CSharpExecutorProxy +from promptflow.batch._python_executor_proxy import PythonExecutorProxy class ExecutorProxyFactory: diff --git a/src/promptflow/promptflow/batch/_python_executor_proxy.py b/src/promptflow/promptflow/batch/_python_executor_proxy.py index bb4fe033c3e..e0cc8737003 100644 --- a/src/promptflow/promptflow/batch/_python_executor_proxy.py +++ b/src/promptflow/promptflow/batch/_python_executor_proxy.py @@ -94,13 +94,13 @@ async def _exec_batch( bulk_logger.info(f"The timeout for the batch run is {batch_timeout_sec} seconds.") with LineExecutionProcessPool( - self._flow_executor, - len(batch_inputs), - run_id, output_dir, - batch_timeout_sec=batch_timeout_sec, - line_timeout_sec=line_timeout_sec, + self._flow_executor, worker_count=worker_count, + line_timeout_sec=line_timeout_sec, + batch_timeout_sec=batch_timeout_sec, + run_id=run_id, + nlines=len(batch_inputs), ) as pool: line_number = [batch_input["line_number"] for batch_input in batch_inputs] line_results = await pool.run(zip(line_number, batch_inputs)) diff --git a/src/promptflow/promptflow/executor/_line_execution_process_pool.py b/src/promptflow/promptflow/executor/_line_execution_process_pool.py index 87baf5ab85c..2d8922611bf 100644 --- a/src/promptflow/promptflow/executor/_line_execution_process_pool.py +++ b/src/promptflow/promptflow/executor/_line_execution_process_pool.py @@ -16,6 +16,7 @@ from multiprocessing import Manager, Queue from multiprocessing.pool import ThreadPool from pathlib import Path +from tempfile import mkdtemp from typing import Dict, List, Optional, Union import psutil @@ -44,13 +45,25 @@ from promptflow.executor._result import LineResult from promptflow.executor._script_executor import ScriptExecutor from promptflow.executor.flow_executor import DEFAULT_CONCURRENCY_BULK, FlowExecutor -from promptflow.storage._queue_run_storage import QueueRunStorage +from promptflow.storage._queue_run_storage import QueueRunStorage, ServiceQueueRunStorage from promptflow.tracing._operation_context import OperationContext TERMINATE_SIGNAL = "terminate" class LineExecutionProcessPool: + """A process pool for executing lines in batch mode. + + :param output_dir: The output directory for the batch run. + :param flow_executor: The flow executor used to provide flow_create_kwargs to execute the lines. + :param worker_count: The number of worker processes in the pool. + :param line_timeout_sec: The timeout for each line execution in seconds. + :param batch_timeout_sec: The timeout for the entire batch run in seconds. + :param run_id: The run id of the batch run. + :param nlines: The number of lines in the batch run. + :param serialize_multimedia_during_execution: Whether to serialize multimedia data during line execution. + """ + _DEFAULT_WORKER_COUNT = 4 _THREAD_TERMINATED_TIMEOUT = 10 _PROCESS_TERMINATED_TIMEOUT = 60 @@ -58,13 +71,14 @@ class LineExecutionProcessPool: def __init__( self, - flow_executor: FlowExecutor, - nlines: int, - run_id: int, output_dir: Path, - batch_timeout_sec: Optional[int] = None, - line_timeout_sec: Optional[int] = None, + flow_executor: FlowExecutor, worker_count: Optional[int] = None, + line_timeout_sec: Optional[int] = None, + batch_timeout_sec: Optional[int] = None, + run_id: Optional[str] = None, + nlines: Optional[int] = None, + serialize_multimedia_during_execution: bool = False, ): # Determine whether to use fork to create process. multiprocessing_start_method = os.environ.get("PF_BATCH_METHOD", multiprocessing.get_start_method()) @@ -86,6 +100,13 @@ def __init__( self._line_timeout_sec = line_timeout_sec or LINE_TIMEOUT_SEC self._worker_count = self._determine_worker_count(worker_count) + # - If it is False, we will use QueueRunStorage as the storage during execution. + # It will only put the original run info into the output queue to wait for processing. + # - If it is True, we will use ServiceQueueRunStorage as the storage during execution. + # It will persist multimedia data in the run infos and aggregation_inputs to output_dir + # and convert Image object to path dict. + self._serialize_multimedia_during_execution = serialize_multimedia_during_execution + # Initialize the results dictionary that stores line results. self._result_dict: Dict[int, LineResult] = {} @@ -146,6 +167,8 @@ def start(self): "output_queues": self._output_queues, "process_info": process_info, "process_target_func": _process_wrapper, + "output_dir": self._output_dir, + "serialize_multimedia": self._serialize_multimedia_during_execution, } if self._use_fork: # 1. Create input_queue, output_queue, control_signal_queue and _process_info in the main process. @@ -202,6 +225,8 @@ def close(self): # If a thread crashed for some reason, the processes it monitors might not be able to exit because # they do not receive a terminate signal. So we need to terminate these unmonitored processes. self._processes_manager.ensure_all_processes_terminated() + # Clear the result dict. + self._result_dict.clear() async def submit(self, run_id: str, line_number: int, inputs: dict): """Submit a line execution request to the process pool and return the line result.""" @@ -550,6 +575,12 @@ def _process_multimedia(self, result: LineResult) -> LineResult: # Serialize multimedia data in node run infos to string for node_run_info in result.node_run_infos.values(): self._serialize_multimedia(node_run_info) + # Persist multimedia data in the aggregation_inputs of line result to output_dir + # if _serialize_multimedia_during_execution is True. + if self._serialize_multimedia_during_execution: + result.aggregation_inputs = persist_multimedia_data( + result.aggregation_inputs, Path(mkdtemp()), use_absolute_path=True + ) # Persist multimedia data in the outputs of line result to output_dir result.output = persist_multimedia_data(result.output, self._output_dir) return result @@ -617,6 +648,8 @@ def _generate_line_result_for_exception( def _process_wrapper( executor_creation_func, + output_dir: Path, + serialize_multimedia: bool, input_queue: Queue, output_queue: Queue, log_context_initialization_func, @@ -635,9 +668,9 @@ def _process_wrapper( if log_context_initialization_func: with log_context_initialization_func(): - _exec_line_for_queue(executor_creation_func, input_queue, output_queue) + _exec_line_for_queue(executor_creation_func, output_dir, serialize_multimedia, input_queue, output_queue) else: - _exec_line_for_queue(executor_creation_func, input_queue, output_queue) + _exec_line_for_queue(executor_creation_func, output_dir, serialize_multimedia, input_queue, output_queue) def signal_handler(signum, frame): @@ -653,8 +686,12 @@ def signal_handler(signum, frame): sys.exit(1) -def _exec_line_for_queue(executor_creation_func, input_queue: Queue, output_queue: Queue): - run_storage = QueueRunStorage(output_queue) +def _exec_line_for_queue( + executor_creation_func, output_dir: Path, serialize_multimedia: bool, input_queue: Queue, output_queue: Queue +): + run_storage = ( + ServiceQueueRunStorage(output_queue, output_dir) if serialize_multimedia else QueueRunStorage(output_queue) + ) executor: FlowExecutor = executor_creation_func(storage=run_storage) while True: diff --git a/src/promptflow/promptflow/executor/_process_manager.py b/src/promptflow/promptflow/executor/_process_manager.py index acce0f8d864..d9b6b769cef 100644 --- a/src/promptflow/promptflow/executor/_process_manager.py +++ b/src/promptflow/promptflow/executor/_process_manager.py @@ -6,6 +6,7 @@ from enum import Enum from functools import partial from multiprocessing import Process, Queue +from pathlib import Path from typing import Dict, List import psutil @@ -64,6 +65,8 @@ def __init__( output_queues: List[Queue], process_info: dict, process_target_func, + output_dir: Path = None, + serialize_multimedia: bool = False, *args, **kwargs, ) -> None: @@ -74,6 +77,8 @@ def __init__( current_log_context = LogContext.get_current() self._log_context_initialization_func = current_log_context.get_initializer() if current_log_context else None self._current_operation_context = OperationContext.get_instance().get_context_dict() + self._output_dir = output_dir + self._serialize_multimedia = serialize_multimedia def new_process(self, i): """ @@ -201,6 +206,8 @@ def new_process(self, i): target=self._process_target_func, args=( self._executor_creation_func, + self._output_dir, + self._serialize_multimedia, self._input_queues[i], self._output_queues[i], self._log_context_initialization_func, @@ -364,6 +371,8 @@ def new_process(self, i): target=self._process_target_func, args=( self._executor_creation_func, + self._output_dir, + self._serialize_multimedia, self._input_queues[i], self._output_queues[i], self._log_context_initialization_func, diff --git a/src/promptflow/promptflow/executor/_service/_errors.py b/src/promptflow/promptflow/executor/_service/_errors.py index 0703e1a6d1a..38466487b75 100644 --- a/src/promptflow/promptflow/executor/_service/_errors.py +++ b/src/promptflow/promptflow/executor/_service/_errors.py @@ -2,10 +2,12 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -from promptflow.exceptions import ErrorTarget, UserErrorException +from promptflow.exceptions import ErrorTarget, SystemErrorException, UserErrorException class FlowFilePathInvalid(UserErrorException): + """Exception raise when the flow file path is not an absolute path.""" + pass @@ -29,3 +31,9 @@ def __init__(self, run_id): run_id=run_id, target=ErrorTarget.EXECUTOR, ) + + +class UninitializedError(SystemErrorException): + """Exception raised when batch coordinator is not initialize.""" + + pass diff --git a/src/promptflow/promptflow/executor/_service/apis/batch.py b/src/promptflow/promptflow/executor/_service/apis/batch.py new file mode 100644 index 00000000000..a39fa0723b7 --- /dev/null +++ b/src/promptflow/promptflow/executor/_service/apis/batch.py @@ -0,0 +1,60 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + + +from fastapi import APIRouter + +from promptflow._utils.logger_utils import service_logger +from promptflow.executor._service.contracts.batch_request import ( + AggregationRequest, + InitializationRequest, + LineExecutionRequest, +) +from promptflow.executor._service.utils.batch_coordinator import BatchCoordinator +from promptflow.executor._service.utils.service_utils import ( + get_log_context, + set_environment_variables, + update_and_get_operation_context, +) + +router = APIRouter() + + +@router.post("/initialize") +def initialize(request: InitializationRequest): + with get_log_context(request, enable_service_logger=True): + # validate request and get operation context + request.validate_request() + operation_context = update_and_get_operation_context(request.operation_context) + service_logger.info(f"Received batch init request, executor version: {operation_context.get_user_agent()}.") + # resolve environment variables + set_environment_variables(request) + # init batch coordinator to validate flow and create process pool + batch_coordinator = BatchCoordinator( + request.working_dir, + request.flow_file, + request.output_dir, + request.connections, + worker_count=request.worker_count, + line_timeout_sec=request.line_timeout_sec, + ) + batch_coordinator.start() + # return json response + return {"status": "initialized"} + + +@router.post("/execution") +async def execution(request: LineExecutionRequest): + return await BatchCoordinator.get_instance().exec_line(request) + + +@router.post("/aggregation") +def aggregation(request: AggregationRequest): + return BatchCoordinator.get_instance().exec_aggregation(request) + + +@router.post("/finalize") +def finalize(): + BatchCoordinator.get_instance().close() + return {"status": "finalized"} diff --git a/src/promptflow/promptflow/executor/_service/app.py b/src/promptflow/promptflow/executor/_service/app.py index 1ff45e8f514..011266d3e76 100644 --- a/src/promptflow/promptflow/executor/_service/app.py +++ b/src/promptflow/promptflow/executor/_service/app.py @@ -5,6 +5,7 @@ from fastapi import FastAPI from fastapi.responses import JSONResponse +from promptflow.executor._service.apis.batch import router as batch_router from promptflow.executor._service.apis.common import router as common_router from promptflow.executor._service.apis.execution import router as execution_router from promptflow.executor._service.apis.tool import router as tool_router @@ -15,6 +16,7 @@ app.include_router(common_router) app.include_router(execution_router) app.include_router(tool_router) +app.include_router(batch_router) @app.exception_handler(Exception) diff --git a/src/promptflow/promptflow/executor/_service/contracts/batch_request.py b/src/promptflow/promptflow/executor/_service/contracts/batch_request.py new file mode 100644 index 00000000000..602e9eb6e47 --- /dev/null +++ b/src/promptflow/promptflow/executor/_service/contracts/batch_request.py @@ -0,0 +1,36 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +from typing import Any, Mapping, Optional + +from promptflow._constants import LINE_TIMEOUT_SEC +from promptflow.contracts.run_mode import RunMode +from promptflow.executor._service.contracts.base_request import BaseRequest +from promptflow.executor._service.contracts.execution_request import BaseExecutionRequest + + +class InitializationRequest(BaseExecutionRequest): + """Request model for teh batch run initialization.""" + + worker_count: Optional[int] = None + line_timeout_sec: Optional[int] = LINE_TIMEOUT_SEC + + def get_run_mode(self): + return RunMode.Batch + + +class LineExecutionRequest(BaseRequest): + """Request model for line execution in the batch run.""" + + run_id: str + line_number: int + inputs: Mapping[str, Any] + + +class AggregationRequest(BaseRequest): + """Request model for executing aggregation nodes in the batch run.""" + + run_id: str + batch_inputs: Mapping[str, Any] + aggregation_inputs: Mapping[str, Any] diff --git a/src/promptflow/promptflow/executor/_service/contracts/execution_request.py b/src/promptflow/promptflow/executor/_service/contracts/execution_request.py index d7fa6889ca4..fc7f286694a 100644 --- a/src/promptflow/promptflow/executor/_service/contracts/execution_request.py +++ b/src/promptflow/promptflow/executor/_service/contracts/execution_request.py @@ -2,6 +2,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- +import os from pathlib import Path from typing import Any, Mapping, Optional @@ -13,7 +14,6 @@ class BaseExecutionRequest(BaseRequest): """Base request model for execution.""" - run_id: str working_dir: Path flow_file: Path output_dir: Path @@ -25,18 +25,35 @@ def get_run_mode(self): raise NotImplementedError(f"Request type {self.__class__.__name__} is not implemented.") def validate_request(self): - if self.flow_file.is_absolute(): + if not self.working_dir.is_absolute() or self.flow_file.is_absolute(): + raise FlowFilePathInvalid( + message_format=( + "The working directory path ({working_dir}) or flow file path ({flow_file}) is invalid. " + "The working directory should be a absolute path and the flow file path should be " + "relative to the working directory." + ), + working_dir=self.working_dir.as_posix(), + flow_file=self.flow_file.as_posix(), + ) + # Ensure that the flow file path is within the working directory + working_dir = os.path.normpath(self.working_dir) + flow_file = os.path.normpath(self.flow_file) + full_path = os.path.normpath(os.path.join(working_dir, flow_file)) + if not full_path.startswith(working_dir): raise FlowFilePathInvalid( message_format=( - "The flow file path ({flow_file}) is invalid. The path should be relative to the working directory." + "The flow file path ({flow_file}) is invalid. The path should be in the working directory." ), flow_file=self.flow_file.as_posix(), ) + self.working_dir = Path(working_dir) + self.flow_file = Path(flow_file) class FlowExecutionRequest(BaseExecutionRequest): """Request model for flow execution.""" + run_id: str inputs: Optional[Mapping[str, Any]] = None def get_run_mode(self): @@ -46,6 +63,7 @@ def get_run_mode(self): class NodeExecutionRequest(BaseExecutionRequest): """Request model for node execution.""" + run_id: str node_name: str flow_inputs: Mapping[str, Any] = None dependency_nodes_outputs: Mapping[str, Any] = None diff --git a/src/promptflow/promptflow/executor/_service/utils/batch_coordinator.py b/src/promptflow/promptflow/executor/_service/utils/batch_coordinator.py new file mode 100644 index 00000000000..ae8dae78a67 --- /dev/null +++ b/src/promptflow/promptflow/executor/_service/utils/batch_coordinator.py @@ -0,0 +1,92 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +from pathlib import Path +from typing import Any, Mapping, Optional + +from promptflow._constants import OutputsFolderName +from promptflow._utils.multimedia_utils import process_multimedia_in_run_info +from promptflow.executor import FlowExecutor +from promptflow.executor._line_execution_process_pool import LineExecutionProcessPool +from promptflow.executor._service._errors import UninitializedError +from promptflow.executor._service.contracts.batch_request import AggregationRequest, LineExecutionRequest +from promptflow.storage._run_storage import DummyRunStorage + + +class BatchCoordinator: + _instance = None + _init = False + + def __new__(cls, *args, **kwargs): + if cls._instance is None: + cls._instance = super(BatchCoordinator, cls).__new__(cls) + return cls._instance + + def __init__( + self, + working_dir: Path, + flow_file: Path, + output_dir: Path, + connections: Optional[Mapping[str, Any]] = None, + worker_count: Optional[int] = None, + line_timeout_sec: Optional[int] = None, + ): + if self._init: + return + # Init flow executor and validate flow + self._output_dir = output_dir + + # The storage of FlowExecutor will be passed to LineExecutionProcessPool + # and responsible for persisting the run info during line execution. + + # So we pass DummyRunStorage to FlowExecutor because we don't need to + # persist the run infos during execution in server mode. + self._flow_executor = FlowExecutor.create( + flow_file, connections, working_dir, storage=DummyRunStorage(), raise_ex=False + ) + + # Init line execution process pool and set serialize_multimedia_during_execution to True + # to ensure that images are converted to paths during line execution. + self._process_pool = LineExecutionProcessPool( + output_dir, + self._flow_executor, + worker_count=worker_count, + line_timeout_sec=line_timeout_sec, + serialize_multimedia_during_execution=True, + ) + self._init = True + + @classmethod + def get_instance(cls): + if cls._instance is None: + raise UninitializedError( + "Please initialize the executor service with the '/initialize' api before sending execution requests." + ) + return cls._instance + + def start(self): + """Start the process pool.""" + self._process_pool.start() + + async def exec_line(self, request: LineExecutionRequest): + """Execute a line in the process pool.""" + return await self._process_pool.submit(request.run_id, request.line_number, request.inputs) + + def exec_aggregation(self, request: AggregationRequest): + """Execute aggregation nodes for the batch run.""" + with self._flow_executor._run_tracker.node_log_manager: + aggregation_result = self._flow_executor._exec_aggregation( + request.batch_inputs, request.aggregation_inputs, request.run_id + ) + # Serialize the multimedia data of the node run infos under the mode artifacts folder. + for node_run_info in aggregation_result.node_run_infos.values(): + base_dir = self._output_dir / OutputsFolderName.NODE_ARTIFACTS / node_run_info.node + process_multimedia_in_run_info(node_run_info, base_dir) + return aggregation_result + + def close(self): + """Close the process pool.""" + self._process_pool.close() + self._init = False + self._instance = None diff --git a/src/promptflow/promptflow/executor/flow_executor.py b/src/promptflow/promptflow/executor/flow_executor.py index 3fff3992324..1e5b1574bff 100644 --- a/src/promptflow/promptflow/executor/flow_executor.py +++ b/src/promptflow/promptflow/executor/flow_executor.py @@ -598,6 +598,8 @@ def _exec_aggregation( return AggregationResult({}, {}, {}) run_id = run_id or str(uuid.uuid4()) nodes = [copy.deepcopy(node) for node in self._flow.nodes if node.aggregation] + # Load multimedia data from aggregation_inputs + aggregation_inputs = load_multimedia_data_recursively(aggregation_inputs) # Update the inputs of the aggregation nodes with the aggregation inputs. for node in nodes: node.inputs = { diff --git a/src/promptflow/promptflow/storage/_queue_run_storage.py b/src/promptflow/promptflow/storage/_queue_run_storage.py index 7790f371fea..cd4a096f024 100644 --- a/src/promptflow/promptflow/storage/_queue_run_storage.py +++ b/src/promptflow/promptflow/storage/_queue_run_storage.py @@ -3,7 +3,10 @@ # --------------------------------------------------------- from multiprocessing import Queue +from pathlib import Path +from promptflow._constants import OutputsFolderName +from promptflow._utils.multimedia_utils import process_multimedia_in_run_info from promptflow.contracts.run_info import FlowRunInfo from promptflow.contracts.run_info import RunInfo as NodeRunInfo from promptflow.storage import AbstractRunStorage @@ -22,3 +25,23 @@ def persist_node_run(self, run_info: NodeRunInfo): def persist_flow_run(self, run_info: FlowRunInfo): self.queue.put(run_info) + + +class ServiceQueueRunStorage(QueueRunStorage): + """This storage persist multimedia data after run info is put into the output queue.""" + + def __init__(self, queue: Queue, output_dir: Path): + super().__init__(queue) + self._flow_outputs_path = output_dir / OutputsFolderName.FLOW_OUTPUTS + self._flow_artifacts_path = output_dir / OutputsFolderName.FLOW_ARTIFACTS + self._node_artifacts_path = output_dir / OutputsFolderName.NODE_ARTIFACTS + + def persist_node_run(self, run_info: NodeRunInfo): + super().persist_node_run(run_info) + node_folder = self._node_artifacts_path / str(run_info.index) / run_info.node + process_multimedia_in_run_info(run_info, node_folder) + + def persist_flow_run(self, run_info: FlowRunInfo): + super().persist_flow_run(run_info) + flow_folder = self._flow_artifacts_path / str(run_info.index) + process_multimedia_in_run_info(run_info, flow_folder) diff --git a/src/promptflow/tests/executor/e2etests/test_batch_engine.py b/src/promptflow/tests/executor/e2etests/test_batch_engine.py index c73e50e5964..21f6bffa019 100644 --- a/src/promptflow/tests/executor/e2etests/test_batch_engine.py +++ b/src/promptflow/tests/executor/e2etests/test_batch_engine.py @@ -23,13 +23,14 @@ from ..process_utils import MockForkServerProcess, MockSpawnProcess, override_process_class from ..utils import ( MemoryRunStorage, + get_batch_inputs_line, get_flow_expected_metrics, get_flow_expected_status_summary, get_flow_folder, get_flow_inputs_file, - get_flow_sample_inputs, get_yaml_file, load_jsonl, + submit_batch_run, ) SAMPLE_FLOW = "web_classification_no_variants" @@ -90,33 +91,6 @@ def _run_batch_with_start_method(multiprocessing_start_method, flow_folder, inpu assert output["line_number"] == i, f"line_number is not correct in {i}th output {output}" -def submit_batch_run( - flow_folder, - inputs_mapping, - *, - input_dirs={}, - input_file_name="samples.json", - run_id=None, - connections={}, - storage=None, - return_output_dir=False, -): - batch_engine = BatchEngine( - get_yaml_file(flow_folder), get_flow_folder(flow_folder), connections=connections, storage=storage - ) - if not input_dirs and inputs_mapping: - input_dirs = {"data": get_flow_inputs_file(flow_folder, file_name=input_file_name)} - output_dir = Path(mkdtemp()) - if return_output_dir: - return batch_engine.run(input_dirs, inputs_mapping, output_dir, run_id=run_id), output_dir - return batch_engine.run(input_dirs, inputs_mapping, output_dir, run_id=run_id) - - -def get_batch_inputs_line(flow_folder, sample_inputs_file="samples.json"): - inputs = get_flow_sample_inputs(flow_folder, sample_inputs_file=sample_inputs_file) - return len(inputs) - - class MockRun(object): def __init__(self, name: str, output_path: Path): self.name = name diff --git a/src/promptflow/tests/executor/e2etests/test_batch_server.py b/src/promptflow/tests/executor/e2etests/test_batch_server.py new file mode 100644 index 00000000000..b73c65e7560 --- /dev/null +++ b/src/promptflow/tests/executor/e2etests/test_batch_server.py @@ -0,0 +1,99 @@ +from pathlib import Path +from tempfile import mkdtemp +from typing import Any, Mapping, Optional + +import pytest +from fastapi.testclient import TestClient + +from promptflow._constants import FlowLanguage +from promptflow.batch import AbstractExecutorProxy, ExecutorProxyFactory, PythonExecutorProxy +from promptflow.contracts.run_info import Status +from promptflow.executor._result import AggregationResult, LineResult +from promptflow.executor._service.app import app +from promptflow.storage import AbstractRunStorage + +from ..utils import MemoryRunStorage, submit_batch_run + + +@pytest.mark.e2etest +class TestBatchServer: + def test_batch_run_in_server_mode(self): + flow_folder = "print_input_flow" + inputs_mapping = {"text": "${data.text}"} + mem_run_storage = MemoryRunStorage() + # Mock the executor proxy to use the test client + ExecutorProxyFactory.register_executor(FlowLanguage.Python, MockPythonAPIBasedExecutorProxy) + batch_result = submit_batch_run( + flow_folder, inputs_mapping, input_file_name="inputs.jsonl", storage=mem_run_storage + ) + assert batch_result.status == Status.Completed + assert batch_result.total_lines == 10 + assert batch_result.completed_lines == batch_result.total_lines + assert len(mem_run_storage._flow_runs) == 10 + assert len(mem_run_storage._node_runs) == 10 + # Reset the executor proxy to avoid affecting other tests + ExecutorProxyFactory.register_executor(FlowLanguage.Python, PythonExecutorProxy) + + +class MockPythonAPIBasedExecutorProxy(AbstractExecutorProxy): + def __init__(self, *, executor_client: TestClient): + self._executor_client = executor_client + + @classmethod + async def create( + cls, + flow_file: Path, + working_dir: Optional[Path] = None, + *, + connections: Optional[dict] = None, + storage: Optional[AbstractRunStorage] = None, + worker_count: Optional[int] = None, + line_timeout_sec: Optional[int] = None, + **kwargs, + ) -> "MockPythonAPIBasedExecutorProxy": + """Create a new executor""" + executor_client = TestClient(app, raise_server_exceptions=False) + output_dir = Path(mkdtemp()) + log_path = output_dir / "execution.log" + request = { + "working_dir": working_dir.as_posix(), + "flow_file": "flow.dag.yaml", + "connections": connections, + "output_dir": output_dir.as_posix(), + "log_path": log_path.as_posix(), + "worker_count": worker_count, + "line_timeout_sec": line_timeout_sec, + } + request = executor_client.post(url="/initialize", json=request) + executor_proxy = cls(executor_client=executor_client) + return executor_proxy + + async def destroy(self): + """Destroy the executor""" + return self._executor_client.post(url="/finalize") + + async def exec_line_async( + self, + inputs: Mapping[str, Any], + index: Optional[int] = None, + run_id: Optional[str] = None, + ) -> LineResult: + """Execute a line""" + request = {"run_id": run_id, "line_number": index, "inputs": inputs} + line_result = self._executor_client.post(url="/execution", json=request) + return LineResult.deserialize(line_result.json()) + + async def exec_aggregation_async( + self, + batch_inputs: Mapping[str, Any], + aggregation_inputs: Mapping[str, Any], + run_id: Optional[str] = None, + ) -> AggregationResult: + """Execute aggregation nodes""" + request = {"run_id": run_id, "batch_inputs": batch_inputs, "aggregation_inputs": aggregation_inputs} + aggregation_result = self._executor_client.post(url="/aggregation", json=request) + return AggregationResult.deserialize(aggregation_result.json()) + + async def ensure_executor_health(self): + """Ensure the executor service is healthy before execution""" + return self._executor_client.get(url="/health") diff --git a/src/promptflow/tests/executor/e2etests/test_logs.py b/src/promptflow/tests/executor/e2etests/test_logs.py index 4e39001bc6d..dcecec72be9 100644 --- a/src/promptflow/tests/executor/e2etests/test_logs.py +++ b/src/promptflow/tests/executor/e2etests/test_logs.py @@ -13,45 +13,19 @@ from promptflow.executor import FlowExecutor from ..utils import ( + get_batch_inputs_line, get_flow_folder, get_flow_inputs_file, - get_flow_sample_inputs, get_yaml_file, load_content, load_jsonl, + submit_batch_run, ) TEST_LOGS_FLOW = ["print_input_flow"] SAMPLE_FLOW_WITH_TEN_INPUTS = "simple_flow_with_ten_inputs" -def submit_batch_run( - flow_folder, - inputs_mapping, - *, - input_dirs={}, - input_file_name="samples.json", - run_id=None, - connections={}, - storage=None, - return_output_dir=False, -): - batch_engine = BatchEngine( - get_yaml_file(flow_folder), get_flow_folder(flow_folder), connections=connections, storage=storage - ) - if not input_dirs and inputs_mapping: - input_dirs = {"data": get_flow_inputs_file(flow_folder, file_name=input_file_name)} - output_dir = Path(mkdtemp()) - if return_output_dir: - return batch_engine.run(input_dirs, inputs_mapping, output_dir, run_id=run_id), output_dir - return batch_engine.run(input_dirs, inputs_mapping, output_dir, run_id=run_id) - - -def get_batch_inputs_line(flow_folder, sample_inputs_file="samples.json"): - inputs = get_flow_sample_inputs(flow_folder, sample_inputs_file=sample_inputs_file) - return len(inputs) - - @pytest.mark.usefixtures("dev_connections") @pytest.mark.e2etest class TestExecutorLogs: diff --git a/src/promptflow/tests/executor/unittests/executor/_service/contracts/test_execution_request.py b/src/promptflow/tests/executor/unittests/executor/_service/contracts/test_execution_request.py index eafa5e358f0..76096b9ab19 100644 --- a/src/promptflow/tests/executor/unittests/executor/_service/contracts/test_execution_request.py +++ b/src/promptflow/tests/executor/unittests/executor/_service/contracts/test_execution_request.py @@ -31,4 +31,4 @@ def test_get_run_mode(self): def test_validate_request(self): with pytest.raises(FlowFilePathInvalid) as exc_info: BaseExecutionRequest(**MOCK_REQUEST).validate_request() - assert "The path should be relative to the working directory." in exc_info.value.message + assert "the flow file path should be relative to the working directory." in exc_info.value.message diff --git a/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py b/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py index f8b453514bd..59c0caeb692 100644 --- a/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py +++ b/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py @@ -64,10 +64,10 @@ def execute_in_fork_mode_subprocess(dev_connections, flow_folder, has_passed_wor with patch("promptflow.executor._line_execution_process_pool.bulk_logger") as mock_logger: with LineExecutionProcessPool( - executor, - nlines, - run_id, None, + executor, + nlines=nlines, + run_id=run_id, worker_count=pf_worker_count if has_passed_worker_count else None, ) as pool: assert pool._n_process == n_process @@ -107,10 +107,10 @@ def execute_in_spawn_mode_subprocess( mock_process.return_value.memory_info.return_value.rss = 64 * 1024 * 1024 with patch("promptflow.executor._line_execution_process_pool.bulk_logger") as mock_logger: with LineExecutionProcessPool( - executor, - nlines, - run_id, None, + executor, + nlines=nlines, + run_id=run_id, worker_count=pf_worker_count if has_passed_worker_count else None, ) as pool: assert pool._n_process == n_process @@ -141,10 +141,10 @@ def create_line_execution_process_pool(dev_connections): bulk_inputs = get_bulk_inputs() nlines = len(bulk_inputs) line_execution_process_pool = LineExecutionProcessPool( - executor, - nlines, - run_id, None, + executor, + nlines=nlines, + run_id=run_id, line_timeout_sec=1, ) return line_execution_process_pool @@ -203,10 +203,10 @@ async def test_line_execution_process_pool(self, flow_folder, dev_connections): nlines = len(bulk_inputs) run_id = run_id or str(uuid.uuid4()) with LineExecutionProcessPool( - executor, - nlines, - run_id, None, + executor, + nlines=nlines, + run_id=run_id, ) as pool: result_list = await pool.run(zip(range(nlines), bulk_inputs)) assert len(result_list) == nlines @@ -227,10 +227,10 @@ async def test_line_execution_not_completed(self, flow_folder, dev_connections): bulk_inputs = get_bulk_inputs() nlines = len(bulk_inputs) with LineExecutionProcessPool( - executor, - nlines, - run_id, None, + executor, + nlines=nlines, + run_id=run_id, line_timeout_sec=1, ) as pool: result_list = await pool.run(zip(range(nlines), bulk_inputs)) @@ -311,10 +311,10 @@ async def test_process_pool_run_with_exception(self, flow_folder, dev_connection bulk_inputs = get_bulk_inputs() nlines = len(bulk_inputs) with LineExecutionProcessPool( - executor, - nlines, - run_id, None, + executor, + nlines=nlines, + run_id=run_id, ) as pool: with pytest.raises(UserErrorException) as e: await pool.run(zip(range(nlines), bulk_inputs)) @@ -426,10 +426,10 @@ async def test_spawned_fork_process_manager_crashed_in_fork_mode(self, flow_fold run_id = run_id or str(uuid.uuid4()) with pytest.raises(SpawnedForkProcessManagerStartFailure) as e: with LineExecutionProcessPool( - executor, - nlines, - run_id, None, + executor, + nlines=nlines, + run_id=run_id, ) as pool: await pool.run(zip(range(nlines), bulk_inputs)) assert "Failed to start spawned fork process manager" in str(e.value) diff --git a/src/promptflow/tests/executor/utils.py b/src/promptflow/tests/executor/utils.py index 1d471419aa8..99b1ff9fb1d 100644 --- a/src/promptflow/tests/executor/utils.py +++ b/src/promptflow/tests/executor/utils.py @@ -10,6 +10,7 @@ from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter from promptflow._utils.yaml_utils import load_yaml +from promptflow.batch import BatchEngine from promptflow.contracts.flow import Flow from promptflow.contracts.run_info import FlowRunInfo from promptflow.contracts.run_info import RunInfo as NodeRunInfo @@ -136,6 +137,33 @@ def construct_flow_execution_request_json(flow_folder, root=FLOW_ROOT, inputs=No } +def submit_batch_run( + flow_folder, + inputs_mapping, + *, + input_dirs={}, + input_file_name="samples.json", + run_id=None, + connections={}, + storage=None, + return_output_dir=False, +): + batch_engine = BatchEngine( + get_yaml_file(flow_folder), get_flow_folder(flow_folder), connections=connections, storage=storage + ) + if not input_dirs and inputs_mapping: + input_dirs = {"data": get_flow_inputs_file(flow_folder, file_name=input_file_name)} + output_dir = Path(mkdtemp()) + if return_output_dir: + return batch_engine.run(input_dirs, inputs_mapping, output_dir, run_id=run_id), output_dir + return batch_engine.run(input_dirs, inputs_mapping, output_dir, run_id=run_id) + + +def get_batch_inputs_line(flow_folder, sample_inputs_file="samples.json"): + inputs = get_flow_sample_inputs(flow_folder, sample_inputs_file=sample_inputs_file) + return len(inputs) + + class MemoryRunStorage(AbstractRunStorage): def __init__(self): self._node_runs: Dict[str, NodeRunInfo] = {} From feecae1ad890ad0d5679c5b8b74e4a3e493796e7 Mon Sep 17 00:00:00 2001 From: Xingzhi Zhang <37076709+elliotzh@users.noreply.github.com> Date: Mon, 18 Mar 2024 14:29:09 +0800 Subject: [PATCH 074/204] fix: revert BatchEngine.register_executor (#2265) # Description This pull request primarily focuses on enhancing the `BatchEngine` class in the `src/promptflow/promptflow/batch/_batch_engine.py` file. The changes include the addition of a new method, `register_executor`, and the import of new modules and classes. Key changes: * [`src/promptflow/promptflow/batch/_batch_engine.py`](diffhunk://#diff-ecf0905f2116abe08b5cf2931b856bf39aa8b38a30fadd9042538d076dbfde80L11-R11): Imported the `Type` class from the `typing` module to support the new method. * [`src/promptflow/promptflow/batch/_batch_engine.py`](diffhunk://#diff-ecf0905f2116abe08b5cf2931b856bf39aa8b38a30fadd9042538d076dbfde80R36): Imported the `AbstractExecutorProxy` class from the `promptflow.batch` module. * [`src/promptflow/promptflow/batch/_batch_engine.py`](diffhunk://#diff-ecf0905f2116abe08b5cf2931b856bf39aa8b38a30fadd9042538d076dbfde80R56-R68): Added a new class method, `register_executor`, to the `BatchEngine` class. This method allows for the registration of an executor proxy class for a specific programming language and helps maintain compatibility with older versions of the promptflow-runtime. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- src/promptflow/promptflow/batch/_batch_engine.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/promptflow/promptflow/batch/_batch_engine.py b/src/promptflow/promptflow/batch/_batch_engine.py index bfd0eb6e625..db9de4b5f3e 100644 --- a/src/promptflow/promptflow/batch/_batch_engine.py +++ b/src/promptflow/promptflow/batch/_batch_engine.py @@ -8,7 +8,7 @@ from copy import deepcopy from datetime import datetime from pathlib import Path -from typing import Any, Dict, List, Mapping, Optional +from typing import Any, Dict, List, Mapping, Optional, Type from promptflow._constants import LANGUAGE_KEY, LINE_NUMBER_KEY, LINE_TIMEOUT_SEC, OUTPUT_FILE_NAME, FlowLanguage from promptflow._core._errors import ResumeCopyError, UnexpectedError @@ -33,6 +33,7 @@ transpose, ) from promptflow._utils.yaml_utils import load_yaml +from promptflow.batch import AbstractExecutorProxy from promptflow.batch._batch_inputs_processor import BatchInputsProcessor from promptflow.batch._errors import BatchRunTimeoutError from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory @@ -52,6 +53,19 @@ class BatchEngine: """This class is used to execute flows in batch mode""" + @classmethod + def register_executor(cls, language: str, executor_proxy_cls: Type[AbstractExecutorProxy]): + """Register a executor proxy class for a specific program language. + + this function is left to keep the compatibility with the old version promptflow-runtime; it will + redirect the registration to the ExecutorProxyFactory. + """ + # TODO: remove this after we migrate to multi-container + ExecutorProxyFactory.register_executor( + language=language, + executor_proxy_cls=executor_proxy_cls, + ) + def __init__( self, flow_file: Path, From 178a8240204d6824ed00e32b84a44486a218d55d Mon Sep 17 00:00:00 2001 From: Zhengfei Wang <38847871+zhengfeiwang@users.noreply.github.com> Date: Mon, 18 Mar 2024 14:35:18 +0800 Subject: [PATCH 075/204] [internal][tracing] Move tracing to new directory (#2363) # Description This PR moves `promptflow.tracing` to separate src folder `src/promptflow-tracing`, and updates the `setup.py` to install new promptflow package `promptflow-tracing`: # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --- .cspell.json | 3 +- .../workflows/promptflow-tracing-e2e-test.yml | 157 ------- .github/workflows/promptflow-tracing-test.yml | 9 +- .../promptflow-tracing-unit-test.yml | 138 ------ .gitignore | 1 + src/promptflow-tracing/README.md | 2 +- .../promptflow/tracing/__init__.py | 2 + .../promptflow/tracing/_constants.py | 0 .../tracing/_integrations/__init__.py | 0 .../tracing/_integrations/_openai_injector.py | 1 - .../promptflow/tracing/_operation_context.py | 0 .../promptflow/tracing/_start_trace.py | 97 ++++- .../tracing/_thread_local_singleton.py | 0 .../promptflow/tracing/_trace.py | 405 ++++++++++++++++- .../promptflow/tracing/_tracer.py | 2 +- .../promptflow/tracing/_utils.py | 0 .../promptflow/tracing/_version.py | 2 + .../promptflow/tracing/contracts/__init__.py | 0 .../tracing/contracts/generator_proxy.py | 0 .../promptflow/tracing/contracts/trace.py | 0 src/promptflow-tracing/pyproject.toml | 9 +- .../tests}/__init__.py | 0 src/promptflow-tracing/tests/conftest.py | 13 + .../tests}/e2etests/__init__.py | 0 .../tests}/e2etests/simple_functions.py | 13 +- .../tests}/e2etests/test_trace.py | 18 +- .../tests}/unittests/test_generator_proxy.py | 0 .../tests}/unittests/test_openai_injector.py | 0 .../tests/unittests/test_start_trace.py | 50 ++- .../tests}/utils.py | 1 - src/promptflow/promptflow/tracing/__init__.py | 10 - .../promptflow/tracing/_start_trace.py | 99 ----- src/promptflow/promptflow/tracing/_trace.py | 407 ------------------ src/promptflow/promptflow/tracing/_version.py | 5 - src/promptflow/setup.py | 3 +- src/promptflow/tests/tracing_test/.coveragerc | 19 - .../unittests/test_start_trace.py | 57 --- 37 files changed, 578 insertions(+), 945 deletions(-) delete mode 100644 .github/workflows/promptflow-tracing-e2e-test.yml delete mode 100644 .github/workflows/promptflow-tracing-unit-test.yml rename src/{promptflow => promptflow-tracing}/promptflow/tracing/_constants.py (100%) rename src/{promptflow => promptflow-tracing}/promptflow/tracing/_integrations/__init__.py (100%) rename src/{promptflow => promptflow-tracing}/promptflow/tracing/_integrations/_openai_injector.py (99%) rename src/{promptflow => promptflow-tracing}/promptflow/tracing/_operation_context.py (100%) rename src/{promptflow => promptflow-tracing}/promptflow/tracing/_thread_local_singleton.py (100%) rename src/{promptflow => promptflow-tracing}/promptflow/tracing/_tracer.py (100%) rename src/{promptflow => promptflow-tracing}/promptflow/tracing/_utils.py (100%) rename src/{promptflow => promptflow-tracing}/promptflow/tracing/contracts/__init__.py (100%) rename src/{promptflow => promptflow-tracing}/promptflow/tracing/contracts/generator_proxy.py (100%) rename src/{promptflow => promptflow-tracing}/promptflow/tracing/contracts/trace.py (100%) rename src/{promptflow/tests/tracing_test => promptflow-tracing/tests}/__init__.py (100%) create mode 100644 src/promptflow-tracing/tests/conftest.py rename src/{promptflow/tests/tracing_test => promptflow-tracing/tests}/e2etests/__init__.py (100%) rename src/{promptflow/tests/tracing_test => promptflow-tracing/tests}/e2etests/simple_functions.py (82%) rename src/{promptflow/tests/tracing_test => promptflow-tracing/tests}/e2etests/test_trace.py (95%) rename src/{promptflow/tests/tracing_test => promptflow-tracing/tests}/unittests/test_generator_proxy.py (100%) rename src/{promptflow/tests/tracing_test => promptflow-tracing/tests}/unittests/test_openai_injector.py (100%) rename src/{promptflow/tests/tracing_test => promptflow-tracing/tests}/utils.py (99%) delete mode 100644 src/promptflow/promptflow/tracing/__init__.py delete mode 100644 src/promptflow/promptflow/tracing/_start_trace.py delete mode 100644 src/promptflow/promptflow/tracing/_trace.py delete mode 100644 src/promptflow/promptflow/tracing/_version.py delete mode 100644 src/promptflow/tests/tracing_test/.coveragerc delete mode 100644 src/promptflow/tests/tracing_test/unittests/test_start_trace.py diff --git a/.cspell.json b/.cspell.json index 821d7bafd22..ba32e8c9413 100644 --- a/.cspell.json +++ b/.cspell.json @@ -180,7 +180,8 @@ "addrs", "pywin", "STARTF", - "mltable" + "mltable", + "setenv" ], "flagWords": [ "Prompt Flow" diff --git a/.github/workflows/promptflow-tracing-e2e-test.yml b/.github/workflows/promptflow-tracing-e2e-test.yml deleted file mode 100644 index 0f6e365e20f..00000000000 --- a/.github/workflows/promptflow-tracing-e2e-test.yml +++ /dev/null @@ -1,157 +0,0 @@ -name: promptflow-tracing-e2e-test -on: - schedule: - - cron: "40 17 * * *" # Every day starting at 1:40 BJT - pull_request_target: - paths: - - src/promptflow/** - - scripts/building/** - - .github/workflows/promptflow-tracing-e2e-test.yml - workflow_dispatch: -env: - packageSetupType: promptflow_with_extra - testWorkingDirectory: ${{ github.workspace }}/src/promptflow - PYTHONPATH: ${{ github.workspace }}/src/promptflow - IS_IN_CI_PIPELINE: "true" -jobs: - authorize: - environment: - # forked prs from pull_request_target will be run in external environment, domain prs will be run in internal environment - ${{ github.event_name == 'pull_request_target' && - github.event.pull_request.head.repo.full_name != github.repository && - 'external' || 'internal' }} - runs-on: ubuntu-latest - steps: - - run: true - build: - needs: authorize - strategy: - fail-fast: false - runs-on: ubuntu-latest - steps: - - name: checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha || github.ref }} - fetch-depth: 0 - - name: merge main to current branch - uses: "./.github/actions/step_merge_main" - - name: Display and Set Environment Variables - run: | - env | sort >> $GITHUB_OUTPUT - id: display_env - shell: bash -el {0} - - name: Python Setup - ubuntu-latest - Python Version 3.9 - uses: "./.github/actions/step_create_python_environment" - with: - pythonVersion: 3.9 - - name: Build wheel - uses: "./.github/actions/step_sdk_setup" - with: - setupType: promptflow_with_extra - scriptPath: ${{ env.testWorkingDirectory }} - - name: Upload Wheel - if: always() - uses: actions/upload-artifact@v3 - with: - name: wheel - path: | - ${{ github.workspace }}/src/promptflow/dist/*.whl - ${{ github.workspace }}/src/promptflow-tools/dist/*.whl - tracing_tests: - needs: build - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest] - pythonVersion: ['3.8', '3.9', '3.10', '3.11'] - runs-on: ${{ matrix.os }} - steps: - - name: checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha || github.ref }} - fetch-depth: 0 - - name: merge main to current branch - uses: "./.github/actions/step_merge_main" - - name: Display and Set Environment Variables - run: | - env | sort >> $GITHUB_OUTPUT - id: display_env - shell: bash -el {0} - - name: Python Setup - ${{ matrix.os }} - Python Version ${{ matrix.pythonVersion }} - uses: "./.github/actions/step_create_python_environment" - with: - pythonVersion: ${{ matrix.pythonVersion }} - - name: Download Artifacts - uses: actions/download-artifact@v3 - with: - name: wheel - path: artifacts - - name: Install wheel - shell: pwsh - working-directory: artifacts - run: | - Set-PSDebug -Trace 1 - pip install -r ${{ github.workspace }}/src/promptflow/dev_requirements.txt - gci ./promptflow -Recurse | % {if ($_.Name.Contains('.whl')) {python -m pip install "$($_.FullName)"}} - gci ./promptflow-tools -Recurse | % {if ($_.Name.Contains('.whl')) {python -m pip install $_.FullName}} - pip freeze - - name: Azure Login - uses: azure/login@v1 - with: - creds: ${{ secrets.AZURE_CREDENTIALS }} - - name: Generate Configs - uses: "./.github/actions/step_generate_configs" - with: - targetFolder: ${{ env.testWorkingDirectory }} - - name: Get number of CPU cores - uses: SimenB/github-actions-cpu-cores@v1 - id: cpu-cores - - name: run promptflow-tracing test - shell: pwsh - working-directory: ${{ env.testWorkingDirectory }} - run: | - python "../../scripts/building/run_coverage_tests.py" ` - -p promptflow ` - -t ${{ github.workspace }}/src/promptflow/tests/tracing_test/e2etests ` - -l eastus ` - -m "e2etest" ` - -n ${{ steps.cpu-cores.outputs.count }} ` - --coverage-config ${{ github.workspace }}/src/promptflow/tests/tracing_test/.coveragerc ` - -o "${{ env.testWorkingDirectory }}/test-results-tracing.xml" - - name: Upload Test Results - if: always() - uses: actions/upload-artifact@v3 - with: - name: Test Results (Python ${{ matrix.pythonVersion }}) (OS ${{ matrix.os }}) - path: | - ${{ env.testWorkingDirectory }}/*.xml - ${{ env.testWorkingDirectory }}/htmlcov/ - publish-test-results-tracing-test: - name: "Publish Tests Results" - needs: tracing_tests - if: always() - runs-on: ubuntu-latest - permissions: - checks: write - pull-requests: write - contents: read - issues: read - steps: - - name: checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha || github.ref }} - fetch-depth: 0 - - name: merge main to current branch - uses: "./.github/actions/step_merge_main" - - name: Publish Test Results - uses: "./.github/actions/step_publish_test_results" - with: - testActionFileName: promptflow-tracing-e2e-test.yml - testResultTitle: promptflow-tracing e2e test result - osVersion: ubuntu-latest - pythonVersion: 3.9 - coverageThreshold: 40 - context: test/tracing \ No newline at end of file diff --git a/.github/workflows/promptflow-tracing-test.yml b/.github/workflows/promptflow-tracing-test.yml index 59ed48fe01d..ac3bd566740 100644 --- a/.github/workflows/promptflow-tracing-test.yml +++ b/.github/workflows/promptflow-tracing-test.yml @@ -44,16 +44,21 @@ jobs: - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} + - uses: snok/install-poetry@v1 - uses: actions/download-artifact@v4 with: name: promptflow-tracing + path: ${{ env.WORKING_DIRECTORY }} - name: install promptflow-tracing from wheel # wildcard expansion (*) does not work in Windows, so leverage python to find and install - run: python -m pip install $(python -c "import glob; print(glob.glob('promptflow_tracing-*.whl')[0])") - - uses: snok/install-poetry@v1 + run: poetry run pip install $(python -c "import glob; print(glob.glob('promptflow_tracing-*.whl')[0])") + working-directory: ${{ env.WORKING_DIRECTORY }} - name: install test dependency group run: poetry install --only test working-directory: ${{ env.WORKING_DIRECTORY }} + - name: generate end-to-end test config from secret + run: echo '${{ secrets.PF_TRACING_E2E_TEST_CONFIG }}' >> connections.json + working-directory: ${{ env.WORKING_DIRECTORY }} - name: test run: poetry run pytest working-directory: ${{ env.WORKING_DIRECTORY }} diff --git a/.github/workflows/promptflow-tracing-unit-test.yml b/.github/workflows/promptflow-tracing-unit-test.yml deleted file mode 100644 index c31957f8981..00000000000 --- a/.github/workflows/promptflow-tracing-unit-test.yml +++ /dev/null @@ -1,138 +0,0 @@ -name: promptflow-tracing-unit-test - -on: - schedule: - - cron: "40 18 * * *" # Every day starting at 2:40 BJT - - pull_request: - paths: - - src/promptflow/** - - scripts/building/** - - .github/workflows/promptflow-tracing-unit-test.yml - - workflow_dispatch: - - -env: - packageSetupType: promptflow_with_extra - testWorkingDirectory: ${{ github.workspace }}/src/promptflow - PYTHONPATH: ${{ github.workspace }}/src/promptflow - IS_IN_CI_PIPELINE: "true" - - -jobs: - build: - strategy: - fail-fast: false - runs-on: ubuntu-latest - steps: - - name: checkout - uses: actions/checkout@v4 - - name: Display and Set Environment Variables - run: | - env | sort >> $GITHUB_OUTPUT - id: display_env - shell: bash -el {0} - - name: Python Setup - ubuntu-latest - Python Version 3.9 - uses: "./.github/actions/step_create_python_environment" - with: - pythonVersion: 3.9 - - name: Build wheel - uses: "./.github/actions/step_sdk_setup" - with: - setupType: promptflow_with_extra - scriptPath: ${{ env.testWorkingDirectory }} - - name: Upload Wheel - if: always() - uses: actions/upload-artifact@v3 - with: - name: wheel - path: | - ${{ github.workspace }}/src/promptflow/dist/*.whl - ${{ github.workspace }}/src/promptflow-tools/dist/*.whl - - tracing_tests: - needs: build - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest] - pythonVersion: ['3.8', '3.9', '3.10', '3.11'] - runs-on: ${{ matrix.os }} - steps: - - name: checkout - uses: actions/checkout@v4 - - - name: Display and Set Environment Variables - run: | - env | sort >> $GITHUB_OUTPUT - id: display_env - shell: bash -el {0} - - - name: Python Setup - ${{ matrix.os }} - Python Version ${{ matrix.pythonVersion }} - uses: "./.github/actions/step_create_python_environment" - with: - pythonVersion: ${{ matrix.pythonVersion }} - - - name: Download Artifacts - uses: actions/download-artifact@v3 - with: - name: wheel - path: artifacts - - - name: Install wheel - shell: pwsh - working-directory: artifacts - run: | - Set-PSDebug -Trace 1 - pip install -r ${{ github.workspace }}/src/promptflow/dev_requirements.txt - gci ./promptflow -Recurse | % {if ($_.Name.Contains('.whl')) {python -m pip install "$($_.FullName)"}} - gci ./promptflow-tools -Recurse | % {if ($_.Name.Contains('.whl')) {python -m pip install $_.FullName}} - pip freeze - - - name: run promptflow-tracing test - shell: pwsh - working-directory: ${{ env.testWorkingDirectory }} - run: | - python "../../scripts/building/run_coverage_tests.py" ` - -p promptflow ` - -t ${{ github.workspace }}/src/promptflow/tests/tracing_test/unittests ` - -l eastus ` - -m "unittest" ` - --coverage-config ${{ github.workspace }}/src/promptflow/tests/tracing_test/.coveragerc ` - -o "${{ env.testWorkingDirectory }}/test-results-tracing.xml" - - - name: Upload Test Results - if: always() - uses: actions/upload-artifact@v3 - with: - name: Test Results (Python ${{ matrix.pythonVersion }}) (OS ${{ matrix.os }}) - path: | - ${{ env.testWorkingDirectory }}/*.xml - ${{ env.testWorkingDirectory }}/htmlcov/ - - - publish-test-results-tracing-test: - name: "Publish Tests Results" - needs: tracing_tests - if: always() - - runs-on: ubuntu-latest - permissions: - checks: write - pull-requests: write - contents: read - issues: read - - steps: - - name: checkout - uses: actions/checkout@v4 - - name: Publish Test Results - uses: "./.github/actions/step_publish_test_results" - with: - testActionFileName: promptflow-tracing-unit-test.yml - testResultTitle: promptflow-tracing unit test result - osVersion: ubuntu-latest - pythonVersion: 3.9 - coverageThreshold: 40 - context: test/tracing diff --git a/.gitignore b/.gitignore index 30720143403..2ff13572e13 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,7 @@ cov.xml .hypothesis/ .pytest_cache/ cover/ +test-results.xml # Translations *.mo diff --git a/src/promptflow-tracing/README.md b/src/promptflow-tracing/README.md index b903cbf7476..04c7ea3555c 100644 --- a/src/promptflow-tracing/README.md +++ b/src/promptflow-tracing/README.md @@ -4,7 +4,7 @@ Prompt flow tracing. # Release History -## 0.1.0b2 (Upcoming) +## 0.1.0b2 (2024.03.18) - First preview version. diff --git a/src/promptflow-tracing/promptflow/tracing/__init__.py b/src/promptflow-tracing/promptflow/tracing/__init__.py index 290d077cc37..d2cb2ebf088 100644 --- a/src/promptflow-tracing/promptflow/tracing/__init__.py +++ b/src/promptflow-tracing/promptflow/tracing/__init__.py @@ -2,6 +2,8 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore + from ._start_trace import start_trace from ._trace import trace from ._version import __version__ diff --git a/src/promptflow/promptflow/tracing/_constants.py b/src/promptflow-tracing/promptflow/tracing/_constants.py similarity index 100% rename from src/promptflow/promptflow/tracing/_constants.py rename to src/promptflow-tracing/promptflow/tracing/_constants.py diff --git a/src/promptflow/promptflow/tracing/_integrations/__init__.py b/src/promptflow-tracing/promptflow/tracing/_integrations/__init__.py similarity index 100% rename from src/promptflow/promptflow/tracing/_integrations/__init__.py rename to src/promptflow-tracing/promptflow/tracing/_integrations/__init__.py diff --git a/src/promptflow/promptflow/tracing/_integrations/_openai_injector.py b/src/promptflow-tracing/promptflow/tracing/_integrations/_openai_injector.py similarity index 99% rename from src/promptflow/promptflow/tracing/_integrations/_openai_injector.py rename to src/promptflow-tracing/promptflow/tracing/_integrations/_openai_injector.py index c35f53a1843..640d36d2749 100644 --- a/src/promptflow/promptflow/tracing/_integrations/_openai_injector.py +++ b/src/promptflow-tracing/promptflow/tracing/_integrations/_openai_injector.py @@ -16,7 +16,6 @@ from .._trace import _traced_async, _traced_sync from ..contracts.trace import TraceType - USER_AGENT_HEADER = "x-ms-useragent" PROMPTFLOW_HEADER = "ms-azure-ai-promptflow" IS_LEGACY_OPENAI = version("openai").startswith("0.") diff --git a/src/promptflow/promptflow/tracing/_operation_context.py b/src/promptflow-tracing/promptflow/tracing/_operation_context.py similarity index 100% rename from src/promptflow/promptflow/tracing/_operation_context.py rename to src/promptflow-tracing/promptflow/tracing/_operation_context.py diff --git a/src/promptflow-tracing/promptflow/tracing/_start_trace.py b/src/promptflow-tracing/promptflow/tracing/_start_trace.py index 051ea9a2755..7c99687ee7e 100644 --- a/src/promptflow-tracing/promptflow/tracing/_start_trace.py +++ b/src/promptflow-tracing/promptflow/tracing/_start_trace.py @@ -2,7 +2,98 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- +import os +import typing -def start_trace(): - # placeholder - pass +from opentelemetry import trace +from opentelemetry.sdk.resources import Resource +from opentelemetry.sdk.trace import TracerProvider + +from ._constants import ( + PF_TRACING_SKIP_LOCAL_SETUP_ENVIRON, + RESOURCE_ATTRIBUTES_SERVICE_NAME, + ResourceAttributesFieldName, +) +from ._integrations._openai_injector import inject_openai_api + + +def start_trace( + *, + resource_attributes: typing.Optional[dict] = None, + session: typing.Optional[str] = None, + **kwargs, +): + """Start a tracing session. + + Instrument `openai`, and set tracer provider for current tracing session. + + :param resource_attributes: Specify the resource attributes for current tracing session. + :type resource_attributes: typing.Optional[dict] + :param session: Specify the session id for current tracing session. + :type session: typing.Optional[str] + """ + # prepare resource.attributes and set tracer provider + res_attrs = {ResourceAttributesFieldName.SERVICE_NAME: RESOURCE_ATTRIBUTES_SERVICE_NAME} + if session is not None: + res_attrs[ResourceAttributesFieldName.SESSION_ID] = session + if isinstance(resource_attributes, dict): + for attr_key, attr_value in resource_attributes.items(): + res_attrs[attr_key] = attr_value + _set_tracer_provider(res_attrs) + + if _skip_tracing_local_setup(): + return + + if _is_devkit_installed(): + from promptflow._sdk._tracing import start_trace_with_devkit + + start_trace_with_devkit( + session_id=session, + attrs=kwargs.get("attributes", None), + run=kwargs.get("run", None), + ) + + +def setup_exporter_from_environ() -> None: + # openai instrumentation + inject_openai_api() + + if _is_devkit_installed(): + from promptflow._sdk._tracing import setup_exporter_to_pfs + + setup_exporter_to_pfs() + + +def _skip_tracing_local_setup() -> bool: + return str(os.getenv(PF_TRACING_SKIP_LOCAL_SETUP_ENVIRON, "false")).lower() == "true" + + +def _is_tracer_provider_set() -> bool: + return isinstance(trace.get_tracer_provider(), TracerProvider) + + +def _force_set_tracer_provider(tracer_provider: TracerProvider) -> None: + from opentelemetry.trace import _TRACER_PROVIDER_SET_ONCE + + with _TRACER_PROVIDER_SET_ONCE._lock: + _TRACER_PROVIDER_SET_ONCE._done = False + + trace.set_tracer_provider(tracer_provider) + + +def _set_tracer_provider(res_attrs: typing.Dict[str, str]) -> None: + res = Resource(attributes=res_attrs) + tracer_provider = TracerProvider(resource=res) + if _is_tracer_provider_set(): + _force_set_tracer_provider(tracer_provider) + else: + trace.set_tracer_provider(tracer_provider) + + +def _is_devkit_installed() -> bool: + try: + from promptflow._sdk._tracing import setup_exporter_to_pfs, start_trace_with_devkit # noqa: F401 + + return True + except ImportError: + return False diff --git a/src/promptflow/promptflow/tracing/_thread_local_singleton.py b/src/promptflow-tracing/promptflow/tracing/_thread_local_singleton.py similarity index 100% rename from src/promptflow/promptflow/tracing/_thread_local_singleton.py rename to src/promptflow-tracing/promptflow/tracing/_thread_local_singleton.py diff --git a/src/promptflow-tracing/promptflow/tracing/_trace.py b/src/promptflow-tracing/promptflow/tracing/_trace.py index e1a0b9c0a00..5f5b542a43f 100644 --- a/src/promptflow-tracing/promptflow/tracing/_trace.py +++ b/src/promptflow-tracing/promptflow/tracing/_trace.py @@ -2,7 +2,406 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- +import functools +import inspect +import json +import logging +from collections.abc import Iterator +from importlib.metadata import version +from threading import Lock +from typing import Callable, List, Optional -def trace(): - # placeholder - pass +import opentelemetry.trace as otel_trace +from opentelemetry.sdk.trace import ReadableSpan +from opentelemetry.trace import Link +from opentelemetry.trace.span import NonRecordingSpan +from opentelemetry.trace.status import StatusCode + +from ._operation_context import OperationContext +from ._tracer import Tracer, _create_trace_from_function_call, get_node_name_from_context +from ._utils import get_input_names_for_prompt_template, get_prompt_param_name_from_func, serialize +from .contracts.generator_proxy import GeneratorProxy +from .contracts.trace import TraceType + +IS_LEGACY_OPENAI = version("openai").startswith("0.") + +open_telemetry_tracer = otel_trace.get_tracer("promptflow") + + +class TokenCollector: + _lock = Lock() + + def __init__(self): + self._span_id_to_tokens = {} + + def collect_openai_tokens(self, span, output): + span_id = span.get_span_context().span_id + if not inspect.isgenerator(output) and hasattr(output, "usage") and output.usage is not None: + tokens = output.usage.dict() + if tokens: + with self._lock: + self._span_id_to_tokens[span_id] = tokens + + def collect_openai_tokens_for_parent_span(self, span): + tokens = self.try_get_openai_tokens(span.get_span_context().span_id) + if tokens: + if not hasattr(span, "parent") or span.parent is None: + return + parent_span_id = span.parent.span_id + with self._lock: + if parent_span_id in self._span_id_to_tokens: + merged_tokens = { + key: self._span_id_to_tokens[parent_span_id].get(key, 0) + tokens.get(key, 0) + for key in set(self._span_id_to_tokens[parent_span_id]) | set(tokens) + } + self._span_id_to_tokens[parent_span_id] = merged_tokens + else: + self._span_id_to_tokens[parent_span_id] = tokens + + def try_get_openai_tokens(self, span_id): + with self._lock: + return self._span_id_to_tokens.get(span_id, None) + + +token_collector = TokenCollector() + + +def enrich_span_with_context(span): + try: + attrs_from_context = OperationContext.get_instance()._get_otel_attributes() + span.set_attributes(attrs_from_context) + except Exception as e: + logging.warning(f"Failed to enrich span with context: {e}") + + +def enrich_span_with_trace(span, trace): + try: + span.set_attributes( + { + "framework": "promptflow", + "span_type": trace.type.value, + "function": trace.name, + } + ) + node_name = get_node_name_from_context() + if node_name: + span.set_attribute("node_name", node_name) + enrich_span_with_context(span) + except Exception as e: + logging.warning(f"Failed to enrich span with trace: {e}") + + +def enrich_span_with_prompt_info(span, func, kwargs): + try: + # Assume there is only one prompt template parameter in the function, + # we use the first one by default if there are multiple. + prompt_tpl_param_name = get_prompt_param_name_from_func(func) + if prompt_tpl_param_name is not None: + prompt_tpl = kwargs.get(prompt_tpl_param_name) + prompt_vars = { + name: kwargs.get(name) for name in get_input_names_for_prompt_template(prompt_tpl) if name in kwargs + } + prompt_info = {"prompt.template": prompt_tpl, "prompt.variables": serialize_attribute(prompt_vars)} + span.set_attributes(prompt_info) + except Exception as e: + logging.warning(f"Failed to enrich span with prompt info: {e}") + + +def enrich_span_with_input(span, input): + try: + serialized_input = serialize_attribute(input) + span.set_attribute("inputs", serialized_input) + except Exception as e: + logging.warning(f"Failed to enrich span with input: {e}") + + return input + + +def enrich_span_with_trace_type(span, inputs, output, trace_type): + if trace_type == TraceType.LLM: + token_collector.collect_openai_tokens(span, output) + enrich_span_with_llm_model(span, output) + elif trace_type == TraceType.EMBEDDING: + token_collector.collect_openai_tokens(span, output) + enrich_span_with_embedding(span, inputs, output) + enrich_span_with_openai_tokens(span, trace_type) + return enrich_span_with_output(span, output) + + +def traced_generator(generator, original_span: ReadableSpan): + context = original_span.get_span_context() + link = Link(context) + # If start_trace is not called, the name of the original_span will be empty. + with open_telemetry_tracer.start_as_current_span( + f"Iterated({original_span.name})", + links=[link], + ) as span: + span.set_attributes(original_span.attributes) + generator_proxy = GeneratorProxy(generator) + yield from generator_proxy + generator_output = generator_proxy.items + + # Enrich LLM span for openai steaming message + # TODO: Enrich LLM token count for streaming scenario + if original_span.attributes["span_type"] == "LLM" and not IS_LEGACY_OPENAI: + from openai.types.chat.chat_completion_chunk import ChatCompletionChunk + + chunks = [] + role = "assistant" + for item in generator_output: + if not isinstance(item, ChatCompletionChunk): + continue + if item.choices and item.choices[0].delta.content: + chunks.append(item.choices[0].delta.content) + role = item.choices[0].delta.role or role + if chunks: + text = "".join(chunks) + message = {"content": text, "role": role} + span.set_attribute("llm.generated_message", serialize_attribute(message)) + serialized_output = serialize_attribute(generator_output) + span.set_attribute("output", serialized_output) + + +def enrich_span_with_output(span, output): + try: + serialized_output = serialize_attribute(output) + span.set_attribute("output", serialized_output) + # If the output is a generator, while the span is a valid span, we will trace the generator. + if isinstance(output, Iterator) and not isinstance(span, NonRecordingSpan): + output = traced_generator(output, span) + except Exception as e: + logging.warning(f"Failed to enrich span with output: {e}") + + return output + + +def enrich_span_with_openai_tokens(span, trace_type): + try: + tokens = token_collector.try_get_openai_tokens(span.get_span_context().span_id) + if tokens: + span_tokens = {f"__computed__.cumulative_token_count.{k.split('_')[0]}": v for k, v in tokens.items()} + if trace_type in [TraceType.LLM, TraceType.EMBEDDING]: + llm_tokens = {f"llm.usage.{k}": v for k, v in tokens.items()} + span_tokens.update(llm_tokens) + span.set_attributes(span_tokens) + except Exception as e: + logging.warning(f"Failed to enrich span with openai tokens: {e}") + + +def enrich_span_with_embedding(span, inputs, output): + from openai.types.create_embedding_response import CreateEmbeddingResponse + + try: + if isinstance(output, CreateEmbeddingResponse): + span.set_attribute("llm.response.model", output.model) + embeddings = [] + input_list = [emb_input] if _is_single_input(emb_input := inputs["input"]) else emb_input + for emb in output.data: + emb_text = i if isinstance(i := input_list[emb.index], str) else f"<{len(i)} dimensional token>" + embeddings.append( + { + "embedding.vector": f"<{len(emb.embedding)} dimensional vector>", + "embedding.text": emb_text, + } + ) + span.set_attribute("embedding.embeddings", serialize_attribute(embeddings)) + except Exception as e: + logging.warning(f"Failed to enrich span with embedding: {e}") + + +def _is_single_input(embedding_inputs): + # OpenAI Embedding API accepts a single string/tokenized string or a list of string/tokenized string as input. + # For the single string/tokenized string case, we should return true, otherwise return false. + if isinstance(embedding_inputs, str): + # input is a string + return True + elif isinstance(embedding_inputs, list) and all(isinstance(i, int) for i in embedding_inputs): + # input is a token array + return True + return False + + +def enrich_span_with_llm_model(span, output): + try: + if not IS_LEGACY_OPENAI: + from openai.types.chat.chat_completion import ChatCompletion + from openai.types.completion import Completion + + if isinstance(output, (ChatCompletion, Completion)): + span.set_attribute("llm.response.model", output.model) + except Exception as e: + logging.warning(f"Failed to enrich span with llm model: {e}") + + +def serialize_attribute(value): + """Serialize values that can be used as attributes in span.""" + try: + serializable = Tracer.to_serializable(value) + serialized_value = serialize(serializable) + try: + from promptflow._utils.utils import default_json_encoder + + return json.dumps(serialized_value, indent=2, default=default_json_encoder) + except ImportError: + return json.dumps(serialized_value, indent=2) + except Exception as e: + logging.warning(f"Failed to serialize attribute: {e}") + return None + + +def _traced( + func: Callable = None, *, args_to_ignore: Optional[List[str]] = None, trace_type=TraceType.FUNCTION +) -> Callable: + """ + Decorator that adds tracing to a function. + + Args: + func (Callable): The function to be traced. + args_to_ignore (Optional[List[str]], optional): A list of argument names to be ignored in the trace. + Defaults to None. + trace_type (TraceType, optional): The type of the trace. Defaults to TraceType.FUNCTION. + + Returns: + Callable: The traced function. + """ + wrapped_method = _traced_async if inspect.iscoroutinefunction(func) else _traced_sync + return wrapped_method(func, args_to_ignore=args_to_ignore, trace_type=trace_type) + + +def _traced_async( + func: Callable = None, *, args_to_ignore: Optional[List[str]] = None, trace_type=TraceType.FUNCTION +) -> Callable: + """ + Decorator that adds tracing to an asynchronous function. + + Args: + func (Callable): The function to be traced. + args_to_ignore (Optional[List[str]], optional): A list of argument names to be ignored in the trace. + Defaults to None. + trace_type (TraceType, optional): The type of the trace. Defaults to TraceType.FUNCTION. + + Returns: + Callable: The traced function. + """ + + def create_trace(func, args, kwargs): + return _create_trace_from_function_call( + func, args=args, kwargs=kwargs, args_to_ignore=args_to_ignore, trace_type=trace_type + ) + + @functools.wraps(func) + async def wrapped(*args, **kwargs): + trace = create_trace(func, args, kwargs) + # For node span we set the span name to node name, otherwise we use the function name. + span_name = get_node_name_from_context(used_for_span_name=True) or trace.name + with open_telemetry_tracer.start_as_current_span(span_name) as span: + enrich_span_with_trace(span, trace) + enrich_span_with_prompt_info(span, func, kwargs) + + # Should not extract these codes to a separate function here. + # We directly call func instead of calling Tracer.invoke, + # because we want to avoid long stack trace when hitting an exception. + try: + Tracer.push(trace) + enrich_span_with_input(span, trace.inputs) + output = await func(*args, **kwargs) + output = enrich_span_with_trace_type(span, trace.inputs, output, trace_type) + span.set_status(StatusCode.OK) + output = Tracer.pop(output) + except Exception as e: + Tracer.pop(None, e) + raise + token_collector.collect_openai_tokens_for_parent_span(span) + return output + + wrapped.__original_function = func + + return wrapped + + +def _traced_sync(func: Callable = None, *, args_to_ignore=None, trace_type=TraceType.FUNCTION) -> Callable: + """ + Decorator that adds tracing to a synchronous function. + + Args: + func (Callable): The function to be traced. + args_to_ignore (Optional[List[str]], optional): A list of argument names to be ignored in the trace. + Defaults to None. + trace_type (TraceType, optional): The type of the trace. Defaults to TraceType.FUNCTION. + + Returns: + Callable: The traced function. + """ + + def create_trace(func, args, kwargs): + return _create_trace_from_function_call( + func, args=args, kwargs=kwargs, args_to_ignore=args_to_ignore, trace_type=trace_type + ) + + @functools.wraps(func) + def wrapped(*args, **kwargs): + trace = create_trace(func, args, kwargs) + # For node span we set the span name to node name, otherwise we use the function name. + span_name = get_node_name_from_context(used_for_span_name=True) or trace.name + with open_telemetry_tracer.start_as_current_span(span_name) as span: + enrich_span_with_trace(span, trace) + enrich_span_with_prompt_info(span, func, kwargs) + + # Should not extract these codes to a separate function here. + # We directly call func instead of calling Tracer.invoke, + # because we want to avoid long stack trace when hitting an exception. + try: + Tracer.push(trace) + enrich_span_with_input(span, trace.inputs) + output = func(*args, **kwargs) + output = enrich_span_with_trace_type(span, trace.inputs, output, trace_type) + span.set_status(StatusCode.OK) + output = Tracer.pop(output) + except Exception as e: + Tracer.pop(None, e) + raise + token_collector.collect_openai_tokens_for_parent_span(span) + return output + + wrapped.__original_function = func + + return wrapped + + +def trace(func: Callable = None) -> Callable: + """A decorator to add trace to a function. + + When a function is wrapped by this decorator, the function name, + inputs, outputs, start time, end time, and error (if any) will be recorded. + + It can be used for both sync and async functions. + For sync functions, it will return a sync function. + For async functions, it will return an async function. + + :param func: The function to be traced. + :type func: Callable + :return: The wrapped function with trace enabled. + :rtype: Callable + + :Examples: + + Synchronous function usage: + + .. code-block:: python + + @trace + def greetings(user_id): + name = get_name(user_id) + return f"Hello, {name}" + + Asynchronous function usage: + + .. code-block:: python + + @trace + async def greetings_async(user_id): + name = await get_name_async(user_id) + return f"Hello, {name}" + """ + + return _traced(func, trace_type=TraceType.FUNCTION) diff --git a/src/promptflow/promptflow/tracing/_tracer.py b/src/promptflow-tracing/promptflow/tracing/_tracer.py similarity index 100% rename from src/promptflow/promptflow/tracing/_tracer.py rename to src/promptflow-tracing/promptflow/tracing/_tracer.py index 51af3057dca..d252fa090d4 100644 --- a/src/promptflow/promptflow/tracing/_tracer.py +++ b/src/promptflow-tracing/promptflow/tracing/_tracer.py @@ -1,5 +1,5 @@ -import json import inspect +import json import logging import uuid from collections.abc import Iterator diff --git a/src/promptflow/promptflow/tracing/_utils.py b/src/promptflow-tracing/promptflow/tracing/_utils.py similarity index 100% rename from src/promptflow/promptflow/tracing/_utils.py rename to src/promptflow-tracing/promptflow/tracing/_utils.py diff --git a/src/promptflow-tracing/promptflow/tracing/_version.py b/src/promptflow-tracing/promptflow/tracing/_version.py index fa16431e71f..c965b88b2d0 100644 --- a/src/promptflow-tracing/promptflow/tracing/_version.py +++ b/src/promptflow-tracing/promptflow/tracing/_version.py @@ -5,3 +5,5 @@ import importlib.metadata __version__ = importlib.metadata.version("promptflow-tracing") + +VERSION: str = __version__ diff --git a/src/promptflow/promptflow/tracing/contracts/__init__.py b/src/promptflow-tracing/promptflow/tracing/contracts/__init__.py similarity index 100% rename from src/promptflow/promptflow/tracing/contracts/__init__.py rename to src/promptflow-tracing/promptflow/tracing/contracts/__init__.py diff --git a/src/promptflow/promptflow/tracing/contracts/generator_proxy.py b/src/promptflow-tracing/promptflow/tracing/contracts/generator_proxy.py similarity index 100% rename from src/promptflow/promptflow/tracing/contracts/generator_proxy.py rename to src/promptflow-tracing/promptflow/tracing/contracts/generator_proxy.py diff --git a/src/promptflow/promptflow/tracing/contracts/trace.py b/src/promptflow-tracing/promptflow/tracing/contracts/trace.py similarity index 100% rename from src/promptflow/promptflow/tracing/contracts/trace.py rename to src/promptflow-tracing/promptflow/tracing/contracts/trace.py diff --git a/src/promptflow-tracing/pyproject.toml b/src/promptflow-tracing/pyproject.toml index 3c90fb9d279..a5e12259e8a 100644 --- a/src/promptflow-tracing/pyproject.toml +++ b/src/promptflow-tracing/pyproject.toml @@ -36,9 +36,9 @@ packages = [ [tool.poetry.dependencies] python = "<4.0,>=3.8" -openai = "*" -tiktoken = ">=0.4.0" -opentelemetry-sdk = ">=1.22.0,<2.0.0" +openai = "*" # API injector for OpenAI traces +opentelemetry-sdk = ">=1.22.0,<2.0.0" # Open Telemetry dependency +tiktoken = ">=0.4.0" # get OpenAI token count for streaming scenario [tool.poetry.group.dev.dependencies] pre-commit = "*" @@ -46,7 +46,9 @@ import-linter = "*" [tool.poetry.group.test.dependencies] pytest = "*" +pytest-asyncio = "*" pytest-cov = "*" +pytest-mock = "*" pytest-xdist = "*" [tool.importlinter] @@ -66,6 +68,7 @@ build-backend = "poetry.core.masonry.api" [tool.pytest.ini_options] markers = [ "unittest", + "e2etest", ] # junit - analyse and publish test results (https://github.com/EnricoMi/publish-unit-test-result-action) # durations - list the slowest test durations diff --git a/src/promptflow/tests/tracing_test/__init__.py b/src/promptflow-tracing/tests/__init__.py similarity index 100% rename from src/promptflow/tests/tracing_test/__init__.py rename to src/promptflow-tracing/tests/__init__.py diff --git a/src/promptflow-tracing/tests/conftest.py b/src/promptflow-tracing/tests/conftest.py new file mode 100644 index 00000000000..b8b0b130a8f --- /dev/null +++ b/src/promptflow-tracing/tests/conftest.py @@ -0,0 +1,13 @@ +import json +from pathlib import Path + +import pytest + + +@pytest.fixture +def dev_connections() -> dict: + with open( + file=(Path(__file__).parent.parent / "connections.json").resolve().absolute().as_posix(), + mode="r", + ) as f: + return json.load(f) diff --git a/src/promptflow/tests/tracing_test/e2etests/__init__.py b/src/promptflow-tracing/tests/e2etests/__init__.py similarity index 100% rename from src/promptflow/tests/tracing_test/e2etests/__init__.py rename to src/promptflow-tracing/tests/e2etests/__init__.py diff --git a/src/promptflow/tests/tracing_test/e2etests/simple_functions.py b/src/promptflow-tracing/tests/e2etests/simple_functions.py similarity index 82% rename from src/promptflow/tests/tracing_test/e2etests/simple_functions.py rename to src/promptflow-tracing/tests/e2etests/simple_functions.py index 9e0732637ee..e732b5582b2 100644 --- a/src/promptflow/tests/tracing_test/e2etests/simple_functions.py +++ b/src/promptflow-tracing/tests/e2etests/simple_functions.py @@ -4,7 +4,6 @@ from openai import AsyncAzureOpenAI, AzureOpenAI -from promptflow.contracts.types import PromptTemplate from promptflow.tracing import trace @@ -52,21 +51,11 @@ async def dummy_llm_tasks_async(prompt: str, models: list): return [task.result() for task in done] -@trace -def render_prompt_template(prompt: PromptTemplate, **kwargs): - for k, v in kwargs.items(): - prompt = prompt.replace(f"{{{{{k}}}}}", str(v)) - return prompt - - @trace def openai_chat(connection: dict, prompt: str, stream: bool = False): client = AzureOpenAI(**connection) - messages = [ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": prompt} - ] + messages = [{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": prompt}] response = client.chat.completions.create(model="gpt-35-turbo", messages=messages, stream=stream) return response.choices[0].message.content or "" diff --git a/src/promptflow/tests/tracing_test/e2etests/test_trace.py b/src/promptflow-tracing/tests/e2etests/test_trace.py similarity index 95% rename from src/promptflow/tests/tracing_test/e2etests/test_trace.py rename to src/promptflow-tracing/tests/e2etests/test_trace.py index 03fcda4a0c4..337cf2f3102 100644 --- a/src/promptflow/tests/tracing_test/e2etests/test_trace.py +++ b/src/promptflow-tracing/tests/e2etests/test_trace.py @@ -8,14 +8,7 @@ from promptflow.tracing.contracts.trace import TraceType from ..utils import execute_function_in_subprocess, prepare_memory_exporter -from .simple_functions import ( - dummy_llm_tasks_async, - greetings, - openai_chat, - openai_completion, - openai_embedding_async, - render_prompt_template, -) +from .simple_functions import dummy_llm_tasks_async, greetings, openai_chat, openai_completion, openai_embedding_async LLM_FUNCTION_NAMES = [ "openai.resources.chat.completions.Completions.create", @@ -75,15 +68,6 @@ def assert_otel_trace(self, func, inputs, expected_span_length): span_list = exporter.get_finished_spans() self.validate_span_list(span_list, expected_span_length) - @pytest.mark.parametrize( - "func, inputs", - [ - (render_prompt_template, {"prompt": "Hello {{name}}!", "name": "world"}), - ], - ) - def test_otel_trace_with_prompt(self, func, inputs): - execute_function_in_subprocess(self.assert_otel_traces_with_prompt, func, inputs) - def assert_otel_traces_with_prompt(self, func, inputs): memory_exporter = prepare_memory_exporter() diff --git a/src/promptflow/tests/tracing_test/unittests/test_generator_proxy.py b/src/promptflow-tracing/tests/unittests/test_generator_proxy.py similarity index 100% rename from src/promptflow/tests/tracing_test/unittests/test_generator_proxy.py rename to src/promptflow-tracing/tests/unittests/test_generator_proxy.py diff --git a/src/promptflow/tests/tracing_test/unittests/test_openai_injector.py b/src/promptflow-tracing/tests/unittests/test_openai_injector.py similarity index 100% rename from src/promptflow/tests/tracing_test/unittests/test_openai_injector.py rename to src/promptflow-tracing/tests/unittests/test_openai_injector.py diff --git a/src/promptflow-tracing/tests/unittests/test_start_trace.py b/src/promptflow-tracing/tests/unittests/test_start_trace.py index 4a37d4a61ff..4f0292c045f 100644 --- a/src/promptflow-tracing/tests/unittests/test_start_trace.py +++ b/src/promptflow-tracing/tests/unittests/test_start_trace.py @@ -2,18 +2,56 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- +import uuid + import pytest +from opentelemetry import trace +from opentelemetry.sdk.trace import TracerProvider +from pytest_mock import MockerFixture + +import promptflow.tracing._start_trace +from promptflow.tracing import start_trace +from promptflow.tracing._constants import ( + PF_TRACING_SKIP_LOCAL_SETUP_ENVIRON, + RESOURCE_ATTRIBUTES_SERVICE_NAME, + ResourceAttributesFieldName, +) @pytest.mark.unittest class TestStartTrace: - def test_import(self): - from promptflow.tracing import start_trace + def test_tracer_provider_after_start_trace(self) -> None: + start_trace() + tracer_provider = trace.get_tracer_provider() + assert isinstance(tracer_provider, TracerProvider) + attrs = tracer_provider.resource.attributes + assert attrs[ResourceAttributesFieldName.SERVICE_NAME] == RESOURCE_ATTRIBUTES_SERVICE_NAME + assert ResourceAttributesFieldName.SESSION_ID not in attrs - assert callable(start_trace) + def test_tracer_provider_overwritten(self) -> None: + trace.set_tracer_provider(TracerProvider()) + old_tracer_provider = trace.get_tracer_provider() + start_trace() + new_tracer_provider = trace.get_tracer_provider() + assert id(old_tracer_provider) != id(new_tracer_provider) - def test_adhoc_for_coverage(self): - from promptflow.tracing import start_trace, trace + def test_tracer_provider_resource_attributes(self) -> None: + session_id = str(uuid.uuid4()) + res_attrs = {"attr1": "value1", "attr2": "value2"} + start_trace(resource_attributes=res_attrs, session=session_id) + tracer_provider: TracerProvider = trace.get_tracer_provider() + attrs = tracer_provider.resource.attributes + assert attrs[ResourceAttributesFieldName.SESSION_ID] == session_id + assert attrs["attr1"] == "value1" + assert attrs["attr2"] == "value2" + def test_skip_tracing_local_setup(self, monkeypatch: pytest.MonkeyPatch, mocker: MockerFixture) -> None: + spy = mocker.spy(promptflow.tracing._start_trace, "_is_devkit_installed") + # configured environ to skip local setup + with monkeypatch.context() as m: + m.setenv(PF_TRACING_SKIP_LOCAL_SETUP_ENVIRON, "true") + start_trace() + assert spy.call_count == 0 + # no environ, should call local setup once start_trace() - trace() + assert spy.call_count == 1 diff --git a/src/promptflow/tests/tracing_test/utils.py b/src/promptflow-tracing/tests/utils.py similarity index 99% rename from src/promptflow/tests/tracing_test/utils.py rename to src/promptflow-tracing/tests/utils.py index 7654bd1bb67..550d95a088c 100644 --- a/src/promptflow/tests/tracing_test/utils.py +++ b/src/promptflow-tracing/tests/utils.py @@ -1,5 +1,4 @@ import traceback - from multiprocessing import Queue, get_context from opentelemetry.sdk.trace import TracerProvider diff --git a/src/promptflow/promptflow/tracing/__init__.py b/src/promptflow/promptflow/tracing/__init__.py deleted file mode 100644 index f3c7fc9506b..00000000000 --- a/src/promptflow/promptflow/tracing/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -# --------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# --------------------------------------------------------- - -__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore - -from ._start_trace import start_trace -from ._trace import trace - -__all__ = ["start_trace", "trace"] diff --git a/src/promptflow/promptflow/tracing/_start_trace.py b/src/promptflow/promptflow/tracing/_start_trace.py deleted file mode 100644 index 7c99687ee7e..00000000000 --- a/src/promptflow/promptflow/tracing/_start_trace.py +++ /dev/null @@ -1,99 +0,0 @@ -# --------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# --------------------------------------------------------- - -import os -import typing - -from opentelemetry import trace -from opentelemetry.sdk.resources import Resource -from opentelemetry.sdk.trace import TracerProvider - -from ._constants import ( - PF_TRACING_SKIP_LOCAL_SETUP_ENVIRON, - RESOURCE_ATTRIBUTES_SERVICE_NAME, - ResourceAttributesFieldName, -) -from ._integrations._openai_injector import inject_openai_api - - -def start_trace( - *, - resource_attributes: typing.Optional[dict] = None, - session: typing.Optional[str] = None, - **kwargs, -): - """Start a tracing session. - - Instrument `openai`, and set tracer provider for current tracing session. - - :param resource_attributes: Specify the resource attributes for current tracing session. - :type resource_attributes: typing.Optional[dict] - :param session: Specify the session id for current tracing session. - :type session: typing.Optional[str] - """ - # prepare resource.attributes and set tracer provider - res_attrs = {ResourceAttributesFieldName.SERVICE_NAME: RESOURCE_ATTRIBUTES_SERVICE_NAME} - if session is not None: - res_attrs[ResourceAttributesFieldName.SESSION_ID] = session - if isinstance(resource_attributes, dict): - for attr_key, attr_value in resource_attributes.items(): - res_attrs[attr_key] = attr_value - _set_tracer_provider(res_attrs) - - if _skip_tracing_local_setup(): - return - - if _is_devkit_installed(): - from promptflow._sdk._tracing import start_trace_with_devkit - - start_trace_with_devkit( - session_id=session, - attrs=kwargs.get("attributes", None), - run=kwargs.get("run", None), - ) - - -def setup_exporter_from_environ() -> None: - # openai instrumentation - inject_openai_api() - - if _is_devkit_installed(): - from promptflow._sdk._tracing import setup_exporter_to_pfs - - setup_exporter_to_pfs() - - -def _skip_tracing_local_setup() -> bool: - return str(os.getenv(PF_TRACING_SKIP_LOCAL_SETUP_ENVIRON, "false")).lower() == "true" - - -def _is_tracer_provider_set() -> bool: - return isinstance(trace.get_tracer_provider(), TracerProvider) - - -def _force_set_tracer_provider(tracer_provider: TracerProvider) -> None: - from opentelemetry.trace import _TRACER_PROVIDER_SET_ONCE - - with _TRACER_PROVIDER_SET_ONCE._lock: - _TRACER_PROVIDER_SET_ONCE._done = False - - trace.set_tracer_provider(tracer_provider) - - -def _set_tracer_provider(res_attrs: typing.Dict[str, str]) -> None: - res = Resource(attributes=res_attrs) - tracer_provider = TracerProvider(resource=res) - if _is_tracer_provider_set(): - _force_set_tracer_provider(tracer_provider) - else: - trace.set_tracer_provider(tracer_provider) - - -def _is_devkit_installed() -> bool: - try: - from promptflow._sdk._tracing import setup_exporter_to_pfs, start_trace_with_devkit # noqa: F401 - - return True - except ImportError: - return False diff --git a/src/promptflow/promptflow/tracing/_trace.py b/src/promptflow/promptflow/tracing/_trace.py deleted file mode 100644 index 5f5b542a43f..00000000000 --- a/src/promptflow/promptflow/tracing/_trace.py +++ /dev/null @@ -1,407 +0,0 @@ -# --------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# --------------------------------------------------------- - -import functools -import inspect -import json -import logging -from collections.abc import Iterator -from importlib.metadata import version -from threading import Lock -from typing import Callable, List, Optional - -import opentelemetry.trace as otel_trace -from opentelemetry.sdk.trace import ReadableSpan -from opentelemetry.trace import Link -from opentelemetry.trace.span import NonRecordingSpan -from opentelemetry.trace.status import StatusCode - -from ._operation_context import OperationContext -from ._tracer import Tracer, _create_trace_from_function_call, get_node_name_from_context -from ._utils import get_input_names_for_prompt_template, get_prompt_param_name_from_func, serialize -from .contracts.generator_proxy import GeneratorProxy -from .contracts.trace import TraceType - -IS_LEGACY_OPENAI = version("openai").startswith("0.") - -open_telemetry_tracer = otel_trace.get_tracer("promptflow") - - -class TokenCollector: - _lock = Lock() - - def __init__(self): - self._span_id_to_tokens = {} - - def collect_openai_tokens(self, span, output): - span_id = span.get_span_context().span_id - if not inspect.isgenerator(output) and hasattr(output, "usage") and output.usage is not None: - tokens = output.usage.dict() - if tokens: - with self._lock: - self._span_id_to_tokens[span_id] = tokens - - def collect_openai_tokens_for_parent_span(self, span): - tokens = self.try_get_openai_tokens(span.get_span_context().span_id) - if tokens: - if not hasattr(span, "parent") or span.parent is None: - return - parent_span_id = span.parent.span_id - with self._lock: - if parent_span_id in self._span_id_to_tokens: - merged_tokens = { - key: self._span_id_to_tokens[parent_span_id].get(key, 0) + tokens.get(key, 0) - for key in set(self._span_id_to_tokens[parent_span_id]) | set(tokens) - } - self._span_id_to_tokens[parent_span_id] = merged_tokens - else: - self._span_id_to_tokens[parent_span_id] = tokens - - def try_get_openai_tokens(self, span_id): - with self._lock: - return self._span_id_to_tokens.get(span_id, None) - - -token_collector = TokenCollector() - - -def enrich_span_with_context(span): - try: - attrs_from_context = OperationContext.get_instance()._get_otel_attributes() - span.set_attributes(attrs_from_context) - except Exception as e: - logging.warning(f"Failed to enrich span with context: {e}") - - -def enrich_span_with_trace(span, trace): - try: - span.set_attributes( - { - "framework": "promptflow", - "span_type": trace.type.value, - "function": trace.name, - } - ) - node_name = get_node_name_from_context() - if node_name: - span.set_attribute("node_name", node_name) - enrich_span_with_context(span) - except Exception as e: - logging.warning(f"Failed to enrich span with trace: {e}") - - -def enrich_span_with_prompt_info(span, func, kwargs): - try: - # Assume there is only one prompt template parameter in the function, - # we use the first one by default if there are multiple. - prompt_tpl_param_name = get_prompt_param_name_from_func(func) - if prompt_tpl_param_name is not None: - prompt_tpl = kwargs.get(prompt_tpl_param_name) - prompt_vars = { - name: kwargs.get(name) for name in get_input_names_for_prompt_template(prompt_tpl) if name in kwargs - } - prompt_info = {"prompt.template": prompt_tpl, "prompt.variables": serialize_attribute(prompt_vars)} - span.set_attributes(prompt_info) - except Exception as e: - logging.warning(f"Failed to enrich span with prompt info: {e}") - - -def enrich_span_with_input(span, input): - try: - serialized_input = serialize_attribute(input) - span.set_attribute("inputs", serialized_input) - except Exception as e: - logging.warning(f"Failed to enrich span with input: {e}") - - return input - - -def enrich_span_with_trace_type(span, inputs, output, trace_type): - if trace_type == TraceType.LLM: - token_collector.collect_openai_tokens(span, output) - enrich_span_with_llm_model(span, output) - elif trace_type == TraceType.EMBEDDING: - token_collector.collect_openai_tokens(span, output) - enrich_span_with_embedding(span, inputs, output) - enrich_span_with_openai_tokens(span, trace_type) - return enrich_span_with_output(span, output) - - -def traced_generator(generator, original_span: ReadableSpan): - context = original_span.get_span_context() - link = Link(context) - # If start_trace is not called, the name of the original_span will be empty. - with open_telemetry_tracer.start_as_current_span( - f"Iterated({original_span.name})", - links=[link], - ) as span: - span.set_attributes(original_span.attributes) - generator_proxy = GeneratorProxy(generator) - yield from generator_proxy - generator_output = generator_proxy.items - - # Enrich LLM span for openai steaming message - # TODO: Enrich LLM token count for streaming scenario - if original_span.attributes["span_type"] == "LLM" and not IS_LEGACY_OPENAI: - from openai.types.chat.chat_completion_chunk import ChatCompletionChunk - - chunks = [] - role = "assistant" - for item in generator_output: - if not isinstance(item, ChatCompletionChunk): - continue - if item.choices and item.choices[0].delta.content: - chunks.append(item.choices[0].delta.content) - role = item.choices[0].delta.role or role - if chunks: - text = "".join(chunks) - message = {"content": text, "role": role} - span.set_attribute("llm.generated_message", serialize_attribute(message)) - serialized_output = serialize_attribute(generator_output) - span.set_attribute("output", serialized_output) - - -def enrich_span_with_output(span, output): - try: - serialized_output = serialize_attribute(output) - span.set_attribute("output", serialized_output) - # If the output is a generator, while the span is a valid span, we will trace the generator. - if isinstance(output, Iterator) and not isinstance(span, NonRecordingSpan): - output = traced_generator(output, span) - except Exception as e: - logging.warning(f"Failed to enrich span with output: {e}") - - return output - - -def enrich_span_with_openai_tokens(span, trace_type): - try: - tokens = token_collector.try_get_openai_tokens(span.get_span_context().span_id) - if tokens: - span_tokens = {f"__computed__.cumulative_token_count.{k.split('_')[0]}": v for k, v in tokens.items()} - if trace_type in [TraceType.LLM, TraceType.EMBEDDING]: - llm_tokens = {f"llm.usage.{k}": v for k, v in tokens.items()} - span_tokens.update(llm_tokens) - span.set_attributes(span_tokens) - except Exception as e: - logging.warning(f"Failed to enrich span with openai tokens: {e}") - - -def enrich_span_with_embedding(span, inputs, output): - from openai.types.create_embedding_response import CreateEmbeddingResponse - - try: - if isinstance(output, CreateEmbeddingResponse): - span.set_attribute("llm.response.model", output.model) - embeddings = [] - input_list = [emb_input] if _is_single_input(emb_input := inputs["input"]) else emb_input - for emb in output.data: - emb_text = i if isinstance(i := input_list[emb.index], str) else f"<{len(i)} dimensional token>" - embeddings.append( - { - "embedding.vector": f"<{len(emb.embedding)} dimensional vector>", - "embedding.text": emb_text, - } - ) - span.set_attribute("embedding.embeddings", serialize_attribute(embeddings)) - except Exception as e: - logging.warning(f"Failed to enrich span with embedding: {e}") - - -def _is_single_input(embedding_inputs): - # OpenAI Embedding API accepts a single string/tokenized string or a list of string/tokenized string as input. - # For the single string/tokenized string case, we should return true, otherwise return false. - if isinstance(embedding_inputs, str): - # input is a string - return True - elif isinstance(embedding_inputs, list) and all(isinstance(i, int) for i in embedding_inputs): - # input is a token array - return True - return False - - -def enrich_span_with_llm_model(span, output): - try: - if not IS_LEGACY_OPENAI: - from openai.types.chat.chat_completion import ChatCompletion - from openai.types.completion import Completion - - if isinstance(output, (ChatCompletion, Completion)): - span.set_attribute("llm.response.model", output.model) - except Exception as e: - logging.warning(f"Failed to enrich span with llm model: {e}") - - -def serialize_attribute(value): - """Serialize values that can be used as attributes in span.""" - try: - serializable = Tracer.to_serializable(value) - serialized_value = serialize(serializable) - try: - from promptflow._utils.utils import default_json_encoder - - return json.dumps(serialized_value, indent=2, default=default_json_encoder) - except ImportError: - return json.dumps(serialized_value, indent=2) - except Exception as e: - logging.warning(f"Failed to serialize attribute: {e}") - return None - - -def _traced( - func: Callable = None, *, args_to_ignore: Optional[List[str]] = None, trace_type=TraceType.FUNCTION -) -> Callable: - """ - Decorator that adds tracing to a function. - - Args: - func (Callable): The function to be traced. - args_to_ignore (Optional[List[str]], optional): A list of argument names to be ignored in the trace. - Defaults to None. - trace_type (TraceType, optional): The type of the trace. Defaults to TraceType.FUNCTION. - - Returns: - Callable: The traced function. - """ - wrapped_method = _traced_async if inspect.iscoroutinefunction(func) else _traced_sync - return wrapped_method(func, args_to_ignore=args_to_ignore, trace_type=trace_type) - - -def _traced_async( - func: Callable = None, *, args_to_ignore: Optional[List[str]] = None, trace_type=TraceType.FUNCTION -) -> Callable: - """ - Decorator that adds tracing to an asynchronous function. - - Args: - func (Callable): The function to be traced. - args_to_ignore (Optional[List[str]], optional): A list of argument names to be ignored in the trace. - Defaults to None. - trace_type (TraceType, optional): The type of the trace. Defaults to TraceType.FUNCTION. - - Returns: - Callable: The traced function. - """ - - def create_trace(func, args, kwargs): - return _create_trace_from_function_call( - func, args=args, kwargs=kwargs, args_to_ignore=args_to_ignore, trace_type=trace_type - ) - - @functools.wraps(func) - async def wrapped(*args, **kwargs): - trace = create_trace(func, args, kwargs) - # For node span we set the span name to node name, otherwise we use the function name. - span_name = get_node_name_from_context(used_for_span_name=True) or trace.name - with open_telemetry_tracer.start_as_current_span(span_name) as span: - enrich_span_with_trace(span, trace) - enrich_span_with_prompt_info(span, func, kwargs) - - # Should not extract these codes to a separate function here. - # We directly call func instead of calling Tracer.invoke, - # because we want to avoid long stack trace when hitting an exception. - try: - Tracer.push(trace) - enrich_span_with_input(span, trace.inputs) - output = await func(*args, **kwargs) - output = enrich_span_with_trace_type(span, trace.inputs, output, trace_type) - span.set_status(StatusCode.OK) - output = Tracer.pop(output) - except Exception as e: - Tracer.pop(None, e) - raise - token_collector.collect_openai_tokens_for_parent_span(span) - return output - - wrapped.__original_function = func - - return wrapped - - -def _traced_sync(func: Callable = None, *, args_to_ignore=None, trace_type=TraceType.FUNCTION) -> Callable: - """ - Decorator that adds tracing to a synchronous function. - - Args: - func (Callable): The function to be traced. - args_to_ignore (Optional[List[str]], optional): A list of argument names to be ignored in the trace. - Defaults to None. - trace_type (TraceType, optional): The type of the trace. Defaults to TraceType.FUNCTION. - - Returns: - Callable: The traced function. - """ - - def create_trace(func, args, kwargs): - return _create_trace_from_function_call( - func, args=args, kwargs=kwargs, args_to_ignore=args_to_ignore, trace_type=trace_type - ) - - @functools.wraps(func) - def wrapped(*args, **kwargs): - trace = create_trace(func, args, kwargs) - # For node span we set the span name to node name, otherwise we use the function name. - span_name = get_node_name_from_context(used_for_span_name=True) or trace.name - with open_telemetry_tracer.start_as_current_span(span_name) as span: - enrich_span_with_trace(span, trace) - enrich_span_with_prompt_info(span, func, kwargs) - - # Should not extract these codes to a separate function here. - # We directly call func instead of calling Tracer.invoke, - # because we want to avoid long stack trace when hitting an exception. - try: - Tracer.push(trace) - enrich_span_with_input(span, trace.inputs) - output = func(*args, **kwargs) - output = enrich_span_with_trace_type(span, trace.inputs, output, trace_type) - span.set_status(StatusCode.OK) - output = Tracer.pop(output) - except Exception as e: - Tracer.pop(None, e) - raise - token_collector.collect_openai_tokens_for_parent_span(span) - return output - - wrapped.__original_function = func - - return wrapped - - -def trace(func: Callable = None) -> Callable: - """A decorator to add trace to a function. - - When a function is wrapped by this decorator, the function name, - inputs, outputs, start time, end time, and error (if any) will be recorded. - - It can be used for both sync and async functions. - For sync functions, it will return a sync function. - For async functions, it will return an async function. - - :param func: The function to be traced. - :type func: Callable - :return: The wrapped function with trace enabled. - :rtype: Callable - - :Examples: - - Synchronous function usage: - - .. code-block:: python - - @trace - def greetings(user_id): - name = get_name(user_id) - return f"Hello, {name}" - - Asynchronous function usage: - - .. code-block:: python - - @trace - async def greetings_async(user_id): - name = await get_name_async(user_id) - return f"Hello, {name}" - """ - - return _traced(func, trace_type=TraceType.FUNCTION) diff --git a/src/promptflow/promptflow/tracing/_version.py b/src/promptflow/promptflow/tracing/_version.py deleted file mode 100644 index 68ee238ac5d..00000000000 --- a/src/promptflow/promptflow/tracing/_version.py +++ /dev/null @@ -1,5 +0,0 @@ -# --------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# --------------------------------------------------------- - -VERSION = "0.0.1" diff --git a/src/promptflow/setup.py b/src/promptflow/setup.py index 6a71f3c2060..2e303e682e5 100644 --- a/src/promptflow/setup.py +++ b/src/promptflow/setup.py @@ -23,7 +23,6 @@ REQUIRES = [ "psutil", # get process information when bulk run "httpx>=0.25.1", # used to send http requests asynchronously - "openai", # promptflow._core.api_injector "flask>=2.2.3,<4.0.0", # Serving endpoint requirements "sqlalchemy>=1.4.48,<3.0.0", # sqlite requirements # note that pandas 1.5.3 is the only version to test in ci before promptflow 0.1.0b7 is released @@ -40,7 +39,6 @@ # We need to pin the version due to the issue: https://github.com/hwchase17/langchain/issues/5113 "marshmallow>=3.5,<4.0.0", "gitpython>=3.1.24,<4.0.0", # used git info to generate flow id - "tiktoken>=0.4.0", "strictyaml>=1.5.0,<2.0.0", # used to identify exact location of validation error "waitress>=2.1.2,<3.0.0", # used to serve local service "azure-monitor-opentelemetry-exporter>=1.0.0b21,<2.0.0", @@ -53,6 +51,7 @@ "opentelemetry-exporter-otlp-proto-http>=1.22.0,<2.0.0", # trace support "flask-restx>=1.2.0,<2.0.0", # PFS Swagger "flask-cors>=4.0.0,<5.0.0", # handle PFS CORS + "promptflow-tracing", # tracing capabilities ] setup( diff --git a/src/promptflow/tests/tracing_test/.coveragerc b/src/promptflow/tests/tracing_test/.coveragerc deleted file mode 100644 index 2b65a5ad17f..00000000000 --- a/src/promptflow/tests/tracing_test/.coveragerc +++ /dev/null @@ -1,19 +0,0 @@ -[run] -source = - */promptflow/tracing/* -omit = - */promptflow/_cli/* - */promptflow/_core/* - */promptflow/_sdk/* - */promptflow/_telemetry/* - */promptflow/_utils/* - */promptflow/azure/* - */promptflow/batch/* - */promptflow/contracts/* - */promptflow/core/* - */promptflow/entities/* - */promptflow/executor/* - */promptflow/integrations/* - */promptflow/operations/* - */promptflow/storage/* - *__init__.py* diff --git a/src/promptflow/tests/tracing_test/unittests/test_start_trace.py b/src/promptflow/tests/tracing_test/unittests/test_start_trace.py deleted file mode 100644 index 4f0292c045f..00000000000 --- a/src/promptflow/tests/tracing_test/unittests/test_start_trace.py +++ /dev/null @@ -1,57 +0,0 @@ -# --------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# --------------------------------------------------------- - -import uuid - -import pytest -from opentelemetry import trace -from opentelemetry.sdk.trace import TracerProvider -from pytest_mock import MockerFixture - -import promptflow.tracing._start_trace -from promptflow.tracing import start_trace -from promptflow.tracing._constants import ( - PF_TRACING_SKIP_LOCAL_SETUP_ENVIRON, - RESOURCE_ATTRIBUTES_SERVICE_NAME, - ResourceAttributesFieldName, -) - - -@pytest.mark.unittest -class TestStartTrace: - def test_tracer_provider_after_start_trace(self) -> None: - start_trace() - tracer_provider = trace.get_tracer_provider() - assert isinstance(tracer_provider, TracerProvider) - attrs = tracer_provider.resource.attributes - assert attrs[ResourceAttributesFieldName.SERVICE_NAME] == RESOURCE_ATTRIBUTES_SERVICE_NAME - assert ResourceAttributesFieldName.SESSION_ID not in attrs - - def test_tracer_provider_overwritten(self) -> None: - trace.set_tracer_provider(TracerProvider()) - old_tracer_provider = trace.get_tracer_provider() - start_trace() - new_tracer_provider = trace.get_tracer_provider() - assert id(old_tracer_provider) != id(new_tracer_provider) - - def test_tracer_provider_resource_attributes(self) -> None: - session_id = str(uuid.uuid4()) - res_attrs = {"attr1": "value1", "attr2": "value2"} - start_trace(resource_attributes=res_attrs, session=session_id) - tracer_provider: TracerProvider = trace.get_tracer_provider() - attrs = tracer_provider.resource.attributes - assert attrs[ResourceAttributesFieldName.SESSION_ID] == session_id - assert attrs["attr1"] == "value1" - assert attrs["attr2"] == "value2" - - def test_skip_tracing_local_setup(self, monkeypatch: pytest.MonkeyPatch, mocker: MockerFixture) -> None: - spy = mocker.spy(promptflow.tracing._start_trace, "_is_devkit_installed") - # configured environ to skip local setup - with monkeypatch.context() as m: - m.setenv(PF_TRACING_SKIP_LOCAL_SETUP_ENVIRON, "true") - start_trace() - assert spy.call_count == 0 - # no environ, should call local setup once - start_trace() - assert spy.call_count == 1 From e2f2f58a10f050458ecce5074458b5b0df1f03cc Mon Sep 17 00:00:00 2001 From: Zhengfei Wang <38847871+zhengfeiwang@users.noreply.github.com> Date: Mon, 18 Mar 2024 17:07:17 +0800 Subject: [PATCH 076/204] [internal][tracing] Not enable trace for `flow test --node` scenario (#2384) # Description We have not determined the behavior for `flow test --node`, so not enable trace in this case. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --- .../_sdk/_submitter/test_submitter.py | 3 +- .../tests/sdk_cli_test/e2etests/test_trace.py | 38 ++++++++++++++++++ .../node_recordings/node_cache.shelve.bak | 2 + .../node_recordings/node_cache.shelve.dat | Bin 385699 -> 392056 bytes .../node_recordings/node_cache.shelve.dir | 2 + 5 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 src/promptflow/tests/sdk_cli_test/e2etests/test_trace.py diff --git a/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py b/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py index a32855bee0a..9b772f4a4aa 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py +++ b/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py @@ -262,7 +262,8 @@ def init( or {}, ) - if Configuration(overrides=self._client._config).is_internal_features_enabled(): + # do not enable trace when test single node, as we have not determined this behavior + if target_node is None and Configuration(overrides=self._client._config).is_internal_features_enabled(): logger.debug("Starting trace for flow test...") start_trace(session=session) diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_trace.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_trace.py new file mode 100644 index 00000000000..1d94b5b6225 --- /dev/null +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_trace.py @@ -0,0 +1,38 @@ +from pathlib import Path +from unittest.mock import patch + +import pytest +from mock import mock + +from promptflow._sdk._pf_client import PFClient + +TEST_ROOT = Path(__file__).parent.parent.parent +FLOWS_DIR = (TEST_ROOT / "test_configs/flows").resolve().absolute().as_posix() + + +@pytest.mark.usefixtures("use_secrets_config_file", "recording_injection", "setup_local_connection") +@pytest.mark.e2etest +@pytest.mark.sdk_test +class TestTraceWithDevKit: + def test_flow_test_trace_enabled(self, pf: PFClient) -> None: + import promptflow.tracing._start_trace + + with mock.patch("promptflow._sdk._configuration.Configuration.is_internal_features_enabled") as mock_func: + mock_func.return_value = True + with patch.object(promptflow.tracing._start_trace, "start_trace") as mock_start_trace: + inputs = {"url": "https://www.youtube.com/watch?v=o5ZQyXaAv1g", "answer": "Channel", "evidence": "Url"} + pf.test(flow=Path(f"{FLOWS_DIR}/web_classification").absolute(), inputs=inputs) + assert mock_start_trace.call_count == 1 + + def test_flow_test_single_node_trace_not_enabled(self, pf: PFClient) -> None: + import promptflow.tracing._start_trace + + with mock.patch("promptflow._sdk._configuration.Configuration.is_internal_features_enabled") as mock_func: + mock_func.return_value = True + with patch.object(promptflow.tracing._start_trace, "start_trace") as mock_start_trace: + pf.test( + flow=Path(f"{FLOWS_DIR}/web_classification").absolute(), + inputs={"fetch_url": "https://www.youtube.com/watch?v=o5ZQyXaAv1g"}, + node="fetch_text_content_from_url", + ) + assert mock_start_trace.call_count == 0 diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak index 41e1daada98..30aad55b14b 100644 --- a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak +++ b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak @@ -70,3 +70,5 @@ 'f982607f0b16462076e95b085628f125a9ce13fd', (358400, 4018) '7f6b2e7803bfbecbf55a8d5eba3cd51fd9d3c672', (362496, 11456) 'e9aa82ac7a0a8b507f6882b04757cd67ff7130b4', (374272, 11427) +'c373d6c5f4798042dc85d13fb6bd8fae74a128fc', (386048, 1923) +'d5233d057cbc48471693b779d752dc01c0dca2ad', (388096, 3960) diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dat b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dat index 9dfe47f9d4dee16d2a8fd1e853fd3609d37e81f0..52bb75e96555bd5881b239e37f1c726428eed25b 100644 GIT binary patch delta 476 zcmZ2{RQ$&`@rD-07N!>F7M3lniyv)2u!Yruaq>>^sH9a6%xi7h7&TJ{7RD&d)SkUQWHy3Q>J)bc>8_2RvYVl zBk>;If};G~f|B@>{Or`c;wj!sdU#6mOA>S70=r8y>}scEIP_1^$Vkpen*O(qbrQE) z26IMuMrejcM%46K?W}1)Pw2A%J&`+|rGhnLdt?VIKO>7QCj-M|K{?gUTVl6xfShPM zd2Sl}be}`4Hq&JqS$U>UpTgQYeO)7K49KHpB^8!wjui&Rl_hDxCgl-{>Bjz&i+4p3E^ZePXBM}kK$LOp82hwf3|KqfSw`o=S1@v1VCS0Mq}!<}DRQcwyEvdV(g JDH#f-dH{@bu6h6f delta 19 bcmezIO?>fD@rD-07N!>F7M3lniyr|1TBrzJ diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir index 41e1daada98..30aad55b14b 100644 --- a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir +++ b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dir @@ -70,3 +70,5 @@ 'f982607f0b16462076e95b085628f125a9ce13fd', (358400, 4018) '7f6b2e7803bfbecbf55a8d5eba3cd51fd9d3c672', (362496, 11456) 'e9aa82ac7a0a8b507f6882b04757cd67ff7130b4', (374272, 11427) +'c373d6c5f4798042dc85d13fb6bd8fae74a128fc', (386048, 1923) +'d5233d057cbc48471693b779d752dc01c0dca2ad', (388096, 3960) From 696f54a34e3e5f16070b56c5163aaf127c6ac3b2 Mon Sep 17 00:00:00 2001 From: zhen Date: Mon, 18 Mar 2024 18:34:26 +0800 Subject: [PATCH 077/204] [Tool] fix dynamic list failed when load script (#2176) # Description Fix portal cannot find script tool with dynamic list inputs, set script_path:function_name to tool meta ![image](https://github.com/microsoft/promptflow/assets/17938940/84806547-34ec-4981-9fe0-96ffe8fa75d9) Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .../promptflow/_utils/tool_utils.py | 23 +++++++--- .../e2etests/test_script_tool_generator.py | 43 ++++++++++--------- .../unittests/_utils/test_tool_utils.py | 16 ++++--- 3 files changed, 51 insertions(+), 31 deletions(-) diff --git a/src/promptflow/promptflow/_utils/tool_utils.py b/src/promptflow/promptflow/_utils/tool_utils.py index 64467277db6..9e02e5cabdc 100644 --- a/src/promptflow/promptflow/_utils/tool_utils.py +++ b/src/promptflow/promptflow/_utils/tool_utils.py @@ -8,12 +8,14 @@ import re from dataclasses import asdict, fields, is_dataclass from enum import Enum, EnumMeta +from pathlib import Path from typing import Any, Callable, Dict, List, Union, get_args, get_origin from jinja2 import Environment, meta from promptflow._constants import PF_MAIN_MODULE_NAME from promptflow._core._errors import DuplicateToolMappingError +from promptflow._utils.context_utils import _change_working_dir from promptflow._utils.utils import is_json_serializable from promptflow.exceptions import ErrorTarget, UserErrorException @@ -279,8 +281,8 @@ def validate_dynamic_list_func_response_type(response: Any, f: str): def validate_tool_func_result(func_call_scenario: str, result): if func_call_scenario not in list(ToolFuncCallScenario): raise RetrieveToolFuncResultValidationError( - f"Invalid tool func call scenario: {func_call_scenario}. " - f"Available scenarios are {list(ToolFuncCallScenario)}" + f"Invalid tool func call scenario: {func_call_scenario}. " + f"Available scenarios are {list(ToolFuncCallScenario)}" ) if func_call_scenario == ToolFuncCallScenario.REVERSE_GENERATED_BY: if not isinstance(result, Dict): @@ -322,11 +324,20 @@ def append_workspace_triple_to_func_input_params( def load_function_from_function_path(func_path: str): """Load a function from a function path. - The function path should be in the format of "module_name.function_name". + If function is in an installed package, the function path should be in the format of "module_name.function_name". + If function is in a script, the function path should be in the format of "function_path:function_name". """ try: - module_name, func_name = func_path.rsplit(".", 1) - module = importlib.import_module(module_name) + if ":" in func_path: + script_path, func_name = func_path.rsplit(":", 1) + script_name = Path(script_path).stem + with _change_working_dir(Path(script_path).parent): + spec = importlib.util.spec_from_file_location(script_name, script_path) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + else: + module_name, func_name = func_path.rsplit(".", 1) + module = importlib.import_module(module_name) f = getattr(module, func_name) if callable(f): return f @@ -437,7 +448,7 @@ def _get_function_path(function): elif isinstance(function, Callable): func = function if function.__module__ == PF_MAIN_MODULE_NAME: - func_path = function.__name__ + func_path = f"{inspect.getfile(function)}:{function.__name__}" else: func_path = f"{function.__module__}.{function.__name__}" else: diff --git a/src/promptflow/tests/executor/e2etests/test_script_tool_generator.py b/src/promptflow/tests/executor/e2etests/test_script_tool_generator.py index 1c02e7acd92..c104211ed4a 100644 --- a/src/promptflow/tests/executor/e2etests/test_script_tool_generator.py +++ b/src/promptflow/tests/executor/e2etests/test_script_tool_generator.py @@ -12,8 +12,8 @@ @pytest.mark.e2etest class TestScriptToolGenerator: def test_generate_script_tool_meta_with_dynamic_list(self): - tool_path = (TOOL_ROOT / "tool_with_dynamic_list_input.py").as_posix() - tool_meta = generate_tool_meta_dict_by_file(tool_path, "python") + tool_path = TOOL_ROOT / "tool_with_dynamic_list_input.py" + tool_meta = generate_tool_meta_dict_by_file(tool_path.as_posix(), "python") expect_tool_meta = { "name": "tool_with_dynamic_list_input", "type": "python", @@ -24,7 +24,7 @@ def test_generate_script_tool_meta_with_dynamic_list(self): "is_multi_select": True, "allow_manual_entry": True, "dynamic_list": { - "func_path": "my_list_func", + "func_path": f"{tool_path.absolute()}:my_list_func", "func_kwargs": [ { "name": "prefix", @@ -40,7 +40,7 @@ def test_generate_script_tool_meta_with_dynamic_list(self): "endpoint_name": { "type": ["string"], "dynamic_list": { - "func_path": "list_endpoint_names", + "func_path": f"{tool_path.absolute()}:list_endpoint_names", "func_kwargs": [ { "name": "prefix", @@ -54,7 +54,7 @@ def test_generate_script_tool_meta_with_dynamic_list(self): }, }, "description": "This is my tool with dynamic list input", - "source": tool_path, + "source": tool_path.as_posix(), "function": "my_tool", } assert expect_tool_meta == tool_meta @@ -77,8 +77,8 @@ def test_generate_script_tool_meta_with_enabled_by_value(self): assert expect_tool_meta == tool_meta def test_generate_script_tool_meta_with_generated_by(self): - tool_path = (TOOL_ROOT / "tool_with_generated_by_input.py").as_posix() - tool_meta = generate_tool_meta_dict_by_file(tool_path, "python") + tool_path = TOOL_ROOT / "tool_with_generated_by_input.py" + tool_meta = generate_tool_meta_dict_by_file((tool_path).as_posix(), "python") expect_tool_meta = { "name": "tool_with_generated_by_input", "type": "python", @@ -86,7 +86,7 @@ def test_generate_script_tool_meta_with_generated_by(self): "index_json": { "type": ["string"], "generated_by": { - "func_path": "generate_index_json", + "func_path": f"{tool_path.absolute()}:generate_index_json", "func_kwargs": [ { "name": "index_type", @@ -144,20 +144,20 @@ def test_generate_script_tool_meta_with_generated_by(self): "optional": True, }, ], - "reverse_func_path": "reverse_generate_index_json", + "reverse_func_path": f"{tool_path.absolute()}:reverse_generate_index_json", }, }, "queries": {"type": ["string"]}, "top_k": {"type": ["int"]}, "index_type": { - "dynamic_list": {"func_path": "list_index_types"}, + "dynamic_list": {"func_path": f"{tool_path.absolute()}:list_index_types"}, "type": ["string"], "input_type": "uionly_hidden", }, "index": { "enabled_by": "index_type", "enabled_by_value": ["Workspace MLIndex"], - "dynamic_list": {"func_path": "list_indexes"}, + "dynamic_list": {"func_path": f"{tool_path.absolute()}:list_indexes"}, "type": ["string"], "input_type": "uionly_hidden", }, @@ -176,28 +176,28 @@ def test_generate_script_tool_meta_with_generated_by(self): "content_field": { "enabled_by": "index_type", "enabled_by_value": ["Azure Cognitive Search"], - "dynamic_list": {"func_path": "list_fields"}, + "dynamic_list": {"func_path": f"{tool_path.absolute()}:list_fields"}, "type": ["string"], "input_type": "uionly_hidden", }, "embedding_field": { "enabled_by": "index_type", "enabled_by_value": ["Azure Cognitive Search"], - "dynamic_list": {"func_path": "list_fields"}, + "dynamic_list": {"func_path": f"{tool_path.absolute()}:list_fields"}, "type": ["string"], "input_type": "uionly_hidden", }, "metadata_field": { "enabled_by": "index_type", "enabled_by_value": ["Azure Cognitive Search"], - "dynamic_list": {"func_path": "list_fields"}, + "dynamic_list": {"func_path": f"{tool_path.absolute()}:list_fields"}, "type": ["string"], "input_type": "uionly_hidden", }, "semantic_configuration": { "enabled_by": "index_type", "enabled_by_value": ["Azure Cognitive Search"], - "dynamic_list": {"func_path": "list_semantic_configuration"}, + "dynamic_list": {"func_path": f"{tool_path.absolute()}:list_semantic_configuration"}, "type": ["string"], "input_type": "uionly_hidden", }, @@ -211,7 +211,7 @@ def test_generate_script_tool_meta_with_generated_by(self): "enabled_by": "index_type", "enabled_by_value": ["Azure Cognitive Search"], "dynamic_list": { - "func_path": "list_embedding_deployment", + "func_path": f"{tool_path.absolute()}:list_embedding_deployment", "func_kwargs": [ { "name": "embedding_connection", @@ -226,7 +226,7 @@ def test_generate_script_tool_meta_with_generated_by(self): }, }, "description": "This is a tool with generated by input", - "source": tool_path, + "source": tool_path.as_posix(), "function": "my_tool", } assert expect_tool_meta == tool_meta @@ -245,12 +245,15 @@ def test_generate_script_tool_meta_with_invalid_enabled_by(self): assert 'Cannot find the input "invalid_input" for the enabled_by of student_id.' in ex.value.message def test_generate_script_tool_meta_with_invalid_dynamic_list(self): - tool_path = (TOOL_ROOT / "tool_with_invalid_dynamic_list.py").as_posix() + tool_path = TOOL_ROOT / "tool_with_invalid_dynamic_list.py" with pytest.raises(UserErrorException) as ex: - generate_tool_meta_dict_by_file(tool_path, "python") + generate_tool_meta_dict_by_file(tool_path.as_posix(), "python") assert "Cannot find invalid_tool_input in tool inputs." in ex.value.message assert "Missing required input(s) of dynamic_list function: ['prefix']" in ex.value.message - assert "Cannot find invalid_func_input in the inputs of dynamic_list func my_list_func" in ex.value.message + assert ( + f"Cannot find invalid_func_input in the inputs of dynamic_list func {tool_path.absolute()}:my_list_func" + in ex.value.message + ) def test_generate_script_tool_meta_with_invalid_schema(self): tool_path = (TOOL_ROOT / "tool_with_invalid_schema.py").as_posix() diff --git a/src/promptflow/tests/executor/unittests/_utils/test_tool_utils.py b/src/promptflow/tests/executor/unittests/_utils/test_tool_utils.py index d979a24955b..32dcbb269ae 100644 --- a/src/promptflow/tests/executor/unittests/_utils/test_tool_utils.py +++ b/src/promptflow/tests/executor/unittests/_utils/test_tool_utils.py @@ -17,7 +17,7 @@ validate_tool_func_result, ) from promptflow.connections import AzureOpenAIConnection, CustomConnection -from promptflow.contracts.tool import ValueType, Tool, ToolFuncCallScenario, ToolType +from promptflow.contracts.tool import Tool, ToolFuncCallScenario, ToolType, ValueType # mock functions for dynamic list function testing @@ -331,7 +331,13 @@ def test_validate_dynamic_list_func_response_type_with_error(self, res, err_msg) def test_load_function_from_function_path(self, mock_module_with_list_func): func_path = "my_tool_package.tools.tool_with_dynamic_list_input.my_list_func" - load_function_from_function_path(func_path) + tool_func = load_function_from_function_path(func_path) + assert callable(tool_func) + + def test_load_function_from_script(self): + func_path = f"{__file__}:mock_dynamic_list_func1" + tool_func = load_function_from_function_path(func_path) + assert callable(tool_func) def test_load_function_from_function_path_with_error(self, mock_module_with_list_func): func_path = "mock_func_path" @@ -371,13 +377,13 @@ def test_load_function_from_function_path_with_error(self, mock_module_with_list ToolFuncCallScenario.REVERSE_GENERATED_BY, "dummy_result", f"ToolFuncCallScenario {ToolFuncCallScenario.REVERSE_GENERATED_BY} response must be a dict. " - f"dummy_result is not a dict." + f"dummy_result is not a dict.", ), ( "dummy_scenario", "dummy_result", f"Invalid tool func call scenario: dummy_scenario. " - f"Available scenarios are {list(ToolFuncCallScenario)}" + f"Available scenarios are {list(ToolFuncCallScenario)}", ), ], ) @@ -388,7 +394,7 @@ def test_validate_tool_func_result(self, func_call_scenario, result, err_msg): ) with pytest.raises(RetrieveToolFuncResultValidationError) as e: validate_tool_func_result(func_call_scenario, result) - assert (error_message == str(e.value)) + assert error_message == str(e.value) def test_find_deprecated_tools(self): package_tools = { From 531a9c0c3f675dfaf1801d410f7442a852fc238f Mon Sep 17 00:00:00 2001 From: Brynn Yin <24237253+brynn-code@users.noreply.github.com> Date: Mon, 18 Mar 2024 18:42:45 +0800 Subject: [PATCH 078/204] Move set UA from _sdk/utils -> _utils/user_agent_utils (#2382) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. Signed-off-by: Brynn Yin --- src/promptflow/promptflow/_cli/_pf/entry.py | 9 +-- .../promptflow/_cli/_pf_azure/entry.py | 9 +-- .../promptflow/_internal/__init__.py | 2 +- src/promptflow/promptflow/_sdk/_pf_client.py | 2 +- .../promptflow/_sdk/_telemetry/activity.py | 2 +- src/promptflow/promptflow/_sdk/_utils.py | 62 +------------------ .../promptflow/_utils/user_agent_utils.py | 58 +++++++++++++++++ .../promptflow/azure/_models/_models.py | 2 - src/promptflow/promptflow/azure/_pf_client.py | 2 +- .../promptflow/core/_serving/app.py | 2 +- .../tests/sdk_cli_azure_test/conftest.py | 2 +- .../e2etests/test_azure_cli_perf.py | 4 +- .../e2etests/test_cli_with_azure.py | 2 +- .../e2etests/test_telemetry.py | 3 +- .../tests/sdk_cli_test/e2etests/test_cli.py | 2 +- .../sdk_cli_test/e2etests/test_cli_perf.py | 2 +- .../sdk_cli_test/unittests/test_config.py | 2 +- .../sdk_cli_test/unittests/test_pf_client.py | 2 +- 18 files changed, 81 insertions(+), 88 deletions(-) create mode 100644 src/promptflow/promptflow/_utils/user_agent_utils.py diff --git a/src/promptflow/promptflow/_cli/_pf/entry.py b/src/promptflow/promptflow/_cli/_pf/entry.py index 93169ca09d6..ecd8091bef6 100644 --- a/src/promptflow/promptflow/_cli/_pf/entry.py +++ b/src/promptflow/promptflow/_cli/_pf/entry.py @@ -23,15 +23,12 @@ from promptflow._cli._pf._flow import add_flow_parser, dispatch_flow_commands # noqa: E402 from promptflow._cli._pf._run import add_run_parser, dispatch_run_commands # noqa: E402 from promptflow._cli._pf._tool import add_tool_parser, dispatch_tool_commands # noqa: E402 -from promptflow._cli._pf.help import show_privacy_statement, show_welcome_message # noqa: E402 from promptflow._cli._pf._upgrade import add_upgrade_parser, upgrade_version # noqa: E402 +from promptflow._cli._pf.help import show_privacy_statement, show_welcome_message # noqa: E402 from promptflow._cli._user_agent import USER_AGENT # noqa: E402 -from promptflow._sdk._utils import ( # noqa: E402 - get_promptflow_sdk_version, - print_pf_version, - setup_user_agent_to_operation_context, -) +from promptflow._sdk._utils import get_promptflow_sdk_version, print_pf_version # noqa: E402 from promptflow._utils.logger_utils import get_cli_sdk_logger # noqa: E402 +from promptflow._utils.user_agent_utils import setup_user_agent_to_operation_context # noqa: E402 # get logger for CLI logger = get_cli_sdk_logger() diff --git a/src/promptflow/promptflow/_cli/_pf_azure/entry.py b/src/promptflow/promptflow/_cli/_pf_azure/entry.py index bb15ec9972d..29e6750d481 100644 --- a/src/promptflow/promptflow/_cli/_pf_azure/entry.py +++ b/src/promptflow/promptflow/_cli/_pf_azure/entry.py @@ -7,7 +7,7 @@ from promptflow._cli._pf.help import show_privacy_statement, show_welcome_message from promptflow._cli._user_agent import USER_AGENT -from promptflow._cli._utils import _get_cli_activity_name, get_client_info_for_cli, cli_exception_and_telemetry_handler +from promptflow._cli._utils import _get_cli_activity_name, cli_exception_and_telemetry_handler, get_client_info_for_cli # Log the start time start_time = time.perf_counter() @@ -19,12 +19,9 @@ from promptflow._cli._pf_azure._flow import add_parser_flow, dispatch_flow_commands # noqa: E402 from promptflow._cli._pf_azure._run import add_parser_run, dispatch_run_commands # noqa: E402 -from promptflow._sdk._utils import ( # noqa: E402 - get_promptflow_sdk_version, - print_pf_version, - setup_user_agent_to_operation_context, -) +from promptflow._sdk._utils import get_promptflow_sdk_version, print_pf_version # noqa: E402 from promptflow._utils.logger_utils import get_cli_sdk_logger # noqa: E402 +from promptflow._utils.user_agent_utils import setup_user_agent_to_operation_context # noqa: E402 # get logger for CLI logger = get_cli_sdk_logger() diff --git a/src/promptflow/promptflow/_internal/__init__.py b/src/promptflow/promptflow/_internal/__init__.py index 75857b2790c..2e94fb0d66a 100644 --- a/src/promptflow/promptflow/_internal/__init__.py +++ b/src/promptflow/promptflow/_internal/__init__.py @@ -43,7 +43,6 @@ from promptflow._sdk._constants import LOCAL_MGMT_DB_PATH from promptflow._sdk._utils import ( get_used_connection_names_from_environment_variables, - setup_user_agent_to_operation_context, update_environment_variables_with_connections, ) from promptflow._utils.context_utils import _change_working_dir, inject_sys_path @@ -85,6 +84,7 @@ persist_multimedia_data, resolve_multimedia_data_recursively, ) +from promptflow._utils.user_agent_utils import setup_user_agent_to_operation_context from promptflow._utils.utils import ( AttrDict, camel_to_snake, diff --git a/src/promptflow/promptflow/_sdk/_pf_client.py b/src/promptflow/promptflow/_sdk/_pf_client.py index 4b2ac9df60b..f4cac52beb3 100644 --- a/src/promptflow/promptflow/_sdk/_pf_client.py +++ b/src/promptflow/promptflow/_sdk/_pf_client.py @@ -8,12 +8,12 @@ from .._constants import USER_AGENT_OVERRIDE_KEY from .._utils.logger_utils import get_cli_sdk_logger +from .._utils.user_agent_utils import ClientUserAgentUtil, setup_user_agent_to_operation_context from ..exceptions import ErrorTarget, UserErrorException from ._configuration import Configuration from ._constants import MAX_SHOW_DETAILS_RESULTS, ConnectionProvider from ._load_functions import load_flow from ._user_agent import USER_AGENT -from ._utils import ClientUserAgentUtil, setup_user_agent_to_operation_context from .entities import Run from .entities._eager_flow import FlexFlow from .operations import RunOperations diff --git a/src/promptflow/promptflow/_sdk/_telemetry/activity.py b/src/promptflow/promptflow/_sdk/_telemetry/activity.py index 09de82d7ed0..b21ee3f8811 100644 --- a/src/promptflow/promptflow/_sdk/_telemetry/activity.py +++ b/src/promptflow/promptflow/_sdk/_telemetry/activity.py @@ -10,7 +10,7 @@ from typing import Any, Dict from promptflow._sdk._telemetry.telemetry import TelemetryMixin -from promptflow._sdk._utils import ClientUserAgentUtil +from promptflow._utils.user_agent_utils import ClientUserAgentUtil from promptflow.exceptions import _ErrorInfo diff --git a/src/promptflow/promptflow/_sdk/_utils.py b/src/promptflow/promptflow/_sdk/_utils.py index 18a1a95704a..222e57472c0 100644 --- a/src/promptflow/promptflow/_sdk/_utils.py +++ b/src/promptflow/promptflow/_sdk/_utils.py @@ -31,13 +31,7 @@ from marshmallow import ValidationError import promptflow -from promptflow._constants import ( - ENABLE_MULTI_CONTAINER_KEY, - EXTENSION_UA, - PF_NO_INTERACTIVE_LOGIN, - PF_USER_AGENT, - USER_AGENT, -) +from promptflow._constants import ENABLE_MULTI_CONTAINER_KEY, EXTENSION_UA, PF_NO_INTERACTIVE_LOGIN from promptflow._sdk._constants import ( AZURE_WORKSPACE_REGEX_FORMAT, DAG_FILE_NAME, @@ -70,12 +64,12 @@ from promptflow._utils.context_utils import _change_working_dir, inject_sys_path from promptflow._utils.dataclass_serializer import serialize from promptflow._utils.logger_utils import get_cli_sdk_logger +from promptflow._utils.user_agent_utils import ClientUserAgentUtil from promptflow._utils.utils import _match_reference from promptflow._utils.yaml_utils import dump_yaml, load_yaml, load_yaml_string from promptflow.contracts.tool import ToolType from promptflow.core._utils import generate_flow_meta as _generate_flow_meta from promptflow.exceptions import ErrorTarget, UserErrorException -from promptflow.tracing._operation_context import OperationContext logger = get_cli_sdk_logger() @@ -755,58 +749,6 @@ def generate_flow_tools_json( return flow_tools -class ClientUserAgentUtil: - """SDK/CLI side user agent utilities.""" - - @classmethod - def _get_context(cls): - return OperationContext.get_instance() - - @classmethod - def get_user_agent(cls): - context = cls._get_context() - # directly get from context since client side won't need promptflow/xxx. - return context.get(OperationContext.USER_AGENT_KEY, "").strip() - - @classmethod - def append_user_agent(cls, user_agent: Optional[str]): - if not user_agent: - return - context = cls._get_context() - context.append_user_agent(user_agent) - - @classmethod - def update_user_agent_from_env_var(cls): - # this is for backward compatibility: we should use PF_USER_AGENT in newer versions. - for env_name in [USER_AGENT, PF_USER_AGENT]: - if env_name in os.environ: - cls.append_user_agent(os.environ[env_name]) - - @classmethod - def update_user_agent_from_config(cls): - """Update user agent from config. 1p customer will set it. We'll add PFCustomer_ as prefix.""" - from promptflow._sdk._configuration import Configuration - - config = Configuration.get_instance() - user_agent = config.get_user_agent() - if user_agent: - cls.append_user_agent(user_agent) - - -def setup_user_agent_to_operation_context(user_agent): - """Setup user agent to OperationContext. - For calls from extension, ua will be like: prompt-flow-extension/ promptflow-cli/ promptflow-sdk/ - For calls from CLI, ua will be like: promptflow-cli/ promptflow-sdk/ - For calls from SDK, ua will be like: promptflow-sdk/ - For 1p customer call which set user agent in config, ua will be like: PFCustomer_XXX/ - """ - # add user added UA after SDK/CLI - ClientUserAgentUtil.append_user_agent(user_agent) - ClientUserAgentUtil.update_user_agent_from_env_var() - ClientUserAgentUtil.update_user_agent_from_config() - return ClientUserAgentUtil.get_user_agent() - - def call_from_extension() -> bool: """Return true if current request is from extension.""" ClientUserAgentUtil.update_user_agent_from_env_var() diff --git a/src/promptflow/promptflow/_utils/user_agent_utils.py b/src/promptflow/promptflow/_utils/user_agent_utils.py new file mode 100644 index 00000000000..20f3c6239a2 --- /dev/null +++ b/src/promptflow/promptflow/_utils/user_agent_utils.py @@ -0,0 +1,58 @@ +import os +from typing import Optional + +from promptflow._constants import PF_USER_AGENT, USER_AGENT +from promptflow.tracing._operation_context import OperationContext + + +class ClientUserAgentUtil: + """SDK/CLI side user agent utilities.""" + + @classmethod + def _get_context(cls): + return OperationContext.get_instance() + + @classmethod + def get_user_agent(cls): + context = cls._get_context() + # directly get from context since client side won't need promptflow/xxx. + return context.get(OperationContext.USER_AGENT_KEY, "").strip() + + @classmethod + def append_user_agent(cls, user_agent: Optional[str]): + if not user_agent: + return + context = cls._get_context() + context.append_user_agent(user_agent) + + @classmethod + def update_user_agent_from_env_var(cls): + # this is for backward compatibility: we should use PF_USER_AGENT in newer versions. + for env_name in [USER_AGENT, PF_USER_AGENT]: + if env_name in os.environ: + cls.append_user_agent(os.environ[env_name]) + + @classmethod + def update_user_agent_from_config(cls): + """Update user agent from config. 1p customer will set it. We'll add PFCustomer_ as prefix.""" + from promptflow._sdk._configuration import Configuration + + config = Configuration.get_instance() + user_agent = config.get_user_agent() + if user_agent: + cls.append_user_agent(user_agent) + + +def setup_user_agent_to_operation_context(user_agent): + """Setup user agent to OperationContext. + For calls from extension, ua will be like: prompt-flow-extension/ promptflow-cli/ promptflow-sdk/ + For calls from CLI, ua will be like: promptflow-cli/ promptflow-sdk/ + For calls from SDK, ua will be like: promptflow-sdk/ + For 1p customer call which set user agent in config, ua will be like: PFCustomer_XXX/ + For serving with promptflow-core only env, ua will be like: promptflow-local-serving/ promptflow-core/ + """ + # add user added UA after SDK/CLI + ClientUserAgentUtil.append_user_agent(user_agent) + ClientUserAgentUtil.update_user_agent_from_env_var() + ClientUserAgentUtil.update_user_agent_from_config() + return ClientUserAgentUtil.get_user_agent() diff --git a/src/promptflow/promptflow/azure/_models/_models.py b/src/promptflow/promptflow/azure/_models/_models.py index 1db8299e122..971c36d6144 100644 --- a/src/promptflow/promptflow/azure/_models/_models.py +++ b/src/promptflow/promptflow/azure/_models/_models.py @@ -8,8 +8,6 @@ import msrest.serialization -from azure.core.exceptions import HttpResponseError - class WorkspaceConnectionPropertiesV2(msrest.serialization.Model): """WorkspaceConnectionPropertiesV2. diff --git a/src/promptflow/promptflow/azure/_pf_client.py b/src/promptflow/promptflow/azure/_pf_client.py index cc0a22c431f..7487b39e6ce 100644 --- a/src/promptflow/promptflow/azure/_pf_client.py +++ b/src/promptflow/promptflow/azure/_pf_client.py @@ -11,8 +11,8 @@ from promptflow._sdk._constants import MAX_SHOW_DETAILS_RESULTS from promptflow._sdk._errors import RunOperationParameterError from promptflow._sdk._user_agent import USER_AGENT -from promptflow._sdk._utils import ClientUserAgentUtil, setup_user_agent_to_operation_context from promptflow._sdk.entities import Run +from promptflow._utils.user_agent_utils import ClientUserAgentUtil, setup_user_agent_to_operation_context from promptflow.azure._restclient.service_caller_factory import _FlowServiceCallerFactory from promptflow.azure.operations import RunOperations from promptflow.azure.operations._arm_connection_operations import ArmConnectionOperations diff --git a/src/promptflow/promptflow/core/_serving/app.py b/src/promptflow/promptflow/core/_serving/app.py index 80248fe5d8b..9839c5c2347 100644 --- a/src/promptflow/promptflow/core/_serving/app.py +++ b/src/promptflow/promptflow/core/_serving/app.py @@ -12,9 +12,9 @@ from opentelemetry import baggage, context from promptflow._sdk._load_functions import load_flow -from promptflow._sdk._utils import setup_user_agent_to_operation_context from promptflow._utils.exception_utils import ErrorResponse from promptflow._utils.logger_utils import LoggerFactory +from promptflow._utils.user_agent_utils import setup_user_agent_to_operation_context from promptflow._version import VERSION from promptflow.contracts.run_info import Status from promptflow.core._serving.constants import FEEDBACK_TRACE_FIELD_NAME, FEEDBACK_TRACE_SPAN_NAME diff --git a/src/promptflow/tests/sdk_cli_azure_test/conftest.py b/src/promptflow/tests/sdk_cli_azure_test/conftest.py index 869f3f33d35..bf3299dc75d 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/conftest.py +++ b/src/promptflow/tests/sdk_cli_azure_test/conftest.py @@ -17,8 +17,8 @@ from pytest_mock import MockerFixture from promptflow._sdk._constants import FlowType, RunStatus -from promptflow._sdk._utils import ClientUserAgentUtil from promptflow._sdk.entities import Run +from promptflow._utils.user_agent_utils import ClientUserAgentUtil from promptflow.azure import PFClient from promptflow.azure._entities._flow import Flow diff --git a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_azure_cli_perf.py b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_azure_cli_perf.py index ec21e891463..898e778a78a 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_azure_cli_perf.py +++ b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_azure_cli_perf.py @@ -5,11 +5,11 @@ from unittest import mock import pytest +from sdk_cli_azure_test.recording_utilities import is_replay from promptflow._cli._user_agent import USER_AGENT as CLI_USER_AGENT # noqa: E402 from promptflow._sdk._telemetry import log_activity -from promptflow._sdk._utils import ClientUserAgentUtil -from sdk_cli_azure_test.recording_utilities import is_replay +from promptflow._utils.user_agent_utils import ClientUserAgentUtil FLOWS_DIR = "./tests/test_configs/flows" DATAS_DIR = "./tests/test_configs/datas" diff --git a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_cli_with_azure.py b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_cli_with_azure.py index 3e8c09e08f6..94e5802e6b6 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_cli_with_azure.py +++ b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_cli_with_azure.py @@ -11,8 +11,8 @@ from mock.mock import patch from promptflow._constants import PF_USER_AGENT -from promptflow._sdk._utils import ClientUserAgentUtil from promptflow._sdk.entities import Run +from promptflow._utils.user_agent_utils import ClientUserAgentUtil from promptflow._utils.utils import environment_variable_overwrite, parse_ua_to_dict from promptflow.azure import PFClient from promptflow.tracing._operation_context import OperationContext diff --git a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py index 6de09fdfb18..8c67215ed50 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py +++ b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_telemetry.py @@ -29,7 +29,8 @@ log_activity, ) from promptflow._sdk._telemetry.logging_handler import get_promptflow_sdk_log_handler -from promptflow._sdk._utils import ClientUserAgentUtil, call_from_extension +from promptflow._sdk._utils import call_from_extension +from promptflow._utils.user_agent_utils import ClientUserAgentUtil from promptflow._utils.utils import environment_variable_overwrite, parse_ua_to_dict from promptflow.tracing._operation_context import OperationContext diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_cli.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_cli.py index 9917494e1f2..9c722588aac 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_cli.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_cli.py @@ -22,10 +22,10 @@ from promptflow._constants import PF_USER_AGENT from promptflow._sdk._constants import LOGGER_NAME, SCRUBBED_VALUE, ExperimentStatus from promptflow._sdk._errors import RunNotFoundError -from promptflow._sdk._utils import ClientUserAgentUtil, setup_user_agent_to_operation_context from promptflow._sdk.operations._local_storage_operations import LocalStorageOperations from promptflow._sdk.operations._run_operations import RunOperations from promptflow._utils.context_utils import _change_working_dir +from promptflow._utils.user_agent_utils import ClientUserAgentUtil, setup_user_agent_to_operation_context from promptflow._utils.utils import environment_variable_overwrite, parse_ua_to_dict from promptflow._utils.yaml_utils import dump_yaml, load_yaml from promptflow.tracing._operation_context import OperationContext diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_cli_perf.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_cli_perf.py index aafcd00b9ed..9077a28897e 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_cli_perf.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_cli_perf.py @@ -13,7 +13,7 @@ from promptflow._cli._user_agent import USER_AGENT as CLI_USER_AGENT # noqa: E402 from promptflow._sdk._telemetry import log_activity -from promptflow._sdk._utils import ClientUserAgentUtil +from promptflow._utils.user_agent_utils import ClientUserAgentUtil FLOWS_DIR = "./tests/test_configs/flows" CONNECTIONS_DIR = "./tests/test_configs/connections" diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_config.py b/src/promptflow/tests/sdk_cli_test/unittests/test_config.py index d4789823ad4..768f042a3da 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_config.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_config.py @@ -7,7 +7,7 @@ from promptflow._sdk._configuration import Configuration, InvalidConfigValue from promptflow._sdk._constants import FLOW_DIRECTORY_MACRO_IN_CONFIG -from promptflow._sdk._utils import ClientUserAgentUtil +from promptflow._utils.user_agent_utils import ClientUserAgentUtil CONFIG_DATA_ROOT = Path(__file__).parent.parent.parent / "test_configs" / "configs" diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_pf_client.py b/src/promptflow/tests/sdk_cli_test/unittests/test_pf_client.py index 3a023cf4987..d4bd33175d8 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_pf_client.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_pf_client.py @@ -4,7 +4,7 @@ import pytest from promptflow import PFClient -from promptflow._sdk._utils import ClientUserAgentUtil +from promptflow._utils.user_agent_utils import ClientUserAgentUtil @pytest.mark.sdk_test From 7a04d165f063db25597bb06e1b12b26f3958fbbd Mon Sep 17 00:00:00 2001 From: Peiwen Gao <111329184+PeiwenGaoMS@users.noreply.github.com> Date: Tue, 19 Mar 2024 10:26:58 +0800 Subject: [PATCH 079/204] [Internal][Executor] Refine the cancel api to allow the execution server to return partial results when receiving a cancel request (#2378) # Description - Refine the cancel api to allow the execution server to return partial results when receiving a cancel request. - Use async node scheduler to execute the nodes for flow test in executor server. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --- .../promptflow/contracts/run_info.py | 6 ++- .../executor/_service/apis/execution.py | 2 + .../_service/utils/process_manager.py | 46 +++++++++---------- .../executor/_service/utils/process_utils.py | 23 +++------- .../executor/_service/utils/service_utils.py | 6 +++ .../promptflow/executor/flow_executor.py | 27 +++++------ 6 files changed, 51 insertions(+), 59 deletions(-) diff --git a/src/promptflow/promptflow/contracts/run_info.py b/src/promptflow/promptflow/contracts/run_info.py index 389b055cbb7..a1bd7077db8 100644 --- a/src/promptflow/promptflow/contracts/run_info.py +++ b/src/promptflow/promptflow/contracts/run_info.py @@ -100,6 +100,8 @@ class RunInfo: @staticmethod def deserialize(data: dict) -> "RunInfo": """Deserialize the RunInfo from a dict.""" + start_time = data.get("start_time", None) + end_time = data.get("end_time", None) run_info = RunInfo( node=data.get("node"), flow_run_id=data.get("flow_run_id"), @@ -110,8 +112,8 @@ def deserialize(data: dict) -> "RunInfo": metrics=data.get("metrics", None), error=data.get("error", None), parent_run_id=data.get("parent_run_id", None), - start_time=parser.parse(data.get("start_time")).replace(tzinfo=None), - end_time=parser.parse(data.get("end_time")).replace(tzinfo=None), + start_time=parser.parse(start_time).replace(tzinfo=None) if start_time else None, + end_time=parser.parse(end_time).replace(tzinfo=None) if end_time else None, index=data.get("index", None), api_calls=data.get("api_calls", None), cached_run_id=data.get("cached_run_id", None), diff --git a/src/promptflow/promptflow/executor/_service/apis/execution.py b/src/promptflow/promptflow/executor/_service/apis/execution.py index 995fe48609c..778dcdd55a4 100644 --- a/src/promptflow/promptflow/executor/_service/apis/execution.py +++ b/src/promptflow/promptflow/executor/_service/apis/execution.py @@ -15,6 +15,7 @@ from promptflow.executor._service.utils.process_manager import ProcessManager from promptflow.executor._service.utils.process_utils import invoke_sync_function_in_process from promptflow.executor._service.utils.service_utils import ( + enable_async_execution, get_log_context, set_environment_variables, update_and_get_operation_context, @@ -81,6 +82,7 @@ def flow_test(request: FlowExecutionRequest): request.validate_request() # resolve environment variables set_environment_variables(request) + enable_async_execution() # execute flow storage = DefaultRunStorage(base_dir=request.working_dir, sub_dir=request.output_dir) with get_log_context(request): diff --git a/src/promptflow/promptflow/executor/_service/utils/process_manager.py b/src/promptflow/promptflow/executor/_service/utils/process_manager.py index 037d236263b..803aa2b83aa 100644 --- a/src/promptflow/promptflow/executor/_service/utils/process_manager.py +++ b/src/promptflow/promptflow/executor/_service/utils/process_manager.py @@ -2,17 +2,17 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- +import os import signal +from multiprocessing import Process from typing import Dict -import psutil - from promptflow._utils.logger_utils import service_logger class ProcessManager: _instance = None - _processes_mapping: Dict[str, int] + _processes_mapping: Dict[str, Process] def __new__(cls, *args, **kwargs): if cls._instance is None: @@ -20,35 +20,31 @@ def __new__(cls, *args, **kwargs): cls._instance._processes_mapping = {} return cls._instance - def start_process(self, run_id: str, process_id: int): - self._processes_mapping[run_id] = process_id + def start_process(self, run_id: str, process: Process): + self._processes_mapping[run_id] = process - def get_process(self, run_id: str): + def get_process(self, run_id: str) -> Process: return self._processes_mapping.get(run_id, None) - def remove_process(self, run_id: str): - self._processes_mapping.pop(run_id, None) + def remove_process(self, run_id: str) -> Process: + return self._processes_mapping.pop(run_id, None) def end_process(self, run_id: str): - process_id = self._processes_mapping.pop(run_id, None) - if process_id: + process = self.remove_process(run_id) + if process and process.is_alive(): try: - process = psutil.Process(process_id) - if process.is_running(): - process.send_signal(signal.SIGINT) - service_logger.info(f"Kill process[{process.pid}] for run[{run_id}] with SIGINT.") - # wait for 30s for executor process to gracefully shutdown - process.wait(timeout=30) - service_logger.info(f"Successfully terminated process[{process.pid}] for run[{run_id}].") - else: - service_logger.info(f"Process[{process.pid}] for run[{run_id}] is already terminated.") - except psutil.TimeoutExpired: - if process.is_running(): - # force kill if still alive - process.send_signal(signal.SIGKILL) + # Executor will handle SIGINT. + os.kill(process.pid, signal.SIGINT) + service_logger.info(f"Kill process[{process.pid}] for run[{run_id}] with SIGINT.") + # Wait for 30s for executor process to gracefully shutdown + process.join(timeout=30) + if process.is_alive(): + # Force kill if still alive + os.kill(process.pid, signal.SIGKILL) service_logger.info(f"Kill process[{process.pid}] for run[{run_id}] with SIGKILL.") - except psutil.NoSuchProcess: - service_logger.warning( + service_logger.info(f"Successfully terminated process[{process.pid}] for run[{run_id}].") + except ProcessLookupError: + service_logger.info( f"Process[{process.pid}] for run[{run_id}] not found, it might have already terminated." ) else: diff --git a/src/promptflow/promptflow/executor/_service/utils/process_utils.py b/src/promptflow/promptflow/executor/_service/utils/process_utils.py index 32017f464d9..77babf195f8 100644 --- a/src/promptflow/promptflow/executor/_service/utils/process_utils.py +++ b/src/promptflow/promptflow/executor/_service/utils/process_utils.py @@ -10,8 +10,6 @@ from datetime import datetime, timedelta from typing import Callable -import psutil - from promptflow._core._errors import UnexpectedError from promptflow._utils.exception_utils import ExceptionPresenter, JsonSerializedPromptflowException from promptflow._utils.logger_utils import service_logger @@ -45,18 +43,14 @@ async def invoke_sync_function_in_process( p.start() service_logger.info(f"[{os.getpid()}--{p.pid}] Start process to execute the request.") if run_id: - ProcessManager().start_process(run_id, p.pid) + ProcessManager().start_process(run_id, p) try: # Wait for the process to finish or timeout asynchronously start_time = datetime.utcnow() - while (datetime.utcnow() - start_time).total_seconds() < wait_timeout and _is_process_alive(p): + while (datetime.utcnow() - start_time).total_seconds() < wait_timeout and p.is_alive(): await asyncio.sleep(1) - # If process_id is None, it indicates that the process has been terminated by cancel request. - if run_id and not ProcessManager().get_process(run_id): - raise ExecutionCanceledError(run_id) - # Terminate the process if it is still alive after timeout if p.is_alive(): service_logger.error(f"[{p.pid}] Stop process for exceeding {wait_timeout} seconds.") @@ -66,6 +60,10 @@ async def invoke_sync_function_in_process( # Raise exception if the process exit code is not 0 if p.exitcode != 0: + # If process is None, it indicates that the process has been terminated by cancel request. + if run_id and not ProcessManager().get_process(run_id): + raise ExecutionCanceledError(run_id) + # If process is not None, it indicates that the process has been terminated by other errors. exception = error_dict.get("error", None) if exception is None: raise UnexpectedError( @@ -83,15 +81,6 @@ async def invoke_sync_function_in_process( ProcessManager().remove_process(run_id) -def _is_process_alive(p: multiprocessing.Process): - if psutil.pid_exists(p.pid): - if psutil.Process(p.pid).status() != psutil.STATUS_ZOMBIE: - return True - # Call p.join() to clear the zombie process correctly. - p.join() - return False - - def _execute_target_function( target_function: Callable, args: tuple, diff --git a/src/promptflow/promptflow/executor/_service/utils/service_utils.py b/src/promptflow/promptflow/executor/_service/utils/service_utils.py index dfbb6173b30..e3f3af7c3b6 100644 --- a/src/promptflow/promptflow/executor/_service/utils/service_utils.py +++ b/src/promptflow/promptflow/executor/_service/utils/service_utils.py @@ -58,3 +58,9 @@ def generate_error_response(ex: Union[dict, Exception]): def set_environment_variables(request: BaseExecutionRequest): if isinstance(request.environment_variables, dict) and request.environment_variables: os.environ.update(request.environment_variables) + + +def enable_async_execution(): + """Set env PF_USE_ASYNC to true to enable async execution""" + # TODO: Will remove when AsyncNodesScheduler is used by default + os.environ["PF_USE_ASYNC"] = "true" diff --git a/src/promptflow/promptflow/executor/flow_executor.py b/src/promptflow/promptflow/executor/flow_executor.py index 1e5b1574bff..58f7a5065fa 100644 --- a/src/promptflow/promptflow/executor/flow_executor.py +++ b/src/promptflow/promptflow/executor/flow_executor.py @@ -937,7 +937,9 @@ def _exec( # End run with the KeyboardInterrupt exception, so that its status will be Canceled flow_logger.info("Received KeyboardInterrupt, cancel the run.") run_tracker.end_run(line_run_id, ex=ex) - raise + # If async execution is enabled, ignore this exception and return the partial line results. + if not self._should_use_async(): + raise except Exception as e: run_tracker.end_run(line_run_id, ex=e) if self._raise_ex: @@ -1101,13 +1103,7 @@ def _traverse_nodes(self, inputs, context: FlowExecutionContext) -> Tuple[dict, batch_nodes = [node for node in self._flow.nodes if not node.aggregation] outputs = {} # TODO: Use a mixed scheduler to support both async and thread pool mode. - if self._should_use_async(): - flow_logger.info("Start executing nodes in async mode.") - scheduler = AsyncNodesScheduler(self._tools_manager, self._node_concurrency) - nodes_outputs, bypassed_nodes = asyncio.run(scheduler.execute(batch_nodes, inputs, context)) - else: - flow_logger.info("Start executing nodes in thread pool mode.") - nodes_outputs, bypassed_nodes = self._submit_to_scheduler(context, inputs, batch_nodes) + nodes_outputs, bypassed_nodes = self._submit_to_scheduler(context, inputs, batch_nodes) outputs = self._extract_outputs(nodes_outputs, bypassed_nodes, inputs) return outputs, nodes_outputs @@ -1137,13 +1133,14 @@ def _submit_to_scheduler(self, context: FlowExecutionContext, inputs, nodes: Lis ), current_value=self._node_concurrency, ) - return FlowNodesScheduler( - self._tools_manager, - inputs, - nodes, - self._node_concurrency, - context, - ).execute(self._line_timeout_sec) + if self._should_use_async(): + flow_logger.info("Start executing nodes in async mode.") + scheduler = AsyncNodesScheduler(self._tools_manager, self._node_concurrency) + return asyncio.run(scheduler.execute(nodes, inputs, context)) + else: + flow_logger.info("Start executing nodes in thread pool mode.") + scheduler = FlowNodesScheduler(self._tools_manager, inputs, nodes, self._node_concurrency, context) + return scheduler.execute(self._line_timeout_sec) @staticmethod def apply_inputs_mapping( From fec34dc5cb0323553d2a7431c3d272349c58c68c Mon Sep 17 00:00:00 2001 From: melionel Date: Tue, 19 Mar 2024 10:37:29 +0800 Subject: [PATCH 080/204] [Internal]update separator sample usage (#2304) # Description Update the role sseparator sample usage to use the markdown style # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Meng Lan --- docs/how-to-guides/enable-streaming-mode.md | 20 ++++----- examples/flows/chat/chat-basic/README.md | 14 +++--- examples/flows/chat/chat-basic/chat.jinja2 | 8 ++-- .../flows/chat/chat-math-variant/chat.jinja2 | 10 ++--- .../chat-math-variant/chat_variant_1.jinja2 | 16 +++---- .../chat-math-variant/chat_variant_2.jinja2 | 32 +++++++------- .../flows/chat/chat-with-wikipedia/README.md | 14 +++--- .../chat-with-wikipedia/augmented_chat.jinja2 | 8 ++-- .../extract_query_from_question.jinja2 | 4 +- .../use_functions_with_chat_models.jinja2 | 16 +++---- .../eval-groundedness/gpt_groundedness.md | 4 +- .../gpt_perceived_intelligence.md | 4 +- .../gpt_coherence_prompt.jinja2 | 4 +- .../gpt_fluency_prompt.jinja2 | 4 +- .../gpt_groundedness_prompt.jinja2 | 4 +- .../gpt_relevance_prompt.jinja2 | 4 +- .../gpt_similarity_prompt.jinja2 | 4 +- .../rag_generation_prompt.jinja2 | 8 ++-- .../rag_groundedness_prompt.jinja2 | 16 +++---- .../rag_retrieval_prompt.jinja2 | 14 +++--- .../chat.jinja2 | 6 +-- .../basic-with-builtin-llm/hello.jinja2 | 4 +- .../classify_with_llm.jinja2 | 4 +- .../standard/maths-to-code/ask_llm.jinja2 | 4 +- .../standard/maths-to-code/prompt_gen.jinja2 | 4 +- .../named-entity-recognition/NER_LLM.jinja2 | 4 +- .../classify_with_llm.jinja2 | 4 +- .../summarize_text_content.jinja2 | 6 +-- .../summarize_text_content__variant_1.jinja2 | 6 +-- .../promptflow-quality-improvement.md | 44 +++++++++---------- 30 files changed, 147 insertions(+), 147 deletions(-) diff --git a/docs/how-to-guides/enable-streaming-mode.md b/docs/how-to-guides/enable-streaming-mode.md index a53c0759db3..7b3de2b913a 100644 --- a/docs/how-to-guides/enable-streaming-mode.md +++ b/docs/how-to-guides/enable-streaming-mode.md @@ -16,10 +16,10 @@ If you want to use the streaming mode, you need to create a flow that has a node ```jinja {# Sample prompt template for LLM node #} - system: + # system: You are a helpful assistant. - user: + # user: {{question}} ``` - Python tools node: This node allows you to write custom Python code that can yield string outputs. You can use this node to call external APIs or libraries that support streaming. For example, you can use this code to echo the input word by word: @@ -45,7 +45,7 @@ To use the streaming mode, you need to deploy your flow as an online endpoint. T Follow [this guide](./deploy-a-flow/index.md) to deploy your flow as an online endpoint. > [!NOTE] -> +> > You can follow this document to deploy an [online endpoint](https://learn.microsoft.com/en-us/azure/machine-learning/prompt-flow/how-to-deploy-for-real-time-inference?view=azureml-api-2). > Please deploy with runtime environment version later than version `20230816.v10`. > You can check your runtime version and update runtime in the run time detail page. @@ -60,9 +60,9 @@ To understand the streaming process, consider the following steps: - First, the client constructs an HTTP request with the desired media type included in the `Accept` header. The media type tells the server what kind of data format the client expects. It's like the client saying, "Hey, I'm looking for a specific format for the data you'll send me. It could be JSON, text, or something else." For example, `application/json` indicates a preference for JSON data, `text/event-stream` indicates a desire for streaming data, and `*/*` means the client accepts any data format. > [!NOTE] - > + > > If a request lacks an `Accept` header or has empty `Accept` header, it implies that the client will accept any media type in response. The server treats it as `*/*`. - + - Next, the server responds based on the media type specified in the `Accept` header. It's important to note that the client may request multiple media types in the `Accept` header, and the server must consider its capabilities and format priorities to determine the appropriate response. - First, the server checks if `text/event-stream` is explicitly specified in the `Accept` header: - For a stream-enabled flow, the server returns a response with a `Content-Type` of `text/event-stream`, indicating that the data is being streamed. @@ -92,7 +92,7 @@ Accept: text/event-stream } ``` > [!NOTE] -> +> > The `Accept` header is set to `text/event-stream` to request a stream response. @@ -230,15 +230,15 @@ If the response code is "424 Model Error", it means that the error is caused by In this sample usage, we are using the `SSEClient` class. This class is not a built-in Python class and needs to be installed separately. You can install it via pip: ```bash -pip install sseclient-py +pip install sseclient-py ``` A sample usage would like: ```python -import requests -from sseclient import SSEClient -from requests.exceptions import HTTPError +import requests +from sseclient import SSEClient +from requests.exceptions import HTTPError try: response = requests.post(url, json=body, headers=headers, stream=stream) diff --git a/examples/flows/chat/chat-basic/README.md b/examples/flows/chat/chat-basic/README.md index c518e0394f1..f6babab329c 100644 --- a/examples/flows/chat/chat-basic/README.md +++ b/examples/flows/chat/chat-basic/README.md @@ -15,21 +15,21 @@ pip install -r requirements.txt In this flow, you will learn - how to compose a chat flow. -- prompt template format of LLM tool chat api. Message delimiter is a separate line containing role name and colon: "system:", "user:", "assistant:". +- prompt template format of LLM tool chat api. Message delimiter is a separate line containing "#", role name and colon: "# system:", "# user:", "# assistant:". See OpenAI Chat for more about message role. ```jinja - system: + # system: You are a chatbot having a conversation with a human. - user: + # user: {{question}} ``` - how to consume chat history in prompt. ```jinja {% for item in chat_history %} - user: + # user: {{item.inputs.question}} - assistant: + # assistant: {{item.outputs.answer}} {% endfor %} ``` @@ -48,7 +48,7 @@ pf connection create --file ../../../connections/azure_openai.yml --set api_key= Note in [flow.dag.yaml](flow.dag.yaml) we are using connection named `open_ai_connection`. ```bash -# show registered connection +# show registered connection pf connection show --name open_ai_connection ``` @@ -56,7 +56,7 @@ pf connection show --name open_ai_connection ```bash # run chat flow with default question in flow.dag.yaml -pf flow test --flow . +pf flow test --flow . # run chat flow with new question pf flow test --flow . --inputs question="What's Azure Machine Learning?" diff --git a/examples/flows/chat/chat-basic/chat.jinja2 b/examples/flows/chat/chat-basic/chat.jinja2 index c5e811e1969..96bfb60a45b 100644 --- a/examples/flows/chat/chat-basic/chat.jinja2 +++ b/examples/flows/chat/chat-basic/chat.jinja2 @@ -1,12 +1,12 @@ -system: +# system: You are a helpful assistant. {% for item in chat_history %} -user: +# user: {{item.inputs.question}} -assistant: +# assistant: {{item.outputs.answer}} {% endfor %} -user: +# user: {{question}} \ No newline at end of file diff --git a/examples/flows/chat/chat-math-variant/chat.jinja2 b/examples/flows/chat/chat-math-variant/chat.jinja2 index b29be64b174..99ccef45c92 100644 --- a/examples/flows/chat/chat-math-variant/chat.jinja2 +++ b/examples/flows/chat/chat-math-variant/chat.jinja2 @@ -1,13 +1,13 @@ -system: -You are an assistant to calculate the answer to the provided math problems. +# system: +You are an assistant to calculate the answer to the provided math problems. Please return the final numerical answer only, without any accompanying reasoning or explanation. {% for item in chat_history %} -user: +# user: {{item.inputs.question}} -assistant: +# assistant: {{item.outputs.answer}} {% endfor %} -user: +# user: {{question}} diff --git a/examples/flows/chat/chat-math-variant/chat_variant_1.jinja2 b/examples/flows/chat/chat-math-variant/chat_variant_1.jinja2 index d54532b39df..2b77e8a3850 100644 --- a/examples/flows/chat/chat-math-variant/chat_variant_1.jinja2 +++ b/examples/flows/chat/chat-math-variant/chat_variant_1.jinja2 @@ -1,23 +1,23 @@ -system: +# system: You are an assistant to calculate the answer to the provided math problems. Please think step by step. Return the final numerical answer only and any accompanying reasoning or explanation seperately as json format. -user: +# user: A jar contains two red marbles, three green marbles, ten white marbles and no other marbles. Two marbles are randomly drawn from this jar without replacement. What is the probability that these two marbles drawn will both be red? Express your answer as a common fraction. -assistant: +# assistant: {Chain of thought: "The total number of marbles is $2+3+10=15$. The probability that the first marble drawn will be red is $2/15$. Then, there will be one red left, out of 14. Therefore, the probability of drawing out two red marbles will be: $$\\frac{2}{15}\\cdot\\frac{1}{14}=\\boxed{\\frac{1}{105}}$$.", "answer": "1/105"} -user: +# user: Find the greatest common divisor of $7!$ and $(5!)^2.$ -assistant: +# assistant: {"Chain of thought": "$$ \\begin{array} 7! &=& 7 \\cdot 6 \\cdot 5 \\cdot 4 \\cdot 3 \\cdot 2 \\cdot 1 &=& 2^4 \\cdot 3^2 \\cdot 5^1 \\cdot 7^1 \\\\ (5!)^2 &=& (5 \\cdot 4 \\cdot 3 \\cdot 2 \\cdot 1)^2 &=& 2^6 \\cdot 3^2 \\cdot 5^2 \\\\ \\text{gcd}(7!, (5!)^2) &=& 2^4 \\cdot 3^2 \\cdot 5^1 &=& \\boxed{720} \\end{array} $$.", "answer": "720"} {% for item in chat_history %} -user: +# user: {{item.inputs.question}} -assistant: +# assistant: {{item.outputs.answer}} {% endfor %} -user: +# user: {{question}} \ No newline at end of file diff --git a/examples/flows/chat/chat-math-variant/chat_variant_2.jinja2 b/examples/flows/chat/chat-math-variant/chat_variant_2.jinja2 index 35c65a9624f..1a5c5d4f242 100644 --- a/examples/flows/chat/chat-math-variant/chat_variant_2.jinja2 +++ b/examples/flows/chat/chat-math-variant/chat_variant_2.jinja2 @@ -1,39 +1,39 @@ -system: +# system: You are an assistant to calculate the answer to the provided math problems. Please think step by step. Return the final numerical answer only and any accompanying reasoning or explanation seperately as json format. -user: +# user: A jar contains two red marbles, three green marbles, ten white marbles and no other marbles. Two marbles are randomly drawn from this jar without replacement. What is the probability that these two marbles drawn will both be red? Express your answer as a common fraction. -assistant: +# assistant: {Chain of thought: "The total number of marbles is $2+3+10=15$. The probability that the first marble drawn will be red is $2/15$. Then, there will be one red left, out of 14. Therefore, the probability of drawing out two red marbles will be: $$\\frac{2}{15}\\cdot\\frac{1}{14}=\\boxed{\\frac{1}{105}}$$.", "answer": "1/105"} -user: +# user: Find the greatest common divisor of $7!$ and $(5!)^2.$ -assistant: +# assistant: {"Chain of thought": "$$ \\begin{array} 7! &=& 7 \\cdot 6 \\cdot 5 \\cdot 4 \\cdot 3 \\cdot 2 \\cdot 1 &=& 2^4 \\cdot 3^2 \\cdot 5^1 \\cdot 7^1 \\\\ (5!)^2 &=& (5 \\cdot 4 \\cdot 3 \\cdot 2 \\cdot 1)^2 &=& 2^6 \\cdot 3^2 \\cdot 5^2 \\\\ \\text{gcd}(7!, (5!)^2) &=& 2^4 \\cdot 3^2 \\cdot 5^1 &=& \\boxed{720} \\end{array} $$.", "answer": "720"} -user: +# user: A club has 10 members, 5 boys and 5 girls. Two of the members are chosen at random. What is the probability that they are both girls? -assistant: +# assistant: {"Chain of thought": "There are $\\binomial{10}{2} = 45$ ways to choose two members of the group, and there are $\\binomial{5}{2} = 10$ ways to choose two girls. Therefore, the probability that two members chosen at random are girls is $\\dfrac{10}{45} = \\boxed{\\dfrac{2}{9}}$.", "answer": "2/9"} -user: +# user: Allison, Brian and Noah each have a 6-sided cube. All of the faces on Allison's cube have a 5. The faces on Brian's cube are numbered 1, 2, 3, 4, 5 and 6. Three of the faces on Noah's cube have a 2 and three of the faces have a 6. All three cubes are rolled. What is the probability that Allison's roll is greater than each of Brian's and Noah's? Express your answer as a common fraction. -assistant: +# assistant: {"Chain of thought": "Since Allison will always roll a 5, we must calculate the probability that both Brian and Noah roll a 4 or lower. The probability of Brian rolling a 4 or lower is $\\frac{4}{6} = \\frac{2}{3}$ since Brian has a standard die. Noah, however, has a $\\frac{3}{6} = \\frac{1}{2}$ probability of rolling a 4 or lower, since the only way he can do so is by rolling one of his 3 sides that have a 2. So, the probability of both of these independent events occurring is $\\frac{2}{3} \\cdot \\frac{1}{2} = \\boxed{\\frac{1}{3}}$.", "answer": "1/3"} -user: +# user: Compute $\\density binomial{50}{2}$. -assistant: +# assistant: {"Chain of thought": "$\\density binomial{50}{2} = \\dfrac{50!}{2!48!}=\\dfrac{50\\times 49}{2\\times 1}=\\boxed{1225}.$", "answer": "1225"} -user: +# user: The set $S = \\{1, 2, 3, \\ldots , 49, 50\\}$ contains the first $50$ positive integers. After the multiples of 2 and the multiples of 3 are removed, how many integers remain in the set $S$? -assistant: +# assistant: {"Chain of thought": "The set $S$ contains $25$ multiples of 2 (that is, even numbers). When these are removed, the set $S$ is left with only the odd integers from 1 to 49. At this point, there are $50-25=25$ integers in $S$. We still need to remove the multiples of 3 from $S$.\n\nSince $S$ only contains odd integers after the multiples of 2 are removed, we must remove the odd multiples of 3 between 1 and 49. These are 3, 9, 15, 21, 27, 33, 39, 45, of which there are 8. Therefore, the number of integers remaining in the set $S$ is $25 - 8 = \\boxed{17}$.", "answer": "17"} {% for item in chat_history %} -user: +# user: {{item.inputs.question}} -assistant: +# assistant: {{item.outputs.answer}} {% endfor %} -user: +# user: {{question}} diff --git a/examples/flows/chat/chat-with-wikipedia/README.md b/examples/flows/chat/chat-with-wikipedia/README.md index 418d9142292..d721e1cc216 100644 --- a/examples/flows/chat/chat-with-wikipedia/README.md +++ b/examples/flows/chat/chat-with-wikipedia/README.md @@ -17,21 +17,21 @@ pip install -r requirements.txt In this flow, you will learn - how to compose a chat flow. -- prompt template format of LLM tool chat api. Message delimiter is a separate line containing role name and colon: "system:", "user:", "assistant:". +- prompt template format of LLM tool chat api. Message delimiter is a separate line containing "#", role name and colon: "# system:", "# user:", "# assistant:". See OpenAI Chat for more about message role. ```jinja - system: + # system: You are a chatbot having a conversation with a human. - user: + # user: {{question}} ``` - how to consume chat history in prompt. ```jinja {% for item in chat_history %} - user: + # user: {{item.inputs.question}} - assistant: + # assistant: {{item.outputs.answer}} {% endfor %} ``` @@ -50,7 +50,7 @@ pf connection create --file ../../../connections/azure_openai.yml --set api_key= Note in [flow.dag.yaml](flow.dag.yaml) we are using connection named `open_ai_connection`. ```bash -# show registered connection +# show registered connection pf connection show --name open_ai_connection ``` @@ -58,7 +58,7 @@ pf connection show --name open_ai_connection ```bash # run chat flow with default question in flow.dag.yaml -pf flow test --flow . +pf flow test --flow . # run chat flow with new question pf flow test --flow . --inputs question="What's Azure Machine Learning?" diff --git a/examples/flows/chat/chat-with-wikipedia/augmented_chat.jinja2 b/examples/flows/chat/chat-with-wikipedia/augmented_chat.jinja2 index 0719d1fa09a..71e7377a348 100644 --- a/examples/flows/chat/chat-with-wikipedia/augmented_chat.jinja2 +++ b/examples/flows/chat/chat-with-wikipedia/augmented_chat.jinja2 @@ -1,4 +1,4 @@ -system: +# system: You are a chatbot having a conversation with a human. Given the following extracted parts of a long document and a question, create a final answer with references ("SOURCES"). If you don't know the answer, just say that you don't know. Don't try to make up an answer. @@ -7,11 +7,11 @@ ALWAYS return a "SOURCES" part in your answer. {{contexts}} {% for item in chat_history %} -user: +# user: {{item.inputs.question}} -assistant: +# assistant: {{item.outputs.answer}} {% endfor %} -user: +# user: {{question}} diff --git a/examples/flows/chat/chat-with-wikipedia/extract_query_from_question.jinja2 b/examples/flows/chat/chat-with-wikipedia/extract_query_from_question.jinja2 index 6b08923ddb8..f01976185c4 100644 --- a/examples/flows/chat/chat-with-wikipedia/extract_query_from_question.jinja2 +++ b/examples/flows/chat/chat-with-wikipedia/extract_query_from_question.jinja2 @@ -1,11 +1,11 @@ -system: +# system: You are an AI assistant reading the transcript of a conversation between an AI and a human. Given an input question and conversation history, infer user real intent. The conversation history is provided just in case of a context (e.g. "What is this?" where "this" is defined in previous conversation). Return the output as query used for next round user message. -user: +# user: EXAMPLE Conversation history: Human: I want to find the best restaurants nearby, could you recommend some? diff --git a/examples/flows/chat/use_functions_with_chat_models/use_functions_with_chat_models.jinja2 b/examples/flows/chat/use_functions_with_chat_models/use_functions_with_chat_models.jinja2 index 05b4b43a2ac..86f8d8a79ec 100644 --- a/examples/flows/chat/use_functions_with_chat_models/use_functions_with_chat_models.jinja2 +++ b/examples/flows/chat/use_functions_with_chat_models/use_functions_with_chat_models.jinja2 @@ -1,27 +1,27 @@ -system: +# system: Don't make assumptions about what values to plug into functions. Ask for clarification if a user request is ambiguous. {% for item in chat_history %} -user: +# user: {{item.inputs.question}} {% if 'function_call' in item.outputs.llm_output %} -assistant: +# assistant: Function generation requested, function = {{item.outputs.llm_output.function_call.name}}, args = {{item.outputs.llm_output.function_call.arguments}} -function: -name: +# function: +## name: {{item.outputs.llm_output.function_call.name}} -content: +## content: {{item.outputs.answer}} {% else %} -assistant: +# assistant: {{item.outputs.llm_output}}}} {% endif %}} {% endfor %} -user: +# user: {{question}} \ No newline at end of file diff --git a/examples/flows/evaluation/eval-groundedness/gpt_groundedness.md b/examples/flows/evaluation/eval-groundedness/gpt_groundedness.md index b72f45b0e46..ff730f346ce 100644 --- a/examples/flows/evaluation/eval-groundedness/gpt_groundedness.md +++ b/examples/flows/evaluation/eval-groundedness/gpt_groundedness.md @@ -1,4 +1,4 @@ -user: +# user: # Instructions * There are many chatbots that can answer users questions based on the context given from different sources like search results, or snippets from books/papers. They try to understand users's question and then get context by either performing search from search engines, databases or books/papers for relevant content. Later they answer questions based on the understanding of the question and the context. @@ -7,7 +7,7 @@ user: * Score 1 if the answer is stating things that none of them present in the given context * If there're multiple facts in the answer and some of them present in the given context while some of them not, score between 1 to 10 based on fraction of information supported by context * Just respond with the score, nothing else. - + # Real work ## Question diff --git a/examples/flows/evaluation/eval-perceived-intelligence/gpt_perceived_intelligence.md b/examples/flows/evaluation/eval-perceived-intelligence/gpt_perceived_intelligence.md index d9f7c836ab0..8b1e73e4091 100644 --- a/examples/flows/evaluation/eval-perceived-intelligence/gpt_perceived_intelligence.md +++ b/examples/flows/evaluation/eval-perceived-intelligence/gpt_perceived_intelligence.md @@ -1,4 +1,4 @@ -user: +# user: # Instructions * There are many chatbots that can answer users questions based on the context given from different sources like search results, or snippets from books/papers. They try to understand users's question and then get context by either performing search from search engines, databases or books/papers for relevant content. Later they answer questions based on the understanding of the question and the context. @@ -8,7 +8,7 @@ user: * Score 1 means the answer is poor for perceived intelligence * Score 5 means the answer is normal for perceived intelligence * Just respond with the score, nothing else. - + # Real work ## Question diff --git a/examples/flows/evaluation/eval-qna-non-rag/gpt_coherence_prompt.jinja2 b/examples/flows/evaluation/eval-qna-non-rag/gpt_coherence_prompt.jinja2 index be2ddcc43fd..92b3894e857 100644 --- a/examples/flows/evaluation/eval-qna-non-rag/gpt_coherence_prompt.jinja2 +++ b/examples/flows/evaluation/eval-qna-non-rag/gpt_coherence_prompt.jinja2 @@ -1,7 +1,7 @@ -system: +# system: You are an AI assistant. You will be given the definition of an evaluation metric for assessing the quality of an answer in a question-answering task. Your job is to compute an accurate evaluation score using the provided evaluation metric. -user: +# user: Coherence of an answer is measured by how well all the sentences fit together and sound naturally as a whole. Consider the overall quality of the answer when evaluating coherence. Given the question and answer, score the coherence of answer between one to five stars using the following rating scale: One star: the answer completely lacks coherence Two stars: the answer mostly lacks coherence diff --git a/examples/flows/evaluation/eval-qna-non-rag/gpt_fluency_prompt.jinja2 b/examples/flows/evaluation/eval-qna-non-rag/gpt_fluency_prompt.jinja2 index 5d08093f9d6..3fb8df41d52 100644 --- a/examples/flows/evaluation/eval-qna-non-rag/gpt_fluency_prompt.jinja2 +++ b/examples/flows/evaluation/eval-qna-non-rag/gpt_fluency_prompt.jinja2 @@ -1,6 +1,6 @@ -system: +# system: You are an AI assistant. You will be given the definition of an evaluation metric for assessing the quality of an answer in a question-answering task. Your job is to compute an accurate evaluation score using the provided evaluation metric. -user: +# user: Fluency measures the quality of individual sentences in the answer, and whether they are well-written and grammatically correct. Consider the quality of individual sentences when evaluating fluency. Given the question and answer, score the fluency of the answer between one to five stars using the following rating scale: One star: the answer completely lacks fluency Two stars: the answer mostly lacks fluency diff --git a/examples/flows/evaluation/eval-qna-non-rag/gpt_groundedness_prompt.jinja2 b/examples/flows/evaluation/eval-qna-non-rag/gpt_groundedness_prompt.jinja2 index 0122ede248d..ae367ff6c61 100644 --- a/examples/flows/evaluation/eval-qna-non-rag/gpt_groundedness_prompt.jinja2 +++ b/examples/flows/evaluation/eval-qna-non-rag/gpt_groundedness_prompt.jinja2 @@ -1,6 +1,6 @@ -system: +# system: You are an AI assistant. You will be given the definition of an evaluation metric for assessing the quality of an answer in a question-answering task. Your job is to compute an accurate evaluation score using the provided evaluation metric. -user: +# user: You will be presented with a CONTEXT and an ANSWER about that CONTEXT. You need to decide whether the ANSWER is entailed by the CONTEXT by choosing one of the following rating: 1. 5: The ANSWER follows logically from the information contained in the CONTEXT. 2. 1: The ANSWER is logically false from the information contained in the CONTEXT. diff --git a/examples/flows/evaluation/eval-qna-non-rag/gpt_relevance_prompt.jinja2 b/examples/flows/evaluation/eval-qna-non-rag/gpt_relevance_prompt.jinja2 index 7d3f874cfc6..ffdc56effa0 100644 --- a/examples/flows/evaluation/eval-qna-non-rag/gpt_relevance_prompt.jinja2 +++ b/examples/flows/evaluation/eval-qna-non-rag/gpt_relevance_prompt.jinja2 @@ -1,6 +1,6 @@ -system: +# system: You are an AI assistant. You will be given the definition of an evaluation metric for assessing the quality of an answer in a question-answering task. Your job is to compute an accurate evaluation score using the provided evaluation metric. -user: +# user: Relevance measures how well the answer addresses the main aspects of the question, based on the context. Consider whether all and only the important aspects are contained in the answer when evaluating relevance. Given the context and question, score the relevance of the answer between one to five stars using the following rating scale: One star: the answer completely lacks relevance Two stars: the answer mostly lacks relevance diff --git a/examples/flows/evaluation/eval-qna-non-rag/gpt_similarity_prompt.jinja2 b/examples/flows/evaluation/eval-qna-non-rag/gpt_similarity_prompt.jinja2 index a2f4059a3de..3ee08d310db 100644 --- a/examples/flows/evaluation/eval-qna-non-rag/gpt_similarity_prompt.jinja2 +++ b/examples/flows/evaluation/eval-qna-non-rag/gpt_similarity_prompt.jinja2 @@ -1,6 +1,6 @@ -system: +# system: You are an AI assistant. You will be given the definition of an evaluation metric for assessing the quality of an answer in a question-answering task. Your job is to compute an accurate evaluation score using the provided evaluation metric. -user: +# user: Equivalence, as a metric, measures the similarity between the predicted answer and the correct answer. If the information and content in the predicted answer is similar or equivalent to the correct answer, then the value of the Equivalence metric should be high, else it should be low. Given the question, correct answer, and predicted answer, determine the value of Equivalence metric using the following rating scale: One star: the predicted answer is not at all similar to the correct answer Two stars: the predicted answer is mostly not similar to the correct answer diff --git a/examples/flows/evaluation/eval-qna-rag-metrics/rag_generation_prompt.jinja2 b/examples/flows/evaluation/eval-qna-rag-metrics/rag_generation_prompt.jinja2 index 4c332a332cc..e876cf6891c 100644 --- a/examples/flows/evaluation/eval-qna-rag-metrics/rag_generation_prompt.jinja2 +++ b/examples/flows/evaluation/eval-qna-rag-metrics/rag_generation_prompt.jinja2 @@ -1,4 +1,4 @@ -system: +# system: You will be provided a question, a conversation history, fetched documents related to the question and a response to the question in the domain. You task is to evaluate the quality of the provided response by following the steps below: - Understand the context of the question based on the conversation history. - Generate a reference answer that is only based on the conversation history, question, and fetched documents. Don't generate the reference answer based on your own knowledge. @@ -10,7 +10,7 @@ You will be provided a question, a conversation history, fetched documents relat - 1 - Completely Irrelevant: The provided response should never be used for answering this question based on the reference answer and conversation history. - You need to rate the provided response to be 5, if the reference answer can not be generated since no relevant documents were retrieved. - You need to first provide a scoring reason for the evaluation according to the above criteria, and then provide a score for the quality of the provided response. -- You need to translate the provided response into English if it's in another language. +- You need to translate the provided response into English if it's in another language. - Your final response must include both the reference answer and the evaluation result. The evaluation result should be written in English. Your response should be in the following format: ``` [assistant](#evaluation result) @@ -26,7 +26,7 @@ Quality score: [insert score here]/5 ``` - Your answer must end with <|im_end|>. -user: +# user: #conversation history #question @@ -36,6 +36,6 @@ user: #provided response {{answer}} -assistant: +# assistant: #evaluation result """ \ No newline at end of file diff --git a/examples/flows/evaluation/eval-qna-rag-metrics/rag_groundedness_prompt.jinja2 b/examples/flows/evaluation/eval-qna-rag-metrics/rag_groundedness_prompt.jinja2 index 34ac60a92c5..a0c6ce3a9f2 100644 --- a/examples/flows/evaluation/eval-qna-rag-metrics/rag_groundedness_prompt.jinja2 +++ b/examples/flows/evaluation/eval-qna-rag-metrics/rag_groundedness_prompt.jinja2 @@ -1,15 +1,15 @@ -system: +# system: You are a helpful assistant. -user: +# user: Your task is to check and rate if factual information in chatbot's reply is all grounded to retrieved documents. -You will be given a question, chatbot's response to the question, a chat history between this chatbot and human, and a list of retrieved documents in json format. +You will be given a question, chatbot's response to the question, a chat history between this chatbot and human, and a list of retrieved documents in json format. The chatbot must base its response exclusively on factual information extracted from the retrieved documents, utilizing paraphrasing, summarization, or inference techniques. When the chatbot responds to information that is not mentioned in or cannot be inferred from the retrieved documents, we refer to it as a grounded issue. To rate the groundness of chat response, follow the below steps: 1. Review the chat history to understand better about the question and chat response -2. Look for all the factual information in chatbot's response -3. Compare the factual information in chatbot's response with the retrieved documents. Check if there are any facts that are not in the retrieved documents at all,or that contradict or distort the facts in the retrieved documents. If there are, write them down. If there are none, leave it blank. Note that some facts may be implied or suggested by the retrieved documents, but not explicitly stated. In that case, use your best judgment to decide if the fact is grounded or not. - For example, if the retrieved documents mention that a film was nominated for 12 awards, and chatbot's reply states the same, you can consider that fact as grounded, as it is directly taken from the retrieved documents. +2. Look for all the factual information in chatbot's response +3. Compare the factual information in chatbot's response with the retrieved documents. Check if there are any facts that are not in the retrieved documents at all,or that contradict or distort the facts in the retrieved documents. If there are, write them down. If there are none, leave it blank. Note that some facts may be implied or suggested by the retrieved documents, but not explicitly stated. In that case, use your best judgment to decide if the fact is grounded or not. + For example, if the retrieved documents mention that a film was nominated for 12 awards, and chatbot's reply states the same, you can consider that fact as grounded, as it is directly taken from the retrieved documents. However, if the retrieved documents do not mention the film won any awards at all, and chatbot reply states that the film won some awards, you should consider that fact as not grounded. 4. Rate how well grounded the chatbot response is on a Likert scale from 1 to 5 judging if chatbot response has no ungrounded facts. (higher better) 5: agree strongly @@ -17,8 +17,8 @@ To rate the groundness of chat response, follow the below steps: 3: neither agree or disagree 2: disagree 1: disagree strongly - If the chatbot response used information from outside sources, or made claims that are not backed up by the retrieved documents, give it a low score. -5. Your answer should follow the format: + If the chatbot response used information from outside sources, or made claims that are not backed up by the retrieved documents, give it a low score. +5. Your answer should follow the format: [insert reasoning here] Your answer must end with . diff --git a/examples/flows/evaluation/eval-qna-rag-metrics/rag_retrieval_prompt.jinja2 b/examples/flows/evaluation/eval-qna-rag-metrics/rag_retrieval_prompt.jinja2 index 640b42e407c..72c8ef52170 100644 --- a/examples/flows/evaluation/eval-qna-rag-metrics/rag_retrieval_prompt.jinja2 +++ b/examples/flows/evaluation/eval-qna-rag-metrics/rag_retrieval_prompt.jinja2 @@ -1,16 +1,16 @@ -system: +# system: You are a helpful assistant. -user: +# user: A chat history between user and bot is shown below -A list of documents is shown below in json format, and each document has one unique id. +A list of documents is shown below in json format, and each document has one unique id. These listed documents are used as contex to answer the given question. -The task is to score the relevance between the documents and the potential answer to the given question in the range of 1 to 5. +The task is to score the relevance between the documents and the potential answer to the given question in the range of 1 to 5. 1 means none of the documents is relevant to the question at all. 5 means either one of the document or combination of a few documents is ideal for answering the given question. Think through step by step: - Summarize each given document first -- Determine the underlying intent of the given question, when the question is ambiguous, refer to the given chat history -- Measure how suitable each document to the given question, list the document id and the corresponding relevance score. -- Summarize the overall relevance of given list of documents to the given question after # Overall Reason, note that the answer to the question can solely from single document or a combination of multiple documents. +- Determine the underlying intent of the given question, when the question is ambiguous, refer to the given chat history +- Measure how suitable each document to the given question, list the document id and the corresponding relevance score. +- Summarize the overall relevance of given list of documents to the given question after # Overall Reason, note that the answer to the question can solely from single document or a combination of multiple documents. - Finally, output "# Result" followed by a score from 1 to 5. # Question diff --git a/examples/flows/integrations/azure-ai-language/multi_intent_conversational_language_understanding/chat.jinja2 b/examples/flows/integrations/azure-ai-language/multi_intent_conversational_language_understanding/chat.jinja2 index 88f82843980..449f8ddc352 100644 --- a/examples/flows/integrations/azure-ai-language/multi_intent_conversational_language_understanding/chat.jinja2 +++ b/examples/flows/integrations/azure-ai-language/multi_intent_conversational_language_understanding/chat.jinja2 @@ -1,13 +1,13 @@ -system: +# system: Your task is to break down compound sentences into separate sentences. For simple sentences just repeat the user input. Remember to use a json array for the output. -user: +# user: The output must be a json array. Here are a few examples: -user input: Play Eric Clapton and turn down the volume. +user input: Play Eric Clapton and turn down the volume. OUTPUT: ["Play Eric Clapton.","Turn down the volume."] user input: Play some Pink Floyd diff --git a/examples/flows/standard/basic-with-builtin-llm/hello.jinja2 b/examples/flows/standard/basic-with-builtin-llm/hello.jinja2 index e697120d02f..1b80ed3fb6f 100644 --- a/examples/flows/standard/basic-with-builtin-llm/hello.jinja2 +++ b/examples/flows/standard/basic-with-builtin-llm/hello.jinja2 @@ -1,5 +1,5 @@ -system: +# system: You are a assistant which can write code. Response should only contain code. -user: +# user: Write a simple {{text}} program that displays the greeting message. \ No newline at end of file diff --git a/examples/flows/standard/conditional-flow-for-switch/classify_with_llm.jinja2 b/examples/flows/standard/conditional-flow-for-switch/classify_with_llm.jinja2 index 6bcf164794f..dbbaf049b3d 100644 --- a/examples/flows/standard/conditional-flow-for-switch/classify_with_llm.jinja2 +++ b/examples/flows/standard/conditional-flow-for-switch/classify_with_llm.jinja2 @@ -1,4 +1,4 @@ -system: +# system: There is a search bar in the mall APP and users can enter any query in the search bar. The user may want to search for orders, view product information, or seek recommended products. @@ -7,5 +7,5 @@ Therefore, please classify user intentions into the following three types accord Please note that only the above three situations can be returned, and try not to include other return values. -user: +# user: The user's query is {{query}} \ No newline at end of file diff --git a/examples/flows/standard/maths-to-code/ask_llm.jinja2 b/examples/flows/standard/maths-to-code/ask_llm.jinja2 index 8fea4ce5875..d6c328f3ef2 100644 --- a/examples/flows/standard/maths-to-code/ask_llm.jinja2 +++ b/examples/flows/standard/maths-to-code/ask_llm.jinja2 @@ -1,4 +1,4 @@ -system: +# system: I want you to act as a Math expert specializing in Algebra, Geometry, and Calculus. Given the question, develop python code to model the user's question. The python code will print the result at the end. Please generate executable python code, your reply will be in JSON format, something like: @@ -6,7 +6,7 @@ Please generate executable python code, your reply will be in JSON format, somet "code": "print(1+1)" } -user: +# user: This a set of examples including question and the final answer: {% for ex in examples %} QUESTION: {{ ex.question }} diff --git a/examples/flows/standard/maths-to-code/prompt_gen.jinja2 b/examples/flows/standard/maths-to-code/prompt_gen.jinja2 index b676bc0818b..48d9795ee46 100644 --- a/examples/flows/standard/maths-to-code/prompt_gen.jinja2 +++ b/examples/flows/standard/maths-to-code/prompt_gen.jinja2 @@ -1,4 +1,4 @@ -system: +# system: I want you to act as a Math expert specializing in Algebra, Geometry, and Calculus. Given the question, develop python code to model the user's question. The python code will print the result at the end. Please generate executable python code, your reply will be in JSON format, something like: @@ -6,7 +6,7 @@ Please generate executable python code, your reply will be in JSON format, somet "code": "print(1+1)" } -user: +# user: This a set of examples including question and the final answer: {% for ex in examples %} QUESTION: {{ ex.question }} diff --git a/examples/flows/standard/named-entity-recognition/NER_LLM.jinja2 b/examples/flows/standard/named-entity-recognition/NER_LLM.jinja2 index a58a23aad51..714f4a63bd9 100644 --- a/examples/flows/standard/named-entity-recognition/NER_LLM.jinja2 +++ b/examples/flows/standard/named-entity-recognition/NER_LLM.jinja2 @@ -1,10 +1,10 @@ -system: +# system: Your task is to find entities of certain type from the given text content. If there're multiple entities, please return them all with comma separated, e.g. "entity1, entity2, entity3". You should only return the entity list, nothing else. If there's no such entity, please return "None". -user: +# user: Entity type: {{entity_type}} Text content: {{text}} Entities: \ No newline at end of file diff --git a/examples/flows/standard/web-classification/classify_with_llm.jinja2 b/examples/flows/standard/web-classification/classify_with_llm.jinja2 index 6d7c3da4005..975f3ff67d5 100644 --- a/examples/flows/standard/web-classification/classify_with_llm.jinja2 +++ b/examples/flows/standard/web-classification/classify_with_llm.jinja2 @@ -1,9 +1,9 @@ -system: +# system: Your task is to classify a given url into one of the following categories: Movie, App, Academic, Channel, Profile, PDF or None based on the text content information. The classification will be based on the url, the webpage text content summary, or both. -user: +# user: The selection range of the value of "category" must be within "Movie", "App", "Academic", "Channel", "Profile", "PDF" and "None". The selection range of the value of "evidence" must be within "Url", "Text content", and "Both". Here are a few examples: diff --git a/examples/flows/standard/web-classification/summarize_text_content.jinja2 b/examples/flows/standard/web-classification/summarize_text_content.jinja2 index 81078019db8..3352c4e8789 100644 --- a/examples/flows/standard/web-classification/summarize_text_content.jinja2 +++ b/examples/flows/standard/web-classification/summarize_text_content.jinja2 @@ -1,7 +1,7 @@ -system: +# system: Please summarize the following text in one paragraph. 100 words. Do not add any information that is not in the text. -user: +# user: Text: {{text}} -Summary: \ No newline at end of file +Summary: \ No newline at end of file diff --git a/examples/flows/standard/web-classification/summarize_text_content__variant_1.jinja2 b/examples/flows/standard/web-classification/summarize_text_content__variant_1.jinja2 index 5fb816079d5..09d0023df61 100644 --- a/examples/flows/standard/web-classification/summarize_text_content__variant_1.jinja2 +++ b/examples/flows/standard/web-classification/summarize_text_content__variant_1.jinja2 @@ -1,7 +1,7 @@ -system: +# system: Please summarize some keywords of this paragraph and have some details of each keywords. Do not add any information that is not in the text. -user: +# user: Text: {{text}} -Summary: \ No newline at end of file +Summary: \ No newline at end of file diff --git a/examples/tutorials/flow-fine-tuning-evaluation/promptflow-quality-improvement.md b/examples/tutorials/flow-fine-tuning-evaluation/promptflow-quality-improvement.md index a2119e9da00..fd6a893c1bc 100644 --- a/examples/tutorials/flow-fine-tuning-evaluation/promptflow-quality-improvement.md +++ b/examples/tutorials/flow-fine-tuning-evaluation/promptflow-quality-improvement.md @@ -62,18 +62,18 @@ cd ../../flows/chat/chat-basic/ To enable your chatbot flow to solve math problems, you need to instruct the LLM about the task and target in the prompt. Open `chat.jinja2`, update the prompt as below: ```jinja -system: +# system: You are an assistant to calculate the answer to the provided math problems. Please return the final numerical answer only, without any accompanying reasoning or explanation. {% for item in chat_history %} -user: +# user: {{item.inputs.question}} -assistant: +# assistant: {{item.outputs.answer}} {% endfor %} -user: +# user: {{question}} ``` @@ -304,17 +304,17 @@ We leverage the Chain of Thought (CoT) prompt engineering method to adjust the p Variant_1: 2 CoT examples ```jinja -system: +# system: You are an assistant to calculate the answer to the provided math problems. Please think step by step. Return the final numerical answer only and any accompanying reasoning or explanation seperately as json format.
-user: +# user: A jar contains two red marbles, three green marbles, ten white marbles and no other marbles. Two marbles are randomly drawn from this jar without replacement. What is the probability that these two marbles drawn will both be red? Express your answer as a common fraction. -assistant: +# assistant: {Chain of thought: "The total number of marbles is $2+3+10=15$. The probability that the first marble drawn will be red is $2/15$. Then, there will be one red left, out of 14. Therefore, the probability of drawing out two red marbles will be: $$\\frac{2}{15}\\cdot\\frac{1}{14}=\\boxed{\\frac{1}{105}}$$.", "answer": "1/105"} -user: +# user: Find the greatest common divisor of $7!$ and $(5!)^2.$ -assistant: +# assistant: {"Chain of thought": "$$ \\begin{array} 7! &=& 7 \\cdot 6 \\cdot 5 \\cdot 4 \\cdot 3 \\cdot 2 \\cdot 1 &=& 2^4 \\cdot 3^2 \\cdot 5^1 \\cdot 7^1 \\\\ (5!)^2 &=& (5 \\cdot 4 \\cdot 3 \\cdot 2 \\cdot 1)^2 &=& 2^6 \\cdot 3^2 \\cdot 5^2 \\\\ \\text{gcd}(7!, (5!)^2) &=& 2^4 \\cdot 3^2 \\cdot 5^1 &=& \\boxed{720} \\end{array} $$.", "answer": "720"} ``` @@ -323,34 +323,34 @@ assistant: Variant_2 : 6 CoT examples. ```jinja -system: +# system: You are an assistant to calculate the answer to the provided math problems. Please think step by step. Return the final numerical answer only and any accompanying reasoning or explanation seperately as json format. -user: +# user: A jar contains two red marbles, three green marbles, ten white marbles and no other marbles. Two marbles are randomly drawn from this jar without replacement. What is the probability that these two marbles drawn will both be red? Express your answer as a common fraction. -assistant: +# assistant: {Chain of thought: "The total number of marbles is $2+3+10=15$. The probability that the first marble drawn will be red is $2/15$. Then, there will be one red left, out of 14. Therefore, the probability of drawing out two red marbles will be: $$\\frac{2}{15}\\cdot\\frac{1}{14}=\\boxed{\\frac{1}{105}}$$.", "answer": "1/105"} -user: +# user: Find the greatest common divisor of $7!$ and $(5!)^2.$ -assistant: +# assistant: {"Chain of thought": "$$ \\begin{array} 7! &=& 7 \\cdot 6 \\cdot 5 \\cdot 4 \\cdot 3 \\cdot 2 \\cdot 1 &=& 2^4 \\cdot 3^2 \\cdot 5^1 \\cdot 7^1 \\\\ (5!)^2 &=& (5 \\cdot 4 \\cdot 3 \\cdot 2 \\cdot 1)^2 &=& 2^6 \\cdot 3^2 \\cdot 5^2 \\\\ \\text{gcd}(7!, (5!)^2) &=& 2^4 \\cdot 3^2 \\cdot 5^1 &=& \\boxed{720} \\end{array} $$.", "answer": "720"} -user: +# user: A club has 10 members, 5 boys and 5 girls. Two of the members are chosen at random. What is the probability that they are both girls? -assistant: +# assistant: {"Chain of thought": "There are $\\binomial{10}{2} = 45$ ways to choose two members of the group, and there are $\\binomial{5}{2} = 10$ ways to choose two girls. Therefore, the probability that two members chosen at random are girls is $\\dfrac{10}{45} = \\boxed{\\dfrac{2}{9}}$.", "answer": "2/9"} -user: +# user: Allison, Brian and Noah each have a 6-sided cube. All of the faces on Allison's cube have a 5. The faces on Brian's cube are numbered 1, 2, 3, 4, 5 and 6. Three of the faces on Noah's cube have a 2 and three of the faces have a 6. All three cubes are rolled. What is the probability that Allison's roll is greater than each of Brian's and Noah's? Express your answer as a common fraction. -assistant: +# assistant: {"Chain of thought": "Since Allison will always roll a 5, we must calculate the probability that both Brian and Noah roll a 4 or lower. The probability of Brian rolling a 4 or lower is $\\frac{4}{6} = \\frac{2}{3}$ since Brian has a standard die. Noah, however, has a $\\frac{3}{6} = \\frac{1}{2}$ probability of rolling a 4 or lower, since the only way he can do so is by rolling one of his 3 sides that have a 2. So, the probability of both of these independent events occurring is $\\frac{2}{3} \\cdot \\frac{1}{2} = \\boxed{\\frac{1}{3}}$.", "answer": "1/3"} -user: +# user: Compute $\\density binomial{50}{2}$. -assistant: +# assistant: {"Chain of thought": "$\\density binomial{50}{2} = \\dfrac{50!}{2!48!}=\\dfrac{50\\times 49}{2\\times 1}=\\boxed{1225}.$", "answer": "1225"} -user: +# user: The set $S = \\{1, 2, 3, \\ldots , 49, 50\\}$ contains the first $50$ positive integers. After the multiples of 2 and the multiples of 3 are removed, how many integers remain in the set $S$? -assistant: +# assistant: {"Chain of thought": "The set $S$ contains $25$ multiples of 2 (that is, even numbers). When these are removed, the set $S$ is left with only the odd integers from 1 to 49. At this point, there are $50-25=25$ integers in $S$. We still need to remove the multiples of 3 from $S$.\n\nSince $S$ only contains odd integers after the multiples of 2 are removed, we must remove the odd multiples of 3 between 1 and 49. These are 3, 9, 15, 21, 27, 33, 39, 45, of which there are 8. Therefore, the number of integers remaining in the set $S$ is $25 - 8 = \\boxed{17}$.", "answer": "17"} ``` From e79b9df5a33954b7249ea9809d542acfc1d58e65 Mon Sep 17 00:00:00 2001 From: Xiaopeng Wang Date: Tue, 19 Mar 2024 11:06:15 +0800 Subject: [PATCH 081/204] Update MANIFEST.in to include serving swagger template resource (#2390) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [X] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- src/promptflow/MANIFEST.in | 1 + 1 file changed, 1 insertion(+) diff --git a/src/promptflow/MANIFEST.in b/src/promptflow/MANIFEST.in index 8b9985714a2..3eeecf6c71c 100644 --- a/src/promptflow/MANIFEST.in +++ b/src/promptflow/MANIFEST.in @@ -1,5 +1,6 @@ include promptflow/azure/resources/* include promptflow/core/_serving/static/* +include promptflow/core/_serving/resources/* include promptflow/_sdk/_service/static/* include promptflow/_sdk/_service/static/assets/* recursive-include promptflow/_cli/data * From f519b67d291c421fe036006c2156e189c934b78c Mon Sep 17 00:00:00 2001 From: Hhhilulu <115983968+Hhhilulu@users.noreply.github.com> Date: Tue, 19 Mar 2024 11:57:08 +0800 Subject: [PATCH 082/204] [ProcesPool] Fix start flow run param (#2391) # Description - Fix the start_flow_run parameter. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .../promptflow/executor/_line_execution_process_pool.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/promptflow/promptflow/executor/_line_execution_process_pool.py b/src/promptflow/promptflow/executor/_line_execution_process_pool.py index 2d8922611bf..f7b289189c0 100644 --- a/src/promptflow/promptflow/executor/_line_execution_process_pool.py +++ b/src/promptflow/promptflow/executor/_line_execution_process_pool.py @@ -759,7 +759,7 @@ def _exec_line( run_tracker = RunTracker(executor._storage) else: run_tracker = executor._run_tracker - run_tracker.start_flow_run(flow_id, run_id, line_run_id, run_id) + run_tracker.start_flow_run(flow_id, run_id, line_run_id, run_id, index=index) run_info = run_tracker.end_run(f"{run_id}_{index}", ex=e) output_queue.put(run_info) result = LineResult( From 7a3b2f58fe6b8665231f8ce732bda880b60b6ee1 Mon Sep 17 00:00:00 2001 From: Brynn Yin <24237253+brynn-code@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:46:38 +0800 Subject: [PATCH 083/204] Add back init to _sdk/_serving folder (#2399) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. ![image](https://github.com/microsoft/promptflow/assets/24237253/498dafb9-07e1-4a7d-b012-9dcea2009b91) # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. Signed-off-by: Brynn Yin --- src/promptflow/promptflow/_sdk/_serving/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/promptflow/promptflow/_sdk/_serving/__init__.py diff --git a/src/promptflow/promptflow/_sdk/_serving/__init__.py b/src/promptflow/promptflow/_sdk/_serving/__init__.py new file mode 100644 index 00000000000..29a4fcd3278 --- /dev/null +++ b/src/promptflow/promptflow/_sdk/_serving/__init__.py @@ -0,0 +1,5 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore From 48ef461efe1bdbdd7c52cf887d4c667458b23a78 Mon Sep 17 00:00:00 2001 From: Honglin Date: Tue, 19 Mar 2024 15:55:19 +0800 Subject: [PATCH 084/204] [SDK/CLI] Add chat group schema and node entity (#2371) # Description Add chat group schema and node entity in experiment. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- src/promptflow/promptflow/_sdk/_constants.py | 8 +++ .../_submitter/experiment_orchestrator.py | 42 +++++++++------- .../promptflow/_sdk/entities/_experiment.py | 45 +++++++++++++++++ .../promptflow/_sdk/schemas/_experiment.py | 46 +++++++++++++++++- .../sdk_cli_test/e2etests/test_chat_group.py | 10 ++-- .../sdk_cli_test/e2etests/test_experiment.py | 16 ++++++ .../chat-group-node-exp-template/exp.yaml | 42 ++++++++++++++++ .../flows/chat_group_copilot/flow.dag.yaml | 2 +- .../flows/chat_group_copilot/prompt.jinja2 | 6 +-- .../flows/chat_group_eval_history/README.md | 43 ++++++++++++++++ .../chat_group_eval_history/aggregate.py | 24 +++++++++ .../flows/chat_group_eval_history/data.jsonl | 2 + .../chat_group_eval_history/flow.dag.yaml | 33 +++++++++++++ .../chat_group_eval_history/line_process.py | 27 ++++++++++ .../chat_group_eval_history/requirements.txt | 2 + .../flows/chat_group_simulation/flow.dag.yaml | 11 +++-- .../flows/chat_group_simulation/simulator.py | 24 +++++++-- .../node_recordings/node_cache.shelve.bak | 2 + .../node_recordings/node_cache.shelve.dat | Bin 392056 -> 397587 bytes .../node_recordings/node_cache.shelve.dir | 2 + 20 files changed, 350 insertions(+), 37 deletions(-) create mode 100644 src/promptflow/tests/test_configs/experiments/chat-group-node-exp-template/exp.yaml create mode 100644 src/promptflow/tests/test_configs/flows/chat_group_eval_history/README.md create mode 100644 src/promptflow/tests/test_configs/flows/chat_group_eval_history/aggregate.py create mode 100644 src/promptflow/tests/test_configs/flows/chat_group_eval_history/data.jsonl create mode 100644 src/promptflow/tests/test_configs/flows/chat_group_eval_history/flow.dag.yaml create mode 100644 src/promptflow/tests/test_configs/flows/chat_group_eval_history/line_process.py create mode 100644 src/promptflow/tests/test_configs/flows/chat_group_eval_history/requirements.txt diff --git a/src/promptflow/promptflow/_sdk/_constants.py b/src/promptflow/promptflow/_sdk/_constants.py index 8b351bd3e0f..c60e3a16c30 100644 --- a/src/promptflow/promptflow/_sdk/_constants.py +++ b/src/promptflow/promptflow/_sdk/_constants.py @@ -160,6 +160,7 @@ class RunTypes: EVALUATION = "evaluation" PAIRWISE_EVALUATE = "pairwise_evaluate" COMMAND = "command" + CHAT_GROUP = "chat_group" class AzureRunTypes: @@ -397,6 +398,13 @@ class ExperimentNodeType(object): COMMAND = "command" +EXP_NODE_TYPE_2_RUN_TYPE = { + ExperimentNodeType.FLOW: RunTypes.BATCH, + ExperimentNodeType.CHAT_GROUP: RunTypes.CHAT_GROUP, + ExperimentNodeType.COMMAND: RunTypes.COMMAND, +} + + class ExperimentStatus(object): NOT_STARTED = "NotStarted" QUEUING = "Queuing" diff --git a/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py b/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py index ece6bdd911b..d2c324d27aa 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py +++ b/src/promptflow/promptflow/_sdk/_submitter/experiment_orchestrator.py @@ -21,6 +21,7 @@ import psutil from promptflow._sdk._constants import ( + EXP_NODE_TYPE_2_RUN_TYPE, PF_TRACE_CONTEXT, PF_TRACE_CONTEXT_ATTR, PROMPT_FLOW_DIR_NAME, @@ -29,7 +30,6 @@ ExperimentNodeType, ExperimentStatus, FlowRunProperties, - RunTypes, ) from promptflow._sdk._errors import ( ExperimentCommandRunError, @@ -265,17 +265,10 @@ def _start_orchestrator(self, context, nodes=None, from_nodes=None): :type from_nodes: list """ - def prepare_edges(node): - """Get all in-degree nodes of this node.""" - node_names = set() - for input_value in node.inputs.values(): - if ExperimentHelper._is_node_reference(input_value): - referenced_node_name = input_value.split(".")[0].replace("${", "") - node_names.add(referenced_node_name) - return node_names - def generate_node_mapping_by_nodes(from_nodes): - all_node_edges_mapping = {node.name: prepare_edges(node) for node in self.experiment.nodes} + all_node_edges_mapping = { + node.name: ExperimentHelper._prepare_single_node_edges(node) for node in self.experiment.nodes + } node_edges_mapping, next_nodes = {node: all_node_edges_mapping[node] for node in from_nodes}, from_nodes while next_nodes: linked_nodes = set() @@ -389,14 +382,16 @@ def stop_handler(signum, frame): pre_nodes = set() node_mapping = {node.name: node for node in self.experiment.nodes} for node_name in nodes: - pre_nodes.update(prepare_edges(node_mapping[node_name])) + pre_nodes.update(ExperimentHelper._prepare_single_node_edges(node_mapping[node_name])) if not check_in_degree_node_outputs(pre_nodes): raise UserErrorException(f"The output(s) of in-degree of nodes {nodes} do not exist.") node_edges_mapping = {} next_execute_nodes = [self._nodes[name] for name in nodes] else: # Execute all nodes in experiment. - node_edges_mapping = {node.name: prepare_edges(node) for node in self.experiment.nodes} + node_edges_mapping = { + node.name: ExperimentHelper._prepare_single_node_edges(node) for node in self.experiment.nodes + } logger.debug(f"Experiment nodes edges: {node_edges_mapping!r}") next_execute_nodes = get_next_executable_nodes() @@ -516,16 +511,16 @@ def __init__(self, node, experiment, context, node_runs, client, **kwargs): run_output_path = (Path(experiment._output_dir) / "runs" / node.name).resolve().absolute().as_posix() super().__init__( # Use node name as prefix for run name? - type=RunTypes.COMMAND if node.type == ExperimentNodeType.COMMAND else RunTypes.BATCH, + type=EXP_NODE_TYPE_2_RUN_TYPE[node.type], name=self.context.node_name_to_id[node.name], - display_name=node.display_name or node.name, - column_mapping=node.inputs, + display_name=getattr(node, "display_name") or node.name, + column_mapping=getattr(node, "inputs", None), variant=getattr(node, "variant", None), flow=self._get_node_path(), outputs=getattr(node, "outputs", None), connections=getattr(node, "connections", None), command=getattr(node, "command", None), - environment_variables=node.environment_variables, + environment_variables=getattr(node, "environment_variables", None), config=Configuration(overrides={Configuration.RUN_OUTPUT_PATH: run_output_path}), **kwargs, ) @@ -837,7 +832,18 @@ def _is_node_reference(value): def _prepare_single_node_edges(node): """Prepare single node name to referenced node name edges mapping.""" node_names = set() - for input_value in node.inputs.values(): + + # if node is chat group, then get all inputs from roles + node_input_values = [] + if node.type == ExperimentNodeType.CHAT_GROUP: + for role in node.roles: + role_inputs = role.get("inputs", {}).values() + node_input_values.append(list(role_inputs)) + else: + node_input_values = list(node.inputs.values()) + + # Get all in-degree nodes of this node + for input_value in node_input_values: if not isinstance(input_value, str): continue if ExperimentHelper._is_node_reference(input_value): diff --git a/src/promptflow/promptflow/_sdk/entities/_experiment.py b/src/promptflow/promptflow/_sdk/entities/_experiment.py index a457d42123b..adf5c781189 100644 --- a/src/promptflow/promptflow/_sdk/entities/_experiment.py +++ b/src/promptflow/promptflow/_sdk/entities/_experiment.py @@ -27,6 +27,7 @@ from promptflow._sdk.entities._validation import MutableValidationResult, SchemaValidatableMixin from promptflow._sdk.entities._yaml_translatable import YAMLTranslatableMixin from promptflow._sdk.schemas._experiment import ( + ChatGroupSchema, CommandNodeSchema, ExperimentDataSchema, ExperimentInputSchema, @@ -188,6 +189,46 @@ def _save_snapshot(self, target): self.code = saved_path.resolve().absolute().as_posix() +class ChatGroupNode(YAMLTranslatableMixin): + def __init__( + self, + name, + roles: List[Dict[str, Any]], + max_turns: Optional[int] = None, + max_tokens: Optional[int] = None, + max_time: Optional[int] = None, + stop_signal: Optional[str] = None, + **kwargs, + ): + self.type = ExperimentNodeType.CHAT_GROUP + self.name = name + self.roles = roles + self.max_turns = max_turns + self.max_tokens = max_tokens + self.max_time = max_time + self.stop_signal = stop_signal + + @classmethod + def _get_schema_cls(cls): + return ChatGroupSchema + + def _save_snapshot(self, target): + """Save chat group source to experiment snapshot.""" + target = Path(target).resolve() + logger.debug(f"Saving chat group node {self.name!r} snapshot to {target.as_posix()!r}.") + saved_path = target / self.name + saved_path.mkdir(parents=True, exist_ok=True) + for role in self.roles: + role_path = Path(role["path"]).resolve() + if not role_path.exists(): + raise ExperimentValueError(f"Chat role path {role_path.as_posix()!r} does not exist.") + + if role_path.is_dir(): + shutil.copytree(src=role_path, dst=saved_path / role["role"]) + else: + shutil.copytree(src=role_path.parent, dst=saved_path / role["role"]) + + class ExperimentTemplate(YAMLTranslatableMixin, SchemaValidatableMixin): def __init__(self, nodes, description=None, data=None, inputs=None, **kwargs): self._base_path = kwargs.get(BASE_PATH_CONTEXT_KEY, Path(".")) @@ -366,6 +407,10 @@ def _from_orm_object(cls, obj: ORMExperiment) -> "Experiment": nodes.append( CommandNode._load_from_dict(node_dict, context=context, additional_message="Failed to load node.") ) + elif node_dict["type"] == ExperimentNodeType.CHAT_GROUP: + nodes.append( + ChatGroupNode._load_from_dict(node_dict, context=context, additional_message="Failed to load node.") + ) else: raise Exception(f"Unknown node type {node_dict['type']}") data = [ diff --git a/src/promptflow/promptflow/_sdk/schemas/_experiment.py b/src/promptflow/promptflow/_sdk/schemas/_experiment.py index ade762a7b00..fcd053d99cf 100644 --- a/src/promptflow/promptflow/_sdk/schemas/_experiment.py +++ b/src/promptflow/promptflow/_sdk/schemas/_experiment.py @@ -1,7 +1,7 @@ # --------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -from marshmallow import fields, post_load, pre_load +from marshmallow import ValidationError, fields, post_load, pre_load from promptflow._sdk._constants import ExperimentNodeType from promptflow._sdk.schemas._base import PatchedSchemaMeta, YamlFileSchema @@ -44,6 +44,43 @@ def warning_unknown_fields(self, data, **kwargs): return data +class ChatRoleSchema(YamlFileSchema): + """Schema for chat role.""" + + role = fields.Str(required=True) + path = UnionField([LocalPathField(required=True), fields.Str(required=True)]) + inputs = fields.Dict(keys=fields.Str) + + +class ChatGroupSchema(YamlFileSchema): + """Schema for chat group.""" + + name = fields.Str(required=True) + type = StringTransformedEnum(allowed_values=ExperimentNodeType.CHAT_GROUP, required=True) + max_turns = fields.Int() + max_tokens = fields.Int() + max_time = fields.Int() + stop_signal = fields.Str() + roles = fields.List(NestedField(ChatRoleSchema)) + + @post_load + def _validate_roles(self, data, **kwargs): + from collections import Counter + + roles = data.get("roles", []) + if not roles: + raise ValidationError("Chat group should have at least one role.") + + # check if there is duplicate role name + role_names = [role["role"] for role in roles] + if len(role_names) != len(set(role_names)): + counter = Counter(role_names) + duplicate_roles = [role for role in counter if counter[role] > 1] + raise ValidationError(f"Duplicate roles are not allowed: {duplicate_roles!r}.") + + return data + + class ExperimentDataSchema(metaclass=PatchedSchemaMeta): name = fields.Str(required=True) path = LocalPathField(required=True) @@ -64,6 +101,7 @@ class ExperimentTemplateSchema(YamlFileSchema): [ NestedField(CommandNodeSchema), NestedField(FlowNodeSchema), + NestedField(ChatGroupSchema), ] ), required=True, @@ -71,7 +109,7 @@ class ExperimentTemplateSchema(YamlFileSchema): @post_load def resolve_nodes(self, data, **kwargs): - from promptflow._sdk.entities._experiment import CommandNode, FlowNode + from promptflow._sdk.entities._experiment import ChatGroupNode, CommandNode, FlowNode nodes = data.get("nodes", []) resolved_nodes = [] @@ -85,6 +123,10 @@ def resolve_nodes(self, data, **kwargs): resolved_nodes.append( CommandNode._load_from_dict(data=node, context=self.context, additional_message="") ) + elif node_type == ExperimentNodeType.CHAT_GROUP: + resolved_nodes.append( + ChatGroupNode._load_from_dict(data=node, context=self.context, additional_message="") + ) else: raise ValueError(f"Unknown node type {node_type} for node {node}.") data["nodes"] = resolved_nodes diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_chat_group.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_chat_group.py index f303db1dfa2..5af6973d288 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_chat_group.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_chat_group.py @@ -16,12 +16,14 @@ @pytest.mark.usefixtures("use_secrets_config_file", "recording_injection", "setup_local_connection") class TestChatGroup: def test_chat_group_basic_invoke(self): - topic = "Tell me a joke" + question = "What's the most beautiful thing in the world?" + ground_truth = "The world itself." + copilot = ChatRole( flow=FLOWS_DIR / "chat_group_copilot", role="assistant", inputs=dict( - question=topic, + question=question, model="gpt-3.5-turbo", conversation_history="${parent.conversation_history}", ), @@ -30,8 +32,8 @@ def test_chat_group_basic_invoke(self): flow=FLOWS_DIR / "chat_group_simulation", role="user", inputs=dict( - topic=topic, - persona="criticizer", + question=question, + ground_truth=ground_truth, conversation_history="${parent.conversation_history}", ), ) diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_experiment.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_experiment.py index 6af218f14da..ef9897f6255 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_experiment.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_experiment.py @@ -306,3 +306,19 @@ def test_experiment_with_script_run(self): assert len(exp.node_runs) == 4 for key, val in exp.node_runs.items(): assert val[0]["status"] == RunStatus.COMPLETED, f"Node {key} run failed" + + @pytest.mark.skip("Enable when chat group node run is ready") + @pytest.mark.usefixtures("use_secrets_config_file", "recording_injection", "setup_local_connection") + def test_experiment_with_chat_group(self, pf: PFClient): + template_path = EXP_ROOT / "chat-group-node-exp-template" / "exp.yaml" + template = load_common(ExperimentTemplate, source=template_path) + experiment = Experiment.from_template(template) + exp = pf._experiments.create_or_update(experiment) + + if is_live(): + # Async start + exp = pf._experiments.start(exp) + exp = self.wait_for_experiment_terminated(pf, exp) + else: + exp = pf._experiments.get(exp.name) + exp = ExperimentOrchestrator(pf, exp).start() diff --git a/src/promptflow/tests/test_configs/experiments/chat-group-node-exp-template/exp.yaml b/src/promptflow/tests/test_configs/experiments/chat-group-node-exp-template/exp.yaml new file mode 100644 index 00000000000..02d393cef70 --- /dev/null +++ b/src/promptflow/tests/test_configs/experiments/chat-group-node-exp-template/exp.yaml @@ -0,0 +1,42 @@ +$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Experiment.schema.json + +description: Basic experiment with chat group node + +# Specify data for experiment run +data: + - name: my_data + path: ../../flows/chat_group_eval_history/data.jsonl + +inputs: + - name: model_name + type: string + default: gpt-4 + +nodes: + # multi turn conversation is described as a chat group, which contains a copilot flow and question simulation flow + - name: multi_turn_chat + type: chat_group + max_turns: 4 + stop_signal: "[STOP]" + roles: + - role: assistant + path: ../../flows/chat_group_copilot + inputs: + question: ${data.my_data.question} + model: ${inputs.model_name} + conversation_history: ${parent.conversation_history} + - role: user + path: ../../flows/chat_group_simulation + inputs: + question: ${data.my_data.question} + ground_truth: ${data.my_data.ground_truth} + conversation_history: ${parent.conversation_history} + + # evaluate the chat history + - name: eval_history + type: flow + path: ../../flows/chat_group_eval_history + inputs: + question: ${data.my_data.question} + ground_truth: ${data.my_data.ground_truth} + conversation_history: ${multi_turn_chat.conversation_history} diff --git a/src/promptflow/tests/test_configs/flows/chat_group_copilot/flow.dag.yaml b/src/promptflow/tests/test_configs/flows/chat_group_copilot/flow.dag.yaml index 5fb77a718d3..8e4f0725634 100644 --- a/src/promptflow/tests/test_configs/flows/chat_group_copilot/flow.dag.yaml +++ b/src/promptflow/tests/test_configs/flows/chat_group_copilot/flow.dag.yaml @@ -2,7 +2,7 @@ $schema: https://azuremlschemas.azureedge.net/promptflow/latest/Flow.schema.json inputs: question: type: string - default: Tell me a joke. + default: What's human? model: type: string default: gpt-3.5-turbo diff --git a/src/promptflow/tests/test_configs/flows/chat_group_copilot/prompt.jinja2 b/src/promptflow/tests/test_configs/flows/chat_group_copilot/prompt.jinja2 index 92edb67d42f..89bb1968fc9 100644 --- a/src/promptflow/tests/test_configs/flows/chat_group_copilot/prompt.jinja2 +++ b/src/promptflow/tests/test_configs/flows/chat_group_copilot/prompt.jinja2 @@ -1,5 +1,5 @@ system: -You are an assistant that can tell good jokes. +You are an assistant that can answer philosophical questions. Here is the initial message from user: {{question}} @@ -11,5 +11,5 @@ Here is a chat history you had with the user: {% endfor %} {% endif %} -Now please continue the conversation with the user: -``` \ No newline at end of file +Now please continue the conversation with the user, just answer the question, no extra formatting is needed: +assistant: \ No newline at end of file diff --git a/src/promptflow/tests/test_configs/flows/chat_group_eval_history/README.md b/src/promptflow/tests/test_configs/flows/chat_group_eval_history/README.md new file mode 100644 index 00000000000..3c245855e84 --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/chat_group_eval_history/README.md @@ -0,0 +1,43 @@ +# Basic Eval +This example shows how to create a basic evaluation flow that can evaluate multi-turn conversation history. + +Tools used in this flow: +- `python` tool + +## Prerequisites + +Install promptflow sdk and other dependencies in this folder: +```bash +pip install -r requirements.txt +``` + +## What you will learn + +In this flow, you will learn +- how to compose a point based evaluation flow, where you can calculate point-wise metrics. +- the way to log metrics. use `from promptflow import log_metric` + - see file [aggregate](aggregate.py). + +### 1. Test flow with single line data + +Testing flow/node: +```bash +# test with default input value in flow.dag.yaml +pf flow test --flow . + +# test with flow inputs +pf flow test --flow . --inputs ground_truth=ABC + +# test node with inputs +pf flow test --flow . --node line_process --inputs ground_truth=ABC +``` + +### 2. create flow run with multi line data +There are two ways to evaluate an classification flow. + +```bash +pf run create --flow . --data ./data.jsonl --column-mapping ground_truth='${data.ground_truth}' --stream +``` + +You can also skip providing `column-mapping` if provided data has same column name as the flow. +Reference [here](https://aka.ms/pf/column-mapping) for default behavior when `column-mapping` not provided in CLI. diff --git a/src/promptflow/tests/test_configs/flows/chat_group_eval_history/aggregate.py b/src/promptflow/tests/test_configs/flows/chat_group_eval_history/aggregate.py new file mode 100644 index 00000000000..098a6bd89d9 --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/chat_group_eval_history/aggregate.py @@ -0,0 +1,24 @@ +from typing import List + +from promptflow import tool + + +@tool +def aggregate(processed_results: List[str]): + """ + This tool aggregates the processed result of all lines to the variant level and log metric for each variant. + + :param processed_results: List of the output of line_process node. + """ + + # Add your aggregation logic here + # aggregated_results should be a dictionary with the metric name as the key and the metric value as the value. + results_num = len(processed_results) + print(results_num) + print(processed_results) + + # Log metric for each variant + from promptflow import log_metric + log_metric(key="results_num", value=results_num) + + return results_num diff --git a/src/promptflow/tests/test_configs/flows/chat_group_eval_history/data.jsonl b/src/promptflow/tests/test_configs/flows/chat_group_eval_history/data.jsonl new file mode 100644 index 00000000000..8d7a3fe0911 --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/chat_group_eval_history/data.jsonl @@ -0,0 +1,2 @@ +{"question": "What's the most beautiful thing in the world?", "ground_truth": "The world itself."} +{"question": "What life is all about?", "ground_truth": "Life is about living."} diff --git a/src/promptflow/tests/test_configs/flows/chat_group_eval_history/flow.dag.yaml b/src/promptflow/tests/test_configs/flows/chat_group_eval_history/flow.dag.yaml new file mode 100644 index 00000000000..15368232f9e --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/chat_group_eval_history/flow.dag.yaml @@ -0,0 +1,33 @@ +$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Flow.schema.json +inputs: + question: + type: string + ground_truth: + type: string + conversation_history: + type: list + default: [] + +outputs: + output: + type: string + reference: ${line_process.output} + +nodes: +- name: line_process + type: python + source: + type: code + path: line_process.py + inputs: + ground_truth: ${inputs.ground_truth} + conversation_history: ${inputs.conversation_history} +- name: aggregate + type: python + source: + type: code + path: aggregate.py + inputs: + processed_results: ${line_process.output} + aggregation: true + diff --git a/src/promptflow/tests/test_configs/flows/chat_group_eval_history/line_process.py b/src/promptflow/tests/test_configs/flows/chat_group_eval_history/line_process.py new file mode 100644 index 00000000000..46e4056eeee --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/chat_group_eval_history/line_process.py @@ -0,0 +1,27 @@ +from typing import List +from promptflow import tool + + +def get_answer_from_conversation_history(conversation_history: List) -> str: + """ + This function gets the answer from the conversation history. + + :param conversation_history: the conversation history. + """ + if len(conversation_history) == 0: + return "NA" + assistant_answers = [item[1] for item in conversation_history if item[0] == "assistant"] + return assistant_answers[-1]["output"] + + +@tool +def line_process(ground_truth: str, conversation_history: List): + """ + This tool processes the prediction of a single line and returns the processed result. + + :param groundtruth: the groundtruth of a single line. + :param prediction: the prediction of a single line. + """ + answer = get_answer_from_conversation_history(conversation_history) + # Add your line processing logic here + return "Correct" if ground_truth.lower() == answer.lower() else "Incorrect" diff --git a/src/promptflow/tests/test_configs/flows/chat_group_eval_history/requirements.txt b/src/promptflow/tests/test_configs/flows/chat_group_eval_history/requirements.txt new file mode 100644 index 00000000000..34d068f5f1c --- /dev/null +++ b/src/promptflow/tests/test_configs/flows/chat_group_eval_history/requirements.txt @@ -0,0 +1,2 @@ +promptflow +promptflow-tools \ No newline at end of file diff --git a/src/promptflow/tests/test_configs/flows/chat_group_simulation/flow.dag.yaml b/src/promptflow/tests/test_configs/flows/chat_group_simulation/flow.dag.yaml index 889edb065df..2d531ed57bb 100644 --- a/src/promptflow/tests/test_configs/flows/chat_group_simulation/flow.dag.yaml +++ b/src/promptflow/tests/test_configs/flows/chat_group_simulation/flow.dag.yaml @@ -1,12 +1,13 @@ +$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Flow.schema.json inputs: - topic: + question: type: string - persona: + ground_truth: type: string conversation_history: type: list outputs: - result: + output: type: string reference: ${simulator.output} nodes: @@ -16,6 +17,6 @@ nodes: type: code path: simulator.py inputs: - topic: ${inputs.topic} - persona: ${inputs.persona} + question: ${inputs.question} + ground_truth: ${inputs.ground_truth} conversation_history: ${inputs.conversation_history} diff --git a/src/promptflow/tests/test_configs/flows/chat_group_simulation/simulator.py b/src/promptflow/tests/test_configs/flows/chat_group_simulation/simulator.py index 623f5605a81..7c19cb0e8dd 100644 --- a/src/promptflow/tests/test_configs/flows/chat_group_simulation/simulator.py +++ b/src/promptflow/tests/test_configs/flows/chat_group_simulation/simulator.py @@ -3,10 +3,26 @@ from promptflow import tool +def get_answer_from_conversation_history(conversation_history: List) -> str: + """ + This function gets the answer from the conversation history. + + :param conversation_history: the conversation history. + """ + if len(conversation_history) == 0: + return "NA" + assistant_answers = [item[1] for item in conversation_history if item[0] == "assistant"] + return assistant_answers[-1]["output"] + + @tool -def simulate(topic: str, persona: str, conversation_history: List) -> str: - print(f"topic: {topic}") - print(f"persona: {persona}") +def simulate(question: str, ground_truth: str, conversation_history: List) -> str: + print(f"question: {question}") print(f"chat_history: {conversation_history}") - return f"This is not funny, tell me another joke." + answer = get_answer_from_conversation_history(conversation_history) + print(f"answer: {answer}") + if answer != ground_truth: + return "I don't like this answer, give me another one." + else: + return "[STOP]" diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak index 30aad55b14b..dff9e060b02 100644 --- a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak +++ b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.bak @@ -72,3 +72,5 @@ 'e9aa82ac7a0a8b507f6882b04757cd67ff7130b4', (374272, 11427) 'c373d6c5f4798042dc85d13fb6bd8fae74a128fc', (386048, 1923) 'd5233d057cbc48471693b779d752dc01c0dca2ad', (388096, 3960) +'351e77abed00fa8e8a5387db88fbce07e922dd22', (392192, 2308) +'afebacc90db07fbf98ecfcc2d951f704cb5a208f', (394752, 2835) diff --git a/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dat b/src/promptflow/tests/test_configs/node_recordings/node_cache.shelve.dat index 52bb75e96555bd5881b239e37f1c726428eed25b..d07e3aab436b1571512d23ff95442273ddcd4681 100644 GIT binary patch delta 1867 zcmeHH&1(}u6mJ?wq@tJl1y+3avJG7W+Ar)y#1`p?wD!xiwc;c@+nHoDlg!K}janlZ zP|%A6+@siw;8mdq{}lZb6cj`XUVNL@Q$6&c)Ptve`)2mN-}~+F{kFcJY;K%-*hnkCvb*JQ)L=TTm;G}eB@{V<&YUGl#Dif(tG|Ur`9oG zIfJ4y7P5?nR`_9nDIr%u$ktg^>A<@jeelV^s0;ZJZ|)S2zx-9w1*w3oSxv!Lx=5{U zl`tR~^O!f>L5&f{QfY@bkCw=CqN~4e>gwY3m1=2n=)&OL@u}*}!pw-sFBOdEycsGTScv#N+=(;85{8ZsP| zT9DL+nz>ji$AOwUP{?XVEw{7~Ph&!9m<6TdgFvZbob&^QM7uGB-Atxo3X|HjI{5-| zwMeeT+|ryipnSm6o@54NjRcl7hWLx{weCZpDl852ffdLo3u-P@W1vbh$l)E~#kF_0 z#Z(L}=D=emhHc~FITIRGRU(E!FyFXHP=JbXTZC;>gd#xD8o=@|c=z5X7ZGJiQprzTa=~xIvAznaSplx4qVKv@j+)pZ1ygsqs)7|T- z=%Y{i|D*?Tv)oW@&EcIn7(Nj)7|F@uj)`Av)XF+eaE$G`G HEok5;?!Td% delta 19 acmbQdNaDvg@rD-07N!>F7M3ln6~6&hL Date: Tue, 19 Mar 2024 16:30:49 +0800 Subject: [PATCH 085/204] [ProcessPool] Add stderror for process to get error message when process crashed. (#2070) # Description **Problem** When the process crashes unexpectedly, the error information cannot be obtained. **Solution** Redirects stderror to a file, reads the contents of the file, and prints it when the process crashes. **Other changes** Change the exit timing of the spawn process manager in fork mode _Before_ When all sub-process is not alive, break the spawn process manager. _After_ When receiving the 'spawned_manager_end' signal from the main process, exit the spawn process manager. _Reason_ When a special input from the user causes the process to crash, we should give other inputs a chance to try to determine whether the execution can be successful. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .../promptflow/_utils/process_utils.py | 10 ++++ .../executor/_line_execution_process_pool.py | 48 +++++++++++++++---- .../promptflow/executor/_process_manager.py | 37 ++++++++++---- .../test_line_execution_process_pool.py | 11 ++++- 4 files changed, 88 insertions(+), 18 deletions(-) diff --git a/src/promptflow/promptflow/_utils/process_utils.py b/src/promptflow/promptflow/_utils/process_utils.py index 274d4cdb423..a9389f246b3 100644 --- a/src/promptflow/promptflow/_utils/process_utils.py +++ b/src/promptflow/promptflow/_utils/process_utils.py @@ -62,3 +62,13 @@ def get_available_max_worker_count(logger: logging.Logger = bulk_logger): f"= {estimated_available_worker_count}" ) return estimated_available_worker_count + + +def log_errors_from_file(log_path): + try: + with open(log_path, "r") as f: + error_logs = "".join(f.readlines()) + bulk_logger.error(error_logs) + return True + except FileNotFoundError: + return False diff --git a/src/promptflow/promptflow/executor/_line_execution_process_pool.py b/src/promptflow/promptflow/executor/_line_execution_process_pool.py index f7b289189c0..77a556a0134 100644 --- a/src/promptflow/promptflow/executor/_line_execution_process_pool.py +++ b/src/promptflow/promptflow/executor/_line_execution_process_pool.py @@ -7,6 +7,7 @@ import multiprocessing import os import queue +import shutil import signal import sys import threading @@ -28,7 +29,7 @@ from promptflow._utils.exception_utils import ExceptionPresenter from promptflow._utils.logger_utils import bulk_logger from promptflow._utils.multimedia_utils import convert_multimedia_data_to_string, persist_multimedia_data -from promptflow._utils.process_utils import get_available_max_worker_count +from promptflow._utils.process_utils import get_available_max_worker_count, log_errors_from_file from promptflow._utils.thread_utils import RepeatLogTimer from promptflow._utils.utils import log_progress, set_context from promptflow.contracts.run_info import FlowRunInfo @@ -41,15 +42,19 @@ ProcessCrashError, ThreadCrashError, ) -from promptflow.executor._process_manager import ForkProcessManager, ProcessInfo, SpawnProcessManager +from promptflow.executor._process_manager import ( + ForkProcessManager, + ProcessControlSignal, + ProcessInfo, + ProcessPoolConstants, + SpawnProcessManager, +) from promptflow.executor._result import LineResult from promptflow.executor._script_executor import ScriptExecutor from promptflow.executor.flow_executor import DEFAULT_CONCURRENCY_BULK, FlowExecutor from promptflow.storage._queue_run_storage import QueueRunStorage, ServiceQueueRunStorage from promptflow.tracing._operation_context import OperationContext -TERMINATE_SIGNAL = "terminate" - class LineExecutionProcessPool: """A process pool for executing lines in batch mode. @@ -225,8 +230,13 @@ def close(self): # If a thread crashed for some reason, the processes it monitors might not be able to exit because # they do not receive a terminate signal. So we need to terminate these unmonitored processes. self._processes_manager.ensure_all_processes_terminated() + # In fork mode, send the 'spawned_manager_end' signal to exit the spawned process manager. + if self._use_fork: + self._control_signal_queue.put((ProcessControlSignal.SPAWNED_MANAGER_END, self._use_fork)) # Clear the result dict. self._result_dict.clear() + # Delete log files to prevent interference from the current run on the next execution. + self._delete_log_files() async def submit(self, run_id: str, line_number: int, inputs: dict): """Submit a line execution request to the process pool and return the line result.""" @@ -331,10 +341,10 @@ def _monitor_workers_and_process_tasks_in_thread( # If the line_timeout_sec is None, it means the batch run is timeouted. line_timeout_sec = self._calculate_line_timeout_sec() # If the task is a terminate signal or the batch run is timeouted, exit the loop. - if data == TERMINATE_SIGNAL or line_timeout_sec is None: + if data == ProcessPoolConstants.TERMINATE_SIGNAL or line_timeout_sec is None: bulk_logger.info(f"The thread monitoring the process [{process_id}-{process_name}] will be terminated.") # Put the terminate signal into the input queue to notify the sub process to exit. - input_queue.put(TERMINATE_SIGNAL) + input_queue.put(ProcessPoolConstants.TERMINATE_SIGNAL) # End the process if found the terminate signal. self._processes_manager.end_process(index) # In fork mode, the main process and the sub spawn process communicate through _process_info. @@ -386,6 +396,15 @@ def _monitor_workers_and_process_tasks_in_thread( # Handle process crashed. if crashed: bulk_logger.warning(f"Process crashed while executing line {line_number}.") + logName_i = "{}_{}.log".format(ProcessPoolConstants.PROCESS_LOG_NAME, index) + log_path = ProcessPoolConstants.PROCESS_LOG_PATH / logName_i + # In fork mode, if the child process fails to start, its error information + # will be written to the parent process log file. + # So if 'log_errors_form_path' return 'false', it means the child process fails to start. + # Attempt read the parent process log file. + if not log_errors_from_file(log_path) and self._use_fork: + log_path = ProcessPoolConstants.PROCESS_LOG_PATH / ProcessPoolConstants.MANAGER_PROCESS_LOG_NAME + log_errors_from_file(log_path) ex = ProcessCrashError(line_number) elif self._line_timeout_expired(start_time, line_timeout_sec=line_timeout_sec): # Handle line execution timeout. @@ -429,6 +448,12 @@ def _monitor_workers_and_process_tasks_in_thread( # endregion # region private methods + def _delete_log_files(self): + try: + shutil.rmtree(ProcessPoolConstants.PROCESS_LOG_PATH) + except Exception as e: + bulk_logger.warning(f"Failed to delete the folder, exception: {e}") + def _get_task_from_queue(self, task_queue: Queue): """Get task from the task queue. Ignore the queue being empty and only exit the loop when getting data.""" while True: @@ -445,7 +470,7 @@ def _terminate_tasks(self): return # Put n (equal to processes number) terminate signals to the task queue to ensure each thread receives one. for _ in range(self._n_process): - self._task_queue.put(TERMINATE_SIGNAL) + self._task_queue.put(ProcessPoolConstants.TERMINATE_SIGNAL) def _determine_worker_count(self, worker_count): # Starting a new process in non-fork mode requires to allocate memory. @@ -654,7 +679,14 @@ def _process_wrapper( output_queue: Queue, log_context_initialization_func, operation_contexts_dict: dict, + i: int, ): + logName_i = "{}_{}.log".format(ProcessPoolConstants.PROCESS_LOG_NAME, i) + if not ProcessPoolConstants.PROCESS_LOG_PATH.exists(): + ProcessPoolConstants.PROCESS_LOG_PATH.mkdir(parents=True, exist_ok=True) + log_path = ProcessPoolConstants.PROCESS_LOG_PATH / logName_i + sys.stderr = open(log_path, "w") + if threading.current_thread() is threading.main_thread(): signal.signal(signal.SIGINT, signal_handler) else: @@ -697,7 +729,7 @@ def _exec_line_for_queue( while True: try: data = input_queue.get(timeout=1) - if data == TERMINATE_SIGNAL: + if data == ProcessPoolConstants.TERMINATE_SIGNAL: bulk_logger.info(f"The process [{os.getpid()}] has received a terminate signal.") # Add try catch in case of shutdown method is not implemented in the tracer provider. try: diff --git a/src/promptflow/promptflow/executor/_process_manager.py b/src/promptflow/promptflow/executor/_process_manager.py index d9b6b769cef..a54ee8365ea 100644 --- a/src/promptflow/promptflow/executor/_process_manager.py +++ b/src/promptflow/promptflow/executor/_process_manager.py @@ -1,6 +1,7 @@ import multiprocessing import queue import signal +import sys import time from dataclasses import dataclass from enum import Enum @@ -31,10 +32,18 @@ class ProcessInfo: process_name: str +class ProcessPoolConstants: + PROCESS_LOG_PATH = Path("process_log") + PROCESS_LOG_NAME = "process_stderr" + MANAGER_PROCESS_LOG_NAME = "manager_process_stderr.log" + TERMINATE_SIGNAL = "terminate" + + class ProcessControlSignal(str, Enum): START = "start" RESTART = "restart" END = "end" + SPAWNED_MANAGER_END = "spawned_manager_end" class AbstractProcessManager: @@ -212,6 +221,7 @@ def new_process(self, i): self._output_queues[i], self._log_context_initialization_func, self._current_operation_context, + i, ), # Set the process as a daemon process to automatically terminated and release system resources # when the main process exits. @@ -323,6 +333,13 @@ def ensure_healthy(self): # The normal state of the spawned process is 'running'. If the process does not start successfully # or exit unexpectedly, its state will be 'zombie'. if psutil.Process(self._spawned_fork_process_manager_pid).status() == "zombie": + log_path = ProcessPoolConstants.PROCESS_LOG_PATH / ProcessPoolConstants.MANAGER_PROCESS_LOG_NAME + try: + with open(log_path, "r") as f: + error_logs = "".join(f.readlines()) + bulk_logger.error(error_logs) + except FileNotFoundError: + pass bulk_logger.error("The spawned fork process manager failed to start.") ex = SpawnedForkProcessManagerStartFailure() raise ex @@ -377,6 +394,7 @@ def new_process(self, i): self._output_queues[i], self._log_context_initialization_func, self._current_operation_context, + i, ), daemon=True, ) @@ -420,6 +438,10 @@ def create_spawned_fork_process_manager( flow_create_kwargs, **kwargs, ): + ProcessPoolConstants.PROCESS_LOG_PATH.mkdir(parents=True, exist_ok=True) + log_path = ProcessPoolConstants.PROCESS_LOG_PATH / ProcessPoolConstants.MANAGER_PROCESS_LOG_NAME + sys.stderr = open(log_path, "w") + """ Manages the creation, termination, and signaling of processes using the 'fork' context. """ @@ -450,8 +472,6 @@ def create_spawned_fork_process_manager( # Main loop to handle control signals and manage process lifecycle. while True: - all_processes_stopped = True - try: process_info_list = manager._process_info.items() except Exception as e: @@ -463,20 +483,19 @@ def create_spawned_fork_process_manager( # Check if at least one process is alive. if psutil.pid_exists(pid): process = psutil.Process(pid) - if process.status() != "zombie": - all_processes_stopped = False - else: + if process.status() == "zombie": # If do not call wait(), the child process may become a zombie process, # and psutil.pid_exists(pid) is always true, which will cause spawn proces # never exit. process.wait() - # If all fork child processes exit, exit the loop. - if all_processes_stopped: - break try: control_signal, i = control_signal_queue.get(timeout=1) - manager.handle_signals(control_signal, i) + # Exit the spawned process manager. + if control_signal == ProcessControlSignal.SPAWNED_MANAGER_END and i is True: + break + else: + manager.handle_signals(control_signal, i) except queue.Empty: # Do nothing until the process_queue have not content or process is killed pass diff --git a/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py b/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py index 59c0caeb692..4700778145c 100644 --- a/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py +++ b/src/promptflow/tests/executor/unittests/executor/test_line_execution_process_pool.py @@ -21,7 +21,7 @@ format_current_process_info, log_process_status, ) -from promptflow.executor._process_manager import create_spawned_fork_process_manager +from promptflow.executor._process_manager import ProcessPoolConstants, create_spawned_fork_process_manager from promptflow.executor._result import LineResult from ...utils import get_flow_sample_inputs, get_yaml_file @@ -209,6 +209,15 @@ async def test_line_execution_process_pool(self, flow_folder, dev_connections): run_id=run_id, ) as pool: result_list = await pool.run(zip(range(nlines), bulk_inputs)) + # Check 'spawned_fork_process_manager_stderr_runid.log' exits. + log_file = ProcessPoolConstants.PROCESS_LOG_PATH / ProcessPoolConstants.MANAGER_PROCESS_LOG_NAME + assert log_file.exists() is True + child_process_log_exit = False + for file in ProcessPoolConstants.PROCESS_LOG_PATH.iterdir(): + # Check 'process_stderr.log' exits. + if file.name.startswith(ProcessPoolConstants.PROCESS_LOG_NAME): + child_process_log_exit = True + assert child_process_log_exit is True assert len(result_list) == nlines for i, line_result in enumerate(result_list): assert isinstance(line_result, LineResult) From a65f1e41f43dd5c65785c04b434b816d35fceb07 Mon Sep 17 00:00:00 2001 From: Brynn Yin <24237253+brynn-code@users.noreply.github.com> Date: Tue, 19 Mar 2024 17:08:23 +0800 Subject: [PATCH 086/204] Warning for the first time import from promptflow (#2385) # Description Behavior: ![image](https://github.com/microsoft/promptflow/assets/24237253/be566caa-7f61-49a4-99c0-cfd9f263eb94) # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Signed-off-by: Brynn Yin --- src/promptflow/CHANGELOG.md | 4 ++ src/promptflow/promptflow/__init__.py | 58 +++++++++++++++---- .../promptflow/_cli/_pf/_experiment.py | 8 ++- src/promptflow/promptflow/_cli/_pf/_flow.py | 2 +- .../_cli/data/entry_flow/tool.py.jinja2 | 2 +- .../_cli/data/evaluation_flow/aggregate.py | 2 +- .../_cli/data/evaluation_flow/line_process.py | 2 +- .../_cli/data/package_tool/setup.py.jinja2 | 2 +- .../_cli/data/package_tool/tool.py.jinja2 | 2 +- .../_cli/data/package_tool/utils.py.jinja2 | 2 +- .../_cli/data/standard_flow/hello.py | 2 +- .../promptflow/_sdk/_service/apis/span.py | 2 +- .../promptflow/_sdk/_submitter/utils.py | 2 +- .../promptflow/_sdk/data/executable/main.py | 2 +- .../_sdk/entities/_chat_group/_chat_role.py | 2 +- .../promptflow/_sdk/entities/_run.py | 2 +- .../_sdk/operations/_flow_operations.py | 4 +- src/promptflow/promptflow/_utils/_errors.py | 7 ++- .../promptflow/_utils/inputs_mapping_utils.py | 4 +- src/promptflow/promptflow/client/__init__.py | 4 +- src/promptflow/promptflow/core/__init__.py | 1 - .../promptflow/core/_flow_context_resolver.py | 2 +- .../promptflow/core/_serving/flow_invoker.py | 2 +- .../batch/test_batch_inputs_processor.py | 3 +- src/promptflow/tests/sdk_cli_test/conftest.py | 2 +- 25 files changed, 88 insertions(+), 37 deletions(-) diff --git a/src/promptflow/CHANGELOG.md b/src/promptflow/CHANGELOG.md index 6288cc886ea..7bde5b25e04 100644 --- a/src/promptflow/CHANGELOG.md +++ b/src/promptflow/CHANGELOG.md @@ -2,6 +2,10 @@ ## 1.7.0 (Upcoming) +### NOTICES +- Import warnings will be printed when importing from `promptflow` namespace, please use imports from new namespaces + suggested in the warning message. + ### Features Added - [SDK/CLI] Create a run with `resume_from`, note that only run created with `promptflow>=1.7.0` can be used as the value of `resume_from`: diff --git a/src/promptflow/promptflow/__init__.py b/src/promptflow/promptflow/__init__.py index 164b792a78a..9137e9f4397 100644 --- a/src/promptflow/promptflow/__init__.py +++ b/src/promptflow/promptflow/__init__.py @@ -3,21 +3,59 @@ # --------------------------------------------------------- __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore +import logging +from typing import Any -from promptflow._core.metric_logger import log_metric - -# flake8: noqa -from promptflow._core.tool import ToolProvider, tool +# Note: Keep old import ensure import order +# Keep old import as hidden to let __getattr__ works +from promptflow._core.metric_logger import log_metric as _log_metric +from promptflow._core.tool import ToolProvider as _ToolProvider +from promptflow._core.tool import tool as _tool # control plane sdk functions -from promptflow._sdk._load_functions import load_flow, load_run +from promptflow._sdk._load_functions import load_flow as _load_flow +from promptflow._sdk._load_functions import load_run as _load_run -from ._sdk._pf_client import PFClient -from ._version import VERSION +from ._sdk._pf_client import PFClient as _PFClient -# backward compatibility -log_flow_metric = log_metric +# flake8: noqa +from ._version import VERSION __version__ = VERSION -__all__ = ["PFClient", "load_flow", "load_run", "log_metric", "ToolProvider", "tool"] +_core_attr = ["log_metric", "ToolProvider", "tool"] +_client_attr = ["PFClient", "load_flow", "load_run"] +_imported_attr = {} + + +def _log_warning(name, target_module, target_name=None) -> Any: + target_name = name if not target_name else target_name + legacy_import = f"from promptflow import {name}" + new_import = f"from promptflow.{target_module} import {target_name}" + logging.warning(f"{legacy_import!r} is deprecated and will be removed in the future. Use {new_import!r} instead.") + + +def __getattr__(name): + if name in _imported_attr: + return _imported_attr[name] + if name in _core_attr: + from promptflow.core import ToolProvider, log_metric, tool + + _log_warning(name, "core") + _imported_attr[name] = locals()[name] + return _imported_attr[name] + if name in _client_attr: + # control plane sdk functions + from promptflow.client import PFClient, load_flow, load_run + + _log_warning(name, "client") + _imported_attr[name] = locals()[name] + return _imported_attr[name] + if name == "log_flow_metric": + # backward compatibility + from promptflow.core import log_metric + + _log_warning(name, "core", "log_metric") + _imported_attr[name] = log_metric + return _imported_attr[name] + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/src/promptflow/promptflow/_cli/_pf/_experiment.py b/src/promptflow/promptflow/_cli/_pf/_experiment.py index 22bc107b20e..f617c6cc10e 100644 --- a/src/promptflow/promptflow/_cli/_pf/_experiment.py +++ b/src/promptflow/promptflow/_cli/_pf/_experiment.py @@ -30,10 +30,14 @@ def _get_pf_client(): return _client -def add_param_template(parser): +def add_param_template_required(parser): parser.add_argument("--template", type=str, required=True, help="The experiment template path.") +def add_param_template(parser): + parser.add_argument("--template", type=str, help="The experiment template path.") + + def add_param_name(parser): parser.add_argument("--name", "-n", type=str, help="The experiment name.") @@ -68,7 +72,7 @@ def add_experiment_create(subparsers): # Create an experiment from a template: pf experiment create --template flow.exp.yaml """ - add_params = [add_param_template, add_param_name] + base_params + add_params = [add_param_template_required, add_param_name] + base_params create_parser = activate_action( name="create", diff --git a/src/promptflow/promptflow/_cli/_pf/_flow.py b/src/promptflow/promptflow/_cli/_pf/_flow.py index 8067967592a..96530e2d2d8 100644 --- a/src/promptflow/promptflow/_cli/_pf/_flow.py +++ b/src/promptflow/promptflow/_cli/_pf/_flow.py @@ -540,7 +540,7 @@ def serve_flow_csharp(args, source): def _resolve_python_flow_additional_includes(source) -> Path: # Resolve flow additional includes - from promptflow import load_flow + from promptflow.client import load_flow flow = load_flow(source) with FlowOperations._resolve_additional_includes(flow.path) as resolved_flow_path: diff --git a/src/promptflow/promptflow/_cli/data/entry_flow/tool.py.jinja2 b/src/promptflow/promptflow/_cli/data/entry_flow/tool.py.jinja2 index 5a549efcb5f..e5ae94aa565 100644 --- a/src/promptflow/promptflow/_cli/data/entry_flow/tool.py.jinja2 +++ b/src/promptflow/promptflow/_cli/data/entry_flow/tool.py.jinja2 @@ -1,6 +1,6 @@ import os -from promptflow import tool +from promptflow.core import tool from promptflow.connections import CustomConnection {{ function_import }} diff --git a/src/promptflow/promptflow/_cli/data/evaluation_flow/aggregate.py b/src/promptflow/promptflow/_cli/data/evaluation_flow/aggregate.py index 34344bbb5e0..0836484a20c 100644 --- a/src/promptflow/promptflow/_cli/data/evaluation_flow/aggregate.py +++ b/src/promptflow/promptflow/_cli/data/evaluation_flow/aggregate.py @@ -4,7 +4,7 @@ from typing import List -from promptflow import log_metric, tool +from promptflow.core import log_metric, tool @tool diff --git a/src/promptflow/promptflow/_cli/data/evaluation_flow/line_process.py b/src/promptflow/promptflow/_cli/data/evaluation_flow/line_process.py index c5abf52da35..39404bc9730 100644 --- a/src/promptflow/promptflow/_cli/data/evaluation_flow/line_process.py +++ b/src/promptflow/promptflow/_cli/data/evaluation_flow/line_process.py @@ -2,7 +2,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -from promptflow import tool +from promptflow.core import tool @tool diff --git a/src/promptflow/promptflow/_cli/data/package_tool/setup.py.jinja2 b/src/promptflow/promptflow/_cli/data/package_tool/setup.py.jinja2 index a7e71f02e83..2c55f99bf31 100644 --- a/src/promptflow/promptflow/_cli/data/package_tool/setup.py.jinja2 +++ b/src/promptflow/promptflow/_cli/data/package_tool/setup.py.jinja2 @@ -9,7 +9,7 @@ PACKAGE_NAME = "{{ package_name }}" class ToolMetaCacheBuild(build): def run(self): - from promptflow import PFClient + from promptflow.client import PFClient pf_client = PFClient() tools = pf_client.tools._list_tools_in_package(PACKAGE_NAME, raise_error=False) diff --git a/src/promptflow/promptflow/_cli/data/package_tool/tool.py.jinja2 b/src/promptflow/promptflow/_cli/data/package_tool/tool.py.jinja2 index 1c26ddb03c7..5ade7c4af56 100644 --- a/src/promptflow/promptflow/_cli/data/package_tool/tool.py.jinja2 +++ b/src/promptflow/promptflow/_cli/data/package_tool/tool.py.jinja2 @@ -2,7 +2,7 @@ from pathlib import Path {% endif %} -from promptflow import tool +from promptflow.core import tool from promptflow.connections import CustomConnection diff --git a/src/promptflow/promptflow/_cli/data/package_tool/utils.py.jinja2 b/src/promptflow/promptflow/_cli/data/package_tool/utils.py.jinja2 index bf5df05135b..1367c3c5593 100644 --- a/src/promptflow/promptflow/_cli/data/package_tool/utils.py.jinja2 +++ b/src/promptflow/promptflow/_cli/data/package_tool/utils.py.jinja2 @@ -23,7 +23,7 @@ def list_package_tools(raise_error=False): with open(meta_cache_file, "r") as f: tools = yaml.safe_load(f) else: - from promptflow import PFClient + from promptflow.client import PFClient pf_client = PFClient() tools = pf_client.tools._list_tools_in_package(package_name, raise_error=raise_error) diff --git a/src/promptflow/promptflow/_cli/data/standard_flow/hello.py b/src/promptflow/promptflow/_cli/data/standard_flow/hello.py index 37e2e59e87c..f533b2721cd 100644 --- a/src/promptflow/promptflow/_cli/data/standard_flow/hello.py +++ b/src/promptflow/promptflow/_cli/data/standard_flow/hello.py @@ -2,7 +2,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -from promptflow import tool +from promptflow.core import tool # The inputs section will change based on the arguments of the tool function, after you save the code # Adding type to arguments and return value will help the system show the types properly diff --git a/src/promptflow/promptflow/_sdk/_service/apis/span.py b/src/promptflow/promptflow/_sdk/_service/apis/span.py index deda79024b1..e7050ba73cf 100644 --- a/src/promptflow/promptflow/_sdk/_service/apis/span.py +++ b/src/promptflow/promptflow/_sdk/_service/apis/span.py @@ -106,7 +106,7 @@ class Spans(Resource): @api.marshal_list_with(span_model) @api.response(code=200, description="Spans") def get(self): - from promptflow import PFClient + from promptflow.client import PFClient client: PFClient = get_client_from_request() args = ListSpanParser.from_request() diff --git a/src/promptflow/promptflow/_sdk/_submitter/utils.py b/src/promptflow/promptflow/_sdk/_submitter/utils.py index 11cf59c3178..51219615e1e 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/utils.py +++ b/src/promptflow/promptflow/_sdk/_submitter/utils.py @@ -480,7 +480,7 @@ def calculate_files_content_hash(file_path): if ignore_item in dirs: dirs.remove(ignore_item) for file in files: - with open(os.path.join(root, file), "r") as f: + with open(os.path.join(root, file), "r", encoding="utf-8") as f: relative_path = (Path(root) / file).relative_to(Path(file_path)).as_posix() try: file_content[relative_path] = hashlib.md5(f.read().encode("utf8")).hexdigest() diff --git a/src/promptflow/promptflow/_sdk/data/executable/main.py b/src/promptflow/promptflow/_sdk/data/executable/main.py index 06970baf82f..ad80b3f7599 100644 --- a/src/promptflow/promptflow/_sdk/data/executable/main.py +++ b/src/promptflow/promptflow/_sdk/data/executable/main.py @@ -10,11 +10,11 @@ from streamlit_quill import st_quill from utils import dict_iter_render_message, parse_image_content, parse_list_from_html, render_single_dict_message -from promptflow import load_flow from promptflow._constants import STREAMING_ANIMATION_TIME from promptflow._sdk._submitter.utils import resolve_generator, resolve_generator_output_with_cache from promptflow._sdk._utils import dump_flow_result from promptflow._utils.multimedia_utils import convert_multimedia_data_to_base64, persist_multimedia_data +from promptflow.client import load_flow invoker = None diff --git a/src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_role.py b/src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_role.py index f468f9f6967..e259500478c 100644 --- a/src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_role.py +++ b/src/promptflow/promptflow/_sdk/entities/_chat_group/_chat_role.py @@ -5,9 +5,9 @@ from pathlib import Path from typing import Dict, Optional, Union -from promptflow import load_flow from promptflow._sdk._constants import DAG_FILE_NAME from promptflow._sdk._errors import ChatRoleError +from promptflow._sdk._load_functions import load_flow from promptflow._sdk.entities._chat_group._chat_group_io import ChatRoleInputs, ChatRoleOutputs from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow._utils.yaml_utils import load_yaml diff --git a/src/promptflow/promptflow/_sdk/entities/_run.py b/src/promptflow/promptflow/_sdk/entities/_run.py index 29754a4f08a..84e80257895 100644 --- a/src/promptflow/promptflow/_sdk/entities/_run.py +++ b/src/promptflow/promptflow/_sdk/entities/_run.py @@ -750,8 +750,8 @@ def _copy(self, **kwargs): def _flow_type(self) -> str: """Get flow type of run.""" - from promptflow import load_flow from promptflow._constants import FlowType + from promptflow._sdk._load_functions import load_flow from promptflow._sdk.entities._eager_flow import FlexFlow flow_obj = load_flow(source=self.flow) diff --git a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py index 8266e46548b..c5acc4cba0c 100644 --- a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py +++ b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py @@ -732,7 +732,7 @@ def _generate_tools_meta( This is a private interface for vscode extension, so do not change the interface unless necessary. Usage: - from promptflow import PFClient + from promptflow.client import PFClient PFClient().flows._generate_tools_meta(flow="flow.dag.yaml", source_name="convert_to_dict.py") :param flow: path to the flow directory or flow dag to export @@ -812,7 +812,7 @@ def _generate_flow_meta( This is a private interface for vscode extension, so do not change the interface unless necessary. Usage: - from promptflow import PFClient + from promptflow.client import PFClient PFClient().flows._generate_flow_meta(flow="flow.dag.yaml") :param flow: path to the flow directory or flow dag to export diff --git a/src/promptflow/promptflow/_utils/_errors.py b/src/promptflow/promptflow/_utils/_errors.py index bbac5aff7d8..435d74d1bdc 100644 --- a/src/promptflow/promptflow/_utils/_errors.py +++ b/src/promptflow/promptflow/_utils/_errors.py @@ -1,4 +1,4 @@ -from promptflow.exceptions import SystemErrorException, UserErrorException, ValidationException +from promptflow.exceptions import ErrorTarget, SystemErrorException, UserErrorException, ValidationException class InvalidImageInput(ValidationException): @@ -13,3 +13,8 @@ class YamlParseError(SystemErrorException): """Exception raised when yaml parse failed.""" pass + + +class ApplyInputMappingError(ValidationException): + def __init__(self, target: ErrorTarget = ErrorTarget.CORE, **kwargs): + super().__init__(target=target, **kwargs) diff --git a/src/promptflow/promptflow/_utils/inputs_mapping_utils.py b/src/promptflow/promptflow/_utils/inputs_mapping_utils.py index 4a681bdbafd..ea93ab823ad 100644 --- a/src/promptflow/promptflow/_utils/inputs_mapping_utils.py +++ b/src/promptflow/promptflow/_utils/inputs_mapping_utils.py @@ -5,8 +5,8 @@ from typing import Any, Dict, Mapping from promptflow._constants import LINE_NUMBER_KEY +from promptflow._utils._errors import ApplyInputMappingError from promptflow._utils.logger_utils import LoggerFactory -from promptflow.batch._errors import InputMappingError logger = LoggerFactory.get_logger(name=__name__) @@ -78,7 +78,7 @@ def apply_inputs_mapping( # Return all not found mapping relations in one exception to provide better debug experience. if notfound_mapping_relations: invalid_relations = ", ".join(notfound_mapping_relations) - raise InputMappingError( + raise ApplyInputMappingError( message_format=( "The input for batch run is incorrect. Couldn't find these mapping relations: {invalid_relations}. " "Please make sure your input mapping keys and values match your YAML input section and input data. " diff --git a/src/promptflow/promptflow/client/__init__.py b/src/promptflow/promptflow/client/__init__.py index cefbb078768..b6b158838d1 100644 --- a/src/promptflow/promptflow/client/__init__.py +++ b/src/promptflow/promptflow/client/__init__.py @@ -4,8 +4,8 @@ __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore # control plane sdk functions -from promptflow._sdk._load_functions import load_run +from promptflow._sdk._load_functions import load_flow, load_run from .._sdk._pf_client import PFClient -__all__ = ["PFClient", "load_run"] +__all__ = ["PFClient", "load_run", "load_flow"] diff --git a/src/promptflow/promptflow/core/__init__.py b/src/promptflow/promptflow/core/__init__.py index c1ebf0e1df3..f83d5a2d1b4 100644 --- a/src/promptflow/promptflow/core/__init__.py +++ b/src/promptflow/promptflow/core/__init__.py @@ -12,5 +12,4 @@ # backward compatibility log_flow_metric = log_metric -# TODO: Add the Flow class __all__ = ["log_metric", "ToolProvider", "tool", "Flow", "AsyncFlow"] diff --git a/src/promptflow/promptflow/core/_flow_context_resolver.py b/src/promptflow/promptflow/core/_flow_context_resolver.py index 615aeb6e9f3..615c76dc4b0 100644 --- a/src/promptflow/promptflow/core/_flow_context_resolver.py +++ b/src/promptflow/promptflow/core/_flow_context_resolver.py @@ -27,7 +27,7 @@ class FlowContextResolver: """Flow context resolver.""" def __init__(self, flow_path: PathLike): - from promptflow import PFClient + from promptflow._sdk._pf_client import PFClient self.flow_path, self.flow_dag = load_flow_dag(flow_path=Path(flow_path)) self.working_dir = Path(self.flow_path).parent.resolve() diff --git a/src/promptflow/promptflow/core/_serving/flow_invoker.py b/src/promptflow/promptflow/core/_serving/flow_invoker.py index 5a580561d64..66517245f2a 100644 --- a/src/promptflow/promptflow/core/_serving/flow_invoker.py +++ b/src/promptflow/promptflow/core/_serving/flow_invoker.py @@ -5,8 +5,8 @@ from pathlib import Path from typing import Callable, Union -from promptflow import PFClient from promptflow._sdk._load_functions import load_flow +from promptflow._sdk._pf_client import PFClient from promptflow._sdk._utils import ( dump_flow_result, get_local_connections_from_executable, diff --git a/src/promptflow/tests/executor/unittests/batch/test_batch_inputs_processor.py b/src/promptflow/tests/executor/unittests/batch/test_batch_inputs_processor.py index 3b842aae4ed..59491138298 100644 --- a/src/promptflow/tests/executor/unittests/batch/test_batch_inputs_processor.py +++ b/src/promptflow/tests/executor/unittests/batch/test_batch_inputs_processor.py @@ -5,6 +5,7 @@ import pytest from promptflow._core._errors import UnexpectedError +from promptflow._utils._errors import ApplyInputMappingError from promptflow._utils.inputs_mapping_utils import apply_inputs_mapping from promptflow._utils.utils import dump_list_to_jsonl from promptflow.batch._batch_inputs_processor import BatchInputsProcessor @@ -135,7 +136,7 @@ def test_apply_inputs_mapping(self, inputs, inputs_mapping, expected): "question": "${baseline.output}", "answer": "${data.output}", }, - InputMappingError, + ApplyInputMappingError, "Couldn't find these mapping relations: ${baseline.output}, ${data.output}. " "Please make sure your input mapping keys and values match your YAML input section and input data.", ), diff --git a/src/promptflow/tests/sdk_cli_test/conftest.py b/src/promptflow/tests/sdk_cli_test/conftest.py index 5f309a4875f..b64a671639b 100644 --- a/src/promptflow/tests/sdk_cli_test/conftest.py +++ b/src/promptflow/tests/sdk_cli_test/conftest.py @@ -10,12 +10,12 @@ from pytest_mock import MockerFixture from sqlalchemy import create_engine -from promptflow import PFClient from promptflow._sdk._configuration import Configuration from promptflow._sdk._constants import EXPERIMENT_CREATED_ON_INDEX_NAME, EXPERIMENT_TABLE_NAME, LOCAL_MGMT_DB_PATH from promptflow._sdk.entities import AzureOpenAIConnection as AzureOpenAIConnectionEntity from promptflow._sdk.entities._connection import CustomConnection, _Connection from promptflow._utils.utils import is_in_ci_pipeline +from promptflow.client import PFClient from promptflow.core._serving.app import create_app as create_serving_app from promptflow.executor._line_execution_process_pool import _process_wrapper from promptflow.executor._process_manager import create_spawned_fork_process_manager From 2795a2cff594e156a7994f9cc4bfb2059292fe3d Mon Sep 17 00:00:00 2001 From: Xingzhi Zhang <37076709+elliotzh@users.noreply.github.com> Date: Tue, 19 Mar 2024 19:51:26 +0800 Subject: [PATCH 087/204] refactor: separate core.Flow and devkit Flow (#2383) # Description This PR mainly focus on clean the dependencies from core to devkit. Includes: 1. centralize the usage of `get_used_connection_names` 1. move cross-flow functionality to `InspectorProxy` in devkit 2. `core.Flow` is not super class of devkit Flow anymore 3. some utils and constants has been moved from devkit to core This pull request includes a series of changes to the `promptflow` package, focusing on improving the codebase, refactoring the flow execution and inspection logic, and updating the way connections are resolved. The most significant changes involve the creation of a new `ProxyFactory` class, the introduction of `AbstractInspectorProxy` and its subclasses, and the removal of redundant methods. Refactoring flow execution and inspection logic: * [`src/promptflow/promptflow/_cli/_pf/_init_entry_generators.py`](diffhunk://#diff-746b4bd84b2bf1ff736d6abe49639a025f3c7c3264f2001e331dafcffe2a5a0dL16-R16): Replaced `FlowOperations` module with `flow_utils` for checking if a flow is executable, and updated the `__init__` method accordingly. [[1]](diffhunk://#diff-746b4bd84b2bf1ff736d6abe49639a025f3c7c3264f2001e331dafcffe2a5a0dL16-R16) [[2]](diffhunk://#diff-746b4bd84b2bf1ff736d6abe49639a025f3c7c3264f2001e331dafcffe2a5a0dL234-R234) * [`src/promptflow/promptflow/_proxy/_proxy_factory.py`](diffhunk://#diff-936478766b9de290e8791c802585d3932cfed416ae7b50daa76396dacf88cdf5R8-R15): Renamed `ExecutorProxyFactory` to `ProxyFactory` and added a new method `create_inspector_proxy` to create inspector proxies based on the language. [[1]](diffhunk://#diff-936478766b9de290e8791c802585d3932cfed416ae7b50daa76396dacf88cdf5R8-R15) [[2]](diffhunk://#diff-936478766b9de290e8791c802585d3932cfed416ae7b50daa76396dacf88cdf5R54-R64) * `src/promptflow/promptflow/_proxy/__init__.py`, `src/promptflow/promptflow/_proxy/_base_inspector_proxy.py`, `src/promptflow/promptflow/_proxy/_csharp_inspector_proxy.py`, `src/promptflow/promptflow/_proxy/_python_inspector_proxy.py`: Introduced `AbstractInspectorProxy` and its subclasses `CSharpInspectorProxy` and `PythonInspectorProxy` for inspecting the definition of a Flow. [[1]](diffhunk://#diff-db890b29f2c05ea85ec282550510ac0b0e4761b6be77af142b2e659d4e5a00b0R1-R8) [[2]](diffhunk://#diff-69df25f8ddfbeed622ae5cf13f97f439110586d51262ed1201ce5f3f30f18231R1-R27) [[3]](diffhunk://#diff-3a3b6fcbb15ab97d02280e29888e85dc5c50ca6a78f930442b9fd83a5e219a31R1-R41) [[4]](diffhunk://#diff-a362f804bcd889c4254da0b3249def515e14306ff5dfbf951dff3d8c12b4e7a2R1-R17) Improvements to connection resolution: * `src/promptflow/promptflow/_sdk/_submitter/run_submitter.py`, `src/promptflow/promptflow/_sdk/_submitter/test_submitter.py`, `src/promptflow/promptflow/_sdk/_submitter/utils.py`: Updated the connection resolution logic by replacing the `ExecutorProxyFactory` with `ProxyFactory` and removing redundant methods. The `resolve_connections` method now uses the `ProxyFactory` to create an inspector proxy and get used connection names. [[1]](diffhunk://#diff-e3499cf713c66612d91723759de1c5076c22689b2ce2c89678f82de624b57c2cL110-R116) [[2]](diffhunk://#diff-d9dd2c09a149b11eb54626edf065287eeb7b1a28e39719b8dd95377770f64138L248-R225) [[3]](diffhunk://#diff-38c78274ff4a19381a2129bfd86174d225e0d8537b48c80aa8f6feaca25083abL255-R281) [[4]](diffhunk://#diff-38c78274ff4a19381a2129bfd86174d225e0d8537b48c80aa8f6feaca25083abL332-R341) Codebase simplification: * [`src/promptflow/promptflow/_core/connection_manager.py`](diffhunk://#diff-9e330c43ad9a3ea8a549e4015cf7972b9778afb4d01f3bdcc2d8f84ea37963acL12-R17): Consolidated import statements for better readability. * `src/promptflow/promptflow/_sdk/_pf_client.py`, `src/promptflow/promptflow/_sdk/_submitter/run_submitter.py`: Replaced `FlexFlow` import from `entities._eager_flow` to `entities._flow`. [[1]](diffhunk://#diff-c100045cd304dbaa66dd61b7087f78b813ce01e8566d0b823b293bb35755eccfL18-R18) [[2]](diffhunk://#diff-e3499cf713c66612d91723759de1c5076c22689b2ce2c89678f82de624b57c2cL26-R26) * `src/promptflow/promptflow/_sdk/_submitter/test_submitter.py`, `src/promptflow/promptflow/_sdk/_submitter/utils.py`: Removed unused import statements and methods, and moved the `dump_flow_result` function to `flow_utils`. [[1]](diffhunk://#diff-d9dd2c09a149b11eb54626edf065287eeb7b1a28e39719b8dd95377770f64138R14-R17) [[2]](diffhunk://#diff-d9dd2c09a149b11eb54626edf065287eeb7b1a28e39719b8dd95377770f64138R31-R35) [[3]](diffhunk://#diff-38c78274ff4a19381a2129bfd86174d225e0d8537b48c80aa8f6feaca25083abR28) * [`src/promptflow/promptflow/_sdk/_utils.py`](diffhunk://#diff-47208ac35b30920275fcd5e55d662647ef360129359bdc77fddd2a2157b6f47eL65): Removed unused `serialize` import from `dataclass_serializer`. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- .../_cli/_pf/_init_entry_generators.py | 4 +- .../promptflow/_core/connection_manager.py | 8 +- src/promptflow/promptflow/_proxy/__init__.py | 8 + .../_proxy/_base_inspector_proxy.py | 27 ++ .../_proxy/_csharp_inspector_proxy.py | 41 +++ .../_proxy_factory.py} | 14 +- .../_proxy/_python_inspector_proxy.py | 17 ++ src/promptflow/promptflow/_sdk/_pf_client.py | 2 +- .../_sdk/_submitter/run_submitter.py | 14 +- .../_sdk/_submitter/test_submitter.py | 37 +-- .../promptflow/_sdk/_submitter/utils.py | 63 +++-- src/promptflow/promptflow/_sdk/_utils.py | 63 ----- .../promptflow/_sdk/data/executable/main.py | 2 +- .../_sdk/entities/_flow/__init__.py | 10 + .../entities/_flow}/_flow_context_resolver.py | 10 +- .../_sdk/entities/_flow/async_dag.py | 73 +++++ .../promptflow/_sdk/entities/_flow/base.py | 256 ++++++++++++++++++ .../_sdk/entities/{_flow.py => _flow/dag.py} | 42 +-- .../{_eager_flow.py => _flow/flex.py} | 52 +++- .../promptflow/_sdk/entities/_run.py | 2 +- .../_sdk/operations/_flow_operations.py | 58 +--- .../operations/_local_storage_operations.py | 3 +- src/promptflow/promptflow/_utils/docs.py | 27 ++ .../promptflow/_utils/flow_utils.py | 98 ++++++- .../azure/operations/_flow_operations.py | 4 +- src/promptflow/promptflow/batch/__init__.py | 2 - .../promptflow/batch/_base_executor_proxy.py | 48 ++-- .../promptflow/batch/_batch_engine.py | 6 +- src/promptflow/promptflow/core/_flow.py | 7 +- .../promptflow/core/_serving/app.py | 12 +- .../_serving/extension/default_extension.py | 7 +- .../promptflow/core/_serving/flow_invoker.py | 53 ++-- src/promptflow/promptflow/core/_utils.py | 15 +- .../executor/e2etests/test_batch_server.py | 7 +- .../e2etests/test_csharp_executor_proxy.py | 4 +- .../unittests/batch/test_batch_engine.py | 12 +- .../e2etests/test_global_config.py | 11 +- .../sdk_cli_test/e2etests/test_csharp_cli.py | 12 + .../e2etests/test_flow_as_func.py | 2 +- .../tests/sdk_cli_test/unittests/test_flow.py | 3 +- .../unittests/test_flow_invoker.py | 30 +- 41 files changed, 829 insertions(+), 337 deletions(-) create mode 100644 src/promptflow/promptflow/_proxy/__init__.py create mode 100644 src/promptflow/promptflow/_proxy/_base_inspector_proxy.py create mode 100644 src/promptflow/promptflow/_proxy/_csharp_inspector_proxy.py rename src/promptflow/promptflow/{batch/_executor_proxy_factory.py => _proxy/_proxy_factory.py} (78%) create mode 100644 src/promptflow/promptflow/_proxy/_python_inspector_proxy.py create mode 100644 src/promptflow/promptflow/_sdk/entities/_flow/__init__.py rename src/promptflow/promptflow/{core => _sdk/entities/_flow}/_flow_context_resolver.py (94%) create mode 100644 src/promptflow/promptflow/_sdk/entities/_flow/async_dag.py create mode 100644 src/promptflow/promptflow/_sdk/entities/_flow/base.py rename src/promptflow/promptflow/_sdk/entities/{_flow.py => _flow/dag.py} (79%) rename src/promptflow/promptflow/_sdk/entities/{_eager_flow.py => _flow/flex.py} (68%) create mode 100644 src/promptflow/promptflow/_utils/docs.py diff --git a/src/promptflow/promptflow/_cli/_pf/_init_entry_generators.py b/src/promptflow/promptflow/_cli/_pf/_init_entry_generators.py index 615c096e25e..4068a7dee31 100644 --- a/src/promptflow/promptflow/_cli/_pf/_init_entry_generators.py +++ b/src/promptflow/promptflow/_cli/_pf/_init_entry_generators.py @@ -13,7 +13,7 @@ from jinja2 import Environment, Template, meta from promptflow._sdk._constants import DEFAULT_ENCODING -from promptflow._sdk.operations._flow_operations import FlowOperations +from promptflow._utils.flow_utils import is_executable_chat_flow from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow.contracts.flow import Flow as ExecutableFlow from promptflow.exceptions import UserErrorException @@ -231,7 +231,7 @@ def __init__(self, flow_name, flow_dag_path): self.executable = ExecutableFlow.from_yaml( flow_file=Path(self.flow_dag_path.name), working_dir=self.flow_dag_path.parent ) - self.is_chat_flow, self.chat_history_input_name, error_msg = FlowOperations._is_chat_flow(self.executable) + self.is_chat_flow, self.chat_history_input_name, error_msg = is_executable_chat_flow(self.executable) @property def flow_inputs(self): diff --git a/src/promptflow/promptflow/_core/connection_manager.py b/src/promptflow/promptflow/_core/connection_manager.py index e1bc4b4b1b4..f94daf0df77 100644 --- a/src/promptflow/promptflow/_core/connection_manager.py +++ b/src/promptflow/promptflow/_core/connection_manager.py @@ -9,8 +9,12 @@ from pathlib import Path from typing import Any, Dict, List -from promptflow._constants import CONNECTION_NAME_PROPERTY, CONNECTION_SECRET_KEYS, PROMPTFLOW_CONNECTIONS -from promptflow._sdk._constants import CustomStrongTypeConnectionConfigs +from promptflow._constants import ( + CONNECTION_NAME_PROPERTY, + CONNECTION_SECRET_KEYS, + PROMPTFLOW_CONNECTIONS, + CustomStrongTypeConnectionConfigs, +) from promptflow._utils.utils import try_import from promptflow.contracts.tool import ConnectionType from promptflow.contracts.types import Secret diff --git a/src/promptflow/promptflow/_proxy/__init__.py b/src/promptflow/promptflow/_proxy/__init__.py new file mode 100644 index 00000000000..a2fcd5b47f9 --- /dev/null +++ b/src/promptflow/promptflow/_proxy/__init__.py @@ -0,0 +1,8 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +from ._base_inspector_proxy import AbstractInspectorProxy +from ._proxy_factory import ProxyFactory + +__all__ = ["ProxyFactory", "AbstractInspectorProxy"] diff --git a/src/promptflow/promptflow/_proxy/_base_inspector_proxy.py b/src/promptflow/promptflow/_proxy/_base_inspector_proxy.py new file mode 100644 index 00000000000..ac7a1b38eb1 --- /dev/null +++ b/src/promptflow/promptflow/_proxy/_base_inspector_proxy.py @@ -0,0 +1,27 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +from pathlib import Path +from typing import List + + +class AbstractInspectorProxy: + """Inspector proxies may provide language specific ability to inspect definition of a Flow. + Definition may include: + - Used connection names + - Used tools + - Available tools under current environment + - Input and output ports of the flow + - etc. + + Such information need to be extracted with reflection in language specific runtime environment, so each language + may have its own inspector proxy; on the other hand, different from executor proxy, whose instance will be bonded + to a specific flow, inspector proxy is stateless and can be used on a flow before its initialization. + """ + + def __init__(self): + pass + + def get_used_connection_names(self, flow_file: Path, working_dir: Path) -> List[str]: + """Check the type of each node input/attribute and return the connection names used in the flow.""" + raise NotImplementedError() diff --git a/src/promptflow/promptflow/_proxy/_csharp_inspector_proxy.py b/src/promptflow/promptflow/_proxy/_csharp_inspector_proxy.py new file mode 100644 index 00000000000..5c6f540d5fb --- /dev/null +++ b/src/promptflow/promptflow/_proxy/_csharp_inspector_proxy.py @@ -0,0 +1,41 @@ +import re +from collections import defaultdict +from pathlib import Path +from typing import List + +import pydash + +from promptflow._sdk._constants import ALL_CONNECTION_TYPES, FLOW_TOOLS_JSON, PROMPT_FLOW_DIR_NAME +from promptflow._utils.flow_utils import read_json_content +from promptflow._utils.yaml_utils import load_yaml + +from ._base_inspector_proxy import AbstractInspectorProxy + + +class CSharpInspectorProxy(AbstractInspectorProxy): + def __init__(self): + super().__init__() + + def get_used_connection_names(self, flow_file: Path, working_dir: Path) -> List[str]: + flow_tools_json_path = working_dir / PROMPT_FLOW_DIR_NAME / FLOW_TOOLS_JSON + tools_meta = read_json_content(flow_tools_json_path, "meta of tools") + flow_dag = load_yaml(flow_file) + + connection_inputs = defaultdict(set) + for package_id, package_meta in tools_meta.get("package", {}).items(): + for tool_input_key, tool_input_meta in package_meta.get("inputs", {}).items(): + if ALL_CONNECTION_TYPES.intersection(set(tool_input_meta.get("type"))): + connection_inputs[package_id].add(tool_input_key) + + connection_names = set() + # TODO: we assume that all variants are resolved here + # TODO: only literal connection inputs are supported + # TODO: check whether we should ask for a specific function in csharp-core + for node in flow_dag.get("nodes", []): + package_id = pydash.get(node, "source.tool") + if package_id in connection_inputs: + for connection_input in connection_inputs[package_id]: + connection_name = pydash.get(node, f"inputs.{connection_input}") + if connection_name and not re.match(r"\${.*}", connection_name): + connection_names.add(connection_name) + return list(connection_names) diff --git a/src/promptflow/promptflow/batch/_executor_proxy_factory.py b/src/promptflow/promptflow/_proxy/_proxy_factory.py similarity index 78% rename from src/promptflow/promptflow/batch/_executor_proxy_factory.py rename to src/promptflow/promptflow/_proxy/_proxy_factory.py index d581689ffe3..0799b3cd38a 100644 --- a/src/promptflow/promptflow/batch/_executor_proxy_factory.py +++ b/src/promptflow/promptflow/_proxy/_proxy_factory.py @@ -5,13 +5,14 @@ from typing import Dict, Type from promptflow._constants import FlowLanguage +from promptflow._proxy import AbstractInspectorProxy from promptflow._utils.async_utils import async_run_allowing_running_loop from promptflow.batch._base_executor_proxy import AbstractExecutorProxy from promptflow.batch._csharp_executor_proxy import CSharpExecutorProxy from promptflow.batch._python_executor_proxy import PythonExecutorProxy -class ExecutorProxyFactory: +class ProxyFactory: executor_proxy_classes: Dict[str, Type[AbstractExecutorProxy]] = { FlowLanguage.Python: PythonExecutorProxy, FlowLanguage.CSharp: CSharpExecutorProxy, @@ -50,3 +51,14 @@ def create_executor_proxy( storage=storage, **kwargs, ) + + def create_inspector_proxy(self, language: str, **kwargs) -> AbstractInspectorProxy: + if language == FlowLanguage.Python: + from promptflow._proxy._python_inspector_proxy import PythonInspectorProxy + + return PythonInspectorProxy() + elif language == FlowLanguage.CSharp: + from promptflow._proxy._csharp_inspector_proxy import CSharpInspectorProxy + + return CSharpInspectorProxy() + raise ValueError(f"Unsupported language: {language}") diff --git a/src/promptflow/promptflow/_proxy/_python_inspector_proxy.py b/src/promptflow/promptflow/_proxy/_python_inspector_proxy.py new file mode 100644 index 00000000000..b552eb4febb --- /dev/null +++ b/src/promptflow/promptflow/_proxy/_python_inspector_proxy.py @@ -0,0 +1,17 @@ +from pathlib import Path +from typing import List + +from ._base_inspector_proxy import AbstractInspectorProxy + + +class PythonInspectorProxy(AbstractInspectorProxy): + def __init__(self): + super().__init__() + + def get_used_connection_names(self, flow_file: Path, working_dir: Path) -> List[str]: + from promptflow._utils.context_utils import _change_working_dir + from promptflow.contracts.flow import Flow as ExecutableFlow + + with _change_working_dir(working_dir): + executable = ExecutableFlow.from_yaml(flow_file=flow_file, working_dir=working_dir) + return executable.get_connection_names() diff --git a/src/promptflow/promptflow/_sdk/_pf_client.py b/src/promptflow/promptflow/_sdk/_pf_client.py index f4cac52beb3..8e0f5658c2a 100644 --- a/src/promptflow/promptflow/_sdk/_pf_client.py +++ b/src/promptflow/promptflow/_sdk/_pf_client.py @@ -15,7 +15,7 @@ from ._load_functions import load_flow from ._user_agent import USER_AGENT from .entities import Run -from .entities._eager_flow import FlexFlow +from .entities._flow import FlexFlow from .operations import RunOperations from .operations._connection_operations import ConnectionOperations from .operations._experiment_operations import ExperimentOperations diff --git a/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py b/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py index 3cd99b54363..1a7639b7168 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py +++ b/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py @@ -23,7 +23,7 @@ from ..._utils.logger_utils import LoggerFactory from .._configuration import Configuration from .._load_functions import load_flow -from ..entities._eager_flow import FlexFlow +from ..entities._flow import FlexFlow from .utils import SubmitterHelper, variant_overwrite_context logger = LoggerFactory.get_logger(name=__name__) @@ -107,17 +107,15 @@ def _submit_bulk_run(self, flow: Union[Flow, FlexFlow], run: Run, local_storage: run_id = run.name # for python, we can get metadata in-memory, so no need to dump them first if flow.language != FlowLanguage.Python: - from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory + from promptflow._proxy import ProxyFactory # variants are resolved in the context, so we can't move this logic to Operations for now - ExecutorProxyFactory().get_executor_proxy_cls(flow.language).dump_metadata( + ProxyFactory().get_executor_proxy_cls(flow.language).dump_metadata( flow_file=Path(flow.path), working_dir=Path(flow.code) ) - # TODO: shall we resolve connections here? - connections = [] - else: - with _change_working_dir(flow.code): - connections = SubmitterHelper.resolve_connections(flow=flow) + + with _change_working_dir(flow.code): + connections = SubmitterHelper.resolve_connections(flow=flow) column_mapping = run.column_mapping # resolve environment variables run.environment_variables = SubmitterHelper.load_and_resolve_environment_variables( diff --git a/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py b/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py index 9b772f4a4aa..243c4e732ed 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py +++ b/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py @@ -11,9 +11,10 @@ from colorama import Fore, init from promptflow._internal import ConnectionManager +from promptflow._proxy import ProxyFactory from promptflow._sdk._constants import PROMPT_FLOW_DIR_NAME -from promptflow._sdk._utils import dump_flow_result, parse_variant -from promptflow._sdk.entities._flow import Flow, FlowBase, FlowContext +from promptflow._sdk._utils import parse_variant +from promptflow._sdk.entities._flow import Flow, FlowContext from promptflow._sdk.operations._local_storage_operations import LoggerOperations from promptflow._utils.context_utils import _change_working_dir from promptflow._utils.exception_utils import ErrorResponse @@ -27,11 +28,11 @@ from ..._core._errors import NotSupported from ..._utils.async_utils import async_run_allowing_running_loop from ..._utils.dataclass_serializer import convert_eager_flow_output_to_dict +from ..._utils.flow_utils import dump_flow_result from ..._utils.logger_utils import get_cli_sdk_logger from ...batch import APIBasedExecutorProxy, CSharpExecutorProxy -from ...batch._executor_proxy_factory import ExecutorProxyFactory from .._configuration import Configuration -from ..entities._eager_flow import FlexFlow +from ..entities._flow import FlexFlow from .utils import ( SubmitterHelper, print_chat_output, @@ -159,30 +160,6 @@ def _resolve_variant(self): self._tuning_node = None self._node_variant = None - @classmethod - def _resolve_connections(cls, flow: FlowBase, client): - if flow.language == FlowLanguage.CSharp: - # TODO: check if this is a shared logic - if isinstance(flow, FlexFlow): - # connection overrides are not supported for eager flow for now - return {} - - # TODO: is it possible that we resolve connections after executor proxy is created? - from promptflow.batch import CSharpExecutorProxy - - return SubmitterHelper.resolve_used_connections( - flow=flow, - tools_meta=CSharpExecutorProxy.generate_flow_tools_json( - flow_file=flow.flow_dag_path, - working_dir=flow.code, - ), - client=client, - ) - if flow.language == FlowLanguage.Python: - # TODO: test submitter should not interact with dataplane flow directly - return SubmitterHelper.resolve_connections(flow=flow, client=client) - raise UserErrorException(f"Unsupported flow language {flow.language}") - @classmethod def _resolve_environment_variables(cls, environment_variable_overrides, flow: Flow, client): return SubmitterHelper.load_and_resolve_environment_variables( @@ -245,7 +222,7 @@ def init( # Python flow may get metadata in-memory, so no need to dump them first if self.flow.language != FlowLanguage.Python: # variant is resolve in the context, so we can't move this to Operations for now - ExecutorProxyFactory().get_executor_proxy_cls(self.flow.language).dump_metadata( + ProxyFactory().get_executor_proxy_cls(self.flow.language).dump_metadata( flow_file=self.flow.path, working_dir=self.flow.code, ) @@ -275,7 +252,7 @@ def init( self._relative_flow_output_path = output_sub / "output" # use flow instead of origin_flow here, as flow can be incomplete before resolving additional includes - self._connections = connections or self._resolve_connections( + self._connections = connections or SubmitterHelper.resolve_connections( self.flow, self._client, ) diff --git a/src/promptflow/promptflow/_sdk/_submitter/utils.py b/src/promptflow/promptflow/_sdk/_submitter/utils.py index 51219615e1e..94498355b05 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/utils.py +++ b/src/promptflow/promptflow/_sdk/_submitter/utils.py @@ -25,6 +25,7 @@ from pydash import objects from promptflow._constants import STREAMING_ANIMATION_TIME +from promptflow._proxy import ProxyFactory from promptflow._sdk._constants import ( ALL_CONNECTION_TYPES, DEFAULT_VAR_ID, @@ -41,13 +42,10 @@ from promptflow._sdk._load_functions import load_flow from promptflow._sdk._utils import ( _merge_local_code_and_additional_includes, - get_local_connections_from_executable, get_used_connection_names_from_dict, update_dict_value_with_connections, ) -from promptflow._sdk.entities._eager_flow import FlexFlow -from promptflow._sdk.entities._flow import Flow -from promptflow._utils.context_utils import _change_working_dir +from promptflow._sdk.entities._flow import FlexFlow, Flow from promptflow._utils.flow_utils import dump_flow_dag, load_flow_dag from promptflow._utils.logger_utils import FileHandler, get_cli_sdk_logger from promptflow.contracts.flow import Flow as ExecutableFlow @@ -252,38 +250,35 @@ def init_env(cls, environment_variables): load_dotenv(environment_variables) @staticmethod - def resolve_connections(flow: Flow, client=None, connections_to_ignore=None) -> dict: - # TODO 2856400: use resolve_used_connections instead of this function to avoid using executable in control-plane - from promptflow._sdk.entities._eager_flow import FlexFlow - - from .._pf_client import PFClient + def resolve_connections( + flow: Flow, client=None, *, connections_to_ignore=None, connections_to_add: List[str] = None + ) -> dict: + from promptflow._sdk.entities._flow import FlexFlow if isinstance(flow, FlexFlow): # TODO(2898247): support prompt flow management connection for eager flow return {} + from .._pf_client import PFClient + client = client or PFClient() - with _change_working_dir(flow.code): - executable = ExecutableFlow.from_yaml(flow_file=flow.path, working_dir=flow.code) - executable.name = str(Path(flow.code).stem) - return get_local_connections_from_executable( - executable=executable, client=client, connections_to_ignore=connections_to_ignore + connection_names = ( + ProxyFactory() + .create_inspector_proxy(flow.language) + .get_used_connection_names( + flow_file=flow.path, + working_dir=flow.code, + ) ) - @staticmethod - def resolve_used_connections(flow: Flow, tools_meta: dict, client, connections_to_ignore=None) -> dict: - from .._pf_client import PFClient - - client = client or PFClient() - connection_names = SubmitterHelper.get_used_connection_names(tools_meta=tools_meta, flow_dag=flow._data) - connections_to_ignore = connections_to_ignore or [] - result = {} - for n in connection_names: - if n not in connections_to_ignore: - conn = client.connections.get(name=n, with_secrets=True) - result[n] = conn._to_execution_connection_dict() - return result + return SubmitterHelper.resolve_connection_names( + connection_names=connection_names, + client=client, + connections_to_ignore=connections_to_ignore, + raise_error=True, + connections_to_add=connections_to_add, + ) @staticmethod def get_used_connection_names(tools_meta: dict, flow_dag: dict): @@ -329,9 +324,21 @@ def resolve_environment_variables(cls, environment_variables: dict, client=None) update_dict_value_with_connections(built_connections=connections, connection_dict=environment_variables) @staticmethod - def resolve_connection_names(connection_names, client, raise_error=False): + def resolve_connection_names( + connection_names, + client, + *, + raise_error=False, + connections_to_ignore=None, + connections_to_add=None, + ): + connection_names = set(connection_names) + if connections_to_add: + connection_names.update(connections_to_add) result = {} for n in connection_names: + if connections_to_ignore and n in connections_to_ignore: + continue try: conn = client.connections.get(name=n, with_secrets=True) result[n] = conn._to_execution_connection_dict() diff --git a/src/promptflow/promptflow/_sdk/_utils.py b/src/promptflow/promptflow/_sdk/_utils.py index 222e57472c0..87b99c8253b 100644 --- a/src/promptflow/promptflow/_sdk/_utils.py +++ b/src/promptflow/promptflow/_sdk/_utils.py @@ -62,7 +62,6 @@ ) from promptflow._sdk._vendor import IgnoreFile, get_ignore_file, get_upload_files_from_folder from promptflow._utils.context_utils import _change_working_dir, inject_sys_path -from promptflow._utils.dataclass_serializer import serialize from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow._utils.user_agent_utils import ClientUserAgentUtil from promptflow._utils.utils import _match_reference @@ -783,29 +782,6 @@ def is_template(path: str): ) -def get_local_connections_from_executable( - executable, client, connections_to_ignore: List[str] = None, connections_to_add: List[str] = None -): - """Get local connections from executable. - - executable: The executable flow object. - client: Local client to get connections. - connections_to_ignore: The connection names to ignore when getting connections. - connections_to_add: The connection names to add when getting connections. - """ - - connection_names = executable.get_connection_names() - if connections_to_add: - connection_names.update(connections_to_add) - connections_to_ignore = connections_to_ignore or [] - result = {} - for n in connection_names: - if n not in connections_to_ignore: - conn = client.connections.get(name=n, with_secrets=True) - result[n] = conn._to_execution_connection_dict() - return result - - def _generate_connections_dir(): # Get Python executable path python_path = sys.executable @@ -846,45 +822,6 @@ def refresh_connections_dir(connection_spec_files, connection_template_yamls): dump_yaml(yaml_data, f) -def dump_flow_result(flow_folder, prefix, flow_result=None, node_result=None, custom_path=None): - """Dump flow result for extension. - - :param flow_folder: The flow folder. - :param prefix: The file prefix. - :param flow_result: The flow result returned by exec_line. - :param node_result: The node result when test node returned by load_and_exec_node. - :param custom_path: The custom path to dump flow result. - """ - if flow_result: - flow_serialize_result = { - "flow_runs": [serialize(flow_result.run_info)], - "node_runs": [serialize(run) for run in flow_result.node_run_infos.values()], - } - else: - flow_serialize_result = { - "flow_runs": [], - "node_runs": [serialize(node_result)], - } - - dump_folder = Path(flow_folder) / PROMPT_FLOW_DIR_NAME if custom_path is None else Path(custom_path) - dump_folder.mkdir(parents=True, exist_ok=True) - - with open(dump_folder / f"{prefix}.detail.json", "w", encoding=DEFAULT_ENCODING) as f: - json.dump(flow_serialize_result, f, indent=2, ensure_ascii=False) - if node_result: - metrics = flow_serialize_result["node_runs"][0]["metrics"] - output = flow_serialize_result["node_runs"][0]["output"] - else: - metrics = flow_serialize_result["flow_runs"][0]["metrics"] - output = flow_serialize_result["flow_runs"][0]["output"] - if metrics: - with open(dump_folder / f"{prefix}.metrics.json", "w", encoding=DEFAULT_ENCODING) as f: - json.dump(metrics, f, indent=2, ensure_ascii=False) - if output: - with open(dump_folder / f"{prefix}.output.json", "w", encoding=DEFAULT_ENCODING) as f: - json.dump(output, f, indent=2, ensure_ascii=False) - - def read_write_by_user(): return stat.S_IRUSR | stat.S_IWUSR diff --git a/src/promptflow/promptflow/_sdk/data/executable/main.py b/src/promptflow/promptflow/_sdk/data/executable/main.py index ad80b3f7599..9cc47683501 100644 --- a/src/promptflow/promptflow/_sdk/data/executable/main.py +++ b/src/promptflow/promptflow/_sdk/data/executable/main.py @@ -12,7 +12,7 @@ from promptflow._constants import STREAMING_ANIMATION_TIME from promptflow._sdk._submitter.utils import resolve_generator, resolve_generator_output_with_cache -from promptflow._sdk._utils import dump_flow_result +from promptflow._utils.flow_utils import dump_flow_result from promptflow._utils.multimedia_utils import convert_multimedia_data_to_base64, persist_multimedia_data from promptflow.client import load_flow diff --git a/src/promptflow/promptflow/_sdk/entities/_flow/__init__.py b/src/promptflow/promptflow/_sdk/entities/_flow/__init__.py new file mode 100644 index 00000000000..48772978022 --- /dev/null +++ b/src/promptflow/promptflow/_sdk/entities/_flow/__init__.py @@ -0,0 +1,10 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +from .async_dag import AsyncFlow +from .base import FlowContext +from .dag import Flow +from .flex import FlexFlow + +__all__ = ["Flow", "FlexFlow", "FlowContext", "AsyncFlow"] diff --git a/src/promptflow/promptflow/core/_flow_context_resolver.py b/src/promptflow/promptflow/_sdk/entities/_flow/_flow_context_resolver.py similarity index 94% rename from src/promptflow/promptflow/core/_flow_context_resolver.py rename to src/promptflow/promptflow/_sdk/entities/_flow/_flow_context_resolver.py index 615c76dc4b0..87155284781 100644 --- a/src/promptflow/promptflow/core/_flow_context_resolver.py +++ b/src/promptflow/promptflow/_sdk/entities/_flow/_flow_context_resolver.py @@ -125,15 +125,21 @@ def _create_invoker( with open(flow_file, "w") as fp: dump_yaml(self.flow_dag, fp) resolved_flow._path = flow_file.absolute().as_posix() + + executable_flow = resolved_flow._init_executable() if is_async_call: return AsyncFlowInvoker( - flow=resolved_flow, + flow=executable_flow, connections=connections, streaming=flow_context.streaming, + flow_path=resolved_flow.path, + working_dir=resolved_flow.code, ) else: return FlowInvoker( - flow=resolved_flow, + flow=executable_flow, connections=connections, streaming=flow_context.streaming, + flow_path=resolved_flow.path, + working_dir=resolved_flow.code, ) diff --git a/src/promptflow/promptflow/_sdk/entities/_flow/async_dag.py b/src/promptflow/promptflow/_sdk/entities/_flow/async_dag.py new file mode 100644 index 00000000000..201fd0bc0f6 --- /dev/null +++ b/src/promptflow/promptflow/_sdk/entities/_flow/async_dag.py @@ -0,0 +1,73 @@ +from os import PathLike +from typing import Union + +from promptflow._constants import DEFAULT_ENCODING, FlowLanguage +from promptflow._utils.docs import AsyncFlowDoc +from promptflow._utils.yaml_utils import load_yaml_string +from promptflow.exceptions import UserErrorException + +from .dag import Flow + + +class AsyncFlow(Flow): + __doc__ = AsyncFlowDoc.__doc__ + + async def invoke_async(self, inputs: dict) -> "LineResult": + """Invoke a flow and get a LineResult object.""" + from promptflow._sdk._submitter import TestSubmitter + + if self.language == FlowLanguage.CSharp: + # Sync C# calling + # TODO: Async C# support: Task(3002242) + with TestSubmitter(flow=self, flow_context=self.context).init( + stream_output=self.context.streaming + ) as submitter: + result = submitter.flow_test(inputs=inputs, allow_generator_output=self.context.streaming) + return result + else: + return await super().invoke_async(inputs=inputs) + + # region overrides + @classmethod + def load( + cls, + source: Union[str, PathLike], + raise_error=True, + **kwargs, + ) -> "AsyncFlow": + """ + Direct load flow from YAML file. + + :param source: The local yaml source of a flow. Must be a path to a local file. + If the source is a path, it will be open and read. + An exception is raised if the file does not exist. + :type source: Union[PathLike, str] + :param raise_error: Argument for non-dag flow raise validation error on unknown fields. + :type raise_error: bool + :return: An AsyncFlow object + :rtype: AsyncFlow + """ + _, flow_path = cls._load_prepare(source) + with open(flow_path, "r", encoding=DEFAULT_ENCODING) as f: + flow_content = f.read() + data = load_yaml_string(flow_content) + content_hash = hash(flow_content) + return cls._load(path=flow_path, dag=data, content_hash=content_hash, **kwargs) + + # endregion + + async def __call__(self, *args, **kwargs): + """Calling flow as a function in async, the inputs should be provided with key word arguments. + Returns the output of the flow. + The function call throws UserErrorException: if the flow is not valid or the inputs are not valid. + SystemErrorException: if the flow execution failed due to unexpected executor error. + + :param args: positional arguments are not supported. + :param kwargs: flow inputs with key word arguments. + :return: + """ + if args: + raise UserErrorException("Flow can only be called with keyword arguments.") + + result = await self.invoke_async(inputs=kwargs) + return result.output diff --git a/src/promptflow/promptflow/_sdk/entities/_flow/base.py b/src/promptflow/promptflow/_sdk/entities/_flow/base.py new file mode 100644 index 00000000000..b82bad2b4ff --- /dev/null +++ b/src/promptflow/promptflow/_sdk/entities/_flow/base.py @@ -0,0 +1,256 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +import abc +import json +from os import PathLike +from pathlib import Path +from typing import Union + +from promptflow._constants import DEFAULT_ENCODING +from promptflow._sdk.entities._validation import SchemaValidatableMixin +from promptflow._utils.flow_utils import is_flex_flow, resolve_flow_path +from promptflow._utils.yaml_utils import load_yaml_string +from promptflow.exceptions import UserErrorException + + +class FlowContext: + """Flow context entity. the settings on this context will be applied to the flow when executing. + + :param connections: Connections for the flow. + :type connections: Optional[Dict[str, Dict]] + :param variant: Variant of the flow. + :type variant: Optional[str] + :param variant: Overrides of the flow. + :type variant: Optional[Dict[str, Dict]] + :param streaming: Whether the flow's output need to be return in streaming mode. + :type streaming: Optional[bool] + """ + + def __init__( + self, + *, + connections=None, + variant=None, + overrides=None, + streaming=None, + ): + self.connections, self._connection_objs = connections or {}, {} + self.variant = variant + self.overrides = overrides or {} + self.streaming = streaming + # TODO: introduce connection provider support + + def _resolve_connections(self): + # resolve connections and create placeholder for connection objects + for _, v in self.connections.items(): + if isinstance(v, dict): + for k, conn in v.items(): + # TODO: avoid this import + from promptflow.core._connection import _Connection + + if isinstance(conn, _Connection): # Core COnnection + name = self._get_connection_obj_name(conn) + v[k] = name + self._connection_objs[name] = conn + + @classmethod + def _get_connection_obj_name(cls, connection): + # create a unique connection name for connection obj + # will generate same name if connection has same content + connection_dict = connection._to_dict() + connection_name = f"connection_{hash(json.dumps(connection_dict, sort_keys=True))}" + return connection_name + + def _to_dict(self): + return { + "connections": self.connections, + "variant": self.variant, + "overrides": self.overrides, + "streaming": self.streaming, + } + + def __eq__(self, other): + if isinstance(other, FlowContext): + return self._to_dict() == other._to_dict() + return False + + def __hash__(self): + self._resolve_connections() + return hash(json.dumps(self._to_dict(), sort_keys=True)) + + +class FlowBase(abc.ABC, SchemaValidatableMixin): + def __init__(self, *, data: dict, code: Path, path: Path, **kwargs): + self._context = FlowContext() + # flow.dag.yaml's content if provided + self._data = data + # working directory of the flow + self._code = Path(code).resolve() + # flow file path, can be script file or flow definition YAML file + self._path = Path(path).resolve() + # hash of flow's entry file, used to skip invoke if entry file is not changed + self._content_hash = kwargs.pop("content_hash", None) + super().__init__(**kwargs) + + @property + def context(self) -> FlowContext: + return self._context + + @context.setter + def context(self, val): + if not isinstance(val, FlowContext): + raise UserErrorException("context must be a FlowContext object, got {type(val)} instead.") + self._context = val + + @property + def code(self) -> Path: + """Working directory of the flow.""" + return self._code + + @property + def path(self) -> Path: + """Flow file path. Can be script file or flow definition YAML file.""" + return self._path + + @classmethod + # pylint: disable=unused-argument + def _resolve_cls_and_type(cls, data, params_override): + """Resolve the class to use for deserializing the data. Return current class if no override is provided. + :param data: Data to deserialize. + :type data: dict + :param params_override: Parameters to override, defaults to None + :type params_override: typing.Optional[list] + :return: Class to use for deserializing the data & its "type". Type will be None if no override is provided. + :rtype: tuple[class, typing.Optional[str]] + """ + return cls, "flow" + + +class Flow(FlowBase): + """A Flow in the context of PromptFlow is a sequence of steps that define a task. + Each step in the flow could be a prompt that is sent to a language model, or simply a function task, + and the output of one step can be used as the input to the next. + Flows can be used to build complex applications with language models. + + Simple Example: + + .. code-block:: python + + from promptflow.core import Flow + flow = Flow.load(source="path/to/flow.dag.yaml") + result = flow(input_a=1, input_b=2) + + """ + + def __init__( + self, + code: Union[str, PathLike], + path: Union[str, PathLike], + dag: dict, + **kwargs, + ): + self.variant = kwargs.pop("variant", None) or {} + super().__init__(data=dag, code=code, path=path, **kwargs) + + @classmethod + def _load(cls, path: Path, dag: dict, **kwargs): + return cls(code=path.parent, path=path, dag=dag, **kwargs) + + @classmethod + def _dispatch_flow_creation(cls, is_eager_flow, flow_path, data, content_hash, raise_error=True, **kwargs): + """Dispatch flow load to non-dag flow or async flow.""" + if is_eager_flow: + from .flex import FlexFlow + + return FlexFlow._load(path=flow_path, data=data, raise_error=raise_error, **kwargs) + else: + from .dag import Flow + + # TODO: schema validation and warning on unknown fields + return Flow._load(path=flow_path, dag=data, content_hash=content_hash, **kwargs) + + @classmethod + def _load_prepare(cls, source: Union[str, PathLike]): + source_path = Path(source) + if not source_path.exists(): + raise UserErrorException(f"Source {source_path.absolute().as_posix()} does not exist") + + flow_dir, flow_filename = resolve_flow_path(source_path, new=True) + flow_path = flow_dir / flow_filename + + if not flow_path.exists(): + raise UserErrorException(f"Flow file {flow_path.absolute().as_posix()} does not exist") + + if flow_path.suffix not in [".yaml", ".yml"]: + raise UserErrorException("Source must be a directory or a 'flow.dag.yaml' file") + return source_path, flow_path + + @classmethod + def load( + cls, + source: Union[str, PathLike], + raise_error=True, + **kwargs, + ) -> "Flow": + """ + Load flow from YAML file. + + :param source: The local yaml source of a flow. Must be a path to a local file. + If the source is a path, it will be open and read. + An exception is raised if the file does not exist. + :type source: Union[PathLike, str] + :param raise_error: Argument for non-dag flow raise validation error on unknown fields. + :type raise_error: bool + :return: A Flow object + :rtype: Flow + """ + _, flow_path = cls._load_prepare(source) + with open(flow_path, "r", encoding=DEFAULT_ENCODING) as f: + flow_content = f.read() + data = load_yaml_string(flow_content) + content_hash = hash(flow_content) + return cls._dispatch_flow_creation( + is_flex_flow(yaml_dict=data), flow_path, data, content_hash, raise_error=raise_error, **kwargs + ) + + def _init_executable(self): + from promptflow.contracts.flow import Flow as ExecutableFlow + + # for DAG flow, use data to init executable to improve performance + return ExecutableFlow._from_dict(flow_dag=self._data, working_dir=self.code) + + def __eq__(self, other): + if isinstance(other, Flow): + return self._content_hash == other._content_hash and self.context == other.context + return False + + def __hash__(self): + return hash(self.context) ^ self._content_hash + + def __call__(self, *args, **kwargs): + """Calling flow as a function, the inputs should be provided with key word arguments. + Returns the output of the flow. + The function call throws UserErrorException: if the flow is not valid or the inputs are not valid. + SystemErrorException: if the flow execution failed due to unexpected executor error. + + :param args: positional arguments are not supported. + :param kwargs: flow inputs with key word arguments. + :return: + """ + + if args: + raise UserErrorException("Flow can only be called with keyword arguments.") + + result = self.invoke(inputs=kwargs) + return result.output + + def invoke(self, inputs: dict) -> "LineResult": + """Invoke a flow and get a LineResult object.""" + from promptflow._sdk.entities._flow._flow_context_resolver import FlowContextResolver + + invoker = FlowContextResolver.resolve(flow=self) + result = invoker._invoke( + data=inputs, + ) + return result diff --git a/src/promptflow/promptflow/_sdk/entities/_flow.py b/src/promptflow/promptflow/_sdk/entities/_flow/dag.py similarity index 79% rename from src/promptflow/promptflow/_sdk/entities/_flow.py rename to src/promptflow/promptflow/_sdk/entities/_flow/dag.py index a55f865133c..8a52eea315b 100644 --- a/src/promptflow/promptflow/_sdk/entities/_flow.py +++ b/src/promptflow/promptflow/_sdk/entities/_flow/dag.py @@ -1,7 +1,6 @@ # --------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- - from pathlib import Path from typing import Dict, Optional @@ -9,21 +8,19 @@ from promptflow._constants import FLOW_TOOLS_JSON, LANGUAGE_KEY, PROMPT_FLOW_DIR_NAME, FlowLanguage from promptflow._sdk._constants import BASE_PATH_CONTEXT_KEY -from promptflow._sdk.entities._validation import SchemaValidatableMixin +from promptflow._utils.docs import FlowDoc from promptflow._utils.flow_utils import resolve_flow_path from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow._utils.yaml_utils import load_yaml -from promptflow.core._flow import AsyncFlow as AsyncFlowCore -from promptflow.core._flow import Flow as FlowCore -from promptflow.core._flow import FlowBase as FlowBaseCore -from promptflow.core._flow import FlowContext as FlowContextCore from promptflow.exceptions import ErrorTarget, UserErrorException +from .base import Flow as FlowBase + logger = get_cli_sdk_logger() -class Flow(FlowCore, SchemaValidatableMixin): - __doc__ = FlowCore.__doc__ +class Flow(FlowBase): + __doc__ = FlowDoc.__doc__ def __init__( self, @@ -35,6 +32,8 @@ def __init__( ): super().__init__(path=path, code=code, dag=dag, **kwargs) + # TODO: this can be dangerous. path always point to the flow yaml file; code always point to the flow directory; + # but path may not under code (like a temp generated flow yaml file). self._flow_dir, self._dag_file_name = resolve_flow_path(self.code) self._executable = None self._params_override = params_override @@ -72,7 +71,7 @@ def display_name(self) -> str: @classmethod def _create_schema_for_validation(cls, context) -> "Schema": # import here to avoid circular import - from ..schemas._flow import FlowSchema + from promptflow._sdk.schemas._flow import FlowSchema return FlowSchema(context=context) @@ -132,7 +131,7 @@ def _init_executable(self, tuning_node=None, variant=None): @classmethod def _dispatch_flow_creation(cls, is_eager_flow, flow_path, data, content_hash, raise_error=True, **kwargs): """Dispatch flow load to eager flow or async flow.""" - from promptflow._sdk.entities._eager_flow import FlexFlow + from .flex import FlexFlow if is_eager_flow: return FlexFlow._load(path=flow_path, data=data, raise_error=raise_error, **kwargs) @@ -152,26 +151,3 @@ def invoke(self, inputs: dict) -> "LineResult": return result else: return super().invoke(inputs=inputs) - - -class AsyncFlow(Flow, AsyncFlowCore): - __doc__ = AsyncFlowCore.__doc__ - - async def invoke_async(self, inputs: dict) -> "LineResult": - """Invoke a flow and get a LineResult object.""" - from promptflow._sdk._submitter import TestSubmitter - - if self.language == FlowLanguage.CSharp: - # Sync C# calling - # TODO: Async C# support: Task(3002242) - with TestSubmitter(flow=self, flow_context=self.context).init( - stream_output=self.context.streaming - ) as submitter: - result = submitter.flow_test(inputs=inputs, allow_generator_output=self.context.streaming) - return result - else: - return await super().invoke_async(inputs=inputs) - - -FlowContext = FlowContextCore -FlowBase = FlowBaseCore diff --git a/src/promptflow/promptflow/_sdk/entities/_eager_flow.py b/src/promptflow/promptflow/_sdk/entities/_flow/flex.py similarity index 68% rename from src/promptflow/promptflow/_sdk/entities/_eager_flow.py rename to src/promptflow/promptflow/_sdk/entities/_flow/flex.py index 0610715c7b4..5b56efe9c74 100644 --- a/src/promptflow/promptflow/_sdk/entities/_eager_flow.py +++ b/src/promptflow/promptflow/_sdk/entities/_flow/flex.py @@ -1,18 +1,40 @@ # --------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- +from os import PathLike from pathlib import Path -from typing import Dict, Optional +from typing import Dict, Optional, Union from promptflow._constants import LANGUAGE_KEY, FlowLanguage from promptflow._sdk._constants import BASE_PATH_CONTEXT_KEY -from promptflow._sdk.entities._validation import SchemaValidatableMixin -from promptflow.core._flow import FlexFlow as FlexFlowCore +from promptflow._utils.docs import FlexFlowDoc +from promptflow._utils.flow_utils import resolve_entry_file from promptflow.exceptions import ErrorTarget, UserErrorException - -class FlexFlow(FlexFlowCore, SchemaValidatableMixin): - __doc__ = FlexFlowCore.__doc__ +from .dag import Flow + + +class FlexFlow(Flow): + __doc__ = FlexFlowDoc.__doc__ + + def __init__( + self, + path: Union[str, PathLike], + code: Union[str, PathLike], + entry: str, + data: dict, + **kwargs, + ): + # flow.dag.yaml file path or entry.py file path + path = Path(path) + # flow.dag.yaml file's folder or entry.py's folder + code = Path(code) + # entry function name + self.entry = entry + # entry file name + self.entry_file = resolve_entry_file(entry=entry, working_dir=code) + # TODO(2910062): support non-dag flow execution cache + super().__init__(code=code, path=path, dag=data, content_hash=None, **kwargs) # region properties @property @@ -32,7 +54,13 @@ def _load(cls, path: Path, data: dict, raise_error=True, **kwargs): if raise_error: # Abstract here. The actual validation is done in subclass. data = cls._create_schema_for_validation(context={BASE_PATH_CONTEXT_KEY: path.parent}).load(data) - return super()._load(path=path, data=data, **kwargs) + + entry = data.get("entry") + code = path.parent + + if entry is None: + raise UserErrorException(f"Entry function is not specified for flow {path}") + return cls(path=path, code=code, entry=entry, data=data, **kwargs) # endregion overrides @@ -40,7 +68,7 @@ def _load(cls, path: Path, data: dict, raise_error=True, **kwargs): @classmethod def _create_schema_for_validation(cls, context): # import here to avoid circular import - from ..schemas._flow import EagerFlowSchema + from promptflow._sdk.schemas._flow import EagerFlowSchema return EagerFlowSchema(context=context) @@ -80,11 +108,11 @@ def _resolve_entry_file(cls, entry: str, working_dir: Path) -> Optional[str]: def _init_executable(self, **kwargs): # TODO(2991934): support environment variables here - from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory + from promptflow._proxy import ProxyFactory from promptflow.contracts.flow import EagerFlow as ExecutableEagerFlow meta_dict = ( - ExecutorProxyFactory() + ProxyFactory() .get_executor_proxy_cls(self.language) .generate_flow_json( flow_file=self.path, @@ -93,3 +121,7 @@ def _init_executable(self, **kwargs): ) ) return ExecutableEagerFlow.deserialize(meta_dict) + + def __call__(self, *args, **kwargs): + """Direct call of non-dag flow WILL cause exceptions.""" + raise UserErrorException("FlexFlow can not be called as a function.") diff --git a/src/promptflow/promptflow/_sdk/entities/_run.py b/src/promptflow/promptflow/_sdk/entities/_run.py index 84e80257895..be81d353f25 100644 --- a/src/promptflow/promptflow/_sdk/entities/_run.py +++ b/src/promptflow/promptflow/_sdk/entities/_run.py @@ -752,7 +752,7 @@ def _flow_type(self) -> str: from promptflow._constants import FlowType from promptflow._sdk._load_functions import load_flow - from promptflow._sdk.entities._eager_flow import FlexFlow + from promptflow._sdk.entities._flow import FlexFlow flow_obj = load_flow(source=self.flow) if isinstance(flow_obj, FlexFlow): diff --git a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py index c5acc4cba0c..662f832192a 100644 --- a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py +++ b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py @@ -16,7 +16,6 @@ from promptflow._constants import FlowLanguage from promptflow._sdk._configuration import Configuration from promptflow._sdk._constants import ( - CHAT_HISTORY, DEFAULT_ENCODING, FLOW_META_JSON_GEN_TIMEOUT, FLOW_TOOLS_JSON_GEN_TIMEOUT, @@ -30,16 +29,15 @@ _get_additional_includes, _merge_local_code_and_additional_includes, copy_tree_respect_template_and_ignore_file, - dump_flow_result, generate_flow_tools_json, generate_random_string, logger, parse_variant, ) -from promptflow._sdk.entities._eager_flow import FlexFlow -from promptflow._sdk.entities._flow import Flow, FlowBase +from promptflow._sdk.entities._flow import FlexFlow, Flow from promptflow._sdk.entities._validation import ValidationResult from promptflow._utils.context_utils import _change_working_dir +from promptflow._utils.flow_utils import dump_flow_result, is_executable_chat_flow from promptflow._utils.yaml_utils import dump_yaml, load_yaml from promptflow.exceptions import UserErrorException @@ -159,7 +157,7 @@ def _test( session = kwargs.pop("session", None) # Run id will be set in operation context and used for session run_id = kwargs.get("run_id", str(uuid.uuid4())) - flow: FlowBase = load_flow(flow) + flow = load_flow(flow) if isinstance(flow, FlexFlow): if variant or node: @@ -181,7 +179,7 @@ def _test( is_chat_flow, chat_history_input_name = False, None flow_inputs, dependency_nodes_outputs = inputs, None else: - is_chat_flow, chat_history_input_name, _ = self._is_chat_flow(submitter.dataplane_flow) + is_chat_flow, chat_history_input_name, _ = is_executable_chat_flow(submitter.dataplane_flow) flow_inputs, dependency_nodes_outputs = submitter.resolve_data( node_name=node, inputs=inputs, chat_history_name=chat_history_input_name ) @@ -198,36 +196,6 @@ def _test( run_id=run_id, ) - @staticmethod - def _is_chat_flow(flow): - """ - Check if the flow is chat flow. - Check if chat_history in the flow input and only one chat input and - one chat output to determine if it is a chat flow. - """ - chat_inputs = [item for item in flow.inputs.values() if item.is_chat_input] - chat_outputs = [item for item in flow.outputs.values() if item.is_chat_output] - chat_history_input_name = next( - iter([input_name for input_name, value in flow.inputs.items() if value.is_chat_history]), None - ) - if ( - not chat_history_input_name - and CHAT_HISTORY in flow.inputs - and flow.inputs[CHAT_HISTORY].is_chat_history is not False - ): - chat_history_input_name = CHAT_HISTORY - is_chat_flow, error_msg = True, "" - if len(chat_inputs) != 1: - is_chat_flow = False - error_msg = "chat flow does not support multiple chat inputs" - elif len(chat_outputs) != 1: - is_chat_flow = False - error_msg = "chat flow does not support multiple chat outputs" - elif not chat_history_input_name: - is_chat_flow = False - error_msg = "chat_history is required in the inputs of chat flow" - return is_chat_flow, chat_history_input_name, error_msg - @monitor_operation(activity_name="pf.flows._chat", activity_type=ActivityType.INTERNALCALL) def _chat( self, @@ -249,14 +217,14 @@ def _chat( """ from promptflow._sdk._load_functions import load_flow - flow: FlowBase = load_flow(flow) + flow = load_flow(flow) flow.context.variant = variant with TestSubmitter(flow=flow, flow_context=flow.context, client=self._client).init( environment_variables=environment_variables, stream_log=False, # no need to stream log in chat mode ) as submitter: - is_chat_flow, chat_history_input_name, error_msg = self._is_chat_flow(submitter.dataplane_flow) + is_chat_flow, chat_history_input_name, error_msg = is_executable_chat_flow(submitter.dataplane_flow) if not is_chat_flow: raise UserErrorException(f"Only support chat flow in interactive mode, {error_msg}.") @@ -400,7 +368,7 @@ def _export_flow_connections( that the flow involves no additional includes, symlink, or variant. :param output_dir: output directory to export connections """ - flow: FlowBase = load_flow(built_flow_dag_path) + flow = load_flow(built_flow_dag_path) with _change_working_dir(flow.code): if flow.language == FlowLanguage.CSharp: from promptflow.batch import CSharpExecutorProxy @@ -531,7 +499,7 @@ def _build_as_executable( if not value.is_chat_history } - is_chat_flow, chat_history_input_name, _ = self._is_chat_flow(executable) + is_chat_flow, chat_history_input_name, _ = is_executable_chat_flow(executable) chat_output_name = next( filter( lambda key: executable.outputs[key].is_chat_output, @@ -598,7 +566,7 @@ def build( output_dir = Path(output).absolute() output_dir.mkdir(parents=True, exist_ok=True) - flow: FlowBase = load_flow(flow) + flow = load_flow(flow) is_csharp_flow = flow.language == FlowLanguage.CSharp if format not in ["docker", "executable"]: @@ -687,7 +655,7 @@ def validate(self, flow: Union[str, PathLike], *, raise_error: bool = False, **k # TODO: put off this if we do path existence check in FlowSchema on fields other than additional_includes validation_result = flow_entity._validate() - if isinstance(flow_entity, Flow): + if not isinstance(flow_entity, FlexFlow): # only DAG flow has tools meta source_path_mapping = {} flow_tools, tools_errors = self._generate_tools_meta( @@ -747,7 +715,7 @@ def _generate_tools_meta( :return: dict of tools meta and dict of tools errors :rtype: Tuple[dict, dict] """ - flow: FlowBase = load_flow(source=flow) + flow = load_flow(source=flow) if not isinstance(flow, Flow): # No tools meta for eager flow return {}, {} @@ -833,10 +801,10 @@ def _generate_flow_meta( return {} with self._resolve_additional_includes(flow.path) as new_flow_dag_path: - from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory + from promptflow._proxy import ProxyFactory return ( - ExecutorProxyFactory() + ProxyFactory() .get_executor_proxy_cls(flow.language) .generate_flow_json( flow_file=new_flow_dag_path, diff --git a/src/promptflow/promptflow/_sdk/operations/_local_storage_operations.py b/src/promptflow/promptflow/_sdk/operations/_local_storage_operations.py index ad4aa9b7297..d242e5aa8dd 100644 --- a/src/promptflow/promptflow/_sdk/operations/_local_storage_operations.py +++ b/src/promptflow/promptflow/_sdk/operations/_local_storage_operations.py @@ -36,8 +36,7 @@ write_open, ) from promptflow._sdk.entities import Run -from promptflow._sdk.entities._eager_flow import FlexFlow -from promptflow._sdk.entities._flow import Flow +from promptflow._sdk.entities._flow import FlexFlow, Flow from promptflow._utils.dataclass_serializer import serialize from promptflow._utils.exception_utils import PromptflowExceptionPresenter from promptflow._utils.logger_utils import LogContext, get_cli_sdk_logger diff --git a/src/promptflow/promptflow/_utils/docs.py b/src/promptflow/promptflow/_utils/docs.py new file mode 100644 index 00000000000..a6cb3dffb5f --- /dev/null +++ b/src/promptflow/promptflow/_utils/docs.py @@ -0,0 +1,27 @@ +class FlowDoc: + """A FlexFlow represents an non-dag flow, which uses codes to define the flow. + FlexFlow basically behave like a Flow, but its entry function should be provided in the flow.dag.yaml file. + Load of this non-dag flow is provided, but direct call of it will cause exceptions. + """ + + +class AsyncFlowDoc: + """Async flow is based on Flow, which is used to invoke flow in async mode. + + Simple Example: + + .. code-block:: python + + from promptflow.core import class AsyncFlow + flow = AsyncFlow.load(source="path/to/flow.dag.yaml") + result = await flow(input_a=1, input_b=2) + + """ + + +class FlexFlowDoc: + """A FlexFlow represents a flow defined with codes directly. It doesn't involve a directed acyclic graph (DAG) + explicitly, but its entry function haven't been provided. + FlexFlow basically behave like a Flow. + Load of this non-dag flow is provided, but direct call of it will cause exceptions. + """ diff --git a/src/promptflow/promptflow/_utils/flow_utils.py b/src/promptflow/promptflow/_utils/flow_utils.py index 0c15da0bece..4a2f6c7647d 100644 --- a/src/promptflow/promptflow/_utils/flow_utils.py +++ b/src/promptflow/promptflow/_utils/flow_utils.py @@ -2,12 +2,16 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- import hashlib +import json import os from os import PathLike from pathlib import Path from typing import Optional, Tuple, Union -from promptflow._sdk._constants import DAG_FILE_NAME, DEFAULT_ENCODING +from promptflow._constants import PROMPT_FLOW_DIR_NAME +from promptflow._core._errors import MetaFileNotFound, MetaFileReadError +from promptflow._sdk._constants import CHAT_HISTORY, DAG_FILE_NAME, DEFAULT_ENCODING +from promptflow._utils.dataclass_serializer import serialize from promptflow._utils.logger_utils import LoggerFactory from promptflow._utils.yaml_utils import dump_yaml, load_yaml from promptflow.exceptions import UserErrorException @@ -136,3 +140,95 @@ def resolve_entry_file(entry: str, working_dir: Path) -> Optional[str]: return entry_file.resolve().absolute().as_posix() # when entry file not found in working directory, return None since it can come from package return None + + +def read_json_content(file_path: Path, target: str) -> dict: + if file_path.is_file(): + with open(file_path, mode="r", encoding=DEFAULT_ENCODING) as f: + try: + return json.load(f) + except json.JSONDecodeError: + raise MetaFileReadError( + message_format="Failed to fetch {target_obj}: {file_path} is not a valid json file.", + file_path=file_path.absolute().as_posix(), + target_obj=target, + ) + raise MetaFileNotFound( + message_format=( + "Failed to fetch meta of tools: cannot find {file_path}, " + "please build the flow project with extension first." + ), + file_path=file_path.absolute().as_posix(), + ) + + +def dump_flow_result(flow_folder, prefix, flow_result=None, node_result=None, custom_path=None): + """Dump flow result for extension. + + :param flow_folder: The flow folder. + :param prefix: The file prefix. + :param flow_result: The flow result returned by exec_line. + :param node_result: The node result when test node returned by load_and_exec_node. + :param custom_path: The custom path to dump flow result. + """ + if flow_result: + flow_serialize_result = { + "flow_runs": [serialize(flow_result.run_info)], + "node_runs": [serialize(run) for run in flow_result.node_run_infos.values()], + } + else: + flow_serialize_result = { + "flow_runs": [], + "node_runs": [serialize(node_result)], + } + + dump_folder = Path(flow_folder) / PROMPT_FLOW_DIR_NAME if custom_path is None else Path(custom_path) + dump_folder.mkdir(parents=True, exist_ok=True) + + with open(dump_folder / f"{prefix}.detail.json", "w", encoding=DEFAULT_ENCODING) as f: + json.dump(flow_serialize_result, f, indent=2, ensure_ascii=False) + if node_result: + metrics = flow_serialize_result["node_runs"][0]["metrics"] + output = flow_serialize_result["node_runs"][0]["output"] + else: + metrics = flow_serialize_result["flow_runs"][0]["metrics"] + output = flow_serialize_result["flow_runs"][0]["output"] + if metrics: + with open(dump_folder / f"{prefix}.metrics.json", "w", encoding=DEFAULT_ENCODING) as f: + json.dump(metrics, f, indent=2, ensure_ascii=False) + if output: + with open(dump_folder / f"{prefix}.output.json", "w", encoding=DEFAULT_ENCODING) as f: + json.dump(output, f, indent=2, ensure_ascii=False) + + +def is_executable_chat_flow(flow): + """ + Check if the flow is chat flow. + Check if chat_history in the flow input and only one chat input and + one chat output to determine if it is a chat flow. + + :param flow: The flow object. + :type flow: promptflow.contracts.flow.Flow + """ + chat_inputs = [item for item in flow.inputs.values() if item.is_chat_input] + chat_outputs = [item for item in flow.outputs.values() if item.is_chat_output] + chat_history_input_name = next( + iter([input_name for input_name, value in flow.inputs.items() if value.is_chat_history]), None + ) + if ( + not chat_history_input_name + and CHAT_HISTORY in flow.inputs + and flow.inputs[CHAT_HISTORY].is_chat_history is not False + ): + chat_history_input_name = CHAT_HISTORY + _is_chat_flow, error_msg = True, "" + if len(chat_inputs) != 1: + _is_chat_flow = False + error_msg = "chat flow does not support multiple chat inputs" + elif len(chat_outputs) != 1: + _is_chat_flow = False + error_msg = "chat flow does not support multiple chat outputs" + elif not chat_history_input_name: + _is_chat_flow = False + error_msg = "chat_history is required in the inputs of chat flow" + return _is_chat_flow, chat_history_input_name, error_msg diff --git a/src/promptflow/promptflow/azure/operations/_flow_operations.py b/src/promptflow/promptflow/azure/operations/_flow_operations.py index 5cf82c25354..5bd7727d8f1 100644 --- a/src/promptflow/promptflow/azure/operations/_flow_operations.py +++ b/src/promptflow/promptflow/azure/operations/_flow_operations.py @@ -24,6 +24,7 @@ from azure.ai.ml.operations._operation_orchestrator import OperationOrchestrator from azure.core.exceptions import HttpResponseError +from promptflow._proxy import ProxyFactory from promptflow._sdk._constants import ( CLIENT_FLOW_TYPE_2_SERVICE_FLOW_TYPE, DAG_FILE_NAME, @@ -44,7 +45,6 @@ from promptflow.azure._restclient.flow_service_caller import FlowServiceCaller from promptflow.azure.operations._artifact_utilities import _get_datastore_name, get_datastore_info from promptflow.azure.operations._fileshare_storeage_helper import FlowFileStorageClient -from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory from promptflow.exceptions import SystemErrorException, UserErrorException logger = get_cli_sdk_logger() @@ -485,7 +485,7 @@ def _try_resolve_code_for_flow(cls, flow: Flow, ops: OperationOrchestrator, igno # generate .promptflow/flow.json for eager flow and .promptflow/flow.dag.yaml for non-eager flow flow_directory, flow_file = resolve_flow_path(code.path) - ExecutorProxyFactory().get_executor_proxy_cls(flow.language).dump_metadata( + ProxyFactory().get_executor_proxy_cls(flow.language).dump_metadata( flow_file=flow_directory / flow_file, working_dir=flow_directory, ) diff --git a/src/promptflow/promptflow/batch/__init__.py b/src/promptflow/promptflow/batch/__init__.py index 2472cee396a..1ff6644b53d 100644 --- a/src/promptflow/promptflow/batch/__init__.py +++ b/src/promptflow/promptflow/batch/__init__.py @@ -7,7 +7,6 @@ from ._batch_engine import BatchEngine from ._csharp_base_executor_proxy import CSharpBaseExecutorProxy from ._csharp_executor_proxy import CSharpExecutorProxy -from ._executor_proxy_factory import ExecutorProxyFactory from ._python_executor_proxy import PythonExecutorProxy from ._result import BatchResult @@ -17,7 +16,6 @@ "BatchEngine", "CSharpExecutorProxy", "CSharpBaseExecutorProxy", - "ExecutorProxyFactory", "PythonExecutorProxy", "BatchResult", ] diff --git a/src/promptflow/promptflow/batch/_base_executor_proxy.py b/src/promptflow/promptflow/batch/_base_executor_proxy.py index 04368eb25e2..5a822b46b36 100644 --- a/src/promptflow/promptflow/batch/_base_executor_proxy.py +++ b/src/promptflow/promptflow/batch/_base_executor_proxy.py @@ -7,13 +7,14 @@ from datetime import datetime from json import JSONDecodeError from pathlib import Path -from typing import Any, Dict, Mapping, NoReturn, Optional +from typing import Any, Dict, List, Mapping, NoReturn, Optional import httpx from promptflow._constants import DEFAULT_ENCODING, LINE_TIMEOUT_SEC -from promptflow._core._errors import MetaFileNotFound, MetaFileReadError, NotSupported, UnexpectedError +from promptflow._core._errors import NotSupported, UnexpectedError from promptflow._sdk._constants import ( + DAG_FILE_NAME, FLOW_META_JSON, FLOW_META_JSON_GEN_TIMEOUT, FLOW_TOOLS_JSON, @@ -22,7 +23,7 @@ ) from promptflow._utils.async_utils import async_run_allowing_running_loop from promptflow._utils.exception_utils import ErrorResponse, ExceptionPresenter -from promptflow._utils.flow_utils import is_flex_flow +from promptflow._utils.flow_utils import is_flex_flow, read_json_content from promptflow._utils.logger_utils import bulk_logger from promptflow._utils.utils import load_json from promptflow.batch._errors import ExecutorServiceUnhealthy @@ -108,6 +109,11 @@ def _generate_flow_json( ) -> Dict[str, Any]: raise NotImplementedError() + @classmethod + def get_used_connection_names(cls, flow_file: Path, working_dir: Path) -> List[str]: + """Get the used connection names in the flow.""" + raise NotImplementedError() + def get_inputs_definition(self): """Get the inputs definition of an eager flow""" raise NotImplementedError() @@ -228,10 +234,6 @@ async def destroy_if_all_generators_exhausted(self): # endregion - def _get_flow_meta(self) -> dict: - flow_meta_json_path = self.working_dir / PROMPT_FLOW_DIR_NAME / FLOW_META_JSON - return self._read_json_content(flow_meta_json_path, "meta of flow") - @classmethod def dump_metadata(cls, flow_file: Path, working_dir: Path) -> NoReturn: # In abstract class, dump_metadata may redirect to generate_tools_json and generate_flow_json @@ -246,7 +248,11 @@ def get_inputs_definition(self): """Get the inputs definition of an eager flow""" from promptflow.contracts.flow import FlowInputDefinition - flow_meta = self._get_flow_meta() + flow_meta = self.generate_flow_json( + flow_file=self.working_dir / DAG_FILE_NAME, + working_dir=self.working_dir, + dump=False, + ) inputs = {} for key, value in flow_meta.get("inputs", {}).items(): # TODO: update this after we determine whether to accept list here or now @@ -267,7 +273,7 @@ def _generate_flow_tools_json( load_in_subprocess: bool = True, ) -> dict: flow_tools_json_path = working_dir / PROMPT_FLOW_DIR_NAME / FLOW_TOOLS_JSON - return cls._read_json_content(flow_tools_json_path, "meta of tools") + return read_json_content(flow_tools_json_path, "meta of tools") @classmethod def _generate_flow_json( @@ -279,27 +285,7 @@ def _generate_flow_json( load_in_subprocess: bool = True, ) -> Dict[str, Any]: flow_json_path = working_dir / PROMPT_FLOW_DIR_NAME / FLOW_META_JSON - return cls._read_json_content(flow_json_path, "meta of tools") - - @classmethod - def _read_json_content(cls, file_path: Path, target: str) -> dict: - if file_path.is_file(): - with open(file_path, mode="r", encoding=DEFAULT_ENCODING) as f: - try: - return json.load(f) - except json.JSONDecodeError: - raise MetaFileReadError( - message_format="Failed to fetch {target_obj}: {file_path} is not a valid json file.", - file_path=file_path.absolute().as_posix(), - target_obj=target, - ) - raise MetaFileNotFound( - message_format=( - "Failed to fetch meta of tools: cannot find {file_path}, " - "please build the flow project with extension first." - ), - file_path=file_path.absolute().as_posix(), - ) + return read_json_content(flow_json_path, "meta of tools") @property def api_endpoint(self) -> str: @@ -313,7 +299,7 @@ def api_endpoint(self) -> str: @property def chat_output_name(self) -> Optional[str]: """The name of the chat output in the line result. Return None if the bonded flow is not a chat flow.""" - # TODO: implement this based on _get_flow_meta + # TODO: implement this based on _generate_flow_json return None def exec_line( diff --git a/src/promptflow/promptflow/batch/_batch_engine.py b/src/promptflow/promptflow/batch/_batch_engine.py index db9de4b5f3e..c8123ad4527 100644 --- a/src/promptflow/promptflow/batch/_batch_engine.py +++ b/src/promptflow/promptflow/batch/_batch_engine.py @@ -12,6 +12,7 @@ from promptflow._constants import LANGUAGE_KEY, LINE_NUMBER_KEY, LINE_TIMEOUT_SEC, OUTPUT_FILE_NAME, FlowLanguage from promptflow._core._errors import ResumeCopyError, UnexpectedError +from promptflow._proxy import ProxyFactory from promptflow._utils.async_utils import async_run_allowing_running_loop from promptflow._utils.context_utils import _change_working_dir from promptflow._utils.execution_utils import ( @@ -36,7 +37,6 @@ from promptflow.batch import AbstractExecutorProxy from promptflow.batch._batch_inputs_processor import BatchInputsProcessor from promptflow.batch._errors import BatchRunTimeoutError -from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory from promptflow.batch._python_executor_proxy import PythonExecutorProxy from promptflow.batch._result import BatchResult from promptflow.contracts.flow import Flow @@ -61,7 +61,7 @@ def register_executor(cls, language: str, executor_proxy_cls: Type[AbstractExecu redirect the registration to the ExecutorProxyFactory. """ # TODO: remove this after we migrate to multi-container - ExecutorProxyFactory.register_executor( + ProxyFactory.register_executor( language=language, executor_proxy_cls=executor_proxy_cls, ) @@ -163,7 +163,7 @@ def run( self._start_time = datetime.utcnow() with _change_working_dir(self._working_dir): # create executor proxy instance according to the flow program language - self._executor_proxy = ExecutorProxyFactory().create_executor_proxy( + self._executor_proxy = ProxyFactory().create_executor_proxy( flow_file=self._flow_file, working_dir=self._working_dir, connections=self._connections, diff --git a/src/promptflow/promptflow/core/_flow.py b/src/promptflow/promptflow/core/_flow.py index 06288eb08f1..df7b3071aba 100644 --- a/src/promptflow/promptflow/core/_flow.py +++ b/src/promptflow/promptflow/core/_flow.py @@ -159,8 +159,9 @@ def _load(cls, path: Path, dag: dict, **kwargs): @classmethod def _dispatch_flow_creation(cls, is_eager_flow, flow_path, data, content_hash, raise_error=True, **kwargs): """Dispatch flow load to non-dag flow or async flow.""" + # we won't help to validate the schema for core.Flow if is_eager_flow: - return FlexFlow._load(path=flow_path, data=data, raise_error=raise_error, **kwargs) + return FlexFlow._load(path=flow_path, data=data, **kwargs) else: # TODO: schema validation and warning on unknown fields return Flow._load(path=flow_path, dag=data, content_hash=content_hash, **kwargs) @@ -242,7 +243,7 @@ def __call__(self, *args, **kwargs): def invoke(self, inputs: dict) -> "LineResult": """Invoke a flow and get a LineResult object.""" - from promptflow.core._flow_context_resolver import FlowContextResolver + from promptflow._sdk.entities._flow._flow_context_resolver import FlowContextResolver invoker = FlowContextResolver.resolve(flow=self) result = invoker._invoke( @@ -410,7 +411,7 @@ async def __call__(self, *args, **kwargs): async def invoke_async(self, inputs: dict) -> "LineResult": """Invoke a flow and get a LineResult object.""" - from promptflow.core._flow_context_resolver import FlowContextResolver + from promptflow._sdk.entities._flow._flow_context_resolver import FlowContextResolver invoker = FlowContextResolver.resolve_async_invoker(flow=self) result = await invoker._invoke_async( diff --git a/src/promptflow/promptflow/core/_serving/app.py b/src/promptflow/promptflow/core/_serving/app.py index 9839c5c2347..185eae2a4b0 100644 --- a/src/promptflow/promptflow/core/_serving/app.py +++ b/src/promptflow/promptflow/core/_serving/app.py @@ -11,12 +11,13 @@ from flask import Flask, g, jsonify, request from opentelemetry import baggage, context -from promptflow._sdk._load_functions import load_flow from promptflow._utils.exception_utils import ErrorResponse +from promptflow._utils.flow_utils import resolve_flow_path from promptflow._utils.logger_utils import LoggerFactory from promptflow._utils.user_agent_utils import setup_user_agent_to_operation_context from promptflow._version import VERSION from promptflow.contracts.run_info import Status +from promptflow.core._flow import Flow from promptflow.core._serving.constants import FEEDBACK_TRACE_FIELD_NAME, FEEDBACK_TRACE_SPAN_NAME from promptflow.core._serving.extension.extension_factory import ExtensionFactory from promptflow.core._serving.flow_invoker import FlowInvoker @@ -51,8 +52,7 @@ def init(self, **kwargs): # parse promptflow project path self.project_path = self.extension.get_flow_project_path() logger.info(f"Project path: {self.project_path}") - self.flow_entity = load_flow(self.project_path) - self.flow = self.flow_entity._init_executable() + self.flow = Flow.load(self.project_path)._init_executable() # enable environment_variables environment_variables = kwargs.get("environment_variables", {}) @@ -93,8 +93,9 @@ def init_invoker_if_not_exist(self): if self.flow_invoker: return logger.info("Promptflow executor starts initializing...") + working_dir, flow_file = resolve_flow_path(self.project_path) self.flow_invoker = FlowInvoker( - self.project_path, + self.flow, connection_provider=self.connection_provider, streaming=streaming_response_required, raise_ex=False, @@ -103,7 +104,10 @@ def init_invoker_if_not_exist(self): # for serving, we don't need to persist intermediate result, this is to avoid memory leak. storage=DummyRunStorage(), credential=self.credential, + flow_path=working_dir / flow_file, + working_dir=working_dir, ) + # why we need to update bonded executable flow? self.flow = self.flow_invoker.flow # Set the flow name as folder name self.flow.name = self.flow_name diff --git a/src/promptflow/promptflow/core/_serving/extension/default_extension.py b/src/promptflow/promptflow/core/_serving/extension/default_extension.py index 48cf2135908..6eab6dd330b 100644 --- a/src/promptflow/promptflow/core/_serving/extension/default_extension.py +++ b/src/promptflow/promptflow/core/_serving/extension/default_extension.py @@ -9,7 +9,6 @@ from typing import Tuple from promptflow._constants import DEFAULT_ENCODING -from promptflow._sdk._configuration import Configuration from promptflow._utils.yaml_utils import load_yaml from promptflow._version import VERSION from promptflow.contracts.flow import Flow @@ -55,7 +54,7 @@ def get_override_connections(self, flow: Flow) -> Tuple[dict, dict]: Get override connections for current extension. :param flow: The flow to execute. - :type flow: ~promptflow._sdk.entities._flow.Flow + :type flow: ~promptflow.contracts.flow.Flow :return: The override connections, first dict is for connection data override, second dict is for connection name override. # noqa: E501 :rtype: (dict, dict) """ @@ -132,6 +131,10 @@ def __init__(self, logger, **kwargs): self.static_folder = static_folder if static_folder else DEFAULT_STATIC_PATH logger.info(f"Static_folder: {self.static_folder}") app_config = kwargs.get("config", None) or {} + + # TODO (3027983): remove this import in connection related refactor PR + from promptflow._sdk._configuration import Configuration + pf_config = Configuration(overrides=app_config) logger.info(f"Promptflow config: {pf_config}") self.connection_provider = pf_config.get_connection_provider() diff --git a/src/promptflow/promptflow/core/_serving/flow_invoker.py b/src/promptflow/promptflow/core/_serving/flow_invoker.py index 66517245f2a..3b7a7d73d14 100644 --- a/src/promptflow/promptflow/core/_serving/flow_invoker.py +++ b/src/promptflow/promptflow/core/_serving/flow_invoker.py @@ -5,20 +5,11 @@ from pathlib import Path from typing import Callable, Union -from promptflow._sdk._load_functions import load_flow -from promptflow._sdk._pf_client import PFClient -from promptflow._sdk._utils import ( - dump_flow_result, - get_local_connections_from_executable, - override_connection_config_with_environment_variable, - resolve_connections_environment_variable_reference, - update_environment_variables_with_connections, -) -from promptflow._sdk.entities._flow import Flow -from promptflow._sdk.operations._flow_operations import FlowOperations from promptflow._utils.dataclass_serializer import convert_eager_flow_output_to_dict +from promptflow._utils.flow_utils import dump_flow_result, is_executable_chat_flow from promptflow._utils.logger_utils import LoggerFactory from promptflow._utils.multimedia_utils import convert_multimedia_data_to_base64, persist_multimedia_data +from promptflow.contracts.flow import Flow as ExecutableFlow from promptflow.core._connection import _Connection from promptflow.core._serving._errors import UnexpectedConnectionProviderReturn, UnsupportedConnectionProvider from promptflow.core._serving.flow_result import FlowResult @@ -31,8 +22,8 @@ class FlowInvoker: """ The invoker of a flow. - :param flow: The path of the flow, or the flow loaded by load_flow(). - :type flow: [str, ~promptflow._sdk.entities._flow.Flow] + :param flow: The path of the flow. + :type flow: [str, Path] :param connection_provider: The connection provider, defaults to None :type connection_provider: [str, Callable], optional :param streaming: The function or bool to determine enable streaming or not, defaults to lambda: False @@ -49,17 +40,19 @@ class FlowInvoker: def __init__( self, - flow: [str, Flow], + flow: ExecutableFlow, connection_provider: [str, Callable] = None, streaming: Union[Callable[[], bool], bool] = False, connections: dict = None, connections_name_overrides: dict = None, raise_ex: bool = True, + *, + flow_path: Path, + working_dir: Path, **kwargs, ): self.logger = kwargs.get("logger", LoggerFactory.get_logger("flowinvoker")) - self.flow_entity = flow if isinstance(flow, Flow) else load_flow(source=flow) - self.flow = self.flow_entity._init_executable() + self.flow = flow self.connections = connections or {} self.connections_name_overrides = connections_name_overrides or {} self.raise_ex = raise_ex @@ -72,23 +65,29 @@ def __init__( self._credential = kwargs.get("credential", None) self._init_connections(connection_provider) - self._init_executor() + self._init_executor(flow_path, working_dir) self._dump_file_prefix = "chat" if self._is_chat_flow else "flow" def _init_connections(self, connection_provider): - self._is_chat_flow, _, _ = FlowOperations._is_chat_flow(self.flow) + self._is_chat_flow, _, _ = is_executable_chat_flow(self.flow) + if connection_provider is None or isinstance(connection_provider, str): config = {"connection.provider": connection_provider} if connection_provider else None self.logger.info(f"Getting connections from pf client with provider from args: {connection_provider}...") connections_to_ignore = list(self.connections.keys()) connections_to_ignore.extend(self.connections_name_overrides.keys()) # Note: The connection here could be local or workspace, depends on the connection.provider in pf.yaml. - connections = get_local_connections_from_executable( - executable=self.flow, + # TODO (3027983): remove connection related dependency from promptflow-core + from promptflow import PFClient + from promptflow._sdk._submitter.utils import SubmitterHelper + + connections = SubmitterHelper.resolve_connection_names( + connection_names=self.flow.get_connection_names(), client=PFClient(config=config, credential=self._credential), connections_to_ignore=connections_to_ignore, # fetch connections with name override connections_to_add=list(self.connections_name_overrides.values()), + raise_error=True, ) # use original name for connection with name override override_name_to_original_name_mapping = {v: k for k, v in self.connections_name_overrides.items()} @@ -114,12 +113,19 @@ def _init_connections(self, connection_provider): else: raise UnsupportedConnectionProvider(connection_provider) + # TODO (3027983): remove connection related dependency from promptflow-core + from promptflow._sdk._utils import ( + override_connection_config_with_environment_variable, + resolve_connections_environment_variable_reference, + update_environment_variables_with_connections, + ) + override_connection_config_with_environment_variable(self.connections) resolve_connections_environment_variable_reference(self.connections) update_environment_variables_with_connections(self.connections) self.logger.info(f"Promptflow get connections successfully. keys: {self.connections.keys()}") - def _init_executor(self): + def _init_executor(self, flow_path, working_dir): self.logger.info("Promptflow executor starts initializing...") storage = None if self._dump_to: @@ -127,8 +133,8 @@ def _init_executor(self): else: storage = self.storage self.executor = FlowExecutor.create( - flow_file=self.flow_entity.path, - working_dir=self.flow_entity.code, + flow_file=flow_path, + working_dir=working_dir, connections=self.connections, raise_ex=self.raise_ex, storage=storage, @@ -198,6 +204,7 @@ def _dump_invoke_result(self, invoke_result): invoke_result.output = persist_multimedia_data( invoke_result.output, base_dir=self._dump_to, sub_dir=Path(".promptflow/output") ) + dump_flow_result(flow_folder=self._dump_to, flow_result=invoke_result, prefix=self._dump_file_prefix) diff --git a/src/promptflow/promptflow/core/_utils.py b/src/promptflow/promptflow/core/_utils.py index 80011e0f787..9a9ef6b90cb 100644 --- a/src/promptflow/promptflow/core/_utils.py +++ b/src/promptflow/promptflow/core/_utils.py @@ -6,13 +6,7 @@ from pathlib import Path from typing import Dict, Union -from promptflow._constants import ( - DEFAULT_ENCODING, - DEFAULT_FLOW_YAML_FILE_NAME, - FLOW_META_JSON, - FLOW_META_JSON_GEN_TIMEOUT, - PROMPT_FLOW_DIR_NAME, -) +from promptflow._constants import DEFAULT_ENCODING, FLOW_META_JSON, FLOW_META_JSON_GEN_TIMEOUT, PROMPT_FLOW_DIR_NAME from promptflow._utils.context_utils import _change_working_dir, inject_sys_path from promptflow._utils.logger_utils import LoggerFactory from promptflow.core._errors import GenerateFlowMetaJsonError @@ -112,10 +106,3 @@ def generate_flow_meta( json.dump(flow_meta, f, indent=4) return flow_meta - - -def resolve_flow_path(flow_path: Path): - """Resolve given flow path to dag file path.""" - if flow_path.is_dir(): - flow_path = flow_path / DEFAULT_FLOW_YAML_FILE_NAME - return flow_path diff --git a/src/promptflow/tests/executor/e2etests/test_batch_server.py b/src/promptflow/tests/executor/e2etests/test_batch_server.py index b73c65e7560..f800b9e9f9d 100644 --- a/src/promptflow/tests/executor/e2etests/test_batch_server.py +++ b/src/promptflow/tests/executor/e2etests/test_batch_server.py @@ -6,7 +6,8 @@ from fastapi.testclient import TestClient from promptflow._constants import FlowLanguage -from promptflow.batch import AbstractExecutorProxy, ExecutorProxyFactory, PythonExecutorProxy +from promptflow._proxy import ProxyFactory +from promptflow.batch import AbstractExecutorProxy, PythonExecutorProxy from promptflow.contracts.run_info import Status from promptflow.executor._result import AggregationResult, LineResult from promptflow.executor._service.app import app @@ -22,7 +23,7 @@ def test_batch_run_in_server_mode(self): inputs_mapping = {"text": "${data.text}"} mem_run_storage = MemoryRunStorage() # Mock the executor proxy to use the test client - ExecutorProxyFactory.register_executor(FlowLanguage.Python, MockPythonAPIBasedExecutorProxy) + ProxyFactory.register_executor(FlowLanguage.Python, MockPythonAPIBasedExecutorProxy) batch_result = submit_batch_run( flow_folder, inputs_mapping, input_file_name="inputs.jsonl", storage=mem_run_storage ) @@ -32,7 +33,7 @@ def test_batch_run_in_server_mode(self): assert len(mem_run_storage._flow_runs) == 10 assert len(mem_run_storage._node_runs) == 10 # Reset the executor proxy to avoid affecting other tests - ExecutorProxyFactory.register_executor(FlowLanguage.Python, PythonExecutorProxy) + ProxyFactory.register_executor(FlowLanguage.Python, PythonExecutorProxy) class MockPythonAPIBasedExecutorProxy(AbstractExecutorProxy): diff --git a/src/promptflow/tests/executor/e2etests/test_csharp_executor_proxy.py b/src/promptflow/tests/executor/e2etests/test_csharp_executor_proxy.py index aee868c6c02..ef5b92dbf75 100644 --- a/src/promptflow/tests/executor/e2etests/test_csharp_executor_proxy.py +++ b/src/promptflow/tests/executor/e2etests/test_csharp_executor_proxy.py @@ -8,10 +8,10 @@ import pytest from promptflow._constants import FlowLanguage +from promptflow._proxy import ProxyFactory from promptflow._utils.exception_utils import ExceptionPresenter from promptflow.batch._batch_engine import BatchEngine from promptflow.batch._csharp_executor_proxy import CSharpExecutorProxy -from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory from promptflow.batch._result import BatchResult from promptflow.contracts.run_info import Status from promptflow.exceptions import ErrorTarget, ValidationException @@ -25,7 +25,7 @@ @pytest.mark.unittest class TestCSharpExecutorProxy: def setup_method(self): - ExecutorProxyFactory.register_executor(FlowLanguage.CSharp, MockCSharpExecutorProxy) + ProxyFactory.register_executor(FlowLanguage.CSharp, MockCSharpExecutorProxy) def test_batch(self): # submit a batch run diff --git a/src/promptflow/tests/executor/unittests/batch/test_batch_engine.py b/src/promptflow/tests/executor/unittests/batch/test_batch_engine.py index 30dfc75f224..e2335b74852 100644 --- a/src/promptflow/tests/executor/unittests/batch/test_batch_engine.py +++ b/src/promptflow/tests/executor/unittests/batch/test_batch_engine.py @@ -5,8 +5,8 @@ import pytest from promptflow._core._errors import UnexpectedError +from promptflow._proxy import ProxyFactory from promptflow.batch import APIBasedExecutorProxy, BatchEngine, CSharpExecutorProxy, PythonExecutorProxy -from promptflow.batch._executor_proxy_factory import ExecutorProxyFactory from promptflow.contracts.run_info import Status from promptflow.exceptions import ErrorTarget from promptflow.executor._errors import ConnectionNotFound @@ -53,16 +53,16 @@ def test_batch_engine_run_error(self, side_effect, ex_type, ex_target, ex_codes, def test_register_executor(self): # assert original values - assert ExecutorProxyFactory.executor_proxy_classes["python"] == PythonExecutorProxy - assert ExecutorProxyFactory.executor_proxy_classes["csharp"] == CSharpExecutorProxy + assert ProxyFactory.executor_proxy_classes["python"] == PythonExecutorProxy + assert ProxyFactory.executor_proxy_classes["csharp"] == CSharpExecutorProxy class MockJSExecutorProxy(APIBasedExecutorProxy): pass # register new proxy - ExecutorProxyFactory.register_executor("js", MockJSExecutorProxy) - assert ExecutorProxyFactory.executor_proxy_classes["js"] == MockJSExecutorProxy - assert len(ExecutorProxyFactory.executor_proxy_classes) == 3 + ProxyFactory.register_executor("js", MockJSExecutorProxy) + assert ProxyFactory.executor_proxy_classes["js"] == MockJSExecutorProxy + assert len(ProxyFactory.executor_proxy_classes) == 3 def test_cancel(self): batch_engine = BatchEngine(get_yaml_file("print_input_flow")) diff --git a/src/promptflow/tests/sdk_cli_global_config_test/e2etests/test_global_config.py b/src/promptflow/tests/sdk_cli_global_config_test/e2etests/test_global_config.py index 0e4637d7ad8..14a3d0e4239 100644 --- a/src/promptflow/tests/sdk_cli_global_config_test/e2etests/test_global_config.py +++ b/src/promptflow/tests/sdk_cli_global_config_test/e2etests/test_global_config.py @@ -4,9 +4,8 @@ import pytest from promptflow._sdk._load_functions import load_flow -from promptflow._sdk._utils import get_local_connections_from_executable +from promptflow._sdk.entities._flow._flow_context_resolver import FlowContextResolver from promptflow._sdk.operations._local_azure_connection_operations import LocalAzureConnectionOperations -from promptflow.core._flow_context_resolver import FlowContextResolver FLOWS_DIR = Path(__file__).parent.parent.parent / "test_configs" / "flows" DATAS_DIR = Path(__file__).parent.parent.parent / "test_configs" / "datas" @@ -38,8 +37,12 @@ def test_flow_as_func(self): # Assert flow as func use azure provider, honor global connection config def assert_client(client, **kwargs): assert isinstance(client.connections, LocalAzureConnectionOperations) - return get_local_connections_from_executable(client=client, **kwargs) + return { + "azure_open_ai_connection": client.connections.get( + name="azure_open_ai_connection", with_secrets=True + )._to_execution_connection_dict() + } flow = load_flow(source=f"{FLOWS_DIR}/web_classification") - with mock.patch("promptflow.core._serving.flow_invoker.get_local_connections_from_executable", assert_client): + with mock.patch("promptflow._sdk._submitter.utils.SubmitterHelper.resolve_connections", assert_client): FlowContextResolver.resolve(flow=flow) diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_csharp_cli.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_csharp_cli.py index 68a03de5dbb..dc99aa24c29 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_csharp_cli.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_csharp_cli.py @@ -57,6 +57,18 @@ def test_pf_flow_test_eager_mode(self): "topic=promptflow", ) + def test_pf_run_create_with_connection_override(self): + run_pf_command( + "run", + "create", + "--flow", + f"{get_repo_base_path()}\\examples\\BasicWithBuiltinLLM\\bin\\Debug\\net6.0", + "--data", + f"{get_repo_base_path()}\\examples\\BasicWithBuiltinLLM\\batchRunData.jsonl", + "--connections", + "get_answer.connection=azure_open_ai_connection", + ) + def test_flow_chat(self, monkeypatch, capsys): flow_dir = f"{get_repo_base_path()}\\src\\PromptflowCSharp\\Sample\\BasicChat\\bin\\Debug\\net6.0" # mock user input with pop so make chat list reversed diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_as_func.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_as_func.py index 7660710b14d..b31ca48d6c7 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_as_func.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_as_func.py @@ -14,8 +14,8 @@ from promptflow import load_flow from promptflow._sdk._errors import ConnectionNotFoundError, InvalidFlowError from promptflow._sdk.entities import CustomConnection +from promptflow._sdk.entities._flow._flow_context_resolver import FlowContextResolver from promptflow._utils.flow_utils import dump_flow_dag, load_flow_dag -from promptflow.core._flow_context_resolver import FlowContextResolver from promptflow.entities import FlowContext from promptflow.exceptions import UserErrorException diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_flow.py b/src/promptflow/tests/sdk_cli_test/unittests/test_flow.py index 4f259591754..5f981b3d2c3 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_flow.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_flow.py @@ -7,8 +7,7 @@ from marshmallow import ValidationError from promptflow import load_flow -from promptflow._sdk.entities._eager_flow import FlexFlow -from promptflow._sdk.entities._flow import Flow +from promptflow._sdk.entities._flow import FlexFlow, Flow FLOWS_DIR = Path("./tests/test_configs/flows") EAGER_FLOWS_DIR = Path("./tests/test_configs/eager_flows") diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_flow_invoker.py b/src/promptflow/tests/sdk_cli_test/unittests/test_flow_invoker.py index b952205f2dc..9995029de0d 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_flow_invoker.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_flow_invoker.py @@ -5,13 +5,16 @@ import pytest +from promptflow.core import Flow from promptflow.core._serving._errors import UnexpectedConnectionProviderReturn, UnsupportedConnectionProvider from promptflow.core._serving.flow_invoker import FlowInvoker from promptflow.exceptions import UserErrorException PROMOTFLOW_ROOT = Path(__file__).parent.parent.parent.parent FLOWS_DIR = Path(PROMOTFLOW_ROOT / "tests/test_configs/flows") -EXAMPLE_FLOW = FLOWS_DIR / "web_classification" +EXAMPLE_FLOW_DIR = FLOWS_DIR / "web_classification" +EXAMPLE_FLOW_FILE = EXAMPLE_FLOW_DIR / "flow.dag.yaml" +EXAMPLE_FLOW = Flow.load(EXAMPLE_FLOW_DIR)._init_executable() @pytest.mark.sdk_test @@ -20,18 +23,35 @@ class TestFlowInvoker: # Note: e2e test of flow invoker has been covered by test_flow_serve. def test_flow_invoker_unsupported_connection_provider(self): with pytest.raises(UnsupportedConnectionProvider): - FlowInvoker(flow=EXAMPLE_FLOW, connection_provider=[]) + FlowInvoker( + flow=EXAMPLE_FLOW, connection_provider=[], flow_path=EXAMPLE_FLOW_FILE, working_dir=EXAMPLE_FLOW_DIR + ) with pytest.raises(UserErrorException): - FlowInvoker(flow=EXAMPLE_FLOW, connection_provider="unsupported") + FlowInvoker( + flow=EXAMPLE_FLOW, + connection_provider="unsupported", + flow_path=EXAMPLE_FLOW_FILE, + working_dir=EXAMPLE_FLOW_DIR, + ) def test_flow_invoker_custom_connection_provider(self): # Return is not a list with pytest.raises(UnexpectedConnectionProviderReturn) as e: - FlowInvoker(flow=EXAMPLE_FLOW, connection_provider=lambda: {}) + FlowInvoker( + flow=EXAMPLE_FLOW, + connection_provider=lambda: {}, + flow_path=EXAMPLE_FLOW_FILE, + working_dir=EXAMPLE_FLOW_DIR, + ) assert "should return a list of connections" in str(e.value) # Return is not connection type with pytest.raises(UnexpectedConnectionProviderReturn) as e: - FlowInvoker(flow=EXAMPLE_FLOW, connection_provider=lambda: [1, 2]) + FlowInvoker( + flow=EXAMPLE_FLOW, + connection_provider=lambda: [1, 2], + flow_path=EXAMPLE_FLOW_FILE, + working_dir=EXAMPLE_FLOW_DIR, + ) assert "should be connection type" in str(e.value) From 6ac735ff161433dc5a5013d57fe63fb83d6055d5 Mon Sep 17 00:00:00 2001 From: Ying Chen Date: Tue, 19 Mar 2024 20:04:45 +0800 Subject: [PATCH 088/204] Add portable install step of promptflow in msi installation pipeline (#2381) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. https://github.com/microsoft/promptflow/actions/runs/8320937000 ![image](https://github.com/microsoft/promptflow/assets/26239730/16c136b3-6f8e-4b07-ae1d-6b49ff2d0ab6) # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Ying Chen <2601502859@qq.com> --- .github/workflows/build_msi_installer.yml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_msi_installer.yml b/.github/workflows/build_msi_installer.yml index f252d5d6d04..b0b5331929b 100644 --- a/.github/workflows/build_msi_installer.yml +++ b/.github/workflows/build_msi_installer.yml @@ -1,4 +1,4 @@ -name: Build and Package MSI +name: Build and Package MSI & Portable Installer on: workflow_dispatch: @@ -108,7 +108,6 @@ jobs: setupType: promptflow_with_extra scriptPath: ${{ env.testWorkingDirectory }} - - name: Generate promptflow spec file to config pyinstaller working-directory: ${{ github.workspace }}/scripts/installer/windows/scripts run: | @@ -138,6 +137,11 @@ jobs: pyinstaller promptflow.spec shell: pwsh + - name: Generate portable promptflow + run: | + Compress-Archive -Path ${{ github.workspace }}/scripts/installer/windows/scripts/dist/promptflow -DestinationPath promptflow-${{ steps.get-version.outputs.version }}.zip + shell: pwsh + - name: Build WIX project working-directory: ${{ github.workspace }}/scripts/installer/windows run: | @@ -191,6 +195,13 @@ jobs: az storage blob upload --account-name promptflowartifact --container-name msi-installer --file "scripts/installer/windows/out/$($msi_file.Name)" --name "$($msi_file.Name)" --overwrite } } + # Upload zip file + if ($env:INPUT_UPLOADASLATEST -ieq 'True') { + az storage blob upload --account-name promptflowartifact --container-name portable-installer --file "promptflow-${{ steps.get-version.outputs.version }}.zip" --name "promptflow.zip" --overwrite + az storage blob copy start --account-name promptflowartifact --destination-container portable-installer --destination-blob "promptflow-${{ steps.get-version.outputs.version }}.zip" --source-container portable-installer --source-blob "promptflow.zip" + } else { + az storage blob upload --account-name promptflowartifact --container-name portable-installer --file "promptflow-${{ steps.get-version.outputs.version }}.zip" --name "promptflow-${{ steps.get-version.outputs.version }}.zip" --overwrite + } env: INPUT_UPLOADASLATEST: ${{ github.event.inputs.uploadAsLatest }} shell: pwsh \ No newline at end of file From 6ac49591a4b0f802dbd8a633067db381befdf595 Mon Sep 17 00:00:00 2001 From: Xingzhi Zhang <37076709+elliotzh@users.noreply.github.com> Date: Tue, 19 Mar 2024 21:40:05 +0800 Subject: [PATCH 089/204] refactor - clean dependency: core to devkit (#2393) # Description This PR mainly focus on clean the dependencies from core to devkit. Includes: 1. `core.Flow` & `core.AsyncFlow` have been simplified reimplemented without dependencies on devkit Some connection related dependencies are left and marked for further refactoring. Refactoring and renaming: * [`src/promptflow/promptflow/_cli/_params.py`](diffhunk://#diff-a24d8278b691d05cb31b1f98b6456a2a0e8e7816bc79bbdf1b19fe45eaa8309dL19-R19): The import statement for `strip_quotation` has been updated to reflect its new location in the `promptflow._utils.utils` module. * [`src/promptflow/promptflow/_cli/_pf/_init_entry_generators.py`](diffhunk://#diff-746b4bd84b2bf1ff736d6abe49639a025f3c7c3264f2001e331dafcffe2a5a0dL16-R16): The import statement for `FlowOperations` has been replaced with `is_executable_chat_flow` from `promptflow._utils.flow_utils`. Also, the method call to `FlowOperations._is_chat_flow` has been updated to `is_executable_chat_flow`. [[1]](diffhunk://#diff-746b4bd84b2bf1ff736d6abe49639a025f3c7c3264f2001e331dafcffe2a5a0dL16-R16) [[2]](diffhunk://#diff-746b4bd84b2bf1ff736d6abe49639a025f3c7c3264f2001e331dafcffe2a5a0dL234-R234) * [`src/promptflow/promptflow/_core/connection_manager.py`](diffhunk://#diff-9e330c43ad9a3ea8a549e4015cf7972b9778afb4d01f3bdcc2d8f84ea37963acL12-R17): The import statement for `CustomStrongTypeConnectionConfigs` has been updated to reflect its new location in `promptflow._constants`. * [`src/promptflow/promptflow/_proxy/_proxy_factory.py`](diffhunk://#diff-936478766b9de290e8791c802585d3932cfed416ae7b50daa76396dacf88cdf5R8-R15): The file was renamed from `src/promptflow/promptflow/batch/_executor_proxy_factory.py` and the `ExecutorProxyFactory` class was renamed to `ProxyFactory`. A new method `create_inspector_proxy` was added to the class. [[1]](diffhunk://#diff-936478766b9de290e8791c802585d3932cfed416ae7b50daa76396dacf88cdf5R8-R15) [[2]](diffhunk://#diff-936478766b9de290e8791c802585d3932cfed416ae7b50daa76396dacf88cdf5R54-R64) * [`src/promptflow/promptflow/_sdk/_pf_client.py`](diffhunk://#diff-c100045cd304dbaa66dd61b7087f78b813ce01e8566d0b823b293bb35755eccfL18-R18): The import statement for `FlexFlow` has been updated to reflect its new location in `promptflow._sdk.entities._flow`. * [`src/promptflow/promptflow/_sdk/_submitter/run_submitter.py`](diffhunk://#diff-e3499cf713c66612d91723759de1c5076c22689b2ce2c89678f82de624b57c2cL12-R16): The import statement for `parse_variant` has been updated to reflect its new location in `promptflow._utils.flow_utils`. The import statement for `FlexFlow` has been updated to reflect its new location in `promptflow._sdk.entities._flow`. The method call to `ExecutorProxyFactory().get_executor_proxy_cls(flow.language).dump_metadata` has been updated to `ProxyFactory().get_executor_proxy_cls(flow.language).dump_metadata`. [[1]](diffhunk://#diff-e3499cf713c66612d91723759de1c5076c22689b2ce2c89678f82de624b57c2cL12-R16) [[2]](diffhunk://#diff-e3499cf713c66612d91723759de1c5076c22689b2ce2c89678f82de624b57c2cL26-R26) [[3]](diffhunk://#diff-e3499cf713c66612d91723759de1c5076c22689b2ce2c89678f82de624b57c2cL110-R116) * [`src/promptflow/promptflow/_sdk/_submitter/test_submitter.py`](diffhunk://#diff-d9dd2c09a149b11eb54626edf065287eeb7b1a28e39719b8dd95377770f64138R14-R20): The import statement for `dump_flow_result` has been updated to reflect its new location in `promptflow._utils.flow_utils`. The import statement for `FlexFlow` has been updated to reflect its new location in `promptflow._sdk.entities._flow`. The method call to `ExecutorProxyFactory().get_executor_proxy_cls(self.flow.language).dump_metadata` has been updated to `ProxyFactory().get_executor_proxy_cls(self.flow.language).dump_metadata`. [[1]](diffhunk://#diff-d9dd2c09a149b11eb54626edf065287eeb7b1a28e39719b8dd95377770f64138R14-R20) [[2]](diffhunk://#diff-d9dd2c09a149b11eb54626edf065287eeb7b1a28e39719b8dd95377770f64138R31-R35) [[3]](diffhunk://#diff-d9dd2c09a149b11eb54626edf065287eeb7b1a28e39719b8dd95377770f64138L248-R225) * [`src/promptflow/promptflow/_sdk/_submitter/utils.py`](diffhunk://#diff-38c78274ff4a19381a2129bfd86174d225e0d8537b48c80aa8f6feaca25083abR28): The import statement for `ProxyFactory` from `promptflow._proxy` has been added. The method `resolve_connections` has been updated to use `ProxyFactory` and `resolve_connection_names`. The method `resolve_used_connections` has been removed. [[1]](diffhunk://#diff-38c78274ff4a19381a2129bfd86174d225e0d8537b48c80aa8f6feaca25083abR28) [[2]](diffhunk://#diff-38c78274ff4a19381a2129bfd86174d225e0d8537b48c80aa8f6feaca25083abL255-R281) Addition of new files: * [`src/promptflow/promptflow/_proxy/__init__.py`](diffhunk://#diff-db890b29f2c05ea85ec282550510ac0b0e4761b6be77af142b2e659d4e5a00b0R1-R8): This new file was added to import `ProxyFactory` and `AbstractInspectorProxy` from the `_proxy` module. * [`src/promptflow/promptflow/_proxy/_base_inspector_proxy.py`](diffhunk://#diff-69df25f8ddfbeed622ae5cf13f97f439110586d51262ed1201ce5f3f30f18231R1-R27): This new file was added to define the `AbstractInspectorProxy` class. * [`src/promptflow/promptflow/_proxy/_csharp_inspector_proxy.py`](diffhunk://#diff-3a3b6fcbb15ab97d02280e29888e85dc5c50ca6a78f930442b9fd83a5e219a31R1-R41): This new file was added to define the `CSharpInspectorProxy` class. * [`src/promptflow/promptflow/_proxy/_python_inspector_proxy.py`](diffhunk://#diff-a362f804bcd889c4254da0b3249def515e14306ff5dfbf951dff3d8c12b4e7a2R1-R17): This new file was added to define the `PythonInspectorProxy` class. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [x] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [x] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --- src/promptflow/promptflow/_cli/_params.py | 2 +- src/promptflow/promptflow/_constants.py | 2 + src/promptflow/promptflow/_sdk/_constants.py | 1 - .../_sdk/_submitter/run_submitter.py | 2 +- .../_sdk/_submitter/test_submitter.py | 2 +- src/promptflow/promptflow/_sdk/_utils.py | 29 -- .../_sdk/entities/_flow/__init__.py | 3 +- .../entities/_flow/_flow_context_resolver.py | 3 +- .../_sdk/entities/_flow/async_dag.py | 73 ---- .../promptflow/_sdk/entities/_flow/base.py | 2 +- .../promptflow/_sdk/entities/_flow/dag.py | 6 +- .../promptflow/_sdk/entities/_flow/flex.py | 7 +- .../promptflow/_sdk/entities/_run.py | 3 +- .../_sdk/operations/_flow_operations.py | 3 +- src/promptflow/promptflow/_utils/docs.py | 27 -- .../promptflow/_utils/flow_utils.py | 32 +- src/promptflow/promptflow/_utils/utils.py | 13 + src/promptflow/promptflow/core/_flow.py | 363 +++--------------- .../promptflow/core/_serving/app.py | 5 +- src/promptflow/promptflow/core/_utils.py | 37 ++ .../e2etests/test_flow_as_func.py | 4 +- .../sdk_cli_test/e2etests/test_flow_test.py | 5 +- .../unittests/test_flow_invoker.py | 4 +- 23 files changed, 159 insertions(+), 469 deletions(-) delete mode 100644 src/promptflow/promptflow/_sdk/entities/_flow/async_dag.py delete mode 100644 src/promptflow/promptflow/_utils/docs.py diff --git a/src/promptflow/promptflow/_cli/_params.py b/src/promptflow/promptflow/_cli/_params.py index 47fdad9ec2f..a63d9cd5b58 100644 --- a/src/promptflow/promptflow/_cli/_params.py +++ b/src/promptflow/promptflow/_cli/_params.py @@ -16,7 +16,7 @@ def __call__(self, parser, namespace, values, option_string=None): super(AppendToDictAction, self).__call__(parser, namespace, action, option_string) def get_action(self, values, option_string): # pylint: disable=no-self-use - from promptflow._sdk._utils import strip_quotation + from promptflow._utils.utils import strip_quotation kwargs = {} for item in values: diff --git a/src/promptflow/promptflow/_constants.py b/src/promptflow/promptflow/_constants.py index 4b55fe0e98e..3e42a2a0e16 100644 --- a/src/promptflow/promptflow/_constants.py +++ b/src/promptflow/promptflow/_constants.py @@ -25,6 +25,8 @@ DEFAULT_FLOW_YAML_FILE_NAME = "flow.dag.yaml" +CHAT_HISTORY = "chat_history" + # Tool meta info ICON_DARK = "icon_dark" ICON_LIGHT = "icon_light" diff --git a/src/promptflow/promptflow/_sdk/_constants.py b/src/promptflow/promptflow/_sdk/_constants.py index c60e3a16c30..5bc209fac50 100644 --- a/src/promptflow/promptflow/_sdk/_constants.py +++ b/src/promptflow/promptflow/_sdk/_constants.py @@ -114,7 +114,6 @@ def _prepare_home_dir() -> Path: SCRUBBED_VALUE = CONNECTION_SCRUBBED_VALUE SCRUBBED_VALUE_NO_CHANGE = "" SCRUBBED_VALUE_USER_INPUT = "" -CHAT_HISTORY = "chat_history" WORKSPACE_LINKED_DATASTORE_NAME = "workspaceblobstore" LINE_NUMBER = "line_number" AZUREML_PF_RUN_PROPERTIES_LINEAGE = "azureml.promptflow.input_run_id" diff --git a/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py b/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py index 1a7639b7168..96f0e5e0808 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py +++ b/src/promptflow/promptflow/_sdk/_submitter/run_submitter.py @@ -9,11 +9,11 @@ from promptflow._constants import FlowLanguage from promptflow._sdk._constants import ContextAttributeKey, FlowRunProperties -from promptflow._sdk._utils import parse_variant from promptflow._sdk.entities._flow import Flow from promptflow._sdk.entities._run import Run from promptflow._sdk.operations._local_storage_operations import LocalStorageOperations from promptflow._utils.context_utils import _change_working_dir +from promptflow._utils.flow_utils import parse_variant from promptflow.batch import BatchEngine from promptflow.contracts.run_info import Status from promptflow.contracts.run_mode import RunMode diff --git a/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py b/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py index 243c4e732ed..fe57ebf4c83 100644 --- a/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py +++ b/src/promptflow/promptflow/_sdk/_submitter/test_submitter.py @@ -13,11 +13,11 @@ from promptflow._internal import ConnectionManager from promptflow._proxy import ProxyFactory from promptflow._sdk._constants import PROMPT_FLOW_DIR_NAME -from promptflow._sdk._utils import parse_variant from promptflow._sdk.entities._flow import Flow, FlowContext from promptflow._sdk.operations._local_storage_operations import LoggerOperations from promptflow._utils.context_utils import _change_working_dir from promptflow._utils.exception_utils import ErrorResponse +from promptflow._utils.flow_utils import parse_variant from promptflow.contracts.flow import Flow as ExecutableFlow from promptflow.contracts.run_info import RunInfo, Status from promptflow.exceptions import UserErrorException diff --git a/src/promptflow/promptflow/_sdk/_utils.py b/src/promptflow/promptflow/_sdk/_utils.py index 87b99c8253b..36c022f5919 100644 --- a/src/promptflow/promptflow/_sdk/_utils.py +++ b/src/promptflow/promptflow/_sdk/_utils.py @@ -189,35 +189,6 @@ def load_from_dict(schema: Any, data: Dict, context: Dict, additional_message: s raise ValidationError(decorate_validation_error(schema, pretty_error, additional_message)) -def strip_quotation(value): - """ - To avoid escaping chars in command args, args will be surrounded in quotas. - Need to remove the pair of quotation first. - """ - if value.startswith('"') and value.endswith('"'): - return value[1:-1] - elif value.startswith("'") and value.endswith("'"): - return value[1:-1] - else: - return value - - -def parse_variant(variant: str) -> Tuple[str, str]: - variant_regex = r"\${([^.]+).([^}]+)}" - match = re.match(variant_regex, strip_quotation(variant)) - if match: - return match.group(1), match.group(2) - else: - error = ValueError( - f"Invalid variant format: {variant}, variant should be in format of ${{TUNING_NODE.VARIANT}}" - ) - raise UserErrorException( - target=ErrorTarget.CONTROL_PLANE_SDK, - message=str(error), - error=error, - ) - - # !!! Attention!!!: Please make sure you have contact with PRS team before changing the interface. def get_used_connection_names_from_environment_variables(): """The function will get all potential related connection names from current environment variables. diff --git a/src/promptflow/promptflow/_sdk/entities/_flow/__init__.py b/src/promptflow/promptflow/_sdk/entities/_flow/__init__.py index 48772978022..34476c44a97 100644 --- a/src/promptflow/promptflow/_sdk/entities/_flow/__init__.py +++ b/src/promptflow/promptflow/_sdk/entities/_flow/__init__.py @@ -2,9 +2,8 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -from .async_dag import AsyncFlow from .base import FlowContext from .dag import Flow from .flex import FlexFlow -__all__ = ["Flow", "FlexFlow", "FlowContext", "AsyncFlow"] +__all__ = ["Flow", "FlexFlow", "FlowContext"] diff --git a/src/promptflow/promptflow/_sdk/entities/_flow/_flow_context_resolver.py b/src/promptflow/promptflow/_sdk/entities/_flow/_flow_context_resolver.py index 87155284781..ed43cd83e02 100644 --- a/src/promptflow/promptflow/_sdk/entities/_flow/_flow_context_resolver.py +++ b/src/promptflow/promptflow/_sdk/entities/_flow/_flow_context_resolver.py @@ -8,10 +8,9 @@ from typing import Dict, Union from promptflow._sdk._constants import NODES -from promptflow._sdk._utils import parse_variant from promptflow._sdk.entities import FlowContext from promptflow._sdk.entities._flow import Flow -from promptflow._utils.flow_utils import load_flow_dag +from promptflow._utils.flow_utils import load_flow_dag, parse_variant from promptflow._utils.yaml_utils import dump_yaml from promptflow.contracts.flow import Node from promptflow.exceptions import UserErrorException diff --git a/src/promptflow/promptflow/_sdk/entities/_flow/async_dag.py b/src/promptflow/promptflow/_sdk/entities/_flow/async_dag.py deleted file mode 100644 index 201fd0bc0f6..00000000000 --- a/src/promptflow/promptflow/_sdk/entities/_flow/async_dag.py +++ /dev/null @@ -1,73 +0,0 @@ -from os import PathLike -from typing import Union - -from promptflow._constants import DEFAULT_ENCODING, FlowLanguage -from promptflow._utils.docs import AsyncFlowDoc -from promptflow._utils.yaml_utils import load_yaml_string -from promptflow.exceptions import UserErrorException - -from .dag import Flow - - -class AsyncFlow(Flow): - __doc__ = AsyncFlowDoc.__doc__ - - async def invoke_async(self, inputs: dict) -> "LineResult": - """Invoke a flow and get a LineResult object.""" - from promptflow._sdk._submitter import TestSubmitter - - if self.language == FlowLanguage.CSharp: - # Sync C# calling - # TODO: Async C# support: Task(3002242) - with TestSubmitter(flow=self, flow_context=self.context).init( - stream_output=self.context.streaming - ) as submitter: - result = submitter.flow_test(inputs=inputs, allow_generator_output=self.context.streaming) - return result - else: - return await super().invoke_async(inputs=inputs) - - # region overrides - @classmethod - def load( - cls, - source: Union[str, PathLike], - raise_error=True, - **kwargs, - ) -> "AsyncFlow": - """ - Direct load flow from YAML file. - - :param source: The local yaml source of a flow. Must be a path to a local file. - If the source is a path, it will be open and read. - An exception is raised if the file does not exist. - :type source: Union[PathLike, str] - :param raise_error: Argument for non-dag flow raise validation error on unknown fields. - :type raise_error: bool - :return: An AsyncFlow object - :rtype: AsyncFlow - """ - _, flow_path = cls._load_prepare(source) - with open(flow_path, "r", encoding=DEFAULT_ENCODING) as f: - flow_content = f.read() - data = load_yaml_string(flow_content) - content_hash = hash(flow_content) - return cls._load(path=flow_path, dag=data, content_hash=content_hash, **kwargs) - - # endregion - - async def __call__(self, *args, **kwargs): - """Calling flow as a function in async, the inputs should be provided with key word arguments. - Returns the output of the flow. - The function call throws UserErrorException: if the flow is not valid or the inputs are not valid. - SystemErrorException: if the flow execution failed due to unexpected executor error. - - :param args: positional arguments are not supported. - :param kwargs: flow inputs with key word arguments. - :return: - """ - if args: - raise UserErrorException("Flow can only be called with keyword arguments.") - - result = await self.invoke_async(inputs=kwargs) - return result.output diff --git a/src/promptflow/promptflow/_sdk/entities/_flow/base.py b/src/promptflow/promptflow/_sdk/entities/_flow/base.py index b82bad2b4ff..09d5d174b51 100644 --- a/src/promptflow/promptflow/_sdk/entities/_flow/base.py +++ b/src/promptflow/promptflow/_sdk/entities/_flow/base.py @@ -137,7 +137,7 @@ class Flow(FlowBase): .. code-block:: python - from promptflow.core import Flow + from promptflow.entities import Flow flow = Flow.load(source="path/to/flow.dag.yaml") result = flow(input_a=1, input_b=2) diff --git a/src/promptflow/promptflow/_sdk/entities/_flow/dag.py b/src/promptflow/promptflow/_sdk/entities/_flow/dag.py index 8a52eea315b..ce413003d40 100644 --- a/src/promptflow/promptflow/_sdk/entities/_flow/dag.py +++ b/src/promptflow/promptflow/_sdk/entities/_flow/dag.py @@ -8,7 +8,6 @@ from promptflow._constants import FLOW_TOOLS_JSON, LANGUAGE_KEY, PROMPT_FLOW_DIR_NAME, FlowLanguage from promptflow._sdk._constants import BASE_PATH_CONTEXT_KEY -from promptflow._utils.docs import FlowDoc from promptflow._utils.flow_utils import resolve_flow_path from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow._utils.yaml_utils import load_yaml @@ -20,7 +19,10 @@ class Flow(FlowBase): - __doc__ = FlowDoc.__doc__ + """A FlexFlow represents an non-dag flow, which uses codes to define the flow. + FlexFlow basically behave like a Flow, but its entry function should be provided in the flow.dag.yaml file. + Load of this non-dag flow is provided, but direct call of it will cause exceptions. + """ def __init__( self, diff --git a/src/promptflow/promptflow/_sdk/entities/_flow/flex.py b/src/promptflow/promptflow/_sdk/entities/_flow/flex.py index 5b56efe9c74..e9d521cd423 100644 --- a/src/promptflow/promptflow/_sdk/entities/_flow/flex.py +++ b/src/promptflow/promptflow/_sdk/entities/_flow/flex.py @@ -7,7 +7,6 @@ from promptflow._constants import LANGUAGE_KEY, FlowLanguage from promptflow._sdk._constants import BASE_PATH_CONTEXT_KEY -from promptflow._utils.docs import FlexFlowDoc from promptflow._utils.flow_utils import resolve_entry_file from promptflow.exceptions import ErrorTarget, UserErrorException @@ -15,7 +14,11 @@ class FlexFlow(Flow): - __doc__ = FlexFlowDoc.__doc__ + """A FlexFlow represents a flow defined with codes directly. It doesn't involve a directed acyclic graph (DAG) + explicitly, but its entry function haven't been provided. + FlexFlow basically behave like a Flow. + Load of this non-dag flow is provided, but direct call of it will cause exceptions. + """ def __init__( self, diff --git a/src/promptflow/promptflow/_sdk/entities/_run.py b/src/promptflow/promptflow/_sdk/entities/_run.py index be81d353f25..c6285a92d38 100644 --- a/src/promptflow/promptflow/_sdk/entities/_run.py +++ b/src/promptflow/promptflow/_sdk/entities/_run.py @@ -43,11 +43,10 @@ is_multi_container_enabled, is_remote_uri, parse_remote_flow_pattern, - parse_variant, ) from promptflow._sdk.entities._yaml_translatable import YAMLTranslatableMixin from promptflow._sdk.schemas._run import RunSchema -from promptflow._utils.flow_utils import get_flow_lineage_id +from promptflow._utils.flow_utils import get_flow_lineage_id, parse_variant from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow.exceptions import UserErrorException diff --git a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py index 662f832192a..d76be053000 100644 --- a/src/promptflow/promptflow/_sdk/operations/_flow_operations.py +++ b/src/promptflow/promptflow/_sdk/operations/_flow_operations.py @@ -32,12 +32,11 @@ generate_flow_tools_json, generate_random_string, logger, - parse_variant, ) from promptflow._sdk.entities._flow import FlexFlow, Flow from promptflow._sdk.entities._validation import ValidationResult from promptflow._utils.context_utils import _change_working_dir -from promptflow._utils.flow_utils import dump_flow_result, is_executable_chat_flow +from promptflow._utils.flow_utils import dump_flow_result, is_executable_chat_flow, parse_variant from promptflow._utils.yaml_utils import dump_yaml, load_yaml from promptflow.exceptions import UserErrorException diff --git a/src/promptflow/promptflow/_utils/docs.py b/src/promptflow/promptflow/_utils/docs.py deleted file mode 100644 index a6cb3dffb5f..00000000000 --- a/src/promptflow/promptflow/_utils/docs.py +++ /dev/null @@ -1,27 +0,0 @@ -class FlowDoc: - """A FlexFlow represents an non-dag flow, which uses codes to define the flow. - FlexFlow basically behave like a Flow, but its entry function should be provided in the flow.dag.yaml file. - Load of this non-dag flow is provided, but direct call of it will cause exceptions. - """ - - -class AsyncFlowDoc: - """Async flow is based on Flow, which is used to invoke flow in async mode. - - Simple Example: - - .. code-block:: python - - from promptflow.core import class AsyncFlow - flow = AsyncFlow.load(source="path/to/flow.dag.yaml") - result = await flow(input_a=1, input_b=2) - - """ - - -class FlexFlowDoc: - """A FlexFlow represents a flow defined with codes directly. It doesn't involve a directed acyclic graph (DAG) - explicitly, but its entry function haven't been provided. - FlexFlow basically behave like a Flow. - Load of this non-dag flow is provided, but direct call of it will cause exceptions. - """ diff --git a/src/promptflow/promptflow/_utils/flow_utils.py b/src/promptflow/promptflow/_utils/flow_utils.py index 4a2f6c7647d..f305cfd4b18 100644 --- a/src/promptflow/promptflow/_utils/flow_utils.py +++ b/src/promptflow/promptflow/_utils/flow_utils.py @@ -4,17 +4,19 @@ import hashlib import json import os +import re from os import PathLike from pathlib import Path from typing import Optional, Tuple, Union -from promptflow._constants import PROMPT_FLOW_DIR_NAME +from promptflow._constants import CHAT_HISTORY, DEFAULT_ENCODING, DEFAULT_FLOW_YAML_FILE_NAME, PROMPT_FLOW_DIR_NAME from promptflow._core._errors import MetaFileNotFound, MetaFileReadError -from promptflow._sdk._constants import CHAT_HISTORY, DAG_FILE_NAME, DEFAULT_ENCODING from promptflow._utils.dataclass_serializer import serialize from promptflow._utils.logger_utils import LoggerFactory +from promptflow._utils.utils import strip_quotation from promptflow._utils.yaml_utils import dump_yaml, load_yaml -from promptflow.exceptions import UserErrorException +from promptflow.contracts.flow import Flow as ExecutableFlow +from promptflow.exceptions import ErrorTarget, UserErrorException logger = LoggerFactory.get_logger(name=__name__) @@ -75,11 +77,11 @@ def resolve_flow_path( if new: if flow_path.is_dir(): - return flow_path, DAG_FILE_NAME + return flow_path, DEFAULT_FLOW_YAML_FILE_NAME return flow_path.parent, flow_path.name - if flow_path.is_dir() and (flow_path / DAG_FILE_NAME).is_file(): - return flow_path, DAG_FILE_NAME + if flow_path.is_dir() and (flow_path / DEFAULT_FLOW_YAML_FILE_NAME).is_file(): + return flow_path, DEFAULT_FLOW_YAML_FILE_NAME elif flow_path.is_file(): return flow_path.parent, flow_path.name @@ -201,7 +203,7 @@ def dump_flow_result(flow_folder, prefix, flow_result=None, node_result=None, cu json.dump(output, f, indent=2, ensure_ascii=False) -def is_executable_chat_flow(flow): +def is_executable_chat_flow(flow: ExecutableFlow): """ Check if the flow is chat flow. Check if chat_history in the flow input and only one chat input and @@ -232,3 +234,19 @@ def is_executable_chat_flow(flow): _is_chat_flow = False error_msg = "chat_history is required in the inputs of chat flow" return _is_chat_flow, chat_history_input_name, error_msg + + +def parse_variant(variant: str) -> Tuple[str, str]: + variant_regex = r"\${([^.]+).([^}]+)}" + match = re.match(variant_regex, strip_quotation(variant)) + if match: + return match.group(1), match.group(2) + else: + error = ValueError( + f"Invalid variant format: {variant}, variant should be in format of ${{TUNING_NODE.VARIANT}}" + ) + raise UserErrorException( + target=ErrorTarget.CONTROL_PLANE_SDK, + message=str(error), + error=error, + ) diff --git a/src/promptflow/promptflow/_utils/utils.py b/src/promptflow/promptflow/_utils/utils.py index 02d787280e0..3f53a8c58ec 100644 --- a/src/promptflow/promptflow/_utils/utils.py +++ b/src/promptflow/promptflow/_utils/utils.py @@ -418,3 +418,16 @@ def try_get_long_running_logging_interval(logger: logging.Logger, default_interv return default_interval # If the environment variable is not set, return none to disable the long running logging return None + + +def strip_quotation(value): + """ + To avoid escaping chars in command args, args will be surrounded in quotas. + Need to remove the pair of quotation first. + """ + if value.startswith('"') and value.endswith('"'): + return value[1:-1] + elif value.startswith("'") and value.endswith("'"): + return value[1:-1] + else: + return value diff --git a/src/promptflow/promptflow/core/_flow.py b/src/promptflow/promptflow/core/_flow.py index df7b3071aba..e0562fd89f2 100644 --- a/src/promptflow/promptflow/core/_flow.py +++ b/src/promptflow/promptflow/core/_flow.py @@ -3,104 +3,26 @@ # --------------------------------------------------------- import abc -import json from os import PathLike from pathlib import Path -from typing import Optional, Union +from typing import Any, Mapping, Union from promptflow._constants import DEFAULT_ENCODING -from promptflow._utils.flow_utils import is_flex_flow, resolve_entry_file, resolve_flow_path +from promptflow._utils.flow_utils import is_flex_flow, resolve_flow_path from promptflow._utils.yaml_utils import load_yaml_string -from promptflow.core._connection import _Connection -from promptflow.core._utils import generate_flow_meta +from promptflow.core._serving.flow_invoker import AsyncFlowInvoker, FlowInvoker +from promptflow.core._utils import init_executable from promptflow.exceptions import UserErrorException -class FlowContext: - """Flow context entity. the settings on this context will be applied to the flow when executing. - - :param connections: Connections for the flow. - :type connections: Optional[Dict[str, Dict]] - :param variant: Variant of the flow. - :type variant: Optional[str] - :param variant: Overrides of the flow. - :type variant: Optional[Dict[str, Dict]] - :param streaming: Whether the flow's output need to be return in streaming mode. - :type streaming: Optional[bool] - """ - - def __init__( - self, - *, - connections=None, - variant=None, - overrides=None, - streaming=None, - ): - self.connections, self._connection_objs = connections or {}, {} - self.variant = variant - self.overrides = overrides or {} - self.streaming = streaming - # TODO: introduce connection provider support - - def _resolve_connections(self): - # resolve connections and create placeholder for connection objects - for _, v in self.connections.items(): - if isinstance(v, dict): - for k, conn in v.items(): - if isinstance(conn, _Connection): # Core COnnection - name = self._get_connection_obj_name(conn) - v[k] = name - self._connection_objs[name] = conn - - @classmethod - def _get_connection_obj_name(cls, connection: _Connection): - # create a unique connection name for connection obj - # will generate same name if connection has same content - connection_dict = connection._to_dict() - connection_name = f"connection_{hash(json.dumps(connection_dict, sort_keys=True))}" - return connection_name - - def _to_dict(self): - return { - "connections": self.connections, - "variant": self.variant, - "overrides": self.overrides, - "streaming": self.streaming, - } - - def __eq__(self, other): - if isinstance(other, FlowContext): - return self._to_dict() == other._to_dict() - return False - - def __hash__(self): - self._resolve_connections() - return hash(json.dumps(self._to_dict(), sort_keys=True)) - - class FlowBase(abc.ABC): def __init__(self, *, data: dict, code: Path, path: Path, **kwargs): - self._context = FlowContext() # flow.dag.yaml's content if provided self._data = data # working directory of the flow self._code = Path(code).resolve() # flow file path, can be script file or flow definition YAML file self._path = Path(path).resolve() - # hash of flow's entry file, used to skip invoke if entry file is not changed - self._content_hash = kwargs.pop("content_hash", None) - super().__init__(**kwargs) - - @property - def context(self) -> FlowContext: - return self._context - - @context.setter - def context(self, val): - if not isinstance(val, FlowContext): - raise UserErrorException("context must be a FlowContext object, got {type(val)} instead.") - self._context = val @property def code(self) -> Path: @@ -112,81 +34,10 @@ def path(self) -> Path: """Flow file path. Can be script file or flow definition YAML file.""" return self._path - @classmethod - # pylint: disable=unused-argument - def _resolve_cls_and_type(cls, data, params_override): - """Resolve the class to use for deserializing the data. Return current class if no override is provided. - :param data: Data to deserialize. - :type data: dict - :param params_override: Parameters to override, defaults to None - :type params_override: typing.Optional[list] - :return: Class to use for deserializing the data & its "type". Type will be None if no override is provided. - :rtype: tuple[class, typing.Optional[str]] - """ - return cls, "flow" - - -class Flow(FlowBase): - """A Flow in the context of PromptFlow is a sequence of steps that define a task. - Each step in the flow could be a prompt that is sent to a language model, or simply a function task, - and the output of one step can be used as the input to the next. - Flows can be used to build complex applications with language models. - - Simple Example: - - .. code-block:: python - - from promptflow.core import Flow - flow = Flow.load(source="path/to/flow.dag.yaml") - result = flow(input_a=1, input_b=2) - - """ - - def __init__( - self, - code: Union[str, PathLike], - path: Union[str, PathLike], - dag: dict, - **kwargs, - ): - self.variant = kwargs.pop("variant", None) or {} - super().__init__(data=dag, code=code, path=path, **kwargs) - - @classmethod - def _load(cls, path: Path, dag: dict, **kwargs): - return cls(code=path.parent, path=path, dag=dag, **kwargs) - - @classmethod - def _dispatch_flow_creation(cls, is_eager_flow, flow_path, data, content_hash, raise_error=True, **kwargs): - """Dispatch flow load to non-dag flow or async flow.""" - # we won't help to validate the schema for core.Flow - if is_eager_flow: - return FlexFlow._load(path=flow_path, data=data, **kwargs) - else: - # TODO: schema validation and warning on unknown fields - return Flow._load(path=flow_path, dag=data, content_hash=content_hash, **kwargs) - - @classmethod - def _load_prepare(cls, source: Union[str, PathLike]): - source_path = Path(source) - if not source_path.exists(): - raise UserErrorException(f"Source {source_path.absolute().as_posix()} does not exist") - - flow_dir, flow_filename = resolve_flow_path(source_path, new=True) - flow_path = flow_dir / flow_filename - - if not flow_path.exists(): - raise UserErrorException(f"Flow file {flow_path.absolute().as_posix()} does not exist") - - if flow_path.suffix not in [".yaml", ".yml"]: - raise UserErrorException("Source must be a directory or a 'flow.dag.yaml' file") - return source_path, flow_path - @classmethod def load( cls, source: Union[str, PathLike], - raise_error=True, **kwargs, ) -> "Flow": """ @@ -196,35 +47,40 @@ def load( If the source is a path, it will be open and read. An exception is raised if the file does not exist. :type source: Union[PathLike, str] - :param raise_error: Argument for non-dag flow raise validation error on unknown fields. - :type raise_error: bool :return: A Flow object :rtype: Flow """ - _, flow_path = cls._load_prepare(source) + flow_dir, flow_filename = resolve_flow_path(source) + flow_path = flow_dir / flow_filename with open(flow_path, "r", encoding=DEFAULT_ENCODING) as f: flow_content = f.read() data = load_yaml_string(flow_content) - content_hash = hash(flow_content) - return cls._dispatch_flow_creation( - is_flex_flow(yaml_dict=data), flow_path, data, content_hash, raise_error=raise_error, **kwargs - ) + if is_flex_flow(yaml_dict=data, working_dir=flow_dir): + raise UserErrorException("Please call entry directly for flex flow.") + return cls._create(code=flow_dir, path=flow_path, data=data) - def _init_executable(self): - from promptflow.contracts.flow import Flow as ExecutableFlow + @classmethod + def _create(cls, data, code, path, **kwargs): + raise NotImplementedError() - # for DAG flow, use data to init executable to improve performance - return ExecutableFlow._from_dict(flow_dag=self._data, working_dir=self.code) - def __eq__(self, other): - if isinstance(other, Flow): - return self._content_hash == other._content_hash and self.context == other.context - return False +class Flow(FlowBase): + """A Flow in the context of PromptFlow is a sequence of steps that define a task. + Each step in the flow could be a prompt that is sent to a language model, or simply a function task, + and the output of one step can be used as the input to the next. + Flows can be used to build complex applications with language models. + + Simple Example: - def __hash__(self): - return hash(self.context) ^ self._content_hash + .. code-block:: python - def __call__(self, *args, **kwargs): + from promptflow.core import Flow + flow = Flow.load(source="path/to/flow.dag.yaml") + result = flow(input_a=1, input_b=2) + + """ + + def __call__(self, *args, **kwargs) -> Mapping[str, Any]: """Calling flow as a function, the inputs should be provided with key word arguments. Returns the output of the flow. The function call throws UserErrorException: if the flow is not valid or the inputs are not valid. @@ -241,117 +97,29 @@ def __call__(self, *args, **kwargs): result = self.invoke(inputs=kwargs) return result.output - def invoke(self, inputs: dict) -> "LineResult": + def invoke(self, inputs: dict, connections: dict = None, **kwargs) -> "LineResult": """Invoke a flow and get a LineResult object.""" - from promptflow._sdk.entities._flow._flow_context_resolver import FlowContextResolver - - invoker = FlowContextResolver.resolve(flow=self) + # candidate parameters: connections, variant, overrides, streaming + + invoker = FlowInvoker( + flow=init_executable(flow_dag=self._data, working_dir=self.code), + # TODO (3027983): resolve the connections before passing to invoker + connections=connections, + streaming=True, + flow_path=self.path, + working_dir=self.code, + ) result = invoker._invoke( data=inputs, ) return result - -class FlexFlow(Flow): - """A FlexFlow represents an non-dag flow, which uses codes to define the flow. - FlexFlow basically behave like a Flow, but its entry function should be provided in the flow.dag.yaml file. - Load of this non-dag flow is provided, but direct call of it will cause exceptions. - """ - - def __init__( - self, - path: Union[str, PathLike], - code: Union[str, PathLike], - entry: str, - data: dict, - **kwargs, - ): - # flow.dag.yaml file path or entry.py file path - path = Path(path) - # flow.dag.yaml file's folder or entry.py's folder - code = Path(code) - # entry function name - self.entry = entry - # entry file name - self.entry_file = resolve_entry_file(entry=entry, working_dir=code) - # TODO(2910062): support non-dag flow execution cache - super().__init__(code=code, path=path, dag=data, content_hash=None, **kwargs) - @classmethod - def _load(cls, path: Path, data: dict, **kwargs): - entry = data.get("entry") - code = path.parent + def _create(cls, data, code, path, **kwargs): + return cls(code=code, path=path, data=data, **kwargs) - if entry is None: - raise UserErrorException(f"Entry function is not specified for flow {path}") - return cls(path=path, code=code, entry=entry, data=data, **kwargs) - # region overrides - @classmethod - def load( - cls, - source: Union[str, PathLike], - raise_error=True, - **kwargs, - ) -> "FlexFlow": - """ - Direct load non-dag flow from YAML file. - - :param source: The local yaml source of a flow. Must be a path to a local file. - If the source is a path, it will be open and read. - An exception is raised if the file does not exist. - :type source: Union[PathLike, str] - :param raise_error: Argument for non-dag flow raise validation error on unknown fields. - :type raise_error: bool - :return: A EagerFlow object - :rtype: EagerFlow - """ - _, flow_path = cls._load_prepare(source) - with open(flow_path, "r", encoding=DEFAULT_ENCODING) as f: - flow_content = f.read() - data = load_yaml_string(flow_content) - if not is_flex_flow(yaml_dict=data): - raise UserErrorException("Please load an non-dag flow with EagerFlow.load method.") - return cls._load(path=flow_path, data=data, **kwargs) - - def _init_executable(self): - from promptflow.contracts.flow import EagerFlow as ExecutableEagerFlow - - # TODO(2991934): support environment variables here - meta_dict = generate_flow_meta( - flow_directory=self.code, - source_path=self.entry_file, - entry=self.entry, - dump=False, - ) - return ExecutableEagerFlow.deserialize(meta_dict) - - def __call__(self, *args, **kwargs): - """Direct call of non-dag flow WILL cause exceptions.""" - raise UserErrorException("FlexFlow can not be called as a function.") - - # endregion - - @classmethod - def _resolve_entry_file(cls, entry: str, working_dir: Path) -> Optional[str]: - """Resolve entry file from entry. - If entry is a local file, e.g. my.local.file:entry_function, return the local file: my/local/file.py - and executor will import it from local file. - Else, assume the entry is from a package e.g. external.module:entry, return None - and executor will try import it from package. - """ - try: - entry_file = f'{entry.split(":")[0].replace(".", "/")}.py' - except Exception as e: - raise UserErrorException(f"Entry function {entry} is not valid: {e}") - entry_file = working_dir / entry_file - if entry_file.exists(): - return entry_file.resolve().absolute().as_posix() - # when entry file not found in working directory, return None since it can come from package - return None - - -class AsyncFlow(Flow): +class AsyncFlow(FlowBase): """Async flow is based on Flow, which is used to invoke flow in async mode. Simple Example: @@ -364,36 +132,7 @@ class AsyncFlow(Flow): """ - # region overrides - @classmethod - def load( - cls, - source: Union[str, PathLike], - raise_error=True, - **kwargs, - ) -> "AsyncFlow": - """ - Direct load flow from YAML file. - - :param source: The local yaml source of a flow. Must be a path to a local file. - If the source is a path, it will be open and read. - An exception is raised if the file does not exist. - :type source: Union[PathLike, str] - :param raise_error: Argument for non-dag flow raise validation error on unknown fields. - :type raise_error: bool - :return: An AsyncFlow object - :rtype: AsyncFlow - """ - _, flow_path = cls._load_prepare(source) - with open(flow_path, "r", encoding=DEFAULT_ENCODING) as f: - flow_content = f.read() - data = load_yaml_string(flow_content) - content_hash = hash(flow_content) - return cls._load(path=flow_path, dag=data, content_hash=content_hash, **kwargs) - - # endregion - - async def __call__(self, *args, **kwargs): + async def __call__(self, *args, **kwargs) -> Mapping[str, Any]: """Calling flow as a function in async, the inputs should be provided with key word arguments. Returns the output of the flow. The function call throws UserErrorException: if the flow is not valid or the inputs are not valid. @@ -406,15 +145,25 @@ async def __call__(self, *args, **kwargs): if args: raise UserErrorException("Flow can only be called with keyword arguments.") - result = await self.invoke_async(inputs=kwargs) + result = await self.invoke(inputs=kwargs) return result.output - async def invoke_async(self, inputs: dict) -> "LineResult": + async def invoke(self, inputs: dict, *, connections: dict = None, **kwargs) -> "LineResult": """Invoke a flow and get a LineResult object.""" - from promptflow._sdk.entities._flow._flow_context_resolver import FlowContextResolver - invoker = FlowContextResolver.resolve_async_invoker(flow=self) + invoker = AsyncFlowInvoker( + flow=init_executable(flow_dag=self._data, working_dir=self.code), + # TODO (3027983): resolve the connections before passing to invoker + connections=connections, + streaming=True, + flow_path=self.path, + working_dir=self.code, + ) result = await invoker._invoke_async( data=inputs, ) return result + + @classmethod + def _create(cls, data, code, path, **kwargs): + return cls(code=code, path=path, data=data, **kwargs) diff --git a/src/promptflow/promptflow/core/_serving/app.py b/src/promptflow/promptflow/core/_serving/app.py index 185eae2a4b0..11f15d077aa 100644 --- a/src/promptflow/promptflow/core/_serving/app.py +++ b/src/promptflow/promptflow/core/_serving/app.py @@ -6,6 +6,7 @@ import logging import mimetypes import os +from pathlib import Path from typing import Dict from flask import Flask, g, jsonify, request @@ -17,7 +18,6 @@ from promptflow._utils.user_agent_utils import setup_user_agent_to_operation_context from promptflow._version import VERSION from promptflow.contracts.run_info import Status -from promptflow.core._flow import Flow from promptflow.core._serving.constants import FEEDBACK_TRACE_FIELD_NAME, FEEDBACK_TRACE_SPAN_NAME from promptflow.core._serving.extension.extension_factory import ExtensionFactory from promptflow.core._serving.flow_invoker import FlowInvoker @@ -33,6 +33,7 @@ streaming_response_required, try_extract_trace_context, ) +from promptflow.core._utils import init_executable from promptflow.exceptions import SystemErrorException from promptflow.storage._run_storage import DummyRunStorage @@ -52,7 +53,7 @@ def init(self, **kwargs): # parse promptflow project path self.project_path = self.extension.get_flow_project_path() logger.info(f"Project path: {self.project_path}") - self.flow = Flow.load(self.project_path)._init_executable() + self.flow = init_executable(flow_path=Path(self.project_path)) # enable environment_variables environment_variables = kwargs.get("environment_variables", {}) diff --git a/src/promptflow/promptflow/core/_utils.py b/src/promptflow/promptflow/core/_utils.py index 9a9ef6b90cb..ebcff17cb81 100644 --- a/src/promptflow/promptflow/core/_utils.py +++ b/src/promptflow/promptflow/core/_utils.py @@ -8,7 +8,9 @@ from promptflow._constants import DEFAULT_ENCODING, FLOW_META_JSON, FLOW_META_JSON_GEN_TIMEOUT, PROMPT_FLOW_DIR_NAME from promptflow._utils.context_utils import _change_working_dir, inject_sys_path +from promptflow._utils.flow_utils import is_flex_flow, resolve_entry_file, resolve_flow_path from promptflow._utils.logger_utils import LoggerFactory +from promptflow._utils.yaml_utils import load_yaml from promptflow.core._errors import GenerateFlowMetaJsonError logger = LoggerFactory.get_logger(name=__name__) @@ -106,3 +108,38 @@ def generate_flow_meta( json.dump(flow_meta, f, indent=4) return flow_meta + + +def init_executable(*, flow_dag: dict = None, flow_path: Path = None, working_dir: Path = None): + if flow_dag and flow_path: + raise ValueError("flow_dag and flow_path cannot be both provided.") + if not flow_dag and not flow_path: + raise ValueError("flow_dag or flow_path must be provided.") + if flow_dag and not working_dir: + raise ValueError("working_dir must be provided when flow_dag is provided.") + + if flow_path: + flow_dir, flow_filename = resolve_flow_path(flow_path) + flow_dag = load_yaml(flow_dir / flow_filename) + if not working_dir: + working_dir = flow_dir + + from promptflow.contracts.flow import EagerFlow as ExecutableEagerFlow + from promptflow.contracts.flow import Flow as ExecutableFlow + + if is_flex_flow(yaml_dict=flow_dag): + + entry = flow_dag.get("entry") + entry_file = resolve_entry_file(entry=entry, working_dir=working_dir) + + # TODO(2991934): support environment variables here + meta_dict = generate_flow_meta( + flow_directory=working_dir, + source_path=entry_file, + entry=entry, + dump=False, + ) + return ExecutableEagerFlow.deserialize(meta_dict) + + # for DAG flow, use data to init executable to improve performance + return ExecutableFlow._from_dict(flow_dag=flow_dag, working_dir=working_dir) diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_as_func.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_as_func.py index b31ca48d6c7..d6a83a6fcdb 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_as_func.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_as_func.py @@ -62,7 +62,7 @@ async def test_flow_as_a_func_asynckw(self, async_call_folder): async def test_flow_as_a_func_real_async(self): from promptflow.core._flow import AsyncFlow - original_async_func = AsyncFlow.invoke_async + original_async_func = AsyncFlow.invoke # Modify the original function and retrieve the time info. run_info_group = [] @@ -75,7 +75,7 @@ async def parse_invoke_async(*args, **kwargs): node_run_infos_group.append(obj.node_run_infos) return obj - with mock.patch("promptflow.core._flow.AsyncFlow.invoke_async", parse_invoke_async): + with mock.patch("promptflow.core._flow.AsyncFlow.invoke", parse_invoke_async): f_async_tools = AsyncFlow.load(f"{FLOWS_DIR}/async_tools") f_env_var_async = AsyncFlow.load(f"{FLOWS_DIR}/print_env_var_async") diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_test.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_test.py index ee7b20d9fae..f1a063e1d30 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_test.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_test.py @@ -11,6 +11,7 @@ from promptflow._sdk._constants import LOGGER_NAME from promptflow._sdk._pf_client import PFClient +from promptflow.core._utils import init_executable from promptflow.exceptions import UserErrorException PROMOTFLOW_ROOT = Path(__file__) / "../../../.." @@ -359,12 +360,10 @@ def test_generate_flow_meta_exception(self): assert "Entry function my_func is not valid." in str(e.value) def test_init_executable(self): - from promptflow import load_flow from promptflow.contracts.flow import FlowInputDefinition, FlowOutputDefinition flow_path = Path(f"{EAGER_FLOWS_DIR}/simple_with_yaml").absolute() - flow = load_flow(flow_path) - executable = flow._init_executable() + executable = init_executable(flow_path=flow_path) # call values in executable.inputs are FlowInputDefinitions assert all([isinstance(value, FlowInputDefinition) for value in executable.inputs.values()]) # call values in executable.outputs are FlowOutputDefinitions diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_flow_invoker.py b/src/promptflow/tests/sdk_cli_test/unittests/test_flow_invoker.py index 9995029de0d..c87d91528a7 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_flow_invoker.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_flow_invoker.py @@ -5,16 +5,16 @@ import pytest -from promptflow.core import Flow from promptflow.core._serving._errors import UnexpectedConnectionProviderReturn, UnsupportedConnectionProvider from promptflow.core._serving.flow_invoker import FlowInvoker +from promptflow.core._utils import init_executable from promptflow.exceptions import UserErrorException PROMOTFLOW_ROOT = Path(__file__).parent.parent.parent.parent FLOWS_DIR = Path(PROMOTFLOW_ROOT / "tests/test_configs/flows") EXAMPLE_FLOW_DIR = FLOWS_DIR / "web_classification" EXAMPLE_FLOW_FILE = EXAMPLE_FLOW_DIR / "flow.dag.yaml" -EXAMPLE_FLOW = Flow.load(EXAMPLE_FLOW_DIR)._init_executable() +EXAMPLE_FLOW = init_executable(flow_path=EXAMPLE_FLOW_FILE) @pytest.mark.sdk_test From ac114dd658dd810718beb17a02e4d583ec2758b1 Mon Sep 17 00:00:00 2001 From: Ying Chen Date: Wed, 20 Mar 2024 10:26:07 +0800 Subject: [PATCH 090/204] Start pfs in detach mode by vbs in MSI (#2367) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. ![image](https://github.com/microsoft/promptflow/assets/26239730/6c8bc7b8-a087-404f-8bec-a841148546a0) # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Ying Chen <2601502859@qq.com> --- scripts/installer/windows/scripts/pfs.bat | 10 ++++- .../windows/scripts/promptflow.spec.jinja2 | 2 +- .../windows/scripts/promptflow_service.vbs | 2 +- .../installer/windows/scripts/start_pfs.vbs | 4 ++ .../promptflow/_sdk/_service/entry.py | 45 ++++++++++++++----- 5 files changed, 49 insertions(+), 14 deletions(-) create mode 100644 scripts/installer/windows/scripts/start_pfs.vbs diff --git a/scripts/installer/windows/scripts/pfs.bat b/scripts/installer/windows/scripts/pfs.bat index 9f402a1640c..2c1388e90ed 100644 --- a/scripts/installer/windows/scripts/pfs.bat +++ b/scripts/installer/windows/scripts/pfs.bat @@ -2,4 +2,12 @@ setlocal set MAIN_EXE=%~dp0.\pfcli.exe -"%MAIN_EXE%" pfs %* \ No newline at end of file +REM Check if the first argument is 'start' +if "%~1"=="start" ( + cscript //nologo %~dp0.\start_pfs.vbs """%MAIN_EXE%"" pfs %*" +@REM since we won't wait for vbs to finish, we need to wait for the output file to be flushed to disk + timeout /t 5 >nul + type "%~dp0output.txt" +) else ( + "%MAIN_EXE%" pfs %* +) \ No newline at end of file diff --git a/scripts/installer/windows/scripts/promptflow.spec.jinja2 b/scripts/installer/windows/scripts/promptflow.spec.jinja2 index 4c78a22f8b7..3840a1056aa 100644 --- a/scripts/installer/windows/scripts/promptflow.spec.jinja2 +++ b/scripts/installer/windows/scripts/promptflow.spec.jinja2 @@ -4,7 +4,7 @@ from PyInstaller.utils.hooks import collect_data_files, collect_all, copy_metada datas = [('../resources/CLI_LICENSE.rtf', '.'), ('../../../../src/promptflow/NOTICE.txt', '.'), ('../../../../src/promptflow/promptflow/_sdk/data/executable/', './promptflow/_sdk/data/executable/'), ('../../../../src/promptflow-tools/promptflow/tools/', './promptflow/tools/'), -('./pf.bat', '.'), ('./pfs.bat', '.'), ('./pfazure.bat', '.'), ('./pfsvc.bat', '.')] +('./pf.bat', '.'), ('./pfs.bat', '.'), ('./pfazure.bat', '.'), ('./pfsvc.bat', '.'), ('./start_pfs.vbs', '.')] all_packages = {{all_packages}} diff --git a/scripts/installer/windows/scripts/promptflow_service.vbs b/scripts/installer/windows/scripts/promptflow_service.vbs index 4fea58c1743..d06faab67a4 100644 --- a/scripts/installer/windows/scripts/promptflow_service.vbs +++ b/scripts/installer/windows/scripts/promptflow_service.vbs @@ -1,3 +1,3 @@ DIM objshell set objshell = wscript.createobject("wscript.shell") -iReturn = objshell.run("pfs.bat start --force", 0, true) \ No newline at end of file +iReturn = objshell.run("pfcli.exe pfs start --force", 0, true) \ No newline at end of file diff --git a/scripts/installer/windows/scripts/start_pfs.vbs b/scripts/installer/windows/scripts/start_pfs.vbs new file mode 100644 index 00000000000..8b75eb91d1f --- /dev/null +++ b/scripts/installer/windows/scripts/start_pfs.vbs @@ -0,0 +1,4 @@ +DIM objshell +set objshell = wscript.createobject("wscript.shell") +cmd = WScript.Arguments(0) +iReturn = objshell.run(cmd, 0, false) \ No newline at end of file diff --git a/src/promptflow/promptflow/_sdk/_service/entry.py b/src/promptflow/promptflow/_sdk/_service/entry.py index f68cd451385..4e734d7df32 100644 --- a/src/promptflow/promptflow/_sdk/_service/entry.py +++ b/src/promptflow/promptflow/_sdk/_service/entry.py @@ -103,12 +103,23 @@ def start_service(args): def validate_port(port, force_start): if is_port_in_use(port): if force_start: - logger.warning(f"Force restart the service on the port {port}.") + message = f"Force restart the service on the port {port}." + print(message) + logger.warning(message) kill_exist_service(port) else: logger.warning(f"Service port {port} is used.") raise UserErrorException(f"Service port {port} is used.") + if is_run_from_built_binary(): + # For msi installer, use vbs to start pfs in a hidden window. But it doesn't support redirect output in the + # hidden window to terminal. So we redirect output to a file. And then print the file content to terminal in + # pfs.bat. + old_stdout = sys.stdout + old_stderr = sys.stderr + parent_dir = os.path.dirname(sys.executable) + sys.stdout = open(os.path.join(parent_dir, "output.txt"), "w") + sys.stderr = sys.stdout if port: dump_port_to_config(port) validate_port(port, args.force) @@ -119,15 +130,22 @@ def validate_port(port, force_start): if is_run_from_built_binary(): # For msi installer, use sdk api to start pfs since it's not supported to invoke waitress by cli directly # after packaged by Pyinstaller. - global app - if app is None: - app, _ = create_app() - if os.environ.get(PF_SERVICE_DEBUG) == "true": - app.logger.setLevel(logging.DEBUG) - else: - app.logger.setLevel(logging.INFO) - app.logger.info(f"Start Prompt Flow Service on {port}, version: {get_promptflow_sdk_version()}") - waitress.serve(app, host="127.0.0.1", port=port, threads=PF_SERVICE_WORKER_NUM) + try: + global app + if app is None: + app, _ = create_app() + if os.environ.get(PF_SERVICE_DEBUG) == "true": + app.logger.setLevel(logging.DEBUG) + else: + app.logger.setLevel(logging.INFO) + message = f"Start Prompt Flow Service on {port}, version: {get_promptflow_sdk_version()}" + app.logger.info(message) + print(message) + sys.stdout.flush() + waitress.serve(app, host="127.0.0.1", port=port, threads=PF_SERVICE_WORKER_NUM) + finally: + sys.stdout = old_stdout + sys.stderr = old_stderr else: # Start a pfs process using detach mode. It will start a new process and create a new app. So we use environment # variable to pass the debug mode, since it will inherit parent process environment variable. @@ -170,7 +188,12 @@ def validate_port(port, force_start): win32api.CloseHandle(thread_handle) else: # Set host to localhost, only allow request from localhost. - cmd = ["waitress-serve", f"--listen=127.0.0.1:{port}", "promptflow._sdk._service.entry:get_app"] + cmd = [ + "waitress-serve", + f"--listen=127.0.0.1:{port}", + f"--threads={PF_SERVICE_WORKER_NUM}", + "promptflow._sdk._service.entry:get_app", + ] subprocess.Popen(cmd, stdout=subprocess.DEVNULL, start_new_session=True) is_healthy = check_pfs_service_status(port) if is_healthy: From a8fe1968c0b9f6c01e6607d0cf454b99996b40bf Mon Sep 17 00:00:00 2001 From: Lina Tang Date: Wed, 20 Mar 2024 15:45:04 +0800 Subject: [PATCH 091/204] [Tracing] Remove trace type 'Tool' (#2386) # Description This pull request primarily focuses on modifying the trace type of tool functions in the `promptflow` package. The `TraceType.TOOL` enumeration value has been removed and replaced with `TraceType.FUNCTION` in several places. This change affects how tool functions are traced and validated in tests. Changes related to trace type: * [`src/promptflow-tracing/promptflow/tracing/contracts/trace.py`](diffhunk://#diff-064c539f55a396428c9d28af1cbcf4fe39beb69daac7d9891cd6f713897fa704L14): The `TraceType.TOOL` enumeration value has been removed from the `TraceType` enumeration class. * [`src/promptflow/promptflow/_core/tool.py`](diffhunk://#diff-4d476f676cf919f26dea6de37d8ec9136420d68cd8f4b0d376471496251a3718L79-R79): The trace type of tool functions has been changed from `TraceType.TOOL` to `TraceType.FUNCTION` in the `tool_decorator` function. Changes related to tests: * [`src/promptflow/tests/executor/e2etests/test_traces.py`](diffhunk://#diff-a36689a949893c227689d9dadb4c1e7008a0551206871e371658f4cc70f16f07L261-R261): The expected trace type of the "greetings" tool has been changed from `TraceType.TOOL` to `TraceType.FUNCTION` in the `test_flow_with_trace` test. The `validate_span_list` test no longer expects a `TraceType.TOOL` span type for spans with the root span as the parent. [[1]](diffhunk://#diff-a36689a949893c227689d9dadb4c1e7008a0551206871e371658f4cc70f16f07L261-R261) [[2]](diffhunk://#diff-a36689a949893c227689d9dadb4c1e7008a0551206871e371658f4cc70f16f07L547-L548) * [`src/promptflow/tests/executor/unittests/_core/test_tool.py`](diffhunk://#diff-44ade3f0d4d9d4493089193e332779df200ba3e0bc77e063218ac6558c64c49bL70-R70): The expected trace type of the tested function has been changed from `TraceType.TOOL` to `TraceType.FUNCTION` in the `test_traces_are_created_correctly` test. # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [x] Title of the pull request is clear and informative. - [x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [x] Pull request includes test coverage for the included changes. --------- Co-authored-by: Lina Tang --- src/promptflow-tracing/promptflow/tracing/contracts/trace.py | 1 - src/promptflow/promptflow/_core/tool.py | 2 +- src/promptflow/tests/executor/e2etests/test_traces.py | 4 +--- src/promptflow/tests/executor/unittests/_core/test_tool.py | 2 +- 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/promptflow-tracing/promptflow/tracing/contracts/trace.py b/src/promptflow-tracing/promptflow/tracing/contracts/trace.py index 249090389c1..fd697e1da43 100644 --- a/src/promptflow-tracing/promptflow/tracing/contracts/trace.py +++ b/src/promptflow-tracing/promptflow/tracing/contracts/trace.py @@ -11,7 +11,6 @@ class TraceType(str, Enum): """An enumeration class to represent different types of traces.""" LLM = "LLM" - TOOL = "Tool" FUNCTION = "Function" LANGCHAIN = "LangChain" FLOW = "Flow" diff --git a/src/promptflow/promptflow/_core/tool.py b/src/promptflow/promptflow/_core/tool.py index 6ed35dd3b8f..ae326524b5a 100644 --- a/src/promptflow/promptflow/_core/tool.py +++ b/src/promptflow/promptflow/_core/tool.py @@ -76,7 +76,7 @@ def tool_decorator(func: Callable) -> Callable: raise UserErrorException(f"Tool type {type} is not supported yet.") # Calls to tool functions should be traced automatically. - new_f = _traced(func, trace_type=TraceType.TOOL) + new_f = _traced(func, trace_type=TraceType.FUNCTION) new_f.__tool = None # This will be set when generating the tool definition. new_f.__name = name diff --git a/src/promptflow/tests/executor/e2etests/test_traces.py b/src/promptflow/tests/executor/e2etests/test_traces.py index dbc5e5aee45..d2e00e1f108 100644 --- a/src/promptflow/tests/executor/e2etests/test_traces.py +++ b/src/promptflow/tests/executor/e2etests/test_traces.py @@ -258,7 +258,7 @@ def test_flow_with_trace(self, flow_file, dev_connections): # Assert the "greetings" tool greetings_trace = flow_trace["children"][0] assert greetings_trace["name"] == "greetings" - assert greetings_trace["type"] == "Tool" + assert greetings_trace["type"] == "Function" assert greetings_trace["inputs"] == inputs assert greetings_trace["output"] == {"greeting": "Hello, User 1!"} assert greetings_trace["error"] is None @@ -544,8 +544,6 @@ def validate_span_list(self, span_list, line_run_id, expected_span_length): assert span.attributes["framework"] == "promptflow" if span.parent is None: expected_span_type = TraceType.FLOW - elif span.parent.span_id == root_span.context.span_id: - expected_span_type = TraceType.TOOL elif span.attributes.get("function", "") in LLM_FUNCTION_NAMES: expected_span_type = TraceType.LLM elif span.attributes.get("function", "") in EMBEDDING_FUNCTION_NAMES: diff --git a/src/promptflow/tests/executor/unittests/_core/test_tool.py b/src/promptflow/tests/executor/unittests/_core/test_tool.py index d0f06a0f0ae..a64bb7bf26d 100644 --- a/src/promptflow/tests/executor/unittests/_core/test_tool.py +++ b/src/promptflow/tests/executor/unittests/_core/test_tool.py @@ -67,7 +67,7 @@ async def test_traces_are_created_correctly(self, func): assert len(traces) == 1 trace = traces[0] assert trace["name"] == func.__qualname__ - assert trace["type"] == TraceType.TOOL + assert trace["type"] == TraceType.FUNCTION assert trace["inputs"] == {"a": 1} assert trace["output"] == 1 assert trace["error"] is None From ff35c53a20b3f5447bfcf7362c5f4fbadd4e04d5 Mon Sep 17 00:00:00 2001 From: Han Wang Date: Wed, 20 Mar 2024 17:12:07 +0800 Subject: [PATCH 092/204] [SDK] Support batch run eager flow without YAML in SDK (#2334) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. Sample usage: ```python pf.run(flow="path.to.flow:func", data="", code="../src/") ``` This pull request introduces several changes to the `promptflow` package, primarily focused on improving the handling of eager flow entries and the related YAML generation. The changes enhance the flexibility of the system by allowing the use of either a directory path or a file path for flow entries, and also add support for running flows without a YAML file. The changes also include the addition of new utility functions and classes, as well as updates to the test cases to cover the new functionality. Here are the most important changes: New classes and utility functions: * [`src/promptflow/promptflow/_constants.py`](diffhunk://#diff-0d3cf5f31883ff073bf1e11cb2e17db5cc8fe6e5e38cbb4af7b99f37ac31d41aR48-R54): Added the `FlowEntryRegex` class to define the regex pattern for flow entry functions. * [`src/promptflow/promptflow/_sdk/_utils.py`](diffhunk://#diff-47208ac35b30920275fcd5e55d662647ef360129359bdc77fddd2a2157b6f47eR1247-R1289): Added the `is_eager_flow_entry` function to check if an entry is an eager flow's entry, and the `generate_yaml_entry` function to generate a YAML entry to run. Also added the `create_temp_eager_flow_yaml` function to create a temporary flow.dag.yaml in the code folder. Changes to existing methods: * [`src/promptflow/promptflow/_sdk/_pf_client.py`](diffhunk://#diff-c100045cd304dbaa66dd61b7087f78b813ce01e8566d0b823b293bb35755eccfL16-R16): Updated the `run` method to accept a new `code` parameter, which is the path to the code directory to run. Also added checks to ensure the provided paths exist, and updated the flow loading logic to use the new `generate_yaml_entry` function. [[1]](diffhunk://#diff-c100045cd304dbaa66dd61b7087f78b813ce01e8566d0b823b293bb35755eccfL16-R16) [[2]](diffhunk://#diff-c100045cd304dbaa66dd61b7087f78b813ce01e8566d0b823b293bb35755eccfR75) [[3]](diffhunk://#diff-c100045cd304dbaa66dd61b7087f78b813ce01e8566d0b823b293bb35755eccfR126-R127) [[4]](diffhunk://#diff-c100045cd304dbaa66dd61b7087f78b813ce01e8566d0b823b293bb35755eccfL152-R165) * [`src/promptflow/promptflow/_sdk/entities/_run.py`](diffhunk://#diff-14f4d7a1d9b077c7b749230a92628782f990e1fc7cb741b20ff894f868327020L645-R645): Updated the `_validate_for_run_create_operation` method to accept either a directory path or a file path for the flow. * [`src/promptflow/promptflow/_sdk/schemas/_flow.py`](diffhunk://#diff-84af29d72d79c61d55daa91de77a03235646967bcaa7c3299f33adcead97bc53L63-L76): Removed the `PythonEagerFlowEntry` class and updated the `validate_entry` method to use the new `FlowEntryRegex` class. [[1]](diffhunk://#diff-84af29d72d79c61d55daa91de77a03235646967bcaa7c3299f33adcead97bc53L63-L76) [[2]](diffhunk://#diff-84af29d72d79c61d55daa91de77a03235646967bcaa7c3299f33adcead97bc53L89-R77) * [`src/promptflow/promptflow/azure/_pf_client.py`](diffhunk://#diff-15b330dbb21116427aed3fa25ad8fd89f6b536d2818378bc56a9b36d7e5d9f3eL14-R15): Similar to the changes in `src/promptflow/promptflow/_sdk/_pf_client.py`, updated the `run` method to accept a new `code` parameter and added checks to ensure the provided paths exist. Also updated the flow loading logic to use the new `generate_yaml_entry` function. (F94c94b6L24R24, [[1]](diffhunk://#diff-15b330dbb21116427aed3fa25ad8fd89f6b536d2818378bc56a9b36d7e5d9f3eL14-R15) [[2]](diffhunk://#diff-15b330dbb21116427aed3fa25ad8fd89f6b536d2818378bc56a9b36d7e5d9f3eR200) [[3]](diffhunk://#diff-15b330dbb21116427aed3fa25ad8fd89f6b536d2818378bc56a9b36d7e5d9f3eR256-R257) [[4]](diffhunk://#diff-15b330dbb21116427aed3fa25ad8fd89f6b536d2818378bc56a9b36d7e5d9f3eL279-R287) Test case updates: * [`src/promptflow/tests/sdk_cli_azure_test/e2etests/test_run_operations.py`](diffhunk://#diff-b63fdccdd1a3a293abe7799c0a231a7226614f726b6de1298f7e0233af26f128L22-R22): Added a new test case `test_eager_flow_run_without_yaml` to test running flows without a YAML file. [[1]](diffhunk://#diff-b63fdccdd1a3a293abe7799c0a231a7226614f726b6de1298f7e0233af26f128L22-R22) [[2]](diffhunk://#diff-b63fdccdd1a3a293abe7799c0a231a7226614f726b6de1298f7e0233af26f128R1229-R1255) * [`src/promptflow/tests/sdk_cli_test/e2etests/test_flow_run.py`](diffhunk://#diff-94a59a05643476869fa3c6bc45466f1582944a935488075e2e63b6a6a196958fR37-R38): Added new test cases `test_eager_flow_run_without_yaml`, `test_eager_flow_yaml_override`, and `test_eager_flow_run_in_working_dir` to test the new functionality. [[1]](diffhunk://#diff-94a59a05643476869fa3c6bc45466f1582944a935488075e2e63b6a6a196958fR37-R38) [[2]](diffhunk://#diff-94a59a05643476869fa3c6bc45466f1582944a935488075e2e63b6a6a196958fL1252-R1310) # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Zhengfei Wang --- src/promptflow/promptflow/_constants.py | 7 + src/promptflow/promptflow/_sdk/_pf_client.py | 55 +- src/promptflow/promptflow/_sdk/_utils.py | 45 +- .../promptflow/_sdk/entities/_run.py | 4 +- .../promptflow/_sdk/schemas/_flow.py | 20 +- src/promptflow/promptflow/azure/_pf_client.py | 37 +- .../e2etests/test_run_operations.py | 25 +- .../sdk_cli_test/e2etests/test_flow_run.py | 60 +- .../tests/sdk_cli_test/unittests/test_run.py | 5 +- .../eager_flows/multiple_entries/entry1.py | 2 + .../eager_flows/multiple_entries/entry2.py | 2 + .../multiple_entries/flow.dag.yaml | 1 + ...wRun_test_eager_flow_run_without_yaml.yaml | 1577 +++++++++++++++++ 13 files changed, 1775 insertions(+), 65 deletions(-) create mode 100644 src/promptflow/tests/test_configs/eager_flows/multiple_entries/flow.dag.yaml create mode 100644 src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_eager_flow_run_without_yaml.yaml diff --git a/src/promptflow/promptflow/_constants.py b/src/promptflow/promptflow/_constants.py index 3e42a2a0e16..03286e56a1e 100644 --- a/src/promptflow/promptflow/_constants.py +++ b/src/promptflow/promptflow/_constants.py @@ -57,6 +57,13 @@ class FlowLanguage: CSharp = "csharp" +class FlowEntryRegex: + """The regex pattern for flow entry function.""" + + Python = r"^[a-zA-Z0-9_.]+:[a-zA-Z0-9_]+$" + CSharp = r"\((.+)\)[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+" + + class FlowType: """The enum of flow type.""" diff --git a/src/promptflow/promptflow/_sdk/_pf_client.py b/src/promptflow/promptflow/_sdk/_pf_client.py index 8e0f5658c2a..ca0bbd677c1 100644 --- a/src/promptflow/promptflow/_sdk/_pf_client.py +++ b/src/promptflow/promptflow/_sdk/_pf_client.py @@ -14,6 +14,7 @@ from ._constants import MAX_SHOW_DETAILS_RESULTS, ConnectionProvider from ._load_functions import load_flow from ._user_agent import USER_AGENT +from ._utils import generate_yaml_entry, is_python_flex_flow_entry from .entities import Run from .entities._flow import FlexFlow from .operations import RunOperations @@ -72,6 +73,7 @@ def run( display_name: str = None, tags: Dict[str, str] = None, resume_from: Union[str, Run] = None, + code: Union[str, PathLike] = None, **kwargs, ) -> Run: """Run flow against provided data or run. @@ -122,6 +124,8 @@ def run( :type tags: Dict[str, str] :param resume_from: Create run resume from an existing run. :type resume_from: str + :param code: Path to the code directory to run. + :type code: Union[str, PathLike] :return: Flow run info. :rtype: ~promptflow.entities.Run """ @@ -149,33 +153,38 @@ def run( ) if not flow: raise ValueError("'flow' is required to create a run.") - if not os.path.exists(flow): - raise FileNotFoundError(f"flow path {flow} does not exist") + if not os.path.exists(flow) and not is_python_flex_flow_entry(entry=flow): + # check if it's eager flow's entry + raise UserErrorException(f"Flow path {flow} does not exist and it's not a valid entry point.") if data and not os.path.exists(data): raise FileNotFoundError(f"data path {data} does not exist") if not run and not data: raise ValueError("at least one of data or run must be provided") - # load flow object for validation and early failure - flow_obj = load_flow(source=flow) - # validate param conflicts - if isinstance(flow_obj, FlexFlow): - if variant or connections: - logger.warning("variant and connections are not supported for eager flow, will be ignored") - variant, connections = None, None - run = Run( - name=name, - display_name=display_name, - tags=tags, - data=data, - column_mapping=column_mapping, - run=run, - variant=variant, - flow=Path(flow), - connections=connections, - environment_variables=environment_variables, - config=Configuration(overrides=self._config), - ) - return self.runs.create_or_update(run=run, **kwargs) + if code and not os.path.exists(code): + raise FileNotFoundError(f"code path {code} does not exist") + code = Path(code) if code else Path(os.getcwd()) + with generate_yaml_entry(entry=flow, code=code) as flow: + # load flow object for validation and early failure + flow_obj = load_flow(source=flow) + # validate param conflicts + if isinstance(flow_obj, FlexFlow): + if variant or connections: + logger.warning("variant and connections are not supported for eager flow, will be ignored") + variant, connections = None, None + run = Run( + name=name, + display_name=display_name, + tags=tags, + data=data, + column_mapping=column_mapping, + run=run, + variant=variant, + flow=Path(flow), + connections=connections, + environment_variables=environment_variables, + config=Configuration(overrides=self._config), + ) + return self.runs.create_or_update(run=run, **kwargs) def stream(self, run: Union[str, Run], raise_on_error: bool = True) -> Run: """Stream run logs to the console. diff --git a/src/promptflow/promptflow/_sdk/_utils.py b/src/promptflow/promptflow/_sdk/_utils.py index 36c022f5919..5794d88016d 100644 --- a/src/promptflow/promptflow/_sdk/_utils.py +++ b/src/promptflow/promptflow/_sdk/_utils.py @@ -31,7 +31,7 @@ from marshmallow import ValidationError import promptflow -from promptflow._constants import ENABLE_MULTI_CONTAINER_KEY, EXTENSION_UA, PF_NO_INTERACTIVE_LOGIN +from promptflow._constants import ENABLE_MULTI_CONTAINER_KEY, EXTENSION_UA, PF_NO_INTERACTIVE_LOGIN, FlowEntryRegex from promptflow._sdk._constants import ( AZURE_WORKSPACE_REGEX_FORMAT, DAG_FILE_NAME, @@ -1022,4 +1022,47 @@ def overwrite_null_std_logger(): sys.stderr = sys.stdout +def is_python_flex_flow_entry(entry: str): + """Returns True if entry is flex flow's entry (in python).""" + return isinstance(entry, str) and re.match(FlowEntryRegex.Python, entry) + + +@contextmanager +def generate_yaml_entry(entry: Union[str, PathLike], code: Path): + """Generate yaml entry to run.""" + if is_python_flex_flow_entry(entry=entry): + with create_temp_eager_flow_yaml(entry, code) as flow_yaml_path: + yield flow_yaml_path + else: + yield entry + + +@contextmanager +def create_temp_eager_flow_yaml(entry: Union[str, PathLike], code: Path): + """Create a temporary flow.dag.yaml in code folder""" + # directly return the entry if it's a file + + flow_yaml_path = code / DAG_FILE_NAME + existing_content = None + try: + if flow_yaml_path.exists(): + logger.warning(f"Found existing {flow_yaml_path.as_posix()}, will not respect it in runtime.") + with open(flow_yaml_path, "r", encoding=DEFAULT_ENCODING) as f: + existing_content = f.read() + with open(flow_yaml_path, "w", encoding=DEFAULT_ENCODING) as f: + dump_yaml({"entry": entry}, f) + yield flow_yaml_path + finally: + # delete the file or recover the content + if flow_yaml_path.exists(): + if existing_content: + with open(flow_yaml_path, "w", encoding=DEFAULT_ENCODING) as f: + f.write(existing_content) + else: + try: + flow_yaml_path.unlink() + except Exception as e: + logger.warning(f"Failed to delete generated: {flow_yaml_path.as_posix()}, error: {e}") + + generate_flow_meta = _generate_flow_meta diff --git a/src/promptflow/promptflow/_sdk/entities/_run.py b/src/promptflow/promptflow/_sdk/entities/_run.py index c6285a92d38..1ea50cefe7b 100644 --- a/src/promptflow/promptflow/_sdk/entities/_run.py +++ b/src/promptflow/promptflow/_sdk/entities/_run.py @@ -69,7 +69,7 @@ class Run(YAMLTranslatableMixin): """Flow run entity. - :param flow: Path of the flow directory. + :param flow: Path of local flow entry or remote flow. :type flow: Path :param name: Name of the run. :type name: str @@ -643,7 +643,7 @@ def _validate_and_return_run_name(run: Union[str, "Run"]) -> str: def _validate_for_run_create_operation(self): """Validate run object for create operation.""" # check flow value - if Path(self.flow).is_dir(): + if Path(self.flow).is_dir() or Path(self.flow).is_file(): # local flow pass elif isinstance(self.flow, str) and self.flow.startswith(REMOTE_URI_PREFIX): diff --git a/src/promptflow/promptflow/_sdk/schemas/_flow.py b/src/promptflow/promptflow/_sdk/schemas/_flow.py index 4bafba06c98..06be3cecd9f 100644 --- a/src/promptflow/promptflow/_sdk/schemas/_flow.py +++ b/src/promptflow/promptflow/_sdk/schemas/_flow.py @@ -5,7 +5,7 @@ from marshmallow import ValidationError, fields, validate, validates_schema -from promptflow._constants import LANGUAGE_KEY, FlowLanguage +from promptflow._constants import LANGUAGE_KEY, FlowEntryRegex, FlowLanguage from promptflow._sdk._constants import FlowType from promptflow._sdk.schemas._base import PatchedSchemaMeta, YamlFileSchema from promptflow._sdk.schemas._fields import NestedField @@ -60,20 +60,6 @@ class FlowSchema(BaseFlowSchema): node_variants = fields.Dict(keys=fields.Str(), values=fields.Dict()) -class PythonEagerFlowEntry(fields.Str): - """Entry point for eager flow. For example: pkg.module:func""" - - default_error_messages = { - "invalid_entry": "Provided entry {entry} has incorrect format. " - "Python eager flow only support pkg.module:func format.", - } - - def _validate(self, value): - super()._validate(value) - if not re.match(r"^[a-zA-Z0-9_.]+:[a-zA-Z0-9_]+$", value): - raise self.make_error("invalid_entry", entry=value) - - class EagerFlowSchema(BaseFlowSchema): """Schema for eager flow.""" @@ -86,9 +72,9 @@ def validate_entry(self, data, **kwargs): language = data.get(LANGUAGE_KEY, FlowLanguage.Python) entry_regex = None if language == FlowLanguage.CSharp: - entry_regex = r"\((.+)\)[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+" + entry_regex = FlowEntryRegex.CSharp elif language == FlowLanguage.Python: - entry_regex = r"^[a-zA-Z0-9_.]+:[a-zA-Z0-9_]+$" + entry_regex = FlowEntryRegex.Python if entry_regex is not None and not re.match(entry_regex, data["entry"]): raise ValidationError(field_name="entry", message=f"Entry function {data['entry']} is not valid.") diff --git a/src/promptflow/promptflow/azure/_pf_client.py b/src/promptflow/promptflow/azure/_pf_client.py index 7487b39e6ce..d1d42ed3d4f 100644 --- a/src/promptflow/promptflow/azure/_pf_client.py +++ b/src/promptflow/promptflow/azure/_pf_client.py @@ -3,6 +3,7 @@ # --------------------------------------------------------- import os from os import PathLike +from pathlib import Path from typing import Dict, List, Optional, Union from azure.ai.ml import MLClient @@ -11,6 +12,7 @@ from promptflow._sdk._constants import MAX_SHOW_DETAILS_RESULTS from promptflow._sdk._errors import RunOperationParameterError from promptflow._sdk._user_agent import USER_AGENT +from promptflow._sdk._utils import generate_yaml_entry from promptflow._sdk.entities import Run from promptflow._utils.user_agent_utils import ClientUserAgentUtil, setup_user_agent_to_operation_context from promptflow.azure._restclient.service_caller_factory import _FlowServiceCallerFactory @@ -196,6 +198,7 @@ def run( display_name: str = None, tags: Dict[str, str] = None, resume_from: Union[str, Run] = None, + code: Union[str, PathLike] = None, **kwargs, ) -> Run: """Run flow against provided data or run. @@ -251,6 +254,8 @@ def run( :type tags: Dict[str, str] :param resume_from: Create run resume from an existing run. :type resume_from: str + :param code: Path to the code directory to run. + :type code: Union[str, PathLike] :return: flow run info. :rtype: ~promptflow.entities.Run """ @@ -276,20 +281,24 @@ def run( return self.runs._create_by_resume_from( resume_from=resume_from, name=name, display_name=display_name, tags=tags, **kwargs ) - # TODO(2887134): support cloud eager Run CRUD - run = Run( - name=name, - display_name=display_name, - tags=tags, - data=data, - column_mapping=column_mapping, - run=run, - variant=variant, - flow=flow, - connections=connections, - environment_variables=environment_variables, - ) - return self.runs.create_or_update(run=run, **kwargs) + + if code and not os.path.exists(code): + raise FileNotFoundError(f"code path {code} does not exist") + code = Path(code) if code else Path(os.getcwd()) + with generate_yaml_entry(entry=flow, code=code) as flow: + run = Run( + name=name, + display_name=display_name, + tags=tags, + data=data, + column_mapping=column_mapping, + run=run, + variant=variant, + flow=flow, + connections=connections, + environment_variables=environment_variables, + ) + return self.runs.create_or_update(run=run, **kwargs) def stream(self, run: Union[str, Run], raise_on_error: bool = True) -> Run: """Stream run logs to the console. diff --git a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_run_operations.py b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_run_operations.py index 6f648e71fcd..5aef0d89e24 100644 --- a/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_run_operations.py +++ b/src/promptflow/tests/sdk_cli_azure_test/e2etests/test_run_operations.py @@ -20,7 +20,7 @@ from azure.ai.ml.entities import IdentityConfiguration from pytest_mock import MockFixture -from promptflow._sdk._constants import DownloadedRun, RunStatus +from promptflow._sdk._constants import DAG_FILE_NAME, DownloadedRun, RunStatus from promptflow._sdk._errors import InvalidRunError, InvalidRunStatusError, RunNotFoundError, RunOperationParameterError from promptflow._sdk._load_functions import load_run from promptflow._sdk.entities import Run @@ -1229,6 +1229,29 @@ def submit(*args, **kwargs): ) pf.runs.create_or_update(run=run) + @pytest.mark.usefixtures("mock_isinstance_for_mock_datastore") + def test_eager_flow_run_without_yaml(self, pf: PFClient, randstr: Callable[[str], str]): + run = pf.run( + flow="entry:my_flow", + code=f"{EAGER_FLOWS_DIR}/simple_without_yaml", + data=f"{DATAS_DIR}/simple_eager_flow_data.jsonl", + name=randstr("name"), + ) + run = pf.runs.stream(run) + assert run.status == RunStatus.COMPLETED + + # test YAML is generated + expected_files = [ + f"{DownloadedRun.SNAPSHOT_FOLDER}/{DAG_FILE_NAME}", + ] + with TemporaryDirectory() as tmp_dir: + pf.runs.download(run=run.name, output=tmp_dir) + for file in expected_files: + assert Path(tmp_dir, run.name, file).exists() + + # the YAML file will not exist in user's folder + assert not Path(f"{EAGER_FLOWS_DIR}/simple_without_yaml/flow.dag.yaml").exists() + def test_wrong_workspace_type(self, pf: PFClient, mocker: MockFixture): # test wrong workspace type "hub" mocker.patch.object(pf.runs._workspace, "_kind", "hub") diff --git a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_run.py b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_run.py index 0482fb3b221..9499c1d48ad 100644 --- a/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_run.py +++ b/src/promptflow/tests/sdk_cli_test/e2etests/test_flow_run.py @@ -34,6 +34,8 @@ from promptflow._sdk._utils import _get_additional_includes from promptflow._sdk.entities import Run from promptflow._sdk.operations._local_storage_operations import LocalStorageOperations +from promptflow._utils.context_utils import _change_working_dir +from promptflow._utils.yaml_utils import load_yaml from promptflow.connections import AzureOpenAIConnection from promptflow.exceptions import UserErrorException @@ -224,7 +226,7 @@ def test_basic_flow_with_variant(self, azure_open_ai_connection: AzureOpenAIConn def test_run_bulk_error(self, pf): # path not exist - with pytest.raises(FileNotFoundError) as e: + with pytest.raises(UserErrorException) as e: pf.run( flow=f"{MODEL_ROOT}/not_exist", data=f"{DATAS_DIR}/webClassification3.jsonl", @@ -1249,15 +1251,63 @@ def test_flow_with_nan_inf_metrics(self, pf: PFClient, monkeypatch) -> None: monkeypatch.delenv("PF_BATCH_METHOD") - @pytest.mark.skip("Won't support this kind of usage.") def test_eager_flow_run_without_yaml(self, pf): - flow_path = Path(f"{EAGER_FLOWS_DIR}/simple_without_yaml/entry.py") run = pf.run( - flow=flow_path, - entry="my_flow", + flow="entry:my_flow", + code=f"{EAGER_FLOWS_DIR}/simple_without_yaml", + data=f"{DATAS_DIR}/simple_eager_flow_data.jsonl", + ) + assert run.status == "Completed" + assert "error" not in run._to_dict() + # will create a YAML in run snapshot + local_storage = LocalStorageOperations(run=run) + assert local_storage._dag_path.exists() + # the YAML file will not exist in user's folder + assert not Path(f"{EAGER_FLOWS_DIR}/simple_without_yaml/flow.dag.yaml").exists() + + def test_eager_flow_yaml_override(self, pf): + run = pf.run( + flow="entry2:my_flow2", + code=f"{EAGER_FLOWS_DIR}/multiple_entries", data=f"{DATAS_DIR}/simple_eager_flow_data.jsonl", ) assert run.status == "Completed" + assert "error" not in run._to_dict() + # will create a YAML in run snapshot + local_storage = LocalStorageOperations(run=run) + assert local_storage._dag_path.exists() + # original YAMl content not changed + original_dict = load_yaml(f"{EAGER_FLOWS_DIR}/multiple_entries/flow.dag.yaml") + assert original_dict["entry"] == "entry1:my_flow1" + + # actual result will be entry2:my_flow2 + details = pf.get_details(run.name) + # convert DataFrame to dict + details_dict = details.to_dict(orient="list") + assert details_dict == {"inputs.line_number": [0], "outputs.output": ["entry2flow2"]} + + def test_eager_flow_run_in_working_dir(self, pf): + working_dir = f"{EAGER_FLOWS_DIR}/multiple_entries" + with _change_working_dir(working_dir): + run = pf.run( + flow="entry2:my_flow1", + data="../../datas/simple_eager_flow_data.jsonl", + ) + assert run.status == "Completed" + assert "error" not in run._to_dict() + + # will create a YAML in run snapshot + local_storage = LocalStorageOperations(run=run) + assert local_storage._dag_path.exists() + # original YAMl content not changed + original_dict = load_yaml(f"{EAGER_FLOWS_DIR}/multiple_entries/flow.dag.yaml") + assert original_dict["entry"] == "entry1:my_flow1" + + # actual result will be entry2:my_flow2 + details = pf.get_details(run.name) + # convert DataFrame to dict + details_dict = details.to_dict(orient="list") + assert details_dict == {"inputs.line_number": [0], "outputs.output": ["entry2flow1"]} def test_eager_flow_run_with_yaml(self, pf): flow_path = Path(f"{EAGER_FLOWS_DIR}/simple_with_yaml") diff --git a/src/promptflow/tests/sdk_cli_test/unittests/test_run.py b/src/promptflow/tests/sdk_cli_test/unittests/test_run.py index 9fe153e1424..80e31f6497a 100644 --- a/src/promptflow/tests/sdk_cli_test/unittests/test_run.py +++ b/src/promptflow/tests/sdk_cli_test/unittests/test_run.py @@ -19,6 +19,7 @@ from promptflow._sdk.entities._flow import Flow from promptflow._sdk.operations._local_storage_operations import LocalStorageOperations from promptflow._utils.yaml_utils import load_yaml +from promptflow.exceptions import UserErrorException PROMOTFLOW_ROOT = Path(__file__) / "../../../.." FLOWS_DIR = Path("./tests/test_configs/flows") @@ -136,10 +137,10 @@ def test_invalid_yaml(self, source, error_msg): def test_run_bulk_invalid_params(self, pf): # Test if function raises FileNotFoundError - with pytest.raises(FileNotFoundError): + with pytest.raises(UserErrorException): pf.run(flow="invalid_path", data="fake_data") - with pytest.raises(FileNotFoundError): + with pytest.raises(UserErrorException): pf.run(flow="invalid_path", data="fake_data", batch_run="fake_run") def test_overwrite_variant(self): diff --git a/src/promptflow/tests/test_configs/eager_flows/multiple_entries/entry1.py b/src/promptflow/tests/test_configs/eager_flows/multiple_entries/entry1.py index 574007efefd..5c5ea2c3986 100644 --- a/src/promptflow/tests/test_configs/eager_flows/multiple_entries/entry1.py +++ b/src/promptflow/tests/test_configs/eager_flows/multiple_entries/entry1.py @@ -5,8 +5,10 @@ def my_flow1(): """Simple flow without yaml.""" print("Hello world!") + return "entry1flow1" def my_flow2(): """Simple flow without yaml.""" print("Hello world!") + return "entry1flow2" diff --git a/src/promptflow/tests/test_configs/eager_flows/multiple_entries/entry2.py b/src/promptflow/tests/test_configs/eager_flows/multiple_entries/entry2.py index 574007efefd..e0020b50969 100644 --- a/src/promptflow/tests/test_configs/eager_flows/multiple_entries/entry2.py +++ b/src/promptflow/tests/test_configs/eager_flows/multiple_entries/entry2.py @@ -5,8 +5,10 @@ def my_flow1(): """Simple flow without yaml.""" print("Hello world!") + return "entry2flow1" def my_flow2(): """Simple flow without yaml.""" print("Hello world!") + return "entry2flow2" diff --git a/src/promptflow/tests/test_configs/eager_flows/multiple_entries/flow.dag.yaml b/src/promptflow/tests/test_configs/eager_flows/multiple_entries/flow.dag.yaml new file mode 100644 index 00000000000..1f08120715d --- /dev/null +++ b/src/promptflow/tests/test_configs/eager_flows/multiple_entries/flow.dag.yaml @@ -0,0 +1 @@ +entry: entry1:my_flow1 diff --git a/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_eager_flow_run_without_yaml.yaml b/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_eager_flow_run_without_yaml.yaml new file mode 100644 index 00000000000..7d81b0e4eef --- /dev/null +++ b/src/promptflow/tests/test_configs/recordings/test_run_operations_TestFlowRun_test_eager_flow_run_without_yaml.yaml @@ -0,0 +1,1577 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000 + response: + body: + string: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000", + "name": "00000", "type": "Microsoft.MachineLearningServices/workspaces", "location": + "eastus", "tags": {}, "etag": null, "kind": "Default", "sku": {"name": "Basic", + "tier": "Basic"}, "properties": {"discoveryUrl": "https://eastus.api.azureml.ms/discovery"}}' + headers: + cache-control: + - no-cache + content-length: + - '3630' + content-type: + - application/json; charset=utf-8 + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-request-time: + - '0.026' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores?count=30&isDefault=true&orderByAsc=false + response: + body: + string: '{"value": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore", + "name": "workspaceblobstore", "type": "Microsoft.MachineLearningServices/workspaces/datastores", + "properties": {"description": null, "tags": null, "properties": null, "isDefault": + true, "credentials": {"credentialsType": "AccountKey"}, "intellectualProperty": + null, "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroup": + "00000", "datastoreType": "AzureBlob", "accountName": "fake_account_name", + "containerName": "fake-container-name", "endpoint": "core.windows.net", "protocol": + "https", "serviceDataAccessAuthIdentity": "WorkspaceSystemAssignedIdentity"}, + "systemData": {"createdAt": "2023-04-08T02:53:06.5886442+00:00", "createdBy": + "779301c0-18b2-4cdc-801b-a0a3368fee0a", "createdByType": "Application", "lastModifiedAt": + "2023-04-08T02:53:07.521127+00:00", "lastModifiedBy": "779301c0-18b2-4cdc-801b-a0a3368fee0a", + "lastModifiedByType": "Application"}}]}' + headers: + cache-control: + - no-cache + content-length: + - '1372' + content-type: + - application/json; charset=utf-8 + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-request-time: + - '0.056' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore + response: + body: + string: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore", + "name": "workspaceblobstore", "type": "Microsoft.MachineLearningServices/workspaces/datastores", + "properties": {"description": null, "tags": null, "properties": null, "isDefault": + true, "credentials": {"credentialsType": "AccountKey"}, "intellectualProperty": + null, "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroup": + "00000", "datastoreType": "AzureBlob", "accountName": "fake_account_name", + "containerName": "fake-container-name", "endpoint": "core.windows.net", "protocol": + "https", "serviceDataAccessAuthIdentity": "WorkspaceSystemAssignedIdentity"}, + "systemData": {"createdAt": "2023-04-08T02:53:06.5886442+00:00", "createdBy": + "779301c0-18b2-4cdc-801b-a0a3368fee0a", "createdByType": "Application", "lastModifiedAt": + "2023-04-08T02:53:07.521127+00:00", "lastModifiedBy": "779301c0-18b2-4cdc-801b-a0a3368fee0a", + "lastModifiedByType": "Application"}}' + headers: + cache-control: + - no-cache + content-length: + - '1227' + content-type: + - application/json; charset=utf-8 + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-request-time: + - '0.085' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore/listSecrets + response: + body: + string: '{"secretsType": "AccountKey", "key": "dGhpcyBpcyBmYWtlIGtleQ=="}' + headers: + cache-control: + - no-cache + content-length: + - '134' + content-type: + - application/json; charset=utf-8 + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-request-time: + - '0.196' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Wed, 13 Mar 2024 09:00:25 GMT + x-ms-version: + - '2023-11-03' + method: HEAD + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/LocalUpload/000000000000000000000000000000000000/simple_eager_flow_data.jsonl + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '25' + content-md5: + - zt1zN1V/HR5p7N0Sh5396w== + content-type: + - application/octet-stream + last-modified: + - Tue, 23 Jan 2024 06:27:00 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Tue, 23 Jan 2024 06:26:59 GMT + x-ms-meta-name: + - 1e376ce4-7c3b-4683-82ad-412f5cd23626 + x-ms-meta-upload_status: + - completed + x-ms-meta-version: + - 7e65351c-7e4b-4a4d-90f8-304eacdc36bc + x-ms-version: + - '2023-11-03' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Wed, 13 Mar 2024 09:00:26 GMT + x-ms-version: + - '2023-11-03' + method: HEAD + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/az-ml-artifacts/000000000000000000000000000000000000/simple_eager_flow_data.jsonl + response: + body: + string: '' + headers: + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + vary: + - Origin + x-ms-error-code: + - BlobNotFound + x-ms-version: + - '2023-11-03' + status: + code: 404 + message: The specified blob does not exist. +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore + response: + body: + string: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore", + "name": "workspaceblobstore", "type": "Microsoft.MachineLearningServices/workspaces/datastores", + "properties": {"description": null, "tags": null, "properties": null, "isDefault": + true, "credentials": {"credentialsType": "AccountKey"}, "intellectualProperty": + null, "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroup": + "00000", "datastoreType": "AzureBlob", "accountName": "fake_account_name", + "containerName": "fake-container-name", "endpoint": "core.windows.net", "protocol": + "https", "serviceDataAccessAuthIdentity": "WorkspaceSystemAssignedIdentity"}, + "systemData": {"createdAt": "2023-04-08T02:53:06.5886442+00:00", "createdBy": + "779301c0-18b2-4cdc-801b-a0a3368fee0a", "createdByType": "Application", "lastModifiedAt": + "2023-04-08T02:53:07.521127+00:00", "lastModifiedBy": "779301c0-18b2-4cdc-801b-a0a3368fee0a", + "lastModifiedByType": "Application"}}' + headers: + cache-control: + - no-cache + content-length: + - '1227' + content-type: + - application/json; charset=utf-8 + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-request-time: + - '0.072' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - promptflow-sdk/0.0.1 azure-ai-ml/1.12.1 azsdk-python-mgmt-machinelearningservices/0.1.0 + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/datastores/workspaceblobstore/listSecrets + response: + body: + string: '{"secretsType": "AccountKey", "key": "dGhpcyBpcyBmYWtlIGtleQ=="}' + headers: + cache-control: + - no-cache + content-length: + - '134' + content-type: + - application/json; charset=utf-8 + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-request-time: + - '0.132' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Wed, 13 Mar 2024 09:00:32 GMT + x-ms-version: + - '2023-11-03' + method: HEAD + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/LocalUpload/000000000000000000000000000000000000/simple_without_yaml/.promptflow/flow.json + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '240' + content-md5: + - xzaVcbtpEfLsECGkzy+RKw== + content-type: + - application/octet-stream + last-modified: + - Wed, 13 Mar 2024 08:22:37 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 Mar 2024 08:22:36 GMT + x-ms-meta-name: + - 493061c0-0f9a-424a-9858-f835dfe58f5e + x-ms-meta-upload_status: + - completed + x-ms-meta-version: + - '1' + x-ms-version: + - '2023-11-03' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Wed, 13 Mar 2024 09:00:33 GMT + x-ms-version: + - '2023-11-03' + method: HEAD + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/az-ml-artifacts/000000000000000000000000000000000000/simple_without_yaml/.promptflow/flow.json + response: + body: + string: '' + headers: + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + vary: + - Origin + x-ms-error-code: + - BlobNotFound + x-ms-version: + - '2023-11-03' + status: + code: 404 + message: The specified blob does not exist. +- request: + body: '{"flowDefinitionDataStoreName": "workspaceblobstore", "flowDefinitionBlobPath": + "LocalUpload/000000000000000000000000000000000000/simple_without_yaml/flow.dag.yaml", + "runId": "name", "runDisplayName": "name", "runExperimentName": "", "sessionId": + "000000000000000000000000000000000000000000000000", "sessionSetupMode": "SystemWait", + "flowLineageId": "0000000000000000000000000000000000000000000000000000000000000000", + "runtimeName": "fake-runtime-name", "batchDataInput": {"dataUri": "azureml://datastores/workspaceblobstore/paths/LocalUpload/000000000000000000000000000000000000/simple_eager_flow_data.jsonl"}, + "inputsMapping": {}, "connections": {}, "environmentVariables": {}, "runDisplayNameGenerationType": + "UserProvidedMacro"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '799' + Content-Type: + - application/json + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: POST + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/submit + response: + body: + string: '"name"' + headers: + connection: + - keep-alive + content-length: + - '38' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-content-type-options: + - nosniff + x-request-time: + - '4.528' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/name/flowRuns/name", + "flowRunId": "name", "flowRunDisplayName": "name", "batchDataInput": {"dataUri": + "azureml://datastores/workspaceblobstore/paths/LocalUpload/e62bc4d5a164939b21d42dd420469da7/simple_eager_flow_data.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": + "promptflow/PromptFlowArtifacts/name/flow_artifacts", "flowDagFileRelativePath": + "flow.dag.yaml", "flowSnapshotId": "d8987d37-16d4-441c-9c6c-b46b333f6e26", + "studioPortalEndpoint": "https://ml.azure.com/runs/name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.197' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/name/flowRuns/name", + "flowRunId": "name", "flowRunDisplayName": "name", "batchDataInput": {"dataUri": + "azureml://datastores/workspaceblobstore/paths/LocalUpload/e62bc4d5a164939b21d42dd420469da7/simple_eager_flow_data.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": + "promptflow/PromptFlowArtifacts/name/flow_artifacts", "flowDagFileRelativePath": + "flow.dag.yaml", "flowSnapshotId": "d8987d37-16d4-441c-9c6c-b46b333f6e26", + "studioPortalEndpoint": "https://ml.azure.com/runs/name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.203' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/name/flowRuns/name", + "flowRunId": "name", "flowRunDisplayName": "name", "batchDataInput": {"dataUri": + "azureml://datastores/workspaceblobstore/paths/LocalUpload/e62bc4d5a164939b21d42dd420469da7/simple_eager_flow_data.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": + "promptflow/PromptFlowArtifacts/name/flow_artifacts", "flowDagFileRelativePath": + "flow.dag.yaml", "flowSnapshotId": "d8987d37-16d4-441c-9c6c-b46b333f6e26", + "studioPortalEndpoint": "https://ml.azure.com/runs/name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.177' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/name/flowRuns/name", + "flowRunId": "name", "flowRunDisplayName": "name", "batchDataInput": {"dataUri": + "azureml://datastores/workspaceblobstore/paths/LocalUpload/e62bc4d5a164939b21d42dd420469da7/simple_eager_flow_data.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": + "promptflow/PromptFlowArtifacts/name/flow_artifacts", "flowDagFileRelativePath": + "flow.dag.yaml", "flowSnapshotId": "d8987d37-16d4-441c-9c6c-b46b333f6e26", + "studioPortalEndpoint": "https://ml.azure.com/runs/name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.139' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/name/flowRuns/name", + "flowRunId": "name", "flowRunDisplayName": "name", "batchDataInput": {"dataUri": + "azureml://datastores/workspaceblobstore/paths/LocalUpload/e62bc4d5a164939b21d42dd420469da7/simple_eager_flow_data.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": + "promptflow/PromptFlowArtifacts/name/flow_artifacts", "flowDagFileRelativePath": + "flow.dag.yaml", "flowSnapshotId": "d8987d37-16d4-441c-9c6c-b46b333f6e26", + "studioPortalEndpoint": "https://ml.azure.com/runs/name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.169' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/name/flowRuns/name", + "flowRunId": "name", "flowRunDisplayName": "name", "batchDataInput": {"dataUri": + "azureml://datastores/workspaceblobstore/paths/LocalUpload/e62bc4d5a164939b21d42dd420469da7/simple_eager_flow_data.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": + "promptflow/PromptFlowArtifacts/name/flow_artifacts", "flowDagFileRelativePath": + "flow.dag.yaml", "flowSnapshotId": "d8987d37-16d4-441c-9c6c-b46b333f6e26", + "studioPortalEndpoint": "https://ml.azure.com/runs/name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.198' + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://eastus.api.azureml.ms/metric/v2.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/runs/name/lastvalues + response: + body: + string: '{"value": [{"dataContainerId": "dcid.name", "name": "__pf__.lines.completed", + "columns": {"__pf__.lines.completed": "Double"}, "properties": {"uxMetricType": + "azureml.v1.scalar", "dataLocation": null}, "namespace": null, "standardSchemaId": + null, "value": [{"metricId": "686a2f3d-73a8-43ad-897c-b16da8b6d79a", "createdUtc": + "2024-03-13T09:00:55.783+00:00", "step": 0, "data": {"__pf__.lines.completed": + 1.0}}]}, {"dataContainerId": "dcid.name", "name": "__pf__.lines.failed", "columns": + {"__pf__.lines.failed": "Double"}, "properties": {"uxMetricType": "azureml.v1.scalar", + "dataLocation": null}, "namespace": null, "standardSchemaId": null, "value": + [{"metricId": "4871b64d-bf79-415a-92ed-2bd7bc1a6a38", "createdUtc": "2024-03-13T09:00:56.24+00:00", + "step": 0, "data": {"__pf__.lines.failed": 0.0}}]}]}' + headers: + connection: + - keep-alive + content-length: + - '1239' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.068' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/name + response: + body: + string: '{"flowRunResourceId": "azureml://locations/eastus/workspaces/00000/flows/name/flowRuns/name", + "flowRunId": "name", "flowRunDisplayName": "name", "batchDataInput": {"dataUri": + "azureml://datastores/workspaceblobstore/paths/LocalUpload/e62bc4d5a164939b21d42dd420469da7/simple_eager_flow_data.jsonl"}, + "flowRunType": "FlowRun", "flowType": "Default", "runtimeName": "automatic", + "inputsMapping": {}, "outputDatastoreName": "workspaceblobstore", "childRunBasePath": + "promptflow/PromptFlowArtifacts/name/flow_artifacts", "flowDagFileRelativePath": + "flow.dag.yaml", "flowSnapshotId": "d8987d37-16d4-441c-9c6c-b46b333f6e26", + "studioPortalEndpoint": "https://ml.azure.com/runs/name?wsid=/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000"}' + headers: + connection: + - keep-alive + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.174' + status: + code: 200 + message: OK +- request: + body: '{"value": "azureml://locations/eastus/workspaces/00000/data/azureml_name_output_data_debug_info/versions/1"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '171' + content-type: + - application/json + host: + - eastus.api.azureml.ms + user-agent: + - python-httpx/0.25.2 + method: POST + uri: https://eastus.api.azureml.ms/data/v1.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/dataversion/getByAssetId + response: + content: '{"dataVersion": {"assetId": "azureml://locations/eastus/workspaces/00000/data/azureml_name_output_data_debug_info/versions/1", + "dataContainerName": "azureml_name_output_data_debug_info", "dataType": "UriFolder", + "dataUri": "azureml://subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/00000/workspaces/00000/datastores/workspaceblobstore/paths/promptflow/PromptFlowArtifacts/name/", + "versionId": "1", "mutableProps": {"dataExpiryTime": null, "description": null, + "tags": null, "isArchived": false, "stage": "Logged", "autoDeleteSetting": null}, + "referencedDataUris": null, "properties": null, "initialAssetId": "azureml://locations/eastus/workspaces/00000/data/azureml_name_output_data_debug_info/versions/1", + "isRegistered": false, "runId": "name", "originAssetId": null}, "entityMetadata": + {"etag": "\"2900e964-0000-0100-0000-65f16b480000\"", "createdTime": "2024-03-13T09:00:56.8502993+00:00", + "modifiedTime": "2024-03-13T09:00:56.8611153+00:00", "createdBy": {"userObjectId": + "00000000-0000-0000-0000-000000000000", "userPuId": null, "userIdp": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", + "userAltSecId": null, "userIss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", + "userTenantId": "00000000-0000-0000-0000-000000000000", "userName": "18a66f5f-dbdf-4c17-9dd7-1634712a9cbe", + "upn": null}, "modifiedBy": null}, "legacyDatasetId": "a1b686fc-ec8c-4517-b6d0-518d6297af1a", + "isV2": true, "legacyDatasetType": null, "legacyDataflowType": null, "legacyDataflow": + null, "legacySavedDatasetId": null, "putAssetLROResponseDto": null}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.047' + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"snapshotOrAssetId": "d8987d37-16d4-441c-9c6c-b46b333f6e26"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '61' + content-type: + - application/json + host: + - eastus.api.azureml.ms + user-agent: + - python-httpx/0.25.2 + method: POST + uri: https://eastus.api.azureml.ms/content/v2.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/snapshots/sas + response: + content: '{"name": "", "hash": null, "type": "Directory", "timestamp": "0001-01-01T00:00:00+00:00", + "sasUrl": null, "absoluteUrl": null, "sizeBytes": 0, "sizeSet": false, "children": + {".promptflow": {"name": ".promptflow", "hash": null, "type": "Directory", "timestamp": + "0001-01-01T00:00:00+00:00", "sasUrl": null, "absoluteUrl": null, "sizeBytes": + 0, "sizeSet": false, "children": {"flow.json": {"name": "flow.json", "hash": + "C7369571BB6911F2EC1021A4CF2F912B", "type": "File", "timestamp": "0001-01-01T00:00:00+00:00", + "sasUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/name/.promptflow/flow.json?sv=2019-07-07&sr=b&sig=5kfDN8nXxacX5s0CruJoqylMNJrzzDV3BX6aNp%2FUWOE%3D&st=2024-03-13T08%3A51%3A32Z&se=2024-03-13T17%3A01%3A32Z&sp=r&rscd=filename%3Dflow.json", + "absoluteUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/name/.promptflow/flow.json", + "sizeBytes": 240, "sizeSet": true, "children": {}}}}, "entry.py": {"name": "entry.py", + "hash": "D7A5F6B2BBE15737838235DA04756F5E", "type": "File", "timestamp": "0001-01-01T00:00:00+00:00", + "sasUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/name/entry.py?sv=2019-07-07&sr=b&sig=8K9%2BvmflfJClGQ9W60BYPgjYDSRuwmPFJgP2psP79bo%3D&st=2024-03-13T08%3A51%3A32Z&se=2024-03-13T17%3A01%3A32Z&sp=r&rscd=filename%3Dentry.py", + "absoluteUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/name/entry.py", + "sizeBytes": 292, "sizeSet": true, "children": {}}, "flow.dag.yaml": {"name": + "flow.dag.yaml", "hash": "8995B0C260367A0256D6435D6351214D", "type": "File", + "timestamp": "0001-01-01T00:00:00+00:00", "sasUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/name/flow.dag.yaml?sv=2019-07-07&sr=b&sig=nXVRu4YQoMRQr1pikDrruHQpxOOH0jKVyGQBvCGhg7M%3D&st=2024-03-13T08%3A51%3A32Z&se=2024-03-13T17%3A01%3A32Z&sp=r&rscd=filename%3Dflow.dag.yaml", + "absoluteUrl": "https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/runs/name/flow.dag.yaml", + "sizeBytes": 22, "sizeSet": true, "children": {}}}}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.077' + http_version: HTTP/1.1 + status_code: 200 +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Wed, 13 Mar 2024 09:01:30 GMT + x-ms-version: + - '2023-11-03' + method: GET + uri: https://fake_account_name.blob.core.windows.net/fake-container-name?comp=list&prefix=promptflow%2FPromptFlowArtifacts%2Fname%2F&restype=container + response: + body: + string: "\uFEFFpromptflow/PromptFlowArtifacts/name/promptflow/PromptFlowArtifacts/name/flow_artifacts/000000000_000000024.jsonlWed, + 13 Mar 2024 09:00:53 GMTWed, 13 Mar 2024 09:00:53 + GMT0x8DC433C16A946AC1099application/octet-streamAppendBlobunlockedavailabletruepromptflow/PromptFlowArtifacts/name/flow_outputs/output.jsonlWed, + 13 Mar 2024 09:00:56 GMTWed, 13 Mar 2024 09:00:56 + GMT0x8DC433C18994C0135application/octet-stream/e0Zn1phO4FyeGCAse5gGw==BlockBlobHottrueunlockedavailabletruepromptflow/PromptFlowArtifacts/name/instance_results.jsonlWed, + 13 Mar 2024 09:00:53 GMTWed, 13 Mar 2024 09:00:53 + GMT0x8DC433C16AEBED0113application/octet-streamAppendBlobunlockedavailabletruepromptflow/PromptFlowArtifacts/name/meta.jsonWed, + 13 Mar 2024 09:00:47 GMTWed, 13 Mar 2024 09:00:47 + GMT0x8DC433C12D92FB418application/octet-stream/u1NXUpgXMFDmZEw835qnw==BlockBlobHottrueunlockedavailabletrue" + headers: + content-type: + - application/xml + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + vary: + - Origin + x-ms-version: + - '2023-11-03' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Wed, 13 Mar 2024 09:01:32 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2023-11-03' + method: GET + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/promptflow/PromptFlowArtifacts/name/flow_artifacts/000000000_000000024.jsonl + response: + body: + string: '{"line_number": 0, "run_info": {"run_id": "name_0", "status": "Completed", + "error": null, "inputs": {"input_val": "input1", "line_number": 0}, "output": + {"output": null}, "metrics": null, "request": null, "parent_run_id": "name", + "root_run_id": "name", "source_run_id": null, "flow_id": "default_flow_id", + "start_time": "2024-03-13T09:00:53.664482Z", "end_time": "2024-03-13T09:00:53.667117Z", + "index": 0, "api_calls": [{"name": "my_flow", "type": "Function", "inputs": + {"input_val": "input1"}, "output": null, "start_time": 1710320453.665327, + "end_time": 1710320453.666638, "error": null, "children": [], "node_name": + null, "parent_id": "", "id": "28a2fdd0-9171-4045-b0fb-2aa1f4bab471"}], "variant_id": + "", "name": "", "description": "", "tags": null, "system_metrics": {"duration": + 0.002635}, "result": {"output": null}, "upload_metrics": false}, "start_time": + "2024-03-13T09:00:53.664482", "end_time": "2024-03-13T09:00:53.667117", "name": + "", "description": "", "status": "Completed", "tags": null} + + ' + headers: + accept-ranges: + - bytes + content-length: + - '1099' + content-range: + - bytes 0-1098/1099 + content-type: + - application/octet-stream + last-modified: + - Wed, 13 Mar 2024 09:00:53 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-committed-block-count: + - '1' + x-ms-blob-type: + - AppendBlob + x-ms-creation-time: + - Wed, 13 Mar 2024 09:00:53 GMT + x-ms-version: + - '2023-11-03' + status: + code: 206 + message: Partial Content +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Wed, 13 Mar 2024 09:01:32 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2023-11-03' + method: GET + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/runs/name/flow.dag.yaml + response: + body: + string: "entry: entry:my_flow\r\n" + headers: + accept-ranges: + - bytes + content-length: + - '22' + content-range: + - bytes 0-21/22 + content-type: + - application/octet-stream + last-modified: + - Wed, 13 Mar 2024 09:00:40 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - iZWwwmA2egJW1kNdY1EhTQ== + x-ms-blob-type: + - BlockBlob + x-ms-copy-completion-time: + - Wed, 13 Mar 2024 09:00:40 GMT + x-ms-copy-id: + - 531e9bad-fec1-4bf0-bbd8-158bc5fb8ae6 + x-ms-copy-progress: + - 22/22 + x-ms-copy-source: + - https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/LocalUpload/680dc9f0189caa3336cc8797ee6665b3/simple_without_yaml/flow.dag.yaml + x-ms-copy-status: + - success + x-ms-creation-time: + - Wed, 13 Mar 2024 09:00:40 GMT + x-ms-version: + - '2023-11-03' + status: + code: 206 + message: Partial Content +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Wed, 13 Mar 2024 09:01:32 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2023-11-03' + method: GET + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/runs/name/.promptflow/flow.json + response: + body: + string: "{\r\n \"entry\": \"entry:my_flow\",\r\n \"function\": \"my_flow\",\r\n + \ \"inputs\": {\r\n \"input_val\": {\r\n \"type\": \"string\"\r\n + \ }\r\n },\r\n \"outputs\": {\r\n \"output\": {\r\n \"type\": + \"object\"\r\n }\r\n }\r\n}" + headers: + accept-ranges: + - bytes + content-length: + - '240' + content-range: + - bytes 0-239/240 + content-type: + - application/octet-stream + last-modified: + - Wed, 13 Mar 2024 09:00:40 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - xzaVcbtpEfLsECGkzy+RKw== + x-ms-blob-type: + - BlockBlob + x-ms-copy-completion-time: + - Wed, 13 Mar 2024 09:00:40 GMT + x-ms-copy-id: + - 9ab2ad8b-d923-4fc9-b618-7f0dc7f8a8f9 + x-ms-copy-progress: + - 240/240 + x-ms-copy-source: + - https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/LocalUpload/680dc9f0189caa3336cc8797ee6665b3/simple_without_yaml/.promptflow/flow.json + x-ms-copy-status: + - success + x-ms-creation-time: + - Wed, 13 Mar 2024 09:00:40 GMT + x-ms-meta-name: + - 493061c0-0f9a-424a-9858-f835dfe58f5e + x-ms-meta-upload_status: + - completed + x-ms-meta-version: + - '1' + x-ms-version: + - '2023-11-03' + status: + code: 206 + message: Partial Content +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Wed, 13 Mar 2024 09:01:32 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2023-11-03' + method: GET + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/runs/name/entry.py + response: + body: + string: "# ---------------------------------------------------------\r\n# Copyright + (c) Microsoft Corporation. All rights reserved.\r\n# ---------------------------------------------------------\r\n\r\ndef + my_flow(input_val: str):\r\n \"\"\"Simple flow without yaml.\"\"\"\r\n + \ print(f\"Hello world! {input_val}\")\r\n" + headers: + accept-ranges: + - bytes + content-length: + - '292' + content-range: + - bytes 0-291/292 + content-type: + - application/octet-stream + last-modified: + - Wed, 13 Mar 2024 09:00:40 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - 16X2srvhVzeDgjXaBHVvXg== + x-ms-blob-type: + - BlockBlob + x-ms-copy-completion-time: + - Wed, 13 Mar 2024 09:00:40 GMT + x-ms-copy-id: + - 3c9e27ef-4d00-4243-90a0-c4147039c23a + x-ms-copy-progress: + - 292/292 + x-ms-copy-source: + - https://promptfloweast4063704120.blob.core.windows.net/azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5/LocalUpload/680dc9f0189caa3336cc8797ee6665b3/simple_without_yaml/entry.py + x-ms-copy-status: + - success + x-ms-creation-time: + - Wed, 13 Mar 2024 09:00:40 GMT + x-ms-version: + - '2023-11-03' + status: + code: 206 + message: Partial Content +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Wed, 13 Mar 2024 09:01:32 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2023-11-03' + method: GET + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/promptflow/PromptFlowArtifacts/name/meta.json + response: + body: + string: '{"batch_size": 25}' + headers: + accept-ranges: + - bytes + content-length: + - '18' + content-range: + - bytes 0-17/18 + content-type: + - application/octet-stream + last-modified: + - Wed, 13 Mar 2024 09:00:47 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - /u1NXUpgXMFDmZEw835qnw== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 Mar 2024 09:00:47 GMT + x-ms-version: + - '2023-11-03' + status: + code: 206 + message: Partial Content +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Wed, 13 Mar 2024 09:01:32 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2023-11-03' + method: GET + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/promptflow/PromptFlowArtifacts/name/instance_results.jsonl + response: + body: + string: '{"line_number": 0, "status": "Completed", "inputs.input_val": "input1", + "inputs.line_number": 0, "output": null} + + ' + headers: + accept-ranges: + - bytes + content-length: + - '113' + content-range: + - bytes 0-112/113 + content-type: + - application/octet-stream + last-modified: + - Wed, 13 Mar 2024 09:00:53 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-committed-block-count: + - '1' + x-ms-blob-type: + - AppendBlob + x-ms-creation-time: + - Wed, 13 Mar 2024 09:00:53 GMT + x-ms-version: + - '2023-11-03' + status: + code: 206 + message: Partial Content +- request: + body: null + headers: + Accept: + - application/xml + User-Agent: + - azsdk-python-storage-blob/12.19.0 Python/3.10.13 (Windows-10-10.0.22631-SP0) + x-ms-date: + - Wed, 13 Mar 2024 09:01:32 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2023-11-03' + method: GET + uri: https://fake_account_name.blob.core.windows.net/fake-container-name/promptflow/PromptFlowArtifacts/name/flow_outputs/output.jsonl + response: + body: + string: '{"line_number": 0, "output": null} + + ' + headers: + accept-ranges: + - bytes + content-length: + - '35' + content-range: + - bytes 0-34/35 + content-type: + - application/octet-stream + last-modified: + - Wed, 13 Mar 2024 09:00:56 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + vary: + - Origin + x-ms-blob-content-md5: + - /e0Zn1phO4FyeGCAse5gGw== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Wed, 13 Mar 2024 09:00:56 GMT + x-ms-version: + - '2023-11-03' + status: + code: 206 + message: Partial Content +- request: + body: '{"runId": "name", "selectRunMetadata": true, "selectRunDefinition": true, + "selectJobSpecification": true}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '137' + content-type: + - application/json + host: + - eastus.api.azureml.ms + user-agent: + - python-httpx/0.25.2 + method: POST + uri: https://eastus.api.azureml.ms/history/v1.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/rundata + response: + content: '{"runMetadata": {"runNumber": 1710320439, "rootRunId": "name", "createdUtc": + "2024-03-13T09:00:39.7215141+00:00", "createdBy": {"userObjectId": "00000000-0000-0000-0000-000000000000", + "userPuId": null, "userIdp": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", + "userAltSecId": null, "userIss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", + "userTenantId": "00000000-0000-0000-0000-000000000000", "userName": "4cbd0e2e-aae4-4099-b4ba-94d3a4910587", + "upn": null}, "userId": "00000000-0000-0000-0000-000000000000", "token": null, + "tokenExpiryTimeUtc": null, "error": null, "warnings": null, "revision": 6, + "statusRevision": 3, "runUuid": "606b4482-4091-4c72-9a70-eeb32487f8d2", "parentRunUuid": + null, "rootRunUuid": "606b4482-4091-4c72-9a70-eeb32487f8d2", "lastStartTimeUtc": + null, "currentComputeTime": null, "computeDuration": "00:00:11.6284660", "effectiveStartTimeUtc": + null, "lastModifiedBy": {"userObjectId": "00000000-0000-0000-0000-000000000000", + "userPuId": null, "userIdp": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", + "userAltSecId": null, "userIss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", + "userTenantId": "00000000-0000-0000-0000-000000000000", "userName": "18a66f5f-dbdf-4c17-9dd7-1634712a9cbe", + "upn": null}, "lastModifiedUtc": "2024-03-13T09:00:56.6752317+00:00", "duration": + "00:00:11.6284660", "cancelationReason": null, "currentAttemptId": 1, "runId": + "name", "parentRunId": null, "experimentId": "74b7905c-2ac3-4f4e-8a8f-c198f448a197", + "status": "Completed", "startTimeUtc": "2024-03-13T09:00:48.886808+00:00", "endTimeUtc": + "2024-03-13T09:01:00.515274+00:00", "scheduleId": null, "displayName": "name", + "name": null, "dataContainerId": "dcid.name", "description": null, "hidden": + false, "runType": "azureml.promptflow.FlowRun", "runTypeV2": {"orchestrator": + null, "traits": [], "attribution": "PromptFlow", "computeType": null}, "properties": + {"azureml.promptflow.runtime_name": "automatic", "azureml.promptflow.runtime_version": + "20240306.v5", "azureml.promptflow.definition_file_name": "flow.dag.yaml", "azureml.promptflow.flow_lineage_id": + "0ec65ae456ae278328cff5cc1a8afd8caa4b8fcf7706e692f97cdfba31347886", "azureml.promptflow.flow_definition_datastore_name": + "workspaceblobstore", "azureml.promptflow.flow_definition_blob_path": "LocalUpload/680dc9f0189caa3336cc8797ee6665b3/simple_without_yaml/flow.dag.yaml", + "azureml.promptflow.input_data": "azureml://datastores/workspaceblobstore/paths/LocalUpload/e62bc4d5a164939b21d42dd420469da7/simple_eager_flow_data.jsonl", + "_azureml.evaluation_run": "promptflow.BatchRun", "azureml.promptflow.session_id": + "d99698cada9010a2c7ea798bb255eb2c2fe3d771895bbe0a", "azureml.promptflow.snapshot_id": + "d8987d37-16d4-441c-9c6c-b46b333f6e26", "azureml.promptflow.run_mode": "Eager", + "azureml.promptflow.total_tokens": "0", "_azureml.evaluate_artifacts": "[{\"path\": + \"instance_results.jsonl\", \"type\": \"table\"}]"}, "parameters": {}, "actionUris": + {}, "scriptName": null, "target": null, "uniqueChildRunComputeTargets": [], + "tags": {}, "settings": {}, "services": {}, "inputDatasets": [], "outputDatasets": + [], "runDefinition": null, "jobSpecification": null, "primaryMetricName": null, + "createdFrom": null, "cancelUri": null, "completeUri": null, "diagnosticsUri": + null, "computeRequest": null, "compute": null, "retainForLifetimeOfWorkspace": + false, "queueingInfo": null, "inputs": null, "outputs": {"debug_info": {"assetId": + "azureml://locations/eastus/workspaces/00000/data/azureml_name_output_data_debug_info/versions/1", + "type": "UriFolder"}, "flow_outputs": {"assetId": "azureml://locations/eastus/workspaces/00000/data/azureml_name_output_data_flow_outputs/versions/1", + "type": "UriFolder"}}}, "runDefinition": null, "jobSpecification": null, "systemSettings": + null}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.049' + http_version: HTTP/1.1 + status_code: 200 +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/json + User-Agent: + - promptflow-sdk/0.0.1 azsdk-python-azuremachinelearningdesignerserviceclient/unknown + Python/3.10.13 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://eastus.api.azureml.ms/flow/api/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/00000/BulkRuns/name/logContent + response: + body: + string: '"2024-03-13 09:00:41 +0000 92 promptflow-runtime INFO [name] + Receiving v2 bulk run request c315a941-7a52-4ac6-9d3f-a637c9a3c720: {\"flow_id\": + \"name\", \"flow_run_id\": \"name\", \"flow_source\": {\"flow_source_type\": + 1, \"flow_source_info\": {\"snapshot_id\": \"d8987d37-16d4-441c-9c6c-b46b333f6e26\"}, + \"flow_dag_file\": \"flow.dag.yaml\"}, \"log_path\": \"https://promptfloweast4063704120.blob.core.windows.net/azureml/ExperimentRun/dcid.name/logs/azureml/executionlogs.txt?sv=2019-07-07&sr=b&sig=**data_scrubbed**&skoid=55b92eba-d7c7-4afd-ab76-7bb1cd345283&sktid=00000000-0000-0000-0000-000000000000&skt=2024-03-13T08%3A50%3A38Z&ske=2024-03-14T17%3A00%3A38Z&sks=b&skv=2019-07-07&st=2024-03-13T08%3A50%3A40Z&se=2024-03-13T17%3A00%3A40Z&sp=rcw\", + \"app_insights_instrumentation_key\": \"InstrumentationKey=**data_scrubbed**;IngestionEndpoint=https://eastus-6.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus.livediagnostics.monitor.azure.com/\", + \"batch_timeout_sec\": 36000, \"data_inputs\": {\"data\": \"azureml://datastores/workspaceblobstore/paths/LocalUpload/e62bc4d5a164939b21d42dd420469da7/simple_eager_flow_data.jsonl\"}, + \"azure_storage_setting\": {\"azure_storage_mode\": 1, \"storage_account_name\": + \"promptfloweast4063704120\", \"blob_container_name\": \"azureml-blobstore-3e123da1-f9a5-4c91-9234-8d9ffbb39ff5\", + \"flow_artifacts_root_path\": \"promptflow/PromptFlowArtifacts/name\", \"blob_container_sas_token\": + \"?sv=2019-07-07&sr=c&sig=**data_scrubbed**&skoid=55b92eba-d7c7-4afd-ab76-7bb1cd345283&sktid=00000000-0000-0000-0000-000000000000&skt=2024-03-13T09%3A00%3A40Z&ske=2024-03-20T09%3A00%3A40Z&sks=b&skv=2019-07-07&se=2024-03-20T09%3A00%3A40Z&sp=racwl\", + \"output_datastore_name\": \"workspaceblobstore\"}}\n2024-03-13 09:00:41 +0000 92 + promptflow-runtime INFO Runtime version: 20240306.v5. PromptFlow version: + 1.7.0rc2\n2024-03-13 09:00:41 +0000 92 promptflow-runtime INFO Updating + name to Status.Preparing...\n2024-03-13 09:00:41 +0000 92 promptflow-runtime + INFO Downloading snapshot to /mnt/host/service/app/37743/requests/name\n2024-03-13 + 09:00:41 +0000 92 promptflow-runtime INFO Get snapshot sas url for + d8987d37-16d4-441c-9c6c-b46b333f6e26.\n2024-03-13 09:00:42 +0000 92 promptflow-runtime + INFO Snapshot d8987d37-16d4-441c-9c6c-b46b333f6e26 contains 3 files.\n2024-03-13 + 09:00:42 +0000 92 promptflow-runtime INFO Download snapshot d8987d37-16d4-441c-9c6c-b46b333f6e26 + completed.\n2024-03-13 09:00:42 +0000 92 promptflow-runtime INFO Successfully + download snapshot to /mnt/host/service/app/37743/requests/name\n2024-03-13 + 09:00:42 +0000 92 promptflow-runtime INFO About to execute a python + flow.\n2024-03-13 09:00:42 +0000 92 promptflow-runtime INFO Use spawn + method to start child process.\n2024-03-13 09:00:42 +0000 92 promptflow-runtime + INFO Starting to check process 293 status for run name\n2024-03-13 09:00:42 + +0000 92 promptflow-runtime INFO Start checking run status for run + name\n2024-03-13 09:00:46 +0000 293 promptflow-runtime INFO [92--293] + Start processing flowV2......\n2024-03-13 09:00:46 +0000 293 promptflow-runtime + INFO Runtime version: 20240306.v5. PromptFlow version: 1.7.0rc2\n2024-03-13 + 09:00:46 +0000 293 promptflow-runtime INFO Setting mlflow tracking + uri...\n2024-03-13 09:00:46 +0000 293 promptflow-runtime INFO Validating + ''AzureML Data Scientist'' user authentication...\n2024-03-13 09:00:46 +0000 293 + promptflow-runtime INFO Successfully validated ''AzureML Data Scientist'' + user authentication.\n2024-03-13 09:00:47 +0000 293 promptflow-runtime + INFO Using AzureMLRunStorageV2\n2024-03-13 09:00:47 +0000 293 promptflow-runtime + INFO Setting mlflow tracking uri to ''azureml://eastus.api.azureml.ms/mlflow/v1.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus''\n2024-03-13 + 09:00:47 +0000 293 promptflow-runtime INFO Initialized blob service + client.\n2024-03-13 09:00:47 +0000 293 promptflow-runtime INFO Blob + service client has api version: 2023-11-03\n2024-03-13 09:00:47 +0000 293 + promptflow-runtime INFO Setting mlflow tracking uri to ''azureml://eastus.api.azureml.ms/mlflow/v1.0/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/00000/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus''\n2024-03-13 + 09:00:48 +0000 293 promptflow-runtime INFO Resolve data from url finished + in 1.2522469599999795 seconds\n2024-03-13 09:00:48 +0000 293 promptflow-runtime + INFO Starting the aml run ''name''...\n2024-03-13 09:00:49 +0000 293 + execution WARNING Starting run without column mapping may lead to + unexpected results. Please consult the following documentation for more information: + https://aka.ms/pf/column-mapping\n2024-03-13 09:00:49 +0000 293 execution.bulk INFO Skipped + the execution of 0 existing results.\n2024-03-13 09:00:49 +0000 293 execution.bulk INFO The + timeout for the batch run is 36000 seconds.\n2024-03-13 09:00:49 +0000 293 + execution.bulk INFO Set process count to 1 by taking the minimum value + among the factors of {''default_worker_count'': 4, ''row_count'': 1}.\n2024-03-13 + 09:00:53 +0000 293 execution.bulk INFO Process name(ForkProcess-2:2:1)-Process + id(365)-Line number(0) start execution.\n2024-03-13 09:00:53 +0000 293 + execution.bulk INFO Process name(ForkProcess-2:2:1)-Process id(365)-Line + number(0) completed.\n2024-03-13 09:00:54 +0000 293 execution.bulk INFO Finished + 1 / 1 lines.\n2024-03-13 09:00:54 +0000 293 execution.bulk INFO Average + execution time for completed lines: 5.0 seconds. Estimated time for incomplete + lines: 0.0 seconds.\n2024-03-13 09:00:54 +0000 365 execution.bulk WARNING Error + occurred while shutting down tracer provider: ''ProxyTracerProvider'' object + has no attribute ''shutdown''\n2024-03-13 09:00:55 +0000 293 promptflow-runtime + INFO Post processing batch result...\n2024-03-13 09:00:56 +0000 293 + execution.bulk INFO Upload status summary metrics for run name finished + in 0.8281193400000575 seconds\n2024-03-13 09:00:56 +0000 293 promptflow-runtime + INFO Successfully write run properties {\"azureml.promptflow.total_tokens\": + 0, \"_azureml.evaluate_artifacts\": \"[{\\\"path\\\": \\\"instance_results.jsonl\\\", + \\\"type\\\": \\\"table\\\"}]\"} with run id ''name''\n2024-03-13 09:00:56 + +0000 293 execution.bulk INFO Upload RH properties for run name + finished in 0.07297565199996825 seconds\n2024-03-13 09:00:56 +0000 293 + promptflow-runtime INFO Creating unregistered output Asset for Run name...\n2024-03-13 + 09:00:56 +0000 293 promptflow-runtime INFO Created debug_info Asset: + azureml://locations/eastus/workspaces/00000/data/azureml_name_output_data_debug_info/versions/1\n2024-03-13 + 09:00:56 +0000 293 promptflow-runtime INFO Creating unregistered output + Asset for Run name...\n2024-03-13 09:00:57 +0000 293 promptflow-runtime + INFO Created flow_outputs output Asset: azureml://locations/eastus/workspaces/00000/data/azureml_name_output_data_flow_outputs/versions/1\n2024-03-13 + 09:00:57 +0000 293 promptflow-runtime INFO Creating Artifact for Run + name...\n2024-03-13 09:01:00 +0000 293 promptflow-runtime INFO Created + instance_results.jsonl Artifact.\n2024-03-13 09:01:00 +0000 293 promptflow-runtime + INFO Patching name...\n2024-03-13 09:01:00 +0000 293 promptflow-runtime + INFO Ending the aml run ''name'' with status ''Completed''...\n"' + headers: + connection: + - keep-alive + content-length: + - '8434' + content-type: + - application/json; charset=utf-8 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-request-time: + - '0.379' + status: + code: 200 + message: OK +version: 1 From a177fa4cb44b67087a03d6c7b65bb459aeb42f88 Mon Sep 17 00:00:00 2001 From: Ying Chen Date: Wed, 20 Mar 2024 17:38:24 +0800 Subject: [PATCH 093/204] Add flow test http api (#2358) # Description Please add an informative description that covers that changes made by the pull request and link all relevant issues. # All Promptflow Contribution checklist: - [ ] **The pull request does not introduce [breaking changes].** - [ ] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [ ] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Co-authored-by: Ying Chen <2601502859@qq.com> --- .cspell.json | 2 + src/promptflow/promptflow/_cli/_pf/_flow.py | 38 +- src/promptflow/promptflow/_sdk/_constants.py | 1 + .../_sdk/_service/apis/experiment.py | 32 + .../promptflow/_sdk/_service/apis/flow.py | 145 + .../promptflow/_sdk/_service/apis/ui.py | 92 +- .../promptflow/_sdk/_service/app.py | 8 +- .../_sdk/_service/static/assets/index.mjs | 139639 +++++++++++++++ .../_sdk/_service/static/assets/style.css | 1 + .../_sdk/_service/static/chat_index.html | 23 + .../promptflow/_sdk/_service/swagger.json | 580 +- .../promptflow/_sdk/_service/utils/utils.py | 11 +- .../_sdk/operations/_flow_operations.py | 89 +- .../operations/_local_storage_operations.py | 1 + .../promptflow/_utils/feature_utils.py | 5 + .../sdk_pfs_test/e2etests/test_flow_apis.py | 76 + src/promptflow/tests/sdk_pfs_test/utils.py | 44 + 17 files changed, 140730 insertions(+), 57 deletions(-) create mode 100644 src/promptflow/promptflow/_sdk/_service/apis/experiment.py create mode 100644 src/promptflow/promptflow/_sdk/_service/apis/flow.py create mode 100644 src/promptflow/promptflow/_sdk/_service/static/assets/index.mjs create mode 100644 src/promptflow/promptflow/_sdk/_service/static/assets/style.css create mode 100644 src/promptflow/promptflow/_sdk/_service/static/chat_index.html create mode 100644 src/promptflow/tests/sdk_pfs_test/e2etests/test_flow_apis.py diff --git a/.cspell.json b/.cspell.json index ba32e8c9413..b6f9e082077 100644 --- a/.cspell.json +++ b/.cspell.json @@ -16,6 +16,8 @@ ], "ignorePaths": [ "**/*.js", + "**/*.mjs", + "**/*.css", "**/*.pyc", "**/*.log", "**/*.jsonl", diff --git a/src/promptflow/promptflow/_cli/_pf/_flow.py b/src/promptflow/promptflow/_cli/_pf/_flow.py index 96530e2d2d8..53c3cccbb63 100644 --- a/src/promptflow/promptflow/_cli/_pf/_flow.py +++ b/src/promptflow/promptflow/_cli/_pf/_flow.py @@ -12,6 +12,7 @@ import tempfile import webbrowser from pathlib import Path +from urllib.parse import urlencode, urlunparse from promptflow._cli._params import ( add_param_config, @@ -31,7 +32,6 @@ ChatFlowDAGGenerator, FlowDAGGenerator, OpenAIConnectionGenerator, - StreamlitFileReplicator, ToolMetaGenerator, ToolPyGenerator, copy_extra_files, @@ -41,6 +41,7 @@ from promptflow._sdk._configuration import Configuration from promptflow._sdk._constants import PROMPT_FLOW_DIR_NAME, ConnectionProvider from promptflow._sdk._pf_client import PFClient +from promptflow._sdk._service.utils.utils import encrypt_flow_path from promptflow._sdk.operations._flow_operations import FlowOperations from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow.exceptions import ErrorTarget, UserErrorException @@ -393,7 +394,7 @@ def test_flow(args): _test_flow_experiment(args, pf_client, inputs, environment_variables) return if args.multi_modal or args.ui: - _test_flow_multi_modal(args, pf_client) + _test_flow_multi_modal(args) return if args.interactive: _test_flow_interactive(args, pf_client, inputs, environment_variables) @@ -420,26 +421,23 @@ def _build_inputs_for_flow_test(args): return inputs -def _test_flow_multi_modal(args, pf_client): +def _test_flow_multi_modal(args): """Test flow with multi modality mode.""" from promptflow._sdk._load_functions import load_flow - - with tempfile.TemporaryDirectory() as temp_dir: - flow = load_flow(args.flow) - - script_path = [ - os.path.join(temp_dir, "main.py"), - os.path.join(temp_dir, "utils.py"), - os.path.join(temp_dir, "logo.png"), - ] - for script in script_path: - StreamlitFileReplicator( - flow_name=flow.display_name if flow.display_name else flow.name, - flow_dag_path=flow.flow_dag_path, - ).generate_to_file(script) - main_script_path = os.path.join(temp_dir, "main.py") - logger.info("Start streamlit with main script generated at: %s", main_script_path) - pf_client.flows._chat_with_ui(script=main_script_path, skip_open_browser=args.skip_open_browser) + from promptflow._sdk._tracing import _invoke_pf_svc + + # Todo: use base64 encode for now, will consider whether need use encryption or use db to store flow path info + def generate_url(flow_path, port): + encrypted_flow_path = encrypt_flow_path(flow_path) + query_params = urlencode({"flow": encrypted_flow_path}) + return urlunparse(("http", f"127.0.0.1:{port}", "/v1.0/ui/chat", "", query_params, "")) + + pfs_port = _invoke_pf_svc() + flow = load_flow(args.flow) + flow_dir = os.path.abspath(flow.code) + chat_page_url = generate_url(flow_dir, pfs_port) + print(f"You can begin chat flow on {chat_page_url}") + webbrowser.open(chat_page_url) def _test_flow_interactive(args, pf_client, inputs, environment_variables): diff --git a/src/promptflow/promptflow/_sdk/_constants.py b/src/promptflow/promptflow/_sdk/_constants.py index 5bc209fac50..5a8e816daa7 100644 --- a/src/promptflow/promptflow/_sdk/_constants.py +++ b/src/promptflow/promptflow/_sdk/_constants.py @@ -148,6 +148,7 @@ def _prepare_home_dir() -> Path: SPAN_TABLENAME = "span" PFS_MODEL_DATETIME_FORMAT = "iso8601" +UX_INPUTS_JSON = "ux.inputs.json" AzureMLWorkspaceTriad = namedtuple("AzureMLWorkspace", ["subscription_id", "resource_group_name", "workspace_name"]) # chat group diff --git a/src/promptflow/promptflow/_sdk/_service/apis/experiment.py b/src/promptflow/promptflow/_sdk/_service/apis/experiment.py new file mode 100644 index 00000000000..2a2d8e4eeae --- /dev/null +++ b/src/promptflow/promptflow/_sdk/_service/apis/experiment.py @@ -0,0 +1,32 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +from flask import jsonify, request + +from promptflow._sdk._constants import get_list_view_type +from promptflow._sdk._service import Namespace, Resource +from promptflow._sdk._service.utils.utils import get_client_from_request + +api = Namespace("Experiments", description="Experiments Management") + +# Response model of experiment operation +dict_field = api.schema_model("ExperimentDict", {"additionalProperties": True, "type": "object"}) +list_field = api.schema_model("ExperimentList", {"type": "array", "items": {"$ref": "#/definitions/ExperimentDict"}}) + + +@api.route("/") +class ExperimentList(Resource): + @api.response(code=200, description="Experiments", model=list_field) + @api.doc(description="List all experiments") + def get(self): + # parse query parameters + max_results = request.args.get("max_results", default=50, type=int) + archived_only = request.args.get("archived_only", default=False, type=bool) + include_archived = request.args.get("include_archived", default=False, type=bool) + list_view_type = get_list_view_type(archived_only=archived_only, include_archived=include_archived) + + experiments = get_client_from_request()._experiments.list( + max_results=max_results, list_view_type=list_view_type + ) + experiments_dict = [experiment._to_dict() for experiment in experiments] + return jsonify(experiments_dict) diff --git a/src/promptflow/promptflow/_sdk/_service/apis/flow.py b/src/promptflow/promptflow/_sdk/_service/apis/flow.py new file mode 100644 index 00000000000..651554ad34a --- /dev/null +++ b/src/promptflow/promptflow/_sdk/_service/apis/flow.py @@ -0,0 +1,145 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +import json +import os +import shutil +import uuid +from pathlib import Path + +from flask import make_response +from flask_restx import reqparse + +from promptflow._sdk._constants import DEFAULT_ENCODING, PROMPT_FLOW_DIR_NAME, UX_INPUTS_JSON +from promptflow._sdk._service import Namespace, Resource, fields +from promptflow._sdk._service.utils.utils import decrypt_flow_path, get_client_from_request +from promptflow._sdk._utils import json_load, read_write_by_user +from promptflow._utils.flow_utils import resolve_flow_path +from promptflow._utils.yaml_utils import load_yaml +from promptflow.exceptions import UserErrorException + +api = Namespace("Flows", description="Flows Management") + + +dict_field = api.schema_model("FlowDict", {"additionalProperties": True, "type": "object"}) + +flow_test_model = api.model( + "FlowTest", + { + "node": fields.String( + required=False, description="If specified it will only test this node, else it will " "test the flow." + ), + "variant": fields.String( + required=False, + description="Node & variant name in format of ${" + "node_name.variant_name}, will use default variant if " + "not specified.", + ), + "output_path": fields.String(required=False, description="Output path of flow"), + "experiment": fields.String(required=False, description="Path of experiment template"), + "inputs": fields.Nested(dict_field, required=False), + "environment_variables": fields.Nested(dict_field, required=False), + }, +) + +flow_ux_input_model = api.model( + "FlowUxInput", + { + "flow": fields.String(required=True, description="Path to flow directory."), + "ux_inputs": fields.Nested(dict_field, required=True, description="Flow ux inputs"), + }, +) + +flow_path_parser = reqparse.RequestParser() +flow_path_parser.add_argument("flow", type=str, required=True, location="args", help="Path to flow directory.") + + +@api.route("/test") +class FlowTest(Resource): + @api.response(code=200, description="Flow test", model=dict_field) + @api.doc(description="Flow test") + @api.expect(flow_test_model) + def post(self): + args = flow_path_parser.parse_args() + flow = args.flow + flow = decrypt_flow_path(flow) + inputs = api.payload.get("inputs", None) + environment_variables = api.payload.get("environment_variables", None) + variant = api.payload.get("variant", None) + node = api.payload.get("node", None) + experiment = api.payload.get("experiment", None) + output_path = api.payload.get("output_path", None) + remove_dir = False + + if output_path is None: + filename = str(uuid.uuid4()) + if os.path.isdir(flow): + output_path = Path(flow) / PROMPT_FLOW_DIR_NAME / filename + else: + output_path = Path(os.path.dirname(flow)) / PROMPT_FLOW_DIR_NAME / filename + os.makedirs(output_path, exist_ok=True) + remove_dir = True + output_path = Path(output_path).resolve() + try: + result = get_client_from_request().flows._test_with_ui( + flow=flow, + inputs=inputs, + environment_variables=environment_variables, + variant=variant, + node=node, + experiment=experiment, + output_path=output_path, + ) + finally: + if remove_dir: + shutil.rmtree(output_path) + return result + + +@api.route("/get") +class FlowGet(Resource): + @api.response(code=200, description="Return flow yaml as json", model=dict_field) + @api.doc(description="Return flow yaml as json") + def get(self): + args = flow_path_parser.parse_args() + flow_path = args.flow + flow_path = decrypt_flow_path(flow_path) + if not os.path.exists(flow_path): + raise UserErrorException(f"The flow doesn't exist: {flow_path}") + flow_path_dir, flow_path_file = resolve_flow_path(Path(flow_path)) + flow_info = load_yaml(flow_path_dir / flow_path_file) + return flow_info + + +@api.route("/ux_inputs") +class FlowUxInputs(Resource): + @api.response(code=200, description="Get the file content of file UX_INPUTS_JSON", model=dict_field) + @api.doc(description="Get the file content of file UX_INPUTS_JSON") + def get(self): + args = flow_path_parser.parse_args() + flow_path = args.flow + flow_path = decrypt_flow_path(flow_path) + if not os.path.exists(flow_path): + raise UserErrorException(f"The flow doesn't exist: {flow_path}") + flow_ux_inputs_path = Path(flow_path) / PROMPT_FLOW_DIR_NAME / UX_INPUTS_JSON + if not flow_ux_inputs_path.exists(): + flow_ux_inputs_path.touch(mode=read_write_by_user(), exist_ok=True) + try: + ux_inputs = json_load(flow_ux_inputs_path) + except json.decoder.JSONDecodeError: + ux_inputs = {} + return ux_inputs + + @api.response(code=200, description="Set the file content of file UX_INPUTS_JSON", model=dict_field) + @api.doc(description="Set the file content of file UX_INPUTS_JSON") + @api.expect(flow_ux_input_model) + def post(self): + content = api.payload["ux_inputs"] + args = flow_path_parser.parse_args() + flow_path = args.flow + flow_path = decrypt_flow_path(flow_path) + flow_ux_inputs_path = Path(flow_path) / PROMPT_FLOW_DIR_NAME / UX_INPUTS_JSON + flow_ux_inputs_path.touch(mode=read_write_by_user(), exist_ok=True) + with open(flow_ux_inputs_path, mode="w", encoding=DEFAULT_ENCODING) as f: + json.dump(content, f, ensure_ascii=False, indent=2) + return make_response("UX_INPUTS_JSON content updated successfully", 200) diff --git a/src/promptflow/promptflow/_sdk/_service/apis/ui.py b/src/promptflow/promptflow/_sdk/_service/apis/ui.py index 7cbd369e225..075f9dc749a 100644 --- a/src/promptflow/promptflow/_sdk/_service/apis/ui.py +++ b/src/promptflow/promptflow/_sdk/_service/apis/ui.py @@ -1,10 +1,98 @@ # --------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- - +import base64 +import hashlib import os +from pathlib import Path + +from flask import Response, current_app, render_template, send_from_directory, url_for +from flask_restx import reqparse +from werkzeug.utils import safe_join + +from promptflow._sdk._constants import PROMPT_FLOW_DIR_NAME +from promptflow._sdk._service import Namespace, Resource, fields +from promptflow._sdk._service.utils.utils import decrypt_flow_path +from promptflow.exceptions import UserErrorException + +api = Namespace("ui", description="UI") + + +media_save_model = api.model( + "MediaSave", + { + "base64_data": fields.String(required=True, description="Image base64 encoded data."), + "extension": fields.String(required=True, description="Image file extension."), + }, +) + +flow_path_parser = reqparse.RequestParser() +flow_path_parser.add_argument("flow", type=str, required=True, location="args", help="Path to flow directory.") + +image_path_parser = reqparse.RequestParser() +image_path_parser.add_argument("image_path", type=str, required=True, location="args", help="Path of image.") + + +@api.route("/chat") +class ChatUI(Resource): + def get(self): + return Response( + render_template("chat_index.html", url_for=url_for), + mimetype="text/html", + ) + + +def save_image(directory, base64_data, extension): + image_data = base64.b64decode(base64_data) + hash_object = hashlib.sha256(image_data) + filename = hash_object.hexdigest() + file_path = Path(directory) / f"{filename}.{extension}" + with open(file_path, "wb") as f: + f.write(image_data) + return file_path + + +@api.route("/media_save") +class MediaSave(Resource): + @api.response(code=200, description="Save image", model=fields.String) + @api.doc(description="Save image") + @api.expect(media_save_model) + def post(self): + args = flow_path_parser.parse_args() + flow = args.flow + flow = decrypt_flow_path(flow) + base64_data = api.payload["base64_data"] + extension = api.payload["extension"] + safe_path = safe_join(flow, PROMPT_FLOW_DIR_NAME) + if safe_path is None: + message = f"The untrusted path {PROMPT_FLOW_DIR_NAME} relative to the base directory {flow} detected!" + raise UserErrorException(message) + file_path = save_image(safe_path, base64_data, extension) + path = Path(file_path).relative_to(flow) + return str(path) + + +@api.route("/media") +class MediaView(Resource): + @api.response(code=200, description="Get image url", model=fields.String) + @api.doc(description="Get image url") + def get(self): + args = flow_path_parser.parse_args() + flow = args.flow + flow = decrypt_flow_path(flow) + + args = image_path_parser.parse_args() + image_path = args.image_path + safe_path = safe_join(flow, image_path) + if safe_path is None: + message = f"The untrusted path {image_path} relative to the base directory {flow} detected!" + raise UserErrorException(message) + safe_path = Path(safe_path).resolve().as_posix() + if not os.path.exists(safe_path): + raise UserErrorException("The image doesn't exist") -from flask import current_app, send_from_directory + directory, filename = os.path.split(safe_path) + return send_from_directory(directory, filename) def serve_trace_ui(path): diff --git a/src/promptflow/promptflow/_sdk/_service/app.py b/src/promptflow/promptflow/_sdk/_service/app.py index e2eb3454f93..0893140762e 100644 --- a/src/promptflow/promptflow/_sdk/_service/app.py +++ b/src/promptflow/promptflow/_sdk/_service/app.py @@ -20,10 +20,13 @@ from promptflow._sdk._service import Api from promptflow._sdk._service.apis.collector import trace_collector from promptflow._sdk._service.apis.connection import api as connection_api +from promptflow._sdk._service.apis.experiment import api as experiment_api +from promptflow._sdk._service.apis.flow import api as flow_api from promptflow._sdk._service.apis.line_run import api as line_run_api from promptflow._sdk._service.apis.run import api as run_api from promptflow._sdk._service.apis.span import api as span_api from promptflow._sdk._service.apis.telemetry import api as telemetry_api +from promptflow._sdk._service.apis.ui import api as ui_api from promptflow._sdk._service.apis.ui import serve_trace_ui from promptflow._sdk._service.utils.utils import ( FormattedException, @@ -58,7 +61,7 @@ def create_app(): app.add_url_rule("/v1.0/ui/traces/", defaults={"path": ""}, view_func=serve_trace_ui, methods=["GET"]) app.add_url_rule("/v1.0/ui/traces/", view_func=serve_trace_ui, methods=["GET"]) with app.app_context(): - api_v1 = Blueprint("Prompt Flow Service", __name__, url_prefix="/v1.0") + api_v1 = Blueprint("Prompt Flow Service", __name__, url_prefix="/v1.0", template_folder="static") # Registers resources from namespace for current instance of api api = Api(api_v1, title="Prompt Flow Service", version="1.0") @@ -67,6 +70,9 @@ def create_app(): api.add_namespace(telemetry_api) api.add_namespace(span_api) api.add_namespace(line_run_api) + api.add_namespace(ui_api) + api.add_namespace(flow_api) + api.add_namespace(experiment_api) app.register_blueprint(api_v1) # Disable flask-restx set X-Fields in header. https://flask-restx.readthedocs.io/en/latest/mask.html#usage diff --git a/src/promptflow/promptflow/_sdk/_service/static/assets/index.mjs b/src/promptflow/promptflow/_sdk/_service/static/assets/index.mjs new file mode 100644 index 00000000000..efa88ec2c04 --- /dev/null +++ b/src/promptflow/promptflow/_sdk/_service/static/assets/index.mjs @@ -0,0 +1,139639 @@ +var NFe = Object.defineProperty; +var IFe = (e, t, r) => t in e ? NFe(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r; +var Cr = (e, t, r) => (IFe(e, typeof t != "symbol" ? t + "" : t, r), r); +function Pbe(e, t) { + for (var r = 0; r < t.length; r++) { + const n = t[r]; + if (typeof n != "string" && !Array.isArray(n)) { + for (const i in n) + if (i !== "default" && !(i in e)) { + const o = Object.getOwnPropertyDescriptor(n, i); + o && Object.defineProperty(e, i, o.get ? o : { + enumerable: !0, + get: () => n[i] + }); + } + } + } + return Object.freeze(Object.defineProperty(e, Symbol.toStringTag, { value: "Module" })); +} +var xh = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}; +function fa(e) { + return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e; +} +var cG = { exports: {} }, KO = {}, fG = { exports: {} }, NR = { exports: {} }; +NR.exports; +var eoe; +function DFe() { + return eoe || (eoe = 1, function(e, t) { + var r = {}; + /** + * @license React + * react.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + r.NODE_ENV !== "production" && function() { + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error()); + var n = "18.2.0", i = Symbol.for("react.element"), o = Symbol.for("react.portal"), a = Symbol.for("react.fragment"), s = Symbol.for("react.strict_mode"), l = Symbol.for("react.profiler"), u = Symbol.for("react.provider"), f = Symbol.for("react.context"), h = Symbol.for("react.forward_ref"), p = Symbol.for("react.suspense"), g = Symbol.for("react.suspense_list"), m = Symbol.for("react.memo"), _ = Symbol.for("react.lazy"), S = Symbol.for("react.offscreen"), A = Symbol.iterator, C = "@@iterator"; + function N(Se) { + if (Se === null || typeof Se != "object") + return null; + var Je = A && Se[A] || Se[C]; + return typeof Je == "function" ? Je : null; + } + var x = { + /** + * @internal + * @type {ReactComponent} + */ + current: null + }, R = { + transition: null + }, D = { + current: null, + // Used to reproduce behavior of `batchedUpdates` in legacy mode. + isBatchingLegacy: !1, + didScheduleLegacyUpdate: !1 + }, M = { + /** + * @internal + * @type {ReactComponent} + */ + current: null + }, j = {}, F = null; + function z(Se) { + F = Se; + } + j.setExtraStackFrame = function(Se) { + F = Se; + }, j.getCurrentStack = null, j.getStackAddendum = function() { + var Se = ""; + F && (Se += F); + var Je = j.getCurrentStack; + return Je && (Se += Je() || ""), Se; + }; + var G = !1, te = !1, Q = !1, ae = !1, J = !1, Y = { + ReactCurrentDispatcher: x, + ReactCurrentBatchConfig: R, + ReactCurrentOwner: M + }; + Y.ReactDebugCurrentFrame = j, Y.ReactCurrentActQueue = D; + function re(Se) { + { + for (var Je = arguments.length, Nt = new Array(Je > 1 ? Je - 1 : 0), Dt = 1; Dt < Je; Dt++) + Nt[Dt - 1] = arguments[Dt]; + ve("warn", Se, Nt); + } + } + function fe(Se) { + { + for (var Je = arguments.length, Nt = new Array(Je > 1 ? Je - 1 : 0), Dt = 1; Dt < Je; Dt++) + Nt[Dt - 1] = arguments[Dt]; + ve("error", Se, Nt); + } + } + function ve(Se, Je, Nt) { + { + var Dt = Y.ReactDebugCurrentFrame, Rr = Dt.getStackAddendum(); + Rr !== "" && (Je += "%s", Nt = Nt.concat([Rr])); + var yn = Nt.map(function(Qr) { + return String(Qr); + }); + yn.unshift("Warning: " + Je), Function.prototype.apply.call(console[Se], console, yn); + } + } + var ie = {}; + function he(Se, Je) { + { + var Nt = Se.constructor, Dt = Nt && (Nt.displayName || Nt.name) || "ReactClass", Rr = Dt + "." + Je; + if (ie[Rr]) + return; + fe("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.", Je, Dt), ie[Rr] = !0; + } + } + var ye = { + /** + * Checks whether or not this composite component is mounted. + * @param {ReactClass} publicInstance The instance we want to test. + * @return {boolean} True if mounted, false otherwise. + * @protected + * @final + */ + isMounted: function(Se) { + return !1; + }, + /** + * Forces an update. This should only be invoked when it is known with + * certainty that we are **not** in a DOM transaction. + * + * You may want to call this when you know that some deeper aspect of the + * component's state has changed but `setState` was not called. + * + * This will not invoke `shouldComponentUpdate`, but it will invoke + * `componentWillUpdate` and `componentDidUpdate`. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {?function} callback Called after component is updated. + * @param {?string} callerName name of the calling function in the public API. + * @internal + */ + enqueueForceUpdate: function(Se, Je, Nt) { + he(Se, "forceUpdate"); + }, + /** + * Replaces all of the state. Always use this or `setState` to mutate state. + * You should treat `this.state` as immutable. + * + * There is no guarantee that `this.state` will be immediately updated, so + * accessing `this.state` after calling this method may return the old value. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} completeState Next state. + * @param {?function} callback Called after component is updated. + * @param {?string} callerName name of the calling function in the public API. + * @internal + */ + enqueueReplaceState: function(Se, Je, Nt, Dt) { + he(Se, "replaceState"); + }, + /** + * Sets a subset of the state. This only exists because _pendingState is + * internal. This provides a merging strategy that is not available to deep + * properties which is confusing. TODO: Expose pendingState or don't use it + * during the merge. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} partialState Next partial state to be merged with state. + * @param {?function} callback Called after component is updated. + * @param {?string} Name of the calling function in the public API. + * @internal + */ + enqueueSetState: function(Se, Je, Nt, Dt) { + he(Se, "setState"); + } + }, ke = Object.assign, Ne = {}; + Object.freeze(Ne); + function ze(Se, Je, Nt) { + this.props = Se, this.context = Je, this.refs = Ne, this.updater = Nt || ye; + } + ze.prototype.isReactComponent = {}, ze.prototype.setState = function(Se, Je) { + if (typeof Se != "object" && typeof Se != "function" && Se != null) + throw new Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables."); + this.updater.enqueueSetState(this, Se, Je, "setState"); + }, ze.prototype.forceUpdate = function(Se) { + this.updater.enqueueForceUpdate(this, Se, "forceUpdate"); + }; + { + var qe = { + isMounted: ["isMounted", "Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."], + replaceState: ["replaceState", "Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."] + }, We = function(Se, Je) { + Object.defineProperty(ze.prototype, Se, { + get: function() { + re("%s(...) is deprecated in plain JavaScript React classes. %s", Je[0], Je[1]); + } + }); + }; + for (var Qe in qe) + qe.hasOwnProperty(Qe) && We(Qe, qe[Qe]); + } + function je() { + } + je.prototype = ze.prototype; + function Ve(Se, Je, Nt) { + this.props = Se, this.context = Je, this.refs = Ne, this.updater = Nt || ye; + } + var Ye = Ve.prototype = new je(); + Ye.constructor = Ve, ke(Ye, ze.prototype), Ye.isPureReactComponent = !0; + function Pe() { + var Se = { + current: null + }; + return Object.seal(Se), Se; + } + var tt = Array.isArray; + function it(Se) { + return tt(Se); + } + function Tt(Se) { + { + var Je = typeof Symbol == "function" && Symbol.toStringTag, Nt = Je && Se[Symbol.toStringTag] || Se.constructor.name || "Object"; + return Nt; + } + } + function Pt(Se) { + try { + return Bt(Se), !1; + } catch { + return !0; + } + } + function Bt(Se) { + return "" + Se; + } + function Mr(Se) { + if (Pt(Se)) + return fe("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Tt(Se)), Bt(Se); + } + function ln(Se, Je, Nt) { + var Dt = Se.displayName; + if (Dt) + return Dt; + var Rr = Je.displayName || Je.name || ""; + return Rr !== "" ? Nt + "(" + Rr + ")" : Nt; + } + function zr(Se) { + return Se.displayName || "Context"; + } + function Or(Se) { + if (Se == null) + return null; + if (typeof Se.tag == "number" && fe("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof Se == "function") + return Se.displayName || Se.name || null; + if (typeof Se == "string") + return Se; + switch (Se) { + case a: + return "Fragment"; + case o: + return "Portal"; + case l: + return "Profiler"; + case s: + return "StrictMode"; + case p: + return "Suspense"; + case g: + return "SuspenseList"; + } + if (typeof Se == "object") + switch (Se.$$typeof) { + case f: + var Je = Se; + return zr(Je) + ".Consumer"; + case u: + var Nt = Se; + return zr(Nt._context) + ".Provider"; + case h: + return ln(Se, Se.render, "ForwardRef"); + case m: + var Dt = Se.displayName || null; + return Dt !== null ? Dt : Or(Se.type) || "Memo"; + case _: { + var Rr = Se, yn = Rr._payload, Qr = Rr._init; + try { + return Or(Qr(yn)); + } catch { + return null; + } + } + } + return null; + } + var ar = Object.prototype.hasOwnProperty, xr = { + key: !0, + ref: !0, + __self: !0, + __source: !0 + }, Nn, bt, lt; + lt = {}; + function at(Se) { + if (ar.call(Se, "ref")) { + var Je = Object.getOwnPropertyDescriptor(Se, "ref").get; + if (Je && Je.isReactWarning) + return !1; + } + return Se.ref !== void 0; + } + function yt(Se) { + if (ar.call(Se, "key")) { + var Je = Object.getOwnPropertyDescriptor(Se, "key").get; + if (Je && Je.isReactWarning) + return !1; + } + return Se.key !== void 0; + } + function Vt(Se, Je) { + var Nt = function() { + Nn || (Nn = !0, fe("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", Je)); + }; + Nt.isReactWarning = !0, Object.defineProperty(Se, "key", { + get: Nt, + configurable: !0 + }); + } + function Xt(Se, Je) { + var Nt = function() { + bt || (bt = !0, fe("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", Je)); + }; + Nt.isReactWarning = !0, Object.defineProperty(Se, "ref", { + get: Nt, + configurable: !0 + }); + } + function $t(Se) { + if (typeof Se.ref == "string" && M.current && Se.__self && M.current.stateNode !== Se.__self) { + var Je = Or(M.current.type); + lt[Je] || (fe('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', Je, Se.ref), lt[Je] = !0); + } + } + var pt = function(Se, Je, Nt, Dt, Rr, yn, Qr) { + var ii = { + // This tag allows us to uniquely identify this as a React Element + $$typeof: i, + // Built-in properties that belong on the element + type: Se, + key: Je, + ref: Nt, + props: Qr, + // Record the component responsible for creating this element. + _owner: yn + }; + return ii._store = {}, Object.defineProperty(ii._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: !1 + }), Object.defineProperty(ii, "_self", { + configurable: !1, + enumerable: !1, + writable: !1, + value: Dt + }), Object.defineProperty(ii, "_source", { + configurable: !1, + enumerable: !1, + writable: !1, + value: Rr + }), Object.freeze && (Object.freeze(ii.props), Object.freeze(ii)), ii; + }; + function kt(Se, Je, Nt) { + var Dt, Rr = {}, yn = null, Qr = null, ii = null, Ci = null; + if (Je != null) { + at(Je) && (Qr = Je.ref, $t(Je)), yt(Je) && (Mr(Je.key), yn = "" + Je.key), ii = Je.__self === void 0 ? null : Je.__self, Ci = Je.__source === void 0 ? null : Je.__source; + for (Dt in Je) + ar.call(Je, Dt) && !xr.hasOwnProperty(Dt) && (Rr[Dt] = Je[Dt]); + } + var wo = arguments.length - 2; + if (wo === 1) + Rr.children = Nt; + else if (wo > 1) { + for (var bi = Array(wo), zo = 0; zo < wo; zo++) + bi[zo] = arguments[zo + 2]; + Object.freeze && Object.freeze(bi), Rr.children = bi; + } + if (Se && Se.defaultProps) { + var Pi = Se.defaultProps; + for (Dt in Pi) + Rr[Dt] === void 0 && (Rr[Dt] = Pi[Dt]); + } + if (yn || Qr) { + var ha = typeof Se == "function" ? Se.displayName || Se.name || "Unknown" : Se; + yn && Vt(Rr, ha), Qr && Xt(Rr, ha); + } + return pt(Se, yn, Qr, ii, Ci, M.current, Rr); + } + function Jt(Se, Je) { + var Nt = pt(Se.type, Je, Se.ref, Se._self, Se._source, Se._owner, Se.props); + return Nt; + } + function wr(Se, Je, Nt) { + if (Se == null) + throw new Error("React.cloneElement(...): The argument must be a React element, but you passed " + Se + "."); + var Dt, Rr = ke({}, Se.props), yn = Se.key, Qr = Se.ref, ii = Se._self, Ci = Se._source, wo = Se._owner; + if (Je != null) { + at(Je) && (Qr = Je.ref, wo = M.current), yt(Je) && (Mr(Je.key), yn = "" + Je.key); + var bi; + Se.type && Se.type.defaultProps && (bi = Se.type.defaultProps); + for (Dt in Je) + ar.call(Je, Dt) && !xr.hasOwnProperty(Dt) && (Je[Dt] === void 0 && bi !== void 0 ? Rr[Dt] = bi[Dt] : Rr[Dt] = Je[Dt]); + } + var zo = arguments.length - 2; + if (zo === 1) + Rr.children = Nt; + else if (zo > 1) { + for (var Pi = Array(zo), ha = 0; ha < zo; ha++) + Pi[ha] = arguments[ha + 2]; + Rr.children = Pi; + } + return pt(Se.type, yn, Qr, ii, Ci, wo, Rr); + } + function Lr(Se) { + return typeof Se == "object" && Se !== null && Se.$$typeof === i; + } + var wn = ".", Bn = ":"; + function un(Se) { + var Je = /[=:]/g, Nt = { + "=": "=0", + ":": "=2" + }, Dt = Se.replace(Je, function(Rr) { + return Nt[Rr]; + }); + return "$" + Dt; + } + var Cn = !1, vi = /\/+/g; + function Xr(Se) { + return Se.replace(vi, "$&/"); + } + function Fr(Se, Je) { + return typeof Se == "object" && Se !== null && Se.key != null ? (Mr(Se.key), un("" + Se.key)) : Je.toString(36); + } + function xi(Se, Je, Nt, Dt, Rr) { + var yn = typeof Se; + (yn === "undefined" || yn === "boolean") && (Se = null); + var Qr = !1; + if (Se === null) + Qr = !0; + else + switch (yn) { + case "string": + case "number": + Qr = !0; + break; + case "object": + switch (Se.$$typeof) { + case i: + case o: + Qr = !0; + } + } + if (Qr) { + var ii = Se, Ci = Rr(ii), wo = Dt === "" ? wn + Fr(ii, 0) : Dt; + if (it(Ci)) { + var bi = ""; + wo != null && (bi = Xr(wo) + "/"), xi(Ci, Je, bi, "", function(Wd) { + return Wd; + }); + } else + Ci != null && (Lr(Ci) && (Ci.key && (!ii || ii.key !== Ci.key) && Mr(Ci.key), Ci = Jt( + Ci, + // Keep both the (mapped) and old keys if they differ, just as + // traverseAllChildren used to do for objects as children + Nt + // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key + (Ci.key && (!ii || ii.key !== Ci.key) ? ( + // $FlowFixMe Flow incorrectly thinks existing element's key can be a number + // eslint-disable-next-line react-internal/safe-string-coercion + Xr("" + Ci.key) + "/" + ) : "") + wo + )), Je.push(Ci)); + return 1; + } + var zo, Pi, ha = 0, Vi = Dt === "" ? wn : Dt + Bn; + if (it(Se)) + for (var mu = 0; mu < Se.length; mu++) + zo = Se[mu], Pi = Vi + Fr(zo, mu), ha += xi(zo, Je, Nt, Pi, Rr); + else { + var qu = N(Se); + if (typeof qu == "function") { + var Zc = Se; + qu === Zc.entries && (Cn || re("Using Maps as children is not supported. Use an array of keyed ReactElements instead."), Cn = !0); + for (var uo = qu.call(Zc), Ea, qd = 0; !(Ea = uo.next()).done; ) + zo = Ea.value, Pi = Vi + Fr(zo, qd++), ha += xi(zo, Je, Nt, Pi, Rr); + } else if (yn === "object") { + var Jc = String(Se); + throw new Error("Objects are not valid as a React child (found: " + (Jc === "[object Object]" ? "object with keys {" + Object.keys(Se).join(", ") + "}" : Jc) + "). If you meant to render a collection of children, use an array instead."); + } + } + return ha; + } + function On(Se, Je, Nt) { + if (Se == null) + return Se; + var Dt = [], Rr = 0; + return xi(Se, Dt, "", "", function(yn) { + return Je.call(Nt, yn, Rr++); + }), Dt; + } + function Ai(Se) { + var Je = 0; + return On(Se, function() { + Je++; + }), Je; + } + function Fn(Se, Je, Nt) { + On(Se, function() { + Je.apply(this, arguments); + }, Nt); + } + function vn(Se) { + return On(Se, function(Je) { + return Je; + }) || []; + } + function Wr(Se) { + if (!Lr(Se)) + throw new Error("React.Children.only expected to receive a single React element child."); + return Se; + } + function ur(Se) { + var Je = { + $$typeof: f, + // As a workaround to support multiple concurrent renderers, we categorize + // some renderers as primary and others as secondary. We only expect + // there to be two concurrent renderers at most: React Native (primary) and + // Fabric (secondary); React DOM (primary) and React ART (secondary). + // Secondary renderers store their context values on separate fields. + _currentValue: Se, + _currentValue2: Se, + // Used to track how many concurrent renderers this context currently + // supports within in a single renderer. Such as parallel server rendering. + _threadCount: 0, + // These are circular + Provider: null, + Consumer: null, + // Add these to use same hidden class in VM as ServerContext + _defaultValue: null, + _globalName: null + }; + Je.Provider = { + $$typeof: u, + _context: Je + }; + var Nt = !1, Dt = !1, Rr = !1; + { + var yn = { + $$typeof: f, + _context: Je + }; + Object.defineProperties(yn, { + Provider: { + get: function() { + return Dt || (Dt = !0, fe("Rendering is not supported and will be removed in a future major release. Did you mean to render instead?")), Je.Provider; + }, + set: function(Qr) { + Je.Provider = Qr; + } + }, + _currentValue: { + get: function() { + return Je._currentValue; + }, + set: function(Qr) { + Je._currentValue = Qr; + } + }, + _currentValue2: { + get: function() { + return Je._currentValue2; + }, + set: function(Qr) { + Je._currentValue2 = Qr; + } + }, + _threadCount: { + get: function() { + return Je._threadCount; + }, + set: function(Qr) { + Je._threadCount = Qr; + } + }, + Consumer: { + get: function() { + return Nt || (Nt = !0, fe("Rendering is not supported and will be removed in a future major release. Did you mean to render instead?")), Je.Consumer; + } + }, + displayName: { + get: function() { + return Je.displayName; + }, + set: function(Qr) { + Rr || (re("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.", Qr), Rr = !0); + } + } + }), Je.Consumer = yn; + } + return Je._currentRenderer = null, Je._currentRenderer2 = null, Je; + } + var Ni = -1, $o = 0, oi = 1, Fi = 2; + function So(Se) { + if (Se._status === Ni) { + var Je = Se._result, Nt = Je(); + if (Nt.then(function(yn) { + if (Se._status === $o || Se._status === Ni) { + var Qr = Se; + Qr._status = oi, Qr._result = yn; + } + }, function(yn) { + if (Se._status === $o || Se._status === Ni) { + var Qr = Se; + Qr._status = Fi, Qr._result = yn; + } + }), Se._status === Ni) { + var Dt = Se; + Dt._status = $o, Dt._result = Nt; + } + } + if (Se._status === oi) { + var Rr = Se._result; + return Rr === void 0 && fe(`lazy: Expected the result of a dynamic import() call. Instead received: %s + +Your code should look like: + const MyComponent = lazy(() => import('./MyComponent')) + +Did you accidentally put curly braces around the import?`, Rr), "default" in Rr || fe(`lazy: Expected the result of a dynamic import() call. Instead received: %s + +Your code should look like: + const MyComponent = lazy(() => import('./MyComponent'))`, Rr), Rr.default; + } else + throw Se._result; + } + function ao(Se) { + var Je = { + // We use these fields to store the result. + _status: Ni, + _result: Se + }, Nt = { + $$typeof: _, + _payload: Je, + _init: So + }; + { + var Dt, Rr; + Object.defineProperties(Nt, { + defaultProps: { + configurable: !0, + get: function() { + return Dt; + }, + set: function(yn) { + fe("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."), Dt = yn, Object.defineProperty(Nt, "defaultProps", { + enumerable: !0 + }); + } + }, + propTypes: { + configurable: !0, + get: function() { + return Rr; + }, + set: function(yn) { + fe("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."), Rr = yn, Object.defineProperty(Nt, "propTypes", { + enumerable: !0 + }); + } + } + }); + } + return Nt; + } + function ds(Se) { + Se != null && Se.$$typeof === m ? fe("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).") : typeof Se != "function" ? fe("forwardRef requires a render function but was given %s.", Se === null ? "null" : typeof Se) : Se.length !== 0 && Se.length !== 2 && fe("forwardRef render functions accept exactly two parameters: props and ref. %s", Se.length === 1 ? "Did you forget to use the ref parameter?" : "Any additional parameter will be undefined."), Se != null && (Se.defaultProps != null || Se.propTypes != null) && fe("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?"); + var Je = { + $$typeof: h, + render: Se + }; + { + var Nt; + Object.defineProperty(Je, "displayName", { + enumerable: !1, + configurable: !0, + get: function() { + return Nt; + }, + set: function(Dt) { + Nt = Dt, !Se.name && !Se.displayName && (Se.displayName = Dt); + } + }); + } + return Je; + } + var De; + De = Symbol.for("react.module.reference"); + function we(Se) { + return !!(typeof Se == "string" || typeof Se == "function" || Se === a || Se === l || J || Se === s || Se === p || Se === g || ae || Se === S || G || te || Q || typeof Se == "object" && Se !== null && (Se.$$typeof === _ || Se.$$typeof === m || Se.$$typeof === u || Se.$$typeof === f || Se.$$typeof === h || // This needs to include all possible module reference object + // types supported by any Flight configuration anywhere since + // we don't know which Flight build this will end up being used + // with. + Se.$$typeof === De || Se.getModuleId !== void 0)); + } + function Re(Se, Je) { + we(Se) || fe("memo: The first argument must be a component. Instead received: %s", Se === null ? "null" : typeof Se); + var Nt = { + $$typeof: m, + type: Se, + compare: Je === void 0 ? null : Je + }; + { + var Dt; + Object.defineProperty(Nt, "displayName", { + enumerable: !1, + configurable: !0, + get: function() { + return Dt; + }, + set: function(Rr) { + Dt = Rr, !Se.name && !Se.displayName && (Se.displayName = Rr); + } + }); + } + return Nt; + } + function _e() { + var Se = x.current; + return Se === null && fe(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: +1. You might have mismatching versions of React and the renderer (such as React DOM) +2. You might be breaking the Rules of Hooks +3. You might have more than one copy of React in the same app +See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.`), Se; + } + function Ae(Se) { + var Je = _e(); + if (Se._context !== void 0) { + var Nt = Se._context; + Nt.Consumer === Se ? fe("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?") : Nt.Provider === Se && fe("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?"); + } + return Je.useContext(Se); + } + function ge(Se) { + var Je = _e(); + return Je.useState(Se); + } + function Me(Se, Je, Nt) { + var Dt = _e(); + return Dt.useReducer(Se, Je, Nt); + } + function Ge(Se) { + var Je = _e(); + return Je.useRef(Se); + } + function nt(Se, Je) { + var Nt = _e(); + return Nt.useEffect(Se, Je); + } + function Xe(Se, Je) { + var Nt = _e(); + return Nt.useInsertionEffect(Se, Je); + } + function St(Se, Je) { + var Nt = _e(); + return Nt.useLayoutEffect(Se, Je); + } + function Qt(Se, Je) { + var Nt = _e(); + return Nt.useCallback(Se, Je); + } + function cn(Se, Je) { + var Nt = _e(); + return Nt.useMemo(Se, Je); + } + function Hr(Se, Je, Nt) { + var Dt = _e(); + return Dt.useImperativeHandle(Se, Je, Nt); + } + function Jr(Se, Je) { + { + var Nt = _e(); + return Nt.useDebugValue(Se, Je); + } + } + function tn() { + var Se = _e(); + return Se.useTransition(); + } + function Un(Se) { + var Je = _e(); + return Je.useDeferredValue(Se); + } + function Kr() { + var Se = _e(); + return Se.useId(); + } + function In(Se, Je, Nt) { + var Dt = _e(); + return Dt.useSyncExternalStore(Se, Je, Nt); + } + var Zi = 0, Ko, Gi, al, xo, gu, sl, Yo; + function Wi() { + } + Wi.__reactDisabledLog = !0; + function oa() { + { + if (Zi === 0) { + Ko = console.log, Gi = console.info, al = console.warn, xo = console.error, gu = console.group, sl = console.groupCollapsed, Yo = console.groupEnd; + var Se = { + configurable: !0, + enumerable: !0, + value: Wi, + writable: !0 + }; + Object.defineProperties(console, { + info: Se, + log: Se, + warn: Se, + error: Se, + group: Se, + groupCollapsed: Se, + groupEnd: Se + }); + } + Zi++; + } + } + function Xo() { + { + if (Zi--, Zi === 0) { + var Se = { + configurable: !0, + enumerable: !0, + writable: !0 + }; + Object.defineProperties(console, { + log: ke({}, Se, { + value: Ko + }), + info: ke({}, Se, { + value: Gi + }), + warn: ke({}, Se, { + value: al + }), + error: ke({}, Se, { + value: xo + }), + group: ke({}, Se, { + value: gu + }), + groupCollapsed: ke({}, Se, { + value: sl + }), + groupEnd: ke({}, Se, { + value: Yo + }) + }); + } + Zi < 0 && fe("disabledDepth fell below zero. This is a bug in React. Please file an issue."); + } + } + var Na = Y.ReactCurrentDispatcher, Bi; + function Es(Se, Je, Nt) { + { + if (Bi === void 0) + try { + throw Error(); + } catch (Rr) { + var Dt = Rr.stack.trim().match(/\n( *(at )?)/); + Bi = Dt && Dt[1] || ""; + } + return ` +` + Bi + Se; + } + } + var As = !1, ll; + { + var ul = typeof WeakMap == "function" ? WeakMap : Map; + ll = new ul(); + } + function ya(Se, Je) { + if (!Se || As) + return ""; + { + var Nt = ll.get(Se); + if (Nt !== void 0) + return Nt; + } + var Dt; + As = !0; + var Rr = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + var yn; + yn = Na.current, Na.current = null, oa(); + try { + if (Je) { + var Qr = function() { + throw Error(); + }; + if (Object.defineProperty(Qr.prototype, "props", { + set: function() { + throw Error(); + } + }), typeof Reflect == "object" && Reflect.construct) { + try { + Reflect.construct(Qr, []); + } catch (Vi) { + Dt = Vi; + } + Reflect.construct(Se, [], Qr); + } else { + try { + Qr.call(); + } catch (Vi) { + Dt = Vi; + } + Se.call(Qr.prototype); + } + } else { + try { + throw Error(); + } catch (Vi) { + Dt = Vi; + } + Se(); + } + } catch (Vi) { + if (Vi && Dt && typeof Vi.stack == "string") { + for (var ii = Vi.stack.split(` +`), Ci = Dt.stack.split(` +`), wo = ii.length - 1, bi = Ci.length - 1; wo >= 1 && bi >= 0 && ii[wo] !== Ci[bi]; ) + bi--; + for (; wo >= 1 && bi >= 0; wo--, bi--) + if (ii[wo] !== Ci[bi]) { + if (wo !== 1 || bi !== 1) + do + if (wo--, bi--, bi < 0 || ii[wo] !== Ci[bi]) { + var zo = ` +` + ii[wo].replace(" at new ", " at "); + return Se.displayName && zo.includes("") && (zo = zo.replace("", Se.displayName)), typeof Se == "function" && ll.set(Se, zo), zo; + } + while (wo >= 1 && bi >= 0); + break; + } + } + } finally { + As = !1, Na.current = yn, Xo(), Error.prepareStackTrace = Rr; + } + var Pi = Se ? Se.displayName || Se.name : "", ha = Pi ? Es(Pi) : ""; + return typeof Se == "function" && ll.set(Se, ha), ha; + } + function zs(Se, Je, Nt) { + return ya(Se, !1); + } + function Ec(Se) { + var Je = Se.prototype; + return !!(Je && Je.isReactComponent); + } + function _n(Se, Je, Nt) { + if (Se == null) + return ""; + if (typeof Se == "function") + return ya(Se, Ec(Se)); + if (typeof Se == "string") + return Es(Se); + switch (Se) { + case p: + return Es("Suspense"); + case g: + return Es("SuspenseList"); + } + if (typeof Se == "object") + switch (Se.$$typeof) { + case h: + return zs(Se.render); + case m: + return _n(Se.type, Je, Nt); + case _: { + var Dt = Se, Rr = Dt._payload, yn = Dt._init; + try { + return _n(yn(Rr), Je, Nt); + } catch { + } + } + } + return ""; + } + var ba = {}, _a = Y.ReactDebugCurrentFrame; + function Cl(Se) { + if (Se) { + var Je = Se._owner, Nt = _n(Se.type, Se._source, Je ? Je.type : null); + _a.setExtraStackFrame(Nt); + } else + _a.setExtraStackFrame(null); + } + function cl(Se, Je, Nt, Dt, Rr) { + { + var yn = Function.call.bind(ar); + for (var Qr in Se) + if (yn(Se, Qr)) { + var ii = void 0; + try { + if (typeof Se[Qr] != "function") { + var Ci = Error((Dt || "React class") + ": " + Nt + " type `" + Qr + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof Se[Qr] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."); + throw Ci.name = "Invariant Violation", Ci; + } + ii = Se[Qr](Je, Qr, Dt, Nt, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"); + } catch (wo) { + ii = wo; + } + ii && !(ii instanceof Error) && (Cl(Rr), fe("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", Dt || "React class", Nt, Qr, typeof ii), Cl(null)), ii instanceof Error && !(ii.message in ba) && (ba[ii.message] = !0, Cl(Rr), fe("Failed %s type: %s", Nt, ii.message), Cl(null)); + } + } + } + function ki(Se) { + if (Se) { + var Je = Se._owner, Nt = _n(Se.type, Se._source, Je ? Je.type : null); + z(Nt); + } else + z(null); + } + var fl; + fl = !1; + function Hu() { + if (M.current) { + var Se = Or(M.current.type); + if (Se) + return ` + +Check the render method of \`` + Se + "`."; + } + return ""; + } + function dn(Se) { + if (Se !== void 0) { + var Je = Se.fileName.replace(/^.*[\\\/]/, ""), Nt = Se.lineNumber; + return ` + +Check your code at ` + Je + ":" + Nt + "."; + } + return ""; + } + function Ol(Se) { + return Se != null ? dn(Se.__source) : ""; + } + var Ki = {}; + function Rl(Se) { + var Je = Hu(); + if (!Je) { + var Nt = typeof Se == "string" ? Se : Se.displayName || Se.name; + Nt && (Je = ` + +Check the top-level render call using <` + Nt + ">."); + } + return Je; + } + function hs(Se, Je) { + if (!(!Se._store || Se._store.validated || Se.key != null)) { + Se._store.validated = !0; + var Nt = Rl(Je); + if (!Ki[Nt]) { + Ki[Nt] = !0; + var Dt = ""; + Se && Se._owner && Se._owner !== M.current && (Dt = " It was passed a child from " + Or(Se._owner.type) + "."), ki(Se), fe('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', Nt, Dt), ki(null); + } + } + } + function Sc(Se, Je) { + if (typeof Se == "object") { + if (it(Se)) + for (var Nt = 0; Nt < Se.length; Nt++) { + var Dt = Se[Nt]; + Lr(Dt) && hs(Dt, Je); + } + else if (Lr(Se)) + Se._store && (Se._store.validated = !0); + else if (Se) { + var Rr = N(Se); + if (typeof Rr == "function" && Rr !== Se.entries) + for (var yn = Rr.call(Se), Qr; !(Qr = yn.next()).done; ) + Lr(Qr.value) && hs(Qr.value, Je); + } + } + } + function Po(Se) { + { + var Je = Se.type; + if (Je == null || typeof Je == "string") + return; + var Nt; + if (typeof Je == "function") + Nt = Je.propTypes; + else if (typeof Je == "object" && (Je.$$typeof === h || // Note: Memo only checks outer props here. + // Inner props are checked in the reconciler. + Je.$$typeof === m)) + Nt = Je.propTypes; + else + return; + if (Nt) { + var Dt = Or(Je); + cl(Nt, Se.props, "prop", Dt, Se); + } else if (Je.PropTypes !== void 0 && !fl) { + fl = !0; + var Rr = Or(Je); + fe("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", Rr || "Unknown"); + } + typeof Je.getDefaultProps == "function" && !Je.getDefaultProps.isReactClassApproved && fe("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead."); + } + } + function so(Se) { + { + for (var Je = Object.keys(Se.props), Nt = 0; Nt < Je.length; Nt++) { + var Dt = Je[Nt]; + if (Dt !== "children" && Dt !== "key") { + ki(Se), fe("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", Dt), ki(null); + break; + } + } + Se.ref !== null && (ki(Se), fe("Invalid attribute `ref` supplied to `React.Fragment`."), ki(null)); + } + } + function $f(Se, Je, Nt) { + var Dt = we(Se); + if (!Dt) { + var Rr = ""; + (Se === void 0 || typeof Se == "object" && Se !== null && Object.keys(Se).length === 0) && (Rr += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."); + var yn = Ol(Je); + yn ? Rr += yn : Rr += Hu(); + var Qr; + Se === null ? Qr = "null" : it(Se) ? Qr = "array" : Se !== void 0 && Se.$$typeof === i ? (Qr = "<" + (Or(Se.type) || "Unknown") + " />", Rr = " Did you accidentally export a JSX literal instead of a component?") : Qr = typeof Se, fe("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", Qr, Rr); + } + var ii = kt.apply(this, arguments); + if (ii == null) + return ii; + if (Dt) + for (var Ci = 2; Ci < arguments.length; Ci++) + Sc(arguments[Ci], Se); + return Se === a ? so(ii) : Po(ii), ii; + } + var da = !1; + function ks(Se) { + var Je = $f.bind(null, Se); + return Je.type = Se, da || (da = !0, re("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.")), Object.defineProperty(Je, "type", { + enumerable: !1, + get: function() { + return re("Factory.type is deprecated. Access the class directly before passing it to createFactory."), Object.defineProperty(this, "type", { + value: Se + }), Se; + } + }), Je; + } + function er(Se, Je, Nt) { + for (var Dt = wr.apply(this, arguments), Rr = 2; Rr < arguments.length; Rr++) + Sc(arguments[Rr], Dt.type); + return Po(Dt), Dt; + } + function Ar(Se, Je) { + var Nt = R.transition; + R.transition = {}; + var Dt = R.transition; + R.transition._updatedFibers = /* @__PURE__ */ new Set(); + try { + Se(); + } finally { + if (R.transition = Nt, Nt === null && Dt._updatedFibers) { + var Rr = Dt._updatedFibers.size; + Rr > 10 && re("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."), Dt._updatedFibers.clear(); + } + } + } + var Gn = !1, Kn = null; + function hn(Se) { + if (Kn === null) + try { + var Je = ("require" + Math.random()).slice(0, 7), Nt = e && e[Je]; + Kn = Nt.call(e, "timers").setImmediate; + } catch { + Kn = function(Rr) { + Gn === !1 && (Gn = !0, typeof MessageChannel > "u" && fe("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.")); + var yn = new MessageChannel(); + yn.port1.onmessage = Rr, yn.port2.postMessage(void 0); + }; + } + return Kn(Se); + } + var on = 0, $i = !1; + function lo(Se) { + { + var Je = on; + on++, D.current === null && (D.current = []); + var Nt = D.isBatchingLegacy, Dt; + try { + if (D.isBatchingLegacy = !0, Dt = Se(), !Nt && D.didScheduleLegacyUpdate) { + var Rr = D.current; + Rr !== null && (D.didScheduleLegacyUpdate = !1, xc(Rr)); + } + } catch (Pi) { + throw Qo(Je), Pi; + } finally { + D.isBatchingLegacy = Nt; + } + if (Dt !== null && typeof Dt == "object" && typeof Dt.then == "function") { + var yn = Dt, Qr = !1, ii = { + then: function(Pi, ha) { + Qr = !0, yn.then(function(Vi) { + Qo(Je), on === 0 ? Ss(Vi, Pi, ha) : Pi(Vi); + }, function(Vi) { + Qo(Je), ha(Vi); + }); + } + }; + return !$i && typeof Promise < "u" && Promise.resolve().then(function() { + }).then(function() { + Qr || ($i = !0, fe("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);")); + }), ii; + } else { + var Ci = Dt; + if (Qo(Je), on === 0) { + var wo = D.current; + wo !== null && (xc(wo), D.current = null); + var bi = { + then: function(Pi, ha) { + D.current === null ? (D.current = [], Ss(Ci, Pi, ha)) : Pi(Ci); + } + }; + return bi; + } else { + var zo = { + then: function(Pi, ha) { + Pi(Ci); + } + }; + return zo; + } + } + } + } + function Qo(Se) { + Se !== on - 1 && fe("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "), on = Se; + } + function Ss(Se, Je, Nt) { + { + var Dt = D.current; + if (Dt !== null) + try { + xc(Dt), hn(function() { + Dt.length === 0 ? (D.current = null, Je(Se)) : Ss(Se, Je, Nt); + }); + } catch (Rr) { + Nt(Rr); + } + else + Je(Se); + } + } + var ps = !1; + function xc(Se) { + if (!ps) { + ps = !0; + var Je = 0; + try { + for (; Je < Se.length; Je++) { + var Nt = Se[Je]; + do + Nt = Nt(!0); + while (Nt !== null); + } + Se.length = 0; + } catch (Dt) { + throw Se = Se.slice(Je + 1), Dt; + } finally { + ps = !1; + } + } + } + var wc = $f, Pf = er, jo = ks, Hd = { + map: On, + forEach: Fn, + count: Ai, + toArray: vn, + only: Wr + }; + t.Children = Hd, t.Component = ze, t.Fragment = a, t.Profiler = l, t.PureComponent = Ve, t.StrictMode = s, t.Suspense = p, t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Y, t.cloneElement = Pf, t.createContext = ur, t.createElement = wc, t.createFactory = jo, t.createRef = Pe, t.forwardRef = ds, t.isValidElement = Lr, t.lazy = ao, t.memo = Re, t.startTransition = Ar, t.unstable_act = lo, t.useCallback = Qt, t.useContext = Ae, t.useDebugValue = Jr, t.useDeferredValue = Un, t.useEffect = nt, t.useId = Kr, t.useImperativeHandle = Hr, t.useInsertionEffect = Xe, t.useLayoutEffect = St, t.useMemo = cn, t.useReducer = Me, t.useRef = Ge, t.useState = ge, t.useSyncExternalStore = In, t.useTransition = tn, t.version = n, typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error()); + }(); + }(NR, NR.exports)), NR.exports; +} +var ta = {}; +/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var toe; +function MFe() { + if (toe) + return ta; + toe = 1; + var e = Symbol.for("react.element"), t = Symbol.for("react.portal"), r = Symbol.for("react.fragment"), n = Symbol.for("react.strict_mode"), i = Symbol.for("react.profiler"), o = Symbol.for("react.provider"), a = Symbol.for("react.context"), s = Symbol.for("react.forward_ref"), l = Symbol.for("react.suspense"), u = Symbol.for("react.memo"), f = Symbol.for("react.lazy"), h = Symbol.iterator; + function p(ie) { + return ie === null || typeof ie != "object" ? null : (ie = h && ie[h] || ie["@@iterator"], typeof ie == "function" ? ie : null); + } + var g = { isMounted: function() { + return !1; + }, enqueueForceUpdate: function() { + }, enqueueReplaceState: function() { + }, enqueueSetState: function() { + } }, m = Object.assign, _ = {}; + function S(ie, he, ye) { + this.props = ie, this.context = he, this.refs = _, this.updater = ye || g; + } + S.prototype.isReactComponent = {}, S.prototype.setState = function(ie, he) { + if (typeof ie != "object" && typeof ie != "function" && ie != null) + throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables."); + this.updater.enqueueSetState(this, ie, he, "setState"); + }, S.prototype.forceUpdate = function(ie) { + this.updater.enqueueForceUpdate(this, ie, "forceUpdate"); + }; + function A() { + } + A.prototype = S.prototype; + function C(ie, he, ye) { + this.props = ie, this.context = he, this.refs = _, this.updater = ye || g; + } + var N = C.prototype = new A(); + N.constructor = C, m(N, S.prototype), N.isPureReactComponent = !0; + var x = Array.isArray, R = Object.prototype.hasOwnProperty, D = { current: null }, M = { key: !0, ref: !0, __self: !0, __source: !0 }; + function j(ie, he, ye) { + var ke, Ne = {}, ze = null, qe = null; + if (he != null) + for (ke in he.ref !== void 0 && (qe = he.ref), he.key !== void 0 && (ze = "" + he.key), he) + R.call(he, ke) && !M.hasOwnProperty(ke) && (Ne[ke] = he[ke]); + var We = arguments.length - 2; + if (We === 1) + Ne.children = ye; + else if (1 < We) { + for (var Qe = Array(We), je = 0; je < We; je++) + Qe[je] = arguments[je + 2]; + Ne.children = Qe; + } + if (ie && ie.defaultProps) + for (ke in We = ie.defaultProps, We) + Ne[ke] === void 0 && (Ne[ke] = We[ke]); + return { $$typeof: e, type: ie, key: ze, ref: qe, props: Ne, _owner: D.current }; + } + function F(ie, he) { + return { $$typeof: e, type: ie.type, key: he, ref: ie.ref, props: ie.props, _owner: ie._owner }; + } + function z(ie) { + return typeof ie == "object" && ie !== null && ie.$$typeof === e; + } + function G(ie) { + var he = { "=": "=0", ":": "=2" }; + return "$" + ie.replace(/[=:]/g, function(ye) { + return he[ye]; + }); + } + var te = /\/+/g; + function Q(ie, he) { + return typeof ie == "object" && ie !== null && ie.key != null ? G("" + ie.key) : he.toString(36); + } + function ae(ie, he, ye, ke, Ne) { + var ze = typeof ie; + (ze === "undefined" || ze === "boolean") && (ie = null); + var qe = !1; + if (ie === null) + qe = !0; + else + switch (ze) { + case "string": + case "number": + qe = !0; + break; + case "object": + switch (ie.$$typeof) { + case e: + case t: + qe = !0; + } + } + if (qe) + return qe = ie, Ne = Ne(qe), ie = ke === "" ? "." + Q(qe, 0) : ke, x(Ne) ? (ye = "", ie != null && (ye = ie.replace(te, "$&/") + "/"), ae(Ne, he, ye, "", function(je) { + return je; + })) : Ne != null && (z(Ne) && (Ne = F(Ne, ye + (!Ne.key || qe && qe.key === Ne.key ? "" : ("" + Ne.key).replace(te, "$&/") + "/") + ie)), he.push(Ne)), 1; + if (qe = 0, ke = ke === "" ? "." : ke + ":", x(ie)) + for (var We = 0; We < ie.length; We++) { + ze = ie[We]; + var Qe = ke + Q(ze, We); + qe += ae(ze, he, ye, Qe, Ne); + } + else if (Qe = p(ie), typeof Qe == "function") + for (ie = Qe.call(ie), We = 0; !(ze = ie.next()).done; ) + ze = ze.value, Qe = ke + Q(ze, We++), qe += ae(ze, he, ye, Qe, Ne); + else if (ze === "object") + throw he = String(ie), Error("Objects are not valid as a React child (found: " + (he === "[object Object]" ? "object with keys {" + Object.keys(ie).join(", ") + "}" : he) + "). If you meant to render a collection of children, use an array instead."); + return qe; + } + function J(ie, he, ye) { + if (ie == null) + return ie; + var ke = [], Ne = 0; + return ae(ie, ke, "", "", function(ze) { + return he.call(ye, ze, Ne++); + }), ke; + } + function Y(ie) { + if (ie._status === -1) { + var he = ie._result; + he = he(), he.then(function(ye) { + (ie._status === 0 || ie._status === -1) && (ie._status = 1, ie._result = ye); + }, function(ye) { + (ie._status === 0 || ie._status === -1) && (ie._status = 2, ie._result = ye); + }), ie._status === -1 && (ie._status = 0, ie._result = he); + } + if (ie._status === 1) + return ie._result.default; + throw ie._result; + } + var re = { current: null }, fe = { transition: null }, ve = { ReactCurrentDispatcher: re, ReactCurrentBatchConfig: fe, ReactCurrentOwner: D }; + return ta.Children = { map: J, forEach: function(ie, he, ye) { + J(ie, function() { + he.apply(this, arguments); + }, ye); + }, count: function(ie) { + var he = 0; + return J(ie, function() { + he++; + }), he; + }, toArray: function(ie) { + return J(ie, function(he) { + return he; + }) || []; + }, only: function(ie) { + if (!z(ie)) + throw Error("React.Children.only expected to receive a single React element child."); + return ie; + } }, ta.Component = S, ta.Fragment = r, ta.Profiler = i, ta.PureComponent = C, ta.StrictMode = n, ta.Suspense = l, ta.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ve, ta.cloneElement = function(ie, he, ye) { + if (ie == null) + throw Error("React.cloneElement(...): The argument must be a React element, but you passed " + ie + "."); + var ke = m({}, ie.props), Ne = ie.key, ze = ie.ref, qe = ie._owner; + if (he != null) { + if (he.ref !== void 0 && (ze = he.ref, qe = D.current), he.key !== void 0 && (Ne = "" + he.key), ie.type && ie.type.defaultProps) + var We = ie.type.defaultProps; + for (Qe in he) + R.call(he, Qe) && !M.hasOwnProperty(Qe) && (ke[Qe] = he[Qe] === void 0 && We !== void 0 ? We[Qe] : he[Qe]); + } + var Qe = arguments.length - 2; + if (Qe === 1) + ke.children = ye; + else if (1 < Qe) { + We = Array(Qe); + for (var je = 0; je < Qe; je++) + We[je] = arguments[je + 2]; + ke.children = We; + } + return { $$typeof: e, type: ie.type, key: Ne, ref: ze, props: ke, _owner: qe }; + }, ta.createContext = function(ie) { + return ie = { $$typeof: a, _currentValue: ie, _currentValue2: ie, _threadCount: 0, Provider: null, Consumer: null, _defaultValue: null, _globalName: null }, ie.Provider = { $$typeof: o, _context: ie }, ie.Consumer = ie; + }, ta.createElement = j, ta.createFactory = function(ie) { + var he = j.bind(null, ie); + return he.type = ie, he; + }, ta.createRef = function() { + return { current: null }; + }, ta.forwardRef = function(ie) { + return { $$typeof: s, render: ie }; + }, ta.isValidElement = z, ta.lazy = function(ie) { + return { $$typeof: f, _payload: { _status: -1, _result: ie }, _init: Y }; + }, ta.memo = function(ie, he) { + return { $$typeof: u, type: ie, compare: he === void 0 ? null : he }; + }, ta.startTransition = function(ie) { + var he = fe.transition; + fe.transition = {}; + try { + ie(); + } finally { + fe.transition = he; + } + }, ta.unstable_act = function() { + throw Error("act(...) is not supported in production builds of React."); + }, ta.useCallback = function(ie, he) { + return re.current.useCallback(ie, he); + }, ta.useContext = function(ie) { + return re.current.useContext(ie); + }, ta.useDebugValue = function() { + }, ta.useDeferredValue = function(ie) { + return re.current.useDeferredValue(ie); + }, ta.useEffect = function(ie, he) { + return re.current.useEffect(ie, he); + }, ta.useId = function() { + return re.current.useId(); + }, ta.useImperativeHandle = function(ie, he, ye) { + return re.current.useImperativeHandle(ie, he, ye); + }, ta.useInsertionEffect = function(ie, he) { + return re.current.useInsertionEffect(ie, he); + }, ta.useLayoutEffect = function(ie, he) { + return re.current.useLayoutEffect(ie, he); + }, ta.useMemo = function(ie, he) { + return re.current.useMemo(ie, he); + }, ta.useReducer = function(ie, he, ye) { + return re.current.useReducer(ie, he, ye); + }, ta.useRef = function(ie) { + return re.current.useRef(ie); + }, ta.useState = function(ie) { + return re.current.useState(ie); + }, ta.useSyncExternalStore = function(ie, he, ye) { + return re.current.useSyncExternalStore(ie, he, ye); + }, ta.useTransition = function() { + return re.current.useTransition(); + }, ta.version = "18.2.0", ta; +} +var LFe = {}; +LFe.NODE_ENV === "production" ? fG.exports = MFe() : fG.exports = DFe(); +var W = fG.exports; +const Oe = /* @__PURE__ */ fa(W), DN = /* @__PURE__ */ Pbe({ + __proto__: null, + default: Oe +}, [W]); +var roe; +function FFe() { + if (roe) + return KO; + roe = 1; + var e = {}; + /** + * @license React + * react-jsx-runtime.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + return e.NODE_ENV !== "production" && function() { + var t = W, r = Symbol.for("react.element"), n = Symbol.for("react.portal"), i = Symbol.for("react.fragment"), o = Symbol.for("react.strict_mode"), a = Symbol.for("react.profiler"), s = Symbol.for("react.provider"), l = Symbol.for("react.context"), u = Symbol.for("react.forward_ref"), f = Symbol.for("react.suspense"), h = Symbol.for("react.suspense_list"), p = Symbol.for("react.memo"), g = Symbol.for("react.lazy"), m = Symbol.for("react.offscreen"), _ = Symbol.iterator, S = "@@iterator"; + function A(De) { + if (De === null || typeof De != "object") + return null; + var we = _ && De[_] || De[S]; + return typeof we == "function" ? we : null; + } + var C = t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; + function N(De) { + { + for (var we = arguments.length, Re = new Array(we > 1 ? we - 1 : 0), _e = 1; _e < we; _e++) + Re[_e - 1] = arguments[_e]; + x("error", De, Re); + } + } + function x(De, we, Re) { + { + var _e = C.ReactDebugCurrentFrame, Ae = _e.getStackAddendum(); + Ae !== "" && (we += "%s", Re = Re.concat([Ae])); + var ge = Re.map(function(Me) { + return String(Me); + }); + ge.unshift("Warning: " + we), Function.prototype.apply.call(console[De], console, ge); + } + } + var R = !1, D = !1, M = !1, j = !1, F = !1, z; + z = Symbol.for("react.module.reference"); + function G(De) { + return !!(typeof De == "string" || typeof De == "function" || De === i || De === a || F || De === o || De === f || De === h || j || De === m || R || D || M || typeof De == "object" && De !== null && (De.$$typeof === g || De.$$typeof === p || De.$$typeof === s || De.$$typeof === l || De.$$typeof === u || // This needs to include all possible module reference object + // types supported by any Flight configuration anywhere since + // we don't know which Flight build this will end up being used + // with. + De.$$typeof === z || De.getModuleId !== void 0)); + } + function te(De, we, Re) { + var _e = De.displayName; + if (_e) + return _e; + var Ae = we.displayName || we.name || ""; + return Ae !== "" ? Re + "(" + Ae + ")" : Re; + } + function Q(De) { + return De.displayName || "Context"; + } + function ae(De) { + if (De == null) + return null; + if (typeof De.tag == "number" && N("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof De == "function") + return De.displayName || De.name || null; + if (typeof De == "string") + return De; + switch (De) { + case i: + return "Fragment"; + case n: + return "Portal"; + case a: + return "Profiler"; + case o: + return "StrictMode"; + case f: + return "Suspense"; + case h: + return "SuspenseList"; + } + if (typeof De == "object") + switch (De.$$typeof) { + case l: + var we = De; + return Q(we) + ".Consumer"; + case s: + var Re = De; + return Q(Re._context) + ".Provider"; + case u: + return te(De, De.render, "ForwardRef"); + case p: + var _e = De.displayName || null; + return _e !== null ? _e : ae(De.type) || "Memo"; + case g: { + var Ae = De, ge = Ae._payload, Me = Ae._init; + try { + return ae(Me(ge)); + } catch { + return null; + } + } + } + return null; + } + var J = Object.assign, Y = 0, re, fe, ve, ie, he, ye, ke; + function Ne() { + } + Ne.__reactDisabledLog = !0; + function ze() { + { + if (Y === 0) { + re = console.log, fe = console.info, ve = console.warn, ie = console.error, he = console.group, ye = console.groupCollapsed, ke = console.groupEnd; + var De = { + configurable: !0, + enumerable: !0, + value: Ne, + writable: !0 + }; + Object.defineProperties(console, { + info: De, + log: De, + warn: De, + error: De, + group: De, + groupCollapsed: De, + groupEnd: De + }); + } + Y++; + } + } + function qe() { + { + if (Y--, Y === 0) { + var De = { + configurable: !0, + enumerable: !0, + writable: !0 + }; + Object.defineProperties(console, { + log: J({}, De, { + value: re + }), + info: J({}, De, { + value: fe + }), + warn: J({}, De, { + value: ve + }), + error: J({}, De, { + value: ie + }), + group: J({}, De, { + value: he + }), + groupCollapsed: J({}, De, { + value: ye + }), + groupEnd: J({}, De, { + value: ke + }) + }); + } + Y < 0 && N("disabledDepth fell below zero. This is a bug in React. Please file an issue."); + } + } + var We = C.ReactCurrentDispatcher, Qe; + function je(De, we, Re) { + { + if (Qe === void 0) + try { + throw Error(); + } catch (Ae) { + var _e = Ae.stack.trim().match(/\n( *(at )?)/); + Qe = _e && _e[1] || ""; + } + return ` +` + Qe + De; + } + } + var Ve = !1, Ye; + { + var Pe = typeof WeakMap == "function" ? WeakMap : Map; + Ye = new Pe(); + } + function tt(De, we) { + if (!De || Ve) + return ""; + { + var Re = Ye.get(De); + if (Re !== void 0) + return Re; + } + var _e; + Ve = !0; + var Ae = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + var ge; + ge = We.current, We.current = null, ze(); + try { + if (we) { + var Me = function() { + throw Error(); + }; + if (Object.defineProperty(Me.prototype, "props", { + set: function() { + throw Error(); + } + }), typeof Reflect == "object" && Reflect.construct) { + try { + Reflect.construct(Me, []); + } catch (Jr) { + _e = Jr; + } + Reflect.construct(De, [], Me); + } else { + try { + Me.call(); + } catch (Jr) { + _e = Jr; + } + De.call(Me.prototype); + } + } else { + try { + throw Error(); + } catch (Jr) { + _e = Jr; + } + De(); + } + } catch (Jr) { + if (Jr && _e && typeof Jr.stack == "string") { + for (var Ge = Jr.stack.split(` +`), nt = _e.stack.split(` +`), Xe = Ge.length - 1, St = nt.length - 1; Xe >= 1 && St >= 0 && Ge[Xe] !== nt[St]; ) + St--; + for (; Xe >= 1 && St >= 0; Xe--, St--) + if (Ge[Xe] !== nt[St]) { + if (Xe !== 1 || St !== 1) + do + if (Xe--, St--, St < 0 || Ge[Xe] !== nt[St]) { + var Qt = ` +` + Ge[Xe].replace(" at new ", " at "); + return De.displayName && Qt.includes("") && (Qt = Qt.replace("", De.displayName)), typeof De == "function" && Ye.set(De, Qt), Qt; + } + while (Xe >= 1 && St >= 0); + break; + } + } + } finally { + Ve = !1, We.current = ge, qe(), Error.prepareStackTrace = Ae; + } + var cn = De ? De.displayName || De.name : "", Hr = cn ? je(cn) : ""; + return typeof De == "function" && Ye.set(De, Hr), Hr; + } + function it(De, we, Re) { + return tt(De, !1); + } + function Tt(De) { + var we = De.prototype; + return !!(we && we.isReactComponent); + } + function Pt(De, we, Re) { + if (De == null) + return ""; + if (typeof De == "function") + return tt(De, Tt(De)); + if (typeof De == "string") + return je(De); + switch (De) { + case f: + return je("Suspense"); + case h: + return je("SuspenseList"); + } + if (typeof De == "object") + switch (De.$$typeof) { + case u: + return it(De.render); + case p: + return Pt(De.type, we, Re); + case g: { + var _e = De, Ae = _e._payload, ge = _e._init; + try { + return Pt(ge(Ae), we, Re); + } catch { + } + } + } + return ""; + } + var Bt = Object.prototype.hasOwnProperty, Mr = {}, ln = C.ReactDebugCurrentFrame; + function zr(De) { + if (De) { + var we = De._owner, Re = Pt(De.type, De._source, we ? we.type : null); + ln.setExtraStackFrame(Re); + } else + ln.setExtraStackFrame(null); + } + function Or(De, we, Re, _e, Ae) { + { + var ge = Function.call.bind(Bt); + for (var Me in De) + if (ge(De, Me)) { + var Ge = void 0; + try { + if (typeof De[Me] != "function") { + var nt = Error((_e || "React class") + ": " + Re + " type `" + Me + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof De[Me] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."); + throw nt.name = "Invariant Violation", nt; + } + Ge = De[Me](we, Me, _e, Re, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"); + } catch (Xe) { + Ge = Xe; + } + Ge && !(Ge instanceof Error) && (zr(Ae), N("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", _e || "React class", Re, Me, typeof Ge), zr(null)), Ge instanceof Error && !(Ge.message in Mr) && (Mr[Ge.message] = !0, zr(Ae), N("Failed %s type: %s", Re, Ge.message), zr(null)); + } + } + } + var ar = Array.isArray; + function xr(De) { + return ar(De); + } + function Nn(De) { + { + var we = typeof Symbol == "function" && Symbol.toStringTag, Re = we && De[Symbol.toStringTag] || De.constructor.name || "Object"; + return Re; + } + } + function bt(De) { + try { + return lt(De), !1; + } catch { + return !0; + } + } + function lt(De) { + return "" + De; + } + function at(De) { + if (bt(De)) + return N("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Nn(De)), lt(De); + } + var yt = C.ReactCurrentOwner, Vt = { + key: !0, + ref: !0, + __self: !0, + __source: !0 + }, Xt, $t, pt; + pt = {}; + function kt(De) { + if (Bt.call(De, "ref")) { + var we = Object.getOwnPropertyDescriptor(De, "ref").get; + if (we && we.isReactWarning) + return !1; + } + return De.ref !== void 0; + } + function Jt(De) { + if (Bt.call(De, "key")) { + var we = Object.getOwnPropertyDescriptor(De, "key").get; + if (we && we.isReactWarning) + return !1; + } + return De.key !== void 0; + } + function wr(De, we) { + if (typeof De.ref == "string" && yt.current && we && yt.current.stateNode !== we) { + var Re = ae(yt.current.type); + pt[Re] || (N('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', ae(yt.current.type), De.ref), pt[Re] = !0); + } + } + function Lr(De, we) { + { + var Re = function() { + Xt || (Xt = !0, N("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", we)); + }; + Re.isReactWarning = !0, Object.defineProperty(De, "key", { + get: Re, + configurable: !0 + }); + } + } + function wn(De, we) { + { + var Re = function() { + $t || ($t = !0, N("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", we)); + }; + Re.isReactWarning = !0, Object.defineProperty(De, "ref", { + get: Re, + configurable: !0 + }); + } + } + var Bn = function(De, we, Re, _e, Ae, ge, Me) { + var Ge = { + // This tag allows us to uniquely identify this as a React Element + $$typeof: r, + // Built-in properties that belong on the element + type: De, + key: we, + ref: Re, + props: Me, + // Record the component responsible for creating this element. + _owner: ge + }; + return Ge._store = {}, Object.defineProperty(Ge._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: !1 + }), Object.defineProperty(Ge, "_self", { + configurable: !1, + enumerable: !1, + writable: !1, + value: _e + }), Object.defineProperty(Ge, "_source", { + configurable: !1, + enumerable: !1, + writable: !1, + value: Ae + }), Object.freeze && (Object.freeze(Ge.props), Object.freeze(Ge)), Ge; + }; + function un(De, we, Re, _e, Ae) { + { + var ge, Me = {}, Ge = null, nt = null; + Re !== void 0 && (at(Re), Ge = "" + Re), Jt(we) && (at(we.key), Ge = "" + we.key), kt(we) && (nt = we.ref, wr(we, Ae)); + for (ge in we) + Bt.call(we, ge) && !Vt.hasOwnProperty(ge) && (Me[ge] = we[ge]); + if (De && De.defaultProps) { + var Xe = De.defaultProps; + for (ge in Xe) + Me[ge] === void 0 && (Me[ge] = Xe[ge]); + } + if (Ge || nt) { + var St = typeof De == "function" ? De.displayName || De.name || "Unknown" : De; + Ge && Lr(Me, St), nt && wn(Me, St); + } + return Bn(De, Ge, nt, Ae, _e, yt.current, Me); + } + } + var Cn = C.ReactCurrentOwner, vi = C.ReactDebugCurrentFrame; + function Xr(De) { + if (De) { + var we = De._owner, Re = Pt(De.type, De._source, we ? we.type : null); + vi.setExtraStackFrame(Re); + } else + vi.setExtraStackFrame(null); + } + var Fr; + Fr = !1; + function xi(De) { + return typeof De == "object" && De !== null && De.$$typeof === r; + } + function On() { + { + if (Cn.current) { + var De = ae(Cn.current.type); + if (De) + return ` + +Check the render method of \`` + De + "`."; + } + return ""; + } + } + function Ai(De) { + { + if (De !== void 0) { + var we = De.fileName.replace(/^.*[\\\/]/, ""), Re = De.lineNumber; + return ` + +Check your code at ` + we + ":" + Re + "."; + } + return ""; + } + } + var Fn = {}; + function vn(De) { + { + var we = On(); + if (!we) { + var Re = typeof De == "string" ? De : De.displayName || De.name; + Re && (we = ` + +Check the top-level render call using <` + Re + ">."); + } + return we; + } + } + function Wr(De, we) { + { + if (!De._store || De._store.validated || De.key != null) + return; + De._store.validated = !0; + var Re = vn(we); + if (Fn[Re]) + return; + Fn[Re] = !0; + var _e = ""; + De && De._owner && De._owner !== Cn.current && (_e = " It was passed a child from " + ae(De._owner.type) + "."), Xr(De), N('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', Re, _e), Xr(null); + } + } + function ur(De, we) { + { + if (typeof De != "object") + return; + if (xr(De)) + for (var Re = 0; Re < De.length; Re++) { + var _e = De[Re]; + xi(_e) && Wr(_e, we); + } + else if (xi(De)) + De._store && (De._store.validated = !0); + else if (De) { + var Ae = A(De); + if (typeof Ae == "function" && Ae !== De.entries) + for (var ge = Ae.call(De), Me; !(Me = ge.next()).done; ) + xi(Me.value) && Wr(Me.value, we); + } + } + } + function Ni(De) { + { + var we = De.type; + if (we == null || typeof we == "string") + return; + var Re; + if (typeof we == "function") + Re = we.propTypes; + else if (typeof we == "object" && (we.$$typeof === u || // Note: Memo only checks outer props here. + // Inner props are checked in the reconciler. + we.$$typeof === p)) + Re = we.propTypes; + else + return; + if (Re) { + var _e = ae(we); + Or(Re, De.props, "prop", _e, De); + } else if (we.PropTypes !== void 0 && !Fr) { + Fr = !0; + var Ae = ae(we); + N("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", Ae || "Unknown"); + } + typeof we.getDefaultProps == "function" && !we.getDefaultProps.isReactClassApproved && N("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead."); + } + } + function $o(De) { + { + for (var we = Object.keys(De.props), Re = 0; Re < we.length; Re++) { + var _e = we[Re]; + if (_e !== "children" && _e !== "key") { + Xr(De), N("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", _e), Xr(null); + break; + } + } + De.ref !== null && (Xr(De), N("Invalid attribute `ref` supplied to `React.Fragment`."), Xr(null)); + } + } + function oi(De, we, Re, _e, Ae, ge) { + { + var Me = G(De); + if (!Me) { + var Ge = ""; + (De === void 0 || typeof De == "object" && De !== null && Object.keys(De).length === 0) && (Ge += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."); + var nt = Ai(Ae); + nt ? Ge += nt : Ge += On(); + var Xe; + De === null ? Xe = "null" : xr(De) ? Xe = "array" : De !== void 0 && De.$$typeof === r ? (Xe = "<" + (ae(De.type) || "Unknown") + " />", Ge = " Did you accidentally export a JSX literal instead of a component?") : Xe = typeof De, N("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", Xe, Ge); + } + var St = un(De, we, Re, Ae, ge); + if (St == null) + return St; + if (Me) { + var Qt = we.children; + if (Qt !== void 0) + if (_e) + if (xr(Qt)) { + for (var cn = 0; cn < Qt.length; cn++) + ur(Qt[cn], De); + Object.freeze && Object.freeze(Qt); + } else + N("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."); + else + ur(Qt, De); + } + return De === i ? $o(St) : Ni(St), St; + } + } + function Fi(De, we, Re) { + return oi(De, we, Re, !0); + } + function So(De, we, Re) { + return oi(De, we, Re, !1); + } + var ao = So, ds = Fi; + KO.Fragment = i, KO.jsx = ao, KO.jsxs = ds; + }(), KO; +} +var YO = {}; +/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var noe; +function BFe() { + if (noe) + return YO; + noe = 1; + var e = W, t = Symbol.for("react.element"), r = Symbol.for("react.fragment"), n = Object.prototype.hasOwnProperty, i = e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, o = { key: !0, ref: !0, __self: !0, __source: !0 }; + function a(s, l, u) { + var f, h = {}, p = null, g = null; + u !== void 0 && (p = "" + u), l.key !== void 0 && (p = "" + l.key), l.ref !== void 0 && (g = l.ref); + for (f in l) + n.call(l, f) && !o.hasOwnProperty(f) && (h[f] = l[f]); + if (s && s.defaultProps) + for (f in l = s.defaultProps, l) + h[f] === void 0 && (h[f] = l[f]); + return { $$typeof: t, type: s, key: p, ref: g, props: h, _owner: i.current }; + } + return YO.Fragment = r, YO.jsx = a, YO.jsxs = a, YO; +} +var $Fe = {}; +$Fe.NODE_ENV === "production" ? cG.exports = BFe() : cG.exports = FFe(); +var ee = cG.exports; +const PFe = /* @__PURE__ */ fa(ee), jFe = /* @__PURE__ */ Pbe({ + __proto__: null, + default: PFe +}, [ee]); +var ioe = {}, BM = void 0; +try { + BM = window; +} catch { +} +function uQ(e, t) { + if (typeof BM < "u") { + var r = BM.__packages__ = BM.__packages__ || {}; + if (!r[e] || !ioe[e]) { + ioe[e] = t; + var n = r[e] = r[e] || []; + n.push(t); + } + } +} +uQ("@fluentui/set-version", "6.0.0"); +var dG = function(e, t) { + return dG = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, n) { + r.__proto__ = n; + } || function(r, n) { + for (var i in n) + Object.prototype.hasOwnProperty.call(n, i) && (r[i] = n[i]); + }, dG(e, t); +}; +function fy(e, t) { + if (typeof t != "function" && t !== null) + throw new TypeError("Class extends value " + String(t) + " is not a constructor or null"); + dG(e, t); + function r() { + this.constructor = e; + } + e.prototype = t === null ? Object.create(t) : (r.prototype = t.prototype, new r()); +} +var Ht = function() { + return Ht = Object.assign || function(t) { + for (var r, n = 1, i = arguments.length; n < i; n++) { + r = arguments[n]; + for (var o in r) + Object.prototype.hasOwnProperty.call(r, o) && (t[o] = r[o]); + } + return t; + }, Ht.apply(this, arguments); +}; +function jk(e, t) { + var r = {}; + for (var n in e) + Object.prototype.hasOwnProperty.call(e, n) && t.indexOf(n) < 0 && (r[n] = e[n]); + if (e != null && typeof Object.getOwnPropertySymbols == "function") + for (var i = 0, n = Object.getOwnPropertySymbols(e); i < n.length; i++) + t.indexOf(n[i]) < 0 && Object.prototype.propertyIsEnumerable.call(e, n[i]) && (r[n[i]] = e[n[i]]); + return r; +} +function zFe(e, t, r, n) { + var i = arguments.length, o = i < 3 ? t : n === null ? n = Object.getOwnPropertyDescriptor(t, r) : n, a; + if (typeof Reflect == "object" && typeof Reflect.decorate == "function") + o = Reflect.decorate(e, t, r, n); + else + for (var s = e.length - 1; s >= 0; s--) + (a = e[s]) && (o = (i < 3 ? a(o) : i > 3 ? a(t, r, o) : a(t, r)) || o); + return i > 3 && o && Object.defineProperty(t, r, o), o; +} +function _0(e, t, r) { + if (r || arguments.length === 2) + for (var n = 0, i = t.length, o; n < i; n++) + (o || !(n in t)) && (o || (o = Array.prototype.slice.call(t, 0, n)), o[n] = t[n]); + return e.concat(o || Array.prototype.slice.call(t)); +} +var XO = { + /** + * Avoids style injection, use getRules() to read the styles. + */ + none: 0, + /** + * Inserts rules using the insertRule api. + */ + insertNode: 1, + /** + * Appends rules using appendChild. + */ + appendChild: 2 +}, ooe = "__stylesheet__", HFe = typeof navigator < "u" && /rv:11.0/.test(navigator.userAgent), WT = {}; +try { + WT = window || {}; +} catch { +} +var xT, tg = ( + /** @class */ + function() { + function e(t, r) { + var n, i, o, a, s, l; + this._rules = [], this._preservedRules = [], this._counter = 0, this._keyToClassName = {}, this._onInsertRuleCallbacks = [], this._onResetCallbacks = [], this._classNameToArgs = {}, this._config = Ht({ + // If there is no document we won't have an element to inject into. + injectionMode: typeof document > "u" ? XO.none : XO.insertNode, + defaultPrefix: "css", + namespace: void 0, + cspSettings: void 0 + }, t), this._classNameToArgs = (n = r == null ? void 0 : r.classNameToArgs) !== null && n !== void 0 ? n : this._classNameToArgs, this._counter = (i = r == null ? void 0 : r.counter) !== null && i !== void 0 ? i : this._counter, this._keyToClassName = (a = (o = this._config.classNameCache) !== null && o !== void 0 ? o : r == null ? void 0 : r.keyToClassName) !== null && a !== void 0 ? a : this._keyToClassName, this._preservedRules = (s = r == null ? void 0 : r.preservedRules) !== null && s !== void 0 ? s : this._preservedRules, this._rules = (l = r == null ? void 0 : r.rules) !== null && l !== void 0 ? l : this._rules; + } + return e.getInstance = function() { + if (xT = WT[ooe], !xT || xT._lastStyleElement && xT._lastStyleElement.ownerDocument !== document) { + var t = (WT == null ? void 0 : WT.FabricConfig) || {}, r = new e(t.mergeStyles, t.serializedStylesheet); + xT = r, WT[ooe] = r; + } + return xT; + }, e.prototype.serialize = function() { + return JSON.stringify({ + classNameToArgs: this._classNameToArgs, + counter: this._counter, + keyToClassName: this._keyToClassName, + preservedRules: this._preservedRules, + rules: this._rules + }); + }, e.prototype.setConfig = function(t) { + this._config = Ht(Ht({}, this._config), t); + }, e.prototype.onReset = function(t) { + var r = this; + return this._onResetCallbacks.push(t), function() { + r._onResetCallbacks = r._onResetCallbacks.filter(function(n) { + return n !== t; + }); + }; + }, e.prototype.onInsertRule = function(t) { + var r = this; + return this._onInsertRuleCallbacks.push(t), function() { + r._onInsertRuleCallbacks = r._onInsertRuleCallbacks.filter(function(n) { + return n !== t; + }); + }; + }, e.prototype.getClassName = function(t) { + var r = this._config.namespace, n = t || this._config.defaultPrefix; + return "".concat(r ? r + "-" : "").concat(n, "-").concat(this._counter++); + }, e.prototype.cacheClassName = function(t, r, n, i) { + this._keyToClassName[r] = t, this._classNameToArgs[t] = { + args: n, + rules: i + }; + }, e.prototype.classNameFromKey = function(t) { + return this._keyToClassName[t]; + }, e.prototype.getClassNameCache = function() { + return this._keyToClassName; + }, e.prototype.argsFromClassName = function(t) { + var r = this._classNameToArgs[t]; + return r && r.args; + }, e.prototype.insertedRulesFromClassName = function(t) { + var r = this._classNameToArgs[t]; + return r && r.rules; + }, e.prototype.insertRule = function(t, r) { + var n = this._config.injectionMode, i = n !== XO.none ? this._getStyleElement() : void 0; + if (r && this._preservedRules.push(t), i) + switch (n) { + case XO.insertNode: + var o = i.sheet; + try { + o.insertRule(t, o.cssRules.length); + } catch { + } + break; + case XO.appendChild: + i.appendChild(document.createTextNode(t)); + break; + } + else + this._rules.push(t); + this._config.onInsertRule && this._config.onInsertRule(t), this._onInsertRuleCallbacks.forEach(function(a) { + return a(); + }); + }, e.prototype.getRules = function(t) { + return (t ? this._preservedRules.join("") : "") + this._rules.join(""); + }, e.prototype.reset = function() { + this._rules = [], this._counter = 0, this._classNameToArgs = {}, this._keyToClassName = {}, this._onResetCallbacks.forEach(function(t) { + return t(); + }); + }, e.prototype.resetKeys = function() { + this._keyToClassName = {}; + }, e.prototype._getStyleElement = function() { + var t = this; + return !this._styleElement && typeof document < "u" && (this._styleElement = this._createStyleElement(), HFe || window.requestAnimationFrame(function() { + t._styleElement = void 0; + })), this._styleElement; + }, e.prototype._createStyleElement = function() { + var t = document.head, r = document.createElement("style"), n = null; + r.setAttribute("data-merge-styles", "true"); + var i = this._config.cspSettings; + if (i && i.nonce && r.setAttribute("nonce", i.nonce), this._lastStyleElement) + n = this._lastStyleElement.nextElementSibling; + else { + var o = this._findPlaceholderStyleTag(); + o ? n = o.nextElementSibling : n = t.childNodes[0]; + } + return t.insertBefore(r, t.contains(n) ? n : null), this._lastStyleElement = r, r; + }, e.prototype._findPlaceholderStyleTag = function() { + var t = document.head; + return t ? t.querySelector("style[data-merge-styles]") : null; + }, e; + }() +); +function jbe() { + for (var e = [], t = 0; t < arguments.length; t++) + e[t] = arguments[t]; + var r = [], n = [], i = tg.getInstance(); + function o(a) { + for (var s = 0, l = a; s < l.length; s++) { + var u = l[s]; + if (u) + if (typeof u == "string") + if (u.indexOf(" ") >= 0) + o(u.split(" ")); + else { + var f = i.argsFromClassName(u); + f ? o(f) : r.indexOf(u) === -1 && r.push(u); + } + else + Array.isArray(u) ? o(u) : typeof u == "object" && n.push(u); + } + } + return o(e), { + classes: r, + objects: n + }; +} +function zbe(e) { + yA !== e && (yA = e); +} +function Hbe() { + return yA === void 0 && (yA = typeof document < "u" && !!document.documentElement && document.documentElement.getAttribute("dir") === "rtl"), yA; +} +var yA; +yA = Hbe(); +function w4() { + return { + rtl: Hbe() + }; +} +var aoe = {}; +function qFe(e, t) { + var r = e[t]; + r.charAt(0) !== "-" && (e[t] = aoe[r] = aoe[r] || r.replace(/([A-Z])/g, "-$1").toLowerCase()); +} +var s2; +function WFe() { + var e; + if (!s2) { + var t = typeof document < "u" ? document : void 0, r = typeof navigator < "u" ? navigator : void 0, n = (e = r == null ? void 0 : r.userAgent) === null || e === void 0 ? void 0 : e.toLowerCase(); + t ? s2 = { + isWebkit: !!(t && "WebkitAppearance" in t.documentElement.style), + isMoz: !!(n && n.indexOf("firefox") > -1), + isOpera: !!(n && n.indexOf("opera") > -1), + isMs: !!(r && (/rv:11.0/i.test(r.userAgent) || /Edge\/\d./i.test(navigator.userAgent))) + } : s2 = { + isWebkit: !0, + isMoz: !0, + isOpera: !0, + isMs: !0 + }; + } + return s2; +} +var soe = { + "user-select": 1 +}; +function VFe(e, t) { + var r = WFe(), n = e[t]; + if (soe[n]) { + var i = e[t + 1]; + soe[n] && (r.isWebkit && e.push("-webkit-" + n, i), r.isMoz && e.push("-moz-" + n, i), r.isMs && e.push("-ms-" + n, i), r.isOpera && e.push("-o-" + n, i)); + } +} +var UFe = [ + "column-count", + "font-weight", + "flex", + "flex-grow", + "flex-shrink", + "fill-opacity", + "opacity", + "order", + "z-index", + "zoom" +]; +function GFe(e, t) { + var r = e[t], n = e[t + 1]; + if (typeof n == "number") { + var i = UFe.indexOf(r) > -1, o = r.indexOf("--") > -1, a = i || o ? "" : "px"; + e[t + 1] = "".concat(n).concat(a); + } +} +var l2, sE = "left", lE = "right", KFe = "@noflip", loe = (l2 = {}, l2[sE] = lE, l2[lE] = sE, l2), uoe = { + "w-resize": "e-resize", + "sw-resize": "se-resize", + "nw-resize": "ne-resize" +}; +function YFe(e, t, r) { + if (e.rtl) { + var n = t[r]; + if (!n) + return; + var i = t[r + 1]; + if (typeof i == "string" && i.indexOf(KFe) >= 0) + t[r + 1] = i.replace(/\s*(?:\/\*\s*)?\@noflip\b(?:\s*\*\/)?\s*?/g, ""); + else if (n.indexOf(sE) >= 0) + t[r] = n.replace(sE, lE); + else if (n.indexOf(lE) >= 0) + t[r] = n.replace(lE, sE); + else if (String(i).indexOf(sE) >= 0) + t[r + 1] = i.replace(sE, lE); + else if (String(i).indexOf(lE) >= 0) + t[r + 1] = i.replace(lE, sE); + else if (loe[n]) + t[r] = loe[n]; + else if (uoe[i]) + t[r + 1] = uoe[i]; + else + switch (n) { + case "margin": + case "padding": + t[r + 1] = QFe(i); + break; + case "box-shadow": + t[r + 1] = XFe(i, 0); + break; + } + } +} +function XFe(e, t) { + var r = e.split(" "), n = parseInt(r[t], 10); + return r[0] = r[0].replace(String(n), String(n * -1)), r.join(" "); +} +function QFe(e) { + if (typeof e == "string") { + var t = e.split(" "); + if (t.length === 4) + return "".concat(t[0], " ").concat(t[3], " ").concat(t[2], " ").concat(t[1]); + } + return e; +} +function ZFe(e) { + for (var t = [], r = 0, n = 0, i = 0; i < e.length; i++) + switch (e[i]) { + case "(": + n++; + break; + case ")": + n && n--; + break; + case " ": + case " ": + n || (i > r && t.push(e.substring(r, i)), r = i + 1); + break; + } + return r < e.length && t.push(e.substring(r)), t; +} +var JFe = "displayName"; +function e4e(e) { + var t = e && e["&"]; + return t ? t.displayName : void 0; +} +var qbe = /\:global\((.+?)\)/g; +function t4e(e) { + if (!qbe.test(e)) + return e; + for (var t = [], r = /\:global\((.+?)\)/g, n = null; n = r.exec(e); ) + n[1].indexOf(",") > -1 && t.push([ + n.index, + n.index + n[0].length, + // Wrap each of the found selectors in :global() + n[1].split(",").map(function(i) { + return ":global(".concat(i.trim(), ")"); + }).join(", ") + ]); + return t.reverse().reduce(function(i, o) { + var a = o[0], s = o[1], l = o[2], u = i.slice(0, a), f = i.slice(s); + return u + l + f; + }, e); +} +function coe(e, t) { + return e.indexOf(":global(") >= 0 ? e.replace(qbe, "$1") : e.indexOf(":") === 0 ? t + e : e.indexOf("&") < 0 ? t + " " + e : e; +} +function foe(e, t, r, n) { + t === void 0 && (t = { __order: [] }), r.indexOf("@") === 0 ? (r = r + "{" + e, bA([n], t, r)) : r.indexOf(",") > -1 ? t4e(r).split(",").map(function(i) { + return i.trim(); + }).forEach(function(i) { + return bA([n], t, coe(i, e)); + }) : bA([n], t, coe(r, e)); +} +function bA(e, t, r) { + t === void 0 && (t = { __order: [] }), r === void 0 && (r = "&"); + var n = tg.getInstance(), i = t[r]; + i || (i = {}, t[r] = i, t.__order.push(r)); + for (var o = 0, a = e; o < a.length; o++) { + var s = a[o]; + if (typeof s == "string") { + var l = n.argsFromClassName(s); + l && bA(l, t, r); + } else if (Array.isArray(s)) + bA(s, t, r); + else + for (var u in s) + if (s.hasOwnProperty(u)) { + var f = s[u]; + if (u === "selectors") { + var h = s.selectors; + for (var p in h) + h.hasOwnProperty(p) && foe(r, t, p, h[p]); + } else + typeof f == "object" ? f !== null && foe(r, t, u, f) : f !== void 0 && (u === "margin" || u === "padding" ? r4e(i, u, f) : i[u] = f); + } + } + return t; +} +function r4e(e, t, r) { + var n = typeof r == "string" ? ZFe(r) : [r]; + n.length === 0 && n.push(r), n[n.length - 1] === "!important" && (n = n.slice(0, -1).map(function(i) { + return i + " !important"; + })), e[t + "Top"] = n[0], e[t + "Right"] = n[1] || n[0], e[t + "Bottom"] = n[2] || n[0], e[t + "Left"] = n[3] || n[1] || n[0]; +} +function n4e(e, t) { + for (var r = [e.rtl ? "rtl" : "ltr"], n = !1, i = 0, o = t.__order; i < o.length; i++) { + var a = o[i]; + r.push(a); + var s = t[a]; + for (var l in s) + s.hasOwnProperty(l) && s[l] !== void 0 && (n = !0, r.push(l, s[l])); + } + return n ? r.join("") : void 0; +} +function Wbe(e, t) { + return t <= 0 ? "" : t === 1 ? e : e + Wbe(e, t - 1); +} +function cQ(e, t) { + if (!t) + return ""; + var r = []; + for (var n in t) + t.hasOwnProperty(n) && n !== JFe && t[n] !== void 0 && r.push(n, t[n]); + for (var i = 0; i < r.length; i += 2) + qFe(r, i), GFe(r, i), YFe(e, r, i), VFe(r, i); + for (var i = 1; i < r.length; i += 4) + r.splice(i, 1, ":", r[i], ";"); + return r.join(""); +} +function Vbe(e) { + for (var t = [], r = 1; r < arguments.length; r++) + t[r - 1] = arguments[r]; + var n = bA(t), i = n4e(e, n); + if (i) { + var o = tg.getInstance(), a = { + className: o.classNameFromKey(i), + key: i, + args: t + }; + if (!a.className) { + a.className = o.getClassName(e4e(n)); + for (var s = [], l = 0, u = n.__order; l < u.length; l++) { + var f = u[l]; + s.push(f, cQ(e, n[f])); + } + a.rulesToInsert = s; + } + return a; + } +} +function Ube(e, t) { + t === void 0 && (t = 1); + var r = tg.getInstance(), n = e.className, i = e.key, o = e.args, a = e.rulesToInsert; + if (a) { + for (var s = 0; s < a.length; s += 2) { + var l = a[s + 1]; + if (l) { + var u = a[s]; + u = u.replace(/&/g, Wbe(".".concat(e.className), t)); + var f = "".concat(u, "{").concat(l, "}").concat(u.indexOf("@") === 0 ? "}" : ""); + r.insertRule(f); + } + } + r.cacheClassName(n, i, o, a); + } +} +function i4e(e) { + for (var t = [], r = 1; r < arguments.length; r++) + t[r - 1] = arguments[r]; + var n = Vbe.apply(void 0, _0([e], t, !1)); + return n ? (Ube(n, e.specificityMultiplier), n.className) : ""; +} +function ua() { + for (var e = [], t = 0; t < arguments.length; t++) + e[t] = arguments[t]; + return Gbe(e, w4()); +} +function Gbe(e, t) { + var r = e instanceof Array ? e : [e], n = jbe(r), i = n.classes, o = n.objects; + return o.length && i.push(i4e(t || {}, o)), i.join(" "); +} +function mD() { + for (var e = [], t = 0; t < arguments.length; t++) + e[t] = arguments[t]; + if (e && e.length === 1 && e[0] && !e[0].subComponentStyles) + return e[0]; + for (var r = {}, n = {}, i = 0, o = e; i < o.length; i++) { + var a = o[i]; + if (a) { + for (var s in a) + if (a.hasOwnProperty(s)) { + if (s === "subComponentStyles" && a.subComponentStyles !== void 0) { + var l = a.subComponentStyles; + for (var u in l) + l.hasOwnProperty(u) && (n.hasOwnProperty(u) ? n[u].push(l[u]) : n[u] = [l[u]]); + continue; + } + var f = r[s], h = a[s]; + f === void 0 ? r[s] = h : r[s] = _0(_0([], Array.isArray(f) ? f : [f], !0), Array.isArray(h) ? h : [h], !0); + } + } + } + if (Object.keys(n).length > 0) { + r.subComponentStyles = {}; + var p = r.subComponentStyles, g = function(m) { + if (n.hasOwnProperty(m)) { + var _ = n[m]; + p[m] = function(S) { + return mD.apply(void 0, _.map(function(A) { + return typeof A == "function" ? A(S) : A; + })); + }; + } + }; + for (var u in n) + g(u); + } + return r; +} +function sd() { + for (var e = [], t = 0; t < arguments.length; t++) + e[t] = arguments[t]; + return Kbe(e, w4()); +} +function Kbe(e, t) { + var r = { subComponentStyles: {} }, n = e[0]; + if (!n && e.length <= 1) + return { subComponentStyles: {} }; + var i = mD.apply(void 0, e), o = []; + for (var a in i) + if (i.hasOwnProperty(a)) { + if (a === "subComponentStyles") { + r.subComponentStyles = i.subComponentStyles || {}; + continue; + } + var s = i[a], l = jbe(s), u = l.classes, f = l.objects; + if (f != null && f.length) { + var h = Vbe(t || {}, { displayName: a }, f); + h && (o.push(h), r[a] = u.concat([h.className]).join(" ")); + } else + r[a] = u.join(" "); + } + for (var p = 0, g = o; p < g.length; p++) { + var h = g[p]; + h && Ube(h, t == null ? void 0 : t.specificityMultiplier); + } + return r; +} +function Ybe(e) { + for (var t = [], r = 1; r < arguments.length; r++) + t[r - 1] = arguments[r]; + for (var n = [], i = 0, o = t; i < o.length; i++) { + var a = o[i]; + a && n.push(typeof a == "function" ? a(e) : a); + } + return n.length === 1 ? n[0] : n.length ? mD.apply(void 0, n) : {}; +} +function Xbe(e) { + var t = tg.getInstance(), r = cQ(w4(), e), n = t.classNameFromKey(r); + if (!n) { + var i = t.getClassName(); + t.insertRule("@font-face{".concat(r, "}"), !0), t.cacheClassName(i, r, [], ["font-face", r]); + } +} +function ug(e) { + var t = tg.getInstance(), r = []; + for (var n in e) + e.hasOwnProperty(n) && r.push(n, "{", cQ(w4(), e[n]), "}"); + var i = r.join(""), o = t.classNameFromKey(i); + if (o) + return o; + var a = t.getClassName(); + return t.insertRule("@keyframes ".concat(a, "{").concat(i, "}"), !0), t.cacheClassName(a, i, [], ["keyframes", i]), a; +} +function o4e(e) { + var t = {}, r = function(i) { + if (e.hasOwnProperty(i)) { + var o; + Object.defineProperty(t, i, { + get: function() { + return o === void 0 && (o = ua(e[i]).toString()), o; + }, + enumerable: !0, + configurable: !0 + }); + } + }; + for (var n in e) + r(n); + return t; +} +function fQ() { + return typeof window < "u" && !!(window.document && // eslint-disable-next-line deprecation/deprecation + window.document.createElement); +} +var hG = void 0; +try { + hG = window; +} catch { +} +function gc(e) { + if (!(!fQ() || typeof hG > "u")) { + var t = e; + return t && t.ownerDocument && t.ownerDocument.defaultView ? t.ownerDocument.defaultView : hG; + } +} +var Qbe = ( + /** @class */ + function() { + function e(t, r) { + this._timeoutIds = null, this._immediateIds = null, this._intervalIds = null, this._animationFrameIds = null, this._isDisposed = !1, this._parent = t || null, this._onErrorHandler = r, this._noop = function() { + }; + } + return e.prototype.dispose = function() { + var t; + if (this._isDisposed = !0, this._parent = null, this._timeoutIds) { + for (t in this._timeoutIds) + this._timeoutIds.hasOwnProperty(t) && this.clearTimeout(parseInt(t, 10)); + this._timeoutIds = null; + } + if (this._immediateIds) { + for (t in this._immediateIds) + this._immediateIds.hasOwnProperty(t) && this.clearImmediate(parseInt(t, 10)); + this._immediateIds = null; + } + if (this._intervalIds) { + for (t in this._intervalIds) + this._intervalIds.hasOwnProperty(t) && this.clearInterval(parseInt(t, 10)); + this._intervalIds = null; + } + if (this._animationFrameIds) { + for (t in this._animationFrameIds) + this._animationFrameIds.hasOwnProperty(t) && this.cancelAnimationFrame(parseInt(t, 10)); + this._animationFrameIds = null; + } + }, e.prototype.setTimeout = function(t, r) { + var n = this, i = 0; + return this._isDisposed || (this._timeoutIds || (this._timeoutIds = {}), i = setTimeout(function() { + try { + n._timeoutIds && delete n._timeoutIds[i], t.apply(n._parent); + } catch (o) { + n._logError(o); + } + }, r), this._timeoutIds[i] = !0), i; + }, e.prototype.clearTimeout = function(t) { + this._timeoutIds && this._timeoutIds[t] && (clearTimeout(t), delete this._timeoutIds[t]); + }, e.prototype.setImmediate = function(t, r) { + var n = this, i = 0, o = gc(r); + if (!this._isDisposed) { + this._immediateIds || (this._immediateIds = {}); + var a = function() { + try { + n._immediateIds && delete n._immediateIds[i], t.apply(n._parent); + } catch (s) { + n._logError(s); + } + }; + i = o.setTimeout(a, 0), this._immediateIds[i] = !0; + } + return i; + }, e.prototype.clearImmediate = function(t, r) { + var n = gc(r); + this._immediateIds && this._immediateIds[t] && (n.clearTimeout(t), delete this._immediateIds[t]); + }, e.prototype.setInterval = function(t, r) { + var n = this, i = 0; + return this._isDisposed || (this._intervalIds || (this._intervalIds = {}), i = setInterval(function() { + try { + t.apply(n._parent); + } catch (o) { + n._logError(o); + } + }, r), this._intervalIds[i] = !0), i; + }, e.prototype.clearInterval = function(t) { + this._intervalIds && this._intervalIds[t] && (clearInterval(t), delete this._intervalIds[t]); + }, e.prototype.throttle = function(t, r, n) { + var i = this; + if (this._isDisposed) + return this._noop; + var o = r || 0, a = !0, s = !0, l = 0, u, f, h = null; + n && typeof n.leading == "boolean" && (a = n.leading), n && typeof n.trailing == "boolean" && (s = n.trailing); + var p = function(m) { + var _ = Date.now(), S = _ - l, A = a ? o - S : o; + return S >= o && (!m || a) ? (l = _, h && (i.clearTimeout(h), h = null), u = t.apply(i._parent, f)) : h === null && s && (h = i.setTimeout(p, A)), u; + }, g = function() { + for (var m = [], _ = 0; _ < arguments.length; _++) + m[_] = arguments[_]; + return f = m, p(!0); + }; + return g; + }, e.prototype.debounce = function(t, r, n) { + var i = this; + if (this._isDisposed) { + var o = function() { + }; + return o.cancel = function() { + }, o.flush = function() { + return null; + }, o.pending = function() { + return !1; + }, o; + } + var a = r || 0, s = !1, l = !0, u = null, f = 0, h = Date.now(), p, g, m = null; + n && typeof n.leading == "boolean" && (s = n.leading), n && typeof n.trailing == "boolean" && (l = n.trailing), n && typeof n.maxWait == "number" && !isNaN(n.maxWait) && (u = n.maxWait); + var _ = function(D) { + m && (i.clearTimeout(m), m = null), h = D; + }, S = function(D) { + _(D), p = t.apply(i._parent, g); + }, A = function(D) { + var M = Date.now(), j = !1; + D && (s && M - f >= a && (j = !0), f = M); + var F = M - f, z = a - F, G = M - h, te = !1; + return u !== null && (G >= u && m ? te = !0 : z = Math.min(z, u - G)), F >= a || te || j ? S(M) : (m === null || !D) && l && (m = i.setTimeout(A, z)), p; + }, C = function() { + return !!m; + }, N = function() { + C() && _(Date.now()); + }, x = function() { + return C() && S(Date.now()), p; + }, R = function() { + for (var D = [], M = 0; M < arguments.length; M++) + D[M] = arguments[M]; + return g = D, A(!0); + }; + return R.cancel = N, R.flush = x, R.pending = C, R; + }, e.prototype.requestAnimationFrame = function(t, r) { + var n = this, i = 0, o = gc(r); + if (!this._isDisposed) { + this._animationFrameIds || (this._animationFrameIds = {}); + var a = function() { + try { + n._animationFrameIds && delete n._animationFrameIds[i], t.apply(n._parent); + } catch (s) { + n._logError(s); + } + }; + i = o.requestAnimationFrame ? o.requestAnimationFrame(a) : o.setTimeout(a, 0), this._animationFrameIds[i] = !0; + } + return i; + }, e.prototype.cancelAnimationFrame = function(t, r) { + var n = gc(r); + this._animationFrameIds && this._animationFrameIds[t] && (n.cancelAnimationFrame ? n.cancelAnimationFrame(t) : n.clearTimeout(t), delete this._animationFrameIds[t]); + }, e.prototype._logError = function(t) { + this._onErrorHandler && this._onErrorHandler(t); + }, e; + }() +); +function dQ(e, t) { + if (!e || !t) + return !e && !t; + for (var r in e) + if (e.hasOwnProperty(r) && (!t.hasOwnProperty(r) || t[r] !== e[r])) + return !1; + for (var r in t) + if (t.hasOwnProperty(r) && !e.hasOwnProperty(r)) + return !1; + return !0; +} +function Zbe(e) { + for (var t = [], r = 1; r < arguments.length; r++) + t[r - 1] = arguments[r]; + return a4e.apply(this, [null, e].concat(t)); +} +function a4e(e, t) { + for (var r = [], n = 2; n < arguments.length; n++) + r[n - 2] = arguments[n]; + t = t || {}; + for (var i = 0, o = r; i < o.length; i++) { + var a = o[i]; + if (a) + for (var s in a) + a.hasOwnProperty(s) && (!e || e(s)) && (t[s] = a[s]); + } + return t; +} +var uE = ( + /** @class */ + function() { + function e(t) { + this._id = e._uniqueId++, this._parent = t, this._eventRecords = []; + } + return e.raise = function(t, r, n, i) { + var o; + if (e._isElement(t)) { + if (typeof document < "u" && document.createEvent) { + var a = document.createEvent("HTMLEvents"); + a.initEvent(r, i || !1, !0), Zbe(a, n), o = t.dispatchEvent(a); + } else if (typeof document < "u" && document.createEventObject) { + var s = document.createEventObject(n); + t.fireEvent("on" + r, s); + } + } else + for (; t && o !== !1; ) { + var l = t.__events__, u = l ? l[r] : null; + if (u) { + for (var f in u) + if (u.hasOwnProperty(f)) + for (var h = u[f], p = 0; o !== !1 && p < h.length; p++) { + var g = h[p]; + g.objectCallback && (o = g.objectCallback.call(g.parent, n)); + } + } + t = i ? t.parent : null; + } + return o; + }, e.isObserved = function(t, r) { + var n = t && t.__events__; + return !!n && !!n[r]; + }, e.isDeclared = function(t, r) { + var n = t && t.__declaredEvents; + return !!n && !!n[r]; + }, e.stopPropagation = function(t) { + t.stopPropagation ? t.stopPropagation() : t.cancelBubble = !0; + }, e._isElement = function(t) { + return !!t && (!!t.addEventListener || typeof HTMLElement < "u" && t instanceof HTMLElement); + }, e.prototype.dispose = function() { + this._isDisposed || (this._isDisposed = !0, this.off(), this._parent = null); + }, e.prototype.onAll = function(t, r, n) { + for (var i in r) + r.hasOwnProperty(i) && this.on(t, i, r[i], n); + }, e.prototype.on = function(t, r, n, i) { + var o = this; + if (r.indexOf(",") > -1) + for (var a = r.split(/[ ,]+/), s = 0; s < a.length; s++) + this.on(t, a[s], n, i); + else { + var l = this._parent, u = { + target: t, + eventName: r, + parent: l, + callback: n, + options: i + }, a = t.__events__ = t.__events__ || {}; + if (a[r] = a[r] || { + count: 0 + }, a[r][this._id] = a[r][this._id] || [], a[r][this._id].push(u), a[r].count++, e._isElement(t)) { + var f = function() { + for (var g = [], m = 0; m < arguments.length; m++) + g[m] = arguments[m]; + if (!o._isDisposed) { + var _; + try { + if (_ = n.apply(l, g), _ === !1 && g[0]) { + var S = g[0]; + S.preventDefault && S.preventDefault(), S.stopPropagation && S.stopPropagation(), S.cancelBubble = !0; + } + } catch { + } + return _; + } + }; + u.elementCallback = f, t.addEventListener ? t.addEventListener(r, f, i) : t.attachEvent && t.attachEvent("on" + r, f); + } else { + var h = function() { + for (var g = [], m = 0; m < arguments.length; m++) + g[m] = arguments[m]; + if (!o._isDisposed) + return n.apply(l, g); + }; + u.objectCallback = h; + } + this._eventRecords.push(u); + } + }, e.prototype.off = function(t, r, n, i) { + for (var o = 0; o < this._eventRecords.length; o++) { + var a = this._eventRecords[o]; + if ((!t || t === a.target) && (!r || r === a.eventName) && (!n || n === a.callback) && (typeof i != "boolean" || i === a.options)) { + var s = a.target.__events__, l = s[a.eventName], u = l ? l[this._id] : null; + u && (u.length === 1 || !n ? (l.count -= u.length, delete s[a.eventName][this._id]) : (l.count--, u.splice(u.indexOf(a), 1)), l.count || delete s[a.eventName]), a.elementCallback && (a.target.removeEventListener ? a.target.removeEventListener(a.eventName, a.elementCallback, a.options) : a.target.detachEvent && a.target.detachEvent("on" + a.eventName, a.elementCallback)), this._eventRecords.splice(o--, 1); + } + } + }, e.prototype.raise = function(t, r, n) { + return e.raise(this._parent, t, r, n); + }, e.prototype.declare = function(t) { + var r = this._parent.__declaredEvents = this._parent.__declaredEvents || {}; + if (typeof t == "string") + r[t] = !0; + else + for (var n = 0; n < t.length; n++) + r[t[n]] = !0; + }, e._uniqueId = 0, e; + }() +); +function gp(e) { + if (!(!fQ() || typeof document > "u")) { + var t = e; + return t && t.ownerDocument ? t.ownerDocument : document; + } +} +var q$, tN = 0, Jbe = ua({ + overflow: "hidden !important" +}), doe = "data-is-scrollable", s4e = function(e, t) { + if (e) { + var r = 0, n = null, i = function(a) { + a.targetTouches.length === 1 && (r = a.targetTouches[0].clientY); + }, o = function(a) { + if (a.targetTouches.length === 1 && (a.stopPropagation(), !!n)) { + var s = a.targetTouches[0].clientY - r, l = t_e(a.target); + l && (n = l), n.scrollTop === 0 && s > 0 && a.preventDefault(), n.scrollHeight - Math.ceil(n.scrollTop) <= n.clientHeight && s < 0 && a.preventDefault(); + } + }; + t.on(e, "touchstart", i, { passive: !1 }), t.on(e, "touchmove", o, { passive: !1 }), n = e; + } +}, l4e = function(e, t) { + if (e) { + var r = function(n) { + n.stopPropagation(); + }; + t.on(e, "touchmove", r, { passive: !1 }); + } +}, e_e = function(e) { + e.preventDefault(); +}; +function u4e() { + var e = gp(); + e && e.body && !tN && (e.body.classList.add(Jbe), e.body.addEventListener("touchmove", e_e, { passive: !1, capture: !1 })), tN++; +} +function c4e() { + if (tN > 0) { + var e = gp(); + e && e.body && tN === 1 && (e.body.classList.remove(Jbe), e.body.removeEventListener("touchmove", e_e)), tN--; + } +} +function f4e() { + if (q$ === void 0) { + var e = document.createElement("div"); + e.style.setProperty("width", "100px"), e.style.setProperty("height", "100px"), e.style.setProperty("overflow", "scroll"), e.style.setProperty("position", "absolute"), e.style.setProperty("top", "-9999px"), document.body.appendChild(e), q$ = e.offsetWidth - e.clientWidth, document.body.removeChild(e); + } + return q$; +} +function t_e(e) { + for (var t = e, r = gp(e); t && t !== r.body; ) { + if (t.getAttribute(doe) === "true") + return t; + t = t.parentElement; + } + for (t = e; t && t !== r.body; ) { + if (t.getAttribute(doe) !== "false") { + var n = getComputedStyle(t), i = n ? n.getPropertyValue("overflow-y") : ""; + if (i && (i === "scroll" || i === "auto")) + return t; + } + t = t.parentElement; + } + return (!t || t === r.body) && (t = gc(e)), t; +} +var d4e = {}, hoe = void 0; +function Ab(e) { + hoe && d4e.NODE_ENV !== "production" ? hoe(e) : console && console.warn && console.warn(e); +} +var h4e = {}; +function p4e(e, t, r, n, i) { + if (i === !0 && h4e.NODE_ENV !== "production") + for (var o = 0, a = r; o < a.length; o++) { + var s = a[o]; + s in t || Ab("".concat(e, " property '").concat(s, "' is required when '").concat(n, "' is used.'")); + } +} +var v4e = {}; +function g4e(e, t, r) { + if (v4e.NODE_ENV !== "production") { + for (var n in r) + if (t && t[n] !== void 0) { + var i = r[n]; + i && t[i] !== void 0 && Ab("".concat(e, " property '").concat(n, "' is mutually exclusive with '").concat(r[n], "'. ") + "Use one or the other."); + } + } +} +var m4e = {}; +function hQ(e, t, r) { + if (m4e.NODE_ENV !== "production") { + for (var n in r) + if (t && n in t) { + var i = "".concat(e, " property '").concat(n, "' was used but has been deprecated."), o = r[n]; + o && (i += " Use '".concat(o, "' instead.")), Ab(i); + } + } +} +var W$ = "__globalSettings__", pQ = "__callbacks__", y4e = 0, r_e = ( + /** @class */ + function() { + function e() { + } + return e.getValue = function(t, r) { + var n = pG(); + return n[t] === void 0 && (n[t] = typeof r == "function" ? r() : r), n[t]; + }, e.setValue = function(t, r) { + var n = pG(), i = n[pQ], o = n[t]; + if (r !== o) { + n[t] = r; + var a = { + oldValue: o, + value: r, + key: t + }; + for (var s in i) + i.hasOwnProperty(s) && i[s](a); + } + return r; + }, e.addChangeListener = function(t) { + var r = t.__id__, n = poe(); + r || (r = t.__id__ = String(y4e++)), n[r] = t; + }, e.removeChangeListener = function(t) { + var r = poe(); + delete r[t.__id__]; + }, e; + }() +); +function pG() { + var e, t = gc(), r = t || {}; + return r[W$] || (r[W$] = (e = {}, e[pQ] = {}, e)), r[W$]; +} +function poe() { + var e = pG(); + return e[pQ]; +} +var Ui = { + backspace: 8, + tab: 9, + enter: 13, + shift: 16, + ctrl: 17, + alt: 18, + pauseBreak: 19, + capslock: 20, + escape: 27, + space: 32, + pageUp: 33, + pageDown: 34, + end: 35, + home: 36, + left: 37, + up: 38, + right: 39, + down: 40, + insert: 45, + del: 46, + zero: 48, + one: 49, + two: 50, + three: 51, + four: 52, + five: 53, + six: 54, + seven: 55, + eight: 56, + nine: 57, + colon: 58, + a: 65, + b: 66, + c: 67, + d: 68, + e: 69, + f: 70, + g: 71, + h: 72, + i: 73, + j: 74, + k: 75, + l: 76, + m: 77, + n: 78, + o: 79, + p: 80, + q: 81, + r: 82, + s: 83, + t: 84, + u: 85, + v: 86, + w: 87, + x: 88, + y: 89, + z: 90, + leftWindow: 91, + rightWindow: 92, + select: 93, + /* eslint-disable @typescript-eslint/naming-convention */ + zero_numpad: 96, + one_numpad: 97, + two_numpad: 98, + three_numpad: 99, + four_numpad: 100, + five_numpad: 101, + six_numpad: 102, + seven_numpad: 103, + eight_numpad: 104, + nine_numpad: 105, + /* eslint-enable @typescript-eslint/naming-convention */ + multiply: 106, + add: 107, + subtract: 109, + decimalPoint: 110, + divide: 111, + f1: 112, + f2: 113, + f3: 114, + f4: 115, + f5: 116, + f6: 117, + f7: 118, + f8: 119, + f9: 120, + f10: 121, + f11: 122, + f12: 123, + numlock: 144, + scrollLock: 145, + semicolon: 186, + equalSign: 187, + comma: 188, + dash: 189, + period: 190, + forwardSlash: 191, + graveAccent: 192, + openBracket: 219, + backSlash: 220, + closeBracket: 221, + singleQuote: 222 +}, Xv = ( + /** @class */ + function() { + function e(t, r, n, i) { + t === void 0 && (t = 0), r === void 0 && (r = 0), n === void 0 && (n = 0), i === void 0 && (i = 0), this.top = n, this.bottom = i, this.left = t, this.right = r; + } + return Object.defineProperty(e.prototype, "width", { + /** + * Calculated automatically by subtracting the right from left + */ + get: function() { + return this.right - this.left; + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(e.prototype, "height", { + /** + * Calculated automatically by subtracting the bottom from top. + */ + get: function() { + return this.bottom - this.top; + }, + enumerable: !1, + configurable: !0 + }), e.prototype.equals = function(t) { + return parseFloat(this.top.toFixed(4)) === parseFloat(t.top.toFixed(4)) && parseFloat(this.bottom.toFixed(4)) === parseFloat(t.bottom.toFixed(4)) && parseFloat(this.left.toFixed(4)) === parseFloat(t.left.toFixed(4)) && parseFloat(this.right.toFixed(4)) === parseFloat(t.right.toFixed(4)); + }, e; + }() +); +function b4e(e) { + for (var t = [], r = 1; r < arguments.length; r++) + t[r - 1] = arguments[r]; + return t.length < 2 ? t[0] : function() { + for (var n = [], i = 0; i < arguments.length; i++) + n[i] = arguments[i]; + t.forEach(function(o) { + return o && o.apply(e, n); + }); + }; +} +function T4() { + for (var e = [], t = 0; t < arguments.length; t++) + e[t] = arguments[t]; + var r = e.filter(function(n) { + return n; + }).join(" ").trim(); + return r === "" ? void 0 : r; +} +function _4e(e, t, r) { + var n = e.slice(); + return n.splice(t, 0, r), n; +} +function E4e(e, t) { + if (e.length !== t.length) + return !1; + for (var r = 0; r < e.length; r++) + if (e[r] !== t[r]) + return !1; + return !0; +} +function n_e(e) { + var t = null; + try { + var r = gc(); + t = r ? r.sessionStorage.getItem(e) : null; + } catch { + } + return t; +} +function S4e(e, t) { + var r; + try { + (r = gc()) === null || r === void 0 || r.sessionStorage.setItem(e, t); + } catch { + } +} +var i_e = "isRTL", fb; +function up(e) { + if (e === void 0 && (e = {}), e.rtl !== void 0) + return e.rtl; + if (fb === void 0) { + var t = n_e(i_e); + t !== null && (fb = t === "1", x4e(fb)); + var r = gp(); + fb === void 0 && r && (fb = (r.body && r.body.getAttribute("dir") || r.documentElement.getAttribute("dir")) === "rtl", zbe(fb)); + } + return !!fb; +} +function x4e(e, t) { + t === void 0 && (t = !1); + var r = gp(); + r && r.documentElement.setAttribute("dir", e ? "rtl" : "ltr"), t && S4e(i_e, e ? "1" : "0"), fb = e, zbe(fb); +} +function w4e(e) { + return e && !!e._virtual; +} +function T4e(e) { + var t; + return e && w4e(e) && (t = e._virtual.parent), t; +} +function Rm(e, t) { + return t === void 0 && (t = !0), e && (t && T4e(e) || e.parentNode && e.parentNode); +} +function Jp(e, t, r) { + r === void 0 && (r = !0); + var n = !1; + if (e && t) + if (r) + if (e === t) + n = !0; + else + for (n = !1; t; ) { + var i = Rm(t); + if (i === e) { + n = !0; + break; + } + t = i; + } + else + e.contains && (n = e.contains(t)); + return n; +} +function vQ(e, t) { + return !e || e === document.body ? null : t(e) ? e : vQ(Rm(e), t); +} +function A4e(e, t) { + var r = vQ(e, function(n) { + return n.hasAttribute(t); + }); + return r && r.getAttribute(t); +} +var vG = "data-portal-element"; +function k4e(e) { + e.setAttribute(vG, "true"); +} +function C4e(e, t) { + var r = vQ(e, function(n) { + return t === n || n.hasAttribute(vG); + }); + return r !== null && r.hasAttribute(vG); +} +function O4e(e, t) { + var r = e, n = t; + r._virtual || (r._virtual = { + children: [] + }); + var i = r._virtual.parent; + if (i && i !== t) { + var o = i._virtual.children.indexOf(r); + o > -1 && i._virtual.children.splice(o, 1); + } + r._virtual.parent = n || void 0, n && (n._virtual || (n._virtual = { + children: [] + }), n._virtual.children.push(r)); +} +var R4e = "data-is-focusable", N4e = "data-is-visible", I4e = "data-focuszone-id", D4e = "data-is-sub-focuszone"; +function M4e(e, t, r) { + return op(e, t, !0, !1, !1, r); +} +function L4e(e, t, r) { + return Qp(e, t, !0, !1, !0, r); +} +function F4e(e, t, r, n) { + return n === void 0 && (n = !0), op( + e, + t, + n, + !1, + !1, + r, + !1, + !0 + /*tabbable*/ + ); +} +function B4e(e, t, r, n) { + return n === void 0 && (n = !0), Qp( + e, + t, + n, + !1, + !0, + r, + !1, + !0 + /*tabbable*/ + ); +} +function $4e(e, t) { + var r = op(e, e, !0, !1, !1, !0, void 0, void 0, t); + return r ? (s_e(r), !0) : !1; +} +function Qp(e, t, r, n, i, o, a, s) { + if (!t || !a && t === e) + return null; + var l = A4(t); + if (i && l && (o || !(db(t) || gQ(t)))) { + var u = Qp(e, t.lastElementChild, !0, !0, !0, o, a, s); + if (u) { + if (s && Im(u, !0) || !s) + return u; + var f = Qp(e, u.previousElementSibling, !0, !0, !0, o, a, s); + if (f) + return f; + for (var h = u.parentElement; h && h !== t; ) { + var p = Qp(e, h.previousElementSibling, !0, !0, !0, o, a, s); + if (p) + return p; + h = h.parentElement; + } + } + } + if (r && l && Im(t, s)) + return t; + var g = Qp(e, t.previousElementSibling, !0, !0, !0, o, a, s); + return g || (n ? null : Qp(e, t.parentElement, !0, !1, !1, o, a, s)); +} +function op(e, t, r, n, i, o, a, s, l) { + if (!t || t === e && i && !a) + return null; + var u = l ? o_e : A4, f = u(t); + if (r && f && Im(t, s)) + return t; + if (!i && f && (o || !(db(t) || gQ(t)))) { + var h = op(e, t.firstElementChild, !0, !0, !1, o, a, s, l); + if (h) + return h; + } + if (t === e) + return null; + var p = op(e, t.nextElementSibling, !0, !0, !1, o, a, s, l); + return p || (n ? null : op(e, t.parentElement, !1, !1, !0, o, a, s, l)); +} +function A4(e) { + if (!e || !e.getAttribute) + return !1; + var t = e.getAttribute(N4e); + return t != null ? t === "true" : e.offsetHeight !== 0 || e.offsetParent !== null || // eslint-disable-next-line @typescript-eslint/no-explicit-any + e.isVisible === !0; +} +function o_e(e) { + return !!e && A4(e) && !e.hidden && window.getComputedStyle(e).visibility !== "hidden"; +} +function Im(e, t) { + if (!e || e.disabled) + return !1; + var r = 0, n = null; + e && e.getAttribute && (n = e.getAttribute("tabIndex"), n && (r = parseInt(n, 10))); + var i = e.getAttribute ? e.getAttribute(R4e) : null, o = n !== null && r >= 0, a = !!e && i !== "false" && (e.tagName === "A" || e.tagName === "BUTTON" || e.tagName === "INPUT" || e.tagName === "TEXTAREA" || e.tagName === "SELECT" || i === "true" || o); + return t ? r !== -1 && a : a; +} +function db(e) { + return !!(e && e.getAttribute && e.getAttribute(I4e)); +} +function gQ(e) { + return !!(e && e.getAttribute && e.getAttribute(D4e) === "true"); +} +function P4e(e) { + var t = gp(e), r = t && t.activeElement; + return !!(r && Jp(e, r)); +} +function a_e(e, t) { + return A4e(e, t) !== "true"; +} +var u2 = void 0; +function s_e(e) { + if (e) { + var t = gc(e); + t && (u2 !== void 0 && t.cancelAnimationFrame(u2), u2 = t.requestAnimationFrame(function() { + e && e.focus(), u2 = void 0; + })); + } +} +function j4e(e, t) { + for (var r = e, n = 0, i = t; n < i.length; n++) { + var o = i[n], a = r.children[Math.min(o, r.children.length - 1)]; + if (!a) + break; + r = a; + } + return r = Im(r) && A4(r) ? r : op(e, r, !0) || Qp(e, r), r; +} +function z4e(e, t) { + for (var r = []; t && e && t !== e; ) { + var n = Rm(t, !0); + if (n === null) + return []; + r.unshift(Array.prototype.indexOf.call(n.children, t)), t = n; + } + return r; +} +function $m(e, t, r, n) { + return e.addEventListener(t, r, n), function() { + return e.removeEventListener(t, r, n); + }; +} +var H4e = 50, q4e = 5, $M = 0, V$ = tg.getInstance(); +V$ && V$.onReset && V$.onReset(function() { + return $M++; +}); +var c2 = "__retval__"; +function dy(e) { + e === void 0 && (e = {}); + var t = /* @__PURE__ */ new Map(), r = 0, n = 0, i = $M, o = function(a, s) { + var l; + if (s === void 0 && (s = {}), e.useStaticStyles && typeof a == "function" && a.__noStyleOverride__) + return a(s); + n++; + var u = t, f = s.theme, h = f && f.rtl !== void 0 ? f.rtl : up(), p = e.disableCaching; + if (i !== $M && (i = $M, t = /* @__PURE__ */ new Map(), r = 0), e.disableCaching || (u = voe(t, a), u = voe(u, s)), (p || !u[c2]) && (a === void 0 ? u[c2] = {} : u[c2] = Kbe([ + typeof a == "function" ? a(s) : a + ], { rtl: !!h, specificityMultiplier: e.useStaticStyles ? q4e : void 0 }), p || r++), r > (e.cacheSize || H4e)) { + var g = gc(); + !((l = g == null ? void 0 : g.FabricConfig) === null || l === void 0) && l.enableClassNameCacheFullWarning && (console.warn("Styles are being recalculated too frequently. Cache miss rate is ".concat(r, "/").concat(n, ".")), console.trace()), t.clear(), r = 0, e.disableCaching = !0; + } + return u[c2]; + }; + return o; +} +function U$(e, t) { + return t = W4e(t), e.has(t) || e.set(t, /* @__PURE__ */ new Map()), e.get(t); +} +function voe(e, t) { + if (typeof t == "function") { + var r = t.__cachedInputs__; + if (r) + for (var n = 0, i = t.__cachedInputs__; n < i.length; n++) { + var o = i[n]; + e = U$(e, o); + } + else + e = U$(e, t); + } else if (typeof t == "object") + for (var a in t) + t.hasOwnProperty(a) && (e = U$(e, t[a])); + return e; +} +function W4e(e) { + switch (e) { + case void 0: + return "__undefined__"; + case null: + return "__null__"; + default: + return e; + } +} +var goe = !1, PM = 0, V4e = { empty: !0 }, G$ = {}, MN = typeof WeakMap > "u" ? null : WeakMap; +function U4e() { + PM++; +} +function Ep(e, t, r) { + if (t === void 0 && (t = 100), r === void 0 && (r = !1), !MN) + return e; + if (!goe) { + var n = tg.getInstance(); + n && n.onReset && tg.getInstance().onReset(U4e), goe = !0; + } + var i, o = 0, a = PM; + return function() { + for (var l = [], u = 0; u < arguments.length; u++) + l[u] = arguments[u]; + var f = i; + (i === void 0 || a !== PM || t > 0 && o > t) && (i = moe(), o = 0, a = PM), f = i; + for (var h = 0; h < l.length; h++) { + var p = G4e(l[h]); + f.map.has(p) || f.map.set(p, moe()), f = f.map.get(p); + } + return f.hasOwnProperty("value") || (f.value = e.apply(void 0, l), o++), r && (f.value === null || f.value === void 0) && (f.value = e.apply(void 0, l)), f.value; + }; +} +function HA(e) { + if (!MN) + return e; + var t = new MN(); + function r(n) { + if (!n || typeof n != "function" && typeof n != "object") + return e(n); + if (t.has(n)) + return t.get(n); + var i = e(n); + return t.set(n, i), i; + } + return r; +} +function G4e(e) { + if (e) { + if (typeof e == "object" || typeof e == "function") + return e; + G$[e] || (G$[e] = { val: e }); + } else + return V4e; + return G$[e]; +} +function moe() { + return { + map: MN ? new MN() : null + }; +} +function K4e(e) { + var t = e, r = HA(function(n) { + if (e === n) + throw new Error("Attempted to compose a component with itself."); + var i = n, o = HA(function(s) { + var l = function(u) { + return W.createElement(i, Ht({}, u, { defaultRender: s })); + }; + return l; + }), a = function(s) { + var l = s.defaultRender; + return W.createElement(t, Ht({}, s, { defaultRender: l ? o(l) : i })); + }; + return a; + }); + return r; +} +var Y4e = HA(K4e); +function c0(e, t) { + return Y4e(e)(t); +} +function yoe(e, t) { + return e[t] !== void 0 && e[t] !== null; +} +function $E() { + for (var e = [], t = 0; t < arguments.length; t++) + e[t] = arguments[t]; + for (var r = [], n = 0, i = e; n < i.length; n++) { + var o = i[n]; + if (o) + if (typeof o == "string") + r.push(o); + else if (o.hasOwnProperty("toString") && typeof o.toString == "function") + r.push(o.toString()); + else + for (var a in o) + o[a] && r.push(a); + } + return r.join(" "); +} +var X4e = "customizations", Q4e = { settings: {}, scopedSettings: {}, inCustomizerContext: !1 }, G_ = r_e.getValue(X4e, { + settings: {}, + scopedSettings: {}, + inCustomizerContext: !1 +}), f2 = [], kb = ( + /** @class */ + function() { + function e() { + } + return e.reset = function() { + G_.settings = {}, G_.scopedSettings = {}; + }, e.applySettings = function(t) { + G_.settings = Ht(Ht({}, G_.settings), t), e._raiseChange(); + }, e.applyScopedSettings = function(t, r) { + G_.scopedSettings[t] = Ht(Ht({}, G_.scopedSettings[t]), r), e._raiseChange(); + }, e.getSettings = function(t, r, n) { + n === void 0 && (n = Q4e); + for (var i = {}, o = r && n.scopedSettings[r] || {}, a = r && G_.scopedSettings[r] || {}, s = 0, l = t; s < l.length; s++) { + var u = l[s]; + i[u] = o[u] || n.settings[u] || a[u] || G_.settings[u]; + } + return i; + }, e.applyBatchedUpdates = function(t, r) { + e._suppressUpdates = !0; + try { + t(); + } catch { + } + e._suppressUpdates = !1, r || e._raiseChange(); + }, e.observe = function(t) { + f2.push(t); + }, e.unobserve = function(t) { + f2 = f2.filter(function(r) { + return r !== t; + }); + }, e._raiseChange = function() { + e._suppressUpdates || f2.forEach(function(t) { + return t(); + }); + }, e; + }() +), SL = W.createContext({ + customizations: { + inCustomizerContext: !1, + settings: {}, + scopedSettings: {} + } +}); +function Z4e(e, t) { + e === void 0 && (e = {}); + var r = l_e(t) ? t : eBe(t); + return r(e); +} +function J4e(e, t) { + e === void 0 && (e = {}); + var r = l_e(t) ? t : tBe(t); + return r(e); +} +function l_e(e) { + return typeof e == "function"; +} +function eBe(e) { + return function(t) { + return e ? Ht(Ht({}, t), e) : t; + }; +} +function tBe(e) { + return e === void 0 && (e = {}), function(t) { + var r = Ht({}, t); + for (var n in e) + e.hasOwnProperty(n) && (r[n] = Ht(Ht({}, t[n]), e[n])); + return r; + }; +} +function rBe(e, t) { + var r = (t || {}).customizations, n = r === void 0 ? { settings: {}, scopedSettings: {} } : r; + return { + customizations: { + settings: Z4e(n.settings, e.settings), + scopedSettings: J4e(n.scopedSettings, e.scopedSettings), + inCustomizerContext: !0 + } + }; +} +var nBe = ( + /** @class */ + function(e) { + fy(t, e); + function t() { + var r = e !== null && e.apply(this, arguments) || this; + return r._onCustomizationChange = function() { + return r.forceUpdate(); + }, r; + } + return t.prototype.componentDidMount = function() { + kb.observe(this._onCustomizationChange); + }, t.prototype.componentWillUnmount = function() { + kb.unobserve(this._onCustomizationChange); + }, t.prototype.render = function() { + var r = this, n = this.props.contextTransform; + return W.createElement(SL.Consumer, null, function(i) { + var o = rBe(r.props, i); + return n && (o = n(o)), W.createElement(SL.Provider, { value: o }, r.props.children); + }); + }, t; + }(W.Component) +); +function iBe(e, t) { + var r = oBe(), n = W.useContext(SL).customizations, i = n.inCustomizerContext; + return W.useEffect(function() { + return i || kb.observe(r), function() { + i || kb.unobserve(r); + }; + }, [i]), kb.getSettings(e, t, n); +} +function oBe() { + var e = W.useState(0), t = e[1]; + return function() { + return t(function(r) { + return ++r; + }); + }; +} +function aBe(e, t) { + for (var r in t) + t.hasOwnProperty(r) && (e[r] = b4e(e, e[r], t[r])); +} +var xL = "__currentId__", sBe = "id__", wL = gc() || {}; +wL[xL] === void 0 && (wL[xL] = 0); +var boe = !1; +function Qx(e) { + if (!boe) { + var t = tg.getInstance(); + t && t.onReset && t.onReset(lBe), boe = !0; + } + var r = wL[xL]++; + return (e === void 0 ? sBe : e) + r; +} +function lBe(e) { + e === void 0 && (e = 0), wL[xL] = e; +} +var nc = function() { + for (var e = [], t = 0; t < arguments.length; t++) + e[t] = arguments[t]; + for (var r = {}, n = 0, i = e; n < i.length; n++) + for (var o = i[n], a = Array.isArray(o) ? o : Object.keys(o), s = 0, l = a; s < l.length; s++) { + var u = l[s]; + r[u] = 1; + } + return r; +}, uBe = nc([ + "onCopy", + "onCut", + "onPaste", + "onCompositionEnd", + "onCompositionStart", + "onCompositionUpdate", + "onFocus", + "onFocusCapture", + "onBlur", + "onBlurCapture", + "onChange", + "onInput", + "onSubmit", + "onLoad", + "onError", + "onKeyDown", + "onKeyDownCapture", + "onKeyPress", + "onKeyUp", + "onAbort", + "onCanPlay", + "onCanPlayThrough", + "onDurationChange", + "onEmptied", + "onEncrypted", + "onEnded", + "onLoadedData", + "onLoadedMetadata", + "onLoadStart", + "onPause", + "onPlay", + "onPlaying", + "onProgress", + "onRateChange", + "onSeeked", + "onSeeking", + "onStalled", + "onSuspend", + "onTimeUpdate", + "onVolumeChange", + "onWaiting", + "onClick", + "onClickCapture", + "onContextMenu", + "onDoubleClick", + "onDrag", + "onDragEnd", + "onDragEnter", + "onDragExit", + "onDragLeave", + "onDragOver", + "onDragStart", + "onDrop", + "onMouseDown", + "onMouseDownCapture", + "onMouseEnter", + "onMouseLeave", + "onMouseMove", + "onMouseOut", + "onMouseOver", + "onMouseUp", + "onMouseUpCapture", + "onSelect", + "onTouchCancel", + "onTouchEnd", + "onTouchMove", + "onTouchStart", + "onScroll", + "onWheel", + "onPointerCancel", + "onPointerDown", + "onPointerEnter", + "onPointerLeave", + "onPointerMove", + "onPointerOut", + "onPointerOver", + "onPointerUp", + "onGotPointerCapture", + "onLostPointerCapture" +]), cBe = nc([ + "accessKey", + "children", + "className", + "contentEditable", + "dir", + "draggable", + "hidden", + "htmlFor", + "id", + "lang", + "ref", + "role", + "style", + "tabIndex", + "title", + "translate", + "spellCheck", + "name" + // global +]), _c = nc(cBe, uBe); +nc(_c, [ + "form" + // button, fieldset, input, label, meter, object, output, select, textarea +]); +var fBe = nc(_c, [ + "height", + "loop", + "muted", + "preload", + "src", + "width" + // canvas, embed, iframe, img, input, object, video +]); +nc(fBe, [ + "poster" + // video +]); +nc(_c, [ + "start" + // ol +]); +nc(_c, [ + "value" + // button, input, li, option, meter, progress, param +]); +var dBe = nc(_c, [ + "download", + "href", + "hrefLang", + "media", + "rel", + "target", + "type" + // a, button, input, link, menu, object, script, source, style +]), qA = nc(_c, [ + "autoFocus", + "disabled", + "form", + "formAction", + "formEncType", + "formMethod", + "formNoValidate", + "formTarget", + "type", + "value" + // button, input, li, option, meter, progress, param, +]); +nc(qA, [ + "accept", + "alt", + "autoCapitalize", + "autoComplete", + "checked", + "dirname", + "form", + "height", + "inputMode", + "list", + "max", + "maxLength", + "min", + "minLength", + "multiple", + "pattern", + "placeholder", + "readOnly", + "required", + "src", + "step", + "size", + "type", + "value", + "width" + // canvas, embed, iframe, img, input, object, video +]); +nc(qA, [ + "autoCapitalize", + "cols", + "dirname", + "form", + "maxLength", + "minLength", + "placeholder", + "readOnly", + "required", + "rows", + "wrap" + // textarea +]); +nc(qA, [ + "form", + "multiple", + "required" + // input, select, textarea +]); +nc(_c, [ + "selected", + "value" + // button, input, li, option, meter, progress, param +]); +nc(_c, [ + "cellPadding", + "cellSpacing" + // table +]); +nc(_c, [ + "rowSpan", + "scope" + // th +]); +nc(_c, [ + "colSpan", + "headers", + "rowSpan", + "scope" + // th +]); +nc(_c, [ + "span" + // col, colgroup +]); +nc(_c, [ + "span" + // col, colgroup +]); +nc(_c, [ + "acceptCharset", + "action", + "encType", + "encType", + "method", + "noValidate", + "target" + // form +]); +nc(_c, [ + "allow", + "allowFullScreen", + "allowPaymentRequest", + "allowTransparency", + "csp", + "height", + "importance", + "referrerPolicy", + "sandbox", + "src", + "srcDoc", + "width" + // canvas, embed, iframe, img, input, object, video, +]); +var hBe = nc(_c, [ + "alt", + "crossOrigin", + "height", + "src", + "srcSet", + "useMap", + "width" + // canvas, embed, iframe, img, input, object, video +]), zk = _c; +function Ah(e, t, r) { + for (var n = Array.isArray(t), i = {}, o = Object.keys(e), a = 0, s = o; a < s.length; a++) { + var l = s[a], u = !n && t[l] || n && t.indexOf(l) >= 0 || l.indexOf("data-") === 0 || l.indexOf("aria-") === 0; + u && (!r || (r == null ? void 0 : r.indexOf(l)) === -1) && (i[l] = e[l]); + } + return i; +} +function k4(e) { + aBe(e, { + componentDidMount: pBe, + componentDidUpdate: vBe, + componentWillUnmount: gBe + }); +} +function pBe() { + TL(this.props.componentRef, this); +} +function vBe(e) { + e.componentRef !== this.props.componentRef && (TL(e.componentRef, null), TL(this.props.componentRef, this)); +} +function gBe() { + TL(this.props.componentRef, null); +} +function TL(e, t) { + e && (typeof e == "object" ? e.current = t : typeof e == "function" && e(t)); +} +var Jg, mBe = (Jg = {}, Jg[Ui.up] = 1, Jg[Ui.down] = 1, Jg[Ui.left] = 1, Jg[Ui.right] = 1, Jg[Ui.home] = 1, Jg[Ui.end] = 1, Jg[Ui.tab] = 1, Jg[Ui.pageUp] = 1, Jg[Ui.pageDown] = 1, Jg); +function u_e(e) { + return !!mBe[e]; +} +var yh = "ms-Fabric--isFocusVisible", _oe = "ms-Fabric--isFocusHidden"; +function Eoe(e, t) { + e && (e.classList.add(t ? yh : _oe), e.classList.remove(t ? _oe : yh)); +} +function C4(e, t, r) { + var n; + r ? r.forEach(function(i) { + return Eoe(i.current, e); + }) : Eoe((n = gc(t)) === null || n === void 0 ? void 0 : n.document.body, e); +} +var Soe = /* @__PURE__ */ new WeakMap(), xoe = /* @__PURE__ */ new WeakMap(); +function woe(e, t) { + var r, n = Soe.get(e); + return n ? r = n + t : r = 1, Soe.set(e, r), r; +} +function yBe(e) { + var t = xoe.get(e); + if (t) + return t; + var r = function(a) { + return c_e(a, e.registeredProviders); + }, n = function(a) { + return f_e(a, e.registeredProviders); + }, i = function(a) { + return d_e(a, e.registeredProviders); + }, o = function(a) { + return h_e(a, e.registeredProviders); + }; + return t = { onMouseDown: r, onPointerDown: n, onKeyDown: i, onKeyUp: o }, xoe.set(e, t), t; +} +var AL = W.createContext(void 0); +function bBe(e) { + var t = W.useContext(AL); + W.useEffect(function() { + var r, n, i, o, a = gc(e == null ? void 0 : e.current); + if (!(!a || ((r = a.FabricConfig) === null || r === void 0 ? void 0 : r.disableFocusRects) === !0)) { + var s = a, l, u, f, h; + if (!((n = t == null ? void 0 : t.providerRef) === null || n === void 0) && n.current && (!((o = (i = t == null ? void 0 : t.providerRef) === null || i === void 0 ? void 0 : i.current) === null || o === void 0) && o.addEventListener)) { + s = t.providerRef.current; + var p = ( + /*@__NOINLINE__*/ + yBe(t) + ); + l = p.onMouseDown, u = p.onPointerDown, f = p.onKeyDown, h = p.onKeyUp; + } else + l = c_e, u = f_e, f = d_e, h = h_e; + var g = woe(s, 1); + return g <= 1 && (s.addEventListener("mousedown", l, !0), s.addEventListener("pointerdown", u, !0), s.addEventListener("keydown", f, !0), s.addEventListener("keyup", h, !0)), function() { + var m; + !a || ((m = a.FabricConfig) === null || m === void 0 ? void 0 : m.disableFocusRects) === !0 || (g = woe(s, -1), g === 0 && (s.removeEventListener("mousedown", l, !0), s.removeEventListener("pointerdown", u, !0), s.removeEventListener("keydown", f, !0), s.removeEventListener("keyup", h, !0))); + }; + } + }, [t, e]); +} +var _Be = function(e) { + return bBe(e.rootRef), null; +}; +function c_e(e, t) { + C4(!1, e.target, t); +} +function f_e(e, t) { + e.pointerType !== "mouse" && C4(!1, e.target, t); +} +function d_e(e, t) { + u_e(e.which) && C4(!0, e.target, t); +} +function h_e(e, t) { + u_e(e.which) && C4(!0, e.target, t); +} +var p_e = function(e) { + var t = e.providerRef, r = e.layerRoot, n = W.useState([])[0], i = W.useContext(AL), o = i !== void 0 && !r, a = W.useMemo(function() { + return o ? void 0 : { + providerRef: t, + registeredProviders: n, + registerProvider: function(s) { + n.push(s), i == null || i.registerProvider(s); + }, + unregisterProvider: function(s) { + i == null || i.unregisterProvider(s); + var l = n.indexOf(s); + l >= 0 && n.splice(l, 1); + } + }; + }, [t, n, i, o]); + return W.useEffect(function() { + if (a) + return a.registerProvider(a.providerRef), function() { + return a.unregisterProvider(a.providerRef); + }; + }, [a]), a ? W.createElement(AL.Provider, { value: a }, e.children) : W.createElement(W.Fragment, null, e.children); +}; +function EBe(e) { + var t = null; + try { + var r = gc(); + t = r ? r.localStorage.getItem(e) : null; + } catch { + } + return t; +} +var ex, Toe = "language"; +function SBe(e) { + if (e === void 0 && (e = "sessionStorage"), ex === void 0) { + var t = gp(), r = e === "localStorage" ? EBe(Toe) : e === "sessionStorage" ? n_e(Toe) : void 0; + r && (ex = r), ex === void 0 && t && (ex = t.documentElement.getAttribute("lang")), ex === void 0 && (ex = "en"); + } + return ex; +} +function Aoe(e) { + for (var t = [], r = 1; r < arguments.length; r++) + t[r - 1] = arguments[r]; + for (var n = 0, i = t; n < i.length; n++) { + var o = i[n]; + v_e(e || {}, o); + } + return e; +} +function v_e(e, t, r) { + r === void 0 && (r = []), r.push(t); + for (var n in t) + if (t.hasOwnProperty(n) && n !== "__proto__" && n !== "constructor" && n !== "prototype") { + var i = t[n]; + if (typeof i == "object" && i !== null && !Array.isArray(i)) { + var o = r.indexOf(i) > -1; + e[n] = o ? i : v_e(e[n] || {}, i, r); + } else + e[n] = i; + } + return r.pop(), e; +} +var koe = function() { + return !window || !window.navigator || !window.navigator.userAgent ? !1 : /iPad|iPhone|iPod/i.test(window.navigator.userAgent); +}, xBe = ["TEMPLATE", "STYLE", "SCRIPT"]; +function g_e(e) { + var t = gp(e); + if (!t) + return function() { + }; + for (var r = []; e !== t.body && e.parentElement; ) { + for (var n = 0, i = e.parentElement.children; n < i.length; n++) { + var o = i[n], a = o.getAttribute("aria-hidden"); + o !== e && (a == null ? void 0 : a.toLowerCase()) !== "true" && xBe.indexOf(o.tagName) === -1 && r.push([o, a]); + } + e = e.parentElement; + } + return r.forEach(function(s) { + var l = s[0]; + l.setAttribute("aria-hidden", "true"); + }), function() { + wBe(r), r = []; + }; +} +function wBe(e) { + e.forEach(function(t) { + var r = t[0], n = t[1]; + n ? r.setAttribute("aria-hidden", n) : r.removeAttribute("aria-hidden"); + }); +} +var K$; +function Coe(e) { + var t; + if (typeof K$ > "u" || e) { + var r = gc(), n = (t = r == null ? void 0 : r.navigator) === null || t === void 0 ? void 0 : t.userAgent; + K$ = !!n && n.indexOf("Macintosh") !== -1; + } + return !!K$; +} +function TBe(e) { + var t = HA(function(r) { + var n = HA(function(i) { + return function(o) { + return r(o, i); + }; + }); + return function(i, o) { + return e(i, o ? n(o) : r); + }; + }); + return t; +} +var ABe = HA(TBe); +function kBe(e, t) { + return ABe(e)(t); +} +var CBe = ["theme", "styles"]; +function hy(e, t, r, n, i) { + n = n || { scope: "", fields: void 0 }; + var o = n.scope, a = n.fields, s = a === void 0 ? CBe : a, l = W.forwardRef(function(f, h) { + var p = W.useRef(), g = iBe(s, o), m = g.styles; + g.dir; + var _ = jk(g, ["styles", "dir"]), S = r ? r(f) : void 0, A = p.current && p.current.__cachedInputs__ || [], C = f.styles; + if (!p.current || m !== A[1] || C !== A[2]) { + var N = function(x) { + return Ybe(x, t, m, C); + }; + N.__cachedInputs__ = [ + t, + m, + C + ], N.__noStyleOverride__ = !m && !C, p.current = N; + } + return W.createElement(e, Ht({ ref: h }, _, S, f, { styles: p.current })); + }); + l.displayName = "Styled".concat(e.displayName || e.name); + var u = i ? W.memo(l) : l; + return l.displayName && (u.displayName = l.displayName), u; +} +var m_e = {}, ux; +m_e.NODE_ENV !== "production" && (ux = { + valueOnChange: {}, + valueDefaultValue: {}, + controlledToUncontrolled: {}, + uncontrolledToControlled: {} +}); +function OBe(e) { + if (m_e.NODE_ENV !== "production") { + var t = e.componentId, r = e.componentName, n = e.defaultValueProp, i = e.props, o = e.oldProps, a = e.onChangeProp, s = e.readOnlyProp, l = e.valueProp, u = o ? yoe(o, l) : void 0, f = yoe(i, l); + if (f) { + var h = !!i[a], p = !!(s && i[s]); + !(h || p) && !ux.valueOnChange[t] && (ux.valueOnChange[t] = !0, Ab("Warning: You provided a '".concat(String(l), "' prop to a ").concat(String(r), " without an '").concat(String(a), "' handler. ") + "This will render a read-only field. If the field should be mutable use '".concat(String(n), "'. ") + "Otherwise, set '".concat(String(a), "'").concat(s ? " or '".concat(String(s), "'") : "", "."))); + var g = i[n]; + g != null && !ux.valueDefaultValue[t] && (ux.valueDefaultValue[t] = !0, Ab("Warning: You provided both '".concat(String(l), "' and '").concat(String(n), "' to a ").concat(r, ". ") + "Form fields must be either controlled or uncontrolled (specify either the '".concat(String(l), "' prop, ") + "or the '".concat(String(n), "' prop, but not both). Decide between using a controlled or uncontrolled ") + "".concat(r, " and remove one of these props. More info: https://fb.me/react-controlled-components"))); + } + if (o && f !== u) { + var m = u ? "a controlled" : "an uncontrolled", _ = u ? "uncontrolled" : "controlled", S = u ? ux.controlledToUncontrolled : ux.uncontrolledToControlled; + S[t] || (S[t] = !0, Ab("Warning: A component is changing ".concat(m, " ").concat(r, " to be ").concat(_, ". ") + "".concat(r, "s should not switch from controlled to uncontrolled (or vice versa). ") + "Decide between using controlled or uncontrolled for the lifetime of the component. More info: https://fb.me/react-controlled-components")); + } + } +} +function yD(e, t) { + for (var r = Ht({}, t), n = 0, i = Object.keys(e); n < i.length; n++) { + var o = i[n]; + r[o] === void 0 && (r[o] = e[o]); + } + return r; +} +var RBe = function(e) { + return function(t) { + for (var r = 0, n = e.refs; r < n.length; r++) { + var i = n[r]; + typeof i == "function" ? i(t) : i && (i.current = t); + } + }; +}, NBe = function(e) { + var t = { + refs: [] + }; + return function() { + for (var r = [], n = 0; n < arguments.length; n++) + r[n] = arguments[n]; + return (!t.resolver || !E4e(t.refs, r)) && (t.resolver = RBe(t)), t.refs = r, t.resolver; + }; +}, WA = fQ() ? W.useLayoutEffect : W.useEffect, IBe = "icons", j1 = r_e.getValue(IBe, { + __options: { + disableWarnings: !1, + warnOnMissingIcons: !0 + }, + __remapped: {} +}), Y$ = tg.getInstance(); +Y$ && Y$.onReset && Y$.onReset(function() { + for (var e in j1) + j1.hasOwnProperty(e) && j1[e].subset && (j1[e].subset.className = void 0); +}); +var kL = function(e) { + return e.toLowerCase(); +}; +function Xc(e, t) { + var r = Ht(Ht({}, e), { isRegistered: !1, className: void 0 }), n = e.icons; + t = t ? Ht(Ht({}, j1.__options), t) : j1.__options; + for (var i in n) + if (n.hasOwnProperty(i)) { + var o = n[i], a = kL(i); + j1[a] ? MBe(i) : j1[a] = { + code: o, + subset: r + }; + } +} +function tx(e, t) { + j1.__remapped[kL(e)] = kL(t); +} +function DBe(e) { + var t = void 0, r = j1.__options; + if (e = e ? kL(e) : "", e = j1.__remapped[e] || e, e) + if (t = j1[e], t) { + var n = t.subset; + n && n.fontFace && (n.isRegistered || (Xbe(n.fontFace), n.isRegistered = !0), n.className || (n.className = ua(n.style, { + fontFamily: n.fontFace.fontFamily, + fontWeight: n.fontFace.fontWeight || "normal", + fontStyle: n.fontFace.fontStyle || "normal" + }))); + } else + !r.disableWarnings && r.warnOnMissingIcons && Ab('The icon "'.concat(e, '" was used but not registered. See https://github.com/microsoft/fluentui/wiki/Using-icons for more information.')); + return t; +} +var QO = [], X$ = void 0; +function MBe(e) { + var t = j1.__options, r = 2e3, n = 10; + t.disableWarnings || (QO.push(e), X$ === void 0 && (X$ = setTimeout(function() { + Ab(`Some icons were re-registered. Applications should only call registerIcons for any given icon once. Redefining what an icon is may have unintended consequences. Duplicates include: +` + QO.slice(0, n).join(", ") + (QO.length > n ? " (+ ".concat(QO.length - n, " more)") : "")), X$ = void 0, QO = []; + }, r))); +} +function LBe(e, t, r, n, i) { + i === void 0 && (i = !1); + var o = Ht({ + primaryButtonBorder: "transparent", + errorText: n ? "#F1707B" : "#a4262c", + messageText: n ? "#F3F2F1" : "#323130", + messageLink: n ? "#6CB8F6" : "#005A9E", + messageLinkHovered: n ? "#82C7FF" : "#004578", + infoIcon: n ? "#C8C6C4" : "#605e5c", + errorIcon: n ? "#F1707B" : "#A80000", + blockingIcon: n ? "#442726" : "#FDE7E9", + warningIcon: n ? "#C8C6C4" : "#797775", + severeWarningIcon: n ? "#FCE100" : "#D83B01", + successIcon: n ? "#92C353" : "#107C10", + infoBackground: n ? "#323130" : "#f3f2f1", + errorBackground: n ? "#442726" : "#FDE7E9", + blockingBackground: n ? "#442726" : "#FDE7E9", + warningBackground: n ? "#433519" : "#FFF4CE", + severeWarningBackground: n ? "#4F2A0F" : "#FED9CC", + successBackground: n ? "#393D1B" : "#DFF6DD", + // deprecated + warningHighlight: n ? "#fff100" : "#ffb900", + successText: n ? "#92c353" : "#107C10" + }, r), a = y_e(e, t, o, n); + return FBe(a, i); +} +function y_e(e, t, r, n, i) { + var o = {}, a = e || {}, s = a.white, l = a.black, u = a.themePrimary, f = a.themeDark, h = a.themeDarker, p = a.themeDarkAlt, g = a.themeLighter, m = a.neutralLight, _ = a.neutralLighter, S = a.neutralDark, A = a.neutralQuaternary, C = a.neutralQuaternaryAlt, N = a.neutralPrimary, x = a.neutralSecondary, R = a.neutralSecondaryAlt, D = a.neutralTertiary, M = a.neutralTertiaryAlt, j = a.neutralLighterAlt, F = a.accent; + return s && (o.bodyBackground = s, o.bodyFrameBackground = s, o.accentButtonText = s, o.buttonBackground = s, o.primaryButtonText = s, o.primaryButtonTextHovered = s, o.primaryButtonTextPressed = s, o.inputBackground = s, o.inputForegroundChecked = s, o.listBackground = s, o.menuBackground = s, o.cardStandoutBackground = s), l && (o.bodyTextChecked = l, o.buttonTextCheckedHovered = l), u && (o.link = u, o.primaryButtonBackground = u, o.inputBackgroundChecked = u, o.inputIcon = u, o.inputFocusBorderAlt = u, o.menuIcon = u, o.menuHeader = u, o.accentButtonBackground = u), f && (o.primaryButtonBackgroundPressed = f, o.inputBackgroundCheckedHovered = f, o.inputIconHovered = f), h && (o.linkHovered = h), p && (o.primaryButtonBackgroundHovered = p), g && (o.inputPlaceholderBackgroundChecked = g), m && (o.bodyBackgroundChecked = m, o.bodyFrameDivider = m, o.bodyDivider = m, o.variantBorder = m, o.buttonBackgroundCheckedHovered = m, o.buttonBackgroundPressed = m, o.listItemBackgroundChecked = m, o.listHeaderBackgroundPressed = m, o.menuItemBackgroundPressed = m, o.menuItemBackgroundChecked = m), _ && (o.bodyBackgroundHovered = _, o.buttonBackgroundHovered = _, o.buttonBackgroundDisabled = _, o.buttonBorderDisabled = _, o.primaryButtonBackgroundDisabled = _, o.disabledBackground = _, o.listItemBackgroundHovered = _, o.listHeaderBackgroundHovered = _, o.menuItemBackgroundHovered = _), A && (o.primaryButtonTextDisabled = A, o.disabledSubtext = A), C && (o.listItemBackgroundCheckedHovered = C), D && (o.disabledBodyText = D, o.variantBorderHovered = (r == null ? void 0 : r.variantBorderHovered) || D, o.buttonTextDisabled = D, o.inputIconDisabled = D, o.disabledText = D), N && (o.bodyText = N, o.actionLink = N, o.buttonText = N, o.inputBorderHovered = N, o.inputText = N, o.listText = N, o.menuItemText = N), j && (o.bodyStandoutBackground = j, o.defaultStateBackground = j), S && (o.actionLinkHovered = S, o.buttonTextHovered = S, o.buttonTextChecked = S, o.buttonTextPressed = S, o.inputTextHovered = S, o.menuItemTextHovered = S), x && (o.bodySubtext = x, o.focusBorder = x, o.inputBorder = x, o.smallInputBorder = x, o.inputPlaceholderText = x), R && (o.buttonBorder = R), M && (o.disabledBodySubtext = M, o.disabledBorder = M, o.buttonBackgroundChecked = M, o.menuDivider = M), F && (o.accentButtonBackground = F), t != null && t.elevation4 && (o.cardShadow = t.elevation4), !n && (t != null && t.elevation8) ? o.cardShadowHovered = t.elevation8 : o.variantBorderHovered && (o.cardShadowHovered = "0 0 1px " + o.variantBorderHovered), o = Ht(Ht({}, o), r), o; +} +function FBe(e, t) { + var r = ""; + return t === !0 && (r = " /* @deprecated */"), e.listTextColor = e.listText + r, e.menuItemBackgroundChecked += r, e.warningHighlight += r, e.warningText = e.messageText + r, e.successText += r, e; +} +function BBe(e, t) { + var r, n, i; + t === void 0 && (t = {}); + var o = Aoe({}, e, t, { + semanticColors: y_e(t.palette, t.effects, t.semanticColors, t.isInverted === void 0 ? e.isInverted : t.isInverted) + }); + if (!((r = t.palette) === null || r === void 0) && r.themePrimary && !(!((n = t.palette) === null || n === void 0) && n.accent) && (o.palette.accent = t.palette.themePrimary), t.defaultFontStyle) + for (var a = 0, s = Object.keys(o.fonts); a < s.length; a++) { + var l = s[a]; + o.fonts[l] = Aoe(o.fonts[l], t.defaultFontStyle, (i = t == null ? void 0 : t.fonts) === null || i === void 0 ? void 0 : i[l]); + } + return o; +} +var Ooe = { + themeDarker: "#004578", + themeDark: "#005a9e", + themeDarkAlt: "#106ebe", + themePrimary: "#0078d4", + themeSecondary: "#2b88d8", + themeTertiary: "#71afe5", + themeLight: "#c7e0f4", + themeLighter: "#deecf9", + themeLighterAlt: "#eff6fc", + black: "#000000", + blackTranslucent40: "rgba(0,0,0,.4)", + neutralDark: "#201f1e", + neutralPrimary: "#323130", + neutralPrimaryAlt: "#3b3a39", + neutralSecondary: "#605e5c", + neutralSecondaryAlt: "#8a8886", + neutralTertiary: "#a19f9d", + neutralTertiaryAlt: "#c8c6c4", + neutralQuaternary: "#d2d0ce", + neutralQuaternaryAlt: "#e1dfdd", + neutralLight: "#edebe9", + neutralLighter: "#f3f2f1", + neutralLighterAlt: "#faf9f8", + accent: "#0078d4", + white: "#ffffff", + whiteTranslucent40: "rgba(255,255,255,.4)", + yellowDark: "#d29200", + yellow: "#ffb900", + yellowLight: "#fff100", + orange: "#d83b01", + orangeLight: "#ea4300", + orangeLighter: "#ff8c00", + redDark: "#a4262c", + red: "#e81123", + magentaDark: "#5c005c", + magenta: "#b4009e", + magentaLight: "#e3008c", + purpleDark: "#32145a", + purple: "#5c2d91", + purpleLight: "#b4a0ff", + blueDark: "#002050", + blueMid: "#00188f", + blue: "#0078d4", + blueLight: "#00bcf2", + tealDark: "#004b50", + teal: "#008272", + tealLight: "#00b294", + greenDark: "#004b1c", + green: "#107c10", + greenLight: "#bad80a" +}, rA; +(function(e) { + e.depth0 = "0 0 0 0 transparent", e.depth4 = "0 1.6px 3.6px 0 rgba(0, 0, 0, 0.132), 0 0.3px 0.9px 0 rgba(0, 0, 0, 0.108)", e.depth8 = "0 3.2px 7.2px 0 rgba(0, 0, 0, 0.132), 0 0.6px 1.8px 0 rgba(0, 0, 0, 0.108)", e.depth16 = "0 6.4px 14.4px 0 rgba(0, 0, 0, 0.132), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.108)", e.depth64 = "0 25.6px 57.6px 0 rgba(0, 0, 0, 0.22), 0 4.8px 14.4px 0 rgba(0, 0, 0, 0.18)"; +})(rA || (rA = {})); +var Roe = { + elevation4: rA.depth4, + elevation8: rA.depth8, + elevation16: rA.depth16, + elevation64: rA.depth64, + roundedCorner2: "2px", + roundedCorner4: "4px", + roundedCorner6: "6px" +}, $Be = { + s2: "4px", + s1: "8px", + m: "16px", + l1: "20px", + l2: "32px" +}, tl = "cubic-bezier(.1,.9,.2,1)", R1 = "cubic-bezier(.1,.25,.75,.9)", IR = "0.167s", gG = "0.267s", ws = "0.367s", mG = "0.467s", ed = ug({ + from: { opacity: 0 }, + to: { opacity: 1 } +}), td = ug({ + from: { opacity: 1 }, + to: { opacity: 0, visibility: "hidden" } +}), PBe = ZE(-10), jBe = ZE(-20), zBe = ZE(-40), HBe = ZE(-400), qBe = ZE(10), WBe = ZE(20), VBe = ZE(40), UBe = ZE(400), GBe = O4(10), KBe = O4(20), YBe = O4(-10), XBe = O4(-20), QBe = JE(10), ZBe = JE(20), JBe = JE(40), e3e = JE(400), t3e = JE(-10), r3e = JE(-20), n3e = JE(-40), i3e = JE(-400), o3e = R4(-10), a3e = R4(-20), s3e = R4(10), l3e = R4(20), u3e = ug({ + from: { transform: "scale3d(.98,.98,1)" }, + to: { transform: "scale3d(1,1,1)" } +}), c3e = ug({ + from: { transform: "scale3d(1,1,1)" }, + to: { transform: "scale3d(.98,.98,1)" } +}), f3e = ug({ + from: { transform: "scale3d(1.03,1.03,1)" }, + to: { transform: "scale3d(1,1,1)" } +}), d3e = ug({ + from: { transform: "scale3d(1,1,1)" }, + to: { transform: "scale3d(1.03,1.03,1)" } +}), h3e = ug({ + from: { transform: "rotateZ(0deg)" }, + to: { transform: "rotateZ(90deg)" } +}), p3e = ug({ + from: { transform: "rotateZ(0deg)" }, + to: { transform: "rotateZ(-90deg)" } +}), v3e = { + easeFunction1: tl, + easeFunction2: R1, + durationValue1: IR, + durationValue2: gG, + durationValue3: ws, + durationValue4: mG +}, g3e = { + slideRightIn10: Vo("".concat(ed, ",").concat(PBe), ws, tl), + slideRightIn20: Vo("".concat(ed, ",").concat(jBe), ws, tl), + slideRightIn40: Vo("".concat(ed, ",").concat(zBe), ws, tl), + slideRightIn400: Vo("".concat(ed, ",").concat(HBe), ws, tl), + slideLeftIn10: Vo("".concat(ed, ",").concat(qBe), ws, tl), + slideLeftIn20: Vo("".concat(ed, ",").concat(WBe), ws, tl), + slideLeftIn40: Vo("".concat(ed, ",").concat(VBe), ws, tl), + slideLeftIn400: Vo("".concat(ed, ",").concat(UBe), ws, tl), + slideUpIn10: Vo("".concat(ed, ",").concat(GBe), ws, tl), + slideUpIn20: Vo("".concat(ed, ",").concat(KBe), ws, tl), + slideDownIn10: Vo("".concat(ed, ",").concat(YBe), ws, tl), + slideDownIn20: Vo("".concat(ed, ",").concat(XBe), ws, tl), + slideRightOut10: Vo("".concat(td, ",").concat(QBe), ws, tl), + slideRightOut20: Vo("".concat(td, ",").concat(ZBe), ws, tl), + slideRightOut40: Vo("".concat(td, ",").concat(JBe), ws, tl), + slideRightOut400: Vo("".concat(td, ",").concat(e3e), ws, tl), + slideLeftOut10: Vo("".concat(td, ",").concat(t3e), ws, tl), + slideLeftOut20: Vo("".concat(td, ",").concat(r3e), ws, tl), + slideLeftOut40: Vo("".concat(td, ",").concat(n3e), ws, tl), + slideLeftOut400: Vo("".concat(td, ",").concat(i3e), ws, tl), + slideUpOut10: Vo("".concat(td, ",").concat(o3e), ws, tl), + slideUpOut20: Vo("".concat(td, ",").concat(a3e), ws, tl), + slideDownOut10: Vo("".concat(td, ",").concat(s3e), ws, tl), + slideDownOut20: Vo("".concat(td, ",").concat(l3e), ws, tl), + scaleUpIn100: Vo("".concat(ed, ",").concat(u3e), ws, tl), + scaleDownIn100: Vo("".concat(ed, ",").concat(f3e), ws, tl), + scaleUpOut103: Vo("".concat(td, ",").concat(d3e), IR, R1), + scaleDownOut98: Vo("".concat(td, ",").concat(c3e), IR, R1), + fadeIn100: Vo(ed, IR, R1), + fadeIn200: Vo(ed, gG, R1), + fadeIn400: Vo(ed, ws, R1), + fadeIn500: Vo(ed, mG, R1), + fadeOut100: Vo(td, IR, R1), + fadeOut200: Vo(td, gG, R1), + fadeOut400: Vo(td, ws, R1), + fadeOut500: Vo(td, mG, R1), + rotate90deg: Vo(h3e, "0.1s", R1), + rotateN90deg: Vo(p3e, "0.1s", R1) + // expandCollapse 100/200/400, delay 100/200 +}; +function Vo(e, t, r) { + return { + animationName: e, + animationDuration: t, + animationTimingFunction: r, + animationFillMode: "both" + }; +} +function ZE(e) { + return ug({ + from: { transform: "translate3d(".concat(e, "px,0,0)"), pointerEvents: "none" }, + to: { transform: "translate3d(0,0,0)", pointerEvents: "auto" } + }); +} +function O4(e) { + return ug({ + from: { transform: "translate3d(0,".concat(e, "px,0)"), pointerEvents: "none" }, + to: { transform: "translate3d(0,0,0)", pointerEvents: "auto" } + }); +} +function JE(e) { + return ug({ + from: { transform: "translate3d(0,0,0)" }, + to: { transform: "translate3d(".concat(e, "px,0,0)") } + }); +} +function R4(e) { + return ug({ + from: { transform: "translate3d(0,0,0)" }, + to: { transform: "translate3d(0,".concat(e, "px,0)") } + }); +} +var Lu; +(function(e) { + e.Arabic = "Segoe UI Web (Arabic)", e.Cyrillic = "Segoe UI Web (Cyrillic)", e.EastEuropean = "Segoe UI Web (East European)", e.Greek = "Segoe UI Web (Greek)", e.Hebrew = "Segoe UI Web (Hebrew)", e.Thai = "Leelawadee UI Web", e.Vietnamese = "Segoe UI Web (Vietnamese)", e.WestEuropean = "Segoe UI Web (West European)", e.Selawik = "Selawik Web", e.Armenian = "Segoe UI Web (Armenian)", e.Georgian = "Segoe UI Web (Georgian)"; +})(Lu || (Lu = {})); +var Ts; +(function(e) { + e.Arabic = "'".concat(Lu.Arabic, "'"), e.ChineseSimplified = "'Microsoft Yahei UI', Verdana, Simsun", e.ChineseTraditional = "'Microsoft Jhenghei UI', Pmingliu", e.Cyrillic = "'".concat(Lu.Cyrillic, "'"), e.EastEuropean = "'".concat(Lu.EastEuropean, "'"), e.Greek = "'".concat(Lu.Greek, "'"), e.Hebrew = "'".concat(Lu.Hebrew, "'"), e.Hindi = "'Nirmala UI'", e.Japanese = "'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka", e.Korean = "'Malgun Gothic', Gulim", e.Selawik = "'".concat(Lu.Selawik, "'"), e.Thai = "'Leelawadee UI Web', 'Kmer UI'", e.Vietnamese = "'".concat(Lu.Vietnamese, "'"), e.WestEuropean = "'".concat(Lu.WestEuropean, "'"), e.Armenian = "'".concat(Lu.Armenian, "'"), e.Georgian = "'".concat(Lu.Georgian, "'"); +})(Ts || (Ts = {})); +var rp; +(function(e) { + e.size10 = "10px", e.size12 = "12px", e.size14 = "14px", e.size16 = "16px", e.size18 = "18px", e.size20 = "20px", e.size24 = "24px", e.size28 = "28px", e.size32 = "32px", e.size42 = "42px", e.size68 = "68px", e.mini = "10px", e.xSmall = "10px", e.small = "12px", e.smallPlus = "12px", e.medium = "14px", e.mediumPlus = "16px", e.icon = "16px", e.large = "18px", e.xLarge = "20px", e.xLargePlus = "24px", e.xxLarge = "28px", e.xxLargePlus = "32px", e.superLarge = "42px", e.mega = "68px"; +})(rp || (rp = {})); +var tu; +(function(e) { + e.light = 100, e.semilight = 300, e.regular = 400, e.semibold = 600, e.bold = 700; +})(tu || (tu = {})); +var cE; +(function(e) { + e.xSmall = "10px", e.small = "12px", e.medium = "16px", e.large = "20px"; +})(cE || (cE = {})); +var m3e = "'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif", y3e = "'Segoe UI', '".concat(Lu.WestEuropean, "'"), Q$ = { + ar: Ts.Arabic, + bg: Ts.Cyrillic, + cs: Ts.EastEuropean, + el: Ts.Greek, + et: Ts.EastEuropean, + he: Ts.Hebrew, + hi: Ts.Hindi, + hr: Ts.EastEuropean, + hu: Ts.EastEuropean, + ja: Ts.Japanese, + kk: Ts.EastEuropean, + ko: Ts.Korean, + lt: Ts.EastEuropean, + lv: Ts.EastEuropean, + pl: Ts.EastEuropean, + ru: Ts.Cyrillic, + sk: Ts.EastEuropean, + "sr-latn": Ts.EastEuropean, + th: Ts.Thai, + tr: Ts.EastEuropean, + uk: Ts.Cyrillic, + vi: Ts.Vietnamese, + "zh-hans": Ts.ChineseSimplified, + "zh-hant": Ts.ChineseTraditional, + hy: Ts.Armenian, + ka: Ts.Georgian +}; +function b3e(e) { + return "".concat(e, ", ").concat(m3e); +} +function _3e(e) { + for (var t in Q$) + if (Q$.hasOwnProperty(t) && e && t.indexOf(e) === 0) + return Q$[t]; + return y3e; +} +function C1(e, t, r) { + return { + fontFamily: r, + MozOsxFontSmoothing: "grayscale", + WebkitFontSmoothing: "antialiased", + fontSize: e, + fontWeight: t + }; +} +function E3e(e) { + var t = _3e(e), r = b3e(t), n = { + tiny: C1(rp.mini, tu.regular, r), + xSmall: C1(rp.xSmall, tu.regular, r), + small: C1(rp.small, tu.regular, r), + smallPlus: C1(rp.smallPlus, tu.regular, r), + medium: C1(rp.medium, tu.regular, r), + mediumPlus: C1(rp.mediumPlus, tu.regular, r), + large: C1(rp.large, tu.regular, r), + xLarge: C1(rp.xLarge, tu.semibold, r), + xLargePlus: C1(rp.xLargePlus, tu.semibold, r), + xxLarge: C1(rp.xxLarge, tu.semibold, r), + xxLargePlus: C1(rp.xxLargePlus, tu.semibold, r), + superLarge: C1(rp.superLarge, tu.semibold, r), + mega: C1(rp.mega, tu.semibold, r) + }; + return n; +} +var S3e = "https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets", x3e = E3e(SBe()); +function _x(e, t, r, n) { + e = "'".concat(e, "'"); + var i = n !== void 0 ? "local('".concat(n, "'),") : ""; + Xbe({ + fontFamily: e, + src: i + "url('".concat(t, ".woff2') format('woff2'),") + "url('".concat(t, ".woff') format('woff')"), + fontWeight: r, + fontStyle: "normal", + fontDisplay: "swap" + }); +} +function e0(e, t, r, n, i) { + n === void 0 && (n = "segoeui"); + var o = "".concat(e, "/").concat(r, "/").concat(n); + _x(t, o + "-light", tu.light, i && i + " Light"), _x(t, o + "-semilight", tu.semilight, i && i + " SemiLight"), _x(t, o + "-regular", tu.regular, i), _x(t, o + "-semibold", tu.semibold, i && i + " SemiBold"), _x(t, o + "-bold", tu.bold, i && i + " Bold"); +} +function w3e(e) { + if (e) { + var t = "".concat(e, "/fonts"); + e0(t, Lu.Thai, "leelawadeeui-thai", "leelawadeeui"), e0(t, Lu.Arabic, "segoeui-arabic"), e0(t, Lu.Cyrillic, "segoeui-cyrillic"), e0(t, Lu.EastEuropean, "segoeui-easteuropean"), e0(t, Lu.Greek, "segoeui-greek"), e0(t, Lu.Hebrew, "segoeui-hebrew"), e0(t, Lu.Vietnamese, "segoeui-vietnamese"), e0(t, Lu.WestEuropean, "segoeui-westeuropean", "segoeui", "Segoe UI"), e0(t, Ts.Selawik, "selawik", "selawik"), e0(t, Lu.Armenian, "segoeui-armenian"), e0(t, Lu.Georgian, "segoeui-georgian"), _x("Leelawadee UI Web", "".concat(t, "/leelawadeeui-thai/leelawadeeui-semilight"), tu.light), _x("Leelawadee UI Web", "".concat(t, "/leelawadeeui-thai/leelawadeeui-bold"), tu.semibold); + } +} +function T3e() { + var e, t, r = (e = gc()) === null || e === void 0 ? void 0 : e.FabricConfig; + return (t = r == null ? void 0 : r.fontBaseUrl) !== null && t !== void 0 ? t : S3e; +} +w3e(T3e()); +function bD(e, t) { + e === void 0 && (e = {}), t === void 0 && (t = !1); + var r = !!e.isInverted, n = { + palette: Ooe, + effects: Roe, + fonts: x3e, + spacing: $Be, + isInverted: r, + disableGlobalClassNames: !1, + semanticColors: LBe(Ooe, Roe, void 0, r, t), + rtl: void 0 + }; + return BBe(n, e); +} +var _A = "@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)", A3e = 640, b_e = A3e - 1; +function E_e(e, t) { + var r = typeof e == "number" ? " and (min-width: ".concat(e, "px)") : "", n = typeof t == "number" ? " and (max-width: ".concat(t, "px)") : ""; + return "@media only screen".concat(r).concat(n); +} +function k3e() { + return { + forcedColorAdjust: "none", + MsHighContrastAdjust: "none" + }; +} +var VA; +(function(e) { + e.Nav = 1, e.ScrollablePane = 1, e.FocusStyle = 1, e.Coachmark = 1e3, e.Layer = 1e6, e.KeytipLayer = 1000001; +})(VA || (VA = {})); +function Noe(e, t, r, n, i, o, a, s) { + return typeof t == "number" || !t ? Ioe(e, { + inset: t, + position: r, + highContrastStyle: n, + borderColor: i, + outlineColor: o, + isFocusedOnly: a, + borderRadius: s + }) : Ioe(e, t); +} +function Ioe(e, t) { + var r, n; + t === void 0 && (t = {}); + var i = t.borderRadius, o = t.inset, a = o === void 0 ? 0 : o, s = t.width, l = s === void 0 ? 1 : s, u = t.position, f = u === void 0 ? "relative" : u, h = t.highContrastStyle, p = t.borderColor, g = p === void 0 ? e.palette.white : p, m = t.outlineColor, _ = m === void 0 ? e.palette.neutralSecondary : m, S = t.isFocusedOnly, A = S === void 0 ? !0 : S, C = t.pointerEvents; + return { + // Clear browser-specific focus styles and use 'transparent' as placeholder for focus style. + outline: "transparent", + // Requirement because pseudo-element is absolutely positioned. + position: f, + selectors: (r = { + // Clear the focus border in Firefox. + // Reference: http://stackoverflow.com/a/199319/1436671 + "::-moz-focus-inner": { + border: "0" + } + }, // When the element that uses this mixin is in a :focus state, add a pseudo-element to + // create a border. + r[".".concat(yh, " &").concat(A ? ":focus" : "", ":after")] = { + content: '""', + position: "absolute", + pointerEvents: C, + left: a + 1, + top: a + 1, + bottom: a + 1, + right: a + 1, + border: "".concat(l, "px solid ").concat(g), + outline: "".concat(l, "px solid ").concat(_), + zIndex: VA.FocusStyle, + borderRadius: i, + selectors: (n = {}, n[_A] = h, n) + }, r) + }; +} +function C3e() { + return { + selectors: { + "&::-moz-focus-inner": { + // Clear the focus border in Firefox. Reference: http://stackoverflow.com/a/199319/1436671 + border: 0 + }, + "&": { + // Clear browser specific focus styles and use transparent as placeholder for focus style + outline: "transparent" + } + } + }; +} +var O3e = { + position: "absolute", + width: 1, + height: 1, + margin: -1, + padding: 0, + border: 0, + overflow: "hidden", + whiteSpace: "nowrap" +}, R3e = Ep(function(e, t) { + var r = tg.getInstance(); + return t ? Object.keys(e).reduce(function(n, i) { + return n[i] = r.getClassName(e[i]), n; + }, {}) : e; +}); +function py(e, t, r) { + return R3e(e, r !== void 0 ? r : t.disableGlobalClassNames); +} +var nA = function() { + return nA = Object.assign || function(e) { + for (var t, r = 1, n = arguments.length; r < n; r++) { + t = arguments[r]; + for (var i in t) + Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); + } + return e; + }, nA.apply(this, arguments); +}, rN = typeof window > "u" ? global : window, Doe = rN && rN.CSPSettings && rN.CSPSettings.nonce, z1 = N3e(); +function N3e() { + var e = rN.__themeState__ || { + theme: void 0, + lastStyleElement: void 0, + registeredStyles: [] + }; + return e.runState || (e = nA(nA({}, e), { perf: { + count: 0, + duration: 0 + }, runState: { + flushTimer: 0, + mode: 0, + buffer: [] + } })), e.registeredThemableStyles || (e = nA(nA({}, e), { registeredThemableStyles: [] })), rN.__themeState__ = e, e; +} +function I3e(e, t) { + z1.loadStyles ? z1.loadStyles(S_e(e).styleString, e) : F3e(e); +} +function D3e(e) { + z1.theme = e, L3e(); +} +function M3e(e) { + e === void 0 && (e = 3), (e === 3 || e === 2) && (Moe(z1.registeredStyles), z1.registeredStyles = []), (e === 3 || e === 1) && (Moe(z1.registeredThemableStyles), z1.registeredThemableStyles = []); +} +function Moe(e) { + e.forEach(function(t) { + var r = t && t.styleElement; + r && r.parentElement && r.parentElement.removeChild(r); + }); +} +function L3e() { + if (z1.theme) { + for (var e = [], t = 0, r = z1.registeredThemableStyles; t < r.length; t++) { + var n = r[t]; + e.push(n.themableStyle); + } + e.length > 0 && (M3e( + 1 + /* ClearStyleOptions.onlyThemable */ + ), I3e([].concat.apply([], e))); + } +} +function S_e(e) { + var t = z1.theme, r = !1, n = (e || []).map(function(i) { + var o = i.theme; + if (o) { + r = !0; + var a = t ? t[o] : void 0, s = i.defaultValue || "inherit"; + return t && !a && console && !(o in t) && typeof DEBUG < "u" && DEBUG && console.warn('Theming value not provided for "'.concat(o, '". Falling back to "').concat(s, '".')), a || s; + } else + return i.rawString; + }); + return { + styleString: n.join(""), + themable: r + }; +} +function F3e(e) { + if (!(typeof document > "u")) { + var t = document.getElementsByTagName("head")[0], r = document.createElement("style"), n = S_e(e), i = n.styleString, o = n.themable; + r.setAttribute("data-load-themed-styles", "true"), Doe && r.setAttribute("nonce", Doe), r.appendChild(document.createTextNode(i)), z1.perf.count++, t.appendChild(r); + var a = document.createEvent("HTMLEvents"); + a.initEvent( + "styleinsert", + !0, + !1 + /* cancelable */ + ), a.args = { + newStyle: r + }, document.dispatchEvent(a); + var s = { + styleElement: r, + themableStyle: e + }; + o ? z1.registeredThemableStyles.push(s) : z1.registeredStyles.push(s); + } +} +var Bv = bD({}), B3e = [], yG = "theme"; +function x_e() { + var e, t, r, n = gc(); + !((t = n == null ? void 0 : n.FabricConfig) === null || t === void 0) && t.legacyTheme ? P3e(n.FabricConfig.legacyTheme) : kb.getSettings([yG]).theme || (!((r = n == null ? void 0 : n.FabricConfig) === null || r === void 0) && r.theme && (Bv = bD(n.FabricConfig.theme)), kb.applySettings((e = {}, e[yG] = Bv, e))); +} +x_e(); +function $3e(e) { + return e === void 0 && (e = !1), e === !0 && (Bv = bD({}, e)), Bv; +} +function P3e(e, t) { + var r; + return t === void 0 && (t = !1), Bv = bD(e, t), D3e(Ht(Ht(Ht(Ht({}, Bv.palette), Bv.semanticColors), Bv.effects), j3e(Bv))), kb.applySettings((r = {}, r[yG] = Bv, r)), B3e.forEach(function(n) { + try { + n(Bv); + } catch { + } + }), Bv; +} +function j3e(e) { + for (var t = {}, r = 0, n = Object.keys(e.fonts); r < n.length; r++) + for (var i = n[r], o = e.fonts[i], a = 0, s = Object.keys(o); a < s.length; a++) { + var l = s[a], u = i + l.charAt(0).toUpperCase() + l.slice(1), f = o[l]; + l === "fontSize" && typeof f == "number" && (f = f + "px"), t[u] = f; + } + return t; +} +var DR = o4e(g3e), z3e = "https://res.cdn.office.net/files/fabric-cdn-prod_20230815.002"; +uQ("@fluentui/style-utilities", "8.9.21"); +x_e(); +var Wc = { + /** + * Appear above the target element, with the left edges of the callout and target aligning. + */ + topLeftEdge: 0, + /** + * Appear above the target element, with the centers of the callout and target aligning. + */ + topCenter: 1, + /** + * Appear above the target element, with the right edges of the callout and target aligning. + */ + topRightEdge: 2, + /** + * Appear above the target element, aligning with the target element such that the callout tends toward + * the center of the screen. + */ + topAutoEdge: 3, + /** + * Appear below the target element, with the left edges of the callout and target aligning. + */ + bottomLeftEdge: 4, + /** + * Appear below the target element, with the centers of the callout and target aligning. + */ + bottomCenter: 5, + /** + * Appear below the target element, with the right edges of the callout and target aligning. + */ + bottomRightEdge: 6, + /** + * Appear below the target element, aligning with the target element such that the callout tends toward + * the center of the screen. + */ + bottomAutoEdge: 7, + /** + * Appear to the left of the target element, with the top edges of the callout and target aligning. + */ + leftTopEdge: 8, + /** + * Appear to the left of the target element, with the centers of the callout and target aligning. + */ + leftCenter: 9, + /** + * Appear to the left of the target element, with the bottom edges of the callout and target aligning. + */ + leftBottomEdge: 10, + /** + * Appear to the right of the target element, with the top edges of the callout and target aligning. + */ + rightTopEdge: 11, + /** + * Appear to the right of the target element, with the centers of the callout and target aligning. + */ + rightCenter: 12, + /** + * Appear to the right of the target element, with the bottom edges of the callout and target aligning. + */ + rightBottomEdge: 13 +}, hi; +(function(e) { + e[e.top = 1] = "top", e[e.bottom = -1] = "bottom", e[e.left = 2] = "left", e[e.right = -2] = "right"; +})(hi || (hi = {})); +var Loe; +(function(e) { + e[e.top = 0] = "top", e[e.bottom = 1] = "bottom", e[e.start = 2] = "start", e[e.end = 3] = "end"; +})(Loe || (Loe = {})); +var ph; +function Vp(e, t, r) { + return { + targetEdge: e, + alignmentEdge: t, + isAuto: r + }; +} +var Foe = (ph = {}, ph[Wc.topLeftEdge] = Vp(hi.top, hi.left), ph[Wc.topCenter] = Vp(hi.top), ph[Wc.topRightEdge] = Vp(hi.top, hi.right), ph[Wc.topAutoEdge] = Vp(hi.top, void 0, !0), ph[Wc.bottomLeftEdge] = Vp(hi.bottom, hi.left), ph[Wc.bottomCenter] = Vp(hi.bottom), ph[Wc.bottomRightEdge] = Vp(hi.bottom, hi.right), ph[Wc.bottomAutoEdge] = Vp(hi.bottom, void 0, !0), ph[Wc.leftTopEdge] = Vp(hi.left, hi.top), ph[Wc.leftCenter] = Vp(hi.left), ph[Wc.leftBottomEdge] = Vp(hi.left, hi.bottom), ph[Wc.rightTopEdge] = Vp(hi.right, hi.top), ph[Wc.rightCenter] = Vp(hi.right), ph[Wc.rightBottomEdge] = Vp(hi.right, hi.bottom), ph); +function mQ(e, t) { + return !(e.top < t.top || e.bottom > t.bottom || e.left < t.left || e.right > t.right); +} +function CL(e, t) { + var r = []; + return e.top < t.top && r.push(hi.top), e.bottom > t.bottom && r.push(hi.bottom), e.left < t.left && r.push(hi.left), e.right > t.right && r.push(hi.right), r; +} +function kh(e, t) { + return e[hi[t]]; +} +function Boe(e, t, r) { + return e[hi[t]] = r, e; +} +function LN(e, t) { + var r = Hk(t); + return (kh(e, r.positiveEdge) + kh(e, r.negativeEdge)) / 2; +} +function N4(e, t) { + return e > 0 ? t : t * -1; +} +function bG(e, t) { + return N4(e, kh(t, e)); +} +function Hm(e, t, r) { + var n = kh(e, r) - kh(t, r); + return N4(r, n); +} +function UA(e, t, r, n) { + n === void 0 && (n = !0); + var i = kh(e, t) - r, o = Boe(e, t, r); + return n && (o = Boe(e, t * -1, kh(e, t * -1) - i)), o; +} +function FN(e, t, r, n) { + return n === void 0 && (n = 0), UA(e, r, kh(t, r) + N4(r, n)); +} +function H3e(e, t, r, n) { + n === void 0 && (n = 0); + var i = r * -1, o = N4(i, n); + return UA(e, r * -1, kh(t, r) + o); +} +function OL(e, t, r) { + var n = bG(r, e); + return n > bG(r, t); +} +function q3e(e, t) { + for (var r = CL(e, t), n = 0, i = 0, o = r; i < o.length; i++) { + var a = o[i]; + n += Math.pow(Hm(e, t, a), 2); + } + return n; +} +function W3e(e, t, r, n) { + return n === void 0 && (n = 200), r !== hi.bottom && r !== hi.top ? !1 : Hm(e, t, r) >= n; +} +function V3e(e, t, r, n, i, o, a) { + i === void 0 && (i = !1), a === void 0 && (a = 0); + var s = [ + hi.left, + hi.right, + hi.bottom, + hi.top + ]; + up() && (s[0] *= -1, s[1] *= -1); + for (var l = e, u = n.targetEdge, f = n.alignmentEdge, h, p = u, g = f, m = 0; m < 4; m++) { + if (OL(l, r, u)) + return { + elementRectangle: l, + targetEdge: u, + alignmentEdge: f + }; + if (i && W3e(t, r, u, o)) { + switch (u) { + case hi.bottom: + l.bottom = r.bottom; + break; + case hi.top: + l.top = r.top; + break; + } + return { + elementRectangle: l, + targetEdge: u, + alignmentEdge: f, + forcedInBounds: !0 + }; + } else { + var _ = q3e(l, r); + (!h || _ < h) && (h = _, p = u, g = f), s.splice(s.indexOf(u), 1), s.length > 0 && (s.indexOf(u * -1) > -1 ? u = u * -1 : (f = u, u = s.slice(-1)[0]), l = RL(e, t, { targetEdge: u, alignmentEdge: f }, a)); + } + } + return l = RL(e, t, { targetEdge: p, alignmentEdge: g }, a), { + elementRectangle: l, + targetEdge: p, + alignmentEdge: g + }; +} +function U3e(e, t, r, n) { + var i = e.alignmentEdge, o = e.targetEdge, a = e.elementRectangle, s = i * -1, l = RL(a, t, { targetEdge: o, alignmentEdge: s }, r, n); + return { + elementRectangle: l, + targetEdge: o, + alignmentEdge: s + }; +} +function G3e(e, t, r, n, i, o, a, s, l) { + i === void 0 && (i = !1), a === void 0 && (a = 0); + var u = n.alignmentEdge, f = n.alignTargetEdge, h = { + elementRectangle: e, + targetEdge: n.targetEdge, + alignmentEdge: u + }; + !s && !l && (h = V3e(e, t, r, n, i, o, a)); + var p = CL(h.elementRectangle, r), g = s ? -h.targetEdge : void 0; + if (p.length > 0) + if (f) + if (h.alignmentEdge && p.indexOf(h.alignmentEdge * -1) > -1) { + var m = U3e(h, t, a, l); + if (mQ(m.elementRectangle, r)) + return m; + h = Z$(CL(m.elementRectangle, r), h, r, g); + } else + h = Z$(p, h, r, g); + else + h = Z$(p, h, r, g); + return h; +} +function Z$(e, t, r, n) { + for (var i = 0, o = e; i < o.length; i++) { + var a = o[i], s = void 0; + if (n && n === a * -1) + s = UA(t.elementRectangle, a, kh(r, a), !1), t.forcedInBounds = !0; + else { + s = FN(t.elementRectangle, r, a); + var l = OL(s, r, a * -1); + l || (s = UA(s, a * -1, kh(r, a * -1), !1), t.forcedInBounds = !0); + } + t.elementRectangle = s; + } + return t; +} +function w_e(e, t, r) { + var n = Hk(t).positiveEdge, i = LN(e, t), o = i - kh(e, n); + return UA(e, n, r - o); +} +function RL(e, t, r, n, i) { + n === void 0 && (n = 0); + var o = new Xv(e.left, e.right, e.top, e.bottom), a = r.alignmentEdge, s = r.targetEdge, l = i ? s : s * -1; + if (o = i ? FN(o, t, s, n) : H3e(o, t, s, n), a) + o = FN(o, t, a); + else { + var u = LN(t, s); + o = w_e(o, l, u); + } + return o; +} +function Hk(e) { + return e === hi.top || e === hi.bottom ? { + positiveEdge: hi.left, + negativeEdge: hi.right + } : { + positiveEdge: hi.top, + negativeEdge: hi.bottom + }; +} +function T_e(e, t, r) { + return r && Math.abs(Hm(e, r, t)) > Math.abs(Hm(e, r, t * -1)) ? t * -1 : t; +} +function K3e(e, t, r) { + return r !== void 0 && kh(e, t) === kh(r, t); +} +function Y3e(e, t, r, n, i, o, a, s) { + var l = {}, u = I4(t), f = o ? r : r * -1, h = i || Hk(r).positiveEdge; + return (!a || K3e(e, c6e(h), n)) && (h = T_e(e, h, n)), l[hi[f]] = Hm(e, u, f), l[hi[h]] = Hm(e, u, h), s && (l[hi[f * -1]] = Hm(e, u, f * -1), l[hi[h * -1]] = Hm(e, u, h * -1)), l; +} +function X3e(e) { + return Math.sqrt(e * e * 2); +} +function Q3e(e, t, r) { + if (e === void 0 && (e = Wc.bottomAutoEdge), r) + return { + alignmentEdge: r.alignmentEdge, + isAuto: r.isAuto, + targetEdge: r.targetEdge + }; + var n = Ht({}, Foe[e]); + return up() ? (n.alignmentEdge && n.alignmentEdge % 2 === 0 && (n.alignmentEdge = n.alignmentEdge * -1), t !== void 0 ? Foe[t] : n) : n; +} +function Z3e(e, t, r, n, i) { + return e.isAuto && (e.alignmentEdge = A_e(e.targetEdge, t, r)), e.alignTargetEdge = i, e; +} +function A_e(e, t, r) { + var n = LN(t, e), i = LN(r, e), o = Hk(e), a = o.positiveEdge, s = o.negativeEdge; + return n <= i ? a : s; +} +function J3e(e, t, r, n, i, o, a, s, l) { + o === void 0 && (o = !1); + var u = RL(e, t, n, i, l); + return mQ(u, r) ? { + elementRectangle: u, + targetEdge: n.targetEdge, + alignmentEdge: n.alignmentEdge + } : G3e(u, t, r, n, o, a, i, s, l); +} +function e6e(e, t, r) { + var n = e.targetEdge * -1, i = new Xv(0, e.elementRectangle.width, 0, e.elementRectangle.height), o = {}, a = T_e(e.elementRectangle, e.alignmentEdge ? e.alignmentEdge : Hk(n).positiveEdge, r), s = Hm(e.elementRectangle, e.targetRectangle, n), l = s > Math.abs(kh(t, n)); + return o[hi[n]] = kh(t, n), o[hi[a]] = Hm(t, i, a), { + elementPosition: Ht({}, o), + closestEdge: A_e(e.targetEdge, t, i), + targetEdge: n, + hideBeak: !l + }; +} +function t6e(e, t) { + var r = t.targetRectangle, n = Hk(t.targetEdge), i = n.positiveEdge, o = n.negativeEdge, a = LN(r, t.targetEdge), s = new Xv(e / 2, t.elementRectangle.width - e / 2, e / 2, t.elementRectangle.height - e / 2), l = new Xv(0, e, 0, e); + return l = UA(l, t.targetEdge * -1, -e / 2), l = w_e(l, t.targetEdge * -1, a - bG(i, t.elementRectangle)), OL(l, s, i) ? OL(l, s, o) || (l = FN(l, s, o)) : l = FN(l, s, i), l; +} +function I4(e) { + var t = e.getBoundingClientRect(); + return new Xv(t.left, t.right, t.top, t.bottom); +} +function r6e(e) { + return new Xv(e.left, e.right, e.top, e.bottom); +} +function n6e(e, t) { + var r; + if (t) { + if (t.preventDefault) { + var n = t; + r = new Xv(n.clientX, n.clientX, n.clientY, n.clientY); + } else if (t.getBoundingClientRect) + r = I4(t); + else { + var i = t, o = i.left || i.x, a = i.top || i.y, s = i.right || o, l = i.bottom || a; + r = new Xv(o, s, a, l); + } + if (!mQ(r, e)) + for (var u = CL(r, e), f = 0, h = u; f < h.length; f++) { + var p = h[f]; + r[hi[p]] = e[hi[p]]; + } + } else + r = new Xv(0, 0, 0, 0); + return r; +} +function i6e(e, t, r, n, i, o) { + i === void 0 && (i = !1); + var a = e.gapSpace ? e.gapSpace : 0, s = n6e(r, e.target), l = Z3e(Q3e(e.directionalHint, e.directionalHintForRTL, n), s, r, e.coverTarget, e.alignTargetEdge), u = J3e(I4(t), s, r, l, a, i, o, e.directionalHintFixed, e.coverTarget); + return Ht(Ht({}, u), { targetRectangle: s }); +} +function o6e(e, t, r, n, i) { + var o = Y3e(e.elementRectangle, t, e.targetEdge, r, e.alignmentEdge, n, i, e.forcedInBounds); + return { + elementPosition: o, + targetEdge: e.targetEdge, + alignmentEdge: e.alignmentEdge + }; +} +function k_e(e, t, r) { + return t === void 0 && (t = 0), r === void 0 && (r = 0), X3e(e ? t : 0) / 2 + r; +} +function C_e(e, t, r, n, i, o, a) { + i === void 0 && (i = !1); + var s = e.isBeakVisible && e.beakWidth || 0, l = k_e(e.isBeakVisible, e.beakWidth, e.gapSpace), u = e; + u.gapSpace = l; + var f = e.bounds ? r6e(e.bounds) : new Xv(0, window.innerWidth - f4e(), 0, window.innerHeight), h = i6e(u, r, f, n, i, o), p = t6e(s, h), g = e6e(h, p, f); + return Ht(Ht({}, o6e(h, t, f, e.coverTarget, a)), { beakPosition: g }); +} +function a6e(e, t, r, n) { + return C_e(e, t, r, n, !1, void 0, !0); +} +function s6e(e) { + var t = e, r = e, n = e, i, o = n.left || n.x, a = n.top || n.y, s = n.right || o, l = n.bottom || a; + return t.stopPropagation ? i = new Xv(t.clientX, t.clientX, t.clientY, t.clientY) : o !== void 0 && a !== void 0 ? i = new Xv(o, s, a, l) : i = I4(r), i; +} +function l6e(e, t, r, n, i, o) { + return C_e(e, t, r, n, i, o); +} +function u6e(e, t, r, n) { + return a6e(e, t, r, n); +} +function c6e(e) { + return e * -1; +} +function f6e(e, t) { + var r = void 0; + if (t.getWindowSegments && (r = t.getWindowSegments()), r === void 0 || r.length <= 1) + return { + top: 0, + left: 0, + right: t.innerWidth, + bottom: t.innerHeight, + width: t.innerWidth, + height: t.innerHeight + }; + var n = 0, i = 0; + if (e !== null && e.getBoundingClientRect) { + var o = e.getBoundingClientRect(); + n = (o.left + o.right) / 2, i = (o.top + o.bottom) / 2; + } else + e !== null && (n = e.left || e.x, i = e.top || e.y); + for (var a = { top: 0, left: 0, right: 0, bottom: 0, width: 0, height: 0 }, s = 0, l = r; s < l.length; s++) { + var u = l[s]; + n && u.left <= n && u.right >= n && i && u.top <= i && u.bottom >= i && (a = { + top: u.top, + left: u.left, + right: u.right, + bottom: u.bottom, + width: u.width, + height: u.height + }); + } + return a; +} +function d6e(e, t) { + return f6e(e, t); +} +function h6e(e, t, r) { + return k_e(e, t, r); +} +function p6e(e) { + return s6e(e); +} +function qk() { + var e = W.useRef(); + return e.current || (e.current = new Qbe()), W.useEffect(function() { + return function() { + var t; + (t = e.current) === null || t === void 0 || t.dispose(), e.current = void 0; + }; + }, []), e.current; +} +function m0(e) { + var t = W.useRef(); + return t.current === void 0 && (t.current = { + value: typeof e == "function" ? e() : e + }), t.current.value; +} +function v6e(e) { + var t = W.useState(e), r = t[0], n = t[1], i = m0(function() { + return function() { + n(!0); + }; + }), o = m0(function() { + return function() { + n(!1); + }; + }), a = m0(function() { + return function() { + n(function(s) { + return !s; + }); + }; + }); + return [r, { setTrue: i, setFalse: o, toggle: a }]; +} +function J$(e) { + var t = W.useRef(function() { + throw new Error("Cannot call an event handler while rendering"); + }); + return WA(function() { + t.current = e; + }, [e]), m0(function() { + return function() { + for (var r = [], n = 0; n < arguments.length; n++) + r[n] = arguments[n]; + var i = t.current; + return i.apply(void 0, r); + }; + }); +} +function D4(e, t) { + var r = W.useRef(t); + return r.current || (r.current = Qx(e)), r.current; +} +function ty() { + for (var e = [], t = 0; t < arguments.length; t++) + e[t] = arguments[t]; + var r = W.useCallback(function(n) { + r.current = n; + for (var i = 0, o = e; i < o.length; i++) { + var a = o[i]; + typeof a == "function" ? a(n) : a && (a.current = n); + } + }, _0([], e, !0)); + return r; +} +function BN(e, t, r, n) { + var i = W.useRef(r); + i.current = r, W.useEffect(function() { + var o = e && "current" in e ? e.current : e; + if (!(!o || !o.addEventListener)) { + var a = $m(o, t, function(s) { + return i.current(s); + }, n); + return a; + } + }, [e, t, n]); +} +function M4(e) { + var t = W.useRef(); + return W.useEffect(function() { + t.current = e; + }), t.current; +} +var g6e = function() { + var e = m0({}); + return W.useEffect( + function() { + return function() { + for (var t = 0, r = Object.keys(e); t < r.length; t++) { + var n = r[t]; + clearTimeout(n); + } + }; + }, + // useConst ensures this will never change, but react-hooks/exhaustive-deps doesn't know that + [e] + ), m0({ + setTimeout: function(t, r) { + var n = setTimeout(t, r); + return e[n] = 1, n; + }, + clearTimeout: function(t) { + delete e[t], clearTimeout(t); + } + }); +}, O_e = W.createContext({ + // eslint-disable-next-line no-restricted-globals + window: typeof window == "object" ? window : void 0 +}), _D = function() { + return W.useContext(O_e).window; +}, m6e = function() { + var e; + return (e = W.useContext(O_e).window) === null || e === void 0 ? void 0 : e.document; +}; +function R_e(e, t) { + var r = W.useRef(), n = W.useRef(null), i = _D(); + if (!e || e !== r.current || typeof e == "string") { + var o = t == null ? void 0 : t.current; + if (e) + if (typeof e == "string") { + var a = gp(o); + n.current = a ? a.querySelector(e) : null; + } else + "stopPropagation" in e || "getBoundingClientRect" in e ? n.current = e : "current" in e ? n.current = e.current : n.current = e; + r.current = e; + } + return [n, i]; +} +var N_e = function(e) { + var t = W.useRef(e); + t.current = e, W.useEffect(function() { + return function() { + var r; + (r = t.current) === null || r === void 0 || r.call(t); + }; + }, []); +}, y6e = {}, b6e = 0; +function yQ(e) { + if (y6e.NODE_ENV !== "production") { + var t = e.name, r = e.props, n = e.other, i = n === void 0 ? [] : n, o = e.conditionallyRequired, a = e.deprecations, s = e.mutuallyExclusive, l = e.controlledUsage, u = W.useRef(!1), f = m0(function() { + return "useWarnings_".concat(b6e++); + }), h = M4(r); + if (!u.current) { + u.current = !0; + for (var p = 0, g = i; p < g.length; p++) { + var m = g[p]; + Ab(m); + } + if (o) + for (var _ = 0, S = o; _ < S.length; _++) { + var A = S[_]; + p4e(t, r, A.requiredProps, A.conditionalPropName, A.condition); + } + a && hQ(t, r, a), s && g4e(t, r, s); + } + l && OBe(Ht(Ht({}, l), { componentId: f, props: r, componentName: t, oldProps: h })); + } +} +function _6e(e, t) { + var r = qk(), n = W.useState(!1), i = n[0], o = n[1]; + return W.useEffect(function() { + return r.requestAnimationFrame(function() { + var a; + if (!(e.style && e.style.overflowY)) { + var s = !1; + if (t && t.current && (!((a = t.current) === null || a === void 0) && a.firstElementChild)) { + var l = t.current.clientHeight, u = t.current.firstElementChild.clientHeight; + l > 0 && u > l && (s = u - l > 1); + } + i !== s && o(s); + } + }), function() { + return r.dispose(); + }; + }), i; +} +function E6e(e) { + var t = e.originalElement, r = e.containsFocus; + t && r && t !== gc() && setTimeout(function() { + var n; + (n = t.focus) === null || n === void 0 || n.call(t); + }, 0); +} +function S6e(e, t) { + var r = e.onRestoreFocus, n = r === void 0 ? E6e : r, i = W.useRef(), o = W.useRef(!1); + W.useEffect(function() { + return i.current = gp().activeElement, P4e(t.current) && (o.current = !0), function() { + var a; + n == null || n({ + originalElement: i.current, + containsFocus: o.current, + documentContainsFocus: ((a = gp()) === null || a === void 0 ? void 0 : a.hasFocus()) || !1 + }), i.current = void 0; + }; + }, []), BN(t, "focus", W.useCallback(function() { + o.current = !0; + }, []), !0), BN(t, "blur", W.useCallback(function(a) { + t.current && a.relatedTarget && !t.current.contains(a.relatedTarget) && (o.current = !1); + }, []), !0); +} +function x6e(e, t) { + var r = String(e["aria-modal"]).toLowerCase() === "true" && e.enableAriaHiddenSiblings; + W.useEffect(function() { + if (r && t.current) { + var n = g_e(t.current); + return n; + } + }, [t, r]); +} +var bQ = W.forwardRef(function(e, t) { + var r = yD({ shouldRestoreFocus: !0, enableAriaHiddenSiblings: !0 }, e), n = W.useRef(), i = ty(n, t); + x6e(r, n), S6e(r, n); + var o = r.role, a = r.className, s = r.ariaLabel, l = r.ariaLabelledBy, u = r.ariaDescribedBy, f = r.style, h = r.children, p = r.onDismiss, g = _6e(r, n), m = W.useCallback(function(S) { + switch (S.which) { + case Ui.escape: + p && (p(S), S.preventDefault(), S.stopPropagation()); + break; + } + }, [p]), _ = _D(); + return BN(_, "keydown", m), W.createElement("div", Ht({ ref: i }, Ah(r, zk), { className: a, role: o, "aria-label": s, "aria-labelledby": l, "aria-describedby": u, onKeyDown: m, style: Ht({ overflowY: g ? "scroll" : void 0, outline: "none" }, f) }), h); +}); +bQ.displayName = "Popup"; +var wT, w6e = "CalloutContentBase", T6e = (wT = {}, wT[hi.top] = DR.slideUpIn10, wT[hi.bottom] = DR.slideDownIn10, wT[hi.left] = DR.slideLeftIn10, wT[hi.right] = DR.slideRightIn10, wT), $oe = { top: 0, left: 0 }, A6e = { + opacity: 0, + filter: "opacity(0)", + pointerEvents: "none" +}, k6e = ["role", "aria-roledescription"], I_e = { + preventDismissOnLostFocus: !1, + preventDismissOnScroll: !1, + preventDismissOnResize: !1, + isBeakVisible: !0, + beakWidth: 16, + gapSpace: 0, + minPagePadding: 8, + directionalHint: Wc.bottomAutoEdge +}, C6e = dy({ + disableCaching: !0 + // disabling caching because stylesProp.position mutates often +}); +function O6e(e, t, r) { + var n = e.bounds, i = e.minPagePadding, o = i === void 0 ? I_e.minPagePadding : i, a = e.target, s = W.useState(!1), l = s[0], u = s[1], f = W.useRef(), h = W.useCallback(function() { + if (!f.current || l) { + var g = typeof n == "function" ? r ? n(a, r) : void 0 : n; + !g && r && (g = d6e(t.current, r), g = { + top: g.top + o, + left: g.left + o, + right: g.right - o, + bottom: g.bottom - o, + width: g.width - o * 2, + height: g.height - o * 2 + }), f.current = g, l && u(!1); + } + return f.current; + }, [n, o, a, t, r, l]), p = qk(); + return BN(r, "resize", p.debounce(function() { + u(!0); + }, 500, { leading: !0 })), h; +} +function R6e(e, t, r, n) { + var i, o = e.calloutMaxHeight, a = e.finalHeight, s = e.directionalHint, l = e.directionalHintFixed, u = e.hidden, f = e.gapSpace, h = e.beakWidth, p = e.isBeakVisible, g = W.useState(), m = g[0], _ = g[1], S = (i = n == null ? void 0 : n.elementPosition) !== null && i !== void 0 ? i : {}, A = S.top, C = S.bottom, N = r != null && r.current ? p6e(r.current) : void 0; + return W.useEffect(function() { + var x, R = (x = t()) !== null && x !== void 0 ? x : {}, D = R.top, M = R.bottom, j; + (n == null ? void 0 : n.targetEdge) === hi.top && (N != null && N.top) && (M = N.top - h6e(p, h, f)), typeof A == "number" && M ? j = M - A : typeof C == "number" && typeof D == "number" && M && (j = M - D - C), !o && !u || o && j && o > j ? _(j) : _(o || void 0); + }, [ + C, + o, + a, + s, + l, + t, + u, + n, + A, + f, + h, + p, + N + ]), m; +} +function N6e(e, t, r, n, i, o) { + var a = W.useState(), s = a[0], l = a[1], u = W.useRef(0), f = W.useRef(), h = qk(), p = e.hidden, g = e.target, m = e.finalHeight, _ = e.calloutMaxHeight, S = e.onPositioned, A = e.directionalHint, C = e.hideOverflow, N = e.preferScrollResizePositioning, x = _D(), R = W.useRef(), D; + R.current !== o.current && (R.current = o.current, D = o.current ? x == null ? void 0 : x.getComputedStyle(o.current) : void 0); + var M = D == null ? void 0 : D.overflowY; + return W.useEffect(function() { + if (p) + l(void 0), u.current = 0; + else { + var j = h.requestAnimationFrame(function() { + var F, z; + if (t.current && r) { + var G = Ht(Ht({}, e), { target: n.current, bounds: i() }), te = r.cloneNode(!0); + te.style.maxHeight = _ ? "".concat(_) : "", te.style.visibility = "hidden", (F = r.parentElement) === null || F === void 0 || F.appendChild(te); + var Q = f.current === g ? s : void 0, ae = C || M === "clip" || M === "hidden", J = N && !ae, Y = m ? u6e(G, t.current, te, Q) : l6e(G, t.current, te, Q, J); + (z = r.parentElement) === null || z === void 0 || z.removeChild(te), !s && Y || s && Y && !L6e(s, Y) && u.current < 5 ? (u.current++, l(Y)) : u.current > 0 && (u.current = 0, S == null || S(s)); + } + }, r); + return f.current = g, function() { + h.cancelAnimationFrame(j), f.current = void 0; + }; + } + }, [ + p, + A, + h, + r, + _, + t, + n, + m, + i, + S, + s, + e, + g, + C, + N, + M + ]), s; +} +function I6e(e, t, r) { + var n = e.hidden, i = e.setInitialFocus, o = qk(), a = !!t; + W.useEffect(function() { + if (!n && i && a && r) { + var s = o.requestAnimationFrame(function() { + return $4e(r); + }, r); + return function() { + return o.cancelAnimationFrame(s); + }; + } + }, [n, a, o, r, i]); +} +function D6e(e, t, r, n, i) { + var o = e.hidden, a = e.onDismiss, s = e.preventDismissOnScroll, l = e.preventDismissOnResize, u = e.preventDismissOnLostFocus, f = e.dismissOnTargetClick, h = e.shouldDismissOnWindowFocus, p = e.preventDismissOnEvent, g = W.useRef(!1), m = qk(), _ = m0([ + function() { + g.current = !0; + }, + function() { + g.current = !1; + } + ]), S = !!t; + return W.useEffect(function() { + var A = function(M) { + S && !s && x(M); + }, C = function(M) { + !l && !(p && p(M)) && (a == null || a(M)); + }, N = function(M) { + u || x(M); + }, x = function(M) { + var j = M.composedPath ? M.composedPath() : [], F = j.length > 0 ? j[0] : M.target, z = r.current && !Jp(r.current, F); + if (z && g.current) { + g.current = !1; + return; + } + if (!n.current && z || M.target !== i && z && (!n.current || "stopPropagation" in n.current || f || F !== n.current && !Jp(n.current, F))) { + if (p && p(M)) + return; + a == null || a(M); + } + }, R = function(M) { + h && (p && !p(M) || !p && !u) && !(i != null && i.document.hasFocus()) && M.relatedTarget === null && (a == null || a(M)); + }, D = new Promise(function(M) { + m.setTimeout(function() { + if (!o && i) { + var j = [ + $m(i, "scroll", A, !0), + $m(i, "resize", C, !0), + $m(i.document.documentElement, "focus", N, !0), + $m(i.document.documentElement, "click", N, !0), + $m(i, "blur", R, !0) + ]; + M(function() { + j.forEach(function(F) { + return F(); + }); + }); + } + }, 0); + }); + return function() { + D.then(function(M) { + return M(); + }); + }; + }, [ + o, + m, + r, + n, + i, + a, + h, + f, + u, + l, + s, + S, + p + ]), _; +} +var D_e = W.memo(W.forwardRef(function(e, t) { + var r = yD(I_e, e), n = r.styles, i = r.style, o = r.ariaLabel, a = r.ariaDescribedBy, s = r.ariaLabelledBy, l = r.className, u = r.isBeakVisible, f = r.children, h = r.beakWidth, p = r.calloutWidth, g = r.calloutMaxWidth, m = r.calloutMinWidth, _ = r.doNotLayer, S = r.finalHeight, A = r.hideOverflow, C = A === void 0 ? !!S : A, N = r.backgroundColor, x = r.calloutMaxHeight, R = r.onScroll, D = r.shouldRestoreFocus, M = D === void 0 ? !0 : D, j = r.target, F = r.hidden, z = r.onLayerMounted, G = r.popupProps, te = W.useRef(null), Q = W.useRef(null), ae = ty(Q, G == null ? void 0 : G.ref), J = W.useState(null), Y = J[0], re = J[1], fe = W.useCallback(function(Pt) { + re(Pt); + }, []), ve = ty(te, t), ie = R_e(r.target, { + current: Y + }), he = ie[0], ye = ie[1], ke = O6e(r, he, ye), Ne = N6e(r, te, Y, he, ke, ae), ze = R6e(r, ke, he, Ne), qe = D6e(r, Ne, te, he, ye), We = qe[0], Qe = qe[1], je = (Ne == null ? void 0 : Ne.elementPosition.top) && (Ne == null ? void 0 : Ne.elementPosition.bottom), Ve = Ht(Ht({}, Ne == null ? void 0 : Ne.elementPosition), { maxHeight: ze }); + if (je && (Ve.bottom = void 0), I6e(r, Ne, Y), W.useEffect(function() { + F || z == null || z(); + }, [F]), !ye) + return null; + var Ye = C, Pe = u && !!j, tt = C6e(n, { + theme: r.theme, + className: l, + overflowYHidden: Ye, + calloutWidth: p, + positions: Ne, + beakWidth: h, + backgroundColor: N, + calloutMaxWidth: g, + calloutMinWidth: m, + doNotLayer: _ + }), it = Ht(Ht({ maxHeight: x || "100%" }, i), Ye && { overflowY: "hidden" }), Tt = r.hidden ? { visibility: "hidden" } : void 0; + return W.createElement( + "div", + { ref: ve, className: tt.container, style: Tt }, + W.createElement( + "div", + Ht({}, Ah(r, zk, k6e), { + className: $E(tt.root, Ne && Ne.targetEdge && T6e[Ne.targetEdge]), + style: Ne ? Ht({}, Ve) : A6e, + // Safari and Firefox on Mac OS requires this to back-stop click events so focus remains in the Callout. + // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus + tabIndex: -1, + ref: fe + }), + Pe && W.createElement("div", { className: tt.beak, style: M6e(Ne) }), + Pe && W.createElement("div", { className: tt.beakCurtain }), + W.createElement( + bQ, + Ht({ + // don't use getNativeElementProps for role and roledescription because it will also + // pass through data-* props (resulting in them being used in two places) + role: r.role, + "aria-roledescription": r["aria-roledescription"], + ariaDescribedBy: a, + ariaLabel: o, + ariaLabelledBy: s, + className: tt.calloutMain, + onDismiss: r.onDismiss, + onMouseDown: We, + onMouseUp: Qe, + onRestoreFocus: r.onRestoreFocus, + onScroll: R, + shouldRestoreFocus: M, + style: it + }, G, { ref: ae }), + f + ) + ) + ); +}), function(e, t) { + return !t.shouldUpdateWhenHidden && e.hidden && t.hidden ? !0 : dQ(e, t); +}); +function M6e(e) { + var t, r, n = Ht(Ht({}, (t = e == null ? void 0 : e.beakPosition) === null || t === void 0 ? void 0 : t.elementPosition), { display: !((r = e == null ? void 0 : e.beakPosition) === null || r === void 0) && r.hideBeak ? "none" : void 0 }); + return !n.top && !n.bottom && !n.left && !n.right && (n.left = $oe.left, n.top = $oe.top), n; +} +function L6e(e, t) { + return Poe(e.elementPosition, t.elementPosition) && Poe(e.beakPosition.elementPosition, t.beakPosition.elementPosition); +} +function Poe(e, t) { + for (var r in t) + if (t.hasOwnProperty(r)) { + var n = e[r], i = t[r]; + if (n !== void 0 && i !== void 0) { + if (n.toFixed(2) !== i.toFixed(2)) + return !1; + } else + return !1; + } + return !0; +} +D_e.displayName = w6e; +function F6e(e) { + return { + height: e, + width: e + }; +} +var B6e = { + container: "ms-Callout-container", + root: "ms-Callout", + beak: "ms-Callout-beak", + beakCurtain: "ms-Callout-beakCurtain", + calloutMain: "ms-Callout-main" +}, $6e = function(e) { + var t, r = e.theme, n = e.className, i = e.overflowYHidden, o = e.calloutWidth, a = e.beakWidth, s = e.backgroundColor, l = e.calloutMaxWidth, u = e.calloutMinWidth, f = e.doNotLayer, h = py(B6e, r), p = r.semanticColors, g = r.effects; + return { + container: [ + h.container, + { + position: "relative" + } + ], + root: [ + h.root, + r.fonts.medium, + { + position: "absolute", + display: "flex", + zIndex: f ? VA.Layer : void 0, + boxSizing: "border-box", + borderRadius: g.roundedCorner2, + boxShadow: g.elevation16, + selectors: (t = {}, t[_A] = { + borderWidth: 1, + borderStyle: "solid", + borderColor: "WindowText" + }, t) + }, + C3e(), + n, + !!o && { width: o }, + !!l && { maxWidth: l }, + !!u && { minWidth: u } + ], + beak: [ + h.beak, + { + position: "absolute", + backgroundColor: p.menuBackground, + boxShadow: "inherit", + border: "inherit", + boxSizing: "border-box", + transform: "rotate(45deg)" + }, + F6e(a), + s && { + backgroundColor: s + } + ], + beakCurtain: [ + h.beakCurtain, + { + position: "absolute", + top: 0, + right: 0, + bottom: 0, + left: 0, + backgroundColor: p.menuBackground, + borderRadius: g.roundedCorner2 + } + ], + calloutMain: [ + h.calloutMain, + { + backgroundColor: p.menuBackground, + overflowX: "hidden", + overflowY: "auto", + position: "relative", + width: "100%", + borderRadius: g.roundedCorner2 + }, + i && { + overflowY: "hidden" + }, + s && { + backgroundColor: s + } + ] + }; +}, P6e = hy(D_e, $6e, void 0, { + scope: "CalloutContent" +}); +const M_e = W.createContext(void 0), j6e = () => () => { +}; +M_e.Provider; +function z6e() { + var e; + return (e = W.useContext(M_e)) !== null && e !== void 0 ? e : j6e; +} +var _G = { exports: {} }, Up = {}, d2 = { exports: {} }, eP = {}, joe; +function H6e() { + return joe || (joe = 1, function(e) { + var t = {}; + /** + * @license React + * scheduler.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + t.NODE_ENV !== "production" && function() { + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error()); + var r = !1, n = !1, i = 5; + function o(pt, kt) { + var Jt = pt.length; + pt.push(kt), l(pt, kt, Jt); + } + function a(pt) { + return pt.length === 0 ? null : pt[0]; + } + function s(pt) { + if (pt.length === 0) + return null; + var kt = pt[0], Jt = pt.pop(); + return Jt !== kt && (pt[0] = Jt, u(pt, Jt, 0)), kt; + } + function l(pt, kt, Jt) { + for (var wr = Jt; wr > 0; ) { + var Lr = wr - 1 >>> 1, wn = pt[Lr]; + if (f(wn, kt) > 0) + pt[Lr] = kt, pt[wr] = wn, wr = Lr; + else + return; + } + } + function u(pt, kt, Jt) { + for (var wr = Jt, Lr = pt.length, wn = Lr >>> 1; wr < wn; ) { + var Bn = (wr + 1) * 2 - 1, un = pt[Bn], Cn = Bn + 1, vi = pt[Cn]; + if (f(un, kt) < 0) + Cn < Lr && f(vi, un) < 0 ? (pt[wr] = vi, pt[Cn] = kt, wr = Cn) : (pt[wr] = un, pt[Bn] = kt, wr = Bn); + else if (Cn < Lr && f(vi, kt) < 0) + pt[wr] = vi, pt[Cn] = kt, wr = Cn; + else + return; + } + } + function f(pt, kt) { + var Jt = pt.sortIndex - kt.sortIndex; + return Jt !== 0 ? Jt : pt.id - kt.id; + } + var h = 1, p = 2, g = 3, m = 4, _ = 5; + function S(pt, kt) { + } + var A = typeof performance == "object" && typeof performance.now == "function"; + if (A) { + var C = performance; + e.unstable_now = function() { + return C.now(); + }; + } else { + var N = Date, x = N.now(); + e.unstable_now = function() { + return N.now() - x; + }; + } + var R = 1073741823, D = -1, M = 250, j = 5e3, F = 1e4, z = R, G = [], te = [], Q = 1, ae = null, J = g, Y = !1, re = !1, fe = !1, ve = typeof setTimeout == "function" ? setTimeout : null, ie = typeof clearTimeout == "function" ? clearTimeout : null, he = typeof setImmediate < "u" ? setImmediate : null; + typeof navigator < "u" && navigator.scheduling !== void 0 && navigator.scheduling.isInputPending !== void 0 && navigator.scheduling.isInputPending.bind(navigator.scheduling); + function ye(pt) { + for (var kt = a(te); kt !== null; ) { + if (kt.callback === null) + s(te); + else if (kt.startTime <= pt) + s(te), kt.sortIndex = kt.expirationTime, o(G, kt); + else + return; + kt = a(te); + } + } + function ke(pt) { + if (fe = !1, ye(pt), !re) + if (a(G) !== null) + re = !0, at(Ne); + else { + var kt = a(te); + kt !== null && yt(ke, kt.startTime - pt); + } + } + function Ne(pt, kt) { + re = !1, fe && (fe = !1, Vt()), Y = !0; + var Jt = J; + try { + var wr; + if (!n) + return ze(pt, kt); + } finally { + ae = null, J = Jt, Y = !1; + } + } + function ze(pt, kt) { + var Jt = kt; + for (ye(Jt), ae = a(G); ae !== null && !r && !(ae.expirationTime > Jt && (!pt || zr())); ) { + var wr = ae.callback; + if (typeof wr == "function") { + ae.callback = null, J = ae.priorityLevel; + var Lr = ae.expirationTime <= Jt, wn = wr(Lr); + Jt = e.unstable_now(), typeof wn == "function" ? ae.callback = wn : ae === a(G) && s(G), ye(Jt); + } else + s(G); + ae = a(G); + } + if (ae !== null) + return !0; + var Bn = a(te); + return Bn !== null && yt(ke, Bn.startTime - Jt), !1; + } + function qe(pt, kt) { + switch (pt) { + case h: + case p: + case g: + case m: + case _: + break; + default: + pt = g; + } + var Jt = J; + J = pt; + try { + return kt(); + } finally { + J = Jt; + } + } + function We(pt) { + var kt; + switch (J) { + case h: + case p: + case g: + kt = g; + break; + default: + kt = J; + break; + } + var Jt = J; + J = kt; + try { + return pt(); + } finally { + J = Jt; + } + } + function Qe(pt) { + var kt = J; + return function() { + var Jt = J; + J = kt; + try { + return pt.apply(this, arguments); + } finally { + J = Jt; + } + }; + } + function je(pt, kt, Jt) { + var wr = e.unstable_now(), Lr; + if (typeof Jt == "object" && Jt !== null) { + var wn = Jt.delay; + typeof wn == "number" && wn > 0 ? Lr = wr + wn : Lr = wr; + } else + Lr = wr; + var Bn; + switch (pt) { + case h: + Bn = D; + break; + case p: + Bn = M; + break; + case _: + Bn = z; + break; + case m: + Bn = F; + break; + case g: + default: + Bn = j; + break; + } + var un = Lr + Bn, Cn = { + id: Q++, + callback: kt, + priorityLevel: pt, + startTime: Lr, + expirationTime: un, + sortIndex: -1 + }; + return Lr > wr ? (Cn.sortIndex = Lr, o(te, Cn), a(G) === null && Cn === a(te) && (fe ? Vt() : fe = !0, yt(ke, Lr - wr))) : (Cn.sortIndex = un, o(G, Cn), !re && !Y && (re = !0, at(Ne))), Cn; + } + function Ve() { + } + function Ye() { + !re && !Y && (re = !0, at(Ne)); + } + function Pe() { + return a(G); + } + function tt(pt) { + pt.callback = null; + } + function it() { + return J; + } + var Tt = !1, Pt = null, Bt = -1, Mr = i, ln = -1; + function zr() { + var pt = e.unstable_now() - ln; + return !(pt < Mr); + } + function Or() { + } + function ar(pt) { + if (pt < 0 || pt > 125) { + console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"); + return; + } + pt > 0 ? Mr = Math.floor(1e3 / pt) : Mr = i; + } + var xr = function() { + if (Pt !== null) { + var pt = e.unstable_now(); + ln = pt; + var kt = !0, Jt = !0; + try { + Jt = Pt(kt, pt); + } finally { + Jt ? Nn() : (Tt = !1, Pt = null); + } + } else + Tt = !1; + }, Nn; + if (typeof he == "function") + Nn = function() { + he(xr); + }; + else if (typeof MessageChannel < "u") { + var bt = new MessageChannel(), lt = bt.port2; + bt.port1.onmessage = xr, Nn = function() { + lt.postMessage(null); + }; + } else + Nn = function() { + ve(xr, 0); + }; + function at(pt) { + Pt = pt, Tt || (Tt = !0, Nn()); + } + function yt(pt, kt) { + Bt = ve(function() { + pt(e.unstable_now()); + }, kt); + } + function Vt() { + ie(Bt), Bt = -1; + } + var Xt = Or, $t = null; + e.unstable_IdlePriority = _, e.unstable_ImmediatePriority = h, e.unstable_LowPriority = m, e.unstable_NormalPriority = g, e.unstable_Profiling = $t, e.unstable_UserBlockingPriority = p, e.unstable_cancelCallback = tt, e.unstable_continueExecution = Ye, e.unstable_forceFrameRate = ar, e.unstable_getCurrentPriorityLevel = it, e.unstable_getFirstCallbackNode = Pe, e.unstable_next = We, e.unstable_pauseExecution = Ve, e.unstable_requestPaint = Xt, e.unstable_runWithPriority = qe, e.unstable_scheduleCallback = je, e.unstable_shouldYield = zr, e.unstable_wrapCallback = Qe, typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error()); + }(); + }(eP)), eP; +} +var tP = {}; +/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var zoe; +function q6e() { + return zoe || (zoe = 1, function(e) { + function t(fe, ve) { + var ie = fe.length; + fe.push(ve); + e: + for (; 0 < ie; ) { + var he = ie - 1 >>> 1, ye = fe[he]; + if (0 < i(ye, ve)) + fe[he] = ve, fe[ie] = ye, ie = he; + else + break e; + } + } + function r(fe) { + return fe.length === 0 ? null : fe[0]; + } + function n(fe) { + if (fe.length === 0) + return null; + var ve = fe[0], ie = fe.pop(); + if (ie !== ve) { + fe[0] = ie; + e: + for (var he = 0, ye = fe.length, ke = ye >>> 1; he < ke; ) { + var Ne = 2 * (he + 1) - 1, ze = fe[Ne], qe = Ne + 1, We = fe[qe]; + if (0 > i(ze, ie)) + qe < ye && 0 > i(We, ze) ? (fe[he] = We, fe[qe] = ie, he = qe) : (fe[he] = ze, fe[Ne] = ie, he = Ne); + else if (qe < ye && 0 > i(We, ie)) + fe[he] = We, fe[qe] = ie, he = qe; + else + break e; + } + } + return ve; + } + function i(fe, ve) { + var ie = fe.sortIndex - ve.sortIndex; + return ie !== 0 ? ie : fe.id - ve.id; + } + if (typeof performance == "object" && typeof performance.now == "function") { + var o = performance; + e.unstable_now = function() { + return o.now(); + }; + } else { + var a = Date, s = a.now(); + e.unstable_now = function() { + return a.now() - s; + }; + } + var l = [], u = [], f = 1, h = null, p = 3, g = !1, m = !1, _ = !1, S = typeof setTimeout == "function" ? setTimeout : null, A = typeof clearTimeout == "function" ? clearTimeout : null, C = typeof setImmediate < "u" ? setImmediate : null; + typeof navigator < "u" && navigator.scheduling !== void 0 && navigator.scheduling.isInputPending !== void 0 && navigator.scheduling.isInputPending.bind(navigator.scheduling); + function N(fe) { + for (var ve = r(u); ve !== null; ) { + if (ve.callback === null) + n(u); + else if (ve.startTime <= fe) + n(u), ve.sortIndex = ve.expirationTime, t(l, ve); + else + break; + ve = r(u); + } + } + function x(fe) { + if (_ = !1, N(fe), !m) + if (r(l) !== null) + m = !0, Y(R); + else { + var ve = r(u); + ve !== null && re(x, ve.startTime - fe); + } + } + function R(fe, ve) { + m = !1, _ && (_ = !1, A(j), j = -1), g = !0; + var ie = p; + try { + for (N(ve), h = r(l); h !== null && (!(h.expirationTime > ve) || fe && !G()); ) { + var he = h.callback; + if (typeof he == "function") { + h.callback = null, p = h.priorityLevel; + var ye = he(h.expirationTime <= ve); + ve = e.unstable_now(), typeof ye == "function" ? h.callback = ye : h === r(l) && n(l), N(ve); + } else + n(l); + h = r(l); + } + if (h !== null) + var ke = !0; + else { + var Ne = r(u); + Ne !== null && re(x, Ne.startTime - ve), ke = !1; + } + return ke; + } finally { + h = null, p = ie, g = !1; + } + } + var D = !1, M = null, j = -1, F = 5, z = -1; + function G() { + return !(e.unstable_now() - z < F); + } + function te() { + if (M !== null) { + var fe = e.unstable_now(); + z = fe; + var ve = !0; + try { + ve = M(!0, fe); + } finally { + ve ? Q() : (D = !1, M = null); + } + } else + D = !1; + } + var Q; + if (typeof C == "function") + Q = function() { + C(te); + }; + else if (typeof MessageChannel < "u") { + var ae = new MessageChannel(), J = ae.port2; + ae.port1.onmessage = te, Q = function() { + J.postMessage(null); + }; + } else + Q = function() { + S(te, 0); + }; + function Y(fe) { + M = fe, D || (D = !0, Q()); + } + function re(fe, ve) { + j = S(function() { + fe(e.unstable_now()); + }, ve); + } + e.unstable_IdlePriority = 5, e.unstable_ImmediatePriority = 1, e.unstable_LowPriority = 4, e.unstable_NormalPriority = 3, e.unstable_Profiling = null, e.unstable_UserBlockingPriority = 2, e.unstable_cancelCallback = function(fe) { + fe.callback = null; + }, e.unstable_continueExecution = function() { + m || g || (m = !0, Y(R)); + }, e.unstable_forceFrameRate = function(fe) { + 0 > fe || 125 < fe ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported") : F = 0 < fe ? Math.floor(1e3 / fe) : 5; + }, e.unstable_getCurrentPriorityLevel = function() { + return p; + }, e.unstable_getFirstCallbackNode = function() { + return r(l); + }, e.unstable_next = function(fe) { + switch (p) { + case 1: + case 2: + case 3: + var ve = 3; + break; + default: + ve = p; + } + var ie = p; + p = ve; + try { + return fe(); + } finally { + p = ie; + } + }, e.unstable_pauseExecution = function() { + }, e.unstable_requestPaint = function() { + }, e.unstable_runWithPriority = function(fe, ve) { + switch (fe) { + case 1: + case 2: + case 3: + case 4: + case 5: + break; + default: + fe = 3; + } + var ie = p; + p = fe; + try { + return ve(); + } finally { + p = ie; + } + }, e.unstable_scheduleCallback = function(fe, ve, ie) { + var he = e.unstable_now(); + switch (typeof ie == "object" && ie !== null ? (ie = ie.delay, ie = typeof ie == "number" && 0 < ie ? he + ie : he) : ie = he, fe) { + case 1: + var ye = -1; + break; + case 2: + ye = 250; + break; + case 5: + ye = 1073741823; + break; + case 4: + ye = 1e4; + break; + default: + ye = 5e3; + } + return ye = ie + ye, fe = { id: f++, callback: ve, priorityLevel: fe, startTime: ie, expirationTime: ye, sortIndex: -1 }, ie > he ? (fe.sortIndex = ie, t(u, fe), r(l) === null && fe === r(u) && (_ ? (A(j), j = -1) : _ = !0, re(x, ie - he))) : (fe.sortIndex = ye, t(l, fe), m || g || (m = !0, Y(R))), fe; + }, e.unstable_shouldYield = G, e.unstable_wrapCallback = function(fe) { + var ve = p; + return function() { + var ie = p; + p = ve; + try { + return fe.apply(this, arguments); + } finally { + p = ie; + } + }; + }; + }(tP)), tP; +} +var Hoe; +function _Q() { + if (Hoe) + return d2.exports; + Hoe = 1; + var e = {}; + return e.NODE_ENV === "production" ? d2.exports = q6e() : d2.exports = H6e(), d2.exports; +} +var qoe; +function W6e() { + if (qoe) + return Up; + qoe = 1; + var e = {}; + /** + * @license React + * react-dom.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + return e.NODE_ENV !== "production" && function() { + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error()); + var t = W, r = _Q(), n = t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, i = !1; + function o(c) { + i = c; + } + function a(c) { + if (!i) { + for (var d = arguments.length, b = new Array(d > 1 ? d - 1 : 0), w = 1; w < d; w++) + b[w - 1] = arguments[w]; + l("warn", c, b); + } + } + function s(c) { + if (!i) { + for (var d = arguments.length, b = new Array(d > 1 ? d - 1 : 0), w = 1; w < d; w++) + b[w - 1] = arguments[w]; + l("error", c, b); + } + } + function l(c, d, b) { + { + var w = n.ReactDebugCurrentFrame, L = w.getStackAddendum(); + L !== "" && (d += "%s", b = b.concat([L])); + var U = b.map(function(ne) { + return String(ne); + }); + U.unshift("Warning: " + d), Function.prototype.apply.call(console[c], console, U); + } + } + var u = 0, f = 1, h = 2, p = 3, g = 4, m = 5, _ = 6, S = 7, A = 8, C = 9, N = 10, x = 11, R = 12, D = 13, M = 14, j = 15, F = 16, z = 17, G = 18, te = 19, Q = 21, ae = 22, J = 23, Y = 24, re = 25, fe = !0, ve = !1, ie = !1, he = !1, ye = !1, ke = !0, Ne = !1, ze = !1, qe = !0, We = !0, Qe = !0, je = /* @__PURE__ */ new Set(), Ve = {}, Ye = {}; + function Pe(c, d) { + tt(c, d), tt(c + "Capture", d); + } + function tt(c, d) { + Ve[c] && s("EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.", c), Ve[c] = d; + { + var b = c.toLowerCase(); + Ye[b] = c, c === "onDoubleClick" && (Ye.ondblclick = c); + } + for (var w = 0; w < d.length; w++) + je.add(d[w]); + } + var it = typeof window < "u" && typeof window.document < "u" && typeof window.document.createElement < "u", Tt = Object.prototype.hasOwnProperty; + function Pt(c) { + { + var d = typeof Symbol == "function" && Symbol.toStringTag, b = d && c[Symbol.toStringTag] || c.constructor.name || "Object"; + return b; + } + } + function Bt(c) { + try { + return Mr(c), !1; + } catch { + return !0; + } + } + function Mr(c) { + return "" + c; + } + function ln(c, d) { + if (Bt(c)) + return s("The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before before using it here.", d, Pt(c)), Mr(c); + } + function zr(c) { + if (Bt(c)) + return s("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Pt(c)), Mr(c); + } + function Or(c, d) { + if (Bt(c)) + return s("The provided `%s` prop is an unsupported type %s. This value must be coerced to a string before before using it here.", d, Pt(c)), Mr(c); + } + function ar(c, d) { + if (Bt(c)) + return s("The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before before using it here.", d, Pt(c)), Mr(c); + } + function xr(c) { + if (Bt(c)) + return s("The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before before using it here.", Pt(c)), Mr(c); + } + function Nn(c) { + if (Bt(c)) + return s("Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before before using it here.", Pt(c)), Mr(c); + } + var bt = 0, lt = 1, at = 2, yt = 3, Vt = 4, Xt = 5, $t = 6, pt = ":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD", kt = pt + "\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040", Jt = new RegExp("^[" + pt + "][" + kt + "]*$"), wr = {}, Lr = {}; + function wn(c) { + return Tt.call(Lr, c) ? !0 : Tt.call(wr, c) ? !1 : Jt.test(c) ? (Lr[c] = !0, !0) : (wr[c] = !0, s("Invalid attribute name: `%s`", c), !1); + } + function Bn(c, d, b) { + return d !== null ? d.type === bt : b ? !1 : c.length > 2 && (c[0] === "o" || c[0] === "O") && (c[1] === "n" || c[1] === "N"); + } + function un(c, d, b, w) { + if (b !== null && b.type === bt) + return !1; + switch (typeof d) { + case "function": + case "symbol": + return !0; + case "boolean": { + if (w) + return !1; + if (b !== null) + return !b.acceptsBooleans; + var L = c.toLowerCase().slice(0, 5); + return L !== "data-" && L !== "aria-"; + } + default: + return !1; + } + } + function Cn(c, d, b, w) { + if (d === null || typeof d > "u" || un(c, d, b, w)) + return !0; + if (w) + return !1; + if (b !== null) + switch (b.type) { + case yt: + return !d; + case Vt: + return d === !1; + case Xt: + return isNaN(d); + case $t: + return isNaN(d) || d < 1; + } + return !1; + } + function vi(c) { + return Fr.hasOwnProperty(c) ? Fr[c] : null; + } + function Xr(c, d, b, w, L, U, ne) { + this.acceptsBooleans = d === at || d === yt || d === Vt, this.attributeName = w, this.attributeNamespace = L, this.mustUseProperty = b, this.propertyName = c, this.type = d, this.sanitizeURL = U, this.removeEmptyString = ne; + } + var Fr = {}, xi = [ + "children", + "dangerouslySetInnerHTML", + // TODO: This prevents the assignment of defaultValue to regular + // elements (not just inputs). Now that ReactDOMInput assigns to the + // defaultValue property -- do we need this? + "defaultValue", + "defaultChecked", + "innerHTML", + "suppressContentEditableWarning", + "suppressHydrationWarning", + "style" + ]; + xi.forEach(function(c) { + Fr[c] = new Xr( + c, + bt, + !1, + // mustUseProperty + c, + // attributeName + null, + // attributeNamespace + !1, + // sanitizeURL + !1 + ); + }), [["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function(c) { + var d = c[0], b = c[1]; + Fr[d] = new Xr( + d, + lt, + !1, + // mustUseProperty + b, + // attributeName + null, + // attributeNamespace + !1, + // sanitizeURL + !1 + ); + }), ["contentEditable", "draggable", "spellCheck", "value"].forEach(function(c) { + Fr[c] = new Xr( + c, + at, + !1, + // mustUseProperty + c.toLowerCase(), + // attributeName + null, + // attributeNamespace + !1, + // sanitizeURL + !1 + ); + }), ["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function(c) { + Fr[c] = new Xr( + c, + at, + !1, + // mustUseProperty + c, + // attributeName + null, + // attributeNamespace + !1, + // sanitizeURL + !1 + ); + }), [ + "allowFullScreen", + "async", + // Note: there is a special case that prevents it from being written to the DOM + // on the client side because the browsers are inconsistent. Instead we call focus(). + "autoFocus", + "autoPlay", + "controls", + "default", + "defer", + "disabled", + "disablePictureInPicture", + "disableRemotePlayback", + "formNoValidate", + "hidden", + "loop", + "noModule", + "noValidate", + "open", + "playsInline", + "readOnly", + "required", + "reversed", + "scoped", + "seamless", + // Microdata + "itemScope" + ].forEach(function(c) { + Fr[c] = new Xr( + c, + yt, + !1, + // mustUseProperty + c.toLowerCase(), + // attributeName + null, + // attributeNamespace + !1, + // sanitizeURL + !1 + ); + }), [ + "checked", + // Note: `option.selected` is not updated if `select.multiple` is + // disabled with `removeAttribute`. We have special logic for handling this. + "multiple", + "muted", + "selected" + // NOTE: if you add a camelCased prop to this list, + // you'll need to set attributeName to name.toLowerCase() + // instead in the assignment below. + ].forEach(function(c) { + Fr[c] = new Xr( + c, + yt, + !0, + // mustUseProperty + c, + // attributeName + null, + // attributeNamespace + !1, + // sanitizeURL + !1 + ); + }), [ + "capture", + "download" + // NOTE: if you add a camelCased prop to this list, + // you'll need to set attributeName to name.toLowerCase() + // instead in the assignment below. + ].forEach(function(c) { + Fr[c] = new Xr( + c, + Vt, + !1, + // mustUseProperty + c, + // attributeName + null, + // attributeNamespace + !1, + // sanitizeURL + !1 + ); + }), [ + "cols", + "rows", + "size", + "span" + // NOTE: if you add a camelCased prop to this list, + // you'll need to set attributeName to name.toLowerCase() + // instead in the assignment below. + ].forEach(function(c) { + Fr[c] = new Xr( + c, + $t, + !1, + // mustUseProperty + c, + // attributeName + null, + // attributeNamespace + !1, + // sanitizeURL + !1 + ); + }), ["rowSpan", "start"].forEach(function(c) { + Fr[c] = new Xr( + c, + Xt, + !1, + // mustUseProperty + c.toLowerCase(), + // attributeName + null, + // attributeNamespace + !1, + // sanitizeURL + !1 + ); + }); + var On = /[\-\:]([a-z])/g, Ai = function(c) { + return c[1].toUpperCase(); + }; + [ + "accent-height", + "alignment-baseline", + "arabic-form", + "baseline-shift", + "cap-height", + "clip-path", + "clip-rule", + "color-interpolation", + "color-interpolation-filters", + "color-profile", + "color-rendering", + "dominant-baseline", + "enable-background", + "fill-opacity", + "fill-rule", + "flood-color", + "flood-opacity", + "font-family", + "font-size", + "font-size-adjust", + "font-stretch", + "font-style", + "font-variant", + "font-weight", + "glyph-name", + "glyph-orientation-horizontal", + "glyph-orientation-vertical", + "horiz-adv-x", + "horiz-origin-x", + "image-rendering", + "letter-spacing", + "lighting-color", + "marker-end", + "marker-mid", + "marker-start", + "overline-position", + "overline-thickness", + "paint-order", + "panose-1", + "pointer-events", + "rendering-intent", + "shape-rendering", + "stop-color", + "stop-opacity", + "strikethrough-position", + "strikethrough-thickness", + "stroke-dasharray", + "stroke-dashoffset", + "stroke-linecap", + "stroke-linejoin", + "stroke-miterlimit", + "stroke-opacity", + "stroke-width", + "text-anchor", + "text-decoration", + "text-rendering", + "underline-position", + "underline-thickness", + "unicode-bidi", + "unicode-range", + "units-per-em", + "v-alphabetic", + "v-hanging", + "v-ideographic", + "v-mathematical", + "vector-effect", + "vert-adv-y", + "vert-origin-x", + "vert-origin-y", + "word-spacing", + "writing-mode", + "xmlns:xlink", + "x-height" + // NOTE: if you add a camelCased prop to this list, + // you'll need to set attributeName to name.toLowerCase() + // instead in the assignment below. + ].forEach(function(c) { + var d = c.replace(On, Ai); + Fr[d] = new Xr( + d, + lt, + !1, + // mustUseProperty + c, + null, + // attributeNamespace + !1, + // sanitizeURL + !1 + ); + }), [ + "xlink:actuate", + "xlink:arcrole", + "xlink:role", + "xlink:show", + "xlink:title", + "xlink:type" + // NOTE: if you add a camelCased prop to this list, + // you'll need to set attributeName to name.toLowerCase() + // instead in the assignment below. + ].forEach(function(c) { + var d = c.replace(On, Ai); + Fr[d] = new Xr( + d, + lt, + !1, + // mustUseProperty + c, + "http://www.w3.org/1999/xlink", + !1, + // sanitizeURL + !1 + ); + }), [ + "xml:base", + "xml:lang", + "xml:space" + // NOTE: if you add a camelCased prop to this list, + // you'll need to set attributeName to name.toLowerCase() + // instead in the assignment below. + ].forEach(function(c) { + var d = c.replace(On, Ai); + Fr[d] = new Xr( + d, + lt, + !1, + // mustUseProperty + c, + "http://www.w3.org/XML/1998/namespace", + !1, + // sanitizeURL + !1 + ); + }), ["tabIndex", "crossOrigin"].forEach(function(c) { + Fr[c] = new Xr( + c, + lt, + !1, + // mustUseProperty + c.toLowerCase(), + // attributeName + null, + // attributeNamespace + !1, + // sanitizeURL + !1 + ); + }); + var Fn = "xlinkHref"; + Fr[Fn] = new Xr( + "xlinkHref", + lt, + !1, + // mustUseProperty + "xlink:href", + "http://www.w3.org/1999/xlink", + !0, + // sanitizeURL + !1 + ), ["src", "href", "action", "formAction"].forEach(function(c) { + Fr[c] = new Xr( + c, + lt, + !1, + // mustUseProperty + c.toLowerCase(), + // attributeName + null, + // attributeNamespace + !0, + // sanitizeURL + !0 + ); + }); + var vn = /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i, Wr = !1; + function ur(c) { + !Wr && vn.test(c) && (Wr = !0, s("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.", JSON.stringify(c))); + } + function Ni(c, d, b, w) { + if (w.mustUseProperty) { + var L = w.propertyName; + return c[L]; + } else { + ln(b, d), w.sanitizeURL && ur("" + b); + var U = w.attributeName, ne = null; + if (w.type === Vt) { + if (c.hasAttribute(U)) { + var pe = c.getAttribute(U); + return pe === "" ? !0 : Cn(d, b, w, !1) ? pe : pe === "" + b ? b : pe; + } + } else if (c.hasAttribute(U)) { + if (Cn(d, b, w, !1)) + return c.getAttribute(U); + if (w.type === yt) + return b; + ne = c.getAttribute(U); + } + return Cn(d, b, w, !1) ? ne === null ? b : ne : ne === "" + b ? b : ne; + } + } + function $o(c, d, b, w) { + { + if (!wn(d)) + return; + if (!c.hasAttribute(d)) + return b === void 0 ? void 0 : null; + var L = c.getAttribute(d); + return ln(b, d), L === "" + b ? b : L; + } + } + function oi(c, d, b, w) { + var L = vi(d); + if (!Bn(d, L, w)) { + if (Cn(d, b, L, w) && (b = null), w || L === null) { + if (wn(d)) { + var U = d; + b === null ? c.removeAttribute(U) : (ln(b, d), c.setAttribute(U, "" + b)); + } + return; + } + var ne = L.mustUseProperty; + if (ne) { + var pe = L.propertyName; + if (b === null) { + var Ee = L.type; + c[pe] = Ee === yt ? !1 : ""; + } else + c[pe] = b; + return; + } + var Fe = L.attributeName, He = L.attributeNamespace; + if (b === null) + c.removeAttribute(Fe); + else { + var gt = L.type, vt; + gt === yt || gt === Vt && b === !0 ? vt = "" : (ln(b, Fe), vt = "" + b, L.sanitizeURL && ur(vt.toString())), He ? c.setAttributeNS(He, Fe, vt) : c.setAttribute(Fe, vt); + } + } + } + var Fi = Symbol.for("react.element"), So = Symbol.for("react.portal"), ao = Symbol.for("react.fragment"), ds = Symbol.for("react.strict_mode"), De = Symbol.for("react.profiler"), we = Symbol.for("react.provider"), Re = Symbol.for("react.context"), _e = Symbol.for("react.forward_ref"), Ae = Symbol.for("react.suspense"), ge = Symbol.for("react.suspense_list"), Me = Symbol.for("react.memo"), Ge = Symbol.for("react.lazy"), nt = Symbol.for("react.scope"), Xe = Symbol.for("react.debug_trace_mode"), St = Symbol.for("react.offscreen"), Qt = Symbol.for("react.legacy_hidden"), cn = Symbol.for("react.cache"), Hr = Symbol.for("react.tracing_marker"), Jr = Symbol.iterator, tn = "@@iterator"; + function Un(c) { + if (c === null || typeof c != "object") + return null; + var d = Jr && c[Jr] || c[tn]; + return typeof d == "function" ? d : null; + } + var Kr = Object.assign, In = 0, Zi, Ko, Gi, al, xo, gu, sl; + function Yo() { + } + Yo.__reactDisabledLog = !0; + function Wi() { + { + if (In === 0) { + Zi = console.log, Ko = console.info, Gi = console.warn, al = console.error, xo = console.group, gu = console.groupCollapsed, sl = console.groupEnd; + var c = { + configurable: !0, + enumerable: !0, + value: Yo, + writable: !0 + }; + Object.defineProperties(console, { + info: c, + log: c, + warn: c, + error: c, + group: c, + groupCollapsed: c, + groupEnd: c + }); + } + In++; + } + } + function oa() { + { + if (In--, In === 0) { + var c = { + configurable: !0, + enumerable: !0, + writable: !0 + }; + Object.defineProperties(console, { + log: Kr({}, c, { + value: Zi + }), + info: Kr({}, c, { + value: Ko + }), + warn: Kr({}, c, { + value: Gi + }), + error: Kr({}, c, { + value: al + }), + group: Kr({}, c, { + value: xo + }), + groupCollapsed: Kr({}, c, { + value: gu + }), + groupEnd: Kr({}, c, { + value: sl + }) + }); + } + In < 0 && s("disabledDepth fell below zero. This is a bug in React. Please file an issue."); + } + } + var Xo = n.ReactCurrentDispatcher, Na; + function Bi(c, d, b) { + { + if (Na === void 0) + try { + throw Error(); + } catch (L) { + var w = L.stack.trim().match(/\n( *(at )?)/); + Na = w && w[1] || ""; + } + return ` +` + Na + c; + } + } + var Es = !1, As; + { + var ll = typeof WeakMap == "function" ? WeakMap : Map; + As = new ll(); + } + function ul(c, d) { + if (!c || Es) + return ""; + { + var b = As.get(c); + if (b !== void 0) + return b; + } + var w; + Es = !0; + var L = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + var U; + U = Xo.current, Xo.current = null, Wi(); + try { + if (d) { + var ne = function() { + throw Error(); + }; + if (Object.defineProperty(ne.prototype, "props", { + set: function() { + throw Error(); + } + }), typeof Reflect == "object" && Reflect.construct) { + try { + Reflect.construct(ne, []); + } catch (Ft) { + w = Ft; + } + Reflect.construct(c, [], ne); + } else { + try { + ne.call(); + } catch (Ft) { + w = Ft; + } + c.call(ne.prototype); + } + } else { + try { + throw Error(); + } catch (Ft) { + w = Ft; + } + c(); + } + } catch (Ft) { + if (Ft && w && typeof Ft.stack == "string") { + for (var pe = Ft.stack.split(` +`), Ee = w.stack.split(` +`), Fe = pe.length - 1, He = Ee.length - 1; Fe >= 1 && He >= 0 && pe[Fe] !== Ee[He]; ) + He--; + for (; Fe >= 1 && He >= 0; Fe--, He--) + if (pe[Fe] !== Ee[He]) { + if (Fe !== 1 || He !== 1) + do + if (Fe--, He--, He < 0 || pe[Fe] !== Ee[He]) { + var gt = ` +` + pe[Fe].replace(" at new ", " at "); + return c.displayName && gt.includes("") && (gt = gt.replace("", c.displayName)), typeof c == "function" && As.set(c, gt), gt; + } + while (Fe >= 1 && He >= 0); + break; + } + } + } finally { + Es = !1, Xo.current = U, oa(), Error.prepareStackTrace = L; + } + var vt = c ? c.displayName || c.name : "", Lt = vt ? Bi(vt) : ""; + return typeof c == "function" && As.set(c, Lt), Lt; + } + function ya(c, d, b) { + return ul(c, !0); + } + function zs(c, d, b) { + return ul(c, !1); + } + function Ec(c) { + var d = c.prototype; + return !!(d && d.isReactComponent); + } + function _n(c, d, b) { + if (c == null) + return ""; + if (typeof c == "function") + return ul(c, Ec(c)); + if (typeof c == "string") + return Bi(c); + switch (c) { + case Ae: + return Bi("Suspense"); + case ge: + return Bi("SuspenseList"); + } + if (typeof c == "object") + switch (c.$$typeof) { + case _e: + return zs(c.render); + case Me: + return _n(c.type, d, b); + case Ge: { + var w = c, L = w._payload, U = w._init; + try { + return _n(U(L), d, b); + } catch { + } + } + } + return ""; + } + function ba(c) { + switch (c._debugOwner && c._debugOwner.type, c._debugSource, c.tag) { + case m: + return Bi(c.type); + case F: + return Bi("Lazy"); + case D: + return Bi("Suspense"); + case te: + return Bi("SuspenseList"); + case u: + case h: + case j: + return zs(c.type); + case x: + return zs(c.type.render); + case f: + return ya(c.type); + default: + return ""; + } + } + function _a(c) { + try { + var d = "", b = c; + do + d += ba(b), b = b.return; + while (b); + return d; + } catch (w) { + return ` +Error generating stack: ` + w.message + ` +` + w.stack; + } + } + function Cl(c, d, b) { + var w = c.displayName; + if (w) + return w; + var L = d.displayName || d.name || ""; + return L !== "" ? b + "(" + L + ")" : b; + } + function cl(c) { + return c.displayName || "Context"; + } + function ki(c) { + if (c == null) + return null; + if (typeof c.tag == "number" && s("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof c == "function") + return c.displayName || c.name || null; + if (typeof c == "string") + return c; + switch (c) { + case ao: + return "Fragment"; + case So: + return "Portal"; + case De: + return "Profiler"; + case ds: + return "StrictMode"; + case Ae: + return "Suspense"; + case ge: + return "SuspenseList"; + } + if (typeof c == "object") + switch (c.$$typeof) { + case Re: + var d = c; + return cl(d) + ".Consumer"; + case we: + var b = c; + return cl(b._context) + ".Provider"; + case _e: + return Cl(c, c.render, "ForwardRef"); + case Me: + var w = c.displayName || null; + return w !== null ? w : ki(c.type) || "Memo"; + case Ge: { + var L = c, U = L._payload, ne = L._init; + try { + return ki(ne(U)); + } catch { + return null; + } + } + } + return null; + } + function fl(c, d, b) { + var w = d.displayName || d.name || ""; + return c.displayName || (w !== "" ? b + "(" + w + ")" : b); + } + function Hu(c) { + return c.displayName || "Context"; + } + function dn(c) { + var d = c.tag, b = c.type; + switch (d) { + case Y: + return "Cache"; + case C: + var w = b; + return Hu(w) + ".Consumer"; + case N: + var L = b; + return Hu(L._context) + ".Provider"; + case G: + return "DehydratedFragment"; + case x: + return fl(b, b.render, "ForwardRef"); + case S: + return "Fragment"; + case m: + return b; + case g: + return "Portal"; + case p: + return "Root"; + case _: + return "Text"; + case F: + return ki(b); + case A: + return b === ds ? "StrictMode" : "Mode"; + case ae: + return "Offscreen"; + case R: + return "Profiler"; + case Q: + return "Scope"; + case D: + return "Suspense"; + case te: + return "SuspenseList"; + case re: + return "TracingMarker"; + case f: + case u: + case z: + case h: + case M: + case j: + if (typeof b == "function") + return b.displayName || b.name || null; + if (typeof b == "string") + return b; + break; + } + return null; + } + var Ol = n.ReactDebugCurrentFrame, Ki = null, Rl = !1; + function hs() { + { + if (Ki === null) + return null; + var c = Ki._debugOwner; + if (c !== null && typeof c < "u") + return dn(c); + } + return null; + } + function Sc() { + return Ki === null ? "" : _a(Ki); + } + function Po() { + Ol.getCurrentStack = null, Ki = null, Rl = !1; + } + function so(c) { + Ol.getCurrentStack = c === null ? null : Sc, Ki = c, Rl = !1; + } + function $f() { + return Ki; + } + function da(c) { + Rl = c; + } + function ks(c) { + return "" + c; + } + function er(c) { + switch (typeof c) { + case "boolean": + case "number": + case "string": + case "undefined": + return c; + case "object": + return Nn(c), c; + default: + return ""; + } + } + var Ar = { + button: !0, + checkbox: !0, + image: !0, + hidden: !0, + radio: !0, + reset: !0, + submit: !0 + }; + function Gn(c, d) { + Ar[d.type] || d.onChange || d.onInput || d.readOnly || d.disabled || d.value == null || s("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."), d.onChange || d.readOnly || d.disabled || d.checked == null || s("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`."); + } + function Kn(c) { + var d = c.type, b = c.nodeName; + return b && b.toLowerCase() === "input" && (d === "checkbox" || d === "radio"); + } + function hn(c) { + return c._valueTracker; + } + function on(c) { + c._valueTracker = null; + } + function $i(c) { + var d = ""; + return c && (Kn(c) ? d = c.checked ? "true" : "false" : d = c.value), d; + } + function lo(c) { + var d = Kn(c) ? "checked" : "value", b = Object.getOwnPropertyDescriptor(c.constructor.prototype, d); + Nn(c[d]); + var w = "" + c[d]; + if (!(c.hasOwnProperty(d) || typeof b > "u" || typeof b.get != "function" || typeof b.set != "function")) { + var L = b.get, U = b.set; + Object.defineProperty(c, d, { + configurable: !0, + get: function() { + return L.call(this); + }, + set: function(pe) { + Nn(pe), w = "" + pe, U.call(this, pe); + } + }), Object.defineProperty(c, d, { + enumerable: b.enumerable + }); + var ne = { + getValue: function() { + return w; + }, + setValue: function(pe) { + Nn(pe), w = "" + pe; + }, + stopTracking: function() { + on(c), delete c[d]; + } + }; + return ne; + } + } + function Qo(c) { + hn(c) || (c._valueTracker = lo(c)); + } + function Ss(c) { + if (!c) + return !1; + var d = hn(c); + if (!d) + return !0; + var b = d.getValue(), w = $i(c); + return w !== b ? (d.setValue(w), !0) : !1; + } + function ps(c) { + if (c = c || (typeof document < "u" ? document : void 0), typeof c > "u") + return null; + try { + return c.activeElement || c.body; + } catch { + return c.body; + } + } + var xc = !1, wc = !1, Pf = !1, jo = !1; + function Hd(c) { + var d = c.type === "checkbox" || c.type === "radio"; + return d ? c.checked != null : c.value != null; + } + function Se(c, d) { + var b = c, w = d.checked, L = Kr({}, d, { + defaultChecked: void 0, + defaultValue: void 0, + value: void 0, + checked: w ?? b._wrapperState.initialChecked + }); + return L; + } + function Je(c, d) { + Gn("input", d), d.checked !== void 0 && d.defaultChecked !== void 0 && !wc && (s("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components", hs() || "A component", d.type), wc = !0), d.value !== void 0 && d.defaultValue !== void 0 && !xc && (s("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components", hs() || "A component", d.type), xc = !0); + var b = c, w = d.defaultValue == null ? "" : d.defaultValue; + b._wrapperState = { + initialChecked: d.checked != null ? d.checked : d.defaultChecked, + initialValue: er(d.value != null ? d.value : w), + controlled: Hd(d) + }; + } + function Nt(c, d) { + var b = c, w = d.checked; + w != null && oi(b, "checked", w, !1); + } + function Dt(c, d) { + var b = c; + { + var w = Hd(d); + !b._wrapperState.controlled && w && !jo && (s("A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"), jo = !0), b._wrapperState.controlled && !w && !Pf && (s("A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"), Pf = !0); + } + Nt(c, d); + var L = er(d.value), U = d.type; + if (L != null) + U === "number" ? (L === 0 && b.value === "" || // We explicitly want to coerce to number here if possible. + // eslint-disable-next-line + b.value != L) && (b.value = ks(L)) : b.value !== ks(L) && (b.value = ks(L)); + else if (U === "submit" || U === "reset") { + b.removeAttribute("value"); + return; + } + d.hasOwnProperty("value") ? ii(b, d.type, L) : d.hasOwnProperty("defaultValue") && ii(b, d.type, er(d.defaultValue)), d.checked == null && d.defaultChecked != null && (b.defaultChecked = !!d.defaultChecked); + } + function Rr(c, d, b) { + var w = c; + if (d.hasOwnProperty("value") || d.hasOwnProperty("defaultValue")) { + var L = d.type, U = L === "submit" || L === "reset"; + if (U && (d.value === void 0 || d.value === null)) + return; + var ne = ks(w._wrapperState.initialValue); + b || ne !== w.value && (w.value = ne), w.defaultValue = ne; + } + var pe = w.name; + pe !== "" && (w.name = ""), w.defaultChecked = !w.defaultChecked, w.defaultChecked = !!w._wrapperState.initialChecked, pe !== "" && (w.name = pe); + } + function yn(c, d) { + var b = c; + Dt(b, d), Qr(b, d); + } + function Qr(c, d) { + var b = d.name; + if (d.type === "radio" && b != null) { + for (var w = c; w.parentNode; ) + w = w.parentNode; + ln(b, "name"); + for (var L = w.querySelectorAll("input[name=" + JSON.stringify("" + b) + '][type="radio"]'), U = 0; U < L.length; U++) { + var ne = L[U]; + if (!(ne === c || ne.form !== c.form)) { + var pe = Xi(ne); + if (!pe) + throw new Error("ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported."); + Ss(ne), Dt(ne, pe); + } + } + } + } + function ii(c, d, b) { + // Focused number inputs synchronize on blur. See ChangeEventPlugin.js + (d !== "number" || ps(c.ownerDocument) !== c) && (b == null ? c.defaultValue = ks(c._wrapperState.initialValue) : c.defaultValue !== ks(b) && (c.defaultValue = ks(b))); + } + var Ci = !1, wo = !1, bi = !1; + function zo(c, d) { + d.value == null && (typeof d.children == "object" && d.children !== null ? t.Children.forEach(d.children, function(b) { + b != null && (typeof b == "string" || typeof b == "number" || wo || (wo = !0, s("Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to